@seedprotocol/sdk 0.4.3 → 0.4.5

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 (199) hide show
  1. package/README.md +38 -348
  2. package/dist/{ArweaveClient-CleX_4Gw.js → ArweaveClient-CgWK-JgT.js} +8 -8
  3. package/dist/{ArweaveClient-CleX_4Gw.js.map → ArweaveClient-CgWK-JgT.js.map} +1 -1
  4. package/dist/{ArweaveClient-BvJ1FhQ5.js → ArweaveClient-WcG8CZAE.js} +8 -8
  5. package/dist/{ArweaveClient-BvJ1FhQ5.js.map → ArweaveClient-WcG8CZAE.js.map} +1 -1
  6. package/dist/{Db-DX08SxS9.js → Db-DjFdIdR9.js} +9 -16
  7. package/dist/{Db-DX08SxS9.js.map → Db-DjFdIdR9.js.map} +1 -1
  8. package/dist/{Db-BPnO1-_p.js → Db-DjofXdeU.js} +9 -9
  9. package/dist/{Db-BPnO1-_p.js.map → Db-DjofXdeU.js.map} +1 -1
  10. package/dist/{EasClient-BwhUcPjY.js → EasClient-Aojewp6P.js} +8 -8
  11. package/dist/{EasClient-CJSs38Db.js.map → EasClient-Aojewp6P.js.map} +1 -1
  12. package/dist/{EasClient-CJSs38Db.js → EasClient-BVFXp2O6.js} +8 -8
  13. package/dist/{EasClient-BwhUcPjY.js.map → EasClient-BVFXp2O6.js.map} +1 -1
  14. package/dist/{FileManager-B1tdLMsX.js → FileManager-C9zr4AJe.js} +8 -8
  15. package/dist/{FileManager-B1tdLMsX.js.map → FileManager-C9zr4AJe.js.map} +1 -1
  16. package/dist/{FileManager-Ct91ZhOE.js → FileManager-CxGJLw5C.js} +8 -8
  17. package/dist/{FileManager-Ct91ZhOE.js.map → FileManager-CxGJLw5C.js.map} +1 -1
  18. package/dist/Item/Item.d.ts +28 -7
  19. package/dist/Item/Item.d.ts.map +1 -1
  20. package/dist/Item/service/actors/runPublish.d.ts +5 -0
  21. package/dist/Item/service/actors/runPublish.d.ts.map +1 -0
  22. package/dist/Item/service/itemMachineSingle.d.ts +10 -5
  23. package/dist/Item/service/itemMachineSingle.d.ts.map +1 -1
  24. package/dist/ItemProperty/ItemProperty.d.ts +30 -5
  25. package/dist/ItemProperty/ItemProperty.d.ts.map +1 -1
  26. package/dist/ItemProperty/service/actors/loadOrCreateProperty.d.ts.map +1 -1
  27. package/dist/ItemProperty/service/propertyMachine.d.ts +10 -10
  28. package/dist/ItemProperty/service/propertyMachine.d.ts.map +1 -1
  29. package/dist/Model/Model.d.ts +27 -20
  30. package/dist/Model/Model.d.ts.map +1 -1
  31. package/dist/Model/index.d.ts +1 -1
  32. package/dist/Model/service/actors/createModelProperties.d.ts.map +1 -1
  33. package/dist/Model/service/actors/loadOrCreateModel.d.ts.map +1 -1
  34. package/dist/Model/service/actors/validateModel.d.ts.map +1 -1
  35. package/dist/Model/service/modelMachine.d.ts +18 -3
  36. package/dist/Model/service/modelMachine.d.ts.map +1 -1
  37. package/dist/ModelProperty/ModelProperty.d.ts +25 -2
  38. package/dist/ModelProperty/ModelProperty.d.ts.map +1 -1
  39. package/dist/ModelProperty/service/actors/compareAndMarkDraft.d.ts.map +1 -1
  40. package/dist/ModelProperty/service/actors/saveToSchema.d.ts.map +1 -1
  41. package/dist/ModelProperty/service/actors/validateProperty.d.ts.map +1 -1
  42. package/dist/ModelProperty/service/modelPropertyMachine.d.ts +17 -3
  43. package/dist/ModelProperty/service/modelPropertyMachine.d.ts.map +1 -1
  44. package/dist/{ModelProperty-Cr3BmgkC.js → ModelProperty-CGdkocQ8.js} +349 -817
  45. package/dist/ModelProperty-CGdkocQ8.js.map +1 -0
  46. package/dist/{PathResolver-DJdxE_OK.js → PathResolver-CX6GHoTS.js} +8 -8
  47. package/dist/{PathResolver-DJdxE_OK.js.map → PathResolver-CX6GHoTS.js.map} +1 -1
  48. package/dist/{PathResolver-BErmcZqP.js → PathResolver-z_WX47_o.js} +8 -8
  49. package/dist/{PathResolver-BErmcZqP.js.map → PathResolver-z_WX47_o.js.map} +1 -1
  50. package/dist/{QueryClient-DIu9c-w6.js → QueryClient-ByKPdRmE.js} +8 -8
  51. package/dist/{QueryClient-DIu9c-w6.js.map → QueryClient-ByKPdRmE.js.map} +1 -1
  52. package/dist/{QueryClient-D2mv63gP.js → QueryClient-Cb1iJO-x.js} +8 -8
  53. package/dist/{QueryClient-D2mv63gP.js.map → QueryClient-Cb1iJO-x.js.map} +1 -1
  54. package/dist/Schema/Schema.d.ts +24 -3
  55. package/dist/Schema/Schema.d.ts.map +1 -1
  56. package/dist/Schema/service/actors/checkExistingSchema.d.ts.map +1 -1
  57. package/dist/Schema/service/actors/createPropertyInstances.d.ts.map +1 -1
  58. package/dist/Schema/service/actors/loadOrCreateSchema.d.ts.map +1 -1
  59. package/dist/Schema/service/actors/verifyPropertyInstancesInCache.d.ts.map +1 -1
  60. package/dist/Schema/service/actors/writeModelsToDb.d.ts.map +1 -1
  61. package/dist/Schema/service/actors/writePropertiesToDb.d.ts.map +1 -1
  62. package/dist/Schema/service/actors/writeSchemaToDb.d.ts.map +1 -1
  63. package/dist/Schema/service/addModelsMachine.d.ts.map +1 -1
  64. package/dist/Schema/service/schemaMachine.d.ts +17 -3
  65. package/dist/Schema/service/schemaMachine.d.ts.map +1 -1
  66. package/dist/{Schema-DeKabJ0T.js → Schema-D1eqDHyt.js} +995 -186
  67. package/dist/Schema-D1eqDHyt.js.map +1 -0
  68. package/dist/{SchemaValidationService-cTlURuDt.js → SchemaValidationService-DyttFaV_.js} +7 -7
  69. package/dist/{SchemaValidationService-cTlURuDt.js.map → SchemaValidationService-DyttFaV_.js.map} +1 -1
  70. package/dist/browser/db/Db.d.ts.map +1 -1
  71. package/dist/browser/react/SeedProvider.d.ts +30 -0
  72. package/dist/browser/react/SeedProvider.d.ts.map +1 -0
  73. package/dist/browser/react/index.d.ts +4 -1
  74. package/dist/browser/react/index.d.ts.map +1 -1
  75. package/dist/browser/react/item.d.ts +10 -6
  76. package/dist/browser/react/item.d.ts.map +1 -1
  77. package/dist/browser/react/itemProperty.d.ts +37 -1
  78. package/dist/browser/react/itemProperty.d.ts.map +1 -1
  79. package/dist/browser/react/liveQuery.d.ts.map +1 -1
  80. package/dist/browser/react/model.d.ts +21 -7
  81. package/dist/browser/react/model.d.ts.map +1 -1
  82. package/dist/browser/react/modelProperty.d.ts +23 -0
  83. package/dist/browser/react/modelProperty.d.ts.map +1 -1
  84. package/dist/browser/react/queryClient.d.ts +28 -0
  85. package/dist/browser/react/queryClient.d.ts.map +1 -0
  86. package/dist/browser/react/schema.d.ts +8 -0
  87. package/dist/browser/react/schema.d.ts.map +1 -1
  88. package/dist/browser/react/trash.d.ts +5 -2
  89. package/dist/browser/react/trash.d.ts.map +1 -1
  90. package/dist/cjs/{ModelProperty-MkN5Rmx7.js → ModelProperty-BeJvgKMw.js} +377 -477
  91. package/dist/cjs/ModelProperty-BeJvgKMw.js.map +1 -0
  92. package/dist/cjs/{Schema-B5cr_JVK.js → Schema-CVs9J6eP.js} +709 -263
  93. package/dist/cjs/Schema-CVs9J6eP.js.map +1 -0
  94. package/dist/cjs/{SchemaValidationService-BgIzc3-r.js → SchemaValidationService-CDKcVRFQ.js} +4 -4
  95. package/dist/cjs/{SchemaValidationService-BgIzc3-r.js.map → SchemaValidationService-CDKcVRFQ.js.map} +1 -1
  96. package/dist/cjs/{getItem-CVJJPky2.js → getItem-B5RYPvrG.js} +4 -4
  97. package/dist/cjs/{getItem-CVJJPky2.js.map → getItem-B5RYPvrG.js.map} +1 -1
  98. package/dist/cjs/{getPublishPayload-DbOc3WA-.js → getPublishPayload-BD1qRob1.js} +26 -11
  99. package/dist/cjs/getPublishPayload-BD1qRob1.js.map +1 -0
  100. package/dist/cjs/{getPublishUploads-NzioLz-3.js → getPublishUploads-CnC9aYxs.js} +5 -5
  101. package/dist/cjs/getPublishUploads-CnC9aYxs.js.map +1 -0
  102. package/dist/cjs/{getSegmentedItemProperties-BsaklLwI.js → getSegmentedItemProperties-B_njnntx.js} +2 -2
  103. package/dist/cjs/{getSegmentedItemProperties-BsaklLwI.js.map → getSegmentedItemProperties-B_njnntx.js.map} +1 -1
  104. package/dist/cjs/{index-BmIVfqGN.js → index-BeKPbbk0.js} +12715 -12384
  105. package/dist/cjs/index-BeKPbbk0.js.map +1 -0
  106. package/dist/cjs/{index-C_0angRB.js → index-Dnywap_P.js} +4 -4
  107. package/dist/cjs/index-Dnywap_P.js.map +1 -0
  108. package/dist/client/actors/platformClassesInit.d.ts.map +1 -1
  109. package/dist/client/actors/processSchemaFiles.d.ts.map +1 -1
  110. package/dist/client/actors/saveAppState.d.ts.map +1 -1
  111. package/dist/db/read/getItemData.d.ts.map +1 -1
  112. package/dist/db/read/getItems.d.ts.map +1 -1
  113. package/dist/db/read/getModelPropertiesData.d.ts +19 -0
  114. package/dist/db/read/getModelPropertiesData.d.ts.map +1 -0
  115. package/dist/db/read/getModelsData.d.ts +15 -0
  116. package/dist/db/read/getModelsData.d.ts.map +1 -0
  117. package/dist/db/read/getPublishPayload.d.ts.map +1 -1
  118. package/dist/db/read/getPublishUploads.d.ts +1 -7
  119. package/dist/db/read/getPublishUploads.d.ts.map +1 -1
  120. package/dist/db/read/getSchemaUidForModel.d.ts.map +1 -1
  121. package/dist/db/write/updateSeedUid.d.ts +7 -0
  122. package/dist/db/write/updateSeedUid.d.ts.map +1 -0
  123. package/dist/eas.d.ts.map +1 -1
  124. package/dist/events/item/index.d.ts.map +1 -1
  125. package/dist/events/item/syncDbWithEas.d.ts.map +1 -1
  126. package/dist/{getItem-CcttmUY_.js → getItem-BB5HBCbK.js} +8 -8
  127. package/dist/{getItem-CcttmUY_.js.map → getItem-BB5HBCbK.js.map} +1 -1
  128. package/dist/{getPublishPayload-NFpqbd_H.js → getPublishPayload-uLm0AqN_.js} +29 -14
  129. package/dist/getPublishPayload-uLm0AqN_.js.map +1 -0
  130. package/dist/{getPublishUploads-Cpb9vgwE.js → getPublishUploads-Dc-HqhO8.js} +9 -9
  131. package/dist/getPublishUploads-Dc-HqhO8.js.map +1 -0
  132. package/dist/{getSegmentedItemProperties-DiyQPMgI.js → getSegmentedItemProperties-BrIqFNfD.js} +2 -2
  133. package/dist/{getSegmentedItemProperties-DiyQPMgI.js.map → getSegmentedItemProperties-BrIqFNfD.js.map} +1 -1
  134. package/dist/helpers/db.d.ts +12 -0
  135. package/dist/helpers/db.d.ts.map +1 -1
  136. package/dist/helpers/entity/entityDestroy.d.ts +41 -0
  137. package/dist/helpers/entity/entityDestroy.d.ts.map +1 -0
  138. package/dist/helpers/entity/index.d.ts +1 -0
  139. package/dist/helpers/entity/index.d.ts.map +1 -1
  140. package/dist/helpers/index.d.ts +1 -0
  141. package/dist/helpers/index.d.ts.map +1 -1
  142. package/dist/helpers/property/index.d.ts +12 -12
  143. package/dist/helpers/property/index.d.ts.map +1 -1
  144. package/dist/helpers/reactiveProxy.d.ts.map +1 -1
  145. package/dist/helpers/schema.d.ts.map +1 -1
  146. package/dist/helpers/updateSchema.d.ts +9 -0
  147. package/dist/helpers/updateSchema.d.ts.map +1 -1
  148. package/dist/helpers/waitForEntityIdle.d.ts +2 -2
  149. package/dist/helpers/waitForEntityIdle.d.ts.map +1 -1
  150. package/dist/imports/json.d.ts.map +1 -1
  151. package/dist/{index-r45w9hEq.js → index-2FcQHgKp.js} +2 -2
  152. package/dist/index-2FcQHgKp.js.map +1 -0
  153. package/dist/{json-I3vJhXo8.js → index-DPll6EAp.js} +12450 -12121
  154. package/dist/index-DPll6EAp.js.map +1 -0
  155. package/dist/{index-CRuq6HVi.js → index-LEY0Og1p.js} +9 -9
  156. package/dist/index-LEY0Og1p.js.map +1 -0
  157. package/dist/index.d.ts +3 -1
  158. package/dist/index.d.ts.map +1 -1
  159. package/dist/interfaces/IItem.d.ts +2 -0
  160. package/dist/interfaces/IItem.d.ts.map +1 -1
  161. package/dist/interfaces/IItemProperty.d.ts +1 -0
  162. package/dist/interfaces/IItemProperty.d.ts.map +1 -1
  163. package/dist/main.cjs +3 -3
  164. package/dist/main.js +999 -1033
  165. package/dist/main.js.map +1 -1
  166. package/dist/node.js +16 -16
  167. package/dist/node.js.map +1 -1
  168. package/dist/{property-Dy09KTxg.js → property-B15X7jLX.js} +7 -5
  169. package/dist/property-B15X7jLX.js.map +1 -0
  170. package/dist/{queries-LZYSuhtz.js → queries-BPDSpiEX.js} +2 -2
  171. package/dist/{queries-LZYSuhtz.js.map → queries-BPDSpiEX.js.map} +1 -1
  172. package/dist/services/write/actors/validateEntity.d.ts.map +1 -1
  173. package/dist/services/write/actors/writeToDatabase.d.ts.map +1 -1
  174. package/dist/services/write/writeProcessMachine.d.ts +1 -1
  175. package/dist/types/index.d.ts +9 -0
  176. package/dist/types/index.d.ts.map +1 -1
  177. package/dist/types/item.d.ts +12 -0
  178. package/dist/types/item.d.ts.map +1 -1
  179. package/dist/types/property.d.ts +6 -0
  180. package/dist/types/property.d.ts.map +1 -1
  181. package/dist/types/publish.d.ts +9 -0
  182. package/dist/types/publish.d.ts.map +1 -0
  183. package/package.json +12 -4
  184. package/dist/ModelProperty-Cr3BmgkC.js.map +0 -1
  185. package/dist/Schema-DeKabJ0T.js.map +0 -1
  186. package/dist/cjs/ModelProperty-MkN5Rmx7.js.map +0 -1
  187. package/dist/cjs/Schema-B5cr_JVK.js.map +0 -1
  188. package/dist/cjs/getPublishPayload-DbOc3WA-.js.map +0 -1
  189. package/dist/cjs/getPublishUploads-NzioLz-3.js.map +0 -1
  190. package/dist/cjs/index-BmIVfqGN.js.map +0 -1
  191. package/dist/cjs/index-C_0angRB.js.map +0 -1
  192. package/dist/events/item/publish.d.ts +0 -7
  193. package/dist/events/item/publish.d.ts.map +0 -1
  194. package/dist/getPublishPayload-NFpqbd_H.js.map +0 -1
  195. package/dist/getPublishUploads-Cpb9vgwE.js.map +0 -1
  196. package/dist/index-CRuq6HVi.js.map +0 -1
  197. package/dist/index-r45w9hEq.js.map +0 -1
  198. package/dist/json-I3vJhXo8.js.map +0 -1
  199. package/dist/property-Dy09KTxg.js.map +0 -1
