@dimensional-innovations/tool-config 5.0.0 → 5.0.2

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.
Files changed (40) hide show
  1. package/dist/astro-6WHBKQFX.js +43 -0
  2. package/dist/astro-6WHBKQFX.js.map +1 -0
  3. package/dist/chunk-HUYPX7RZ.js +125 -0
  4. package/dist/chunk-HUYPX7RZ.js.map +1 -0
  5. package/dist/chunk-ITGUBGO6.js +625 -0
  6. package/dist/chunk-ITGUBGO6.js.map +1 -0
  7. package/dist/chunk-L7IN57ZC.js +167 -0
  8. package/dist/chunk-L7IN57ZC.js.map +1 -0
  9. package/dist/chunk-LRQFF2N5.js +141 -0
  10. package/dist/chunk-LRQFF2N5.js.map +1 -0
  11. package/dist/chunk-OMQFJOZZ.js +48 -0
  12. package/dist/chunk-OMQFJOZZ.js.map +1 -0
  13. package/dist/chunk-SY42COTI.js +363 -0
  14. package/dist/chunk-SY42COTI.js.map +1 -0
  15. package/dist/chunk-SZOB6JY7.js +446 -0
  16. package/dist/chunk-SZOB6JY7.js.map +1 -0
  17. package/dist/cli/index.js +1812 -0
  18. package/dist/cli/index.js.map +1 -0
  19. package/dist/eslint-YWWMMZDP.js +5 -0
  20. package/dist/eslint-YWWMMZDP.js.map +1 -0
  21. package/dist/index.d.ts +401 -0
  22. package/dist/index.js +69 -0
  23. package/dist/index.js.map +1 -0
  24. package/dist/prettier-EYWEBRIS.js +4 -0
  25. package/dist/prettier-EYWEBRIS.js.map +1 -0
  26. package/dist/react-YIKJI3VA.js +91 -0
  27. package/dist/react-YIKJI3VA.js.map +1 -0
  28. package/dist/semantic-release-7XCPBEKO.js +4 -0
  29. package/dist/semantic-release-7XCPBEKO.js.map +1 -0
  30. package/dist/solid-F44BEBBP.js +54 -0
  31. package/dist/solid-F44BEBBP.js.map +1 -0
  32. package/dist/stylelint-ENTCYNXG.js +5 -0
  33. package/dist/stylelint-ENTCYNXG.js.map +1 -0
  34. package/dist/svelte-XEOX6WAQ.js +56 -0
  35. package/dist/svelte-XEOX6WAQ.js.map +1 -0
  36. package/dist/typescript-ZJ7LECQN.js +4 -0
  37. package/dist/typescript-ZJ7LECQN.js.map +1 -0
  38. package/dist/vue-DP7MCMOU.js +144 -0
  39. package/dist/vue-DP7MCMOU.js.map +1 -0
  40. package/package.json +3 -2
