jostraca 0.37.0 → 0.38.1

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 (68) hide show
  1. package/dist/build/BuildContext.d.ts +2 -0
  2. package/dist/build/BuildContext.js +36 -0
  3. package/dist/build/BuildContext.js.map +1 -1
  4. package/dist/build/FileHandler.d.ts +2 -1
  5. package/dist/build/FileHandler.js +16 -1
  6. package/dist/build/FileHandler.js.map +1 -1
  7. package/dist/check.d.ts +4 -0
  8. package/dist/check.js +307 -0
  9. package/dist/check.js.map +1 -0
  10. package/dist/cmp/Content.d.ts +38 -1
  11. package/dist/cmp/Content.js +31 -7
  12. package/dist/cmp/Content.js.map +1 -1
  13. package/dist/cmp/CopyFiles.d.ts +36 -2
  14. package/dist/cmp/CopyFiles.js +13 -1
  15. package/dist/cmp/CopyFiles.js.map +1 -1
  16. package/dist/cmp/File.d.ts +23 -1
  17. package/dist/cmp/File.js.map +1 -1
  18. package/dist/cmp/Folder.d.ts +11 -1
  19. package/dist/cmp/Folder.js.map +1 -1
  20. package/dist/cmp/Fragment.d.ts +29 -1
  21. package/dist/cmp/Fragment.js +80 -5
  22. package/dist/cmp/Fragment.js.map +1 -1
  23. package/dist/cmp/Inject.d.ts +21 -1
  24. package/dist/cmp/Inject.js.map +1 -1
  25. package/dist/cmp/Line.d.ts +12 -1
  26. package/dist/cmp/Line.js +15 -7
  27. package/dist/cmp/Line.js.map +1 -1
  28. package/dist/cmp/ListItems.d.ts +54 -2
  29. package/dist/cmp/ListItems.js.map +1 -1
  30. package/dist/cmp/None.d.ts +7 -1
  31. package/dist/cmp/None.js.map +1 -1
  32. package/dist/cmp/Project.d.ts +18 -1
  33. package/dist/cmp/Project.js.map +1 -1
  34. package/dist/cmp/Slot.d.ts +10 -1
  35. package/dist/cmp/Slot.js.map +1 -1
  36. package/dist/jostraca.d.ts +14 -3
  37. package/dist/jostraca.js +24 -0
  38. package/dist/jostraca.js.map +1 -1
  39. package/dist/op/FileOp.js +25 -1
  40. package/dist/op/FileOp.js.map +1 -1
  41. package/dist/tree.d.ts +3 -1
  42. package/dist/tree.js +100 -17
  43. package/dist/tree.js.map +1 -1
  44. package/dist/tsconfig.tsbuildinfo +1 -1
  45. package/dist/types.d.ts +141 -4
  46. package/dist/util/memfs.d.ts +1 -1
  47. package/dist/util/memfs.js +52 -6
  48. package/dist/util/memfs.js.map +1 -1
  49. package/package.json +1 -1
  50. package/src/build/BuildContext.ts +39 -0
  51. package/src/build/FileHandler.ts +17 -1
  52. package/src/check.ts +333 -0
  53. package/src/cmp/Content.ts +86 -7
  54. package/src/cmp/CopyFiles.ts +60 -5
  55. package/src/cmp/File.ts +31 -1
  56. package/src/cmp/Folder.ts +17 -1
  57. package/src/cmp/Fragment.ts +123 -12
  58. package/src/cmp/Inject.ts +31 -3
  59. package/src/cmp/Line.ts +31 -7
  60. package/src/cmp/ListItems.ts +71 -3
  61. package/src/cmp/None.ts +11 -1
  62. package/src/cmp/Project.ts +25 -1
  63. package/src/cmp/Slot.ts +15 -1
  64. package/src/jostraca.ts +77 -2
  65. package/src/op/FileOp.ts +27 -2
  66. package/src/tree.ts +111 -16
  67. package/src/types.ts +175 -3
  68. package/src/util/memfs.ts +56 -6
