@shibanet0/datamitsu-config 0.0.1-alpha-1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
File without changes
@@ -0,0 +1,10 @@
1
+ // src/commitlint/index.ts
2
+ import "@commitlint/config-conventional";
3
+ import "@commitlint/types";
4
+ var config = {
5
+ extends: ["@commitlint/config-conventional"],
6
+ formatter: "@commitlint/format"
7
+ };
8
+ export {
9
+ config
10
+ };
@@ -0,0 +1 @@
1
+ export declare const ignoreGroups: tools.Ignore.IgnoreMap<"Build outputs" | "Cache & temporary files" | "Dependencies" | "Environment" | "Golang specific" | "IDE & OS" | "Logs" | "Other" | "Security & Secrets" | "Testing">;
@@ -0,0 +1,2 @@
1
+ import type { DefineConfigFn } from "./types";
2
+ export declare const defineConfig: DefineConfigFn;
@@ -0,0 +1,66 @@
1
+ // src/eslint/index.ts
2
+ import eslint from "@eslint/js";
3
+ import { defineConfig as eslintDefineConfig, globalIgnores } from "eslint/config";
4
+ import tseslint from "typescript-eslint";
5
+ var todoDisable = [
6
+ {
7
+ rules: {
8
+ "@typescript-eslint/no-explicit-any": "off",
9
+ "@typescript-eslint/no-unused-vars": "off",
10
+ "no-undef": "off"
11
+ }
12
+ }
13
+ ];
14
+ var defineConfig = async (config, options = {
15
+ plugins: {
16
+ compat: { disabled: true },
17
+ perfectionist: { disabled: false },
18
+ vitest: { disabled: true }
19
+ }
20
+ }) => {
21
+ const arguments_ = [
22
+ globalIgnores(
23
+ options?.globalIgnores || [
24
+ "**/.next/**",
25
+ "**/storybook-static/**",
26
+ "**/.git/**",
27
+ "**/.turbo/**",
28
+ "**/out/**",
29
+ "**/generated/**",
30
+ "**/playwright-report-html/**",
31
+ "**/playwright-report-allure/**",
32
+ "**/dist",
33
+ "**/build",
34
+ "**/node_modules"
35
+ ]
36
+ ),
37
+ eslint.configs.recommended,
38
+ tseslint.configs.recommended,
39
+ {
40
+ rules: {
41
+ "@typescript-eslint/consistent-type-imports": [
42
+ "error",
43
+ {
44
+ disallowTypeAnnotations: true,
45
+ fixStyle: "separate-type-imports",
46
+ prefer: "type-imports"
47
+ }
48
+ ],
49
+ "@typescript-eslint/no-empty-interface": "off",
50
+ "@typescript-eslint/no-empty-object-type": "off",
51
+ "@typescript-eslint/no-explicit-any": "off",
52
+ "@typescript-eslint/no-unnecessary-type-constraint": "off",
53
+ "@typescript-eslint/no-unused-vars": ["error", { argsIgnorePattern: "^_" }],
54
+ "@typescript-eslint/no-var-requires": "off"
55
+ }
56
+ }
57
+ ];
58
+ if (!options?.plugins?.["perfectionist"]?.disabled) {
59
+ const { perfectionistRules } = await import("../perfectionist-YHPWKMW3.js");
60
+ arguments_.push(...perfectionistRules);
61
+ }
62
+ return eslintDefineConfig([...arguments_, ...config || [], ...todoDisable]);
63
+ };
64
+ export {
65
+ defineConfig
66
+ };
@@ -0,0 +1,2 @@
1
+ import { type ConfigWithExtends } from "@eslint/config-helpers";
2
+ export declare const perfectionistRules: ConfigWithExtends[];
@@ -0,0 +1,88 @@
1
+ import type { ConfigWithExtendsArray } from "@eslint/config-helpers";
2
+ export type DefineConfigFn = (config?: ConfigWithExtendsArray, options?: DefineConfigOptions) => Promise<ConfigWithExtendsArray>;
3
+ export interface DefineConfigOptions {
4
+ globalIgnores?: string[];
5
+ plugins?: {
6
+ compat?: {
7
+ disabled?: boolean;
8
+ };
9
+ "eslint-plugin-array-func"?: {
10
+ disabled?: boolean;
11
+ };
12
+ import?: {
13
+ disabled?: boolean;
14
+ };
15
+ json?: {
16
+ disabled?: boolean;
17
+ };
18
+ "json-schema-validator"?: {
19
+ disabled?: boolean;
20
+ };
21
+ "jsx-a11y"?: {
22
+ disabled?: boolean;
23
+ };
24
+ n?: {
25
+ disabled?: boolean;
26
+ };
27
+ "no-use-extend-native"?: {
28
+ disabled?: boolean;
29
+ };
30
+ perfectionist?: {
31
+ disabled?: boolean;
32
+ };
33
+ playwright?: {
34
+ disabled?: boolean;
35
+ };
36
+ prettier?: {
37
+ disabled?: boolean;
38
+ };
39
+ promise?: {
40
+ disabled?: boolean;
41
+ };
42
+ react?: {
43
+ disabled?: boolean;
44
+ };
45
+ "react-hooks"?: {
46
+ disabled?: boolean;
47
+ };
48
+ "react-perf"?: {
49
+ disabled?: boolean;
50
+ };
51
+ "react-prefer-function-component"?: {
52
+ disabled?: boolean;
53
+ };
54
+ "react-refresh"?: {
55
+ disabled?: boolean;
56
+ };
57
+ security?: {
58
+ disabled?: boolean;
59
+ };
60
+ sonarjs?: {
61
+ disabled?: boolean;
62
+ };
63
+ storybook?: {
64
+ disabled?: boolean;
65
+ };
66
+ toml?: {
67
+ disabled?: boolean;
68
+ };
69
+ turbo?: {
70
+ disabled?: boolean;
71
+ };
72
+ unicorn?: {
73
+ disabled?: boolean;
74
+ };
75
+ "unused-imports"?: {
76
+ disabled?: boolean;
77
+ };
78
+ "vanilla-extract"?: {
79
+ disabled?: boolean;
80
+ };
81
+ vitest?: {
82
+ disabled?: boolean;
83
+ };
84
+ yml?: {
85
+ disabled?: boolean;
86
+ };
87
+ };
88
+ }
@@ -0,0 +1,3 @@
1
+ import type { KnipConfig } from "knip";
2
+ export type * from "knip";
3
+ export declare const config: KnipConfig;
@@ -0,0 +1,8 @@
1
+ // src/knip/index.ts
2
+ var config = {
3
+ entry: ["src/index.ts"],
4
+ project: ["src/**/*.ts"]
5
+ };
6
+ export {
7
+ config
8
+ };
File without changes
@@ -0,0 +1,80 @@
1
+ // src/eslint/plugins/perfectionist.ts
2
+ import "@eslint/config-helpers";
3
+ import perfectionist from "eslint-plugin-perfectionist";
4
+ var perfectionistRules = [
5
+ perfectionist.configs["recommended-natural"],
6
+ {
7
+ rules: {
8
+ "perfectionist/sort-imports": [
9
+ "error",
10
+ {
11
+ customGroups: [
12
+ {
13
+ elementNamePattern: ["^i18next$", "^i18next-.+"],
14
+ groupName: "i18next"
15
+ },
16
+ {
17
+ elementNamePattern: [
18
+ "^react$",
19
+ "^react-.+",
20
+ "^@react-.+",
21
+ "^swr$",
22
+ "^next$",
23
+ "^next/.+",
24
+ "^next-.+",
25
+ "^@next-.+"
26
+ ],
27
+ groupName: "react"
28
+ },
29
+ {
30
+ elementNamePattern: ["^antd$", "^@ant-design.+"],
31
+ groupName: "antd"
32
+ },
33
+ {
34
+ elementNamePattern: ["^fastify$", "^@fastify.+", "^@sinclair/typebox$"],
35
+ groupName: "fastify"
36
+ }
37
+ // {
38
+ // elementNamePattern: [
39
+ // String.raw`.+\.avif$`,
40
+ // String.raw`.+\.webp$`,
41
+ // String.raw`.+\.svg$`,
42
+ // String.raw`.+\.png$`,
43
+ // String.raw`.+\.jpg$`,
44
+ // String.raw`.+\.jpeg$`,
45
+ // String.raw`.+\.gif$`,
46
+ // ],
47
+ // groupName: "media/images",
48
+ // },
49
+ ],
50
+ groups: [
51
+ "i18next",
52
+ "react",
53
+ "antd",
54
+ "fastify",
55
+ // "media/images",
56
+ "type-import",
57
+ ["value-builtin", "value-external"],
58
+ "type-internal",
59
+ "value-internal",
60
+ ["type-parent", "type-sibling", "type-index"],
61
+ ["value-parent", "value-sibling", "value-index"],
62
+ "ts-equals-import",
63
+ "unknown"
64
+ ],
65
+ order: "asc",
66
+ type: "alphabetical"
67
+ }
68
+ ]
69
+ }
70
+ },
71
+ {
72
+ files: ["**/*.css.ts"],
73
+ rules: {
74
+ "perfectionist/sort-objects": "off"
75
+ }
76
+ }
77
+ ];
78
+ export {
79
+ perfectionistRules
80
+ };
@@ -0,0 +1,2 @@
1
+ import type { Config } from "prettier";
2
+ export declare const config: Config;
@@ -0,0 +1,12 @@
1
+ // src/prettier/index.ts
2
+ var config = {
3
+ arrowParens: "always",
4
+ endOfLine: "lf",
5
+ printWidth: 120,
6
+ tabWidth: 2,
7
+ trailingComma: "all",
8
+ useTabs: false
9
+ };
10
+ export {
11
+ config
12
+ };
@@ -0,0 +1,2 @@
1
+ import type { RcFile } from "syncpack";
2
+ export declare const config: RcFile;
@@ -0,0 +1,22 @@
1
+ // src/syncpack/index.ts
2
+ var config = {
3
+ semverGroups: [
4
+ {
5
+ dependencies: ["**"],
6
+ dependencyTypes: ["**"],
7
+ packages: ["**"],
8
+ range: ""
9
+ }
10
+ ],
11
+ versionGroups: [
12
+ {
13
+ dependencies: ["$LOCAL"],
14
+ dependencyTypes: ["!local"],
15
+ label: "use workspace protocol for local packages",
16
+ pinVersion: "workspace:*"
17
+ }
18
+ ]
19
+ };
20
+ export {
21
+ config
22
+ };
@@ -0,0 +1 @@
1
+ export type * from "type-fest";
File without changes
package/package.json ADDED
@@ -0,0 +1,126 @@
1
+ {
2
+ "name": "@shibanet0/datamitsu-config",
3
+ "version": "0.0.1-alpha-1",
4
+ "description": "",
5
+ "keywords": [],
6
+ "license": "MIT",
7
+ "author": "Alexander Svinarev <shibanet0@gmail.com> (shibanet0.com)",
8
+ "type": "module",
9
+ "exports": {
10
+ "./eslint": {
11
+ "import": {
12
+ "types": "./dist/eslint/index.d.ts",
13
+ "default": "./dist/eslint/index.js"
14
+ }
15
+ },
16
+ "./prettier": {
17
+ "import": {
18
+ "types": "./dist/prettier/index.d.ts",
19
+ "default": "./dist/prettier/index.js"
20
+ }
21
+ },
22
+ "./syncpack": {
23
+ "import": {
24
+ "types": "./dist/syncpack/index.d.ts",
25
+ "default": "./dist/syncpack/index.js"
26
+ }
27
+ },
28
+ "./commitlint": {
29
+ "import": {
30
+ "types": "./dist/commitlint/index.d.ts",
31
+ "default": "./dist/commitlint/index.js"
32
+ }
33
+ },
34
+ "./tsconfig/base.json": "./tsconfig/base.json",
35
+ "./knip": {
36
+ "import": {
37
+ "types": "./dist/knip/index.d.ts",
38
+ "default": "./dist/knip/index.js"
39
+ }
40
+ },
41
+ "./type-fest": {
42
+ "import": {
43
+ "types": "./dist/type-fest/index.d.ts"
44
+ }
45
+ }
46
+ },
47
+ "bin": {
48
+ "datamitsu": "bin/datamitsu.mjs",
49
+ "tsc": "bin/tsc.mjs",
50
+ "tsx2": "bin/tsx.mjs"
51
+ },
52
+ "files": [
53
+ "datamitsu.js",
54
+ "tsconfig/**",
55
+ "dist/**",
56
+ "bin/**"
57
+ ],
58
+ "scripts": {
59
+ "build": "pnpm build:lib && tsup && tsgo --emitDeclarationOnly",
60
+ "build:datamitsu-config": "tsup --config ./tsup.config.datamitsu.ts && mv dist-datamitsu-config/main.js datamitsu.js",
61
+ "build:lib": "pnpm build:lib:datamitsu-types && pnpm build:datamitsu-config",
62
+ "build:lib:datamitsu-types": "pnpm build:lib:datamitsu-types:1 && pnpm build:lib:datamitsu-types:2",
63
+ "build:lib:datamitsu-types:1": "echo \"// prettier-ignore\" > src/datamitsu-config/datamitsu.d.ts && datamitsu config types >> src/datamitsu-config/datamitsu.d.ts",
64
+ "build:lib:datamitsu-types:2": "echo \"// prettier-ignore\" > scripts/datamitsu.d.ts && datamitsu config types >> scripts/datamitsu.d.ts",
65
+ "datamitsu": "DATAMITSU_PACKAGE_NAME=\"./dist\" bin/datamitsu.mjs --binary-command \"node bin/datamitsu.mjs\"",
66
+ "preinstall": "npx only-allow@1.2.2 pnpm",
67
+ "postinstall": "pnpm build:lib && pnpm datamitsu init",
68
+ "knip": "knip",
69
+ "lint": "tsgo --noEmit",
70
+ "pull": "tsx scripts/pull.ts",
71
+ "temp:publish": "npm publish --tag next --access public"
72
+ },
73
+ "dependencies": {
74
+ "@antebudimir/eslint-plugin-vanilla-extract": "1.16.0",
75
+ "@commitlint/cli": "20.2.0",
76
+ "@commitlint/config-conventional": "20.2.0",
77
+ "@commitlint/format": "20.2.0",
78
+ "@commitlint/types": "20.2.0",
79
+ "@datamitsu/datamitsu": "0.0.1-alpha-11",
80
+ "@eslint/config-helpers": "0.5.0",
81
+ "@eslint/js": "9.39.2",
82
+ "@prettier/plugin-xml": "3.4.2",
83
+ "@typescript/native-preview": "7.0.0-dev.20251215.1",
84
+ "eslint": "9.39.2",
85
+ "eslint-config-prettier": "10.1.8",
86
+ "eslint-plugin-array-func": "5.1.0",
87
+ "eslint-plugin-import": "2.32.0",
88
+ "eslint-plugin-json": "4.0.1",
89
+ "eslint-plugin-json-schema-validator": "5.5.0",
90
+ "eslint-plugin-jsx-a11y": "6.10.2",
91
+ "eslint-plugin-n": "17.23.1",
92
+ "eslint-plugin-no-use-extend-native": "0.7.2",
93
+ "eslint-plugin-perfectionist": "4.15.1",
94
+ "eslint-plugin-playwright": "2.4.0",
95
+ "eslint-plugin-promise": "7.2.1",
96
+ "eslint-plugin-react": "7.37.5",
97
+ "eslint-plugin-react-hooks": "7.0.1",
98
+ "eslint-plugin-react-perf": "3.3.3",
99
+ "eslint-plugin-react-prefer-function-component": "5.0.0",
100
+ "eslint-plugin-react-refresh": "0.4.26",
101
+ "eslint-plugin-security": "3.0.1",
102
+ "eslint-plugin-sonarjs": "3.0.5",
103
+ "eslint-plugin-storybook": "10.1.10",
104
+ "eslint-plugin-toml": "0.12.0",
105
+ "eslint-plugin-turbo": "2.6.3",
106
+ "eslint-plugin-unicorn": "62.0.0",
107
+ "eslint-plugin-unused-imports": "4.3.0",
108
+ "eslint-plugin-yml": "1.19.1",
109
+ "knip": "5.75.1",
110
+ "prettier": "3.7.4",
111
+ "prettier-plugin-embed": "0.5.0",
112
+ "prettier-plugin-jsdoc": "1.8.0",
113
+ "prettier-plugin-sql": "0.19.2",
114
+ "sort-package-json": "3.6.0",
115
+ "syncpack": "14.0.0-alpha.32",
116
+ "tsup": "8.5.1",
117
+ "tsx": "4.21.0",
118
+ "type-fest": "5.3.1",
119
+ "typescript-eslint": "8.50.0"
120
+ },
121
+ "devDependencies": {
122
+ "@octokit/rest": "22.0.1",
123
+ "@types/node": "25.0.2"
124
+ },
125
+ "packageManager": "pnpm@10.20.0"
126
+ }
@@ -0,0 +1,33 @@
1
+ {
2
+ "$schema": "https://json.schemastore.org/tsconfig",
3
+ "display": "Base configuration",
4
+ "compilerOptions": {
5
+ /* Base Options: */
6
+ "esModuleInterop": true,
7
+ "skipLibCheck": true,
8
+ "target": "esnext",
9
+ "lib": ["esnext"],
10
+ "allowJs": true,
11
+ "resolveJsonModule": true,
12
+ "moduleDetection": "force",
13
+ "isolatedModules": true,
14
+ "verbatimModuleSyntax": true,
15
+
16
+ /* Strictness */
17
+ "strict": true,
18
+ "noUncheckedIndexedAccess": true,
19
+ "noImplicitOverride": true,
20
+
21
+ /* Opinion */
22
+ "incremental": true,
23
+ "tsBuildInfoFile": "${configDir}/tsconfig.tsbuildinfo",
24
+ "module": "preserve",
25
+ "outDir": "${configDir}/dist",
26
+ "rootDir": "${configDir}/src",
27
+ "paths": {
28
+ "~/*": ["./src/*"]
29
+ }
30
+ },
31
+ "include": ["${configDir}/src", "${configDir}/src/**/*.json"],
32
+ "exclude": ["${configDir}/node_modules", "${configDir}/dist"]
33
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "$schema": "https://json.schemastore.org/tsconfig",
3
+ "display": "Standalone shared library",
4
+ "extends": "./base.json",
5
+ "compilerOptions": {
6
+ /* AND if you're building for a library: */
7
+ "declaration": true,
8
+ "declarationMap": true
9
+ }
10
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "$schema": "https://json.schemastore.org/tsconfig",
3
+ "display": "Next.js app",
4
+ "extends": "./base.json",
5
+ "compilerOptions": {
6
+ "jsx": "preserve", // next does its own jsx transformation
7
+ "lib": ["dom", "dom.iterable", "esnext"],
8
+ "noEmit": true,
9
+ "rootDir": "${configDir}", // nextjs targets files outside of src in root as well
10
+ "plugins": [
11
+ {
12
+ "name": "next" // plugin comes installed with nextjs
13
+ }
14
+ ]
15
+ },
16
+ "include": [
17
+ "${configDir}",
18
+ "${configDir}/**/*.json",
19
+ "${configDir}/next-env.d.ts",
20
+ "${configDir}/.next/types/**/*.ts"
21
+ ],
22
+ "exclude": ["${configDir}/node_modules"]
23
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "$schema": "https://json.schemastore.org/tsconfig",
3
+ "display": "Standalone React component library",
4
+ "extends": "./base.json",
5
+ "compilerOptions": {
6
+ "lib": ["dom", "dom.iterable", "esnext"],
7
+ "jsx": "react-jsx",
8
+
9
+ /* AND if you're building for a library: */
10
+ "declaration": true,
11
+ "declarationMap": true
12
+ }
13
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "$schema": "https://json.schemastore.org/tsconfig",
3
+ "display": "Backend service",
4
+ "extends": "./base.json",
5
+ "compilerOptions": {}
6
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "$schema": "https://json.schemastore.org/tsconfig",
3
+ "display": "Monorepo shared library",
4
+ "extends": "./library.json",
5
+ "compilerOptions": {
6
+ /* AND if you're building for a library in a monorepo: */
7
+ "composite": true
8
+ }
9
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "$schema": "https://json.schemastore.org/tsconfig",
3
+ "display": "Monorepo shared React component library",
4
+ "extends": "./react-library.json",
5
+ "compilerOptions": {
6
+ /* AND if you're building for a library in a monorepo: */
7
+ "composite": true,
8
+ "declarationMap": true
9
+ }
10
+ }