@highstate/designer 0.7.2 → 0.7.3

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 (131) hide show
  1. package/package.json +14 -7
  2. package/.output/nitro.json +0 -15
  3. package/.output/public/_nuxt/1_b4y8eQ.js +0 -1
  4. package/.output/public/_nuxt/BjOhMR1f.js +0 -242
  5. package/.output/public/_nuxt/CPAAHz3G.js +0 -1
  6. package/.output/public/_nuxt/CmGpyJTe.js +0 -1
  7. package/.output/public/_nuxt/builds/latest.json +0 -1
  8. package/.output/public/_nuxt/builds/meta/f777d22c-e958-4e7c-865d-11bb8a560858.json +0 -1
  9. package/.output/public/_nuxt/entry.Vs8IncyG.css +0 -5
  10. package/.output/public/_nuxt/error-404.BJkSn6RI.css +0 -1
  11. package/.output/public/_nuxt/error-500.TOCKLquH.css +0 -1
  12. package/.output/public/_nuxt/materialdesignicons-webfont.B6OSyW2I.woff2 +0 -0
  13. package/.output/public/_nuxt/materialdesignicons-webfont.BpRar1d5.ttf +0 -0
  14. package/.output/public/_nuxt/materialdesignicons-webfont.Bvl3VxMs.woff +0 -0
  15. package/.output/public/_nuxt/materialdesignicons-webfont.TEmAk13K.eot +0 -0
  16. package/.output/public/favicon.ico +0 -0
  17. package/.output/public/libavoid.wasm +0 -0
  18. package/.output/public/robots.txt +0 -1
  19. package/.output/server/index.mjs +0 -11426
  20. package/.output/server/index.mjs.map +0 -1
  21. package/.output/server/node_modules/@babel/parser/lib/index.js +0 -14246
  22. package/.output/server/node_modules/@babel/parser/package.json +0 -50
  23. package/.output/server/node_modules/@trpc/server/dist/adapters/fetch/fetchRequestHandler.mjs +0 -74
  24. package/.output/server/node_modules/@trpc/server/dist/adapters/fetch/index.mjs +0 -1
  25. package/.output/server/node_modules/@trpc/server/dist/adapters/node-http/incomingMessageToRequest.mjs +0 -119
  26. package/.output/server/node_modules/@trpc/server/dist/adapters/node-http/index.mjs +0 -2
  27. package/.output/server/node_modules/@trpc/server/dist/adapters/node-http/nodeHTTPRequestHandler.mjs +0 -92
  28. package/.output/server/node_modules/@trpc/server/dist/adapters/node-http/writeResponse.mjs +0 -79
  29. package/.output/server/node_modules/@trpc/server/dist/index.mjs +0 -12
  30. package/.output/server/node_modules/@trpc/server/dist/observable/observable.mjs +0 -175
  31. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/createProxy.mjs +0 -73
  32. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/error/TRPCError.mjs +0 -79
  33. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/error/formatter.mjs +0 -5
  34. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/error/getErrorShape.mjs +0 -29
  35. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/http/abortError.mjs +0 -10
  36. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/http/contentType.mjs +0 -229
  37. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/http/getHTTPStatusCode.mjs +0 -76
  38. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/http/parseConnectionParams.mjs +0 -39
  39. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/http/resolveResponse.mjs +0 -570
  40. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/initTRPC.mjs +0 -80
  41. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/middleware.mjs +0 -90
  42. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/parser.mjs +0 -52
  43. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/procedureBuilder.mjs +0 -198
  44. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/rootConfig.mjs +0 -6
  45. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/router.mjs +0 -278
  46. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/rpc/codes.mjs +0 -54
  47. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/stream/jsonl.mjs +0 -603
  48. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/stream/sse.mjs +0 -369
  49. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/stream/tracked.mjs +0 -25
  50. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/stream/utils/asyncIterable.mjs +0 -165
  51. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/stream/utils/createDeferred.mjs +0 -15
  52. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/stream/utils/disposable.mjs +0 -43
  53. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/stream/utils/mergeAsyncIterables.mjs +0 -239
  54. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/stream/utils/readableStreamFrom.mjs +0 -23
  55. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/stream/utils/timerResource.mjs +0 -23
  56. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/stream/utils/withPing.mjs +0 -127
  57. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/transformer.mjs +0 -101
  58. package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/utils.mjs +0 -83
  59. package/.output/server/node_modules/@trpc/server/dist/vendor/standard-schema-v1/error.mjs +0 -26
  60. package/.output/server/node_modules/@trpc/server/dist/vendor/unpromise/unpromise.mjs +0 -289
  61. package/.output/server/node_modules/@trpc/server/package.json +0 -156
  62. package/.output/server/node_modules/@vue/compiler-core/dist/compiler-core.cjs.prod.js +0 -6690
  63. package/.output/server/node_modules/@vue/compiler-core/package.json +0 -58
  64. package/.output/server/node_modules/@vue/compiler-dom/dist/compiler-dom.cjs.prod.js +0 -686
  65. package/.output/server/node_modules/@vue/compiler-dom/package.json +0 -57
  66. package/.output/server/node_modules/@vue/compiler-ssr/dist/compiler-ssr.cjs.js +0 -1404
  67. package/.output/server/node_modules/@vue/compiler-ssr/package.json +0 -34
  68. package/.output/server/node_modules/@vue/reactivity/dist/reactivity.cjs.prod.js +0 -1789
  69. package/.output/server/node_modules/@vue/reactivity/package.json +0 -55
  70. package/.output/server/node_modules/@vue/runtime-core/dist/runtime-core.cjs.prod.js +0 -6654
  71. package/.output/server/node_modules/@vue/runtime-core/package.json +0 -52
  72. package/.output/server/node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.prod.js +0 -1669
  73. package/.output/server/node_modules/@vue/runtime-dom/package.json +0 -60
  74. package/.output/server/node_modules/@vue/server-renderer/dist/server-renderer.cjs.prod.js +0 -857
  75. package/.output/server/node_modules/@vue/server-renderer/package.json +0 -55
  76. package/.output/server/node_modules/@vue/shared/dist/shared.cjs.prod.js +0 -594
  77. package/.output/server/node_modules/@vue/shared/package.json +0 -47
  78. package/.output/server/node_modules/devalue/index.js +0 -3
  79. package/.output/server/node_modules/devalue/package.json +0 -34
  80. package/.output/server/node_modules/devalue/src/base64.js +0 -110
  81. package/.output/server/node_modules/devalue/src/constants.js +0 -6
  82. package/.output/server/node_modules/devalue/src/parse.js +0 -160
  83. package/.output/server/node_modules/devalue/src/stringify.js +0 -232
  84. package/.output/server/node_modules/devalue/src/uneval.js +0 -351
  85. package/.output/server/node_modules/devalue/src/utils.js +0 -113
  86. package/.output/server/node_modules/entities/lib/decode.js +0 -536
  87. package/.output/server/node_modules/entities/lib/decode_codepoint.js +0 -76
  88. package/.output/server/node_modules/entities/lib/generated/decode-data-html.js +0 -9
  89. package/.output/server/node_modules/entities/lib/generated/decode-data-xml.js +0 -9
  90. package/.output/server/node_modules/entities/package.json +0 -90
  91. package/.output/server/node_modules/estree-walker/dist/umd/estree-walker.js +0 -344
  92. package/.output/server/node_modules/estree-walker/package.json +0 -37
  93. package/.output/server/node_modules/hookable/dist/index.mjs +0 -290
  94. package/.output/server/node_modules/hookable/package.json +0 -49
  95. package/.output/server/node_modules/source-map-js/lib/array-set.js +0 -121
  96. package/.output/server/node_modules/source-map-js/lib/base64-vlq.js +0 -140
  97. package/.output/server/node_modules/source-map-js/lib/base64.js +0 -67
  98. package/.output/server/node_modules/source-map-js/lib/binary-search.js +0 -111
  99. package/.output/server/node_modules/source-map-js/lib/mapping-list.js +0 -79
  100. package/.output/server/node_modules/source-map-js/lib/quick-sort.js +0 -132
  101. package/.output/server/node_modules/source-map-js/lib/source-map-consumer.js +0 -1188
  102. package/.output/server/node_modules/source-map-js/lib/source-map-generator.js +0 -444
  103. package/.output/server/node_modules/source-map-js/lib/source-node.js +0 -413
  104. package/.output/server/node_modules/source-map-js/lib/util.js +0 -594
  105. package/.output/server/node_modules/source-map-js/package.json +0 -71
  106. package/.output/server/node_modules/source-map-js/source-map.js +0 -8
  107. package/.output/server/node_modules/ufo/dist/index.mjs +0 -630
  108. package/.output/server/node_modules/ufo/package.json +0 -47
  109. package/.output/server/node_modules/unhead/dist/plugins.mjs +0 -94
  110. package/.output/server/node_modules/unhead/dist/server.mjs +0 -220
  111. package/.output/server/node_modules/unhead/dist/shared/unhead.C13swrCa.mjs +0 -48
  112. package/.output/server/node_modules/unhead/dist/shared/unhead.CApf5sj3.mjs +0 -148
  113. package/.output/server/node_modules/unhead/dist/shared/unhead.Cp0iF6eN.mjs +0 -177
  114. package/.output/server/node_modules/unhead/dist/shared/unhead.DQc16pHI.mjs +0 -196
  115. package/.output/server/node_modules/unhead/dist/shared/unhead.DZbvapt-.mjs +0 -70
  116. package/.output/server/node_modules/unhead/dist/shared/unhead.DeCxexjU.mjs +0 -166
  117. package/.output/server/node_modules/unhead/dist/shared/unhead.Txd0XTIP.mjs +0 -172
  118. package/.output/server/node_modules/unhead/dist/shared/unhead.yem5I2v_.mjs +0 -38
  119. package/.output/server/node_modules/unhead/dist/utils.mjs +0 -5
  120. package/.output/server/node_modules/unhead/package.json +0 -101
  121. package/.output/server/node_modules/vue/dist/vue.cjs.js +0 -80
  122. package/.output/server/node_modules/vue/dist/vue.cjs.prod.js +0 -66
  123. package/.output/server/node_modules/vue/index.js +0 -7
  124. package/.output/server/node_modules/vue/index.mjs +0 -1
  125. package/.output/server/node_modules/vue/package.json +0 -112
  126. package/.output/server/node_modules/vue/server-renderer/index.mjs +0 -1
  127. package/.output/server/node_modules/vue-bundle-renderer/dist/runtime.mjs +0 -196
  128. package/.output/server/node_modules/vue-bundle-renderer/package.json +0 -50
  129. package/.output/server/node_modules/zod/lib/index.mjs +0 -4405
  130. package/.output/server/node_modules/zod/package.json +0 -122
  131. package/.output/server/package.json +0 -1
