@murphai/contracts 0.1.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 (89) hide show
  1. package/LICENSE +674 -0
  2. package/README.md +24 -0
  3. package/dist/bank-entities.d.ts +35 -0
  4. package/dist/bank-entities.d.ts.map +1 -0
  5. package/dist/bank-entities.js +164 -0
  6. package/dist/bank-entities.js.map +1 -0
  7. package/dist/command-capabilities.d.ts +50 -0
  8. package/dist/command-capabilities.d.ts.map +1 -0
  9. package/dist/command-capabilities.js +149 -0
  10. package/dist/command-capabilities.js.map +1 -0
  11. package/dist/constants.d.ts +149 -0
  12. package/dist/constants.d.ts.map +1 -0
  13. package/dist/constants.js +232 -0
  14. package/dist/constants.js.map +1 -0
  15. package/dist/examples.d.ts +31 -0
  16. package/dist/examples.d.ts.map +1 -0
  17. package/dist/examples.js +943 -0
  18. package/dist/examples.js.map +1 -0
  19. package/dist/frontmatter.d.ts +28 -0
  20. package/dist/frontmatter.d.ts.map +1 -0
  21. package/dist/frontmatter.js +272 -0
  22. package/dist/frontmatter.js.map +1 -0
  23. package/dist/health-entities.d.ts +87 -0
  24. package/dist/health-entities.d.ts.map +1 -0
  25. package/dist/health-entities.js +349 -0
  26. package/dist/health-entities.js.map +1 -0
  27. package/dist/ids.d.ts +10 -0
  28. package/dist/ids.d.ts.map +1 -0
  29. package/dist/ids.js +27 -0
  30. package/dist/ids.js.map +1 -0
  31. package/dist/index.d.ts +16 -0
  32. package/dist/index.d.ts.map +1 -0
  33. package/dist/index.js +16 -0
  34. package/dist/index.js.map +1 -0
  35. package/dist/registry-helpers.d.ts +31 -0
  36. package/dist/registry-helpers.d.ts.map +1 -0
  37. package/dist/registry-helpers.js +53 -0
  38. package/dist/registry-helpers.js.map +1 -0
  39. package/dist/schemas.d.ts +47 -0
  40. package/dist/schemas.d.ts.map +1 -0
  41. package/dist/schemas.js +50 -0
  42. package/dist/schemas.js.map +1 -0
  43. package/dist/scripts/generate-json-schema.js +13 -0
  44. package/dist/scripts/generate-json-schema.js.map +1 -0
  45. package/dist/scripts/verify.js +230 -0
  46. package/dist/scripts/verify.js.map +1 -0
  47. package/dist/shares.d.ts +715 -0
  48. package/dist/shares.d.ts.map +1 -0
  49. package/dist/shares.js +469 -0
  50. package/dist/shares.js.map +1 -0
  51. package/dist/time.d.ts +25 -0
  52. package/dist/time.d.ts.map +1 -0
  53. package/dist/time.js +241 -0
  54. package/dist/time.js.map +1 -0
  55. package/dist/tsconfig.build.tsbuildinfo +1 -0
  56. package/dist/types.d.ts +34 -0
  57. package/dist/types.d.ts.map +1 -0
  58. package/dist/types.js +2 -0
  59. package/dist/types.js.map +1 -0
  60. package/dist/validate.d.ts +18 -0
  61. package/dist/validate.d.ts.map +1 -0
  62. package/dist/validate.js +129 -0
  63. package/dist/validate.js.map +1 -0
  64. package/dist/zod.d.ts +1626 -0
  65. package/dist/zod.d.ts.map +1 -0
  66. package/dist/zod.js +834 -0
  67. package/dist/zod.js.map +1 -0
  68. package/generated/assessment-response.schema.json +101 -0
  69. package/generated/audit-record.schema.json +141 -0
  70. package/generated/event-record.schema.json +2708 -0
  71. package/generated/frontmatter-allergy.schema.json +82 -0
  72. package/generated/frontmatter-condition.schema.json +101 -0
  73. package/generated/frontmatter-core.schema.json +51 -0
  74. package/generated/frontmatter-experiment.schema.json +70 -0
  75. package/generated/frontmatter-family-member.schema.json +68 -0
  76. package/generated/frontmatter-food.schema.json +128 -0
  77. package/generated/frontmatter-genetic-variant.schema.json +81 -0
  78. package/generated/frontmatter-goal.schema.json +116 -0
  79. package/generated/frontmatter-journal-day.schema.json +52 -0
  80. package/generated/frontmatter-profile-current.schema.json +55 -0
  81. package/generated/frontmatter-protocol.schema.json +153 -0
  82. package/generated/frontmatter-provider.schema.json +81 -0
  83. package/generated/frontmatter-recipe.schema.json +124 -0
  84. package/generated/frontmatter-workout-format.schema.json +163 -0
  85. package/generated/inbox-capture-record.schema.json +332 -0
  86. package/generated/profile-snapshot.schema.json +131 -0
  87. package/generated/sample-record.schema.json +726 -0
  88. package/generated/vault-metadata.schema.json +324 -0
  89. package/package.json +69 -0
