@seedprotocol/sdk 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (326) hide show
  1. package/README.md +314 -0
  2. package/dist/bin.js +369 -0
  3. package/dist/bin.js.map +1 -0
  4. package/dist/browser/db/seedSchema/AppStateSchema.ts +10 -0
  5. package/dist/browser/db/seedSchema/MetadataSchema.ts +26 -0
  6. package/dist/browser/db/seedSchema/SeedSchema.ts +29 -0
  7. package/dist/browser/db/seedSchema/VersionSchema.ts +16 -0
  8. package/dist/browser/db/seedSchema/index.ts +4 -0
  9. package/dist/index-Dr_ozHON.js +29 -0
  10. package/dist/index-Dr_ozHON.js.map +1 -0
  11. package/dist/index-VvchoqaM.js +6948 -0
  12. package/dist/index-VvchoqaM.js.map +1 -0
  13. package/dist/main.js +29 -0
  14. package/dist/main.js.map +1 -0
  15. package/dist/node/codegen/templates/header.njk +10 -0
  16. package/dist/node/codegen/templates/index.njk +23 -0
  17. package/dist/node/codegen/templates/relations.njk +13 -0
  18. package/dist/node/codegen/templates/schema.njk +11 -0
  19. package/dist/node/codegen/templates/table.njk +43 -0
  20. package/dist/package.json +186 -0
  21. package/dist/seed-C3nzF2oc.js +71 -0
  22. package/dist/seed-C3nzF2oc.js.map +1 -0
  23. package/dist/seed-CHE3yKuF.js +28 -0
  24. package/dist/seed-CHE3yKuF.js.map +1 -0
  25. package/dist/seed-Nsca4-Wn.js +38 -0
  26. package/dist/seed-Nsca4-Wn.js.map +1 -0
  27. package/dist/seed.schema.config-CJPoGRe1.js +76 -0
  28. package/dist/seed.schema.config-CJPoGRe1.js.map +1 -0
  29. package/dist/shared/configs/browser.app.db.config.ts +32 -0
  30. package/dist/shared/configs/browser.seed.db.config.ts +33 -0
  31. package/dist/shared/configs/sdk.db.config.ts +33 -0
  32. package/dist/shared/configs/seed.schema.config.ts +25 -0
  33. package/dist/shared/sdkSchema/configSchema.ts +15 -0
  34. package/dist/shared/sdkSchema/index.ts +4 -0
  35. package/dist/shared/sdkSchema/modelSchema.ts +46 -0
  36. package/dist/shared/sdkSchema/modelUidSchema.ts +16 -0
  37. package/dist/shared/sdkSchema/propertyUidSchema.ts +16 -0
  38. package/dist/types/scripts/bin.d.ts +4 -0
  39. package/dist/types/scripts/bin.d.ts.map +1 -0
  40. package/dist/types/src/browser/db/index.d.ts +6 -0
  41. package/dist/types/src/browser/db/index.d.ts.map +1 -0
  42. package/dist/types/src/browser/db/read/getItem.d.ts +17 -0
  43. package/dist/types/src/browser/db/read/getItem.d.ts.map +1 -0
  44. package/dist/types/src/browser/db/read/getItems.d.ts +3 -0
  45. package/dist/types/src/browser/db/read/getItems.d.ts.map +1 -0
  46. package/dist/types/src/browser/db/read/getPropertiesForSeed.d.ts +5 -0
  47. package/dist/types/src/browser/db/read/getPropertiesForSeed.d.ts.map +1 -0
  48. package/dist/types/src/browser/db/read/getSeedData.d.ts +18 -0
  49. package/dist/types/src/browser/db/read/getSeedData.d.ts.map +1 -0
  50. package/dist/types/src/browser/db/read/getVersionData.d.ts +19 -0
  51. package/dist/types/src/browser/db/read/getVersionData.d.ts.map +1 -0
  52. package/dist/types/src/browser/db/read/getVersionsForVersionUids.d.ts +10 -0
  53. package/dist/types/src/browser/db/read/getVersionsForVersionUids.d.ts.map +1 -0
  54. package/dist/types/src/browser/db/read.d.ts +17 -0
  55. package/dist/types/src/browser/db/read.d.ts.map +1 -0
  56. package/dist/types/src/browser/db/save.d.ts +5 -0
  57. package/dist/types/src/browser/db/save.d.ts.map +1 -0
  58. package/dist/types/src/browser/db/seedSchema/AppStateSchema.d.ts +73 -0
  59. package/dist/types/src/browser/db/seedSchema/AppStateSchema.d.ts.map +1 -0
  60. package/dist/types/src/browser/db/seedSchema/MetadataSchema.d.ts +329 -0
  61. package/dist/types/src/browser/db/seedSchema/MetadataSchema.d.ts.map +1 -0
  62. package/dist/types/src/browser/db/seedSchema/SeedSchema.d.ts +153 -0
  63. package/dist/types/src/browser/db/seedSchema/SeedSchema.d.ts.map +1 -0
  64. package/dist/types/src/browser/db/seedSchema/VersionSchema.d.ts +169 -0
  65. package/dist/types/src/browser/db/seedSchema/VersionSchema.d.ts.map +1 -0
  66. package/dist/types/src/browser/db/seedSchema/index.d.ts +5 -0
  67. package/dist/types/src/browser/db/seedSchema/index.d.ts.map +1 -0
  68. package/dist/types/src/browser/db/write.d.ts +60 -0
  69. package/dist/types/src/browser/db/write.d.ts.map +1 -0
  70. package/dist/types/src/browser/eas/actors.d.ts +3 -0
  71. package/dist/types/src/browser/eas/actors.d.ts.map +1 -0
  72. package/dist/types/src/browser/eas/helpers.d.ts +5 -0
  73. package/dist/types/src/browser/eas/helpers.d.ts.map +1 -0
  74. package/dist/types/src/browser/eas/index.d.ts +113 -0
  75. package/dist/types/src/browser/eas/index.d.ts.map +1 -0
  76. package/dist/types/src/browser/eas/seedData.d.ts +1 -0
  77. package/dist/types/src/browser/eas/seedData.d.ts.map +1 -0
  78. package/dist/types/src/browser/events/files/download.d.ts +6 -0
  79. package/dist/types/src/browser/events/files/download.d.ts.map +1 -0
  80. package/dist/types/src/browser/events/files/index.d.ts +4 -0
  81. package/dist/types/src/browser/events/files/index.d.ts.map +1 -0
  82. package/dist/types/src/browser/events/index.d.ts +13 -0
  83. package/dist/types/src/browser/events/index.d.ts.map +1 -0
  84. package/dist/types/src/browser/events/item/create.d.ts +2 -0
  85. package/dist/types/src/browser/events/item/create.d.ts.map +1 -0
  86. package/dist/types/src/browser/events/item/delete.d.ts +2 -0
  87. package/dist/types/src/browser/events/item/delete.d.ts.map +1 -0
  88. package/dist/types/src/browser/events/item/index.d.ts +3 -0
  89. package/dist/types/src/browser/events/item/index.d.ts.map +1 -0
  90. package/dist/types/src/browser/events/item/request.d.ts +2 -0
  91. package/dist/types/src/browser/events/item/request.d.ts.map +1 -0
  92. package/dist/types/src/browser/events/item/requestAll.d.ts +9 -0
  93. package/dist/types/src/browser/events/item/requestAll.d.ts.map +1 -0
  94. package/dist/types/src/browser/events/item/syncDbWithEas.d.ts +3 -0
  95. package/dist/types/src/browser/events/item/syncDbWithEas.d.ts.map +1 -0
  96. package/dist/types/src/browser/events/property/index.d.ts +2 -0
  97. package/dist/types/src/browser/events/property/index.d.ts.map +1 -0
  98. package/dist/types/src/browser/events/property/save.d.ts +4 -0
  99. package/dist/types/src/browser/events/property/save.d.ts.map +1 -0
  100. package/dist/types/src/browser/events/property/saveRelation.d.ts +4 -0
  101. package/dist/types/src/browser/events/property/saveRelation.d.ts.map +1 -0
  102. package/dist/types/src/browser/events/services/internal/index.d.ts +1 -0
  103. package/dist/types/src/browser/events/services/internal/index.d.ts.map +1 -0
  104. package/dist/types/src/browser/fragments/Attestation.d.ts +2 -0
  105. package/dist/types/src/browser/fragments/Attestation.d.ts.map +1 -0
  106. package/dist/types/src/browser/fragments/Schema.d.ts +2 -0
  107. package/dist/types/src/browser/fragments/Schema.d.ts.map +1 -0
  108. package/dist/types/src/browser/fragments/index.d.ts +3 -0
  109. package/dist/types/src/browser/fragments/index.d.ts.map +1 -0
  110. package/dist/types/src/browser/gql/fragment-masking.d.ts +20 -0
  111. package/dist/types/src/browser/gql/fragment-masking.d.ts.map +1 -0
  112. package/dist/types/src/browser/gql/gql.d.ts +126 -0
  113. package/dist/types/src/browser/gql/gql.d.ts.map +1 -0
  114. package/dist/types/src/browser/gql/graphql.d.ts +2919 -0
  115. package/dist/types/src/browser/gql/graphql.d.ts.map +1 -0
  116. package/dist/types/src/browser/gql/index.d.ts +3 -0
  117. package/dist/types/src/browser/gql/index.d.ts.map +1 -0
  118. package/dist/types/src/browser/helpers.d.ts +14 -0
  119. package/dist/types/src/browser/helpers.d.ts.map +1 -0
  120. package/dist/types/src/browser/index.d.ts +8 -0
  121. package/dist/types/src/browser/index.d.ts.map +1 -0
  122. package/dist/types/src/browser/item/all/actors/fetchDbData.d.ts +2 -0
  123. package/dist/types/src/browser/item/all/actors/fetchDbData.d.ts.map +1 -0
  124. package/dist/types/src/browser/item/all/actors/fetchRelatedItems.d.ts +2 -0
  125. package/dist/types/src/browser/item/all/actors/fetchRelatedItems.d.ts.map +1 -0
  126. package/dist/types/src/browser/item/all/actors/fetchSeeds.d.ts +2 -0
  127. package/dist/types/src/browser/item/all/actors/fetchSeeds.d.ts.map +1 -0
  128. package/dist/types/src/browser/item/all/actors/fetchVersions.d.ts +2 -0
  129. package/dist/types/src/browser/item/all/actors/fetchVersions.d.ts.map +1 -0
  130. package/dist/types/src/browser/item/all/actors/initialize.d.ts +2 -0
  131. package/dist/types/src/browser/item/all/actors/initialize.d.ts.map +1 -0
  132. package/dist/types/src/browser/item/all/actors/processItems.d.ts +2 -0
  133. package/dist/types/src/browser/item/all/actors/processItems.d.ts.map +1 -0
  134. package/dist/types/src/browser/item/all/itemMachineAll.d.ts +2 -0
  135. package/dist/types/src/browser/item/all/itemMachineAll.d.ts.map +1 -0
  136. package/dist/types/src/browser/item/class.d.ts +35 -0
  137. package/dist/types/src/browser/item/class.d.ts.map +1 -0
  138. package/dist/types/src/browser/item/create/actors/createItem.d.ts +3 -0
  139. package/dist/types/src/browser/item/create/actors/createItem.d.ts.map +1 -0
  140. package/dist/types/src/browser/item/create/createItemMachine.d.ts +3 -0
  141. package/dist/types/src/browser/item/create/createItemMachine.d.ts.map +1 -0
  142. package/dist/types/src/browser/item/index.d.ts +5 -0
  143. package/dist/types/src/browser/item/index.d.ts.map +1 -0
  144. package/dist/types/src/browser/item/queries.d.ts +24 -0
  145. package/dist/types/src/browser/item/queries.d.ts.map +1 -0
  146. package/dist/types/src/browser/item/single/actors/fetchDataFromEas.d.ts +2 -0
  147. package/dist/types/src/browser/item/single/actors/fetchDataFromEas.d.ts.map +1 -0
  148. package/dist/types/src/browser/item/single/actors/hydrateExistingItem.d.ts +2 -0
  149. package/dist/types/src/browser/item/single/actors/hydrateExistingItem.d.ts.map +1 -0
  150. package/dist/types/src/browser/item/single/actors/hydrateNewItem.d.ts +2 -0
  151. package/dist/types/src/browser/item/single/actors/hydrateNewItem.d.ts.map +1 -0
  152. package/dist/types/src/browser/item/single/actors/initialize.d.ts +2 -0
  153. package/dist/types/src/browser/item/single/actors/initialize.d.ts.map +1 -0
  154. package/dist/types/src/browser/item/single/actors/saveDataToDb.d.ts +57 -0
  155. package/dist/types/src/browser/item/single/actors/saveDataToDb.d.ts.map +1 -0
  156. package/dist/types/src/browser/item/single/actors/waitForDb.d.ts +2 -0
  157. package/dist/types/src/browser/item/single/actors/waitForDb.d.ts.map +1 -0
  158. package/dist/types/src/browser/item/single/itemMachineSingle.d.ts +57 -0
  159. package/dist/types/src/browser/item/single/itemMachineSingle.d.ts.map +1 -0
  160. package/dist/types/src/browser/property/actors/hydrateFromDb.d.ts +2 -0
  161. package/dist/types/src/browser/property/actors/hydrateFromDb.d.ts.map +1 -0
  162. package/dist/types/src/browser/property/actors/index.d.ts +4 -0
  163. package/dist/types/src/browser/property/actors/index.d.ts.map +1 -0
  164. package/dist/types/src/browser/property/actors/initialize.d.ts +2 -0
  165. package/dist/types/src/browser/property/actors/initialize.d.ts.map +1 -0
  166. package/dist/types/src/browser/property/actors/resolveRelatedValue.d.ts +2 -0
  167. package/dist/types/src/browser/property/actors/resolveRelatedValue.d.ts.map +1 -0
  168. package/dist/types/src/browser/property/actors/resolveRemoteStorage.d.ts +57 -0
  169. package/dist/types/src/browser/property/actors/resolveRemoteStorage.d.ts.map +1 -0
  170. package/dist/types/src/browser/property/actors/saveValueToDb.d.ts +2 -0
  171. package/dist/types/src/browser/property/actors/saveValueToDb.d.ts.map +1 -0
  172. package/dist/types/src/browser/property/actors/waitForDb.d.ts +2 -0
  173. package/dist/types/src/browser/property/actors/waitForDb.d.ts.map +1 -0
  174. package/dist/types/src/browser/property/class.d.ts +193 -0
  175. package/dist/types/src/browser/property/class.d.ts.map +1 -0
  176. package/dist/types/src/browser/property/index.d.ts +94 -0
  177. package/dist/types/src/browser/property/index.d.ts.map +1 -0
  178. package/dist/types/src/browser/property/propertyMachine.d.ts +2 -0
  179. package/dist/types/src/browser/property/propertyMachine.d.ts.map +1 -0
  180. package/dist/types/src/browser/react/index.d.ts +57 -0
  181. package/dist/types/src/browser/react/index.d.ts.map +1 -0
  182. package/dist/types/src/browser/schema/file/arweave.d.ts +3 -0
  183. package/dist/types/src/browser/schema/file/arweave.d.ts.map +1 -0
  184. package/dist/types/src/browser/schema/file/download/actors.d.ts +3 -0
  185. package/dist/types/src/browser/schema/file/download/actors.d.ts.map +1 -0
  186. package/dist/types/src/browser/schema/file/download/index.d.ts +2 -0
  187. package/dist/types/src/browser/schema/file/download/index.d.ts.map +1 -0
  188. package/dist/types/src/browser/schema/file/fetchAll/actors.d.ts +3 -0
  189. package/dist/types/src/browser/schema/file/fetchAll/actors.d.ts.map +1 -0
  190. package/dist/types/src/browser/schema/file/fetchAll/index.d.ts +2 -0
  191. package/dist/types/src/browser/schema/file/fetchAll/index.d.ts.map +1 -0
  192. package/dist/types/src/browser/schema/file/index.d.ts +17 -0
  193. package/dist/types/src/browser/schema/file/index.d.ts.map +1 -0
  194. package/dist/types/src/browser/schema/file/machine.d.ts +51 -0
  195. package/dist/types/src/browser/schema/file/machine.d.ts.map +1 -0
  196. package/dist/types/src/browser/schema/file/queries.d.ts +9 -0
  197. package/dist/types/src/browser/schema/file/queries.d.ts.map +1 -0
  198. package/dist/types/src/browser/schema/file/upload/actors.d.ts +3 -0
  199. package/dist/types/src/browser/schema/file/upload/actors.d.ts.map +1 -0
  200. package/dist/types/src/browser/schema/file/upload/index.d.ts +2 -0
  201. package/dist/types/src/browser/schema/file/upload/index.d.ts.map +1 -0
  202. package/dist/types/src/browser/schema/image/index.d.ts +9 -0
  203. package/dist/types/src/browser/schema/image/index.d.ts.map +1 -0
  204. package/dist/types/src/browser/schema/image/queries.d.ts +7 -0
  205. package/dist/types/src/browser/schema/image/queries.d.ts.map +1 -0
  206. package/dist/types/src/browser/schema/index.d.ts +6 -0
  207. package/dist/types/src/browser/schema/index.d.ts.map +1 -0
  208. package/dist/types/src/browser/schema/model/actors.d.ts +1 -0
  209. package/dist/types/src/browser/schema/model/actors.d.ts.map +1 -0
  210. package/dist/types/src/browser/schema/model/index.d.ts +47 -0
  211. package/dist/types/src/browser/schema/model/index.d.ts.map +1 -0
  212. package/dist/types/src/browser/seed.d.ts +11 -0
  213. package/dist/types/src/browser/seed.d.ts.map +1 -0
  214. package/dist/types/src/browser/services/db/actors.d.ts +12 -0
  215. package/dist/types/src/browser/services/db/actors.d.ts.map +1 -0
  216. package/dist/types/src/browser/services/db/connectionManager.d.ts +18 -0
  217. package/dist/types/src/browser/services/db/connectionManager.d.ts.map +1 -0
  218. package/dist/types/src/browser/services/db/index.d.ts +2 -0
  219. package/dist/types/src/browser/services/db/index.d.ts.map +1 -0
  220. package/dist/types/src/browser/services/db/machine.d.ts +3 -0
  221. package/dist/types/src/browser/services/db/machine.d.ts.map +1 -0
  222. package/dist/types/src/browser/services/events.d.ts +2 -0
  223. package/dist/types/src/browser/services/events.d.ts.map +1 -0
  224. package/dist/types/src/browser/services/global/actors.d.ts +4 -0
  225. package/dist/types/src/browser/services/global/actors.d.ts.map +1 -0
  226. package/dist/types/src/browser/services/global/index.d.ts +2 -0
  227. package/dist/types/src/browser/services/global/index.d.ts.map +1 -0
  228. package/dist/types/src/browser/services/global/machine.d.ts +7 -0
  229. package/dist/types/src/browser/services/global/machine.d.ts.map +1 -0
  230. package/dist/types/src/browser/services/index.d.ts +2 -0
  231. package/dist/types/src/browser/services/index.d.ts.map +1 -0
  232. package/dist/types/src/browser/services/internal/actors.d.ts +10 -0
  233. package/dist/types/src/browser/services/internal/actors.d.ts.map +1 -0
  234. package/dist/types/src/browser/services/internal/constants.d.ts +78 -0
  235. package/dist/types/src/browser/services/internal/constants.d.ts.map +1 -0
  236. package/dist/types/src/browser/services/internal/helpers.d.ts +12 -0
  237. package/dist/types/src/browser/services/internal/helpers.d.ts.map +1 -0
  238. package/dist/types/src/browser/services/internal/machine.d.ts +3 -0
  239. package/dist/types/src/browser/services/internal/machine.d.ts.map +1 -0
  240. package/dist/types/src/browser/services/internal/queries.d.ts +4 -0
  241. package/dist/types/src/browser/services/internal/queries.d.ts.map +1 -0
  242. package/dist/types/src/browser/services/internal/types.d.ts +12 -0
  243. package/dist/types/src/browser/services/internal/types.d.ts.map +1 -0
  244. package/dist/types/src/browser/services/syncDbWithEas/actors.d.ts +2 -0
  245. package/dist/types/src/browser/services/syncDbWithEas/actors.d.ts.map +1 -0
  246. package/dist/types/src/browser/services/syncDbWithEas/machine.d.ts +3 -0
  247. package/dist/types/src/browser/services/syncDbWithEas/machine.d.ts.map +1 -0
  248. package/dist/types/src/eventBus.d.ts +4 -0
  249. package/dist/types/src/eventBus.d.ts.map +1 -0
  250. package/dist/types/src/index.d.ts +23 -0
  251. package/dist/types/src/index.d.ts.map +1 -0
  252. package/dist/types/src/init.d.ts +6 -0
  253. package/dist/types/src/init.d.ts.map +1 -0
  254. package/dist/types/src/node/codegen/drizzle.d.ts +2 -0
  255. package/dist/types/src/node/codegen/drizzle.d.ts.map +1 -0
  256. package/dist/types/src/node/codegen/index.d.ts +2 -0
  257. package/dist/types/src/node/codegen/index.d.ts.map +1 -0
  258. package/dist/types/src/node/codegen/ts-to-proto.d.ts +9 -0
  259. package/dist/types/src/node/codegen/ts-to-proto.d.ts.map +1 -0
  260. package/dist/types/src/node/constants.d.ts +21 -0
  261. package/dist/types/src/node/constants.d.ts.map +1 -0
  262. package/dist/types/src/node/db/helpers.d.ts +2 -0
  263. package/dist/types/src/node/db/helpers.d.ts.map +1 -0
  264. package/dist/types/src/node/db/index.d.ts +5 -0
  265. package/dist/types/src/node/db/index.d.ts.map +1 -0
  266. package/dist/types/src/node/db/internal.d.ts +5 -0
  267. package/dist/types/src/node/db/internal.d.ts.map +1 -0
  268. package/dist/types/src/node/helpers/index.d.ts +3 -0
  269. package/dist/types/src/node/helpers/index.d.ts.map +1 -0
  270. package/dist/types/src/node/index.d.ts +2 -0
  271. package/dist/types/src/node/index.d.ts.map +1 -0
  272. package/dist/types/src/node/seed.d.ts +7 -0
  273. package/dist/types/src/node/seed.d.ts.map +1 -0
  274. package/dist/types/src/node/webpack/index.d.ts +2 -0
  275. package/dist/types/src/node/webpack/index.d.ts.map +1 -0
  276. package/dist/types/src/seed.d.ts +1 -0
  277. package/dist/types/src/seed.d.ts.map +1 -0
  278. package/dist/types/src/shared/configs/browser.app.db.config.d.ts +3 -0
  279. package/dist/types/src/shared/configs/browser.app.db.config.d.ts.map +1 -0
  280. package/dist/types/src/shared/configs/browser.seed.db.config.d.ts +3 -0
  281. package/dist/types/src/shared/configs/browser.seed.db.config.d.ts.map +1 -0
  282. package/dist/types/src/shared/configs/sdk.db.config.d.ts +3 -0
  283. package/dist/types/src/shared/configs/sdk.db.config.d.ts.map +1 -0
  284. package/dist/types/src/shared/configs/seed.schema.config.d.ts +19 -0
  285. package/dist/types/src/shared/configs/seed.schema.config.d.ts.map +1 -0
  286. package/dist/types/src/shared/environment.d.ts +4 -0
  287. package/dist/types/src/shared/environment.d.ts.map +1 -0
  288. package/dist/types/src/shared/fsProxy.d.ts +5 -0
  289. package/dist/types/src/shared/fsProxy.d.ts.map +1 -0
  290. package/dist/types/src/shared/helpers/constants.d.ts +27 -0
  291. package/dist/types/src/shared/helpers/constants.d.ts.map +1 -0
  292. package/dist/types/src/shared/helpers/db.d.ts +12 -0
  293. package/dist/types/src/shared/helpers/db.d.ts.map +1 -0
  294. package/dist/types/src/shared/helpers/files.d.ts +2 -0
  295. package/dist/types/src/shared/helpers/files.d.ts.map +1 -0
  296. package/dist/types/src/shared/helpers/index.d.ts +15 -0
  297. package/dist/types/src/shared/helpers/index.d.ts.map +1 -0
  298. package/dist/types/src/shared/helpers/logger.d.ts +7 -0
  299. package/dist/types/src/shared/helpers/logger.d.ts.map +1 -0
  300. package/dist/types/src/shared/index.d.ts +9 -0
  301. package/dist/types/src/shared/index.d.ts.map +1 -0
  302. package/dist/types/src/shared/sdkSchema/configSchema.d.ts +88 -0
  303. package/dist/types/src/shared/sdkSchema/configSchema.d.ts.map +1 -0
  304. package/dist/types/src/shared/sdkSchema/index.d.ts +5 -0
  305. package/dist/types/src/shared/sdkSchema/index.d.ts.map +1 -0
  306. package/dist/types/src/shared/sdkSchema/modelSchema.d.ts +186 -0
  307. package/dist/types/src/shared/sdkSchema/modelSchema.d.ts.map +1 -0
  308. package/dist/types/src/shared/sdkSchema/modelUidSchema.d.ts +59 -0
  309. package/dist/types/src/shared/sdkSchema/modelUidSchema.d.ts.map +1 -0
  310. package/dist/types/src/shared/sdkSchema/propertyUidSchema.d.ts +59 -0
  311. package/dist/types/src/shared/sdkSchema/propertyUidSchema.d.ts.map +1 -0
  312. package/dist/types/src/shared/seed.d.ts +16 -0
  313. package/dist/types/src/shared/seed.d.ts.map +1 -0
  314. package/dist/types/src/sqlite.d.ts +2 -0
  315. package/dist/types/src/sqlite.d.ts.map +1 -0
  316. package/dist/types/src/types/browser.d.ts +24 -0
  317. package/dist/types/src/types/browser.d.ts.map +1 -0
  318. package/dist/types/src/types/index.d.ts +64 -0
  319. package/dist/types/src/types/index.d.ts.map +1 -0
  320. package/dist/types/src/types/item.d.ts +66 -0
  321. package/dist/types/src/types/item.d.ts.map +1 -0
  322. package/dist/types/src/types/model.d.ts +40 -0
  323. package/dist/types/src/types/model.d.ts.map +1 -0
  324. package/dist/types/src/types/property.d.ts +99 -0
  325. package/dist/types/src/types/property.d.ts.map +1 -0
  326. package/package.json +170 -0
