@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,129 @@
1
+ import { ZodError } from "zod";
2
+ import { parseFrontmatterDocument } from "./frontmatter.js";
3
+ function formatPath(path) {
4
+ if (path.length === 0) {
5
+ return "$";
6
+ }
7
+ return path.reduce((current, segment) => {
8
+ if (typeof segment === "number") {
9
+ return `${current}[${segment}]`;
10
+ }
11
+ return `${current}.${String(segment)}`;
12
+ }, "$");
13
+ }
14
+ function flattenError(error) {
15
+ const messages = [];
16
+ for (const issue of error.issues) {
17
+ if (issue.code === "invalid_union") {
18
+ for (const branch of issue.errors) {
19
+ messages.push(...flattenError(new ZodError(branch)));
20
+ }
21
+ continue;
22
+ }
23
+ messages.push(`${formatPath(issue.path)}: ${issue.message}`);
24
+ }
25
+ return messages;
26
+ }
27
+ export function formatContractIssues(error) {
28
+ return flattenError(error);
29
+ }
30
+ export function safeParseContract(schema, value) {
31
+ const result = schema.safeParse(value);
32
+ if (result.success) {
33
+ return {
34
+ success: true,
35
+ data: result.data,
36
+ };
37
+ }
38
+ return {
39
+ success: false,
40
+ errors: formatContractIssues(result.error),
41
+ };
42
+ }
43
+ export function assertContract(schema, value, label = "value") {
44
+ const result = safeParseContract(schema, value);
45
+ if (!result.success) {
46
+ throw new TypeError(`${label} failed validation:\n${result.errors.join("\n")}`);
47
+ }
48
+ return result.data;
49
+ }
50
+ class FrontmatterMarkdownParseError extends TypeError {
51
+ problem;
52
+ constructor(problem) {
53
+ super(problem.message);
54
+ this.problem = problem;
55
+ this.name = "FrontmatterMarkdownParseError";
56
+ }
57
+ }
58
+ function projectLegacyFrontmatterAttributes(rawFrontmatter) {
59
+ const lines = rawFrontmatter.split("\n");
60
+ const result = {};
61
+ let index = 0;
62
+ while (index < lines.length) {
63
+ const line = lines[index] ?? "";
64
+ if (!line.trim()) {
65
+ index += 1;
66
+ continue;
67
+ }
68
+ const keyMatch = /^([A-Za-z0-9]+):(?:\s(.*))?$/u.exec(line);
69
+ if (!keyMatch) {
70
+ throw new TypeError(`Unsupported frontmatter line: ${line}`);
71
+ }
72
+ const [, key, rawValue = ""] = keyMatch;
73
+ if (rawValue !== "") {
74
+ result[key] = rawValue;
75
+ index += 1;
76
+ continue;
77
+ }
78
+ const objectEntries = {};
79
+ const values = [];
80
+ index += 1;
81
+ while (index < lines.length && /^ - /u.test(lines[index] ?? "")) {
82
+ values.push((lines[index] ?? "").slice(4));
83
+ index += 1;
84
+ }
85
+ if (values.length > 0) {
86
+ result[key] = values;
87
+ continue;
88
+ }
89
+ while (index < lines.length) {
90
+ const objectLine = lines[index] ?? "";
91
+ const objectMatch = /^ ([A-Za-z0-9]+):\s(.*)$/u.exec(objectLine);
92
+ if (!objectMatch) {
93
+ break;
94
+ }
95
+ const [, objectKey, objectValue] = objectMatch;
96
+ objectEntries[objectKey] = objectValue;
97
+ index += 1;
98
+ }
99
+ result[key] = Object.keys(objectEntries).length > 0 ? objectEntries : values;
100
+ }
101
+ return result;
102
+ }
103
+ export function parseFrontmatterMarkdown(markdown) {
104
+ const normalizedMarkdown = String(markdown ?? "").replace(/\r\n/g, "\n");
105
+ const lines = normalizedMarkdown.split("\n");
106
+ if (lines[0] !== "---") {
107
+ throw new TypeError("Frontmatter must start with ---");
108
+ }
109
+ try {
110
+ const parsed = parseFrontmatterDocument(normalizedMarkdown, {
111
+ mode: "strict",
112
+ parseScalar: (value) => value,
113
+ createError: (problem) => new FrontmatterMarkdownParseError(problem),
114
+ });
115
+ return projectLegacyFrontmatterAttributes(parsed.rawFrontmatter ?? "");
116
+ }
117
+ catch (error) {
118
+ if (error instanceof FrontmatterMarkdownParseError) {
119
+ if (error.problem.code === "missing_closing_delimiter") {
120
+ throw new TypeError("Frontmatter terminator --- not found");
121
+ }
122
+ if (error.problem.line) {
123
+ throw new TypeError(`Unsupported frontmatter line: ${error.problem.line}`);
124
+ }
125
+ }
126
+ throw error;
127
+ }
128
+ }
129
+ //# sourceMappingURL=validate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"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"}