tailwind-styled-v4 5.0.26 → 5.0.28
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 -21
- package/README.md +575 -575
- package/dist/analyzer.js.map +1 -1
- package/dist/analyzer.mjs.map +1 -1
- package/dist/animate.js.map +1 -1
- package/dist/animate.mjs.map +1 -1
- package/dist/atomic.js.map +1 -1
- package/dist/atomic.mjs.map +1 -1
- package/dist/cli.js +2 -2
- package/dist/cli.js.map +1 -1
- package/dist/cli.mjs +2 -2
- package/dist/cli.mjs.map +1 -1
- package/dist/compiler.js +2 -1
- package/dist/compiler.js.map +1 -1
- package/dist/compiler.mjs +2 -1
- package/dist/compiler.mjs.map +1 -1
- package/dist/dashboard.d.mts +69 -69
- package/dist/dashboard.d.ts +69 -69
- package/dist/dashboard.js.map +1 -1
- package/dist/dashboard.mjs.map +1 -1
- package/dist/devtools.js.map +1 -1
- package/dist/devtools.mjs.map +1 -1
- package/dist/engine.js +26 -5
- package/dist/engine.js.map +1 -1
- package/dist/engine.mjs +26 -5
- package/dist/engine.mjs.map +1 -1
- package/dist/index.browser.mjs +16 -16
- package/dist/index.browser.mjs.map +1 -1
- package/dist/index.d.mts +4 -4
- package/dist/index.d.ts +4 -4
- package/dist/index.js +51 -28
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +51 -28
- package/dist/index.mjs.map +1 -1
- package/dist/next.js +26 -5
- package/dist/next.js.map +1 -1
- package/dist/next.mjs +26 -5
- package/dist/next.mjs.map +1 -1
- package/dist/plugin-api.js.map +1 -1
- package/dist/plugin-api.mjs.map +1 -1
- package/dist/plugin-registry.js.map +1 -1
- package/dist/plugin-registry.mjs.map +1 -1
- package/dist/plugin.js.map +1 -1
- package/dist/plugin.mjs.map +1 -1
- package/dist/preset.js.map +1 -1
- package/dist/preset.mjs.map +1 -1
- package/dist/rspack.js.map +1 -1
- package/dist/rspack.mjs.map +1 -1
- package/dist/runtime-css.js.map +1 -1
- package/dist/runtime-css.mjs.map +1 -1
- package/dist/runtime.js.map +1 -1
- package/dist/runtime.mjs.map +1 -1
- package/dist/scanner.js.map +1 -1
- package/dist/scanner.mjs.map +1 -1
- package/dist/shared.js +26 -5
- package/dist/shared.js.map +1 -1
- package/dist/shared.mjs +26 -5
- package/dist/shared.mjs.map +1 -1
- package/dist/storybook-addon.js.map +1 -1
- package/dist/storybook-addon.mjs.map +1 -1
- package/dist/svelte.js.map +1 -1
- package/dist/svelte.mjs.map +1 -1
- package/dist/syntax.js.map +1 -1
- package/dist/syntax.mjs.map +1 -1
- package/dist/testing.js.map +1 -1
- package/dist/testing.mjs.map +1 -1
- package/dist/theme.js.map +1 -1
- package/dist/theme.mjs.map +1 -1
- package/dist/turbopackLoader.js +2 -1
- package/dist/turbopackLoader.js.map +1 -1
- package/dist/turbopackLoader.mjs +2 -1
- package/dist/turbopackLoader.mjs.map +1 -1
- package/dist/tw.js +2 -2
- package/dist/tw.js.map +1 -1
- package/dist/tw.mjs +2 -2
- package/dist/tw.mjs.map +1 -1
- package/dist/vite.js +26 -5
- package/dist/vite.js.map +1 -1
- package/dist/vite.mjs +26 -5
- package/dist/vite.mjs.map +1 -1
- package/dist/vue.js.map +1 -1
- package/dist/vue.mjs.map +1 -1
- package/dist/webpackLoader.js +2 -1
- package/dist/webpackLoader.js.map +1 -1
- package/dist/webpackLoader.mjs +2 -1
- package/dist/webpackLoader.mjs.map +1 -1
- package/native/tailwind-styled-native.node +0 -0
- package/package.json +296 -289
- package/native/tailwind-styled-native.win32-x64-msvc.node +0 -0
package/dist/dashboard.d.mts
CHANGED
|
@@ -1,74 +1,74 @@
|
|
|
1
1
|
import { EventEmitter } from 'node:events';
|
|
2
2
|
|
|
3
|
-
interface DashboardMemoryMetrics {
|
|
4
|
-
rss?: number
|
|
5
|
-
heapUsed?: number
|
|
6
|
-
heapTotal?: number
|
|
7
|
-
[key: string]: unknown
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
interface DashboardMetrics {
|
|
11
|
-
generatedAt: string
|
|
12
|
-
buildMs: number | null
|
|
13
|
-
scanMs: number | null
|
|
14
|
-
analyzeMs: number | null
|
|
15
|
-
compileMs: number | null
|
|
16
|
-
memoryMb: DashboardMemoryMetrics | null
|
|
17
|
-
classCount: number | null
|
|
18
|
-
fileCount: number | null
|
|
19
|
-
cssBytes: number | null
|
|
20
|
-
packageCount: number | null
|
|
21
|
-
mode: "idle" | "jit" | "build" | "watch" | "error" | null
|
|
22
|
-
error?: string
|
|
23
|
-
lastEventType?: string
|
|
24
|
-
eventsReceived?: number
|
|
25
|
-
eventsProcessed?: number
|
|
26
|
-
batchesProcessed?: number
|
|
27
|
-
incrementalUpdates?: number
|
|
28
|
-
fullRescans?: number
|
|
29
|
-
skippedLargeFiles?: number
|
|
30
|
-
queueMaxSize?: number
|
|
31
|
-
lastBuildMs?: number
|
|
32
|
-
avgBuildMs?: number
|
|
33
|
-
[key: string]: unknown
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
interface DashboardHealthIssue {
|
|
37
|
-
severity: "error" | "warning"
|
|
38
|
-
message: string
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
interface DashboardMetricsSummary {
|
|
42
|
-
workspace: {
|
|
43
|
-
totalPackages: number
|
|
44
|
-
totalFiles: number
|
|
45
|
-
totalClasses: number
|
|
46
|
-
lastScanDurationMs: number
|
|
47
|
-
lastBuildDurationMs: number
|
|
48
|
-
}
|
|
49
|
-
cache: {
|
|
50
|
-
hitRate: number
|
|
51
|
-
totalEntries: number
|
|
52
|
-
memoryUsageMb: number
|
|
53
|
-
}
|
|
54
|
-
pipeline: {
|
|
55
|
-
scanDurationMs: number
|
|
56
|
-
analyzeDurationMs: number
|
|
57
|
-
compileDurationMs: number
|
|
58
|
-
totalDurationMs: number
|
|
59
|
-
}
|
|
60
|
-
health: {
|
|
61
|
-
status: "healthy" | "degraded" | "unhealthy"
|
|
62
|
-
issues: DashboardHealthIssue[]
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
declare const currentMetrics: DashboardMetrics
|
|
67
|
-
declare const history: DashboardMetrics[]
|
|
68
|
-
declare const events: EventEmitter
|
|
69
|
-
declare function normalizeMetrics(data: Record<string, unknown>): DashboardMetrics
|
|
70
|
-
declare function updateMetrics(data: Record<string, unknown>): DashboardMetrics
|
|
71
|
-
declare function resetHistory(): void
|
|
3
|
+
interface DashboardMemoryMetrics {
|
|
4
|
+
rss?: number
|
|
5
|
+
heapUsed?: number
|
|
6
|
+
heapTotal?: number
|
|
7
|
+
[key: string]: unknown
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
interface DashboardMetrics {
|
|
11
|
+
generatedAt: string
|
|
12
|
+
buildMs: number | null
|
|
13
|
+
scanMs: number | null
|
|
14
|
+
analyzeMs: number | null
|
|
15
|
+
compileMs: number | null
|
|
16
|
+
memoryMb: DashboardMemoryMetrics | null
|
|
17
|
+
classCount: number | null
|
|
18
|
+
fileCount: number | null
|
|
19
|
+
cssBytes: number | null
|
|
20
|
+
packageCount: number | null
|
|
21
|
+
mode: "idle" | "jit" | "build" | "watch" | "error" | null
|
|
22
|
+
error?: string
|
|
23
|
+
lastEventType?: string
|
|
24
|
+
eventsReceived?: number
|
|
25
|
+
eventsProcessed?: number
|
|
26
|
+
batchesProcessed?: number
|
|
27
|
+
incrementalUpdates?: number
|
|
28
|
+
fullRescans?: number
|
|
29
|
+
skippedLargeFiles?: number
|
|
30
|
+
queueMaxSize?: number
|
|
31
|
+
lastBuildMs?: number
|
|
32
|
+
avgBuildMs?: number
|
|
33
|
+
[key: string]: unknown
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
interface DashboardHealthIssue {
|
|
37
|
+
severity: "error" | "warning"
|
|
38
|
+
message: string
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
interface DashboardMetricsSummary {
|
|
42
|
+
workspace: {
|
|
43
|
+
totalPackages: number
|
|
44
|
+
totalFiles: number
|
|
45
|
+
totalClasses: number
|
|
46
|
+
lastScanDurationMs: number
|
|
47
|
+
lastBuildDurationMs: number
|
|
48
|
+
}
|
|
49
|
+
cache: {
|
|
50
|
+
hitRate: number
|
|
51
|
+
totalEntries: number
|
|
52
|
+
memoryUsageMb: number
|
|
53
|
+
}
|
|
54
|
+
pipeline: {
|
|
55
|
+
scanDurationMs: number
|
|
56
|
+
analyzeDurationMs: number
|
|
57
|
+
compileDurationMs: number
|
|
58
|
+
totalDurationMs: number
|
|
59
|
+
}
|
|
60
|
+
health: {
|
|
61
|
+
status: "healthy" | "degraded" | "unhealthy"
|
|
62
|
+
issues: DashboardHealthIssue[]
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
declare const currentMetrics: DashboardMetrics
|
|
67
|
+
declare const history: DashboardMetrics[]
|
|
68
|
+
declare const events: EventEmitter
|
|
69
|
+
declare function normalizeMetrics(data: Record<string, unknown>): DashboardMetrics
|
|
70
|
+
declare function updateMetrics(data: Record<string, unknown>): DashboardMetrics
|
|
71
|
+
declare function resetHistory(): void
|
|
72
72
|
declare function getMetricsSummary(): DashboardMetricsSummary
|
|
73
73
|
|
|
74
74
|
export { currentMetrics, events, getMetricsSummary, history, normalizeMetrics, resetHistory, updateMetrics };
|
package/dist/dashboard.d.ts
CHANGED
|
@@ -1,74 +1,74 @@
|
|
|
1
1
|
import { EventEmitter } from 'node:events';
|
|
2
2
|
|
|
3
|
-
interface DashboardMemoryMetrics {
|
|
4
|
-
rss?: number
|
|
5
|
-
heapUsed?: number
|
|
6
|
-
heapTotal?: number
|
|
7
|
-
[key: string]: unknown
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
interface DashboardMetrics {
|
|
11
|
-
generatedAt: string
|
|
12
|
-
buildMs: number | null
|
|
13
|
-
scanMs: number | null
|
|
14
|
-
analyzeMs: number | null
|
|
15
|
-
compileMs: number | null
|
|
16
|
-
memoryMb: DashboardMemoryMetrics | null
|
|
17
|
-
classCount: number | null
|
|
18
|
-
fileCount: number | null
|
|
19
|
-
cssBytes: number | null
|
|
20
|
-
packageCount: number | null
|
|
21
|
-
mode: "idle" | "jit" | "build" | "watch" | "error" | null
|
|
22
|
-
error?: string
|
|
23
|
-
lastEventType?: string
|
|
24
|
-
eventsReceived?: number
|
|
25
|
-
eventsProcessed?: number
|
|
26
|
-
batchesProcessed?: number
|
|
27
|
-
incrementalUpdates?: number
|
|
28
|
-
fullRescans?: number
|
|
29
|
-
skippedLargeFiles?: number
|
|
30
|
-
queueMaxSize?: number
|
|
31
|
-
lastBuildMs?: number
|
|
32
|
-
avgBuildMs?: number
|
|
33
|
-
[key: string]: unknown
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
interface DashboardHealthIssue {
|
|
37
|
-
severity: "error" | "warning"
|
|
38
|
-
message: string
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
interface DashboardMetricsSummary {
|
|
42
|
-
workspace: {
|
|
43
|
-
totalPackages: number
|
|
44
|
-
totalFiles: number
|
|
45
|
-
totalClasses: number
|
|
46
|
-
lastScanDurationMs: number
|
|
47
|
-
lastBuildDurationMs: number
|
|
48
|
-
}
|
|
49
|
-
cache: {
|
|
50
|
-
hitRate: number
|
|
51
|
-
totalEntries: number
|
|
52
|
-
memoryUsageMb: number
|
|
53
|
-
}
|
|
54
|
-
pipeline: {
|
|
55
|
-
scanDurationMs: number
|
|
56
|
-
analyzeDurationMs: number
|
|
57
|
-
compileDurationMs: number
|
|
58
|
-
totalDurationMs: number
|
|
59
|
-
}
|
|
60
|
-
health: {
|
|
61
|
-
status: "healthy" | "degraded" | "unhealthy"
|
|
62
|
-
issues: DashboardHealthIssue[]
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
declare const currentMetrics: DashboardMetrics
|
|
67
|
-
declare const history: DashboardMetrics[]
|
|
68
|
-
declare const events: EventEmitter
|
|
69
|
-
declare function normalizeMetrics(data: Record<string, unknown>): DashboardMetrics
|
|
70
|
-
declare function updateMetrics(data: Record<string, unknown>): DashboardMetrics
|
|
71
|
-
declare function resetHistory(): void
|
|
3
|
+
interface DashboardMemoryMetrics {
|
|
4
|
+
rss?: number
|
|
5
|
+
heapUsed?: number
|
|
6
|
+
heapTotal?: number
|
|
7
|
+
[key: string]: unknown
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
interface DashboardMetrics {
|
|
11
|
+
generatedAt: string
|
|
12
|
+
buildMs: number | null
|
|
13
|
+
scanMs: number | null
|
|
14
|
+
analyzeMs: number | null
|
|
15
|
+
compileMs: number | null
|
|
16
|
+
memoryMb: DashboardMemoryMetrics | null
|
|
17
|
+
classCount: number | null
|
|
18
|
+
fileCount: number | null
|
|
19
|
+
cssBytes: number | null
|
|
20
|
+
packageCount: number | null
|
|
21
|
+
mode: "idle" | "jit" | "build" | "watch" | "error" | null
|
|
22
|
+
error?: string
|
|
23
|
+
lastEventType?: string
|
|
24
|
+
eventsReceived?: number
|
|
25
|
+
eventsProcessed?: number
|
|
26
|
+
batchesProcessed?: number
|
|
27
|
+
incrementalUpdates?: number
|
|
28
|
+
fullRescans?: number
|
|
29
|
+
skippedLargeFiles?: number
|
|
30
|
+
queueMaxSize?: number
|
|
31
|
+
lastBuildMs?: number
|
|
32
|
+
avgBuildMs?: number
|
|
33
|
+
[key: string]: unknown
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
interface DashboardHealthIssue {
|
|
37
|
+
severity: "error" | "warning"
|
|
38
|
+
message: string
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
interface DashboardMetricsSummary {
|
|
42
|
+
workspace: {
|
|
43
|
+
totalPackages: number
|
|
44
|
+
totalFiles: number
|
|
45
|
+
totalClasses: number
|
|
46
|
+
lastScanDurationMs: number
|
|
47
|
+
lastBuildDurationMs: number
|
|
48
|
+
}
|
|
49
|
+
cache: {
|
|
50
|
+
hitRate: number
|
|
51
|
+
totalEntries: number
|
|
52
|
+
memoryUsageMb: number
|
|
53
|
+
}
|
|
54
|
+
pipeline: {
|
|
55
|
+
scanDurationMs: number
|
|
56
|
+
analyzeDurationMs: number
|
|
57
|
+
compileDurationMs: number
|
|
58
|
+
totalDurationMs: number
|
|
59
|
+
}
|
|
60
|
+
health: {
|
|
61
|
+
status: "healthy" | "degraded" | "unhealthy"
|
|
62
|
+
issues: DashboardHealthIssue[]
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
declare const currentMetrics: DashboardMetrics
|
|
67
|
+
declare const history: DashboardMetrics[]
|
|
68
|
+
declare const events: EventEmitter
|
|
69
|
+
declare function normalizeMetrics(data: Record<string, unknown>): DashboardMetrics
|
|
70
|
+
declare function updateMetrics(data: Record<string, unknown>): DashboardMetrics
|
|
71
|
+
declare function resetHistory(): void
|
|
72
72
|
declare function getMetricsSummary(): DashboardMetricsSummary
|
|
73
73
|
|
|
74
74
|
export { currentMetrics, events, getMetricsSummary, history, normalizeMetrics, resetHistory, updateMetrics };
|
package/dist/dashboard.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../packages/infrastructure/dashboard/src/state.ts"],"names":["z","EventEmitter"],"mappings":"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","file":"dashboard.js","sourcesContent":["import { EventEmitter } from \"node:events\"\r\n\r\nimport { z } from \"zod\"\r\n\r\nconst MAX_HISTORY = 100\r\n\r\nconst MemoryMetricsSchema = z\r\n .object({\r\n rss: z.number().nonnegative().optional(),\r\n heapUsed: z.number().nonnegative().optional(),\r\n heapTotal: z.number().nonnegative().optional(),\r\n })\r\n .passthrough()\r\n\r\nconst DashboardMetricsSchema = z\r\n .object({\r\n generatedAt: z.string().min(1).default(() => new Date().toISOString()),\r\n buildMs: z.number().nonnegative().nullable().default(null),\r\n scanMs: z.number().nonnegative().nullable().default(null),\r\n analyzeMs: z.number().nonnegative().nullable().default(null),\r\n compileMs: z.number().nonnegative().nullable().default(null),\r\n memoryMb: MemoryMetricsSchema.nullable().default(null),\r\n classCount: z.number().int().nonnegative().nullable().default(null),\r\n fileCount: z.number().int().nonnegative().nullable().default(null),\r\n cssBytes: z.number().int().nonnegative().nullable().default(null),\r\n packageCount: z.number().int().nonnegative().nullable().default(null),\r\n mode: z.enum([\"idle\", \"jit\", \"build\", \"watch\", \"error\"]).nullable().default(\"idle\"),\r\n error: z.string().optional(),\r\n lastEventType: z.string().optional(),\r\n eventsReceived: z.number().int().nonnegative().optional(),\r\n eventsProcessed: z.number().int().nonnegative().optional(),\r\n batchesProcessed: z.number().int().nonnegative().optional(),\r\n incrementalUpdates: z.number().int().nonnegative().optional(),\r\n fullRescans: z.number().int().nonnegative().optional(),\r\n skippedLargeFiles: z.number().int().nonnegative().optional(),\r\n queueMaxSize: z.number().int().nonnegative().optional(),\r\n lastBuildMs: z.number().nonnegative().optional(),\r\n avgBuildMs: z.number().nonnegative().optional(),\r\n })\r\n .passthrough()\r\n\r\nfunction createDefaultMetrics() {\r\n return DashboardMetricsSchema.parse({})\r\n}\r\n\r\nfunction formatIssues(error: import('zod').ZodError) {\r\n return error.issues.map((issue: import('zod').ZodIssue) => `${issue.path.join(\".\") || \"<root>\"}: ${issue.message}`).join(\"; \")\r\n}\r\n\r\nexport const currentMetrics = createDefaultMetrics()\r\nexport const history: ReturnType<typeof createDefaultMetrics>[] = []\r\nexport const events = new EventEmitter()\r\n\r\nexport function normalizeMetrics(data: Record<string, unknown>) {\r\n const parsed = DashboardMetricsSchema.safeParse({\r\n ...currentMetrics,\r\n ...data,\r\n })\r\n\r\n if (parsed.success) {\r\n return parsed.data\r\n }\r\n\r\n return {\r\n ...createDefaultMetrics(),\r\n generatedAt: new Date().toISOString(),\r\n mode: \"error\",\r\n error: formatIssues(parsed.error),\r\n }\r\n}\r\n\r\nexport function updateMetrics(data: Record<string, unknown>) {\r\n const next = normalizeMetrics(data)\r\n Object.assign(currentMetrics, next as object, { generatedAt: new Date().toISOString() })\r\n history.push({ ...currentMetrics } as typeof currentMetrics)\r\n if (history.length > MAX_HISTORY) history.shift()\r\n events.emit(\"update\", currentMetrics)\r\n return currentMetrics\r\n}\r\n\r\nexport function resetHistory() {\r\n history.length = 0\r\n events.emit(\"reset\")\r\n}\r\n\r\nexport function getMetricsSummary() {\r\n const issues = []\r\n\r\n if (currentMetrics.error) {\r\n issues.push({\r\n severity: \"error\",\r\n message: currentMetrics.error,\r\n })\r\n }\r\n\r\n if ((currentMetrics.buildMs ?? 0) > 2000) {\r\n issues.push({\r\n severity: \"warning\",\r\n message: `Build duration is elevated at ${currentMetrics.buildMs}ms.`,\r\n })\r\n }\r\n\r\n if ((currentMetrics.scanMs ?? 0) > 1000) {\r\n issues.push({\r\n severity: \"warning\",\r\n message: `Scan duration is elevated at ${currentMetrics.scanMs}ms.`,\r\n })\r\n }\r\n\r\n if ((currentMetrics.memoryMb?.heapUsed ?? 0) > 500) {\r\n issues.push({\r\n severity: \"warning\",\r\n message: `Heap usage is elevated at ${currentMetrics.memoryMb?.heapUsed}MB.`,\r\n })\r\n }\r\n\r\n const status =\r\n currentMetrics.mode === \"error\" || issues.some((issue) => issue.severity === \"error\")\r\n ? \"unhealthy\"\r\n : issues.some((issue) => issue.severity === \"warning\")\r\n ? \"degraded\"\r\n : \"healthy\"\r\n\r\n return {\r\n workspace: {\r\n totalPackages: currentMetrics.packageCount ?? 0,\r\n totalFiles: currentMetrics.fileCount ?? 0,\r\n totalClasses: currentMetrics.classCount ?? 0,\r\n lastScanDurationMs: currentMetrics.scanMs ?? 0,\r\n lastBuildDurationMs: currentMetrics.buildMs ?? 0,\r\n },\r\n cache: {\r\n hitRate:\r\n (currentMetrics.eventsReceived ?? 0) > 0\r\n ? Math.max(\r\n 0,\r\n Math.min(\r\n 1,\r\n (currentMetrics.eventsProcessed ?? 0) / Math.max(currentMetrics.eventsReceived ?? 1, 1)\r\n )\r\n )\r\n : 0,\r\n totalEntries: history.length,\r\n memoryUsageMb: currentMetrics.memoryMb?.heapUsed ?? 0,\r\n },\r\n pipeline: {\r\n scanDurationMs: currentMetrics.scanMs ?? 0,\r\n analyzeDurationMs: currentMetrics.analyzeMs ?? 0,\r\n compileDurationMs: currentMetrics.compileMs ?? 0,\r\n totalDurationMs:\r\n (currentMetrics.scanMs ?? 0) +\r\n (currentMetrics.analyzeMs ?? 0) +\r\n (currentMetrics.compileMs ?? 0),\r\n },\r\n health: {\r\n status,\r\n issues,\r\n },\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"sources":["../packages/infrastructure/dashboard/src/state.ts"],"names":["z","EventEmitter"],"mappings":"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","file":"dashboard.js","sourcesContent":["import { EventEmitter } from \"node:events\"\n\nimport { z } from \"zod\"\n\nconst MAX_HISTORY = 100\n\nconst MemoryMetricsSchema = z\n .object({\n rss: z.number().nonnegative().optional(),\n heapUsed: z.number().nonnegative().optional(),\n heapTotal: z.number().nonnegative().optional(),\n })\n .passthrough()\n\nconst DashboardMetricsSchema = z\n .object({\n generatedAt: z.string().min(1).default(() => new Date().toISOString()),\n buildMs: z.number().nonnegative().nullable().default(null),\n scanMs: z.number().nonnegative().nullable().default(null),\n analyzeMs: z.number().nonnegative().nullable().default(null),\n compileMs: z.number().nonnegative().nullable().default(null),\n memoryMb: MemoryMetricsSchema.nullable().default(null),\n classCount: z.number().int().nonnegative().nullable().default(null),\n fileCount: z.number().int().nonnegative().nullable().default(null),\n cssBytes: z.number().int().nonnegative().nullable().default(null),\n packageCount: z.number().int().nonnegative().nullable().default(null),\n mode: z.enum([\"idle\", \"jit\", \"build\", \"watch\", \"error\"]).nullable().default(\"idle\"),\n error: z.string().optional(),\n lastEventType: z.string().optional(),\n eventsReceived: z.number().int().nonnegative().optional(),\n eventsProcessed: z.number().int().nonnegative().optional(),\n batchesProcessed: z.number().int().nonnegative().optional(),\n incrementalUpdates: z.number().int().nonnegative().optional(),\n fullRescans: z.number().int().nonnegative().optional(),\n skippedLargeFiles: z.number().int().nonnegative().optional(),\n queueMaxSize: z.number().int().nonnegative().optional(),\n lastBuildMs: z.number().nonnegative().optional(),\n avgBuildMs: z.number().nonnegative().optional(),\n })\n .passthrough()\n\nfunction createDefaultMetrics() {\n return DashboardMetricsSchema.parse({})\n}\n\nfunction formatIssues(error: import('zod').ZodError) {\n return error.issues.map((issue: import('zod').ZodIssue) => `${issue.path.join(\".\") || \"<root>\"}: ${issue.message}`).join(\"; \")\n}\n\nexport const currentMetrics = createDefaultMetrics()\nexport const history: ReturnType<typeof createDefaultMetrics>[] = []\nexport const events = new EventEmitter()\n\nexport function normalizeMetrics(data: Record<string, unknown>) {\n const parsed = DashboardMetricsSchema.safeParse({\n ...currentMetrics,\n ...data,\n })\n\n if (parsed.success) {\n return parsed.data\n }\n\n return {\n ...createDefaultMetrics(),\n generatedAt: new Date().toISOString(),\n mode: \"error\",\n error: formatIssues(parsed.error),\n }\n}\n\nexport function updateMetrics(data: Record<string, unknown>) {\n const next = normalizeMetrics(data)\n Object.assign(currentMetrics, next as object, { generatedAt: new Date().toISOString() })\n history.push({ ...currentMetrics } as typeof currentMetrics)\n if (history.length > MAX_HISTORY) history.shift()\n events.emit(\"update\", currentMetrics)\n return currentMetrics\n}\n\nexport function resetHistory() {\n history.length = 0\n events.emit(\"reset\")\n}\n\nexport function getMetricsSummary() {\n const issues = []\n\n if (currentMetrics.error) {\n issues.push({\n severity: \"error\",\n message: currentMetrics.error,\n })\n }\n\n if ((currentMetrics.buildMs ?? 0) > 2000) {\n issues.push({\n severity: \"warning\",\n message: `Build duration is elevated at ${currentMetrics.buildMs}ms.`,\n })\n }\n\n if ((currentMetrics.scanMs ?? 0) > 1000) {\n issues.push({\n severity: \"warning\",\n message: `Scan duration is elevated at ${currentMetrics.scanMs}ms.`,\n })\n }\n\n if ((currentMetrics.memoryMb?.heapUsed ?? 0) > 500) {\n issues.push({\n severity: \"warning\",\n message: `Heap usage is elevated at ${currentMetrics.memoryMb?.heapUsed}MB.`,\n })\n }\n\n const status =\n currentMetrics.mode === \"error\" || issues.some((issue) => issue.severity === \"error\")\n ? \"unhealthy\"\n : issues.some((issue) => issue.severity === \"warning\")\n ? \"degraded\"\n : \"healthy\"\n\n return {\n workspace: {\n totalPackages: currentMetrics.packageCount ?? 0,\n totalFiles: currentMetrics.fileCount ?? 0,\n totalClasses: currentMetrics.classCount ?? 0,\n lastScanDurationMs: currentMetrics.scanMs ?? 0,\n lastBuildDurationMs: currentMetrics.buildMs ?? 0,\n },\n cache: {\n hitRate:\n (currentMetrics.eventsReceived ?? 0) > 0\n ? Math.max(\n 0,\n Math.min(\n 1,\n (currentMetrics.eventsProcessed ?? 0) / Math.max(currentMetrics.eventsReceived ?? 1, 1)\n )\n )\n : 0,\n totalEntries: history.length,\n memoryUsageMb: currentMetrics.memoryMb?.heapUsed ?? 0,\n },\n pipeline: {\n scanDurationMs: currentMetrics.scanMs ?? 0,\n analyzeDurationMs: currentMetrics.analyzeMs ?? 0,\n compileDurationMs: currentMetrics.compileMs ?? 0,\n totalDurationMs:\n (currentMetrics.scanMs ?? 0) +\n (currentMetrics.analyzeMs ?? 0) +\n (currentMetrics.compileMs ?? 0),\n },\n health: {\n status,\n issues,\n },\n }\n}\n"]}
|
package/dist/dashboard.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../packages/infrastructure/dashboard/src/state.ts"],"names":[],"mappings":"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","file":"dashboard.mjs","sourcesContent":["import { EventEmitter } from \"node:events\"\r\n\r\nimport { z } from \"zod\"\r\n\r\nconst MAX_HISTORY = 100\r\n\r\nconst MemoryMetricsSchema = z\r\n .object({\r\n rss: z.number().nonnegative().optional(),\r\n heapUsed: z.number().nonnegative().optional(),\r\n heapTotal: z.number().nonnegative().optional(),\r\n })\r\n .passthrough()\r\n\r\nconst DashboardMetricsSchema = z\r\n .object({\r\n generatedAt: z.string().min(1).default(() => new Date().toISOString()),\r\n buildMs: z.number().nonnegative().nullable().default(null),\r\n scanMs: z.number().nonnegative().nullable().default(null),\r\n analyzeMs: z.number().nonnegative().nullable().default(null),\r\n compileMs: z.number().nonnegative().nullable().default(null),\r\n memoryMb: MemoryMetricsSchema.nullable().default(null),\r\n classCount: z.number().int().nonnegative().nullable().default(null),\r\n fileCount: z.number().int().nonnegative().nullable().default(null),\r\n cssBytes: z.number().int().nonnegative().nullable().default(null),\r\n packageCount: z.number().int().nonnegative().nullable().default(null),\r\n mode: z.enum([\"idle\", \"jit\", \"build\", \"watch\", \"error\"]).nullable().default(\"idle\"),\r\n error: z.string().optional(),\r\n lastEventType: z.string().optional(),\r\n eventsReceived: z.number().int().nonnegative().optional(),\r\n eventsProcessed: z.number().int().nonnegative().optional(),\r\n batchesProcessed: z.number().int().nonnegative().optional(),\r\n incrementalUpdates: z.number().int().nonnegative().optional(),\r\n fullRescans: z.number().int().nonnegative().optional(),\r\n skippedLargeFiles: z.number().int().nonnegative().optional(),\r\n queueMaxSize: z.number().int().nonnegative().optional(),\r\n lastBuildMs: z.number().nonnegative().optional(),\r\n avgBuildMs: z.number().nonnegative().optional(),\r\n })\r\n .passthrough()\r\n\r\nfunction createDefaultMetrics() {\r\n return DashboardMetricsSchema.parse({})\r\n}\r\n\r\nfunction formatIssues(error: import('zod').ZodError) {\r\n return error.issues.map((issue: import('zod').ZodIssue) => `${issue.path.join(\".\") || \"<root>\"}: ${issue.message}`).join(\"; \")\r\n}\r\n\r\nexport const currentMetrics = createDefaultMetrics()\r\nexport const history: ReturnType<typeof createDefaultMetrics>[] = []\r\nexport const events = new EventEmitter()\r\n\r\nexport function normalizeMetrics(data: Record<string, unknown>) {\r\n const parsed = DashboardMetricsSchema.safeParse({\r\n ...currentMetrics,\r\n ...data,\r\n })\r\n\r\n if (parsed.success) {\r\n return parsed.data\r\n }\r\n\r\n return {\r\n ...createDefaultMetrics(),\r\n generatedAt: new Date().toISOString(),\r\n mode: \"error\",\r\n error: formatIssues(parsed.error),\r\n }\r\n}\r\n\r\nexport function updateMetrics(data: Record<string, unknown>) {\r\n const next = normalizeMetrics(data)\r\n Object.assign(currentMetrics, next as object, { generatedAt: new Date().toISOString() })\r\n history.push({ ...currentMetrics } as typeof currentMetrics)\r\n if (history.length > MAX_HISTORY) history.shift()\r\n events.emit(\"update\", currentMetrics)\r\n return currentMetrics\r\n}\r\n\r\nexport function resetHistory() {\r\n history.length = 0\r\n events.emit(\"reset\")\r\n}\r\n\r\nexport function getMetricsSummary() {\r\n const issues = []\r\n\r\n if (currentMetrics.error) {\r\n issues.push({\r\n severity: \"error\",\r\n message: currentMetrics.error,\r\n })\r\n }\r\n\r\n if ((currentMetrics.buildMs ?? 0) > 2000) {\r\n issues.push({\r\n severity: \"warning\",\r\n message: `Build duration is elevated at ${currentMetrics.buildMs}ms.`,\r\n })\r\n }\r\n\r\n if ((currentMetrics.scanMs ?? 0) > 1000) {\r\n issues.push({\r\n severity: \"warning\",\r\n message: `Scan duration is elevated at ${currentMetrics.scanMs}ms.`,\r\n })\r\n }\r\n\r\n if ((currentMetrics.memoryMb?.heapUsed ?? 0) > 500) {\r\n issues.push({\r\n severity: \"warning\",\r\n message: `Heap usage is elevated at ${currentMetrics.memoryMb?.heapUsed}MB.`,\r\n })\r\n }\r\n\r\n const status =\r\n currentMetrics.mode === \"error\" || issues.some((issue) => issue.severity === \"error\")\r\n ? \"unhealthy\"\r\n : issues.some((issue) => issue.severity === \"warning\")\r\n ? \"degraded\"\r\n : \"healthy\"\r\n\r\n return {\r\n workspace: {\r\n totalPackages: currentMetrics.packageCount ?? 0,\r\n totalFiles: currentMetrics.fileCount ?? 0,\r\n totalClasses: currentMetrics.classCount ?? 0,\r\n lastScanDurationMs: currentMetrics.scanMs ?? 0,\r\n lastBuildDurationMs: currentMetrics.buildMs ?? 0,\r\n },\r\n cache: {\r\n hitRate:\r\n (currentMetrics.eventsReceived ?? 0) > 0\r\n ? Math.max(\r\n 0,\r\n Math.min(\r\n 1,\r\n (currentMetrics.eventsProcessed ?? 0) / Math.max(currentMetrics.eventsReceived ?? 1, 1)\r\n )\r\n )\r\n : 0,\r\n totalEntries: history.length,\r\n memoryUsageMb: currentMetrics.memoryMb?.heapUsed ?? 0,\r\n },\r\n pipeline: {\r\n scanDurationMs: currentMetrics.scanMs ?? 0,\r\n analyzeDurationMs: currentMetrics.analyzeMs ?? 0,\r\n compileDurationMs: currentMetrics.compileMs ?? 0,\r\n totalDurationMs:\r\n (currentMetrics.scanMs ?? 0) +\r\n (currentMetrics.analyzeMs ?? 0) +\r\n (currentMetrics.compileMs ?? 0),\r\n },\r\n health: {\r\n status,\r\n issues,\r\n },\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"sources":["../packages/infrastructure/dashboard/src/state.ts"],"names":[],"mappings":"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","file":"dashboard.mjs","sourcesContent":["import { EventEmitter } from \"node:events\"\n\nimport { z } from \"zod\"\n\nconst MAX_HISTORY = 100\n\nconst MemoryMetricsSchema = z\n .object({\n rss: z.number().nonnegative().optional(),\n heapUsed: z.number().nonnegative().optional(),\n heapTotal: z.number().nonnegative().optional(),\n })\n .passthrough()\n\nconst DashboardMetricsSchema = z\n .object({\n generatedAt: z.string().min(1).default(() => new Date().toISOString()),\n buildMs: z.number().nonnegative().nullable().default(null),\n scanMs: z.number().nonnegative().nullable().default(null),\n analyzeMs: z.number().nonnegative().nullable().default(null),\n compileMs: z.number().nonnegative().nullable().default(null),\n memoryMb: MemoryMetricsSchema.nullable().default(null),\n classCount: z.number().int().nonnegative().nullable().default(null),\n fileCount: z.number().int().nonnegative().nullable().default(null),\n cssBytes: z.number().int().nonnegative().nullable().default(null),\n packageCount: z.number().int().nonnegative().nullable().default(null),\n mode: z.enum([\"idle\", \"jit\", \"build\", \"watch\", \"error\"]).nullable().default(\"idle\"),\n error: z.string().optional(),\n lastEventType: z.string().optional(),\n eventsReceived: z.number().int().nonnegative().optional(),\n eventsProcessed: z.number().int().nonnegative().optional(),\n batchesProcessed: z.number().int().nonnegative().optional(),\n incrementalUpdates: z.number().int().nonnegative().optional(),\n fullRescans: z.number().int().nonnegative().optional(),\n skippedLargeFiles: z.number().int().nonnegative().optional(),\n queueMaxSize: z.number().int().nonnegative().optional(),\n lastBuildMs: z.number().nonnegative().optional(),\n avgBuildMs: z.number().nonnegative().optional(),\n })\n .passthrough()\n\nfunction createDefaultMetrics() {\n return DashboardMetricsSchema.parse({})\n}\n\nfunction formatIssues(error: import('zod').ZodError) {\n return error.issues.map((issue: import('zod').ZodIssue) => `${issue.path.join(\".\") || \"<root>\"}: ${issue.message}`).join(\"; \")\n}\n\nexport const currentMetrics = createDefaultMetrics()\nexport const history: ReturnType<typeof createDefaultMetrics>[] = []\nexport const events = new EventEmitter()\n\nexport function normalizeMetrics(data: Record<string, unknown>) {\n const parsed = DashboardMetricsSchema.safeParse({\n ...currentMetrics,\n ...data,\n })\n\n if (parsed.success) {\n return parsed.data\n }\n\n return {\n ...createDefaultMetrics(),\n generatedAt: new Date().toISOString(),\n mode: \"error\",\n error: formatIssues(parsed.error),\n }\n}\n\nexport function updateMetrics(data: Record<string, unknown>) {\n const next = normalizeMetrics(data)\n Object.assign(currentMetrics, next as object, { generatedAt: new Date().toISOString() })\n history.push({ ...currentMetrics } as typeof currentMetrics)\n if (history.length > MAX_HISTORY) history.shift()\n events.emit(\"update\", currentMetrics)\n return currentMetrics\n}\n\nexport function resetHistory() {\n history.length = 0\n events.emit(\"reset\")\n}\n\nexport function getMetricsSummary() {\n const issues = []\n\n if (currentMetrics.error) {\n issues.push({\n severity: \"error\",\n message: currentMetrics.error,\n })\n }\n\n if ((currentMetrics.buildMs ?? 0) > 2000) {\n issues.push({\n severity: \"warning\",\n message: `Build duration is elevated at ${currentMetrics.buildMs}ms.`,\n })\n }\n\n if ((currentMetrics.scanMs ?? 0) > 1000) {\n issues.push({\n severity: \"warning\",\n message: `Scan duration is elevated at ${currentMetrics.scanMs}ms.`,\n })\n }\n\n if ((currentMetrics.memoryMb?.heapUsed ?? 0) > 500) {\n issues.push({\n severity: \"warning\",\n message: `Heap usage is elevated at ${currentMetrics.memoryMb?.heapUsed}MB.`,\n })\n }\n\n const status =\n currentMetrics.mode === \"error\" || issues.some((issue) => issue.severity === \"error\")\n ? \"unhealthy\"\n : issues.some((issue) => issue.severity === \"warning\")\n ? \"degraded\"\n : \"healthy\"\n\n return {\n workspace: {\n totalPackages: currentMetrics.packageCount ?? 0,\n totalFiles: currentMetrics.fileCount ?? 0,\n totalClasses: currentMetrics.classCount ?? 0,\n lastScanDurationMs: currentMetrics.scanMs ?? 0,\n lastBuildDurationMs: currentMetrics.buildMs ?? 0,\n },\n cache: {\n hitRate:\n (currentMetrics.eventsReceived ?? 0) > 0\n ? Math.max(\n 0,\n Math.min(\n 1,\n (currentMetrics.eventsProcessed ?? 0) / Math.max(currentMetrics.eventsReceived ?? 1, 1)\n )\n )\n : 0,\n totalEntries: history.length,\n memoryUsageMb: currentMetrics.memoryMb?.heapUsed ?? 0,\n },\n pipeline: {\n scanDurationMs: currentMetrics.scanMs ?? 0,\n analyzeDurationMs: currentMetrics.analyzeMs ?? 0,\n compileDurationMs: currentMetrics.compileMs ?? 0,\n totalDurationMs:\n (currentMetrics.scanMs ?? 0) +\n (currentMetrics.analyzeMs ?? 0) +\n (currentMetrics.compileMs ?? 0),\n },\n health: {\n status,\n issues,\n },\n }\n}\n"]}
|