@expofp/loader 1.0.61 → 1.0.65

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 (35) hide show
  1. package/dist/bundle/bundle.js +125 -110
  2. package/dist/bundle/bundle.js.map +1 -1
  3. package/dist/bundle/{downloadZip-CohB2rQN.js → downloadOfflineZip-B8tTyZYe.js} +1001 -995
  4. package/dist/bundle/downloadOfflineZip-B8tTyZYe.js.map +1 -0
  5. package/dist/bundle/{makeOffline-DuRXI_Dd.js → makeOffline-DH6wJEem.js} +37 -37
  6. package/dist/bundle/makeOffline-DH6wJEem.js.map +1 -0
  7. package/dist/bundle/makeOfflineBundle-C-xleVMN.js +58 -0
  8. package/dist/bundle/makeOfflineBundle-C-xleVMN.js.map +1 -0
  9. package/dist/bundle/saveOfflineZip.browser-BTQeRUY_.js +7 -0
  10. package/dist/bundle/saveOfflineZip.browser-BTQeRUY_.js.map +1 -0
  11. package/dist/esm/importJson.js +4 -0
  12. package/dist/esm/index.d.ts +1 -1
  13. package/dist/esm/index.js +1 -1
  14. package/dist/esm/offline/downloadOfflineZip.d.ts +4 -0
  15. package/dist/esm/offline/downloadOfflineZip.js +15 -0
  16. package/dist/esm/offline/generateZip.d.ts +4 -0
  17. package/dist/esm/offline/{downloadZip.js → generateZip.js} +9 -8
  18. package/dist/esm/offline/index.d.ts +9 -1
  19. package/dist/esm/offline/index.js +12 -4
  20. package/dist/esm/offline/makeOffline.js +3 -2
  21. package/dist/esm/offline/makeOfflineBundle.js +19 -8
  22. package/dist/esm/offline/saveOfflineZip.browser.d.ts +1 -0
  23. package/dist/esm/offline/saveOfflineZip.browser.js +3 -0
  24. package/dist/esm/offline/saveOfflineZip.d.ts +1 -0
  25. package/dist/esm/offline/saveOfflineZip.js +16 -0
  26. package/dist/esm/offline/tools.js +4 -4
  27. package/dist/esm/resolve.d.ts +11 -4
  28. package/dist/esm/resolve.js +6 -34
  29. package/dist/esm/resolvers/legacyAssetUrlsResolver.js +12 -1
  30. package/package.json +10 -2
  31. package/dist/bundle/downloadZip-CohB2rQN.js.map +0 -1
  32. package/dist/bundle/makeOffline-DuRXI_Dd.js.map +0 -1
  33. package/dist/bundle/makeOfflineBundle-XjvmvDQE.js +0 -58
  34. package/dist/bundle/makeOfflineBundle-XjvmvDQE.js.map +0 -1
  35. package/dist/esm/offline/downloadZip.d.ts +0 -1
@@ -2,32 +2,17 @@ import { log } from './logger';
2
2
  import { resolvers } from './resolvers';
3
3
  import { createMergedObjectWithOverridenNonRefProps, deepFreeze, replaceObjectFields, } from './shared';
4
4
  const globalRefCache = new Map();
