@loaders.gl/core 4.5.3 → 5.0.0-alpha.10

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 (127) hide show
  1. package/LICENSE +14 -3
  2. package/dist/dist.dev.js +1789 -352
  3. package/dist/dist.min.js +4 -3
  4. package/dist/index.cjs +3087 -311
  5. package/dist/index.cjs.map +3 -4
  6. package/dist/index.d.ts +8 -2
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +7 -1
  9. package/dist/index.js.map +1 -1
  10. package/dist/iterators/make-iterator/make-stream-iterator.js +48 -9
  11. package/dist/iterators/make-iterator/make-stream-iterator.js.map +1 -1
  12. package/dist/lib/api/core-api.d.ts +6 -0
  13. package/dist/lib/api/core-api.d.ts.map +1 -0
  14. package/dist/lib/api/core-api.js +23 -0
  15. package/dist/lib/api/core-api.js.map +1 -0
  16. package/dist/lib/api/create-data-source.d.ts +2 -2
  17. package/dist/lib/api/create-data-source.d.ts.map +1 -1
  18. package/dist/lib/api/create-data-source.js +36 -14
  19. package/dist/lib/api/create-data-source.js.map +1 -1
  20. package/dist/lib/api/load-in-batches.d.ts +4 -4
  21. package/dist/lib/api/load-in-batches.d.ts.map +1 -1
  22. package/dist/lib/api/load-in-batches.js +17 -6
  23. package/dist/lib/api/load-in-batches.js.map +1 -1
  24. package/dist/lib/api/load-loader.d.ts +10 -0
  25. package/dist/lib/api/load-loader.d.ts.map +1 -0
  26. package/dist/lib/api/load-loader.js +222 -0
  27. package/dist/lib/api/load-loader.js.map +1 -0
  28. package/dist/lib/api/load.d.ts +3 -3
  29. package/dist/lib/api/load.d.ts.map +1 -1
  30. package/dist/lib/api/load.js +84 -5
  31. package/dist/lib/api/load.js.map +1 -1
  32. package/dist/lib/api/parse-file.d.ts +15 -0
  33. package/dist/lib/api/parse-file.d.ts.map +1 -0
  34. package/dist/lib/api/parse-file.js +74 -0
  35. package/dist/lib/api/parse-file.js.map +1 -0
  36. package/dist/lib/api/parse-in-batches.d.ts +2 -2
  37. package/dist/lib/api/parse-in-batches.d.ts.map +1 -1
  38. package/dist/lib/api/parse-in-batches.js +18 -7
  39. package/dist/lib/api/parse-in-batches.js.map +1 -1
  40. package/dist/lib/api/parse-sync.d.ts +2 -2
  41. package/dist/lib/api/parse-sync.d.ts.map +1 -1
  42. package/dist/lib/api/parse-sync.js +10 -1
  43. package/dist/lib/api/parse-sync.js.map +1 -1
  44. package/dist/lib/api/parse.d.ts +2 -2
  45. package/dist/lib/api/parse.d.ts.map +1 -1
  46. package/dist/lib/api/parse.js +34 -17
  47. package/dist/lib/api/parse.js.map +1 -1
  48. package/dist/lib/api/preload.d.ts +14 -0
  49. package/dist/lib/api/preload.d.ts.map +1 -0
  50. package/dist/lib/api/preload.js +13 -0
  51. package/dist/lib/api/preload.js.map +1 -0
  52. package/dist/lib/api/register-loaders.js +1 -1
  53. package/dist/lib/api/register-loaders.js.map +1 -1
  54. package/dist/lib/api/select-loader.d.ts.map +1 -1
  55. package/dist/lib/api/select-loader.js +48 -5
  56. package/dist/lib/api/select-loader.js.map +1 -1
  57. package/dist/lib/api/select-source.d.ts +3 -3
  58. package/dist/lib/api/select-source.d.ts.map +1 -1
  59. package/dist/lib/api/select-source.js +2 -5
  60. package/dist/lib/api/select-source.js.map +1 -1
  61. package/dist/lib/fetch/fetch-error-message.js +1 -1
  62. package/dist/lib/fetch/fetch-error-message.js.map +1 -1
  63. package/dist/lib/filesystems/browser-filesystem.d.ts.map +1 -1
  64. package/dist/lib/filesystems/browser-filesystem.js +25 -11
  65. package/dist/lib/filesystems/browser-filesystem.js.map +1 -1
  66. package/dist/lib/init.js +1 -1
  67. package/dist/lib/init.js.map +1 -1
  68. package/dist/lib/loader-utils/check-errors.js +1 -1
  69. package/dist/lib/loader-utils/check-errors.js.map +1 -1
  70. package/dist/lib/loader-utils/get-data.d.ts +4 -0
  71. package/dist/lib/loader-utils/get-data.d.ts.map +1 -1
  72. package/dist/lib/loader-utils/get-data.js +26 -0
  73. package/dist/lib/loader-utils/get-data.js.map +1 -1
  74. package/dist/lib/loader-utils/get-fetch-function.d.ts +1 -1
  75. package/dist/lib/loader-utils/get-fetch-function.d.ts.map +1 -1
  76. package/dist/lib/loader-utils/get-fetch-function.js +16 -10
  77. package/dist/lib/loader-utils/get-fetch-function.js.map +1 -1
  78. package/dist/lib/loader-utils/loader-context.d.ts +2 -2
  79. package/dist/lib/loader-utils/loader-context.d.ts.map +1 -1
  80. package/dist/lib/loader-utils/loader-context.js +11 -4
  81. package/dist/lib/loader-utils/loader-context.js.map +1 -1
  82. package/dist/lib/loader-utils/loggers.d.ts +19 -0
  83. package/dist/lib/loader-utils/loggers.d.ts.map +1 -1
  84. package/dist/lib/loader-utils/loggers.js +28 -2
  85. package/dist/lib/loader-utils/loggers.js.map +1 -1
  86. package/dist/lib/loader-utils/option-defaults.d.ts +1 -0
  87. package/dist/lib/loader-utils/option-defaults.d.ts.map +1 -1
  88. package/dist/lib/loader-utils/option-defaults.js +5 -0
  89. package/dist/lib/loader-utils/option-defaults.js.map +1 -1
  90. package/dist/lib/loader-utils/option-utils.d.ts +7 -0
  91. package/dist/lib/loader-utils/option-utils.d.ts.map +1 -1
  92. package/dist/lib/loader-utils/option-utils.js +91 -3
  93. package/dist/lib/loader-utils/option-utils.js.map +1 -1
  94. package/dist/lib/utils/response-utils.js +5 -14
  95. package/dist/lib/utils/response-utils.js.map +1 -1
  96. package/dist/null-loader.d.ts.map +1 -1
  97. package/dist/null-loader.js +1 -1
  98. package/dist/null-loader.js.map +1 -1
  99. package/dist/null-worker-node.js +270 -42
  100. package/dist/null-worker.js +270 -42
  101. package/package.json +6 -6
  102. package/src/index.ts +10 -1
  103. package/src/iterators/make-iterator/make-stream-iterator.ts +47 -9
  104. package/src/lib/api/core-api.ts +25 -0
  105. package/src/lib/api/create-data-source.ts +53 -24
  106. package/src/lib/api/load-in-batches.ts +33 -21
  107. package/src/lib/api/load-loader.ts +306 -0
  108. package/src/lib/api/load.ts +160 -9
  109. package/src/lib/api/parse-file.ts +156 -0
  110. package/src/lib/api/parse-in-batches.ts +35 -8
  111. package/src/lib/api/parse-sync.ts +27 -2
  112. package/src/lib/api/parse.ts +61 -20
  113. package/src/lib/api/preload.ts +46 -0
  114. package/src/lib/api/register-loaders.ts +1 -1
  115. package/src/lib/api/select-loader.ts +57 -5
  116. package/src/lib/api/select-source.ts +7 -10
  117. package/src/lib/fetch/fetch-error-message.ts +1 -1
  118. package/src/lib/filesystems/browser-filesystem.ts +25 -11
  119. package/src/lib/loader-utils/check-errors.ts +1 -1
  120. package/src/lib/loader-utils/get-data.ts +36 -0
  121. package/src/lib/loader-utils/get-fetch-function.ts +17 -15
  122. package/src/lib/loader-utils/loader-context.ts +13 -5
  123. package/src/lib/loader-utils/loggers.ts +28 -2
  124. package/src/lib/loader-utils/option-defaults.ts +5 -0
  125. package/src/lib/loader-utils/option-utils.ts +106 -3
  126. package/src/lib/utils/response-utils.ts +5 -15
  127. package/src/null-loader.ts +3 -3
