@disclosureos/records 1.1.0 → 2.0.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -0
- package/README.md +9 -0
- package/dist/experimental/v2/index.d.ts +4419 -0
- package/dist/experimental/v2/index.js +645 -0
- package/dist/experimental/v2/index.js.map +1 -0
- package/package.json +16 -4
- package/schema/experimental/claim-history-0.1.0.schema.json +6545 -0
- package/schema/experimental/observation-0.1.0.schema.json +6040 -0
- package/schema/experimental/v2-primitives-0.2.0.schema.json +1761 -0
- package/schema/experimental/v2-primitives.schema.json +828 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/experimental/v2/primitives.ts","../../../src/experimental/v2/observation-schema.ts","../../../src/experimental/v2/observation.ts","../../../src/experimental/v2/claim-history-schema.ts","../../../src/experimental/v2/claim-history.ts","../../../src/experimental/v2/utc.ts"],"names":["ref","text","z","valueRef","sourceRefs","envelope","pointer","product","id"],"mappings":"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","file":"index.js","sourcesContent":["/** Experimental RFC 0002/0003 building blocks. Not the v2 Observation contract. */\nimport { z } from 'zod';\n\nconst text = z.string().min(1).regex(/\\S/, 'must contain non-whitespace text');\nconst identifier = z.string().regex(/^[A-Za-z0-9][A-Za-z0-9._-]*$/);\nconst sourceRef = z.string().regex(/^(source|product):[^\\s:]+$/);\nconst valueRef = z.string().regex(/^(source|product|assertion):[^\\s:]+$/);\nconst sourceRefs = z.array(valueRef).min(1);\n\n// Match the JSON Schema date-time contract: seconds and a complete UTC offset\n// are required; fractional digits remain optional and are preserved verbatim.\nexport const instantString = z.iso.datetime({ offset: true }).regex(/^(?!0000)/)\n .regex(/T[0-9]{2}:[0-9]{2}:[0-9]{2}/)\n .regex(/(?:Z|[+-][0-9]{2}:[0-9]{2})(?![\\s\\S])/);\n\nexport const EventTimePointSchema = z.discriminatedUnion('kind', [\n z.strictObject({ kind: z.literal('year'), value: z.string().regex(/^(?!0000)[0-9]{4}$/) }),\n z.strictObject({ kind: z.literal('month'), value: z.string().regex(/^(?!0000)[0-9]{4}-(0[1-9]|1[0-2])$/) }),\n z.strictObject({ kind: z.literal('date'), value: z.iso.date().regex(/^(?!0000)/) }),\n z.strictObject({ kind: z.literal('instant'), value: instantString, timeScale: z.literal('UTC') }),\n]);\n\nexport const EventTimeIntervalSchema = z.strictObject({\n kind: z.literal('interval'), start: EventTimePointSchema, end: EventTimePointSchema,\n});\nexport const EventTimeValueSchema = z.union([EventTimePointSchema, EventTimeIntervalSchema]);\n\nconst assertionRef = z.string().regex(/^assertion:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])/);\nexport const ValueSelectionSchema = z.strictObject({\n assertionRef,\n consideredAssertionRefs: z.array(assertionRef).min(1),\n methodRef: z.string().regex(/^method:[^\\s:]+(?![\\s\\S])/),\n methodVersion: text,\n evaluatedBy: text,\n evaluatedAt: instantString,\n rationale: text,\n});\n\nexport const PositionValueSchema = z.strictObject({\n latitude: z.number().min(-90).max(90),\n longitude: z.number().min(-180).max(180),\n datum: z.literal('WGS84'),\n});\n\nfunction envelope<T extends z.ZodType>(value: T) {\n return z.discriminatedUnion('state', [\n z.strictObject({ state: z.literal('known'), value, sourceRefs, selection: ValueSelectionSchema.optional() }),\n z.strictObject({ state: z.literal('approximate'), value, sourceRefs, precision: text, selection: ValueSelectionSchema.optional() }),\n z.strictObject({ state: z.literal('unknown'), reason: z.enum(['not_recorded', 'not_collected', 'unavailable']) }),\n z.strictObject({ state: z.literal('redacted'), reason: text }),\n ]);\n}\n\nexport const EventTimeSchema = envelope(EventTimeValueSchema);\nexport const PositionSchema = envelope(PositionValueSchema);\n\n// A pointer is empty or begins with '/', followed by characters or valid tilde escapes.\n// Slash is ordinary content after the first separator: do not repeat token groups.\n// The final lookahead enforces absolute end, including a trailing newline.\nexport const SourceProvenanceSchema = z.strictObject({\n sourceRef,\n sourceDigest: z.strictObject({ algorithm: z.literal('sha256'), value: z.string().regex(/^[a-f0-9]{64}$/) }).optional(),\n locator: z.discriminatedUnion('kind', [\n z.strictObject({ kind: z.literal('page'), page: z.number().int().min(1) }),\n z.strictObject({ kind: z.literal('time_range'), startSeconds: z.number().min(0), endSeconds: z.number().min(0) }),\n z.strictObject({ kind: z.literal('json_pointer'), pointer: z.string().regex(/^(?:\\/(?:[^~]|~[01])*)?(?![\\s\\S])/) }),\n ]).optional(),\n attributedTo: text.optional(),\n extractedBy: text.optional(),\n});\n\nexport const ValueAssertionSchema = z.discriminatedUnion('field', [\n z.strictObject({ id: identifier, field: z.literal('eventTime'), value: EventTimeValueSchema, provenance: SourceProvenanceSchema }),\n z.strictObject({ id: identifier, field: z.literal('position'), value: PositionValueSchema, provenance: SourceProvenanceSchema }),\n]);\n\n/** Testable container for value primitives, not an Observation or public projection API. */\nexport const PrimitiveRecordSchema = z.strictObject({\n id: identifier,\n eventTime: EventTimeSchema,\n position: PositionSchema,\n assertions: z.array(ValueAssertionSchema).optional(),\n});\n\nexport type EventTimeValue = z.infer<typeof EventTimeValueSchema>;\nexport type EventTimePoint = z.infer<typeof EventTimePointSchema>;\nexport type EventTimeInterval = z.infer<typeof EventTimeIntervalSchema>;\nexport type ValueSelection = z.infer<typeof ValueSelectionSchema>;\nexport type PositionValue = z.infer<typeof PositionValueSchema>;\nexport type EventTime = z.infer<typeof EventTimeSchema>;\nexport type Position = z.infer<typeof PositionSchema>;\nexport type SourceProvenance = z.infer<typeof SourceProvenanceSchema>;\nexport type ValueAssertion = z.infer<typeof ValueAssertionSchema>;\nexport type PrimitiveRecord = z.infer<typeof PrimitiveRecordSchema>;\n\nexport interface PrimitiveIssue {\n code: 'STRUCT.VALUE' | 'REF.UNIQUE_ID' | 'REF.FIELD_MISMATCH' | 'REF.LOCAL_RESOLUTION' | 'TIME.INTERVAL'\n | 'TIME.PRECISION_MISMATCH' | 'TIME.INSTANT' | 'SELECTION.VALUE_MISMATCH' | 'SELECTION.INPUTS' | 'SELECTION.SOURCE_REF';\n stage: 'structural' | 'semantic';\n pointer: string;\n message: string;\n}\nexport type PrimitiveParseResult = {\n success: true; data: PrimitiveRecord; issues: PrimitiveIssue[]; uncheckedRefs: string[];\n} | {\n success: false; issues: PrimitiveIssue[]; uncheckedRefs: string[];\n};\n\nconst pointer = (path: readonly PropertyKey[]) => path.map(p => `/${String(p).replace(/~/g, '~0').replace(/\\//g, '~1')}`).join('');\n\n// Date.parse is used only for whole seconds and UTC-offset normalization.\n// Fractional digits remain strings, so sub-millisecond order is never rounded away.\nfunction instantParts(value: string): { milliseconds: number; fraction: string } {\n const dot = value.indexOf('.', 10);\n if (dot === -1) return { milliseconds: Date.parse(value), fraction: '' };\n let end = dot + 1;\n while (end < value.length && value[end]! >= '0' && value[end]! <= '9') end++;\n return { milliseconds: Date.parse(value.slice(0, dot) + value.slice(end)), fraction: value.slice(dot + 1, end) };\n}\n\nexport function comparePoints(start: EventTimePoint, end: EventTimePoint): number {\n if (start.kind !== 'instant' || end.kind !== 'instant') return start.value < end.value ? -1 : start.value > end.value ? 1 : 0;\n const a = instantParts(start.value);\n const b = instantParts(end.value);\n if (!Number.isFinite(a.milliseconds) || !Number.isFinite(b.milliseconds)) return NaN;\n if (a.milliseconds !== b.milliseconds) return a.milliseconds < b.milliseconds ? -1 : 1;\n const digits = Math.max(a.fraction.length, b.fraction.length);\n const af = a.fraction.padEnd(digits, '0');\n const bf = b.fraction.padEnd(digits, '0');\n return af < bf ? -1 : af > bf ? 1 : 0;\n}\n\nexport function checkTime(value: EventTimeValue, path: string, issues: PrimitiveIssue[]): void {\n if (value.kind === 'instant' && !Number.isFinite(instantParts(value.value).milliseconds)) {\n issues.push({ code: 'TIME.INSTANT', stage: 'semantic', pointer: path, message: 'Instant cannot be resolved with its declared UTC offset.' });\n }\n if (value.kind !== 'interval') return;\n checkTime(value.start, `${path}/start`, issues);\n checkTime(value.end, `${path}/end`, issues);\n if (value.start.kind !== value.end.kind) {\n issues.push({ code: 'TIME.PRECISION_MISMATCH', stage: 'semantic', pointer: path, message: 'Interval endpoints must use the same kind of calendar precision or both be instants.' });\n } else if (comparePoints(value.start, value.end) > 0) {\n issues.push({ code: 'TIME.INTERVAL', stage: 'semantic', pointer: `${path}/end`, message: 'Interval end precedes its start.' });\n }\n}\n\n/** Structural and local-reference checks only. External references/digests are never fetched or verified. */\nexport function parsePrimitiveRecord(input: unknown): PrimitiveParseResult {\n const result = PrimitiveRecordSchema.safeParse(input);\n if (!result.success) return { success: false, uncheckedRefs: [], issues: result.error.issues.map(issue => ({\n code: 'STRUCT.VALUE', stage: 'structural', pointer: pointer(issue.path), message: issue.message,\n })) };\n const data = result.data;\n const issues: PrimitiveIssue[] = [];\n const unchecked = new Set<string>();\n const assertions = new Map<string, ValueAssertion>();\n for (const [index, assertion] of (data.assertions ?? []).entries()) {\n if (assertions.has(assertion.id)) issues.push({ code: 'REF.UNIQUE_ID', stage: 'semantic', pointer: `/assertions/${index}/id`, message: 'Assertion ID is duplicated.' });\n else assertions.set(assertion.id, assertion);\n unchecked.add(assertion.provenance.sourceRef);\n if (assertion.field === 'eventTime') checkTime(assertion.value, `/assertions/${index}/value`, issues);\n const locator = assertion.provenance.locator;\n if (locator?.kind === 'time_range' && locator.endSeconds < locator.startSeconds) issues.push({ code: 'TIME.INTERVAL', stage: 'semantic', pointer: `/assertions/${index}/provenance/locator/endSeconds`, message: 'Locator end precedes its start.' });\n }\n for (const field of ['eventTime', 'position'] as const) {\n const value = data[field];\n if (value.state !== 'known' && value.state !== 'approximate') continue;\n if (field === 'eventTime' && (data.eventTime.state === 'known' || data.eventTime.state === 'approximate')) checkTime(data.eventTime.value, '/eventTime/value', issues);\n for (const [index, ref] of value.sourceRefs.entries()) {\n if (!ref.startsWith('assertion:')) { unchecked.add(ref); continue; }\n const target = assertions.get(ref.slice('assertion:'.length));\n if (!target) issues.push({ code: 'REF.LOCAL_RESOLUTION', stage: 'semantic', pointer: `/${field}/sourceRefs/${index}`, message: 'Local assertion does not exist.' });\n else if (target.field !== field) issues.push({ code: 'REF.FIELD_MISMATCH', stage: 'semantic', pointer: `/${field}/sourceRefs/${index}`, message: 'Assertion concerns a different field.' });\n }\n const selection = value.selection;\n if (!selection) continue;\n const path = `/${field}/selection`;\n unchecked.add(selection.methodRef);\n if (!Number.isFinite(instantParts(selection.evaluatedAt).milliseconds)) issues.push({ code: 'TIME.INSTANT', stage: 'semantic', pointer: `${path}/evaluatedAt`, message: 'Selection timestamp cannot be resolved with its declared UTC offset.' });\n if (!selection.consideredAssertionRefs.includes(selection.assertionRef)) issues.push({ code: 'SELECTION.INPUTS', stage: 'semantic', pointer: `${path}/assertionRef`, message: 'Selected assertion must be among the considered inputs.' });\n if (!value.sourceRefs.includes(selection.assertionRef)) issues.push({ code: 'SELECTION.SOURCE_REF', stage: 'semantic', pointer: `/${field}/sourceRefs`, message: 'Field provenance must cite the selected assertion.' });\n const refs = new Set<string>();\n for (const [index, ref] of selection.consideredAssertionRefs.entries()) {\n if (refs.has(ref)) issues.push({ code: 'REF.UNIQUE_ID', stage: 'semantic', pointer: `${path}/consideredAssertionRefs/${index}`, message: 'Considered assertion is repeated.' });\n refs.add(ref);\n const target = assertions.get(ref.slice('assertion:'.length));\n if (!target) issues.push({ code: 'REF.LOCAL_RESOLUTION', stage: 'semantic', pointer: `${path}/consideredAssertionRefs/${index}`, message: 'Considered assertion does not exist.' });\n else if (target.field !== field) issues.push({ code: 'REF.FIELD_MISMATCH', stage: 'semantic', pointer: `${path}/consideredAssertionRefs/${index}`, message: 'Considered assertion concerns a different field.' });\n }\n const selected = assertions.get(selection.assertionRef.slice('assertion:'.length));\n if (!selected) issues.push({ code: 'REF.LOCAL_RESOLUTION', stage: 'semantic', pointer: `${path}/assertionRef`, message: 'Selected assertion does not exist.' });\n else if (selected.field !== field) issues.push({ code: 'REF.FIELD_MISMATCH', stage: 'semantic', pointer: `${path}/assertionRef`, message: 'Selected assertion concerns a different field.' });\n // Both values have passed the same strict schema, which fixes their key order.\n // Selection copies a source value verbatim; it is not a derivation or normalization.\n else if (JSON.stringify(selected.value) !== JSON.stringify(value.value)) issues.push({ code: 'SELECTION.VALUE_MISMATCH', stage: 'semantic', pointer: `/${field}/value`, message: 'Selected value must equal the cited source value; derived values need a separate contract.' });\n }\n return issues.length ? { success: false, issues, uncheckedRefs: [...unchecked] }\n : { success: true, data, issues, uncheckedRefs: [...unchecked] };\n}\n\nexport const PRIMITIVES_SCHEMA_ID = 'urn:disclosureos:experimental:records-v2-primitives:0.2.0';\n/** Plain JSON; Zod instances remain inside records. Semantic checks are separate. */\nexport function primitivesJsonSchema(): Record<string, unknown> {\n return { ...z.toJSONSchema(PrimitiveRecordSchema, { target: 'draft-2020-12' }), $id: PRIMITIVES_SCHEMA_ID };\n}\n","import { z } from 'zod';\nimport { EventTimeValueSchema, PositionValueSchema, SourceProvenanceSchema, ValueSelectionSchema, instantString } from './primitives';\n\nconst text = z.string().min(1).regex(/\\S/, 'must contain non-whitespace text');\nconst id = z.string().regex(/^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])/);\nconst ref = (kinds: readonly string[]) => z.string().regex(new RegExp(`^(?:${kinds.join('|')}):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\\\s\\\\S])`));\nconst sourceProductRef = ref(['source', 'product']);\nconst valueRef = ref(['source', 'product', 'assertion']);\nconst sourceRefs = z.array(valueRef).min(1);\nconst access = z.enum(['public', 'restricted', 'withheld', 'unknown']);\nconst digest = z.strictObject({ algorithm: z.literal('sha256'), value: z.string().regex(/^[a-f0-9]{64}(?![\\s\\S])/) });\n\nconst quantified = { magnitude: z.number().min(0), unit: text, sourceRefs: z.array(sourceProductRef).min(1) };\nexport const QuantitativeUncertaintySchema = z.discriminatedUnion('kind', [\n z.strictObject({ kind: z.literal('unknown'), reason: z.enum(['not_reported', 'not_characterized', 'unavailable']) }),\n z.strictObject({ kind: z.literal('standard'), ...quantified }),\n z.strictObject({ kind: z.literal('expanded'), ...quantified, coverageFactor: z.number().positive(), coverageProbability: z.number().gt(0).lte(1).optional() }),\n z.strictObject({ kind: z.literal('bound'), ...quantified }),\n]);\nexport const MeasuredQuantitySchema = z.strictObject({\n value: z.number(), unit: text, uncertainty: QuantitativeUncertaintySchema,\n});\n\nconst definition = z.discriminatedUnion('state', [\n z.strictObject({ state: z.literal('identified'), authority: text, code: text, revision: text.optional() }),\n z.strictObject({ state: z.literal('described'), description: text }),\n z.strictObject({ state: z.literal('unknown'), reason: text }),\n]);\nexport const ReferenceFrameSchema = z.discriminatedUnion('kind', [\n z.strictObject({ id, kind: z.literal('geodetic'), definition, angularUnit: z.literal('deg'), vertical: z.strictObject({ definition, unit: text }).optional() }),\n z.strictObject({ id, kind: z.literal('cartesian'), definition, unit: text }),\n]);\nexport const FramedPositionSchema = z.discriminatedUnion('kind', [\n PositionValueSchema.omit({ datum: true }).extend({\n kind: z.literal('geodetic'), frameRef: ref(['frame']), altitude: MeasuredQuantitySchema.optional(),\n uncertainty: z.strictObject({ latitude: QuantitativeUncertaintySchema, longitude: QuantitativeUncertaintySchema }).optional(),\n }),\n z.strictObject({ kind: z.literal('cartesian'), frameRef: ref(['frame']), x: MeasuredQuantitySchema, y: MeasuredQuantitySchema, z: MeasuredQuantitySchema }),\n]);\n\nfunction envelope<T extends z.ZodType>(value: T) {\n return z.discriminatedUnion('state', [\n z.strictObject({ state: z.literal('known'), value, sourceRefs, selection: ValueSelectionSchema.optional() }),\n z.strictObject({ state: z.literal('approximate'), value, sourceRefs, selection: ValueSelectionSchema.optional(), precision: text }),\n z.strictObject({ state: z.literal('unknown'), reason: z.enum(['not_recorded', 'not_collected', 'unavailable']) }),\n z.strictObject({ state: z.literal('redacted'), reason: text }),\n ]);\n}\nconst timeEnvelope = envelope(EventTimeValueSchema);\n// Time uncertainty is an observation about timing, distinct from calendar granularity.\nexport const ObservationTimeSchema = z.discriminatedUnion('state', [\n timeEnvelope.options[0].extend({ uncertainty: QuantitativeUncertaintySchema.optional() }),\n timeEnvelope.options[1].extend({ uncertainty: QuantitativeUncertaintySchema.optional() }),\n timeEnvelope.options[2],\n timeEnvelope.options[3],\n]);\nexport const ObservationPositionSchema = envelope(FramedPositionSchema);\n\nexport const ObservationSourceSchema = z.strictObject({\n id, kind: z.enum(['document', 'testimony', 'instrument_data', 'other', 'unknown']),\n access, title: text.optional(), uri: z.url().optional(), digest: digest.optional(),\n});\nconst product = { id, format: text, access, uri: z.url().optional(), digest: digest.optional() };\nexport const ObservationProductSchema = z.discriminatedUnion('kind', [\n z.strictObject({ ...product, kind: z.literal('raw'), sourceRefs: z.array(ref(['source'])).min(1) }),\n z.strictObject({ ...product, kind: z.literal('derived'), generatedBy: ref(['process']) }),\n]);\nexport const ObservationMethodSchema = z.strictObject({ id, version: text, description: text.optional(), uri: z.url().optional() });\nconst provenance = SourceProvenanceSchema.extend({ sourceRef: sourceProductRef, sourceDigest: digest.optional() });\nexport const ObservationAssertionSchema = z.discriminatedUnion('field', [\n z.strictObject({ id, field: z.literal('eventTime'), value: EventTimeValueSchema, provenance }),\n z.strictObject({ id, field: z.literal('position'), value: FramedPositionSchema, provenance }),\n z.strictObject({ id, field: z.literal('measurement'), measurementId: id, value: MeasuredQuantitySchema, provenance }),\n]);\nexport const ObservationMeasurementSchema = z.strictObject({\n id, quantity: text, value: MeasuredQuantitySchema, sourceRefs,\n frameRef: ref(['frame']).optional(), selection: ValueSelectionSchema.optional(),\n});\nexport const ProcessingActivitySchema = z.strictObject({\n id, methodRef: ref(['method']), methodVersion: text, performedBy: text, performedAt: instantString,\n inputRefs: z.array(valueRef).min(1), outputRefs: z.array(ref(['product'])).min(1),\n});\n\nexport const EXPERIMENTAL_OBSERVATION_SCHEMA_ID = 'urn:disclosureos:experimental:observation:0.1.0';\nexport const ExperimentalObservationSchema = z.strictObject({\n kind: z.literal('observation'), schemaVersion: z.literal('0.1.0'), id,\n status: z.enum(['draft', 'published', 'withdrawn']), createdAt: instantString, updatedAt: instantString,\n summary: text.optional(), eventTime: ObservationTimeSchema, position: ObservationPositionSchema,\n sources: z.array(ObservationSourceSchema), products: z.array(ObservationProductSchema), methods: z.array(ObservationMethodSchema),\n frames: z.array(ReferenceFrameSchema), assertions: z.array(ObservationAssertionSchema),\n measurements: z.array(ObservationMeasurementSchema), processing: z.array(ProcessingActivitySchema),\n extensions: z.record(z.string().regex(/^[a-z][a-z0-9_-]*(?:\\.[a-z0-9_-]+)+(?![\\s\\S])/), z.json()).optional(),\n});\n\nexport type QuantitativeUncertainty = z.infer<typeof QuantitativeUncertaintySchema>;\nexport type MeasuredQuantity = z.infer<typeof MeasuredQuantitySchema>;\nexport type ReferenceFrame = z.infer<typeof ReferenceFrameSchema>;\nexport type FramedPosition = z.infer<typeof FramedPositionSchema>;\nexport type ObservationAssertion = z.infer<typeof ObservationAssertionSchema>;\nexport type ProcessingActivity = z.infer<typeof ProcessingActivitySchema>;\nexport type ExperimentalObservation = z.infer<typeof ExperimentalObservationSchema>;\n\nexport function experimentalObservationJsonSchema(): Record<string, unknown> {\n return { ...z.toJSONSchema(ExperimentalObservationSchema, { target: 'draft-2020-12' }), $id: EXPERIMENTAL_OBSERVATION_SCHEMA_ID };\n}\n","import { ExperimentalObservationSchema } from './observation-schema';\nimport type { ExperimentalObservation, FramedPosition, MeasuredQuantity, QuantitativeUncertainty } from './observation-schema';\nimport { checkTime, comparePoints } from './primitives';\nimport type { EventTimeValue, PrimitiveIssue, ValueSelection } from './primitives';\n\nexport type ObservationIssueCode = PrimitiveIssue['code'] | 'METHOD.VERSION_MISMATCH' | 'UNIT.MISMATCH'\n | 'FRAME.KIND_MISMATCH' | 'FRAME.VERTICAL_REFERENCE' | 'SELECTION.REQUIRED' | 'TIME.RECORD_ORDER'\n | 'PROCESS.OUTPUT_MISMATCH' | 'SOURCE.DIGEST_MISMATCH' | 'PROCESS.CYCLE';\n\nexport interface ObservationIssue {\n code: ObservationIssueCode;\n stage: 'structural' | 'semantic';\n severity: 'error';\n pointer: string;\n message: string;\n}\nexport interface ObservationChecks {\n structural: 'passed' | 'failed';\n semantic: 'passed' | 'failed' | 'not_checked';\n profile: 'not_checked';\n external: 'not_checked';\n}\nexport type ObservationParseResult = {\n success: true; data: ExperimentalObservation; issues: ObservationIssue[]; checks: ObservationChecks; uncheckedRefs: string[];\n} | {\n success: false; issues: ObservationIssue[]; checks: ObservationChecks; uncheckedRefs: string[];\n};\n\nconst pointer = (path: readonly PropertyKey[]) => path.map(p => `/${String(p).replace(/~/g, '~0').replace(/\\//g, '~1')}`).join('');\nconst key = (ref: string) => ref.slice(ref.indexOf(':') + 1);\n\n/** Validates declared metadata and local lineage. Never fetches URLs or certifies profiles. */\nexport function parseExperimentalObservation(input: unknown): ObservationParseResult {\n const parsed = ExperimentalObservationSchema.safeParse(input);\n if (!parsed.success) return {\n success: false, checks: { structural: 'failed', semantic: 'not_checked', profile: 'not_checked', external: 'not_checked' }, uncheckedRefs: [],\n issues: parsed.error.issues.map(issue => ({ code: 'STRUCT.VALUE', stage: 'structural', severity: 'error', pointer: pointer(issue.path), message: issue.message })),\n };\n const data = parsed.data;\n const issues: ObservationIssue[] = [];\n const graph = new Map<string, Set<string>>();\n const problem = (code: ObservationIssueCode, path: string, message: string) => issues.push({ code, stage: 'semantic', severity: 'error', pointer: path, message });\n function index<T extends { id: string }>(items: T[], prefix: string, collection: string): Map<string, T> {\n const result = new Map<string, T>();\n for (const [i, item] of items.entries()) {\n if (result.has(item.id)) problem('REF.UNIQUE_ID', `/${collection}/${i}/id`, `Duplicate ${prefix} ID.`);\n else { result.set(item.id, item); graph.set(`${prefix}:${item.id}`, new Set()); }\n }\n return result;\n }\n const sources = index(data.sources, 'source', 'sources');\n const products = index(data.products, 'product', 'products');\n const methods = index(data.methods, 'method', 'methods');\n const frames = index(data.frames, 'frame', 'frames');\n const assertions = index(data.assertions, 'assertion', 'assertions');\n index(data.measurements, 'measurement', 'measurements');\n const processes = index(data.processing, 'process', 'processing');\n const processOutputs = new Map(data.processing.map(process => [process.id, new Set(process.outputRefs)]));\n\n function resolve(ref: string, path: string, owner?: string): boolean {\n if (!graph.has(ref)) { problem('REF.LOCAL_RESOLUTION', path, `Undeclared local reference: ${ref}`); return false; }\n if (owner) graph.get(owner)?.add(ref);\n return true;\n }\n function references(refs: string[], path: string, owner?: string): void {\n const seen = new Set<string>();\n for (const [i, ref] of refs.entries()) {\n if (seen.has(ref)) problem('REF.UNIQUE_ID', `${path}/${i}`, 'Reference is repeated.');\n seen.add(ref);\n resolve(ref, `${path}/${i}`, owner);\n }\n }\n function method(ref: string, version: string, path: string, owner?: string): void {\n if (resolve(ref, `${path}/methodRef`, owner) && methods.get(key(ref))?.version !== version) {\n problem('METHOD.VERSION_MISMATCH', `${path}/methodVersion`, 'Method version differs from the local declaration.');\n }\n }\n function time(value: EventTimeValue, path: string): void {\n const local: PrimitiveIssue[] = [];\n checkTime(value, path, local);\n for (const issue of local) problem(issue.code, issue.pointer, issue.message);\n }\n function instant(value: string, path: string): void { time({ kind: 'instant', value, timeScale: 'UTC' }, path); }\n function uncertainty(value: QuantitativeUncertainty, expectedUnit: string | readonly string[], path: string, owner?: string): void {\n if (value.kind === 'unknown') return;\n const units = typeof expectedUnit === 'string' ? [expectedUnit] : expectedUnit;\n if (!units.includes(value.unit)) problem('UNIT.MISMATCH', `${path}/unit`, 'Uncertainty unit does not match the declared quantity; no conversion is inferred.');\n references(value.sourceRefs, `${path}/sourceRefs`, owner);\n }\n function quantity(value: MeasuredQuantity, path: string, owner?: string, expectedUnit?: string): void {\n if (expectedUnit !== undefined && value.unit !== expectedUnit) problem('UNIT.MISMATCH', `${path}/unit`, 'Quantity unit differs from its reference frame.');\n uncertainty(value.uncertainty, value.unit, `${path}/uncertainty`, owner);\n }\n function position(value: FramedPosition, path: string, owner?: string): void {\n resolve(value.frameRef, `${path}/frameRef`, owner);\n const frame = frames.get(key(value.frameRef));\n if (frame && frame.kind !== value.kind) problem('FRAME.KIND_MISMATCH', `${path}/frameRef`, 'Position and reference frame use different coordinate systems.');\n if (value.kind === 'geodetic') {\n if (value.uncertainty) {\n uncertainty(value.uncertainty.latitude, 'deg', `${path}/uncertainty/latitude`, owner);\n uncertainty(value.uncertainty.longitude, 'deg', `${path}/uncertainty/longitude`, owner);\n }\n if (value.altitude) {\n if (frame?.kind === 'geodetic' && !frame.vertical) problem('FRAME.VERTICAL_REFERENCE', `${path}/altitude`, 'Altitude requires an explicit vertical reference and unit.');\n quantity(value.altitude, `${path}/altitude`, owner, frame?.kind === 'geodetic' ? frame.vertical?.unit : undefined);\n }\n } else {\n for (const axis of ['x', 'y', 'z'] as const) quantity(value[axis], `${path}/${axis}`, owner, frame?.kind === 'cartesian' ? frame.unit : undefined);\n }\n }\n function matchesField(ref: string, field: 'eventTime' | 'position' | 'measurement', measurementId?: string): boolean {\n const assertion = assertions.get(key(ref));\n return assertion?.field === field && (assertion.field !== 'measurement' || assertion.measurementId === measurementId);\n }\n function fieldReferences(refs: string[], field: 'eventTime' | 'position' | 'measurement', path: string, owner?: string, measurementId?: string): void {\n references(refs, path, owner);\n for (const [i, ref] of refs.entries()) {\n if (ref.startsWith('assertion:') && assertions.has(key(ref)) && !matchesField(ref, field, measurementId)) problem('REF.FIELD_MISMATCH', `${path}/${i}`, 'Assertion concerns a different field or measurement.');\n }\n }\n function selection(value: ValueSelection | undefined, selectedValue: unknown, refs: string[], field: 'eventTime' | 'position' | 'measurement', path: string, owner?: string, measurementId?: string): void {\n if (!value) {\n if (refs.some(ref => ref.startsWith('assertion:'))) problem('SELECTION.REQUIRED', `${path}/selection`, 'A curated value citing local assertions requires an explicit selection record.');\n return;\n }\n const selectionPath = `${path}/selection`;\n instant(value.evaluatedAt, `${selectionPath}/evaluatedAt`);\n method(value.methodRef, value.methodVersion, selectionPath, owner);\n fieldReferences(value.consideredAssertionRefs, field, `${selectionPath}/consideredAssertionRefs`, owner, measurementId);\n resolve(value.assertionRef, `${selectionPath}/assertionRef`, owner);\n if (!value.consideredAssertionRefs.includes(value.assertionRef)) problem('SELECTION.INPUTS', `${selectionPath}/assertionRef`, 'Selected assertion must be among considered inputs.');\n if (!refs.includes(value.assertionRef)) problem('SELECTION.SOURCE_REF', `${path}/sourceRefs`, 'Field must cite the selected assertion.');\n const target = assertions.get(key(value.assertionRef));\n if (target && !matchesField(value.assertionRef, field, measurementId)) problem('REF.FIELD_MISMATCH', `${selectionPath}/assertionRef`, 'Selected assertion concerns a different field or measurement.');\n else if (target && JSON.stringify(target.value) !== JSON.stringify(selectedValue)) problem('SELECTION.VALUE_MISMATCH', `${path}/value`, 'Selection must copy the cited assertion value exactly; processing is declared separately.');\n }\n\n instant(data.createdAt, '/createdAt');\n instant(data.updatedAt, '/updatedAt');\n if (comparePoints({ kind: 'instant', value: data.createdAt, timeScale: 'UTC' }, { kind: 'instant', value: data.updatedAt, timeScale: 'UTC' }) > 0) problem('TIME.RECORD_ORDER', '/updatedAt', 'Record update precedes record creation.');\n\n for (const [i, product] of data.products.entries()) {\n const owner = `product:${product.id}`;\n if (product.kind === 'raw') references(product.sourceRefs, `/products/${i}/sourceRefs`, owner);\n else {\n resolve(product.generatedBy, `/products/${i}/generatedBy`, owner);\n const producer = processes.get(key(product.generatedBy));\n if (producer && !processOutputs.get(producer.id)?.has(owner)) problem('PROCESS.OUTPUT_MISMATCH', `/products/${i}/generatedBy`, 'Producer does not list this derived product as an output.');\n }\n }\n for (const [i, assertion] of data.assertions.entries()) {\n const path = `/assertions/${i}`;\n const owner = `assertion:${assertion.id}`;\n resolve(assertion.provenance.sourceRef, `${path}/provenance/sourceRef`, owner);\n const origin = assertion.provenance.sourceRef.startsWith('source:') ? sources.get(key(assertion.provenance.sourceRef)) : products.get(key(assertion.provenance.sourceRef));\n if (assertion.provenance.sourceDigest && origin?.digest && assertion.provenance.sourceDigest.value !== origin.digest.value) problem('SOURCE.DIGEST_MISMATCH', `${path}/provenance/sourceDigest`, 'Declared digest differs from the inventory declaration; neither has been verified against bytes.');\n const locator = assertion.provenance.locator;\n if (locator?.kind === 'time_range' && locator.endSeconds < locator.startSeconds) problem('TIME.INTERVAL', `${path}/provenance/locator/endSeconds`, 'Locator end precedes its start.');\n if (assertion.field === 'eventTime') time(assertion.value, `${path}/value`);\n else if (assertion.field === 'position') position(assertion.value, `${path}/value`, owner);\n else {\n // This is the subject of the assertion, not a processing dependency.\n resolve(`measurement:${assertion.measurementId}`, `${path}/measurementId`);\n quantity(assertion.value, `${path}/value`, owner);\n }\n }\n if (data.eventTime.state === 'known' || data.eventTime.state === 'approximate') {\n time(data.eventTime.value, '/eventTime/value');\n fieldReferences(data.eventTime.sourceRefs, 'eventTime', '/eventTime/sourceRefs');\n if (data.eventTime.uncertainty) uncertainty(data.eventTime.uncertainty, ['s', 'ms', 'us', 'ns'], '/eventTime/uncertainty');\n selection(data.eventTime.selection, data.eventTime.value, data.eventTime.sourceRefs, 'eventTime', '/eventTime');\n }\n if (data.position.state === 'known' || data.position.state === 'approximate') {\n position(data.position.value, '/position/value');\n fieldReferences(data.position.sourceRefs, 'position', '/position/sourceRefs');\n selection(data.position.selection, data.position.value, data.position.sourceRefs, 'position', '/position');\n }\n for (const [i, measurement] of data.measurements.entries()) {\n const path = `/measurements/${i}`;\n const owner = `measurement:${measurement.id}`;\n if (measurement.frameRef) resolve(measurement.frameRef, `${path}/frameRef`, owner);\n quantity(measurement.value, `${path}/value`, owner);\n fieldReferences(measurement.sourceRefs, 'measurement', `${path}/sourceRefs`, owner, measurement.id);\n selection(measurement.selection, measurement.value, measurement.sourceRefs, 'measurement', path, owner, measurement.id);\n }\n for (const [i, process] of data.processing.entries()) {\n const path = `/processing/${i}`;\n const owner = `process:${process.id}`;\n instant(process.performedAt, `${path}/performedAt`);\n method(process.methodRef, process.methodVersion, path, owner);\n references(process.inputRefs, `${path}/inputRefs`, owner);\n // Outputs are reverse edges of product.generatedBy, not input dependencies.\n references(process.outputRefs, `${path}/outputRefs`);\n for (const [j, ref] of process.outputRefs.entries()) {\n const product = products.get(key(ref));\n if (product && (product.kind !== 'derived' || product.generatedBy !== owner)) problem('PROCESS.OUTPUT_MISMATCH', `${path}/outputRefs/${j}`, 'Output must be a derived product identifying this producer.');\n }\n }\n\n // Iterative topological check avoids recursion limits on long processing histories.\n const indegrees = new Map([...graph.keys()].map(ref => [ref, 0]));\n for (const dependencies of graph.values()) for (const ref of dependencies) indegrees.set(ref, (indegrees.get(ref) ?? 0) + 1);\n const queue = [...indegrees].filter(([, degree]) => degree === 0).map(([ref]) => ref);\n for (let i = 0; i < queue.length; i++) {\n for (const dependency of graph.get(queue[i]!) ?? []) {\n const degree = indegrees.get(dependency)! - 1;\n indegrees.set(dependency, degree);\n if (degree === 0) queue.push(dependency);\n }\n }\n if (queue.length !== graph.size) problem('PROCESS.CYCLE', '/processing', 'Local processing/provenance dependencies contain a cycle.');\n\n const checks: ObservationChecks = { structural: 'passed', semantic: issues.length ? 'failed' : 'passed', profile: 'not_checked', external: 'not_checked' };\n const uncheckedRefs = [...sources.keys()].map(id => `source:${id}`).concat(\n [...products.keys()].map(id => `product:${id}`), [...methods.keys()].map(id => `method:${id}`), [...frames.keys()].map(id => `frame:${id}`),\n );\n return issues.length ? { success: false, issues, checks, uncheckedRefs } : { success: true, data, issues, checks, uncheckedRefs };\n}\n","import { z } from 'zod';\nimport { ExperimentalObservationSchema, ObservationAssertionSchema } from './observation-schema';\nimport { instantString } from './primitives';\n\nconst text = z.string().min(1).regex(/\\S/, 'must contain non-whitespace text');\nconst id = z.string().regex(/^[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])/);\nconst claimRef = z.string().regex(/^claim:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])/);\nconst inputRef = z.string().regex(/^(?:claim|source|product|assertion|measurement):[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])/);\nexport const ClaimSubjectSchema = z.discriminatedUnion('kind', [\n z.strictObject({ kind: z.literal('observation') }),\n z.strictObject({ kind: z.literal('measurement'), measurementId: id }),\n]);\nconst common = {\n id, recordedAt: instantString, topic: text, subject: ClaimSubjectSchema,\n supersedes: z.array(claimRef).min(1).optional(),\n};\nexport const SourceStatementSchema = z.strictObject({\n ...common, kind: z.literal('source_assertion'), text,\n reportedLevel: text.optional(), provenance: ObservationAssertionSchema.options[0].shape.provenance,\n});\nconst assessment = { ...common, kind: z.literal('assessment'), inputRefs: z.array(inputRef), rationale: text };\nexport const UnassessedClaimSchema = z.strictObject({ ...assessment, status: z.literal('unassessed') });\nexport const AssessedClaimSchema = z.strictObject({\n ...assessment, status: z.literal('assessed'),\n outcome: z.enum(['reported', 'confirmed', 'absent', 'inconclusive']),\n evaluatedBy: text, evaluatedAt: instantString,\n methodRef: z.string().regex(/^method:[A-Za-z0-9][A-Za-z0-9._-]*(?![\\s\\S])/), methodVersion: text,\n confidence: z.number().min(0).max(1).optional(),\n});\nexport const HistoricalClaimSchema = z.union([SourceStatementSchema, UnassessedClaimSchema, AssessedClaimSchema]);\nexport const EXPERIMENTAL_CLAIM_HISTORY_SCHEMA_ID = 'urn:disclosureos:experimental:claim-history:0.1.0';\nexport const CLAIM_HISTORY_RULESET_VERSION = '0.1.0';\n/** Separate review envelope: the embedded Observation keeps its immutable 0.1.0 contract. */\nexport const ExperimentalClaimHistorySchema = z.strictObject({\n kind: z.literal('claim_history'), schemaVersion: z.literal('0.1.0'), id,\n observation: ExperimentalObservationSchema, claims: z.array(HistoricalClaimSchema),\n extensions: ExperimentalObservationSchema.shape.extensions,\n});\nexport type ClaimSubject = z.infer<typeof ClaimSubjectSchema>;\nexport type SourceStatement = z.infer<typeof SourceStatementSchema>;\nexport type UnassessedClaim = z.infer<typeof UnassessedClaimSchema>;\nexport type AssessedClaim = z.infer<typeof AssessedClaimSchema>;\nexport type HistoricalClaim = z.infer<typeof HistoricalClaimSchema>;\nexport type ExperimentalClaimHistory = z.infer<typeof ExperimentalClaimHistorySchema>;\nexport function experimentalClaimHistoryJsonSchema(): Record<string, unknown> {\n return { ...z.toJSONSchema(ExperimentalClaimHistorySchema, { target: 'draft-2020-12' }), $id: EXPERIMENTAL_CLAIM_HISTORY_SCHEMA_ID };\n}\n","import { ExperimentalClaimHistorySchema, EXPERIMENTAL_CLAIM_HISTORY_SCHEMA_ID, CLAIM_HISTORY_RULESET_VERSION } from './claim-history-schema';\nimport type { ExperimentalClaimHistory, HistoricalClaim } from './claim-history-schema';\nimport { parseExperimentalObservation } from './observation';\nimport type { ObservationChecks, ObservationIssueCode } from './observation';\nimport { checkTime, comparePoints } from './primitives';\nimport type { PrimitiveIssue } from './primitives';\n\nexport type ClaimHistoryIssueCode = ObservationIssueCode | 'CLAIM.SUPERSESSION_SCOPE' | 'CLAIM.REVISION_ORDER'\n | 'CLAIM.DEPENDENCY_CYCLE' | 'CLAIM.EVALUATION_ORDER' | 'CLAIM.REVISION_ATTRIBUTION';\nexport interface ClaimHistoryIssue {\n code: ClaimHistoryIssueCode; stage: 'structural' | 'semantic'; severity: 'error'; pointer: string; message: string;\n}\nexport interface ClaimHistoryValidation {\n checks: ObservationChecks;\n issues: ClaimHistoryIssue[];\n uncheckedRefs: string[];\n contract: { kind: 'claim_history'; schemaId: typeof EXPERIMENTAL_CLAIM_HISTORY_SCHEMA_ID; rulesetVersion: typeof CLAIM_HISTORY_RULESET_VERSION };\n}\nexport type ClaimHistoryParseResult = ClaimHistoryValidation & (\n { success: true; data: ExperimentalClaimHistory; currentClaimRefs: string[] } | { success: false }\n);\nconst point = (value: string) => ({ kind: 'instant' as const, value, timeScale: 'UTC' as const });\nconst pointer = (path: readonly PropertyKey[]) => path.map(p => `/${String(p).replace(/~/g, '~0').replace(/\\//g, '~1')}`).join('');\n\n/** Checks declared claim history only. Current means not superseded, never scientifically verified. */\nexport function parseExperimentalClaimHistory(input: unknown): ClaimHistoryParseResult {\n const contract: ClaimHistoryValidation['contract'] = { kind: 'claim_history', schemaId: EXPERIMENTAL_CLAIM_HISTORY_SCHEMA_ID, rulesetVersion: CLAIM_HISTORY_RULESET_VERSION };\n const parsed = ExperimentalClaimHistorySchema.safeParse(input);\n if (!parsed.success) return {\n success: false, contract, checks: { structural: 'failed', semantic: 'not_checked', profile: 'not_checked', external: 'not_checked' }, uncheckedRefs: [],\n issues: parsed.error.issues.map(issue => ({ code: 'STRUCT.VALUE', stage: 'structural', severity: 'error', pointer: pointer(issue.path), message: issue.message })),\n };\n const data = parsed.data;\n const observationResult = parseExperimentalObservation(data.observation);\n const issues: ClaimHistoryIssue[] = observationResult.issues.map(issue => ({ ...issue, pointer: `/observation${issue.pointer}` }));\n const problem = (code: ClaimHistoryIssueCode, path: string, message: string) => issues.push({ code, stage: 'semantic', severity: 'error', pointer: path, message });\n const claims = new Map<string, HistoricalClaim>();\n const graph = new Map<string, Set<string>>();\n const superseded = new Set<string>();\n const sources = new Map(data.observation.sources.map(item => [`source:${item.id}`, item]));\n const products = new Map(data.observation.products.map(item => [`product:${item.id}`, item]));\n const methods = new Map(data.observation.methods.map(item => [`method:${item.id}`, item]));\n const measurements = new Set(data.observation.measurements.map(item => `measurement:${item.id}`));\n const available = new Set([\n ...sources.keys(), ...products.keys(), ...measurements,\n ...data.observation.assertions.map(item => `assertion:${item.id}`),\n ]);\n for (const [i, claim] of data.claims.entries()) {\n const ref = `claim:${claim.id}`;\n if (claims.has(ref)) problem('REF.UNIQUE_ID', `/claims/${i}/id`, 'Duplicate claim ID; each revision must have its own ID.');\n else { claims.set(ref, claim); graph.set(ref, new Set()); available.add(ref); }\n }\n function instant(value: string, path: string): void {\n const local: PrimitiveIssue[] = [];\n checkTime(point(value), path, local);\n for (const issue of local) problem(issue.code, issue.pointer, issue.message);\n }\n function resolve(ref: string, path: string, owner?: string): void {\n if (!available.has(ref)) problem('REF.LOCAL_RESOLUTION', path, `Undeclared local reference: ${ref}`);\n else if (owner && claims.has(ref)) graph.get(owner)?.add(ref);\n }\n function refs(values: string[], path: string, owner: string): void {\n const seen = new Set<string>();\n for (const [i, ref] of values.entries()) {\n if (seen.has(ref)) problem('REF.UNIQUE_ID', `${path}/${i}`, 'Reference is repeated.');\n seen.add(ref);\n resolve(ref, `${path}/${i}`, owner);\n }\n }\n for (const [i, claim] of data.claims.entries()) {\n const path = `/claims/${i}`;\n const owner = `claim:${claim.id}`;\n instant(claim.recordedAt, `${path}/recordedAt`);\n if (claim.subject.kind === 'measurement') resolve(`measurement:${claim.subject.measurementId}`, `${path}/subject/measurementId`);\n if (claim.supersedes) {\n refs(claim.supersedes, `${path}/supersedes`, owner);\n for (const [j, ref] of claim.supersedes.entries()) {\n const previous = claims.get(ref);\n if (!previous) continue;\n superseded.add(ref);\n if (previous.kind !== claim.kind || previous.topic !== claim.topic || JSON.stringify(previous.subject) !== JSON.stringify(claim.subject)) {\n problem('CLAIM.SUPERSESSION_SCOPE', `${path}/supersedes/${j}`, 'A revision must retain the claim kind, topic, and subject. Record a different claim separately.');\n }\n if (previous.kind === 'assessment' && previous.status === 'assessed' && claim.kind === 'assessment'\n && (claim.status !== 'assessed' || previous.evaluatedBy !== claim.evaluatedBy)) {\n problem('CLAIM.REVISION_ATTRIBUTION', `${path}/supersedes/${j}`, 'An assessed revision must retain its evaluator; other evaluators record independent assessments.');\n }\n if (comparePoints(point(previous.recordedAt), point(claim.recordedAt)) > 0) {\n problem('CLAIM.REVISION_ORDER', `${path}/recordedAt`, 'A revision cannot be recorded before the statement it supersedes.');\n }\n }\n }\n if (claim.kind === 'source_assertion') {\n resolve(claim.provenance.sourceRef, `${path}/provenance/sourceRef`);\n const source = sources.get(claim.provenance.sourceRef) ?? products.get(claim.provenance.sourceRef);\n if (source?.digest && claim.provenance.sourceDigest && source.digest.value !== claim.provenance.sourceDigest.value) {\n problem('SOURCE.DIGEST_MISMATCH', `${path}/provenance/sourceDigest`, 'Digest differs from the inventory declaration; neither is verified against bytes.');\n }\n const locator = claim.provenance.locator;\n if (locator?.kind === 'time_range' && locator.endSeconds < locator.startSeconds) problem('TIME.INTERVAL', `${path}/provenance/locator/endSeconds`, 'Locator end precedes its start.');\n } else {\n refs(claim.inputRefs, `${path}/inputRefs`, owner);\n if (claim.status === 'assessed') {\n instant(claim.evaluatedAt, `${path}/evaluatedAt`);\n if (comparePoints(point(claim.evaluatedAt), point(claim.recordedAt)) > 0) problem('CLAIM.EVALUATION_ORDER', `${path}/evaluatedAt`, 'Evaluation cannot occur after the assessment was recorded.');\n const method = methods.get(claim.methodRef);\n if (!method) problem('REF.LOCAL_RESOLUTION', `${path}/methodRef`, 'Assessment method is not declared in the Observation inventory.');\n else if (method.version !== claim.methodVersion) problem('METHOD.VERSION_MISMATCH', `${path}/methodVersion`, 'Assessment method version differs from its inventory declaration.');\n }\n }\n }\n // Supersession and claim inputs form one dependency graph. Array order is irrelevant.\n const indegrees = new Map([...graph.keys()].map(ref => [ref, 0]));\n for (const edges of graph.values()) for (const ref of edges) indegrees.set(ref, indegrees.get(ref)! + 1);\n const queue = [...indegrees].filter(([, degree]) => degree === 0).map(([ref]) => ref);\n for (let i = 0; i < queue.length; i++) for (const ref of graph.get(queue[i]!) ?? []) {\n const degree = indegrees.get(ref)! - 1;\n indegrees.set(ref, degree);\n if (degree === 0) queue.push(ref);\n }\n if (queue.length !== graph.size) problem('CLAIM.DEPENDENCY_CYCLE', '/claims', 'Claim inputs and supersession must form an acyclic history.');\n const validation: ClaimHistoryValidation = {\n contract, issues, uncheckedRefs: observationResult.uncheckedRefs,\n checks: { structural: 'passed', semantic: issues.length ? 'failed' : 'passed', profile: 'not_checked', external: 'not_checked' },\n };\n return issues.length ? { ...validation, success: false } : {\n ...validation, success: true, data,\n currentClaimRefs: [...claims.keys()].filter(ref => !superseded.has(ref)),\n };\n}\n","import { comparePoints, instantString } from './primitives';\n/** Exact ordering of valid UTC-offset instants; undefined for invalid or unresolvable input. */\nexport function compareUtcInstants(left: string, right: string): -1 | 0 | 1 | undefined {\n if (!instantString.safeParse(left).success || !instantString.safeParse(right).success) return undefined;\n const result = comparePoints({kind:'instant',value:left,timeScale:'UTC'}, {kind:'instant',value:right,timeScale:'UTC'});\n return result === -1 || result === 0 || result === 1 ? result : undefined;\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@disclosureos/records",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0-beta.0",
|
|
4
4
|
"description": "Structured vocabulary for describing UAP observations — the data dictionary of the DisclosureOS ecosystem",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -105,7 +105,18 @@
|
|
|
105
105
|
"import": "./dist/shared/index.js"
|
|
106
106
|
},
|
|
107
107
|
"./schema": "./schema/records.schema.json",
|
|
108
|
-
"./package.json": "./package.json"
|
|
108
|
+
"./package.json": "./package.json",
|
|
109
|
+
"./experimental/v2": {
|
|
110
|
+
"types": "./dist/experimental/v2/index.d.ts",
|
|
111
|
+
"import": "./dist/experimental/v2/index.js"
|
|
112
|
+
},
|
|
113
|
+
"./experimental/v2/schema": "./schema/experimental/v2-primitives-0.2.0.schema.json",
|
|
114
|
+
"./experimental/v2/schema/0.1.0": "./schema/experimental/v2-primitives.schema.json",
|
|
115
|
+
"./experimental/v2/schema/0.2.0": "./schema/experimental/v2-primitives-0.2.0.schema.json",
|
|
116
|
+
"./experimental/v2/observation/schema": "./schema/experimental/observation-0.1.0.schema.json",
|
|
117
|
+
"./experimental/v2/observation/schema/0.1.0": "./schema/experimental/observation-0.1.0.schema.json",
|
|
118
|
+
"./experimental/v2/claims/schema": "./schema/experimental/claim-history-0.1.0.schema.json",
|
|
119
|
+
"./experimental/v2/claims/schema/0.1.0": "./schema/experimental/claim-history-0.1.0.schema.json"
|
|
109
120
|
},
|
|
110
121
|
"main": "./dist/index.js",
|
|
111
122
|
"types": "./dist/index.d.ts",
|
|
@@ -117,7 +128,7 @@
|
|
|
117
128
|
"LICENSE"
|
|
118
129
|
],
|
|
119
130
|
"dependencies": {
|
|
120
|
-
"zod": "
|
|
131
|
+
"zod": "4.4.3"
|
|
121
132
|
},
|
|
122
133
|
"devDependencies": {
|
|
123
134
|
"@types/node": "^20",
|
|
@@ -130,7 +141,8 @@
|
|
|
130
141
|
"@repo/typescript-config": "0.0.0"
|
|
131
142
|
},
|
|
132
143
|
"publishConfig": {
|
|
133
|
-
"access": "public"
|
|
144
|
+
"access": "public",
|
|
145
|
+
"tag": "beta"
|
|
134
146
|
},
|
|
135
147
|
"scripts": {
|
|
136
148
|
"build": "tsup",
|