@simplysm/sd-claude 14.0.97 → 14.0.99
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/claude/references/sd-simplysm14/README.md +16 -16
- package/claude/references/sd-simplysm14/apis/angular/README.md +81 -153
- package/claude/references/sd-simplysm14/apis/angular/controls.md +179 -205
- package/claude/references/sd-simplysm14/apis/angular/crud.md +71 -57
- package/claude/references/sd-simplysm14/apis/angular/directives.md +49 -109
- package/claude/references/sd-simplysm14/apis/angular/features.md +58 -86
- package/claude/references/sd-simplysm14/apis/angular/kanban.md +32 -40
- package/claude/references/sd-simplysm14/apis/angular/layout.md +38 -52
- package/claude/references/sd-simplysm14/apis/angular/overlay.md +86 -110
- package/claude/references/sd-simplysm14/apis/angular/routing-appstructure.md +54 -86
- package/claude/references/sd-simplysm14/apis/angular/shared-data.md +82 -74
- package/claude/references/sd-simplysm14/apis/angular/sheet.md +56 -80
- package/claude/references/sd-simplysm14/apis/capacitor-plugin-auto-update/README.md +15 -15
- package/claude/references/sd-simplysm14/apis/capacitor-plugin-file-system/README.md +21 -21
- package/claude/references/sd-simplysm14/apis/capacitor-plugin-intent/README.md +79 -53
- package/claude/references/sd-simplysm14/apis/capacitor-plugin-usb-storage/README.md +9 -11
- package/claude/references/sd-simplysm14/apis/core-browser/README.md +15 -15
- package/claude/references/sd-simplysm14/apis/core-browser/dom-element.md +20 -20
- package/claude/references/sd-simplysm14/apis/core-browser/indexed-db.md +18 -18
- package/claude/references/sd-simplysm14/apis/core-common/README.md +20 -49
- package/claude/references/sd-simplysm14/apis/core-common/async-runtime.md +66 -55
- package/claude/references/sd-simplysm14/apis/core-common/collection-ext.md +83 -56
- package/claude/references/sd-simplysm14/apis/core-common/errors.md +32 -21
- package/claude/references/sd-simplysm14/apis/core-common/obj.md +57 -39
- package/claude/references/sd-simplysm14/apis/core-common/serialization.md +36 -30
- package/claude/references/sd-simplysm14/apis/core-common/value-types.md +69 -41
- package/claude/references/sd-simplysm14/apis/core-node/README.md +4 -4
- package/claude/references/sd-simplysm14/apis/core-node/consola.md +15 -13
- package/claude/references/sd-simplysm14/apis/core-node/cpx.md +11 -7
- package/claude/references/sd-simplysm14/apis/core-node/fs-watcher.md +8 -8
- package/claude/references/sd-simplysm14/apis/core-node/fsx.md +29 -20
- package/claude/references/sd-simplysm14/apis/core-node/pathx.md +14 -6
- package/claude/references/sd-simplysm14/apis/core-node/worker.md +3 -3
- package/claude/references/sd-simplysm14/apis/excel/README.md +3 -3
- package/claude/references/sd-simplysm14/apis/excel/cell.md +32 -32
- package/claude/references/sd-simplysm14/apis/excel/conditional-format.md +23 -24
- package/claude/references/sd-simplysm14/apis/excel/style.md +24 -30
- package/claude/references/sd-simplysm14/apis/excel/utils.md +20 -23
- package/claude/references/sd-simplysm14/apis/excel/workbook-worksheet.md +60 -71
- package/claude/references/sd-simplysm14/apis/excel/wrapper.md +36 -36
- package/claude/references/sd-simplysm14/apis/lint/README.md +7 -9
- package/claude/references/sd-simplysm14/apis/lint/recommended.md +59 -37
- package/claude/references/sd-simplysm14/apis/lint/rules.md +81 -74
- package/claude/references/sd-simplysm14/apis/orm-common/README.md +6 -6
- package/claude/references/sd-simplysm14/apis/orm-common/db-context.md +112 -78
- package/claude/references/sd-simplysm14/apis/orm-common/expr.md +131 -75
- package/claude/references/sd-simplysm14/apis/orm-common/queryable.md +126 -82
- package/claude/references/sd-simplysm14/apis/orm-common/schema.md +170 -113
- package/claude/references/sd-simplysm14/apis/orm-common/types.md +102 -48
- package/claude/references/sd-simplysm14/apis/orm-node/README.md +12 -13
- package/claude/references/sd-simplysm14/apis/orm-node/db-conn.md +3 -3
- package/claude/references/sd-simplysm14/apis/sd-cli/README.md +5 -5
- package/claude/references/sd-simplysm14/apis/sd-cli/SdTsCompiler.md +67 -65
- package/claude/references/sd-simplysm14/apis/sd-cli/sd-config-types.md +130 -123
- package/claude/references/sd-simplysm14/apis/service-client/README.md +63 -63
- package/claude/references/sd-simplysm14/apis/service-client/orm.md +22 -22
- package/claude/references/sd-simplysm14/apis/service-client/transport.md +30 -26
- package/claude/references/sd-simplysm14/apis/service-common/README.md +8 -8
- package/claude/references/sd-simplysm14/apis/service-common/app-structure.md +13 -6
- package/claude/references/sd-simplysm14/apis/service-common/protocol.md +1 -1
- package/claude/references/sd-simplysm14/apis/service-server/README.md +43 -47
- package/claude/references/sd-simplysm14/apis/service-server/built-in-services.md +35 -0
- package/claude/references/sd-simplysm14/apis/service-server/service-authoring.md +20 -19
- package/claude/references/sd-simplysm14/apis/service-server/transport-internals.md +23 -25
- package/claude/references/sd-simplysm14/apis/service-server/v1-legacy.md +9 -9
- package/claude/references/sd-simplysm14/apis/storage/README.md +26 -26
- package/claude/references/sd-simplysm14/manuals/client-component.md +9 -1
- package/claude/references/sd-simplysm14/manuals/client-crud.md +1 -1
- package/claude/references/sd-simplysm14/manuals/client-orm.md +1 -0
- package/claude/references/sd-simplysm14/manuals/client-service.md +1 -0
- package/claude/references/sd-simplysm14/manuals/client-shared-data.md +1 -0
- package/claude/references/sd-simplysm14/manuals/client-ssg.md +1 -0
- package/claude/sd-system-prompt.md +11 -26
- package/claude/skills/sd-docs/references/subagent-prompt.md +4 -3
- package/claude/skills/sd-spec/SKILL.md +87 -18
- package/claude/skills/sd-spec/references/format.md +2 -2
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @simplysm/sd-cli — sd.config.ts 설정 타입
|
|
2
2
|
|
|
3
|
-
프로젝트 루트 `sd.config.ts`
|
|
3
|
+
프로젝트 루트 `sd.config.ts` 는 `SdConfigFn` 형태의 함수를 `default export` 해야 한다 — `(params: SdConfigParams) => SdConfig | Promise<SdConfig>`. sd-cli 가 이 함수를 호출해 패키지별 빌드 타겟·배포·앱 패키징·의존성 교체를 결정한다. 모든 타입은 entry 의 `export *` 로 노출되며 `import type { ... } from "@simplysm/sd-cli"` 로 가져온다.
|
|
4
4
|
|
|
5
5
|
## SdConfigFn / SdConfigParams / SdConfig
|
|
6
6
|
|
|
@@ -20,34 +20,31 @@ interface SdConfig {
|
|
|
20
20
|
}
|
|
21
21
|
```
|
|
22
22
|
|
|
23
|
-
`SdConfigParams`
|
|
23
|
+
`SdConfigParams` — sd-cli 가 config 함수에 넘기는 인자:
|
|
24
24
|
|
|
25
|
-
- cwd
|
|
26
|
-
- dev
|
|
27
|
-
- opt
|
|
25
|
+
- **cwd**: string — 현재 작업 디렉토리(워크스페이스 루트).
|
|
26
|
+
- **dev**: boolean — 개발 모드 플래그. `true`(`watch`/`dev`)와 `false`(프로덕션 `build`/`pub`)에 따라 다른 설정을 반환하는 분기에 쓴다.
|
|
27
|
+
- **opt**: string[] — CLI `-o <opt>` 로 전달된 추가 옵션 배열.
|
|
28
28
|
|
|
29
|
-
`SdConfig
|
|
29
|
+
`SdConfig` — config 함수 반환값:
|
|
30
30
|
|
|
31
|
-
- packages
|
|
32
|
-
- replaceDeps
|
|
33
|
-
- postPublish
|
|
34
|
-
|
|
35
|
-
사용 예:
|
|
31
|
+
- **packages**: `Record<string, SdPackageConfig | undefined>` — 키는 `packages/` 하위 디렉토리명(예: `"core-common"`), 값은 그 패키지의 빌드 설정. `undefined` 면 빌드 대상에서 제외.
|
|
32
|
+
- **replaceDeps**: `Record<string, string>` — node_modules 패키지를 로컬 소스로 심링크 교체. 키는 node_modules 에서 찾을 glob(예: `"@simplysm/*"`), 값은 소스 디렉토리 경로이며 키의 `*` 캡처가 값의 `*` 에 치환됨(예: `"../simplysm/packages/*"`). 로컬 소스를 빌드 없이 곧바로 참조하게 만든다.
|
|
33
|
+
- **postPublish**: `SdPostPublishScriptConfig[]` — 배포 완료 후 실행할 스크립트 목록.
|
|
36
34
|
|
|
37
35
|
```typescript
|
|
38
36
|
import type { SdConfigFn } from "@simplysm/sd-cli";
|
|
39
37
|
|
|
40
|
-
const config: SdConfigFn = (
|
|
38
|
+
const config: SdConfigFn = (params) => ({
|
|
41
39
|
packages: {
|
|
42
40
|
"core-common": { target: "neutral" },
|
|
43
|
-
"core-node": { target: "node"
|
|
44
|
-
"demo-client": dev ? { target: "client", server: "demo-server" } : undefined,
|
|
41
|
+
"core-node": { target: "node" },
|
|
45
42
|
},
|
|
46
43
|
});
|
|
47
44
|
export default config;
|
|
48
45
|
```
|
|
49
46
|
|
|
50
|
-
## SdPackageConfig (
|
|
47
|
+
## SdPackageConfig (타겟별 패키지 설정)
|
|
51
48
|
|
|
52
49
|
```typescript
|
|
53
50
|
type SdPackageConfig =
|
|
@@ -55,30 +52,34 @@ type SdPackageConfig =
|
|
|
55
52
|
| SdClientPackageConfig // target: "client"
|
|
56
53
|
| SdServerPackageConfig // target: "server"
|
|
57
54
|
| SdScriptsPackageConfig; // target: "scripts"
|
|
55
|
+
|
|
56
|
+
type BuildTarget = "node" | "browser" | "neutral";
|
|
58
57
|
```
|
|
59
58
|
|
|
60
|
-
|
|
59
|
+
`target` literal 로 어느 멤버인지 구분하는 판별 유니온. `target` 별 동작 차이:
|
|
61
60
|
|
|
62
|
-
- "node"
|
|
63
|
-
- "
|
|
64
|
-
- "
|
|
65
|
-
- "
|
|
61
|
+
- **`"node"`** — Node.js 전용 라이브러리 패키지(esbuild 빌드, npm 배포용).
|
|
62
|
+
- **`"browser"`** — 브라우저 전용 라이브러리 패키지.
|
|
63
|
+
- **`"neutral"`** — Node/브라우저 공용 라이브러리 패키지.
|
|
64
|
+
- **`"client"`** — Frontend 앱 패키지(Angular + Capacitor/Electron/PWA).
|
|
65
|
+
- **`"server"`** — Fastify 서버 앱 패키지.
|
|
66
|
+
- **`"scripts"`** — 유틸 패키지(watch 훅으로 임의 명령 실행).
|
|
66
67
|
|
|
67
68
|
### SdBuildPackageConfig (node/browser/neutral)
|
|
68
69
|
|
|
69
70
|
```typescript
|
|
70
71
|
interface SdBuildPackageConfig {
|
|
71
|
-
target: BuildTarget;
|
|
72
|
+
target: BuildTarget;
|
|
72
73
|
publish?: SdPublishConfig;
|
|
73
74
|
copySrc?: string[];
|
|
74
75
|
watch?: SdWatchHookConfig;
|
|
75
76
|
}
|
|
76
77
|
```
|
|
77
78
|
|
|
78
|
-
- target
|
|
79
|
-
- publish
|
|
80
|
-
- copySrc
|
|
81
|
-
- watch
|
|
79
|
+
- **target**: `"node" | "browser" | "neutral"` — 위 BuildTarget 동작 차이 참조.
|
|
80
|
+
- **publish**: `SdPublishConfig` — 배포 설정(아래 §배포 설정). 라이브러리 패키지는 보통 `{ type: "npm" }`.
|
|
81
|
+
- **copySrc**: string[] — `src/`→`dist/` 로 그대로 복사할 파일의 glob 패턴(`src/` 기준 상대). esbuild 번들에 포함되지 않는 정적 자원을 dist 에 남길 때.
|
|
82
|
+
- **watch**: `SdWatchHookConfig` — 설정 시 watch 모드에서 빌드 엔진과 함께 훅이 실행됨.
|
|
82
83
|
|
|
83
84
|
### SdClientPackageConfig (client)
|
|
84
85
|
|
|
@@ -98,19 +99,24 @@ interface SdClientPackageConfig {
|
|
|
98
99
|
}
|
|
99
100
|
```
|
|
100
101
|
|
|
101
|
-
- server
|
|
102
|
-
- env
|
|
103
|
-
- publish
|
|
104
|
-
- capacitor
|
|
105
|
-
- electron
|
|
106
|
-
- configs
|
|
107
|
-
- exclude
|
|
108
|
-
- browserSupport
|
|
109
|
-
- pwa
|
|
110
|
-
- prerender
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
102
|
+
- **server**: `string | number` — string 이면 연결할 서버 패키지명(예: `"demo-server"`), number 이면 포트 직접 지정(하위 호환).
|
|
103
|
+
- **env**: `Record<string, string>` — 빌드 시 치환할 환경 변수. `process.env` 를 이 객체로 치환(define 주입).
|
|
104
|
+
- **publish**: `SdPublishConfig` — 배포 설정.
|
|
105
|
+
- **capacitor**: `SdCapacitorConfig` — 모바일(Capacitor) 패키징 설정. 지정 시 앱을 Android 등으로 빌드.
|
|
106
|
+
- **electron**: `SdElectronConfig` — 데스크톱(Electron) 패키징 설정.
|
|
107
|
+
- **configs**: `Record<string, unknown>` — 런타임 설정. 빌드 시 `dist/.config.json` 으로 기록되어 앱이 런타임에 읽음.
|
|
108
|
+
- **exclude**: string[] — Capacitor/Electron package.json 에 추가할(번들에서 제외할) 패키지.
|
|
109
|
+
- **browserSupport**: `SdBrowserSupportConfig` — browserslist/PostCSS/legacyModule 등 브라우저 지원 설정.
|
|
110
|
+
- **pwa**: `false | SdPwaConfig` — `false` 면 PWA 비활성화. 미지정 시 기본값으로 활성화. 객체면 manifest 등 세부 지정.
|
|
111
|
+
- **prerender**: string[] — SSG(빌드 타임 프리렌더) 라우트 목록(예: `["/", "/about"]`). 지정 시 프로덕션 빌드에서 `src/main.server.ts` 진입점으로 라우트별 HTML 을 생성하고, SPA 셸은 `index.csr.html` 로 별도 출력. dev/watch 모드에는 적용되지 않음. 라우트는 `"/"` 로 시작.
|
|
112
|
+
|
|
113
|
+
```typescript
|
|
114
|
+
"client-portal": {
|
|
115
|
+
target: "client",
|
|
116
|
+
server: "server",
|
|
117
|
+
prerender: ["/", "/about"],
|
|
118
|
+
},
|
|
119
|
+
```
|
|
114
120
|
|
|
115
121
|
### SdServerPackageConfig (server)
|
|
116
122
|
|
|
@@ -126,13 +132,11 @@ interface SdServerPackageConfig {
|
|
|
126
132
|
}
|
|
127
133
|
```
|
|
128
134
|
|
|
129
|
-
- env
|
|
130
|
-
-
|
|
131
|
-
-
|
|
132
|
-
-
|
|
133
|
-
-
|
|
134
|
-
- pm2?.ignoreWatchPaths?: string[] — PM2 watch 에서 제외할 경로.
|
|
135
|
-
- packageManager?: "volta" | "mise" — 산출물에 생성할 패키지 매니저 설정 종류. "volta" = volta 설정, "mise" = `mise.toml` 생성. 배포 서버의 매니저에 맞춘다.
|
|
135
|
+
- **env**: `Record<string, string>` — 빌드 시 치환할 환경 변수. `process.env.KEY` 를 상수로 치환(esbuild banner 주입).
|
|
136
|
+
- **configs**: `Record<string, unknown>` — 런타임 설정. 빌드 시 `dist/.config.json` 으로 기록.
|
|
137
|
+
- **externals**: string[] — esbuild 번들에 포함하지 않을 외부 모듈. 자동 `binding.gyp` 감지 목록에 추가됨(네이티브 모듈 외부화).
|
|
138
|
+
- **pm2**: 지정 시 `dist/pm2.config.cjs` 생성. `name` 은 PM2 프로세스 이름(미지정 시 package.json name 에서 생성), `ignoreWatchPaths` 는 PM2 watch 제외 경로.
|
|
139
|
+
- **packageManager**: `"volta" | "mise"` — 사용할 패키지 매니저. `mise.toml` 또는 volta 설정 생성에 영향.
|
|
136
140
|
|
|
137
141
|
### SdScriptsPackageConfig (scripts)
|
|
138
142
|
|
|
@@ -142,50 +146,47 @@ interface SdScriptsPackageConfig {
|
|
|
142
146
|
publish?: SdPublishConfig;
|
|
143
147
|
watch?: SdWatchHookConfig;
|
|
144
148
|
}
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
- publish?: SdPublishConfig — 산출물 배포 설정.
|
|
148
|
-
- watch?: SdWatchHookConfig — watch 훅. 지정해야만 이 패키지가 watch 모드에 포함됨(미지정 시 watch/typecheck 제외). 파일 변경 시 임의 명령 실행에 쓴다.
|
|
149
149
|
|
|
150
|
-
## SdWatchHookConfig
|
|
151
|
-
|
|
152
|
-
```typescript
|
|
153
150
|
interface SdWatchHookConfig {
|
|
154
|
-
target: string[];
|
|
155
|
-
cmd: string;
|
|
156
|
-
args?: string[];
|
|
151
|
+
target: string[]; // 감시할 glob (패키지 디렉토리 기준 상대)
|
|
152
|
+
cmd: string; // 변경 시 실행할 명령어
|
|
153
|
+
args?: string[]; // 명령어 인수
|
|
157
154
|
}
|
|
158
155
|
```
|
|
159
156
|
|
|
160
|
-
-
|
|
161
|
-
-
|
|
162
|
-
- args
|
|
157
|
+
- **SdScriptsPackageConfig.watch**: `SdWatchHookConfig` — 설정 시에만 watch 모드에 패키지가 포함됨. 미설정이면 watch/typecheck 에서 제외.
|
|
158
|
+
- **SdWatchHookConfig.target**: string[] — 감시할 glob 패턴(패키지 디렉토리 기준 상대 경로).
|
|
159
|
+
- **SdWatchHookConfig.cmd / args**: 변경 감지 시 실행할 명령어와 인수.
|
|
163
160
|
|
|
164
|
-
## 배포 설정 (SdPublishConfig
|
|
161
|
+
## 배포 설정 (SdPublishConfig)
|
|
165
162
|
|
|
166
163
|
```typescript
|
|
167
164
|
type SdPublishConfig = SdNpmPublishConfig | SdLocalDirectoryPublishConfig | SdStoragePublishConfig;
|
|
165
|
+
|
|
166
|
+
interface SdNpmPublishConfig { type: "npm"; }
|
|
167
|
+
interface SdLocalDirectoryPublishConfig { type: "local-directory"; path: string; }
|
|
168
|
+
interface SdStoragePublishConfig {
|
|
169
|
+
type: "ftp" | "ftps" | "sftp";
|
|
170
|
+
host: string; port?: number; path?: string; user?: string; password?: string;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
interface SdPostPublishScriptConfig { type: "script"; cmd: string; args: string[]; }
|
|
168
174
|
```
|
|
169
175
|
|
|
170
|
-
|
|
176
|
+
`type` literal 로 배포 방식 판별:
|
|
177
|
+
|
|
178
|
+
- **`"npm"`** — npm 레지스트리에 배포. 추가 필드 없음.
|
|
179
|
+
- **`"local-directory"`** — 로컬 디렉토리로 복사. `path` 는 대상 경로이며 환경 변수 치환 지원(`%VER%`, `%PROJECT%`).
|
|
180
|
+
- **`"ftp" | "ftps" | "sftp"`** — 스토리지 서버에 업로드. `host` 필수, `port`/`path`/`user`/`password` 는 선택.
|
|
171
181
|
|
|
172
|
-
|
|
173
|
-
- `SdLocalDirectoryPublishConfig` — `{ type: "local-directory"; path: string }`. 로컬 디렉토리로 복사. `path` 는 `%VER%`/`%PROJECT%` 치환 지원. 사내 공유 폴더 배포에.
|
|
174
|
-
- `SdStoragePublishConfig` — `{ type: "ftp"|"ftps"|"sftp"; host; port?; path?; user?; password? }`. type 별 프로토콜 차이(ftp = 평문, ftps = TLS, sftp = SSH). 원격 서버 업로드 배포에. host 만 필수, 나머지는 선택.
|
|
182
|
+
`SdPostPublishScriptConfig` — `SdConfig.postPublish` 항목. `type: "script"` 고정, `cmd` 실행 명령, `args` 인수(환경 변수 치환 지원: `%VER%`, `%PROJECT%`).
|
|
175
183
|
|
|
176
184
|
```typescript
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
cmd: string;
|
|
180
|
-
args: string[]; // %VER%, %PROJECT% 치환 지원
|
|
181
|
-
}
|
|
185
|
+
"excel": { target: "neutral", publish: { type: "npm" } },
|
|
186
|
+
"client": { target: "client", server: "server", publish: { type: "ftp", host: "...", path: "/www" } },
|
|
182
187
|
```
|
|
183
188
|
|
|
184
|
-
|
|
185
|
-
- cmd: string — 배포 후 실행할 명령어.
|
|
186
|
-
- args: string[] — 인수. `%VER%`(버전), `%PROJECT%`(프로젝트명) 치환됨.
|
|
187
|
-
|
|
188
|
-
## Capacitor 설정 (client 의 capacitor)
|
|
189
|
+
## Capacitor 설정 (SdCapacitorConfig)
|
|
189
190
|
|
|
190
191
|
```typescript
|
|
191
192
|
interface SdCapacitorConfig {
|
|
@@ -198,42 +199,50 @@ interface SdCapacitorConfig {
|
|
|
198
199
|
}
|
|
199
200
|
```
|
|
200
201
|
|
|
201
|
-
- appId
|
|
202
|
-
- appName
|
|
203
|
-
- plugins
|
|
204
|
-
- icon
|
|
205
|
-
- debug
|
|
206
|
-
- platform
|
|
202
|
+
- **appId**: string — 앱 ID(예: `"com.example.app"`).
|
|
203
|
+
- **appName**: string — 앱 이름.
|
|
204
|
+
- **plugins**: `Record<string, Record<string, unknown> | true>` — Capacitor 플러그인 설정. key 는 패키지명, value 는 `true`(옵션 없이 활성) 또는 플러그인 옵션 객체.
|
|
205
|
+
- **icon**: string — 앱 아이콘 경로(패키지 디렉토리 기준 상대).
|
|
206
|
+
- **debug**: boolean — 디버그 빌드 플래그.
|
|
207
|
+
- **platform.android**: `SdCapacitorAndroidConfig` — Android 플랫폼 세부 설정.
|
|
207
208
|
|
|
208
209
|
```typescript
|
|
209
210
|
interface SdCapacitorAndroidConfig {
|
|
210
|
-
config?: Record<string, string>;
|
|
211
|
-
bundle?: boolean;
|
|
211
|
+
config?: Record<string, string>; // AndroidManifest application 태그 속성
|
|
212
|
+
bundle?: boolean; // false=APK (true/미지정=AAB 번들)
|
|
212
213
|
intentFilters?: SdCapacitorIntentFilter[];
|
|
213
214
|
sign?: SdCapacitorSignConfig;
|
|
214
|
-
sdkVersion?: number;
|
|
215
|
+
sdkVersion?: number; // minSdk/targetSdk
|
|
215
216
|
permissions?: SdCapacitorPermission[];
|
|
216
217
|
}
|
|
217
|
-
```
|
|
218
218
|
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
219
|
+
interface SdCapacitorSignConfig {
|
|
220
|
+
keystore: string; // keystore 파일 경로 (패키지 기준 상대)
|
|
221
|
+
storePassword: string;
|
|
222
|
+
alias: string;
|
|
223
|
+
password: string;
|
|
224
|
+
keystoreType?: string; // 기본값 "jks"
|
|
225
|
+
}
|
|
225
226
|
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
227
|
+
interface SdCapacitorPermission {
|
|
228
|
+
name: string; // 예: "CAMERA"
|
|
229
|
+
maxSdkVersion?: number;
|
|
230
|
+
ignore?: string; // tools:ignore 속성 값
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
interface SdCapacitorIntentFilter {
|
|
234
|
+
action?: string; // 예: "android.intent.action.VIEW"
|
|
235
|
+
category?: string; // 예: "android.intent.category.DEFAULT"
|
|
236
|
+
}
|
|
230
237
|
```
|
|
231
238
|
|
|
232
|
-
-
|
|
233
|
-
-
|
|
234
|
-
-
|
|
239
|
+
- **SdCapacitorAndroidConfig.config**: `Record<string, string>` — AndroidManifest.xml `application` 태그 속성(예: `{ requestLegacyExternalStorage: "true" }`).
|
|
240
|
+
- **SdCapacitorAndroidConfig.bundle**: boolean — `false` 면 APK 로 빌드(AAB 번들 빌드 플래그).
|
|
241
|
+
- **SdCapacitorAndroidConfig.sdkVersion**: number — Android SDK 버전(minSdk, targetSdk).
|
|
242
|
+
- **SdCapacitorSignConfig.keystoreType**: string — keystore 타입, 기본값 `"jks"`.
|
|
243
|
+
- **SdCapacitorPermission.maxSdkVersion / ignore**: 권한별 최대 SDK 버전과 `tools:ignore` 속성 값.
|
|
235
244
|
|
|
236
|
-
## Electron 설정 (
|
|
245
|
+
## Electron 설정 (SdElectronConfig)
|
|
237
246
|
|
|
238
247
|
```typescript
|
|
239
248
|
interface SdElectronConfig {
|
|
@@ -247,18 +256,19 @@ interface SdElectronConfig {
|
|
|
247
256
|
}
|
|
248
257
|
```
|
|
249
258
|
|
|
250
|
-
- appId
|
|
251
|
-
- portable
|
|
252
|
-
- installerIcon
|
|
253
|
-
- reinstallDependencies
|
|
254
|
-
- postInstallScript
|
|
255
|
-
- nsisOptions
|
|
256
|
-
- env
|
|
259
|
+
- **appId**: string — Electron 앱 ID(예: `"com.example.myapp"`).
|
|
260
|
+
- **portable**: boolean — `true` 면 포터블 `.exe`, `false`/미지정이면 NSIS 설치 프로그램.
|
|
261
|
+
- **installerIcon**: string — 설치 프로그램 아이콘(`.ico`, 패키지 기준 상대).
|
|
262
|
+
- **reinstallDependencies**: string[] — Electron 에 포함할 npm 패키지(네이티브 모듈 등).
|
|
263
|
+
- **postInstallScript**: string — npm postinstall 스크립트.
|
|
264
|
+
- **nsisOptions**: `Record<string, unknown>` — NSIS 옵션(`portable` 이 `false` 일 때).
|
|
265
|
+
- **env**: `Record<string, string>` — 환경 변수. `electron-main.ts` 에서 `process.env` 로 접근 가능.
|
|
257
266
|
|
|
258
|
-
## PWA 설정 (
|
|
267
|
+
## PWA 설정 (SdPwaConfig) / 브라우저 지원 (SdBrowserSupportConfig)
|
|
259
268
|
|
|
260
269
|
```typescript
|
|
261
270
|
interface SdPwaConfig { manifest?: SdPwaManifestConfig; }
|
|
271
|
+
|
|
262
272
|
interface SdPwaManifestConfig {
|
|
263
273
|
name?: string;
|
|
264
274
|
short_name?: string;
|
|
@@ -267,17 +277,7 @@ interface SdPwaManifestConfig {
|
|
|
267
277
|
background_color?: string;
|
|
268
278
|
icons?: Array<{ src: string; sizes: string; type?: string }>;
|
|
269
279
|
}
|
|
270
|
-
```
|
|
271
|
-
|
|
272
|
-
- manifest?: SdPwaManifestConfig — PWA manifest 커스터마이징. 미지정 시 기본 manifest.
|
|
273
|
-
- display?: "standalone"|"fullscreen"|"minimal-ui"|"browser" — 앱 표시 모드. "standalone" = 브라우저 UI 없는 앱 창, "fullscreen" = 전체 화면, "minimal-ui" = 최소 브라우저 UI, "browser" = 일반 탭. 네이티브 느낌이면 "standalone".
|
|
274
|
-
- name/short_name — manifest 앱 이름 / 짧은 이름.
|
|
275
|
-
- theme_color/background_color — manifest 테마 색 / 배경 색.
|
|
276
|
-
- icons?: Array<{ src; sizes; type? }> — manifest 아이콘 목록. src = 경로, sizes = 크기(예: `"512x512"`), type = MIME 타입.
|
|
277
|
-
|
|
278
|
-
## SdBrowserSupportConfig (client 의 browserSupport)
|
|
279
280
|
|
|
280
|
-
```typescript
|
|
281
281
|
interface SdBrowserSupportConfig {
|
|
282
282
|
browserslist?: string | string[];
|
|
283
283
|
postCss?: { plugins: [string, (object | string)?][] };
|
|
@@ -285,16 +285,23 @@ interface SdBrowserSupportConfig {
|
|
|
285
285
|
}
|
|
286
286
|
```
|
|
287
287
|
|
|
288
|
-
-
|
|
289
|
-
-
|
|
290
|
-
-
|
|
288
|
+
- **SdPwaManifestConfig.display**: `"standalone" | "fullscreen" | "minimal-ui" | "browser"` — PWA 표시 모드(웹 앱 manifest `display` 그대로).
|
|
289
|
+
- **SdBrowserSupportConfig.browserslist**: `string | string[]` — browserslist 쿼리(예: `"last 2 Chrome versions"` 또는 `["ie 11", "last 2 versions"]`).
|
|
290
|
+
- **SdBrowserSupportConfig.postCss**: PostCSS 플러그인 설정. `plugins` 는 `[name, options]` 튜플 배열.
|
|
291
|
+
- **SdBrowserSupportConfig.legacyModule**: boolean — 레거시 모듈 지원. 코드 분할 비활성화 + `import.meta` 치환.
|
|
291
292
|
|
|
292
|
-
##
|
|
293
|
+
## NpmConfig
|
|
293
294
|
|
|
294
295
|
```typescript
|
|
295
|
-
|
|
296
|
-
|
|
296
|
+
interface NpmConfig {
|
|
297
|
+
name: string;
|
|
298
|
+
version: string;
|
|
299
|
+
description?: string;
|
|
300
|
+
dependencies?: Record<string, string>;
|
|
301
|
+
devDependencies?: Record<string, string>;
|
|
302
|
+
peerDependencies?: Record<string, string>;
|
|
303
|
+
volta?: unknown;
|
|
304
|
+
}
|
|
297
305
|
```
|
|
298
306
|
|
|
299
|
-
|
|
300
|
-
- NpmConfig — `package.json` 구조 타입. name/version 필수, description/dependencies/devDependencies/peerDependencies/volta 는 선택. package.json 을 타입 안전하게 다룰 때.
|
|
307
|
+
npm `package.json` 구조 타입. sd.config 설정값은 아니며, package.json 을 다루는 보조 타입으로 entry 에서 함께 노출된다.
|