@chunkd/source 11.0.0 → 11.2.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.
package/README.md CHANGED
@@ -5,7 +5,7 @@ Base interface for all sources used by `@chunkd`
5
5
  ````typescript
6
6
  export interface Source {
7
7
  /**
8
- * human friendly name of the source type
8
+ * human friendly name of the source type
9
9
  * @example "aws:s3", "file", "memory"
10
10
  */
11
11
  type: string;
@@ -23,6 +23,9 @@ export interface Source {
23
23
  /** Read the metadata before a fetch request */
24
24
  head(): Promise<SourceMetadata>;
25
25
 
26
+ /** close the source, sources like files sometimes have open file handles that need to be closed */
27
+ close?(): Promise<void>;
28
+
26
29
  /**
27
30
  * Directly read bytes from the source
28
31
  *
@@ -1 +1 @@
1
- {"version":3,"file":"range.test.js","sourceRoot":"","sources":["../../../src/__test__/range.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,cAAc,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,CAAC,EAAE,KAAK,CAAC,CAAC;QAClE,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;QACzD,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"range.test.js","sourceRoot":"","sources":["../../../src/__test__/range.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,cAAc,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,CAAC,EAAE,KAAK,CAAC,CAAC;QAClE,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;QACzD,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -12,7 +12,7 @@ export class SourceError extends Error {
12
12
  this.source = source;
13
13
  /** Helper to determine if this class is a SourceError, useful for when `instanceof` fails */
14
14
  Object.defineProperty(this, '_sourceError', {
15
- enumerable: false,
15
+ enumerable: false, // hide it from for..in
16
16
  value: 'SourceError',
17
17
  });
18
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/error.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,WAAY,SAAQ,KAAK;IACpC,oEAAoE;IAC3D,IAAI,CAAS;IACtB,yCAAyC;IAChC,GAAG,CAAM;IAClB,2CAA2C;IAClC,MAAM,CAAS;IAExB,YAAY,GAAW,EAAE,IAAY,EAAE,MAAc,EAAE,KAAe;QACpE,KAAK,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,6FAA6F;QAC7F,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,cAAc,EAAE;YAC1C,UAAU,EAAE,KAAK;YACjB,KAAK,EAAE,aAAa;SACrB,CAAC,CAAC;IACL,CAAC;IAED,wCAAwC;IACxC,MAAM,CAAC,EAAE,CAAC,CAAU;QAClB,IAAI,CAAC,YAAY,WAAW;YAAE,OAAO,IAAI,CAAC;QAC1C,gFAAgF;QAChF,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QACxC,IAAI,CAAC,IAAI,IAAI;YAAE,OAAO,KAAK,CAAC;QAC5B,OAAO,cAAc,IAAI,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,KAAK,aAAa,CAAC;IACpE,CAAC;CACF"}
1
+ {"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/error.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,WAAY,SAAQ,KAAK;IACpC,oEAAoE;IAC3D,IAAI,CAAS;IACtB,yCAAyC;IAChC,GAAG,CAAM;IAClB,2CAA2C;IAClC,MAAM,CAAS;IAExB,YAAY,GAAW,EAAE,IAAY,EAAE,MAAc,EAAE,KAAe;QACpE,KAAK,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,6FAA6F;QAC7F,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,cAAc,EAAE;YAC1C,UAAU,EAAE,KAAK,EAAE,uBAAuB;YAC1C,KAAK,EAAE,aAAa;SACrB,CAAC,CAAC;IACL,CAAC;IAED,wCAAwC;IACxC,MAAM,CAAC,EAAE,CAAC,CAAU;QAClB,IAAI,CAAC,YAAY,WAAW;YAAE,OAAO,IAAI,CAAC;QAC1C,gFAAgF;QAChF,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QACxC,IAAI,CAAC,IAAI,IAAI;YAAE,OAAO,KAAK,CAAC;QAC5B,OAAO,cAAc,IAAI,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,KAAK,aAAa,CAAC;IACpE,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,MAAM,UAAU,WAAW,CAAC,CAAS;IACnC,IAAI;QACF,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;KACnB;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,IAAI,CAAC;KACb;AACH,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,MAAM,UAAU,WAAW,CAAC,CAAS;IACnC,IAAI,CAAC;QACH,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -1,11 +1,19 @@
1
1
  import { Source } from './source.js';
2
+ /** A {@link Source.fetch} fetch represented as a object */
2
3
  export interface SourceRequest {
4
+ /** Source that triggered the request */
3
5
  source: Source;
6
+ /** Offset that is attempting to be read see {@link Source.fetch} */
4
7
  offset: number;
8
+ /** Number of bytes to read, or undefined see {@link Source.fetch} */
5
9
  length: number | undefined;
10
+ /** Optional signal to abort requests */
11
+ signal?: AbortSignal;
6
12
  }
7
13
  export type SourceCallback = (req: SourceRequest) => Promise<ArrayBuffer>;
8
14
  export interface SourceMiddleware {
9
15
  name: string;
10
16
  fetch(req: SourceRequest, next: SourceCallback): Promise<ArrayBuffer>;
17
+ /** When a source is closed, this call back is fired */
18
+ onClose?(source: Source): Promise<void>;
11
19
  }
@@ -1,9 +1,20 @@
1
1
  export declare const ContentRange: {
2
- /** Convert a offset/length to a range request */
2
+ /** Convert a offset/length to a range request
3
+ *
4
+ * @example
5
+ * ```typescript
6
+ * ContentRange.toRange(10) // "bytes=10"
7
+ * ContentRange.toRange(0, 1024) // "bytes=0-1023"
8
+ * ```
9
+ */
3
10
  toRange(offset: number, length?: number): string;
4
11
  /**
5
- * Parse a common Content-Range header to extract the size of the source
6
- * @example Content-Range: bytes 200-1000/67589
12
+ * Parse a Content-Range header to extract the size of the source
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * ContentRange.parseRange("bytes 200-1000/67589"); // 67589
17
+ * ```
7
18
  * @throws if range is not a Content-Range with size
8
19
  */
9
20
  parseSize(range: string): number;
@@ -1,5 +1,12 @@
1
1
  export const ContentRange = {
2
- /** Convert a offset/length to a range request */
2
+ /** Convert a offset/length to a range request
3
+ *
4
+ * @example
5
+ * ```typescript
6
+ * ContentRange.toRange(10) // "bytes=10"
7
+ * ContentRange.toRange(0, 1024) // "bytes=0-1023"
8
+ * ```
9
+ */
3
10
  toRange(offset, length) {
4
11
  if (length == null)
5
12
  return `bytes=${offset}`;
@@ -8,8 +15,12 @@ export const ContentRange = {
8
15
  return `bytes=${offset}-${offset + length - 1}`;
9
16
  },
10
17
  /**
11
- * Parse a common Content-Range header to extract the size of the source
12
- * @example Content-Range: bytes 200-1000/67589
18
+ * Parse a Content-Range header to extract the size of the source
19
+ *
20
+ * @example
21
+ * ```typescript
22
+ * ContentRange.parseRange("bytes 200-1000/67589"); // 67589
23
+ * ```
13
24
  * @throws if range is not a Content-Range with size
14
25
  */
15
26
  parseSize(range) {
@@ -1 +1 @@
1
- {"version":3,"file":"range.js","sourceRoot":"","sources":["../../src/range.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,iDAAiD;IACjD,OAAO,CAAC,MAAc,EAAE,MAAe;QACrC,IAAI,MAAM,IAAI,IAAI;YAAE,OAAO,SAAS,MAAM,EAAE,CAAC;QAC7C,IAAI,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;QAClG,OAAO,SAAS,MAAM,IAAI,MAAM,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC;IAClD,CAAC;IAED;;;;OAIG;IACH,SAAS,CAAC,KAAa;QACrB,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,IAAI,KAAK,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,GAAG,KAAK,CAAC,CAAC;QACjF,IAAI,MAAM,IAAI,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,GAAG,KAAK,CAAC,CAAC;QAC/E,MAAM,CAAC,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,KAAK,CAAC,MAAM,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,GAAG,KAAK,CAAC,CAAC;QAC9E,OAAO,MAAM,CAAC;IAChB,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"range.js","sourceRoot":"","sources":["../../src/range.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B;;;;;;;OAOG;IACH,OAAO,CAAC,MAAc,EAAE,MAAe;QACrC,IAAI,MAAM,IAAI,IAAI;YAAE,OAAO,SAAS,MAAM,EAAE,CAAC;QAC7C,IAAI,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;QAClG,OAAO,SAAS,MAAM,IAAI,MAAM,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC;IAClD,CAAC;IAED;;;;;;;;OAQG;IACH,SAAS,CAAC,KAAa;QACrB,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,IAAI,KAAK,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,GAAG,KAAK,CAAC,CAAC;QACjF,IAAI,MAAM,IAAI,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,GAAG,KAAK,CAAC,CAAC;QAC/E,MAAM,CAAC,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,KAAK,CAAC,MAAM,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,GAAG,KAAK,CAAC,CAAC;QAC9E,OAAO,MAAM,CAAC;IAChB,CAAC;CACF,CAAC"}
@@ -1,6 +1,7 @@
1
+ /** @typedef {Error} SourceError */
1
2
  export interface Source {
2
3
  /**
3
- * human friendly name of the source type
4
+ * human friendly name of the source type
4
5
  * @example "aws:s3", "file", "memory"
5
6
  */
6
7
  type: string;
@@ -10,10 +11,17 @@ export interface Source {
10
11
  * @example "s3://linz-imagery/catalog.json" or "file:///home/blacha/18_126359_137603.webp"
11
12
  */
12
13
  url: URL;
13
- /** Metadata about the object the source represents */
14
+ /**
15
+ * Metadata about the object the source represents
16
+ *
17
+ * Some information such as {@link SourceMetadata.size|size} or {@link SourceMetadata.eTag|eTag} can be read after the first {@link fetch}
18
+ * other information requires {@link head|head()} to be called.
19
+ */
14
20
  metadata?: SourceMetadata;
15
- /** Read the metadata before a fetch request */
16
- head(): Promise<SourceMetadata>;
21
+ /** head the source to read the Metadata and sets {@link metadata} */
22
+ head(options?: {
23
+ signal: AbortSignal;
24
+ }): Promise<SourceMetadata>;
17
25
  /** close the source, sources like files sometimes have open file handles that need to be closed */
18
26
  close?(): Promise<void>;
19
27
  /**
@@ -27,8 +35,13 @@ export interface Source {
27
35
  *```
28
36
  * @param offset Byte to start reading form
29
37
  * @param length optional number of bytes to read
38
+ *
39
+ * @throws {SourceError} on read failures.
40
+ * @throws {SourceError} if the file is modified between reads.
30
41
  */
31
- fetch(offset: number, length?: number): Promise<ArrayBuffer>;
42
+ fetch(offset: number, length?: number, options?: {
43
+ signal: AbortSignal;
44
+ }): Promise<ArrayBuffer>;
32
45
  }
33
46
  /** Metadata returned from some sources like HTTP or AWS */
34
47
  export interface SourceMetadata {
@@ -39,5 +52,6 @@ export interface SourceMetadata {
39
52
  contentType?: string;
40
53
  contentDisposition?: string;
41
54
  lastModified?: string;
55
+ /** Extra metadata from the source, see individual sources to see what values are added */
42
56
  metadata?: Record<string, unknown>;
43
57
  }
@@ -1,2 +1,3 @@
1
+ /** @typedef {Error} SourceError */
1
2
  export {};
2
3
  //# sourceMappingURL=source.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"source.js","sourceRoot":"","sources":["../../src/source.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"source.js","sourceRoot":"","sources":["../../src/source.ts"],"names":[],"mappings":"AAAA,mCAAmC"}
@@ -3,7 +3,8 @@ import { Source, SourceMetadata } from './source.js';
3
3
  /**
4
4
  * Wrap a source with middleware to modify requests to the sources
5
5
  *
6
- * @see @chunkd/middleware
6
+ * @see {@link SourceMiddleware}
7
+ * @see @chunkd/middle for example middleware
7
8
  */
8
9
  export declare class SourceView implements Source {
9
10
  source: Source;
@@ -13,9 +14,15 @@ export declare class SourceView implements Source {
13
14
  get type(): string;
14
15
  get url(): URL;
15
16
  get metadata(): SourceMetadata | undefined;
16
- head(): Promise<SourceMetadata>;
17
+ head(options?: {
18
+ signal: AbortSignal;
19
+ }): Promise<SourceMetadata>;
17
20
  close(): Promise<void>;
18
- fetch(offset: number, length?: number): Promise<ArrayBuffer>;
21
+ fetch(offset: number, length?: number, options?: {
22
+ signal: AbortSignal;
23
+ }): Promise<ArrayBuffer>;
19
24
  /** Run a request using all the middleware */
20
- run(handler: SourceCallback, offset: number, length?: number): Promise<ArrayBuffer>;
25
+ run(handler: SourceCallback, offset: number, length?: number, options?: {
26
+ signal: AbortSignal;
27
+ }): Promise<ArrayBuffer>;
21
28
  }
package/build/src/view.js CHANGED
@@ -1,7 +1,8 @@
1
1
  /**
2
2
  * Wrap a source with middleware to modify requests to the sources
3
3
  *
4
- * @see @chunkd/middleware
4
+ * @see {@link SourceMiddleware}
5
+ * @see @chunkd/middle for example middleware
5
6
  */
6
7
  export class SourceView {
7
8
  source;
@@ -24,24 +25,26 @@ export class SourceView {
24
25
  get metadata() {
25
26
  return this.source.metadata;
26
27
  }
27
- head() {
28
- return this.source.head();
28
+ head(options) {
29
+ return this.source.head(options);
29
30
  }
30
31
  async close() {
31
- return this.source.close?.();
32
+ await this.source.close?.();
33
+ for (const middleware of this.middleware)
34
+ await middleware.onClose?.(this.source);
32
35
  }
33
- async fetch(offset, length) {
36
+ async fetch(offset, length, options) {
34
37
  const middleware = this.middleware;
35
38
  if (middleware == null || middleware.length === 0)
36
- return this.source.fetch(offset, length);
37
- const handler = (req) => this.source.fetch(req.offset, req.length);
38
- return this.run(handler, offset, length);
39
+ return this.source.fetch(offset, length, options);
40
+ const handler = (req) => this.source.fetch(req.offset, req.length, options);
41
+ return this.run(handler, offset, length, options);
39
42
  }
40
43
  /** Run a request using all the middleware */
41
- async run(handler, offset, length) {
44
+ async run(handler, offset, length, options) {
42
45
  const middleware = this.middleware;
43
46
  if (middleware == null)
44
- return handler({ source: this, offset, length });
47
+ return handler({ source: this, offset, length, signal: options?.signal });
45
48
  function runMiddleware(middleware, next) {
46
49
  return (req) => middleware.fetch(req, next);
47
50
  }
@@ -1 +1 @@
1
- {"version":3,"file":"view.js","sourceRoot":"","sources":["../../src/view.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,MAAM,OAAO,UAAU;IACrB,MAAM,CAAS;IACf,UAAU,CAAqB;IAE/B,MAAM,CAAC,EAAE,CAAC,CAAS;QACjB,IAAI,YAAY,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACnC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,YAAY,MAAc,EAAE,aAAiC,EAAE;QAC7D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAC1B,CAAC;IAED,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;IACzB,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;IAC9B,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,KAAK;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,MAAc,EAAE,MAAe;QACzC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,IAAI,UAAU,IAAI,IAAI,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC5F,MAAM,OAAO,GAAmB,CAAC,GAAkB,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAClG,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED,6CAA6C;IAC7C,KAAK,CAAC,GAAG,CAAC,OAAuB,EAAE,MAAc,EAAE,MAAe;QAChE,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,IAAI,UAAU,IAAI,IAAI;YAAE,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAEzE,SAAS,aAAa,CAAC,UAA4B,EAAE,IAAoB;YACvE,OAAO,CAAC,GAAkB,EAAwB,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACnF,CAAC;QAED,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;YAAE,OAAO,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QACjG,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACnD,CAAC;CACF"}
1
+ {"version":3,"file":"view.js","sourceRoot":"","sources":["../../src/view.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,MAAM,OAAO,UAAU;IACrB,MAAM,CAAS;IACf,UAAU,CAAqB;IAE/B,MAAM,CAAC,EAAE,CAAC,CAAS;QACjB,IAAI,YAAY,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACnC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,YAAY,MAAc,EAAE,aAAiC,EAAE;QAC7D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAC1B,CAAC;IAED,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;IACzB,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;IAC9B,CAAC;IAED,IAAI,CAAC,OAAiC;QACpC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;QAC5B,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,UAAU;YAAE,MAAM,UAAU,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpF,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,MAAc,EAAE,MAAe,EAAE,OAAiC;QAC5E,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,IAAI,UAAU,IAAI,IAAI,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QACrG,MAAM,OAAO,GAAmB,CAAC,GAAkB,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC3G,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,6CAA6C;IAC7C,KAAK,CAAC,GAAG,CACP,OAAuB,EACvB,MAAc,EACd,MAAe,EACf,OAAiC;QAEjC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,IAAI,UAAU,IAAI,IAAI;YAAE,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QAElG,SAAS,aAAa,CAAC,UAA4B,EAAE,IAAoB;YACvE,OAAO,CAAC,GAAkB,EAAwB,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACnF,CAAC;QAED,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;YAAE,OAAO,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QACjG,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACnD,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chunkd/source",
3
- "version": "11.0.0",
3
+ "version": "11.2.0",
4
4
  "type": "module",
5
5
  "engines": {
6
6
  "node": ">=16.0.0"
@@ -15,10 +15,10 @@
15
15
  "author": "Blayne Chard",
16
16
  "license": "MIT",
17
17
  "scripts": {
18
- "test": "node --test"
18
+ "test": "node --test \"build/**/*.test.js\""
19
19
  },
20
20
  "devDependencies": {
21
- "@types/node": "^18.0.0"
21
+ "@types/node": "^18.16.19"
22
22
  },
23
23
  "publishConfig": {
24
24
  "access": "public"
@@ -26,5 +26,5 @@
26
26
  "files": [
27
27
  "build/src"
28
28
  ],
29
- "gitHead": "b8136f070ded8ec3649c6cdf729e69b40ceec324"
29
+ "gitHead": "9b7e1480d2435d06b87a0f716e3d35ab94111f80"
30
30
  }