@upscopeio/react 2025.11.12 → 2025.12.6
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/index.d.ts +15 -11
- package/index.js +88 -79
- package/index.js.map +1 -1
- package/package.json +1 -1
- package/sdk.js +31 -14
- package/sdk.js.map +1 -1
package/index.d.ts
CHANGED
|
@@ -1,20 +1,24 @@
|
|
|
1
1
|
import { CobrowsingSdkConfiguration, Upscope } from "./sdk";
|
|
2
2
|
import { SDKEvents } from "./sdk-types";
|
|
3
3
|
|
|
4
|
-
type UpscopeProviderProps = {
|
|
5
|
-
test?: boolean;
|
|
6
|
-
enabled?: boolean;
|
|
7
|
-
children: React.ReactNode;
|
|
8
|
-
apiKey: string;
|
|
9
|
-
} & Partial<Omit<CobrowsingSdkConfiguration, "apiKey" | "regionWhitelist">>;
|
|
10
|
-
|
|
11
4
|
type UpscopeContext = {
|
|
12
|
-
Upscope: Upscope | undefined;
|
|
13
|
-
shortId: string | undefined;
|
|
14
5
|
getLookupCode: () => Promise<string | undefined>;
|
|
15
|
-
listen: (event: keyof SDKEvents, callback: (data: any) => void) => void;
|
|
16
|
-
reset: () => void;
|
|
17
6
|
isSharing: boolean;
|
|
7
|
+
listen: <T extends keyof SDKEvents>(
|
|
8
|
+
event: T,
|
|
9
|
+
callback: SDKEvents[T] extends undefined ? () => void : (...args: SDKEvents[T]) => void,
|
|
10
|
+
) => void;
|
|
11
|
+
reset: () => void;
|
|
12
|
+
shortId: string | undefined;
|
|
13
|
+
Upscope: undefined | Upscope;
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
type UpscopeProviderProps = Partial<Omit<CobrowsingSdkConfiguration, "apiKey" | "regionWhitelist">> & {
|
|
17
|
+
apiKey: string;
|
|
18
|
+
children: React.ReactNode;
|
|
19
|
+
enabled?: boolean;
|
|
20
|
+
test?: boolean;
|
|
21
|
+
windowContext?: Window;
|
|
18
22
|
};
|
|
19
23
|
|
|
20
24
|
export function useUpscope(): UpscopeContext;
|
package/index.js
CHANGED
|
@@ -238,10 +238,8 @@ var __generator = this && this.__generator || function(thisArg, body) {
|
|
|
238
238
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
239
239
|
import equal from "fast-deep-equal";
|
|
240
240
|
import { createContext, useCallback, useContext, useEffect, useMemo, useRef, useState } from "react";
|
|
241
|
-
import
|
|
241
|
+
import { upscopeFor } from "./sdk.js";
|
|
242
242
|
var UpscopeContext = createContext({
|
|
243
|
-
Upscope: undefined,
|
|
244
|
-
shortId: undefined,
|
|
245
243
|
getLookupCode: function getLookupCode() {
|
|
246
244
|
return _asyncToGenerator(function() {
|
|
247
245
|
return __generator(this, function(_state) {
|
|
@@ -252,18 +250,77 @@ var UpscopeContext = createContext({
|
|
|
252
250
|
});
|
|
253
251
|
})();
|
|
254
252
|
},
|
|
253
|
+
isSharing: false,
|
|
255
254
|
listen: function(event, callback) {},
|
|
256
255
|
reset: function() {},
|
|
257
|
-
|
|
256
|
+
shortId: undefined,
|
|
257
|
+
Upscope: undefined
|
|
258
258
|
});
|
|
259
|
-
export function
|
|
260
|
-
|
|
259
|
+
export function Masked(param) {
|
|
260
|
+
var children = param.children;
|
|
261
|
+
var beforeRef = useRef(null);
|
|
262
|
+
var afterRef = useRef(null);
|
|
263
|
+
useEffect(function() {
|
|
264
|
+
if (beforeRef.current && afterRef.current) {
|
|
265
|
+
var nextSibling = beforeRef.current.nextSibling;
|
|
266
|
+
while(nextSibling && nextSibling !== afterRef.current){
|
|
267
|
+
nextSibling.dataset.upscopeMasked = "true";
|
|
268
|
+
nextSibling = nextSibling.nextSibling;
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
}, [
|
|
272
|
+
beforeRef,
|
|
273
|
+
afterRef,
|
|
274
|
+
children
|
|
275
|
+
]);
|
|
276
|
+
return _jsxs(_Fragment, {
|
|
277
|
+
children: [
|
|
278
|
+
_jsx("script", {
|
|
279
|
+
ref: beforeRef
|
|
280
|
+
}),
|
|
281
|
+
children,
|
|
282
|
+
_jsx("script", {
|
|
283
|
+
ref: afterRef
|
|
284
|
+
})
|
|
285
|
+
]
|
|
286
|
+
});
|
|
287
|
+
}
|
|
288
|
+
export function NoRemoteControl(param) {
|
|
289
|
+
var children = param.children;
|
|
290
|
+
var beforeRef = useRef(null);
|
|
291
|
+
var afterRef = useRef(null);
|
|
292
|
+
useEffect(function() {
|
|
293
|
+
if (beforeRef.current && afterRef.current) {
|
|
294
|
+
var nextSibling = beforeRef.current.nextSibling;
|
|
295
|
+
while(nextSibling && nextSibling !== afterRef.current){
|
|
296
|
+
nextSibling.dataset.upscopeNoRemoteControl = "true";
|
|
297
|
+
nextSibling = nextSibling.nextSibling;
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
}, [
|
|
301
|
+
beforeRef,
|
|
302
|
+
afterRef,
|
|
303
|
+
children
|
|
304
|
+
]);
|
|
305
|
+
return _jsxs(_Fragment, {
|
|
306
|
+
children: [
|
|
307
|
+
_jsx("script", {
|
|
308
|
+
ref: beforeRef
|
|
309
|
+
}),
|
|
310
|
+
children,
|
|
311
|
+
_jsx("script", {
|
|
312
|
+
ref: afterRef
|
|
313
|
+
})
|
|
314
|
+
]
|
|
315
|
+
});
|
|
261
316
|
}
|
|
262
317
|
export function UpscopeProvider(_param) {
|
|
263
|
-
var
|
|
318
|
+
var _this = this;
|
|
319
|
+
var children = _param.children, enabled = _param.enabled, test = _param.test, windowContext = _param.windowContext, configProps = _objectWithoutProperties(_param, [
|
|
264
320
|
"children",
|
|
265
321
|
"enabled",
|
|
266
|
-
"test"
|
|
322
|
+
"test",
|
|
323
|
+
"windowContext"
|
|
267
324
|
]);
|
|
268
325
|
var Upscope = useMemo(function() {
|
|
269
326
|
return function() {
|
|
@@ -271,10 +328,11 @@ export function UpscopeProvider(_param) {
|
|
|
271
328
|
args[_key] = arguments[_key];
|
|
272
329
|
}
|
|
273
330
|
if (test) return; // Do not use Upscope SDK on test
|
|
274
|
-
|
|
331
|
+
upscopeFor(windowContext !== null && windowContext !== void 0 ? windowContext : window).apply(_this, _toConsumableArray(args));
|
|
275
332
|
};
|
|
276
333
|
}, [
|
|
277
|
-
test
|
|
334
|
+
test,
|
|
335
|
+
windowContext
|
|
278
336
|
]);
|
|
279
337
|
var _useState = _slicedToArray(useState(false), 2), loaded = _useState[0], setLoaded = _useState[1];
|
|
280
338
|
var _useState1 = _slicedToArray(useState(false), 2), sharing = _useState1[0], setSharing = _useState1[1];
|
|
@@ -352,7 +410,6 @@ export function UpscopeProvider(_param) {
|
|
|
352
410
|
configProps
|
|
353
411
|
]);
|
|
354
412
|
useEffect(function() {
|
|
355
|
-
if (!loaded) return;
|
|
356
413
|
Upscope("on", "sessionStart", function() {
|
|
357
414
|
setSharing(true);
|
|
358
415
|
});
|
|
@@ -363,17 +420,24 @@ export function UpscopeProvider(_param) {
|
|
|
363
420
|
setSharing(false);
|
|
364
421
|
});
|
|
365
422
|
}, [
|
|
366
|
-
loaded,
|
|
367
423
|
Upscope
|
|
368
424
|
]);
|
|
369
|
-
var getLookupCode = useCallback(function() {
|
|
370
|
-
return
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
resolve
|
|
374
|
-
|
|
425
|
+
var getLookupCode = useCallback(/*#__PURE__*/ _asyncToGenerator(function() {
|
|
426
|
+
return __generator(this, function(_state) {
|
|
427
|
+
return [
|
|
428
|
+
2,
|
|
429
|
+
new Promise(function(resolve) {
|
|
430
|
+
if (!upscopeActive) {
|
|
431
|
+
resolve(undefined);
|
|
432
|
+
return;
|
|
433
|
+
}
|
|
434
|
+
Upscope("getLookupCode", function(lookupCode) {
|
|
435
|
+
resolve(lookupCode);
|
|
436
|
+
});
|
|
437
|
+
})
|
|
438
|
+
];
|
|
375
439
|
});
|
|
376
|
-
}, [
|
|
440
|
+
}), [
|
|
377
441
|
upscopeActive,
|
|
378
442
|
Upscope
|
|
379
443
|
]);
|
|
@@ -389,73 +453,18 @@ export function UpscopeProvider(_param) {
|
|
|
389
453
|
]);
|
|
390
454
|
return _jsx(UpscopeContext.Provider, {
|
|
391
455
|
value: {
|
|
392
|
-
Upscope: Upscope,
|
|
393
|
-
shortId: shortId,
|
|
394
456
|
getLookupCode: getLookupCode,
|
|
457
|
+
isSharing: sharing,
|
|
395
458
|
listen: listen,
|
|
396
459
|
reset: reset,
|
|
397
|
-
|
|
460
|
+
shortId: shortId,
|
|
461
|
+
Upscope: Upscope
|
|
398
462
|
},
|
|
399
463
|
children: children
|
|
400
464
|
});
|
|
401
465
|
}
|
|
402
|
-
export function
|
|
403
|
-
|
|
404
|
-
var beforeRef = useRef(null);
|
|
405
|
-
var afterRef = useRef(null);
|
|
406
|
-
useEffect(function() {
|
|
407
|
-
if (beforeRef.current && afterRef.current) {
|
|
408
|
-
var nextSibling = beforeRef.current.nextSibling;
|
|
409
|
-
while(nextSibling && nextSibling !== afterRef.current){
|
|
410
|
-
nextSibling.dataset.upscopeMasked = true;
|
|
411
|
-
nextSibling = nextSibling.nextSibling;
|
|
412
|
-
}
|
|
413
|
-
}
|
|
414
|
-
}, [
|
|
415
|
-
beforeRef,
|
|
416
|
-
afterRef,
|
|
417
|
-
children
|
|
418
|
-
]);
|
|
419
|
-
return _jsxs(_Fragment, {
|
|
420
|
-
children: [
|
|
421
|
-
_jsx("script", {
|
|
422
|
-
ref: beforeRef
|
|
423
|
-
}),
|
|
424
|
-
children,
|
|
425
|
-
_jsx("script", {
|
|
426
|
-
ref: afterRef
|
|
427
|
-
})
|
|
428
|
-
]
|
|
429
|
-
});
|
|
430
|
-
}
|
|
431
|
-
export function NoRemoteControl(param) {
|
|
432
|
-
var children = param.children;
|
|
433
|
-
var beforeRef = useRef(null);
|
|
434
|
-
var afterRef = useRef(null);
|
|
435
|
-
useEffect(function() {
|
|
436
|
-
if (beforeRef.current && afterRef.current) {
|
|
437
|
-
var nextSibling = beforeRef.current.nextSibling;
|
|
438
|
-
while(nextSibling && nextSibling !== afterRef.current){
|
|
439
|
-
nextSibling.dataset.upscopeNoRemoteControl = true;
|
|
440
|
-
nextSibling = nextSibling.nextSibling;
|
|
441
|
-
}
|
|
442
|
-
}
|
|
443
|
-
}, [
|
|
444
|
-
beforeRef,
|
|
445
|
-
afterRef,
|
|
446
|
-
children
|
|
447
|
-
]);
|
|
448
|
-
return _jsxs(_Fragment, {
|
|
449
|
-
children: [
|
|
450
|
-
_jsx("script", {
|
|
451
|
-
ref: beforeRef
|
|
452
|
-
}),
|
|
453
|
-
children,
|
|
454
|
-
_jsx("script", {
|
|
455
|
-
ref: afterRef
|
|
456
|
-
})
|
|
457
|
-
]
|
|
458
|
-
});
|
|
466
|
+
export function useUpscope() {
|
|
467
|
+
return useContext(UpscopeContext);
|
|
459
468
|
}
|
|
460
469
|
|
|
461
470
|
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,OAAO,IAAI,EAAE,YAAY,SAAS,EAAE,QAAQ,KAAK,QAAQ,oBAAoB;AACtF,OAAO,WAAW,kBAAkB;AACpC,SAAS,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,QAAQ,QAAQ;AACrG,
|
|
1
|
+
{"version":3,"sources":["index.js"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport equal from \"fast-deep-equal\";\nimport { createContext, useCallback, useContext, useEffect, useMemo, useRef, useState } from \"react\";\nimport { upscopeFor } from \"./sdk.js\";\nconst UpscopeContext = createContext({\n async getLookupCode() {\n return \"\";\n },\n isSharing: false,\n listen: (event, callback) => { },\n reset: () => { },\n shortId: undefined,\n Upscope: undefined,\n});\nexport function Masked({ children }) {\n const beforeRef = useRef(null);\n const afterRef = useRef(null);\n useEffect(() => {\n if (beforeRef.current && afterRef.current) {\n let { nextSibling } = beforeRef.current;\n while (nextSibling && nextSibling !== afterRef.current) {\n nextSibling.dataset.upscopeMasked = \"true\";\n nextSibling = nextSibling.nextSibling;\n }\n }\n }, [beforeRef, afterRef, children]);\n return (_jsxs(_Fragment, { children: [_jsx(\"script\", { ref: beforeRef }), children, _jsx(\"script\", { ref: afterRef })] }));\n}\nexport function NoRemoteControl({ children }) {\n const beforeRef = useRef(null);\n const afterRef = useRef(null);\n useEffect(() => {\n if (beforeRef.current && afterRef.current) {\n let { nextSibling } = beforeRef.current;\n while (nextSibling && nextSibling !== afterRef.current) {\n nextSibling.dataset.upscopeNoRemoteControl = \"true\";\n nextSibling = nextSibling.nextSibling;\n }\n }\n }, [beforeRef, afterRef, children]);\n return (_jsxs(_Fragment, { children: [_jsx(\"script\", { ref: beforeRef }), children, _jsx(\"script\", { ref: afterRef })] }));\n}\nexport function UpscopeProvider({ children, enabled, test, windowContext, ...configProps }) {\n const Upscope = useMemo(() => (...args) => {\n if (test)\n return; // Do not use Upscope SDK on test\n upscopeFor(windowContext ?? window)(...args);\n }, [test, windowContext]);\n const [loaded, setLoaded] = useState(false);\n const [sharing, setSharing] = useState(false);\n const [shortId, setShortId] = useState(undefined);\n const [currentConfiguration, setCurrentConfiguration] = useState(undefined);\n const upscopeActive = enabled && loaded;\n const [pendingConfigurationUpdate, setPendingConfigurationUpdate] = useState(null);\n enabled ??= true;\n useEffect(() => {\n if (currentConfiguration === undefined || !upscopeActive) {\n setPendingConfigurationUpdate(null);\n return;\n }\n const config = Object.entries(configProps)\n .filter(([configName, configValue]) => configName !== \"regionWhitelist\" &&\n !equal(configValue, currentConfiguration[configName]))\n .reduce((config, [configName, configValue]) => {\n config[configName] = configValue;\n return config;\n }, {});\n setPendingConfigurationUpdate(Object.keys(config).length === 0 ? null : config);\n }, [currentConfiguration, configProps, upscopeActive]);\n useEffect(() => {\n if (!currentConfiguration)\n return;\n const isEnabledFirstTime = enabled && !loaded;\n const isDisabledAfterInit = !enabled && loaded;\n if (isEnabledFirstTime) {\n Upscope(\"init\", currentConfiguration);\n setLoaded(true);\n }\n else if (isDisabledAfterInit) {\n Upscope(\"reset\", false);\n }\n }, [enabled, loaded, currentConfiguration, Upscope]);\n useEffect(() => {\n if (upscopeActive) {\n Upscope(\"getShortId\", (shortId) => {\n setShortId(shortId);\n });\n }\n else {\n setShortId(undefined);\n }\n }, [upscopeActive, Upscope]);\n useEffect(() => {\n if (!upscopeActive || !pendingConfigurationUpdate || !currentConfiguration)\n return;\n Upscope(\"updateConnection\", pendingConfigurationUpdate);\n setPendingConfigurationUpdate(null);\n const newCurrentConfiguration = { ...currentConfiguration, ...pendingConfigurationUpdate };\n setCurrentConfiguration(newCurrentConfiguration);\n }, [upscopeActive, pendingConfigurationUpdate, currentConfiguration, Upscope]);\n useEffect(() => {\n if (currentConfiguration || !enabled)\n return;\n // Initialize configurations\n setCurrentConfiguration(configProps);\n }, [enabled, currentConfiguration, configProps]);\n useEffect(() => {\n Upscope(\"on\", \"sessionStart\", () => {\n setSharing(true);\n });\n Upscope(\"on\", \"sessionContinue\", () => {\n setSharing(true);\n });\n Upscope(\"on\", \"sessionEnd\", () => {\n setSharing(false);\n });\n }, [Upscope]);\n const getLookupCode = useCallback(async () => {\n return new Promise((resolve) => {\n if (!upscopeActive) {\n resolve(undefined);\n return;\n }\n Upscope(\"getLookupCode\", (lookupCode) => {\n resolve(lookupCode);\n });\n });\n }, [upscopeActive, Upscope]);\n const listen = useCallback((event, callback) => {\n Upscope(\"on\", event, callback);\n }, [Upscope]);\n const reset = useCallback(() => {\n Upscope(\"reset\", true);\n }, [Upscope]);\n return (_jsx(UpscopeContext.Provider, { value: {\n getLookupCode,\n isSharing: sharing,\n listen,\n reset,\n shortId,\n Upscope,\n }, children: children }));\n}\nexport function useUpscope() {\n return useContext(UpscopeContext);\n}\n"]}
|
package/package.json
CHANGED
package/sdk.js
CHANGED
|
@@ -23,10 +23,11 @@ function _unsupportedIterableToArray(o, minLen) {
|
|
|
23
23
|
if (n === "Map" || n === "Set") return Array.from(n);
|
|
24
24
|
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
|
|
25
25
|
}
|
|
26
|
-
var
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
26
|
+
var loadedWindows = new WeakSet();
|
|
27
|
+
var environment = window.__upscope__sdk__load__environment;
|
|
28
|
+
function loadSDK(w, apiKey) {
|
|
29
|
+
if (typeof w.Upscope !== "undefined") {
|
|
30
|
+
loadedWindows.add(w);
|
|
30
31
|
return;
|
|
31
32
|
}
|
|
32
33
|
var i = function i1() {
|
|
@@ -37,30 +38,46 @@ function loadSDK(apiKey) {
|
|
|
37
38
|
};
|
|
38
39
|
i.q = [];
|
|
39
40
|
// The real Upscope implementation is loaded below
|
|
40
|
-
|
|
41
|
+
w.Upscope = i;
|
|
41
42
|
var s = document.createElement("script");
|
|
42
43
|
s.type = "text/javascript";
|
|
43
44
|
s.async = true;
|
|
44
|
-
|
|
45
|
+
var _;
|
|
46
|
+
s.src = (_ = ({
|
|
47
|
+
development: "http://code.upscope.local/".concat(apiKey, ".js"),
|
|
48
|
+
production: "https://code.upscope.io/".concat(apiKey, ".js"),
|
|
49
|
+
staging: "https://code.upscope.xyz/".concat(apiKey, ".js")
|
|
50
|
+
})[environment !== null && environment !== void 0 ? environment : "production"]) !== null && _ !== void 0 ? _ : "https://code.upscope.io/".concat(apiKey, ".js");
|
|
45
51
|
document.head.appendChild(s);
|
|
46
|
-
|
|
52
|
+
loadedWindows.add(w);
|
|
47
53
|
}
|
|
48
|
-
var
|
|
49
|
-
for(var _len = arguments.length, instruction = new Array(_len), _key =
|
|
50
|
-
instruction[_key] = arguments[_key];
|
|
54
|
+
var ScopedUpscope = function ScopedUpscope(w) {
|
|
55
|
+
for(var _len = arguments.length, instruction = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){
|
|
56
|
+
instruction[_key - 1] = arguments[_key];
|
|
51
57
|
}
|
|
52
|
-
var
|
|
53
|
-
if (!
|
|
58
|
+
var _w;
|
|
59
|
+
if (!loadedWindows.has(w)) {
|
|
54
60
|
if (instruction[0] === "init") {
|
|
55
61
|
var config = instruction[1];
|
|
56
62
|
if (!(config === null || config === void 0 ? void 0 : config.apiKey)) throw new Error("API key not specified");
|
|
57
|
-
loadSDK(config.apiKey);
|
|
63
|
+
loadSDK(w, config.apiKey);
|
|
58
64
|
} else {
|
|
59
65
|
throw new Error("Upscope is not loaded");
|
|
60
66
|
}
|
|
61
67
|
}
|
|
62
|
-
|
|
68
|
+
(_w = w).Upscope.apply(_w, _toConsumableArray(instruction));
|
|
63
69
|
};
|
|
70
|
+
export var upscopeFor = function upscopeFor(w) {
|
|
71
|
+
return function() {
|
|
72
|
+
for(var _len = arguments.length, instruction = new Array(_len), _key = 0; _key < _len; _key++){
|
|
73
|
+
instruction[_key] = arguments[_key];
|
|
74
|
+
}
|
|
75
|
+
ScopedUpscope.apply(void 0, [
|
|
76
|
+
w
|
|
77
|
+
].concat(_toConsumableArray(instruction)));
|
|
78
|
+
};
|
|
79
|
+
};
|
|
80
|
+
var _Upscope = upscopeFor(window);
|
|
64
81
|
export default _Upscope;
|
|
65
82
|
|
|
66
83
|
|
package/sdk.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["sdk.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAI,
|
|
1
|
+
{"version":3,"sources":["sdk.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAM,gBAAgB,IAAI;AAC1B,IAAM,cAAc,OAAO,iCAAiC;AAC5D,SAAS,QAAQ,CAAC,EAAE,MAAM,EAAE;IACxB,IAAI,OAAO,EAAE,OAAO,KAAK,aAAa;QAClC,cAAc,GAAG,CAAC;QAClB;IACJ,CAAC;IACD,IAAM,IAAI,SAAJ,KAAuB;QAAT,IAAA,IAAA,OAAA,UAAA,QAAA,AAAG,OAAH,UAAA,OAAA,OAAA,GAAA,OAAA,MAAA,OAAA;YAAG,KAAH,QAAA,SAAA,CAAA,KAAO;QAAD;QACtB,EAAE,CAAC,CAAC,IAAI,CAAC;IACb;IACA,EAAE,CAAC,GAAG,EAAE;IACR,kDAAkD;IAClD,EAAE,OAAO,GAAG;IACZ,IAAM,IAAI,SAAS,aAAa,CAAC;IACjC,EAAE,IAAI,GAAG;IACT,EAAE,KAAK,GAAG,IAAI;QAEV;IADJ,EAAE,GAAG,GACD,CAAA,IAAA,CAAA;QACI,aAAa,AAAC,6BAAmC,OAAP,QAAO;QACjD,YAAY,AAAC,2BAAiC,OAAP,QAAO;QAC9C,SAAS,AAAC,4BAAkC,OAAP,QAAO;IAChD,CAAA,CAAC,CAAC,wBAAA,yBAAA,cAAe,YAAY,CAAC,cAJ9B,eAAA,IAIkC,AAAC,2BAAiC,OAAP,QAAO,MAAI;IAC5E,SAAS,IAAI,CAAC,WAAW,CAAC;IAC1B,cAAc,GAAG,CAAC;AACtB;AACA,IAAM,gBAAgB,SAAhB,cAA0B,CAAC,EAAkB;IAAhB,IAAA,IAAA,OAAA,UAAA,QAAA,AAAG,cAAH,UAAA,OAAA,IAAA,OAAA,KAAc,GAAd,OAAA,GAAA,OAAA,MAAA,OAAA;QAAG,YAAH,OAAA,KAAA,SAAA,CAAA,KAAc;IAAD;QAY5C;IAXA,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI;QACvB,IAAI,WAAW,CAAC,EAAE,KAAK,QAAQ;YAC3B,IAAM,SAAS,WAAW,CAAC,EAAE;YAC7B,IAAI,CAAC,CAAA,mBAAA,oBAAA,KAAA,IAAA,OAAQ,MAAK,AAAC,GACf,MAAM,IAAI,MAAM,yBAAyB;YAC7C,QAAQ,GAAG,OAAO,MAAM;QAC5B,OACK;YACD,MAAM,IAAI,MAAM,yBAAyB;QAC7C,CAAC;IACL,CAAC;IACD,CAAA,KAAA,GAAE,OAAO,CAAT,MAAA,IAAU,mBAAG;AACjB;AACA,OAAO,IAAM,aAAa,SAAb,WAAuB,CAAC,EAAE;IACnC,OAAO,WAAoB;yCAAhB;YAAA;;QACP,cAAA,MAAA,KAAA,GAAA;YAAc;SAAkB,CAAhC,OAAiB,mBAAG;IACxB;AACJ,EAAE;AACF,IAAM,WAAW,WAAW;AAC5B,eAAe,SAAS","file":"sdk.js","sourcesContent":["const loadedWindows = new WeakSet();\nconst environment = window.__upscope__sdk__load__environment;\nfunction loadSDK(w, apiKey) {\n if (typeof w.Upscope !== \"undefined\") {\n loadedWindows.add(w);\n return;\n }\n const i = function (...args) {\n i.q.push(args);\n };\n i.q = [];\n // The real Upscope implementation is loaded below\n w.Upscope = i;\n const s = document.createElement(\"script\");\n s.type = \"text/javascript\";\n s.async = true;\n s.src =\n {\n development: `http://code.upscope.local/${apiKey}.js`,\n production: `https://code.upscope.io/${apiKey}.js`,\n staging: `https://code.upscope.xyz/${apiKey}.js`,\n }[environment ?? \"production\"] ?? `https://code.upscope.io/${apiKey}.js`;\n document.head.appendChild(s);\n loadedWindows.add(w);\n}\nconst ScopedUpscope = function (w, ...instruction) {\n if (!loadedWindows.has(w)) {\n if (instruction[0] === \"init\") {\n const config = instruction[1];\n if (!config?.apiKey)\n throw new Error(\"API key not specified\");\n loadSDK(w, config.apiKey);\n }\n else {\n throw new Error(\"Upscope is not loaded\");\n }\n }\n w.Upscope(...instruction);\n};\nexport const upscopeFor = function (w) {\n return (...instruction) => {\n ScopedUpscope(w, ...instruction);\n };\n};\nconst _Upscope = upscopeFor(window);\nexport default _Upscope;\n"]}
|