@shibanet0/datamitsu-config 0.1.0 → 0.1.1
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/datamitsu.config.js
CHANGED
|
@@ -948,6 +948,143 @@ const data$1 = "tar.br:G/8NII6UrCvTrtmM9rapNnnnBKLSvknRnEAcblgiVnTNF6DpX/eNAww8p
|
|
|
948
948
|
//#region src/datamitsu-config/inline-config/oxlint_configuration_schema.ts
|
|
949
949
|
const data = "{\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"title\": \"Oxlintrc\",\n \"description\": \"Oxlint Configuration File\\n\\nThis configuration is aligned with ESLint v8's configuration schema (`eslintrc.json`).\\n\\nUsage: `oxlint -c oxlintrc.json`\\n\\nExample\\n\\n`.oxlintrc.json`\\n\\n```json\\n{\\n\\\"$schema\\\": \\\"./node_modules/oxlint/configuration_schema.json\\\",\\n\\\"plugins\\\": [\\\"import\\\", \\\"typescript\\\", \\\"unicorn\\\"],\\n\\\"env\\\": {\\n\\\"browser\\\": true\\n},\\n\\\"globals\\\": {\\n\\\"foo\\\": \\\"readonly\\\"\\n},\\n\\\"settings\\\": {\\n\\\"react\\\": {\\n\\\"version\\\": \\\"18.2.0\\\"\\n},\\n\\\"custom\\\": { \\\"option\\\": true }\\n},\\n\\\"rules\\\": {\\n\\\"eqeqeq\\\": \\\"warn\\\",\\n\\\"import/no-cycle\\\": \\\"error\\\",\\n\\\"react/self-closing-comp\\\": [\\\"error\\\", { \\\"html\\\": false }]\\n},\\n\\\"overrides\\\": [\\n{\\n\\\"files\\\": [\\\"*.test.ts\\\", \\\"*.spec.ts\\\"],\\n\\\"rules\\\": {\\n\\\"@typescript-eslint/no-explicit-any\\\": \\\"off\\\"\\n}\\n}\\n]\\n}\\n```\\n\\n`oxlint.config.ts`\\n\\n```ts\\nimport { defineConfig } from \\\"oxlint\\\";\\n\\nexport default defineConfig({\\nplugins: [\\\"import\\\", \\\"typescript\\\", \\\"unicorn\\\"],\\nenv: {\\n\\\"browser\\\": true\\n},\\nglobals: {\\n\\\"foo\\\": \\\"readonly\\\"\\n},\\nsettings: {\\nreact: {\\nversion: \\\"18.2.0\\\"\\n},\\ncustom: { option: true }\\n},\\nrules: {\\n\\\"eqeqeq\\\": \\\"warn\\\",\\n\\\"import/no-cycle\\\": \\\"error\\\",\\n\\\"react/self-closing-comp\\\": [\\\"error\\\", { \\\"html\\\": false }]\\n},\\noverrides: [\\n{\\nfiles: [\\\"*.test.ts\\\", \\\"*.spec.ts\\\"],\\nrules: {\\n\\\"@typescript-eslint/no-explicit-any\\\": \\\"off\\\"\\n}\\n}\\n]\\n});\\n```\",\n \"type\": \"object\",\n \"properties\": {\n \"$schema\": {\n \"description\": \"Schema URI for editor tooling.\",\n \"type\": \"string\",\n \"markdownDescription\": \"Schema URI for editor tooling.\"\n },\n \"categories\": {\n \"default\": {},\n \"allOf\": [\n {\n \"$ref\": \"#/definitions/OxlintCategories\"\n }\n ]\n },\n \"env\": {\n \"description\": \"Environments enable and disable collections of global variables.\",\n \"default\": {\n \"builtin\": true\n },\n \"allOf\": [\n {\n \"$ref\": \"#/definitions/OxlintEnv\"\n }\n ],\n \"markdownDescription\": \"Environments enable and disable collections of global variables.\"\n },\n \"extends\": {\n \"description\": \"Paths of configuration files that this configuration file extends (inherits from). The files\\nare resolved relative to the location of the configuration file that contains the `extends`\\nproperty. The configuration files are merged from the first to the last, with the last file\\noverriding the previous ones.\",\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n },\n \"markdownDescription\": \"Paths of configuration files that this configuration file extends (inherits from). The files\\nare resolved relative to the location of the configuration file that contains the `extends`\\nproperty. The configuration files are merged from the first to the last, with the last file\\noverriding the previous ones.\"\n },\n \"globals\": {\n \"description\": \"Enabled or disabled specific global variables.\",\n \"default\": {},\n \"allOf\": [\n {\n \"$ref\": \"#/definitions/OxlintGlobals\"\n }\n ],\n \"markdownDescription\": \"Enabled or disabled specific global variables.\"\n },\n \"ignorePatterns\": {\n \"description\": \"Globs to ignore during linting. These are resolved from the configuration file path.\",\n \"default\": [],\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n },\n \"markdownDescription\": \"Globs to ignore during linting. These are resolved from the configuration file path.\"\n },\n \"jsPlugins\": {\n \"description\": \"JS plugins, allows usage of ESLint plugins with Oxlint.\\n\\nRead more about JS plugins in\\n[the docs](https://oxc.rs/docs/guide/usage/linter/js-plugins.html).\\n\\nNote: JS plugins are in alpha and not subject to semver.\\n\\nExamples:\\n\\nBasic usage with a local plugin path.\\n\\n```json\\n{\\n\\\"jsPlugins\\\": [\\\"./custom-plugin.js\\\"],\\n\\\"rules\\\": {\\n\\\"custom/rule-name\\\": \\\"warn\\\"\\n}\\n}\\n```\\n\\nBasic usage with a TypeScript plugin and a local plugin path.\\n\\nTypeScript plugin files are supported in the following environments:\\n- Deno and Bun: TypeScript files are supported natively.\\n- Node.js >=22.18.0 and Node.js ^20.19.0: TypeScript files are supported natively with built-in\\ntype-stripping enabled by default.\\n\\nFor older Node.js versions, TypeScript plugins are not supported. Please use JavaScript plugins or upgrade your Node version.\\n\\n```json\\n{\\n\\\"jsPlugins\\\": [\\\"./custom-plugin.ts\\\"],\\n\\\"rules\\\": {\\n\\\"custom/rule-name\\\": \\\"warn\\\"\\n}\\n}\\n```\\n\\nUsing a built-in Rust plugin alongside a JS plugin with the same name\\nby giving the JS plugin an alias.\\n\\n```json\\n{\\n\\\"plugins\\\": [\\\"import\\\"],\\n\\\"jsPlugins\\\": [\\n{ \\\"name\\\": \\\"import-js\\\", \\\"specifier\\\": \\\"eslint-plugin-import\\\" }\\n],\\n\\\"rules\\\": {\\n\\\"import/no-cycle\\\": \\\"error\\\",\\n\\\"import-js/no-unresolved\\\": \\\"warn\\\"\\n}\\n}\\n```\",\n \"anyOf\": [\n {\n \"type\": \"null\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/ExternalPluginEntry\"\n },\n \"uniqueItems\": true\n }\n ],\n \"markdownDescription\": \"JS plugins, allows usage of ESLint plugins with Oxlint.\\n\\nRead more about JS plugins in\\n[the docs](https://oxc.rs/docs/guide/usage/linter/js-plugins.html).\\n\\nNote: JS plugins are in alpha and not subject to semver.\\n\\nExamples:\\n\\nBasic usage with a local plugin path.\\n\\n```json\\n{\\n\\\"jsPlugins\\\": [\\\"./custom-plugin.js\\\"],\\n\\\"rules\\\": {\\n\\\"custom/rule-name\\\": \\\"warn\\\"\\n}\\n}\\n```\\n\\nBasic usage with a TypeScript plugin and a local plugin path.\\n\\nTypeScript plugin files are supported in the following environments:\\n- Deno and Bun: TypeScript files are supported natively.\\n- Node.js >=22.18.0 and Node.js ^20.19.0: TypeScript files are supported natively with built-in\\ntype-stripping enabled by default.\\n\\nFor older Node.js versions, TypeScript plugins are not supported. Please use JavaScript plugins or upgrade your Node version.\\n\\n```json\\n{\\n\\\"jsPlugins\\\": [\\\"./custom-plugin.ts\\\"],\\n\\\"rules\\\": {\\n\\\"custom/rule-name\\\": \\\"warn\\\"\\n}\\n}\\n```\\n\\nUsing a built-in Rust plugin alongside a JS plugin with the same name\\nby giving the JS plugin an alias.\\n\\n```json\\n{\\n\\\"plugins\\\": [\\\"import\\\"],\\n\\\"jsPlugins\\\": [\\n{ \\\"name\\\": \\\"import-js\\\", \\\"specifier\\\": \\\"eslint-plugin-import\\\" }\\n],\\n\\\"rules\\\": {\\n\\\"import/no-cycle\\\": \\\"error\\\",\\n\\\"import-js/no-unresolved\\\": \\\"warn\\\"\\n}\\n}\\n```\"\n },\n \"options\": {\n \"description\": \"Oxlint config options.\",\n \"allOf\": [\n {\n \"$ref\": \"#/definitions/OxlintOptions\"\n }\n ],\n \"markdownDescription\": \"Oxlint config options.\"\n },\n \"overrides\": {\n \"description\": \"Add, remove, or otherwise reconfigure rules for specific files or groups of files.\",\n \"allOf\": [\n {\n \"$ref\": \"#/definitions/OxlintOverrides\"\n }\n ],\n \"markdownDescription\": \"Add, remove, or otherwise reconfigure rules for specific files or groups of files.\"\n },\n \"plugins\": {\n \"description\": \"Enabled built-in plugins for Oxlint.\\nYou can view the list of available plugins on\\n[the website](https://oxc.rs/docs/guide/usage/linter/plugins.html#supported-plugins).\\n\\nNOTE: Setting the `plugins` field will overwrite the base set of plugins.\\nThe `plugins` array should reflect all of the plugins you want to use.\",\n \"default\": null,\n \"allOf\": [\n {\n \"$ref\": \"#/definitions/LintPlugins\"\n }\n ],\n \"markdownDescription\": \"Enabled built-in plugins for Oxlint.\\nYou can view the list of available plugins on\\n[the website](https://oxc.rs/docs/guide/usage/linter/plugins.html#supported-plugins).\\n\\nNOTE: Setting the `plugins` field will overwrite the base set of plugins.\\nThe `plugins` array should reflect all of the plugins you want to use.\"\n },\n \"rules\": {\n \"description\": \"Example\\n\\n`.oxlintrc.json`\\n\\n```json\\n{\\n\\\"$schema\\\": \\\"./node_modules/oxlint/configuration_schema.json\\\",\\n\\\"rules\\\": {\\n\\\"eqeqeq\\\": \\\"warn\\\",\\n\\\"import/no-cycle\\\": \\\"error\\\",\\n\\\"prefer-const\\\": [\\\"error\\\", { \\\"ignoreReadBeforeAssign\\\": true }]\\n}\\n}\\n```\\n\\nSee [Oxlint Rules](https://oxc.rs/docs/guide/usage/linter/rules.html) for the list of\\nrules.\",\n \"default\": {},\n \"allOf\": [\n {\n \"$ref\": \"#/definitions/OxlintRules\"\n }\n ],\n \"markdownDescription\": \"Example\\n\\n`.oxlintrc.json`\\n\\n```json\\n{\\n\\\"$schema\\\": \\\"./node_modules/oxlint/configuration_schema.json\\\",\\n\\\"rules\\\": {\\n\\\"eqeqeq\\\": \\\"warn\\\",\\n\\\"import/no-cycle\\\": \\\"error\\\",\\n\\\"prefer-const\\\": [\\\"error\\\", { \\\"ignoreReadBeforeAssign\\\": true }]\\n}\\n}\\n```\\n\\nSee [Oxlint Rules](https://oxc.rs/docs/guide/usage/linter/rules.html) for the list of\\nrules.\"\n },\n \"settings\": {\n \"description\": \"Plugin-specific configuration for both built-in and custom plugins.\\nThis includes settings for built-in plugins such as `react` and `jsdoc`\\nas well as configuring settings for JS custom plugins loaded via `jsPlugins`.\",\n \"default\": {\n \"jsx-a11y\": {\n \"polymorphicPropName\": null,\n \"components\": {},\n \"attributes\": {}\n },\n \"next\": {\n \"rootDir\": []\n },\n \"react\": {\n \"formComponents\": [],\n \"linkComponents\": [],\n \"version\": null,\n \"componentWrapperFunctions\": []\n },\n \"jsdoc\": {\n \"ignorePrivate\": false,\n \"ignoreInternal\": false,\n \"ignoreReplacesDocs\": true,\n \"overrideReplacesDocs\": true,\n \"augmentsExtendsReplacesDocs\": false,\n \"implementsReplacesDocs\": false,\n \"exemptDestructuredRootsFromChecks\": false,\n \"tagNamePreference\": {}\n },\n \"vitest\": {\n \"typecheck\": false\n }\n },\n \"allOf\": [\n {\n \"$ref\": \"#/definitions/OxlintSettings\"\n }\n ],\n \"markdownDescription\": \"Plugin-specific configuration for both built-in and custom plugins.\\nThis includes settings for built-in plugins such as `react` and `jsdoc`\\nas well as configuring settings for JS custom plugins loaded via `jsPlugins`.\"\n }\n },\n \"additionalProperties\": false,\n \"allowComments\": true,\n \"allowTrailingCommas\": true,\n \"definitions\": {\n \"AllowWarnDeny\": {\n \"oneOf\": [\n {\n \"description\": \"Oxlint rule.\\n- \\\"allow\\\" or \\\"off\\\": Turn off the rule.\\n- \\\"warn\\\": Turn the rule on as a warning (doesn't affect exit code).\\n- \\\"error\\\" or \\\"deny\\\": Turn the rule on as an error (will exit with a failure code).\",\n \"type\": \"string\",\n \"enum\": [\n \"allow\",\n \"off\",\n \"warn\",\n \"error\",\n \"deny\"\n ],\n \"markdownDescription\": \"Oxlint rule.\\n- \\\"allow\\\" or \\\"off\\\": Turn off the rule.\\n- \\\"warn\\\": Turn the rule on as a warning (doesn't affect exit code).\\n- \\\"error\\\" or \\\"deny\\\": Turn the rule on as an error (will exit with a failure code).\"\n },\n {\n \"description\": \"Oxlint rule.\\n \\n- 0: Turn off the rule.\\n- 1: Turn the rule on as a warning (doesn't affect exit code).\\n- 2: Turn the rule on as an error (will exit with a failure code).\",\n \"type\": \"integer\",\n \"format\": \"uint32\",\n \"maximum\": 2,\n \"minimum\": 0,\n \"markdownDescription\": \"Oxlint rule.\\n \\n- 0: Turn off the rule.\\n- 1: Turn the rule on as a warning (doesn't affect exit code).\\n- 2: Turn the rule on as an error (will exit with a failure code).\"\n }\n ]\n },\n \"CustomComponent\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"object\",\n \"required\": [\n \"attribute\",\n \"name\"\n ],\n \"properties\": {\n \"attribute\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n }\n },\n {\n \"type\": \"object\",\n \"required\": [\n \"attributes\",\n \"name\"\n ],\n \"properties\": {\n \"attributes\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"name\": {\n \"type\": \"string\"\n }\n }\n }\n ]\n },\n \"DummyRule\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/AllowWarnDeny\"\n },\n {\n \"type\": \"array\",\n \"items\": [\n {\n \"$ref\": \"#/definitions/AllowWarnDeny\"\n }\n ],\n \"additionalItems\": true,\n \"minItems\": 1\n }\n ]\n },\n \"DummyRuleMap\": {\n \"description\": \"See [Oxlint Rules](https://oxc.rs/docs/guide/usage/linter/rules.html)\",\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/definitions/DummyRule\"\n },\n \"markdownDescription\": \"See [Oxlint Rules](https://oxc.rs/docs/guide/usage/linter/rules.html)\"\n },\n \"ExternalPluginEntry\": {\n \"anyOf\": [\n {\n \"description\": \"Path or package name of the plugin\",\n \"type\": \"string\",\n \"markdownDescription\": \"Path or package name of the plugin\"\n },\n {\n \"description\": \"Plugin with custom name/alias\",\n \"type\": \"object\",\n \"required\": [\n \"name\",\n \"specifier\"\n ],\n \"properties\": {\n \"name\": {\n \"description\": \"Custom name/alias for the plugin.\\n\\nNote: The following plugin names are reserved because they are implemented natively in Rust within oxlint and cannot be used for JS plugins:\\n- react (includes react-hooks)\\n- unicorn\\n- typescript (includes @typescript-eslint)\\n- oxc\\n- import (includes import-x)\\n- jsdoc\\n- jest\\n- vitest\\n- jsx-a11y\\n- nextjs\\n- react-perf\\n- promise\\n- node\\n- vue\\n- eslint\\n\\nIf you need to use the JavaScript version of any of these plugins, provide a custom alias to avoid conflicts.\",\n \"type\": \"string\",\n \"markdownDescription\": \"Custom name/alias for the plugin.\\n\\nNote: The following plugin names are reserved because they are implemented natively in Rust within oxlint and cannot be used for JS plugins:\\n- react (includes react-hooks)\\n- unicorn\\n- typescript (includes @typescript-eslint)\\n- oxc\\n- import (includes import-x)\\n- jsdoc\\n- jest\\n- vitest\\n- jsx-a11y\\n- nextjs\\n- react-perf\\n- promise\\n- node\\n- vue\\n- eslint\\n\\nIf you need to use the JavaScript version of any of these plugins, provide a custom alias to avoid conflicts.\"\n },\n \"specifier\": {\n \"description\": \"Path or package name of the plugin\",\n \"type\": \"string\",\n \"markdownDescription\": \"Path or package name of the plugin\"\n }\n },\n \"additionalProperties\": false,\n \"markdownDescription\": \"Plugin with custom name/alias\"\n }\n ]\n },\n \"GlobSet\": {\n \"description\": \"A set of glob patterns.\",\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n },\n \"markdownDescription\": \"A set of glob patterns.\"\n },\n \"GlobalValue\": {\n \"type\": \"string\",\n \"enum\": [\n \"readonly\",\n \"writable\",\n \"off\"\n ]\n },\n \"JSDocPluginSettings\": {\n \"type\": \"object\",\n \"properties\": {\n \"augmentsExtendsReplacesDocs\": {\n \"description\": \"Only for `require-(yields|returns|description|example|param|throws)` rule\",\n \"default\": false,\n \"type\": \"boolean\",\n \"markdownDescription\": \"Only for `require-(yields|returns|description|example|param|throws)` rule\"\n },\n \"exemptDestructuredRootsFromChecks\": {\n \"description\": \"Only for `require-param-type` and `require-param-description` rule\",\n \"default\": false,\n \"type\": \"boolean\",\n \"markdownDescription\": \"Only for `require-param-type` and `require-param-description` rule\"\n },\n \"ignoreInternal\": {\n \"description\": \"For all rules but NOT apply to `empty-tags` rule\",\n \"default\": false,\n \"type\": \"boolean\",\n \"markdownDescription\": \"For all rules but NOT apply to `empty-tags` rule\"\n },\n \"ignorePrivate\": {\n \"description\": \"For all rules but NOT apply to `check-access` and `empty-tags` rule\",\n \"default\": false,\n \"type\": \"boolean\",\n \"markdownDescription\": \"For all rules but NOT apply to `check-access` and `empty-tags` rule\"\n },\n \"ignoreReplacesDocs\": {\n \"description\": \"Only for `require-(yields|returns|description|example|param|throws)` rule\",\n \"default\": true,\n \"type\": \"boolean\",\n \"markdownDescription\": \"Only for `require-(yields|returns|description|example|param|throws)` rule\"\n },\n \"implementsReplacesDocs\": {\n \"description\": \"Only for `require-(yields|returns|description|example|param|throws)` rule\",\n \"default\": false,\n \"type\": \"boolean\",\n \"markdownDescription\": \"Only for `require-(yields|returns|description|example|param|throws)` rule\"\n },\n \"overrideReplacesDocs\": {\n \"description\": \"Only for `require-(yields|returns|description|example|param|throws)` rule\",\n \"default\": true,\n \"type\": \"boolean\",\n \"markdownDescription\": \"Only for `require-(yields|returns|description|example|param|throws)` rule\"\n },\n \"tagNamePreference\": {\n \"default\": {},\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/definitions/TagNamePreference\"\n }\n }\n }\n },\n \"JSXA11yPluginSettings\": {\n \"description\": \"Configure JSX A11y plugin rules.\\n\\nSee\\n[eslint-plugin-jsx-a11y](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y#configurations)'s\\nconfiguration for a full reference.\",\n \"type\": \"object\",\n \"properties\": {\n \"attributes\": {\n \"description\": \"Map of attribute names to their DOM equivalents.\\nThis is useful for non-React frameworks that use different attribute names.\\n\\nExample:\\n\\n```json\\n{\\n\\\"settings\\\": {\\n\\\"jsx-a11y\\\": {\\n\\\"attributes\\\": {\\n\\\"for\\\": [\\\"htmlFor\\\", \\\"for\\\"]\\n}\\n}\\n}\\n}\\n```\",\n \"default\": {},\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"markdownDescription\": \"Map of attribute names to their DOM equivalents.\\nThis is useful for non-React frameworks that use different attribute names.\\n\\nExample:\\n\\n```json\\n{\\n\\\"settings\\\": {\\n\\\"jsx-a11y\\\": {\\n\\\"attributes\\\": {\\n\\\"for\\\": [\\\"htmlFor\\\", \\\"for\\\"]\\n}\\n}\\n}\\n}\\n```\"\n },\n \"components\": {\n \"description\": \"To have your custom components be checked as DOM elements, you can\\nprovide a mapping of your component names to the DOM element name.\\n\\nExample:\\n\\n```json\\n{\\n\\\"settings\\\": {\\n\\\"jsx-a11y\\\": {\\n\\\"components\\\": {\\n\\\"Link\\\": \\\"a\\\",\\n\\\"IconButton\\\": \\\"button\\\"\\n}\\n}\\n}\\n}\\n```\",\n \"default\": {},\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"markdownDescription\": \"To have your custom components be checked as DOM elements, you can\\nprovide a mapping of your component names to the DOM element name.\\n\\nExample:\\n\\n```json\\n{\\n\\\"settings\\\": {\\n\\\"jsx-a11y\\\": {\\n\\\"components\\\": {\\n\\\"Link\\\": \\\"a\\\",\\n\\\"IconButton\\\": \\\"button\\\"\\n}\\n}\\n}\\n}\\n```\"\n },\n \"polymorphicPropName\": {\n \"description\": \"An optional setting that define the prop your code uses to create polymorphic components.\\nThis setting will be used to determine the element type in rules that\\nrequire semantic context.\\n\\nFor example, if you set the `polymorphicPropName` to `as`, then this element:\\n\\n```jsx\\n<Box as=\\\"h3\\\">Hello</Box>\\n```\\n\\nWill be treated as an `h3`. If not set, this component will be treated\\nas a `Box`.\",\n \"type\": \"string\",\n \"markdownDescription\": \"An optional setting that define the prop your code uses to create polymorphic components.\\nThis setting will be used to determine the element type in rules that\\nrequire semantic context.\\n\\nFor example, if you set the `polymorphicPropName` to `as`, then this element:\\n\\n```jsx\\n<Box as=\\\"h3\\\">Hello</Box>\\n```\\n\\nWill be treated as an `h3`. If not set, this component will be treated\\nas a `Box`.\"\n }\n },\n \"markdownDescription\": \"Configure JSX A11y plugin rules.\\n\\nSee\\n[eslint-plugin-jsx-a11y](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y#configurations)'s\\nconfiguration for a full reference.\"\n },\n \"LintPluginOptionsSchema\": {\n \"type\": \"string\",\n \"enum\": [\n \"eslint\",\n \"react\",\n \"unicorn\",\n \"typescript\",\n \"oxc\",\n \"import\",\n \"jsdoc\",\n \"jest\",\n \"vitest\",\n \"jsx-a11y\",\n \"nextjs\",\n \"react-perf\",\n \"promise\",\n \"node\",\n \"vue\"\n ]\n },\n \"LintPlugins\": {\n \"type\": \"array\",\n \"items\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/definitions/LintPluginOptionsSchema\"\n }\n ]\n }\n },\n \"NextPluginSettings\": {\n \"description\": \"Configure Next.js plugin rules.\",\n \"type\": \"object\",\n \"properties\": {\n \"rootDir\": {\n \"description\": \"The root directory of the Next.js project.\\n\\nThis is particularly useful when you have a monorepo and your Next.js\\nproject is in a subfolder.\\n\\nExample:\\n\\n```json\\n{\\n\\\"settings\\\": {\\n\\\"next\\\": {\\n\\\"rootDir\\\": \\\"apps/dashboard/\\\"\\n}\\n}\\n}\\n```\",\n \"default\": [],\n \"allOf\": [\n {\n \"$ref\": \"#/definitions/OneOrMany_for_String\"\n }\n ],\n \"markdownDescription\": \"The root directory of the Next.js project.\\n\\nThis is particularly useful when you have a monorepo and your Next.js\\nproject is in a subfolder.\\n\\nExample:\\n\\n```json\\n{\\n\\\"settings\\\": {\\n\\\"next\\\": {\\n\\\"rootDir\\\": \\\"apps/dashboard/\\\"\\n}\\n}\\n}\\n```\"\n }\n },\n \"markdownDescription\": \"Configure Next.js plugin rules.\"\n },\n \"OneOrMany_for_String\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n ]\n },\n \"OxlintCategories\": {\n \"title\": \"Rule Categories\",\n \"description\": \"Configure an entire category of rules all at once.\\n\\nRules enabled or disabled this way will be overwritten by individual rules in the `rules` field.\\n\\nExample\\n```json\\n{\\n \\\"$schema\\\": \\\"./node_modules/oxlint/configuration_schema.json\\\",\\n \\\"categories\\\": {\\n \\\"correctness\\\": \\\"warn\\\"\\n },\\n \\\"rules\\\": {\\n \\\"eslint/no-unused-vars\\\": \\\"error\\\"\\n }\\n}\\n```\",\n \"examples\": [\n {\n \"correctness\": \"warn\"\n }\n ],\n \"type\": \"object\",\n \"properties\": {\n \"correctness\": {\n \"$ref\": \"#/definitions/AllowWarnDeny\"\n },\n \"nursery\": {\n \"$ref\": \"#/definitions/AllowWarnDeny\"\n },\n \"pedantic\": {\n \"$ref\": \"#/definitions/AllowWarnDeny\"\n },\n \"perf\": {\n \"$ref\": \"#/definitions/AllowWarnDeny\"\n },\n \"restriction\": {\n \"$ref\": \"#/definitions/AllowWarnDeny\"\n },\n \"style\": {\n \"$ref\": \"#/definitions/AllowWarnDeny\"\n },\n \"suspicious\": {\n \"$ref\": \"#/definitions/AllowWarnDeny\"\n }\n },\n \"additionalProperties\": false,\n \"markdownDescription\": \"Configure an entire category of rules all at once.\\n\\nRules enabled or disabled this way will be overwritten by individual rules in the `rules` field.\\n\\nExample\\n```json\\n{\\n \\\"$schema\\\": \\\"./node_modules/oxlint/configuration_schema.json\\\",\\n \\\"categories\\\": {\\n \\\"correctness\\\": \\\"warn\\\"\\n },\\n \\\"rules\\\": {\\n \\\"eslint/no-unused-vars\\\": \\\"error\\\"\\n }\\n}\\n```\"\n },\n \"OxlintEnv\": {\n \"description\": \"Predefine global variables.\\n\\nEnvironments specify what global variables are predefined.\\nSee [ESLint's list of environments](https://eslint.org/docs/v8.x/use/configure/language-options#specifying-environments)\\nfor what environments are available and what each one provides.\",\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"boolean\"\n },\n \"markdownDescription\": \"Predefine global variables.\\n\\nEnvironments specify what global variables are predefined.\\nSee [ESLint's list of environments](https://eslint.org/docs/v8.x/use/configure/language-options#specifying-environments)\\nfor what environments are available and what each one provides.\"\n },\n \"OxlintGlobals\": {\n \"description\": \"Add or remove global variables.\\n\\nFor each global variable, set the corresponding value equal to `\\\"writable\\\"`\\nto allow the variable to be overwritten or `\\\"readonly\\\"` to disallow overwriting.\\n\\nGlobals can be disabled by setting their value to `\\\"off\\\"`. For example, in\\nan environment where most Es2015 globals are available but `Promise` is unavailable,\\nyou might use this config:\\n\\n```json\\n\\n{\\n\\\"$schema\\\": \\\"./node_modules/oxlint/configuration_schema.json\\\",\\n\\\"env\\\": {\\n\\\"es6\\\": true\\n},\\n\\\"globals\\\": {\\n\\\"Promise\\\": \\\"off\\\"\\n}\\n}\\n\\n```\\n\\nYou may also use `\\\"readable\\\"` or `false` to represent `\\\"readonly\\\"`, and\\n`\\\"writeable\\\"` or `true` to represent `\\\"writable\\\"`.\",\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/definitions/GlobalValue\"\n },\n \"markdownDescription\": \"Add or remove global variables.\\n\\nFor each global variable, set the corresponding value equal to `\\\"writable\\\"`\\nto allow the variable to be overwritten or `\\\"readonly\\\"` to disallow overwriting.\\n\\nGlobals can be disabled by setting their value to `\\\"off\\\"`. For example, in\\nan environment where most Es2015 globals are available but `Promise` is unavailable,\\nyou might use this config:\\n\\n```json\\n\\n{\\n\\\"$schema\\\": \\\"./node_modules/oxlint/configuration_schema.json\\\",\\n\\\"env\\\": {\\n\\\"es6\\\": true\\n},\\n\\\"globals\\\": {\\n\\\"Promise\\\": \\\"off\\\"\\n}\\n}\\n\\n```\\n\\nYou may also use `\\\"readable\\\"` or `false` to represent `\\\"readonly\\\"`, and\\n`\\\"writeable\\\"` or `true` to represent `\\\"writable\\\"`.\"\n },\n \"OxlintOptions\": {\n \"description\": \"Options for the linter.\",\n \"type\": \"object\",\n \"properties\": {\n \"denyWarnings\": {\n \"description\": \"Ensure warnings produce a non-zero exit code.\\n\\nEquivalent to passing `--deny-warnings` on the CLI.\",\n \"type\": \"boolean\",\n \"markdownDescription\": \"Ensure warnings produce a non-zero exit code.\\n\\nEquivalent to passing `--deny-warnings` on the CLI.\"\n },\n \"maxWarnings\": {\n \"description\": \"Specify a warning threshold. Exits with an error status if warnings exceed this value.\\n\\nEquivalent to passing `--max-warnings` on the CLI.\",\n \"type\": \"integer\",\n \"format\": \"uint\",\n \"minimum\": 0,\n \"markdownDescription\": \"Specify a warning threshold. Exits with an error status if warnings exceed this value.\\n\\nEquivalent to passing `--max-warnings` on the CLI.\"\n },\n \"reportUnusedDisableDirectives\": {\n \"description\": \"Report unused disable directives (e.g. `// oxlint-disable-line` or `// eslint-disable-line`).\\n\\nEquivalent to passing `--report-unused-disable-directives-severity` on the CLI.\\nCLI flags take precedence over this value when both are set.\\nOnly supported in the root configuration file.\",\n \"allOf\": [\n {\n \"$ref\": \"#/definitions/AllowWarnDeny\"\n }\n ],\n \"markdownDescription\": \"Report unused disable directives (e.g. `// oxlint-disable-line` or `// eslint-disable-line`).\\n\\nEquivalent to passing `--report-unused-disable-directives-severity` on the CLI.\\nCLI flags take precedence over this value when both are set.\\nOnly supported in the root configuration file.\"\n },\n \"typeAware\": {\n \"description\": \"Enable rules that require type information.\\n\\nEquivalent to passing `--type-aware` on the CLI.\\n\\nNote that this requires the `oxlint-tsgolint` package to be installed.\",\n \"type\": \"boolean\",\n \"markdownDescription\": \"Enable rules that require type information.\\n\\nEquivalent to passing `--type-aware` on the CLI.\\n\\nNote that this requires the `oxlint-tsgolint` package to be installed.\"\n },\n \"typeCheck\": {\n \"description\": \"Enable experimental type checking (includes TypeScript compiler diagnostics).\\n\\nEquivalent to passing `--type-check` on the CLI.\\n\\nNote that this requires the `oxlint-tsgolint` package to be installed.\",\n \"type\": \"boolean\",\n \"markdownDescription\": \"Enable experimental type checking (includes TypeScript compiler diagnostics).\\n\\nEquivalent to passing `--type-check` on the CLI.\\n\\nNote that this requires the `oxlint-tsgolint` package to be installed.\"\n }\n },\n \"additionalProperties\": false,\n \"markdownDescription\": \"Options for the linter.\"\n },\n \"OxlintOverride\": {\n \"type\": \"object\",\n \"required\": [\n \"files\"\n ],\n \"properties\": {\n \"env\": {\n \"description\": \"Environments enable and disable collections of global variables.\",\n \"allOf\": [\n {\n \"$ref\": \"#/definitions/OxlintEnv\"\n }\n ],\n \"markdownDescription\": \"Environments enable and disable collections of global variables.\"\n },\n \"files\": {\n \"description\": \"A list of glob patterns to override.\\n\\n## Example\\n`[ \\\"*.test.ts\\\", \\\"*.spec.ts\\\" ]`\",\n \"allOf\": [\n {\n \"$ref\": \"#/definitions/GlobSet\"\n }\n ],\n \"markdownDescription\": \"A list of glob patterns to override.\\n\\n## Example\\n`[ \\\"*.test.ts\\\", \\\"*.spec.ts\\\" ]`\"\n },\n \"globals\": {\n \"description\": \"Enabled or disabled specific global variables.\",\n \"allOf\": [\n {\n \"$ref\": \"#/definitions/OxlintGlobals\"\n }\n ],\n \"markdownDescription\": \"Enabled or disabled specific global variables.\"\n },\n \"jsPlugins\": {\n \"description\": \"JS plugins for this override, allows usage of ESLint plugins with Oxlint.\\n\\nRead more about JS plugins in\\n[the docs](https://oxc.rs/docs/guide/usage/linter/js-plugins.html).\\n\\nNote: JS plugins are in alpha and not subject to semver.\",\n \"anyOf\": [\n {\n \"type\": \"null\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/ExternalPluginEntry\"\n },\n \"uniqueItems\": true\n }\n ],\n \"markdownDescription\": \"JS plugins for this override, allows usage of ESLint plugins with Oxlint.\\n\\nRead more about JS plugins in\\n[the docs](https://oxc.rs/docs/guide/usage/linter/js-plugins.html).\\n\\nNote: JS plugins are in alpha and not subject to semver.\"\n },\n \"plugins\": {\n \"description\": \"Optionally change what plugins are enabled for this override. When\\nomitted, the base config's plugins are used.\",\n \"default\": null,\n \"allOf\": [\n {\n \"$ref\": \"#/definitions/LintPlugins\"\n }\n ],\n \"markdownDescription\": \"Optionally change what plugins are enabled for this override. When\\nomitted, the base config's plugins are used.\"\n },\n \"rules\": {\n \"default\": {},\n \"allOf\": [\n {\n \"$ref\": \"#/definitions/OxlintRules\"\n }\n ]\n }\n },\n \"additionalProperties\": false\n },\n \"OxlintOverrides\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/OxlintOverride\"\n }\n },\n \"OxlintRules\": {\n \"$ref\": \"#/definitions/DummyRuleMap\"\n },\n \"OxlintSettings\": {\n \"title\": \"Oxlint Plugin Settings\",\n \"description\": \"Configure the behavior of linter plugins.\\n\\nHere's an example if you're using Next.js in a monorepo:\\n\\n```json\\n{\\n\\\"settings\\\": {\\n\\\"next\\\": {\\n\\\"rootDir\\\": \\\"apps/dashboard/\\\"\\n},\\n\\\"react\\\": {\\n\\\"linkComponents\\\": [\\n{ \\\"name\\\": \\\"Link\\\", \\\"linkAttribute\\\": \\\"to\\\" }\\n]\\n},\\n\\\"jsx-a11y\\\": {\\n\\\"components\\\": {\\n\\\"Link\\\": \\\"a\\\",\\n\\\"Button\\\": \\\"button\\\"\\n}\\n}\\n}\\n}\\n```\",\n \"type\": \"object\",\n \"properties\": {\n \"jsdoc\": {\n \"default\": {\n \"ignorePrivate\": false,\n \"ignoreInternal\": false,\n \"ignoreReplacesDocs\": true,\n \"overrideReplacesDocs\": true,\n \"augmentsExtendsReplacesDocs\": false,\n \"implementsReplacesDocs\": false,\n \"exemptDestructuredRootsFromChecks\": false,\n \"tagNamePreference\": {}\n },\n \"allOf\": [\n {\n \"$ref\": \"#/definitions/JSDocPluginSettings\"\n }\n ]\n },\n \"jsx-a11y\": {\n \"default\": {\n \"polymorphicPropName\": null,\n \"components\": {},\n \"attributes\": {}\n },\n \"allOf\": [\n {\n \"$ref\": \"#/definitions/JSXA11yPluginSettings\"\n }\n ]\n },\n \"next\": {\n \"default\": {\n \"rootDir\": []\n },\n \"allOf\": [\n {\n \"$ref\": \"#/definitions/NextPluginSettings\"\n }\n ]\n },\n \"react\": {\n \"default\": {\n \"formComponents\": [],\n \"linkComponents\": [],\n \"version\": null,\n \"componentWrapperFunctions\": []\n },\n \"allOf\": [\n {\n \"$ref\": \"#/definitions/ReactPluginSettings\"\n }\n ]\n },\n \"vitest\": {\n \"default\": {\n \"typecheck\": false\n },\n \"allOf\": [\n {\n \"$ref\": \"#/definitions/VitestPluginSettings\"\n }\n ]\n }\n },\n \"markdownDescription\": \"Configure the behavior of linter plugins.\\n\\nHere's an example if you're using Next.js in a monorepo:\\n\\n```json\\n{\\n\\\"settings\\\": {\\n\\\"next\\\": {\\n\\\"rootDir\\\": \\\"apps/dashboard/\\\"\\n},\\n\\\"react\\\": {\\n\\\"linkComponents\\\": [\\n{ \\\"name\\\": \\\"Link\\\", \\\"linkAttribute\\\": \\\"to\\\" }\\n]\\n},\\n\\\"jsx-a11y\\\": {\\n\\\"components\\\": {\\n\\\"Link\\\": \\\"a\\\",\\n\\\"Button\\\": \\\"button\\\"\\n}\\n}\\n}\\n}\\n```\"\n },\n \"ReactPluginSettings\": {\n \"description\": \"Configure React plugin rules.\\n\\nDerived from [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react#configuration-legacy-eslintrc-)\",\n \"type\": \"object\",\n \"properties\": {\n \"componentWrapperFunctions\": {\n \"description\": \"Functions that wrap React components and should be treated as HOCs.\\n\\nExample:\\n\\n```jsonc\\n{\\n\\\"settings\\\": {\\n\\\"react\\\": {\\n\\\"componentWrapperFunctions\\\": [\\\"observer\\\", \\\"withRouter\\\"]\\n}\\n}\\n}\\n```\",\n \"default\": [],\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n },\n \"markdownDescription\": \"Functions that wrap React components and should be treated as HOCs.\\n\\nExample:\\n\\n```jsonc\\n{\\n\\\"settings\\\": {\\n\\\"react\\\": {\\n\\\"componentWrapperFunctions\\\": [\\\"observer\\\", \\\"withRouter\\\"]\\n}\\n}\\n}\\n```\"\n },\n \"formComponents\": {\n \"description\": \"Components used as alternatives to `<form>` for forms, such as `<Formik>`.\\n\\nExample:\\n\\n```jsonc\\n{\\n\\\"settings\\\": {\\n\\\"react\\\": {\\n\\\"formComponents\\\": [\\n\\\"CustomForm\\\",\\n// OtherForm is considered a form component and has an endpoint attribute\\n{ \\\"name\\\": \\\"OtherForm\\\", \\\"formAttribute\\\": \\\"endpoint\\\" },\\n// allows specifying multiple properties if necessary\\n{ \\\"name\\\": \\\"Form\\\", \\\"formAttribute\\\": [\\\"registerEndpoint\\\", \\\"loginEndpoint\\\"] }\\n]\\n}\\n}\\n}\\n```\",\n \"default\": [],\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/CustomComponent\"\n },\n \"markdownDescription\": \"Components used as alternatives to `<form>` for forms, such as `<Formik>`.\\n\\nExample:\\n\\n```jsonc\\n{\\n\\\"settings\\\": {\\n\\\"react\\\": {\\n\\\"formComponents\\\": [\\n\\\"CustomForm\\\",\\n// OtherForm is considered a form component and has an endpoint attribute\\n{ \\\"name\\\": \\\"OtherForm\\\", \\\"formAttribute\\\": \\\"endpoint\\\" },\\n// allows specifying multiple properties if necessary\\n{ \\\"name\\\": \\\"Form\\\", \\\"formAttribute\\\": [\\\"registerEndpoint\\\", \\\"loginEndpoint\\\"] }\\n]\\n}\\n}\\n}\\n```\"\n },\n \"linkComponents\": {\n \"description\": \"Components used as alternatives to `<a>` for linking, such as `<Link>`.\\n\\nExample:\\n\\n```jsonc\\n{\\n\\\"settings\\\": {\\n\\\"react\\\": {\\n\\\"linkComponents\\\": [\\n\\\"HyperLink\\\",\\n// Use `linkAttribute` for components that use a different prop name\\n// than `href`.\\n{ \\\"name\\\": \\\"MyLink\\\", \\\"linkAttribute\\\": \\\"to\\\" },\\n// allows specifying multiple properties if necessary\\n{ \\\"name\\\": \\\"Link\\\", \\\"linkAttribute\\\": [\\\"to\\\", \\\"href\\\"] }\\n]\\n}\\n}\\n}\\n```\",\n \"default\": [],\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/CustomComponent\"\n },\n \"markdownDescription\": \"Components used as alternatives to `<a>` for linking, such as `<Link>`.\\n\\nExample:\\n\\n```jsonc\\n{\\n\\\"settings\\\": {\\n\\\"react\\\": {\\n\\\"linkComponents\\\": [\\n\\\"HyperLink\\\",\\n// Use `linkAttribute` for components that use a different prop name\\n// than `href`.\\n{ \\\"name\\\": \\\"MyLink\\\", \\\"linkAttribute\\\": \\\"to\\\" },\\n// allows specifying multiple properties if necessary\\n{ \\\"name\\\": \\\"Link\\\", \\\"linkAttribute\\\": [\\\"to\\\", \\\"href\\\"] }\\n]\\n}\\n}\\n}\\n```\"\n },\n \"version\": {\n \"description\": \"React version to use for version-specific rules.\\n\\nAccepts semver versions (e.g., \\\"18.2.0\\\", \\\"17.0\\\").\\n\\nExample:\\n\\n```jsonc\\n{\\n\\\"settings\\\": {\\n\\\"react\\\": {\\n\\\"version\\\": \\\"18.2.0\\\"\\n}\\n}\\n}\\n```\",\n \"default\": null,\n \"type\": \"string\",\n \"pattern\": \"^[1-9]\\\\d*(\\\\.(0|[1-9]\\\\d*))?(\\\\.(0|[1-9]\\\\d*))?$\",\n \"markdownDescription\": \"React version to use for version-specific rules.\\n\\nAccepts semver versions (e.g., \\\"18.2.0\\\", \\\"17.0\\\").\\n\\nExample:\\n\\n```jsonc\\n{\\n\\\"settings\\\": {\\n\\\"react\\\": {\\n\\\"version\\\": \\\"18.2.0\\\"\\n}\\n}\\n}\\n```\"\n }\n },\n \"markdownDescription\": \"Configure React plugin rules.\\n\\nDerived from [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react#configuration-legacy-eslintrc-)\"\n },\n \"TagNamePreference\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"object\",\n \"required\": [\n \"message\",\n \"replacement\"\n ],\n \"properties\": {\n \"message\": {\n \"type\": \"string\"\n },\n \"replacement\": {\n \"type\": \"string\"\n }\n }\n },\n {\n \"type\": \"object\",\n \"required\": [\n \"message\"\n ],\n \"properties\": {\n \"message\": {\n \"type\": \"string\"\n }\n }\n },\n {\n \"type\": \"boolean\"\n }\n ]\n },\n \"VitestPluginSettings\": {\n \"description\": \"Configure Vitest plugin rules.\\n\\nSee [eslint-plugin-vitest](https://github.com/vitest-dev/eslint-plugin-vitest)'s\\nconfiguration for a full reference.\",\n \"type\": \"object\",\n \"properties\": {\n \"typecheck\": {\n \"description\": \"Whether to enable typecheck mode for Vitest rules.\\nWhen enabled, some rules will skip certain checks for describe blocks\\nto accommodate TypeScript type checking scenarios.\",\n \"default\": false,\n \"type\": \"boolean\",\n \"markdownDescription\": \"Whether to enable typecheck mode for Vitest rules.\\nWhen enabled, some rules will skip certain checks for describe blocks\\nto accommodate TypeScript type checking scenarios.\"\n }\n },\n \"markdownDescription\": \"Configure Vitest plugin rules.\\n\\nSee [eslint-plugin-vitest](https://github.com/vitest-dev/eslint-plugin-vitest)'s\\nconfiguration for a full reference.\"\n }\n },\n \"markdownDescription\": \"Oxlint Configuration File\\n\\nThis configuration is aligned with ESLint v8's configuration schema (`eslintrc.json`).\\n\\nUsage: `oxlint -c oxlintrc.json`\\n\\nExample\\n\\n`.oxlintrc.json`\\n\\n```json\\n{\\n\\\"$schema\\\": \\\"./node_modules/oxlint/configuration_schema.json\\\",\\n\\\"plugins\\\": [\\\"import\\\", \\\"typescript\\\", \\\"unicorn\\\"],\\n\\\"env\\\": {\\n\\\"browser\\\": true\\n},\\n\\\"globals\\\": {\\n\\\"foo\\\": \\\"readonly\\\"\\n},\\n\\\"settings\\\": {\\n\\\"react\\\": {\\n\\\"version\\\": \\\"18.2.0\\\"\\n},\\n\\\"custom\\\": { \\\"option\\\": true }\\n},\\n\\\"rules\\\": {\\n\\\"eqeqeq\\\": \\\"warn\\\",\\n\\\"import/no-cycle\\\": \\\"error\\\",\\n\\\"react/self-closing-comp\\\": [\\\"error\\\", { \\\"html\\\": false }]\\n},\\n\\\"overrides\\\": [\\n{\\n\\\"files\\\": [\\\"*.test.ts\\\", \\\"*.spec.ts\\\"],\\n\\\"rules\\\": {\\n\\\"@typescript-eslint/no-explicit-any\\\": \\\"off\\\"\\n}\\n}\\n]\\n}\\n```\\n\\n`oxlint.config.ts`\\n\\n```ts\\nimport { defineConfig } from \\\"oxlint\\\";\\n\\nexport default defineConfig({\\nplugins: [\\\"import\\\", \\\"typescript\\\", \\\"unicorn\\\"],\\nenv: {\\n\\\"browser\\\": true\\n},\\nglobals: {\\n\\\"foo\\\": \\\"readonly\\\"\\n},\\nsettings: {\\nreact: {\\nversion: \\\"18.2.0\\\"\\n},\\ncustom: { option: true }\\n},\\nrules: {\\n\\\"eqeqeq\\\": \\\"warn\\\",\\n\\\"import/no-cycle\\\": \\\"error\\\",\\n\\\"react/self-closing-comp\\\": [\\\"error\\\", { \\\"html\\\": false }]\\n},\\noverrides: [\\n{\\nfiles: [\\\"*.test.ts\\\", \\\"*.spec.ts\\\"],\\nrules: {\\n\\\"@typescript-eslint/no-explicit-any\\\": \\\"off\\\"\\n}\\n}\\n]\\n});\\n```\"\n}";
|
|
950
950
|
//#endregion
|
|
951
|
+
//#region src/datamitsu-config/registries/externalApps.json
|
|
952
|
+
var apps$1 = {
|
|
953
|
+
"helm": {
|
|
954
|
+
"binaryPathTemplate": "{os}-{arch}/helm{binExt}",
|
|
955
|
+
"contentType": "tar.gz",
|
|
956
|
+
"contentTypeMap": { "windows": "zip" },
|
|
957
|
+
"description": "The Kubernetes Package Manager",
|
|
958
|
+
"extMap": {
|
|
959
|
+
"default": ".tar.gz",
|
|
960
|
+
"windows": ".zip"
|
|
961
|
+
},
|
|
962
|
+
"latestVersionType": "github-release",
|
|
963
|
+
"latestVersionUrl": "https://api.github.com/repos/helm/helm/releases/latest",
|
|
964
|
+
"platforms": {
|
|
965
|
+
"darwin": {
|
|
966
|
+
"amd64": "unknown",
|
|
967
|
+
"arm64": "unknown"
|
|
968
|
+
},
|
|
969
|
+
"linux": {
|
|
970
|
+
"amd64": "glibc",
|
|
971
|
+
"arm64": "glibc"
|
|
972
|
+
},
|
|
973
|
+
"windows": {
|
|
974
|
+
"amd64": "unknown",
|
|
975
|
+
"arm64": "unknown"
|
|
976
|
+
}
|
|
977
|
+
},
|
|
978
|
+
"source": "helm",
|
|
979
|
+
"urlTemplate": "https://get.helm.sh/helm-{version}-{os}-{arch}{ext}",
|
|
980
|
+
"version": "v4.2.0",
|
|
981
|
+
"versionCheck": { "args": ["version"] }
|
|
982
|
+
},
|
|
983
|
+
"kubectl": {
|
|
984
|
+
"contentType": "binary",
|
|
985
|
+
"description": "Kubernetes command-line tool",
|
|
986
|
+
"latestVersionUrl": "https://dl.k8s.io/release/stable.txt",
|
|
987
|
+
"platforms": {
|
|
988
|
+
"darwin": {
|
|
989
|
+
"amd64": "unknown",
|
|
990
|
+
"arm64": "unknown"
|
|
991
|
+
},
|
|
992
|
+
"linux": {
|
|
993
|
+
"amd64": "glibc",
|
|
994
|
+
"arm64": "glibc"
|
|
995
|
+
},
|
|
996
|
+
"windows": { "amd64": "unknown" }
|
|
997
|
+
},
|
|
998
|
+
"source": "kubernetes",
|
|
999
|
+
"urlTemplate": "https://dl.k8s.io/release/{version}/bin/{os}/{arch}/kubectl{ext}",
|
|
1000
|
+
"version": "v1.36.1",
|
|
1001
|
+
"versionCheck": { "args": ["version", "--client"] }
|
|
1002
|
+
}
|
|
1003
|
+
};
|
|
1004
|
+
var binaries$1 = {
|
|
1005
|
+
"helm": {
|
|
1006
|
+
"binaries": {
|
|
1007
|
+
"darwin": {
|
|
1008
|
+
"amd64": { "unknown": {
|
|
1009
|
+
"binaryPath": "darwin-amd64/helm",
|
|
1010
|
+
"contentType": "tar.gz",
|
|
1011
|
+
"hash": "1376ea697140e4db316736e760d5a47d12afc1524dce704476ef06fd7fdeddc6",
|
|
1012
|
+
"url": "https://get.helm.sh/helm-v4.2.0-darwin-amd64.tar.gz"
|
|
1013
|
+
} },
|
|
1014
|
+
"arm64": { "unknown": {
|
|
1015
|
+
"binaryPath": "darwin-arm64/helm",
|
|
1016
|
+
"contentType": "tar.gz",
|
|
1017
|
+
"hash": "f13f959015447b6bc309f9fd506509926543988a39035c088b52522ec95e2acb",
|
|
1018
|
+
"url": "https://get.helm.sh/helm-v4.2.0-darwin-arm64.tar.gz"
|
|
1019
|
+
} }
|
|
1020
|
+
},
|
|
1021
|
+
"linux": {
|
|
1022
|
+
"amd64": { "glibc": {
|
|
1023
|
+
"binaryPath": "linux-amd64/helm",
|
|
1024
|
+
"contentType": "tar.gz",
|
|
1025
|
+
"hash": "97dbeb971be4ac4b27e3839976d9564c0fb35c6f3b1da89dd1e292d236af4096",
|
|
1026
|
+
"url": "https://get.helm.sh/helm-v4.2.0-linux-amd64.tar.gz"
|
|
1027
|
+
} },
|
|
1028
|
+
"arm64": { "glibc": {
|
|
1029
|
+
"binaryPath": "linux-arm64/helm",
|
|
1030
|
+
"contentType": "tar.gz",
|
|
1031
|
+
"hash": "1f8de130dfbd04de64978e7b852a7a547be1404956a366608276d2520b678670",
|
|
1032
|
+
"url": "https://get.helm.sh/helm-v4.2.0-linux-arm64.tar.gz"
|
|
1033
|
+
} }
|
|
1034
|
+
},
|
|
1035
|
+
"windows": {
|
|
1036
|
+
"amd64": { "unknown": {
|
|
1037
|
+
"binaryPath": "windows-amd64/helm.exe",
|
|
1038
|
+
"contentType": "zip",
|
|
1039
|
+
"hash": "614f68ddc567ac9bfb0c205f869b1f83ba4e0a9aacd26cbae47743ae6082a579",
|
|
1040
|
+
"url": "https://get.helm.sh/helm-v4.2.0-windows-amd64.zip"
|
|
1041
|
+
} },
|
|
1042
|
+
"arm64": { "unknown": {
|
|
1043
|
+
"binaryPath": "windows-arm64/helm.exe",
|
|
1044
|
+
"contentType": "zip",
|
|
1045
|
+
"hash": "e740e4c19b6e2a0b428f7a52c38b7f0b092f0c43ac49870537d7e7fac9cedc07",
|
|
1046
|
+
"url": "https://get.helm.sh/helm-v4.2.0-windows-arm64.zip"
|
|
1047
|
+
} }
|
|
1048
|
+
}
|
|
1049
|
+
},
|
|
1050
|
+
"description": "The Kubernetes Package Manager"
|
|
1051
|
+
},
|
|
1052
|
+
"kubectl": {
|
|
1053
|
+
"binaries": {
|
|
1054
|
+
"darwin": {
|
|
1055
|
+
"amd64": { "unknown": {
|
|
1056
|
+
"contentType": "binary",
|
|
1057
|
+
"hash": "b4973e90ebb00537d735b63d6f8293c1959156e6ff435f6a43c08aeaa1a2e7d7",
|
|
1058
|
+
"url": "https://dl.k8s.io/release/v1.36.1/bin/darwin/amd64/kubectl"
|
|
1059
|
+
} },
|
|
1060
|
+
"arm64": { "unknown": {
|
|
1061
|
+
"contentType": "binary",
|
|
1062
|
+
"hash": "9092778abaef3079449da4cd70ded0e4be112480c93efcdeace3155968d1d133",
|
|
1063
|
+
"url": "https://dl.k8s.io/release/v1.36.1/bin/darwin/arm64/kubectl"
|
|
1064
|
+
} }
|
|
1065
|
+
},
|
|
1066
|
+
"linux": {
|
|
1067
|
+
"amd64": { "glibc": {
|
|
1068
|
+
"contentType": "binary",
|
|
1069
|
+
"hash": "629d3f410e09bf49b64ae7079f7f0bda1191efed311f7d37fdbab0ad5b0ec2b7",
|
|
1070
|
+
"url": "https://dl.k8s.io/release/v1.36.1/bin/linux/amd64/kubectl"
|
|
1071
|
+
} },
|
|
1072
|
+
"arm64": { "glibc": {
|
|
1073
|
+
"contentType": "binary",
|
|
1074
|
+
"hash": "59f7ee8e477fae658447607dc3c8790ac17a1b016c01c622c12070e969e2d4e7",
|
|
1075
|
+
"url": "https://dl.k8s.io/release/v1.36.1/bin/linux/arm64/kubectl"
|
|
1076
|
+
} }
|
|
1077
|
+
},
|
|
1078
|
+
"windows": { "amd64": { "unknown": {
|
|
1079
|
+
"contentType": "binary",
|
|
1080
|
+
"hash": "538f4229eee91a17b34724da7daade7687393d6988e33b723c6c306572c13900",
|
|
1081
|
+
"url": "https://dl.k8s.io/release/v1.36.1/bin/windows/amd64/kubectl.exe"
|
|
1082
|
+
} } }
|
|
1083
|
+
},
|
|
1084
|
+
"description": "Kubernetes command-line tool"
|
|
1085
|
+
}
|
|
1086
|
+
};
|
|
1087
|
+
//#endregion
|
|
951
1088
|
//#region src/datamitsu-config/registries/githubApps.json
|
|
952
1089
|
var apps = {
|
|
953
1090
|
"actionlint": {
|
|
@@ -1200,11 +1337,31 @@ var apps = {
|
|
|
1200
1337
|
"repo": "task",
|
|
1201
1338
|
"tag": "v3.51.1"
|
|
1202
1339
|
},
|
|
1340
|
+
"terraform-docs": {
|
|
1341
|
+
"owner": "terraform-docs",
|
|
1342
|
+
"repo": "terraform-docs",
|
|
1343
|
+
"tag": "v0.24.0"
|
|
1344
|
+
},
|
|
1345
|
+
"terragrunt": {
|
|
1346
|
+
"owner": "gruntwork-io",
|
|
1347
|
+
"repo": "terragrunt",
|
|
1348
|
+
"tag": "v1.0.5"
|
|
1349
|
+
},
|
|
1203
1350
|
"tflint": {
|
|
1204
1351
|
"owner": "terraform-linters",
|
|
1205
1352
|
"repo": "tflint",
|
|
1206
1353
|
"tag": "v0.63.1"
|
|
1207
1354
|
},
|
|
1355
|
+
"tfupdate": {
|
|
1356
|
+
"owner": "minamijoyo",
|
|
1357
|
+
"repo": "tfupdate",
|
|
1358
|
+
"tag": "v0.9.4"
|
|
1359
|
+
},
|
|
1360
|
+
"tofu": {
|
|
1361
|
+
"owner": "opentofu",
|
|
1362
|
+
"repo": "opentofu",
|
|
1363
|
+
"tag": "v1.12.0"
|
|
1364
|
+
},
|
|
1208
1365
|
"tombi": {
|
|
1209
1366
|
"owner": "tombi-toml",
|
|
1210
1367
|
"repo": "tombi",
|
|
@@ -3339,6 +3496,106 @@ var binaries = {
|
|
|
3339
3496
|
"configHash": "9e43a5259e94839aa525f29049a648f2",
|
|
3340
3497
|
"description": "A fast, cross-platform build tool inspired by Make, designed for modern workflows."
|
|
3341
3498
|
},
|
|
3499
|
+
"terraform-docs": {
|
|
3500
|
+
"binaries": {
|
|
3501
|
+
"darwin": {
|
|
3502
|
+
"amd64": { "unknown": {
|
|
3503
|
+
"binaryPath": "terraform-docs-v0.24.0/terraform-docs",
|
|
3504
|
+
"contentType": "tar.gz",
|
|
3505
|
+
"hash": "3c3f7f18f908457fd1209cbe341418f7f6bae78c08126cfbe8de0d1b06aa8781",
|
|
3506
|
+
"url": "https://github.com/terraform-docs/terraform-docs/releases/download/v0.24.0/terraform-docs-v0.24.0-darwin-amd64.tar.gz"
|
|
3507
|
+
} },
|
|
3508
|
+
"arm64": { "unknown": {
|
|
3509
|
+
"binaryPath": "terraform-docs-v0.24.0/terraform-docs",
|
|
3510
|
+
"contentType": "tar.gz",
|
|
3511
|
+
"hash": "f6b114f4b032f3f9202ab6c23bfd28c3c8e68aeeb8a8f12fc118bf2073081d71",
|
|
3512
|
+
"url": "https://github.com/terraform-docs/terraform-docs/releases/download/v0.24.0/terraform-docs-v0.24.0-darwin-arm64.tar.gz"
|
|
3513
|
+
} }
|
|
3514
|
+
},
|
|
3515
|
+
"freebsd": {
|
|
3516
|
+
"amd64": { "unknown": {
|
|
3517
|
+
"binaryPath": "terraform-docs-v0.24.0/terraform-docs",
|
|
3518
|
+
"contentType": "tar.gz",
|
|
3519
|
+
"hash": "8c79a973f03a14681494e96a1c3d77c9c3fb0751db818b4548d0c5456befe9fa",
|
|
3520
|
+
"url": "https://github.com/terraform-docs/terraform-docs/releases/download/v0.24.0/terraform-docs-v0.24.0-freebsd-amd64.tar.gz"
|
|
3521
|
+
} },
|
|
3522
|
+
"arm64": { "unknown": {
|
|
3523
|
+
"binaryPath": "terraform-docs-v0.24.0/terraform-docs",
|
|
3524
|
+
"contentType": "tar.gz",
|
|
3525
|
+
"hash": "206a1bf4aede19703c0e4f3dbc3c8abd5b3e006038a69a136090166e539e2333",
|
|
3526
|
+
"url": "https://github.com/terraform-docs/terraform-docs/releases/download/v0.24.0/terraform-docs-v0.24.0-freebsd-arm64.tar.gz"
|
|
3527
|
+
} }
|
|
3528
|
+
},
|
|
3529
|
+
"linux": {
|
|
3530
|
+
"amd64": { "glibc": {
|
|
3531
|
+
"binaryPath": "terraform-docs-v0.24.0/terraform-docs",
|
|
3532
|
+
"contentType": "tar.gz",
|
|
3533
|
+
"hash": "9005daf969de0b50134493a2c00078b49f5f5b39d021cda7c89bf4d4f3d776d3",
|
|
3534
|
+
"url": "https://github.com/terraform-docs/terraform-docs/releases/download/v0.24.0/terraform-docs-v0.24.0-linux-amd64.tar.gz"
|
|
3535
|
+
} },
|
|
3536
|
+
"arm64": { "glibc": {
|
|
3537
|
+
"binaryPath": "terraform-docs-v0.24.0/terraform-docs",
|
|
3538
|
+
"contentType": "tar.gz",
|
|
3539
|
+
"hash": "d12bd7b73c1fc9c64efc79f8157dd713dabd559f1ecf3cfc0f42e32279a155fd",
|
|
3540
|
+
"url": "https://github.com/terraform-docs/terraform-docs/releases/download/v0.24.0/terraform-docs-v0.24.0-linux-arm64.tar.gz"
|
|
3541
|
+
} }
|
|
3542
|
+
},
|
|
3543
|
+
"windows": {
|
|
3544
|
+
"amd64": { "unknown": {
|
|
3545
|
+
"binaryPath": "terraform-docs-v0.24.0/terraform-docs.exe",
|
|
3546
|
+
"contentType": "zip",
|
|
3547
|
+
"hash": "afc02cbdf63726d3e5fb26a077ca1f24acd4820d7e44c21b03a3e030f9266490",
|
|
3548
|
+
"url": "https://github.com/terraform-docs/terraform-docs/releases/download/v0.24.0/terraform-docs-v0.24.0-windows-amd64.zip"
|
|
3549
|
+
} },
|
|
3550
|
+
"arm64": { "unknown": {
|
|
3551
|
+
"binaryPath": "terraform-docs-v0.24.0/terraform-docs.exe",
|
|
3552
|
+
"contentType": "zip",
|
|
3553
|
+
"hash": "1168c12929531ac9132c97fff794ef531ebb2a5b54c41870b9e19911950b6fd4",
|
|
3554
|
+
"url": "https://github.com/terraform-docs/terraform-docs/releases/download/v0.24.0/terraform-docs-v0.24.0-windows-arm64.zip"
|
|
3555
|
+
} }
|
|
3556
|
+
}
|
|
3557
|
+
},
|
|
3558
|
+
"configHash": "2fbb0ac30253bd31f794c31691269fff"
|
|
3559
|
+
},
|
|
3560
|
+
"terragrunt": {
|
|
3561
|
+
"binaries": {
|
|
3562
|
+
"darwin": {
|
|
3563
|
+
"amd64": { "unknown": {
|
|
3564
|
+
"binaryPath": "terragrunt_darwin_amd64",
|
|
3565
|
+
"contentType": "tar.gz",
|
|
3566
|
+
"hash": "a46ded9782f2891faf27ee5e3229369f29f4097128660eadd5e9955638423eee",
|
|
3567
|
+
"url": "https://github.com/gruntwork-io/terragrunt/releases/download/v1.0.5/terragrunt_darwin_amd64.tar.gz"
|
|
3568
|
+
} },
|
|
3569
|
+
"arm64": { "unknown": {
|
|
3570
|
+
"binaryPath": "terragrunt_darwin_arm64",
|
|
3571
|
+
"contentType": "tar.gz",
|
|
3572
|
+
"hash": "917e1067baf39d9b7cf5702a6ae37b0f617e7296b8743a037f0711fced493a3b",
|
|
3573
|
+
"url": "https://github.com/gruntwork-io/terragrunt/releases/download/v1.0.5/terragrunt_darwin_arm64.tar.gz"
|
|
3574
|
+
} }
|
|
3575
|
+
},
|
|
3576
|
+
"linux": {
|
|
3577
|
+
"amd64": { "glibc": {
|
|
3578
|
+
"binaryPath": "terragrunt_linux_amd64",
|
|
3579
|
+
"contentType": "tar.gz",
|
|
3580
|
+
"hash": "d6bb6d5706c2098c1e6f5825800f7d1338cf6e60d94801841374347ed28fe035",
|
|
3581
|
+
"url": "https://github.com/gruntwork-io/terragrunt/releases/download/v1.0.5/terragrunt_linux_amd64.tar.gz"
|
|
3582
|
+
} },
|
|
3583
|
+
"arm64": { "glibc": {
|
|
3584
|
+
"binaryPath": "terragrunt_linux_arm64",
|
|
3585
|
+
"contentType": "tar.gz",
|
|
3586
|
+
"hash": "4898f5892c48bfe4032d7e1c166faea98b6319e6d6696c8422450b524692ee4c",
|
|
3587
|
+
"url": "https://github.com/gruntwork-io/terragrunt/releases/download/v1.0.5/terragrunt_linux_arm64.tar.gz"
|
|
3588
|
+
} }
|
|
3589
|
+
},
|
|
3590
|
+
"windows": { "amd64": { "unknown": {
|
|
3591
|
+
"contentType": "binary",
|
|
3592
|
+
"hash": "f6d8ae6bfc13c56a9784db8fc85db8baf98d225d0e509f3f14e7cf3b670039e7",
|
|
3593
|
+
"url": "https://github.com/gruntwork-io/terragrunt/releases/download/v1.0.5/terragrunt_windows_amd64.exe"
|
|
3594
|
+
} } }
|
|
3595
|
+
},
|
|
3596
|
+
"configHash": "9a56bcd768fb7886a04a4c6e87824563",
|
|
3597
|
+
"description": "Terragrunt is a flexible orchestration tool that allows Infrastructure as Code written in OpenTofu/Terraform to scale."
|
|
3598
|
+
},
|
|
3342
3599
|
"tflint": {
|
|
3343
3600
|
"binaries": {
|
|
3344
3601
|
"darwin": {
|
|
@@ -3379,6 +3636,104 @@ var binaries = {
|
|
|
3379
3636
|
"configHash": "d6d7730806719ccee31c7b96d4a2b240",
|
|
3380
3637
|
"description": "A Pluggable Terraform Linter"
|
|
3381
3638
|
},
|
|
3639
|
+
"tfupdate": {
|
|
3640
|
+
"binaries": {
|
|
3641
|
+
"darwin": {
|
|
3642
|
+
"amd64": { "unknown": {
|
|
3643
|
+
"binaryPath": "tfupdate-0.9.4/tfupdate",
|
|
3644
|
+
"contentType": "tar.gz",
|
|
3645
|
+
"hash": "b157e3ab5f3d87a6f78ab7c6cb10fdbb654e4633bf6f59c0f15ccd1f25661532",
|
|
3646
|
+
"url": "https://github.com/minamijoyo/tfupdate/releases/download/v0.9.4/tfupdate_0.9.4_darwin_amd64.tar.gz"
|
|
3647
|
+
} },
|
|
3648
|
+
"arm64": { "unknown": {
|
|
3649
|
+
"binaryPath": "tfupdate-0.9.4/tfupdate",
|
|
3650
|
+
"contentType": "tar.gz",
|
|
3651
|
+
"hash": "7cbeaec38fff75b6e7904f7dc09509bc3e96b08183f4460a0b5415d589ba423c",
|
|
3652
|
+
"url": "https://github.com/minamijoyo/tfupdate/releases/download/v0.9.4/tfupdate_0.9.4_darwin_arm64.tar.gz"
|
|
3653
|
+
} }
|
|
3654
|
+
},
|
|
3655
|
+
"linux": {
|
|
3656
|
+
"amd64": { "glibc": {
|
|
3657
|
+
"binaryPath": "tfupdate-0.9.4/tfupdate",
|
|
3658
|
+
"contentType": "tar.gz",
|
|
3659
|
+
"hash": "fbaecf2d6b4180792239076f917c35d12a8a67c7b223b8e9a36ab3852d4913e3",
|
|
3660
|
+
"url": "https://github.com/minamijoyo/tfupdate/releases/download/v0.9.4/tfupdate_0.9.4_linux_amd64.tar.gz"
|
|
3661
|
+
} },
|
|
3662
|
+
"arm64": { "glibc": {
|
|
3663
|
+
"binaryPath": "tfupdate-0.9.4/tfupdate",
|
|
3664
|
+
"contentType": "tar.gz",
|
|
3665
|
+
"hash": "0d2d0928430e88d62378bc416134f75181c1046285d6b7d1e5f3cf6e2e8d795d",
|
|
3666
|
+
"url": "https://github.com/minamijoyo/tfupdate/releases/download/v0.9.4/tfupdate_0.9.4_linux_arm64.tar.gz"
|
|
3667
|
+
} }
|
|
3668
|
+
},
|
|
3669
|
+
"windows": {
|
|
3670
|
+
"amd64": { "unknown": {
|
|
3671
|
+
"binaryPath": "tfupdate-0.9.4/tfupdate.exe",
|
|
3672
|
+
"contentType": "tar.gz",
|
|
3673
|
+
"hash": "5f58fc13b13d949565e5f761ecf7d8fa33d68e8333eb14b3972e60220b772149",
|
|
3674
|
+
"url": "https://github.com/minamijoyo/tfupdate/releases/download/v0.9.4/tfupdate_0.9.4_windows_amd64.tar.gz"
|
|
3675
|
+
} },
|
|
3676
|
+
"arm64": { "unknown": {
|
|
3677
|
+
"binaryPath": "tfupdate-0.9.4/tfupdate.exe",
|
|
3678
|
+
"contentType": "tar.gz",
|
|
3679
|
+
"hash": "c9fd99679f54e6743f0e0f34e8e3ad089f2ef79076175c703e56586417d4bb86",
|
|
3680
|
+
"url": "https://github.com/minamijoyo/tfupdate/releases/download/v0.9.4/tfupdate_0.9.4_windows_arm64.tar.gz"
|
|
3681
|
+
} }
|
|
3682
|
+
}
|
|
3683
|
+
},
|
|
3684
|
+
"configHash": "d8fdcdee8b76ec30220cb1305b4c2182"
|
|
3685
|
+
},
|
|
3686
|
+
"tofu": {
|
|
3687
|
+
"binaries": {
|
|
3688
|
+
"darwin": {
|
|
3689
|
+
"amd64": { "unknown": {
|
|
3690
|
+
"binaryPath": "tofu-1.12.0/tofu",
|
|
3691
|
+
"contentType": "tar.gz",
|
|
3692
|
+
"hash": "472a9b14bd9fc617b58dd00cf39411f64bd6fff6474d968a7ce041f33e991e72",
|
|
3693
|
+
"url": "https://github.com/opentofu/opentofu/releases/download/v1.12.0/tofu_1.12.0_darwin_amd64.tar.gz"
|
|
3694
|
+
} },
|
|
3695
|
+
"arm64": { "unknown": {
|
|
3696
|
+
"binaryPath": "tofu-1.12.0/tofu",
|
|
3697
|
+
"contentType": "tar.gz",
|
|
3698
|
+
"hash": "9ad35307131102371d770cfc1a9806225fd5040acf1a3d3d8c3b5ad5418cd454",
|
|
3699
|
+
"url": "https://github.com/opentofu/opentofu/releases/download/v1.12.0/tofu_1.12.0_darwin_arm64.tar.gz"
|
|
3700
|
+
} }
|
|
3701
|
+
},
|
|
3702
|
+
"freebsd": { "amd64": { "unknown": {
|
|
3703
|
+
"binaryPath": "tofu-1.12.0/tofu",
|
|
3704
|
+
"contentType": "tar.gz",
|
|
3705
|
+
"hash": "ce2bf02629f57bb0e22ab461e28f2e7484c91bec8a547c63f8ce092d05da201f",
|
|
3706
|
+
"url": "https://github.com/opentofu/opentofu/releases/download/v1.12.0/tofu_1.12.0_freebsd_amd64.tar.gz"
|
|
3707
|
+
} } },
|
|
3708
|
+
"linux": {
|
|
3709
|
+
"amd64": { "glibc": {
|
|
3710
|
+
"binaryPath": "tofu-1.12.0/tofu",
|
|
3711
|
+
"contentType": "tar.gz",
|
|
3712
|
+
"hash": "5fe1da79e7779538a13713809e83abe1238b95a7abd43ecffc6161af10b0ddf7",
|
|
3713
|
+
"url": "https://github.com/opentofu/opentofu/releases/download/v1.12.0/tofu_1.12.0_linux_amd64.tar.gz"
|
|
3714
|
+
} },
|
|
3715
|
+
"arm64": { "glibc": {
|
|
3716
|
+
"binaryPath": "tofu-1.12.0/tofu",
|
|
3717
|
+
"contentType": "tar.gz",
|
|
3718
|
+
"hash": "2c7f48f95678cf75bbe34b66eeee35de75e6ee46e2ec4b55f80a0d93445f47d8",
|
|
3719
|
+
"url": "https://github.com/opentofu/opentofu/releases/download/v1.12.0/tofu_1.12.0_linux_arm64.tar.gz"
|
|
3720
|
+
} }
|
|
3721
|
+
},
|
|
3722
|
+
"openbsd": { "amd64": { "unknown": {
|
|
3723
|
+
"binaryPath": "tofu-1.12.0/tofu",
|
|
3724
|
+
"contentType": "tar.gz",
|
|
3725
|
+
"hash": "9425c0b66cc7eae18f37a9369ef94fc420afd582713c9eae8eb00d9bb98c2625",
|
|
3726
|
+
"url": "https://github.com/opentofu/opentofu/releases/download/v1.12.0/tofu_1.12.0_openbsd_amd64.tar.gz"
|
|
3727
|
+
} } },
|
|
3728
|
+
"windows": { "amd64": { "unknown": {
|
|
3729
|
+
"binaryPath": "tofu-1.12.0/tofu.exe",
|
|
3730
|
+
"contentType": "tar.gz",
|
|
3731
|
+
"hash": "5900eb95e934c4cebb22a487cfa372710dd1f0234400c1c16c0db63b8485e6ce",
|
|
3732
|
+
"url": "https://github.com/opentofu/opentofu/releases/download/v1.12.0/tofu_1.12.0_windows_amd64.tar.gz"
|
|
3733
|
+
} } }
|
|
3734
|
+
},
|
|
3735
|
+
"configHash": "e73e34c4c164a4493125ef2eda47f4c3"
|
|
3736
|
+
},
|
|
3382
3737
|
"tombi": {
|
|
3383
3738
|
"binaries": {
|
|
3384
3739
|
"darwin": {
|
|
@@ -4023,29 +4378,46 @@ var zensical = {
|
|
|
4023
4378
|
//#endregion
|
|
4024
4379
|
//#region src/datamitsu-config/apps.ts
|
|
4025
4380
|
const requiredGithubApps = new Set(["lefthook"]);
|
|
4381
|
+
const githubApps = Object.entries(binaries).reduce((acc, [key, el]) => {
|
|
4382
|
+
acc[key] = {
|
|
4383
|
+
binary: {
|
|
4384
|
+
binaries: el.binaries,
|
|
4385
|
+
version: apps[key].tag
|
|
4386
|
+
},
|
|
4387
|
+
description: el.description ?? void 0,
|
|
4388
|
+
required: requiredGithubApps.has(key)
|
|
4389
|
+
};
|
|
4390
|
+
if (["air", "kubeconform"].includes(key)) acc[key].versionCheck = { args: ["-v"] };
|
|
4391
|
+
if ([
|
|
4392
|
+
"cosign",
|
|
4393
|
+
"crane",
|
|
4394
|
+
"dasel",
|
|
4395
|
+
"gcrane",
|
|
4396
|
+
"kube-linter",
|
|
4397
|
+
"scorecard",
|
|
4398
|
+
"sqlc",
|
|
4399
|
+
"terraform-docs",
|
|
4400
|
+
"tofu",
|
|
4401
|
+
"vacuum"
|
|
4402
|
+
].includes(key)) acc[key].versionCheck = { args: ["version"] };
|
|
4403
|
+
return acc;
|
|
4404
|
+
}, {});
|
|
4405
|
+
const externalApps = Object.entries(binaries$1).reduce((acc, [key, el]) => {
|
|
4406
|
+
const binaries = el.binaries;
|
|
4407
|
+
const app = apps$1[key];
|
|
4408
|
+
acc[key] = {
|
|
4409
|
+
binary: {
|
|
4410
|
+
binaries,
|
|
4411
|
+
version: app.version
|
|
4412
|
+
},
|
|
4413
|
+
description: el.description ?? void 0
|
|
4414
|
+
};
|
|
4415
|
+
if (app.versionCheck) acc[key].versionCheck = app.versionCheck;
|
|
4416
|
+
return acc;
|
|
4417
|
+
}, {});
|
|
4026
4418
|
const mapOfApps = {
|
|
4027
|
-
...
|
|
4028
|
-
|
|
4029
|
-
binary: {
|
|
4030
|
-
binaries: el.binaries,
|
|
4031
|
-
version: apps[key].tag
|
|
4032
|
-
},
|
|
4033
|
-
description: el.description ?? void 0,
|
|
4034
|
-
required: requiredGithubApps.has(key)
|
|
4035
|
-
};
|
|
4036
|
-
if (["air", "kubeconform"].includes(key)) acc[key].versionCheck = { args: ["-v"] };
|
|
4037
|
-
if ([
|
|
4038
|
-
"cosign",
|
|
4039
|
-
"crane",
|
|
4040
|
-
"dasel",
|
|
4041
|
-
"gcrane",
|
|
4042
|
-
"kube-linter",
|
|
4043
|
-
"scorecard",
|
|
4044
|
-
"sqlc",
|
|
4045
|
-
"vacuum"
|
|
4046
|
-
].includes(key)) acc[key].versionCheck = { args: ["version"] };
|
|
4047
|
-
return acc;
|
|
4048
|
-
}, {}),
|
|
4419
|
+
...githubApps,
|
|
4420
|
+
...externalApps,
|
|
4049
4421
|
bandit: {
|
|
4050
4422
|
description: bandit.description,
|
|
4051
4423
|
uv: {
|
|
@@ -4088,8 +4460,16 @@ const mapOfApps = {
|
|
|
4088
4460
|
}
|
|
4089
4461
|
},
|
|
4090
4462
|
knip: knipApp,
|
|
4463
|
+
ktfmt: {
|
|
4464
|
+
description: "A program that reformats Kotlin source code to comply with the common community standard for Kotlin code conventions.",
|
|
4465
|
+
jvm: {
|
|
4466
|
+
jarHash: "f39bf9a1f520d27f86f2bdf4d6dbb2574c05e84f656171ed65c4e534b86b9965",
|
|
4467
|
+
jarUrl: "https://github.com/facebook/ktfmt/releases/download/v0.62/ktfmt-0.62-with-dependencies.jar",
|
|
4468
|
+
version: "v0.62"
|
|
4469
|
+
}
|
|
4470
|
+
},
|
|
4091
4471
|
ktlint: {
|
|
4092
|
-
description:
|
|
4472
|
+
description: "An anti-bikeshedding Kotlin linter with built-in formatter",
|
|
4093
4473
|
jvm: {
|
|
4094
4474
|
jarHash: "a3fd620207d5c40da6ca789b95e7f823c54e854b7fade7f613e91096a3706d75",
|
|
4095
4475
|
jarUrl: "https://github.com/pinterest/ktlint/releases/download/1.8.0/ktlint",
|
|
@@ -4283,7 +4663,7 @@ const mapOfApps = {
|
|
|
4283
4663
|
//#endregion
|
|
4284
4664
|
//#region package.json
|
|
4285
4665
|
var name = "@shibanet0/datamitsu-config";
|
|
4286
|
-
var version = "0.1.
|
|
4666
|
+
var version = "0.1.1";
|
|
4287
4667
|
const oxlintConfig = {
|
|
4288
4668
|
$schema: `./node_modules/${name}/oxlint_configuration_schema.json`,
|
|
4289
4669
|
categories: {
|
|
@@ -4363,13 +4743,14 @@ function upgradeAgentsReference(content) {
|
|
|
4363
4743
|
const lines = content.split("\n");
|
|
4364
4744
|
for (const pattern of Object.values(AGENTS_REFERENCE_PATTERNS)) for (let i = 0; i < lines.length; i++) {
|
|
4365
4745
|
const line = lines[i];
|
|
4366
|
-
if (
|
|
4367
|
-
|
|
4368
|
-
|
|
4369
|
-
|
|
4370
|
-
|
|
4746
|
+
if (line) {
|
|
4747
|
+
const trimmed = line.trim();
|
|
4748
|
+
if (pattern.oldPatterns.some((oldPattern) => trimmed === oldPattern)) {
|
|
4749
|
+
lines[i] = pattern.canonical;
|
|
4750
|
+
return lines.join("\n");
|
|
4751
|
+
}
|
|
4752
|
+
if (trimmed === pattern.canonical) return content;
|
|
4371
4753
|
}
|
|
4372
|
-
if (trimmed === pattern.canonical) return content;
|
|
4373
4754
|
}
|
|
4374
4755
|
return content;
|
|
4375
4756
|
}
|
|
@@ -4525,6 +4906,17 @@ const ignoreGroups = {
|
|
|
4525
4906
|
"**/secrets.yml",
|
|
4526
4907
|
"**/secrets.json"
|
|
4527
4908
|
],
|
|
4909
|
+
"Terraform & Terragrunt": [
|
|
4910
|
+
"**/.terraform/",
|
|
4911
|
+
"**/.terragrunt-cache/",
|
|
4912
|
+
"**/*.tfstate",
|
|
4913
|
+
"**/*.tfstate.backup",
|
|
4914
|
+
"**/crash.log",
|
|
4915
|
+
"**/override.tf",
|
|
4916
|
+
"**/override.tf.json",
|
|
4917
|
+
"**/*_override.tf",
|
|
4918
|
+
"**/*_override.tf.json"
|
|
4919
|
+
],
|
|
4528
4920
|
Testing: [
|
|
4529
4921
|
"**/coverage/",
|
|
4530
4922
|
"**/*.cov",
|
|
@@ -6789,6 +7181,82 @@ function escapeRegExp(string) {
|
|
|
6789
7181
|
return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
6790
7182
|
}
|
|
6791
7183
|
const setup = {
|
|
7184
|
+
".datamitsu/scripts/check-empty-files.sh": {
|
|
7185
|
+
content: () => {
|
|
7186
|
+
return [
|
|
7187
|
+
"#!/usr/bin/env bash",
|
|
7188
|
+
"",
|
|
7189
|
+
"# Check for empty files",
|
|
7190
|
+
"for file in \"$@\"; do",
|
|
7191
|
+
" if [ ! -f \"$file\" ]; then",
|
|
7192
|
+
" echo \"Error: File not found: $file\"",
|
|
7193
|
+
" exit 1",
|
|
7194
|
+
" fi",
|
|
7195
|
+
"",
|
|
7196
|
+
" # Check if file has no content or only whitespace",
|
|
7197
|
+
` if [ ! -s "$file" ] || [ -z "$(tr -d '[:space:]' < "$file")" ]; then`,
|
|
7198
|
+
" echo \"Error: Empty file detected: $file\"",
|
|
7199
|
+
" exit 1",
|
|
7200
|
+
" fi",
|
|
7201
|
+
"done",
|
|
7202
|
+
"",
|
|
7203
|
+
"exit 0",
|
|
7204
|
+
""
|
|
7205
|
+
].join("\n");
|
|
7206
|
+
},
|
|
7207
|
+
scope: "git-root"
|
|
7208
|
+
},
|
|
7209
|
+
".datamitsu/scripts/format-terraform-spacing.sh": {
|
|
7210
|
+
content: () => {
|
|
7211
|
+
return [
|
|
7212
|
+
"#!/usr/bin/env bash",
|
|
7213
|
+
"",
|
|
7214
|
+
"# Terraform entities that should have blank lines before them",
|
|
7215
|
+
"TERRAFORM_ENTITIES=(",
|
|
7216
|
+
" \"variable\"",
|
|
7217
|
+
" \"resource\"",
|
|
7218
|
+
" \"data\"",
|
|
7219
|
+
" \"output\"",
|
|
7220
|
+
" \"locals\"",
|
|
7221
|
+
" \"module\"",
|
|
7222
|
+
" \"terraform\"",
|
|
7223
|
+
" \"provider\"",
|
|
7224
|
+
")",
|
|
7225
|
+
"",
|
|
7226
|
+
"# Cross-platform sed in-place",
|
|
7227
|
+
"if sed --version 2>/dev/null | grep -q GNU; then",
|
|
7228
|
+
" sed_inplace() { sed -i \"$@\"; }",
|
|
7229
|
+
"else",
|
|
7230
|
+
` sed_inplace() { sed -i '' "$@"; }`,
|
|
7231
|
+
"fi",
|
|
7232
|
+
"",
|
|
7233
|
+
"for file in \"$@\"; do",
|
|
7234
|
+
" # Step 1: Add 3 blank lines before each Terraform entity",
|
|
7235
|
+
" temp_file=$(mktemp)",
|
|
7236
|
+
" cp \"$file\" \"$temp_file\"",
|
|
7237
|
+
"",
|
|
7238
|
+
" for entity in \"${TERRAFORM_ENTITIES[@]}\"; do",
|
|
7239
|
+
" # Match entity at the beginning of line (with optional spaces)",
|
|
7240
|
+
" # Replace with 3 newlines + the matched line",
|
|
7241
|
+
` sed_inplace "s/^[[:space:]]*\${entity}[[:space:]]*\\"/\\n\\n\\n\${entity} \\"/g" "$temp_file"`,
|
|
7242
|
+
" done",
|
|
7243
|
+
"",
|
|
7244
|
+
" # Step 2: Remove duplicate blank lines (keep max 1 consecutive blank line)",
|
|
7245
|
+
` awk 'BEGIN{blank=0} /^[[:space:]]*$/{blank++; if(blank<=1) print; next} {blank=0; print}' "$temp_file" > "$temp_file.2"`,
|
|
7246
|
+
"",
|
|
7247
|
+
" # Step 3: Remove leading blank lines",
|
|
7248
|
+
` sed_inplace '1{/^[[:space:]]*$/d;}' "$temp_file.2"`,
|
|
7249
|
+
"",
|
|
7250
|
+
" # Move the result back to the original file",
|
|
7251
|
+
" mv \"$temp_file.2\" \"$file\"",
|
|
7252
|
+
" rm -f \"$temp_file\"",
|
|
7253
|
+
"done",
|
|
7254
|
+
""
|
|
7255
|
+
].join("\n");
|
|
7256
|
+
},
|
|
7257
|
+
projectTypes: ["terraform-project", "terragrunt-project"],
|
|
7258
|
+
scope: "git-root"
|
|
7259
|
+
},
|
|
6792
7260
|
".dockerignore": {
|
|
6793
7261
|
content: (context) => {
|
|
6794
7262
|
const mergedRules = tools.Ignore.parse([tools.Ignore.stringify(ignoreGroups), filterIgnore(context.originalContent || "")].join("\n"));
|
|
@@ -6868,7 +7336,8 @@ const setup = {
|
|
|
6868
7336
|
...existingExtend,
|
|
6869
7337
|
path: MANAGED_EXTEND_PATH
|
|
6870
7338
|
},
|
|
6871
|
-
title
|
|
7339
|
+
title,
|
|
7340
|
+
useDefault: void 0
|
|
6872
7341
|
});
|
|
6873
7342
|
},
|
|
6874
7343
|
otherFileNameList: ["gitleaks.toml"],
|
|
@@ -7158,6 +7627,22 @@ const setup = {
|
|
|
7158
7627
|
scope: "git-root",
|
|
7159
7628
|
tools: ["syncpack"]
|
|
7160
7629
|
},
|
|
7630
|
+
".tflint.hcl": {
|
|
7631
|
+
content: (context) => {
|
|
7632
|
+
const existing = context.originalContent || "";
|
|
7633
|
+
if (existing.trim().length > 0) return existing;
|
|
7634
|
+
return [
|
|
7635
|
+
`plugin "terraform" {`,
|
|
7636
|
+
` enabled = true`,
|
|
7637
|
+
` preset = "recommended"`,
|
|
7638
|
+
`}`,
|
|
7639
|
+
``
|
|
7640
|
+
].join("\n");
|
|
7641
|
+
},
|
|
7642
|
+
projectTypes: ["terraform-project"],
|
|
7643
|
+
scope: "git-root",
|
|
7644
|
+
tools: ["tflint"]
|
|
7645
|
+
},
|
|
7161
7646
|
".tombi.toml": {
|
|
7162
7647
|
content: (context) => {
|
|
7163
7648
|
const data = TOML.parse(context.originalContent || "");
|
|
@@ -7821,6 +8306,10 @@ const projectTypes = {
|
|
|
7821
8306
|
description: "Go module",
|
|
7822
8307
|
markers: ["**/go.mod"]
|
|
7823
8308
|
},
|
|
8309
|
+
"helm-chart": {
|
|
8310
|
+
description: "Helm chart",
|
|
8311
|
+
markers: ["**/Chart.yaml"]
|
|
8312
|
+
},
|
|
7824
8313
|
"npm-package": {
|
|
7825
8314
|
description: "Node.js/npm project",
|
|
7826
8315
|
markers: ["**/package.json"]
|
|
@@ -7841,6 +8330,10 @@ const projectTypes = {
|
|
|
7841
8330
|
description: "Terraform infrastructure",
|
|
7842
8331
|
markers: ["**/*.tf"]
|
|
7843
8332
|
},
|
|
8333
|
+
"terragrunt-project": {
|
|
8334
|
+
description: "Terragrunt infrastructure",
|
|
8335
|
+
markers: ["**/terragrunt.hcl"]
|
|
8336
|
+
},
|
|
7844
8337
|
"turbo-package": {
|
|
7845
8338
|
description: "turbo project",
|
|
7846
8339
|
markers: ["turbo.json"]
|
|
@@ -8121,6 +8614,7 @@ var runtimes_default = {
|
|
|
8121
8614
|
};
|
|
8122
8615
|
//#endregion
|
|
8123
8616
|
//#region src/datamitsu-config/globs.ts
|
|
8617
|
+
const actionlintGlobs = ["**/.github/workflows/*.yml", "**/.github/workflows/*.yaml"];
|
|
8124
8618
|
const dockerfileGlobs = [
|
|
8125
8619
|
"**/Dockerfile",
|
|
8126
8620
|
"**/Dockerfile.*",
|
|
@@ -8146,7 +8640,19 @@ const eslintGlobs = [
|
|
|
8146
8640
|
"**/*.jsonc",
|
|
8147
8641
|
"**/*.json5"
|
|
8148
8642
|
];
|
|
8643
|
+
const helmGlobs = [
|
|
8644
|
+
"**/Chart.yaml",
|
|
8645
|
+
"**/values.yaml",
|
|
8646
|
+
"**/templates/**/*.yaml",
|
|
8647
|
+
"**/templates/**/*.yml",
|
|
8648
|
+
"**/templates/**/*.tpl"
|
|
8649
|
+
];
|
|
8149
8650
|
const jsonGlobs = ["**/*.json"];
|
|
8651
|
+
const makefileGlobs = [
|
|
8652
|
+
"**/Makefile",
|
|
8653
|
+
"**/GNUmakefile",
|
|
8654
|
+
"**/*.mk"
|
|
8655
|
+
];
|
|
8150
8656
|
const markdownGlobs = ["**/*.md", "**/*.markdown"];
|
|
8151
8657
|
const jsonExcludeGlobs = ["**/package.json", "**/package-lock.json"];
|
|
8152
8658
|
const oxlintGlobs = [
|
|
@@ -8195,6 +8701,7 @@ const prettierGlobs = [
|
|
|
8195
8701
|
"**/*.md"
|
|
8196
8702
|
];
|
|
8197
8703
|
const propertiesGlobs = ["**/*.properties"];
|
|
8704
|
+
const protoGlobs = ["**/*.proto"];
|
|
8198
8705
|
const shellGlobs = ["**/*.sh", "**/*.bash"];
|
|
8199
8706
|
const tomlGlobs = ["**/*.toml"];
|
|
8200
8707
|
const typescriptGlobs = [
|
|
@@ -8214,8 +8721,10 @@ const toPriorityMap = (list) => [...new Set(list)].reduce((acc, el, i) => {
|
|
|
8214
8721
|
return acc;
|
|
8215
8722
|
}, {});
|
|
8216
8723
|
const _fixPriority = [
|
|
8724
|
+
"typos",
|
|
8217
8725
|
"syncpack",
|
|
8218
8726
|
"oxlint",
|
|
8727
|
+
"protolint",
|
|
8219
8728
|
"yq-json",
|
|
8220
8729
|
"yq-properties",
|
|
8221
8730
|
"eslint",
|
|
@@ -8223,17 +8732,26 @@ const _fixPriority = [
|
|
|
8223
8732
|
"oxfmt",
|
|
8224
8733
|
"sort-package-json",
|
|
8225
8734
|
"golangci-lint",
|
|
8735
|
+
"ruff",
|
|
8736
|
+
"ruff-format",
|
|
8226
8737
|
"typstyle",
|
|
8227
8738
|
"dotenv-linter",
|
|
8228
8739
|
"shfmt",
|
|
8229
8740
|
"toml",
|
|
8741
|
+
"tflint",
|
|
8742
|
+
"terraform-fmt",
|
|
8743
|
+
"terragrunt-fmt",
|
|
8744
|
+
"terraform-docs",
|
|
8230
8745
|
"yq-yaml",
|
|
8231
8746
|
"yamlfmt",
|
|
8232
8747
|
"pre-commit"
|
|
8233
8748
|
];
|
|
8234
8749
|
const _lintPriority = [
|
|
8750
|
+
"typos",
|
|
8235
8751
|
"syncpack",
|
|
8236
8752
|
"oxlint",
|
|
8753
|
+
"protolint",
|
|
8754
|
+
"actionlint",
|
|
8237
8755
|
"tsc",
|
|
8238
8756
|
"tsgo",
|
|
8239
8757
|
"cspell",
|
|
@@ -8251,14 +8769,60 @@ const _lintPriority = [
|
|
|
8251
8769
|
"shfmt",
|
|
8252
8770
|
"shellcheck",
|
|
8253
8771
|
"hadolint",
|
|
8772
|
+
"checkmake",
|
|
8773
|
+
"helm",
|
|
8254
8774
|
"toml",
|
|
8775
|
+
"tflint",
|
|
8776
|
+
"terraform-fmt",
|
|
8255
8777
|
"yamlfmt",
|
|
8256
|
-
"yamllint"
|
|
8778
|
+
"yamllint",
|
|
8779
|
+
"lychee",
|
|
8780
|
+
"grype",
|
|
8781
|
+
"trivy",
|
|
8782
|
+
"osv-scanner",
|
|
8783
|
+
"bearer"
|
|
8257
8784
|
];
|
|
8258
8785
|
const fixPriority = toPriorityMap(_fixPriority);
|
|
8259
8786
|
const lintPriority = toPriorityMap(_lintPriority);
|
|
8260
8787
|
const isCI = facts().env.CI === "true" || facts().env.CI === "1";
|
|
8261
8788
|
const toolsConfig = {
|
|
8789
|
+
actionlint: {
|
|
8790
|
+
name: "actionlint - GitHub Actions Workflow Linter",
|
|
8791
|
+
operations: { lint: {
|
|
8792
|
+
app: "actionlint",
|
|
8793
|
+
args: ["-color", "{file}"],
|
|
8794
|
+
globs: actionlintGlobs,
|
|
8795
|
+
priority: lintPriority.actionlint,
|
|
8796
|
+
scope: "per-file"
|
|
8797
|
+
} }
|
|
8798
|
+
},
|
|
8799
|
+
bearer: {
|
|
8800
|
+
name: "Bearer - Static Application Security Testing",
|
|
8801
|
+
operations: { lint: {
|
|
8802
|
+
app: "bearer",
|
|
8803
|
+
args: [
|
|
8804
|
+
"scan",
|
|
8805
|
+
"--exit-code",
|
|
8806
|
+
"1",
|
|
8807
|
+
"{root}"
|
|
8808
|
+
],
|
|
8809
|
+
globs: ["**/*"],
|
|
8810
|
+
priority: lintPriority.bearer,
|
|
8811
|
+
scope: "repository"
|
|
8812
|
+
} },
|
|
8813
|
+
skip: !isCI,
|
|
8814
|
+
skipReason: "runs in CI only"
|
|
8815
|
+
},
|
|
8816
|
+
checkmake: {
|
|
8817
|
+
name: "checkmake - Makefile Linter",
|
|
8818
|
+
operations: { lint: {
|
|
8819
|
+
app: "checkmake",
|
|
8820
|
+
args: ["{file}"],
|
|
8821
|
+
globs: makefileGlobs,
|
|
8822
|
+
priority: lintPriority.checkmake,
|
|
8823
|
+
scope: "per-file"
|
|
8824
|
+
} }
|
|
8825
|
+
},
|
|
8262
8826
|
cspell: {
|
|
8263
8827
|
name: "CSpell - A Spelling Checker for Code!",
|
|
8264
8828
|
operations: { lint: {
|
|
@@ -8398,6 +8962,22 @@ const toolsConfig = {
|
|
|
8398
8962
|
} },
|
|
8399
8963
|
projectTypes: ["golang-package"]
|
|
8400
8964
|
},
|
|
8965
|
+
grype: {
|
|
8966
|
+
name: "Grype - Vulnerability Scanner",
|
|
8967
|
+
operations: { lint: {
|
|
8968
|
+
app: "grype",
|
|
8969
|
+
args: [
|
|
8970
|
+
"dir:{root}",
|
|
8971
|
+
"--fail-on",
|
|
8972
|
+
"high"
|
|
8973
|
+
],
|
|
8974
|
+
globs: ["**/*"],
|
|
8975
|
+
priority: lintPriority.grype,
|
|
8976
|
+
scope: "repository"
|
|
8977
|
+
} },
|
|
8978
|
+
skip: !isCI,
|
|
8979
|
+
skipReason: "runs in CI only"
|
|
8980
|
+
},
|
|
8401
8981
|
hadolint: {
|
|
8402
8982
|
name: "hadolint - Dockerfile Linter",
|
|
8403
8983
|
operations: { lint: {
|
|
@@ -8431,6 +9011,17 @@ const toolsConfig = {
|
|
|
8431
9011
|
scope: "repository"
|
|
8432
9012
|
} }
|
|
8433
9013
|
},
|
|
9014
|
+
helm: {
|
|
9015
|
+
name: "Helm - The Kubernetes Package Manager",
|
|
9016
|
+
operations: { lint: {
|
|
9017
|
+
app: "helm",
|
|
9018
|
+
args: ["lint", "{cwd}"],
|
|
9019
|
+
globs: helmGlobs,
|
|
9020
|
+
priority: lintPriority.helm,
|
|
9021
|
+
scope: "per-project"
|
|
9022
|
+
} },
|
|
9023
|
+
projectTypes: ["helm-chart"]
|
|
9024
|
+
},
|
|
8434
9025
|
knip: {
|
|
8435
9026
|
name: "Knip - Find unused files, dependencies, and exports",
|
|
8436
9027
|
operations: { lint: {
|
|
@@ -8441,6 +9032,36 @@ const toolsConfig = {
|
|
|
8441
9032
|
} },
|
|
8442
9033
|
projectTypes: ["npm-package", "typescript-project"]
|
|
8443
9034
|
},
|
|
9035
|
+
lychee: {
|
|
9036
|
+
name: "lychee - Link Checker",
|
|
9037
|
+
operations: { lint: {
|
|
9038
|
+
app: "lychee",
|
|
9039
|
+
args: ["--no-progress", "{files}"],
|
|
9040
|
+
batch: true,
|
|
9041
|
+
globs: markdownGlobs,
|
|
9042
|
+
priority: lintPriority.lychee,
|
|
9043
|
+
scope: "repository"
|
|
9044
|
+
} },
|
|
9045
|
+
skip: !isCI,
|
|
9046
|
+
skipReason: "runs in CI only (network access)"
|
|
9047
|
+
},
|
|
9048
|
+
"osv-scanner": {
|
|
9049
|
+
name: "OSV-Scanner - Vulnerability Scanner",
|
|
9050
|
+
operations: { lint: {
|
|
9051
|
+
app: "osv-scanner",
|
|
9052
|
+
args: [
|
|
9053
|
+
"scan",
|
|
9054
|
+
"source",
|
|
9055
|
+
"--recursive",
|
|
9056
|
+
"{root}"
|
|
9057
|
+
],
|
|
9058
|
+
globs: ["**/*"],
|
|
9059
|
+
priority: lintPriority["osv-scanner"],
|
|
9060
|
+
scope: "repository"
|
|
9061
|
+
} },
|
|
9062
|
+
skip: !isCI,
|
|
9063
|
+
skipReason: "runs in CI only"
|
|
9064
|
+
},
|
|
8444
9065
|
oxfmt: {
|
|
8445
9066
|
name: "oxfmt - The JavaScript Oxidation Compiler Formatter",
|
|
8446
9067
|
operations: {
|
|
@@ -8554,6 +9175,91 @@ const toolsConfig = {
|
|
|
8554
9175
|
},
|
|
8555
9176
|
projectTypes: ["npm-package", "typescript-project"]
|
|
8556
9177
|
},
|
|
9178
|
+
protolint: {
|
|
9179
|
+
name: "protolint - Protocol Buffer Linter",
|
|
9180
|
+
operations: {
|
|
9181
|
+
fix: {
|
|
9182
|
+
app: "protolint",
|
|
9183
|
+
args: [
|
|
9184
|
+
"lint",
|
|
9185
|
+
"-fix",
|
|
9186
|
+
"{file}"
|
|
9187
|
+
],
|
|
9188
|
+
globs: protoGlobs,
|
|
9189
|
+
priority: fixPriority.protolint,
|
|
9190
|
+
scope: "per-file"
|
|
9191
|
+
},
|
|
9192
|
+
lint: {
|
|
9193
|
+
app: "protolint",
|
|
9194
|
+
args: ["lint", "{file}"],
|
|
9195
|
+
globs: protoGlobs,
|
|
9196
|
+
priority: lintPriority.protolint,
|
|
9197
|
+
scope: "per-file"
|
|
9198
|
+
}
|
|
9199
|
+
}
|
|
9200
|
+
},
|
|
9201
|
+
ruff: {
|
|
9202
|
+
name: "Ruff - Python Linter",
|
|
9203
|
+
operations: {
|
|
9204
|
+
fix: {
|
|
9205
|
+
app: "ruff",
|
|
9206
|
+
args: [
|
|
9207
|
+
"check",
|
|
9208
|
+
"--fix",
|
|
9209
|
+
"--quiet",
|
|
9210
|
+
"{files}"
|
|
9211
|
+
],
|
|
9212
|
+
batch: true,
|
|
9213
|
+
globs: ["**/*.py", "**/*.pyi"],
|
|
9214
|
+
priority: fixPriority.ruff,
|
|
9215
|
+
scope: "per-project"
|
|
9216
|
+
},
|
|
9217
|
+
lint: {
|
|
9218
|
+
app: "ruff",
|
|
9219
|
+
args: [
|
|
9220
|
+
"check",
|
|
9221
|
+
"--quiet",
|
|
9222
|
+
"{files}"
|
|
9223
|
+
],
|
|
9224
|
+
batch: true,
|
|
9225
|
+
globs: ["**/*.py", "**/*.pyi"],
|
|
9226
|
+
priority: lintPriority.ruff,
|
|
9227
|
+
scope: "per-project"
|
|
9228
|
+
}
|
|
9229
|
+
},
|
|
9230
|
+
projectTypes: ["python-package"]
|
|
9231
|
+
},
|
|
9232
|
+
"ruff-format": {
|
|
9233
|
+
name: "Ruff Format",
|
|
9234
|
+
operations: {
|
|
9235
|
+
fix: {
|
|
9236
|
+
app: "ruff",
|
|
9237
|
+
args: [
|
|
9238
|
+
"format",
|
|
9239
|
+
"--quiet",
|
|
9240
|
+
"{files}"
|
|
9241
|
+
],
|
|
9242
|
+
batch: true,
|
|
9243
|
+
globs: ["**/*.py", "**/*.pyi"],
|
|
9244
|
+
priority: fixPriority["ruff-format"],
|
|
9245
|
+
scope: "per-project"
|
|
9246
|
+
},
|
|
9247
|
+
lint: {
|
|
9248
|
+
app: "ruff",
|
|
9249
|
+
args: [
|
|
9250
|
+
"format",
|
|
9251
|
+
"--check",
|
|
9252
|
+
"--quiet",
|
|
9253
|
+
"{files}"
|
|
9254
|
+
],
|
|
9255
|
+
batch: true,
|
|
9256
|
+
globs: ["**/*.py", "**/*.pyi"],
|
|
9257
|
+
priority: lintPriority["ruff-format"],
|
|
9258
|
+
scope: "per-project"
|
|
9259
|
+
}
|
|
9260
|
+
},
|
|
9261
|
+
projectTypes: ["python-package"]
|
|
9262
|
+
},
|
|
8557
9263
|
shellcheck: {
|
|
8558
9264
|
name: "ShellCheck - Shell Script Linter",
|
|
8559
9265
|
operations: { lint: {
|
|
@@ -8647,6 +9353,101 @@ const toolsConfig = {
|
|
|
8647
9353
|
},
|
|
8648
9354
|
projectTypes: ["npm-package", "typescript-project"]
|
|
8649
9355
|
},
|
|
9356
|
+
"terraform-docs": {
|
|
9357
|
+
name: "terraform-docs",
|
|
9358
|
+
operations: { fix: {
|
|
9359
|
+
app: "terraform-docs",
|
|
9360
|
+
args: [
|
|
9361
|
+
"markdown",
|
|
9362
|
+
"table",
|
|
9363
|
+
"--output-file",
|
|
9364
|
+
"README.md",
|
|
9365
|
+
"--output-mode",
|
|
9366
|
+
"inject",
|
|
9367
|
+
"{cwd}"
|
|
9368
|
+
],
|
|
9369
|
+
globs: ["**/*.tf"],
|
|
9370
|
+
priority: fixPriority["terraform-docs"],
|
|
9371
|
+
scope: "per-project"
|
|
9372
|
+
} },
|
|
9373
|
+
projectTypes: ["terraform-project"]
|
|
9374
|
+
},
|
|
9375
|
+
"terragrunt-fmt": {
|
|
9376
|
+
name: "Terragrunt HCL Format",
|
|
9377
|
+
operations: { fix: {
|
|
9378
|
+
app: "terragrunt",
|
|
9379
|
+
args: ["hclfmt"],
|
|
9380
|
+
globs: ["**/*.hcl"],
|
|
9381
|
+
priority: fixPriority["terragrunt-fmt"],
|
|
9382
|
+
scope: "repository"
|
|
9383
|
+
} },
|
|
9384
|
+
projectTypes: ["terragrunt-project"]
|
|
9385
|
+
},
|
|
9386
|
+
tflint: {
|
|
9387
|
+
name: "TFLint - Terraform Linter",
|
|
9388
|
+
operations: {
|
|
9389
|
+
fix: {
|
|
9390
|
+
app: "tflint",
|
|
9391
|
+
args: [
|
|
9392
|
+
"--fix",
|
|
9393
|
+
"--recursive",
|
|
9394
|
+
"--config",
|
|
9395
|
+
"{root}/.tflint.hcl",
|
|
9396
|
+
"--color",
|
|
9397
|
+
"--minimum-failure-severity=notice",
|
|
9398
|
+
"--call-module-type=none"
|
|
9399
|
+
],
|
|
9400
|
+
globs: ["**/*.tf"],
|
|
9401
|
+
priority: fixPriority.tflint,
|
|
9402
|
+
scope: "per-project"
|
|
9403
|
+
},
|
|
9404
|
+
lint: {
|
|
9405
|
+
app: "tflint",
|
|
9406
|
+
args: [
|
|
9407
|
+
"--recursive",
|
|
9408
|
+
"--config",
|
|
9409
|
+
"{root}/.tflint.hcl",
|
|
9410
|
+
"--color",
|
|
9411
|
+
"--minimum-failure-severity=notice",
|
|
9412
|
+
"--call-module-type=none"
|
|
9413
|
+
],
|
|
9414
|
+
globs: ["**/*.tf"],
|
|
9415
|
+
priority: lintPriority.tflint,
|
|
9416
|
+
scope: "per-project"
|
|
9417
|
+
}
|
|
9418
|
+
},
|
|
9419
|
+
projectTypes: ["terraform-project"]
|
|
9420
|
+
},
|
|
9421
|
+
"tofu-fmt": {
|
|
9422
|
+
name: "OpenTofu fmt",
|
|
9423
|
+
operations: {
|
|
9424
|
+
fix: {
|
|
9425
|
+
app: "tofu",
|
|
9426
|
+
args: [
|
|
9427
|
+
"fmt",
|
|
9428
|
+
"-recursive",
|
|
9429
|
+
"{cwd}"
|
|
9430
|
+
],
|
|
9431
|
+
globs: ["**/*.tf", "**/*.tfvars"],
|
|
9432
|
+
priority: fixPriority["terraform-fmt"],
|
|
9433
|
+
scope: "per-project"
|
|
9434
|
+
},
|
|
9435
|
+
lint: {
|
|
9436
|
+
app: "tofu",
|
|
9437
|
+
args: [
|
|
9438
|
+
"fmt",
|
|
9439
|
+
"-check",
|
|
9440
|
+
"-recursive",
|
|
9441
|
+
"-diff",
|
|
9442
|
+
"{cwd}"
|
|
9443
|
+
],
|
|
9444
|
+
globs: ["**/*.tf", "**/*.tfvars"],
|
|
9445
|
+
priority: lintPriority["terraform-fmt"],
|
|
9446
|
+
scope: "per-project"
|
|
9447
|
+
}
|
|
9448
|
+
},
|
|
9449
|
+
projectTypes: ["terraform-project"]
|
|
9450
|
+
},
|
|
8650
9451
|
tombi: {
|
|
8651
9452
|
name: "🦅 TOML Toolkit 🦅",
|
|
8652
9453
|
operations: {
|
|
@@ -8680,6 +9481,26 @@ const toolsConfig = {
|
|
|
8680
9481
|
}
|
|
8681
9482
|
}
|
|
8682
9483
|
},
|
|
9484
|
+
trivy: {
|
|
9485
|
+
name: "Trivy - Vulnerability and Misconfiguration Scanner",
|
|
9486
|
+
operations: { lint: {
|
|
9487
|
+
app: "trivy",
|
|
9488
|
+
args: [
|
|
9489
|
+
"fs",
|
|
9490
|
+
"--exit-code",
|
|
9491
|
+
"1",
|
|
9492
|
+
"--severity",
|
|
9493
|
+
"HIGH,CRITICAL",
|
|
9494
|
+
"--no-progress",
|
|
9495
|
+
"{root}"
|
|
9496
|
+
],
|
|
9497
|
+
globs: ["**/*"],
|
|
9498
|
+
priority: lintPriority.trivy,
|
|
9499
|
+
scope: "repository"
|
|
9500
|
+
} },
|
|
9501
|
+
skip: !isCI,
|
|
9502
|
+
skipReason: "runs in CI only"
|
|
9503
|
+
},
|
|
8683
9504
|
trufflehog: {
|
|
8684
9505
|
name: "trufflehog",
|
|
8685
9506
|
operations: { lint: {
|
|
@@ -8731,6 +9552,16 @@ const toolsConfig = {
|
|
|
8731
9552
|
} },
|
|
8732
9553
|
projectTypes: ["typescript-project"]
|
|
8733
9554
|
},
|
|
9555
|
+
typos: {
|
|
9556
|
+
name: "typos - Source Code Spell Checker",
|
|
9557
|
+
operations: { lint: {
|
|
9558
|
+
app: "typos",
|
|
9559
|
+
args: ["--format", "brief"],
|
|
9560
|
+
globs: ["**/*"],
|
|
9561
|
+
priority: lintPriority.typos,
|
|
9562
|
+
scope: "repository"
|
|
9563
|
+
} }
|
|
9564
|
+
},
|
|
8734
9565
|
typstyle: {
|
|
8735
9566
|
name: "typstyle - Typst Code Formatter",
|
|
8736
9567
|
operations: {
|
|
@@ -9212,7 +10043,7 @@ function getConfig(cfg) {
|
|
|
9212
10043
|
}
|
|
9213
10044
|
globalThis.getConfig = getConfig;
|
|
9214
10045
|
const getMinVersion = () => {
|
|
9215
|
-
return "0.1.
|
|
10046
|
+
return "0.1.2";
|
|
9216
10047
|
};
|
|
9217
10048
|
globalThis.getMinVersion = getMinVersion;
|
|
9218
10049
|
//#endregion
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
export declare const actionlintGlobs: string[];
|
|
1
2
|
export declare const dockerfileGlobs: string[];
|
|
2
3
|
export declare const dotenvLinterGlobs: string[];
|
|
3
4
|
export declare const eslintGlobs: string[];
|
|
5
|
+
export declare const helmGlobs: string[];
|
|
4
6
|
export declare const jsonGlobs: string[];
|
|
7
|
+
export declare const makefileGlobs: string[];
|
|
5
8
|
export declare const markdownGlobs: string[];
|
|
6
9
|
export declare const jsonExcludeGlobs: string[];
|
|
7
10
|
export declare const oxlintGlobs: string[];
|
|
@@ -9,6 +12,7 @@ export declare const oxfmtGlobs: string[];
|
|
|
9
12
|
export declare const packageJsonGlobs: string[];
|
|
10
13
|
export declare const prettierGlobs: string[];
|
|
11
14
|
export declare const propertiesGlobs: string[];
|
|
15
|
+
export declare const protoGlobs: string[];
|
|
12
16
|
export declare const shellGlobs: string[];
|
|
13
17
|
export declare const tomlGlobs: string[];
|
|
14
18
|
export declare const typescriptGlobs: string[];
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export declare const filterIgnore: (content: string) => string;
|
|
2
|
-
export declare const ignoreGroups: tools.Ignore.IgnoreMap<"Build outputs" | "Cache & temporary files" | "Claude Code project files" | "Codex CLI project files" | "Dependencies" | "Environment" | "Golang specific" | "IDE & OS" | "Logs" | "Other" | "Pulumi" | "ralphex progress logs" | "Security & Secrets" | "Testing">;
|
|
2
|
+
export declare const ignoreGroups: tools.Ignore.IgnoreMap<"Build outputs" | "Cache & temporary files" | "Claude Code project files" | "Codex CLI project files" | "Dependencies" | "Environment" | "Golang specific" | "IDE & OS" | "Logs" | "Other" | "Pulumi" | "ralphex progress logs" | "Security & Secrets" | "Terraform & Terragrunt" | "Testing">;
|
package/dist/s0/index.js
CHANGED
|
@@ -183,8 +183,7 @@ const pulumiCleanup = async () => {
|
|
|
183
183
|
const filesToRemove = [];
|
|
184
184
|
for (const encFile of encryptedFiles) {
|
|
185
185
|
const originalFile = getDecryptedPath(encFile);
|
|
186
|
-
if (
|
|
187
|
-
if (await verifyEncryptedFile(encFile, datamitsu, GPG_TTY)) filesToRemove.push(originalFile);
|
|
186
|
+
if (await fs.access(originalFile).then(() => true).catch(() => false)) if (await verifyEncryptedFile(encFile, datamitsu, GPG_TTY)) filesToRemove.push(originalFile);
|
|
188
187
|
else console.warn(`⚠️ Warning: ${path.relative(process.cwd(), encFile)} failed verification, keeping original`);
|
|
189
188
|
}
|
|
190
189
|
if (filesToRemove.length === 0) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shibanet0/datamitsu-config",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "Shared datamitsu configuration with 79+ managed development tools",
|
|
5
5
|
"keywords": [],
|
|
6
6
|
"repository": {
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
"types": "./dist/datamitsu-api/index.d.ts",
|
|
16
16
|
"default": "./dist/datamitsu-api/index.js"
|
|
17
17
|
},
|
|
18
|
+
"./package.json": "./package.json",
|
|
18
19
|
"./tsconfig/base.json": "./tsconfig/base.json",
|
|
19
20
|
"./tsconfig/infra-pulumi.json": "./tsconfig/infra-pulumi.json",
|
|
20
21
|
"./tsconfig/library.json": "./tsconfig/library.json",
|
|
@@ -24,7 +25,6 @@
|
|
|
24
25
|
"./tsconfig/service-worker.json": "./tsconfig/service-worker.json",
|
|
25
26
|
"./tsconfig/shared-library.json": "./tsconfig/shared-library.json",
|
|
26
27
|
"./tsconfig/shared-react-library.json": "./tsconfig/shared-react-library.json",
|
|
27
|
-
"./package.json": "./package.json",
|
|
28
28
|
"./type-fest": {
|
|
29
29
|
"import": {
|
|
30
30
|
"types": "./dist/type-fest/index.d.ts"
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
],
|
|
53
53
|
"dependencies": {
|
|
54
54
|
"@commander-js/extra-typings": "14.0.0",
|
|
55
|
-
"@datamitsu/datamitsu": "0.1.
|
|
55
|
+
"@datamitsu/datamitsu": "0.1.2",
|
|
56
56
|
"commander": "14.0.3",
|
|
57
57
|
"execa": "9.6.1",
|
|
58
58
|
"fast-glob": "3.3.3",
|