@clossys/writer 0.3.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.
Files changed (115) hide show
  1. package/CHANGELOG.md +196 -0
  2. package/LICENSE +21 -0
  3. package/README.md +593 -0
  4. package/dist/addressability.d.ts +245 -0
  5. package/dist/addressability.d.ts.map +1 -0
  6. package/dist/addressability.js +567 -0
  7. package/dist/addressability.js.map +1 -0
  8. package/dist/checker.d.ts +159 -0
  9. package/dist/checker.d.ts.map +1 -0
  10. package/dist/checker.js +177 -0
  11. package/dist/checker.js.map +1 -0
  12. package/dist/cli.d.ts +149 -0
  13. package/dist/cli.d.ts.map +1 -0
  14. package/dist/cli.js +1049 -0
  15. package/dist/cli.js.map +1 -0
  16. package/dist/copy-gate.d.ts +107 -0
  17. package/dist/copy-gate.d.ts.map +1 -0
  18. package/dist/copy-gate.js +132 -0
  19. package/dist/copy-gate.js.map +1 -0
  20. package/dist/fingerprint.d.ts +61 -0
  21. package/dist/fingerprint.d.ts.map +1 -0
  22. package/dist/fingerprint.js +64 -0
  23. package/dist/fingerprint.js.map +1 -0
  24. package/dist/index.d.ts +47 -0
  25. package/dist/index.d.ts.map +1 -0
  26. package/dist/index.js +63 -0
  27. package/dist/index.js.map +1 -0
  28. package/dist/locale-coverage.d.ts +227 -0
  29. package/dist/locale-coverage.d.ts.map +1 -0
  30. package/dist/locale-coverage.js +414 -0
  31. package/dist/locale-coverage.js.map +1 -0
  32. package/dist/passage.d.ts +294 -0
  33. package/dist/passage.d.ts.map +1 -0
  34. package/dist/passage.js +463 -0
  35. package/dist/passage.js.map +1 -0
  36. package/dist/path-exclusions.d.ts +114 -0
  37. package/dist/path-exclusions.d.ts.map +1 -0
  38. package/dist/path-exclusions.js +213 -0
  39. package/dist/path-exclusions.js.map +1 -0
  40. package/dist/registry.d.ts +61 -0
  41. package/dist/registry.d.ts.map +1 -0
  42. package/dist/registry.js +64 -0
  43. package/dist/registry.js.map +1 -0
  44. package/dist/resolve.d.ts +33 -0
  45. package/dist/resolve.d.ts.map +1 -0
  46. package/dist/resolve.js +133 -0
  47. package/dist/resolve.js.map +1 -0
  48. package/dist/scan.d.ts +457 -0
  49. package/dist/scan.d.ts.map +1 -0
  50. package/dist/scan.js +1698 -0
  51. package/dist/scan.js.map +1 -0
  52. package/dist/schema.d.ts +81 -0
  53. package/dist/schema.d.ts.map +1 -0
  54. package/dist/schema.js +482 -0
  55. package/dist/schema.js.map +1 -0
  56. package/dist/types.d.ts +268 -0
  57. package/dist/types.d.ts.map +1 -0
  58. package/dist/types.js +40 -0
  59. package/dist/types.js.map +1 -0
  60. package/dist/voice/checker.d.ts +186 -0
  61. package/dist/voice/checker.d.ts.map +1 -0
  62. package/dist/voice/checker.js +483 -0
  63. package/dist/voice/checker.js.map +1 -0
  64. package/dist/voice/derivation-coverage.d.ts +168 -0
  65. package/dist/voice/derivation-coverage.d.ts.map +1 -0
  66. package/dist/voice/derivation-coverage.js +181 -0
  67. package/dist/voice/derivation-coverage.js.map +1 -0
  68. package/dist/voice/fields.d.ts +107 -0
  69. package/dist/voice/fields.d.ts.map +1 -0
  70. package/dist/voice/fields.js +144 -0
  71. package/dist/voice/fields.js.map +1 -0
  72. package/dist/voice/index.d.ts +19 -0
  73. package/dist/voice/index.d.ts.map +1 -0
  74. package/dist/voice/index.js +24 -0
  75. package/dist/voice/index.js.map +1 -0
  76. package/dist/voice/internal/parse-template.d.ts +27 -0
  77. package/dist/voice/internal/parse-template.d.ts.map +1 -0
  78. package/dist/voice/internal/parse-template.js +111 -0
  79. package/dist/voice/internal/parse-template.js.map +1 -0
  80. package/dist/voice/internal/pattern-safety.d.ts +111 -0
  81. package/dist/voice/internal/pattern-safety.d.ts.map +1 -0
  82. package/dist/voice/internal/pattern-safety.js +278 -0
  83. package/dist/voice/internal/pattern-safety.js.map +1 -0
  84. package/dist/voice/schema.d.ts +65 -0
  85. package/dist/voice/schema.d.ts.map +1 -0
  86. package/dist/voice/schema.js +535 -0
  87. package/dist/voice/schema.js.map +1 -0
  88. package/dist/voice/types.d.ts +282 -0
  89. package/dist/voice/types.d.ts.map +1 -0
  90. package/dist/voice/types.js +37 -0
  91. package/dist/voice/types.js.map +1 -0
  92. package/package.json +72 -0
  93. package/src/addressability.ts +664 -0
  94. package/src/checker.ts +293 -0
  95. package/src/cli.ts +1166 -0
  96. package/src/copy-gate.ts +197 -0
  97. package/src/fingerprint.ts +66 -0
  98. package/src/index.ts +163 -0
  99. package/src/locale-coverage.ts +512 -0
  100. package/src/passage.ts +644 -0
  101. package/src/path-exclusions.ts +265 -0
  102. package/src/registry.ts +103 -0
  103. package/src/resolve.ts +172 -0
  104. package/src/scan.ts +1959 -0
  105. package/src/schema.ts +528 -0
  106. package/src/types.ts +301 -0
  107. package/src/voice/checker.ts +590 -0
  108. package/src/voice/derivation-coverage.ts +217 -0
  109. package/src/voice/fields.ts +160 -0
  110. package/src/voice/index.ts +55 -0
  111. package/src/voice/internal/parse-template.ts +114 -0
  112. package/src/voice/internal/pattern-safety.ts +336 -0
  113. package/src/voice/schema.ts +585 -0
  114. package/src/voice/types.ts +329 -0
  115. package/templates/voice-record.template.jsonc +135 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scan.js","sourceRoot":"","sources":["../src/scan.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Structural validation for a candidate `CopyRecord`, hand-rolled in the
