@seedprotocol/sdk 0.7.3-next.654.g52217f6 → 0.7.3

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 (187) hide show
  1. package/dist/{db-D9K_f5cF.js → BasePathResolver-Cm4apKRb.js} +2041 -127
  2. package/dist/BasePathResolver-Cm4apKRb.js.map +1 -0
  3. package/dist/{ClientManager-C-QXqUK9.js → ClientManager-i3nJASkg.js} +249 -147
  4. package/dist/ClientManager-i3nJASkg.js.map +1 -0
  5. package/dist/{Item-C7sUUu2B.js → Item-DBFchXpC.js} +259 -169
  6. package/dist/Item-DBFchXpC.js.map +1 -0
  7. package/dist/{ModelProperty-DJxeOOrc.js → ModelProperty-BS49g01Y.js} +166 -47
  8. package/dist/ModelProperty-BS49g01Y.js.map +1 -0
  9. package/dist/{Schema-fXtvd-yL.js → Schema-CpMNEnUO.js} +53 -42
  10. package/dist/Schema-CpMNEnUO.js.map +1 -0
  11. package/dist/{SchemaValidationService-CvRS2HSO.js → SchemaValidationService-DieV4KL-.js} +15 -17
  12. package/dist/{SchemaValidationService-CvRS2HSO.js.map → SchemaValidationService-DieV4KL-.js.map} +1 -1
  13. package/dist/{backfillMetadataPropertyIds-SXW-8C64.js → backfillMetadataPropertyIds-DSoOoTnX.js} +14 -7
  14. package/dist/{backfillMetadataPropertyIds-SXW-8C64.js.map → backfillMetadataPropertyIds-DSoOoTnX.js.map} +1 -1
  15. package/dist/{configurePlatform-BRw2j0ZN.js → configurePlatform-D0lQGAMQ.js} +5 -7
  16. package/dist/{configurePlatform-BRw2j0ZN.js.map → configurePlatform-D0lQGAMQ.js.map} +1 -1
  17. package/dist/detachRowsBeforeDelete-S0q-DJPT.js +50 -0
  18. package/dist/detachRowsBeforeDelete-S0q-DJPT.js.map +1 -0
  19. package/dist/{eas-DHxfswCt.js → eas-6pjU-OuX.js} +6 -8
  20. package/dist/eas-6pjU-OuX.js.map +1 -0
  21. package/dist/{getItem-d6N_aM6S.js → getItem-CxBNZ-WL.js} +10 -11
  22. package/dist/{getItem-d6N_aM6S.js.map → getItem-CxBNZ-WL.js.map} +1 -1
  23. package/dist/{getPublishPayload-BHrxVtzY.js → getPublishPayload-CTCvRUoU.js} +50 -18
  24. package/dist/getPublishPayload-CTCvRUoU.js.map +1 -0
  25. package/dist/{getPublishUploads-BEqRiKIS.js → getPublishUploads-SFHCbf_y.js} +13 -22
  26. package/dist/{getPublishUploads-BEqRiKIS.js.map → getPublishUploads-SFHCbf_y.js.map} +1 -1
  27. package/dist/{index-s15q14rm.js → index-8O3Uow-Y.js} +125 -57
  28. package/dist/index-8O3Uow-Y.js.map +1 -0
  29. package/dist/{index-DglvthOk.js → index-AVFTVp1m.js} +2 -2
  30. package/dist/index-AVFTVp1m.js.map +1 -0
  31. package/dist/index-Cvt5UBz4.js +30 -0
  32. package/dist/index-Cvt5UBz4.js.map +1 -0
  33. package/dist/{index.browser-Cm06tP4X.js → index.browser-DBhxRoe8.js} +11 -10
  34. package/dist/{index.browser-Cm06tP4X.js.map → index.browser-DBhxRoe8.js.map} +1 -1
  35. package/dist/{index.node-C30dmFgn.js → index.node-CJhlcNHM.js} +25 -13
  36. package/dist/index.node-CJhlcNHM.js.map +1 -0
  37. package/dist/main.js +27 -32
  38. package/dist/main.js.map +1 -1
  39. package/dist/node.js +19 -22
  40. package/dist/node.js.map +1 -1
  41. package/dist/platform.browser.js +9 -9
  42. package/dist/platform.node.js +18 -5
  43. package/dist/platform.node.js.map +1 -1
  44. package/dist/{property-DhmmYAvQ.js → property-DwPD283A.js} +11 -12
  45. package/dist/property-DwPD283A.js.map +1 -0
  46. package/dist/{publishDraftGraph-yYP74WRt.js → publishDraftGraph-BOn3_Occ.js} +6 -9
  47. package/dist/{publishDraftGraph-yYP74WRt.js.map → publishDraftGraph-BOn3_Occ.js.map} +1 -1
  48. package/dist/{resetAmbiguousLegacyItemData-Bk0QyDW8.js → resetAmbiguousLegacyItemData-BkYmBeJc.js} +14 -3
  49. package/dist/{resetAmbiguousLegacyItemData-Bk0QyDW8.js.map → resetAmbiguousLegacyItemData-BkYmBeJc.js.map} +1 -1
  50. package/dist/{resolveModelForSyncedSeed-8cAzvUFd.js → resolveModelForSyncedSeed-BL24nLa7.js} +2 -2
  51. package/dist/{resolveModelForSyncedSeed-8cAzvUFd.js.map → resolveModelForSyncedSeed-BL24nLa7.js.map} +1 -1
  52. package/dist/src/Item/Item.d.ts +20 -2
  53. package/dist/src/Item/Item.d.ts.map +1 -1
  54. package/dist/src/Item/service/actors/runPublish.d.ts +11 -2
  55. package/dist/src/Item/service/actors/runPublish.d.ts.map +1 -1
  56. package/dist/src/Item/service/itemMachineSingle.d.ts +12 -2
  57. package/dist/src/Item/service/itemMachineSingle.d.ts.map +1 -1
  58. package/dist/src/ItemProperty/ItemProperty.d.ts +5 -3
  59. package/dist/src/ItemProperty/ItemProperty.d.ts.map +1 -1
  60. package/dist/src/ItemProperty/service/actors/saveValueToDb/analyzeInput.d.ts.map +1 -1
  61. package/dist/src/ItemProperty/service/propertyMachine.d.ts.map +1 -1
  62. package/dist/src/Model/Model.d.ts +10 -4
  63. package/dist/src/Model/Model.d.ts.map +1 -1
  64. package/dist/src/Model/index.d.ts +2 -2
  65. package/dist/src/ModelProperty/ModelProperty.d.ts +10 -2
  66. package/dist/src/ModelProperty/ModelProperty.d.ts.map +1 -1
  67. package/dist/src/ModelProperty/service/modelPropertyMachine.d.ts +3 -0
  68. package/dist/src/ModelProperty/service/modelPropertyMachine.d.ts.map +1 -1
  69. package/dist/src/Schema/Schema.d.ts +2 -2
  70. package/dist/src/Schema/Schema.d.ts.map +1 -1
  71. package/dist/src/Schema/index.d.ts +0 -1
  72. package/dist/src/Schema/index.d.ts.map +1 -1
  73. package/dist/src/client/ClientManager.d.ts +30 -11
  74. package/dist/src/client/ClientManager.d.ts.map +1 -1
  75. package/dist/src/client/actors/platformClassesInit.d.ts +6 -0
  76. package/dist/src/client/actors/platformClassesInit.d.ts.map +1 -1
  77. package/dist/src/client/actors/processSchemaFiles.d.ts.map +1 -1
  78. package/dist/src/client/actors/saveConfig.d.ts +13 -6
  79. package/dist/src/client/actors/saveConfig.d.ts.map +1 -1
  80. package/dist/src/db/read/getPublishPayload.d.ts +1 -1
  81. package/dist/src/db/read/getPublishPayload.d.ts.map +1 -1
  82. package/dist/src/db/write/claimUnpublishedDrafts.d.ts +2 -0
  83. package/dist/src/db/write/claimUnpublishedDrafts.d.ts.map +1 -1
  84. package/dist/src/eventBus.d.ts +5 -0
  85. package/dist/src/eventBus.d.ts.map +1 -1
  86. package/dist/src/helpers/cachedPropertyRefresh.d.ts +12 -0
  87. package/dist/src/helpers/cachedPropertyRefresh.d.ts.map +1 -0
  88. package/dist/src/helpers/db.d.ts +3 -0
  89. package/dist/src/helpers/db.d.ts.map +1 -1
  90. package/dist/src/helpers/easSdk.d.ts +16 -0
  91. package/dist/src/helpers/easSdk.d.ts.map +1 -0
  92. package/dist/src/helpers/entity/detachRowsBeforeDelete.d.ts +16 -0
  93. package/dist/src/helpers/entity/detachRowsBeforeDelete.d.ts.map +1 -0
  94. package/dist/src/helpers/entity/entityDestroy.d.ts +2 -0
  95. package/dist/src/helpers/entity/entityDestroy.d.ts.map +1 -1
  96. package/dist/src/helpers/ownership.d.ts +9 -1
  97. package/dist/src/helpers/ownership.d.ts.map +1 -1
  98. package/dist/src/helpers/property/index.d.ts +37 -51
  99. package/dist/src/helpers/property/index.d.ts.map +1 -1
  100. package/dist/src/helpers/publishConfig.d.ts +27 -8
  101. package/dist/src/helpers/publishConfig.d.ts.map +1 -1
  102. package/dist/src/helpers/updateSchema.d.ts +5 -0
  103. package/dist/src/helpers/updateSchema.d.ts.map +1 -1
  104. package/dist/src/helpers/waitForEntityIdle.d.ts +5 -0
  105. package/dist/src/helpers/waitForEntityIdle.d.ts.map +1 -1
  106. package/dist/src/imports/json.d.ts +9 -0
  107. package/dist/src/imports/json.d.ts.map +1 -1
  108. package/dist/src/index.d.ts +6 -4
  109. package/dist/src/index.d.ts.map +1 -1
  110. package/dist/src/interfaces/IItem.d.ts +7 -1
  111. package/dist/src/interfaces/IItem.d.ts.map +1 -1
  112. package/dist/src/node/db/Db.d.ts.map +1 -1
  113. package/dist/src/node/helpers/PathResolver.d.ts.map +1 -1
  114. package/dist/src/node/index.d.ts +8 -1
  115. package/dist/src/node/index.d.ts.map +1 -1
  116. package/dist/src/platform/index.browser.d.ts +2 -0
  117. package/dist/src/platform/index.browser.d.ts.map +1 -1
  118. package/dist/src/platform/index.node.d.ts +2 -0
  119. package/dist/src/platform/index.node.d.ts.map +1 -1
  120. package/dist/src/types/index.d.ts +12 -1
  121. package/dist/src/types/index.d.ts.map +1 -1
  122. package/dist/src/types/machines.d.ts +2 -0
  123. package/dist/src/types/machines.d.ts.map +1 -1
  124. package/dist/src/types/property.d.ts +8 -0
  125. package/dist/src/types/property.d.ts.map +1 -1
  126. package/dist/{syncDbWithEas--HUA9WNb.js → syncDbWithEas-Bv2Fe38J.js} +15 -16
  127. package/dist/syncDbWithEas-Bv2Fe38J.js.map +1 -0
  128. package/dist/tabEvents-9s2WCYw-.js +335 -0
  129. package/dist/tabEvents-9s2WCYw-.js.map +1 -0
  130. package/dist/{tolerantWebAccess-BZYWt09Y.js → tolerantWebAccess-iUu80pAP.js} +9 -9
  131. package/dist/{tolerantWebAccess-BZYWt09Y.js.map → tolerantWebAccess-iUu80pAP.js.map} +1 -1
  132. package/dist/{updateSeedRevokedAt-D_EG-q3b.js → updateSeedRevokedAt-zBfi931j.js} +3 -3
  133. package/dist/{updateSeedRevokedAt-D_EG-q3b.js.map → updateSeedRevokedAt-zBfi931j.js.map} +1 -1
  134. package/package.json +11 -12
  135. package/src/node/easLodashRegister.js +4 -0
  136. package/dist/BasePathResolver-CfSfMW5_.js +0 -676
  137. package/dist/BasePathResolver-CfSfMW5_.js.map +0 -1
  138. package/dist/ClientManager-C-QXqUK9.js.map +0 -1
  139. package/dist/Item-C7sUUu2B.js.map +0 -1
  140. package/dist/ModelProperty-DJxeOOrc.js.map +0 -1
  141. package/dist/Schema-fXtvd-yL.js.map +0 -1
  142. package/dist/cjs/ModelProperty-DXZ39Wyv.js +0 -1978
  143. package/dist/cjs/ModelProperty-DXZ39Wyv.js.map +0 -1
  144. package/dist/cjs/Schema-DdP109QD.js +0 -5257
  145. package/dist/cjs/Schema-DdP109QD.js.map +0 -1
  146. package/dist/cjs/SchemaValidationService-CSXxx7sQ.js +0 -779
  147. package/dist/cjs/SchemaValidationService-CSXxx7sQ.js.map +0 -1
  148. package/dist/cjs/backfillMetadataPropertyIds-CPYoaMl4.js +0 -90
  149. package/dist/cjs/backfillMetadataPropertyIds-CPYoaMl4.js.map +0 -1
  150. package/dist/cjs/eas-B2YDQssV.js +0 -139
  151. package/dist/cjs/eas-B2YDQssV.js.map +0 -1
  152. package/dist/cjs/getItem-DgnaQzbE.js +0 -59
  153. package/dist/cjs/getItem-DgnaQzbE.js.map +0 -1
  154. package/dist/cjs/getPublishPayload-CqlqRdot.js +0 -1604
  155. package/dist/cjs/getPublishPayload-CqlqRdot.js.map +0 -1
  156. package/dist/cjs/getPublishUploads-DsXY9S4U.js +0 -872
  157. package/dist/cjs/getPublishUploads-DsXY9S4U.js.map +0 -1
  158. package/dist/cjs/index-BHaWOwNF.js +0 -71
  159. package/dist/cjs/index-BHaWOwNF.js.map +0 -1
  160. package/dist/cjs/index-C4XlgCJ4.js +0 -22801
  161. package/dist/cjs/index-C4XlgCJ4.js.map +0 -1
  162. package/dist/cjs/index.browser-BSf8HpnU.js +0 -22
  163. package/dist/cjs/index.browser-BSf8HpnU.js.map +0 -1
  164. package/dist/cjs/property-fa0iju0J.js +0 -328
  165. package/dist/cjs/property-fa0iju0J.js.map +0 -1
  166. package/dist/cjs/publishDraftGraph-3ASwAlD7.js +0 -403
  167. package/dist/cjs/publishDraftGraph-3ASwAlD7.js.map +0 -1
  168. package/dist/cjs/resetAmbiguousLegacyItemData-Bu_MBBYt.js +0 -117
  169. package/dist/cjs/resetAmbiguousLegacyItemData-Bu_MBBYt.js.map +0 -1
  170. package/dist/cjs/resolveModelForSyncedSeed-BANIiuFU.js +0 -49
  171. package/dist/cjs/resolveModelForSyncedSeed-BANIiuFU.js.map +0 -1
  172. package/dist/cjs/syncDbWithEas-CrmxxmUW.js +0 -887
  173. package/dist/cjs/syncDbWithEas-CrmxxmUW.js.map +0 -1
  174. package/dist/db-D9K_f5cF.js.map +0 -1
  175. package/dist/eas-DHxfswCt.js.map +0 -1
  176. package/dist/getPublishPayload-BHrxVtzY.js.map +0 -1
  177. package/dist/index-CiMEoGu3.js +0 -32
  178. package/dist/index-CiMEoGu3.js.map +0 -1
  179. package/dist/index-DglvthOk.js.map +0 -1
  180. package/dist/index-s15q14rm.js.map +0 -1
  181. package/dist/index.node-C30dmFgn.js.map +0 -1
  182. package/dist/main.cjs +0 -85
  183. package/dist/main.cjs.map +0 -1
  184. package/dist/property-DhmmYAvQ.js.map +0 -1
  185. package/dist/syncDbWithEas--HUA9WNb.js.map +0 -1
  186. package/dist/tabEvents-DguZpCCv.js +0 -1580
  187. package/dist/tabEvents-DguZpCCv.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"publishDraftGraph-yYP74WRt.js","sources":["../../src/helpers/getSegmentedItemProperties.ts","../../src/db/read/isSeedRevoked.ts","../../src/db/read/resolveRelatedSeedRef.ts","../../src/db/read/publishDraftGraph.ts"],"sourcesContent":["import { UploadProperty } from '@/db/read/getPublishUploads'\nimport { IItem } from '@/interfaces'\nimport { ModelPropertyDataTypes, normalizeDataType } from '@/Schema'\nimport { getPropertySchema, TProperty } from '@/helpers/property'\nimport { getItemModelScope, resolveModelRecord, type ModelScope } from '@/db/read/resolveModelRecord'\nimport type { Static } from '@sinclair/typebox'\nimport { BaseDb } from '@/db/Db/BaseDb'\nimport { models, properties } from '@/seedSchema'\nimport { eq, and } from 'drizzle-orm'\nimport { camelCase, upperFirst } from 'lodash-es'\n\nconst matchesDataType = (\n actual: string | undefined,\n expected: ModelPropertyDataTypes | string,\n): boolean => normalizeDataType(actual) === expected\nasync function resolvePropertyDef(\n modelName: string,\n propertyName: string,\n scope: ModelScope,\n): Promise<{ dataType?: string; ref?: string; refValueType?: string; storageType?: string; localStorageDir?: string; filenameSuffix?: string; required?: boolean } | undefined> {\n let schema = await getPropertySchema(modelName, propertyName, scope)\n if (schema) return schema\n const db = BaseDb.getAppDb()\n if (!db) return undefined\n try {\n const normalizedModelName = upperFirst(camelCase(modelName))\n const modelRecord = await resolveModelRecord(normalizedModelName, scope, db)\n const modelRecords = modelRecord ? [modelRecord] : []\n if (modelRecords.length === 0 || !modelRecords[0].id) return undefined\n const propertyRecords = await db\n .select()\n .from(properties)\n .where(\n and(\n eq(properties.modelId, modelRecords[0].id),\n eq(properties.name, propertyName),\n ),\n )\n .limit(1)\n if (propertyRecords.length === 0) return undefined\n const propRecord = propertyRecords[0]\n let refModelName: string | undefined\n if (propRecord.refModelId != null) {\n const refModelRows = await db\n .select({ name: models.name })\n .from(models)\n .where(eq(models.id, propRecord.refModelId))\n .limit(1)\n refModelName = refModelRows[0]?.name ?? undefined\n }\n return {\n dataType: propRecord.dataType,\n ref: refModelName ?? undefined,\n refValueType: propRecord.refValueType || undefined,\n storageType: propRecord.storageType || undefined,\n localStorageDir: propRecord.localStorageDir || undefined,\n filenameSuffix: propRecord.filenameSuffix || undefined,\n required: propRecord.required ?? undefined,\n }\n } catch {\n return undefined\n }\n}\n\nexport const getSegmentedItemProperties = async (item: IItem<any>) => {\n const itemBasicProperties = []\n const itemRelationProperties = []\n const itemListProperties = []\n const itemUploadProperties: UploadProperty[] = []\n const itemImageProperties = []\n const itemStorageProperties = []\n let itemStorageTransactionProperty: UploadProperty | undefined\n let itemScope: ModelScope | undefined\n\n for (const itemProperty of item.properties) {\n let propertyDef = itemProperty.propertyDef\n // When propertyDef is missing (e.g. external app, Model not registered), resolve inline\n // so properties are not skipped and metadata attestations can be created\n if (!propertyDef && item.modelName) {\n itemScope ??= await getItemModelScope(item as any)\n const resolved = await resolvePropertyDef(item.modelName, itemProperty.propertyName, itemScope)\n if (resolved) {\n itemProperty.getService().send({ type: 'updateContext', propertyRecordSchema: resolved })\n propertyDef = resolved as Static<typeof TProperty>\n } else {\n // Last resort: Model and DB don't have schema. Use Text so property routes to\n // itemBasicProperties and can be attested (covers title, description, etc.)\n const fallbackDef = { dataType: 'Text' as const }\n itemProperty.getService().send({ type: 'updateContext', propertyRecordSchema: fallbackDef })\n propertyDef = fallbackDef as Static<typeof TProperty>\n }\n }\n if (!propertyDef) {\n continue\n }\n\n const isItemStorage =\n propertyDef.storageType &&\n propertyDef.storageType === 'ItemStorage'\n\n\n const isStorageTransaction =\n itemProperty.propertyName === 'storageTransactionId' ||\n itemProperty.propertyName === 'storage_transaction_id'\n\n const isStorageSeedType =\n matchesDataType(propertyDef.dataType, ModelPropertyDataTypes.Image) ||\n matchesDataType(propertyDef.dataType, ModelPropertyDataTypes.File) ||\n matchesDataType(propertyDef.dataType, ModelPropertyDataTypes.Html) ||\n matchesDataType(propertyDef.dataType, ModelPropertyDataTypes.Json) ||\n (matchesDataType(propertyDef.dataType, ModelPropertyDataTypes.Relation) &&\n (matchesDataType(propertyDef.refValueType, ModelPropertyDataTypes.Image) ||\n matchesDataType(propertyDef.refValueType, ModelPropertyDataTypes.File) ||\n matchesDataType(propertyDef.refValueType, ModelPropertyDataTypes.Html) ||\n matchesDataType(propertyDef.refValueType, ModelPropertyDataTypes.Json)))\n\n if (isStorageSeedType) {\n itemImageProperties.push(itemProperty)\n if (matchesDataType(propertyDef.dataType, ModelPropertyDataTypes.Relation)) {\n itemRelationProperties.push(itemProperty)\n }\n continue\n }\n\n if (matchesDataType(propertyDef.dataType, ModelPropertyDataTypes.Relation)) {\n itemRelationProperties.push(itemProperty)\n continue\n }\n\n if (matchesDataType(propertyDef.dataType, ModelPropertyDataTypes.List)) {\n // List-of-relations: ref present, goes to processListProperty\n // List-of-primitives: ref absent, treat as basic property\n const listRef =\n propertyDef.ref || (propertyDef as { refModelName?: string }).refModelName\n if (listRef) {\n itemListProperties.push(itemProperty)\n } else {\n itemBasicProperties.push(itemProperty)\n }\n continue\n }\n\n if (isItemStorage) {\n itemStorageProperties.push(itemProperty)\n continue\n }\n\n if (isStorageTransaction) {\n itemStorageTransactionProperty = { itemProperty, childProperties: [] }\n continue\n }\n\n itemBasicProperties.push(itemProperty)\n }\n\n if (itemStorageTransactionProperty && itemStorageProperties.length > 0) {\n itemStorageTransactionProperty.childProperties = itemStorageProperties\n }\n\n if (itemStorageTransactionProperty) {\n itemUploadProperties.push(itemStorageTransactionProperty)\n }\n\n return {\n itemBasicProperties,\n itemRelationProperties,\n itemListProperties,\n itemUploadProperties,\n itemImageProperties,\n }\n}\n","import { BaseDb } from '@/db/Db/BaseDb'\nimport { seeds } from '@/seedSchema'\nimport { eq } from 'drizzle-orm'\nimport { isVersionRevoked } from './subqueries/liveVersion'\n\n/**\n * True when the item's seed attestation was revoked (`seeds.revoked_at` set, by unpublish or EAS\n * sync). Such a seed can't take new versions: publishing again creates a new seed attestation\n * (see \"Republishing\" in docs/ATTESTATION_REVOCATION.md).\n */\nexport const isSeedRevoked = async (seedLocalId: string | undefined): Promise<boolean> => {\n if (!seedLocalId) return false\n const appDb = BaseDb.getAppDb()\n if (!appDb) return false\n const [row] = await appDb\n .select({ revokedAt: seeds.revokedAt })\n .from(seeds)\n .where(eq(seeds.localId, seedLocalId))\n .limit(1)\n return isVersionRevoked(row?.revokedAt)\n}\n","import { BaseDb } from '@/db/Db/BaseDb'\nimport { seeds, versions } from '@/seedSchema'\nimport { and, eq, isNotNull } from 'drizzle-orm'\nimport { ZERO_BYTES32 } from '@/helpers/constants'\nimport { isVersionRevoked } from './subqueries/liveVersion'\nimport { ModelPropertyDataTypes, normalizeDataType } from '@/helpers/property'\nimport type { IItem } from '@/interfaces'\n\nexport type RelatedSeedRow = {\n seedLocalId: string\n /** The seed's current uid (null while it was never published). */\n seedUid: string | null\n revokedAt: number | null\n type: string | null\n}\n\nconst selectSeed = {\n seedLocalId: seeds.localId,\n seedUid: seeds.uid,\n revokedAt: seeds.revokedAt,\n type: seeds.type,\n}\n\n/**\n * The local seed row a relation/list/image ref points at, by local id or uid. A uid that is no\n * seed's current uid can be the old uid of a seed that was unpublished and published again (a new\n * seed attestation, same local seed): its old version rows still record it, so it resolves to that\n * seed. Null when nothing local matches (e.g. a published uid with no local copy).\n */\nexport const findRelatedSeedRow = async ({\n seedLocalId,\n seedUid,\n}: {\n seedLocalId?: string\n seedUid?: string\n}): Promise<RelatedSeedRow | null> => {\n const appDb = BaseDb.getAppDb()\n if (!appDb) return null\n if (seedLocalId) {\n const [row] = await appDb.select(selectSeed).from(seeds).where(eq(seeds.localId, seedLocalId)).limit(1)\n if (row?.seedLocalId) return row as RelatedSeedRow\n }\n if (!seedUid || seedUid === ZERO_BYTES32) return null\n const [byUid] = await appDb.select(selectSeed).from(seeds).where(eq(seeds.uid, seedUid)).limit(1)\n if (byUid?.seedLocalId) return byUid as RelatedSeedRow\n const [version] = await appDb\n .select({ seedLocalId: versions.seedLocalId })\n .from(versions)\n .where(and(eq(versions.seedUid, seedUid), isNotNull(versions.seedLocalId)))\n .limit(1)\n if (!version?.seedLocalId) return null\n const [republished] = await appDb\n .select(selectSeed)\n .from(seeds)\n .where(eq(seeds.localId, version.seedLocalId))\n .limit(1)\n return republished?.seedLocalId ? (republished as RelatedSeedRow) : null\n}\n\n/** The seed is attested and its attestation is live. */\nexport const isLivePublishedSeed = (row: RelatedSeedRow | null): row is RelatedSeedRow & { seedUid: string } =>\n !!row?.seedUid && row.seedUid !== ZERO_BYTES32 && !isVersionRevoked(row.revokedAt)\n\n/** The seed was attested and that attestation was revoked (unpublished). */\nexport const isUnpublishedSeed = (row: RelatedSeedRow | null): row is RelatedSeedRow & { seedUid: string } =>\n !!row?.seedUid && row.seedUid !== ZERO_BYTES32 && isVersionRevoked(row.revokedAt)\n\n/** Model a relation/list/image property points at, from its definition. */\nexport function relatedModelNameFromDef(propertyDef: unknown): string | undefined {\n const def = propertyDef as { dataType?: string; ref?: string; refModelName?: string } | undefined\n if (!def) return undefined\n const dataType = normalizeDataType(def.dataType)\n if (dataType === ModelPropertyDataTypes.Image) return 'Image'\n if (dataType === ModelPropertyDataTypes.File) return 'File'\n if (dataType === ModelPropertyDataTypes.Html) return 'Html'\n return def.ref ?? def.refModelName\n}\n\n/**\n * Name of the item's Html property whose value is the Html seed `htmlSeedLocalId`: the property\n * that refers to the images embedded in that Html (htmlEmbeddedImageCoPublish rows).\n */\nexport function htmlPropertyNameForHtmlSeed(item: IItem<any>, htmlSeedLocalId: string): string {\n const want = htmlSeedLocalId.trim()\n for (const p of item.properties ?? []) {\n if (normalizeDataType(p.propertyDef?.dataType) !== ModelPropertyDataTypes.Html) continue\n const snap = p.getService().getSnapshot()\n const value = 'context' in snap ? (snap.context as { propertyValue?: unknown }).propertyValue : undefined\n if (typeof value === 'string' && value.trim() === want) return p.propertyName\n }\n return 'html'\n}\n","import { ZERO_BYTES32 } from '@/helpers/constants'\nimport { parseListPropertyValueFromStorage } from '@/helpers/listPropertyValueFromStorage'\nimport { getSegmentedItemProperties } from '@/helpers/getSegmentedItemProperties'\nimport {\n isPublishedSeedRef,\n normalizeRelationPropertyValue,\n resolveSeedIdsFromRefString,\n} from '@/helpers/relationSeedRef'\nimport type { IItem, IItemProperty } from '@/interfaces'\nimport { findRelatedSeedRow } from '@/db/read/resolveRelatedSeedRef'\nimport { isSeedRevoked } from '@/db/read/isSeedRevoked'\n\n/**\n * The draft items a publish of an item carries along, and how it walks to them.\n *\n * A publish attests the item and every draft item (no seed uid yet) reachable from it through\n * relation and list-of-relation properties, each with its full property set. Already-published\n * targets are referenced by their current uid and not walked into; revoked ones stop the publish\n * (RelatedItemUnpublishedError). getPublishPayload, getPublishUploads, getPublishUploadData (publish\n * package), summarizePublishWork and the Html-embedded image co-publish all walk this graph in the\n * same order: depth first, properties in item order (relations, then lists), list members in order.\n *\n * Cycles: an item can only attest the uid of a seed published before it in the same publish, so a\n * ref back to an item still being walked (an ancestor that gets a new seed in this publish) can't be\n * attested. Such a property is deferred: left out of this publish (it keeps no uid, so the next\n * publish of its item attests it, with the target's uid). For A ↔ B reached from A, A attests B's\n * uid and B's relation to A is deferred.\n */\n\n/** Relation properties that point at model items (not Image/File/Html/Json storage seeds). */\nexport function draftWalkProperties(segmented: {\n itemRelationProperties: IItemProperty<any>[]\n itemImageProperties: IItemProperty<any>[]\n itemListProperties: IItemProperty<any>[]\n}): { relationProperties: IItemProperty<any>[]; listProperties: IItemProperty<any>[] } {\n const storage = new Set(segmented.itemImageProperties)\n return {\n relationProperties: segmented.itemRelationProperties.filter((p) => !storage.has(p)),\n listProperties: segmented.itemListProperties,\n }\n}\n\nconst propertyContext = (prop: IItemProperty<any>): Record<string, unknown> | null => {\n const snapshot = prop.getService().getSnapshot()\n return snapshot && 'context' in snapshot\n ? ((snapshot as { context?: Record<string, unknown> }).context ?? null)\n : null\n}\n\n/** Seed refs held by a relation property (one) or a list property (each member). */\nexport function propertySeedRefs(prop: IItemProperty<any>, isList: boolean): string[] {\n const context = propertyContext(prop)\n if (!context) return []\n let value = context.propertyValue\n if (isList) {\n if (typeof value === 'string') value = parseListPropertyValueFromStorage(value)\n const arr = Array.isArray(value) ? value : value != null ? [value] : []\n return arr\n .map((v) =>\n v && typeof v === 'object'\n ? normalizeRelationPropertyValue(\n (v as { seedLocalId?: string; localId?: string }).seedLocalId ??\n (v as { localId?: string }).localId ??\n (v as { seedUid?: string }).seedUid ??\n (v as { uid?: string }).uid,\n )\n : normalizeRelationPropertyValue(v),\n )\n .filter((v): v is string => !!v)\n }\n const ref = normalizeRelationPropertyValue(value)\n return ref ? [ref] : []\n}\n\nconst isZeroUid = (uid: string | undefined | null): boolean => !uid || uid === ZERO_BYTES32\n\n/** The item gets a new seed attestation in this publish: a draft, or a revoked seed published again. */\nexport async function getsNewSeed(item: IItem<any>): Promise<boolean> {\n return isZeroUid(item.seedUid) || (await isSeedRevoked(item.seedLocalId))\n}\n\n/** Local seed id a ref points at (also for a republished seed's old uid), or undefined. */\nexport async function resolveRefSeedLocalId(ref: string): Promise<string | undefined> {\n const { seedLocalId, seedUid } = resolveSeedIdsFromRefString(ref)\n if (!seedLocalId && !seedUid) return undefined\n const row = await findRelatedSeedRow({ seedLocalId, seedUid })\n return row?.seedLocalId ?? seedLocalId\n}\n\nexport type PublishDraftGraphNode = {\n item: IItem<any>\n /** The relation or list property the walk first reached the item through. */\n via: IItemProperty<any>\n viaList: boolean\n}\n\nexport type PublishDraftGraph = {\n /** Draft items reachable from the root (root excluded), in the order the walk finishes them. */\n drafts: PublishDraftGraphNode[]\n /** Properties pointing back at an item still being walked; left out of this publish. */\n deferredProperties: Set<IItemProperty<any>>\n /** For each deferred property, the seeds (local ids) of its back references. */\n backReferences: Map<IItemProperty<any>, Set<string>>\n}\n\nexport type GetPublishDraftGraphOptions = {\n /** `new_version` / republish: properties that already have a uid are attested (and walked) again. */\n forceFullSnapshot?: boolean\n /**\n * Throw like getPublishUploads always did when a relation holds an invalid value or a local id\n * with no local item. Otherwise such refs are skipped (getPublishPayload reports them).\n */\n strict?: boolean\n}\n\n/** Would the publish attest this property (so walk its refs)? Same rule as getPublishPayload. */\nfunction walksProperty(prop: IItemProperty<any>, forceFullSnapshot: boolean): boolean {\n if (prop.uid && !forceFullSnapshot) return false\n const ctx = propertyContext(prop)\n const value = ctx?.propertyValue\n return value != null && value !== '' && !(Array.isArray(value) && value.length === 0)\n}\n\nasync function loadItem(seedLocalId: string): Promise<IItem<any> | undefined> {\n const { getItem } = await import('./getItem')\n try {\n return (await getItem({ seedLocalId })) ?? undefined\n } catch {\n return undefined\n }\n}\n\nexport async function getPublishDraftGraph(\n root: IItem<any>,\n options?: GetPublishDraftGraphOptions,\n): Promise<PublishDraftGraph> {\n const forceFullSnapshot = options?.forceFullSnapshot === true\n const strict = options?.strict === true\n const drafts: PublishDraftGraphNode[] = []\n const deferredProperties = new Set<IItemProperty<any>>()\n const backReferences = new Map<IItemProperty<any>, Set<string>>()\n const visited = new Set<string>([root.seedLocalId])\n const inProgress = new Set<string>()\n if (await getsNewSeed(root)) inProgress.add(root.seedLocalId)\n\n /** Draft target of a ref, or undefined (published, revoked, unknown). */\n const draftTarget = async (\n prop: IItemProperty<any>,\n ref: string,\n isList: boolean,\n ): Promise<{ seedLocalId: string; item?: IItem<any> } | undefined> => {\n const { seedLocalId, seedUid } = resolveSeedIdsFromRefString(ref)\n if (!seedLocalId && !seedUid) {\n if (strict && !isList) {\n throw new Error(`Invalid relation value for ${prop.propertyName}: expected local seed id or 0x uid`)\n }\n return undefined\n }\n const row = await findRelatedSeedRow({ seedLocalId, seedUid })\n const targetLocalId = row?.seedLocalId ?? seedLocalId\n if (!targetLocalId) return undefined\n // An item getting a new seed in this publish, still being walked (also the root when it is a\n // revoked seed published again): a back edge, whatever its current uid.\n if (inProgress.has(targetLocalId)) return { seedLocalId: targetLocalId }\n // Published (live or revoked): referenced by uid / reported, never walked into.\n if (row && !isZeroUid(row.seedUid)) return undefined\n if (visited.has(targetLocalId)) return { seedLocalId: targetLocalId }\n const item = await loadItem(targetLocalId)\n if (!item) {\n if (strict && !isList && !isPublishedSeedRef(ref)) {\n throw new Error(`No relatedItem found for ${prop.propertyName}`)\n }\n return undefined\n }\n if (!isZeroUid(item.seedUid)) return undefined\n return { seedLocalId: targetLocalId, item }\n }\n\n const visit = async (item: IItem<any>): Promise<void> => {\n const segmented = await getSegmentedItemProperties(item)\n const { relationProperties, listProperties } = draftWalkProperties(segmented)\n const walk = async (prop: IItemProperty<any>, isList: boolean) => {\n if (!walksProperty(prop, forceFullSnapshot)) return\n const targets: { seedLocalId: string; item?: IItem<any> }[] = []\n for (const ref of propertySeedRefs(prop, isList)) {\n const t = await draftTarget(prop, ref, isList)\n if (t) targets.push(t)\n }\n const back = targets.filter((t) => inProgress.has(t.seedLocalId)).map((t) => t.seedLocalId)\n if (back.length > 0) {\n deferredProperties.add(prop)\n backReferences.set(prop, new Set(back))\n }\n for (const t of targets) {\n if (!t.item || visited.has(t.seedLocalId)) continue\n visited.add(t.seedLocalId)\n inProgress.add(t.seedLocalId)\n await visit(t.item)\n inProgress.delete(t.seedLocalId)\n drafts.push({ item: t.item, via: prop, viaList: isList })\n }\n }\n for (const prop of relationProperties) await walk(prop, false)\n for (const prop of listProperties) await walk(prop, true)\n }\n\n await visit(root)\n return { drafts, deferredProperties, backReferences }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"publishDraftGraph-BOn3_Occ.js","sources":["../../src/helpers/getSegmentedItemProperties.ts","../../src/db/read/isSeedRevoked.ts","../../src/db/read/resolveRelatedSeedRef.ts","../../src/db/read/publishDraftGraph.ts"],"sourcesContent":["import { UploadProperty } from '@/db/read/getPublishUploads'\nimport { IItem } from '@/interfaces'\nimport { ModelPropertyDataTypes, normalizeDataType } from '@/Schema'\nimport { getPropertySchema, TProperty } from '@/helpers/property'\nimport { getItemModelScope, resolveModelRecord, type ModelScope } from '@/db/read/resolveModelRecord'\nimport type { Static } from '@sinclair/typebox'\nimport { BaseDb } from '@/db/Db/BaseDb'\nimport { models, properties } from '@/seedSchema'\nimport { eq, and } from 'drizzle-orm'\nimport { camelCase, upperFirst } from 'lodash-es'\n\nconst matchesDataType = (\n actual: string | undefined,\n expected: ModelPropertyDataTypes | string,\n): boolean => normalizeDataType(actual) === expected\nasync function resolvePropertyDef(\n modelName: string,\n propertyName: string,\n scope: ModelScope,\n): Promise<{ dataType?: string; ref?: string; refValueType?: string; storageType?: string; localStorageDir?: string; filenameSuffix?: string; required?: boolean } | undefined> {\n let schema = await getPropertySchema(modelName, propertyName, scope)\n if (schema) return schema\n const db = BaseDb.getAppDb()\n if (!db) return undefined\n try {\n const normalizedModelName = upperFirst(camelCase(modelName))\n const modelRecord = await resolveModelRecord(normalizedModelName, scope, db)\n const modelRecords = modelRecord ? [modelRecord] : []\n if (modelRecords.length === 0 || !modelRecords[0].id) return undefined\n const propertyRecords = await db\n .select()\n .from(properties)\n .where(\n and(\n eq(properties.modelId, modelRecords[0].id),\n eq(properties.name, propertyName),\n ),\n )\n .limit(1)\n if (propertyRecords.length === 0) return undefined\n const propRecord = propertyRecords[0]\n let refModelName: string | undefined\n if (propRecord.refModelId != null) {\n const refModelRows = await db\n .select({ name: models.name })\n .from(models)\n .where(eq(models.id, propRecord.refModelId))\n .limit(1)\n refModelName = refModelRows[0]?.name ?? undefined\n }\n return {\n dataType: propRecord.dataType,\n ref: refModelName ?? undefined,\n refValueType: propRecord.refValueType || undefined,\n storageType: propRecord.storageType || undefined,\n localStorageDir: propRecord.localStorageDir || undefined,\n filenameSuffix: propRecord.filenameSuffix || undefined,\n required: propRecord.required ?? undefined,\n }\n } catch {\n return undefined\n }\n}\n\nexport const getSegmentedItemProperties = async (item: IItem<any>) => {\n const itemBasicProperties = []\n const itemRelationProperties = []\n const itemListProperties = []\n const itemUploadProperties: UploadProperty[] = []\n const itemImageProperties = []\n const itemStorageProperties = []\n let itemStorageTransactionProperty: UploadProperty | undefined\n let itemScope: ModelScope | undefined\n\n for (const itemProperty of item.properties) {\n let propertyDef = itemProperty.propertyDef\n // When propertyDef is missing (e.g. external app, Model not registered), resolve inline\n // so properties are not skipped and metadata attestations can be created\n if (!propertyDef && item.modelName) {\n itemScope ??= await getItemModelScope(item as any)\n const resolved = await resolvePropertyDef(item.modelName, itemProperty.propertyName, itemScope)\n if (resolved) {\n itemProperty.getService().send({ type: 'updateContext', propertyRecordSchema: resolved })\n propertyDef = resolved as Static<typeof TProperty>\n } else {\n // Last resort: Model and DB don't have schema. Use Text so property routes to\n // itemBasicProperties and can be attested (covers title, description, etc.)\n const fallbackDef = { dataType: 'Text' as const }\n itemProperty.getService().send({ type: 'updateContext', propertyRecordSchema: fallbackDef })\n propertyDef = fallbackDef as Static<typeof TProperty>\n }\n }\n if (!propertyDef) {\n continue\n }\n\n const isItemStorage =\n propertyDef.storageType &&\n propertyDef.storageType === 'ItemStorage'\n\n\n const isStorageTransaction =\n itemProperty.propertyName === 'storageTransactionId' ||\n itemProperty.propertyName === 'storage_transaction_id'\n\n const isStorageSeedType =\n matchesDataType(propertyDef.dataType, ModelPropertyDataTypes.Image) ||\n matchesDataType(propertyDef.dataType, ModelPropertyDataTypes.File) ||\n matchesDataType(propertyDef.dataType, ModelPropertyDataTypes.Html) ||\n matchesDataType(propertyDef.dataType, ModelPropertyDataTypes.Json) ||\n (matchesDataType(propertyDef.dataType, ModelPropertyDataTypes.Relation) &&\n (matchesDataType(propertyDef.refValueType, ModelPropertyDataTypes.Image) ||\n matchesDataType(propertyDef.refValueType, ModelPropertyDataTypes.File) ||\n matchesDataType(propertyDef.refValueType, ModelPropertyDataTypes.Html) ||\n matchesDataType(propertyDef.refValueType, ModelPropertyDataTypes.Json)))\n\n if (isStorageSeedType) {\n itemImageProperties.push(itemProperty)\n if (matchesDataType(propertyDef.dataType, ModelPropertyDataTypes.Relation)) {\n itemRelationProperties.push(itemProperty)\n }\n continue\n }\n\n if (matchesDataType(propertyDef.dataType, ModelPropertyDataTypes.Relation)) {\n itemRelationProperties.push(itemProperty)\n continue\n }\n\n if (matchesDataType(propertyDef.dataType, ModelPropertyDataTypes.List)) {\n // List-of-relations: ref present, goes to processListProperty\n // List-of-primitives: ref absent, treat as basic property\n const listRef =\n propertyDef.ref || (propertyDef as { refModelName?: string }).refModelName\n if (listRef) {\n itemListProperties.push(itemProperty)\n } else {\n itemBasicProperties.push(itemProperty)\n }\n continue\n }\n\n if (isItemStorage) {\n itemStorageProperties.push(itemProperty)\n continue\n }\n\n if (isStorageTransaction) {\n itemStorageTransactionProperty = { itemProperty, childProperties: [] }\n continue\n }\n\n itemBasicProperties.push(itemProperty)\n }\n\n if (itemStorageTransactionProperty && itemStorageProperties.length > 0) {\n itemStorageTransactionProperty.childProperties = itemStorageProperties\n }\n\n if (itemStorageTransactionProperty) {\n itemUploadProperties.push(itemStorageTransactionProperty)\n }\n\n return {\n itemBasicProperties,\n itemRelationProperties,\n itemListProperties,\n itemUploadProperties,\n itemImageProperties,\n }\n}\n","import { BaseDb } from '@/db/Db/BaseDb'\nimport { seeds } from '@/seedSchema'\nimport { eq } from 'drizzle-orm'\nimport { isVersionRevoked } from './subqueries/liveVersion'\n\n/**\n * True when the item's seed attestation was revoked (`seeds.revoked_at` set, by unpublish or EAS\n * sync). Such a seed can't take new versions: publishing again creates a new seed attestation\n * (see \"Republishing\" in docs/ATTESTATION_REVOCATION.md).\n */\nexport const isSeedRevoked = async (seedLocalId: string | undefined): Promise<boolean> => {\n if (!seedLocalId) return false\n const appDb = BaseDb.getAppDb()\n if (!appDb) return false\n const [row] = await appDb\n .select({ revokedAt: seeds.revokedAt })\n .from(seeds)\n .where(eq(seeds.localId, seedLocalId))\n .limit(1)\n return isVersionRevoked(row?.revokedAt)\n}\n","import { BaseDb } from '@/db/Db/BaseDb'\nimport { seeds, versions } from '@/seedSchema'\nimport { and, eq, isNotNull } from 'drizzle-orm'\nimport { ZERO_BYTES32 } from '@/helpers/constants'\nimport { isVersionRevoked } from './subqueries/liveVersion'\nimport { ModelPropertyDataTypes, normalizeDataType } from '@/helpers/property'\nimport type { IItem } from '@/interfaces'\n\nexport type RelatedSeedRow = {\n seedLocalId: string\n /** The seed's current uid (null while it was never published). */\n seedUid: string | null\n revokedAt: number | null\n type: string | null\n}\n\nconst selectSeed = {\n seedLocalId: seeds.localId,\n seedUid: seeds.uid,\n revokedAt: seeds.revokedAt,\n type: seeds.type,\n}\n\n/**\n * The local seed row a relation/list/image ref points at, by local id or uid. A uid that is no\n * seed's current uid can be the old uid of a seed that was unpublished and published again (a new\n * seed attestation, same local seed): its old version rows still record it, so it resolves to that\n * seed. Null when nothing local matches (e.g. a published uid with no local copy).\n */\nexport const findRelatedSeedRow = async ({\n seedLocalId,\n seedUid,\n}: {\n seedLocalId?: string\n seedUid?: string\n}): Promise<RelatedSeedRow | null> => {\n const appDb = BaseDb.getAppDb()\n if (!appDb) return null\n if (seedLocalId) {\n const [row] = await appDb.select(selectSeed).from(seeds).where(eq(seeds.localId, seedLocalId)).limit(1)\n if (row?.seedLocalId) return row as RelatedSeedRow\n }\n if (!seedUid || seedUid === ZERO_BYTES32) return null\n const [byUid] = await appDb.select(selectSeed).from(seeds).where(eq(seeds.uid, seedUid)).limit(1)\n if (byUid?.seedLocalId) return byUid as RelatedSeedRow\n const [version] = await appDb\n .select({ seedLocalId: versions.seedLocalId })\n .from(versions)\n .where(and(eq(versions.seedUid, seedUid), isNotNull(versions.seedLocalId)))\n .limit(1)\n if (!version?.seedLocalId) return null\n const [republished] = await appDb\n .select(selectSeed)\n .from(seeds)\n .where(eq(seeds.localId, version.seedLocalId))\n .limit(1)\n return republished?.seedLocalId ? (republished as RelatedSeedRow) : null\n}\n\n/** The seed is attested and its attestation is live. */\nexport const isLivePublishedSeed = (row: RelatedSeedRow | null): row is RelatedSeedRow & { seedUid: string } =>\n !!row?.seedUid && row.seedUid !== ZERO_BYTES32 && !isVersionRevoked(row.revokedAt)\n\n/** The seed was attested and that attestation was revoked (unpublished). */\nexport const isUnpublishedSeed = (row: RelatedSeedRow | null): row is RelatedSeedRow & { seedUid: string } =>\n !!row?.seedUid && row.seedUid !== ZERO_BYTES32 && isVersionRevoked(row.revokedAt)\n\n/** Model a relation/list/image property points at, from its definition. */\nexport function relatedModelNameFromDef(propertyDef: unknown): string | undefined {\n const def = propertyDef as { dataType?: string; ref?: string; refModelName?: string } | undefined\n if (!def) return undefined\n const dataType = normalizeDataType(def.dataType)\n if (dataType === ModelPropertyDataTypes.Image) return 'Image'\n if (dataType === ModelPropertyDataTypes.File) return 'File'\n if (dataType === ModelPropertyDataTypes.Html) return 'Html'\n return def.ref ?? def.refModelName\n}\n\n/**\n * Name of the item's Html property whose value is the Html seed `htmlSeedLocalId`: the property\n * that refers to the images embedded in that Html (htmlEmbeddedImageCoPublish rows).\n */\nexport function htmlPropertyNameForHtmlSeed(item: IItem<any>, htmlSeedLocalId: string): string {\n const want = htmlSeedLocalId.trim()\n for (const p of item.properties ?? []) {\n if (normalizeDataType(p.propertyDef?.dataType) !== ModelPropertyDataTypes.Html) continue\n const snap = p.getService().getSnapshot()\n const value = 'context' in snap ? (snap.context as { propertyValue?: unknown }).propertyValue : undefined\n if (typeof value === 'string' && value.trim() === want) return p.propertyName\n }\n return 'html'\n}\n","import { ZERO_BYTES32 } from '@/helpers/constants'\nimport { parseListPropertyValueFromStorage } from '@/helpers/listPropertyValueFromStorage'\nimport { getSegmentedItemProperties } from '@/helpers/getSegmentedItemProperties'\nimport {\n isPublishedSeedRef,\n normalizeRelationPropertyValue,\n resolveSeedIdsFromRefString,\n} from '@/helpers/relationSeedRef'\nimport type { IItem, IItemProperty } from '@/interfaces'\nimport { findRelatedSeedRow } from '@/db/read/resolveRelatedSeedRef'\nimport { isSeedRevoked } from '@/db/read/isSeedRevoked'\n\n/**\n * The draft items a publish of an item carries along, and how it walks to them.\n *\n * A publish attests the item and every draft item (no seed uid yet) reachable from it through\n * relation and list-of-relation properties, each with its full property set. Already-published\n * targets are referenced by their current uid and not walked into; revoked ones stop the publish\n * (RelatedItemUnpublishedError). getPublishPayload, getPublishUploads, getPublishUploadData (publish\n * package), summarizePublishWork and the Html-embedded image co-publish all walk this graph in the\n * same order: depth first, properties in item order (relations, then lists), list members in order.\n *\n * Cycles: an item can only attest the uid of a seed published before it in the same publish, so a\n * ref back to an item still being walked (an ancestor that gets a new seed in this publish) can't be\n * attested. Such a property is deferred: left out of this publish (it keeps no uid, so the next\n * publish of its item attests it, with the target's uid). For A ↔ B reached from A, A attests B's\n * uid and B's relation to A is deferred.\n */\n\n/** Relation properties that point at model items (not Image/File/Html/Json storage seeds). */\nexport function draftWalkProperties(segmented: {\n itemRelationProperties: IItemProperty<any>[]\n itemImageProperties: IItemProperty<any>[]\n itemListProperties: IItemProperty<any>[]\n}): { relationProperties: IItemProperty<any>[]; listProperties: IItemProperty<any>[] } {\n const storage = new Set(segmented.itemImageProperties)\n return {\n relationProperties: segmented.itemRelationProperties.filter((p) => !storage.has(p)),\n listProperties: segmented.itemListProperties,\n }\n}\n\nconst propertyContext = (prop: IItemProperty<any>): Record<string, unknown> | null => {\n const snapshot = prop.getService().getSnapshot()\n return snapshot && 'context' in snapshot\n ? ((snapshot as { context?: Record<string, unknown> }).context ?? null)\n : null\n}\n\n/** Seed refs held by a relation property (one) or a list property (each member). */\nexport function propertySeedRefs(prop: IItemProperty<any>, isList: boolean): string[] {\n const context = propertyContext(prop)\n if (!context) return []\n let value = context.propertyValue\n if (isList) {\n if (typeof value === 'string') value = parseListPropertyValueFromStorage(value)\n const arr = Array.isArray(value) ? value : value != null ? [value] : []\n return arr\n .map((v) =>\n v && typeof v === 'object'\n ? normalizeRelationPropertyValue(\n (v as { seedLocalId?: string; localId?: string }).seedLocalId ??\n (v as { localId?: string }).localId ??\n (v as { seedUid?: string }).seedUid ??\n (v as { uid?: string }).uid,\n )\n : normalizeRelationPropertyValue(v),\n )\n .filter((v): v is string => !!v)\n }\n const ref = normalizeRelationPropertyValue(value)\n return ref ? [ref] : []\n}\n\nconst isZeroUid = (uid: string | undefined | null): boolean => !uid || uid === ZERO_BYTES32\n\n/** The item gets a new seed attestation in this publish: a draft, or a revoked seed published again. */\nexport async function getsNewSeed(item: IItem<any>): Promise<boolean> {\n return isZeroUid(item.seedUid) || (await isSeedRevoked(item.seedLocalId))\n}\n\n/** Local seed id a ref points at (also for a republished seed's old uid), or undefined. */\nexport async function resolveRefSeedLocalId(ref: string): Promise<string | undefined> {\n const { seedLocalId, seedUid } = resolveSeedIdsFromRefString(ref)\n if (!seedLocalId && !seedUid) return undefined\n const row = await findRelatedSeedRow({ seedLocalId, seedUid })\n return row?.seedLocalId ?? seedLocalId\n}\n\nexport type PublishDraftGraphNode = {\n item: IItem<any>\n /** The relation or list property the walk first reached the item through. */\n via: IItemProperty<any>\n viaList: boolean\n}\n\nexport type PublishDraftGraph = {\n /** Draft items reachable from the root (root excluded), in the order the walk finishes them. */\n drafts: PublishDraftGraphNode[]\n /** Properties pointing back at an item still being walked; left out of this publish. */\n deferredProperties: Set<IItemProperty<any>>\n /** For each deferred property, the seeds (local ids) of its back references. */\n backReferences: Map<IItemProperty<any>, Set<string>>\n}\n\nexport type GetPublishDraftGraphOptions = {\n /** `new_version` / republish: properties that already have a uid are attested (and walked) again. */\n forceFullSnapshot?: boolean\n /**\n * Throw like getPublishUploads always did when a relation holds an invalid value or a local id\n * with no local item. Otherwise such refs are skipped (getPublishPayload reports them).\n */\n strict?: boolean\n}\n\n/** Would the publish attest this property (so walk its refs)? Same rule as getPublishPayload. */\nfunction walksProperty(prop: IItemProperty<any>, forceFullSnapshot: boolean): boolean {\n if (prop.uid && !forceFullSnapshot) return false\n const ctx = propertyContext(prop)\n const value = ctx?.propertyValue\n return value != null && value !== '' && !(Array.isArray(value) && value.length === 0)\n}\n\nasync function loadItem(seedLocalId: string): Promise<IItem<any> | undefined> {\n const { getItem } = await import('./getItem')\n try {\n return (await getItem({ seedLocalId })) ?? undefined\n } catch {\n return undefined\n }\n}\n\nexport async function getPublishDraftGraph(\n root: IItem<any>,\n options?: GetPublishDraftGraphOptions,\n): Promise<PublishDraftGraph> {\n const forceFullSnapshot = options?.forceFullSnapshot === true\n const strict = options?.strict === true\n const drafts: PublishDraftGraphNode[] = []\n const deferredProperties = new Set<IItemProperty<any>>()\n const backReferences = new Map<IItemProperty<any>, Set<string>>()\n const visited = new Set<string>([root.seedLocalId])\n const inProgress = new Set<string>()\n if (await getsNewSeed(root)) inProgress.add(root.seedLocalId)\n\n /** Draft target of a ref, or undefined (published, revoked, unknown). */\n const draftTarget = async (\n prop: IItemProperty<any>,\n ref: string,\n isList: boolean,\n ): Promise<{ seedLocalId: string; item?: IItem<any> } | undefined> => {\n const { seedLocalId, seedUid } = resolveSeedIdsFromRefString(ref)\n if (!seedLocalId && !seedUid) {\n if (strict && !isList) {\n throw new Error(`Invalid relation value for ${prop.propertyName}: expected local seed id or 0x uid`)\n }\n return undefined\n }\n const row = await findRelatedSeedRow({ seedLocalId, seedUid })\n const targetLocalId = row?.seedLocalId ?? seedLocalId\n if (!targetLocalId) return undefined\n // An item getting a new seed in this publish, still being walked (also the root when it is a\n // revoked seed published again): a back edge, whatever its current uid.\n if (inProgress.has(targetLocalId)) return { seedLocalId: targetLocalId }\n // Published (live or revoked): referenced by uid / reported, never walked into.\n if (row && !isZeroUid(row.seedUid)) return undefined\n if (visited.has(targetLocalId)) return { seedLocalId: targetLocalId }\n const item = await loadItem(targetLocalId)\n if (!item) {\n if (strict && !isList && !isPublishedSeedRef(ref)) {\n throw new Error(`No relatedItem found for ${prop.propertyName}`)\n }\n return undefined\n }\n if (!isZeroUid(item.seedUid)) return undefined\n return { seedLocalId: targetLocalId, item }\n }\n\n const visit = async (item: IItem<any>): Promise<void> => {\n const segmented = await getSegmentedItemProperties(item)\n const { relationProperties, listProperties } = draftWalkProperties(segmented)\n const walk = async (prop: IItemProperty<any>, isList: boolean) => {\n if (!walksProperty(prop, forceFullSnapshot)) return\n const targets: { seedLocalId: string; item?: IItem<any> }[] = []\n for (const ref of propertySeedRefs(prop, isList)) {\n const t = await draftTarget(prop, ref, isList)\n if (t) targets.push(t)\n }\n const back = targets.filter((t) => inProgress.has(t.seedLocalId)).map((t) => t.seedLocalId)\n if (back.length > 0) {\n deferredProperties.add(prop)\n backReferences.set(prop, new Set(back))\n }\n for (const t of targets) {\n if (!t.item || visited.has(t.seedLocalId)) continue\n visited.add(t.seedLocalId)\n inProgress.add(t.seedLocalId)\n await visit(t.item)\n inProgress.delete(t.seedLocalId)\n drafts.push({ item: t.item, via: prop, viaList: isList })\n }\n }\n for (const prop of relationProperties) await walk(prop, false)\n for (const prop of listProperties) await walk(prop, true)\n }\n\n await visit(root)\n return { drafts, deferredProperties, backReferences }\n}\n"],"names":[],"mappings":"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"}
@@ -1,9 +1,20 @@
1
1
  import { eq, and, isNull, isNotNull } from 'drizzle-orm';
2
2
  import { toSnakeCase } from 'drizzle-orm/casing';
3
3
  import debug from 'debug';
4
- import { B as BaseDb, a as appState, q as seeds, s as schemas, i as models, f as modelSchemas, h as htmlEmbeddedImageCoPublish, b as arweaveL1FinalizeJobs, u as uploadProcesses, o as publishProcesses, e as easSyncProcesses, m as metadata, v as versions } from './BasePathResolver-CfSfMW5_.js';
5
- import 'drizzle-orm/sqlite-core';
4
+ import { E as BaseDb, h as appState, A as seeds, z as schemas, s as models, q as modelSchemas, o as htmlEmbeddedImageCoPublish, j as arweaveL1FinalizeJobs, B as uploadProcesses, y as publishProcesses, l as easSyncProcesses, m as metadata, C as versions } from './BasePathResolver-Cm4apKRb.js';
6
5
  import '@seedprotocol/arweave';
6
+ import '@seedprotocol/eas';
7
+ import 'xstate';
8
+ import 'pluralize';
9
+ import '@sinclair/typebox';
10
+ import 'drizzle-orm/sqlite-core';
11
+ import 'lodash-es';
12
+ import 'nanoid';
13
+ import 'nanoid-dictionary';
14
+ import '@seedprotocol/query';
15
+ import '@noble/hashes/sha256';
16
+ import '@noble/hashes/sha3';
17
+ import '@noble/hashes/utils';
7
18
 
8
19
  const logger = debug('seedSdk:db:resetAmbiguousLegacyItemData');
9
20
  /** appState key recording that the one-time check after migration 0015 has run. */
@@ -85,4 +96,4 @@ const resetAmbiguousLegacyItemData = async () => {
85
96
  };
86
97
 
87
98
  export { LEGACY_ITEM_MODEL_CHECK_KEY, resetAmbiguousLegacyItemData };
88
- //# sourceMappingURL=resetAmbiguousLegacyItemData-Bk0QyDW8.js.map
99
+ //# sourceMappingURL=resetAmbiguousLegacyItemData-BkYmBeJc.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resetAmbiguousLegacyItemData-Bk0QyDW8.js","sources":["../../src/db/resetAmbiguousLegacyItemData.ts"],"sourcesContent":["import { eq, isNotNull, isNull, and } from 'drizzle-orm'\nimport { toSnakeCase } from 'drizzle-orm/casing'\nimport debug from 'debug'\nimport { BaseDb } from '@/db/Db/BaseDb'\nimport {\n appState,\n arweaveL1FinalizeJobs,\n easSyncProcesses,\n htmlEmbeddedImageCoPublish,\n metadata,\n models,\n publishProcesses,\n schemas,\n seeds,\n uploadProcesses,\n modelSchemas,\n versions,\n} from '@/seedSchema'\n\nconst logger = debug('seedSdk:db:resetAmbiguousLegacyItemData')\n\n/** appState key recording that the one-time check after migration 0015 has run. */\nexport const LEGACY_ITEM_MODEL_CHECK_KEY = 'legacyItemModelCheck:v1'\n\n/**\n * One-time check after seeds.model_file_id was introduced (migration 0015). Seeds from before then\n * that couldn't be backfilled have no model; if their model name now exists in more than one schema\n * there is no way to tell which model they belong to. In that case the local item data (seeds,\n * versions, metadata and the jobs that reference them) is cleared, keeping schemas and models;\n * published items come back on the next EAS sync.\n *\n * Runs once (not on every start): EAS-synced seeds also lack model_file_id until\n * resolveModelForSyncedSeed exists, and re-checking would clear the DB after every sync.\n * TODO: replace the reset with a migration path once there is real user data at stake.\n *\n * @returns true if item data was cleared\n */\nexport const resetAmbiguousLegacyItemData = async (): Promise<boolean> => {\n const db = BaseDb.getAppDb()\n if (!db) return false\n\n const done = await db.select({ key: appState.key }).from(appState).where(eq(appState.key, LEGACY_ITEM_MODEL_CHECK_KEY)).limit(1)\n if (done.length > 0) return false\n\n const markDone = () =>\n db\n .insert(appState)\n .values({ key: LEGACY_ITEM_MODEL_CHECK_KEY, value: String(Date.now()), createdAt: Date.now(), updatedAt: Date.now() })\n .onConflictDoNothing()\n\n const legacyTypes = (await db\n .selectDistinct({ type: seeds.type })\n .from(seeds)\n .where(and(isNull(seeds.modelFileId), isNotNull(seeds.type)))) as { type: string }[]\n if (legacyTypes.length === 0) {\n await markDone()\n return false\n }\n\n // Which seed types (snake_case model names) map to models in more than one schema\n const linkedModels = (await db\n .select({ modelId: models.id, modelName: models.name, schemaName: schemas.name })\n .from(models)\n .innerJoin(modelSchemas, eq(models.id, modelSchemas.modelId))\n .innerJoin(schemas, eq(modelSchemas.schemaId, schemas.id))) as {\n modelId: number\n modelName: string\n schemaName: string\n }[]\n const byType = new Map<string, { modelIds: Set<number>; schemaNames: Set<string> }>()\n for (const row of linkedModels) {\n const type = toSnakeCase(row.modelName)\n const entry = byType.get(type) ?? { modelIds: new Set(), schemaNames: new Set() }\n entry.modelIds.add(row.modelId)\n entry.schemaNames.add(row.schemaName)\n byType.set(type, entry)\n }\n const ambiguous = legacyTypes\n .map(({ type }) => ({ type, entry: byType.get(type) }))\n .filter(({ entry }) => entry && entry.modelIds.size > 1)\n\n if (ambiguous.length === 0) {\n await markDone()\n return false\n }\n\n const details = ambiguous\n .map(({ type, entry }) => `\"${type}\" (schemas: ${[...entry!.schemaNames].sort().join(', ')})`)\n .join('; ')\n console.warn(\n `[seed-protocol] Clearing local item data: items created before this SDK version don't record ` +\n `which model they belong to, and these model names now exist in more than one schema: ${details}. ` +\n `Schemas and models are kept; published items will be restored by the next EAS sync.`,\n )\n logger(`Clearing item data for ambiguous legacy seed types: ${details}`)\n\n for (const table of [\n htmlEmbeddedImageCoPublish,\n arweaveL1FinalizeJobs,\n uploadProcesses,\n publishProcesses,\n easSyncProcesses,\n metadata,\n versions,\n seeds,\n ]) {\n await db.delete(table)\n }\n await markDone()\n return true\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resetAmbiguousLegacyItemData-BkYmBeJc.js","sources":["../../src/db/resetAmbiguousLegacyItemData.ts"],"sourcesContent":["import { eq, isNotNull, isNull, and } from 'drizzle-orm'\nimport { toSnakeCase } from 'drizzle-orm/casing'\nimport debug from 'debug'\nimport { BaseDb } from '@/db/Db/BaseDb'\nimport {\n appState,\n arweaveL1FinalizeJobs,\n easSyncProcesses,\n htmlEmbeddedImageCoPublish,\n metadata,\n models,\n publishProcesses,\n schemas,\n seeds,\n uploadProcesses,\n modelSchemas,\n versions,\n} from '@/seedSchema'\n\nconst logger = debug('seedSdk:db:resetAmbiguousLegacyItemData')\n\n/** appState key recording that the one-time check after migration 0015 has run. */\nexport const LEGACY_ITEM_MODEL_CHECK_KEY = 'legacyItemModelCheck:v1'\n\n/**\n * One-time check after seeds.model_file_id was introduced (migration 0015). Seeds from before then\n * that couldn't be backfilled have no model; if their model name now exists in more than one schema\n * there is no way to tell which model they belong to. In that case the local item data (seeds,\n * versions, metadata and the jobs that reference them) is cleared, keeping schemas and models;\n * published items come back on the next EAS sync.\n *\n * Runs once (not on every start): EAS-synced seeds also lack model_file_id until\n * resolveModelForSyncedSeed exists, and re-checking would clear the DB after every sync.\n * TODO: replace the reset with a migration path once there is real user data at stake.\n *\n * @returns true if item data was cleared\n */\nexport const resetAmbiguousLegacyItemData = async (): Promise<boolean> => {\n const db = BaseDb.getAppDb()\n if (!db) return false\n\n const done = await db.select({ key: appState.key }).from(appState).where(eq(appState.key, LEGACY_ITEM_MODEL_CHECK_KEY)).limit(1)\n if (done.length > 0) return false\n\n const markDone = () =>\n db\n .insert(appState)\n .values({ key: LEGACY_ITEM_MODEL_CHECK_KEY, value: String(Date.now()), createdAt: Date.now(), updatedAt: Date.now() })\n .onConflictDoNothing()\n\n const legacyTypes = (await db\n .selectDistinct({ type: seeds.type })\n .from(seeds)\n .where(and(isNull(seeds.modelFileId), isNotNull(seeds.type)))) as { type: string }[]\n if (legacyTypes.length === 0) {\n await markDone()\n return false\n }\n\n // Which seed types (snake_case model names) map to models in more than one schema\n const linkedModels = (await db\n .select({ modelId: models.id, modelName: models.name, schemaName: schemas.name })\n .from(models)\n .innerJoin(modelSchemas, eq(models.id, modelSchemas.modelId))\n .innerJoin(schemas, eq(modelSchemas.schemaId, schemas.id))) as {\n modelId: number\n modelName: string\n schemaName: string\n }[]\n const byType = new Map<string, { modelIds: Set<number>; schemaNames: Set<string> }>()\n for (const row of linkedModels) {\n const type = toSnakeCase(row.modelName)\n const entry = byType.get(type) ?? { modelIds: new Set(), schemaNames: new Set() }\n entry.modelIds.add(row.modelId)\n entry.schemaNames.add(row.schemaName)\n byType.set(type, entry)\n }\n const ambiguous = legacyTypes\n .map(({ type }) => ({ type, entry: byType.get(type) }))\n .filter(({ entry }) => entry && entry.modelIds.size > 1)\n\n if (ambiguous.length === 0) {\n await markDone()\n return false\n }\n\n const details = ambiguous\n .map(({ type, entry }) => `\"${type}\" (schemas: ${[...entry!.schemaNames].sort().join(', ')})`)\n .join('; ')\n console.warn(\n `[seed-protocol] Clearing local item data: items created before this SDK version don't record ` +\n `which model they belong to, and these model names now exist in more than one schema: ${details}. ` +\n `Schemas and models are kept; published items will be restored by the next EAS sync.`,\n )\n logger(`Clearing item data for ambiguous legacy seed types: ${details}`)\n\n for (const table of [\n htmlEmbeddedImageCoPublish,\n arweaveL1FinalizeJobs,\n uploadProcesses,\n publishProcesses,\n easSyncProcesses,\n metadata,\n versions,\n seeds,\n ]) {\n await db.delete(table)\n }\n await markDone()\n return true\n}\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import debug from 'debug';
2
- import { A as AmbiguousModelError, m as eventEmitter } from './db-D9K_f5cF.js';
2
+ import { F as AmbiguousModelError, G as eventEmitter } from './BasePathResolver-Cm4apKRb.js';
3
3
 
4
4
  const logger = debug('seedSdk:db:read:resolveModelForSyncedSeed');
5
5
  /** Emitted when background work skips a seed whose model name exists in several schemas. */
@@ -43,4 +43,4 @@ const skipSeedOnAmbiguousModel = async (seed, context, work) => {
43
43
  };
44
44
 
45
45
  export { MODEL_AMBIGUOUS_EVENT as M, resolveModelForSyncedSeed as r, skipSeedOnAmbiguousModel as s };
46
- //# sourceMappingURL=resolveModelForSyncedSeed-8cAzvUFd.js.map
46
+ //# sourceMappingURL=resolveModelForSyncedSeed-BL24nLa7.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolveModelForSyncedSeed-8cAzvUFd.js","sources":["../../src/db/read/resolveModelForSyncedSeed.ts"],"sourcesContent":["import debug from 'debug'\nimport { eventEmitter } from '@/eventBus'\nimport { AmbiguousModelError } from '@/Model/errors'\n\nconst logger = debug('seedSdk:db:read:resolveModelForSyncedSeed')\n\n/** Emitted when background work skips a seed whose model name exists in several schemas. */\nexport const MODEL_AMBIGUOUS_EVENT = 'model:ambiguous' as const\n\nexport type ModelAmbiguousEventPayload = {\n modelName: string\n schemaNames: string[]\n seedLocalId?: string\n seedUid?: string\n /** What was being done when the seed was skipped (e.g. 'easSync.metadata'). */\n context: string\n}\n\nexport type SyncedSeedInfo = {\n seedUid?: string | null\n seedLocalId?: string | null\n /** seeds.type as synced from EAS (the EAS schema name, i.e. snake_case model name). */\n modelType?: string | null\n /** EAS schema UID of the seed attestation. */\n schemaUid?: string | null\n}\n\n/**\n * Seam for matching an EAS-synced seed to a local model (its schemaFileId).\n *\n * EAS identifies a seed's model only by name (`bytes32 <model_name>`), so when several local schemas\n * define a model with that name the seed alone can't say which one it is. The plan is to match by\n * the seed's properties and metadata (see docs/EAS_SYNCED_SEED_MODEL_RESOLUTION.md).\n *\n * TODO(eas-synced-seed-model-resolution): not implemented yet. Returns undefined, so callers fall\n * back to the name, which throws AmbiguousModelError when the name is ambiguous.\n */\nexport const resolveModelForSyncedSeed = async (_seed: SyncedSeedInfo): Promise<string | undefined> => {\n return undefined\n}\n\n/**\n * Run background work for one seed; if it hits an ambiguous model name, log, emit\n * MODEL_AMBIGUOUS_EVENT and return undefined (skip) instead of failing the whole job. Loading the\n * item directly still throws, so the problem surfaces where the app touches it.\n */\nexport const skipSeedOnAmbiguousModel = async <T>(\n seed: { seedLocalId?: string | null; seedUid?: string | null },\n context: string,\n work: () => Promise<T>,\n): Promise<T | undefined> => {\n try {\n return await work()\n } catch (error) {\n if (!(error instanceof AmbiguousModelError)) throw error\n logger(`Skipping seed ${seed.seedLocalId ?? seed.seedUid} in ${context}: ${error.message}`)\n const payload: ModelAmbiguousEventPayload = {\n modelName: error.modelName,\n schemaNames: error.schemaNames,\n seedLocalId: seed.seedLocalId ?? undefined,\n seedUid: seed.seedUid ?? undefined,\n context,\n }\n eventEmitter.emit(MODEL_AMBIGUOUS_EVENT, payload)\n return undefined\n }\n}\n"],"names":[],"mappings":";;;AAIA,MAAM,MAAM,GAAG,KAAK,CAAC,2CAA2C,CAAC;AAEjE;AACO,MAAM,qBAAqB,GAAG;AAoBrC;;;;;;;;;AASG;MACU,yBAAyB,GAAG,OAAO,KAAqB,KAAiC;AACpG,IAAA,OAAO,SAAS;AAClB;AAEA;;;;AAIG;AACI,MAAM,wBAAwB,GAAG,OACtC,IAA8D,EAC9D,OAAe,EACf,IAAsB,KACI;AAC1B,IAAA,IAAI;QACF,OAAO,MAAM,IAAI,EAAE;IACrB;IAAE,OAAO,KAAK,EAAE;AACd,QAAA,IAAI,EAAE,KAAK,YAAY,mBAAmB,CAAC;AAAE,YAAA,MAAM,KAAK;AACxD,QAAA,MAAM,CAAC,CAAA,cAAA,EAAiB,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,CAAA,IAAA,EAAO,OAAO,CAAA,EAAA,EAAK,KAAK,CAAC,OAAO,CAAA,CAAE,CAAC;AAC3F,QAAA,MAAM,OAAO,GAA+B;YAC1C,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,WAAW,EAAE,KAAK,CAAC,WAAW;AAC9B,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,SAAS;AAC1C,YAAA,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,SAAS;YAClC,OAAO;SACR;AACD,QAAA,YAAY,CAAC,IAAI,CAAC,qBAAqB,EAAE,OAAO,CAAC;AACjD,QAAA,OAAO,SAAS;IAClB;AACF;;"}
1
+ {"version":3,"file":"resolveModelForSyncedSeed-BL24nLa7.js","sources":["../../src/db/read/resolveModelForSyncedSeed.ts"],"sourcesContent":["import debug from 'debug'\nimport { eventEmitter } from '@/eventBus'\nimport { AmbiguousModelError } from '@/Model/errors'\n\nconst logger = debug('seedSdk:db:read:resolveModelForSyncedSeed')\n\n/** Emitted when background work skips a seed whose model name exists in several schemas. */\nexport const MODEL_AMBIGUOUS_EVENT = 'model:ambiguous' as const\n\nexport type ModelAmbiguousEventPayload = {\n modelName: string\n schemaNames: string[]\n seedLocalId?: string\n seedUid?: string\n /** What was being done when the seed was skipped (e.g. 'easSync.metadata'). */\n context: string\n}\n\nexport type SyncedSeedInfo = {\n seedUid?: string | null\n seedLocalId?: string | null\n /** seeds.type as synced from EAS (the EAS schema name, i.e. snake_case model name). */\n modelType?: string | null\n /** EAS schema UID of the seed attestation. */\n schemaUid?: string | null\n}\n\n/**\n * Seam for matching an EAS-synced seed to a local model (its schemaFileId).\n *\n * EAS identifies a seed's model only by name (`bytes32 <model_name>`), so when several local schemas\n * define a model with that name the seed alone can't say which one it is. The plan is to match by\n * the seed's properties and metadata (see docs/EAS_SYNCED_SEED_MODEL_RESOLUTION.md).\n *\n * TODO(eas-synced-seed-model-resolution): not implemented yet. Returns undefined, so callers fall\n * back to the name, which throws AmbiguousModelError when the name is ambiguous.\n */\nexport const resolveModelForSyncedSeed = async (_seed: SyncedSeedInfo): Promise<string | undefined> => {\n return undefined\n}\n\n/**\n * Run background work for one seed; if it hits an ambiguous model name, log, emit\n * MODEL_AMBIGUOUS_EVENT and return undefined (skip) instead of failing the whole job. Loading the\n * item directly still throws, so the problem surfaces where the app touches it.\n */\nexport const skipSeedOnAmbiguousModel = async <T>(\n seed: { seedLocalId?: string | null; seedUid?: string | null },\n context: string,\n work: () => Promise<T>,\n): Promise<T | undefined> => {\n try {\n return await work()\n } catch (error) {\n if (!(error instanceof AmbiguousModelError)) throw error\n logger(`Skipping seed ${seed.seedLocalId ?? seed.seedUid} in ${context}: ${error.message}`)\n const payload: ModelAmbiguousEventPayload = {\n modelName: error.modelName,\n schemaNames: error.schemaNames,\n seedLocalId: seed.seedLocalId ?? undefined,\n seedUid: seed.seedUid ?? undefined,\n context,\n }\n eventEmitter.emit(MODEL_AMBIGUOUS_EVENT, payload)\n return undefined\n }\n}\n"],"names":[],"mappings":";;;AAIA,MAAM,MAAM,GAAG,KAAK,CAAC,2CAA2C,CAAC;AAEjE;AACO,MAAM,qBAAqB,GAAG;AAoBrC;;;;;;;;;AASG;MACU,yBAAyB,GAAG,OAAO,KAAqB,KAAiC;AACpG,IAAA,OAAO,SAAS;AAClB;AAEA;;;;AAIG;AACI,MAAM,wBAAwB,GAAG,OACtC,IAA8D,EAC9D,OAAe,EACf,IAAsB,KACI;AAC1B,IAAA,IAAI;QACF,OAAO,MAAM,IAAI,EAAE;IACrB;IAAE,OAAO,KAAK,EAAE;AACd,QAAA,IAAI,EAAE,KAAK,YAAY,mBAAmB,CAAC;AAAE,YAAA,MAAM,KAAK;AACxD,QAAA,MAAM,CAAC,CAAA,cAAA,EAAiB,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,CAAA,IAAA,EAAO,OAAO,CAAA,EAAA,EAAK,KAAK,CAAC,OAAO,CAAA,CAAE,CAAC;AAC3F,QAAA,MAAM,OAAO,GAA+B;YAC1C,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,WAAW,EAAE,KAAK,CAAC,WAAW;AAC9B,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,SAAS;AAC1C,YAAA,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,SAAS;YAClC,OAAO;SACR;AACD,QAAA,YAAY,CAAC,IAAI,CAAC,qBAAqB,EAAE,OAAO,CAAC;AACjD,QAAA,OAAO,SAAS;IAClB;AACF;;"}
@@ -3,6 +3,7 @@ import { itemMachineSingle } from './service/itemMachineSingle';
3
3
  import { VersionsType } from '../seedSchema';
4
4
  import { CreatePropertyInstanceProps, ItemData, ItemFindProps, ModelSchema, ModelValues, NewItemProps, PropertyData } from '../types';
5
5
  import type { CreateWaitOptions } from '../types';
6
+ import type { ItemPublishOptions } from '../helpers/publishConfig';
6
7
  import { BehaviorSubject } from 'rxjs';
7
8
  import { ActorRefFrom, Subscription } from 'xstate';
8
9
  export declare class Item<T extends ModelValues<ModelSchema>> implements IItem<T> {
@@ -100,12 +101,29 @@ export declare class Item<T extends ModelValues<ModelSchema>> implements IItem<T
100
101
  * instance is used after loadOrCreateItemSuccess merges DB-backed instances).
101
102
  */
102
103
  protected _definePropertyAccessor(propertyName: string): void;
103
- static publish(item: IItem<any>): Promise<void>;
104
+ /** Same as `item.publish(options)`; requires @seedprotocol/publish. */
105
+ /**
106
+ * Set `publisher` on loaded Items for these seeds (after claimUnpublishedDrafts stamped
107
+ * their rows). Items that aren't loaded read it from the DB when they load.
108
+ */
109
+ static setPublisherForCachedSeeds(seedLocalIds: readonly string[], publisher: string): void;
110
+ static publish(item: IItem<any>, options?: ItemPublishOptions): Promise<void>;
104
111
  subscribe: (callback: (itemProps: any) => void) => Subscription;
105
112
  getService: () => ActorRefFrom<typeof itemMachineSingle>;
106
113
  getEditedProperties: () => Promise<PropertyData[]>;
107
114
  unpublish: () => Promise<void>;
108
- publish: () => Promise<void>;
115
+ /**
116
+ * Upload this item's files to Arweave and write its attestations to EAS.
117
+ *
118
+ * Requires @seedprotocol/publish. Its `initPublish()` (or `<PublishProvider config>`)
119
+ * registers the PublishExecutor this delegates to; without it, publish() throws
120
+ * PUBLISH_NOT_CONFIGURED_MESSAGE. `options` are passed to that package unchanged (its
121
+ * CreatePublishOptions: signers, Arweave tags, `publishMode`, `onPublished`, ...).
122
+ *
123
+ * Resolves when the publish has finished, and rejects with the publish package's error
124
+ * if it failed. Throws OwnershipError if none of the client's addresses own the item.
125
+ */
126
+ publish: (options?: ItemPublishOptions) => Promise<void>;
109
127
  getPublishUploads: (options?: import("../db/read/getPublishUploads").GetPublishUploadsOptions) => Promise<import("../types").PublishUpload[]>;
110
128
  getPublishPayload: (uploadedTransactions: any[], options?: import("../db/read/getPublishPayload").GetPublishPayloadOptions) => Promise<{
111
129
  localId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"Item.d.ts","sourceRoot":"","sources":["../../../src/Item/Item.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Item.d.ts","sourceRoot":"","sources":["../../../src/Item/Item.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,14 @@
1
1
  import { EventObject } from 'xstate';
2
- import { FromCallbackInput } from '../../../types/machines';
3
2
  import { ItemMachineContext } from '../../../types/item';
4
- export declare const runPublish: import("xstate").CallbackActorLogic<EventObject, FromCallbackInput<ItemMachineContext<any>>, EventObject>;
3
+ import type { IItem } from '../../../interfaces/IItem';
4
+ import { type ItemPublishOptions } from '../../../helpers/publishConfig';
5
+ /**
6
+ * Runs the publish for item.publish() by handing the item to the PublishExecutor that
7
+ * @seedprotocol/publish registers, which uploads to Arweave and writes to EAS.
8
+ */
9
+ export declare const runPublish: import("xstate").CallbackActorLogic<EventObject, {
10
+ context: ItemMachineContext<any>;
11
+ item?: IItem<any>;
12
+ options?: ItemPublishOptions;
13
+ }, EventObject>;
5
14
  //# sourceMappingURL=runPublish.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runPublish.d.ts","sourceRoot":"","sources":["../../../../../src/Item/service/actors/runPublish.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAgB,MAAM,QAAQ,CAAA;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAOjD,eAAO,MAAM,UAAU,2GAsDrB,CAAA"}
1
+ {"version":3,"file":"runPublish.d.ts","sourceRoot":"","sources":["../../../../../src/Item/service/actors/runPublish.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAgB,MAAM,QAAQ,CAAA;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAEjD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAE/C,OAAO,EAGL,KAAK,kBAAkB,EACxB,MAAM,yBAAyB,CAAA;AAIhC;;;GAGG;AACH,eAAO,MAAM,UAAU;aAEV,kBAAkB,CAAC,GAAG,CAAC;WAAS,KAAK,CAAC,GAAG,CAAC;cAAY,kBAAkB;eAgCnF,CAAA"}
@@ -1,7 +1,13 @@
1
1
  import { MachineIds } from '../../client/constants';
2
2
  import { ItemMachineContext } from '../../types';
3
+ import type { ItemPublishOptions } from '../../helpers/publishConfig';
4
+ import type { IItem } from '../../interfaces/IItem';
3
5
  export declare const itemMachineSingle: import("xstate").StateMachine<ItemMachineContext<any>, import("xstate").AnyEventObject, {
4
- [x: string]: import("xstate").ActorRefFromLogic<import("xstate").CallbackActorLogic<import("xstate").EventObject, import("../../types").FromCallbackInput<ItemMachineContext<any>>, import("xstate").EventObject>> | undefined;
6
+ [x: string]: import("xstate").ActorRefFromLogic<import("xstate").CallbackActorLogic<import("xstate").EventObject, import("../../types").FromCallbackInput<ItemMachineContext<any>>, import("xstate").EventObject> | import("xstate").CallbackActorLogic<import("xstate").EventObject, {
7
+ context: ItemMachineContext<any>;
8
+ item?: IItem<any>;
9
+ options?: ItemPublishOptions;
10
+ }, import("xstate").EventObject>> | undefined;
5
11
  }, {
6
12
  src: "waitForDb";
7
13
  logic: import("xstate").CallbackActorLogic<import("xstate").EventObject, import("../../types").FromCallbackInput<ItemMachineContext<any>>, import("xstate").EventObject>;
@@ -12,7 +18,11 @@ export declare const itemMachineSingle: import("xstate").StateMachine<ItemMachin
12
18
  id: string | undefined;
13
19
  } | {
14
20
  src: "runPublish";
15
- logic: import("xstate").CallbackActorLogic<import("xstate").EventObject, import("../../types").FromCallbackInput<ItemMachineContext<any>>, import("xstate").EventObject>;
21
+ logic: import("xstate").CallbackActorLogic<import("xstate").EventObject, {
22
+ context: ItemMachineContext<any>;
23
+ item?: IItem<any>;
24
+ options?: ItemPublishOptions;
25
+ }, import("xstate").EventObject>;
16
26
  id: string | undefined;
17
27
  }, never, never, never, "error" | "idle" | "loading" | "waitingForDb" | "publishing", string, {}, import("xstate").NonReducibleUnknown, import("xstate").EventObject, import("xstate").MetaObject, {
18
28
  id: MachineIds.ITEM;
@@ -1 +1 @@
1
- {"version":3,"file":"itemMachineSingle.d.ts","sourceRoot":"","sources":["../../../../src/Item/service/itemMachineSingle.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAO5C,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;+BAiM5B,CAAA"}
1
+ {"version":3,"file":"itemMachineSingle.d.ts","sourceRoot":"","sources":["../../../../src/Item/service/itemMachineSingle.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAI5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AACjE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAI/C,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAqM5B,CAAA"}
@@ -48,8 +48,8 @@ export declare class ItemProperty<PropertyType> implements IItemProperty<Propert
48
48
  * receives the update and refreshes its propertyRecordSchema.
49
49
  */
50
50
  private _setupPropertySchemaLiveQuery;
51
- static create(props: Partial<CreatePropertyInstanceProps>, options?: {
52
- waitForReady?: false;
51
+ static create(props: Partial<CreatePropertyInstanceProps>, options: {
52
+ waitForReady: false;
53
53
  }): ItemProperty<any> | undefined;
54
54
  static create(props: Partial<CreatePropertyInstanceProps>, options?: {
55
55
  waitForReady?: true;
@@ -140,7 +140,9 @@ export declare class ItemProperty<PropertyType> implements IItemProperty<Propert
140
140
  save(): Promise<void>;
141
141
  unload(): void;
142
142
  /**
143
- * Destroy the item property: remove from caches, delete metadata from DB, remove from parent Item, stop service.
143
+ * Destroy the item property: remove from caches, delete its metadata rows (every version of
144
+ * this item's value) from the DB, remove it from the parent Item, and stop the service.
145
+ * Throws OwnershipError if none of the client's addresses own the item.
144
146
  */
145
147
  destroy(): Promise<void>;
146
148
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ItemProperty.d.ts","sourceRoot":"","sources":["../../../src/ItemProperty/ItemProperty.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA6B,YAAY,EAAW,MAAM,QAAQ,CAAA;AACvF,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,MAAM,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,2BAA2B,EAAE,sBAAsB,EAAsC,MAAM,SAAS,CAAA;AAIjH,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AA+B3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAiIzC,KAAK,mBAAmB,GAAG,YAAY,CAAC,OAAO,eAAe,CAAC,CAAA;AA4B/D,4GAA4G;AAC5G,qBAAa,+BAAgC,SAAQ,KAAK;aAGtC,gBAAgB,EAAE,OAAO,qBAAqB,EAAE,eAAe,EAAE;gBADjF,OAAO,EAAE,MAAM,EACC,gBAAgB,EAAE,OAAO,qBAAqB,EAAE,eAAe,EAAE;CAKpF;AAED,KAAK,qBAAqB,GAAG;IAC3B,YAAY,EAAE,MAAM,CAAA;IACpB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,gHAAgH;IAChH,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,qBAAa,YAAY,CAAC,YAAY,CAAE,YAAW,aAAa,CAAC,YAAY,CAAC;IAC5E,SAAS,CAAC,MAAM,CAAC,aAAa,EAAE,GAAG,CACjC,MAAM,EACN;QAAE,QAAQ,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAClD,CAAY;IACb,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAA;IAChD,SAAS,CAAC,QAAQ,EAAE,eAAe,CAAC,GAAG,CAAC,CAAA;IACxC,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAQ;IAC/C,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAQ;IAC3C,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7C,SAAS,CAAC,aAAa,EAAE,YAAY,CAAA;IACrC,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;IACvC,oGAAoG;IACpG,SAAS,CAAC,kBAAkB,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,SAAS,CAAA;IAC1D,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;IACxC,qHAAqH;IACrH,SAAS,CAAC,QAAQ,CAAC,wBAAwB,EAAE,MAAM,GAAG,SAAS,CAAA;gBAEnD,aAAa,EAAE,OAAO,CAAC,2BAA2B,CAAC;IAsR/D;;;OAGG;IACH,OAAO,CAAC,2BAA2B;IAmQnC;;;;OAIG;IACH,OAAO,CAAC,6BAA6B;IA6IrC,MAAM,CAAC,MAAM,CACX,KAAK,EAAE,OAAO,CAAC,2BAA2B,CAAC,EAC3C,OAAO,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,KAAK,CAAA;KAAE,GACjC,YAAY,CAAC,GAAG,CAAC,GAAG,SAAS;IAChC,MAAM,CAAC,MAAM,CACX,KAAK,EAAE,OAAO,CAAC,2BAA2B,CAAC,EAC3C,OAAO,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,IAAI,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,GACvD,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IAqLzC;;;;OAIG;IACH,MAAM,CAAC,SAAS,CAAC,EACf,YAAY,EACZ,WAAW,EACX,OAAO,GACR,EAAE;QACD,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,OAAO,CAAC,EAAE,MAAM,CAAA;KACjB,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,SAAS;WAoBpB,IAAI,CAAC,EAChB,YAAY,EACZ,WAAW,EACX,OAAO,EACP,SAAS,EAAE,eAAe,EAC1B,YAAmB,EACnB,YAAmB,GACpB,EAAE,qBAAqB,GAAG;QACzB,YAAY,CAAC,EAAE,OAAO,CAAA;QACtB,YAAY,CAAC,EAAE,MAAM,CAAA;KACtB,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IA+D1C;;;OAGG;WACU,GAAG,CACd,MAAM,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,EAClD,OAAO,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,OAAO,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,GAC1D,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;IA2F/B,IAAI,2BAAoB;IAExB,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM;IAKvE,gFAAgF;IAChF,MAAM,CAAC,yBAAyB,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI;IAQhE,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;IAIV,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,mBAAmB;IAI3B,IAAI,OAAO,WAEV;IAED,IAAI,GAAG,WAEN;IAED,IAAI,WAAW,WAEd;IAED,IAAI,OAAO,WAEV;IAED,IAAI,SAAS,IAAI,MAAM,GAAG,SAAS,CAElC;IAED,IAAI,YAAY,IAAI,MAAM,CAgBzB;IAED,uHAAuH;IACvH,IAAI,mBAAmB,IAAI,MAAM,CAEhC;IAED,IAAI,SAAS,WAEZ;IAED,IAAI,WAAW,IAAI,MAAM,CAAC,OAAO,SAAS,CAAC,GAAG,SAAS,CAEtD;IAED,IAAI,eAAe,IAAI,MAAM,GAAG,IAAI,CASnC;IAED,IAAI,gBAAgB,IAAI,MAAM,GAAG,SAAS,CAEzC;IAED,IAAI,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAKpC;IAED,IAAI,cAAc,IAAI,MAAM,GAAG,SAAS,CAEvC;IAED,IAAI,MAAM;;MAET;IAED,wHAAwH;IACxH,IAAI,oBAAoB,IAAI,OAAO,qBAAqB,EAAE,eAAe,EAAE,CAE1E;IAED,IAAI,KAAK,uBAER;IAED,IAAI,KAAK,IAiBQ,GAAG,CAFnB;IAED,IAAI,KAAK,CAAC,KAAK,EAAE,GAAG,EAwCnB;IAED,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAWtC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAkD3B,MAAM;IAwDN;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAuD/B"}
1
+ {"version":3,"file":"ItemProperty.d.ts","sourceRoot":"","sources":["../../../src/ItemProperty/ItemProperty.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"analyzeInput.d.ts","sourceRoot":"","sources":["../../../../../../src/ItemProperty/service/actors/saveValueToDb/analyzeInput.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAgB,MAAM,QAAQ,CAAA;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAEL,sBAAsB,EACtB,kBAAkB,EACnB,MAAM,kBAAkB,CAAA;AAmBzB,eAAO,MAAM,YAAY,8HAgOvB,CAAA"}
1
+ {"version":3,"file":"analyzeInput.d.ts","sourceRoot":"","sources":["../../../../../../src/ItemProperty/service/actors/saveValueToDb/analyzeInput.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAgB,MAAM,QAAQ,CAAA;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAEL,sBAAsB,EACtB,kBAAkB,EACnB,MAAM,kBAAkB,CAAA;AAmBzB,eAAO,MAAM,YAAY,8HA4OvB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"propertyMachine.d.ts","sourceRoot":"","sources":["../../../../src/ItemProperty/service/propertyMachine.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAoCpE,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAwV1B,CAAA"}
1
+ {"version":3,"file":"propertyMachine.d.ts","sourceRoot":"","sources":["../../../../src/ItemProperty/service/propertyMachine.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAoCpE,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAuW1B,CAAA"}
@@ -28,6 +28,11 @@ export declare class Model {
28
28
  _properties?: any[];
29
29
  constructor(modelName: string, schemaName: string, id?: string, // schemaFileId (string) - public ID
30
30
  initialContext?: Pick<ModelMachineContext, '_pendingPropertyDefinitions'>, idFromSchema?: boolean);
31
+ /**
32
+ * Resolves once the model is idle and any properties passed to Model.create exist.
33
+ * Rejects if it errors, times out, or its properties can't be created.
34
+ */
35
+ private static waitUntilReady;
31
36
  /**
32
37
  * True when a name-cached instance belongs to a different model than the requested modelFileId.
33
38
  * A schema re-imported under the same name can give its models new ids while the previous
@@ -65,14 +70,14 @@ export declare class Model {
65
70
  * })
66
71
  */
67
72
  static create(modelName: string, schemaNameOrSchema: string | any, // Schema type - using any to avoid circular dependency
68
- options?: {
73
+ options: {
69
74
  id?: string;
70
75
  modelFileId?: string;
71
76
  properties?: {
72
77
  [propertyName: string]: any;
73
78
  };
74
79
  registerWithSchema?: boolean;
75
- waitForReady?: false;
80
+ waitForReady: false;
76
81
  }): Model;
77
82
  static create(modelName: string, schemaNameOrSchema: string | any, options?: {
78
83
  id?: string;
@@ -178,7 +183,8 @@ export declare class Model {
178
183
  /**
179
184
  * Get all Model instances, optionally filtered by schema.
180
185
  * When DB is available, loads from DB via getModelsData; otherwise returns from cache.
181
- * Supports waitForReady to wait for each model to reach idle state before returning.
186
+ * With waitForReady, waits for each model to be ready (idle, with any properties from Model.create
187
+ * created) and leaves out models that error or time out.
182
188
  */
183
189
  static all(schemaName?: string, options?: {
184
190
  waitForReady?: boolean;
@@ -204,7 +210,7 @@ export declare class Model {
204
210
  */
205
211
  private _saveDraftToDb;
206
212
  get status(): "error" | "idle" | "validating" | "loading" | "creatingProperties";
207
- get validationErrors(): import("../Schema").ValidationError[];
213
+ get validationErrors(): import("..").ValidationError[];
208
214
  get isValid(): boolean;
209
215
  get isEdited(): boolean;
210
216
  get id(): string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"Model.d.ts","sourceRoot":"","sources":["../../../src/Model/Model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA6B,MAAM,QAAQ,CAAA;AAChE,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAE1E,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAGlC,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAgCvC,KAAK,YAAY,GAAG,YAAY,CAAC,OAAO,YAAY,CAAC,CAAA;AA2CrD,qBAAa,KAAK;IAEhB,SAAS,CAAC,MAAM,CAAC,iBAAiB,EAAE,GAAG,CACrC,MAAM,EAAE,cAAc;IACtB;QAAE,QAAQ,EAAE,KAAK,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CACtC,CAAY;IAGb,SAAS,CAAC,MAAM,CAAC,mBAAmB,EAAE,GAAG,CACvC,MAAM,EAAE,yBAAyB;IACjC,MAAM,CACP,CAAY;IAGb,SAAS,CAAC,MAAM,CAAC,aAAa,EAAE,GAAG,CACjC,MAAM,EACN;QAAE,QAAQ,EAAE,KAAK,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CACtC,CAAY;IAGb,OAAO,CAAC,MAAM,CAAC,aAAa,CAKxB;IAGJ,SAAS,CAAC,MAAM,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAY;IAGtD,OAAO,CAAC,MAAM,CAAC,uBAAuB,CAAuB;IAC7D,OAAO,CAAC,MAAM,CAAC,eAAe,CAAY;IAC1C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAK;IAElD,MAAM,CAAC,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IASrE,MAAM,CAAC,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE;IAMrD,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAA;IAEzC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,GAAG,EAAE,CAAA;gBAIjB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,EAAE,CAAC,EAAE,MAAM,EAAE,oCAAoC;IACjD,cAAc,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,6BAA6B,CAAC,EACzE,YAAY,CAAC,EAAE,OAAO;IA0CxB;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAI7B;;;;;;;;OAQG;IACH,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,GAAE,OAAe,GAAG,MAAM;IAsEzG;;;;;;;;;;;;;;;;;;;OAmBG;IACH,MAAM,CAAC,MAAM,CACX,SAAS,EAAE,MAAM,EACjB,kBAAkB,EAAE,MAAM,GAAG,GAAG,EAAE,uDAAuD;IACzF,OAAO,CAAC,EAAE;QACR,EAAE,CAAC,EAAE,MAAM,CAAA;QACX,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,UAAU,CAAC,EAAE;YAAE,CAAC,YAAY,EAAE,MAAM,GAAG,GAAG,CAAA;SAAE,CAAA;QAC5C,kBAAkB,CAAC,EAAE,OAAO,CAAA;QAC5B,YAAY,CAAC,EAAE,KAAK,CAAA;KACrB,GACA,KAAK;IACR,MAAM,CAAC,MAAM,CACX,SAAS,EAAE,MAAM,EACjB,kBAAkB,EAAE,MAAM,GAAG,GAAG,EAChC,OAAO,CAAC,EAAE;QACR,EAAE,CAAC,EAAE,MAAM,CAAA;QACX,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,UAAU,CAAC,EAAE;YAAE,CAAC,YAAY,EAAE,MAAM,GAAG,GAAG,CAAA;SAAE,CAAA;QAC5C,kBAAkB,CAAC,EAAE,OAAO,CAAA;QAC5B,YAAY,CAAC,EAAE,IAAI,CAAA;QACnB,YAAY,CAAC,EAAE,MAAM,CAAA;KACtB,GACA,OAAO,CAAC,KAAK,CAAC;IAyoBjB;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS;IAatD;;;;;;OAMG;IACH,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS;IAe3E,yGAAyG;IACzG,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAmBpC;;;OAGG;IACH,MAAM,CAAC,OAAO,CACZ,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,KAAK,GAAE;QAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAO,GACtE,KAAK,GAAG,SAAS;IAapB;;;OAGG;IACH,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS;IAK5D;;;OAGG;IACH,MAAM,CAAC,2BAA2B,CAAC,UAAU,EAAE,MAAM,GAAG,KAAK,EAAE;IA2B/D;;;OAGG;WACU,YAAY,CACvB,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,KAAK,GAAE;QAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAO,GACtE,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC;IA2C7B;;;;;;;OAOG;WACU,cAAc,CACzB,SAAS,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;QACR;;;WAGG;QACH,aAAa,CAAC,EAAE,MAAM,CAAA;KACvB,GACA,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC;IA8D7B;;;;;;OAMG;WACU,UAAU,CACrB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;QACR;;;;WAIG;QACH,aAAa,CAAC,EAAE,MAAM,CAAA;KACvB,GACA,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC;IA+D7B;;;;;OAKG;WACU,IAAI,CAAC,EAChB,WAAW,EACX,SAAS,EACT,UAAU,EACV,YAAmB,EACnB,YAAmB,GACpB,EAAE;QACD,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,YAAY,CAAC,EAAE,OAAO,CAAA;QACtB,YAAY,CAAC,EAAE,MAAM,CAAA;KACtB,GAAG,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC;IA0B9B;;;;;;OAMG;WACU,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAqEzE;;;;OAIG;WACU,GAAG,CACd,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,OAAO,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,GAC1D,OAAO,CAAC,KAAK,EAAE,CAAC;IAuGnB;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAoBvG,UAAU,IAAI,YAAY;IAI1B,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,mBAAmB;IAI3B;;;OAGG;YACW,kBAAkB;IAsChC;;;;;OAKG;YACW,cAAc;IA2G5B,IAAI,MAAM,uEAET;IAED,IAAI,gBAAgB,0CAEnB;IAED,IAAI,OAAO,YAGV;IAED,IAAI,QAAQ,YAcX;IAED,IAAI,EAAE,uBAEL;IAED,IAAI,IAAI,WAEP;IAED;;;;OAIG;IACH,IAAI,UAAU,IAAI,GAAG,EAAE,CAkCtB;IAED;;;OAGG;IACG,QAAQ,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,GAAG,EAAE,CAAA;KAAE,CAAC;IAkC9D;;;;;;;;;;OAUG;IACG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAejF;;;OAGG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IA0B7B;;;;;OAKG;IACH,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE;IAqCnD;;OAEG;IACH,MAAM,IAAI,IAAI;IA8Bd;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA+D9B;;;OAGG;IACH,OAAO,CAAC,2BAA2B;IA4GnC;;OAEG;YACW,wBAAwB;IAoEtC;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxC;;;;OAIG;WACU,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAgBnE"}
1
+ {"version":3,"file":"Model.d.ts","sourceRoot":"","sources":["../../../src/Model/Model.ts"],"names":[],"mappings":"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"}
@@ -5,13 +5,13 @@ export declare const TModelSchema: import("@sinclair/typebox").TRecord<import("@
5
5
  id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
6
6
  _dbId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
7
7
  name: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
8
- dataType: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<import("..").ModelPropertyDataTypes.Text>, import("@sinclair/typebox").TLiteral<import("..").ModelPropertyDataTypes.Number>, import("@sinclair/typebox").TLiteral<import("..").ModelPropertyDataTypes.List>, import("@sinclair/typebox").TLiteral<import("..").ModelPropertyDataTypes.Relation>, import("@sinclair/typebox").TLiteral<import("..").ModelPropertyDataTypes.Image>, import("@sinclair/typebox").TLiteral<import("..").ModelPropertyDataTypes.Json>, import("@sinclair/typebox").TLiteral<import("..").ModelPropertyDataTypes.File>, import("@sinclair/typebox").TLiteral<import("..").ModelPropertyDataTypes.Boolean>, import("@sinclair/typebox").TLiteral<import("..").ModelPropertyDataTypes.Date>, import("@sinclair/typebox").TLiteral<import("..").ModelPropertyDataTypes.Html>]>;
8
+ dataType: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"Text">, import("@sinclair/typebox").TLiteral<"Number">, import("@sinclair/typebox").TLiteral<"List">, import("@sinclair/typebox").TLiteral<"Relation">, import("@sinclair/typebox").TLiteral<"Image">, import("@sinclair/typebox").TLiteral<"Json">, import("@sinclair/typebox").TLiteral<"File">, import("@sinclair/typebox").TLiteral<"Boolean">, import("@sinclair/typebox").TLiteral<"Date">, import("@sinclair/typebox").TLiteral<"Html">]>;
9
9
  ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
10
10
  modelId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TString]>>;
11
11
  modelName: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
12
12
  refModelId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
13
13
  refModelName: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
14
- refValueType: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<import("..").ModelPropertyDataTypes.Text>, import("@sinclair/typebox").TLiteral<import("..").ModelPropertyDataTypes.Number>, import("@sinclair/typebox").TLiteral<import("..").ModelPropertyDataTypes.List>, import("@sinclair/typebox").TLiteral<import("..").ModelPropertyDataTypes.Relation>, import("@sinclair/typebox").TLiteral<import("..").ModelPropertyDataTypes.Image>, import("@sinclair/typebox").TLiteral<import("..").ModelPropertyDataTypes.Json>, import("@sinclair/typebox").TLiteral<import("..").ModelPropertyDataTypes.File>, import("@sinclair/typebox").TLiteral<import("..").ModelPropertyDataTypes.Boolean>, import("@sinclair/typebox").TLiteral<import("..").ModelPropertyDataTypes.Date>, import("@sinclair/typebox").TLiteral<import("..").ModelPropertyDataTypes.Html>]>>;
14
+ refValueType: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"Text">, import("@sinclair/typebox").TLiteral<"Number">, import("@sinclair/typebox").TLiteral<"List">, import("@sinclair/typebox").TLiteral<"Relation">, import("@sinclair/typebox").TLiteral<"Image">, import("@sinclair/typebox").TLiteral<"Json">, import("@sinclair/typebox").TLiteral<"File">, import("@sinclair/typebox").TLiteral<"Boolean">, import("@sinclair/typebox").TLiteral<"Date">, import("@sinclair/typebox").TLiteral<"Html">]>>;
15
15
  storageType: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"ItemStorage">, import("@sinclair/typebox").TLiteral<"PropertyStorage">]>>;
16
16
  localStorageDir: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
17
17
  filenameSuffix: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
@@ -81,8 +81,8 @@ export declare class ModelProperty {
81
81
  * Useful when you know the schema name from context (e.g., when working with Schema instances)
82
82
  */
83
83
  setSchemaName(schemaName: string): void;
84
- static create(property: Static<typeof TProperty>, options?: {
85
- waitForReady?: false;
84
+ static create(property: Static<typeof TProperty>, options: {
85
+ waitForReady: false;
86
86
  schemaName?: string;
87
87
  }): ModelProperty;
88
88
  static create(property: Static<typeof TProperty>, options?: {
@@ -109,6 +109,14 @@ export declare class ModelProperty {
109
109
  */
110
110
  evictionEpoch?: number;
111
111
  }): Promise<ModelProperty | undefined>;
112
+ /**
113
+ * Give cached instances of these properties the values their rows now have (e.g. after a schema
114
+ * update reloaded them: renamed, dataType or storage changed). Nothing else updates them: createById
115
+ * and the Model's property refresh return a cached instance as is. A renamed instance's
116
+ * "modelName:oldName" cache entry is re-keyed so creating the property by its new name finds it.
117
+ * Instances with unsaved edits are left alone, as addModelsToDb leaves edited rows alone.
118
+ */
119
+ static refreshFromDb(propertyFileIds: string[]): Promise<void>;
112
120
  /**
113
121
  * Find ModelProperty instance by propertyFileId
114
122
  * Waits for the property to be fully loaded (idle state) by default