jostraca 0.14.0 → 0.15.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 (46) hide show
  1. package/dist/cmp/Copy.js +14 -1
  2. package/dist/cmp/Copy.js.map +1 -1
  3. package/dist/cmp/Fragment.js +12 -1
  4. package/dist/cmp/Fragment.js.map +1 -1
  5. package/dist/jostraca.d.ts +137 -5
  6. package/dist/jostraca.js +154 -22
  7. package/dist/jostraca.js.map +1 -1
  8. package/dist/op/ContentOp.d.ts +2 -2
  9. package/dist/op/ContentOp.js.map +1 -1
  10. package/dist/op/CopyOp.d.ts +2 -2
  11. package/dist/op/CopyOp.js +41 -51
  12. package/dist/op/CopyOp.js.map +1 -1
  13. package/dist/op/FileOp.d.ts +3 -3
  14. package/dist/op/FileOp.js +15 -12
  15. package/dist/op/FileOp.js.map +1 -1
  16. package/dist/op/FolderOp.d.ts +1 -1
  17. package/dist/op/FolderOp.js +5 -3
  18. package/dist/op/FolderOp.js.map +1 -1
  19. package/dist/op/FragmentOp.js +1 -1
  20. package/dist/op/InjectOp.js +6 -9
  21. package/dist/op/InjectOp.js.map +1 -1
  22. package/dist/op/NoneOp.d.ts +3 -3
  23. package/dist/op/NoneOp.js +2 -2
  24. package/dist/op/NoneOp.js.map +1 -1
  25. package/dist/op/ProjectOp.d.ts +2 -2
  26. package/dist/op/ProjectOp.js +3 -7
  27. package/dist/op/ProjectOp.js.map +1 -1
  28. package/dist/types.d.ts +42 -5
  29. package/dist/utility.d.ts +2 -1
  30. package/dist/utility.js +11 -2
  31. package/dist/utility.js.map +1 -1
  32. package/package.json +7 -3
  33. package/src/cmp/Copy.ts +28 -2
  34. package/src/cmp/Fragment.ts +21 -2
  35. package/src/jostraca.ts +199 -28
  36. package/src/op/ContentOp.ts +2 -2
  37. package/src/op/CopyOp.ts +50 -61
  38. package/src/op/FileOp.ts +14 -17
  39. package/src/op/FolderOp.ts +6 -3
  40. package/src/op/FragmentOp.ts +1 -1
  41. package/src/op/InjectOp.ts +6 -13
  42. package/src/op/NoneOp.ts +3 -3
  43. package/src/op/ProjectOp.ts +5 -12
  44. package/src/types.ts +45 -4
  45. package/src/utility.ts +11 -2
  46. package/src/cmp/List.ts~ +0 -28
package/dist/cmp/Copy.js CHANGED
@@ -2,11 +2,24 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Copy = void 0;
4
4
  const jostraca_1 = require("../jostraca");
5
+ const gubu_1 = require("gubu");
6
+ const From = (from, _, s) => s.ctx.fs().statSync(from);
7
+ const CopyShape = (0, gubu_1.Gubu)({
8
+ ctx$: Object,
9
+ // The From path is independent of the project folder.
10
+ from: (0, gubu_1.Check)(From).String(),
11
+ // output folder is current folder, this is an optional subfolder,
12
+ // or if copying a file, the output filename, if different.
13
+ to: (0, gubu_1.Optional)(String),
14
+ exclude: (0, gubu_1.Optional)((0, gubu_1.One)(Boolean, [(0, gubu_1.One)(String, RegExp)]))
15
+ }, { name: 'Copy' });
5
16
  const Copy = (0, jostraca_1.cmp)(function Copy(props, _children) {
17
+ props = CopyShape(props, { fs: props.ctx$.fs });
6
18
  const node = props.ctx$.node;
7
19
  node.kind = 'copy';
8
- node.name = props.name;
9
20
  node.from = props.from;
21
+ // NOTE: props.to is used as the Node name
22
+ node.name = props.to;
10
23
  node.exclude = null == props.exclude ? node.exclude : props.exclude;
11
24
  });
12
25
  exports.Copy = Copy;
