@shibanet0/datamitsu-config 0.0.3-alpha-1 → 0.0.3-alpha-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/bin/datamitsu.js CHANGED
@@ -23,8 +23,6 @@ const child = spawn(
23
23
  env: {
24
24
  ...process.env,
25
25
  DATAMITSU_APP_COMMITLINT_BINARY_FILEPATH: getBinaryFilepath("@commitlint/cli", "../cli.js"),
26
- DATAMITSU_APP_OXLINT_BINARY_FILEPATH: getBinaryFilepath("oxlint", "../../bin/oxlint"),
27
- DATAMITSU_APP_PRETTIER_BINARY_FILEPATH: getBinaryFilepath("prettier", "../bin/prettier.cjs"),
28
26
  DATAMITSU_APP_TSC_BINARY_FILEPATH: getBinaryFilepath("typescript/package.json", "../bin/tsc"),
29
27
  DATAMITSU_PACKAGE_NAME: process.env.DATAMITSU_PACKAGE_NAME || "@shibanet0/datamitsu-config",
30
28
  },
@@ -3,6 +3,67 @@
3
3
  /* tslint:disable */
4
4
  /* eslint-disable */
5
5
 
6
+ // .oxlintrc.json
7
+ var oxlintrc_default = {
8
+ $schema: "./.datamitsu/oxlint_configuration_schema.json",
9
+ categories: {
10
+ correctness: "error",
11
+ pedantic: "error",
12
+ perf: "error",
13
+ style: "warn",
14
+ suspicious: "error"
15
+ },
16
+ rules: {
17
+ "sort-keys": "off",
18
+ "no-duplicate-imports": "off",
19
+ "unicorn/prefer-query-selector": "off",
20
+ "no-lonely-if": "off",
21
+ "unicorn/prefer-string-raw": "off",
22
+ "array-type": "off",
23
+ "no-negated-condition": "off",
24
+ "arrow-body-style": "off",
25
+ "unicorn/prefer-global-this": "off",
26
+ "unicorn/consistent-function-scoping": "off",
27
+ "array-callback-return": "off",
28
+ "new-cap": "off",
29
+ "prefer-exponentiation-operator": "off",
30
+ "typescript-eslint/ban-types": "off",
31
+ "unicorn/prefer-top-level-await": "off",
32
+ "max-params": "off",
33
+ "no-promise-executor-return": "off",
34
+ "unicorn/no-useless-collection-argument": "off",
35
+ "unicorn/no-lonely-if": "off",
36
+ "no-map-spread": "off",
37
+ "capitalized-comments": "off",
38
+ "unicorn/prefer-array-some": "off",
39
+ eqeqeq: "off",
40
+ "func-names": "off",
41
+ "func-style": "off",
42
+ "id-length": "off",
43
+ "init-declarations": "off",
44
+ "max-lines": "off",
45
+ "max-lines-per-function": "off",
46
+ "max-statements": "off",
47
+ "no-await-in-loop": "off",
48
+ "no-inline-comments": "off",
49
+ "no-magic-numbers": "off",
50
+ "no-ternary": "off",
51
+ "no-unused-vars": "off",
52
+ "no-warning-comments": "off",
53
+ "prefer-destructuring": "off",
54
+ "prefer-template": "off",
55
+ "require-await": "off",
56
+ "sort-imports": "off",
57
+ "triple-slash-reference": "off",
58
+ "unicorn/filename-case": "off",
59
+ "unicorn/no-array-sort": "off",
60
+ "unicorn/no-null": "off",
61
+ "unicorn/no-object-as-default-parameter": "off",
62
+ "unicorn/number-literal-case": "off",
63
+ "unicorn/require-module-specifiers": "off"
64
+ }
65
+ };
66
+
6
67
  // src/datamitsu-config/fnmVersions.json
7
68
  var fnmVersions_default = {
8
69
  cspell: {
@@ -13,6 +74,30 @@ var fnmVersions_default = {
13
74
  packageName: "knip",
14
75
  version: "5.86.0"
15
76
  },
77
+ oxlint: {
78
+ packageName: "oxlint",
79
+ version: "1.42.0"
80
+ },
81
+ "@prettier/plugin-xml": {
82
+ packageName: "@prettier/plugin-xml",
83
+ version: "3.4.2"
84
+ },
85
+ prettier: {
86
+ packageName: "prettier",
87
+ version: "3.8.1"
88
+ },
89
+ "prettier-plugin-embed": {
90
+ packageName: "prettier-plugin-embed",
91
+ version: "0.5.1"
92
+ },
93
+ "prettier-plugin-jsdoc": {
94
+ packageName: "prettier-plugin-jsdoc",
95
+ version: "1.8.0"
96
+ },
97
+ "prettier-plugin-sql": {
98
+ packageName: "prettier-plugin-sql",
99
+ version: "0.19.2"
100
+ },
16
101
  "markdown-link-check": {
17
102
  packageName: "markdown-link-check",
18
103
  version: "3.14.2"
@@ -376,6 +461,31 @@ var eslintApp = {
376
461
  }
377
462
  };
378
463
 
464
+ // src/datamitsu-config/inline-config/prettier.ts
465
+ var data2 = "tar.br:G/8HAMaMOV/XqFwVUIYg3CZsgWjwZu/hEosgshJ8H8/FD9p3D5guB4btLnI1nsRqUbaH5tIPFPxq3CDRLJzPRzAA82DZiS/gvw7e8fl0BjGM180RKcEMjgH4DGHGpknfttHz4tBp1c/L2mvbyKv1e0KU5qVCbZNGeXvfV5KTYkbWE+sahaapHZOKKckUq4sDg18MNZvyRRLDOXK1ftMiLAcjh0RWXRfD36q9vLmT+EI3X0MPXu7+fJ02FaLUR+issdG/xKrWsiHYgy7OqygP/hGo0w7TlHeNp4BoShojOEZmdFNtybaHUJjXmOhuNyAN/cqBDA==";
466
+
467
+ // src/datamitsu-config/app.prettier.ts
468
+ var prettierApp = {
469
+ archives: {
470
+ main: {
471
+ inline: data2
472
+ }
473
+ },
474
+ fnm: {
475
+ binPath: "node_modules/.bin/prettier",
476
+ ...fnmVersions_default.prettier,
477
+ dependencies: {
478
+ "@prettier/plugin-xml": fnmVersions_default["@prettier/plugin-xml"].version,
479
+ "prettier-plugin-embed": fnmVersions_default["prettier-plugin-embed"].version,
480
+ "prettier-plugin-jsdoc": fnmVersions_default["prettier-plugin-jsdoc"].version,
481
+ "prettier-plugin-sql": fnmVersions_default["prettier-plugin-sql"].version
482
+ }
483
+ },
484
+ links: {
485
+ "prettier.config.js": "index.js"
486
+ }
487
+ };
488
+
379
489
  // src/datamitsu-config/githubApps.json
380
490
  var binaries = {
381
491
  actionlint: {
@@ -2594,6 +2704,9 @@ var binaries = {
2594
2704
  }
2595
2705
  };
2596
2706
 
2707
+ // src/datamitsu-config/inline-config/oxlint_configuration_schema.ts
2708
+ var data3 = '{"$schema":"http://json-schema.org/draft-07/schema#","title":"Oxlintrc","description":"Oxlint Configuration File\\n\\nThis configuration is aligned with ESLint v8\'s configuration schema (`eslintrc.json`).\\n\\nUsage: `oxlint -c oxlintrc.json --import-plugin`\\n\\n::: danger NOTE\\n\\nOnly the `.json` format is supported. You can use comments in configuration files.\\n\\n:::\\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},\\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```","type":"object","properties":{"$schema":{"description":"Schema URI for editor tooling.","type":["string","null"],"markdownDescription":"Schema URI for editor tooling."},"categories":{"default":{},"allOf":[{"$ref":"#/definitions/OxlintCategories"}]},"env":{"description":"Environments enable and disable collections of global variables.","default":{"builtin":true},"allOf":[{"$ref":"#/definitions/OxlintEnv"}],"markdownDescription":"Environments enable and disable collections of global variables."},"extends":{"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.","type":"array","items":{"type":"string"},"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."},"globals":{"description":"Enabled or disabled specific global variables.","default":{},"allOf":[{"$ref":"#/definitions/OxlintGlobals"}],"markdownDescription":"Enabled or disabled specific global variables."},"ignorePatterns":{"description":"Globs to ignore during linting. These are resolved from the configuration file path.","default":[],"type":"array","items":{"type":"string"},"markdownDescription":"Globs to ignore during linting. These are resolved from the configuration file path."},"jsPlugins":{"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 experimental and not subject to semver.\\nThey are not supported in the language server (and thus editor integrations) at present.","anyOf":[{"type":"null"},{"type":"array","items":{"$ref":"#/definitions/ExternalPluginEntry"},"uniqueItems":true}],"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 experimental and not subject to semver.\\nThey are not supported in the language server (and thus editor integrations) at present."},"overrides":{"description":"Add, remove, or otherwise reconfigure rules for specific files or groups of files.","allOf":[{"$ref":"#/definitions/OxlintOverrides"}],"markdownDescription":"Add, remove, or otherwise reconfigure rules for specific files or groups of files."},"plugins":{"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.","default":null,"anyOf":[{"$ref":"#/definitions/LintPlugins"},{"type":"null"}],"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."},"rules":{"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.","default":{},"allOf":[{"$ref":"#/definitions/OxlintRules"}],"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."},"settings":{"default":{"jsx-a11y":{"polymorphicPropName":null,"components":{},"attributes":{}},"next":{"rootDir":[]},"react":{"formComponents":[],"linkComponents":[],"version":null,"componentWrapperFunctions":[]},"jsdoc":{"ignorePrivate":false,"ignoreInternal":false,"ignoreReplacesDocs":true,"overrideReplacesDocs":true,"augmentsExtendsReplacesDocs":false,"implementsReplacesDocs":false,"exemptDestructuredRootsFromChecks":false,"tagNamePreference":{}},"vitest":{"typecheck":false}},"allOf":[{"$ref":"#/definitions/OxlintSettings"}]}},"additionalProperties":false,"allowComments":true,"allowTrailingCommas":true,"definitions":{"AllowWarnDeny":{"oneOf":[{"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).","type":"string","enum":["allow","off","warn","error","deny"],"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)."},{"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).","type":"integer","format":"uint32","maximum":2,"minimum":0,"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)."}]},"CustomComponent":{"anyOf":[{"type":"string"},{"type":"object","required":["attribute","name"],"properties":{"attribute":{"type":"string"},"name":{"type":"string"}}},{"type":"object","required":["attributes","name"],"properties":{"attributes":{"type":"array","items":{"type":"string"}},"name":{"type":"string"}}}]},"DummyRule":{"anyOf":[{"$ref":"#/definitions/AllowWarnDeny"},{"type":"array","items":true}]},"DummyRuleMap":{"description":"See [Oxlint Rules](https://oxc.rs/docs/guide/usage/linter/rules.html)","type":"object","additionalProperties":{"$ref":"#/definitions/DummyRule"},"markdownDescription":"See [Oxlint Rules](https://oxc.rs/docs/guide/usage/linter/rules.html)"},"ExternalPluginEntry":{"anyOf":[{"description":"Path or package name of the plugin","type":"string","markdownDescription":"Path or package name of the plugin"},{"description":"Plugin with custom name/alias","type":"object","required":["name","specifier"],"properties":{"name":{"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.","type":"string","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."},"specifier":{"description":"Path or package name of the plugin","type":"string","markdownDescription":"Path or package name of the plugin"}},"additionalProperties":false,"markdownDescription":"Plugin with custom name/alias"}]},"GlobSet":{"description":"A set of glob patterns.","type":"array","items":{"type":"string"},"markdownDescription":"A set of glob patterns."},"GlobalValue":{"type":"string","enum":["readonly","writable","off"]},"JSDocPluginSettings":{"type":"object","properties":{"augmentsExtendsReplacesDocs":{"description":"Only for `require-(yields|returns|description|example|param|throws)` rule","default":false,"type":"boolean","markdownDescription":"Only for `require-(yields|returns|description|example|param|throws)` rule"},"exemptDestructuredRootsFromChecks":{"description":"Only for `require-param-type` and `require-param-description` rule","default":false,"type":"boolean","markdownDescription":"Only for `require-param-type` and `require-param-description` rule"},"ignoreInternal":{"description":"For all rules but NOT apply to `empty-tags` rule","default":false,"type":"boolean","markdownDescription":"For all rules but NOT apply to `empty-tags` rule"},"ignorePrivate":{"description":"For all rules but NOT apply to `check-access` and `empty-tags` rule","default":false,"type":"boolean","markdownDescription":"For all rules but NOT apply to `check-access` and `empty-tags` rule"},"ignoreReplacesDocs":{"description":"Only for `require-(yields|returns|description|example|param|throws)` rule","default":true,"type":"boolean","markdownDescription":"Only for `require-(yields|returns|description|example|param|throws)` rule"},"implementsReplacesDocs":{"description":"Only for `require-(yields|returns|description|example|param|throws)` rule","default":false,"type":"boolean","markdownDescription":"Only for `require-(yields|returns|description|example|param|throws)` rule"},"overrideReplacesDocs":{"description":"Only for `require-(yields|returns|description|example|param|throws)` rule","default":true,"type":"boolean","markdownDescription":"Only for `require-(yields|returns|description|example|param|throws)` rule"},"tagNamePreference":{"default":{},"type":"object","additionalProperties":{"$ref":"#/definitions/TagNamePreference"}}}},"JSXA11yPluginSettings":{"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.","type":"object","properties":{"attributes":{"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```","default":{},"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}},"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```"},"components":{"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```","default":{},"type":"object","additionalProperties":{"type":"string"},"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```"},"polymorphicPropName":{"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`.","type":["string","null"],"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`."}},"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."},"LintPluginOptionsSchema":{"type":"string","enum":["eslint","react","unicorn","typescript","oxc","import","jsdoc","jest","vitest","jsx-a11y","nextjs","react-perf","promise","node","vue"]},"LintPlugins":{"type":"array","items":{"anyOf":[{"$ref":"#/definitions/LintPluginOptionsSchema"}]}},"NextPluginSettings":{"description":"Configure Next.js plugin rules.","type":"object","properties":{"rootDir":{"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```","default":[],"allOf":[{"$ref":"#/definitions/OneOrMany_for_String"}],"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```"}},"markdownDescription":"Configure Next.js plugin rules."},"OneOrMany_for_String":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"OxlintCategories":{"title":"Rule Categories","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```","examples":[{"correctness":"warn"}],"type":"object","properties":{"correctness":{"$ref":"#/definitions/AllowWarnDeny"},"nursery":{"$ref":"#/definitions/AllowWarnDeny"},"pedantic":{"$ref":"#/definitions/AllowWarnDeny"},"perf":{"$ref":"#/definitions/AllowWarnDeny"},"restriction":{"$ref":"#/definitions/AllowWarnDeny"},"style":{"$ref":"#/definitions/AllowWarnDeny"},"suspicious":{"$ref":"#/definitions/AllowWarnDeny"}},"additionalProperties":false,"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```"},"OxlintEnv":{"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.","type":"object","additionalProperties":{"type":"boolean"},"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."},"OxlintGlobals":{"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\\"`.","type":"object","additionalProperties":{"$ref":"#/definitions/GlobalValue"},"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\\"`."},"OxlintOverride":{"type":"object","required":["files"],"properties":{"env":{"description":"Environments enable and disable collections of global variables.","anyOf":[{"$ref":"#/definitions/OxlintEnv"},{"type":"null"}],"markdownDescription":"Environments enable and disable collections of global variables."},"files":{"description":"A list of glob patterns to override.\\n\\n## Example\\n`[ \\"*.test.ts\\", \\"*.spec.ts\\" ]`","allOf":[{"$ref":"#/definitions/GlobSet"}],"markdownDescription":"A list of glob patterns to override.\\n\\n## Example\\n`[ \\"*.test.ts\\", \\"*.spec.ts\\" ]`"},"globals":{"description":"Enabled or disabled specific global variables.","anyOf":[{"$ref":"#/definitions/OxlintGlobals"},{"type":"null"}],"markdownDescription":"Enabled or disabled specific global variables."},"jsPlugins":{"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 experimental and not subject to semver.\\nThey are not supported in the language server (and thus editor integrations) at present.","anyOf":[{"type":"null"},{"type":"array","items":{"$ref":"#/definitions/ExternalPluginEntry"},"uniqueItems":true}],"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 experimental and not subject to semver.\\nThey are not supported in the language server (and thus editor integrations) at present."},"plugins":{"description":"Optionally change what plugins are enabled for this override. When\\nomitted, the base config\'s plugins are used.","default":null,"anyOf":[{"$ref":"#/definitions/LintPlugins"},{"type":"null"}],"markdownDescription":"Optionally change what plugins are enabled for this override. When\\nomitted, the base config\'s plugins are used."},"rules":{"default":{},"allOf":[{"$ref":"#/definitions/OxlintRules"}]}},"additionalProperties":false},"OxlintOverrides":{"type":"array","items":{"$ref":"#/definitions/OxlintOverride"}},"OxlintRules":{"$ref":"#/definitions/DummyRuleMap"},"OxlintSettings":{"title":"Oxlint Plugin Settings","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```","type":"object","properties":{"jsdoc":{"default":{"ignorePrivate":false,"ignoreInternal":false,"ignoreReplacesDocs":true,"overrideReplacesDocs":true,"augmentsExtendsReplacesDocs":false,"implementsReplacesDocs":false,"exemptDestructuredRootsFromChecks":false,"tagNamePreference":{}},"allOf":[{"$ref":"#/definitions/JSDocPluginSettings"}]},"jsx-a11y":{"default":{"polymorphicPropName":null,"components":{},"attributes":{}},"allOf":[{"$ref":"#/definitions/JSXA11yPluginSettings"}]},"next":{"default":{"rootDir":[]},"allOf":[{"$ref":"#/definitions/NextPluginSettings"}]},"react":{"default":{"formComponents":[],"linkComponents":[],"version":null,"componentWrapperFunctions":[]},"allOf":[{"$ref":"#/definitions/ReactPluginSettings"}]},"vitest":{"default":{"typecheck":false},"allOf":[{"$ref":"#/definitions/VitestPluginSettings"}]}},"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```"},"ReactPluginSettings":{"description":"Configure React plugin rules.\\n\\nDerived from [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react#configuration-legacy-eslintrc-)","type":"object","properties":{"componentWrapperFunctions":{"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```","default":[],"type":"array","items":{"type":"string"},"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```"},"formComponents":{"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```","default":[],"type":"array","items":{"$ref":"#/definitions/CustomComponent"},"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```"},"linkComponents":{"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```","default":[],"type":"array","items":{"$ref":"#/definitions/CustomComponent"},"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```"},"version":{"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```","default":null,"type":["string","null"],"pattern":"^[1-9]\\\\d*(\\\\.(0|[1-9]\\\\d*))?(\\\\.(0|[1-9]\\\\d*))?$","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```"}},"markdownDescription":"Configure React plugin rules.\\n\\nDerived from [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react#configuration-legacy-eslintrc-)"},"TagNamePreference":{"anyOf":[{"type":"string"},{"type":"object","required":["message","replacement"],"properties":{"message":{"type":"string"},"replacement":{"type":"string"}}},{"type":"object","required":["message"],"properties":{"message":{"type":"string"}}},{"type":"boolean"}]},"VitestPluginSettings":{"description":"Configure Vitest plugin rules.\\n\\nSee [eslint-plugin-vitest](https://github.com/vitest-dev/eslint-plugin-vitest)\'s\\nconfiguration for a full reference.","type":"object","properties":{"typecheck":{"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.","default":false,"type":"boolean","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."}},"markdownDescription":"Configure Vitest plugin rules.\\n\\nSee [eslint-plugin-vitest](https://github.com/vitest-dev/eslint-plugin-vitest)\'s\\nconfiguration for a full reference."}},"markdownDescription":"Oxlint Configuration File\\n\\nThis configuration is aligned with ESLint v8\'s configuration schema (`eslintrc.json`).\\n\\nUsage: `oxlint -c oxlintrc.json --import-plugin`\\n\\n::: danger NOTE\\n\\nOnly the `.json` format is supported. You can use comments in configuration files.\\n\\n:::\\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},\\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```"}';
2709
+
2597
2710
  // src/datamitsu-config/uvVersions.json
2598
2711
  var uvVersions_default = {
2599
2712
  checkov: {
@@ -2713,9 +2826,17 @@ var mapOfApps = {
2713
2826
  }
2714
2827
  },
2715
2828
  oxlint: {
2716
- shell: {
2717
- args: [],
2718
- name: facts().env.DATAMITSU_APP_OXLINT_BINARY_FILEPATH || ""
2829
+ files: {
2830
+ ".oxlintrc.json": JSON.stringify(oxlintrc_default),
2831
+ "oxlint_configuration_schema.json": data3
2832
+ },
2833
+ fnm: {
2834
+ binPath: "node_modules/.bin/oxlint",
2835
+ ...fnmVersions_default.oxlint
2836
+ },
2837
+ links: {
2838
+ ".oxlintrc.json": ".oxlintrc.json",
2839
+ "oxlint_configuration_schema.json": "oxlint_configuration_schema.json"
2719
2840
  }
2720
2841
  },
2721
2842
  pnpm: {
@@ -2725,12 +2846,7 @@ var mapOfApps = {
2725
2846
  lockFile: "br:G6kBQBwHdiz4RuhgYyJ4djCvvpK+DdaLkb49VAogDeKCBvdtu7+/QnLaKRAkCKIVNGuG0DnNEXRXuk3w6OmuYujML0vgAzRHrVYjqjMcCkgxZB8+o9Xby+UNfrvISHWGhsWSWbh1RHU49FdEOMhc3sCgJiaVpM63S5ib+OlyHDFZIY+bkecYkWe4RbRNNS9ykgESeeIQFQuH8Vul6T/b6m2EzVTmBVqSi8+2Tl7X2a5VyRW3Y5/L9al/7o8Ho/ZxqeX3AKL+rero3LAxzOpal2fXz4ztwX3yOj/m41IUjsXgvQ5Yhd0B2Tu2w6lv238kOXti/IbUzYg6Nq8xvIBuGDaFYHsitIHT9HLuNrbYLt8/Ag=="
2726
2847
  }
2727
2848
  },
2728
- prettier: {
2729
- shell: {
2730
- args: [],
2731
- name: facts().env.DATAMITSU_APP_PRETTIER_BINARY_FILEPATH || ""
2732
- }
2733
- },
2849
+ prettier: prettierApp,
2734
2850
  quicktype: {
2735
2851
  fnm: {
2736
2852
  binPath: "node_modules/.bin/quicktype",
@@ -2794,7 +2910,7 @@ var mapOfApps = {
2794
2910
 
2795
2911
  // package.json
2796
2912
  var name = "@shibanet0/datamitsu-config";
2797
- var version = "0.0.3-alpha-1";
2913
+ var version = "0.0.3-alpha-3";
2798
2914
 
2799
2915
  // src/oxlint/index.ts
2800
2916
  var finalized = {
@@ -3093,7 +3209,7 @@ var init = {
3093
3209
  ".editorconfig": {
3094
3210
  content: (context) => {
3095
3211
  const existing = INI.toRecord(INI.parse(context.existingContent || ""));
3096
- const data2 = [
3212
+ const data4 = [
3097
3213
  {
3098
3214
  name: "DEFAULT",
3099
3215
  properties: { root: "true" }
@@ -3166,18 +3282,18 @@ var init = {
3166
3282
  // },
3167
3283
  // },
3168
3284
  ];
3169
- return INI.stringify(data2);
3285
+ return INI.stringify(data4);
3170
3286
  },
3171
3287
  rootOnly: true
3172
3288
  },
3173
3289
  ".editorconfig-checker.json": {
3174
3290
  content: (context) => {
3175
- const data2 = JSON.parse(context.existingContent || "{}");
3291
+ const data4 = JSON.parse(context.existingContent || "{}");
3176
3292
  return JSON.stringify(
3177
3293
  {
3178
- ...data2,
3294
+ ...data4,
3179
3295
  Disable: {
3180
- ...data2.Disable
3296
+ ...data4.Disable
3181
3297
  }
3182
3298
  },
3183
3299
  null,
@@ -3197,9 +3313,9 @@ var init = {
3197
3313
  },
3198
3314
  ".gitleaks.toml": {
3199
3315
  content: (context) => {
3200
- const data2 = TOML.parse(context.existingContent || "");
3316
+ const data4 = TOML.parse(context.existingContent || "");
3201
3317
  return TOML.stringify({
3202
- ...data2,
3318
+ ...data4,
3203
3319
  extend: {
3204
3320
  useDefault: true
3205
3321
  },
@@ -3244,15 +3360,20 @@ var init = {
3244
3360
  rootOnly: true
3245
3361
  },
3246
3362
  ".oxlintrc.json": {
3247
- content: () => {
3363
+ content: (context) => {
3248
3364
  return JSON.stringify(
3249
3365
  {
3250
3366
  ...oxlintConfig,
3251
3367
  ...env().DATAMITSU_DEV_MODE ? {
3252
- $schema: "./oxlint_configuration_schema.json",
3368
+ $schema: tools.Path.join(
3369
+ context.datamitsuDir,
3370
+ "oxlint_configuration_schema.json"
3371
+ ),
3253
3372
  rules: oxlintConfig.rules
3254
3373
  } : {
3255
- extends: [`./node_modules/${facts().env.DATAMITSU_PACKAGE_NAME}/.oxlintrc.json`],
3374
+ extends: tools.Path.forImport(
3375
+ tools.Path.join(context.datamitsuDir, ".oxlintrc.json")
3376
+ ),
3256
3377
  rules: void 0
3257
3378
  }
3258
3379
  },
@@ -3542,13 +3663,10 @@ var init = {
3542
3663
  },
3543
3664
  "eslint.config.js": {
3544
3665
  content: (context) => {
3545
- const relPath = tools.Path.rel(context.cwdPath, context.rootPath);
3546
- console.log(JSON.stringify(context, null, 2));
3547
- console.log(relPath);
3548
3666
  if (env().DATAMITSU_DEV_MODE) {
3549
3667
  return `import { join } from "node:path";
3550
3668
 
3551
- import { defineConfig } from "${relPath}/.datamitsu/eslint.config.js";
3669
+ import { defineConfig } from "${tools.Path.forImport(tools.Path.join(context.datamitsuDir, "eslint.config.js"))}";
3552
3670
  import packageJSON from "./package.json" with { type: "json" };
3553
3671
 
3554
3672
  const config = await defineConfig(
@@ -3580,7 +3698,7 @@ export default [
3580
3698
  }
3581
3699
  return `import { join } from "node:path";
3582
3700
 
3583
- import { defineConfig } from "${facts().env.DATAMITSU_PACKAGE_NAME}/eslint";
3701
+ import { defineConfig } from "${tools.Path.forImport(tools.Path.join(context.datamitsuDir, "eslint.config.js"))}";
3584
3702
 
3585
3703
  import packageJSON from "./package.json" with { type: "json" };
3586
3704
 
@@ -3631,9 +3749,9 @@ export default config;
3631
3749
  // },
3632
3750
  "hadolint.yaml": {
3633
3751
  content: (context) => {
3634
- const data2 = YAML.parse(context.existingContent || "");
3752
+ const data4 = YAML.parse(context.existingContent || "");
3635
3753
  return YAML.stringify({
3636
- ...data2
3754
+ ...data4
3637
3755
  });
3638
3756
  },
3639
3757
  otherFileNameList: [
@@ -3765,11 +3883,11 @@ export default config;
3765
3883
  },
3766
3884
  "package.json": {
3767
3885
  content: ({ existingContent, isRoot }) => {
3768
- const data2 = JSON.parse(existingContent || "{}");
3886
+ const data4 = JSON.parse(existingContent || "{}");
3769
3887
  const config = {
3770
- ...data2,
3888
+ ...data4,
3771
3889
  scripts: {
3772
- ...data2.scripts,
3890
+ ...data4.scripts,
3773
3891
  ...isRoot ? {
3774
3892
  postinstall: void 0,
3775
3893
  preinstall: "npx only-allow@1.2.2 pnpm",
@@ -3785,24 +3903,24 @@ export default config;
3785
3903
  }
3786
3904
  },
3787
3905
  type: "module",
3788
- ...typeof data2.config === "object" ? {
3906
+ ...typeof data4.config === "object" ? {
3789
3907
  config: {
3790
- ...data2.config,
3908
+ ...data4.config,
3791
3909
  syncpack: void 0
3792
3910
  }
3793
3911
  } : {},
3794
- dependencies: cleanDependencies(data2.dependencies),
3912
+ dependencies: cleanDependencies(data4.dependencies),
3795
3913
  devDependencies: {
3796
- ...cleanDependencies(data2.devDependencies),
3914
+ ...cleanDependencies(data4.devDependencies),
3797
3915
  ...env().DATAMITSU_DEV_MODE ? {} : { [name]: version }
3798
3916
  },
3799
3917
  engines: isRoot ? {
3800
3918
  node: `>=${runtimeVersions.node}`,
3801
3919
  pnpm: `>=${fnmVersions_default.pnpm.version}`
3802
3920
  } : void 0,
3803
- optionalDependencies: cleanDependencies(data2.optionalDependencies),
3921
+ optionalDependencies: cleanDependencies(data4.optionalDependencies),
3804
3922
  packageManager: isRoot ? `pnpm@${fnmVersions_default.pnpm.version}` : void 0,
3805
- peerDependencies: cleanDependencies(data2.peerDependencies),
3923
+ peerDependencies: cleanDependencies(data4.peerDependencies),
3806
3924
  ...{
3807
3925
  eslintConfig: void 0,
3808
3926
  "lint-staged": void 0,
@@ -3857,9 +3975,9 @@ export default config;
3857
3975
  // },
3858
3976
  // },
3859
3977
  "prettier.config.js": {
3860
- content: () => {
3978
+ content: (context) => {
3861
3979
  return [
3862
- `import { defineConfig } from "${facts().env.DATAMITSU_PACKAGE_NAME}/prettier${env().DATAMITSU_DEV_MODE ? "/index.js" : ""}";`,
3980
+ `import { defineConfig } from "${tools.Path.forImport(tools.Path.join(context.datamitsuDir, "prettier.config.js"))}";`,
3863
3981
  "",
3864
3982
  `const config = defineConfig();`,
3865
3983
  "",
@@ -3891,14 +4009,14 @@ export default config;
3891
4009
  },
3892
4010
  "turbo.json": {
3893
4011
  content: (context) => {
3894
- const data2 = JSON.parse(context.existingContent || "{}");
4012
+ const data4 = JSON.parse(context.existingContent || "{}");
3895
4013
  return JSON.stringify(
3896
4014
  {
3897
- ...data2,
4015
+ ...data4,
3898
4016
  $schema: "https://turbo.build/schema.json",
3899
4017
  globalEnv: ["TZ", "PORT", "CI"],
3900
4018
  tasks: {
3901
- ...data2.tasks,
4019
+ ...data4.tasks,
3902
4020
  build: {
3903
4021
  dependsOn: ["build:lib", "^build"],
3904
4022
  outputs: ["dist/**", ".next/**", "!.next/cache/**"]
@@ -0,0 +1 @@
1
+ export declare const prettierApp: BinManager.App;
@@ -0,0 +1 @@
1
+ export declare const data = "{\"$schema\":\"http://json-schema.org/draft-07/schema#\",\"title\":\"Oxlintrc\",\"description\":\"Oxlint Configuration File\\n\\nThis configuration is aligned with ESLint v8's configuration schema (`eslintrc.json`).\\n\\nUsage: `oxlint -c oxlintrc.json --import-plugin`\\n\\n::: danger NOTE\\n\\nOnly the `.json` format is supported. You can use comments in configuration files.\\n\\n:::\\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},\\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```\",\"type\":\"object\",\"properties\":{\"$schema\":{\"description\":\"Schema URI for editor tooling.\",\"type\":[\"string\",\"null\"],\"markdownDescription\":\"Schema URI for editor tooling.\"},\"categories\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/definitions/OxlintCategories\"}]},\"env\":{\"description\":\"Environments enable and disable collections of global variables.\",\"default\":{\"builtin\":true},\"allOf\":[{\"$ref\":\"#/definitions/OxlintEnv\"}],\"markdownDescription\":\"Environments enable and disable collections of global variables.\"},\"extends\":{\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"},\"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.\"},\"globals\":{\"description\":\"Enabled or disabled specific global variables.\",\"default\":{},\"allOf\":[{\"$ref\":\"#/definitions/OxlintGlobals\"}],\"markdownDescription\":\"Enabled or disabled specific global variables.\"},\"ignorePatterns\":{\"description\":\"Globs to ignore during linting. These are resolved from the configuration file path.\",\"default\":[],\"type\":\"array\",\"items\":{\"type\":\"string\"},\"markdownDescription\":\"Globs to ignore during linting. These are resolved from the configuration file path.\"},\"jsPlugins\":{\"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 experimental and not subject to semver.\\nThey are not supported in the language server (and thus editor integrations) at present.\",\"anyOf\":[{\"type\":\"null\"},{\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/ExternalPluginEntry\"},\"uniqueItems\":true}],\"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 experimental and not subject to semver.\\nThey are not supported in the language server (and thus editor integrations) at present.\"},\"overrides\":{\"description\":\"Add, remove, or otherwise reconfigure rules for specific files or groups of files.\",\"allOf\":[{\"$ref\":\"#/definitions/OxlintOverrides\"}],\"markdownDescription\":\"Add, remove, or otherwise reconfigure rules for specific files or groups of files.\"},\"plugins\":{\"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.\",\"default\":null,\"anyOf\":[{\"$ref\":\"#/definitions/LintPlugins\"},{\"type\":\"null\"}],\"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.\"},\"rules\":{\"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.\",\"default\":{},\"allOf\":[{\"$ref\":\"#/definitions/OxlintRules\"}],\"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.\"},\"settings\":{\"default\":{\"jsx-a11y\":{\"polymorphicPropName\":null,\"components\":{},\"attributes\":{}},\"next\":{\"rootDir\":[]},\"react\":{\"formComponents\":[],\"linkComponents\":[],\"version\":null,\"componentWrapperFunctions\":[]},\"jsdoc\":{\"ignorePrivate\":false,\"ignoreInternal\":false,\"ignoreReplacesDocs\":true,\"overrideReplacesDocs\":true,\"augmentsExtendsReplacesDocs\":false,\"implementsReplacesDocs\":false,\"exemptDestructuredRootsFromChecks\":false,\"tagNamePreference\":{}},\"vitest\":{\"typecheck\":false}},\"allOf\":[{\"$ref\":\"#/definitions/OxlintSettings\"}]}},\"additionalProperties\":false,\"allowComments\":true,\"allowTrailingCommas\":true,\"definitions\":{\"AllowWarnDeny\":{\"oneOf\":[{\"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).\",\"type\":\"string\",\"enum\":[\"allow\",\"off\",\"warn\",\"error\",\"deny\"],\"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).\"},{\"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).\",\"type\":\"integer\",\"format\":\"uint32\",\"maximum\":2,\"minimum\":0,\"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).\"}]},\"CustomComponent\":{\"anyOf\":[{\"type\":\"string\"},{\"type\":\"object\",\"required\":[\"attribute\",\"name\"],\"properties\":{\"attribute\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"}}},{\"type\":\"object\",\"required\":[\"attributes\",\"name\"],\"properties\":{\"attributes\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"name\":{\"type\":\"string\"}}}]},\"DummyRule\":{\"anyOf\":[{\"$ref\":\"#/definitions/AllowWarnDeny\"},{\"type\":\"array\",\"items\":true}]},\"DummyRuleMap\":{\"description\":\"See [Oxlint Rules](https://oxc.rs/docs/guide/usage/linter/rules.html)\",\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"#/definitions/DummyRule\"},\"markdownDescription\":\"See [Oxlint Rules](https://oxc.rs/docs/guide/usage/linter/rules.html)\"},\"ExternalPluginEntry\":{\"anyOf\":[{\"description\":\"Path or package name of the plugin\",\"type\":\"string\",\"markdownDescription\":\"Path or package name of the plugin\"},{\"description\":\"Plugin with custom name/alias\",\"type\":\"object\",\"required\":[\"name\",\"specifier\"],\"properties\":{\"name\":{\"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.\",\"type\":\"string\",\"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.\"},\"specifier\":{\"description\":\"Path or package name of the plugin\",\"type\":\"string\",\"markdownDescription\":\"Path or package name of the plugin\"}},\"additionalProperties\":false,\"markdownDescription\":\"Plugin with custom name/alias\"}]},\"GlobSet\":{\"description\":\"A set of glob patterns.\",\"type\":\"array\",\"items\":{\"type\":\"string\"},\"markdownDescription\":\"A set of glob patterns.\"},\"GlobalValue\":{\"type\":\"string\",\"enum\":[\"readonly\",\"writable\",\"off\"]},\"JSDocPluginSettings\":{\"type\":\"object\",\"properties\":{\"augmentsExtendsReplacesDocs\":{\"description\":\"Only for `require-(yields|returns|description|example|param|throws)` rule\",\"default\":false,\"type\":\"boolean\",\"markdownDescription\":\"Only for `require-(yields|returns|description|example|param|throws)` rule\"},\"exemptDestructuredRootsFromChecks\":{\"description\":\"Only for `require-param-type` and `require-param-description` rule\",\"default\":false,\"type\":\"boolean\",\"markdownDescription\":\"Only for `require-param-type` and `require-param-description` rule\"},\"ignoreInternal\":{\"description\":\"For all rules but NOT apply to `empty-tags` rule\",\"default\":false,\"type\":\"boolean\",\"markdownDescription\":\"For all rules but NOT apply to `empty-tags` rule\"},\"ignorePrivate\":{\"description\":\"For all rules but NOT apply to `check-access` and `empty-tags` rule\",\"default\":false,\"type\":\"boolean\",\"markdownDescription\":\"For all rules but NOT apply to `check-access` and `empty-tags` rule\"},\"ignoreReplacesDocs\":{\"description\":\"Only for `require-(yields|returns|description|example|param|throws)` rule\",\"default\":true,\"type\":\"boolean\",\"markdownDescription\":\"Only for `require-(yields|returns|description|example|param|throws)` rule\"},\"implementsReplacesDocs\":{\"description\":\"Only for `require-(yields|returns|description|example|param|throws)` rule\",\"default\":false,\"type\":\"boolean\",\"markdownDescription\":\"Only for `require-(yields|returns|description|example|param|throws)` rule\"},\"overrideReplacesDocs\":{\"description\":\"Only for `require-(yields|returns|description|example|param|throws)` rule\",\"default\":true,\"type\":\"boolean\",\"markdownDescription\":\"Only for `require-(yields|returns|description|example|param|throws)` rule\"},\"tagNamePreference\":{\"default\":{},\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"#/definitions/TagNamePreference\"}}}},\"JSXA11yPluginSettings\":{\"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.\",\"type\":\"object\",\"properties\":{\"attributes\":{\"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```\",\"default\":{},\"type\":\"object\",\"additionalProperties\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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```\"},\"components\":{\"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```\",\"default\":{},\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"},\"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```\"},\"polymorphicPropName\":{\"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`.\",\"type\":[\"string\",\"null\"],\"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`.\"}},\"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.\"},\"LintPluginOptionsSchema\":{\"type\":\"string\",\"enum\":[\"eslint\",\"react\",\"unicorn\",\"typescript\",\"oxc\",\"import\",\"jsdoc\",\"jest\",\"vitest\",\"jsx-a11y\",\"nextjs\",\"react-perf\",\"promise\",\"node\",\"vue\"]},\"LintPlugins\":{\"type\":\"array\",\"items\":{\"anyOf\":[{\"$ref\":\"#/definitions/LintPluginOptionsSchema\"}]}},\"NextPluginSettings\":{\"description\":\"Configure Next.js plugin rules.\",\"type\":\"object\",\"properties\":{\"rootDir\":{\"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```\",\"default\":[],\"allOf\":[{\"$ref\":\"#/definitions/OneOrMany_for_String\"}],\"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```\"}},\"markdownDescription\":\"Configure Next.js plugin rules.\"},\"OneOrMany_for_String\":{\"anyOf\":[{\"type\":\"string\"},{\"type\":\"array\",\"items\":{\"type\":\"string\"}}]},\"OxlintCategories\":{\"title\":\"Rule Categories\",\"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```\",\"examples\":[{\"correctness\":\"warn\"}],\"type\":\"object\",\"properties\":{\"correctness\":{\"$ref\":\"#/definitions/AllowWarnDeny\"},\"nursery\":{\"$ref\":\"#/definitions/AllowWarnDeny\"},\"pedantic\":{\"$ref\":\"#/definitions/AllowWarnDeny\"},\"perf\":{\"$ref\":\"#/definitions/AllowWarnDeny\"},\"restriction\":{\"$ref\":\"#/definitions/AllowWarnDeny\"},\"style\":{\"$ref\":\"#/definitions/AllowWarnDeny\"},\"suspicious\":{\"$ref\":\"#/definitions/AllowWarnDeny\"}},\"additionalProperties\":false,\"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```\"},\"OxlintEnv\":{\"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.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"boolean\"},\"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.\"},\"OxlintGlobals\":{\"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\\\"`.\",\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"#/definitions/GlobalValue\"},\"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\\\"`.\"},\"OxlintOverride\":{\"type\":\"object\",\"required\":[\"files\"],\"properties\":{\"env\":{\"description\":\"Environments enable and disable collections of global variables.\",\"anyOf\":[{\"$ref\":\"#/definitions/OxlintEnv\"},{\"type\":\"null\"}],\"markdownDescription\":\"Environments enable and disable collections of global variables.\"},\"files\":{\"description\":\"A list of glob patterns to override.\\n\\n## Example\\n`[ \\\"*.test.ts\\\", \\\"*.spec.ts\\\" ]`\",\"allOf\":[{\"$ref\":\"#/definitions/GlobSet\"}],\"markdownDescription\":\"A list of glob patterns to override.\\n\\n## Example\\n`[ \\\"*.test.ts\\\", \\\"*.spec.ts\\\" ]`\"},\"globals\":{\"description\":\"Enabled or disabled specific global variables.\",\"anyOf\":[{\"$ref\":\"#/definitions/OxlintGlobals\"},{\"type\":\"null\"}],\"markdownDescription\":\"Enabled or disabled specific global variables.\"},\"jsPlugins\":{\"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 experimental and not subject to semver.\\nThey are not supported in the language server (and thus editor integrations) at present.\",\"anyOf\":[{\"type\":\"null\"},{\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/ExternalPluginEntry\"},\"uniqueItems\":true}],\"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 experimental and not subject to semver.\\nThey are not supported in the language server (and thus editor integrations) at present.\"},\"plugins\":{\"description\":\"Optionally change what plugins are enabled for this override. When\\nomitted, the base config's plugins are used.\",\"default\":null,\"anyOf\":[{\"$ref\":\"#/definitions/LintPlugins\"},{\"type\":\"null\"}],\"markdownDescription\":\"Optionally change what plugins are enabled for this override. When\\nomitted, the base config's plugins are used.\"},\"rules\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/definitions/OxlintRules\"}]}},\"additionalProperties\":false},\"OxlintOverrides\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/OxlintOverride\"}},\"OxlintRules\":{\"$ref\":\"#/definitions/DummyRuleMap\"},\"OxlintSettings\":{\"title\":\"Oxlint Plugin Settings\",\"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```\",\"type\":\"object\",\"properties\":{\"jsdoc\":{\"default\":{\"ignorePrivate\":false,\"ignoreInternal\":false,\"ignoreReplacesDocs\":true,\"overrideReplacesDocs\":true,\"augmentsExtendsReplacesDocs\":false,\"implementsReplacesDocs\":false,\"exemptDestructuredRootsFromChecks\":false,\"tagNamePreference\":{}},\"allOf\":[{\"$ref\":\"#/definitions/JSDocPluginSettings\"}]},\"jsx-a11y\":{\"default\":{\"polymorphicPropName\":null,\"components\":{},\"attributes\":{}},\"allOf\":[{\"$ref\":\"#/definitions/JSXA11yPluginSettings\"}]},\"next\":{\"default\":{\"rootDir\":[]},\"allOf\":[{\"$ref\":\"#/definitions/NextPluginSettings\"}]},\"react\":{\"default\":{\"formComponents\":[],\"linkComponents\":[],\"version\":null,\"componentWrapperFunctions\":[]},\"allOf\":[{\"$ref\":\"#/definitions/ReactPluginSettings\"}]},\"vitest\":{\"default\":{\"typecheck\":false},\"allOf\":[{\"$ref\":\"#/definitions/VitestPluginSettings\"}]}},\"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```\"},\"ReactPluginSettings\":{\"description\":\"Configure React plugin rules.\\n\\nDerived from [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react#configuration-legacy-eslintrc-)\",\"type\":\"object\",\"properties\":{\"componentWrapperFunctions\":{\"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```\",\"default\":[],\"type\":\"array\",\"items\":{\"type\":\"string\"},\"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```\"},\"formComponents\":{\"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```\",\"default\":[],\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/CustomComponent\"},\"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```\"},\"linkComponents\":{\"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```\",\"default\":[],\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/CustomComponent\"},\"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```\"},\"version\":{\"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```\",\"default\":null,\"type\":[\"string\",\"null\"],\"pattern\":\"^[1-9]\\\\d*(\\\\.(0|[1-9]\\\\d*))?(\\\\.(0|[1-9]\\\\d*))?$\",\"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```\"}},\"markdownDescription\":\"Configure React plugin rules.\\n\\nDerived from [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react#configuration-legacy-eslintrc-)\"},\"TagNamePreference\":{\"anyOf\":[{\"type\":\"string\"},{\"type\":\"object\",\"required\":[\"message\",\"replacement\"],\"properties\":{\"message\":{\"type\":\"string\"},\"replacement\":{\"type\":\"string\"}}},{\"type\":\"object\",\"required\":[\"message\"],\"properties\":{\"message\":{\"type\":\"string\"}}},{\"type\":\"boolean\"}]},\"VitestPluginSettings\":{\"description\":\"Configure Vitest plugin rules.\\n\\nSee [eslint-plugin-vitest](https://github.com/vitest-dev/eslint-plugin-vitest)'s\\nconfiguration for a full reference.\",\"type\":\"object\",\"properties\":{\"typecheck\":{\"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.\",\"default\":false,\"type\":\"boolean\",\"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.\"}},\"markdownDescription\":\"Configure Vitest plugin rules.\\n\\nSee [eslint-plugin-vitest](https://github.com/vitest-dev/eslint-plugin-vitest)'s\\nconfiguration for a full reference.\"}},\"markdownDescription\":\"Oxlint Configuration File\\n\\nThis configuration is aligned with ESLint v8's configuration schema (`eslintrc.json`).\\n\\nUsage: `oxlint -c oxlintrc.json --import-plugin`\\n\\n::: danger NOTE\\n\\nOnly the `.json` format is supported. You can use comments in configuration files.\\n\\n:::\\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},\\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```\"}";
@@ -0,0 +1 @@
1
+ export declare const data = "tar.br:G/8HAMaMOV/XqFwVUIYg3CZsgWjwZu/hEosgshJ8H8/FD9p3D5guB4btLnI1nsRqUbaH5tIPFPxq3CDRLJzPRzAA82DZiS/gvw7e8fl0BjGM180RKcEMjgH4DGHGpknfttHz4tBp1c/L2mvbyKv1e0KU5qVCbZNGeXvfV5KTYkbWE+sahaapHZOKKckUq4sDg18MNZvyRRLDOXK1ftMiLAcjh0RWXRfD36q9vLmT+EI3X0MPXu7+fJ02FaLUR+issdG/xKrWsiHYgy7OqygP/hGo0w7TlHeNp4BoShojOEZmdFNtybaHUJjXmOhuNyAN/cqBDA==";
@@ -97,6 +97,37 @@ declare global {
97
97
  */
98
98
  function abs(path: string): string;
99
99
 
100
+ /**
101
+ * Convert a relative path to an ES module import-compatible format.
102
+ * Ensures the path starts with `./` or `../` as required by JavaScript/TypeScript imports.
103
+ * The path is cleaned/normalized before processing.
104
+ * Idempotent: paths already starting with `./` or `../` are returned unchanged.
105
+ *
106
+ * @param path - Relative path to convert
107
+ * @returns Import-compatible relative path (always starts with `./` or `../`)
108
+ * @throws TypeError if path is absolute (imports must be relative)
109
+ * @throws TypeError if no argument is provided
110
+ *
111
+ * @example
112
+ * // Basic usage with datamitsuDir context
113
+ * const importPath = tools.Path.forImport(
114
+ * tools.Path.join(context.datamitsuDir, "eslint.config.js")
115
+ * );
116
+ * // ".datamitsu/eslint.config.js" → "./.datamitsu/eslint.config.js"
117
+ *
118
+ * @example
119
+ * // Idempotent — already-valid paths are unchanged
120
+ * tools.Path.forImport("./.datamitsu/file.js"); // "./.datamitsu/file.js"
121
+ * tools.Path.forImport("../.datamitsu/file.js"); // "../.datamitsu/file.js"
122
+ *
123
+ * @example
124
+ * // Composing with linkPath for managed config imports
125
+ * const configPath = tools.Config.linkPath("my-app", "eslint-config", context.cwdPath);
126
+ * const importPath = tools.Path.forImport(configPath);
127
+ * // Use in generated config: `import config from "${importPath}";`
128
+ */
129
+ function forImport(path: string): string;
130
+
100
131
  /**
101
132
  * Join path segments together using the OS-specific separator
102
133
  * @param paths - Path segments to join
@@ -259,6 +290,14 @@ declare global {
259
290
  */
260
291
  cwdPath: string;
261
292
 
293
+ /**
294
+ * Relative path from cwdPath to the .datamitsu/ directory at git root.
295
+ * Simplifies referencing managed config links in content generators.
296
+ * @example "../../.datamitsu" // from packages/frontend/
297
+ * @example ".datamitsu" // from git root
298
+ */
299
+ datamitsuDir: string;
300
+
262
301
  /**
263
302
  * Content of existing file (if it exists)
264
303
  * This may be modified content from previous merge operations
@@ -454,6 +493,11 @@ declare global {
454
493
  * Tool operation configuration - how to run a tool for a specific operation
455
494
  */
456
495
  interface ToolOperation {
496
+ /**
497
+ * App to execute (app name from MapOfApps)
498
+ */
499
+ app: string;
500
+
457
501
  /**
458
502
  * Arguments to pass to the command.
459
503
  * Template placeholders are expanded by the executor before execution:
@@ -475,11 +519,6 @@ declare global {
475
519
  */
476
520
  batch?: boolean;
477
521
 
478
- /**
479
- * App to execute (app name from MapOfApps)
480
- */
481
- app: string;
482
-
483
522
  /**
484
523
  * Extra environment variables for this operation
485
524
  * Merge priority: OS env < app env < tool operation env