jostraca 0.36.6 → 0.37.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.
@@ -0,0 +1,3 @@
1
+ declare const CopyFiles: import("../types").Component;
2
+ declare const Copy: import("../types").Component;
3
+ export { CopyFiles, Copy, };
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Copy = exports.CopyFiles = void 0;
4
+ const jostraca_1 = require("../jostraca");
5
+ const shape_1 = require("shape");
6
+ const From = (from, _, s) => s.ctx.meta.fs().statSync(from);
7
+ const CopyFilesShape = (0, shape_1.Shape)({
8
+ ctx$: Object,
9
+ // The From path is independent of the project folder.
10
+ from: (0, shape_1.Check)(From).String(),
11
+ //from: String,
12
+ // output folder is current folder, this is an optional subfolder,
13
+ // or if copying a file, the output filename, if different.
14
+ to: (0, shape_1.Optional)(String),
15
+ replace: {},
16
+ // A SCALAR String or RegExp is as legal as a list of them, matching
17
+ // File (which shape-validates nothing) and the Go port. The
18
+ // Boolean-or-Array-only spelling made the scalar arm of `state.excludes`
19
+ // in CopyOp unreachable.
20
+ exclude: (0, shape_1.Optional)((0, shape_1.One)(Boolean, String, RegExp, [(0, shape_1.One)(String, RegExp)]))
21
+ }, { name: 'CopyFiles' });
22
+ const CopyFiles = (0, jostraca_1.cmp)(function CopyFiles(props, _children) {
23
+ const ctx = props.ctx$;
24
+ const node = ctx.node;
25
+ // TODO: expand this to support a file extract and/or source mapping back to ts
26
+ const errstk = new Error();
27
+ const suffixLines = errstk.stack.split('\n')
28
+ .filter((n) => !n.includes('/shape/'))
29
+ .filter((n) => !n.includes('/jostraca/'));
30
+ const suffix = '[' + (suffixLines[1] || '').trim() + ']';
31
+ props = CopyFilesShape(props, {
32
+ prefix: `(${ctx.model.name}: ${node.path.join('/')})`,
33
+ meta: { fs: props.ctx$.fs },
34
+ suffix,
35
+ });
36
+ node.kind = 'copy';
37
+ node.from = props.from;
38
+ // NOTE: props.to is used as the Node name
39
+ node.name = props.to;
40
+ node.exclude = null == props.exclude ? node.exclude : props.exclude;
41
+ node.replace = props.replace;
42
+ });
43
+ exports.CopyFiles = CopyFiles;
44
+ // `Copy` is the name this component shipped under. It stays exported as
45
+ // a DEPRECATED ALIAS -- the same function object, so `===` still holds
46
+ // and a `component.name` check sees `CopyFiles` either way -- because
47
+ // renaming an exported component is not worth breaking every consumer
48
+ // over. The name changed to match jostraca's other verb+noun components
49
+ // and the aontu functions that drive them (`copyfiles`), where plain
50
+ // `copy` was already taken by the builtin that copies a VALUE.
51
+ const Copy = CopyFiles;
52
+ exports.Copy = Copy;
53
+ //# sourceMappingURL=CopyFiles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CopyFiles.js","sourceRoot":"","sources":["../../src/cmp/CopyFiles.ts"],"names":[],"mappings":";;;AAGA,0CAAiC;AAEjC,iCAAmD;AAGnD,MAAM,IAAI,GAAG,CAAC,IAAS,EAAE,CAAM,EAAE,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;AAE1E,MAAM,cAAc,GAAG,IAAA,aAAK,EAAC;IAC3B,IAAI,EAAE,MAAM;IAEZ,sDAAsD;IACtD,IAAI,EAAE,IAAA,aAAK,EAAC,IAAI,CAAC,CAAC,MAAM,EAAuB;IAC/C,eAAe;IAEf,kEAAkE;IAClE,2DAA2D;IAC3D,EAAE,EAAE,IAAA,gBAAQ,EAAC,MAAM,CAAsB;IAEzC,OAAO,EAAE,EAAS;IAElB,oEAAoE;IACpE,4DAA4D;IAC5D,yEAAyE;IACzE,yBAAyB;IACzB,OAAO,EAAE,IAAA,gBAAQ,EAAC,IAAA,WAAG,EAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,IAAA,WAAG,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAmB;CACzF,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAA;AAKzB,MAAM,SAAS,GAAG,IAAA,cAAG,EAAC,SAAS,SAAS,CAAC,KAAqB,EAAE,SAAc;IAC5E,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAA;IACtB,MAAM,IAAI,GAAS,GAAG,CAAC,IAAI,CAAA;IAE3B,+EAA+E;IAC/E,MAAM,MAAM,GAAQ,IAAI,KAAK,EAAE,CAAA;IAC/B,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;SACzC,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;SAC7C,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAA;IACnD,MAAM,MAAM,GAAG,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,GAAG,CAAA;IAExD,KAAK,GAAG,cAAc,CAAC,KAAK,EAAE;QAC5B,MAAM,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG;QACrD,IAAI,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE;QAC3B,MAAM;KACP,CAAC,CAAA;IAEF,IAAI,CAAC,IAAI,GAAG,MAAM,CAAA;IAClB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;IAEtB,2CAA2C;IAC3C,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,EAAE,CAAA;IAEpB,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAA;IAEnE,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAA;AAC9B,CAAC,CAAC,CAAA;QAcA,SAAS;AAXX,wEAAwE;AACxE,uEAAuE;AACvE,sEAAsE;AACtE,sEAAsE;AACtE,wEAAwE;AACxE,qEAAqE;AACrE,+DAA+D;AAC/D,MAAM,IAAI,GAAG,SAAS,CAAA;QAKpB,IAAI"}
package/dist/cmp/Line.js CHANGED
@@ -10,7 +10,24 @@ const Line = (0, jostraca_1.cmp)(function Line(props, children) {
10
10
  null != props.src ? props.src :
11
11
  'string' === typeof children ? children : '';
12
12
  src += '\n';
13
- src = (0, jostraca_1.template)(src, props.ctx$.model);
13
+ // THE SAME RENDER AS `Content`, and it was not: this passed the model
14
+ // alone, so `props.replace` and `props.extra` were dropped on the
15
+ // floor. A `Line` inside a `List` therefore emitted `{item.n}`
16
+ // verbatim where a `Content` in the same position substituted, and
17
+ // nothing said why -- the two components are a terminator apart and
18
+ // nothing documented a second difference.
19
+ //
20
+ // THE GO PORT WAS ALREADY RIGHT: `LineP` delegates to `ContentP`,
21
+ // which merges `Extra` and forwards `Replace`. So this is the case
22
+ // AGENTS.md names -- the port pre-empting a latent TS bug -- and the
23
+ // fix goes into TypeScript with Go left alone.
24
+ const model = {
25
+ ...props.ctx$.model,
26
+ ...(props.extra || {}),
27
+ };
28
+ src = (0, jostraca_1.template)(src, model, {
29
+ replace: props.replace
30
+ });
14
31
  node.content = src;
15
32
  node.name = props.name;
16
33
  });