@@ -1 +1 @@
1
- {"version":3,"file":"Copy.js","sourceRoot":"","sources":["../../src/cmp/Copy.ts"],"names":[],"mappings":";;;AAGA,0CAAiC;AAGjC,MAAM,IAAI,GAAG,IAAA,cAAG,EAAC,SAAS,IAAI,CAAC,KAAU,EAAE,SAAc;IACvD,MAAM,IAAI,GAAS,KAAK,CAAC,IAAI,CAAC,IAAI,CAAA;IAClC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAA;IAClB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;IACtB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;IACtB,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAA;AACrE,CAAC,CAAC,CAAA;AAIA,oBAAI"}
1
+ {"version":3,"file":"Copy.js","sourceRoot":"","sources":["../../src/cmp/Copy.ts"],"names":[],"mappings":";;;AAGA,0CAAiC;AAEjC,+BAAiD;AAGjD,MAAM,IAAI,GAAG,CAAC,IAAS,EAAE,CAAM,EAAE,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;AAErE,MAAM,SAAS,GAAG,IAAA,WAAI,EAAC;IACrB,IAAI,EAAE,MAAM;IAEZ,sDAAsD;IACtD,IAAI,EAAE,IAAA,YAAK,EAAC,IAAI,CAAC,CAAC,MAAM,EAAuB;IAE/C,kEAAkE;IAClE,2DAA2D;IAC3D,EAAE,EAAE,IAAA,eAAQ,EAAC,MAAM,CAAsB;IAEzC,OAAO,EAAE,IAAA,eAAQ,EAAC,IAAA,UAAG,EAAC,OAAO,EAAE,CAAC,IAAA,UAAG,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAmB;CACzE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;AAKpB,MAAM,IAAI,GAAG,IAAA,cAAG,EAAC,SAAS,IAAI,CAAC,KAAgB,EAAE,SAAc;IAC7D,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAA;IAE/C,MAAM,IAAI,GAAS,KAAK,CAAC,IAAI,CAAC,IAAI,CAAA;IAElC,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;AACrE,CAAC,CAAC,CAAA;AAIA,oBAAI"}
@@ -6,13 +6,24 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.Fragment = void 0;
7
7
  const node_path_1 = __importDefault(require("node:path"));
8
8
  const jostraca_1 = require("../jostraca");
