@seedprotocol/publish 0.5.1 → 0.5.3

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 (111) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/README.md +7 -1
  3. package/dist/config-BBL0ILr9.js +945 -0
  4. package/dist/config-BBL0ILr9.js.map +1 -0
  5. package/dist/config-DLoMtwmG.js +945 -0
  6. package/dist/config-DLoMtwmG.js.map +1 -0
  7. package/dist/ensureAutomationSessionKey-BuM0gQfL.js +84 -0
  8. package/dist/ensureAutomationSessionKey-BuM0gQfL.js.map +1 -0
  9. package/dist/ensureAutomationSessionKey-BwIqDrG9.js +84 -0
  10. package/dist/ensureAutomationSessionKey-BwIqDrG9.js.map +1 -0
  11. package/dist/ensureManagedAccountEasConfigured-CLB69z0D.js +1206 -0
  12. package/dist/ensureManagedAccountEasConfigured-CLB69z0D.js.map +1 -0
  13. package/dist/ensureManagedAccountEasConfigured-DkRwHXL2.js +1204 -0
  14. package/dist/ensureManagedAccountEasConfigured-DkRwHXL2.js.map +1 -0
  15. package/dist/ensureModularPublishBootstrap-B_w6G5EL.js +125 -0
  16. package/dist/ensureModularPublishBootstrap-B_w6G5EL.js.map +1 -0
  17. package/dist/ensureModularPublishBootstrap-BafX1eks.js +124 -0
  18. package/dist/ensureModularPublishBootstrap-BafX1eks.js.map +1 -0
  19. package/dist/ensureModularPublishBootstrap-CPEwnTCw.js +127 -0
  20. package/dist/ensureModularPublishBootstrap-CPEwnTCw.js.map +1 -0
  21. package/dist/ensureModularPublishBootstrap-CqKKjChn.js +127 -0
  22. package/dist/ensureModularPublishBootstrap-CqKKjChn.js.map +1 -0
  23. package/dist/ensureSmartWalletThenPublish-BDX7FxdV.js +47 -0
  24. package/dist/ensureSmartWalletThenPublish-BDX7FxdV.js.map +1 -0
  25. package/dist/ensureSmartWalletThenPublish-CgCb9kZy.js +47 -0
  26. package/dist/ensureSmartWalletThenPublish-CgCb9kZy.js.map +1 -0
  27. package/dist/ensureSmartWalletThenPublish-Ch7BST2M.js +48 -0
  28. package/dist/ensureSmartWalletThenPublish-Ch7BST2M.js.map +1 -0
  29. package/dist/ensureSmartWalletThenPublish-DaLwVUBl.js +47 -0
  30. package/dist/ensureSmartWalletThenPublish-DaLwVUBl.js.map +1 -0
  31. package/dist/ensureSmartWalletThenPublish-s7MBAeky.js +48 -0
  32. package/dist/ensureSmartWalletThenPublish-s7MBAeky.js.map +1 -0
  33. package/dist/errors-Du3LNbJN.js +70 -0
  34. package/dist/errors-Du3LNbJN.js.map +1 -0
  35. package/dist/helpers/approvedTargetsForAutomationPublish.d.ts +9 -0
  36. package/dist/helpers/approvedTargetsForAutomationPublish.d.ts.map +1 -0
  37. package/dist/helpers/assertStorageBoundToIdentity.d.ts +31 -0
  38. package/dist/helpers/assertStorageBoundToIdentity.d.ts.map +1 -0
  39. package/dist/helpers/automationSessionKeyPermissions.d.ts +26 -0
  40. package/dist/helpers/automationSessionKeyPermissions.d.ts.map +1 -0
  41. package/dist/helpers/easDirect.d.ts +7 -0
  42. package/dist/helpers/easDirect.d.ts.map +1 -1
  43. package/dist/helpers/enrollPublishAutomation.d.ts +36 -0
  44. package/dist/helpers/enrollPublishAutomation.d.ts.map +1 -0
  45. package/dist/helpers/ensureAutomationSessionKey.d.ts +20 -0
  46. package/dist/helpers/ensureAutomationSessionKey.d.ts.map +1 -0
  47. package/dist/helpers/ensureManagedAccountEasConfigured.d.ts +5 -0
  48. package/dist/helpers/ensureManagedAccountEasConfigured.d.ts.map +1 -1
  49. package/dist/helpers/resolveRevokeAccount.d.ts +3 -6
  50. package/dist/helpers/resolveRevokeAccount.d.ts.map +1 -1
  51. package/dist/helpers/seedSigner.d.ts +3 -0
  52. package/dist/helpers/seedSigner.d.ts.map +1 -1
  53. package/dist/index.d.ts +3 -1
  54. package/dist/index.d.ts.map +1 -1
  55. package/dist/index.js +573 -198
  56. package/dist/index.js.map +1 -1
  57. package/dist/publishAuthorization-9WO-Zbcj.js +3426 -0
  58. package/dist/publishAuthorization-9WO-Zbcj.js.map +1 -0
  59. package/dist/publishAuthorization-CSyAV8Hf.js +3403 -0
  60. package/dist/publishAuthorization-CSyAV8Hf.js.map +1 -0
  61. package/dist/publishManager-B7zTF25-.js +3018 -0
  62. package/dist/publishManager-B7zTF25-.js.map +1 -0
  63. package/dist/publishManager-DFIx_0eN.js +3060 -0
  64. package/dist/publishManager-DFIx_0eN.js.map +1 -0
  65. package/dist/publishManager-luSstTr_.js +3008 -0
  66. package/dist/publishManager-luSstTr_.js.map +1 -0
  67. package/dist/resolveRevokeAccount-B4J_Jo76.js +38 -0
  68. package/dist/resolveRevokeAccount-B4J_Jo76.js.map +1 -0
  69. package/dist/resolveRevokeAccount-Bo1IMYOj.js +38 -0
  70. package/dist/resolveRevokeAccount-Bo1IMYOj.js.map +1 -0
  71. package/dist/resolveRevokeAccount-FYMP0Qz6.js +30 -0
  72. package/dist/resolveRevokeAccount-FYMP0Qz6.js.map +1 -0
  73. package/dist/resolveRevokeAccount-mMTFtVDR.js +30 -0
  74. package/dist/resolveRevokeAccount-mMTFtVDR.js.map +1 -0
  75. package/dist/services/PublishManager/index.d.ts +2 -2
  76. package/dist/services/PublishManager/index.d.ts.map +1 -1
  77. package/dist/services/domainOwnership/challenge.d.ts +34 -0
  78. package/dist/services/domainOwnership/challenge.d.ts.map +1 -0
  79. package/dist/services/domainOwnership/dnsVerify.d.ts +23 -0
  80. package/dist/services/domainOwnership/dnsVerify.d.ts.map +1 -0
  81. package/dist/services/domainOwnership/index.d.ts +121 -0
  82. package/dist/services/domainOwnership/index.d.ts.map +1 -0
  83. package/dist/services/domainOwnership/public.d.ts +2 -0
  84. package/dist/services/domainOwnership/public.d.ts.map +1 -0
  85. package/dist/services/domainOwnership/registry.d.ts +18 -0
  86. package/dist/services/domainOwnership/registry.d.ts.map +1 -0
  87. package/dist/services/publish/actors/createAttestations.d.ts +6 -0
  88. package/dist/services/publish/actors/createAttestations.d.ts.map +1 -1
  89. package/dist/services/publish/index.d.ts +17 -17
  90. package/dist/services/publish/index.d.ts.map +1 -1
  91. package/dist/services/publishAuthorization/index.d.ts +68 -0
  92. package/dist/services/publishAuthorization/index.d.ts.map +1 -0
  93. package/dist/services/publishAuthorization/public.d.ts +2 -0
  94. package/dist/services/publishAuthorization/public.d.ts.map +1 -0
  95. package/dist/services/revoke/revokeAttestations.d.ts +3 -0
  96. package/dist/services/revoke/revokeAttestations.d.ts.map +1 -1
  97. package/dist/services/upload/uploadMachine.d.ts +2 -2
  98. package/dist/services/upload/uploadMachine.d.ts.map +1 -1
  99. package/dist/thirdweb.d.ts +5 -0
  100. package/dist/thirdweb.d.ts.map +1 -1
  101. package/dist/thirdweb.js +202 -83
  102. package/dist/thirdweb.js.map +1 -1
  103. package/dist/worker-BaZK7VaR.js +69 -0
  104. package/dist/worker-BaZK7VaR.js.map +1 -0
  105. package/dist/worker-ChGaz4Bg.js +69 -0
  106. package/dist/worker-ChGaz4Bg.js.map +1 -0
  107. package/dist/worker-Nx2FsrmM.js +69 -0
  108. package/dist/worker-Nx2FsrmM.js.map +1 -0
  109. package/dist/worker-eQpROLst.js +69 -0
  110. package/dist/worker-eQpROLst.js.map +1 -0
  111. package/package.json +7 -4