@@ -1 +1 @@
1
- {"version":3,"file":"Line.js","sourceRoot":"","sources":["../../src/cmp/Line.ts"],"names":[],"mappings":";;;AAGA,0CAA2C;AAG3C,MAAM,IAAI,GAAG,IAAA,cAAG,EAAC,SAAS,IAAI,CAAC,KAAU,EAAE,QAAa;IACtD,MAAM,IAAI,GAAS,KAAK,CAAC,IAAI,CAAC,IAAI,CAAA;IAClC,IAAI,CAAC,IAAI,GAAG,SAAS,CAAA;IACrB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;IAE1B,IAAI,GAAG,GAAG,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC7B,QAAQ,KAAK,OAAO,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAA;IAEhD,GAAG,IAAI,IAAI,CAAA;IAEX,GAAG,GAAG,IAAA,mBAAQ,EAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACrC,IAAI,CAAC,OAAO,GAAG,GAAG,CAAA;IAClB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;AACxB,CAAC,CAAC,CAAA;QAKA,IAAI"}
1
+ {"version":3,"file":"Line.js","sourceRoot":"","sources":["../../src/cmp/Line.ts"],"names":[],"mappings":";;;AAGA,0CAA2C;AAG3C,MAAM,IAAI,GAAG,IAAA,cAAG,EAAC,SAAS,IAAI,CAAC,KAAU,EAAE,QAAa;IACtD,MAAM,IAAI,GAAS,KAAK,CAAC,IAAI,CAAC,IAAI,CAAA;IAClC,IAAI,CAAC,IAAI,GAAG,SAAS,CAAA;IACrB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;IAE1B,IAAI,GAAG,GAAG,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC7B,QAAQ,KAAK,OAAO,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAA;IAEhD,GAAG,IAAI,IAAI,CAAA;IAEX,sEAAsE;IACtE,kEAAkE;IAClE,+DAA+D;IAC/D,mEAAmE;IACnE,oEAAoE;IACpE,0CAA0C;IAC1C,EAAE;IACF,kEAAkE;IAClE,mEAAmE;IACnE,qEAAqE;IACrE,+CAA+C;IAC/C,MAAM,KAAK,GAAG;QACZ,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK;QACnB,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;KACvB,CAAA;IAED,GAAG,GAAG,IAAA,mBAAQ,EAAC,GAAG,EAAE,KAAK,EAAE;QACzB,OAAO,EAAE,KAAK,CAAC,OAAO;KACvB,CAAC,CAAA;IACF,IAAI,CAAC,OAAO,GAAG,GAAG,CAAA;IAClB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;AACxB,CAAC,CAAC,CAAA;QAKA,IAAI"}
@@ -0,0 +1,3 @@
1
+ declare const ListItems: import("../types").Component;
2
+ declare const List: import("../types").Component;
3
+ export { ListItems, List, };
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.List = exports.ListItems = void 0;
4
+ const jostraca_1 = require("../jostraca");
5
+ const ListItems = (0, jostraca_1.cmp)(function ListItems(props, children) {
6
+ const node = props.ctx$.node;
7
+ node.kind = 'content';
8
+ const indent = node.indent = props.indent;
9
+ const item = props.item;
10
+ // TODO: after cmp processing children should ALWAYS be an array
11
+ children = Array.isArray(children) ? children : [children];
12
+ // A STRING child is wrapped in a function that renders it, so it reaches
13
+ // the same per-item `args` a function child does and can interpolate
14
+ // `{item.path}` like one.
15
+ //
16
+ // `src` used to be missing from that Content call, so the string was
17
+ // captured by the typeof test and then dropped on the floor: the wrapper
18
+ // rendered an empty Content and a whole string child emitted nothing at
19
+ // all. `ListItems({item: [...]}, 'n={item.n}\n')` produced just the trailing
20
+ // newline. Nothing caught it because no fixture, test or doc example
21
+ // passes a string child - the component reference documents only the
22
+ // function form. See #44.
23
+ children = children.map((child) => 'string' === typeof child ?
24
+ ({ indent, replace }) => (0, jostraca_1.Content)({ src: child, indent, replace }) :
25
+ child);
26
+ (0, jostraca_1.each)(item, (item) => (0, jostraca_1.each)(children, {
27
+ call: true, args: {
28
+ item,
29
+ indent,
30
+ // TODO: test!
31
+ replace: {
32
+ '/{item(\\.(?<path>[^}]+))?}/': ({ path }) => (0, jostraca_1.getx)(item, path)
33
+ }
34
+ }
35
+ }));
36
+ if (false !== props.line) {
37
+ (0, jostraca_1.Line)('');
38
+ }
39
+ });
40
+ exports.ListItems = ListItems;
41
+ // `List` is the name this component shipped under, kept as a
42
+ // DEPRECATED ALIAS for the reason CopyFiles keeps `Copy`. `ListItems`
43
+ // says what it does -- it renders its children once per element of
44
+ // `item` -- and matches the aontu function that drives it, where plain
45
+ // `list` was already taken by the list container kind.
46
+ const List = ListItems;
47
+ exports.List = List;
48
+ //# sourceMappingURL=ListItems.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListItems.js","sourceRoot":"","sources":["../../src/cmp/ListItems.ts"],"names":[],"mappings":";;;AAGA,0CAAsE;AAGtE,MAAM,SAAS,GAAG,IAAA,cAAG,EAAC,SAAS,SAAS,CAAC,KAAU,EAAE,QAAa;IAChE,MAAM,IAAI,GAAS,KAAK,CAAC,IAAI,CAAC,IAAI,CAAA;IAClC,IAAI,CAAC,IAAI,GAAG,SAAS,CAAA;IACrB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;IAEzC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;IAEvB,gEAAgE;IAChE,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA;IAE1D,yEAAyE;IACzE,qEAAqE;IACrE,0BAA0B;IAC1B,EAAE;IACF,qEAAqE;IACrE,yEAAyE;IACzE,wEAAwE;IACxE,6EAA6E;IAC7E,qEAAqE;IACrE,qEAAqE;IACrE,0BAA0B;IAC1B,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAU,EAAE,EAAE,CACrC,QAAQ,KAAK,OAAO,KAAK,CAAC,CAAC;QACzB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAO,EAAE,EAAE,CAAC,IAAA,kBAAO,EAAC,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QACxE,KAAK,CAAC,CAAA;IAEV,IAAA,eAAI,EAAC,IAAI,EAAE,CAAC,IAAS,EAAE,EAAE,CAAC,IAAA,eAAI,EAAC,QAAQ,EAAE;QACvC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;YAChB,IAAI;YACJ,MAAM;YAEN,cAAc;YACd,OAAO,EAAE;gBACP,8BAA8B,EAAE,CAAC,EAAE,IAAI,EAAO,EAAE,EAAE,CAAC,IAAA,eAAI,EAAC,IAAI,EAAE,IAAI,CAAC;aACpE;SACF;KACF,CAAC,CAAC,CAAA;IAEH,IAAI,KAAK,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;QACzB,IAAA,eAAI,EAAC,EAAE,CAAC,CAAA;IACV,CAAC;AACH,CAAC,CAAC,CAAA;QAaA,SAAS;AATX,6DAA6D;AAC7D,sEAAsE;AACtE,mEAAmE;AACnE,uEAAuE;AACvE,uDAAuD;AACvD,MAAM,IAAI,GAAG,SAAS,CAAA;QAKpB,IAAI"}
@@ -6,13 +6,15 @@ import * as DiffUtil from './diff';
6
6
  import { Content } from './cmp/Content';