9
+ const gubu_1 = require("gubu");
10
+ const From = (from, _, s) => s.ctx.fs().statSync(from);
11
+ const FragmentShape = (0, gubu_1.Gubu)({
12
+ ctx$: Object,
13
+ from: (0, gubu_1.Check)(From).String(),
14
+ exclude: (0, gubu_1.Optional)((0, gubu_1.One)(Boolean, [String])),
15
+ indent: (0, gubu_1.Optional)((0, gubu_1.One)(String, Number)),
16
+ replace: {},
17
+ }, { name: 'Fragment' });
9
18
  const Fragment = (0, jostraca_1.cmp)(function Fragment(props, children) {
19
+ props = FragmentShape(props, { fs: props.ctx$.fs });
10
20
  const node = props.ctx$.node;
11
21
  node.kind = 'fragment';
12
22
  node.from = props.from;
13
23
  node.indent = props.indent;
14
24
  const replace = props.replace || {};
15
- const { fs, folder, model } = props.ctx$;
25
+ const { folder, model } = props.ctx$;
26
+ const fs = props.ctx$.fs();
16
27
  let frompath = node.from;
17
28
  // TODO: this is relative to the output - but that is just one case - provide more control?
18
29
  if (!node_path_1.default.isAbsolute(frompath)) {
@@ -1 +1 @@
1
- {"version":3,"file":"Fragment.js","sourceRoot":"","sources":["../../src/cmp/Fragment.ts"],"names":[],"mappings":";;;;;;AACA,0DAA4B;AAI5B,0CAAiE;AAGjE,MAAM,QAAQ,GAAG,IAAA,cAAG,EAAC,SAAS,QAAQ,CAAC,KAAU,EAAE,QAAa;IAC9D,MAAM,IAAI,GAAS,KAAK,CAAC,IAAI,CAAC,IAAI,CAAA;IAElC,IAAI,CAAC,IAAI,GAAG,UAAU,CAAA;IACtB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;IACtB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;IAE1B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,EAAE,CAAA;IAGnC,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,IAAI,CAAA;IACxC,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAc,CAAA;IAElC,2FAA2F;IAC3F,IAAI,CAAC,mBAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/B,QAAQ,GAAG,mBAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;IACtD,CAAC;IAED,IAAI,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;IAG3C,MAAM,SAAS,GAA4B,EAAE,CAAA;IAE7C,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,CACtC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,CAAA;IAC7E,IAAA,eAAI,EAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;IAC9B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAA;IAEvB,OAAO,CAAC,2DAA2D,CAAC;QAClE,GAAG,EAAE;YACH,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,MAAM,KAAK,SAAS,CAAC,IAAI,CAAC,CAAA;YAC5D,IAAA,eAAI,EAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;YAC9B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAA;QACzB,CAAC,CAAA;IAEH,IAAA,eAAI,EAAC,SAAS,EAAE,CAAC,IAAS,EAAE,EAAE;QAC5B,OAAO,CACL,mCAAmC;YACnC,IAAA,gBAAK,EAAC,IAAI,CAAC,IAAI,CAAC;YAChB,2BAA2B,CAC5B,GAAG,GAAG,EAAE;YACP,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,CACtC,MAAM,KAAK,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,CAAA;YACxD,IAAA,eAAI,EAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;YAC9B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAA;QACzB,CAAC,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,IAAA,mBAAQ,EAAC,GAAG,EAAE,KAAK,EAAE;QACnB,OAAO;QACP,MAAM,EAAE,CAAC,CAAU,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,kBAAO,EAAC,CAAC,CAAC;KACtD,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAIA,4BAAQ"}
1
+ {"version":3,"file":"Fragment.js","sourceRoot":"","sources":["../../src/cmp/Fragment.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import type { JostracaOptions, Node, Component } from './types';
2
- import { each, select, get, getx, camelify, snakify, kebabify, cmap, vmap, names, template, escre, indent } from './utility';
1
+ import type { Node, Component, BuildContext } from './types';
2
+ import { each, select, get, getx, camelify, snakify, kebabify, cmap, vmap, names, template, escre, indent, isbinext } from './utility';
3
3
  import { Content } from './cmp/Content';
4
4
  import { Line } from './cmp/Line';
5
5
  import { Slot } from './cmp/Slot';
@@ -11,9 +11,141 @@ import { Folder } from './cmp/Folder';
11
11
  import { Project } from './cmp/Project';
12
12
  import { List } from './cmp/List';
13
13
  declare const deep: any;
14
- declare function Jostraca(gopts?: JostracaOptions): {
15
- generate: (opts: JostracaOptions, root: Function) => Promise<any>;
14
+ declare const OptionsShape: {
15
+ <V>(root?: V | undefined, ctx?: import("gubu").Context): V & {
16
+ folder: string;
17
+ meta: any;
18
+ fs: any;
19
+ log: any;
20
+ debug: string;
21
+ exclude: boolean;
22
+ existing: {
23
+ write: boolean;
24
+ preserve: boolean;
25
+ present: boolean;
26
+ merge: boolean;
27
+ };
28
+ existingBinary: {
29
+ write: boolean;
30
+ preserve: boolean;
31
+ present: boolean;
32
+ };
33
+ model: {};
34
+ build: boolean;
35
+ mem: boolean;
36
+ vol: {};
37
+ cmp: {
38
+ Copy: {
39
+ ignore: any[];
40
+ };
41
+ };
42
+ };
43
+ valid: <V>(root?: V | undefined, ctx?: import("gubu").Context) => root is V & {
44
+ folder: string;
45
+ meta: any;
46
+ fs: any;
47
+ log: any;
48
+ debug: string;
49
+ exclude: boolean;
50
+ existing: {
51
+ write: boolean;
52
+ preserve: boolean;
53
+ present: boolean;
54
+ merge: boolean;
55
+ };
56
+ existingBinary: {
57
+ write: boolean;
58
+ preserve: boolean;
59
+ present: boolean;
60
+ };
61
+ model: {};
62
+ build: boolean;
63
+ mem: boolean;
64
+ vol: {};
65
+ cmp: {
66
+ Copy: {
67
+ ignore: any[];
68
+ };
69
+ };
70
+ };
71
+ match(root?: any, ctx?: import("gubu").Context): boolean;
72
+ error(root?: any, ctx?: import("gubu").Context): {
73
+ gubu: boolean;
74
+ code: string;
75
+ gname: string;
76
+ props: ({
77
+ path: string;
78
+ type: string;
79
+ value: any;
80
+ }[]);
81
+ desc: () => ({
82
+ name: string;
83
+ code: string;
84
+ err: {
85
+ key: string;
86
+ type: string;
87
+ node: import("gubu").Node<any>;
88
+ value: any;
89
+ path: string;
90
+ why: string;
91
+ check: string;
92
+ args: Record<string, any>;
93
+ mark: number;
94
+ text: string;
95
+ use: any;
96
+ }[];
97
+ ctx: any;
98
+ });
99
+ toJSON(): /*elided*/ any & {
100
+ err: any;
101
+ name: string;
102
+ message: string;
103
+ };
104
+ name: string;
105
+ message: string;
106
+ stack?: string;
107
+ }[];
108
+ spec(): any;
109
+ node(): import("gubu").Node<{
110
+ folder: string;
111
+ meta: any;
112
+ fs: any;
113
+ log: any;
114
+ debug: string;
115
+ exclude: boolean;
116
+ existing: {
117
+ write: boolean;
118
+ preserve: boolean;
119
+ present: boolean;
120
+ merge: boolean;
121
+ };
122
+ existingBinary: {
123
+ write: boolean;
124
+ preserve: boolean;
125
+ present: boolean;
126
+ };
127
+ model: {};
128
+ build: boolean;
129
+ mem: boolean;
130
+ vol: {};
131
+ cmp: {
132
+ Copy: {
133
+ ignore: any[];
134
+ };
135
+ };
136
+ }>;
137
+ stringify(...rest: any[]): string;
138
+ jsonify(): any;
139
+ toString(this: any): string;
140
+ gubu: {
141
+ gubu$: symbol;
142
+ v$: string;
143
+ };
144
+ };
145
+ type JostracaOptions = ReturnType<typeof OptionsShape>;
146
+ declare function Jostraca(gopts_in?: JostracaOptions | {}): {
147
+ generate: (opts_in: JostracaOptions | {}, root: Function) => Promise<any>;
16
148
  };
17
149
  declare function cmp(component: Function): Component;
18
150
  export type { JostracaOptions, Component, Node, };
19
- export { Jostraca, cmp, each, select, get, getx, camelify, snakify, kebabify, cmap, vmap, names, template, escre, indent, deep, Project, Content, File, Inject, Fragment, Folder, Copy, Line, Slot, List, };
151
+ export { Jostraca, BuildContext, cmp, each, select, get, getx, camelify, snakify, kebabify, cmap, vmap, names, template, escre, indent, deep, isbinext, Project, Content, File, Inject, Fragment, Folder, Copy, Line, Slot, List, };
package/dist/jostraca.js CHANGED
@@ -37,7 +37,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
37
37
  return (mod && mod.__esModule) ? mod : { "default": mod };
38
38
  };
39
39
  Object.defineProperty(exports, "__esModule", { value: true });
40
- exports.List = exports.Slot = exports.Line = exports.Copy = exports.Folder = exports.Fragment = exports.Inject = exports.File = exports.Content = exports.Project = exports.deep = exports.indent = exports.escre = exports.template = exports.names = exports.vmap = exports.cmap = exports.kebabify = exports.snakify = exports.camelify = exports.getx = exports.get = exports.select = exports.each = void 0;
40
+ exports.List = exports.Slot = exports.Line = exports.Copy = exports.Folder = exports.Fragment = exports.Inject = exports.File = exports.Content = exports.Project = exports.isbinext = exports.deep = exports.indent = exports.escre = exports.template = exports.names = exports.vmap = exports.cmap = exports.kebabify = exports.snakify = exports.camelify = exports.getx = exports.get = exports.select = exports.each = void 0;
41
41
  exports.Jostraca = Jostraca;
42
42
  exports.cmp = cmp;
43
43
  // TODO:
@@ -47,6 +47,8 @@ const Fs = __importStar(require("node:fs"));
47
47
  const node_path_1 = __importDefault(require("node:path"));
48
48
  const node_async_hooks_1 = require("node:async_hooks");
49
49
  const jsonic_1 = require("jsonic");
50
+ const gubu_1 = require("gubu");
51
+ const Diff = require('diff');
50
52
  const memfs_1 = require("memfs");
51
53
  const utility_1 = require("./utility");
52
54
  Object.defineProperty(exports, "each", { enumerable: true, get: function () { return utility_1.each; } });
@@ -62,6 +64,7 @@ Object.defineProperty(exports, "names", { enumerable: true, get: function () { r
62
64
  Object.defineProperty(exports, "template", { enumerable: true, get: function () { return utility_1.template; } });
63
65
  Object.defineProperty(exports, "escre", { enumerable: true, get: function () { return utility_1.escre; } });
64
66
  Object.defineProperty(exports, "indent", { enumerable: true, get: function () { return utility_1.indent; } });
67
+ Object.defineProperty(exports, "isbinext", { enumerable: true, get: function () { return utility_1.isbinext; } });
65
68
  const Content_1 = require("./cmp/Content");
66
69
  Object.defineProperty(exports, "Content", { enumerable: true, get: function () { return Content_1.Content; } });
67
70
  const Line_1 = require("./cmp/Line");
@@ -102,12 +105,46 @@ const DEFAULT_LOGGER = {
102
105
  error: (...args) => console.error(new Date().toISOString(), 'ERROR', ...args),
103
106
  fatal: (...args) => console.error(new Date().toISOString(), 'FATAL', ...args),
104
107
  };
105
- function Jostraca(gopts) {
108
+ const OptionsShape = (0, gubu_1.Gubu)({
109
+ folder: '.', // Base output folder for generated files. Default: `.`.
110
+ meta: {}, // Provide meta data to the generation process. Default: `{}`
111
+ fs: (() => undefined), // File system API. Default: `node:fs`.
112
+ log: DEFAULT_LOGGER, // Logging interface.
113
+ debug: 'info', // Generate additional debugging information.
114
+ // TOOD: needs rethink
115
+ exclude: false, // Exclude modified output files. Default: `false`.
116
+ existing: {
117
+ write: true, // Overwrite existing files (unless present=true).
118
+ preserve: false, // Keep a backup copy (.old.) of overwritten files.
119
+ present: false, // Present the new file using .new. name annotation.
120
+ merge: false, // Annotated merge of new generate and existing file.
121
+ },
122
+ existingBinary: {
123
+ write: true, // Overwrite existing files (unless present=true).
124
+ preserve: false, // Keep a backup copy (.old.) of overwritten files.
125
+ present: false, // Present the new file using .new. name annotation.
126
+ // No merge of binary files
127
+ },
128
+ model: {},
129
+ build: true,
130
+ mem: false,
131
+ vol: {},
132
+ // Component specific options.
133
+ cmp: {
134
+ Copy: {
135
+ ignore: []
136
+ }
137
+ }
138
+ });
139
+ function Jostraca(gopts_in) {
106
140
  GLOBAL.jostraca = new node_async_hooks_1.AsyncLocalStorage();
107
- async function generate(opts, root) {
108
- const useMemFS = opts.mem || gopts?.mem;
109
- const memfs = useMemFS ? (0, memfs_1.memfs)(opts.vol || gopts?.vol || {}) : undefined;
110
- const fs = opts.fs || gopts?.fs || memfs?.fs || Fs;
141
+ const gopts = OptionsShape(gopts_in || {});
142
+ async function generate(opts_in, root) {
143
+ const opts = OptionsShape(opts_in);
144
+ const useMemFS = opts.mem || gopts.mem;
145
+ const vol = deep({}, gopts.vol, opts.vol);
146
+ const memfs = useMemFS ? (0, memfs_1.memfs)(vol) : undefined;
147
+ const fs = opts.fs() || gopts.fs() || memfs?.fs || Fs;
111
148
  const meta = {
112
149
  ...(gopts?.meta || {}),
113
150
  ...(opts.meta || {}),
@@ -115,8 +152,10 @@ function Jostraca(gopts) {
115
152
  const folder = opts.folder || gopts?.folder || '.';
116
153
  const log = opts.log || gopts?.log || DEFAULT_LOGGER;
117
154
  const debug = !!(null == opts.debug ? gopts?.debug : opts.debug);
155
+ const existing = deep(gopts.existing, opts.existing);
156
+ const existingBinary = deep(gopts.existingBinary, opts.existingBinary);
118
157
  const doBuild = null == gopts?.build ? false !== opts.build : false !== gopts?.build;
119
- const model = opts.model || gopts?.model || {};
158
+ const model = deep({}, gopts.model, opts.model);
120
159
  // Component defaults.
121
160
  opts.cmp = deep({
122
161
  Copy: {
@@ -124,13 +163,14 @@ function Jostraca(gopts) {
124
163
  }
125
164
  }, gopts?.cmp, opts.cmp);
126
165
  const ctx$ = {
166
+ fs: () => fs,
127
167
  folder,
128
168
  content: null,
129
169
  meta,
130
- fs,
131
170
  opts,
132
171
  log,
133
172
  debug,
173
+ existing,
134
174
  model,
135
175
  };
136
176
  return GLOBAL.jostraca.run(ctx$, async () => {
@@ -140,15 +180,34 @@ function Jostraca(gopts) {
140
180
  // Build phase
141
181
  const buildctx = {
142
182
  root: ctx$.root,
143
- fs,
183
+ when: Date.now(),
144
184
  vol: memfs?.vol,
145
185
  folder,
146
186
  current: {
187
+ project: {
188
+ node: makeNode(),
189
+ },
147
190
  folder: {
148
- parent: folder
149
- }
191
+ node: makeNode(),
192
+ parent: folder,
193
+ path: [],
194
+ },
195
+ // TODI: should be file.node
196
+ file: makeNode(),
197
+ content: undefined,
198
+ },
199
+ log: { exclude: [], last: -1 },
200
+ file: {
201
+ write: [],
202
+ preserve: [],
203
+ present: [],
204
+ merge: [],
205
+ },
206
+ util: {
207
+ save: () => null,
150
208
  }
151
209
  };
210
+ buildctx.util.save = makeSave(fs, existing, existingBinary, buildctx);
152
211
  if (doBuild) {
153
212
  await build(ctx$, buildctx);
154
213
  }
@@ -157,25 +216,21 @@ function Jostraca(gopts) {
157
216
  }
158
217
  async function build(ctx$, buildctx) {
159
218
  const topnode = ctx$.node;
160
- let log = { exclude: [], last: -1 };
161
219
  const logpath = node_path_1.default.join(buildctx.folder, '.jostraca', 'jostraca.json.log');
162
220
  try {
163
- log = JSON.parse(ctx$.fs.readFileSync(logpath, 'utf8'));
221
+ buildctx.log = JSON.parse(ctx$.fs().readFileSync(logpath, 'utf8'));
164
222
  }
165
223
  catch (err) {
166
- // console.log(err)
167
224
  // TODO: file not foound ignored, handle others!
168
225
  }
169
- buildctx.log = log;
170
- // console.log('B-LOG', buildctx.log)
171
226
  await step(topnode, ctx$, buildctx);
172
227
  try {
173
- ctx$.fs.mkdirSync(node_path_1.default.dirname(logpath), { recursive: true });
228
+ ctx$.fs().mkdirSync(node_path_1.default.dirname(logpath), { recursive: true });
174
229
  const log = {
175
230
  last: Date.now(),
176
231
  exclude: buildctx.log.exclude,
177
232
  };
178
- ctx$.fs.writeFileSync(logpath, JSON.stringify(log, null, 2), { flush: true });
233
+ ctx$.fs().writeFileSync(logpath, JSON.stringify(log, null, 2), { flush: true });
179
234
  }
180
235
  catch (err) {
181
236
  console.log(err);
@@ -196,7 +251,6 @@ function Jostraca(gopts) {
196
251
  await step(childnode, ctx$, buildctx);
197
252
  }
198
253
  catch (err) {
199
- console.log('JERR', childnode);
200
254
  if (childnode.meta.callsite) {
201
255
  err.callsite = childnode.meta.callsite;
202
256
  }
@@ -241,7 +295,6 @@ function cmp(component) {
241
295
  let parent = props.ctx$.node;
242
296
  // console.log('BBB', component, props, parent?.filter?.({ props }))
243
297
  if (parent?.filter && !parent.filter({ props, children, component })) {
244
- // console.log('PF', component, props)
245
298
  return undefined;
246
299
  }
247
300
  children = 'function' === typeof children ? [children] : children;
@@ -250,6 +303,7 @@ function cmp(component) {
250
303
  children: [],
251
304
  path: [],
252
305
  meta: {},
306
+ content: [],
253
307
  };
254
308
  props.ctx$.root = (props.ctx$.root || node);
255
309
  parent = props.ctx$.node || node;
@@ -264,8 +318,6 @@ function cmp(component) {
264
318
  node.path = parent.path.slice(0);
265
319
  if ('string' === typeof props.name) {
266
320
  node.path.push(props.name);
267
- // console.log('CMP-PATH', component.name, node.path)
268
- // console.trace()
269
321
  }
270
322
  let out = component(props, children);
271
323
  props.ctx$.children = siblings;
@@ -275,4 +327,84 @@ function cmp(component) {
275
327
  Object.defineProperty(cf, 'name', { value: component.name });
276
328
  return cf;
277
329
  }
330
+ function makeNode() {
331
+ return { kind: 'none', path: [], meta: {}, content: [] };
332
+ }
333
+ function makeSave(fs, existingText, existingBinary, buildctx) {
334
+ const JOSTRACA_PROTECT = 'JOSTRACA_PROTECT';
335
+ return function save(path, content, write = false) {
336
+ const existing = 'string' === typeof content ? existingText : existingBinary;
337
+ path = node_path_1.default.normalize(path);
338
+ const folder = node_path_1.default.dirname(path);
339
+ const exists = fs.existsSync(path);
340
+ write = write || !exists;
341
+ if (exists) {
342
+ let oldcontent = fs.readFileSync(path, 'utf8').toString();
343
+ const protect = 0 <= oldcontent.indexOf(JOSTRACA_PROTECT);
344
+ if (existing.preserve) {
345
+ if (protect) {
346
+ write = false;
347
+ }
348
+ else if (oldcontent.length !== content.length || oldcontent !== content) {
349
+ let oldpath = node_path_1.default.join(folder, node_path_1.default.basename(path).replace(/\.[^.]+$/, '') +
350
+ '.old' + node_path_1.default.extname(path));
351
+ copy(fs, path, oldpath);
352
+ buildctx.file.preserve.push({ path, action: 'preserve' });
353
+ }
354
+ }
355
+ if (existing.write && !protect) {
356
+ write = true;
357
+ }
358
+ else if (existing.present) {
359
+ if (oldcontent.length !== content.length || oldcontent !== content) {
360
+ let newpath = node_path_1.default.join(folder, node_path_1.default.basename(path).replace(/\.[^.]+$/, '') +
361
+ '.new' + node_path_1.default.extname(path));
362
+ fs.writeFileSync(newpath, content, 'utf8', { flush: true });
363
+ buildctx.file.preserve.push({ path, action: 'present' });
364
+ }
365
+ }
366
+ if (existing.merge && !protect) {
367
+ write = false;
368
+ if (oldcontent.length !== content.length || oldcontent !== content) {
369
+ merge(fs, buildctx.when, path, content, oldcontent);
370
+ buildctx.file.merge.push({ path, action: 'merge' });
371
+ }
372
+ }
373
+ }
374
+ if (write) {
375
+ fs.mkdirSync(folder, { recursive: true });
376
+ fs.writeFileSync(path, content, 'utf8', { flush: true });
377
+ buildctx.file.write.push({ path, action: 'write' });
378
+ }
379
+ };
380
+ }
381
+ function copy(fs, frompath, topath) {
382
+ // const isBinary = BINARY_EXT.includes(Path.extname(frompath))
383
+ const isBinary = (0, utility_1.isbinext)(frompath);
384
+ fs.mkdirSync(node_path_1.default.dirname(topath), { recursive: true });
385
+ const contents = fs.readFileSync(frompath, isBinary ? undefined : 'utf8');
386
+ fs.writeFileSync(topath, contents, { flush: true });
387
+ }
388
+ function merge(fs, when, path, oldcontent, newcontent) {
389
+ const diff = Diff.diffLines(newcontent, oldcontent);
390
+ const out = [];
391
+ const isowhen = new Date(when).toISOString();
392
+ diff.forEach((part) => {
393
+ if (part.added) {
394
+ out.push('<<<<<< GENERATED: ' + isowhen + '\n');
395
+ out.push(part.value);
396
+ out.push('>>>>>> GENERATED: ' + isowhen + '\n');
397
+ }
398
+ else if (part.removed) {
399
+ out.push('<<<<<< EXISTING: ' + isowhen + '\n');
400
+ out.push(part.value);
401
+ out.push('>>>>>> EXISTING: ' + isowhen + '\n');
402
+ }
403
+ else {
404
+ out.push(part.value);
405
+ }
406
+ });
407
+ const content = out.join('');
408
+ fs.writeFileSync(path, content, { flush: true });
409
+ }
278
410
  //# sourceMappingURL=jostraca.js.map
@@ -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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"}
@@ -1,6 +1,6 @@
1
- import type { Node } from '../jostraca';
1
+ import type { Node, BuildContext } from '../jostraca';
2
2
  declare const ContentOp: {
3
- before(node: Node, _ctx$: any, buildctx: any): void;
3
+ before(node: Node, _ctx$: any, buildctx: BuildContext): void;
4
4
  after(_node: Node, _ctx$: any, _buildctx: any): void;
5
5
  };
6
6
  export { ContentOp };
@@ -1 +1 @@
1
- {"version":3,"file":"ContentOp.js","sourceRoot":"","sources":["../../src/op/ContentOp.ts"],"names":[],"mappings":";;;AAGA,0CAAoC;AAGpC,MAAM,SAAS,GAAG;IAChB,MAAM,CAAC,IAAU,EAAE,KAAU,EAAE,QAAa;QAC1C,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAA;QAE/C,IAAI,GAAG,GAAG,OAAO,CAAC,OAA4B,CAAA;QAC9C,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACxB,GAAG,GAAG,IAAA,iBAAM,EAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAChC,CAAC;QAED,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACzC,CAAC;IAED,KAAK,CAAC,KAAW,EAAE,KAAU,EAAE,SAAc;IAC7C,CAAC;CACF,CAAA;AAIC,8BAAS"}
1
+ {"version":3,"file":"ContentOp.js","sourceRoot":"","sources":["../../src/op/ContentOp.ts"],"names":[],"mappings":";;;AAGA,0CAAoC;AAGpC,MAAM,SAAS,GAAG;IAChB,MAAM,CAAC,IAAU,EAAE,KAAU,EAAE,QAAsB;QACnD,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAA;QAE/C,IAAI,GAAG,GAAG,OAAO,CAAC,OAA4B,CAAA;QAC9C,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACxB,GAAG,GAAG,IAAA,iBAAM,EAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAChC,CAAC;QAED,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACzC,CAAC;IAED,KAAK,CAAC,KAAW,EAAE,KAAU,EAAE,SAAc;IAC7C,CAAC;CACF,CAAA;AAIC,8BAAS"}
@@ -1,6 +1,6 @@
1
- import type { Node } from '../jostraca';
1
+ import type { Node, BuildContext } from '../jostraca';
2
2
  declare const CopyOp: {
3
- before(node: Node, ctx$: any, buildctx: any): void;
3
+ before(node: Node, ctx$: any, buildctx: BuildContext): void;
4
4
  after(node: Node, ctx$: any, buildctx: any): void;
5
5
  };
6
6
  export { CopyOp };