@medialane/ui 0.173.0 → 0.175.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 (39) hide show
  1. package/dist/components/fast-mint/fast-mint.d.cts +2 -2
  2. package/dist/components/fast-mint/fast-mint.d.ts +2 -2
  3. package/dist/components/sheet.d.cts +1 -1
  4. package/dist/components/sheet.d.ts +1 -1
  5. package/dist/data/launchpad-services.cjs +3 -3
  6. package/dist/data/launchpad-services.cjs.map +1 -1
  7. package/dist/data/launchpad-services.js +3 -3
  8. package/dist/data/launchpad-services.js.map +1 -1
  9. package/dist/index.cjs +26 -0
  10. package/dist/index.cjs.map +1 -1
  11. package/dist/index.d.cts +5 -1
  12. package/dist/index.d.ts +5 -1
  13. package/dist/index.js +21 -0
  14. package/dist/index.js.map +1 -1
  15. package/dist/utils/app-wallet.cjs +84 -0
  16. package/dist/utils/app-wallet.cjs.map +1 -0
  17. package/dist/utils/app-wallet.d.cts +26 -0
  18. package/dist/utils/app-wallet.d.ts +26 -0
  19. package/dist/utils/app-wallet.js +65 -0
  20. package/dist/utils/app-wallet.js.map +1 -0
  21. package/dist/utils/email-code.cjs +58 -0
  22. package/dist/utils/email-code.cjs.map +1 -0
  23. package/dist/utils/email-code.d.cts +32 -0
  24. package/dist/utils/email-code.d.ts +32 -0
  25. package/dist/utils/email-code.js +30 -0
  26. package/dist/utils/email-code.js.map +1 -0
  27. package/dist/utils/passkey-support.cjs +37 -0
  28. package/dist/utils/passkey-support.cjs.map +1 -0
  29. package/dist/utils/passkey-support.d.cts +7 -0
  30. package/dist/utils/passkey-support.d.ts +7 -0
  31. package/dist/utils/passkey-support.js +13 -0
  32. package/dist/utils/passkey-support.js.map +1 -0
  33. package/dist/utils/wallet-failure.cjs +63 -0
  34. package/dist/utils/wallet-failure.cjs.map +1 -0
  35. package/dist/utils/wallet-failure.d.cts +12 -0
  36. package/dist/utils/wallet-failure.d.ts +12 -0
  37. package/dist/utils/wallet-failure.js +38 -0
  38. package/dist/utils/wallet-failure.js.map +1 -0
  39. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/email-code.ts"],"sourcesContent":["export const RESEND_COOLDOWN_SECONDS = 60;\n\nexport type EmailCodeStatus = \"idle\" | \"sending\" | \"ready\" | \"verifying\";\n\nexport interface EmailCodeState {\n status: EmailCodeStatus;\n code: string;\n error: string | null;\n cooldown: number;\n}\n\nexport type EmailCodeAction =\n | { type: \"code-changed\"; code: string }\n | { type: \"send-started\" }\n | { type: \"send-succeeded\" }\n | { type: \"send-failed\"; message: string }\n | { type: \"verify-started\" }\n | { type: \"verify-failed\"; message: string }\n | { type: \"tick\" };\n\nexport const initialEmailCodeState: EmailCodeState = { status: \"idle\", code: \"\", error: null, cooldown: 0 };\n\nexport function emailCodeReducer(state: EmailCodeState, action: EmailCodeAction): EmailCodeState {\n switch (action.type) {\n case \"code-changed\":\n return { ...state, code: action.code.replace(/\\D/g, \"\").slice(0, 6) };\n case \"send-started\":\n return { ...state, status: \"sending\", error: null };\n case \"send-succeeded\":\n return { ...state, status: \"ready\", error: null, cooldown: RESEND_COOLDOWN_SECONDS };\n case \"send-failed\":\n return { ...state, status: \"idle\", error: action.message };\n case \"verify-started\":\n return { ...state, status: \"verifying\", error: null };\n case \"verify-failed\":\n return { ...state, status: \"ready\", code: \"\", error: action.message };\n case \"tick\":\n return state.cooldown > 0 ? { ...state, cooldown: state.cooldown - 1 } : state;\n }\n}\n\nexport const canVerifyCode = (state: EmailCodeState): boolean =>\n state.status === \"ready\" && state.code.length === 6;\n\nexport const canResendCode = (state: EmailCodeState): boolean =>\n state.cooldown === 0 && state.status !== \"sending\" && state.status !== \"verifying\";\n"],"mappings":"AAAO,MAAM,0BAA0B;AAoBhC,MAAM,wBAAwC,EAAE,QAAQ,QAAQ,MAAM,IAAI,OAAO,MAAM,UAAU,EAAE;AAEnG,SAAS,iBAAiB,OAAuB,QAAyC;AAC/F,UAAQ,OAAO,MAAM;AAAA,IACnB,KAAK;AACH,aAAO,EAAE,GAAG,OAAO,MAAM,OAAO,KAAK,QAAQ,OAAO,EAAE,EAAE,MAAM,GAAG,CAAC,EAAE;AAAA,IACtE,KAAK;AACH,aAAO,EAAE,GAAG,OAAO,QAAQ,WAAW,OAAO,KAAK;AAAA,IACpD,KAAK;AACH,aAAO,EAAE,GAAG,OAAO,QAAQ,SAAS,OAAO,MAAM,UAAU,wBAAwB;AAAA,IACrF,KAAK;AACH,aAAO,EAAE,GAAG,OAAO,QAAQ,QAAQ,OAAO,OAAO,QAAQ;AAAA,IAC3D,KAAK;AACH,aAAO,EAAE,GAAG,OAAO,QAAQ,aAAa,OAAO,KAAK;AAAA,IACtD,KAAK;AACH,aAAO,EAAE,GAAG,OAAO,QAAQ,SAAS,MAAM,IAAI,OAAO,OAAO,QAAQ;AAAA,IACtE,KAAK;AACH,aAAO,MAAM,WAAW,IAAI,EAAE,GAAG,OAAO,UAAU,MAAM,WAAW,EAAE,IAAI;AAAA,EAC7E;AACF;AAEO,MAAM,gBAAgB,CAAC,UAC5B,MAAM,WAAW,WAAW,MAAM,KAAK,WAAW;AAE7C,MAAM,gBAAgB,CAAC,UAC5B,MAAM,aAAa,KAAK,MAAM,WAAW,aAAa,MAAM,WAAW;","names":[]}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var passkey_support_exports = {};