7
7
  import { Line } from './cmp/Line';
8
8
  import { Slot } from './cmp/Slot';
9
- import { Copy } from './cmp/Copy';
9
+ import { CopyFiles, Copy } from './cmp/CopyFiles';
10
10
  import { File } from './cmp/File';
11
11
  import { Inject } from './cmp/Inject';
12
12
  import { Fragment } from './cmp/Fragment';
13
13
  import { Folder } from './cmp/Folder';
14
14
  import { Project } from './cmp/Project';
15
- import { List } from './cmp/List';
15
+ import { ListItems, List } from './cmp/ListItems';
16
+ import { cmpTree, TREE_CMP } from './tree';
17
+ import type { CmpTreeNode, CmpTreeOptions } from './tree';
16
18
  declare const OptionsShape: {
17
19
  <V>(root?: V | undefined, ctx?: import("shape").Context): (0 extends 1 & V ? true : false) extends true ? {
18
20
  folder: string | undefined;
@@ -307,5 +309,5 @@ declare function Jostraca(gopts_in?: JostracaOptions | {}): {
307
309
  generate: (opts_in: JostracaOptions | {}, root: Function) => Promise<JostracaResult>;
308
310
  };
309
311
  declare function cmp(component: Function): Component;
310
- export type { JostracaResult, JostracaOptions, Component, Node, Existing, };
311
- export { Jostraca, BuildContext, cmp, each, get, getx, camelify, snakify, kebabify, cmap, vmap, names, template, escre, indent, isbincontent, isbinext, partify, lcf, ucf, deep, omap, Project, Content, File, Inject, Fragment, Folder, Copy, Line, Slot, List, PointUtil, DiffUtil, };
312
+ export type { JostracaResult, JostracaOptions, Component, Node, Existing, CmpTreeNode, CmpTreeOptions, };
313
+ export { Jostraca, BuildContext, cmp, each, get, getx, camelify, snakify, kebabify, cmap, vmap, names, template, escre, indent, isbincontent, isbinext, partify, lcf, ucf, deep, omap, Project, Content, File, Inject, Fragment, Folder, Line, Slot, CopyFiles, ListItems, Copy, List, PointUtil, DiffUtil, cmpTree, TREE_CMP, };
package/dist/jostraca.js CHANGED
@@ -34,7 +34,7 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  };
35
35
  })();
