@adbayb/stack 2.30.0 → 2.31.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.
@@ -1,134 +1,133 @@
1
1
  import unicornPlugin from "eslint-plugin-unicorn";
2
2
 
3
- import { JAVASCRIPT_LIKE_EXTENSIONS } from "../constants.js";
3
+ import { createConfig } from "../helpers.js";
4
+ import { JAVASCRIPT_LIKE_FILES } from "../constants.js";
4
5
 
5
- export const config = [
6
- // TODO: Add new rules https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v60.0.0
7
- {
8
- files: JAVASCRIPT_LIKE_EXTENSIONS,
9
- plugins: {
10
- unicorn: unicornPlugin,
11
- },
12
- rules: {
13
- "unicorn/better-regex": "error",
14
- "unicorn/catch-error-name": [
15
- "error",
16
- {
17
- name: "error",
18
- },
19
- ],
20
- "unicorn/consistent-empty-array-spread": "error",
21
- "unicorn/consistent-existence-index-check": "error",
22
- "unicorn/consistent-function-scoping": "error",
23
- "unicorn/custom-error-definition": "error",
24
- "unicorn/error-message": "error",
25
- "unicorn/escape-case": "error",
26
- "unicorn/expiring-todo-comments": "error",
27
- "unicorn/explicit-length-check": "error",
28
- "unicorn/filename-case": [
29
- "error",
30
- {
31
- cases: {
32
- camelCase: true,
33
- pascalCase: true,
34
- },
35
- },
36
- ],
37
- "unicorn/new-for-builtins": "error",
38
- "unicorn/no-abusive-eslint-disable": "error",
39
- "unicorn/no-array-callback-reference": "error",
40
- "unicorn/no-array-reverse": "error",
41
- "unicorn/no-await-in-promise-methods": "error",
42
- "unicorn/no-console-spaces": "error",
43
- "unicorn/no-document-cookie": "error",
44
- "unicorn/no-empty-file": "error",
45
- "unicorn/no-for-loop": "error",
46
- "unicorn/no-instanceof-array": "error",
47
- "unicorn/no-invalid-fetch-options": "error",
48
- "unicorn/no-invalid-remove-event-listener": "error",
49
- "unicorn/no-new-buffer": "error",
50
- "unicorn/no-object-as-default-parameter": "error",
51
- "unicorn/no-process-exit": "error",
52
- "unicorn/no-single-promise-in-promise-methods": "error",
53
- "unicorn/no-static-only-class": "error",
54
- "unicorn/no-typeof-undefined": "error",
55
- "unicorn/no-unnecessary-array-flat-depth": "error",
56
- "unicorn/no-unnecessary-array-splice-count": "error",
57
- "unicorn/no-unnecessary-polyfills": "error",
58
- "unicorn/no-unnecessary-slice-end": "error",
59
- "unicorn/no-unreadable-array-destructuring": "error",
60
- "unicorn/no-unreadable-iife": "error",
61
- "unicorn/no-unused-properties": "error",
62
- "unicorn/no-useless-error-capture-stack-trace": "error",
63
- "unicorn/no-useless-fallback-in-spread": "error",
64
- "unicorn/no-useless-length-check": "error",
65
- "unicorn/no-useless-promise-resolve-reject": "error",
66
- "unicorn/no-useless-spread": "error",
67
- "unicorn/no-zero-fractions": "error",
68
- "unicorn/number-literal-case": "error",
69
- "unicorn/prefer-add-event-listener": "error",
70
- "unicorn/prefer-array-find": "error",
71
- "unicorn/prefer-array-flat": "error",
72
- "unicorn/prefer-array-flat-map": "error",
73
- "unicorn/prefer-array-index-of": "error",
74
- "unicorn/prefer-array-some": "error",
75
- "unicorn/prefer-blob-reading-methods": "error",
76
- "unicorn/prefer-class-fields": "error",
77
- "unicorn/prefer-code-point": "error",
78
- "unicorn/prefer-date-now": "error",
79
- "unicorn/prefer-dom-node-append": "error",
80
- "unicorn/prefer-dom-node-remove": "error",
81
- "unicorn/prefer-dom-node-text-content": "error",
82
- "unicorn/prefer-event-target": "error",
83
- "unicorn/prefer-export-from": [
84
- "error",
85
- { ignoreUsedVariables: true },
86
- ],
87
- "unicorn/prefer-global-this": "error",
88
- "unicorn/prefer-import-meta-properties": "error",
89
- "unicorn/prefer-includes": "error",
90
- "unicorn/prefer-keyboard-event-key": "error",
91
- "unicorn/prefer-logical-operator-over-ternary": "error",
92
- "unicorn/prefer-math-min-max": "error",
93
- "unicorn/prefer-math-trunc": "error",
94
- "unicorn/prefer-modern-dom-apis": "error",
95
- "unicorn/prefer-modern-math-apis": "error",
96
- "unicorn/prefer-module": "error",
97
- "unicorn/prefer-native-coercion-functions": "error",
98
- "unicorn/prefer-negative-index": "error",
99
- "unicorn/prefer-number-properties": "error",
100
- "unicorn/prefer-object-from-entries": "error",
101
- "unicorn/prefer-optional-catch-binding": "error",
102
- "unicorn/prefer-prototype-methods": "error",
103
- "unicorn/prefer-query-selector": "error",
104
- "unicorn/prefer-reflect-apply": "error",
105
- "unicorn/prefer-regexp-test": "error",
106
- "unicorn/prefer-set-has": "error",
107
- "unicorn/prefer-set-size": "error",
108
- "unicorn/prefer-single-call": "error",
109
- "unicorn/prefer-spread": "error",
110
- "unicorn/prefer-string-raw": "error",
111
- "unicorn/prefer-string-replace-all": "error",
112
- "unicorn/prefer-string-slice": "error",
113
- "unicorn/prefer-string-starts-ends-with": "error",
114
- "unicorn/prefer-string-trim-start-end": "error",
115
- "unicorn/prefer-structured-clone": "error",
116
- "unicorn/prefer-switch": "error",
117
- "unicorn/prefer-ternary": "error",
118
- "unicorn/prefer-top-level-await": "error",
119
- "unicorn/prefer-type-error": "error",
120
- "unicorn/prevent-abbreviations": [
121
- "error",
122
- {
123
- ignore: [/^props/i, /props$/i, /^ref/i, /ref$/i],
6
+ export const config = createConfig({
7
+ files: JAVASCRIPT_LIKE_FILES,
8
+ plugins: {
9
+ unicorn: unicornPlugin,
10
+ },
11
+ rules: {
12
+ "unicorn/better-regex": "error",
13
+ "unicorn/catch-error-name": [
14
+ "error",
15
+ {
16
+ name: "error",
17
+ },
18
+ ],
19
+ "unicorn/consistent-empty-array-spread": "error",
20
+ "unicorn/consistent-existence-index-check": "error",
21
+ "unicorn/consistent-function-scoping": "error",
22
+ "unicorn/custom-error-definition": "error",
23
+ "unicorn/error-message": "error",
24
+ "unicorn/escape-case": "error",
25
+ "unicorn/expiring-todo-comments": "error",
26
+ "unicorn/explicit-length-check": "error",
27
+ "unicorn/filename-case": [
28
+ "error",
29
+ {
30
+ cases: {
31
+ camelCase: true,
32
+ pascalCase: true,
124
33
  },
125
- ],
126
- "unicorn/relative-url-style": ["error", "always"],
127
- "unicorn/require-array-join-separator": "error",
128
- "unicorn/require-number-to-fixed-digits-argument": "error",
129
- "unicorn/switch-case-braces": "error",
130
- "unicorn/text-encoding-identifier-case": "error",
131
- "unicorn/throw-new-error": "error",
132
- },
34
+ },
35
+ ],
36
+ "unicorn/new-for-builtins": "error",
37
+ "unicorn/no-abusive-eslint-disable": "error",
38
+ "unicorn/no-array-callback-reference": "error",
39
+ "unicorn/no-array-reverse": "error",
40
+ "unicorn/no-array-sort": "error",
41
+ "unicorn/no-await-in-promise-methods": "error",
42
+ "unicorn/no-console-spaces": "error",
43
+ "unicorn/no-document-cookie": "error",
44
+ "unicorn/no-empty-file": "error",
45
+ "unicorn/no-for-loop": "error",
46
+ "unicorn/no-instanceof-array": "error",
47
+ "unicorn/no-invalid-fetch-options": "error",
48
+ "unicorn/no-invalid-remove-event-listener": "error",
49
+ "unicorn/no-new-buffer": "error",
50
+ "unicorn/no-object-as-default-parameter": "error",
51
+ "unicorn/no-process-exit": "error",
52
+ "unicorn/no-single-promise-in-promise-methods": "error",
53
+ "unicorn/no-static-only-class": "error",
54
+ "unicorn/no-typeof-undefined": "error",
55
+ "unicorn/no-unnecessary-array-flat-depth": "error",
56
+ "unicorn/no-unnecessary-array-splice-count": "error",
57
+ "unicorn/no-unnecessary-polyfills": "error",
58
+ "unicorn/no-unnecessary-slice-end": "error",
59
+ "unicorn/no-unreadable-array-destructuring": "error",
60
+ "unicorn/no-unreadable-iife": "error",
61
+ "unicorn/no-unused-properties": "error",
62
+ "unicorn/no-useless-error-capture-stack-trace": "error",
63
+ "unicorn/no-useless-fallback-in-spread": "error",
64
+ "unicorn/no-useless-length-check": "error",
65
+ "unicorn/no-useless-promise-resolve-reject": "error",
66
+ "unicorn/no-useless-spread": "error",
67
+ "unicorn/no-zero-fractions": "error",
68
+ "unicorn/number-literal-case": "error",
69
+ "unicorn/prefer-add-event-listener": "error",
70
+ "unicorn/prefer-array-find": "error",
71
+ "unicorn/prefer-array-flat": "error",
72
+ "unicorn/prefer-array-flat-map": "error",
73
+ "unicorn/prefer-array-index-of": "error",
74
+ "unicorn/prefer-array-some": "error",
75
+ "unicorn/prefer-bigint-literals": "error",
76
+ "unicorn/prefer-blob-reading-methods": "error",
77
+ "unicorn/prefer-class-fields": "error",
78
+ "unicorn/prefer-classlist-toggle": "error",
79
+ "unicorn/prefer-code-point": "error",
80
+ "unicorn/prefer-date-now": "error",
81
+ "unicorn/prefer-dom-node-append": "error",
82
+ "unicorn/prefer-dom-node-remove": "error",
83
+ "unicorn/prefer-dom-node-text-content": "error",
84
+ "unicorn/prefer-event-target": "error",
85
+ "unicorn/prefer-export-from": ["error", { ignoreUsedVariables: true }],
86
+ "unicorn/prefer-global-this": "error",
87
+ "unicorn/prefer-import-meta-properties": "error",
88
+ "unicorn/prefer-includes": "error",
89
+ "unicorn/prefer-keyboard-event-key": "error",
90
+ "unicorn/prefer-logical-operator-over-ternary": "error",
91
+ "unicorn/prefer-math-min-max": "error",
92
+ "unicorn/prefer-math-trunc": "error",
93
+ "unicorn/prefer-modern-dom-apis": "error",
94
+ "unicorn/prefer-modern-math-apis": "error",
95
+ "unicorn/prefer-module": "error",
96
+ "unicorn/prefer-native-coercion-functions": "error",
97
+ "unicorn/prefer-negative-index": "error",
98
+ "unicorn/prefer-number-properties": "error",
99
+ "unicorn/prefer-object-from-entries": "error",
100
+ "unicorn/prefer-optional-catch-binding": "error",
101
+ "unicorn/prefer-prototype-methods": "error",
102
+ "unicorn/prefer-query-selector": "error",
103
+ "unicorn/prefer-reflect-apply": "error",
104
+ "unicorn/prefer-regexp-test": "error",
105
+ "unicorn/prefer-set-has": "error",
106
+ "unicorn/prefer-set-size": "error",
107
+ "unicorn/prefer-single-call": "error",
108
+ "unicorn/prefer-spread": "error",
109
+ "unicorn/prefer-string-raw": "error",
110
+ "unicorn/prefer-string-replace-all": "error",
111
+ "unicorn/prefer-string-slice": "error",
112
+ "unicorn/prefer-string-starts-ends-with": "error",
113
+ "unicorn/prefer-string-trim-start-end": "error",
114
+ "unicorn/prefer-structured-clone": "error",
115
+ "unicorn/prefer-switch": "error",
116
+ "unicorn/prefer-ternary": "error",
117
+ "unicorn/prefer-top-level-await": "error",
118
+ "unicorn/prefer-type-error": "error",
119
+ "unicorn/prevent-abbreviations": [
120
+ "error",
121
+ {
122
+ ignore: [/^props/i, /props$/i, /^ref/i, /ref$/i],
123
+ },
124
+ ],
125
+ "unicorn/relative-url-style": ["error", "always"],
126
+ "unicorn/require-array-join-separator": "error",
127
+ "unicorn/require-module-attributes": "error",
128
+ "unicorn/require-number-to-fixed-digits-argument": "error",
129
+ "unicorn/switch-case-braces": "error",
130
+ "unicorn/text-encoding-identifier-case": "error",
131
+ "unicorn/throw-new-error": "error",
133
132
  },
134
- ];
133
+ });
package/dist/index.js CHANGED
@@ -195,7 +195,7 @@ const ESLINT_EXTENSIONS = [
195
195
  "mdx"
196
196
  ];
197
197
 
198
- var version = "2.30.0";
198
+ var version = "2.31.0";
199
199
 
200
200
  const createWatchCommand = (program)=>{
201
201
  program.command({
@@ -523,7 +523,7 @@ const label$2 = (message)=>`${message} 🔨`;
523
523
  /** Template folder mutations. */ new fdir().withBasePath().onlyDirs().filter((path)=>{
524
524
  return templateExpressionRegExp.test(path);
525
525
  }).crawl(projectRootPath).sync()// Re-order from longest to lowest path length to apply first renaming operations on deepest file structure
526
- .sort((a, b)=>b.length - a.length).forEach((templateFolderPath)=>{
526
+ .toSorted((a, b)=>b.length - a.length).forEach((templateFolderPath)=>{
527
527
  const newPath = templateFolderPath.replaceAll(templateExpressionRegExp, (_, dataModelKey)=>{
528
528
  return dataModel[dataModelKey];
529
529
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adbayb/stack",
3
- "version": "2.30.0",
3
+ "version": "2.31.0",
4
4
  "description": "My opinionated JavaScript-based toolchain",
5
5
  "keywords": [
6
6
  "stack",
@@ -40,39 +40,39 @@
40
40
  ],
41
41
  "dependencies": {
42
42
  "@changesets/changelog-github": "^0.5.1",
43
- "@changesets/cli": "^2.29.6",
44
- "@commitlint/cli": "^19.8.1",
45
- "@commitlint/config-conventional": "^19.8.1",
46
- "@eslint-react/eslint-plugin": "^1.52.6",
47
- "@eslint/compat": "^1.3.2",
48
- "@stylistic/eslint-plugin": "^5.2.3",
49
- "@vitest/eslint-plugin": "^1.3.3",
50
- "eslint": "^9.34.0",
43
+ "@changesets/cli": "^2.29.7",
44
+ "@commitlint/cli": "^20.1.0",
45
+ "@commitlint/config-conventional": "^20.0.0",
46
+ "@eslint-react/eslint-plugin": "^2.0.6",
47
+ "@eslint/compat": "^1.4.0",
48
+ "@stylistic/eslint-plugin": "^5.4.0",
49
+ "@vitest/eslint-plugin": "^1.3.16",
50
+ "eslint": "^9.37.0",
51
51
  "eslint-config-prettier": "^10.1.8",
52
52
  "eslint-import-resolver-typescript": "^4.4.4",
53
- "eslint-plugin-depend": "^1.2.0",
53
+ "eslint-plugin-depend": "^1.3.1",
54
54
  "eslint-plugin-import-x": "^4.16.1",
55
55
  "eslint-plugin-jest-formatting": "^3.1.0",
56
- "eslint-plugin-jsdoc": "^54.1.1",
56
+ "eslint-plugin-jsdoc": "^60.8.2",
57
57
  "eslint-plugin-mdx": "^3.6.2",
58
- "eslint-plugin-n": "^17.21.3",
58
+ "eslint-plugin-n": "^17.23.1",
59
59
  "eslint-plugin-prettier": "^5.5.4",
60
- "eslint-plugin-react-hooks": "^5.2.0",
61
- "eslint-plugin-sonarjs": "^3.0.4",
60
+ "eslint-plugin-react-hooks": "^6.1.1",
61
+ "eslint-plugin-sonarjs": "^3.0.5",
62
62
  "eslint-plugin-sort-keys-custom-order": "^2.2.1",
63
- "eslint-plugin-unicorn": "^60.0.0",
63
+ "eslint-plugin-unicorn": "^61.0.2",
64
64
  "fdir": "^6.5.0",
65
- "globals": "^16.3.0",
65
+ "globals": "^16.4.0",
66
66
  "prettier": "^3.6.2",
67
67
  "prettier-plugin-packagejson": "^2.5.19",
68
68
  "termost": "^1.8.0",
69
- "turbo": "^2.5.6",
70
- "typescript": "^5.9.2",
71
- "typescript-eslint": "^8.40.0"
69
+ "turbo": "^2.5.8",
70
+ "typescript": "^5.9.3",
71
+ "typescript-eslint": "^8.45.0"
72
72
  },
73
73
  "devDependencies": {
74
74
  "@types/node": "22.17.2",
75
- "quickbundle": "2.13.0"
75
+ "quickbundle": "2.14.0"
76
76
  },
77
77
  "publishConfig": {
78
78
  "access": "public",
@@ -1,26 +0,0 @@
1
- import { resolve } from "node:path";
2
-
3
- import globals from "globals";
4
- import { includeIgnoreFile } from "@eslint/compat";
5
-
6
- import { CWD } from "../constants.js";
7
-
8
- export const config = [
9
- {
10
- languageOptions: {
11
- ecmaVersion: "latest",
12
- globals: {
13
- ...globals.browser,
14
- ...globals.node,
15
- ...globals.worker,
16
- },
17
- parserOptions: {
18
- ecmaFeatures: {
19
- jsx: true,
20
- },
21
- },
22
- sourceType: "module",
23
- },
24
- },
25
- includeIgnoreFile(resolve(CWD, ".gitignore")),
26
- ];
@@ -1,29 +0,0 @@
1
- import eslintPluginPrettierRecommended from "eslint-plugin-prettier/recommended";
2
-
3
- export const config = [
4
- {
5
- // Relaxed rules for example-like folder, and [config-, story-, and test]-like files
6
- files: [
7
- "**/.config/**",
8
- "**/.configs/**",
9
- "**/config/**",
10
- "**/configs/**",
11
- "**/examples/**",
12
- "**/scripts/**",
13
- "**/website/**",
14
- "**/config.{js,ts,cjs,cts,mjs,mts}",
15
- "**/*.config.{js,ts,cjs,cts,mjs,mts}",
16
- "**/stories.{js,ts,jsx,tsx,cjs,cts,mjs,mts}",
17
- "**/*.stories.{js,ts,jsx,tsx,cjs,cts,mjs,mts}",
18
- "**/test.{js,ts,jsx,tsx,cjs,cts,mjs,mts}",
19
- "**/*.test.{js,ts,jsx,tsx,cjs,cts,mjs,mts}",
20
- ],
21
- rules: {
22
- "import-x/no-anonymous-default-export": "off",
23
- "import-x/no-default-export": "off",
24
- "sonarjs/file-name-differ-from-class": "off",
25
- "sonarjs/sonar-no-magic-numbers": "off",
26
- },
27
- },
28
- eslintPluginPrettierRecommended,
29
- ];