polen 0.10.0-next.13 → 0.10.0-next.14

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 (104) hide show
  1. package/build/api/vite/plugins/build.d.ts.map +1 -1
  2. package/build/api/vite/plugins/build.js +11 -3
  3. package/build/api/vite/plugins/build.js.map +1 -1
  4. package/build/api/vite/plugins/core.d.ts.map +1 -1
  5. package/build/api/vite/plugins/core.js +12 -10
  6. package/build/api/vite/plugins/core.js.map +1 -1
  7. package/build/api/vite/plugins/pages.d.ts.map +1 -1
  8. package/build/api/vite/plugins/pages.js +6 -7
  9. package/build/api/vite/plugins/pages.js.map +1 -1
  10. package/build/api/vite/plugins/serve.d.ts.map +1 -1
  11. package/build/api/vite/plugins/serve.js +47 -7
  12. package/build/api/vite/plugins/serve.js.map +1 -1
  13. package/build/lib/file-router/diagnostic-reporter.js +2 -2
  14. package/build/lib/file-router/diagnostic-reporter.js.map +1 -1
  15. package/build/lib/graphql-document/components/GraphQLDocument.d.ts.map +1 -1
  16. package/build/lib/graphql-document/components/GraphQLDocument.js +23 -11
  17. package/build/lib/graphql-document/components/GraphQLDocument.js.map +1 -1
  18. package/build/lib/graphql-document/positioning-simple.d.ts +0 -5
  19. package/build/lib/graphql-document/positioning-simple.d.ts.map +1 -1
  20. package/build/lib/graphql-document/positioning-simple.js +78 -90
  21. package/build/lib/graphql-document/positioning-simple.js.map +1 -1
  22. package/build/lib/kit-temp.d.ts +103 -0
  23. package/build/lib/kit-temp.d.ts.map +1 -1
  24. package/build/lib/kit-temp.js +236 -2
  25. package/build/lib/kit-temp.js.map +1 -1
  26. package/build/lib/vite-plugin-reactive-data/vite-plugin-reactive-data.d.ts +1 -8
  27. package/build/lib/vite-plugin-reactive-data/vite-plugin-reactive-data.d.ts.map +1 -1
  28. package/build/lib/vite-plugin-reactive-data/vite-plugin-reactive-data.js +48 -53
  29. package/build/lib/vite-plugin-reactive-data/vite-plugin-reactive-data.js.map +1 -1
  30. package/build/package-paths.js +3 -3
  31. package/build/package-paths.js.map +1 -1
  32. package/build/template/components/Link.d.ts +1 -1
  33. package/build/template/components/Link.d.ts.map +1 -1
  34. package/build/template/components/Link.js +14 -5
  35. package/build/template/components/Link.js.map +1 -1
  36. package/build/template/components/content/GraphQLDocumentWithSchema.d.ts.map +1 -1
  37. package/build/template/components/content/GraphQLDocumentWithSchema.js +0 -3
  38. package/build/template/components/content/GraphQLDocumentWithSchema.js.map +1 -1
  39. package/build/template/components/content/GraphQLDocumentWrapper.d.ts.map +1 -1
  40. package/build/template/components/content/GraphQLDocumentWrapper.js +8 -7
  41. package/build/template/components/content/GraphQLDocumentWrapper.js.map +1 -1
  42. package/build/template/components/sidebar/SidebarItem.js +2 -2
  43. package/build/template/entry.client.d.ts.map +1 -1
  44. package/build/template/entry.client.js +0 -3
  45. package/build/template/entry.client.js.map +1 -1
  46. package/build/template/hooks/useClientOnly.d.ts +9 -0
  47. package/build/template/hooks/useClientOnly.d.ts.map +1 -0
  48. package/build/template/hooks/useClientOnly.js +16 -0
  49. package/build/template/hooks/useClientOnly.js.map +1 -0
  50. package/build/template/routes/root.d.ts.map +1 -1
  51. package/build/template/routes/root.js +2 -150
  52. package/build/template/routes/root.js.map +1 -1
  53. package/build/template/server/app.d.ts +8 -1
  54. package/build/template/server/app.d.ts.map +1 -1
  55. package/build/template/server/app.js +21 -21
  56. package/build/template/server/app.js.map +1 -1
  57. package/build/template/server/create-page-html-response.d.ts +7 -0
  58. package/build/template/server/create-page-html-response.d.ts.map +1 -0
  59. package/build/template/server/{render-page.js → create-page-html-response.js} +11 -16
  60. package/build/template/server/create-page-html-response.js.map +1 -0
  61. package/build/template/server/main.js +2 -1
  62. package/build/template/server/main.js.map +1 -1
  63. package/build/template/server/middleware/page.d.ts +4 -0
  64. package/build/template/server/middleware/page.d.ts.map +1 -0
  65. package/build/template/server/middleware/page.js +15 -0
  66. package/build/template/server/middleware/page.js.map +1 -0
  67. package/build/template/server/middleware/unsupported-assets.d.ts +10 -0
  68. package/build/template/server/middleware/unsupported-assets.d.ts.map +1 -0
  69. package/build/template/server/middleware/unsupported-assets.js +21 -0
  70. package/build/template/server/middleware/unsupported-assets.js.map +1 -0
  71. package/build/template/server/ssg/generate.d.ts.map +1 -1
  72. package/build/template/server/ssg/generate.js +33 -34
  73. package/build/template/server/ssg/generate.js.map +1 -1
  74. package/build/template/styles/code-block.css +218 -0
  75. package/package.json +3 -2
  76. package/src/api/singletons/markdown/markdown.test.ts +1 -1
  77. package/src/api/vite/plugins/build.ts +97 -89
  78. package/src/api/vite/plugins/core.ts +15 -10
  79. package/src/api/vite/plugins/pages.ts +9 -7
  80. package/src/api/vite/plugins/serve.ts +62 -9
  81. package/src/lib/file-router/diagnostic-reporter.ts +2 -2
  82. package/src/lib/graphql-document/components/GraphQLDocument.tsx +23 -11
  83. package/src/lib/graphql-document/positioning-simple.test.ts +18 -22
  84. package/src/lib/graphql-document/positioning-simple.ts +97 -108
  85. package/src/lib/kit-temp.test.ts +15 -3
  86. package/src/lib/kit-temp.ts +304 -4
  87. package/src/lib/vite-plugin-reactive-data/vite-plugin-reactive-data.ts +52 -58
  88. package/src/package-paths.ts +3 -3
  89. package/src/template/components/Link.tsx +20 -12
  90. package/src/template/components/content/GraphQLDocumentWithSchema.tsx +0 -5
  91. package/src/template/components/content/GraphQLDocumentWrapper.tsx +14 -7
  92. package/src/template/components/sidebar/SidebarItem.tsx +2 -2
  93. package/src/template/entry.client.tsx +0 -3
  94. package/src/template/hooks/useClientOnly.ts +21 -0
  95. package/src/template/routes/root.tsx +0 -159
  96. package/src/template/server/app.ts +33 -23
  97. package/src/template/server/{render-page.tsx → create-page-html-response.ts} +19 -16
  98. package/src/template/server/main.ts +2 -1
  99. package/src/template/server/middleware/page.ts +19 -0
  100. package/src/template/server/middleware/unsupported-assets.ts +25 -0
  101. package/src/template/server/ssg/generate.ts +68 -72
  102. package/build/template/server/render-page.d.ts +0 -3
  103. package/build/template/server/render-page.d.ts.map +0 -1
  104. package/build/template/server/render-page.js.map +0 -1