36
36
  Object.defineProperty(exports, "__esModule", { value: true });
37
- exports.DiffUtil = exports.PointUtil = exports.List = exports.Slot = exports.Line = exports.Copy = exports.Folder = exports.Fragment = exports.Inject = exports.File = exports.Content = exports.Project = exports.omap = exports.deep = exports.ucf = exports.lcf = exports.partify = exports.isbinext = exports.isbincontent = exports.indent = exports.escre = exports.template = exports.names = exports.vmap = exports.cmap = exports.kebabify = exports.snakify = exports.camelify = exports.getx = exports.get = exports.each = exports.BuildContext = void 0;
37
+ exports.TREE_CMP = exports.cmpTree = exports.DiffUtil = exports.PointUtil = exports.List = exports.Copy = exports.ListItems = exports.CopyFiles = exports.Slot = exports.Line = exports.Folder = exports.Fragment = exports.Inject = exports.File = exports.Content = exports.Project = exports.omap = exports.deep = exports.ucf = exports.lcf = exports.partify = exports.isbinext = exports.isbincontent = exports.indent = exports.escre = exports.template = exports.names = exports.vmap = exports.cmap = exports.kebabify = exports.snakify = exports.camelify = exports.getx = exports.get = exports.each = exports.BuildContext = void 0;
38
38
  exports.Jostraca = Jostraca;