@@ -0,0 +1,43 @@
1
+ import prettierConfig from 'eslint-config-prettier';
2
+ import { configs } from 'eslint-plugin-astro';
3
+
4
+ // src/tools/eslint/presets/frameworks/astro.ts
5
+ function createAstroPreset() {
6
+ return [
7
+ ...configs.recommended,
8
+ ...configs["jsx-a11y-recommended"],
9
+ {
10
+ files: ["**/*.astro"],
11
+ rules: {
12
+ // Component Best Practices (5 rules)
13
+ "astro/no-conflict-set-directives": "error",
14
+ // Avoid conflicting set directives
15
+ "astro/no-unused-define-vars-in-style": "error",
16
+ // Remove unused CSS variables
17
+ "astro/no-deprecated-astro-canonicalurl": "error",
18
+ // Use new canonical URL API
19
+ "astro/no-deprecated-astro-fetchcontent": "error",
20
+ // Use new content collections
21
+ "astro/no-deprecated-astro-resolve": "error",
22
+ // Use new module resolution
23
+ // Template Syntax (3 rules - formatting rules removed, handled by Prettier)
24
+ "astro/valid-compile": "error",
25
+ // Ensure valid Astro syntax
26
+ "astro/no-set-html-directive": "warn",
27
+ // Warn about XSS risk
28
+ "astro/prefer-class-list-directive": "error"
29
+ // Use class:list over className
30
+ // Note: astro/semi is a formatting rule disabled by eslint-config-prettier
31
+ // Accessibility (included from jsx-a11y-recommended preset)
32
+ // - alt-text, click-events-have-key-events, etc.
33
+ }
34
+ },
35
+ // Disable all formatting rules that conflict with Prettier
36
+ // This must be last to override any formatting rules from above
37
+ prettierConfig
38
+ ];
39
+ }
40
+
41
+ export { createAstroPreset as default };
42
+ //# sourceMappingURL=astro-6WHBKQFX.js.map
43
+ //# sourceMappingURL=astro-6WHBKQFX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/tools/eslint/presets/frameworks/astro.ts"],"names":[],"mappings":";;;;AAee,SAAR,iBAAA,GAAyD;AAC9D,EAAA,OAAO;AAAA,IACL,GAAG,OAAA,CAAQ,WAAA;AAAA,IACX,GAAG,QAAQ,sBAAsB,CAAA;AAAA,IACjC;AAAA,MACE,KAAA,EAAO,CAAC,YAAY,CAAA;AAAA,MACpB,KAAA,EAAO;AAAA;AAAA,QAEL,kCAAA,EAAoC,OAAA;AAAA;AAAA,QACpC,sCAAA,EAAwC,OAAA;AAAA;AAAA,QACxC,wCAAA,EAA0C,OAAA;AAAA;AAAA,QAC1C,wCAAA,EAA0C,OAAA;AAAA;AAAA,QAC1C,mCAAA,EAAqC,OAAA;AAAA;AAAA;AAAA,QAGrC,qBAAA,EAAuB,OAAA;AAAA;AAAA,QACvB,6BAAA,EAA+B,MAAA;AAAA;AAAA,QAC/B,mCAAA,EAAqC;AAAA;AAAA;AAAA;AAAA;AAAA;AAKvC,KACF;AAAA;AAAA;AAAA,IAIA;AAAA,GACF;AACF","file":"astro-6WHBKQFX.js","sourcesContent":["import prettierConfig from 'eslint-config-prettier'\nimport { configs } from 'eslint-plugin-astro'\n\nimport type { EslintFlatConfig } from '#core/types.js'\n\n/**\n * Astro framework configuration\n * Rules for Astro components and island architecture\n *\n * Rules organized by category:\n * - Component best practices\n * - Island architecture\n * - Template syntax\n * - Accessibility\n */\nexport default function createAstroPreset(): EslintFlatConfig[] {\n return [\n ...configs.recommended,\n ...configs['jsx-a11y-recommended'],\n {\n files: ['**/*.astro'],\n rules: {\n // Component Best Practices (5 rules)\n 'astro/no-conflict-set-directives': 'error', // Avoid conflicting set directives\n 'astro/no-unused-define-vars-in-style': 'error', // Remove unused CSS variables\n 'astro/no-deprecated-astro-canonicalurl': 'error', // Use new canonical URL API\n 'astro/no-deprecated-astro-fetchcontent': 'error', // Use new content collections\n 'astro/no-deprecated-astro-resolve': 'error', // Use new module resolution\n\n // Template Syntax (3 rules - formatting rules removed, handled by Prettier)\n 'astro/valid-compile': 'error', // Ensure valid Astro syntax\n 'astro/no-set-html-directive': 'warn', // Warn about XSS risk\n 'astro/prefer-class-list-directive': 'error' // Use class:list over className\n // Note: astro/semi is a formatting rule disabled by eslint-config-prettier\n\n // Accessibility (included from jsx-a11y-recommended preset)\n // - alt-text, click-events-have-key-events, etc.\n }\n },\n\n // Disable all formatting rules that conflict with Prettier\n // This must be last to override any formatting rules from above\n prettierConfig\n ]\n}\n"]}
@@ -0,0 +1,125 @@
1
+ import { autoDetect } from './chunk-L7IN57ZC.js';
2
+
3
+ // src/tools/prettier/presets/base.ts
4
+ var basePreset = {
5
+ // Code style
6
+ semi: false,
7
+ singleQuote: true,
8
+ trailingComma: "none",
9
+ // Line formatting
10
+ printWidth: 100,
11
+ tabWidth: 2,
12
+ useTabs: false,
13
+ proseWrap: "preserve",
14
+ // Syntax preferences
15
+ arrowParens: "avoid",
16
+ bracketSpacing: true,
17
+ bracketSameLine: false,
18
+ singleAttributePerLine: true,
19
+ // Line endings
20
+ endOfLine: "lf"
21
+ };
22
+ var base_default = basePreset;
23
+
24
+ // src/tools/prettier/presets/frameworks/astro.ts
25
+ var astroPreset = {
26
+ // Use Astro plugin for .astro files
27
+ plugins: ["prettier-plugin-astro"]
28
+ // Astro plugin handles all formatting automatically
29
+ // No additional options needed
30
+ };
31
+ var astro_default = astroPreset;
32
+
33
+ // src/tools/prettier/presets/frameworks/react.ts
34
+ var reactPreset = {
35
+ // JSX-specific options
36
+ // Use double quotes in JSX attributes (React convention)
37
+ jsxSingleQuote: false
38
+ // Note: bracketSameLine is now in base preset
39
+ };
40
+ var react_default = reactPreset;
41
+
42
+ // src/tools/prettier/presets/frameworks/svelte.ts
43
+ var sveltePreset = {
44
+ // Use Svelte plugin for .svelte files
45
+ plugins: ["prettier-plugin-svelte"],
46
+ // Component block ordering: options, scripts, markup, styles
47
+ // This is the standard Svelte convention
48
+ svelteSortOrder: "options-scripts-markup-styles",
49
+ // Don't enforce strict mode (allow flexibility)
50
+ svelteStrictMode: false,
51
+ // Indent <script> and <style> tags for consistency
52
+ svelteIndentScriptAndStyle: true
53
+ };
54
+ var svelte_default = sveltePreset;
55
+
56
+ // src/tools/prettier/presets/frameworks/vanilla.ts
57
+ var vanillaPreset = {
58
+ // No framework-specific options needed
59
+ // Base preset provides everything required
60
+ };
61
+ var vanilla_default = vanillaPreset;
62
+
63
+ // src/tools/prettier/presets/frameworks/vue.ts
64
+ var vuePreset = {
65
+ // Don't indent <script> and <style> tags
66
+ // This keeps them aligned with <template> for consistency
67
+ vueIndentScriptAndStyle: false,
68
+ // Ignore whitespace sensitivity in HTML
69
+ // Prevents issues with Vue's template whitespace handling
70
+ htmlWhitespaceSensitivity: "ignore"
71
+ };
72
+ var vue_default = vuePreset;
73
+
74
+ // src/tools/prettier/index.ts
75
+ async function createPrettierConfig(options = {}) {
76
+ const { framework: explicitFramework = "auto", cwd = process.cwd(), ...userOverrides } = options;
77
+ const framework = explicitFramework === "auto" ? autoDetect(cwd).framework : explicitFramework;
78
+ const config = { ...base_default };
79
+ switch (framework) {
80
+ case "vue": {
81
+ Object.assign(config, vue_default);
82
+ console.warn("\u{1F4DD} Prettier: Detected Vue.js - using Vue plugin");
83
+ break;
84
+ }
85
+ case "react": {
86
+ Object.assign(config, react_default);
87
+ console.warn("\u{1F4DD} Prettier: Detected React - using JSX conventions");
88
+ break;
89
+ }
90
+ case "solid": {
91
+ Object.assign(config, react_default);
92
+ console.warn("\u{1F4DD} Prettier: Detected Solid.js - using JSX conventions");
93
+ break;
94
+ }
95
+ case "svelte": {
96
+ Object.assign(config, svelte_default);
97
+ console.warn("\u{1F4DD} Prettier: Detected Svelte - using Svelte plugin");
98
+ break;
99
+ }
100
+ case "astro": {
101
+ Object.assign(config, astro_default);
102
+ console.warn("\u{1F4DD} Prettier: Detected Astro - using Astro plugin");
103
+ break;
104
+ }
105
+ case "angular":
106
+ case "node":
107
+ case "vanilla": {
108
+ Object.assign(config, vanilla_default);
109
+ console.warn(`\u{1F4DD} Prettier: Detected ${framework} - using base configuration`);
110
+ break;
111
+ }
112
+ default: {
113
+ console.warn(`\u26A0\uFE0F Unknown framework "${framework}", using base configuration`);
114
+ Object.assign(config, vanilla_default);
115
+ }
116
+ }
117
+ const { framework: _f, cwd: _c, customIgnores: _ci, ...prettierOverrides } = userOverrides;
118
+ Object.assign(config, prettierOverrides);
119
+ return config;
120
+ }
121
+ var prettier_default = createPrettierConfig;
122
+
123
+ export { createPrettierConfig, prettier_default };
124
+ //# sourceMappingURL=chunk-HUYPX7RZ.js.map
125
+ //# sourceMappingURL=chunk-HUYPX7RZ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/tools/prettier/presets/base.ts","../src/tools/prettier/presets/frameworks/astro.ts","../src/tools/prettier/presets/frameworks/react.ts","../src/tools/prettier/presets/frameworks/svelte.ts","../src/tools/prettier/presets/frameworks/vanilla.ts","../src/tools/prettier/presets/frameworks/vue.ts","../src/tools/prettier/index.ts"],"names":[],"mappings":"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","file":"chunk-HUYPX7RZ.js","sourcesContent":["import type { PrettierConfig } from '#core/types.js'\n\n/**\n * Base Prettier preset\n *\n * Opinionated defaults aligned with CLAUDE.md style guide:\n * - No semicolons (cleaner syntax)\n * - Single quotes (consistent with ESLint config)\n * - No trailing commas (simpler diffs)\n * - 100 character line width (readable but not too long)\n * - 2 space indentation (standard)\n * - LF line endings (Unix standard)\n *\n * These settings work universally across all frameworks and can be\n * overridden by framework-specific presets or user configuration.\n */\nconst basePreset: PrettierConfig = {\n // Code style\n semi: false,\n singleQuote: true,\n trailingComma: 'none',\n\n // Line formatting\n printWidth: 100,\n tabWidth: 2,\n useTabs: false,\n proseWrap: 'preserve',\n\n // Syntax preferences\n arrowParens: 'avoid',\n bracketSpacing: true,\n bracketSameLine: false,\n singleAttributePerLine: true,\n\n // Line endings\n endOfLine: 'lf'\n}\n\nexport default basePreset\n","import type { PrettierConfig } from '#core/types.js'\n\n/**\n * Astro-specific Prettier preset\n *\n * Configures Prettier for Astro components (.astro files)\n *\n * Requires: prettier-plugin-astro (optional peer dependency)\n */\nconst astroPreset: PrettierConfig = {\n // Use Astro plugin for .astro files\n plugins: ['prettier-plugin-astro']\n // Astro plugin handles all formatting automatically\n // No additional options needed\n}\n\nexport default astroPreset\n","import type { PrettierConfig } from '#core/types.js'\n\n/**\n * React/Solid-specific Prettier preset\n *\n * Configures Prettier for JSX files used in React and Solid.js projects\n *\n * No plugins required - Prettier has built-in JSX support via babel parser\n */\nconst reactPreset: PrettierConfig = {\n // JSX-specific options\n // Use double quotes in JSX attributes (React convention)\n jsxSingleQuote: false\n\n // Note: bracketSameLine is now in base preset\n}\n\nexport default reactPreset\n","import type { PrettierConfig } from '#core/types.js'\n\n/**\n * Svelte-specific Prettier preset\n *\n * Configures Prettier for Svelte components (.svelte files)\n *\n * Requires: prettier-plugin-svelte (optional peer dependency)\n */\nconst sveltePreset: PrettierConfig = {\n // Use Svelte plugin for .svelte files\n plugins: ['prettier-plugin-svelte'],\n\n // Component block ordering: options, scripts, markup, styles\n // This is the standard Svelte convention\n svelteSortOrder: 'options-scripts-markup-styles',\n\n // Don't enforce strict mode (allow flexibility)\n svelteStrictMode: false,\n\n // Indent <script> and <style> tags for consistency\n svelteIndentScriptAndStyle: true\n}\n\nexport default sveltePreset\n","import type { PrettierConfig } from '#core/types.js'\n\n/**\n * Vanilla JavaScript/Node.js/Angular Prettier preset\n *\n * For frameworks that don't need special Prettier configuration,\n * this preset is essentially empty and relies on the base preset.\n *\n * Used for: Vanilla JS, Node.js backends, Angular projects\n */\nconst vanillaPreset: PrettierConfig = {\n // No framework-specific options needed\n // Base preset provides everything required\n}\n\nexport default vanillaPreset\n","import type { PrettierConfig } from '#core/types.js'\n\n/**\n * Vue-specific Prettier preset\n *\n * Configures Prettier for Vue 3 Single File Components (.vue files)\n *\n * Prettier 3.x has built-in Vue SFC support via its HTML parser.\n * No external plugin is required.\n */\nconst vuePreset: PrettierConfig = {\n // Don't indent <script> and <style> tags\n // This keeps them aligned with <template> for consistency\n vueIndentScriptAndStyle: false,\n\n // Ignore whitespace sensitivity in HTML\n // Prevents issues with Vue's template whitespace handling\n htmlWhitespaceSensitivity: 'ignore'\n}\n\nexport default vuePreset\n","/**\n * Prettier configuration factory\n *\n * Creates Prettier configurations with framework-aware defaults and auto-detection.\n */\n\nimport basePreset from './presets/base.js'\nimport astroPreset from './presets/frameworks/astro.js'\nimport reactPreset from './presets/frameworks/react.js'\nimport sveltePreset from './presets/frameworks/svelte.js'\nimport vanillaPreset from './presets/frameworks/vanilla.js'\nimport vuePreset from './presets/frameworks/vue.js'\n\nimport { autoDetect } from '#core/detectors.js'\nimport type { Framework, PrettierConfig, PrettierOptions } from '#core/types.js'\n\n/**\n * Create a Prettier configuration\n *\n * @param options - Configuration options\n * @returns Prettier configuration object\n *\n * @example\n * // Auto-detect framework\n * export default await createPrettierConfig();\n *\n * @example\n * // Explicit framework\n * export default await createPrettierConfig({ framework: 'vue' });\n *\n * @example\n * // With overrides\n * export default await createPrettierConfig({\n * framework: 'react',\n * printWidth: 120,\n * semi: true\n * });\n */\n// eslint-disable-next-line require-await -- async for API consistency with other tools\nexport async function createPrettierConfig(options: PrettierOptions = {}): Promise<PrettierConfig> {\n const { framework: explicitFramework = 'auto', cwd = process.cwd(), ...userOverrides } = options\n\n // Auto-detect framework if needed\n const framework: Framework =\n explicitFramework === 'auto' ? autoDetect(cwd).framework : explicitFramework\n\n // Start with base configuration\n const config: PrettierConfig = { ...basePreset }\n\n // Apply framework-specific preset\n switch (framework) {\n case 'vue': {\n Object.assign(config, vuePreset)\n console.warn('📝 Prettier: Detected Vue.js - using Vue plugin')\n break\n }\n\n case 'react': {\n Object.assign(config, reactPreset)\n console.warn('📝 Prettier: Detected React - using JSX conventions')\n break\n }\n\n case 'solid': {\n // Solid uses same JSX conventions as React\n Object.assign(config, reactPreset)\n console.warn('📝 Prettier: Detected Solid.js - using JSX conventions')\n break\n }\n\n case 'svelte': {\n Object.assign(config, sveltePreset)\n console.warn('📝 Prettier: Detected Svelte - using Svelte plugin')\n break\n }\n\n case 'astro': {\n Object.assign(config, astroPreset)\n console.warn('📝 Prettier: Detected Astro - using Astro plugin')\n break\n }\n\n case 'angular':\n case 'node':\n case 'vanilla': {\n // These frameworks use base config with no additions\n Object.assign(config, vanillaPreset)\n console.warn(`📝 Prettier: Detected ${framework} - using base configuration`)\n break\n }\n\n default: {\n console.warn(`⚠️ Unknown framework \"${framework}\", using base configuration`)\n Object.assign(config, vanillaPreset)\n }\n }\n\n // Apply user overrides (excluding our internal options)\n const { framework: _f, cwd: _c, customIgnores: _ci, ...prettierOverrides } = userOverrides\n Object.assign(config, prettierOverrides)\n\n return config\n}\n\nexport default createPrettierConfig\n"]}