@intentset/publisher 0.13.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.
- package/README.md +12 -2
- package/dist/generate.d.ts +5 -4
- package/dist/generate.d.ts.map +1 -1
- package/dist/generate.js +0 -1
- package/dist/generate.js.map +1 -1
- package/dist/help.d.ts +4 -3
- package/dist/help.d.ts.map +1 -1
- package/dist/help.js +0 -1
- package/dist/help.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/publish.d.ts +3 -1
- package/dist/publish.d.ts.map +1 -1
- package/dist/publish.js +13 -7
- package/dist/publish.js.map +1 -1
- package/dist/snapshot.d.ts +28 -0
- package/dist/snapshot.d.ts.map +1 -0
- package/dist/snapshot.js +8 -0
- package/dist/snapshot.js.map +1 -0
- package/package.json +3 -3
- package/src/generate.ts +5 -5
- package/src/help.ts +4 -4
- package/src/index.ts +1 -0
- package/src/publish.ts +15 -8
- package/src/snapshot.ts +32 -0
package/README.md
CHANGED
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
Publishes reviewed knowledge for one audience and release (`spec/publication.md`): it projects the graph deny by
|
|
4
4
|
default, checks that no excluded record's title or path leaks, and writes Markset documents with their provenance,
|
|
5
|
-
an index, retrieval chunks,
|
|
5
|
+
an index, retrieval chunks, `help.json`, the tips a product shows beside its controls, and `snapshot.json`, the one
|
|
6
|
+
file that names the commit and graph hash it was published from.
|
|
6
7
|
|
|
7
8
|
## Install
|
|
8
9
|
|
|
@@ -25,7 +26,16 @@ installed. The command is always `@intentset/cli`'s: this package has no `intent
|
|
|
25
26
|
for `intentset` alone would fetch an unrelated unscoped package from the registry.
|
|
26
27
|
|
|
27
28
|
From code, `publish(graph, registries, request, { snapshot, publishedAt })` returns the documents, the index, the help
|
|
28
|
-
file and the diagnostics, and refuses the whole request when any field is missing or undeclared
|
|
29
|
+
file, the snapshot file and the diagnostics, and refuses the whole request when any field is missing or undeclared
|
|
30
|
+
(PUB001). The snapshot, the commit and graph hash the run read, is named in `snapshot.json` and nowhere else; each
|
|
31
|
+
document pins what it was made from by its sources' hashes. So publishing the same knowledge at two commits writes
|
|
32
|
+
the same bytes in every file but that one.
|
|
33
|
+
|
|
34
|
+
**When the output is committed.** Publish with `--no-snapshot`, or ignore `snapshot.json` in version control. The
|
|
35
|
+
commit it names is the one checked out when the command ran, which is never the commit that will contain the output,
|
|
36
|
+
and it differs on every branch that changed a record, so branches would conflict on it. Git already records where
|
|
37
|
+
committed output came from. Keep the file when the output is deployed or handed to another system: nothing else says
|
|
38
|
+
which state of the model the documents were made from.
|
|
29
39
|
`@intentset/help` reads the help file in the product.
|
|
30
40
|
|
|
31
41
|
## Learn more
|
package/dist/generate.d.ts
CHANGED
|
@@ -13,14 +13,17 @@
|
|
|
13
13
|
* path appears only in a projection that admits internal records; sources
|
|
14
14
|
* outside the projection are counted, not named; availability is the
|
|
15
15
|
* request's own values, so a document does not list the other editions,
|
|
16
|
-
* roles or releases its knowledge also serves.
|
|
16
|
+
* roles or releases its knowledge also serves. The block carries no snapshot:
|
|
17
|
+
* that is the same for every document in a run and moves with any record in
|
|
18
|
+
* the model, so the run names it once, in the help file and the index
|
|
19
|
+
* (publication §2, §5; ADR 0019), and a document's bytes change only when what
|
|
20
|
+
* it was made from does.
|
|
17
21
|
*
|
|
18
22
|
* The result is checked as Markset before it is emitted: a Markset error is
|
|
19
23
|
* PUB003, and a `:::` directive outside Markset's vocabulary is PUB004
|
|
20
24
|
* (CLAUDE.md invariant 5: profiles never add a directive).
|
|
21
25
|
*/
|
|
22
26
|
import type { Artifact, Diagnostic, Graph, Visibility } from "@intentset/core";
|
|
23
|
-
import type { Snapshot } from "./project.ts";
|
|
24
27
|
import { type PublicationRequest } from "./request.ts";
|
|
25
28
|
export declare const PUBLICATION_PROFILE = "intentset/publication/0.2";
|
|
26
29
|
/** The top-level frontmatter key of a generated document. */
|
|
@@ -45,7 +48,6 @@ export interface PublicationMeta {
|
|
|
45
48
|
sources: SourceStamp[];
|
|
46
49
|
/** How many explained artifacts are outside the projection and so not named. */
|
|
47
50
|
withheldSources: number;
|
|
48
|
-
snapshot: Snapshot;
|
|
49
51
|
audience: string;
|
|
50
52
|
/** The request's values, and the flags the knowledge requires (every one of them named by the request). */
|
|
51
53
|
availability: {
|
|
@@ -60,7 +62,6 @@ export interface PublicationMeta {
|
|
|
60
62
|
publishedAt: string;
|
|
61
63
|
}
|
|
62
64
|
export interface GenerateOptions {
|
|
63
|
-
snapshot: Snapshot;
|
|
64
65
|
publishedAt: string;
|
|
65
66
|
}
|
|
66
67
|
export interface GeneratedDocument {
|
package/dist/generate.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAK/E,OAAO,EAAE,KAAK,kBAAkB,EAAU,MAAM,cAAc,CAAC;AAG/D,eAAO,MAAM,mBAAmB,8BAA8B,CAAC;AAC/D,6DAA6D;AAC7D,eAAO,MAAM,eAAe,0BAA0B,CAAC;AAEvD,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,gEAAgE;IAChE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qEAAqE;AACrE,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,mBAAmB,CAAC;IACpC,OAAO,EAAE,IAAI,CAAC;IACd,uGAAuG;IACvG,UAAU,EAAE,UAAU,CAAC;IACvB,sFAAsF;IACtF,MAAM,EAAE,WAAW,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACxC,+DAA+D;IAC/D,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,gFAAgF;IAChF,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,2GAA2G;IAC3G,YAAY,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IACnG,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,eAAe,CAAC;CAC9B;AAED,kEAAkE;AAClE,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED,8GAA8G;AAC9G,wBAAgB,eAAe,CAC7B,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,kBAAkB,EAC3B,OAAO,EAAE,eAAe,GACvB,eAAe,CAqCjB;AAED,8EAA8E;AAC9E,wBAAgB,aAAa,CAAC,WAAW,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,CASnH;AAED,kFAAkF;AAClF,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,kBAAkB,EAC3B,OAAO,EAAE,eAAe,GACvB;IAAE,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAAC,WAAW,EAAE,UAAU,EAAE,CAAA;CAAE,CA0BnE;AAED,iGAAiG;AACjG,wBAAgB,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,UAAU,EAAE,CAsEtG"}
|
package/dist/generate.js
CHANGED
|
@@ -40,7 +40,6 @@ export function publicationMeta(graph, artifact, request, options) {
|
|
|
40
40
|
source,
|
|
41
41
|
sources,
|
|
42
42
|
withheldSources,
|
|
43
|
-
snapshot: { commit: options.snapshot.commit, graphHash: options.snapshot.graphHash },
|
|
44
43
|
audience: request.audience,
|
|
45
44
|
availability: {
|
|
46
45
|
product: request.product,
|
package/dist/generate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"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"}
|
package/dist/help.d.ts
CHANGED
|
@@ -10,9 +10,12 @@
|
|
|
10
10
|
* binds a control to the ID has already written it where the same reader can
|
|
11
11
|
* see it, and nothing else of that artifact is carried: never its title, path,
|
|
12
12
|
* status or prose. Two documents tipping one ID: the lower knowledge ID wins.
|
|
13
|
+
*
|
|
14
|
+
* It carries no snapshot: the run names the commit and graph hash it was
|
|
15
|
+
* published from in the snapshot file alone (snapshot.ts, ADR 0021), so this
|
|
16
|
+
* file's bytes change only when a tip, a published document or the request does.
|
|
13
17
|
*/
|
|
14
18
|
import type { Graph, Visibility } from "@intentset/core";
|
|
15
|
-
import type { Snapshot } from "./project.ts";
|
|
16
19
|
import type { PublicationRequest } from "./request.ts";
|
|
17
20
|
export declare const HELP_PROFILE = "intentset/help/0.2";
|
|
18
21
|
/** The file's name beside the published documents. */
|
|
@@ -34,7 +37,6 @@ export interface HelpFile {
|
|
|
34
37
|
profile: typeof HELP_PROFILE;
|
|
35
38
|
derived: true;
|
|
36
39
|
projection: Visibility;
|
|
37
|
-
snapshot: Snapshot;
|
|
38
40
|
audience: string;
|
|
39
41
|
availability: {
|
|
40
42
|
product: string;
|
|
@@ -50,7 +52,6 @@ export interface HelpFile {
|
|
|
50
52
|
tips: Record<string, HelpTip>;
|
|
51
53
|
}
|
|
52
54
|
export interface HelpOptions {
|
|
53
|
-
snapshot: Snapshot;
|
|
54
55
|
publishedAt: string;
|
|
55
56
|
}
|
|
56
57
|
/** The help file for the documents a run published, which are given by knowledge ID. */
|
package/dist/help.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../src/help.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../src/help.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,EAAY,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAEnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEvD,eAAO,MAAM,YAAY,uBAAuB,CAAC;AACjD,sDAAsD;AACtD,eAAO,MAAM,SAAS,cAAc,CAAC;AAErC,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,OAAO;IACtB,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,4DAA4D;IAC5D,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,+CAA+C;AAC/C,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,OAAO,YAAY,CAAC;IAC7B,OAAO,EAAE,IAAI,CAAC;IACd,UAAU,EAAE,UAAU,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IACnG,WAAW,EAAE,MAAM,CAAC;IACpB,sDAAsD;IACtD,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wFAAwF;AACxF,wBAAgB,QAAQ,CACtB,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,SAAS,MAAM,EAAE,EAC/B,OAAO,EAAE,kBAAkB,EAC3B,OAAO,EAAE,WAAW,GACnB,QAAQ,CA+BV"}
|
package/dist/help.js
CHANGED
|
@@ -24,7 +24,6 @@ export function helpFile(graph, publishedIds, request, options) {
|
|
|
24
24
|
profile: HELP_PROFILE,
|
|
25
25
|
derived: true,
|
|
26
26
|
projection: request.visibility,
|
|
27
|
-
snapshot: { commit: options.snapshot.commit, graphHash: options.snapshot.graphHash },
|
|
28
27
|
audience: request.audience,
|
|
29
28
|
availability: {
|
|
30
29
|
product: request.product,
|
package/dist/help.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help.js","sourceRoot":"","sources":["../src/help.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"help.js","sourceRoot":"","sources":["../src/help.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGjD,MAAM,CAAC,MAAM,YAAY,GAAG,oBAAoB,CAAC;AACjD,sDAAsD;AACtD,MAAM,CAAC,MAAM,SAAS,GAAG,WAAW,CAAC;AAkCrC,wFAAwF;AACxF,MAAM,UAAU,QAAQ,CACtB,KAAY,EACZ,YAA+B,EAC/B,OAA2B,EAC3B,OAAoB;IAEpB,MAAM,GAAG,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACnD,MAAM,SAAS,GAAoB,EAAE,CAAC;IACtC,MAAM,IAAI,GAA4B,EAAE,CAAC;IACzC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAmB,CAAC;IAC3C,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACrB,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAa,CAAC;QACrD,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;QACrE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;YAC7E,6EAA6E;YAC7E,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,SAAS;YAC/B,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,EAAG,QAAQ,CAAC,IAAI,CAAC,IAA+B,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;QACjG,CAAC;IACH,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;QAAE,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAY,CAAC;IACpG,OAAO;QACL,OAAO,EAAE,YAAY;QACrB,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,YAAY,EAAE;YACZ,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;SACxD;QACD,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,SAAS;QACT,IAAI;KACL,CAAC;AACJ,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -12,5 +12,6 @@ export { type PublicationIndex, type PublishOptions, type PublishResult, type Pu
|
|
|
12
12
|
export { type Reference, type ReferenceKind, checkReferences, checkTitles, findReferences, resolveTarget, titlePattern, } from "./references.ts";
|
|
13
13
|
export { type IndexedRequest, PROJECTION_ADMITS, type PublicationRequest, REQUEST_DIMENSIONS, type RequestDimension, admits, checkRequest, indexedRequest, } from "./request.ts";
|
|
14
14
|
export { CURRENT_PIN, PIN_KINDS, type PinKind, REVIEW_EXTENSION, type ReviewRecord, type ReviewStatus, bindReviewPins, knowledgeReport, pinHash, readReviewRecord, reviewSources, reviewStatus, } from "./review.ts";
|
|
15
|
+
export { SNAPSHOT_FILE, SNAPSHOT_PROFILE, type SnapshotFile, snapshotFile } from "./snapshot.ts";
|
|
15
16
|
export { YamlEmitError, type YamlValue, emitYaml } from "./yaml.ts";
|
|
16
17
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACxF,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,eAAe,EACf,mBAAmB,EACnB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,aAAa,EACb,eAAe,GAChB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,SAAS,EACT,YAAY,EACZ,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,OAAO,EACZ,QAAQ,GACT,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,iBAAiB,EACjB,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,QAAQ,EACb,eAAe,EACf,cAAc,EACd,OAAO,GACR,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,eAAe,EACf,KAAK,aAAa,EAClB,OAAO,EACP,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,eAAe,EACf,WAAW,EACX,cAAc,EACd,aAAa,EACb,YAAY,GACb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,KAAK,cAAc,EACnB,iBAAiB,EACjB,KAAK,kBAAkB,EACvB,kBAAkB,EAClB,KAAK,gBAAgB,EACrB,MAAM,EACN,YAAY,EACZ,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,WAAW,EACX,SAAS,EACT,KAAK,OAAO,EACZ,gBAAgB,EAChB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,cAAc,EACd,eAAe,EACf,OAAO,EACP,gBAAgB,EAChB,aAAa,EACb,YAAY,GACb,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,aAAa,EAAE,KAAK,SAAS,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACxF,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,eAAe,EACf,mBAAmB,EACnB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,aAAa,EACb,eAAe,GAChB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,SAAS,EACT,YAAY,EACZ,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,OAAO,EACZ,QAAQ,GACT,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,iBAAiB,EACjB,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,QAAQ,EACb,eAAe,EACf,cAAc,EACd,OAAO,GACR,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,eAAe,EACf,KAAK,aAAa,EAClB,OAAO,EACP,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,eAAe,EACf,WAAW,EACX,cAAc,EACd,aAAa,EACb,YAAY,GACb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,KAAK,cAAc,EACnB,iBAAiB,EACjB,KAAK,kBAAkB,EACvB,kBAAkB,EAClB,KAAK,gBAAgB,EACrB,MAAM,EACN,YAAY,EACZ,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,WAAW,EACX,SAAS,EACT,KAAK,OAAO,EACZ,gBAAgB,EAChB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,cAAc,EACd,eAAe,EACf,OAAO,EACP,gBAAgB,EAChB,aAAa,EACb,YAAY,GACb,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,KAAK,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACjG,OAAO,EAAE,aAAa,EAAE,KAAK,SAAS,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -12,5 +12,6 @@ export { REFUSAL_REASONS, publish, renderDocument, } from "./publish.js";
|
|
|
12
12
|
export { checkReferences, checkTitles, findReferences, resolveTarget, titlePattern, } from "./references.js";
|
|
13
13
|
export { PROJECTION_ADMITS, REQUEST_DIMENSIONS, admits, checkRequest, indexedRequest, } from "./request.js";
|
|
14
14
|
export { CURRENT_PIN, PIN_KINDS, REVIEW_EXTENSION, bindReviewPins, knowledgeReport, pinHash, readReviewRecord, reviewSources, reviewStatus, } from "./review.js";
|
|
15
|
+
export { SNAPSHOT_FILE, SNAPSHOT_PROFILE, snapshotFile } from "./snapshot.js";
|
|
15
16
|
export { YamlEmitError, emitYaml } from "./yaml.js";
|
|
16
17
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAmD,QAAQ,EAAE,MAAM,aAAa,CAAC;AACxF,OAAO,EAGL,eAAe,EACf,mBAAmB,EAGnB,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,aAAa,EACb,eAAe,GAChB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,SAAS,EACT,YAAY,EAKZ,QAAQ,GACT,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,iBAAiB,EAMjB,eAAe,EACf,cAAc,EACd,OAAO,GACR,MAAM,cAAc,CAAC;AACtB,OAAO,EAKL,eAAe,EAEf,OAAO,EACP,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,OAAO,EAGL,eAAe,EACf,WAAW,EACX,cAAc,EACd,aAAa,EACb,YAAY,GACb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAEL,iBAAiB,EAEjB,kBAAkB,EAElB,MAAM,EACN,YAAY,EACZ,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,WAAW,EACX,SAAS,EAET,gBAAgB,EAGhB,cAAc,EACd,eAAe,EACf,OAAO,EACP,gBAAgB,EAChB,aAAa,EACb,YAAY,GACb,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,aAAa,EAAkB,QAAQ,EAAE,MAAM,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAmD,QAAQ,EAAE,MAAM,aAAa,CAAC;AACxF,OAAO,EAGL,eAAe,EACf,mBAAmB,EAGnB,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,aAAa,EACb,eAAe,GAChB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,SAAS,EACT,YAAY,EAKZ,QAAQ,GACT,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,iBAAiB,EAMjB,eAAe,EACf,cAAc,EACd,OAAO,GACR,MAAM,cAAc,CAAC;AACtB,OAAO,EAKL,eAAe,EAEf,OAAO,EACP,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,OAAO,EAGL,eAAe,EACf,WAAW,EACX,cAAc,EACd,aAAa,EACb,YAAY,GACb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAEL,iBAAiB,EAEjB,kBAAkB,EAElB,MAAM,EACN,YAAY,EACZ,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,WAAW,EACX,SAAS,EAET,gBAAgB,EAGhB,cAAc,EACd,eAAe,EACf,OAAO,EACP,gBAAgB,EAChB,aAAa,EACb,YAAY,GACb,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAqB,YAAY,EAAE,MAAM,eAAe,CAAC;AACjG,OAAO,EAAE,aAAa,EAAkB,QAAQ,EAAE,MAAM,WAAW,CAAC"}
|
package/dist/publish.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { type HelpFile } from "./help.ts";
|
|
|
4
4
|
import { type Snapshot } from "./project.ts";
|
|
5
5
|
import { type IndexedRequest, type PublicationRequest } from "./request.ts";
|
|
6
6
|
import type { ReviewStatus } from "./review.ts";
|
|
7
|
+
import { type SnapshotFile } from "./snapshot.ts";
|
|
7
8
|
/** Why a document that passed the projection was still not published. */
|
|
8
9
|
export declare const REFUSAL_REASONS: readonly ["reference", "title", "directive", "markset"];
|
|
9
10
|
export type RefusalReason = (typeof REFUSAL_REASONS)[number];
|
|
@@ -19,7 +20,6 @@ export interface PublishedDocument extends GeneratedDocument {
|
|
|
19
20
|
html?: string;
|
|
20
21
|
}
|
|
21
22
|
export interface PublicationIndex {
|
|
22
|
-
snapshot: Snapshot;
|
|
23
23
|
/** The request without authorization flags, or null when it was refused. */
|
|
24
24
|
request: IndexedRequest | null;
|
|
25
25
|
published: string[];
|
|
@@ -31,6 +31,8 @@ export interface PublishResult {
|
|
|
31
31
|
index: PublicationIndex;
|
|
32
32
|
/** The help file (spec/publication.md §5), or null when the request was refused. */
|
|
33
33
|
help: HelpFile | null;
|
|
34
|
+
/** The snapshot file (spec/publication.md §6): the only part of the result that names the snapshot. */
|
|
35
|
+
snapshot: SnapshotFile;
|
|
34
36
|
diagnostics: Diagnostic[];
|
|
35
37
|
ok: boolean;
|
|
36
38
|
}
|
package/dist/publish.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../src/publish.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../src/publish.ts"],"names":[],"mappings":"AA+BA,OAAO,EAEL,KAAK,UAAU,EACf,KAAK,KAAK,EACV,KAAK,UAAU,EAIhB,MAAM,iBAAiB,CAAC;AAIzB,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,eAAe,EAAoB,MAAM,eAAe,CAAC;AAC/F,OAAO,EAAE,KAAK,QAAQ,EAAY,MAAM,WAAW,CAAC;AACpD,OAAO,EAAwB,KAAK,QAAQ,EAAW,MAAM,cAAc,CAAC;AAE5E,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,kBAAkB,EAA0B,MAAM,cAAc,CAAC;AACpG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,KAAK,YAAY,EAAgB,MAAM,eAAe,CAAC;AAEhE,yEAAyE;AACzE,eAAO,MAAM,eAAe,YAAI,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,CAAU,CAAC;AACvF,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7D,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,QAAQ,CAAC;IACnB,kGAAkG;IAClG,WAAW,EAAE,MAAM,CAAC;IACpB,mGAAmG;IACnG,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,iBAAkB,SAAQ,iBAAiB;IAC1D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,4EAA4E;IAC5E,OAAO,EAAE,cAAc,GAAG,IAAI,CAAC;IAC/B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,+DAA+D;IAC/D,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B,KAAK,EAAE,gBAAgB,CAAC;IACxB,oFAAoF;IACpF,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IACtB,uGAAuG;IACvG,QAAQ,EAAE,YAAY,CAAC;IACvB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,EAAE,EAAE,OAAO,CAAC;CACb;AAED,wBAAgB,OAAO,CACrB,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,kBAAkB,EAC3B,OAAO,EAAE,cAAc,GACtB,aAAa,CA+Ef;AAUD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,eAAe,GAAG,MAAM,CAOpF"}
|
package/dist/publish.js
CHANGED
|
@@ -15,13 +15,18 @@
|
|
|
15
15
|
* The help file (help.ts) carries every published document's tips, keyed by
|
|
16
16
|
* the ID each explains, for a product's runtime.
|
|
17
17
|
*
|
|
18
|
-
* The index is what a customer-facing tool may read (Core §10): the
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
* published.
|
|
18
|
+
* The index is what a customer-facing tool may read (Core §10): the request
|
|
19
|
+
* without its authorization flags, the published IDs, and the number of
|
|
20
|
+
* artifacts excluded for each reason. It names nothing that was not published.
|
|
22
21
|
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
22
|
+
* The snapshot file (snapshot.ts) is the one place a publication names the
|
|
23
|
+
* commit and graph hash it was made from (ADR 0019, ADR 0021). Both move with
|
|
24
|
+
* every commit that changes a record, so no document, chunk, index or help
|
|
25
|
+
* file carries them: their bytes change only when what they say does.
|
|
26
|
+
*
|
|
27
|
+
* Deterministic: the same graph, request and `publishedAt` give the same
|
|
28
|
+
* documents, index and help file, whatever the commit; the snapshot file is
|
|
29
|
+
* the same bytes for the same snapshot.
|
|
25
30
|
*/
|
|
26
31
|
import { readFileSync } from "node:fs";
|
|
27
32
|
import { canonicalJson, hasErrors, sortDiagnostics, } from "@intentset/core";
|
|
@@ -33,6 +38,7 @@ import { helpFile } from "./help.js";
|
|
|
33
38
|
import { project } from "./project.js";
|
|
34
39
|
import { checkReferences, checkTitles } from "./references.js";
|
|
35
40
|
import { admits, indexedRequest } from "./request.js";
|
|
41
|
+
import { snapshotFile } from "./snapshot.js";
|
|
36
42
|
/** Why a document that passed the projection was still not published. */
|
|
37
43
|
export const REFUSAL_REASONS = ["reference", "title", "directive", "markset"];
|
|
38
44
|
export function publish(graph, registries, request, options) {
|
|
@@ -102,8 +108,8 @@ export function publish(graph, registries, request, options) {
|
|
|
102
108
|
help: req === null
|
|
103
109
|
? null
|
|
104
110
|
: helpFile(graph, documents.map((document) => document.id), req, options),
|
|
111
|
+
snapshot: snapshotFile(options.snapshot),
|
|
105
112
|
index: {
|
|
106
|
-
snapshot: { commit: options.snapshot.commit, graphHash: options.snapshot.graphHash },
|
|
107
113
|
request: req === null ? null : indexedRequest(req),
|
|
108
114
|
published: documents.map((document) => document.id),
|
|
109
115
|
excludedCounts,
|
package/dist/publish.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../src/publish.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../src/publish.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The snapshot file (spec/publication.md §6): the commit and graph hash a
|
|
3
|
+
* publication was made from, in a file of its own beside the documents.
|
|
4
|
+
*
|
|
5
|
+
* It is the one file of a publication that names the snapshot (ADR 0021).
|
|
6
|
+
* Both values move with every commit that changes a record, so any other
|
|
7
|
+
* file that carried them would be rewritten by every publication, whatever
|
|
8
|
+
* it says; with them here, the documents, the index, the help file and the
|
|
9
|
+
* chunks are the same bytes for the same model, request and `publishedAt`,
|
|
10
|
+
* at any commit. The file carries nothing of the request, so every
|
|
11
|
+
* projection published in one run writes the same bytes.
|
|
12
|
+
*/
|
|
13
|
+
import type { Snapshot } from "./project.ts";
|
|
14
|
+
export declare const SNAPSHOT_PROFILE = "intentset/snapshot/0.2";
|
|
15
|
+
/** The file's name beside the published documents. */
|
|
16
|
+
export declare const SNAPSHOT_FILE = "snapshot.json";
|
|
17
|
+
/** `snapshot.json`, in the order it is written. */
|
|
18
|
+
export interface SnapshotFile {
|
|
19
|
+
profile: typeof SNAPSHOT_PROFILE;
|
|
20
|
+
derived: true;
|
|
21
|
+
/** The commit published from, or null when none could be read. */
|
|
22
|
+
commit: string | null;
|
|
23
|
+
/** The hash of the graph published from. */
|
|
24
|
+
graphHash: string;
|
|
25
|
+
}
|
|
26
|
+
/** The snapshot file for a publication made from `snapshot`. */
|
|
27
|
+
export declare function snapshotFile(snapshot: Snapshot): SnapshotFile;
|
|
28
|
+
//# sourceMappingURL=snapshot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../src/snapshot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,eAAO,MAAM,gBAAgB,2BAA2B,CAAC;AACzD,sDAAsD;AACtD,eAAO,MAAM,aAAa,kBAAkB,CAAC;AAE7C,mDAAmD;AACnD,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,gBAAgB,CAAC;IACjC,OAAO,EAAE,IAAI,CAAC;IACd,kEAAkE;IAClE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,4CAA4C;IAC5C,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,gEAAgE;AAChE,wBAAgB,YAAY,CAAC,QAAQ,EAAE,QAAQ,GAAG,YAAY,CAE7D"}
|
package/dist/snapshot.js
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export const SNAPSHOT_PROFILE = "intentset/snapshot/0.2";
|
|
2
|
+
/** The file's name beside the published documents. */
|
|
3
|
+
export const SNAPSHOT_FILE = "snapshot.json";
|
|
4
|
+
/** The snapshot file for a publication made from `snapshot`. */
|
|
5
|
+
export function snapshotFile(snapshot) {
|
|
6
|
+
return { profile: SNAPSHOT_PROFILE, derived: true, commit: snapshot.commit, graphHash: snapshot.graphHash };
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=snapshot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../src/snapshot.ts"],"names":[],"mappings":"AAcA,MAAM,CAAC,MAAM,gBAAgB,GAAG,wBAAwB,CAAC;AACzD,sDAAsD;AACtD,MAAM,CAAC,MAAM,aAAa,GAAG,eAAe,CAAC;AAY7C,gEAAgE;AAChE,MAAM,UAAU,YAAY,CAAC,QAAkB;IAC7C,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC;AAC9G,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@intentset/publisher",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.15.0",
|
|
4
4
|
"description": "Audience and release projection of reviewed knowledge into Markset documents with provenance.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"intentset",
|
|
@@ -35,8 +35,8 @@
|
|
|
35
35
|
}
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@intentset/core": "^0.
|
|
39
|
-
"@intentset/markset-adapter": "^0.
|
|
38
|
+
"@intentset/core": "^0.15.0",
|
|
39
|
+
"@intentset/markset-adapter": "^0.15.0",
|
|
40
40
|
"@markset-lang/parser": "0.4.1",
|
|
41
41
|
"@markset-lang/render-html": "0.4.1"
|
|
42
42
|
}
|
package/src/generate.ts
CHANGED
|
@@ -13,7 +13,11 @@
|
|
|
13
13
|
* path appears only in a projection that admits internal records; sources
|
|
14
14
|
* outside the projection are counted, not named; availability is the
|
|
15
15
|
* request's own values, so a document does not list the other editions,
|
|
16
|
-
* roles or releases its knowledge also serves.
|
|
16
|
+
* roles or releases its knowledge also serves. The block carries no snapshot:
|
|
17
|
+
* that is the same for every document in a run and moves with any record in
|
|
18
|
+
* the model, so the run names it once, in the help file and the index
|
|
19
|
+
* (publication §2, §5; ADR 0019), and a document's bytes change only when what
|
|
20
|
+
* it was made from does.
|
|
17
21
|
*
|
|
18
22
|
* The result is checked as Markset before it is emitted: a Markset error is
|
|
19
23
|
* PUB003, and a `:::` directive outside Markset's vocabulary is PUB004
|
|
@@ -24,7 +28,6 @@ import { marksetCarrier } from "@intentset/markset-adapter";
|
|
|
24
28
|
import { BLOCK_DIRECTIVE_NAMES, parseDocument } from "@markset-lang/parser";
|
|
25
29
|
import { bodyLineOffset } from "./body.ts";
|
|
26
30
|
import { publicationDiagnostic, sortedUnique } from "./diagnostic.ts";
|
|
27
|
-
import type { Snapshot } from "./project.ts";
|
|
28
31
|
import { type PublicationRequest, admits } from "./request.ts";
|
|
29
32
|
import { type YamlValue, emitYaml } from "./yaml.ts";
|
|
30
33
|
|
|
@@ -51,7 +54,6 @@ export interface PublicationMeta {
|
|
|
51
54
|
sources: SourceStamp[];
|
|
52
55
|
/** How many explained artifacts are outside the projection and so not named. */
|
|
53
56
|
withheldSources: number;
|
|
54
|
-
snapshot: Snapshot;
|
|
55
57
|
audience: string;
|
|
56
58
|
/** The request's values, and the flags the knowledge requires (every one of them named by the request). */
|
|
57
59
|
availability: { product: string; release: string; role: string; edition: string; flags: string[] };
|
|
@@ -61,7 +63,6 @@ export interface PublicationMeta {
|
|
|
61
63
|
}
|
|
62
64
|
|
|
63
65
|
export interface GenerateOptions {
|
|
64
|
-
snapshot: Snapshot;
|
|
65
66
|
publishedAt: string;
|
|
66
67
|
}
|
|
67
68
|
|
|
@@ -109,7 +110,6 @@ export function publicationMeta(
|
|
|
109
110
|
source,
|
|
110
111
|
sources,
|
|
111
112
|
withheldSources,
|
|
112
|
-
snapshot: { commit: options.snapshot.commit, graphHash: options.snapshot.graphHash },
|
|
113
113
|
audience: request.audience,
|
|
114
114
|
availability: {
|
|
115
115
|
product: request.product,
|
package/src/help.ts
CHANGED
|
@@ -10,10 +10,13 @@
|
|
|
10
10
|
* binds a control to the ID has already written it where the same reader can
|
|
11
11
|
* see it, and nothing else of that artifact is carried: never its title, path,
|
|
12
12
|
* status or prose. Two documents tipping one ID: the lower knowledge ID wins.
|
|
13
|
+
*
|
|
14
|
+
* It carries no snapshot: the run names the commit and graph hash it was
|
|
15
|
+
* published from in the snapshot file alone (snapshot.ts, ADR 0021), so this
|
|
16
|
+
* file's bytes change only when a tip, a published document or the request does.
|
|
13
17
|
*/
|
|
14
18
|
import type { Artifact, Graph, Visibility } from "@intentset/core";
|
|
15
19
|
import { compareStrings } from "./diagnostic.ts";
|
|
16
|
-
import type { Snapshot } from "./project.ts";
|
|
17
20
|
import type { PublicationRequest } from "./request.ts";
|
|
18
21
|
|
|
19
22
|
export const HELP_PROFILE = "intentset/help/0.2";
|
|
@@ -39,7 +42,6 @@ export interface HelpFile {
|
|
|
39
42
|
profile: typeof HELP_PROFILE;
|
|
40
43
|
derived: true;
|
|
41
44
|
projection: Visibility;
|
|
42
|
-
snapshot: Snapshot;
|
|
43
45
|
audience: string;
|
|
44
46
|
availability: { product: string; release: string; role: string; edition: string; flags: string[] };
|
|
45
47
|
publishedAt: string;
|
|
@@ -50,7 +52,6 @@ export interface HelpFile {
|
|
|
50
52
|
}
|
|
51
53
|
|
|
52
54
|
export interface HelpOptions {
|
|
53
|
-
snapshot: Snapshot;
|
|
54
55
|
publishedAt: string;
|
|
55
56
|
}
|
|
56
57
|
|
|
@@ -79,7 +80,6 @@ export function helpFile(
|
|
|
79
80
|
profile: HELP_PROFILE,
|
|
80
81
|
derived: true,
|
|
81
82
|
projection: request.visibility,
|
|
82
|
-
snapshot: { commit: options.snapshot.commit, graphHash: options.snapshot.graphHash },
|
|
83
83
|
audience: request.audience,
|
|
84
84
|
availability: {
|
|
85
85
|
product: request.product,
|
package/src/index.ts
CHANGED
package/src/publish.ts
CHANGED
|
@@ -15,13 +15,18 @@
|
|
|
15
15
|
* The help file (help.ts) carries every published document's tips, keyed by
|
|
16
16
|
* the ID each explains, for a product's runtime.
|
|
17
17
|
*
|
|
18
|
-
* The index is what a customer-facing tool may read (Core §10): the
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
* published.
|
|
18
|
+
* The index is what a customer-facing tool may read (Core §10): the request
|
|
19
|
+
* without its authorization flags, the published IDs, and the number of
|
|
20
|
+
* artifacts excluded for each reason. It names nothing that was not published.
|
|
22
21
|
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
22
|
+
* The snapshot file (snapshot.ts) is the one place a publication names the
|
|
23
|
+
* commit and graph hash it was made from (ADR 0019, ADR 0021). Both move with
|
|
24
|
+
* every commit that changes a record, so no document, chunk, index or help
|
|
25
|
+
* file carries them: their bytes change only when what they say does.
|
|
26
|
+
*
|
|
27
|
+
* Deterministic: the same graph, request and `publishedAt` give the same
|
|
28
|
+
* documents, index and help file, whatever the commit; the snapshot file is
|
|
29
|
+
* the same bytes for the same snapshot.
|
|
25
30
|
*/
|
|
26
31
|
import { readFileSync } from "node:fs";
|
|
27
32
|
import {
|
|
@@ -42,6 +47,7 @@ import { type ExclusionReason, type Snapshot, project } from "./project.ts";
|
|
|
42
47
|
import { checkReferences, checkTitles } from "./references.ts";
|
|
43
48
|
import { type IndexedRequest, type PublicationRequest, admits, indexedRequest } from "./request.ts";
|
|
44
49
|
import type { ReviewStatus } from "./review.ts";
|
|
50
|
+
import { type SnapshotFile, snapshotFile } from "./snapshot.ts";
|
|
45
51
|
|
|
46
52
|
/** Why a document that passed the projection was still not published. */
|
|
47
53
|
export const REFUSAL_REASONS = ["reference", "title", "directive", "markset"] as const;
|
|
@@ -61,7 +67,6 @@ export interface PublishedDocument extends GeneratedDocument {
|
|
|
61
67
|
}
|
|
62
68
|
|
|
63
69
|
export interface PublicationIndex {
|
|
64
|
-
snapshot: Snapshot;
|
|
65
70
|
/** The request without authorization flags, or null when it was refused. */
|
|
66
71
|
request: IndexedRequest | null;
|
|
67
72
|
published: string[];
|
|
@@ -74,6 +79,8 @@ export interface PublishResult {
|
|
|
74
79
|
index: PublicationIndex;
|
|
75
80
|
/** The help file (spec/publication.md §5), or null when the request was refused. */
|
|
76
81
|
help: HelpFile | null;
|
|
82
|
+
/** The snapshot file (spec/publication.md §6): the only part of the result that names the snapshot. */
|
|
83
|
+
snapshot: SnapshotFile;
|
|
77
84
|
diagnostics: Diagnostic[];
|
|
78
85
|
ok: boolean;
|
|
79
86
|
}
|
|
@@ -153,8 +160,8 @@ export function publish(
|
|
|
153
160
|
req,
|
|
154
161
|
options,
|
|
155
162
|
),
|
|
163
|
+
snapshot: snapshotFile(options.snapshot),
|
|
156
164
|
index: {
|
|
157
|
-
snapshot: { commit: options.snapshot.commit, graphHash: options.snapshot.graphHash },
|
|
158
165
|
request: req === null ? null : indexedRequest(req),
|
|
159
166
|
published: documents.map((document) => document.id),
|
|
160
167
|
excludedCounts,
|
package/src/snapshot.ts
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The snapshot file (spec/publication.md §6): the commit and graph hash a
|
|
3
|
+
* publication was made from, in a file of its own beside the documents.
|
|
4
|
+
*
|
|
5
|
+
* It is the one file of a publication that names the snapshot (ADR 0021).
|
|
6
|
+
* Both values move with every commit that changes a record, so any other
|
|
7
|
+
* file that carried them would be rewritten by every publication, whatever
|
|
8
|
+
* it says; with them here, the documents, the index, the help file and the
|
|
9
|
+
* chunks are the same bytes for the same model, request and `publishedAt`,
|
|
10
|
+
* at any commit. The file carries nothing of the request, so every
|
|
11
|
+
* projection published in one run writes the same bytes.
|
|
12
|
+
*/
|
|
13
|
+
import type { Snapshot } from "./project.ts";
|
|
14
|
+
|
|
15
|
+
export const SNAPSHOT_PROFILE = "intentset/snapshot/0.2";
|
|
16
|
+
/** The file's name beside the published documents. */
|
|
17
|
+
export const SNAPSHOT_FILE = "snapshot.json";
|
|
18
|
+
|
|
19
|
+
/** `snapshot.json`, in the order it is written. */
|
|
20
|
+
export interface SnapshotFile {
|
|
21
|
+
profile: typeof SNAPSHOT_PROFILE;
|
|
22
|
+
derived: true;
|
|
23
|
+
/** The commit published from, or null when none could be read. */
|
|
24
|
+
commit: string | null;
|
|
25
|
+
/** The hash of the graph published from. */
|
|
26
|
+
graphHash: string;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/** The snapshot file for a publication made from `snapshot`. */
|
|
30
|
+
export function snapshotFile(snapshot: Snapshot): SnapshotFile {
|
|
31
|
+
return { profile: SNAPSHOT_PROFILE, derived: true, commit: snapshot.commit, graphHash: snapshot.graphHash };
|
|
32
|
+
}
|