@expofp/loader 1.0.56 → 1.0.58

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 (70) hide show
  1. package/dist/bundle/bundle.js +829 -0
  2. package/dist/bundle/bundle.js.map +1 -0
  3. package/dist/{downloadZip-D1Leqczj.js → bundle/downloadZip-BbVnryS9.js} +332 -335
  4. package/dist/bundle/downloadZip-BbVnryS9.js.map +1 -0
  5. package/dist/{makeOffline-DdJq2uGI.js → bundle/makeOffline-DuRXI_Dd.js} +2 -2
  6. package/dist/bundle/makeOffline-DuRXI_Dd.js.map +1 -0
  7. package/dist/{makeOfflineBundle-CdE5LdlF.js → bundle/makeOfflineBundle-XjvmvDQE.js} +3 -3
  8. package/dist/bundle/makeOfflineBundle-XjvmvDQE.js.map +1 -0
  9. package/dist/{importJson.d.ts → esm/importJson.d.ts} +1 -1
  10. package/dist/esm/importJson.js +52 -0
  11. package/dist/esm/index.js +24 -0
  12. package/dist/esm/loadAndWaitGlobal.js +157 -0
  13. package/dist/esm/logger.d.ts +2 -0
  14. package/dist/esm/logger.js +2 -0
  15. package/dist/{mutateManifest.d.ts → esm/mutateManifest.d.ts} +1 -1
  16. package/dist/esm/mutateManifest.js +10 -0
  17. package/dist/esm/offline/downloadZip copy.js +89 -0
  18. package/dist/esm/offline/downloadZip.js +18 -0
  19. package/dist/esm/offline/hashString.js +16 -0
  20. package/dist/esm/offline/index.js +29 -0
  21. package/dist/{offline → esm/offline}/makeOffline.d.ts +1 -1
  22. package/dist/esm/offline/makeOffline.js +134 -0
  23. package/dist/esm/offline/makeOfflineBundle copy.js +92 -0
  24. package/dist/esm/offline/makeOfflineBundle.js +64 -0
  25. package/dist/esm/offline/slugify.js +61 -0
  26. package/dist/esm/offline/tools.js +69 -0
  27. package/dist/{resolve.d.ts → esm/resolve.d.ts} +1 -1
  28. package/dist/esm/resolve.js +331 -0
  29. package/dist/esm/resolvers/_OLD_expoResolver.js +49 -0
  30. package/dist/esm/resolvers/assetResolver.js +26 -0
  31. package/dist/{resolvers → esm/resolvers}/bundleAssetsResolver.d.ts +1 -1
  32. package/dist/esm/resolvers/bundleAssetsResolver.js +20 -0
  33. package/dist/{resolvers → esm/resolvers}/expoRuntimeBranchResolver.d.ts +1 -1
  34. package/dist/esm/resolvers/expoRuntimeBranchResolver.js +20 -0
  35. package/dist/{resolvers → esm/resolvers}/expoRuntimeGetBranchResolver.d.ts +1 -1
  36. package/dist/esm/resolvers/expoRuntimeGetBranchResolver.js +14 -0
  37. package/dist/{resolvers → esm/resolvers}/expoRuntimeResolver.d.ts +1 -1
  38. package/dist/esm/resolvers/expoRuntimeResolver.js +38 -0
  39. package/dist/{resolvers → esm/resolvers}/httpResolver.d.ts +1 -1
  40. package/dist/esm/resolvers/httpResolver.js +14 -0
  41. package/dist/{resolvers → esm/resolvers}/index.d.ts +1 -1
  42. package/dist/esm/resolvers/index.js +18 -0
  43. package/dist/{resolvers → esm/resolvers}/legacyAssetUrlsResolver.d.ts +1 -1
  44. package/dist/esm/resolvers/legacyAssetUrlsResolver.js +103 -0
  45. package/dist/{resolvers → esm/resolvers}/legacyDataResolver.d.ts +1 -1
  46. package/dist/esm/resolvers/legacyDataResolver.js +17 -0
  47. package/dist/esm/returnCachedRef.js +12 -0
  48. package/dist/esm/shared.js +271 -0
  49. package/dist/{types.d.ts → esm/types.d.ts} +1 -1
  50. package/dist/esm/types.js +1 -0
  51. package/package.json +15 -11
  52. package/dist/downloadZip-D1Leqczj.js.map +0 -1
  53. package/dist/index.js +0 -502
  54. package/dist/index.js.map +0 -1
  55. package/dist/makeOffline-DdJq2uGI.js.map +0 -1
  56. package/dist/makeOfflineBundle-CdE5LdlF.js.map +0 -1
  57. /package/dist/{index.d.ts → esm/index.d.ts} +0 -0
  58. /package/dist/{loadAndWaitGlobal.d.ts → esm/loadAndWaitGlobal.d.ts} +0 -0
  59. /package/dist/{offline → esm/offline}/downloadZip copy.d.ts +0 -0
  60. /package/dist/{offline → esm/offline}/downloadZip.d.ts +0 -0
  61. /package/dist/{offline → esm/offline}/hashString.d.ts +0 -0
  62. /package/dist/{offline → esm/offline}/index.d.ts +0 -0
  63. /package/dist/{offline → esm/offline}/makeOfflineBundle copy.d.ts +0 -0
  64. /package/dist/{offline → esm/offline}/makeOfflineBundle.d.ts +0 -0
  65. /package/dist/{offline → esm/offline}/slugify.d.ts +0 -0
  66. /package/dist/{offline → esm/offline}/tools.d.ts +0 -0
  67. /package/dist/{resolvers → esm/resolvers}/_OLD_expoResolver.d.ts +0 -0
  68. /package/dist/{resolvers → esm/resolvers}/assetResolver.d.ts +0 -0
  69. /package/dist/{returnCachedRef.d.ts → esm/returnCachedRef.d.ts} +0 -0
  70. /package/dist/{shared.d.ts → esm/shared.d.ts} +0 -0