@@ -0,0 +1,50 @@
1
+ import * as z from "zod";
2
+ import { allergyFrontmatterSchema as allergyFrontmatterContract, assessmentResponseSchema as assessmentResponseContract, auditRecordSchema as auditRecordContract, conditionFrontmatterSchema as conditionFrontmatterContract, coreFrontmatterSchema as coreFrontmatterContract, eventRecordSchema as eventRecordContract, experimentFrontmatterSchema as experimentFrontmatterContract, familyMemberFrontmatterSchema as familyMemberFrontmatterContract, foodFrontmatterSchema as foodFrontmatterContract, geneticVariantFrontmatterSchema as geneticVariantFrontmatterContract, inboxCaptureRecordSchema as inboxCaptureRecordContract, goalFrontmatterSchema as goalFrontmatterContract, journalDayFrontmatterSchema as journalDayFrontmatterContract, profileCurrentFrontmatterSchema as profileCurrentFrontmatterContract, profileSnapshotSchema as profileSnapshotContract, providerFrontmatterSchema as providerFrontmatterContract, recipeFrontmatterSchema as recipeFrontmatterContract, protocolFrontmatterSchema as protocolFrontmatterContract, workoutFormatFrontmatterSchema as workoutFormatFrontmatterContract, sampleRecordSchema as sampleRecordContract, vaultMetadataSchema as vaultMetadataContract, } from "./zod.js";
3
+ function toJsonSchema(schema) {
4
+ return z.toJSONSchema(schema);
5
+ }
6
+ export const vaultMetadataSchema = toJsonSchema(vaultMetadataContract);
7
+ export const eventRecordSchema = toJsonSchema(eventRecordContract);
8
+ export const sampleRecordSchema = toJsonSchema(sampleRecordContract);
9
+ export const auditRecordSchema = toJsonSchema(auditRecordContract);
10
+ export const inboxCaptureRecordSchema = toJsonSchema(inboxCaptureRecordContract);
11
+ export const coreFrontmatterSchema = toJsonSchema(coreFrontmatterContract);
12
+ export const journalDayFrontmatterSchema = toJsonSchema(journalDayFrontmatterContract);
13
+ export const experimentFrontmatterSchema = toJsonSchema(experimentFrontmatterContract);
14
+ export const foodFrontmatterSchema = toJsonSchema(foodFrontmatterContract);
15
+ export const assessmentResponseSchema = toJsonSchema(assessmentResponseContract);
16
+ export const profileSnapshotSchema = toJsonSchema(profileSnapshotContract);
17
+ export const profileCurrentFrontmatterSchema = toJsonSchema(profileCurrentFrontmatterContract);
18
+ export const providerFrontmatterSchema = toJsonSchema(providerFrontmatterContract);
19
+ export const recipeFrontmatterSchema = toJsonSchema(recipeFrontmatterContract);
20
+ export const workoutFormatFrontmatterSchema = toJsonSchema(workoutFormatFrontmatterContract);
21
+ export const goalFrontmatterSchema = toJsonSchema(goalFrontmatterContract);
22
+ export const conditionFrontmatterSchema = toJsonSchema(conditionFrontmatterContract);
23
+ export const allergyFrontmatterSchema = toJsonSchema(allergyFrontmatterContract);
24
+ export const protocolFrontmatterSchema = toJsonSchema(protocolFrontmatterContract);
25
+ export const familyMemberFrontmatterSchema = toJsonSchema(familyMemberFrontmatterContract);
26
+ export const geneticVariantFrontmatterSchema = toJsonSchema(geneticVariantFrontmatterContract);
27
+ export const schemaCatalog = Object.freeze({
28
+ "assessment-response": assessmentResponseSchema,
29
+ "audit-record": auditRecordSchema,
30
+ "event-record": eventRecordSchema,
31
+ "inbox-capture-record": inboxCaptureRecordSchema,
32
+ "frontmatter-allergy": allergyFrontmatterSchema,
33
+ "frontmatter-condition": conditionFrontmatterSchema,
34
+ "frontmatter-core": coreFrontmatterSchema,
35
+ "frontmatter-experiment": experimentFrontmatterSchema,
36
+ "frontmatter-family-member": familyMemberFrontmatterSchema,
37
+ "frontmatter-food": foodFrontmatterSchema,
38
+ "frontmatter-genetic-variant": geneticVariantFrontmatterSchema,
39
+ "frontmatter-goal": goalFrontmatterSchema,
40
+ "frontmatter-journal-day": journalDayFrontmatterSchema,
41
+ "frontmatter-profile-current": profileCurrentFrontmatterSchema,
42
+ "frontmatter-provider": providerFrontmatterSchema,
43
+ "frontmatter-recipe": recipeFrontmatterSchema,
44
+ "frontmatter-protocol": protocolFrontmatterSchema,
45
+ "frontmatter-workout-format": workoutFormatFrontmatterSchema,
46
+ "profile-snapshot": profileSnapshotSchema,
47
+ "sample-record": sampleRecordSchema,
48
+ "vault-metadata": vaultMetadataSchema,
49
+ });
50
+ //# sourceMappingURL=schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { mkdir, writeFile } from "node:fs/promises";
2
+ import path from "node:path";
3
+ import { fileURLToPath } from "node:url";
4
+ import { schemaCatalog } from "@murphai/contracts/schemas";
5
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
6
+ const generatedDir = path.resolve(__dirname, "../../generated");
7
+ await mkdir(generatedDir, { recursive: true });
8
+ for (const [name, schema] of Object.entries(schemaCatalog)) {
9
+ const outputPath = path.join(generatedDir, `${name}.schema.json`);
10
+ await writeFile(outputPath, `${JSON.stringify(schema, null, 2)}\n`, "utf8");
11
+ }
12
+ console.log(`Generated ${Object.keys(schemaCatalog).length} schema artifact(s).`);
13
+ //# sourceMappingURL=generate-json-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-json-schema.js","sourceRoot":"","sources":["../../scripts/generate-json-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/D,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;AAEhE,MAAM,KAAK,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAE/C,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;IAC3D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,IAAI,cAAc,CAAC,CAAC;IAClE,MAAM,SAAS,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC9E,CAAC;AAED,OAAO,CAAC,GAAG,CAAC,aAAa,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,sBAAsB,CAAC,CAAC"}
@@ -0,0 +1,230 @@
1
+ import assert from "node:assert/strict";
2
+ import { access, readFile } from "node:fs/promises";
3
+ import path from "node:path";
4
+ import { fileURLToPath } from "node:url";
5
+ import { allergyFrontmatterSchema, assessmentResponseSchema, auditRecordSchema, commandNounCapabilityByNoun, conditionFrontmatterSchema, coreFrontmatterSchema, exampleAssessmentResponses, exampleAuditRecords, exampleEventRecords, exampleFrontmatterMarkdown, exampleFrontmatterObjects, exampleHealthFrontmatterObjects, eventRecordSchema, experimentFrontmatterSchema, familyMemberFrontmatterSchema, foodFrontmatterSchema, geneticVariantFrontmatterSchema, goalFrontmatterSchema, journalDayFrontmatterSchema, exampleProfileSnapshots, exampleSampleRecords, exampleVaultMetadata, profileCurrentFrontmatterSchema, profileSnapshotSchema, providerFrontmatterSchema, recipeFrontmatterSchema, isStrictIsoDate, isStrictIsoDateTime, normalizeStrictIsoTimestamp, protocolFrontmatterSchema, safeParseContract, sampleRecordSchema, vaultMetadataSchema, workoutFormatFrontmatterSchema, parseFrontmatterMarkdown, parseFrontmatterDocument, } from "@murphai/contracts";
6
+ import { schemaCatalog } from "@murphai/contracts/schemas";
7
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
8
+ const packageDir = path.resolve(__dirname, "../..");
9
+ const generatedDir = path.resolve(__dirname, "../../generated");
10
+ const distDir = path.join(packageDir, "dist");
11
+ function assertNoErrors(label, value, schema) {
12
+ const result = safeParseContract(schema, value);
13
+ if (!result.success) {
14
+ throw new Error(`${label} failed validation:\n${result.errors.join("\n")}`);
15
+ }
16
+ }
17
+ function assertHasErrors(label, value, schema, patterns) {
18
+ const result = safeParseContract(schema, value);
19
+ assert.equal(result.success, false, `${label} unexpectedly passed validation`);
20
+ const joinedErrors = result.errors.join("\n");
21
+ patterns.forEach((pattern) => assert.match(joinedErrors, pattern, label));
22
+ }
23
+ const packageJson = JSON.parse(await readFile(path.join(packageDir, "package.json"), "utf8"));
24
+ assert.equal(packageJson.main, "./dist/index.js");
25
+ assert.equal(packageJson.types, "./dist/index.d.ts");
26
+ assert.deepEqual(packageJson.exports?.["."], {
27
+ types: "./dist/index.d.ts",
28
+ import: "./dist/index.js",
29
+ default: "./dist/index.js",
30
+ });
31
+ assert.deepEqual(packageJson.exports?.["./schemas"], {
32
+ types: "./dist/schemas.d.ts",
33
+ import: "./dist/schemas.js",
34
+ default: "./dist/schemas.js",
35
+ });
36
+ await assertPathExists(path.join(distDir, "index.js"));
37
+ await assertPathExists(path.join(distDir, "index.d.ts"));
38
+ await assertPathExists(path.join(distDir, "schemas.js"));
39
+ await assertPathExists(path.join(distDir, "zod.js"));
40
+ await assertPathExists(path.join(distDir, "scripts", "generate-json-schema.js"));
41
+ await assertPathExists(path.join(distDir, "scripts", "verify.js"));
42
+ await assertPathMissing(path.join(distDir, "src"));
43
+ for (const [name, sourceSchema] of Object.entries(schemaCatalog)) {
44
+ const artifactPath = path.join(generatedDir, `${name}.schema.json`);
45
+ const artifact = JSON.parse(await readFile(artifactPath, "utf8"));
46
+ assert.deepEqual(artifact, sourceSchema, `Schema artifact ${path.basename(artifactPath)} is stale or mismatched`);
47
+ }
48
+ assert.deepEqual(Object.keys(schemaCatalog).sort(), [
49
+ "assessment-response",
50
+ "audit-record",
51
+ "event-record",
52
+ "frontmatter-allergy",
53
+ "frontmatter-condition",
54
+ "frontmatter-core",
55
+ "frontmatter-experiment",
56
+ "frontmatter-family-member",
57
+ "frontmatter-food",
58
+ "frontmatter-genetic-variant",
59
+ "frontmatter-goal",
60
+ "frontmatter-journal-day",
61
+ "frontmatter-profile-current",
62
+ "frontmatter-protocol",
63
+ "frontmatter-provider",
64
+ "frontmatter-recipe",
65
+ "frontmatter-workout-format",
66
+ "inbox-capture-record",
67
+ "profile-snapshot",
68
+ "sample-record",
69
+ "vault-metadata",
70
+ ]);
71
+ assert.equal(schemaCatalog["event-record"].oneOf?.length, 16);
72
+ assert.equal(schemaCatalog["sample-record"].oneOf?.length, 7);
73
+ assert.deepEqual(commandNounCapabilityByNoun.get("food")?.bundles, ["payloadCrud"]);
74
+ assert.deepEqual(commandNounCapabilityByNoun.get("food")?.additionalCapabilities ?? [], []);
75
+ assert.equal(schemaCatalog["frontmatter-core"].additionalProperties, false);
76
+ assert.equal((schemaCatalog["frontmatter-goal"].properties
77
+ ?.priority)?.type, "integer");
78
+ assert.equal((schemaCatalog["frontmatter-profile-current"].properties
79
+ ?.updatedAt)?.format, "date-time");
80
+ assert.equal((schemaCatalog["frontmatter-family-member"].properties
81
+ ?.title)?.maxLength, 160);
82
+ assert.equal((schemaCatalog["frontmatter-genetic-variant"].properties
83
+ ?.gene)?.maxLength, 40);
84
+ assert.equal(isStrictIsoDate("2024-02-29"), true);
85
+ assert.equal(isStrictIsoDate("2024-02-31"), false);
86
+ assert.equal(isStrictIsoDateTime("2024-04-30T12:00:00Z"), true);
87
+ assert.equal(isStrictIsoDateTime("2024-04-31T12:00:00Z"), false);
88
+ assert.equal(normalizeStrictIsoTimestamp("2026-03-11T14:00:00-05:00"), "2026-03-11T19:00:00.000Z");
89
+ assert.equal(normalizeStrictIsoTimestamp("2024-02-31"), null);
90
+ assertNoErrors("vault metadata example", exampleVaultMetadata, vaultMetadataSchema);
91
+ exampleAssessmentResponses.forEach((record, index) => assertNoErrors(`assessment response example ${index + 1}`, record, assessmentResponseSchema));
92
+ exampleEventRecords.forEach((record, index) => assertNoErrors(`event example ${index + 1}`, record, eventRecordSchema));
93
+ exampleProfileSnapshots.forEach((record, index) => assertNoErrors(`profile snapshot example ${index + 1}`, record, profileSnapshotSchema));
94
+ exampleSampleRecords.forEach((record, index) => assertNoErrors(`sample example ${index + 1}`, record, sampleRecordSchema));
95
+ exampleAuditRecords.forEach((record, index) => assertNoErrors(`audit example ${index + 1}`, record, auditRecordSchema));
96
+ assertNoErrors("core frontmatter object", exampleFrontmatterObjects.core, coreFrontmatterSchema);
97
+ assertNoErrors("journal day frontmatter object", exampleFrontmatterObjects.journalDay, journalDayFrontmatterSchema);
98
+ assertNoErrors("experiment frontmatter object", exampleFrontmatterObjects.experiment, experimentFrontmatterSchema);
99
+ assertNoErrors("food frontmatter object", exampleFrontmatterObjects.food, foodFrontmatterSchema);
100
+ assertNoErrors("provider frontmatter object", exampleFrontmatterObjects.provider, providerFrontmatterSchema);
101
+ assertNoErrors("recipe frontmatter object", exampleFrontmatterObjects.recipe, recipeFrontmatterSchema);
102
+ assertNoErrors("workout-format frontmatter object", exampleFrontmatterObjects.workoutFormat, workoutFormatFrontmatterSchema);
103
+ assertNoErrors("profile current frontmatter object", exampleHealthFrontmatterObjects.profileCurrent, profileCurrentFrontmatterSchema);
104
+ assertNoErrors("goal frontmatter object", exampleHealthFrontmatterObjects.goal, goalFrontmatterSchema);
105
+ assertNoErrors("condition frontmatter object", exampleHealthFrontmatterObjects.condition, conditionFrontmatterSchema);
106
+ assertNoErrors("allergy frontmatter object", exampleHealthFrontmatterObjects.allergy, allergyFrontmatterSchema);
107
+ assertNoErrors("protocol frontmatter object", exampleHealthFrontmatterObjects.protocol, protocolFrontmatterSchema);
108
+ assertNoErrors("family-member frontmatter object", exampleHealthFrontmatterObjects.familyMember, familyMemberFrontmatterSchema);
109
+ assertNoErrors("genetic-variant frontmatter object", exampleHealthFrontmatterObjects.geneticVariant, geneticVariantFrontmatterSchema);
110
+ assertHasErrors("sample record rejects overflow recordedAt", {
111
+ ...exampleSampleRecords[0],
112
+ recordedAt: "2024-02-31T12:00:00Z",
113
+ }, sampleRecordSchema, [/recordedAt/u, /Invalid ISO date-time string/u]);
114
+ assertHasErrors("experiment frontmatter rejects overflow startedOn", {
115
+ ...exampleFrontmatterObjects.experiment,
116
+ startedOn: "2024-02-31",
117
+ }, experimentFrontmatterSchema, [/startedOn/u, /Invalid ISO date string/u]);
118
+ assert.deepEqual(parseFrontmatterMarkdown(exampleFrontmatterMarkdown.core), exampleFrontmatterObjects.core);
119
+ assert.deepEqual(parseFrontmatterMarkdown(exampleFrontmatterMarkdown.journalDay), exampleFrontmatterObjects.journalDay);
120
+ assert.deepEqual(parseFrontmatterMarkdown(exampleFrontmatterMarkdown.experiment), exampleFrontmatterObjects.experiment);
121
+ assert.deepEqual(parseFrontmatterMarkdown(exampleFrontmatterMarkdown.food), exampleFrontmatterObjects.food);
122
+ assert.deepEqual(parseFrontmatterMarkdown(exampleFrontmatterMarkdown.provider), exampleFrontmatterObjects.provider);
123
+ assert.deepEqual(parseFrontmatterMarkdown(exampleFrontmatterMarkdown.recipe), {
124
+ ...exampleFrontmatterObjects.recipe,
125
+ servings: "2",
126
+ prepTimeMinutes: "15",
127
+ cookTimeMinutes: "20",
128
+ totalTimeMinutes: "35",
129
+ });
130
+ assert.deepEqual(parseFrontmatterDocument(exampleFrontmatterMarkdown.recipe).attributes, exampleFrontmatterObjects.recipe);
131
+ assert.deepEqual(parseFrontmatterDocument(exampleFrontmatterMarkdown.workoutFormat).attributes, exampleFrontmatterObjects.workoutFormat);
132
+ assert.deepEqual(parseFrontmatterMarkdown(`---
133
+ flag: true
134
+ count: 42
135
+ tags:
136
+ - true
137
+ - 42
138
+ ---
139
+ `), {
140
+ flag: "true",
141
+ count: "42",
142
+ tags: ["true", "42"],
143
+ });
144
+ assert.deepEqual(parseFrontmatterMarkdown(`---
145
+ details:
146
+ nested: true
147
+ ---
148
+ `), {
149
+ details: {
150
+ nested: "true",
151
+ },
152
+ });
153
+ assert.throws(() => parseFrontmatterMarkdown(`---
154
+ schema-version: murph.frontmatter.core.v1
155
+ ---
156
+ `), /Unsupported frontmatter line: schema-version: murph\.frontmatter\.core\.v1/);
157
+ assert.throws(() => parseFrontmatterMarkdown(`---
158
+ title: Example
159
+ `), /Frontmatter terminator --- not found/);
160
+ assert.throws(() => parseFrontmatterMarkdown("title: Example"), /Frontmatter must start with ---/);
161
+ assert.deepEqual(parseFrontmatterDocument(`---
162
+ title: Example
163
+ details:
164
+ nested: true
165
+ ---
166
+
167
+ Body line
168
+ `), {
169
+ attributes: {
170
+ title: "Example",
171
+ details: {
172
+ nested: true,
173
+ },
174
+ },
175
+ body: "\nBody line\n",
176
+ rawFrontmatter: "title: Example\ndetails:\n nested: true",
177
+ });
178
+ assert.deepEqual(parseFrontmatterDocument(`---
179
+ title broken
180
+ ---
181
+
182
+ Body line
183
+ `, {
184
+ mode: "tolerant",
185
+ bodyNormalization: "trim",
186
+ }), {
187
+ attributes: {},
188
+ body: "---\ntitle broken\n---\n\nBody line",
189
+ rawFrontmatter: null,
190
+ });
191
+ assert.throws(() => parseFrontmatterDocument(`---
192
+ title broken
193
+ ---
194
+ `), /Expected a "key: value" frontmatter line\./);
195
+ assertHasErrors("core frontmatter rejects unexpected keys", {
196
+ ...exampleFrontmatterObjects.core,
197
+ unexpected: true,
198
+ }, coreFrontmatterSchema, [/^\$: Unrecognized key/i]);
199
+ assertHasErrors("event validation keeps field paths for discriminated unions", {
200
+ ...exampleEventRecords[0],
201
+ kind: "note",
202
+ note: undefined,
203
+ }, eventRecordSchema, [/^\$\.note:/m]);
204
+ assertHasErrors("event validation rejects duplicate tag arrays", {
205
+ ...exampleEventRecords[0],
206
+ kind: "encounter",
207
+ encounterType: "follow_up",
208
+ tags: ["repeat", "repeat"],
209
+ }, eventRecordSchema, [/unique array items/i]);
210
+ console.log([
211
+ "Verified schema artifacts and examples.",
212
+ `assessments=${exampleAssessmentResponses.length}`,
213
+ `events=${exampleEventRecords.length}`,
214
+ `profileSnapshots=${exampleProfileSnapshots.length}`,
215
+ `samples=${exampleSampleRecords.length}`,
216
+ `audits=${exampleAuditRecords.length}`,
217
+ ].join(" "));
218
+ async function assertPathExists(filePath) {
219
+ await access(filePath);
220
+ }
221
+ async function assertPathMissing(filePath) {
222
+ try {
223
+ await access(filePath);
224
+ }
225
+ catch {
226
+ return;
227
+ }
228
+ throw new Error(`Unexpected build artifact path present: ${path.relative(packageDir, filePath)}`);
229
+ }
230
+ //# sourceMappingURL=verify.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify.js","sourceRoot":"","sources":["../../scripts/verify.ts"],"names":[],"mappings":"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"}