@shibanet0/datamitsu-config 0.1.0 → 0.1.3
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 +896 -37
- package/datamitsu.config.oci-dockerhub.js +10077 -0
- package/datamitsu.config.oci-ghcr.js +10077 -0
- package/dist/datamitsu-config/globs.d.ts +4 -0
- package/dist/datamitsu-config/ignore.d.ts +1 -1
- package/dist/datamitsu-config/oci.d.ts +18 -0
- package/dist/s0/index.js +1 -2
- package/package.json +5 -3
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",
|
|
@@ -4203,6 +4583,7 @@ const mapOfApps = {
|
|
|
4203
4583
|
allowBuilds: { "playwright-chromium": true },
|
|
4204
4584
|
trustPolicy: { allowDowngrade: ["semver@6.3.1", "undici-types@6.21.0"] }
|
|
4205
4585
|
}) },
|
|
4586
|
+
lazy: true,
|
|
4206
4587
|
links: { "slidev-theme-default": "node_modules/@slidev/theme-default" },
|
|
4207
4588
|
node: {
|
|
4208
4589
|
binPath: "node_modules/.bin/slidev",
|
|
@@ -4283,7 +4664,7 @@ const mapOfApps = {
|
|
|
4283
4664
|
//#endregion
|
|
4284
4665
|
//#region package.json
|
|
4285
4666
|
var name = "@shibanet0/datamitsu-config";
|
|
4286
|
-
var version = "0.1.
|
|
4667
|
+
var version = "0.1.3";
|
|
4287
4668
|
const oxlintConfig = {
|
|
4288
4669
|
$schema: `./node_modules/${name}/oxlint_configuration_schema.json`,
|
|
4289
4670
|
categories: {
|
|
@@ -4363,13 +4744,14 @@ function upgradeAgentsReference(content) {
|
|
|
4363
4744
|
const lines = content.split("\n");
|
|
4364
4745
|
for (const pattern of Object.values(AGENTS_REFERENCE_PATTERNS)) for (let i = 0; i < lines.length; i++) {
|
|
4365
4746
|
const line = lines[i];
|
|
4366
|
-
if (
|
|
4367
|
-
|
|
4368
|
-
|
|
4369
|
-
|
|
4370
|
-
|
|
4747
|
+
if (line) {
|
|
4748
|
+
const trimmed = line.trim();
|
|
4749
|
+
if (pattern.oldPatterns.some((oldPattern) => trimmed === oldPattern)) {
|
|
4750
|
+
lines[i] = pattern.canonical;
|
|
4751
|
+
return lines.join("\n");
|
|
4752
|
+
}
|
|
4753
|
+
if (trimmed === pattern.canonical) return content;
|
|
4371
4754
|
}
|
|
4372
|
-
if (trimmed === pattern.canonical) return content;
|
|
4373
4755
|
}
|
|
4374
4756
|
return content;
|
|
4375
4757
|
}
|
|
@@ -4525,6 +4907,17 @@ const ignoreGroups = {
|
|
|
4525
4907
|
"**/secrets.yml",
|
|
4526
4908
|
"**/secrets.json"
|
|
4527
4909
|
],
|
|
4910
|
+
"Terraform & Terragrunt": [
|
|
4911
|
+
"**/.terraform/",
|
|
4912
|
+
"**/.terragrunt-cache/",
|
|
4913
|
+
"**/*.tfstate",
|
|
4914
|
+
"**/*.tfstate.backup",
|
|
4915
|
+
"**/crash.log",
|
|
4916
|
+
"**/override.tf",
|
|
4917
|
+
"**/override.tf.json",
|
|
4918
|
+
"**/*_override.tf",
|
|
4919
|
+
"**/*_override.tf.json"
|
|
4920
|
+
],
|
|
4528
4921
|
Testing: [
|
|
4529
4922
|
"**/coverage/",
|
|
4530
4923
|
"**/*.cov",
|
|
@@ -5295,6 +5688,7 @@ const vscodeSettings = (context) => {
|
|
|
5295
5688
|
".pnp.*",
|
|
5296
5689
|
".pnpm*",
|
|
5297
5690
|
".prettier*",
|
|
5691
|
+
".oxfmt.config.ts",
|
|
5298
5692
|
".pylintrc",
|
|
5299
5693
|
".release-please*.json",
|
|
5300
5694
|
".releaserc*",
|
|
@@ -6789,6 +7183,82 @@ function escapeRegExp(string) {
|
|
|
6789
7183
|
return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
6790
7184
|
}
|
|
6791
7185
|
const setup = {
|
|
7186
|
+
".datamitsu/scripts/check-empty-files.sh": {
|
|
7187
|
+
content: () => {
|
|
7188
|
+
return [
|
|
7189
|
+
"#!/usr/bin/env bash",
|
|
7190
|
+
"",
|
|
7191
|
+
"# Check for empty files",
|
|
7192
|
+
"for file in \"$@\"; do",
|
|
7193
|
+
" if [ ! -f \"$file\" ]; then",
|
|
7194
|
+
" echo \"Error: File not found: $file\"",
|
|
7195
|
+
" exit 1",
|
|
7196
|
+
" fi",
|
|
7197
|
+
"",
|
|
7198
|
+
" # Check if file has no content or only whitespace",
|
|
7199
|
+
` if [ ! -s "$file" ] || [ -z "$(tr -d '[:space:]' < "$file")" ]; then`,
|
|
7200
|
+
" echo \"Error: Empty file detected: $file\"",
|
|
7201
|
+
" exit 1",
|
|
7202
|
+
" fi",
|
|
7203
|
+
"done",
|
|
7204
|
+
"",
|
|
7205
|
+
"exit 0",
|
|
7206
|
+
""
|
|
7207
|
+
].join("\n");
|
|
7208
|
+
},
|
|
7209
|
+
scope: "git-root"
|
|
7210
|
+
},
|
|
7211
|
+
".datamitsu/scripts/format-terraform-spacing.sh": {
|
|
7212
|
+
content: () => {
|
|
7213
|
+
return [
|
|
7214
|
+
"#!/usr/bin/env bash",
|
|
7215
|
+
"",
|
|
7216
|
+
"# Terraform entities that should have blank lines before them",
|
|
7217
|
+
"TERRAFORM_ENTITIES=(",
|
|
7218
|
+
" \"variable\"",
|
|
7219
|
+
" \"resource\"",
|
|
7220
|
+
" \"data\"",
|
|
7221
|
+
" \"output\"",
|
|
7222
|
+
" \"locals\"",
|
|
7223
|
+
" \"module\"",
|
|
7224
|
+
" \"terraform\"",
|
|
7225
|
+
" \"provider\"",
|
|
7226
|
+
")",
|
|
7227
|
+
"",
|
|
7228
|
+
"# Cross-platform sed in-place",
|
|
7229
|
+
"if sed --version 2>/dev/null | grep -q GNU; then",
|
|
7230
|
+
" sed_inplace() { sed -i \"$@\"; }",
|
|
7231
|
+
"else",
|
|
7232
|
+
` sed_inplace() { sed -i '' "$@"; }`,
|
|
7233
|
+
"fi",
|
|
7234
|
+
"",
|
|
7235
|
+
"for file in \"$@\"; do",
|
|
7236
|
+
" # Step 1: Add 3 blank lines before each Terraform entity",
|
|
7237
|
+
" temp_file=$(mktemp)",
|
|
7238
|
+
" cp \"$file\" \"$temp_file\"",
|
|
7239
|
+
"",
|
|
7240
|
+
" for entity in \"${TERRAFORM_ENTITIES[@]}\"; do",
|
|
7241
|
+
" # Match entity at the beginning of line (with optional spaces)",
|
|
7242
|
+
" # Replace with 3 newlines + the matched line",
|
|
7243
|
+
` sed_inplace "s/^[[:space:]]*\${entity}[[:space:]]*\\"/\\n\\n\\n\${entity} \\"/g" "$temp_file"`,
|
|
7244
|
+
" done",
|
|
7245
|
+
"",
|
|
7246
|
+
" # Step 2: Remove duplicate blank lines (keep max 1 consecutive blank line)",
|
|
7247
|
+
` awk 'BEGIN{blank=0} /^[[:space:]]*$/{blank++; if(blank<=1) print; next} {blank=0; print}' "$temp_file" > "$temp_file.2"`,
|
|
7248
|
+
"",
|
|
7249
|
+
" # Step 3: Remove leading blank lines",
|
|
7250
|
+
` sed_inplace '1{/^[[:space:]]*$/d;}' "$temp_file.2"`,
|
|
7251
|
+
"",
|
|
7252
|
+
" # Move the result back to the original file",
|
|
7253
|
+
" mv \"$temp_file.2\" \"$file\"",
|
|
7254
|
+
" rm -f \"$temp_file\"",
|
|
7255
|
+
"done",
|
|
7256
|
+
""
|
|
7257
|
+
].join("\n");
|
|
7258
|
+
},
|
|
7259
|
+
projectTypes: ["terraform-project", "terragrunt-project"],
|
|
7260
|
+
scope: "git-root"
|
|
7261
|
+
},
|
|
6792
7262
|
".dockerignore": {
|
|
6793
7263
|
content: (context) => {
|
|
6794
7264
|
const mergedRules = tools.Ignore.parse([tools.Ignore.stringify(ignoreGroups), filterIgnore(context.originalContent || "")].join("\n"));
|
|
@@ -6868,7 +7338,8 @@ const setup = {
|
|
|
6868
7338
|
...existingExtend,
|
|
6869
7339
|
path: MANAGED_EXTEND_PATH
|
|
6870
7340
|
},
|
|
6871
|
-
title
|
|
7341
|
+
title,
|
|
7342
|
+
useDefault: void 0
|
|
6872
7343
|
});
|
|
6873
7344
|
},
|
|
6874
7345
|
otherFileNameList: ["gitleaks.toml"],
|
|
@@ -7158,6 +7629,22 @@ const setup = {
|
|
|
7158
7629
|
scope: "git-root",
|
|
7159
7630
|
tools: ["syncpack"]
|
|
7160
7631
|
},
|
|
7632
|
+
".tflint.hcl": {
|
|
7633
|
+
content: (context) => {
|
|
7634
|
+
const existing = context.originalContent || "";
|
|
7635
|
+
if (existing.trim().length > 0) return existing;
|
|
7636
|
+
return [
|
|
7637
|
+
`plugin "terraform" {`,
|
|
7638
|
+
` enabled = true`,
|
|
7639
|
+
` preset = "recommended"`,
|
|
7640
|
+
`}`,
|
|
7641
|
+
``
|
|
7642
|
+
].join("\n");
|
|
7643
|
+
},
|
|
7644
|
+
projectTypes: ["terraform-project"],
|
|
7645
|
+
scope: "git-root",
|
|
7646
|
+
tools: ["tflint"]
|
|
7647
|
+
},
|
|
7161
7648
|
".tombi.toml": {
|
|
7162
7649
|
content: (context) => {
|
|
7163
7650
|
const data = TOML.parse(context.originalContent || "");
|
|
@@ -7278,7 +7765,7 @@ const setup = {
|
|
|
7278
7765
|
scope: "git-root",
|
|
7279
7766
|
tools: ["yamllint"]
|
|
7280
7767
|
},
|
|
7281
|
-
"commitlint.config.
|
|
7768
|
+
"commitlint.config.mjs": {
|
|
7282
7769
|
content: (context) => {
|
|
7283
7770
|
return [
|
|
7284
7771
|
`import { defineConfig } from "${tools.Path.forImport(tools.Path.join(context.datamitsuDir, "commitlint.config.js"))}";`,
|
|
@@ -7307,7 +7794,7 @@ const setup = {
|
|
|
7307
7794
|
],
|
|
7308
7795
|
scope: "git-root"
|
|
7309
7796
|
},
|
|
7310
|
-
"cspell.config.
|
|
7797
|
+
"cspell.config.mjs": {
|
|
7311
7798
|
content: (context) => {
|
|
7312
7799
|
return [
|
|
7313
7800
|
`import { defineConfig } from "${tools.Path.forImport(tools.Path.join(context.datamitsuDir, "cspell.config.js"))}";`,
|
|
@@ -7373,7 +7860,7 @@ const setup = {
|
|
|
7373
7860
|
"taplo.toml"
|
|
7374
7861
|
]
|
|
7375
7862
|
},
|
|
7376
|
-
"eslint.config.
|
|
7863
|
+
"eslint.config.mjs": {
|
|
7377
7864
|
content: (context) => {
|
|
7378
7865
|
if (env().DATAMITSU_DEV_MODE) return `import { join } from "node:path";
|
|
7379
7866
|
|
|
@@ -7677,7 +8164,7 @@ export default config;
|
|
|
7677
8164
|
projectTypes: ["pnpm-package"],
|
|
7678
8165
|
scope: "git-root"
|
|
7679
8166
|
},
|
|
7680
|
-
"prettier.config.
|
|
8167
|
+
"prettier.config.mjs": {
|
|
7681
8168
|
content: (context) => {
|
|
7682
8169
|
return [
|
|
7683
8170
|
`import { defineConfig } from "${tools.Path.forImport(tools.Path.join(context.datamitsuDir, "prettier.config.js"))}";`,
|
|
@@ -7815,12 +8302,41 @@ function buildManagedGitleaksToml() {
|
|
|
7815
8302
|
});
|
|
7816
8303
|
}
|
|
7817
8304
|
//#endregion
|
|
8305
|
+
//#region src/datamitsu-config/oci.ts
|
|
8306
|
+
/**
|
|
8307
|
+
* OCI bundle pin slot.
|
|
8308
|
+
*
|
|
8309
|
+
* The DEFAULT published config never carries a pin: the placeholder below parses to `undefined`, so
|
|
8310
|
+
* no `oci` key is emitted and store seeding stays opt-in. At release time scripts/inject-oci-pin.ts
|
|
8311
|
+
* produces the SEPARATE `datamitsu.config.oci-ghcr.js` variant — a copy of the built default with
|
|
8312
|
+
* the placeholder replaced by the freshly published ghcr.io bundle reference. Consumers enable
|
|
8313
|
+
* seeding by pointing getBeforeConfigs() at that variant (see docs/get-started/oci-bundle.md), and
|
|
8314
|
+
* can override the `oci` key in their own config layer (e.g. to pull through a corporate registry
|
|
8315
|
+
* mirror — the digest stays the same, so verification is unaffected).
|
|
8316
|
+
*
|
|
8317
|
+
* The config baked into the docker images keeps the placeholder too: a bundle must not
|
|
8318
|
+
* self-reference, and containers already carry the full store.
|
|
8319
|
+
*/
|
|
8320
|
+
const OCI_BUNDLE_PIN = "__DATAMITSU_OCI_BUNDLE_PIN__";
|
|
8321
|
+
function parsePin(raw) {
|
|
8322
|
+
try {
|
|
8323
|
+
return JSON.parse(raw);
|
|
8324
|
+
} catch {
|
|
8325
|
+
return;
|
|
8326
|
+
}
|
|
8327
|
+
}
|
|
8328
|
+
const ociBundle = parsePin(OCI_BUNDLE_PIN);
|
|
8329
|
+
//#endregion
|
|
7818
8330
|
//#region src/datamitsu-config/project.ts
|
|
7819
8331
|
const projectTypes = {
|
|
7820
8332
|
"golang-package": {
|
|
7821
8333
|
description: "Go module",
|
|
7822
8334
|
markers: ["**/go.mod"]
|
|
7823
8335
|
},
|
|
8336
|
+
"helm-chart": {
|
|
8337
|
+
description: "Helm chart",
|
|
8338
|
+
markers: ["**/Chart.yaml"]
|
|
8339
|
+
},
|
|
7824
8340
|
"npm-package": {
|
|
7825
8341
|
description: "Node.js/npm project",
|
|
7826
8342
|
markers: ["**/package.json"]
|
|
@@ -7841,6 +8357,10 @@ const projectTypes = {
|
|
|
7841
8357
|
description: "Terraform infrastructure",
|
|
7842
8358
|
markers: ["**/*.tf"]
|
|
7843
8359
|
},
|
|
8360
|
+
"terragrunt-project": {
|
|
8361
|
+
description: "Terragrunt infrastructure",
|
|
8362
|
+
markers: ["**/terragrunt.hcl"]
|
|
8363
|
+
},
|
|
7844
8364
|
"turbo-package": {
|
|
7845
8365
|
description: "turbo project",
|
|
7846
8366
|
markers: ["turbo.json"]
|
|
@@ -8121,6 +8641,7 @@ var runtimes_default = {
|
|
|
8121
8641
|
};
|
|
8122
8642
|
//#endregion
|
|
8123
8643
|
//#region src/datamitsu-config/globs.ts
|
|
8644
|
+
const actionlintGlobs = ["**/.github/workflows/*.yml", "**/.github/workflows/*.yaml"];
|
|
8124
8645
|
const dockerfileGlobs = [
|
|
8125
8646
|
"**/Dockerfile",
|
|
8126
8647
|
"**/Dockerfile.*",
|
|
@@ -8146,7 +8667,19 @@ const eslintGlobs = [
|
|
|
8146
8667
|
"**/*.jsonc",
|
|
8147
8668
|
"**/*.json5"
|
|
8148
8669
|
];
|
|
8670
|
+
const helmGlobs = [
|
|
8671
|
+
"**/Chart.yaml",
|
|
8672
|
+
"**/values.yaml",
|
|
8673
|
+
"**/templates/**/*.yaml",
|
|
8674
|
+
"**/templates/**/*.yml",
|
|
8675
|
+
"**/templates/**/*.tpl"
|
|
8676
|
+
];
|
|
8149
8677
|
const jsonGlobs = ["**/*.json"];
|
|
8678
|
+
const makefileGlobs = [
|
|
8679
|
+
"**/Makefile",
|
|
8680
|
+
"**/GNUmakefile",
|
|
8681
|
+
"**/*.mk"
|
|
8682
|
+
];
|
|
8150
8683
|
const markdownGlobs = ["**/*.md", "**/*.markdown"];
|
|
8151
8684
|
const jsonExcludeGlobs = ["**/package.json", "**/package-lock.json"];
|
|
8152
8685
|
const oxlintGlobs = [
|
|
@@ -8195,6 +8728,7 @@ const prettierGlobs = [
|
|
|
8195
8728
|
"**/*.md"
|
|
8196
8729
|
];
|
|
8197
8730
|
const propertiesGlobs = ["**/*.properties"];
|
|
8731
|
+
const protoGlobs = ["**/*.proto"];
|
|
8198
8732
|
const shellGlobs = ["**/*.sh", "**/*.bash"];
|
|
8199
8733
|
const tomlGlobs = ["**/*.toml"];
|
|
8200
8734
|
const typescriptGlobs = [
|
|
@@ -8214,8 +8748,10 @@ const toPriorityMap = (list) => [...new Set(list)].reduce((acc, el, i) => {
|
|
|
8214
8748
|
return acc;
|
|
8215
8749
|
}, {});
|
|
8216
8750
|
const _fixPriority = [
|
|
8751
|
+
"typos",
|
|
8217
8752
|
"syncpack",
|
|
8218
8753
|
"oxlint",
|
|
8754
|
+
"protolint",
|
|
8219
8755
|
"yq-json",
|
|
8220
8756
|
"yq-properties",
|
|
8221
8757
|
"eslint",
|
|
@@ -8223,17 +8759,26 @@ const _fixPriority = [
|
|
|
8223
8759
|
"oxfmt",
|
|
8224
8760
|
"sort-package-json",
|
|
8225
8761
|
"golangci-lint",
|
|
8762
|
+
"ruff",
|
|
8763
|
+
"ruff-format",
|
|
8226
8764
|
"typstyle",
|
|
8227
8765
|
"dotenv-linter",
|
|
8228
8766
|
"shfmt",
|
|
8229
8767
|
"toml",
|
|
8768
|
+
"tflint",
|
|
8769
|
+
"terraform-fmt",
|
|
8770
|
+
"terragrunt-fmt",
|
|
8771
|
+
"terraform-docs",
|
|
8230
8772
|
"yq-yaml",
|
|
8231
8773
|
"yamlfmt",
|
|
8232
8774
|
"pre-commit"
|
|
8233
8775
|
];
|
|
8234
8776
|
const _lintPriority = [
|
|
8777
|
+
"typos",
|
|
8235
8778
|
"syncpack",
|
|
8236
8779
|
"oxlint",
|
|
8780
|
+
"protolint",
|
|
8781
|
+
"actionlint",
|
|
8237
8782
|
"tsc",
|
|
8238
8783
|
"tsgo",
|
|
8239
8784
|
"cspell",
|
|
@@ -8251,14 +8796,60 @@ const _lintPriority = [
|
|
|
8251
8796
|
"shfmt",
|
|
8252
8797
|
"shellcheck",
|
|
8253
8798
|
"hadolint",
|
|
8799
|
+
"checkmake",
|
|
8800
|
+
"helm",
|
|
8254
8801
|
"toml",
|
|
8802
|
+
"tflint",
|
|
8803
|
+
"terraform-fmt",
|
|
8255
8804
|
"yamlfmt",
|
|
8256
|
-
"yamllint"
|
|
8805
|
+
"yamllint",
|
|
8806
|
+
"lychee",
|
|
8807
|
+
"grype",
|
|
8808
|
+
"trivy",
|
|
8809
|
+
"osv-scanner",
|
|
8810
|
+
"bearer"
|
|
8257
8811
|
];
|
|
8258
8812
|
const fixPriority = toPriorityMap(_fixPriority);
|
|
8259
8813
|
const lintPriority = toPriorityMap(_lintPriority);
|
|
8260
8814
|
const isCI = facts().env.CI === "true" || facts().env.CI === "1";
|
|
8261
8815
|
const toolsConfig = {
|
|
8816
|
+
actionlint: {
|
|
8817
|
+
name: "actionlint - GitHub Actions Workflow Linter",
|
|
8818
|
+
operations: { lint: {
|
|
8819
|
+
app: "actionlint",
|
|
8820
|
+
args: ["-color", "{file}"],
|
|
8821
|
+
globs: actionlintGlobs,
|
|
8822
|
+
priority: lintPriority.actionlint,
|
|
8823
|
+
scope: "per-file"
|
|
8824
|
+
} }
|
|
8825
|
+
},
|
|
8826
|
+
bearer: {
|
|
8827
|
+
name: "Bearer - Static Application Security Testing",
|
|
8828
|
+
operations: { lint: {
|
|
8829
|
+
app: "bearer",
|
|
8830
|
+
args: [
|
|
8831
|
+
"scan",
|
|
8832
|
+
"--exit-code",
|
|
8833
|
+
"1",
|
|
8834
|
+
"{root}"
|
|
8835
|
+
],
|
|
8836
|
+
globs: ["**/*"],
|
|
8837
|
+
priority: lintPriority.bearer,
|
|
8838
|
+
scope: "repository"
|
|
8839
|
+
} },
|
|
8840
|
+
skip: !isCI,
|
|
8841
|
+
skipReason: "runs in CI only"
|
|
8842
|
+
},
|
|
8843
|
+
checkmake: {
|
|
8844
|
+
name: "checkmake - Makefile Linter",
|
|
8845
|
+
operations: { lint: {
|
|
8846
|
+
app: "checkmake",
|
|
8847
|
+
args: ["{file}"],
|
|
8848
|
+
globs: makefileGlobs,
|
|
8849
|
+
priority: lintPriority.checkmake,
|
|
8850
|
+
scope: "per-file"
|
|
8851
|
+
} }
|
|
8852
|
+
},
|
|
8262
8853
|
cspell: {
|
|
8263
8854
|
name: "CSpell - A Spelling Checker for Code!",
|
|
8264
8855
|
operations: { lint: {
|
|
@@ -8398,6 +8989,22 @@ const toolsConfig = {
|
|
|
8398
8989
|
} },
|
|
8399
8990
|
projectTypes: ["golang-package"]
|
|
8400
8991
|
},
|
|
8992
|
+
grype: {
|
|
8993
|
+
name: "Grype - Vulnerability Scanner",
|
|
8994
|
+
operations: { lint: {
|
|
8995
|
+
app: "grype",
|
|
8996
|
+
args: [
|
|
8997
|
+
"dir:{root}",
|
|
8998
|
+
"--fail-on",
|
|
8999
|
+
"high"
|
|
9000
|
+
],
|
|
9001
|
+
globs: ["**/*"],
|
|
9002
|
+
priority: lintPriority.grype,
|
|
9003
|
+
scope: "repository"
|
|
9004
|
+
} },
|
|
9005
|
+
skip: !isCI,
|
|
9006
|
+
skipReason: "runs in CI only"
|
|
9007
|
+
},
|
|
8401
9008
|
hadolint: {
|
|
8402
9009
|
name: "hadolint - Dockerfile Linter",
|
|
8403
9010
|
operations: { lint: {
|
|
@@ -8431,6 +9038,17 @@ const toolsConfig = {
|
|
|
8431
9038
|
scope: "repository"
|
|
8432
9039
|
} }
|
|
8433
9040
|
},
|
|
9041
|
+
helm: {
|
|
9042
|
+
name: "Helm - The Kubernetes Package Manager",
|
|
9043
|
+
operations: { lint: {
|
|
9044
|
+
app: "helm",
|
|
9045
|
+
args: ["lint", "{cwd}"],
|
|
9046
|
+
globs: helmGlobs,
|
|
9047
|
+
priority: lintPriority.helm,
|
|
9048
|
+
scope: "per-project"
|
|
9049
|
+
} },
|
|
9050
|
+
projectTypes: ["helm-chart"]
|
|
9051
|
+
},
|
|
8434
9052
|
knip: {
|
|
8435
9053
|
name: "Knip - Find unused files, dependencies, and exports",
|
|
8436
9054
|
operations: { lint: {
|
|
@@ -8441,6 +9059,36 @@ const toolsConfig = {
|
|
|
8441
9059
|
} },
|
|
8442
9060
|
projectTypes: ["npm-package", "typescript-project"]
|
|
8443
9061
|
},
|
|
9062
|
+
lychee: {
|
|
9063
|
+
name: "lychee - Link Checker",
|
|
9064
|
+
operations: { lint: {
|
|
9065
|
+
app: "lychee",
|
|
9066
|
+
args: ["--no-progress", "{files}"],
|
|
9067
|
+
batch: true,
|
|
9068
|
+
globs: markdownGlobs,
|
|
9069
|
+
priority: lintPriority.lychee,
|
|
9070
|
+
scope: "repository"
|
|
9071
|
+
} },
|
|
9072
|
+
skip: !isCI,
|
|
9073
|
+
skipReason: "runs in CI only (network access)"
|
|
9074
|
+
},
|
|
9075
|
+
"osv-scanner": {
|
|
9076
|
+
name: "OSV-Scanner - Vulnerability Scanner",
|
|
9077
|
+
operations: { lint: {
|
|
9078
|
+
app: "osv-scanner",
|
|
9079
|
+
args: [
|
|
9080
|
+
"scan",
|
|
9081
|
+
"source",
|
|
9082
|
+
"--recursive",
|
|
9083
|
+
"{root}"
|
|
9084
|
+
],
|
|
9085
|
+
globs: ["**/*"],
|
|
9086
|
+
priority: lintPriority["osv-scanner"],
|
|
9087
|
+
scope: "repository"
|
|
9088
|
+
} },
|
|
9089
|
+
skip: !isCI,
|
|
9090
|
+
skipReason: "runs in CI only"
|
|
9091
|
+
},
|
|
8444
9092
|
oxfmt: {
|
|
8445
9093
|
name: "oxfmt - The JavaScript Oxidation Compiler Formatter",
|
|
8446
9094
|
operations: {
|
|
@@ -8554,6 +9202,91 @@ const toolsConfig = {
|
|
|
8554
9202
|
},
|
|
8555
9203
|
projectTypes: ["npm-package", "typescript-project"]
|
|
8556
9204
|
},
|
|
9205
|
+
protolint: {
|
|
9206
|
+
name: "protolint - Protocol Buffer Linter",
|
|
9207
|
+
operations: {
|
|
9208
|
+
fix: {
|
|
9209
|
+
app: "protolint",
|
|
9210
|
+
args: [
|
|
9211
|
+
"lint",
|
|
9212
|
+
"-fix",
|
|
9213
|
+
"{file}"
|
|
9214
|
+
],
|
|
9215
|
+
globs: protoGlobs,
|
|
9216
|
+
priority: fixPriority.protolint,
|
|
9217
|
+
scope: "per-file"
|
|
9218
|
+
},
|
|
9219
|
+
lint: {
|
|
9220
|
+
app: "protolint",
|
|
9221
|
+
args: ["lint", "{file}"],
|
|
9222
|
+
globs: protoGlobs,
|
|
9223
|
+
priority: lintPriority.protolint,
|
|
9224
|
+
scope: "per-file"
|
|
9225
|
+
}
|
|
9226
|
+
}
|
|
9227
|
+
},
|
|
9228
|
+
ruff: {
|
|
9229
|
+
name: "Ruff - Python Linter",
|
|
9230
|
+
operations: {
|
|
9231
|
+
fix: {
|
|
9232
|
+
app: "ruff",
|
|
9233
|
+
args: [
|
|
9234
|
+
"check",
|
|
9235
|
+
"--fix",
|
|
9236
|
+
"--quiet",
|
|
9237
|
+
"{files}"
|
|
9238
|
+
],
|
|
9239
|
+
batch: true,
|
|
9240
|
+
globs: ["**/*.py", "**/*.pyi"],
|
|
9241
|
+
priority: fixPriority.ruff,
|
|
9242
|
+
scope: "per-project"
|
|
9243
|
+
},
|
|
9244
|
+
lint: {
|
|
9245
|
+
app: "ruff",
|
|
9246
|
+
args: [
|
|
9247
|
+
"check",
|
|
9248
|
+
"--quiet",
|
|
9249
|
+
"{files}"
|
|
9250
|
+
],
|
|
9251
|
+
batch: true,
|
|
9252
|
+
globs: ["**/*.py", "**/*.pyi"],
|
|
9253
|
+
priority: lintPriority.ruff,
|
|
9254
|
+
scope: "per-project"
|
|
9255
|
+
}
|
|
9256
|
+
},
|
|
9257
|
+
projectTypes: ["python-package"]
|
|
9258
|
+
},
|
|
9259
|
+
"ruff-format": {
|
|
9260
|
+
name: "Ruff Format",
|
|
9261
|
+
operations: {
|
|
9262
|
+
fix: {
|
|
9263
|
+
app: "ruff",
|
|
9264
|
+
args: [
|
|
9265
|
+
"format",
|
|
9266
|
+
"--quiet",
|
|
9267
|
+
"{files}"
|
|
9268
|
+
],
|
|
9269
|
+
batch: true,
|
|
9270
|
+
globs: ["**/*.py", "**/*.pyi"],
|
|
9271
|
+
priority: fixPriority["ruff-format"],
|
|
9272
|
+
scope: "per-project"
|
|
9273
|
+
},
|
|
9274
|
+
lint: {
|
|
9275
|
+
app: "ruff",
|
|
9276
|
+
args: [
|
|
9277
|
+
"format",
|
|
9278
|
+
"--check",
|
|
9279
|
+
"--quiet",
|
|
9280
|
+
"{files}"
|
|
9281
|
+
],
|
|
9282
|
+
batch: true,
|
|
9283
|
+
globs: ["**/*.py", "**/*.pyi"],
|
|
9284
|
+
priority: lintPriority["ruff-format"],
|
|
9285
|
+
scope: "per-project"
|
|
9286
|
+
}
|
|
9287
|
+
},
|
|
9288
|
+
projectTypes: ["python-package"]
|
|
9289
|
+
},
|
|
8557
9290
|
shellcheck: {
|
|
8558
9291
|
name: "ShellCheck - Shell Script Linter",
|
|
8559
9292
|
operations: { lint: {
|
|
@@ -8647,6 +9380,101 @@ const toolsConfig = {
|
|
|
8647
9380
|
},
|
|
8648
9381
|
projectTypes: ["npm-package", "typescript-project"]
|
|
8649
9382
|
},
|
|
9383
|
+
"terraform-docs": {
|
|
9384
|
+
name: "terraform-docs",
|
|
9385
|
+
operations: { fix: {
|
|
9386
|
+
app: "terraform-docs",
|
|
9387
|
+
args: [
|
|
9388
|
+
"markdown",
|
|
9389
|
+
"table",
|
|
9390
|
+
"--output-file",
|
|
9391
|
+
"README.md",
|
|
9392
|
+
"--output-mode",
|
|
9393
|
+
"inject",
|
|
9394
|
+
"{cwd}"
|
|
9395
|
+
],
|
|
9396
|
+
globs: ["**/*.tf"],
|
|
9397
|
+
priority: fixPriority["terraform-docs"],
|
|
9398
|
+
scope: "per-project"
|
|
9399
|
+
} },
|
|
9400
|
+
projectTypes: ["terraform-project"]
|
|
9401
|
+
},
|
|
9402
|
+
"terragrunt-fmt": {
|
|
9403
|
+
name: "Terragrunt HCL Format",
|
|
9404
|
+
operations: { fix: {
|
|
9405
|
+
app: "terragrunt",
|
|
9406
|
+
args: ["hclfmt"],
|
|
9407
|
+
globs: ["**/*.hcl"],
|
|
9408
|
+
priority: fixPriority["terragrunt-fmt"],
|
|
9409
|
+
scope: "repository"
|
|
9410
|
+
} },
|
|
9411
|
+
projectTypes: ["terragrunt-project"]
|
|
9412
|
+
},
|
|
9413
|
+
tflint: {
|
|
9414
|
+
name: "TFLint - Terraform Linter",
|
|
9415
|
+
operations: {
|
|
9416
|
+
fix: {
|
|
9417
|
+
app: "tflint",
|
|
9418
|
+
args: [
|
|
9419
|
+
"--fix",
|
|
9420
|
+
"--recursive",
|
|
9421
|
+
"--config",
|
|
9422
|
+
"{root}/.tflint.hcl",
|
|
9423
|
+
"--color",
|
|
9424
|
+
"--minimum-failure-severity=notice",
|
|
9425
|
+
"--call-module-type=none"
|
|
9426
|
+
],
|
|
9427
|
+
globs: ["**/*.tf"],
|
|
9428
|
+
priority: fixPriority.tflint,
|
|
9429
|
+
scope: "per-project"
|
|
9430
|
+
},
|
|
9431
|
+
lint: {
|
|
9432
|
+
app: "tflint",
|
|
9433
|
+
args: [
|
|
9434
|
+
"--recursive",
|
|
9435
|
+
"--config",
|
|
9436
|
+
"{root}/.tflint.hcl",
|
|
9437
|
+
"--color",
|
|
9438
|
+
"--minimum-failure-severity=notice",
|
|
9439
|
+
"--call-module-type=none"
|
|
9440
|
+
],
|
|
9441
|
+
globs: ["**/*.tf"],
|
|
9442
|
+
priority: lintPriority.tflint,
|
|
9443
|
+
scope: "per-project"
|
|
9444
|
+
}
|
|
9445
|
+
},
|
|
9446
|
+
projectTypes: ["terraform-project"]
|
|
9447
|
+
},
|
|
9448
|
+
"tofu-fmt": {
|
|
9449
|
+
name: "OpenTofu fmt",
|
|
9450
|
+
operations: {
|
|
9451
|
+
fix: {
|
|
9452
|
+
app: "tofu",
|
|
9453
|
+
args: [
|
|
9454
|
+
"fmt",
|
|
9455
|
+
"-recursive",
|
|
9456
|
+
"{cwd}"
|
|
9457
|
+
],
|
|
9458
|
+
globs: ["**/*.tf", "**/*.tfvars"],
|
|
9459
|
+
priority: fixPriority["terraform-fmt"],
|
|
9460
|
+
scope: "per-project"
|
|
9461
|
+
},
|
|
9462
|
+
lint: {
|
|
9463
|
+
app: "tofu",
|
|
9464
|
+
args: [
|
|
9465
|
+
"fmt",
|
|
9466
|
+
"-check",
|
|
9467
|
+
"-recursive",
|
|
9468
|
+
"-diff",
|
|
9469
|
+
"{cwd}"
|
|
9470
|
+
],
|
|
9471
|
+
globs: ["**/*.tf", "**/*.tfvars"],
|
|
9472
|
+
priority: lintPriority["terraform-fmt"],
|
|
9473
|
+
scope: "per-project"
|
|
9474
|
+
}
|
|
9475
|
+
},
|
|
9476
|
+
projectTypes: ["terraform-project"]
|
|
9477
|
+
},
|
|
8650
9478
|
tombi: {
|
|
8651
9479
|
name: "🦅 TOML Toolkit 🦅",
|
|
8652
9480
|
operations: {
|
|
@@ -8680,6 +9508,26 @@ const toolsConfig = {
|
|
|
8680
9508
|
}
|
|
8681
9509
|
}
|
|
8682
9510
|
},
|
|
9511
|
+
trivy: {
|
|
9512
|
+
name: "Trivy - Vulnerability and Misconfiguration Scanner",
|
|
9513
|
+
operations: { lint: {
|
|
9514
|
+
app: "trivy",
|
|
9515
|
+
args: [
|
|
9516
|
+
"fs",
|
|
9517
|
+
"--exit-code",
|
|
9518
|
+
"1",
|
|
9519
|
+
"--severity",
|
|
9520
|
+
"HIGH,CRITICAL",
|
|
9521
|
+
"--no-progress",
|
|
9522
|
+
"{root}"
|
|
9523
|
+
],
|
|
9524
|
+
globs: ["**/*"],
|
|
9525
|
+
priority: lintPriority.trivy,
|
|
9526
|
+
scope: "repository"
|
|
9527
|
+
} },
|
|
9528
|
+
skip: !isCI,
|
|
9529
|
+
skipReason: "runs in CI only"
|
|
9530
|
+
},
|
|
8683
9531
|
trufflehog: {
|
|
8684
9532
|
name: "trufflehog",
|
|
8685
9533
|
operations: { lint: {
|
|
@@ -8731,6 +9579,16 @@ const toolsConfig = {
|
|
|
8731
9579
|
} },
|
|
8732
9580
|
projectTypes: ["typescript-project"]
|
|
8733
9581
|
},
|
|
9582
|
+
typos: {
|
|
9583
|
+
name: "typos - Source Code Spell Checker",
|
|
9584
|
+
operations: { lint: {
|
|
9585
|
+
app: "typos",
|
|
9586
|
+
args: ["--format", "brief"],
|
|
9587
|
+
globs: ["**/*"],
|
|
9588
|
+
priority: lintPriority.typos,
|
|
9589
|
+
scope: "repository"
|
|
9590
|
+
} }
|
|
9591
|
+
},
|
|
8734
9592
|
typstyle: {
|
|
8735
9593
|
name: "typstyle - Typst Code Formatter",
|
|
8736
9594
|
operations: {
|
|
@@ -9205,6 +10063,7 @@ function getConfig(cfg) {
|
|
|
9205
10063
|
...mapOfRuntimes?.node ? { node: { ...mapOfRuntimes.node } } : {},
|
|
9206
10064
|
...mapOfRuntimes?.uv ? { uv: { ...mapOfRuntimes.uv } } : {}
|
|
9207
10065
|
},
|
|
10066
|
+
...ociBundle ? { oci: ociBundle } : {},
|
|
9208
10067
|
setup,
|
|
9209
10068
|
sharedStorage: { ...cfg.sharedStorage },
|
|
9210
10069
|
tools: toolsConfig
|
|
@@ -9212,7 +10071,7 @@ function getConfig(cfg) {
|
|
|
9212
10071
|
}
|
|
9213
10072
|
globalThis.getConfig = getConfig;
|
|
9214
10073
|
const getMinVersion = () => {
|
|
9215
|
-
return "0.1.
|
|
10074
|
+
return "0.1.3";
|
|
9216
10075
|
};
|
|
9217
10076
|
globalThis.getMinVersion = getMinVersion;
|
|
9218
10077
|
//#endregion
|