From ae4c6e5cad212bf4b107d25005f30191d5e915ee Mon Sep 17 00:00:00 2001 From: Alex Kaminskii Date: Sat, 7 May 2022 23:52:48 +0200 Subject: [PATCH 1/9] refactor(backend-sink): go go standarts --- backend/{services => cmd}/sink/main.go | 18 ++++++++------- backend/internal/config/sink/config.go | 23 +++++++++++++++++++ .../oswriter/oswriter.go} | 2 +- backend/services/sink/build_hack | 0 4 files changed, 34 insertions(+), 9 deletions(-) rename backend/{services => cmd}/sink/main.go (82%) create mode 100644 backend/internal/config/sink/config.go rename backend/{services/sink/writer.go => internal/oswriter/oswriter.go} (99%) create mode 100644 backend/services/sink/build_hack diff --git a/backend/services/sink/main.go b/backend/cmd/sink/main.go similarity index 82% rename from backend/services/sink/main.go rename to backend/cmd/sink/main.go index 1a23919c6..fcab40321 100644 --- a/backend/services/sink/main.go +++ b/backend/cmd/sink/main.go @@ -9,7 +9,8 @@ import ( "os/signal" "syscall" - "openreplay/backend/pkg/env" + "openreplay/backend/internal/config/sink" + "openreplay/backend/internal/oswriter" . "openreplay/backend/pkg/messages" "openreplay/backend/pkg/queue" "openreplay/backend/pkg/queue/types" @@ -18,20 +19,21 @@ import ( func main() { log.SetFlags(log.LstdFlags | log.LUTC | log.Llongfile) - FS_DIR := env.String("FS_DIR") - if _, err := os.Stat(FS_DIR); os.IsNotExist(err) { - log.Fatalf("%v doesn't exist. %v", FS_DIR, err) + cfg := sink.New() + + if _, err := os.Stat(cfg.FsDir); os.IsNotExist(err) { + log.Fatalf("%v doesn't exist. %v", cfg.FsDir, err) } - writer := NewWriter(env.Uint16("FS_ULIMIT"), FS_DIR) + writer := oswriter.NewWriter(cfg.FsUlimit, cfg.FsDir) count := 0 consumer := queue.NewMessageConsumer( - env.String("GROUP_SINK"), + cfg.GroupSink, []string{ - env.String("TOPIC_RAW_WEB"), - env.String("TOPIC_RAW_IOS"), + cfg.TopicRawIOS, + cfg.TopicRawWeb, }, func(sessionID uint64, message Message, _ *types.Meta) { typeID := message.TypeID() diff --git a/backend/internal/config/sink/config.go b/backend/internal/config/sink/config.go new file mode 100644 index 000000000..4837e86e3 --- /dev/null +++ b/backend/internal/config/sink/config.go @@ -0,0 +1,23 @@ +package sink + +import ( + "openreplay/backend/pkg/env" +) + +type Config struct { + FsDir string + FsUlimit uint16 + GroupSink string + TopicRawWeb string + TopicRawIOS string +} + +func New() *Config { + return &Config{ + FsDir: env.String("FS_DIR"), + FsUlimit: env.Uint16("FS_ULIMIT"), + GroupSink: env.String("GROUP_SINK"), + TopicRawWeb: env.String("TOPIC_RAW_WEB"), + TopicRawIOS: env.String("TOPIC_RAW_IOS"), + } +} diff --git a/backend/services/sink/writer.go b/backend/internal/oswriter/oswriter.go similarity index 99% rename from backend/services/sink/writer.go rename to backend/internal/oswriter/oswriter.go index 6fcfdddbc..839e61eba 100644 --- a/backend/services/sink/writer.go +++ b/backend/internal/oswriter/oswriter.go @@ -1,4 +1,4 @@ -package main +package oswriter import ( "math" diff --git a/backend/services/sink/build_hack b/backend/services/sink/build_hack new file mode 100644 index 000000000..e69de29bb From ea2d13dac6a93b6e57454ad379237f641afecf90 Mon Sep 17 00:00:00 2001 From: Alex Kaminskii Date: Wed, 11 May 2022 16:27:01 +0200 Subject: [PATCH 2/9] chore(backend-sink): sink in cmd --- backend/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/build.sh b/backend/build.sh index 84af1a919..a4d95341a 100755 --- a/backend/build.sh +++ b/backend/build.sh @@ -23,7 +23,7 @@ function build_service() { image="$1" echo "BUILDING $image" case "$image" in - http | db) + http | db | sink) echo build http docker build -t ${DOCKER_REPO:-'local'}/$image:${git_sha1} --platform linux/amd64 --build-arg SERVICE_NAME=$image -f ./cmd/Dockerfile . [[ $PUSH_IMAGE -eq 1 ]] && { From a241830e719dced02f29d0cef6ca0ed22a8bcf53 Mon Sep 17 00:00:00 2001 From: Alex Kaminskii Date: Wed, 11 May 2022 16:32:27 +0200 Subject: [PATCH 3/9] refactor(backend-sink/http): move URLrewriter to sink --- backend/cmd/http/main.go | 7 ++++--- backend/cmd/sink/main.go | 11 ++++++++++- backend/internal/assetscache/assets.go | 6 +++--- backend/internal/config/config.go | 6 ------ backend/internal/config/sink/config.go | 26 +++++++++++++++---------- backend/internal/router/handlers-web.go | 15 +++++--------- backend/internal/services/services.go | 5 ----- 7 files changed, 38 insertions(+), 38 deletions(-) diff --git a/backend/cmd/http/main.go b/backend/cmd/http/main.go index 541baab62..3fdd8d34a 100644 --- a/backend/cmd/http/main.go +++ b/backend/cmd/http/main.go @@ -2,6 +2,10 @@ package main import ( "log" + "os" + "os/signal" + "syscall" + "openreplay/backend/internal/config" "openreplay/backend/internal/router" "openreplay/backend/internal/server" @@ -10,9 +14,6 @@ import ( "openreplay/backend/pkg/db/postgres" "openreplay/backend/pkg/pprof" "openreplay/backend/pkg/queue" - "os" - "os/signal" - "syscall" ) func main() { diff --git a/backend/cmd/sink/main.go b/backend/cmd/sink/main.go index fcab40321..25969146c 100644 --- a/backend/cmd/sink/main.go +++ b/backend/cmd/sink/main.go @@ -9,11 +9,13 @@ import ( "os/signal" "syscall" + "openreplay/backend/internal/assetscache" "openreplay/backend/internal/config/sink" "openreplay/backend/internal/oswriter" . "openreplay/backend/pkg/messages" "openreplay/backend/pkg/queue" "openreplay/backend/pkg/queue/types" + "openreplay/backend/pkg/url/assets" ) func main() { @@ -27,6 +29,11 @@ func main() { writer := oswriter.NewWriter(cfg.FsUlimit, cfg.FsDir) + producer := queue.NewProducer() + defer producer.Close(15000) + rewriter := assets.NewRewriter(cfg.AssetsOrigin) + assetMessageHandler := assetscache.New(cfg, rewriter, producer) + count := 0 consumer := queue.NewMessageConsumer( @@ -36,12 +43,14 @@ func main() { cfg.TopicRawWeb, }, func(sessionID uint64, message Message, _ *types.Meta) { + count++ + typeID := message.TypeID() if !IsReplayerType(typeID) { return } - count++ + message = assetMessageHandler.ParseAssets(sessionID, message) value := message.Encode() var data []byte diff --git a/backend/internal/assetscache/assets.go b/backend/internal/assetscache/assets.go index 1ef70b56c..cf76bed8c 100644 --- a/backend/internal/assetscache/assets.go +++ b/backend/internal/assetscache/assets.go @@ -1,19 +1,19 @@ package assetscache import ( - "openreplay/backend/internal/config" + "openreplay/backend/internal/config/sink" "openreplay/backend/pkg/messages" "openreplay/backend/pkg/queue/types" "openreplay/backend/pkg/url/assets" ) type AssetsCache struct { - cfg *config.Config + cfg *sink.Config rewriter *assets.Rewriter producer types.Producer } -func New(cfg *config.Config, rewriter *assets.Rewriter, producer types.Producer) *AssetsCache { +func New(cfg *sink.Config, rewriter *assets.Rewriter, producer types.Producer) *AssetsCache { return &AssetsCache{ cfg: cfg, rewriter: rewriter, diff --git a/backend/internal/config/config.go b/backend/internal/config/config.go index 5b55ba346..b98f910c2 100644 --- a/backend/internal/config/config.go +++ b/backend/internal/config/config.go @@ -11,12 +11,9 @@ type Config struct { HTTPTimeout time.Duration TopicRawWeb string TopicRawIOS string - TopicCache string - CacheAssets bool BeaconSizeLimit int64 JsonSizeLimit int64 FileSizeLimit int64 - AssetsOrigin string AWSRegion string S3BucketIOSImages string Postgres string @@ -33,12 +30,9 @@ func New() *Config { HTTPTimeout: time.Second * 60, TopicRawWeb: env.String("TOPIC_RAW_WEB"), TopicRawIOS: env.String("TOPIC_RAW_IOS"), - TopicCache: env.String("TOPIC_CACHE"), - CacheAssets: env.Bool("CACHE_ASSETS"), BeaconSizeLimit: int64(env.Uint64("BEACON_SIZE_LIMIT")), JsonSizeLimit: 1e3, // 1Kb FileSizeLimit: 1e7, // 10Mb - AssetsOrigin: env.String("ASSETS_ORIGIN"), AWSRegion: env.String("AWS_REGION"), S3BucketIOSImages: env.String("S3_BUCKET_IOS_IMAGES"), Postgres: env.String("POSTGRES_STRING"), diff --git a/backend/internal/config/sink/config.go b/backend/internal/config/sink/config.go index 4837e86e3..be939df95 100644 --- a/backend/internal/config/sink/config.go +++ b/backend/internal/config/sink/config.go @@ -5,19 +5,25 @@ import ( ) type Config struct { - FsDir string - FsUlimit uint16 - GroupSink string - TopicRawWeb string - TopicRawIOS string + FsDir string + FsUlimit uint16 + GroupSink string + TopicRawWeb string + TopicRawIOS string + TopicCache string + CacheAssets bool + AssetsOrigin string } func New() *Config { return &Config{ - FsDir: env.String("FS_DIR"), - FsUlimit: env.Uint16("FS_ULIMIT"), - GroupSink: env.String("GROUP_SINK"), - TopicRawWeb: env.String("TOPIC_RAW_WEB"), - TopicRawIOS: env.String("TOPIC_RAW_IOS"), + FsDir: env.String("FS_DIR"), + FsUlimit: env.Uint16("FS_ULIMIT"), + GroupSink: env.String("GROUP_SINK"), + TopicRawWeb: env.String("TOPIC_RAW_WEB"), + TopicRawIOS: env.String("TOPIC_RAW_IOS"), + TopicCache: env.String("TOPIC_CACHE"), + CacheAssets: env.Bool("CACHE_ASSETS"), + AssetsOrigin: env.String("ASSETS_ORIGIN"), } } diff --git a/backend/internal/router/handlers-web.go b/backend/internal/router/handlers-web.go index fc7c6421d..798348bdf 100644 --- a/backend/internal/router/handlers-web.go +++ b/backend/internal/router/handlers-web.go @@ -1,9 +1,9 @@ package router import ( - "bytes" "encoding/json" "errors" + "io/ioutil" "log" "math/rand" "net/http" @@ -117,20 +117,15 @@ func (e *Router) pushMessagesHandlerWeb(w http.ResponseWriter, r *http.Request) body := http.MaxBytesReader(w, r.Body, e.cfg.BeaconSizeLimit) defer body.Close() - var handledMessages bytes.Buffer - - // Process each message in request data - err = ReadBatchReader(body, func(msg Message) { - msg = e.services.Assets.ParseAssets(sessionData.ID, msg) - handledMessages.Write(msg.Encode()) - }) + bytes, err := ioutil.ReadAll(body) if err != nil { - ResponseWithError(w, http.StatusForbidden, err) + ResponseWithError(w, http.StatusInternalServerError, err) // TODO: Split environments; send error here only on staging return } // Send processed messages to queue as array of bytes - err = e.services.Producer.Produce(e.cfg.TopicRawWeb, sessionData.ID, handledMessages.Bytes()) + // TODO: check bytes for nonsense crap + err = e.services.Producer.Produce(e.cfg.TopicRawWeb, sessionData.ID, bytes) if err != nil { log.Printf("can't send processed messages to queue: %s", err) } diff --git a/backend/internal/services/services.go b/backend/internal/services/services.go index 5b84e1dfb..c9915c78e 100644 --- a/backend/internal/services/services.go +++ b/backend/internal/services/services.go @@ -1,7 +1,6 @@ package services import ( - "openreplay/backend/internal/assetscache" "openreplay/backend/internal/config" "openreplay/backend/internal/geoip" "openreplay/backend/internal/uaparser" @@ -10,13 +9,11 @@ import ( "openreplay/backend/pkg/queue/types" "openreplay/backend/pkg/storage" "openreplay/backend/pkg/token" - "openreplay/backend/pkg/url/assets" ) type ServicesBuilder struct { Database *cache.PGCache Producer types.Producer - Assets *assetscache.AssetsCache Flaker *flakeid.Flaker UaParser *uaparser.UAParser GeoIP *geoip.GeoIP @@ -25,11 +22,9 @@ type ServicesBuilder struct { } func New(cfg *config.Config, producer types.Producer, pgconn *cache.PGCache) *ServicesBuilder { - rewriter := assets.NewRewriter(cfg.AssetsOrigin) return &ServicesBuilder{ Database: pgconn, Producer: producer, - Assets: assetscache.New(cfg, rewriter, producer), Storage: storage.NewS3(cfg.AWSRegion, cfg.S3BucketIOSImages), Tokenizer: token.NewTokenizer(cfg.TokenSecret), UaParser: uaparser.NewUAParser(cfg.UAParserFile), From 645652058791f3913a6ba907236ed40b2b3d5624 Mon Sep 17 00:00:00 2001 From: Alex Kaminskii Date: Wed, 11 May 2022 16:36:31 +0200 Subject: [PATCH 4/9] style(backend-http): use UnixMilli --- backend/internal/router/handlers-web.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/internal/router/handlers-web.go b/backend/internal/router/handlers-web.go index fc7c6421d..b73a6d534 100644 --- a/backend/internal/router/handlers-web.go +++ b/backend/internal/router/handlers-web.go @@ -64,14 +64,14 @@ func (e *Router) startSessionHandlerWeb(w http.ResponseWriter, r *http.Request) ResponseWithError(w, http.StatusForbidden, errors.New("browser not recognized")) return } - sessionID, err := e.services.Flaker.Compose(uint64(startTime.UnixNano() / 1e6)) + sessionID, err := e.services.Flaker.Compose(uint64(startTime.UnixMilli())) if err != nil { ResponseWithError(w, http.StatusInternalServerError, err) return } // TODO: if EXPIRED => send message for two sessions association expTime := startTime.Add(time.Duration(p.MaxSessionDuration) * time.Millisecond) - tokenData = &token.TokenData{ID: sessionID, ExpTime: expTime.UnixNano() / 1e6} + tokenData = &token.TokenData{ID: sessionID, ExpTime: expTime.UnixMilli()} e.services.Producer.Produce(e.cfg.TopicRawWeb, tokenData.ID, Encode(&SessionStart{ Timestamp: req.Timestamp, From ebc0185806462bac384dfa28ac0ae19b50336907 Mon Sep 17 00:00:00 2001 From: Alex Kaminskii Date: Wed, 11 May 2022 16:37:49 +0200 Subject: [PATCH 5/9] style(backend-http): split core and local imports --- backend/cmd/http/main.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/backend/cmd/http/main.go b/backend/cmd/http/main.go index 541baab62..3fdd8d34a 100644 --- a/backend/cmd/http/main.go +++ b/backend/cmd/http/main.go @@ -2,6 +2,10 @@ package main import ( "log" + "os" + "os/signal" + "syscall" + "openreplay/backend/internal/config" "openreplay/backend/internal/router" "openreplay/backend/internal/server" @@ -10,9 +14,6 @@ import ( "openreplay/backend/pkg/db/postgres" "openreplay/backend/pkg/pprof" "openreplay/backend/pkg/queue" - "os" - "os/signal" - "syscall" ) func main() { From 396f1a16af569b4c7dbf0e63b08bdbf7ccaabf44 Mon Sep 17 00:00:00 2001 From: Alex Kaminskii Date: Wed, 11 May 2022 17:36:35 +0200 Subject: [PATCH 6/9] refactor(backend-sink): producer close timeout value to config --- backend/cmd/sink/main.go | 2 +- backend/internal/config/sink/config.go | 34 ++++++++++++++------------ 2 files changed, 19 insertions(+), 17 deletions(-) diff --git a/backend/cmd/sink/main.go b/backend/cmd/sink/main.go index 25969146c..269b8fab0 100644 --- a/backend/cmd/sink/main.go +++ b/backend/cmd/sink/main.go @@ -30,7 +30,7 @@ func main() { writer := oswriter.NewWriter(cfg.FsUlimit, cfg.FsDir) producer := queue.NewProducer() - defer producer.Close(15000) + defer producer.Close(cfg.ProducerCloseTimeout) rewriter := assets.NewRewriter(cfg.AssetsOrigin) assetMessageHandler := assetscache.New(cfg, rewriter, producer) diff --git a/backend/internal/config/sink/config.go b/backend/internal/config/sink/config.go index be939df95..a78bfba63 100644 --- a/backend/internal/config/sink/config.go +++ b/backend/internal/config/sink/config.go @@ -5,25 +5,27 @@ import ( ) type Config struct { - FsDir string - FsUlimit uint16 - GroupSink string - TopicRawWeb string - TopicRawIOS string - TopicCache string - CacheAssets bool - AssetsOrigin string + FsDir string + FsUlimit uint16 + GroupSink string + TopicRawWeb string + TopicRawIOS string + TopicCache string + CacheAssets bool + AssetsOrigin string + ProducerCloseTimeout int } func New() *Config { return &Config{ - FsDir: env.String("FS_DIR"), - FsUlimit: env.Uint16("FS_ULIMIT"), - GroupSink: env.String("GROUP_SINK"), - TopicRawWeb: env.String("TOPIC_RAW_WEB"), - TopicRawIOS: env.String("TOPIC_RAW_IOS"), - TopicCache: env.String("TOPIC_CACHE"), - CacheAssets: env.Bool("CACHE_ASSETS"), - AssetsOrigin: env.String("ASSETS_ORIGIN"), + FsDir: env.String("FS_DIR"), + FsUlimit: env.Uint16("FS_ULIMIT"), + GroupSink: env.String("GROUP_SINK"), + TopicRawWeb: env.String("TOPIC_RAW_WEB"), + TopicRawIOS: env.String("TOPIC_RAW_IOS"), + TopicCache: env.String("TOPIC_CACHE"), + CacheAssets: env.Bool("CACHE_ASSETS"), + AssetsOrigin: env.String("ASSETS_ORIGIN"), + ProducerCloseTimeout: 15000, } } From 17d477fc43e20de15fd78810594f19139a556e9c Mon Sep 17 00:00:00 2001 From: Alex Kaminskii Date: Wed, 11 May 2022 18:27:18 +0200 Subject: [PATCH 7/9] fix+style(tracker):3.5.11 fix build & files structure --- tracker/tracker/package.json | 2 +- tracker/tracker/scripts/compile.js | 20 +++++++++---------- .../{messages/index.ts => common/messages.ts} | 4 ++-- .../src/{messages => common}/tsconfig.json | 0 tracker/tracker/src/common/types.ts | 10 ++++++++++ .../types.ts => common/webworker.ts} | 0 tracker/tracker/src/main/app/index.ts | 6 +++--- .../src/main/app/observer/iframe_observer.ts | 2 +- .../tracker/src/main/app/observer/observer.ts | 2 +- .../main/app/observer/shadow_root_observer.ts | 2 +- .../src/main/app/observer/top_observer.ts | 2 +- tracker/tracker/src/main/app/session.ts | 2 +- tracker/tracker/src/main/index.ts | 4 ++-- .../tracker/src/main/modules/connection.ts | 2 +- tracker/tracker/src/main/modules/console.ts | 2 +- tracker/tracker/src/main/modules/cssrules.ts | 2 +- tracker/tracker/src/main/modules/exception.ts | 4 ++-- tracker/tracker/src/main/modules/img.ts | 2 +- tracker/tracker/src/main/modules/input.ts | 2 +- tracker/tracker/src/main/modules/longtasks.ts | 2 +- tracker/tracker/src/main/modules/mouse.ts | 2 +- .../tracker/src/main/modules/performance.ts | 2 +- tracker/tracker/src/main/modules/scroll.ts | 2 +- tracker/tracker/src/main/modules/timing.ts | 4 ++-- tracker/tracker/src/main/modules/viewport.ts | 2 +- tracker/tracker/src/main/tsconfig.json | 2 +- tracker/tracker/src/messages/message.ts | 5 ----- tracker/tracker/src/webworker/BatchWriter.ts | 10 +++++----- .../PrimitiveWriter.ts} | 2 +- tracker/tracker/src/webworker/index.ts | 7 ++++--- tracker/tracker/src/webworker/tsconfig.json | 2 +- .../tracker/src/webworker/url-rewriter.ts.dd | 9 --------- 32 files changed, 59 insertions(+), 62 deletions(-) rename tracker/tracker/src/{messages/index.ts => common/messages.ts} (99%) rename tracker/tracker/src/{messages => common}/tsconfig.json (100%) create mode 100644 tracker/tracker/src/common/types.ts rename tracker/tracker/src/{webworker/types.ts => common/webworker.ts} (100%) delete mode 100644 tracker/tracker/src/messages/message.ts rename tracker/tracker/src/{messages/writer.ts => webworker/PrimitiveWriter.ts} (99%) delete mode 100644 tracker/tracker/src/webworker/url-rewriter.ts.dd diff --git a/tracker/tracker/package.json b/tracker/tracker/package.json index 555efe07d..22d39de12 100644 --- a/tracker/tracker/package.json +++ b/tracker/tracker/package.json @@ -1,7 +1,7 @@ { "name": "@openreplay/tracker", "description": "The OpenReplay tracker main package", - "version": "3.5.10", + "version": "3.5.11", "keywords": [ "logging", "replay" diff --git a/tracker/tracker/scripts/compile.js b/tracker/tracker/scripts/compile.js index ab0091dd5..563254016 100644 --- a/tracker/tracker/scripts/compile.js +++ b/tracker/tracker/scripts/compile.js @@ -15,31 +15,31 @@ async function main() { to: webworker.replace(/'/g, "\\'"), }); await fs.rename('build/main', 'lib'); - await fs.rename('build/messages', 'lib/messages'); + await fs.rename('build/common', 'lib/common'); await replaceInFiles({ files: 'lib/*', - from: /\.\.\/messages/g, - to: './messages', + from: /\.\.\/common/g, + to: './common', }); await replaceInFiles({ files: 'lib/**/*', - from: /\.\.\/\.\.\/messages/g, - to: '../messages', + from: /\.\.\/\.\.\/common/g, + to: '../common', }); await fs.rename('build/cjs/main', 'cjs'); - await fs.rename('build/cjs/messages', 'cjs/messages'); + await fs.rename('build/cjs/common', 'cjs/common'); await fs.writeFile('cjs/package.json', `{ "type": "commonjs" }`); await replaceInFiles({ files: 'cjs/*', - from: /\.\.\/messages/g, - to: './messages', + from: /\.\.\/common/g, + to: './common', }); await replaceInFiles({ files: 'cjs/**/*', - from: /\.\.\/\.\.\/messages/g, - to: '../messages', + from: /\.\.\/\.\.\/common/g, + to: '../common', }); } main() diff --git a/tracker/tracker/src/messages/index.ts b/tracker/tracker/src/common/messages.ts similarity index 99% rename from tracker/tracker/src/messages/index.ts rename to tracker/tracker/src/common/messages.ts index f3267bee0..140bcaac6 100644 --- a/tracker/tracker/src/messages/index.ts +++ b/tracker/tracker/src/common/messages.ts @@ -1,6 +1,6 @@ // Auto-generated, do not edit -import Message from "./message.js"; -import Writer from "./writer.js"; +import type { Writer, Message }from "./types.js"; +export default Message function bindNew( Class: C & { new(...args: A): T } diff --git a/tracker/tracker/src/messages/tsconfig.json b/tracker/tracker/src/common/tsconfig.json similarity index 100% rename from tracker/tracker/src/messages/tsconfig.json rename to tracker/tracker/src/common/tsconfig.json diff --git a/tracker/tracker/src/common/types.ts b/tracker/tracker/src/common/types.ts new file mode 100644 index 000000000..6717eb8bc --- /dev/null +++ b/tracker/tracker/src/common/types.ts @@ -0,0 +1,10 @@ +export interface Writer { + uint(n: number): boolean + int(n: number): boolean + string(s: string): boolean + boolean(b: boolean): boolean +} + +export interface Message { + encode(w: Writer): boolean; +} diff --git a/tracker/tracker/src/webworker/types.ts b/tracker/tracker/src/common/webworker.ts similarity index 100% rename from tracker/tracker/src/webworker/types.ts rename to tracker/tracker/src/common/webworker.ts diff --git a/tracker/tracker/src/main/app/index.ts b/tracker/tracker/src/main/app/index.ts index ace8ecf6e..2874a8867 100644 --- a/tracker/tracker/src/main/app/index.ts +++ b/tracker/tracker/src/main/app/index.ts @@ -1,6 +1,6 @@ +import type Message from "../../common/messages.js"; +import { Timestamp, Metadata } from "../../common/messages.js"; import { timestamp, deprecationWarn } from "../utils.js"; -import { Timestamp, Metadata } from "../../messages/index.js"; -import Message from "../../messages/message.js"; import Nodes from "./nodes.js"; import Observer from "./observer/top_observer.js"; import Sanitizer from "./sanitizer.js"; @@ -13,7 +13,7 @@ import { deviceMemory, jsHeapSizeLimit } from "../modules/performance.js"; import type { Options as ObserverOptions } from "./observer/top_observer.js"; import type { Options as SanitizerOptions } from "./sanitizer.js"; import type { Options as LoggerOptions } from "./logger.js" -import type { Options as WebworkerOptions, WorkerMessageData } from "../../webworker/types.js"; +import type { Options as WebworkerOptions, WorkerMessageData } from "../../common/webworker.js"; // TODO: Unify and clearly describe options logic diff --git a/tracker/tracker/src/main/app/observer/iframe_observer.ts b/tracker/tracker/src/main/app/observer/iframe_observer.ts index be0a7182c..1f50e588a 100644 --- a/tracker/tracker/src/main/app/observer/iframe_observer.ts +++ b/tracker/tracker/src/main/app/observer/iframe_observer.ts @@ -1,5 +1,5 @@ import Observer from "./observer.js"; -import { CreateIFrameDocument } from "../../../messages/index.js"; +import { CreateIFrameDocument } from "../../../common/messages.js"; export default class IFrameObserver extends Observer { observe(iframe: HTMLIFrameElement) { diff --git a/tracker/tracker/src/main/app/observer/observer.ts b/tracker/tracker/src/main/app/observer/observer.ts index 06823e07c..dcbba6365 100644 --- a/tracker/tracker/src/main/app/observer/observer.ts +++ b/tracker/tracker/src/main/app/observer/observer.ts @@ -8,7 +8,7 @@ import { CreateElementNode, MoveNode, RemoveNode, -} from "../../../messages/index.js"; +} from "../../../common/messages.js"; import App from "../index.js"; import { isInstance, inDocument } from "../context.js"; diff --git a/tracker/tracker/src/main/app/observer/shadow_root_observer.ts b/tracker/tracker/src/main/app/observer/shadow_root_observer.ts index 244348ea1..ea37bb30f 100644 --- a/tracker/tracker/src/main/app/observer/shadow_root_observer.ts +++ b/tracker/tracker/src/main/app/observer/shadow_root_observer.ts @@ -1,5 +1,5 @@ import Observer from "./observer.js"; -import { CreateIFrameDocument } from "../../../messages/index.js"; +import { CreateIFrameDocument } from "../../../common/messages.js"; export default class ShadowRootObserver extends Observer { observe(el: Element) { diff --git a/tracker/tracker/src/main/app/observer/top_observer.ts b/tracker/tracker/src/main/app/observer/top_observer.ts index 14bed9768..cab84b162 100644 --- a/tracker/tracker/src/main/app/observer/top_observer.ts +++ b/tracker/tracker/src/main/app/observer/top_observer.ts @@ -4,7 +4,7 @@ import type { Window } from "../context.js"; import IFrameObserver from "./iframe_observer.js"; import ShadowRootObserver from "./shadow_root_observer.js"; -import { CreateDocument } from "../../../messages/index.js"; +import { CreateDocument } from "../../../common/messages.js"; import App from "../index.js"; import { IN_BROWSER, hasOpenreplayAttribute } from '../../utils.js' diff --git a/tracker/tracker/src/main/app/session.ts b/tracker/tracker/src/main/app/session.ts index 169241aa7..602ef8280 100644 --- a/tracker/tracker/src/main/app/session.ts +++ b/tracker/tracker/src/main/app/session.ts @@ -1,5 +1,5 @@ import App, { StartOptions } from "./index.js"; -import { UserID, UserAnonymousID, Metadata } from "../../messages/index.js"; +import { UserID, UserAnonymousID, Metadata } from "../../common/messages.js"; enum ActivityState { diff --git a/tracker/tracker/src/main/index.ts b/tracker/tracker/src/main/index.ts index a55df1d1c..e1b25b43b 100644 --- a/tracker/tracker/src/main/index.ts +++ b/tracker/tracker/src/main/index.ts @@ -1,8 +1,8 @@ import App, { DEFAULT_INGEST_POINT } from "./app/index.js"; export { default as App } from './app/index.js'; -import { UserID, UserAnonymousID, Metadata, RawCustomEvent, CustomIssue } from "../messages/index.js"; -import * as _Messages from "../messages/index.js"; +import { UserID, UserAnonymousID, Metadata, RawCustomEvent, CustomIssue } from "../common/messages.js"; +import * as _Messages from "../common/messages.js"; export const Messages = _Messages; import Connection from "./modules/connection.js"; diff --git a/tracker/tracker/src/main/modules/connection.ts b/tracker/tracker/src/main/modules/connection.ts index a2767790c..72ef972f7 100644 --- a/tracker/tracker/src/main/modules/connection.ts +++ b/tracker/tracker/src/main/modules/connection.ts @@ -1,5 +1,5 @@ import App from "../app/index.js"; -import { ConnectionInformation } from "../../messages/index.js"; +import { ConnectionInformation } from "../../common/messages.js"; export default function(app: App): void { const connection: diff --git a/tracker/tracker/src/main/modules/console.ts b/tracker/tracker/src/main/modules/console.ts index 98db6c144..b6e95d14f 100644 --- a/tracker/tracker/src/main/modules/console.ts +++ b/tracker/tracker/src/main/modules/console.ts @@ -1,6 +1,6 @@ import App from "../app/index.js"; import { IN_BROWSER } from "../utils.js"; -import { ConsoleLog } from "../../messages/index.js"; +import { ConsoleLog } from "../../common/messages.js"; const printError: (e: Error) => string = IN_BROWSER && 'InstallTrigger' in window // detect Firefox diff --git a/tracker/tracker/src/main/modules/cssrules.ts b/tracker/tracker/src/main/modules/cssrules.ts index 18aa3f154..8c75a5366 100644 --- a/tracker/tracker/src/main/modules/cssrules.ts +++ b/tracker/tracker/src/main/modules/cssrules.ts @@ -1,5 +1,5 @@ import App from "../app/index.js"; -import { CSSInsertRuleURLBased, CSSDeleteRule, TechnicalInfo } from "../../messages/index.js"; +import { CSSInsertRuleURLBased, CSSDeleteRule, TechnicalInfo } from "../../common/messages.js"; export default function(app: App | null) { if (app === null) { diff --git a/tracker/tracker/src/main/modules/exception.ts b/tracker/tracker/src/main/modules/exception.ts index 848df03be..be02ca291 100644 --- a/tracker/tracker/src/main/modules/exception.ts +++ b/tracker/tracker/src/main/modules/exception.ts @@ -1,6 +1,6 @@ +import type Message from "../../common/messages.js"; import App from "../app/index.js"; -import { JSException } from "../../messages/index.js"; -import Message from "../../messages/message.js"; +import { JSException } from "../../common/messages.js"; import ErrorStackParser from 'error-stack-parser'; export interface Options { diff --git a/tracker/tracker/src/main/modules/img.ts b/tracker/tracker/src/main/modules/img.ts index 8c0f911a8..da260c414 100644 --- a/tracker/tracker/src/main/modules/img.ts +++ b/tracker/tracker/src/main/modules/img.ts @@ -1,6 +1,6 @@ import { timestamp, isURL } from "../utils.js"; import App from "../app/index.js"; -import { ResourceTiming, SetNodeAttributeURLBased, SetNodeAttribute } from "../../messages/index.js"; +import { ResourceTiming, SetNodeAttributeURLBased, SetNodeAttribute } from "../../common/messages.js"; const PLACEHOLDER_SRC = "https://static.openreplay.com/tracker/placeholder.jpeg"; diff --git a/tracker/tracker/src/main/modules/input.ts b/tracker/tracker/src/main/modules/input.ts index 0cad3c58b..546204730 100644 --- a/tracker/tracker/src/main/modules/input.ts +++ b/tracker/tracker/src/main/modules/input.ts @@ -5,7 +5,7 @@ import { hasOpenreplayAttribute, } from "../utils.js"; import App from "../app/index.js"; -import { SetInputTarget, SetInputValue, SetInputChecked } from "../../messages/index.js"; +import { SetInputTarget, SetInputValue, SetInputChecked } from "../../common/messages.js"; // TODO: take into consideration "contenteditable" attribute type TextEditableElement = HTMLInputElement | HTMLTextAreaElement diff --git a/tracker/tracker/src/main/modules/longtasks.ts b/tracker/tracker/src/main/modules/longtasks.ts index 0f3a7e82a..589c73de2 100644 --- a/tracker/tracker/src/main/modules/longtasks.ts +++ b/tracker/tracker/src/main/modules/longtasks.ts @@ -1,5 +1,5 @@ import App from "../app/index.js"; -import { LongTask } from "../../messages/index.js"; +import { LongTask } from "../../common/messages.js"; // https://w3c.github.io/performance-timeline/#the-performanceentry-interface interface TaskAttributionTiming extends PerformanceEntry { diff --git a/tracker/tracker/src/main/modules/mouse.ts b/tracker/tracker/src/main/modules/mouse.ts index b72e5dbb9..956108963 100644 --- a/tracker/tracker/src/main/modules/mouse.ts +++ b/tracker/tracker/src/main/modules/mouse.ts @@ -4,7 +4,7 @@ import { getLabelAttribute, } from "../utils.js"; import App from "../app/index.js"; -import { MouseMove, MouseClick } from "../../messages/index.js"; +import { MouseMove, MouseClick } from "../../common/messages.js"; import { getInputLabel } from "./input.js"; function _getSelector(target: Element): string { diff --git a/tracker/tracker/src/main/modules/performance.ts b/tracker/tracker/src/main/modules/performance.ts index 8eb7701eb..c7d911c9f 100644 --- a/tracker/tracker/src/main/modules/performance.ts +++ b/tracker/tracker/src/main/modules/performance.ts @@ -1,6 +1,6 @@ import App from "../app/index.js"; import { IN_BROWSER } from "../utils.js"; -import { PerformanceTrack } from "../../messages/index.js"; +import { PerformanceTrack } from "../../common/messages.js"; type Perf = { diff --git a/tracker/tracker/src/main/modules/scroll.ts b/tracker/tracker/src/main/modules/scroll.ts index f9c80e6d9..9d19ccc24 100644 --- a/tracker/tracker/src/main/modules/scroll.ts +++ b/tracker/tracker/src/main/modules/scroll.ts @@ -1,5 +1,5 @@ import App from "../app/index.js"; -import { SetViewportScroll, SetNodeScroll } from "../../messages/index.js"; +import { SetViewportScroll, SetNodeScroll } from "../../common/messages.js"; export default function (app: App): void { let documentScroll = false; diff --git a/tracker/tracker/src/main/modules/timing.ts b/tracker/tracker/src/main/modules/timing.ts index 033741838..01fbd1d0a 100644 --- a/tracker/tracker/src/main/modules/timing.ts +++ b/tracker/tracker/src/main/modules/timing.ts @@ -1,7 +1,7 @@ +import type Message from "../../common/messages.js"; import { isURL } from "../utils.js"; import App from "../app/index.js"; -import { ResourceTiming, PageLoadTiming, PageRenderTiming } from "../../messages/index.js"; -import type Message from "../../messages/message.js"; +import { ResourceTiming, PageLoadTiming, PageRenderTiming } from "../../common/messages.js"; // Inspired by https://github.com/WPO-Foundation/RUM-SpeedIndex/blob/master/src/rum-speedindex.js diff --git a/tracker/tracker/src/main/modules/viewport.ts b/tracker/tracker/src/main/modules/viewport.ts index 626eadd12..1d70a3ebf 100644 --- a/tracker/tracker/src/main/modules/viewport.ts +++ b/tracker/tracker/src/main/modules/viewport.ts @@ -3,7 +3,7 @@ import { SetPageLocation, SetViewportSize, SetPageVisibility, -} from "../../messages/index.js"; +} from "../../common/messages.js"; export default function (app: App): void { let url: string, width: number, height: number; diff --git a/tracker/tracker/src/main/tsconfig.json b/tracker/tracker/src/main/tsconfig.json index f6ac938a6..14a932c39 100644 --- a/tracker/tracker/src/main/tsconfig.json +++ b/tracker/tracker/src/main/tsconfig.json @@ -5,7 +5,7 @@ "lib": ["es6", "dom"], }, "references": [ - { "path": "../messages" } + { "path": "../common" } ], "exclude": ["app/observer"] } diff --git a/tracker/tracker/src/messages/message.ts b/tracker/tracker/src/messages/message.ts deleted file mode 100644 index aeb8619de..000000000 --- a/tracker/tracker/src/messages/message.ts +++ /dev/null @@ -1,5 +0,0 @@ -import Writer from "./writer.js"; - -export default interface Message { - encode(w: Writer): boolean; -} diff --git a/tracker/tracker/src/webworker/BatchWriter.ts b/tracker/tracker/src/webworker/BatchWriter.ts index 5f220bbec..7ddf97dbe 100644 --- a/tracker/tracker/src/webworker/BatchWriter.ts +++ b/tracker/tracker/src/webworker/BatchWriter.ts @@ -1,14 +1,14 @@ -import Writer from "../messages/writer.js"; -import Message from "../messages/message.js"; +import type Message from "../common/messages.js"; +import PrimitiveWriter from "./PrimitiveWriter.js"; import { BatchMeta, Timestamp, -} from "../messages/index.js"; +} from "../common/messages.js"; export default class BatchWriter { private nextIndex = 0 private beaconSize = 2 * 1e5 // Default 200kB - private writer = new Writer(this.beaconSize) + private writer = new PrimitiveWriter(this.beaconSize) private isEmpty = true constructor( @@ -50,7 +50,7 @@ export default class BatchWriter { } // MBTODO: tempWriter for one message? this.beaconSize = Math.min(this.beaconSize*2, this.beaconSizeLimit) - this.writer = new Writer(this.beaconSize) + this.writer = new PrimitiveWriter(this.beaconSize) this.prepareBatchMeta() } } diff --git a/tracker/tracker/src/messages/writer.ts b/tracker/tracker/src/webworker/PrimitiveWriter.ts similarity index 99% rename from tracker/tracker/src/messages/writer.ts rename to tracker/tracker/src/webworker/PrimitiveWriter.ts index 6947420bc..587291bea 100644 --- a/tracker/tracker/src/messages/writer.ts +++ b/tracker/tracker/src/webworker/PrimitiveWriter.ts @@ -59,7 +59,7 @@ const textEncoder: { encode(str: string): Uint8Array } = }, }; -export default class Writer { +export default class PrimitiveWriter { private offset: number = 0; private checkpointOffset: number = 0; private readonly data: Uint8Array; diff --git a/tracker/tracker/src/webworker/index.ts b/tracker/tracker/src/webworker/index.ts index b9640e9e2..3e9341a2d 100644 --- a/tracker/tracker/src/webworker/index.ts +++ b/tracker/tracker/src/webworker/index.ts @@ -1,13 +1,14 @@ -import Message from "../messages/message.js"; +import type Message from "../common/messages.js"; +import type { WorkerMessageData } from "../common/webworker.js"; + import { classes, SetPageVisibility, MouseMove, -} from "../messages/index.js"; +} from "../common/messages.js"; import QueueSender from "./QueueSender.js"; import BatchWriter from "./BatchWriter.js"; -import type { WorkerMessageData } from "./types.js"; const AUTO_SEND_INTERVAL = 10 * 1000 diff --git a/tracker/tracker/src/webworker/tsconfig.json b/tracker/tracker/src/webworker/tsconfig.json index 9e72f437e..6794ea55c 100644 --- a/tracker/tracker/src/webworker/tsconfig.json +++ b/tracker/tracker/src/webworker/tsconfig.json @@ -4,6 +4,6 @@ "lib": ["es6", "webworker"] }, "references": [ - { "path": "../messages" } + { "path": "../common" } ] } diff --git a/tracker/tracker/src/webworker/url-rewriter.ts.dd b/tracker/tracker/src/webworker/url-rewriter.ts.dd deleted file mode 100644 index 956448df2..000000000 --- a/tracker/tracker/src/webworker/url-rewriter.ts.dd +++ /dev/null @@ -1,9 +0,0 @@ - - - - -function getFullURL(baseURL: string, relativeURL: string) { - if (isRelative(relativeURL)) { - - } -} \ No newline at end of file From 883f7eab8a642ff78a43dde2b1d16b30acbbf017 Mon Sep 17 00:00:00 2001 From: ShiKhu Date: Wed, 11 May 2022 23:53:19 +0200 Subject: [PATCH 8/9] fix(tracker-assist):3.5.9: enforce peerjs@1.3.2 --- tracker/tracker-assist/package-lock.json | 62 +++++++++------------ tracker/tracker-assist/package.json | 4 +- tracker/tracker-assist/src/Assist.ts | 1 + tracker/tracker-assist/src/RemoteControl.ts | 2 +- 4 files changed, 30 insertions(+), 39 deletions(-) diff --git a/tracker/tracker-assist/package-lock.json b/tracker/tracker-assist/package-lock.json index f0fd5eb9f..3c159da6d 100644 --- a/tracker/tracker-assist/package-lock.json +++ b/tracker/tracker-assist/package-lock.json @@ -1,16 +1,16 @@ { "name": "@openreplay/tracker-assist", - "version": "3.5.7", + "version": "3.5.8", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@openreplay/tracker-assist", - "version": "3.5.7", + "version": "3.5.8", "license": "MIT", "dependencies": { "csstype": "^3.0.10", - "peerjs": "^1.3.2", + "peerjs": "1.3.2", "socket.io-client": "^4.4.1" }, "devDependencies": { @@ -25,7 +25,7 @@ }, "../tracker": { "name": "@openreplay/tracker", - "version": "3.5.4", + "version": "3.5.11", "dev": true, "license": "MIT", "dependencies": { @@ -644,15 +644,19 @@ } }, "../tracker/node_modules/ajv": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", - "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, "../tracker/node_modules/ansi-escapes": { @@ -1791,12 +1795,6 @@ "node": ">=6" } }, - "../tracker/node_modules/json5/node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, "../tracker/node_modules/levn": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", @@ -1853,9 +1851,9 @@ } }, "../tracker/node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", "dev": true }, "../tracker/node_modules/mkdirp": { @@ -2376,9 +2374,9 @@ } }, "../tracker/node_modules/strip-ansi/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", "dev": true, "engines": { "node": ">=6" @@ -4444,9 +4442,9 @@ "requires": {} }, "ajv": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", - "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -5337,14 +5335,6 @@ "dev": true, "requires": { "minimist": "^1.2.5" - }, - "dependencies": { - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - } } }, "levn": { @@ -5391,9 +5381,9 @@ } }, "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", "dev": true }, "mkdirp": { @@ -5793,9 +5783,9 @@ }, "dependencies": { "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", "dev": true } } diff --git a/tracker/tracker-assist/package.json b/tracker/tracker-assist/package.json index 19149b62a..437a86499 100644 --- a/tracker/tracker-assist/package.json +++ b/tracker/tracker-assist/package.json @@ -1,7 +1,7 @@ { "name": "@openreplay/tracker-assist", "description": "Tracker plugin for screen assistance through the WebRTC", - "version": "3.5.8", + "version": "3.5.9", "keywords": [ "WebRTC", "assistance", @@ -25,7 +25,7 @@ }, "dependencies": { "csstype": "^3.0.10", - "peerjs": "^1.3.2", + "peerjs": "1.3.2", "socket.io-client": "^4.4.1" }, "peerDependencies": { diff --git a/tracker/tracker-assist/src/Assist.ts b/tracker/tracker-assist/src/Assist.ts index 24f04e7e0..ab64ab9b2 100644 --- a/tracker/tracker-assist/src/Assist.ts +++ b/tracker/tracker-assist/src/Assist.ts @@ -11,6 +11,7 @@ import AnnotationCanvas from './AnnotationCanvas.js'; import ConfirmWindow, { callConfirmDefault, controlConfirmDefault } from './ConfirmWindow.js'; import type { Options as ConfirmOptions } from './ConfirmWindow.js'; +// TODO: fully specified strict check (everywhere) //@ts-ignore peerjs hack for webpack5 (?!) TODO: ES/node modules; Peer = Peer.default || Peer; diff --git a/tracker/tracker-assist/src/RemoteControl.ts b/tracker/tracker-assist/src/RemoteControl.ts index a32f81035..02137d99f 100644 --- a/tracker/tracker-assist/src/RemoteControl.ts +++ b/tracker/tracker-assist/src/RemoteControl.ts @@ -20,7 +20,7 @@ export default class RemoteControl { reconnect(ids: string[]) { const storedID = sessionStorage.getItem(this.options.session_control_peer_key) - if (storedID !== null && ids.includes(storedID)) { + if (storedID !== null && ids.indexOf(storedID) !== -1) { this.grantControl(storedID) } else { sessionStorage.removeItem(this.options.session_control_peer_key) From 34947d8ef7c8ba1efd030ab89f70a452b8eb8e88 Mon Sep 17 00:00:00 2001 From: Shekar Siri Date: Fri, 13 May 2022 11:19:23 +0200 Subject: [PATCH 9/9] change(ui) - validation based on ee --- .../components/Client/Users/components/UserForm/UserForm.tsx | 4 ++-- frontend/app/mstore/types/user.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/frontend/app/components/Client/Users/components/UserForm/UserForm.tsx b/frontend/app/components/Client/Users/components/UserForm/UserForm.tsx index 25f35097c..a56e62c83 100644 --- a/frontend/app/components/Client/Users/components/UserForm/UserForm.tsx +++ b/frontend/app/components/Client/Users/components/UserForm/UserForm.tsx @@ -94,7 +94,7 @@ function UserForm(props: Props) { - { !isEnterprise && ( + { isEnterprise && (