20
+ __export(passkey_support_exports, {
21
+ detectPasskeySupport: () => detectPasskeySupport
22
+ });
23
+ module.exports = __toCommonJS(passkey_support_exports);
24
+ async function detectPasskeySupport(api = typeof PublicKeyCredential === "undefined" ? void 0 : PublicKeyCredential) {
25
+ if (!api) return "unavailable";
26
+ if (typeof api.isUserVerifyingPlatformAuthenticatorAvailable !== "function") return "unknown";
27
+ try {
28
+ return await api.isUserVerifyingPlatformAuthenticatorAvailable() ? "available" : "unavailable";
29
+ } catch {
30
+ return "unknown";
31
+ }
32
+ }
33
+ // Annotate the CommonJS export names for ESM import in node:
34
+ 0 && (module.exports = {
35
+ detectPasskeySupport
36
+ });
37
+ //# sourceMappingURL=passkey-support.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/passkey-support.ts"],"sourcesContent":["export type PasskeySupport = \"available\" | \"unavailable\" | \"unknown\";\n\ninterface PlatformPasskeyApi {\n isUserVerifyingPlatformAuthenticatorAvailable?: () => Promise<boolean>;\n}\n\nexport async function detectPasskeySupport(\n api: PlatformPasskeyApi | undefined = typeof PublicKeyCredential === \"undefined\" ? undefined : PublicKeyCredential,\n): Promise<PasskeySupport> {\n if (!api) return \"unavailable\";\n if (typeof api.isUserVerifyingPlatformAuthenticatorAvailable !== \"function\") return \"unknown\";\n try {\n return (await api.isUserVerifyingPlatformAuthenticatorAvailable()) ? \"available\" : \"unavailable\";\n } catch {\n return \"unknown\";\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,eAAsB,qBACpB,MAAsC,OAAO,wBAAwB,cAAc,SAAY,qBACtE;AACzB,MAAI,CAAC,IAAK,QAAO;AACjB,MAAI,OAAO,IAAI,kDAAkD,WAAY,QAAO;AACpF,MAAI;AACF,WAAQ,MAAM,IAAI,8CAA8C,IAAK,cAAc;AAAA,EACrF,QAAQ;AACN,WAAO;AAAA,EACT;AACF;","names":[]}
@@ -0,0 +1,7 @@
1
+ type PasskeySupport = "available" | "unavailable" | "unknown";
2
+ interface PlatformPasskeyApi {
3
+ isUserVerifyingPlatformAuthenticatorAvailable?: () => Promise<boolean>;
4
+ }
5
+ declare function detectPasskeySupport(api?: PlatformPasskeyApi | undefined): Promise<PasskeySupport>;
6
+
7
+ export { type PasskeySupport, detectPasskeySupport };
@@ -0,0 +1,7 @@
1
+ type PasskeySupport = "available" | "unavailable" | "unknown";
2
+ interface PlatformPasskeyApi {
3
+ isUserVerifyingPlatformAuthenticatorAvailable?: () => Promise<boolean>;
4
+ }
5
+ declare function detectPasskeySupport(api?: PlatformPasskeyApi | undefined): Promise<PasskeySupport>;
6
+
7
+ export { type PasskeySupport, detectPasskeySupport };
@@ -0,0 +1,13 @@
1
+ async function detectPasskeySupport(api = typeof PublicKeyCredential === "undefined" ? void 0 : PublicKeyCredential) {
2
+ if (!api) return "unavailable";
3
+ if (typeof api.isUserVerifyingPlatformAuthenticatorAvailable !== "function") return "unknown";
4
+ try {
5
+ return await api.isUserVerifyingPlatformAuthenticatorAvailable() ? "available" : "unavailable";
6
+ } catch {
7
+ return "unknown";
8
+ }
9
+ }
10
+ export {
11
+ detectPasskeySupport
12
+ };
13
+ //# sourceMappingURL=passkey-support.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/passkey-support.ts"],"sourcesContent":["export type PasskeySupport = \"available\" | \"unavailable\" | \"unknown\";\n\ninterface PlatformPasskeyApi {\n isUserVerifyingPlatformAuthenticatorAvailable?: () => Promise<boolean>;\n}\n\nexport async function detectPasskeySupport(\n api: PlatformPasskeyApi | undefined = typeof PublicKeyCredential === \"undefined\" ? undefined : PublicKeyCredential,\n): Promise<PasskeySupport> {\n if (!api) return \"unavailable\";\n if (typeof api.isUserVerifyingPlatformAuthenticatorAvailable !== \"function\") return \"unknown\";\n try {\n return (await api.isUserVerifyingPlatformAuthenticatorAvailable()) ? \"available\" : \"unavailable\";\n } catch {\n return \"unknown\";\n }\n}\n"],"mappings":"AAMA,eAAsB,qBACpB,MAAsC,OAAO,wBAAwB,cAAc,SAAY,qBACtE;AACzB,MAAI,CAAC,IAAK,QAAO;AACjB,MAAI,OAAO,IAAI,kDAAkD,WAAY,QAAO;AACpF,MAAI;AACF,WAAQ,MAAM,IAAI,8CAA8C,IAAK,cAAc;AAAA,EACrF,QAAQ;AACN,WAAO;AAAA,EACT;AACF;","names":[]}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var wallet_failure_exports = {};
20
+ __export(wallet_failure_exports, {
21
+ describeWalletFailure: () => describeWalletFailure,
22
+ isPasskeyCancelled: () => isPasskeyCancelled
23
+ });
24
+ module.exports = __toCommonJS(wallet_failure_exports);
25
+ const isPasskeyCancelled = (err) => typeof err === "object" && err !== null && err.name === "PasskeyCancelledError";
26
+ const message = (err) => err instanceof Error ? err.message : "";
27
+ function describeWalletFailure(err, support = "unknown") {
28
+ const raw = message(err);
29
+ if (isPasskeyCancelled(err)) {
30
+ return support === "unavailable" ? {
31
+ kind: "no-passkeys",
32
+ message: "Passkeys aren't available in this window. Open Medialane in a regular browser window (not Guest or Incognito) and try again.",
33
+ canRetry: true
34
+ } : {
35
+ kind: "cancelled",
36
+ message: "The passkey prompt was closed. Try again to finish setting up your account. If your browser says your device can't be used, open Medialane in a regular browser window (not Guest or Incognito).",
37
+ canRetry: true
38
+ };
39
+ }
40
+ if (/PRF/.test(raw)) {
41
+ return { kind: "unsupported-browser", message: "Browser not supported. Please try another browser.", canRetry: false };
42
+ }
43
+ if (/has not appeared|submitted but/i.test(raw)) {
44
+ return {
45
+ kind: "still-deploying",
46
+ message: "Your wallet is still being set up. Give it a minute, then try again. Nothing is lost.",
47
+ canRetry: true
48
+ };
49
+ }
50
+ if (/deploy/i.test(raw)) {
51
+ return { kind: "deployment", message: "We couldn't finish setting up your wallet. Please try again in a moment.", canRetry: true };
52
+ }
53
+ if (/failed to fetch|networkerror|load failed|network request failed/i.test(raw)) {
54
+ return { kind: "network", message: "We couldn't reach Medialane. Check your connection and try again.", canRetry: true };
55
+ }
56
+ return { kind: "unknown", message: "We couldn't finish setting up your account. Please try again.", canRetry: true };
57
+ }
58
+ // Annotate the CommonJS export names for ESM import in node:
59
+ 0 && (module.exports = {
60
+ describeWalletFailure,
61
+ isPasskeyCancelled
62
+ });
63
+ //# sourceMappingURL=wallet-failure.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/wallet-failure.ts"],"sourcesContent":["import type { PasskeySupport } from \"./passkey-support.js\";\n\nexport type WalletFailureKind =\n | \"cancelled\"\n | \"no-passkeys\"\n | \"unsupported-browser\"\n | \"network\"\n | \"still-deploying\"\n | \"deployment\"\n | \"unknown\";\n\nexport interface WalletFailureNotice {\n kind: WalletFailureKind;\n message: string;\n canRetry: boolean;\n}\n\nexport const isPasskeyCancelled = (err: unknown): boolean =>\n typeof err === \"object\" && err !== null && (err as { name?: unknown }).name === \"PasskeyCancelledError\";\n\nconst message = (err: unknown): string => (err instanceof Error ? err.message : \"\");\n\nexport function describeWalletFailure(err: unknown, support: PasskeySupport = \"unknown\"): WalletFailureNotice {\n const raw = message(err);\n\n if (isPasskeyCancelled(err)) {\n return support === \"unavailable\"\n ? {\n kind: \"no-passkeys\",\n message: \"Passkeys aren't available in this window. Open Medialane in a regular browser window (not Guest or Incognito) and try again.\",\n canRetry: true,\n }\n : {\n kind: \"cancelled\",\n message:\n \"The passkey prompt was closed. Try again to finish setting up your account. If your browser says your device can't be used, open Medialane in a regular browser window (not Guest or Incognito).\",\n canRetry: true,\n };\n }\n\n if (/PRF/.test(raw)) {\n return { kind: \"unsupported-browser\", message: \"Browser not supported. Please try another browser.\", canRetry: false };\n }\n\n if (/has not appeared|submitted but/i.test(raw)) {\n return {\n kind: \"still-deploying\",\n message: \"Your wallet is still being set up. Give it a minute, then try again. Nothing is lost.\",\n canRetry: true,\n };\n }\n\n if (/deploy/i.test(raw)) {\n return { kind: \"deployment\", message: \"We couldn't finish setting up your wallet. Please try again in a moment.\", canRetry: true };\n }\n\n if (/failed to fetch|networkerror|load failed|network request failed/i.test(raw)) {\n return { kind: \"network\", message: \"We couldn't reach Medialane. Check your connection and try again.\", canRetry: true };\n }\n\n return { kind: \"unknown\", message: \"We couldn't finish setting up your account. Please try again.\", canRetry: true };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAiBO,MAAM,qBAAqB,CAAC,QACjC,OAAO,QAAQ,YAAY,QAAQ,QAAS,IAA2B,SAAS;AAElF,MAAM,UAAU,CAAC,QAA0B,eAAe,QAAQ,IAAI,UAAU;AAEzE,SAAS,sBAAsB,KAAc,UAA0B,WAAgC;AAC5G,QAAM,MAAM,QAAQ,GAAG;AAEvB,MAAI,mBAAmB,GAAG,GAAG;AAC3B,WAAO,YAAY,gBACf;AAAA,MACE,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,IACZ,IACA;AAAA,MACE,MAAM;AAAA,MACN,SACE;AAAA,MACF,UAAU;AAAA,IACZ;AAAA,EACN;AAEA,MAAI,MAAM,KAAK,GAAG,GAAG;AACnB,WAAO,EAAE,MAAM,uBAAuB,SAAS,sDAAsD,UAAU,MAAM;AAAA,EACvH;AAEA,MAAI,kCAAkC,KAAK,GAAG,GAAG;AAC/C,WAAO;AAAA,MACL,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,IACZ;AAAA,EACF;AAEA,MAAI,UAAU,KAAK,GAAG,GAAG;AACvB,WAAO,EAAE,MAAM,cAAc,SAAS,4EAA4E,UAAU,KAAK;AAAA,EACnI;AAEA,MAAI,mEAAmE,KAAK,GAAG,GAAG;AAChF,WAAO,EAAE,MAAM,WAAW,SAAS,qEAAqE,UAAU,KAAK;AAAA,EACzH;AAEA,SAAO,EAAE,MAAM,WAAW,SAAS,iEAAiE,UAAU,KAAK;AACrH;","names":[]}
@@ -0,0 +1,12 @@
1
+ import { PasskeySupport } from './passkey-support.cjs';
2
+
3
+ type WalletFailureKind = "cancelled" | "no-passkeys" | "unsupported-browser" | "network" | "still-deploying" | "deployment" | "unknown";
4
+ interface WalletFailureNotice {
5
+ kind: WalletFailureKind;
6
+ message: string;
7
+ canRetry: boolean;
8
+ }
9
+ declare const isPasskeyCancelled: (err: unknown) => boolean;
10
+ declare function describeWalletFailure(err: unknown, support?: PasskeySupport): WalletFailureNotice;
11
+
12
+ export { type WalletFailureKind, type WalletFailureNotice, describeWalletFailure, isPasskeyCancelled };
@@ -0,0 +1,12 @@
1
+ import { PasskeySupport } from './passkey-support.js';
2
+
3
+ type WalletFailureKind = "cancelled" | "no-passkeys" | "unsupported-browser" | "network" | "still-deploying" | "deployment" | "unknown";
4
+ interface WalletFailureNotice {
5
+ kind: WalletFailureKind;
6
+ message: string;
7
+ canRetry: boolean;
8
+ }
9
+ declare const isPasskeyCancelled: (err: unknown) => boolean;
10
+ declare function describeWalletFailure(err: unknown, support?: PasskeySupport): WalletFailureNotice;
11
+
12
+ export { type WalletFailureKind, type WalletFailureNotice, describeWalletFailure, isPasskeyCancelled };
@@ -0,0 +1,38 @@
1
+ const isPasskeyCancelled = (err) => typeof err === "object" && err !== null && err.name === "PasskeyCancelledError";
2
+ const message = (err) => err instanceof Error ? err.message : "";
3
+ function describeWalletFailure(err, support = "unknown") {
4
+ const raw = message(err);
5
+ if (isPasskeyCancelled(err)) {
6
+ return support === "unavailable" ? {
7
+ kind: "no-passkeys",
8
+ message: "Passkeys aren't available in this window. Open Medialane in a regular browser window (not Guest or Incognito) and try again.",
9
+ canRetry: true
10
+ } : {
11
+ kind: "cancelled",
12
+ message: "The passkey prompt was closed. Try again to finish setting up your account. If your browser says your device can't be used, open Medialane in a regular browser window (not Guest or Incognito).",
13
+ canRetry: true
14
+ };
15
+ }
16
+ if (/PRF/.test(raw)) {
17
+ return { kind: "unsupported-browser", message: "Browser not supported. Please try another browser.", canRetry: false };
18
+ }
19
+ if (/has not appeared|submitted but/i.test(raw)) {
20
+ return {
21
+ kind: "still-deploying",
22
+ message: "Your wallet is still being set up. Give it a minute, then try again. Nothing is lost.",
23
+ canRetry: true
24
+ };
25
+ }
26
+ if (/deploy/i.test(raw)) {
27
+ return { kind: "deployment", message: "We couldn't finish setting up your wallet. Please try again in a moment.", canRetry: true };
28
+ }
29
+ if (/failed to fetch|networkerror|load failed|network request failed/i.test(raw)) {
30
+ return { kind: "network", message: "We couldn't reach Medialane. Check your connection and try again.", canRetry: true };
31
+ }
32
+ return { kind: "unknown", message: "We couldn't finish setting up your account. Please try again.", canRetry: true };
33
+ }
34
+ export {
35
+ describeWalletFailure,
36
+ isPasskeyCancelled
37
+ };
38
+ //# sourceMappingURL=wallet-failure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/wallet-failure.ts"],"sourcesContent":["import type { PasskeySupport } from \"./passkey-support.js\";\n\nexport type WalletFailureKind =\n | \"cancelled\"\n | \"no-passkeys\"\n | \"unsupported-browser\"\n | \"network\"\n | \"still-deploying\"\n | \"deployment\"\n | \"unknown\";\n\nexport interface WalletFailureNotice {\n kind: WalletFailureKind;\n message: string;\n canRetry: boolean;\n}\n\nexport const isPasskeyCancelled = (err: unknown): boolean =>\n typeof err === \"object\" && err !== null && (err as { name?: unknown }).name === \"PasskeyCancelledError\";\n\nconst message = (err: unknown): string => (err instanceof Error ? err.message : \"\");\n\nexport function describeWalletFailure(err: unknown, support: PasskeySupport = \"unknown\"): WalletFailureNotice {\n const raw = message(err);\n\n if (isPasskeyCancelled(err)) {\n return support === \"unavailable\"\n ? {\n kind: \"no-passkeys\",\n message: \"Passkeys aren't available in this window. Open Medialane in a regular browser window (not Guest or Incognito) and try again.\",\n canRetry: true,\n }\n : {\n kind: \"cancelled\",\n message:\n \"The passkey prompt was closed. Try again to finish setting up your account. If your browser says your device can't be used, open Medialane in a regular browser window (not Guest or Incognito).\",\n canRetry: true,\n };\n }\n\n if (/PRF/.test(raw)) {\n return { kind: \"unsupported-browser\", message: \"Browser not supported. Please try another browser.\", canRetry: false };\n }\n\n if (/has not appeared|submitted but/i.test(raw)) {\n return {\n kind: \"still-deploying\",\n message: \"Your wallet is still being set up. Give it a minute, then try again. Nothing is lost.\",\n canRetry: true,\n };\n }\n\n if (/deploy/i.test(raw)) {\n return { kind: \"deployment\", message: \"We couldn't finish setting up your wallet. Please try again in a moment.\", canRetry: true };\n }\n\n if (/failed to fetch|networkerror|load failed|network request failed/i.test(raw)) {\n return { kind: \"network\", message: \"We couldn't reach Medialane. Check your connection and try again.\", canRetry: true };\n }\n\n return { kind: \"unknown\", message: \"We couldn't finish setting up your account. Please try again.\", canRetry: true };\n}\n"],"mappings":"AAiBO,MAAM,qBAAqB,CAAC,QACjC,OAAO,QAAQ,YAAY,QAAQ,QAAS,IAA2B,SAAS;AAElF,MAAM,UAAU,CAAC,QAA0B,eAAe,QAAQ,IAAI,UAAU;AAEzE,SAAS,sBAAsB,KAAc,UAA0B,WAAgC;AAC5G,QAAM,MAAM,QAAQ,GAAG;AAEvB,MAAI,mBAAmB,GAAG,GAAG;AAC3B,WAAO,YAAY,gBACf;AAAA,MACE,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,IACZ,IACA;AAAA,MACE,MAAM;AAAA,MACN,SACE;AAAA,MACF,UAAU;AAAA,IACZ;AAAA,EACN;AAEA,MAAI,MAAM,KAAK,GAAG,GAAG;AACnB,WAAO,EAAE,MAAM,uBAAuB,SAAS,sDAAsD,UAAU,MAAM;AAAA,EACvH;AAEA,MAAI,kCAAkC,KAAK,GAAG,GAAG;AAC/C,WAAO;AAAA,MACL,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,IACZ;AAAA,EACF;AAEA,MAAI,UAAU,KAAK,GAAG,GAAG;AACvB,WAAO,EAAE,MAAM,cAAc,SAAS,4EAA4E,UAAU,KAAK;AAAA,EACnI;AAEA,MAAI,mEAAmE,KAAK,GAAG,GAAG;AAChF,WAAO,EAAE,MAAM,WAAW,SAAS,qEAAqE,UAAU,KAAK;AAAA,EACzH;AAEA,SAAO,EAAE,MAAM,WAAW,SAAS,iEAAiE,UAAU,KAAK;AACrH;","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@medialane/ui",
3
- "version": "0.173.0",
3
+ "version": "0.175.0",
4
4
  "description": "Shared UI components for Medialane apps",
5
5
  "type": "module",
6
6
  "sideEffects": false,