@seedprotocol/sdk 0.7.0 → 0.7.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/{BasePathResolver-ndE8XTpw.js → BasePathResolver-DRT09oVv.js} +2 -2
- package/dist/{BasePathResolver-ndE8XTpw.js.map → BasePathResolver-DRT09oVv.js.map} +1 -1
- package/dist/{ClientManager-DLleL_2e.js → ClientManager-DngaZdw6.js} +20 -20
- package/dist/{ClientManager-DLleL_2e.js.map → ClientManager-DngaZdw6.js.map} +1 -1
- package/dist/{Item-zBFWQDU9.js → Item-ZUAmf943.js} +118 -72
- package/dist/{Item-zBFWQDU9.js.map → Item-ZUAmf943.js.map} +1 -1
- package/dist/{ModelProperty-lth9L37R.js → ModelProperty-6llK4MTH.js} +64 -35
- package/dist/ModelProperty-6llK4MTH.js.map +1 -0
- package/dist/{Schema-DOhlrQ-N.js → Schema-D-Ud-XYw.js} +106 -57
- package/dist/Schema-D-Ud-XYw.js.map +1 -0
- package/dist/{SchemaValidationService-DDKr5piy.js → SchemaValidationService-IoS7JquP.js} +7 -7
- package/dist/{SchemaValidationService-DDKr5piy.js.map → SchemaValidationService-IoS7JquP.js.map} +1 -1
- package/dist/{backfillMetadataPropertyIds-fG3ujaSh.js → backfillMetadataPropertyIds-BlVeE7w7.js} +4 -4
- package/dist/{backfillMetadataPropertyIds-fG3ujaSh.js.map → backfillMetadataPropertyIds-BlVeE7w7.js.map} +1 -1
- package/dist/cjs/{ModelProperty-BEsIHAjk.js → ModelProperty-Dv7AQfmQ.js} +59 -30
- package/dist/cjs/ModelProperty-Dv7AQfmQ.js.map +1 -0
- package/dist/cjs/{Schema-qEp5mH1N.js → Schema-BHVp1g-M.js} +93 -44
- package/dist/cjs/Schema-BHVp1g-M.js.map +1 -0
- package/dist/cjs/{SchemaValidationService-CWEnZmOH.js → SchemaValidationService-BSU9knjf.js} +2 -2
- package/dist/cjs/{SchemaValidationService-CWEnZmOH.js.map → SchemaValidationService-BSU9knjf.js.map} +1 -1
- package/dist/cjs/{backfillMetadataPropertyIds-tw8JGMT0.js → backfillMetadataPropertyIds-WIovQ_d8.js} +3 -3
- package/dist/cjs/{backfillMetadataPropertyIds-tw8JGMT0.js.map → backfillMetadataPropertyIds-WIovQ_d8.js.map} +1 -1
- package/dist/cjs/{eas-CLiV2Hmn.js → eas-CUYXdr2t.js} +3 -3
- package/dist/cjs/{eas-CLiV2Hmn.js.map → eas-CUYXdr2t.js.map} +1 -1
- package/dist/cjs/{getItem-DSRtx_68.js → getItem-z1tHu0hu.js} +2 -2
- package/dist/cjs/{getItem-DSRtx_68.js.map → getItem-z1tHu0hu.js.map} +1 -1
- package/dist/cjs/{getLatestVersionRow-DVizNNoI.js → getLatestVersionRow-CcaabxIW.js} +2 -2
- package/dist/cjs/{getLatestVersionRow-DVizNNoI.js.map → getLatestVersionRow-CcaabxIW.js.map} +1 -1
- package/dist/cjs/{getPublishPayload-D5-dYtNq.js → getPublishPayload-CEP_e-Kv.js} +160 -204
- package/dist/cjs/getPublishPayload-CEP_e-Kv.js.map +1 -0
- package/dist/cjs/{getPublishUploads-B5Lq6q-_.js → getPublishUploads-Ctn5k1k6.js} +49 -10
- package/dist/cjs/getPublishUploads-Ctn5k1k6.js.map +1 -0
- package/dist/cjs/{index-C66AfYDG.js → index-Cvvt0-5B.js} +244 -87
- package/dist/cjs/index-Cvvt0-5B.js.map +1 -0
- package/dist/cjs/{index-B3UDbm1C.js → index-DfGhF1dc.js} +3 -3
- package/dist/cjs/index-DfGhF1dc.js.map +1 -0
- package/dist/cjs/{property-BVJIP7SX.js → property-DbEPQ1m9.js} +5 -5
- package/dist/cjs/{property-BVJIP7SX.js.map → property-DbEPQ1m9.js.map} +1 -1
- package/dist/cjs/publishDraftGraph-C38gf302.js +403 -0
- package/dist/cjs/publishDraftGraph-C38gf302.js.map +1 -0
- package/dist/cjs/{resetAmbiguousLegacyItemData-BaZqUui9.js → resetAmbiguousLegacyItemData-CfMhRHwK.js} +2 -2
- package/dist/cjs/{resetAmbiguousLegacyItemData-BaZqUui9.js.map → resetAmbiguousLegacyItemData-CfMhRHwK.js.map} +1 -1
- package/dist/cjs/{resolveModelForSyncedSeed-CC6dQctx.js → resolveModelForSyncedSeed-CNYaLOir.js} +2 -2
- package/dist/cjs/{resolveModelForSyncedSeed-CC6dQctx.js.map → resolveModelForSyncedSeed-CNYaLOir.js.map} +1 -1
- package/dist/cjs/{syncDbWithEas-Dk96sAG-.js → syncDbWithEas-d1iOdTTI.js} +20 -7
- package/dist/cjs/{syncDbWithEas-Dk96sAG-.js.map → syncDbWithEas-d1iOdTTI.js.map} +1 -1
- package/dist/{configurePlatform-BMoPG9vY.js → configurePlatform-CZpjyuCo.js} +4 -4
- package/dist/{configurePlatform-BMoPG9vY.js.map → configurePlatform-CZpjyuCo.js.map} +1 -1
- package/dist/{db-BJZN0a0a.js → db-Lw0KVZmc.js} +11 -11
- package/dist/{db-BJZN0a0a.js.map → db-Lw0KVZmc.js.map} +1 -1
- package/dist/{eas-B0hsMLqt.js → eas-CQ-Smzk2.js} +6 -6
- package/dist/{eas-B0hsMLqt.js.map → eas-CQ-Smzk2.js.map} +1 -1
- package/dist/{getItem-DEh4WfHG.js → getItem-CSfSok9f.js} +5 -5
- package/dist/{getItem-DEh4WfHG.js.map → getItem-CSfSok9f.js.map} +1 -1
- package/dist/{getLatestVersionRow-Brrl1AnW.js → getLatestVersionRow-72Atl9vB.js} +5 -5
- package/dist/{getLatestVersionRow-Brrl1AnW.js.map → getLatestVersionRow-72Atl9vB.js.map} +1 -1
- package/dist/{getPublishPayload-H032DHC7.js → getPublishPayload-76_KfB5Y.js} +155 -200
- package/dist/getPublishPayload-76_KfB5Y.js.map +1 -0
- package/dist/{getPublishUploads-CR66RlGJ.js → getPublishUploads-CqgMBD8f.js} +52 -13
- package/dist/getPublishUploads-CqgMBD8f.js.map +1 -0
- package/dist/{index-B0LgJblD.js → index-5b3JsS55.js} +2 -2
- package/dist/index-5b3JsS55.js.map +1 -0
- package/dist/{index-6bJuv5Tt.js → index-BpgD305l.js} +9 -9
- package/dist/{index-6bJuv5Tt.js.map → index-BpgD305l.js.map} +1 -1
- package/dist/{index-DtfjeuxC.js → index-Y-yYyRBf.js} +166 -75
- package/dist/index-Y-yYyRBf.js.map +1 -0
- package/dist/{index.browser-CNrqhvEA.js → index.browser-DaTzn79x.js} +9 -9
- package/dist/{index.browser-CNrqhvEA.js.map → index.browser-DaTzn79x.js.map} +1 -1
- package/dist/{index.node-DrHiTuOr.js → index.node-NYKqFOoe.js} +5 -5
- package/dist/{index.node-DrHiTuOr.js.map → index.node-NYKqFOoe.js.map} +1 -1
- package/dist/main.cjs +1 -1
- package/dist/main.js +257 -181
- package/dist/main.js.map +1 -1
- package/dist/node.js +12 -12
- package/dist/platform.browser.js +5 -5
- package/dist/platform.node.js +3 -3
- package/dist/{property-D2Nnsmm1.js → property-ByaiSyUK.js} +10 -10
- package/dist/{property-D2Nnsmm1.js.map → property-ByaiSyUK.js.map} +1 -1
- package/dist/publishDraftGraph-BRm6Pq3Q.js +405 -0
- package/dist/publishDraftGraph-BRm6Pq3Q.js.map +1 -0
- package/dist/{resetAmbiguousLegacyItemData-BqbHNUYk.js → resetAmbiguousLegacyItemData-B4dX6ZA1.js} +2 -2
- package/dist/{resetAmbiguousLegacyItemData-BqbHNUYk.js.map → resetAmbiguousLegacyItemData-B4dX6ZA1.js.map} +1 -1
- package/dist/{resolveModelForSyncedSeed-DQK6JfXS.js → resolveModelForSyncedSeed-B0tco3zG.js} +2 -2
- package/dist/{resolveModelForSyncedSeed-DQK6JfXS.js.map → resolveModelForSyncedSeed-B0tco3zG.js.map} +1 -1
- package/dist/src/Item/Item.d.ts +11 -0
- package/dist/src/Item/Item.d.ts.map +1 -1
- package/dist/src/ItemProperty/ItemProperty.d.ts +10 -0
- package/dist/src/ItemProperty/ItemProperty.d.ts.map +1 -1
- package/dist/src/Model/Model.d.ts +15 -2
- package/dist/src/Model/Model.d.ts.map +1 -1
- package/dist/src/Model/service/actors/createModelProperties.d.ts.map +1 -1
- package/dist/src/Model/service/actors/loadOrCreateModel.d.ts.map +1 -1
- package/dist/src/Model/service/actors/validateModel.d.ts.map +1 -1
- package/dist/src/Model/service/modelMachine.d.ts.map +1 -1
- package/dist/src/ModelProperty/ModelProperty.d.ts +9 -1
- package/dist/src/ModelProperty/ModelProperty.d.ts.map +1 -1
- package/dist/src/ModelProperty/service/actors/compareAndMarkDraft.d.ts.map +1 -1
- package/dist/src/ModelProperty/service/actors/saveToSchema.d.ts.map +1 -1
- package/dist/src/ModelProperty/service/actors/validateProperty.d.ts.map +1 -1
- package/dist/src/Schema/Schema.d.ts +7 -0
- package/dist/src/Schema/Schema.d.ts.map +1 -1
- package/dist/src/Schema/service/actors/checkExistingSchema.d.ts.map +1 -1
- package/dist/src/Schema/service/actors/createModelInstances.d.ts.map +1 -1
- package/dist/src/Schema/service/actors/loadOrCreateSchema.d.ts.map +1 -1
- package/dist/src/db/read/getPublishPayload.d.ts +9 -0
- package/dist/src/db/read/getPublishPayload.d.ts.map +1 -1
- package/dist/src/db/read/getPublishUploads.d.ts +5 -0
- package/dist/src/db/read/getPublishUploads.d.ts.map +1 -1
- package/dist/src/db/read/publishDraftGraph.d.ts +57 -0
- package/dist/src/db/read/publishDraftGraph.d.ts.map +1 -0
- package/dist/src/db/read/summarizePublishWork.d.ts.map +1 -1
- package/dist/src/helpers/entity/entityLiveQuery.d.ts.map +1 -1
- package/dist/src/helpers/entity/evictionEpoch.d.ts +18 -0
- package/dist/src/helpers/entity/evictionEpoch.d.ts.map +1 -0
- package/dist/src/helpers/htmlEmbeddedDataUriPublish.d.ts +28 -6
- package/dist/src/helpers/htmlEmbeddedDataUriPublish.d.ts.map +1 -1
- package/dist/src/index.d.ts +2 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/services/write/actors/validateEntity.d.ts.map +1 -1
- package/dist/src/types/item.d.ts +7 -8
- package/dist/src/types/item.d.ts.map +1 -1
- package/dist/{syncDbWithEas-LRKr_NZF.js → syncDbWithEas-BPap9Sru.js} +14 -14
- package/dist/{syncDbWithEas-LRKr_NZF.js.map → syncDbWithEas-BPap9Sru.js.map} +1 -1
- package/dist/{tabEvents-DYI2GU7i.js → tabEvents-C6NXS6Jl.js} +6 -6
- package/dist/{tabEvents-DYI2GU7i.js.map → tabEvents-C6NXS6Jl.js.map} +1 -1
- package/dist/{tolerantWebAccess-CzOBz5M6.js → tolerantWebAccess-NBQ1NB4i.js} +6 -6
- package/dist/{tolerantWebAccess-CzOBz5M6.js.map → tolerantWebAccess-NBQ1NB4i.js.map} +1 -1
- package/dist/{updateSeedRevokedAt-B58ORbY3.js → updateSeedRevokedAt-CYwgVNlM.js} +3 -3
- package/dist/{updateSeedRevokedAt-B58ORbY3.js.map → updateSeedRevokedAt-CYwgVNlM.js.map} +1 -1
- package/package.json +8 -10
- package/dist/ModelProperty-lth9L37R.js.map +0 -1
- package/dist/Schema-DOhlrQ-N.js.map +0 -1
- package/dist/cjs/ModelProperty-BEsIHAjk.js.map +0 -1
- package/dist/cjs/Schema-qEp5mH1N.js.map +0 -1
- package/dist/cjs/getPublishPayload-D5-dYtNq.js.map +0 -1
- package/dist/cjs/getPublishUploads-B5Lq6q-_.js.map +0 -1
- package/dist/cjs/getSegmentedItemProperties-giHO7R3d.js +0 -147
- package/dist/cjs/getSegmentedItemProperties-giHO7R3d.js.map +0 -1
- package/dist/cjs/index-B3UDbm1C.js.map +0 -1
- package/dist/cjs/index-C66AfYDG.js.map +0 -1
- package/dist/getPublishPayload-H032DHC7.js.map +0 -1
- package/dist/getPublishUploads-CR66RlGJ.js.map +0 -1
- package/dist/getSegmentedItemProperties-C2EJ2G0N.js +0 -147
- package/dist/getSegmentedItemProperties-C2EJ2G0N.js.map +0 -1
- package/dist/index-B0LgJblD.js.map +0 -1
- package/dist/index-DtfjeuxC.js.map +0 -1
- package/dist/src/browser/helpers/index.d.ts +0 -4
- package/dist/src/browser/helpers/index.d.ts.map +0 -1
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { fromCallback, setup, assign, createActor } from 'xstate';
|
|
2
2
|
import 'reflect-metadata';
|
|
3
|
-
import { w as writeProcessMachine,
|
|
4
|
-
import { x as getModelIdByFileId, n as normalizeDataType, y as getModelId } from './db-
|
|
3
|
+
import { i as isActorStopped, w as writeProcessMachine, c as currentEvictionEpoch, M as Model, b as anyEvictionSince, s as schemaEvictedSince } from './index-Y-yYyRBf.js';
|
|
4
|
+
import { x as getModelIdByFileId, n as normalizeDataType, y as getModelId } from './db-Lw0KVZmc.js';
|
|
5
5
|
import 'pluralize';
|
|
6
|
-
import { B as BaseDb,
|
|
6
|
+
import { B as BaseDb, j as models, p as properties, s as schemas, g as modelSchemas, a as BaseFileManager } from './BasePathResolver-DRT09oVv.js';
|
|
7
7
|
import { eq, and } from 'drizzle-orm';
|
|
8
8
|
import { modelPropertiesToObject } from './model-DGMe-TTm.js';
|
|
9
9
|
import debug from 'debug';
|
|
10
|
-
import './tabEvents-
|
|
11
|
-
import { S as Schema } from './Schema-
|
|
12
|
-
import { j as waitForEntityIdle, k as createReactiveProxy, m as findEntity, n as forceRemoveFromCaches, o as runDestroyLifecycle } from './Item-
|
|
10
|
+
import './tabEvents-C6NXS6Jl.js';
|
|
11
|
+
import { S as Schema } from './Schema-D-Ud-XYw.js';
|
|
12
|
+
import { j as waitForEntityIdle, k as createReactiveProxy, m as findEntity, n as forceRemoveFromCaches, o as runDestroyLifecycle } from './Item-ZUAmf943.js';
|
|
13
13
|
import { generateId } from './generateId-BopUwD8F.js';
|
|
14
|
-
import './ClientManager-
|
|
14
|
+
import './ClientManager-DngaZdw6.js';
|
|
15
15
|
import '@seedprotocol/arweave';
|
|
16
16
|
import '@seedprotocol/eas';
|
|
17
17
|
import '@noble/hashes/sha3';
|
|
@@ -23,7 +23,7 @@ import '@sinclair/typebox';
|
|
|
23
23
|
import 'drizzle-orm/sqlite-core';
|
|
24
24
|
import 'nanoid';
|
|
25
25
|
import 'nanoid-dictionary';
|
|
26
|
-
import './SchemaValidationService-
|
|
26
|
+
import './SchemaValidationService-IoS7JquP.js';
|
|
27
27
|
import '@sinclair/typebox/value';
|
|
28
28
|
import 'rxjs';
|
|
29
29
|
|
|
@@ -35,14 +35,14 @@ const logger$3 = debug('seedSdk:modelProperty:actors:saveToSchema');
|
|
|
35
35
|
*/
|
|
36
36
|
async function getSchemaNameFromModel(modelName) {
|
|
37
37
|
// Get the latest schema files and find which one contains this model
|
|
38
|
-
const _mod_0 = await import('./ClientManager-
|
|
38
|
+
const _mod_0 = await import('./ClientManager-DngaZdw6.js');
|
|
39
39
|
const _ns_0 = _mod_0.G;
|
|
40
40
|
const schemaHelpersMod = _ns_0;
|
|
41
41
|
const { listLatestSchemaFiles } = schemaHelpersMod;
|
|
42
42
|
const latestSchemas = await listLatestSchemaFiles();
|
|
43
43
|
for (const schema of latestSchemas) {
|
|
44
44
|
try {
|
|
45
|
-
const _mod_1 = await import('./BasePathResolver-
|
|
45
|
+
const _mod_1 = await import('./BasePathResolver-DRT09oVv.js');
|
|
46
46
|
const _ns_1 = _mod_1.O;
|
|
47
47
|
const fileManagerMod = _ns_1;
|
|
48
48
|
const { BaseFileManager } = fileManagerMod;
|
|
@@ -59,10 +59,10 @@ async function getSchemaNameFromModel(modelName) {
|
|
|
59
59
|
}
|
|
60
60
|
return undefined;
|
|
61
61
|
}
|
|
62
|
-
const saveToSchema = fromCallback(({ sendBack, input: { context } }) => {
|
|
62
|
+
const saveToSchema = fromCallback(({ sendBack, input: { context }, self }) => {
|
|
63
63
|
const _saveToSchema = async () => {
|
|
64
64
|
// Use dynamic import to break circular dependency
|
|
65
|
-
const validationServiceMod = await import('./SchemaValidationService-
|
|
65
|
+
const validationServiceMod = await import('./SchemaValidationService-IoS7JquP.js');
|
|
66
66
|
const { SchemaValidationService } = validationServiceMod;
|
|
67
67
|
const validationService = new SchemaValidationService();
|
|
68
68
|
// Validate property structure before saving
|
|
@@ -81,7 +81,7 @@ const saveToSchema = fromCallback(({ sendBack, input: { context } }) => {
|
|
|
81
81
|
throw new Error(`Model not found for modelId: ${context.modelId}`);
|
|
82
82
|
}
|
|
83
83
|
// Persist to database only - schema file is updated only when user calls Schema.saveNewVersion()
|
|
84
|
-
const _mod_2 = await import('./db-
|
|
84
|
+
const _mod_2 = await import('./db-Lw0KVZmc.js');
|
|
85
85
|
const _ns_2 = _mod_2.Z;
|
|
86
86
|
const dbMod = _ns_2;
|
|
87
87
|
const { savePropertyToDb } = dbMod;
|
|
@@ -89,10 +89,13 @@ const saveToSchema = fromCallback(({ sendBack, input: { context } }) => {
|
|
|
89
89
|
// Mark schema as draft so user knows to save
|
|
90
90
|
const schemaName = context._schemaName ?? (await getSchemaNameFromModel(context.modelName));
|
|
91
91
|
if (schemaName) {
|
|
92
|
-
const _mod_3 = await import('./Schema-
|
|
92
|
+
const _mod_3 = await import('./Schema-D-Ud-XYw.js');
|
|
93
93
|
const _ns_3 = _mod_3.b;
|
|
94
94
|
const schemaMod = _ns_3;
|
|
95
95
|
const { Schema } = schemaMod;
|
|
96
|
+
// Stopped meanwhile (unloaded, or evicted with its schema): don't load the schema again
|
|
97
|
+
if (isActorStopped(self))
|
|
98
|
+
return;
|
|
96
99
|
const schema = Schema.create(schemaName, { waitForReady: false });
|
|
97
100
|
schema.getService().send({
|
|
98
101
|
type: 'markAsDraft',
|
|
@@ -113,7 +116,7 @@ const saveToSchema = fromCallback(({ sendBack, input: { context } }) => {
|
|
|
113
116
|
});
|
|
114
117
|
|
|
115
118
|
const logger$2 = debug('seedSdk:modelProperty:actors:compareAndMarkDraft');
|
|
116
|
-
const compareAndMarkDraft = fromCallback(({ sendBack, input: { context } }) => {
|
|
119
|
+
const compareAndMarkDraft = fromCallback(({ sendBack, input: { context }, self }) => {
|
|
117
120
|
const _compareAndMarkDraft = async () => {
|
|
118
121
|
// Fill modelName/dataType from _originalValues when missing, then from DB by schemaFileId
|
|
119
122
|
let fullContext = {
|
|
@@ -124,7 +127,7 @@ const compareAndMarkDraft = fromCallback(({ sendBack, input: { context } }) => {
|
|
|
124
127
|
const schemaFileIdForResolve = fullContext._propertyFileId || (typeof fullContext.id === 'string' ? fullContext.id : undefined);
|
|
125
128
|
if (schemaFileIdForResolve && (fullContext.modelName === undefined || fullContext.dataType === undefined)) {
|
|
126
129
|
try {
|
|
127
|
-
const _mod_4 = await import('./db-
|
|
130
|
+
const _mod_4 = await import('./db-Lw0KVZmc.js');
|
|
128
131
|
const _ns_4 = _mod_4.Z;
|
|
129
132
|
const dbMod = _ns_4;
|
|
130
133
|
const { getPropertyModelNameAndDataType, getModelNameByModelId } = dbMod;
|
|
@@ -171,7 +174,7 @@ const compareAndMarkDraft = fromCallback(({ sendBack, input: { context } }) => {
|
|
|
171
174
|
if (fullContext.modelName && fullContext.name && schemaFileId) {
|
|
172
175
|
logger$2(`[compareAndMarkDraft] _originalValues not set, but saving to database anyway for property ${context.modelName}:${context.name} (schemaFileId: ${schemaFileId})`);
|
|
173
176
|
try {
|
|
174
|
-
const _mod_5 = await import('./db-
|
|
177
|
+
const _mod_5 = await import('./db-Lw0KVZmc.js');
|
|
175
178
|
const _ns_5 = _mod_5.Z;
|
|
176
179
|
const dbMod = _ns_5;
|
|
177
180
|
const { savePropertyToDb } = dbMod;
|
|
@@ -233,7 +236,7 @@ const compareAndMarkDraft = fromCallback(({ sendBack, input: { context } }) => {
|
|
|
233
236
|
logger$2(`Property ${fullContext.modelName}:${fullContext.name} has changes, marking as edited`);
|
|
234
237
|
logger$2(`[compareAndMarkDraft] Context when saving: id=${fullContext.id}, _propertyFileId=${fullContext._propertyFileId}, name=${fullContext.name}, _originalValues.name=${fullContext._originalValues?.name}`);
|
|
235
238
|
// Use dynamic import to break circular dependency
|
|
236
|
-
const _mod_6 = await import('./db-
|
|
239
|
+
const _mod_6 = await import('./db-Lw0KVZmc.js');
|
|
237
240
|
const _ns_6 = _mod_6.Z;
|
|
238
241
|
const dbMod = _ns_6;
|
|
239
242
|
const { savePropertyToDb } = dbMod;
|
|
@@ -249,10 +252,13 @@ const compareAndMarkDraft = fromCallback(({ sendBack, input: { context } }) => {
|
|
|
249
252
|
// Mark schema as draft if schema name is available
|
|
250
253
|
if (fullContext._schemaName) {
|
|
251
254
|
// Get the Schema instance and mark it as draft
|
|
252
|
-
const _mod_7 = await import('./Schema-
|
|
255
|
+
const _mod_7 = await import('./Schema-D-Ud-XYw.js');
|
|
253
256
|
const _ns_7 = _mod_7.b;
|
|
254
257
|
const schemaMod = _ns_7;
|
|
255
258
|
const { Schema } = schemaMod;
|
|
259
|
+
// Stopped meanwhile (unloaded, or evicted with its schema): don't load the schema again
|
|
260
|
+
if (isActorStopped(self))
|
|
261
|
+
return;
|
|
256
262
|
const schema = Schema.create(fullContext._schemaName, {
|
|
257
263
|
waitForReady: false,
|
|
258
264
|
});
|
|
@@ -268,7 +274,7 @@ const compareAndMarkDraft = fromCallback(({ sendBack, input: { context } }) => {
|
|
|
268
274
|
logger$2(`Property ${fullContext.modelName}:${fullContext.name} has no changes`);
|
|
269
275
|
// Clear isEdited flag in database
|
|
270
276
|
try {
|
|
271
|
-
const _mod_8 = await import('./index-
|
|
277
|
+
const _mod_8 = await import('./index-5b3JsS55.js');
|
|
272
278
|
const _ns_8 = _mod_8.s;
|
|
273
279
|
const seedSchemaMod = _ns_8;
|
|
274
280
|
const { properties: propertiesTable, models: modelsTable } = seedSchemaMod;
|
|
@@ -277,7 +283,7 @@ const compareAndMarkDraft = fromCallback(({ sendBack, input: { context } }) => {
|
|
|
277
283
|
const db = BaseDb.getAppDb();
|
|
278
284
|
if (db && fullContext.modelName && fullContext.name) {
|
|
279
285
|
// Find this property's model (model names are only unique per schema)
|
|
280
|
-
const _mod_9 = await import('./db-
|
|
286
|
+
const _mod_9 = await import('./db-Lw0KVZmc.js');
|
|
281
287
|
const _ns_9 = _mod_9.Y;
|
|
282
288
|
const { resolveModelRecord } = _ns_9;
|
|
283
289
|
const modelRecord = await resolveModelRecord(fullContext.modelName, {
|
|
@@ -323,7 +329,7 @@ const compareAndMarkDraft = fromCallback(({ sendBack, input: { context } }) => {
|
|
|
323
329
|
});
|
|
324
330
|
|
|
325
331
|
const logger$1 = debug('seedSdk:modelProperty:actors:validateProperty');
|
|
326
|
-
const validateProperty = fromCallback(({ sendBack, input: { context } }) => {
|
|
332
|
+
const validateProperty = fromCallback(({ sendBack, input: { context }, self }) => {
|
|
327
333
|
const _validateProperty = async () => {
|
|
328
334
|
// Use full context for validation: fill modelName/dataType from _originalValues when missing, then
|
|
329
335
|
// from DB by schemaFileId (context.id) so just-created renames don't fail structure validation.
|
|
@@ -337,7 +343,7 @@ const validateProperty = fromCallback(({ sendBack, input: { context } }) => {
|
|
|
337
343
|
// Brief wait so trackPendingWrite from ModelProperty.create() has time to run (it's in setTimeout(0))
|
|
338
344
|
await new Promise((r) => setTimeout(r, 60));
|
|
339
345
|
try {
|
|
340
|
-
const _mod_10 = await import('./db-
|
|
346
|
+
const _mod_10 = await import('./db-Lw0KVZmc.js');
|
|
341
347
|
const _ns_10 = _mod_10.Z;
|
|
342
348
|
const dbMod = _ns_10;
|
|
343
349
|
const { getPropertyModelNameAndDataType, getModelNameByModelId } = dbMod;
|
|
@@ -391,10 +397,10 @@ const validateProperty = fromCallback(({ sendBack, input: { context } }) => {
|
|
|
391
397
|
fullContext = { ...fullContext, dataType: (fullContext.dataType ?? context._originalValues?.dataType) || 'Text' };
|
|
392
398
|
}
|
|
393
399
|
// Use dynamic imports to break circular dependencies
|
|
394
|
-
const validationServiceMod = await import('./SchemaValidationService-
|
|
400
|
+
const validationServiceMod = await import('./SchemaValidationService-IoS7JquP.js');
|
|
395
401
|
const { SchemaValidationService } = validationServiceMod;
|
|
396
402
|
const validationService = new SchemaValidationService();
|
|
397
|
-
const _mod_11 = await import('./Schema-
|
|
403
|
+
const _mod_11 = await import('./Schema-D-Ud-XYw.js');
|
|
398
404
|
const _ns_11 = _mod_11.b;
|
|
399
405
|
const schemaMod = _ns_11;
|
|
400
406
|
const { Schema } = schemaMod;
|
|
@@ -405,6 +411,9 @@ const validateProperty = fromCallback(({ sendBack, input: { context } }) => {
|
|
|
405
411
|
return;
|
|
406
412
|
}
|
|
407
413
|
// If we have schema name and model name, validate against schema
|
|
414
|
+
// Stopped meanwhile (unloaded, or evicted with its schema): don't load the schema again
|
|
415
|
+
if (isActorStopped(self))
|
|
416
|
+
return;
|
|
408
417
|
if (fullContext._schemaName && fullContext.modelName) {
|
|
409
418
|
try {
|
|
410
419
|
const schema = Schema.create(fullContext._schemaName, {
|
|
@@ -847,6 +856,8 @@ const TPropertyKeys = [
|
|
|
847
856
|
];
|
|
848
857
|
class ModelProperty {
|
|
849
858
|
constructor(property) {
|
|
859
|
+
/** currentEvictionEpoch() at construction: lookups started for this instance don't outlive an eviction. */
|
|
860
|
+
this._evictionEpoch = currentEvictionEpoch();
|
|
850
861
|
// id is now the schemaFileId (string), _dbId is the database integer ID
|
|
851
862
|
// Preserve _propertyFileId if it exists in the property object (from getPropertySchema)
|
|
852
863
|
// Convert null to undefined for optional fields (TypeBox validation expects undefined, not null)
|
|
@@ -1009,7 +1020,7 @@ class ModelProperty {
|
|
|
1009
1020
|
return fallbackIsEdited;
|
|
1010
1021
|
}
|
|
1011
1022
|
// Find this property's model (by modelId when known; model names are only unique per schema)
|
|
1012
|
-
const _mod_12 = await import('./db-
|
|
1023
|
+
const _mod_12 = await import('./db-Lw0KVZmc.js');
|
|
1013
1024
|
const _ns_12 = _mod_12.Y;
|
|
1014
1025
|
const { resolveModelRecord } = _ns_12;
|
|
1015
1026
|
const modelRecord = await resolveModelRecord(property.modelName, this._ownerModelScope(property), db);
|
|
@@ -1047,7 +1058,7 @@ class ModelProperty {
|
|
|
1047
1058
|
return undefined;
|
|
1048
1059
|
}
|
|
1049
1060
|
// Resolve the ref within the owning model's schema
|
|
1050
|
-
const _mod_13 = await import('./db-
|
|
1061
|
+
const _mod_13 = await import('./db-Lw0KVZmc.js');
|
|
1051
1062
|
const _ns_13 = _mod_13.Y;
|
|
1052
1063
|
const { resolveRefModelRecord } = _ns_13;
|
|
1053
1064
|
const refModelRecord = await resolveRefModelRecord(refModelName, property ? this._ownerModelScope(property) : { schemaName: this._getSnapshotContext()._schemaName }, db);
|
|
@@ -1093,15 +1104,23 @@ class ModelProperty {
|
|
|
1093
1104
|
}
|
|
1094
1105
|
}
|
|
1095
1106
|
if (!model && modelId) {
|
|
1096
|
-
const _mod_14 = await import('./db-
|
|
1107
|
+
const _mod_14 = await import('./db-Lw0KVZmc.js');
|
|
1097
1108
|
const _ns_14 = _mod_14.Y;
|
|
1098
1109
|
const { resolveModelRecord } = _ns_14;
|
|
1099
1110
|
const modelFileId = (await resolveModelRecord(property.modelName, { modelId }))?.schemaFileId;
|
|
1100
1111
|
model = modelFileId ? Model.getById(modelFileId) : undefined;
|
|
1101
1112
|
}
|
|
1113
|
+
// Evicted (with its schema) or unloaded while the lookups above ran: don't instantiate its model
|
|
1114
|
+
// again from rows that are being deleted.
|
|
1115
|
+
if (!model && isActorStopped(this._service))
|
|
1116
|
+
return undefined;
|
|
1102
1117
|
if (!model) {
|
|
1103
1118
|
try {
|
|
1104
|
-
model
|
|
1119
|
+
// The epoch from when this instance was built: an eviction of the model's schema since
|
|
1120
|
+
// then (this instance may already be stopped) must not re-create the model.
|
|
1121
|
+
model = await Model.getByNameAsync(property.modelName, undefined, {
|
|
1122
|
+
evictionEpoch: this._evictionEpoch,
|
|
1123
|
+
});
|
|
1105
1124
|
}
|
|
1106
1125
|
catch {
|
|
1107
1126
|
model = undefined;
|
|
@@ -1553,7 +1572,7 @@ class ModelProperty {
|
|
|
1553
1572
|
* Create or get ModelProperty instance by propertyFileId
|
|
1554
1573
|
* Queries the database to find the property if not cached
|
|
1555
1574
|
*/
|
|
1556
|
-
static async createById(propertyFileId) {
|
|
1575
|
+
static async createById(propertyFileId, options) {
|
|
1557
1576
|
if (!propertyFileId) {
|
|
1558
1577
|
return undefined;
|
|
1559
1578
|
}
|
|
@@ -1567,10 +1586,7 @@ class ModelProperty {
|
|
|
1567
1586
|
if (!db) {
|
|
1568
1587
|
return undefined;
|
|
1569
1588
|
}
|
|
1570
|
-
|
|
1571
|
-
.select()
|
|
1572
|
-
.from(properties)
|
|
1573
|
-
.limit(100);
|
|
1589
|
+
const evictionEpoch = options?.evictionEpoch ?? currentEvictionEpoch();
|
|
1574
1590
|
const propertyRecords = await db
|
|
1575
1591
|
.select()
|
|
1576
1592
|
.from(properties)
|
|
@@ -1620,6 +1636,19 @@ class ModelProperty {
|
|
|
1620
1636
|
propertyData.ref = refModelRecords[0].name;
|
|
1621
1637
|
}
|
|
1622
1638
|
}
|
|
1639
|
+
// Its model's schema was evicted while we read the rows (e.g. a model's property lookup in flight
|
|
1640
|
+
// during Schema.destroy or test cleanup): don't bring the property back.
|
|
1641
|
+
if (anyEvictionSince(evictionEpoch)) {
|
|
1642
|
+
const schemaRows = await db
|
|
1643
|
+
.select({ name: schemas.name })
|
|
1644
|
+
.from(modelSchemas)
|
|
1645
|
+
.innerJoin(schemas, eq(schemas.id, modelSchemas.schemaId))
|
|
1646
|
+
.where(eq(modelSchemas.modelId, propertyRecord.modelId));
|
|
1647
|
+
if (schemaRows.length === 0 ||
|
|
1648
|
+
schemaRows.some((row) => schemaEvictedSince(row.name, evictionEpoch))) {
|
|
1649
|
+
return undefined;
|
|
1650
|
+
}
|
|
1651
|
+
}
|
|
1623
1652
|
// Create ModelProperty instance (sync for createById so we can send updateContext)
|
|
1624
1653
|
const instance = this.create(propertyData, { waitForReady: false });
|
|
1625
1654
|
// Set isEdited from database after creation
|
|
@@ -1967,4 +1996,4 @@ var ModelProperty$1 = /*#__PURE__*/Object.freeze({
|
|
|
1967
1996
|
});
|
|
1968
1997
|
|
|
1969
1998
|
export { ModelProperty };
|
|
1970
|
-
//# sourceMappingURL=ModelProperty-
|
|
1999
|
+
//# sourceMappingURL=ModelProperty-6llK4MTH.js.map
|