jostraca 0.30.1 → 0.31.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.
- 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 +28 -7
- package/dist/build/BuildMeta.js.map +1 -1
- package/dist/build/FileHandler.d.ts +11 -4
- package/dist/build/FileHandler.js +479 -98
- 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 +34 -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 +219 -10
- 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/gen/readme.js +2 -1
- package/package.json +20 -12
- package/src/build/BuildContext.ts +12 -0
- package/src/build/BuildMeta.ts +31 -8
- package/src/build/FileHandler.ts +500 -127
- 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 +45 -7
- package/src/tsconfig.json +3 -1
- package/src/types.ts +5 -0
- package/src/util/basic.ts +251 -11
- package/README.md +0 -289
|
@@ -50,6 +50,16 @@ class BuildContext {
|
|
|
50
50
|
addmeta(file, meta) {
|
|
51
51
|
this.bmeta.add(file, meta);
|
|
52
52
|
}
|
|
53
|
+
// Folder path segments for the current build position, as a canonical
|
|
54
|
+
// (forward-slash) prefix. When neither a Project nor a Folder has seeded
|
|
55
|
+
// the path, fall back to the base output folder — otherwise a top-level
|
|
56
|
+
// File would join onto '' and resolve to '/<name>' at the filesystem
|
|
57
|
+
// root, ignoring the configured output folder entirely. FolderOp.before
|
|
58
|
+
// applies the same fallback when seeding the path.
|
|
59
|
+
folderPath() {
|
|
60
|
+
const { path, parent } = this.current.folder;
|
|
61
|
+
return 0 < path.length ? path.join('/') : parent;
|
|
62
|
+
}
|
|
53
63
|
duplicateFolder() {
|
|
54
64
|
if (null == this.dfolder) {
|
|
55
65
|
this.dfolder =
|
|
@@ -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,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;
|
|
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"}
|
package/dist/build/BuildMeta.js
CHANGED
|
@@ -6,6 +6,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.BuildMeta = void 0;
|
|
7
7
|
const node_path_1 = __importDefault(require("node:path"));
|
|
8
8
|
const basic_1 = require("../util/basic");
|
|
9
|
+
// Log non-fatal weirdness.
|
|
10
|
+
const dlog = (0, basic_1.getdlog)('jostraca', __filename);
|
|
9
11
|
// Handle loading, recording,and saving of build meta data
|
|
10
12
|
class BuildMeta {
|
|
11
13
|
fh;
|
|
@@ -44,7 +46,7 @@ class BuildMeta {
|
|
|
44
46
|
// save over previous
|
|
45
47
|
saveMetaData(this.fh, this.next);
|
|
46
48
|
if (false === this.fh.control.version) {
|
|
47
|
-
this.fh.saveFile(node_path_1.default.join(this.next.foldername, '.gitignore'), `
|
|
49
|
+
this.fh.saveFile(node_path_1.default.join(this.fh.folder, this.next.foldername, '.gitignore'), `
|
|
48
50
|
${this.next.filename}
|
|
49
51
|
generated
|
|
50
52
|
`);
|
|
@@ -54,17 +56,36 @@ generated
|
|
|
54
56
|
}
|
|
55
57
|
exports.BuildMeta = BuildMeta;
|
|
56
58
|
function loadMetaData(fh, bmeta) {
|
|
57
|
-
|
|
59
|
+
// Full (folder-prefixed) path: the FileHandler FS methods use paths
|
|
60
|
+
// directly and no longer re-join `this.folder`.
|
|
61
|
+
const metapath = node_path_1.default.join(fh.folder, bmeta.foldername, bmeta.filename);
|
|
58
62
|
if (fh.existsFile(metapath)) {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
+
try {
|
|
64
|
+
const json = fh.loadJSON(metapath);
|
|
65
|
+
bmeta.last = null == json?.last ? -1 : json.last;
|
|
66
|
+
bmeta.hlast = null == json?.hlast ? -1 : json.hlast;
|
|
67
|
+
bmeta.files = json?.files || {};
|
|
68
|
+
}
|
|
69
|
+
catch (err) {
|
|
70
|
+
// A truncated or hand-edited meta log used to throw straight out of
|
|
71
|
+
// the BuildMeta constructor, so a corrupt bookkeeping file blocked
|
|
72
|
+
// generation entirely — with a JSON parse error that says nothing
|
|
73
|
+
// about how to recover. The log is regenerated on every run, so
|
|
74
|
+
// starting from empty state is safe: the only cost is that merge
|
|
75
|
+
// baselines look absent for one run.
|
|
76
|
+
dlog('meta', 'unreadable meta log, continuing with empty state: ' +
|
|
77
|
+
metapath + ' err=' + err.message);
|
|
78
|
+
bmeta.last = -1;
|
|
79
|
+
bmeta.hlast = -1;
|
|
80
|
+
bmeta.files = {};
|
|
81
|
+
}
|
|
63
82
|
}
|
|
64
83
|
return bmeta;
|
|
65
84
|
}
|
|
66
85
|
function saveMetaData(fh, bmeta) {
|
|
67
|
-
|
|
86
|
+
// Full (folder-prefixed) path: the FileHandler FS methods use paths
|
|
87
|
+
// directly and no longer re-join `this.folder`.
|
|
88
|
+
const metapath = node_path_1.default.join(fh.folder, bmeta.foldername, bmeta.filename);
|
|
68
89
|
fh.saveJSON(metapath, bmeta);
|
|
69
90
|
}
|
|
70
91
|
//# sourceMappingURL=BuildMeta.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BuildMeta.js","sourceRoot":"","sources":["../../src/build/BuildMeta.ts"],"names":[],"mappings":";;;;;;AACA,0DAA4B;AAI5B,
|
|
1
|
+
{"version":3,"file":"BuildMeta.js","sourceRoot":"","sources":["../../src/build/BuildMeta.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,6 +30,7 @@ declare class FileHandler {
|
|
|
30
30
|
unchanged: string[];
|
|
31
31
|
};
|
|
32
32
|
createdDirs: Set<string>;
|
|
33
|
+
savedPaths: Set<string>;
|
|
33
34
|
constructor(bctx: BuildContext, existing: {
|
|
34
35
|
txt: any;
|
|
35
36
|
bin: any;
|
|
@@ -39,13 +40,15 @@ declare class FileHandler {
|
|
|
39
40
|
version: boolean;
|
|
40
41
|
});
|
|
41
42
|
relative(path: string, whence?: string): string;
|
|
42
|
-
|
|
43
|
+
withinFolder(path: string): boolean;
|
|
44
|
+
saveBinary(path: string, newContentSource: string | Buffer, whence?: string): void;
|
|
45
|
+
save(path: string, newContentSource: string | Buffer, write?: boolean | string, whence?: string, mode?: number, isText?: boolean): void;
|
|
43
46
|
copy(frompath: string, topath: string, write?: boolean | string, whence?: string): void;
|
|
44
|
-
merge(
|
|
47
|
+
merge(generated: string, baseline: string, existing: string, why: string[]): {
|
|
45
48
|
content: string;
|
|
46
49
|
conflict: boolean;
|
|
47
50
|
};
|
|
48
|
-
diff(
|
|
51
|
+
diff(generated: string, existing: string): string;
|
|
49
52
|
existsFile(path: string, whence?: string): boolean;
|
|
50
53
|
copyFile(frompath: string, topath: string, whence?: string): void;
|
|
51
54
|
loadJSON(path: string, opts?: any | string, whence?: string): any;
|
|
@@ -53,8 +56,12 @@ declare class FileHandler {
|
|
|
53
56
|
loadFile(path: string, opts?: any | string, whence?: string): string | Buffer;
|
|
54
57
|
ensureFolder(path: string): void;
|
|
55
58
|
private ensureDir;
|
|
59
|
+
private chmodUnchanged;
|
|
60
|
+
private writeFileAtomic;
|
|
56
61
|
saveFile(path: string, content: string | Buffer, opts?: any | string, whence?: string): void;
|
|
57
62
|
filelog(kind: string, path: string): void;
|
|
58
63
|
}
|
|
64
|
+
declare function annotatedPath(target: string, kind: string): string;
|
|
65
|
+
declare function validName(name: any, kind: string, errmark: string): void;
|
|
59
66
|
declare function validPath(path: string, maxdepth: number, errmark: string): void;
|
|
60
|
-
export { validPath, FileHandler };
|
|
67
|
+
export { annotatedPath, validName, validPath, FileHandler };
|