@expofp/loader 1.0.79 → 1.0.92

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 (92) hide show
  1. package/dist/bundle/ImportHttpRuntime.node-B85BNHJG.js +92 -0
  2. package/dist/bundle/ImportHttpRuntime.node-B85BNHJG.js.map +1 -0
  3. package/dist/bundle/bundle.js +238 -683
  4. package/dist/bundle/bundle.js.map +1 -1
  5. package/dist/esm/ImportHttpRuntime.node.d.ts +28 -0
  6. package/dist/esm/ImportHttpRuntime.node.js +139 -0
  7. package/dist/esm/_OLD_resolveRuntimeUrl.d.ts +1 -0
  8. package/dist/esm/_OLD_resolveRuntimeUrl.js +10 -0
  9. package/dist/esm/importHttpRuntime.d.ts +1 -0
  10. package/dist/esm/importHttpRuntime.js +12 -0
  11. package/dist/esm/index.d.ts +10 -7
  12. package/dist/esm/index.js +40 -19
  13. package/dist/esm/resolve.d.ts +10 -44
  14. package/dist/esm/resolve.js +91 -295
  15. package/dist/esm/types.d.ts +11 -26
  16. package/package.json +3 -1
  17. package/dist/bundle/cssTextAssetResolver.offlineFunc-CWvHnYni.js +0 -19
  18. package/dist/bundle/cssTextAssetResolver.offlineFunc-CWvHnYni.js.map +0 -1
  19. package/dist/bundle/downloadOfflineZip-CNz_lUGZ.js +0 -2344
  20. package/dist/bundle/downloadOfflineZip-CNz_lUGZ.js.map +0 -1
  21. package/dist/bundle/legacyDataUrlBaseResolver.offlineFunc-DPaSp_zV.js +0 -87
  22. package/dist/bundle/legacyDataUrlBaseResolver.offlineFunc-DPaSp_zV.js.map +0 -1
  23. package/dist/bundle/makeOffline-Dj-0o5_7.js +0 -76
  24. package/dist/bundle/makeOffline-Dj-0o5_7.js.map +0 -1
  25. package/dist/bundle/makeOfflineBundle-D8tePWGI.js +0 -70
  26. package/dist/bundle/makeOfflineBundle-D8tePWGI.js.map +0 -1
  27. package/dist/bundle/saveOfflineZip.browser-BTQeRUY_.js +0 -7
  28. package/dist/bundle/saveOfflineZip.browser-BTQeRUY_.js.map +0 -1
  29. package/dist/bundle/tools-D0u8lBvQ.js +0 -102
  30. package/dist/bundle/tools-D0u8lBvQ.js.map +0 -1
  31. package/dist/esm/_OLD_fetchWithRetry.d.ts +0 -1
  32. package/dist/esm/_OLD_fetchWithRetry.js +0 -101
  33. package/dist/esm/importJson.d.ts +0 -2
  34. package/dist/esm/importJson.js +0 -59
  35. package/dist/esm/loadScript.d.ts +0 -16
  36. package/dist/esm/loadScript.js +0 -166
  37. package/dist/esm/logger.d.ts +0 -1
  38. package/dist/esm/logger.js +0 -5
  39. package/dist/esm/mutateManifest.d.ts +0 -2
  40. package/dist/esm/mutateManifest.js +0 -10
  41. package/dist/esm/offline/downloadOfflineZip.d.ts +0 -4
  42. package/dist/esm/offline/downloadOfflineZip.js +0 -15
  43. package/dist/esm/offline/generateZip.d.ts +0 -4
  44. package/dist/esm/offline/generateZip.js +0 -41
  45. package/dist/esm/offline/hashString.d.ts +0 -1
  46. package/dist/esm/offline/hashString.js +0 -16
  47. package/dist/esm/offline/index.d.ts +0 -14
  48. package/dist/esm/offline/index.js +0 -41
  49. package/dist/esm/offline/makeOffline.d.ts +0 -2
  50. package/dist/esm/offline/makeOffline.js +0 -144
  51. package/dist/esm/offline/makeOfflineBundle.d.ts +0 -4
  52. package/dist/esm/offline/makeOfflineBundle.js +0 -92
  53. package/dist/esm/offline/saveOfflineZip.browser.d.ts +0 -1
  54. package/dist/esm/offline/saveOfflineZip.browser.js +0 -3
  55. package/dist/esm/offline/saveOfflineZip.d.ts +0 -1
  56. package/dist/esm/offline/saveOfflineZip.js +0 -16
  57. package/dist/esm/offline/slugify.d.ts +0 -1
  58. package/dist/esm/offline/slugify.js +0 -61
  59. package/dist/esm/offline/tools.d.ts +0 -3
  60. package/dist/esm/offline/tools.js +0 -85
  61. package/dist/esm/resolvers/_OLD_expoResolver.d.ts +0 -1
  62. package/dist/esm/resolvers/_OLD_expoResolver.js +0 -49
  63. package/dist/esm/resolvers/assetResolver.d.ts +0 -6
  64. package/dist/esm/resolvers/assetResolver.js +0 -26
  65. package/dist/esm/resolvers/bundleAssetsResolver.d.ts +0 -2
  66. package/dist/esm/resolvers/bundleAssetsResolver.js +0 -20
  67. package/dist/esm/resolvers/cssTextAssetResolver.d.ts +0 -8
  68. package/dist/esm/resolvers/cssTextAssetResolver.js +0 -15
  69. package/dist/esm/resolvers/cssTextAssetResolver.offlineFunc.d.ts +0 -2
  70. package/dist/esm/resolvers/cssTextAssetResolver.offlineFunc.js +0 -22
  71. package/dist/esm/resolvers/expoRuntimeBranchResolver.d.ts +0 -2
  72. package/dist/esm/resolvers/expoRuntimeBranchResolver.js +0 -20
  73. package/dist/esm/resolvers/expoRuntimeGetBranchResolver.d.ts +0 -2
  74. package/dist/esm/resolvers/expoRuntimeGetBranchResolver.js +0 -14
  75. package/dist/esm/resolvers/expoRuntimeResolver.d.ts +0 -2
  76. package/dist/esm/resolvers/expoRuntimeResolver.js +0 -39
  77. package/dist/esm/resolvers/httpResolver.d.ts +0 -5
  78. package/dist/esm/resolvers/httpResolver.js +0 -14
  79. package/dist/esm/resolvers/index.d.ts +0 -2
  80. package/dist/esm/resolvers/index.js +0 -22
  81. package/dist/esm/resolvers/legacyAssetUrlsResolver.d.ts +0 -9
  82. package/dist/esm/resolvers/legacyAssetUrlsResolver.js +0 -116
  83. package/dist/esm/resolvers/legacyDataResolver.d.ts +0 -8
  84. package/dist/esm/resolvers/legacyDataResolver.js +0 -20
  85. package/dist/esm/resolvers/legacyDataUrlBaseResolver.d.ts +0 -8
  86. package/dist/esm/resolvers/legacyDataUrlBaseResolver.js +0 -15
  87. package/dist/esm/resolvers/legacyDataUrlBaseResolver.offlineFunc.d.ts +0 -2
  88. package/dist/esm/resolvers/legacyDataUrlBaseResolver.offlineFunc.js +0 -129
  89. package/dist/esm/returnCachedRef.d.ts +0 -1
  90. package/dist/esm/returnCachedRef.js +0 -12
  91. package/dist/esm/shared.d.ts +0 -8
  92. package/dist/esm/shared.js +0 -273