3
+ * same plain-type-guard, accumulate-and-keep-going style as
4
+ * `@example/strategy`'s `validation.ts` and
5
+ * `@clossys/writer/voice`'s `schema.ts` — no schema library, for the
6
+ * same reason both of those files give: this package's entire job is
7
+ * dependency-free data validation, and a public package should not force
8
+ * every consumer onto one schema library's major version for the sake of
9
+ * shape-checking a handful of nested objects.
10
+ *
11
+ * Every check here is a REAL check, not decoration — this package's own
12
+ * design brief was explicit that a validator whose findings are all
13
+ * mechanically re-derivable from data already present elsewhere is dead
14
+ * weight (this repository has already deleted one whole package,
15
+ * `contract`, for exactly that failure: it validated fields that were all
16
+ * mechanically re-derivable from data already present in the same
17
+ * `package.json`, so its own checks could never produce a real finding).
18
+ * The placeholder check in particular
19
+ * (`validateCopyEntryShape`'s handling of `placeholders`) is the one most
20
+ * likely to be mistaken for decoration and is not: a name declared in
21
+ * `placeholders` but missing from `text` is a real authoring bug — copy
22
+ * was edited and an interpolation was dropped, or the placeholder list
23
+ * drifted from the sentence — and this is the only place in this package
24
+ * that catches it.
25
+ */
26
+ import type { CopyFinding, CopyRegistry, CopyRecord } from "./types.js";
27
+ /**
28
+ * Validates that `value` conforms to the `CopyRecord` shape. Returns a
29
+ * `CopyFinding[]`; empty means `value` is a well-formed `CopyRecord`
30
+ * (once defaults are applied — see `parseCopyRecord`). Never throws — any
31
+ * input, including `null`, a string, or a wildly malformed object,
32
+ * produces findings rather than an exception, the same discipline
33
+ * `@clossys/writer/voice`'s `validateVoiceRecordShape` and
34
+ * `@example/policy`'s `validateBindingShape` both hold to.
35
+ *
36
+ * Checks, in full: `id` present and non-empty; `entries` present and an
37
+ * array; every entry's own shape (`id` non-empty and well-formed per
38
+ * `COPY_ENTRY_ID_RE`, `text` non-empty, `context` non-empty,
39
+ * `placeholders` — if present — an array of non-empty strings each
40
+ * actually found in `text`, `factRef` — if present — a non-empty
41
+ * string); and, at the record level, that every entry's `id` is unique
42
+ * within the record. `entries` being present but empty (`[]`) is a
43
+ * well-formed, zero-finding `CopyRecord` as far as THIS function is
44
+ * concerned — whether zero entries is itself a problem is a judgment call
45
+ * for a caller with more context than a shape validator has, and is
46
+ * exactly the call `checker.ts`'s `checkCopyRecord` makes (see that
47
+ * file's doc comment): it fails closed on a record with no entries to
48
+ * check, rather than silently reporting a "clean" run that checked
49
+ * nothing.
50
+ */
51
+ export declare function validateCopyRecordShape(value: unknown): CopyFinding[];
52
+ /**
53
+ * Validates the stronger registry shape used to resolve `CopyRef`s. A plain
54
+ * `CopyRecord` deliberately remains valid for source scanning and voice
55
+ * checking; it cannot become rendered content until it carries locale,
56
+ * revision, source provenance, and an explicit lifecycle state per entry.
57
+ */
58
+ export declare function validateCopyRegistryShape(value: unknown): CopyFinding[];
59
+ /**
60
+ * Parses `value` as a `CopyRecord`, throwing a plain `Error` (never a
61
+ * `CopyFinding[]`) if it does not conform. For a caller that wants
62
+ * fail-fast construction — `registry.ts`'s `readCopyRecord`, in
63
+ * particular — rather than `validateCopyRecordShape`'s "collect every
64
+ * problem and keep going" shape. The thrown message includes every issue
65
+ * `validateCopyRecordShape` would have reported, joined, so nothing is
66
+ * lost by throwing instead of returning.
67
+ *
68
+ * Calls `validateCopyRecordShape(value)` and, only if it reports zero
69
+ * findings, makes one further pass over `value` (`buildCopyRecord`) to
70
+ * apply this schema's one default (`placeholders: []`) and produce a
71
+ * fully populated `CopyRecord`. This two-pass shape mirrors
72
+ * `@clossys/writer/voice`'s `parseVoiceRecord` — see that function's own
73
+ * doc comment for the fuller TOCTOU-safety argument for why reading twice
74
+ * is a deliberate choice here, not an oversight, given this package's
75
+ * actual threat model (a consumer's own in-memory config object, not a
76
+ * value crossing a real trust boundary).
77
+ */
78
+ export declare function parseCopyRecord(value: unknown): CopyRecord;
79
+ /** Parses a versioned, locale-specific registry or throws every finding. */
80
+ export declare function parseCopyRegistry(value: unknown): CopyRegistry;
81
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,EAIV,WAAW,EACX,YAAY,EAEZ,UAAU,EAEX,MAAM,YAAY,CAAC;AA+JpB;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,EAAE,CAwDrE;AAyFD;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,EAAE,CAuEvE;AAiDD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,CAS1D;AAED,4EAA4E;AAC5E,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,YAAY,CAO9D"}
package/dist/schema.js ADDED
@@ -0,0 +1,482 @@
1
+ /**
2
+ * Structural validation for a candidate `CopyRecord`, hand-rolled in the
3
+ * same plain-type-guard, accumulate-and-keep-going style as
4
+ * `@example/strategy`'s `validation.ts` and
5
+ * `@clossys/writer/voice`'s `schema.ts` — no schema library, for the
6
+ * same reason both of those files give: this package's entire job is
7
+ * dependency-free data validation, and a public package should not force
8
+ * every consumer onto one schema library's major version for the sake of
9
+ * shape-checking a handful of nested objects.
10
+ *
11
+ * Every check here is a REAL check, not decoration — this package's own
12
+ * design brief was explicit that a validator whose findings are all
13
+ * mechanically re-derivable from data already present elsewhere is dead
14
+ * weight (this repository has already deleted one whole package,
15
+ * `contract`, for exactly that failure: it validated fields that were all
16
+ * mechanically re-derivable from data already present in the same
17
+ * `package.json`, so its own checks could never produce a real finding).
18
+ * The placeholder check in particular
19
+ * (`validateCopyEntryShape`'s handling of `placeholders`) is the one most
20
+ * likely to be mistaken for decoration and is not: a name declared in
21
+ * `placeholders` but missing from `text` is a real authoring bug — copy
22
+ * was edited and an interpolation was dropped, or the placeholder list
23
+ * drifted from the sentence — and this is the only place in this package
24
+ * that catches it.
25
+ */
26
+ function isPlainObject(value) {
27
+ return typeof value === "object" && value !== null && !Array.isArray(value);
28
+ }
29
+ function isNonEmptyString(value) {
30
+ return typeof value === "string" && value.trim().length > 0;
31
+ }
32
+ function isCopyEntryStatus(value) {
33
+ return value === "draft" || value === "approved" || value === "retired";
34
+ }
35
+ /**
36
+ * `CopyEntryId` shape: dot-separated, lowercase, kebab-case within each
37
+ * segment, at least one dot (i.e. at least two segments) — e.g.
38
+ * `"pagination.no-results"`, `"onboarding.step-2.title"`. See
39
+ * `types.ts`'s doc comment on `CopyEntryId` for why a bare, unnamespaced
40
+ * id is rejected rather than merely discouraged.
41
+ */
42
+ const COPY_ENTRY_ID_RE = /^[a-z0-9]+(-[a-z0-9]+)*(\.[a-z0-9]+(-[a-z0-9]+)*)+$/;
43
+ /**
44
+ * The literal placeholder syntax this package checks `text` against for
45
+ * each declared name in `placeholders`: `{name}`, brace-delimited — the
46
+ * same convention ICU MessageFormat and most i18n libraries already use.
47
+ * A plain substring check, not a regex scan of `text` for placeholder-
48
+ * *shaped* tokens: this function only ever needs to ask "does `{name}`
49
+ * appear in this text for this specific declared name", never "what
50
+ * placeholders does this text contain" — the latter would be scope creep
51
+ * into a job (extracting/parsing interpolation syntax) this package does
52
+ * not need in order to do the one check it actually promises.
53
+ */
54
+ function textContainsPlaceholder(text, name) {
55
+ return text.includes(`{${name}}`);
56
+ }
57
+ /**
58
+ * Validates a field that is a list of strings — `entries` (elsewhere) and
59
+ * `placeholders` here share this exact shape and this exact validation.
60
+ * `undefined` is valid for `placeholders` (a default of `[]` applies
61
+ * later, in `buildCopyRecord`) — only a present-but-wrong-shaped value is
62
+ * a finding.
63
+ */
64
+ function validatePlaceholdersShape(value, path) {
65
+ if (value === undefined)
66
+ return [];
67
+ if (!Array.isArray(value)) {
68
+ return [
69
+ {
70
+ rule: "placeholders-shape",
71
+ severity: "error",
72
+ message: `${path} must be an array of non-empty strings when present, got ${JSON.stringify(value)}.`,
73
+ path,
74
+ },
75
+ ];
76
+ }
77
+ const findings = [];
78
+ value.forEach((item, i) => {
79
+ if (!isNonEmptyString(item)) {
80
+ findings.push({
81
+ rule: "placeholders-shape",
82
+ severity: "error",
83
+ message: `${path}.${i} must be a non-empty string, got ${JSON.stringify(item)}.`,
84
+ path: `${path}.${i}`,
85
+ });
86
+ }
87
+ });
88
+ return findings;
89
+ }
90
+ // Rules: entry-shape, id-shape, id-well-formed, text-shape, context-shape,
91
+ // placeholders-shape, placeholder-missing-from-text, fact-ref-shape
92
+ function validateCopyEntryShape(value, path) {
93
+ if (!isPlainObject(value)) {
94
+ return [{ rule: "entry-shape", severity: "error", message: `${path} must be an object.`, path }];
95
+ }
96
+ // Snapshot every field this function reads, exactly once, before any
97
+ // check runs — mirroring `@clossys/writer/voice`'s `schema.ts` and
98
+ // `@example/policy`'s `validateBindingShape`, both of which
99
+ // document why: a hostile or merely-badly-behaved `value` (a field
100
+ // implemented as a getter, or a Proxy) could otherwise return a
101
+ // different result on each property read.
102
+ const id = value.id;
103
+ const text = value.text;
104
+ const context = value.context;
105
+ const placeholders = value.placeholders;
106
+ const factRef = value.factRef;
107
+ const findings = [];
108
+ if (!isNonEmptyString(id)) {
109
+ findings.push({
110
+ rule: "id-shape",
111
+ severity: "error",
112
+ message: `${path}.id must be a non-empty string, got ${JSON.stringify(id)}.`,
113
+ path: `${path}.id`,
114
+ });
115
+ }
116
+ else if (!COPY_ENTRY_ID_RE.test(id)) {
117
+ findings.push({
118
+ rule: "id-well-formed",
119
+ severity: "error",
120
+ message: `${path}.id "${id}" must be dot-separated and lowercase, with at least one dot (e.g. "pagination.no-results"), got ${JSON.stringify(id)}.`,
121
+ path: `${path}.id`,
122
+ });
123
+ }
124
+ if (!isNonEmptyString(text)) {
125
+ findings.push({
126
+ rule: "text-shape",
127
+ severity: "error",
128
+ message: `${path}.text must be a non-empty string, got ${JSON.stringify(text)}.`,
129
+ path: `${path}.text`,
130
+ });
131
+ }
132
+ if (!isNonEmptyString(context)) {
133
+ findings.push({
134
+ rule: "context-shape",
135
+ severity: "error",
136
+ message: `${path}.context must be a non-empty string, got ${JSON.stringify(context)}. An entry with no stated location cannot be reviewed.`,
137
+ path: `${path}.context`,
138
+ });
139
+ }
140
+ findings.push(...validatePlaceholdersShape(placeholders, `${path}.placeholders`));
141
+ // The real check: a declared placeholder that never actually appears in
142
+ // `text`. Only checkable once both `text` and `placeholders` are
143
+ // individually well-formed — there is no meaningful "is {name} in the
144
+ // text" question to ask against a `text` that failed `text-shape` or a
145
+ // `placeholders` entry that failed `placeholders-shape`, and reporting
146
+ // this rule on top of an already-broken shape would only add noise
147
+ // pointing at the same underlying problem.
148
+ if (isNonEmptyString(text) && Array.isArray(placeholders)) {
149
+ placeholders.forEach((name, i) => {
150
+ if (typeof name === "string" && name.length > 0 && !textContainsPlaceholder(text, name)) {
151
+ findings.push({
152
+ rule: "placeholder-missing-from-text",
153
+ severity: "error",
154
+ message: `${path}.placeholders.${i} declares "${name}" but "{${name}}" does not appear in ${path}.text.`,
155
+ path: `${path}.placeholders.${i}`,
156
+ });
157
+ }
158
+ });
159
+ }
160
+ if (factRef !== undefined && !isNonEmptyString(factRef)) {
161
+ findings.push({
162
+ rule: "fact-ref-shape",
163
+ severity: "error",
164
+ message: `${path}.factRef must be a non-empty string when present, got ${JSON.stringify(factRef)}.`,
165
+ path: `${path}.factRef`,
166
+ });
167
+ }
168
+ return findings;
169
+ }
170
+ /**
171
+ * Validates that `value` conforms to the `CopyRecord` shape. Returns a
172
+ * `CopyFinding[]`; empty means `value` is a well-formed `CopyRecord`
173
+ * (once defaults are applied — see `parseCopyRecord`). Never throws — any
174
+ * input, including `null`, a string, or a wildly malformed object,
175
+ * produces findings rather than an exception, the same discipline
176
+ * `@clossys/writer/voice`'s `validateVoiceRecordShape` and
177
+ * `@example/policy`'s `validateBindingShape` both hold to.
178
+ *
179
+ * Checks, in full: `id` present and non-empty; `entries` present and an
180
+ * array; every entry's own shape (`id` non-empty and well-formed per
181
+ * `COPY_ENTRY_ID_RE`, `text` non-empty, `context` non-empty,
182
+ * `placeholders` — if present — an array of non-empty strings each
183
+ * actually found in `text`, `factRef` — if present — a non-empty
184
+ * string); and, at the record level, that every entry's `id` is unique
185
+ * within the record. `entries` being present but empty (`[]`) is a
186
+ * well-formed, zero-finding `CopyRecord` as far as THIS function is
187
+ * concerned — whether zero entries is itself a problem is a judgment call
188
+ * for a caller with more context than a shape validator has, and is
189
+ * exactly the call `checker.ts`'s `checkCopyRecord` makes (see that
190
+ * file's doc comment): it fails closed on a record with no entries to
191
+ * check, rather than silently reporting a "clean" run that checked
192
+ * nothing.
193
+ */
194
+ export function validateCopyRecordShape(value) {
195
+ if (!isPlainObject(value)) {
196
+ return [{ rule: "record-present", severity: "error", message: "A copy record must be an object.", path: "$" }];
197
+ }
198
+ const id = value.id;
199
+ const entries = value.entries;
200
+ const findings = [];
201
+ if (!isNonEmptyString(id)) {
202
+ findings.push({
203
+ rule: "id-shape",
204
+ severity: "error",
205
+ message: `id must be a non-empty string, got ${JSON.stringify(id)}.`,
206
+ path: "id",
207
+ });
208
+ }
209
+ if (!Array.isArray(entries)) {
210
+ findings.push({
211
+ rule: "entries-shape",
212
+ severity: "error",
213
+ message: `entries must be an array, got ${JSON.stringify(entries)}.`,
214
+ path: "entries",
215
+ });
216
+ }
217
+ else {
218
+ entries.forEach((entry, i) => findings.push(...validateCopyEntryShape(entry, `entries.${i}`)));
219
+ // Uniqueness is a whole-record property, not a per-entry one, so it is
220
+ // checked here rather than inside validateCopyEntryShape. Only entries
221
+ // that already passed their own id-shape check contribute a value to
222
+ // compare — an entry with a missing/malformed id is already reported
223
+ // above by id-shape/id-well-formed, and folding an undefined or
224
+ // non-string id into a "duplicate" comparison would produce a second,
225
+ // misleading finding about the same underlying problem.
226
+ const seen = new Map(); // id -> first index seen at
227
+ entries.forEach((entry, i) => {
228
+ if (!isPlainObject(entry))
229
+ return;
230
+ const entryId = entry.id;
231
+ if (typeof entryId !== "string" || entryId.length === 0)
232
+ return;
233
+ const firstIndex = seen.get(entryId);
234
+ if (firstIndex === undefined) {
235
+ seen.set(entryId, i);
236
+ }
237
+ else {
238
+ findings.push({
239
+ rule: "id-unique",
240
+ severity: "error",
241
+ message: `entries.${i}.id "${entryId}" duplicates entries.${firstIndex}.id — every entry's id must be unique within a CopyRecord.`,
242
+ path: `entries.${i}.id`,
243
+ });
244
+ }
245
+ });
246
+ }
247
+ return findings;
248
+ }
249
+ /**
250
+ * Validates a `CopyRegistryEntry.translation` field, when present.
251
+ * `undefined` is always valid — see `types.ts`'s doc comment on
252
+ * `CopyTranslationProvenance` for why an entry with no `translation` must
253
+ * remain a fully valid `CopyRegistryEntry` rather than becoming invalid the
254
+ * moment this field was introduced. Only a present-but-malformed value is a
255
+ * finding.
256
+ */
257
+ function validateTranslationShape(value, path) {
258
+ if (value === undefined)
259
+ return [];
260
+ if (!isPlainObject(value)) {
261
+ return [
262
+ {
263
+ rule: "translation-shape",
264
+ severity: "error",
265
+ message: `${path} must be an object when present, got ${JSON.stringify(value)}.`,
266
+ path,
267
+ },
268
+ ];
269
+ }
270
+ const sourceFingerprint = value.sourceFingerprint;
271
+ const fingerprintAlgorithm = value.fingerprintAlgorithm;
272
+ const translatedAt = value.translatedAt;
273
+ const translatedBy = value.translatedBy;
274
+ const reviewedAt = value.reviewedAt;
275
+ const reviewedBy = value.reviewedBy;
276
+ const findings = [];
277
+ if (!isNonEmptyString(sourceFingerprint)) {
278
+ findings.push({
279
+ rule: "translation-source-fingerprint-shape",
280
+ severity: "error",
281
+ message: `${path}.sourceFingerprint must be a non-empty string, got ${JSON.stringify(sourceFingerprint)}.`,
282
+ path: `${path}.sourceFingerprint`,
283
+ });
284
+ }
285
+ if (!isNonEmptyString(fingerprintAlgorithm)) {
286
+ findings.push({
287
+ rule: "translation-fingerprint-algorithm-shape",
288
+ severity: "error",
289
+ message: `${path}.fingerprintAlgorithm must be a non-empty string, got ${JSON.stringify(fingerprintAlgorithm)}.`,
290
+ path: `${path}.fingerprintAlgorithm`,
291
+ });
292
+ }
293
+ if (!isNonEmptyString(translatedAt)) {
294
+ findings.push({
295
+ rule: "translation-translated-at-shape",
296
+ severity: "error",
297
+ message: `${path}.translatedAt must be a non-empty ISO-8601 timestamp string, got ${JSON.stringify(translatedAt)}.`,
298
+ path: `${path}.translatedAt`,
299
+ });
300
+ }
301
+ if (translatedBy !== undefined && !isNonEmptyString(translatedBy)) {
302
+ findings.push({
303
+ rule: "translation-translated-by-shape",
304
+ severity: "error",
305
+ message: `${path}.translatedBy must be a non-empty string when present, got ${JSON.stringify(translatedBy)}.`,
306
+ path: `${path}.translatedBy`,
307
+ });
308
+ }
309
+ if (reviewedAt !== undefined && !isNonEmptyString(reviewedAt)) {
310
+ findings.push({
311
+ rule: "translation-reviewed-at-shape",
312
+ severity: "error",
313
+ message: `${path}.reviewedAt must be a non-empty ISO-8601 timestamp string when present, got ${JSON.stringify(reviewedAt)}.`,
314
+ path: `${path}.reviewedAt`,
315
+ });
316
+ }
317
+ if (reviewedBy !== undefined && !isNonEmptyString(reviewedBy)) {
318
+ findings.push({
319
+ rule: "translation-reviewed-by-shape",
320
+ severity: "error",
321
+ message: `${path}.reviewedBy must be a non-empty string when present, got ${JSON.stringify(reviewedBy)}.`,
322
+ path: `${path}.reviewedBy`,
323
+ });
324
+ }
325
+ return findings;
326
+ }
327
+ /**
328
+ * Validates the stronger registry shape used to resolve `CopyRef`s. A plain
329
+ * `CopyRecord` deliberately remains valid for source scanning and voice
330
+ * checking; it cannot become rendered content until it carries locale,
331
+ * revision, source provenance, and an explicit lifecycle state per entry.
332
+ */
333
+ export function validateCopyRegistryShape(value) {
334
+ const findings = validateCopyRecordShape(value);
335
+ if (!isPlainObject(value))
336
+ return findings;
337
+ const locale = value.locale;
338
+ const revision = value.revision;
339
+ const source = value.source;
340
+ const entries = value.entries;
341
+ if (!isNonEmptyString(locale)) {
342
+ findings.push({
343
+ rule: "registry-locale-shape",
344
+ severity: "error",
345
+ message: `locale must be a non-empty locale tag, got ${JSON.stringify(locale)}.`,
346
+ path: "locale",
347
+ });
348
+ }
349
+ if (!isNonEmptyString(revision)) {
350
+ findings.push({
351
+ rule: "registry-revision-shape",
352
+ severity: "error",
353
+ message: `revision must be a non-empty provenance revision, got ${JSON.stringify(revision)}.`,
354
+ path: "revision",
355
+ });
356
+ }
357
+ if (!isPlainObject(source)) {
358
+ findings.push({
359
+ rule: "registry-source-shape",
360
+ severity: "error",
361
+ message: `source must be an object with kind and reference, got ${JSON.stringify(source)}.`,
362
+ path: "source",
363
+ });
364
+ }
365
+ else {
366
+ const kind = source.kind;
367
+ const reference = source.reference;
368
+ if (kind !== "consumer" && kind !== "generated" && kind !== "imported") {
369
+ findings.push({
370
+ rule: "registry-source-kind",
371
+ severity: "error",
372
+ message: `source.kind must be "consumer", "generated", or "imported", got ${JSON.stringify(kind)}.`,
373
+ path: "source.kind",
374
+ });
375
+ }
376
+ if (!isNonEmptyString(reference)) {
377
+ findings.push({
378
+ rule: "registry-source-reference-shape",
379
+ severity: "error",
380
+ message: `source.reference must be a non-empty opaque provenance reference, got ${JSON.stringify(reference)}.`,
381
+ path: "source.reference",
382
+ });
383
+ }
384
+ }
385
+ if (Array.isArray(entries)) {
386
+ entries.forEach((entry, i) => {
387
+ if (!isPlainObject(entry))
388
+ return;
389
+ if (!isCopyEntryStatus(entry.status)) {
390
+ findings.push({
391
+ rule: "entry-status-shape",
392
+ severity: "error",
393
+ message: `entries.${i}.status must be "draft", "approved", or "retired", got ${JSON.stringify(entry.status)}.`,
394
+ path: `entries.${i}.status`,
395
+ });
396
+ }
397
+ findings.push(...validateTranslationShape(entry.translation, `entries.${i}.translation`));
398
+ });
399
+ }
400
+ return findings;
401
+ }
402
+ /**
403
+ * Builds a fully-defaulted `CopyRecord` from `value`, which the caller
404
+ * must already know passed `validateCopyRecordShape` with zero findings
405
+ * — this function does no validation of its own and will throw or
406
+ * produce garbage on unvalidated input. Only called internally, from
407
+ * `parseCopyRecord`, immediately after that check — mirrors
408
+ * `@clossys/writer/voice`'s `buildVoiceRecord` exactly, including that
409
+ * split's reasoning: see this file's `parseCopyRecord` doc comment for
410
+ * why this is a deliberate two-pass design.
411
+ */
412
+ function buildCopyRecord(value) {
413
+ const entriesRaw = value.entries;
414
+ const builtEntries = entriesRaw.map((raw) => {
415
+ const entry = raw;
416
+ return {
417
+ id: entry.id,
418
+ text: entry.text,
419
+ context: entry.context,
420
+ placeholders: [...(entry.placeholders ?? [])],
421
+ factRef: entry.factRef,
422
+ };
423
+ });
424
+ return {
425
+ id: value.id,
426
+ entries: builtEntries,
427
+ };
428
+ }
429
+ function buildCopyRegistry(value) {
430
+ const record = buildCopyRecord(value);
431
+ const entries = value.entries.map((entry) => ({
432
+ ...record.entries.find((item) => item.id === entry.id),
433
+ status: entry.status,
434
+ translation: entry.translation,
435
+ }));
436
+ return {
437
+ ...record,
438
+ locale: value.locale,
439
+ revision: value.revision,
440
+ source: value.source,
441
+ entries,
442
+ };
443
+ }
444
+ /**
445
+ * Parses `value` as a `CopyRecord`, throwing a plain `Error` (never a
446
+ * `CopyFinding[]`) if it does not conform. For a caller that wants
447
+ * fail-fast construction — `registry.ts`'s `readCopyRecord`, in
448
+ * particular — rather than `validateCopyRecordShape`'s "collect every
449
+ * problem and keep going" shape. The thrown message includes every issue
450
+ * `validateCopyRecordShape` would have reported, joined, so nothing is
451
+ * lost by throwing instead of returning.
452
+ *
453
+ * Calls `validateCopyRecordShape(value)` and, only if it reports zero
454
+ * findings, makes one further pass over `value` (`buildCopyRecord`) to
455
+ * apply this schema's one default (`placeholders: []`) and produce a
456
+ * fully populated `CopyRecord`. This two-pass shape mirrors
457
+ * `@clossys/writer/voice`'s `parseVoiceRecord` — see that function's own
458
+ * doc comment for the fuller TOCTOU-safety argument for why reading twice
459
+ * is a deliberate choice here, not an oversight, given this package's
460
+ * actual threat model (a consumer's own in-memory config object, not a
461
+ * value crossing a real trust boundary).
462
+ */
463
+ export function parseCopyRecord(value) {
464
+ const findings = validateCopyRecordShape(value);
465
+ if (findings.length > 0) {
466
+ const detail = findings.map((f) => ` - ${f.path ?? "(root)"}: ${f.message}`).join("\n");
467
+ throw new Error(`parseCopyRecord: value is not a valid CopyRecord:\n${detail}`);
468
+ }
469
+ // Safe: validateCopyRecordShape returning no findings means every field
470
+ // buildCopyRecord reads below is present and correctly typed.
471
+ return buildCopyRecord(value);
472
+ }
473
+ /** Parses a versioned, locale-specific registry or throws every finding. */
474
+ export function parseCopyRegistry(value) {
475
+ const findings = validateCopyRegistryShape(value);
476
+ if (findings.length > 0) {
477
+ const detail = findings.map((f) => ` - ${f.path ?? "(root)"}: ${f.message}`).join("\n");
478
+ throw new Error(`parseCopyRegistry: value is not a valid CopyRegistry:\n${detail}`);
479
+ }
480
+ return buildCopyRegistry(value);
481
+ }
482
+ //# sourceMappingURL=schema.js.map