@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 @@
1
+ {"version":3,"file":"shares.d.ts","sourceRoot":"","sources":["../src/shares.ts"],"names":[],"mappings":"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"}
package/dist/shares.js ADDED
@@ -0,0 +1,469 @@
1
+ import * as z from "zod";
2
+ import { ALLERGY_CRITICALITIES, ALLERGY_STATUSES, CONDITION_CLINICAL_STATUSES, CONDITION_SEVERITIES, CONDITION_VERIFICATION_STATUSES, CONTRACT_SCHEMA_VERSION, FOOD_STATUSES, GOAL_HORIZONS, GOAL_STATUSES, PROTOCOL_KINDS, PROTOCOL_STATUSES, RECIPE_STATUSES, VARIANT_SIGNIFICANCES, VARIANT_ZYGOSITIES, WORKOUT_FORMAT_STATUSES, ID_PREFIXES, } from "./constants.js";
3
+ import { activityStrengthExerciseSchema, FAMILY_MEMBER_LIMITS, GENETIC_VARIANT_LIMITS, } from "./zod.js";
4
+ import { idPattern } from "./ids.js";
5
+ import { isStrictIsoDate, isStrictIsoDateTime } from "./time.js";
6
+ function withContractMetadata(schema, id, title) {
7
+ return schema.meta({
8
+ $id: id,
9
+ title,
10
+ });
11
+ }
12
+ function boundedString(minLength, maxLength) {
13
+ return z.string().min(minLength).max(maxLength);
14
+ }
15
+ function patternedString(pattern, minLength, maxLength) {
16
+ let schema = z.string();
17
+ if (minLength !== undefined) {
18
+ schema = schema.min(minLength);
19
+ }
20
+ if (maxLength !== undefined) {
21
+ schema = schema.max(maxLength);
22
+ }
23
+ return schema.regex(new RegExp(pattern, "u"));
24
+ }
25
+ function isoDateString() {
26
+ return z
27
+ .string()
28
+ .meta({ format: "date" })
29
+ .refine((value) => isStrictIsoDate(value), "Invalid ISO date string.");
30
+ }
31
+ function isoDateTimeString() {
32
+ return z
33
+ .string()
34
+ .meta({ format: "date-time" })
35
+ .refine((value) => isStrictIsoDateTime(value), "Invalid ISO date-time string.");
36
+ }
37
+ function integerSchema(minimum, maximum) {
38
+ let schema = z.number();
39
+ if (minimum !== undefined) {
40
+ schema = schema.min(minimum);
41
+ }
42
+ if (maximum !== undefined) {
43
+ schema = schema.max(maximum);
44
+ }
45
+ return schema
46
+ .meta({ type: "integer" })
47
+ .refine((value) => Number.isInteger(value), "Expected an integer.");
48
+ }
49
+ function numberSchema(minimum, maximum) {
50
+ let schema = z.number();
51
+ if (minimum !== undefined) {
52
+ schema = schema.min(minimum);
53
+ }
54
+ if (maximum !== undefined) {
55
+ schema = schema.max(maximum);
56
+ }
57
+ return schema;
58
+ }
59
+ function uniqueArray(itemSchema, options = {}) {
60
+ let schema = z.array(itemSchema);
61
+ if (options.minItems !== undefined) {
62
+ schema = schema.min(options.minItems);
63
+ }
64
+ if (options.maxItems !== undefined) {
65
+ schema = schema.max(options.maxItems);
66
+ }
67
+ if (options.uniqueItems) {
68
+ schema = schema
69
+ .meta({ uniqueItems: true })
70
+ .superRefine((values, context) => {
71
+ const serialized = values.map((value) => JSON.stringify(value));
72
+ if (new Set(serialized).size !== serialized.length) {
73
+ context.addIssue({
74
+ code: z.ZodIssueCode.custom,
75
+ message: "Expected unique array items.",
76
+ });
77
+ }
78
+ });
79
+ }
80
+ return schema;
81
+ }
82
+ const SLUG_PATTERN = "^[a-z0-9]+(?:-[a-z0-9]+)*$";
83
+ const DAILY_TIME_PATTERN = "^(?:[01]\\d|2[0-3]):[0-5]\\d$";
84
+ const UNIT_PATTERN = "^[A-Za-z0-9._/%-]+$";
85
+ const GROUP_PATTERN = "^[A-Za-z0-9._-]+(?:/[A-Za-z0-9._-]+)*$";
86
+ const SHARE_ENTITY_REF_PATTERN = "^[a-z][a-z0-9:._-]{1,79}$";
87
+ const slugSchema = patternedString(SLUG_PATTERN);
88
+ const allergyIdSchema = patternedString(idPattern(ID_PREFIXES.allergy));
89
+ const familyMemberIdSchema = patternedString(idPattern(ID_PREFIXES.family));
90
+ const goalIdSchema = patternedString(idPattern(ID_PREFIXES.goal));
91
+ const conditionIdSchema = patternedString(idPattern(ID_PREFIXES.condition));
92
+ const protocolIdSchema = patternedString(idPattern(ID_PREFIXES.protocol));
93
+ const experimentIdSchema = patternedString(idPattern(ID_PREFIXES.experiment));
94
+ const variantIdSchema = patternedString(idPattern(ID_PREFIXES.variant));
95
+ const shareEntityRefSchema = patternedString(SHARE_ENTITY_REF_PATTERN);
96
+ export const attachedProtocolIdsSchema = uniqueArray(protocolIdSchema, {
97
+ maxItems: 32,
98
+ uniqueItems: true,
99
+ }).optional();
100
+ export const foodAutoLogDailySchema = z
101
+ .object({
102
+ time: patternedString(DAILY_TIME_PATTERN),
103
+ })
104
+ .strict();
105
+ export const supplementIngredientPayloadSchema = z
106
+ .object({
107
+ compound: boundedString(1, 160),
108
+ label: boundedString(1, 160).optional(),
109
+ amount: numberSchema(0).optional(),
110
+ unit: patternedString(UNIT_PATTERN).optional(),
111
+ active: z.boolean().optional(),
112
+ note: boundedString(1, 4000).optional(),
113
+ })
114
+ .strict();
115
+ export const foodUpsertPayloadSchema = withContractMetadata(z
116
+ .object({
117
+ foodId: patternedString(idPattern(ID_PREFIXES.food)).optional(),
118
+ slug: slugSchema.optional(),
119
+ title: boundedString(1, 160),
120
+ status: z.enum(FOOD_STATUSES).default("active"),
121
+ summary: boundedString(1, 4000).optional(),
122
+ kind: boundedString(1, 160).optional(),
123
+ brand: boundedString(1, 160).optional(),
124
+ vendor: boundedString(1, 160).optional(),
125
+ location: boundedString(1, 160).optional(),
126
+ serving: boundedString(1, 160).optional(),
127
+ aliases: uniqueArray(boundedString(1, 160), { uniqueItems: true }).optional(),
128
+ ingredients: uniqueArray(boundedString(1, 4000), { maxItems: 100 }).optional(),
129
+ tags: uniqueArray(slugSchema, { uniqueItems: true }).optional(),
130
+ note: boundedString(1, 4000).optional(),
131
+ autoLogDaily: foodAutoLogDailySchema.optional(),
132
+ attachedProtocolIds: attachedProtocolIdsSchema,
133
+ })
134
+ .strict(), "@murphai/contracts/food-upsert-payload.schema.json", "Murph Food Upsert Payload");
135
+ export const recipeUpsertPayloadSchema = withContractMetadata(z
136
+ .object({
137
+ recipeId: patternedString(idPattern(ID_PREFIXES.recipe)).optional(),
138
+ slug: slugSchema.optional(),
139
+ title: boundedString(1, 160),
140
+ status: z.enum(RECIPE_STATUSES).default("saved"),
141
+ summary: boundedString(1, 4000).optional(),
142
+ cuisine: boundedString(1, 160).optional(),
143
+ dishType: boundedString(1, 160).optional(),
144
+ source: boundedString(1, 240).optional(),
145
+ servings: numberSchema(0).optional(),
146
+ prepTimeMinutes: integerSchema(0).optional(),
147
+ cookTimeMinutes: integerSchema(0).optional(),
148
+ totalTimeMinutes: integerSchema(0).optional(),
149
+ tags: uniqueArray(slugSchema, { uniqueItems: true }).optional(),
150
+ ingredients: uniqueArray(boundedString(1, 4000), { maxItems: 100 }).optional(),
151
+ steps: uniqueArray(boundedString(1, 4000), { maxItems: 100 }).optional(),
152
+ relatedGoalIds: uniqueArray(goalIdSchema, { uniqueItems: true }).optional(),
153
+ relatedConditionIds: uniqueArray(conditionIdSchema, { uniqueItems: true }).optional(),
154
+ })
155
+ .strict(), "@murphai/contracts/recipe-upsert-payload.schema.json", "Murph Recipe Upsert Payload");
156
+ export const workoutFormatUpsertPayloadSchema = withContractMetadata(z
157
+ .object({
158
+ workoutFormatId: patternedString(idPattern(ID_PREFIXES.workoutFormat)).optional(),
159
+ slug: slugSchema.optional(),
160
+ title: boundedString(1, 160),
161
+ status: z.enum(WORKOUT_FORMAT_STATUSES).default("active"),
162
+ summary: boundedString(1, 4000).optional(),
163
+ activityType: slugSchema,
164
+ durationMinutes: integerSchema(1, 24 * 60).optional(),
165
+ distanceKm: numberSchema(0, 1_000).optional(),
166
+ strengthExercises: uniqueArray(activityStrengthExerciseSchema, {
167
+ maxItems: 50,
168
+ }).optional(),
169
+ tags: uniqueArray(slugSchema, { uniqueItems: true }).optional(),
170
+ note: boundedString(1, 4000).optional(),
171
+ templateText: boundedString(1, 4000).optional(),
172
+ })
173
+ .strict(), "@murphai/contracts/workout-format-upsert-payload.schema.json", "Murph Workout Format Upsert Payload");
174
+ export const goalUpsertPayloadSchema = withContractMetadata(z
175
+ .object({
176
+ goalId: goalIdSchema.optional(),
177
+ slug: slugSchema.optional(),
178
+ title: boundedString(1, 160),
179
+ status: z.enum(GOAL_STATUSES).default("active"),
180
+ horizon: z.enum(GOAL_HORIZONS).default("ongoing"),
181
+ priority: integerSchema(1, 10).optional(),
182
+ window: z
183
+ .object({
184
+ startAt: isoDateString().optional(),
185
+ targetAt: isoDateString().optional(),
186
+ })
187
+ .strict()
188
+ .optional(),
189
+ parentGoalId: goalIdSchema.nullable().optional(),
190
+ relatedGoalIds: uniqueArray(goalIdSchema, { uniqueItems: true }).optional(),
191
+ relatedExperimentIds: uniqueArray(experimentIdSchema, {
192
+ uniqueItems: true,
193
+ }).optional(),
194
+ domains: uniqueArray(boundedString(1, 80), { uniqueItems: true }).optional(),
195
+ })
196
+ .strict(), "@murphai/contracts/goal-upsert-payload.schema.json", "Murph Goal Upsert Payload");
197
+ export const goalUpsertPatchPayloadSchema = withContractMetadata(z
198
+ .object({
199
+ goalId: goalIdSchema.optional(),
200
+ slug: slugSchema.optional(),
201
+ title: boundedString(1, 160).optional(),
202
+ status: z.enum(GOAL_STATUSES).optional(),
203
+ horizon: z.enum(GOAL_HORIZONS).optional(),
204
+ priority: integerSchema(1, 10).optional(),
205
+ window: z
206
+ .object({
207
+ startAt: isoDateString().optional(),
208
+ targetAt: isoDateString().optional(),
209
+ })
210
+ .strict()
211
+ .optional(),
212
+ parentGoalId: goalIdSchema.nullable().optional(),
213
+ relatedGoalIds: uniqueArray(goalIdSchema, { uniqueItems: true }).optional(),
214
+ relatedExperimentIds: uniqueArray(experimentIdSchema, {
215
+ uniqueItems: true,
216
+ }).optional(),
217
+ domains: uniqueArray(boundedString(1, 80), { uniqueItems: true }).optional(),
218
+ })
219
+ .strict(), "@murphai/contracts/goal-upsert-patch-payload.schema.json", "Murph Goal Upsert Patch Payload");
220
+ export const conditionUpsertPayloadSchema = withContractMetadata(z
221
+ .object({
222
+ conditionId: conditionIdSchema.optional(),
223
+ slug: slugSchema.optional(),
224
+ title: boundedString(1, 160),
225
+ clinicalStatus: z.enum(CONDITION_CLINICAL_STATUSES).default("active"),
226
+ verificationStatus: z.enum(CONDITION_VERIFICATION_STATUSES).optional(),
227
+ assertedOn: isoDateString().optional(),
228
+ resolvedOn: isoDateString().optional(),
229
+ severity: z.enum(CONDITION_SEVERITIES).optional(),
230
+ bodySites: uniqueArray(boundedString(1, 120), { uniqueItems: true }).optional(),
231
+ relatedGoalIds: uniqueArray(goalIdSchema, { uniqueItems: true }).optional(),
232
+ relatedProtocolIds: uniqueArray(protocolIdSchema, { uniqueItems: true }).optional(),
233
+ note: boundedString(1, 4000).optional(),
234
+ })
235
+ .strict(), "@murphai/contracts/condition-upsert-payload.schema.json", "Murph Condition Upsert Payload");
236
+ export const conditionUpsertPatchPayloadSchema = withContractMetadata(z
237
+ .object({
238
+ conditionId: conditionIdSchema.optional(),
239
+ slug: slugSchema.optional(),
240
+ title: boundedString(1, 160).optional(),
241
+ clinicalStatus: z.enum(CONDITION_CLINICAL_STATUSES).optional(),
242
+ verificationStatus: z.enum(CONDITION_VERIFICATION_STATUSES).nullable().optional(),
243
+ assertedOn: isoDateString().nullable().optional(),
244
+ resolvedOn: isoDateString().nullable().optional(),
245
+ severity: z.enum(CONDITION_SEVERITIES).nullable().optional(),
246
+ bodySites: uniqueArray(boundedString(1, 120), { uniqueItems: true }).nullable().optional(),
247
+ relatedGoalIds: uniqueArray(goalIdSchema, { uniqueItems: true }).nullable().optional(),
248
+ relatedProtocolIds: uniqueArray(protocolIdSchema, { uniqueItems: true }).nullable().optional(),
249
+ note: boundedString(1, 4000).nullable().optional(),
250
+ })
251
+ .strict(), "@murphai/contracts/condition-upsert-patch-payload.schema.json", "Murph Condition Upsert Patch Payload");
252
+ export const allergyUpsertPayloadSchema = withContractMetadata(z
253
+ .object({
254
+ allergyId: allergyIdSchema.optional(),
255
+ slug: slugSchema.optional(),
256
+ title: boundedString(1, 160),
257
+ substance: boundedString(1, 160),
258
+ status: z.enum(ALLERGY_STATUSES).default("active"),
259
+ criticality: z.enum(ALLERGY_CRITICALITIES).optional(),
260
+ reaction: boundedString(1, 160).optional(),
261
+ recordedOn: isoDateString().optional(),
262
+ relatedConditionIds: uniqueArray(conditionIdSchema, { uniqueItems: true }).optional(),
263
+ note: boundedString(1, 4000).optional(),
264
+ })
265
+ .strict(), "@murphai/contracts/allergy-upsert-payload.schema.json", "Murph Allergy Upsert Payload");
266
+ export const allergyUpsertPatchPayloadSchema = withContractMetadata(z
267
+ .object({
268
+ allergyId: allergyIdSchema.optional(),
269
+ slug: slugSchema.optional(),
270
+ title: boundedString(1, 160).optional(),
271
+ substance: boundedString(1, 160).optional(),
272
+ status: z.enum(ALLERGY_STATUSES).optional(),
273
+ criticality: z.enum(ALLERGY_CRITICALITIES).nullable().optional(),
274
+ reaction: boundedString(1, 160).nullable().optional(),
275
+ recordedOn: isoDateString().nullable().optional(),
276
+ relatedConditionIds: uniqueArray(conditionIdSchema, { uniqueItems: true }).nullable().optional(),
277
+ note: boundedString(1, 4000).nullable().optional(),
278
+ })
279
+ .strict(), "@murphai/contracts/allergy-upsert-patch-payload.schema.json", "Murph Allergy Upsert Patch Payload");
280
+ export const familyMemberUpsertPayloadSchema = withContractMetadata(z
281
+ .object({
282
+ familyMemberId: familyMemberIdSchema.optional(),
283
+ slug: slugSchema.optional(),
284
+ title: boundedString(1, FAMILY_MEMBER_LIMITS.title),
285
+ relationship: boundedString(1, FAMILY_MEMBER_LIMITS.relationship),
286
+ conditions: uniqueArray(boundedString(1, FAMILY_MEMBER_LIMITS.condition), {
287
+ uniqueItems: true,
288
+ }).optional(),
289
+ deceased: z.boolean().optional(),
290
+ note: boundedString(1, FAMILY_MEMBER_LIMITS.note).optional(),
291
+ relatedVariantIds: uniqueArray(variantIdSchema, { uniqueItems: true }).optional(),
292
+ })
293
+ .strict(), "@murphai/contracts/family-member-upsert-payload.schema.json", "Murph Family Member Upsert Payload");
294
+ export const familyMemberUpsertPatchPayloadSchema = withContractMetadata(z
295
+ .object({
296
+ familyMemberId: familyMemberIdSchema.optional(),
297
+ slug: slugSchema.optional(),
298
+ title: boundedString(1, FAMILY_MEMBER_LIMITS.title).optional(),
299
+ relationship: boundedString(1, FAMILY_MEMBER_LIMITS.relationship).optional(),
300
+ conditions: uniqueArray(boundedString(1, FAMILY_MEMBER_LIMITS.condition), {
301
+ uniqueItems: true,
302
+ }).nullable().optional(),
303
+ deceased: z.boolean().nullable().optional(),
304
+ note: boundedString(1, FAMILY_MEMBER_LIMITS.note).nullable().optional(),
305
+ relatedVariantIds: uniqueArray(variantIdSchema, { uniqueItems: true }).nullable().optional(),
306
+ })
307
+ .strict(), "@murphai/contracts/family-member-upsert-patch-payload.schema.json", "Murph Family Member Upsert Patch Payload");
308
+ export const geneticVariantUpsertPayloadSchema = withContractMetadata(z
309
+ .object({
310
+ variantId: variantIdSchema.optional(),
311
+ slug: slugSchema.optional(),
312
+ title: boundedString(1, GENETIC_VARIANT_LIMITS.title),
313
+ gene: boundedString(1, GENETIC_VARIANT_LIMITS.gene),
314
+ zygosity: z.enum(VARIANT_ZYGOSITIES).optional(),
315
+ significance: z.enum(VARIANT_SIGNIFICANCES).optional(),
316
+ inheritance: boundedString(1, GENETIC_VARIANT_LIMITS.inheritance).optional(),
317
+ sourceFamilyMemberIds: uniqueArray(familyMemberIdSchema, { uniqueItems: true }).optional(),
318
+ note: boundedString(1, GENETIC_VARIANT_LIMITS.note).optional(),
319
+ })
320
+ .strict(), "@murphai/contracts/genetic-variant-upsert-payload.schema.json", "Murph Genetic Variant Upsert Payload");
321
+ export const geneticVariantUpsertPatchPayloadSchema = withContractMetadata(z
322
+ .object({
323
+ variantId: variantIdSchema.optional(),
324
+ slug: slugSchema.optional(),
325
+ title: boundedString(1, GENETIC_VARIANT_LIMITS.title).optional(),
326
+ gene: boundedString(1, GENETIC_VARIANT_LIMITS.gene).optional(),
327
+ zygosity: z.enum(VARIANT_ZYGOSITIES).nullable().optional(),
328
+ significance: z.enum(VARIANT_SIGNIFICANCES).nullable().optional(),
329
+ inheritance: boundedString(1, GENETIC_VARIANT_LIMITS.inheritance).nullable().optional(),
330
+ sourceFamilyMemberIds: uniqueArray(familyMemberIdSchema, { uniqueItems: true }).nullable().optional(),
331
+ note: boundedString(1, GENETIC_VARIANT_LIMITS.note).nullable().optional(),
332
+ })
333
+ .strict(), "@murphai/contracts/genetic-variant-upsert-patch-payload.schema.json", "Murph Genetic Variant Upsert Patch Payload");
334
+ export const protocolUpsertPayloadSchema = withContractMetadata(z
335
+ .object({
336
+ protocolId: protocolIdSchema.optional(),
337
+ slug: slugSchema.optional(),
338
+ title: boundedString(1, 160),
339
+ kind: z.enum(PROTOCOL_KINDS).default("supplement"),
340
+ status: z.enum(PROTOCOL_STATUSES).default("active"),
341
+ startedOn: isoDateString().optional(),
342
+ stoppedOn: isoDateString().optional(),
343
+ substance: boundedString(1, 160).optional(),
344
+ dose: numberSchema(0).optional(),
345
+ unit: patternedString(UNIT_PATTERN).optional(),
346
+ schedule: boundedString(1, 160).optional(),
347
+ brand: boundedString(1, 160).optional(),
348
+ manufacturer: boundedString(1, 160).optional(),
349
+ servingSize: boundedString(1, 160).optional(),
350
+ ingredients: uniqueArray(supplementIngredientPayloadSchema, { maxItems: 64 }).optional(),
351
+ relatedGoalIds: uniqueArray(goalIdSchema, { uniqueItems: true }).optional(),
352
+ relatedConditionIds: uniqueArray(conditionIdSchema, { uniqueItems: true }).optional(),
353
+ group: patternedString(GROUP_PATTERN, 1, 160).optional(),
354
+ })
355
+ .strict(), "@murphai/contracts/protocol-upsert-payload.schema.json", "Murph Protocol Upsert Payload");
356
+ export const sharePackFoodPayloadSchema = withContractMetadata(foodUpsertPayloadSchema
357
+ .omit({
358
+ attachedProtocolIds: true,
359
+ foodId: true,
360
+ })
361
+ .extend({
362
+ attachedProtocolRefs: uniqueArray(shareEntityRefSchema, {
363
+ maxItems: 32,
364
+ uniqueItems: true,
365
+ }).optional(),
366
+ })
367
+ .strict(), "@murphai/contracts/share-pack-food-payload.schema.json", "Murph Share Pack Food Payload");
368
+ export const sharePackRecipePayloadSchema = withContractMetadata(recipeUpsertPayloadSchema.omit({ recipeId: true }).strict(), "@murphai/contracts/share-pack-recipe-payload.schema.json", "Murph Share Pack Recipe Payload");
369
+ export const sharePackProtocolPayloadSchema = withContractMetadata(protocolUpsertPayloadSchema.omit({ protocolId: true }).strict(), "@murphai/contracts/share-pack-protocol-payload.schema.json", "Murph Share Pack Protocol Payload");
370
+ export const sharePackEntitySchema = withContractMetadata(z.discriminatedUnion("kind", [
371
+ z
372
+ .object({
373
+ kind: z.literal("food"),
374
+ ref: shareEntityRefSchema,
375
+ payload: sharePackFoodPayloadSchema,
376
+ })
377
+ .strict(),
378
+ z
379
+ .object({
380
+ kind: z.literal("recipe"),
381
+ ref: shareEntityRefSchema,
382
+ payload: sharePackRecipePayloadSchema,
383
+ })
384
+ .strict(),
385
+ z
386
+ .object({
387
+ kind: z.literal("protocol"),
388
+ ref: shareEntityRefSchema,
389
+ payload: sharePackProtocolPayloadSchema,
390
+ })
391
+ .strict(),
392
+ ]), "@murphai/contracts/share-pack-entity.schema.json", "Murph Share Pack Entity");
393
+ export const sharePackSchema = withContractMetadata(z
394
+ .object({
395
+ schemaVersion: z.literal(CONTRACT_SCHEMA_VERSION.sharePack),
396
+ title: boundedString(1, 160),
397
+ createdAt: isoDateTimeString().optional(),
398
+ entities: uniqueArray(sharePackEntitySchema, {
399
+ minItems: 1,
400
+ maxItems: 32,
401
+ }),
402
+ afterImport: z
403
+ .object({
404
+ logMeal: z
405
+ .object({
406
+ foodRef: shareEntityRefSchema,
407
+ occurredAt: isoDateTimeString().optional(),
408
+ note: boundedString(1, 4000).optional(),
409
+ })
410
+ .strict()
411
+ .optional(),
412
+ })
413
+ .strict()
414
+ .optional(),
415
+ })
416
+ .strict()
417
+ .superRefine((value, context) => {
418
+ const refs = value.entities.map((entity) => entity.ref);
419
+ const duplicateRefs = refs.filter((ref, index) => refs.indexOf(ref) !== index);
420
+ if (duplicateRefs.length > 0) {
421
+ context.addIssue({
422
+ code: z.ZodIssueCode.custom,
423
+ message: `Duplicate share entity refs are not allowed: ${[...new Set(duplicateRefs)].join(", ")}.`,
424
+ path: ["entities"],
425
+ });
426
+ }
427
+ const refKinds = new Map(value.entities.map((entity) => [entity.ref, entity.kind]));
428
+ value.entities.forEach((entity, index) => {
429
+ if (entity.kind === "food") {
430
+ for (const [attachedIndex, attachedRef] of (entity.payload.attachedProtocolRefs ?? []).entries()) {
431
+ const attachedKind = refKinds.get(attachedRef);
432
+ if (!attachedKind) {
433
+ context.addIssue({
434
+ code: z.ZodIssueCode.custom,
435
+ message: `Food entity references unknown protocol ref \"${attachedRef}\".`,
436
+ path: ["entities", index, "payload", "attachedProtocolRefs", attachedIndex],
437
+ });
438
+ continue;
439
+ }
440
+ if (attachedKind !== "protocol") {
441
+ context.addIssue({
442
+ code: z.ZodIssueCode.custom,
443
+ message: `Food entity refs must target protocol share entities, but \"${attachedRef}\" is a ${attachedKind}.`,
444
+ path: ["entities", index, "payload", "attachedProtocolRefs", attachedIndex],
445
+ });
446
+ }
447
+ }
448
+ }
449
+ });
450
+ const logMealRef = value.afterImport?.logMeal?.foodRef;
451
+ if (logMealRef) {
452
+ const logMealKind = refKinds.get(logMealRef);
453
+ if (!logMealKind) {
454
+ context.addIssue({
455
+ code: z.ZodIssueCode.custom,
456
+ message: `afterImport.logMeal.foodRef references unknown share entity ref \"${logMealRef}\".`,
457
+ path: ["afterImport", "logMeal", "foodRef"],
458
+ });
459
+ }
460
+ else if (logMealKind !== "food") {
461
+ context.addIssue({
462
+ code: z.ZodIssueCode.custom,
463
+ message: `afterImport.logMeal.foodRef must target a food share entity, but \"${logMealRef}\" is a ${logMealKind}.`,
464
+ path: ["afterImport", "logMeal", "foodRef"],
465
+ });
466
+ }
467
+ }
468
+ }), "@murphai/contracts/share-pack.schema.json", "Murph Share Pack");
469
+ //# sourceMappingURL=shares.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shares.js","sourceRoot":"","sources":["../src/shares.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAEzB,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,2BAA2B,EAC3B,oBAAoB,EACpB,+BAA+B,EAC/B,uBAAuB,EACvB,aAAa,EACb,aAAa,EACb,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,uBAAuB,EACvB,WAAW,GACZ,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,8BAA8B,EAC9B,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAEjE,SAAS,oBAAoB,CAC3B,MAAe,EACf,EAAU,EACV,KAAa;IAEb,OAAO,MAAM,CAAC,IAAI,CAAC;QACjB,GAAG,EAAE,EAAE;QACP,KAAK;KACN,CAAY,CAAC;AAChB,CAAC;AAED,SAAS,aAAa,CAAC,SAAiB,EAAE,SAAiB;IACzD,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,eAAe,CAAC,OAAe,EAAE,SAAkB,EAAE,SAAkB;IAC9E,IAAI,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;IAExB,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACjC,CAAC;IAED,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,aAAa;IACpB,OAAO,CAAC;SACL,MAAM,EAAE;SACR,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;SACxB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,0BAA0B,CAAC,CAAC;AAC3E,CAAC;AAED,SAAS,iBAAiB;IACxB,OAAO,CAAC;SACL,MAAM,EAAE;SACR,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;SAC7B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,+BAA+B,CAAC,CAAC;AACpF,CAAC;AAED,SAAS,aAAa,CAAC,OAAgB,EAAE,OAAgB;IACvD,IAAI,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;IAExB,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,MAAM;SACV,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;SACzB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,sBAAsB,CAAC,CAAC;AACxE,CAAC;AAED,SAAS,YAAY,CAAC,OAAgB,EAAE,OAAgB;IACtD,IAAI,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;IAExB,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,WAAW,CAClB,UAAmB,EACnB,UAII,EAAE;IAEN,IAAI,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAEjC,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACnC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACnC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACxB,MAAM,GAAG,MAAM;aACZ,IAAI,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;aAC3B,WAAW,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE;YAC/B,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;YAEhE,IAAI,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;gBACnD,OAAO,CAAC,QAAQ,CAAC;oBACf,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;oBAC3B,OAAO,EAAE,8BAA8B;iBACxC,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;IACP,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,YAAY,GAAG,4BAA4B,CAAC;AAClD,MAAM,kBAAkB,GAAG,+BAA+B,CAAC;AAC3D,MAAM,YAAY,GAAG,qBAAqB,CAAC;AAC3C,MAAM,aAAa,GAAG,wCAAwC,CAAC;AAC/D,MAAM,wBAAwB,GAAG,2BAA2B,CAAC;AAE7D,MAAM,UAAU,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;AACjD,MAAM,eAAe,GAAG,eAAe,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;AACxE,MAAM,oBAAoB,GAAG,eAAe,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;AAC5E,MAAM,YAAY,GAAG,eAAe,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;AAClE,MAAM,iBAAiB,GAAG,eAAe,CAAC,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;AAC5E,MAAM,gBAAgB,GAAG,eAAe,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC1E,MAAM,kBAAkB,GAAG,eAAe,CAAC,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC;AAC9E,MAAM,eAAe,GAAG,eAAe,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;AACxE,MAAM,oBAAoB,GAAG,eAAe,CAAC,wBAAwB,CAAC,CAAC;AAEvE,MAAM,CAAC,MAAM,yBAAyB,GAAG,WAAW,CAAC,gBAAgB,EAAE;IACrE,QAAQ,EAAE,EAAE;IACZ,WAAW,EAAE,IAAI;CAClB,CAAC,CAAC,QAAQ,EAAE,CAAC;AAEd,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC;KACpC,MAAM,CAAC;IACN,IAAI,EAAE,eAAe,CAAC,kBAAkB,CAAC;CAC1C,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC;KAC/C,MAAM,CAAC;IACN,QAAQ,EAAE,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC;IAC/B,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE;IACvC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAClC,IAAI,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE;IAC9C,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC9B,IAAI,EAAE,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE;CACxC,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,uBAAuB,GAAG,oBAAoB,CACzD,CAAC;KACE,MAAM,CAAC;IACN,MAAM,EAAE,eAAe,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC/D,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE;IAC3B,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC;IAC5B,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC/C,OAAO,EAAE,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE;IAC1C,IAAI,EAAE,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE;IACtC,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE;IACvC,MAAM,EAAE,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE;IACxC,QAAQ,EAAE,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE;IAC1C,OAAO,EAAE,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE;IACzC,OAAO,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC7E,WAAW,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC9E,IAAI,EAAE,WAAW,CAAC,UAAU,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC/D,IAAI,EAAE,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE;IACvC,YAAY,EAAE,sBAAsB,CAAC,QAAQ,EAAE;IAC/C,mBAAmB,EAAE,yBAAyB;CAC/C,CAAC;KACD,MAAM,EAAE,EACX,oDAAoD,EACpD,2BAA2B,CAC5B,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,oBAAoB,CAC3D,CAAC;KACE,MAAM,CAAC;IACN,QAAQ,EAAE,eAAe,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE;IACnE,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE;IAC3B,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC;IAC5B,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IAChD,OAAO,EAAE,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE;IAC1C,OAAO,EAAE,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE;IACzC,QAAQ,EAAE,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE;IAC1C,MAAM,EAAE,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE;IACxC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACpC,eAAe,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC5C,eAAe,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC5C,gBAAgB,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC7C,IAAI,EAAE,WAAW,CAAC,UAAU,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC/D,WAAW,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC9E,KAAK,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE;IACxE,cAAc,EAAE,WAAW,CAAC,YAAY,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC3E,mBAAmB,EAAE,WAAW,CAAC,iBAAiB,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;CACtF,CAAC;KACD,MAAM,EAAE,EACX,sDAAsD,EACtD,6BAA6B,CAC9B,CAAC;AAEF,MAAM,CAAC,MAAM,gCAAgC,GAAG,oBAAoB,CAClE,CAAC;KACE,MAAM,CAAC;IACN,eAAe,EAAE,eAAe,CAAC,SAAS,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,EAAE;IACjF,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE;IAC3B,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC;IAC5B,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IACzD,OAAO,EAAE,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE;IAC1C,YAAY,EAAE,UAAU;IACxB,eAAe,EAAE,aAAa,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE;IACrD,UAAU,EAAE,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE;IAC7C,iBAAiB,EAAE,WAAW,CAAC,8BAA8B,EAAE;QAC7D,QAAQ,EAAE,EAAE;KACb,CAAC,CAAC,QAAQ,EAAE;IACb,IAAI,EAAE,WAAW,CAAC,UAAU,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC/D,IAAI,EAAE,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE;IACvC,YAAY,EAAE,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE;CAChD,CAAC;KACD,MAAM,EAAE,EACX,8DAA8D,EAC9D,qCAAqC,CACtC,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,oBAAoB,CACzD,CAAC;KACE,MAAM,CAAC;IACN,MAAM,EAAE,YAAY,CAAC,QAAQ,EAAE;IAC/B,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE;IAC3B,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC;IAC5B,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC/C,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;IACjD,QAAQ,EAAE,aAAa,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE;IACzC,MAAM,EAAE,CAAC;SACN,MAAM,CAAC;QACN,OAAO,EAAE,aAAa,EAAE,CAAC,QAAQ,EAAE;QACnC,QAAQ,EAAE,aAAa,EAAE,CAAC,QAAQ,EAAE;KACrC,CAAC;SACD,MAAM,EAAE;SACR,QAAQ,EAAE;IACb,YAAY,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAChD,cAAc,EAAE,WAAW,CAAC,YAAY,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC3E,oBAAoB,EAAE,WAAW,CAAC,kBAAkB,EAAE;QACpD,WAAW,EAAE,IAAI;KAClB,CAAC,CAAC,QAAQ,EAAE;IACb,OAAO,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC7E,CAAC;KACD,MAAM,EAAE,EACX,oDAAoD,EACpD,2BAA2B,CAC5B,CAAC;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAG,oBAAoB,CAC9D,CAAC;KACE,MAAM,CAAC;IACN,MAAM,EAAE,YAAY,CAAC,QAAQ,EAAE;IAC/B,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE;IAC3B,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE;IACvC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE;IACxC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE;IACzC,QAAQ,EAAE,aAAa,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE;IACzC,MAAM,EAAE,CAAC;SACN,MAAM,CAAC;QACN,OAAO,EAAE,aAAa,EAAE,CAAC,QAAQ,EAAE;QACnC,QAAQ,EAAE,aAAa,EAAE,CAAC,QAAQ,EAAE;KACrC,CAAC;SACD,MAAM,EAAE;SACR,QAAQ,EAAE;IACb,YAAY,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAChD,cAAc,EAAE,WAAW,CAAC,YAAY,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC3E,oBAAoB,EAAE,WAAW,CAAC,kBAAkB,EAAE;QACpD,WAAW,EAAE,IAAI;KAClB,CAAC,CAAC,QAAQ,EAAE;IACb,OAAO,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC7E,CAAC;KACD,MAAM,EAAE,EACX,0DAA0D,EAC1D,iCAAiC,CAClC,CAAC;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAG,oBAAoB,CAC9D,CAAC;KACE,MAAM,CAAC;IACN,WAAW,EAAE,iBAAiB,CAAC,QAAQ,EAAE;IACzC,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE;IAC3B,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC;IAC5B,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IACrE,kBAAkB,EAAE,CAAC,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC,QAAQ,EAAE;IACtE,UAAU,EAAE,aAAa,EAAE,CAAC,QAAQ,EAAE;IACtC,UAAU,EAAE,aAAa,EAAE,CAAC,QAAQ,EAAE;IACtC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,QAAQ,EAAE;IACjD,SAAS,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC/E,cAAc,EAAE,WAAW,CAAC,YAAY,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC3E,kBAAkB,EAAE,WAAW,CAAC,gBAAgB,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;IACnF,IAAI,EAAE,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE;CACxC,CAAC;KACD,MAAM,EAAE,EACX,yDAAyD,EACzD,gCAAgC,CACjC,CAAC;AAEF,MAAM,CAAC,MAAM,iCAAiC,GAAG,oBAAoB,CACnE,CAAC;KACE,MAAM,CAAC;IACN,WAAW,EAAE,iBAAiB,CAAC,QAAQ,EAAE;IACzC,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE;IAC3B,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE;IACvC,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,QAAQ,EAAE;IAC9D,kBAAkB,EAAE,CAAC,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACjF,UAAU,EAAE,aAAa,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACjD,UAAU,EAAE,aAAa,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACjD,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC5D,SAAS,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC1F,cAAc,EAAE,WAAW,CAAC,YAAY,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACtF,kBAAkB,EAAE,WAAW,CAAC,gBAAgB,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC9F,IAAI,EAAE,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CACnD,CAAC;KACD,MAAM,EAAE,EACX,+DAA+D,EAC/D,sCAAsC,CACvC,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,oBAAoB,CAC5D,CAAC;KACE,MAAM,CAAC;IACN,SAAS,EAAE,eAAe,CAAC,QAAQ,EAAE;IACrC,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE;IAC3B,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC;IAC5B,SAAS,EAAE,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC;IAChC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IAClD,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,QAAQ,EAAE;IACrD,QAAQ,EAAE,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE;IAC1C,UAAU,EAAE,aAAa,EAAE,CAAC,QAAQ,EAAE;IACtC,mBAAmB,EAAE,WAAW,CAAC,iBAAiB,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;IACrF,IAAI,EAAE,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE;CACxC,CAAC;KACD,MAAM,EAAE,EACX,uDAAuD,EACvD,8BAA8B,CAC/B,CAAC;AAEF,MAAM,CAAC,MAAM,+BAA+B,GAAG,oBAAoB,CACjE,CAAC;KACE,MAAM,CAAC;IACN,SAAS,EAAE,eAAe,CAAC,QAAQ,EAAE;IACrC,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE;IAC3B,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE;IACvC,SAAS,EAAE,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE;IAC3C,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE;IAC3C,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAChE,QAAQ,EAAE,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACrD,UAAU,EAAE,aAAa,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACjD,mBAAmB,EAAE,WAAW,CAAC,iBAAiB,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAChG,IAAI,EAAE,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CACnD,CAAC;KACD,MAAM,EAAE,EACX,6DAA6D,EAC7D,oCAAoC,CACrC,CAAC;AAEF,MAAM,CAAC,MAAM,+BAA+B,GAAG,oBAAoB,CACjE,CAAC;KACE,MAAM,CAAC;IACN,cAAc,EAAE,oBAAoB,CAAC,QAAQ,EAAE;IAC/C,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE;IAC3B,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,oBAAoB,CAAC,KAAK,CAAC;IACnD,YAAY,EAAE,aAAa,CAAC,CAAC,EAAE,oBAAoB,CAAC,YAAY,CAAC;IACjE,UAAU,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC,EAAE,oBAAoB,CAAC,SAAS,CAAC,EAAE;QACxE,WAAW,EAAE,IAAI;KAClB,CAAC,CAAC,QAAQ,EAAE;IACb,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAChC,IAAI,EAAE,aAAa,CAAC,CAAC,EAAE,oBAAoB,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;IAC5D,iBAAiB,EAAE,WAAW,CAAC,eAAe,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;CAClF,CAAC;KACD,MAAM,EAAE,EACX,6DAA6D,EAC7D,oCAAoC,CACrC,CAAC;AAEF,MAAM,CAAC,MAAM,oCAAoC,GAAG,oBAAoB,CACtE,CAAC;KACE,MAAM,CAAC;IACN,cAAc,EAAE,oBAAoB,CAAC,QAAQ,EAAE;IAC/C,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE;IAC3B,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,oBAAoB,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;IAC9D,YAAY,EAAE,aAAa,CAAC,CAAC,EAAE,oBAAoB,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE;IAC5E,UAAU,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC,EAAE,oBAAoB,CAAC,SAAS,CAAC,EAAE;QACxE,WAAW,EAAE,IAAI;KAClB,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACxB,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC3C,IAAI,EAAE,aAAa,CAAC,CAAC,EAAE,oBAAoB,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACvE,iBAAiB,EAAE,WAAW,CAAC,eAAe,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CAC7F,CAAC;KACD,MAAM,EAAE,EACX,mEAAmE,EACnE,0CAA0C,CAC3C,CAAC;AAEF,MAAM,CAAC,MAAM,iCAAiC,GAAG,oBAAoB,CACnE,CAAC;KACE,MAAM,CAAC;IACN,SAAS,EAAE,eAAe,CAAC,QAAQ,EAAE;IACrC,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE;IAC3B,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,sBAAsB,CAAC,KAAK,CAAC;IACrD,IAAI,EAAE,aAAa,CAAC,CAAC,EAAE,sBAAsB,CAAC,IAAI,CAAC;IACnD,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE;IAC/C,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,QAAQ,EAAE;IACtD,WAAW,EAAE,aAAa,CAAC,CAAC,EAAE,sBAAsB,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE;IAC5E,qBAAqB,EAAE,WAAW,CAAC,oBAAoB,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC1F,IAAI,EAAE,aAAa,CAAC,CAAC,EAAE,sBAAsB,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;CAC/D,CAAC;KACD,MAAM,EAAE,EACX,+DAA+D,EAC/D,sCAAsC,CACvC,CAAC;AAEF,MAAM,CAAC,MAAM,sCAAsC,GAAG,oBAAoB,CACxE,CAAC;KACE,MAAM,CAAC;IACN,SAAS,EAAE,eAAe,CAAC,QAAQ,EAAE;IACrC,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE;IAC3B,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,sBAAsB,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;IAChE,IAAI,EAAE,aAAa,CAAC,CAAC,EAAE,sBAAsB,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;IAC9D,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC1D,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACjE,WAAW,EAAE,aAAa,CAAC,CAAC,EAAE,sBAAsB,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACvF,qBAAqB,EAAE,WAAW,CAAC,oBAAoB,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACrG,IAAI,EAAE,aAAa,CAAC,CAAC,EAAE,sBAAsB,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CAC1E,CAAC;KACD,MAAM,EAAE,EACX,qEAAqE,EACrE,4CAA4C,CAC7C,CAAC;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAAG,oBAAoB,CAC7D,CAAC;KACE,MAAM,CAAC;IACN,UAAU,EAAE,gBAAgB,CAAC,QAAQ,EAAE;IACvC,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE;IAC3B,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC;IAC5B,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC;IAClD,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IACnD,SAAS,EAAE,aAAa,EAAE,CAAC,QAAQ,EAAE;IACrC,SAAS,EAAE,aAAa,EAAE,CAAC,QAAQ,EAAE;IACrC,SAAS,EAAE,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE;IAC3C,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAChC,IAAI,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE;IAC9C,QAAQ,EAAE,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE;IAC1C,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE;IACvC,YAAY,EAAE,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE;IAC9C,WAAW,EAAE,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE;IAC7C,WAAW,EAAE,WAAW,CAAC,iCAAiC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE;IACxF,cAAc,EAAE,WAAW,CAAC,YAAY,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC3E,mBAAmB,EAAE,WAAW,CAAC,iBAAiB,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;IACrF,KAAK,EAAE,eAAe,CAAC,aAAa,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE;CACzD,CAAC;KACD,MAAM,EAAE,EACX,wDAAwD,EACxD,+BAA+B,CAChC,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,oBAAoB,CAC5D,uBAAuB;KACpB,IAAI,CAAC;IACJ,mBAAmB,EAAE,IAAI;IACzB,MAAM,EAAE,IAAI;CACb,CAAC;KACD,MAAM,CAAC;IACN,oBAAoB,EAAE,WAAW,CAAC,oBAAoB,EAAE;QACtD,QAAQ,EAAE,EAAE;QACZ,WAAW,EAAE,IAAI;KAClB,CAAC,CAAC,QAAQ,EAAE;CACd,CAAC;KACD,MAAM,EAAE,EACX,wDAAwD,EACxD,+BAA+B,CAChC,CAAC;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAG,oBAAoB,CAC9D,yBAAyB,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAC3D,0DAA0D,EAC1D,iCAAiC,CAClC,CAAC;AAEF,MAAM,CAAC,MAAM,8BAA8B,GAAG,oBAAoB,CAChE,2BAA2B,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAC/D,4DAA4D,EAC5D,mCAAmC,CACpC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,oBAAoB,CACvD,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IAC3B,CAAC;SACE,MAAM,CAAC;QACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;QACvB,GAAG,EAAE,oBAAoB;QACzB,OAAO,EAAE,0BAA0B;KACpC,CAAC;SACD,MAAM,EAAE;IACX,CAAC;SACE,MAAM,CAAC;QACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;QACzB,GAAG,EAAE,oBAAoB;QACzB,OAAO,EAAE,4BAA4B;KACtC,CAAC;SACD,MAAM,EAAE;IACX,CAAC;SACE,MAAM,CAAC;QACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;QAC3B,GAAG,EAAE,oBAAoB;QACzB,OAAO,EAAE,8BAA8B;KACxC,CAAC;SACD,MAAM,EAAE;CACZ,CAAC,EACF,kDAAkD,EAClD,yBAAyB,CAC1B,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,oBAAoB,CACjD,CAAC;KACE,MAAM,CAAC;IACN,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC,SAAS,CAAC;IAC3D,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC;IAC5B,SAAS,EAAE,iBAAiB,EAAE,CAAC,QAAQ,EAAE;IACzC,QAAQ,EAAE,WAAW,CAAC,qBAAqB,EAAE;QAC3C,QAAQ,EAAE,CAAC;QACX,QAAQ,EAAE,EAAE;KACb,CAAC;IACF,WAAW,EAAE,CAAC;SACX,MAAM,CAAC;QACN,OAAO,EAAE,CAAC;aACP,MAAM,CAAC;YACN,OAAO,EAAE,oBAAoB;YAC7B,UAAU,EAAE,iBAAiB,EAAE,CAAC,QAAQ,EAAE;YAC1C,IAAI,EAAE,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE;SACxC,CAAC;aACD,MAAM,EAAE;aACR,QAAQ,EAAE;KACd,CAAC;SACD,MAAM,EAAE;SACR,QAAQ,EAAE;CACd,CAAC;KACD,MAAM,EAAE;KACR,WAAW,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IAC9B,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACxD,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC;IAE/E,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,QAAQ,CAAC;YACf,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,OAAO,EAAE,gDAAgD,CAAC,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;YAClG,IAAI,EAAE,CAAC,UAAU,CAAC;SACnB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAU,CAAC,CAAC,CAAC;IAC7F,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QACvC,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC3B,KAAK,MAAM,CAAC,aAAa,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;gBACjG,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBAE/C,IAAI,CAAC,YAAY,EAAE,CAAC;oBAClB,OAAO,CAAC,QAAQ,CAAC;wBACf,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;wBAC3B,OAAO,EAAE,iDAAiD,WAAW,KAAK;wBAC1E,IAAI,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,sBAAsB,EAAE,aAAa,CAAC;qBAC5E,CAAC,CAAC;oBACH,SAAS;gBACX,CAAC;gBAED,IAAI,YAAY,KAAK,UAAU,EAAE,CAAC;oBAChC,OAAO,CAAC,QAAQ,CAAC;wBACf,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;wBAC3B,OAAO,EAAE,+DAA+D,WAAW,WAAW,YAAY,GAAG;wBAC7G,IAAI,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,sBAAsB,EAAE,aAAa,CAAC;qBAC5E,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC;IAEvD,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAE7C,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,CAAC,QAAQ,CAAC;gBACf,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;gBAC3B,OAAO,EAAE,qEAAqE,UAAU,KAAK;gBAC7F,IAAI,EAAE,CAAC,aAAa,EAAE,SAAS,EAAE,SAAS,CAAC;aAC5C,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,WAAW,KAAK,MAAM,EAAE,CAAC;YAClC,OAAO,CAAC,QAAQ,CAAC;gBACf,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;gBAC3B,OAAO,EAAE,sEAAsE,UAAU,WAAW,WAAW,GAAG;gBAClH,IAAI,EAAE,CAAC,aAAa,EAAE,SAAS,EAAE,SAAS,CAAC;aAC5C,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC,CAAC,EACJ,2CAA2C,EAC3C,kBAAkB,CACnB,CAAC"}
package/dist/time.d.ts ADDED
@@ -0,0 +1,25 @@
1
+ export interface TimeZoneDateTimeParts {
2
+ year: number;
3
+ month: number;
4
+ day: number;
5
+ hour: number;
6
+ minute: number;
7
+ second: number;
8
+ dayOfWeek: number;
9
+ dayKey: string;
10
+ }
11
+ export declare function isStrictIsoDate(value: string): boolean;
12
+ export declare function isStrictIsoDateTime(value: string): boolean;
13
+ export declare function normalizeStrictIsoTimestamp(value: string | number | Date): string | null;
14
+ export declare function extractIsoDatePrefix(value: string | null | undefined): string | null;
15
+ export declare function normalizeIanaTimeZone(value: string | null | undefined): string | null;
16
+ export declare function isValidIanaTimeZone(value: string | null | undefined): boolean;
17
+ export declare function resolveSystemTimeZone(fallback?: string): string;
18
+ export declare function parseDailyTime(value: string | null | undefined): {
19
+ hour: number;
20
+ minute: number;
21
+ } | null;
22
+ export declare function addDaysToIsoDate(value: string, days: number): string;
23
+ export declare function formatTimeZoneDateTimeParts(value: string | number | Date, timeZone: string): TimeZoneDateTimeParts;
24
+ export declare function toLocalDayKey(value: string | number | Date, timeZone: string): string;
25
+ //# sourceMappingURL=time.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"time.d.ts","sourceRoot":"","sources":["../src/time.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAQtD;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAoC1D;AAED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAC5B,MAAM,GAAG,IAAI,CA2Bf;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAOpF;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC/B,MAAM,GAAG,IAAI,CAmBf;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAE7E;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,SAAQ,GAAG,MAAM,CAM9D;AAED,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC/B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAczC;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAQpE;AAED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,EAC7B,QAAQ,EAAE,MAAM,GACf,qBAAqB,CAqDvB;AAED,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,EAC7B,QAAQ,EAAE,MAAM,GACf,MAAM,CAMR"}