kmcom-nuxt-layers 2.2.11 → 2.2.12
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/docs/FALLOW-COMPLEXITY-DUPLICATION-AUDIT.md +65 -0
- package/docs/IMPROVE-AUDIT-README.md +30 -0
- package/docs/IMPROVE-AUDIT-RESULTS.md +52 -0
- package/docs/IMPROVE-DEEP-AUDIT-RESULTS.md +81 -0
- package/docs/fallow-refactor/apps-debug.md +27 -0
- package/docs/fallow-refactor/apps-playground.md +46 -0
- package/docs/fallow-refactor/apps-visual-identity.md +41 -0
- package/docs/fallow-refactor/layers-animations.md +34 -0
- package/docs/fallow-refactor/layers-canvas.md +32 -0
- package/docs/fallow-refactor/layers-content.md +33 -0
- package/docs/fallow-refactor/layers-core.md +39 -0
- package/docs/fallow-refactor/layers-feeds.md +39 -0
- package/docs/fallow-refactor/layers-forms.md +30 -0
- package/docs/fallow-refactor/layers-layout.md +42 -0
- package/docs/fallow-refactor/layers-mailer.md +32 -0
- package/docs/fallow-refactor/layers-motion.md +27 -0
- package/docs/fallow-refactor/layers-navigation.md +31 -0
- package/docs/fallow-refactor/layers-page-transitions.md +30 -0
- package/docs/fallow-refactor/layers-routing.md +33 -0
- package/docs/fallow-refactor/layers-scripts.md +35 -0
- package/docs/fallow-refactor/layers-scroll.md +38 -0
- package/docs/fallow-refactor/layers-seo.md +32 -0
- package/docs/fallow-refactor/layers-shader.md +53 -0
- package/docs/fallow-refactor/layers-theme.md +33 -0
- package/docs/fallow-refactor/layers-transitions.md +27 -0
- package/docs/fallow-refactor/layers-typography.md +29 -0
- package/docs/fallow-refactor/layers-ui.md +27 -0
- package/docs/fallow-refactor/layers-visual.md +34 -0
- package/layers/feeds/app/app.config.ts +4 -2
- package/layers/feeds/app/components/Feeds/Index.vue +229 -0
- package/layers/feeds/app/components/Feeds/RouteCard.vue +81 -0
- package/layers/feeds/app/plugins/feed-head.ts +27 -49
- package/layers/feeds/app/utils/feed-catalog.test.ts +71 -0
- package/layers/feeds/app/utils/feed-catalog.ts +179 -0
- package/layers/feeds/package.json +1 -0
- package/layers/feeds/server/routes/feed/discovery.get.ts +16 -14
- package/package.json +3 -2
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# layers/motion
|
|
2
|
+
|
|
3
|
+
`layers/motion` has no complexity or duplication findings in the current Fallow snapshot used for this audit.
|
|
4
|
+
|
|
5
|
+
## Complexity Findings
|
|
6
|
+
|
|
7
|
+
- No current findings.
|
|
8
|
+
|
|
9
|
+
## Duplication Findings
|
|
10
|
+
|
|
11
|
+
- No current findings in the supplied Problems export.
|
|
12
|
+
|
|
13
|
+
## Component Opportunities
|
|
14
|
+
|
|
15
|
+
- No extraction is recommended.
|
|
16
|
+
|
|
17
|
+
## Composable Opportunities
|
|
18
|
+
|
|
19
|
+
- No extraction is recommended.
|
|
20
|
+
|
|
21
|
+
## Utility Opportunities
|
|
22
|
+
|
|
23
|
+
- No extraction is recommended.
|
|
24
|
+
|
|
25
|
+
## Agent Notes
|
|
26
|
+
|
|
27
|
+
Do not create refactor work for this layer unless a later Fallow run introduces findings.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# layers/navigation
|
|
2
|
+
|
|
3
|
+
`layers/navigation` has a small high-complexity composable finding. It also has a circular dependency warning outside this scope, but this document focuses on complexity and duplication only.
|
|
4
|
+
|
|
5
|
+
## Complexity Findings
|
|
6
|
+
|
|
7
|
+
- `1` complexity finding.
|
|
8
|
+
- `layers/navigation/app/composables/useSite.ts:3` defines `useSite` with high complexity.
|
|
9
|
+
|
|
10
|
+
## Duplication Findings
|
|
11
|
+
|
|
12
|
+
- No duplication warnings for this layer in the supplied Problems export.
|
|
13
|
+
|
|
14
|
+
## Component Opportunities
|
|
15
|
+
|
|
16
|
+
- No component extraction is recommended from the current findings.
|
|
17
|
+
|
|
18
|
+
## Composable Opportunities
|
|
19
|
+
|
|
20
|
+
- Keep `useSite()` as the public composable.
|
|
21
|
+
|
|
22
|
+
## Utility Opportunities
|
|
23
|
+
|
|
24
|
+
- Extract site config default resolution into a pure helper.
|
|
25
|
+
- Use small helpers for title, subtitle, nav groups, and footer defaults if those branches exist in the composable.
|
|
26
|
+
|
|
27
|
+
## Acceptance Criteria
|
|
28
|
+
|
|
29
|
+
- `useSite()` keeps its public return shape.
|
|
30
|
+
- Config fallback behavior remains unchanged.
|
|
31
|
+
- `pnpm typecheck` passes.
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# layers/page-transitions
|
|
2
|
+
|
|
3
|
+
`layers/page-transitions` has only low-risk moderate complexity findings.
|
|
4
|
+
|
|
5
|
+
## Complexity Findings
|
|
6
|
+
|
|
7
|
+
- `2` complexity findings.
|
|
8
|
+
- Both are moderate.
|
|
9
|
+
- Main findings include `usePageTransition.ts:12` and `page-transitions.client.ts:3`.
|
|
10
|
+
|
|
11
|
+
## Duplication Findings
|
|
12
|
+
|
|
13
|
+
- No duplication warnings for this layer in the supplied Problems export.
|
|
14
|
+
|
|
15
|
+
## Component Opportunities
|
|
16
|
+
|
|
17
|
+
- No component extraction is recommended.
|
|
18
|
+
|
|
19
|
+
## Composable Opportunities
|
|
20
|
+
|
|
21
|
+
- Keep `usePageTransition()` as the public API.
|
|
22
|
+
|
|
23
|
+
## Utility Opportunities
|
|
24
|
+
|
|
25
|
+
- Extract transition config defaulting if more transition modes are added.
|
|
26
|
+
|
|
27
|
+
## Acceptance Criteria
|
|
28
|
+
|
|
29
|
+
- No behavior changes to page transition config.
|
|
30
|
+
- `pnpm typecheck` passes.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# layers/routing
|
|
2
|
+
|
|
3
|
+
`layers/routing` has modest complexity in route resolution and middleware checks. Keep the public utility API stable.
|
|
4
|
+
|
|
5
|
+
## Complexity Findings
|
|
6
|
+
|
|
7
|
+
- `3` complexity findings.
|
|
8
|
+
- `1` critical finding.
|
|
9
|
+
- `layers/routing/app/utils/resolveRoute.ts:8` defines `resolveRoute` with cyclomatic complexity `10`.
|
|
10
|
+
- `layers/routing/nuxt.config.ts:27` and `middleware/02.governance.global.ts:4` have moderate findings.
|
|
11
|
+
|
|
12
|
+
## Duplication Findings
|
|
13
|
+
|
|
14
|
+
- No duplication warnings for this layer in the supplied Problems export.
|
|
15
|
+
|
|
16
|
+
## Component Opportunities
|
|
17
|
+
|
|
18
|
+
- No component extraction is relevant.
|
|
19
|
+
|
|
20
|
+
## Composable Opportunities
|
|
21
|
+
|
|
22
|
+
- No composable extraction is recommended.
|
|
23
|
+
|
|
24
|
+
## Utility Opportunities
|
|
25
|
+
|
|
26
|
+
- Split `resolveRoute()` into maintenance, strict deny, layer deny, and feature result helpers.
|
|
27
|
+
- Keep the exported `resolveRoute()` as the orchestration function.
|
|
28
|
+
|
|
29
|
+
## Acceptance Criteria
|
|
30
|
+
|
|
31
|
+
- `resolveRoute()` keeps the same input and output contract.
|
|
32
|
+
- Individual rule helpers can be tested independently.
|
|
33
|
+
- `pnpm typecheck` passes.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# layers/scripts
|
|
2
|
+
|
|
3
|
+
`layers/scripts` has high-complexity script and analytics composables. Split consent decisions from script loading.
|
|
4
|
+
|
|
5
|
+
## Complexity Findings
|
|
6
|
+
|
|
7
|
+
- `2` complexity findings.
|
|
8
|
+
- Both are high.
|
|
9
|
+
- Main findings include `useAnalytics.ts:10` and `useGtm.ts:1`.
|
|
10
|
+
- Fallow also identifies `useScriptsConsent.ts` as a high-impact split target because several files depend on it.
|
|
11
|
+
|
|
12
|
+
## Duplication Findings
|
|
13
|
+
|
|
14
|
+
- No duplication warnings for this layer in the supplied Problems export.
|
|
15
|
+
|
|
16
|
+
## Component Opportunities
|
|
17
|
+
|
|
18
|
+
- No component extraction is relevant.
|
|
19
|
+
|
|
20
|
+
## Composable Opportunities
|
|
21
|
+
|
|
22
|
+
- Keep `useAnalytics()`, `useGtm()`, and `useScriptsConsent()` as public APIs.
|
|
23
|
+
- Extract consent evaluation from script loading side effects.
|
|
24
|
+
|
|
25
|
+
## Utility Opportunities
|
|
26
|
+
|
|
27
|
+
- Create `resolveScriptConsentState()`.
|
|
28
|
+
- Create `shouldLoadScriptProvider()`.
|
|
29
|
+
- Create provider-specific script config builders.
|
|
30
|
+
|
|
31
|
+
## Acceptance Criteria
|
|
32
|
+
|
|
33
|
+
- Consent logic can be tested without loading scripts.
|
|
34
|
+
- Public composable return shapes stay stable.
|
|
35
|
+
- `pnpm typecheck` passes.
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# layers/scroll
|
|
2
|
+
|
|
3
|
+
`layers/scroll` has complexity in scroll option handling and motion components. The work is mostly local function splitting.
|
|
4
|
+
|
|
5
|
+
## Complexity Findings
|
|
6
|
+
|
|
7
|
+
- `10` complexity findings.
|
|
8
|
+
- `2` critical findings.
|
|
9
|
+
- `layers/scroll/app/composables/useSmoothScroll.ts:63` defines `scrollTo`.
|
|
10
|
+
- `layers/scroll/app/composables/useSmoothScroll.ts:116` defines `nativeScrollTo`.
|
|
11
|
+
- `layers/scroll/app/components/Motion/Parallax.vue:41` has a high-complexity computed arrow function.
|
|
12
|
+
|
|
13
|
+
## Duplication Findings
|
|
14
|
+
|
|
15
|
+
- No duplication warnings for this layer in the supplied Problems export.
|
|
16
|
+
|
|
17
|
+
## Component Opportunities
|
|
18
|
+
|
|
19
|
+
- No new component is recommended.
|
|
20
|
+
- Keep existing motion components as the public API.
|
|
21
|
+
|
|
22
|
+
## Composable Opportunities
|
|
23
|
+
|
|
24
|
+
- Keep `useSmoothScroll()` as the public API.
|
|
25
|
+
- Extract option normalization into helper functions inside the composable or a utility module.
|
|
26
|
+
|
|
27
|
+
## Utility Opportunities
|
|
28
|
+
|
|
29
|
+
- Create `normalizeScrollTarget()`.
|
|
30
|
+
- Create `normalizeScrollOptions()`.
|
|
31
|
+
- Create `runNativeScroll()`.
|
|
32
|
+
- Create `resolveParallaxTransform()` for the Parallax component.
|
|
33
|
+
|
|
34
|
+
## Acceptance Criteria
|
|
35
|
+
|
|
36
|
+
- `scrollTo` and `nativeScrollTo` become small orchestration functions.
|
|
37
|
+
- Scroll behavior remains unchanged for string selectors, elements, numbers, and top scrolling.
|
|
38
|
+
- `pnpm typecheck` passes.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# layers/seo
|
|
2
|
+
|
|
3
|
+
`layers/seo` has a small complexity finding in config resolution. Treat this as a low-risk utility cleanup.
|
|
4
|
+
|
|
5
|
+
## Complexity Findings
|
|
6
|
+
|
|
7
|
+
- `1` complexity finding.
|
|
8
|
+
- `1` critical finding.
|
|
9
|
+
- `layers/seo/app/composables/useSeoConfig.ts:1` defines `useSeoConfig` with cyclomatic complexity `11`.
|
|
10
|
+
|
|
11
|
+
## Duplication Findings
|
|
12
|
+
|
|
13
|
+
- No duplication warnings for this layer in the supplied Problems export.
|
|
14
|
+
|
|
15
|
+
## Component Opportunities
|
|
16
|
+
|
|
17
|
+
- No component extraction is relevant.
|
|
18
|
+
|
|
19
|
+
## Composable Opportunities
|
|
20
|
+
|
|
21
|
+
- Keep `useSeoConfig()` as the public composable.
|
|
22
|
+
|
|
23
|
+
## Utility Opportunities
|
|
24
|
+
|
|
25
|
+
- Extract config defaults into a pure resolver.
|
|
26
|
+
- Use small helpers for site metadata, Open Graph defaults, and optional feature flags.
|
|
27
|
+
|
|
28
|
+
## Acceptance Criteria
|
|
29
|
+
|
|
30
|
+
- `useSeoConfig()` becomes a thin wrapper around pure resolvers.
|
|
31
|
+
- Existing SEO config output remains unchanged.
|
|
32
|
+
- `pnpm typecheck` passes.
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# layers/shader
|
|
2
|
+
|
|
3
|
+
`layers/shader` dominates the duplication report. It also has several critical complexity findings, but most work should preserve public component names and extract shared internals.
|
|
4
|
+
|
|
5
|
+
## Complexity Findings
|
|
6
|
+
|
|
7
|
+
- `41` complexity findings.
|
|
8
|
+
- `6` critical findings.
|
|
9
|
+
- `layers/shader/app/composables/useShader.ts:38` defines `applyConfig` with cyclomatic complexity `18` and cognitive complexity `20`.
|
|
10
|
+
- Other critical findings include `Material/Gradient.client.vue`, `Material/Node.client.vue`, `Shader/Background.client.vue`, and shader layer uniform update functions.
|
|
11
|
+
|
|
12
|
+
## Duplication Findings
|
|
13
|
+
|
|
14
|
+
- `341` duplicate warnings.
|
|
15
|
+
- `useAmbientMaterials.ts:272-368` duplicates `useAmbientMaterials.ts:496-563` for `97` lines.
|
|
16
|
+
- `Material/AmbientFlow.client.vue:22-102` duplicates `Material/AmbientNebula.client.vue:23-103` for `81` lines.
|
|
17
|
+
- `Material/AmbientGradientMesh.client.vue:30-100` duplicates `Material/AmbientNebula.client.vue:30-100` for `71` lines.
|
|
18
|
+
- `Material/AmbientAurora.client.vue:28-92` duplicates `Material/AmbientOcean.client.vue:30-94` for `65` lines.
|
|
19
|
+
- Many `Pipeline/*` components duplicate uniform setup and stage registration.
|
|
20
|
+
- `Preset/Theme*.client.vue` files share a repeated theme preset wrapper pattern.
|
|
21
|
+
|
|
22
|
+
## Component Opportunities
|
|
23
|
+
|
|
24
|
+
- Create an internal material host component for repeated canvas and plane markup.
|
|
25
|
+
- Create a shared preset shell for ambient preset components.
|
|
26
|
+
- Consider `Preset/Theme.client.vue` with a `preset` prop, while keeping existing `Preset/ThemeWave.client.vue`, `Preset/ThemeAurora.client.vue`, and similar wrappers.
|
|
27
|
+
|
|
28
|
+
## Composable Opportunities
|
|
29
|
+
|
|
30
|
+
- Create `useReactiveShaderUniforms()` for repeated prop-to-uniform watchers.
|
|
31
|
+
- Create `useAmbientMaterial()` for shared speed, intensity, mouse, and color uniforms.
|
|
32
|
+
- Create `usePipelineStageUniforms()` for repeated `uniform()` plus `watch()` setup in pipeline components.
|
|
33
|
+
- Create `useShaderMaterialPlane()` for material creation, disposal, and render-plane lifecycle.
|
|
34
|
+
|
|
35
|
+
## Utility Opportunities
|
|
36
|
+
|
|
37
|
+
- Create `layers/shader/app/utils/materialConfig.ts` for `applyNodeMaterialConfig()`.
|
|
38
|
+
- Create `layers/shader/app/utils/uniformSetters.ts` for repeated uniform updates.
|
|
39
|
+
- Create `layers/shader/app/utils/tsl/ambient.ts` for mouse offset, radial falloff, flow warp, aurora curtain, and palette mixing helpers.
|
|
40
|
+
- Extract shared noise pipeline builders that accept a noise strategy and color strategy.
|
|
41
|
+
|
|
42
|
+
## Refactor Constraints
|
|
43
|
+
|
|
44
|
+
- Do not collapse all public pipeline components into one dynamic component unless there is a migration plan.
|
|
45
|
+
- Keep public auto-import component files as thin wrappers if needed.
|
|
46
|
+
- Consolidate internals before changing public component APIs.
|
|
47
|
+
|
|
48
|
+
## Acceptance Criteria
|
|
49
|
+
|
|
50
|
+
- The largest shader duplicate groups shrink materially.
|
|
51
|
+
- Public shader component names continue to auto-import.
|
|
52
|
+
- `applyConfig` drops below critical complexity.
|
|
53
|
+
- `pnpm typecheck` passes.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# layers/theme
|
|
2
|
+
|
|
3
|
+
`layers/theme` has one duplicate with the playground and one server-side CSS generation complexity finding.
|
|
4
|
+
|
|
5
|
+
## Complexity Findings
|
|
6
|
+
|
|
7
|
+
- `2` complexity findings.
|
|
8
|
+
- `layers/theme/server/plugins/theme-fouc.ts:86` defines `buildAccentCSS` with high complexity.
|
|
9
|
+
- `layers/theme/app/plugins/theme.client.ts:5` has a moderate setup finding.
|
|
10
|
+
|
|
11
|
+
## Duplication Findings
|
|
12
|
+
|
|
13
|
+
- `1` duplicate warning.
|
|
14
|
+
- `ThemePicker/Menu.vue:12-27` duplicates `apps/playground/app/pages/theme.vue:29-45`.
|
|
15
|
+
|
|
16
|
+
## Component Opportunities
|
|
17
|
+
|
|
18
|
+
- Keep the canonical theme picker menu in `layers/theme`.
|
|
19
|
+
- Update the playground theme page to consume the layer component instead of duplicating menu behavior.
|
|
20
|
+
|
|
21
|
+
## Composable Opportunities
|
|
22
|
+
|
|
23
|
+
- No new composable is required from the current findings.
|
|
24
|
+
|
|
25
|
+
## Utility Opportunities
|
|
26
|
+
|
|
27
|
+
- Split `buildAccentCSS()` into token extraction, CSS variable formatting, and selector assembly helpers.
|
|
28
|
+
|
|
29
|
+
## Acceptance Criteria
|
|
30
|
+
|
|
31
|
+
- The playground theme page no longer duplicates `ThemePicker/Menu.vue` logic.
|
|
32
|
+
- `buildAccentCSS()` delegates formatting to pure helpers.
|
|
33
|
+
- `pnpm typecheck` passes.
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# layers/transitions
|
|
2
|
+
|
|
3
|
+
`layers/transitions` has no complexity or duplication findings in the current Fallow snapshot used for this audit.
|
|
4
|
+
|
|
5
|
+
## Complexity Findings
|
|
6
|
+
|
|
7
|
+
- No current findings.
|
|
8
|
+
|
|
9
|
+
## Duplication Findings
|
|
10
|
+
|
|
11
|
+
- No current findings in the supplied Problems export.
|
|
12
|
+
|
|
13
|
+
## Component Opportunities
|
|
14
|
+
|
|
15
|
+
- No extraction is recommended.
|
|
16
|
+
|
|
17
|
+
## Composable Opportunities
|
|
18
|
+
|
|
19
|
+
- No extraction is recommended.
|
|
20
|
+
|
|
21
|
+
## Utility Opportunities
|
|
22
|
+
|
|
23
|
+
- No extraction is recommended.
|
|
24
|
+
|
|
25
|
+
## Agent Notes
|
|
26
|
+
|
|
27
|
+
Do not create refactor work for this layer unless a later Fallow run introduces findings.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# layers/typography
|
|
2
|
+
|
|
3
|
+
`layers/typography` has one moderate normalization finding. Treat this as a low-priority utility cleanup.
|
|
4
|
+
|
|
5
|
+
## Complexity Findings
|
|
6
|
+
|
|
7
|
+
- `1` complexity finding.
|
|
8
|
+
- `layers/typography/app/composables/typography.ts:17` defines `normalizeAxis` with moderate complexity.
|
|
9
|
+
|
|
10
|
+
## Duplication Findings
|
|
11
|
+
|
|
12
|
+
- No duplication warnings for this layer in the supplied Problems export.
|
|
13
|
+
|
|
14
|
+
## Component Opportunities
|
|
15
|
+
|
|
16
|
+
- No component extraction is recommended.
|
|
17
|
+
|
|
18
|
+
## Composable Opportunities
|
|
19
|
+
|
|
20
|
+
- Keep typography composables stable.
|
|
21
|
+
|
|
22
|
+
## Utility Opportunities
|
|
23
|
+
|
|
24
|
+
- Replace branching in `normalizeAxis()` with a lookup table if the supported axes are fixed.
|
|
25
|
+
|
|
26
|
+
## Acceptance Criteria
|
|
27
|
+
|
|
28
|
+
- Axis normalization output remains unchanged.
|
|
29
|
+
- `pnpm typecheck` passes.
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# layers/ui
|
|
2
|
+
|
|
3
|
+
`layers/ui` has no complexity or duplication findings in the current Fallow snapshot used for this audit.
|
|
4
|
+
|
|
5
|
+
## Complexity Findings
|
|
6
|
+
|
|
7
|
+
- No current findings.
|
|
8
|
+
|
|
9
|
+
## Duplication Findings
|
|
10
|
+
|
|
11
|
+
- No current findings in the supplied Problems export.
|
|
12
|
+
|
|
13
|
+
## Component Opportunities
|
|
14
|
+
|
|
15
|
+
- No extraction is recommended.
|
|
16
|
+
|
|
17
|
+
## Composable Opportunities
|
|
18
|
+
|
|
19
|
+
- No extraction is recommended.
|
|
20
|
+
|
|
21
|
+
## Utility Opportunities
|
|
22
|
+
|
|
23
|
+
- No extraction is recommended.
|
|
24
|
+
|
|
25
|
+
## Agent Notes
|
|
26
|
+
|
|
27
|
+
Do not create refactor work for this layer unless a later Fallow run introduces findings.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# layers/visual
|
|
2
|
+
|
|
3
|
+
`layers/visual` has complexity in responsive image size formatting and gradient style helpers. Prefer pure utilities.
|
|
4
|
+
|
|
5
|
+
## Complexity Findings
|
|
6
|
+
|
|
7
|
+
- `7` complexity findings.
|
|
8
|
+
- `1` critical finding.
|
|
9
|
+
- `layers/visual/app/composables/picture.ts:34` defines `responsiveSizesToString` with cyclomatic complexity `13` and cognitive complexity `17`.
|
|
10
|
+
- `layers/visual/app/composables/gradient.ts` has several high-complexity color and style helpers.
|
|
11
|
+
|
|
12
|
+
## Duplication Findings
|
|
13
|
+
|
|
14
|
+
- No duplication warnings for this layer in the supplied Problems export.
|
|
15
|
+
|
|
16
|
+
## Component Opportunities
|
|
17
|
+
|
|
18
|
+
- No component extraction is recommended.
|
|
19
|
+
|
|
20
|
+
## Composable Opportunities
|
|
21
|
+
|
|
22
|
+
- Keep `picture.ts` and `gradient.ts` composable entry points stable.
|
|
23
|
+
|
|
24
|
+
## Utility Opportunities
|
|
25
|
+
|
|
26
|
+
- Split `responsiveSizesToString()` into parser, normalizer, and serializer helpers.
|
|
27
|
+
- Extract shared color resolution used by accent and gradient helpers.
|
|
28
|
+
- Create a gradient style builder utility that has no Vue dependencies.
|
|
29
|
+
|
|
30
|
+
## Acceptance Criteria
|
|
31
|
+
|
|
32
|
+
- `responsiveSizesToString` drops below critical complexity.
|
|
33
|
+
- Existing `Media/Picture.vue` behavior remains unchanged.
|
|
34
|
+
- `pnpm typecheck` passes.
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { PageCollections } from '@nuxt/content'
|
|
2
|
+
|
|
1
3
|
export default defineAppConfig({
|
|
2
4
|
feedsLayer: {
|
|
3
5
|
feed: {
|
|
@@ -14,9 +16,9 @@ declare module '@nuxt/schema' {
|
|
|
14
16
|
feed?: {
|
|
15
17
|
limit?: number
|
|
16
18
|
/** Collection names to expose as feeds. Default: ['blog'] */
|
|
17
|
-
collections?:
|
|
19
|
+
collections?: Array<keyof PageCollections>
|
|
18
20
|
/** Collection used by the shorthand /feed/rss routes. Default: 'blog' */
|
|
19
|
-
defaultCollection?:
|
|
21
|
+
defaultCollection?: keyof PageCollections
|
|
20
22
|
}
|
|
21
23
|
}
|
|
22
24
|
}
|