@r2u/javascript-ar-sdk 6.23.0 → 6.23.2
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/ar.bundle.js +34 -15
- package/dist/index.js +1 -1
- package/dist/init.bundle.js +1 -1
- package/dist/sku.bundle.js +1 -1
- package/dist/src/methods/init.js +5 -15
- package/dist/src/methods/init.js.map +1 -1
- package/dist/src/services/cache.d.ts +18 -0
- package/dist/src/services/cache.js +133 -0
- package/dist/src/services/cache.js.map +1 -0
- package/dist/src/services/product.js +0 -3
- package/dist/src/services/product.js.map +1 -1
- package/dist/src/services/requests.js +21 -2
- package/dist/src/services/requests.js.map +1 -1
- package/dist/src/utils/generateSHA256.d.ts +1 -0
- package/dist/src/utils/generateSHA256.js +25 -0
- package/dist/src/utils/generateSHA256.js.map +1 -0
- package/dist/vendors.5a5d3beed91e455e8aa4.bundle.js +1 -0
- package/dist/{vendors.c07573b5d759d2703806.bundle.js → vendors.74899dd75aec843bf8a8.bundle.js} +74 -10
- package/dist/viewer.bundle.js +21 -2
- package/package.json +3 -2
- package/CHANGELOG.md +0 -65
- package/dist/vendors.3c46d05b4bb689659a29.bundle.js +0 -20
- /package/dist/{vendors.c07573b5d759d2703806.bundle.js.LICENSE.txt → vendors.74899dd75aec843bf8a8.bundle.js.LICENSE.txt} +0 -0
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { generateSHA256 } from '../../src/utils/generateSHA256';
|
|
11
|
+
const LS_PREFIX_PROJECT = 'r2u-sdk-cache';
|
|
12
|
+
const LS_PREFIX_VERSION = `v${process.env.REACT_APP_VERSION}`;
|
|
13
|
+
const LS_PREFIX = `${LS_PREFIX_PROJECT}-${LS_PREFIX_VERSION}`;
|
|
14
|
+
const TTL_OK_MS = 5 * 60 * 1000;
|
|
15
|
+
const TTL_NOTFOUND_MS = 30 * 1000;
|
|
16
|
+
const SESSION_REFRESH_CACHE_KEY = 'r2u-sdk-refresh-cache';
|
|
17
|
+
const pendingPromisesMap = new Map();
|
|
18
|
+
const safeLS = {
|
|
19
|
+
get(key) {
|
|
20
|
+
try {
|
|
21
|
+
return localStorage.getItem(key);
|
|
22
|
+
}
|
|
23
|
+
catch (_a) {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
set(key, value) {
|
|
28
|
+
try {
|
|
29
|
+
localStorage.setItem(key, value);
|
|
30
|
+
}
|
|
31
|
+
catch (_a) {
|
|
32
|
+
// noop - window.localStorage not available in some environments
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
remove(key) {
|
|
36
|
+
try {
|
|
37
|
+
localStorage.removeItem(key);
|
|
38
|
+
}
|
|
39
|
+
catch (_a) {
|
|
40
|
+
// noop - window.localStorage not available in some environments
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
};
|
|
44
|
+
function hashKey(path) {
|
|
45
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
46
|
+
const hash = yield generateSHA256(path);
|
|
47
|
+
return `${LS_PREFIX}-${hash}`;
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
export function readCache(path) {
|
|
51
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
52
|
+
const raw = safeLS.get(yield hashKey(path));
|
|
53
|
+
if (!raw)
|
|
54
|
+
return undefined;
|
|
55
|
+
try {
|
|
56
|
+
const entry = JSON.parse(raw);
|
|
57
|
+
if (entry.expiresAt < Date.now()) {
|
|
58
|
+
safeLS.remove(yield hashKey(path));
|
|
59
|
+
return undefined;
|
|
60
|
+
}
|
|
61
|
+
return entry.value;
|
|
62
|
+
}
|
|
63
|
+
catch (_a) {
|
|
64
|
+
safeLS.remove(yield hashKey(path));
|
|
65
|
+
return undefined;
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
export function writeCache(args) {
|
|
70
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
71
|
+
const { path, value, status = 'ok' } = args;
|
|
72
|
+
const ttl = status === 'notfound' ? TTL_NOTFOUND_MS : TTL_OK_MS;
|
|
73
|
+
const key = yield hashKey(path);
|
|
74
|
+
const entry = { value, expiresAt: Date.now() + ttl };
|
|
75
|
+
safeLS.set(key, JSON.stringify(entry));
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
export function invalidate(path) {
|
|
79
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
80
|
+
if (path) {
|
|
81
|
+
safeLS.remove(yield hashKey(path));
|
|
82
|
+
pendingPromisesMap.delete(path);
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
pendingPromisesMap.clear();
|
|
86
|
+
try {
|
|
87
|
+
for (let i = localStorage.length - 1; i >= 0; i -= 1) {
|
|
88
|
+
const key = localStorage.key(i);
|
|
89
|
+
if (key && key.startsWith(LS_PREFIX_PROJECT))
|
|
90
|
+
localStorage.removeItem(key);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
catch (_a) {
|
|
94
|
+
// noop
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
function createFetchPromise(args) {
|
|
99
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
100
|
+
try {
|
|
101
|
+
const response = yield args.fetcher();
|
|
102
|
+
return response;
|
|
103
|
+
}
|
|
104
|
+
finally {
|
|
105
|
+
pendingPromisesMap.delete(args.path);
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
export function dedupedFetch(args) {
|
|
110
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
111
|
+
const { path, fetcher, options = {} } = args;
|
|
112
|
+
if (!options.refreshCache) {
|
|
113
|
+
const cached = yield readCache(path);
|
|
114
|
+
if (cached !== undefined)
|
|
115
|
+
return cached;
|
|
116
|
+
}
|
|
117
|
+
const pending = pendingPromisesMap.get(path);
|
|
118
|
+
if (pending)
|
|
119
|
+
return pending;
|
|
120
|
+
const promise = createFetchPromise({ path, fetcher });
|
|
121
|
+
pendingPromisesMap.set(path, promise);
|
|
122
|
+
return promise;
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
export function getSessionRefreshCache() {
|
|
126
|
+
try {
|
|
127
|
+
return sessionStorage.getItem(SESSION_REFRESH_CACHE_KEY) === 'true';
|
|
128
|
+
}
|
|
129
|
+
catch (_a) {
|
|
130
|
+
return false;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../src/services/cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,8 +12,6 @@ import state from '../state';
|
|
|
12
12
|
import querystring from 'querystring';
|
|
13
13
|
export default function (sku) {
|
|
14
14
|
return __awaiter(this, void 0, void 0, function* () {
|
|
15
|
-
if (state.products[sku])
|
|
16
|
-
return Promise.resolve(state.products[sku]);
|
|
17
15
|
const query = querystring.encode({
|
|
18
16
|
'product.sku': sku,
|
|
19
17
|
'asset.types': ['GLB', 'USDZ'].join(','),
|
|
@@ -42,7 +40,6 @@ export default function (sku) {
|
|
|
42
40
|
bloom: customerProduct.bloom,
|
|
43
41
|
viewerOptions: customerProduct.viewerOptions || {},
|
|
44
42
|
};
|
|
45
|
-
state.products[sku] = product;
|
|
46
43
|
return product;
|
|
47
44
|
});
|
|
48
45
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"product.js","sourceRoot":"","sources":["../../../src/services/product.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AAChC,OAAO,KAAK,MAAM,UAAU,CAAA;AAC5B,OAAO,WAAW,MAAM,aAAa,CAAA;AA8CrC,MAAM,CAAC,OAAO,WAAiB,GAAW;;QACxC,
|
|
1
|
+
{"version":3,"file":"product.js","sourceRoot":"","sources":["../../../src/services/product.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AAChC,OAAO,KAAK,MAAM,UAAU,CAAA;AAC5B,OAAO,WAAW,MAAM,aAAa,CAAA;AA8CrC,MAAM,CAAC,OAAO,WAAiB,GAAW;;QACxC,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC;YAC/B,aAAa,EAAE,GAAG;YAClB,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;YACxC,uBAAuB,EAAE,SAAS;SACnC,CAAC,CAAA;QACF,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,GAAG,CAClC,cAAc,KAAK,CAAC,QAAQ,CAAC,GAAG,oBAAoB,KAAK,EAAE,CAC5D,CAAsB,CAAA;QAEvB,IAAI,CAAC,eAAe;YAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAA;QAE5D,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,IAAI,EAAE,CAAA;QAC3C,MAAM,cAAc,GAAG,eAAe,CAAC,eAAe,IAAI,EAAE,CAAA;QAC5D,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAY,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,CAAA;QACpE,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAY,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAA;QAEtE,MAAM,OAAO,GAAY;YACvB,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YACjC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YACpC,QAAQ,EAAE,cAAc,CAAC,MAAM,GAAG,CAAC;YACnC,IAAI,EAAE,eAAe,CAAC,IAAI;YAC1B,SAAS,EAAE,eAAe,CAAC,SAAS,IAAI,OAAO;YAC/C,MAAM,EAAE,eAAe,CAAC,MAAM,IAAI,KAAK;YACvC,KAAK,EAAE,eAAe,CAAC,QAAQ;YAC/B,OAAO,EAAE,eAAe,CAAC,OAAO;YAChC,cAAc,EAAE,eAAe,CAAC,cAAc;YAC9C,MAAM,EAAE,eAAe,CAAC,MAAM;YAC9B,IAAI,EAAE,eAAe,CAAC,IAAI;YAC1B,QAAQ,EAAE,eAAe,CAAC,QAAQ;YAClC,KAAK,EAAE,eAAe,CAAC,KAAK;YAC5B,aAAa,EAAE,eAAe,CAAC,aAAa,IAAK,EAAoB;SACtE,CAAA;QAED,OAAO,OAAO,CAAA;IAChB,CAAC;CAAA"}
|
|
@@ -8,10 +8,11 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
10
|
import state from '../state';
|
|
11
|
+
import { dedupedFetch, writeCache } from './cache';
|
|
11
12
|
const endpoint = process.env.NODE_ENV === 'development'
|
|
12
13
|
? 'https://dev-api.r2u.io'
|
|
13
14
|
: 'https://api.r2u.io';
|
|
14
|
-
|
|
15
|
+
function _get(path) {
|
|
15
16
|
return __awaiter(this, void 0, void 0, function* () {
|
|
16
17
|
const headers = {};
|
|
17
18
|
if (state.refreshCache) {
|
|
@@ -21,7 +22,25 @@ export function get(path) {
|
|
|
21
22
|
method: 'get',
|
|
22
23
|
headers,
|
|
23
24
|
});
|
|
24
|
-
|
|
25
|
+
if (!response.ok && response.status !== 404) {
|
|
26
|
+
throw new Error(`R2U - HTTP ${response.status}`);
|
|
27
|
+
}
|
|
28
|
+
const value = yield response.json();
|
|
29
|
+
yield writeCache({
|
|
30
|
+
path,
|
|
31
|
+
value,
|
|
32
|
+
status: response.status === 404 ? 'notfound' : 'ok',
|
|
33
|
+
});
|
|
34
|
+
return value;
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
export function get(path) {
|
|
38
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
39
|
+
return dedupedFetch({
|
|
40
|
+
path,
|
|
41
|
+
fetcher: _get.bind(null, path),
|
|
42
|
+
options: { refreshCache: state.refreshCache },
|
|
43
|
+
});
|
|
25
44
|
});
|
|
26
45
|
}
|
|
27
46
|
export function post(path, body) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requests.js","sourceRoot":"","sources":["../../../src/services/requests.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,KAAK,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"requests.js","sourceRoot":"","sources":["../../../src/services/requests.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,KAAK,MAAM,UAAU,CAAA;AAC5B,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAElD,MAAM,QAAQ,GACZ,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa;IACpC,CAAC,CAAC,wBAAwB;IAC1B,CAAC,CAAC,oBAAoB,CAAA;AAE1B,SAAe,IAAI,CAAC,IAAY;;QAC9B,MAAM,OAAO,GAAgB,EAAE,CAAA;QAC/B,IAAI,KAAK,CAAC,YAAY,EAAE;YACtB,OAAO,CAAC,eAAe,CAAC,GAAG,WAAW,CAAA;SACvC;QAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,QAAQ,GAAG,IAAI,EAAE,EAAE;YACjD,MAAM,EAAE,KAAK;YACb,OAAO;SACR,CAAC,CAAA;QAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;YAC3C,MAAM,IAAI,KAAK,CAAC,cAAc,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAA;SACjD;QAED,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;QACnC,MAAM,UAAU,CAAC;YACf,IAAI;YACJ,KAAK;YACL,MAAM,EAAE,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI;SACpD,CAAC,CAAA;QACF,OAAO,KAAK,CAAA;IACd,CAAC;CAAA;AAED,MAAM,UAAgB,GAAG,CAAC,IAAY;;QACpC,OAAO,YAAY,CAAC;YAClB,IAAI;YACJ,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC;YAC9B,OAAO,EAAE,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE;SAC9C,CAAC,CAAA;IACJ,CAAC;CAAA;AAED,MAAM,UAAgB,IAAI,CAAC,IAAY,EAAE,IAAa;;QACpD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,QAAQ,GAAG,IAAI,EAAE,EAAE;YACjD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAA;QAEF,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAA;IACxB,CAAC;CAAA;AAED,MAAM,UAAgB,UAAU,CAAC,GAAW;;QAC1C,IAAI;YACF,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAClC,MAAM,EAAE,MAAM;aACf,CAAC,CAAA;YACF,OAAO,MAAM,KAAK,GAAG,CAAA;SACtB;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAClB,OAAO,KAAK,CAAA;SACb;IACH,CAAC;CAAA;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAW,EAAE;IACnC,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa;QAC3C,CAAC,CAAC,uBAAuB;QACzB,CAAC,CAAC,oBAAoB,CAAA;AAC1B,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function generateSHA256(value: string): Promise<string>;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
export function generateSHA256(value) {
|
|
11
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
12
|
+
try {
|
|
13
|
+
const encoder = new TextEncoder();
|
|
14
|
+
const data = encoder.encode(value);
|
|
15
|
+
const hashBuffer = yield crypto.subtle.digest('SHA-256', data);
|
|
16
|
+
return Array.from(new Uint8Array(hashBuffer))
|
|
17
|
+
.map((b) => b.toString(16).padStart(2, '0'))
|
|
18
|
+
.join('');
|
|
19
|
+
}
|
|
20
|
+
catch (_a) {
|
|
21
|
+
return value;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=generateSHA256.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generateSHA256.js","sourceRoot":"","sources":["../../../src/utils/generateSHA256.ts"],"names":[],"mappings":";;;;;;;;;AAAA,MAAM,UAAgB,cAAc,CAAC,KAAa;;QAChD,IAAI;YACF,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;YACjC,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YAElC,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;YAE9D,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;iBAC1C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;iBAC3C,IAAI,CAAC,EAAE,CAAC,CAAA;SACZ;QAAC,WAAM;YACN,OAAO,KAAK,CAAA;SACb;IACH,CAAC;CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunkR2U=self.webpackChunkR2U||[]).push([[74],{7374:function(e,t,n){n.d(t,{J1:function(){return u},E9:function(){return d},XH:function(){return p},ar:function(){return f},KN:function(){return w},fQ:function(){return m},hN:function(){return v},lY:function(){return y},G0:function(){return h},fm:function(){return b}});var i=n(2085),r=n(5877),o=n(2367),a=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{c(i.next(e))}catch(e){o(e)}}function s(e){try{c(i.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((i=i.apply(e,t||[])).next())}))};const s="ar_link",c="ar_model_viewer",l="cta",u={componentDidMount:()=>o.Z.analytics.send({event:i.U3.impression,data:{[i.MB.placement]:s},scope:"page"}),onClick:()=>o.Z.analytics.send({event:i.U3.click,data:{[i.MB.placement]:s}}),onFallback:()=>o.Z.analytics.send({event:i.U3.fallback,data:{[i.MB.placement]:s}}),onLike:()=>o.Z.analytics.send({event:i.U3.like,data:{[i.MB.placement]:s}}),onDislike:()=>o.Z.analytics.send({event:i.U3.dislike,data:{[i.MB.placement]:s}}),onSessionTimeCollect:e=>o.Z.analytics.send({event:i.U3.interaction_duration,eventCount:e,data:{[i.MB.placement]:s}})},d={componentDidMount:()=>o.Z.analytics.send({event:i.U3.impression,data:{[i.MB.placement]:c},scope:"page"}),onClick:()=>o.Z.analytics.send({event:i.U3.click,data:{[i.MB.placement]:c}}),onSessionTimeCollect:e=>o.Z.analytics.send({event:i.U3.interaction_duration,eventCount:e,data:{[i.MB.placement]:c}})},p={onSessionStart:()=>o.Z.analytics.webxrSend({webxrEvent:i.Ui.session_start}),onSessionEnd:()=>o.Z.analytics.webxrSend({webxrEvent:i.Ui.session_end}),setSession:()=>{o.Z.analytics.webxrSet(i.D1.session_id,(0,r.v4)())},setCompatible:e=>{o.Z.analytics.webxrSet(i.D1.compatible,`${e}`)},onSceneViewerFallback:()=>Promise.all([o.Z.analytics.webxrSend({webxrEvent:i.Ui.scene_viewer_fallback}),o.Z.analytics.send({event:i.U3.fallback,data:{[i.MB.placement]:s},context:"webxr"})]),onFallback:()=>o.Z.analytics.webxrSend({webxrEvent:i.Ui.fallback}),setPlaneMapped:()=>{o.Z.analytics.webxrSet(i.D1.plane_mapped,(new Date).toISOString())},setObjectPlaced:()=>{o.Z.analytics.webxrSet(i.D1.object_placed,(new Date).toISOString())},setTranslateInstructions:()=>{o.Z.analytics.webxrSet(i.D1.translate_instructions,(new Date).toISOString())},setRotateInstructions:()=>{o.Z.analytics.webxrSet(i.D1.rotate_instructions,(new Date).toISOString())},setFirstTranslation:()=>{o.Z.analytics.webxrSet(i.D1.first_translation,(new Date).toISOString())},setFirstRotation:()=>{o.Z.analytics.webxrSet(i.D1.first_rotation,(new Date).toISOString())},setReset:()=>{o.Z.analytics.webxrSet(i.D1.reset,(new Date).toISOString())},onShare:()=>o.Z.analytics.webxrSend({webxrEvent:i.Ui.share}),onExit:()=>o.Z.analytics.webxrSend({webxrEvent:i.Ui.exit}),onLike:()=>o.Z.analytics.webxrSend({webxrEvent:i.Ui.like}),onDislike:()=>o.Z.analytics.webxrSend({webxrEvent:i.Ui.dislike}),onCallToAction:()=>o.Z.analytics.webxrSend({webxrEvent:i.Ui.call_to_action}),onTranslation:()=>o.Z.analytics.webxrSend({webxrEvent:i.Ui.translation}),onRotation:()=>o.Z.analytics.webxrSend({webxrEvent:i.Ui.rotation})},f={onClick:()=>o.Z.analytics.send({event:i.U3.click,data:{[i.MB.placement]:l},context:"cart"})},v=e=>{o.Z.analytics.set(i.MB.sku,e)},y=e=>{o.Z.analytics.set(i.MB.manufacturer_id,e)},h=e=>{o.Z.analytics.set(i.MB.is_active_3d,`${e}`),o.Z.analytics.send({event:i.U3.product_page_view})},w=e=>{o.Z.analytics.set(i.MB.experiment_id,e)},m=e=>{o.Z.analytics.set(i.MB.variation_id,e)},b=()=>a(void 0,void 0,void 0,(function*(){const e=yield(0,i.cE)();return o.Z.analytics.set(i.MB.fingerprint,e),e}));t.ZP=({client:e,dataLayerIntegration:t,sessionDurationMinutes:n,info:r={}})=>a(void 0,void 0,void 0,(function*(){const o={version:"6.23.2",gcpAnalyticsUrl:"https://us-central1-r2u-analytics.cloudfunctions.net/reportEvent",webxrGcpAnalyticsUrl:"https://us-central1-r2u-analytics.cloudfunctions.net/reportWebXREvent",debug:!!new URLSearchParams(window.location.search).get("realidade-aumentada-debug"),sessionDurationMinutes:n,dataLayerIntegration:t},a=new i.ZP(o,Object.assign(Object.assign({},r),{[i.MB.client]:e}));return yield a.init(),a}))},188:function(e,t,n){n.d(t,{Lu:function(){return d},x1:function(){return p},z6:function(){return u},vj:function(){return l}});var i=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{c(i.next(e))}catch(e){o(e)}}function s(e){try{c(i.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((i=i.apply(e,t||[])).next())}))};var r=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{c(i.next(e))}catch(e){o(e)}}function s(e){try{c(i.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((i=i.apply(e,t||[])).next())}))};const o="r2u-sdk-cache",a=new Map,s={get(e){try{return localStorage.getItem(e)}catch(e){return null}},set(e,t){try{localStorage.setItem(e,t)}catch(e){}},remove(e){try{localStorage.removeItem(e)}catch(e){}}};function c(e){return r(this,void 0,void 0,(function*(){return`r2u-sdk-cache-v6.23.2-${yield function(e){return i(this,void 0,void 0,(function*(){try{const t=(new TextEncoder).encode(e),n=yield crypto.subtle.digest("SHA-256",t);return Array.from(new Uint8Array(n)).map((e=>e.toString(16).padStart(2,"0"))).join("")}catch(t){return e}}))}(e)}`}))}function l(e){return r(this,void 0,void 0,(function*(){const{path:t,value:n,status:i="ok"}=e,r="notfound"===i?3e4:3e5,o=yield c(t),a={value:n,expiresAt:Date.now()+r};s.set(o,JSON.stringify(a))}))}function u(e){return r(this,void 0,void 0,(function*(){if(e)return s.remove(yield c(e)),void a.delete(e);a.clear();try{for(let e=localStorage.length-1;e>=0;e-=1){const t=localStorage.key(e);t&&t.startsWith(o)&&localStorage.removeItem(t)}}catch(e){}}))}function d(e){return r(this,void 0,void 0,(function*(){const{path:t,fetcher:n,options:i={}}=e;if(!i.refreshCache){const e=yield function(e){return r(this,void 0,void 0,(function*(){const t=s.get(yield c(e));if(t)try{const n=JSON.parse(t);return n.expiresAt<Date.now()?void s.remove(yield c(e)):n.value}catch(t){return void s.remove(yield c(e))}}))}(t);if(void 0!==e)return e}const o=a.get(t);if(o)return o;const l=function(e){return r(this,void 0,void 0,(function*(){try{return yield e.fetcher()}finally{a.delete(e.path)}}))}({path:t,fetcher:n});return a.set(t,l),l}))}function p(){try{return"true"===sessionStorage.getItem("r2u-sdk-refresh-cache")}catch(e){return!1}}},7523:function(e,t,n){n.d(t,{Z:function(){return s}});var i=n(2297),r=n(2367),o=n(7673),a=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{c(i.next(e))}catch(e){o(e)}}function s(e){try{c(i.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((i=i.apply(e,t||[])).next())}))};function s(e){return a(this,void 0,void 0,(function*(){const t=o.encode({"product.sku":e,"asset.types":["GLB","USDZ"].join(","),"product_review.status":"RUNNING"}),[n]=yield(0,i.U2)(`/customers/${r.Z.customer._id}/products/assets?${t}`);if(!n)throw new Error("R2U - SKU not found");const a=n.assets||[],s=n.product_reviews||[],c=a.find((e=>"GLB"===e.type)),l=a.find((e=>"USDZ"===e.type));return{glb:c?c.url:"",usdz:l?l.url:"",isActive:s.length>0,name:n.name,placement:n.placement||"floor",resize:n.resize||!1,sound:n.soundUrl,modelId:n.modelId,manufacturerId:n.manufacturerId,pdpUrl:n.pdpUrl,hdri:n.hdri,exposure:n.exposure,bloom:n.bloom,viewerOptions:n.viewerOptions||{}}}))}},2297:function(e,t,n){n.d(t,{U2:function(){return c},v_:function(){return l},Bv:function(){return u}});var i=n(2367),r=n(188),o=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function a(e){try{c(i.next(e))}catch(e){o(e)}}function s(e){try{c(i.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((i=i.apply(e,t||[])).next())}))};const a="https://api.r2u.io";function s(e){return o(this,void 0,void 0,(function*(){const t={};i.Z.refreshCache&&(t["Cache-Control"]="max-age=0");const n=yield fetch(`${a}${e}`,{method:"get",headers:t});if(!n.ok&&404!==n.status)throw new Error(`R2U - HTTP ${n.status}`);const o=yield n.json();return yield(0,r.vj)({path:e,value:o,status:404===n.status?"notfound":"ok"}),o}))}function c(e){return o(this,void 0,void 0,(function*(){return(0,r.Lu)({path:e,fetcher:s.bind(null,e),options:{refreshCache:i.Z.refreshCache}})}))}function l(e,t){return o(this,void 0,void 0,(function*(){return(yield fetch(`${a}${e}`,{method:"POST",body:JSON.stringify(t)})).json()}))}const u=()=>"https://sdk.r2u.io"},2367:function(e,t){const n={init:!1,customer:{_id:"",slug:"",language:"en",hdri:null,exposure:null,bloom:null,experiments:{overrides:{}},viewerOptions:{}},analytics:{set:(e,t)=>{},send:({event:e,data:t,scope:n})=>Promise.resolve()},products:{},hasAutoOpenedAR:!1,growthbook:{},refreshCache:!1};t.Z=n},4147:function(e){e.exports=JSON.parse('{"name":"@r2u/javascript-ar-sdk","version":"6.23.2","main":"dist/index.js","unpkg":"dist/index.js","types":"dist/src/index.d.ts","repository":"https://github.com/r2u-io/javascript-ar-sdk","files":["dist"],"scripts":{"dev":"yarn build:dev && webpack serve --mode=development","dev:watch":"REACT_APP_VERSION=$(node -p \\"require(\'./package.json\').version\\") webpack serve --mode=development","build:dev":"REACT_APP_VERSION=$(node -p \\"require(\'./package.json\').version\\") webpack --mode=development && yarn build:types","build":"REACT_APP_VERSION=$(jq -r \\".version\\" package.json) webpack --mode=production && yarn build:types","build:types":"tsc && npx tsc-alias","clean":"rm -rf dist/ public/dist/","test":"jest --config ./jest.config.js","stage":"yarn build:dev && gsutil -m cp -R ./public gs://r2u-integrations-bucket/_staging/sdk/","prettier":"prettier --write src","lint":"eslint \\"./src/**/*.{js,ts,tsx}\\"","eject":"rescripts eject"},"peerDependencies":{"react":"^16.13.1","react-dom":"^16.13.1"},"dependencies":{"@r2u/analytics":"^4.3.3","@r2u/react-ar-components":"^5.4.16","@r2u/viewer":"^1.13.2","@types/react-slick":"^0.23.10","i18next":"^20.2.1","i18next-chained-backend":"^2.1.0","i18next-http-backend":"^1.2.1","i18next-localstorage-backend":"^3.1.2","qrcode.react":"^1.0.1","querystring":"^0.2.0","react":"^17.0.2","react-dom":"^17.0.2","react-i18next":"^11.8.13","react-shadow":"^19.0.2","react-slick":"^0.29.0","styled-components":"^5.2.3"},"devDependencies":{"@fingerprintjs/fingerprintjs":"^3.3.0","@growthbook/growthbook":"^0.12.0","@types/jest":"^26.0.15","@types/node":"^13.11.1","@types/qrcode.react":"^1.0.1","@types/react":"^16.9.33","@types/react-dom":"^16.9.6","@types/styled-components":"^5.1.9","@typescript-eslint/eslint-plugin":"^2.3.1","@typescript-eslint/parser":"^2.3.1","eslint":"^7.22.0","eslint-config-prettier":"^6.12.0","eslint-config-standard":"^12.0.0","eslint-plugin-import":"^2.17.2","eslint-plugin-jest":"^22.17.0","eslint-plugin-node":"^8.0.1","eslint-plugin-prettier":"^3.1.4","eslint-plugin-promise":"^4.1.1","eslint-plugin-react":"^7.14.3","eslint-plugin-standard":"^4.0.0","file-loader":"^6.2.0","jest":"^24.9.0","prettier":"^2.1.2","process":"^0.11.10","three":"^0.131.2","ts-jest":"^26.4.4","ts-loader":"^8.0.17","tsc-alias":"^1.8.11","tsconfig-paths-webpack-plugin":"^3.5.1","typescript":"^3.8.3","util":"^0.12.3","webpack":"^5.24.3","webpack-bundle-analyzer":"^4.4.0","webpack-cli":"^4.5.0","webpack-dev-server":"3.10.3"},"browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]}}')}}]);
|