package/README.md ADDED
@@ -0,0 +1,314 @@
1
+ # [WIP] Seed Protocol SDK
2
+
3
+ This API is a work in progress. It is not yet ready for production use. These docs are for keeping the community
4
+ informed
5
+ and generating feedback.
6
+
7
+ ## Current research questions
8
+
9
+ - Can we use TypeORM backed by Sqlite Wasm for more performant and future-proof storage?
10
+ - Track this research here: [TypeORM Sqlite Wasm](https://github.com/JournoDAO/typeorm-sqlite-wasm)
11
+ - What would the tooling look like to allow export of data model as ProtoBuf and/or JSON Schema?
12
+ - Looking at [ts-proto](https://github.com/stephenh/ts-proto) for Typescript
13
+
14
+ ## Installing
15
+
16
+ This package is not yet published to npm, but when it is, this will be the command to install it:
17
+
18
+ ```bash
19
+ yarn add @seedprotocol/sdk
20
+ ```
21
+
22
+ ## Getting Started
23
+
24
+ The first thing to do when integrating Seed SDK is define you data model.
25
+
26
+ For example, let's pretend we're creating a blog that uses Seed Protocol as its content store. We start by defining
27
+ our `Models`, their `Properties`, and what type of data each `Property` is expecting.
28
+
29
+ ```typescript=
30
+ import {Model, Property, List, createStore} from '@seedprotocol/sdk'
31
+
32
+
33
+ const Image = Model({
34
+ storageTransactionId: Property.String(),
35
+ uri: Property.String(),
36
+ alt: Property.String(),
37
+ },)
38
+
39
+ const Link = Model({
40
+ url: Property.String(),
41
+ text: Property.String(),
42
+ },)
43
+
44
+ const Identity = Model({
45
+ name: Property.String(),
46
+ bio: Property.String(),
47
+ avatarImage: Image,
48
+ },)
49
+
50
+ const Post = Model({
51
+ title: Property.String(),
52
+ summary: Property.String(),
53
+ featureImage: Image,
54
+ html: Property.String(),
55
+ json: Property.String(),
56
+ authors: Property.List(Identity,),
57
+ },)
58
+
59
+ createStore({
60
+ Identity,
61
+ Image,
62
+ Link,
63
+ Post,
64
+ },)
65
+ ```
66
+
67
+ This will create a database locally in the browser with all the tables and fields necessary to support your Models. Feel
68
+ free to check it out for yourself in your browser's Dev Tools.
69
+
70
+ Notice that we create relationships by defining a `Property` that takes its related Model as its type. For one-to-many
71
+ relationships, we use the `List` type and pass in the `Model` type we want.
72
+
73
+ So creating a Post would look like this:
74
+
75
+ ```typescript=
76
+ import {Post, Image, Identity} from './seed/models'
77
+ import html from './index.html'
78
+
79
+ const image = await Image.create({
80
+ src: 'https://imgr.com/image.jpg',
81
+ })
82
+
83
+ const author = await Identity.create({
84
+ name: 'Keith Axline',
85
+ profile: 'Developer for Seed Protocol',
86
+ })
87
+
88
+ const authors = [
89
+ author
90
+ ]
91
+
92
+ const post = await Post.create({
93
+ title: 'Some title',
94
+ summary: 'My summary',
95
+ featureImage: image,
96
+ authors,
97
+ })
98
+
99
+ await post.publish()
100
+
101
+ // And later when we want to update the post
102
+ post.title = 'Something else'
103
+
104
+ await post.publish()
105
+
106
+ ```
107
+
108
+ ## Usage
109
+
110
+ ```typescript
111
+ import { SeedFile } from '@seedprotocol/sdk'
112
+
113
+ const fileFromUrl = new SeedFile('https://example.com/file.txt')
114
+
115
+ fileFromUrl.subscribe(( event, status ) => {
116
+ console.log(`Event: ${event}, Status: ${status}`)
117
+ })
118
+
119
+ await fileFromUrl.save()
120
+
121
+ ```
122
+
123
+ ```typescript
124
+ const fileFromPath = new SeedFile('path/to/file.txt')
125
+
126
+ const fileFromBlob = new SeedFile(new Blob([ 'Hello, World!' ]))
127
+
128
+ const fileFromBuffer = new SeedFile(Buffer.from('Hello, World!'))
129
+
130
+ const fileFromFile = new SeedFile(new File([ 'Hello, World!' ], 'file.txt'))
131
+
132
+ if ( fileFromPath.isSaved ) {
133
+ console.log('File is saved to Arweave and EAS')
134
+ }
135
+ ```
136
+
137
+ ```typescript
138
+ import { SeedFileSystem } from '@seedprotocol/sdk'
139
+
140
+ const fs = new SeedFileSystem()
141
+
142
+ fs.subscribe(( event, status ) => {
143
+ console.log(`Event: ${event}, Status: ${status}`)
144
+ if ( event === 'connection.success' && status === 'connected' ) {
145
+ console.log('Connected to user\'s file system')
146
+ }
147
+
148
+ if ( event === 'connection.error' ) {
149
+ console.error('Error connecting to user\'s file system', event.error)
150
+ }
151
+ })
152
+
153
+ await fs.connect() // User prompted to connect browser wallet
154
+
155
+ const files = await fs.listFiles('/')
156
+
157
+ files.forEach(file => {
158
+ console.log(file.name)
159
+ console.log(file.size)
160
+ console.log(file.seedPath) // Each wallet address has a virtual root directory with directories and file system paths
161
+ })
162
+
163
+ ```
164
+
165
+ ```typescript
166
+
167
+ import { SeedImage } from '@seedprotocol/sdk'
168
+
169
+ const imgFromUrl = new SeedImage('https://example.com/image.png')
170
+
171
+ const imgFromDataUrl = new SeedImage('data:image/png;base64,iVB....')
172
+
173
+ await imgFromUrl.save()
174
+
175
+ const imgBlob = imgFromUrl.blob()
176
+ const imgBuffer = imgFromUrl.buffer()
177
+ const imgDataUrl = imgFromUrl.dataUrl()
178
+
179
+ ```
180
+
181
+ **Note:** Model instances are called Items in the SDK. This is to avoid confusion with the `Model` function that creates
182
+ the data model.
183
+
184
+ ```mermaid
185
+ ---
186
+ Title: Seed Protocol SDK
187
+ ---
188
+ %%{
189
+ init: {
190
+ 'theme': 'base',
191
+ 'themeVariables': {
192
+ 'primaryColor': '#e0f2fe',
193
+ 'primaryTextColor': '#0c4a6e',
194
+ 'primaryBorderColor': '#38bdf8',
195
+ 'lineColor': '#475569',
196
+ 'secondaryColor': '#d9f99d',
197
+ 'tertiaryColor': '#fff',
198
+ 'tertiaryBorderColor': '#7e22ce',
199
+ 'tertiaryTextColor': '#7e22ce',
200
+ 'clusterBkg': '#fff'
201
+ }
202
+ }
203
+ }%%
204
+ flowchart TD
205
+ A{Developer}
206
+ B{User}
207
+ C{Seed Dev}
208
+ N{SDK}
209
+ Q[App Code]
210
+ D[(sdk_config_db)]
211
+ E[(app_db)]
212
+ L[(seeds_db)]
213
+ G[Schema/Migration files
214
+ browser/db/seedSchema]
215
+ H[Schema/Migration files
216
+ .seed/app/schema]
217
+ R[Schema/Migration files
218
+ node/db/sdkSchema]
219
+
220
+ I[browser.seed.db.config.mjs]
221
+ J[sdk.db.config.mjs]
222
+ K[browser.app.db.config.mjs]
223
+
224
+ O[files.json
225
+ seed/endpoint/list]
226
+ P[Files
227
+ seed/endpoint/files]
228
+
229
+ S[$> seed init]
230
+ T[scripts/bin]
231
+
232
+ subgraph SDK Code
233
+ C--changes Seeds or Versions --> I
234
+ C-- changes Models or Properties --> J
235
+ J-- generates -->R
236
+ I-- generates --> G
237
+ subgraph Package Bundle
238
+ R
239
+ G
240
+ end
241
+ end
242
+
243
+
244
+
245
+ subgraph App Code
246
+ A-- adds Models and Properties --> K
247
+ subgraph SDK
248
+ D
249
+ H
250
+ end
251
+ A-- runs --> S
252
+ S-- calls --> T
253
+ T-- reads--> K
254
+ T-- generates --> D
255
+ T-- generates --> H
256
+ end
257
+
258
+ subgraph App Server
259
+ H-- served at endpoint --> O
260
+ H-- served at endpoint --> P
261
+ end
262
+
263
+
264
+
265
+ subgraph Browser
266
+ B-- adds data--> Q
267
+ subgraph App
268
+ Q-- calls SDK--> N
269
+ subgraph SDK
270
+ E-- notifies -->N
271
+ N<-- files . json --> O
272
+ N<-- files --> P
273
+ N-- updates -->E
274
+ N-- updates --> L
275
+
276
+ end
277
+ end
278
+ end
279
+
280
+
281
+ ```
282
+
283
+ A[Versions From EAS]
284
+ B[Seeds From EAS]
285
+ C[List of Items]
286
+ D[List of Properties]
287
+ E{Property Machine}
288
+ F{Item Machine}
289
+ G{Items Machine}
290
+
291
+ ```mermaid
292
+ sequenceDiagram
293
+ Items Service ->>+ EAS: Seeds Request
294
+ EAS -->>+ Items Service: Seed Attestations
295
+ loop Each Seed Attestation
296
+ Items Service ->>+ Items Service: Extract Seed Uid
297
+ end
298
+ Note over Items Service: Now we have SeedUid[]
299
+ Items Service ->>+ EAS: Versions Request w/ SeedUid[]
300
+ EAS -->>+ Items Service: Version Attestations
301
+ loop Each SeedUid
302
+ Items Service ->>+ Items Service: Sort Version Uids DESC
303
+ end
304
+ loop Each most recent Version for Seed
305
+ Items Service ->>+ Item Service: Create Item
306
+ end
307
+ Note over Items Service: Now we have VersionUid[] for each SeedUid<br />sorted by `createdAt` DESC
308
+ Item Service ->>+ EAS: Properties Request w/ VersionUid[]
309
+ EAS -->>+ Item Service: Properties Attestations
310
+ loop Each Property Attestation
311
+ Item Service ->>+ Property Service: Create Property Service
312
+ end
313
+ Note over Item Service: Now has all Property Services<br />under this._services
314
+ ```
package/dist/bin.js ADDED
@@ -0,0 +1,369 @@
1
+ #!/usr/bin/env node
2
+ import { n as __awaiter, D as DB_NAME_SDK_CONFIG, o as models, S as SCHEMA_NJK, p as SCHEMA_TS, q as SDK_DB_CONFIG, r as SEED_DB_CONFIG, A as APP_DB_CONFIG, s as addModelsToInternalDb } from './index-VvchoqaM.js';
3
+ import path from 'path';
4
+ import fs from 'fs';
5
+ import { exec as exec$1 } from 'child_process';
6
+ import { promisify } from 'util';
7
+ import { pathToFileURL } from 'url';
8
+ import process$1 from 'node:process';
9
+ import * as tsImport from 'ts-import';
10
+ import { LoadMode } from 'ts-import';
11
+ import 'glob';
12
+ import * as rimraf from 'rimraf';
13
+ import 'dotenv/config';
14
+ import pluralize from 'pluralize';
15
+ import { camelCase, snakeCase } from 'lodash-es';
16
+ import * as nunjucks from 'nunjucks';
17
+ import Database from 'better-sqlite3';
18
+ import { drizzle } from 'drizzle-orm/better-sqlite3';
19
+ import './seed.schema.config-CJPoGRe1.js';
20
+ import { defineConfig } from 'drizzle-kit';
21
+ import dotenv from 'dotenv';
22
+ import 'reflect-metadata';
23
+ import '@sinclair/typebox';
24
+ import 'xstate';
25
+ import '@zenfs/core';
26
+ import 'drizzle-orm';
27
+ import 'drizzle-orm/sqlite-proxy';
28
+ import 'debug';
29
+ import 'dayjs';
30
+ import 'nanoid';
31
+ import 'nanoid-dictionary';
32
+ import 'drizzle-orm/sqlite-core';
33
+ import 'react';
34
+ import 'eventemitter3';
35
+ import 'rxjs';
36
+ import 'immer';
37
+ import '@statelyai/inspect';
38
+ import '@tanstack/react-query';
39
+ import 'graphql-request';
40
+ import '@tanstack/query-sync-storage-persister';
41
+ import '@tanstack/react-query-persist-client';
42
+ import 'arweave';
43
+ import '@zenfs/dom';
44
+ import 'use-immer';
45
+ import '@xstate/react';
46
+
47
+ // export const generateId = (): string => {
48
+ // return customAlphabet(alphanumeric, 10)()
49
+ // }
50
+ const getConfig = (configPath) => __awaiter(void 0, void 0, void 0, function* () {
51
+ // Check if the config file exists
52
+ if (!fs.existsSync(configPath)) {
53
+ // TODO: Maybe prompt the developer to create a config file?
54
+ console.error(`Config file not found at ${configPath}`);
55
+ throw new Error(`Config file not found at ${configPath}`);
56
+ }
57
+ console.log('Loading config:', configPath);
58
+ // return {}
59
+ return yield tsImport.load(configPath, {
60
+ mode: LoadMode.Compile,
61
+ compileOptions: {
62
+ compilerOptions: {
63
+ experimentalDecorators: true,
64
+ emitDecoratorMetadata: true,
65
+ },
66
+ },
67
+ });
68
+ });
69
+
70
+ const currentDir = path.dirname(new URL(import.meta.url).pathname);
71
+ const parentToCheck = path.join(currentDir, '..');
72
+ console.log('parentToCheck:', parentToCheck);
73
+ const isInstalled = path.basename(parentToCheck) === '@seedprotocol';
74
+ let rootWithNodeModules = path.join(currentDir, '..', '..', '..');
75
+ if (!isInstalled) {
76
+ rootWithNodeModules = path.join(parentToCheck, '..');
77
+ }
78
+ let sdkRootDir = path.join(rootWithNodeModules, 'node_modules', '@seedprotocol', 'sdk');
79
+ if (!isInstalled) {
80
+ sdkRootDir = path.join(rootWithNodeModules, 'src');
81
+ }
82
+ let dotSeedDir$1 = path.join(rootWithNodeModules, '.seed');
83
+ if (!isInstalled) {
84
+ dotSeedDir$1 = path.join(process.cwd(), '__tests__', '__mocks__', 'project', '.seed');
85
+ }
86
+ const sdkDir = path.join(dotSeedDir$1, 'sdk');
87
+ const sdkSchemaDir = path.join(sdkDir, 'schema');
88
+ const sdkDbDir = path.join(sdkDir, 'db');
89
+ const sdkDbMetaDir = path.join(sdkDbDir, 'meta');
90
+ path.join(sdkDbMetaDir, '_journal.json');
91
+ const seedDir = path.join(dotSeedDir$1, 'seed');
92
+ const seedSchemaDir = path.join(seedDir, 'schema');
93
+ const seedDbDir = path.join(seedDir, 'db');
94
+ const drizzleKitPath = path.join(rootWithNodeModules, 'node_modules', 'drizzle-kit', 'bin.cjs');
95
+ // App file paths. These are the single source of truth for the SDK user's data model
96
+ const appDir = path.join(dotSeedDir$1, 'app');
97
+ const appSchemaDir = path.join(appDir, 'schema');
98
+ const appDbDir = path.join(appDir, 'db');
99
+ path.join(appDbDir, 'meta');
100
+ const appGeneratedSchemaDir = path.join(appDir, 'schema');
101
+ const templatePath = path.join(sdkRootDir, 'node', 'codegen', 'templates');
102
+
103
+ const getSdkDb = () => {
104
+ const sqlite = new Database(path.join(sdkDbDir, `${DB_NAME_SDK_CONFIG}.sqlite3`));
105
+ return drizzle(sqlite);
106
+ };
107
+
108
+ dotenv.config();
109
+ let dotSeedDir = path.join(process$1.cwd(), '.seed');
110
+ if (process$1.env.IS_SEED_DEV) {
111
+ dotSeedDir = path.join(process$1.cwd(), '__tests__', '__mocks__', 'project', '.seed');
112
+ }
113
+ defineConfig({
114
+ schema: [
115
+ `${dotSeedDir}/app/schema/*Schema.ts`,
116
+ `${dotSeedDir}/seed/schema/VersionSchema.ts`,
117
+ `${dotSeedDir}/seed/schema/SeedSchema.ts`,
118
+ `${dotSeedDir}/seed/schema/MetadataSchema.ts`,
119
+ ],
120
+ dialect: 'sqlite',
121
+ out: `${dotSeedDir}/app/db`,
122
+ dbCredentials: {
123
+ url: `${dotSeedDir}/app/db/app_db.sqlite3`,
124
+ },
125
+ });
126
+
127
+ const TemplateLoader = {
128
+ getSource: (name) => {
129
+ console.log('name:', name);
130
+ console.log('templatePath:', templatePath);
131
+ let templateFilePath;
132
+ if (name.includes(templatePath)) {
133
+ templateFilePath = name;
134
+ }
135
+ else {
136
+ templateFilePath = path.join(templatePath, path.basename(name));
137
+ }
138
+ const src = fs.readFileSync(templateFilePath, 'utf-8');
139
+ return {
140
+ path: name,
141
+ src,
142
+ noCache: false,
143
+ };
144
+ },
145
+ };
146
+ // Configure Nunjucks
147
+ const env = new nunjucks.Environment(TemplateLoader);
148
+ env.addFilter('camelCase', camelCase);
149
+ env.addFilter('snakeCase', snakeCase);
150
+ env.addFilter('pluralize', pluralize);
151
+ const generateDrizzleSchemaCode = (modelName, modelClass) => {
152
+ const listProperties = Object.entries(modelClass.schema).filter(([key, propertyDef]) => (propertyDef === null || propertyDef === void 0 ? void 0 : propertyDef.dataType) === 'List');
153
+ const filePath = path.join(templatePath, SCHEMA_NJK);
154
+ const schemaCode = env.render(filePath, {
155
+ modelName,
156
+ modelClass,
157
+ listProperties,
158
+ });
159
+ return schemaCode;
160
+ };
161
+ const syncDbWithDrizzleSchemaFile = (configPath) => __awaiter(void 0, void 0, void 0, function* () {
162
+ const db = getSdkDb();
163
+ const modelRecords = yield db.select().from(models);
164
+ const indexTemplatePath = path.join(templatePath, 'index.njk');
165
+ const indexFilePath = path.join(appGeneratedSchemaDir, 'index.ts');
166
+ const indexFileContent = env.render(indexTemplatePath, {
167
+ models: modelRecords,
168
+ });
169
+ console.log('indexFilePath:', indexFilePath);
170
+ yield fs.promises
171
+ .writeFile(indexFilePath, indexFileContent)
172
+ .catch((e) => console.error(e));
173
+ console.log('[Seed Protocol] Wrote index file to:', indexFilePath);
174
+ const { models: models$1 } = yield getConfig(configPath);
175
+ console.log('models.length:', Object.entries(models$1).length);
176
+ for (const [modelName, modelClass] of Object.entries(models$1)) {
177
+ const modelRecord = modelRecords.find(({ name }) => name === modelName);
178
+ if (!modelRecord) {
179
+ throw new Error(`Model record not found for ${modelName}`);
180
+ }
181
+ const code = generateDrizzleSchemaCode(modelRecord.name, modelClass);
182
+ if (!fs.existsSync(appGeneratedSchemaDir)) {
183
+ fs.mkdirSync(appGeneratedSchemaDir);
184
+ }
185
+ const filePath = path.join(appGeneratedSchemaDir, `${modelRecord.name.toLowerCase()}Schema.ts`);
186
+ yield fs.promises.writeFile(filePath, code).catch((e) => console.error(e));
187
+ console.log(`[Seed Protocol] Wrote schema file for ${modelRecord.name} to ${filePath}`);
188
+ }
189
+ });
190
+
191
+ const { rimrafSync } = rimraf;
192
+ const exec = promisify(exec$1);
193
+ let a;
194
+ a = process$1.argv.splice(2);
195
+ // const args = a.split(' ')
196
+ const copyDotSeedFilesToAppFiles = (appFilesDirPath, schemaFilePath) => __awaiter(void 0, void 0, void 0, function* () {
197
+ console.log('[Seed Protocol] Copying dot seed files to app files');
198
+ return new Promise((resolve) => {
199
+ if (!fs.existsSync(path.join(sdkDbDir, `${DB_NAME_SDK_CONFIG}.sqlite3`))) {
200
+ console.log('[Seed Protocol] Waiting for SDK schema files');
201
+ setTimeout(() => {
202
+ console.log('[Seed Protocol] Retrying to copy SDK schema files');
203
+ return copyDotSeedFilesToAppFiles(appFilesDirPath, schemaFilePath);
204
+ }, 1000);
205
+ }
206
+ else {
207
+ fs.promises.rm(appFilesDirPath, { recursive: true }).then(() => {
208
+ console.log(`[Seed Protocol] Removed old app files`);
209
+ const targetSeedDir = path.join(appFilesDirPath, 'seed');
210
+ const targetSdkDir = path.join(appFilesDirPath, 'sdk');
211
+ const targetAppDir = path.join(appFilesDirPath, 'app');
212
+ const schemaFileDest = path.join(appFilesDirPath, SCHEMA_TS);
213
+ console.log(`[Seed Protocol] making dir at ${appFilesDirPath}`);
214
+ fs.mkdirSync(appFilesDirPath, { recursive: true });
215
+ console.log('[Seed Protocol] copying seed, sdk, and app files');
216
+ fs.cpSync(seedDir, targetSeedDir, { recursive: true });
217
+ fs.cpSync(sdkDir, targetSdkDir, { recursive: true });
218
+ fs.cpSync(appDir, targetAppDir, { recursive: true });
219
+ console.log('[Seed Protocol] copying schema file');
220
+ fs.copyFileSync(schemaFilePath, schemaFileDest);
221
+ console.log('[Seed Protocol] removing sqlite3 files and index.ts files');
222
+ rimrafSync(`${appFilesDirPath}/**/*.sqlite3`, {
223
+ glob: true,
224
+ });
225
+ rimrafSync(`${appFilesDirPath}/**/index.ts`, {
226
+ glob: true,
227
+ });
228
+ resolve();
229
+ });
230
+ }
231
+ });
232
+ });
233
+ const init = (args) => {
234
+ console.log('args:', args);
235
+ if (args && args.length && args[0] === 'init') {
236
+ console.log('[Seed Protocol] Running init script');
237
+ let appFilesDirPath = args[2] || undefined;
238
+ let pathToConfigFiles = args[1] || rootWithNodeModules;
239
+ const schemaFilePath = path.join(pathToConfigFiles, SCHEMA_TS);
240
+ // Remove dotSeedDir to start fresh each time
241
+ if (fs.existsSync(dotSeedDir$1)) {
242
+ fs.rmSync(dotSeedDir$1, { recursive: true });
243
+ }
244
+ const configDir = path.join(sdkRootDir, 'shared', 'configs');
245
+ console.log('rootWithNodeModules:', rootWithNodeModules);
246
+ // The DB config files defined by the SDK, not contained in .seed
247
+ const sdkDbConfigPath = path.join(configDir, SDK_DB_CONFIG);
248
+ const drizzleKitCommand = `npx --yes tsx ${drizzleKitPath}`;
249
+ // SeedDb is where the Seed/Version data model is stored. Then it's exported to the browser for the user
250
+ const seedDbConfigPath = path.join(configDir, SEED_DB_CONFIG);
251
+ const seedDbMeta = path.join(dotSeedDir$1, 'seed', 'meta');
252
+ const appDbConfigPath = path.join(configDir, APP_DB_CONFIG);
253
+ const browserAppDbMeta = path.join(appDbDir, 'meta');
254
+ const ensureDirectories = () => {
255
+ try {
256
+ fs.mkdirSync(sdkDbDir, { recursive: true }); // Creates .seed/sdk/db
257
+ fs.mkdirSync(sdkSchemaDir, { recursive: true }); // Creates .seed/sdk/schema
258
+ fs.mkdirSync(appDbDir, { recursive: true }); // Creates .seed/app/db
259
+ fs.mkdirSync(appSchemaDir, { recursive: true }); // Creates .seed/app/schema
260
+ fs.mkdirSync(seedDbDir, { recursive: true }); // Creates .seed/seed/db
261
+ fs.mkdirSync(seedSchemaDir, { recursive: true }); // Creates .seed/seed/schema
262
+ fs.mkdirSync(appGeneratedSchemaDir, { recursive: true }); // Creates .seed/app/schema
263
+ if (appFilesDirPath) {
264
+ fs.mkdirSync(appFilesDirPath, { recursive: true });
265
+ }
266
+ }
267
+ catch (error) {
268
+ console.error('Failed to ensure directories:', error);
269
+ throw error;
270
+ }
271
+ };
272
+ const copyFiles = (srcDir, destName) => {
273
+ const destDir = path.join(dotSeedDir$1, destName);
274
+ const destSchemaDir = path.join(destDir, 'schema');
275
+ if (!fs.existsSync(destDir)) {
276
+ fs.mkdirSync(destDir, { recursive: true });
277
+ }
278
+ const schemaFiles = fs.readdirSync(srcDir);
279
+ schemaFiles.forEach((file) => {
280
+ console.log(`Copying ${srcDir}/${file} to ${destSchemaDir}`);
281
+ fs.copyFileSync(path.join(srcDir, file), path.join(destSchemaDir, file));
282
+ });
283
+ };
284
+ const copySchemaFilesToDotSeed = () => {
285
+ const dest = path.join(dotSeedDir$1, SCHEMA_TS);
286
+ fs.copyFileSync(schemaFilePath, dest);
287
+ const sdkSrc = path.join(sdkRootDir, 'shared', 'sdkSchema');
288
+ copyFiles(sdkSrc, 'sdk');
289
+ const seedSchemaDir = path.join(sdkRootDir, 'browser', 'db', 'seedSchema');
290
+ copyFiles(seedSchemaDir, 'seed');
291
+ };
292
+ const runCommand = (command) => __awaiter(void 0, void 0, void 0, function* () {
293
+ const { stdout, stderr } = yield exec(command);
294
+ if (stderr) {
295
+ console.error(stderr);
296
+ return;
297
+ }
298
+ console.log(stdout);
299
+ });
300
+ const addModelsFromConfig = () => __awaiter(void 0, void 0, void 0, function* () {
301
+ // Developer created file with model definitions
302
+ const { models } = yield getConfig(schemaFilePath);
303
+ // console.log('[Seed Protocol] models:', models)
304
+ const db = getSdkDb();
305
+ yield addModelsToInternalDb(db, models);
306
+ console.log('[Seed Protocol] Added models to internal database');
307
+ });
308
+ const addSeedModels = () => __awaiter(void 0, void 0, void 0, function* () {
309
+ // const seedSchemaConfigPath = path.join(configDir, SEED_SCHEMA_CONFIG)
310
+ // const { models: SeedModels } = await getConfig(seedSchemaConfigPath)
311
+ //
312
+ // const db = getSdkDb()
313
+ //
314
+ // console.log(
315
+ // '[Seed Protocol] Adding Seed models to internal database',
316
+ // SeedModels,
317
+ // )
318
+ //
319
+ // await addModelsToInternalDb(db, SeedModels)
320
+ //
321
+ // console.log('[Seed Protocol] Added Seed models to internal database')
322
+ });
323
+ const updateSchema = (pathToConfig, pathToMeta) => __awaiter(void 0, void 0, void 0, function* () {
324
+ if (!fs.existsSync(pathToMeta)) {
325
+ yield runCommand(`${drizzleKitCommand} generate --config=${pathToConfig}`);
326
+ }
327
+ yield runCommand(`${drizzleKitCommand} migrate --config=${pathToConfig}`);
328
+ });
329
+ const runCommands = () => __awaiter(void 0, void 0, void 0, function* () {
330
+ // Here we setup the internal db that stores the developer's schema
331
+ yield updateSchema(sdkDbConfigPath, sdkDbMetaDir);
332
+ // This is SeedDb which is managed by the SDK but exports to the user's browser
333
+ yield updateSchema(seedDbConfigPath, seedDbMeta);
334
+ // Now we're building the schema defined by the developer
335
+ yield addModelsFromConfig();
336
+ // Here we generate the Drizzle schema files for the developer's models
337
+ yield syncDbWithDrizzleSchemaFile(schemaFilePath);
338
+ // Now we create the database made from the developer's schema
339
+ yield updateSchema(appDbConfigPath, browserAppDbMeta);
340
+ // Add Seed and Version models after any codegen has been done. Their
341
+ // code has already been added to the templates
342
+ yield addSeedModels();
343
+ });
344
+ ensureDirectories();
345
+ copySchemaFilesToDotSeed();
346
+ runCommands()
347
+ .then(() => {
348
+ if (!appFilesDirPath) {
349
+ console.log('[Seed Protocol] Finished running init script');
350
+ }
351
+ else {
352
+ return copyDotSeedFilesToAppFiles(appFilesDirPath, schemaFilePath);
353
+ }
354
+ })
355
+ .then(() => {
356
+ console.log('[Seed Protocol] Finished running init script');
357
+ });
358
+ }
359
+ };
360
+ const calledFrom = pathToFileURL(process$1.argv[1]).href;
361
+ if (calledFrom.endsWith('node_modules/.bin/seed') ||
362
+ import.meta.url.endsWith('@seedprotocol/sdk/node/bin.js') ||
363
+ import.meta.url.endsWith('scripts/bin.ts')) {
364
+ // module was not imported but called directly
365
+ init(a);
366
+ }
367
+
368
+ export { init };
369
+ //# sourceMappingURL=bin.js.map