hikoutei 0.8.73 → 0.8.74
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/application/orm/persistence/lifecycle/entityLifecycle.d.ts.map +1 -1
- package/dist/application/orm/persistence/lifecycle/entityLifecycle.js +52 -2
- package/dist/application/orm/persistence/lifecycle/entityLifecycle.js.map +1 -1
- package/dist/application/orm/persistence/projection/projectionEffects.d.ts.map +1 -1
- package/dist/application/orm/persistence/projection/projectionEffects.js +32 -0
- package/dist/application/orm/persistence/projection/projectionEffects.js.map +1 -1
- package/dist/application/orm/persistence/support/canonicalState.d.ts +19 -2
- package/dist/application/orm/persistence/support/canonicalState.d.ts.map +1 -1
- package/dist/application/orm/persistence/support/canonicalState.js +43 -8
- package/dist/application/orm/persistence/support/canonicalState.js.map +1 -1
- package/dist/infrastructure/storage/state/canonical/canonicalCommit.d.ts +18 -1
- package/dist/infrastructure/storage/state/canonical/canonicalCommit.d.ts.map +1 -1
- package/dist/infrastructure/storage/state/canonical/canonicalCommit.js +66 -3
- package/dist/infrastructure/storage/state/canonical/canonicalCommit.js.map +1 -1
- package/dist/infrastructure/storage/state/mapped/mappedPersistenceSql.d.ts +14 -0
- package/dist/infrastructure/storage/state/mapped/mappedPersistenceSql.d.ts.map +1 -1
- package/dist/infrastructure/storage/state/mapped/mappedPersistenceSql.js +31 -4
- package/dist/infrastructure/storage/state/mapped/mappedPersistenceSql.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entityLifecycle.d.ts","sourceRoot":"","sources":["../../../../../src/application/orm/persistence/lifecycle/entityLifecycle.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA0BH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kDAAkD,CAAC;AAEpF,OAAO,KAAK,EAAE,cAAc,EAA6C,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"entityLifecycle.d.ts","sourceRoot":"","sources":["../../../../../src/application/orm/persistence/lifecycle/entityLifecycle.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA0BH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kDAAkD,CAAC;AAEpF,OAAO,KAAK,EAAE,cAAc,EAA6C,MAAM,yBAAyB,CAAC;AAEzG,OAAO,KAAK,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAiCvF,8EAA8E;AAC9E,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,cAAc,EACrB,MAAM,EAAE,qBAAqB,EAC7B,IAAI,EAAE,gBAAgB,EACtB,OAAO,GAAE;IAAE,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAA;CAAO,GAC1D,OAAO,CAAC;IAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CA2ExC"}
|
|
@@ -12,8 +12,9 @@ import { SYNC_TIMING_SCOPES } from "../../../sync/telemetry/syncTiming.js";
|
|
|
12
12
|
import { SCALAR_ENTITY_CHANGE_KINDS, } from "../../../../adapter/persistence/contracts/scalar.js";
|
|
13
13
|
import { encodeTypedSheetsEntityValues, typedSheetsCanonicalEntityId, typedSheetsEntityAnchor, typedSheetsEntityRowBindingId, } from "../../mapping/entityMapping.js";
|
|
14
14
|
import { readMappedCanonicalFieldsWithSql } from "../../../../infrastructure/storage/state/mapped/mappedPersistenceSql.js";
|
|
15
|
+
import { CANONICAL_REACTIVATE_OPERATION } from "../../../../infrastructure/storage/state/canonical/canonicalCommit.js";
|
|
15
16
|
import { claimBusinessKey, retireEntityBusinessKeys, rotateBusinessKey, } from "../support/businessKeys.js";
|
|
16
|
-
import { canonicalFieldRevisions,
|
|
17
|
+
import { canonicalFieldRevisions, createRowBinding, existingCanonicalEntityId, requireActiveCanonicalEntityRevision, requireActiveRowBinding, requireAppliedCanonicalCommit, requireTombstonedCanonicalEntityRevision, tombstoneActiveRowBinding, } from "../support/canonicalState.js";
|
|
17
18
|
import { projectionEffects } from "../projection/projectionEffects.js";
|
|
18
19
|
import { countsForOperationKind, emitTiming, timingOperationKind, } from "../support/timing.js";
|
|
19
20
|
import { identifiedValue, requireChangeEntityId, requireEncodedField, } from "../support/helpers.js";
|
|
@@ -68,8 +69,12 @@ export async function applyMappedChange(sql, fence, writer, plan, options = {})
|
|
|
68
69
|
return { commitId };
|
|
69
70
|
}
|
|
70
71
|
async function createMappedEntity(sql, fence, writer, mapping, entityId, rowBindingId, anchor, encodedEntity, options) {
|
|
71
|
-
await
|
|
72
|
+
const binding = await createRowBinding(sql, mapping, rowBindingId, entityId, anchor);
|
|
72
73
|
const commitId = identifiedValue("commit", writer);
|
|
74
|
+
if (binding.kind === "reactivated") {
|
|
75
|
+
await reactivateMappedEntity(sql, fence, writer, mapping, entityId, rowBindingId, anchor, encodedEntity, commitId, options);
|
|
76
|
+
return commitId;
|
|
77
|
+
}
|
|
73
78
|
const effects = await projectionEffects(sql, writer, mapping, entityId, rowBindingId, anchor, encodedEntity, SCALAR_ENTITY_CHANGE_KINDS.INSERT, mapping.fields, commitId, POSITIVE_SAFE_INTEGER_MINIMUM, { includeUserProjection: !options.suppressUserProjection });
|
|
74
79
|
const commit = {
|
|
75
80
|
kind: ROW_OPERATIONS.INSERT,
|
|
@@ -87,6 +92,51 @@ async function createMappedEntity(sql, fence, writer, mapping, entityId, rowBind
|
|
|
87
92
|
await claimBusinessKey(sql, mapping, entityId, encodedEntity);
|
|
88
93
|
return commitId;
|
|
89
94
|
}
|
|
95
|
+
/**
|
|
96
|
+
* Resurrects an exact tombstoned canonical identity with all fields advanced.
|
|
97
|
+
*
|
|
98
|
+
* A recreate of a previously-deleted primary key CAS-updates every mapped
|
|
99
|
+
* field to `field_revision + 1` and flips the entity from tombstoned to
|
|
100
|
+
* active with `entity_revision + 1`. Effects are planned for an INSERT so
|
|
101
|
+
* System_State clears the tombstone flag and User_Input recreates the row
|
|
102
|
+
* after its delete. Binding and business-key mutations happen outside the
|
|
103
|
+
* canonical savepoint, so any stale CAS failure rolls back the whole outer
|
|
104
|
+
* flush transaction instead of leaving a half-reactivated identity.
|
|
105
|
+
*/
|
|
106
|
+
async function reactivateMappedEntity(sql, fence, writer, mapping, entityId, rowBindingId, anchor, encodedEntity, commitId, options) {
|
|
107
|
+
const tombstonedRevision = await requireTombstonedCanonicalEntityRevision(sql, mapping, entityId);
|
|
108
|
+
const fieldRevisions = await canonicalFieldRevisions(sql, entityId);
|
|
109
|
+
const fields = mapping.fields.map((field) => {
|
|
110
|
+
const expectedFieldRevision = fieldRevisions.get(field.fieldName);
|
|
111
|
+
if (expectedFieldRevision === undefined) {
|
|
112
|
+
throw new TypedSheetsOrmError(TYPED_SHEETS_ORM_ERROR_CODES.CANONICAL_COMMIT_REJECTED, `${mapping.entityName}.${field.property} has no canonical field revision to advance.`);
|
|
113
|
+
}
|
|
114
|
+
return {
|
|
115
|
+
fieldName: field.fieldName,
|
|
116
|
+
value: requireEncodedField(encodedEntity, field),
|
|
117
|
+
expectedFieldRevision: { kind: APPLICABILITY_KINDS.APPLICABLE, value: expectedFieldRevision },
|
|
118
|
+
ownership: field.ownership,
|
|
119
|
+
};
|
|
120
|
+
});
|
|
121
|
+
if (fields.length !== fieldRevisions.size) {
|
|
122
|
+
throw new TypedSheetsOrmError(TYPED_SHEETS_ORM_ERROR_CODES.CANONICAL_COMMIT_REJECTED, `${mapping.entityName}:${entityId} has ambiguous canonical field state for recreation.`);
|
|
123
|
+
}
|
|
124
|
+
const nextEntityRevision = tombstonedRevision + 1;
|
|
125
|
+
const commit = {
|
|
126
|
+
kind: CANONICAL_REACTIVATE_OPERATION,
|
|
127
|
+
entityId,
|
|
128
|
+
acceptedSnapshotHash: acceptedSnapshotHash(entityId, encodedEntity),
|
|
129
|
+
fields,
|
|
130
|
+
expectedEntityRevision: tombstonedRevision,
|
|
131
|
+
effects: [],
|
|
132
|
+
effectsFactory: async () => {
|
|
133
|
+
const canonicalFields = await readMappedCanonicalFieldsWithSql(sql, entityId);
|
|
134
|
+
return projectionEffects(sql, writer, mapping, entityId, rowBindingId, anchor, canonicalFields, SCALAR_ENTITY_CHANGE_KINDS.INSERT, mapping.fields, commitId, nextEntityRevision, { includeUserProjection: !options.suppressUserProjection });
|
|
135
|
+
},
|
|
136
|
+
};
|
|
137
|
+
await requireAppliedCanonicalCommit(sql, fence, commit);
|
|
138
|
+
await claimBusinessKey(sql, mapping, entityId, encodedEntity);
|
|
139
|
+
}
|
|
90
140
|
async function updateMappedEntity(sql, fence, writer, mapping, entityId, rowBindingId, anchor, encodedEntity, changedFields, options) {
|
|
91
141
|
await requireActiveRowBinding(sql, mapping, rowBindingId, entityId, anchor);
|
|
92
142
|
const entityRevision = await requireActiveCanonicalEntityRevision(sql, mapping, entityId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entityLifecycle.js","sourceRoot":"","sources":["../../../../../src/application/orm/persistence/lifecycle/entityLifecycle.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,cAAc,GACf,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,mBAAmB,GACpB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,6BAA6B,GAC9B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,6CAA6C,CAAC;AAGzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EACL,0BAA0B,GAC3B,MAAM,qDAAqD,CAAC;AAC7D,OAAO,EACL,6BAA6B,EAC7B,4BAA4B,EAC5B,uBAAuB,EACvB,6BAA6B,GAG9B,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,gCAAgC,EAAE,MAAM,yEAAyE,CAAC;
|
|
1
|
+
{"version":3,"file":"entityLifecycle.js","sourceRoot":"","sources":["../../../../../src/application/orm/persistence/lifecycle/entityLifecycle.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projectionEffects.d.ts","sourceRoot":"","sources":["../../../../../src/application/orm/persistence/projection/projectionEffects.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,uCAAuC,CAAC;AAK/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"projectionEffects.d.ts","sourceRoot":"","sources":["../../../../../src/application/orm/persistence/projection/projectionEffects.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,uCAAuC,CAAC;AAK/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAyB3E,OAAO,KAAK,EACV,SAAS,EACT,mBAAmB,EACnB,WAAW,EACZ,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAGL,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC3B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,qDAAqD,CAAC;AAC7D,OAAO,EAEL,KAAK,6BAA6B,EAClC,KAAK,wBAAwB,EAC7B,KAAK,kCAAkC,EACxC,MAAM,gCAAgC,CAAC;AAqBxC,mFAAmF;AACnF,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,qBAAqB,EAC7B,OAAO,EAAE,wBAAwB,EACjC,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,EACvD,UAAU,EAAE,uBAAuB,CAAC,MAAM,CAAC,EAC3C,aAAa,EAAE,SAAS,6BAA6B,EAAE,EACvD,QAAQ,EAAE,MAAM,EAChB,oBAAoB,EAAE,MAAM,EAC5B,OAAO,GAAE;IAAE,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAAO,GACzD,OAAO,CAAC,SAAS,SAAS,EAAE,CAAC,CAwI/B;AAoCD,wEAAwE;AACxE,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,wBAAwB,EACjC,UAAU,EAAE,kCAAkC,GAC7C,OAAO,CAAC,mBAAmB,CAAC,CAa9B;AAED,6EAA6E;AAC7E,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,wBAAwB,EACjC,UAAU,EAAE,kCAAkC,EAC9C,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,gBAAgB,EAC5B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,kBAAkB,CAAC,CAqF7B;AAED,iFAAiF;AACjF,wBAAsB,oCAAoC,CACxD,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,wBAAwB,EACjC,UAAU,EAAE,kCAAkC,EAC9C,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,kBAAkB,CAAC,CA2B7B"}
|
|
@@ -11,6 +11,7 @@ import { NORMALIZED_CELL_KINDS } from "../../../../shared/encoding/constants.js"
|
|
|
11
11
|
import { SYNC_PROJECTIONS } from "../../../sync/sheetsContract/constants.js";
|
|
12
12
|
import { computeSyncVisibleHash, parseSyncProjectionEffectPayload, } from "../../../sync/sheetsContract/syncSheets.js";
|
|
13
13
|
import { createCandidateReconcileEffect, createSystemProjectionEffect, createUserInputDeleteEffect, } from "../../../sync/outbound/projection/ProjectionEffectFactory.js";
|
|
14
|
+
import { EFFECT_KINDS, EFFECT_STATUSES, isRecoverableEffectErrorCode, } from "@hikoutei/ikisaki";
|
|
14
15
|
import { readMappedLatestProjectionEffectWithSql, readMappedVisibleProjectionStateWithSql, } from "../../../../infrastructure/storage/state/mapped/mappedPersistenceSql.js";
|
|
15
16
|
import { requireRegisteredSyncSheetWithSql, } from "../../../../infrastructure/storage/sync/shared/syncRegistry.js";
|
|
16
17
|
import { MAPPED_EFFECT_STATUSES, MAPPED_EFFECT_TARGET_KINDS, } from "../support/contracts.js";
|
|
@@ -131,6 +132,33 @@ export async function projectionEffects(sql, writer, mapping, entityId, rowBindi
|
|
|
131
132
|
}));
|
|
132
133
|
return effects;
|
|
133
134
|
}
|
|
135
|
+
/**
|
|
136
|
+
* Builds the recreate baseline when the newest User_Input effect is a delete.
|
|
137
|
+
*
|
|
138
|
+
* A physically deleted row must be recreated from an empty baseline: expected
|
|
139
|
+
* visible revision 0 and empty hash, with create-if-missing so the provider
|
|
140
|
+
* creates the row instead of mismatching its (gone) pre-delete hash. The
|
|
141
|
+
* stream sequence still follows the delete as predecessor + 1. Queueing is
|
|
142
|
+
* allowed while the delete is still in flight or failed recoverably; terminal
|
|
143
|
+
* unsafe states stay fail-closed.
|
|
144
|
+
*/
|
|
145
|
+
function userInputRecreateBaseline(mapping, projection, latest, streamSequence) {
|
|
146
|
+
const deletable = latest.status === EFFECT_STATUSES.PENDING ||
|
|
147
|
+
latest.status === EFFECT_STATUSES.PROCESSING ||
|
|
148
|
+
latest.status === EFFECT_STATUSES.DELIVERY_UNCERTAIN ||
|
|
149
|
+
latest.status === EFFECT_STATUSES.APPLIED ||
|
|
150
|
+
(latest.status === EFFECT_STATUSES.FAILED &&
|
|
151
|
+
isRecoverableEffectErrorCode(latest.last_error_code));
|
|
152
|
+
if (!deletable) {
|
|
153
|
+
throwProjectionBlocked(mapping, projection, `latest user_input effect is ${latest.status}`);
|
|
154
|
+
}
|
|
155
|
+
return {
|
|
156
|
+
expectedVisibleRevision: 0,
|
|
157
|
+
expectedVisibleHash: "",
|
|
158
|
+
createIfMissing: true,
|
|
159
|
+
streamSequence,
|
|
160
|
+
};
|
|
161
|
+
}
|
|
134
162
|
/** Loads and validates the registered route for a mapped projection. */
|
|
135
163
|
export async function requireMappedRoute(sql, mapping, projection) {
|
|
136
164
|
const route = await requireRegisteredSyncSheetWithSql(sql, projection.physicalSheetId);
|
|
@@ -154,6 +182,10 @@ export async function projectionBaseline(sql, mapping, projection, rowBindingId,
|
|
|
154
182
|
if (!isPositiveSafeInteger(streamSequence)) {
|
|
155
183
|
throwProjectionBlocked(mapping, projection, "projection stream sequence overflowed");
|
|
156
184
|
}
|
|
185
|
+
if (projection.projection === SYNC_PROJECTIONS.USER_INPUT &&
|
|
186
|
+
latest.effect_kind === EFFECT_KINDS.USER_INPUT_DELETE) {
|
|
187
|
+
return userInputRecreateBaseline(mapping, projection, latest, streamSequence);
|
|
188
|
+
}
|
|
157
189
|
if (latest.status === MAPPED_EFFECT_STATUSES.PENDING ||
|
|
158
190
|
latest.status === MAPPED_EFFECT_STATUSES.PROCESSING) {
|
|
159
191
|
if (!isNonNegativeSafeInteger(latest.expected_visible_revision)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projectionEffects.js","sourceRoot":"","sources":["../../../../../src/application/orm/persistence/projection/projectionEffects.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,gBAAgB,GAEjB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,wBAAwB,EACxB,6BAA6B,GAC9B,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAC7E,OAAO,EACL,sBAAsB,EACtB,gCAAgC,GACjC,MAAM,4CAA4C,CAAC;AACpD,OAAO,EACL,8BAA8B,EAC9B,4BAA4B,EAC5B,2BAA2B,GAC5B,MAAM,8DAA8D,CAAC;AACtE,OAAO,EACL,uCAAuC,EACvC,uCAAuC,GACxC,MAAM,yEAAyE,CAAC;
|
|
1
|
+
{"version":3,"file":"projectionEffects.js","sourceRoot":"","sources":["../../../../../src/application/orm/persistence/projection/projectionEffects.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,14 +8,31 @@ import { type CanonicalCommitInput } from "../../../../infrastructure/storage/st
|
|
|
8
8
|
import type { FencingContext } from "@hikoutei/ikisaki";
|
|
9
9
|
import type { SqlExecutor } from "../../../../adapter/persistence/contracts/sql.js";
|
|
10
10
|
import type { TypedSheetsEntityMapping } from "../../mapping/entityMapping.js";
|
|
11
|
-
/**
|
|
12
|
-
export
|
|
11
|
+
/** Result of preparing a mapped create's row binding. */
|
|
12
|
+
export type CreateRowBindingResult = {
|
|
13
|
+
readonly kind: "created";
|
|
14
|
+
} | {
|
|
15
|
+
readonly kind: "reactivated";
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Prepares the active row binding used by both physical projections for a
|
|
19
|
+
* mapped create.
|
|
20
|
+
*
|
|
21
|
+
* A fresh ID gets an ordinary active binding. A recreate reusing the exact
|
|
22
|
+
* tombstoned identity (same logical sheet, deterministic anchor, binding, and
|
|
23
|
+
* canonical entity ID) CAS-reactivates only the state, preserving the row's
|
|
24
|
+
* candidate epoch and physical identity. Any other existing binding, or an
|
|
25
|
+
* identity mismatch, stays a structured row-binding conflict.
|
|
26
|
+
*/
|
|
27
|
+
export declare function createRowBinding(sql: SqlExecutor, mapping: TypedSheetsEntityMapping, rowBindingId: string, entityId: string, anchor: string): Promise<CreateRowBindingResult>;
|
|
13
28
|
/** Reads an existing binding's canonical identity for legacy-compatible updates. */
|
|
14
29
|
export declare function existingCanonicalEntityId(sql: SqlExecutor, mapping: TypedSheetsEntityMapping, rowBindingId: string, anchor: string): Promise<string | undefined>;
|
|
15
30
|
/** Requires the active binding to still match the mapped entity identity. */
|
|
16
31
|
export declare function requireActiveRowBinding(sql: SqlExecutor, mapping: TypedSheetsEntityMapping, rowBindingId: string, entityId: string, anchor: string): Promise<void>;
|
|
17
32
|
/** Reads the current active canonical entity revision for an update or delete. */
|
|
18
33
|
export declare function requireActiveCanonicalEntityRevision(sql: SqlExecutor, mapping: TypedSheetsEntityMapping, entityId: string): Promise<number>;
|
|
34
|
+
/** Reads the tombstoned canonical entity revision that a reactivation must advance. */
|
|
35
|
+
export declare function requireTombstonedCanonicalEntityRevision(sql: SqlExecutor, mapping: TypedSheetsEntityMapping, entityId: string): Promise<number>;
|
|
19
36
|
/** Returns canonical field revisions indexed by field name for update CAS. */
|
|
20
37
|
export declare function canonicalFieldRevisions(sql: SqlExecutor, entityId: string): Promise<ReadonlyMap<string, number>>;
|
|
21
38
|
/** Applies a canonical commit or translates its stable result into an ORM error. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canonicalState.d.ts","sourceRoot":"","sources":["../../../../../src/application/orm/persistence/support/canonicalState.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"canonicalState.d.ts","sourceRoot":"","sources":["../../../../../src/application/orm/persistence/support/canonicalState.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,uEAAuE,CAAC;AAU/E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kDAAkD,CAAC;AACpF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAY/E,yDAAyD;AACzD,MAAM,MAAM,sBAAsB,GAC9B;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GAC5B;IAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;CAAE,CAAC;AAErC;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,wBAAwB,EACjC,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,sBAAsB,CAAC,CA2CjC;AAED,oFAAoF;AACpF,wBAAsB,yBAAyB,CAC7C,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,wBAAwB,EACjC,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAc7B;AAED,6EAA6E;AAC7E,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,wBAAwB,EACjC,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAcf;AAED,kFAAkF;AAClF,wBAAsB,oCAAoC,CACxD,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,wBAAwB,EACjC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,CASjB;AAED,uFAAuF;AACvF,wBAAsB,wCAAwC,CAC5D,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,wBAAwB,EACjC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,CAajB;AAED,8EAA8E;AAC9E,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,WAAW,EAChB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAStC;AAED,oFAAoF;AACpF,wBAAsB,6BAA6B,CACjD,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,cAAc,EACrB,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAmBf;AAED,gFAAgF;AAChF,wBAAsB,yBAAyB,CAC7C,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,wBAAwB,EACjC,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAaf"}
|
|
@@ -7,18 +7,43 @@
|
|
|
7
7
|
import { ROW_BINDING_STATES } from "../../../../domain/model/constants.js";
|
|
8
8
|
import { isPositiveSafeInteger } from "../../../../shared/validation.js";
|
|
9
9
|
import { CANONICAL_COMMIT_RESULT_KINDS, commitCanonicalChangesWithSql, } from "../../../../infrastructure/storage/state/canonical/canonicalCommit.js";
|
|
10
|
-
import { insertMappedActiveRowBindingWithSql, readMappedActiveCanonicalEntityWithSql, readMappedCanonicalFieldRevisionsWithSql, readMappedRowBindingWithSql, tombstoneMappedActiveRowBindingWithSql, } from "../../../../infrastructure/storage/state/mapped/mappedPersistenceSql.js";
|
|
10
|
+
import { insertMappedActiveRowBindingWithSql, readMappedActiveCanonicalEntityWithSql, readMappedCanonicalEntityStateWithSql, readMappedCanonicalFieldRevisionsWithSql, readMappedRowBindingWithSql, reactivateMappedTombstonedRowBindingWithSql, tombstoneMappedActiveRowBindingWithSql, } from "../../../../infrastructure/storage/state/mapped/mappedPersistenceSql.js";
|
|
11
11
|
import { TYPED_SHEETS_ORM_ERROR_CODES, TypedSheetsOrmError, } from "../../errors.js";
|
|
12
|
-
/**
|
|
13
|
-
|
|
12
|
+
/** Canonical entity lifecycle values used by mapped reactivation. */
|
|
13
|
+
const CANONICAL_ENTITY_STATUSES = {
|
|
14
|
+
ACTIVE: "active",
|
|
15
|
+
TOMBSTONED: "tombstoned",
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Prepares the active row binding used by both physical projections for a
|
|
19
|
+
* mapped create.
|
|
20
|
+
*
|
|
21
|
+
* A fresh ID gets an ordinary active binding. A recreate reusing the exact
|
|
22
|
+
* tombstoned identity (same logical sheet, deterministic anchor, binding, and
|
|
23
|
+
* canonical entity ID) CAS-reactivates only the state, preserving the row's
|
|
24
|
+
* candidate epoch and physical identity. Any other existing binding, or an
|
|
25
|
+
* identity mismatch, stays a structured row-binding conflict.
|
|
26
|
+
*/
|
|
27
|
+
export async function createRowBinding(sql, mapping, rowBindingId, entityId, anchor) {
|
|
14
28
|
const existing = await readMappedRowBindingWithSql(sql, rowBindingId);
|
|
15
|
-
if (existing
|
|
16
|
-
|
|
29
|
+
if (existing === undefined) {
|
|
30
|
+
const inserted = await insertMappedActiveRowBindingWithSql(sql, rowBindingId, mapping.logicalSheetId, anchor, entityId);
|
|
31
|
+
if (inserted.changes !== 1) {
|
|
32
|
+
throw new TypedSheetsOrmError(TYPED_SHEETS_ORM_ERROR_CODES.ROW_BINDING_CONFLICT, `could not create the row binding for ${mapping.entityName}:${entityId}.`);
|
|
33
|
+
}
|
|
34
|
+
return { kind: "created" };
|
|
17
35
|
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
36
|
+
if (existing.state === ROW_BINDING_STATES.TOMBSTONED &&
|
|
37
|
+
existing.logical_sheet_id === mapping.logicalSheetId &&
|
|
38
|
+
existing.anchor_reference === anchor &&
|
|
39
|
+
existing.entity_id === entityId) {
|
|
40
|
+
const reactivated = await reactivateMappedTombstonedRowBindingWithSql(sql, rowBindingId, mapping.logicalSheetId, anchor, entityId);
|
|
41
|
+
if (reactivated.changes !== 1) {
|
|
42
|
+
throw new TypedSheetsOrmError(TYPED_SHEETS_ORM_ERROR_CODES.ROW_BINDING_CONFLICT, `row binding ${rowBindingId} cannot be reactivated for ${mapping.entityName}:${entityId}.`);
|
|
43
|
+
}
|
|
44
|
+
return { kind: "reactivated" };
|
|
21
45
|
}
|
|
46
|
+
throw new TypedSheetsOrmError(TYPED_SHEETS_ORM_ERROR_CODES.ROW_BINDING_CONFLICT, `row binding ${rowBindingId} already exists for ${mapping.entityName}:${entityId}.`);
|
|
22
47
|
}
|
|
23
48
|
/** Reads an existing binding's canonical identity for legacy-compatible updates. */
|
|
24
49
|
export async function existingCanonicalEntityId(sql, mapping, rowBindingId, anchor) {
|
|
@@ -51,6 +76,16 @@ export async function requireActiveCanonicalEntityRevision(sql, mapping, entityI
|
|
|
51
76
|
}
|
|
52
77
|
return entity.entity_revision;
|
|
53
78
|
}
|
|
79
|
+
/** Reads the tombstoned canonical entity revision that a reactivation must advance. */
|
|
80
|
+
export async function requireTombstonedCanonicalEntityRevision(sql, mapping, entityId) {
|
|
81
|
+
const entity = await readMappedCanonicalEntityStateWithSql(sql, entityId);
|
|
82
|
+
if (entity === undefined ||
|
|
83
|
+
entity.status !== CANONICAL_ENTITY_STATUSES.TOMBSTONED ||
|
|
84
|
+
!isPositiveSafeInteger(entity.entity_revision)) {
|
|
85
|
+
throw new TypedSheetsOrmError(TYPED_SHEETS_ORM_ERROR_CODES.CANONICAL_COMMIT_REJECTED, `tombstoned canonical state is unavailable for ${mapping.entityName}:${entityId}.`);
|
|
86
|
+
}
|
|
87
|
+
return entity.entity_revision;
|
|
88
|
+
}
|
|
54
89
|
/** Returns canonical field revisions indexed by field name for update CAS. */
|
|
55
90
|
export async function canonicalFieldRevisions(sql, entityId) {
|
|
56
91
|
const rows = await readMappedCanonicalFieldRevisionsWithSql(sql, entityId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canonicalState.js","sourceRoot":"","sources":["../../../../../src/application/orm/persistence/support/canonicalState.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"canonicalState.js","sourceRoot":"","sources":["../../../../../src/application/orm/persistence/support/canonicalState.ts"],"names":[],"mappings":"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"}
|
|
@@ -69,8 +69,25 @@ export interface CanonicalDeleteCommitInput extends CanonicalCommitBase {
|
|
|
69
69
|
/** Entity revision observed with the explicit delete evidence. */
|
|
70
70
|
readonly expectedEntityRevision: number;
|
|
71
71
|
}
|
|
72
|
+
/**
|
|
73
|
+
* An internal create that resurrects an exact tombstoned canonical identity.
|
|
74
|
+
*
|
|
75
|
+
* Unlike an observation insert, every field is CAS-updated to its new
|
|
76
|
+
* normalized value with `field_revision + 1` and the entity flips from
|
|
77
|
+
* `tombstoned` to `active` with `entity_revision + 1`. This operation is not
|
|
78
|
+
* part of the public/inbound `ROW_OPERATIONS` set.
|
|
79
|
+
*/
|
|
80
|
+
export interface CanonicalReactivateCommitInput extends CanonicalCommitBase {
|
|
81
|
+
readonly kind: typeof CANONICAL_REACTIVATE_OPERATION;
|
|
82
|
+
/** Current tombstoned field revisions used by each field CAS. */
|
|
83
|
+
readonly fields: readonly CanonicalFieldWrite[];
|
|
84
|
+
/** Tombstoned entity revision observed before reactivation. */
|
|
85
|
+
readonly expectedEntityRevision: number;
|
|
86
|
+
}
|
|
72
87
|
/** A row-level canonical mutation prepared from one core evaluation result. */
|
|
73
|
-
export type CanonicalCommitInput = CanonicalFieldCommitInput | CanonicalDeleteCommitInput;
|
|
88
|
+
export type CanonicalCommitInput = CanonicalFieldCommitInput | CanonicalDeleteCommitInput | CanonicalReactivateCommitInput;
|
|
89
|
+
/** Internal canonical reactivation operation tag (not part of public ROW_OPERATIONS). */
|
|
90
|
+
export declare const CANONICAL_REACTIVATE_OPERATION: "reactivate";
|
|
74
91
|
/** Observable result of a fenced canonical commit attempt. */
|
|
75
92
|
export type CanonicalCommitResult = {
|
|
76
93
|
readonly kind: typeof CANONICAL_COMMIT_RESULT_KINDS.APPLIED;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canonicalCommit.d.ts","sourceRoot":"","sources":["../../../../../src/infrastructure/storage/state/canonical/canonicalCommit.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAEvE,OAAO,KAAK,EACV,cAAc,EACf,MAAM,uCAAuC,CAAC;AAC/C,OAAO,KAAK,EACV,aAAa,EACb,QAAQ,EACT,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAuB3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGxD,OAAO,EAEL,KAAK,SAAS,EACf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,kDAAkD,CAAC;
|
|
1
|
+
{"version":3,"file":"canonicalCommit.d.ts","sourceRoot":"","sources":["../../../../../src/infrastructure/storage/state/canonical/canonicalCommit.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,7 +18,7 @@ import { toSqlNullable } from "../../sqlite/sqlState.js";
|
|
|
18
18
|
import { FENCE_EXISTS_SQL, fenceParameters, isFencingValidWithSql, } from "@hikoutei/ikisaki";
|
|
19
19
|
// Outbound synchronization: accepted canonical changes become outbox effects.
|
|
20
20
|
import { appendPendingEffectsWithSql, } from "@hikoutei/ikisaki";
|
|
21
|
-
import { readMappedActiveCanonicalEntityWithSql, readMappedCanonicalFieldsWithSql, } from "../mapped/mappedPersistenceSql.js";
|
|
21
|
+
import { readMappedActiveCanonicalEntityWithSql, readMappedCanonicalEntityStateWithSql, readMappedCanonicalFieldsWithSql, } from "../mapped/mappedPersistenceSql.js";
|
|
22
22
|
const INSERT_CANONICAL_ENTITY_SQL = `
|
|
23
23
|
INSERT INTO entity_state (entity_id, entity_revision, accepted_snapshot_hash, status)
|
|
24
24
|
SELECT ?, 1, ?, 'active'
|
|
@@ -43,6 +43,12 @@ const UPDATE_CANONICAL_ENTITY_SQL = `
|
|
|
43
43
|
WHERE entity_id = ? AND entity_revision = ? AND status = 'active'
|
|
44
44
|
AND EXISTS (${FENCE_EXISTS_SQL})
|
|
45
45
|
`;
|
|
46
|
+
const REACTIVATE_CANONICAL_ENTITY_SQL = `
|
|
47
|
+
UPDATE entity_state
|
|
48
|
+
SET entity_revision = ?, accepted_snapshot_hash = ?, status = 'active'
|
|
49
|
+
WHERE entity_id = ? AND entity_revision = ? AND status = 'tombstoned'
|
|
50
|
+
AND EXISTS (${FENCE_EXISTS_SQL})
|
|
51
|
+
`;
|
|
46
52
|
const DELETE_CANONICAL_ENTITY_SQL = `
|
|
47
53
|
UPDATE entity_state
|
|
48
54
|
SET entity_revision = ?, accepted_snapshot_hash = ?, status = 'tombstoned'
|
|
@@ -61,6 +67,8 @@ export const CANONICAL_COMMIT_STALE_TARGETS = {
|
|
|
61
67
|
ENTITY: "entity",
|
|
62
68
|
FIELD: "field",
|
|
63
69
|
};
|
|
70
|
+
/** Internal canonical reactivation operation tag (not part of public ROW_OPERATIONS). */
|
|
71
|
+
export const CANONICAL_REACTIVATE_OPERATION = "reactivate";
|
|
64
72
|
/**
|
|
65
73
|
* Commits canonical state and outbox effects inside an already-active async
|
|
66
74
|
* SQL transaction.
|
|
@@ -82,7 +90,9 @@ export async function commitCanonicalChangesWithSql(sql, fence, input) {
|
|
|
82
90
|
? await applyInsertWithSql(sql, fence, input)
|
|
83
91
|
: input.kind === ROW_OPERATIONS.UPDATE
|
|
84
92
|
? await applyUpdateWithSql(sql, fence, input)
|
|
85
|
-
:
|
|
93
|
+
: input.kind === ROW_OPERATIONS.DELETE
|
|
94
|
+
? await applyDeleteWithSql(sql, fence, input)
|
|
95
|
+
: await applyReactivateWithSql(sql, fence, input);
|
|
86
96
|
if (result.kind !== CANONICAL_COMMIT_RESULT_KINDS.APPLIED) {
|
|
87
97
|
await rollbackSqlSavepoint(sql, "canonical_commit");
|
|
88
98
|
return result;
|
|
@@ -210,6 +220,54 @@ async function applyDeleteWithSql(sql, fence, input) {
|
|
|
210
220
|
fieldRevisions: new Map(),
|
|
211
221
|
};
|
|
212
222
|
}
|
|
223
|
+
async function applyReactivateWithSql(sql, fence, input) {
|
|
224
|
+
const entity = await readMappedCanonicalEntityStateWithSql(sql, input.entityId);
|
|
225
|
+
if (entity === undefined ||
|
|
226
|
+
entity.status !== "tombstoned" ||
|
|
227
|
+
entity.entity_revision !== input.expectedEntityRevision) {
|
|
228
|
+
return {
|
|
229
|
+
kind: CANONICAL_COMMIT_RESULT_KINDS.STALE,
|
|
230
|
+
target: CANONICAL_COMMIT_STALE_TARGETS.ENTITY,
|
|
231
|
+
fieldName: notApplicableValue(),
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
const fieldRevisions = new Map();
|
|
235
|
+
for (const field of input.fields) {
|
|
236
|
+
const expectedFieldRevision = requireApplicableRevision(field.expectedFieldRevision);
|
|
237
|
+
const result = await sql.run(UPDATE_CANONICAL_FIELD_SQL, [
|
|
238
|
+
serializeCell(field.value),
|
|
239
|
+
input.entityId,
|
|
240
|
+
field.fieldName,
|
|
241
|
+
expectedFieldRevision,
|
|
242
|
+
field.ownership,
|
|
243
|
+
...fenceParameters(fence),
|
|
244
|
+
]);
|
|
245
|
+
if (result.changes !== 1) {
|
|
246
|
+
await throwFenceIfLostWithSql(sql, fence);
|
|
247
|
+
return {
|
|
248
|
+
kind: CANONICAL_COMMIT_RESULT_KINDS.STALE,
|
|
249
|
+
target: CANONICAL_COMMIT_STALE_TARGETS.FIELD,
|
|
250
|
+
fieldName: applicableValue(field.fieldName),
|
|
251
|
+
};
|
|
252
|
+
}
|
|
253
|
+
fieldRevisions.set(field.fieldName, expectedFieldRevision + 1);
|
|
254
|
+
}
|
|
255
|
+
const nextEntityRevision = entity.entity_revision + 1;
|
|
256
|
+
const entityResult = await sql.run(REACTIVATE_CANONICAL_ENTITY_SQL, [
|
|
257
|
+
nextEntityRevision,
|
|
258
|
+
toSqlNullable(input.acceptedSnapshotHash),
|
|
259
|
+
input.entityId,
|
|
260
|
+
input.expectedEntityRevision,
|
|
261
|
+
...fenceParameters(fence),
|
|
262
|
+
]);
|
|
263
|
+
if (entityResult.changes !== 1)
|
|
264
|
+
return lostFenceOrStaleEntityWithSql(sql, fence);
|
|
265
|
+
return {
|
|
266
|
+
kind: CANONICAL_COMMIT_RESULT_KINDS.APPLIED,
|
|
267
|
+
entityRevision: nextEntityRevision,
|
|
268
|
+
fieldRevisions,
|
|
269
|
+
};
|
|
270
|
+
}
|
|
213
271
|
async function canonicalSnapshotHashWithSql(sql, entityId) {
|
|
214
272
|
const fields = await readMappedCanonicalFieldsWithSql(sql, entityId);
|
|
215
273
|
return {
|
|
@@ -230,6 +288,11 @@ function validateInput(input) {
|
|
|
230
288
|
? absentValue()
|
|
231
289
|
: presentValue("delete must have a positive expected entity revision");
|
|
232
290
|
}
|
|
291
|
+
if (input.kind === CANONICAL_REACTIVATE_OPERATION) {
|
|
292
|
+
if (!Number.isSafeInteger(input.expectedEntityRevision) || input.expectedEntityRevision < 1) {
|
|
293
|
+
return presentValue("reactivate must have a positive expected entity revision");
|
|
294
|
+
}
|
|
295
|
+
}
|
|
233
296
|
if (input.fields.length === 0)
|
|
234
297
|
return presentValue("at least one accepted field is required");
|
|
235
298
|
const fieldNames = new Set();
|
|
@@ -242,7 +305,7 @@ function validateInput(input) {
|
|
|
242
305
|
field.expectedFieldRevision.kind !== APPLICABILITY_KINDS.NOT_APPLICABLE) {
|
|
243
306
|
return presentValue("insert fields must not have an expected revision");
|
|
244
307
|
}
|
|
245
|
-
if (input.kind === ROW_OPERATIONS.UPDATE &&
|
|
308
|
+
if ((input.kind === ROW_OPERATIONS.UPDATE || input.kind === CANONICAL_REACTIVATE_OPERATION) &&
|
|
246
309
|
(field.expectedFieldRevision.kind !== APPLICABILITY_KINDS.APPLICABLE ||
|
|
247
310
|
!Number.isSafeInteger(field.expectedFieldRevision.value) ||
|
|
248
311
|
field.expectedFieldRevision.value < 1)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canonicalCommit.js","sourceRoot":"","sources":["../../../../../src/infrastructure/storage/state/canonical/canonicalCommit.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"canonicalCommit.js","sourceRoot":"","sources":["../../../../../src/infrastructure/storage/state/canonical/canonicalCommit.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,6 +20,11 @@ export interface MappedRowBindingSqlRow {
|
|
|
20
20
|
export interface MappedCanonicalEntitySqlRow {
|
|
21
21
|
readonly entity_revision: number;
|
|
22
22
|
}
|
|
23
|
+
/** Raw canonical entity revision and lifecycle returned by SQLite. */
|
|
24
|
+
export interface MappedCanonicalEntityStateSqlRow {
|
|
25
|
+
readonly entity_revision: number;
|
|
26
|
+
readonly status: string;
|
|
27
|
+
}
|
|
23
28
|
/** Raw canonical field revision returned by SQLite. */
|
|
24
29
|
export interface MappedCanonicalFieldRevisionSqlRow {
|
|
25
30
|
readonly field_name: string;
|
|
@@ -50,10 +55,12 @@ export interface MappedLatestProjectionEffectSqlRow {
|
|
|
50
55
|
readonly physical_sheet_id: string;
|
|
51
56
|
readonly projection: string;
|
|
52
57
|
readonly status: EffectStatus;
|
|
58
|
+
readonly effect_kind: string;
|
|
53
59
|
readonly payload_json: string;
|
|
54
60
|
readonly expected_visible_revision: number;
|
|
55
61
|
readonly expected_visible_hash: string;
|
|
56
62
|
readonly stream_sequence: number;
|
|
63
|
+
readonly last_error_code: string | null;
|
|
57
64
|
}
|
|
58
65
|
/** One raw unresolved active-candidate row (any owned field). */
|
|
59
66
|
export interface MappedActiveCandidateSqlRow {
|
|
@@ -67,6 +74,13 @@ export declare function readMappedRowBindingWithSql(sql: SqlExecutor, rowBinding
|
|
|
67
74
|
export declare function insertMappedActiveRowBindingWithSql(sql: SqlExecutor, rowBindingId: string, logicalSheetId: string, anchorReference: string, entityId: string): Promise<SqlMutationResult>;
|
|
68
75
|
/** Tombstones one active mapped row binding after a canonical delete. */
|
|
69
76
|
export declare function tombstoneMappedActiveRowBindingWithSql(sql: SqlExecutor, rowBindingId: string, logicalSheetId: string, entityId: string): Promise<SqlMutationResult>;
|
|
77
|
+
/**
|
|
78
|
+
* Reactivates an exactly-matching tombstoned row binding during a mapped
|
|
79
|
+
* recreate, preserving its candidate epoch and physical row identity.
|
|
80
|
+
*/
|
|
81
|
+
export declare function reactivateMappedTombstonedRowBindingWithSql(sql: SqlExecutor, rowBindingId: string, logicalSheetId: string, anchorReference: string, entityId: string): Promise<SqlMutationResult>;
|
|
82
|
+
/** Reads the current canonical entity revision and lifecycle for one entity. */
|
|
83
|
+
export declare function readMappedCanonicalEntityStateWithSql(sql: SqlExecutor, entityId: string): Promise<MappedCanonicalEntityStateSqlRow | undefined>;
|
|
70
84
|
/** Reads the active canonical entity revision used by mapped flush validation. */
|
|
71
85
|
export declare function readMappedActiveCanonicalEntityWithSql(sql: SqlExecutor, entityId: string): Promise<MappedCanonicalEntitySqlRow | undefined>;
|
|
72
86
|
/** Reads the current canonical values used for transaction-local projection payloads. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mappedPersistenceSql.d.ts","sourceRoot":"","sources":["../../../../../src/infrastructure/storage/state/mapped/mappedPersistenceSql.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAI3E,OAAO,KAAK,EACV,WAAW,EACX,iBAAiB,EAClB,MAAM,kDAAkD,CAAC;AAI1D,gDAAgD;AAChD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,wDAAwD;AACxD,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC;AAED,uDAAuD;AACvD,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED,gFAAgF;AAChF,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;CACnC;AAED,sDAAsD;AACtD,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED,qDAAqD;AACrD,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,yDAAyD;AACzD,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC;IACzC,QAAQ,CAAC,0BAA0B,EAAE,MAAM,CAAC;CAC7C;AAED,uDAAuD;AACvD,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,yBAAyB,EAAE,MAAM,CAAC;IAC3C,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"mappedPersistenceSql.d.ts","sourceRoot":"","sources":["../../../../../src/infrastructure/storage/state/mapped/mappedPersistenceSql.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,6 +25,17 @@ const TOMBSTONE_ACTIVE_ROW_BINDING_SQL = `
|
|
|
25
25
|
WHERE row_binding_id = ? AND logical_sheet_id = ? AND entity_id = ?
|
|
26
26
|
AND state = '${ROW_BINDING_STATES.ACTIVE}'
|
|
27
27
|
`;
|
|
28
|
+
const REACTIVATE_TOMBSTONED_ROW_BINDING_SQL = `
|
|
29
|
+
UPDATE row_binding
|
|
30
|
+
SET state = '${ROW_BINDING_STATES.ACTIVE}'
|
|
31
|
+
WHERE row_binding_id = ? AND logical_sheet_id = ? AND anchor_reference = ?
|
|
32
|
+
AND entity_id = ? AND state = '${ROW_BINDING_STATES.TOMBSTONED}'
|
|
33
|
+
`;
|
|
34
|
+
const READ_CANONICAL_ENTITY_SQL = `
|
|
35
|
+
SELECT entity_revision, status
|
|
36
|
+
FROM entity_state
|
|
37
|
+
WHERE entity_id = ?
|
|
38
|
+
`;
|
|
28
39
|
const READ_ACTIVE_CANONICAL_ENTITY_SQL = `
|
|
29
40
|
SELECT entity_revision
|
|
30
41
|
FROM entity_state
|
|
@@ -72,16 +83,16 @@ const READ_VISIBLE_PROJECTION_STATE_SQL = `
|
|
|
72
83
|
WHERE physical_sheet_id = ? AND projection = ? AND row_binding_id = ?
|
|
73
84
|
`;
|
|
74
85
|
const READ_LATEST_PROJECTION_EFFECT_SQL = `
|
|
75
|
-
SELECT effect_id, physical_sheet_id, projection, status, payload_json,
|
|
76
|
-
expected_visible_revision, expected_visible_hash, stream_sequence
|
|
86
|
+
SELECT effect_id, physical_sheet_id, projection, status, effect_kind, payload_json,
|
|
87
|
+
expected_visible_revision, expected_visible_hash, stream_sequence, last_error_code
|
|
77
88
|
FROM sheet_effect_outbox
|
|
78
89
|
WHERE logical_sheet_id = ? AND target_kind = ? AND target_id = ?
|
|
79
90
|
ORDER BY stream_sequence DESC
|
|
80
91
|
LIMIT 1
|
|
81
92
|
`;
|
|
82
93
|
const READ_LATEST_APPLIED_PROJECTION_EFFECT_SQL = `
|
|
83
|
-
SELECT effect_id, physical_sheet_id, projection, status, payload_json,
|
|
84
|
-
expected_visible_revision, expected_visible_hash, stream_sequence
|
|
94
|
+
SELECT effect_id, physical_sheet_id, projection, status, effect_kind, payload_json,
|
|
95
|
+
expected_visible_revision, expected_visible_hash, stream_sequence, last_error_code
|
|
85
96
|
FROM sheet_effect_outbox
|
|
86
97
|
WHERE logical_sheet_id = ? AND target_kind = ? AND target_id = ?
|
|
87
98
|
AND status = 'applied'
|
|
@@ -121,6 +132,22 @@ export function tombstoneMappedActiveRowBindingWithSql(sql, rowBindingId, logica
|
|
|
121
132
|
entityId,
|
|
122
133
|
]);
|
|
123
134
|
}
|
|
135
|
+
/**
|
|
136
|
+
* Reactivates an exactly-matching tombstoned row binding during a mapped
|
|
137
|
+
* recreate, preserving its candidate epoch and physical row identity.
|
|
138
|
+
*/
|
|
139
|
+
export function reactivateMappedTombstonedRowBindingWithSql(sql, rowBindingId, logicalSheetId, anchorReference, entityId) {
|
|
140
|
+
return sql.run(REACTIVATE_TOMBSTONED_ROW_BINDING_SQL, [
|
|
141
|
+
rowBindingId,
|
|
142
|
+
logicalSheetId,
|
|
143
|
+
anchorReference,
|
|
144
|
+
entityId,
|
|
145
|
+
]);
|
|
146
|
+
}
|
|
147
|
+
/** Reads the current canonical entity revision and lifecycle for one entity. */
|
|
148
|
+
export function readMappedCanonicalEntityStateWithSql(sql, entityId) {
|
|
149
|
+
return sql.get(READ_CANONICAL_ENTITY_SQL, [entityId]);
|
|
150
|
+
}
|
|
124
151
|
/** Reads the active canonical entity revision used by mapped flush validation. */
|
|
125
152
|
export function readMappedActiveCanonicalEntityWithSql(sql, entityId) {
|
|
126
153
|
return sql.get(READ_ACTIVE_CANONICAL_ENTITY_SQL, [entityId]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mappedPersistenceSql.js","sourceRoot":"","sources":["../../../../../src/infrastructure/storage/state/mapped/mappedPersistenceSql.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EACL,kBAAkB,GACnB,MAAM,uCAAuC,CAAC;AAK/C,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;
|
|
1
|
+
{"version":3,"file":"mappedPersistenceSql.js","sourceRoot":"","sources":["../../../../../src/infrastructure/storage/state/mapped/mappedPersistenceSql.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hikoutei",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.74",
|
|
4
4
|
"description": "Typed repository and safe write layer for Google Sheets-backed MVPs. SQLite-authoritative entity lifecycle with asynchronous Google Sheets projection.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|