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.
Files changed (57) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/cli/cli.d.ts.map +1 -1
  3. package/dist/cli/cli.js +11 -9
  4. package/dist/cli/cli.js.map +1 -1
  5. package/dist/cli/plugins/tempo.d.ts.map +1 -1
  6. package/dist/cli/plugins/tempo.js +3 -3
  7. package/dist/cli/plugins/tempo.js.map +1 -1
  8. package/dist/cli/utils.d.ts +2 -0
  9. package/dist/cli/utils.d.ts.map +1 -1
  10. package/dist/cli/utils.js +10 -5
  11. package/dist/cli/utils.js.map +1 -1
  12. package/dist/server/Transport.d.ts.map +1 -1
  13. package/dist/server/Transport.js +40 -21
  14. package/dist/server/Transport.js.map +1 -1
  15. package/dist/server/internal/html/config.d.ts +137 -0
  16. package/dist/server/internal/html/config.d.ts.map +1 -1
  17. package/dist/server/internal/html/config.js +300 -0
  18. package/dist/server/internal/html/config.js.map +1 -1
  19. package/dist/stripe/internal/types.d.ts +6 -0
  20. package/dist/stripe/internal/types.d.ts.map +1 -1
  21. package/dist/stripe/server/Charge.d.ts +25 -16
  22. package/dist/stripe/server/Charge.d.ts.map +1 -1
  23. package/dist/stripe/server/Charge.js +23 -2
  24. package/dist/stripe/server/Charge.js.map +1 -1
  25. package/dist/stripe/server/internal/html/types.d.ts +2 -0
  26. package/dist/stripe/server/internal/html/types.d.ts.map +1 -0
  27. package/dist/stripe/server/internal/html/types.js +2 -0
  28. package/dist/stripe/server/internal/html/types.js.map +1 -0
  29. package/dist/stripe/server/internal/html.gen.d.ts +1 -1
  30. package/dist/stripe/server/internal/html.gen.d.ts.map +1 -1
  31. package/dist/stripe/server/internal/html.gen.js +1 -1
  32. package/dist/stripe/server/internal/html.gen.js.map +1 -1
  33. package/dist/tempo/server/Charge.d.ts +32 -27
  34. package/dist/tempo/server/Charge.d.ts.map +1 -1
  35. package/dist/tempo/server/Charge.js +32 -3
  36. package/dist/tempo/server/Charge.js.map +1 -1
  37. package/dist/tempo/server/internal/html.gen.d.ts +1 -1
  38. package/dist/tempo/server/internal/html.gen.d.ts.map +1 -1
  39. package/dist/tempo/server/internal/html.gen.js +1 -1
  40. package/dist/tempo/server/internal/html.gen.js.map +1 -1
  41. package/package.json +1 -1
  42. package/src/cli/cli.ts +11 -8
  43. package/src/cli/plugins/tempo.ts +3 -2
  44. package/src/cli/utils.test.ts +64 -0
  45. package/src/cli/utils.ts +10 -4
  46. package/src/server/Transport.test.ts +216 -0
  47. package/src/server/Transport.ts +47 -24
  48. package/src/server/internal/html/config.ts +406 -0
  49. package/src/stripe/internal/types.ts +20 -0
  50. package/src/stripe/server/Charge.ts +46 -4
  51. package/src/stripe/server/internal/html/main.ts +87 -19
  52. package/src/stripe/server/internal/html/types.ts +5 -0
  53. package/src/stripe/server/internal/html.gen.ts +1 -1
  54. package/src/tempo/server/Charge.ts +46 -4
  55. package/src/tempo/server/internal/html/main.ts +51 -11
  56. package/src/tempo/server/internal/html/package.json +1 -1
  57. package/src/tempo/server/internal/html.gen.ts +1 -1
@@ -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 html = String.raw;
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
- <title>Payment Required</title>
71
- <style>
72
- :root {
73
- color-scheme: dark light;
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
- <h1>Payment Required</h1>
79
- <pre>
80
- ${Json.stringify(challenge, null, 2)
81
- .replace(/&/g, '&amp;')
82
- .replace(/</g, '&lt;')
83
- .replace(/>/g, '&gt;')}</pre
84
- >
85
- <div id="root"></div>
86
- <script id="${Html.dataId}" type="application/json">
87
- ${Json.stringify({ config: options.html.config, challenge }).replace(/</g, '\\u003c')}
88
- </script>
89
- ${options.html.content}
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":"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"}
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;CAChB,CAAA;AAED,eAAO,MAAM,MAAM,kBAAkB,CAAA;AAErC,eAAO,MAAM,kBAAkB,kBAAkB,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, '&amp;')
20
+ .replace(/</g, '&lt;')
21
+ .replace(/>/g, '&gt;')
22
+ .replace(/"/g, '&quot;')
23
+ .replace(/'/g, '&#39;');
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":"AAKA,MAAM,CAAC,MAAM,MAAM,GAAG,eAAe,CAAA;AAErC,MAAM,CAAC,MAAM,kBAAkB,GAAG,eAAe,CAAA"}
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"}