@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.
Files changed (160) hide show
  1. package/dist/{BasePathResolver-ndE8XTpw.js → BasePathResolver-BdxCSIzn.js} +2 -2
  2. package/dist/{BasePathResolver-ndE8XTpw.js.map → BasePathResolver-BdxCSIzn.js.map} +1 -1
  3. package/dist/{ClientManager-DLleL_2e.js → ClientManager-ClCwwhwo.js} +28 -23
  4. package/dist/ClientManager-ClCwwhwo.js.map +1 -0
  5. package/dist/{Item-zBFWQDU9.js → Item-B9Y4VuK1.js} +140 -74
  6. package/dist/Item-B9Y4VuK1.js.map +1 -0
  7. package/dist/{ModelProperty-lth9L37R.js → ModelProperty-BMePcicQ.js} +64 -36
  8. package/dist/ModelProperty-BMePcicQ.js.map +1 -0
  9. package/dist/{Schema-DOhlrQ-N.js → Schema-COsEXXaR.js} +106 -58
  10. package/dist/Schema-COsEXXaR.js.map +1 -0
  11. package/dist/{SchemaValidationService-DDKr5piy.js → SchemaValidationService-DabGMzSE.js} +7 -8
  12. package/dist/{SchemaValidationService-DDKr5piy.js.map → SchemaValidationService-DabGMzSE.js.map} +1 -1
  13. package/dist/{backfillMetadataPropertyIds-fG3ujaSh.js → backfillMetadataPropertyIds-Ck6fumnm.js} +4 -4
  14. package/dist/{backfillMetadataPropertyIds-fG3ujaSh.js.map → backfillMetadataPropertyIds-Ck6fumnm.js.map} +1 -1
  15. package/dist/cjs/{ModelProperty-BEsIHAjk.js → ModelProperty-BT6Un_MB.js} +59 -30
  16. package/dist/cjs/ModelProperty-BT6Un_MB.js.map +1 -0
  17. package/dist/cjs/{Schema-qEp5mH1N.js → Schema-BXhXdUsA.js} +93 -44
  18. package/dist/cjs/Schema-BXhXdUsA.js.map +1 -0
  19. package/dist/cjs/{SchemaValidationService-CWEnZmOH.js → SchemaValidationService-CC18QDfc.js} +2 -2
  20. package/dist/cjs/{SchemaValidationService-CWEnZmOH.js.map → SchemaValidationService-CC18QDfc.js.map} +1 -1
  21. package/dist/cjs/{backfillMetadataPropertyIds-tw8JGMT0.js → backfillMetadataPropertyIds-DEHC9ejq.js} +3 -3
  22. package/dist/cjs/{backfillMetadataPropertyIds-tw8JGMT0.js.map → backfillMetadataPropertyIds-DEHC9ejq.js.map} +1 -1
  23. package/dist/cjs/{eas-CLiV2Hmn.js → eas-C3CL0l7l.js} +3 -3
  24. package/dist/cjs/{eas-CLiV2Hmn.js.map → eas-C3CL0l7l.js.map} +1 -1
  25. package/dist/cjs/{getItem-DSRtx_68.js → getItem-CrwWYCkj.js} +2 -2
  26. package/dist/cjs/{getItem-DSRtx_68.js.map → getItem-CrwWYCkj.js.map} +1 -1
  27. package/dist/cjs/{getPublishPayload-D5-dYtNq.js → getPublishPayload-DRJh7WR0.js} +171 -209
  28. package/dist/cjs/getPublishPayload-DRJh7WR0.js.map +1 -0
  29. package/dist/cjs/{getPublishUploads-B5Lq6q-_.js → getPublishUploads-Bh22D3zJ.js} +49 -10
  30. package/dist/cjs/getPublishUploads-Bh22D3zJ.js.map +1 -0
  31. package/dist/cjs/{index-B3UDbm1C.js → index-BA1RIYFG.js} +3 -3
  32. package/dist/cjs/index-BA1RIYFG.js.map +1 -0
  33. package/dist/cjs/{index-C66AfYDG.js → index-Dls7aMjr.js} +281 -90
  34. package/dist/cjs/index-Dls7aMjr.js.map +1 -0
  35. package/dist/cjs/{property-BVJIP7SX.js → property-ZerTWizX.js} +5 -5
  36. package/dist/cjs/{property-BVJIP7SX.js.map → property-ZerTWizX.js.map} +1 -1
  37. package/dist/cjs/publishDraftGraph-CPOAcQFf.js +403 -0
  38. package/dist/cjs/publishDraftGraph-CPOAcQFf.js.map +1 -0
  39. package/dist/cjs/{resetAmbiguousLegacyItemData-BaZqUui9.js → resetAmbiguousLegacyItemData-adDl4LcT.js} +2 -2
  40. package/dist/cjs/{resetAmbiguousLegacyItemData-BaZqUui9.js.map → resetAmbiguousLegacyItemData-adDl4LcT.js.map} +1 -1
  41. package/dist/cjs/{resolveModelForSyncedSeed-CC6dQctx.js → resolveModelForSyncedSeed-DoNThPdL.js} +2 -2
  42. package/dist/cjs/{resolveModelForSyncedSeed-CC6dQctx.js.map → resolveModelForSyncedSeed-DoNThPdL.js.map} +1 -1
  43. package/dist/cjs/{syncDbWithEas-Dk96sAG-.js → syncDbWithEas-CYfPkus9.js} +20 -7
  44. package/dist/cjs/{syncDbWithEas-Dk96sAG-.js.map → syncDbWithEas-CYfPkus9.js.map} +1 -1
  45. package/dist/{configurePlatform-BMoPG9vY.js → configurePlatform-xU3Hsno3.js} +4 -4
  46. package/dist/{configurePlatform-BMoPG9vY.js.map → configurePlatform-xU3Hsno3.js.map} +1 -1
  47. package/dist/{db-BJZN0a0a.js → db-W1g29qsM.js} +31 -27
  48. package/dist/{db-BJZN0a0a.js.map → db-W1g29qsM.js.map} +1 -1
  49. package/dist/{eas-B0hsMLqt.js → eas-CSwV6MvB.js} +6 -6
  50. package/dist/{eas-B0hsMLqt.js.map → eas-CSwV6MvB.js.map} +1 -1
  51. package/dist/{getItem-DEh4WfHG.js → getItem-BYQeM3DY.js} +5 -6
  52. package/dist/{getItem-DEh4WfHG.js.map → getItem-BYQeM3DY.js.map} +1 -1
  53. package/dist/{getPublishPayload-H032DHC7.js → getPublishPayload-D5CQZd-y.js} +167 -206
  54. package/dist/getPublishPayload-D5CQZd-y.js.map +1 -0
  55. package/dist/{getPublishUploads-CR66RlGJ.js → getPublishUploads-BGpDsrBp.js} +52 -14
  56. package/dist/getPublishUploads-BGpDsrBp.js.map +1 -0
  57. package/dist/{index-6bJuv5Tt.js → index-Bev-hZF-.js} +9 -10
  58. package/dist/index-Bev-hZF-.js.map +1 -0
  59. package/dist/{index-B0LgJblD.js → index-CSOQFAOn.js} +2 -2
  60. package/dist/index-CSOQFAOn.js.map +1 -0
  61. package/dist/{index-DtfjeuxC.js → index-DRXC5Mra.js} +167 -75
  62. package/dist/index-DRXC5Mra.js.map +1 -0
  63. package/dist/{index.browser-CNrqhvEA.js → index.browser-DO20vYuP.js} +9 -9
  64. package/dist/{index.browser-CNrqhvEA.js.map → index.browser-DO20vYuP.js.map} +1 -1
  65. package/dist/{index.node-DrHiTuOr.js → index.node-C4iyOhdo.js} +5 -5
  66. package/dist/{index.node-DrHiTuOr.js.map → index.node-C4iyOhdo.js.map} +1 -1
  67. package/dist/main.cjs +1 -1
  68. package/dist/main.js +258 -183
  69. package/dist/main.js.map +1 -1
  70. package/dist/node.js +14 -15
  71. package/dist/node.js.map +1 -1
  72. package/dist/platform.browser.js +5 -5
  73. package/dist/platform.node.js +3 -3
  74. package/dist/{property-D2Nnsmm1.js → property-BT1zDSkd.js} +10 -11
  75. package/dist/property-BT1zDSkd.js.map +1 -0
  76. package/dist/publishDraftGraph-Bcfrdj7-.js +405 -0
  77. package/dist/publishDraftGraph-Bcfrdj7-.js.map +1 -0
  78. package/dist/{resetAmbiguousLegacyItemData-BqbHNUYk.js → resetAmbiguousLegacyItemData-Ci6PM_vC.js} +2 -2
  79. package/dist/{resetAmbiguousLegacyItemData-BqbHNUYk.js.map → resetAmbiguousLegacyItemData-Ci6PM_vC.js.map} +1 -1
  80. package/dist/{resolveModelForSyncedSeed-DQK6JfXS.js → resolveModelForSyncedSeed-CLlumTBq.js} +2 -2
  81. package/dist/{resolveModelForSyncedSeed-DQK6JfXS.js.map → resolveModelForSyncedSeed-CLlumTBq.js.map} +1 -1
  82. package/dist/src/Item/Item.d.ts +11 -0
  83. package/dist/src/Item/Item.d.ts.map +1 -1
  84. package/dist/src/ItemProperty/ItemProperty.d.ts +10 -0
  85. package/dist/src/ItemProperty/ItemProperty.d.ts.map +1 -1
  86. package/dist/src/Model/Model.d.ts +15 -2
  87. package/dist/src/Model/Model.d.ts.map +1 -1
  88. package/dist/src/Model/service/actors/createModelProperties.d.ts.map +1 -1
  89. package/dist/src/Model/service/actors/loadOrCreateModel.d.ts.map +1 -1
  90. package/dist/src/Model/service/actors/validateModel.d.ts.map +1 -1
  91. package/dist/src/Model/service/modelMachine.d.ts.map +1 -1
  92. package/dist/src/ModelProperty/ModelProperty.d.ts +9 -1
  93. package/dist/src/ModelProperty/ModelProperty.d.ts.map +1 -1
  94. package/dist/src/ModelProperty/service/actors/compareAndMarkDraft.d.ts.map +1 -1
  95. package/dist/src/ModelProperty/service/actors/saveToSchema.d.ts.map +1 -1
  96. package/dist/src/ModelProperty/service/actors/validateProperty.d.ts.map +1 -1
  97. package/dist/src/Schema/Schema.d.ts +7 -0
  98. package/dist/src/Schema/Schema.d.ts.map +1 -1
  99. package/dist/src/Schema/service/actors/checkExistingSchema.d.ts.map +1 -1
  100. package/dist/src/Schema/service/actors/createModelInstances.d.ts.map +1 -1
  101. package/dist/src/Schema/service/actors/loadOrCreateSchema.d.ts.map +1 -1
  102. package/dist/src/db/read/getPublishPayload.d.ts +9 -0
  103. package/dist/src/db/read/getPublishPayload.d.ts.map +1 -1
  104. package/dist/src/db/read/getPublishUploads.d.ts +5 -0
  105. package/dist/src/db/read/getPublishUploads.d.ts.map +1 -1
  106. package/dist/src/db/read/publishDraftGraph.d.ts +57 -0
  107. package/dist/src/db/read/publishDraftGraph.d.ts.map +1 -0
  108. package/dist/src/db/read/summarizePublishWork.d.ts.map +1 -1
  109. package/dist/src/helpers/entity/entityLiveQuery.d.ts.map +1 -1
  110. package/dist/src/helpers/entity/evictionEpoch.d.ts +18 -0
  111. package/dist/src/helpers/entity/evictionEpoch.d.ts.map +1 -0
  112. package/dist/src/helpers/generateId.d.ts +4 -0
  113. package/dist/src/helpers/generateId.d.ts.map +1 -1
  114. package/dist/src/helpers/htmlEmbeddedDataUriPublish.d.ts +28 -6
  115. package/dist/src/helpers/htmlEmbeddedDataUriPublish.d.ts.map +1 -1
  116. package/dist/src/index.d.ts +2 -1
  117. package/dist/src/index.d.ts.map +1 -1
  118. package/dist/src/query/createLocalQueryDataSource.d.ts.map +1 -1
  119. package/dist/src/services/write/actors/validateEntity.d.ts.map +1 -1
  120. package/dist/src/types/item.d.ts +7 -8
  121. package/dist/src/types/item.d.ts.map +1 -1
  122. package/dist/{syncDbWithEas-LRKr_NZF.js → syncDbWithEas-BQsXjGhe.js} +15 -16
  123. package/dist/syncDbWithEas-BQsXjGhe.js.map +1 -0
  124. package/dist/{tabEvents-DYI2GU7i.js → tabEvents-C9qUKx_z.js} +28 -11
  125. package/dist/tabEvents-C9qUKx_z.js.map +1 -0
  126. package/dist/{tolerantWebAccess-CzOBz5M6.js → tolerantWebAccess-B-9bwxbw.js} +6 -6
  127. package/dist/{tolerantWebAccess-CzOBz5M6.js.map → tolerantWebAccess-B-9bwxbw.js.map} +1 -1
  128. package/dist/{updateSeedRevokedAt-B58ORbY3.js → updateSeedRevokedAt-D6q0h7pj.js} +3 -3
  129. package/dist/{updateSeedRevokedAt-B58ORbY3.js.map → updateSeedRevokedAt-D6q0h7pj.js.map} +1 -1
  130. package/package.json +13 -10
  131. package/dist/ClientManager-DLleL_2e.js.map +0 -1
  132. package/dist/Item-zBFWQDU9.js.map +0 -1
  133. package/dist/ModelProperty-lth9L37R.js.map +0 -1
  134. package/dist/Schema-DOhlrQ-N.js.map +0 -1
  135. package/dist/cjs/ModelProperty-BEsIHAjk.js.map +0 -1
  136. package/dist/cjs/Schema-qEp5mH1N.js.map +0 -1
  137. package/dist/cjs/getLatestVersionRow-DVizNNoI.js +0 -59
  138. package/dist/cjs/getLatestVersionRow-DVizNNoI.js.map +0 -1
  139. package/dist/cjs/getPublishPayload-D5-dYtNq.js.map +0 -1
  140. package/dist/cjs/getPublishUploads-B5Lq6q-_.js.map +0 -1
  141. package/dist/cjs/getSegmentedItemProperties-giHO7R3d.js +0 -147
  142. package/dist/cjs/getSegmentedItemProperties-giHO7R3d.js.map +0 -1
  143. package/dist/cjs/index-B3UDbm1C.js.map +0 -1
  144. package/dist/cjs/index-C66AfYDG.js.map +0 -1
  145. package/dist/generateId-BopUwD8F.js +0 -9
  146. package/dist/generateId-BopUwD8F.js.map +0 -1
  147. package/dist/getLatestVersionRow-Brrl1AnW.js +0 -46
  148. package/dist/getLatestVersionRow-Brrl1AnW.js.map +0 -1
  149. package/dist/getPublishPayload-H032DHC7.js.map +0 -1
  150. package/dist/getPublishUploads-CR66RlGJ.js.map +0 -1
  151. package/dist/getSegmentedItemProperties-C2EJ2G0N.js +0 -147
  152. package/dist/getSegmentedItemProperties-C2EJ2G0N.js.map +0 -1
  153. package/dist/index-6bJuv5Tt.js.map +0 -1
  154. package/dist/index-B0LgJblD.js.map +0 -1
  155. package/dist/index-DtfjeuxC.js.map +0 -1
  156. package/dist/property-D2Nnsmm1.js.map +0 -1
  157. package/dist/src/browser/helpers/index.d.ts +0 -4
  158. package/dist/src/browser/helpers/index.d.ts.map +0 -1
  159. package/dist/syncDbWithEas-LRKr_NZF.js.map +0 -1
  160. 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, i as isActorStopped, M as Model } from './index-DtfjeuxC.js';