39
39
  exports.cmp = cmp;
40
40
  // TODO:
@@ -76,8 +76,9 @@ const Line_1 = require("./cmp/Line");
76
76
  Object.defineProperty(exports, "Line", { enumerable: true, get: function () { return Line_1.Line; } });
77
77
  const Slot_1 = require("./cmp/Slot");
78
78
  Object.defineProperty(exports, "Slot", { enumerable: true, get: function () { return Slot_1.Slot; } });
79
- const Copy_1 = require("./cmp/Copy");
80
- Object.defineProperty(exports, "Copy", { enumerable: true, get: function () { return Copy_1.Copy; } });
79
+ const CopyFiles_1 = require("./cmp/CopyFiles");
80
+ Object.defineProperty(exports, "CopyFiles", { enumerable: true, get: function () { return CopyFiles_1.CopyFiles; } });
81
+ Object.defineProperty(exports, "Copy", { enumerable: true, get: function () { return CopyFiles_1.Copy; } });
81
82
  const File_1 = require("./cmp/File");
82
83
  Object.defineProperty(exports, "File", { enumerable: true, get: function () { return File_1.File; } });
83
84
  const Inject_1 = require("./cmp/Inject");
@@ -88,8 +89,9 @@ const Folder_1 = require("./cmp/Folder");
88
89
  Object.defineProperty(exports, "Folder", { enumerable: true, get: function () { return Folder_1.Folder; } });
89
90
  const Project_1 = require("./cmp/Project");
90
91
  Object.defineProperty(exports, "Project", { enumerable: true, get: function () { return Project_1.Project; } });
91
- const List_1 = require("./cmp/List");
92
- Object.defineProperty(exports, "List", { enumerable: true, get: function () { return List_1.List; } });
92
+ const ListItems_1 = require("./cmp/ListItems");
93
+ Object.defineProperty(exports, "ListItems", { enumerable: true, get: function () { return ListItems_1.ListItems; } });
94
+ Object.defineProperty(exports, "List", { enumerable: true, get: function () { return ListItems_1.List; } });
93
95
  const CopyOp_1 = require("./op/CopyOp");
94
96
  const ProjectOp_1 = require("./op/ProjectOp");
95
97
  const FolderOp_1 = require("./op/FolderOp");
@@ -99,6 +101,9 @@ const InjectOp_1 = require("./op/InjectOp");
99
101
  const FragmentOp_1 = require("./op/FragmentOp");
100
102
  const ContentOp_1 = require("./op/ContentOp");
101
103
  const NoneOp_1 = require("./op/NoneOp");
104
+ const tree_1 = require("./tree");
105
+ Object.defineProperty(exports, "cmpTree", { enumerable: true, get: function () { return tree_1.cmpTree; } });
106
+ Object.defineProperty(exports, "TREE_CMP", { enumerable: true, get: function () { return tree_1.TREE_CMP; } });
102
107
  const GLOBAL = global;
103
108
  const KONSOLE = GLOBAL['con' + 'sole'];
104
109
  // One AsyncLocalStorage, created once and shared.
