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