@faststore/core 2.0.118-alpha.0 → 2.0.121-alpha.0

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.
Files changed (164) hide show
  1. package/.turbo/turbo-build.log +37 -25
  2. package/@generated/graphql/index.ts +22 -2
  3. package/@generated/graphql/persisted.json +1 -1
  4. package/CHANGELOG.md +10 -0
  5. package/cms/faststore/content-types.json +6 -0
  6. package/cms/faststore/sections.json +8 -0
  7. package/faststore.config.js +1 -0
  8. package/package.json +3 -3
  9. package/src/Layout.tsx +2 -24
  10. package/src/components/cms/GlobalSections.tsx +81 -0
  11. package/src/components/cms/RenderSections.tsx +39 -0
  12. package/src/components/common/Alert/Alert.tsx +7 -5
  13. package/src/components/common/Alert/index.ts +1 -0
  14. package/src/components/sections/Alert/Alert.tsx +28 -0
  15. package/src/pages/404.tsx +25 -3
  16. package/src/pages/500.tsx +25 -3
  17. package/src/pages/[...slug].tsx +85 -66
  18. package/src/pages/[slug]/p.tsx +16 -6
  19. package/src/pages/account.tsx +25 -3
  20. package/src/pages/checkout.tsx +25 -3
  21. package/src/pages/index.tsx +20 -10
  22. package/src/pages/login.tsx +25 -3
  23. package/src/pages/s.tsx +63 -39
  24. package/src/sdk/session/index.ts +4 -0
  25. package/.next/BUILD_ID +0 -1
  26. package/.next/build-manifest.json +0 -99
  27. package/.next/cache/.tsbuildinfo +0 -1
  28. package/.next/cache/config.json +0 -7
  29. package/.next/cache/eslint/.cache_1gneedd +0 -1
  30. package/.next/cache/next-server.js.nft.json +0 -1
  31. package/.next/cache/webpack/client-production/0.pack +0 -0
  32. package/.next/cache/webpack/client-production/index.pack +0 -0
  33. package/.next/cache/webpack/server-production/0.pack +0 -0
  34. package/.next/cache/webpack/server-production/index.pack +0 -0
  35. package/.next/export-marker.json +0 -1
  36. package/.next/images-manifest.json +0 -1
  37. package/.next/next-server.js.nft.json +0 -1
  38. package/.next/package.json +0 -1
  39. package/.next/prerender-manifest.json +0 -1
  40. package/.next/react-loadable-manifest.json +0 -42
  41. package/.next/required-server-files.json +0 -1
  42. package/.next/routes-manifest.json +0 -1
  43. package/.next/server/chunks/120.js +0 -435
  44. package/.next/server/chunks/123.js +0 -58
  45. package/.next/server/chunks/1394.js +0 -3801
  46. package/.next/server/chunks/1597.js +0 -151
  47. package/.next/server/chunks/1608.js +0 -515
  48. package/.next/server/chunks/2154.js +0 -206
  49. package/.next/server/chunks/247.js +0 -61
  50. package/.next/server/chunks/2502.js +0 -584
  51. package/.next/server/chunks/2914.js +0 -95
  52. package/.next/server/chunks/2922.js +0 -7293
  53. package/.next/server/chunks/3264.js +0 -67
  54. package/.next/server/chunks/3431.js +0 -7241
  55. package/.next/server/chunks/350.js +0 -142
  56. package/.next/server/chunks/3746.js +0 -250
  57. package/.next/server/chunks/3898.js +0 -240
  58. package/.next/server/chunks/4312.js +0 -674
  59. package/.next/server/chunks/4371.js +0 -1424
  60. package/.next/server/chunks/5098.js +0 -124
  61. package/.next/server/chunks/5335.js +0 -544
  62. package/.next/server/chunks/5576.js +0 -79
  63. package/.next/server/chunks/6280.js +0 -322
  64. package/.next/server/chunks/6465.js +0 -91
  65. package/.next/server/chunks/676.js +0 -32
  66. package/.next/server/chunks/6859.js +0 -959
  67. package/.next/server/chunks/6881.js +0 -320
  68. package/.next/server/chunks/6898.js +0 -149
  69. package/.next/server/chunks/7104.js +0 -235
  70. package/.next/server/chunks/7181.js +0 -664
  71. package/.next/server/chunks/7183.js +0 -79
  72. package/.next/server/chunks/8098.js +0 -246
  73. package/.next/server/chunks/810.js +0 -432
  74. package/.next/server/chunks/8287.js +0 -58
  75. package/.next/server/chunks/9143.js +0 -106
  76. package/.next/server/chunks/9557.js +0 -119
  77. package/.next/server/chunks/9854.js +0 -72
  78. package/.next/server/chunks/font-manifest.json +0 -1
  79. package/.next/server/font-manifest.json +0 -1
  80. package/.next/server/middleware-build-manifest.js +0 -1
  81. package/.next/server/middleware-manifest.json +0 -6
  82. package/.next/server/middleware-react-loadable-manifest.js +0 -1
  83. package/.next/server/pages/404.js.nft.json +0 -1
  84. package/.next/server/pages/500.js.nft.json +0 -1
  85. package/.next/server/pages/[...slug].js +0 -666
  86. package/.next/server/pages/[...slug].js.nft.json +0 -1
  87. package/.next/server/pages/[slug]/p.js +0 -2327
  88. package/.next/server/pages/[slug]/p.js.nft.json +0 -1
  89. package/.next/server/pages/_app.js +0 -2454
  90. package/.next/server/pages/_app.js.nft.json +0 -1
  91. package/.next/server/pages/_document.js +0 -304
  92. package/.next/server/pages/_document.js.nft.json +0 -1
  93. package/.next/server/pages/_error.js +0 -164
  94. package/.next/server/pages/_error.js.nft.json +0 -1
  95. package/.next/server/pages/account.js.nft.json +0 -1
  96. package/.next/server/pages/api/graphql.js +0 -315
  97. package/.next/server/pages/api/graphql.js.nft.json +0 -1
  98. package/.next/server/pages/api/preview.js +0 -118
  99. package/.next/server/pages/api/preview.js.nft.json +0 -1
  100. package/.next/server/pages/checkout.js.nft.json +0 -1
  101. package/.next/server/pages/en-US/404.html +0 -81
  102. package/.next/server/pages/en-US/500.html +0 -81
  103. package/.next/server/pages/en-US/account.html +0 -81
  104. package/.next/server/pages/en-US/checkout.html +0 -81
  105. package/.next/server/pages/en-US/login.html +0 -81
  106. package/.next/server/pages/en-US/s.html +0 -81
  107. package/.next/server/pages/en-US.html +0 -81
  108. package/.next/server/pages/en-US.json +0 -1
  109. package/.next/server/pages/index.js +0 -475
  110. package/.next/server/pages/index.js.nft.json +0 -1
  111. package/.next/server/pages/login.js.nft.json +0 -1
  112. package/.next/server/pages/s.js.nft.json +0 -1
  113. package/.next/server/pages-manifest.json +0 -16
  114. package/.next/server/webpack-api-runtime.js +0 -229
  115. package/.next/server/webpack-runtime.js +0 -229
  116. package/.next/static/chunks/143.dd8a556e6957baa1.js +0 -1
  117. package/.next/static/chunks/170.79b2f8527e327bca.js +0 -1
  118. package/.next/static/chunks/264-5b07911df63b8601.js +0 -1
  119. package/.next/static/chunks/351-a4e28d64f48c5269.js +0 -1
  120. package/.next/static/chunks/54.e6562383f8a1dfe7.js +0 -1
  121. package/.next/static/chunks/597.fc79494903e8bb84.js +0 -1
  122. package/.next/static/chunks/608.59e69b83f35d9c44.js +0 -1
  123. package/.next/static/chunks/651.7142f31ce1e052b3.js +0 -1
  124. package/.next/static/chunks/741.52f7fb873418346f.js +0 -1
  125. package/.next/static/chunks/781-e1b538e051ff4c3e.js +0 -1
  126. package/.next/static/chunks/98.97381d2021f86cd9.js +0 -1
  127. package/.next/static/chunks/996.98e590872c51f815.js +0 -1
  128. package/.next/static/chunks/framework-dfd14d7ce6600b03.js +0 -1
  129. package/.next/static/chunks/main-9746772201fe3ac1.js +0 -1
  130. package/.next/static/chunks/pages/404-3637ef83b3359df7.js +0 -1
  131. package/.next/static/chunks/pages/500-910883c20541d9ce.js +0 -1
  132. package/.next/static/chunks/pages/[...slug]-29d3b81ee0953846.js +0 -1
  133. package/.next/static/chunks/pages/[slug]/p-9b24055cb30ee7a8.js +0 -1
  134. package/.next/static/chunks/pages/_app-4aeb21d72aeea9b7.js +0 -1
  135. package/.next/static/chunks/pages/_error-a7a0c1d9bfbb4f38.js +0 -1
  136. package/.next/static/chunks/pages/account-b8fc5222ffe89b60.js +0 -1
  137. package/.next/static/chunks/pages/checkout-f8cb7cb22225ef9d.js +0 -1
  138. package/.next/static/chunks/pages/index-d48285f48d2a66ea.js +0 -1
  139. package/.next/static/chunks/pages/login-45cc84352bac2408.js +0 -1
  140. package/.next/static/chunks/pages/s-ba2868e14fedb65b.js +0 -1
  141. package/.next/static/chunks/polyfills-c67a75d1b6f99dc8.js +0 -1
  142. package/.next/static/chunks/webpack-f725b61675603493.js +0 -1
  143. package/.next/static/css/1f987650dd4e39d0.css +0 -1
  144. package/.next/static/css/3a57acf6e411f24d.css +0 -1
  145. package/.next/static/css/4abccf9803c3c356.css +0 -1
  146. package/.next/static/css/502746c995f64cce.css +0 -1
  147. package/.next/static/css/6507cb48401e73a4.css +0 -1
  148. package/.next/static/css/6f4d3e91f1d161a8.css +0 -1
  149. package/.next/static/media/brandless-neutral.76ddf63a.png +0 -0
  150. package/.next/static/vmkgl19jDr5XASw3dFJg7/_buildManifest.js +0 -1
  151. package/.next/static/vmkgl19jDr5XASw3dFJg7/_ssgManifest.js +0 -1
  152. package/.next/trace +0 -64
  153. package/public/~partytown/debug/partytown-atomics.js +0 -556
  154. package/public/~partytown/debug/partytown-media.js +0 -374
  155. package/public/~partytown/debug/partytown-sandbox-sw.js +0 -543
  156. package/public/~partytown/debug/partytown-sw.js +0 -59
  157. package/public/~partytown/debug/partytown-ww-atomics.js +0 -1789
  158. package/public/~partytown/debug/partytown-ww-sw.js +0 -1781
  159. package/public/~partytown/debug/partytown.js +0 -72
  160. package/public/~partytown/partytown-atomics.js +0 -2
  161. package/public/~partytown/partytown-media.js +0 -2
  162. package/public/~partytown/partytown-sw.js +0 -2
  163. package/public/~partytown/partytown.js +0 -2
  164. package/src/components/cms/RenderPageSections.tsx +0 -37
