@seedprotocol/sdk 0.4.14 → 0.4.16

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 (363) hide show
  1. package/dist/{ArweaveClient-D6E8xe3J.js → ArweaveClient-DPeCeRMF.js} +21 -18
  2. package/dist/ArweaveClient-DPeCeRMF.js.map +1 -0
  3. package/dist/{ArweaveClient-DElJwN08.js → ArweaveClient-Zz6VwCkj.js} +21 -18
  4. package/dist/ArweaveClient-Zz6VwCkj.js.map +1 -0
  5. package/dist/{Db-De4o7jww.js → Db-Cvoi9q3N.js} +8 -5
  6. package/dist/Db-Cvoi9q3N.js.map +1 -0
  7. package/dist/{Db-DW1Un2jz.js → Db-DsFElL33.js} +356 -52
  8. package/dist/Db-DsFElL33.js.map +1 -0
  9. package/dist/{EasClient-BpGDIkmb.js → EasClient-B2N8bc3C.js} +6 -5
  10. package/dist/{EasClient-DGY_mkrd.js.map → EasClient-B2N8bc3C.js.map} +1 -1
  11. package/dist/{EasClient-DGY_mkrd.js → EasClient-D5Nn1WBF.js} +6 -5
  12. package/dist/{EasClient-BpGDIkmb.js.map → EasClient-D5Nn1WBF.js.map} +1 -1
  13. package/dist/{FileManager-DrHQbmYj.js → FileManager-Bk-JeMoA.js} +48 -11
  14. package/dist/FileManager-Bk-JeMoA.js.map +1 -0
  15. package/dist/{FileManager-Cw8mOIqZ.js → FileManager-Cqy_Lq46.js} +12 -8
  16. package/dist/FileManager-Cqy_Lq46.js.map +1 -0
  17. package/dist/{ModelProperty-D8d25NtC.js → ModelProperty-CkQaEsBu.js} +30 -28
  18. package/dist/ModelProperty-CkQaEsBu.js.map +1 -0
  19. package/dist/{PathResolver-D1k3dZg5.js → PathResolver-C3sdR5LL.js} +6 -5
  20. package/dist/{PathResolver-D1k3dZg5.js.map → PathResolver-C3sdR5LL.js.map} +1 -1
  21. package/dist/{PathResolver-BHj0UZTj.js → PathResolver-DF1QFI1d.js} +6 -5
  22. package/dist/{PathResolver-BHj0UZTj.js.map → PathResolver-DF1QFI1d.js.map} +1 -1
  23. package/dist/{QueryClient-BCVom0BA.js → QueryClient-CnONLIkA.js} +6 -5
  24. package/dist/{QueryClient-BCVom0BA.js.map → QueryClient-CnONLIkA.js.map} +1 -1
  25. package/dist/{QueryClient-D4974vvo.js → QueryClient-Ctgd0tDn.js} +6 -5
  26. package/dist/{QueryClient-D4974vvo.js.map → QueryClient-Ctgd0tDn.js.map} +1 -1
  27. package/dist/{Schema-CLlE7onI.js → Schema-Bnim4hAF.js} +90 -57
  28. package/dist/Schema-Bnim4hAF.js.map +1 -0
  29. package/dist/{SchemaValidationService-CwKY3QlY.js → SchemaValidationService-DXxRk-9Q.js} +138 -38
  30. package/dist/SchemaValidationService-DXxRk-9Q.js.map +1 -0
  31. package/dist/backfillMetadataPropertyIds-dzwzz4dA.js +67 -0
  32. package/dist/backfillMetadataPropertyIds-dzwzz4dA.js.map +1 -0
  33. package/dist/cjs/{ModelProperty-CgQ3zR-u.js → ModelProperty-C80601ai.js} +23 -21
  34. package/dist/cjs/ModelProperty-C80601ai.js.map +1 -0
  35. package/dist/cjs/{Schema-B0D7LgYb.js → Schema-6BQKp7hO.js} +60 -39
  36. package/dist/cjs/Schema-6BQKp7hO.js.map +1 -0
  37. package/dist/cjs/{SchemaValidationService-DUIOUvC_.js → SchemaValidationService-BySF1P0v.js} +138 -38
  38. package/dist/cjs/SchemaValidationService-BySF1P0v.js.map +1 -0
  39. package/dist/cjs/backfillMetadataPropertyIds-D9uzW5bW.js +84 -0
  40. package/dist/cjs/backfillMetadataPropertyIds-D9uzW5bW.js.map +1 -0
  41. package/dist/cjs/{getItem-BP4BYB4Z.js → getItem-Dj49AjWB.js} +5 -4
  42. package/dist/cjs/{getItem-BP4BYB4Z.js.map → getItem-Dj49AjWB.js.map} +1 -1
  43. package/dist/cjs/getPublishPayload-dR9co4rH.js +888 -0
  44. package/dist/cjs/getPublishPayload-dR9co4rH.js.map +1 -0
  45. package/dist/cjs/{getPublishUploads-D4DMfuOm.js → getPublishUploads-g61mgXaA.js} +111 -35
  46. package/dist/cjs/getPublishUploads-g61mgXaA.js.map +1 -0
  47. package/dist/cjs/getSegmentedItemProperties-NFvOHlAi.js +146 -0
  48. package/dist/cjs/getSegmentedItemProperties-NFvOHlAi.js.map +1 -0
  49. package/dist/cjs/{index-CUd7xS2i.js → index-9O_Ji1kY.js} +3332 -1367
  50. package/dist/cjs/index-9O_Ji1kY.js.map +1 -0
  51. package/dist/cjs/{index-BM8CSlnN.js → index-ud9i9fpp.js} +15 -7
  52. package/dist/cjs/index-ud9i9fpp.js.map +1 -0
  53. package/dist/cjs/{ownership-D3npAPnx.js → ownership-CyLRNReQ.js} +24 -7
  54. package/dist/cjs/ownership-CyLRNReQ.js.map +1 -0
  55. package/dist/cjs/property-Hj-RhQVX.js +318 -0
  56. package/dist/cjs/property-Hj-RhQVX.js.map +1 -0
  57. package/dist/db/drizzle/drizzle/0005_bright_lily_hollister.sql +27 -0
  58. package/dist/db/drizzle/drizzle/0006_add_publisher_to_versions_and_metadata.sql +3 -0
  59. package/dist/db/drizzle/drizzle/0007_add_required_to_properties.sql +1 -0
  60. package/dist/db/drizzle/drizzle/0008_add_revoked_at_to_seeds.sql +1 -0
  61. package/dist/db/drizzle/drizzle/0009_happy_namor.sql +14 -0
  62. package/dist/db/drizzle/drizzle/meta/0005_snapshot.json +1031 -0
  63. package/dist/db/drizzle/drizzle/meta/0006_snapshot.json +1045 -0
  64. package/dist/db/drizzle/drizzle/meta/0007_snapshot.json +1052 -0
  65. package/dist/db/drizzle/drizzle/meta/0008_snapshot.json +1059 -0
  66. package/dist/db/drizzle/drizzle/meta/0009_snapshot.json +1080 -0
  67. package/dist/db/drizzle/drizzle/meta/_journal.json +35 -0
  68. package/dist/{getItem-B_IP-uNX.js → getItem-ClK0UZqi.js} +5 -4
  69. package/dist/{getItem-B_IP-uNX.js.map → getItem-ClK0UZqi.js.map} +1 -1
  70. package/dist/getPublishPayload-CdfPTl8l.js +875 -0
  71. package/dist/getPublishPayload-CdfPTl8l.js.map +1 -0
  72. package/dist/{getPublishUploads-DPk5RcAG.js → getPublishUploads-CGBky9q9.js} +109 -15
  73. package/dist/getPublishUploads-CGBky9q9.js.map +1 -0
  74. package/dist/getSegmentedItemProperties-CJWdYH9W.js +144 -0
  75. package/dist/getSegmentedItemProperties-CJWdYH9W.js.map +1 -0
  76. package/dist/{index-DbmqfO-Q.js → index-C74KrwXN.js} +4 -2
  77. package/dist/index-C74KrwXN.js.map +1 -0
  78. package/dist/index-CgmWq1sF.js +19 -0
  79. package/dist/index-CgmWq1sF.js.map +1 -0
  80. package/dist/{index-Dh_gxItx.js → index-uPXtq2cf.js} +3321 -1376
  81. package/dist/index-uPXtq2cf.js.map +1 -0
  82. package/dist/main.cjs +7 -4
  83. package/dist/main.cjs.map +1 -1
  84. package/dist/main.js +138 -2218
  85. package/dist/main.js.map +1 -1
  86. package/dist/node.js +13 -12
  87. package/dist/node.js.map +1 -1
  88. package/dist/{ownership-CEv7BhIh.js → ownership-QK5haR3-.js} +24 -7
  89. package/dist/ownership-QK5haR3-.js.map +1 -0
  90. package/dist/{property-CppuVi-i.js → property-Dt0U3UXJ.js} +26 -6
  91. package/dist/property-Dt0U3UXJ.js.map +1 -0
  92. package/dist/{queries-B1vaglQW.js → queries-BUB-vUBm.js} +2 -2
  93. package/dist/{queries-B1vaglQW.js.map → queries-BUB-vUBm.js.map} +1 -1
  94. package/dist/seedSchema/AppStateSchema.d.ts +82 -0
  95. package/dist/seedSchema/AppStateSchema.d.ts.map +1 -0
  96. package/dist/seedSchema/ConfigSchema.d.ts +101 -0
  97. package/dist/seedSchema/ConfigSchema.d.ts.map +1 -0
  98. package/dist/seedSchema/MetadataSchema.d.ts +422 -0
  99. package/dist/seedSchema/MetadataSchema.d.ts.map +1 -0
  100. package/dist/seedSchema/MetadataSchema.ts +4 -1
  101. package/dist/seedSchema/ModelSchema.d.ts +243 -0
  102. package/dist/seedSchema/ModelSchema.d.ts.map +1 -0
  103. package/dist/seedSchema/ModelSchema.ts +1 -0
  104. package/dist/seedSchema/ModelSchemaSchema.d.ts +61 -0
  105. package/dist/seedSchema/ModelSchemaSchema.d.ts.map +1 -0
  106. package/dist/seedSchema/ModelUidSchema.d.ts +64 -0
  107. package/dist/seedSchema/ModelUidSchema.d.ts.map +1 -0
  108. package/dist/seedSchema/PropertyUidSchema.d.ts +64 -0
  109. package/dist/seedSchema/PropertyUidSchema.d.ts.map +1 -0
  110. package/dist/seedSchema/PropertyUidSchema.ts +2 -2
  111. package/dist/seedSchema/PublishProcessSchema.ts +22 -0
  112. package/dist/seedSchema/SchemaSchema.d.ts +169 -0
  113. package/dist/seedSchema/SchemaSchema.d.ts.map +1 -0
  114. package/dist/seedSchema/SeedSchema.d.ts +192 -0
  115. package/dist/seedSchema/SeedSchema.d.ts.map +1 -0
  116. package/dist/seedSchema/SeedSchema.ts +1 -0
  117. package/dist/seedSchema/UploadProcessSchema.ts +14 -0
  118. package/dist/seedSchema/VersionSchema.d.ts +194 -0
  119. package/dist/seedSchema/VersionSchema.d.ts.map +1 -0
  120. package/dist/seedSchema/VersionSchema.ts +1 -0
  121. package/dist/seedSchema/index.d.ts +11 -0
  122. package/dist/seedSchema/index.d.ts.map +1 -0
  123. package/dist/seedSchema/index.ts +2 -0
  124. package/dist/src/Item/Item.d.ts +5 -1
  125. package/dist/src/Item/Item.d.ts.map +1 -1
  126. package/dist/src/Item/queries.d.ts.map +1 -1
  127. package/dist/src/Item/service/actors/loadOrCreateItem.d.ts.map +1 -1
  128. package/dist/src/Item/service/actors/saveDataToDb.d.ts.map +1 -1
  129. package/dist/src/Item/service/itemMachineSingle.d.ts.map +1 -1
  130. package/dist/src/ItemProperty/ItemProperty.d.ts +4 -0
  131. package/dist/src/ItemProperty/ItemProperty.d.ts.map +1 -1
  132. package/dist/src/ItemProperty/service/actors/hydrateFromDb.d.ts.map +1 -1
  133. package/dist/src/ItemProperty/service/actors/loadOrCreateProperty.d.ts.map +1 -1
  134. package/dist/src/ItemProperty/service/actors/resolveRelatedValue.d.ts.map +1 -1
  135. package/dist/src/ItemProperty/service/actors/saveValueToDb/analyzeInput.d.ts.map +1 -1
  136. package/dist/src/ItemProperty/service/actors/saveValueToDb/saveFile.d.ts.map +1 -1
  137. package/dist/src/ItemProperty/service/actors/saveValueToDb/saveHtml.d.ts.map +1 -1
  138. package/dist/src/ItemProperty/service/actors/saveValueToDb/saveImage.d.ts.map +1 -1
  139. package/dist/src/ItemProperty/service/actors/saveValueToDb/saveItemStorage.d.ts.map +1 -1
  140. package/dist/src/ItemProperty/service/propertyMachine.d.ts.map +1 -1
  141. package/dist/src/Model/index.d.ts +1 -0
  142. package/dist/src/Model/index.d.ts.map +1 -1
  143. package/dist/src/Model/service/actors/createModelProperties.d.ts.map +1 -1
  144. package/dist/src/Model/service/modelMachine.d.ts +2 -2
  145. package/dist/src/ModelProperty/ModelProperty.d.ts +1 -1
  146. package/dist/src/ModelProperty/ModelProperty.d.ts.map +1 -1
  147. package/dist/src/ModelProperty/service/modelPropertyMachine.d.ts +17 -17
  148. package/dist/src/Schema/Schema.d.ts +1 -0
  149. package/dist/src/Schema/Schema.d.ts.map +1 -1
  150. package/dist/src/Schema/service/actors/loadOrCreateSchema.d.ts.map +1 -1
  151. package/dist/src/Schema/service/addModelsMachine.d.ts +14 -14
  152. package/dist/src/Schema/service/addModelsMachine.d.ts.map +1 -1
  153. package/dist/src/Schema/service/schemaMachine.d.ts +87 -87
  154. package/dist/src/Schema/service/validation/SchemaValidationService.d.ts +5 -1
  155. package/dist/src/Schema/service/validation/SchemaValidationService.d.ts.map +1 -1
  156. package/dist/src/Schema/validation.d.ts +2 -0
  157. package/dist/src/Schema/validation.d.ts.map +1 -1
  158. package/dist/src/browser/db/Db.d.ts +3 -1
  159. package/dist/src/browser/db/Db.d.ts.map +1 -1
  160. package/dist/src/browser/db/drizzleFiles.d.ts +7 -2
  161. package/dist/src/browser/db/drizzleFiles.d.ts.map +1 -1
  162. package/dist/src/browser/helpers/ArweaveClient.d.ts.map +1 -1
  163. package/dist/src/browser/helpers/FileManager.d.ts +1 -0
  164. package/dist/src/browser/helpers/FileManager.d.ts.map +1 -1
  165. package/dist/src/browser/index.d.ts +0 -1
  166. package/dist/src/browser/index.d.ts.map +1 -1
  167. package/dist/src/browser/workers/ImageResizer.d.ts.map +1 -1
  168. package/dist/src/browser/workers/imageResize.d.ts.map +1 -1
  169. package/dist/src/client/ClientManager.d.ts +11 -0
  170. package/dist/src/client/ClientManager.d.ts.map +1 -1
  171. package/dist/src/client/actors/addModelsToDb.d.ts.map +1 -1
  172. package/dist/src/client/actors/dbInit.d.ts.map +1 -1
  173. package/dist/src/client/actors/platformClassesInit.d.ts.map +1 -1
  174. package/dist/src/client/actors/processSchemaFiles.d.ts.map +1 -1
  175. package/dist/src/client/clientManagerMachine.d.ts.map +1 -1
  176. package/dist/src/db/Db/BaseDb.d.ts.map +1 -1
  177. package/dist/src/db/backfillMetadataPropertyIds.d.ts +7 -0
  178. package/dist/src/db/backfillMetadataPropertyIds.d.ts.map +1 -0
  179. package/dist/src/db/configs/dev.schema.config.d.ts.map +1 -1
  180. package/dist/src/db/read/getAttesterForSeed.d.ts +13 -0
  181. package/dist/src/db/read/getAttesterForSeed.d.ts.map +1 -0
  182. package/dist/src/db/read/getItemData.d.ts.map +1 -1
  183. package/dist/src/db/read/getItems.d.ts.map +1 -1
  184. package/dist/src/db/read/getMetadataAttestationUidsForSeedUid.d.ts +9 -0
  185. package/dist/src/db/read/getMetadataAttestationUidsForSeedUid.d.ts.map +1 -0
  186. package/dist/src/db/read/getPropertyData.d.ts +1 -1
  187. package/dist/src/db/read/getPropertyData.d.ts.map +1 -1
  188. package/dist/src/db/read/getPublishPayload.d.ts +26 -2
  189. package/dist/src/db/read/getPublishPayload.d.ts.map +1 -1
  190. package/dist/src/db/read/getPublishUploads.d.ts +1 -0
  191. package/dist/src/db/read/getPublishUploads.d.ts.map +1 -1
  192. package/dist/src/db/read/getRelatedItemsForPublish.d.ts.map +1 -1
  193. package/dist/src/db/read/getVersionsForSeedUid.d.ts +4 -0
  194. package/dist/src/db/read/getVersionsForSeedUid.d.ts.map +1 -0
  195. package/dist/src/db/read/subqueries/metadataLatest.d.ts.map +1 -1
  196. package/dist/src/db/write/createMetadata.d.ts +15 -1
  197. package/dist/src/db/write/createMetadata.d.ts.map +1 -1
  198. package/dist/src/db/write/createNewItem.d.ts.map +1 -1
  199. package/dist/src/db/write/createSeed.d.ts.map +1 -1
  200. package/dist/src/db/write/createVersion.d.ts.map +1 -1
  201. package/dist/src/db/write/updateItemPropertyValue.d.ts +2 -0
  202. package/dist/src/db/write/updateItemPropertyValue.d.ts.map +1 -1
  203. package/dist/src/db/write/updateMetadata.d.ts.map +1 -1
  204. package/dist/src/db/write/updateSeedRevokedAt.d.ts +10 -0
  205. package/dist/src/db/write/updateSeedRevokedAt.d.ts.map +1 -0
  206. package/dist/src/db/write/updateSeedUid.d.ts +6 -1
  207. package/dist/src/db/write/updateSeedUid.d.ts.map +1 -1
  208. package/dist/src/db/write/updateVersionUid.d.ts +13 -0
  209. package/dist/src/db/write/updateVersionUid.d.ts.map +1 -0
  210. package/dist/src/eas.d.ts +5 -2
  211. package/dist/src/eas.d.ts.map +1 -1
  212. package/dist/src/events/item/syncDbWithEas.d.ts +10 -0
  213. package/dist/src/events/item/syncDbWithEas.d.ts.map +1 -1
  214. package/dist/src/graphql/gql/gql.d.ts +2 -7
  215. package/dist/src/graphql/gql/gql.d.ts.map +1 -1
  216. package/dist/src/graphql/gql/graphql.d.ts +2 -16
  217. package/dist/src/graphql/gql/graphql.d.ts.map +1 -1
  218. package/dist/src/helpers/ArweaveClient/BaseArweaveClient.d.ts +22 -8
  219. package/dist/src/helpers/ArweaveClient/BaseArweaveClient.d.ts.map +1 -1
  220. package/dist/src/helpers/ArweaveClient/index.d.ts.map +1 -1
  221. package/dist/src/helpers/ArweaveClient/uploadApiVerification.d.ts +19 -0
  222. package/dist/src/helpers/ArweaveClient/uploadApiVerification.d.ts.map +1 -0
  223. package/dist/src/helpers/FileManager/BaseFileManager.d.ts +4 -0
  224. package/dist/src/helpers/FileManager/BaseFileManager.d.ts.map +1 -1
  225. package/dist/src/helpers/constants.d.ts.map +1 -1
  226. package/dist/src/helpers/crypto.d.ts +6 -0
  227. package/dist/src/helpers/crypto.d.ts.map +1 -1
  228. package/dist/src/helpers/db.d.ts +25 -0
  229. package/dist/src/helpers/db.d.ts.map +1 -1
  230. package/dist/src/helpers/easRevokedFilter.d.ts +10 -0
  231. package/dist/src/helpers/easRevokedFilter.d.ts.map +1 -0
  232. package/dist/src/helpers/file/queries.d.ts.map +1 -1
  233. package/dist/src/helpers/getSegmentedItemProperties.d.ts +2 -2
  234. package/dist/src/helpers/getSegmentedItemProperties.d.ts.map +1 -1
  235. package/dist/src/helpers/index.d.ts +3 -0
  236. package/dist/src/helpers/index.d.ts.map +1 -1
  237. package/dist/src/helpers/listPropertyValueFromStorage.d.ts +5 -0
  238. package/dist/src/helpers/listPropertyValueFromStorage.d.ts.map +1 -0
  239. package/dist/src/helpers/metadataPropertyNames.d.ts +50 -0
  240. package/dist/src/helpers/metadataPropertyNames.d.ts.map +1 -0
  241. package/dist/src/helpers/model.d.ts.map +1 -1
  242. package/dist/src/helpers/ownership.d.ts +2 -0
  243. package/dist/src/helpers/ownership.d.ts.map +1 -1
  244. package/dist/src/helpers/property/index.d.ts +24 -12
  245. package/dist/src/helpers/property/index.d.ts.map +1 -1
  246. package/dist/src/helpers/property.d.ts.map +1 -1
  247. package/dist/src/helpers/publishConfig.d.ts +36 -0
  248. package/dist/src/helpers/publishConfig.d.ts.map +1 -1
  249. package/dist/src/helpers/schema.d.ts.map +1 -1
  250. package/dist/src/helpers/updateSchema.d.ts +2 -5
  251. package/dist/src/helpers/updateSchema.d.ts.map +1 -1
  252. package/dist/src/imports/index.d.ts +1 -1
  253. package/dist/src/imports/index.d.ts.map +1 -1
  254. package/dist/src/imports/json.d.ts +16 -1
  255. package/dist/src/imports/json.d.ts.map +1 -1
  256. package/dist/src/index.d.ts +33 -8
  257. package/dist/src/index.d.ts.map +1 -1
  258. package/dist/src/interfaces/IItem.d.ts +5 -1
  259. package/dist/src/interfaces/IItem.d.ts.map +1 -1
  260. package/dist/src/interfaces/IItemProperty.d.ts +3 -0
  261. package/dist/src/interfaces/IItemProperty.d.ts.map +1 -1
  262. package/dist/src/node/db/Db.d.ts.map +1 -1
  263. package/dist/src/node/helpers/ArweaveClient.d.ts.map +1 -1
  264. package/dist/src/node/helpers/FileManager.d.ts +1 -0
  265. package/dist/src/node/helpers/FileManager.d.ts.map +1 -1
  266. package/dist/src/seedSchema/MetadataSchema.d.ts +36 -0
  267. package/dist/src/seedSchema/MetadataSchema.d.ts.map +1 -1
  268. package/dist/src/seedSchema/ModelSchema.d.ts +17 -0
  269. package/dist/src/seedSchema/ModelSchema.d.ts.map +1 -1
  270. package/dist/src/seedSchema/PublishProcessSchema.d.ts +285 -0
  271. package/dist/src/seedSchema/PublishProcessSchema.d.ts.map +1 -0
  272. package/dist/src/seedSchema/SeedSchema.d.ts +17 -0
  273. package/dist/src/seedSchema/SeedSchema.d.ts.map +1 -1
  274. package/dist/src/seedSchema/UploadProcessSchema.d.ts +135 -0
  275. package/dist/src/seedSchema/UploadProcessSchema.d.ts.map +1 -0
  276. package/dist/src/seedSchema/VersionSchema.d.ts +19 -0
  277. package/dist/src/seedSchema/VersionSchema.d.ts.map +1 -1
  278. package/dist/src/seedSchema/index.d.ts +2 -0
  279. package/dist/src/seedSchema/index.d.ts.map +1 -1
  280. package/dist/src/services/write/writeProcessMachine.d.ts +1 -1
  281. package/dist/src/types/arweave.d.ts +2 -1
  282. package/dist/src/types/arweave.d.ts.map +1 -1
  283. package/dist/src/types/db.d.ts +2 -0
  284. package/dist/src/types/db.d.ts.map +1 -1
  285. package/dist/src/types/import.d.ts +3 -0
  286. package/dist/src/types/import.d.ts.map +1 -1
  287. package/dist/src/types/index.d.ts +9 -0
  288. package/dist/src/types/index.d.ts.map +1 -1
  289. package/dist/src/types/item.d.ts +13 -0
  290. package/dist/src/types/item.d.ts.map +1 -1
  291. package/dist/src/types/machines.d.ts +1 -0
  292. package/dist/src/types/machines.d.ts.map +1 -1
  293. package/dist/src/types/property.d.ts +11 -2
  294. package/dist/src/types/property.d.ts.map +1 -1
  295. package/dist/src/vite/index.d.ts.map +1 -1
  296. package/dist/vite.cjs +2 -127
  297. package/dist/vite.cjs.map +1 -1
  298. package/dist/vite.js +2 -127
  299. package/dist/vite.js.map +1 -1
  300. package/package.json +4 -11
  301. package/dist/ArweaveClient-D6E8xe3J.js.map +0 -1
  302. package/dist/ArweaveClient-DElJwN08.js.map +0 -1
  303. package/dist/Db-DW1Un2jz.js.map +0 -1
  304. package/dist/Db-De4o7jww.js.map +0 -1
  305. package/dist/FileManager-Cw8mOIqZ.js.map +0 -1
  306. package/dist/FileManager-DrHQbmYj.js.map +0 -1
  307. package/dist/ModelProperty-D8d25NtC.js.map +0 -1
  308. package/dist/Schema-CLlE7onI.js.map +0 -1
  309. package/dist/SchemaValidationService-CwKY3QlY.js.map +0 -1
  310. package/dist/cjs/ModelProperty-CgQ3zR-u.js.map +0 -1
  311. package/dist/cjs/Schema-B0D7LgYb.js.map +0 -1
  312. package/dist/cjs/SchemaValidationService-DUIOUvC_.js.map +0 -1
  313. package/dist/cjs/getPublishPayload-B90BFd8m.js +0 -520
  314. package/dist/cjs/getPublishPayload-B90BFd8m.js.map +0 -1
  315. package/dist/cjs/getPublishUploads-D4DMfuOm.js.map +0 -1
  316. package/dist/cjs/getSegmentedItemProperties-KdudlzXm.js +0 -71
  317. package/dist/cjs/getSegmentedItemProperties-KdudlzXm.js.map +0 -1
  318. package/dist/cjs/index-BM8CSlnN.js.map +0 -1
  319. package/dist/cjs/index-CUd7xS2i.js.map +0 -1
  320. package/dist/cjs/ownership-D3npAPnx.js.map +0 -1
  321. package/dist/getPublishPayload-BekDN5Ti.js +0 -503
  322. package/dist/getPublishPayload-BekDN5Ti.js.map +0 -1
  323. package/dist/getPublishUploads-DPk5RcAG.js.map +0 -1
  324. package/dist/getSegmentedItemProperties-DfQNbOpb.js +0 -69
  325. package/dist/getSegmentedItemProperties-DfQNbOpb.js.map +0 -1
  326. package/dist/index-DbmqfO-Q.js.map +0 -1
  327. package/dist/index-Dh_gxItx.js.map +0 -1
  328. package/dist/index-XBnjc_SF.js +0 -18
  329. package/dist/index-XBnjc_SF.js.map +0 -1
  330. package/dist/ownership-CEv7BhIh.js.map +0 -1
  331. package/dist/property-CppuVi-i.js.map +0 -1
  332. package/dist/src/browser/react/OPFSImage.d.ts +0 -7
  333. package/dist/src/browser/react/OPFSImage.d.ts.map +0 -1
  334. package/dist/src/browser/react/SeedImage.d.ts +0 -11
  335. package/dist/src/browser/react/SeedImage.d.ts.map +0 -1
  336. package/dist/src/browser/react/SeedProvider.d.ts +0 -30
  337. package/dist/src/browser/react/SeedProvider.d.ts.map +0 -1
  338. package/dist/src/browser/react/client.d.ts +0 -2
  339. package/dist/src/browser/react/client.d.ts.map +0 -1
  340. package/dist/src/browser/react/db.d.ts +0 -4
  341. package/dist/src/browser/react/db.d.ts.map +0 -1
  342. package/dist/src/browser/react/index.d.ts +0 -14
  343. package/dist/src/browser/react/index.d.ts.map +0 -1
  344. package/dist/src/browser/react/item.d.ts +0 -44
  345. package/dist/src/browser/react/item.d.ts.map +0 -1
  346. package/dist/src/browser/react/itemProperty.d.ts +0 -93
  347. package/dist/src/browser/react/itemProperty.d.ts.map +0 -1
  348. package/dist/src/browser/react/liveQuery.d.ts +0 -29
  349. package/dist/src/browser/react/liveQuery.d.ts.map +0 -1
  350. package/dist/src/browser/react/model.d.ts +0 -48
  351. package/dist/src/browser/react/model.d.ts.map +0 -1
  352. package/dist/src/browser/react/modelProperty.d.ts +0 -82
  353. package/dist/src/browser/react/modelProperty.d.ts.map +0 -1
  354. package/dist/src/browser/react/queryClient.d.ts +0 -28
  355. package/dist/src/browser/react/queryClient.d.ts.map +0 -1
  356. package/dist/src/browser/react/schema.d.ts +0 -45
  357. package/dist/src/browser/react/schema.d.ts.map +0 -1
  358. package/dist/src/browser/react/services.d.ts +0 -24
  359. package/dist/src/browser/react/services.d.ts.map +0 -1
  360. package/dist/src/browser/react/trash.d.ts +0 -9
  361. package/dist/src/browser/react/trash.d.ts.map +0 -1
  362. package/dist/src/browser/react/useImageFiles.d.ts +0 -19
  363. package/dist/src/browser/react/useImageFiles.d.ts.map +0 -1