package/README.md CHANGED
@@ -1,377 +1,67 @@
1
1
  # Seed Protocol SDK
2
2
 
3
- The official SDK for [Seed Protocol](https://seedprotocol.io/).
3
+ The official JavaScript/TypeScript SDK for [Seed Protocol](https://seedprotocol.io)—a local-first, decentralized data layer.
4
4
 
5
- The SDK is a heavily opinionated ORM that saves its database (SQLite) and files (OPFS) within the user's browser. All
6
- user data
7
- is fetched from, or written to, the Ethereum Attestation Service (EAS) and Arweave (More attestation services
8
- and decentralized storage providers will be supported in the future).
5
+ **[→ Full documentation at seedprotocol.io](https://seedprotocol.io)**
9
6
 
10
- With all the remote storage on decentralized, public infrastructure, there's no server component to manage or rely on.
11
-
12
- The hope is that this local-first and distributed approach will make it easier for developers to build apps with Seed
13
- Protocol
14
- without ever custodying user data on their own infrastructure.
15
-
16
- The SDK is currently used and developed by [PermaPress](https://permapress.xyz), the first client for Seed Protocol.
17
- PermaPress is a product developed by JournoLabs (formerly JournoDAO).
18
-
19
- ## Installing
20
-
21
- ```bash
22
- npm install @seedprotocol/sdk
23
- # or
24
- pnpm add @seedprotocol/sdk
25
- # or
26
- bun add @seedprotocol/sdk
27
- ```
28
-
29
- ### Module System Support
30
-
31
- The SDK supports both ESM and CommonJS module systems:
32
-
33
- **ESM (Recommended):**
34
- ```javascript
35
- import { Model, Property, Item } from '@seedprotocol/sdk'
36
- ```
37
-
38
- **CommonJS:**
39
- ```javascript
40
- const { Model, Property, Item } = require('@seedprotocol/sdk')
41
- ```
42
-
43
- ## Getting Started
44
-
45
- The first thing to do when integrating Seed SDK is define your data model by creating a configuration file in the root
46
- of your project. The SDK supports the following file names (in order of preference):
47
-
48
- - `seed.config.ts` (recommended)
49
- - `seed.schema.ts`
50
- - `schema.ts` (legacy)
51
-
52
- As an example, here's the actual data model for PermaPress using `seed.config.ts`:
53
-
54
- ```typescript
55
- import { ImageSrc, List, Model, Relation, Text } from '@/browser/schema'
56
-
57
- @Model
58
- class Image {
59
- @Text() storageTransactionId!: string
60
- @Text() uri!: string
61
- @Text() alt!: string
62
- @ImageSrc() src!: string
63
- }
64
-
65
- @Model
66
- class Post {
67
- @Text() title!: string
68
- @Text() summary!: string
69
- @Relation('Image', 'ImageSrc') featureImage!: string
70
- @Text('ItemStorage', '/html', '.html') html!: string
71
- @Text('ItemStorage', '/json', '.json') json!: string
72
- @Text() storageTransactionId!: string
73
- @List('Identity') authors!: string[]
74
- @Text() importUrl!: string
75
- }
76
-
77
- @Model
78
- class Identity {
79
- @Text() name!: string
80
- @Text() profile!: string
81
- @Text() displayName!: string
82
- @Relation('Image', 'ImageSrc') avatarImage!: string
83
- @Relation('Image', 'ImageSrc') coverImage!: string
84
- }
85
-
86
- @Model
87
- class Link {
88
- @Text() url!: string
89
- @Text() text!: string
90
- }
91
-
92
- const models = {
93
- Identity,
94
- Image,
95
- Link,
96
- Post,
97
- }
98
-
99
- const endpoints = {
100
- filePaths: '/api/seed/migrations',
101
- files: '/app-files',
102
- }
103
-
104
- export { models, endpoints }
105
-
106
- export default { models, endpoints }
107
-
108
- ```
109
-
110
- This will create a database locally in the browser with all the tables and fields necessary to support your Models.
111
-
112
- > [!NOTE]
113
- > The database is a SQLite file stored
114
- > in [OPFS](https://developer.mozilla.org/en-US/docs/Web/API/File_System_API/Origin_private_file_system).
115
- > We recommend using
116
- > the [OPFS Explorer](https://chromewebstore.google.com/detail/opfs-explorer/acndjpgkpaclldomagafnognkcgjignd)
117
- > browser extension to see the files managed by the SDK.
118
-
119
- Notice that we create relationships by defining a `Property` that takes its related `Model` as its type. For one-to-many
120
- relationships, we use the `List` type and pass in the `Model` type we want.
121
-
122
- So creating a Post would look like this:
123
-
124
- ```typescript
125
- import { Post, Image, Identity } from './seed/models'
126
- import html from './index.html'
127
-
128
- const image = await Image.create({
129
- src: 'https://imgr.com/image.jpg',
130
- })
131
-
132
- const author = await Identity.create({
133
- name: 'Keith Axline',
134
- profile: 'Developer for Seed Protocol',
135
- })
136
-
137
- const authors = [
138
- author
139
- ]
140
-
141
- const post = await Post.create({
142
- title: 'Some title',
143
- summary: 'My summary',
144
- featureImage: image,
145
- authors,
146
- })
147
-
148
- await post.publish()
149
-
150
- // And later when we want to update the post
151
- post.title = 'Something else'
152
-
153
- await post.publish()
154
-
155
- ```
156
-
157
- ## Usage
158
-
159
- ### `Item`
160
-
161
- Create
162
-
163
- ```typescript
164
-
165
- ```
166
-
167
- ### Files
168
-
169
- Subscribe to events:
170
-
171
- ```typescript
172
- import { SeedFile } from '@seedprotocol/sdk'
7
+ ---
173
8
 
174
- const fileFromUrl = new SeedFile('https://example.com/file.txt')
9
+ ## What it does
175
10
 
176
- fileFromUrl.subscribe(( event, status ) => {
177
- console.log(`Event: ${event}, Status: ${status}`)
178
- })
11
+ - **Local-first ORM** Define models and properties; the SDK stores data in SQLite and OPFS in the user’s browser.
12
+ - **Decentralized sync** — Data is read from and written to the [Ethereum Attestation Service (EAS)](https://attest.sh) and [Arweave](https://www.arweave.org). No backend for you to run or maintain.
13
+ - **No custody** — User data stays on public infrastructure and in the user’s browser, not on your servers.
179
14
 
180
- await fileFromUrl.save()
15
+ Built and used by [PermaPress](https://permapress.xyz), the first client for Seed Protocol (by [JournoLabs](https://journolabs.xyz)).
181
16
 
182
- ```
17
+ ## Documentation
183
18
 
184
- Create files from various sources:
19
+ For setup, schema definition, models, items, files, and React integration, see:
185
20
 
186
- ```typescript
187
- const fileFromPath = new SeedFile('path/to/file.txt')
21
+ **https://seedprotocol.io**
188
22
 
189
- const fileFromBlob = new SeedFile(new Blob([ 'Hello, World!' ]))
23
+ ## Requirements
190
24
 
191
- const fileFromBuffer = new SeedFile(Buffer.from('Hello, World!'))
25
+ - **Node.js** `>= 20` and `<= 24`
26
+ - **Browser** support: modern browsers with OPFS (e.g. Chromium-based, recent Firefox)
192
27
 
193
- const fileFromFile = new SeedFile(new File([ 'Hello, World!' ], 'file.txt'))
28
+ ## Installation
194
29
 
195
- if ( fileFromPath.isSaved ) {
196
- console.log('File is saved to Arweave and EAS')
197
- }
30
+ ```bash
31
+ bun add @seedprotocol/sdk
32
+ # or
33
+ npm install @seedprotocol/sdk
34
+ # or
35
+ pnpm add @seedprotocol/sdk
198
36
  ```
199
37
 
200
- Use the `SeedFileSystem`
201
-
202
- ```typescript
203
- import { SeedFileSystem } from '@seedprotocol/sdk'
204
-
205
- const fs = new SeedFileSystem()
206
-
207
- fs.subscribe(( event, status ) => {
208
- console.log(`Event: ${event}, Status: ${status}`)
209
- if ( event === 'connection.success' && status === 'connected' ) {
210
- console.log('Connected to user\'s file system')
211
- }
212
-
213
- if ( event === 'connection.error' ) {
214
- console.error('Error connecting to user\'s file system', event.error)
215
- }
216
- })
217
-
218
- await fs.connect() // User prompted to connect browser wallet
219
-
220
- const files = await fs.listFiles('/')
221
-
222
- files.forEach(file => {
223
- console.log(file.name)
224
- console.log(file.size)
225
- console.log(file.seedPath) // Each wallet address has a virtual root directory with directories and file system paths
226
- })
38
+ **Optional (React):** If you use React hooks (`useModel`, `useSchema`, etc.), install peer dependencies:
227
39
 
40
+ ```bash
41
+ bun add react @tanstack/react-query
228
42
  ```
229
43
 
230
- ### Images
231
-
232
- ```typescript
44
+ ## Quick start
233
45
 
234
- import { SeedImage } from '@seedprotocol/sdk'
46
+ 1. **Define your schema** in a config file at the project root: `seed.config.ts` (recommended), `seed.schema.ts`, or `schema.ts`.
235
47
 
236
- const imgFromUrl = new SeedImage('https://example.com/image.png')
48
+ 2. **Use the SDK** in your app:
237
49
 
238
- const imgFromDataUrl = new SeedImage('data:image/png;base64,iVB....')
239
-
240
- await imgFromUrl.save()
241
-
242
- const imgBlob = imgFromUrl.blob()
243
- const imgBuffer = imgFromUrl.buffer()
244
- const imgDataUrl = imgFromUrl.dataUrl()
50
+ ```ts
51
+ import { Model, Property, Item } from '@seedprotocol/sdk'
245
52
 
53
+ // Define models in your schema; then create and publish items:
54
+ const post = await Post.create({ title: 'Hello', summary: '...', ... })
55
+ await post.publish()
246
56
  ```
247
57
 
248
- ```mermaid
249
- ---
250
- Title: Seed Protocol SDK
251
- ---
252
- %%{
253
- init: {
254
- 'theme': 'base',
255
- 'themeVariables': {
256
- 'primaryColor': '#e0f2fe',
257
- 'primaryTextColor': '#0c4a6e',
258
- 'primaryBorderColor': '#38bdf8',
259
- 'lineColor': '#475569',
260
- 'secondaryColor': '#d9f99d',
261
- 'tertiaryColor': '#fff',
262
- 'tertiaryBorderColor': '#7e22ce',
263
- 'tertiaryTextColor': '#7e22ce',
264
- 'clusterBkg': '#fff'
265
- }
266
- }
267
- }%%
268
- flowchart TD
269
- A{Developer}
270
- B{User}
271
- C{Seed Dev}
272
- N{SDK}
273
- Q[App Code]
274
- D[(sdk_config_db)]
275
- E[(seed)]
276
- L[(seeds_db)]
277
- G[Schema/Migration files
278
- browser/db/seedSchema]
279
- H[Schema/Migration files
280
- .seed/schema]
281
- R[Schema/Migration files
282
- node/db/sdkSchema]
283
-
284
- I[browser.seed.db.config.mjs]
285
- J[sdk.db.config.mjs]
286
-
287
- O[files.json
288
- seed/endpoint/list]
289
- P[Files
290
- seed/endpoint/files]
291
-
292
- S[$> seed init]
293
- T[scripts/bin]
58
+ For full guides on schema, models, properties, items, files, and the CLI, see **[the docs](https://seedprotocol.io)**.
294
59
 
295
- subgraph SDK Code
296
- C--changes Seeds or Versions --> I
297
- C-- changes Models or Properties --> J
298
- J-- generates -->R
299
- I-- generates --> G
300
- subgraph Package Bundle
301
- R
302
- G
303
- end
304
- end
60
+ ## Module support
305
61
 
62
+ - **ESM** (recommended): `import { Model, Property, Item } from '@seedprotocol/sdk'`
63
+ - **CommonJS**: `const { Model, Property, Item } = require('@seedprotocol/sdk')`
306
64
 
65
+ ## License
307
66
 
308
- subgraph App Code
309
- A-- adds Models and Properties --> K
310
- subgraph SDK
311
- D
312
- H
313
- end
314
- A-- runs --> S
315
- S-- calls --> T
316
- T-- reads--> K
317
- T-- generates --> D
318
- T-- generates --> H
319
- end
320
-
321
- subgraph App Server
322
- H-- served at endpoint --> O
323
- H-- served at endpoint --> P
324
- end
325
-
326
-
327
-
328
- subgraph Browser
329
- B-- adds data--> Q
330
- subgraph App
331
- Q-- calls SDK--> N
332
- subgraph SDK
333
- E-- notifies -->N
334
- N<-- files . json --> O
335
- N<-- files --> P
336
- N-- updates -->E
337
- N-- updates --> L
338
-
339
- end
340
- end
341
- end
342
-
343
-
344
- ```
345
-
346
- A[Versions From EAS]
347
- B[Seeds From EAS]
348
- C[List of Items]
349
- D[List of Properties]
350
- E{Property Machine}
351
- F{Item Machine}
352
- G{Items Machine}
353
-
354
- ```mermaid
355
- sequenceDiagram
356
- Items Service ->>+ EAS: Seeds Request
357
- EAS -->>+ Items Service: Seed Attestations
358
- loop Each Seed Attestation
359
- Items Service ->>+ Items Service: Extract Seed Uid
360
- end
361
- Note over Items Service: Now we have SeedUid[]
362
- Items Service ->>+ EAS: Versions Request w/ SeedUid[]
363
- EAS -->>+ Items Service: Version Attestations
364
- loop Each SeedUid
365
- Items Service ->>+ Items Service: Sort Version Uids DESC
366
- end
367
- loop Each most recent Version for Seed
368
- Items Service ->>+ Item Service: Create Item
369
- end
370
- Note over Items Service: Now we have VersionUid[] for each SeedUid<br />sorted by `createdAt` DESC
371
- Item Service ->>+ EAS: Properties Request w/ VersionUid[]
372
- EAS -->>+ Item Service: Properties Attestations
373
- loop Each Property Attestation
374
- Item Service ->>+ Property Service: Create Property Service
375
- end
376
- Note over Item Service: Now has all Property Services<br />under this._services
377
- ```
67
+ MIT
@@ -1,20 +1,20 @@
1
- import { z as BaseArweaveClient } from './json-I3vJhXo8.js';
1
+ import { u as BaseArweaveClient } from './index-DPll6EAp.js';
2
2
  import { GraphQLClient } from 'graphql-request';
3
3
  import Arweave from 'arweave';
4
- import { G as GET_TRANSACTION_TAGS } from './queries-LZYSuhtz.js';
4
+ import { G as GET_TRANSACTION_TAGS } from './queries-BPDSpiEX.js';
5
5
  import debug from 'debug';
6
6
  import 'xstate';
7
+ import 'drizzle-orm/sqlite-core';
7
8
  import 'drizzle-orm';
9
+ import 'nanoid';
10
+ import 'nanoid-dictionary';
8
11
  import 'pluralize';
12
+ import 'ethers';
9
13
  import 'rxjs';
10
14
  import 'lodash-es';
11
15
  import 'drizzle-orm/casing';
12
- import '@sinclair/typebox';
13
16
  import 'eventemitter3';
14
- import 'drizzle-orm/sqlite-core';
15
- import 'ethers';
16
- import 'nanoid';
17
- import 'nanoid-dictionary';
17
+ import '@sinclair/typebox';
18
18
 
19
19
  const logger = debug("seedSdk:browser:ArweaveClient");
20
20
  // Cached Arweave instance
@@ -199,4 +199,4 @@ class ArweaveClient extends BaseArweaveClient {
199
199
  BaseArweaveClient.setPlatformClass(ArweaveClient);
200
200
 
201
201
  export { ArweaveClient };
202
- //# sourceMappingURL=ArweaveClient-CleX_4Gw.js.map
202
+ //# sourceMappingURL=ArweaveClient-CgWK-JgT.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ArweaveClient-CleX_4Gw.js","sources":["../src/browser/helpers/ArweaveClient.ts"],"sourcesContent":["import { BaseArweaveClient } from \"@/helpers/ArweaveClient/BaseArweaveClient\";\nimport { GraphQLClient } from \"graphql-request\";\nimport Arweave from \"arweave\";\nimport type {\n TransactionStatus,\n TransactionTag,\n GetDataOptions,\n DownloadFilesParams,\n DownloadResult,\n CreateTransactionOptions,\n} from \"@/types/arweave\";\nimport { GET_TRANSACTION_TAGS } from \"@/helpers/ArweaveClient/queries\";\nimport debug from \"debug\";\n\nconst logger = debug(\"seedSdk:browser:ArweaveClient\");\n\n// Cached Arweave instance\nlet _arweaveInstance: Arweave | null = null;\n\n/**\n * Get or create the Arweave instance for browser\n */\nconst getArweaveInstance = (): Arweave => {\n if (_arweaveInstance) {\n return _arweaveInstance;\n }\n\n const host = BaseArweaveClient.getHost();\n\n // Handle both ES modules and CommonJS exports from arweave package\n if (\"default\" in Arweave && typeof (Arweave as any).default?.init === \"function\") {\n _arweaveInstance = (Arweave as any).default.init({\n host,\n protocol: \"https\",\n });\n } else {\n _arweaveInstance = Arweave.init({\n host,\n protocol: \"https\",\n });\n }\n\n return _arweaveInstance!;\n};\n\nclass ArweaveClient extends BaseArweaveClient {\n /**\n * Get the GraphQL client for Arweave queries\n */\n static getArweaveClient(): GraphQLClient {\n return new GraphQLClient(BaseArweaveClient.getEndpoint());\n }\n\n /**\n * Get the status of a transaction\n */\n static async getTransactionStatus(transactionId: string): Promise<TransactionStatus> {\n const url = BaseArweaveClient.getStatusUrl(transactionId);\n \n try {\n const response = await fetch(url);\n \n if (response.status === 404) {\n return {\n status: 404,\n confirmed: null,\n };\n }\n\n if (!response.ok) {\n return {\n status: response.status,\n confirmed: null,\n };\n }\n\n const data = await response.json();\n return {\n status: 200,\n confirmed: {\n block_height: data.block_height,\n block_indep_hash: data.block_indep_hash,\n number_of_confirmations: data.number_of_confirmations,\n },\n };\n } catch (error) {\n logger(\"Error fetching transaction status:\", error);\n return {\n status: 500,\n confirmed: null,\n };\n }\n }\n\n /**\n * Get transaction data\n */\n static async getTransactionData(\n transactionId: string,\n options?: GetDataOptions\n ): Promise<Uint8Array | string> {\n const arweave = getArweaveInstance();\n\n try {\n const data = await arweave.transactions.getData(transactionId, {\n decode: options?.decode ?? true,\n string: options?.string ?? false,\n });\n\n if (options?.string && typeof data === \"string\") {\n return data;\n }\n\n // Ensure we return Uint8Array\n if (data instanceof Uint8Array) {\n return data;\n }\n\n // Handle string data when not requesting string\n if (typeof data === \"string\") {\n return new TextEncoder().encode(data);\n }\n\n return data as Uint8Array;\n } catch (error) {\n logger(\"Error fetching transaction data:\", error);\n throw error;\n }\n }\n\n /**\n * Get transaction tags via GraphQL\n */\n static async getTransactionTags(transactionId: string): Promise<TransactionTag[]> {\n const client = this.getArweaveClient();\n \n try {\n const result = await client.request(GET_TRANSACTION_TAGS, { transactionId });\n \n if (!result.tags?.tags) {\n return [];\n }\n\n return result.tags.tags.map((tag: { name: string; value: string }) => ({\n name: tag.name,\n value: tag.value,\n }));\n } catch (error) {\n logger(\"Error fetching transaction tags:\", error);\n return [];\n }\n }\n\n /**\n * Create a new unsigned transaction\n */\n static async createTransaction(\n data: string | Uint8Array,\n options?: CreateTransactionOptions\n ): Promise<any> {\n const arweave = getArweaveInstance();\n\n const tx = await arweave.createTransaction({\n data,\n });\n\n // Add tags if provided\n if (options?.tags) {\n for (const tag of options.tags) {\n tx.addTag(tag.name, tag.value);\n }\n }\n\n return tx;\n }\n\n /**\n * Download multiple files from Arweave\n */\n static async downloadFiles(params: DownloadFilesParams): Promise<DownloadResult[]> {\n const { transactionIds, excludedTransactions } = params;\n const results: DownloadResult[] = [];\n const host = BaseArweaveClient.getHost();\n\n for (const transactionId of transactionIds) {\n // Skip excluded transactions\n if (excludedTransactions?.has(transactionId)) {\n continue;\n }\n\n try {\n const url = `https://${host}/raw/${transactionId}`;\n const response = await fetch(url);\n\n if (!response.ok) {\n results.push({\n transactionId,\n success: false,\n error: `HTTP ${response.status}: ${response.statusText}`,\n });\n continue;\n }\n\n const arrayBuffer = await response.arrayBuffer();\n const data = new Uint8Array(arrayBuffer);\n\n // Detect content type\n const contentType = response.headers.get(\"content-type\") || undefined;\n\n results.push({\n transactionId,\n success: true,\n contentType,\n data,\n });\n } catch (error) {\n logger(`Error downloading transaction ${transactionId}:`, error);\n results.push({\n transactionId,\n success: false,\n error: error instanceof Error ? error.message : String(error),\n });\n }\n }\n\n return results;\n }\n}\n\nBaseArweaveClient.setPlatformClass(ArweaveClient);\n\nexport { ArweaveClient };"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ArweaveClient-CgWK-JgT.js","sources":["../src/browser/helpers/ArweaveClient.ts"],"sourcesContent":["import { BaseArweaveClient } from \"@/helpers/ArweaveClient/BaseArweaveClient\";\nimport { GraphQLClient } from \"graphql-request\";\nimport Arweave from \"arweave\";\nimport type {\n TransactionStatus,\n TransactionTag,\n GetDataOptions,\n DownloadFilesParams,\n DownloadResult,\n CreateTransactionOptions,\n} from \"@/types/arweave\";\nimport { GET_TRANSACTION_TAGS } from \"@/helpers/ArweaveClient/queries\";\nimport debug from \"debug\";\n\nconst logger = debug(\"seedSdk:browser:ArweaveClient\");\n\n// Cached Arweave instance\nlet _arweaveInstance: Arweave | null = null;\n\n/**\n * Get or create the Arweave instance for browser\n */\nconst getArweaveInstance = (): Arweave => {\n if (_arweaveInstance) {\n return _arweaveInstance;\n }\n\n const host = BaseArweaveClient.getHost();\n\n // Handle both ES modules and CommonJS exports from arweave package\n if (\"default\" in Arweave && typeof (Arweave as any).default?.init === \"function\") {\n _arweaveInstance = (Arweave as any).default.init({\n host,\n protocol: \"https\",\n });\n } else {\n _arweaveInstance = Arweave.init({\n host,\n protocol: \"https\",\n });\n }\n\n return _arweaveInstance!;\n};\n\nclass ArweaveClient extends BaseArweaveClient {\n /**\n * Get the GraphQL client for Arweave queries\n */\n static getArweaveClient(): GraphQLClient {\n return new GraphQLClient(BaseArweaveClient.getEndpoint());\n }\n\n /**\n * Get the status of a transaction\n */\n static async getTransactionStatus(transactionId: string): Promise<TransactionStatus> {\n const url = BaseArweaveClient.getStatusUrl(transactionId);\n \n try {\n const response = await fetch(url);\n \n if (response.status === 404) {\n return {\n status: 404,\n confirmed: null,\n };\n }\n\n if (!response.ok) {\n return {\n status: response.status,\n confirmed: null,\n };\n }\n\n const data = await response.json();\n return {\n status: 200,\n confirmed: {\n block_height: data.block_height,\n block_indep_hash: data.block_indep_hash,\n number_of_confirmations: data.number_of_confirmations,\n },\n };\n } catch (error) {\n logger(\"Error fetching transaction status:\", error);\n return {\n status: 500,\n confirmed: null,\n };\n }\n }\n\n /**\n * Get transaction data\n */\n static async getTransactionData(\n transactionId: string,\n options?: GetDataOptions\n ): Promise<Uint8Array | string> {\n const arweave = getArweaveInstance();\n\n try {\n const data = await arweave.transactions.getData(transactionId, {\n decode: options?.decode ?? true,\n string: options?.string ?? false,\n });\n\n if (options?.string && typeof data === \"string\") {\n return data;\n }\n\n // Ensure we return Uint8Array\n if (data instanceof Uint8Array) {\n return data;\n }\n\n // Handle string data when not requesting string\n if (typeof data === \"string\") {\n return new TextEncoder().encode(data);\n }\n\n return data as Uint8Array;\n } catch (error) {\n logger(\"Error fetching transaction data:\", error);\n throw error;\n }\n }\n\n /**\n * Get transaction tags via GraphQL\n */\n static async getTransactionTags(transactionId: string): Promise<TransactionTag[]> {\n const client = this.getArweaveClient();\n \n try {\n const result = await client.request(GET_TRANSACTION_TAGS, { transactionId });\n \n if (!result.tags?.tags) {\n return [];\n }\n\n return result.tags.tags.map((tag: { name: string; value: string }) => ({\n name: tag.name,\n value: tag.value,\n }));\n } catch (error) {\n logger(\"Error fetching transaction tags:\", error);\n return [];\n }\n }\n\n /**\n * Create a new unsigned transaction\n */\n static async createTransaction(\n data: string | Uint8Array,\n options?: CreateTransactionOptions\n ): Promise<any> {\n const arweave = getArweaveInstance();\n\n const tx = await arweave.createTransaction({\n data,\n });\n\n // Add tags if provided\n if (options?.tags) {\n for (const tag of options.tags) {\n tx.addTag(tag.name, tag.value);\n }\n }\n\n return tx;\n }\n\n /**\n * Download multiple files from Arweave\n */\n static async downloadFiles(params: DownloadFilesParams): Promise<DownloadResult[]> {\n const { transactionIds, excludedTransactions } = params;\n const results: DownloadResult[] = [];\n const host = BaseArweaveClient.getHost();\n\n for (const transactionId of transactionIds) {\n // Skip excluded transactions\n if (excludedTransactions?.has(transactionId)) {\n continue;\n }\n\n try {\n const url = `https://${host}/raw/${transactionId}`;\n const response = await fetch(url);\n\n if (!response.ok) {\n results.push({\n transactionId,\n success: false,\n error: `HTTP ${response.status}: ${response.statusText}`,\n });\n continue;\n }\n\n const arrayBuffer = await response.arrayBuffer();\n const data = new Uint8Array(arrayBuffer);\n\n // Detect content type\n const contentType = response.headers.get(\"content-type\") || undefined;\n\n results.push({\n transactionId,\n success: true,\n contentType,\n data,\n });\n } catch (error) {\n logger(`Error downloading transaction ${transactionId}:`, error);\n results.push({\n transactionId,\n success: false,\n error: error instanceof Error ? error.message : String(error),\n });\n }\n }\n\n return results;\n }\n}\n\nBaseArweaveClient.setPlatformClass(ArweaveClient);\n\nexport { ArweaveClient };"],"names":[],"mappings":"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"}
@@ -1,20 +1,20 @@
1
- import { z as BaseArweaveClient } from './json-I3vJhXo8.js';
1
+ import { u as BaseArweaveClient } from './index-DPll6EAp.js';
2
2
  import { GraphQLClient } from 'graphql-request';
3
3
  import Arweave from 'arweave';
4
- import { G as GET_TRANSACTION_TAGS } from './queries-LZYSuhtz.js';
4
+ import { G as GET_TRANSACTION_TAGS } from './queries-BPDSpiEX.js';
5
5
  import debug from 'debug';
6
6
  import 'xstate';
7
+ import 'drizzle-orm/sqlite-core';
7
8
  import 'drizzle-orm';
9
+ import 'nanoid';
10
+ import 'nanoid-dictionary';
8
11
  import 'pluralize';
12
+ import 'ethers';
9
13
  import 'rxjs';
10
14
  import 'lodash-es';
11
15
  import 'drizzle-orm/casing';
12
- import '@sinclair/typebox';
13
16
  import 'eventemitter3';
14
- import 'drizzle-orm/sqlite-core';
15
- import 'ethers';
16
- import 'nanoid';
17
- import 'nanoid-dictionary';
17
+ import '@sinclair/typebox';
18
18
 
19
19
  const logger = debug('seedSdk:node:ArweaveClient');
20
20
  // Cached Arweave instance
@@ -199,4 +199,4 @@ class ArweaveClient extends BaseArweaveClient {
199
199
  BaseArweaveClient.setPlatformClass(ArweaveClient);
200
200
 
201
201
  export { ArweaveClient };
202
- //# sourceMappingURL=ArweaveClient-BvJ1FhQ5.js.map
202
+ //# sourceMappingURL=ArweaveClient-WcG8CZAE.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ArweaveClient-BvJ1FhQ5.js","sources":["../src/node/helpers/ArweaveClient.ts"],"sourcesContent":["import { BaseArweaveClient } from '@/helpers/ArweaveClient/BaseArweaveClient';\nimport { GraphQLClient } from 'graphql-request';\nimport Arweave from 'arweave';\nimport type {\n TransactionStatus,\n TransactionTag,\n GetDataOptions,\n DownloadFilesParams,\n DownloadResult,\n CreateTransactionOptions,\n} from '@/types/arweave';\nimport { GET_TRANSACTION_TAGS } from '@/helpers/ArweaveClient/queries';\nimport debug from 'debug';\n\nconst logger = debug('seedSdk:node:ArweaveClient');\n\n// Cached Arweave instance\nlet _arweaveInstance: Arweave | null = null;\n\n/**\n * Get or create the Arweave instance for Node.js\n */\nconst getArweaveInstance = (): Arweave => {\n if (_arweaveInstance) {\n return _arweaveInstance;\n }\n\n const host = BaseArweaveClient.getHost();\n\n // Handle both ES modules and CommonJS exports from arweave package\n if ('default' in Arweave && typeof (Arweave as any).default?.init === 'function') {\n _arweaveInstance = (Arweave as any).default.init({\n host,\n protocol: 'https',\n });\n } else {\n _arweaveInstance = Arweave.init({\n host,\n protocol: 'https',\n });\n }\n\n return _arweaveInstance!;\n};\n\nclass ArweaveClient extends BaseArweaveClient {\n /**\n * Get the GraphQL client for Arweave queries\n */\n static getArweaveClient(): GraphQLClient {\n return new GraphQLClient(BaseArweaveClient.getEndpoint());\n }\n\n /**\n * Get the status of a transaction\n */\n static async getTransactionStatus(transactionId: string): Promise<TransactionStatus> {\n const url = BaseArweaveClient.getStatusUrl(transactionId);\n \n try {\n const response = await fetch(url);\n \n if (response.status === 404) {\n return {\n status: 404,\n confirmed: null,\n };\n }\n\n if (!response.ok) {\n return {\n status: response.status,\n confirmed: null,\n };\n }\n\n const data = await response.json();\n return {\n status: 200,\n confirmed: {\n block_height: data.block_height,\n block_indep_hash: data.block_indep_hash,\n number_of_confirmations: data.number_of_confirmations,\n },\n };\n } catch (error) {\n logger('Error fetching transaction status:', error);\n return {\n status: 500,\n confirmed: null,\n };\n }\n }\n\n /**\n * Get transaction data\n */\n static async getTransactionData(\n transactionId: string,\n options?: GetDataOptions\n ): Promise<Uint8Array | string> {\n const arweave = getArweaveInstance();\n\n try {\n const data = await arweave.transactions.getData(transactionId, {\n decode: options?.decode ?? true,\n string: options?.string ?? false,\n });\n\n if (options?.string && typeof data === 'string') {\n return data;\n }\n\n // Ensure we return Uint8Array\n if (data instanceof Uint8Array) {\n return data;\n }\n\n // Handle string data when not requesting string\n if (typeof data === 'string') {\n return new TextEncoder().encode(data);\n }\n\n return data as Uint8Array;\n } catch (error) {\n logger('Error fetching transaction data:', error);\n throw error;\n }\n }\n\n /**\n * Get transaction tags via GraphQL\n */\n static async getTransactionTags(transactionId: string): Promise<TransactionTag[]> {\n const client = this.getArweaveClient();\n \n try {\n const result = await client.request(GET_TRANSACTION_TAGS, { transactionId });\n \n if (!result.tags?.tags) {\n return [];\n }\n\n return result.tags.tags.map((tag: { name: string; value: string }) => ({\n name: tag.name,\n value: tag.value,\n }));\n } catch (error) {\n logger('Error fetching transaction tags:', error);\n return [];\n }\n }\n\n /**\n * Create a new unsigned transaction\n */\n static async createTransaction(\n data: string | Uint8Array,\n options?: CreateTransactionOptions\n ): Promise<any> {\n const arweave = getArweaveInstance();\n\n const tx = await arweave.createTransaction({\n data,\n });\n\n // Add tags if provided\n if (options?.tags) {\n for (const tag of options.tags) {\n tx.addTag(tag.name, tag.value);\n }\n }\n\n return tx;\n }\n\n /**\n * Download multiple files from Arweave\n */\n static async downloadFiles(params: DownloadFilesParams): Promise<DownloadResult[]> {\n const { transactionIds, excludedTransactions } = params;\n const results: DownloadResult[] = [];\n const host = BaseArweaveClient.getHost();\n\n for (const transactionId of transactionIds) {\n // Skip excluded transactions\n if (excludedTransactions?.has(transactionId)) {\n continue;\n }\n\n try {\n const url = `https://${host}/raw/${transactionId}`;\n const response = await fetch(url);\n\n if (!response.ok) {\n results.push({\n transactionId,\n success: false,\n error: `HTTP ${response.status}: ${response.statusText}`,\n });\n continue;\n }\n\n const arrayBuffer = await response.arrayBuffer();\n const data = new Uint8Array(arrayBuffer);\n\n // Detect content type\n const contentType = response.headers.get('content-type') || undefined;\n\n results.push({\n transactionId,\n success: true,\n contentType,\n data,\n });\n } catch (error) {\n logger(`Error downloading transaction ${transactionId}:`, error);\n results.push({\n transactionId,\n success: false,\n error: error instanceof Error ? error.message : String(error),\n });\n }\n }\n\n return results;\n }\n}\n\nBaseArweaveClient.setPlatformClass(ArweaveClient);\n\nexport { ArweaveClient };"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ArweaveClient-WcG8CZAE.js","sources":["../src/node/helpers/ArweaveClient.ts"],"sourcesContent":["import { BaseArweaveClient } from '@/helpers/ArweaveClient/BaseArweaveClient';\nimport { GraphQLClient } from 'graphql-request';\nimport Arweave from 'arweave';\nimport type {\n TransactionStatus,\n TransactionTag,\n GetDataOptions,\n DownloadFilesParams,\n DownloadResult,\n CreateTransactionOptions,\n} from '@/types/arweave';\nimport { GET_TRANSACTION_TAGS } from '@/helpers/ArweaveClient/queries';\nimport debug from 'debug';\n\nconst logger = debug('seedSdk:node:ArweaveClient');\n\n// Cached Arweave instance\nlet _arweaveInstance: Arweave | null = null;\n\n/**\n * Get or create the Arweave instance for Node.js\n */\nconst getArweaveInstance = (): Arweave => {\n if (_arweaveInstance) {\n return _arweaveInstance;\n }\n\n const host = BaseArweaveClient.getHost();\n\n // Handle both ES modules and CommonJS exports from arweave package\n if ('default' in Arweave && typeof (Arweave as any).default?.init === 'function') {\n _arweaveInstance = (Arweave as any).default.init({\n host,\n protocol: 'https',\n });\n } else {\n _arweaveInstance = Arweave.init({\n host,\n protocol: 'https',\n });\n }\n\n return _arweaveInstance!;\n};\n\nclass ArweaveClient extends BaseArweaveClient {\n /**\n * Get the GraphQL client for Arweave queries\n */\n static getArweaveClient(): GraphQLClient {\n return new GraphQLClient(BaseArweaveClient.getEndpoint());\n }\n\n /**\n * Get the status of a transaction\n */\n static async getTransactionStatus(transactionId: string): Promise<TransactionStatus> {\n const url = BaseArweaveClient.getStatusUrl(transactionId);\n \n try {\n const response = await fetch(url);\n \n if (response.status === 404) {\n return {\n status: 404,\n confirmed: null,\n };\n }\n\n if (!response.ok) {\n return {\n status: response.status,\n confirmed: null,\n };\n }\n\n const data = await response.json();\n return {\n status: 200,\n confirmed: {\n block_height: data.block_height,\n block_indep_hash: data.block_indep_hash,\n number_of_confirmations: data.number_of_confirmations,\n },\n };\n } catch (error) {\n logger('Error fetching transaction status:', error);\n return {\n status: 500,\n confirmed: null,\n };\n }\n }\n\n /**\n * Get transaction data\n */\n static async getTransactionData(\n transactionId: string,\n options?: GetDataOptions\n ): Promise<Uint8Array | string> {\n const arweave = getArweaveInstance();\n\n try {\n const data = await arweave.transactions.getData(transactionId, {\n decode: options?.decode ?? true,\n string: options?.string ?? false,\n });\n\n if (options?.string && typeof data === 'string') {\n return data;\n }\n\n // Ensure we return Uint8Array\n if (data instanceof Uint8Array) {\n return data;\n }\n\n // Handle string data when not requesting string\n if (typeof data === 'string') {\n return new TextEncoder().encode(data);\n }\n\n return data as Uint8Array;\n } catch (error) {\n logger('Error fetching transaction data:', error);\n throw error;\n }\n }\n\n /**\n * Get transaction tags via GraphQL\n */\n static async getTransactionTags(transactionId: string): Promise<TransactionTag[]> {\n const client = this.getArweaveClient();\n \n try {\n const result = await client.request(GET_TRANSACTION_TAGS, { transactionId });\n \n if (!result.tags?.tags) {\n return [];\n }\n\n return result.tags.tags.map((tag: { name: string; value: string }) => ({\n name: tag.name,\n value: tag.value,\n }));\n } catch (error) {\n logger('Error fetching transaction tags:', error);\n return [];\n }\n }\n\n /**\n * Create a new unsigned transaction\n */\n static async createTransaction(\n data: string | Uint8Array,\n options?: CreateTransactionOptions\n ): Promise<any> {\n const arweave = getArweaveInstance();\n\n const tx = await arweave.createTransaction({\n data,\n });\n\n // Add tags if provided\n if (options?.tags) {\n for (const tag of options.tags) {\n tx.addTag(tag.name, tag.value);\n }\n }\n\n return tx;\n }\n\n /**\n * Download multiple files from Arweave\n */\n static async downloadFiles(params: DownloadFilesParams): Promise<DownloadResult[]> {\n const { transactionIds, excludedTransactions } = params;\n const results: DownloadResult[] = [];\n const host = BaseArweaveClient.getHost();\n\n for (const transactionId of transactionIds) {\n // Skip excluded transactions\n if (excludedTransactions?.has(transactionId)) {\n continue;\n }\n\n try {\n const url = `https://${host}/raw/${transactionId}`;\n const response = await fetch(url);\n\n if (!response.ok) {\n results.push({\n transactionId,\n success: false,\n error: `HTTP ${response.status}: ${response.statusText}`,\n });\n continue;\n }\n\n const arrayBuffer = await response.arrayBuffer();\n const data = new Uint8Array(arrayBuffer);\n\n // Detect content type\n const contentType = response.headers.get('content-type') || undefined;\n\n results.push({\n transactionId,\n success: true,\n contentType,\n data,\n });\n } catch (error) {\n logger(`Error downloading transaction ${transactionId}:`, error);\n results.push({\n transactionId,\n success: false,\n error: error instanceof Error ? error.message : String(error),\n });\n }\n }\n\n return results;\n }\n}\n\nBaseArweaveClient.setPlatformClass(ArweaveClient);\n\nexport { ArweaveClient };"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAcA,MAAM,MAAM,GAAG,KAAK,CAAC,4BAA4B,CAAC;AAElD;AACA,IAAI,gBAAgB,GAAmB,IAAI;AAE3C;;AAEG;AACH,MAAM,kBAAkB,GAAG,MAAc;IACvC,IAAI,gBAAgB,EAAE;AACpB,QAAA,OAAO,gBAAgB;IACzB;AAEA,IAAA,MAAM,IAAI,GAAG,iBAAiB,CAAC,OAAO,EAAE;;AAGxC,IAAA,IAAI,SAAS,IAAI,OAAO,IAAI,OAAQ,OAAe,CAAC,OAAO,EAAE,IAAI,KAAK,UAAU,EAAE;AAChF,QAAA,gBAAgB,GAAI,OAAe,CAAC,OAAO,CAAC,IAAI,CAAC;YAC/C,IAAI;AACJ,YAAA,QAAQ,EAAE,OAAO;AAClB,SAAA,CAAC;IACJ;SAAO;AACL,QAAA,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;YAC9B,IAAI;AACJ,YAAA,QAAQ,EAAE,OAAO;AAClB,SAAA,CAAC;IACJ;AAEA,IAAA,OAAO,gBAAiB;AAC1B,CAAC;AAED,MAAM,aAAc,SAAQ,iBAAiB,CAAA;AAC3C;;AAEG;AACH,IAAA,OAAO,gBAAgB,GAAA;QACrB,OAAO,IAAI,aAAa,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC;IAC3D;AAEA;;AAEG;AACH,IAAA,aAAa,oBAAoB,CAAC,aAAqB,EAAA;QACrD,MAAM,GAAG,GAAG,iBAAiB,CAAC,YAAY,CAAC,aAAa,CAAC;AAEzD,QAAA,IAAI;AACF,YAAA,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC;AAEjC,YAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;gBAC3B,OAAO;AACL,oBAAA,MAAM,EAAE,GAAG;AACX,oBAAA,SAAS,EAAE,IAAI;iBAChB;YACH;AAEA,YAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;gBAChB,OAAO;oBACL,MAAM,EAAE,QAAQ,CAAC,MAAM;AACvB,oBAAA,SAAS,EAAE,IAAI;iBAChB;YACH;AAEA,YAAA,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE;YAClC,OAAO;AACL,gBAAA,MAAM,EAAE,GAAG;AACX,gBAAA,SAAS,EAAE;oBACT,YAAY,EAAE,IAAI,CAAC,YAAY;oBAC/B,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;oBACvC,uBAAuB,EAAE,IAAI,CAAC,uBAAuB;AACtD,iBAAA;aACF;QACH;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,MAAM,CAAC,oCAAoC,EAAE,KAAK,CAAC;YACnD,OAAO;AACL,gBAAA,MAAM,EAAE,GAAG;AACX,gBAAA,SAAS,EAAE,IAAI;aAChB;QACH;IACF;AAEA;;AAEG;AACH,IAAA,aAAa,kBAAkB,CAC7B,aAAqB,EACrB,OAAwB,EAAA;AAExB,QAAA,MAAM,OAAO,GAAG,kBAAkB,EAAE;AAEpC,QAAA,IAAI;YACF,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,aAAa,EAAE;AAC7D,gBAAA,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,IAAI;AAC/B,gBAAA,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,KAAK;AACjC,aAAA,CAAC;YAEF,IAAI,OAAO,EAAE,MAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAC/C,gBAAA,OAAO,IAAI;YACb;;AAGA,YAAA,IAAI,IAAI,YAAY,UAAU,EAAE;AAC9B,gBAAA,OAAO,IAAI;YACb;;AAGA,YAAA,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;gBAC5B,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;YACvC;AAEA,YAAA,OAAO,IAAkB;QAC3B;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,MAAM,CAAC,kCAAkC,EAAE,KAAK,CAAC;AACjD,YAAA,MAAM,KAAK;QACb;IACF;AAEA;;AAEG;AACH,IAAA,aAAa,kBAAkB,CAAC,aAAqB,EAAA;AACnD,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,EAAE;AAEtC,QAAA,IAAI;AACF,YAAA,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,aAAa,EAAE,CAAC;AAE5E,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE;AACtB,gBAAA,OAAO,EAAE;YACX;AAEA,YAAA,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAoC,MAAM;gBACrE,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,KAAK,EAAE,GAAG,CAAC,KAAK;AACjB,aAAA,CAAC,CAAC;QACL;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,MAAM,CAAC,kCAAkC,EAAE,KAAK,CAAC;AACjD,YAAA,OAAO,EAAE;QACX;IACF;AAEA;;AAEG;AACH,IAAA,aAAa,iBAAiB,CAC5B,IAAyB,EACzB,OAAkC,EAAA;AAElC,QAAA,MAAM,OAAO,GAAG,kBAAkB,EAAE;AAEpC,QAAA,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,iBAAiB,CAAC;YACzC,IAAI;AACL,SAAA,CAAC;;AAGF,QAAA,IAAI,OAAO,EAAE,IAAI,EAAE;AACjB,YAAA,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE;gBAC9B,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC;YAChC;QACF;AAEA,QAAA,OAAO,EAAE;IACX;AAEA;;AAEG;AACH,IAAA,aAAa,aAAa,CAAC,MAA2B,EAAA;AACpD,QAAA,MAAM,EAAE,cAAc,EAAE,oBAAoB,EAAE,GAAG,MAAM;QACvD,MAAM,OAAO,GAAqB,EAAE;AACpC,QAAA,MAAM,IAAI,GAAG,iBAAiB,CAAC,OAAO,EAAE;AAExC,QAAA,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE;;AAE1C,YAAA,IAAI,oBAAoB,EAAE,GAAG,CAAC,aAAa,CAAC,EAAE;gBAC5C;YACF;AAEA,YAAA,IAAI;AACF,gBAAA,MAAM,GAAG,GAAG,CAAA,QAAA,EAAW,IAAI,CAAA,KAAA,EAAQ,aAAa,EAAE;AAClD,gBAAA,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC;AAEjC,gBAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;oBAChB,OAAO,CAAC,IAAI,CAAC;wBACX,aAAa;AACb,wBAAA,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,QAAQ,QAAQ,CAAC,MAAM,CAAA,EAAA,EAAK,QAAQ,CAAC,UAAU,CAAA,CAAE;AACzD,qBAAA,CAAC;oBACF;gBACF;AAEA,gBAAA,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE;AAChD,gBAAA,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC;;AAGxC,gBAAA,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,SAAS;gBAErE,OAAO,CAAC,IAAI,CAAC;oBACX,aAAa;AACb,oBAAA,OAAO,EAAE,IAAI;oBACb,WAAW;oBACX,IAAI;AACL,iBAAA,CAAC;YACJ;YAAE,OAAO,KAAK,EAAE;AACd,gBAAA,MAAM,CAAC,CAAA,8BAAA,EAAiC,aAAa,GAAG,EAAE,KAAK,CAAC;gBAChE,OAAO,CAAC,IAAI,CAAC;oBACX,aAAa;AACb,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,KAAK,EAAE,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC;AAC9D,iBAAA,CAAC;YACJ;QACF;AAEA,QAAA,OAAO,OAAO;IAChB;AACD;AAED,iBAAiB,CAAC,gBAAgB,CAAC,aAAa,CAAC;;;;"}
@@ -1,23 +1,23 @@
1
- import { p as BaseDb, s as BaseFileManager } from './json-I3vJhXo8.js';
1
+ import { p as BaseDb, x as BaseFileManager } from './index-DPll6EAp.js';
2
2
  import debug from 'debug';
3
3
  import { sql } from 'drizzle-orm';
4
4
  import { readMigrationFiles } from 'drizzle-orm/migrator';
5
5
  import { drizzle } from 'drizzle-orm/sqlite-proxy';
6
6
  import { migrate } from 'drizzle-orm/sqlite-proxy/migrator';
7
- import { s as schema } from './index-r45w9hEq.js';
7
+ import { s as schema } from './index-2FcQHgKp.js';
8
8
  import { SQLocalDrizzle } from 'sqlocal/drizzle';
9
9
  import { Observable, distinctUntilChanged } from 'rxjs';
10
10
  import 'xstate';
11
+ import 'drizzle-orm/sqlite-core';
12
+ import 'nanoid';
13
+ import 'nanoid-dictionary';
11
14
  import 'pluralize';
15
+ import 'ethers';
12
16
  import 'lodash-es';
13
17
  import 'drizzle-orm/casing';
14
- import '@sinclair/typebox';
15
- import 'arweave';
16
18
  import 'eventemitter3';
17
- import 'drizzle-orm/sqlite-core';
18
- import 'ethers';
19
- import 'nanoid';
20
- import 'nanoid-dictionary';
19
+ import 'arweave';
20
+ import '@sinclair/typebox';
21
21
 
22
22
  // This file embeds the drizzle migration files as strings for browser runtime
23
23
  // These files are copied from src/db/drizzle at build time
@@ -1475,13 +1475,6 @@ class Db extends BaseDb {
1475
1475
  const reactiveQueryResult = this.sqlocalInstance.reactiveQuery(query);
1476
1476
  // Subscribe to SQLocal's subscription API
1477
1477
  const subscription = reactiveQueryResult.subscribe((data) => {
1478
- // Log the actual data structure for debugging
1479
- if (data && data.length > 0) {
1480
- // Try to extract IDs/names for logging (check common field names)
1481
- data.map((d) => {
1482
- return d.id || d.modelId || d.schemaId || d.modelFileId || d.schemaFileId || d.name || d.modelName || JSON.stringify(d).substring(0, 50);
1483
- });
1484
- }
1485
1478
  // Emit data through RxJS Observable (cast to T[] since SQLocal returns Record<string, any>[])
1486
1479
  subscriber.next(data);
1487
1480
  }, (err) => {
@@ -1518,4 +1511,4 @@ class Db extends BaseDb {
1518
1511
  }
1519
1512
 
1520
1513
  export { Db };
1521
- //# sourceMappingURL=Db-DX08SxS9.js.map
1514
+ //# sourceMappingURL=Db-DjFdIdR9.js.map