4
- import { x as getModelIdByFileId, n as normalizeDataType, y as getModelId } from './db-BJZN0a0a.js';
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 { B as BaseDb, m as models, p as properties, s as schemas, i as modelSchemas, a as BaseFileManager } from './BasePathResolver-ndE8XTpw.js';
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-DYI2GU7i.js';
11
- import { S as Schema } from './Schema-DOhlrQ-N.js';
12
- import { j as waitForEntityIdle, k as createReactiveProxy, m as findEntity, n as forceRemoveFromCaches, o as runDestroyLifecycle } from './Item-zBFWQDU9.js';
13
- import { generateId } from './generateId-BopUwD8F.js';
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-DDKr5piy.js';
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-DLleL_2e.js');
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-ndE8XTpw.js');
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-DDKr5piy.js');
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-BJZN0a0a.js');
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-DOhlrQ-N.js');
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-BJZN0a0a.js');
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-BJZN0a0a.js');
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-BJZN0a0a.js');
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-DOhlrQ-N.js');
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-B0LgJblD.js');
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-BJZN0a0a.js');
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-BJZN0a0a.js');
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-DDKr5piy.js');
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-DOhlrQ-N.js');
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-BJZN0a0a.js');
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-BJZN0a0a.js');
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-BJZN0a0a.js');
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 = await Model.getByNameAsync(property.modelName);
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
- await db
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-lth9L37R.js.map
1998
+ //# sourceMappingURL=ModelProperty-BMePcicQ.js.map