@@ -1,7 +1,7 @@
1
1
  // loaders.gl
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
- import { isResponse } from '@loaders.gl/loader-utils';
4
+ import { encodeArrayBufferToBase64, isResponse } from '@loaders.gl/loader-utils';
5
5
  import { FetchError } from "../fetch/fetch-error.js";
6
6
  import { getResourceContentLength, getResourceUrl, getResourceMIMEType } from "./resource-utils.js";
7
7
  import { shortenUrlForDisplay } from "./url-utils.js";
@@ -84,7 +84,7 @@ async function getResponseError(response) {
84
84
  ? await response.json()
85
85
  : await response.text();
86
86
  }
87
- catch (error) {
87
+ catch (_error) {
88
88
  // eslint forbids return in a finally statement, so we just catch here
89
89
  }
90
90
  return new FetchError(message, info);
@@ -96,26 +96,17 @@ async function getInitialDataUrl(resource) {
96
96
  }
97
97
  if (resource instanceof Blob) {
98
98
  const blobSlice = resource.slice(0, 5);
99
- return await new Promise((resolve) => {
99
+ return await new Promise(resolve => {
100
100
  const reader = new FileReader();
101
- reader.onload = (event) => resolve(event?.target?.result);
101
+ reader.onload = event => resolve(event?.target?.result);
102
102
  reader.readAsDataURL(blobSlice);
103
103
  });
104
104
  }
105
105
  if (resource instanceof ArrayBuffer) {
106
106
  const slice = resource.slice(0, INITIAL_DATA_LENGTH);
107
- const base64 = arrayBufferToBase64(slice);
107
+ const base64 = encodeArrayBufferToBase64(slice);
108
108
  return `data:base64,${base64}`;
109
109
  }
110
110
  return null;
111
111
  }
112
- // https://stackoverflow.com/questions/9267899/arraybuffer-to-base64-encoded-string
113
- function arrayBufferToBase64(buffer) {
114
- let binary = '';
115
- const bytes = new Uint8Array(buffer);
116
- for (let i = 0; i < bytes.byteLength; i++) {
117
- binary += String.fromCharCode(bytes[i]);
118
- }
119
- return btoa(binary);
120
- }
121
112
  //# sourceMappingURL=response-utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"response-utils.js","sourceRoot":"","sources":["../../../src/lib/utils/response-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"response-utils.js","sourceRoot":"","sources":["../../../src/lib/utils/response-utils.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"null-loader.d.ts","sourceRoot":"","sources":["../src/null-loader.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAA2B,aAAa,EAAC,MAAM,0BAA0B,CAAC;AACtF,OAAO,EAAC,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAEvD,MAAM,MAAM,iBAAiB,GAAG,aAAa,GAAG;IAC9C,IAAI,CAAC,EAAE,EAAE,CAAC;CACX,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB;;wBAER,KAAK;;;;;;;;;;;;CAYiC,CAAC;AAE5D;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;;;;;kCAWN,eAAe,GAAG,eAAe,YACpC,iBAAiB,YACjB,aAAa;;;;;;;CAYyC,CAAC;AAErE;;;GAGG;AACH,iBAAS,SAAS,CAChB,WAAW,EAAE,eAAe,GAAG,eAAe,EAC9C,OAAO,CAAC,EAAE,iBAAiB,EAC3B,OAAO,CAAC,EAAE,aAAa,GACtB,IAAI,CAEN"}
1
+ {"version":3,"file":"null-loader.d.ts","sourceRoot":"","sources":["../src/null-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAA2B,aAAa,EAAC,MAAM,0BAA0B,CAAC;AACtF,OAAO,EAAC,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAMvD,MAAM,MAAM,iBAAiB,GAAG,aAAa,GAAG;IAC9C,IAAI,CAAC,EAAE,EAAE,CAAC;CACX,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB;;wBAER,KAAK;;;;;;;;;;;;CAYiC,CAAC;AAE5D;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;;;;;kCAWN,eAAe,GAAG,eAAe,YACpC,iBAAiB,YACjB,aAAa;;;;;;;CAYyC,CAAC;AAErE;;;GAGG;AACH,iBAAS,SAAS,CAChB,WAAW,EAAE,eAAe,GAAG,eAAe,EAC9C,OAAO,CAAC,EAAE,iBAAiB,EAC3B,OAAO,CAAC,EAAE,aAAa,GACtB,IAAI,CAEN"}
@@ -3,7 +3,7 @@
3
3
  // Copyright (c) vis.gl contributors
4
4
  // __VERSION__ is injected by babel-plugin-version-inline
5
5
  // @ts-ignore TS2304: Cannot find name '__VERSION__'.
6
- const VERSION = typeof "4.5.3" !== 'undefined' ? "4.5.3" : 'latest';
6
+ const VERSION = typeof "5.0.0-alpha.10" !== 'undefined' ? "5.0.0-alpha.10" : 'latest';
7
7
  /**
8
8
  * Loads any data and returns null (or optionally passes through data unparsed)
9
9
  */
@@ -1 +1 @@
1
- {"version":3,"file":"null-loader.js","sourceRoot":"","sources":["../src/null-loader.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAEpC,yDAAyD;AACzD,qDAAqD;AACrD,MAAM,OAAO,GAAG,cAAkB,KAAK,WAAW,CAAC,CAAC,SAAa,CAAC,CAAC,QAAQ,CAAC;AAS5E;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,QAAQ,EAAE,IAAI;IACd,SAAS,EAAE,IAAa;IACxB,IAAI,EAAE,aAAa;IACnB,EAAE,EAAE,MAAM;IACV,MAAM,EAAE,MAAM;IACd,OAAO,EAAE,OAAO;IAChB,MAAM,EAAE,IAAI;IACZ,SAAS,EAAE,CAAC,qBAAqB,CAAC;IAClC,UAAU,EAAE,CAAC,MAAM,CAAC;IACpB,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC;IACpB,OAAO,EAAE;QACP,IAAI,EAAE,EAAE;KACT;CACwD,CAAC;AAE5D;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,QAAQ,EAAE,IAAI;IACd,SAAS,EAAE,IAAI;IAEf,IAAI,EAAE,aAAa;IACnB,EAAE,EAAE,MAAM;IACV,MAAM,EAAE,MAAM;IACd,OAAO,EAAE,OAAO;IAChB,SAAS,EAAE,CAAC,qBAAqB,CAAC;IAClC,UAAU,EAAE,CAAC,MAAM,CAAC;IACpB,KAAK,EAAE,KAAK,EACV,WAA8C,EAC9C,OAA2B,EAC3B,OAAuB,EACvB,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,OAAO,IAAI,EAAE,EAAE,OAAO,CAAC;IACnD,SAAS;IACT,cAAc,EAAE,KAAK,SAAS,CAAC,CAAC,SAAS,CAAC,aAAa,EAAE,OAAO,EAAE,OAAO;QACvE,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;YACxC,MAAM,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IACD,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC;IACpB,OAAO,EAAE;QACP,IAAI,EAAE,EAAE;KACT;CACiE,CAAC;AAErE;;;GAGG;AACH,SAAS,SAAS,CAChB,WAA8C,EAC9C,OAA2B,EAC3B,OAAuB;IAEvB,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"null-loader.js","sourceRoot":"","sources":["../src/null-loader.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAKpC,yDAAyD;AACzD,qDAAqD;AACrD,MAAM,OAAO,GAAG,uBAAkB,KAAK,WAAW,CAAC,CAAC,kBAAa,CAAC,CAAC,QAAQ,CAAC;AAM5E;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,QAAQ,EAAE,IAAI;IACd,SAAS,EAAE,IAAa;IACxB,IAAI,EAAE,aAAa;IACnB,EAAE,EAAE,MAAM;IACV,MAAM,EAAE,MAAM;IACd,OAAO,EAAE,OAAO;IAChB,MAAM,EAAE,IAAI;IACZ,SAAS,EAAE,CAAC,qBAAqB,CAAC;IAClC,UAAU,EAAE,CAAC,MAAM,CAAC;IACpB,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC;IACpB,OAAO,EAAE;QACP,IAAI,EAAE,EAAE;KACT;CACwD,CAAC;AAE5D;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,QAAQ,EAAE,IAAI;IACd,SAAS,EAAE,IAAI;IAEf,IAAI,EAAE,aAAa;IACnB,EAAE,EAAE,MAAM;IACV,MAAM,EAAE,MAAM;IACd,OAAO,EAAE,OAAO;IAChB,SAAS,EAAE,CAAC,qBAAqB,CAAC;IAClC,UAAU,EAAE,CAAC,MAAM,CAAC;IACpB,KAAK,EAAE,KAAK,EACV,WAA8C,EAC9C,OAA2B,EAC3B,OAAuB,EACvB,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,OAAO,IAAI,EAAE,EAAE,OAAO,CAAC;IACnD,SAAS;IACT,cAAc,EAAE,KAAK,SAAS,CAAC,CAAC,SAAS,CAAC,aAAa,EAAE,OAAO,EAAE,OAAO;QACvE,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;YACxC,MAAM,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IACD,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC;IACpB,OAAO,EAAE;QACP,IAAI,EAAE,EAAE;KACT;CACiE,CAAC;AAErE;;;GAGG;AACH,SAAS,SAAS,CAChB,WAA8C,EAC9C,OAA2B,EAC3B,OAAuB;IAEvB,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -106,18 +106,18 @@ var WorkerBody = class {
106
106
  static async addEventListener(onMessage) {
107
107
  let onMessageWrapper = onMessageWrapperMap.get(onMessage);
108
108
  if (!onMessageWrapper) {
109
- onMessageWrapper = async (message) => {
110
- if (!isKnownMessage(message)) {
109
+ onMessageWrapper = (message) => {
110
+ const messageData = getWorkerMessageData(message);
111
+ if (!messageData) {
111
112
  return;
112
113
  }
113
- const parentPort3 = await getParentPort();
114
- const { type, payload } = parentPort3 ? message : message.data;
115
- onMessage(type, payload);
114
+ onMessage(messageData.type, messageData.payload);
116
115
  };
116
+ onMessageWrapperMap.set(onMessage, onMessageWrapper);
117
117
  }
118
118
  const parentPort2 = await getParentPort();
119
119
  if (parentPort2) {
120
- console.error("not implemented");
120
+ parentPort2.on("message", onMessageWrapper);
121
121
  } else {
122
122
  globalThis.addEventListener("message", onMessageWrapper);
123
123
  }
@@ -125,9 +125,12 @@ var WorkerBody = class {
125
125
  static async removeEventListener(onMessage) {
126
126
  const onMessageWrapper = onMessageWrapperMap.get(onMessage);
127
127
  onMessageWrapperMap.delete(onMessage);
128
+ if (!onMessageWrapper) {
129
+ return;
130
+ }
128
131
  const parentPort2 = await getParentPort();
129
132
  if (parentPort2) {
130
- console.error("not implemented");
133
+ parentPort2.off("message", onMessageWrapper);
131
134
  } else {
132
135
  globalThis.removeEventListener("message", onMessageWrapper);
133
136
  }
@@ -148,44 +151,175 @@ var WorkerBody = class {
148
151
  }
149
152
  }
150
153
  };
151
- function isKnownMessage(message) {
152
- const { type, data } = message;
153
- return type === "message" && data && typeof data.source === "string" && data.source.startsWith("loaders.gl");
154
+ function getWorkerMessageData(message) {
155
+ if (!message || typeof message !== "object") {
156
+ return null;
157
+ }
158
+ const messageData = "data" in message && message.type === "message" ? message.data : message;
159
+ return messageData && typeof messageData.source === "string" && messageData.source.startsWith("loaders.gl") ? messageData : null;
154
160
  }
155
161
 
156
- // ../loader-utils/src/lib/worker-loader-utils/create-loader-worker.ts
162
+ // ../worker-utils/src/lib/async-queue/async-queue.ts
163
+ var AsyncQueue = class {
164
+ _values;
165
+ _settlers;
166
+ _closed;
167
+ constructor() {
168
+ this._values = [];
169
+ this._settlers = [];
170
+ this._closed = false;
171
+ }
172
+ /** Return an async iterator for this queue */
173
+ [Symbol.asyncIterator]() {
174
+ return this;
175
+ }
176
+ /** Push a new value - the async iterator will yield a promise resolved to this value */
177
+ push(value) {
178
+ return this.enqueue(value);
179
+ }
180
+ /**
181
+ * Push a new value - the async iterator will yield a promise resolved to this value
182
+ * Add an error - the async iterator will yield a promise rejected with this value
183
+ */
184
+ enqueue(value) {
185
+ if (this._closed) {
186
+ throw new Error("Closed");
187
+ }
188
+ if (this._settlers.length > 0) {
189
+ if (this._values.length > 0) {
190
+ throw new Error("Illegal internal state");
191
+ }
192
+ const settler = this._settlers.shift();
193
+ if (value instanceof Error) {
194
+ settler.reject(value);
195
+ } else {
196
+ settler.resolve({ value });
197
+ }
198
+ } else {
199
+ this._values.push(value);
200
+ }
201
+ }
202
+ /** Indicate that we not waiting for more values - The async iterator will be done */
203
+ close() {
204
+ while (this._settlers.length > 0) {
205
+ const settler = this._settlers.shift();
206
+ settler.resolve({ done: true });
207
+ }
208
+ this._closed = true;
209
+ }
210
+ // ITERATOR IMPLEMENTATION
211
+ /** @returns a Promise for an IteratorResult */
212
+ next() {
213
+ if (this._values.length > 0) {
214
+ const value = this._values.shift();
215
+ if (value instanceof Error) {
216
+ return Promise.reject(value);
217
+ }
218
+ return Promise.resolve({ done: false, value });
219
+ }
220
+ if (this._closed) {
221
+ if (this._settlers.length > 0) {
222
+ throw new Error("Illegal internal state");
223
+ }
224
+ return Promise.resolve({ done: true, value: void 0 });
225
+ }
226
+ return new Promise((resolve, reject) => {
227
+ this._settlers.push({ resolve, reject });
228
+ });
229
+ }
230
+ };
231
+
232
+ // ../worker-utils/src/lib/worker-api/create-worker.ts
157
233
  var requestId = 0;
158
- async function createLoaderWorker(loader, selectLoader = () => loader) {
234
+ var activeInputBatches = null;
235
+ var activeOutputAcknowledgements = null;
236
+ async function createWorker(process, processInBatches) {
159
237
  if (!await WorkerBody.inWorkerThread()) {
160
238
  return;
161
239
  }
240
+ const context = {
241
+ process: processOnMainThread
242
+ };
162
243
  WorkerBody.onmessage = async (type, payload) => {
163
- switch (type) {
164
- case "process":
165
- try {
166
- const { input, options = {}, context = {} } = payload;
167
- const selectedLoader = selectLoader(options);
168
- const result = await parseData({
169
- loader: selectedLoader,
170
- arrayBuffer: input,
171
- options,
172
- // @ts-expect-error fetch missing
173
- context: {
174
- ...context,
175
- _parse: parseOnMainThread
176
- }
177
- });
244
+ try {
245
+ switch (type) {
246
+ case "preload":
247
+ WorkerBody.postMessage("done", {});
248
+ break;
249
+ case "process":
250
+ if (!process) {
251
+ throw new Error("Worker does not support atomic processing");
252
+ }
253
+ const result = await process(
254
+ payload.input,
255
+ payload.options || {},
256
+ context,
257
+ payload.context || {}
258
+ );
178
259
  WorkerBody.postMessage("done", { result });
179
- } catch (error) {
180
- const message = error instanceof Error ? error.message : "";
181
- WorkerBody.postMessage("error", { error: message });
182
- }
183
- break;
184
- default:
260
+ break;
261
+ case "process-in-batches":
262
+ if (!processInBatches) {
263
+ throw new Error("Worker does not support batched processing");
264
+ }
265
+ const inputBatches = new AsyncQueue();
266
+ const outputAcknowledgements = new AsyncQueue();
267
+ activeInputBatches = inputBatches;
268
+ activeOutputAcknowledgements = outputAcknowledgements;
269
+ try {
270
+ const resultIterator = processInBatches(
271
+ createDemandDrivenIterator(inputBatches),
272
+ payload.options || {},
273
+ context,
274
+ payload.context || {}
275
+ );
276
+ for await (const batch of resultIterator) {
277
+ await WorkerBody.postMessage("output-batch", { result: batch });
278
+ await outputAcknowledgements.next();
279
+ }
280
+ await WorkerBody.postMessage("done", {});
281
+ } finally {
282
+ activeInputBatches = null;
283
+ activeOutputAcknowledgements = null;
284
+ }
285
+ break;
286
+ case "input-batch":
287
+ if (!activeInputBatches) {
288
+ throw new Error("Worker has no active batched processing session");
289
+ }
290
+ activeInputBatches.push(payload.input);
291
+ break;
292
+ case "input-done":
293
+ if (!activeInputBatches) {
294
+ throw new Error("Worker has no active batched processing session");
295
+ }
296
+ activeInputBatches.close();
297
+ break;
298
+ case "output-ack":
299
+ if (!activeOutputAcknowledgements) {
300
+ throw new Error("Worker has no active batched processing session");
301
+ }
302
+ activeOutputAcknowledgements.push(void 0);
303
+ break;
304
+ default:
305
+ }
306
+ } catch (error) {
307
+ const message = error instanceof Error ? error.message : "";
308
+ WorkerBody.postMessage("error", { error: message });
185
309
  }
186
310
  };
187
311
  }
188
- function parseOnMainThread(arrayBuffer, loader, options, context) {
312
+ async function* createDemandDrivenIterator(inputBatches) {
313
+ while (true) {
314
+ await WorkerBody.postMessage("input-request", {});
315
+ const nextBatch = await inputBatches.next();
316
+ if (nextBatch.done) {
317
+ return;
318
+ }
319
+ yield nextBatch.value;
320
+ }
321
+ }
322
+ function processOnMainThread(arrayBuffer, options = {}, jobContext = {}) {
189
323
  return new Promise((resolve, reject) => {
190
324
  const id = requestId++;
191
325
  const onMessage = (type, payload2) => {
@@ -205,10 +339,107 @@ function parseOnMainThread(arrayBuffer, loader, options, context) {
205
339
  }
206
340
  };
207
341
  WorkerBody.addEventListener(onMessage);
208
- const payload = { id, input: arrayBuffer, options };
342
+ const payload = { id, input: arrayBuffer, options, context: jobContext };
209
343
  WorkerBody.postMessage("process", payload);
210
344
  });
211
345
  }
346
+
347
+ // ../loader-utils/src/lib/worker-loader-utils/create-loader-worker.ts
348
+ async function createLoaderWorker(loader, selectLoader = () => loader) {
349
+ await createWorker(
350
+ (input, options, workerContext, loaderContext) => processLoaderWorkerData(
351
+ selectLoader(options || {}),
352
+ input,
353
+ options,
354
+ workerContext,
355
+ loaderContext
356
+ ),
357
+ (inputIterator, options, workerContext, loaderContext) => processLoaderWorkerBatches(
358
+ selectLoader(options || {}),
359
+ inputIterator,
360
+ options,
361
+ workerContext,
362
+ loaderContext
363
+ )
364
+ );
365
+ }
366
+ async function processLoaderWorkerData(loader, input, options = {}, workerContext, loaderContext = {}) {
367
+ const result = await parseData({
368
+ loader,
369
+ arrayBuffer: input,
370
+ options,
371
+ context: {
372
+ ...loaderContext,
373
+ coreApi: createWorkerCoreApi(),
374
+ _parse: createParseOnMainThread(workerContext == null ? void 0 : workerContext.process)
375
+ }
376
+ });
377
+ return loader.serializeWorkerResult ? loader.serializeWorkerResult(result, options, loaderContext) : result;
378
+ }
379
+ async function* processLoaderWorkerBatches(loader, inputIterator, options = {}, workerContext, loaderContext = {}) {
380
+ if (!loader.parseInBatches) {
381
+ throw new Error(`${loader.id} loader does not support batched parsing`);
382
+ }
383
+ const resultIterator = loader.parseInBatches(inputIterator, options, {
384
+ ...loaderContext,
385
+ coreApi: createWorkerCoreApi(),
386
+ _parse: createParseOnMainThread(workerContext == null ? void 0 : workerContext.process)
387
+ });
388
+ for await (const batch of resultIterator) {
389
+ yield loader.serializeWorkerBatch ? loader.serializeWorkerBatch(batch, options, loaderContext) : batch;
390
+ }
391
+ }
392
+ function createWorkerCoreApi() {
393
+ const unavailable = (methodName) => () => {
394
+ throw new Error(`context.coreApi.${methodName} is unavailable inside worker loaders.`);
395
+ };
396
+ return {
397
+ fetchFile: async (urlOrData, fetchOptions) => await fetch(urlOrData, fetchOptions),
398
+ parseSync: unavailable("parseSync"),
399
+ parse: unavailable("parse"),
400
+ parseFile: unavailable("parseFile"),
401
+ parseInBatches: unavailable("parseInBatches"),
402
+ load: unavailable("load"),
403
+ loadInBatches: unavailable("loadInBatches")
404
+ };
405
+ }
406
+ function createParseOnMainThread(processOnMainThread2) {
407
+ return (arrayBuffer, loaders, options, context) => {
408
+ if (!processOnMainThread2) {
409
+ throw new Error("Worker not set up to parse on main thread");
410
+ }
411
+ const parseArguments = getMainThreadParseArguments(loaders, options, context);
412
+ return processOnMainThread2(arrayBuffer, parseArguments.options, {
413
+ ...parseArguments.context,
414
+ ...Array.isArray(loaders) || loaders && isLoaderObject(loaders) ? {
415
+ _loaderIsArray: Array.isArray(loaders),
416
+ _loaderIds: (Array.isArray(loaders) ? loaders : [loaders]).map((loader) => loader.id)
417
+ } : {}
418
+ });
419
+ };
420
+ }
421
+ function getMainThreadParseArguments(loaders, options, context) {
422
+ if (options) {
423
+ return { options, context: getSerializableLoaderContext(context) };
424
+ }
425
+ if (Array.isArray(loaders) || loaders && isLoaderObject(loaders)) {
426
+ return { options: void 0, context: getSerializableLoaderContext(context) };
427
+ }
428
+ if (loaders && !Array.isArray(loaders)) {
429
+ return { options: loaders };
430
+ }
431
+ return { options: void 0, context: getSerializableLoaderContext(context) };
432
+ }
433
+ function isLoaderObject(value) {
434
+ return "id" in value && "extensions" in value;
435
+ }
436
+ function getSerializableLoaderContext(context) {
437
+ if (!context) {
438
+ return void 0;
439
+ }
440
+ const { fetch: fetch2, loaders, coreApi, _parse, _parseSync, _parseInBatches, ...serializableContext } = context;
441
+ return JSON.parse(JSON.stringify(serializableContext));
442
+ }
212
443
  async function parseData({
213
444
  loader,
214
445
  arrayBuffer,
@@ -217,9 +448,9 @@ async function parseData({
217
448
  }) {
218
449
  let data;
219
450
  let parser;
220
- if (loader.parseSync || loader.parse) {
451
+ if (loader.parse || loader.parseSync) {
221
452
  data = arrayBuffer;
222
- parser = loader.parseSync || loader.parse;
453
+ parser = loader.parse || loader.parseSync;
223
454
  } else if (loader.parseTextSync) {
224
455
  const textDecoder = new TextDecoder();
225
456
  data = textDecoder.decode(arrayBuffer);
@@ -227,14 +458,11 @@ async function parseData({
227
458
  } else {
228
459
  throw new Error(`Could not load data with ${loader.name} loader`);
229
460
  }
230
- const workerModules = Object.fromEntries(
231
- Object.entries(options.modules || {}).filter(([, value]) => typeof value === "string")
232
- );
233
461
  options = {
234
462
  ...options,
235
463
  modules: {
236
464
  ...loader && loader.options && loader.options.modules || {},
237
- ...workerModules
465
+ ...options.modules || {}
238
466
  },
239
467
  core: {
240
468
  ...options.core,
@@ -245,7 +473,7 @@ async function parseData({
245
473
  }
246
474
 
247
475
  // src/null-loader.ts
248
- var VERSION = true ? "4.5.3" : "latest";
476
+ var VERSION = true ? "5.0.0-alpha.10" : "latest";
249
477
  var NullLoader = {
250
478
  dataType: null,
251
479
  batchType: null,