@seedprotocol/sdk 0.7.9-next.1189.g5e63267 → 0.7.9

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 (581) hide show
  1. package/dist/BaseFileManager-BAlySv8w.js +650 -0
  2. package/dist/BaseFileManager-BAlySv8w.js.map +1 -0
  3. package/dist/{Item-CG5IhPtL.js → Item-Bf4kWKpH.js} +5576 -6649
  4. package/dist/Item-Bf4kWKpH.js.map +1 -0
  5. package/dist/{ModelProperty-DDD47KVm.js → ModelProperty-BlaEgb_U.js} +345 -709
  6. package/dist/ModelProperty-BlaEgb_U.js.map +1 -0
  7. package/dist/Schema-J_1f6p0c.js +1456 -0
  8. package/dist/Schema-J_1f6p0c.js.map +1 -0
  9. package/dist/{SchemaValidationService-CZzKNL04.js → SchemaValidationService-CnmKyzR-.js} +6 -9
  10. package/dist/{SchemaValidationService-CZzKNL04.js.map → SchemaValidationService-CnmKyzR-.js.map} +1 -1
  11. package/dist/{configurePlatform-Dukm2QwO.js → configurePlatform-CiOJ1R3q.js} +3 -12
  12. package/dist/configurePlatform-CiOJ1R3q.js.map +1 -0
  13. package/dist/db/drizzle/0026_add_content_hash_to_schemas.sql +1 -0
  14. package/dist/db/drizzle/0027_link_metadata_property_ids.sql +74 -0
  15. package/dist/db/drizzle/0028_add_definition_to_properties.sql +17 -0
  16. package/dist/db/drizzle/0029_dedupe_chain_uids_add_unique_indexes.sql +120 -0
  17. package/dist/db/drizzle/meta/0026_snapshot.json +1659 -0
  18. package/dist/db/drizzle/meta/0027_snapshot.json +1659 -0
  19. package/dist/db/drizzle/meta/0028_snapshot.json +1666 -0
  20. package/dist/db/drizzle/meta/0029_snapshot.json +1691 -0
  21. package/dist/db/drizzle/meta/_journal.json +29 -1
  22. package/dist/{detachRowsBeforeDelete-Di1enVUF.js → detachRowsBeforeDelete-sEaUwlOU.js} +2 -13
  23. package/dist/{detachRowsBeforeDelete-Di1enVUF.js.map → detachRowsBeforeDelete-sEaUwlOU.js.map} +1 -1
  24. package/dist/dist/{index-rOTW-2QZ.d.ts → BaseFileManager-BAlySv8w.d.ts} +1407 -2700
  25. package/dist/dist/BaseFileManager-BAlySv8w.d.ts.map +1 -0
  26. package/dist/dist/{configurePlatform-Dukm2QwO.d.ts → configurePlatform-CiOJ1R3q.d.ts} +1 -1
  27. package/dist/dist/configurePlatform-CiOJ1R3q.d.ts.map +1 -0
  28. package/dist/dist/{index-DxHpPNfn.d.ts → index-D0V-mjCV.d.ts} +39 -1
  29. package/dist/dist/{index-DxHpPNfn.d.ts.map → index-D0V-mjCV.d.ts.map} +1 -1
  30. package/dist/dist/{index.node-WsEJCOwC.d.ts → index.node-CYPemH-t.d.ts} +157 -5
  31. package/dist/dist/{index.node-WsEJCOwC.d.ts.map → index.node-CYPemH-t.d.ts.map} +1 -1
  32. package/dist/dist/platform.node.d.ts +2 -2
  33. package/dist/eas-wB_fQ8Tc.js +32 -0
  34. package/dist/eas-wB_fQ8Tc.js.map +1 -0
  35. package/dist/errors-DLSoqSHG.js +6550 -0
  36. package/dist/errors-DLSoqSHG.js.map +1 -0
  37. package/dist/getPublishPayload-BnIwpwz1.js +760 -0
  38. package/dist/getPublishPayload-BnIwpwz1.js.map +1 -0
  39. package/dist/getPublishPendingDiff-D6_-A5ns.js +125 -0
  40. package/dist/getPublishPendingDiff-D6_-A5ns.js.map +1 -0
  41. package/dist/getPublishUploads-sS6JfPgz.js +783 -0
  42. package/dist/getPublishUploads-sS6JfPgz.js.map +1 -0
  43. package/dist/{index-DQoyhp2c.js → index-BVBmz_cc.js} +11 -14
  44. package/dist/index-BVBmz_cc.js.map +1 -0
  45. package/dist/index-CYGWPoOx.js +27 -0
  46. package/dist/index-CYGWPoOx.js.map +1 -0
  47. package/dist/{index-DxHpPNfn.js → index-D0V-mjCV.js} +2 -2
  48. package/dist/index-D0V-mjCV.js.map +1 -0
  49. package/dist/index-DmTtj1nk.js +817 -0
  50. package/dist/index-DmTtj1nk.js.map +1 -0
  51. package/dist/{index.browser-QPWBkLJA.js → index.browser-CUmBVYen.js} +397 -356
  52. package/dist/index.browser-CUmBVYen.js.map +1 -0
  53. package/dist/{index.node-WsEJCOwC.js → index.node-CYPemH-t.js} +10 -10
  54. package/dist/index.node-CYPemH-t.js.map +1 -0
  55. package/dist/main.js +23 -1075
  56. package/dist/main.js.map +1 -1
  57. package/dist/modelPropertyRecordSchemas-C7UgA5TH.js +48 -0
  58. package/dist/modelPropertyRecordSchemas-C7UgA5TH.js.map +1 -0
  59. package/dist/node.js +14 -18
  60. package/dist/node.js.map +1 -1
  61. package/dist/platform.browser.js +8 -13
  62. package/dist/platform.browser.js.map +1 -1
  63. package/dist/platform.node.js +6 -16
  64. package/dist/platform.node.js.map +1 -1
  65. package/dist/property-BxUYznH0.js +87 -0
  66. package/dist/property-BxUYznH0.js.map +1 -0
  67. package/dist/publishGraph-EcB40Uii.js +311 -0
  68. package/dist/publishGraph-EcB40Uii.js.map +1 -0
  69. package/dist/readHtmlBodyForStorageSeed-D6KPtWoR.js +110 -0
  70. package/dist/readHtmlBodyForStorageSeed-D6KPtWoR.js.map +1 -0
  71. package/dist/seedSchema/ModelSchema.ts +4 -0
  72. package/dist/seedSchema/ModelSchemaSchema.ts +5 -2
  73. package/dist/seedSchema/PendingWriteSchema.ts +4 -1
  74. package/dist/seedSchema/SchemaSchema.ts +3 -0
  75. package/dist/seedSchema/SeedSchema.ts +8 -2
  76. package/dist/seedSchema/VersionSchema.ts +7 -2
  77. package/dist/seedSchema/attestedUid.ts +10 -0
  78. package/dist/src/Item/Item.d.ts +32 -30
  79. package/dist/src/Item/Item.d.ts.map +1 -1
  80. package/dist/src/Item/loadItem.d.ts +12 -0
  81. package/dist/src/Item/loadItem.d.ts.map +1 -0
  82. package/dist/src/Item/service/itemMachineSingle.d.ts +2 -13
  83. package/dist/src/Item/service/itemMachineSingle.d.ts.map +1 -1
  84. package/dist/src/ItemProperty/ItemProperty.d.ts +77 -46
  85. package/dist/src/ItemProperty/ItemProperty.d.ts.map +1 -1
  86. package/dist/src/ItemProperty/loadProperty.d.ts +11 -0
  87. package/dist/src/ItemProperty/loadProperty.d.ts.map +1 -0
  88. package/dist/src/ItemProperty/propertyWrite.d.ts +54 -0
  89. package/dist/src/ItemProperty/propertyWrite.d.ts.map +1 -0
  90. package/dist/src/ItemProperty/{service/actors/saveValueToDb/rowContext.d.ts → rowContext.d.ts} +1 -1
  91. package/dist/src/ItemProperty/rowContext.d.ts.map +1 -0
  92. package/dist/src/ItemProperty/service/actors/hydrateFromDb.d.ts +6 -0
  93. package/dist/src/ItemProperty/service/actors/hydrateFromDb.d.ts.map +1 -1
  94. package/dist/src/ItemProperty/service/actors/modelPropertyRecordSchemas.d.ts +5 -15
  95. package/dist/src/ItemProperty/service/actors/modelPropertyRecordSchemas.d.ts.map +1 -1
  96. package/dist/src/ItemProperty/service/propertyMachine.d.ts +4 -50
  97. package/dist/src/ItemProperty/service/propertyMachine.d.ts.map +1 -1
  98. package/dist/src/Model/Model.d.ts +26 -56
  99. package/dist/src/Model/Model.d.ts.map +1 -1
  100. package/dist/src/Model/createModelProperties.d.ts +10 -0
  101. package/dist/src/Model/createModelProperties.d.ts.map +1 -0
  102. package/dist/src/Model/loadModel.d.ts +13 -0
  103. package/dist/src/Model/loadModel.d.ts.map +1 -0
  104. package/dist/src/Model/service/actors/validateModel.d.ts.map +1 -1
  105. package/dist/src/Model/service/modelMachine.d.ts +5 -114
  106. package/dist/src/Model/service/modelMachine.d.ts.map +1 -1
  107. package/dist/src/ModelProperty/ModelProperty.d.ts +44 -37
  108. package/dist/src/ModelProperty/ModelProperty.d.ts.map +1 -1
  109. package/dist/src/ModelProperty/service/actors/compareAndMarkDraft.d.ts.map +1 -1
  110. package/dist/src/ModelProperty/service/actors/validateProperty.d.ts.map +1 -1
  111. package/dist/src/ModelProperty/service/modelPropertyMachine.d.ts +6 -77
  112. package/dist/src/ModelProperty/service/modelPropertyMachine.d.ts.map +1 -1
  113. package/dist/src/Schema/Schema.d.ts +36 -37
  114. package/dist/src/Schema/Schema.d.ts.map +1 -1
  115. package/dist/src/Schema/loadOrCreateSchema.d.ts +21 -0
  116. package/dist/src/Schema/loadOrCreateSchema.d.ts.map +1 -0
  117. package/dist/src/Schema/service/schemaMachine.d.ts +7 -125
  118. package/dist/src/Schema/service/schemaMachine.d.ts.map +1 -1
  119. package/dist/src/browser/db/Db.d.ts.map +1 -1
  120. package/dist/src/browser/db/changeFeed.d.ts +2 -18
  121. package/dist/src/browser/db/changeFeed.d.ts.map +1 -1
  122. package/dist/src/browser/db/drizzleFiles.d.ts +6 -2
  123. package/dist/src/browser/db/drizzleFiles.d.ts.map +1 -1
  124. package/dist/src/browser/workers/filesDownload.d.ts.map +1 -1
  125. package/dist/src/browser/workers/imageResize.d.ts.map +1 -1
  126. package/dist/src/client/ClientManager.d.ts +90 -57
  127. package/dist/src/client/ClientManager.d.ts.map +1 -1
  128. package/dist/src/client/actors/addModelsToDb.d.ts +9 -7
  129. package/dist/src/client/actors/addModelsToDb.d.ts.map +1 -1
  130. package/dist/src/client/actors/dbInit.d.ts +3 -3
  131. package/dist/src/client/actors/dbInit.d.ts.map +1 -1
  132. package/dist/src/client/actors/fileSystemInit.d.ts +3 -3
  133. package/dist/src/client/actors/fileSystemInit.d.ts.map +1 -1
  134. package/dist/src/client/actors/platformClassesInit.d.ts +10 -5
  135. package/dist/src/client/actors/platformClassesInit.d.ts.map +1 -1
  136. package/dist/src/client/actors/processSchemaFiles.d.ts +18 -3
  137. package/dist/src/client/actors/processSchemaFiles.d.ts.map +1 -1
  138. package/dist/src/client/actors/saveConfig.d.ts +6 -3
  139. package/dist/src/client/actors/saveConfig.d.ts.map +1 -1
  140. package/dist/src/client/clientManagerMachine.d.ts +22 -20
  141. package/dist/src/client/clientManagerMachine.d.ts.map +1 -1
  142. package/dist/src/client/constants.d.ts +1 -9
  143. package/dist/src/client/constants.d.ts.map +1 -1
  144. package/dist/src/client/readiness.d.ts +26 -0
  145. package/dist/src/client/readiness.d.ts.map +1 -0
  146. package/dist/src/db/read/currentPropertyRow.d.ts +61 -0
  147. package/dist/src/db/read/currentPropertyRow.d.ts.map +1 -0
  148. package/dist/src/db/read/findSeedRow.d.ts +20 -0
  149. package/dist/src/db/read/findSeedRow.d.ts.map +1 -0
  150. package/dist/src/db/read/findSeedRowsByUid.d.ts +4 -1
  151. package/dist/src/db/read/findSeedRowsByUid.d.ts.map +1 -1
  152. package/dist/src/db/read/getAttesterForSeed.d.ts +1 -1
  153. package/dist/src/db/read/getAttesterForSeed.d.ts.map +1 -1
  154. package/dist/src/db/read/getItemData.d.ts.map +1 -1
  155. package/dist/src/db/read/getItemProperties.d.ts +5 -0
  156. package/dist/src/db/read/getItemProperties.d.ts.map +1 -1
  157. package/dist/src/db/read/getMetadataAttestationUidsForSeedUid.d.ts.map +1 -1
  158. package/dist/src/db/read/getModelSchemas.d.ts +0 -7
  159. package/dist/src/db/read/getModelSchemas.d.ts.map +1 -1
  160. package/dist/src/db/read/getModelsData.d.ts.map +1 -1
  161. package/dist/src/db/read/getPropertyClear.d.ts +5 -1
  162. package/dist/src/db/read/getPropertyClear.d.ts.map +1 -1
  163. package/dist/src/db/read/getPublishPayload.d.ts +35 -40
  164. package/dist/src/db/read/getPublishPayload.d.ts.map +1 -1
  165. package/dist/src/db/read/getPublishPendingDiff.d.ts +2 -2
  166. package/dist/src/db/read/getPublishPendingDiff.d.ts.map +1 -1
  167. package/dist/src/db/read/getPublishUploads.d.ts +59 -28
  168. package/dist/src/db/read/getPublishUploads.d.ts.map +1 -1
  169. package/dist/src/db/read/getSchemaUidForModel.d.ts.map +1 -1
  170. package/dist/src/db/read/getSeedPublishState.d.ts.map +1 -1
  171. package/dist/src/db/read/getSeedPublisher.d.ts.map +1 -1
  172. package/dist/src/db/read/getVersionsForSeedUid.d.ts.map +1 -1
  173. package/dist/src/db/read/isSeedRevoked.d.ts.map +1 -1
  174. package/dist/src/db/read/localModelSchemaLookups.d.ts +8 -0
  175. package/dist/src/db/read/localModelSchemaLookups.d.ts.map +1 -0
  176. package/dist/src/db/read/metadataProperty.d.ts +104 -0
  177. package/dist/src/db/read/metadataProperty.d.ts.map +1 -0
  178. package/dist/src/db/read/publishGraph.d.ts +148 -0
  179. package/dist/src/db/read/publishGraph.d.ts.map +1 -0
  180. package/dist/src/db/read/resolveModelRecord.d.ts +26 -2
  181. package/dist/src/db/read/resolveModelRecord.d.ts.map +1 -1
  182. package/dist/src/db/read/resolveRelatedSeedRef.d.ts +1 -7
  183. package/dist/src/db/read/resolveRelatedSeedRef.d.ts.map +1 -1
  184. package/dist/src/db/read/subqueries/metadataLatest.d.ts +3 -1
  185. package/dist/src/db/read/subqueries/metadataLatest.d.ts.map +1 -1
  186. package/dist/src/db/read/summarizePublishWork.d.ts +13 -5
  187. package/dist/src/db/read/summarizePublishWork.d.ts.map +1 -1
  188. package/dist/src/db/write/applyPropertyAttestationUidsFromPublish.d.ts +20 -21
  189. package/dist/src/db/write/applyPropertyAttestationUidsFromPublish.d.ts.map +1 -1
  190. package/dist/src/db/write/createMetadata.d.ts.map +1 -1
  191. package/dist/src/db/write/createNewItem.d.ts.map +1 -1
  192. package/dist/src/db/write/createSeeds.d.ts +5 -1
  193. package/dist/src/db/write/createSeeds.d.ts.map +1 -1
  194. package/dist/src/db/write/definitions.d.ts +127 -0
  195. package/dist/src/db/write/definitions.d.ts.map +1 -0
  196. package/dist/src/db/write/mergeChainRows.d.ts +22 -0
  197. package/dist/src/db/write/mergeChainRows.d.ts.map +1 -0
  198. package/dist/src/db/write/saveDefinition.d.ts +29 -0
  199. package/dist/src/db/write/saveDefinition.d.ts.map +1 -0
  200. package/dist/src/db/write/updateSeedUid.d.ts +4 -2
  201. package/dist/src/db/write/updateSeedUid.d.ts.map +1 -1
  202. package/dist/src/db/write/updateVersionUid.d.ts +12 -4
  203. package/dist/src/db/write/updateVersionUid.d.ts.map +1 -1
  204. package/dist/src/db/write/writeModelUids.d.ts +10 -0
  205. package/dist/src/db/write/writeModelUids.d.ts.map +1 -0
  206. package/dist/src/eas.d.ts +8 -6
  207. package/dist/src/eas.d.ts.map +1 -1
  208. package/dist/src/events/files/download.d.ts.map +1 -1
  209. package/dist/src/events/item/syncDbWithEas.d.ts.map +1 -1
  210. package/dist/src/helpers/arweaveContentTags.d.ts +1 -1
  211. package/dist/src/helpers/arweaveContentTags.d.ts.map +1 -1
  212. package/dist/src/helpers/compareMetadataRowsLatestFirst.d.ts +18 -3
  213. package/dist/src/helpers/compareMetadataRowsLatestFirst.d.ts.map +1 -1
  214. package/dist/src/helpers/constants.d.ts +5 -2
  215. package/dist/src/helpers/constants.d.ts.map +1 -1
  216. package/dist/src/helpers/dataUrl.d.ts +10 -0
  217. package/dist/src/helpers/dataUrl.d.ts.map +1 -0
  218. package/dist/src/helpers/db.d.ts +54 -105
  219. package/dist/src/helpers/db.d.ts.map +1 -1
  220. package/dist/src/helpers/ensureImageLocal.d.ts.map +1 -1
  221. package/dist/src/helpers/entity/contextUpdate.d.ts +20 -0
  222. package/dist/src/helpers/entity/contextUpdate.d.ts.map +1 -0
  223. package/dist/src/helpers/entity/draftSaveErrors.d.ts +5 -0
  224. package/dist/src/helpers/entity/draftSaveErrors.d.ts.map +1 -1
  225. package/dist/src/helpers/entity/entityCache.d.ts +65 -3
  226. package/dist/src/helpers/entity/entityCache.d.ts.map +1 -1
  227. package/dist/src/helpers/entity/entityCommon.d.ts +0 -22
  228. package/dist/src/helpers/entity/entityCommon.d.ts.map +1 -1
  229. package/dist/src/helpers/entity/entityLifecycle.d.ts +75 -0
  230. package/dist/src/helpers/entity/entityLifecycle.d.ts.map +1 -0
  231. package/dist/src/helpers/entity/entityLiveQuery.d.ts +1 -23
  232. package/dist/src/helpers/entity/entityLiveQuery.d.ts.map +1 -1
  233. package/dist/src/helpers/htmlEmbeddedDataUriPublish.d.ts +4 -9
  234. package/dist/src/helpers/htmlEmbeddedDataUriPublish.d.ts.map +1 -1
  235. package/dist/src/helpers/index.d.ts +2 -24
  236. package/dist/src/helpers/index.d.ts.map +1 -1
  237. package/dist/src/helpers/localImageBlobUrl.d.ts +7 -0
  238. package/dist/src/helpers/localImageBlobUrl.d.ts.map +1 -0
  239. package/dist/src/helpers/mediaRef.d.ts +3 -70
  240. package/dist/src/helpers/mediaRef.d.ts.map +1 -1
  241. package/dist/src/helpers/metadataPropertyNames.d.ts +34 -26
  242. package/dist/src/helpers/metadataPropertyNames.d.ts.map +1 -1
  243. package/dist/src/helpers/mimeTypes.d.ts +2 -1
  244. package/dist/src/helpers/mimeTypes.d.ts.map +1 -1
  245. package/dist/src/helpers/model.d.ts.map +1 -1
  246. package/dist/src/helpers/ownership.d.ts.map +1 -1
  247. package/dist/src/helpers/property.d.ts +21 -26
  248. package/dist/src/helpers/property.d.ts.map +1 -1
  249. package/dist/src/helpers/propertyDefinition.d.ts +59 -0
  250. package/dist/src/helpers/propertyDefinition.d.ts.map +1 -0
  251. package/dist/src/helpers/readHtmlBodyForStorageSeed.d.ts.map +1 -1
  252. package/dist/src/helpers/relationSeedRef.d.ts +0 -7
  253. package/dist/src/helpers/relationSeedRef.d.ts.map +1 -1
  254. package/dist/src/helpers/schema.d.ts +24 -38
  255. package/dist/src/helpers/schema.d.ts.map +1 -1
  256. package/dist/src/helpers/schemaApply.d.ts +135 -0
  257. package/dist/src/helpers/schemaApply.d.ts.map +1 -0
  258. package/dist/src/helpers/tabEvents.d.ts.map +1 -1
  259. package/dist/src/helpers/updateSchema.d.ts +2 -18
  260. package/dist/src/helpers/updateSchema.d.ts.map +1 -1
  261. package/dist/src/imports/index.d.ts +1 -1
  262. package/dist/src/imports/index.d.ts.map +1 -1
  263. package/dist/src/imports/json.d.ts +8 -78
  264. package/dist/src/imports/json.d.ts.map +1 -1
  265. package/dist/src/index.d.ts +13 -13
  266. package/dist/src/index.d.ts.map +1 -1
  267. package/dist/src/interfaces/IItem.d.ts +5 -0
  268. package/dist/src/interfaces/IItem.d.ts.map +1 -1
  269. package/dist/src/interfaces/IItemProperty.d.ts +9 -7
  270. package/dist/src/interfaces/IItemProperty.d.ts.map +1 -1
  271. package/dist/src/node/db/Db.d.ts.map +1 -1
  272. package/dist/src/node/index.d.ts +2 -1
  273. package/dist/src/node/index.d.ts.map +1 -1
  274. package/dist/src/outbox/conflicts.d.ts +2 -0
  275. package/dist/src/outbox/conflicts.d.ts.map +1 -1
  276. package/dist/src/outbox/itemAppliers.d.ts +63 -14
  277. package/dist/src/outbox/itemAppliers.d.ts.map +1 -1
  278. package/dist/src/outbox/outbox.d.ts +14 -3
  279. package/dist/src/outbox/outbox.d.ts.map +1 -1
  280. package/dist/src/outbox/pendingValues.d.ts +3 -1
  281. package/dist/src/outbox/pendingValues.d.ts.map +1 -1
  282. package/dist/src/outbox/storageValueRow.d.ts +7 -0
  283. package/dist/src/outbox/storageValueRow.d.ts.map +1 -0
  284. package/dist/src/platform/configurePlatform.d.ts.map +1 -1
  285. package/dist/src/platform/index.browser.d.ts.map +1 -1
  286. package/dist/src/platform/index.node.d.ts.map +1 -1
  287. package/dist/src/seedSchema/ModelSchema.d.ts +19 -0
  288. package/dist/src/seedSchema/ModelSchema.d.ts.map +1 -1
  289. package/dist/src/seedSchema/ModelSchemaSchema.d.ts.map +1 -1
  290. package/dist/src/seedSchema/PendingWriteSchema.d.ts.map +1 -1
  291. package/dist/src/seedSchema/SchemaSchema.d.ts +19 -0
  292. package/dist/src/seedSchema/SchemaSchema.d.ts.map +1 -1
  293. package/dist/src/seedSchema/SeedSchema.d.ts.map +1 -1
  294. package/dist/src/seedSchema/VersionSchema.d.ts.map +1 -1
  295. package/dist/src/seedSchema/attestedUid.d.ts +9 -0
  296. package/dist/src/seedSchema/attestedUid.d.ts.map +1 -0
  297. package/dist/src/storageValue/content.d.ts +45 -0
  298. package/dist/src/storageValue/content.d.ts.map +1 -0
  299. package/dist/src/storageValue/findFile.d.ts +7 -0
  300. package/dist/src/storageValue/findFile.d.ts.map +1 -0
  301. package/dist/src/storageValue/resolve.d.ts +71 -0
  302. package/dist/src/storageValue/resolve.d.ts.map +1 -0
  303. package/dist/src/storageValue/save.d.ts +24 -0
  304. package/dist/src/storageValue/save.d.ts.map +1 -0
  305. package/dist/src/storageValue/stage.d.ts +22 -0
  306. package/dist/src/storageValue/stage.d.ts.map +1 -0
  307. package/dist/src/types/db.d.ts +0 -14
  308. package/dist/src/types/db.d.ts.map +1 -1
  309. package/dist/src/types/index.d.ts +3 -3
  310. package/dist/src/types/index.d.ts.map +1 -1
  311. package/dist/src/types/machines.d.ts +1 -1
  312. package/dist/src/types/machines.d.ts.map +1 -1
  313. package/dist/src/types/property.d.ts +9 -24
  314. package/dist/src/types/property.d.ts.map +1 -1
  315. package/dist/src/types/publish.d.ts +1 -1
  316. package/dist/src/types/publish.d.ts.map +1 -1
  317. package/dist/{syncDbWithEas-BMHoou6X.js → syncDbWithEas-CA7PvBgu.js} +112 -162
  318. package/dist/syncDbWithEas-CA7PvBgu.js.map +1 -0
  319. package/dist/tabEvents-CaVmngqr.js +3804 -0
  320. package/dist/tabEvents-CaVmngqr.js.map +1 -0
  321. package/dist/{tolerantWebAccess-BHndShch.js → tolerantWebAccess-BJqViq08.js} +10 -15
  322. package/dist/{tolerantWebAccess-BHndShch.js.map → tolerantWebAccess-BJqViq08.js.map} +1 -1
  323. package/dist/{resolveModelForSyncedSeed-fIURvYRV.js → updateSeedRevokedAt-BL9Bg-G7.js} +30 -4
  324. package/dist/updateSeedRevokedAt-BL9Bg-G7.js.map +1 -0
  325. package/package.json +6 -6
  326. package/dist/ClientManager-DqL0q_eu.js +0 -5292
  327. package/dist/ClientManager-DqL0q_eu.js.map +0 -1
  328. package/dist/Item-CG5IhPtL.js.map +0 -1
  329. package/dist/ModelProperty-DDD47KVm.js.map +0 -1
  330. package/dist/Schema-BS8oR7QV.js +0 -4370
  331. package/dist/Schema-BS8oR7QV.js.map +0 -1
  332. package/dist/backfillMetadataPropertyIds-C7P7FL6F.js +0 -72
  333. package/dist/backfillMetadataPropertyIds-C7P7FL6F.js.map +0 -1
  334. package/dist/changeFeed-M8sGbOrW.js +0 -726
  335. package/dist/changeFeed-M8sGbOrW.js.map +0 -1
  336. package/dist/configurePlatform-Dukm2QwO.js.map +0 -1
  337. package/dist/dist/ClientManager-DqL0q_eu.d.ts +0 -952
  338. package/dist/dist/ClientManager-DqL0q_eu.d.ts.map +0 -1
  339. package/dist/dist/Item-CG5IhPtL.d.ts +0 -1115
  340. package/dist/dist/Item-CG5IhPtL.d.ts.map +0 -1
  341. package/dist/dist/ModelProperty-DDD47KVm.d.ts +0 -315
  342. package/dist/dist/ModelProperty-DDD47KVm.d.ts.map +0 -1
  343. package/dist/dist/Schema-BS8oR7QV.d.ts +0 -432
  344. package/dist/dist/Schema-BS8oR7QV.d.ts.map +0 -1
  345. package/dist/dist/SchemaValidationService-CZzKNL04.d.ts +0 -118
  346. package/dist/dist/SchemaValidationService-CZzKNL04.d.ts.map +0 -1
  347. package/dist/dist/backfillMetadataPropertyIds-C7P7FL6F.d.ts +0 -7
  348. package/dist/dist/backfillMetadataPropertyIds-C7P7FL6F.d.ts.map +0 -1
  349. package/dist/dist/changeFeed-M8sGbOrW.d.ts +0 -160
  350. package/dist/dist/changeFeed-M8sGbOrW.d.ts.map +0 -1
  351. package/dist/dist/configurePlatform-Dukm2QwO.d.ts.map +0 -1
  352. package/dist/dist/detachRowsBeforeDelete-Di1enVUF.d.ts +0 -13
  353. package/dist/dist/detachRowsBeforeDelete-Di1enVUF.d.ts.map +0 -1
  354. package/dist/dist/eas-B5VJolSj.d.ts +0 -12
  355. package/dist/dist/eas-B5VJolSj.d.ts.map +0 -1
  356. package/dist/dist/errors-C1qUEZ7A.d.ts +0 -25
  357. package/dist/dist/errors-C1qUEZ7A.d.ts.map +0 -1
  358. package/dist/dist/errors-CS3nDpUU.d.ts +0 -515
  359. package/dist/dist/errors-CS3nDpUU.d.ts.map +0 -1
  360. package/dist/dist/eventBus-7vxTCc3a.d.ts +0 -18
  361. package/dist/dist/eventBus-7vxTCc3a.d.ts.map +0 -1
  362. package/dist/dist/findSeedRowsByUid-CuQmK7An.d.ts +0 -13
  363. package/dist/dist/findSeedRowsByUid-CuQmK7An.d.ts.map +0 -1
  364. package/dist/dist/getItem-Uha3_H0t.d.ts +0 -6
  365. package/dist/dist/getItem-Uha3_H0t.d.ts.map +0 -1
  366. package/dist/dist/getPublishPayload-pbin4lk8.d.ts +0 -65
  367. package/dist/dist/getPublishPayload-pbin4lk8.d.ts.map +0 -1
  368. package/dist/dist/getPublishPendingDiff-ByIaPvCn.d.ts +0 -18
  369. package/dist/dist/getPublishPendingDiff-ByIaPvCn.d.ts.map +0 -1
  370. package/dist/dist/getPublishUploads-BBqiowVc.d.ts +0 -89
  371. package/dist/dist/getPublishUploads-BBqiowVc.d.ts.map +0 -1
  372. package/dist/dist/index-DQoyhp2c.d.ts +0 -6
  373. package/dist/dist/index-DQoyhp2c.d.ts.map +0 -1
  374. package/dist/dist/index-njjjo74v.d.ts +0 -14
  375. package/dist/dist/index-njjjo74v.d.ts.map +0 -1
  376. package/dist/dist/index-rOTW-2QZ.d.ts.map +0 -1
  377. package/dist/dist/index.browser-QPWBkLJA.d.ts +0 -9959
  378. package/dist/dist/index.browser-QPWBkLJA.d.ts.map +0 -1
  379. package/dist/dist/mimeTypes-C9r76DCH.d.ts +0 -30
  380. package/dist/dist/mimeTypes-C9r76DCH.d.ts.map +0 -1
  381. package/dist/dist/model-oHA3YhOd.d.ts +0 -6
  382. package/dist/dist/model-oHA3YhOd.d.ts.map +0 -1
  383. package/dist/dist/modelPropertyRecordSchemas-onFOG2x6.d.ts +0 -7
  384. package/dist/dist/modelPropertyRecordSchemas-onFOG2x6.d.ts.map +0 -1
  385. package/dist/dist/platform.browser.d.ts +0 -3
  386. package/dist/dist/platform.browser.d.ts.map +0 -1
  387. package/dist/dist/property-C85DCD7K.d.ts +0 -37
  388. package/dist/dist/property-C85DCD7K.d.ts.map +0 -1
  389. package/dist/dist/propertyValidationRules-CjUPOFeu.d.ts +0 -13
  390. package/dist/dist/propertyValidationRules-CjUPOFeu.d.ts.map +0 -1
  391. package/dist/dist/publishDraftGraph-DBWAN72w.d.ts +0 -93
  392. package/dist/dist/publishDraftGraph-DBWAN72w.d.ts.map +0 -1
  393. package/dist/dist/resolveModelForSyncedSeed-fIURvYRV.d.ts +0 -21
  394. package/dist/dist/resolveModelForSyncedSeed-fIURvYRV.d.ts.map +0 -1
  395. package/dist/dist/syncDbWithEas-BMHoou6X.d.ts +0 -13
  396. package/dist/dist/syncDbWithEas-BMHoou6X.d.ts.map +0 -1
  397. package/dist/dist/tolerantWebAccess-BHndShch.d.ts +0 -113
  398. package/dist/dist/tolerantWebAccess-BHndShch.d.ts.map +0 -1
  399. package/dist/dist/updateSeedRevokedAt-DpfG6ztE.d.ts +0 -11
  400. package/dist/dist/updateSeedRevokedAt-DpfG6ztE.d.ts.map +0 -1
  401. package/dist/eas-B5VJolSj.js +0 -67
  402. package/dist/eas-B5VJolSj.js.map +0 -1
  403. package/dist/errors-CS3nDpUU.js +0 -4006
  404. package/dist/errors-CS3nDpUU.js.map +0 -1
  405. package/dist/eventBus-7vxTCc3a.js +0 -64
  406. package/dist/eventBus-7vxTCc3a.js.map +0 -1
  407. package/dist/findSeedRowsByUid-CuQmK7An.js +0 -47
  408. package/dist/findSeedRowsByUid-CuQmK7An.js.map +0 -1
  409. package/dist/getItem-Uha3_H0t.js +0 -45
  410. package/dist/getItem-Uha3_H0t.js.map +0 -1
  411. package/dist/getPublishPayload-pbin4lk8.js +0 -1736
  412. package/dist/getPublishPayload-pbin4lk8.js.map +0 -1
  413. package/dist/getPublishPendingDiff-ByIaPvCn.js +0 -118
  414. package/dist/getPublishPendingDiff-ByIaPvCn.js.map +0 -1
  415. package/dist/getPublishUploads-BBqiowVc.js +0 -1080
  416. package/dist/getPublishUploads-BBqiowVc.js.map +0 -1
  417. package/dist/index-DQoyhp2c.js.map +0 -1
  418. package/dist/index-DxHpPNfn.js.map +0 -1
  419. package/dist/index-njjjo74v.js +0 -29
  420. package/dist/index-njjjo74v.js.map +0 -1
  421. package/dist/index-rOTW-2QZ.js +0 -4760
  422. package/dist/index-rOTW-2QZ.js.map +0 -1
  423. package/dist/index.browser-QPWBkLJA.js.map +0 -1
  424. package/dist/index.node-WsEJCOwC.js.map +0 -1
  425. package/dist/mimeTypes-C9r76DCH.js +0 -209
  426. package/dist/mimeTypes-C9r76DCH.js.map +0 -1
  427. package/dist/model-oHA3YhOd.js +0 -29
  428. package/dist/model-oHA3YhOd.js.map +0 -1
  429. package/dist/modelPropertyRecordSchemas-onFOG2x6.js +0 -94
  430. package/dist/modelPropertyRecordSchemas-onFOG2x6.js.map +0 -1
  431. package/dist/property-C85DCD7K.js +0 -289
  432. package/dist/property-C85DCD7K.js.map +0 -1
  433. package/dist/propertyValidationRules-CjUPOFeu.js +0 -73
  434. package/dist/propertyValidationRules-CjUPOFeu.js.map +0 -1
  435. package/dist/publishDraftGraph-DBWAN72w.js +0 -505
  436. package/dist/publishDraftGraph-DBWAN72w.js.map +0 -1
  437. package/dist/resolveModelForSyncedSeed-fIURvYRV.js.map +0 -1
  438. package/dist/src/Item/service/actors/loadOrCreateItem.d.ts +0 -5
  439. package/dist/src/Item/service/actors/loadOrCreateItem.d.ts.map +0 -1
  440. package/dist/src/Item/service/actors/waitForDb.d.ts +0 -4
  441. package/dist/src/Item/service/actors/waitForDb.d.ts.map +0 -1
  442. package/dist/src/ItemProperty/service/actors/loadOrCreateProperty.d.ts +0 -5
  443. package/dist/src/ItemProperty/service/actors/loadOrCreateProperty.d.ts.map +0 -1
  444. package/dist/src/ItemProperty/service/actors/saveValueToDb/analyzeInput.d.ts +0 -5
  445. package/dist/src/ItemProperty/service/actors/saveValueToDb/analyzeInput.d.ts.map +0 -1
  446. package/dist/src/ItemProperty/service/actors/saveValueToDb/index.d.ts +0 -6
  447. package/dist/src/ItemProperty/service/actors/saveValueToDb/index.d.ts.map +0 -1
  448. package/dist/src/ItemProperty/service/actors/saveValueToDb/rowContext.d.ts.map +0 -1
  449. package/dist/src/ItemProperty/service/actors/saveValueToDb/saveFile.d.ts +0 -24
  450. package/dist/src/ItemProperty/service/actors/saveValueToDb/saveFile.d.ts.map +0 -1
  451. package/dist/src/ItemProperty/service/actors/saveValueToDb/saveHtml.d.ts +0 -5
  452. package/dist/src/ItemProperty/service/actors/saveValueToDb/saveHtml.d.ts.map +0 -1
  453. package/dist/src/ItemProperty/service/actors/saveValueToDb/saveImage.d.ts +0 -5
  454. package/dist/src/ItemProperty/service/actors/saveValueToDb/saveImage.d.ts.map +0 -1
  455. package/dist/src/ItemProperty/service/actors/saveValueToDb/saveItemStorage.d.ts +0 -10
  456. package/dist/src/ItemProperty/service/actors/saveValueToDb/saveItemStorage.d.ts.map +0 -1
  457. package/dist/src/ItemProperty/service/actors/saveValueToDb/storageValue.d.ts +0 -22
  458. package/dist/src/ItemProperty/service/actors/saveValueToDb/storageValue.d.ts.map +0 -1
  459. package/dist/src/ItemProperty/service/actors/waitForDb.d.ts +0 -4
  460. package/dist/src/ItemProperty/service/actors/waitForDb.d.ts.map +0 -1
  461. package/dist/src/Model/service/actors/createModelProperties.d.ts +0 -9
  462. package/dist/src/Model/service/actors/createModelProperties.d.ts.map +0 -1
  463. package/dist/src/Model/service/actors/loadOrCreateModel.d.ts +0 -5
  464. package/dist/src/Model/service/actors/loadOrCreateModel.d.ts.map +0 -1
  465. package/dist/src/Schema/service/actors/checkExistingSchema.d.ts +0 -5
  466. package/dist/src/Schema/service/actors/checkExistingSchema.d.ts.map +0 -1
  467. package/dist/src/Schema/service/actors/createModelInstances.d.ts +0 -11
  468. package/dist/src/Schema/service/actors/createModelInstances.d.ts.map +0 -1
  469. package/dist/src/Schema/service/actors/createPropertyInstances.d.ts +0 -12
  470. package/dist/src/Schema/service/actors/createPropertyInstances.d.ts.map +0 -1
  471. package/dist/src/Schema/service/actors/validateSchema.d.ts +0 -5
  472. package/dist/src/Schema/service/actors/validateSchema.d.ts.map +0 -1
  473. package/dist/src/Schema/service/actors/verifyModelInstancesInCache.d.ts +0 -6
  474. package/dist/src/Schema/service/actors/verifyModelInstancesInCache.d.ts.map +0 -1
  475. package/dist/src/Schema/service/actors/verifyModelsInDb.d.ts +0 -7
  476. package/dist/src/Schema/service/actors/verifyModelsInDb.d.ts.map +0 -1
  477. package/dist/src/Schema/service/actors/verifyPropertiesInDb.d.ts +0 -8
  478. package/dist/src/Schema/service/actors/verifyPropertiesInDb.d.ts.map +0 -1
  479. package/dist/src/Schema/service/actors/verifyPropertyInstancesInCache.d.ts +0 -6
  480. package/dist/src/Schema/service/actors/verifyPropertyInstancesInCache.d.ts.map +0 -1
  481. package/dist/src/Schema/service/actors/verifySchemaInDb.d.ts +0 -7
  482. package/dist/src/Schema/service/actors/verifySchemaInDb.d.ts.map +0 -1
  483. package/dist/src/Schema/service/actors/writeModelsToDb.d.ts +0 -9
  484. package/dist/src/Schema/service/actors/writeModelsToDb.d.ts.map +0 -1
  485. package/dist/src/Schema/service/actors/writePropertiesToDb.d.ts +0 -10
  486. package/dist/src/Schema/service/actors/writePropertiesToDb.d.ts.map +0 -1
  487. package/dist/src/Schema/service/actors/writeSchemaToDb.d.ts +0 -11
  488. package/dist/src/Schema/service/actors/writeSchemaToDb.d.ts.map +0 -1
  489. package/dist/src/browser/helpers/ArweaveClient.d.ts +0 -14
  490. package/dist/src/browser/helpers/ArweaveClient.d.ts.map +0 -1
  491. package/dist/src/browser/helpers/EasClient.d.ts +0 -10
  492. package/dist/src/browser/helpers/EasClient.d.ts.map +0 -1
  493. package/dist/src/browser/helpers/QueryClient.d.ts +0 -9
  494. package/dist/src/browser/helpers/QueryClient.d.ts.map +0 -1
  495. package/dist/src/client/actors/addModelsToStore.d.ts +0 -4
  496. package/dist/src/client/actors/addModelsToStore.d.ts.map +0 -1
  497. package/dist/src/db/backfillMetadataPropertyIds.d.ts +0 -7
  498. package/dist/src/db/backfillMetadataPropertyIds.d.ts.map +0 -1
  499. package/dist/src/db/read/getItem.d.ts +0 -3
  500. package/dist/src/db/read/getItem.d.ts.map +0 -1
  501. package/dist/src/db/read/getPropertyData.d.ts +0 -4
  502. package/dist/src/db/read/getPropertyData.d.ts.map +0 -1
  503. package/dist/src/db/read/getRelatedItemsForPublish.d.ts +0 -10
  504. package/dist/src/db/read/getRelatedItemsForPublish.d.ts.map +0 -1
  505. package/dist/src/db/read/getSeedData.d.ts +0 -12
  506. package/dist/src/db/read/getSeedData.d.ts.map +0 -1
  507. package/dist/src/db/read/itemLoads.d.ts +0 -20
  508. package/dist/src/db/read/itemLoads.d.ts.map +0 -1
  509. package/dist/src/db/read/publishDraftGraph.d.ts +0 -64
  510. package/dist/src/db/read/publishDraftGraph.d.ts.map +0 -1
  511. package/dist/src/db/write/linkModelToSchema.d.ts +0 -12
  512. package/dist/src/db/write/linkModelToSchema.d.ts.map +0 -1
  513. package/dist/src/helpers/ArweaveClient/BaseArweaveClient.d.ts +0 -2
  514. package/dist/src/helpers/ArweaveClient/BaseArweaveClient.d.ts.map +0 -1
  515. package/dist/src/helpers/ArweaveClient/arweaveL1UploadApi.d.ts +0 -2
  516. package/dist/src/helpers/ArweaveClient/arweaveL1UploadApi.d.ts.map +0 -1
  517. package/dist/src/helpers/ArweaveClient/selectReadGateway.d.ts +0 -2
  518. package/dist/src/helpers/ArweaveClient/selectReadGateway.d.ts.map +0 -1
  519. package/dist/src/helpers/ArweaveClient/uploadApiVerification.d.ts +0 -2
  520. package/dist/src/helpers/ArweaveClient/uploadApiVerification.d.ts.map +0 -1
  521. package/dist/src/helpers/EasClient/BaseEasClient.d.ts +0 -2
  522. package/dist/src/helpers/EasClient/BaseEasClient.d.ts.map +0 -1
  523. package/dist/src/helpers/QueryClient/BaseQueryClient.d.ts +0 -2
  524. package/dist/src/helpers/QueryClient/BaseQueryClient.d.ts.map +0 -1
  525. package/dist/src/helpers/easUid.d.ts +0 -2
  526. package/dist/src/helpers/easUid.d.ts.map +0 -1
  527. package/dist/src/helpers/entity/entityDestroy.d.ts +0 -49
  528. package/dist/src/helpers/entity/entityDestroy.d.ts.map +0 -1
  529. package/dist/src/helpers/entity/entityFind.d.ts +0 -52
  530. package/dist/src/helpers/entity/entityFind.d.ts.map +0 -1
  531. package/dist/src/helpers/entity/entityState.d.ts +0 -28
  532. package/dist/src/helpers/entity/entityState.d.ts.map +0 -1
  533. package/dist/src/helpers/entity/entityUnload.d.ts +0 -56
  534. package/dist/src/helpers/entity/entityUnload.d.ts.map +0 -1
  535. package/dist/src/helpers/entity/evictionEpoch.d.ts +0 -43
  536. package/dist/src/helpers/entity/evictionEpoch.d.ts.map +0 -1
  537. package/dist/src/helpers/entity/index.d.ts +0 -12
  538. package/dist/src/helpers/entity/index.d.ts.map +0 -1
  539. package/dist/src/helpers/gateway/gatewayState.d.ts +0 -2
  540. package/dist/src/helpers/gateway/gatewayState.d.ts.map +0 -1
  541. package/dist/src/helpers/gateway/resolveSeedGatewayEndpoints.d.ts +0 -2
  542. package/dist/src/helpers/gateway/resolveSeedGatewayEndpoints.d.ts.map +0 -1
  543. package/dist/src/helpers/gateway/seedGatewayConfig.d.ts +0 -2
  544. package/dist/src/helpers/gateway/seedGatewayConfig.d.ts.map +0 -1
  545. package/dist/src/helpers/getSchemaForItemProperty.d.ts +0 -15
  546. package/dist/src/helpers/getSchemaForItemProperty.d.ts.map +0 -1
  547. package/dist/src/helpers/getSegmentedItemProperties.d.ts +0 -10
  548. package/dist/src/helpers/getSegmentedItemProperties.d.ts.map +0 -1
  549. package/dist/src/helpers/isSqliteUniqueConstraintError.d.ts +0 -7
  550. package/dist/src/helpers/isSqliteUniqueConstraintError.d.ts.map +0 -1
  551. package/dist/src/helpers/propertyValidationRules.d.ts +0 -20
  552. package/dist/src/helpers/propertyValidationRules.d.ts.map +0 -1
  553. package/dist/src/helpers/propertyWriteTickets.d.ts +0 -11
  554. package/dist/src/helpers/propertyWriteTickets.d.ts.map +0 -1
  555. package/dist/src/helpers/reconcilePropertyDraftRows.d.ts +0 -10
  556. package/dist/src/helpers/reconcilePropertyDraftRows.d.ts.map +0 -1
  557. package/dist/src/helpers/waitForEntityIdle.d.ts +0 -21
  558. package/dist/src/helpers/waitForEntityIdle.d.ts.map +0 -1
  559. package/dist/src/interfaces/IQueryClient.d.ts +0 -15
  560. package/dist/src/interfaces/IQueryClient.d.ts.map +0 -1
  561. package/dist/src/node/helpers/ArweaveClient.d.ts +0 -5
  562. package/dist/src/node/helpers/ArweaveClient.d.ts.map +0 -1
  563. package/dist/src/node/helpers/EasClient.d.ts +0 -5
  564. package/dist/src/node/helpers/EasClient.d.ts.map +0 -1
  565. package/dist/src/node/helpers/QueryClient.d.ts +0 -5
  566. package/dist/src/node/helpers/QueryClient.d.ts.map +0 -1
  567. package/dist/src/services/write/actors/validateEntity.d.ts +0 -6
  568. package/dist/src/services/write/actors/validateEntity.d.ts.map +0 -1
  569. package/dist/src/services/write/actors/writeToDatabase.d.ts +0 -14
  570. package/dist/src/services/write/actors/writeToDatabase.d.ts.map +0 -1
  571. package/dist/src/services/write/writeProcessMachine.d.ts +0 -56
  572. package/dist/src/services/write/writeProcessMachine.d.ts.map +0 -1
  573. package/dist/src/stores/eas.d.ts +0 -2
  574. package/dist/src/stores/eas.d.ts.map +0 -1
  575. package/dist/src/types/arweave.d.ts +0 -57
  576. package/dist/src/types/arweave.d.ts.map +0 -1
  577. package/dist/src/types/gateway.d.ts +0 -2
  578. package/dist/src/types/gateway.d.ts.map +0 -1
  579. package/dist/syncDbWithEas-BMHoou6X.js.map +0 -1
  580. package/dist/updateSeedRevokedAt-DpfG6ztE.js +0 -31
  581. package/dist/updateSeedRevokedAt-DpfG6ztE.js.map +0 -1
