@ticketlayer/theme 0.1.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.
- package/LICENSE +21 -0
- package/README.md +65 -0
- package/TOKENS.md +99 -0
- package/dist/generated/tokens.d.ts +169 -0
- package/dist/generated/tokens.d.ts.map +1 -0
- package/dist/generated/tokens.js +354 -0
- package/dist/generated/tokens.js.map +1 -0
- package/dist/index.d.ts +47 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +63 -0
- package/dist/index.js.map +1 -0
- package/generated/theme.schema.json +280 -0
- package/generated/tokens.css +87 -0
- package/generated/tokens.dark.css +27 -0
- package/package.json +64 -0
- package/tokens.json +323 -0
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://tokens.ticketlayer.com/theme.schema.json",
|
|
4
|
+
"title": "TicketlayerTheme",
|
|
5
|
+
"description": "The theme document a sales channel stores and GET /sales/theme returns. Its colours, typography and shape sections are exactly the tokens above that carry a themeKey; brand and design are not tokens and are described here. Generated from packages/theme/tokens.json; do not edit.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"brand": {
|
|
9
|
+
"type": "object",
|
|
10
|
+
"description": "Identity that is not a token.",
|
|
11
|
+
"properties": {
|
|
12
|
+
"logoUrl": {
|
|
13
|
+
"type": "string",
|
|
14
|
+
"description": "The logo shown on a light surface."
|
|
15
|
+
},
|
|
16
|
+
"logoDarkUrl": {
|
|
17
|
+
"type": "string",
|
|
18
|
+
"description": "The logo shown on a dark surface."
|
|
19
|
+
},
|
|
20
|
+
"faviconUrl": {
|
|
21
|
+
"type": "string",
|
|
22
|
+
"description": "The storefront favicon."
|
|
23
|
+
},
|
|
24
|
+
"displayName": {
|
|
25
|
+
"type": "string",
|
|
26
|
+
"description": "The name shown in place of the organisation's."
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
"additionalProperties": false
|
|
30
|
+
},
|
|
31
|
+
"design": {
|
|
32
|
+
"type": "object",
|
|
33
|
+
"description": "Layout choices the hosted storefront reads. Open ended on purpose: unknown keys pass through.",
|
|
34
|
+
"properties": {
|
|
35
|
+
"heroLayout": {
|
|
36
|
+
"type": "object",
|
|
37
|
+
"description": "How an event page leads.",
|
|
38
|
+
"properties": {
|
|
39
|
+
"type": {
|
|
40
|
+
"type": "string",
|
|
41
|
+
"enum": [
|
|
42
|
+
"cinema",
|
|
43
|
+
"hero"
|
|
44
|
+
]
|
|
45
|
+
},
|
|
46
|
+
"size": {
|
|
47
|
+
"type": "string",
|
|
48
|
+
"enum": [
|
|
49
|
+
"small",
|
|
50
|
+
"medium",
|
|
51
|
+
"large"
|
|
52
|
+
]
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
"required": [
|
|
56
|
+
"type",
|
|
57
|
+
"size"
|
|
58
|
+
]
|
|
59
|
+
},
|
|
60
|
+
"cinemaGradient": {
|
|
61
|
+
"type": "object",
|
|
62
|
+
"description": "The gradient over a cinema hero.",
|
|
63
|
+
"properties": {
|
|
64
|
+
"strength": {
|
|
65
|
+
"type": "number",
|
|
66
|
+
"enum": [
|
|
67
|
+
70,
|
|
68
|
+
50,
|
|
69
|
+
20
|
|
70
|
+
]
|
|
71
|
+
},
|
|
72
|
+
"position": {
|
|
73
|
+
"type": "string",
|
|
74
|
+
"enum": [
|
|
75
|
+
"bottom",
|
|
76
|
+
"center"
|
|
77
|
+
]
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
"required": [
|
|
81
|
+
"strength",
|
|
82
|
+
"position"
|
|
83
|
+
]
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
"additionalProperties": true,
|
|
87
|
+
"x-nullable": true
|
|
88
|
+
},
|
|
89
|
+
"colors": {
|
|
90
|
+
"type": "object",
|
|
91
|
+
"description": "Tokens in this section are generated from tokens.json.",
|
|
92
|
+
"properties": {
|
|
93
|
+
"primary": {
|
|
94
|
+
"type": "string",
|
|
95
|
+
"description": "The channel's brand colour; buttons, links and selected state.",
|
|
96
|
+
"default": "#6366f1",
|
|
97
|
+
"x-tl-token": "--tl-primary"
|
|
98
|
+
},
|
|
99
|
+
"primaryForeground": {
|
|
100
|
+
"type": "string",
|
|
101
|
+
"description": "Text and icons on a primary surface.",
|
|
102
|
+
"default": "#ffffff",
|
|
103
|
+
"x-tl-token": "--tl-primary-foreground"
|
|
104
|
+
},
|
|
105
|
+
"secondary": {
|
|
106
|
+
"type": "string",
|
|
107
|
+
"description": "A quieter filled surface: secondary buttons and chips.",
|
|
108
|
+
"default": "#f3f4f6",
|
|
109
|
+
"x-tl-token": "--tl-secondary"
|
|
110
|
+
},
|
|
111
|
+
"secondaryForeground": {
|
|
112
|
+
"type": "string",
|
|
113
|
+
"description": "Text on a secondary surface.",
|
|
114
|
+
"default": "#111827",
|
|
115
|
+
"x-tl-token": "--tl-secondary-foreground"
|
|
116
|
+
},
|
|
117
|
+
"accent": {
|
|
118
|
+
"type": "string",
|
|
119
|
+
"description": "A second brand colour for highlights. No element uses it yet; it exists because the theme API accepts it.",
|
|
120
|
+
"default": "#ec4899",
|
|
121
|
+
"x-tl-token": "--tl-accent"
|
|
122
|
+
},
|
|
123
|
+
"accentForeground": {
|
|
124
|
+
"type": "string",
|
|
125
|
+
"description": "Text on an accent surface.",
|
|
126
|
+
"default": "#ffffff",
|
|
127
|
+
"x-tl-token": "--tl-accent-foreground"
|
|
128
|
+
},
|
|
129
|
+
"background": {
|
|
130
|
+
"type": "string",
|
|
131
|
+
"description": "The page surface an element sits on.",
|
|
132
|
+
"default": "#ffffff",
|
|
133
|
+
"x-tl-token": "--tl-background"
|
|
134
|
+
},
|
|
135
|
+
"foreground": {
|
|
136
|
+
"type": "string",
|
|
137
|
+
"description": "Body text.",
|
|
138
|
+
"default": "#111827",
|
|
139
|
+
"x-tl-token": "--tl-foreground"
|
|
140
|
+
},
|
|
141
|
+
"muted": {
|
|
142
|
+
"type": "string",
|
|
143
|
+
"description": "A recessed surface: table stripes, empty state, disabled fills.",
|
|
144
|
+
"default": "#f9fafb",
|
|
145
|
+
"x-tl-token": "--tl-muted"
|
|
146
|
+
},
|
|
147
|
+
"mutedForeground": {
|
|
148
|
+
"type": "string",
|
|
149
|
+
"description": "Secondary text: captions, hints, metadata.",
|
|
150
|
+
"default": "#6b7280",
|
|
151
|
+
"x-tl-token": "--tl-muted-foreground"
|
|
152
|
+
},
|
|
153
|
+
"border": {
|
|
154
|
+
"type": "string",
|
|
155
|
+
"description": "Hairlines and control outlines.",
|
|
156
|
+
"default": "#e5e7eb",
|
|
157
|
+
"x-tl-token": "--tl-border"
|
|
158
|
+
},
|
|
159
|
+
"input": {
|
|
160
|
+
"type": "string",
|
|
161
|
+
"description": "The outline of a text input. No element uses it yet; it exists because the theme API accepts it.",
|
|
162
|
+
"default": "#e5e7eb",
|
|
163
|
+
"x-tl-token": "--tl-input"
|
|
164
|
+
},
|
|
165
|
+
"ring": {
|
|
166
|
+
"type": "string",
|
|
167
|
+
"description": "The focus ring.",
|
|
168
|
+
"default": "#6366f1",
|
|
169
|
+
"x-tl-token": "--tl-ring"
|
|
170
|
+
},
|
|
171
|
+
"success": {
|
|
172
|
+
"type": "string",
|
|
173
|
+
"description": "A confirmed state: an order placed, a code accepted.",
|
|
174
|
+
"default": "#10b981",
|
|
175
|
+
"x-tl-token": "--tl-success"
|
|
176
|
+
},
|
|
177
|
+
"successForeground": {
|
|
178
|
+
"type": "string",
|
|
179
|
+
"description": "Text on a success surface.",
|
|
180
|
+
"default": "#ffffff",
|
|
181
|
+
"x-tl-token": "--tl-success-foreground"
|
|
182
|
+
},
|
|
183
|
+
"warning": {
|
|
184
|
+
"type": "string",
|
|
185
|
+
"description": "A cart about to expire, a low-stock notice.",
|
|
186
|
+
"default": "#f59e0b",
|
|
187
|
+
"x-tl-token": "--tl-warning"
|
|
188
|
+
},
|
|
189
|
+
"warningForeground": {
|
|
190
|
+
"type": "string",
|
|
191
|
+
"description": "Text on a warning surface.",
|
|
192
|
+
"default": "#ffffff",
|
|
193
|
+
"x-tl-token": "--tl-warning-foreground"
|
|
194
|
+
},
|
|
195
|
+
"destructive": {
|
|
196
|
+
"type": "string",
|
|
197
|
+
"description": "A failed payment, a rejected code. The theme API calls this colour destructive; the elements call it error, so both names resolve.",
|
|
198
|
+
"default": "#ef4444",
|
|
199
|
+
"x-tl-token": "--tl-error"
|
|
200
|
+
},
|
|
201
|
+
"destructiveForeground": {
|
|
202
|
+
"type": "string",
|
|
203
|
+
"description": "Text on an error surface.",
|
|
204
|
+
"default": "#ffffff",
|
|
205
|
+
"x-tl-token": "--tl-error-foreground"
|
|
206
|
+
}
|
|
207
|
+
},
|
|
208
|
+
"additionalProperties": false
|
|
209
|
+
},
|
|
210
|
+
"typography": {
|
|
211
|
+
"type": "object",
|
|
212
|
+
"description": "Tokens in this section are generated from tokens.json.",
|
|
213
|
+
"properties": {
|
|
214
|
+
"fontFamily": {
|
|
215
|
+
"type": "string",
|
|
216
|
+
"description": "The body font stack.",
|
|
217
|
+
"default": "system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif",
|
|
218
|
+
"x-tl-token": "--tl-font-family"
|
|
219
|
+
},
|
|
220
|
+
"fontFamilyMono": {
|
|
221
|
+
"type": "string",
|
|
222
|
+
"description": "The stack for order references, codes and seat labels.",
|
|
223
|
+
"default": "ui-monospace, SFMono-Regular, 'SF Mono', Menlo, monospace",
|
|
224
|
+
"x-tl-token": "--tl-font-family-mono"
|
|
225
|
+
},
|
|
226
|
+
"baseSize": {
|
|
227
|
+
"type": "string",
|
|
228
|
+
"description": "The root size the scale is built from. The alias exists because Backstage's theme designer emits --tl-base-size and this client emits --tl-font-size-base.",
|
|
229
|
+
"default": "16px",
|
|
230
|
+
"x-tl-token": "--tl-font-size-base"
|
|
231
|
+
},
|
|
232
|
+
"scaleRatio": {
|
|
233
|
+
"type": "number",
|
|
234
|
+
"description": "The ratio between steps of the type scale.",
|
|
235
|
+
"default": 1.25,
|
|
236
|
+
"x-tl-token": "--tl-font-scale"
|
|
237
|
+
}
|
|
238
|
+
},
|
|
239
|
+
"additionalProperties": false
|
|
240
|
+
},
|
|
241
|
+
"shape": {
|
|
242
|
+
"type": "object",
|
|
243
|
+
"description": "Tokens in this section are generated from tokens.json.",
|
|
244
|
+
"properties": {
|
|
245
|
+
"radiusNone": {
|
|
246
|
+
"type": "string",
|
|
247
|
+
"description": "No rounding.",
|
|
248
|
+
"default": "0px",
|
|
249
|
+
"x-tl-token": "--tl-radius-none"
|
|
250
|
+
},
|
|
251
|
+
"radiusSm": {
|
|
252
|
+
"type": "string",
|
|
253
|
+
"description": "Badges, tags, small controls.",
|
|
254
|
+
"default": "0.25rem",
|
|
255
|
+
"x-tl-token": "--tl-radius-sm"
|
|
256
|
+
},
|
|
257
|
+
"radiusMd": {
|
|
258
|
+
"type": "string",
|
|
259
|
+
"description": "Buttons, inputs, cards. The bare --tl-radius alias exists because several stylesheets already ask for it.",
|
|
260
|
+
"default": "0.5rem",
|
|
261
|
+
"x-tl-token": "--tl-radius-md"
|
|
262
|
+
},
|
|
263
|
+
"radiusLg": {
|
|
264
|
+
"type": "string",
|
|
265
|
+
"description": "Panels, drawers, modals.",
|
|
266
|
+
"default": "0.75rem",
|
|
267
|
+
"x-tl-token": "--tl-radius-lg"
|
|
268
|
+
},
|
|
269
|
+
"radiusFull": {
|
|
270
|
+
"type": "string",
|
|
271
|
+
"description": "Pills and circular controls.",
|
|
272
|
+
"default": "9999px",
|
|
273
|
+
"x-tl-token": "--tl-radius-full"
|
|
274
|
+
}
|
|
275
|
+
},
|
|
276
|
+
"additionalProperties": false
|
|
277
|
+
}
|
|
278
|
+
},
|
|
279
|
+
"additionalProperties": false
|
|
280
|
+
}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/* Generated from tokens.json by packages/theme/scripts/generate.mjs. Do not edit. */
|
|
2
|
+
:root {
|
|
3
|
+
/* Colour: Palette. A channel theme overrides these through colours on GET /sales/theme. */
|
|
4
|
+
--tl-primary: #6366f1;
|
|
5
|
+
--tl-color-primary: var(--tl-primary);
|
|
6
|
+
--tl-primary-foreground: #ffffff;
|
|
7
|
+
--tl-color-primary-foreground: var(--tl-primary-foreground);
|
|
8
|
+
--tl-secondary: #f3f4f6;
|
|
9
|
+
--tl-color-secondary: var(--tl-secondary);
|
|
10
|
+
--tl-secondary-foreground: #111827;
|
|
11
|
+
--tl-color-secondary-foreground: var(--tl-secondary-foreground);
|
|
12
|
+
--tl-accent: #ec4899;
|
|
13
|
+
--tl-color-accent: var(--tl-accent);
|
|
14
|
+
--tl-accent-foreground: #ffffff;
|
|
15
|
+
--tl-color-accent-foreground: var(--tl-accent-foreground);
|
|
16
|
+
--tl-background: #ffffff;
|
|
17
|
+
--tl-color-background: var(--tl-background);
|
|
18
|
+
--tl-foreground: #111827;
|
|
19
|
+
--tl-color-foreground: var(--tl-foreground);
|
|
20
|
+
--tl-card: #ffffff;
|
|
21
|
+
--tl-color-card: var(--tl-card);
|
|
22
|
+
--tl-muted: #f9fafb;
|
|
23
|
+
--tl-color-muted: var(--tl-muted);
|
|
24
|
+
--tl-muted-foreground: #6b7280;
|
|
25
|
+
--tl-color-muted-foreground: var(--tl-muted-foreground);
|
|
26
|
+
--tl-border: #e5e7eb;
|
|
27
|
+
--tl-color-border: var(--tl-border);
|
|
28
|
+
--tl-border-hover: #9ca3af;
|
|
29
|
+
--tl-color-border-hover: var(--tl-border-hover);
|
|
30
|
+
--tl-input: #e5e7eb;
|
|
31
|
+
--tl-color-input: var(--tl-input);
|
|
32
|
+
--tl-ring: #6366f1;
|
|
33
|
+
--tl-color-ring: var(--tl-ring);
|
|
34
|
+
--tl-success: #10b981;
|
|
35
|
+
--tl-color-success: var(--tl-success);
|
|
36
|
+
--tl-success-foreground: #ffffff;
|
|
37
|
+
--tl-color-success-foreground: var(--tl-success-foreground);
|
|
38
|
+
--tl-warning: #f59e0b;
|
|
39
|
+
--tl-color-warning: var(--tl-warning);
|
|
40
|
+
--tl-warning-foreground: #ffffff;
|
|
41
|
+
--tl-color-warning-foreground: var(--tl-warning-foreground);
|
|
42
|
+
--tl-warning-bg: #fef3c7;
|
|
43
|
+
--tl-color-warning-bg: var(--tl-warning-bg);
|
|
44
|
+
--tl-error: #ef4444;
|
|
45
|
+
--tl-color-error: var(--tl-error);
|
|
46
|
+
--tl-destructive: var(--tl-error);
|
|
47
|
+
--tl-color-destructive: var(--tl-error);
|
|
48
|
+
--tl-error-foreground: #ffffff;
|
|
49
|
+
--tl-color-error-foreground: var(--tl-error-foreground);
|
|
50
|
+
--tl-destructive-foreground: var(--tl-error-foreground);
|
|
51
|
+
--tl-color-destructive-foreground: var(--tl-error-foreground);
|
|
52
|
+
--tl-error-bg: #fee2e2;
|
|
53
|
+
--tl-color-error-bg: var(--tl-error-bg);
|
|
54
|
+
--tl-destructive-bg: var(--tl-error-bg);
|
|
55
|
+
--tl-color-destructive-bg: var(--tl-error-bg);
|
|
56
|
+
|
|
57
|
+
/* Type: Font stacks and the base size the type scale is built from. */
|
|
58
|
+
--tl-font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
|
59
|
+
--tl-font-family-mono: ui-monospace, SFMono-Regular, 'SF Mono', Menlo, monospace;
|
|
60
|
+
--tl-font-size-base: 16px;
|
|
61
|
+
--tl-base-size: var(--tl-font-size-base);
|
|
62
|
+
--tl-font-scale: 1.25;
|
|
63
|
+
|
|
64
|
+
/* Radius: Corner radii. A channel theme overrides these through shape. */
|
|
65
|
+
--tl-radius-none: 0px;
|
|
66
|
+
--tl-radius-sm: 0.25rem;
|
|
67
|
+
--tl-radius-md: 0.5rem;
|
|
68
|
+
--tl-radius: var(--tl-radius-md);
|
|
69
|
+
--tl-radius-lg: 0.75rem;
|
|
70
|
+
--tl-radius-full: 9999px;
|
|
71
|
+
|
|
72
|
+
/* Spacing: The spacing step scale. Not themeable through the API today. */
|
|
73
|
+
--tl-spacing-1: 0.25rem;
|
|
74
|
+
--tl-spacing-2: 0.5rem;
|
|
75
|
+
--tl-spacing-3: 0.75rem;
|
|
76
|
+
--tl-spacing-4: 1rem;
|
|
77
|
+
--tl-spacing-5: 1.25rem;
|
|
78
|
+
--tl-spacing-6: 1.5rem;
|
|
79
|
+
--tl-spacing-8: 2rem;
|
|
80
|
+
|
|
81
|
+
/* Motion: Durations and easings. Not themeable through the API today. */
|
|
82
|
+
--tl-duration-fast: 120ms;
|
|
83
|
+
--tl-duration-normal: 200ms;
|
|
84
|
+
--tl-duration-slow: 320ms;
|
|
85
|
+
--tl-easing-standard: cubic-bezier(0.2, 0, 0, 1);
|
|
86
|
+
--tl-easing-emphasised: cubic-bezier(0.3, 0, 0, 1);
|
|
87
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/* Generated from tokens.json by packages/theme/scripts/generate.mjs. Do not edit. */
|
|
2
|
+
:root[data-tl-color-scheme='dark'],
|
|
3
|
+
[data-tl-color-scheme='dark'] {
|
|
4
|
+
--tl-primary: #818cf8;
|
|
5
|
+
--tl-primary-foreground: #111827;
|
|
6
|
+
--tl-secondary: #1f2937;
|
|
7
|
+
--tl-secondary-foreground: #f9fafb;
|
|
8
|
+
--tl-accent: #f472b6;
|
|
9
|
+
--tl-accent-foreground: #111827;
|
|
10
|
+
--tl-background: #0b0f19;
|
|
11
|
+
--tl-foreground: #f9fafb;
|
|
12
|
+
--tl-card: #111827;
|
|
13
|
+
--tl-muted: #111827;
|
|
14
|
+
--tl-muted-foreground: #9ca3af;
|
|
15
|
+
--tl-border: #374151;
|
|
16
|
+
--tl-border-hover: #4b5563;
|
|
17
|
+
--tl-input: #374151;
|
|
18
|
+
--tl-ring: #818cf8;
|
|
19
|
+
--tl-success: #34d399;
|
|
20
|
+
--tl-success-foreground: #062a1d;
|
|
21
|
+
--tl-warning: #fbbf24;
|
|
22
|
+
--tl-warning-foreground: #2a1a02;
|
|
23
|
+
--tl-warning-bg: #422006;
|
|
24
|
+
--tl-error: #f87171;
|
|
25
|
+
--tl-error-foreground: #2a0a0a;
|
|
26
|
+
--tl-error-bg: #450a0a;
|
|
27
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@ticketlayer/theme",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "The Ticketlayer Live design tokens: one source for the web custom properties, the native theme object and the theme document schema",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"module": "dist/index.js",
|
|
8
|
+
"types": "dist/index.d.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"types": "./dist/index.d.ts",
|
|
12
|
+
"import": "./dist/index.js"
|
|
13
|
+
},
|
|
14
|
+
"./tokens.css": "./generated/tokens.css",
|
|
15
|
+
"./tokens.dark.css": "./generated/tokens.dark.css",
|
|
16
|
+
"./theme.schema.json": "./generated/theme.schema.json",
|
|
17
|
+
"./tokens.json": "./tokens.json",
|
|
18
|
+
"./package.json": "./package.json"
|
|
19
|
+
},
|
|
20
|
+
"files": [
|
|
21
|
+
"dist",
|
|
22
|
+
"generated",
|
|
23
|
+
"tokens.json",
|
|
24
|
+
"TOKENS.md",
|
|
25
|
+
"README.md",
|
|
26
|
+
"LICENSE"
|
|
27
|
+
],
|
|
28
|
+
"sideEffects": false,
|
|
29
|
+
"repository": {
|
|
30
|
+
"type": "git",
|
|
31
|
+
"url": "git+https://github.com/ticketlayer/live.git",
|
|
32
|
+
"directory": "packages/theme"
|
|
33
|
+
},
|
|
34
|
+
"homepage": "https://docs.ticketlayer.com/elements",
|
|
35
|
+
"bugs": {
|
|
36
|
+
"url": "https://github.com/ticketlayer/live/issues"
|
|
37
|
+
},
|
|
38
|
+
"keywords": [
|
|
39
|
+
"ticketlayer",
|
|
40
|
+
"design-tokens",
|
|
41
|
+
"theme",
|
|
42
|
+
"elements"
|
|
43
|
+
],
|
|
44
|
+
"author": "Ticketlayer",
|
|
45
|
+
"license": "MIT",
|
|
46
|
+
"engines": {
|
|
47
|
+
"node": ">=22.0.0"
|
|
48
|
+
},
|
|
49
|
+
"publishConfig": {
|
|
50
|
+
"access": "public",
|
|
51
|
+
"registry": "https://registry.npmjs.org/"
|
|
52
|
+
},
|
|
53
|
+
"devDependencies": {
|
|
54
|
+
"typescript": "^5.8.3"
|
|
55
|
+
},
|
|
56
|
+
"scripts": {
|
|
57
|
+
"generate": "node scripts/generate.mjs",
|
|
58
|
+
"build": "node scripts/generate.mjs --check && tsc -p tsconfig.json",
|
|
59
|
+
"lint": "node scripts/generate.mjs --check",
|
|
60
|
+
"pretest": "pnpm run build",
|
|
61
|
+
"test": "node --test test/*.test.mjs",
|
|
62
|
+
"typecheck": "tsc -p tsconfig.json --noEmit"
|
|
63
|
+
}
|
|
64
|
+
}
|