@@ -0,0 +1,3018 @@
1
+ import { $ as e, A as t, Ct as n, Dt as r, E as i, Et as a, G as o, K as s, N as c, O as l, Q as u, St as d, Y as f, Z as p, a as m, c as h, d as g, et as _, g as v, gt as y, h as b, i as ee, it as te, k as ne, l as re, lt as ie, mt as ae, nt as oe, o as se, pt as ce, q as le, st as ue, t as de, tt as fe, u as pe, v as me, vt as x, w as he, wt as ge, xt as _e } from "./ensureManagedAccountEasConfigured-CLB69z0D.js";
2
+ import { BaseArweaveClient as ve, BaseDb as S, BaseFileManager as C, INTERNAL_DATA_TYPES as ye, Item as w, ModelPropertyDataTypes as be, applyPropertyAttestationUidsFromPublish as xe, arweaveL1FinalizeJobs as Se, getCorrectId as Ce, getEasSchemaForItemProperty as we, getItemPropertiesFromEas as Te, getRelatedItemsForPublish as Ee, getSegmentedItemProperties as De, getUploadPipelineTransactionStatus as Oe, htmlEmbeddedImageCoPublish as ke, isItemOwned as Ae, itemHasPublishUploadCandidates as je, prepareHtmlEmbeddedImagesForPublish as Me, publishProcesses as T, resolvePublishPayloadValues as Ne, rewriteHtmlEmbeddedImagesOnDisk as Pe, setSchemaUidForModel as Fe, setSchemaUidForSchemaDefinition as E, updateVersionUid as Ie, validateItemForPublish as Le } from "@seedprotocol/sdk";
3
+ import { decodeAbiParameters as Re, encodeAbiParameters as ze, parseEventLogs as D } from "viem";
4
+ import { getContract as Be, sendTransaction as Ve } from "thirdweb";
5
+ import { optimismSepolia as He } from "thirdweb/chains";
6
+ import { ethers as O } from "ethers";
7
+ import { NO_EXPIRATION as Ue, SchemaEncoder as We, SchemaRegistry as Ge, ZERO_ADDRESS as Ke, ZERO_BYTES32 as qe } from "@ethereum-attestation-service/eas-sdk";
8
+ import { assign as k, createActor as Je, enqueueActions as Ye, fromCallback as A, fromPromise as j, setup as Xe } from "xstate";
9
+ import Ze from "arweave";
10
+ import M from "debug";
11
+ import { and as Qe, desc as $e, eq as N } from "drizzle-orm";
12
+ import { getInstalledModules as et, installModule as tt } from "thirdweb/modules";
13
+ //#region src/helpers/schemaRegistry.ts
14
+ async function nt(e) {
15
+ return ce(e);
16
+ }
17
+ function rt(e) {
18
+ return ie(e);
19
+ }
20
+ //#endregion
21
+ //#region src/helpers/nameSchemaAttestation.ts
22
+ var it = "0x0000000000000000000000000000000000000000";
23
+ function at(e) {
24
+ let t = new We("bytes32 schemaId,string name").encodeData([{
25
+ name: "schemaId",
26
+ value: e.schemaUid,
27
+ type: "bytes32"
28
+ }, {
29
+ name: "name",
30
+ value: e.schemaName,
31
+ type: "string"
32
+ }]);
33
+ return te({
34
+ schema: n,
35
+ data: {
36
+ recipient: it,
37
+ expirationTime: BigInt(Ue),
38
+ revocable: !0,
39
+ refUID: qe,
40
+ data: t,
41
+ value: 0n
42
+ }
43
+ });
44
+ }
45
+ //#endregion
46
+ //#region src/services/publish/helpers/ensureEasSchemas.ts
47
+ var P = "0x0000000000000000000000000000000000000000", F = !0;
48
+ function ot(e) {
49
+ return e.replace(/([a-z])([A-Z])/g, "$1_$2").toLowerCase();
50
+ }
51
+ async function st(e) {
52
+ let { itemRelationProperties: t, itemImageProperties: n, itemListProperties: r } = await De(e), i = /* @__PURE__ */ new Set();
53
+ e.modelName && i.add(e.modelName);
54
+ for (let e of t) {
55
+ let t = e.propertyDef?.ref;
56
+ t && i.add(t);
57
+ }
58
+ for (let e of n) {
59
+ let t = e.propertyDef?.dataType;
60
+ t === "File" ? i.add("File") : t === "Html" ? i.add("Html") : i.add("Image");
61
+ }
62
+ for (let e of r) {
63
+ let t = e.propertyDef?.ref;
64
+ t && i.add(t);
65
+ }
66
+ return i;
67
+ }
68
+ async function I(e, t) {
69
+ let n = await e.sendTransaction(t);
70
+ await x(n.transactionHash);
71
+ }
72
+ async function L(e, t) {
73
+ let n = o(t) ? t.txSender : le(t) ? t : (() => {
74
+ throw Error("@seedprotocol/publish: ensureEasSchemasForItem requires a PublishWallet or SeedTxSender");
75
+ })(), { itemBasicProperties: r, itemRelationProperties: i, itemImageProperties: a, itemListProperties: s } = await De(e), c = [
76
+ ...r,
77
+ ...i,
78
+ ...a,
79
+ ...s
80
+ ], l = /* @__PURE__ */ new Set(), u = await st(e), d = /* @__PURE__ */ new Set();
81
+ for (let e of u) {
82
+ let t = `bytes32 ${ot(e)}`, r = Ge.getSchemaUID(t, P, F);
83
+ if (await nt(r)) {
84
+ Fe({
85
+ modelName: e,
86
+ schemaUid: r
87
+ });
88
+ continue;
89
+ }
90
+ if (d.has(r)) {
91
+ Fe({
92
+ modelName: e,
93
+ schemaUid: r
94
+ });
95
+ continue;
96
+ }
97
+ try {
98
+ await I(n, rt({
99
+ schema: t,
100
+ resolverAddress: P,
101
+ revocable: F
102
+ }));
103
+ } catch (t) {
104
+ throw Error(`Failed to register EAS schema for model ${e}: ${t instanceof Error ? t.message : String(t)}`);
105
+ }
106
+ try {
107
+ await I(n, at({
108
+ schemaUid: r,
109
+ schemaName: ot(e)
110
+ }));
111
+ } catch (t) {
112
+ throw Error(`Failed to name EAS schema for model ${e}: ${t instanceof Error ? t.message : String(t)}`);
113
+ }
114
+ d.add(r), Fe({
115
+ modelName: e,
116
+ schemaUid: r
117
+ });
118
+ }
119
+ let f = "string storage_transaction_id", p = Ge.getSchemaUID(f, P, F);
120
+ if (await nt(p)) E({
121
+ text: f,
122
+ schemaUid: p
123
+ });
124
+ else if (!l.has(p) && (u.has("Image") || u.has("File") || u.has("Html"))) {
125
+ try {
126
+ await I(n, rt({
127
+ schema: f,
128
+ resolverAddress: P,
129
+ revocable: F
130
+ })), await I(n, at({
131
+ schemaUid: p,
132
+ schemaName: "storage_transaction_id"
133
+ }));
134
+ } catch (e) {
135
+ throw Error(`Failed to register EAS schema for storageTransactionId: ${e instanceof Error ? e.message : String(e)}`);
136
+ }
137
+ l.add(p), E({
138
+ text: f,
139
+ schemaUid: p
140
+ });
141
+ }
142
+ for (let e of c) {
143
+ if (!e.propertyDef) continue;
144
+ let t = ye[e.propertyDef.dataType]?.eas ?? "string", r = e, i = r.storagePropertyName && r.storagePropertyName.length > 0 ? r.storagePropertyName : e.propertyName, a = ot(i), o = `${t} ${a}`, s = [
145
+ "string",
146
+ "address",
147
+ "bool",
148
+ "bytes",
149
+ "bytes32",
150
+ "uint8",
151
+ "uint16",
152
+ "uint32",
153
+ "uint64",
154
+ "uint128",
155
+ "uint256"
156
+ ].includes(t) ? t : void 0, c = await we({
157
+ schemaUid: e.schemaUid,
158
+ propertyName: i,
159
+ easDataType: s
160
+ });
161
+ if (c) {
162
+ let e = await nt(c.id);
163
+ if (e && e.schema === o) {
164
+ E({
165
+ text: o,
166
+ schemaUid: c.id
167
+ });
168
+ continue;
169
+ }
170
+ }
171
+ let u = Ge.getSchemaUID(o, P, F);
172
+ if (await nt(u)) {
173
+ E({
174
+ text: o,
175
+ schemaUid: u
176
+ });
177
+ continue;
178
+ }
179
+ if (l.has(u)) {
180
+ E({
181
+ text: o,
182
+ schemaUid: u
183
+ });
184
+ continue;
185
+ }
186
+ try {
187
+ await I(n, rt({
188
+ schema: o,
189
+ resolverAddress: P,
190
+ revocable: F
191
+ }));
192
+ } catch (t) {
193
+ throw Error(`Failed to register EAS schema for property ${e.propertyName}: ${t instanceof Error ? t.message : String(t)}`);
194
+ }
195
+ try {
196
+ await I(n, at({
197
+ schemaUid: u,
198
+ schemaName: a
199
+ }));
200
+ } catch (t) {
201
+ throw Error(`Failed to name EAS schema for property ${e.propertyName}: ${t instanceof Error ? t.message : String(t)}`);
202
+ }
203
+ l.add(u), E({
204
+ text: o,
205
+ schemaUid: u
206
+ });
207
+ }
208
+ let m = await Ee(e);
209
+ for (let e of m) await L(e, n);
210
+ }
211
+ //#endregion
212
+ //#region src/helpers/blockchain.ts
213
+ var R = () => {
214
+ let e = ve.getHost(), t = Ze;
215
+ return Object.keys(t).includes("default") && t.default ? t.default.init({
216
+ host: e,
217
+ protocol: "https"
218
+ }) : t.init({
219
+ host: e,
220
+ protocol: "https"
221
+ });
222
+ }, z = "0x" + "0".repeat(64), B = async (e) => {
223
+ let t;
224
+ try {
225
+ t = await w.find({ seedLocalId: e });
226
+ } catch {}
227
+ return t || new Promise((t) => {
228
+ let n = setInterval(() => {
229
+ try {
230
+ w.find({ seedLocalId: e }).then((e) => {
231
+ e && (clearInterval(n), t(e));
232
+ });
233
+ } catch {}
234
+ }, 200);
235
+ });
236
+ };
237
+ function ct(e) {
238
+ if (!e || typeof e != "object") return;
239
+ let t = e;
240
+ if (Array.isArray(t.data_root)) return {
241
+ data_root: new Uint8Array(t.data_root),
242
+ chunks: (t.chunks ?? []).map((e) => ({
243
+ ...e,
244
+ dataHash: new Uint8Array(e.dataHash ?? [])
245
+ })),
246
+ proofs: (t.proofs ?? []).map((e) => ({
247
+ ...e,
248
+ proof: new Uint8Array(e.proof ?? [])
249
+ }))
250
+ };
251
+ }
252
+ function lt(e) {
253
+ return {
254
+ data_root: Array.from(e.data_root),
255
+ chunks: e.chunks.map((e) => ({
256
+ ...e,
257
+ dataHash: Array.from(e.dataHash)
258
+ })),
259
+ proofs: e.proofs.map((e) => ({
260
+ ...e,
261
+ proof: Array.from(e.proof)
262
+ }))
263
+ };
264
+ }
265
+ //#endregion
266
+ //#region src/services/publish/actors/createArweaveTransactions.ts
267
+ var ut = j(async ({ input: { context: e } }) => {
268
+ let { item: t } = e;
269
+ t.getPublishUploads || (t = await B(t.seedLocalId));
270
+ let n = {};
271
+ e.arweaveUploadTags?.length && (n.arweaveUploadTags = e.arweaveUploadTags);
272
+ let r = e.htmlEmbeddedDeferredHtmlSeedLocalIds;
273
+ r?.length && (n.deferHtmlStorageSeedLocalIds = r);
274
+ let i = await t.getPublishUploads(Object.keys(n).length ? n : void 0), a = c(), o = e.signArweaveTransactions ?? a.signArweaveTransactions, s = e.arweaveJwk ?? a.arweaveJwk, l = i.map((e) => ({
275
+ versionLocalId: e.versionLocalId,
276
+ itemPropertyName: e.itemPropertyName,
277
+ transactionJson: e.transactionToSign.toJSON()
278
+ })), u;
279
+ if (o) u = await o(l);
280
+ else if (s) {
281
+ let e = R(), t = s;
282
+ u = [];
283
+ for (let n of l) {
284
+ let r = e.transactions.fromRaw(n.transactionJson);
285
+ r.data && r.data.byteLength > 0 && !r.chunks && await r.prepareChunks(r.data), await e.transactions.sign(r, t);
286
+ let i = r.toJSON();
287
+ u.push({
288
+ transaction: {
289
+ ...i,
290
+ chunks: r.chunks ? lt(r.chunks) : void 0
291
+ },
292
+ versionId: n.versionLocalId,
293
+ modelName: n.itemPropertyName
294
+ });
295
+ }
296
+ } else throw Error("Arweave signing not configured. Provide signArweaveTransactions or arweaveJwk at createPublish or in PublishProvider config.");
297
+ let d = R();
298
+ return {
299
+ arweaveTransactions: u.map((e) => {
300
+ let { chunks: t, ...n } = e.transaction, r = { ...n }, i = ct(t);
301
+ return i && (r.chunks = i), {
302
+ transaction: d.transactions.fromRaw(r),
303
+ versionId: e.versionId,
304
+ modelName: e.modelName
305
+ };
306
+ }),
307
+ publishUploads: i
308
+ };
309
+ }), dt = j(async ({ input: { context: e } }) => {
310
+ let { item: t } = e;
311
+ t.getPublishUploads || (t = await B(t.seedLocalId));
312
+ let n = {};
313
+ e.arweaveUploadTags?.length && (n.arweaveUploadTags = e.arweaveUploadTags);
314
+ let r = e.htmlEmbeddedDeferredHtmlSeedLocalIds;
315
+ r?.length && (n.onlyHtmlStorageSeedLocalIds = r, n.skipRelationRecursion = !0);
316
+ let i = await t.getPublishUploads(Object.keys(n).length ? n : void 0), a = c(), o = e.signArweaveTransactions ?? a.signArweaveTransactions, s = e.arweaveJwk ?? a.arweaveJwk, l = i.map((e) => ({
317
+ versionLocalId: e.versionLocalId,
318
+ itemPropertyName: e.itemPropertyName,
319
+ transactionJson: e.transactionToSign.toJSON()
320
+ })), u;
321
+ if (o) u = await o(l);
322
+ else if (s) {
323
+ let e = R(), t = s;
324
+ u = [];
325
+ for (let n of l) {
326
+ let r = e.transactions.fromRaw(n.transactionJson);
327
+ r.data && r.data.byteLength > 0 && !r.chunks && await r.prepareChunks(r.data), await e.transactions.sign(r, t);
328
+ let i = r.toJSON();
329
+ u.push({
330
+ transaction: {
331
+ ...i,
332
+ chunks: r.chunks ? lt(r.chunks) : void 0
333
+ },
334
+ versionId: n.versionLocalId,
335
+ modelName: n.itemPropertyName
336
+ });
337
+ }
338
+ } else throw Error("Arweave signing not configured. Provide signArweaveTransactions or arweaveJwk at createPublish or in PublishProvider config.");
339
+ let d = R();
340
+ return {
341
+ arweaveTransactions: u.map((e) => {
342
+ let { chunks: t, ...n } = e.transaction, r = { ...n }, i = ct(t);
343
+ return i && (r.chunks = i), {
344
+ transaction: d.transactions.fromRaw(r),
345
+ versionId: e.versionId,
346
+ modelName: e.modelName
347
+ };
348
+ }),
349
+ publishUploads: i
350
+ };
351
+ }), ft = j(async ({ input: { context: e } }) => {
352
+ let t = e.htmlEmbeddedDataUriPolicy ?? "materialize";
353
+ return { deferredHtmlSeedLocalIds: (await Me(e.item, t)).deferredHtmlSeedLocalIds };
354
+ });
355
+ //#endregion
356
+ //#region src/services/publish/actors/rewritingHtmlEmbedded.ts
357
+ function pt(e, t) {
358
+ let n = [], r = Math.min(e?.length ?? 0, t?.length ?? 0);
359
+ for (let i = 0; i < r; i++) {
360
+ let r = e[i], a = t[i], o = r.transaction?.id;
361
+ typeof o == "string" && o.length > 0 && n.push({
362
+ txId: o,
363
+ seedLocalId: a.seedLocalId,
364
+ versionLocalId: a.versionLocalId
365
+ });
366
+ }
367
+ return n;
368
+ }
369
+ var mt = j(async ({ input: { context: e } }) => {
370
+ let t = pt(e.htmlEmbeddedPhase1ArweaveTransactions, e.htmlEmbeddedPhase1PublishUploads);
371
+ await Pe(e.item.seedLocalId, t);
372
+ }), ht = (e, t, n) => {
373
+ let r = [];
374
+ return e && r.push({
375
+ name: "Content-SHA-256",
376
+ value: e
377
+ }), t && r.push({
378
+ name: "Content-Type",
379
+ value: t
380
+ }), n?.length && r.push(...n), r;
381
+ }, gt = async (e) => {
382
+ let t = (e instanceof Uint8Array, new Uint8Array(e)), n = await crypto.subtle.digest("SHA-256", t);
383
+ return Array.from(new Uint8Array(n)).map((e) => e.toString(16).padStart(2, "0")).join("");
384
+ }, _t = {
385
+ png: "image/png",
386
+ jpg: "image/jpeg",
387
+ jpeg: "image/jpeg",
388
+ gif: "image/gif",
389
+ webp: "image/webp",
390
+ svg: "image/svg+xml",
391
+ html: "text/html",
392
+ htm: "text/html",
393
+ json: "application/json",
394
+ txt: "text/plain"
395
+ }, vt = (e) => {
396
+ let t = e.split(".").pop()?.toLowerCase();
397
+ return t ? _t[t] : void 0;
398
+ }, yt = async (e) => typeof Blob < "u" && e instanceof Blob ? new Uint8Array(await e.arrayBuffer()) : new Uint8Array(e), bt = (e) => {
399
+ switch (e) {
400
+ case "Image": return C.getFilesPath("images");
401
+ case "File": return C.getFilesPath("files");
402
+ case "Html": return C.getFilesPath("html");
403
+ case "Json": return C.getFilesPath("json");
404
+ default: return C.getFilesPath("images");
405
+ }
406
+ }, xt = /^data:(image\/[a-zA-Z0-9.+-]+);base64,([\s\S]*)$/i;
407
+ function St(e) {
408
+ let t = xt.exec((e ?? "").trim());
409
+ if (!t) return null;
410
+ try {
411
+ let e = t[1].toLowerCase().trim(), n = t[2].replace(/\s/g, "");
412
+ return {
413
+ mimeType: e,
414
+ bytes: Uint8Array.from(atob(n), (e) => e.charCodeAt(0))
415
+ };
416
+ } catch {
417
+ return null;
418
+ }
419
+ }
420
+ var Ct = async (e, t, n, r) => {
421
+ let i = r?.arweaveUploadTags, a = e.itemProperty, o = [];
422
+ for (let t of e.childProperties) {
423
+ let e = t.localStoragePath;
424
+ e && !e.endsWith("undefined") && await C.pathExists(e) && o.push({
425
+ propertyName: t.propertyName,
426
+ localStoragePath: e
427
+ });
428
+ }
429
+ let s;
430
+ if ((!o || o.length === 0) && n?.localStoragePath) {
431
+ let e = n.localStoragePath;
432
+ if (e && !e.endsWith("undefined") && await C.pathExists(e)) try {
433
+ s = await yt(await C.readFileAsBuffer(e));
434
+ } catch {
435
+ s = await yt((await C.getFs()).readFileSync(e));
436
+ }
437
+ }
438
+ if (o.length > 0) {
439
+ let e = "===FILE_SEPARATOR===", t = "", n = await C.getFs();
440
+ for (let r of o) {
441
+ let i;
442
+ try {
443
+ i = await n.promises.readFile(r.localStoragePath);
444
+ } catch {
445
+ i = n.readFileSync(r.localStoragePath);
446
+ }
447
+ t += `${e}${r.propertyName}${e}${i}`;
448
+ }
449
+ s = typeof document < "u" ? new TextEncoder().encode(t) : new Uint8Array(Buffer.from(t));
450
+ }
451
+ if (!s) return t;
452
+ let c = new Uint8Array(s), l = await gt(c), u;
453
+ o.length === 0 && n?.localStoragePath ? u = vt(n.localStoragePath) : o.length > 0 && (u = "application/octet-stream");
454
+ let d = n ? n.localId : a.localId, f = n ? n.propertyName : a.propertyName;
455
+ return t.push({
456
+ data: c,
457
+ contentHash: l,
458
+ contentType: u,
459
+ tags: ht(l, u, i),
460
+ itemPropertyName: f,
461
+ itemPropertyLocalId: d,
462
+ seedLocalId: a.seedLocalId,
463
+ versionLocalId: a.versionLocalId
464
+ }), t;
465
+ }, wt = async (e, t) => {
466
+ let n = [], r = t?.arweaveUploadTags;
467
+ for (let i of e) {
468
+ let e = i.getService().getSnapshot(), a = "context" in e ? e.context : null;
469
+ if (!a) continue;
470
+ let o = a.propertyValue, s = a.refResolvedValue;
471
+ if (!s) continue;
472
+ let { localId: c } = Ce(o ?? "");
473
+ if (!c) continue;
474
+ let l = i.propertyDef?.refValueType ?? i.propertyDef?.dataType ?? "Image";
475
+ if (l === be.Html) {
476
+ if (t?.deferHtmlStorageSeedLocalIds?.includes(c) || t?.onlyHtmlStorageSeedLocalIds?.length && !t.onlyHtmlStorageSeedLocalIds.includes(c)) continue;
477
+ } else if (t?.onlyHtmlStorageSeedLocalIds?.length) continue;
478
+ let u = `${bt(l)}/${s}`;
479
+ if (!await C.pathExists(u)) continue;
480
+ let d = await yt(await C.readFileAsBuffer(u)), f = await gt(d), p = vt(s);
481
+ n.push({
482
+ data: d,
483
+ contentHash: f,
484
+ contentType: p,
485
+ tags: ht(f, p, r),
486
+ itemPropertyName: i.propertyName,
487
+ itemPropertyLocalId: i.localId,
488
+ seedLocalId: c,
489
+ versionLocalId: i.versionLocalId
490
+ });
491
+ }
492
+ return n;
493
+ };
494
+ async function Tt(e, t, n) {
495
+ let r = S.getAppDb();
496
+ if (!r || n?.onlyHtmlStorageSeedLocalIds?.length) return t;
497
+ let i = await r.select().from(ke).where(N(ke.parentSeedLocalId, e.seedLocalId)), a = new Set(t.map((e) => e.seedLocalId));
498
+ for (let e of i) {
499
+ if (a.has(e.imageSeedLocalId)) continue;
500
+ let r = await w.find({
501
+ seedLocalId: e.imageSeedLocalId,
502
+ modelName: "Image"
503
+ });
504
+ if (!r) continue;
505
+ let i = r.internalProperties.storageTransactionId ?? r.allProperties.storageTransactionId, o = i?.getService().getSnapshot(), s = o && "context" in o ? o.context : void 0, c = St(typeof s?.propertyValue == "string" ? s.propertyValue ?? "" : ""), l = [];
506
+ if (c && i && i.localId && i.versionLocalId) {
507
+ let e = await gt(c.bytes);
508
+ l = [{
509
+ data: c.bytes,
510
+ contentHash: e,
511
+ contentType: c.mimeType,
512
+ tags: ht(e, c.mimeType, n?.arweaveUploadTags),
513
+ itemPropertyName: i.propertyName,
514
+ itemPropertyLocalId: i.localId,
515
+ seedLocalId: r.seedLocalId,
516
+ versionLocalId: i.versionLocalId
517
+ }];
518
+ }
519
+ for (let e of l) a.has(e.seedLocalId) || (t.push(e), a.add(e.seedLocalId));
520
+ }
521
+ return t;
522
+ }
523
+ var Et = async (e, t = [], n, r) => {
524
+ let { itemUploadProperties: i, itemRelationProperties: a, itemImageProperties: o } = await De(e);
525
+ if (!n && r?.onlyHtmlStorageSeedLocalIds?.length) {
526
+ let e = await wt(o, r);
527
+ return t.push(...e), t;
528
+ }
529
+ for (let e of i) t = await Ct(e, t, n, r);
530
+ let s = await wt(o, r);
531
+ if (t.push(...s), !n && !r?.onlyHtmlStorageSeedLocalIds?.length && (t = await Tt(e, t, r)), r?.skipRelationRecursion) return t;
532
+ for (let e of a) {
533
+ let n = e.getService().getSnapshot(), i = "context" in n ? n.context : null;
534
+ if (!i) continue;
535
+ let a = i.propertyValue;
536
+ if (!a || e.uid) continue;
537
+ let { localId: o, uid: s } = Ce(a), c = await w.find({
538
+ seedLocalId: o,
539
+ seedUid: s
540
+ });
541
+ if (!c) throw Error(`No relatedItem found for ${e.propertyName}`);
542
+ t = await Et(c, t, e, r);
543
+ }
544
+ return t;
545
+ }, Dt = 3, Ot = new TextEncoder().encode("seed-recovery"), kt = 32, At = 18446744073709551615n;
546
+ function jt(e, t, n) {
547
+ let r = O.solidityPackedKeccak256([
548
+ "uint256",
549
+ "address",
550
+ "uint64"
551
+ ], [
552
+ BigInt(t),
553
+ e,
554
+ n & At
555
+ ]);
556
+ return O.getBytes(r);
557
+ }
558
+ function Mt(e) {
559
+ if (e.length === 0) return new Uint8Array([0]);
560
+ if (e.length !== kt) throw Error(`ANS-104 target/anchor must be empty or ${kt} bytes, got ${e.length}`);
561
+ let t = /* @__PURE__ */ new Uint8Array(33);
562
+ return t[0] = 1, t.set(e, 1), t;
563
+ }
564
+ function Nt(e) {
565
+ return typeof e == "object" && !!e && "privateKey" in e && typeof e.privateKey == "string";
566
+ }
567
+ function Pt(e, t, n) {
568
+ let r = e >= 0 ? e << 1 : ~e << 1 | 1, i = n;
569
+ do {
570
+ let e = r & 127;
571
+ r >>>= 7, t[i++] = r ? e | 128 : e;
572
+ } while (r);
573
+ return i - n;
574
+ }
575
+ var Ft = (e) => {
576
+ if (!e?.length) return /* @__PURE__ */ new Uint8Array();
577
+ let t = new TextEncoder(), n = /* @__PURE__ */ new Uint8Array(16), r = [], i = (e) => {
578
+ let t = Pt(e, n, 0);
579
+ r.push(n.slice(0, t));
580
+ };
581
+ i(e.length);
582
+ for (let n of e) {
583
+ let e = t.encode(n.name), a = t.encode(n.value);
584
+ i(e.length), r.push(e), i(a.length), r.push(a);
585
+ }
586
+ i(0);
587
+ let a = r.reduce((e, t) => e + t.length, 0), o = new Uint8Array(a), s = 0;
588
+ for (let e of r) o.set(e, s), s += e.length;
589
+ return o;
590
+ }, It = (e) => {
591
+ let t = /* @__PURE__ */ new Uint8Array(8), n = new DataView(t.buffer);
592
+ return n.setUint32(0, e & 4294967295, !0), n.setUint32(4, Math.floor(e / 4294967296), !0), t;
593
+ };
594
+ async function V(e) {
595
+ return new Uint8Array(await crypto.subtle.digest("SHA-384", e));
596
+ }
597
+ function Lt(e, t) {
598
+ let n = new Uint8Array(e.length + t.length);
599
+ return n.set(e, 0), n.set(t, e.length), n;
600
+ }
601
+ async function Rt(e) {
602
+ let t = new TextEncoder();
603
+ if (Array.isArray(e)) {
604
+ let n = await V(Lt(t.encode("list"), t.encode(e.length.toString())));
605
+ for (let t of e) {
606
+ let e = await Rt(t);
607
+ n = await V(Lt(n, e));
608
+ }
609
+ return n;
610
+ }
611
+ return V(Lt(await V(Lt(t.encode("blob"), t.encode(e.byteLength.toString()))), await V(e)));
612
+ }
613
+ async function zt(e, t, n, r, i) {
614
+ let a = new TextEncoder();
615
+ return Rt([
616
+ a.encode("dataitem"),
617
+ a.encode("1"),
618
+ a.encode(Dt.toString()),
619
+ e,
620
+ t,
621
+ n,
622
+ r,
623
+ i
624
+ ]);
625
+ }
626
+ function Bt(e, t, n, r, i) {
627
+ let a = Ft(t), o = It(t.length), s = It(a.length), c = [
628
+ e,
629
+ Mt(r),
630
+ Mt(i),
631
+ o,
632
+ s,
633
+ a,
634
+ n
635
+ ], l = c.reduce((e, t) => e + t.length, 0), u = new Uint8Array(l), d = 0;
636
+ for (let e of c) u.set(e, d), d += e.length;
637
+ return u;
638
+ }
639
+ async function Vt(e, t) {
640
+ let n = /* @__PURE__ */ new Uint8Array(2);
641
+ new DataView(n.buffer).setUint16(0, Dt, !0);
642
+ let r = 67 + t.length, i = new Uint8Array(r);
643
+ i.set(n, 0), i.set(e, 2), i.set(t, 67);
644
+ let a = await crypto.subtle.digest("SHA-256", new Uint8Array(e));
645
+ return {
646
+ id: qt(new Uint8Array(a)),
647
+ raw: i
648
+ };
649
+ }
650
+ var Ht = async (e, t, n, r = /* @__PURE__ */ new Uint8Array()) => {
651
+ let i = O.SigningKey.computePublicKey(t.privateKey, !1), a = O.getBytes(i), o = Ft(n), s = /* @__PURE__ */ new Uint8Array(), c = await zt(a, s, r, o, e);
652
+ return Vt(O.getBytes(await t.signMessage(c)), Bt(a, n, e, s, r));
653
+ }, Ut = async (e, t, n, r = /* @__PURE__ */ new Uint8Array()) => {
654
+ let i = O.hexlify(Ot), a = await t.signMessage({ message: { raw: i } }), o = O.hashMessage(Ot), s = O.SigningKey.recoverPublicKey(o, a), c = O.getBytes(s), l = Ft(n), u = /* @__PURE__ */ new Uint8Array(), d = await zt(c, u, r, l, e), f = O.hexlify(d), p = await t.signMessage({ message: { raw: f } });
655
+ return Vt(O.getBytes(p), Bt(c, n, e, u, r));
656
+ };
657
+ function Wt(e) {
658
+ if (e.length < 133) return null;
659
+ let t = e[132];
660
+ if (t !== 0 && t !== 1) return null;
661
+ let n = t === 1;
662
+ if (n && e.length < 165) return null;
663
+ let r = 132 + (n ? 33 : 1);
664
+ if (e.length < r + 1) return null;
665
+ let i = e[r];
666
+ if (i !== 0 && i !== 1) return null;
667
+ let a = i === 1;
668
+ return a && e.length < r + 33 ? null : r + (a ? 33 : 1);
669
+ }
670
+ function Gt(e) {
671
+ let t = Wt(e);
672
+ if (t == null) return null;
673
+ let n = e[132] === 1, r = n ? e.slice(133, 165) : /* @__PURE__ */ new Uint8Array(), i = 132 + (n ? 33 : 1);
674
+ return {
675
+ rawTarget: r,
676
+ rawAnchor: e[i] === 1 ? e.slice(i + 1, i + 33) : /* @__PURE__ */ new Uint8Array(),
677
+ tagsStart: t
678
+ };
679
+ }
680
+ async function Kt(e) {
681
+ let t = Gt(e);
682
+ if (t == null) return !1;
683
+ let { rawTarget: n, rawAnchor: r, tagsStart: i } = t, a = i + 16;
684
+ if (e.length < a) return !1;
685
+ let o = new DataView(e.buffer, e.byteOffset, e.byteLength);
686
+ if (o.getUint16(0, !0) !== Dt) return !1;
687
+ let s = e.slice(2, 67), c = e.slice(67, 132), l = Number(o.getUint32(i + 8, !0) + o.getUint32(i + 12, !0) * 4294967296), u = i + 16 + l;
688
+ if (e.length < u) return !1;
689
+ let d = e.slice(i + 16, u), f = e.slice(u);
690
+ try {
691
+ let e = await zt(c, n, r, d, f), t = O.hashMessage(e), i = O.hexlify(s), a = O.SigningKey.recoverPublicKey(t, i), o = O.getBytes(a);
692
+ return o.length === c.length && o.every((e, t) => e === c[t]);
693
+ } catch {
694
+ return !1;
695
+ }
696
+ }
697
+ var qt = (e) => {
698
+ let t = "";
699
+ for (let n of e) t += String.fromCharCode(n);
700
+ return btoa(t).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
701
+ }, Jt = M("seedProtocol:createArweaveDataItems");
702
+ async function Yt(e, t, n) {
703
+ let r, i;
704
+ if (t) r = (await t(e)).map((e) => ({
705
+ transaction: { id: e.transaction.id },
706
+ versionId: e.versionId,
707
+ modelName: e.modelName
708
+ }));
709
+ else if (n) {
710
+ let t = [], a = Date.now();
711
+ for (let r = 0; r < e.length; r++) {
712
+ let i = e[r], s = i.tags, c = /* @__PURE__ */ new Uint8Array(8);
713
+ crypto.getRandomValues(c);
714
+ let l = (new DataView(c.buffer).getBigUint64(0, !1) ^ BigInt(r)) & 18446744073709551615n, u;
715
+ if (Nt(n)) {
716
+ let e = jt(n.address, a, l);
717
+ u = await Ht(i.data, n, s, e);
718
+ } else {
719
+ let e = o(n) ? n.signer : n, t = jt(e.address, a, l);
720
+ u = await Ut(i.data, e, s, t);
721
+ }
722
+ if (!await Kt(u.raw)) throw Jt("DataItem verification failed: id=%s modelName=%s", u.id, i.itemPropertyName), Error(`DataItem signature verification failed for ${i.itemPropertyName}. The signing key may not match the owner, or the payload may have been modified.`);
723
+ t.push(u);
724
+ }
725
+ i = t, r = t.map((t, n) => ({
726
+ transaction: { id: t.id },
727
+ versionId: e[n]?.versionLocalId,
728
+ modelName: e[n]?.itemPropertyName
729
+ }));
730
+ } else throw Error("@seedprotocol/publish: useArweaveBundler requires signDataItems or dataItemSigner (pass at createPublish or in PublishProvider config)");
731
+ let a = e.map((e) => ({
732
+ itemPropertyName: e.itemPropertyName,
733
+ itemPropertyLocalId: e.itemPropertyLocalId,
734
+ seedLocalId: e.seedLocalId,
735
+ versionLocalId: e.versionLocalId,
736
+ transactionToSign: null
737
+ }));
738
+ return {
739
+ arweaveTransactions: r,
740
+ publishUploads: a,
741
+ signedDataItems: i
742
+ };
743
+ }
744
+ var Xt = j(async ({ input: { context: e } }) => {
745
+ let { item: t } = e;
746
+ t.getPublishUploads || (t = await B(t.seedLocalId));
747
+ let n = {};
748
+ e.arweaveUploadTags?.length && (n.arweaveUploadTags = e.arweaveUploadTags);
749
+ let r = e.htmlEmbeddedDeferredHtmlSeedLocalIds;
750
+ r?.length && (n.deferHtmlStorageSeedLocalIds = r);
751
+ let i = await Et(t, [], void 0, Object.keys(n).length ? n : void 0), a = c();
752
+ return Yt(i, e.signDataItems ?? a.signDataItems, e.dataItemSigner ?? a.dataItemSigner);
753
+ });
754
+ //#endregion
755
+ //#region src/services/publish/actors/createArweaveDataItemsPhase2.ts
756
+ async function Zt(e) {
757
+ let { item: t } = e;
758
+ t.getPublishUploads || (t = await B(t.seedLocalId));
759
+ let n = {};
760
+ e.arweaveUploadTags?.length && (n.arweaveUploadTags = e.arweaveUploadTags);
761
+ let r = e.htmlEmbeddedDeferredHtmlSeedLocalIds;
762
+ r?.length && (n.onlyHtmlStorageSeedLocalIds = r, n.skipRelationRecursion = !0);
763
+ let i = await Et(t, [], void 0, Object.keys(n).length ? n : void 0), a = c(), o = e.signDataItems ?? a.signDataItems, s = e.dataItemSigner ?? a.dataItemSigner;
764
+ return i.length === 0 ? {
765
+ arweaveTransactions: [],
766
+ publishUploads: [],
767
+ signedDataItems: void 0
768
+ } : Yt(i, o, s);
769
+ }
770
+ var Qt = j(async ({ input: { context: e } }) => Zt(e)), $t = 8192;
771
+ function en(e) {
772
+ let t = new Uint8Array(e), n = "";
773
+ for (let e = 0; e < t.length; e += $t) {
774
+ let r = t.subarray(e, Math.min(e + $t, t.length));
775
+ n += String.fromCharCode.apply(null, r);
776
+ }
777
+ return btoa(n);
778
+ }
779
+ async function tn(e) {
780
+ let t = [];
781
+ for (let [n, r] of e.entries()) {
782
+ let e = r;
783
+ if (typeof e == "object" && e && "arrayBuffer" in e) {
784
+ let r = en(await e.arrayBuffer()), i = e;
785
+ t.push({
786
+ name: n,
787
+ value: r,
788
+ encoding: "base64",
789
+ filename: i.name || void 0
790
+ });
791
+ } else t.push({
792
+ name: n,
793
+ value: String(r)
794
+ });
795
+ }
796
+ return t;
797
+ }
798
+ function nn(e, t, n) {
799
+ let r = ["Upload server returned ", String(e)], i = t && typeof t == "object" && "message" in t ? String(t.message) : t && typeof t == "object" && "error" in t ? String(t.error) : null;
800
+ return i ? r.push(`: ${i}`) : n && r.push(` (${n})`), r.join("");
801
+ }
802
+ function rn(e) {
803
+ if (!e) return "Upload server unavailable. Please try again or check your connection.";
804
+ let t = e.toLowerCase();
805
+ return /other side closed|econnreset|socket hang up|connection closed/i.test(t) ? "Upload server closed the connection. It may be busy or the request may be too large—try again." : /etimedout|timeout/i.test(t) ? "Upload request timed out. Please try again." : /enotfound|getaddrinfo|dns/i.test(t) ? "Upload server could not be reached. Check the upload URL and your network." : "Upload failed. Please try again or check the upload server.";
806
+ }
807
+ async function an(e, t, n) {
808
+ let r = typeof window < "u" ? window.Main : void 0;
809
+ if (r?.uploadArweaveStart) {
810
+ let n = await tn(t);
811
+ return r.uploadArweaveStart(e, n);
812
+ }
813
+ let i = await fetch(e, {
814
+ method: "POST",
815
+ body: t
816
+ }), a = await i.json().catch(() => ({}));
817
+ return {
818
+ status: i.status,
819
+ body: a
820
+ };
821
+ }
822
+ //#endregion
823
+ //#region src/services/publish/actors/sendReimbursementRequest.ts
824
+ var on = j(async ({ input: { context: e, event: t } }) => {
825
+ let { arweaveTransactions: n = [], transactionKeys: r, reimbursementTransactionId: i } = e;
826
+ if (i) return { transactionId: i };
827
+ let a = n.map(({ transaction: e }) => e), o = new FormData();
828
+ for (let e of a) {
829
+ let { data: t, chunks: n, ...r } = e, i = t instanceof Blob ? t : new Blob([t]);
830
+ o.append(`${e.id}-data`, i, `${e.id}-data`);
831
+ let a = new Blob([JSON.stringify(n)], { type: "application/json" });
832
+ o.append(`${e.id}-chunks`, a, `${e.id}-chunks`);
833
+ let s = new Blob([JSON.stringify(r)], { type: "application/json" });
834
+ o.append(`${e.id}-json`, s, `${e.id}-json`);
835
+ }
836
+ let { uploadApiBaseUrl: s } = c(), { status: l, body: u, message: d } = await an(`${s}/api/upload/arweave/start`, o, s);
837
+ if (l >= 300 || l < 200) {
838
+ let e = l === 0 ? d : null;
839
+ e && console.error("[upload]", e);
840
+ let t = l === 0 ? rn(e) : nn(l, u, r);
841
+ throw Error(t);
842
+ }
843
+ return u;
844
+ }), sn = j(async ({ input: { context: e, event: t } }) => {
845
+ let { requestResponse: n, reimbursementTransactionId: r } = e;
846
+ if (!n) throw Error("No request response");
847
+ if (!r) throw Error("No reimbursement transaction id");
848
+ let i = R();
849
+ await new Promise((e, t) => {
850
+ let n = setInterval(async () => {
851
+ let t;
852
+ try {
853
+ t = await i.transactions.getStatus(r);
854
+ } catch {
855
+ return;
856
+ }
857
+ t && t.confirmed && (clearInterval(n), e());
858
+ }, 5e3);
859
+ });
860
+ }), H = M("seedProtocol:services:publish:actors");
861
+ function cn(e) {
862
+ if (e instanceof Uint8Array) return e;
863
+ if (e instanceof ArrayBuffer) return new Uint8Array(e);
864
+ throw Error("Transaction data must be Uint8Array or ArrayBuffer for upload resume");
865
+ }
866
+ var ln = A(({ sendBack: e, input: t }) => {
867
+ let n = t.context, r = (n.arweaveTransactions ?? []).map(({ transaction: e }) => e), i = R(), a = n.uploaderState && typeof n.currentTransactionIndex == "number", o = a ? n.currentTransactionIndex : 0;
868
+ (async () => {
869
+ let t = r.length;
870
+ for (let s = o; s < t; s++) {
871
+ let c = r[s];
872
+ if (!c) continue;
873
+ let l = i.transactions.fromRaw(c);
874
+ if (!await i.transactions.verify(l)) throw Error("Transaction verification failed");
875
+ let u, d = n.uploaderState;
876
+ if (a && s === o && d) {
877
+ let e = l.data, t = e instanceof Uint8Array ? e : cn(e);
878
+ u = await i.transactions.getUploader(d, t);
879
+ } else u = await i.transactions.getUploader(l, l.data);
880
+ for (; !u.isComplete;) {
881
+ H("uploading chunk"), H(`uploader.pctComplete: ${u.pctComplete}`), H(`uploader.uploadedChunks: ${u.uploadedChunks}`), H(`uploader.totalChunks: ${u.totalChunks}`), H(u.lastResponseError), H(u.lastResponseStatus);
882
+ try {
883
+ await u.uploadChunk(), e({
884
+ type: "updatePercentage",
885
+ completionPercentage: Math.trunc((s + u.pctComplete / 100) / t * 100),
886
+ uploaderState: u.toJSON(),
887
+ currentTransactionIndex: s
888
+ }), H(`${u.pctComplete}% complete, ${u.uploadedChunks}/${u.totalChunks}`);
889
+ } catch (e) {
890
+ H(e);
891
+ }
892
+ }
893
+ }
894
+ return "done";
895
+ })().then((t) => {
896
+ e({
897
+ type: "uploadComplete",
898
+ result: t
899
+ });
900
+ }).catch((t) => {
901
+ e({
902
+ type: "uploadError",
903
+ error: t
904
+ });
905
+ });
906
+ }), un = 12e4, dn = Function("s", "return import(s)"), fn = null, pn = async () => {
907
+ if (fn) return fn;
908
+ if (typeof window < "u") return null;
909
+ try {
910
+ let e = await dn(`node:${["fs", "promises"].join("/")}`);
911
+ return fn = {
912
+ readFile: e.readFile,
913
+ stat: e.stat
914
+ }, fn;
915
+ } catch {
916
+ return null;
917
+ }
918
+ }, mn = A(({ sendBack: e, input: { context: t } }) => {
919
+ let { signedDataItems: n } = t, { uploadApiBaseUrl: r, useArweaveBundler: i } = c();
920
+ if (!i || !r) {
921
+ e({
922
+ type: "uploadError",
923
+ error: /* @__PURE__ */ Error("Arweave bundler not configured. Set useArweaveBundler and uploadApiBaseUrl.")
924
+ });
925
+ return;
926
+ }
927
+ let a = `${r.replace(/\/$/, "")}/api/upload/arweave/batch`;
928
+ if (!n || n.length === 0) {
929
+ e({
930
+ type: "uploadComplete",
931
+ result: "done"
932
+ });
933
+ return;
934
+ }
935
+ (async () => {
936
+ let e = n, t = e.length, r = Array(t).fill(null), i = async (e, t) => {
937
+ let n = e;
938
+ if (n.raw != null && (n.raw instanceof Uint8Array || Buffer.isBuffer(n.raw))) return n.raw.byteLength;
939
+ if (typeof n.getRaw == "function") {
940
+ let e = n.getRaw(), i = e instanceof Promise ? await e : e, a = Buffer.isBuffer(i) ? i : Buffer.from(i);
941
+ return r[t] = a, a.length;
942
+ }
943
+ if (n.filename != null) {
944
+ let e = await pn();
945
+ if (!e) throw Error("DataItem.filename requires Node.js fs access. In browser runtime, provide DataItem.raw or DataItem.getRaw().");
946
+ return (await e.stat(n.filename)).size;
947
+ }
948
+ throw Error("Cannot get raw bytes from DataItem");
949
+ }, o = 4, s = [];
950
+ for (let n = 0; n < t; n++) {
951
+ let t = await i(e[n], n);
952
+ s.push(t), o += 4 + t;
953
+ }
954
+ let c = Buffer.alloc(o), l = 0;
955
+ c.writeUInt32BE(t, l), l += 4;
956
+ for (let n = 0; n < t; n++) {
957
+ let t = s[n], i = r[n];
958
+ if (i) {
959
+ c.writeUInt32BE(t, l), l += 4, i.copy(c, l), l += t;
960
+ continue;
961
+ }
962
+ let a = e[n];
963
+ if (a.raw != null && (a.raw instanceof Uint8Array || Buffer.isBuffer(a.raw))) {
964
+ c.writeUInt32BE(t, l), l += 4, c.set(a.raw, l), l += t;
965
+ continue;
966
+ }
967
+ if (a.filename != null) {
968
+ let e = await pn();
969
+ if (!e) throw Error("DataItem.filename requires Node.js fs access. In browser runtime, provide DataItem.raw or DataItem.getRaw().");
970
+ let t = await e.readFile(a.filename);
971
+ c.writeUInt32BE(t.length, l), l += 4, t.copy(c, l), l += t.length;
972
+ continue;
973
+ }
974
+ throw Error("Cannot get raw bytes from DataItem");
975
+ }
976
+ let u = new AbortController(), d = setTimeout(() => u.abort(), un), f;
977
+ try {
978
+ f = await fetch(a, {
979
+ method: "POST",
980
+ headers: { "Content-Type": "application/octet-stream" },
981
+ body: c,
982
+ signal: u.signal
983
+ });
984
+ } catch (e) {
985
+ throw clearTimeout(d), e instanceof Error && e.name === "AbortError" ? Error(`Arweave batch upload timed out after ${un / 1e3}s (upload API did not respond). Check uploadApiBaseUrl and network.`) : e;
986
+ }
987
+ if (clearTimeout(d), !f.ok) throw Error(`Batch upload failed: ${f.status}`);
988
+ let p = await f.json().catch(() => ({})), m = typeof p.failed == "number" ? p.failed : 0;
989
+ if (m > 0) {
990
+ let e = p.total ?? "?", t = p.succeeded ?? 0;
991
+ throw Error(`Arweave batch upload failed: ${m} of ${e} item(s) failed (${t} succeeded)`);
992
+ }
993
+ })().then(() => e({
994
+ type: "uploadComplete",
995
+ result: "done"
996
+ })).catch((t) => e({
997
+ type: "uploadError",
998
+ error: t
999
+ }));
1000
+ }), hn = "The executor module could not be installed on your publishing account on Optimism Sepolia. Reconnect and try again, or contact support if this persists.";
1001
+ async function gn(e, t, n) {
1002
+ let { modularAccountModuleContract: r } = n;
1003
+ if (!r) return;
1004
+ let a = Be({
1005
+ client: se(),
1006
+ chain: He,
1007
+ address: e
1008
+ });
1009
+ if (await y(e)) try {
1010
+ let e = await et({ contract: a }), n = r.toLowerCase();
1011
+ if (e.some((e) => e.implementation?.toLowerCase() === n)) return;
1012
+ let i = tt({
1013
+ contract: a,
1014
+ moduleContract: r,
1015
+ data: ze([{ type: "address" }], [d])
1016
+ }), o = await Ve({
1017
+ transaction: i,
1018
+ account: t
1019
+ });
1020
+ await x(o.transactionHash);
1021
+ } catch (t) {
1022
+ if (ne(t)) return;
1023
+ throw new i(hn, "EXECUTOR_MODULE_NOT_INSTALLED", e, t);
1024
+ }
1025
+ }
1026
+ //#endregion
1027
+ //#region src/helpers/ensureManagedAccountReady.ts
1028
+ var _n = "Could not connect the managed publishing account on Optimism Sepolia. Reconnect with the same sign-in method and try again.", vn = "Your publishing smart account is not deployed on Optimism Sepolia yet. Complete wallet setup, enable autoDeployManagedAccount in config if appropriate, then try again.", yn = "The managed account could not be confirmed on Optimism Sepolia after deployment. Wait a moment and retry, or check your network connection.", bn = "Automatic deployment of the managed publishing account failed on Optimism Sepolia. Retry or deploy the account through your wallet provider.";
1029
+ async function xn() {
1030
+ let { useModularExecutor: e } = c();
1031
+ if (!e) return { kind: "skip" };
1032
+ let t;
1033
+ try {
1034
+ t = await h(He);
1035
+ } catch (e) {
1036
+ return {
1037
+ kind: "unavailable",
1038
+ cause: e
1039
+ };
1040
+ }
1041
+ return await b(t) ? {
1042
+ kind: "ready",
1043
+ managedAddress: t
1044
+ } : {
1045
+ kind: "not_deployed",
1046
+ managedAddress: t
1047
+ };
1048
+ }
1049
+ async function Sn() {
1050
+ me();
1051
+ let e = pe();
1052
+ await e.autoConnect({
1053
+ client: se(),
1054
+ chain: He
1055
+ });
1056
+ let t = e.getAccount();
1057
+ if (!t) throw new i(_n, "MANAGED_ACCOUNT_UNAVAILABLE");
1058
+ return t;
1059
+ }
1060
+ var Cn = 9e4;
1061
+ async function wn(e) {
1062
+ let t;
1063
+ try {
1064
+ await Promise.race([m(e), new Promise((e, n) => {
1065
+ t = setTimeout(() => n(/* @__PURE__ */ Error(`Managed account deploy timed out after ${Cn / 1e3}s`)), Cn);
1066
+ })]);
1067
+ } finally {
1068
+ t != null && clearTimeout(t);
1069
+ }
1070
+ }
1071
+ async function Tn(e) {
1072
+ let n = c(), r = await Sn(), { fromThirdwebAccount: a } = await import("./ensureManagedAccountEasConfigured-CLB69z0D.js").then((e) => e.R), o = {
1073
+ managedAddress: e,
1074
+ managedSigningAccount: a(r)
1075
+ };
1076
+ try {
1077
+ if (n.deployManagedAccount) await n.deployManagedAccount(o);
1078
+ else {
1079
+ let e = await re();
1080
+ if (e) {
1081
+ let t = g();
1082
+ await t.autoConnect({
1083
+ client: se(),
1084
+ chain: He
1085
+ });
1086
+ let n = t.getAdminAccount?.()?.address ?? e.address;
1087
+ await ee({
1088
+ adminAddress: n,
1089
+ signingAccount: e
1090
+ });
1091
+ } else await wn(r);
1092
+ }
1093
+ } catch (n) {
1094
+ let r = /UserOp|user operation/i.test(t(n)) ? 15 : 5;
1095
+ if (await v(e, r)) return;
1096
+ throw new i(bn, "MANAGED_ACCOUNT_NOT_DEPLOYED", e, n);
1097
+ }
1098
+ if (!await v(e)) throw new i(yn, "MANAGED_ACCOUNT_NOT_DEPLOYED", e);
1099
+ }
1100
+ async function En() {
1101
+ let e = c();
1102
+ if (!e.useModularExecutor) throw Error("runModularExecutorPublishPrep: useModularExecutor is false");
1103
+ let t = await xn();
1104
+ if (t.kind === "unavailable") return {
1105
+ ok: !1,
1106
+ error: new i(_n, "MANAGED_ACCOUNT_UNAVAILABLE", void 0, t.cause)
1107
+ };
1108
+ if (t.kind === "not_deployed") {
1109
+ if (e.autoDeployManagedAccount) {
1110
+ try {
1111
+ await Tn(t.managedAddress);
1112
+ } catch (e) {
1113
+ return {
1114
+ ok: !1,
1115
+ error: l(e) ? e : new i(bn, "MANAGED_ACCOUNT_NOT_DEPLOYED", t.managedAddress, e)
1116
+ };
1117
+ }
1118
+ if (t = await xn(), t.kind !== "ready") return {
1119
+ ok: !1,
1120
+ error: new i(yn, "MANAGED_ACCOUNT_NOT_DEPLOYED", t.kind === "not_deployed" ? t.managedAddress : void 0)
1121
+ };
1122
+ } else return {
1123
+ ok: !1,
1124
+ error: new i(vn, "MANAGED_ACCOUNT_NOT_DEPLOYED", t.managedAddress)
1125
+ };
1126
+ }
1127
+ if (t.kind === "ready") {
1128
+ if (e.modularAccountModuleContract) try {
1129
+ let n = await Sn();
1130
+ await gn(t.managedAddress, n, e);
1131
+ } catch (e) {
1132
+ return l(e) ? {
1133
+ ok: !1,
1134
+ error: e
1135
+ } : {
1136
+ ok: !1,
1137
+ error: new i("Executor module setup failed on Optimism Sepolia.", "EXECUTOR_MODULE_NOT_INSTALLED", t.managedAddress, e)
1138
+ };
1139
+ }
1140
+ return {
1141
+ ok: !0,
1142
+ managedAddress: t.managedAddress
1143
+ };
1144
+ }
1145
+ throw Error("runModularExecutorPublishPrep: unexpected readiness state");
1146
+ }
1147
+ //#endregion
1148
+ //#region src/helpers/resolvePublishWallet.ts
1149
+ function Dn(e) {
1150
+ if (o(e.wallet)) return e.wallet;
1151
+ if (o(e.account)) return e.account;
1152
+ let t = f();
1153
+ if (t) return t;
1154
+ throw Error("@seedprotocol/publish: no PublishWallet available. Pass fromEthersWallet / fromEip1193Provider / fromThirdwebAccount, or call setPublishWallet / useSeedWallet.");
1155
+ }
1156
+ //#endregion
1157
+ //#region src/services/publish/actors/persistSeedUid.ts
1158
+ var On = M("seedProtocol:services:publish:actors:persistSeedUid"), kn = "0x" + "0".repeat(64), An = 15e3;
1159
+ function jn(e, t) {
1160
+ let n = e.seedLocalId, r = n ? t.find((e) => e?.localId === n) : void 0, i = r?.seedUid && r.seedUid !== kn ? r.seedUid : t[0]?.seedUid;
1161
+ i && i !== kn && (e.seedUid = i);
1162
+ }
1163
+ async function Mn(e, t, n) {
1164
+ let r = e.persistSeedUid;
1165
+ if (typeof r != "function") return;
1166
+ let i = new Promise((e, t) => setTimeout(() => t(/* @__PURE__ */ Error("persistSeedUid timed out")), An));
1167
+ try {
1168
+ await Promise.race([r.call(e, t, n), i]);
1169
+ } catch (e) {
1170
+ On("persistSeedUid failed (attestations already on-chain):", e);
1171
+ }
1172
+ }
1173
+ //#endregion
1174
+ //#region src/services/publish/helpers/verifyArweaveTransactionsExist.ts
1175
+ async function Nn(e) {
1176
+ if (e.length === 0) return;
1177
+ let { arweaveUploadVerificationBaseUrl: t } = c(), n = await Promise.all(e.map((e) => Oe(t, e)));
1178
+ for (let t = 0; t < e.length; t++) {
1179
+ let r = e[t], i = n[t];
1180
+ if (i) {
1181
+ if (i.status === 404) throw Error(`Arweave transaction ${r} not found. Upload may have failed. Delete this publish record and try again.`);
1182
+ if (i.status !== 200) {
1183
+ let e = i.status === 504 ? "request timed out (upload service did not respond in time)" : `status: ${i.status}`;
1184
+ throw Error(`Arweave transaction ${r} is not yet available from the upload service (${e}). Wait and retry.`);
1185
+ }
1186
+ }
1187
+ }
1188
+ }
1189
+ //#endregion
1190
+ //#region src/helpers/abi/executor.ts
1191
+ var Pn = [{
1192
+ type: "event",
1193
+ name: "CreatedAttestation",
1194
+ inputs: [{
1195
+ name: "result",
1196
+ type: "tuple",
1197
+ indexed: !1,
1198
+ components: [{
1199
+ name: "schemaUid",
1200
+ type: "bytes32"
1201
+ }, {
1202
+ name: "attestationUid",
1203
+ type: "bytes32"
1204
+ }]
1205
+ }]
1206
+ }, {
1207
+ type: "event",
1208
+ name: "SeedPublished",
1209
+ inputs: [{
1210
+ name: "seedUid",
1211
+ type: "bytes32",
1212
+ indexed: !1
1213
+ }, {
1214
+ name: "versionUid",
1215
+ type: "bytes32",
1216
+ indexed: !1
1217
+ }]
1218
+ }];
1219
+ //#endregion
1220
+ //#region src/services/publish/actors/seedUidHelpers.ts
1221
+ function U(e) {
1222
+ return e == null || e === "" ? z : ("0x" + (e.startsWith("0x") ? e.slice(2) : e).replace(/[^0-9a-fA-F]/g, "0").padStart(64, "0").slice(-64)).toLowerCase();
1223
+ }
1224
+ function Fn(e, t, n) {
1225
+ if (!t || !e.logs?.length) return;
1226
+ let r = U(t);
1227
+ if (r === z) return;
1228
+ let i = n ? Pn : _e;
1229
+ try {
1230
+ let t = D({
1231
+ abi: i,
1232
+ eventName: "CreatedAttestation",
1233
+ logs: e.logs,
1234
+ strict: !1
1235
+ });
1236
+ for (let e of t) {
1237
+ let t = e.args?.result;
1238
+ if (t?.attestationUid && U(t.schemaUid) === r) {
1239
+ let e = t.attestationUid;
1240
+ return e && U(e) !== z ? e : void 0;
1241
+ }
1242
+ }
1243
+ } catch {}
1244
+ }
1245
+ function In(e, t, n, r) {
1246
+ let i = t.toLowerCase(), a = e.logs?.filter((e) => e.address && e.address.toLowerCase() === i);
1247
+ if (!a?.length) return {};
1248
+ try {
1249
+ if (r) {
1250
+ let e = D({
1251
+ abi: Pn,
1252
+ eventName: "SeedPublished",
1253
+ logs: a,
1254
+ strict: !1
1255
+ })[0];
1256
+ if (!e) return {};
1257
+ let t = e.args;
1258
+ return {
1259
+ seedUid: t?.seedUid && U(t.seedUid) !== z ? t.seedUid : void 0,
1260
+ versionUid: t?.versionUid && U(t.versionUid) !== z ? t.versionUid : void 0
1261
+ };
1262
+ }
1263
+ let e = D({
1264
+ abi: _e,
1265
+ eventName: "SeedPublished",
1266
+ logs: a,
1267
+ strict: !1
1268
+ })[0];
1269
+ if (!e) return {};
1270
+ let t = e.args?.returnedDataFromEAS;
1271
+ if (!t || t === "0x") return {};
1272
+ let i = Re([{ type: "bytes32[]" }], t)[0];
1273
+ if (!i?.length) return {};
1274
+ let o = n, s = i[o], c = i[o + 1];
1275
+ return {
1276
+ seedUid: s && s !== z ? s : i.length === 1 && i[0] && i[0] !== z ? i[0] : void 0,
1277
+ versionUid: c && c !== z ? c : void 0
1278
+ };
1279
+ } catch {
1280
+ return {};
1281
+ }
1282
+ }
1283
+ function Ln(e, t, n, r) {
1284
+ return In(e, t, n, r).seedUid;
1285
+ }
1286
+ function Rn(e, t, n) {
1287
+ if (!t || !e.logs?.length) return;
1288
+ let r = U(t);
1289
+ if (r === z) return;
1290
+ let i = n ? Pn : _e;
1291
+ try {
1292
+ let t = D({
1293
+ abi: i,
1294
+ eventName: "CreatedAttestation",
1295
+ logs: e.logs,
1296
+ strict: !1
1297
+ });
1298
+ for (let e of t) {
1299
+ let t = e.args?.result;
1300
+ if (t?.attestationUid && U(t.schemaUid) === r) {
1301
+ let e = t.attestationUid;
1302
+ return e && U(e) !== z ? e : void 0;
1303
+ }
1304
+ }
1305
+ } catch {}
1306
+ }
1307
+ function zn(e, t) {
1308
+ if (!e.logs?.length) return [];
1309
+ let n = t ? Pn : _e;
1310
+ try {
1311
+ let t = D({
1312
+ abi: n,
1313
+ eventName: "CreatedAttestation",
1314
+ logs: e.logs,
1315
+ strict: !1
1316
+ }), r = [];
1317
+ for (let e of t) {
1318
+ let t = e.args?.result;
1319
+ if (!t?.attestationUid) continue;
1320
+ let n = t.attestationUid;
1321
+ if (!n || U(n) === z) continue;
1322
+ let i = t.schemaUid;
1323
+ i && r.push({
1324
+ schemaUid: i,
1325
+ attestationUid: n
1326
+ });
1327
+ }
1328
+ return r;
1329
+ } catch {
1330
+ return [];
1331
+ }
1332
+ }
1333
+ //#endregion
1334
+ //#region src/services/publish/helpers/receiptAttestationMs.ts
1335
+ async function W(e) {
1336
+ let t = e?.blockNumber;
1337
+ return t == null ? Date.now() : await ae(t) ?? Date.now();
1338
+ }
1339
+ //#endregion
1340
+ //#region src/services/publish/actors/publishRequestNormalize.ts
1341
+ var Bn = 64, G = (e) => {
1342
+ if (e == null) return "0x" + "0".repeat(Bn);
1343
+ if (typeof e == "string") return "0x" + (e.startsWith("0x") ? e.slice(2) : e).replace(/[^0-9a-fA-F]/g, "0").padStart(Bn, "0").slice(-64);
1344
+ if (e instanceof Uint8Array || typeof ArrayBuffer < "u" && e instanceof ArrayBuffer) {
1345
+ let t = e instanceof Uint8Array ? e : new Uint8Array(e);
1346
+ return "0x" + Array.from(t).map((e) => e.toString(16).padStart(2, "0")).join("").padStart(Bn, "0").slice(-64);
1347
+ }
1348
+ return "0x" + "0".repeat(Bn);
1349
+ }, Vn = (e) => {
1350
+ if (e == null || typeof e == "string" && (e === "" || e === "0x")) return "0x";
1351
+ if (typeof e == "string") {
1352
+ let t = (e.startsWith("0x") ? e.slice(2) : e).replace(/[^0-9a-fA-F]/g, "0");
1353
+ return "0x" + (t.length % 2 == 1 ? "0" + t : t);
1354
+ }
1355
+ if (e instanceof Uint8Array || typeof ArrayBuffer < "u" && e instanceof ArrayBuffer) {
1356
+ let t = e instanceof Uint8Array ? e : new Uint8Array(e);
1357
+ return "0x" + Array.from(t).map((e) => e.toString(16).padStart(2, "0")).join("");
1358
+ }
1359
+ return "0x";
1360
+ };
1361
+ function Hn(e) {
1362
+ let t = new Set(e.map((e) => e?.localId).filter((e) => !!e));
1363
+ return e.some((e) => (e?.listOfAttestations ?? []).some((e) => {
1364
+ let n = e;
1365
+ return n._unresolvedValue && t.has(n._unresolvedValue) ? !0 : Array.isArray(n._rawListIdsForResolve) ? n._rawListIdsForResolve.some((e) => e && t.has(String(e).trim())) : !1;
1366
+ }));
1367
+ }
1368
+ function Un(e, t) {
1369
+ return (e ?? []).filter((e) => e.publishLocalId && t.has(e.publishLocalId));
1370
+ }
1371
+ var Wn = {
1372
+ recipient: Ke,
1373
+ expirationTime: BigInt(0),
1374
+ revocable: !0,
1375
+ refUID: z,
1376
+ data: z,
1377
+ value: BigInt(0)
1378
+ };
1379
+ function Gn(e) {
1380
+ let t = (e?.listOfAttestations ?? []).map((e) => {
1381
+ let t = Array.isArray(e?.data) ? e.data : [];
1382
+ return {
1383
+ schema: G(e?.schema),
1384
+ data: t.map((e) => ({
1385
+ ...e,
1386
+ refUID: G(e?.refUID),
1387
+ data: Vn(e?.data),
1388
+ expirationTime: e?.expirationTime == null ? BigInt(0) : BigInt(e.expirationTime),
1389
+ value: e?.value == null ? BigInt(0) : BigInt(e.value)
1390
+ })),
1391
+ ...typeof e?._propertyName == "string" && e._propertyName !== "" ? { _propertyName: e._propertyName } : {},
1392
+ ...typeof e?._propertyNameForSchema == "string" && e._propertyNameForSchema !== "" ? { _propertyNameForSchema: e._propertyNameForSchema } : {}
1393
+ };
1394
+ }), n = (e?.propertiesToUpdate ?? []).map((e) => ({
1395
+ ...e,
1396
+ propertySchemaUid: G(e?.propertySchemaUid)
1397
+ }));
1398
+ return {
1399
+ ...e,
1400
+ seedUid: G(e?.seedUid),
1401
+ seedSchemaUid: G(e?.seedSchemaUid),
1402
+ versionUid: G(e?.versionUid),
1403
+ versionSchemaUid: G(e?.versionSchemaUid),
1404
+ listOfAttestations: t,
1405
+ propertiesToUpdate: n
1406
+ };
1407
+ }
1408
+ function Kn(e, t) {
1409
+ for (let n of e) for (let e of n?.propertiesToUpdate ?? []) {
1410
+ let n = e?.publishLocalId, r = G(e?.propertySchemaUid);
1411
+ if (!n || !r) continue;
1412
+ let i = t.get(n);
1413
+ if (!i?.listOfAttestations) continue;
1414
+ let a = i.listOfAttestations.find((e) => G(e?.schema)?.toLowerCase() === r?.toLowerCase());
1415
+ a && (!Array.isArray(a.data) || a.data.length === 0) && (a.data = [{
1416
+ ...Wn,
1417
+ refUID: z
1418
+ }]);
1419
+ }
1420
+ }
1421
+ //#endregion
1422
+ //#region src/services/arweaveL1Finalize/enqueue.ts
1423
+ var qn = "pending_l1";
1424
+ async function Jn(e) {
1425
+ let { useArweaveBundler: t } = c();
1426
+ if (!t) return;
1427
+ let n = e.arweaveTransactions ?? [], r = e.publishUploads ?? [];
1428
+ if (n.length === 0 || n.length !== r.length) return;
1429
+ let i = S.getAppDb();
1430
+ if (!i) return;
1431
+ let a = Date.now();
1432
+ for (let e = 0; e < n.length; e++) {
1433
+ let t = n[e], o = r[e];
1434
+ if (!o) continue;
1435
+ let s = t.transaction?.id;
1436
+ if (s && typeof s == "string") try {
1437
+ await i.insert(Se).values({
1438
+ seedLocalId: o.seedLocalId,
1439
+ dataItemId: s,
1440
+ versionLocalId: o.versionLocalId ?? null,
1441
+ itemPropertyName: o.itemPropertyName ?? null,
1442
+ phase: qn,
1443
+ createdAt: a,
1444
+ updatedAt: a
1445
+ }).onConflictDoNothing();
1446
+ } catch {}
1447
+ }
1448
+ }
1449
+ //#endregion
1450
+ //#region src/services/publish/actors/createAttestations.ts
1451
+ var Yn = M("seedProtocol:services:publish:actors");
1452
+ function Xn(e) {
1453
+ let { useModularExecutor: t, publisherAddress: n, modularAccountModuleContract: r, managedAddress: i } = e;
1454
+ if (t) {
1455
+ if (!i) throw Error("resolvePublishRouting: managedAddress is required when useModularExecutor is true");
1456
+ return {
1457
+ txTargetAddress: i,
1458
+ contractAddressForEvents: r || i
1459
+ };
1460
+ }
1461
+ return {
1462
+ txTargetAddress: n,
1463
+ contractAddressForEvents: n
1464
+ };
1465
+ }
1466
+ async function Zn(e) {
1467
+ let { receipt: t, seedLocalId: n, versionSchemaUid: r, contractAddressForEvents: i, listOfAttestationsCount: a, useModularExecutor: o, publisherAddress: s } = e;
1468
+ if (!n) return;
1469
+ let c = Rn(t, r, o) ?? In(t, i, a, o).versionUid, l = c ? G(c) : void 0;
1470
+ if (!l || l === z) return;
1471
+ let u = await W(t);
1472
+ await Ie({
1473
+ seedLocalId: n,
1474
+ versionUid: l,
1475
+ publisher: s,
1476
+ attestationCreatedAt: u
1477
+ });
1478
+ }
1479
+ function Qn(e, t) {
1480
+ return !e || !t ? !1 : G(e).toLowerCase() === G(t).toLowerCase();
1481
+ }
1482
+ function $n(e, t, n) {
1483
+ return !n || t >= e.length ? t : Qn(e[t]?.schemaUid, n) ? t + 1 : t;
1484
+ }
1485
+ async function er(e) {
1486
+ let { receipt: t, normalizedRequests: n, useModularExecutor: r } = e, i = zn(t, r);
1487
+ if (!i.length) return;
1488
+ let a = await W(t), o = 0;
1489
+ for (let e of n) {
1490
+ let n = e.listOfAttestations ?? [];
1491
+ if (!n.length) continue;
1492
+ (!e.seedUid || G(e.seedUid) === z) && (o = $n(i, o, e.seedSchemaUid)), o = $n(i, o, e.versionSchemaUid);
1493
+ let s = n.length, c = i.slice(o, o + s);
1494
+ if (o += s, !c.length) continue;
1495
+ let l = Math.min(c.length, s), u = e.versionUid && G(e.versionUid) !== z ? G(e.versionUid) : void 0;
1496
+ u ||= Rn(t, e.versionSchemaUid, r), await xe({
1497
+ seedLocalId: e.localId,
1498
+ attestationCreatedAtMs: a ?? null,
1499
+ versionUid: u && G(u) !== z ? G(u) : null,
1500
+ pairs: c.slice(0, l).map((e, t) => ({
1501
+ schemaUid: e.schemaUid,
1502
+ attestationUid: e.attestationUid,
1503
+ propertyName: typeof n[t]?._propertyName == "string" && n[t]._propertyName !== "" ? n[t]._propertyName : void 0
1504
+ }))
1505
+ });
1506
+ }
1507
+ }
1508
+ var tr = j(async ({ input: { context: e } }) => {
1509
+ let { address: t, account: n, wallet: r } = e, i = e.arweaveTransactions ?? [], a = e.publishUploads ?? [], { item: o } = e, { modularAccountModuleContract: s, useModularExecutor: l } = c();
1510
+ if (!t || typeof t != "string" || !t.trim()) throw Error("No wallet address for publish. Connect a wallet and try again.");
1511
+ if (!r && !n) throw Error("Wallet session is missing. Reconnect your wallet and retry the publish.");
1512
+ if (!l && !await y(t)) throw Error("EOA publishing must use the direct EAS path (multiPublish requires a deployed publisher contract). If you see this, attestation routing is misconfigured.");
1513
+ if (!o?.seedLocalId) throw Error("Attestation recovery failed: Item data is missing. Delete this publish record and try a full publish from the beginning.");
1514
+ if (typeof o.getPublishUploads != "function" && (o = await B(o.seedLocalId)), i.length !== a.length) throw Error("Attestation recovery failed: Arweave transaction data is missing or incomplete. Delete this publish record and try a full publish from the beginning.");
1515
+ let u = Xn({
1516
+ useModularExecutor: !1,
1517
+ publisherAddress: t
1518
+ }), d = Dn(e);
1519
+ await L(o, d);
1520
+ let f = i.map((e, t) => {
1521
+ let n = e.transaction?.id;
1522
+ if (!n || typeof n != "string") throw Error("Attestation recovery failed: Arweave transaction data did not survive restore. Delete this publish record and try a full publish from the beginning.");
1523
+ let r = a[t];
1524
+ if (!r) throw Error("Publish upload index mismatch");
1525
+ return {
1526
+ ...r,
1527
+ txId: n
1528
+ };
1529
+ });
1530
+ await Nn(f.map((e) => e.txId));
1531
+ let p = await o.getPublishPayload(f, { publishMode: e.publishMode ?? "patch" }), m = Array.isArray(p) ? p : [p];
1532
+ if (l) {
1533
+ let e = await En();
1534
+ if (!e.ok) throw e.error;
1535
+ u = Xn({
1536
+ useModularExecutor: l,
1537
+ publisherAddress: t,
1538
+ modularAccountModuleContract: s,
1539
+ managedAddress: e.managedAddress
1540
+ });
1541
+ let { ensureModularPublishBootstrap: n } = await import("./ensureModularPublishBootstrap-B_w6G5EL.js").then((e) => e.n), { fromThirdwebAccount: r } = await import("./ensureManagedAccountEasConfigured-CLB69z0D.js").then((e) => e.R);
1542
+ d = r(await n(e.managedAddress));
1543
+ } else await de(t, d);
1544
+ let h = m.length > 1 && Hn(m), g, _ = null;
1545
+ if (h) {
1546
+ let e = structuredClone(m), n = {};
1547
+ for (let r = 0; r < e.length; r++) {
1548
+ e = await Ne(e, n);
1549
+ let i = e[r], a = /* @__PURE__ */ new Set([i.localId]), o = Gn({
1550
+ ...i,
1551
+ propertiesToUpdate: Un(i.propertiesToUpdate, a)
1552
+ }), s = /* @__PURE__ */ new Map([[o.localId, o]]);
1553
+ Kn([o], s);
1554
+ let c = ue(u.txTargetAddress, [o], 5000000n), f = await d.txSender.sendTransaction(c), p = await x(f.transactionHash);
1555
+ if (!p) throw Error("Failed to send transaction");
1556
+ _ = p;
1557
+ let m = o?.listOfAttestations?.length ?? 0;
1558
+ await Zn({
1559
+ receipt: p,
1560
+ seedLocalId: i.localId,
1561
+ versionSchemaUid: o.versionSchemaUid,
1562
+ contractAddressForEvents: u.contractAddressForEvents,
1563
+ listOfAttestationsCount: m,
1564
+ useModularExecutor: l,
1565
+ publisherAddress: t
1566
+ });
1567
+ let h = !o.seedUid || G(o.seedUid) === z, g = o?.seedSchemaUid;
1568
+ if (h) {
1569
+ let t = Fn(p, g, l) ?? Ln(p, u.contractAddressForEvents, m, l);
1570
+ t && (n[i.localId] = t, e[r] = {
1571
+ ...e[r],
1572
+ seedUid: t
1573
+ });
1574
+ }
1575
+ await er({
1576
+ receipt: p,
1577
+ normalizedRequests: [o],
1578
+ useModularExecutor: l
1579
+ });
1580
+ }
1581
+ for (let t of e) {
1582
+ let e = t?.localId, r = t?.seedUid;
1583
+ e && r && G(r) !== z && (n[e] = G(r));
1584
+ }
1585
+ g = (await Ne(structuredClone(m), n)).map((e) => Gn({
1586
+ ...e,
1587
+ seedUid: n[e.localId] ?? e.seedUid
1588
+ }));
1589
+ } else {
1590
+ let e = m.map((e) => Gn(e));
1591
+ Kn(e, new Map(e.map((e) => [e?.localId, e])));
1592
+ let n = Array.isArray(p) ? e : [e[0]], r = ue(u.txTargetAddress, n, 5000000n), i = await d.txSender.sendTransaction(r), a = await x(i.transactionHash);
1593
+ if (!a) throw Error("Failed to send transaction");
1594
+ _ = a;
1595
+ let s = e.find((e) => e?.localId === o.seedLocalId) ?? e[0];
1596
+ await Zn({
1597
+ receipt: a,
1598
+ seedLocalId: s?.localId,
1599
+ versionSchemaUid: s?.versionSchemaUid,
1600
+ contractAddressForEvents: u.contractAddressForEvents,
1601
+ listOfAttestationsCount: s?.listOfAttestations?.length ?? 0,
1602
+ useModularExecutor: l,
1603
+ publisherAddress: t
1604
+ }), await er({
1605
+ receipt: a,
1606
+ normalizedRequests: n,
1607
+ useModularExecutor: l
1608
+ });
1609
+ let c = e[0], f = c?.seedUid, h = f === z || !f, v = c?.listOfAttestations?.length ?? 0, y = c?.seedSchemaUid, b = h ? Fn(a, y, l) ?? Ln(a, u.contractAddressForEvents, v, l) : void 0;
1610
+ g = b && e.length > 0 ? [{
1611
+ ...e[0],
1612
+ seedUid: b
1613
+ }, ...e.slice(1)] : e;
1614
+ }
1615
+ jn(o, g);
1616
+ let v = o, b = g.find((e) => e?.localId === o.seedLocalId)?.seedUid;
1617
+ b && b !== z && await Mn(v, t, _ ? await W(_) : void 0), Yn("requestData", p), Jn(e);
1618
+ try {
1619
+ let { clearHtmlEmbeddedImageCoPublishRows: e } = await import("@seedprotocol/sdk");
1620
+ await e(o.seedLocalId);
1621
+ } catch {}
1622
+ return { easPayload: p };
1623
+ }), nr = M("seedProtocol:services:publish:verifyAttestations"), rr = "0x" + "0".repeat(64), ir = 64, ar = (e) => e == null ? "0x" + "0".repeat(ir) : typeof e == "string" ? "0x" + (e.startsWith("0x") ? e.slice(2) : e).replace(/[^0-9a-fA-F]/g, "0").padStart(ir, "0").slice(-64) : "0x" + "0".repeat(ir), or = 5e3, sr = 6;
1624
+ async function cr({ normalizedRequests: e, item: t }) {
1625
+ let n = t.seedLocalId;
1626
+ for (let t of e) {
1627
+ if (t.listOfAttestations.length === 0 || t.versionUid === rr) continue;
1628
+ let e = t.listOfAttestations.map((e) => ar(e.schema).toLowerCase()), r = [], i;
1629
+ for (let e = 1; e <= sr; e++) try {
1630
+ e > 1 && await new Promise((e) => setTimeout(e, or)), r = await Te({ versionUids: [t.versionUid] });
1631
+ break;
1632
+ } catch (t) {
1633
+ if (i = t, nr("verifyAttestations attempt %d failed:", e, t), e === sr) throw nr("verifyAttestations: giving up after %d attempts", sr), i;
1634
+ }
1635
+ let a = r.map((e) => e.schemaId ? ar(e.schemaId).toLowerCase() : "").filter(Boolean), o = new Set(a);
1636
+ if (e.filter((e) => !o.has(e)).length > 0) throw new he(`Publish verification failed: Seed and Version attestations were created, but property/metadata attestations are missing or incomplete. Expected ${e.length} property attestations for schema(s) ${e.join(", ")}; found ${a.length}. Use PublishManager.retryAttestations('${n}') to retry.`, n, e, a, "METADATA_PROPERTIES_MISSING");
1637
+ }
1638
+ }
1639
+ //#endregion
1640
+ //#region src/services/publish/actors/createAttestationsDirectToEas.ts
1641
+ var K = M("seedProtocol:services:publish:createAttestationsDirectToEas"), lr = 64, q = (e) => {
1642
+ if (e == null) return "0x" + "0".repeat(lr);
1643
+ if (typeof e == "string") return "0x" + (e.startsWith("0x") ? e.slice(2) : e).replace(/[^0-9a-fA-F]/g, "0").padStart(lr, "0").slice(-64);
1644
+ if (e instanceof Uint8Array || typeof ArrayBuffer < "u" && e instanceof ArrayBuffer) {
1645
+ let t = e instanceof Uint8Array ? e : new Uint8Array(e);
1646
+ return "0x" + Array.from(t).map((e) => e.toString(16).padStart(2, "0")).join("").padStart(lr, "0").slice(-64);
1647
+ }
1648
+ return "0x" + "0".repeat(lr);
1649
+ }, ur = (e) => {
1650
+ if (e == null || typeof e == "string" && (e === "" || e === "0x")) return "0x";
1651
+ if (typeof e == "string") {
1652
+ let t = (e.startsWith("0x") ? e.slice(2) : e).replace(/[^0-9a-fA-F]/g, "0");
1653
+ return "0x" + (t.length % 2 == 1 ? "0" + t : t);
1654
+ }
1655
+ if (e instanceof Uint8Array || typeof ArrayBuffer < "u" && e instanceof ArrayBuffer) {
1656
+ let t = e instanceof Uint8Array ? e : new Uint8Array(e);
1657
+ return "0x" + Array.from(t).map((e) => e.toString(16).padStart(2, "0")).join("");
1658
+ }
1659
+ return "0x";
1660
+ }, dr = async (e) => {
1661
+ let t;
1662
+ try {
1663
+ t = await w.find({ seedLocalId: e });
1664
+ } catch {}
1665
+ return t || new Promise((t) => {
1666
+ let n = setInterval(() => {
1667
+ try {
1668
+ w.find({ seedLocalId: e }).then((e) => {
1669
+ e && (clearInterval(n), t(e));
1670
+ });
1671
+ } catch {}
1672
+ }, 200);
1673
+ });
1674
+ }, fr = j(async ({ input: { context: t, event: n } }) => {
1675
+ let { address: r, account: i, wallet: a } = t, o = t.arweaveTransactions ?? [], s = t.publishUploads ?? [], { item: l } = t;
1676
+ if (!r || typeof r != "string" || !r.trim()) throw Error("No wallet address for publish. Connect a wallet and try again.");
1677
+ if (!a && !i) throw Error("Wallet session is missing. Reconnect your wallet and retry the publish.");
1678
+ if (!l?.seedLocalId) throw Error("Attestation recovery failed: Item data is missing. Delete this publish record and try a full publish from the beginning.");
1679
+ if (typeof l.getPublishUploads != "function" && (l = await dr(l.seedLocalId)), o.length !== s.length) throw Error("Attestation recovery failed: Arweave transaction data is missing or incomplete. Delete this publish record and try a full publish from the beginning.");
1680
+ let d = Dn(t), f = d.txSender;
1681
+ await L(l, d);
1682
+ let m = o.map((e, t) => {
1683
+ let n = e.transaction?.id;
1684
+ if (!n || typeof n != "string") throw Error("Attestation recovery failed: Arweave transaction data did not survive restore. Delete this publish record and try a full publish from the beginning.");
1685
+ let r = s[t];
1686
+ if (!r) throw Error("Publish upload index mismatch");
1687
+ return {
1688
+ ...r,
1689
+ txId: n
1690
+ };
1691
+ });
1692
+ await Nn(m.map((e) => e.txId));
1693
+ let h = await l.getPublishPayload(m, { publishMode: t.publishMode ?? "patch" }), g = (Array.isArray(h) ? h : [h]).map((e) => {
1694
+ let t = (e?.listOfAttestations ?? []).map((e) => {
1695
+ let t = Array.isArray(e?.data) ? e.data : [];
1696
+ return {
1697
+ schema: q(e?.schema),
1698
+ data: t.map((e) => ({
1699
+ ...e,
1700
+ refUID: q(e?.refUID),
1701
+ data: ur(e?.data)
1702
+ })),
1703
+ ...typeof e?._propertyName == "string" && e._propertyName !== "" ? { _propertyName: e._propertyName } : {},
1704
+ ...typeof e?._propertyNameForSchema == "string" && e._propertyNameForSchema !== "" ? { _propertyNameForSchema: e._propertyNameForSchema } : {}
1705
+ };
1706
+ }), n = (e?.propertiesToUpdate ?? []).map((e) => ({
1707
+ ...e,
1708
+ propertySchemaUid: q(e?.propertySchemaUid)
1709
+ }));
1710
+ return {
1711
+ ...e,
1712
+ seedUid: q(e?.seedUid),
1713
+ seedSchemaUid: q(e?.seedSchemaUid),
1714
+ versionUid: q(e?.versionUid),
1715
+ versionSchemaUid: q(e?.versionSchemaUid),
1716
+ listOfAttestations: t,
1717
+ propertiesToUpdate: n
1718
+ };
1719
+ }), v = new Map(g.map((e) => [e.localId, e])), y = {
1720
+ recipient: Ke,
1721
+ expirationTime: BigInt(0),
1722
+ revocable: !0,
1723
+ refUID: p,
1724
+ data: p,
1725
+ value: BigInt(0)
1726
+ };
1727
+ for (let e of g) for (let t of e.propertiesToUpdate ?? []) {
1728
+ let e = t.publishLocalId, n = q(t.propertySchemaUid);
1729
+ if (!e || !n) continue;
1730
+ let r = v.get(e);
1731
+ if (!r?.listOfAttestations) continue;
1732
+ let i = r.listOfAttestations.find((e) => q(e?.schema)?.toLowerCase() === n?.toLowerCase());
1733
+ i && (!Array.isArray(i.data) || i.data.length === 0) && (i.data = [{
1734
+ ...y,
1735
+ refUID: p
1736
+ }]);
1737
+ }
1738
+ let b = Date.now();
1739
+ for (let t = 0; t < g.length; t++) {
1740
+ let n = g[t], i = n.seedUid, a = n.versionUid;
1741
+ if (i === p) {
1742
+ let t = fe({
1743
+ schema: n.seedSchemaUid,
1744
+ data: {
1745
+ refUID: p,
1746
+ data: u(n.seedSchemaUid),
1747
+ revocable: n.seedIsRevocable
1748
+ }
1749
+ }), r = await f.sendTransaction(t), a = await x(r.transactionHash);
1750
+ if (!a) throw Error("Failed to create Seed attestation");
1751
+ b = await W(a);
1752
+ let { easContractAddress: o } = c(), s = e(a, o);
1753
+ if (!s || s === p) throw Error("Failed to get Seed UID from attestation receipt");
1754
+ i = s, n.seedUid = s, K("created Seed attestation", i);
1755
+ }
1756
+ if (i !== p && a === p) {
1757
+ let t = fe({
1758
+ schema: n.versionSchemaUid,
1759
+ data: {
1760
+ refUID: i,
1761
+ data: u(n.versionSchemaUid),
1762
+ revocable: !0
1763
+ }
1764
+ }), o = await f.sendTransaction(t), s = await x(o.transactionHash);
1765
+ if (!s) throw Error("Failed to create Version attestation");
1766
+ b = await W(s);
1767
+ let { easContractAddress: l } = c(), d = e(s, l);
1768
+ if (!d || d === p) throw Error("Failed to get Version UID from attestation receipt");
1769
+ a = d, n.versionUid = d, await Ie({
1770
+ seedLocalId: n.localId,
1771
+ versionUid: d,
1772
+ publisher: r,
1773
+ attestationCreatedAt: b
1774
+ }), K("created Version attestation", a);
1775
+ }
1776
+ for (let e of n.listOfAttestations) for (let t of e.data) t.refUID = a;
1777
+ for (let e of n.propertiesToUpdate ?? []) {
1778
+ let t = v.get(e.publishLocalId);
1779
+ if (!t?.listOfAttestations) continue;
1780
+ let n = q(e.propertySchemaUid), r = t.listOfAttestations.find((e) => q(e?.schema)?.toLowerCase() === n?.toLowerCase());
1781
+ r?.data?.[0] && (r.data[0].data = u(i));
1782
+ }
1783
+ let o = n.listOfAttestations.map((e) => ({
1784
+ schema: e.schema,
1785
+ data: e.data.map((e) => ({
1786
+ recipient: e.recipient ?? Ke,
1787
+ expirationTime: e.expirationTime ?? 0n,
1788
+ revocable: e.revocable ?? !0,
1789
+ refUID: e.refUID ?? p,
1790
+ data: e.data ?? "0x",
1791
+ value: e.value ?? 0n
1792
+ }))
1793
+ }));
1794
+ if (o.length > 0) {
1795
+ let e = oe(o), r = await f.sendTransaction(e), i = await x(r.transactionHash);
1796
+ if (!i) throw Error("Failed to create property attestations");
1797
+ b = await W(i), K("created property attestations for request", t);
1798
+ let { easContractAddress: s } = c(), l = _(i, s), u = n.listOfAttestations, d = l.length === u.length;
1799
+ await xe({
1800
+ seedLocalId: n.localId,
1801
+ attestationCreatedAtMs: b ?? null,
1802
+ versionUid: a === p ? null : a,
1803
+ pairs: l.map((e, t) => ({
1804
+ schemaUid: e.schemaUid,
1805
+ attestationUid: e.uid,
1806
+ propertyName: d && typeof u[t]?._propertyName == "string" && u[t]._propertyName !== "" ? u[t]._propertyName : void 0
1807
+ }))
1808
+ });
1809
+ }
1810
+ }
1811
+ jn(l, g);
1812
+ let ee = l;
1813
+ g[0]?.seedUid && g[0].seedUid !== p && await Mn(ee, r, b);
1814
+ try {
1815
+ await cr({
1816
+ normalizedRequests: g,
1817
+ item: l
1818
+ });
1819
+ } catch (e) {
1820
+ throw e instanceof he || K("verifyAttestations failed (non-verification error):", e), e;
1821
+ }
1822
+ K("direct EAS publish complete"), Jn(t);
1823
+ try {
1824
+ let { clearHtmlEmbeddedImageCoPublishRows: e } = await import("@seedprotocol/sdk");
1825
+ await e(l.seedLocalId);
1826
+ } catch {}
1827
+ return { easPayload: h };
1828
+ }), pr = async (e) => {
1829
+ let t;
1830
+ try {
1831
+ t = await w.find({ seedLocalId: e });
1832
+ } catch {}
1833
+ return t || new Promise((t) => {
1834
+ let n = setInterval(() => {
1835
+ w.find({ seedLocalId: e }).then((e) => {
1836
+ e && (clearInterval(n), t(e));
1837
+ }).catch(() => {});
1838
+ }, 200);
1839
+ });
1840
+ };
1841
+ async function mr(e) {
1842
+ let t = typeof e.getPublishUploads == "function" ? e : await pr(e.seedLocalId);
1843
+ return await je(t);
1844
+ }
1845
+ //#endregion
1846
+ //#region src/services/publish/actors/checking.ts
1847
+ var J = /* @__PURE__ */ new Set();
1848
+ async function hr(e) {
1849
+ let t = c();
1850
+ return t.useDirectEas ? "directEas" : t.useModularExecutor || await y(e) ? "multiPublish" : "directEas";
1851
+ }
1852
+ var gr = A(({ sendBack: e, input: { context: t } }) => {
1853
+ let { item: n, account: r, wallet: i, publishMode: a, address: o } = t;
1854
+ return (async () => {
1855
+ if (!await Ae(n)) {
1856
+ e({ type: "notOwner" });
1857
+ return;
1858
+ }
1859
+ if (J.has(n.seedLocalId)) {
1860
+ e({ type: "redundantPublishProcess" });
1861
+ return;
1862
+ }
1863
+ J.add(n.seedLocalId);
1864
+ try {
1865
+ let t = i ?? r;
1866
+ t && await L(n, t);
1867
+ let s = await Le(n, [], { publishMode: a ?? "patch" });
1868
+ if (!s.isValid) {
1869
+ J.delete(n.seedLocalId), e({
1870
+ type: "validationFailed",
1871
+ errors: s.errors
1872
+ });
1873
+ return;
1874
+ }
1875
+ if (!o || typeof o != "string" || !o.trim()) {
1876
+ J.delete(n.seedLocalId), e({
1877
+ type: "validationFailed",
1878
+ errors: [{ message: "No publisher address for publish. Connect a wallet and try again." }]
1879
+ });
1880
+ return;
1881
+ }
1882
+ let l;
1883
+ try {
1884
+ l = await hr(o.trim());
1885
+ } catch (t) {
1886
+ J.delete(n.seedLocalId), e({
1887
+ type: "checkingFailed",
1888
+ error: Error("Could not verify whether the publisher is a deployed contract on Optimism Sepolia. Check your RPC connection and retry.", { cause: t })
1889
+ });
1890
+ return;
1891
+ }
1892
+ let u = await mr(n), d = c().useArweaveBundler, f = { attestationStrategy: l };
1893
+ e(u ? d ? {
1894
+ type: "validPublishProcessBundler",
1895
+ ...f
1896
+ } : {
1897
+ type: "validPublishProcess",
1898
+ ...f
1899
+ } : {
1900
+ type: "skipArweave",
1901
+ ...f
1902
+ });
1903
+ } catch (t) {
1904
+ J.delete(n.seedLocalId), console.error("[checking] failed", t), e({
1905
+ type: "checkingFailed",
1906
+ error: t instanceof Error ? t : Error(String(t))
1907
+ });
1908
+ }
1909
+ })().catch((t) => {
1910
+ J.delete(n.seedLocalId), console.error("[checking] unhandled rejection", t), e({
1911
+ type: "checkingFailed",
1912
+ error: t instanceof Error ? t : Error(String(t))
1913
+ });
1914
+ }), () => {
1915
+ J.delete(n.seedLocalId);
1916
+ };
1917
+ }), { SUCCESS: _r, FAILURE: Y } = r;
1918
+ function X(e) {
1919
+ let t = e.attestationStrategy;
1920
+ return t === "directEas" || t !== "multiPublish" && c().useDirectEas;
1921
+ }
1922
+ function Z(e) {
1923
+ let t = e.attestationStrategy;
1924
+ return t === "multiPublish" || t !== "directEas" && !c().useDirectEas;
1925
+ }
1926
+ function Q(e) {
1927
+ let t = e;
1928
+ return t.error ?? t.data;
1929
+ }
1930
+ var vr = Xe({
1931
+ types: {
1932
+ context: {},
1933
+ input: {}
1934
+ },
1935
+ actors: {
1936
+ createArweaveTransactions: ut,
1937
+ createArweaveTransactionsPhase2: dt,
1938
+ createArweaveDataItems: Xt,
1939
+ createArweaveDataItemsPhase2: Qt,
1940
+ sendReimbursementRequest: on,
1941
+ pollForConfirmation: sn,
1942
+ uploadData: ln,
1943
+ uploadViaBundler: mn,
1944
+ createAttestations: tr,
1945
+ createAttestationsDirectToEas: fr,
1946
+ checking: gr,
1947
+ preparingHtmlEmbedded: ft,
1948
+ rewritingHtmlEmbedded: mt
1949
+ },
1950
+ actions: {
1951
+ handleError: ({ event: e }) => {
1952
+ let t = Q(e);
1953
+ t == null ? console.error("Unknown error (full event):", e) : console.error(t);
1954
+ },
1955
+ assignErrorCreatingArweaveTransactions: k({
1956
+ error: ({ event: e }) => Q(e),
1957
+ errorStep: () => "creatingArweaveTransactions"
1958
+ }),
1959
+ assignErrorCreatingArweaveDataItems: k({
1960
+ error: ({ event: e }) => Q(e),
1961
+ errorStep: () => "creatingArweaveDataItems"
1962
+ }),
1963
+ assignErrorSendingReimbursementRequest: k({
1964
+ error: ({ event: e }) => Q(e),
1965
+ errorStep: () => "sendingReimbursementRequest"
1966
+ }),
1967
+ assignErrorPollingForConfirmation: k({
1968
+ error: ({ event: e }) => Q(e),
1969
+ errorStep: () => "pollingForConfirmation"
1970
+ }),
1971
+ assignErrorUploadingData: k({
1972
+ error: ({ event: e }) => Q(e),
1973
+ errorStep: () => "uploadingData"
1974
+ }),
1975
+ assignErrorPreparingHtmlEmbedded: k({
1976
+ error: ({ event: e }) => Q(e),
1977
+ errorStep: () => "preparingHtmlEmbedded"
1978
+ }),
1979
+ assignErrorRewritingHtmlEmbedded: k({
1980
+ error: ({ event: e }) => Q(e),
1981
+ errorStep: () => "rewritingHtmlEmbedded"
1982
+ }),
1983
+ assignErrorCreatingArweaveTransactionsPhase2: k({
1984
+ error: ({ event: e }) => Q(e),
1985
+ errorStep: () => "creatingArweaveTransactionsPhase2"
1986
+ }),
1987
+ assignErrorUploadingDataPhase2: k({
1988
+ error: ({ event: e }) => Q(e),
1989
+ errorStep: () => "uploadingDataPhase2"
1990
+ }),
1991
+ assignErrorUploadingViaBundler: k({
1992
+ error: ({ event: e }) => Q(e),
1993
+ errorStep: () => "uploadingViaBundler"
1994
+ }),
1995
+ assignErrorCreatingArweaveDataItemsPhase2: k({
1996
+ error: ({ event: e }) => Q(e),
1997
+ errorStep: () => "creatingArweaveDataItemsPhase2"
1998
+ }),
1999
+ assignErrorUploadingViaBundlerPhase2: k({
2000
+ error: ({ event: e }) => Q(e),
2001
+ errorStep: () => "uploadingViaBundlerPhase2"
2002
+ }),
2003
+ assignErrorCreatingAttestations: k({
2004
+ error: ({ event: e }) => Q(e),
2005
+ errorStep: () => "creatingAttestations"
2006
+ }),
2007
+ assignErrorCreatingAttestationsDirectToEas: k({
2008
+ error: ({ event: e }) => Q(e),
2009
+ errorStep: () => "creatingAttestationsDirectToEas"
2010
+ }),
2011
+ assignAccountFromRetry: k({
2012
+ wallet: ({ event: e }) => {
2013
+ let t = e;
2014
+ return t.wallet ?? t.account;
2015
+ },
2016
+ account: ({ event: e }) => {
2017
+ let t = e;
2018
+ return t.wallet ?? t.account;
2019
+ }
2020
+ }),
2021
+ assignErrorNotOwner: k({
2022
+ error: () => /* @__PURE__ */ Error("Item is read-only: you do not own this item. Only the publisher can publish."),
2023
+ errorStep: () => "checking"
2024
+ }),
2025
+ assignErrorValidationFailed: k({
2026
+ error: ({ event: e }) => {
2027
+ let t = e.errors ?? [], n = t.length > 0 ? `Validation failed (${t.length} error${t.length === 1 ? "" : "s"}):\n${t.map((e) => e.message).join("\n")}` : "Validation failed", r = Error(n);
2028
+ return r.validationErrors = t, r;
2029
+ },
2030
+ errorStep: () => "checking"
2031
+ }),
2032
+ assignErrorCheckingFailed: k({
2033
+ error: ({ event: e }) => {
2034
+ let t = e.error;
2035
+ return t instanceof Error ? t : Error(String(t ?? "Publish check failed"));
2036
+ },
2037
+ errorStep: () => "checking"
2038
+ })
2039
+ }
2040
+ }).createMachine({
2041
+ id: "publish",
2042
+ initial: "checking",
2043
+ context: ({ input: e }) => e,
2044
+ states: {
2045
+ checking: {
2046
+ on: {
2047
+ notOwner: {
2048
+ target: Y,
2049
+ actions: ["assignErrorNotOwner", "handleError"]
2050
+ },
2051
+ validationFailed: {
2052
+ target: Y,
2053
+ actions: ["assignErrorValidationFailed", "handleError"]
2054
+ },
2055
+ redundantPublishProcess: { target: "stopping" },
2056
+ checkingFailed: {
2057
+ target: Y,
2058
+ actions: ["assignErrorCheckingFailed", "handleError"]
2059
+ },
2060
+ validPublishProcess: {
2061
+ target: "preparingHtmlEmbedded",
2062
+ actions: k({ attestationStrategy: ({ event: e }) => e.attestationStrategy })
2063
+ },
2064
+ validPublishProcessBundler: {
2065
+ target: "preparingHtmlEmbedded",
2066
+ actions: k({ attestationStrategy: ({ event: e }) => e.attestationStrategy })
2067
+ },
2068
+ skipArweave: [{
2069
+ guard: ({ context: e }) => X(e),
2070
+ target: "creatingAttestationsDirectToEas",
2071
+ actions: k({
2072
+ arweaveTransactions: () => [],
2073
+ publishUploads: () => [],
2074
+ attestationStrategy: ({ event: e }) => e.attestationStrategy
2075
+ })
2076
+ }, {
2077
+ guard: ({ context: e }) => Z(e),
2078
+ target: "creatingAttestations",
2079
+ actions: k({
2080
+ arweaveTransactions: () => [],
2081
+ publishUploads: () => [],
2082
+ attestationStrategy: ({ event: e }) => e.attestationStrategy
2083
+ })
2084
+ }]
2085
+ },
2086
+ invoke: {
2087
+ src: "checking",
2088
+ input: ({ context: e }) => ({ context: e })
2089
+ }
2090
+ },
2091
+ preparingHtmlEmbedded: { invoke: {
2092
+ src: "preparingHtmlEmbedded",
2093
+ input: ({ context: e }) => ({ context: e }),
2094
+ onDone: [{
2095
+ guard: () => c().useArweaveBundler,
2096
+ target: "creatingArweaveDataItems",
2097
+ actions: k({ htmlEmbeddedDeferredHtmlSeedLocalIds: ({ event: e }) => e.output.deferredHtmlSeedLocalIds })
2098
+ }, {
2099
+ target: "creatingArweaveTransactions",
2100
+ actions: k({ htmlEmbeddedDeferredHtmlSeedLocalIds: ({ event: e }) => e.output.deferredHtmlSeedLocalIds })
2101
+ }],
2102
+ onError: {
2103
+ target: Y,
2104
+ actions: ["assignErrorPreparingHtmlEmbedded", "handleError"]
2105
+ }
2106
+ } },
2107
+ creatingArweaveTransactions: { invoke: {
2108
+ src: "createArweaveTransactions",
2109
+ input: ({ context: e, event: t }) => ({
2110
+ context: e,
2111
+ event: t
2112
+ }),
2113
+ onDone: {
2114
+ target: "sendingReimbursementRequest",
2115
+ actions: k({
2116
+ arweaveTransactions: ({ event: e }) => e.output.arweaveTransactions,
2117
+ publishUploads: ({ event: e }) => e.output.publishUploads
2118
+ })
2119
+ },
2120
+ onError: {
2121
+ target: "failure",
2122
+ actions: ["assignErrorCreatingArweaveTransactions", "handleError"]
2123
+ }
2124
+ } },
2125
+ creatingArweaveDataItems: { invoke: {
2126
+ src: "createArweaveDataItems",
2127
+ input: ({ context: e, event: t }) => ({
2128
+ context: e,
2129
+ event: t
2130
+ }),
2131
+ onDone: {
2132
+ target: "uploadingViaBundler",
2133
+ actions: k({
2134
+ arweaveTransactions: ({ event: e }) => e.output.arweaveTransactions,
2135
+ publishUploads: ({ event: e }) => e.output.publishUploads,
2136
+ signedDataItems: ({ event: e }) => e.output.signedDataItems
2137
+ })
2138
+ },
2139
+ onError: {
2140
+ target: "failure",
2141
+ actions: ["assignErrorCreatingArweaveDataItems", "handleError"]
2142
+ }
2143
+ } },
2144
+ sendingReimbursementRequest: { invoke: {
2145
+ src: "sendReimbursementRequest",
2146
+ input: ({ context: e, event: t }) => ({
2147
+ context: e,
2148
+ event: t
2149
+ }),
2150
+ onDone: {
2151
+ target: "pollingForConfirmation",
2152
+ actions: k({
2153
+ requestResponse: ({ event: e }) => e.output,
2154
+ reimbursementTransactionId: ({ event: e }) => e.output.transactionId
2155
+ })
2156
+ },
2157
+ onError: {
2158
+ target: "failure",
2159
+ actions: ["assignErrorSendingReimbursementRequest", "handleError"]
2160
+ }
2161
+ } },
2162
+ pollingForConfirmation: { invoke: {
2163
+ src: "pollForConfirmation",
2164
+ input: ({ context: e, event: t }) => ({
2165
+ context: e,
2166
+ event: t
2167
+ }),
2168
+ onDone: {
2169
+ target: "uploadingData",
2170
+ actions: k({ reimbursementConfirmed: !0 })
2171
+ },
2172
+ onError: {
2173
+ target: "failure",
2174
+ actions: ["assignErrorPollingForConfirmation", "handleError"]
2175
+ }
2176
+ } },
2177
+ uploadingViaBundler: {
2178
+ on: {
2179
+ uploadComplete: [
2180
+ {
2181
+ guard: ({ context: e }) => X(e),
2182
+ target: "creatingAttestationsDirectToEas",
2183
+ actions: k({
2184
+ completionPercentage: 100,
2185
+ signedDataItems: () => void 0,
2186
+ arweaveUploadData: () => void 0
2187
+ })
2188
+ },
2189
+ {
2190
+ guard: (e) => (e.context?.htmlEmbeddedDeferredHtmlSeedLocalIds?.length ?? 0) > 0,
2191
+ target: "rewritingHtmlEmbedded",
2192
+ actions: k({
2193
+ htmlEmbeddedPhase1PublishUploads: ({ context: e }) => e.publishUploads ?? [],
2194
+ htmlEmbeddedPhase1ArweaveTransactions: ({ context: e }) => e.arweaveTransactions ?? [],
2195
+ signedDataItems: () => void 0,
2196
+ arweaveUploadData: () => void 0
2197
+ })
2198
+ },
2199
+ {
2200
+ guard: ({ context: e }) => Z(e),
2201
+ target: "creatingAttestations",
2202
+ actions: k({
2203
+ completionPercentage: 100,
2204
+ signedDataItems: () => void 0,
2205
+ arweaveUploadData: () => void 0
2206
+ })
2207
+ }
2208
+ ],
2209
+ uploadError: {
2210
+ target: "failure",
2211
+ actions: ["assignErrorUploadingViaBundler", "handleError"]
2212
+ }
2213
+ },
2214
+ invoke: {
2215
+ src: "uploadViaBundler",
2216
+ input: ({ context: e }) => ({ context: e })
2217
+ }
2218
+ },
2219
+ creatingArweaveDataItemsPhase2: { invoke: {
2220
+ src: "createArweaveDataItemsPhase2",
2221
+ input: ({ context: e, event: t }) => ({
2222
+ context: e,
2223
+ event: t
2224
+ }),
2225
+ onDone: {
2226
+ target: "uploadingViaBundlerPhase2",
2227
+ actions: k({
2228
+ arweaveTransactions: ({ event: e }) => e.output.arweaveTransactions,
2229
+ publishUploads: ({ event: e }) => e.output.publishUploads,
2230
+ signedDataItems: ({ event: e }) => e.output.signedDataItems,
2231
+ uploaderState: () => void 0,
2232
+ currentTransactionIndex: () => void 0
2233
+ })
2234
+ },
2235
+ onError: {
2236
+ target: Y,
2237
+ actions: ["assignErrorCreatingArweaveDataItemsPhase2", "handleError"]
2238
+ }
2239
+ } },
2240
+ uploadingViaBundlerPhase2: {
2241
+ on: {
2242
+ uploadComplete: [{
2243
+ guard: ({ context: e }) => X(e),
2244
+ target: "creatingAttestationsDirectToEas",
2245
+ actions: k({
2246
+ completionPercentage: 100,
2247
+ signedDataItems: () => void 0,
2248
+ arweaveUploadData: () => void 0
2249
+ })
2250
+ }, {
2251
+ guard: ({ context: e }) => Z(e),
2252
+ target: "creatingAttestations",
2253
+ actions: k({
2254
+ completionPercentage: 100,
2255
+ signedDataItems: () => void 0,
2256
+ arweaveUploadData: () => void 0,
2257
+ publishUploads: ({ context: e }) => [...e.htmlEmbeddedPhase1PublishUploads ?? [], ...e.publishUploads ?? []],
2258
+ arweaveTransactions: ({ context: e }) => [...e.htmlEmbeddedPhase1ArweaveTransactions ?? [], ...e.arweaveTransactions ?? []]
2259
+ })
2260
+ }],
2261
+ uploadError: {
2262
+ target: Y,
2263
+ actions: ["assignErrorUploadingViaBundlerPhase2", "handleError"]
2264
+ }
2265
+ },
2266
+ invoke: {
2267
+ src: "uploadViaBundler",
2268
+ input: ({ context: e }) => ({ context: e })
2269
+ }
2270
+ },
2271
+ uploadingData: {
2272
+ on: {
2273
+ updatePercentage: { actions: k({
2274
+ completionPercentage: ({ event: e }) => e.completionPercentage,
2275
+ uploaderState: ({ event: e }) => e.uploaderState,
2276
+ currentTransactionIndex: ({ event: e }) => e.currentTransactionIndex
2277
+ }) },
2278
+ uploadComplete: [
2279
+ {
2280
+ guard: ({ context: e }) => X(e),
2281
+ target: "creatingAttestationsDirectToEas",
2282
+ actions: k({ completionPercentage: 100 })
2283
+ },
2284
+ {
2285
+ guard: (e) => (e.context?.htmlEmbeddedDeferredHtmlSeedLocalIds?.length ?? 0) > 0,
2286
+ target: "rewritingHtmlEmbedded",
2287
+ actions: k({
2288
+ htmlEmbeddedPhase1PublishUploads: ({ context: e }) => e.publishUploads ?? [],
2289
+ htmlEmbeddedPhase1ArweaveTransactions: ({ context: e }) => e.arweaveTransactions ?? []
2290
+ })
2291
+ },
2292
+ {
2293
+ guard: ({ context: e }) => Z(e),
2294
+ target: "creatingAttestations",
2295
+ actions: k({ completionPercentage: 100 })
2296
+ }
2297
+ ],
2298
+ uploadError: {
2299
+ target: "failure",
2300
+ actions: ["assignErrorUploadingData", "handleError"]
2301
+ }
2302
+ },
2303
+ invoke: {
2304
+ src: "uploadData",
2305
+ input: ({ context: e }) => ({ context: e })
2306
+ }
2307
+ },
2308
+ rewritingHtmlEmbedded: { invoke: {
2309
+ src: "rewritingHtmlEmbedded",
2310
+ input: ({ context: e }) => ({ context: e }),
2311
+ onDone: [{
2312
+ guard: () => !c().useArweaveBundler,
2313
+ target: "creatingArweaveTransactionsPhase2"
2314
+ }, {
2315
+ guard: () => c().useArweaveBundler,
2316
+ target: "creatingArweaveDataItemsPhase2"
2317
+ }],
2318
+ onError: {
2319
+ target: Y,
2320
+ actions: ["assignErrorRewritingHtmlEmbedded", "handleError"]
2321
+ }
2322
+ } },
2323
+ creatingArweaveTransactionsPhase2: { invoke: {
2324
+ src: "createArweaveTransactionsPhase2",
2325
+ input: ({ context: e, event: t }) => ({
2326
+ context: e,
2327
+ event: t
2328
+ }),
2329
+ onDone: {
2330
+ target: "uploadingDataPhase2",
2331
+ actions: k({
2332
+ arweaveTransactions: ({ event: e }) => e.output.arweaveTransactions,
2333
+ publishUploads: ({ event: e }) => e.output.publishUploads,
2334
+ uploaderState: () => void 0,
2335
+ currentTransactionIndex: () => void 0
2336
+ })
2337
+ },
2338
+ onError: {
2339
+ target: Y,
2340
+ actions: ["assignErrorCreatingArweaveTransactionsPhase2", "handleError"]
2341
+ }
2342
+ } },
2343
+ uploadingDataPhase2: {
2344
+ on: {
2345
+ updatePercentage: { actions: k({
2346
+ completionPercentage: ({ event: e }) => e.completionPercentage,
2347
+ uploaderState: ({ event: e }) => e.uploaderState,
2348
+ currentTransactionIndex: ({ event: e }) => e.currentTransactionIndex
2349
+ }) },
2350
+ uploadComplete: [{
2351
+ guard: ({ context: e }) => X(e),
2352
+ target: "creatingAttestationsDirectToEas",
2353
+ actions: k({ completionPercentage: 100 })
2354
+ }, {
2355
+ guard: ({ context: e }) => Z(e),
2356
+ target: "creatingAttestations",
2357
+ actions: k({
2358
+ completionPercentage: 100,
2359
+ publishUploads: ({ context: e }) => [...e.htmlEmbeddedPhase1PublishUploads ?? [], ...e.publishUploads ?? []],
2360
+ arweaveTransactions: ({ context: e }) => [...e.htmlEmbeddedPhase1ArweaveTransactions ?? [], ...e.arweaveTransactions ?? []]
2361
+ })
2362
+ }],
2363
+ uploadError: {
2364
+ target: Y,
2365
+ actions: ["assignErrorUploadingDataPhase2", "handleError"]
2366
+ }
2367
+ },
2368
+ invoke: {
2369
+ src: "uploadData",
2370
+ input: ({ context: e }) => ({ context: e })
2371
+ }
2372
+ },
2373
+ creatingAttestations: { invoke: {
2374
+ src: "createAttestations",
2375
+ input: ({ context: e, event: t }) => ({
2376
+ context: e,
2377
+ event: t
2378
+ }),
2379
+ onDone: {
2380
+ target: _r,
2381
+ actions: k({ easPayload: ({ event: e }) => e.output?.easPayload })
2382
+ },
2383
+ onError: {
2384
+ target: "attestationFailureRecoverable",
2385
+ actions: ["assignErrorCreatingAttestations", "handleError"]
2386
+ }
2387
+ } },
2388
+ attestationFailureRecoverable: { on: { retry: {
2389
+ target: "creatingAttestations",
2390
+ actions: ["assignAccountFromRetry"]
2391
+ } } },
2392
+ creatingAttestationsDirectToEas: { invoke: {
2393
+ src: "createAttestationsDirectToEas",
2394
+ input: ({ context: e, event: t }) => ({
2395
+ context: e,
2396
+ event: t
2397
+ }),
2398
+ onDone: {
2399
+ target: _r,
2400
+ actions: k({ easPayload: ({ event: e }) => e.output?.easPayload })
2401
+ },
2402
+ onError: {
2403
+ target: "attestationFailureRecoverableDirectToEas",
2404
+ actions: ["assignErrorCreatingAttestationsDirectToEas", "handleError"]
2405
+ }
2406
+ } },
2407
+ attestationFailureRecoverableDirectToEas: { on: { retry: {
2408
+ target: "creatingAttestationsDirectToEas",
2409
+ actions: ["assignAccountFromRetry"]
2410
+ } } },
2411
+ stopping: {
2412
+ entry: ({ context: e }) => {
2413
+ console.log(`Actor for ${e.item?.seedLocalId} stopped`);
2414
+ },
2415
+ type: "final"
2416
+ },
2417
+ [_r]: {
2418
+ entry: ({ context: e }) => {},
2419
+ type: "final"
2420
+ },
2421
+ [Y]: {
2422
+ entry: ({ context: e }) => {},
2423
+ type: "final"
2424
+ }
2425
+ }
2426
+ }), yr = k(({ context: e, event: t }) => {
2427
+ let n = t, r = n.publishProcesses ?? /* @__PURE__ */ new Map(), i = n.subscriptions ?? /* @__PURE__ */ new Map();
2428
+ return {
2429
+ publishProcesses: new Map(r),
2430
+ subscriptions: new Map(i)
2431
+ };
2432
+ }), br = null;
2433
+ function xr(e) {
2434
+ br = e;
2435
+ }
2436
+ function Sr() {
2437
+ return br;
2438
+ }
2439
+ //#endregion
2440
+ //#region src/services/publishManager/actors/subscribe.ts
2441
+ var Cr = M("seedProtocol:services:PublishManager:actors:subscribe");
2442
+ function wr(e) {
2443
+ let t = e.value;
2444
+ return typeof t == "string" ? t : t && typeof t == "object" ? Object.keys(t)[0] ?? "" : "";
2445
+ }
2446
+ function Tr(e) {
2447
+ return ge.includes(e);
2448
+ }
2449
+ var Er = A(({ receive: e, input: { publishProcess: t, seedLocalId: n } }) => {
2450
+ let r = Sr(), i = null, o = () => {
2451
+ i != null && (clearInterval(i), i = null);
2452
+ }, s = (e) => {
2453
+ let s = wr(e);
2454
+ Tr(s) && i == null && r ? i = setInterval(() => {
2455
+ try {
2456
+ let e = t.getSnapshot();
2457
+ if (e.status === "done") {
2458
+ o();
2459
+ return;
2460
+ }
2461
+ if (!Tr(wr(e))) {
2462
+ o();
2463
+ return;
2464
+ }
2465
+ } catch {
2466
+ return;
2467
+ }
2468
+ r?.savePublish(n, t);
2469
+ }, a) : Tr(s) || o();
2470
+ }, c = t.subscribe(async (e) => {
2471
+ Cr("Publish state:", e.value), r && (e.status === "done" ? (o(), r.savePublish(n, t, { triggerPublishDone: !0 })) : (r.savePublish(n, t), s(e)));
2472
+ });
2473
+ e(({ type: e }) => {
2474
+ e === "UNSUBSCRIBE" && (Cr("Received UNSUBSCRIBE event"), o(), c.unsubscribe(), r?.removeSubscription(n));
2475
+ });
2476
+ });
2477
+ //#endregion
2478
+ //#region src/services/publishManager/actions/createPublish.ts
2479
+ function Dr(e) {
2480
+ if (e) {
2481
+ if (o(e)) return e;
2482
+ if (s(e)) {
2483
+ let t = f();
2484
+ if (t && t.signer.address.toLowerCase() === e.address.toLowerCase()) return t;
2485
+ throw Error("@seedprotocol/publish: createPublish requires a PublishWallet (signer + txSender). Use fromEthersWallet, fromEip1193Provider, or fromThirdwebAccount.");
2486
+ }
2487
+ throw Error("@seedprotocol/publish: createPublish account must be a PublishWallet. Thirdweb Account must be wrapped with fromThirdwebAccount from @seedprotocol/publish/thirdweb.");
2488
+ }
2489
+ }
2490
+ function Or(e) {
2491
+ if (e) {
2492
+ if (e instanceof O.Wallet) return e;
2493
+ if (o(e)) return e.signer;
2494
+ if (s(e)) return e;
2495
+ }
2496
+ }
2497
+ var kr = Ye(({ event: e, enqueue: t }) => {
2498
+ let { item: n, address: r, account: i, options: a } = e;
2499
+ if (!(r != null && typeof r == "string" && r.trim().length > 0)) {
2500
+ console.warn("[createPublish] No valid wallet address; skipping spawn.");
2501
+ return;
2502
+ }
2503
+ t.assign(({ context: e, spawn: t }) => {
2504
+ let { publishProcesses: o } = e;
2505
+ if (o && o.has(n.seedLocalId)) return console.warn(`Publish process with seedLocalId "${n.seedLocalId}" already exists.`), e;
2506
+ let s = typeof crypto < "u" && typeof crypto.randomUUID == "function" ? crypto.randomUUID() : `run_${Date.now()}_${Math.random().toString(36).slice(2, 11)}`, l = c(), u = [...l.arweaveUploadTags ?? [], ...a?.arweaveUploadTags ?? []], d = Dr(i) ?? f() ?? void 0, p = t(vr, { input: {
2507
+ item: n,
2508
+ address: r,
2509
+ wallet: d,
2510
+ account: d,
2511
+ modelName: n.modelName,
2512
+ schemaId: n.schemaUid,
2513
+ signDataItems: a?.signDataItems,
2514
+ dataItemSigner: Or(a?.dataItemSigner),
2515
+ signArweaveTransactions: a?.signArweaveTransactions,
2516
+ arweaveJwk: a?.arweaveJwk,
2517
+ publishMode: a?.publishMode ?? "patch",
2518
+ publishRunId: s,
2519
+ arweaveUploadTags: u.length ? u : void 0,
2520
+ htmlEmbeddedDataUriPolicy: a?.htmlEmbeddedDataUriPolicy ?? l.htmlEmbeddedDataUriPolicy ?? "materialize"
2521
+ } });
2522
+ return o.set(n.seedLocalId, p), {
2523
+ ...e,
2524
+ publishProcesses: o
2525
+ };
2526
+ }), t.assign(({ context: e, spawn: t }) => {
2527
+ let { subscriptions: r, publishProcesses: i } = e, a = i.get(n.seedLocalId);
2528
+ if (!a) return console.warn(`Publish process with seedLocalId "${n.seedLocalId}" does not exist.`), e;
2529
+ if (r.has(n.seedLocalId)) return console.warn(`Subscription with seedLocalId "${n.seedLocalId}" already exists.`), e;
2530
+ let o = t(Er, { input: {
2531
+ publishProcess: a,
2532
+ seedLocalId: n.seedLocalId
2533
+ } });
2534
+ return r.set(n.seedLocalId, o), {
2535
+ ...e,
2536
+ subscriptions: new Map(r)
2537
+ };
2538
+ });
2539
+ }), Ar = ({ context: e, event: t }) => {
2540
+ let { seedLocalId: n, account: r } = t, i = e.publishProcesses.get(n);
2541
+ if (!i) {
2542
+ console.warn(`Publish process with seedLocalId "${n}" does not exist.`);
2543
+ return;
2544
+ }
2545
+ let a = r == null ? f() ?? void 0 : o(r) ? r : void 0;
2546
+ r != null && !a && console.warn("[retryAttestations] account must be a PublishWallet. Use fromThirdwebAccount / fromEip1193Provider / fromEthersWallet."), i.send({
2547
+ type: "retry",
2548
+ account: a,
2549
+ wallet: a
2550
+ });
2551
+ };
2552
+ //#endregion
2553
+ //#region src/services/publishManager/actions/stopScopedOrStandaloneChild.ts
2554
+ function jr(e, t, n) {
2555
+ t._parent === e ? n.stopChild(t) : t.stop();
2556
+ }
2557
+ //#endregion
2558
+ //#region src/services/publishManager/actors/savePublish.ts
2559
+ var Mr = M("seedProtocol:services:PublishManager:actors:savePublish"), Nr = /* @__PURE__ */ new Map();
2560
+ function Pr(e, t) {
2561
+ let n = (Nr.get(e) ?? Promise.resolve()).then(t);
2562
+ return Nr.set(e, n.catch(() => {})), n;
2563
+ }
2564
+ function Fr(e) {
2565
+ return e === "completed" || e === "failed" || e === "interrupted";
2566
+ }
2567
+ function Ir(e) {
2568
+ return e.status === "done" ? e.value === "success" ? "completed" : e.value === "failure" ? "failed" : "completed" : "in_progress";
2569
+ }
2570
+ var Lr = 500, Rr = 2e3;
2571
+ function zr(e) {
2572
+ return JSON.stringify(e, (e, t) => typeof t == "bigint" ? t.toString() : t);
2573
+ }
2574
+ function Br(e) {
2575
+ if (typeof e != "object" || !e) return;
2576
+ let t = e, n = t.snapshot, r = (t.context ?? n?.context)?.publishRunId;
2577
+ return typeof r == "string" && r.length > 0 ? r : void 0;
2578
+ }
2579
+ function Vr(e, t) {
2580
+ if (!e?.error || t !== "failed" && t !== "in_progress") return {};
2581
+ let n = e.error, r = n == null ? void 0 : (n instanceof Error ? n.message : String(n)).slice(0, Lr), i = e.errorStep, a;
2582
+ if (n instanceof Error && n.stack) a = n.stack.slice(0, Rr);
2583
+ else if (typeof n == "object" && n) try {
2584
+ a = JSON.stringify(n).slice(0, Rr);
2585
+ } catch {
2586
+ a = String(n).slice(0, Rr);
2587
+ }
2588
+ else n != null && (a = String(n).slice(0, Rr));
2589
+ return {
2590
+ errorMessage: r ?? void 0,
2591
+ errorStep: i,
2592
+ errorDetails: a
2593
+ };
2594
+ }
2595
+ function Hr(e) {
2596
+ return Pr(e, async () => {
2597
+ let t = S.getAppDb();
2598
+ if (!t) {
2599
+ Mr("markInProgressPublishInterrupted: DB not ready, skipping");
2600
+ return;
2601
+ }
2602
+ let n = await t.select().from(T).where(Qe(N(T.seedLocalId, e), N(T.status, "in_progress"))).orderBy($e(T.updatedAt)).limit(1);
2603
+ if (n.length === 0) return;
2604
+ let r = Date.now();
2605
+ await t.update(T).set({
2606
+ status: "interrupted",
2607
+ completedAt: r,
2608
+ updatedAt: r,
2609
+ errorMessage: null,
2610
+ errorStep: null,
2611
+ errorDetails: null
2612
+ }).where(N(T.id, n[0].id));
2613
+ });
2614
+ }
2615
+ var Ur = A(({ sendBack: e, input: { persistedSnapshot: t, seedLocalId: n, triggerPublishDone: r } }) => {
2616
+ Mr("savePublish seedLocalId", n);
2617
+ let i = t;
2618
+ Pr(n, async () => {
2619
+ let a = S.getAppDb();
2620
+ if (!a) {
2621
+ Mr("savePublish: DB not ready, skipping"), e({
2622
+ type: "SAVE_PUBLISH_DONE",
2623
+ seedLocalId: n,
2624
+ triggerPublishDone: r
2625
+ });
2626
+ return;
2627
+ }
2628
+ let o = await a.select().from(T).where(Qe(N(T.seedLocalId, n), N(T.status, "in_progress"))).orderBy($e(T.updatedAt)).limit(1), s = typeof t == "string" ? t : zr(t), c = Ir(i), l = Date.now(), u = Vr(i.context, c);
2629
+ if (o.length > 0) {
2630
+ let e = o[0];
2631
+ await a.update(T).set({
2632
+ persistedSnapshot: s,
2633
+ status: c,
2634
+ updatedAt: l,
2635
+ ...i.status === "done" && c !== "in_progress" ? { completedAt: l } : {},
2636
+ ...u
2637
+ }).where(N(T.id, e.id));
2638
+ } else {
2639
+ let e = Br(i);
2640
+ if (e != null && c === "in_progress" && i.status !== "done") {
2641
+ let t = (await a.select().from(T).where(N(T.seedLocalId, n)).orderBy($e(T.startedAt)).limit(1))[0];
2642
+ if (t && Fr(t.status)) try {
2643
+ if (Br(JSON.parse(t.persistedSnapshot)) === e) {
2644
+ Mr("savePublish: skip stale insert — same publishRunId as latest terminal row", n, e);
2645
+ return;
2646
+ }
2647
+ } catch {}
2648
+ }
2649
+ let t = i.context?.item, r = i.context?.modelName ?? t?.modelName ?? "", o = i.context?.schemaId ?? t?.schemaId;
2650
+ await a.insert(T).values({
2651
+ seedLocalId: n,
2652
+ modelName: r,
2653
+ schemaId: o ?? null,
2654
+ status: c,
2655
+ startedAt: l,
2656
+ persistedSnapshot: s,
2657
+ createdAt: l,
2658
+ updatedAt: l,
2659
+ ...u
2660
+ });
2661
+ }
2662
+ }).then(() => {
2663
+ e({
2664
+ type: "SAVE_PUBLISH_DONE",
2665
+ seedLocalId: n,
2666
+ triggerPublishDone: r
2667
+ });
2668
+ }).catch((t) => {
2669
+ Mr("savePublish error", t), e({
2670
+ type: "SAVE_PUBLISH_DONE",
2671
+ seedLocalId: n,
2672
+ triggerPublishDone: r
2673
+ });
2674
+ });
2675
+ }), Wr = Ye(({ context: e, event: t, enqueue: n, self: r }) => {
2676
+ let { publishProcesses: i, subscriptions: a } = e, { seedLocalId: o } = t;
2677
+ Hr(o).catch((e) => {
2678
+ console.warn(`[stopPublish] Failed to mark publish_processes row interrupted for "${o}":`, e);
2679
+ });
2680
+ let s = i.get(o);
2681
+ if (!s) {
2682
+ console.warn(`Publish process with seedLocalId "${o}" does not exist.`);
2683
+ return;
2684
+ }
2685
+ jr(r, s, n);
2686
+ let c = a.get(o);
2687
+ c && jr(r, c, n);
2688
+ let l = new Map(i);
2689
+ l.delete(o);
2690
+ let u = new Map(a);
2691
+ u.delete(o), n.assign({
2692
+ publishProcesses: l,
2693
+ subscriptions: u
2694
+ });
2695
+ }), Gr = M("seedProtocol:PublishManager:index"), Kr = Ye(({ context: e, enqueue: t, self: n }) => {
2696
+ Gr("Stopping all actors..."), e.publishProcesses.forEach((e) => {
2697
+ jr(n, e, t);
2698
+ }), e.subscriptions.forEach((e) => {
2699
+ jr(n, e, t);
2700
+ }), t.assign({
2701
+ publishProcesses: /* @__PURE__ */ new Map(),
2702
+ subscriptions: /* @__PURE__ */ new Map()
2703
+ });
2704
+ }), qr = Ye(({ context: e, event: t, enqueue: n }) => {
2705
+ let { seedLocalId: r } = t, i = e.publishProcesses.get(r);
2706
+ if (!i) {
2707
+ console.warn(`Publish process with seedLocalId "${r}" does not exist.`);
2708
+ return;
2709
+ }
2710
+ n.stopChild(i);
2711
+ let a = e.subscriptions.get(r);
2712
+ a && n.stopChild(a);
2713
+ let o = new Map(e.publishProcesses);
2714
+ o.delete(r);
2715
+ let s = new Map(e.subscriptions);
2716
+ s.delete(r), n.assign({
2717
+ publishProcesses: o,
2718
+ subscriptions: s
2719
+ });
2720
+ }), Jr = k(({ context: e, event: t }) => {
2721
+ let { subscriptions: n } = e, { seedLocalId: r, newSubscription: i } = t;
2722
+ return i && n.set(r, i), { subscriptions: new Map(n) };
2723
+ }), Yr = ["signedDataItems", "arweaveUploadData"];
2724
+ function Xr(e) {
2725
+ if (typeof e != "object" || !e) return e;
2726
+ let t = { ...e };
2727
+ for (let e of Yr) delete t[e];
2728
+ return t;
2729
+ }
2730
+ function Zr(e) {
2731
+ if (typeof e != "object" || !e) return e;
2732
+ let t = e, n = { ...t };
2733
+ t.context != null && typeof t.context == "object" && (n.context = Xr(t.context));
2734
+ let r = t.snapshot;
2735
+ if (typeof r == "object" && r) {
2736
+ let e = r, t = { ...e };
2737
+ e.context != null && typeof e.context == "object" && (t.context = Xr(e.context)), n.snapshot = t;
2738
+ }
2739
+ return n;
2740
+ }
2741
+ function Qr(e) {
2742
+ try {
2743
+ return Zr(e.getPersistedSnapshot?.() ?? e.getSnapshot());
2744
+ } catch {
2745
+ let t = e.getSnapshot(), n = t.context;
2746
+ if (!n?.item) return Zr(t);
2747
+ let r = n.item;
2748
+ return Zr({
2749
+ ...t,
2750
+ context: {
2751
+ ...n,
2752
+ item: {
2753
+ seedLocalId: r.seedLocalId,
2754
+ modelName: r.modelName,
2755
+ schemaId: r.schemaId
2756
+ }
2757
+ }
2758
+ });
2759
+ }
2760
+ }
2761
+ var $r = k(({ context: e, event: t, spawn: n }) => {
2762
+ let { publishProcesses: r } = e, { seedLocalId: i, publishProcess: a, triggerPublishDone: o } = t;
2763
+ if (!a) return e;
2764
+ let s = new Map(r);
2765
+ s.set(i, a);
2766
+ let c = Qr(a);
2767
+ return n(Ur, {
2768
+ id: `savePublish_${i}_${Date.now()}`,
2769
+ input: {
2770
+ persistedSnapshot: c,
2771
+ seedLocalId: i,
2772
+ triggerPublishDone: o
2773
+ }
2774
+ }), { publishProcesses: s };
2775
+ }), ei = k(({ context: e, event: t }) => {
2776
+ let { publishProcesses: n, subscriptions: r } = e, i = t.seedLocalId, a = r.get(i);
2777
+ a && a.send({ type: "UNSUBSCRIBE" });
2778
+ let o = new Map(n);
2779
+ o.delete(i);
2780
+ let s = new Map(r);
2781
+ return s.delete(i), {
2782
+ publishProcesses: o,
2783
+ subscriptions: s
2784
+ };
2785
+ }), ti = k(({ context: e, event: t }) => {
2786
+ let { subscriptions: n } = e, r = t.seedLocalId, i = new Map(n);
2787
+ return i.delete(r), { subscriptions: i };
2788
+ }), ni = 6e4, ri = 2e3;
2789
+ async function ii(e) {
2790
+ let t = Date.now() + e;
2791
+ for (; Date.now() < t;) {
2792
+ try {
2793
+ if (S.isAppDbReady() && S.getAppDb()) return !0;
2794
+ } catch {}
2795
+ await new Promise((e) => setTimeout(e, ri));
2796
+ }
2797
+ return !1;
2798
+ }
2799
+ function ai(e) {
2800
+ let t = e.value;
2801
+ return typeof t == "string" ? t : t && typeof t == "object" ? Object.keys(t)[0] ?? "" : "";
2802
+ }
2803
+ function oi(e) {
2804
+ let t = ai(e);
2805
+ if (t === "pollingForConfirmation" && (!e.context?.reimbursementTransactionId || !e.context?.requestResponse)) return !1;
2806
+ if (t === "uploadingData") {
2807
+ let t = e.context?.arweaveTransactions, n = e.context?.publishUploads;
2808
+ if (!Array.isArray(t) || t.length === 0 || !Array.isArray(n)) return !1;
2809
+ }
2810
+ return !0;
2811
+ }
2812
+ function si(e) {
2813
+ return typeof e == "object" && !!e && "xstate$$type" in e && e.xstate$$type === 1 && typeof e.id == "string";
2814
+ }
2815
+ function ci(e, t, n) {
2816
+ e.context = e.context ?? {};
2817
+ let r = e.context.item;
2818
+ if (si(r)) {
2819
+ e.context.item = {
2820
+ seedLocalId: t,
2821
+ modelName: e.context.modelName ?? n.modelName ?? "",
2822
+ schemaId: e.context.schemaId ?? n.schemaId ?? void 0
2823
+ };
2824
+ return;
2825
+ }
2826
+ e.context.item = {
2827
+ ...typeof r == "object" && r && !Array.isArray(r) ? r : {},
2828
+ seedLocalId: t,
2829
+ modelName: r?.modelName ?? e.context.modelName ?? n.modelName ?? "",
2830
+ schemaId: r?.schemaId ?? e.context.schemaId ?? n.schemaId ?? void 0
2831
+ };
2832
+ }
2833
+ var li = A(({ sendBack: e, input: { context: t } }) => {
2834
+ (async () => {
2835
+ let t = /* @__PURE__ */ new Map(), n = /* @__PURE__ */ new Map();
2836
+ if (!await ii(ni)) return e({
2837
+ type: "RESTORE_FROM_DB_DONE",
2838
+ publishProcesses: t,
2839
+ subscriptions: n
2840
+ }), {
2841
+ newPublishProcesses: t,
2842
+ newSubscriptions: n
2843
+ };
2844
+ let r = S.getAppDb();
2845
+ if (!r) return e({
2846
+ type: "RESTORE_FROM_DB_DONE",
2847
+ publishProcesses: t,
2848
+ subscriptions: n
2849
+ }), {
2850
+ newPublishProcesses: t,
2851
+ newSubscriptions: n
2852
+ };
2853
+ let i = await r.select().from(T).where(N(T.status, "in_progress")), a = /* @__PURE__ */ new Map(), o = [...i].sort((e, t) => (t.updatedAt ?? t.createdAt ?? 0) - (e.updatedAt ?? e.createdAt ?? 0));
2854
+ for (let e of o) a.has(e.seedLocalId) || a.set(e.seedLocalId, e);
2855
+ let s = Array.from(a.values());
2856
+ for (let e of s) {
2857
+ let r;
2858
+ try {
2859
+ r = JSON.parse(e.persistedSnapshot);
2860
+ } catch {
2861
+ continue;
2862
+ }
2863
+ if (r.status === "done") continue;
2864
+ let i = r.context?.item?.seedLocalId ?? e.seedLocalId;
2865
+ if (!i || !oi(r)) continue;
2866
+ ci(r, i, e);
2867
+ let a = Je(vr, {
2868
+ snapshot: r,
2869
+ input: void 0
2870
+ }), o = Je(Er, { input: {
2871
+ publishProcess: a,
2872
+ seedLocalId: i
2873
+ } });
2874
+ t.set(i, a), n.set(i, o), a.start(), o.start();
2875
+ }
2876
+ return {
2877
+ newPublishProcesses: t,
2878
+ newSubscriptions: n
2879
+ };
2880
+ })().then((t) => {
2881
+ if (!t) return;
2882
+ let { newPublishProcesses: n, newSubscriptions: r } = t;
2883
+ e({
2884
+ type: "RESTORE_FROM_DB_DONE",
2885
+ publishProcesses: n,
2886
+ subscriptions: r
2887
+ });
2888
+ });
2889
+ }), ui = M("seedProtocol:PublishManager:index"), di = Xe({
2890
+ types: {
2891
+ context: {},
2892
+ input: {},
2893
+ events: {}
2894
+ },
2895
+ actors: { restoreFromDb: li },
2896
+ actions: {
2897
+ assignRestoreFromDb: yr,
2898
+ createPublish: kr,
2899
+ addSubscription: Jr,
2900
+ requestSavePublish: $r,
2901
+ publishDone: ei,
2902
+ removeSubscription: ti,
2903
+ retryAttestations: Ar,
2904
+ stopPublish: Wr,
2905
+ stopAll: Kr,
2906
+ query: qr
2907
+ }
2908
+ }).createMachine({
2909
+ id: "publishManager",
2910
+ initial: "restoreFromDb",
2911
+ context: {
2912
+ publishProcesses: /* @__PURE__ */ new Map(),
2913
+ subscriptions: /* @__PURE__ */ new Map()
2914
+ },
2915
+ states: {
2916
+ restoreFromDb: {
2917
+ on: { RESTORE_FROM_DB_DONE: {
2918
+ target: "active",
2919
+ actions: ["assignRestoreFromDb"]
2920
+ } },
2921
+ invoke: {
2922
+ src: "restoreFromDb",
2923
+ input: ({ context: e }) => ({ context: e })
2924
+ }
2925
+ },
2926
+ active: { on: {
2927
+ CREATE_PUBLISH: { actions: ["createPublish"] },
2928
+ ADD_SUBSCRIPTION: { actions: ["addSubscription"] },
2929
+ REQUEST_SAVE_PUBLISH: { actions: ["requestSavePublish"] },
2930
+ SAVE_PUBLISH_DONE: [{
2931
+ guard: ({ event: e }) => e.triggerPublishDone === !0,
2932
+ actions: ["publishDone"]
2933
+ }],
2934
+ PUBLISH_DONE: { actions: ["publishDone"] },
2935
+ REMOVE_SUBSCRIPTION: { actions: ["removeSubscription"] },
2936
+ RETRY_ATTESTATIONS: { actions: ["retryAttestations"] },
2937
+ STOP_PUBLISH: { actions: ["stopPublish"] },
2938
+ QUERY: { actions: ["query"] },
2939
+ STOP_ALL: { actions: ["stopAll"] }
2940
+ } }
2941
+ }
2942
+ }), $ = Je(di, { input: {
2943
+ publishProcesses: /* @__PURE__ */ new Map(),
2944
+ subscriptions: /* @__PURE__ */ new Map()
2945
+ } });
2946
+ xr({
2947
+ savePublish: (e, t, n) => {
2948
+ $.send({
2949
+ type: "REQUEST_SAVE_PUBLISH",
2950
+ seedLocalId: e,
2951
+ publishProcess: t,
2952
+ triggerPublishDone: n?.triggerPublishDone
2953
+ });
2954
+ },
2955
+ onPublishDone: (e) => {
2956
+ $.send({
2957
+ type: "PUBLISH_DONE",
2958
+ seedLocalId: e
2959
+ });
2960
+ },
2961
+ removeSubscription: (e) => {
2962
+ $.send({
2963
+ type: "REMOVE_SUBSCRIPTION",
2964
+ seedLocalId: e
2965
+ });
2966
+ }
2967
+ });
2968
+ var fi = $.subscribe((e) => {
2969
+ ui("PublishManager snapshot:", e);
2970
+ });
2971
+ typeof document < "u" && ($.start(), window.addEventListener("load", () => {
2972
+ ui("PublishManager started");
2973
+ }), window.addEventListener("beforeunload", () => {
2974
+ fi.unsubscribe(), $.stop();
2975
+ }));
2976
+ var pi = {
2977
+ getService: () => $,
2978
+ createPublish: (e, t, n, r) => $.send({
2979
+ type: "CREATE_PUBLISH",
2980
+ item: e,
2981
+ address: t,
2982
+ account: n,
2983
+ options: r
2984
+ }),
2985
+ retryAttestations: (e, t) => $.send({
2986
+ type: "RETRY_ATTESTATIONS",
2987
+ seedLocalId: e,
2988
+ account: t
2989
+ }),
2990
+ stopPublish: (e) => $.send({
2991
+ type: "STOP_PUBLISH",
2992
+ seedLocalId: e
2993
+ }),
2994
+ query: (e) => $.send({
2995
+ type: "QUERY",
2996
+ seedLocalId: e
2997
+ }),
2998
+ stopAll: () => $.send({ type: "STOP_ALL" }),
2999
+ getPublish: (e) => $.getSnapshot().context.publishProcesses.get(e),
3000
+ savePublish: (e, t) => $.send({
3001
+ type: "REQUEST_SAVE_PUBLISH",
3002
+ seedLocalId: e,
3003
+ publishProcess: t
3004
+ }),
3005
+ addSubscription: (e, t) => $.send({
3006
+ type: "ADD_SUBSCRIPTION",
3007
+ seedLocalId: e,
3008
+ newSubscription: t
3009
+ }),
3010
+ removeSubscription: (e) => $.send({
3011
+ type: "REMOVE_SUBSCRIPTION",
3012
+ seedLocalId: e
3013
+ })
3014
+ };
3015
+ //#endregion
3016
+ export { Tn as a, Kt as c, at as d, nt as f, En as i, R as l, vr as n, gn as o, rt as p, xn as r, jt as s, pi as t, L as u };
3017
+
3018
+ //# sourceMappingURL=publishManager-B7zTF25-.js.map