@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,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
3
  var xstate = require('xstate');
4
- var main_cjs = require('./index-C66AfYDG.js');
4
+ var main_cjs = require('./index-Cvvt0-5B.js');
5
5
  var drizzleOrm = require('drizzle-orm');
6
6
  var debug = require('debug');
7
7
  require('pluralize');
8
- var SchemaValidationService = require('./SchemaValidationService-CWEnZmOH.js');
8
+ var SchemaValidationService = require('./SchemaValidationService-BSU9knjf.js');
9
9
  require('immer');
10
10
  require('reflect-metadata');
11
11
  require('drizzle-orm/sqlite-core');
@@ -71,18 +71,19 @@ const getModelIdsForSchema$1 = async (schemaId) => {
71
71
  * This ensures that Model.getById() in Schema.getContext() will find the instances
72
72
  * @param modelIds - Array of model file IDs to create instances for
73
73
  */
74
- const createModelInstances$2 = async (modelIds) => {
74
+ const createModelInstances$2 = async (modelIds, evictionEpoch) => {
75
75
  if (modelIds.length === 0) {
76
76
  return;
77
77
  }
78
78
  try {
79
- const modelMod = await Promise.resolve().then(function () { return require('./index-C66AfYDG.js'); }).then(function (n) { return n.Model$1; });
79
+ const modelMod = await Promise.resolve().then(function () { return require('./index-Cvvt0-5B.js'); }).then(function (n) { return n.Model$1; });
80
80
  const { Model } = modelMod;
81
81
  // Create instances for all model IDs in parallel
82
82
  // Model.createById() will check cache first, then query DB and create if needed
83
83
  const createPromises = modelIds.map(async (modelFileId) => {
84
84
  try {
85
- const model = await Model.createById(modelFileId);
85
+ // Not if the schema was evicted (Schema.destroy, test cleanup) since this load started
86
+ const model = await Model.createById(modelFileId, { evictionEpoch });
86
87
  if (model) {
87
88
  logger$d(`Created/cached Model instance for modelFileId "${modelFileId}"`);
88
89
  }
@@ -181,6 +182,7 @@ const getSchemaFilePath$2 = (name, version, schemaFileId) => {
181
182
  return path.join(workingDir, filename);
182
183
  };
183
184
  const loadOrCreateSchema = xstate.fromCallback(({ sendBack, input: { context } }) => {
185
+ const evictionEpoch = main_cjs.currentEvictionEpoch();
184
186
  const _loadOrCreateSchema = async () => {
185
187
  const { schemaName } = context;
186
188
  // Check if this is an internal SDK schema (should not create files in app directory) — use static import so consumer bundles resolve correctly
@@ -189,7 +191,7 @@ const loadOrCreateSchema = xstate.fromCallback(({ sendBack, input: { context } }
189
191
  // For Seed Protocol, always load from internal file, never create new
190
192
  logger$d(`Loading internal Seed Protocol schema from SDK`);
191
193
  try {
192
- const internalSchema = await Promise.resolve().then(function () { return require('./index-C66AfYDG.js'); }).then(function (n) { return n.SEEDPROTOCOL_Seed_Protocol_v1; });
194
+ const internalSchema = await Promise.resolve().then(function () { return require('./index-Cvvt0-5B.js'); }).then(function (n) { return n.SEEDPROTOCOL_Seed_Protocol_v1; });
193
195
  const schemaFile = internalSchema.default;
194
196
  // Check if it exists in database, if not, add it
195
197
  const db = main_cjs.BaseDb.getAppDb();
@@ -497,7 +499,7 @@ const loadOrCreateSchema = xstate.fromCallback(({ sendBack, input: { context } }
497
499
  if (schemaRecord && schemaRecord.id) {
498
500
  modelIds = await getModelIdsForSchema$1(schemaRecord.id);
499
501
  // Create Model instances so they're cached before getContext runs
500
- await createModelInstances$2(modelIds);
502
+ await createModelInstances$2(modelIds, evictionEpoch);
501
503
  }
502
504
  sendBack({
503
505
  type: 'loadOrCreateSchemaSuccess',
@@ -682,7 +684,7 @@ const loadOrCreateSchema = xstate.fromCallback(({ sendBack, input: { context } }
682
684
  // Ensure models are populated (fallback for seed-protocol if missing)
683
685
  if ((!mergedModels || Object.keys(mergedModels).length === 0) && schemaName === 'Seed Protocol') {
684
686
  try {
685
- const internalSchema = await Promise.resolve().then(function () { return require('./index-C66AfYDG.js'); }).then(function (n) { return n.SEEDPROTOCOL_Seed_Protocol_v1; });
687
+ const internalSchema = await Promise.resolve().then(function () { return require('./index-Cvvt0-5B.js'); }).then(function (n) { return n.SEEDPROTOCOL_Seed_Protocol_v1; });
686
688
  const internalSchemaFile = internalSchema.default;
687
689
  mergedModels = { ...(internalSchemaFile.models || {}) };
688
690
  logger$d(`Populated models for seed-protocol schema from internal file`);
@@ -744,7 +746,7 @@ const loadOrCreateSchema = xstate.fromCallback(({ sendBack, input: { context } }
744
746
  if (dbSchema.id) {
745
747
  modelIds = await getModelIdsForSchema$1(dbSchema.id);
746
748
  // Create Model instances so they're cached before getContext runs
747
- await createModelInstances$2(modelIds);
749
+ await createModelInstances$2(modelIds, evictionEpoch);
748
750
  }
749
751
  // Track conflict detection metadata
750
752
  const loadedAt = Date.now();
@@ -841,7 +843,7 @@ const loadOrCreateSchema = xstate.fromCallback(({ sendBack, input: { context } }
841
843
  if (draftsByFileId[0].id) {
842
844
  modelIds = await getModelIdsForSchema$1(draftsByFileId[0].id);
843
845
  // Create Model instances so they're cached before getContext runs
844
- await createModelInstances$2(modelIds);
846
+ await createModelInstances$2(modelIds, evictionEpoch);
845
847
  }
846
848
  // Track conflict detection metadata
847
849
  const loadedAt = Date.now();
@@ -909,7 +911,7 @@ const loadOrCreateSchema = xstate.fromCallback(({ sendBack, input: { context } }
909
911
  // Ensure models are populated (fallback for seed-protocol if missing)
910
912
  if ((!mergedModels || Object.keys(mergedModels).length === 0) && schemaName === 'Seed Protocol') {
911
913
  try {
912
- const internalSchema = await Promise.resolve().then(function () { return require('./index-C66AfYDG.js'); }).then(function (n) { return n.SEEDPROTOCOL_Seed_Protocol_v1; });
914
+ const internalSchema = await Promise.resolve().then(function () { return require('./index-Cvvt0-5B.js'); }).then(function (n) { return n.SEEDPROTOCOL_Seed_Protocol_v1; });
913
915
  const internalSchemaFile = internalSchema.default;
914
916
  mergedModels = { ...(internalSchemaFile.models || {}) };
915
917
  logger$d(`Populated models for seed-protocol schema from internal file`);
@@ -972,7 +974,7 @@ const loadOrCreateSchema = xstate.fromCallback(({ sendBack, input: { context } }
972
974
  if (dbSchema.id) {
973
975
  modelIds = await getModelIdsForSchema$1(dbSchema.id);
974
976
  // Create Model instances so they're cached before getContext runs
975
- await createModelInstances$2(modelIds);
977
+ await createModelInstances$2(modelIds, evictionEpoch);
976
978
  }
977
979
  // Track conflict detection metadata from DB record
978
980
  const loadedAt = Date.now();
@@ -998,7 +1000,7 @@ const loadOrCreateSchema = xstate.fromCallback(({ sendBack, input: { context } }
998
1000
  // Ensure models are populated (fallback for seed-protocol if missing)
999
1001
  if ((!mergedModels || Object.keys(mergedModels).length === 0) && schemaName === 'Seed Protocol') {
1000
1002
  try {
1001
- const internalSchema = await Promise.resolve().then(function () { return require('./index-C66AfYDG.js'); }).then(function (n) { return n.SEEDPROTOCOL_Seed_Protocol_v1; });
1003
+ const internalSchema = await Promise.resolve().then(function () { return require('./index-Cvvt0-5B.js'); }).then(function (n) { return n.SEEDPROTOCOL_Seed_Protocol_v1; });
1002
1004
  const internalSchemaFile = internalSchema.default;
1003
1005
  mergedModels = { ...(internalSchemaFile.models || {}) };
1004
1006
  logger$d(`Populated models for seed-protocol schema from internal file`);
@@ -1060,7 +1062,7 @@ const loadOrCreateSchema = xstate.fromCallback(({ sendBack, input: { context } }
1060
1062
  if (dbSchema.id) {
1061
1063
  modelIds = await getModelIdsForSchema$1(dbSchema.id);
1062
1064
  // Create Model instances so they're cached before getContext runs
1063
- await createModelInstances$2(modelIds);
1065
+ await createModelInstances$2(modelIds, evictionEpoch);
1064
1066
  }
1065
1067
  // Track conflict detection metadata
1066
1068
  const loadedAt = Date.now();
@@ -1084,7 +1086,7 @@ const loadOrCreateSchema = xstate.fromCallback(({ sendBack, input: { context } }
1084
1086
  // If schemaData is missing, try to load from internal schema file for seed-protocol
1085
1087
  if (!dbSchema.schemaData && schemaName === 'Seed Protocol') {
1086
1088
  try {
1087
- const internalSchema = await Promise.resolve().then(function () { return require('./index-C66AfYDG.js'); }).then(function (n) { return n.SEEDPROTOCOL_Seed_Protocol_v1; });
1089
+ const internalSchema = await Promise.resolve().then(function () { return require('./index-Cvvt0-5B.js'); }).then(function (n) { return n.SEEDPROTOCOL_Seed_Protocol_v1; });
1088
1090
  const schemaFile = internalSchema.default;
1089
1091
  logger$d(`Found seed-protocol schema in internal file (schemaData missing, using internal schema)`);
1090
1092
  // Update database with schemaData for future loads
@@ -1100,7 +1102,7 @@ const loadOrCreateSchema = xstate.fromCallback(({ sendBack, input: { context } }
1100
1102
  if (dbSchema.id) {
1101
1103
  modelIds = await getModelIdsForSchema$1(dbSchema.id);
1102
1104
  // Create Model instances so they're cached before getContext runs
1103
- await createModelInstances$2(modelIds);
1105
+ await createModelInstances$2(modelIds, evictionEpoch);
1104
1106
  }
1105
1107
  sendBack({
1106
1108
  type: 'loadOrCreateSchemaSuccess',
@@ -1162,7 +1164,7 @@ const loadOrCreateSchema = xstate.fromCallback(({ sendBack, input: { context } }
1162
1164
  if (matchingDraft.id) {
1163
1165
  modelIds = await getModelIdsForSchema$1(matchingDraft.id);
1164
1166
  // Create Model instances so they're cached before getContext runs
1165
- await createModelInstances$2(modelIds);
1167
+ await createModelInstances$2(modelIds, evictionEpoch);
1166
1168
  }
1167
1169
  // Track conflict detection metadata
1168
1170
  const loadedAt = Date.now();
@@ -1193,7 +1195,7 @@ const loadOrCreateSchema = xstate.fromCallback(({ sendBack, input: { context } }
1193
1195
  // Ensure models are populated (fallback for seed-protocol if missing)
1194
1196
  if ((!mergedModels || Object.keys(mergedModels).length === 0) && schemaName === 'Seed Protocol') {
1195
1197
  try {
1196
- const internalSchema = await Promise.resolve().then(function () { return require('./index-C66AfYDG.js'); }).then(function (n) { return n.SEEDPROTOCOL_Seed_Protocol_v1; });
1198
+ const internalSchema = await Promise.resolve().then(function () { return require('./index-Cvvt0-5B.js'); }).then(function (n) { return n.SEEDPROTOCOL_Seed_Protocol_v1; });
1197
1199
  const internalSchemaFile = internalSchema.default;
1198
1200
  mergedModels = { ...(internalSchemaFile.models || {}) };
1199
1201
  logger$d(`Populated models for seed-protocol schema from internal file`);
@@ -1216,7 +1218,7 @@ const loadOrCreateSchema = xstate.fromCallback(({ sendBack, input: { context } }
1216
1218
  if (schemaRecords.length > 0 && schemaRecords[0].id) {
1217
1219
  modelIds = await getModelIdsForSchema$1(schemaRecords[0].id);
1218
1220
  // Create Model instances so they're cached before getContext runs
1219
- await createModelInstances$2(modelIds);
1221
+ await createModelInstances$2(modelIds, evictionEpoch);
1220
1222
  }
1221
1223
  }
1222
1224
  }
@@ -1270,7 +1272,7 @@ const loadOrCreateSchema = xstate.fromCallback(({ sendBack, input: { context } }
1270
1272
  if (foundSchema.id) {
1271
1273
  modelIds = await getModelIdsForSchema$1(foundSchema.id);
1272
1274
  // Create Model instances so they're cached before getContext runs
1273
- await createModelInstances$2(modelIds);
1275
+ await createModelInstances$2(modelIds, evictionEpoch);
1274
1276
  }
1275
1277
  // Track conflict detection metadata
1276
1278
  const loadedAt = Date.now();
@@ -1302,7 +1304,7 @@ const loadOrCreateSchema = xstate.fromCallback(({ sendBack, input: { context } }
1302
1304
  if (foundSchema.id) {
1303
1305
  modelIds = await getModelIdsForSchema$1(foundSchema.id);
1304
1306
  // Create Model instances so they're cached before getContext runs
1305
- await createModelInstances$2(modelIds);
1307
+ await createModelInstances$2(modelIds, evictionEpoch);
1306
1308
  }
1307
1309
  // Track conflict detection metadata
1308
1310
  const loadedAt = Date.now();
@@ -1375,7 +1377,7 @@ const loadOrCreateSchema = xstate.fromCallback(({ sendBack, input: { context } }
1375
1377
  if (schemaRecords.length > 0 && schemaRecords[0].id) {
1376
1378
  modelIds = await getModelIdsForSchema$1(schemaRecords[0].id);
1377
1379
  // Create Model instances so they're cached before getContext runs
1378
- await createModelInstances$2(modelIds);
1380
+ await createModelInstances$2(modelIds, evictionEpoch);
1379
1381
  }
1380
1382
  }
1381
1383
  }
@@ -1513,12 +1515,12 @@ const getSchemaFilePath$1 = (name, version, schemaFileId) => {
1513
1515
  /**
1514
1516
  * Create Model instances for all model IDs to ensure they're cached
1515
1517
  */
1516
- const createModelInstances$1 = async (modelIds) => {
1518
+ const createModelInstances$1 = async (modelIds, evictionEpoch) => {
1517
1519
  if (modelIds.length === 0) {
1518
1520
  return;
1519
1521
  }
1520
1522
  try {
1521
- const mod = await Promise.resolve().then(function () { return require('./index-C66AfYDG.js'); }).then(function (n) { return n.Model$1; });
1523
+ const mod = await Promise.resolve().then(function () { return require('./index-Cvvt0-5B.js'); }).then(function (n) { return n.Model$1; });
1522
1524
  const Model = mod?.Model ?? mod?.default;
1523
1525
  if (!Model) {
1524
1526
  logger$c('Model not available from dynamic import');
@@ -1526,7 +1528,8 @@ const createModelInstances$1 = async (modelIds) => {
1526
1528
  }
1527
1529
  const createPromises = modelIds.map(async (modelFileId) => {
1528
1530
  try {
1529
- const model = await Model.createById(modelFileId);
1531
+ // Not if the schema was evicted (Schema.destroy, test cleanup) since this check started
1532
+ const model = await Model.createById(modelFileId, { evictionEpoch });
1530
1533
  if (model) {
1531
1534
  logger$c(`Created/cached Model instance for modelFileId "${modelFileId}"`);
1532
1535
  }
@@ -1543,6 +1546,7 @@ const createModelInstances$1 = async (modelIds) => {
1543
1546
  }
1544
1547
  };
1545
1548
  const checkExistingSchema = xstate.fromCallback(({ sendBack, input: { context } }) => {
1549
+ const evictionEpoch = main_cjs.currentEvictionEpoch();
1546
1550
  const _check = async () => {
1547
1551
  const { schemaName } = context;
1548
1552
  if (!schemaName) {
@@ -1563,7 +1567,7 @@ const checkExistingSchema = xstate.fromCallback(({ sendBack, input: { context }
1563
1567
  if (isInternal && schemaName === main_cjs.SEED_PROTOCOL_SCHEMA_NAME) {
1564
1568
  // For Seed Protocol, check if it exists in database
1565
1569
  try {
1566
- const internalSchema = await Promise.resolve().then(function () { return require('./index-C66AfYDG.js'); }).then(function (n) { return n.SEEDPROTOCOL_Seed_Protocol_v1; });
1570
+ const internalSchema = await Promise.resolve().then(function () { return require('./index-Cvvt0-5B.js'); }).then(function (n) { return n.SEEDPROTOCOL_Seed_Protocol_v1; });
1567
1571
  const schemaFile = internalSchema.default;
1568
1572
  if (db && schemaFile.id) {
1569
1573
  const existing = await db
@@ -1576,7 +1580,7 @@ const checkExistingSchema = xstate.fromCallback(({ sendBack, input: { context }
1576
1580
  let modelIds = [];
1577
1581
  if (schemaRecord.id) {
1578
1582
  modelIds = await getModelIdsForSchema(schemaRecord.id);
1579
- await createModelInstances$1(modelIds);
1583
+ await createModelInstances$1(modelIds, evictionEpoch);
1580
1584
  }
1581
1585
  sendBack({
1582
1586
  type: 'schemaFound',
@@ -1783,7 +1787,7 @@ const checkExistingSchema = xstate.fromCallback(({ sendBack, input: { context }
1783
1787
  let modelIds = [];
1784
1788
  if (dbSchema.id) {
1785
1789
  modelIds = await getModelIdsForSchema(dbSchema.id);
1786
- await createModelInstances$1(modelIds);
1790
+ await createModelInstances$1(modelIds, evictionEpoch);
1787
1791
  }
1788
1792
  const loadedAt = Date.now();
1789
1793
  const dbVersion = dbSchema.version || schemaFile.version;
@@ -1837,7 +1841,7 @@ const checkExistingSchema = xstate.fromCallback(({ sendBack, input: { context }
1837
1841
  let modelIds = [];
1838
1842
  if (matchingDraft.id) {
1839
1843
  modelIds = await getModelIdsForSchema(matchingDraft.id);
1840
- await createModelInstances$1(modelIds);
1844
+ await createModelInstances$1(modelIds, evictionEpoch);
1841
1845
  }
1842
1846
  const loadedAt = Date.now();
1843
1847
  const dbVersion = matchingDraft.version || schemaFile.version;
@@ -1872,7 +1876,7 @@ const checkExistingSchema = xstate.fromCallback(({ sendBack, input: { context }
1872
1876
  .limit(1);
1873
1877
  if (schemaRecords.length > 0 && schemaRecords[0].id) {
1874
1878
  modelIds = await getModelIdsForSchema(schemaRecords[0].id);
1875
- await createModelInstances$1(modelIds);
1879
+ await createModelInstances$1(modelIds, evictionEpoch);
1876
1880
  }
1877
1881
  }
1878
1882
  }
@@ -1921,7 +1925,7 @@ const writeSchemaToDb = xstate.fromCallback(({ sendBack, input }) => {
1921
1925
  if (isInternal && schemaName === main_cjs.SEED_PROTOCOL_SCHEMA_NAME) {
1922
1926
  // For Seed Protocol, load from internal file
1923
1927
  logger$b(`Loading internal Seed Protocol schema from SDK`);
1924
- const internalSchema = await Promise.resolve().then(function () { return require('./index-C66AfYDG.js'); }).then(function (n) { return n.SEEDPROTOCOL_Seed_Protocol_v1; });
1928
+ const internalSchema = await Promise.resolve().then(function () { return require('./index-Cvvt0-5B.js'); }).then(function (n) { return n.SEEDPROTOCOL_Seed_Protocol_v1; });
1925
1929
  finalSchema = internalSchema.default;
1926
1930
  const db = main_cjs.BaseDb.getAppDb();
1927
1931
  if (db && finalSchema.id) {
@@ -2378,6 +2382,7 @@ const logger$7 = debug('seedSdk:schema:actors:createModelInstances');
2378
2382
  * This ensures that Model.getById() in Schema.getContext() will find the instances
2379
2383
  */
2380
2384
  const createModelInstances = xstate.fromCallback(({ sendBack, input }) => {
2385
+ const evictionEpoch = main_cjs.currentEvictionEpoch();
2381
2386
  const _create = async () => {
2382
2387
  const { modelIds, schemaName } = input;
2383
2388
  if (modelIds.length === 0) {
@@ -2389,13 +2394,14 @@ const createModelInstances = xstate.fromCallback(({ sendBack, input }) => {
2389
2394
  return;
2390
2395
  }
2391
2396
  try {
2392
- const modelMod = await Promise.resolve().then(function () { return require('./index-C66AfYDG.js'); }).then(function (n) { return n.Model$1; });
2397
+ const modelMod = await Promise.resolve().then(function () { return require('./index-Cvvt0-5B.js'); }).then(function (n) { return n.Model$1; });
2393
2398
  const { Model } = modelMod;
2394
2399
  // Create instances for all model IDs in parallel
2395
2400
  // Model.createById() will check cache first, then query DB and create if needed
2396
2401
  const createPromises = modelIds.map(async (modelFileId) => {
2397
2402
  try {
2398
- const model = await Model.createById(modelFileId);
2403
+ // Not if the schema was evicted (Schema.destroy, test cleanup) since this started
2404
+ const model = await Model.createById(modelFileId, { evictionEpoch });
2399
2405
  if (model) {
2400
2406
  logger$7(`Created/cached Model instance for modelFileId "${modelFileId}"`);
2401
2407
  return true;
@@ -2475,7 +2481,7 @@ const verifyModelInstancesInCache = xstate.fromCallback(({ sendBack, input }) =>
2475
2481
  }
2476
2482
  try {
2477
2483
  const result = await verifyWithRetry$2(async () => {
2478
- const modelMod = await Promise.resolve().then(function () { return require('./index-C66AfYDG.js'); }).then(function (n) { return n.Model$1; });
2484
+ const modelMod = await Promise.resolve().then(function () { return require('./index-Cvvt0-5B.js'); }).then(function (n) { return n.Model$1; });
2479
2485
  const { Model } = modelMod;
2480
2486
  // Check each model ID in the cache
2481
2487
  const verifiedInstances = [];
@@ -2532,7 +2538,7 @@ const writePropertiesToDb = xstate.fromCallback(({ sendBack, input }) => {
2532
2538
  const _write = async () => {
2533
2539
  const { modelIds } = input;
2534
2540
  try {
2535
- const modelSchemaMod = await Promise.resolve().then(function () { return require('./index-C66AfYDG.js'); }).then(function (n) { return n.ModelSchema; });
2541
+ const modelSchemaMod = await Promise.resolve().then(function () { return require('./index-Cvvt0-5B.js'); }).then(function (n) { return n.ModelSchema; });
2536
2542
  const { models: modelsTable, properties: propertiesTable } = modelSchemaMod;
2537
2543
  const drizzleMod = await import('drizzle-orm');
2538
2544
  const { eq } = drizzleMod;
@@ -2720,9 +2726,9 @@ const createPropertyInstances = xstate.fromCallback(({ sendBack, input }) => {
2720
2726
  return;
2721
2727
  }
2722
2728
  try {
2723
- const modProp = await Promise.resolve().then(function () { return require('./ModelProperty-BEsIHAjk.js'); });
2729
+ const modProp = await Promise.resolve().then(function () { return require('./ModelProperty-Dv7AQfmQ.js'); });
2724
2730
  const ModelProperty = modProp?.ModelProperty ?? modProp?.default;
2725
- const modModel = await Promise.resolve().then(function () { return require('./index-C66AfYDG.js'); }).then(function (n) { return n.Model$1; });
2731
+ const modModel = await Promise.resolve().then(function () { return require('./index-Cvvt0-5B.js'); }).then(function (n) { return n.Model$1; });
2726
2732
  const Model = modModel?.Model ?? modModel?.default;
2727
2733
  if (!ModelProperty || !Model) {
2728
2734
  logger$3('ModelProperty or Model not available from dynamic import');
@@ -2827,7 +2833,7 @@ const verifyPropertyInstancesInCache = xstate.fromCallback(({ sendBack, input })
2827
2833
  }
2828
2834
  try {
2829
2835
  const result = await verifyWithRetry(async () => {
2830
- const mod = await Promise.resolve().then(function () { return require('./ModelProperty-BEsIHAjk.js'); });
2836
+ const mod = await Promise.resolve().then(function () { return require('./ModelProperty-Dv7AQfmQ.js'); });
2831
2837
  const ModelProperty = mod?.ModelProperty ?? mod?.default;
2832
2838
  if (!ModelProperty) {
2833
2839
  throw new Error('ModelProperty not available from dynamic import');
@@ -4392,7 +4398,7 @@ class Schema {
4392
4398
  _dbVersion: publishedSchema.version,
4393
4399
  });
4394
4400
  // Clear edited flags on all ModelProperty instances and in database
4395
- const modelPropertyMod = await Promise.resolve().then(function () { return require('./ModelProperty-BEsIHAjk.js'); });
4401
+ const modelPropertyMod = await Promise.resolve().then(function () { return require('./ModelProperty-Dv7AQfmQ.js'); });
4396
4402
  const { ModelProperty } = modelPropertyMod;
4397
4403
  for (const propertyKey of context._editedProperties) {
4398
4404
  const [modelName, propertyName] = propertyKey.split(':');
@@ -4416,7 +4422,7 @@ class Schema {
4416
4422
  try {
4417
4423
  if (db && modelName && propertyName) {
4418
4424
  // Find this schema's model by name
4419
- const { resolveModelRecord } = await Promise.resolve().then(function () { return require('./index-C66AfYDG.js'); }).then(function (n) { return n.resolveModelRecord$1; });
4425
+ const { resolveModelRecord } = await Promise.resolve().then(function () { return require('./index-Cvvt0-5B.js'); }).then(function (n) { return n.resolveModelRecord$1; });
4420
4426
  const modelRecord = await resolveModelRecord(modelName, { schemaName: thisSchemaName }, db);
4421
4427
  const modelRecords = modelRecord ? [modelRecord] : [];
4422
4428
  if (modelRecords.length > 0) {
@@ -4917,6 +4923,47 @@ class Schema {
4917
4923
  saveDraftLogger(`Removed schema from saving set (key: ${saveKey})`);
4918
4924
  }
4919
4925
  }
4926
+ /**
4927
+ * Force-evict the cached Schema instance(s) named `schemaName`, ignoring refCounts: stop their live
4928
+ * query and service. Schema.destroy does the same for itself. For code that deletes a schema's rows
4929
+ * without destroying it (test cleanup): a live Schema keeps re-creating its models from its live
4930
+ * query while their rows are being deleted.
4931
+ */
4932
+ static evict(schemaName) {
4933
+ const instances = new Set();
4934
+ for (const { instance } of Schema.instanceCacheById.values())
4935
+ instances.add(instance);
4936
+ for (const { instance } of Schema.instanceCacheByName.values())
4937
+ instances.add(instance);
4938
+ for (const instance of instances) {
4939
+ let context;
4940
+ try {
4941
+ context = instance._getSnapshotContext();
4942
+ }
4943
+ catch {
4944
+ continue;
4945
+ }
4946
+ if (context.schemaName !== schemaName)
4947
+ continue;
4948
+ main_cjs.clearDestroySubscriptions(instance, {
4949
+ instanceState: schemaInstanceState,
4950
+ onUnload: () => schemaInstanceState.delete(instance),
4951
+ });
4952
+ main_cjs.forceRemoveFromCaches(instance, {
4953
+ getCacheKeys: () => [context.id, context.schemaName].filter((k) => !!k),
4954
+ caches: [
4955
+ Schema.instanceCacheById,
4956
+ Schema.instanceCacheByName,
4957
+ ],
4958
+ });
4959
+ try {
4960
+ instance._service.stop();
4961
+ }
4962
+ catch {
4963
+ // Service might already be stopped
4964
+ }
4965
+ }
4966
+ }
4920
4967
  unload() {
4921
4968
  try {
4922
4969
  const context = this._getSnapshotContext();
@@ -4984,10 +5031,10 @@ class Schema {
4984
5031
  // instances too, or a re-import would get them back with dangling _dbIds.
4985
5032
  if (schemaName) {
4986
5033
  const evictedModelNames = main_cjs.Model.evictForSchema(schemaName);
4987
- const { ModelProperty } = await Promise.resolve().then(function () { return require('./ModelProperty-BEsIHAjk.js'); });
5034
+ const { ModelProperty } = await Promise.resolve().then(function () { return require('./ModelProperty-Dv7AQfmQ.js'); });
4988
5035
  ModelProperty.evictForModels(evictedModelNames, schemaName);
4989
5036
  // Evicting stops new writes but not ones already running; let those land before deleting their rows
4990
- const { waitForInFlightWrites } = await Promise.resolve().then(function () { return require('./index-C66AfYDG.js'); }).then(function (n) { return n.writeToDatabase; });
5037
+ const { waitForInFlightWrites } = await Promise.resolve().then(function () { return require('./index-Cvvt0-5B.js'); }).then(function (n) { return n.writeToDatabase; });
4991
5038
  await waitForInFlightWrites();
4992
5039
  }
4993
5040
  await main_cjs.runDestroyLifecycle(this, {
@@ -5131,8 +5178,10 @@ class Schema {
5131
5178
  }
5132
5179
  },
5133
5180
  createChildInstances: async (ids) => {
5181
+ // One at a time: an eviction of this schema part way through stops the rest
5182
+ const evictionEpoch = main_cjs.currentEvictionEpoch();
5134
5183
  for (const id of ids) {
5135
- await main_cjs.Model.createById(id);
5184
+ await main_cjs.Model.createById(id, { evictionEpoch });
5136
5185
  }
5137
5186
  },
5138
5187
  queryInitialData: async (schemaId) => {
@@ -5204,4 +5253,4 @@ Schema.savingSchemas = new Set();
5204
5253
 
5205
5254
  exports.Schema = Schema;
5206
5255
  exports.schemaInstanceState = schemaInstanceState;
5207
- //# sourceMappingURL=Schema-qEp5mH1N.js.map
5256
+ //# sourceMappingURL=Schema-BHVp1g-M.js.map