create-sonamu 0.0.5 → 0.0.7
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/index.js +7 -3
- package/package.json +1 -1
- package/template/src/biome.json +84 -0
- package/template/src/gitignore +61 -0
- package/template/src/packages/api/package.json +2 -1
- package/template/src/packages/api/package.json.bak +1 -0
- package/template/src/packages/api/public/.gitkeep +0 -0
- package/template/src/packages/web/src/i18n/en.ts +0 -9
- package/template/src/packages/web/src/i18n/ko.ts +0 -9
package/index.js
CHANGED
|
@@ -255,9 +255,13 @@ function init() {
|
|
|
255
255
|
}
|
|
256
256
|
}
|
|
257
257
|
else {
|
|
258
|
-
// 파일은 복사
|
|
259
|
-
|
|
260
|
-
|
|
258
|
+
// 파일은 복사 (gitignore → .gitignore rename)
|
|
259
|
+
var destPath = dest;
|
|
260
|
+
if (basename === "gitignore") {
|
|
261
|
+
destPath = path.join(path.dirname(dest), ".gitignore");
|
|
262
|
+
}
|
|
263
|
+
fs.copyFileSync(src, destPath);
|
|
264
|
+
console.log("".concat(chalk.green("CREATE"), " ").concat(destPath));
|
|
261
265
|
}
|
|
262
266
|
};
|
|
263
267
|
write = function (file) {
|
package/package.json
CHANGED
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://biomejs.dev/schemas/2.3.10/schema.json",
|
|
3
|
+
"linter": {
|
|
4
|
+
"enabled": true,
|
|
5
|
+
"rules": {
|
|
6
|
+
"recommended": true,
|
|
7
|
+
"style": {
|
|
8
|
+
"useNodejsImportProtocol": "off"
|
|
9
|
+
},
|
|
10
|
+
"correctness": {
|
|
11
|
+
"useParseIntRadix": "off",
|
|
12
|
+
"noEmptyPattern": "off",
|
|
13
|
+
"noUnusedImports": {
|
|
14
|
+
"level": "warn",
|
|
15
|
+
"fix": "safe"
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
"a11y": {
|
|
19
|
+
"noLabelWithoutControl": "off",
|
|
20
|
+
"useSemanticElements": "off",
|
|
21
|
+
"noNoninteractiveElementToInteractiveRole": "off",
|
|
22
|
+
"useAriaPropsForRole": "off",
|
|
23
|
+
"noInteractiveElementToNoninteractiveRole": "off",
|
|
24
|
+
"noNoninteractiveTabindex": "off",
|
|
25
|
+
"useFocusableInteractive": "off",
|
|
26
|
+
"noStaticElementInteractions": "off",
|
|
27
|
+
"useKeyWithClickEvents": "off"
|
|
28
|
+
},
|
|
29
|
+
"complexity": {
|
|
30
|
+
"noBannedTypes": "off"
|
|
31
|
+
},
|
|
32
|
+
"suspicious": {
|
|
33
|
+
"noArrayIndexKey": "off"
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
"files": {
|
|
38
|
+
"includes": [
|
|
39
|
+
"**/*.ts",
|
|
40
|
+
"**/*.tsx",
|
|
41
|
+
"!**/dist",
|
|
42
|
+
"!**/build",
|
|
43
|
+
"!**/node_modules",
|
|
44
|
+
"!**/*.gen.ts",
|
|
45
|
+
"!**/*.generated.ts",
|
|
46
|
+
"!**/*.generated.tsx"
|
|
47
|
+
]
|
|
48
|
+
},
|
|
49
|
+
"formatter": {
|
|
50
|
+
"enabled": true,
|
|
51
|
+
"formatWithErrors": false,
|
|
52
|
+
"indentStyle": "space",
|
|
53
|
+
"indentWidth": 2,
|
|
54
|
+
"lineEnding": "lf",
|
|
55
|
+
"lineWidth": 100,
|
|
56
|
+
"attributePosition": "auto"
|
|
57
|
+
},
|
|
58
|
+
"javascript": {
|
|
59
|
+
"formatter": {
|
|
60
|
+
"jsxQuoteStyle": "double",
|
|
61
|
+
"quoteProperties": "asNeeded",
|
|
62
|
+
"trailingCommas": "all",
|
|
63
|
+
"semicolons": "always",
|
|
64
|
+
"arrowParentheses": "always",
|
|
65
|
+
"bracketSpacing": true,
|
|
66
|
+
"bracketSameLine": false,
|
|
67
|
+
"quoteStyle": "double",
|
|
68
|
+
"attributePosition": "auto"
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
"json": {
|
|
72
|
+
"formatter": {
|
|
73
|
+
"indentWidth": 2
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
"assist": {
|
|
77
|
+
"enabled": true,
|
|
78
|
+
"actions": {
|
|
79
|
+
"source": {
|
|
80
|
+
"organizeImports": "on"
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# Dependencies
|
|
2
|
+
node_modules/
|
|
3
|
+
|
|
4
|
+
# Production builds
|
|
5
|
+
dist/
|
|
6
|
+
dist-ssr/
|
|
7
|
+
|
|
8
|
+
# Environment variables
|
|
9
|
+
.env
|
|
10
|
+
.env.local
|
|
11
|
+
.env.*.local
|
|
12
|
+
|
|
13
|
+
# Logs
|
|
14
|
+
logs/
|
|
15
|
+
*.log
|
|
16
|
+
npm-debug.log*
|
|
17
|
+
yarn-debug.log*
|
|
18
|
+
yarn-error.log*
|
|
19
|
+
pnpm-debug.log*
|
|
20
|
+
lerna-debug.log*
|
|
21
|
+
|
|
22
|
+
# Runtime data
|
|
23
|
+
pids/
|
|
24
|
+
*.pid
|
|
25
|
+
*.seed
|
|
26
|
+
*.pid.lock
|
|
27
|
+
|
|
28
|
+
# Coverage
|
|
29
|
+
coverage/
|
|
30
|
+
*.lcov
|
|
31
|
+
.nyc_output/
|
|
32
|
+
|
|
33
|
+
# TypeScript cache
|
|
34
|
+
*.tsbuildinfo
|
|
35
|
+
|
|
36
|
+
# Cache directories
|
|
37
|
+
.cache/
|
|
38
|
+
.parcel-cache/
|
|
39
|
+
.npm/
|
|
40
|
+
.eslintcache
|
|
41
|
+
|
|
42
|
+
# Temporary folders
|
|
43
|
+
tmp/
|
|
44
|
+
temp/
|
|
45
|
+
|
|
46
|
+
# Editor directories and files
|
|
47
|
+
.vscode/
|
|
48
|
+
.idea/
|
|
49
|
+
*.swp
|
|
50
|
+
*.swo
|
|
51
|
+
*.suo
|
|
52
|
+
*.ntvs*
|
|
53
|
+
*.njsproj
|
|
54
|
+
*.sln
|
|
55
|
+
|
|
56
|
+
# OS generated files
|
|
57
|
+
.DS_Store
|
|
58
|
+
Thumbs.db
|
|
59
|
+
|
|
60
|
+
# Slack Confirm
|
|
61
|
+
.slack-confirm-*
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
"scripts": {
|
|
9
9
|
"dev": "sonamu dev",
|
|
10
10
|
"build": "sonamu build",
|
|
11
|
+
"postinstall": "sonamu skills sync",
|
|
11
12
|
"start": "sonamu start",
|
|
12
13
|
"test": "vitest run",
|
|
13
14
|
"test:watch": "vitest watch --standalone",
|
|
@@ -37,7 +38,7 @@
|
|
|
37
38
|
"knex": "^3.1.0",
|
|
38
39
|
"pg": "^8.16.3",
|
|
39
40
|
"radashi": "^12.2.0",
|
|
40
|
-
"sonamu": "^0.7.
|
|
41
|
+
"sonamu": "^0.7.48",
|
|
41
42
|
"zod": "^4.1.12"
|
|
42
43
|
},
|
|
43
44
|
"devDependencies": {
|
|
File without changes
|
|
@@ -51,13 +51,4 @@ export default {
|
|
|
51
51
|
`${field} must be at least ${min} characters`,
|
|
52
52
|
"validation.required": (field: string) => `${field} is required`,
|
|
53
53
|
"validation.url": "Invalid URL format",
|
|
54
|
-
// components
|
|
55
|
-
"component.asyncSelect.loading": "Loading...",
|
|
56
|
-
"component.asyncSelect.noOptions": "No options",
|
|
57
|
-
"component.asyncSelect.noResults": "No results",
|
|
58
|
-
"component.asyncSelect.selectPlaceholder": "Select",
|
|
59
|
-
"component.datePicker.pickDate": "Pick a date",
|
|
60
|
-
"component.datePicker.placeholder": "Pick a date",
|
|
61
|
-
"component.fileInput.browseFiles": "Browse Files",
|
|
62
|
-
"component.fileInput.dropZone": "Drag and drop files here or click to upload",
|
|
63
54
|
};
|
|
@@ -49,13 +49,4 @@ export default {
|
|
|
49
49
|
`${field}은(는) 최소 ${min}자 이상이어야 합니다`,
|
|
50
50
|
"validation.required": (field: string) => `${josa(field, "은는")} 필수입니다`,
|
|
51
51
|
"validation.url": "올바른 URL 형식이 아닙니다",
|
|
52
|
-
// components
|
|
53
|
-
"component.asyncSelect.loading": "로딩 중...",
|
|
54
|
-
"component.asyncSelect.noOptions": "옵션이 없습니다",
|
|
55
|
-
"component.asyncSelect.noResults": "결과가 없습니다",
|
|
56
|
-
"component.asyncSelect.selectPlaceholder": "선택하세요",
|
|
57
|
-
"component.datePicker.pickDate": "날짜 선택",
|
|
58
|
-
"component.datePicker.placeholder": "날짜 선택",
|
|
59
|
-
"component.fileInput.browseFiles": "파일 선택",
|
|
60
|
-
"component.fileInput.dropZone": "파일을 드래그하여 업로드하거나 클릭하세요",
|
|
61
52
|
};
|