scrabble-solver 2.18.2 → 2.18.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/.nx/workspace-data/d/server-process.json +3 -3
- package/.nx/workspace-data/file-map.json +1472 -1435
- package/.nx/workspace-data/lockfile-dependencies.hash +1 -1
- package/.nx/workspace-data/lockfile-nodes.hash +1 -1
- package/.nx/workspace-data/nx_files.nxt +0 -0
- package/.nx/workspace-data/parsed-lock-file.dependencies.json +528 -713
- package/.nx/workspace-data/parsed-lock-file.nodes.json +965 -1370
- package/.nx/workspace-data/project-graph.json +1561 -2156
- package/.nx/workspace-data/source-maps.json +48 -8
- package/.oxlintrc.json +0 -1
- package/CLAUDE.md +10 -8
- package/README.md +1 -1
- package/bun.lock +230 -279
- package/lerna.json +1 -1
- package/package.json +7 -6
- package/packages/configs/build/games/index.d.ts +1 -0
- package/packages/configs/build/games/index.js +1 -0
- package/packages/configs/build/games/wyrazy.d.ts +19 -0
- package/packages/configs/build/games/wyrazy.js +73 -0
- package/packages/configs/build/languages/polish.d.ts +1 -0
- package/packages/configs/build/languages/polish.js +39 -1
- package/packages/configs/package.json +5 -4
- package/packages/configs/src/games/index.ts +1 -0
- package/packages/configs/src/games/wyrazy.ts +71 -0
- package/packages/configs/src/languages/polish.ts +40 -1
- package/packages/constants/package.json +1 -1
- package/packages/dictionaries/bin/update-dictionaries.js +2 -5
- package/packages/dictionaries/build/Dictionaries.d.ts +1 -1
- package/packages/dictionaries/build/Dictionaries.js +9 -4
- package/packages/dictionaries/build/lib/DiskCache.js +1 -1
- package/packages/dictionaries/build/lib/downloadDictionary.d.ts +1 -1
- package/packages/dictionaries/build/lib/downloadDictionary.js +12 -7
- package/packages/dictionaries/package.json +4 -4
- package/packages/dictionaries/src/Dictionaries.ts +13 -6
- package/packages/dictionaries/src/lib/DiskCache.ts +2 -2
- package/packages/dictionaries/src/lib/downloadDictionary.ts +14 -6
- package/packages/logger/README.md +18 -0
- package/packages/logger/build/constants.d.ts +3 -0
- package/packages/logger/build/constants.js +4 -1
- package/packages/logger/build/describeError.d.ts +5 -0
- package/packages/logger/build/describeError.js +23 -0
- package/packages/logger/build/events.d.ts +92 -0
- package/packages/logger/build/events.js +13 -0
- package/packages/logger/build/formatCsvRow.d.ts +2 -0
- package/packages/logger/build/formatCsvRow.js +20 -0
- package/packages/logger/build/index.d.ts +5 -1
- package/packages/logger/build/index.js +13 -3
- package/packages/logger/build/logError.d.ts +4 -0
- package/packages/logger/build/logError.js +17 -0
- package/packages/logger/build/logEvent.d.ts +3 -0
- package/packages/logger/build/logEvent.js +29 -0
- package/packages/logger/package.json +7 -8
- package/packages/logger/scripts/export-csv.ts +113 -0
- package/packages/logger/scripts/readEvents.ts +34 -0
- package/packages/logger/scripts/tsconfig.json +10 -0
- package/packages/logger/src/constants.ts +9 -0
- package/packages/logger/src/describeError.test.ts +44 -0
- package/packages/logger/src/describeError.ts +30 -0
- package/packages/logger/src/events.ts +103 -0
- package/packages/logger/src/formatCsvRow.test.ts +41 -0
- package/packages/logger/src/formatCsvRow.ts +24 -0
- package/packages/logger/src/index.ts +13 -1
- package/packages/logger/src/logError.ts +24 -0
- package/packages/logger/src/logEvent.test.ts +59 -0
- package/packages/logger/src/logEvent.ts +26 -0
- package/packages/scrabble-solver/.next/BUILD_ID +1 -1
- package/packages/scrabble-solver/.next/build-manifest.json +15 -15
- package/packages/scrabble-solver/.next/cache/.previewinfo +1 -1
- package/packages/scrabble-solver/.next/cache/.rscinfo +1 -1
- package/packages/scrabble-solver/.next/cache/.tsbuildinfo +1 -1
- package/packages/scrabble-solver/.next/cache/webpack/client-production/0.pack +0 -0
- package/packages/scrabble-solver/.next/cache/webpack/client-production/index.pack +0 -0
- package/packages/scrabble-solver/.next/cache/webpack/client-production/index.pack.old +0 -0
- package/packages/scrabble-solver/.next/cache/webpack/edge-server-production/index.pack +0 -0
- package/packages/scrabble-solver/.next/cache/webpack/edge-server-production/index.pack.old +0 -0
- package/packages/scrabble-solver/.next/cache/webpack/server-production/0.pack +0 -0
- package/packages/scrabble-solver/.next/cache/webpack/server-production/index.pack +0 -0
- package/packages/scrabble-solver/.next/cache/webpack/server-production/index.pack.old +0 -0
- package/packages/scrabble-solver/.next/diagnostics/framework.json +1 -1
- package/packages/scrabble-solver/.next/dynamic-css-manifest.json +1 -1
- package/packages/scrabble-solver/.next/prerender-manifest.json +4 -4
- package/packages/scrabble-solver/.next/react-loadable-manifest.json +6 -6
- package/packages/scrabble-solver/.next/routes-manifest.json +1 -1
- package/packages/scrabble-solver/.next/server/chunks/546.js +1 -1
- package/packages/scrabble-solver/.next/server/chunks/612.js +5 -0
- package/packages/scrabble-solver/.next/server/chunks/67.js +1 -1
- package/packages/scrabble-solver/.next/server/chunks/712.js +1 -1
- package/packages/scrabble-solver/.next/server/chunks/715.js +1 -0
- package/packages/scrabble-solver/.next/server/chunks/812.js +1 -1
- package/packages/scrabble-solver/.next/server/chunks/961.js +1 -1
- package/packages/scrabble-solver/.next/server/dynamic-css-manifest.js +1 -1
- package/packages/scrabble-solver/.next/server/middleware-build-manifest.js +1 -1
- package/packages/scrabble-solver/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/packages/scrabble-solver/.next/server/pages/404.html +3 -3
- package/packages/scrabble-solver/.next/server/pages/500.html +3 -3
- package/packages/scrabble-solver/.next/server/pages/_app.js.nft.json +1 -1
- package/packages/scrabble-solver/.next/server/pages/_document.js +2 -2
- package/packages/scrabble-solver/.next/server/pages/_document.js.nft.json +1 -1
- package/packages/scrabble-solver/.next/server/pages/api/dictionary/[locale]/[word].js +2 -2
- package/packages/scrabble-solver/.next/server/pages/api/dictionary/[locale]/[word].js.nft.json +1 -1
- package/packages/scrabble-solver/.next/server/pages/api/dictionary/[locale].js +1 -1
- package/packages/scrabble-solver/.next/server/pages/api/dictionary/[locale].js.nft.json +1 -1
- package/packages/scrabble-solver/.next/server/pages/api/solve.js +1 -1
- package/packages/scrabble-solver/.next/server/pages/api/solve.js.nft.json +1 -1
- package/packages/scrabble-solver/.next/server/pages/api/verify.js +1 -1
- package/packages/scrabble-solver/.next/server/pages/api/verify.js.nft.json +1 -1
- package/packages/scrabble-solver/.next/server/pages/api/visit.js +1 -1
- package/packages/scrabble-solver/.next/server/pages/api/visit.js.nft.json +1 -1
- package/packages/scrabble-solver/.next/server/pages/index.html +3 -3
- package/packages/scrabble-solver/.next/server/pages/index.js +1 -1
- package/packages/scrabble-solver/.next/server/pages/index.js.nft.json +1 -1
- package/packages/scrabble-solver/.next/server/pages/index.json +1 -1
- package/packages/scrabble-solver/.next/server/pages/not-found.html +3 -3
- package/packages/scrabble-solver/.next/server/pages/not-found.js.nft.json +1 -1
- package/packages/scrabble-solver/.next/static/{nvGZh1gPuX98L07YmxlYD → TAqjh9l5VJQOfJ4SzgPk2}/_buildManifest.js +1 -1
- package/packages/scrabble-solver/.next/static/chunks/101-f341f70c10d71212.js +3 -0
- package/packages/scrabble-solver/.next/static/chunks/256.6a20b23a766cfebd.js +1 -0
- package/packages/scrabble-solver/.next/static/chunks/693.d295da7c7b873986.js +1 -0
- package/packages/scrabble-solver/.next/static/chunks/980.dd35e807b18063c1.js +1 -0
- package/packages/scrabble-solver/.next/static/chunks/{main-7e52da35a4beea0b.js → main-6e9ac37e28d2b899.js} +1 -1
- package/packages/scrabble-solver/.next/static/chunks/pages/_app-9340d51f5a6787fc.js +1 -0
- package/packages/scrabble-solver/.next/static/chunks/pages/index-ea21d96a88f25000.js +1 -0
- package/packages/scrabble-solver/.next/static/chunks/{webpack-9f5c9d275348829b.js → webpack-d73aa4aae49cd800.js} +1 -1
- package/packages/scrabble-solver/.next/static/css/{92f85ce358a0a468.css → 4dbcacc1122ac6b9.css} +1 -1
- package/packages/scrabble-solver/.next/static/css/8b8087461767360a.css +1 -0
- package/packages/scrabble-solver/.next/static/css/{65bcc9440e067113.css → 98051ed25076b896.css} +1 -1
- package/packages/scrabble-solver/.next/trace +22 -21
- package/packages/scrabble-solver/.next/trace-build +1 -1
- package/packages/scrabble-solver/package.json +10 -10
- package/packages/scrabble-solver/public/llms.txt +1 -1
- package/packages/scrabble-solver/public/service-worker.js +1 -1
- package/packages/scrabble-solver/src/api/BadRequestError.ts +6 -0
- package/packages/scrabble-solver/src/api/index.ts +2 -1
- package/packages/scrabble-solver/src/api/withApiLog.ts +85 -0
- package/packages/scrabble-solver/src/components/Button/Button.module.scss +1 -1
- package/packages/scrabble-solver/src/components/Solver/Solver.module.scss +4 -4
- package/packages/scrabble-solver/src/components/Solver/Solver.tsx +2 -2
- package/packages/scrabble-solver/src/hooks/useColumns.ts +5 -7
- package/packages/scrabble-solver/src/modals/ResultsModal/ResultsModal.tsx +2 -2
- package/packages/scrabble-solver/src/modals/WordsModal/WordsModal.module.scss +1 -1
- package/packages/scrabble-solver/src/modals/WordsModal/WordsModal.tsx +2 -2
- package/packages/scrabble-solver/src/modals/WordsModal/components/WordsTable/WordsTable.tsx +2 -2
- package/packages/scrabble-solver/src/pages/api/dictionary/[locale]/[word].ts +22 -30
- package/packages/scrabble-solver/src/pages/api/dictionary/[locale]/index.ts +36 -42
- package/packages/scrabble-solver/src/pages/api/solve.ts +32 -42
- package/packages/scrabble-solver/src/pages/api/verify.ts +35 -43
- package/packages/scrabble-solver/src/pages/api/visit.ts +38 -13
- package/packages/scrabble-solver/src/pages/index.tsx +3 -3
- package/packages/scrabble-solver/src/parameters/index.ts +0 -2
- package/packages/scrabble-solver/src/sdk/solve.ts +3 -9
- package/packages/scrabble-solver/src/sdk/verify.ts +2 -10
- package/packages/scrabble-solver/src/sdk/visit.ts +8 -3
- package/packages/scrabble-solver/src/state/sagas.ts +7 -1
- package/packages/scrabble-solver/src/styles/_tokens.scss +0 -2
- package/packages/scrabble-solver/src/styles/mixins.scss +0 -5
- package/packages/scrabble-solver/src/styles/variables.module.scss +0 -1
- package/packages/scrabble-solver/src/styles/variables.module.scss.d.ts +0 -1
- package/packages/scrabble-solver/src/styles/variables.scss +1 -1
- package/packages/scrabble-solver/src/types/api.ts +7 -0
- package/packages/scrabble-solver/tsconfig.tsbuildinfo +1 -1
- package/packages/solver/package.json +5 -5
- package/packages/types/build/Game.d.ts +2 -1
- package/packages/types/build/Game.js +1 -0
- package/packages/types/package.json +2 -2
- package/packages/types/src/Game.ts +1 -0
- package/packages/word-definitions/package.json +2 -2
- package/packages/word-lists/package.json +2 -2
- package/playwright-report/index.html +1 -1
- package/packages/logger/build/logger.d.ts +0 -1
- package/packages/logger/build/logger.js +0 -28
- package/packages/logger/scripts/stats.js +0 -52
- package/packages/logger/src/logger.ts +0 -30
- package/packages/scrabble-solver/.next/server/chunks/392.js +0 -1
- package/packages/scrabble-solver/.next/static/chunks/101-829ab8a8d310e7a0.js +0 -3
- package/packages/scrabble-solver/.next/static/chunks/256.66ff9fb6d7db9ec7.js +0 -1
- package/packages/scrabble-solver/.next/static/chunks/693.677c88e0eb1340b5.js +0 -1
- package/packages/scrabble-solver/.next/static/chunks/980.7ce17464fc56648a.js +0 -1
- package/packages/scrabble-solver/.next/static/chunks/pages/_app-f9ec81278ffa7b1a.js +0 -1
- package/packages/scrabble-solver/.next/static/chunks/pages/index-b5bf018100015277.js +0 -1
- package/packages/scrabble-solver/.next/static/css/a691348b788f8bc0.css +0 -1
- package/packages/scrabble-solver/src/api/getServerLoggingData.ts +0 -17
- package/packages/scrabble-solver/src/hooks/useIsCompactLayout.ts +0 -14
- /package/packages/scrabble-solver/.next/static/{nvGZh1gPuX98L07YmxlYD → TAqjh9l5VJQOfJ4SzgPk2}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { type EventValue } from './events';
|
|
2
|
+
|
|
3
|
+
const FORMULA_PREFIX = /^[=+\-@\t\r]/;
|
|
4
|
+
|
|
5
|
+
export function formatCsvRow(values: EventValue[]): string {
|
|
6
|
+
return `${values.map(formatCsvField).join(',')}\n`;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
function formatCsvField(value: EventValue): string {
|
|
10
|
+
if (typeof value === 'undefined') {
|
|
11
|
+
return '';
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
const text = typeof value === 'string' ? escapeFormula(value) : String(value);
|
|
15
|
+
return needsQuoting(text) ? `"${text.replaceAll('"', '""')}"` : text;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
function escapeFormula(text: string): string {
|
|
19
|
+
return FORMULA_PREFIX.test(text) ? `'${text}` : text;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
function needsQuoting(text: string): boolean {
|
|
23
|
+
return /[",\n\r]/.test(text) || text !== text.trim();
|
|
24
|
+
}
|
|
@@ -1 +1,13 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { CSV_DIRECTORY, EVENTS_FILEPATH, OUTPUT_DIRECTORY } from './constants';
|
|
2
|
+
export {
|
|
3
|
+
EVENT_FIELDS,
|
|
4
|
+
type Event,
|
|
5
|
+
type EventOf,
|
|
6
|
+
type EventType,
|
|
7
|
+
type EventValue,
|
|
8
|
+
type LoggedEvent,
|
|
9
|
+
type Operation,
|
|
10
|
+
} from './events';
|
|
11
|
+
export { formatCsvRow } from './formatCsvRow';
|
|
12
|
+
export { logError } from './logError';
|
|
13
|
+
export { logEvent } from './logEvent';
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { IS_TEST_RUN } from './constants';
|
|
2
|
+
import { describeError, type ErrorDescription } from './describeError';
|
|
3
|
+
import { type EventOf, type Operation } from './events';
|
|
4
|
+
import { logEvent } from './logEvent';
|
|
5
|
+
|
|
6
|
+
type ErrorContext = Partial<Pick<EventOf<'error'>, 'level' | 'input' | 'ip' | 'locale' | 'ua'>>;
|
|
7
|
+
|
|
8
|
+
export function logError(
|
|
9
|
+
operation: Operation,
|
|
10
|
+
error: unknown,
|
|
11
|
+
{ level = 'error', ...context }: ErrorContext = {},
|
|
12
|
+
): void {
|
|
13
|
+
const description = describeError(error);
|
|
14
|
+
logEvent({ type: 'error', level, operation, ...description, ...context });
|
|
15
|
+
|
|
16
|
+
if (level === 'error' && !IS_TEST_RUN) {
|
|
17
|
+
process.stderr.write(formatStderrEntry(operation, description));
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
function formatStderrEntry(operation: Operation, { message, stack }: ErrorDescription): string {
|
|
22
|
+
const frames = stack?.split('\n').filter((line) => line.startsWith(' at ')) ?? [];
|
|
23
|
+
return `${[`${operation}: ${message}`, ...frames].join('\n')}\n`;
|
|
24
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { formatEventLine } from './logEvent';
|
|
2
|
+
|
|
3
|
+
const NOW = new Date('2026-08-23T02:09:02.123Z');
|
|
4
|
+
|
|
5
|
+
describe('formatEventLine', () => {
|
|
6
|
+
it('orders keys as timestamp, type, then the declared fields', () => {
|
|
7
|
+
const line = formatEventLine(
|
|
8
|
+
{
|
|
9
|
+
type: 'solve',
|
|
10
|
+
results: 312,
|
|
11
|
+
rack: 'p,z, ,c,v,m,t',
|
|
12
|
+
blanks: 4,
|
|
13
|
+
tiles: 61,
|
|
14
|
+
game: 'scrabble',
|
|
15
|
+
locale: 'en-US',
|
|
16
|
+
ms: 14,
|
|
17
|
+
ip: '203.0.113.7',
|
|
18
|
+
},
|
|
19
|
+
NOW,
|
|
20
|
+
);
|
|
21
|
+
|
|
22
|
+
expect(Object.keys(JSON.parse(line) as Record<string, unknown>)).toEqual([
|
|
23
|
+
'timestamp',
|
|
24
|
+
'type',
|
|
25
|
+
'ip',
|
|
26
|
+
'ms',
|
|
27
|
+
'locale',
|
|
28
|
+
'game',
|
|
29
|
+
'tiles',
|
|
30
|
+
'blanks',
|
|
31
|
+
'rack',
|
|
32
|
+
'results',
|
|
33
|
+
]);
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
it('formats the timestamp in UTC with seconds precision', () => {
|
|
37
|
+
const line = formatEventLine({ type: 'build', locale: 'pl-PL', words: 3, download_ms: 1, build_ms: 2 }, NOW);
|
|
38
|
+
|
|
39
|
+
expect(line).toBe(
|
|
40
|
+
'{"timestamp":"2026-08-23T02:09:02Z","type":"build","locale":"pl-PL","words":3,"download_ms":1,"build_ms":2}\n',
|
|
41
|
+
);
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
it('omits undefined fields', () => {
|
|
45
|
+
const line = formatEventLine({ type: 'visit', ip: '::1', referrer: undefined }, NOW);
|
|
46
|
+
|
|
47
|
+
expect(line).toBe('{"timestamp":"2026-08-23T02:09:02Z","type":"visit","ip":"::1"}\n');
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
it('keeps multi-line values on a single line', () => {
|
|
51
|
+
const line = formatEventLine(
|
|
52
|
+
{ type: 'error', level: 'error', operation: 'solve', message: 'Error: boom', stack: 'Error: boom\n at solve' },
|
|
53
|
+
NOW,
|
|
54
|
+
);
|
|
55
|
+
|
|
56
|
+
expect(line.endsWith('\n')).toBe(true);
|
|
57
|
+
expect(line.slice(0, -1)).not.toContain('\n');
|
|
58
|
+
});
|
|
59
|
+
});
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
|
|
3
|
+
import { EVENTS_FILEPATH, IS_TEST_RUN, OUTPUT_DIRECTORY } from './constants';
|
|
4
|
+
import { EVENT_FIELDS, type Event } from './events';
|
|
5
|
+
|
|
6
|
+
export function logEvent(event: Event): void {
|
|
7
|
+
if (IS_TEST_RUN) {
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
try {
|
|
12
|
+
fs.mkdirSync(OUTPUT_DIRECTORY, { recursive: true });
|
|
13
|
+
fs.appendFileSync(EVENTS_FILEPATH, formatEventLine(event, new Date()));
|
|
14
|
+
} catch (error) {
|
|
15
|
+
process.stderr.write(`Could not append to ${EVENTS_FILEPATH}: ${String(error)}\n`);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export function formatEventLine(event: Event, now: Date): string {
|
|
20
|
+
const line = { timestamp: formatTimestamp(now), ...event };
|
|
21
|
+
return `${JSON.stringify(line, ['timestamp', 'type', ...EVENT_FIELDS[event.type]])}\n`;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function formatTimestamp(date: Date): string {
|
|
25
|
+
return `${date.toISOString().slice(0, 19)}Z`;
|
|
26
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
TAqjh9l5VJQOfJ4SzgPk2
|
|
@@ -4,37 +4,37 @@
|
|
|
4
4
|
],
|
|
5
5
|
"devFiles": [],
|
|
6
6
|
"lowPriorityFiles": [
|
|
7
|
-
"static/
|
|
8
|
-
"static/
|
|
7
|
+
"static/TAqjh9l5VJQOfJ4SzgPk2/_buildManifest.js",
|
|
8
|
+
"static/TAqjh9l5VJQOfJ4SzgPk2/_ssgManifest.js"
|
|
9
9
|
],
|
|
10
10
|
"rootMainFiles": [],
|
|
11
11
|
"rootMainFilesTree": {},
|
|
12
12
|
"pages": {
|
|
13
13
|
"/": [
|
|
14
|
-
"static/chunks/webpack-
|
|
14
|
+
"static/chunks/webpack-d73aa4aae49cd800.js",
|
|
15
15
|
"static/chunks/framework-626cbd48ac5aca57.js",
|
|
16
|
-
"static/chunks/main-
|
|
17
|
-
"static/chunks/101-
|
|
18
|
-
"static/css/
|
|
19
|
-
"static/chunks/pages/index-
|
|
16
|
+
"static/chunks/main-6e9ac37e28d2b899.js",
|
|
17
|
+
"static/chunks/101-f341f70c10d71212.js",
|
|
18
|
+
"static/css/8b8087461767360a.css",
|
|
19
|
+
"static/chunks/pages/index-ea21d96a88f25000.js"
|
|
20
20
|
],
|
|
21
21
|
"/_app": [
|
|
22
|
-
"static/chunks/webpack-
|
|
22
|
+
"static/chunks/webpack-d73aa4aae49cd800.js",
|
|
23
23
|
"static/chunks/framework-626cbd48ac5aca57.js",
|
|
24
|
-
"static/chunks/main-
|
|
25
|
-
"static/css/
|
|
26
|
-
"static/chunks/pages/_app-
|
|
24
|
+
"static/chunks/main-6e9ac37e28d2b899.js",
|
|
25
|
+
"static/css/4dbcacc1122ac6b9.css",
|
|
26
|
+
"static/chunks/pages/_app-9340d51f5a6787fc.js"
|
|
27
27
|
],
|
|
28
28
|
"/_error": [
|
|
29
|
-
"static/chunks/webpack-
|
|
29
|
+
"static/chunks/webpack-d73aa4aae49cd800.js",
|
|
30
30
|
"static/chunks/framework-626cbd48ac5aca57.js",
|
|
31
|
-
"static/chunks/main-
|
|
31
|
+
"static/chunks/main-6e9ac37e28d2b899.js",
|
|
32
32
|
"static/chunks/pages/_error-f0290a98eb3ed0ec.js"
|
|
33
33
|
],
|
|
34
34
|
"/not-found": [
|
|
35
|
-
"static/chunks/webpack-
|
|
35
|
+
"static/chunks/webpack-d73aa4aae49cd800.js",
|
|
36
36
|
"static/chunks/framework-626cbd48ac5aca57.js",
|
|
37
|
-
"static/chunks/main-
|
|
37
|
+
"static/chunks/main-6e9ac37e28d2b899.js",
|
|
38
38
|
"static/css/dee878eb64099d92.css",
|
|
39
39
|
"static/chunks/pages/not-found-a59f9deeeff63d17.js"
|
|
40
40
|
]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"previewModeId":"
|
|
1
|
+
{"previewModeId":"e5170c92693187cbcaea7f0870f1dee9","previewModeSigningKey":"0c5a68123049e96214b96449ac2369512c92f037cbaa7ba1fcbbb5cc88a9f616","previewModeEncryptionKey":"f221cca83515401e7209f83f08b599624beae995a831fce2f0cad7b3ad0717c4","expireAt":1789073653209}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"encryption.key":"
|
|
1
|
+
{"encryption.key":"J2cfMTok6hqjBhYuQZFGtnkvM8aA3sSVCNwugUSwtMc=","encryption.expire_at":1789073653206}
|