@superbee/core 0.1.6 → 0.2.0-pre.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.
- package/dist/backend.d.ts.map +1 -1
- package/dist/backend.js +29 -7
- package/dist/backend.js.map +1 -1
- package/dist/bundle-ops.d.ts +42 -0
- package/dist/bundle-ops.d.ts.map +1 -0
- package/dist/bundle-ops.js +88 -0
- package/dist/bundle-ops.js.map +1 -0
- package/dist/bundle.d.ts +8 -27
- package/dist/bundle.d.ts.map +1 -1
- package/dist/bundle.js +9 -66
- package/dist/bundle.js.map +1 -1
- package/dist/document-field-actions.d.ts +95 -0
- package/dist/document-field-actions.d.ts.map +1 -0
- package/dist/document-field-actions.js +261 -0
- package/dist/document-field-actions.js.map +1 -0
- package/dist/document-mutation.d.ts +46 -2
- package/dist/document-mutation.d.ts.map +1 -1
- package/dist/document-mutation.js +79 -19
- package/dist/document-mutation.js.map +1 -1
- package/dist/document-write-policy.d.ts +0 -1
- package/dist/document-write-policy.d.ts.map +1 -1
- package/dist/document-write-policy.js +3 -2
- package/dist/document-write-policy.js.map +1 -1
- package/dist/engine.d.ts +2 -0
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +2 -1
- package/dist/engine.js.map +1 -1
- package/dist/freshness.d.ts +10 -7
- package/dist/freshness.d.ts.map +1 -1
- package/dist/freshness.js +14 -11
- package/dist/freshness.js.map +1 -1
- package/dist/frontmatter-contract.d.ts +2 -2
- package/dist/frontmatter-contract.js +2 -2
- package/dist/frontmatter.d.ts +3 -1
- package/dist/frontmatter.d.ts.map +1 -1
- package/dist/frontmatter.js +7 -4
- package/dist/frontmatter.js.map +1 -1
- package/dist/index.d.ts +10 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -2
- package/dist/index.js.map +1 -1
- package/dist/indexeddb-backend.d.ts +165 -0
- package/dist/indexeddb-backend.d.ts.map +1 -0
- package/dist/indexeddb-backend.js +718 -0
- package/dist/indexeddb-backend.js.map +1 -0
- package/dist/journaled-backend.d.ts +178 -0
- package/dist/journaled-backend.d.ts.map +1 -0
- package/dist/journaled-backend.js +77 -0
- package/dist/journaled-backend.js.map +1 -0
- package/dist/kind-field-mutation.d.ts +15 -0
- package/dist/kind-field-mutation.d.ts.map +1 -0
- package/dist/kind-field-mutation.js +160 -0
- package/dist/kind-field-mutation.js.map +1 -0
- package/dist/kinds.d.ts.map +1 -1
- package/dist/kinds.js +3 -1
- package/dist/kinds.js.map +1 -1
- package/dist/meaningful-change-time.d.ts +6 -6
- package/dist/meaningful-change-time.d.ts.map +1 -1
- package/dist/meaningful-change-time.js +12 -13
- package/dist/meaningful-change-time.js.map +1 -1
- package/dist/mutation.d.ts.map +1 -1
- package/dist/mutation.js +2 -2
- package/dist/mutation.js.map +1 -1
- package/dist/page.d.ts.map +1 -1
- package/dist/page.js +2 -1
- package/dist/page.js.map +1 -1
- package/dist/platform.d.ts +161 -0
- package/dist/platform.d.ts.map +1 -0
- package/dist/platform.js +77 -0
- package/dist/platform.js.map +1 -0
- package/dist/recipes.d.ts +3 -1
- package/dist/recipes.d.ts.map +1 -1
- package/dist/recipes.js +4 -4
- package/dist/recipes.js.map +1 -1
- package/dist/remote-backend.d.ts +28 -0
- package/dist/remote-backend.d.ts.map +1 -1
- package/dist/remote-backend.js +75 -2
- package/dist/remote-backend.js.map +1 -1
- package/dist/remote-operations.d.ts +60 -0
- package/dist/remote-operations.d.ts.map +1 -0
- package/dist/remote-operations.js +110 -0
- package/dist/remote-operations.js.map +1 -0
- package/dist/sha256.d.ts +21 -0
- package/dist/sha256.d.ts.map +1 -0
- package/dist/sha256.js +114 -0
- package/dist/sha256.js.map +1 -0
- package/dist/storage.d.ts +5 -1
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js +7 -1
- package/dist/storage.js.map +1 -1
- package/dist/types.d.ts +12 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/uncertain-write.d.ts +142 -0
- package/dist/uncertain-write.d.ts.map +1 -0
- package/dist/uncertain-write.js +174 -0
- package/dist/uncertain-write.js.map +1 -0
- package/dist/version-transport.d.ts +7 -0
- package/dist/version-transport.d.ts.map +1 -1
- package/dist/version-transport.js +9 -0
- package/dist/version-transport.js.map +1 -1
- package/dist/versioning.d.ts +9 -3
- package/dist/versioning.d.ts.map +1 -1
- package/dist/versioning.js +14 -10
- package/dist/versioning.js.map +1 -1
- package/package.json +42 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"indexeddb-backend.js","sourceRoot":"","sources":["../src/indexeddb-backend.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The journaled-backend seam: what a storage adapter must add to {@link StorageBackend} to host
|
|
3
|
+
* a browser-local working copy whose synchronization is a durable intent journal. The engine
|
|
4
|
+
* reads and writes through `StorageBackend`; the sync runtime reads and writes through this
|
|
5
|
+
* seam. Any adapter that implements it and passes the journal rows of the contract kit can hold
|
|
6
|
+
* the working copy, whatever it persists to.
|
|
7
|
+
*
|
|
8
|
+
* The contract a second adapter must meet:
|
|
9
|
+
*
|
|
10
|
+
* - {@link JournaledBackend.writeJournaled} is ONE transaction over documents, intents, and
|
|
11
|
+
* meta: the document compare-and-swap of `write`, plus (optionally) deleting a superseded
|
|
12
|
+
* intent, recording a new intent for the written bytes, and putting meta rows. Every step is
|
|
13
|
+
* conditional on every other: a failed document CAS records no intent, and a superseded
|
|
14
|
+
* intent whose state or attempts moved fails the whole write with {@link IntentStateConflict}
|
|
15
|
+
* so the caller composes against fresh state. With `requireSettled`, an unsettled intent on
|
|
16
|
+
* the target fails it with {@link IntentHoldConflict} before the document is touched; the
|
|
17
|
+
* check runs inside the write's own transaction, so an intent committed while the caller was
|
|
18
|
+
* awaiting the network still holds the target. A recorded intent starts `pending` with zero
|
|
19
|
+
* attempts, carries the written bytes as `content` and their version as `local`, and takes
|
|
20
|
+
* the next value of a monotonic per-store sequence. The sequence advances only for a write
|
|
21
|
+
* that commits.
|
|
22
|
+
* - {@link JournaledBackend.readWithJournal} is ONE snapshot: the document, every intent
|
|
23
|
+
* targeting it, and the named meta rows, read in one readonly transaction, so a write in
|
|
24
|
+
* another realm between separate reads can never show a caller a document of one moment
|
|
25
|
+
* beside a journal of another. Intents come back in local commit order (by `sequence`).
|
|
26
|
+
* - {@link JournaledBackend.updateIntent} is a compare-and-swap on the intent's `state`: the
|
|
27
|
+
* patch applies only while the record is in `expectedState`, together with any meta rows, in
|
|
28
|
+
* one transaction. A different state or a missing record rejects with
|
|
29
|
+
* {@link IntentStateConflict} and writes nothing, so two realms (a stale tab, a worker) cannot
|
|
30
|
+
* both settle or both replace one intent.
|
|
31
|
+
* - {@link JournaledBackend.listIntents} returns intents in local commit order (ascending
|
|
32
|
+
* `sequence`), optionally restricted to one or more states.
|
|
33
|
+
* - {@link JournaledBackend.readMeta} and {@link JournaledBackend.writeMeta} are an opaque
|
|
34
|
+
* key-value store; what the rows mean belongs to the sync component that writes them.
|
|
35
|
+
*
|
|
36
|
+
* This module imports no Node builtin so it bundles for the browser. The IndexedDB adapter is
|
|
37
|
+
* the shipping implementation; a test-only in-memory adapter proves the seam is not a
|
|
38
|
+
* description of that one class.
|
|
39
|
+
*/
|
|
40
|
+
import type { OperationIntent, OperationState } from "./uncertain-write.js";
|
|
41
|
+
import type { ConceptId, OkfDocument, ReadResult, StorageBackend, Version, WriteOptions } from "./types.js";
|
|
42
|
+
/**
|
|
43
|
+
* An intent's journal state was not the one the caller expected, or the intent is gone. Settling
|
|
44
|
+
* and superseding are compare-and-swap operations on the intent's own record so two realms (a
|
|
45
|
+
* stale tab, a worker) cannot both settle or both replace one intent.
|
|
46
|
+
*/
|
|
47
|
+
export declare class IntentStateConflict extends Error {
|
|
48
|
+
readonly name = "IntentStateConflict";
|
|
49
|
+
readonly requestId: string;
|
|
50
|
+
readonly expected: OperationState;
|
|
51
|
+
readonly actual: OperationState | null;
|
|
52
|
+
constructor(requestId: string, expected: OperationState, actual: OperationState | null);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* A journaled write required that no unsettled intent hold its target, and one does. The local
|
|
56
|
+
* edit that intent describes would otherwise be replaced while the authority has not accepted
|
|
57
|
+
* it. The check runs inside the write's own transaction, so an intent committed while the caller
|
|
58
|
+
* was awaiting the network still holds the target.
|
|
59
|
+
*/
|
|
60
|
+
export declare class IntentHoldConflict extends Error {
|
|
61
|
+
readonly name = "IntentHoldConflict";
|
|
62
|
+
readonly target: ConceptId;
|
|
63
|
+
readonly requestId: string;
|
|
64
|
+
readonly state: OperationState;
|
|
65
|
+
constructor(target: ConceptId, requestId: string, state: OperationState);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* A journaled local write: the shared primitive's {@link OperationIntent} plus what the
|
|
69
|
+
* working copy keeps for reconciliation. `sequence` is the local commit order; `after` names a
|
|
70
|
+
* predecessor intent on the same target that must be acknowledged before this one is delivered.
|
|
71
|
+
*/
|
|
72
|
+
export interface IntentRecord extends OperationIntent {
|
|
73
|
+
sequence: number;
|
|
74
|
+
updatedAt: string;
|
|
75
|
+
/** The serialized document at `base`, when the working copy held it; the three-way baseline. */
|
|
76
|
+
baseContent: string | null;
|
|
77
|
+
after?: string;
|
|
78
|
+
/** Set when the authority committed the intent; equals `local` for a content-addressed token. */
|
|
79
|
+
acknowledgedVersion?: Version;
|
|
80
|
+
/** The shared head observed when the intent entered conflict. */
|
|
81
|
+
remote?: {
|
|
82
|
+
version: Version | null;
|
|
83
|
+
content: string | null;
|
|
84
|
+
};
|
|
85
|
+
refusal?: {
|
|
86
|
+
code: string;
|
|
87
|
+
message: string;
|
|
88
|
+
};
|
|
89
|
+
/** A recorded observation the caller should surface, such as an acknowledged version that differs from `local`. */
|
|
90
|
+
finding?: string;
|
|
91
|
+
}
|
|
92
|
+
/** The caller-supplied part of a new intent; the adapter fills content, version, sequence, and state. */
|
|
93
|
+
export type NewIntentRecord = Pick<IntentRecord, "requestId" | "kind" | "target" | "base" | "baseContent" | "createdAt"> & Partial<Pick<IntentRecord, "after">>;
|
|
94
|
+
/** An opaque key-value row in the meta store (bootstrap marker, per-document base, pause flag). */
|
|
95
|
+
export interface MetaRecord {
|
|
96
|
+
key: string;
|
|
97
|
+
value: unknown;
|
|
98
|
+
}
|
|
99
|
+
/** Options for {@link JournaledBackend.writeJournaled}. */
|
|
100
|
+
export interface JournaledWriteOptions extends WriteOptions {
|
|
101
|
+
/** Record this intent in the same transaction as the document write. */
|
|
102
|
+
intent?: NewIntentRecord;
|
|
103
|
+
/** An unsettled intent this write composes over; deleted only while its state and attempts still match. */
|
|
104
|
+
supersede?: {
|
|
105
|
+
requestId: string;
|
|
106
|
+
expectedState: OperationState;
|
|
107
|
+
expectedAttempts: number;
|
|
108
|
+
};
|
|
109
|
+
/** Meta rows to put in the same transaction, given the written bytes when a function. */
|
|
110
|
+
meta?: MetaRecord[] | ((written: {
|
|
111
|
+
version: Version;
|
|
112
|
+
raw: string;
|
|
113
|
+
}) => MetaRecord[]);
|
|
114
|
+
/**
|
|
115
|
+
* Abort with {@link IntentHoldConflict} when any intent targeting `id` is in a state other than
|
|
116
|
+
* `acknowledged`, read in the same transaction as the document write. A refresh from the
|
|
117
|
+
* authority uses this so a local edit committed during its network round trip is never
|
|
118
|
+
* replaced.
|
|
119
|
+
*/
|
|
120
|
+
requireSettled?: boolean;
|
|
121
|
+
}
|
|
122
|
+
/** One document with everything the journal holds about it, read in one transaction. See {@link JournaledBackend.readWithJournal}. */
|
|
123
|
+
export interface JournaledReadResult {
|
|
124
|
+
/** The parsed document and its version, or `null` when the store holds no record. */
|
|
125
|
+
document: ReadResult | null;
|
|
126
|
+
/** The exact stored serialization, the bytes `version` names; `null` when absent. */
|
|
127
|
+
raw: string | null;
|
|
128
|
+
/** Every intent targeting the id, in local commit order, whatever its state. */
|
|
129
|
+
intents: IntentRecord[];
|
|
130
|
+
/** The requested meta rows' values by key; a key with no row is absent from the map. */
|
|
131
|
+
meta: Map<string, unknown>;
|
|
132
|
+
}
|
|
133
|
+
/** Fields a caller may change when settling or reclaiming an intent. */
|
|
134
|
+
export type IntentPatch = Partial<Omit<IntentRecord, "requestId" | "sequence" | "createdAt" | "kind" | "target">>;
|
|
135
|
+
/**
|
|
136
|
+
* A {@link StorageBackend} that also journals local writes as intents and keeps opaque meta
|
|
137
|
+
* rows, with the transaction and compare-and-swap guarantees stated in this module's header.
|
|
138
|
+
*/
|
|
139
|
+
export interface JournaledBackend extends StorageBackend {
|
|
140
|
+
/**
|
|
141
|
+
* One transaction over documents, intents, and meta: the document compare-and-swap of
|
|
142
|
+
* `write`, plus (optionally) deleting a superseded intent, recording a new intent for the
|
|
143
|
+
* written bytes, and putting meta rows. Every step is conditional on every other: a failed
|
|
144
|
+
* document CAS records no intent, and a superseded intent whose state or attempts moved fails
|
|
145
|
+
* the whole write with {@link IntentStateConflict} so the caller composes against fresh state. With
|
|
146
|
+
* `requireSettled`, an unsettled intent on the target fails it with
|
|
147
|
+
* {@link IntentHoldConflict} before the document is touched.
|
|
148
|
+
*/
|
|
149
|
+
writeJournaled(id: ConceptId, doc: OkfDocument, options?: JournaledWriteOptions): Promise<{
|
|
150
|
+
version: Version;
|
|
151
|
+
raw: string;
|
|
152
|
+
intent: IntentRecord | null;
|
|
153
|
+
}>;
|
|
154
|
+
/**
|
|
155
|
+
* The document, every intent targeting it, and the named meta rows, from ONE readonly
|
|
156
|
+
* transaction. A caller deriving where a document stands (its bytes against its shared base
|
|
157
|
+
* and its journal) reads them here so a write in another realm between separate reads can
|
|
158
|
+
* never show it a document of one moment beside a journal of another; with this snapshot a
|
|
159
|
+
* mismatch is a genuine working-copy defect.
|
|
160
|
+
*/
|
|
161
|
+
readWithJournal(id: ConceptId, options?: {
|
|
162
|
+
meta?: readonly string[];
|
|
163
|
+
}): Promise<JournaledReadResult>;
|
|
164
|
+
/** Intents in local commit order, optionally restricted to one or more states. */
|
|
165
|
+
listIntents(state?: OperationState | readonly OperationState[]): Promise<IntentRecord[]>;
|
|
166
|
+
readIntent(requestId: string): Promise<IntentRecord | undefined>;
|
|
167
|
+
/**
|
|
168
|
+
* Compare-and-swap on an intent's `state`: the patch applies only while the record is in
|
|
169
|
+
* `expectedState`, together with any meta rows, in one transaction. A different state or a
|
|
170
|
+
* missing record rejects with {@link IntentStateConflict} and writes nothing.
|
|
171
|
+
*/
|
|
172
|
+
updateIntent(requestId: string, expectedState: OperationState, patch: IntentPatch, options?: {
|
|
173
|
+
meta?: MetaRecord[];
|
|
174
|
+
}): Promise<IntentRecord>;
|
|
175
|
+
readMeta<T = unknown>(key: string): Promise<T | undefined>;
|
|
176
|
+
writeMeta(key: string, value: unknown): Promise<void>;
|
|
177
|
+
}
|
|
178
|
+
//# sourceMappingURL=journaled-backend.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"journaled-backend.d.ts","sourceRoot":"","sources":["../src/journaled-backend.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The journaled-backend seam: what a storage adapter must add to {@link StorageBackend} to host
|
|
3
|
+
* a browser-local working copy whose synchronization is a durable intent journal. The engine
|
|
4
|
+
* reads and writes through `StorageBackend`; the sync runtime reads and writes through this
|
|
5
|
+
* seam. Any adapter that implements it and passes the journal rows of the contract kit can hold
|
|
6
|
+
* the working copy, whatever it persists to.
|
|
7
|
+
*
|
|
8
|
+
* The contract a second adapter must meet:
|
|
9
|
+
*
|
|
10
|
+
* - {@link JournaledBackend.writeJournaled} is ONE transaction over documents, intents, and
|
|
11
|
+
* meta: the document compare-and-swap of `write`, plus (optionally) deleting a superseded
|
|
12
|
+
* intent, recording a new intent for the written bytes, and putting meta rows. Every step is
|
|
13
|
+
* conditional on every other: a failed document CAS records no intent, and a superseded
|
|
14
|
+
* intent whose state or attempts moved fails the whole write with {@link IntentStateConflict}
|
|
15
|
+
* so the caller composes against fresh state. With `requireSettled`, an unsettled intent on
|
|
16
|
+
* the target fails it with {@link IntentHoldConflict} before the document is touched; the
|
|
17
|
+
* check runs inside the write's own transaction, so an intent committed while the caller was
|
|
18
|
+
* awaiting the network still holds the target. A recorded intent starts `pending` with zero
|
|
19
|
+
* attempts, carries the written bytes as `content` and their version as `local`, and takes
|
|
20
|
+
* the next value of a monotonic per-store sequence. The sequence advances only for a write
|
|
21
|
+
* that commits.
|
|
22
|
+
* - {@link JournaledBackend.readWithJournal} is ONE snapshot: the document, every intent
|
|
23
|
+
* targeting it, and the named meta rows, read in one readonly transaction, so a write in
|
|
24
|
+
* another realm between separate reads can never show a caller a document of one moment
|
|
25
|
+
* beside a journal of another. Intents come back in local commit order (by `sequence`).
|
|
26
|
+
* - {@link JournaledBackend.updateIntent} is a compare-and-swap on the intent's `state`: the
|
|
27
|
+
* patch applies only while the record is in `expectedState`, together with any meta rows, in
|
|
28
|
+
* one transaction. A different state or a missing record rejects with
|
|
29
|
+
* {@link IntentStateConflict} and writes nothing, so two realms (a stale tab, a worker) cannot
|
|
30
|
+
* both settle or both replace one intent.
|
|
31
|
+
* - {@link JournaledBackend.listIntents} returns intents in local commit order (ascending
|
|
32
|
+
* `sequence`), optionally restricted to one or more states.
|
|
33
|
+
* - {@link JournaledBackend.readMeta} and {@link JournaledBackend.writeMeta} are an opaque
|
|
34
|
+
* key-value store; what the rows mean belongs to the sync component that writes them.
|
|
35
|
+
*
|
|
36
|
+
* This module imports no Node builtin so it bundles for the browser. The IndexedDB adapter is
|
|
37
|
+
* the shipping implementation; a test-only in-memory adapter proves the seam is not a
|
|
38
|
+
* description of that one class.
|
|
39
|
+
*/
|
|
40
|
+
/**
|
|
41
|
+
* An intent's journal state was not the one the caller expected, or the intent is gone. Settling
|
|
42
|
+
* and superseding are compare-and-swap operations on the intent's own record so two realms (a
|
|
43
|
+
* stale tab, a worker) cannot both settle or both replace one intent.
|
|
44
|
+
*/
|
|
45
|
+
export class IntentStateConflict extends Error {
|
|
46
|
+
name = "IntentStateConflict";
|
|
47
|
+
requestId;
|
|
48
|
+
expected;
|
|
49
|
+
actual;
|
|
50
|
+
constructor(requestId, expected, actual) {
|
|
51
|
+
super(actual === null
|
|
52
|
+
? `intent '${requestId}' does not exist (expected state '${expected}')`
|
|
53
|
+
: `intent '${requestId}' is '${actual}', not '${expected}'`);
|
|
54
|
+
this.requestId = requestId;
|
|
55
|
+
this.expected = expected;
|
|
56
|
+
this.actual = actual;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* A journaled write required that no unsettled intent hold its target, and one does. The local
|
|
61
|
+
* edit that intent describes would otherwise be replaced while the authority has not accepted
|
|
62
|
+
* it. The check runs inside the write's own transaction, so an intent committed while the caller
|
|
63
|
+
* was awaiting the network still holds the target.
|
|
64
|
+
*/
|
|
65
|
+
export class IntentHoldConflict extends Error {
|
|
66
|
+
name = "IntentHoldConflict";
|
|
67
|
+
target;
|
|
68
|
+
requestId;
|
|
69
|
+
state;
|
|
70
|
+
constructor(target, requestId, state) {
|
|
71
|
+
super(`'${target}' is held by intent '${requestId}' in state '${state}'`);
|
|
72
|
+
this.target = target;
|
|
73
|
+
this.requestId = requestId;
|
|
74
|
+
this.state = state;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=journaled-backend.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"journaled-backend.js","sourceRoot":"","sources":["../src/journaled-backend.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAKH;;;;GAIG;AACH,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAC1B,IAAI,GAAG,qBAAqB,CAAC;IACtC,SAAS,CAAS;IAClB,QAAQ,CAAiB;IACzB,MAAM,CAAwB;IAEvC,YAAY,SAAiB,EAAE,QAAwB,EAAE,MAA6B;QACpF,KAAK,CACH,MAAM,KAAK,IAAI;YACb,CAAC,CAAC,WAAW,SAAS,qCAAqC,QAAQ,IAAI;YACvE,CAAC,CAAC,WAAW,SAAS,SAAS,MAAM,WAAW,QAAQ,GAAG,CAC9D,CAAC;QACF,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IACzB,IAAI,GAAG,oBAAoB,CAAC;IACrC,MAAM,CAAY;IAClB,SAAS,CAAS;IAClB,KAAK,CAAiB;IAE/B,YAAY,MAAiB,EAAE,SAAiB,EAAE,KAAqB;QACrE,KAAK,CAAC,IAAI,MAAM,wBAAwB,SAAS,eAAe,KAAK,GAAG,CAAC,CAAC;QAC1E,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { InvalidInputError } from "./errors.js";
|
|
2
|
+
import type { OkfDocument } from "./types.js";
|
|
3
|
+
import type { DocumentMutationCandidate } from "./document-mutation.js";
|
|
4
|
+
export declare class KindFieldMutationConflict extends InvalidInputError {
|
|
5
|
+
}
|
|
6
|
+
export interface KindFieldMutation {
|
|
7
|
+
governs: string;
|
|
8
|
+
field: string;
|
|
9
|
+
action: "add" | "remove";
|
|
10
|
+
required?: boolean;
|
|
11
|
+
values?: string[];
|
|
12
|
+
okfVersion: "0.1" | "0.2";
|
|
13
|
+
}
|
|
14
|
+
export declare function prepareKindFieldMutation(existing: OkfDocument, input: KindFieldMutation, okfVersion: "0.1" | "0.2"): DocumentMutationCandidate;
|
|
15
|
+
//# sourceMappingURL=kind-field-mutation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kind-field-mutation.d.ts","sourceRoot":"","sources":["../src/kind-field-mutation.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAe,WAAW,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACxE,qBAAa,yBAA0B,SAAQ,iBAAiB;CAAG;AACnE,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,KAAK,GAAG,QAAQ,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,KAAK,GAAG,KAAK,CAAC;CAC3B;AA+BD,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,KAAK,GAAG,KAAK,GAAG,yBAAyB,CA4G9I"}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
/** Pure Kind schema editing. The mutation engine supplies the fresh convention. */
|
|
2
|
+
import { RESERVED_KIND_FIELD_NAMES } from "./kinds.js";
|
|
3
|
+
import { InvalidInputError } from "./errors.js";
|
|
4
|
+
export class KindFieldMutationConflict extends InvalidInputError {
|
|
5
|
+
}
|
|
6
|
+
/** Normalize a possibly-absent/malformed `fields.<list>` into a fresh string[]. */
|
|
7
|
+
function toStringList(v) {
|
|
8
|
+
return Array.isArray(v) ? v.map((x) => String(x)) : [];
|
|
9
|
+
}
|
|
10
|
+
function isRecord(value) {
|
|
11
|
+
if (typeof value !== "object" || value === null || Array.isArray(value))
|
|
12
|
+
return false;
|
|
13
|
+
const prototype = Object.getPrototypeOf(value);
|
|
14
|
+
return prototype === Object.prototype || prototype === null;
|
|
15
|
+
}
|
|
16
|
+
function hasOwn(record, key) {
|
|
17
|
+
return Object.prototype.hasOwnProperty.call(record, key);
|
|
18
|
+
}
|
|
19
|
+
function setOwn(record, key, value) {
|
|
20
|
+
Object.defineProperty(record, key, { value, enumerable: true, configurable: true, writable: true });
|
|
21
|
+
}
|
|
22
|
+
function cloneRecord(record) {
|
|
23
|
+
const clone = {};
|
|
24
|
+
for (const [key, value] of Object.entries(record))
|
|
25
|
+
setOwn(clone, key, value);
|
|
26
|
+
return clone;
|
|
27
|
+
}
|
|
28
|
+
function deleteOwn(record, key) {
|
|
29
|
+
return hasOwn(record, key) && delete record[key];
|
|
30
|
+
}
|
|
31
|
+
export function prepareKindFieldMutation(existing, input, okfVersion) {
|
|
32
|
+
if (typeof input.field !== "string" || input.field.trim() === "" || !["add", "remove"].includes(input.action))
|
|
33
|
+
throw new InvalidInputError("A Kind field mutation requires add/remove and a nonempty field name.");
|
|
34
|
+
if (input.action === "add" && RESERVED_KIND_FIELD_NAMES.includes(input.field))
|
|
35
|
+
throw new InvalidInputError(`'${input.field}' is reserved and cannot be added as a Kind field.`);
|
|
36
|
+
if (input.values !== undefined && (!Array.isArray(input.values) || input.values.length === 0 || input.values.some(value => typeof value !== "string" || value.trim() === "")))
|
|
37
|
+
throw new InvalidInputError("Kind enum values must be nonempty strings.");
|
|
38
|
+
if (input.action === "remove" && (input.required || input.values !== undefined))
|
|
39
|
+
throw new InvalidInputError("required/values apply to Kind field add, not remove.");
|
|
40
|
+
const fm = existing.frontmatter;
|
|
41
|
+
if (okfVersion !== input.okfVersion)
|
|
42
|
+
throw new KindFieldMutationConflict("The bundle format changed while editing the Kind; reload the Kind.");
|
|
43
|
+
const currentGoverns = typeof fm.governs === "string" ? fm.governs.trim() : "";
|
|
44
|
+
if (currentGoverns !== input.governs)
|
|
45
|
+
throw new KindFieldMutationConflict(`'${existing.id}' no longer governs '${input.governs}'; it now governs '${currentGoverns}'. Reload the Kind.`);
|
|
46
|
+
const fieldsObj = isRecord(fm.fields) ? cloneRecord(fm.fields) : {};
|
|
47
|
+
const required = toStringList(fieldsObj.required);
|
|
48
|
+
const optional = toStringList(fieldsObj.optional);
|
|
49
|
+
const valuesMap = hasOwn(fieldsObj, "values") && isRecord(fieldsObj.values)
|
|
50
|
+
? cloneRecord(fieldsObj.values)
|
|
51
|
+
: {};
|
|
52
|
+
const descriptionsMap = hasOwn(fieldsObj, "descriptions") && isRecord(fieldsObj.descriptions)
|
|
53
|
+
? cloneRecord(fieldsObj.descriptions)
|
|
54
|
+
: undefined;
|
|
55
|
+
const rawValueDescriptions = hasOwn(fieldsObj, "value_descriptions")
|
|
56
|
+
? fieldsObj.value_descriptions
|
|
57
|
+
: undefined;
|
|
58
|
+
let valueDescriptionsMap;
|
|
59
|
+
let valueDescriptionsChanged = false;
|
|
60
|
+
let descriptionDeleted = false;
|
|
61
|
+
if (input.action === "add") {
|
|
62
|
+
const targetList = input.required ? required : optional;
|
|
63
|
+
const otherList = input.required ? optional : required;
|
|
64
|
+
// Re-classifying an existing field (e.g. `add --required` a currently-optional field) moves it.
|
|
65
|
+
const otherIdx = otherList.indexOf(input.field);
|
|
66
|
+
if (otherIdx >= 0)
|
|
67
|
+
otherList.splice(otherIdx, 1);
|
|
68
|
+
if (!targetList.includes(input.field))
|
|
69
|
+
targetList.push(input.field);
|
|
70
|
+
if (input.values) {
|
|
71
|
+
const vals = input.values;
|
|
72
|
+
const prev = hasOwn(valuesMap, input.field) && Array.isArray(valuesMap[input.field])
|
|
73
|
+
? valuesMap[input.field].map(String)
|
|
74
|
+
: undefined;
|
|
75
|
+
// Collision-resistant comparison: `prev.join(" ") !==
|
|
76
|
+
// vals.join(" ")` conflated DIFFERENT enum lists that happen to join to the same string
|
|
77
|
+
// — e.g. ["a b","c"] and ["a","b c"] BOTH become "a b c" — so `--values "a,b c"` over an
|
|
78
|
+
// existing ["a b","c"] wrongly reported changed:false. Length + element-wise instead; no
|
|
79
|
+
// delimiter choice can ever collide.
|
|
80
|
+
const same = !!prev && prev.length === vals.length && prev.every((v, i) => v === vals[i]);
|
|
81
|
+
if (!same)
|
|
82
|
+
setOwn(valuesMap, input.field, vals);
|
|
83
|
+
if (isRecord(rawValueDescriptions) && hasOwn(rawValueDescriptions, input.field)) {
|
|
84
|
+
const rawFieldDescriptions = rawValueDescriptions[input.field];
|
|
85
|
+
if (isRecord(rawFieldDescriptions)) {
|
|
86
|
+
const retained = {};
|
|
87
|
+
for (const [value, description] of Object.entries(rawFieldDescriptions)) {
|
|
88
|
+
if (vals.includes(value))
|
|
89
|
+
setOwn(retained, value, description);
|
|
90
|
+
}
|
|
91
|
+
if (Object.keys(retained).length !== Object.keys(rawFieldDescriptions).length) {
|
|
92
|
+
valueDescriptionsMap = cloneRecord(rawValueDescriptions);
|
|
93
|
+
if (Object.keys(retained).length > 0)
|
|
94
|
+
setOwn(valueDescriptionsMap, input.field, retained);
|
|
95
|
+
else
|
|
96
|
+
deleteOwn(valueDescriptionsMap, input.field);
|
|
97
|
+
valueDescriptionsChanged = true;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
for (const list of [required, optional]) {
|
|
105
|
+
const idx = list.indexOf(input.field);
|
|
106
|
+
if (idx >= 0)
|
|
107
|
+
list.splice(idx, 1);
|
|
108
|
+
}
|
|
109
|
+
deleteOwn(valuesMap, input.field);
|
|
110
|
+
if (descriptionsMap)
|
|
111
|
+
descriptionDeleted = deleteOwn(descriptionsMap, input.field);
|
|
112
|
+
if (isRecord(rawValueDescriptions) && hasOwn(rawValueDescriptions, input.field)) {
|
|
113
|
+
const rawFieldDescriptions = rawValueDescriptions[input.field];
|
|
114
|
+
if (isRecord(rawFieldDescriptions)) {
|
|
115
|
+
valueDescriptionsMap = cloneRecord(rawValueDescriptions);
|
|
116
|
+
deleteOwn(valueDescriptionsMap, input.field);
|
|
117
|
+
valueDescriptionsChanged = true;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
// Rebuild `fields` FROM the original raw object, replacing only the three keys this command
|
|
122
|
+
// owns (required/optional/values, omitted when now-empty so the convention stays clean).
|
|
123
|
+
// Every OTHER sibling key — `terminal` today, any future declaration key — passes through
|
|
124
|
+
// VERBATIM, matching the registry's lenient-parse posture: an unrelated `kind field` edit
|
|
125
|
+
// must never destroy a declaration it doesn't understand (regression-pinned in
|
|
126
|
+
// kind.test.ts). `changed`/no-op detection is `mutateDoc`'s job (structural comparison
|
|
127
|
+
// against the existing doc, ignoring timestamp — this command never refreshes it).
|
|
128
|
+
const newFields = { ...fieldsObj };
|
|
129
|
+
if (required.length > 0)
|
|
130
|
+
newFields.required = required;
|
|
131
|
+
else
|
|
132
|
+
delete newFields.required;
|
|
133
|
+
if (optional.length > 0)
|
|
134
|
+
newFields.optional = optional;
|
|
135
|
+
else
|
|
136
|
+
delete newFields.optional;
|
|
137
|
+
if (Object.keys(valuesMap).length > 0)
|
|
138
|
+
newFields.values = valuesMap;
|
|
139
|
+
else
|
|
140
|
+
delete newFields.values;
|
|
141
|
+
if (descriptionsMap && descriptionDeleted) {
|
|
142
|
+
if (Object.keys(descriptionsMap).length > 0)
|
|
143
|
+
newFields.descriptions = descriptionsMap;
|
|
144
|
+
else
|
|
145
|
+
delete newFields.descriptions;
|
|
146
|
+
}
|
|
147
|
+
if (valueDescriptionsMap && valueDescriptionsChanged) {
|
|
148
|
+
if (Object.keys(valueDescriptionsMap).length > 0)
|
|
149
|
+
newFields.value_descriptions = valueDescriptionsMap;
|
|
150
|
+
else
|
|
151
|
+
delete newFields.value_descriptions;
|
|
152
|
+
}
|
|
153
|
+
const newFm = { ...fm };
|
|
154
|
+
if (Object.keys(newFields).length > 0)
|
|
155
|
+
newFm.fields = newFields;
|
|
156
|
+
else
|
|
157
|
+
delete newFm.fields;
|
|
158
|
+
return { frontmatter: newFm, body: existing.body };
|
|
159
|
+
}
|
|
160
|
+
//# sourceMappingURL=kind-field-mutation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kind-field-mutation.js","sourceRoot":"","sources":["../src/kind-field-mutation.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGhD,MAAM,OAAO,yBAA0B,SAAQ,iBAAiB;CAAG;AASnE,mFAAmF;AACnF,SAAS,YAAY,CAAC,CAAU;IAC9B,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACzD,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACtF,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC/C,OAAO,SAAS,KAAK,MAAM,CAAC,SAAS,IAAI,SAAS,KAAK,IAAI,CAAC;AAC9D,CAAC;AAED,SAAS,MAAM,CAAC,MAAc,EAAE,GAAgB;IAC9C,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,MAAM,CAAC,MAA+B,EAAE,GAAW,EAAE,KAAc;IAC1E,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AACtG,CAAC;AAED,SAAS,WAAW,CAAC,MAA+B;IAClD,MAAM,KAAK,GAA4B,EAAE,CAAC;IAC1C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAC7E,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,SAAS,CAAC,MAA+B,EAAE,GAAW;IAC7D,OAAO,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;AACnD,CAAC;AAGD,MAAM,UAAU,wBAAwB,CAAC,QAAqB,EAAE,KAAwB,EAAE,UAAyB;IACjH,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;QAAE,MAAM,IAAI,iBAAiB,CAAC,sEAAsE,CAAC,CAAC;IACnN,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,IAAK,yBAA+C,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,iBAAiB,CAAC,IAAI,KAAK,CAAC,KAAK,oDAAoD,CAAC,CAAC;IACvM,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAAE,MAAM,IAAI,iBAAiB,CAAC,4CAA4C,CAAC,CAAC;IACzP,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC;QAAE,MAAM,IAAI,iBAAiB,CAAC,sDAAsD,CAAC,CAAC;IACrK,MAAM,EAAE,GAAG,QAAQ,CAAC,WAAW,CAAC;IAChC,IAAI,UAAU,KAAK,KAAK,CAAC,UAAU;QAAE,MAAM,IAAI,yBAAyB,CAAC,oEAAoE,CAAC,CAAC;IAC/I,MAAM,cAAc,GAAG,OAAO,EAAE,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/E,IAAI,cAAc,KAAK,KAAK,CAAC,OAAO;QAAE,MAAM,IAAI,yBAAyB,CAAC,IAAI,QAAQ,CAAC,EAAE,wBAAwB,KAAK,CAAC,OAAO,sBAAsB,cAAc,qBAAqB,CAAC,CAAC;IACrL,MAAM,SAAS,GAAG,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACpE,MAAM,QAAQ,GAAG,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAClD,MAAM,SAAS,GACb,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC;QACvD,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC;QAC/B,CAAC,CAAC,EAAE,CAAC;IACT,MAAM,eAAe,GACnB,MAAM,CAAC,SAAS,EAAE,cAAc,CAAC,IAAI,QAAQ,CAAC,SAAS,CAAC,YAAY,CAAC;QACnE,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,YAAY,CAAC;QACrC,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,oBAAoB,GAAG,MAAM,CAAC,SAAS,EAAE,oBAAoB,CAAC;QAClE,CAAC,CAAC,SAAS,CAAC,kBAAkB;QAC9B,CAAC,CAAC,SAAS,CAAC;IACd,IAAI,oBAAyD,CAAC;IAC9D,IAAI,wBAAwB,GAAG,KAAK,CAAC;IACrC,IAAI,kBAAkB,GAAG,KAAK,CAAC;IAE/B,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;QAC3B,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;QACxD,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;QACvD,gGAAgG;QAChG,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,QAAQ,IAAI,CAAC;YAAE,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACjD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC;YAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACpE,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC;YAC1B,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAClF,CAAC,CAAE,SAAS,CAAC,KAAK,CAAC,KAAK,CAAe,CAAC,GAAG,CAAC,MAAM,CAAC;gBACnD,CAAC,CAAC,SAAS,CAAC;YACd,sDAAsD;YACtD,wFAAwF;YACxF,yFAAyF;YACzF,yFAAyF;YACzF,qCAAqC;YACrC,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1F,IAAI,CAAC,IAAI;gBAAE,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAEhD,IAAI,QAAQ,CAAC,oBAAoB,CAAC,IAAI,MAAM,CAAC,oBAAoB,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;gBAChF,MAAM,oBAAoB,GAAG,oBAAoB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC/D,IAAI,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC;oBACnC,MAAM,QAAQ,GAA4B,EAAE,CAAC;oBAC7C,KAAK,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,CAAC;wBACxE,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;4BAAE,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;oBACjE,CAAC;oBACD,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,MAAM,EAAE,CAAC;wBAC9E,oBAAoB,GAAG,WAAW,CAAC,oBAAoB,CAAC,CAAC;wBACzD,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC;4BAAE,MAAM,CAAC,oBAAoB,EAAE,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;;4BACrF,SAAS,CAAC,oBAAoB,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;wBAClD,wBAAwB,GAAG,IAAI,CAAC;oBAClC,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC;YACxC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACtC,IAAI,GAAG,IAAI,CAAC;gBAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACpC,CAAC;QACD,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,eAAe;YAAE,kBAAkB,GAAG,SAAS,CAAC,eAAe,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAClF,IAAI,QAAQ,CAAC,oBAAoB,CAAC,IAAI,MAAM,CAAC,oBAAoB,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YAChF,MAAM,oBAAoB,GAAG,oBAAoB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC/D,IAAI,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC;gBACnC,oBAAoB,GAAG,WAAW,CAAC,oBAAoB,CAAC,CAAC;gBACzD,SAAS,CAAC,oBAAoB,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC7C,wBAAwB,GAAG,IAAI,CAAC;YAClC,CAAC;QACH,CAAC;IACH,CAAC;IAGD,4FAA4F;IAC5F,yFAAyF;IACzF,0FAA0F;IAC1F,0FAA0F;IAC1F,+EAA+E;IAC/E,uFAAuF;IACvF,mFAAmF;IACnF,MAAM,SAAS,GAA4B,EAAE,GAAG,SAAS,EAAE,CAAC;IAC5D,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC;;QAClD,OAAO,SAAS,CAAC,QAAQ,CAAC;IAC/B,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC;;QAClD,OAAO,SAAS,CAAC,QAAQ,CAAC;IAC/B,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC;QAAE,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC;;QAC/D,OAAO,SAAS,CAAC,MAAM,CAAC;IAC7B,IAAI,eAAe,IAAI,kBAAkB,EAAE,CAAC;QAC1C,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,GAAG,CAAC;YAAE,SAAS,CAAC,YAAY,GAAG,eAAe,CAAC;;YACjF,OAAO,SAAS,CAAC,YAAY,CAAC;IACrC,CAAC;IACD,IAAI,oBAAoB,IAAI,wBAAwB,EAAE,CAAC;QACrD,IAAI,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,MAAM,GAAG,CAAC;YAAE,SAAS,CAAC,kBAAkB,GAAG,oBAAoB,CAAC;;YACjG,OAAO,SAAS,CAAC,kBAAkB,CAAC;IAC3C,CAAC;IACD,MAAM,KAAK,GAAgB,EAAE,GAAG,EAAE,EAAE,CAAC;IACrC,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC;QAAE,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC;;QAC3D,OAAO,KAAK,CAAC,MAAM,CAAC;IAEzB,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;AACzD,CAAC"}
|
package/dist/kinds.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kinds.d.ts","sourceRoot":"","sources":["../src/kinds.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"kinds.d.ts","sourceRoot":"","sources":["../src/kinds.ts"],"names":[],"mappings":"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"}
|
package/dist/kinds.js
CHANGED
|
@@ -908,7 +908,9 @@ export function defaultTimestampAndValidateAgainstRegistry(doc, registry, option
|
|
|
908
908
|
const kind = registry.kinds.get(String(doc.frontmatter.type));
|
|
909
909
|
const shouldDefaultTimestamp = options.okfVersion !== "0.2"
|
|
910
910
|
|| kind?.fields.required.includes("timestamp") === true;
|
|
911
|
-
if (shouldDefaultTimestamp &&
|
|
911
|
+
if (shouldDefaultTimestamp && (options.okfVersion === "0.2"
|
|
912
|
+
? !Object.hasOwn(doc.frontmatter, "timestamp")
|
|
913
|
+
: !isUsableTimestamp(doc.frontmatter.timestamp))) {
|
|
912
914
|
doc.frontmatter.timestamp = (options.now ?? (() => new Date().toISOString()))();
|
|
913
915
|
}
|
|
914
916
|
if (!kind)
|