jostraca 0.31.0 → 0.31.2
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 +355 -0
- package/dist/build/BuildContext.d.ts +1 -0
- package/dist/build/BuildContext.js +10 -0
- package/dist/build/BuildContext.js.map +1 -1
- package/dist/build/BuildMeta.js +21 -4
- package/dist/build/BuildMeta.js.map +1 -1
- package/dist/build/FileHandler.d.ts +11 -4
- package/dist/build/FileHandler.js +468 -92
- package/dist/build/FileHandler.js.map +1 -1
- package/dist/cmp/Content.js.map +1 -1
- package/dist/cmp/Copy.js +5 -1
- package/dist/cmp/Copy.js.map +1 -1
- package/dist/cmp/File.js +2 -0
- package/dist/cmp/File.js.map +1 -1
- package/dist/cmp/Folder.js.map +1 -1
- package/dist/cmp/Fragment.js +36 -7
- package/dist/cmp/Fragment.js.map +1 -1
- package/dist/cmp/Inject.js +30 -1
- package/dist/cmp/Inject.js.map +1 -1
- package/dist/cmp/Line.js.map +1 -1
- package/dist/cmp/List.js.map +1 -1
- package/dist/cmp/None.js.map +1 -1
- package/dist/cmp/Project.js.map +1 -1
- package/dist/cmp/Slot.js.map +1 -1
- package/dist/diff.d.ts +36 -0
- package/dist/diff.js +446 -0
- package/dist/diff.js.map +1 -0
- package/dist/jostraca.d.ts +19 -18
- package/dist/jostraca.js +83 -24
- package/dist/jostraca.js.map +1 -1
- package/dist/op/ContentOp.js.map +1 -1
- package/dist/op/CopyOp.js +158 -22
- package/dist/op/CopyOp.js.map +1 -1
- package/dist/op/FileOp.js +26 -27
- package/dist/op/FileOp.js.map +1 -1
- package/dist/op/FolderOp.js +3 -0
- package/dist/op/FolderOp.js.map +1 -1
- package/dist/op/FragmentOp.js.map +1 -1
- package/dist/op/InjectOp.js +29 -7
- package/dist/op/InjectOp.js.map +1 -1
- package/dist/op/NoneOp.js.map +1 -1
- package/dist/op/ProjectOp.js.map +1 -1
- package/dist/op/SlotOp.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types.d.ts +1 -0
- package/dist/util/basic.d.ts +5 -1
- package/dist/util/basic.js +218 -9
- package/dist/util/basic.js.map +1 -1
- package/dist/util/point.d.ts +8 -7
- package/dist/util/point.js.map +1 -1
- package/package.json +19 -11
- package/src/build/BuildContext.ts +12 -0
- package/src/build/BuildMeta.ts +24 -5
- package/src/build/FileHandler.ts +489 -121
- package/src/cmp/Copy.ts +5 -1
- package/src/cmp/File.ts +3 -0
- package/src/cmp/Fragment.ts +41 -7
- package/src/cmp/Inject.ts +38 -1
- package/src/diff.ts +657 -0
- package/src/jostraca.ts +83 -20
- package/src/op/CopyOp.ts +173 -22
- package/src/op/FileOp.ts +29 -31
- package/src/op/FolderOp.ts +6 -0
- package/src/op/InjectOp.ts +39 -7
- package/src/tsconfig.json +3 -1
- package/src/types.ts +5 -0
- package/src/util/basic.ts +250 -10
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.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.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.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;
|
|
38
38
|
exports.Jostraca = Jostraca;
|
|
39
39
|
exports.cmp = cmp;
|
|
40
40
|
// TODO:
|
|
@@ -42,7 +42,6 @@ exports.cmp = cmp;
|
|
|
42
42
|
// Options for each cmp; for copy, option to exclude ~ backups
|
|
43
43
|
const Fs = __importStar(require("node:fs"));
|
|
44
44
|
const node_async_hooks_1 = require("node:async_hooks");
|
|
45
|
-
const jsonic_1 = require("jsonic");
|
|
46
45
|
const shape_1 = require("shape");
|
|
47
46
|
const memfs_1 = require("memfs");
|
|
48
47
|
const BuildContext_1 = require("./build/BuildContext");
|
|
@@ -58,21 +57,21 @@ Object.defineProperty(exports, "snakify", { enumerable: true, get: function () {
|
|
|
58
57
|
Object.defineProperty(exports, "kebabify", { enumerable: true, get: function () { return basic_1.kebabify; } });
|
|
59
58
|
Object.defineProperty(exports, "cmap", { enumerable: true, get: function () { return basic_1.cmap; } });
|
|
60
59
|
Object.defineProperty(exports, "vmap", { enumerable: true, get: function () { return basic_1.vmap; } });
|
|
60
|
+
Object.defineProperty(exports, "deep", { enumerable: true, get: function () { return basic_1.deep; } });
|
|
61
|
+
Object.defineProperty(exports, "omap", { enumerable: true, get: function () { return basic_1.omap; } });
|
|
61
62
|
Object.defineProperty(exports, "names", { enumerable: true, get: function () { return basic_1.names; } });
|
|
62
63
|
Object.defineProperty(exports, "template", { enumerable: true, get: function () { return basic_1.template; } });
|
|
63
64
|
Object.defineProperty(exports, "escre", { enumerable: true, get: function () { return basic_1.escre; } });
|
|
64
65
|
Object.defineProperty(exports, "indent", { enumerable: true, get: function () { return basic_1.indent; } });
|
|
66
|
+
Object.defineProperty(exports, "isbincontent", { enumerable: true, get: function () { return basic_1.isbincontent; } });
|
|
65
67
|
Object.defineProperty(exports, "isbinext", { enumerable: true, get: function () { return basic_1.isbinext; } });
|
|
66
68
|
Object.defineProperty(exports, "partify", { enumerable: true, get: function () { return basic_1.partify; } });
|
|
67
69
|
Object.defineProperty(exports, "lcf", { enumerable: true, get: function () { return basic_1.lcf; } });
|
|
68
70
|
Object.defineProperty(exports, "ucf", { enumerable: true, get: function () { return basic_1.ucf; } });
|
|
69
71
|
const PointUtil = __importStar(require("./util/point"));
|
|
70
72
|
exports.PointUtil = PointUtil;
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
exports.deep = deep;
|
|
74
|
-
const omap = jsonic_1.util.omap;
|
|
75
|
-
exports.omap = omap;
|
|
73
|
+
const DiffUtil = __importStar(require("./diff"));
|
|
74
|
+
exports.DiffUtil = DiffUtil;
|
|
76
75
|
const Content_1 = require("./cmp/Content");
|
|
77
76
|
Object.defineProperty(exports, "Content", { enumerable: true, get: function () { return Content_1.Content; } });
|
|
78
77
|
const Line_1 = require("./cmp/Line");
|
|
@@ -104,6 +103,13 @@ const ContentOp_1 = require("./op/ContentOp");
|
|
|
104
103
|
const NoneOp_1 = require("./op/NoneOp");
|
|
105
104
|
const GLOBAL = global;
|
|
106
105
|
const KONSOLE = GLOBAL['con' + 'sole'];
|
|
106
|
+
// One AsyncLocalStorage, created once and shared.
|
|
107
|
+
//
|
|
108
|
+
// `cmp()` resolves this at call time, so replacing it on every Jostraca()
|
|
109
|
+
// construction made every component depend on whichever instance happened
|
|
110
|
+
// to be built last. It stays on `global` so that two copies of the package
|
|
111
|
+
// (an npm dedupe miss) still interoperate.
|
|
112
|
+
GLOBAL.jostraca = GLOBAL.jostraca || new node_async_hooks_1.AsyncLocalStorage();
|
|
107
113
|
const DEFAULT_LOGGER = {
|
|
108
114
|
trace: (...args) => KONSOLE.log(new Date().toISOString(), 'TRACE', ...args),
|
|
109
115
|
debug: (...args) => KONSOLE.log(new Date().toISOString(), 'DEBUG', ...args),
|
|
@@ -175,19 +181,23 @@ const ExistingShape = (0, shape_1.Shape)({
|
|
|
175
181
|
}, { name: 'Jostraca Options (`existing` property)' });
|
|
176
182
|
const sysFs = () => Fs;
|
|
177
183
|
function Jostraca(gopts_in) {
|
|
178
|
-
GLOBAL.jostraca = new node_async_hooks_1.AsyncLocalStorage();
|
|
179
184
|
// Global options are shared by calls to `generate`.
|
|
180
185
|
const gOpts = OptionsShape(gopts_in || {});
|
|
181
186
|
const gUseMemFs = !!gOpts.mem;
|
|
182
|
-
const gVol = deep({}, gOpts.vol);
|
|
187
|
+
const gVol = (0, basic_1.deep)({}, gOpts.vol);
|
|
183
188
|
const gMemFs = gUseMemFs ? (0, memfs_1.memfs)(gVol) : undefined;
|
|
184
189
|
function get_gMemFs() { return gMemFs ? gMemFs.fs : undefined; }
|
|
185
|
-
|
|
190
|
+
// `get_gMemFs` is a function declaration, so it is always truthy. Only
|
|
191
|
+
// install it as the global provider when memfs is actually in use —
|
|
192
|
+
// otherwise it short-circuits the `sysFs` fallback in `generate` and
|
|
193
|
+
// resolves to `undefined`, leaving a plain `Jostraca()` with no
|
|
194
|
+
// filesystem at all.
|
|
195
|
+
const gGetFs = gOpts.fs || (gUseMemFs ? get_gMemFs : undefined);
|
|
186
196
|
async function generate(opts_in, root) {
|
|
187
197
|
const opts = OptionsShape(opts_in);
|
|
188
198
|
// Parameters to `generate` override any global options.
|
|
189
199
|
const useMemFS = null == opts.mem ? gUseMemFs : !!opts.mem;
|
|
190
|
-
const vol = null == opts.vol ? gVol : deep({}, gVol, opts.vol);
|
|
200
|
+
const vol = null == opts.vol ? gVol : (0, basic_1.deep)({}, gVol, opts.vol);
|
|
191
201
|
const memfs = useMemFS ?
|
|
192
202
|
(null == opts.vol && null != gMemFs ? gMemFs : (0, memfs_1.memfs)(vol)) :
|
|
193
203
|
undefined;
|
|
@@ -209,17 +219,29 @@ function Jostraca(gopts_in) {
|
|
|
209
219
|
const model = null == opts.model ? null == gOpts.model ? {} : gOpts.model : opts.model;
|
|
210
220
|
const existing = ExistingShape({
|
|
211
221
|
// FIX: this does not work as generate opts get defaults from OptionsShape
|
|
212
|
-
txt: deep({}, gOpts.existing.txt, opts.existing.txt),
|
|
213
|
-
bin: deep({}, gOpts.existing.bin, opts.existing.bin),
|
|
222
|
+
txt: (0, basic_1.deep)({}, gOpts.existing.txt, opts.existing.txt),
|
|
223
|
+
bin: (0, basic_1.deep)({}, gOpts.existing.bin, opts.existing.bin),
|
|
214
224
|
});
|
|
215
225
|
// console.log('EXISTING', existing)
|
|
216
|
-
const control = deep({}, gOpts.control, opts.control);
|
|
226
|
+
const control = (0, basic_1.deep)({}, gOpts.control, opts.control);
|
|
217
227
|
// Component defaults.
|
|
218
|
-
opts.cmp = deep({
|
|
228
|
+
opts.cmp = (0, basic_1.deep)({
|
|
219
229
|
Copy: {
|
|
220
230
|
ignore: [/~$/]
|
|
221
231
|
}
|
|
222
232
|
}, gOpts?.cmp, opts.cmp);
|
|
233
|
+
// Synthetic top-level node so the user's first component has a parent
|
|
234
|
+
// to append to, and so bare top-level SIBLINGS are children of a common
|
|
235
|
+
// root instead of orphans. Path is empty and kind 'none' is a build-phase
|
|
236
|
+
// noop, so it contributes no path segment and no output. Mirrors the
|
|
237
|
+
// rootNode the Go port already creates in Generate.
|
|
238
|
+
const rootnode = {
|
|
239
|
+
kind: 'none',
|
|
240
|
+
children: [],
|
|
241
|
+
path: [],
|
|
242
|
+
meta: {},
|
|
243
|
+
content: [],
|
|
244
|
+
};
|
|
223
245
|
const ctx$ = {
|
|
224
246
|
fs: () => fs,
|
|
225
247
|
now: () => now(),
|
|
@@ -231,10 +253,25 @@ function Jostraca(gopts_in) {
|
|
|
231
253
|
debug,
|
|
232
254
|
// existing,
|
|
233
255
|
model,
|
|
256
|
+
node: rootnode,
|
|
257
|
+
children: rootnode.children,
|
|
258
|
+
root: rootnode,
|
|
234
259
|
};
|
|
260
|
+
// Only report warnings raised by *this* generate: the dlog buffer is
|
|
261
|
+
// process-global, so reading all of it re-emitted every warning from
|
|
262
|
+
// every earlier run.
|
|
263
|
+
// A monotonic sequence, NOT the buffer length: the buffer is capped
|
|
264
|
+
// and evicts, so a length-based mark goes permanently stale once a
|
|
265
|
+
// long-lived process fills it (see getdlog).
|
|
266
|
+
const dlogMark = dlog.seq();
|
|
235
267
|
return GLOBAL.jostraca.run(ctx$, async () => {
|
|
236
|
-
// Define phase
|
|
237
|
-
|
|
268
|
+
// Define phase.
|
|
269
|
+
//
|
|
270
|
+
// Awaited: an async define callback used to have its promise dropped
|
|
271
|
+
// on the floor, so the build phase ran against a partially built tree
|
|
272
|
+
// with no error. Awaiting a synchronous callback is a no-op beyond a
|
|
273
|
+
// microtask, and AsyncLocalStorage propagates across it.
|
|
274
|
+
await root();
|
|
238
275
|
const ctx$ = GLOBAL.jostraca.getStore();
|
|
239
276
|
// Build phase
|
|
240
277
|
const buildctx = new BuildContext_1.BuildContext(folder, existing, control, ctx$.fs, ctx$.now);
|
|
@@ -250,7 +287,8 @@ function Jostraca(gopts_in) {
|
|
|
250
287
|
res.vol = () => memfs.vol;
|
|
251
288
|
res.fs = () => fs;
|
|
252
289
|
}
|
|
253
|
-
const
|
|
290
|
+
const alldlogs = dlog.log();
|
|
291
|
+
const dlogs = alldlogs.filter((entry) => (entry.seq || 0) > dlogMark);
|
|
254
292
|
if (0 < dlogs.length) {
|
|
255
293
|
for (let dlogentry of dlogs) {
|
|
256
294
|
log.debug({ point: 'jostraca-warning', dlogentry, note: String(dlogentry) });
|
|
@@ -261,6 +299,11 @@ function Jostraca(gopts_in) {
|
|
|
261
299
|
}
|
|
262
300
|
async function build(ctx$, buildctx) {
|
|
263
301
|
const topnode = ctx$.node;
|
|
302
|
+
// No components were defined at all: nothing to walk, and nothing to
|
|
303
|
+
// record. Mirrors runBuild's `st.root == nil` bail in the Go port.
|
|
304
|
+
if (0 === topnode.children.length) {
|
|
305
|
+
return { node: topnode, ctx$, buildctx };
|
|
306
|
+
}
|
|
264
307
|
await step(topnode, ctx$, buildctx);
|
|
265
308
|
buildctx.bmeta.done();
|
|
266
309
|
return { node: topnode, ctx$, buildctx };
|
|
@@ -314,6 +357,14 @@ function Jostraca(gopts_in) {
|
|
|
314
357
|
function cmp(component) {
|
|
315
358
|
const cf = (props, children) => {
|
|
316
359
|
const ctx$ = GLOBAL.jostraca.getStore();
|
|
360
|
+
// Components only mean anything inside the define phase. Without this
|
|
361
|
+
// the next line throws a bare "Cannot read properties of undefined",
|
|
362
|
+
// which says nothing about the actual mistake.
|
|
363
|
+
if (null == ctx$) {
|
|
364
|
+
throw new Error('jostraca: component ' + (component.name || '<anon>') +
|
|
365
|
+
' called outside generate(); components can only be used inside the ' +
|
|
366
|
+
'callback passed to Jostraca().generate()');
|
|
367
|
+
}
|
|
317
368
|
children = null == children ?
|
|
318
369
|
(('function' === typeof props || Array.isArray(props)) ? props : null) : children;
|
|
319
370
|
// if (undefined === props) {
|
|
@@ -335,8 +386,9 @@ function cmp(component) {
|
|
|
335
386
|
meta: {},
|
|
336
387
|
content: [],
|
|
337
388
|
};
|
|
338
|
-
ctx$.
|
|
339
|
-
|
|
389
|
+
// `parent` is ctx$.node, which generate() seeds with the synthetic root
|
|
390
|
+
// node, so top-level components are siblings under a common parent
|
|
391
|
+
// rather than the first one becoming the root and orphaning the rest.
|
|
340
392
|
if (ctx$.debug) {
|
|
341
393
|
node.meta.debug = (node.meta.debug || {});
|
|
342
394
|
node.meta.debug.callsite = new Error('component: ' + component.name).stack;
|
|
@@ -349,10 +401,17 @@ function cmp(component) {
|
|
|
349
401
|
if ('string' === typeof props.name) {
|
|
350
402
|
node.path.push(props.name);
|
|
351
403
|
}
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
404
|
+
// finally: a component that throws must not leave the ambient tree
|
|
405
|
+
// cursor pointing at its own node — the error propagates out of
|
|
406
|
+
// generate(), but a caller that catches it would otherwise be left
|
|
407
|
+
// with a corrupted context.
|
|
408
|
+
try {
|
|
409
|
+
return component(props, children);
|
|
410
|
+
}
|
|
411
|
+
finally {
|
|
412
|
+
ctx$.children = siblings;
|
|
413
|
+
ctx$.node = parent;
|
|
414
|
+
}
|
|
356
415
|
};
|
|
357
416
|
Object.defineProperty(cf, 'name', { value: component.name });
|
|
358
417
|
return cf;
|
package/dist/jostraca.js.map
CHANGED
|
@@ -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/op/ContentOp.js.map
CHANGED
|
@@ -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,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;
|
|
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;QAIC,SAAS"}
|
package/dist/op/CopyOp.js
CHANGED
|
@@ -6,6 +6,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.CopyOp = void 0;
|
|
7
7
|
const node_path_1 = __importDefault(require("node:path"));
|
|
8
8
|
const jostraca_1 = require("../jostraca");
|
|
9
|
+
const basic_1 = require("../util/basic");
|
|
10
|
+
// Log non-fatal weirdness.
|
|
11
|
+
const dlog = (0, basic_1.getdlog)('jostraca', __filename);
|
|
12
|
+
const FileHandler_1 = require("../build/FileHandler");
|
|
9
13
|
const FileOp_1 = require("./FileOp");
|
|
10
14
|
const ON = 'Copy:';
|
|
11
15
|
const IGNORED_RE = /(~|-jostraca-off)$/;
|
|
@@ -30,7 +34,7 @@ const CopyOp = {
|
|
|
30
34
|
buildctx,
|
|
31
35
|
};
|
|
32
36
|
const spec = { name, frompath: from, topath: topath.join('/') };
|
|
33
|
-
let content = processTemplate(state, fs.readFileSync(from)
|
|
37
|
+
let content = processTemplate(state, fs.readFileSync(from), spec);
|
|
34
38
|
buildctx.current.file.content.push(content);
|
|
35
39
|
node.after = node.after || {};
|
|
36
40
|
node.after.kind = 'file';
|
|
@@ -49,7 +53,7 @@ const CopyOp = {
|
|
|
49
53
|
const fs = ctx$.fs();
|
|
50
54
|
const kind = node.after.kind;
|
|
51
55
|
const frompath = node.from;
|
|
52
|
-
let topath = buildctx.
|
|
56
|
+
let topath = buildctx.folderPath();
|
|
53
57
|
const state = {
|
|
54
58
|
fileCount: 0,
|
|
55
59
|
folderCount: 0,
|
|
@@ -57,17 +61,40 @@ const CopyOp = {
|
|
|
57
61
|
ctx$,
|
|
58
62
|
buildctx,
|
|
59
63
|
node,
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
64
|
+
// Real directory paths already entered, for symlink-cycle detection.
|
|
65
|
+
visited: new Set(),
|
|
66
|
+
// `'string' === node.exclude` compared the value against the literal
|
|
67
|
+
// text "string", so a string exclude never matched.
|
|
68
|
+
excludes: 'string' === typeof node.exclude ? [node.exclude] :
|
|
69
|
+
node.exclude instanceof RegExp ? [node.exclude] :
|
|
70
|
+
Array.isArray(node.exclude) ? node.exclude :
|
|
71
|
+
[]
|
|
63
72
|
};
|
|
73
|
+
// node.name carries the Copy `to` prop.
|
|
74
|
+
(0, FileHandler_1.validName)(node.name, 'Copy(to)', ON + 'after:');
|
|
64
75
|
topath = null == node.name ? topath : topath + '/' + node.name;
|
|
65
76
|
if ('file' === kind) {
|
|
66
77
|
copyFile(frompath, topath, state, buildctx, fs);
|
|
67
78
|
// FileOp.after(node, ctx$, buildctx)
|
|
68
79
|
}
|
|
69
80
|
else if ('copy' === kind) {
|
|
70
|
-
walk
|
|
81
|
+
// Seed the walk with an EMPTY path, so a Copy `exclude` names paths
|
|
82
|
+
// WITHIN THE COPIED TREE.
|
|
83
|
+
//
|
|
84
|
+
// This used to seed with `node.path`, which made the exclude base an
|
|
85
|
+
// artifact of which prop each enclosing component happens to use:
|
|
86
|
+
// `Folder` contributes a segment (it has `name`), `Project` does not
|
|
87
|
+
// (it has `folder`), and the Copy's own `to` does not either (it is
|
|
88
|
+
// read as `name` later, at op time). So a Copy nested one Folder deep
|
|
89
|
+
// needed `outer/sub/a.txt` while the same Copy at the top needed
|
|
90
|
+
// `sub/a.txt` — the same option, differently spelled, depending on
|
|
91
|
+
// where the component sat in the OUTPUT tree rather than on the
|
|
92
|
+
// source being copied.
|
|
93
|
+
//
|
|
94
|
+
// Nobody could rely on that deliberately, and the Go port matches
|
|
95
|
+
// this source-relative reading, so per CLAUDE.md the port pre-empted
|
|
96
|
+
// a latent bug here and TS is the side to correct.
|
|
97
|
+
walk(fs, state, [], frompath, topath);
|
|
71
98
|
}
|
|
72
99
|
else {
|
|
73
100
|
// TODO: need Standrd JostracaError
|
|
@@ -76,17 +103,66 @@ const CopyOp = {
|
|
|
76
103
|
},
|
|
77
104
|
};
|
|
78
105
|
exports.CopyOp = CopyOp;
|
|
106
|
+
const MAX_COPY_DEPTH = 64;
|
|
79
107
|
function walk(fs, state, nodepath, from, to) {
|
|
80
108
|
const FN = 'walk:';
|
|
81
109
|
const buildctx = state.buildctx;
|
|
110
|
+
// statSync follows symlinks, so a link pointing at one of its own
|
|
111
|
+
// ancestors used to recurse until the stack blew. Track the real paths
|
|
112
|
+
// already entered ON THIS BRANCH, and cap depth as a backstop for
|
|
113
|
+
// filesystems where realpath cannot resolve.
|
|
114
|
+
//
|
|
115
|
+
// "on this branch" is load-bearing: `visited` must be the active ancestor
|
|
116
|
+
// chain, not every path the walk has ever seen. It is unwound at the end
|
|
117
|
+
// of this function. Without that, a source tree holding a real directory
|
|
118
|
+
// AND a sibling symlink to it had its SECOND entry (whichever the sorted
|
|
119
|
+
// readdir yielded later — often the real directory) reported as a cycle
|
|
120
|
+
// and its whole subtree silently dropped from the output.
|
|
121
|
+
const realfrom = realpath(fs, from);
|
|
122
|
+
if (state.visited.has(realfrom)) {
|
|
123
|
+
dlog('copy', 'symlink cycle, not descending: ' + from + ' -> ' + realfrom);
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
if (MAX_COPY_DEPTH < nodepath.length) {
|
|
127
|
+
throw new Error(ON + FN + ' copy tree too deep (>' + MAX_COPY_DEPTH +
|
|
128
|
+
'), possible symlink cycle, path=' + from);
|
|
129
|
+
}
|
|
130
|
+
state.visited.add(realfrom);
|
|
82
131
|
const entries = fs.readdirSync(from).sort();
|
|
83
132
|
for (let name of entries) {
|
|
84
133
|
const frompath = from + '/' + name;
|
|
85
134
|
const topath = to + '/' + name;
|
|
135
|
+
// Both rejection tests run on the NAME and PATH alone, BEFORE the entry
|
|
136
|
+
// is stat'd. Statting first meant a dangling symlink threw ENOENT and
|
|
137
|
+
// aborted the whole copy even when the caller had explicitly excluded
|
|
138
|
+
// it — `exclude: ['broken-link']` could not skip the very entry that
|
|
139
|
+
// breaks the walk. Go evaluates shouldIgnoreCopyPath before its Stat,
|
|
140
|
+
// so this was a cross-stack divergence too.
|
|
141
|
+
// The ignore rule (`~` backups, `-jostraca-off`) has to be checked
|
|
142
|
+
// before the template/binary split. It used to sit only on the binary
|
|
143
|
+
// branch, so it never applied to text files — i.e. to almost
|
|
144
|
+
// everything, and `-jostraca-off` did nothing at all.
|
|
145
|
+
if (ignored(state, nodepath, name, topath)) {
|
|
146
|
+
continue;
|
|
147
|
+
}
|
|
148
|
+
// The caller's Copy `exclude` matches the SOURCE-RELATIVE path, and is
|
|
149
|
+
// tested HERE, before the directory/file split, so naming a directory
|
|
150
|
+
// PRUNES its whole subtree. The test used to live inside
|
|
151
|
+
// `excludeFile()`, which only the two FILE branches call, so
|
|
152
|
+
// `exclude: ['sub']` was a silent no-op while `exclude: ['sub/a.txt']`
|
|
153
|
+
// worked. The Go port already pruned, so per CLAUDE.md TS is the side
|
|
154
|
+
// to correct.
|
|
155
|
+
//
|
|
156
|
+
// The built-in ignore rules above (`~` backups, `-jostraca-off`) are a
|
|
157
|
+
// SEPARATE list and keep matching the bare NAME, not this path.
|
|
158
|
+
//
|
|
159
|
+
// NOT Path.sep - needs to be canonical.
|
|
160
|
+
if (excluded(nodepath.concat(name).join('/'), state.excludes)) {
|
|
161
|
+
continue;
|
|
162
|
+
}
|
|
86
163
|
const stat = fs.statSync(frompath);
|
|
87
164
|
const isDirectory = stat.isDirectory();
|
|
88
165
|
const isTemplateFile = isTemplate(name);
|
|
89
|
-
const isIgnored = ignored(state, nodepath, name, topath);
|
|
90
166
|
if (isDirectory) {
|
|
91
167
|
state.folderCount++;
|
|
92
168
|
walk(fs, state, nodepath.concat(name), frompath, topath);
|
|
@@ -100,7 +176,7 @@ function walk(fs, state, nodepath, from, to) {
|
|
|
100
176
|
state.fileCount++;
|
|
101
177
|
state.tmCount++;
|
|
102
178
|
}
|
|
103
|
-
else
|
|
179
|
+
else {
|
|
104
180
|
const excluded = excludeFile(fs, state, nodepath, name, topath);
|
|
105
181
|
if (excluded) {
|
|
106
182
|
continue;
|
|
@@ -109,34 +185,85 @@ function walk(fs, state, nodepath, from, to) {
|
|
|
109
185
|
state.fileCount++;
|
|
110
186
|
}
|
|
111
187
|
}
|
|
188
|
+
// Unwind: this path is no longer an ancestor of anything being walked.
|
|
189
|
+
state.visited.delete(realfrom);
|
|
112
190
|
}
|
|
113
191
|
function copyFile(frompath, topath, state, buildctx, fs) {
|
|
114
192
|
const FN = 'copyFile:';
|
|
115
|
-
|
|
193
|
+
// Read bytes, not utf8. The extension list that routed us here cannot be
|
|
194
|
+
// exhaustive (.wasm, .zst, .sqlite, extensionless binaries), and decoding
|
|
195
|
+
// a binary as utf8 then re-encoding it replaces every invalid sequence
|
|
196
|
+
// with U+FFFD — corrupting the copy. Sniff the content and pass bytes
|
|
197
|
+
// through untouched when it does not look like text.
|
|
198
|
+
//
|
|
199
|
+
// The extension is checked FIRST, and the sniff can only promote what it
|
|
200
|
+
// does not cover: a listed extension is binary whatever its bytes look
|
|
201
|
+
// like. The tree walk only routes non-listed extensions here, so this
|
|
202
|
+
// clause is about the SINGLE-FILE copy, which used to reach this
|
|
203
|
+
// function with any extension at all and consult the content alone — so
|
|
204
|
+
// an `a.png` holding ASCII was templated and governed by `existing.txt`
|
|
205
|
+
// as a single-file copy, and neither as part of a tree.
|
|
206
|
+
//
|
|
207
|
+
// `saveBinary`, not `save`: save re-derives the classification from the
|
|
208
|
+
// destination extension, which would send a sniffed `.wasm` back to
|
|
209
|
+
// `existing.txt` and let `txt.diff` write conflict markers into binary.
|
|
210
|
+
const raw = fs.readFileSync(frompath);
|
|
211
|
+
if ((0, jostraca_1.isbinext)(frompath) || (0, basic_1.isbincontent)(raw)) {
|
|
212
|
+
buildctx.fh.saveBinary(topath, raw, ON + FN);
|
|
213
|
+
return;
|
|
214
|
+
}
|
|
215
|
+
const src = raw.toString('utf8');
|
|
116
216
|
const out = (0, jostraca_1.template)(src, state.ctx$.model, { replace: state.node.replace });
|
|
117
217
|
buildctx.fh.save(topath, out, ON + FN);
|
|
118
218
|
}
|
|
119
219
|
// TODO: needs an option
|
|
120
220
|
function ignored(state, nodepath, name, topath) {
|
|
121
|
-
|
|
221
|
+
if (IGNORED_RE.test(name)) {
|
|
222
|
+
return true;
|
|
223
|
+
}
|
|
224
|
+
// The CONFIGURED ignore regexes match the bare NAME, exactly as the
|
|
225
|
+
// built-in rules above do. They used to be tested inside `excludeFile()`,
|
|
226
|
+
// which only the two FILE branches call, so a regex naming a directory
|
|
227
|
+
// was a no-op in TS while the Go port pruned the subtree.
|
|
228
|
+
for (const ignoreRE of state.ctx$.opts.cmp.Copy.ignore) {
|
|
229
|
+
// Reset `lastIndex` for the same reason `excluded()` does: these are
|
|
230
|
+
// caller-supplied regexes reused across every entry in the tree, and a
|
|
231
|
+
// `g` or `y` flag makes `test` resume from the previous match.
|
|
232
|
+
ignoreRE.lastIndex = 0;
|
|
233
|
+
if (ignoreRE.test(name)) {
|
|
234
|
+
return true;
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
return false;
|
|
238
|
+
}
|
|
239
|
+
// Resolve a directory to its canonical path so a symlink and its target
|
|
240
|
+
// compare equal. Providers without realpathSync (or a path that cannot be
|
|
241
|
+
// resolved) fall back to the path as given — the depth cap still applies.
|
|
242
|
+
function realpath(fs, p) {
|
|
243
|
+
if ('function' !== typeof fs.realpathSync) {
|
|
244
|
+
return p;
|
|
245
|
+
}
|
|
246
|
+
try {
|
|
247
|
+
return fs.realpathSync(p);
|
|
248
|
+
}
|
|
249
|
+
catch (err) {
|
|
250
|
+
return p;
|
|
251
|
+
}
|
|
122
252
|
}
|
|
123
253
|
function excludeFile(fs, state, nodepath, name, topath) {
|
|
124
254
|
const { opts } = state.ctx$;
|
|
125
255
|
const { log } = state.buildctx;
|
|
126
256
|
let exclude = false;
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
}
|
|
131
|
-
}
|
|
257
|
+
// NOTE: the configured Cmp.Copy.ignore regexes are NOT tested here -
|
|
258
|
+
// `ignored()` tests them, alongside the built-in rules, for directory
|
|
259
|
+
// and file entries alike.
|
|
132
260
|
// NOT Path.sep - needs to be canonical
|
|
133
261
|
const rpath = nodepath.concat(name).join('/');
|
|
134
262
|
// TOOD: use exclude only for actual excludes, refactor logic to ignore if exists,
|
|
135
263
|
// use a different prop for that
|
|
136
264
|
// const fileExists = fs.existsSync(topath)
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
}
|
|
265
|
+
// NOTE: the caller's `exclude` list is NOT tested here - walk() tests it
|
|
266
|
+
// for directory and file entries alike, so that it can prune subtrees.
|
|
140
267
|
if (true !== opts.exclude) {
|
|
141
268
|
return false;
|
|
142
269
|
}
|
|
@@ -166,21 +293,30 @@ function excluded(path, excludes) {
|
|
|
166
293
|
return true;
|
|
167
294
|
}
|
|
168
295
|
else if (exc instanceof RegExp) {
|
|
296
|
+
// `lastIndex` is reset before every test. A RegExp carrying `g` or
|
|
297
|
+
// `y` is STATEFUL: `test` resumes from where the previous call
|
|
298
|
+
// stopped, so reusing one instance across a tree matched every other
|
|
299
|
+
// path — `exclude: /a/g` over a1,a2,a3 excluded a1 and a3 and copied
|
|
300
|
+
// a2. Go's regexp has no such cursor, so this was a cross-stack
|
|
301
|
+
// divergence as well as a surprise on its own terms.
|
|
302
|
+
exc.lastIndex = 0;
|
|
169
303
|
if (exc.test(path))
|
|
170
304
|
return true;
|
|
171
305
|
}
|
|
172
306
|
}
|
|
173
307
|
return false;
|
|
174
308
|
}
|
|
175
|
-
function processTemplate(state,
|
|
176
|
-
|
|
177
|
-
|
|
309
|
+
function processTemplate(state, raw, spec) {
|
|
310
|
+
// Same reasoning as copyFile: the extension check alone is not enough to
|
|
311
|
+
// know a file is safe to decode and re-encode as utf8.
|
|
312
|
+
if (isTemplate(spec.name) && !(0, basic_1.isbincontent)(raw)) {
|
|
313
|
+
return (0, jostraca_1.template)(raw.toString('utf8'), state.ctx$.model, {
|
|
178
314
|
replace: {
|
|
179
315
|
...(state.node?.replace || {}),
|
|
180
316
|
}
|
|
181
317
|
});
|
|
182
318
|
}
|
|
183
|
-
return
|
|
319
|
+
return raw;
|
|
184
320
|
}
|
|
185
321
|
function isTemplate(name) {
|
|
186
322
|
return !(0, jostraca_1.isbinext)(name);
|
package/dist/op/CopyOp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CopyOp.js","sourceRoot":"","sources":["../../src/op/CopyOp.ts"],"names":[],"mappings":";;;;;;AACA,0DAA4B;AAI5B,0CAAgD;AAEhD,qCAAiC;AAGjC,MAAM,EAAE,GAAG,OAAO,CAAA;AAElB,MAAM,UAAU,GAAG,oBAAoB,CAAA;AAEvC,MAAM,MAAM,GAAG;IAEb,MAAM,CAAC,IAAU,EAAE,IAAS,EAAE,QAAsB;QAClD,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;QAEpB,wCAAwC;QACxC,IAAI,IAAI,GAAG,IAAI,CAAC,IAAc,CAAA;QAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAc,CAAA;QAEhC,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAElC,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YACtB,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC1C,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,mBAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;YACxC,CAAC;YAED,eAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;YACnC,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAA;YACzC,MAAM,KAAK,GAAG;gBACZ,SAAS,EAAE,CAAC;gBACZ,WAAW,EAAE,CAAC;gBACd,OAAO,EAAE,CAAC;gBACV,IAAI;gBACJ,QAAQ;aACT,CAAA;YACD,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAA;YAE/D,IAAI,OAAO,GAAG,eAAe,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"CopyOp.js","sourceRoot":"","sources":["../../src/op/CopyOp.ts"],"names":[],"mappings":"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"}
|