spliterator 1.5.1 → 1.6.0

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 (68) hide show
  1. package/README.md +18 -2
  2. package/out/index.d.ts +0 -2
  3. package/out/index.d.ts.map +1 -1
  4. package/out/index.js +0 -2
  5. package/out/index.js.map +1 -1
  6. package/out/lib/AsyncSpliterator.d.ts +92 -11
  7. package/out/lib/AsyncSpliterator.d.ts.map +1 -1
  8. package/out/lib/AsyncSpliterator.js +153 -81
  9. package/out/lib/AsyncSpliterator.js.map +1 -1
  10. package/out/lib/BufferController.d.ts +12 -0
  11. package/out/lib/BufferController.d.ts.map +1 -1
  12. package/out/lib/BufferController.js +22 -0
  13. package/out/lib/BufferController.js.map +1 -1
  14. package/out/lib/CSVSpliterator.d.ts +30 -24
  15. package/out/lib/CSVSpliterator.d.ts.map +1 -1
  16. package/out/lib/CSVSpliterator.js +83 -33
  17. package/out/lib/CSVSpliterator.js.map +1 -1
  18. package/out/lib/CharacterSequence.d.ts +5 -15
  19. package/out/lib/CharacterSequence.d.ts.map +1 -1
  20. package/out/lib/CharacterSequence.js +15 -49
  21. package/out/lib/CharacterSequence.js.map +1 -1
  22. package/out/lib/JSONSpliterator.js +1 -1
  23. package/out/lib/JSONSpliterator.js.map +1 -1
  24. package/out/lib/SlidingWindow.d.ts +1 -47
  25. package/out/lib/SlidingWindow.d.ts.map +1 -1
  26. package/out/lib/SlidingWindow.js +0 -114
  27. package/out/lib/SlidingWindow.js.map +1 -1
  28. package/out/lib/Spliterator.d.ts +55 -5
  29. package/out/lib/Spliterator.d.ts.map +1 -1
  30. package/out/lib/Spliterator.js +138 -41
  31. package/out/lib/Spliterator.js.map +1 -1
  32. package/out/lib/shared.d.ts +21 -9
  33. package/out/lib/shared.d.ts.map +1 -1
  34. package/out/lib/shared.js +6 -6
  35. package/out/lib/shared.js.map +1 -1
  36. package/out/node/cli/commands/csv.d.ts +44 -0
  37. package/out/node/cli/commands/csv.d.ts.map +1 -0
  38. package/out/node/cli/commands/csv.js +78 -0
  39. package/out/node/cli/commands/csv.js.map +1 -0
  40. package/out/node/cli/commands/iterate.d.ts +37 -0
  41. package/out/node/cli/commands/iterate.d.ts.map +1 -0
  42. package/out/node/cli/commands/iterate.js +54 -0
  43. package/out/node/cli/commands/iterate.js.map +1 -0
  44. package/out/node/cli/index.d.ts +9 -0
  45. package/out/node/cli/index.d.ts.map +1 -0
  46. package/out/node/cli/index.js +34 -0
  47. package/out/node/cli/index.js.map +1 -0
  48. package/out/node/cli/utils.d.ts +52 -0
  49. package/out/node/cli/utils.d.ts.map +1 -0
  50. package/out/node/cli/utils.js +70 -0
  51. package/out/node/cli/utils.js.map +1 -0
  52. package/out/node/fs/index.d.ts +58 -0
  53. package/out/node/fs/index.d.ts.map +1 -0
  54. package/out/node/fs/index.js +142 -0
  55. package/out/node/fs/index.js.map +1 -0
  56. package/package.json +9 -4
  57. package/out/lib/DelimitedChunkReader.d.ts +0 -67
  58. package/out/lib/DelimitedChunkReader.d.ts.map +0 -1
  59. package/out/lib/DelimitedChunkReader.js +0 -113
  60. package/out/lib/DelimitedChunkReader.js.map +0 -1
  61. package/out/lib/DelimiterTransformer.d.ts +0 -27
  62. package/out/lib/DelimiterTransformer.d.ts.map +0 -1
  63. package/out/lib/DelimiterTransformer.js +0 -26
  64. package/out/lib/DelimiterTransformer.js.map +0 -1
  65. package/out/lib/node/fs.d.ts +0 -98
  66. package/out/lib/node/fs.d.ts.map +0 -1
  67. package/out/lib/node/fs.js +0 -162
  68. package/out/lib/node/fs.js.map +0 -1
@@ -89,5 +89,27 @@ export class BufferController {
89
89
  }
90
90
  return this.bytes.subarray(begin, end);
91
91
  }
92
+ /**
93
+ * Sets a value or an array of values.
94
+ *
95
+ * Unlike the `TypedArray.set` method, this method will grow the buffer if the offset is greater
96
+ * than the current byte length.
97
+ *
98
+ * @param array — A typed or untyped array of values to set.
99
+ * @param offset — The index in the current array at which the values are to be written.
100
+ *
101
+ * @returns The number of bytes written.
102
+ */
103
+ set(array, offset = 0) {
104
+ const nextLength = offset + array.length;
105
+ if (nextLength > this.bytes.length) {
106
+ this.grow(nextLength);
107
+ }
108
+ this.bytes.set(array, offset);
109
+ if (nextLength > this.bytesWritten) {
110
+ this.bytesWritten = nextLength;
111
+ }
112
+ return nextLength;
113
+ }
92
114
  }
