@santi020k/lumen 1.7.0-rc.0 → 1.7.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/README.md +51 -13
- package/dist/cli.js +17 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/installer.d.ts.map +1 -1
- package/dist/installer.js +32 -2
- package/dist/integration-diagnostics.d.ts.map +1 -1
- package/dist/integration-diagnostics.js +8 -2
- package/dist/native-audit.d.ts +43 -2
- package/dist/native-audit.d.ts.map +1 -1
- package/dist/native-audit.js +274 -6
- package/dist/registry-data.d.ts +19 -7
- package/dist/registry-data.d.ts.map +1 -1
- package/dist/registry-data.js +46 -15
- package/dist/registry-path.d.ts +3 -0
- package/dist/registry-path.d.ts.map +1 -0
- package/dist/registry-path.js +15 -0
- package/dist/registry-types.d.ts +1 -0
- package/dist/registry-types.d.ts.map +1 -1
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +76 -14
- package/dist/v2-migration.d.ts +29 -0
- package/dist/v2-migration.d.ts.map +1 -0
- package/dist/v2-migration.js +729 -0
- package/native-components.json +861 -0
- package/package.json +8 -3
- package/release-manifest.json +14 -14
- package/styles/critical.css +2054 -0
- package/styles.css +148 -38
package/README.md
CHANGED
|
@@ -8,8 +8,9 @@ Install the framework package directly:
|
|
|
8
8
|
- `@santi020k/lumen-react`
|
|
9
9
|
- `@santi020k/lumen-elements`
|
|
10
10
|
|
|
11
|
-
Each adapter includes the shared foundation
|
|
12
|
-
|
|
11
|
+
Each adapter includes the shared foundation, exposes its own stylesheet entry, and makes the
|
|
12
|
+
`lumen` CLI available to the consuming project. Install this umbrella package directly when you
|
|
13
|
+
also want to import its framework-neutral registry or diagnostics APIs:
|
|
13
14
|
|
|
14
15
|
```bash
|
|
15
16
|
pnpm add @santi020k/lumen
|
|
@@ -45,6 +46,7 @@ lumen audit-tokens ./src
|
|
|
45
46
|
lumen doctor --json
|
|
46
47
|
lumen doctor-native --json
|
|
47
48
|
lumen init --framework astro --tailwind
|
|
49
|
+
lumen migrate v2 --dry-run
|
|
48
50
|
```
|
|
49
51
|
|
|
50
52
|
Use `lumen add <component>` for a local Astro wrapper, `--target react` for a React wrapper, or
|
|
@@ -55,20 +57,29 @@ Complete product recipes are also bundled for `analytics-dashboard`, `saas-admin
|
|
|
55
57
|
`commerce-dashboard`, `project-workspace`, `auth-onboarding`, `docs-shell`, `marketing-shell`,
|
|
56
58
|
`dashboard-shell`, and `validated-form`.
|
|
57
59
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
60
|
+
External registry manifests are treated as untrusted input. Inline recipe files must use unique,
|
|
61
|
+
relative forward-slash paths and cannot traverse outside the selected `--cwd` or write through a
|
|
62
|
+
symbolic-link path segment. `loadLumenRegistry` bounds local and remote manifests to 5 MiB by
|
|
63
|
+
default; programmatic consumers can set `maxBytes` and `timeoutMs` for tighter deployment limits.
|
|
64
|
+
|
|
65
|
+
Run `lumen doctor` to check adapter/style agreement, duplicate stylesheet entrypoints, Tailwind
|
|
66
|
+
layer order, Astro runtime mounts, and fragile internal selector dependencies. In a workspace,
|
|
67
|
+
diagnostics are scoped to the nearest package boundary, generated build trees are ignored, and
|
|
68
|
+
application-controlled Astro `Toggle` instances do not require the shared runtime. It also suggests
|
|
69
|
+
matching Lumen primitives for likely hand-built dropdown, theme, dialog-focus, and keyboard-menu
|
|
70
|
+
behavior. These suggestions stay advisory because product-specific composition can be intentional.
|
|
71
|
+
Use `--json` for CI and rollout automation. `lumen init --framework <astro|react|elements>
|
|
72
|
+
[--tailwind]` prints the canonical non-destructive setup.
|
|
66
73
|
|
|
67
74
|
Run `lumen doctor-native` in an Apple or Android consumer to report the resolved Swift package
|
|
68
75
|
tag/revision or Compose artifact version, compare it with Lumen's bundled cross-platform release
|
|
69
|
-
manifest, and audit public theme placement.
|
|
70
|
-
|
|
71
|
-
|
|
76
|
+
manifest, and audit public theme placement. It also groups likely direct SwiftUI and Compose
|
|
77
|
+
primitives that have public Lumen equivalents; these remain non-authoritative suggestions and do
|
|
78
|
+
not classify application-owned navigation or controls as failures. Android consumers receive a
|
|
79
|
+
read-only preflight for the documented JDK, SDK, platform packages, optional NDK requirement, and
|
|
80
|
+
compatible Gradle/AGP/Kotlin baseline before native compilation begins. Missing required toolchain
|
|
81
|
+
pieces are failures, optional evidence and migration candidates are warnings or suggestions. Pass
|
|
82
|
+
`--manifest` to audit against a prerelease manifest and `--json` for CI.
|
|
72
83
|
|
|
73
84
|
The same machine-readable metadata is published as
|
|
74
85
|
`@santi020k/lumen/release-manifest.json`. It records every npm package version and peer range, the
|
|
@@ -79,6 +90,33 @@ Run `lumen audit-tokens [path]` before incremental adoption when an existing sty
|
|
|
79
90
|
declare names such as `--surface`, `--ink`, or `--line`. The audit reports complete CSS colors that
|
|
80
91
|
are incompatible with Lumen's HSL-channel token format and exits non-zero when it finds conflicts.
|
|
81
92
|
|
|
93
|
+
## Lumen v2 migration preview
|
|
94
|
+
|
|
95
|
+
Run `lumen migrate v2 [--cwd <path>]` to preview the candidate v2 source migrations. Previewing is
|
|
96
|
+
the safe default; `--dry-run` makes that intent explicit, and `--json` emits a machine-readable
|
|
97
|
+
report. The migrator currently:
|
|
98
|
+
|
|
99
|
+
- moves `UIPrimitives` from the `@santi020k/lumen-astro` root barrel to the default export from
|
|
100
|
+
`@santi020k/lumen-astro/runtime`, including mixed and aliased named imports;
|
|
101
|
+
- renames literal `sm`, `default`, and `lg` visual `size` aliases to `visualSize` on imported Astro
|
|
102
|
+
`Input` and `NativeSelect` components, and to `visual-size` on `lumen-input` and
|
|
103
|
+
`lumen-native-select` elements; and
|
|
104
|
+
- rewrites `Sonner` and `SonnerProps` imports to the precise `ToastViewport` contract while
|
|
105
|
+
preserving local aliases, and renames `lumen-sonner` to `lumen-toast-viewport` without changing
|
|
106
|
+
placement, stack limits, or children;
|
|
107
|
+
- moves React Native date-field imports to `@santi020k/lumen-react-native/datetime`, preserving
|
|
108
|
+
aliases and type-only imports; and
|
|
109
|
+
- preserves numeric native `size` values while reporting dynamic, conflicting, and otherwise
|
|
110
|
+
ambiguous values for manual review.
|
|
111
|
+
|
|
112
|
+
After reviewing the report and committing a recoverable baseline, write the deterministic changes:
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
lumen migrate v2 --apply
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
The transform is idempotent. Re-running it after a successful apply produces no further changes.
|
|
119
|
+
|
|
82
120
|
## Coordinated consumer rollout
|
|
83
121
|
|
|
84
122
|
Inventory one or more pnpm consumers before a release:
|
package/dist/cli.js
CHANGED
|
@@ -5,6 +5,7 @@ import { createLumenSetup, formatLumenDiagnostics, inspectLumenIntegration } fro
|
|
|
5
5
|
import { formatNativeAdoptionAudit, inspectNativeAdoption } from './native-audit.js';
|
|
6
6
|
import { addLumenRegistryItem, getLumenRegistryEntries, getLumenRegistryItem, loadLumenRegistry, lumenRegistry } from './registry.js';
|
|
7
7
|
import { auditLumenTokenCss } from './token-audit.js';
|
|
8
|
+
import { formatLumenV2Migration, migrateLumenV2 } from './v2-migration.js';
|
|
8
9
|
const args = process.argv.slice(2);
|
|
9
10
|
const [command = 'help', name] = args;
|
|
10
11
|
const dryRun = args.includes('--dry-run');
|
|
@@ -166,6 +167,7 @@ const help = [
|
|
|
166
167
|
' lumen doctor-native Inspect native versions, package pins, and theme placement',
|
|
167
168
|
' lumen init Print canonical framework setup without changing files',
|
|
168
169
|
' lumen rollout [version] [repositories...] Inventory or upgrade pnpm consumers',
|
|
170
|
+
' lumen migrate v2 Preview or apply the candidate Lumen v2 source migrations',
|
|
169
171
|
'',
|
|
170
172
|
'Options:',
|
|
171
173
|
' --cwd <path> Target directory for lumen add',
|
|
@@ -180,7 +182,7 @@ const help = [
|
|
|
180
182
|
' --tailwind Include the verified Tailwind cascade setup in lumen init',
|
|
181
183
|
' --json Print lumen doctor output as JSON',
|
|
182
184
|
' --manifest <path> Use a specific cross-platform release manifest',
|
|
183
|
-
' --apply Apply a rollout (
|
|
185
|
+
' --apply Apply a rollout or v2 migration (migrations default to dry-run)',
|
|
184
186
|
' --allow-dirty Allow rollout after recording an uncommitted baseline',
|
|
185
187
|
' --exclude <path> Exclude a repository (repeatable)',
|
|
186
188
|
' --no-verify Skip downstream check, typecheck, build, and browser scripts',
|
|
@@ -213,6 +215,8 @@ const run = async () => {
|
|
|
213
215
|
case 'doctor-native': {
|
|
214
216
|
const report = await inspectNativeAdoption(cwd ?? process.cwd(), manifestPath);
|
|
215
217
|
output = json ? JSON.stringify(report, undefined, 2) : formatNativeAdoptionAudit(report);
|
|
218
|
+
if (!report.healthy)
|
|
219
|
+
process.exitCode = 1;
|
|
216
220
|
break;
|
|
217
221
|
}
|
|
218
222
|
case 'init': {
|
|
@@ -227,6 +231,18 @@ const run = async () => {
|
|
|
227
231
|
output = formatList(registry);
|
|
228
232
|
break;
|
|
229
233
|
}
|
|
234
|
+
case 'migrate': {
|
|
235
|
+
if (name !== 'v2')
|
|
236
|
+
throw new Error('Missing or invalid migration. Use lumen migrate v2.');
|
|
237
|
+
if (applyRollout && dryRun)
|
|
238
|
+
throw new Error('Choose either --dry-run or --apply for lumen migrate v2.');
|
|
239
|
+
const report = await migrateLumenV2({
|
|
240
|
+
apply: applyRollout,
|
|
241
|
+
cwd: cwd ?? process.cwd()
|
|
242
|
+
});
|
|
243
|
+
output = json ? JSON.stringify(report, undefined, 2) : formatLumenV2Migration(report);
|
|
244
|
+
break;
|
|
245
|
+
}
|
|
230
246
|
case 'rollout': {
|
|
231
247
|
const rollout = getRolloutArguments();
|
|
232
248
|
const report = await runConsumerRollout({
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { type ConsumerInventory, type ConsumerReference, type ConsumerRolloutOptions, type ConsumerRolloutReport, formatConsumerRollout, inspectLumenConsumer, type LumenFramework, runConsumerRollout, updateLumenManifestSource, updateLumenWorkspaceSource } from './consumer-rollout.js';
|
|
2
2
|
export { formatNativeAdoptionAudit, inspectNativeAdoption, type NativeAuditFinding, type NativeAuditPlatform, type NativeAuditReport, type NativeAuditSeverity, type NativeResolvedVersion } from './native-audit.js';
|
|
3
3
|
export { addLumenRegistryItem, getLumenRegistryEntries, getLumenRegistryItem, loadLumenRegistry, type LumenAddOptions, type LumenAddResult, type LumenAddTarget, type LumenMergeConflict, type LumenRegistry, lumenRegistry, type LumenRegistryComponent, type LumenRegistryEntry, type LumenRegistryFile, type LumenRegistryItem, type LumenRegistryLoadOptions } from './registry.js';
|
|
4
|
-
export { alignLumenChartSeries, applyDataViewState, canPlaceScheduleEvent, coerceThemeBuilderExportFormat, coerceThemeBuilderMode, coerceThemeBuilderScheme, composeClassName, createDataViewRequestUrl, createDataViewSearchParams, createDataViewServerRequest, createDataViewState, createDataViewStorageKey, createLumenBarGeometry, createLumenFormFailure, createLumenFormSuccess, createLumenLineGeometry, createLumenPieGeometry, createScheduleSlots, createScheduleStorageKey, createThemeBuilderTokens, createThemePalette, expandRecurringScheduleEvent, exportThemeBuilderCss, exportThemeBuilderValue, exportThemeCss, filterDataRecords, getContrastRatio, getLumenChartCategories, getLumenChartDomain, getLumenChartTicks, getLumenChartValueRatio, getLumenFieldErrors, getScheduleConflicts, getVirtualRange, hasLumenPieData, loadDataViewState, loadScheduleEvents, type LumenBarChartLayout, type LumenBarGeometry, type LumenBarGeometryCategory, type LumenBarGeometryMark, type LumenBarGeometryOptions, lumenChart, type LumenChartDatum, type LumenChartDomain, type LumenChartGeometryPoint, type LumenChartOrientation, type LumenChartSeries, type LumenChartTone, lumenChartTones, type LumenCodeToken, lumenCodeTokenClassNames, type LumenCodeTokenKind, lumenColors, type LumenColorScheme, type LumenColorTokenName, lumenColorTokenNames, lumenColorTokens, type LumenComponentName, lumenComponentNames, type LumenContrastScore, lumenCssColorTokens, lumenDarkColors, lumenDarkTheme, type LumenDataRecord, type LumenDataViewServerRequest, type LumenDataViewState, lumenDurations, lumenEasings, lumenElevation, type LumenFieldError, lumenFontFamilies, lumenFontSizes, lumenFontWeights, type LumenFormErrorInput, type LumenFormErrors, type LumenFormFailure, type LumenFormResult, type LumenFormStatus, lumenFormStatuses, type LumenFormSuccess, lumenGlass, type LumenGlassColorTokenName, lumenGlassColorTokenNames, type LumenGlassEffectTokenName, lumenGlassEffectTokenNames, type LumenGlassTokenName, lumenGlassTokenNames, type LumenKeyValueReader, type LumenKeyValueStorage, type LumenKeyValueWriter, lumenLightTheme, type LumenLineGeometry, type LumenLineGeometryOptions, lumenPackages, type LumenPackageTarget, type LumenPieChartVariant, type LumenPieGeometry, type LumenPieGeometryOptions, type LumenPieGeometrySlice, lumenRadii, type LumenScheduleConflict, type LumenScheduleEvent, type LumenScheduleKeyValueReader, type LumenScheduleKeyValueStorage, type LumenScheduleKeyValueWriter, type LumenScheduleResizeEdge, type LumenScheduleResizeOptions, type LumenScheduleResource, type LumenScheduleSlot, type LumenSemanticColor, type LumenSemanticColorTokenName, lumenSemanticColorTokenNames, type LumenSortDirection, lumenSpacing, lumenThemeAttribute, type LumenThemeBuilderExportFormat, type LumenThemeBuilderMode, type LumenThemeBuilderOptions, type LumenThemeBuilderResult, type LumenThemeBuilderScheme, type LumenThemeContrastSuggestion, type LumenThemeTokens, lumenTokenNames, mergeThemeTokens, moveScheduleEvent, normalizeLumenCode, normalizeLumenFormErrors, normalizeThemeBuilderHex, normalizeThemeBuilderHue, paginateDataRecords, parseDataViewState, parseScheduleEvents, parseThemeCss, pinDataViewColumn, renderLumenCodeHtml, resizeScheduleEvent, resizeScheduleEvents, resolveLumenChartTone, saveDataViewState, saveScheduleEvents, scaleLumenChartValue, scheduleEventsOverlap, scoreThemeContrast, serializeDataViewState, serializeScheduleEvents, sortDataRecords, suggestReadableInk, themeBuilderHexToHsl, toggleDataViewSelection, tokenizeLumenCode, tuneThemeContrast, unpinDataViewColumn } from '@santi020k/lumen-core';
|
|
4
|
+
export { alignLumenChartSeries, applyDataViewState, canPlaceScheduleEvent, coerceThemeBuilderExportFormat, coerceThemeBuilderMode, coerceThemeBuilderScheme, composeClassName, createDataViewRequestUrl, createDataViewSearchParams, createDataViewServerRequest, createDataViewState, createDataViewStorageKey, createLumenBarGeometry, createLumenFormFailure, createLumenFormSuccess, createLumenLineGeometry, createLumenPieGeometry, createScheduleSlots, createScheduleStorageKey, createThemeBuilderTokens, createThemePalette, expandRecurringScheduleEvent, exportThemeBuilderCss, exportThemeBuilderValue, exportThemeCss, filterDataRecords, getContrastRatio, getLumenChartCategories, getLumenChartDomain, getLumenChartTicks, getLumenChartValueRatio, getLumenFieldErrors, getScheduleConflicts, getVirtualRange, hasLumenPieData, loadDataViewState, loadScheduleEvents, type LumenBarChartLayout, type LumenBarGeometry, type LumenBarGeometryCategory, type LumenBarGeometryMark, type LumenBarGeometryOptions, lumenChart, type LumenChartDatum, type LumenChartDomain, type LumenChartGeometryPoint, type LumenChartOrientation, type LumenChartSeries, type LumenChartTone, lumenChartTones, type LumenCodeToken, lumenCodeTokenClassNames, type LumenCodeTokenKind, lumenColors, type LumenColorScheme, type LumenColorTokenName, lumenColorTokenNames, lumenColorTokens, type LumenComponentName, lumenComponentNames, type LumenContrastScore, lumenCssColorTokens, lumenDarkColors, lumenDarkTheme, type LumenDataRecord, type LumenDataViewServerRequest, type LumenDataViewState, lumenDurations, lumenEasings, lumenElevation, type LumenFieldError, lumenFontFamilies, lumenFontSizes, lumenFontWeights, type LumenFormErrorInput, type LumenFormErrors, type LumenFormFailure, type LumenFormResult, type LumenFormStatus, lumenFormStatuses, type LumenFormSuccess, lumenGlass, type LumenGlassColorTokenName, lumenGlassColorTokenNames, type LumenGlassEffectTokenName, lumenGlassEffectTokenNames, type LumenGlassTokenName, lumenGlassTokenNames, type LumenKeyValueReader, type LumenKeyValueStorage, type LumenKeyValueWriter, lumenLightTheme, type LumenLineGeometry, type LumenLineGeometryOptions, lumenPackages, type LumenPackageTarget, type LumenPieChartVariant, type LumenPieGeometry, type LumenPieGeometryOptions, type LumenPieGeometrySlice, lumenRadii, type LumenScheduleConflict, type LumenScheduleEvent, type LumenScheduleKeyValueReader, type LumenScheduleKeyValueStorage, type LumenScheduleKeyValueWriter, type LumenScheduleResizeEdge, type LumenScheduleResizeOptions, type LumenScheduleResource, type LumenScheduleSlot, type LumenSemanticColor, type LumenSemanticColorTokenName, lumenSemanticColorTokenNames, type LumenSortDirection, lumenSpacing, type LumenTabsChangeDetail, type LumenTabsChangeEvent, lumenThemeAttribute, type LumenThemeBuilderExportFormat, type LumenThemeBuilderMode, type LumenThemeBuilderOptions, type LumenThemeBuilderResult, type LumenThemeBuilderScheme, type LumenThemeContrastSuggestion, type LumenThemeTokens, lumenTokenNames, mergeThemeTokens, moveScheduleEvent, normalizeLumenCode, normalizeLumenFormErrors, normalizeThemeBuilderHex, normalizeThemeBuilderHue, paginateDataRecords, parseDataViewState, parseScheduleEvents, parseThemeCss, pinDataViewColumn, renderLumenCodeHtml, resizeScheduleEvent, resizeScheduleEvents, resolveLumenChartTone, saveDataViewState, saveScheduleEvents, scaleLumenChartValue, scheduleEventsOverlap, scoreThemeContrast, serializeDataViewState, serializeScheduleEvents, sortDataRecords, suggestReadableInk, themeBuilderHexToHsl, toggleDataViewSelection, tokenizeLumenCode, tuneThemeContrast, unpinDataViewColumn } from '@santi020k/lumen-core';
|
|
5
5
|
export declare const lumen: {
|
|
6
6
|
readonly name: "Lumen";
|
|
7
7
|
readonly packageName: "@santi020k/lumen";
|
|
@@ -9,4 +9,5 @@ export declare const lumen: {
|
|
|
9
9
|
};
|
|
10
10
|
export { createLumenSetup, formatLumenDiagnostics, inspectLumenIntegration, type LumenDiagnosticFinding, type LumenDiagnosticReport, type LumenDiagnosticSeverity } from './integration-diagnostics.js';
|
|
11
11
|
export { auditLumenTokenCss, type LumenTokenAuditFinding } from './token-audit.js';
|
|
12
|
+
export { formatLumenV2Migration, type LumenV2MigrationFinding, type LumenV2MigrationKind, type LumenV2MigrationOptions, type LumenV2MigrationReport, type LumenV2SourceMigration, migrateLumenV2, migrateLumenV2Source } from './v2-migration.js';
|
|
12
13
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -9,3 +9,4 @@ export const lumen = {
|
|
|
9
9
|
};
|
|
10
10
|
export { createLumenSetup, formatLumenDiagnostics, inspectLumenIntegration } from './integration-diagnostics.js';
|
|
11
11
|
export { auditLumenTokenCss } from './token-audit.js';
|
|
12
|
+
export { formatLumenV2Migration, migrateLumenV2, migrateLumenV2Source } from './v2-migration.js';
|
package/dist/installer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"installer.d.ts","sourceRoot":"","sources":["../src/installer.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,kBAAkB,EAExB,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"installer.d.ts","sourceRoot":"","sources":["../src/installer.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,kBAAkB,EAExB,MAAM,eAAe,CAAA;AAQtB,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,WAAW,GAAG,MAAM,CAAA;IACnD,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,kBAAkB,KAAK,MAAM,CAAA;IAChD,QAAQ,CAAC,EAAE,aAAa,CAAA;IACxB,MAAM,CAAC,EAAE,cAAc,CAAA;CACxB;AAED,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,CAAA;AAE3D,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,MAAM,EAAE,OAAO,CAAA;IACf,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,IAAI,EAAE,kBAAkB,CAAA;IACxB,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB;AA8PD,eAAO,MAAM,oBAAoB,GAAU,MAAM,MAAM,EAAE,UAAS,eAAoB,KAAG,OAAO,CAAC,cAAc,CA6C9G,CAAA"}
|
package/dist/installer.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { access, mkdir, readdir, readFile, writeFile } from 'node:fs/promises';
|
|
2
|
-
import { dirname, join, relative, sep } from 'node:path';
|
|
1
|
+
import { access, lstat, mkdir, readdir, readFile, writeFile } from 'node:fs/promises';
|
|
2
|
+
import { dirname, join, relative, resolve, sep } from 'node:path';
|
|
3
3
|
import { fileURLToPath } from 'node:url';
|
|
4
4
|
import { getLumenRegistryItem } from './registry.js';
|
|
5
|
+
import { assertSafeRegistryFilePath } from './registry-path.js';
|
|
5
6
|
const templatesRoot = fileURLToPath(new URL('../templates/', import.meta.url));
|
|
6
7
|
const productTemplateRecipes = new Set([
|
|
7
8
|
'analytics-dashboard',
|
|
@@ -149,6 +150,34 @@ const writeInstallFile = async (target, source, dryRun) => {
|
|
|
149
150
|
await mkdir(dirname(target), { recursive: true });
|
|
150
151
|
await writeFile(target, source, 'utf8');
|
|
151
152
|
};
|
|
153
|
+
const assertNoSymlinkSegments = async (cwd, path) => {
|
|
154
|
+
let current = resolve(cwd);
|
|
155
|
+
for (const segment of path.split('/')) {
|
|
156
|
+
current = join(current, segment);
|
|
157
|
+
try {
|
|
158
|
+
const details = await lstat(current);
|
|
159
|
+
if (details.isSymbolicLink()) {
|
|
160
|
+
throw new Error(`Refusing to write through a symbolic link: ${path}`);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
catch (error) {
|
|
164
|
+
if (error instanceof Error && 'code' in error && error.code === 'ENOENT')
|
|
165
|
+
return;
|
|
166
|
+
throw error;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
};
|
|
170
|
+
const validateInstallFiles = async (files, cwd) => {
|
|
171
|
+
const paths = new Set();
|
|
172
|
+
for (const file of files) {
|
|
173
|
+
assertSafeRegistryFilePath(file.path);
|
|
174
|
+
if (paths.has(file.path)) {
|
|
175
|
+
throw new Error(`Duplicate Lumen registry file path: ${file.path}`);
|
|
176
|
+
}
|
|
177
|
+
paths.add(file.path);
|
|
178
|
+
await assertNoSymlinkSegments(cwd, file.path);
|
|
179
|
+
}
|
|
180
|
+
};
|
|
152
181
|
const installRegistryFile = async (file, cwd, options, conflict) => {
|
|
153
182
|
const target = join(cwd, file.path);
|
|
154
183
|
const exists = await fileExists(target);
|
|
@@ -171,6 +200,7 @@ export const addLumenRegistryItem = async (name, options = {}) => {
|
|
|
171
200
|
if (!files.length) {
|
|
172
201
|
throw new Error(`Registry item cannot be installed yet: ${name}`);
|
|
173
202
|
}
|
|
203
|
+
await validateInstallFiles(files, cwd);
|
|
174
204
|
const added = [];
|
|
175
205
|
const conflict = getConflictMode(options);
|
|
176
206
|
const merged = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integration-diagnostics.d.ts","sourceRoot":"","sources":["../src/integration-diagnostics.ts"],"names":[],"mappings":"AAWA,MAAM,MAAM,uBAAuB,GAAG,UAAU,GAAG,OAAO,CAAA;AAE1D,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,uBAAuB,CAAA;CAClC;AAED,MAAM,WAAW,qBAAqB;IACpC,kBAAkB,EAAE,MAAM,CAAA;IAC1B,QAAQ,EAAE,sBAAsB,EAAE,CAAA;IAClC,UAAU,EAAE,CAAC,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC,EAAE,CAAA;IAC9C,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,OAAO,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,iBAAiB,EAAE,MAAM,EAAE,CAAA;CAC5B;
|
|
1
|
+
{"version":3,"file":"integration-diagnostics.d.ts","sourceRoot":"","sources":["../src/integration-diagnostics.ts"],"names":[],"mappings":"AAWA,MAAM,MAAM,uBAAuB,GAAG,UAAU,GAAG,OAAO,CAAA;AAE1D,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,uBAAuB,CAAA;CAClC;AAED,MAAM,WAAW,qBAAqB;IACpC,kBAAkB,EAAE,MAAM,CAAA;IAC1B,QAAQ,EAAE,sBAAsB,EAAE,CAAA;IAClC,UAAU,EAAE,CAAC,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC,EAAE,CAAA;IAC9C,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,OAAO,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,iBAAiB,EAAE,MAAM,EAAE,CAAA;CAC5B;AA8eD,eAAO,MAAM,uBAAuB,GAAU,YAAY,MAAM,KAAG,OAAO,CAAC,qBAAqB,CA8C/F,CAAA;AAED,eAAO,MAAM,sBAAsB,GAAI,QAAQ,qBAAqB,KAAG,MAWtE,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,WAAW,OAAO,GAAG,UAAU,GAAG,OAAO,EAAE,kBAAgB,KAAG,MAsC9F,CAAA"}
|
|
@@ -272,9 +272,15 @@ const collectFrameworkStyleFindings = (repositoryRoot, boundary, frameworks) =>
|
|
|
272
272
|
if (references.length === 0) {
|
|
273
273
|
return [finding(relative(repositoryRoot, boundary.root) || '.', 'framework-style-missing', `No ${styleImport} import was found in this application boundary.`, 'Load the matching adapter stylesheet once in the application root.')];
|
|
274
274
|
}
|
|
275
|
-
|
|
275
|
+
const repeatedInFile = references.flatMap(item => countOccurrences(item.source, styleImport) > 1 ?
|
|
276
276
|
[finding(relative(repositoryRoot, item.file), 'framework-style-duplicate', `The ${framework} stylesheet is loaded more than once in this file.`, 'Keep one stylesheet import in the application root.')] :
|
|
277
277
|
[]);
|
|
278
|
+
const orderedReferences = [...references].sort((left, right) => {
|
|
279
|
+
const layoutDifference = Number(layoutFilePattern.test(right.file)) - Number(layoutFilePattern.test(left.file));
|
|
280
|
+
return layoutDifference || left.file.localeCompare(right.file);
|
|
281
|
+
});
|
|
282
|
+
const repeatedAcrossBoundary = orderedReferences.slice(1).map(item => finding(relative(repositoryRoot, item.file), 'framework-style-duplicate', `The ${framework} stylesheet is loaded from multiple files in this application boundary.`, 'Keep one stylesheet import in the application root.'));
|
|
283
|
+
return [...repeatedInFile, ...repeatedAcrossBoundary];
|
|
278
284
|
});
|
|
279
285
|
const collectAdapterMismatchFindings = (repositoryRoot, boundary, frameworks) => {
|
|
280
286
|
const adapters = Object.entries(styleImportByFramework)
|
|
@@ -356,7 +362,7 @@ export const createLumenSetup = (framework, tailwind = false) => {
|
|
|
356
362
|
};
|
|
357
363
|
const styles = tailwind ? setupByFramework[framework].tailwind : setupByFramework[framework].styles;
|
|
358
364
|
if (framework === 'astro') {
|
|
359
|
-
return `${styles}\n\n---\nimport
|
|
365
|
+
return `${styles}\n\n---\nimport UIPrimitives from '@santi020k/lumen-astro/runtime'\n---\n\n<UIPrimitives />`;
|
|
360
366
|
}
|
|
361
367
|
if (framework === 'elements') {
|
|
362
368
|
return `${styles}\n\n` +
|
package/dist/native-audit.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export type NativeAuditPlatform = 'compose' | 'swift';
|
|
2
|
-
export type NativeAuditSeverity = 'suggestion' | 'warning';
|
|
2
|
+
export type NativeAuditSeverity = 'failure' | 'suggestion' | 'warning';
|
|
3
|
+
type NativePreflightStatus = 'failure' | 'pass' | 'skipped' | 'warning';
|
|
3
4
|
export interface NativeAuditFinding {
|
|
4
5
|
file: string;
|
|
5
6
|
message: string;
|
|
@@ -14,13 +15,53 @@ export interface NativeResolvedVersion {
|
|
|
14
15
|
version?: string;
|
|
15
16
|
}
|
|
16
17
|
export interface NativeAuditReport {
|
|
18
|
+
adoptionInventory: NativeAdoptionInventory;
|
|
19
|
+
androidPreflight: AndroidPreflightReport | null;
|
|
17
20
|
findings: NativeAuditFinding[];
|
|
18
21
|
generatedAt: string;
|
|
22
|
+
healthy: boolean;
|
|
19
23
|
platforms: NativeAuditPlatform[];
|
|
20
24
|
releaseVersion: string;
|
|
21
25
|
repository: string;
|
|
22
26
|
resolved: NativeResolvedVersion[];
|
|
23
27
|
}
|
|
24
|
-
|
|
28
|
+
interface NativeAdoptionSuggestion {
|
|
29
|
+
family: string;
|
|
30
|
+
file: string;
|
|
31
|
+
line: number;
|
|
32
|
+
lumenComponent: string;
|
|
33
|
+
nativePrimitive: string;
|
|
34
|
+
platform: NativeAuditPlatform;
|
|
35
|
+
}
|
|
36
|
+
interface NativeAdoptionInventory {
|
|
37
|
+
families: {
|
|
38
|
+
count: number;
|
|
39
|
+
family: string;
|
|
40
|
+
}[];
|
|
41
|
+
suggestions: NativeAdoptionSuggestion[];
|
|
42
|
+
}
|
|
43
|
+
interface NativePreflightCheck {
|
|
44
|
+
detail: string;
|
|
45
|
+
id: string;
|
|
46
|
+
remediation?: string;
|
|
47
|
+
status: NativePreflightStatus;
|
|
48
|
+
}
|
|
49
|
+
interface AndroidPreflightReport {
|
|
50
|
+
checks: NativePreflightCheck[];
|
|
51
|
+
healthy: boolean;
|
|
52
|
+
sdkRoot?: string;
|
|
53
|
+
toolchain: ComposeToolchain;
|
|
54
|
+
}
|
|
55
|
+
interface ComposeToolchain {
|
|
56
|
+
androidGradlePlugin: string;
|
|
57
|
+
compileSdk: number;
|
|
58
|
+
gradle: string;
|
|
59
|
+
instrumentationApi: number;
|
|
60
|
+
jdk: number;
|
|
61
|
+
kotlin: string;
|
|
62
|
+
minSdk: number;
|
|
63
|
+
}
|
|
64
|
+
export declare const inspectNativeAdoption: (repository: string, manifestPath?: string, registryPath?: string, environment?: NodeJS.ProcessEnv) => Promise<NativeAuditReport>;
|
|
25
65
|
export declare const formatNativeAdoptionAudit: (report: NativeAuditReport) => string;
|
|
66
|
+
export {};
|
|
26
67
|
//# sourceMappingURL=native-audit.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native-audit.d.ts","sourceRoot":"","sources":["../src/native-audit.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"native-audit.d.ts","sourceRoot":"","sources":["../src/native-audit.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,OAAO,CAAA;AACrD,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,CAAA;AAEtE,KAAK,qBAAqB,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAA;AAEvE,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,mBAAmB,CAAA;CAC9B;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,mBAAmB,CAAA;IAC7B,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,iBAAiB,EAAE,uBAAuB,CAAA;IAC1C,gBAAgB,EAAE,sBAAsB,GAAG,IAAI,CAAA;IAC/C,QAAQ,EAAE,kBAAkB,EAAE,CAAA;IAC9B,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,EAAE,mBAAmB,EAAE,CAAA;IAChC,cAAc,EAAE,MAAM,CAAA;IACtB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,qBAAqB,EAAE,CAAA;CAClC;AAED,UAAU,wBAAwB;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,cAAc,EAAE,MAAM,CAAA;IACtB,eAAe,EAAE,MAAM,CAAA;IACvB,QAAQ,EAAE,mBAAmB,CAAA;CAC9B;AAED,UAAU,uBAAuB;IAC/B,QAAQ,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAC7C,WAAW,EAAE,wBAAwB,EAAE,CAAA;CACxC;AAED,UAAU,oBAAoB;IAC5B,MAAM,EAAE,MAAM,CAAA;IACd,EAAE,EAAE,MAAM,CAAA;IACV,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,qBAAqB,CAAA;CAC9B;AAED,UAAU,sBAAsB;IAC9B,MAAM,EAAE,oBAAoB,EAAE,CAAA;IAC9B,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,gBAAgB,CAAA;CAC5B;AAWD,UAAU,gBAAgB;IACxB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,MAAM,CAAA;IACd,kBAAkB,EAAE,MAAM,CAAA;IAC1B,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;CACf;AAsiBD,eAAO,MAAM,qBAAqB,GAChC,YAAY,MAAM,EAClB,qBAAkF,EAClF,qBAAmF,EACnF,cAAa,MAAM,CAAC,UAAwB,KAC3C,OAAO,CAAC,iBAAiB,CA8C3B,CAAA;AAED,eAAO,MAAM,yBAAyB,GAAI,QAAQ,iBAAiB,KAAG,MAiCrE,CAAA"}
|