@decartai/sdk 0.1.21 → 0.1.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/package.js CHANGED
@@ -1,4 +1,4 @@
1
1
  //#region package.json
2
- var version = "0.1.21";
2
+ var version = "0.1.22";
3
3
  //#endregion
4
4
  export { version };
@@ -83,11 +83,21 @@ function createBrowserFrameMetadataDiagnostics() {
83
83
  dispose: () => reader.dispose()
84
84
  };
85
85
  }
86
+ const WORKER_URL = () => new URL("./frame-metadata-worker.js", import.meta.url);
86
87
  function createFrameMetadataWorker() {
87
- return new Worker(new URL("./frame-metadata-worker.js", import.meta.url));
88
+ return new Worker(WORKER_URL());
89
+ }
90
+ function isFrameMetadataWorkerSameOrigin(workerUrl, pageOrigin) {
91
+ if (workerUrl.protocol !== "http:" && workerUrl.protocol !== "https:") return true;
92
+ return workerUrl.origin === pageOrigin;
88
93
  }
89
94
  function isFrameMetadataRuntimeSupported() {
90
95
  if (typeof window === "undefined") return false;
96
+ try {
97
+ if (!isFrameMetadataWorkerSameOrigin(WORKER_URL(), window.location?.origin)) return false;
98
+ } catch {
99
+ return false;
100
+ }
91
101
  const maybeWindow = window;
92
102
  const userAgent = window.navigator?.userAgent?.toLowerCase() ?? "";
93
103
  const isChromiumBased = /(?:chrome|chromium|crmo)\//.test(userAgent) && !/crios\//.test(userAgent);
@@ -96,4 +106,4 @@ function isFrameMetadataRuntimeSupported() {
96
106
  return scriptTransformSupported || insertableStreamsSupported;
97
107
  }
98
108
  //#endregion
99
- export { FrameMetadataTracker, createBrowserFrameMetadataDiagnostics, createFrameMetadataWorker, isFrameMetadataRuntimeSupported };
109
+ export { FrameMetadataTracker, createBrowserFrameMetadataDiagnostics, createFrameMetadataWorker, isFrameMetadataRuntimeSupported, isFrameMetadataWorkerSameOrigin };
@@ -93,7 +93,7 @@ const createRealTimeSubscribeClient = (opts) => {
93
93
  });
94
94
  if (frameTiming) {
95
95
  if (!opts.createFrameMetadataWorker) throw createFrameMetadataSubscribeUnsupportedError("this platform has no frame-metadata worker");
96
- if (!(opts.isFrameMetadataRuntimeSupported?.() ?? false)) throw createFrameMetadataSubscribeUnsupportedError("encoded transforms are unavailable");
96
+ if (!(opts.isFrameMetadataRuntimeSupported?.() ?? false)) throw createFrameMetadataSubscribeUnsupportedError("encoded transforms are unavailable or the SDK is served cross-origin");
97
97
  try {
98
98
  frameMetadataWorker = opts.createFrameMetadataWorker();
99
99
  } catch (error) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@decartai/sdk",
3
- "version": "0.1.21",
3
+ "version": "0.1.22",
4
4
  "description": "Decart's JavaScript SDK",
5
5
  "type": "module",
6
6
  "license": "MIT",