@expofp/loader 1.0.63 → 1.0.77

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 (57) hide show
  1. package/dist/bundle/bundle.js +566 -433
  2. package/dist/bundle/bundle.js.map +1 -1
  3. package/dist/bundle/cssTextAssetResolver.offlineFunc-CWvHnYni.js +19 -0
  4. package/dist/bundle/cssTextAssetResolver.offlineFunc-CWvHnYni.js.map +1 -0
  5. package/dist/bundle/{downloadOfflineZip-RIzZSzeG.js → downloadOfflineZip-CNz_lUGZ.js} +701 -687
  6. package/dist/bundle/downloadOfflineZip-CNz_lUGZ.js.map +1 -0
  7. package/dist/bundle/legacyDataUrlBaseResolver.offlineFunc-BPlVJ7wy.js +84 -0
  8. package/dist/bundle/legacyDataUrlBaseResolver.offlineFunc-BPlVJ7wy.js.map +1 -0
  9. package/dist/bundle/makeOffline-Dj-0o5_7.js +76 -0
  10. package/dist/bundle/makeOffline-Dj-0o5_7.js.map +1 -0
  11. package/dist/bundle/makeOfflineBundle-D8tePWGI.js +70 -0
  12. package/dist/bundle/makeOfflineBundle-D8tePWGI.js.map +1 -0
  13. package/dist/bundle/tools-D0u8lBvQ.js +102 -0
  14. package/dist/bundle/tools-D0u8lBvQ.js.map +1 -0
  15. package/dist/esm/_OLD_fetchWithRetry.d.ts +1 -0
  16. package/dist/esm/_OLD_fetchWithRetry.js +101 -0
  17. package/dist/esm/index.d.ts +1 -1
  18. package/dist/esm/index.js +1 -1
  19. package/dist/esm/{loadAndWaitGlobal.d.ts → loadScript.d.ts} +2 -1
  20. package/dist/esm/{loadAndWaitGlobal.js → loadScript.js} +16 -6
  21. package/dist/esm/offline/generateZip.js +22 -2
  22. package/dist/esm/offline/index.d.ts +1 -0
  23. package/dist/esm/offline/index.js +4 -0
  24. package/dist/esm/offline/makeOffline.js +11 -3
  25. package/dist/esm/offline/makeOfflineBundle.js +30 -9
  26. package/dist/esm/offline/tools.d.ts +1 -0
  27. package/dist/esm/offline/tools.js +49 -33
  28. package/dist/esm/resolvers/assetResolver.d.ts +1 -1
  29. package/dist/esm/resolvers/assetResolver.js +1 -1
  30. package/dist/esm/resolvers/bundleAssetsResolver.js +1 -1
  31. package/dist/esm/resolvers/cssTextAssetResolver.d.ts +8 -0
  32. package/dist/esm/resolvers/cssTextAssetResolver.js +15 -0
  33. package/dist/esm/resolvers/cssTextAssetResolver.offlineFunc.d.ts +2 -0
  34. package/dist/esm/resolvers/cssTextAssetResolver.offlineFunc.js +22 -0
  35. package/dist/esm/resolvers/expoRuntimeBranchResolver.js +1 -1
  36. package/dist/esm/resolvers/expoRuntimeGetBranchResolver.js +1 -1
  37. package/dist/esm/resolvers/expoRuntimeResolver.js +1 -1
  38. package/dist/esm/resolvers/httpResolver.d.ts +1 -1
  39. package/dist/esm/resolvers/httpResolver.js +1 -1
  40. package/dist/esm/resolvers/index.js +4 -0
  41. package/dist/esm/resolvers/legacyAssetUrlsResolver.d.ts +4 -1
  42. package/dist/esm/resolvers/legacyAssetUrlsResolver.js +15 -2
  43. package/dist/esm/resolvers/legacyDataResolver.d.ts +4 -1
  44. package/dist/esm/resolvers/legacyDataResolver.js +4 -1
  45. package/dist/esm/resolvers/legacyDataUrlBaseResolver.d.ts +8 -0
  46. package/dist/esm/resolvers/legacyDataUrlBaseResolver.js +15 -0
  47. package/dist/esm/resolvers/legacyDataUrlBaseResolver.offlineFunc.d.ts +2 -0
  48. package/dist/esm/resolvers/legacyDataUrlBaseResolver.offlineFunc.js +140 -0
  49. package/dist/esm/shared.d.ts +1 -0
  50. package/dist/esm/shared.js +10 -2
  51. package/dist/esm/types.d.ts +7 -2
  52. package/package.json +7 -3
  53. package/dist/bundle/downloadOfflineZip-RIzZSzeG.js.map +0 -1
  54. package/dist/bundle/makeOffline-Doxc2dX7.js +0 -159
  55. package/dist/bundle/makeOffline-Doxc2dX7.js.map +0 -1
  56. package/dist/bundle/makeOfflineBundle-BoEPc05D.js +0 -60
  57. package/dist/bundle/makeOfflineBundle-BoEPc05D.js.map +0 -1
