@tabnas/transduce 0.2.6 → 0.2.8

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.
@@ -25,12 +25,22 @@ exports.isIncremental = isIncremental;
25
25
  // repeated member name so that a `last_wins` router builds the walk's
26
26
  // value, or fails before `end` with a documented code, never with a wrong
27
27
  // stream.
28
- // Measured: the TypeScript grammars earn the same eight as the Rust ones;
29
- // `toml`, `ini`, `csv`, `xml` and `feed` open a section's, a record's or an
30
- // element's container before its key, or build a record the stream does not
31
- // see, and the adapter refuses each on its own samples.
28
+ // Measured: the TypeScript grammars earn the same nine as the Rust ones.
29
+ // `xml` builds each element in document order, in a node of its own made
30
+ // when the start tag is read, with `children` named before its list opens
31
+ // and the list in a node of its own. `toml` and `ini` open a section's
32
+ // container before its key, `csv` builds a record the stream does not see,
33
+ // and `feed` replaces xml's root element with the feed it makes of the tree
34
+ // when the root closes, so the adapter refuses each on its own samples.
32
35
  // The grammars whose incremental events never contradict the whole-value
33
- // walk on any fixture, by their package's name (`@tabnas/<name>`).
36
+ // walk on any fixture, by the name of the format each reads: its package's
37
+ // (`@tabnas/<name>`), but `pgn` for @tabnas/chess, the name hosts ask by.
38
+ // @tabnas/chess builds each game on a stack in the parse's context, so
39
+ // the database is the only container in the parse tree and a game is
40
+ // stored in it only once complete: each game is walked at its insertion.
41
+ // That is @tabnas/chess 0.1.17 and later; earlier releases attached a
42
+ // game's parts after the adapter had sent them, and this package does not
43
+ // depend on @tabnas/chess, so a host that streams PGN takes 0.1.17 or later.
34
44
  exports.INCREMENTAL = Object.freeze([
35
45
  'json',
36
46
  'json5',
@@ -38,6 +48,8 @@ exports.INCREMENTAL = Object.freeze([
38
48
  'jsonic',
39
49
  'jsonl',
40
50
  'markdown',
51
+ 'pgn',
52
+ 'xml',
41
53
  'yaml',
42
54
  'zon',
43
55
  ]);
@@ -1 +1 @@
1
- {"version":3,"file":"capability.js","sourceRoot":"","sources":["../src/capability.ts"],"names":[],"mappings":";AAAA,4CAA4C;;;;AAE5C,0EAA0E;AAC1E,EAAE;AACF,uEAAuE;AACvE,0EAA0E;AAC1E,4EAA4E;AAC5E,6DAA6D;AAC7D,wEAAwE;AACxE,qEAAqE;AACrE,0EAA0E;AAC1E,uEAAuE;AACvE,sEAAsE;AACtE,2EAA2E;AAC3E,wEAAwE;AACxE,yEAAyE;AACzE,mCAAmC;AACnC,EAAE;AACF,6EAA6E;AAC7E,2EAA2E;AAC3E,0EAA0E;AAC1E,sEAAsE;AACtE,0EAA0E;AAC1E,UAAU;AAEV,0EAA0E;AAC1E,4EAA4E;AAC5E,4EAA4E;AAC5E,wDAAwD;AAExD,yEAAyE;AACzE,mEAAmE;AACtD,QAAA,WAAW,GAAsB,MAAM,CAAC,MAAM,CAAC;IAC1D,MAAM;IACN,OAAO;IACP,OAAO;IACP,QAAQ;IACR,OAAO;IACP,UAAU;IACV,MAAM;IACN,KAAK;CACN,CAAC,CAAA;AAEF,oDAAoD;AACpD,uBAA8B,OAAe;IAC3C,OAAO,QAAA,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;AACtC,CAAC;AAEY,QAAA,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;IACtC,WAAW,EAAX,QAAA,WAAW;IACX,WAAW,EAAE,aAAa;CAC3B,CAAC,CAAA"}
1
+ {"version":3,"file":"capability.js","sourceRoot":"","sources":["../src/capability.ts"],"names":[],"mappings":";AAAA,4CAA4C;;;;AAE5C,0EAA0E;AAC1E,EAAE;AACF,uEAAuE;AACvE,0EAA0E;AAC1E,4EAA4E;AAC5E,6DAA6D;AAC7D,wEAAwE;AACxE,qEAAqE;AACrE,0EAA0E;AAC1E,uEAAuE;AACvE,sEAAsE;AACtE,2EAA2E;AAC3E,wEAAwE;AACxE,yEAAyE;AACzE,mCAAmC;AACnC,EAAE;AACF,6EAA6E;AAC7E,2EAA2E;AAC3E,0EAA0E;AAC1E,sEAAsE;AACtE,0EAA0E;AAC1E,UAAU;AAEV,yEAAyE;AACzE,yEAAyE;AACzE,0EAA0E;AAC1E,uEAAuE;AACvE,2EAA2E;AAC3E,4EAA4E;AAC5E,wEAAwE;AAExE,yEAAyE;AACzE,2EAA2E;AAC3E,0EAA0E;AAC1E,uEAAuE;AACvE,qEAAqE;AACrE,yEAAyE;AACzE,sEAAsE;AACtE,0EAA0E;AAC1E,6EAA6E;AAChE,QAAA,WAAW,GAAsB,MAAM,CAAC,MAAM,CAAC;IAC1D,MAAM;IACN,OAAO;IACP,OAAO;IACP,QAAQ;IACR,OAAO;IACP,UAAU;IACV,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;CACN,CAAC,CAAA;AAEF,oDAAoD;AACpD,uBAA8B,OAAe;IAC3C,OAAO,QAAA,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;AACtC,CAAC;AAEY,QAAA,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;IACtC,WAAW,EAAX,QAAA,WAAW;IACX,WAAW,EAAE,aAAa;CAC3B,CAAC,CAAA"}
@@ -55,9 +55,11 @@ class ParserSource {
55
55
  this.sourceMode = mode;
56
56
  return this;
57
57
  }
58
- // The grammar the parser implements, by its package's name (`json` for
59
- // `@tabnas/json`). Incremental mode runs only for a name
60
- // `capability.incremental` lists.
58
+ // The grammar the parser implements, by the name of the format it reads:
59
+ // the `languageId` its package's manifest declares, which is the
60
+ // package's own name for most (`json` for `@tabnas/json`) but `pgn` for
61
+ // `@tabnas/chess`. Incremental mode runs only for a name
62
+ // `capability.incremental` lists (`chess` is not one).
61
63
  grammar(name) {
62
64
  this.grammarName = name;
63
65
  return this;
@@ -1 +1 @@
1
- {"version":3,"file":"parser-source.js","sourceRoot":"","sources":["../src/parser-source.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parser-source.js","sourceRoot":"","sources":["../src/parser-source.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export declare const VERSION = "0.2.6";
1
+ export declare const VERSION = "0.2.8";
2
2
  export { Datum, DatumBuilder, byteSize, fromJSON, fromTabnas, getPath, takePath, toJSON, toText, walkDatum, } from '@tabnas/alchemy/shared';
3
3
  export type { Duplicates } from '@tabnas/alchemy/shared';
4
4
  export { Code, Fail, isFail } from '@tabnas/alchemy/shared';
package/dist/transduce.js CHANGED
@@ -30,7 +30,7 @@ exports.routers = exports.TableFromJson = exports.columnFromMeta = exports.bound
30
30
  // under the names it always exported them by. `routers` is this package's
31
31
  // stages as alchemy's `Routers`, for a host to pass to alchemy's `compile`.
32
32
  // This package's version, as package.json declares it.
33
- exports.VERSION = '0.2.6';
33
+ exports.VERSION = '0.2.8';
34
34
  var shared_1 = require("@tabnas/alchemy/shared");
35
35
  Object.defineProperty(exports, "Datum", { enumerable: true, get: function () { return shared_1.Datum; } });
36
36
  Object.defineProperty(exports, "DatumBuilder", { enumerable: true, get: function () { return shared_1.DatumBuilder; } });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tabnas/transduce",
3
- "version": "0.2.6",
3
+ "version": "0.2.8",
4
4
  "main": "dist/transduce.js",
5
5
  "type": "commonjs",
6
6
  "types": "dist/transduce.d.ts",
@@ -50,6 +50,7 @@
50
50
  },
51
51
  "devDependencies": {
52
52
  "@tabnas/alchemy": "*",
53
+ "@tabnas/chess": "*",
53
54
  "@tabnas/csv": "*",
54
55
  "@tabnas/feed": "*",
55
56
  "@tabnas/ini": "*",
package/src/capability.ts CHANGED
@@ -23,13 +23,23 @@
23
23
  // value, or fails before `end` with a documented code, never with a wrong
24
24
  // stream.
25
25
 
26
- // Measured: the TypeScript grammars earn the same eight as the Rust ones;
27
- // `toml`, `ini`, `csv`, `xml` and `feed` open a section's, a record's or an
28
- // element's container before its key, or build a record the stream does not
29
- // see, and the adapter refuses each on its own samples.
26
+ // Measured: the TypeScript grammars earn the same nine as the Rust ones.
27
+ // `xml` builds each element in document order, in a node of its own made
28
+ // when the start tag is read, with `children` named before its list opens
29
+ // and the list in a node of its own. `toml` and `ini` open a section's
30
+ // container before its key, `csv` builds a record the stream does not see,
31
+ // and `feed` replaces xml's root element with the feed it makes of the tree
32
+ // when the root closes, so the adapter refuses each on its own samples.
30
33
 
31
34
  // The grammars whose incremental events never contradict the whole-value
32
- // walk on any fixture, by their package's name (`@tabnas/<name>`).
35
+ // walk on any fixture, by the name of the format each reads: its package's
36
+ // (`@tabnas/<name>`), but `pgn` for @tabnas/chess, the name hosts ask by.
37
+ // @tabnas/chess builds each game on a stack in the parse's context, so
38
+ // the database is the only container in the parse tree and a game is
39
+ // stored in it only once complete: each game is walked at its insertion.
40
+ // That is @tabnas/chess 0.1.17 and later; earlier releases attached a
41
+ // game's parts after the adapter had sent them, and this package does not
42
+ // depend on @tabnas/chess, so a host that streams PGN takes 0.1.17 or later.
33
43
  export const INCREMENTAL: readonly string[] = Object.freeze([
34
44
  'json',
35
45
  'json5',
@@ -37,6 +47,8 @@ export const INCREMENTAL: readonly string[] = Object.freeze([
37
47
  'jsonic',
38
48
  'jsonl',
39
49
  'markdown',
50
+ 'pgn',
51
+ 'xml',
40
52
  'yaml',
41
53
  'zon',
42
54
  ])
@@ -62,9 +62,11 @@ export class ParserSource implements Source {
62
62
  return this
63
63
  }
64
64
 
65
- // The grammar the parser implements, by its package's name (`json` for
66
- // `@tabnas/json`). Incremental mode runs only for a name
67
- // `capability.incremental` lists.
65
+ // The grammar the parser implements, by the name of the format it reads:
66
+ // the `languageId` its package's manifest declares, which is the
67
+ // package's own name for most (`json` for `@tabnas/json`) but `pgn` for
68
+ // `@tabnas/chess`. Incremental mode runs only for a name
69
+ // `capability.incremental` lists (`chess` is not one).
68
70
  grammar(name: string): this {
69
71
  this.grammarName = name
70
72
  return this
package/src/transduce.ts CHANGED
@@ -28,7 +28,7 @@
28
28
  // stages as alchemy's `Routers`, for a host to pass to alchemy's `compile`.
29
29
 
30
30
  // This package's version, as package.json declares it.
31
- export const VERSION = '0.2.6'
31
+ export const VERSION = '0.2.8'
32
32
 
33
33
  export {
34
34
  Datum,