package/dist/main.js CHANGED
@@ -1,1087 +1,35 @@
1
- export { C as ConflictError, d as ItemCreateError, I as ItemCreateValidationError, M as Model, U as UnknownModelError } from './errors-CS3nDpUU.js';
2
- import { L as BaseDb, v as versions, a0 as normalizePublisher, s as seeds, a5 as generateId, m as metadata, p as models, E as properties, n as normalizeDataType, a7 as listRelationEasPropertyName, q as normalizeRelationPropertyValue, r as resolveSeedIdsFromRefString, i as isDataType, M as ModelPropertyDataTypes, af as INTERNAL_PROPERTY_NAMES, x as htmlEmbeddedImageCoPublish, ad as ZERO_BYTES32, Q as BaseFileManager, W as getStorageDirForDataType } from './index-rOTW-2QZ.js';
3
- export { A as AmbiguousModelError, ao as CONTENT_SHA256_TAG, ap as CONTENT_TYPE_TAG, a4 as EAS_SEED_DATA_SYNCED_TO_DB_EVENT, $ as INTERNAL_DATA_TYPES, aq as ImageSize, ar as SEED_PROTOCOL_SCHEMA_NAME, as as SeedModels, at as VERSION_SCHEMA_UID_OPTIMISM_SEPOLIA, h as appState, t as arweaveL1FinalizeJobs, Y as buildArweaveContentTags, au as classifyMediaRef, av as closestImageSize, aw as contentSha256TagMatches, a8 as easPropertyNameForPublish, u as easSyncProcesses, ax as ensureImageLocal, ay as getAddressesForItemsFilter, az as getArweaveUrlForTransaction, X as getContentSha256, k as getCorrectId, aA as getFeedItemStringField, l as isPublishedSeedRef, z as modelSchemas, o as modelUids, aB as normalizeAddressConfig, aC as normalizeAddressList, aD as normalizeArweaveTxIdForEnsure, aE as normalizeFeedItemFields, a6 as normalizeHexAddress, H as propertyUids, I as publishProcesses, aF as resolveMediaRef, J as schemas, K as uploadProcesses } from './index-rOTW-2QZ.js';
4
- export { getPropertySchema } from './property-C85DCD7K.js';
5
- export { e as eventEmitter } from './eventBus-7vxTCc3a.js';
6
- export { A as ADDRESSES_PERSISTED_EVENT, F as FILES_CHANGED_EVENT, L as LOCAL_COPIES_REMOVED_EVENT, T as TabLockTimeoutError, i as isChangeFeedRunning, a as isLeaderTab, p as parseAddressesPersistedPayload, w as watchEntityChanges, b as watchEntityRows, c as whenLeaderTab } from './changeFeed-M8sGbOrW.js';
7
- export { E as EAS_CHAIN_ID_APP_STATE_KEY, I as INIT_CONFIG_CONFLICT_MESSAGE, o as assertLocalDbChain, p as claimUnpublishedDrafts, C as client, q as createLocalQueryDataSource, u as easSyncActor, v as getClient, x as getPublishedSeedRecord, y as getSchemaNameFromId, i as importJsonSchema, z as isSeedQueryLocalSourceRegistered, A as listSchemas, B as loadAllSchemasFromDb, D as mergeEasSyncRequestIntents, r as readJsonImportFile, F as registerSeedQueryLocalSource, G as requestEasSyncFromAddressChange, H as requestEasSyncFromModelsInit, J as sendEasSyncClientRequest, K as setRetriesWhenOnlineEnabled, L as startEasSyncActor, j as syncSchemaFromSource, k as transformImportToSchemaFile, M as unregisterSeedQueryLocalSource } from './ClientManager-DqL0q_eu.js';
8
- import { W as latestVersionOrder, N as isVersionRevoked, y as compareMetadataRowsLatestFirst, L as parseListPropertyValueFromStorage, A as getLatestPublishedVersionRow, B as writeInBatches } from './Item-CG5IhPtL.js';
9
- export { C as ClearNotSupportedError, X as ClientManagerState, I as Item, q as ItemProperty, t as ItemPropertySaveValidationError, M as METADATA_LATEST_FIRST_ORDER_SQL, Y as MachineIds, u as OwnershipError, Z as PUBLISH_NOT_CONFIGURED_MESSAGE, v as assertItemOwned, _ as createNewItem, J as getGetAdditionalSyncAddresses, $ as getGetPublisherForNewSeeds, a0 as getMetadataLatest, a1 as getPublishExecutor, a2 as getRevokeExecutor, a3 as getUploadExecutor, a4 as getVersionData, x as isItemOwned, a5 as isLocalUnsealedDraft, a6 as isSeedRowOwned, a7 as localUnsealedDraftSql, a8 as ownedPublisherSql, a9 as ownedSeedsSql, aa as pickLatestMetadataRowPerProperty, ab as placeholderUidSql, ac as propertyMachine, ad as publisherInAddressListSql, ae as publisherIsInOwnedSet, af as setAdditionalSyncAddresses, ag as setGetPublisherForNewSeeds, ah as setPublishExecutor, ai as setRevokeExecutor, aj as setUploadExecutor, F as waitForEntityIdle } from './Item-CG5IhPtL.js';
10
- import { eq, and, inArray, or, isNotNull, ne, isNull } from 'drizzle-orm';
11
- import { isPlaceholderUid, isValidEasAttestationUid, normalizeBytes32Hex, easName, BaseQueryClient, BaseEasClient, GET_SCHEMAS } from '@seedprotocol/eas';
12
- export { EAS_CHAIN_DEPLOYMENTS, BaseEasClient as EasClient, VERSION_SCHEMA_DEF, VERSION_SCHEMA_UID, easName, getCanonicalItemPropertiesFromEas, getEasChainDeployment, getEasEndpoint, getEasReadChainId, getEasSchemaUidBySchemaName, getItemPropertiesFromEas, getItemVersionsFromEas, getSeedsBySchemaName, getSeedsFromSchemaUids, isPlaceholderUid, isValidEasAttestationUid, matchEasName, normalizeBytes32Hex, pickLatestPropertyAttestationsByRefAndSchema, setSchemaUidForModel, setSchemaUidForSchemaDefinition, withExcludeRevokedFilter } from '@seedprotocol/eas';
13
- export { S as Schema, r as renameModelProperty, s as schemaMachine, u as updateModelProperties } from './Schema-BS8oR7QV.js';
1
+ export { C as ConflictError, G as EAS_CHAIN_ID_APP_STATE_KEY, H as INIT_CONFIG_CONFLICT_MESSAGE, J as ItemCreateError, I as ItemCreateValidationError, M as Model, U as UnknownModelError, B as assertLocalDbChain, K as claimUnpublishedDrafts, g as client, L as createLocalQueryDataSource, N as easSyncActor, O as getClient, P as getPublishedSeedRecord, Q as getSchemaNameFromId, i as importJsonSchema, V as isSeedQueryLocalSourceRegistered, W as listSchemas, q as loadAllSchemasFromDb, X as mergeEasSyncRequestIntents, r as readJsonImportFile, Y as registerSeedQueryLocalSource, Z as requestEasSyncFromAddressChange, _ as requestEasSyncFromModelsInit, $ as sendEasSyncClientRequest, a0 as setRetriesWhenOnlineEnabled, a1 as startEasSyncActor, h as syncSchemaFromSource, j as transformImportToSchemaFile, a2 as unregisterSeedQueryLocalSource } from './errors-DLSoqSHG.js';
2
+ export { a8 as ADDRESSES_PERSISTED_EVENT, A as AmbiguousModelError, a9 as CONTENT_SHA256_TAG, aa as CONTENT_TYPE_TAG, ab as ClientManagerState, Q as EAS_SEED_DATA_SYNCED_TO_DB_EVENT, ac as FILES_CHANGED_EVENT, v as INTERNAL_DATA_TYPES, ad as ImageSize, ae as LOCAL_COPIES_REMOVED_EVENT, af as MachineIds, M as ModelPropertyDataTypes, S as SEED_PROTOCOL_SCHEMA_NAME, ag as SeedModels, ah as TabLockTimeoutError, ai as VERSION_SCHEMA_UID_OPTIMISM_SEPOLIA, X as buildArweaveContentTags, aj as closestImageSize, ak as contentSha256TagMatches, al as ensureImageLocal, h as eventEmitter, m as generateId, am as getAddressesForItemsFilter, W as getContentSha256, an as isChangeFeedRunning, s as isClientReady, ao as isClientReadySnapshot, i as isDataType, ap as isLeaderTab, aq as normalizeAddressConfig, ar as normalizeAddressList, as as normalizeArweaveTxIdForEnsure, n as normalizeDataType, J as normalizeHexAddress, x as normalizePublisher, at as parseAddressesPersistedPayload, au as watchEntityChanges, av as watchEntityRows, aw as whenDbReady, ax as whenLeaderTab } from './tabEvents-CaVmngqr.js';
3
+ export { getPropertySchema } from './property-BxUYznH0.js';
4
+ export { B as BaseDb, w as BaseFileManager, w as FileManager, a as appState, e as arweaveL1FinalizeJobs, f as easSyncProcesses, h as htmlEmbeddedImageCoPublish, m as metadata, j as modelSchemas, b as modelUids, d as models, l as properties, q as propertyUids, r as publishProcesses, t as schemas, s as seeds, u as uploadProcesses, v as versions } from './BaseFileManager-BAlySv8w.js';
5
+ export { C as ClearNotSupportedError, I as Item, v as ItemProperty, x as ItemPropertySaveValidationError, ag as METADATA_LATEST_FIRST_ORDER_SQL, y as OwnershipError, as as PUBLISH_NOT_CONFIGURED_MESSAGE, z as assertItemOwned, H as compareMetadataRowsLatestFirst, at as createNewItem, a9 as easPropertyNameForPublish, au as getArweaveUrlForTransaction, A as getCorrectId, a6 as getGetAdditionalSyncAddresses, av as getGetPublisherForNewSeeds, aw as getMetadataLatest, ax as getPublishExecutor, ay as getRevokeExecutor, az as getUploadExecutor, aA as getVersionData, B as isItemOwned, aB as isLocalUnsealedDraft, D as isPublishedSeedRef, aC as isSeedRowOwned, a8 as listRelationEasPropertyName, aD as localUnsealedDraftSql, aE as ownedPublisherSql, aF as ownedSeedsSql, aG as pickLatestMetadataRowPerProperty, aH as placeholderUidSql, aI as propertyMachine, aJ as publisherInAddressListSql, aK as publisherIsInOwnedSet, aL as setAdditionalSyncAddresses, aM as setGetPublisherForNewSeeds, aN as setPublishExecutor, aO as setRevokeExecutor, aP as setUploadExecutor } from './Item-Bf4kWKpH.js';
6
+ export { a as applyPropertyAttestationUidsFromPublish, e as estimateDataUriByteLength, g as getAttesterForSeed, b as getMetadataAttestationUidsForSeedUid, c as getSeedPublishState, d as getUnpublishedRelatedItems, f as getVersionsForSeedUid, m as markPropertyAttestationsRetracted, r as renameModelProperty, h as resolveMediaRef, s as summarizePublishWork, u as updateModelProperties, i as updateVersionUid } from './index-DmTtj1nk.js';
7
+ export { S as Schema, s as schemaMachine } from './Schema-J_1f6p0c.js';
14
8
  export { D as DatabaseNotPersistentError, F as FileSystemLockedError } from './errors-C1qUEZ7A.js';