@@ -48,6 +48,7 @@ export type ClientManagerContext = {
48
48
  filesDir?: string;
49
49
  dbConfig?: import('@/types').DbConfig;
50
50
  schemaFile?: string;
51
+ schema?: string | SchemaFileFormat;
51
52
  initError?: Error | string;
52
53
  };
53
54
  //# sourceMappingURL=machines.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"machines.d.ts","sourceRoot":"","sources":["../../../src/types/machines.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AACrC,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAK1C,MAAM,MAAM,oBAAoB,GAAG;IACjC,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,MAAM,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAAA;KAAE,CAAA;IACjC,kBAAkB,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC,CAAA;IACtC,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG,kBAAkB,GAAG;IACvD,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,mBAAmB,CAAA;IACzB,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,EAAE,qBAAqB,CAAA;IAC3B,YAAY,EAAE,GAAG,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,iBAAiB,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,IAAI;IAChD,OAAO,EAAE,CAAC,CAAA;IACV,KAAK,CAAC,EAAE,CAAC,CAAA;CACV,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,aAAa,EAAE,OAAO,CAAA;IACtB,YAAY,EAAE,OAAO,CAAA;IACrB,QAAQ,EAAE,OAAO,CAAA;IACjB,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;IACzB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,MAAM,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAAA;KAAE,CAAA;IACjC,OAAO,CAAC,EAAE;QAAE,CAAC,UAAU,EAAE,MAAM,GAAG,gBAAgB,CAAA;KAAE,CAAA;IACpD,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,OAAO,SAAS,EAAE,QAAQ,CAAA;IACrC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;CAC3B,CAAA"}
