jamdesk 1.1.201 → 1.1.203
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/dist/__tests__/unit/migrate-risky-expression-warning.test.d.ts +2 -0
- package/dist/__tests__/unit/migrate-risky-expression-warning.test.d.ts.map +1 -0
- package/dist/__tests__/unit/migrate-risky-expression-warning.test.js +47 -0
- package/dist/__tests__/unit/migrate-risky-expression-warning.test.js.map +1 -0
- package/dist/commands/migrate/convert-mdx.d.ts.map +1 -1
- package/dist/commands/migrate/convert-mdx.js +5 -1
- package/dist/commands/migrate/convert-mdx.js.map +1 -1
- package/dist/commands/validate.d.ts.map +1 -1
- package/dist/commands/validate.js +7 -1
- package/dist/commands/validate.js.map +1 -1
- package/dist/lib/risky-expression-scanner.d.ts.map +1 -1
- package/dist/lib/risky-expression-scanner.js +53 -0
- package/dist/lib/risky-expression-scanner.js.map +1 -1
- package/dist/lib/validate-risky-expressions.d.ts +6 -0
- package/dist/lib/validate-risky-expressions.d.ts.map +1 -1
- package/dist/lib/validate-risky-expressions.js +5 -1
- package/dist/lib/validate-risky-expressions.js.map +1 -1
- package/package.json +1 -1
- package/vendored/app/globals.css +57 -0
- package/vendored/components/theme/ThemeToggle.tsx +4 -1
- package/vendored/lib/mdx-inline-components.ts +4 -0
- package/vendored/lib/preprocess-mdx.ts +19 -1
- package/vendored/lib/render-doc-page.tsx +24 -3
- package/vendored/lib/risky-expression-scanner.ts +60 -0
- package/vendored/lib/snippet-compiler-isr.ts +11 -1
- package/vendored/lib/snippet-loader-isr.ts +95 -2
- package/vendored/lib/strip-event-handlers.ts +250 -0
- package/vendored/lib/user-utility-css.ts +250 -0
- package/vendored/workspace-package-lock.json +49 -49
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
import { stripFencedBlocks } from './preprocess-mdx';
|
|
2
|
+
import { logger } from '../shared/logger';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* user-utility-css — generates CSS at render time for the Tailwind
|
|
6
|
+
* ARBITRARY-VALUE classes an author writes in their own MDX.
|
|
7
|
+
*
|
|
8
|
+
* WHY this is needed, and why only arbitrary values:
|
|
9
|
+
* Tailwind generates CSS for the class names it can see when the ISR app is
|
|
10
|
+
* BUILT. Customer MDX lives in R2 and is rendered long afterwards, so Tailwind
|
|
11
|
+
* never sees it. Standard utilities survive that gap by luck — `px-4`,
|
|
12
|
+
* `rounded-md`, `text-black` and friends are already in the bundle because a
|
|
13
|
+
* platform component happens to use them, and every standard class in the
|
|
14
|
+
* production customer page that prompted this was in fact present. Arbitrary
|
|
15
|
+
* values can NEVER survive it: `bg-[#ED8200]` has an infinite value space, so
|
|
16
|
+
* nothing can pre-generate it. That page rendered a `<button>` with padding and
|
|
17
|
+
* rounded corners and no background — it read as plain text.
|
|
18
|
+
*
|
|
19
|
+
* So this deliberately handles arbitrary values ONLY. That is not a shortcut:
|
|
20
|
+
* the utilities-only compiler entry used here provably CANNOT emit theme-backed
|
|
21
|
+
* utilities (`px-4` needs `--spacing`, `text-red-500` needs the color palette),
|
|
22
|
+
* and feeding it those candidates would burn work to produce nothing. Closing
|
|
23
|
+
* the standard-utility half is a different job — a build-time safelist — and is
|
|
24
|
+
* not needed while the bundle already covers them.
|
|
25
|
+
*
|
|
26
|
+
* WHY the output is safe to inject:
|
|
27
|
+
* Tailwind wraps its own output in `@layer utilities`, so a generated rule lands
|
|
28
|
+
* in exactly the layer it would have occupied had the build seen it. That
|
|
29
|
+
* matters here specifically: `app/globals.css` imports `themes/base.css`
|
|
30
|
+
* UNLAYERED, and unlayered rules beat layered ones regardless of specificity
|
|
31
|
+
* (see `components/mdx/markdown-classes.ts`). Emitting these rules unlayered
|
|
32
|
+
* would let an author's class silently outrank theme CSS. It does not.
|
|
33
|
+
*/
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* The whole stylesheet this compiles. Deliberately a literal with no `@import`:
|
|
37
|
+
* the compiler then never touches the filesystem, so nothing depends on
|
|
38
|
+
* Next.js tracing `node_modules/tailwindcss/*.css` into the serverless bundle
|
|
39
|
+
* (it traces JS imports, and a runtime `fs.readFile` is invisible to it — this
|
|
40
|
+
* would have failed in production and worked locally).
|
|
41
|
+
*
|
|
42
|
+
* The `@layer utilities` wrapper is ours rather than Tailwind's, and it is
|
|
43
|
+
* load-bearing — see the note on cascade layers in the file header.
|
|
44
|
+
*
|
|
45
|
+
* The `@theme` block declares ONLY breakpoints. Without it a responsive
|
|
46
|
+
* arbitrary value (`md:bg-[#ED8200]`) compiles to nothing and renders unstyled —
|
|
47
|
+
* failing exactly as silently as the bug this file exists to fix, since the
|
|
48
|
+
* variant needs `--breakpoint-*` to build its media query. Verified that adding
|
|
49
|
+
* it leaks no `:root` custom properties and no preflight into the output.
|
|
50
|
+
*
|
|
51
|
+
* These are Tailwind's defaults, duplicated here because the compiler gets no
|
|
52
|
+
* config. `tailwind.config.ts` does not override `screens`, and a test pins
|
|
53
|
+
* that — if it ever does, these must change with it.
|
|
54
|
+
*
|
|
55
|
+
* `@custom-variant dark` is the same problem, and it bites HARDER than the
|
|
56
|
+
* breakpoints did. `tailwind.config.ts` sets `darkMode: 'class'`, but the
|
|
57
|
+
* runtime compiler gets no config and so falls back to Tailwind's default
|
|
58
|
+
* `@media (prefers-color-scheme: dark)`. That does not merely fail to apply —
|
|
59
|
+
* it applies at the WRONG TIME: on the reader's OS preference rather than the
|
|
60
|
+
* site's theme toggle, so `dark:bg-[#0b0b0b]` would paint a dark background
|
|
61
|
+
* under light-theme text. Unlike every other gap in this file, that is worse
|
|
62
|
+
* than generating nothing. The selector below is byte-identical to what the
|
|
63
|
+
* build-time bundle emits (`dark\:hidden:is(.dark *)`), and a test pins the
|
|
64
|
+
* `darkMode` setting it mirrors.
|
|
65
|
+
*
|
|
66
|
+
* Nothing else from the theme is pulled in, which is why only arbitrary values
|
|
67
|
+
* can be generated.
|
|
68
|
+
*/
|
|
69
|
+
const UTILITIES_ENTRY = [
|
|
70
|
+
'@custom-variant dark (&:is(.dark *));',
|
|
71
|
+
'@theme {',
|
|
72
|
+
' --breakpoint-sm: 40rem;',
|
|
73
|
+
' --breakpoint-md: 48rem;',
|
|
74
|
+
' --breakpoint-lg: 64rem;',
|
|
75
|
+
' --breakpoint-xl: 80rem;',
|
|
76
|
+
' --breakpoint-2xl: 96rem;',
|
|
77
|
+
'}',
|
|
78
|
+
'@layer utilities { @tailwind utilities; }',
|
|
79
|
+
].join('\n');
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Class attributes in author MDX/JSX. Covers `class="…"`, `className="…"`,
|
|
83
|
+
* `className='…'` and `className={"…"}` / `{'…'}` / {`…`}. A className built
|
|
84
|
+
* from an expression is out of reach and is left alone — an author writing
|
|
85
|
+
* computed classes is already outside what a docs page can round-trip.
|
|
86
|
+
*
|
|
87
|
+
* Values deliberately allow newlines, because a formatted JSX `className`
|
|
88
|
+
* legitimately wraps across lines. The cost is that one unbalanced `class="` in
|
|
89
|
+
* prose would swallow everything up to the next quote anywhere in the document.
|
|
90
|
+
* That is bounded by truncating the captured VALUE (see MAX_ATTR_VALUE_LENGTH)
|
|
91
|
+
* rather than by bounding the regex: a bounded quantifier makes an over-long
|
|
92
|
+
* attribute fail to match AT ALL, so a page with a very long class list would
|
|
93
|
+
* silently get no styling instead of most of it.
|
|
94
|
+
*/
|
|
95
|
+
const CLASS_ATTR =
|
|
96
|
+
/(?<![-\w])class(?:Name)?\s*=\s*(?:"([^"]*)"|'([^']*)'|\{\s*[`'"]([^`'"]*)[`'"]\s*\})/g;
|
|
97
|
+
|
|
98
|
+
/** Caps: a page far past these is pathological, not authored. */
|
|
99
|
+
export const MAX_UTILITY_CANDIDATES = 500;
|
|
100
|
+
const MAX_CANDIDATE_LENGTH = 120;
|
|
101
|
+
/**
|
|
102
|
+
* How much of one class attribute's value is scanned. Bounds a runaway match
|
|
103
|
+
* from an unbalanced quote while still letting a long-but-real class list
|
|
104
|
+
* contribute its leading classes — see the note on CLASS_ATTR.
|
|
105
|
+
*/
|
|
106
|
+
const MAX_ATTR_VALUE_LENGTH = 2000;
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* A candidate must contain `[` to be worth compiling (see the file header), and
|
|
110
|
+
* must not carry characters that could break out of the `<style>` element it is
|
|
111
|
+
* injected into. Tailwind escapes its selectors and would reject these anyway,
|
|
112
|
+
* but rejecting them here means the guarantee does not depend on that.
|
|
113
|
+
*/
|
|
114
|
+
function isCompilableCandidate(token: string): boolean {
|
|
115
|
+
if (token.length > MAX_CANDIDATE_LENGTH) return false;
|
|
116
|
+
if (!token.includes('[')) return false;
|
|
117
|
+
return !/[<>"'`\s]/.test(token);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* Pull arbitrary-value Tailwind candidates out of raw author source.
|
|
122
|
+
* Returns them sorted and de-duplicated so the cache key is stable.
|
|
123
|
+
*/
|
|
124
|
+
export function extractUtilityCandidates(source: string): string[] {
|
|
125
|
+
if (!source) return [];
|
|
126
|
+
const found = new Set<string>();
|
|
127
|
+
|
|
128
|
+
// A ```html fence demonstrating `class="bg-[#fff]"` is documentation, not
|
|
129
|
+
// markup to style. Uses the same strict fence regex the snippet-import
|
|
130
|
+
// scanner uses, so the two cannot disagree about what a code block is.
|
|
131
|
+
const scannable = stripFencedBlocks(source);
|
|
132
|
+
|
|
133
|
+
for (const match of scannable.matchAll(CLASS_ATTR)) {
|
|
134
|
+
const value = match[1] ?? match[2] ?? match[3];
|
|
135
|
+
if (!value) continue;
|
|
136
|
+
for (const token of value.slice(0, MAX_ATTR_VALUE_LENGTH).split(/\s+/)) {
|
|
137
|
+
if (isCompilableCandidate(token)) found.add(token);
|
|
138
|
+
if (found.size >= MAX_UTILITY_CANDIDATES) break;
|
|
139
|
+
}
|
|
140
|
+
if (found.size >= MAX_UTILITY_CANDIDATES) break;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
return [...found].sort();
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
/**
|
|
147
|
+
* The entry above has no `@import`, `@plugin` or `@config`, so neither of the
|
|
148
|
+
* loaders Tailwind accepts is reachable. Both get this one, which throws rather
|
|
149
|
+
* than returning something empty so that a future edit which reintroduces a
|
|
150
|
+
* filesystem dependency fails loudly here instead of silently in production.
|
|
151
|
+
*/
|
|
152
|
+
async function refuseFilesystemLoad(): Promise<never> {
|
|
153
|
+
throw new Error('user-utility-css: the utilities entry must not load from disk');
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* Compiled-CSS cache, keyed by the exact candidate set.
|
|
158
|
+
*
|
|
159
|
+
* A Tailwind compiler ACCUMULATES candidates across `build()` calls — a second
|
|
160
|
+
* call still emits the first call's rules. Reusing one compiler across renders
|
|
161
|
+
* would therefore grow without bound and leak one project's classes into
|
|
162
|
+
* another project's page. So each distinct candidate set gets a FRESH compiler
|
|
163
|
+
* (~3ms) and only the finished CSS is cached.
|
|
164
|
+
*/
|
|
165
|
+
const cssCache = new Map<string, string>();
|
|
166
|
+
const MAX_CACHE_ENTRIES = 500;
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* Build the extra stylesheet for a page's arbitrary-value classes.
|
|
170
|
+
* Returns '' when there is nothing to generate.
|
|
171
|
+
*/
|
|
172
|
+
export async function buildUserUtilityCss(
|
|
173
|
+
candidates: string[]
|
|
174
|
+
): Promise<string> {
|
|
175
|
+
if (candidates.length === 0) return '';
|
|
176
|
+
|
|
177
|
+
const key = candidates.join(' ');
|
|
178
|
+
const cached = cssCache.get(key);
|
|
179
|
+
if (cached !== undefined) return cached;
|
|
180
|
+
|
|
181
|
+
let css = '';
|
|
182
|
+
try {
|
|
183
|
+
// Imported lazily on purpose. Docs routes are force-dynamic, so a static
|
|
184
|
+
// import would pay Tailwind's ~23ms module load on EVERY cold start —
|
|
185
|
+
// including the majority of pages that carry no arbitrary-value class at
|
|
186
|
+
// all. The empty-candidates early return above means reaching this line
|
|
187
|
+
// already means there is real work to do.
|
|
188
|
+
const { compile } = await import('tailwindcss');
|
|
189
|
+
const compiler = await compile(UTILITIES_ENTRY, {
|
|
190
|
+
// Only ever used to resolve relative @imports, of which the entry has
|
|
191
|
+
// none. Pinned rather than process.cwd() so this cannot acquire a
|
|
192
|
+
// dependency on where the server happens to be started from.
|
|
193
|
+
base: '/',
|
|
194
|
+
loadStylesheet: refuseFilesystemLoad,
|
|
195
|
+
loadModule: refuseFilesystemLoad,
|
|
196
|
+
});
|
|
197
|
+
css = compiler.build(candidates);
|
|
198
|
+
// When nothing matched, Tailwind still emits a banner plus a bare
|
|
199
|
+
// `@layer utilities;` DECLARATION (semicolon, no block). Testing for the
|
|
200
|
+
// string '@layer' would pass on that and ship an empty <style>; the brace
|
|
201
|
+
// is what distinguishes a real rule block.
|
|
202
|
+
if (!/@layer[^;{]*\{/.test(css)) {
|
|
203
|
+
// Candidates existed but Tailwind matched none of them. Logged because
|
|
204
|
+
// this is otherwise INDISTINGUISHABLE from a page that simply has no
|
|
205
|
+
// arbitrary classes — both are an empty string and no log line. That is
|
|
206
|
+
// precisely how the responsive-variant gap (`md:bg-[#ED8200]` emitting
|
|
207
|
+
// nothing without `--breakpoint-*`) hid: the failure state was an
|
|
208
|
+
// ABSENCE of output, so nothing could alert on it. A future Tailwind
|
|
209
|
+
// upgrade or a new variant form that stops compiling now says so.
|
|
210
|
+
logger.warn('[user-utility-css] candidates matched no utilities', {
|
|
211
|
+
count: candidates.length,
|
|
212
|
+
sample: candidates.slice(0, 5),
|
|
213
|
+
});
|
|
214
|
+
css = '';
|
|
215
|
+
}
|
|
216
|
+
// Defence in depth for the `<style>` element this is injected into.
|
|
217
|
+
// `isCompilableCandidate` already rejects `<`, `>` and quotes, and Tailwind
|
|
218
|
+
// escapes what it emits — so reaching this branch should be impossible.
|
|
219
|
+
// Dropping the whole sheet rather than patching it keeps that an assertion
|
|
220
|
+
// instead of a sanitizer: a cosmetic loss, never a broken page.
|
|
221
|
+
if (/<\/|<!/.test(css)) {
|
|
222
|
+
logger.error('[user-utility-css] generated CSS contained markup; discarding');
|
|
223
|
+
css = '';
|
|
224
|
+
}
|
|
225
|
+
} catch (error) {
|
|
226
|
+
// Never let author styling break a page render — a missing background is a
|
|
227
|
+
// cosmetic loss, a throw here would be a 500.
|
|
228
|
+
logger.error('[user-utility-css] failed to compile author utilities', {
|
|
229
|
+
error: error instanceof Error ? error.message : String(error),
|
|
230
|
+
});
|
|
231
|
+
// Deliberately NOT cached. A thrown compile is the one outcome here that
|
|
232
|
+
// can be transient, and caching it would pin this page unstyled for the
|
|
233
|
+
// life of the process — silently, because the cache is checked before the
|
|
234
|
+
// logger, so it would never complain again. The empty result from the
|
|
235
|
+
// brace test above IS cached: that one is deterministic.
|
|
236
|
+
return '';
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
if (cssCache.size >= MAX_CACHE_ENTRIES) {
|
|
240
|
+
const oldest = cssCache.keys().next().value;
|
|
241
|
+
if (oldest !== undefined) cssCache.delete(oldest);
|
|
242
|
+
}
|
|
243
|
+
cssCache.set(key, css);
|
|
244
|
+
return css;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
/** Test seam — the cache is process-global and would otherwise leak between tests. */
|
|
248
|
+
export function __clearUserUtilityCssCache(): void {
|
|
249
|
+
cssCache.clear();
|
|
250
|
+
}
|
|
@@ -922,15 +922,15 @@
|
|
|
922
922
|
}
|
|
923
923
|
},
|
|
924
924
|
"node_modules/@next/env": {
|
|
925
|
-
"version": "16.3.
|
|
926
|
-
"resolved": "https://registry.npmjs.org/@next/env/-/env-16.3.
|
|
927
|
-
"integrity": "sha512-
|
|
925
|
+
"version": "16.3.4",
|
|
926
|
+
"resolved": "https://registry.npmjs.org/@next/env/-/env-16.3.4.tgz",
|
|
927
|
+
"integrity": "sha512-cjWZnUUa6jZq2kFaNe/ZyJdZonOZ/QoN0Zka2nz/FLOrfx14pQuM9c5RaSVkWMqgdt4ksgPAMWPyHSs/CyV48Q==",
|
|
928
928
|
"license": "MIT"
|
|
929
929
|
},
|
|
930
930
|
"node_modules/@next/mdx": {
|
|
931
|
-
"version": "16.3.
|
|
932
|
-
"resolved": "https://registry.npmjs.org/@next/mdx/-/mdx-16.3.
|
|
933
|
-
"integrity": "sha512-
|
|
931
|
+
"version": "16.3.4",
|
|
932
|
+
"resolved": "https://registry.npmjs.org/@next/mdx/-/mdx-16.3.4.tgz",
|
|
933
|
+
"integrity": "sha512-XEmW3ccWWNybofVOmgIEVhXtmNXM0u423iqkVXwPf29fht/tdpUiMDuMHQ4hMerE1477nOJrv5kM/F6qMcEMwA==",
|
|
934
934
|
"license": "MIT",
|
|
935
935
|
"dependencies": {
|
|
936
936
|
"source-map": "^0.7.0"
|
|
@@ -949,9 +949,9 @@
|
|
|
949
949
|
}
|
|
950
950
|
},
|
|
951
951
|
"node_modules/@next/swc-darwin-arm64": {
|
|
952
|
-
"version": "16.3.
|
|
953
|
-
"resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-16.3.
|
|
954
|
-
"integrity": "sha512-
|
|
952
|
+
"version": "16.3.4",
|
|
953
|
+
"resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-16.3.4.tgz",
|
|
954
|
+
"integrity": "sha512-iBr3I5LZNk5/bgl5//iTgD2tcym14MX0Xo7fD//u9dYAEgGzza1y9oywluPtf74YnOswVdH1908aK9xVz7zQTw==",
|
|
955
955
|
"cpu": [
|
|
956
956
|
"arm64"
|
|
957
957
|
],
|
|
@@ -965,9 +965,9 @@
|
|
|
965
965
|
}
|
|
966
966
|
},
|
|
967
967
|
"node_modules/@next/swc-darwin-x64": {
|
|
968
|
-
"version": "16.3.
|
|
969
|
-
"resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-16.3.
|
|
970
|
-
"integrity": "sha512-
|
|
968
|
+
"version": "16.3.4",
|
|
969
|
+
"resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-16.3.4.tgz",
|
|
970
|
+
"integrity": "sha512-2dpiSyl2Jw/NrBPaU2MAKGSa+2MR82pJIn4Sm5Rjr+gxAeuh0z158Su3Z2O8zn7UNNq+ej4bToed6RcRN/Lydg==",
|
|
971
971
|
"cpu": [
|
|
972
972
|
"x64"
|
|
973
973
|
],
|
|
@@ -981,9 +981,9 @@
|
|
|
981
981
|
}
|
|
982
982
|
},
|
|
983
983
|
"node_modules/@next/swc-linux-arm64-gnu": {
|
|
984
|
-
"version": "16.3.
|
|
985
|
-
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-16.3.
|
|
986
|
-
"integrity": "sha512
|
|
984
|
+
"version": "16.3.4",
|
|
985
|
+
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-16.3.4.tgz",
|
|
986
|
+
"integrity": "sha512-+t+U8HZT+fApePCS5h89CSH3datz29MkzyfCn+6fpsZBG/oiEOhINcb9rtkv6sdpToLGFn2e6146NzaKCXkqrA==",
|
|
987
987
|
"cpu": [
|
|
988
988
|
"arm64"
|
|
989
989
|
],
|
|
@@ -997,9 +997,9 @@
|
|
|
997
997
|
}
|
|
998
998
|
},
|
|
999
999
|
"node_modules/@next/swc-linux-arm64-musl": {
|
|
1000
|
-
"version": "16.3.
|
|
1001
|
-
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-16.3.
|
|
1002
|
-
"integrity": "sha512-
|
|
1000
|
+
"version": "16.3.4",
|
|
1001
|
+
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-16.3.4.tgz",
|
|
1002
|
+
"integrity": "sha512-mx03GNs1ocQA5JQ4FxDMmIsNkdrZh8cuezKCrId28e5/gIPU/l7Kcy2+vmCCzdjnnmXJy+iOAu+7K0QppO6Urg==",
|
|
1003
1003
|
"cpu": [
|
|
1004
1004
|
"arm64"
|
|
1005
1005
|
],
|
|
@@ -1013,9 +1013,9 @@
|
|
|
1013
1013
|
}
|
|
1014
1014
|
},
|
|
1015
1015
|
"node_modules/@next/swc-linux-x64-gnu": {
|
|
1016
|
-
"version": "16.3.
|
|
1017
|
-
"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-16.3.
|
|
1018
|
-
"integrity": "sha512-
|
|
1016
|
+
"version": "16.3.4",
|
|
1017
|
+
"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-16.3.4.tgz",
|
|
1018
|
+
"integrity": "sha512-YIhGY6fSMfha52bnVxnzc9zaVBzJg+cqQTOD8tXIBSx4fuv0pVMxQTE0PaS59YhnMOiYiG09IMwxJAf/CFm/Dw==",
|
|
1019
1019
|
"cpu": [
|
|
1020
1020
|
"x64"
|
|
1021
1021
|
],
|
|
@@ -1029,9 +1029,9 @@
|
|
|
1029
1029
|
}
|
|
1030
1030
|
},
|
|
1031
1031
|
"node_modules/@next/swc-linux-x64-musl": {
|
|
1032
|
-
"version": "16.3.
|
|
1033
|
-
"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-16.3.
|
|
1034
|
-
"integrity": "sha512
|
|
1032
|
+
"version": "16.3.4",
|
|
1033
|
+
"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-16.3.4.tgz",
|
|
1034
|
+
"integrity": "sha512-+eaaX6axpDb0yF1GCpiERe6njplvdC+nks/fKfcHu3XPGRrald8P3/X7yv7QLdjA51knnxwl9pxdIJsg+w1L+Q==",
|
|
1035
1035
|
"cpu": [
|
|
1036
1036
|
"x64"
|
|
1037
1037
|
],
|
|
@@ -1045,9 +1045,9 @@
|
|
|
1045
1045
|
}
|
|
1046
1046
|
},
|
|
1047
1047
|
"node_modules/@next/swc-win32-arm64-msvc": {
|
|
1048
|
-
"version": "16.3.
|
|
1049
|
-
"resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-16.3.
|
|
1050
|
-
"integrity": "sha512-
|
|
1048
|
+
"version": "16.3.4",
|
|
1049
|
+
"resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-16.3.4.tgz",
|
|
1050
|
+
"integrity": "sha512-0jcXW7Xs/uzICrmgV3MhDYDeRy++1CqnpDIerlPIqYO4bhzB4WNbX/aRnQclustsAyTkFKB0z6rbcjmNg5tR8A==",
|
|
1051
1051
|
"cpu": [
|
|
1052
1052
|
"arm64"
|
|
1053
1053
|
],
|
|
@@ -1061,9 +1061,9 @@
|
|
|
1061
1061
|
}
|
|
1062
1062
|
},
|
|
1063
1063
|
"node_modules/@next/swc-win32-x64-msvc": {
|
|
1064
|
-
"version": "16.3.
|
|
1065
|
-
"resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-16.3.
|
|
1066
|
-
"integrity": "sha512-
|
|
1064
|
+
"version": "16.3.4",
|
|
1065
|
+
"resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-16.3.4.tgz",
|
|
1066
|
+
"integrity": "sha512-vvBzwu1pYQCp92maZCFCIw/XgOTMR5tur9GjakwIo2cmwRTMKajRZZDS9+e4KsUZWKu1E007WUeAFXRRjZeuzw==",
|
|
1067
1067
|
"cpu": [
|
|
1068
1068
|
"x64"
|
|
1069
1069
|
],
|
|
@@ -1077,9 +1077,9 @@
|
|
|
1077
1077
|
}
|
|
1078
1078
|
},
|
|
1079
1079
|
"node_modules/@next/third-parties": {
|
|
1080
|
-
"version": "16.3.
|
|
1081
|
-
"resolved": "https://registry.npmjs.org/@next/third-parties/-/third-parties-16.3.
|
|
1082
|
-
"integrity": "sha512-
|
|
1080
|
+
"version": "16.3.4",
|
|
1081
|
+
"resolved": "https://registry.npmjs.org/@next/third-parties/-/third-parties-16.3.4.tgz",
|
|
1082
|
+
"integrity": "sha512-DjyyOoBHPHYFgQ0l9VXJFWMeO5FvnFP+bXM9ZC0eGYluVwpNIvMjDPhDhM/VlhK+VK423G+8LMD+y/xwEKAi+w==",
|
|
1083
1083
|
"license": "MIT",
|
|
1084
1084
|
"dependencies": {
|
|
1085
1085
|
"third-party-capital": "1.0.20"
|
|
@@ -2925,9 +2925,9 @@
|
|
|
2925
2925
|
"license": "MIT"
|
|
2926
2926
|
},
|
|
2927
2927
|
"node_modules/electron-to-chromium": {
|
|
2928
|
-
"version": "1.5.
|
|
2929
|
-
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.
|
|
2930
|
-
"integrity": "sha512-
|
|
2928
|
+
"version": "1.5.418",
|
|
2929
|
+
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.418.tgz",
|
|
2930
|
+
"integrity": "sha512-UzS26r3AEbG5wSoGVpJKqwHIU9zwQN7LHdVIThDrJpS0I5KdlXFMEb8543fhc9dVnIIAST6ar8rhwa00AL5MlA==",
|
|
2931
2931
|
"license": "ISC"
|
|
2932
2932
|
},
|
|
2933
2933
|
"node_modules/enhanced-resolve": {
|
|
@@ -5310,12 +5310,12 @@
|
|
|
5310
5310
|
}
|
|
5311
5311
|
},
|
|
5312
5312
|
"node_modules/next": {
|
|
5313
|
-
"version": "16.3.
|
|
5314
|
-
"resolved": "https://registry.npmjs.org/next/-/next-16.3.
|
|
5315
|
-
"integrity": "sha512
|
|
5313
|
+
"version": "16.3.4",
|
|
5314
|
+
"resolved": "https://registry.npmjs.org/next/-/next-16.3.4.tgz",
|
|
5315
|
+
"integrity": "sha512-/Ztf6CeRH+ejEXUrYtqI4gkS66eFIHuSwqi60RgcpWKodxFZx2/dqVCMKBwILfAHXQ+F1b1vAudgj3mnxqtoIA==",
|
|
5316
5316
|
"license": "MIT",
|
|
5317
5317
|
"dependencies": {
|
|
5318
|
-
"@next/env": "16.3.
|
|
5318
|
+
"@next/env": "16.3.4",
|
|
5319
5319
|
"@swc/helpers": "0.5.23",
|
|
5320
5320
|
"baseline-browser-mapping": "^2.9.19",
|
|
5321
5321
|
"caniuse-lite": "^1.0.30001579",
|
|
@@ -5329,15 +5329,15 @@
|
|
|
5329
5329
|
"node": ">=20.9.0"
|
|
5330
5330
|
},
|
|
5331
5331
|
"optionalDependencies": {
|
|
5332
|
-
"@next/swc-darwin-arm64": "16.3.
|
|
5333
|
-
"@next/swc-darwin-x64": "16.3.
|
|
5334
|
-
"@next/swc-linux-arm64-gnu": "16.3.
|
|
5335
|
-
"@next/swc-linux-arm64-musl": "16.3.
|
|
5336
|
-
"@next/swc-linux-x64-gnu": "16.3.
|
|
5337
|
-
"@next/swc-linux-x64-musl": "16.3.
|
|
5338
|
-
"@next/swc-win32-arm64-msvc": "16.3.
|
|
5339
|
-
"@next/swc-win32-x64-msvc": "16.3.
|
|
5340
|
-
"sharp": "^0.35.
|
|
5332
|
+
"@next/swc-darwin-arm64": "16.3.4",
|
|
5333
|
+
"@next/swc-darwin-x64": "16.3.4",
|
|
5334
|
+
"@next/swc-linux-arm64-gnu": "16.3.4",
|
|
5335
|
+
"@next/swc-linux-arm64-musl": "16.3.4",
|
|
5336
|
+
"@next/swc-linux-x64-gnu": "16.3.4",
|
|
5337
|
+
"@next/swc-linux-x64-musl": "16.3.4",
|
|
5338
|
+
"@next/swc-win32-arm64-msvc": "16.3.4",
|
|
5339
|
+
"@next/swc-win32-x64-msvc": "16.3.4",
|
|
5340
|
+
"sharp": "^0.35.4"
|
|
5341
5341
|
},
|
|
5342
5342
|
"peerDependencies": {
|
|
5343
5343
|
"@opentelemetry/api": "^1.1.0",
|