@@ -0,0 +1,829 @@
1
+ window.__efpLoaderBuildInfo = ["1.0.58", "2025-12-13T11:23:04.759Z"];
2
+ var je = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {};
3
+ function X(r) {
4
+ return r && r.__esModule && Object.prototype.hasOwnProperty.call(r, "default") ? r.default : r;
5
+ }
6
+ var j = { exports: {} }, U, z;
7
+ function Y() {
8
+ if (z) return U;
9
+ z = 1;
10
+ var r = 1e3, e = r * 60, t = e * 60, n = t * 24, o = n * 7, l = n * 365.25;
11
+ U = function(f, s) {
12
+ s = s || {};
13
+ var i = typeof f;
14
+ if (i === "string" && f.length > 0)
15
+ return a(f);
16
+ if (i === "number" && isFinite(f))
17
+ return s.long ? c(f) : d(f);
18
+ throw new Error(
19
+ "val is not a non-empty string or a valid number. val=" + JSON.stringify(f)
20
+ );
21
+ };
22
+ function a(f) {
23
+ if (f = String(f), !(f.length > 100)) {
24
+ var s = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(
25
+ f
26
+ );
27
+ if (s) {
28
+ var i = parseFloat(s[1]), u = (s[2] || "ms").toLowerCase();
29
+ switch (u) {
30
+ case "years":
31
+ case "year":
32
+ case "yrs":
33
+ case "yr":
34
+ case "y":
35
+ return i * l;
36
+ case "weeks":
37
+ case "week":
38
+ case "w":
39
+ return i * o;
40
+ case "days":
41
+ case "day":
42
+ case "d":
43
+ return i * n;
44
+ case "hours":
45
+ case "hour":
46
+ case "hrs":
47
+ case "hr":
48
+ case "h":
49
+ return i * t;
50
+ case "minutes":
51
+ case "minute":
52
+ case "mins":
53
+ case "min":
54
+ case "m":
55
+ return i * e;
56
+ case "seconds":
57
+ case "second":
58
+ case "secs":
59
+ case "sec":
60
+ case "s":
61
+ return i * r;
62
+ case "milliseconds":
63
+ case "millisecond":
64
+ case "msecs":
65
+ case "msec":
66
+ case "ms":
67
+ return i;
68
+ default:
69
+ return;
70
+ }
71
+ }
72
+ }
73
+ }
74
+ function d(f) {
75
+ var s = Math.abs(f);
76
+ return s >= n ? Math.round(f / n) + "d" : s >= t ? Math.round(f / t) + "h" : s >= e ? Math.round(f / e) + "m" : s >= r ? Math.round(f / r) + "s" : f + "ms";
77
+ }
78
+ function c(f) {
79
+ var s = Math.abs(f);
80
+ return s >= n ? w(f, s, n, "day") : s >= t ? w(f, s, t, "hour") : s >= e ? w(f, s, e, "minute") : s >= r ? w(f, s, r, "second") : f + " ms";
81
+ }
82
+ function w(f, s, i, u) {
83
+ var h = s >= i * 1.5;
84
+ return Math.round(f / i) + " " + u + (h ? "s" : "");
85
+ }
86
+ return U;
87
+ }
88
+ var D, V;
89
+ function x() {
90
+ if (V) return D;
91
+ V = 1;
92
+ function r(e) {
93
+ n.debug = n, n.default = n, n.coerce = w, n.disable = d, n.enable = l, n.enabled = c, n.humanize = Y(), n.destroy = f, Object.keys(e).forEach((s) => {
94
+ n[s] = e[s];
95
+ }), n.names = [], n.skips = [], n.formatters = {};
96
+ function t(s) {
97
+ let i = 0;
98
+ for (let u = 0; u < s.length; u++)
99
+ i = (i << 5) - i + s.charCodeAt(u), i |= 0;
100
+ return n.colors[Math.abs(i) % n.colors.length];
101
+ }
102
+ n.selectColor = t;
103
+ function n(s) {
104
+ let i, u = null, h, v;
105
+ function p(...m) {
106
+ if (!p.enabled)
107
+ return;
108
+ const b = p, E = Number(/* @__PURE__ */ new Date()), A = E - (i || E);
109
+ b.diff = A, b.prev = i, b.curr = E, i = E, m[0] = n.coerce(m[0]), typeof m[0] != "string" && m.unshift("%O");
110
+ let g = 0;
111
+ m[0] = m[0].replace(/%([a-zA-Z%])/g, (R, k) => {
112
+ if (R === "%%")
113
+ return "%";
114
+ g++;
115
+ const C = n.formatters[k];
116
+ if (typeof C == "function") {
117
+ const $ = m[g];
118
+ R = C.call(b, $), m.splice(g, 1), g--;
119
+ }
120
+ return R;
121
+ }), n.formatArgs.call(b, m), (b.log || n.log).apply(b, m);
122
+ }
123
+ return p.namespace = s, p.useColors = n.useColors(), p.color = n.selectColor(s), p.extend = o, p.destroy = n.destroy, Object.defineProperty(p, "enabled", {
124
+ enumerable: !0,
125
+ configurable: !1,
126
+ get: () => u !== null ? u : (h !== n.namespaces && (h = n.namespaces, v = n.enabled(s)), v),
127
+ set: (m) => {
128
+ u = m;
129
+ }
130
+ }), typeof n.init == "function" && n.init(p), p;
131
+ }
132
+ function o(s, i) {
133
+ const u = n(this.namespace + (typeof i > "u" ? ":" : i) + s);
134
+ return u.log = this.log, u;
135
+ }
136
+ function l(s) {
137
+ n.save(s), n.namespaces = s, n.names = [], n.skips = [];
138
+ const i = (typeof s == "string" ? s : "").trim().replace(/\s+/g, ",").split(",").filter(Boolean);
139
+ for (const u of i)
140
+ u[0] === "-" ? n.skips.push(u.slice(1)) : n.names.push(u);
141
+ }
142
+ function a(s, i) {
143
+ let u = 0, h = 0, v = -1, p = 0;
144
+ for (; u < s.length; )
145
+ if (h < i.length && (i[h] === s[u] || i[h] === "*"))
146
+ i[h] === "*" ? (v = h, p = u, h++) : (u++, h++);
147
+ else if (v !== -1)
148
+ h = v + 1, p++, u = p;
149
+ else
150
+ return !1;
151
+ for (; h < i.length && i[h] === "*"; )
152
+ h++;
153
+ return h === i.length;
154
+ }
155
+ function d() {
156
+ const s = [
157
+ ...n.names,
158
+ ...n.skips.map((i) => "-" + i)
159
+ ].join(",");
160
+ return n.enable(""), s;
161
+ }
162
+ function c(s) {
163
+ for (const i of n.skips)
164
+ if (a(s, i))
165
+ return !1;
166
+ for (const i of n.names)
167
+ if (a(s, i))
168
+ return !0;
169
+ return !1;
170
+ }
171
+ function w(s) {
172
+ return s instanceof Error ? s.stack || s.message : s;
173
+ }
174
+ function f() {
175
+ console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");
176
+ }
177
+ return n.enable(n.load()), n;
178
+ }
179
+ return D = r, D;
180
+ }
181
+ var G;
182
+ function ee() {
183
+ return G || (G = 1, (function(r, e) {
184
+ e.formatArgs = n, e.save = o, e.load = l, e.useColors = t, e.storage = a(), e.destroy = /* @__PURE__ */ (() => {
185
+ let c = !1;
186
+ return () => {
187
+ c || (c = !0, console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."));
188
+ };
189
+ })(), e.colors = [
190
+ "#0000CC",
191
+ "#0000FF",
192
+ "#0033CC",
193
+ "#0033FF",
194
+ "#0066CC",
195
+ "#0066FF",
196
+ "#0099CC",
197
+ "#0099FF",
198
+ "#00CC00",
199
+ "#00CC33",
200
+ "#00CC66",
201
+ "#00CC99",
202
+ "#00CCCC",
203
+ "#00CCFF",
204
+ "#3300CC",
205
+ "#3300FF",
206
+ "#3333CC",
207
+ "#3333FF",
208
+ "#3366CC",
209
+ "#3366FF",
210
+ "#3399CC",
211
+ "#3399FF",
212
+ "#33CC00",
213
+ "#33CC33",
214
+ "#33CC66",
215
+ "#33CC99",
216
+ "#33CCCC",
217
+ "#33CCFF",
218
+ "#6600CC",
219
+ "#6600FF",
220
+ "#6633CC",
221
+ "#6633FF",
222
+ "#66CC00",
223
+ "#66CC33",
224
+ "#9900CC",
225
+ "#9900FF",
226
+ "#9933CC",
227
+ "#9933FF",
228
+ "#99CC00",
229
+ "#99CC33",
230
+ "#CC0000",
231
+ "#CC0033",
232
+ "#CC0066",
233
+ "#CC0099",
234
+ "#CC00CC",
235
+ "#CC00FF",
236
+ "#CC3300",
237
+ "#CC3333",
238
+ "#CC3366",
239
+ "#CC3399",
240
+ "#CC33CC",
241
+ "#CC33FF",
242
+ "#CC6600",
243
+ "#CC6633",
244
+ "#CC9900",
245
+ "#CC9933",
246
+ "#CCCC00",
247
+ "#CCCC33",
248
+ "#FF0000",
249
+ "#FF0033",
250
+ "#FF0066",
251
+ "#FF0099",
252
+ "#FF00CC",
253
+ "#FF00FF",
254
+ "#FF3300",
255
+ "#FF3333",
256
+ "#FF3366",
257
+ "#FF3399",
258
+ "#FF33CC",
259
+ "#FF33FF",
260
+ "#FF6600",
261
+ "#FF6633",
262
+ "#FF9900",
263
+ "#FF9933",
264
+ "#FFCC00",
265
+ "#FFCC33"
266
+ ];
267
+ function t() {
268
+ if (typeof window < "u" && window.process && (window.process.type === "renderer" || window.process.__nwjs))
269
+ return !0;
270
+ if (typeof navigator < "u" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))
271
+ return !1;
272
+ let c;
273
+ return typeof document < "u" && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || // Is firebug? http://stackoverflow.com/a/398120/376773
274
+ typeof window < "u" && window.console && (window.console.firebug || window.console.exception && window.console.table) || // Is firefox >= v31?
275
+ // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
276
+ typeof navigator < "u" && navigator.userAgent && (c = navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)) && parseInt(c[1], 10) >= 31 || // Double check webkit in userAgent just in case we are in a worker
277
+ typeof navigator < "u" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/);
278
+ }
279
+ function n(c) {
280
+ if (c[0] = (this.useColors ? "%c" : "") + this.namespace + (this.useColors ? " %c" : " ") + c[0] + (this.useColors ? "%c " : " ") + "+" + r.exports.humanize(this.diff), !this.useColors)
281
+ return;
282
+ const w = "color: " + this.color;
283
+ c.splice(1, 0, w, "color: inherit");
284
+ let f = 0, s = 0;
285
+ c[0].replace(/%[a-zA-Z%]/g, (i) => {
286
+ i !== "%%" && (f++, i === "%c" && (s = f));
287
+ }), c.splice(s, 0, w);
288
+ }
289
+ e.log = console.debug || console.log || (() => {
290
+ });
291
+ function o(c) {
292
+ try {
293
+ c ? e.storage.setItem("debug", c) : e.storage.removeItem("debug");
294
+ } catch {
295
+ }
296
+ }
297
+ function l() {
298
+ let c;
299
+ try {
300
+ c = e.storage.getItem("debug") || e.storage.getItem("DEBUG");
301
+ } catch {
302
+ }
303
+ return !c && typeof process < "u" && "env" in process && (c = process.env.DEBUG), c;
304
+ }
305
+ function a() {
306
+ try {
307
+ return localStorage;
308
+ } catch {
309
+ }
310
+ }
311
+ r.exports = x()(e);
312
+ const { formatters: d } = r.exports;
313
+ d.j = function(c) {
314
+ try {
315
+ return JSON.stringify(c);
316
+ } catch (w) {
317
+ return "[UnexpectedJSONParseError]: " + w.message;
318
+ }
319
+ };
320
+ })(j, j.exports)), j.exports;
321
+ }
322
+ var re = ee();
323
+ const te = /* @__PURE__ */ X(re), N = te("efp:loader");
324
+ function ne(r) {
325
+ return y("assetResolver resolveRef:", r), F(r);
326
+ }
327
+ const oe = {
328
+ schema: "asset",
329
+ resolveRef: async (r) => ne(r),
330
+ offlineMethod: "localizeRef"
331
+ };
332
+ let M;
333
+ const se = /* @__PURE__ */ new WeakSet(), Z = new Function("url", 'return import(url, { with: { type: "json" } });');
334
+ async function _(r, e) {
335
+ var n, o;
336
+ if (M === void 0 && !e.forceFetch)
337
+ try {
338
+ await Z(r), M = !1;
339
+ } catch {
340
+ y("importJson: dynamic import not available, falling back to fetch"), M = !0;
341
+ }
342
+ let t;
343
+ return !M && !e.forceFetch ? (t = (await Z(r)).default, (n = e.importCallback) == null || n.call(e, r, "json")) : (y("importJson: fetch", r), t = await ae(r, e.refCache, e.signal || null), (o = e.importCallback) == null || o.call(e, r, "json")), se.has(t) || O(t), t;
344
+ }
345
+ async function ae(r, e, t) {
346
+ const n = "__loadJson__" + r;
347
+ if (e.has(n))
348
+ return e.get(n);
349
+ const o = (async function() {
350
+ const a = await fetch(r, { signal: t });
351
+ if (!a.ok)
352
+ throw new Error(`Failed to fetch JSON from ${r}`);
353
+ return await a.json();
354
+ })();
355
+ return e.set(n, o), o;
356
+ }
357
+ async function I(r, e, t) {
358
+ if (e.has(r))
359
+ return e.get(r);
360
+ const n = t().then((o) => (O(o), o));
361
+ return e.set(r, n), n;
362
+ }
363
+ const ie = {
364
+ schema: "bundle-assets",
365
+ async resolveRef(r, e) {
366
+ y("bundleAssetsResolver resolveRef:", r);
367
+ const t = F(r);
368
+ return I(r, e.refCache, async () => {
369
+ const n = await _(t, e), o = t.substring(0, t.lastIndexOf("/") + 1);
370
+ return n.map((a) => ({
371
+ $ref: `asset+${o}${a}`
372
+ }));
373
+ });
374
+ },
375
+ offlineMethod: "localizeRef"
376
+ }, le = "https://efp-runtime.expofp.com/", ce = {
377
+ schema: "expo-runtime-branch",
378
+ async resolveRef(r, e) {
379
+ y("expoRuntimeBranchResolver resolveRef:", r);
380
+ const t = F(r), n = `${le}branches/${t}.json`;
381
+ return I(r, e.refCache, async () => ({
382
+ $ref: `expo-runtime+https://efp-runtime.expofp.com/releases/${await _(n, e)}/`
383
+ }));
384
+ },
385
+ offlineMethod: "resolveRef"
386
+ }, fe = {
387
+ schema: "expo-runtime-get-branch",
388
+ async resolveRef(r, e) {
389
+ y("expoRuntimeGetBranchResolver resolveRef:", r);
390
+ const n = `https://${F(r)}.expofp.com/get-branch`;
391
+ return _(n, e);
392
+ },
393
+ offlineMethod: "resolveRef"
394
+ }, ue = {
395
+ schema: "expo-runtime",
396
+ // canResolve(ref: string) {
397
+ // return canResolveRefSchema(ref, SCHEMA);
398
+ // },
399
+ async resolveRef(r) {
400
+ y("expoRuntimeResolver resolveRef:", r);
401
+ const e = F(r), t = {
402
+ entry: { $ref: `asset+${e}expofp.js` },
403
+ assets: { $ref: `bundle-assets+${e}bundle.json` }
404
+ };
405
+ return O(t), t;
406
+ },
407
+ // async *makeOfflineRef(ref: string) {
408
+ // log('expoRuntimeResolver makeOfflineRef:', ref);
409
+ // if (!this.canResolve(ref)) throw new Error(`Unexpected ref: ${ref}`);
410
+ // const url = parseRefValue(ref);
411
+ // const refData = deepClone(await this.resolveRef(ref));
412
+ // const targetFilePath = makeUniqueJsonTargetPathFromString(url, SCHEMA_PREFIX_BASE);
413
+ // const data = yield* makeOfflineInternal(refData);
414
+ // yield { data: data, targetFilePath };
415
+ // return { $ref: targetFilePath, [STOP_RESOLVING]: true };
416
+ // },
417
+ // async *makeOfflineRef2(ref: string) {
418
+ // const refData = deepClone(await this.resolveRef(ref));
419
+ // const targetFilePath = makeUniqueJsonTargetPathFromString(ref);
420
+ // const data = yield* makeOfflineInternal(refData);
421
+ // yield { data, targetFilePath };
422
+ // return targetFilePath;
423
+ // },
424
+ offlineMethod: "resolveRef"
425
+ }, de = {
426
+ canResolve(r) {
427
+ return r.startsWith("http://") || r.startsWith("https://") || r.startsWith("./");
428
+ },
429
+ resolveRef(r, e) {
430
+ if (y("httpResolver resolveRef:", r), !this.canResolve(r)) throw new Error(`Unexpected ref in httpResolver: ${r}`);
431
+ return _(r, e);
432
+ },
433
+ offlineMethod: "resolveRef"
434
+ };
435
+ async function L(r, e) {
436
+ const { globalVar: t, timeoutMs: n = 1e4, pollIntervalMs: o = 10 } = e;
437
+ we() ? (t && window[t] !== void 0 && delete window[t], await he(r, e.signal), t && await q(
438
+ () => window[t],
439
+ t,
440
+ n,
441
+ o,
442
+ e.signal
443
+ )) : (t && globalThis[t] !== void 0 && delete globalThis[t], await pe(r, e.signal), t && await q(
444
+ () => globalThis[t],
445
+ t,
446
+ n,
447
+ o,
448
+ e.signal
449
+ ));
450
+ }
451
+ function we() {
452
+ return typeof window < "u" && typeof document < "u";
453
+ }
454
+ function he(r, e) {
455
+ return new Promise((t, n) => {
456
+ const o = document.createElement("script");
457
+ o.src = r, o.async = !0;
458
+ const l = () => {
459
+ o.onload = null, o.onerror = null, o.remove();
460
+ }, a = () => {
461
+ l(), n(new Error("Script load aborted"));
462
+ };
463
+ if (e != null && e.aborted) {
464
+ l(), n(new Error("Script load aborted"));
465
+ return;
466
+ }
467
+ e == null || e.addEventListener("abort", a, { once: !0 }), o.onload = () => {
468
+ e == null || e.removeEventListener("abort", a), l(), t();
469
+ }, o.onerror = () => {
470
+ e == null || e.removeEventListener("abort", a), l(), n(new Error(`Failed to load script: ${r}`));
471
+ }, document.head.appendChild(o);
472
+ });
473
+ }
474
+ async function pe(r, e) {
475
+ if (typeof fetch != "function")
476
+ throw new Error("loadInNode: fetch is not available. Use Node 18+ or provide a global fetch.");
477
+ if (e != null && e.aborted)
478
+ throw new Error("Script load aborted");
479
+ let t;
480
+ try {
481
+ t = await fetch(r, { signal: e });
482
+ } catch (a) {
483
+ throw a && a.name === "AbortError" ? new Error("Script load aborted") : a;
484
+ }
485
+ if (!t.ok)
486
+ throw new Error(`Failed to load script in Node (HTTP ${t.status}): ${r}`);
487
+ if (e != null && e.aborted)
488
+ throw new Error("Script load aborted");
489
+ let n;
490
+ try {
491
+ n = await t.text();
492
+ } catch (a) {
493
+ throw a && a.name === "AbortError" ? new Error("Script load aborted") : a;
494
+ }
495
+ if (e != null && e.aborted)
496
+ throw new Error("Script load aborted");
497
+ const o = globalThis, l = o.window;
498
+ o.window = o;
499
+ try {
500
+ (0, eval)(n);
501
+ } finally {
502
+ l === void 0 ? delete o.window : o.window = l;
503
+ }
504
+ }
505
+ function q(r, e, t, n, o) {
506
+ return new Promise((l, a) => {
507
+ const d = Date.now(), c = () => {
508
+ a(new Error("Wait for global aborted"));
509
+ };
510
+ if (o != null && o.aborted) {
511
+ a(new Error("Wait for global aborted"));
512
+ return;
513
+ }
514
+ o == null || o.addEventListener("abort", c, { once: !0 });
515
+ const w = () => {
516
+ if (o != null && o.aborted)
517
+ return a(new Error("Wait for global aborted"));
518
+ try {
519
+ if (r() !== void 0)
520
+ return o == null || o.removeEventListener("abort", c), l();
521
+ } catch {
522
+ }
523
+ if (Date.now() - d >= t)
524
+ return o == null || o.removeEventListener("abort", c), a(new Error(`Timed out after ${t} ms waiting for global "${e}"`));
525
+ setTimeout(w, n);
526
+ };
527
+ w();
528
+ });
529
+ }
530
+ const me = {
531
+ schema: "legacy-asset-urls",
532
+ resolveRef(r, e) {
533
+ y("legacyAssetUrlsResolver resolveRef:", r);
534
+ const t = e.signal;
535
+ return I(r, e.refCache, async () => {
536
+ var A, g, B, R, k;
537
+ const n = F(r), o = `${n}version.js`;
538
+ try {
539
+ await L(o, {
540
+ globalVar: "__fpDataVersion",
541
+ timeoutMs: 3e4,
542
+ signal: t
543
+ }), (A = e.importCallback) == null || A.call(e, o, "script");
544
+ } catch {
545
+ console.warn(`Could not load version.js at ${o}, proceeding without it`);
546
+ }
547
+ const l = globalThis.__fpDataVersion || (+/* @__PURE__ */ new Date()).toString(), a = `${n}files.json?v=${l}`, d = `${n}data.js?v=${l}`, c = _(a, e).catch(() => (console.warn(`Could not load files.json at ${a}, proceeding without it`), [])), w = L(d, {
548
+ globalVar: "__data",
549
+ signal: t
550
+ });
551
+ (g = e.importCallback) == null || g.call(e, d, "script");
552
+ const f = `${n}wf.data.js?v=${l}`, s = L(f, {
553
+ globalVar: "__wfData",
554
+ signal: t
555
+ }).then(() => {
556
+ var C;
557
+ (C = e.importCallback) == null || C.call(e, f, "script");
558
+ }).catch(() => {
559
+ console.warn(`Could not load wf.data.js at ${f}, proceeding without it`);
560
+ });
561
+ delete globalThis.__fpLayers;
562
+ const i = `${n}fp.svg.js?v=${l}`, u = L(i, {
563
+ globalVar: "__fp",
564
+ signal: t
565
+ });
566
+ (B = e.importCallback) == null || B.call(e, i, "script"), await Promise.all([c, w, s, u]);
567
+ const v = ((R = globalThis.__fpLayers) != null ? R : []).map((C) => `fp.svg.${C.name}.js`);
568
+ for (const C of v) {
569
+ const $ = `${n}${C}?v=${l}`;
570
+ (k = e.importCallback) == null || k.call(e, $, "script");
571
+ }
572
+ const p = await c, m = globalThis.__data || {};
573
+ return { ...[...p, "data.js", "wf.data.js", "fp.svg.js", ...v].reduce((C, $) => (C[$] = { $ref: `asset+${n}${$}?v=${l}` }, C), {}), ...ye(n, m) };
574
+ });
575
+ },
576
+ offlineMethod: "resolveRef"
577
+ };
578
+ function ye(r, e) {
579
+ var o, l;
580
+ const t = /* @__PURE__ */ new Set();
581
+ function n(a) {
582
+ typeof a == "string" && a.length > 0 && t.add(a);
583
+ }
584
+ return n(e.logo), (o = e.exhibitors) == null || o.forEach((a) => {
585
+ var d;
586
+ n(a.logo), (d = a.gallery) == null || d.forEach((c) => n(c));
587
+ }), (l = e.events) == null || l.forEach((a) => {
588
+ var d;
589
+ n(a.logoFile), (d = a.speakers) == null || d.forEach((c) => {
590
+ n(c.photoFile);
591
+ });
592
+ }), Array.from(t).reduce((a, d) => (a[d] = { $ref: `asset+${r}${d}` }, a), {});
593
+ }
594
+ const Ce = {
595
+ schema: "legacy-data",
596
+ resolveRef(r, e) {
597
+ return y("legacyDataResolver resolveRef:", r), I(r, e.refCache, async () => {
598
+ const t = F(r);
599
+ return {
600
+ _to_remove_for_offline_to_work_dataUrlBase: t,
601
+ legacyAssetUrls: { $ref: `legacy-asset-urls+${t}` }
602
+ };
603
+ });
604
+ },
605
+ offlineMethod: "resolveRef"
606
+ }, ve = [
607
+ de,
608
+ ie,
609
+ oe,
610
+ ue,
611
+ ce,
612
+ fe,
613
+ Ce,
614
+ me
615
+ ], be = /* @__PURE__ */ new Map();
616
+ async function P(r, e, t) {
617
+ y("Resolving:", e, "of", r, t), typeof window < "u" && (window.__lastResolveObject = r);
618
+ const n = {
619
+ importCallback: t == null ? void 0 : t.importCallback,
620
+ refCache: (t == null ? void 0 : t.refCache) || be,
621
+ forceFetch: !!(t != null && t.forceFetch),
622
+ signal: (t == null ? void 0 : t.signal) || null
623
+ };
624
+ if (typeof e != "string")
625
+ throw new Error(`Invalid JSON Pointer (not a string): ${e}`);
626
+ if (!e.startsWith("/"))
627
+ throw new Error(`Invalid JSON Pointer: ${e}`);
628
+ if (e.length > 1 && e.endsWith("/"))
629
+ throw new Error(`Invalid JSON Pointer: ${e}`);
630
+ let o;
631
+ if (e === "/" ? o = [] : o = e.substring(1).split("/"), o.some((l) => l.length === 0))
632
+ throw new Error(`Invalid JSON Pointer (empty part): ${e}`);
633
+ if (t != null && t.mutate) {
634
+ o.unshift("root");
635
+ const l = { root: r };
636
+ await H(l, o, 0, n), Ee(r, l.root);
637
+ } else
638
+ return await K(r, o, 0, n);
639
+ }
640
+ async function H(r, e, t, n) {
641
+ const o = e[t];
642
+ if (await ge(r, o, n), t != e.length - 1) {
643
+ if (r[o] === null || typeof r[o] != "object")
644
+ throw new Error(
645
+ `Cannot resolve path, encountered non-object at part '${e.slice(1).join("/")}', index ${t - 1}'`
646
+ );
647
+ return await H(r[o], e, t + 1, n);
648
+ }
649
+ }
650
+ async function ge(r, e, t) {
651
+ y("resolveObjectMutate:", r, e);
652
+ let n = r[e];
653
+ const o = await W(n, t);
654
+ o !== void 0 && (r[e] = o);
655
+ }
656
+ async function K(r, e, t, n) {
657
+ if (t === e.length)
658
+ return await W(r, n);
659
+ if (r === null || typeof r != "object")
660
+ throw new Error(
661
+ `Cannot resolve path, encountered non-object at part '${e.join("/")}', index ${t}'`
662
+ );
663
+ const o = e[t];
664
+ let l = r[o];
665
+ return l === void 0 && (l = (await W(r, n))[o]), await K(l, e, t + 1, n);
666
+ }
667
+ async function W(r, e) {
668
+ y("resolveObject:", r);
669
+ let t = r;
670
+ do {
671
+ if (typeof t != "object" || t === null || !("$ref" in t))
672
+ return t;
673
+ const n = ve.filter((l) => Q(l, t.$ref));
674
+ if (n.length === 0) {
675
+ if (t.$ref)
676
+ throw new Error(`No resolver found for ref: ${t.$ref}`);
677
+ return O(t), t;
678
+ }
679
+ if (n.length > 1)
680
+ throw new Error(`Multiple resolvers can resolve ref: ${t.$ref}`);
681
+ const o = await Fe(n[0], t.$ref, e);
682
+ t = $e(o, t);
683
+ } while (!0);
684
+ }
685
+ async function Fe(r, e, t) {
686
+ if (!Q(r, e))
687
+ throw new Error(`Unexpected ref: ${e}`);
688
+ return r.resolveRef(e, t);
689
+ }
690
+ function Q(r, e) {
691
+ if (r.canResolve)
692
+ return r.canResolve(e);
693
+ if (r.schema)
694
+ return Re(e, r.schema);
695
+ throw new Error("Resolver is missing canResolve method and schema property");
696
+ }
697
+ function Re(r, e) {
698
+ const t = [`${e}+`, `${e}:`];
699
+ for (const n of t)
700
+ if (r.startsWith(n))
701
+ return !0;
702
+ return !1;
703
+ }
704
+ function F(r) {
705
+ if (r.startsWith("http://") || r.startsWith("https://"))
706
+ return r;
707
+ const e = r.indexOf("+http://"), t = r.indexOf("+https://");
708
+ if (e !== -1)
709
+ return r.substring(e + 1);
710
+ if (t !== -1)
711
+ return r.substring(t + 1);
712
+ const n = r.indexOf(":");
713
+ if (n !== -1)
714
+ return r.substring(n + 1);
715
+ throw new Error(`Error getting URL from: ${r}, no valid prefix found`);
716
+ }
717
+ typeof window < "u" && (window.__debugResolve = async function(e, t, n) {
718
+ let o, l, a;
719
+ return typeof e == "string" ? (o = window.__lastResolveObject, l = e, a = t) : (o = e, l = t, a = n), await P(o, l, a);
720
+ });
721
+ function T(r) {
722
+ return async (e, ...t) => {
723
+ try {
724
+ const l = (await import(await P(e, "/runtime/entry")))[r];
725
+ return l(e, ...t);
726
+ } catch (n) {
727
+ throw console.error("efp-loader", `Error when trying to import and call "${r}":`, n), n;
728
+ }
729
+ };
730
+ }
731
+ function y(...r) {
732
+ N(...r);
733
+ }
734
+ function O(r) {
735
+ if (r === null || typeof r != "object") return r;
736
+ Object.freeze(r);
737
+ for (const e of Object.keys(r)) {
738
+ const t = r[e];
739
+ typeof t == "object" && t !== null && !Object.isFrozen(t) && O(t);
740
+ }
741
+ return r;
742
+ }
743
+ function S(r) {
744
+ return "structuredClone" in globalThis ? globalThis.structuredClone(r) : JSON.parse(JSON.stringify(r));
745
+ }
746
+ function $e(r, e) {
747
+ if (r === e) return;
748
+ if (e === null || typeof e != "object")
749
+ throw new Error("Cannot merge non-object source");
750
+ if (Array.isArray(e))
751
+ throw new Error("Cannot merge arrays");
752
+ const t = Object.keys(e).filter((o) => o !== "$ref");
753
+ if (t.length === 0) return S(r);
754
+ if (Array.isArray(r))
755
+ throw new Error("Cannot merge into arrays");
756
+ if (r === null || typeof r != "object")
757
+ throw new Error("Cannot merge into non-object target");
758
+ const n = S({ ...r });
759
+ for (const o of t)
760
+ n[o] = e[o];
761
+ return n;
762
+ }
763
+ function Ee(r, e) {
764
+ if (r !== e) {
765
+ if (e === null || typeof e != "object")
766
+ throw new Error("Cannot replace with non-object source");
767
+ if (r === null || typeof r != "object")
768
+ throw new Error("Cannot replace non-object target");
769
+ if (Array.isArray(r)) {
770
+ if (!Array.isArray(e))
771
+ throw new Error("replaceObjectFields does not support mixing arrays and objects");
772
+ r.length = 0;
773
+ for (const t of e)
774
+ r.push(t);
775
+ return;
776
+ }
777
+ for (const t of Object.keys(r))
778
+ t in e || delete r[t];
779
+ for (const t of Object.keys(e))
780
+ r[t] = e[t];
781
+ }
782
+ }
783
+ async function _e(r, e, t) {
784
+ t = t || {};
785
+ for (const n of e)
786
+ await P(r, n, { ...t, mutate: !0 });
787
+ }
788
+ typeof window < "u" && (window.__debugMutateManifest = _e);
789
+ async function Oe(r) {
790
+ const { makeOfflineBundle: e } = await import("./makeOfflineBundle-XjvmvDQE.js");
791
+ return await e(r);
792
+ }
793
+ async function Ae(r) {
794
+ const { downloadZip: e } = await import("./downloadZip-BbVnryS9.js");
795
+ return await e(r);
796
+ }
797
+ async function ke(r) {
798
+ const { makeOffline: e } = await import("./makeOffline-DuRXI_Dd.js"), t = await e(r);
799
+ for await (const n of (await t).files)
800
+ "data" in n ? console.info(`🗳️ Put ${n.targetFilePath} <=`, n.data) : "url" in n && console.info(`🗳️ Download ${n.targetFilePath} <= ${n.url}`);
801
+ console.info("Offline data: ", t.manifest);
802
+ }
803
+ typeof window < "u" && (window.__debugDownloadZip = Ae, window.__debugMakeOfflineBundle = Oe, window.__debugLogOfflineManifestFiles = ke);
804
+ const J = globalThis.__efpLoaderBuildInfo;
805
+ J ? N("Loader initialized", { version: J[0], builtAt: J[1] }) : N("Loader initialized");
806
+ const Me = T("mount"), Le = T("load"), Ie = T("initialize");
807
+ async function Te(r, e, ...t) {
808
+ return await T(r)(e, ...t);
809
+ }
810
+ export {
811
+ Q as a,
812
+ $e as b,
813
+ je as c,
814
+ Te as callFunction_Experimental,
815
+ S as d,
816
+ Ae as downloadZip,
817
+ Fe as e,
818
+ X as g,
819
+ Ie as initialize,
820
+ y as l,
821
+ Le as load,
822
+ Oe as makeOfflineBundle,
823
+ Me as mount,
824
+ _e as mutateManifest,
825
+ F as p,
826
+ ve as r,
827
+ P as resolve
828
+ };
829
+ //# sourceMappingURL=bundle.js.map