@@ -1 +1 @@
1
- {"version":3,"file":"jostraca.js","sourceRoot":"","sources":["../src/jostraca.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jostraca.js","sourceRoot":"","sources":["../src/jostraca.ts"],"names":[],"mappings":"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"}
package/dist/tree.d.ts ADDED
@@ -0,0 +1,14 @@
1
+ import type { Component } from './types';
2
+ type CmpTreeNode = {
3
+ cmp: string;
4
+ props?: Record<string, any>;
5
+ children?: CmpTreeNode[];
6
+ };
7
+ type CmpTreeOptions = {
8
+ cmp?: Record<string, Component>;
9
+ };
10
+ declare const TREE_CMP: Record<string, Component>;
11
+ declare const TREE_CMP_DEPRECATED: Record<string, Component>;
12
+ declare function cmpTree(root: CmpTreeNode | CmpTreeNode[], opts?: CmpTreeOptions): () => void;
13
+ export type { CmpTreeNode, CmpTreeOptions, };
14
+ export { TREE_CMP, TREE_CMP_DEPRECATED, cmpTree, };
package/dist/tree.js ADDED
@@ -0,0 +1,242 @@
1
+ "use strict";
2
+ /* Copyright (c) 2026 Richard Rodger, MIT License */
3
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4
+ return (mod && mod.__esModule) ? mod : { "default": mod };
5
+ };
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.TREE_CMP_DEPRECATED = exports.TREE_CMP = void 0;
8
+ exports.cmpTree = cmpTree;
9
+ // THE DATA-DRIVEN DEFINE PHASE -- SPIKE (docs/design/AONTU.0.md).
10
+ //
11
+ // `Jostraca().generate(opts, root)` runs `root` to build the node
12
+ // tree, and `root` is a function that calls components. That is the
13
+ // right surface for a generator written in TypeScript and the wrong
14
+ // one for a generator written somewhere else: aontu evaluates a model
15
+ // to a component tree as DATA (aontu-lang/aontu, ts/src/val/
16
+ // CmpFuncVal.ts), and there is no way to hand jostraca one.
17
+ //
18
+ // const tree = JSON.parse(...) // from `aontu model.aon`
19
+ // await Jostraca().generate({ folder: 'out' }, cmpTree(tree))
20
+ //
21
+ // `cmpTree` is that missing half: a plain tree in, a define-phase
22
+ // callback out. It is not an interpreter -- it calls the SAME
23
+ // exported components a hand-written generator calls, in the same
24
+ // define phase, so every rule the components already carry (the
25
+ // containment the ops assume, the existing-file modes, dryrun) holds
26
+ // unchanged and there is no second implementation to keep in parity.
27
+ //
28
+ // THE NODE VOCABULARY is three keys, and it is deliberately jostraca's
29
+ // own component surface rather than a new schema:
30
+ //
31
+ // {cmp: "File", props: {name: "main.ts"}, children: [...]}
32
+ //
33
+ // `cmp` names an exported component, `props` is its first argument and
34
+ // `children` its second. So the vocabulary needs no entry per
35
+ // component and no version of its own: a component this file has
36
+ // never heard of works the moment it is exported, which is the
37
+ // property that makes the aontu side able to grow one primitive at a
38
+ // time.
39
+ //
40
+ // NO DEPENDENCY IN EITHER DIRECTION. The contract between the two
41
+ // projects is this JSON shape, not a package: jostraca does not
42
+ // depend on aontu (see docs/ADR.md record 0001 -- a production
43
+ // dependency needs its own record) and aontu does not depend on
44
+ // jostraca. A pipe is the whole integration.
45
+ //
46
+ // A DATA TREE IS NOT A HAND-WRITTEN ONE, and two rules follow from
47
+ // that difference rather than from the components.
48
+ //
49
+ // (1) THE TREE MAY NOT CHOOSE THE OUTPUT ROOT. `ProjectOp` takes a
50
+ // `folder` prop as given -- an absolute path unchanged, a relative one
51
+ // joined to the base -- which is right when a developer wrote the call
52
+ // and wrong when the tree arrived as JSON: `cmptree-gen --folder
53
+ // ./build` would write wherever the input said. `File` and `Folder`
54
+ // names are already refused a `..` segment by `validName`; `folder` had
55
+ // no such check because nothing could reach it from data. So an
56
+ // absolute or upward `folder` is refused here. The operator picks the
57
+ // root, through `generate`; the tree fills it.
58
+ //
59
+ // (2) A COMPONENT NAME MUST BE ONE THE REGISTRY OWNS. `cmps[name]` on
60
+ // an ordinary object answers for `toString` and `constructor` too, and
61
+ // the resulting call ran `Object.prototype.toString` as a component:
62
+ // no node, no output, no error.
63
+ //
64
+ // SPIKE SCOPE. TypeScript only; the Go port has no twin yet. aontu
65
+ // serves three primitives so far (Folder, File, Content), but nothing
66
+ // here is limited to those.
67
+ const node_path_1 = __importDefault(require("node:path"));
68
+ const Content_1 = require("./cmp/Content");
69
+ const Line_1 = require("./cmp/Line");
70
+ const Slot_1 = require("./cmp/Slot");
71
+ const CopyFiles_1 = require("./cmp/CopyFiles");
72
+ const File_1 = require("./cmp/File");
73
+ const Inject_1 = require("./cmp/Inject");
74
+ const Fragment_1 = require("./cmp/Fragment");
75
+ const Folder_1 = require("./cmp/Folder");
76
+ const Project_1 = require("./cmp/Project");
77
+ const ListItems_1 = require("./cmp/ListItems");
78
+ // The components a tree may name. The exported set, keyed by the name
79
+ // each is exported under -- which is also the name aontu spells the
80
+ // function with, because both sides took jostraca's capitalisation.
81
+ //
82
+ // Written out rather than derived: `tree.ts` is imported BY the barrel,
83
+ // so reading the barrel back at module init is a cycle. What keeps it
84
+ // complete is a drift guard -- `test/tree.test.ts` reads `src/cmp/` and
85
+ // fails if a component file has no entry here -- so a new component is
86
+ // one line away from being reachable and cannot land unreachable
87
+ // quietly.
88
+ const TREE_CMP = {
89
+ Project: Project_1.Project,
90
+ Folder: Folder_1.Folder,
91
+ File: File_1.File,
92
+ Content: Content_1.Content,
93
+ Fragment: Fragment_1.Fragment,
94
+ Inject: Inject_1.Inject,
95
+ Line: Line_1.Line,
96
+ Slot: Slot_1.Slot,
97
+ CopyFiles: CopyFiles_1.CopyFiles,
98
+ ListItems: ListItems_1.ListItems,
99
+ };
100
+ exports.TREE_CMP = TREE_CMP;
101
+ // THE NAMES TWO COMPONENTS SHIPPED UNDER, kept working for a tree
102
+ // written against them. Separate from TREE_CMP rather than merged into
103
+ // it so the drift guard stays meaningful: that check compares TREE_CMP
104
+ // against `src/cmp/` file for file, and folding two extra keys in would
105
+ // have meant loosening it to a subset test.
106
+ const TREE_CMP_DEPRECATED = {
107
+ Copy: CopyFiles_1.CopyFiles,
108
+ List: ListItems_1.ListItems,
109
+ };
110
+ exports.TREE_CMP_DEPRECATED = TREE_CMP_DEPRECATED;
111
+ const ON = 'cmpTree:';
112
+ function nodeErr(msg, path) {
113
+ return new Error(ON + ' ' + msg + ' (at ' + (path || '<root>') + ')');
114
+ }
115
+ // A COPY DEEP ENOUGH THAT NO COMPONENT CAN REACH THE CALLER'S TREE.
116
+ // The outer spread was not: `Fragment` writes its slot markers into
117
+ // `props.replace`, so a tree carrying one came back with extra keys,
118
+ // accumulated them on a second generate, and threw outright if the map
119
+ // was frozen.
120
+ //
121
+ // Plain objects and arrays are rebuilt; everything else -- a function,
122
+ // a RegExp, a Date, a class instance, a primitive -- passes by
123
+ // reference, because those are values a component may legitimately be
124
+ // handed and copying them would change what they mean. `seen` is there
125
+ // for a hand-built tree that refers to itself; JSON cannot make one.
126
+ function copyProps(v, seen) {
127
+ if (null == v || 'object' !== typeof v) {
128
+ return v;
129
+ }
130
+ const hit = seen.get(v);
131
+ if (undefined !== hit) {
132
+ return hit;
133
+ }
134
+ if (Array.isArray(v)) {
135
+ const out = [];
136
+ seen.set(v, out);
137
+ for (const el of v) {
138
+ out.push(copyProps(el, seen));
139
+ }
140
+ return out;
141
+ }
142
+ // Only a PLAIN object is walked. `Object.create(null)` counts: it is
143
+ // a bag of data like any object literal.
144
+ const proto = Object.getPrototypeOf(v);
145
+ if (null !== proto && Object.prototype !== proto) {
146
+ return v;
147
+ }
148
+ const out = {};
149
+ seen.set(v, out);
150
+ for (const k of Object.keys(v)) {
151
+ out[k] = copyProps(v[k], seen);
152
+ }
153
+ return out;
154
+ }
155
+ // Rule (1) above: the tree may not choose the output root.
156
+ function validFolder(props, path) {
157
+ const folder = props?.folder;
158
+ if (null == folder) {
159
+ return;
160
+ }
161
+ if ('string' !== typeof folder) {
162
+ throw nodeErr('folder is not a string', path);
163
+ }
164
+ if (node_path_1.default.isAbsolute(folder)) {
165
+ throw nodeErr('folder must not be absolute: ' + folder, path);
166
+ }
167
+ if (folder.split(/[/\\]/).includes('..')) {
168
+ throw nodeErr('folder must not contain a ".." segment: ' + folder, path);
169
+ }
170
+ }
171
+ // Build the define-phase callback for one node, and recursively for
172
+ // its children. Returns a thunk, because that is what a component
173
+ // takes as a child: `each(children, {call: true})` calls each one
174
+ // inside the parent's own context.
175
+ function nodeThunk(node, cmps, path) {
176
+ if (null == node || 'object' !== typeof node || Array.isArray(node)) {
177
+ throw nodeErr('node is not an object', path);
178
+ }
179
+ const name = node.cmp;
180
+ if ('string' !== typeof name || '' === name) {
181
+ throw nodeErr('node has no cmp name', path);
182
+ }
183
+ // An OWN property only: `cmps['toString']` answers on any ordinary
184
+ // object, and the call then ran `Object.prototype.toString` as a
185
+ // component -- no node, no output, no error (rule (2) above).
186
+ const component = Object.prototype.hasOwnProperty.call(cmps, name) ?
187
+ cmps[name] :
188
+ Object.prototype.hasOwnProperty.call(TREE_CMP_DEPRECATED, name) ?
189
+ TREE_CMP_DEPRECATED[name] : undefined;
190
+ if ('function' !== typeof component) {
191
+ throw nodeErr('unknown component: ' + name, path);
192
+ }
193
+ const props = node.props;
194
+ if (null != props && ('object' !== typeof props || Array.isArray(props))) {
195
+ throw nodeErr('props is not an object', path);
196
+ }
197
+ validFolder(props, path);
198
+ const kids = node.children;
199
+ if (null != kids && !Array.isArray(kids)) {
200
+ throw nodeErr('children is not an array', path);
201
+ }
202
+ const children = (kids || []).map((kid, i) => nodeThunk(kid, cmps, path + '/' + name + '[' + i + ']'));
203
+ // THE PARENT'S ARGUMENTS REACH THE CHILD. A component walks its
204
+ // children with `each(children, {call: true, args})`, and `List`
205
+ // passes the per-item `item`, `indent` and `replace` that make
206
+ // `{item.path}` mean anything -- a hand-written child takes them as
207
+ // its parameter. A data child has no parameter list, so they are
208
+ // merged UNDER its own props: context first, the node's own
209
+ // statement last, since that is the half the author wrote.
210
+ //
211
+ // A COPY, every call, and deep enough (see copyProps). `cmp()` writes
212
+ // `ctx$` into the props object it is handed and components write into
213
+ // nested props, so passing the caller's own node would scribble on
214
+ // their data -- and a tree generated twice would carry the first run
215
+ // into the second. `generate` copies its options for the same reason.
216
+ // Per CALL, not per node: `List` invokes each child once per item.
217
+ return (...args) => {
218
+ const invoked = (null != args[0] && 'object' === typeof args[0] &&
219
+ !Array.isArray(args[0])) ? args[0] : undefined;
220
+ return component({ ...invoked, ...copyProps(props || {}, new WeakMap()) }, children);
221
+ };
222
+ }
223
+ // A define-phase callback for a component tree given as data.
224
+ //
225
+ // await Jostraca().generate(opts, cmpTree(tree))
226
+ //
227
+ // The root may be one node or a list of them; a list becomes
228
+ // siblings, which is what `generate`'s synthetic root node is for.
229
+ function cmpTree(root, opts) {
230
+ const cmps = null == opts?.cmp ? TREE_CMP : { ...TREE_CMP, ...opts.cmp };
231
+ const nodes = Array.isArray(root) ? root : [root];
232
+ // Built EAGERLY, so a malformed tree is refused by the call that
233
+ // reads it rather than half way through a define phase that has
234
+ // already made folders.
235
+ const thunks = nodes.map((node, i) => nodeThunk(node, cmps, '[' + i + ']'));
236
+ return () => {
237
+ for (const thunk of thunks) {
238
+ thunk();
239
+ }
240
+ };
241
+ }
242
+ //# sourceMappingURL=tree.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree.js","sourceRoot":"","sources":["../src/tree.ts"],"names":[],"mappings":"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"}