@expofp/loader 1.0.59 → 1.0.61
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.
- package/dist/bundle/bundle.js +158 -155
- package/dist/bundle/bundle.js.map +1 -1
- package/dist/bundle/{downloadZip-BbVnryS9.js → downloadZip-CohB2rQN.js} +326 -324
- package/dist/bundle/downloadZip-CohB2rQN.js.map +1 -0
- package/dist/bundle/makeOffline-DuRXI_Dd.js.map +1 -1
- package/dist/bundle/makeOfflineBundle-XjvmvDQE.js.map +1 -1
- package/dist/esm/importJson.js +2 -1
- package/dist/esm/index.js +3 -3
- package/dist/esm/loadAndWaitGlobal.js +1 -1
- package/dist/esm/logger.d.ts +1 -2
- package/dist/esm/logger.js +4 -1
- package/dist/esm/offline/downloadZip.js +2 -0
- package/dist/esm/offline/makeOffline.js +2 -1
- package/dist/esm/offline/makeOfflineBundle.js +1 -1
- package/dist/esm/resolve.js +2 -1
- package/dist/esm/resolvers/_OLD_expoResolver.js +1 -1
- package/dist/esm/resolvers/assetResolver.js +1 -1
- package/dist/esm/resolvers/bundleAssetsResolver.js +1 -1
- package/dist/esm/resolvers/expoRuntimeBranchResolver.js +2 -2
- package/dist/esm/resolvers/expoRuntimeGetBranchResolver.js +1 -1
- package/dist/esm/resolvers/expoRuntimeResolver.js +2 -1
- package/dist/esm/resolvers/httpResolver.js +1 -1
- package/dist/esm/resolvers/legacyAssetUrlsResolver.js +9 -10
- package/dist/esm/resolvers/legacyDataResolver.js +1 -1
- package/dist/esm/shared.d.ts +0 -1
- package/dist/esm/shared.js +0 -6
- package/package.json +1 -1
- package/dist/bundle/downloadZip-BbVnryS9.js.map +0 -1
- package/dist/esm/offline/downloadZip copy.d.ts +0 -1
- package/dist/esm/offline/downloadZip copy.js +0 -89
- package/dist/esm/offline/makeOfflineBundle copy.d.ts +0 -1
- package/dist/esm/offline/makeOfflineBundle copy.js +0 -92
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
// import { gunzipSync } from 'fflate';
|
|
2
|
-
// import untar from 'js-untar';
|
|
3
|
-
// import JSZip from 'jszip';
|
|
4
|
-
// import { makeOffline } from './makeOffline';
|
|
5
|
-
// import { log } from '../shared';
|
|
6
|
-
export {};
|
|
7
|
-
// export async function downloadZip(manifest: unknown) {
|
|
8
|
-
// const zip = new JSZip();
|
|
9
|
-
// const offlineData = await makeOffline(manifest);
|
|
10
|
-
// for await (const file of offlineData.files) {
|
|
11
|
-
// if ('data' in file) {
|
|
12
|
-
// zip.file(file.targetFilePath, JSON.stringify(file.data, null, 2));
|
|
13
|
-
// } else if ('url' in file) {
|
|
14
|
-
// await scheduleFileForZip(zip, file.targetFilePath, file.url);
|
|
15
|
-
// }
|
|
16
|
-
// }
|
|
17
|
-
// await addJsLoader(zip);
|
|
18
|
-
// addIndexHtml(zip, offlineData.manifest);
|
|
19
|
-
// // Generate archive
|
|
20
|
-
// const blob = await zip.generateAsync({ type: 'blob' });
|
|
21
|
-
// // console.info('Manifest for HTML:', offlineData.manifest);
|
|
22
|
-
// // Create link & trigger download
|
|
23
|
-
// const a = document.createElement('a');
|
|
24
|
-
// a.href = URL.createObjectURL(blob);
|
|
25
|
-
// a.download = 'offline.zip';
|
|
26
|
-
// a.click();
|
|
27
|
-
// URL.revokeObjectURL(a.href);
|
|
28
|
-
// }
|
|
29
|
-
// const MAX_CONCURRENT_DOWNLOADS = 10;
|
|
30
|
-
// const queue = new Set<Promise<void>>();
|
|
31
|
-
// // have a queue to limit concurrent downloads
|
|
32
|
-
// async function scheduleFileForZip(zip: JSZip, targetFilePath: string, url: string) {
|
|
33
|
-
// while (queue.size >= MAX_CONCURRENT_DOWNLOADS) {
|
|
34
|
-
// await Promise.race(queue);
|
|
35
|
-
// }
|
|
36
|
-
// const downloadPromise = (async () => {
|
|
37
|
-
// log('Fetching file for zip:', url);
|
|
38
|
-
// const response = await fetch(url);
|
|
39
|
-
// if (!response.ok) {
|
|
40
|
-
// throw new Error(`Failed to fetch ${url}: ${response.status} ${response.statusText}`);
|
|
41
|
-
// }
|
|
42
|
-
// const blob = await response.blob();
|
|
43
|
-
// zip.file(targetFilePath, blob);
|
|
44
|
-
// })();
|
|
45
|
-
// queue.add(downloadPromise);
|
|
46
|
-
// try {
|
|
47
|
-
// await downloadPromise;
|
|
48
|
-
// } finally {
|
|
49
|
-
// queue.delete(downloadPromise);
|
|
50
|
-
// }
|
|
51
|
-
// }
|
|
52
|
-
// async function addJsLoader(zip: JSZip) {
|
|
53
|
-
// const packageInfo = 'https://registry.npmjs.org/@expofp/loader';
|
|
54
|
-
// const response = await fetch(packageInfo);
|
|
55
|
-
// if (!response.ok) {
|
|
56
|
-
// throw new Error(`Failed to fetch ${packageInfo}: ${response.status} ${response.statusText}`);
|
|
57
|
-
// }
|
|
58
|
-
// const data = await response.json();
|
|
59
|
-
// const latestVersion = data['dist-tags'].latest;
|
|
60
|
-
// const tarballUrl = data.versions[latestVersion].dist.tarball;
|
|
61
|
-
// const tgzResponse = await fetch(tarballUrl);
|
|
62
|
-
// if (!tgzResponse.ok) {
|
|
63
|
-
// throw new Error(
|
|
64
|
-
// `Failed to fetch ${tarballUrl}: ${tgzResponse.status} ${tgzResponse.statusText}`
|
|
65
|
-
// );
|
|
66
|
-
// }
|
|
67
|
-
// const tgzArrayBuffer = await tgzResponse.arrayBuffer();
|
|
68
|
-
// // use fflate to convert tgz to tar
|
|
69
|
-
// const tarFile = gunzipSync(new Uint8Array(tgzArrayBuffer));
|
|
70
|
-
// const files = await untar(tarFile.buffer as ArrayBuffer);
|
|
71
|
-
// console.info('Extracted tar file from tgz, size:', files);
|
|
72
|
-
// // const arrayBuffer = await tgzResponse.arrayBuffer();
|
|
73
|
-
// // const files = await untar(arrayBuffer);
|
|
74
|
-
// for (const file of files) {
|
|
75
|
-
// console.info('Adding loader file to zip:', file.name);
|
|
76
|
-
// zip.file('efp-loader/' + file.name, file.buffer);
|
|
77
|
-
// }
|
|
78
|
-
// }
|
|
79
|
-
// function addIndexHtml(zip: JSZip, manifest: unknown) {
|
|
80
|
-
// const html = `
|
|
81
|
-
// <!DOCTYPE html>
|
|
82
|
-
// <script type="module">
|
|
83
|
-
// import { load } from './efp-loader/dist/loader.js';
|
|
84
|
-
// await load(${JSON.stringify(manifest)});
|
|
85
|
-
// console.info('🚀 FloorPlan loaded', floorplan);
|
|
86
|
-
// </script>
|
|
87
|
-
// `;
|
|
88
|
-
// zip.file('index.html', html);
|
|
89
|
-
// }
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
// import { gunzipSync } from 'fflate';
|
|
2
|
-
// import untar from 'js-untar';
|
|
3
|
-
// import { log } from '../shared';
|
|
4
|
-
// import { makeOffline } from './makeOffline';
|
|
5
|
-
export {};
|
|
6
|
-
// export async function* makeOfflineBundle(
|
|
7
|
-
// manifest: unknown
|
|
8
|
-
// ): AsyncGenerator<{ path: string; data: ArrayBuffer }> {
|
|
9
|
-
// log('makeOfflineBundle', manifest);
|
|
10
|
-
// const offlineData = await makeOffline(manifest);
|
|
11
|
-
// for await (const file of offlineData.files) {
|
|
12
|
-
// if ('data' in file) {
|
|
13
|
-
// const jsonString = JSON.stringify(file.data, null, 2);
|
|
14
|
-
// yield {
|
|
15
|
-
// path: file.targetFilePath,
|
|
16
|
-
// data: new TextEncoder().encode(jsonString).buffer,
|
|
17
|
-
// };
|
|
18
|
-
// } else if ('url' in file) {
|
|
19
|
-
// const blob = await downloadFile(file.url);
|
|
20
|
-
// yield {
|
|
21
|
-
// path: file.targetFilePath,
|
|
22
|
-
// data: await blob.arrayBuffer(),
|
|
23
|
-
// };
|
|
24
|
-
// }
|
|
25
|
-
// }
|
|
26
|
-
// yield* generateJsLoaderFiles();
|
|
27
|
-
// const html = getIndexHtml(offlineData.manifest);
|
|
28
|
-
// yield {
|
|
29
|
-
// path: 'index.html',
|
|
30
|
-
// data: new TextEncoder().encode(html).buffer,
|
|
31
|
-
// };
|
|
32
|
-
// }
|
|
33
|
-
// const MAX_CONCURRENT_DOWNLOADS = 10;
|
|
34
|
-
// const queue = new Set<Promise<Blob>>();
|
|
35
|
-
// // have a queue to limit concurrent downloads
|
|
36
|
-
// async function downloadFile(url: string): Promise<Blob> {
|
|
37
|
-
// while (queue.size >= MAX_CONCURRENT_DOWNLOADS) {
|
|
38
|
-
// await Promise.race(queue);
|
|
39
|
-
// }
|
|
40
|
-
// const downloadPromise = (async () => {
|
|
41
|
-
// log('Fetching file for zip:', url);
|
|
42
|
-
// const response = await fetch(url);
|
|
43
|
-
// if (!response.ok) {
|
|
44
|
-
// throw new Error(`Failed to fetch ${url}: ${response.status} ${response.statusText}`);
|
|
45
|
-
// }
|
|
46
|
-
// return await response.blob();
|
|
47
|
-
// })();
|
|
48
|
-
// queue.add(downloadPromise);
|
|
49
|
-
// try {
|
|
50
|
-
// return await downloadPromise;
|
|
51
|
-
// } finally {
|
|
52
|
-
// queue.delete(downloadPromise);
|
|
53
|
-
// }
|
|
54
|
-
// }
|
|
55
|
-
// async function* generateJsLoaderFiles(): AsyncGenerator<{ path: string; data: ArrayBuffer }> {
|
|
56
|
-
// const packageInfo = 'https://registry.npmjs.org/@expofp/js-loader';
|
|
57
|
-
// const response = await fetch(packageInfo);
|
|
58
|
-
// if (!response.ok) {
|
|
59
|
-
// throw new Error(`Failed to fetch ${packageInfo}: ${response.status} ${response.statusText}`);
|
|
60
|
-
// }
|
|
61
|
-
// const data = await response.json();
|
|
62
|
-
// const latestVersion = data['dist-tags'].latest;
|
|
63
|
-
// const tarballUrl = data.versions[latestVersion].dist.tarball;
|
|
64
|
-
// const tgzResponse = await fetch(tarballUrl);
|
|
65
|
-
// if (!tgzResponse.ok) {
|
|
66
|
-
// throw new Error(
|
|
67
|
-
// `Failed to fetch ${tarballUrl}: ${tgzResponse.status} ${tgzResponse.statusText}`
|
|
68
|
-
// );
|
|
69
|
-
// }
|
|
70
|
-
// const tgzArrayBuffer = await tgzResponse.arrayBuffer();
|
|
71
|
-
// // use fflate to convert tgz to tar
|
|
72
|
-
// const tarFile = gunzipSync(new Uint8Array(tgzArrayBuffer));
|
|
73
|
-
// const files = await untar(tarFile.buffer as ArrayBuffer);
|
|
74
|
-
// console.info('Extracted tar file from tgz, size:', files);
|
|
75
|
-
// // const arrayBuffer = await tgzResponse.arrayBuffer();
|
|
76
|
-
// // const files = await untar(arrayBuffer);
|
|
77
|
-
// for (const file of files) {
|
|
78
|
-
// console.info('Adding js-loader file to zip:', file.name);
|
|
79
|
-
// yield { path: 'efp-js-loader/' + file.name, data: file.buffer };
|
|
80
|
-
// }
|
|
81
|
-
// }
|
|
82
|
-
// function getIndexHtml(manifest: unknown) {
|
|
83
|
-
// const html = `
|
|
84
|
-
// <!DOCTYPE html>
|
|
85
|
-
// <script type="module">
|
|
86
|
-
// import { load } from './efp-js-loader/dist/loader.js';
|
|
87
|
-
// await load(${JSON.stringify(manifest)});
|
|
88
|
-
// console.info('🚀 FloorPlan loaded', floorplan);
|
|
89
|
-
// </script>
|
|
90
|
-
// `;
|
|
91
|
-
// return html;
|
|
92
|
-
// }
|