@seedprotocol/sdk 0.2.48 → 0.2.49

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 (36) hide show
  1. package/dist/{Db-DrcygP77.js → Db-BjoRtCFg.js} +2 -2
  2. package/dist/{Db-DrcygP77.js.map → Db-BjoRtCFg.js.map} +1 -1
  3. package/dist/{Db-BhLWMUOe.js → Db-CMRjCZoY.js} +2 -2
  4. package/dist/Db-CMRjCZoY.js.map +1 -0
  5. package/dist/{Item-D0rGmrZg.js → Item-7vg6XRhw.js} +2 -2
  6. package/dist/{Item-D0rGmrZg.js.map → Item-7vg6XRhw.js.map} +1 -1
  7. package/dist/{ItemProperty-D0tkeKx1.js → ItemProperty-Bcht9WTV.js} +2 -2
  8. package/dist/{ItemProperty-D0tkeKx1.js.map → ItemProperty-Bcht9WTV.js.map} +1 -1
  9. package/dist/{index-B6FQruEq.js → index-D3Scq_ka.js} +34 -11
  10. package/dist/{index-B6FQruEq.js.map → index-D3Scq_ka.js.map} +1 -1
  11. package/dist/{index-C93o7-zP.js → index-Dp3GcggF.js} +2 -2
  12. package/dist/index-Dp3GcggF.js.map +1 -0
  13. package/dist/main.js +1 -1
  14. package/dist/{seed.schema.config-ClOsMOKS.js → seed.schema.config-CS6BvsTl.js} +2 -2
  15. package/dist/{seed.schema.config-ClOsMOKS.js.map → seed.schema.config-CS6BvsTl.js.map} +1 -1
  16. package/dist/src/BaseItem.ts +15 -3
  17. package/dist/src/IItem.ts +4 -1
  18. package/dist/src/actors.ts +272 -34
  19. package/dist/src/client.ts +8 -2
  20. package/dist/src/createNewItem.ts +5 -1
  21. package/dist/src/waitForDb.ts +9 -10
  22. package/dist/types/src/Item/BaseItem.d.ts +4 -1
  23. package/dist/types/src/Item/BaseItem.d.ts.map +1 -1
  24. package/dist/types/src/Item/service/actors/saveDataToDb.d.ts +3 -0
  25. package/dist/types/src/Item/service/actors/saveDataToDb.d.ts.map +1 -0
  26. package/dist/types/src/browser/db/Db.d.ts +1 -1
  27. package/dist/types/src/browser/db/Db.d.ts.map +1 -1
  28. package/dist/types/src/browser/react/item.d.ts.map +1 -1
  29. package/dist/types/src/client.d.ts +1 -1
  30. package/dist/types/src/client.d.ts.map +1 -1
  31. package/dist/types/src/db/write/createNewItem.d.ts.map +1 -1
  32. package/dist/types/src/interfaces/IItem.d.ts +3 -0
  33. package/dist/types/src/interfaces/IItem.d.ts.map +1 -1
  34. package/package.json +1 -1
  35. package/dist/Db-BhLWMUOe.js.map +0 -1
  36. package/dist/index-C93o7-zP.js.map +0 -1
@@ -1,4 +1,4 @@
1
- export { I as Item } from './index-B6FQruEq.js';
1
+ export { I as Item } from './index-D3Scq_ka.js';
2
2
  import 'immer';
3
3
  import 'reflect-metadata';
4
4
  import '@sinclair/typebox';
@@ -22,4 +22,4 @@ import 'drizzle-orm/casing';
22
22
  import 'react';
23
23
  import 'use-immer';
24
24
  import '@xstate/react';
25
- //# sourceMappingURL=index-C93o7-zP.js.map
25
+ //# sourceMappingURL=index-Dp3GcggF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-Dp3GcggF.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/main.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import 'immer';
2
2
  import 'reflect-metadata';
3
- export { D as Db, c as ImageSrc, d as Item, e as ItemProperty, J as Json, L as List, M as Model, P as Property, R as Relation, T as Text, s as client, r as eventEmitter, p as getCorrectId, q as getGlobalService, h as useCreateItem, j as useDeleteItem, k as useGlobalServiceStatus, f as useItem, g as useItemProperties, i as useItemProperty, u as useItems, m as usePersistedSnapshots, l as usePublishItem, o as useService, n as useServices, w as withSeed } from './index-B6FQruEq.js';
3
+ export { D as Db, c as ImageSrc, d as Item, e as ItemProperty, J as Json, L as List, M as Model, P as Property, R as Relation, T as Text, s as client, r as eventEmitter, p as getCorrectId, q as getGlobalService, h as useCreateItem, j as useDeleteItem, k as useGlobalServiceStatus, f as useItem, g as useItemProperties, i as useItemProperty, u as useItems, m as usePersistedSnapshots, l as usePublishItem, o as useService, n as useServices, w as withSeed } from './index-D3Scq_ka.js';
4
4
  export { B as BaseArweaveClient, a as BaseEasClient, c as BaseFileManager, b as BaseQueryClient } from './constants-C03RQQht.js';
5
5
  import '@sinclair/typebox';
6
6
  import 'xstate';
@@ -1,6 +1,6 @@
1
1
  import { __decorate, __metadata } from 'tslib';
2
2
  import 'reflect-metadata';