93
115
  //# sourceMappingURL=BufferController.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BufferController.js","sourceRoot":"","sources":["../../lib/BufferController.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,OAAO,gBAAgB;IAC5B;;OAEG;IACH,kBAAkB,CAAQ;IAE1B;;;;OAIG;IACH,KAAK,CAAY;IAEjB;;;;OAIG;IACH,YAAY,CAAQ;IAEpB;;OAEG;IACH,IAAW,iBAAiB;QAC3B,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAA;IAC5D,CAAC;IAED,YAAY,IAAmC;QAC9C,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,iBAAiB,CAAA;QAChD,IAAI,CAAC,KAAK,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;QACpD,IAAI,CAAC,YAAY,GAAG,CAAC,CAAA;IACtB,CAAC;IAED;;OAEG;IACI,IAAI,CAAC,iBAA0B;QACrC,iBAAiB,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAA;QAE3C,IAAI,iBAAiB,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,OAAM;QAElD,2FAA2F;QAC3F,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,iBAAiB,CAAC,CAAA;QAElD,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAExB,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAA;IACtB,CAAC;IAED;;;;;;;;OAQG;IACI,QAAQ,CAAC,QAAgB,CAAC,EAAE,GAAY;QAC9C,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAC3D,MAAM,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,GAAG,KAAK,CAAC,CAAA;QAErE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QAE5C,IAAI,CAAC,YAAY,GAAG,oBAAoB,CAAA;IACzC,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,QAAgB,CAAC,EAAE,MAAc,IAAI,CAAC,YAAY;QAC9D,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;QAC9B,IAAI,CAAC,YAAY,GAAG,CAAC,CAAA;IACtB,CAAC;IAED;;;;;;;;OAQG;IACI,QAAQ,CAAC,QAAgB,CAAC,EAAE,MAAc,IAAI,CAAC,YAAY;QACjE,IAAI,KAAK,GAAG,GAAG,EAAE,CAAC;YACjB,MAAM,IAAI,UAAU,CAAC,eAAe,KAAK,8BAA8B,GAAG,GAAG,CAAC,CAAA;QAC/E,CAAC;QAED,IAAI,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YAC7B,MAAM,IAAI,UAAU,CAAC,aAAa,GAAG,4CAA4C,IAAI,CAAC,YAAY,GAAG,CAAC,CAAA;QACvG,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;IACvC,CAAC;CACD"}
1
+ {"version":3,"file":"BufferController.js","sourceRoot":"","sources":["../../lib/BufferController.ts"],"names":[],"mappings":"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"}
@@ -4,15 +4,18 @@
4
4
  * @author Teffen Ellis, et al.
5
5
  */
6
6
  import { CharacterSequenceInput } from "./CharacterSequence.js";
7
- import { AsyncDataResource } from "./shared.js";
7
+ import { AsyncChunkIterator, AsyncDataResource } from "./shared.js";
8
8
  import { AsyncSpliteratorInit, SpliteratorInit } from "./Spliterator.js";
9
9
  /**
10
10
  * An output mode for the CSV generator.
11
11
  */
12
12
  export type CSVOutputMode = "array" | "object" | "entries";
