@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.
@@ -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,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;QAEpE,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,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,OAAO,CAAA;QAE7B,OAAO,OAAO,CAAA;IAChB,CAAC;CAAA"}
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
- export function get(path) {
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
- return response.json();
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;AAE5B,MAAM,QAAQ,GACZ,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa;IACpC,CAAC,CAAC,wBAAwB;IAC1B,CAAC,CAAC,oBAAoB,CAAA;AAE1B,MAAM,UAAgB,GAAG,CAAC,IAAY;;QACpC,MAAM,OAAO,GAAgB,EAAE,CAAA;QAC/B,IAAI,KAAK,CAAC,YAAY,EAAE;YACtB,OAAO,CAAC,eAAe,CAAC,GAAG,WAAW,CAAA;SACvC;QACD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,QAAQ,GAAG,IAAI,EAAE,EAAE;YACjD,MAAM,EAAE,KAAK;YACb,OAAO;SACR,CAAC,CAAA;QACF,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAA;IACxB,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"}
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"]}}')}}]);