1
+ {"version":3,"file":"machines.d.ts","sourceRoot":"","sources":["../../../src/types/machines.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AACrC,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAK1C,MAAM,MAAM,oBAAoB,GAAG;IACjC,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,MAAM,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAAA;KAAE,CAAA;IACjC,kBAAkB,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC,CAAA;IACtC,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG,kBAAkB,GAAG;IACvD,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,mBAAmB,CAAA;IACzB,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,EAAE,qBAAqB,CAAA;IAC3B,YAAY,EAAE,GAAG,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,iBAAiB,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,IAAI;IAChD,OAAO,EAAE,CAAC,CAAA;IACV,KAAK,CAAC,EAAE,CAAC,CAAA;CACV,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,aAAa,EAAE,OAAO,CAAA;IACtB,YAAY,EAAE,OAAO,CAAA;IACrB,QAAQ,EAAE,OAAO,CAAA;IACjB,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;IACzB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,MAAM,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAAA;KAAE,CAAA;IACjC,OAAO,CAAC,EAAE;QAAE,CAAC,UAAU,EAAE,MAAM,GAAG,gBAAgB,CAAA;KAAE,CAAA;IACpD,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,OAAO,SAAS,EAAE,QAAQ,CAAA;IACrC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAA;IAClC,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;CAC3B,CAAA"}
@@ -30,7 +30,10 @@ export type PropertyData = {
30
30
  createdAt: number;
31
31
  updatedAt: number;
32
32
  };
33
- export type PropertyMachineContext = Partial<MetadataType> & {
33
+ export type ItemPropertyValueType = string | number | Record<string, unknown> | null | undefined | any[];
34
+ /** DB metadata uses string `property_value`; machine context also holds parsed List values as arrays. */
35
+ export type PropertyMachineContext = Omit<Partial<MetadataType>, 'propertyValue'> & {
36
+ propertyValue?: ItemPropertyValueType;
34
37
  populatedFromDb?: boolean;
35
38
  isSaving: boolean;
36
39
  propertyRecordSchema?: PropertyType;
@@ -46,8 +49,14 @@ export type PropertyMachineContext = Partial<MetadataType> & {
46
49
  message: string;
47
50
  name?: string;
48
51
  } | null;
52
+ /** Validation errors from last failed save (enum, pattern, etc.). Cleared on successful save. */
53
+ _saveValidationErrors?: import('@/Schema/validation').ValidationError[];
54
+ /** Error from last failed save (e.g. file save, metadata creation). Cleared on successful save. */
55
+ _saveError?: {
56
+ message: string;
57
+ name?: string;
58
+ } | null;
49
59
  };
50
- export type ItemPropertyValueType = string | number | Record<string, unknown> | null | undefined | any[];
51
60
  export type SaveValueToDbEvent = {
52
61
  type: 'saveValueToDb';
53
62
  newValue: ItemPropertyValueType;
@@ -1 +1 @@
1
- {"version":3,"file":"property.d.ts","sourceRoot":"","sources":["../../../src/types/property.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EACL,SAAS,EACT,iBAAiB,EACjB,aAAa,EACb,YAAY,EACb,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAE3C,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAE/D,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,YAAY,CAAC,CAAA;AAErD,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,SAAS,CAAC,CAAA;AAEnD,MAAM,MAAM,mBAAmB,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM,KAAK,YAAY,CAAA;AAEhE,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,aAAa,CAAC,CAAA;AAEvD,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACvB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;AAE7B,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAEnD,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,aAAa,CAAA;IACtB,IAAI,EAAE,aAAa,CAAA;IACnB,QAAQ,EAAE,aAAa,CAAA;IACvB,YAAY,EAAE,aAAa,CAAA;IAC3B,UAAU,EAAE,aAAa,CAAA;CAC1B,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AACD,MAAM,MAAM,sBAAsB,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG;IAC3D,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,QAAQ,EAAE,OAAO,CAAA;IACjB,oBAAoB,CAAC,EAAE,YAAY,CAAA;IACnC,UAAU,EAAE,OAAO,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,OAAO,CAAA;IAClB,WAAW,CAAC,EAAE,GAAG,CAAA;IACjB,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,EAAE,qBAAqB,CAAA;IAChC,6CAA6C;IAC7C,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,aAAa,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;CAC1D,CAAA;AAED,MAAM,MAAM,qBAAqB,GAC7B,MAAM,GACN,MAAM,GACN,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACvB,IAAI,GACJ,SAAS,GACT,GAAG,EAAE,CAAA;AAET,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,eAAe,CAAA;IACrB,QAAQ,EAAE,qBAAqB,CAAA;CAChC,CAAA"}
1
+ {"version":3,"file":"property.d.ts","sourceRoot":"","sources":["../../../src/types/property.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/vite/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAc,MAAM,MAAM,CAAA;AA2C9C,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IAEpB;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAElB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAA;IAEf;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAC/B;AASD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,cAAc,CAAC,OAAO,GAAE,qBAA0B,GAAG,MAAM,EAAE,CA2U5E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/vite/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAc,MAAM,MAAM,CAAA;AAQ9C,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IAEpB;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAElB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAA;IAEf;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAC/B;AASD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,cAAc,CAAC,OAAO,GAAE,qBAA0B,GAAG,MAAM,EAAE,CAqO5E"}
package/dist/vite.cjs CHANGED
@@ -1,45 +1,10 @@
1
1
  'use strict';
2
2
 
3
3
  var node_module = require('node:module');
4
- var path = require('node:path');
5
- var node_url = require('node:url');
6
4
  var vitePluginNodePolyfills = require('vite-plugin-node-polyfills');
7
5
 
8
6
  var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
9
- const _req = node_module.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('vite.cjs', document.baseURI).href)));
10
- function resolveXstateDep(id, importer) {
11
- const searchPaths = [process.cwd()];
12
- if (importer) {
13
- let dir = path.dirname(importer);
14
- for (let i = 0; i < 5 && dir; i++) {
15
- searchPaths.push(dir);
16
- dir = path.dirname(dir);
17
- }
18
- }
19
- const sdkDir = path.resolve(node_url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('vite.cjs', document.baseURI).href))), '../../..');
20
- searchPaths.push(sdkDir, path.resolve(sdkDir, '../..'));
21
- for (const dir of searchPaths) {
22
- try {
23
- return _req.resolve(id, { paths: [dir] });
24
- }
25
- catch {
26
- continue;
27
- }
28
- }
29
- return null;
30
- }
31
- // #region agent log
32
- const _dbg = (d) => {
33
- fetch('http://127.0.0.1:7242/ingest/0978b378-ebae-46bf-8fd3-134ef2e16cdd', {
34
- method: 'POST',
35
- headers: { 'Content-Type': 'application/json', 'X-Debug-Session-Id': '73e96f' },
36
- body: JSON.stringify({
37
- sessionId: '73e96f',
38
- ...d,
39
- timestamp: Date.now(),
40
- }),
41
- }).catch(() => { });
42
- };
7
+ node_module.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('vite.cjs', document.baseURI).href)));
43
8
  const DEFAULT_FS_MODULES = [
44
9
  'fs',
45
10
  'fs/promises',
@@ -65,14 +30,6 @@ const DEFAULT_FS_MODULES = [
65
30
  * await configure({ mounts: { '/': IndexedDB } });
66
31
  */
67
32
  function seedVitePlugin(options = {}) {
68
- // #region agent log
69
- _dbg({
70
- hypothesisId: 'D',
71
- location: 'vite/index.ts:seedVitePlugin',
72
- message: 'seedVitePlugin loaded',
73
- data: { options: Object.keys(options) },
74
- });
75
- // #endregion
76
33
  const { fsModules = DEFAULT_FS_MODULES, autoInit = false, debug = false, includeNodePolyfills = true, } = options;
77
34
  /**
78
35
  * Pre-plugin: configure aliases and optimizeDeps.
@@ -85,31 +42,6 @@ function seedVitePlugin(options = {}) {
85
42
  // Always use browser-friendly path implementation
86
43
  // path: 'path-browserify',
87
44
  };
88
- // Resolve @xstate/react transitive deps for production builds (optimizeDeps only helps dev).
89
- // Bun/workspace layouts can leave these in virtual store; Rollup fails to resolve them.
90
- const xstateDepIds = [
91
- 'use-isomorphic-layout-effect',
92
- 'use-sync-external-store',
93
- 'use-sync-external-store/shim',
94
- 'use-sync-external-store/shim/with-selector',
95
- ];
96
- for (const id of xstateDepIds) {
97
- // const resolved = resolveXstateDep(id)
98
- // if (resolved) {
99
- // alias[id] = resolved
100
- // xstateResolved++
101
- // }
102
- }
103
- {
104
- // #region agent log
105
- _dbg({
106
- hypothesisId: 'fix',
107
- location: 'vite/index.ts:configPlugin.alias',
108
- message: 'failed to resolve any @xstate/react deps',
109
- data: { cwd: process.cwd() },
110
- });
111
- // #endregion
112
- }
113
45
  for (const mod of fsModules) {
114
46
  const isPromises = mod.includes('promises');
115
47
  const target = isPromises ? '@zenfs/core/promises' : '@zenfs/core';
@@ -147,23 +79,8 @@ function seedVitePlugin(options = {}) {
147
79
  // viem dynamically imports isows; pre-bundle both so Rollup can resolve them
148
80
  'viem',
149
81
  'isows',
150
- // @xstate/react transitive deps; must be pre-bundled so Rollup can resolve them
151
- // (Bun/workspace layouts can leave these in virtual store, breaking resolution)
152
- 'use-isomorphic-layout-effect',
153
- 'use-sync-external-store',
154
82
  ],
155
83
  };
156
- // #region agent log
157
- _dbg({
158
- hypothesisId: 'A,B',
159
- location: 'vite/index.ts:configPlugin.config',
160
- message: 'configPlugin returning optimizeDeps',
161
- data: {
162
- optimizeDepsInclude: optimizeDeps.include,
163
- userOptimizeDepsInclude: userConfig.optimizeDeps?.include,
164
- },
165
- });
166
- // #endregion
167
84
  return {
168
85
  resolve: {
169
86
  alias,
@@ -174,19 +91,6 @@ function seedVitePlugin(options = {}) {
174
91
  optimizeDeps,
175
92
  };
176
93
  },
177
- configResolved(resolvedConfig) {
178
- // #region agent log
179
- _dbg({
180
- hypothesisId: 'B',
181
- location: 'vite/index.ts:configPlugin.configResolved',
182
- message: 'final merged optimizeDeps',
183
- data: {
184
- include: resolvedConfig.optimizeDeps?.include,
185
- exclude: resolvedConfig.optimizeDeps?.exclude,
186
- },
187
- });
188
- // #endregion
189
- },
190
94
  };
191
95
  /**
192
96
  * Post-plugin: build configuration + optional ZenFS init.
@@ -299,36 +203,7 @@ if (!window.__seedFsReady) {
299
203
  return html + initScript;
300
204
  },
301
205
  };
302
- const resolveXstateDepsPlugin = {
303
- name: 'seed-protocol:resolve-xstate-deps',
304
- enforce: 'pre',
305
- resolveId(id, importer) {
306
- if (id === 'use-isomorphic-layout-effect' || id.startsWith('use-sync-external-store')) {
307
- const resolved = resolveXstateDep(id, importer);
308
- if (resolved) {
309
- // #region agent log
310
- _dbg({
311
- hypothesisId: 'fix',
312
- location: 'vite/index.ts:resolveXstateDepsPlugin',
313
- message: 'resolved @xstate/react dep',
314
- data: { id, resolved },
315
- });
316
- // #endregion
317
- return resolved;
318
- }
319
- // #region agent log
320
- _dbg({
321
- hypothesisId: 'fix',
322
- location: 'vite/index.ts:resolveXstateDepsPlugin',
323
- message: 'failed to resolve @xstate/react dep',
324
- data: { id, importer: importer ?? 'unknown' },
325
- });
326
- // #endregion
327
- }
328
- return null;
329
- },
330
- };
331
- const plugins = [configPlugin, resolveXstateDepsPlugin, mainPlugin];
206
+ const plugins = [configPlugin, mainPlugin];
332
207
  if (includeNodePolyfills) {
333
208
  plugins.push(vitePluginNodePolyfills.nodePolyfills({
334
209
  // Let fs be handled by @zenfs/core instead of polyfills
package/dist/vite.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"vite.cjs","sources":["../../src/vite/index.ts"],"sourcesContent":["import type { Plugin, UserConfig } from 'vite'\nimport { createRequire } from 'node:module'\nimport path from 'node:path'\nimport { fileURLToPath } from 'node:url'\nimport { nodePolyfills } from 'vite-plugin-node-polyfills'\n\nconst _req = createRequire(import.meta.url)\n\nfunction resolveXstateDep(id: string, importer?: string): string | null {\n const searchPaths: string[] = [process.cwd()]\n if (importer) {\n let dir = path.dirname(importer)\n for (let i = 0; i < 5 && dir; i++) {\n searchPaths.push(dir)\n dir = path.dirname(dir)\n }\n }\n const sdkDir = path.resolve(fileURLToPath(import.meta.url), '../../..')\n searchPaths.push(sdkDir, path.resolve(sdkDir, '../..'))\n for (const dir of searchPaths) {\n try {\n return _req.resolve(id, { paths: [dir] })\n } catch {\n continue\n }\n }\n return null\n}\n\n// #region agent log\nconst _dbg = (d: { hypothesisId?: string; location: string; message: string; data?: object }) => {\n fetch('http://127.0.0.1:7242/ingest/0978b378-ebae-46bf-8fd3-134ef2e16cdd', {\n method: 'POST',\n headers: { 'Content-Type': 'application/json', 'X-Debug-Session-Id': '73e96f' },\n body: JSON.stringify({\n sessionId: '73e96f',\n ...d,\n timestamp: Date.now(),\n }),\n }).catch(() => {})\n}\n// #endregion\n\nexport interface SeedVitePluginOptions {\n /**\n * Additional modules to alias to ZenFS equivalents.\n * @default ['fs', 'fs/promises', 'node:fs', 'node:fs/promises']\n */\n fsModules?: string[]\n\n /**\n * Whether to inject automatic ZenFS initialization script into index.html.\n * When true, injects a &lt;script type=\"module\"&gt; that imports from '@zenfs/core'/'@zenfs/dom'.\n * Browsers cannot resolve those bare specifiers, so the script fails at runtime unless you use\n * an import map or load ZenFS another way. Prefer false and initialize ZenFS in your entry:\n * import { configure } from '@zenfs/core'; import { IndexedDB } from '@zenfs/dom';\n * await configure({ mounts: { '/': IndexedDB } });\n * @default false\n */\n autoInit?: boolean\n\n /**\n * Enable debug logging.\n * @default false\n */\n debug?: boolean\n\n /**\n * Whether to automatically include vite-plugin-node-polyfills with sensible defaults.\n * @default true\n */\n includeNodePolyfills?: boolean\n}\n\nconst DEFAULT_FS_MODULES = [\n 'fs',\n 'fs/promises',\n 'node:fs',\n 'node:fs/promises',\n]\n\n/**\n * Minimal Vite plugin to make the SDK work in browser/Electron renderer:\n * - Aliases fs → @zenfs/core (and promises variant)\n * - Aliases path → path-browserify\n * - Ensures CommonJS in SDK dist is transformed by Vite's CommonJS plugin\n * - Optionally injects a simple ZenFS initialization script\n * - Optionally wires up vite-plugin-node-polyfills with safe defaults\n *\n * This plugin assumes the SDK does not bundle Node-only code in the browser entry.\n * For Electron, Node-only work (e.g. drizzle-kit, better-sqlite3) should run in the\n * main process; the renderer should only use browser-safe SDK usage.\n *\n * For the renderer build:\n * - Use the SDK's ESM entry: import from '@seedprotocol/sdk' (resolves to dist/main.js).\n * - When autoInit is false (default), initialize ZenFS in your entry:\n * import { configure } from '@zenfs/core'; import { IndexedDB } from '@zenfs/dom';\n * await configure({ mounts: { '/': IndexedDB } });\n */\nexport function seedVitePlugin(options: SeedVitePluginOptions = {}): Plugin[] {\n // #region agent log\n _dbg({\n hypothesisId: 'D',\n location: 'vite/index.ts:seedVitePlugin',\n message: 'seedVitePlugin loaded',\n data: { options: Object.keys(options) },\n })\n // #endregion\n const {\n fsModules = DEFAULT_FS_MODULES,\n autoInit = false,\n debug = false,\n includeNodePolyfills = true,\n } = options\n\n const log = (...args: unknown[]) => {\n }\n\n /**\n * Pre-plugin: configure aliases and optimizeDeps.\n */\n const configPlugin: Plugin = {\n name: 'seed-protocol:config',\n enforce: 'pre',\n\n config(userConfig) {\n const alias: Record<string, string> = {\n // Always use browser-friendly path implementation\n // path: 'path-browserify',\n }\n\n // Resolve @xstate/react transitive deps for production builds (optimizeDeps only helps dev).\n // Bun/workspace layouts can leave these in virtual store; Rollup fails to resolve them.\n const xstateDepIds = [\n 'use-isomorphic-layout-effect',\n 'use-sync-external-store',\n 'use-sync-external-store/shim',\n 'use-sync-external-store/shim/with-selector',\n ]\n let xstateResolved = 0\n for (const id of xstateDepIds) {\n // const resolved = resolveXstateDep(id)\n // if (resolved) {\n // alias[id] = resolved\n // xstateResolved++\n // }\n }\n if (xstateResolved > 0) {\n // #region agent log\n _dbg({\n hypothesisId: 'fix',\n location: 'vite/index.ts:configPlugin.alias',\n message: 'resolve.alias added for @xstate/react deps',\n data: { aliasKeys: Object.keys(alias) },\n })\n // #endregion\n } else {\n // #region agent log\n _dbg({\n hypothesisId: 'fix',\n location: 'vite/index.ts:configPlugin.alias',\n message: 'failed to resolve any @xstate/react deps',\n data: { cwd: process.cwd() },\n })\n // #endregion\n }\n\n for (const mod of fsModules) {\n const isPromises = mod.includes('promises')\n const target = isPromises ? '@zenfs/core/promises' : '@zenfs/core'\n alias[mod] = target\n }\n\n // Merge with any existing aliases\n const existingAlias = userConfig.resolve?.alias\n if (Array.isArray(existingAlias)) {\n for (const [key, value] of Object.entries(alias)) {\n existingAlias.push({ find: key, replacement: value })\n }\n }\n\n const optimizeDeps: UserConfig['optimizeDeps'] = {\n ...(userConfig.optimizeDeps ?? {}),\n exclude: [\n ...(userConfig.optimizeDeps?.exclude ?? []),\n // Do not prebundle the SDK itself or clearly node-only tools\n '@seedprotocol/sdk',\n 'drizzle-kit',\n 'drizzle-orm',\n 'better-sqlite3',\n // sqlocal uses workers and should not be prebundled\n 'sqlocal',\n ],\n include: [\n ...(userConfig.optimizeDeps?.include ?? []),\n // Ensure ZenFS packages are discoverable\n '@zenfs/core',\n '@zenfs/dom',\n // Dependencies of @zenfs/core; must be pre-bundled for resolution\n 'kerium',\n 'utilium',\n 'memium',\n 'readable-stream',\n // viem dynamically imports isows; pre-bundle both so Rollup can resolve them\n 'viem',\n 'isows',\n // @xstate/react transitive deps; must be pre-bundled so Rollup can resolve them\n // (Bun/workspace layouts can leave these in virtual store, breaking resolution)\n 'use-isomorphic-layout-effect',\n 'use-sync-external-store',\n ],\n }\n\n // #region agent log\n _dbg({\n hypothesisId: 'A,B',\n location: 'vite/index.ts:configPlugin.config',\n message: 'configPlugin returning optimizeDeps',\n data: {\n optimizeDepsInclude: optimizeDeps.include,\n userOptimizeDepsInclude: userConfig.optimizeDeps?.include,\n },\n })\n // #endregion\n\n return {\n resolve: {\n alias,\n // Prevent duplicate React/thirdweb instances when @seedprotocol/publish is workspace-linked.\n // Multiple copies break context (e.g. useActiveAccount must be used within ThirdwebProvider).\n dedupe: ['react', 'react-dom', 'thirdweb'],\n },\n optimizeDeps,\n }\n },\n configResolved(resolvedConfig) {\n // #region agent log\n _dbg({\n hypothesisId: 'B',\n location: 'vite/index.ts:configPlugin.configResolved',\n message: 'final merged optimizeDeps',\n data: {\n include: resolvedConfig.optimizeDeps?.include,\n exclude: resolvedConfig.optimizeDeps?.exclude,\n },\n })\n // #endregion\n },\n }\n\n /**\n * Post-plugin: build configuration + optional ZenFS init.\n */\n const mainPlugin: Plugin = {\n name: 'seed-protocol:main',\n enforce: 'post',\n\n config(userConfig) {\n const existingBuild = userConfig.build ?? {}\n const existingCommonjs = existingBuild.commonjsOptions ?? {}\n const existingRollupOptions = existingBuild.rollupOptions ?? {}\n const existingExternal = existingRollupOptions.external ?? []\n\n const include = [\n // Anything the user already had\n ...(Array.isArray(existingCommonjs.include)\n ? existingCommonjs.include\n : existingCommonjs.include\n ? [existingCommonjs.include]\n : []),\n // Always process node_modules and the SDK dist so require() is transformed\n /node_modules/,\n /seed-protocol-sdk[\\\\/]+dist[\\\\/]/,\n ]\n\n // Exclude packages that are already ESM or have special worker handling\n const exclude = [\n ...(Array.isArray(existingCommonjs.exclude)\n ? existingCommonjs.exclude\n : existingCommonjs.exclude\n ? [existingCommonjs.exclude]\n : []),\n // sqlocal is ESM and uses workers - don't transform it\n /node_modules[\\\\/]+sqlocal[\\\\/]/,\n ]\n\n const commonjsOptions = {\n ...existingCommonjs,\n include,\n exclude,\n transformMixedEsModules: true,\n }\n\n // Externalize Node.js-only dev/build tools that should never be bundled\n const nodeOnlyPackages = [\n 'drizzle-kit',\n 'better-sqlite3', // Native SQLite binding (Node.js only)\n // Database drivers that drizzle-kit dynamically imports (should not be bundled)\n '@electric-sql/pglite',\n 'pg',\n 'postgres',\n '@vercel/postgres',\n '@neondatabase/serverless',\n 'mysql2',\n 'mysql2/promise',\n '@planetscale/database',\n ]\n\n const isNodeOnlyExternal = (id: string) =>\n nodeOnlyPackages.some(\n (pkg) =>\n id === pkg ||\n id.startsWith(`${pkg}/`) ||\n id.includes(`/${pkg}/`) ||\n id.endsWith(`/${pkg}`)\n )\n\n const externalList = (id: string, importer?: string, isResolved?: boolean) => {\n if (isNodeOnlyExternal(id)) return true\n if (typeof existingExternal === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (existingExternal as any)(id, importer, isResolved ?? false)\n }\n if (Array.isArray(existingExternal)) {\n return existingExternal.some((ext) => ext === id || id.startsWith(`${ext}/`))\n }\n return false\n }\n\n const rollupOptions = {\n ...existingRollupOptions,\n external: externalList,\n }\n\n const build = {\n ...existingBuild,\n commonjsOptions,\n rollupOptions,\n }\n\n // Worker options are TOP-LEVEL in Vite config, not under build.\n // Default 'iife' breaks when workers use code-splitting (e.g. sqlocal).\n const existingWorker = userConfig.worker ?? {}\n const worker = {\n ...existingWorker,\n format: existingWorker.format ?? 'es',\n }\n\n return {\n build,\n worker,\n }\n },\n\n transformIndexHtml(html) {\n if (!autoInit) return html\n\n const initScript = `\n<script type=\"module\">\nimport { configure } from '@zenfs/core';\nimport { IndexedDB } from '@zenfs/dom';\n\nif (!window.__seedFsReady) {\n window.__seedFsReady = configure({\n mounts: { '/': IndexedDB },\n }).catch((err) => {\n console.error('[seed-vite-plugin] ZenFS initialization failed', err);\n });\n}\n</script>`\n\n if (html.includes('</head>')) {\n return html.replace('</head>', `${initScript}\\n</head>`)\n }\n\n return html + initScript\n },\n }\n\n const resolveXstateDepsPlugin: Plugin = {\n name: 'seed-protocol:resolve-xstate-deps',\n enforce: 'pre',\n resolveId(id, importer) {\n if (id === 'use-isomorphic-layout-effect' || id.startsWith('use-sync-external-store')) {\n const resolved = resolveXstateDep(id, importer)\n if (resolved) {\n // #region agent log\n _dbg({\n hypothesisId: 'fix',\n location: 'vite/index.ts:resolveXstateDepsPlugin',\n message: 'resolved @xstate/react dep',\n data: { id, resolved },\n })\n // #endregion\n return resolved\n }\n // #region agent log\n _dbg({\n hypothesisId: 'fix',\n location: 'vite/index.ts:resolveXstateDepsPlugin',\n message: 'failed to resolve @xstate/react dep',\n data: { id, importer: importer ?? 'unknown' },\n })\n // #endregion\n }\n return null\n },\n }\n\n const plugins: Plugin[] = [configPlugin, resolveXstateDepsPlugin, mainPlugin]\n\n if (includeNodePolyfills) {\n log('Including vite-plugin-node-polyfills with default settings')\n plugins.push(\n nodePolyfills({\n // Let fs be handled by @zenfs/core instead of polyfills\n exclude: ['readline',],\n // Common set of browser-friendly polyfills used by many deps\n include: ['path', 'crypto', 'stream', 'util', 'buffer', 'events', 'string_decoder',],\n globals: {\n Buffer: true,\n global: true,\n process: true,\n },\n protocolImports: true,\n }) as unknown as Plugin,\n )\n }\n\n return plugins\n}\n"],"names":["createRequire","fileURLToPath","nodePolyfills"],"mappings":"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"}
1
+ {"version":3,"file":"vite.cjs","sources":["../../src/vite/index.ts"],"sourcesContent":["import type { Plugin, UserConfig } from 'vite'\nimport { createRequire } from 'node:module'\nimport path from 'node:path'\nimport { fileURLToPath } from 'node:url'\nimport { nodePolyfills } from 'vite-plugin-node-polyfills'\n\nconst _req = createRequire(import.meta.url)\n\nexport interface SeedVitePluginOptions {\n /**\n * Additional modules to alias to ZenFS equivalents.\n * @default ['fs', 'fs/promises', 'node:fs', 'node:fs/promises']\n */\n fsModules?: string[]\n\n /**\n * Whether to inject automatic ZenFS initialization script into index.html.\n * When true, injects a &lt;script type=\"module\"&gt; that imports from '@zenfs/core'/'@zenfs/dom'.\n * Browsers cannot resolve those bare specifiers, so the script fails at runtime unless you use\n * an import map or load ZenFS another way. Prefer false and initialize ZenFS in your entry:\n * import { configure } from '@zenfs/core'; import { IndexedDB } from '@zenfs/dom';\n * await configure({ mounts: { '/': IndexedDB } });\n * @default false\n */\n autoInit?: boolean\n\n /**\n * Enable debug logging.\n * @default false\n */\n debug?: boolean\n\n /**\n * Whether to automatically include vite-plugin-node-polyfills with sensible defaults.\n * @default true\n */\n includeNodePolyfills?: boolean\n}\n\nconst DEFAULT_FS_MODULES = [\n 'fs',\n 'fs/promises',\n 'node:fs',\n 'node:fs/promises',\n]\n\n/**\n * Minimal Vite plugin to make the SDK work in browser/Electron renderer:\n * - Aliases fs → @zenfs/core (and promises variant)\n * - Aliases path → path-browserify\n * - Ensures CommonJS in SDK dist is transformed by Vite's CommonJS plugin\n * - Optionally injects a simple ZenFS initialization script\n * - Optionally wires up vite-plugin-node-polyfills with safe defaults\n *\n * This plugin assumes the SDK does not bundle Node-only code in the browser entry.\n * For Electron, Node-only work (e.g. drizzle-kit, better-sqlite3) should run in the\n * main process; the renderer should only use browser-safe SDK usage.\n *\n * For the renderer build:\n * - Use the SDK's ESM entry: import from '@seedprotocol/sdk' (resolves to dist/main.js).\n * - When autoInit is false (default), initialize ZenFS in your entry:\n * import { configure } from '@zenfs/core'; import { IndexedDB } from '@zenfs/dom';\n * await configure({ mounts: { '/': IndexedDB } });\n */\nexport function seedVitePlugin(options: SeedVitePluginOptions = {}): Plugin[] {\n const {\n fsModules = DEFAULT_FS_MODULES,\n autoInit = false,\n debug = false,\n includeNodePolyfills = true,\n } = options\n\n const log = (...args: unknown[]) => {\n }\n\n /**\n * Pre-plugin: configure aliases and optimizeDeps.\n */\n const configPlugin: Plugin = {\n name: 'seed-protocol:config',\n enforce: 'pre',\n\n config(userConfig) {\n const alias: Record<string, string> = {\n // Always use browser-friendly path implementation\n // path: 'path-browserify',\n }\n\n\n for (const mod of fsModules) {\n const isPromises = mod.includes('promises')\n const target = isPromises ? '@zenfs/core/promises' : '@zenfs/core'\n alias[mod] = target\n }\n\n // Merge with any existing aliases\n const existingAlias = userConfig.resolve?.alias\n if (Array.isArray(existingAlias)) {\n for (const [key, value] of Object.entries(alias)) {\n existingAlias.push({ find: key, replacement: value })\n }\n }\n\n const optimizeDeps: UserConfig['optimizeDeps'] = {\n ...(userConfig.optimizeDeps ?? {}),\n exclude: [\n ...(userConfig.optimizeDeps?.exclude ?? []),\n // Do not prebundle the SDK itself or clearly node-only tools\n '@seedprotocol/sdk',\n 'drizzle-kit',\n 'drizzle-orm',\n 'better-sqlite3',\n // sqlocal uses workers and should not be prebundled\n 'sqlocal',\n ],\n include: [\n ...(userConfig.optimizeDeps?.include ?? []),\n // Ensure ZenFS packages are discoverable\n '@zenfs/core',\n '@zenfs/dom',\n // Dependencies of @zenfs/core; must be pre-bundled for resolution\n 'kerium',\n 'utilium',\n 'memium',\n 'readable-stream',\n // viem dynamically imports isows; pre-bundle both so Rollup can resolve them\n 'viem',\n 'isows',\n ],\n }\n\n return {\n resolve: {\n alias,\n // Prevent duplicate React/thirdweb instances when @seedprotocol/publish is workspace-linked.\n // Multiple copies break context (e.g. useActiveAccount must be used within ThirdwebProvider).\n dedupe: ['react', 'react-dom', 'thirdweb'],\n },\n optimizeDeps,\n }\n },\n }\n\n /**\n * Post-plugin: build configuration + optional ZenFS init.\n */\n const mainPlugin: Plugin = {\n name: 'seed-protocol:main',\n enforce: 'post',\n\n config(userConfig) {\n const existingBuild = userConfig.build ?? {}\n const existingCommonjs = existingBuild.commonjsOptions ?? {}\n const existingRollupOptions = existingBuild.rollupOptions ?? {}\n const existingExternal = existingRollupOptions.external ?? []\n\n const include = [\n // Anything the user already had\n ...(Array.isArray(existingCommonjs.include)\n ? existingCommonjs.include\n : existingCommonjs.include\n ? [existingCommonjs.include]\n : []),\n // Always process node_modules and the SDK dist so require() is transformed\n /node_modules/,\n /seed-protocol-sdk[\\\\/]+dist[\\\\/]/,\n ]\n\n // Exclude packages that are already ESM or have special worker handling\n const exclude = [\n ...(Array.isArray(existingCommonjs.exclude)\n ? existingCommonjs.exclude\n : existingCommonjs.exclude\n ? [existingCommonjs.exclude]\n : []),\n // sqlocal is ESM and uses workers - don't transform it\n /node_modules[\\\\/]+sqlocal[\\\\/]/,\n ]\n\n const commonjsOptions = {\n ...existingCommonjs,\n include,\n exclude,\n transformMixedEsModules: true,\n }\n\n // Externalize Node.js-only dev/build tools that should never be bundled\n const nodeOnlyPackages = [\n 'drizzle-kit',\n 'better-sqlite3', // Native SQLite binding (Node.js only)\n // Database drivers that drizzle-kit dynamically imports (should not be bundled)\n '@electric-sql/pglite',\n 'pg',\n 'postgres',\n '@vercel/postgres',\n '@neondatabase/serverless',\n 'mysql2',\n 'mysql2/promise',\n '@planetscale/database',\n ]\n\n const isNodeOnlyExternal = (id: string) =>\n nodeOnlyPackages.some(\n (pkg) =>\n id === pkg ||\n id.startsWith(`${pkg}/`) ||\n id.includes(`/${pkg}/`) ||\n id.endsWith(`/${pkg}`)\n )\n\n const externalList = (id: string, importer?: string, isResolved?: boolean) => {\n if (isNodeOnlyExternal(id)) return true\n if (typeof existingExternal === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (existingExternal as any)(id, importer, isResolved ?? false)\n }\n if (Array.isArray(existingExternal)) {\n return existingExternal.some((ext) => ext === id || id.startsWith(`${ext}/`))\n }\n return false\n }\n\n const rollupOptions = {\n ...existingRollupOptions,\n external: externalList,\n }\n\n const build = {\n ...existingBuild,\n commonjsOptions,\n rollupOptions,\n }\n\n // Worker options are TOP-LEVEL in Vite config, not under build.\n // Default 'iife' breaks when workers use code-splitting (e.g. sqlocal).\n const existingWorker = userConfig.worker ?? {}\n const worker = {\n ...existingWorker,\n format: existingWorker.format ?? 'es',\n }\n\n return {\n build,\n worker,\n }\n },\n\n transformIndexHtml(html) {\n if (!autoInit) return html\n\n const initScript = `\n<script type=\"module\">\nimport { configure } from '@zenfs/core';\nimport { IndexedDB } from '@zenfs/dom';\n\nif (!window.__seedFsReady) {\n window.__seedFsReady = configure({\n mounts: { '/': IndexedDB },\n }).catch((err) => {\n console.error('[seed-vite-plugin] ZenFS initialization failed', err);\n });\n}\n</script>`\n\n if (html.includes('</head>')) {\n return html.replace('</head>', `${initScript}\\n</head>`)\n }\n\n return html + initScript\n },\n }\n\n const plugins: Plugin[] = [configPlugin, mainPlugin]\n\n if (includeNodePolyfills) {\n log('Including vite-plugin-node-polyfills with default settings')\n plugins.push(\n nodePolyfills({\n // Let fs be handled by @zenfs/core instead of polyfills\n exclude: ['readline',],\n // Common set of browser-friendly polyfills used by many deps\n include: ['path', 'crypto', 'stream', 'util', 'buffer', 'events', 'string_decoder',],\n globals: {\n Buffer: true,\n global: true,\n process: true,\n },\n protocolImports: true,\n }) as unknown as Plugin,\n )\n }\n\n return plugins\n}\n"],"names":["createRequire","nodePolyfills"],"mappings":"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"}
package/dist/vite.js CHANGED
@@ -1,42 +1,7 @@
1
1
  import { createRequire } from 'node:module';
2
- import path from 'node:path';
3
- import { fileURLToPath } from 'node:url';
4
2
  import { nodePolyfills } from 'vite-plugin-node-polyfills';
5
3
 
6
- const _req = createRequire(import.meta.url);
7
- function resolveXstateDep(id, importer) {
8
- const searchPaths = [process.cwd()];
9
- if (importer) {
10
- let dir = path.dirname(importer);
11
- for (let i = 0; i < 5 && dir; i++) {
12
- searchPaths.push(dir);
13
- dir = path.dirname(dir);
14
- }
15
- }
16
- const sdkDir = path.resolve(fileURLToPath(import.meta.url), '../../..');
17
- searchPaths.push(sdkDir, path.resolve(sdkDir, '../..'));
18
- for (const dir of searchPaths) {
19
- try {
20
- return _req.resolve(id, { paths: [dir] });
21
- }
22
- catch {
23
- continue;
24
- }
25
- }
26
- return null;
27
- }
28
- // #region agent log
29
- const _dbg = (d) => {
30
- fetch('http://127.0.0.1:7242/ingest/0978b378-ebae-46bf-8fd3-134ef2e16cdd', {
31
- method: 'POST',
32
- headers: { 'Content-Type': 'application/json', 'X-Debug-Session-Id': '73e96f' },
33
- body: JSON.stringify({
34
- sessionId: '73e96f',
35
- ...d,
36
- timestamp: Date.now(),
37
- }),
38
- }).catch(() => { });
39
- };
4
+ createRequire(import.meta.url);
40
5
  const DEFAULT_FS_MODULES = [
41
6
  'fs',
42
7
  'fs/promises',
@@ -62,14 +27,6 @@ const DEFAULT_FS_MODULES = [
62
27
  * await configure({ mounts: { '/': IndexedDB } });
63
28
  */
64
29
  function seedVitePlugin(options = {}) {
65
- // #region agent log
66
- _dbg({
67
- hypothesisId: 'D',
68
- location: 'vite/index.ts:seedVitePlugin',
69
- message: 'seedVitePlugin loaded',
70
- data: { options: Object.keys(options) },
71
- });
72
- // #endregion
73
30
  const { fsModules = DEFAULT_FS_MODULES, autoInit = false, debug = false, includeNodePolyfills = true, } = options;
74
31
  /**
75
32
  * Pre-plugin: configure aliases and optimizeDeps.
@@ -82,31 +39,6 @@ function seedVitePlugin(options = {}) {
82
39
  // Always use browser-friendly path implementation
83
40
  // path: 'path-browserify',
84
41
  };
85
- // Resolve @xstate/react transitive deps for production builds (optimizeDeps only helps dev).
86
- // Bun/workspace layouts can leave these in virtual store; Rollup fails to resolve them.
87
- const xstateDepIds = [
88
- 'use-isomorphic-layout-effect',
89
- 'use-sync-external-store',
90
- 'use-sync-external-store/shim',
91
- 'use-sync-external-store/shim/with-selector',
92
- ];
93
- for (const id of xstateDepIds) {
94
- // const resolved = resolveXstateDep(id)
95
- // if (resolved) {
96
- // alias[id] = resolved
97
- // xstateResolved++
98
- // }
99
- }
100
- {
101
- // #region agent log
102
- _dbg({
103
- hypothesisId: 'fix',
104
- location: 'vite/index.ts:configPlugin.alias',
105
- message: 'failed to resolve any @xstate/react deps',
106
- data: { cwd: process.cwd() },
107
- });
108
- // #endregion
109
- }
110
42
  for (const mod of fsModules) {
111
43
  const isPromises = mod.includes('promises');
112
44
  const target = isPromises ? '@zenfs/core/promises' : '@zenfs/core';
@@ -144,23 +76,8 @@ function seedVitePlugin(options = {}) {
144
76
  // viem dynamically imports isows; pre-bundle both so Rollup can resolve them
145
77
  'viem',
146
78
  'isows',
147
- // @xstate/react transitive deps; must be pre-bundled so Rollup can resolve them
148
- // (Bun/workspace layouts can leave these in virtual store, breaking resolution)
149
- 'use-isomorphic-layout-effect',
150
- 'use-sync-external-store',
151
79
  ],
152
80
  };
153
- // #region agent log
154
- _dbg({
155
- hypothesisId: 'A,B',
156
- location: 'vite/index.ts:configPlugin.config',
157
- message: 'configPlugin returning optimizeDeps',
158
- data: {
159
- optimizeDepsInclude: optimizeDeps.include,
160
- userOptimizeDepsInclude: userConfig.optimizeDeps?.include,
161
- },
162
- });
163
- // #endregion
164
81
  return {
165
82
  resolve: {
166
83
  alias,
@@ -171,19 +88,6 @@ function seedVitePlugin(options = {}) {
171
88
  optimizeDeps,
172
89
  };
173
90
  },
174
- configResolved(resolvedConfig) {
175
- // #region agent log
176
- _dbg({
177
- hypothesisId: 'B',
178
- location: 'vite/index.ts:configPlugin.configResolved',
179
- message: 'final merged optimizeDeps',
180
- data: {
181
- include: resolvedConfig.optimizeDeps?.include,
182
- exclude: resolvedConfig.optimizeDeps?.exclude,
183
- },
184
- });
185
- // #endregion
186
- },
187
91
  };
188
92
  /**
189
93
  * Post-plugin: build configuration + optional ZenFS init.
@@ -296,36 +200,7 @@ if (!window.__seedFsReady) {
296
200
  return html + initScript;
297
201
  },
298
202
  };
299
- const resolveXstateDepsPlugin = {
300
- name: 'seed-protocol:resolve-xstate-deps',
301
- enforce: 'pre',
302
- resolveId(id, importer) {
303
- if (id === 'use-isomorphic-layout-effect' || id.startsWith('use-sync-external-store')) {
304
- const resolved = resolveXstateDep(id, importer);
305
- if (resolved) {
306
- // #region agent log
307
- _dbg({
308
- hypothesisId: 'fix',
309
- location: 'vite/index.ts:resolveXstateDepsPlugin',
310
- message: 'resolved @xstate/react dep',
311
- data: { id, resolved },
312
- });
313
- // #endregion
314
- return resolved;
315
- }
316
- // #region agent log
317
- _dbg({
318
- hypothesisId: 'fix',
319
- location: 'vite/index.ts:resolveXstateDepsPlugin',
320
- message: 'failed to resolve @xstate/react dep',
321
- data: { id, importer: importer ?? 'unknown' },
322
- });
323
- // #endregion
324
- }
325
- return null;
326
- },
327
- };
328
- const plugins = [configPlugin, resolveXstateDepsPlugin, mainPlugin];
203
+ const plugins = [configPlugin, mainPlugin];
329
204
  if (includeNodePolyfills) {
330
205
  plugins.push(nodePolyfills({
331
206
  // Let fs be handled by @zenfs/core instead of polyfills
package/dist/vite.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"vite.js","sources":["../../src/vite/index.ts"],"sourcesContent":["import type { Plugin, UserConfig } from 'vite'\nimport { createRequire } from 'node:module'\nimport path from 'node:path'\nimport { fileURLToPath } from 'node:url'\nimport { nodePolyfills } from 'vite-plugin-node-polyfills'\n\nconst _req = createRequire(import.meta.url)\n\nfunction resolveXstateDep(id: string, importer?: string): string | null {\n const searchPaths: string[] = [process.cwd()]\n if (importer) {\n let dir = path.dirname(importer)\n for (let i = 0; i < 5 && dir; i++) {\n searchPaths.push(dir)\n dir = path.dirname(dir)\n }\n }\n const sdkDir = path.resolve(fileURLToPath(import.meta.url), '../../..')\n searchPaths.push(sdkDir, path.resolve(sdkDir, '../..'))\n for (const dir of searchPaths) {\n try {\n return _req.resolve(id, { paths: [dir] })\n } catch {\n continue\n }\n }\n return null\n}\n\n// #region agent log\nconst _dbg = (d: { hypothesisId?: string; location: string; message: string; data?: object }) => {\n fetch('http://127.0.0.1:7242/ingest/0978b378-ebae-46bf-8fd3-134ef2e16cdd', {\n method: 'POST',\n headers: { 'Content-Type': 'application/json', 'X-Debug-Session-Id': '73e96f' },\n body: JSON.stringify({\n sessionId: '73e96f',\n ...d,\n timestamp: Date.now(),\n }),\n }).catch(() => {})\n}\n// #endregion\n\nexport interface SeedVitePluginOptions {\n /**\n * Additional modules to alias to ZenFS equivalents.\n * @default ['fs', 'fs/promises', 'node:fs', 'node:fs/promises']\n */\n fsModules?: string[]\n\n /**\n * Whether to inject automatic ZenFS initialization script into index.html.\n * When true, injects a &lt;script type=\"module\"&gt; that imports from '@zenfs/core'/'@zenfs/dom'.\n * Browsers cannot resolve those bare specifiers, so the script fails at runtime unless you use\n * an import map or load ZenFS another way. Prefer false and initialize ZenFS in your entry:\n * import { configure } from '@zenfs/core'; import { IndexedDB } from '@zenfs/dom';\n * await configure({ mounts: { '/': IndexedDB } });\n * @default false\n */\n autoInit?: boolean\n\n /**\n * Enable debug logging.\n * @default false\n */\n debug?: boolean\n\n /**\n * Whether to automatically include vite-plugin-node-polyfills with sensible defaults.\n * @default true\n */\n includeNodePolyfills?: boolean\n}\n\nconst DEFAULT_FS_MODULES = [\n 'fs',\n 'fs/promises',\n 'node:fs',\n 'node:fs/promises',\n]\n\n/**\n * Minimal Vite plugin to make the SDK work in browser/Electron renderer:\n * - Aliases fs → @zenfs/core (and promises variant)\n * - Aliases path → path-browserify\n * - Ensures CommonJS in SDK dist is transformed by Vite's CommonJS plugin\n * - Optionally injects a simple ZenFS initialization script\n * - Optionally wires up vite-plugin-node-polyfills with safe defaults\n *\n * This plugin assumes the SDK does not bundle Node-only code in the browser entry.\n * For Electron, Node-only work (e.g. drizzle-kit, better-sqlite3) should run in the\n * main process; the renderer should only use browser-safe SDK usage.\n *\n * For the renderer build:\n * - Use the SDK's ESM entry: import from '@seedprotocol/sdk' (resolves to dist/main.js).\n * - When autoInit is false (default), initialize ZenFS in your entry:\n * import { configure } from '@zenfs/core'; import { IndexedDB } from '@zenfs/dom';\n * await configure({ mounts: { '/': IndexedDB } });\n */\nexport function seedVitePlugin(options: SeedVitePluginOptions = {}): Plugin[] {\n // #region agent log\n _dbg({\n hypothesisId: 'D',\n location: 'vite/index.ts:seedVitePlugin',\n message: 'seedVitePlugin loaded',\n data: { options: Object.keys(options) },\n })\n // #endregion\n const {\n fsModules = DEFAULT_FS_MODULES,\n autoInit = false,\n debug = false,\n includeNodePolyfills = true,\n } = options\n\n const log = (...args: unknown[]) => {\n }\n\n /**\n * Pre-plugin: configure aliases and optimizeDeps.\n */\n const configPlugin: Plugin = {\n name: 'seed-protocol:config',\n enforce: 'pre',\n\n config(userConfig) {\n const alias: Record<string, string> = {\n // Always use browser-friendly path implementation\n // path: 'path-browserify',\n }\n\n // Resolve @xstate/react transitive deps for production builds (optimizeDeps only helps dev).\n // Bun/workspace layouts can leave these in virtual store; Rollup fails to resolve them.\n const xstateDepIds = [\n 'use-isomorphic-layout-effect',\n 'use-sync-external-store',\n 'use-sync-external-store/shim',\n 'use-sync-external-store/shim/with-selector',\n ]\n let xstateResolved = 0\n for (const id of xstateDepIds) {\n // const resolved = resolveXstateDep(id)\n // if (resolved) {\n // alias[id] = resolved\n // xstateResolved++\n // }\n }\n if (xstateResolved > 0) {\n // #region agent log\n _dbg({\n hypothesisId: 'fix',\n location: 'vite/index.ts:configPlugin.alias',\n message: 'resolve.alias added for @xstate/react deps',\n data: { aliasKeys: Object.keys(alias) },\n })\n // #endregion\n } else {\n // #region agent log\n _dbg({\n hypothesisId: 'fix',\n location: 'vite/index.ts:configPlugin.alias',\n message: 'failed to resolve any @xstate/react deps',\n data: { cwd: process.cwd() },\n })\n // #endregion\n }\n\n for (const mod of fsModules) {\n const isPromises = mod.includes('promises')\n const target = isPromises ? '@zenfs/core/promises' : '@zenfs/core'\n alias[mod] = target\n }\n\n // Merge with any existing aliases\n const existingAlias = userConfig.resolve?.alias\n if (Array.isArray(existingAlias)) {\n for (const [key, value] of Object.entries(alias)) {\n existingAlias.push({ find: key, replacement: value })\n }\n }\n\n const optimizeDeps: UserConfig['optimizeDeps'] = {\n ...(userConfig.optimizeDeps ?? {}),\n exclude: [\n ...(userConfig.optimizeDeps?.exclude ?? []),\n // Do not prebundle the SDK itself or clearly node-only tools\n '@seedprotocol/sdk',\n 'drizzle-kit',\n 'drizzle-orm',\n 'better-sqlite3',\n // sqlocal uses workers and should not be prebundled\n 'sqlocal',\n ],\n include: [\n ...(userConfig.optimizeDeps?.include ?? []),\n // Ensure ZenFS packages are discoverable\n '@zenfs/core',\n '@zenfs/dom',\n // Dependencies of @zenfs/core; must be pre-bundled for resolution\n 'kerium',\n 'utilium',\n 'memium',\n 'readable-stream',\n // viem dynamically imports isows; pre-bundle both so Rollup can resolve them\n 'viem',\n 'isows',\n // @xstate/react transitive deps; must be pre-bundled so Rollup can resolve them\n // (Bun/workspace layouts can leave these in virtual store, breaking resolution)\n 'use-isomorphic-layout-effect',\n 'use-sync-external-store',\n ],\n }\n\n // #region agent log\n _dbg({\n hypothesisId: 'A,B',\n location: 'vite/index.ts:configPlugin.config',\n message: 'configPlugin returning optimizeDeps',\n data: {\n optimizeDepsInclude: optimizeDeps.include,\n userOptimizeDepsInclude: userConfig.optimizeDeps?.include,\n },\n })\n // #endregion\n\n return {\n resolve: {\n alias,\n // Prevent duplicate React/thirdweb instances when @seedprotocol/publish is workspace-linked.\n // Multiple copies break context (e.g. useActiveAccount must be used within ThirdwebProvider).\n dedupe: ['react', 'react-dom', 'thirdweb'],\n },\n optimizeDeps,\n }\n },\n configResolved(resolvedConfig) {\n // #region agent log\n _dbg({\n hypothesisId: 'B',\n location: 'vite/index.ts:configPlugin.configResolved',\n message: 'final merged optimizeDeps',\n data: {\n include: resolvedConfig.optimizeDeps?.include,\n exclude: resolvedConfig.optimizeDeps?.exclude,\n },\n })\n // #endregion\n },\n }\n\n /**\n * Post-plugin: build configuration + optional ZenFS init.\n */\n const mainPlugin: Plugin = {\n name: 'seed-protocol:main',\n enforce: 'post',\n\n config(userConfig) {\n const existingBuild = userConfig.build ?? {}\n const existingCommonjs = existingBuild.commonjsOptions ?? {}\n const existingRollupOptions = existingBuild.rollupOptions ?? {}\n const existingExternal = existingRollupOptions.external ?? []\n\n const include = [\n // Anything the user already had\n ...(Array.isArray(existingCommonjs.include)\n ? existingCommonjs.include\n : existingCommonjs.include\n ? [existingCommonjs.include]\n : []),\n // Always process node_modules and the SDK dist so require() is transformed\n /node_modules/,\n /seed-protocol-sdk[\\\\/]+dist[\\\\/]/,\n ]\n\n // Exclude packages that are already ESM or have special worker handling\n const exclude = [\n ...(Array.isArray(existingCommonjs.exclude)\n ? existingCommonjs.exclude\n : existingCommonjs.exclude\n ? [existingCommonjs.exclude]\n : []),\n // sqlocal is ESM and uses workers - don't transform it\n /node_modules[\\\\/]+sqlocal[\\\\/]/,\n ]\n\n const commonjsOptions = {\n ...existingCommonjs,\n include,\n exclude,\n transformMixedEsModules: true,\n }\n\n // Externalize Node.js-only dev/build tools that should never be bundled\n const nodeOnlyPackages = [\n 'drizzle-kit',\n 'better-sqlite3', // Native SQLite binding (Node.js only)\n // Database drivers that drizzle-kit dynamically imports (should not be bundled)\n '@electric-sql/pglite',\n 'pg',\n 'postgres',\n '@vercel/postgres',\n '@neondatabase/serverless',\n 'mysql2',\n 'mysql2/promise',\n '@planetscale/database',\n ]\n\n const isNodeOnlyExternal = (id: string) =>\n nodeOnlyPackages.some(\n (pkg) =>\n id === pkg ||\n id.startsWith(`${pkg}/`) ||\n id.includes(`/${pkg}/`) ||\n id.endsWith(`/${pkg}`)\n )\n\n const externalList = (id: string, importer?: string, isResolved?: boolean) => {\n if (isNodeOnlyExternal(id)) return true\n if (typeof existingExternal === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (existingExternal as any)(id, importer, isResolved ?? false)\n }\n if (Array.isArray(existingExternal)) {\n return existingExternal.some((ext) => ext === id || id.startsWith(`${ext}/`))\n }\n return false\n }\n\n const rollupOptions = {\n ...existingRollupOptions,\n external: externalList,\n }\n\n const build = {\n ...existingBuild,\n commonjsOptions,\n rollupOptions,\n }\n\n // Worker options are TOP-LEVEL in Vite config, not under build.\n // Default 'iife' breaks when workers use code-splitting (e.g. sqlocal).\n const existingWorker = userConfig.worker ?? {}\n const worker = {\n ...existingWorker,\n format: existingWorker.format ?? 'es',\n }\n\n return {\n build,\n worker,\n }\n },\n\n transformIndexHtml(html) {\n if (!autoInit) return html\n\n const initScript = `\n<script type=\"module\">\nimport { configure } from '@zenfs/core';\nimport { IndexedDB } from '@zenfs/dom';\n\nif (!window.__seedFsReady) {\n window.__seedFsReady = configure({\n mounts: { '/': IndexedDB },\n }).catch((err) => {\n console.error('[seed-vite-plugin] ZenFS initialization failed', err);\n });\n}\n</script>`\n\n if (html.includes('</head>')) {\n return html.replace('</head>', `${initScript}\\n</head>`)\n }\n\n return html + initScript\n },\n }\n\n const resolveXstateDepsPlugin: Plugin = {\n name: 'seed-protocol:resolve-xstate-deps',\n enforce: 'pre',\n resolveId(id, importer) {\n if (id === 'use-isomorphic-layout-effect' || id.startsWith('use-sync-external-store')) {\n const resolved = resolveXstateDep(id, importer)\n if (resolved) {\n // #region agent log\n _dbg({\n hypothesisId: 'fix',\n location: 'vite/index.ts:resolveXstateDepsPlugin',\n message: 'resolved @xstate/react dep',\n data: { id, resolved },\n })\n // #endregion\n return resolved\n }\n // #region agent log\n _dbg({\n hypothesisId: 'fix',\n location: 'vite/index.ts:resolveXstateDepsPlugin',\n message: 'failed to resolve @xstate/react dep',\n data: { id, importer: importer ?? 'unknown' },\n })\n // #endregion\n }\n return null\n },\n }\n\n const plugins: Plugin[] = [configPlugin, resolveXstateDepsPlugin, mainPlugin]\n\n if (includeNodePolyfills) {\n log('Including vite-plugin-node-polyfills with default settings')\n plugins.push(\n nodePolyfills({\n // Let fs be handled by @zenfs/core instead of polyfills\n exclude: ['readline',],\n // Common set of browser-friendly polyfills used by many deps\n include: ['path', 'crypto', 'stream', 'util', 'buffer', 'events', 'string_decoder',],\n globals: {\n Buffer: true,\n global: true,\n process: true,\n },\n protocolImports: true,\n }) as unknown as Plugin,\n )\n }\n\n return plugins\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vite.js","sources":["../../src/vite/index.ts"],"sourcesContent":["import type { Plugin, UserConfig } from 'vite'\nimport { createRequire } from 'node:module'\nimport path from 'node:path'\nimport { fileURLToPath } from 'node:url'\nimport { nodePolyfills } from 'vite-plugin-node-polyfills'\n\nconst _req = createRequire(import.meta.url)\n\nexport interface SeedVitePluginOptions {\n /**\n * Additional modules to alias to ZenFS equivalents.\n * @default ['fs', 'fs/promises', 'node:fs', 'node:fs/promises']\n */\n fsModules?: string[]\n\n /**\n * Whether to inject automatic ZenFS initialization script into index.html.\n * When true, injects a &lt;script type=\"module\"&gt; that imports from '@zenfs/core'/'@zenfs/dom'.\n * Browsers cannot resolve those bare specifiers, so the script fails at runtime unless you use\n * an import map or load ZenFS another way. Prefer false and initialize ZenFS in your entry:\n * import { configure } from '@zenfs/core'; import { IndexedDB } from '@zenfs/dom';\n * await configure({ mounts: { '/': IndexedDB } });\n * @default false\n */\n autoInit?: boolean\n\n /**\n * Enable debug logging.\n * @default false\n */\n debug?: boolean\n\n /**\n * Whether to automatically include vite-plugin-node-polyfills with sensible defaults.\n * @default true\n */\n includeNodePolyfills?: boolean\n}\n\nconst DEFAULT_FS_MODULES = [\n 'fs',\n 'fs/promises',\n 'node:fs',\n 'node:fs/promises',\n]\n\n/**\n * Minimal Vite plugin to make the SDK work in browser/Electron renderer:\n * - Aliases fs → @zenfs/core (and promises variant)\n * - Aliases path → path-browserify\n * - Ensures CommonJS in SDK dist is transformed by Vite's CommonJS plugin\n * - Optionally injects a simple ZenFS initialization script\n * - Optionally wires up vite-plugin-node-polyfills with safe defaults\n *\n * This plugin assumes the SDK does not bundle Node-only code in the browser entry.\n * For Electron, Node-only work (e.g. drizzle-kit, better-sqlite3) should run in the\n * main process; the renderer should only use browser-safe SDK usage.\n *\n * For the renderer build:\n * - Use the SDK's ESM entry: import from '@seedprotocol/sdk' (resolves to dist/main.js).\n * - When autoInit is false (default), initialize ZenFS in your entry:\n * import { configure } from '@zenfs/core'; import { IndexedDB } from '@zenfs/dom';\n * await configure({ mounts: { '/': IndexedDB } });\n */\nexport function seedVitePlugin(options: SeedVitePluginOptions = {}): Plugin[] {\n const {\n fsModules = DEFAULT_FS_MODULES,\n autoInit = false,\n debug = false,\n includeNodePolyfills = true,\n } = options\n\n const log = (...args: unknown[]) => {\n }\n\n /**\n * Pre-plugin: configure aliases and optimizeDeps.\n */\n const configPlugin: Plugin = {\n name: 'seed-protocol:config',\n enforce: 'pre',\n\n config(userConfig) {\n const alias: Record<string, string> = {\n // Always use browser-friendly path implementation\n // path: 'path-browserify',\n }\n\n\n for (const mod of fsModules) {\n const isPromises = mod.includes('promises')\n const target = isPromises ? '@zenfs/core/promises' : '@zenfs/core'\n alias[mod] = target\n }\n\n // Merge with any existing aliases\n const existingAlias = userConfig.resolve?.alias\n if (Array.isArray(existingAlias)) {\n for (const [key, value] of Object.entries(alias)) {\n existingAlias.push({ find: key, replacement: value })\n }\n }\n\n const optimizeDeps: UserConfig['optimizeDeps'] = {\n ...(userConfig.optimizeDeps ?? {}),\n exclude: [\n ...(userConfig.optimizeDeps?.exclude ?? []),\n // Do not prebundle the SDK itself or clearly node-only tools\n '@seedprotocol/sdk',\n 'drizzle-kit',\n 'drizzle-orm',\n 'better-sqlite3',\n // sqlocal uses workers and should not be prebundled\n 'sqlocal',\n ],\n include: [\n ...(userConfig.optimizeDeps?.include ?? []),\n // Ensure ZenFS packages are discoverable\n '@zenfs/core',\n '@zenfs/dom',\n // Dependencies of @zenfs/core; must be pre-bundled for resolution\n 'kerium',\n 'utilium',\n 'memium',\n 'readable-stream',\n // viem dynamically imports isows; pre-bundle both so Rollup can resolve them\n 'viem',\n 'isows',\n ],\n }\n\n return {\n resolve: {\n alias,\n // Prevent duplicate React/thirdweb instances when @seedprotocol/publish is workspace-linked.\n // Multiple copies break context (e.g. useActiveAccount must be used within ThirdwebProvider).\n dedupe: ['react', 'react-dom', 'thirdweb'],\n },\n optimizeDeps,\n }\n },\n }\n\n /**\n * Post-plugin: build configuration + optional ZenFS init.\n */\n const mainPlugin: Plugin = {\n name: 'seed-protocol:main',\n enforce: 'post',\n\n config(userConfig) {\n const existingBuild = userConfig.build ?? {}\n const existingCommonjs = existingBuild.commonjsOptions ?? {}\n const existingRollupOptions = existingBuild.rollupOptions ?? {}\n const existingExternal = existingRollupOptions.external ?? []\n\n const include = [\n // Anything the user already had\n ...(Array.isArray(existingCommonjs.include)\n ? existingCommonjs.include\n : existingCommonjs.include\n ? [existingCommonjs.include]\n : []),\n // Always process node_modules and the SDK dist so require() is transformed\n /node_modules/,\n /seed-protocol-sdk[\\\\/]+dist[\\\\/]/,\n ]\n\n // Exclude packages that are already ESM or have special worker handling\n const exclude = [\n ...(Array.isArray(existingCommonjs.exclude)\n ? existingCommonjs.exclude\n : existingCommonjs.exclude\n ? [existingCommonjs.exclude]\n : []),\n // sqlocal is ESM and uses workers - don't transform it\n /node_modules[\\\\/]+sqlocal[\\\\/]/,\n ]\n\n const commonjsOptions = {\n ...existingCommonjs,\n include,\n exclude,\n transformMixedEsModules: true,\n }\n\n // Externalize Node.js-only dev/build tools that should never be bundled\n const nodeOnlyPackages = [\n 'drizzle-kit',\n 'better-sqlite3', // Native SQLite binding (Node.js only)\n // Database drivers that drizzle-kit dynamically imports (should not be bundled)\n '@electric-sql/pglite',\n 'pg',\n 'postgres',\n '@vercel/postgres',\n '@neondatabase/serverless',\n 'mysql2',\n 'mysql2/promise',\n '@planetscale/database',\n ]\n\n const isNodeOnlyExternal = (id: string) =>\n nodeOnlyPackages.some(\n (pkg) =>\n id === pkg ||\n id.startsWith(`${pkg}/`) ||\n id.includes(`/${pkg}/`) ||\n id.endsWith(`/${pkg}`)\n )\n\n const externalList = (id: string, importer?: string, isResolved?: boolean) => {\n if (isNodeOnlyExternal(id)) return true\n if (typeof existingExternal === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (existingExternal as any)(id, importer, isResolved ?? false)\n }\n if (Array.isArray(existingExternal)) {\n return existingExternal.some((ext) => ext === id || id.startsWith(`${ext}/`))\n }\n return false\n }\n\n const rollupOptions = {\n ...existingRollupOptions,\n external: externalList,\n }\n\n const build = {\n ...existingBuild,\n commonjsOptions,\n rollupOptions,\n }\n\n // Worker options are TOP-LEVEL in Vite config, not under build.\n // Default 'iife' breaks when workers use code-splitting (e.g. sqlocal).\n const existingWorker = userConfig.worker ?? {}\n const worker = {\n ...existingWorker,\n format: existingWorker.format ?? 'es',\n }\n\n return {\n build,\n worker,\n }\n },\n\n transformIndexHtml(html) {\n if (!autoInit) return html\n\n const initScript = `\n<script type=\"module\">\nimport { configure } from '@zenfs/core';\nimport { IndexedDB } from '@zenfs/dom';\n\nif (!window.__seedFsReady) {\n window.__seedFsReady = configure({\n mounts: { '/': IndexedDB },\n }).catch((err) => {\n console.error('[seed-vite-plugin] ZenFS initialization failed', err);\n });\n}\n</script>`\n\n if (html.includes('</head>')) {\n return html.replace('</head>', `${initScript}\\n</head>`)\n }\n\n return html + initScript\n },\n }\n\n const plugins: Plugin[] = [configPlugin, mainPlugin]\n\n if (includeNodePolyfills) {\n log('Including vite-plugin-node-polyfills with default settings')\n plugins.push(\n nodePolyfills({\n // Let fs be handled by @zenfs/core instead of polyfills\n exclude: ['readline',],\n // Common set of browser-friendly polyfills used by many deps\n include: ['path', 'crypto', 'stream', 'util', 'buffer', 'events', 'string_decoder',],\n globals: {\n Buffer: true,\n global: true,\n process: true,\n },\n protocolImports: true,\n }) as unknown as Plugin,\n )\n }\n\n return plugins\n}\n"],"names":[],"mappings":"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"}