@domino-sdk/relay 1.66.1 → 1.68.0

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 (72) hide show
  1. package/CHANGELOG.md +68 -0
  2. package/dist/{accounts-_lNsiR2k.d.ts → accounts-DnpKoJCo.d.ts} +210 -3
  3. package/dist/{attempt-captures-BqPggxTU.d.ts → attempt-captures-DMNFMYFb.d.ts} +9 -1
  4. package/dist/authoring.d.ts +352 -40
  5. package/dist/authoring.js +131 -22
  6. package/dist/{automatic-outcomes-BzAvfcpd.d.ts → automatic-outcomes-CQ3vpiQl.d.ts} +2 -2
  7. package/dist/avatar.d.ts +1 -1
  8. package/dist/browser.d.ts +10 -9
  9. package/dist/browser.js +12 -12
  10. package/dist/{catalog-ByZMRS7I.d.ts → catalog-BLGie8Lh.d.ts} +60 -2
  11. package/dist/chunk-4JSPMFO2.js +427 -0
  12. package/dist/{chunk-5LD5DKOM.js → chunk-55WJVFWC.js} +2 -2
  13. package/dist/{chunk-CJDB6W6I.js → chunk-5AKD4ZF3.js} +75 -36
  14. package/dist/{chunk-7MQCQYEE.js → chunk-6UBFSMCM.js} +1 -1
  15. package/dist/{chunk-XCEGNKGH.js → chunk-6YTSRWRB.js} +1254 -700
  16. package/dist/{chunk-OWDIR7ZU.js → chunk-75KF633N.js} +9 -1
  17. package/dist/{chunk-4TC4HK5Y.js → chunk-7YSVZA7A.js} +1 -1
  18. package/dist/{chunk-7HTRIEM7.js → chunk-CZ7NQ7W7.js} +11 -68
  19. package/dist/{chunk-ANVAUOJP.js → chunk-DDJN2T5A.js} +1 -1
  20. package/dist/{chunk-M66Y5OMJ.js → chunk-DNPDR4Z7.js} +16 -9
  21. package/dist/{chunk-FU3W4IQN.js → chunk-EXZVWQOQ.js} +2 -2
  22. package/dist/{chunk-5DYS2OIP.js → chunk-HXTKI34N.js} +14 -2
  23. package/dist/{chunk-FGXLXENM.js → chunk-IW46TW3A.js} +21 -1
  24. package/dist/{chunk-2Y4EZKET.js → chunk-KKHENO57.js} +2 -2
  25. package/dist/{chunk-U66GUVSG.js → chunk-LZXDYSUH.js} +2 -0
  26. package/dist/{chunk-QYHEHMCG.js → chunk-MEUAJIVO.js} +2 -2
  27. package/dist/{chunk-BQXRCJ3N.js → chunk-P4TPW4SY.js} +1 -1
  28. package/dist/{chunk-CGUL4MRE.js → chunk-R3MNZKNJ.js} +1 -1
  29. package/dist/{chunk-R2LHIWAM.js → chunk-SD74HD75.js} +45 -9
  30. package/dist/{chunk-FUFMYKSQ.js → chunk-TYZFVL73.js} +136 -5
  31. package/dist/chunk-VAGGGB6B.js +87 -0
  32. package/dist/{chunk-2HHZV7U3.js → chunk-VRZZB7CQ.js} +1 -1
  33. package/dist/{client-Cze4lfwA.d.ts → client-BMif22WQ.d.ts} +136 -7
  34. package/dist/{dashboards-pVfclkyh.d.ts → dashboards-DMk-vL1q.d.ts} +4 -4
  35. package/dist/{deployments-Cr1tfqrr.d.ts → deployments-BCr418BX.d.ts} +582 -173
  36. package/dist/{identity-integration-Ci2vGKtX.d.ts → identity-integration-r76xaAax.d.ts} +10 -2
  37. package/dist/index.d.ts +10 -10
  38. package/dist/index.js +10 -10
  39. package/dist/internal.d.ts +155 -14
  40. package/dist/internal.js +255 -25
  41. package/dist/{limits-pE04y9O2.d.ts → limits-ByVRQePO.d.ts} +6 -1
  42. package/dist/{offers-Hw2P6tcK.d.ts → offers-xcPbYaEv.d.ts} +2 -2
  43. package/dist/portal-proxy.d.ts +5 -5
  44. package/dist/portal-proxy.js +13 -15
  45. package/dist/react/index.d.ts +38 -15
  46. package/dist/react/index.js +12 -12
  47. package/dist/{reward-deliveries-BCV8hznc.d.ts → reward-deliveries-0VvT6LMj.d.ts} +1 -1
  48. package/dist/runtime/authoring.js +1 -1
  49. package/dist/runtime/chunks/2UDZ6TPL.js +1 -0
  50. package/dist/runtime/manifest.json +3 -3
  51. package/dist/runtime/schema.js +1 -1
  52. package/dist/schema.d.ts +401 -104
  53. package/dist/schema.js +66 -8
  54. package/dist/server/index.d.ts +12 -12
  55. package/dist/server/index.js +2288 -873
  56. package/dist/{sign-in-providers-BAkGjSXo.d.ts → sign-in-providers-C5_753DZ.d.ts} +2 -2
  57. package/dist/solana.d.ts +171 -0
  58. package/dist/solana.js +364 -0
  59. package/dist/{submission-input-ChL1aYNH.d.ts → submission-input-CaL8drIh.d.ts} +2 -2
  60. package/dist/{telegram-browser-BFs4u7lC.d.ts → telegram-browser-DLtHPRBI.d.ts} +6 -108
  61. package/dist/telegram.d.ts +8 -8
  62. package/dist/telegram.js +2 -2
  63. package/dist/testing.d.ts +87 -14
  64. package/dist/testing.js +108 -11
  65. package/dist/{tracker-data-Bl-qPIvZ.d.ts → tracker-data-CAK942sx.d.ts} +300 -3
  66. package/dist/{transport-WE49Ta3A.d.ts → transport-CkidqTOk.d.ts} +5866 -1244
  67. package/dist/{wallet-B7e06v4m.d.ts → wallet-DQtJelQQ.d.ts} +418 -33
  68. package/dist/wallet-browser-dpmr22Xv.d.ts +106 -0
  69. package/package.json +18 -1
  70. package/dist/chunk-UYVJZR33.js +0 -34
  71. package/dist/chunk-UZ765UGH.js +0 -18
  72. package/dist/runtime/chunks/C5V267I7.js +0 -1
