@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.
Files changed (148) hide show
  1. package/dist/{BasePathResolver-ndE8XTpw.js → BasePathResolver-DRT09oVv.js} +2 -2
  2. package/dist/{BasePathResolver-ndE8XTpw.js.map → BasePathResolver-DRT09oVv.js.map} +1 -1
  3. package/dist/{ClientManager-DLleL_2e.js → ClientManager-DngaZdw6.js} +20 -20
  4. package/dist/{ClientManager-DLleL_2e.js.map → ClientManager-DngaZdw6.js.map} +1 -1
  5. package/dist/{Item-zBFWQDU9.js → Item-ZUAmf943.js} +118 -72
  6. package/dist/{Item-zBFWQDU9.js.map → Item-ZUAmf943.js.map} +1 -1
  7. package/dist/{ModelProperty-lth9L37R.js → ModelProperty-6llK4MTH.js} +64 -35
  8. package/dist/ModelProperty-6llK4MTH.js.map +1 -0
  9. package/dist/{Schema-DOhlrQ-N.js → Schema-D-Ud-XYw.js} +106 -57
  10. package/dist/Schema-D-Ud-XYw.js.map +1 -0
  11. package/dist/{SchemaValidationService-DDKr5piy.js → SchemaValidationService-IoS7JquP.js} +7 -7
  12. package/dist/{SchemaValidationService-DDKr5piy.js.map → SchemaValidationService-IoS7JquP.js.map} +1 -1
  13. package/dist/{backfillMetadataPropertyIds-fG3ujaSh.js → backfillMetadataPropertyIds-BlVeE7w7.js} +4 -4
  14. package/dist/{backfillMetadataPropertyIds-fG3ujaSh.js.map → backfillMetadataPropertyIds-BlVeE7w7.js.map} +1 -1
  15. package/dist/cjs/{ModelProperty-BEsIHAjk.js → ModelProperty-Dv7AQfmQ.js} +59 -30
  16. package/dist/cjs/ModelProperty-Dv7AQfmQ.js.map +1 -0
  17. package/dist/cjs/{Schema-qEp5mH1N.js → Schema-BHVp1g-M.js} +93 -44
  18. package/dist/cjs/Schema-BHVp1g-M.js.map +1 -0
  19. package/dist/cjs/{SchemaValidationService-CWEnZmOH.js → SchemaValidationService-BSU9knjf.js} +2 -2
  20. package/dist/cjs/{SchemaValidationService-CWEnZmOH.js.map → SchemaValidationService-BSU9knjf.js.map} +1 -1
  21. package/dist/cjs/{backfillMetadataPropertyIds-tw8JGMT0.js → backfillMetadataPropertyIds-WIovQ_d8.js} +3 -3
  22. package/dist/cjs/{backfillMetadataPropertyIds-tw8JGMT0.js.map → backfillMetadataPropertyIds-WIovQ_d8.js.map} +1 -1
  23. package/dist/cjs/{eas-CLiV2Hmn.js → eas-CUYXdr2t.js} +3 -3
  24. package/dist/cjs/{eas-CLiV2Hmn.js.map → eas-CUYXdr2t.js.map} +1 -1
  25. package/dist/cjs/{getItem-DSRtx_68.js → getItem-z1tHu0hu.js} +2 -2
  26. package/dist/cjs/{getItem-DSRtx_68.js.map → getItem-z1tHu0hu.js.map} +1 -1
  27. package/dist/cjs/{getLatestVersionRow-DVizNNoI.js → getLatestVersionRow-CcaabxIW.js} +2 -2
  28. package/dist/cjs/{getLatestVersionRow-DVizNNoI.js.map → getLatestVersionRow-CcaabxIW.js.map} +1 -1
  29. package/dist/cjs/{getPublishPayload-D5-dYtNq.js → getPublishPayload-CEP_e-Kv.js} +160 -204
  30. package/dist/cjs/getPublishPayload-CEP_e-Kv.js.map +1 -0
  31. package/dist/cjs/{getPublishUploads-B5Lq6q-_.js → getPublishUploads-Ctn5k1k6.js} +49 -10
  32. package/dist/cjs/getPublishUploads-Ctn5k1k6.js.map +1 -0
  33. package/dist/cjs/{index-C66AfYDG.js → index-Cvvt0-5B.js} +244 -87
  34. package/dist/cjs/index-Cvvt0-5B.js.map +1 -0
  35. package/dist/cjs/{index-B3UDbm1C.js → index-DfGhF1dc.js} +3 -3
  36. package/dist/cjs/index-DfGhF1dc.js.map +1 -0
  37. package/dist/cjs/{property-BVJIP7SX.js → property-DbEPQ1m9.js} +5 -5
  38. package/dist/cjs/{property-BVJIP7SX.js.map → property-DbEPQ1m9.js.map} +1 -1
  39. package/dist/cjs/publishDraftGraph-C38gf302.js +403 -0
  40. package/dist/cjs/publishDraftGraph-C38gf302.js.map +1 -0
  41. package/dist/cjs/{resetAmbiguousLegacyItemData-BaZqUui9.js → resetAmbiguousLegacyItemData-CfMhRHwK.js} +2 -2
  42. package/dist/cjs/{resetAmbiguousLegacyItemData-BaZqUui9.js.map → resetAmbiguousLegacyItemData-CfMhRHwK.js.map} +1 -1
  43. package/dist/cjs/{resolveModelForSyncedSeed-CC6dQctx.js → resolveModelForSyncedSeed-CNYaLOir.js} +2 -2
  44. package/dist/cjs/{resolveModelForSyncedSeed-CC6dQctx.js.map → resolveModelForSyncedSeed-CNYaLOir.js.map} +1 -1
  45. package/dist/cjs/{syncDbWithEas-Dk96sAG-.js → syncDbWithEas-d1iOdTTI.js} +20 -7
  46. package/dist/cjs/{syncDbWithEas-Dk96sAG-.js.map → syncDbWithEas-d1iOdTTI.js.map} +1 -1
  47. package/dist/{configurePlatform-BMoPG9vY.js → configurePlatform-CZpjyuCo.js} +4 -4
  48. package/dist/{configurePlatform-BMoPG9vY.js.map → configurePlatform-CZpjyuCo.js.map} +1 -1
  49. package/dist/{db-BJZN0a0a.js → db-Lw0KVZmc.js} +11 -11
  50. package/dist/{db-BJZN0a0a.js.map → db-Lw0KVZmc.js.map} +1 -1
  51. package/dist/{eas-B0hsMLqt.js → eas-CQ-Smzk2.js} +6 -6
  52. package/dist/{eas-B0hsMLqt.js.map → eas-CQ-Smzk2.js.map} +1 -1
  53. package/dist/{getItem-DEh4WfHG.js → getItem-CSfSok9f.js} +5 -5
  54. package/dist/{getItem-DEh4WfHG.js.map → getItem-CSfSok9f.js.map} +1 -1
  55. package/dist/{getLatestVersionRow-Brrl1AnW.js → getLatestVersionRow-72Atl9vB.js} +5 -5
  56. package/dist/{getLatestVersionRow-Brrl1AnW.js.map → getLatestVersionRow-72Atl9vB.js.map} +1 -1
  57. package/dist/{getPublishPayload-H032DHC7.js → getPublishPayload-76_KfB5Y.js} +155 -200
  58. package/dist/getPublishPayload-76_KfB5Y.js.map +1 -0
  59. package/dist/{getPublishUploads-CR66RlGJ.js → getPublishUploads-CqgMBD8f.js} +52 -13
  60. package/dist/getPublishUploads-CqgMBD8f.js.map +1 -0
  61. package/dist/{index-B0LgJblD.js → index-5b3JsS55.js} +2 -2
  62. package/dist/index-5b3JsS55.js.map +1 -0
  63. package/dist/{index-6bJuv5Tt.js → index-BpgD305l.js} +9 -9
  64. package/dist/{index-6bJuv5Tt.js.map → index-BpgD305l.js.map} +1 -1
  65. package/dist/{index-DtfjeuxC.js → index-Y-yYyRBf.js} +166 -75
  66. package/dist/index-Y-yYyRBf.js.map +1 -0
  67. package/dist/{index.browser-CNrqhvEA.js → index.browser-DaTzn79x.js} +9 -9
  68. package/dist/{index.browser-CNrqhvEA.js.map → index.browser-DaTzn79x.js.map} +1 -1
  69. package/dist/{index.node-DrHiTuOr.js → index.node-NYKqFOoe.js} +5 -5
  70. package/dist/{index.node-DrHiTuOr.js.map → index.node-NYKqFOoe.js.map} +1 -1
  71. package/dist/main.cjs +1 -1
  72. package/dist/main.js +257 -181
  73. package/dist/main.js.map +1 -1
  74. package/dist/node.js +12 -12
  75. package/dist/platform.browser.js +5 -5
  76. package/dist/platform.node.js +3 -3
  77. package/dist/{property-D2Nnsmm1.js → property-ByaiSyUK.js} +10 -10
  78. package/dist/{property-D2Nnsmm1.js.map → property-ByaiSyUK.js.map} +1 -1
  79. package/dist/publishDraftGraph-BRm6Pq3Q.js +405 -0
  80. package/dist/publishDraftGraph-BRm6Pq3Q.js.map +1 -0
  81. package/dist/{resetAmbiguousLegacyItemData-BqbHNUYk.js → resetAmbiguousLegacyItemData-B4dX6ZA1.js} +2 -2
  82. package/dist/{resetAmbiguousLegacyItemData-BqbHNUYk.js.map → resetAmbiguousLegacyItemData-B4dX6ZA1.js.map} +1 -1
  83. package/dist/{resolveModelForSyncedSeed-DQK6JfXS.js → resolveModelForSyncedSeed-B0tco3zG.js} +2 -2
  84. package/dist/{resolveModelForSyncedSeed-DQK6JfXS.js.map → resolveModelForSyncedSeed-B0tco3zG.js.map} +1 -1
  85. package/dist/src/Item/Item.d.ts +11 -0
  86. package/dist/src/Item/Item.d.ts.map +1 -1
  87. package/dist/src/ItemProperty/ItemProperty.d.ts +10 -0
  88. package/dist/src/ItemProperty/ItemProperty.d.ts.map +1 -1
  89. package/dist/src/Model/Model.d.ts +15 -2
  90. package/dist/src/Model/Model.d.ts.map +1 -1
  91. package/dist/src/Model/service/actors/createModelProperties.d.ts.map +1 -1
  92. package/dist/src/Model/service/actors/loadOrCreateModel.d.ts.map +1 -1
  93. package/dist/src/Model/service/actors/validateModel.d.ts.map +1 -1
  94. package/dist/src/Model/service/modelMachine.d.ts.map +1 -1
  95. package/dist/src/ModelProperty/ModelProperty.d.ts +9 -1
  96. package/dist/src/ModelProperty/ModelProperty.d.ts.map +1 -1
  97. package/dist/src/ModelProperty/service/actors/compareAndMarkDraft.d.ts.map +1 -1
  98. package/dist/src/ModelProperty/service/actors/saveToSchema.d.ts.map +1 -1
  99. package/dist/src/ModelProperty/service/actors/validateProperty.d.ts.map +1 -1
  100. package/dist/src/Schema/Schema.d.ts +7 -0
  101. package/dist/src/Schema/Schema.d.ts.map +1 -1
  102. package/dist/src/Schema/service/actors/checkExistingSchema.d.ts.map +1 -1
  103. package/dist/src/Schema/service/actors/createModelInstances.d.ts.map +1 -1
  104. package/dist/src/Schema/service/actors/loadOrCreateSchema.d.ts.map +1 -1
  105. package/dist/src/db/read/getPublishPayload.d.ts +9 -0
  106. package/dist/src/db/read/getPublishPayload.d.ts.map +1 -1
  107. package/dist/src/db/read/getPublishUploads.d.ts +5 -0
  108. package/dist/src/db/read/getPublishUploads.d.ts.map +1 -1
  109. package/dist/src/db/read/publishDraftGraph.d.ts +57 -0
  110. package/dist/src/db/read/publishDraftGraph.d.ts.map +1 -0
  111. package/dist/src/db/read/summarizePublishWork.d.ts.map +1 -1
  112. package/dist/src/helpers/entity/entityLiveQuery.d.ts.map +1 -1
  113. package/dist/src/helpers/entity/evictionEpoch.d.ts +18 -0
  114. package/dist/src/helpers/entity/evictionEpoch.d.ts.map +1 -0
  115. package/dist/src/helpers/htmlEmbeddedDataUriPublish.d.ts +28 -6
  116. package/dist/src/helpers/htmlEmbeddedDataUriPublish.d.ts.map +1 -1
  117. package/dist/src/index.d.ts +2 -1
  118. package/dist/src/index.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-BPap9Sru.js} +14 -14
  123. package/dist/{syncDbWithEas-LRKr_NZF.js.map → syncDbWithEas-BPap9Sru.js.map} +1 -1
  124. package/dist/{tabEvents-DYI2GU7i.js → tabEvents-C6NXS6Jl.js} +6 -6
  125. package/dist/{tabEvents-DYI2GU7i.js.map → tabEvents-C6NXS6Jl.js.map} +1 -1
  126. package/dist/{tolerantWebAccess-CzOBz5M6.js → tolerantWebAccess-NBQ1NB4i.js} +6 -6
  127. package/dist/{tolerantWebAccess-CzOBz5M6.js.map → tolerantWebAccess-NBQ1NB4i.js.map} +1 -1
  128. package/dist/{updateSeedRevokedAt-B58ORbY3.js → updateSeedRevokedAt-CYwgVNlM.js} +3 -3
  129. package/dist/{updateSeedRevokedAt-B58ORbY3.js.map → updateSeedRevokedAt-CYwgVNlM.js.map} +1 -1
  130. package/package.json +8 -10
  131. package/dist/ModelProperty-lth9L37R.js.map +0 -1
  132. package/dist/Schema-DOhlrQ-N.js.map +0 -1
  133. package/dist/cjs/ModelProperty-BEsIHAjk.js.map +0 -1
  134. package/dist/cjs/Schema-qEp5mH1N.js.map +0 -1
  135. package/dist/cjs/getPublishPayload-D5-dYtNq.js.map +0 -1
  136. package/dist/cjs/getPublishUploads-B5Lq6q-_.js.map +0 -1
  137. package/dist/cjs/getSegmentedItemProperties-giHO7R3d.js +0 -147
  138. package/dist/cjs/getSegmentedItemProperties-giHO7R3d.js.map +0 -1
  139. package/dist/cjs/index-B3UDbm1C.js.map +0 -1
  140. package/dist/cjs/index-C66AfYDG.js.map +0 -1
  141. package/dist/getPublishPayload-H032DHC7.js.map +0 -1
  142. package/dist/getPublishUploads-CR66RlGJ.js.map +0 -1
  143. package/dist/getSegmentedItemProperties-C2EJ2G0N.js +0 -147
  144. package/dist/getSegmentedItemProperties-C2EJ2G0N.js.map +0 -1
  145. package/dist/index-B0LgJblD.js.map +0 -1
  146. package/dist/index-DtfjeuxC.js.map +0 -1
  147. package/dist/src/browser/helpers/index.d.ts +0 -4
  148. 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, 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-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, m as models, p as properties, s as schemas, i as modelSchemas, a as BaseFileManager } from './BasePathResolver-ndE8XTpw.js';
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-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';
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-DLleL_2e.js';
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-DDKr5piy.js';
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-DLleL_2e.js');
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-ndE8XTpw.js');
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-DDKr5piy.js');
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-BJZN0a0a.js');
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-DOhlrQ-N.js');
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-BJZN0a0a.js');
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-BJZN0a0a.js');
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-BJZN0a0a.js');
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-DOhlrQ-N.js');
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-B0LgJblD.js');
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-BJZN0a0a.js');
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-BJZN0a0a.js');
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-DDKr5piy.js');
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-DOhlrQ-N.js');
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-BJZN0a0a.js');
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-BJZN0a0a.js');
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-BJZN0a0a.js');
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 = await Model.getByNameAsync(property.modelName);
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
- await db
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-lth9L37R.js.map
1999
+ //# sourceMappingURL=ModelProperty-6llK4MTH.js.map