15
- export { M as MODEL_AMBIGUOUS_EVENT } from './resolveModelForSyncedSeed-fIURvYRV.js';
16
- export { ModelProperty } from './ModelProperty-DDD47KVm.js';
17
- export { getModelSchemasFromEas } from './eas-B5VJolSj.js';
18
- export { BaseArweaveClient, DEFAULT_ARWEAVE_GATEWAYS, DEFAULT_ARWEAVE_GRAPHQL_URL, DEFAULT_ARWEAVE_HOST, DEFAULT_GATEWAY_SIDECAR_HOST, DEFAULT_GATEWAY_SIDECAR_PORT, DEFAULT_SEED_FEED_HYPER_KEY, DEFAULT_SEED_GATEWAY_HYPER_KEY, SEED_RSS_IMAGE_RELATION_FIELD_KEYS, ensureReadGatewaySelected, fetchArweaveRawFromBaseUrl, fetchArweaveRawTextAcrossGateways, getArweaveReadBaseUrls, getArweaveUploadStatus, getDefaultArweaveReadGatewayHostsOrdered, getLastHealthyReadGatewayHost, getPreferredArweaveReadBaseUrls, getReadGatewayHostsForConfig, getResolvedArweaveReadBaseUrls, getResolvedSeedGatewayEndpoints, getUploadApiArweaveDataUrl, getUploadApiArweaveStatusUrl, getUploadPipelineTransactionStatus, hasArweaveContentReadTransform, invalidateReadGatewayCache, invalidateSidecarProbeCache, isArweaveL1AnchoringComplete, isEasAttestationExplorerUrl, isGatewayHostCircuitOpen, isKnownArweaveGatewayHostname, isReadGatewayKnownHealthy, mergePrimaryHostWithDefaults, normalizeGatewayHostKey, normalizeUploadApiBaseUrl, queryArweaveGatewayTransaction, queryArweaveGatewayTransactionWithFallback, readArweaveContentResponse, recordGatewayHostFailure, recordGatewayHostSuccess, resetArweaveReadGatewayForTests, resolveSeedGatewayEndpoints, resolveSeedRssImageRelationFromItem, resolveSeedRssImageRelationRef, seedGatewayConfigFromClientContext, seedGatewayConfigFromSeedConfig, setArweaveContentReadTransform, setPreferredArweaveReadBaseUrls, setResolvedSeedGatewayEndpoints, transformArweaveContent } from '@seedprotocol/arweave';
19
- export { getPublishPendingDiff } from './getPublishPendingDiff-ByIaPvCn.js';
20
- export { u as updateSeedRevokedAt } from './updateSeedRevokedAt-DpfG6ztE.js';
21
- import { g as getPropertyClear } from './getPublishPayload-pbin4lk8.js';
22
- export { P as PublishValidationFailedError, R as RELATED_ITEM_UNPUBLISHED_CODE, a as RelatedItemUnpublishedError, b as getPendingRetractions, r as resolvePublishPayloadValues, v as validateItemForPublish } from './getPublishPayload-pbin4lk8.js';
23
- import { I as ItemLoads, a as getSegmentedItemProperties, w as withItemLoads, g as getPublishDraftGraph, i as isSeedRevoked, f as findRelatedSeedRow, b as isUnpublishedSeed, h as htmlPropertyNameForHtmlSeed, r as relatedModelNameFromDef } from './publishDraftGraph-DBWAN72w.js';
24
- import 'pluralize';
25
- import { g as getRelatedDraftsCoPublishedWith, f as findEmbeddedImageFilePath } from './getPublishUploads-BBqiowVc.js';
26
- export { H as HTML_EMBEDDED_MAX_IMAGES_PER_DOC, a as HTML_EMBEDDED_MAX_IMAGE_BYTES, b as HTML_EMBEDDED_MAX_TOTAL_BYTES, c as HtmlEmbeddedDataUriLimitError, d as HtmlSeedPropertyRefError, S as SEED_PROPERTY_REF_PREFIX, e as clearHtmlEmbeddedImageCoPublishRows, h as extractDataUriImagesFromHtml, i as findSeedPropertyRefsInHtml, j as getPublishUploadData, k as itemHasPublishUploadCandidates, p as prepareHtmlEmbeddedImagesForPublish, r as replaceDataUrisInParsedHtml, l as replaceSeedPropertyRefsInHtml, m as resolveEffectiveHtmlEmbeddedDataUriPolicy, n as rewriteHtmlEmbeddedImagesOnDisk } from './getPublishUploads-BBqiowVc.js';
9
+ export { M as MODEL_AMBIGUOUS_EVENT, u as updateSeedRevokedAt } from './updateSeedRevokedAt-BL9Bg-G7.js';
10
+ export { ModelProperty } from './ModelProperty-BlaEgb_U.js';
11
+ export { EAS_CHAIN_DEPLOYMENTS, BaseEasClient as EasClient, VERSION_SCHEMA_DEF, VERSION_SCHEMA_UID, easName, getCanonicalItemPropertiesFromEas, getEasChainDeployment, getEasEndpoint, getEasReadChainId, getEasSchemaUidForExactDefinition, getItemPropertiesFromEas, getItemVersionsFromEas, getSeedsBySchemaName, getSeedsFromSchemaUids, isPlaceholderUid, isValidEasAttestationUid, matchEasName, normalizeBytes32Hex, pickLatestPropertyAttestationsByRefAndSchema, setSchemaUidForModel, setSchemaUidForSchemaDefinition, withExcludeRevokedFilter } from '@seedprotocol/eas';
12
+ export { getModelSchemasFromEas } from './eas-wB_fQ8Tc.js';
13
+ export { BaseArweaveClient, DEFAULT_ARWEAVE_GATEWAYS, DEFAULT_ARWEAVE_GRAPHQL_URL, DEFAULT_ARWEAVE_HOST, DEFAULT_GATEWAY_SIDECAR_HOST, DEFAULT_GATEWAY_SIDECAR_PORT, DEFAULT_SEED_FEED_HYPER_KEY, DEFAULT_SEED_GATEWAY_HYPER_KEY, SEED_RSS_IMAGE_RELATION_FIELD_KEYS, classifyMediaRef, ensureReadGatewaySelected, fetchArweaveRawFromBaseUrl, fetchArweaveRawTextAcrossGateways, getArweaveReadBaseUrls, getArweaveUploadStatus, getDefaultArweaveReadGatewayHostsOrdered, getFeedItemStringField, getLastHealthyReadGatewayHost, getPreferredArweaveReadBaseUrls, getReadGatewayHostsForConfig, getResolvedArweaveReadBaseUrls, getResolvedSeedGatewayEndpoints, getUploadApiArweaveDataUrl, getUploadApiArweaveStatusUrl, getUploadPipelineTransactionStatus, hasArweaveContentReadTransform, invalidateReadGatewayCache, invalidateSidecarProbeCache, isArweaveL1AnchoringComplete, isEasAttestationExplorerUrl, isGatewayHostCircuitOpen, isKnownArweaveGatewayHostname, isReadGatewayKnownHealthy, mergePrimaryHostWithDefaults, normalizeFeedItemFields, normalizeGatewayHostKey, normalizeRelationPropertyValue, normalizeUploadApiBaseUrl, queryArweaveGatewayTransaction, queryArweaveGatewayTransactionWithFallback, readArweaveContentResponse, recordGatewayHostFailure, recordGatewayHostSuccess, resetArweaveReadGatewayForTests, resolveSeedGatewayEndpoints, resolveSeedIdsFromRefString, resolveSeedRssImageRelationFromItem, resolveSeedRssImageRelationRef, seedGatewayConfigFromClientContext, seedGatewayConfigFromSeedConfig, setArweaveContentReadTransform, setPreferredArweaveReadBaseUrls, setResolvedSeedGatewayEndpoints, transformArweaveContent } from '@seedprotocol/arweave';
14
+ export { getPublishPendingDiff } from './getPublishPendingDiff-D6_-A5ns.js';
15
+ export { P as PublishValidationFailedError, R as RELATED_ITEM_UNPUBLISHED_CODE, a as RelatedItemUnpublishedError, b as getPendingRetractions, r as resolvePublishPayloadValues, v as validateItemForPublish } from './getPublishPayload-BnIwpwz1.js';
16
+ export { g as getPublishGraph } from './publishGraph-EcB40Uii.js';
17
+ export { H as HTML_EMBEDDED_MAX_IMAGES_PER_DOC, a as HTML_EMBEDDED_MAX_IMAGE_BYTES, b as HTML_EMBEDDED_MAX_TOTAL_BYTES, c as HtmlEmbeddedDataUriLimitError, d as HtmlSeedPropertyRefError, S as SEED_PROPERTY_REF_PREFIX, e as clearHtmlEmbeddedImageCoPublishRows, f as extractDataUriImagesFromHtml, h as findSeedPropertyRefsInHtml, i as getPublishUploadData, j as itemHasPublishUploadCandidates, p as prepareHtmlEmbeddedImagesForPublish, r as replaceDataUrisInParsedHtml, k as replaceSeedPropertyRefsInHtml, l as resolveEffectiveHtmlEmbeddedDataUriPolicy, m as rewriteHtmlEmbeddedImagesOnDisk } from './getPublishUploads-sS6JfPgz.js';
27
18
  import 'xstate';