@@ -27,6 +27,7 @@ declare class BuildContext {
27
27
  exclude: string[];
28
28
  last: number;
29
29
  };
30
+ filepaths: Map<string, string>;
30
31
  dfolder?: string;
31
32
  constructor(folder: string, existing: Existing, control: {
32
33
  dryrun: boolean;
@@ -34,6 +35,7 @@ declare class BuildContext {
34
35
  version: boolean;
35
36
  }, fs: () => FST, now: () => number);
36
37
  addmeta(file: string, meta: any): void;
38
+ claimFile(fullpath: string, where: string, errmark: string): void;
37
39
  folderPath(): string;
38
40
  duplicateFolder(): string;
39
41
  }
@@ -20,6 +20,8 @@ class BuildContext {
20
20
  folder;
21
21
  current;
22
22
  log;
23
+ // Output paths already claimed by a File this run. See claimFile.
24
+ filepaths;
23
25
  dfolder;
24
26
  constructor(folder, existing, control, fs, now) {
25
27
  this.fs = fs;
@@ -44,12 +46,46 @@ class BuildContext {
44
46
  content: undefined,
45
47
  };
46
48
  this.log = { exclude: [], last: -1 };
49
+ this.filepaths = new Map();
47
50
  this.fh = new FileHandler_1.FileHandler(this, existing, control);
48
51
  this.bmeta = new BuildMeta_1.BuildMeta(this.fh);
49
52
  }
50
53
  addmeta(file, meta) {
51
54
  this.bmeta.add(file, meta);
52
55
  }
56
+ // TWO FILES AT ONE PATH IS REFUSED, not resolved. The second silently
57
+ // won and the first was never written -- output missing, exit 0, and
58
+ // nothing said which component lost. The same guard `aontu render`
59
+ // holds over its unit paths, on the side that owns files.
60
+ //
61
+ // HERE RATHER THAN IN cmpTree, deliberately. `cmpTree` is where a
62
+ // data tree asked for it, and the path is not known there: a `File`
63
+ // name is composed with whatever `Project` and `Folder` nesting
64
+ // encloses it, and under `ListItems` the same node is invoked once
65
+ // per item. Deciding it from the tree would mean a second
66
+ // implementation of path composition, which is the one thing
67
+ // `cmpTree` is built not to have. The build phase is where the path
68
+ // is final, so the guard is one implementation and covers every road
69
+ // in -- a hand-written generator, a data tree, and whatever comes
70
+ // next -- rather than only the road that asked.
71
+ //
72
+ // IT IS THE `File` NODES ONLY. `Inject` writes to a path too, and
73
+ // legitimately writes to one a `File` in the same run created:
74
+ // FileHandler's own `savedPaths` sees both and can only warn. This
75
+ // sees the two statements that cannot both be true.
76
+ //
77
+ // `where` is the tree path of the node, which is the only handle a
78
+ // data tree gives a reader.
79
+ claimFile(fullpath, where, errmark) {
80
+ const already = this.filepaths.get(fullpath);
81
+ if (undefined !== already) {
82
+ throw new Error('ERROR:' + errmark +
83
+ ' two File components resolve to the same output path, path=' +
84
+ fullpath + ', first=' + (already || '<root>') +
85
+ ', second=' + (where || '<root>'));
86
+ }
87
+ this.filepaths.set(fullpath, where);
88
+ }
53
89
  // Folder path segments for the current build position, as a canonical
54
90
  // (forward-slash) prefix. When neither a Project nor a Folder has seeded
55
91
  // the path, fall back to the base output folder — otherwise a top-level
@@ -1 +1 @@
1
- {"version":3,"file":"BuildContext.js","sourceRoot":"","sources":["../../src/build/BuildContext.ts"],"names":[],"mappings":";;;;;;AACA,0DAA4B;AAS5B,+CAEsB;AAEtB,2CAEoB;AAapB,MAAM,EAAE,GAAG,eAAe,CAAA;AAG1B,4DAA4D;AAC5D,MAAM,YAAY;IAEhB,EAAE,CAAW;IACb,GAAG,CAAc;IAEjB,KAAK,CAAW;IAChB,EAAE,CAAa;IACf,KAAK,CAAO;IACZ,IAAI,CAAQ;IACZ,GAAG,CAAK;IACR,MAAM,CAAQ;IACd,OAAO,CASN;IACD,GAAG,CAGF;IAED,OAAO,CAAS;IAGhB,YACE,MAAc,EACd,QAAkB,EAClB,OAIC,EACD,EAAa,EACb,GAAiB;QAEjB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;QACZ,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QAEd,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,UAAU,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,EAAE,GAAG,iCAAiC,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,CAAA;QACrE,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,EAAE,CAAA;QACf,IAAI,CAAC,IAAI,GAAG,GAAG,EAAE,CAAA;QAEjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,OAAO,GAAG;YACb,OAAO,EAAE;gBACP,IAAI,EAAE,SAAS,EAAE;aAClB;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,SAAS,EAAE;gBACjB,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,EAAE;aACT;YACD,4BAA4B;YAC5B,IAAI,EAAE,SAAS,EAAE;YACjB,OAAO,EAAE,SAAS;SACnB,CAAA;QACD,IAAI,CAAC,GAAG,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAA;QAEpC,IAAI,CAAC,EAAE,GAAG,IAAI,yBAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;QAClD,IAAI,CAAC,KAAK,GAAG,IAAI,qBAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACrC,CAAC;IAGD,OAAO,CAAC,IAAY,EAAE,IAAS;QAC7B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAC5B,CAAC;IAGD,sEAAsE;IACtE,yEAAyE;IACzE,wEAAwE;IACxE,qEAAqE;IACrE,wEAAwE;IACxE,mDAAmD;IACnD,UAAU;QACR,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAA;QAC5C,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;IAClD,CAAC;IAGD,eAAe;QACb,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACzB,IAAI,CAAC,OAAO;gBACV,mBAAI,CAAC,SAAS,CACZ,mBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAA;QACtE,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;CACF;QAUC,YAAY;AAPd,SAAS,SAAS;IAChB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAA;AAC1D,CAAC"}
1
+ {"version":3,"file":"BuildContext.js","sourceRoot":"","sources":["../../src/build/BuildContext.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { BuildContext } from './BuildContext';
2
2
  import { FST, Audit } from '../types';
3
+ declare function canonPath(path: string): string;
3
4
  declare class FileHandler {
4
5
  when: number;
5
6
  fs: () => FST;
@@ -64,4 +65,4 @@ declare class FileHandler {
64
65
  declare function annotatedPath(target: string, kind: string): string;
65
66
  declare function validName(name: any, kind: string, errmark: string): void;
66
67
  declare function validPath(path: string, maxdepth: number, errmark: string): void;
67
- export { annotatedPath, validName, validPath, FileHandler };
68
+ export { annotatedPath, canonPath, validName, validPath, FileHandler };
@@ -38,6 +38,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.FileHandler = void 0;
40
40
  exports.annotatedPath = annotatedPath;
41
+ exports.canonPath = canonPath;
41
42
  exports.validName = validName;
42
43
  exports.validPath = validPath;
43
44
  const node_path_1 = __importDefault(require("node:path"));
@@ -50,6 +51,20 @@ const CN = 'FileHandler:';
50
51
  function fwd(p) {
51
52
  return p.includes('\\') ? p.replace(/\\/g, '/') : p;
52
53
  }
54
+ // THE ONE CANONICAL FORM OF AN OUTPUT PATH: separators collapsed, `.`
55
+ // and `..` segments resolved, forward slashes.
56
+ //
57
+ // Exported because `save` is not the only place that has to agree about
58
+ // what "the same file" means. `FileOp.before` composes a path from the
59
+ // enclosing Project and Folder nesting and claims it against the
60
+ // duplicate guard; `save` then normalised the same path and wrote it.
61
+ // Two Files named `a.txt` and `./a.txt` therefore claimed two paths and
62
+ // wrote one, so the second silently overwrote the first -- the very
63
+ // case the guard exists to refuse. Go has never had it: `fileBefore`
64
+ // does `path.Clean(fwd(raw))` BEFORE recording anything.
65
+ function canonPath(path) {
66
+ return fwd(node_path_1.default.normalize(path));
67
+ }
53
68
  const JOSTRACA_PROTECT = 'JOSTRACA_PROTECT';
54
69
  // Audit breadcrumb per merge outcome, so the `why` trail says which fast
55
70
  // path (if any) the merge took.
@@ -242,7 +257,7 @@ class FileHandler {
242
257
  write = false;
243
258
  }
244
259
  whence = null == whence ? '' : whence;
245
- path = fwd(node_path_1.default.normalize(path));
260
+ path = canonPath(path);
246
261
  // Which of `existing.txt` / `existing.bin` governs is decided by the
247
262
  // DESTINATION EXTENSION, with the caller able to promote a file the
248
263
  // list does not know about (`saveBinary`) — never to demote a listed
@@ -1 +1 @@
1
- {"version":3,"file":"FileHandler.js","sourceRoot":"","sources":["../../src/build/FileHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FileHandler.js","sourceRoot":"","sources":["../../src/build/FileHandler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { CheckResult, JostracaResult } from './types';
2
+ declare const META_FOLDER = ".jostraca";
3
+ declare function checkRun(generate: (opts: any, root: Function) => Promise<JostracaResult>, opts: any, root: Function): Promise<CheckResult>;
4
+ export { checkRun, META_FOLDER, };
package/dist/check.js ADDED
@@ -0,0 +1,307 @@
1
+ "use strict";
2
+ /* Copyright (c) 2026 Richard Rodger, MIT License */
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
36
+ var __importDefault = (this && this.__importDefault) || function (mod) {
37
+ return (mod && mod.__esModule) ? mod : { "default": mod };
38
+ };
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.META_FOLDER = void 0;
41
+ exports.checkRun = checkRun;
42
+ // HOLD A COMMITTED TREE TO WHAT THE GENERATORS PRODUCE.
43
+ //
44
+ // const res = await Jostraca().check({ folder: './app' }, root)
45
+ // if (0 < res.drift.length) { /* the tree is stale */ }
46
+ //
47
+ // Generate into memory, compare with the folder on disk, and answer
48
+ // with the difference as DATA. It is the CI half of generating: a
49
+ // generator is run, its output is committed and reviewed, and the
50
+ // question a build asks from then on is whether the two still agree.
51
+ //
52
+ // A GENERATION MODE, NOT A TOOL. `mem`, `dryrun`, the existing-file
53
+ // modes and `build: false` are all options on `generate`, and this
54
+ // belongs beside them: every generator wants this gate, whether it is
55
+ // written in TypeScript at the call site or arrives as a component tree
56
+ // from another language. It lived in `tools/cmptree-gen.js` first,
57
+ // which made a general capability look like one consumer's integration
58
+ // detail and put it outside the published package.
59
+ //
60
+ // THE ANSWER IS DATA. `drift` carries the bytes, not a rendered diff: a
61
+ // CLI wants hunks on stderr, a test wants an assertion, a report wants
62
+ // a count. `DiffUtil.hunks` is exported for the first of those.
63
+ //
64
+ // --- what makes the answer trustworthy ------------------------------
65
+ //
66
+ // A CHECK IS A PURE FUNCTION OF THE GENERATOR. The folder is shadowed
67
+ // by an in-memory filesystem, so nothing committed under it can change
68
+ // what the generators produce: every file takes the same path through
69
+ // FileHandler whatever is already there, no existing-file mode fires,
70
+ // and no `exclude` skips a comparison. Without the shadow the check
71
+ // would be reading a tree that had been allowed to influence it.
72
+ //
73
+ // A CHECK WRITES NOTHING, ANYWHERE. Every write goes to memory,
74
+ // including one aimed outside the folder. A command that only asks a
75
+ // question must not be able to answer it by changing something.
76
+ //
77
+ // READS OUTSIDE THE FOLDER FALL THROUGH, so this stays a faithful dry
78
+ // run of a real generate: a `Fragment` or `CopyFiles` source lives
79
+ // outside the output tree and is read as it would be. The one component
80
+ // this cannot serve is `Inject`, which rewrites a file that already
81
+ // exists -- under a check the committed tree is not visible to the run,
82
+ // so an Inject into a file the same run does not also create is refused.
83
+ // That is the price of the shadow, and the shadow is what the gate is
84
+ // for.
85
+ const node_path_1 = __importDefault(require("node:path"));
86
+ const Fs = __importStar(require("node:fs"));
87
+ const memfs_1 = require("./util/memfs");
88
+ // jostraca's own bookkeeping under the output folder (BuildMeta's
89
+ // `foldername`). Timestamped, so never byte-stable, and never part of
90
+ // what a generator claims to produce.
91
+ const META_FOLDER = '.jostraca';
92
+ exports.META_FOLDER = META_FOLDER;
93
+ // Canonical form of a path, AS THE MEMORY VOLUME KEYS IT.
94
+ //
95
+ // `memClean` rather than a second normaliser of its own, so the two
96
+ // agree by construction. They did not when this was `Path.resolve`:
97
+ // that turns `/app` into `D:/app` on Windows while the volume keeps
98
+ // `/app`, and it resolves a relative folder against the process working
99
+ // directory while the writer hands the volume the relative path it
100
+ // composed. Either mismatch made the walk find nothing and every check
101
+ // answer "clean" -- the one wrong answer a gate must never give.
102
+ function canon(p) {
103
+ return (0, memfs_1.memClean)(String(p));
104
+ }
105
+ // Is `p` at or below `root`? On a path BOUNDARY: `/out2/a` is not under
106
+ // `/out`, however much of the string it shares.
107
+ //
108
+ // CASE-INSENSITIVE ON WINDOWS, where the filesystem is: `C:\Users` and
109
+ // `c:\users` name one directory, and treating them as two would route
110
+ // an output path's reads to the committed tree instead of the shadow.
111
+ // That cannot write anything -- every write goes to memory
112
+ // unconditionally -- but it would let what is committed change how a
113
+ // generated file is classified, which is the one thing a check must not
114
+ // allow.
115
+ const FOLD = 'win32' === process.platform;
116
+ function under(p, root) {
117
+ const a = FOLD ? p.toLowerCase() : p;
118
+ const b = FOLD ? root.toLowerCase() : root;
119
+ return a === b || a.startsWith('/' === b ? b : b + '/');
120
+ }
121
+ // Memory under the output folder, `base` outside it.
122
+ //
123
+ // `base` is the filesystem holding the committed tree, which is
124
+ // `node:fs` unless the caller provided one. Keeping it a parameter is
125
+ // what lets a test check one in-memory tree against another without
126
+ // touching disk.
127
+ //
128
+ // `modes` is filled as the run goes: A MODE THE RUN ACTUALLY ASKED FOR.
129
+ // The volume cannot answer this on its own, because it gives every file
130
+ // a default mode, so "what is this file's mode in memory" does not
131
+ // distinguish `File({mode: 0o644})` from a File that said nothing about
132
+ // it. The narrower question -- did the tree DECLARE a mode for this
133
+ // path -- is only visible here, where FileHandler passes it.
134
+ function shadowFs(mem, base, root, modes) {
135
+ const declare = (p, mode) => {
136
+ if (null != mode) {
137
+ modes.set(canon(p), mode & 0o777);
138
+ }
139
+ };
140
+ // memfs reproduces node's refusal to write into a directory that does
141
+ // not exist; FileHandler.ensureDir normally makes it first, and does
142
+ // not when it can see one through the fall-through. So the shadow
143
+ // makes the parent itself.
144
+ const parents = (p) => {
145
+ const dir = node_path_1.default.dirname(canon(p));
146
+ if (!mem.existsSync(dir)) {
147
+ mem.mkdirSync(dir, { recursive: true });
148
+ }
149
+ };
150
+ const readThrough = (name) => (p, ...rest) => ((under(canon(p), root) || null == base[name]) ?
151
+ mem : base)[name](p, ...rest);
152
+ return {
153
+ existsSync: readThrough('existsSync'),
154
+ readFileSync: readThrough('readFileSync'),
155
+ statSync: readThrough('statSync'),
156
+ readdirSync: readThrough('readdirSync'),
157
+ realpathSync: readThrough('realpathSync'),
158
+ writeFileSync: (p, data, opts) => (parents(p),
159
+ declare(p, null == opts || 'string' === typeof opts ? undefined : opts.mode),
160
+ mem.writeFileSync(p, data, opts)),
161
+ mkdirSync: (p, opts) => mem.mkdirSync(p, opts),
162
+ // The atomic write lands under a temp name and is renamed into
163
+ // place, so the declaration follows the bytes to their final path.
164
+ renameSync: (from, to) => {
165
+ parents(to);
166
+ const held = modes.get(canon(from));
167
+ if (undefined !== held) {
168
+ modes.set(canon(to), held);
169
+ modes.delete(canon(from));
170
+ }
171
+ ;
172
+ mem.renameSync(from, to);
173
+ },
174
+ chmodSync: (p, mode) => (declare(p, mode), mem.chmodSync(p, mode)),
175
+ unlinkSync: (p) => mem.unlinkSync(p),
176
+ };
177
+ }
178
+ // What the generators produced, by path relative to the output folder.
179
+ //
180
+ // WALKED FROM THE OUTPUT ROOT rather than read off `vol.toJSON()`. That
181
+ // serialiser walks from `/`, and a Windows path is rooted at its drive
182
+ // (`C:/Users/...`), which has no `/` ancestor to be reached from -- so
183
+ // it answered with nothing at all on a Windows runner while the run
184
+ // itself had gone perfectly. Walking from a root this already knows is
185
+ // both narrower and portable.
186
+ function generated(mem, root) {
187
+ const out = new Map();
188
+ const walk = (dir, rel) => {
189
+ let names;
190
+ try {
191
+ names = mem.readdirSync(dir);
192
+ }
193
+ catch {
194
+ // Nothing was generated under it, which is not an error: an empty
195
+ // tree is a clean check against an empty claim.
196
+ return;
197
+ }
198
+ for (const name of names) {
199
+ const key = '' === rel ? name : rel + '/' + name;
200
+ if (key === META_FOLDER || key.startsWith(META_FOLDER + '/')) {
201
+ continue;
202
+ }
203
+ const full = dir + '/' + name;
204
+ let st;
205
+ try {
206
+ st = mem.statSync(full);
207
+ }
208
+ catch {
209
+ continue;
210
+ }
211
+ if (st.isDirectory()) {
212
+ walk(full, key);
213
+ }
214
+ else {
215
+ out.set(key, mem.readFileSync(full));
216
+ }
217
+ }
218
+ };
219
+ walk(root, '');
220
+ return out;
221
+ }
222
+ // Hold each generated file to the folder.
223
+ //
224
+ // AN UNCLAIMED FILE ON DISK IS LEFT ALONE, and that is a decision
225
+ // rather than an omission. A generator owns the files it emits, not the
226
+ // directory it emits them into: one generator of nine writes a handful
227
+ // of files into a whole application, and a check that called every file
228
+ // it did not write "drift" would report the other eight generators'
229
+ // output, and the hand-written tree around them, as a failure. The cost
230
+ // is that a file which STOPS being generated lingers and is not
231
+ // reported; deleting it is the same review as adding it.
232
+ function compare(base, folder, root, files, modes) {
233
+ const drift = [];
234
+ for (const path of [...files.keys()].sort()) {
235
+ const gen = files.get(path);
236
+ const at = node_path_1.default.join(folder, path);
237
+ let have;
238
+ let stat;
239
+ try {
240
+ have = base.readFileSync(at);
241
+ stat = base.statSync(at);
242
+ }
243
+ catch {
244
+ drift.push({ path, kind: 'missing', generated: gen });
245
+ continue;
246
+ }
247
+ if (!gen.equals(have)) {
248
+ drift.push({ path, kind: 'content', generated: gen, existing: have });
249
+ continue;
250
+ }
251
+ // A MODE IS OUTPUT TOO. `File({mode: 0o755})` makes a generated
252
+ // script executable, and a committed copy with the right bytes and
253
+ // the wrong bits is drift no byte comparison can see -- a run would
254
+ // chmod it and the gate would have said clean.
255
+ //
256
+ // Only where the TREE DECLARED one: a File that says nothing about
257
+ // mode leaves whatever is there, so there is nothing to hold it to.
258
+ // And only on POSIX, because Windows has no permission bits to
259
+ // compare -- chmod there toggles the read-only attribute and
260
+ // nothing else, so this would fail every file on that platform for
261
+ // a difference the filesystem cannot express.
262
+ const mode = modes.get(canon(node_path_1.default.join(root, path)));
263
+ if (!FOLD && null != mode && (stat.mode & 0o777) !== mode) {
264
+ drift.push({
265
+ path,
266
+ kind: 'mode',
267
+ generated: gen,
268
+ existing: have,
269
+ mode,
270
+ existingMode: stat.mode & 0o777,
271
+ });
272
+ }
273
+ }
274
+ return drift;
275
+ }
276
+ // Run `generate` against a shadowed folder and compare.
277
+ //
278
+ // Takes the driver rather than building one, because `generate` closes
279
+ // over the global options a `Jostraca()` was constructed with, and a
280
+ // check has to run with exactly the ones the caller set up.
281
+ async function checkRun(generate, opts, root) {
282
+ const folder = null == opts?.folder ? '.' : opts.folder;
283
+ const abs = canon(folder);
284
+ const base = (null != opts?.fs ? opts.fs() : Fs);
285
+ const vol = (0, memfs_1.memfs)({});
286
+ const modes = new Map();
287
+ const res = await generate({
288
+ ...opts,
289
+ folder,
290
+ fs: () => shadowFs(vol.fs, base, abs, modes),
291
+ // Forced, because each would answer a different question than the
292
+ // one asked. `duplicate` writes a `.jostraca/generated` baseline
293
+ // for a later merge, and a check makes no next run to merge into;
294
+ // `dryrun` would write nothing to the volume, leaving nothing to
295
+ // compare; `build: false` never reaches the file handler at all.
296
+ control: { ...(opts?.control || {}), duplicate: false, dryrun: false },
297
+ build: true,
298
+ }, root);
299
+ const files = generated(vol.fs, abs);
300
+ return {
301
+ folder,
302
+ checked: [...files.keys()].sort(),
303
+ drift: compare(base, folder, abs, files, modes),
304
+ files: res.files,
305
+ };
306
+ }
307
+ //# sourceMappingURL=check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check.js","sourceRoot":"","sources":["../src/check.ts"],"names":[],"mappings":"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"}