@@ -1,603 +0,0 @@
1
- import { isObject, isFunction, run, isAsyncIterable } from '../utils.mjs';
2
- import { iteratorResource } from './utils/asyncIterable.mjs';
3
- import { createDeferred } from './utils/createDeferred.mjs';
4
- import { makeResource } from './utils/disposable.mjs';
5
- import { mergeAsyncIterables } from './utils/mergeAsyncIterables.mjs';
6
- import { readableStreamFrom } from './utils/readableStreamFrom.mjs';
7
- import { PING_SYM, withPing } from './utils/withPing.mjs';
8
-
9
- function _define_property(obj, key, value) {
10
- if (key in obj) {
11
- Object.defineProperty(obj, key, {
12
- value: value,
13
- enumerable: true,
14
- configurable: true,
15
- writable: true
16
- });
17
- } else {
18
- obj[key] = value;
19
- }
20
- return obj;
21
- }
22
- function _ts_add_disposable_resource(env, value, async) {
23
- if (value !== null && value !== void 0) {
24
- if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
25
- var dispose, inner;
26
- if (async) {
27
- if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
28
- dispose = value[Symbol.asyncDispose];
29
- }
30
- if (dispose === void 0) {
31
- if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
32
- dispose = value[Symbol.dispose];
33
- if (async) inner = dispose;
34
- }
35
- if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
36
- if (inner) dispose = function() {
37
- try {
38
- inner.call(this);
39
- } catch (e) {
40
- return Promise.reject(e);
41
- }
42
- };
43
- env.stack.push({
44
- value: value,
45
- dispose: dispose,
46
- async: async
47
- });
48
- } else if (async) {
49
- env.stack.push({
50
- async: true
51
- });
52
- }
53
- return value;
54
- }
55
- function _ts_dispose_resources(env) {
56
- var _SuppressedError = typeof SuppressedError === "function" ? SuppressedError : function(error, suppressed, message) {
57
- var e = new Error(message);
58
- return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
59
- };
60
- return (_ts_dispose_resources = function _ts_dispose_resources(env) {
61
- function fail(e) {
62
- env.error = env.hasError ? new _SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
63
- env.hasError = true;
64
- }
65
- var r, s = 0;
66
- function next() {
67
- while(r = env.stack.pop()){
68
- try {
69
- if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
70
- if (r.dispose) {
71
- var result = r.dispose.call(r.value);
72
- if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) {
73
- fail(e);
74
- return next();
75
- });
76
- } else s |= 1;
77
- } catch (e) {
78
- fail(e);
79
- }
80
- }
81
- if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
82
- if (env.hasError) throw env.error;
83
- }
84
- return next();
85
- })(env);
86
- }
87
- function isPlainObject(value) {
88
- return Object.prototype.toString.call(value) === '[object Object]';
89
- }
90
- // ---------- types
91
- const CHUNK_VALUE_TYPE_PROMISE = 0;
92
- const CHUNK_VALUE_TYPE_ASYNC_ITERABLE = 1;
93
- const PROMISE_STATUS_FULFILLED = 0;
94
- const PROMISE_STATUS_REJECTED = 1;
95
- const ASYNC_ITERABLE_STATUS_RETURN = 0;
96
- const ASYNC_ITERABLE_STATUS_YIELD = 1;
97
- const ASYNC_ITERABLE_STATUS_ERROR = 2;
98
- function isPromise(value) {
99
- return (isObject(value) || isFunction(value)) && typeof value?.['then'] === 'function' && typeof value?.['catch'] === 'function';
100
- }
101
- class MaxDepthError extends Error {
102
- constructor(path){
103
- super('Max depth reached at path: ' + path.join('.')), _define_property(this, "path", void 0), this.path = path;
104
- }
105
- }
106
- async function* createBatchStreamProducer(opts) {
107
- const { data } = opts;
108
- let counter = 0;
109
- const placeholder = 0;
110
- const mergedIterables = mergeAsyncIterables();
111
- function registerAsync(callback) {
112
- const idx = counter++;
113
- const iterable = callback(idx);
114
- mergedIterables.add(iterable);
115
- return idx;
116
- }
117
- function encodePromise(promise, path) {
118
- return registerAsync(async function*(idx) {
119
- const error = checkMaxDepth(path);
120
- if (error) {
121
- // Catch any errors from the original promise to ensure they're reported
122
- promise.catch((cause)=>{
123
- opts.onError?.({
124
- error: cause,
125
- path
126
- });
127
- });
128
- // Replace the promise with a rejected one containing the max depth error
129
- promise = Promise.reject(error);
130
- }
131
- try {
132
- const next = await promise;
133
- yield [
134
- idx,
135
- PROMISE_STATUS_FULFILLED,
136
- encode(next, path)
137
- ];
138
- } catch (cause) {
139
- opts.onError?.({
140
- error: cause,
141
- path
142
- });
143
- yield [
144
- idx,
145
- PROMISE_STATUS_REJECTED,
146
- opts.formatError?.({
147
- error: cause,
148
- path
149
- })
150
- ];
151
- }
152
- });
153
- }
154
- function encodeAsyncIterable(iterable, path) {
155
- return registerAsync(async function*(idx) {
156
- const env = {
157
- stack: [],
158
- error: void 0,
159
- hasError: false
160
- };
161
- try {
162
- const error = checkMaxDepth(path);
163
- if (error) {
164
- throw error;
165
- }
166
- const iterator = _ts_add_disposable_resource(env, iteratorResource(iterable), true);
167
- ;
168
- try {
169
- while(true){
170
- const next = await iterator.next();
171
- if (next.done) {
172
- yield [
173
- idx,
174
- ASYNC_ITERABLE_STATUS_RETURN,
175
- encode(next.value, path)
176
- ];
177
- break;
178
- }
179
- yield [
180
- idx,
181
- ASYNC_ITERABLE_STATUS_YIELD,
182
- encode(next.value, path)
183
- ];
184
- }
185
- } catch (cause) {
186
- opts.onError?.({
187
- error: cause,
188
- path
189
- });
190
- yield [
191
- idx,
192
- ASYNC_ITERABLE_STATUS_ERROR,
193
- opts.formatError?.({
194
- error: cause,
195
- path
196
- })
197
- ];
198
- }
199
- } catch (e) {
200
- env.error = e;
201
- env.hasError = true;
202
- } finally{
203
- const result = _ts_dispose_resources(env);
204
- if (result) await result;
205
- }
206
- });
207
- }
208
- function checkMaxDepth(path) {
209
- if (opts.maxDepth && path.length > opts.maxDepth) {
210
- return new MaxDepthError(path);
211
- }
212
- return null;
213
- }
214
- function encodeAsync(value, path) {
215
- if (isPromise(value)) {
216
- return [
217
- CHUNK_VALUE_TYPE_PROMISE,
218
- encodePromise(value, path)
219
- ];
220
- }
221
- if (isAsyncIterable(value)) {
222
- if (opts.maxDepth && path.length >= opts.maxDepth) {
223
- throw new Error('Max depth reached');
224
- }
225
- return [
226
- CHUNK_VALUE_TYPE_ASYNC_ITERABLE,
227
- encodeAsyncIterable(value, path)
228
- ];
229
- }
230
- return null;
231
- }
232
- function encode(value, path) {
233
- if (value === undefined) {
234
- return [
235
- []
236
- ];
237
- }
238
- const reg = encodeAsync(value, path);
239
- if (reg) {
240
- return [
241
- [
242
- placeholder
243
- ],
244
- [
245
- null,
246
- ...reg
247
- ]
248
- ];
249
- }
250
- if (!isPlainObject(value)) {
251
- return [
252
- [
253
- value
254
- ]
255
- ];
256
- }
257
- const newObj = {};
258
- const asyncValues = [];
259
- for (const [key, item] of Object.entries(value)){
260
- const transformed = encodeAsync(item, [
261
- ...path,
262
- key
263
- ]);
264
- if (!transformed) {
265
- newObj[key] = item;
266
- continue;
267
- }
268
- newObj[key] = placeholder;
269
- asyncValues.push([
270
- key,
271
- ...transformed
272
- ]);
273
- }
274
- return [
275
- [
276
- newObj
277
- ],
278
- ...asyncValues
279
- ];
280
- }
281
- const newHead = {};
282
- for (const [key, item] of Object.entries(data)){
283
- newHead[key] = encode(item, [
284
- key
285
- ]);
286
- }
287
- yield newHead;
288
- let iterable = mergedIterables;
289
- if (opts.pingMs) {
290
- iterable = withPing(mergedIterables, opts.pingMs);
291
- }
292
- for await (const value of iterable){
293
- yield value;
294
- }
295
- }
296
- /**
297
- * JSON Lines stream producer
298
- * @see https://jsonlines.org/
299
- */ function jsonlStreamProducer(opts) {
300
- let stream = readableStreamFrom(createBatchStreamProducer(opts));
301
- const { serialize } = opts;
302
- if (serialize) {
303
- stream = stream.pipeThrough(new TransformStream({
304
- transform (chunk, controller) {
305
- if (chunk === PING_SYM) {
306
- controller.enqueue(PING_SYM);
307
- } else {
308
- controller.enqueue(serialize(chunk));
309
- }
310
- }
311
- }));
312
- }
313
- return stream.pipeThrough(new TransformStream({
314
- transform (chunk, controller) {
315
- if (chunk === PING_SYM) {
316
- controller.enqueue(' ');
317
- } else {
318
- controller.enqueue(JSON.stringify(chunk) + '\n');
319
- }
320
- }
321
- })).pipeThrough(new TextEncoderStream());
322
- }
323
- class AsyncError extends Error {
324
- constructor(data){
325
- super('Received error from server'), _define_property(this, "data", void 0), this.data = data;
326
- }
327
- }
328
- const nodeJsStreamToReaderEsque = (source)=>{
329
- return {
330
- getReader () {
331
- const stream = new ReadableStream({
332
- start (controller) {
333
- source.on('data', (chunk)=>{
334
- controller.enqueue(chunk);
335
- });
336
- source.on('end', ()=>{
337
- controller.close();
338
- });
339
- source.on('error', (error)=>{
340
- controller.error(error);
341
- });
342
- }
343
- });
344
- return stream.getReader();
345
- }
346
- };
347
- };
348
- function createLineAccumulator(from) {
349
- const reader = 'getReader' in from ? from.getReader() : nodeJsStreamToReaderEsque(from).getReader();
350
- let lineAggregate = '';
351
- return new ReadableStream({
352
- async pull (controller) {
353
- const { done, value } = await reader.read();
354
- if (done) {
355
- controller.close();
356
- } else {
357
- controller.enqueue(value);
358
- }
359
- },
360
- cancel () {
361
- return reader.cancel();
362
- }
363
- }).pipeThrough(new TextDecoderStream()).pipeThrough(new TransformStream({
364
- transform (chunk, controller) {
365
- lineAggregate += chunk;
366
- const parts = lineAggregate.split('\n');
367
- lineAggregate = parts.pop() ?? '';
368
- for (const part of parts){
369
- controller.enqueue(part);
370
- }
371
- }
372
- }));
373
- }
374
- function createConsumerStream(from) {
375
- const stream = createLineAccumulator(from);
376
- let sentHead = false;
377
- return stream.pipeThrough(new TransformStream({
378
- transform (line, controller) {
379
- if (!sentHead) {
380
- const head = JSON.parse(line);
381
- controller.enqueue(head);
382
- sentHead = true;
383
- } else {
384
- const chunk = JSON.parse(line);
385
- controller.enqueue(chunk);
386
- }
387
- }
388
- }));
389
- }
390
- /**
391
- * Creates a handler for managing stream controllers and their lifecycle
392
- */ function createStreamsManager(abortController) {
393
- const controllerMap = new Map();
394
- /**
395
- * Checks if there are no pending controllers or deferred promises
396
- */ function isEmpty() {
397
- return Array.from(controllerMap.values()).every((c)=>c.closed);
398
- }
399
- /**
400
- * Creates a stream controller
401
- */ function createStreamController() {
402
- let originalController;
403
- const stream = new ReadableStream({
404
- start (controller) {
405
- originalController = controller;
406
- }
407
- });
408
- const streamController = {
409
- enqueue: (v)=>originalController.enqueue(v),
410
- close: ()=>{
411
- originalController.close();
412
- clear();
413
- if (isEmpty()) {
414
- abortController.abort();
415
- }
416
- },
417
- closed: false,
418
- getReaderResource: ()=>{
419
- const reader = stream.getReader();
420
- return makeResource(reader, ()=>{
421
- reader.releaseLock();
422
- streamController.close();
423
- });
424
- },
425
- error: (reason)=>{
426
- originalController.error(reason);
427
- clear();
428
- }
429
- };
430
- function clear() {
431
- Object.assign(streamController, {
432
- closed: true,
433
- close: ()=>{
434
- // noop
435
- },
436
- enqueue: ()=>{
437
- // noop
438
- },
439
- getReaderResource: null,
440
- error: ()=>{
441
- // noop
442
- }
443
- });
444
- }
445
- return streamController;
446
- }
447
- /**
448
- * Gets or creates a stream controller
449
- */ function getOrCreate(chunkId) {
450
- let c = controllerMap.get(chunkId);
451
- if (!c) {
452
- c = createStreamController();
453
- controllerMap.set(chunkId, c);
454
- }
455
- return c;
456
- }
457
- /**
458
- * Cancels all pending controllers and rejects deferred promises
459
- */ function cancelAll(reason) {
460
- for (const controller of controllerMap.values()){
461
- controller.error(reason);
462
- }
463
- }
464
- return {
465
- getOrCreate,
466
- isEmpty,
467
- cancelAll
468
- };
469
- }
470
- /**
471
- * JSON Lines stream consumer
472
- * @see https://jsonlines.org/
473
- */ async function jsonlStreamConsumer(opts) {
474
- const { deserialize = (v)=>v } = opts;
475
- let source = createConsumerStream(opts.from);
476
- if (deserialize) {
477
- source = source.pipeThrough(new TransformStream({
478
- transform (chunk, controller) {
479
- controller.enqueue(deserialize(chunk));
480
- }
481
- }));
482
- }
483
- let headDeferred = createDeferred();
484
- const streamManager = createStreamsManager(opts.abortController);
485
- function decodeChunkDefinition(value) {
486
- const [_path, type, chunkId] = value;
487
- const controller = streamManager.getOrCreate(chunkId);
488
- switch(type){
489
- case CHUNK_VALUE_TYPE_PROMISE:
490
- {
491
- return run(async ()=>{
492
- const env = {
493
- stack: [],
494
- error: void 0,
495
- hasError: false
496
- };
497
- try {
498
- const reader = _ts_add_disposable_resource(env, controller.getReaderResource(), false);
499
- ;
500
- const { value } = await reader.read();
501
- const [_chunkId, status, data] = value;
502
- switch(status){
503
- case PROMISE_STATUS_FULFILLED:
504
- return decode(data);
505
- case PROMISE_STATUS_REJECTED:
506
- throw opts.formatError?.({
507
- error: data
508
- }) ?? new AsyncError(data);
509
- }
510
- } catch (e) {
511
- env.error = e;
512
- env.hasError = true;
513
- } finally{
514
- _ts_dispose_resources(env);
515
- }
516
- });
517
- }
518
- case CHUNK_VALUE_TYPE_ASYNC_ITERABLE:
519
- {
520
- return run(async function*() {
521
- const env = {
522
- stack: [],
523
- error: void 0,
524
- hasError: false
525
- };
526
- try {
527
- const reader = _ts_add_disposable_resource(env, controller.getReaderResource(), false);
528
- ;
529
- while(true){
530
- const { value } = await reader.read();
531
- const [_chunkId, status, data] = value;
532
- switch(status){
533
- case ASYNC_ITERABLE_STATUS_YIELD:
534
- yield decode(data);
535
- break;
536
- case ASYNC_ITERABLE_STATUS_RETURN:
537
- return decode(data);
538
- case ASYNC_ITERABLE_STATUS_ERROR:
539
- throw opts.formatError?.({
540
- error: data
541
- }) ?? new AsyncError(data);
542
- }
543
- }
544
- } catch (e) {
545
- env.error = e;
546
- env.hasError = true;
547
- } finally{
548
- _ts_dispose_resources(env);
549
- }
550
- });
551
- }
552
- }
553
- }
554
- function decode(value) {
555
- const [[data], ...asyncProps] = value;
556
- for (const value of asyncProps){
557
- const [key] = value;
558
- const decoded = decodeChunkDefinition(value);
559
- if (key === null) {
560
- return decoded;
561
- }
562
- data[key] = decoded;
563
- }
564
- return data;
565
- }
566
- const closeOrAbort = (reason)=>{
567
- headDeferred?.reject(reason);
568
- streamManager.cancelAll(reason);
569
- };
570
- source.pipeTo(new WritableStream({
571
- write (chunkOrHead) {
572
- if (headDeferred) {
573
- const head = chunkOrHead;
574
- for (const [key, value] of Object.entries(chunkOrHead)){
575
- const parsed = decode(value);
576
- head[key] = parsed;
577
- }
578
- headDeferred.resolve(head);
579
- headDeferred = null;
580
- return;
581
- }
582
- const chunk = chunkOrHead;
583
- const [idx] = chunk;
584
- const controller = streamManager.getOrCreate(idx);
585
- controller.enqueue(chunk);
586
- },
587
- close: ()=>closeOrAbort(new Error('Stream closed')),
588
- abort: closeOrAbort
589
- }), {
590
- signal: opts.abortController.signal
591
- }).catch((error)=>{
592
- opts.onError?.({
593
- error
594
- });
595
- closeOrAbort(error);
596
- });
597
- return [
598
- await headDeferred.promise,
599
- streamManager
600
- ];
601
- }
602
-
603
- export { isPromise, jsonlStreamConsumer, jsonlStreamProducer };