28
19
  import 'debug';
29
- import './model-oHA3YhOd.js';
20
+ import 'pluralize';
21
+ import 'drizzle-orm';
30
22
  import '@sinclair/typebox';
23
+ import 'lodash-es';
24
+ import '@noble/hashes/sha3';
25
+ import '@noble/hashes/utils';
26
+ import '@seedprotocol/query';
31
27
  import 'drizzle-orm/sqlite-core';
32
28
  import 'nanoid';
33
29
  import 'nanoid-dictionary';
34
30
  import '@noble/hashes/sha256';
35
- import '@noble/hashes/sha3';
36
- import '@noble/hashes/utils';
37
- import 'lodash-es';
38
- import '@seedprotocol/query';
39
31
  import 'rxjs';
40
- import './SchemaValidationService-CZzKNL04.js';
32
+ import './SchemaValidationService-CnmKyzR-.js';
41
33
  import '@sinclair/typebox/value';
42
- import './findSeedRowsByUid-CuQmK7An.js';
43
34
  import 'parse5';
44
- import './mimeTypes-C9r76DCH.js';
45
-
46
- /**
47
- * Updates the version record with the attestation UID after a Version attestation is created.
48
- * Targets the first version without a uid yet in head-version order (the one being published).
49
- * A uid one of the seed's version rows already has is ignored.
50
- * Publisher is immutable once set: we never overwrite an existing publisher.
51
- */
52
- const updateVersionUid = async ({ seedLocalId, versionUid, publisher, attestationCreatedAt, }) => {
53
- if (!seedLocalId || !versionUid) {
54
- return;
55
- }
56
- const appDb = BaseDb.getAppDb();
57
- if (!appDb)
58
- return;
59
- const rows = await appDb
60
- .select({ localId: versions.localId, uid: versions.uid, publisher: versions.publisher })
61
- .from(versions)
62
- .where(eq(versions.seedLocalId, seedLocalId))
63
- .orderBy(latestVersionOrder());
64
- // Already recorded: nothing to stamp. A patch publish attaches to an existing version, and the
65
- // modular executor's SeedPublished event still reports that version's uid; stamping it onto a
66
- // local draft version would give two rows the same version uid.
67
- const wanted = versionUid.toLowerCase();
68
- if (rows.some((r) => r.uid?.toLowerCase() === wanted))
69
- return;
70
- const toUpdate = rows.find((r) => r.localId && isPlaceholderUid(r.uid));
71
- const normalizedPublisher = normalizePublisher(publisher);
72
- if (!toUpdate?.localId) {
73
- // No local draft version took this attestation (e.g. a republish after unpublish, where every
74
- // version row is a revoked attestation): record the new version so it is the latest one.
75
- const [seed] = await appDb
76
- .select({ type: seeds.type })
77
- .from(seeds)
78
- .where(eq(seeds.localId, seedLocalId))
79
- .limit(1);
80
- if (!seed)
81
- return;
82
- await appDb.insert(versions).values({
83
- localId: generateId(),
84
- seedLocalId,
85
- seedType: seed.type,
86
- uid: versionUid,
87
- ...(normalizedPublisher && { publisher: normalizedPublisher }),
88
- ...(attestationCreatedAt != null && { attestationCreatedAt }),
89
- });
90
- return;
91
- }
92
- let shouldSetPublisher = normalizedPublisher != null;
93
- if (shouldSetPublisher && toUpdate.publisher != null && toUpdate.publisher !== '') {
94
- shouldSetPublisher = false;
95
- }
96
- await appDb
97
- .update(versions)
98
- .set({
99
- uid: versionUid,
100
- ...(shouldSetPublisher && { publisher: normalizedPublisher }),
101
- ...(attestationCreatedAt != null && { attestationCreatedAt }),
102
- })
103
- .where(eq(versions.localId, toUpdate.localId));
104
- };
105
-
106
- /**
107
- * After property attestations succeed, write EAS UIDs onto the latest placeholder metadata row
108
- * so getPublishPendingDiff stays aligned with on-chain state.
109
- * When pair.propertyName is set, match that property even if the row has no schemaUid;
110
- * if the row has a schemaUid it must still match. Pair-only schema match remains for unnamed pairs.
111
- *
112
- * A full-snapshot publish (`new_version`, or a republish after unpublish) also attests properties
113
- * whose rows are already attested (on an older version, or the revoked seed's). With no placeholder
114
- * to take the uid, the attestation is recorded as a new row for the published version: a copy of
115
- * the property's latest row with the new uid, so readers show the published version without a
116
- * sync. Rows keep or get the published version's local id when `versionUid` has a version row.
117
- *
118
- * Relations and lists of relations are recorded as attested, the way an EAS sync of the
119
- * attestation stores them:
120
- * - a List of Relation row lives under its storage name (`authors` → `authorIdentityIds`) while a
121
- * publish names the attestation by schema key; either name matches.
122
- * - a value naming seeds by local id gets the seed uids the attestation encodes: the uid (Relation),
123
- * a JSON array of uids in slot order (List). Each uid comes from `resolvedSeedUids` (seeds this
124
- * publish created, not recorded on their seed rows yet), else the seed's recorded live uid.
125
- */
126
- async function applyPropertyAttestationUidsFromPublish(params) {
127
- const { seedLocalId, attestationCreatedAtMs, pairs, versionUid, resolvedSeedUids } = params;
128
- const appDb = BaseDb.getAppDb();
129
- if (!appDb || !seedLocalId || pairs.length === 0)
130
- return;
131
- const rows = await appDb.select().from(metadata).where(eq(metadata.seedLocalId, seedLocalId));
132
- if (rows.length === 0)
133
- return;
134
- const working = rows.map((r) => ({ ...r }));
135
- const validVersion = versionUid != null && versionUid !== '' && isValidEasAttestationUid(versionUid)
136
- ? versionUid
137
- : undefined;
138
- let versionLocalId;
139
- let liveSeedUid = null;
140
- if (validVersion) {
141
- const [versionRow] = await appDb
142
- .select({ localId: versions.localId, seedUid: versions.seedUid })
143
- .from(versions)
144
- .where(and(eq(versions.seedLocalId, seedLocalId), eq(versions.uid, validVersion)))
145
- .limit(1);
146
- versionLocalId = versionRow?.localId ?? undefined;
147
- const [seedRow] = await appDb
148
- .select({ uid: seeds.uid, revokedAt: seeds.revokedAt })
149
- .from(seeds)
150
- .where(eq(seeds.localId, seedLocalId))
151
- .limit(1);
152
- // A republish records its new seed uid after this; updateSeedUid fills it in then.
153
- liveSeedUid =
154
- versionRow?.seedUid ??
155
- (isValidEasAttestationUid(seedRow?.uid) && !isVersionRevoked(seedRow?.revokedAt)
156
- ? seedRow.uid
157
- : null);
158
- }
159
- const refDefs = await loadRefPropertyDefs(appDb, seedLocalId, rows);
160
- const attestedRefValue = async (row, def) => {
161
- const d = def ?? (row.propertyName ? refDefs.get(row.propertyName) : undefined);
162
- if (!d || row.propertyValue == null)
163
- return undefined;
164
- return toAttestedRefValue(appDb, row.propertyValue, d.kind, resolvedSeedUids ?? {});
165
- };
166
- for (const pair of pairs) {
167
- const att = pair.attestationUid?.trim();
168
- if (!isValidEasAttestationUid(att))
169
- continue;
170
- const wantSchema = normalizeBytes32Hex(pair.schemaUid);
171
- if (!wantSchema)
172
- continue;
173
- const pairName = pair.propertyName != null && pair.propertyName !== '' ? pair.propertyName : undefined;
174
- const pairDef = pairName ? refDefs.get(pairName) : undefined;
175
- const pairNames = new Set(pairName ? [pairName, ...(pairDef ? [pairDef.schemaKey, pairDef.storageName] : [])] : []);
176
- const attestedRow = pair.metadataLocalId
177
- ? working.find((r) => r.localId === pair.metadataLocalId)
178
- : undefined;
179
- const candidates = attestedRow
180
- ? [attestedRow]
181
- : working
182
- .filter((r) => {
183
- // Rows sync derived for ItemStorage properties aren't placeholders for an attestation.
184
- if (r.derivedFromUid != null)
185
- return false;
186
- if (pairName) {
187
- if (!r.propertyName || !pairNames.has(r.propertyName))
188
- return false;
189
- if (r.schemaUid) {
190
- return normalizeBytes32Hex(r.schemaUid) === wantSchema;
191
- }
192
- return true;
193
- }
194
- if (!r.schemaUid)
195
- return false;
196
- return normalizeBytes32Hex(r.schemaUid) === wantSchema;
197
- })
198
- .sort(compareMetadataRowsLatestFirst);
199
- const target = candidates.find((r) => isPlaceholderUid(r.uid));
200
- if (!target?.localId) {
201
- // Full snapshot: the property's rows are all attested. Record this attestation as a new row
202
- // for the published version (unless it is already recorded, e.g. a replayed receipt).
203
- const source = candidates[0];
204
- if (!source || !validVersion)
205
- continue;
206
- if (working.some((r) => r.uid?.toLowerCase() === att.toLowerCase()))
207
- continue;
208
- const now = Date.now();
209
- const attestedValue = await attestedRefValue(source, pairDef);
210
- const row = {
211
- ...source,
212
- ...(attestedValue !== undefined && { propertyValue: attestedValue }),
213
- localId: generateId(),
214
- uid: att,
215
- schemaUid: normalizeBytes32Hex(source.schemaUid) ? source.schemaUid : wantSchema,
216
- seedUid: liveSeedUid,
217
- versionUid: validVersion,
218
- versionLocalId: versionLocalId ?? source.versionLocalId,
219
- attestationCreatedAt: attestationCreatedAtMs ?? now,
220
- attestationRaw: null,
221
- revokedAt: null,
222
- derivedFromUid: null,
223
- // Stamped here: the spread copies the source row's times.
224
- createdAt: now,
225
- updatedAt: now,
226
- };
227
- await appDb.insert(metadata).values(row);
228
- working.push(row);
229
- continue;
230
- }
231
- const writeSchemaUid = !normalizeBytes32Hex(target.schemaUid);
232
- const attestedValue = await attestedRefValue(target, pairDef);
233
- await appDb
234
- .update(metadata)
235
- .set({
236
- uid: att,
237
- ...(attestedValue !== undefined && { propertyValue: attestedValue }),
238
- ...(writeSchemaUid && { schemaUid: wantSchema }),
239
- ...(attestationCreatedAtMs != null && { attestationCreatedAt: attestationCreatedAtMs }),
240
- ...(validVersion && { versionUid: validVersion }),
241
- ...(versionLocalId && { versionLocalId }),
242
- })
243
- .where(eq(metadata.localId, target.localId));
244
- const i = working.findIndex((r) => r.localId === target.localId);
245
- if (i >= 0) {
246
- working[i] = {
247
- ...working[i],
248
- uid: att,
249
- ...(attestedValue !== undefined && { propertyValue: attestedValue }),
250
- ...(writeSchemaUid && { schemaUid: wantSchema }),
251
- attestationCreatedAt: attestationCreatedAtMs ?? working[i].attestationCreatedAt,
252
- ...(validVersion && { versionUid: validVersion }),
253
- ...(versionLocalId && { versionLocalId }),
254
- };
255
- }
256
- }
257
- }
258
- /**
259
- * The seed's Relation and List-of-Relation properties, keyed by schema key and (lists) by storage
260
- * name. The model comes from the seed's model_file_id, else a metadata row's property_id; an
261
- * unknown model gives no definitions (rows then match by the pair's name alone, values unchanged).
262
- */
263
- async function loadRefPropertyDefs(appDb, seedLocalId, rows) {
264
- const out = new Map();
265
- try {
266
- let modelId;
267
- const [seedRow] = await appDb
268
- .select({ modelFileId: seeds.modelFileId })
269
- .from(seeds)
270
- .where(eq(seeds.localId, seedLocalId))
271
- .limit(1);
272
- if (seedRow?.modelFileId) {
273
- const [m] = await appDb
274
- .select({ id: models.id })
275
- .from(models)
276
- .where(eq(models.schemaFileId, seedRow.modelFileId))
277
- .limit(1);
278
- modelId = m?.id;
279
- }
280
- const propertyId = rows.find((r) => r.propertyId != null)?.propertyId;
281
- if (modelId == null && propertyId != null) {
282
- const [p] = await appDb
283
- .select({ modelId: properties.modelId })
284
- .from(properties)
285
- .where(eq(properties.id, propertyId))
286
- .limit(1);
287
- modelId = p?.modelId ?? undefined;
288
- }
289
- if (modelId == null)
290
- return out;
291
- const props = await appDb
292
- .select({
293
- name: properties.name,
294
- dataType: properties.dataType,
295
- refModelId: properties.refModelId,
296
- refValueType: properties.refValueType,
297
- })
298
- .from(properties)
299
- .where(eq(properties.modelId, modelId));
300
- const refIds = [...new Set(props.map((p) => p.refModelId).filter((id) => id != null))];
301
- const refNames = new Map();
302
- if (refIds.length) {
303
- const refs = await appDb
304
- .select({ id: models.id, name: models.name })
305
- .from(models)
306
- .where(inArray(models.id, refIds));
307
- for (const r of refs)
308
- refNames.set(r.id, r.name);
309
- }
310
- for (const p of props) {
311
- const dataType = normalizeDataType(p.dataType);
312
- if (dataType === 'Relation') {
313
- out.set(p.name, { kind: 'relation', schemaKey: p.name, storageName: p.name });
314
- continue;
315
- }
316
- if (dataType !== 'List' || normalizeDataType(p.refValueType ?? undefined) !== 'Relation')
317
- continue;
318
- const ref = p.refModelId != null ? refNames.get(p.refModelId) : undefined;
319
- const storageName = ref ? listRelationEasPropertyName(p.name, { dataType: 'List', ref }) : undefined;
320
- if (!storageName)
321
- continue;
322
- const def = { kind: 'list', schemaKey: p.name, storageName };
323
- out.set(p.name, def);
324
- out.set(storageName, def);
325
- }
326
- }
327
- catch {
328
- // Unknown model: match by the pair's name alone.
329
- }
330
- return out;
331
- }
332
- const isUid = (v) => /^0x[0-9a-fA-F]{64}$/.test(v);
333
- /**
334
- * `raw` (a Relation value, or a List value as stored) with every seed named by local id replaced by
335
- * its uid: from `resolvedSeedUids`, else the seed's recorded live uid. Undefined when nothing
336
- * changes, or when a seed has no uid (then the value is not what was attested; left as it is).
337
- */
338
- async function toAttestedRefValue(appDb, raw, kind, resolvedSeedUids) {
339
- const refs = kind === 'list' ? parseListPropertyValueFromStorage(raw) : [raw.trim()];
340
- if (refs.length === 0 || refs.some((r) => !r))
341
- return undefined;
342
- const unknown = [...new Set(refs.filter((r) => !isUid(r) && !resolvedSeedUids[r]))];
343
- const recorded = new Map();
344
- if (unknown.length) {
345
- const seedRows = await appDb
346
- .select({ localId: seeds.localId, uid: seeds.uid, revokedAt: seeds.revokedAt })
347
- .from(seeds)
348
- .where(inArray(seeds.localId, unknown));
349
- for (const s of seedRows) {
350
- if (s.localId && isValidEasAttestationUid(s.uid) && !isVersionRevoked(s.revokedAt)) {
351
- recorded.set(s.localId, s.uid);
352
- }
353
- }
354
- }
355
- const out = [];
356
- for (const ref of refs) {
357
- const uid = isUid(ref) ? ref : (resolvedSeedUids[ref] ?? recorded.get(ref));
358
- if (!uid)
359
- return undefined;
360
- out.push(uid);
361
- }
362
- const value = kind === 'list' ? JSON.stringify(out) : out[0];
363
- return value === raw ? undefined : value;
364
- }
365
-
366
- const getEasSchemaForItemProperty = async ({ schemaUid, propertyName, easDataType, }) => {
367
- try {
368
- const propertyNameSnakeCase = easName(propertyName);
369
- const isMissingSchemaUid = !schemaUid || schemaUid === 'null' || schemaUid === 'undefined';
370
- const queryClient = BaseQueryClient.getQueryClient();
371
- const easClient = BaseEasClient.getEasClient();
372
- // If clients are not available, return undefined (schema not found)
373
- if (!queryClient || !easClient) {
374
- return;
375
- }
376
- let queryParams = {
377
- where: {
378
- id: {
379
- equals: schemaUid,
380
- },
381
- },
382
- };
383
- if (easDataType) {
384
- queryParams = {
385
- where: {
386
- schema: {
387
- equals: `${easDataType} ${propertyNameSnakeCase}`,
388
- },
389
- },
390
- };
391
- }
392
- if (!easDataType && isMissingSchemaUid) {
393
- queryParams = {
394
- where: {
395
- schemaNames: {
396
- some: {
397
- name: {
398
- equals: propertyNameSnakeCase,
399
- },
400
- },
401
- },
402
- },
403
- };
404
- }
405
- const foundPropertySchema = await queryClient.fetchQuery({
406
- queryKey: [`getEasSchemaForItemProperty`, queryParams],
407
- queryFn: async () => easClient.request(GET_SCHEMAS, queryParams),
408
- networkMode: 'offlineFirst',
409
- });
410
- if (foundPropertySchema && foundPropertySchema.schemas.length > 0) {
411
- return foundPropertySchema.schemas[0];
412
- }
413
- }
414
- catch (error) {
415
- // If schema fetch fails, return undefined (schema not found)
416
- // This is expected when metadata exists without a published EASSchema
417
- if (process.env.NODE_ENV === 'development') {
418
- console.warn(`Failed to fetch schema for property ${propertyName}:`, error);
419
- }
420
- return;
421
- }
422
- };
423
-
424
- const getVersionsForSeedUid = async (seedUid) => {
425
- if (!seedUid)
426
- return [];
427
- const appDb = BaseDb.getAppDb();
428
- const rows = (await appDb
429
- .select({ uid: versions.uid, seedUid: versions.seedUid })
430
- .from(versions)
431
- .where(eq(versions.seedUid, seedUid)));
432
- return rows
433
- .filter((r) => r.uid && r.uid !== '0x' + '0'.repeat(64))
434
- .map((r) => ({ uid: r.uid }));
435
- };
436
-
437
- function resolveSeedIds(arg) {
438
- if (arg && typeof arg === 'object' && 'seedLocalId' in arg) {
439
- const item = arg;
440
- return {
441
- seedLocalId: item.seedLocalId,
442
- seedUid: item.seedUid,
443
- };
444
- }
445
- return arg;
446
- }
447
- function maxMs(a, b) {
448
- const x = a ?? null;
449
- const y = b ?? null;
450
- if (x == null)
451
- return y;
452
- if (y == null)
453
- return x;
454
- return Math.max(x, y);
455
- }
456
- /**
457
- * Whether the seed has **any** on-chain anchor in local SQLite: valid EAS UID on the seed row,
458
- * on the newest **published** version row (`getLatestPublishedVersionRow`, which skips revoked
459
- * versions), or on **any** metadata row.
460
- * Not the same as “no unpublished edits”; see `getPublishPendingDiff` for per-property head rows.
461
- */
462
- async function getSeedPublishState(arg) {
463
- const { seedLocalId, seedUid } = resolveSeedIds(arg);
464
- const appDb = BaseDb.getAppDb();
465
- const empty = {
466
- status: 'draft',
467
- seedAttestationUid: null,
468
- versionAttestationUid: null,
469
- explorerUid: null,
470
- lastAttestedAtMs: null,
471
- revokedAt: null,
472
- };
473
- if (!appDb || (!seedLocalId && !seedUid)) {
474
- return empty;
475
- }
476
- const seedWhere = seedLocalId && seedUid
477
- ? or(eq(seeds.localId, seedLocalId), eq(seeds.uid, seedUid))
478
- : seedLocalId
479
- ? eq(seeds.localId, seedLocalId)
480
- : eq(seeds.uid, seedUid);
481
- const seedRows = await appDb.select().from(seeds).where(seedWhere).limit(1);
482
- const seedRow = seedRows[0];
483
- const seedAttestationUid = seedRow?.uid && isValidEasAttestationUid(seedRow.uid) ? seedRow.uid : null;
484
- let lastAttestedAtMs = seedRow?.attestationCreatedAt ?? null;
485
- const resolvedSeedLocalId = seedRow?.localId ?? seedLocalId;
486
- let versionAttestationUid = null;
487
- if (resolvedSeedLocalId) {
488
- const v = await getLatestPublishedVersionRow(resolvedSeedLocalId);
489
- if (v?.uid) {
490
- versionAttestationUid = v.uid;
491
- lastAttestedAtMs = maxMs(lastAttestedAtMs, v.attestationCreatedAt ?? undefined);
492
- }
493
- }
494
- const metaWhere = seedLocalId && seedUid
495
- ? or(eq(metadata.seedLocalId, seedLocalId), eq(metadata.seedUid, seedUid))
496
- : seedLocalId
497
- ? eq(metadata.seedLocalId, seedLocalId)
498
- : eq(metadata.seedUid, seedUid);
499
- const metaRows = await appDb.select().from(metadata).where(metaWhere);
500
- let metadataExplorerUid = null;
501
- for (const row of metaRows) {
502
- if (!isValidEasAttestationUid(row.uid))
503
- continue;
504
- if (!metadataExplorerUid)
505
- metadataExplorerUid = row.uid;
506
- const t = row.attestationCreatedAt ?? row.createdAt;
507
- lastAttestedAtMs = maxMs(lastAttestedAtMs, t ?? undefined);
508
- }
509
- const hasOnchain = !!(seedAttestationUid || versionAttestationUid || metadataExplorerUid);
510
- const explorerUid = seedAttestationUid ?? versionAttestationUid ?? metadataExplorerUid;
511
- return {
512
- status: hasOnchain ? 'onchain' : 'draft',
513
- seedAttestationUid,
514
- versionAttestationUid,
515
- explorerUid,
516
- lastAttestedAtMs,
517
- revokedAt: seedRow?.revokedAt ? seedRow.revokedAt : null,
518
- };
519
- }
520
-
521
- /**
522
- * Returns attestation UIDs (metadata.uid) for all metadata records belonging to a seed.
523
- * Used when revoking attestations - metadata attestations must be revoked.
524
- */
525
- const getMetadataAttestationUidsForSeedUid = async (seedUid) => {
526
- if (!seedUid)
527
- return [];
528
- const appDb = BaseDb.getAppDb();
529
- const rows = await appDb
530
- .select({ uid: metadata.uid, schemaUid: metadata.schemaUid })
531
- .from(metadata)
532
- .where(and(eq(metadata.seedUid, seedUid), isNotNull(metadata.uid), ne(metadata.uid, ''), ne(metadata.uid, 'NULL'), ne(metadata.uid, '0x' + '0'.repeat(64))));
533
- return rows
534
- .filter((r) => r.uid != null && r.schemaUid != null)
535
- .map((r) => ({ uid: r.uid, schemaUid: r.schemaUid }));
536
- };
537
-
538
- function getAttesterFromRow(row) {
539
- if (row.publisher)
540
- return row.publisher;
541
- if (row.attestationRaw) {
542
- try {
543
- const parsed = JSON.parse(row.attestationRaw);
544
- return parsed.attester ?? null;
545
- }
546
- catch {
547
- return null;
548
- }
549
- }
550
- return null;
551
- }
552
- /**
553
- * Returns the attester address for a seed (from seeds.publisher or attestationRaw.attester).
554
- * Used when revoking attestations to determine which account must perform the revoke.
555
- *
556
- * @param seedLocalId - Optional seed local ID
557
- * @param seedUid - Optional seed UID (attestation ID)
558
- * @returns The attester address, or null if not found or no attester
559
- */
560
- async function getAttesterForSeed(params) {
561
- const { seedLocalId, seedUid } = params;
562
- const appDb = BaseDb.getAppDb();
563
- if (!appDb)
564
- return null;
565
- const conditions = [];
566
- if (seedLocalId)
567
- conditions.push(eq(seeds.localId, seedLocalId));
568
- if (seedUid)
569
- conditions.push(eq(seeds.uid, seedUid));
570
- if (conditions.length === 0)
571
- return null;
572
- const seedRows = await appDb
573
- .select({
574
- publisher: seeds.publisher,
575
- attestationRaw: seeds.attestationRaw,
576
- })
577
- .from(seeds)
578
- .where(conditions.length === 1 ? conditions[0] : or(...conditions))
579
- .limit(1);
580
- if (!seedRows || seedRows.length === 0)
581
- return null;
582
- return getAttesterFromRow(seedRows[0]);
583
- }
584
-
585
- /**
586
- * Records property attestations publish revoked for a retraction (ADR 0021): their rows get
587
- * `revoked_at` and lose their value, as EAS sync stores a property revoked while its seed is live.
588
- * The cleared row that asked for the retraction stays the property's newest row.
589
- */
590
- const markPropertyAttestationsRetracted = async ({ uids, revokedAt, }) => {
591
- const appDb = BaseDb.getAppDb();
592
- if (!appDb || uids.length === 0)
593
- return;
594
- await writeInBatches(uids, (chunk) => appDb
595
- .update(metadata)
596
- .set({
597
- revokedAt,
598
- propertyValue: null,
599
- refSeedType: null,
600
- refResolvedValue: null,
601
- refResolvedDisplayValue: null,
602
- })
603
- .where(and(inArray(metadata.uid, chunk), isNull(metadata.revokedAt))));
604
- };
605
-
606
- /**
607
- * Collects all items that will be in the publish payload (main item + related items from
608
- * relations and lists). Used by ensureEasSchemas to register schemas for nested items.
609
- * Skips items that already have seedUid (already published).
610
- *
611
- * Each returned item carries one cache hold the caller releases with `unload()`.
612
- */
613
- async function getRelatedItemsForPublish(item, visited = new Set()) {
614
- const loads = new ItemLoads();
615
- let result = [];
616
- try {
617
- result = await collectRelatedItemsForPublish(item, visited, loads);
618
- }
619
- finally {
620
- loads.release(result);
621
- }
622
- return result;
623
- }
624
- async function collectRelatedItemsForPublish(item, visited, loads) {
625
- const seedLocalId = item.seedLocalId;
626
- if (!seedLocalId || visited.has(seedLocalId)) {
627
- return [];
628
- }
629
- visited.add(seedLocalId);
630
- const result = [];
631
- const { itemRelationProperties, itemImageProperties, itemListProperties } = await getSegmentedItemProperties(item);
632
- const processRelationOrImage = async (prop) => {
633
- const snapshot = prop.getService().getSnapshot();
634
- const context = snapshot.context ?? null;
635
- if (!context)
636
- return;
637
- let value = context.propertyValue;
638
- // File/Image/Html/Json: fallback to metadata when propertyValue is empty (e.g. schema-loaded before metadata)
639
- const isStorageSeedType = (t) => isDataType(t, ModelPropertyDataTypes.File) ||
640
- isDataType(t, ModelPropertyDataTypes.Image) ||
641
- isDataType(t, ModelPropertyDataTypes.Html) ||
642
- isDataType(t, ModelPropertyDataTypes.Json);
643
- const isStorageSeed = isStorageSeedType(prop.propertyDef?.dataType) ||
644
- (isDataType(prop.propertyDef?.dataType, ModelPropertyDataTypes.Relation) &&
645
- isStorageSeedType(prop.propertyDef?.refValueType));
646
- if (!value && prop.propertyName && isStorageSeed) {
647
- const ctx = context;
648
- if (ctx.seedLocalId || ctx.seedUid) {
649
- const _mod_0 = await import('./Item-CG5IhPtL.js');
650
- const _ns_0 = _mod_0.au;
651
- const { getPropertyData } = _ns_0;
652
- const meta = await getPropertyData({
653
- propertyName: prop.propertyName,
654
- seedLocalId: ctx.seedLocalId,
655
- seedUid: ctx.seedUid,
656
- });
657
- value = meta?.propertyValue;
658
- }
659
- }
660
- const normalized = normalizeRelationPropertyValue(value);
661
- if (!normalized)
662
- return;
663
- const { seedLocalId, seedUid } = resolveSeedIdsFromRefString(normalized);
664
- if (!seedLocalId && !seedUid)
665
- return;
666
- const relatedItem = await loads.getItem({ seedLocalId, seedUid });
667
- if (!relatedItem || relatedItem.seedUid)
668
- return;
669
- const nested = await collectRelatedItemsForPublish(relatedItem, visited, loads);
670
- result.push(...nested, relatedItem);
671
- };
672
- for (const prop of [...itemRelationProperties, ...itemImageProperties]) {
673
- await processRelationOrImage(prop);
674
- }
675
- for (const listProperty of itemListProperties) {
676
- const listRef = listProperty.propertyDef?.ref ||
677
- listProperty.propertyDef?.refModelName;
678
- if (!listRef)
679
- continue;
680
- const snapshot = listProperty.getService().getSnapshot();
681
- const context = snapshot.context ?? null;
682
- if (!context)
683
- continue;
684
- let value = context.propertyValue;
685
- if (!value || listProperty.uid)
686
- continue;
687
- if (typeof value === 'string') {
688
- value = parseListPropertyValueFromStorage(value);
689
- }
690
- const arr = Array.isArray(value) ? value : [];
691
- for (const seedId of arr) {
692
- const normalized = normalizeRelationPropertyValue(seedId);
693
- if (!normalized)
694
- continue;
695
- const { seedLocalId, seedUid } = resolveSeedIdsFromRefString(normalized);
696
- if (!seedLocalId && !seedUid)
697
- continue;
698
- const relatedItem = await loads.getItem({ seedLocalId, seedUid });
699
- if (!relatedItem || relatedItem.seedUid)
700
- continue;
701
- const nested = await collectRelatedItemsForPublish(relatedItem, visited, loads);
702
- result.push(...nested, relatedItem);
703
- }
704
- }
705
- return result;
706
- }
707
-
708
- /**
709
- * Counts seeds, property attestations, and Arweave upload bytes for a publish
710
- * without building transactions or requiring a valid payload.
711
- */
712
- const DATA_URI = /^data:[^;]+;base64,([\s\S]*)$/i;
713
- const matchesDataType = (actual, expected) => normalizeDataType(actual) === expected;
714
- function isZeroUid(uid) {
715
- return !uid || uid === ZERO_BYTES32;
716
- }
717
- function isStorageTransactionPropertyName(name) {
718
- return name === 'storageTransactionId' || name === 'storage_transaction_id';
719
- }
720
- /** Decoded byte length of a data-URI, or null if the string is not a base64 data URI. */
721
- function estimateDataUriByteLength(dataUri) {
722
- const m = DATA_URI.exec((dataUri ?? '').trim());
723
- if (!m)
724
- return null;
725
- const b64 = m[1].replace(/\s/g, '');
726
- if (!b64)
727
- return 0;
728
- const padding = b64.endsWith('==') ? 2 : b64.endsWith('=') ? 1 : 0;
729
- return Math.max(0, Math.floor((b64.length * 3) / 4) - padding);
730
- }
731
- function propertyContext(prop) {
732
- const snapshot = prop.getService().getSnapshot();
733
- return snapshot && 'context' in snapshot
734
- ? (snapshot.context ?? null)
735
- : null;
736
- }
737
- function getPublishValue(prop, context) {
738
- const propertyDef = prop.propertyDef ?? context.propertyRecordSchema;
739
- const isFileImageHtml = matchesDataType(propertyDef?.dataType, ModelPropertyDataTypes.File) ||
740
- matchesDataType(propertyDef?.dataType, ModelPropertyDataTypes.Image) ||
741
- matchesDataType(propertyDef?.dataType, ModelPropertyDataTypes.Html);
742
- const isJsonStorage = matchesDataType(propertyDef?.dataType, ModelPropertyDataTypes.Json) ||
743
- matchesDataType(propertyDef?.refValueType, ModelPropertyDataTypes.Json);
744
- const isRelation = matchesDataType(propertyDef?.dataType, ModelPropertyDataTypes.Relation);
745
- const isStorageTransactionIdProp = isStorageTransactionPropertyName(prop.propertyName);
746
- const preferPropertyValue = isFileImageHtml || isRelation || isJsonStorage || isStorageTransactionIdProp;
747
- let value = preferPropertyValue
748
- ? context.propertyValue
749
- : (prop.value ?? context.propertyValue);
750
- if (isRelation || isFileImageHtml || isJsonStorage) {
751
- const pv = context.propertyValue;
752
- if (typeof value === 'object' || value == null) {
753
- if (typeof pv === 'string' && pv.trim())
754
- value = pv.trim();
755
- else if (pv && typeof pv === 'object' && typeof pv.seedLocalId === 'string') {
756
- value = pv.seedLocalId;
757
- }
758
- }
759
- }
760
- return value;
761
- }
762
- function shouldAttestProperty(prop, forceFullSnapshot) {
763
- if (INTERNAL_PROPERTY_NAMES.includes(prop.propertyName))
764
- return false;
765
- const context = propertyContext(prop);
766
- if (!context)
767
- return false;
768
- const value = getPublishValue(prop, context);
769
- if (value == null || value === '')
770
- return false;
771
- if (prop.uid && !forceFullSnapshot) {
772
- const allowStorageTx = isStorageTransactionPropertyName(prop.propertyName) &&
773
- typeof value === 'string' &&
774
- value.trim() !== '';
775
- if (!allowStorageTx)
776
- return false;
777
- }
778
- return true;
779
- }
780
- async function addUpload(acc, seen, key, bytes) {
781
- if (bytes <= 0 || seen.has(key))
782
- return;
783
- seen.add(key);
784
- acc.uploadCount += 1;
785
- acc.uploadBytes += bytes;
786
- acc.uploadSizes.push(bytes);
787
- }
788
- async function addUploadFromPath(acc, seen, filePath, key) {
789
- if (!filePath || filePath.endsWith('undefined'))
790
- return;
791
- const size = await BaseFileManager.getFileSize(filePath);
792
- if (size == null || size <= 0)
793
- return;
794
- await addUpload(acc, seen, key, size);
795
- }
796
- async function collectUploadBytes(item, itemUploadProperties, itemImageProperties, relatedItemProperty, acc, seen) {
797
- for (const uploadProperty of itemUploadProperties) {
798
- let childBytes = 0;
799
- let childCount = 0;
800
- for (const childProperty of uploadProperty.childProperties) {
801
- const filePath = childProperty.localStoragePath;
802
- if (!filePath || filePath.endsWith('undefined'))
803
- continue;
804
- const size = await BaseFileManager.getFileSize(filePath);
805
- if (size == null || size <= 0)
806
- continue;
807
- childBytes += size;
808
- childCount += 1;
809
- }
810
- if (childCount > 0) {
811
- await addUpload(acc, seen, `upload:${item.seedLocalId}:${uploadProperty.itemProperty.localId}`, childBytes);
812
- continue;
813
- }
814
- }
815
- for (const itemProperty of itemImageProperties) {
816
- const context = propertyContext(itemProperty);
817
- if (!context)
818
- continue;
819
- const refResolvedValue = (typeof context.refResolvedValue === 'string' && context.refResolvedValue) ||
820
- itemProperty.refResolvedValue;
821
- if (typeof refResolvedValue !== 'string' || !refResolvedValue)
822
- continue;
823
- const propertyValue = context.propertyValue;
824
- const { seedLocalId } = resolveSeedIdsFromRefString(normalizeRelationPropertyValue(propertyValue) ?? '');
825
- const dataType = itemProperty.propertyDef?.refValueType ??
826
- itemProperty.propertyDef?.dataType ??
827
- 'Image';
828
- const fromGetter = itemProperty.localStoragePath;
829
- const filePath = typeof fromGetter === 'string' && fromGetter
830
- ? fromGetter
831
- : `${getStorageDirForDataType(String(dataType))}/${refResolvedValue}`;
832
- await addUploadFromPath(acc, seen, filePath, seedLocalId ? `seed:${seedLocalId}` : `path:${filePath}`);
833
- }
834
- }
835
- async function loadRelatedItem(value, loads) {
836
- const normalized = normalizeRelationPropertyValue(value);
837
- if (!normalized)
838
- return undefined;
839
- const { seedLocalId, seedUid } = resolveSeedIdsFromRefString(normalized);
840
- if (!seedLocalId && !seedUid)
841
- return undefined;
842
- try {
843
- return await loads.getItem({ seedLocalId, seedUid });
844
- }
845
- catch {
846
- return undefined;
847
- }
848
- }
849
- async function relatedIfUnpublished(prop, loads) {
850
- const context = propertyContext(prop);
851
- if (!context)
852
- return undefined;
853
- const related = await loadRelatedItem(context.propertyValue, loads);
854
- if (!related || !isZeroUid(related.seedUid))
855
- return undefined;
856
- return related;
857
- }
858
- /** Seed refs held by a relation/image property (one) or a list property (each member). */
859
- function seedRefsOf(prop, isList) {
860
- const context = propertyContext(prop);
861
- if (!context)
862
- return [];
863
- let value = context.propertyValue;
864
- if (isList) {
865
- if (typeof value === 'string')
866
- value = parseListPropertyValueFromStorage(value);
867
- return (Array.isArray(value) ? value : [])
868
- .map((v) => normalizeRelationPropertyValue(v))
869
- .filter((v) => !!v);
870
- }
871
- const ref = normalizeRelationPropertyValue(value);
872
- return ref ? [ref] : [];
873
- }
874
- /** Like getPublishPayload: attested refs to revoked seeds block the publish. */
875
- async function collectUnpublishedRelatedItems(props, isList, forceFullSnapshot, out, loads, backReferences) {
876
- for (const prop of props) {
877
- if (!shouldAttestProperty(prop, forceFullSnapshot))
878
- continue;
879
- for (const ref of seedRefsOf(prop, isList)) {
880
- const { seedLocalId, seedUid } = resolveSeedIdsFromRefString(ref);
881
- if (!seedLocalId && !seedUid)
882
- continue;
883
- const row = await findRelatedSeedRow({ seedLocalId, seedUid });
884
- // A back reference to a seed this publish creates (e.g. a revoked root published again) is
885
- // left for a later publish, not attested (publishDraftGraph.ts)
886
- if (row && backReferences?.get(prop)?.has(row.seedLocalId))
887
- continue;
888
- if (!isUnpublishedSeed(row))
889
- continue;
890
- if (out.some((r) => r.propertyName === prop.propertyName && r.seedLocalId === row.seedLocalId)) {
891
- continue;
892
- }
893
- const related = await loadRelatedItem(row.seedLocalId, loads);
894
- out.push({
895
- propertyName: prop.propertyName,
896
- modelName: related?.modelName ?? relatedModelNameFromDef(prop.propertyDef) ?? row.type ?? 'unknown',
897
- seedLocalId: row.seedLocalId,
898
- seedUid: row.seedUid,
899
- });
900
- }
901
- }
902
- }
903
- /**
904
- * Images embedded in Html properties (co-published) whose seed was revoked: getPublishPayload rejects
905
- * them like image properties pointing at revoked seeds. Like getPublishPayload, checks the published
906
- * item's co-publish rows and those of the draft items published with it.
907
- */
908
- async function collectUnpublishedEmbeddedImages(item, out, loads) {
909
- const appDb = BaseDb.getAppDb();
910
- if (!appDb || !item.seedLocalId)
911
- return;
912
- for (const owner of [item, ...(await getRelatedDraftsCoPublishedWith(item, loads))]) {
913
- const rows = await appDb
914
- .select()
915
- .from(htmlEmbeddedImageCoPublish)
916
- .where(eq(htmlEmbeddedImageCoPublish.parentSeedLocalId, owner.seedLocalId));
917
- for (const row of rows) {
918
- const seed = await findRelatedSeedRow({ seedLocalId: row.imageSeedLocalId });
919
- if (!isUnpublishedSeed(seed))
920
- continue;
921
- const propertyName = htmlPropertyNameForHtmlSeed(owner, row.htmlSeedLocalId);
922
- if (out.some((r) => r.propertyName === propertyName && r.seedLocalId === seed.seedLocalId))
923
- continue;
924
- out.push({ propertyName, modelName: 'Image', seedLocalId: seed.seedLocalId, seedUid: seed.seedUid });
925
- }
926
- }
927
- }
928
- async function appendCoPublishImages(item, acc, seen, visited, forceFullSnapshot, publishMode, graph, loads) {
929
- const appDb = BaseDb.getAppDb();
930
- if (!appDb)
931
- return;
932
- const rows = await appDb
933
- .select()
934
- .from(htmlEmbeddedImageCoPublish)
935
- .where(eq(htmlEmbeddedImageCoPublish.parentSeedLocalId, item.seedLocalId));
936
- for (const row of rows) {
937
- const imageItem = await loads.find({
938
- seedLocalId: row.imageSeedLocalId,
939
- modelName: 'Image',
940
- });
941
- // Like getPublishPayload: an embedded image that already has a seed (published, or unpublished
942
- // and reported by collectUnpublishedEmbeddedImages) is not co-published.
943
- if (!imageItem || !isZeroUid(imageItem.seedUid))
944
- continue;
945
- const filePath = await findEmbeddedImageFilePath(imageItem.seedLocalId);
946
- if (filePath)
947
- await addUploadFromPath(acc, seen, filePath, `seed:${imageItem.seedLocalId}`);
948
- await summarizeItem(imageItem, publishMode, forceFullSnapshot, acc, seen, visited, graph, loads);
949
- }
950
- }
951
- async function summarizeItem(item, publishMode, forceFullSnapshot, acc, seenUploads, visited, graph, loads) {
952
- const seedLocalId = item.seedLocalId;
953
- if (!seedLocalId || visited.has(seedLocalId))
954
- return;
955
- visited.add(seedLocalId);
956
- acc.seedCount += 1;
957
- if (isZeroUid(item.seedUid))
958
- acc.newSeedCount += 1;
959
- if (isZeroUid(item.seedUid) || forceFullSnapshot)
960
- acc.newVersionCount += 1;
961
- const { itemBasicProperties, itemRelationProperties, itemListProperties, itemUploadProperties, itemImageProperties, } = await getSegmentedItemProperties(item);
962
- await collectUploadBytes(item, itemUploadProperties, itemImageProperties, undefined, acc, seenUploads);
963
- await collectUnpublishedRelatedItems([...itemRelationProperties, ...itemImageProperties], false, forceFullSnapshot, acc.unpublishedRelatedItems, loads, graph.backReferences);
964
- await collectUnpublishedRelatedItems(itemListProperties, true, forceFullSnapshot, acc.unpublishedRelatedItems, loads, graph.backReferences);
965
- // Draft Image/File/Html/Json items its storage relations point at. Draft model items its relations
966
- // and lists reach are summarized by summarizePublishWork from the publish's draft graph.
967
- const storageProperties = new Set(itemImageProperties);
968
- for (const rel of itemRelationProperties) {
969
- if (!storageProperties.has(rel))
970
- continue;
971
- const related = await relatedIfUnpublished(rel, loads);
972
- if (related) {
973
- await summarizeItem(related, publishMode, forceFullSnapshot, acc, seenUploads, visited, graph, loads);
974
- }
975
- }
976
- await appendCoPublishImages(item, acc, seenUploads, visited, forceFullSnapshot, publishMode, graph, loads);
977
- const attestable = [
978
- ...itemBasicProperties,
979
- ...itemRelationProperties,
980
- ...itemListProperties,
981
- ...itemImageProperties,
982
- ...itemUploadProperties.map((u) => u.itemProperty),
983
- ];
984
- const seenProps = new Set();
985
- for (const prop of attestable) {
986
- const key = prop.localId || `${prop.propertyName}:${prop.seedLocalId}`;
987
- if (seenProps.has(key))
988
- continue;
989
- seenProps.add(key);
990
- // A ref back to an item this publish creates is left for a later publish (publishDraftGraph.ts).
991
- if (graph.deferredProperties.has(prop))
992
- continue;
993
- if (shouldAttestProperty(prop, forceFullSnapshot)) {
994
- acc.attestationCount += 1;
995
- continue;
996
- }
997
- // An empty value attests a removal, or revokes for a retraction (ADR 0021)
998
- const context = propertyContext(prop);
999
- if (!context || INTERNAL_PROPERTY_NAMES.includes(prop.propertyName))
1000
- continue;
1001
- const value = getPublishValue(prop, context);
1002
- if (!(value == null || value === '' || (Array.isArray(value) && value.length === 0)))
1003
- continue;
1004
- if (prop.uid && !forceFullSnapshot)
1005
- continue;
1006
- const propertyDef = prop.propertyDef ?? context.propertyRecordSchema;
1007
- const clear = await getPropertyClear({
1008
- seedLocalId: context.seedLocalId,
1009
- seedUid: context.seedUid,
1010
- propertyName: prop.propertyName,
1011
- dataType: propertyDef?.dataType,
1012
- refValueType: propertyDef?.refValueType,
1013
- });
1014
- if (!clear)
1015
- continue;
1016
- if (clear.retract)
1017
- acc.revocationCount += clear.retractScope.length;
1018
- else
1019
- acc.attestationCount += 1;
1020
- }
1021
- }
1022
- /**
1023
- * Local measurement of what a publish would do: seed/version/attestation counts
1024
- * and Arweave upload byte totals. Does not hit the network or create transactions.
1025
- */
1026
- const publishForcesFullSnapshot = async (item, publishMode) => {
1027
- // Like getPublishPayload: an item whose seed was revoked republishes as a new seed with a full
1028
- // snapshot.
1029
- const republishRevokedSeed = !isZeroUid(item.seedUid) && (await isSeedRevoked(item.seedLocalId));
1030
- return { republishRevokedSeed, forceFullSnapshot: publishMode === 'new_version' || republishRevokedSeed };
1031
- };
1032
- async function collectUnpublishedRelatedItemsOf(item, forceFullSnapshot, out, backReferences, loads) {
1033
- const { itemRelationProperties, itemListProperties, itemImageProperties } = await getSegmentedItemProperties(item);
1034
- await collectUnpublishedRelatedItems([...itemRelationProperties, ...itemImageProperties], false, forceFullSnapshot, out, loads, backReferences);
1035
- await collectUnpublishedRelatedItems(itemListProperties, true, forceFullSnapshot, out, loads, backReferences);
1036
- }
1037
- /**
1038
- * References a publish of `item` would attest to items whose seed was unpublished (revoked), the
1039
- * same ones getPublishPayload rejects with RelatedItemUnpublishedError. Local reads only: the
1040
- * publish package checks this before registering schemas or uploading anything.
1041
- */
1042
- const getUnpublishedRelatedItems = async (item, options) => {
1043
- const { forceFullSnapshot } = await publishForcesFullSnapshot(item, options?.publishMode ?? 'patch');
1044
- const out = [];
1045
- await withItemLoads(undefined, async (loads) => {
1046
- // The item and every draft its publish carries along (publishDraftGraph.ts).
1047
- const { drafts, backReferences } = await getPublishDraftGraph(item, { forceFullSnapshot, loads });
1048
- for (const owner of [item, ...drafts.map((d) => d.item)]) {
1049
- await collectUnpublishedRelatedItemsOf(owner, forceFullSnapshot, out, backReferences, loads);
1050
- }
1051
- await collectUnpublishedEmbeddedImages(item, out, loads);
1052
- });
1053
- return out;
1054
- };
1055
- const summarizePublishWork = async (item, options) => {
1056
- const publishMode = options?.publishMode ?? 'patch';
1057
- const { republishRevokedSeed, forceFullSnapshot } = await publishForcesFullSnapshot(item, publishMode);
1058
- const acc = {
1059
- publishMode,
1060
- seedCount: 0,
1061
- newSeedCount: 0,
1062
- newVersionCount: 0,
1063
- attestationCount: 0,
1064
- revocationCount: 0,
1065
- uploadCount: 0,
1066
- uploadBytes: 0,
1067
- uploadSizes: [],
1068
- unpublishedRelatedItems: [],
1069
- };
1070
- await withItemLoads(undefined, async (loads) => {
1071
- const graph = await getPublishDraftGraph(item, { forceFullSnapshot, loads });
1072
- const { drafts } = graph;
1073
- const seenUploads = new Set();
1074
- const visited = new Set();
1075
- for (const owner of [item, ...drafts.map((d) => d.item)]) {
1076
- await summarizeItem(owner, publishMode, forceFullSnapshot, acc, seenUploads, visited, graph, loads);
1077
- }
1078
- await collectUnpublishedEmbeddedImages(item, acc.unpublishedRelatedItems, loads);
1079
- });
1080
- // summarizeItem counts the root as an existing seed (it has a seedUid).
1081
- if (republishRevokedSeed)
1082
- acc.newSeedCount += 1;
1083
- return acc;
1084
- };
1085
-
1086
- export { BaseDb, BaseFileManager, BaseFileManager as FileManager, ModelPropertyDataTypes, applyPropertyAttestationUidsFromPublish, compareMetadataRowsLatestFirst, estimateDataUriByteLength, generateId, getAttesterForSeed, getEasSchemaForItemProperty, getMetadataAttestationUidsForSeedUid, getPublishDraftGraph, getRelatedItemsForPublish, getSeedPublishState, getSegmentedItemProperties, getUnpublishedRelatedItems, getVersionsForSeedUid, htmlEmbeddedImageCoPublish, isDataType, listRelationEasPropertyName, markPropertyAttestationsRetracted, metadata, models, normalizeDataType, normalizePublisher, normalizeRelationPropertyValue, properties, resolveSeedIdsFromRefString, seeds, shouldAttestProperty, summarizePublishWork, updateVersionUid, versions };
1087
35
  //# sourceMappingURL=main.js.map