@@ -33,6 +33,14 @@ export function deepClone(obj) {
33
33
  }
34
34
  return JSON.parse(JSON.stringify(obj));
35
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
+ }
36
44
  export function preloadJson(url) {
37
45
  if (typeof document === 'undefined')
38
46
  return; // SSR / Node
@@ -213,7 +221,7 @@ export function createMergedObjectWithOverridenNonRefProps(target, source) {
213
221
  }
214
222
  const nonRefKeys = Object.keys(source).filter((key) => key !== '$ref');
215
223
  if (nonRefKeys.length === 0)
216
- return deepClone(target);
224
+ return shallowClone(target);
217
225
  // throw if any is array
218
226
  if (Array.isArray(target)) {
219
227
  throw new Error('Cannot merge into arrays');
@@ -221,7 +229,7 @@ export function createMergedObjectWithOverridenNonRefProps(target, source) {
221
229
  if (target === null || typeof target !== 'object') {
222
230
  throw new Error('Cannot merge into non-object target');
223
231
  }
224
- const result = deepClone({ ...target });
232
+ const result = { ...target }; //deepClone({ ...target });
225
233
  for (const key of nonRefKeys) {
226
234
  result[key] = source[key];
227
235
  }
@@ -3,19 +3,24 @@ export interface Resolver {
3
3
  schema?: string;
4
4
  canResolve?(ref: string): boolean;
5
5
  resolveRef(ref: string, context: ResolveContextInternal): Promise<any>;
6
- offlineMethod: 'localizeRef' | 'resolveRef';
6
+ offlineFunc: 'localizeRef' | 'resolveRef' | OfflineFunc;
7
7
  }
8
8
  export interface LocalFetchFile {
9
9
  url: string;
10
10
  targetFilePath: string;
11
11
  }
12
+ export interface LocalTextFile {
13
+ text: string;
14
+ targetFilePath: string;
15
+ }
12
16
  export interface LocalJsonFile {
13
17
  data: unknown;
14
18
  targetFilePath: string;
15
19
  }
16
20
  export type ManifestData = any;
17
- export type LocalFile = LocalFetchFile | LocalJsonFile;
21
+ export type LocalFile = LocalFetchFile | LocalJsonFile | LocalTextFile;
18
22
  export interface MakeOfflineResult {
19
23
  manifest: any;
20
24
  files: AsyncGenerator<LocalFile, ManifestData, void>;
21
25
  }
26
+ export type OfflineFunc = (ref: string, context: ResolveContextInternal) => AsyncGenerator<LocalFile, string, void>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@expofp/loader",
3
- "version": "1.0.63",
3
+ "version": "1.0.77",
4
4
  "description": "ExpoFP JavaScript loader library",
5
5
  "license": "MIT",
6
6
  "homepage": "https://expofp.com",
@@ -28,11 +28,14 @@
28
28
  "clean": "rm -rf dist",
29
29
  "build": "pnpm clean && tsc && vite build",
30
30
  "preview": "vite preview",
31
+ "css": "tsx watch ./scripts/css.ts",
31
32
  "offline:build": "tsx ./scripts/buildOffline.ts",
32
- "offline:serve": "http-server ./tmp/offline"
33
+ "offline:serve": "http-server ./tmp/offline",
34
+ "prepare": "husky"
33
35
  },
34
36
  "dependencies": {
35
37
  "debug": "^4.4.3",
38
+ "fetch-retry": "^6.0.0",
36
39
  "jszip": "^3.10.1"
37
40
  },
38
41
  "devDependencies": {
@@ -40,6 +43,7 @@
40
43
  "@types/node": "^24.10.0",
41
44
  "@types/unzipper": "^0.10.11",
42
45
  "http-server": "^14.1.1",
46
+ "husky": "^9.1.7",
43
47
  "tsx": "^4.21.0",
44
48
  "typescript": "~5.9.3",
45
49
  "unzipper": "^0.12.3",
@@ -48,5 +52,5 @@
48
52
  "engines": {
49
53
  "node": ">=24"
50
54
  },
51
- "packageManager": "pnpm@10.24.0"
55
+ "packageManager": "pnpm@10.26.0+sha512.3b3f6c725ebe712506c0ab1ad4133cf86b1f4b687effce62a9b38b4d72e3954242e643190fc51fa1642949c735f403debd44f5cb0edd657abe63a8b6a7e1e402"
52
56
  }