3
- import { T as Text, M as Model } from './index-B6FQruEq.js';
3
+ import { T as Text, M as Model } from './index-D3Scq_ka.js';
4
4
  import 'immer';
5
5
  import '@sinclair/typebox';
6
6
  import 'xstate';
@@ -70,4 +70,4 @@ const models = {
70
70
  };
71
71
 
72
72
  export { models };
73
- //# sourceMappingURL=seed.schema.config-ClOsMOKS.js.map
73
+ //# sourceMappingURL=seed.schema.config-CS6BvsTl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"seed.schema.config-ClOsMOKS.js","sources":["../../src/db/configs/seed.schema.config.ts"],"sourcesContent":["import { Model, Text } from '@/schema'\n\n@Model\nclass Seed {\n @Text() uid!: string\n @Text() type!: string\n}\n\n@Model\nclass Version {\n @Text() seedUid!: string\n @Text() note!: string\n}\n\n@Model\nclass Metadata {\n @Text() key!: string\n @Text() value!: string\n}\n\nexport const models = {\n Seed,\n Version,\n Metadata,\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,IAAM,IAAI,GAAV,MAAM,IAAI,CAAA;CAGT;AAFS,UAAA,CAAA;AAAP,IAAA,IAAI,EAAE;;AAAa,CAAA,EAAA,IAAA,CAAA,SAAA,EAAA,KAAA,EAAA,SAAA,CAAA;AACZ,UAAA,CAAA;AAAP,IAAA,IAAI,EAAE;;AAAc,CAAA,EAAA,IAAA,CAAA,SAAA,EAAA,MAAA,EAAA,SAAA,CAAA;AAFjB,IAAI,GAAA,UAAA,CAAA;IADT;AACK,CAAA,EAAA,IAAI,CAGT;AAGD,IAAM,OAAO,GAAb,MAAM,OAAO,CAAA;CAGZ;AAFS,UAAA,CAAA;AAAP,IAAA,IAAI,EAAE;;AAAiB,CAAA,EAAA,OAAA,CAAA,SAAA,EAAA,SAAA,EAAA,SAAA,CAAA;AAChB,UAAA,CAAA;AAAP,IAAA,IAAI,EAAE;;AAAc,CAAA,EAAA,OAAA,CAAA,SAAA,EAAA,MAAA,EAAA,SAAA,CAAA;AAFjB,OAAO,GAAA,UAAA,CAAA;IADZ;AACK,CAAA,EAAA,OAAO,CAGZ;AAGD,IAAM,QAAQ,GAAd,MAAM,QAAQ,CAAA;CAGb;AAFS,UAAA,CAAA;AAAP,IAAA,IAAI,EAAE;;AAAa,CAAA,EAAA,QAAA,CAAA,SAAA,EAAA,KAAA,EAAA,SAAA,CAAA;AACZ,UAAA,CAAA;AAAP,IAAA,IAAI,EAAE;;AAAe,CAAA,EAAA,QAAA,CAAA,SAAA,EAAA,OAAA,EAAA,SAAA,CAAA;AAFlB,QAAQ,GAAA,UAAA,CAAA;IADb;AACK,CAAA,EAAA,QAAQ,CAGb;AAEY,MAAA,MAAM,GAAG;IACpB,IAAI;IACJ,OAAO;IACP,QAAQ;;;;;"}
1
+ {"version":3,"file":"seed.schema.config-CS6BvsTl.js","sources":["../../src/db/configs/seed.schema.config.ts"],"sourcesContent":["import { Model, Text } from '@/schema'\n\n@Model\nclass Seed {\n @Text() uid!: string\n @Text() type!: string\n}\n\n@Model\nclass Version {\n @Text() seedUid!: string\n @Text() note!: string\n}\n\n@Model\nclass Metadata {\n @Text() key!: string\n @Text() value!: string\n}\n\nexport const models = {\n Seed,\n Version,\n Metadata,\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,IAAM,IAAI,GAAV,MAAM,IAAI,CAAA;CAGT;AAFS,UAAA,CAAA;AAAP,IAAA,IAAI,EAAE;;AAAa,CAAA,EAAA,IAAA,CAAA,SAAA,EAAA,KAAA,EAAA,SAAA,CAAA;AACZ,UAAA,CAAA;AAAP,IAAA,IAAI,EAAE;;AAAc,CAAA,EAAA,IAAA,CAAA,SAAA,EAAA,MAAA,EAAA,SAAA,CAAA;AAFjB,IAAI,GAAA,UAAA,CAAA;IADT;AACK,CAAA,EAAA,IAAI,CAGT;AAGD,IAAM,OAAO,GAAb,MAAM,OAAO,CAAA;CAGZ;AAFS,UAAA,CAAA;AAAP,IAAA,IAAI,EAAE;;AAAiB,CAAA,EAAA,OAAA,CAAA,SAAA,EAAA,SAAA,EAAA,SAAA,CAAA;AAChB,UAAA,CAAA;AAAP,IAAA,IAAI,EAAE;;AAAc,CAAA,EAAA,OAAA,CAAA,SAAA,EAAA,MAAA,EAAA,SAAA,CAAA;AAFjB,OAAO,GAAA,UAAA,CAAA;IADZ;AACK,CAAA,EAAA,OAAO,CAGZ;AAGD,IAAM,QAAQ,GAAd,MAAM,QAAQ,CAAA;CAGb;AAFS,UAAA,CAAA;AAAP,IAAA,IAAI,EAAE;;AAAa,CAAA,EAAA,QAAA,CAAA,SAAA,EAAA,KAAA,EAAA,SAAA,CAAA;AACZ,UAAA,CAAA;AAAP,IAAA,IAAI,EAAE;;AAAe,CAAA,EAAA,QAAA,CAAA,SAAA,EAAA,OAAA,EAAA,SAAA,CAAA;AAFlB,QAAQ,GAAA,UAAA,CAAA;IADb;AACK,CAAA,EAAA,QAAQ,CAGb;AAEY,MAAA,MAAM,GAAG;IACpB,IAAI;IACJ,OAAO;IACP,QAAQ;;;;;"}
@@ -226,7 +226,7 @@ export abstract class BaseItem<T extends ModelValues<ModelSchema>> implements II
226
226
  if (!props.modelName) {
227
227
  throw new Error('Model name is required to create an item')
228
228
  }
229
- const { seedLocalId, versionLocalId, versionUid } = await createNewItem({
229
+ const { seedLocalId, versionLocalId, } = await createNewItem({
230
230
  modelName: props.modelName,
231
231
  })
232
232
  props.seedLocalId = seedLocalId
@@ -267,9 +267,9 @@ export abstract class BaseItem<T extends ModelValues<ModelSchema>> implements II
267
267
  static async all(
268
268
  modelName?: string,
269
269
  deleted?: boolean,
270
- ): Promise<IItem<any>[]> {
270
+ ): Promise<BaseItem<any>[]> {
271
271
  const itemsData = await getItemsData({ modelName, deleted })
272
- const itemInstances: IItem<any>[] = []
272
+ const itemInstances: BaseItem<any>[] = []
273
273
  for (const itemData of itemsData) {
274
274
  itemInstances.push(
275
275
  await BaseItem.create({
@@ -381,6 +381,10 @@ export abstract class BaseItem<T extends ModelValues<ModelSchema>> implements II
381
381
  return this.serviceContext.latestVersionUid as VersionsType
382
382
  }
383
383
 
384
+ get latestVersionLocalId(): string {
385
+ return this.serviceContext.latestVersionLocalId as string
386
+ }
387
+
384
388
  get modelName(): string {
385
389
  return this.serviceContext.modelName as string
386
390
  }
@@ -393,6 +397,14 @@ export abstract class BaseItem<T extends ModelValues<ModelSchema>> implements II
393
397
  return this.serviceContext.attestationCreatedAt as number
394
398
  }
395
399
 
400
+ get versionsCount(): number {
401
+ return this.serviceContext.versionsCount as number
402
+ }
403
+
404
+ get lastVersionPublishedAt(): number {
405
+ return this.serviceContext.lastVersionPublishedAt as number
406
+ }
407
+
396
408
  unload(): void {
397
409
  this._subscription?.unsubscribe()
398
410
  this._service.stop()
package/dist/src/IItem.ts CHANGED
@@ -17,7 +17,10 @@ export interface IItem<T extends ModelValues<ModelSchema>> {
17
17
  readonly seedUid?: string
18
18
  readonly schemaUid: string
19
19
  readonly latestVersionUid: VersionsType
20
+ readonly latestVersionLocalId: string
20
21
  readonly modelName: string
21
22
  readonly properties: Record<string, IItemProperty<any>>
22
23
  readonly attestationCreatedAt: number
23
- }
24
+ readonly versionsCount: number
25
+ readonly lastVersionPublishedAt: number
26
+ }
@@ -1,56 +1,294 @@
1
1
  import { EventObject, fromCallback } from 'xstate'
2
- import { downloadMachine } from '@/schema/file/download'
2
+ import { fetchAllFilesMachine } from '@/schema/file/fetchAll/index'
3
+ import { ARWEAVE_HOST } from '@/services/internal/constants'
3
4
  import { GET_FILES_METADATA } from '@/schema/file/queries'
5
+ import { getArweave } from '@/helpers/ArweaveClient'
6
+ import fs from '@zenfs/core'
7
+ import {
8
+ getDataTypeFromString,
9
+ getMimeType,
10
+ identifyString,
11
+ } from '@/helpers'
12
+ import { appState } from '@/seedSchema'
13
+ import { eq } from 'drizzle-orm'
4
14
  import { BaseEasClient } from '@/helpers/EasClient/BaseEasClient'
5
15
  import { BaseQueryClient } from '@/helpers/QueryClient/BaseQueryClient'
16
+ import debug from 'debug'
17
+ import { BaseDb } from '@/db/Db/BaseDb'
18
+ import { saveAppState } from '@/db/write/saveAppState'
6
19
 
20
+ const logger = debug('app:file:actors:fetchAll')
7
21
 
8
- export const fetchMetadata = fromCallback<EventObject, typeof downloadMachine>(
9
- ({ sendBack, input: { context } }) => {
10
- const { addresses } = context
22
+ type FileType = {
23
+ mimeType: string
24
+ extension: string
25
+ }
11
26
 
12
- const fetchMetadata = async () => {
13
- const queryClient = BaseQueryClient.getQueryClient()
14
- const easClient = BaseEasClient.getEasClient()
27
+ // Map of common MIME types to file extensions
28
+ const fileTypeMap: Record<string, FileType> = {
29
+ 'image/jpeg': { mimeType: 'image/jpeg', extension: '.jpg' },
30
+ 'image/png': { mimeType: 'image/png', extension: '.png' },
31
+ 'application/json': { mimeType: 'application/json', extension: '.json' },
32
+ 'text/plain': { mimeType: 'text/plain', extension: '.txt' },
33
+ // Add more MIME types and file extensions as needed
34
+ }
15
35
 
16
- const metadataRecords = await queryClient.fetchQuery({
17
- queryKey: ['getFilesMetadata', ...addresses],
18
- queryFn: async () =>
19
- easClient.request(GET_FILES_METADATA, {
20
- where: {
21
- attester: {
22
- in: addresses,
23
- },
24
- decodedDataJson: {
25
- contains: 'transactionId',
36
+ export const fetchAllMetadataRecords = fromCallback<
37
+ EventObject,
38
+ typeof fetchAllFilesMachine
39
+ >(({ sendBack, receive, input: { context, event } }) => {
40
+ const { addresses } = context
41
+
42
+ const _fetchAllMetadataRecords = async () => {
43
+ const queryClient = BaseQueryClient.getQueryClient()
44
+ const easClient = BaseEasClient.getEasClient()
45
+
46
+ const { filesMetadata } = await queryClient.fetchQuery({
47
+ queryKey: ['getFilesMetadata', ...addresses],
48
+ queryFn: async () =>
49
+ easClient.request(GET_FILES_METADATA, {
50
+ where: {
51
+ attester: {
52
+ in: addresses,
53
+ },
54
+ schema: {
55
+ is: {
56
+ id: {
57
+ equals:
58
+ '0x55fdefb36fcbbaebeb7d6b41dc3a1a9666e4e42154267c889de064faa7ede517',
59
+ },
26
60
  },
27
61
  },
28
- }),
29
- })
62
+ },
63
+ }),
64
+ })
30
65
 
31
- return metadataRecords
32
- }
66
+ return filesMetadata
67
+ }
33
68
 
34
- fetchMetadata().then((metadataRecords) => {
35
- sendBack({ type: 'fetchingMetadataSuccess', metadataRecords })
36
- })
69
+ _fetchAllMetadataRecords().then((filesMetadata) => {
70
+ sendBack({ type: 'fetchingAllMetadataRecordsSuccess', filesMetadata })
71
+ })
37
72
 
38
- return () => { }
39
- },
40
- )
73
+ return () => { }
74
+ })
41
75
 
42
- export const fetchBinaryData = fromCallback<
76
+ export const fetchAllBinaryData = fromCallback<
43
77
  EventObject,
44
- typeof downloadMachine
45
- >(({ sendBack, receive, input: { context } }) => {
46
- const { addresses } = context
78
+ typeof fetchAllFilesMachine
79
+ >(({ sendBack, input: { context } }) => {
80
+ const { filesMetadata, addresses } = context
81
+
82
+ const _fetchAllBinaryData = async () => {
83
+ if (!(await fs.promises.exists('/files'))) {
84
+ await fs.promises.mkdir('/files', { recursive: true })
85
+ }
86
+
87
+ if (!(await fs.promises.exists('/files/html'))) {
88
+ await fs.promises.mkdir('/files/html', { recursive: true })
89
+ }
90
+
91
+ if (!(await fs.promises.exists('/files/json'))) {
92
+ await fs.promises.mkdir('/files/json', { recursive: true })
93
+ }
94
+
95
+ if (!(await fs.promises.exists('/files/images'))) {
96
+ await fs.promises.mkdir('/files/images', { recursive: true })
97
+ }
98
+
99
+ const appDb = BaseDb.getAppDb()
100
+
101
+ if (!appDb) {
102
+ logger('[fetchAll/actors] [fetchAllBinaryData] seedDb not available')
103
+ return []
104
+ }
105
+
106
+ for (const fileMetadata of filesMetadata) {
107
+ const json = JSON.parse(fileMetadata.decodedDataJson)
108
+ const transactionId = json[0].value.value
109
+
110
+ const excludedTransactionsQuery = await appDb
111
+ .select()
112
+ .from(appState)
113
+ .where(eq(appState.key, 'excludedTransactions'))
114
+
115
+ let excludedTransactions = new Set<string>()
116
+
117
+ if (excludedTransactionsQuery && excludedTransactionsQuery.length === 1) {
118
+ const valueString = excludedTransactionsQuery[0].value
119
+ if (valueString) {
120
+ const excludedTransactionsArray = JSON.parse(valueString)
121
+ excludedTransactions = new Set(excludedTransactionsArray)
122
+ }
123
+ }
124
+
125
+ if (excludedTransactions.has(transactionId)) {
126
+ continue
127
+ }
128
+
129
+ const arweave = getArweave()
130
+
131
+ if (!arweave) {
132
+ logger('[fetchAll/actors] [fetchAllBinaryData] arweave not available')
133
+ return []
134
+ }
135
+
136
+ try {
137
+ const res = await fetch(
138
+ `https://${ARWEAVE_HOST}/tx/${transactionId}/status`,
139
+ )
140
+
141
+ if (res.status !== 200) {
142
+ logger(
143
+ `[fetchAll/actors] [fetchAllBinaryData] error fetching transaction data for ${transactionId}`,
144
+ )
145
+
146
+ excludedTransactions.add(transactionId)
147
+
148
+ await saveAppState(
149
+ 'excludedTransactions',
150
+ JSON.stringify(Array.from(excludedTransactions)),
151
+ )
152
+
153
+ logger(
154
+ '[fetchAll/actors] [fetchAllBinaryData] updated excludedTransactions:',
155
+ excludedTransactions,
156
+ )
157
+
158
+ continue
159
+ }
160
+
161
+ const dataString = await arweave.transactions
162
+ .getData(transactionId, {
163
+ decode: true,
164
+ string: true,
165
+ })
166
+ .catch((error) => {
167
+ logger(
168
+ `[fetchAll/actors] [fetchAllBinaryData] error fetching transaction data for ${transactionId}`,
169
+ error,
170
+ )
171
+ })
172
+
173
+ const dataUint8Array = await arweave.transactions.getData(transactionId)
174
+ // let buffer
175
+ //
176
+ // if (dataUint8Array && dataUint8Array instanceof Uint8Array) {
177
+ // }
178
+
179
+ let contentType = identifyString(dataString)
180
+ if (
181
+ contentType !== 'json' &&
182
+ contentType !== 'base64' &&
183
+ contentType !== 'html'
184
+ ) {
185
+ const possibleImageType = getDataTypeFromString(dataString)
186
+ if (!possibleImageType) {
187
+ logger(
188
+ `[fetchAll/actors] [fetchAllBinaryData] transaction ${transactionId} data not in expected format: ${possibleImageType}`,
189
+ )
190
+ continue
191
+ }
192
+
193
+ contentType = possibleImageType
194
+ }
195
+
196
+ if (contentType === 'url') {
197
+ const url = dataString as string
198
+ const response = await fetch(url)
199
+ if (!response.ok) {
200
+ throw new Error(`Failed to fetch image: ${response.statusText}`)
201
+ }
202
+
203
+ // Get the image as a Blob
204
+ const blob = await response.blob()
205
+ const buffer = await blob.arrayBuffer()
206
+ const bufferUint8Array = new Uint8Array(buffer)
207
+
208
+ // Extract the file extension from the URL
209
+ const extensionMatch = url.match(
210
+ /\.(jpg|jpeg|png|gif|bmp|webp|svg)$/i,
211
+ )
212
+ if (!extensionMatch) {
213
+ throw new Error(
214
+ 'Unable to determine the file extension from the URL.',
215
+ )
216
+ }
217
+ const fileExtension = extensionMatch[0] // e.g., ".jpg"
218
+
219
+ // Set the file name (you can customize this)
220
+ // const fileNameFromUrl = `${transactionId}${fileExtension}`
221
+
222
+ await fs.promises.writeFile(
223
+ `/files/images/${transactionId}`,
224
+ bufferUint8Array,
225
+ {
226
+ encoding: 'binary',
227
+ },
228
+ )
229
+
230
+ continue
231
+ }
232
+
233
+ let mimeType = getMimeType(dataString as string)
234
+ let fileExtension = mimeType
235
+
236
+ if (fileExtension && fileExtension?.startsWith('image')) {
237
+ fileExtension = fileExtension.replace('image/', '')
238
+ }
239
+
240
+ let fileName = transactionId
241
+
242
+ if (contentType === 'base64') {
243
+ if (mimeType) {
244
+ fileName += `.${fileExtension}`
245
+ }
246
+
247
+ // Remove the Base64 header if it exists (e.g., "data:image/png;base64,")
248
+ const base64Data = dataString.split(',').pop() || ''
249
+
250
+ // Decode the Base64 string to binary
251
+ const binaryString = atob(base64Data)
252
+ const length = binaryString.length
253
+ const binaryData = new Uint8Array(length)
254
+
255
+ for (let i = 0; i < length; i++) {
256
+ binaryData[i] = binaryString.charCodeAt(i)
257
+ }
258
+
259
+ console.log(`attempting to writeFile to /files/images/${fileName}`)
260
+
261
+ await fs.promises.writeFile(`/files/images/${fileName}`, binaryData, {
262
+ encoding: 'binary',
263
+ })
264
+
265
+ // if (dataUint8Array && dataUint8Array instanceof Uint8Array) {
266
+ // await fs.promises.writeFile(
267
+ // `/files/images/${fileName}`,
268
+ // dataUint8Array,
269
+ // )
270
+ // }
271
+ }
272
+
273
+ if (contentType === 'html') {
274
+ fileName += '.html'
275
+ await fs.promises.writeFile(`/files/html/${fileName}`, dataString)
276
+ }
277
+
278
+ if (contentType === 'json') {
279
+ fileName += '.json'
280
+ await fs.promises.writeFile(`/files/json/${fileName}`, dataString)
281
+ }
282
+ } catch (error) {
283
+ logger(error)
284
+ }
285
+ }
47
286
 
48
- const fetchBinaryData = async () => {
49
287
  return []
50
288
  }
51
289
 
52
- fetchBinaryData().then(() => {
53
- sendBack({ type: 'fetchingBinaryDataSuccess' })
290
+ _fetchAllBinaryData().then((binaryData) => {
291
+ sendBack({ type: 'fetchingAllBinaryDataSuccess', binaryData })
54
292
  })
55
293
 
56
294
  return () => { }
@@ -20,7 +20,6 @@ import { initFileManager } from './helpers/FileManager'
20
20
  import { initDb } from './db/Db'
21
21
  import debug from 'debug'
22
22
  import { appState } from './seedSchema'
23
- import { BaseDb } from './db/Db/BaseDb'
24
23
 
25
24
  const logger = debug('app:client')
26
25
 
@@ -78,7 +77,14 @@ const client = {
78
77
  setModel(key, value)
79
78
  }
80
79
  },
81
- setAddresses: (addresses: string[]) => {
80
+ setAddresses: async(addresses: string[]) => {
81
+ const {BaseDb} = await import('./db/Db/BaseDb')
82
+ if (!BaseDb) {
83
+ throw new Error('BaseDb not found')
84
+ }
85
+ if (!BaseDb.PlatformClass) {
86
+ await initDb()
87
+ }
82
88
  const appDb = BaseDb.getAppDb()
83
89
  if (!appDb) {
84
90
  throw new Error('App DB not found')
@@ -3,6 +3,8 @@ import { getModel } from '@/stores/modelClass'
3
3
  import { createSeed } from './createSeed'
4
4
  import { createVersion } from './createVersion'
5
5
  import { createMetadata } from './createMetadata'
6
+ import { toSnakeCase } from 'drizzle-orm/casing'
7
+ import { eventEmitter } from '@/eventBus'
6
8
 
7
9
  type CreateNewItemProps = Partial<ModelValues<any>> & {
8
10
  modelName: string
@@ -26,7 +28,7 @@ export const createNewItem = async ({
26
28
 
27
29
  const newSeedId = await createSeed({ type: seedType })
28
30
 
29
- const newVersionId = await createVersion({ seedLocalId: newSeedId })
31
+ const newVersionId = await createVersion({ seedLocalId: newSeedId, seedType: toSnakeCase(modelName) })
30
32
 
31
33
  const propertySchemas = getModel(modelName)?.schema
32
34
 
@@ -49,6 +51,8 @@ export const createNewItem = async ({
49
51
  )
50
52
  }
51
53
 
54
+ eventEmitter.emit('item.requestAll', { modelName })
55
+
52
56
  return {
53
57
  modelName,
54
58
  seedLocalId: newSeedId,
@@ -1,13 +1,13 @@
1
1
  import { EventObject, fromCallback } from 'xstate'
2
+ import { FromCallbackInput, PropertyMachineContext } from '@/types'
2
3
  import { BaseDb } from '@/db/Db/BaseDb'
3
- import { FromCallbackInput, ItemMachineContext } from '@/types'
4
4
  import debug from 'debug'
5
5
 
6
- const logger = debug('app:item:service:actors:waitForDb')
6
+ const logger = debug('app:ItemProperty:service:actors:waitForDb')
7
7
 
8
8
  export const waitForDb = fromCallback<
9
9
  EventObject,
10
- FromCallbackInput<ItemMachineContext<any>>
10
+ FromCallbackInput<PropertyMachineContext>
11
11
  >(({ sendBack }) => {
12
12
  const _waitForDb = new Promise<void>((resolve) => {
13
13
  const interval = setInterval(() => {
@@ -16,11 +16,10 @@ export const waitForDb = fromCallback<
16
16
  clearInterval(interval)
17
17
  resolve()
18
18
  }
19
- }, 100)
20
- })
19
+ }, 100)
20
+ })
21
21
 
22
- _waitForDb.then(() => {
23
- sendBack({ type: 'waitForDbSuccess' })
24
- })
25
- },
26
- )
22
+ _waitForDb.then(() => {
23
+ sendBack({ type: 'waitForDbSuccess' })
24
+ })
25
+ })
@@ -20,7 +20,7 @@ export declare abstract class BaseItem<T extends ModelValues<ModelSchema>> imple
20
20
  static setPlatformClass(platformClass: typeof BaseItem): void;
21
21
  static create<T extends ModelValues<ModelSchema>>(props: Partial<ItemData>): Promise<BaseItem<any>>;
22
22
  static find({ modelName, seedLocalId, seedUid, }: ItemFindProps): Promise<IItem<any> | undefined>;
23
- static all(modelName?: string, deleted?: boolean): Promise<IItem<any>[]>;
23
+ static all(modelName?: string, deleted?: boolean): Promise<BaseItem<any>[]>;
24
24
  protected _createPropertyInstance(props: Partial<CreatePropertyInstanceProps>): void;
25
25
  static publish(item: IItem<any>): Promise<void>;
26
26
  subscribe: (callback: (itemProps: any) => void) => Subscription;
@@ -43,9 +43,12 @@ export declare abstract class BaseItem<T extends ModelValues<ModelSchema>> imple
43
43
  get seedUid(): string | undefined;
44
44
  get schemaUid(): string;
45
45
  get latestVersionUid(): VersionsType;
46
+ get latestVersionLocalId(): string;
46
47
  get modelName(): string;
47
48
  get properties(): Record<string, IItemProperty<any>>;
48
49
  get attestationCreatedAt(): number;
50
+ get versionsCount(): number;
51
+ get lastVersionPublishedAt(): number;
49
52
  unload(): void;
50
53
  }
51
54
  //# sourceMappingURL=BaseItem.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BaseItem.d.ts","sourceRoot":"","sources":["../../../../src/Item/BaseItem.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseItem.d.ts","sourceRoot":"","sources":["../../../../src/Item/BaseItem.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { EventObject } from 'xstate';
2
+ export declare const saveDataToDb: import("xstate").CallbackActorLogic<EventObject, any, EventObject>;
3
+ //# sourceMappingURL=saveDataToDb.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"saveDataToDb.d.ts","sourceRoot":"","sources":["../../../../../../src/Item/service/actors/saveDataToDb.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAgB,MAAM,QAAQ,CAAA;AAiBlD,eAAO,MAAM,YAAY,oEA+HxB,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import { BaseDb } from "@/db/Db/BaseDb";
2
2
  import { IDb } from "@/interfaces/IDb";
3
- export declare const dbExec: (dbId: any, params: any, sql: any, dbName: any, retries?: number) => Promise<{}>;
3
+ export declare const dbExec: (dbId: string, params: any[], sql: string, dbName: string, retries?: number) => Promise<{}>;
4
4
  declare class Db extends BaseDb implements IDb {
5
5
  constructor();
6
6
  static getAppDb(): import("drizzle-orm/sqlite-proxy").SqliteRemoteDatabase<Record<string, unknown>>;
@@ -1 +1 @@
1
- {"version":3,"file":"Db.d.ts","sourceRoot":"","sources":["../../../../../src/browser/db/Db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAYvC,eAAO,MAAM,MAAM,kFAkElB,CAAA;AAED,cAAM,EAAG,SAAQ,MAAO,YAAW,GAAG;;IAKpC,MAAM,CAAC,QAAQ;IAIf,MAAM,CAAC,YAAY;IAInB,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM;WAmBpB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;WAyC/D,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CA+KvF;AAID,OAAO,EAAE,EAAE,EAAE,CAAA"}
1
+ {"version":3,"file":"Db.d.ts","sourceRoot":"","sources":["../../../../../src/browser/db/Db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAYvC,eAAO,MAAM,MAAM,SAAgB,MAAM,UAAU,GAAG,EAAE,OAAO,MAAM,UAAU,MAAM,kCAkEpF,CAAA;AAED,cAAM,EAAG,SAAQ,MAAO,YAAW,GAAG;;IAKpC,MAAM,CAAC,QAAQ;IAIf,MAAM,CAAC,YAAY;IAInB,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM;WAmBpB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;WAyC/D,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CA+KvF;AAID,OAAO,EAAE,EAAE,EAAE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"item.d.ts","sourceRoot":"","sources":["../../../../../src/browser/react/item.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAOrC,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAIrC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAI1C,KAAK,YAAY,GAAG;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,KAAK,aAAa,CAAC,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,IAAI;IAC7C,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,SAAS,CAAA;IACzB,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAA;IACrB,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;CACzD,CAAA;AAED,KAAK,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,KAAK,aAAa,CAAC,CAAC,CAAC,CAAA;AAE3D,KAAK,QAAQ,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;AAE7C,eAAO,MAAM,OAAO,EAAE,OAAO,CAAC,GAAG,CAyJhC,CAAA;AACD,KAAK,cAAc,GAAG;IACpB,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAA;IACtB,WAAW,EAAE,OAAO,CAAA;CACrB,CAAA;AACD,KAAK,aAAa,GAAG;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,CAAA;AACD,KAAK,QAAQ,GAAG,CAAC,KAAK,EAAE,aAAa,KAAK,cAAc,CAAA;AACxD,eAAO,MAAM,QAAQ,EAAE,QA8DtB,CAAA;AACD,eAAO,MAAM,cAAc;;CA2B1B,CAAA;AACD,eAAO,MAAM,aAAa,GAAI,CAAC,aAAa,MAAM;;;CAwCjD,CAAA;AAED,KAAK,iBAAiB,GAAG,KAAK,GAAG,SAAS,GAAG,IAAI,CAAA;AAEjD,KAAK,oBAAoB,GAAG;IAC1B,WAAW,EAAE,CACX,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,EAC3B,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,GAAG,KAC1C,IAAI,CAAA;IACT,YAAY,EAAE,OAAO,CAAA;CACtB,CAAA;AAQD,eAAO,MAAM,cAAc,QAAO,oBA8BjC,CAAA"}
1
+ {"version":3,"file":"item.d.ts","sourceRoot":"","sources":["../../../../../src/browser/react/item.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAOrC,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAGrC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAI1C,KAAK,YAAY,GAAG;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,KAAK,aAAa,CAAC,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,IAAI;IAC7C,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,SAAS,CAAA;IACzB,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAA;IACrB,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;CACzD,CAAA;AAED,KAAK,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,KAAK,aAAa,CAAC,CAAC,CAAC,CAAA;AAE3D,KAAK,QAAQ,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;AAE7C,eAAO,MAAM,OAAO,EAAE,OAAO,CAAC,GAAG,CAyJhC,CAAA;AACD,KAAK,cAAc,GAAG;IACpB,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAA;IACtB,WAAW,EAAE,OAAO,CAAA;CACrB,CAAA;AACD,KAAK,aAAa,GAAG;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,CAAA;AACD,KAAK,QAAQ,GAAG,CAAC,KAAK,EAAE,aAAa,KAAK,cAAc,CAAA;AACxD,eAAO,MAAM,QAAQ,EAAE,QAgEtB,CAAA;AAED,eAAO,MAAM,cAAc;;CA2B1B,CAAA;AACD,eAAO,MAAM,aAAa,GAAI,CAAC,aAAa,MAAM;;;CAwCjD,CAAA;AAED,KAAK,iBAAiB,GAAG,KAAK,GAAG,SAAS,GAAG,IAAI,CAAA;AAEjD,KAAK,oBAAoB,GAAG;IAC1B,WAAW,EAAE,CACX,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,EAC3B,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,GAAG,KAC1C,IAAI,CAAA;IACT,YAAY,EAAE,OAAO,CAAA;CACtB,CAAA;AAQD,eAAO,MAAM,cAAc,QAAO,oBA8BjC,CAAA"}
@@ -2,7 +2,7 @@ import { ModelClassType, SeedConstructorOptions } from '@/types';
2
2
  declare const client: {
3
3
  isInitialized: boolean;
4
4
  init: (options: SeedConstructorOptions) => Promise<void>;
5
- setAddresses: (addresses: string[]) => void;
5
+ setAddresses: (addresses: string[]) => Promise<void>;
6
6
  subscribe: (callback: any) => {
7
7
  unsubscribe: () => void;
8
8
  };
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/client.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAqBhE,QAAA,MAAM,MAAM;;oBAEY,sBAAsB;8BAoDlB,MAAM,EAAE;0BAiBZ,GAAG;;;qBAYR,MAAM,YAAY,GAAG;;;;0BAqBhB,MAAM;qBAGb,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC;yBAG1B,MAAM,EAAE;CAG5B,CAAA;AAED,OAAO,EAAE,MAAM,EAAE,CAAA"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/client.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAoBhE,QAAA,MAAM,MAAM;;oBAEY,sBAAsB;8BAoDb,MAAM,EAAE;0BAwBjB,GAAG;;;qBAYR,MAAM,YAAY,GAAG;;;;0BAqBhB,MAAM;qBAGb,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC;yBAG1B,MAAM,EAAE;CAG5B,CAAA;AAED,OAAO,EAAE,MAAM,EAAE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"createNewItem.d.ts","sourceRoot":"","sources":["../../../../../src/db/write/createNewItem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAMrC,KAAK,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG;IACpD,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,KAAK,uBAAuB,GAAG;IAC7B,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,EAAE,MAAM,CAAA;CACvB,CAAA;AAED,eAAO,MAAM,aAAa,mCAGvB,kBAAkB,KAAG,OAAO,CAAC,uBAAuB,CAqCtD,CAAA"}
1
+ {"version":3,"file":"createNewItem.d.ts","sourceRoot":"","sources":["../../../../../src/db/write/createNewItem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAQrC,KAAK,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG;IACpD,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,KAAK,uBAAuB,GAAG;IAC7B,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,EAAE,MAAM,CAAA;CACvB,CAAA;AAED,eAAO,MAAM,aAAa,mCAGvB,kBAAkB,KAAG,OAAO,CAAC,uBAAuB,CAuCtD,CAAA"}
@@ -14,8 +14,11 @@ export interface IItem<T extends ModelValues<ModelSchema>> {
14
14
  readonly seedUid?: string;
15
15
  readonly schemaUid: string;
16
16
  readonly latestVersionUid: VersionsType;
17
+ readonly latestVersionLocalId: string;
17
18
  readonly modelName: string;
18
19
  readonly properties: Record<string, IItemProperty<any>>;
19
20
  readonly attestationCreatedAt: number;
21
+ readonly versionsCount: number;
22
+ readonly lastVersionPublishedAt: number;
20
23
  }
21
24
  //# sourceMappingURL=IItem.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IItem.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/IItem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAE/C,MAAM,WAAW,KAAK,CAAC,CAAC,SAAS,WAAW,CAAC,WAAW,CAAC;IAEvD,SAAS,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,GAAG,KAAK,IAAI,GAAG,YAAY,CAAA;IAC3D,UAAU,IAAI,YAAY,CAAC,GAAG,CAAC,CAAA;IAC/B,mBAAmB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAAA;IAC9C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACxB,iBAAiB,IAAI,OAAO,CAAC,GAAG,CAAC,CAAA;IACjC,iBAAiB,CAAC,oBAAoB,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;IAC5D,MAAM,IAAI,IAAI,CAAA;IAEd,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,gBAAgB,EAAE,YAAY,CAAA;IACvC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAA;IACvD,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAA;CACtC"}
1
+ {"version":3,"file":"IItem.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/IItem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAE/C,MAAM,WAAW,KAAK,CAAC,CAAC,SAAS,WAAW,CAAC,WAAW,CAAC;IAEvD,SAAS,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,GAAG,KAAK,IAAI,GAAG,YAAY,CAAA;IAC3D,UAAU,IAAI,YAAY,CAAC,GAAG,CAAC,CAAA;IAC/B,mBAAmB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAAA;IAC9C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACxB,iBAAiB,IAAI,OAAO,CAAC,GAAG,CAAC,CAAA;IACjC,iBAAiB,CAAC,oBAAoB,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;IAC5D,MAAM,IAAI,IAAI,CAAA;IAEd,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,gBAAgB,EAAE,YAAY,CAAA;IACvC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAA;IACrC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAA;IACvD,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAA;IACrC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAA;CACxC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seedprotocol/sdk",
3
- "version": "0.2.48",
3
+ "version": "0.2.49",
4
4
  "description": "The SDK for Seed Protocol",
5
5
  "type": "module",
6
6
  "engines": {