@seedprotocol/sdk 0.1.86 → 0.1.87
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.
- package/dist/{index-64tJyd3u.js → index-DJp1Qso_.js} +17 -32
- package/dist/index-DJp1Qso_.js.map +1 -0
- package/dist/{index-DAMQTiS7.js → index-SVIgggAW.js} +2 -2
- package/dist/{index-DAMQTiS7.js.map → index-SVIgggAW.js.map} +1 -1
- package/dist/main.js +1 -1
- package/dist/{seed.schema.config-BqcatDl0.js → seed.schema.config-BgHYymrQ.js} +2 -2
- package/dist/{seed.schema.config-BqcatDl0.js.map → seed.schema.config-BgHYymrQ.js.map} +1 -1
- package/dist/src/actors.ts +289 -7
- package/dist/src/hydrateFromDb.ts +2 -1
- package/dist/src/index.ts +62 -10
- package/dist/src/propertyMachine.ts +0 -16
- package/dist/src/resolveRelatedValue.ts +8 -8
- package/dist/types/src/browser/property/ItemProperty.d.ts +2 -2
- package/dist/types/src/browser/property/actors/hydrateFromDb.d.ts.map +1 -1
- package/dist/types/src/browser/property/actors/initialize.d.ts +4 -1
- package/dist/types/src/browser/property/actors/initialize.d.ts.map +1 -1
- package/dist/types/src/browser/property/propertyMachine.d.ts +96 -1
- package/dist/types/src/browser/property/propertyMachine.d.ts.map +1 -1
- package/dist/types/src/types/property.d.ts +1 -0
- package/dist/types/src/types/property.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/index-64tJyd3u.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { g as GET_ALL_PROPERTIES_FOR_ALL_VERSIONS, f as GET_PROPERTIES, G as GET_SCHEMAS, a as GET_SCHEMA_BY_NAME, b as GET_SEEDS, c as GET_SEED_IDS, d as GET_STORAGE_TRANSACTION_ID, e as GET_VERSIONS, I as Item, h as itemMachineAll, i as itemMachineSingle } from './index-
|
|
1
|
+
export { g as GET_ALL_PROPERTIES_FOR_ALL_VERSIONS, f as GET_PROPERTIES, G as GET_SCHEMAS, a as GET_SCHEMA_BY_NAME, b as GET_SEEDS, c as GET_SEED_IDS, d as GET_STORAGE_TRANSACTION_ID, e as GET_VERSIONS, I as Item, h as itemMachineAll, i as itemMachineSingle } from './index-DJp1Qso_.js';
|
|
2
2
|
import './constants-rmQ8zg8_.js';
|
|
3
3
|
import '@ethereum-attestation-service/eas-sdk';
|
|
4
4
|
import 'thirdweb';
|
|
@@ -29,4 +29,4 @@ import 'rxjs';
|
|
|
29
29
|
import 'drizzle-orm/sqlite-proxy';
|
|
30
30
|
import '@zenfs/dom';
|
|
31
31
|
import 'arweave';
|
|
32
|
-
//# sourceMappingURL=index-
|
|
32
|
+
//# sourceMappingURL=index-SVIgggAW.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-SVIgggAW.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/main.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { j as ImageSrc, I as Item, k as ItemProperty, J as Json, L as List, M as Model, P as Property, R as Relation, T as Text, t as client, v as getCorrectId, s as getGlobalService, n as useCreateItem, p as useDeleteItem, q as useGlobalServiceStatus, l as useItem, m as useItemProperties, o as useItemProperty, u as useItems, r as useServices, w as withSeed } from './index-
|
|
1
|
+
export { j as ImageSrc, I as Item, k as ItemProperty, J as Json, L as List, M as Model, P as Property, R as Relation, T as Text, t as client, v as getCorrectId, s as getGlobalService, n as useCreateItem, p as useDeleteItem, q as useGlobalServiceStatus, l as useItem, m as useItemProperties, o as useItemProperty, u as useItems, r as useServices, w as withSeed } from './index-DJp1Qso_.js';
|
|
2
2
|
import 'immer';
|
|
3
3
|
import 'reflect-metadata';
|
|
4
4
|
import './constants-rmQ8zg8_.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { _ as __decorate, a as __metadata } from './constants-rmQ8zg8_.js';
|
|
2
2
|
import 'drizzle-orm';
|
|
3
|
-
import { T as Text, M as Model } from './index-
|
|
3
|
+
import { T as Text, M as Model } from './index-DJp1Qso_.js';
|
|
4
4
|
import 'react';
|
|
5
5
|
import 'reflect-metadata';
|
|
6
6
|
import 'xstate';
|
|
@@ -76,4 +76,4 @@ const models = {
|
|
|
76
76
|
};
|
|
77
77
|
|
|
78
78
|
export { models };
|
|
79
|
-
//# sourceMappingURL=seed.schema.config-
|
|
79
|
+
//# sourceMappingURL=seed.schema.config-BgHYymrQ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seed.schema.config-
|
|
1
|
+
{"version":3,"file":"seed.schema.config-BgHYymrQ.js","sources":["../../src/shared/configs/seed.schema.config.ts"],"sourcesContent":["import { Model, Text } from '@/browser'\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,KAAA,CAAA,CAAA;AACZ,UAAA,CAAA;AAAP,IAAA,IAAI,EAAE;;AAAc,CAAA,EAAA,IAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,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,KAAA,CAAA,CAAA;AAChB,UAAA,CAAA;AAAP,IAAA,IAAI,EAAE;;AAAc,CAAA,EAAA,OAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,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,KAAA,CAAA,CAAA;AACZ,UAAA,CAAA;AAAP,IAAA,IAAI,EAAE;;AAAe,CAAA,EAAA,QAAA,CAAA,SAAA,EAAA,OAAA,EAAA,KAAA,CAAA,CAAA;AAFlB,QAAQ,GAAA,UAAA,CAAA;IADb;AACK,CAAA,EAAA,QAAQ,CAGb;AAEY,MAAA,MAAM,GAAG;IACpB,IAAI;IACJ,OAAO;IACP,QAAQ;;;;;"}
|
package/dist/src/actors.ts
CHANGED
|
@@ -1,10 +1,292 @@
|
|
|
1
1
|
import { EventObject, fromCallback } from 'xstate'
|
|
2
|
-
import {
|
|
2
|
+
import { fetchAllFilesMachine } from '@/browser/schema/file/fetchAll/index'
|
|
3
|
+
import { ARWEAVE_HOST } from '@/browser/services/internal/constants'
|
|
4
|
+
import { GET_FILES_METADATA } from '@/browser/schema/file/queries'
|
|
5
|
+
import { getArweave } from '../arweave'
|
|
6
|
+
import { fs } from '@zenfs/core'
|
|
7
|
+
import {
|
|
8
|
+
getDataTypeFromString,
|
|
9
|
+
getMimeType,
|
|
10
|
+
identifyString,
|
|
11
|
+
} from '@/shared/helpers'
|
|
12
|
+
import { appState } from 'src/shared/seedSchema'
|
|
13
|
+
import { eq } from 'drizzle-orm'
|
|
14
|
+
import { easClient, queryClient } from '@/browser/helpers'
|
|
15
|
+
import debug from 'debug'
|
|
16
|
+
import { getAppDb } from '@/browser/db/sqlWasmClient'
|
|
3
17
|
|
|
4
|
-
|
|
5
|
-
({ sendBack, receive, input }) => {},
|
|
6
|
-
)
|
|
18
|
+
import { saveAppState } from '@/browser/db/write/saveAppState'
|
|
7
19
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
20
|
+
const logger = debug('app:file:actors:fetchAll')
|
|
21
|
+
|
|
22
|
+
type FileType = {
|
|
23
|
+
mimeType: string
|
|
24
|
+
extension: string
|
|
25
|
+
}
|
|
26
|
+
|
|
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
|
+
}
|
|
35
|
+
|
|
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 { filesMetadata } = await queryClient.fetchQuery({
|
|
44
|
+
queryKey: ['getFilesMetadata', ...addresses],
|
|
45
|
+
queryFn: async () =>
|
|
46
|
+
easClient.request(GET_FILES_METADATA, {
|
|
47
|
+
where: {
|
|
48
|
+
attester: {
|
|
49
|
+
in: addresses,
|
|
50
|
+
},
|
|
51
|
+
schema: {
|
|
52
|
+
is: {
|
|
53
|
+
id: {
|
|
54
|
+
equals:
|
|
55
|
+
'0x55fdefb36fcbbaebeb7d6b41dc3a1a9666e4e42154267c889de064faa7ede517',
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
}),
|
|
61
|
+
})
|
|
62
|
+
|
|
63
|
+
return filesMetadata
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
_fetchAllMetadataRecords().then((filesMetadata) => {
|
|
67
|
+
sendBack({ type: 'fetchingAllMetadataRecordsSuccess', filesMetadata })
|
|
68
|
+
})
|
|
69
|
+
|
|
70
|
+
return () => {}
|
|
71
|
+
})
|
|
72
|
+
|
|
73
|
+
export const fetchAllBinaryData = fromCallback<
|
|
74
|
+
EventObject,
|
|
75
|
+
typeof fetchAllFilesMachine
|
|
76
|
+
>(({ sendBack, input: { context } }) => {
|
|
77
|
+
const { filesMetadata, addresses } = context
|
|
78
|
+
|
|
79
|
+
const _fetchAllBinaryData = async () => {
|
|
80
|
+
if (!(await fs.promises.exists('/files'))) {
|
|
81
|
+
await fs.promises.mkdir('/files', { recursive: true })
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
if (!(await fs.promises.exists('/files/html'))) {
|
|
85
|
+
await fs.promises.mkdir('/files/html', { recursive: true })
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
if (!(await fs.promises.exists('/files/json'))) {
|
|
89
|
+
await fs.promises.mkdir('/files/json', { recursive: true })
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
if (!(await fs.promises.exists('/files/images'))) {
|
|
93
|
+
await fs.promises.mkdir('/files/images', { recursive: true })
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
const appDb = getAppDb()
|
|
97
|
+
|
|
98
|
+
if (!appDb) {
|
|
99
|
+
logger('[fetchAll/actors] [fetchAllBinaryData] seedDb not available')
|
|
100
|
+
return []
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
for (const fileMetadata of filesMetadata) {
|
|
104
|
+
const json = JSON.parse(fileMetadata.decodedDataJson)
|
|
105
|
+
const transactionId = json[0].value.value
|
|
106
|
+
|
|
107
|
+
const excludedTransactionsQuery = await appDb
|
|
108
|
+
.select()
|
|
109
|
+
.from(appState)
|
|
110
|
+
.where(eq(appState.key, 'excludedTransactions'))
|
|
111
|
+
|
|
112
|
+
let excludedTransactions = new Set<string>()
|
|
113
|
+
|
|
114
|
+
if (excludedTransactionsQuery && excludedTransactionsQuery.length === 1) {
|
|
115
|
+
const valueString = excludedTransactionsQuery[0].value
|
|
116
|
+
if (valueString) {
|
|
117
|
+
const excludedTransactionsArray = JSON.parse(valueString)
|
|
118
|
+
excludedTransactions = new Set(excludedTransactionsArray)
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
if (excludedTransactions.has(transactionId)) {
|
|
123
|
+
continue
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
const arweave = getArweave()
|
|
127
|
+
|
|
128
|
+
if (!arweave) {
|
|
129
|
+
logger('[fetchAll/actors] [fetchAllBinaryData] arweave not available')
|
|
130
|
+
return []
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
try {
|
|
134
|
+
const res = await fetch(
|
|
135
|
+
`https://${ARWEAVE_HOST}/tx/${transactionId}/status`,
|
|
136
|
+
)
|
|
137
|
+
|
|
138
|
+
if (res.status !== 200) {
|
|
139
|
+
logger(
|
|
140
|
+
`[fetchAll/actors] [fetchAllBinaryData] error fetching transaction data for ${transactionId}`,
|
|
141
|
+
)
|
|
142
|
+
|
|
143
|
+
excludedTransactions.add(transactionId)
|
|
144
|
+
|
|
145
|
+
await saveAppState(
|
|
146
|
+
'excludedTransactions',
|
|
147
|
+
JSON.stringify(Array.from(excludedTransactions)),
|
|
148
|
+
)
|
|
149
|
+
|
|
150
|
+
logger(
|
|
151
|
+
'[fetchAll/actors] [fetchAllBinaryData] updated excludedTransactions:',
|
|
152
|
+
excludedTransactions,
|
|
153
|
+
)
|
|
154
|
+
|
|
155
|
+
continue
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
const dataString = await arweave.transactions
|
|
159
|
+
.getData(transactionId, {
|
|
160
|
+
decode: true,
|
|
161
|
+
string: true,
|
|
162
|
+
})
|
|
163
|
+
.catch((error) => {
|
|
164
|
+
logger(
|
|
165
|
+
`[fetchAll/actors] [fetchAllBinaryData] error fetching transaction data for ${transactionId}`,
|
|
166
|
+
error,
|
|
167
|
+
)
|
|
168
|
+
})
|
|
169
|
+
|
|
170
|
+
const dataUint8Array = await arweave.transactions.getData(transactionId)
|
|
171
|
+
// let buffer
|
|
172
|
+
//
|
|
173
|
+
// if (dataUint8Array && dataUint8Array instanceof Uint8Array) {
|
|
174
|
+
// }
|
|
175
|
+
|
|
176
|
+
let contentType = identifyString(dataString)
|
|
177
|
+
if (
|
|
178
|
+
contentType !== 'json' &&
|
|
179
|
+
contentType !== 'base64' &&
|
|
180
|
+
contentType !== 'html'
|
|
181
|
+
) {
|
|
182
|
+
const possibleImageType = getDataTypeFromString(dataString)
|
|
183
|
+
if (!possibleImageType) {
|
|
184
|
+
logger(
|
|
185
|
+
`[fetchAll/actors] [fetchAllBinaryData] transaction ${transactionId} data not in expected format: ${possibleImageType}`,
|
|
186
|
+
)
|
|
187
|
+
continue
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
contentType = possibleImageType
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
if (contentType === 'url') {
|
|
194
|
+
const url = dataString as string
|
|
195
|
+
const response = await fetch(url)
|
|
196
|
+
if (!response.ok) {
|
|
197
|
+
throw new Error(`Failed to fetch image: ${response.statusText}`)
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
// Get the image as a Blob
|
|
201
|
+
const blob = await response.blob()
|
|
202
|
+
const buffer = await blob.arrayBuffer()
|
|
203
|
+
const bufferUint8Array = new Uint8Array(buffer)
|
|
204
|
+
|
|
205
|
+
// Extract the file extension from the URL
|
|
206
|
+
const extensionMatch = url.match(
|
|
207
|
+
/\.(jpg|jpeg|png|gif|bmp|webp|svg)$/i,
|
|
208
|
+
)
|
|
209
|
+
if (!extensionMatch) {
|
|
210
|
+
throw new Error(
|
|
211
|
+
'Unable to determine the file extension from the URL.',
|
|
212
|
+
)
|
|
213
|
+
}
|
|
214
|
+
const fileExtension = extensionMatch[0] // e.g., ".jpg"
|
|
215
|
+
|
|
216
|
+
// Set the file name (you can customize this)
|
|
217
|
+
// const fileNameFromUrl = `${transactionId}${fileExtension}`
|
|
218
|
+
|
|
219
|
+
await fs.promises.writeFile(
|
|
220
|
+
`/files/images/${transactionId}`,
|
|
221
|
+
bufferUint8Array,
|
|
222
|
+
{
|
|
223
|
+
encoding: 'binary',
|
|
224
|
+
},
|
|
225
|
+
)
|
|
226
|
+
|
|
227
|
+
continue
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
let mimeType = getMimeType(dataString as string)
|
|
231
|
+
let fileExtension = mimeType
|
|
232
|
+
|
|
233
|
+
if (fileExtension && fileExtension?.startsWith('image')) {
|
|
234
|
+
fileExtension = fileExtension.replace('image/', '')
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
let fileName = transactionId
|
|
238
|
+
|
|
239
|
+
if (contentType === 'base64') {
|
|
240
|
+
if (mimeType) {
|
|
241
|
+
fileName += `.${fileExtension}`
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
// Remove the Base64 header if it exists (e.g., "data:image/png;base64,")
|
|
245
|
+
const base64Data = dataString.split(',').pop() || ''
|
|
246
|
+
|
|
247
|
+
// Decode the Base64 string to binary
|
|
248
|
+
const binaryString = atob(base64Data)
|
|
249
|
+
const length = binaryString.length
|
|
250
|
+
const binaryData = new Uint8Array(length)
|
|
251
|
+
|
|
252
|
+
for (let i = 0; i < length; i++) {
|
|
253
|
+
binaryData[i] = binaryString.charCodeAt(i)
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
console.log(`attempting to writeFile to /files/images/${fileName}`)
|
|
257
|
+
|
|
258
|
+
await fs.promises.writeFile(`/files/images/${fileName}`, binaryData, {
|
|
259
|
+
encoding: 'binary',
|
|
260
|
+
})
|
|
261
|
+
|
|
262
|
+
// if (dataUint8Array && dataUint8Array instanceof Uint8Array) {
|
|
263
|
+
// await fs.promises.writeFile(
|
|
264
|
+
// `/files/images/${fileName}`,
|
|
265
|
+
// dataUint8Array,
|
|
266
|
+
// )
|
|
267
|
+
// }
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
if (contentType === 'html') {
|
|
271
|
+
fileName += '.html'
|
|
272
|
+
await fs.promises.writeFile(`/files/html/${fileName}`, dataString)
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
if (contentType === 'json') {
|
|
276
|
+
fileName += '.json'
|
|
277
|
+
await fs.promises.writeFile(`/files/json/${fileName}`, dataString)
|
|
278
|
+
}
|
|
279
|
+
} catch (error) {
|
|
280
|
+
logger(error)
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
return []
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
_fetchAllBinaryData().then((binaryData) => {
|
|
288
|
+
sendBack({ type: 'fetchingAllBinaryDataSuccess', binaryData })
|
|
289
|
+
})
|
|
290
|
+
|
|
291
|
+
return () => {}
|
|
292
|
+
})
|
|
@@ -267,6 +267,7 @@ export const hydrateFromDb = fromCallback<
|
|
|
267
267
|
resolvedValue: refResolvedValue,
|
|
268
268
|
resolvedDisplayValue: refResolvedDisplayValue,
|
|
269
269
|
renderValue: refResolvedDisplayValue,
|
|
270
|
+
populateFromDb: true,
|
|
270
271
|
})
|
|
271
272
|
|
|
272
273
|
if (
|
|
@@ -289,7 +290,7 @@ export const hydrateFromDb = fromCallback<
|
|
|
289
290
|
|
|
290
291
|
const renderValue = await fs.promises.readFile(filePath, 'utf8')
|
|
291
292
|
const property = item.properties[propertyName]
|
|
292
|
-
property.getService().send({ type: '
|
|
293
|
+
property.getService().send({ type: 'updateContext', renderValue })
|
|
293
294
|
return
|
|
294
295
|
}
|
|
295
296
|
}
|
package/dist/src/index.ts
CHANGED
|
@@ -1,21 +1,73 @@
|
|
|
1
|
-
import { setup } from 'xstate'
|
|
1
|
+
import { assign, setup } from 'xstate'
|
|
2
2
|
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
} from '@/browser/schema/file/
|
|
3
|
+
fetchAllBinaryData,
|
|
4
|
+
fetchAllMetadataRecords,
|
|
5
|
+
} from '@/browser/schema/file/fetchAll/actors'
|
|
6
|
+
import { Attestation } from '@/browser/gql/graphql'
|
|
6
7
|
|
|
7
|
-
|
|
8
|
+
type FetchAllFilesMachineContext = {
|
|
9
|
+
addresses: string[]
|
|
10
|
+
dbsLoaded: boolean
|
|
11
|
+
filesMetadata?: Attestation[]
|
|
12
|
+
filesBlobData?: any[]
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export const fetchAllFilesMachine = setup({
|
|
16
|
+
types: {
|
|
17
|
+
context: {} as FetchAllFilesMachineContext,
|
|
18
|
+
},
|
|
8
19
|
actors: {
|
|
9
|
-
|
|
10
|
-
|
|
20
|
+
fetchAllMetadataRecords,
|
|
21
|
+
fetchAllBinaryData,
|
|
11
22
|
},
|
|
12
23
|
}).createMachine({
|
|
13
|
-
id: '
|
|
24
|
+
id: 'fetchAllFiles',
|
|
14
25
|
initial: 'idle',
|
|
15
|
-
context: {
|
|
16
|
-
|
|
26
|
+
context: ({ input }) =>
|
|
27
|
+
({
|
|
28
|
+
...input,
|
|
29
|
+
dbsLoaded: false,
|
|
30
|
+
}) as FetchAllFilesMachineContext,
|
|
31
|
+
on: {
|
|
32
|
+
allDbsLoaded: {
|
|
33
|
+
target: '.fetchingAllMetadataRecords',
|
|
34
|
+
actions: assign({
|
|
35
|
+
dbsLoaded: true,
|
|
36
|
+
}),
|
|
37
|
+
},
|
|
17
38
|
},
|
|
18
39
|
states: {
|
|
19
40
|
idle: {},
|
|
41
|
+
fetchingAllMetadataRecords: {
|
|
42
|
+
on: {
|
|
43
|
+
fetchingAllMetadataRecordsSuccess: {
|
|
44
|
+
target: 'fetchingAllBinaryData',
|
|
45
|
+
actions: assign({
|
|
46
|
+
filesMetadata: ({ event }) => event.filesMetadata,
|
|
47
|
+
}),
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
invoke: {
|
|
51
|
+
src: 'fetchAllMetadataRecords',
|
|
52
|
+
input: ({ context, event }) => ({ context, event }),
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
fetchingAllBinaryData: {
|
|
56
|
+
on: {
|
|
57
|
+
fetchingAllBinaryDataSuccess: {
|
|
58
|
+
target: 'success',
|
|
59
|
+
actions: assign({
|
|
60
|
+
filesBlobData: ({ event }) => event.filesBlobData,
|
|
61
|
+
}),
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
invoke: {
|
|
65
|
+
src: 'fetchAllBinaryData',
|
|
66
|
+
input: ({ context }) => ({ context }),
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
success: {
|
|
70
|
+
type: 'final',
|
|
71
|
+
},
|
|
20
72
|
},
|
|
21
73
|
})
|
|
@@ -38,22 +38,6 @@ export const propertyMachine = setup({
|
|
|
38
38
|
initial: 'waitingForDb',
|
|
39
39
|
context: ({ input }) => input as PropertyMachineContext,
|
|
40
40
|
on: {
|
|
41
|
-
updatePropertyValue: {
|
|
42
|
-
target: '.resolvingRelatedValue',
|
|
43
|
-
guard: ({ context }) => !context.isDbReady,
|
|
44
|
-
actions: assign(({ event }) => {
|
|
45
|
-
return {
|
|
46
|
-
propertyValue: event.propertyValue,
|
|
47
|
-
}
|
|
48
|
-
}),
|
|
49
|
-
},
|
|
50
|
-
updateRenderValue: {
|
|
51
|
-
actions: assign(({ event, context }) => {
|
|
52
|
-
return {
|
|
53
|
-
renderValue: event.renderValue,
|
|
54
|
-
}
|
|
55
|
-
}),
|
|
56
|
-
},
|
|
57
41
|
// reload: '.hydratingFromDb',
|
|
58
42
|
save: {
|
|
59
43
|
actions: assign({
|
|
@@ -25,12 +25,12 @@ export const resolveRelatedValue = fromCallback<
|
|
|
25
25
|
propertyName,
|
|
26
26
|
seedUid,
|
|
27
27
|
propertyRecordSchema,
|
|
28
|
-
|
|
28
|
+
populatedFromDb,
|
|
29
29
|
schemaUid,
|
|
30
30
|
} = context
|
|
31
31
|
|
|
32
32
|
const _resolveRelatedValue = async () => {
|
|
33
|
-
if (!propertyValue || !isRelation) {
|
|
33
|
+
if (!propertyValue || !isRelation || populatedFromDb) {
|
|
34
34
|
return
|
|
35
35
|
}
|
|
36
36
|
|
|
@@ -45,7 +45,7 @@ export const resolveRelatedValue = fromCallback<
|
|
|
45
45
|
if (!parsedValue && seedUidToContentUrl.has(propertyValue)) {
|
|
46
46
|
const contentUrl = seedUidToContentUrl.get(propertyValue)
|
|
47
47
|
sendBack({
|
|
48
|
-
type: '
|
|
48
|
+
type: 'updateContext',
|
|
49
49
|
renderValue: contentUrl,
|
|
50
50
|
})
|
|
51
51
|
sendBack({
|
|
@@ -74,7 +74,7 @@ export const resolveRelatedValue = fromCallback<
|
|
|
74
74
|
const contentUrl =
|
|
75
75
|
storageTransactionIdToContentUrl.get(storageTransactionId)
|
|
76
76
|
sendBack({
|
|
77
|
-
type: '
|
|
77
|
+
type: 'updateContext',
|
|
78
78
|
renderValue: contentUrl,
|
|
79
79
|
})
|
|
80
80
|
sendBack({
|
|
@@ -90,7 +90,7 @@ export const resolveRelatedValue = fromCallback<
|
|
|
90
90
|
seedUidToContentUrl.set(propertyValue, contentUrl)
|
|
91
91
|
}
|
|
92
92
|
sendBack({
|
|
93
|
-
type: '
|
|
93
|
+
type: 'updateContext',
|
|
94
94
|
renderValue: contentUrl,
|
|
95
95
|
})
|
|
96
96
|
sendBack({
|
|
@@ -117,7 +117,7 @@ export const resolveRelatedValue = fromCallback<
|
|
|
117
117
|
if (refResolvedValueToContentUrl.has(refResolvedValue)) {
|
|
118
118
|
const contentUrl = refResolvedValueToContentUrl.get(refResolvedValue)
|
|
119
119
|
sendBack({
|
|
120
|
-
type: '
|
|
120
|
+
type: 'updateContext',
|
|
121
121
|
renderValue: contentUrl,
|
|
122
122
|
})
|
|
123
123
|
sendBack({
|
|
@@ -138,7 +138,7 @@ export const resolveRelatedValue = fromCallback<
|
|
|
138
138
|
const contentUrl = URL.createObjectURL(fileHandler)
|
|
139
139
|
refResolvedValueToContentUrl.set(refResolvedValue, contentUrl)
|
|
140
140
|
sendBack({
|
|
141
|
-
type: '
|
|
141
|
+
type: 'updateContext',
|
|
142
142
|
renderValue: contentUrl,
|
|
143
143
|
})
|
|
144
144
|
sendBack({
|
|
@@ -181,7 +181,7 @@ export const resolveRelatedValue = fromCallback<
|
|
|
181
181
|
|
|
182
182
|
if (contentUrl) {
|
|
183
183
|
sendBack({
|
|
184
|
-
type: '
|
|
184
|
+
type: 'updateContext',
|
|
185
185
|
renderValue: contentUrl,
|
|
186
186
|
})
|
|
187
187
|
sendBack({
|
|
@@ -27,7 +27,7 @@ export declare class ItemProperty<PropertyType> {
|
|
|
27
27
|
static find({ propertyName, seedLocalId, seedUid, }: ItemPropertyFindProps): Promise<ItemProperty<any> | undefined>;
|
|
28
28
|
static cacheKey(seedLocalIdOrUid: string, propertyName: string): string;
|
|
29
29
|
getService(): import("xstate").ActorRef<import("xstate").MachineSnapshot<PropertyMachineContext, import("xstate").AnyEventObject, {
|
|
30
|
-
[x: string]: import("xstate").ActorRefFromLogic<import("xstate").CallbackActorLogic<import("xstate").EventObject, import("@/types").FromCallbackInput<PropertyMachineContext>, import("xstate").EventObject>> | import("xstate").ActorRefFromLogic<
|
|
30
|
+
[x: string]: import("xstate").ActorRefFromLogic<import("xstate").CallbackActorLogic<import("xstate").EventObject, import("@/types").FromCallbackInput<PropertyMachineContext>, import("xstate").EventObject>> | import("xstate").ActorRefFromLogic<import("xstate").CallbackActorLogic<import("xstate").EventObject, import("@/types").FromCallbackInput<PropertyMachineContext, import("xstate").EventObject>, import("xstate").EventObject>> | import("xstate").ActorRefFromLogic<import("xstate").CallbackActorLogic<import("xstate").EventObject, import("@/types").FromCallbackInput<PropertyMachineContext, import("@/types").SaveValueToDbEvent>, import("xstate").EventObject>> | undefined;
|
|
31
31
|
}, {}, string, import("xstate").NonReducibleUnknown, import("xstate").MetaObject, import("xstate").MachineConfig<PropertyMachineContext, import("xstate").AnyEventObject, import("xstate").Values<{
|
|
32
32
|
waitForDb: {
|
|
33
33
|
src: "waitForDb";
|
|
@@ -36,7 +36,7 @@ export declare class ItemProperty<PropertyType> {
|
|
|
36
36
|
};
|
|
37
37
|
initialize: {
|
|
38
38
|
src: "initialize";
|
|
39
|
-
logic:
|
|
39
|
+
logic: import("xstate").CallbackActorLogic<import("xstate").EventObject, import("@/types").FromCallbackInput<PropertyMachineContext, import("xstate").EventObject>, import("xstate").EventObject>;
|
|
40
40
|
id: string | undefined;
|
|
41
41
|
};
|
|
42
42
|
hydrateFromDb: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hydrateFromDb.d.ts","sourceRoot":"","sources":["../../../../../../src/browser/property/actors/hydrateFromDb.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAgB,MAAM,QAAQ,CAAA;AAOlD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AAKzD,eAAO,MAAM,aAAa,
|
|
1
|
+
{"version":3,"file":"hydrateFromDb.d.ts","sourceRoot":"","sources":["../../../../../../src/browser/property/actors/hydrateFromDb.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAgB,MAAM,QAAQ,CAAA;AAOlD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AAKzD,eAAO,MAAM,aAAa,uHAgSxB,CAAA"}
|
|
@@ -1,2 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
import { EventObject } from 'xstate';
|
|
2
|
+
import { FromCallbackInput } from '@/types/machines';
|
|
3
|
+
import { PropertyMachineContext } from '@/types/property';
|
|
4
|
+
export declare const initialize: import("xstate").CallbackActorLogic<EventObject, FromCallbackInput<PropertyMachineContext, EventObject>, EventObject>;
|
|
2
5
|
//# sourceMappingURL=initialize.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initialize.d.ts","sourceRoot":"","sources":["../../../../../../src/browser/property/actors/initialize.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"initialize.d.ts","sourceRoot":"","sources":["../../../../../../src/browser/property/actors/initialize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAgB,MAAM,QAAQ,CAAA;AAElD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AAEzD,eAAO,MAAM,UAAU,uHAwDrB,CAAA"}
|