5
- /**
6
- * Resolves a value from an object using a JSON Pointer RFC 6901.
7
- *
8
- * @param object - The object to resolve the value from
9
- * @param jsonPointer - A JSON Pointer string that must start with '/'
10
- * @param options - Optional context for resolution, including cache and fetch callback
11
- * @returns A promise that resolves to the value at the specified JSON Pointer path
12
- * @throws {Error} If the JSON Pointer is not valid or if a $ref cannot be resolved
13
- *
14
- * @example
15
- * ```typescript
16
- * const obj = { foo: { bar: 'baz' } };
17
- * const result = await resolve(obj, '/foo/bar');
18
- * // result === 'baz'
19
- * ```
20
- */
21
5
  export async function resolve(object, jsonPointer, options) {
22
6
  log('Resolving:', jsonPointer, 'of', object, options);
23
- if (typeof window !== 'undefined') {
24
- window['__lastResolveObject'] = object;
25
- }
7
+ // if (typeof window !== 'undefined') {
8
+ // (window as any)['__lastResolveObject'] = object;
9
+ // }
26
10
  const resolveContext = {
27
11
  importCallback: options?.importCallback,
28
12
  refCache: options?.refCache || globalRefCache,
29
13
  forceFetch: !!options?.forceFetch,
30
14
  signal: options?.signal || null,
15
+ preResolvedRefs: options?.preResolvedRefs,
31
16
  };
32
17
  if (typeof jsonPointer !== 'string') {
33
18
  throw new Error(`Invalid JSON Pointer (not a string): ${jsonPointer}`);
@@ -260,21 +245,8 @@ export function parseRefValue(ref) {
260
245
  // url: string
261
246
  // ) => Promise<any>;
262
247
  if (typeof window !== 'undefined') {
263
- window['__debugResolve'] = async function debugResolve(objectOrRef, refOrContext, context) {
264
- let object;
265
- let ref;
266
- let resolveContext;
267
- if (typeof objectOrRef === 'string') {
268
- object = window['__lastResolveObject'];
269
- ref = objectOrRef;
270
- resolveContext = refOrContext;
271
- }
272
- else {
273
- object = objectOrRef;
274
- ref = refOrContext;
275
- resolveContext = context;
276
- }
277
- return await resolve(object, ref, resolveContext);
248
+ window['__debugResolve'] = async function debugResolve(object, jsonPointer, options) {
249
+ return await resolve(object, jsonPointer, options);
278
250
  };
279
251
  // (window as any)['__dd'] = async function dd() {
280
252
  // const url = 'https://demo.expofp.com/manifest.json';
@@ -62,13 +62,14 @@ export const legacyAssetUrlsResolver = {
62
62
  const layerUrl = `${dataUrlBase}${layerFile}?v=${version}`;
63
63
  context.importCallback?.(layerUrl, 'script');
64
64
  }
65
- // const files = await filesPromise;...files,
65
+ // const files = await filesPromise;...files,
66
66
  const data = globalThis.__data || {};
67
67
  const dataFiles = ['data.js', 'wf.data.js', 'fp.svg.js', ...fpLayerFiles];
68
68
  const dataFilesAssets = dataFiles.reduce((map, file) => {
69
69
  map[file] = { $ref: `asset+${dataUrlBase}${file}?v=${version}` };
70
70
  return map;
71
71
  }, {});
72
+ // return {};
72
73
  return { ...dataFilesAssets, ...populateDataJsAssetsMap(dataUrlBase, data) };
73
74
  });
74
75
  },
@@ -87,6 +88,16 @@ function populateDataJsAssetsMap(dataUrlBase, data) {
87
88
  addLink(data.logo);
88
89
  data.exhibitors?.forEach((e) => {
89
90
  addLink(e.logo);
91
+ // add same files but with __small and __tiny suffixes
92
+ if (e.logo) {
93
+ const dotIndex = e.logo.lastIndexOf('.');
94
+ if (dotIndex !== -1) {
95
+ const name = e.logo.substring(0, dotIndex);
96
+ const ext = e.logo.substring(dotIndex);
97
+ addLink(`${name}__small${ext}`);
98
+ addLink(`${name}__tiny${ext}`);
99
+ }
100
+ }
90
101
  e.gallery?.forEach((img) => addLink(img));
91
102
  });
92
103
  data.events?.forEach((e) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@expofp/loader",
3
- "version": "1.0.61",
3
+ "version": "1.0.65",
4
4
  "description": "ExpoFP JavaScript loader library",
5
5
  "license": "MIT",
6
6
  "homepage": "https://expofp.com",
@@ -27,7 +27,10 @@
27
27
  "dev": "vite",
28
28
  "clean": "rm -rf dist",
29
29
  "build": "pnpm clean && tsc && vite build",
30
- "preview": "vite preview"
30
+ "preview": "vite preview",
31
+ "offline:build": "tsx ./scripts/buildOffline.ts",
32
+ "offline:serve": "http-server ./tmp/offline",
33
+ "prepare": "husky"
31
34
  },
32
35
  "dependencies": {
33
36
  "debug": "^4.4.3",
@@ -36,7 +39,12 @@
36
39
  "devDependencies": {
37
40
  "@types/debug": "^4.1.12",
38
41
  "@types/node": "^24.10.0",
42
+ "@types/unzipper": "^0.10.11",
43
+ "http-server": "^14.1.1",
44
+ "husky": "^9.1.7",
45
+ "tsx": "^4.21.0",
39
46
  "typescript": "~5.9.3",
47
+ "unzipper": "^0.12.3",
40
48
  "vite": "^7.1.7"
41
49
  },
42
50
  "engines": {