@isentinel/eslint-config 6.0.0-beta.3 → 6.0.0-beta.5

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/dist/index.d.mts CHANGED
@@ -1017,47 +1017,47 @@ interface RuleOptions {
1017
1017
  'eslint-plugin/unique-test-case-names'?: Linter.RuleEntry<[]>;
1018
1018
  /**
1019
1019
  * Disallow shorthand boolean JSX attributes
1020
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v0.1.6/src/rules/jsx-shorthand-boolean/documentation.md
1020
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v0.1.7/src/rules/jsx-shorthand-boolean/documentation.md
1021
1021
  */
1022
1022
  'flawless/jsx-shorthand-boolean'?: Linter.RuleEntry<[]>;
1023
1023
  /**
1024
- * Disallow the shorthand fragment syntax in favour of a named fragment
1025
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v0.1.6/src/rules/jsx-shorthand-fragment/documentation.md
1024
+ * Enforce a consistent fragment form: the shorthand `<>...</>` or a named fragment
1025
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v0.1.7/src/rules/jsx-shorthand-fragment/documentation.md
1026
1026
  */
1027
1027
  'flawless/jsx-shorthand-fragment'?: Linter.RuleEntry<FlawlessJsxShorthandFragment>;
1028
1028
  /**
1029
1029
  * Enforce naming conventions for everything across a codebase
1030
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v0.1.6/src/rules/naming-convention/documentation.md
1030
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v0.1.7/src/rules/naming-convention/documentation.md
1031
1031
  */
1032
1032
  'flawless/naming-convention'?: Linter.RuleEntry<FlawlessNamingConvention>;
1033
1033
  /**
1034
1034
  * Disallow unnecessary usage of 'useCallback'
1035
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v0.1.6/src/rules/no-unnecessary-use-callback/documentation.md
1035
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v0.1.7/src/rules/no-unnecessary-use-callback/documentation.md
1036
1036
  */
1037
1037
  'flawless/no-unnecessary-use-callback'?: Linter.RuleEntry<[]>;
1038
1038
  /**
1039
1039
  * Disallow unnecessary usage of 'useMemo'
1040
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v0.1.6/src/rules/no-unnecessary-use-memo/documentation.md
1040
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v0.1.7/src/rules/no-unnecessary-use-memo/documentation.md
1041
1041
  */
1042
1042
  'flawless/no-unnecessary-use-memo'?: Linter.RuleEntry<[]>;
1043
1043
  /**
1044
1044
  * Enforce destructuring assignment for component props
1045
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v0.1.6/src/rules/prefer-destructuring-assignment/documentation.md
1045
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v0.1.7/src/rules/prefer-destructuring-assignment/documentation.md
1046
1046
  */
1047
1047
  'flawless/prefer-destructuring-assignment'?: Linter.RuleEntry<[]>;
1048
1048
  /**
1049
1049
  * Disallow impure calls such as `math.random` or `os.clock` during render
1050
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v0.1.6/src/rules/purity/documentation.md
1050
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v0.1.7/src/rules/purity/documentation.md
1051
1051
  */
1052
1052
  'flawless/purity'?: Linter.RuleEntry<FlawlessPurity>;
1053
1053
  /**
1054
1054
  * Enforce a configured sort order for TOML keys and tables
1055
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v0.1.6/src/rules/toml-sort-keys/documentation.md
1055
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v0.1.7/src/rules/toml-sort-keys/documentation.md
1056
1056
  */
1057
1057
  'flawless/toml-sort-keys'?: Linter.RuleEntry<FlawlessTomlSortKeys>;
1058
1058
  /**
1059
1059
  * Enforce blank lines around top-level YAML block collection keys
1060
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v0.1.6/src/rules/yaml-block-key-blank-lines/documentation.md
1060
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v0.1.7/src/rules/yaml-block-key-blank-lines/documentation.md
1061
1061
  */
1062
1062
  'flawless/yaml-block-key-blank-lines'?: Linter.RuleEntry<[]>;
1063
1063
  /**
@@ -10631,7 +10631,10 @@ type EslintPluginRequireTestCaseName = [] | [{
10631
10631
  }]; // ----- eslint-plugin/test-case-property-ordering -----
10632
10632
  type EslintPluginTestCasePropertyOrdering = [] | [unknown[]]; // ----- eslint-plugin/test-case-shorthand-strings -----
10633
10633
  type EslintPluginTestCaseShorthandStrings = [] | [("as-needed" | "never" | "consistent" | "consistent-as-needed")]; // ----- flawless/jsx-shorthand-fragment -----
10634
- type FlawlessJsxShorthandFragment = [] | [string]; // ----- flawless/naming-convention -----
10634
+ type FlawlessJsxShorthandFragment = [] | [{
10635
+ fragmentName?: string;
10636
+ mode?: ("element" | "syntax");
10637
+ }]; // ----- flawless/naming-convention -----
10635
10638
  type _FlawlessNamingConventionFormatOptionsConfig = (_FlawlessNamingConventionPredefinedFormats[] | null);
10636
10639
  type _FlawlessNamingConventionPredefinedFormats = ("camelCase" | "strictCamelCase" | "PascalCase" | "StrictPascalCase" | "snake_case" | "UPPER_CASE");
10637
10640
  type _FlawlessNamingConventionUnderscoreOptions = ("forbid" | "allow" | "require" | "requireDouble" | "allowDouble" | "allowSingleOrDouble");
@@ -19917,6 +19920,14 @@ declare function sortRojoProject(): Array<TypedFlatConfigItem>;
19917
19920
  * @returns An array of flat configuration items.
19918
19921
  */
19919
19922
  declare function sortTsconfig(): Array<TypedFlatConfigItem>;
19923
+ /**
19924
+ * Sort CSpell configuration files.
19925
+ *
19926
+ * Requires `yaml` config (for the parser).
19927
+ *
19928
+ * @returns An array of flat configuration items.
19929
+ */
19930
+ declare function sortCspell(): Array<TypedFlatConfigItem>;
19920
19931
  //#endregion
19921
19932
  //#region src/configs/spelling.d.ts
19922
19933
  declare function spelling(options?: OptionsComponentExtensions & OptionsFiles & OptionsIsInEditor & SpellCheckConfig): Promise<Array<TypedFlatConfigItem>>;
@@ -20007,4 +20018,4 @@ declare const GLOB_BUILD_TOOLS: Array<string>;
20007
20018
  declare const GLOB_ALL_SRC: string[];
20008
20019
  declare const GLOB_EXCLUDE: string[];
20009
20020
  //#endregion
20010
- export { Awaitable, type ConfigNames, type FlatConfigComposer, GLOB_ALL_JSON, GLOB_ALL_SRC, GLOB_BUILD_TOOLS, GLOB_CSS, GLOB_DTS, GLOB_EXCLUDE, GLOB_GRAPHQL, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_LUA, GLOB_MARKDOWN, GLOB_MARKDOWN_BLOCKS, GLOB_MARKDOWN_CODE, GLOB_MARKDOWN_IN_MARKDOWN, GLOB_MISE, GLOB_POSTCSS, GLOB_ROOT, GLOB_ROOT_SRC, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSX, GLOB_XML, GLOB_YAML, GitignoreOptions, JsdocOptions, NamedFlatConfigItem, NamedOptionsConfig, OptionsComponentExtensions, OptionsConfig, OptionsE18e, OptionsFiles, OptionsFilesTypeAware, OptionsFormatters, OptionsHasRoblox, OptionsHasTypeScript, OptionsIsInEditor, OptionsJest, OptionsOverrides, OptionsOverridesTypeAware, OptionsPnpm, OptionsProjectType, OptionsStylistic, OptionsTestFramework, OptionsTypeScriptErasableOnly, OptionsTypeScriptParserOptions, OptionsTypeScriptWithTypes, OptionsTypescript, OptionsUnicorn, OptionsVitest, type OxfmtOptions, PerfectionistConfig, type PrettierOptions, ReactConfig, Rules, SpellCheckConfig, StylisticConfig, StylisticConfigDefaults, TypedFlatConfigItem, ceaseNonsense, comments, isentinel as default, isentinel, defaultPluginRenaming, disables, e18e, eslintPlugin, flawless, gitignore, ignores, imports, isInAgentSession, isInEditorEnvironment, isInGitHooksOrLintStaged, javascript, jsdoc, jsonc, markdown, node, oxfmt, packageJson, perfectionist, pnpm, promise, react, roblox, sonarjs, sortGithubAction, sortMiseToml, sortPnpmWorkspace, sortRojoProject, sortTsconfig, spelling, stylistic, test, toml, typescript, unicorn, yaml };
20021
+ export { Awaitable, type ConfigNames, type FlatConfigComposer, GLOB_ALL_JSON, GLOB_ALL_SRC, GLOB_BUILD_TOOLS, GLOB_CSS, GLOB_DTS, GLOB_EXCLUDE, GLOB_GRAPHQL, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_LUA, GLOB_MARKDOWN, GLOB_MARKDOWN_BLOCKS, GLOB_MARKDOWN_CODE, GLOB_MARKDOWN_IN_MARKDOWN, GLOB_MISE, GLOB_POSTCSS, GLOB_ROOT, GLOB_ROOT_SRC, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSX, GLOB_XML, GLOB_YAML, GitignoreOptions, JsdocOptions, NamedFlatConfigItem, NamedOptionsConfig, OptionsComponentExtensions, OptionsConfig, OptionsE18e, OptionsFiles, OptionsFilesTypeAware, OptionsFormatters, OptionsHasRoblox, OptionsHasTypeScript, OptionsIsInEditor, OptionsJest, OptionsOverrides, OptionsOverridesTypeAware, OptionsPnpm, OptionsProjectType, OptionsStylistic, OptionsTestFramework, OptionsTypeScriptErasableOnly, OptionsTypeScriptParserOptions, OptionsTypeScriptWithTypes, OptionsTypescript, OptionsUnicorn, OptionsVitest, type OxfmtOptions, PerfectionistConfig, type PrettierOptions, ReactConfig, Rules, SpellCheckConfig, StylisticConfig, StylisticConfigDefaults, TypedFlatConfigItem, ceaseNonsense, comments, isentinel as default, isentinel, defaultPluginRenaming, disables, e18e, eslintPlugin, flawless, gitignore, ignores, imports, isInAgentSession, isInEditorEnvironment, isInGitHooksOrLintStaged, javascript, jsdoc, jsonc, markdown, node, oxfmt, packageJson, perfectionist, pnpm, promise, react, roblox, sonarjs, sortCspell, sortGithubAction, sortMiseToml, sortPnpmWorkspace, sortRojoProject, sortTsconfig, spelling, stylistic, test, toml, typescript, unicorn, yaml };
package/dist/index.mjs CHANGED
@@ -1729,7 +1729,6 @@ async function packageJson(options = {}) {
1729
1729
  "package-json/no-redundant-files": "error",
1730
1730
  "package-json/no-redundant-publishConfig": "error",
1731
1731
  "package-json/repository-shorthand": "error",
1732
- "package-json/require-packageManager": ["error", { ignorePrivate: true }],
1733
1732
  "package-json/require-type": "error",
1734
1733
  "package-json/restrict-private-properties": "error",
1735
1734
  "package-json/restrict-top-level-properties": ["error", { ban: [
@@ -2075,11 +2074,14 @@ async function isentinel(options, ...userConfigs) {
2075
2074
  componentExts: componentExtensions,
2076
2075
  type: projectType
2077
2076
  }));
2078
- if (enableSpellCheck !== false) configs.push(spelling({
2079
- ...resolveSubOptions(options, "spellCheck"),
2080
- componentExts: componentExtensions,
2081
- isInEditor
2082
- }));
2077
+ if (enableSpellCheck !== false) {
2078
+ configs.push(spelling({
2079
+ ...resolveSubOptions(options, "spellCheck"),
2080
+ componentExts: componentExtensions,
2081
+ isInEditor
2082
+ }));
2083
+ if (stylisticOptions !== false && options.yaml !== false) configs.push(sortCspell());
2084
+ }
2083
2085
  configs.push(disables({ root: rootGlobs }));
2084
2086
  if (stylisticOptions !== false) configs.push(oxfmt({
2085
2087
  componentExts: componentExtensions,
@@ -2919,225 +2921,251 @@ function sortGithubAction() {
2919
2921
  return [{
2920
2922
  name: "isentinel/sort/github-actions",
2921
2923
  files: [`.github/workflows/${GLOB_YAML}`],
2922
- rules: { "yaml/sort-keys": [
2923
- "error",
2924
- {
2925
- order: [
2926
- "name",
2927
- "run-name",
2928
- "on",
2929
- "permissions",
2930
- "env",
2931
- "concurrency",
2932
- "jobs"
2933
- ],
2934
- pathPattern: "^$"
2935
- },
2936
- {
2937
- order: [
2938
- "name",
2939
- "permissions",
2940
- "needs",
2941
- "if",
2942
- "runs-on",
2943
- "environment",
2944
- "concurrency",
2945
- "outputs",
2946
- "env",
2947
- "defaults",
2948
- "steps",
2949
- "timeout-minutes",
2950
- "strategy",
2951
- "continue-on-error",
2952
- "container",
2953
- "services",
2954
- "uses",
2955
- "with",
2956
- "secrets"
2957
- ],
2958
- pathPattern: "^jobs\\.[^.]+$"
2959
- },
2960
- {
2961
- order: [
2962
- "check_run",
2963
- "check_suite",
2964
- "create",
2965
- "delete",
2966
- "deployment",
2967
- "deployment_status",
2968
- "discussion",
2969
- "discussion_comment",
2970
- "fork",
2971
- "gollum",
2972
- "issue_comment",
2973
- "issues",
2974
- "label",
2975
- "merge_group",
2976
- "milestone",
2977
- "page_build",
2978
- "public",
2979
- "pull_request",
2980
- "pull_request_comment",
2981
- "pull_request_review",
2982
- "pull_request_review_comment",
2983
- "pull_request_target",
2984
- "push",
2985
- "registry_package",
2986
- "release",
2987
- "repository_dispatch",
2988
- "schedule",
2989
- "status",
2990
- "watch",
2991
- "workflow_call",
2992
- "workflow_dispatch",
2993
- "workflow_run"
2994
- ],
2995
- pathPattern: "^on$"
2996
- },
2997
- {
2998
- order: [
2999
- "branches",
3000
- "branches-ignore",
3001
- "paths",
3002
- "paths-ignore"
3003
- ],
3004
- pathPattern: "^on\\.pull_request$"
3005
- },
3006
- {
3007
- order: [
3008
- "branches",
3009
- "branches-ignore",
3010
- "paths",
3011
- "paths-ignore"
3012
- ],
3013
- pathPattern: "^on\\.pull_request_target$"
3014
- },
3015
- {
3016
- order: [
3017
- "branches",
3018
- "tags",
3019
- "branches-ignore",
3020
- "tags-ignore",
3021
- "paths",
3022
- "paths-ignore"
3023
- ],
3024
- pathPattern: "^on\\.push$"
3025
- },
3026
- {
3027
- order: [
3028
- "inputs",
3029
- "outputs",
3030
- "secrets"
3031
- ],
3032
- pathPattern: "^on\\.workflow_call$"
3033
- },
3034
- {
3035
- order: ["inputs"],
3036
- pathPattern: "^on\\.workflow_dispatch$"
3037
- },
3038
- {
3039
- order: ["branches", "branches-ignore"],
3040
- pathPattern: "^on\\.workflow_run$"
3041
- },
3042
- {
3043
- order: [
3044
- "description",
3045
- "required",
3046
- "default",
3047
- "type"
3048
- ],
3049
- pathPattern: "^on\\.(workflow_call|workflow_dispatch)\\.inputs\\.[^.]+$"
3050
- },
3051
- {
3052
- order: ["shell", "working-directory"],
3053
- pathPattern: "^(defaults\\.run|jobs\\.[^.]+\\.defaults\\.run)$"
3054
- },
3055
- {
3056
- order: ["group", "cancel-in-progress"],
3057
- pathPattern: "^(concurrency|jobs\\.[^.]+\\.concurrency)$"
3058
- },
3059
- {
3060
- order: [
3061
- "name",
3062
- "permissions",
3063
- "needs",
3064
- "if",
3065
- "runs-on",
3066
- "environment",
3067
- "concurrency",
3068
- "outputs",
3069
- "env",
3070
- "defaults",
3071
- "steps",
3072
- "timeout-minutes",
3073
- "strategy",
3074
- "continue-on-error",
3075
- "container",
3076
- "services",
3077
- "uses",
3078
- "with",
3079
- "secrets"
3080
- ],
3081
- pathPattern: "^jobs\\. [^.]+$"
3082
- },
3083
- {
3084
- order: [
3085
- "id",
3086
- "if",
3087
- "name",
3088
- "uses",
3089
- "run",
3090
- "working-directory",
3091
- "with",
3092
- "env",
3093
- "continue-on-error",
3094
- "timeout-minutes"
3095
- ],
3096
- pathPattern: "^jobs\\.[^.]+\\.steps\\[\\d+\\]$"
3097
- },
3098
- {
3099
- order: ["args", "entrypoint"],
3100
- pathPattern: "^jobs\\.[^.]+\\.steps\\[\\d+\\]\\.with$"
3101
- },
3102
- {
3103
- order: [
3104
- "matrix",
3105
- "fail-fast",
3106
- "max-parallel"
3107
- ],
3108
- pathPattern: "^jobs\\.[^.]+\\.strategy$"
3109
- },
3110
- {
3111
- order: ["include", "exclude"],
3112
- pathPattern: "^jobs\\.[^.]+\\.strategy\\.matrix$"
3113
- },
3114
- {
3115
- order: [
3116
- "image",
3117
- "credentials",
3118
- "env",
3119
- "ports",
3120
- "volumes",
3121
- "options"
3122
- ],
3123
- pathPattern: "^jobs\\.[^.]+\\.container$"
3124
- },
3125
- {
3126
- order: [
3127
- "image",
3128
- "credentials",
3129
- "env",
3130
- "ports",
3131
- "volumes",
3132
- "options"
3133
- ],
3134
- pathPattern: "^jobs\\.[^.]+\\.services\\.[^.]+$"
3135
- },
3136
- {
3137
- order: { type: "asc" },
3138
- pathPattern: "^(?!$|on$|jobs\\.[^.]+$|on\\.(pull_request|pull_request_target|push|workflow_call|workflow_dispatch|workflow_run)$).*"
3139
- }
3140
- ] }
2924
+ rules: {
2925
+ "yaml/sort-keys": [
2926
+ "error",
2927
+ {
2928
+ order: [
2929
+ "name",
2930
+ "run-name",
2931
+ "on",
2932
+ "permissions",
2933
+ "env",
2934
+ "concurrency",
2935
+ "jobs"
2936
+ ],
2937
+ pathPattern: "^$"
2938
+ },
2939
+ {
2940
+ order: [
2941
+ "name",
2942
+ "permissions",
2943
+ "needs",
2944
+ "if",
2945
+ "runs-on",
2946
+ "environment",
2947
+ "concurrency",
2948
+ "outputs",
2949
+ "env",
2950
+ "defaults",
2951
+ "steps",
2952
+ "timeout-minutes",
2953
+ "strategy",
2954
+ "continue-on-error",
2955
+ "container",
2956
+ "services",
2957
+ "uses",
2958
+ "with",
2959
+ "secrets"
2960
+ ],
2961
+ pathPattern: "^jobs\\.[^.]+$"
2962
+ },
2963
+ {
2964
+ order: [
2965
+ "check_run",
2966
+ "check_suite",
2967
+ "create",
2968
+ "delete",
2969
+ "deployment",
2970
+ "deployment_status",
2971
+ "discussion",
2972
+ "discussion_comment",
2973
+ "fork",
2974
+ "gollum",
2975
+ "issue_comment",
2976
+ "issues",
2977
+ "label",
2978
+ "merge_group",
2979
+ "milestone",
2980
+ "page_build",
2981
+ "public",
2982
+ "pull_request",
2983
+ "pull_request_comment",
2984
+ "pull_request_review",
2985
+ "pull_request_review_comment",
2986
+ "pull_request_target",
2987
+ "push",
2988
+ "registry_package",
2989
+ "release",
2990
+ "repository_dispatch",
2991
+ "schedule",
2992
+ "status",
2993
+ "watch",
2994
+ "workflow_call",
2995
+ "workflow_dispatch",
2996
+ "workflow_run"
2997
+ ],
2998
+ pathPattern: "^on$"
2999
+ },
3000
+ {
3001
+ order: [
3002
+ "branches",
3003
+ "branches-ignore",
3004
+ "paths",
3005
+ "paths-ignore"
3006
+ ],
3007
+ pathPattern: "^on\\.pull_request$"
3008
+ },
3009
+ {
3010
+ order: [
3011
+ "branches",
3012
+ "branches-ignore",
3013
+ "paths",
3014
+ "paths-ignore"
3015
+ ],
3016
+ pathPattern: "^on\\.pull_request_target$"
3017
+ },
3018
+ {
3019
+ order: [
3020
+ "branches",
3021
+ "tags",
3022
+ "branches-ignore",
3023
+ "tags-ignore",
3024
+ "paths",
3025
+ "paths-ignore"
3026
+ ],
3027
+ pathPattern: "^on\\.push$"
3028
+ },
3029
+ {
3030
+ order: [
3031
+ "inputs",
3032
+ "outputs",
3033
+ "secrets"
3034
+ ],
3035
+ pathPattern: "^on\\.workflow_call$"
3036
+ },
3037
+ {
3038
+ order: ["inputs"],
3039
+ pathPattern: "^on\\.workflow_dispatch$"
3040
+ },
3041
+ {
3042
+ order: ["branches", "branches-ignore"],
3043
+ pathPattern: "^on\\.workflow_run$"
3044
+ },
3045
+ {
3046
+ order: [
3047
+ "description",
3048
+ "required",
3049
+ "default",
3050
+ "type"
3051
+ ],
3052
+ pathPattern: "^on\\.(workflow_call|workflow_dispatch)\\.inputs\\.[^.]+$"
3053
+ },
3054
+ {
3055
+ order: ["shell", "working-directory"],
3056
+ pathPattern: "^(defaults\\.run|jobs\\.[^.]+\\.defaults\\.run)$"
3057
+ },
3058
+ {
3059
+ order: ["group", "cancel-in-progress"],
3060
+ pathPattern: "^(concurrency|jobs\\.[^.]+\\.concurrency)$"
3061
+ },
3062
+ {
3063
+ order: [
3064
+ "name",
3065
+ "permissions",
3066
+ "needs",
3067
+ "if",
3068
+ "runs-on",
3069
+ "environment",
3070
+ "concurrency",
3071
+ "outputs",
3072
+ "env",
3073
+ "defaults",
3074
+ "steps",
3075
+ "timeout-minutes",
3076
+ "strategy",
3077
+ "continue-on-error",
3078
+ "container",
3079
+ "services",
3080
+ "uses",
3081
+ "with",
3082
+ "secrets"
3083
+ ],
3084
+ pathPattern: "^jobs\\. [^.]+$"
3085
+ },
3086
+ {
3087
+ order: [
3088
+ "id",
3089
+ "if",
3090
+ "name",
3091
+ "uses",
3092
+ "run",
3093
+ "working-directory",
3094
+ "with",
3095
+ "env",
3096
+ "continue-on-error",
3097
+ "timeout-minutes"
3098
+ ],
3099
+ pathPattern: "^jobs\\.[^.]+\\.steps\\[\\d+\\]$"
3100
+ },
3101
+ {
3102
+ order: ["args", "entrypoint"],
3103
+ pathPattern: "^jobs\\.[^.]+\\.steps\\[\\d+\\]\\.with$"
3104
+ },
3105
+ {
3106
+ order: [
3107
+ "matrix",
3108
+ "fail-fast",
3109
+ "max-parallel"
3110
+ ],
3111
+ pathPattern: "^jobs\\.[^.]+\\.strategy$"
3112
+ },
3113
+ {
3114
+ order: ["include", "exclude"],
3115
+ pathPattern: "^jobs\\.[^.]+\\.strategy\\.matrix$"
3116
+ },
3117
+ {
3118
+ order: [
3119
+ "image",
3120
+ "credentials",
3121
+ "env",
3122
+ "ports",
3123
+ "volumes",
3124
+ "options"
3125
+ ],
3126
+ pathPattern: "^jobs\\.[^.]+\\.container$"
3127
+ },
3128
+ {
3129
+ order: [
3130
+ "image",
3131
+ "credentials",
3132
+ "env",
3133
+ "ports",
3134
+ "volumes",
3135
+ "options"
3136
+ ],
3137
+ pathPattern: "^jobs\\.[^.]+\\.services\\.[^.]+$"
3138
+ },
3139
+ {
3140
+ order: { type: "asc" },
3141
+ pathPattern: "^(?!$|on$|jobs\\.[^.]+$|on\\.(pull_request|pull_request_target|push|workflow_call|workflow_dispatch|workflow_run)$).*"
3142
+ }
3143
+ ],
3144
+ "yaml/sort-sequence-values": [
3145
+ "error",
3146
+ {
3147
+ order: {
3148
+ natural: true,
3149
+ type: "asc"
3150
+ },
3151
+ pathPattern: "^on$"
3152
+ },
3153
+ {
3154
+ order: {
3155
+ natural: true,
3156
+ type: "asc"
3157
+ },
3158
+ pathPattern: "^on\\.[^.]+\\.(branches|branches-ignore|tags|tags-ignore|paths|paths-ignore|types)$"
3159
+ },
3160
+ {
3161
+ order: {
3162
+ natural: true,
3163
+ type: "asc"
3164
+ },
3165
+ pathPattern: "^jobs\\.[^.]+\\.needs$"
3166
+ }
3167
+ ]
3168
+ }
3141
3169
  }, {
3142
3170
  name: "isentinel/sort/github-composite-actions",
3143
3171
  files: [`.github/actions/${GLOB_YAML}`],
@@ -3324,110 +3352,119 @@ function sortPnpmWorkspace() {
3324
3352
  return [{
3325
3353
  name: "isentinel/sort/pnpm-workspace-yaml-sort",
3326
3354
  files: ["pnpm-workspace.yaml"],
3327
- rules: { "yaml/sort-keys": [
3328
- "error",
3329
- {
3330
- order: [
3331
- ...[
3332
- "autoInstallPeers",
3333
- "blockExoticSubdeps",
3334
- "cacheDir",
3335
- "catalogMode",
3336
- "cleanupUnusedCatalogs",
3337
- "dedupeDirectDeps",
3338
- "dedupePeerDependents",
3339
- "dedupePeers",
3340
- "deployAllFiles",
3341
- "enablePrePostScripts",
3342
- "engineStrict",
3343
- "extendNodePath",
3344
- "hoist",
3345
- "hoistPattern",
3346
- "hoistWorkspacePackages",
3347
- "hoistingLimits",
3348
- "ignoreCompatibilityDb",
3349
- "ignoreDepScripts",
3350
- "ignoreScripts",
3351
- "ignoreWorkspaceRootCheck",
3352
- "ignoredWorkspaceGlobs",
3353
- "includeWorkspaceRoot",
3354
- "injectWorkspacePackages",
3355
- "linkWorkspacePackages",
3356
- "managePackageManagerVersions",
3357
- "minimumReleaseAge",
3358
- "minimumReleaseAgeExclude",
3359
- "minimumReleaseAgeIgnoreMissingTime",
3360
- "minimumReleaseAgeStrict",
3361
- "modulesDir",
3362
- "nodeLinker",
3363
- "nodeVersion",
3364
- "optimisticRepeatInstall",
3365
- "packageManagerStrict",
3366
- "packageManagerStrictVersion",
3367
- "preferSymlinkedExecutables",
3368
- "preferWorkspacePackages",
3369
- "publicHoistPattern",
3370
- "registrySupportsTimeField",
3371
- "requiredScripts",
3372
- "resolutionMode",
3373
- "resolvePeersFromWorkspaceRoot",
3374
- "saveExact",
3375
- "savePrefix",
3376
- "saveWorkspaceProtocol",
3377
- "scriptShell",
3378
- "shamefullyHoist",
3379
- "sharedWorkspaceLockfile",
3380
- "shellEmulator",
3381
- "stateDir",
3382
- "strictDepBuilds",
3383
- "strictPeerDependencies",
3384
- "supportedArchitectures",
3385
- "symlink",
3386
- "tag",
3387
- "trustLockfile",
3388
- "trustPolicy",
3389
- "trustPolicyExclude",
3390
- "trustPolicyIgnoreAfter",
3391
- "updateConfig",
3392
- "updateNotifier",
3393
- "verifyDepsBeforeRun"
3394
- ],
3395
- ...[
3396
- "gitBranchLockfile",
3397
- "lockfile",
3398
- "lockfileIncludeTarballUrl",
3399
- "mergeGitBranchLockfilesBranchPattern",
3400
- "peersSuffixMaxLength",
3401
- "preferFrozenLockfile"
3402
- ],
3403
- "packages",
3404
- "overrides",
3405
- "patchedDependencies",
3406
- "catalog",
3407
- "catalogs",
3408
- ...[
3409
- "allowBuilds",
3410
- "allowNonAppliedPatches",
3411
- "allowedDeprecatedVersions",
3412
- "configDependencies",
3413
- "dangerouslyAllowAllBuilds",
3414
- "ignoredBuiltDependencies",
3415
- "ignoredOptionalDependencies",
3416
- "neverBuiltDependencies",
3417
- "onlyBuiltDependencies",
3418
- "onlyBuiltDependenciesFile",
3419
- "packageExtensions",
3420
- "peerDependencyRules"
3355
+ rules: {
3356
+ "yaml/sort-keys": [
3357
+ "error",
3358
+ {
3359
+ order: [
3360
+ ...[
3361
+ "autoInstallPeers",
3362
+ "blockExoticSubdeps",
3363
+ "cacheDir",
3364
+ "catalogMode",
3365
+ "cleanupUnusedCatalogs",
3366
+ "dedupeDirectDeps",
3367
+ "dedupePeerDependents",
3368
+ "dedupePeers",
3369
+ "deployAllFiles",
3370
+ "enablePrePostScripts",
3371
+ "engineStrict",
3372
+ "extendNodePath",
3373
+ "hoist",
3374
+ "hoistPattern",
3375
+ "hoistWorkspacePackages",
3376
+ "hoistingLimits",
3377
+ "ignoreCompatibilityDb",
3378
+ "ignoreDepScripts",
3379
+ "ignoreScripts",
3380
+ "ignoreWorkspaceRootCheck",
3381
+ "ignoredWorkspaceGlobs",
3382
+ "includeWorkspaceRoot",
3383
+ "injectWorkspacePackages",
3384
+ "linkWorkspacePackages",
3385
+ "managePackageManagerVersions",
3386
+ "minimumReleaseAge",
3387
+ "minimumReleaseAgeExclude",
3388
+ "minimumReleaseAgeIgnoreMissingTime",
3389
+ "minimumReleaseAgeStrict",
3390
+ "modulesDir",
3391
+ "nodeLinker",
3392
+ "nodeVersion",
3393
+ "optimisticRepeatInstall",
3394
+ "packageManagerStrict",
3395
+ "packageManagerStrictVersion",
3396
+ "preferSymlinkedExecutables",
3397
+ "preferWorkspacePackages",
3398
+ "publicHoistPattern",
3399
+ "registrySupportsTimeField",
3400
+ "requiredScripts",
3401
+ "resolutionMode",
3402
+ "resolvePeersFromWorkspaceRoot",
3403
+ "saveExact",
3404
+ "savePrefix",
3405
+ "saveWorkspaceProtocol",
3406
+ "scriptShell",
3407
+ "shamefullyHoist",
3408
+ "sharedWorkspaceLockfile",
3409
+ "shellEmulator",
3410
+ "stateDir",
3411
+ "strictDepBuilds",
3412
+ "strictPeerDependencies",
3413
+ "supportedArchitectures",
3414
+ "symlink",
3415
+ "tag",
3416
+ "trustLockfile",
3417
+ "trustPolicy",
3418
+ "trustPolicyExclude",
3419
+ "trustPolicyIgnoreAfter",
3420
+ "updateConfig",
3421
+ "updateNotifier",
3422
+ "verifyDepsBeforeRun"
3423
+ ],
3424
+ ...[
3425
+ "gitBranchLockfile",
3426
+ "lockfile",
3427
+ "lockfileIncludeTarballUrl",
3428
+ "mergeGitBranchLockfilesBranchPattern",
3429
+ "peersSuffixMaxLength",
3430
+ "preferFrozenLockfile"
3431
+ ],
3432
+ "packages",
3433
+ "overrides",
3434
+ "patchedDependencies",
3435
+ "catalog",
3436
+ "catalogs",
3437
+ ...[
3438
+ "allowBuilds",
3439
+ "allowNonAppliedPatches",
3440
+ "allowedDeprecatedVersions",
3441
+ "configDependencies",
3442
+ "dangerouslyAllowAllBuilds",
3443
+ "ignoredBuiltDependencies",
3444
+ "ignoredOptionalDependencies",
3445
+ "neverBuiltDependencies",
3446
+ "onlyBuiltDependencies",
3447
+ "onlyBuiltDependenciesFile",
3448
+ "packageExtensions",
3449
+ "peerDependencyRules"
3450
+ ],
3451
+ { order: { type: "asc" } }
3421
3452
  ],
3422
- { order: { type: "asc" } }
3423
- ],
3424
- pathPattern: "^$"
3425
- },
3426
- {
3427
- order: { type: "asc" },
3428
- pathPattern: ".*"
3429
- }
3430
- ] }
3453
+ pathPattern: "^$"
3454
+ },
3455
+ {
3456
+ order: { type: "asc" },
3457
+ pathPattern: ".*"
3458
+ }
3459
+ ],
3460
+ "yaml/sort-sequence-values": ["error", {
3461
+ order: {
3462
+ natural: true,
3463
+ type: "asc"
3464
+ },
3465
+ pathPattern: "^(packages|onlyBuiltDependencies|neverBuiltDependencies|ignoredBuiltDependencies|ignoredWorkspaceGlobs)$"
3466
+ }]
3467
+ }
3431
3468
  }];
3432
3469
  }
3433
3470
  /**
@@ -3602,6 +3639,32 @@ function sortTsconfig() {
3602
3639
  ] }
3603
3640
  }];
3604
3641
  }
3642
+ /**
3643
+ * Sort CSpell configuration files.
3644
+ *
3645
+ * Requires `yaml` config (for the parser).
3646
+ *
3647
+ * @returns An array of flat configuration items.
3648
+ */
3649
+ function sortCspell() {
3650
+ return [{
3651
+ name: "isentinel/sort/cspell",
3652
+ files: [
3653
+ "**/cspell.y?(a)ml",
3654
+ "**/cspell.config.y?(a)ml",
3655
+ "**/cspell.config.*.y?(a)ml",
3656
+ "**/.cspell.y?(a)ml",
3657
+ "**/.cspell.config.y?(a)ml"
3658
+ ],
3659
+ rules: { "yaml/sort-sequence-values": ["error", {
3660
+ order: {
3661
+ natural: true,
3662
+ type: "asc"
3663
+ },
3664
+ pathPattern: "^(words|ignoreWords|flagWords|ignorePaths|dictionaries|enableFiletypes)$"
3665
+ }] }
3666
+ }];
3667
+ }
3605
3668
  //#endregion
3606
3669
  //#region src/configs/stylistic.ts
3607
3670
  const StylisticConfigDefaults = {
@@ -4215,6 +4278,7 @@ async function unicorn(options = {}) {
4215
4278
  const { nameReplacements, roblox = true, root: customRootGlobs, stylistic = true } = options;
4216
4279
  const replacements = {
4217
4280
  ...abbreviations,
4281
+ ...roblox ? { buf: false } : {},
4218
4282
  ...nameReplacements
4219
4283
  };
4220
4284
  const pluginUnicorn = await interopDefault(import("eslint-plugin-unicorn"));
@@ -13386,4 +13450,4 @@ async function yaml(options = {}) {
13386
13450
  }];
13387
13451
  }
13388
13452
  //#endregion
13389
- export { GLOB_ALL_JSON, GLOB_ALL_SRC, GLOB_BUILD_TOOLS, GLOB_CSS, GLOB_DTS, GLOB_EXCLUDE, GLOB_GRAPHQL, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_LUA, GLOB_MARKDOWN, GLOB_MARKDOWN_BLOCKS, GLOB_MARKDOWN_CODE, GLOB_MARKDOWN_IN_MARKDOWN, GLOB_MISE, GLOB_POSTCSS, GLOB_ROOT, GLOB_ROOT_SRC, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSX, GLOB_XML, GLOB_YAML, StylisticConfigDefaults, ceaseNonsense, comments, isentinel as default, isentinel, defaultPluginRenaming, disables, e18e, eslintPlugin, flawless, gitignore, ignores, imports, isInAgentSession, isInEditorEnvironment, isInGitHooksOrLintStaged, javascript, jsdoc, jsonc, markdown, node, oxfmt, packageJson, perfectionist, pnpm, promise, react, roblox, sonarjs, sortGithubAction, sortMiseToml, sortPnpmWorkspace, sortRojoProject, sortTsconfig, spelling, stylistic, test, toml, typescript, unicorn, yaml };
13453
+ export { GLOB_ALL_JSON, GLOB_ALL_SRC, GLOB_BUILD_TOOLS, GLOB_CSS, GLOB_DTS, GLOB_EXCLUDE, GLOB_GRAPHQL, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_LUA, GLOB_MARKDOWN, GLOB_MARKDOWN_BLOCKS, GLOB_MARKDOWN_CODE, GLOB_MARKDOWN_IN_MARKDOWN, GLOB_MISE, GLOB_POSTCSS, GLOB_ROOT, GLOB_ROOT_SRC, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSX, GLOB_XML, GLOB_YAML, StylisticConfigDefaults, ceaseNonsense, comments, isentinel as default, isentinel, defaultPluginRenaming, disables, e18e, eslintPlugin, flawless, gitignore, ignores, imports, isInAgentSession, isInEditorEnvironment, isInGitHooksOrLintStaged, javascript, jsdoc, jsonc, markdown, node, oxfmt, packageJson, perfectionist, pnpm, promise, react, roblox, sonarjs, sortCspell, sortGithubAction, sortMiseToml, sortPnpmWorkspace, sortRojoProject, sortTsconfig, spelling, stylistic, test, toml, typescript, unicorn, yaml };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@isentinel/eslint-config",
3
- "version": "6.0.0-beta.3",
3
+ "version": "6.0.0-beta.5",
4
4
  "description": "iSentinel's ESLint config",
5
5
  "keywords": [
6
6
  "eslint-config",
@@ -62,7 +62,7 @@
62
62
  "eslint-plugin-better-max-params": "1.0.0",
63
63
  "eslint-plugin-comment-length": "2.3.1",
64
64
  "eslint-plugin-de-morgan": "2.1.2",
65
- "eslint-plugin-flawless": "0.1.6",
65
+ "eslint-plugin-flawless": "0.1.7",
66
66
  "eslint-plugin-format-lua": "2.0.0",
67
67
  "eslint-plugin-import-lite": "0.6.0",
68
68
  "eslint-plugin-jsdoc": "63.0.10",
@@ -118,7 +118,7 @@
118
118
  "type-fest": "5.7.0",
119
119
  "typescript": "6.0.3",
120
120
  "unplugin-unused": "0.5.7",
121
- "@isentinel/eslint-config": "6.0.0-beta.3"
121
+ "@isentinel/eslint-config": "6.0.0-beta.5"
122
122
  },
123
123
  "peerDependencies": {
124
124
  "@vitest/eslint-plugin": "^1.6.4",