mppx 0.5.3 → 0.5.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/dist/cli/cli.d.ts.map +1 -1
- package/dist/cli/cli.js +11 -9
- package/dist/cli/cli.js.map +1 -1
- package/dist/cli/plugins/tempo.d.ts.map +1 -1
- package/dist/cli/plugins/tempo.js +3 -3
- package/dist/cli/plugins/tempo.js.map +1 -1
- package/dist/cli/utils.d.ts +2 -0
- package/dist/cli/utils.d.ts.map +1 -1
- package/dist/cli/utils.js +10 -5
- package/dist/cli/utils.js.map +1 -1
- package/dist/server/Transport.d.ts.map +1 -1
- package/dist/server/Transport.js +40 -21
- package/dist/server/Transport.js.map +1 -1
- package/dist/server/internal/html/config.d.ts +137 -0
- package/dist/server/internal/html/config.d.ts.map +1 -1
- package/dist/server/internal/html/config.js +300 -0
- package/dist/server/internal/html/config.js.map +1 -1
- package/dist/stripe/internal/types.d.ts +6 -0
- package/dist/stripe/internal/types.d.ts.map +1 -1
- package/dist/stripe/server/Charge.d.ts +25 -16
- package/dist/stripe/server/Charge.d.ts.map +1 -1
- package/dist/stripe/server/Charge.js +23 -2
- package/dist/stripe/server/Charge.js.map +1 -1
- package/dist/stripe/server/internal/html/types.d.ts +2 -0
- package/dist/stripe/server/internal/html/types.d.ts.map +1 -0
- package/dist/stripe/server/internal/html/types.js +2 -0
- package/dist/stripe/server/internal/html/types.js.map +1 -0
- package/dist/stripe/server/internal/html.gen.d.ts +1 -1
- package/dist/stripe/server/internal/html.gen.d.ts.map +1 -1
- package/dist/stripe/server/internal/html.gen.js +1 -1
- package/dist/stripe/server/internal/html.gen.js.map +1 -1
- package/dist/tempo/server/Charge.d.ts +32 -27
- package/dist/tempo/server/Charge.d.ts.map +1 -1
- package/dist/tempo/server/Charge.js +32 -3
- package/dist/tempo/server/Charge.js.map +1 -1
- package/dist/tempo/server/internal/html.gen.d.ts +1 -1
- package/dist/tempo/server/internal/html.gen.d.ts.map +1 -1
- package/dist/tempo/server/internal/html.gen.js +1 -1
- package/dist/tempo/server/internal/html.gen.js.map +1 -1
- package/package.json +1 -1
- package/src/cli/cli.ts +11 -8
- package/src/cli/plugins/tempo.ts +3 -2
- package/src/cli/utils.test.ts +64 -0
- package/src/cli/utils.ts +10 -4
- package/src/server/Transport.test.ts +216 -0
- package/src/server/Transport.ts +47 -24
- package/src/server/internal/html/config.ts +406 -0
- package/src/stripe/internal/types.ts +20 -0
- package/src/stripe/server/Charge.ts +46 -4
- package/src/stripe/server/internal/html/main.ts +87 -19
- package/src/stripe/server/internal/html/types.ts +5 -0
- package/src/stripe/server/internal/html.gen.ts +1 -1
- package/src/tempo/server/Charge.ts +46 -4
- package/src/tempo/server/internal/html/main.ts +51 -11
- package/src/tempo/server/internal/html/package.json +1 -1
- package/src/tempo/server/internal/html.gen.ts +1 -1
package/dist/server/Transport.js
CHANGED
|
@@ -5,6 +5,7 @@ import * as Errors from '../Errors.js';
|
|
|
5
5
|
import * as core_Mcp from '../Mcp.js';
|
|
6
6
|
import * as Receipt from '../Receipt.js';
|
|
7
7
|
import * as Html from './internal/html/config.js';
|
|
8
|
+
import { html } from './internal/html/config.js';
|
|
8
9
|
import { serviceWorker } from './internal/html/serviceWorker.gen.js';
|
|
9
10
|
export { mcpSdk } from '../mcp-sdk/server/Transport.js';
|
|
10
11
|
/**
|
|
@@ -44,7 +45,7 @@ export function http() {
|
|
|
44
45
|
return null;
|
|
45
46
|
return Credential.deserialize(payment);
|
|
46
47
|
},
|
|
47
|
-
respondChallenge(options) {
|
|
48
|
+
async respondChallenge(options) {
|
|
48
49
|
const { challenge, error, input } = options;
|
|
49
50
|
if (options.html && new URL(input.url).searchParams.has(Html.serviceWorkerParam))
|
|
50
51
|
return new Response(serviceWorker, {
|
|
@@ -58,35 +59,53 @@ export function http() {
|
|
|
58
59
|
'WWW-Authenticate': Challenge.serialize(challenge),
|
|
59
60
|
'Cache-Control': 'no-store',
|
|
60
61
|
};
|
|
61
|
-
const body = (() => {
|
|
62
|
+
const body = await (async () => {
|
|
62
63
|
if (options.html && input.headers.get('Accept')?.includes('text/html')) {
|
|
63
64
|
headers['Content-Type'] = 'text/html; charset=utf-8';
|
|
64
|
-
const
|
|
65
|
+
const theme = Html.mergeDefined({
|
|
66
|
+
favicon: undefined,
|
|
67
|
+
fontUrl: undefined,
|
|
68
|
+
logo: undefined,
|
|
69
|
+
...Html.defaultTheme,
|
|
70
|
+
}, options.html.theme ?? {});
|
|
71
|
+
const text = Html.sanitizeRecord(Html.mergeDefined(Html.defaultText, options.html.text ?? {}));
|
|
72
|
+
const amount = await options.html.formatAmount(challenge.request);
|
|
65
73
|
return html `<!doctype html>
|
|
66
74
|
<html lang="en">
|
|
67
75
|
<head>
|
|
68
76
|
<meta charset="UTF-8" />
|
|
69
77
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
70
|
-
<
|
|
71
|
-
<
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
}
|
|
75
|
-
</style>
|
|
78
|
+
<meta name="robots" content="noindex" />
|
|
79
|
+
<meta name="color-scheme" content="${theme.colorScheme}" />
|
|
80
|
+
<title>${text.title}</title>
|
|
81
|
+
${Html.favicon(theme, challenge.realm)} ${Html.font(theme)} ${Html.style(theme)}
|
|
76
82
|
</head>
|
|
77
83
|
<body>
|
|
78
|
-
<
|
|
79
|
-
|
|
80
|
-
${
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
84
|
+
<main>
|
|
85
|
+
<header class="${Html.classNames.header}">
|
|
86
|
+
${Html.logo(theme)}
|
|
87
|
+
<span>${text.paymentRequired}</span>
|
|
88
|
+
</header>
|
|
89
|
+
<section class="${Html.classNames.summary}" aria-label="Payment summary">
|
|
90
|
+
<h1 class="${Html.classNames.summaryAmount}">${Html.sanitize(amount)}</h1>
|
|
91
|
+
${challenge.description
|
|
92
|
+
? `<p class="${Html.classNames.summaryDescription}">${Html.sanitize(challenge.description)}</p>`
|
|
93
|
+
: ''}
|
|
94
|
+
${challenge.expires
|
|
95
|
+
? `<p class="${Html.classNames.summaryExpires}">${text.expires} <time datetime="${new Date(challenge.expires).toISOString()}">${new Date(challenge.expires).toLocaleString()}</time></p>`
|
|
96
|
+
: ''}
|
|
97
|
+
</section>
|
|
98
|
+
<div id="${Html.rootId}" aria-label="Payment form"></div>
|
|
99
|
+
<script id="${Html.dataId}" type="application/json">
|
|
100
|
+
${Json.stringify({
|
|
101
|
+
config: options.html.config,
|
|
102
|
+
challenge,
|
|
103
|
+
text,
|
|
104
|
+
theme,
|
|
105
|
+
}).replace(/</g, '\\u003c')}
|
|
106
|
+
</script>
|
|
107
|
+
${options.html.content}
|
|
108
|
+
</main>
|
|
90
109
|
</body>
|
|
91
110
|
</html> `;
|
|
92
111
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Transport.js","sourceRoot":"","sources":["../../src/server/Transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAA;AAEzB,OAAO,KAAK,SAAS,MAAM,iBAAiB,CAAA;AAC5C,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAA;AAC9C,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AAEtC,OAAO,KAAK,QAAQ,MAAM,WAAW,CAAA;AACrC,OAAO,KAAK,OAAO,MAAM,eAAe,CAAA;AACxC,OAAO,KAAK,IAAI,MAAM,2BAA2B,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAA;AAEpE,OAAO,EAAe,MAAM,EAAE,MAAM,gCAAgC,CAAA;AA0EpE;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,IAAI,CAMlB,SAA4E;IAE5E,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,IAAI;IAClB,OAAO,IAAI,CAAoB;QAC7B,IAAI,EAAE,MAAM;QAEZ,aAAa,CAAC,OAAO;YACnB,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;YACnD,IAAI,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAA;YACxB,MAAM,OAAO,GAAG,UAAU,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAA;YACvD,IAAI,CAAC,OAAO;gBAAE,OAAO,IAAI,CAAA;YACzB,OAAO,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;QACxC,CAAC;QAED,gBAAgB,CAAC,OAAO;
|
|
1
|
+
{"version":3,"file":"Transport.js","sourceRoot":"","sources":["../../src/server/Transport.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,144 @@
|
|
|
1
|
+
import type * as Challenge from '../../../Challenge.js';
|
|
2
|
+
import type * as Method from '../../../Method.js';
|
|
1
3
|
export type Options = {
|
|
2
4
|
config: Record<string, unknown>;
|
|
3
5
|
content: string;
|
|
6
|
+
formatAmount: (request: any) => string | Promise<string>;
|
|
7
|
+
text: Text | undefined;
|
|
8
|
+
theme: Theme | undefined;
|
|
9
|
+
};
|
|
10
|
+
export type Data<method extends Method.Method = Method.Method, config extends Record<string, unknown> = {}> = {
|
|
11
|
+
config: config;
|
|
12
|
+
challenge: Challenge.FromMethods<[method]>;
|
|
13
|
+
text: {
|
|
14
|
+
[k in keyof Text]-?: NonNullable<Text[k]>;
|
|
15
|
+
};
|
|
16
|
+
theme: {
|
|
17
|
+
[k in keyof Omit<Theme, 'favicon' | 'fontUrl' | 'logo'>]-?: NonNullable<Theme[k]>;
|
|
18
|
+
};
|
|
4
19
|
};
|
|
5
20
|
export declare const dataId = "__MPPX_DATA__";
|
|
21
|
+
export declare const errorId = "root_error";
|
|
22
|
+
export declare const rootId = "root";
|
|
6
23
|
export declare const serviceWorkerParam = "__mppx_worker";
|
|
24
|
+
export declare const classNames: {
|
|
25
|
+
error: string;
|
|
26
|
+
header: string;
|
|
27
|
+
logo: string;
|
|
28
|
+
logoColorScheme: (colorScheme: string) => string | undefined;
|
|
29
|
+
summary: string;
|
|
30
|
+
summaryAmount: string;
|
|
31
|
+
summaryDescription: string;
|
|
32
|
+
summaryExpires: string;
|
|
33
|
+
};
|
|
34
|
+
export declare function sanitize(str: string): string;
|
|
35
|
+
export declare function sanitizeRecord<type extends Record<string, string>>(record: type): type;
|
|
36
|
+
export declare const html: (template: {
|
|
37
|
+
raw: readonly string[] | ArrayLike<string>;
|
|
38
|
+
}, ...substitutions: any[]) => string;
|
|
39
|
+
declare class CssVar {
|
|
40
|
+
readonly name: string;
|
|
41
|
+
constructor(token: string);
|
|
42
|
+
toString(): string;
|
|
43
|
+
}
|
|
44
|
+
export declare const vars: {
|
|
45
|
+
readonly accent: CssVar;
|
|
46
|
+
readonly background: CssVar;
|
|
47
|
+
readonly border: CssVar;
|
|
48
|
+
readonly foreground: CssVar;
|
|
49
|
+
readonly muted: CssVar;
|
|
50
|
+
readonly negative: CssVar;
|
|
51
|
+
readonly positive: CssVar;
|
|
52
|
+
readonly surface: CssVar;
|
|
53
|
+
readonly fontFamily: CssVar;
|
|
54
|
+
readonly fontSizeBase: CssVar;
|
|
55
|
+
readonly radius: CssVar;
|
|
56
|
+
readonly spacingUnit: CssVar;
|
|
57
|
+
};
|
|
58
|
+
export declare function font(theme: Theme): string;
|
|
59
|
+
export declare function style(theme: {
|
|
60
|
+
[k in keyof Omit<Theme, 'favicon' | 'fontUrl' | 'logo'>]-?: NonNullable<Theme[k]>;
|
|
61
|
+
}): string;
|
|
62
|
+
export declare function showError(message: string): void;
|
|
63
|
+
export declare function favicon(theme: Theme, realm: string): string;
|
|
64
|
+
export declare function logo(value: Theme): string;
|
|
65
|
+
export type Text = {
|
|
66
|
+
/** Prefix for the expiry line. @default 'Expires at' */
|
|
67
|
+
expires?: string | undefined;
|
|
68
|
+
/** Pay button label. @default 'Pay' */
|
|
69
|
+
pay?: string | undefined;
|
|
70
|
+
/** Badge label. @default 'Payment Required' */
|
|
71
|
+
paymentRequired?: string | undefined;
|
|
72
|
+
/** Page title. @default text.paymentRequired */
|
|
73
|
+
title?: string | undefined;
|
|
74
|
+
};
|
|
75
|
+
export declare const defaultText: {
|
|
76
|
+
readonly expires: "Expires at";
|
|
77
|
+
readonly pay: "Pay";
|
|
78
|
+
readonly paymentRequired: "Payment Required";
|
|
79
|
+
readonly title: "Payment Required";
|
|
80
|
+
};
|
|
81
|
+
export type Theme = {
|
|
82
|
+
/** Color scheme. @default 'light dark' */
|
|
83
|
+
colorScheme?: 'light' | 'dark' | 'light dark' | undefined;
|
|
84
|
+
/** Font family. @default 'system-ui, -apple-system, sans-serif' */
|
|
85
|
+
fontFamily?: string | undefined;
|
|
86
|
+
/** Base font size. @default '16px' */
|
|
87
|
+
fontSizeBase?: string | undefined;
|
|
88
|
+
/** Font URL to inject (e.g. Google Fonts `<link>`). */
|
|
89
|
+
fontUrl?: string | undefined;
|
|
90
|
+
/** Favicon URL. Light/dark variants supported. Falls back to host's favicon via Google S2 service. */
|
|
91
|
+
favicon?: string | {
|
|
92
|
+
light: string;
|
|
93
|
+
dark: string;
|
|
94
|
+
} | undefined;
|
|
95
|
+
/** Logo URL shown in header. Light/dark variants supported. */
|
|
96
|
+
logo?: string | {
|
|
97
|
+
light: string;
|
|
98
|
+
dark: string;
|
|
99
|
+
} | undefined;
|
|
100
|
+
/** Border radius. @default '6px' */
|
|
101
|
+
radius?: string | undefined;
|
|
102
|
+
/** The base spacing unit that all other spacing is derived from. Increase or decrease this value to make your layout more or less spacious. @default '2px' */
|
|
103
|
+
spacingUnit?: string | undefined;
|
|
104
|
+
/** Accent color (buttons, links). @default ['#171717', '#ededed'] */
|
|
105
|
+
accent?: LightDark | undefined;
|
|
106
|
+
/** Page background. @default ['#ffffff', '#0a0a0a'] */
|
|
107
|
+
background?: LightDark | undefined;
|
|
108
|
+
/** Border color. @default ['#e5e5e5', '#2e2e2e'] */
|
|
109
|
+
border?: LightDark | undefined;
|
|
110
|
+
/** Primary text/content color. @default ['#0a0a0a', '#ededed'] */
|
|
111
|
+
foreground?: LightDark | undefined;
|
|
112
|
+
/** Secondary/muted text. @default ['#666666', '#a1a1a1'] */
|
|
113
|
+
muted?: LightDark | undefined;
|
|
114
|
+
/** Error/danger color. @default ['#e5484d', '#e5484d'] */
|
|
115
|
+
negative?: LightDark | undefined;
|
|
116
|
+
/** Success color. @default ['#30a46c', '#30a46c'] */
|
|
117
|
+
positive?: LightDark | undefined;
|
|
118
|
+
/** Input/card surface. @default ['#f5f5f5', '#1a1a1a'] */
|
|
119
|
+
surface?: LightDark | undefined;
|
|
120
|
+
};
|
|
121
|
+
export type LightDark = string | readonly [light: string, dark: string];
|
|
122
|
+
export declare const defaultTheme: {
|
|
123
|
+
readonly colorScheme: "light dark";
|
|
124
|
+
readonly fontFamily: "system-ui, -apple-system, sans-serif";
|
|
125
|
+
readonly fontSizeBase: "16px";
|
|
126
|
+
readonly radius: "6px";
|
|
127
|
+
readonly spacingUnit: "2px";
|
|
128
|
+
readonly accent: readonly ["#171717", "#ededed"];
|
|
129
|
+
readonly background: readonly ["#ffffff", "#0a0a0a"];
|
|
130
|
+
readonly border: readonly ["#e5e5e5", "#2e2e2e"];
|
|
131
|
+
readonly foreground: readonly ["#0a0a0a", "#ededed"];
|
|
132
|
+
readonly muted: readonly ["#666666", "#a1a1a1"];
|
|
133
|
+
readonly negative: readonly ["#e5484d", "#e5484d"];
|
|
134
|
+
readonly positive: readonly ["#30a46c", "#30a46c"];
|
|
135
|
+
readonly surface: readonly ["#f5f5f5", "#1a1a1a"];
|
|
136
|
+
};
|
|
137
|
+
export declare const colorTokens: readonly ["accent", "negative", "positive", "background", "foreground", "muted", "surface", "border"];
|
|
138
|
+
export declare function resolveColor(value: Theme[(typeof colorTokens)[number]] | undefined, fallback: readonly [string, string]): readonly [light: string, dark: string];
|
|
139
|
+
export declare function mergeDefined<type>(defaults: type, value: DeepPartial<type> | undefined): type;
|
|
140
|
+
type DeepPartial<type> = {
|
|
141
|
+
[key in keyof type]?: type[key] extends readonly unknown[] ? type[key] | undefined : type[key] extends object ? DeepPartial<type[key]> | undefined : type[key] | undefined;
|
|
142
|
+
};
|
|
143
|
+
export {};
|
|
7
144
|
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/server/internal/html/config.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,GAAG;IACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC/B,OAAO,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/server/internal/html/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,303 @@
|
|
|
1
1
|
export const dataId = '__MPPX_DATA__';
|
|
2
|
+
export const errorId = 'root_error';
|
|
3
|
+
export const rootId = 'root';
|
|
2
4
|
export const serviceWorkerParam = '__mppx_worker';
|
|
5
|
+
export const classNames = {
|
|
6
|
+
error: 'mppx-error',
|
|
7
|
+
header: 'mppx-header',
|
|
8
|
+
logo: 'mppx-logo',
|
|
9
|
+
logoColorScheme: (colorScheme) => colorScheme === 'dark' || colorScheme === 'light'
|
|
10
|
+
? `${classNames.logo}--${colorScheme}`
|
|
11
|
+
: undefined,
|
|
12
|
+
summary: 'mppx-summary',
|
|
13
|
+
summaryAmount: 'mppx-summary-amount',
|
|
14
|
+
summaryDescription: 'mppx-summary-description',
|
|
15
|
+
summaryExpires: 'mppx-summary-expires',
|
|
16
|
+
};
|
|
17
|
+
export function sanitize(str) {
|
|
18
|
+
return str
|
|
19
|
+
.replace(/&/g, '&')
|
|
20
|
+
.replace(/</g, '<')
|
|
21
|
+
.replace(/>/g, '>')
|
|
22
|
+
.replace(/"/g, '"')
|
|
23
|
+
.replace(/'/g, ''');
|
|
24
|
+
}
|
|
25
|
+
export function sanitizeRecord(record) {
|
|
26
|
+
return Object.fromEntries(Object.entries(record).map(([key, value]) => [key, sanitize(value)]));
|
|
27
|
+
}
|
|
28
|
+
export const html = String.raw;
|
|
29
|
+
class CssVar {
|
|
30
|
+
name;
|
|
31
|
+
constructor(token) {
|
|
32
|
+
this.name = `--mppx-${token}`;
|
|
33
|
+
}
|
|
34
|
+
toString() {
|
|
35
|
+
return `var(${this.name})`;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
export const vars = {
|
|
39
|
+
accent: new CssVar('accent'),
|
|
40
|
+
background: new CssVar('background'),
|
|
41
|
+
border: new CssVar('border'),
|
|
42
|
+
foreground: new CssVar('foreground'),
|
|
43
|
+
muted: new CssVar('muted'),
|
|
44
|
+
negative: new CssVar('negative'),
|
|
45
|
+
positive: new CssVar('positive'),
|
|
46
|
+
surface: new CssVar('surface'),
|
|
47
|
+
fontFamily: new CssVar('font-family'),
|
|
48
|
+
fontSizeBase: new CssVar('font-size-base'),
|
|
49
|
+
radius: new CssVar('radius'),
|
|
50
|
+
spacingUnit: new CssVar('spacing-unit'),
|
|
51
|
+
};
|
|
52
|
+
export function font(theme) {
|
|
53
|
+
if (!theme.fontUrl)
|
|
54
|
+
return '';
|
|
55
|
+
return html `<link
|
|
56
|
+
rel="preconnect"
|
|
57
|
+
href="${sanitize(new URL(theme.fontUrl).origin)}"
|
|
58
|
+
crossorigin
|
|
59
|
+
/>
|
|
60
|
+
<link rel="stylesheet" href="${sanitize(theme.fontUrl)}" />`;
|
|
61
|
+
}
|
|
62
|
+
export function style(theme) {
|
|
63
|
+
const colors = Object.fromEntries(colorTokens.map((name) => [name, resolveColor(theme[name], defaultTheme[name])]));
|
|
64
|
+
const lightVars = colorTokens
|
|
65
|
+
.map((token) => `${vars[token].name}: ${colors[token][0]};`)
|
|
66
|
+
.join('\n ');
|
|
67
|
+
const darkVars = colorTokens
|
|
68
|
+
.map((token) => `${vars[token].name}: ${colors[token][1]};`)
|
|
69
|
+
.join('\n ');
|
|
70
|
+
const isLightOnly = theme.colorScheme === 'light';
|
|
71
|
+
const isDarkOnly = theme.colorScheme === 'dark';
|
|
72
|
+
const rootVars = isDarkOnly ? darkVars : lightVars;
|
|
73
|
+
const darkMedia = !isLightOnly && !isDarkOnly
|
|
74
|
+
? `\n @media (prefers-color-scheme: dark) {\n :root {\n ${darkVars}\n }\n }`
|
|
75
|
+
: '';
|
|
76
|
+
return html `
|
|
77
|
+
<style>
|
|
78
|
+
${reset}
|
|
79
|
+
:root {
|
|
80
|
+
color-scheme: ${theme.colorScheme};
|
|
81
|
+
${vars.fontFamily.name}: ${theme.fontFamily};
|
|
82
|
+
${vars.fontSizeBase.name}: ${theme.fontSizeBase};
|
|
83
|
+
${vars.radius.name}: ${theme.radius};
|
|
84
|
+
${vars.spacingUnit.name}: ${theme.spacingUnit};
|
|
85
|
+
${rootVars}
|
|
86
|
+
}${darkMedia}
|
|
87
|
+
*:focus-visible {
|
|
88
|
+
outline-color: ${vars.accent};
|
|
89
|
+
outline-offset: 0.15rem;
|
|
90
|
+
outline-style: solid;
|
|
91
|
+
outline-width: 2px;
|
|
92
|
+
}
|
|
93
|
+
body {
|
|
94
|
+
-webkit-font-smoothing: antialiased;
|
|
95
|
+
-moz-osx-font-smoothing: grayscale;
|
|
96
|
+
background: ${vars.background};
|
|
97
|
+
color: ${vars.foreground};
|
|
98
|
+
font-family: ${vars.fontFamily};
|
|
99
|
+
font-size: ${vars.fontSizeBase};
|
|
100
|
+
}
|
|
101
|
+
main {
|
|
102
|
+
display: flex;
|
|
103
|
+
flex-direction: column;
|
|
104
|
+
gap: calc(${vars.spacingUnit} * 8);
|
|
105
|
+
margin-left: auto;
|
|
106
|
+
margin-right: auto;
|
|
107
|
+
max-width: clamp(300px, calc(${vars.spacingUnit} * 224), 896px);
|
|
108
|
+
padding: calc(${vars.spacingUnit} * 12) calc(${vars.spacingUnit} * 8) calc(${vars.spacingUnit} * 16);
|
|
109
|
+
}
|
|
110
|
+
.${classNames.header} {
|
|
111
|
+
align-items: center;
|
|
112
|
+
display: flex;
|
|
113
|
+
flex-wrap: wrap;
|
|
114
|
+
gap: calc(${vars.spacingUnit} * 4);
|
|
115
|
+
justify-content: space-between;
|
|
116
|
+
span {
|
|
117
|
+
background: ${vars.surface};
|
|
118
|
+
border: 1px solid ${vars.border};
|
|
119
|
+
border-radius: calc(${vars.spacingUnit} * 50);
|
|
120
|
+
font-size: 0.75rem;
|
|
121
|
+
font-weight: 500;
|
|
122
|
+
letter-spacing: 0.025em;
|
|
123
|
+
padding: calc(${vars.spacingUnit} * 1) calc(${vars.spacingUnit} * 4);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
.${classNames.logo} {
|
|
127
|
+
max-height: 1.75rem;
|
|
128
|
+
}
|
|
129
|
+
.${classNames.logoColorScheme('dark')} {
|
|
130
|
+
@media (prefers-color-scheme: light) {
|
|
131
|
+
display: none;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
.${classNames.logoColorScheme('light')} {
|
|
135
|
+
@media (prefers-color-scheme: dark) {
|
|
136
|
+
display: none;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
.${classNames.summary} {
|
|
140
|
+
background: ${vars.surface};
|
|
141
|
+
border: 1px solid ${vars.border};
|
|
142
|
+
border-radius: ${vars.radius};
|
|
143
|
+
display: flex;
|
|
144
|
+
flex-direction: column;
|
|
145
|
+
gap: calc(${vars.spacingUnit} * 3);
|
|
146
|
+
padding: calc(${vars.spacingUnit} * 6) calc(${vars.spacingUnit} * 6);
|
|
147
|
+
}
|
|
148
|
+
.${classNames.summaryAmount} {
|
|
149
|
+
font-size: 2.5rem;
|
|
150
|
+
font-variant-numeric: tabular-nums;
|
|
151
|
+
font-weight: 700;
|
|
152
|
+
line-height: 1.2;
|
|
153
|
+
}
|
|
154
|
+
.${classNames.summaryDescription} {
|
|
155
|
+
font-size: 1.25rem;
|
|
156
|
+
}
|
|
157
|
+
.${classNames.summaryExpires} {
|
|
158
|
+
color: ${vars.muted};
|
|
159
|
+
}
|
|
160
|
+
.${classNames.error} {
|
|
161
|
+
color: ${vars.negative};
|
|
162
|
+
font-size: 0.95rem;
|
|
163
|
+
margin-top: calc(${vars.spacingUnit} * -1.5);
|
|
164
|
+
text-align: center;
|
|
165
|
+
}
|
|
166
|
+
</style>
|
|
167
|
+
`;
|
|
168
|
+
}
|
|
169
|
+
export function showError(message) {
|
|
170
|
+
const existing = document.getElementById(errorId);
|
|
171
|
+
if (existing) {
|
|
172
|
+
existing.textContent = message;
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
const el = document.createElement('p');
|
|
176
|
+
el.id = errorId;
|
|
177
|
+
el.className = classNames.error;
|
|
178
|
+
el.role = 'alert';
|
|
179
|
+
el.textContent = message;
|
|
180
|
+
document.getElementById(rootId)?.after(el);
|
|
181
|
+
}
|
|
182
|
+
export function favicon(theme, realm) {
|
|
183
|
+
if (typeof theme.favicon === 'string')
|
|
184
|
+
return html `<link rel="icon" href="${sanitize(theme.favicon)}" />`;
|
|
185
|
+
if (typeof theme.favicon === 'object') {
|
|
186
|
+
return html `<link
|
|
187
|
+
rel="icon"
|
|
188
|
+
href="${sanitize(theme.favicon.light)}"
|
|
189
|
+
media="(prefers-color-scheme: light)"
|
|
190
|
+
/>
|
|
191
|
+
<link
|
|
192
|
+
rel="icon"
|
|
193
|
+
href="${sanitize(theme.favicon.dark)}"
|
|
194
|
+
media="(prefers-color-scheme: dark)"
|
|
195
|
+
/>`;
|
|
196
|
+
}
|
|
197
|
+
// Fallback: use host's favicon via Google S2 service
|
|
198
|
+
try {
|
|
199
|
+
const domain = new URL(realm).hostname;
|
|
200
|
+
return html `<link
|
|
201
|
+
rel="icon"
|
|
202
|
+
href="https://www.google.com/s2/favicons?domain=${domain}&sz=64"
|
|
203
|
+
/>`;
|
|
204
|
+
}
|
|
205
|
+
catch {
|
|
206
|
+
return '';
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
export function logo(value) {
|
|
210
|
+
if (typeof value.logo === 'undefined')
|
|
211
|
+
return '';
|
|
212
|
+
if (typeof value.logo === 'string')
|
|
213
|
+
return html `<img alt="" class="${classNames.logo}" src="${sanitize(value.logo)}" />`;
|
|
214
|
+
return Object.entries(value.logo)
|
|
215
|
+
.map((entry) => html `<img
|
|
216
|
+
alt=""
|
|
217
|
+
class="${classNames.logo} ${classNames.logoColorScheme(entry[0])}"
|
|
218
|
+
src="${sanitize(entry[1])}"
|
|
219
|
+
/>`)
|
|
220
|
+
.join('\n');
|
|
221
|
+
}
|
|
222
|
+
export const defaultText = {
|
|
223
|
+
expires: 'Expires at',
|
|
224
|
+
pay: 'Pay',
|
|
225
|
+
paymentRequired: 'Payment Required',
|
|
226
|
+
title: 'Payment Required',
|
|
227
|
+
};
|
|
228
|
+
export const defaultTheme = {
|
|
229
|
+
colorScheme: 'light dark',
|
|
230
|
+
fontFamily: 'system-ui, -apple-system, sans-serif',
|
|
231
|
+
fontSizeBase: '16px',
|
|
232
|
+
radius: '6px',
|
|
233
|
+
spacingUnit: '2px',
|
|
234
|
+
accent: ['#171717', '#ededed'],
|
|
235
|
+
background: ['#ffffff', '#0a0a0a'],
|
|
236
|
+
border: ['#e5e5e5', '#2e2e2e'],
|
|
237
|
+
foreground: ['#0a0a0a', '#ededed'],
|
|
238
|
+
muted: ['#666666', '#a1a1a1'],
|
|
239
|
+
negative: ['#e5484d', '#e5484d'],
|
|
240
|
+
positive: ['#30a46c', '#30a46c'],
|
|
241
|
+
surface: ['#f5f5f5', '#1a1a1a'],
|
|
242
|
+
};
|
|
243
|
+
export const colorTokens = [
|
|
244
|
+
'accent',
|
|
245
|
+
'negative',
|
|
246
|
+
'positive',
|
|
247
|
+
'background',
|
|
248
|
+
'foreground',
|
|
249
|
+
'muted',
|
|
250
|
+
'surface',
|
|
251
|
+
'border',
|
|
252
|
+
];
|
|
253
|
+
export function resolveColor(value, fallback) {
|
|
254
|
+
if (!value)
|
|
255
|
+
return fallback;
|
|
256
|
+
if (typeof value === 'string')
|
|
257
|
+
return [value, value];
|
|
258
|
+
return value;
|
|
259
|
+
}
|
|
260
|
+
export function mergeDefined(defaults, value) {
|
|
261
|
+
if (value === undefined)
|
|
262
|
+
return defaults;
|
|
263
|
+
if (!isPlainObject(defaults) || !isPlainObject(value))
|
|
264
|
+
return (value ?? defaults);
|
|
265
|
+
const result = { ...defaults };
|
|
266
|
+
for (const [key, nextValue] of Object.entries(value)) {
|
|
267
|
+
if (nextValue === undefined)
|
|
268
|
+
continue;
|
|
269
|
+
const currentValue = result[key];
|
|
270
|
+
result[key] =
|
|
271
|
+
isPlainObject(currentValue) && isPlainObject(nextValue)
|
|
272
|
+
? mergeDefined(currentValue, nextValue)
|
|
273
|
+
: nextValue;
|
|
274
|
+
}
|
|
275
|
+
return result;
|
|
276
|
+
}
|
|
277
|
+
function isPlainObject(value) {
|
|
278
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
279
|
+
}
|
|
280
|
+
// Slimmed down Tailwind preflight
|
|
281
|
+
// https://github.com/tailwindlabs/tailwindcss/blob/main/packages/tailwindcss/preflight.css
|
|
282
|
+
const reset = html `
|
|
283
|
+
*, ::after, ::before, ::backdrop, ::file-selector-button { box-sizing: border-box; margin: 0;
|
|
284
|
+
padding: 0; border: 0 solid; border-color: ${vars.border}; } html, :host { line-height: 1.5;
|
|
285
|
+
-webkit-text-size-adjust: 100%; tab-size: 4; -webkit-tap-highlight-color: transparent; } h1, h2,
|
|
286
|
+
h3, h4, h5, h6 { font-size: inherit; font-weight: inherit; } a { color: inherit;
|
|
287
|
+
-webkit-text-decoration: inherit; text-decoration: inherit; } b, strong { font-weight: bolder; }
|
|
288
|
+
code, kbd, samp, pre { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas,
|
|
289
|
+
'Liberation Mono', 'Courier New', monospace; font-size: 1em; } small { font-size: 80%; } ol, ul,
|
|
290
|
+
menu { list-style: none; } img, svg, video, canvas, audio, iframe, embed, object { display: block;
|
|
291
|
+
vertical-align: middle; } img, video { max-width: 100%; height: auto; } button, input, select,
|
|
292
|
+
optgroup, textarea, ::file-selector-button { font: inherit; font-feature-settings: inherit;
|
|
293
|
+
font-variation-settings: inherit; letter-spacing: inherit; color: inherit; border-radius: 0;
|
|
294
|
+
background-color: transparent; opacity: 1; } ::file-selector-button { margin-inline-end: 4px; }
|
|
295
|
+
::placeholder { opacity: 1; } @supports (not (-webkit-appearance: -apple-pay-button)) or
|
|
296
|
+
(contain-intrinsic-size: 1px) { ::placeholder { color: color-mix(in oklab, currentcolor 50%,
|
|
297
|
+
transparent); } } textarea { resize: vertical; } ::-webkit-search-decoration { -webkit-appearance:
|
|
298
|
+
none; } :-moz-ui-invalid { box-shadow: none; } button, input:where([type='button'],
|
|
299
|
+
[type='reset'], [type='submit']), ::file-selector-button { appearance: button; }
|
|
300
|
+
::-webkit-inner-spin-button, ::-webkit-outer-spin-button { height: auto; }
|
|
301
|
+
[hidden]:where(:not([hidden='until-found'])) { display: none !important; }
|
|
302
|
+
`;
|
|
3
303
|
//# sourceMappingURL=config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/server/internal/html/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/server/internal/html/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as StripeJsTypes from '../../stripe/server/internal/html/types.js';
|
|
1
2
|
/**
|
|
2
3
|
* Duck-typed interface for the Stripe Node SDK (`stripe` npm package).
|
|
3
4
|
* Matches the subset of the API used by mppx for server-side payment verification.
|
|
@@ -25,4 +26,9 @@ export type StripeJs = {
|
|
|
25
26
|
createPaymentMethod(...args: any[]): Promise<Record<string, unknown>>;
|
|
26
27
|
elements(...args: any[]): unknown;
|
|
27
28
|
};
|
|
29
|
+
export type CreatePaymentMethodFromElements = Omit<StripeJsTypes.CreatePaymentMethodFromElements, 'elements'> & {};
|
|
30
|
+
export type StripeElementsOptionsMode = Omit<Extract<StripeJsTypes.StripeElementsOptionsMode, {
|
|
31
|
+
mode: 'payment';
|
|
32
|
+
}>, 'amount' | 'currency' | 'mode' | 'excludedPaymentMethodTypes' | 'paymentMethodCreation' | 'paymentMethodTypes' | 'payment_method_types'> & {};
|
|
33
|
+
export type StripePaymentElementOptions = StripeJsTypes.StripePaymentElementOptions;
|
|
28
34
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/stripe/internal/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,cAAc,EAAE;QACd,MAAM,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;YAC9B,EAAE,EAAE,MAAM,CAAA;YACV,MAAM,EAAE,MAAM,CAAA;YACd,YAAY,CAAC,EAAE;gBAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;aAAE,CAAA;SACpD,CAAC,CAAA;KACH,CAAA;CACF,CAAA;AAED;;;;;GAKG;AACH,MAAM,MAAM,QAAQ,GAAG;IACrB,mBAAmB,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IACrE,QAAQ,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAA;CAClC,CAAA"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/stripe/internal/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,4CAA4C,CAAA;AAE3E;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,cAAc,EAAE;QACd,MAAM,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;YAC9B,EAAE,EAAE,MAAM,CAAA;YACV,MAAM,EAAE,MAAM,CAAA;YACd,YAAY,CAAC,EAAE;gBAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;aAAE,CAAA;SACpD,CAAC,CAAA;KACH,CAAA;CACF,CAAA;AAED;;;;;GAKG;AACH,MAAM,MAAM,QAAQ,GAAG;IACrB,mBAAmB,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IACrE,QAAQ,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAA;CAClC,CAAA;AAED,MAAM,MAAM,+BAA+B,GAAG,IAAI,CAChD,aAAa,CAAC,+BAA+B,EAC7C,UAAU,CACX,GAAG,EAAE,CAAA;AAEN,MAAM,MAAM,yBAAyB,GAAG,IAAI,CAC1C,OAAO,CAAC,aAAa,CAAC,yBAAyB,EAAE;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC,EACnE,QAAQ,GACR,UAAU,GACV,MAAM,GACN,4BAA4B,GAC5B,uBAAuB,GACvB,oBAAoB,GACpB,sBAAsB,CACzB,GAAG,EAAE,CAAA;AAEN,MAAM,MAAM,2BAA2B,GAAG,aAAa,CAAC,2BAA2B,CAAA"}
|