13
- export type CSVEmitter<T = unknown> = (columns: Iterable<string>, headerColumns?: Iterable<string>) => T;
14
- export type CSVSpliteratorEmittedRecord = {
15
- [key: string]: string | number | undefined;
13
+ export type CSVTransformer<T = unknown> = (value: string) => T;
14
+ export type CSVTransformerEntry<T = unknown> = [columnName: string, transformer: CSVTransformer<T>];
15
+ export type CSVTransformerRecord = Record<string, CSVTransformer | undefined>;
16
+ export type CSVEmitter<T = unknown> = (columns: Iterable<string>, headerColumns?: Iterable<CSVTransformerEntry>) => T;
17
+ export type CSVSpliteratorEmittedRecord<V = string | number | undefined> = {
18
+ [key: string]: V;
16
19
  };
17
20
  /**
18
21
  * A row emitted by the CSV generator, as a 3-tuple:
@@ -21,13 +24,13 @@ export type CSVSpliteratorEmittedRecord = {
21
24
  * - The value of the column.
22
25
  * - The index of the row.
23
26
  */
24
- export type RowTuple = [key: string, value: string | number, idx: number];
27
+ export type RowTuple<V = string | number> = [key: string, value: V, idx: number];
25
28
  export declare const CSVSpliteratorEmitters: {
26
29
  readonly array: null;
27
- readonly entries: (columns: Iterable<string>, headerColumns?: Iterable<string>) => RowTuple[];
28
- readonly object: (columns: Iterable<string>, headerColumns?: Iterable<string>) => CSVSpliteratorEmittedRecord;
30
+ readonly entries: (columns: Iterable<string>, headerColumns?: Iterable<CSVTransformerEntry>) => RowTuple<unknown>[];
31
+ readonly object: (columns: Iterable<string>, headerColumns?: Iterable<CSVTransformerEntry>) => CSVSpliteratorEmittedRecord<unknown>;
29
32
  };
30
- export interface CSVSpliteratorOptions {
33
+ export interface CSVSpliteratorInit extends SpliteratorInit {
31
34
  /**
32
35
  * The mode determines the shape of the data emitted by the generator.
33
36
  *
@@ -55,24 +58,17 @@ export interface CSVSpliteratorOptions {
55
58
  * @default true
56
59
  */
57
60
  header?: boolean;
58
- /**
59
- * How many rows to skip before emitting data.
60
- *
61
- * This is useful for skipping headers or other metadata.
62
- *
63
- * Defaults to 1 if `header` is true, otherwise 0.
64
- */
65
- skip?: number;
61
+ transformers?: Iterable<CSVTransformerEntry> | CSVTransformerRecord;
66
62
  }
67
63
  export declare abstract class CSVSpliterator {
68
64
  constructor();
69
- static from<T extends CSVSpliteratorEmittedRecord = CSVSpliteratorEmittedRecord>(source: CharacterSequenceInput, options: CSVSpliteratorOptions & SpliteratorInit & {
65
+ static from<T extends CSVSpliteratorEmittedRecord = CSVSpliteratorEmittedRecord>(source: CharacterSequenceInput, options?: CSVSpliteratorInit & {
70
66
  mode: "object";
71
67
  }): Generator<T>;
72
68
  /**
73
69
  * @yields Each row as a 3-tuple [key, value, idx].
74
70
  */
75
- static from<T extends RowTuple[] = RowTuple[]>(source: CharacterSequenceInput, options: CSVSpliteratorOptions & SpliteratorInit & {
71
+ static from<T extends RowTuple[] = RowTuple[]>(source: CharacterSequenceInput, options?: CSVSpliteratorInit & {
76
72
  mode: "entries";
77
73
  }): Generator<T>;
78
74
  /**
@@ -80,25 +76,35 @@ export declare abstract class CSVSpliterator {
80
76
  *
81
77
  * @yields Each row as an array of columns.
82
78
  */
83
- static from<T extends string[] = string[]>(source: CharacterSequenceInput, options: CSVSpliteratorOptions & SpliteratorInit & {
79
+ static from<T extends string[] = string[]>(source: CharacterSequenceInput, options?: CSVSpliteratorInit & {
84
80
  mode?: "array";
85
81
  }): Generator<T>;
86
- static fromAsync<T extends CSVSpliteratorEmittedRecord = CSVSpliteratorEmittedRecord>(source: AsyncDataResource, options?: CSVSpliteratorOptions & AsyncSpliteratorInit & {
82
+ /**
83
+ * @yields Each row as an object with the header names as keys.
84
+ */
85
+ static fromAsync<T extends CSVSpliteratorEmittedRecord = CSVSpliteratorEmittedRecord>(source: AsyncDataResource | AsyncChunkIterator, options?: CSVSpliteratorInit & AsyncSpliteratorInit & {
87
86
  mode: "object";
88
87
  }): AsyncGenerator<T>;
89
88
  /**
90
89
  * @yields Each row as a 3-tuple [key, value, idx].
91
90
  */
92
- static fromAsync<T extends RowTuple[] = RowTuple[]>(source: AsyncDataResource, options?: CSVSpliteratorOptions & AsyncSpliteratorInit & {
91
+ static fromAsync<T extends RowTuple[] = RowTuple[]>(source: AsyncDataResource | AsyncChunkIterator, options?: CSVSpliteratorInit & AsyncSpliteratorInit & {
93
92
  mode: "entries";
94
93
  }): AsyncGenerator<T>;
95
94
  /**
96
- * Given a byte array or string, yield each row as an array of columns.
97
- *
98
95
  * @yields Each row as an array of columns.
99
96
  */
100
- static fromAsync<T extends string[] = string[]>(source: AsyncDataResource, options?: CSVSpliteratorOptions & AsyncSpliteratorInit & {
97
+ static fromAsync<T extends string[] = string[]>(source: AsyncDataResource | AsyncChunkIterator, options?: CSVSpliteratorInit & AsyncSpliteratorInit & {
101
98
  mode?: "array";
102
99
  }): AsyncGenerator<T>;
100
+ /**
101
+ * Given an asychronous data source, splits the data by rows(usually by newline) and then by
102
+ * columns (usually by comma).
103
+ *
104
+ * @param source The data source to split.
105
+ * @param init Options for the spliterator.
106
+ * @yields Each row, shaped according to the `mode` option.
107
+ */
108
+ static fromAsync(source: AsyncDataResource | AsyncChunkIterator, init?: CSVSpliteratorInit & AsyncSpliteratorInit): AsyncGenerator<unknown>;
103
109
  }
104
110
  //# sourceMappingURL=CSVSpliterator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CSVSpliterator.d.ts","sourceRoot":"","sources":["../../lib/CSVSpliterator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CSVSpliterator.d.ts","sourceRoot":"","sources":["../../lib/CSVSpliterator.ts"],"names":[],"mappings":"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"}
@@ -4,18 +4,26 @@
4
4
  * @author Teffen Ellis, et al.
5
5
  */
6
6
  import { normalizeColumnNames } from "./casing.js";
7
- import { CharacterSequence, Delimiters, takeDelimited } from "./CharacterSequence.js";
7
+ import { CharacterSequence, Delimiters } from "./CharacterSequence.js";
8
8
  import { zipSync } from "./shared.js";
9
9
  import { Spliterator } from "./Spliterator.js";
10
+ const identity = (value) => value;
10
11
  export const CSVSpliteratorEmitters = {
11
12
  array: null,
12
13
  entries(columns, headerColumns = []) {
13
- return Array.from(zipSync(headerColumns, columns), ([key, value], idx) => {
14
- return [key ?? `column_${idx}`, value ?? "", idx];
14
+ return Array.from(zipSync(headerColumns, columns), ([transformer, value], idx) => {
15
+ const key = transformer?.[0];
16
+ const transform = transformer?.[1] ?? identity;
17
+ return [key ?? `column_${idx}`, transform(value ?? ""), idx];
15
18
  });
16
19
  },
17
20
  object(columns, headerColumns = []) {
18
- const record = Object.fromEntries(Array.from(zipSync(headerColumns, columns)));
21
+ const record = {};
22
+ for (const [transformer, value, idx] of zipSync(headerColumns, columns)) {
23
+ const key = transformer?.[0] ?? `column_${idx}`;
24
+ const transform = transformer?.[1] ?? identity;
25
+ record[key] = transform(value ?? "");
26
+ }
19
27
  return record;
20
28
  },
21
29
  };
@@ -28,55 +36,97 @@ export class CSVSpliterator {
28
36
  *
29
37
  * @yields Each row as an array of columns.
30
38
  */
31
- static *from(source, options = {}) {
39
+ static *from(source, init = {}) {
32
40
  const {
33
41
  // ---
34
- header = true, skip = header ? 1 : 0, normalizeKeys, mode = "array", columnDelimiter: columnDelimiterInput = Delimiters.Comma, ...rowOptions } = options;
35
- let headerColumns = [];
42
+ header = true, transformers: transformersInput = [], normalizeKeys, mode = "array", columnDelimiter: columnDelimiterInput = Delimiters.Comma, take = Infinity, drop = 0, ...rowInit } = init;
36
43
  const emitter = CSVSpliteratorEmitters[mode];
37
- let rowCursor = 0;
44
+ let transformers = [];
45
+ let yieldCount = 0;
46
+ const yieldLimit = take + drop;
38
47
  const decoder = new TextDecoder();
39
- const columnDelimiter = new CharacterSequence(columnDelimiterInput);
40
- const spliterator = Spliterator.from(source, rowOptions);
41
- for (const row of spliterator) {
42
- let columns = Array.from(takeDelimited(row, columnDelimiter), (column) => decoder.decode(column));
43
- if (header && rowCursor === 0) {
44
- headerColumns = normalizeKeys ? normalizeColumnNames(columns) : columns;
45
- columns = headerColumns;
48
+ const columnDelimiter = new CharacterSequence(columnDelimiterInput ?? Delimiters.Comma);
49
+ const columnSpliteratorInit = { delimiter: columnDelimiter };
50
+ const rows = Spliterator.from(source, rowInit);
51
+ if (header) {
52
+ const result = rows.next();
53
+ if (result.done)
54
+ return;
55
+ const columns = new Spliterator(result.value, columnSpliteratorInit).toDecodedArray(decoder);
56
+ const headers = normalizeKeys ? normalizeColumnNames(columns) : columns;
57
+ if (Array.isArray(transformersInput)) {
58
+ transformers = Array.from(zipSync(headers, transformersInput), ([columnName, transformer]) => [
59
+ columnName,
60
+ transformer ?? identity,
61
+ ]);
46
62
  }
47
- if (skip && rowCursor < skip) {
48
- rowCursor++;
63
+ else {
64
+ transformers = headers.map((columnName) => {
65
+ const transform = transformersInput[columnName] || identity;
66
+ return [columnName, transform];
67
+ });
68
+ }
69
+ }
70
+ for (const row of rows) {
71
+ if (yieldCount < drop) {
72
+ yieldCount++;
49
73
  continue;
50
74
  }
51
- yield emitter ? emitter(columns, headerColumns) : columns;
75
+ if (yieldCount >= yieldLimit)
76
+ break;
77
+ const columns = new Spliterator(row, columnSpliteratorInit).toDecodedArray(decoder);
78
+ yield emitter ? emitter(columns, transformers) : columns;
52
79
  }
53
80
  }
54
81
  /**
55
- * Given a byte array or string, yield each row as an array of columns.
82
+ * Given an asychronous data source, splits the data by rows (usually by newline) and then by
83
+ * columns (usually by comma).
56
84
  *
57
- * @yields Each row as an array of columns.
85
+ * @param source The data source to split.
86
+ * @param init Options for the spliterator.
87
+ * @yields Each row, shaped according to the `mode` option.
58
88
  */
59
- static async *fromAsync(source, options = {}) {
89
+ static async *fromAsync(source, init = {}) {
60
90
  const {
61
91
  // ---
62
- header = true, skip = header ? 1 : 0, mode = "array", normalizeKeys = mode !== "array", columnDelimiter: columnDelimiterInput, ...rowOptions } = options;
63
- let headerColumns = [];
92
+ header = true, mode = "array", transformers: transformersInput = [], normalizeKeys = mode !== "array", columnDelimiter: columnDelimiterInput, take = Infinity, drop = 0, ...rowInit } = init;
64
93
  const emitter = CSVSpliteratorEmitters[mode];
65
- let rowCursor = 0;
94
+ let transformers = [];
95
+ let yieldCount = 0;
96
+ const yieldLimit = take + drop;
66
97
  const columnDelimiter = new CharacterSequence(columnDelimiterInput ?? Delimiters.Comma);
98
+ const columnSpliteratorInit = { delimiter: columnDelimiter };
67
99
  const decoder = new TextDecoder();
68
- const splitter = await Spliterator.fromAsync(source, rowOptions);
69
- for await (const row of splitter) {
70
- let columns = Array.from(takeDelimited(row, columnDelimiter), (column) => decoder.decode(column));
71
- if (header && rowCursor === 0) {
72
- headerColumns = normalizeKeys ? normalizeColumnNames(columns) : columns;
73
- columns = headerColumns;
100
+ const rows = await Spliterator.from(source, rowInit);
101
+ if (header) {
102
+ const result = await rows.next();
103
+ if (result.done)
104
+ return;
105
+ const columns = new Spliterator(result.value, columnSpliteratorInit).toDecodedArray(decoder);
106
+ const headers = normalizeKeys ? normalizeColumnNames(columns) : columns;
107
+ if (Array.isArray(transformersInput)) {
108
+ transformers = Array.from(zipSync(headers, transformersInput), ([columnName, transformer]) => [
109
+ columnName,
110
+ transformer ?? identity,
111
+ ]);
74
112
  }
75
- if (skip && rowCursor < skip) {
76
- rowCursor++;
113
+ else {
114
+ transformers = headers.map((columnName) => {
115
+ const transform = transformersInput[columnName] || identity;
116
+ return [columnName, transform];
117
+ });
118
+ }
119
+ }
120
+ for await (const row of rows) {
121
+ if (yieldCount < drop) {
122
+ yieldCount++;
77
123
  continue;
78
124
  }
79
- yield emitter ? emitter(columns, headerColumns) : columns;
125
+ if (yieldCount >= yieldLimit)
126
+ break;
127
+ const columns = new Spliterator(row, columnSpliteratorInit).toDecodedArray(decoder);
128
+ yield emitter ? emitter(columns, transformers) : columns;
129
+ yieldCount++;
80
130
  }
81
131
  }
82
132
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CSVSpliterator.js","sourceRoot":"","sources":["../../lib/CSVSpliterator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CSVSpliterator.js","sourceRoot":"","sources":["../../lib/CSVSpliterator.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,6 @@
3
3
  * @license AGPL-3.0
4
4
  * @author Teffen Ellis, et al.
5
5
  */
6
- import { TypedArray } from "./shared.js";
7
6
  /**
8
7
  * Type-predicate to determine if a value is an array-like object.
9
8
  */
@@ -17,7 +16,7 @@ export declare function isArrayLike<T>(input: unknown): input is ArrayLike<T>;
17
16
  * - A buffer.
18
17
  * - An iterable of character codes.
19
18
  */
20
- export type CharacterSequenceInput = number | string | Uint8Array | Buffer | Iterable<number>;
19
+ export type CharacterSequenceInput = number | string | DataView | ArrayBuffer | Buffer | Iterable<number>;
21
20
  /**
22
21
  * Common delimiter values.
23
22
  */
@@ -78,26 +77,17 @@ export declare class CharacterSequence extends Uint8Array {
78
77
  /**
79
78
  * Perform a Boyer-Moore-Horspool search for the pattern in the text.
80
79
  *
81
- * @param text The encoded text to search.
80
+ * @param haystack The encoded text to search.
82
81
  * @param start The byte index to start searching from.
82
+ * @param end The byte index to stop searching at.
83
83
  *
84
84
  * @returns The byte index of the pattern in the text, or -1 if not found.
85
85
  */
86
- search(text: Uint8Array, start?: number): number;
86
+ search(haystack: Uint8Array, start?: number, end?: number): number;
87
+ decode(encoding?: string): string;
87
88
  /**
88
89
  * Create a new character sequence from a delimiter.
89
90
  */
90
91
  constructor(input?: CharacterSequenceInput);
91
92
  }
92
- /**
93
- * Given a delimited line, split it into fields using the specified separator.
94
- *
95
- * Unlike `String.prototype.split`, this function correctly handles fields that contain the
96
- * separator character within double quotes.
97
- *
98
- * @param source The line to split.
99
- * @param needle The character that separates fields.
100
- * @yields Each field in the line.
101
- */
102
- export declare function takeDelimited<T extends TypedArray | string>(source: T, needle?: Uint8Array): Generator<Uint8Array | Uint8ClampedArray | Uint16Array | Uint32Array | Int8Array | Int16Array | Int32Array | BigUint64Array | BigInt64Array | Float32Array | Float64Array, void, unknown>;
103
93
  //# sourceMappingURL=CharacterSequence.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CharacterSequence.d.ts","sourceRoot":"","sources":["../../lib/CharacterSequence.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC;;GAEG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,SAAS,CAAC,CAAC,CAAC,CAEpE;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAA;AAE7F;;GAEG;AACH,eAAO,MAAM,UAAU;IACtB;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;CAEuC,CAAA;AAE3C,eAAO,MAAM,mBAAmB,qBAS9B,CAAA;AAEF,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,UAAU,GAAG,MAAM,CAQtE;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,sBAAsB,GAAG,UAAU,CAwBjF;AAED;;;;;;GAMG;AACH,qBAAa,iBAAkB,SAAQ,UAAU;;IAMhD;;;;;;;OAOG;IACI,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,GAAE,MAAU,GAAG,MAAM;IAwB1D;;OAEG;gBACS,KAAK,GAAE,sBAA4C;CAY/D;AAID;;;;;;;;;GASG;AACH,wBAAiB,aAAa,CAAC,CAAC,SAAS,UAAU,GAAG,MAAM,EAC3D,MAAM,EAAE,CAAC,EACT,MAAM,GAAE,UAAuC,6LAkC/C"}
1
+ {"version":3,"file":"CharacterSequence.d.ts","sourceRoot":"","sources":["../../lib/CharacterSequence.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,SAAS,CAAC,CAAC,CAAC,CAEpE;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAA;AAEzG;;GAEG;AACH,eAAO,MAAM,UAAU;IACtB;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;CAEuC,CAAA;AAE3C,eAAO,MAAM,mBAAmB,qBAS9B,CAAA;AAEF,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,UAAU,GAAG,MAAM,CAQtE;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,sBAAsB,GAAG,UAAU,CAwBjF;AAED;;;;;;GAMG;AACH,qBAAa,iBAAkB,SAAQ,UAAU;;IAMhD;;;;;;;;OAQG;IACI,MAAM,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,GAAE,MAAU,EAAE,GAAG,SAAkB,GAAG,MAAM;IAuB9E,MAAM,CAAC,QAAQ,GAAE,MAAgB,GAAG,MAAM;IAIjD;;OAEG;gBACS,KAAK,GAAE,sBAA4C;CAY/D"}
@@ -108,29 +108,32 @@ export class CharacterSequence extends Uint8Array {
108
108
  /**
109
109
  * Perform a Boyer-Moore-Horspool search for the pattern in the text.
110
110
  *
111
- * @param text The encoded text to search.
111
+ * @param haystack The encoded text to search.
112
112
  * @param start The byte index to start searching from.
113
+ * @param end The byte index to stop searching at.
113
114
  *
114
115
  * @returns The byte index of the pattern in the text, or -1 if not found.
115
116
  */
116
- search(text, start = 0) {
117
- const n = text.length;
118
- const m = this.length;
119
- let i = start;
120
- while (i <= n - m) {
121
- let j = m - 1;
117
+ search(haystack, start = 0, end = haystack.length) {
118
+ const sequenceLength = this.length;
119
+ let startIndex = start;
120
+ while (startIndex <= end - sequenceLength) {
121
+ let lastIndex = sequenceLength - 1;
122
122
  // Match pattern from right to left
123
- while (j >= 0 && this[j] === text[i + j]) {
124
- j--;
123
+ while (lastIndex >= 0 && this[lastIndex] === haystack[startIndex + lastIndex]) {
124
+ lastIndex--;
125
125
  }
126
126
  // Pattern found
127
- if (j < 0)
128
- return i;
127
+ if (lastIndex < 0)
128
+ return startIndex;
129
129
  // Jump based on the last character in the window
130
- i += this.#skipIndex[text[i + m - 1]];
130
+ startIndex += this.#skipIndex[haystack[startIndex + sequenceLength - 1]];
131
131
  }
132
132
  return -1;
133
133
  }
134
+ decode(encoding = "utf-8") {
135
+ return new TextDecoder(encoding).decode(this);
136
+ }
134
137
  /**
135
138
  * Create a new character sequence from a delimiter.
136
139
  */
@@ -144,41 +147,4 @@ export class CharacterSequence extends Uint8Array {
144
147
  }
145
148
  }
146
149
  }
147
- const encoder = new TextEncoder();
148
- /**
149
- * Given a delimited line, split it into fields using the specified separator.
150
- *
151
- * Unlike `String.prototype.split`, this function correctly handles fields that contain the
152
- * separator character within double quotes.
153
- *
154
- * @param source The line to split.
155
- * @param needle The character that separates fields.
156
- * @yields Each field in the line.
157
- */
158
- export function* takeDelimited(source, needle = new CharacterSequence(",")) {
159
- const haystack = (typeof source === "string" ? encoder.encode(source) : source);
160
- const contentDelimiters = [];
161
- let doubleQuoteCount = 0;
162
- // First, we traverse the line to find the field delimiters...
163
- for (let byteIndex = 0; byteIndex < haystack.byteLength; byteIndex++) {
164
- const byte = haystack[byteIndex];
165
- if (byte === Delimiters.DoubleQuote) {
166
- doubleQuoteCount++;
167
- }
168
- // TODO: handle escaped double quotes
169
- // TODO: handle delimiters with a length greater than 1
170
- if (byte === needle[0] && doubleQuoteCount % 2 === 0) {
171
- contentDelimiters.push(byteIndex);
172
- }
173
- }
174
- // Now, we slice the line into fields.
175
- let sliceStart = 0;
176
- for (let delimiterIndex = 0; delimiterIndex < contentDelimiters.length; delimiterIndex++) {
177
- const sliceEnd = contentDelimiters[delimiterIndex];
178
- yield haystack.subarray(sliceStart, sliceEnd);
179
- sliceStart = sliceEnd + 1;
180
- }
181
- // Finally, our last slice is the remainder of the line.
182
- yield haystack.subarray(sliceStart);
183
- }
184
150
  //# sourceMappingURL=CharacterSequence.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CharacterSequence.js","sourceRoot":"","sources":["../../lib/CharacterSequence.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CharacterSequence.js","sourceRoot":"","sources":["../../lib/CharacterSequence.ts"],"names":[],"mappings":"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"}
@@ -35,7 +35,7 @@ export class JSONSpliterator {
35
35
  static async *fromAsync(source, options = {}) {
36
36
  const decoder = new TextDecoder();
37
37
  let rowCursor = 0;
38
- const spliterator = await Spliterator.fromAsync(source, options);
38
+ const spliterator = await Spliterator.from(source, options);
39
39
  for await (const row of spliterator) {
40
40
  let parsed;
41
41
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"JSONSpliterator.js","sourceRoot":"","sources":["../../lib/JSONSpliterator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAwB,WAAW,EAAmB,MAAM,kBAAkB,CAAA;AAErF,MAAM,OAAgB,eAAe;IACpC;QACC,MAAM,IAAI,SAAS,CAAC,2EAA2E,CAAC,CAAA;IACjG,CAAC;IAED,MAAM,CAAC,CAAC,IAAI,CAAc,MAA8B,EAAE,UAA2B,EAAE;QACtF,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;QACjC,IAAI,SAAS,GAAG,CAAC,CAAA;QAEjB,MAAM,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QAErD,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;YAC/B,IAAI,MAAS,CAAA;YAEb,IAAI,CAAC;gBACJ,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;gBAEnC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAM,CAAA;YAClC,CAAC;YAAC,OAAO,WAAW,EAAE,CAAC;gBACtB,MAAM,KAAK,GAAG,WAAW,CAAC,+BAA+B,SAAS,EAAE,CAAC,CAAA;gBACrE,KAAK,CAAC,KAAK,GAAG,WAAW,CAAA;gBAEzB,MAAM,KAAK,CAAA;YACZ,CAAC;YAED,MAAM,MAAM,CAAA;YAEZ,SAAS,EAAE,CAAA;QACZ,CAAC;IACF,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAc,MAAyB,EAAE,UAAgC,EAAE;QACjG,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;QACjC,IAAI,SAAS,GAAG,CAAC,CAAA;QACjB,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QAEhE,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;YACrC,IAAI,MAAS,CAAA;YAEb,IAAI,CAAC;gBACJ,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;gBAEnC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAM,CAAA;YAClC,CAAC;YAAC,OAAO,WAAW,EAAE,CAAC;gBACtB,MAAM,KAAK,GAAG,WAAW,CAAC,+BAA+B,SAAS,EAAE,CAAC,CAAA;gBACrE,KAAK,CAAC,KAAK,GAAG,WAAW,CAAA;gBAEzB,MAAM,KAAK,CAAA;YACZ,CAAC;YAED,MAAM,MAAM,CAAA;YAEZ,SAAS,EAAE,CAAA;QACZ,CAAC;IACF,CAAC;CACD"}
1
+ {"version":3,"file":"JSONSpliterator.js","sourceRoot":"","sources":["../../lib/JSONSpliterator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAwB,WAAW,EAAmB,MAAM,kBAAkB,CAAA;AAErF,MAAM,OAAgB,eAAe;IACpC;QACC,MAAM,IAAI,SAAS,CAAC,2EAA2E,CAAC,CAAA;IACjG,CAAC;IAED,MAAM,CAAC,CAAC,IAAI,CAAc,MAA8B,EAAE,UAA2B,EAAE;QACtF,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;QACjC,IAAI,SAAS,GAAG,CAAC,CAAA;QAEjB,MAAM,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QAErD,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;YAC/B,IAAI,MAAS,CAAA;YAEb,IAAI,CAAC;gBACJ,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;gBAEnC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAM,CAAA;YAClC,CAAC;YAAC,OAAO,WAAW,EAAE,CAAC;gBACtB,MAAM,KAAK,GAAG,WAAW,CAAC,+BAA+B,SAAS,EAAE,CAAC,CAAA;gBACrE,KAAK,CAAC,KAAK,GAAG,WAAW,CAAA;gBAEzB,MAAM,KAAK,CAAA;YACZ,CAAC;YAED,MAAM,MAAM,CAAA;YAEZ,SAAS,EAAE,CAAA;QACZ,CAAC;IACF,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAc,MAAyB,EAAE,UAAgC,EAAE;QACjG,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;QACjC,IAAI,SAAS,GAAG,CAAC,CAAA;QACjB,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QAE3D,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;YACrC,IAAI,MAAS,CAAA;YAEb,IAAI,CAAC;gBACJ,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;gBAEnC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAM,CAAA;YAClC,CAAC;YAAC,OAAO,WAAW,EAAE,CAAC;gBACtB,MAAM,KAAK,GAAG,WAAW,CAAC,+BAA+B,SAAS,EAAE,CAAC,CAAA;gBACrE,KAAK,CAAC,KAAK,GAAG,WAAW,CAAA;gBAEzB,MAAM,KAAK,CAAA;YACZ,CAAC;YAED,MAAM,MAAM,CAAA;YAEZ,SAAS,EAAE,CAAA;QACZ,CAAC;IACF,CAAC;CACD"}
@@ -4,7 +4,7 @@
4
4
  * @author Teffen Ellis, et al.
5
5
  */
6
6
  import { CharacterSequenceInput } from "./CharacterSequence.js";
7
- import { ByteRange, FileResourceLike, TypedArray } from "./shared.js";
7
+ import { ByteRange, TypedArray } from "./shared.js";
8
8
  export interface SlidingWindowInit {
9
9
  /**
10
10
  * The delimiter to use. Defaults to a line feed.
@@ -44,50 +44,4 @@ export declare class SlidingWindow<T extends TypedArray> implements IterableIter
44
44
  next(): IteratorResult<ByteRange>;
45
45
  [Symbol.iterator](): IterableIterator<ByteRange>;
46
46
  }
47
- /**
48
- * Options for initializing an asynchronous sliding window.
49
- */
50
- export interface AsyncSlidingWindowInit extends SlidingWindowInit {
51
- /**
52
- * Whether to close the file handle when the iterator is completed or disposed.
53
- */
54
- autoClose?: boolean;
55
- }
56
- /**
57
- * An asynchronous sliding window that iterates over a file handle, yielding byte ranges.
58
- *
59
- * @see {@link SlidingWindow} for a synchronous version.
60
- */
61
- export declare class AsyncSlidingWindow implements AsyncIterableIterator<ByteRange>, AsyncDisposable {
62
- #private;
63
- /**
64
- * The current byte index of the sliding window.
65
- */
66
- cursor: number;
67
- /**
68
- * Given a byte array containing delimited data, yield a sliding window of indexes.
69
- *
70
- * This a low-level utility function that can be used to implement more complex parsing logic.
71
- */
72
- constructor(file: FileResourceLike, init: AsyncSlidingWindowInit);
73
- /**
74
- * Read the next byte range from the file handle.
75
- */
76
- next(): Promise<IteratorResult<ByteRange>>;
77
- /**
78
- * Read the previous byte range from the file handle.
79
- *
80
- * This is useful for backtracking in the event that a delimiter is split across two windows.
81
- */
82
- previous(): Promise<IteratorResult<ByteRange>>;
83
- /**
84
- * Given a collection of sliding windows, iterate over them and coalesce adjacent windows.
85
- *
86
- * @yields Each coalesced window.
87
- */
88
- static collect(slidingWindows: AsyncSlidingWindow[]): AsyncGenerator<ByteRange[]>;
89
- [Symbol.asyncDispose](): Promise<void>;
90
- dispose(): Promise<void>;
91
- [Symbol.asyncIterator](): AsyncIterableIterator<ByteRange>;
92
- }
93
47
  //# sourceMappingURL=SlidingWindow.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SlidingWindow.d.ts","sourceRoot":"","sources":["../../lib/SlidingWindow.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAqB,sBAAsB,EAAE,MAAM,wBAAwB,CAAA;AAClF,OAAO,EAAuB,SAAS,EAAmB,gBAAgB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAE3G,MAAM,WAAW,iBAAiB;IACjC;;OAEG;IACH,SAAS,CAAC,EAAE,sBAAsB,CAAA;IAElC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;;;GAIG;AACH,qBAAa,aAAa,CAAC,CAAC,SAAS,UAAU,CAAE,YAAW,gBAAgB,CAAC,SAAS,CAAC;;IACtF,MAAM,EAAE,CAAC,CAAA;IAKT;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;IAEd;;;;OAIG;;IAEF;;OAEG;IACH,MAAM,EAAE,CAAC,EACT,IAAI,GAAE,iBAAsB;IAQtB,IAAI,IAAI,cAAc,CAAC,SAAS,CAAC;IA8BjC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC,SAAS,CAAC;CAGvD;AAED;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,iBAAiB;IAChE;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;;;GAIG;AACH,qBAAa,kBAAmB,YAAW,qBAAqB,CAAC,SAAS,CAAC,EAAE,eAAe;;IAO3F;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;IAEd;;;;OAIG;gBACS,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,sBAAsB;IAUhE;;OAEG;IACU,IAAI,IAAI,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IAqCvD;;;;OAIG;IACU,QAAQ,IAAI,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IAuB3D;;;;OAIG;WACW,OAAO,CAAC,cAAc,EAAE,kBAAkB,EAAE,GAAG,cAAc,CAAC,SAAS,EAAE,CAAC;IAyB3E,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC;IAM5C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxB,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,qBAAqB,CAAC,SAAS,CAAC;CAGjE"}
1
+ {"version":3,"file":"SlidingWindow.d.ts","sourceRoot":"","sources":["../../lib/SlidingWindow.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAqB,sBAAsB,EAAE,MAAM,wBAAwB,CAAA;AAClF,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAEnD,MAAM,WAAW,iBAAiB;IACjC;;OAEG;IACH,SAAS,CAAC,EAAE,sBAAsB,CAAA;IAElC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;;;GAIG;AACH,qBAAa,aAAa,CAAC,CAAC,SAAS,UAAU,CAAE,YAAW,gBAAgB,CAAC,SAAS,CAAC;;IACtF,MAAM,EAAE,CAAC,CAAA;IAKT;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;IAEd;;;;OAIG;;IAEF;;OAEG;IACH,MAAM,EAAE,CAAC,EACT,IAAI,GAAE,iBAAsB;IAQtB,IAAI,IAAI,cAAc,CAAC,SAAS,CAAC;IA8BjC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC,SAAS,CAAC;CAGvD"}