@@ -1,129 +0,0 @@
1
- import { loadScript } from '../loadScript';
2
- import { makeTargetPathFromUrl, relativeUrlToFilePath } from '../offline/tools';
3
- import { parseRefValue } from '../resolve';
4
- import { log, SCHEMA } from './legacyDataUrlBaseResolver';
5
- export const offlineFunc = async function* (ref, context) {
6
- log('legacyDataResolver offlineFunc:', ref);
7
- const signal = context.signal;
8
- const dataUrlBase = parseRefValue(ref);
9
- const versionUrl = `${dataUrlBase}version.js`;
10
- try {
11
- await loadScript(versionUrl, signal);
12
- }
13
- catch {
14
- console.warn(`Could not load version.js at ${versionUrl}, proceeding without it`);
15
- }
16
- const version = globalThis.__fpDataVersion || (+new Date()).toString();
17
- const localDataUrlBase = makeTargetPathFromUrl(dataUrlBase) + version + '/';
18
- const dataUrl = `${dataUrlBase}data.js?v=${version}`;
19
- // data.js
20
- await loadScript(dataUrl, signal);
21
- const __data = getAndDeleteGlobal('__data');
22
- yield* localizeDataJson(__data, dataUrlBase, localDataUrlBase);
23
- const text = `var __data = ${JSON.stringify(__data, null, 2)};`;
24
- yield { text, targetFilePath: `${localDataUrlBase}data.js` };
25
- // wf.data.js
26
- const wfDataUrl = `${dataUrlBase}wf.data.js?v=${version}`;
27
- yield { url: wfDataUrl, targetFilePath: `${localDataUrlBase}wf.data.js` };
28
- // fp.svg.js
29
- const fpSvgUrl = `${dataUrlBase}fp.svg.js?v=${version}`;
30
- yield { url: fpSvgUrl, targetFilePath: `${localDataUrlBase}fp.svg.js` };
31
- // load fp.svg.js to get __fpLayers
32
- await loadScript(fpSvgUrl, signal);
33
- const __fpLayers = getAndDeleteGlobal('__fpLayers') || [];
34
- const fpLayerFiles = __fpLayers.map((x) => `fp.svg.${x.name}.js`);
35
- for (const layerFile of fpLayerFiles) {
36
- // fp.svg.{layer}.js
37
- const layerUrl = `${dataUrlBase}${layerFile}?v=${version}`;
38
- yield { url: layerUrl, targetFilePath: `${localDataUrlBase}${layerFile}` };
39
- }
40
- return `${SCHEMA}:${localDataUrlBase}`;
41
- };
42
- function* localizeDataJson(data, dataUrlBase, localDataUrlBase) {
43
- if (data.logo) {
44
- const r = z(data.logo);
45
- yield r.file;
46
- data.logo = r.localUrl;
47
- }
48
- for (const exhibitor of data.exhibitors || []) {
49
- if (exhibitor.logo) {
50
- const r = z(exhibitor.logo);
51
- yield r.file;
52
- const variants = ['__small', '__tiny'];
53
- for (const variant of variants) {
54
- const url = addSuffix(r.file.url, variant);
55
- const targetFilePath = addSuffix(r.file.targetFilePath, variant);
56
- yield { url, targetFilePath };
57
- }
58
- exhibitor.logo = r.localUrl;
59
- }
60
- if (exhibitor.leadingImageUrl) {
61
- const r = z(exhibitor.leadingImageUrl);
62
- yield r.file;
63
- exhibitor.leadingImageUrl = r.localUrl;
64
- }
65
- const gallery = exhibitor.gallery || [];
66
- for (let i = 0; i < gallery.length; i++) {
67
- const url = gallery[i];
68
- const r = z(url);
69
- yield r.file;
70
- gallery[i] = r.localUrl;
71
- }
72
- }
73
- for (const event of data.events || []) {
74
- if (event.logoFile) {
75
- const r = z(event.logoFile);
76
- yield r.file;
77
- event.logoFile = r.localUrl;
78
- }
79
- for (const speaker of event.speakers || []) {
80
- if (speaker.photoFile) {
81
- const r = z(speaker.photoFile);
82
- yield r.file;
83
- speaker.photoFile = r.localUrl;
84
- }
85
- }
86
- }
87
- function z(relativeUrl) {
88
- const url = dataUrlBase + relativeUrl;
89
- const localUrl = relativeUrlToFilePath(relativeUrl);
90
- const targetFilePath = localDataUrlBase + localUrl;
91
- return {
92
- file: { url, targetFilePath },
93
- localUrl,
94
- };
95
- }
96
- }
97
- function getAndDeleteGlobal(globalVar) {
98
- const value = globalThis[globalVar];
99
- delete globalThis[globalVar];
100
- return value;
101
- }
102
- // abs and relative paths
103
- function addSuffix(absoluteOrRelativeUrl, suffix) {
104
- let urlObj;
105
- let absolute;
106
- try {
107
- urlObj = new URL(absoluteOrRelativeUrl);
108
- absolute = true;
109
- }
110
- catch {
111
- urlObj = new URL(absoluteOrRelativeUrl, 'http://example.com');
112
- absolute = false;
113
- }
114
- const pathname = urlObj.pathname;
115
- const dotIndex = pathname.lastIndexOf('.');
116
- if (dotIndex === -1) {
117
- return absoluteOrRelativeUrl; // no extension found
118
- }
119
- const name = pathname.substring(0, dotIndex);
120
- const extension = pathname.substring(dotIndex);
121
- urlObj.pathname = name + suffix + extension;
122
- if (absolute) {
123
- // return full absolute URL
124
- return urlObj.toString();
125
- }
126
- else {
127
- return urlObj.pathname.slice(1) + urlObj.search;
128
- }
129
- }
@@ -1 +0,0 @@
1
- export declare function returnCachedRef(ref: string, refCache: Map<string, Promise<any>>, factory: () => Promise<any>): Promise<any>;
@@ -1,12 +0,0 @@
1
- import { deepFreeze } from './shared';
2
- export async function returnCachedRef(ref, refCache, factory) {
3
- if (refCache.has(ref)) {
4
- return refCache.get(ref);
5
- }
6
- const promise = factory().then((data) => {
7
- deepFreeze(data);
8
- return data;
9
- });
10
- refCache.set(ref, promise);
11
- return promise;
12
- }
@@ -1,8 +0,0 @@
1
- export declare function createFunction(name: string): (manifest: unknown, ...args: IArguments[]) => Promise<any>;
2
- export declare function deepFreeze(obj: any): any;
3
- export declare function deepClone<T>(obj: T): T;
4
- export declare function shallowClone<T>(obj: T): T;
5
- export declare function preloadJson(url: string): void;
6
- export declare function preconnectUrl(url: string): void;
7
- export declare function createMergedObjectWithOverridenNonRefProps(target: any, source: any): any;
8
- export declare function replaceObjectFields(target: any, source: any): void;
@@ -1,273 +0,0 @@
1
- import { resolve } from './resolve';
2
- // export const NOT_APPLICABLE = Symbol('not-applicable');
3
- // export const STOP_RESOLVING = Symbol('STOP_RESOLVING');
4
- export function createFunction(name) {
5
- return async (manifest, ...args) => {
6
- try {
7
- const runtimeEntryPoint = await resolve(manifest, '/runtime/entry');
8
- const moduleExports = await import(/* @vite-ignore */ runtimeEntryPoint);
9
- const functionToCall = moduleExports[name];
10
- return functionToCall(manifest, ...args);
11
- }
12
- catch (error) {
13
- console.error('efp-loader', `Error when trying to import and call "${name}":`, error);
14
- throw error;
15
- }
16
- };
17
- }
18
- export function deepFreeze(obj) {
19
- if (obj === null || typeof obj !== 'object')
20
- return obj;
21
- Object.freeze(obj);
22
- for (const key of Object.keys(obj)) {
23
- const val = obj[key];
24
- if (typeof val === 'object' && val !== null && !Object.isFrozen(val)) {
25
- deepFreeze(val);
26
- }
27
- }
28
- return obj;
29
- }
30
- export function deepClone(obj) {
31
- if ('structuredClone' in globalThis) {
32
- return globalThis.structuredClone(obj);
33
- }
34
- return JSON.parse(JSON.stringify(obj));
35
- }
36
- export function shallowClone(obj) {
37
- if (obj === null || typeof obj !== 'object')
38
- return obj;
39
- if (Array.isArray(obj)) {
40
- return obj.slice();
41
- }
42
- return { ...obj };
43
- }
44
- export function preloadJson(url) {
45
- if (typeof document === 'undefined')
46
- return; // SSR / Node
47
- const link = document.createElement('link');
48
- link.rel = 'preload';
49
- link.as = 'fetch';
50
- link.href = url;
51
- link.crossOrigin = 'anonymous';
52
- document.head.appendChild(link);
53
- }
54
- export function preconnectUrl(url) {
55
- if (typeof document === 'undefined')
56
- return; // SSR / Node
57
- const link = document.createElement('link');
58
- link.rel = 'preconnect';
59
- link.href = url;
60
- link.crossOrigin = 'anonymous';
61
- document.head.appendChild(link);
62
- }
63
- // export function hashString(str: string): string {
64
- // let hash = 0;
65
- // for (let i = 0; i < str.length; i++) {
66
- // const chr = str.charCodeAt(i);
67
- // hash = (hash << 5) - hash + chr;
68
- // hash |= 0; // force 32-bit int
69
- // }
70
- // // >>> 0 makes it unsigned (no '-' in front)
71
- // return (hash >>> 0).toString(16); // hex, [0-9a-f]
72
- // }
73
- // Deterministic ID
74
- // export async function hashString(str: string): Promise<string> {
75
- // const encoder = new TextEncoder();
76
- // const data = encoder.encode(str);
77
- // const digest = await crypto.subtle.digest('SHA-1', data);
78
- // return bufferToHex(digest);
79
- // }
80
- // murmur32
81
- // export function hashString(str: string): string {
82
- // let h = 0x811c9dc5;
83
- // for (let i = 0; i < str.length; i++) {
84
- // h ^= str.charCodeAt(i);
85
- // h = Math.imul(h, 0x01000193);
86
- // }
87
- // return (h >>> 0).toString(16).padStart(24, '0');
88
- // }
89
- // function bufferToHex(buffer: ArrayBuffer): string {
90
- // const bytes = new Uint8Array(buffer);
91
- // let hex = '';
92
- // for (let i = 0; i < bytes.length; i++) {
93
- // const byteHex = bytes[i].toString(16).padStart(2, '0');
94
- // hex += byteHex;
95
- // }
96
- // return hex;
97
- // }
98
- // export function mergeNonRefFields(target: any, source: any) {
99
- // if (target === source) throw new Error('Cannot merge object with itself');
100
- // // if source is primitive, throw
101
- // if (source === null || typeof source !== 'object')
102
- // throw new Error('Cannot merge non-object source');
103
- // if (Array.isArray(source)) {
104
- // throw new Error('mergeNonRefFields does not support merging arrays');
105
- // }
106
- // const nonRefKeys = Object.keys(source).filter((key) => key !== '$ref');
107
- // if (nonRefKeys.length === 0) return;
108
- // // throw if any is array
109
- // if (Array.isArray(target)) {
110
- // throw new Error('mergeNonRefFields does not support merging into arrays');
111
- // }
112
- // for (const key of nonRefKeys) {
113
- // // if target is primitive, throw
114
- // if (target === null || typeof target !== 'object')
115
- // throw new Error('Cannot merge into non-object target');
116
- // target[key] = source[key];
117
- // }
118
- // }
119
- // export function mergeNonExitingFields(target: any, source: any) {
120
- // if (target === source) throw new Error('Cannot merge object with itself');
121
- // // if source is primitive, throw
122
- // if (source === null || typeof source !== 'object')
123
- // throw new Error('Cannot merge non-object source');
124
- // if (Array.isArray(source)) {
125
- // throw new Error('mergeNonExitingFields does not support merging arrays');
126
- // }
127
- // const keys = Object.keys(source);
128
- // if (keys.length === 0) return;
129
- // // throw if any is array
130
- // if (Array.isArray(target)) {
131
- // throw new Error('mergeNonExitingFields does not support merging into arrays');
132
- // }
133
- // for (const key of Object.keys(source)) {
134
- // // if target is primitive, throw
135
- // if (target === null || typeof target !== 'object')
136
- // throw new Error('Cannot merge into non-object target');
137
- // if (!(key in target)) {
138
- // target[key] = source[key];
139
- // }
140
- // }
141
- // }
142
- // export function replaceObjectFields(target: any, source: any) {
143
- // if (target === source) {
144
- // throw new Error('Cannot replace object with itself');
145
- // }
146
- // // if source is primitive, throw
147
- // if (source === null || typeof source !== 'object') {
148
- // throw new Error('Cannot replace with non-object source');
149
- // }
150
- // // throw if any is array
151
- // if (Array.isArray(target) || Array.isArray(source)) {
152
- // throw new Error('replaceObjectFields does not support arrays');
153
- // }
154
- // // delete keys in target that are not in source
155
- // for (const key of Object.keys(target)) {
156
- // if (!(key in source)) {
157
- // delete target[key];
158
- // }
159
- // }
160
- // // copy keys from source to target
161
- // for (const key of Object.keys(source)) {
162
- // target[key] = source[key];
163
- // }
164
- // }
165
- // export function isObject(v: any): boolean {
166
- // return v !== null && typeof v === 'object' && !Array.isArray(v);
167
- // }
168
- // export function mergeOriginalFieldsIntoResolvedObject(target: any, source: any) {
169
- // if (target === source) throw new Error('Cannot merge object with itself');
170
- // // if source is primitive, throw
171
- // if (source === null || typeof source !== 'object')
172
- // throw new Error('Cannot merge non-object source');
173
- // if (Array.isArray(source)) {
174
- // throw new Error('Cannot merge arrays');
175
- // }
176
- // const nonRefKeys = Object.keys(source).filter((key) => key !== '$ref');
177
- // if (nonRefKeys.length === 0) return;
178
- // // throw if any is array
179
- // if (Array.isArray(target)) {
180
- // throw new Error('Cannot merge into arrays');
181
- // }
182
- // for (const key of nonRefKeys) {
183
- // // if target is primitive, throw
184
- // if (target === null || typeof target !== 'object')
185
- // throw new Error('Cannot merge into non-object target');
186
- // target[key] = source[key];
187
- // }
188
- // }
189
- // export function createMergedObject(target: any, source: any) {
190
- // if (target === source) return; //throw new Error('Cannot merge object with itself');
191
- // // if source is primitive, throw
192
- // if (source === null || typeof source !== 'object')
193
- // throw new Error('Cannot merge non-object source');
194
- // if (Array.isArray(source)) {
195
- // throw new Error('Cannot merge arrays');
196
- // }
197
- // const nonRefKeys = Object.keys(source).filter((key) => key !== '$ref');
198
- // if (nonRefKeys.length === 0) return target;
199
- // // throw if any is array
200
- // if (Array.isArray(target)) {
201
- // throw new Error('Cannot merge into arrays');
202
- // }
203
- // if (target === null || typeof target !== 'object') {
204
- // throw new Error('Cannot merge into non-object target');
205
- // }
206
- // const result = { ...target };
207
- // for (const key of nonRefKeys) {
208
- // result[key] = source[key];
209
- // }
210
- // deepFreeze(result);
211
- // return result;
212
- // }
213
- export function createMergedObjectWithOverridenNonRefProps(target, source) {
214
- if (target === source)
215
- return; //throw new Error('Cannot merge object with itself');
216
- // if source is primitive, throw
217
- if (source === null || typeof source !== 'object')
218
- throw new Error('Cannot merge non-object source');
219
- if (Array.isArray(source)) {
220
- throw new Error('Cannot merge arrays');
221
- }
222
- const nonRefKeys = Object.keys(source).filter((key) => key !== '$ref');
223
- if (nonRefKeys.length === 0)
224
- return shallowClone(target);
225
- // throw if any is array
226
- if (Array.isArray(target)) {
227
- throw new Error('Cannot merge into arrays');
228
- }
229
- if (target === null || typeof target !== 'object') {
230
- throw new Error('Cannot merge into non-object target');
231
- }
232
- const result = { ...target }; //deepClone({ ...target });
233
- for (const key of nonRefKeys) {
234
- result[key] = source[key];
235
- }
236
- // deepFreeze(result);
237
- return result;
238
- }
239
- export function replaceObjectFields(target, source) {
240
- if (target === source) {
241
- return;
242
- // throw new Error('Cannot replace object with itself');
243
- }
244
- // if source is primitive, throw
245
- if (source === null || typeof source !== 'object') {
246
- throw new Error('Cannot replace with non-object source');
247
- }
248
- // if target is primitive, throw
249
- if (target === null || typeof target !== 'object') {
250
- throw new Error('Cannot replace non-object target');
251
- }
252
- if (Array.isArray(target)) {
253
- if (!Array.isArray(source)) {
254
- throw new Error('replaceObjectFields does not support mixing arrays and objects');
255
- }
256
- // both are arrays - replace contents
257
- target.length = 0;
258
- for (const item of source) {
259
- target.push(item);
260
- }
261
- return;
262
- }
263
- // delete keys in target that are not in source
264
- for (const key of Object.keys(target)) {
265
- if (!(key in source)) {
266
- delete target[key];
267
- }
268
- }
269
- // copy keys from source to target
270
- for (const key of Object.keys(source)) {
271
- target[key] = source[key];
272
- }
273
- }