package/dist/internal.js CHANGED
@@ -1,26 +1,29 @@
1
1
  import {
2
2
  REFERRAL_INTEGRATION_REWARD_ERROR,
3
+ canonicalWalletAddress,
4
+ confirmedSignature,
3
5
  containsReferralIntegrationReward,
4
6
  managementTransport,
5
7
  questConfiguration,
6
- sequenceCursorSchema
7
- } from "./chunk-FUFMYKSQ.js";
8
+ sequenceCursorSchema,
9
+ solanaPublicEndpoints,
10
+ solanaRpc,
11
+ walletSignatureValid
12
+ } from "./chunk-TYZFVL73.js";
8
13
  import {
9
14
  parseImageExtraction,
10
15
  parseImageResult
11
- } from "./chunk-FU3W4IQN.js";
16
+ } from "./chunk-EXZVWQOQ.js";
12
17
  import {
13
18
  sourceDataSchema,
14
19
  sourceRoles,
15
20
  validateQuestShape
16
- } from "./chunk-5DYS2OIP.js";
17
- import {
18
- bareOrigin,
19
- loopbackHosts,
20
- secureOrLoopbackOrigin
21
- } from "./chunk-UZ765UGH.js";
21
+ } from "./chunk-HXTKI34N.js";
22
22
  import {
23
23
  accountVouchedBySchema,
24
+ appLoginOriginSchema,
25
+ bareOrigin,
26
+ httpsOriginSchema,
24
27
  identityIntegrationAccountVouchingInputSchema,
25
28
  identityIntegrationAppSecretSchema,
26
29
  identityIntegrationInputSchema,
@@ -28,44 +31,53 @@ import {
28
31
  identityIntegrationSchema,
29
32
  identityIntegrationSecretSchema,
30
33
  identityKindClaimSchema,
34
+ loopbackHosts,
31
35
  nextScheduleRun,
32
36
  participantExchangeAccountResultSchema,
33
37
  participantExchangeAccountsSchema,
34
38
  participantExchangeResultSchema,
35
- participantExchangeSchema
36
- } from "./chunk-CJDB6W6I.js";
39
+ participantExchangeSchema,
40
+ secureOrLoopbackOrigin
41
+ } from "./chunk-5AKD4ZF3.js";
37
42
  import {
38
43
  isIntegrationParticipantPath,
39
44
  isParticipantRoute,
40
45
  participantRoutePattern,
41
46
  participantRoutes
42
- } from "./chunk-U66GUVSG.js";
43
- import "./chunk-M66Y5OMJ.js";
44
- import "./chunk-ANVAUOJP.js";
47
+ } from "./chunk-LZXDYSUH.js";
48
+ import "./chunk-DNPDR4Z7.js";
49
+ import "./chunk-DDJN2T5A.js";
45
50
  import {
46
51
  dashboardIssue,
47
52
  normalizeDashboard
48
- } from "./chunk-QYHEHMCG.js";
53
+ } from "./chunk-MEUAJIVO.js";
49
54
  import "./chunk-MWMCQLCG.js";