@@ -1,556 +0,0 @@
1
- /* Partytown 0.6.4 - MIT builder.io */
2
- (window => {
3
- const isPromise = v => "object" == typeof v && v && v.then;
4
- const noop = () => {};
5
- const len = obj => obj.length;
6
- const getConstructorName = obj => {
7
- var _a, _b, _c;
8
- try {
9
- const constructorName = null === (_a = null == obj ? void 0 : obj.constructor) || void 0 === _a ? void 0 : _a.name;
10
- if (constructorName) {
11
- return constructorName;
12
- }
13
- } catch (e) {}
14
- try {
15
- const zoneJsConstructorName = null === (_c = null === (_b = null == obj ? void 0 : obj.__zone_symbol__originalInstance) || void 0 === _b ? void 0 : _b.constructor) || void 0 === _c ? void 0 : _c.name;
16
- if (zoneJsConstructorName) {
17
- return zoneJsConstructorName;
18
- }
19
- } catch (e) {}
20
- return "";
21
- };
22
- const startsWith = (str, val) => str.startsWith(val);
23
- const isValidMemberName = memberName => !(startsWith(memberName, "webkit") || startsWith(memberName, "toJSON") || startsWith(memberName, "constructor") || startsWith(memberName, "toString") || startsWith(memberName, "_"));
24
- const getNodeName = node => 11 === node.nodeType && node.host ? "#s" : node.nodeName;
25
- const randomId = () => Math.round(Math.random() * Number.MAX_SAFE_INTEGER).toString(36);
26
- const defineConstructorName = (Cstr, value) => ((obj, memberName, descriptor) => Object.defineProperty(obj, memberName, {
27
- ...descriptor,
28
- configurable: true
29
- }))(Cstr, "name", {
30
- value: value
31
- });
32
- const htmlConstructorTags = {
33
- Anchor: "a",
34
- DList: "dl",
35
- Image: "img",
36
- OList: "ol",
37
- Paragraph: "p",
38
- Quote: "q",
39
- TableCaption: "caption",
40
- TableCell: "td",
41
- TableCol: "colgroup",
42
- TableRow: "tr",
43
- TableSection: "tbody",
44
- UList: "ul"
45
- };
46
- const svgConstructorTags = {
47
- Graphics: "g",
48
- SVG: "svg"
49
- };
50
- const InstanceIdKey = Symbol();
51
- const CreatedKey = Symbol();
52
- const instances = new Map;
53
- const mainRefs = new Map;
54
- const winCtxs = {};
55
- const windowIds = new WeakMap;
56
- const getAndSetInstanceId = (instance, instanceId) => {
57
- if (instance) {
58
- if (instanceId = windowIds.get(instance)) {
59
- return instanceId;
60
- }
61
- (instanceId = instance[InstanceIdKey]) || setInstanceId(instance, instanceId = randomId());
62
- return instanceId;
63
- }
64
- };
65
- const getInstance = (winId, instanceId, win, doc, docId) => {
66
- if ((win = winCtxs[winId]) && win.$window$) {
67
- if (winId === instanceId) {
68
- return win.$window$;
69
- }
70
- doc = win.$window$.document;
71
- docId = instanceId.split(".").pop();
72
- if ("d" === docId) {
73
- return doc;
74
- }
75
- if ("e" === docId) {
76
- return doc.documentElement;
77
- }
78
- if ("h" === docId) {
79
- return doc.head;
80
- }
81
- if ("b" === docId) {
82
- return doc.body;
83
- }
84
- }
85
- return instances.get(instanceId);
86
- };
87
- const setInstanceId = (instance, instanceId, now) => {
88
- if (instance) {
89
- instances.set(instanceId, instance);
90
- instance[InstanceIdKey] = instanceId;
91
- instance[CreatedKey] = now = Date.now();
92
- if (now > lastCleanup + 5e3) {
93
- instances.forEach(((storedInstance, instanceId) => {
94
- storedInstance[CreatedKey] < lastCleanup && storedInstance.nodeType && !storedInstance.isConnected && instances.delete(instanceId);
95
- }));
96
- lastCleanup = now;
97
- }
98
- }
99
- };
100
- let lastCleanup = 0;
101
- const mainWindow = window.parent;
102
- const docImpl = document.implementation.createHTMLDocument();
103
- const config = mainWindow.partytown || {};
104
- const libPath = (config.lib || "/~partytown/") + "debug/";
105
- const logMain = msg => {
106
- console.debug.apply(console, [ "%cMain 🌎", "background: #717171; color: white; padding: 2px 3px; border-radius: 2px; font-size: 0.8em;", msg ]);
107
- };
108
- const winIds = [];
109
- const normalizedWinId = winId => {
110
- winIds.includes(winId) || winIds.push(winId);
111
- return winIds.indexOf(winId) + 1;
112
- };
113
- const defineCustomElement = (winId, worker, ceData) => {
114
- const Cstr = defineConstructorName(class extends winCtxs[winId].$window$.HTMLElement {}, ceData[0]);
115
- const ceCallbackMethods = "connectedCallback,disconnectedCallback,attributeChangedCallback,adoptedCallback".split(",");
116
- ceCallbackMethods.map((callbackMethodName => Cstr.prototype[callbackMethodName] = function(...args) {
117
- worker.postMessage([ 15, winId, getAndSetInstanceId(this), callbackMethodName, args ]);
118
- }));
119
- Cstr.observedAttributes = ceData[1];
120
- return Cstr;
121
- };
122
- const serializeForWorker = ($winId$, value, added, type, cstrName) => void 0 !== value && (type = typeof value) ? "string" === type || "number" === type || "boolean" === type || null == value ? [ 0, value ] : "function" === type ? [ 6 ] : (added = added || new Set) && Array.isArray(value) ? added.has(value) ? [ 1, [] ] : added.add(value) && [ 1, value.map((v => serializeForWorker($winId$, v, added))) ] : "object" === type ? serializedValueIsError(value) ? [ 14, {
123
- name: value.name,
124
- message: value.message,
125
- stack: value.stack
126
- } ] : "" === (cstrName = getConstructorName(value)) ? [ 2, {} ] : "Window" === cstrName ? [ 3, [ $winId$, $winId$ ] ] : "HTMLCollection" === cstrName || "NodeList" === cstrName ? [ 7, Array.from(value).map((v => serializeForWorker($winId$, v, added)[1])) ] : cstrName.endsWith("Event") ? [ 5, serializeObjectForWorker($winId$, value, added) ] : "CSSRuleList" === cstrName ? [ 12, Array.from(value).map(serializeCssRuleForWorker) ] : startsWith(cstrName, "CSS") && cstrName.endsWith("Rule") ? [ 11, serializeCssRuleForWorker(value) ] : "CSSStyleDeclaration" === cstrName ? [ 13, serializeObjectForWorker($winId$, value, added) ] : "Attr" === cstrName ? [ 10, [ value.name, value.value ] ] : value.nodeType ? [ 3, [ $winId$, getAndSetInstanceId(value), getNodeName(value) ] ] : [ 2, serializeObjectForWorker($winId$, value, added, true, true) ] : void 0 : value;
127
- const serializeObjectForWorker = (winId, obj, added, includeFunctions, includeEmptyStrings, serializedObj, propName, propValue) => {
128
- serializedObj = {};
129
- if (!added.has(obj)) {
130
- added.add(obj);
131
- for (propName in obj) {
132
- if (isValidMemberName(propName)) {
133
- propValue = obj[propName];
134
- (includeFunctions || "function" != typeof propValue) && (includeEmptyStrings || "" !== propValue) && (serializedObj[propName] = serializeForWorker(winId, propValue, added));
135
- }
136
- }
137
- }
138
- return serializedObj;
139
- };
140
- const serializeCssRuleForWorker = cssRule => {
141
- let obj = {};
142
- let key;
143
- for (key in cssRule) {
144
- validCssRuleProps.includes(key) && (obj[key] = String(cssRule[key]));
145
- }
146
- return obj;
147
- };
148
- const serializedValueIsError = value => value instanceof window.top.Error;
149
- const deserializeFromWorker = (worker, serializedTransfer, serializedType, serializedValue) => {
150
- if (serializedTransfer) {
151
- serializedType = serializedTransfer[0];
152
- serializedValue = serializedTransfer[1];
153
- return 0 === serializedType ? serializedValue : 4 === serializedType ? deserializeRefFromWorker(worker, serializedValue) : 1 === serializedType ? serializedValue.map((v => deserializeFromWorker(worker, v))) : 3 === serializedType ? getInstance(serializedValue[0], serializedValue[1]) : 5 === serializedType ? constructEvent(deserializeObjectFromWorker(worker, serializedValue)) : 2 === serializedType ? deserializeObjectFromWorker(worker, serializedValue) : 8 === serializedType ? serializedValue : 9 === serializedType ? new window[serializedTransfer[2]](serializedValue) : void 0;
154
- }
155
- };
156
- const deserializeRefFromWorker = (worker, {$winId$: $winId$, $instanceId$: $instanceId$, $refId$: $refId$}, ref) => {
157
- ref = mainRefs.get($refId$);
158
- if (!ref) {
159
- ref = function(...args) {
160
- worker.postMessage([ 9, {
161
- $winId$: $winId$,
162
- $instanceId$: $instanceId$,
163
- $refId$: $refId$,
164
- $thisArg$: serializeForWorker($winId$, this),
165
- $args$: serializeForWorker($winId$, args)
166
- } ]);
167
- };
168
- mainRefs.set($refId$, ref);
169
- }
170
- return ref;
171
- };
172
- const constructEvent = eventProps => new ("detail" in eventProps ? CustomEvent : Event)(eventProps.type, eventProps);
173
- const deserializeObjectFromWorker = (worker, serializedValue, obj, key) => {
174
- obj = {};
175
- for (key in serializedValue) {
176
- obj[key] = deserializeFromWorker(worker, serializedValue[key]);
177
- }
178
- return obj;
179
- };
180
- const validCssRuleProps = "cssText,selectorText,href,media,namespaceURI,prefix,name,conditionText".split(",");
181
- const mainAccessHandler = async (worker, accessReq) => {
182
- let accessRsp = {
183
- $msgId$: accessReq.$msgId$
184
- };
185
- let totalTasks = len(accessReq.$tasks$);
186
- let i = 0;
187
- let task;
188
- let winId;
189
- let applyPath;
190
- let instance;
191
- let rtnValue;
192
- let isLast;
193
- for (;i < totalTasks; i++) {
194
- try {
195
- isLast = i === totalTasks - 1;
196
- task = accessReq.$tasks$[i];
197
- winId = task.$winId$;
198
- applyPath = task.$applyPath$;
199
- !winCtxs[winId] && winId.startsWith("f_") && await new Promise((resolve => {
200
- let check = 0;
201
- let callback = () => {
202
- winCtxs[winId] || check++ > 1e3 ? resolve() : requestAnimationFrame(callback);
203
- };
204
- callback();
205
- }));
206
- if (1 === applyPath[0] && applyPath[1] in winCtxs[winId].$window$) {
207
- setInstanceId(new winCtxs[winId].$window$[applyPath[1]](...deserializeFromWorker(worker, applyPath[2])), task.$instanceId$);
208
- } else {
209
- instance = getInstance(winId, task.$instanceId$);
210
- if (instance) {
211
- rtnValue = applyToInstance(worker, winId, instance, applyPath, isLast, task.$groupedGetters$);
212
- task.$assignInstanceId$ && ("string" == typeof task.$assignInstanceId$ ? setInstanceId(rtnValue, task.$assignInstanceId$) : winCtxs[task.$assignInstanceId$.$winId$] = {
213
- $winId$: task.$assignInstanceId$.$winId$,
214
- $window$: {
215
- document: rtnValue
216
- }
217
- });
218
- if (isPromise(rtnValue)) {
219
- rtnValue = await rtnValue;
220
- isLast && (accessRsp.$isPromise$ = true);
221
- }
222
- isLast && (accessRsp.$rtnValue$ = serializeForWorker(winId, rtnValue));
223
- } else {
224
- accessRsp.$error$ = `Error finding instance "${task.$instanceId$}" on window ${normalizedWinId(winId)}`;
225
- console.error(accessRsp.$error$, task);
226
- }
227
- }
228
- } catch (e) {
229
- isLast ? accessRsp.$error$ = String(e.stack || e) : console.error(e);
230
- }
231
- }
232
- return accessRsp;
233
- };
234
- const applyToInstance = (worker, winId, instance, applyPath, isLast, groupedGetters) => {
235
- let i = 0;
236
- let l = len(applyPath);
237
- let next;
238
- let current;
239
- let previous;
240
- let args;
241
- let groupedRtnValues;
242
- for (;i < l; i++) {
243
- current = applyPath[i];
244
- next = applyPath[i + 1];
245
- previous = applyPath[i - 1];
246
- try {
247
- if (!Array.isArray(next)) {
248
- if ("string" == typeof current || "number" == typeof current) {
249
- if (i + 1 === l && groupedGetters) {
250
- groupedRtnValues = {};
251
- groupedGetters.map((propName => groupedRtnValues[propName] = instance[propName]));
252
- return groupedRtnValues;
253
- }
254
- instance = instance[current];
255
- } else {
256
- if (0 === next) {
257
- instance[previous] = deserializeFromWorker(worker, current);
258
- return;
259
- }
260
- if ("function" == typeof instance[previous]) {
261
- args = deserializeFromWorker(worker, current);
262
- "define" === previous && "CustomElementRegistry" === getConstructorName(instance) && (args[1] = defineCustomElement(winId, worker, args[1]));
263
- "insertRule" === previous && args[1] > len(instance.cssRules) && (args[1] = len(instance.cssRules));
264
- instance = instance[previous].apply(instance, args);
265
- if ("play" === previous) {
266
- return Promise.resolve();
267
- }
268
- }
269
- }
270
- }
271
- } catch (err) {
272
- if (isLast) {
273
- throw err;
274
- }
275
- console.debug("Non-blocking setter error:", err);
276
- }
277
- }
278
- return instance;
279
- };
280
- const registerWindow = (worker, $winId$, $window$) => {
281
- if (!windowIds.has($window$)) {
282
- windowIds.set($window$, $winId$);
283
- const doc = $window$.document;
284
- const history = $window$.history;
285
- const $parentWinId$ = windowIds.get($window$.parent);
286
- const sendInitEnvData = () => worker.postMessage([ 5, {
287
- $winId$: $winId$,
288
- $parentWinId$: $parentWinId$,
289
- $url$: doc.baseURI,
290
- $visibilityState$: doc.visibilityState
291
- } ]);
292
- const pushState = history.pushState.bind(history);
293
- const replaceState = history.replaceState.bind(history);
294
- const onLocationChange = (type, state, newUrl, oldUrl) => {
295
- setTimeout((() => {
296
- worker.postMessage([ 13, {
297
- $winId$: $winId$,
298
- type: type,
299
- state: state,
300
- url: doc.baseURI,
301
- newUrl: newUrl,
302
- oldUrl: oldUrl
303
- } ]);
304
- }));
305
- };
306
- history.pushState = (state, _, newUrl) => {
307
- pushState(state, _, newUrl);
308
- onLocationChange(0, state, null == newUrl ? void 0 : newUrl.toString());
309
- };
310
- history.replaceState = (state, _, newUrl) => {
311
- replaceState(state, _, newUrl);
312
- onLocationChange(1, state, null == newUrl ? void 0 : newUrl.toString());
313
- };
314
- $window$.addEventListener("popstate", (event => {
315
- onLocationChange(2, event.state);
316
- }));
317
- $window$.addEventListener("hashchange", (event => {
318
- onLocationChange(3, {}, event.newURL, event.oldURL);
319
- }));
320
- doc.addEventListener("visibilitychange", (() => worker.postMessage([ 14, $winId$, doc.visibilityState ])));
321
- winCtxs[$winId$] = {
322
- $winId$: $winId$,
323
- $window$: $window$
324
- };
325
- winCtxs[$winId$].$startTime$ = performance.now();
326
- {
327
- const winType = $winId$ === $parentWinId$ ? "top" : "iframe";
328
- logMain(`Registered ${winType} window ${normalizedWinId($winId$)}`);
329
- }
330
- "complete" === doc.readyState ? sendInitEnvData() : $window$.addEventListener("load", sendInitEnvData);
331
- }
332
- };
333
- const readNextScript = (worker, winCtx) => {
334
- let $winId$ = winCtx.$winId$;
335
- let win = winCtx.$window$;
336
- let doc = win.document;
337
- let scriptSelector = 'script[type="text/partytown"]:not([data-ptid]):not([data-pterror])';
338
- let scriptElm;
339
- let $instanceId$;
340
- let scriptData;
341
- if (doc && doc.body) {
342
- scriptElm = doc.querySelector('script[type="text/partytown"]:not([data-ptid]):not([data-pterror]):not([async]):not([defer])');
343
- scriptElm || (scriptElm = doc.querySelector(scriptSelector));
344
- if (scriptElm) {
345
- scriptElm.dataset.ptid = $instanceId$ = getAndSetInstanceId(scriptElm, $winId$);
346
- scriptData = {
347
- $winId$: $winId$,
348
- $instanceId$: $instanceId$
349
- };
350
- if (scriptElm.src) {
351
- scriptData.$url$ = scriptElm.src;
352
- scriptData.$orgUrl$ = scriptElm.dataset.ptsrc || scriptElm.src;
353
- } else {
354
- scriptData.$content$ = scriptElm.innerHTML;
355
- }
356
- worker.postMessage([ 7, scriptData ]);
357
- } else {
358
- if (!winCtx.$isInitialized$) {
359
- winCtx.$isInitialized$ = 1;
360
- ((worker, $winId$, win) => {
361
- let queuedForwardCalls = win._ptf;
362
- let forwards = (win.partytown || {}).forward || [];
363
- let i;
364
- let mainForwardFn;
365
- let forwardCall = ($forward$, args) => worker.postMessage([ 10, {
366
- $winId$: $winId$,
367
- $forward$: $forward$,
368
- $args$: serializeForWorker($winId$, Array.from(args))
369
- } ]);
370
- win._ptf = void 0;
371
- forwards.map((forwardProps => {
372
- mainForwardFn = win;
373
- forwardProps.split(".").map(((_, i, arr) => {
374
- mainForwardFn = mainForwardFn[arr[i]] = i + 1 < len(arr) ? mainForwardFn[arr[i]] || ("push" === arr[i + 1] ? [] : {}) : (...args) => forwardCall(arr, args);
375
- }));
376
- }));
377
- if (queuedForwardCalls) {
378
- for (i = 0; i < len(queuedForwardCalls); i += 2) {
379
- forwardCall(queuedForwardCalls[i], queuedForwardCalls[i + 1]);
380
- }
381
- }
382
- })(worker, $winId$, win);
383
- doc.dispatchEvent(new CustomEvent("pt0"));
384
- {
385
- const winType = win === win.top ? "top" : "iframe";
386
- logMain(`Executed ${winType} window ${normalizedWinId($winId$)} environment scripts in ${(performance.now() - winCtx.$startTime$).toFixed(1)}ms`);
387
- }
388
- }
389
- worker.postMessage([ 8, $winId$ ]);
390
- }
391
- } else {
392
- requestAnimationFrame((() => readNextScript(worker, winCtx)));
393
- }
394
- };
395
- const onMessageFromWebWorker = (worker, msg, winCtx) => {
396
- if (4 === msg[0]) {
397
- registerWindow(worker, randomId(), mainWindow);
398
- } else {
399
- winCtx = winCtxs[msg[1]];
400
- winCtx && (7 === msg[0] ? requestAnimationFrame((() => readNextScript(worker, winCtx))) : 6 === msg[0] && ((worker, winCtx, instanceId, errorMsg, scriptElm) => {
401
- scriptElm = winCtx.$window$.document.querySelector(`[data-ptid="${instanceId}"]`);
402
- if (scriptElm) {
403
- errorMsg ? scriptElm.dataset.pterror = errorMsg : scriptElm.type += "-x";
404
- delete scriptElm.dataset.ptid;
405
- }
406
- readNextScript(worker, winCtx);
407
- })(worker, winCtx, msg[2], msg[3]));
408
- }
409
- };
410
- const readMainInterfaces = () => {
411
- const elms = Object.getOwnPropertyNames(mainWindow).map((interfaceName => ((doc, interfaceName, r, tag) => {
412
- r = interfaceName.match(/^(HTML|SVG)(.+)Element$/);
413
- if (r) {
414
- tag = r[2];
415
- return "S" == interfaceName[0] ? doc.createElementNS("http://www.w3.org/2000/svg", svgConstructorTags[tag] || tag.slice(0, 2).toLowerCase() + tag.slice(2)) : doc.createElement(htmlConstructorTags[tag] || tag);
416
- }
417
- })(docImpl, interfaceName))).filter((elm => elm)).map((elm => [ elm ]));
418
- return readImplementations(elms, []);
419
- };
420
- const cstrs = new Set([ "Object" ]);
421
- const readImplementations = (impls, interfaces) => {
422
- const cstrImpls = impls.filter((implData => implData[0])).map((implData => {
423
- const impl = implData[0];
424
- const interfaceType = implData[1];
425
- const cstrName = getConstructorName(impl);
426
- const CstrPrototype = mainWindow[cstrName].prototype;
427
- return [ cstrName, CstrPrototype, impl, interfaceType ];
428
- }));
429
- cstrImpls.map((([cstrName, CstrPrototype, impl, intefaceType]) => readOwnImplementation(cstrs, interfaces, cstrName, CstrPrototype, impl, intefaceType)));
430
- return interfaces;
431
- };
432
- const readImplementation = (cstrName, impl, memberName) => {
433
- let interfaceMembers = [];
434
- let interfaceInfo = [ cstrName, "Object", interfaceMembers ];
435
- for (memberName in impl) {
436
- readImplementationMember(interfaceMembers, impl, memberName);
437
- }
438
- return interfaceInfo;
439
- };
440
- const readOwnImplementation = (cstrs, interfaces, cstrName, CstrPrototype, impl, interfaceType) => {
441
- if (!cstrs.has(cstrName)) {
442
- cstrs.add(cstrName);
443
- const SuperCstr = Object.getPrototypeOf(CstrPrototype);
444
- const superCstrName = getConstructorName(SuperCstr);
445
- const interfaceMembers = [];
446
- const propDescriptors = Object.getOwnPropertyDescriptors(CstrPrototype);
447
- readOwnImplementation(cstrs, interfaces, superCstrName, SuperCstr, impl, interfaceType);
448
- for (const memberName in propDescriptors) {
449
- readImplementationMember(interfaceMembers, impl, memberName);
450
- }
451
- interfaces.push([ cstrName, superCstrName, interfaceMembers, interfaceType, getNodeName(impl) ]);
452
- }
453
- };
454
- const readImplementationMember = (interfaceMembers, implementation, memberName, value, memberType, cstrName) => {
455
- try {
456
- if (isValidMemberName(memberName) && isNaN(memberName[0]) && "all" !== memberName) {
457
- value = implementation[memberName];
458
- memberType = typeof value;
459
- if ("function" === memberType) {
460
- (String(value).includes("[native") || Object.getPrototypeOf(implementation)[memberName]) && interfaceMembers.push([ memberName, 5 ]);
461
- } else if ("object" === memberType && null != value) {
462
- cstrName = getConstructorName(value);
463
- "Object" !== cstrName && self[cstrName] && interfaceMembers.push([ memberName, value.nodeType || cstrName ]);
464
- } else {
465
- "symbol" !== memberType && (memberName.toUpperCase() === memberName ? interfaceMembers.push([ memberName, 6, value ]) : interfaceMembers.push([ memberName, 6 ]));
466
- }
467
- }
468
- } catch (e) {
469
- console.warn(e);
470
- }
471
- };
472
- const readStorage = storageName => {
473
- let items = [];
474
- let i = 0;
475
- let l = len(mainWindow[storageName]);
476
- let key;
477
- for (;i < l; i++) {
478
- key = mainWindow[storageName].key(i);
479
- items.push([ key, mainWindow[storageName].getItem(key) ]);
480
- }
481
- return items;
482
- };
483
- const getGlobalConstructor = (mainWindow, cstrName) => void 0 !== mainWindow[cstrName] ? new mainWindow[cstrName](noop) : 0;
484
- const addGlobalConstructorUsingPrototype = ($interfaces$, mainWindow, cstrName) => {
485
- void 0 !== mainWindow[cstrName] && $interfaces$.push([ cstrName, "Object", Object.keys(mainWindow[cstrName].prototype).map((propName => [ propName, 6 ])), 12 ]);
486
- };
487
- let worker;
488
- (async receiveMessage => {
489
- const sharedDataBuffer = new SharedArrayBuffer(1073741824);
490
- const sharedData = new Int32Array(sharedDataBuffer);
491
- return (worker, msg) => {
492
- const msgType = msg[0];
493
- const accessReq = msg[1];
494
- if (0 === msgType) {
495
- const initData = (() => {
496
- const elm = docImpl.createElement("i");
497
- const textNode = docImpl.createTextNode("");
498
- const comment = docImpl.createComment("");
499
- const frag = docImpl.createDocumentFragment();
500
- const shadowRoot = docImpl.createElement("p").attachShadow({
501
- mode: "open"
502
- });
503
- const intersectionObserver = getGlobalConstructor(mainWindow, "IntersectionObserver");
504
- const mutationObserver = getGlobalConstructor(mainWindow, "MutationObserver");
505
- const resizeObserver = getGlobalConstructor(mainWindow, "ResizeObserver");
506
- const perf = mainWindow.performance;
507
- const screen = mainWindow.screen;
508
- const impls = [ [ mainWindow.history ], [ perf ], [ perf.navigation ], [ perf.timing ], [ screen ], [ screen.orientation ], [ mainWindow.visualViewport ], [ intersectionObserver, 12 ], [ mutationObserver, 12 ], [ resizeObserver, 12 ], [ textNode ], [ comment ], [ frag ], [ shadowRoot ], [ elm ], [ elm.attributes ], [ elm.classList ], [ elm.dataset ], [ elm.style ], [ docImpl ], [ docImpl.doctype ] ];
509
- const initialInterfaces = [ readImplementation("Window", mainWindow), readImplementation("Node", textNode) ];
510
- const $config$ = JSON.stringify(config, ((k, v) => {
511
- if ("function" == typeof v) {
512
- v = String(v);
513
- v.startsWith(k + "(") && (v = "function " + v);
514
- }
515
- return v;
516
- }));
517
- const initWebWorkerData = {
518
- $config$: $config$,
519
- $interfaces$: readImplementations(impls, initialInterfaces),
520
- $libPath$: new URL(libPath, mainWindow.location) + "",
521
- $origin$: origin,
522
- $localStorage$: readStorage("localStorage"),
523
- $sessionStorage$: readStorage("sessionStorage")
524
- };
525
- addGlobalConstructorUsingPrototype(initWebWorkerData.$interfaces$, mainWindow, "IntersectionObserverEntry");
526
- return initWebWorkerData;
527
- })();
528
- initData.$sharedDataBuffer$ = sharedDataBuffer;
529
- worker.postMessage([ 1, initData ]);
530
- } else {
531
- 2 === msg[0] ? worker.postMessage([ 3, readMainInterfaces() ]) : 11 === msgType ? receiveMessage(accessReq, (accessRsp => {
532
- const stringifiedData = JSON.stringify(accessRsp);
533
- const stringifiedDataLength = stringifiedData.length;
534
- for (let i = 0; i < stringifiedDataLength; i++) {
535
- sharedData[i + 1] = stringifiedData.charCodeAt(i);
536
- }
537
- sharedData[0] = stringifiedDataLength;
538
- Atomics.notify(sharedData, 0);
539
- })) : onMessageFromWebWorker(worker, msg);
540
- }
541
- };
542
- })(((accessReq, responseCallback) => mainAccessHandler(worker, accessReq).then(responseCallback))).then((onMessageHandler => {
543
- if (onMessageHandler) {
544
- worker = new Worker(libPath + "partytown-ww-atomics.js?v=0.6.4", {
545
- name: "Partytown 🎉"
546
- });
547
- worker.onmessage = ev => {
548
- const msg = ev.data;
549
- 12 === msg[0] ? mainAccessHandler(worker, msg[1]) : onMessageHandler(worker, msg);
550
- };
551
- logMain("Created Partytown web worker (0.6.4)");
552
- worker.onerror = ev => console.error("Web Worker Error", ev);
553
- mainWindow.addEventListener("pt1", (ev => registerWindow(worker, getAndSetInstanceId(ev.detail.frameElement), ev.detail)));
554
- }
555
- }));
556
- })(window);