@@ -20,21 +20,85 @@ export class SimplePositionCalculator {
20
20
  * Prepare a code block for positioning by wrapping identifiers in spans
21
21
  */
22
22
  prepareCodeBlock(containerElement, identifiers) {
23
- // Sort all identifiers by position (right to left, bottom to top)
24
- const sortedIdentifiers = [...identifiers].sort((a, b) => {
25
- // Sort by line first (bottom to top)
26
- if (a.position.line !== b.position.line) {
27
- return b.position.line - a.position.line;
23
+ // Get the full text content of the container
24
+ const fullText = containerElement.textContent || '';
25
+ const lines = fullText.split('\n');
26
+ // Build a map of line start positions in the full text
27
+ const lineStartPositions = [0];
28
+ for (let i = 0; i < lines.length - 1; i++) {
29
+ const lineLength = lines[i]?.length ?? 0;
30
+ lineStartPositions.push(lineStartPositions[i] + lineLength + 1); // +1 for newline
31
+ }
32
+ // Process identifiers by line
33
+ for (const identifier of identifiers) {
34
+ const lineIndex = identifier.position.line - 1;
35
+ if (lineIndex >= lines.length || lineIndex < 0)
36
+ continue;
37
+ const lineText = lines[lineIndex];
38
+ if (!lineText)
39
+ continue;
40
+ const columnIndex = identifier.position.column - 1;
41
+ // Check if the identifier exists at the expected position
42
+ if (lineText.substring(columnIndex).startsWith(identifier.name)) {
43
+ // Calculate the absolute position in the full text
44
+ const lineStartPosition = lineStartPositions[lineIndex] ?? 0;
45
+ const absolutePosition = lineStartPosition + columnIndex;
46
+ // Check if already wrapped at this specific position
47
+ const existingWrapped = containerElement.querySelectorAll(`[data-graphql-id]`);
48
+ let alreadyWrapped = false;
49
+ for (const wrapped of existingWrapped) {
50
+ if (wrapped.textContent === identifier.name) {
51
+ const startPos = parseInt(wrapped.getAttribute('data-graphql-start') || '0');
52
+ if (startPos === identifier.position.start) {
53
+ alreadyWrapped = true;
54
+ break;
55
+ }
56
+ }
57
+ }
58
+ if (alreadyWrapped)
59
+ continue;
60
+ // Create wrapper span
61
+ const wrapper = document.createElement('span');
62
+ const id = `${identifier.position.start}-${identifier.name}-${identifier.kind}`;
63
+ wrapper.setAttribute('data-graphql-id', id);
64
+ wrapper.setAttribute('data-graphql-name', identifier.name);
65
+ wrapper.setAttribute('data-graphql-kind', identifier.kind);
66
+ wrapper.setAttribute('data-graphql-start', String(identifier.position.start));
67
+ wrapper.setAttribute('data-graphql-end', String(identifier.position.end));
68
+ wrapper.setAttribute('data-graphql-line', String(identifier.position.line));
69
+ wrapper.setAttribute('data-graphql-column', String(identifier.position.column));
70
+ wrapper.setAttribute('data-graphql-path', identifier.schemaPath.join(','));
71
+ // Find the position in the container and wrap the text
72
+ const walker = document.createTreeWalker(containerElement, NodeFilter.SHOW_TEXT, null);
73
+ let currentPos = 0;
74
+ let node;
75
+ while (node = walker.nextNode()) {
76
+ const textNode = node;
77
+ const text = textNode.textContent || '';
78
+ // Check if this text node contains our identifier
79
+ if (currentPos <= absolutePosition && absolutePosition < currentPos + text.length) {
80
+ const relativePos = absolutePosition - currentPos;
81
+ if (text.substring(relativePos).startsWith(identifier.name)) {
82
+ // Split the text node
83
+ const before = text.substring(0, relativePos);
84
+ const identifierText = identifier.name;
85
+ const after = text.substring(relativePos + identifierText.length);
86
+ const parent = textNode.parentNode;
87
+ if (before) {
88
+ parent.insertBefore(document.createTextNode(before), textNode);
89
+ }
90
+ wrapper.textContent = identifierText;
91
+ parent.insertBefore(wrapper, textNode);
92
+ if (after) {
93
+ parent.insertBefore(document.createTextNode(after), textNode);
94
+ }
95
+ parent.removeChild(textNode);
96
+ break;
97
+ }
98
+ }
99
+ currentPos += text.length;
100
+ }
28
101
  }
29
- // Then by column (right to left)
30
- return b.position.column - a.position.column;
31
- });
32
- // Process all identifiers
33
- let wrappedCount = 0;
34
- for (const identifier of sortedIdentifiers) {
35
- const wrapped = this.wrapIdentifier(containerElement, identifier);
36
- if (wrapped)
37
- wrappedCount++;
38
102
  }
39
103
  }
40
104
  /**
@@ -76,82 +140,6 @@ export class SimplePositionCalculator {
76
140
  }
77
141
  return results;
78
142
  }
79
- /**
80
- * Wrap an identifier in a span for positioning
81
- * Returns true if the identifier was successfully wrapped
82
- */
83
- wrapIdentifier(containerElement, identifier) {
84
- const walker = document.createTreeWalker(containerElement, NodeFilter.SHOW_TEXT, null);
85
- let currentLine = 1;
86
- let currentColumn = 1;
87
- let node;
88
- while (node = walker.nextNode()) {
89
- const textNode = node;
90
- const text = textNode.textContent || '';
91
- // Check if already wrapped
92
- if (textNode.parentElement?.hasAttribute('data-graphql-id')) {
93
- // Update position tracking and continue
94
- for (const char of text) {
95
- if (char === '\n') {
96
- currentLine++;
97
- currentColumn = 1;
98
- }
99
- else {
100
- currentColumn++;
101
- }
102
- }
103
- continue;
104
- }
105
- // Track position in the text
106
- let textIndex = 0;
107
- while (textIndex < text.length) {
108
- // Check if we're at the identifier's position
109
- if (currentLine === identifier.position.line
110
- && currentColumn === identifier.position.column) {
111
- // Verify it's actually our identifier
112
- const remainingText = text.substring(textIndex);
113
- if (remainingText.startsWith(identifier.name)) {
114
- // Create a unique ID for this identifier
115
- const id = `${identifier.position.start}-${identifier.name}-${identifier.kind}`;
116
- // Split the text node and wrap the identifier
117
- const before = text.substring(0, textIndex);
118
- const after = text.substring(textIndex + identifier.name.length);
119
- const span = document.createElement('span');
120
- span.setAttribute('data-graphql-id', id);
121
- span.setAttribute('data-graphql-name', identifier.name);
122
- span.setAttribute('data-graphql-kind', identifier.kind);
123
- span.setAttribute('data-graphql-start', String(identifier.position.start));
124
- span.setAttribute('data-graphql-end', String(identifier.position.end));
125
- span.setAttribute('data-graphql-line', String(identifier.position.line));
126
- span.setAttribute('data-graphql-column', String(identifier.position.column));
127
- span.setAttribute('data-graphql-path', identifier.schemaPath.join(','));
128
- span.textContent = identifier.name;
129
- const parent = textNode.parentNode;
130
- if (before) {
131
- parent.insertBefore(document.createTextNode(before), textNode);
132
- }
133
- parent.insertBefore(span, textNode);
134
- if (after) {
135
- parent.insertBefore(document.createTextNode(after), textNode);
136
- }
137
- parent.removeChild(textNode);
138
- return true;
139
- }
140
- }
141
- // Update position tracking
142
- const char = text[textIndex];
143
- if (char === '\n') {
144
- currentLine++;
145
- currentColumn = 1;
146
- }
147
- else {
148
- currentColumn++;
149
- }
150
- textIndex++;
151
- }
152
- }
153
- return false; // Identifier not found
154
- }
155
143
  }
156
144
  /**
157
145
  * Create invisible overlay for a position
@@ -1 +1 @@
1
- {"version":3,"file":"positioning-simple.js","sourceRoot":"","sources":["../../../src/lib/graphql-document/positioning-simple.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"positioning-simple.js","sourceRoot":"","sources":["../../../src/lib/graphql-document/positioning-simple.ts"],"names":[],"mappings":"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"}
@@ -71,5 +71,108 @@ export declare function tryCatchMany<item, result>(items: item[], operation: (it
71
71
  */
72
72
  export type IsExact<T, U> = T extends U ? U extends T ? true : false : false;
73
73
  export type ExtendsExact<$Input, $Constraint> = $Input extends $Constraint ? $Constraint extends $Input ? $Input : never : never;
74
+ /**
75
+ * Split an array into chunks of specified size
76
+ *
77
+ * @param array - The array to chunk
78
+ * @param size - The size of each chunk
79
+ * @returns Array of chunks
80
+ *
81
+ * @example
82
+ * ```ts
83
+ * chunk([1, 2, 3, 4, 5], 2) // [[1, 2], [3, 4], [5]]
84
+ * chunk(['a', 'b', 'c'], 3) // [['a', 'b', 'c']]
85
+ * ```
86
+ */
87
+ export declare const chunk: <T>(array: readonly T[], size: number) => T[][];
88
+ export interface AsyncParallelOptions {
89
+ /**
90
+ * Maximum number of items to process concurrently
91
+ * @default 10
92
+ */
93
+ concurrency?: number;
94
+ /**
95
+ * If true, stops processing on first error
96
+ * If false, continues processing all items even if some fail
97
+ * @default false
98
+ */
99
+ failFast?: boolean;
100
+ /**
101
+ * Size of batches to process items in
102
+ * If not specified, all items are processed with the specified concurrency
103
+ */
104
+ batchSize?: number;
105
+ }
106
+ export interface AsyncParallelResult<T, R> {
107
+ /** Successfully processed results */
108
+ results: R[];
109
+ /** Errors that occurred during processing */
110
+ errors: (Error & {
111
+ item: T;
112
+ })[];
113
+ /** Whether all items were processed successfully */
114
+ success: boolean;
115
+ }
116
+ /**
117
+ * Process items in parallel with configurable options
118
+ *
119
+ * @param items - Items to process
120
+ * @param operation - Async function to apply to each item (with optional index)
121
+ * @param options - Configuration options
122
+ * @returns Results and errors from processing
123
+ *
124
+ * @example
125
+ * ```ts
126
+ * const items = [1, 2, 3, 4, 5]
127
+ * const result = await asyncParallel(items, async (n, index) => n * 2, {
128
+ * concurrency: 2,
129
+ * batchSize: 3,
130
+ * failFast: false
131
+ * })
132
+ * // result.results: [2, 4, 6, 8, 10]
133
+ * // result.errors: []
134
+ * // result.success: true
135
+ * ```
136
+ */
137
+ export declare const asyncParallel: <T, R>(items: readonly T[], operation: (item: T, index: number) => Promise<R>, options?: AsyncParallelOptions) => Promise<AsyncParallelResult<T, R>>;
138
+ /**
139
+ * Reduce an array asynchronously with context, processing each item in sequence
140
+ *
141
+ * @param items - Array of items to process
142
+ * @param reducer - Async function that takes accumulator, current item, and context
143
+ * @param initial - Initial value for the accumulator
144
+ * @param context - Context object passed to each reducer call
145
+ * @returns Final accumulated value
146
+ *
147
+ * @example
148
+ * ```ts
149
+ * const transformers = [transformer1, transformer2]
150
+ * const ctx = { request: req, response: res }
151
+ * const result = await asyncReduceWithContext(
152
+ * transformers,
153
+ * async (html, transformer) => transformer(html, ctx),
154
+ * initialHtml,
155
+ * ctx
156
+ * )
157
+ * ```
158
+ */
159
+ export declare const asyncReduce: <T, R, C>(items: readonly T[], reducer: (accumulator: R, current: T, context: C, index: number) => Promise<R> | R, initial: R, context: C) => Promise<R>;
160
+ /**
161
+ * Curried version of asyncReduceWithContext for functions that transform a value with context
162
+ *
163
+ * @param transformers - Array of transformer functions that take value and context
164
+ * @returns A function that takes an initial value and context, and applies all transformers
165
+ *
166
+ * @example
167
+ * ```ts
168
+ * const transformers = [
169
+ * (html, ctx) => html.replace('{{url}}', ctx.req.url),
170
+ * async (html, ctx) => await ctx.minify(html),
171
+ * ]
172
+ * const applyTransforms = asyncReduceWithContextWith(transformers)
173
+ * const finalHtml = await applyTransforms(initialHtml, ctx)
174
+ * ```
175
+ */
176
+ export declare const asyncReduceWith: <T, C>(transformers: readonly ((value: T, context: C) => Promise<T> | T)[], context: C) => (initial: T) => Promise<T>;
74
177
  export {};
75
178
  //# sourceMappingURL=kit-temp.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"kit-temp.d.ts","sourceRoot":"","sources":["../../src/lib/kit-temp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kit-temp.d.ts","sourceRoot":"","sources":["../../src/lib/kit-temp.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,6 @@
12
12
  //
13
13
  //
14
14
  import { Arr, Err, Fs, Http, Path, Undefined } from '@wollybeard/kit';
15
- import { never } from '@wollybeard/kit/language';
16
15
  export const arrayEquals = (a, b) => {
17
16
  if (a.length !== b.length)
18
17
  return false;
@@ -77,7 +76,7 @@ export const objPolicyFilter = (mode, obj, keys) => {
77
76
  if (mode === 'allow') {
78
77
  // For allow mode, only add specified keys
79
78
  for (const key of keys) {
80
- if (key in obj) {
79
+ if (Object.prototype.hasOwnProperty.call(obj, key)) {
81
80
  // @ts-expect-error
82
81
  result[key] = obj[key];
83
82
  }
@@ -159,4 +158,239 @@ export async function tryCatchMany(items, operation) {
159
158
  })).then(Arr.partitionErrors);
160
159
  return partitionedResults;
161
160
  }
161
+ /**
162
+ * Split an array into chunks of specified size
163
+ *
164
+ * @param array - The array to chunk
165
+ * @param size - The size of each chunk
166
+ * @returns Array of chunks
167
+ *
168
+ * @example
169
+ * ```ts
170
+ * chunk([1, 2, 3, 4, 5], 2) // [[1, 2], [3, 4], [5]]
171
+ * chunk(['a', 'b', 'c'], 3) // [['a', 'b', 'c']]
172
+ * ```
173
+ */
174
+ export const chunk = (array, size) => {
175
+ if (size <= 0)
176
+ throw new Error('Chunk size must be greater than 0');
177
+ if (array.length === 0)
178
+ return [];
179
+ const chunks = [];
180
+ for (let i = 0; i < array.length; i += size) {
181
+ chunks.push(array.slice(i, i + size));
182
+ }
183
+ return chunks;
184
+ };
185
+ /**
186
+ * Process items in parallel with configurable options
187
+ *
188
+ * @param items - Items to process
189
+ * @param operation - Async function to apply to each item (with optional index)
190
+ * @param options - Configuration options
191
+ * @returns Results and errors from processing
192
+ *
193
+ * @example
194
+ * ```ts
195
+ * const items = [1, 2, 3, 4, 5]
196
+ * const result = await asyncParallel(items, async (n, index) => n * 2, {
197
+ * concurrency: 2,
198
+ * batchSize: 3,
199
+ * failFast: false
200
+ * })
201
+ * // result.results: [2, 4, 6, 8, 10]
202
+ * // result.errors: []
203
+ * // result.success: true
204
+ * ```
205
+ */
206
+ export const asyncParallel = async (items, operation, options = {}) => {
207
+ const { concurrency = 10, failFast = false, batchSize } = options;
208
+ if (items.length === 0) {
209
+ return { results: [], errors: [], success: true };
210
+ }
211
+ const allResults = [];
212
+ const allErrors = [];
213
+ // If batchSize is specified, process in batches
214
+ if (batchSize !== undefined) {
215
+ const batches = chunk(items, batchSize);
216
+ let globalIndex = 0;
217
+ for (const batch of batches) {
218
+ const batchResult = await processBatch(batch, operation, concurrency, failFast, globalIndex);
219
+ allResults.push(...batchResult.results);
220
+ allErrors.push(...batchResult.errors);
221
+ globalIndex += batch.length;
222
+ if (failFast && batchResult.errors.length > 0) {
223
+ break;
224
+ }
225
+ }
226
+ }
227
+ else {
228
+ // Process all items with specified concurrency
229
+ const result = await processBatch(items, operation, concurrency, failFast, 0);
230
+ allResults.push(...result.results);
231
+ allErrors.push(...result.errors);
232
+ }
233
+ return {
234
+ results: allResults,
235
+ errors: allErrors,
236
+ success: allErrors.length === 0,
237
+ };
238
+ };
239
+ /**
240
+ * Process a batch of items with limited concurrency
241
+ */
242
+ const processBatch = async (items, operation, concurrency, failFast, startIndex = 0) => {
243
+ const results = [];
244
+ const errors = [];
245
+ // Process items in chunks based on concurrency limit
246
+ const chunks = chunk(items, concurrency);
247
+ let currentIndex = startIndex;
248
+ for (const chunkItems of chunks) {
249
+ const promises = chunkItems.map(async (item, chunkIndex) => {
250
+ const globalIndex = currentIndex + chunkIndex;
251
+ try {
252
+ const result = await operation(item, globalIndex);
253
+ return { success: true, result, item };
254
+ }
255
+ catch (error) {
256
+ const enhancedError = error instanceof Error ? error : new Error(String(error));
257
+ Object.assign(enhancedError, { item });
258
+ return { success: false, error: enhancedError, item };
259
+ }
260
+ });
261
+ currentIndex += chunkItems.length;
262
+ const chunkResults = await Promise.allSettled(promises);
263
+ for (const promiseResult of chunkResults) {
264
+ if (promiseResult.status === 'fulfilled') {
265
+ const { success, result, error, item } = promiseResult.value;
266
+ if (success) {
267
+ results.push(result);
268
+ }
269
+ else {
270
+ errors.push(error);
271
+ if (failFast) {
272
+ return { results, errors, success: false };
273
+ }
274
+ }
275
+ }
276
+ else {
277
+ // This shouldn't happen since we're catching errors above
278
+ // But handle it just in case
279
+ const error = new Error('Unexpected promise rejection');
280
+ errors.push(error);
281
+ if (failFast) {
282
+ return { results, errors, success: false };
283
+ }
284
+ }
285
+ }
286
+ }
287
+ return { results, errors, success: errors.length === 0 };
288
+ };
289
+ // /**
290
+ // * Reduce an array asynchronously, processing each item in sequence
291
+ // *
292
+ // * @param items - Array of items to process
293
+ // * @param reducer - Async function that takes accumulator and current item
294
+ // * @param initial - Initial value for the accumulator
295
+ // * @returns Final accumulated value
296
+ // *
297
+ // * @example
298
+ // * ```ts
299
+ // * const numbers = [1, 2, 3, 4]
300
+ // * const sum = await asyncReduce(numbers, async (acc, n) => acc + n, 0)
301
+ // * // sum: 10
302
+ // *
303
+ // * const transforms = [addHeader, addFooter, minify]
304
+ // * const html = await asyncReduce(transforms, async (html, transform) => transform(html), initialHtml)
305
+ // * ```
306
+ // */
307
+ // export const asyncReduce = async <T, R>(
308
+ // items: readonly T[],
309
+ // reducer: (accumulator: R, current: T, index: number) => Promise<R> | R,
310
+ // initial: R,
311
+ // ): Promise<R> => {
312
+ // let result = initial
313
+ // for (let i = 0; i < items.length; i++) {
314
+ // const item = items[i]!
315
+ // result = await reducer(result, item, i)
316
+ // }
317
+ // return result
318
+ // }
319
+ // /**
320
+ // * Curried version of asyncReduce for functions that transform a value
321
+ // *
322
+ // * @param transformers - Array of transformer functions
323
+ // * @returns A function that takes an initial value and applies all transformers
324
+ // *
325
+ // * @example
326
+ // * ```ts
327
+ // * const transformers = [addHeader, addFooter, minify]
328
+ // * const applyTransforms = asyncReduceWith(transformers)
329
+ // * const finalHtml = await applyTransforms(initialHtml)
330
+ // *
331
+ // * // For simple pipelines where each function transforms the same type
332
+ // * const htmlPipeline = asyncReduceWith([
333
+ // * (html) => html.replace('foo', 'bar'),
334
+ // * async (html) => await prettify(html),
335
+ // * (html) => html.trim()
336
+ // * ])
337
+ // * ```
338
+ // */
339
+ // export const asyncReduceWith = <T>(
340
+ // transformers: readonly ((value: T) => Promise<T> | T)[],
341
+ // ) => {
342
+ // return async (initial: T): Promise<T> => {
343
+ // return asyncReduce(transformers, (value, transform) => transform(value), initial)
344
+ // }
345
+ // }
346
+ /**
347
+ * Reduce an array asynchronously with context, processing each item in sequence
348
+ *
349
+ * @param items - Array of items to process
350
+ * @param reducer - Async function that takes accumulator, current item, and context
351
+ * @param initial - Initial value for the accumulator
352
+ * @param context - Context object passed to each reducer call
353
+ * @returns Final accumulated value
354
+ *
355
+ * @example
356
+ * ```ts
357
+ * const transformers = [transformer1, transformer2]
358
+ * const ctx = { request: req, response: res }
359
+ * const result = await asyncReduceWithContext(
360
+ * transformers,
361
+ * async (html, transformer) => transformer(html, ctx),
362
+ * initialHtml,
363
+ * ctx
364
+ * )
365
+ * ```
366
+ */
367
+ export const asyncReduce = async (items, reducer, initial, context) => {
368
+ let result = initial;
369
+ for (let i = 0; i < items.length; i++) {
370
+ const item = items[i];
371
+ result = await reducer(result, item, context, i);
372
+ }
373
+ return result;
374
+ };
375
+ /**
376
+ * Curried version of asyncReduceWithContext for functions that transform a value with context
377
+ *
378
+ * @param transformers - Array of transformer functions that take value and context
379
+ * @returns A function that takes an initial value and context, and applies all transformers
380
+ *
381
+ * @example
382
+ * ```ts
383
+ * const transformers = [
384
+ * (html, ctx) => html.replace('{{url}}', ctx.req.url),
385
+ * async (html, ctx) => await ctx.minify(html),
386
+ * ]
387
+ * const applyTransforms = asyncReduceWithContextWith(transformers)
388
+ * const finalHtml = await applyTransforms(initialHtml, ctx)
389
+ * ```
390
+ */
391
+ export const asyncReduceWith = (transformers, context) => {
392
+ return async (initial) => {
393
+ return asyncReduce(transformers, (value, transform, ctx) => transform(value, ctx), initial, context);
394
+ };
395
+ };
162
396
  //# sourceMappingURL=kit-temp.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"kit-temp.js","sourceRoot":"","sources":["../../src/lib/kit-temp.ts"],"names":[],"mappings":"AAAA,EAAE;AACF,EAAE;AACF,EAAE;AACF,EAAE;AACF,EAAE;AACF,2DAA2D;AAC3D,EAAE;AACF,mFAAmF;AACnF,EAAE;AACF,mEAAmE;AACnE,EAAE;AACF,EAAE;AACF,EAAE;AAEF,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAW,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC9E,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;AAIhD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAQ,EAAE,CAAQ,EAAE,EAAE;IAChD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;QAAE,OAAO,KAAK,CAAA;IACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAA;IACjC,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,OAA2B,EAAU,EAAE;IACnF,IAAI,SAAS,CAAC,EAAE,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC,GAAG,EAAE,CAAA;IAC/C,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;AACpD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,OAA2B,EAAE,WAAmB,EAAU,EAAE;IACjG,kBAAkB,CAAC,WAAW,CAAC,CAAA;IAC/B,IAAI,SAAS,CAAC,EAAE,CAAC,OAAO,CAAC;QAAE,OAAO,WAAW,CAAA;IAC7C,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;AAClD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,cAAsB,EAAQ,EAAE;IACjE,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;QAAE,OAAM;IAC3C,MAAM,IAAI,KAAK,CAAC,0BAA0B,cAAc,EAAE,CAAC,CAAA;AAC7D,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,cAAkC,EAAE,OAAgB,EAAQ,EAAE;IACvG,IAAI,SAAS,CAAC,EAAE,CAAC,cAAc,CAAC;QAAE,OAAM;IACxC,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;QAAE,OAAM;IAC3C,MAAM,QAAQ,GAAG,OAAO,IAAI,0BAA0B,cAAc,EAAE,CAAA;IACtE,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAA;AAC3B,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EAAE,KAAe,EAA+B,EAAE;IAC1F,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;IAC9G,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,KAAK,SAAS,CAAC,CAAA;AAC1D,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,SAAiB,EAAE,WAAmB,EAAW,EAAE;IACxF,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,CAAC,UAAU,CAAC,WAAW,GAAG,GAAG,CAAC,CAAA;AAC7E,CAAC,CAAA;AAqBD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAK7B,IAAU,EACV,GAAQ,EACR,IAAyB,EACa,EAAE;IACxC,MAAM,MAAM,GAAQ,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IAErD,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,0CAA0C;QAC1C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;gBACf,mBAAmB;gBACnB,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA;YACxB,CAAC;QACH,CAAC;IACH,CAAC;SAAM,CAAC;QACN,uCAAuC;QACvC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,OAAO,MAAM,CAAC,GAAG,CAAC,CAAA;QACpB,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,GAAM,EACN,SAA+D,EACnD,EAAE;IACd,MAAM,MAAM,GAAG,EAAgB,CAAA;IAC/B,uDAAuD;IACvD,oEAAoE;IACpE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAgB,EAAE,CAAC;QAClD,IAAI,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;YAClC,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA;QACxB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,CAAsC,GAAM,EAAE,IAAkB,EAAc,EAAE;IACrG,OAAO,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAQ,CAAA;AACnD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,CAAsC,GAAM,EAAE,IAAkB,EAAc,EAAE;IACrG,OAAO,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAQ,CAAA;AAClD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,GAAM,EACN,IAAkB,EAC2B,EAAE;IAC/C,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC9B,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YACvB,iDAAiD;YACjD,OAAO,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;YACvB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA;QAC5B,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC,EAAE;QACD,OAAO,EAAE,EAAE,GAAG,GAAG,EAAgB;QACjC,MAAM,EAAE,EAAgB;KACzB,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,MAAc,EAAE,MAAc,EAAE,EAAE;IAC1D,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAA;IAC1C,OAAO,MAAM,GAAG,MAAM,CAAA;AACxB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,2BAA2B,GAAG,GAAG,EAAE,CAC9C,IAAI,QAAQ,CAAC,IAAI,EAAE;IACjB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,IAAI;IAC5C,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,WAAW;CACxD,CAAC,CAAA;AAEJ;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,KAAa,EACb,SAA0C;IAE1C,MAAM,kBAAkB,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACpE,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;QACxD,IAAI,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;YACnB,MAAM,KAAK,GAAG,MAA6C,CAAA;YAC3D,KAAK,CAAC,OAAO,GAAG,EAAE,IAAI,EAAE,CAAA;YACxB,OAAO,KAAK,CAAA;QACd,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;IAC7B,OAAO,kBAAyB,CAAA;AAClC,CAAC"}
1
+ {"version":3,"file":"kit-temp.js","sourceRoot":"","sources":["../../src/lib/kit-temp.ts"],"names":[],"mappings":"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"}