50
55
  import {
56
+ connectSolanaAccount,
51
57
  hostEnvironmentPath,
52
- hostEnvironmentSchema
53
- } from "./chunk-UYVJZR33.js";
54
- import "./chunk-4TC4HK5Y.js";
58
+ hostEnvironmentSchema,
59
+ registeredWallets
60
+ } from "./chunk-VAGGGB6B.js";
61
+ import "./chunk-7YSVZA7A.js";
55
62
  import {
56
63
  MANAGEMENT_TIMEOUT,
57
64
  lifetime,
58
65
  retryAfter,
59
66
  retrying
60
- } from "./chunk-2Y4EZKET.js";
61
- import "./chunk-CGUL4MRE.js";
62
- import "./chunk-7MQCQYEE.js";
63
- import "./chunk-5LD5DKOM.js";
67
+ } from "./chunk-KKHENO57.js";
68
+ import "./chunk-R3MNZKNJ.js";
69
+ import "./chunk-6UBFSMCM.js";
70
+ import "./chunk-55WJVFWC.js";
64
71
  import {
72
+ base58,
73
+ base58Bytes,
65
74
  compatibleSettingKinds,
75
+ evmWalletOn,
76
+ inWindow,
66
77
  isBoundSetting,
67
78
  schemaCheckedReader,
68
79
  sourceContent,
80
+ stationRefusal,
69
81
  trackerDataBatchSteps,
70
82
  trackerDataIssue,
71
83
  trackerDataIssues,
@@ -73,18 +85,217 @@ import {
73
85
  trackerDataRecordSteps,
74
86
  whereSchemaIssue,
75
87
  whereSettings
76
- } from "./chunk-XCEGNKGH.js";
77
- import "./chunk-FGXLXENM.js";
88
+ } from "./chunk-6YTSRWRB.js";
89
+ import "./chunk-IW46TW3A.js";
90
+
91
+ // src/station-qr.ts
92
+ function stationPayLink(url, station) {
93
+ const target = new URL(url);
94
+ target.searchParams.set("station", station);
95
+ return `solana:${encodeURIComponent(target.href)}`;
96
+ }
97
+ var escapeXml = (text) => text.replace(
98
+ /[&<>"']/g,
99
+ (character) => ({
100
+ "&": "&amp;",
101
+ "<": "&lt;",
102
+ ">": "&gt;",
103
+ '"': "&quot;",
104
+ "'": "&apos;"
105
+ })[character] ?? character
106
+ );
107
+ async function stationQrSvg(link, label) {
108
+ const { encodeQR } = await import("qr");
109
+ const modules = encodeQR(link, "raw", { ecc: "medium", border: 4 });
110
+ const size = modules.length;
111
+ const scale = 10;
112
+ const width = size * scale;
113
+ const labelHeight = 6 * scale;
114
+ const path = modules.flatMap(
115
+ (row, y) => row.flatMap((dark, x) => dark ? [`M${x} ${y}h1v1h-1z`] : [])
116
+ ).join("");
117
+ return `<svg xmlns="http://www.w3.org/2000/svg" width="${width}" height="${width + labelHeight}" viewBox="0 0 ${width} ${width + labelHeight}">
118
+ <rect width="100%" height="100%" fill="#fff"/>
119
+ <path transform="scale(${scale})" fill="#000" shape-rendering="crispEdges" d="${path}"/>
120
+ <text x="${width / 2}" y="${width + labelHeight / 2}" font-family="sans-serif" font-size="${2.4 * scale}" text-anchor="middle" dominant-baseline="middle" fill="#000">${escapeXml(label)}</text>
121
+ </svg>
122
+ `;
123
+ }
124
+
125
+ // src/solana-idl-accounts.ts
126
+ import { sha256 } from "@noble/hashes/sha2.js";
127
+ import { concatBytes } from "@noble/hashes/utils.js";
128
+ var encoder = /* @__PURE__ */ (() => new TextEncoder())();
129
+ var maxAnchorIdlBytes = 512 * 1024;
130
+ var idlTooLarge = (idl) => new TextEncoder().encode(JSON.stringify(idl)).length > maxAnchorIdlBytes;
131
+ var zeroCopyAccount = (account, declared) => (declared?.serialization ?? account.serialization ?? "borsh") !== "borsh";
132
+ function checkedInteger(value, signed, bits) {
133
+ const text = typeof value === "number" ? String(value) : value;
134
+ if (typeof text !== "string" || typeof value === "number" && !Number.isSafeInteger(value) || !/^-?(0|[1-9][0-9]{0,77})$/.test(text)) {
135
+ return "not-an-integer";
136
+ }
137
+ const size = BigInt(bits);
138
+ const number = BigInt(text);
139
+ const [min, max] = signed ? [-(2n ** (size - 1n)), 2n ** (size - 1n) - 1n] : [0n, 2n ** size - 1n];
140
+ return number < min || number > max ? { min, max } : number;
141
+ }
142
+ function littleEndianBytes(value, bits) {
143
+ let number = BigInt.asUintN(bits, value);
144
+ return Uint8Array.from({ length: bits / 8 }, () => {
145
+ const byte = Number(number & 0xffn);
146
+ number >>= 8n;
147
+ return byte;
148
+ });
149
+ }
150
+ var maxSeedBytes = 32;
151
+ function solanaSeedBytes(seed, position) {
152
+ if (typeof seed === "string") {
153
+ const bytes = encoder.encode(seed);
154
+ return bytes.length > maxSeedBytes ? {
155
+ problem: `Seed ${position} is ${bytes.length} bytes: a seed is at most ${maxSeedBytes}`
156
+ } : bytes;
157
+ }
158
+ if ("wallet" in seed) {
159
+ return "wallet";
160
+ }
161
+ if ("pubkey" in seed) {
162
+ return base58Bytes(seed.pubkey, 32) ?? {
163
+ problem: `Seed ${position} is not a Solana address: ${seed.pubkey}`
164
+ };
165
+ }
166
+ const [type, value] = Object.entries(seed)[0];
167
+ const bits = Number(type.slice(1));
168
+ const checked = checkedInteger(value, type.startsWith("i"), bits);
169
+ return typeof checked === "bigint" ? littleEndianBytes(checked, bits) : {
170
+ problem: `Seed ${position} must be a ${type}: a safe integer number or a decimal string${typeof checked === "object" ? ` from ${checked.min} to ${checked.max}` : ""}`
171
+ };
172
+ }
173
+ function storedIdlJson(bytes, compression, decompress) {
174
+ const limit = { maxOutputLength: maxAnchorIdlBytes * 4 };
175
+ try {
176
+ const json = compression === "none" ? bytes : compression === "gzip" ? decompress.gunzip(bytes, limit) : decompress.inflate(bytes, limit);
177
+ return JSON.parse(
178
+ new TextDecoder("utf-8", { ignoreBOM: true }).decode(json)
179
+ );
180
+ } catch {
181
+ return null;
182
+ }
183
+ }
184
+ var p = 2n ** 255n - 19n;
185
+ var d = 37095705934669439343138083508754565189542113879843219016388785533085940283555n;
186
+ function power(base, exponent) {
187
+ let result = 1n;
188
+ base %= p;
189
+ while (exponent > 0n) {
190
+ if (exponent & 1n) {
191
+ result = result * base % p;
192
+ }
193
+ base = base * base % p;
194
+ exponent >>= 1n;
195
+ }
196
+ return result;
197
+ }
198
+ function onCurve(bytes) {
199
+ let y = 0n;
200
+ for (let index = 31; index >= 0; index--) {
201
+ y = y << 8n | BigInt(index === 31 ? bytes[index] & 127 : bytes[index]);
202
+ }
203
+ const yy = y * y % p;
204
+ const u = (yy - 1n + p) % p;
205
+ const v = (d * yy + 1n) % p;
206
+ const ratio = u * power(v, p - 2n) % p;
207
+ return ratio === 0n || power(ratio, (p - 1n) / 2n) === 1n;
208
+ }
209
+ function solanaAddressBytes(address) {
210
+ const bytes = base58Bytes(address, 32);
211
+ if (!bytes) {
212
+ throw new Error(`${address} is not a Solana address`);
213
+ }
214
+ return bytes;
215
+ }
216
+ function solanaProgramAddress(seeds, program) {
217
+ const programBytes = solanaAddressBytes(program);
218
+ for (let bump = 255; bump >= 0; bump--) {
219
+ const address = sha256(
220
+ concatBytes(
221
+ ...seeds,
222
+ Uint8Array.of(bump),
223
+ programBytes,
224
+ encoder.encode("ProgramDerivedAddress")
225
+ )
226
+ );
227
+ if (!onCurve(address)) {
228
+ return base58(address);
229
+ }
230
+ }
231
+ throw new Error("No program address for these seeds");
232
+ }
233
+ function anchorIdlAddress(program) {
234
+ return base58(
235
+ sha256(
236
+ concatBytes(
237
+ solanaAddressBytes(solanaProgramAddress([], program)),
238
+ encoder.encode("anchor:idl"),
239
+ solanaAddressBytes(program)
240
+ )
241
+ )
242
+ );
243
+ }
244
+ function anchorIdlAccountBytes(data) {
245
+ if (data.length < 44) {
246
+ return null;
247
+ }
248
+ const length = new DataView(data.buffer, data.byteOffset).getUint32(40, true);
249
+ return length === 0 || 44 + length > data.length ? null : data.subarray(44, 44 + length);
250
+ }
251
+ var programMetadataProgram = "ProgM6JCCvbYkfKqJYHePx4xxSUSqJp7rh8Lyv7nk7S";
252
+ var idlSeed = /* @__PURE__ */ (() => new Uint8Array(16))();
253
+ idlSeed.set(encoder.encode("idl"));
254
+ var metadataHeaderLength = 96;
255
+ var metadataDiscriminator = 2;
256
+ var metadataCompressions = ["none", "gzip", "zlib"];
257
+ function programMetadataIdlAddress(program) {
258
+ return solanaProgramAddress(
259
+ [solanaAddressBytes(program), idlSeed],
260
+ programMetadataProgram
261
+ );
262
+ }
263
+ function programMetadataIdlBytes(data, program) {
264
+ if (data.length < metadataHeaderLength) {
265
+ return null;
266
+ }
267
+ const view = new DataView(data.buffer, data.byteOffset, data.length);
268
+ const compression = metadataCompressions[data[84]];
269
+ const length = view.getUint32(87, true);
270
+ if (data[0] !== metadataDiscriminator || base58(data.subarray(1, 33)) !== program || data[66] !== 1 || !data.subarray(67, 83).every((byte, index) => byte === idlSeed[index]) || // UTF-8 encoding, JSON format or none, data in the account.
271
+ data[83] !== 1 || data[85] > 1 || data[86] !== 0 || compression === void 0 || length === 0 || metadataHeaderLength + length > data.length) {
272
+ return null;
273
+ }
274
+ return {
275
+ bytes: data.subarray(metadataHeaderLength, metadataHeaderLength + length),
276
+ compression
277
+ };
278
+ }
78
279
  export {
79
280
  MANAGEMENT_TIMEOUT,
80
281
  REFERRAL_INTEGRATION_REWARD_ERROR,
81
282
  accountVouchedBySchema,
283
+ anchorIdlAccountBytes,
284
+ anchorIdlAddress,
285
+ appLoginOriginSchema,
82
286
  bareOrigin,
287
+ base58,
288
+ canonicalWalletAddress,
289
+ checkedInteger,
83
290
  compatibleSettingKinds,
291
+ confirmedSignature,
292
+ connectSolanaAccount,
84
293
  containsReferralIntegrationReward,
85
294
  dashboardIssue,
295
+ evmWalletOn,
86
296
  hostEnvironmentPath,
87
297
  hostEnvironmentSchema,
298
+ httpsOriginSchema,
88
299
  identityIntegrationAccountVouchingInputSchema,
89
300
  identityIntegrationAppSecretSchema,
90
301
  identityIntegrationInputSchema,
@@ -92,12 +303,16 @@ export {
92
303
  identityIntegrationSchema,
93
304
  identityIntegrationSecretSchema,
94
305
  identityKindClaimSchema,
306
+ idlTooLarge,
307
+ inWindow,
95
308
  isBoundSetting,
96
309
  isIntegrationParticipantPath,
97
310
  isParticipantRoute,
98
311
  lifetime,
312
+ littleEndianBytes,
99
313
  loopbackHosts,
100
314
  managementTransport,
315
+ maxAnchorIdlBytes,
101
316
  nextScheduleRun,
102
317
  normalizeDashboard,
103
318
  parseImageExtraction,
@@ -108,21 +323,36 @@ export {
108
323
  participantExchangeSchema,
109
324
  participantRoutePattern,
110
325
  participantRoutes,
326
+ programMetadataIdlAddress,
327
+ programMetadataIdlBytes,
328
+ programMetadataProgram,
111
329
  questConfiguration,
330
+ registeredWallets,
112
331
  retryAfter,
113
332
  retrying,
114
333
  schemaCheckedReader,
115
334
  secureOrLoopbackOrigin,
116
335
  sequenceCursorSchema,
336
+ solanaAddressBytes,
337
+ solanaProgramAddress,
338
+ solanaPublicEndpoints,
339
+ solanaRpc,
340
+ solanaSeedBytes,
117
341
  sourceContent,
118
342
  sourceDataSchema,
119
343
  sourceRoles,
344
+ stationPayLink,
345
+ stationQrSvg,
346
+ stationRefusal,
347
+ storedIdlJson,
120
348
  trackerDataBatchSteps,
121
349
  trackerDataIssue,
122
350
  trackerDataIssues,
123
351
  trackerDataPathTypes,
124
352
  trackerDataRecordSteps,
125
353
  validateQuestShape,
354
+ walletSignatureValid,
126
355
  whereSchemaIssue,
127
- whereSettings
356
+ whereSettings,
357
+ zeroCopyAccount
128
358
  };
@@ -1,5 +1,5 @@
1
1
  import * as z from 'zod';
2
- import { aa as PhotoResult, V as AttemptCodeSource } from './accounts-_lNsiR2k.js';
2
+ import { ac as PhotoResult, W as AttemptCodeSource } from './accounts-DnpKoJCo.js';
3
3
 
4
4
  /**
5
5
  * Quest code names an image; the platform fetches, decodes and pins it. No bytes or URLs cross the
@@ -947,6 +947,11 @@ type Limits = {
947
947
  readonly walletEventLogs: number;
948
948
  /** The most transactions one `ctx.wallet.transactions()` read fetches per wallet. */
949
949
  readonly walletTransactions: number;
950
+ /**
951
+ * The most signatures one `management.solana.transactionFixture()` call reads. Each is a
952
+ * `getTransaction` call on the platform's Solana RPC, and a quest test needs a handful.
953
+ */
954
+ readonly transactionFixtureSignatures: number;
950
955
  };
951
956
  /** Relay's platform limits. A 1.x release can raise them, so read them here at run time. */
952
957
  declare const limits: Limits;
@@ -1,6 +1,6 @@
1
1
  import * as z from 'zod';
2
- import { R as ResourceHandle } from './tracker-data-Bl-qPIvZ.js';
3
- import { Z as AuthoringIdentity } from './accounts-_lNsiR2k.js';
2
+ import { R as ResourceHandle } from './tracker-data-CAK942sx.js';
3
+ import { _ as AuthoringIdentity } from './accounts-DnpKoJCo.js';
4
4
 
5
5
  declare const badgePropertiesSchema: z.ZodObject<{
6
6
  name: z.ZodString;
@@ -1,6 +1,6 @@
1
- import { M as MemberImportVouchedAccount, P as ParticipantExchangeAccountResult, a as ParticipantExchangeResult, I as IdentityIntegrationKey } from './identity-integration-Ci2vGKtX.js';
1
+ import { M as MemberImportVouchedAccount, P as ParticipantExchangeAccountResult, a as ParticipantExchangeResult, I as IdentityIntegrationKey } from './identity-integration-r76xaAax.js';
2
2
  import { R as RequestError } from './request-error-D_dUPLwo.js';
3
- import './tracker-data-Bl-qPIvZ.js';
3
+ import './tracker-data-CAK942sx.js';
4
4
  import 'zod';
5
5
 
6
6
  /**
@@ -75,9 +75,9 @@ declare function inspectIntegrationKey(options: {
75
75
  /**
76
76
  * Use only in an app server route. authenticate must verify the app's own session.
77
77
  * `origin` is the app's exact HTTPS origin, or a loopback HTTP origin
78
- * (`http://localhost`, `http://127.0.0.1`, `http://[::1]`, any port) for a
79
- * local browser test. Relay registers only HTTPS origins, so a loopback origin
80
- * works only against an injected `fetch`, such as `createFakeRelay`'s.
78
+ * (`http://localhost`, `http://127.0.0.1`, `http://[::1]`, any port) for local
79
+ * development. Relay accepts a loopback origin on a Test key created for it, port
80
+ * included, or against an injected `fetch` such as `createFakeRelay`'s.
81
81
  * `authenticate` may also return `accounts` the app vouches belong to the user, which needs the
82
82
  * key's **Vouches accounts** setting; `onAccounts` receives each one's outcome, such as an account
83
83
  * another member holds.
@@ -1,33 +1,31 @@
1
- import {
2
- secureOrLoopbackOrigin
3
- } from "./chunk-UZ765UGH.js";
4
1
  import {
5
2
  identityIntegrationKeySchema,
6
3
  participantExchangeAccountsSchema,
7
- participantExchangeResultSchema
8
- } from "./chunk-CJDB6W6I.js";
4
+ participantExchangeResultSchema,
5
+ secureOrLoopbackOrigin
6
+ } from "./chunk-5AKD4ZF3.js";
9
7
  import {
10
8
  isParticipantRoute
11
- } from "./chunk-U66GUVSG.js";
12
- import "./chunk-M66Y5OMJ.js";
13
- import "./chunk-ANVAUOJP.js";
14
- import "./chunk-QYHEHMCG.js";
9
+ } from "./chunk-LZXDYSUH.js";
10
+ import "./chunk-DNPDR4Z7.js";
11
+ import "./chunk-DDJN2T5A.js";
12
+ import "./chunk-MEUAJIVO.js";
15
13
  import "./chunk-MWMCQLCG.js";
16
14
  import {
17
15
  clientIdentity,
18
16
  retryAfter
19
- } from "./chunk-2Y4EZKET.js";
20
- import "./chunk-CGUL4MRE.js";
17
+ } from "./chunk-KKHENO57.js";
18
+ import "./chunk-R3MNZKNJ.js";
21
19
  import {
22
20
  participantPrincipalSchema,
23
21
  sessionMember
24
- } from "./chunk-7MQCQYEE.js";
25
- import "./chunk-5LD5DKOM.js";
26
- import "./chunk-XCEGNKGH.js";
22
+ } from "./chunk-6UBFSMCM.js";
23
+ import "./chunk-55WJVFWC.js";
24
+ import "./chunk-6YTSRWRB.js";
27
25
  import {
28
26
  RequestError,
29
27
  isRequestError
30
- } from "./chunk-FGXLXENM.js";
28
+ } from "./chunk-IW46TW3A.js";
31
29
 
32
30
  // src/portal-proxy.ts
33
31
  import * as z from "zod";
@@ -1,23 +1,24 @@
1
- import { B as Badge, c as MemberBadges, O as Offer, f as Redemption } from '../offers-Hw2P6tcK.js';
1
+ import { B as Badge, c as MemberBadges, O as Offer, f as Redemption } from '../offers-xcPbYaEv.js';
2
2
  import { b as ParticipantSession, R as RelayEvent, P as ParticipantActivity, M as MemberSummary } from '../participant-activity-DXRq4s6K.js';
3
- import { g as RelayError, R as RelayClient, m as SubmissionDraft } from '../client-Cze4lfwA.js';
4
- import { P as Page, u as RewardDeliveryAction, e as CreatorAccountProvider, K as KnownConsentChannel, M as MemberConsent, n as QuestOutcomeQuery, l as QuestOutcome } from '../reward-deliveries-BCV8hznc.js';
5
- export { C as ConsentChannel, b as ConsentSource, c as ConsentState, d as CreatorAccount, f as CreatorAccounts, g as KnownConsentSource, h as KnownConsentState } from '../reward-deliveries-BCV8hznc.js';
3
+ import { g as RelayError, R as RelayClient, m as SubmissionDraft } from '../client-BMif22WQ.js';
4
+ import { P as Page, u as RewardDeliveryAction, e as CreatorAccountProvider, K as KnownConsentChannel, M as MemberConsent, n as QuestOutcomeQuery, l as QuestOutcome } from '../reward-deliveries-0VvT6LMj.js';
5
+ export { C as ConsentChannel, b as ConsentSource, c as ConsentState, d as CreatorAccount, f as CreatorAccounts, g as KnownConsentSource, h as KnownConsentState } from '../reward-deliveries-0VvT6LMj.js';
6
6
  import * as react from 'react';
7
7
  import { ReactNode } from 'react';
8
8
  import * as z from 'zod';
9
9
  import { z as z$1 } from 'zod';
10
- import { l as collectionViewSchema, b as QuestView } from '../catalog-ByZMRS7I.js';
11
- import { E as Entitlement, b as AttemptStatus, V as AttemptCodeSource, c as AuthProvider, J as SignInProvider, A as AccountConnection, I as SignInAccountStatus, p as LeaderboardPlacement, dN as referralSummarySchema, o as LeaderboardPage, u as PointEntry, t as PointBalances, y as PointLedgerReference, U as TieredRewardReference } from '../accounts-_lNsiR2k.js';
12
- export { S as SignInAccount, N as SignInProviderOption } from '../accounts-_lNsiR2k.js';
13
- import { c as SignInMethods, C as CosmosChains, d as SignInOption, P as ProviderSignInOption, f as SignInUnavailable, T as TelegramSignInOption, g as SignInWallet, D as DiscoveredWallet } from '../telegram-browser-BFs4u7lC.js';
14
- export { a as EmailSignInOption, O as OAuthSignInOption, b as SignInIcon, W as WalletSignInOption, t as telegramMiniAppInitData } from '../telegram-browser-BFs4u7lC.js';
15
- import { m as WalletSigner, k as WalletSignInNetwork, L as LinkedWallet, g as ProfileUpdate, f as ProfileSummary, b as ProfileCompletion, e as ProfileReferral } from '../wallet-B7e06v4m.js';
16
- export { T as TelegramAccountConnection, a as TelegramSignInMethods } from '../submission-input-ChL1aYNH.js';
17
- import '../tracker-data-Bl-qPIvZ.js';
10
+ import { l as collectionViewSchema, b as QuestView } from '../catalog-BLGie8Lh.js';
11
+ import { E as Entitlement, b as AttemptStatus, W as AttemptCodeSource, c as AuthProvider, J as SignInProvider, A as AccountConnection, I as SignInAccountStatus, p as LeaderboardPlacement, dW as referralSummarySchema, o as LeaderboardPage, u as PointEntry, t as PointBalances, y as PointLedgerReference, U as TieredRewardReference } from '../accounts-DnpKoJCo.js';
12
+ export { S as SignInAccount, N as SignInProviderOption } from '../accounts-DnpKoJCo.js';
13
+ import { b as SignInMethods, c as SignInOption, P as ProviderSignInOption, e as SignInUnavailable, T as TelegramSignInOption } from '../telegram-browser-DLtHPRBI.js';
14
+ export { E as EmailSignInOption, O as OAuthSignInOption, a as SignInIcon, W as WalletSignInOption, t as telegramMiniAppInitData } from '../telegram-browser-DLtHPRBI.js';
15
+ import { o as WalletSigner, m as WalletSignInNetwork, L as LinkedWallet, l as WalletProofKind, h as ProfileUpdate, g as ProfileSummary, b as ProfileCompletion, f as ProfileReferral } from '../wallet-DQtJelQQ.js';
16
+ import { C as CosmosChains, S as SignInWallet, D as DiscoveredWallet } from '../wallet-browser-dpmr22Xv.js';
17
+ export { T as TelegramAccountConnection, a as TelegramSignInMethods } from '../submission-input-CaL8drIh.js';
18
+ import '../tracker-data-CAK942sx.js';
18
19
  import '../request-error-D_dUPLwo.js';
19
20
  import '../action-9Xl0StBg.js';
20
- import '../sign-in-providers-BAkGjSXo.js';
21
+ import '../sign-in-providers-C5_753DZ.js';
21
22
 
22
23
  /**
23
24
  * A query's identity: plain JSON values, outermost group first, such as
@@ -1000,7 +1001,7 @@ declare function useQuest(observed: QuestView): {
1000
1001
  })[];
1001
1002
  } | {
1002
1003
  kind: "blocked";
1003
- reason: "paused" | "outside-window" | "budget-exhausted" | "enrollment-required" | "connection-required" | "wallet-required";
1004
+ reason: "paused" | "outside-window" | "enrollment-required" | "budget-exhausted" | "connection-required" | "wallet-required";
1004
1005
  window?: "quest" | "tracker" | undefined;
1005
1006
  resetsAt?: number | undefined;
1006
1007
  } | {
@@ -1165,6 +1166,13 @@ declare function useQuest(observed: QuestView): {
1165
1166
  release?: string | undefined;
1166
1167
  } | undefined;
1167
1168
  codeSource?: AttemptCodeSource | null | undefined;
1169
+ action?: {
1170
+ kind: (string & {}) | "solana-transaction";
1171
+ chain: string;
1172
+ signature: string;
1173
+ wallet: string;
1174
+ reference: string | null;
1175
+ } | null | undefined;
1168
1176
  } | null;
1169
1177
  release: string;
1170
1178
  interaction: "url" | "text" | "staff" | "claim" | "automatic" | "quiz" | "photo";
@@ -1446,7 +1454,7 @@ declare function useQuestAction(observed: QuestView): {
1446
1454
  })[];
1447
1455
  } | {
1448
1456
  kind: "blocked";
1449
- reason: "paused" | "outside-window" | "budget-exhausted" | "enrollment-required" | "connection-required" | "wallet-required";
1457
+ reason: "paused" | "outside-window" | "enrollment-required" | "budget-exhausted" | "connection-required" | "wallet-required";
1450
1458
  window?: "quest" | "tracker" | undefined;
1451
1459
  resetsAt?: number | undefined;
1452
1460
  } | {
@@ -1611,6 +1619,13 @@ declare function useQuestAction(observed: QuestView): {
1611
1619
  release?: string | undefined;
1612
1620
  } | undefined;
1613
1621
  codeSource?: AttemptCodeSource | null | undefined;
1622
+ action?: {
1623
+ kind: (string & {}) | "solana-transaction";
1624
+ chain: string;
1625
+ signature: string;
1626
+ wallet: string;
1627
+ reference: string | null;
1628
+ } | null | undefined;
1614
1629
  } | null;
1615
1630
  release: string;
1616
1631
  interaction: "url" | "text" | "staff" | "claim" | "automatic" | "quiz" | "photo";
@@ -2357,6 +2372,9 @@ declare function useWallets(): {
2357
2372
  verifiedAt: number;
2358
2373
  revision: number;
2359
2374
  signIn: boolean;
2375
+ provedOn?: `eip155:${number}` | undefined;
2376
+ provedBy?: WalletProofKind | undefined;
2377
+ proofTransaction?: string | undefined;
2360
2378
  }[];
2361
2379
  error: RelayError | null;
2362
2380
  refresh(): Promise<void>;
@@ -2482,6 +2500,11 @@ declare function useMyProfile(): {
2482
2500
  givenName: string | null;
2483
2501
  imageUrl: string | null;
2484
2502
  }[];
2503
+ nameSource?: string | null | undefined;
2504
+ nameOptions?: {
2505
+ source: string;
2506
+ name: string;
2507
+ }[] | undefined;
2485
2508
  };
2486
2509
  error: RelayError | null;
2487
2510
  refresh(): Promise<void>;
@@ -8,24 +8,24 @@ import {
8
8
  discoverSolanaWallets,
9
9
  readSignInMethods,
10
10
  signInOptionsFrom
11
- } from "../chunk-7HTRIEM7.js";
11
+ } from "../chunk-CZ7NQ7W7.js";
12
12
  import {
13
13
  telegramMiniAppInitData
14
14
  } from "../chunk-FWLQ5XCS.js";
15
- import "../chunk-R2LHIWAM.js";
15
+ import "../chunk-SD74HD75.js";
16
16
  import {
17
17
  createRelayAction
18
- } from "../chunk-BQXRCJ3N.js";
19
- import "../chunk-2HHZV7U3.js";
20
- import "../chunk-UYVJZR33.js";
21
- import "../chunk-4TC4HK5Y.js";
22
- import "../chunk-2Y4EZKET.js";
23
- import "../chunk-CGUL4MRE.js";
18
+ } from "../chunk-P4TPW4SY.js";
19
+ import "../chunk-VRZZB7CQ.js";
20
+ import "../chunk-VAGGGB6B.js";
21
+ import "../chunk-7YSVZA7A.js";
22
+ import "../chunk-KKHENO57.js";
23
+ import "../chunk-R3MNZKNJ.js";
24
24
  import {
25
25
  sessionMember
26
- } from "../chunk-7MQCQYEE.js";
27
- import "../chunk-5LD5DKOM.js";
28
- import "../chunk-XCEGNKGH.js";
26
+ } from "../chunk-6UBFSMCM.js";
27
+ import "../chunk-55WJVFWC.js";
28
+ import "../chunk-6YTSRWRB.js";
29
29
  import {
30
30
  RelayError,
31
31
  RelayErrorCode,
@@ -33,7 +33,7 @@ import {
33
33
  clientError,
34
34
  isRelayError,
35
35
  isRequestError
36
- } from "../chunk-FGXLXENM.js";
36
+ } from "../chunk-IW46TW3A.js";
37
37
 
38
38
  // src/react/context.ts
39
39
  import { createContext, useContext } from "react";
@@ -1,5 +1,5 @@
1
1
  import * as z from 'zod';
2
- import { T as TrackerSkipCode, S as SkipEnrollment } from './tracker-data-Bl-qPIvZ.js';
2
+ import { T as TrackerSkipCode, S as SkipEnrollment } from './tracker-data-CAK942sx.js';
3
3
 
4
4
  /**
5
5
  * The longest wording Relay stores: a checkbox label with a link to the policy fits.