@simplysm/sd-claude 14.0.46 → 14.0.48

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.
Files changed (127) hide show
  1. package/{claude/references/sd-simplysm14/sd-claude/usage.md → README.md} +2 -2
  2. package/claude/rules/sd-claude-rules.md +27 -9
  3. package/claude/rules/sd-options.md +11 -6
  4. package/claude/sd-subagent-start.sh +6 -0
  5. package/claude/settings.json +1 -12
  6. package/claude/skills/sd-check/SKILL.md +18 -9
  7. package/claude/skills/sd-claude-docs/SKILL.md +29 -58
  8. package/claude/skills/sd-claude-docs/references/package-claudemd.md +12 -0
  9. package/claude/skills/sd-claude-docs/references/package-doc-gen.md +22 -12
  10. package/claude/skills/sd-debug/SKILL.md +5 -3
  11. package/claude/skills/sd-deliverable/SKILL.md +0 -1
  12. package/claude/skills/sd-dev/SKILL.md +14 -9
  13. package/claude/skills/sd-doc-extract/SKILL.md +7 -9
  14. package/claude/skills/sd-doc-extract/_common.py +8 -1
  15. package/claude/skills/sd-doc-extract/_extract_docx.py +74 -34
  16. package/claude/skills/sd-doc-extract/_extract_pdf.py +12 -1
  17. package/claude/skills/sd-doc-extract/_extract_pptx.py +103 -23
  18. package/claude/skills/sd-doc-extract/_extract_xlsb.py +93 -4
  19. package/claude/skills/sd-doc-extract/_extract_xlsx.py +98 -36
  20. package/claude/skills/sd-doc-extract/extract.py +22 -3
  21. package/claude/skills/sd-inner-clarify/SKILL.md +78 -0
  22. package/claude/skills/sd-inner-debug/SKILL.md +1 -1
  23. package/claude/skills/sd-inner-review/SKILL.md +13 -0
  24. package/claude/skills/sd-plan/SKILL.md +50 -17
  25. package/claude/skills/sd-prompt/SKILL.md +180 -178
  26. package/claude/skills/sd-prompt/references/eval-runner.md +5 -31
  27. package/claude/skills/sd-prompt/references/sd-eval-env-template.md +23 -0
  28. package/claude/skills/sd-refactor/SKILL.md +2 -2
  29. package/claude/skills/sd-tdd/SKILL.md +46 -10
  30. package/claude/skills/sd-use/SKILL.md +84 -80
  31. package/claude/skills/sd-wbs/SKILL.md +85 -27
  32. package/{claude/references/sd-simplysm14/sd-claude/docs → docs}/assets.md +2 -3
  33. package/{claude/references/sd-simplysm14/sd-claude/docs → docs}/hooks.md +7 -6
  34. package/{claude/references/sd-simplysm14/sd-claude/docs → docs}/scripts.md +1 -9
  35. package/package.json +3 -2
  36. package/scripts/sync.mjs +4 -2
  37. package/claude/references/sd-simplysm14/angular/docs/bootstrap.md +0 -48
  38. package/claude/references/sd-simplysm14/angular/docs/directives.md +0 -236
  39. package/claude/references/sd-simplysm14/angular/docs/features.md +0 -379
  40. package/claude/references/sd-simplysm14/angular/docs/pipes.md +0 -32
  41. package/claude/references/sd-simplysm14/angular/docs/plugins.md +0 -37
  42. package/claude/references/sd-simplysm14/angular/docs/provider-types.md +0 -283
  43. package/claude/references/sd-simplysm14/angular/docs/providers.md +0 -370
  44. package/claude/references/sd-simplysm14/angular/docs/styling.md +0 -222
  45. package/claude/references/sd-simplysm14/angular/docs/type-utilities.md +0 -250
  46. package/claude/references/sd-simplysm14/angular/docs/ui-data.md +0 -275
  47. package/claude/references/sd-simplysm14/angular/docs/ui-form.md +0 -490
  48. package/claude/references/sd-simplysm14/angular/docs/ui-layout.md +0 -140
  49. package/claude/references/sd-simplysm14/angular/docs/ui-navigation.md +0 -241
  50. package/claude/references/sd-simplysm14/angular/docs/ui-overlay.md +0 -157
  51. package/claude/references/sd-simplysm14/angular/docs/ui-visual.md +0 -127
  52. package/claude/references/sd-simplysm14/angular/docs/utils.md +0 -295
  53. package/claude/references/sd-simplysm14/angular/usage.md +0 -489
  54. package/claude/references/sd-simplysm14/capacitor-plugin-auto-update/usage.md +0 -182
  55. package/claude/references/sd-simplysm14/capacitor-plugin-file-system/docs/file-operations.md +0 -154
  56. package/claude/references/sd-simplysm14/capacitor-plugin-file-system/docs/permissions.md +0 -84
  57. package/claude/references/sd-simplysm14/capacitor-plugin-file-system/docs/storage-paths.md +0 -107
  58. package/claude/references/sd-simplysm14/capacitor-plugin-file-system/docs/types.md +0 -83
  59. package/claude/references/sd-simplysm14/capacitor-plugin-file-system/usage.md +0 -133
  60. package/claude/references/sd-simplysm14/capacitor-plugin-intent/usage.md +0 -203
  61. package/claude/references/sd-simplysm14/capacitor-plugin-usb-storage/usage.md +0 -258
  62. package/claude/references/sd-simplysm14/core-browser/usage.md +0 -306
  63. package/claude/references/sd-simplysm14/core-common/docs/errors.md +0 -82
  64. package/claude/references/sd-simplysm14/core-common/docs/extensions.md +0 -167
  65. package/claude/references/sd-simplysm14/core-common/docs/features.md +0 -136
  66. package/claude/references/sd-simplysm14/core-common/docs/types.md +0 -245
  67. package/claude/references/sd-simplysm14/core-common/docs/utils.md +0 -591
  68. package/claude/references/sd-simplysm14/core-common/usage.md +0 -255
  69. package/claude/references/sd-simplysm14/core-node/docs/child-process.md +0 -182
  70. package/claude/references/sd-simplysm14/core-node/docs/features.md +0 -214
  71. package/claude/references/sd-simplysm14/core-node/docs/file-system.md +0 -509
  72. package/claude/references/sd-simplysm14/core-node/docs/file-watching.md +0 -139
  73. package/claude/references/sd-simplysm14/core-node/docs/logging.md +0 -180
  74. package/claude/references/sd-simplysm14/core-node/docs/path.md +0 -176
  75. package/claude/references/sd-simplysm14/core-node/docs/utilities-cpx.md +0 -194
  76. package/claude/references/sd-simplysm14/core-node/docs/utilities-fsx.md +0 -469
  77. package/claude/references/sd-simplysm14/core-node/docs/utilities-pathx.md +0 -151
  78. package/claude/references/sd-simplysm14/core-node/docs/worker-threads.md +0 -334
  79. package/claude/references/sd-simplysm14/core-node/docs/worker.md +0 -205
  80. package/claude/references/sd-simplysm14/core-node/usage.md +0 -259
  81. package/claude/references/sd-simplysm14/excel/docs/core-classes.md +0 -443
  82. package/claude/references/sd-simplysm14/excel/docs/types.md +0 -455
  83. package/claude/references/sd-simplysm14/excel/docs/utilities.md +0 -194
  84. package/claude/references/sd-simplysm14/excel/docs/wrapper.md +0 -73
  85. package/claude/references/sd-simplysm14/excel/usage.md +0 -134
  86. package/claude/references/sd-simplysm14/lint/usage.md +0 -130
  87. package/claude/references/sd-simplysm14/orm-common/docs/core.md +0 -188
  88. package/claude/references/sd-simplysm14/orm-common/docs/expression.md +0 -190
  89. package/claude/references/sd-simplysm14/orm-common/docs/models.md +0 -17
  90. package/claude/references/sd-simplysm14/orm-common/docs/query-builder.md +0 -97
  91. package/claude/references/sd-simplysm14/orm-common/docs/queryable-executable.md +0 -250
  92. package/claude/references/sd-simplysm14/orm-common/docs/schema-builders.md +0 -364
  93. package/claude/references/sd-simplysm14/orm-common/docs/types.md +0 -522
  94. package/claude/references/sd-simplysm14/orm-common/usage.md +0 -229
  95. package/claude/references/sd-simplysm14/orm-node/docs/connections.md +0 -137
  96. package/claude/references/sd-simplysm14/orm-node/docs/core.md +0 -131
  97. package/claude/references/sd-simplysm14/orm-node/docs/types.md +0 -173
  98. package/claude/references/sd-simplysm14/orm-node/usage.md +0 -143
  99. package/claude/references/sd-simplysm14/sd-cli/usage.md +0 -782
  100. package/claude/references/sd-simplysm14/service-client/docs/features.md +0 -217
  101. package/claude/references/sd-simplysm14/service-client/docs/main.md +0 -148
  102. package/claude/references/sd-simplysm14/service-client/docs/protocol.md +0 -53
  103. package/claude/references/sd-simplysm14/service-client/docs/transport.md +0 -131
  104. package/claude/references/sd-simplysm14/service-client/docs/types.md +0 -129
  105. package/claude/references/sd-simplysm14/service-client/usage.md +0 -202
  106. package/claude/references/sd-simplysm14/service-common/docs/app-structure.md +0 -175
  107. package/claude/references/sd-simplysm14/service-common/docs/events.md +0 -64
  108. package/claude/references/sd-simplysm14/service-common/docs/protocol.md +0 -331
  109. package/claude/references/sd-simplysm14/service-common/docs/service-types.md +0 -90
  110. package/claude/references/sd-simplysm14/service-common/docs/types.md +0 -19
  111. package/claude/references/sd-simplysm14/service-common/usage.md +0 -154
  112. package/claude/references/sd-simplysm14/service-server/docs/auth.md +0 -64
  113. package/claude/references/sd-simplysm14/service-server/docs/core.md +0 -174
  114. package/claude/references/sd-simplysm14/service-server/docs/legacy.md +0 -25
  115. package/claude/references/sd-simplysm14/service-server/docs/main.md +0 -88
  116. package/claude/references/sd-simplysm14/service-server/docs/protocol.md +0 -33
  117. package/claude/references/sd-simplysm14/service-server/docs/services.md +0 -94
  118. package/claude/references/sd-simplysm14/service-server/docs/transport-http.md +0 -93
  119. package/claude/references/sd-simplysm14/service-server/docs/transport-socket.md +0 -119
  120. package/claude/references/sd-simplysm14/service-server/docs/types.md +0 -36
  121. package/claude/references/sd-simplysm14/service-server/docs/utils.md +0 -22
  122. package/claude/references/sd-simplysm14/service-server/usage.md +0 -171
  123. package/claude/references/sd-simplysm14/storage/usage.md +0 -301
  124. package/claude/references/sd-simplysm14.md +0 -35
  125. package/claude/rules/sd-clarify.md +0 -23
  126. package/claude/sd-session-start.sh +0 -10
  127. /package/{claude/references/sd-simplysm14/sd-claude/docs → docs}/cli.md +0 -0
@@ -1,455 +0,0 @@
1
- # Types
2
-
3
- ## Value Types
4
-
5
- ### `ExcelValueType`
6
-
7
- 셀에 저장할 수 있는 값의 타입이다.
8
-
9
- ```typescript
10
- export type ExcelValueType = number | string | DateOnly | DateTime | Time | boolean | undefined;
11
- ```
12
-
13
- ### `ExcelNumberFormat`
14
-
15
- 숫자 형식 이름이다. `ExcelUtils`의 변환 메서드와 `ExcelStyleOptions.numberFormat`에서 사용한다.
16
-
17
- ```typescript
18
- export type ExcelNumberFormat = "number" | "string" | "DateOnly" | "DateTime" | "Time";
19
- ```
20
-
21
- ### `ExcelCellType`
22
-
23
- Excel 셀 타입이다. XML의 `t` 속성에 대응한다.
24
-
25
- ```typescript
26
- export type ExcelCellType = "s" | "b" | "str" | "n" | "inlineStr" | "e";
27
- ```
28
-
29
- | Value | Description |
30
- |-------|-------------|
31
- | `"s"` | 공유 문자열 (SharedString) |
32
- | `"b"` | boolean |
33
- | `"str"` | 수식 결과 문자열 |
34
- | `"n"` | 숫자 |
35
- | `"inlineStr"` | 인라인 문자열 (서식 있는 텍스트) |
36
- | `"e"` | 에러 |
37
-
38
- ## Address Types
39
-
40
- ### `ExcelAddressPoint`
41
-
42
- 셀 좌표를 나타내는 인터페이스이다. 모든 좌표는 0 기반이다.
43
-
44
- ```typescript
45
- export interface ExcelAddressPoint {
46
- r: number;
47
- c: number;
48
- }
49
- ```
50
-
51
- | Field | Type | Description |
52
- |-------|------|-------------|
53
- | `r` | `number` | 행 인덱스 (0 기반) |
54
- | `c` | `number` | 열 인덱스 (0 기반) |
55
-
56
- ### `ExcelAddressRangePoint`
57
-
58
- 셀 범위 좌표를 나타내는 인터페이스이다.
59
-
60
- ```typescript
61
- export interface ExcelAddressRangePoint {
62
- s: ExcelAddressPoint;
63
- e: ExcelAddressPoint;
64
- }
65
- ```
66
-
67
- | Field | Type | Description |
68
- |-------|------|-------------|
69
- | `s` | `ExcelAddressPoint` | 시작 좌표 |
70
- | `e` | `ExcelAddressPoint` | 끝 좌표 |
71
-
72
- ## Style Types
73
-
74
- ### `ExcelStyleOptions`
75
-
76
- 셀 스타일 옵션 인터페이스이다.
77
-
78
- ```typescript
79
- export interface ExcelStyleOptions {
80
- background?: string;
81
- border?: ExcelBorderPosition[];
82
- horizontalAlign?: ExcelHorizontalAlign;
83
- verticalAlign?: ExcelVerticalAlign;
84
- numberFormat?: ExcelNumberFormat;
85
- }
86
- ```
87
-
88
- | Field | Type | Description |
89
- |-------|------|-------------|
90
- | `background` | `string \| undefined` | 배경색 (ARGB 형식, 8자리 16진수. 예: `"00FF0000"` = 빨강. alpha는 반전 값) |
91
- | `border` | `ExcelBorderPosition[] \| undefined` | 테두리 위치 배열 |
92
- | `horizontalAlign` | `ExcelHorizontalAlign \| undefined` | 가로 정렬 |
93
- | `verticalAlign` | `ExcelVerticalAlign \| undefined` | 세로 정렬 |
94
- | `numberFormat` | `ExcelNumberFormat \| undefined` | 숫자 형식 |
95
-
96
- ### `ExcelBorderPosition`
97
-
98
- 테두리 위치를 나타내는 타입이다.
99
-
100
- ```typescript
101
- export type ExcelBorderPosition = "left" | "right" | "top" | "bottom";
102
- ```
103
-
104
- ### `ExcelHorizontalAlign`
105
-
106
- 가로 정렬을 나타내는 타입이다.
107
-
108
- ```typescript
109
- export type ExcelHorizontalAlign = "center" | "left" | "right";
110
- ```
111
-
112
- ### `ExcelVerticalAlign`
113
-
114
- 세로 정렬을 나타내는 타입이다.
115
-
116
- ```typescript
117
- export type ExcelVerticalAlign = "center" | "top" | "bottom";
118
- ```
119
-
120
- ## Excel XML Interface
121
-
122
- ### `ExcelXml`
123
-
124
- XML 처리 클래스가 구현하는 인터페이스이다. 내부 구현에 사용되며, `xml/` 디렉터리의 클래스들이 이를 구현한다.
125
-
126
- ```typescript
127
- export interface ExcelXml {
128
- readonly data: unknown;
129
- cleanup(): void;
130
- }
131
- ```
132
-
133
- | Field | Type | Description |
134
- |-------|------|-------------|
135
- | `data` | `unknown` | XML 파싱된 데이터 |
136
- | `cleanup()` | `() => void` | `ZipCache.toBytes()` 직전에 호출되어 직렬화 전 데이터를 정리한다 |
137
-
138
- ## XML Data Types
139
-
140
- 아래 인터페이스들은 xlsx 내부 XML 파일의 데이터 구조를 타입으로 표현한 것이다. 주로 내부 구현에 사용된다.
141
-
142
- ### `ExcelXmlContentTypeData`
143
-
144
- `[Content_Types].xml` 데이터 구조이다.
145
-
146
- ```typescript
147
- export interface ExcelXmlContentTypeData {
148
- Types: {
149
- $: { xmlns: string };
150
- Default: { $: { Extension: string; ContentType: string } }[];
151
- Override: { $: { PartName: string; ContentType: string } }[];
152
- };
153
- }
154
- ```
155
-
156
- | Field | Type | Description |
157
- |-------|------|-------------|
158
- | `Types.$` | `{ xmlns: string }` | 네임스페이스 |
159
- | `Types.Default` | `Array` | 확장자별 기본 콘텐트 타입 |
160
- | `Types.Default.$.Extension` | `string` | 파일 확장자 |
161
- | `Types.Default.$.ContentType` | `string` | MIME 타입 |
162
- | `Types.Override` | `Array` | 파일별 오버라이드 콘텐트 타입 |
163
- | `Types.Override.$.PartName` | `string` | 파일 경로 |
164
- | `Types.Override.$.ContentType` | `string` | MIME 타입 |
165
-
166
- ### `ExcelXmlRelationshipData`
167
-
168
- `*.rels` 파일 데이터 구조이다.
169
-
170
- ```typescript
171
- export interface ExcelXmlRelationshipData {
172
- Relationships: {
173
- $: { xmlns: string };
174
- Relationship?: ExcelRelationshipData[];
175
- };
176
- }
177
- ```
178
-
179
- | Field | Type | Description |
180
- |-------|------|-------------|
181
- | `Relationships.$` | `{ xmlns: string }` | 네임스페이스 |
182
- | `Relationships.Relationship` | `ExcelRelationshipData[] \| undefined` | 관계 항목 배열 |
183
-
184
- ### `ExcelRelationshipData`
185
-
186
- 개별 Relationship 엔트리 데이터이다.
187
-
188
- ```typescript
189
- export interface ExcelRelationshipData {
190
- $: {
191
- Id: string;
192
- Target: string;
193
- Type: string;
194
- };
195
- }
196
- ```
197
-
198
- | Field | Type | Description |
199
- |-------|------|-------------|
200
- | `$.Id` | `string` | 관계 ID (예: `"rId1"`) |
201
- | `$.Target` | `string` | 대상 파일 경로 |
202
- | `$.Type` | `string` | 관계 타입 URI |
203
-
204
- ### `ExcelXmlWorkbookData`
205
-
206
- `workbook.xml` 데이터 구조이다.
207
-
208
- ```typescript
209
- export interface ExcelXmlWorkbookData {
210
- workbook: {
211
- $: { "xmlns": string; "xmlns:r"?: string };
212
- bookViews?: [{ workbookView: [{}] }];
213
- sheets?: [{ sheet: { $: { "name": string; "sheetId": string; "r:id": string } }[] }];
214
- };
215
- }
216
- ```
217
-
218
- | Field | Type | Description |
219
- |-------|------|-------------|
220
- | `workbook.$` | `object` | 네임스페이스 |
221
- | `workbook.bookViews` | `Array \| undefined` | 워크북 뷰 설정 |
222
- | `workbook.sheets` | `Array \| undefined` | 시트 목록 |
223
- | `workbook.sheets[0].sheet[].$.name` | `string` | 시트 이름 |
224
- | `workbook.sheets[0].sheet[].$.sheetId` | `string` | 시트 ID |
225
- | `workbook.sheets[0].sheet[].$["r:id"]` | `string` | 관계 ID |
226
-
227
- ### `ExcelXmlWorksheetData`
228
-
229
- `worksheet*.xml` 데이터 구조이다.
230
-
231
- ```typescript
232
- export interface ExcelXmlWorksheetData {
233
- worksheet: {
234
- $: { "xmlns": string; "xmlns:r"?: string };
235
- dimension?: [{ $: { ref: string } }];
236
- sheetViews?: [{ sheetView: { $: { workbookViewId: string; zoomScale?: string }; pane?: [...] }[] }];
237
- sheetFormatPr?: [{ $: { defaultRowHeight: string } }];
238
- cols?: [{ col: { $: { min: string; max: string; width?: string; bestFit?: string; customWidth?: string } }[] }];
239
- sheetData: [{ row?: ExcelRowData[] }];
240
- mergeCells?: [{ $: { count: string }; mergeCell: { $: { ref: string } }[] }];
241
- drawing?: { $: { "r:id": string } }[];
242
- };
243
- }
244
- ```
245
-
246
- | Field | Type | Description |
247
- |-------|------|-------------|
248
- | `worksheet.dimension` | `Array \| undefined` | 데이터 범위 (예: `"A1:C10"`) |
249
- | `worksheet.sheetViews` | `Array \| undefined` | 시트 뷰 설정 (줌, 틀 고정) |
250
- | `worksheet.sheetFormatPr` | `Array \| undefined` | 기본 행 높이 |
251
- | `worksheet.cols` | `Array \| undefined` | 열 설정 (너비 등) |
252
- | `worksheet.sheetData` | `Array` | 행 데이터 |
253
- | `worksheet.mergeCells` | `Array \| undefined` | 병합 셀 정보 |
254
- | `worksheet.drawing` | `Array \| undefined` | 드로잉 관계 참조 |
255
-
256
- ### `ExcelRowData`
257
-
258
- 행 XML 데이터이다.
259
-
260
- ```typescript
261
- export interface ExcelRowData {
262
- $: { r: string };
263
- c?: ExcelCellData[];
264
- }
265
- ```
266
-
267
- | Field | Type | Description |
268
- |-------|------|-------------|
269
- | `$.r` | `string` | 행 주소 (1 기반, 예: `"1"`, `"10"`) |
270
- | `c` | `ExcelCellData[] \| undefined` | 셀 데이터 배열 |
271
-
272
- ### `ExcelCellData`
273
-
274
- 셀 XML 데이터이다.
275
-
276
- ```typescript
277
- export interface ExcelCellData {
278
- $: { r: string; s?: string; t?: ExcelCellType };
279
- v?: [string];
280
- f?: [string];
281
- is?: { t?: (string | { _?: string })[] }[];
282
- }
283
- ```
284
-
285
- | Field | Type | Description |
286
- |-------|------|-------------|
287
- | `$.r` | `string` | 셀 주소 (예: `"A1"`, `"B3"`) |
288
- | `$.s` | `string \| undefined` | 스타일 ID |
289
- | `$.t` | `ExcelCellType \| undefined` | 셀 타입 |
290
- | `v` | `[string] \| undefined` | 셀 값 |
291
- | `f` | `[string] \| undefined` | 수식 |
292
- | `is` | `Array \| undefined` | 인라인 문자열 데이터 |
293
-
294
- ### `ExcelXmlDrawingData`
295
-
296
- `drawing*.xml` 데이터 구조이다. 이미지 앵커 정보를 포함한다.
297
-
298
- ```typescript
299
- export interface ExcelXmlDrawingData {
300
- wsDr: {
301
- $: { "xmlns": string; "xmlns:a"?: string; "xmlns:r"?: string };
302
- twoCellAnchor?: {
303
- from?: { col: string[]; colOff?: string[]; row: string[]; rowOff?: string[] }[];
304
- to?: { col: string[]; colOff?: string[]; row: string[]; rowOff?: string[] }[];
305
- pic?: { nvPicPr?: {...}[]; blipFill?: {...}[]; spPr?: {...}[] }[];
306
- clientData?: unknown[];
307
- }[];
308
- };
309
- }
310
- ```
311
-
312
- | Field | Type | Description |
313
- |-------|------|-------------|
314
- | `wsDr.$` | `object` | 네임스페이스 |
315
- | `wsDr.twoCellAnchor` | `Array \| undefined` | 두 셀 사이에 앵커된 이미지 목록 |
316
- | `twoCellAnchor.from` | `Array \| undefined` | 시작 위치 (행/열/오프셋) |
317
- | `twoCellAnchor.to` | `Array \| undefined` | 끝 위치 (행/열/오프셋) |
318
- | `twoCellAnchor.pic` | `Array \| undefined` | 이미지 정보 (blip 관계 ID 포함) |
319
-
320
- ### `ExcelXmlSharedStringData`
321
-
322
- `sharedStrings.xml` 데이터 구조이다.
323
-
324
- ```typescript
325
- export interface ExcelXmlSharedStringData {
326
- sst: {
327
- $: { xmlns: string };
328
- si?: ExcelXmlSharedStringDataSi[];
329
- };
330
- }
331
- ```
332
-
333
- | Field | Type | Description |
334
- |-------|------|-------------|
335
- | `sst.$` | `{ xmlns: string }` | 네임스페이스 |
336
- | `sst.si` | `ExcelXmlSharedStringDataSi[] \| undefined` | 공유 문자열 항목 배열 |
337
-
338
- ### `ExcelXmlSharedStringDataSi`
339
-
340
- SharedString 개별 항목이다. discriminated union으로, `t` 키가 있으면 단순 텍스트, `r` 키가 있으면 서식 있는 텍스트(rich text)이다.
341
-
342
- ```typescript
343
- export type ExcelXmlSharedStringDataSi =
344
- | { t: ExcelXmlSharedStringDataText }
345
- | { r: { t: ExcelXmlSharedStringDataText }[] };
346
- ```
347
-
348
- | Variant | Discriminant | Description |
349
- |---------|-------------|-------------|
350
- | `{ t: ... }` | `t` 키 존재 | 단순 텍스트 |
351
- | `{ r: ... }` | `r` 키 존재 | 서식 있는 텍스트 (run 배열) |
352
-
353
- ### `ExcelXmlSharedStringDataText`
354
-
355
- SharedString 텍스트 데이터이다. 단순 문자열 또는 공백 보존 속성이 있는 객체이다.
356
-
357
- ```typescript
358
- export type ExcelXmlSharedStringDataText = [string | { $: { space?: "preserve" }; _?: string }];
359
- ```
360
-
361
- ### `ExcelXmlStyleData`
362
-
363
- `styles.xml` 데이터 구조이다.
364
-
365
- ```typescript
366
- export interface ExcelXmlStyleData {
367
- styleSheet: {
368
- $: { xmlns: string };
369
- numFmts?: [{ $: { count: string }; numFmt?: { $: { numFmtId: string; formatCode: string } }[] }];
370
- fonts: [{ $: { count: string }; font: {}[] }];
371
- fills: [{ $: { count: string }; fill: ExcelXmlStyleDataFill[] }];
372
- borders: [{ $: { count: string }; border: ExcelXmlStyleDataBorder[] }];
373
- cellXfs: [{ $: { count: string }; xf: ExcelXmlStyleDataXf[] }];
374
- };
375
- }
376
- ```
377
-
378
- | Field | Type | Description |
379
- |-------|------|-------------|
380
- | `styleSheet.numFmts` | `Array \| undefined` | 커스텀 숫자 형식 목록 |
381
- | `styleSheet.fonts` | `Array` | 폰트 목록 |
382
- | `styleSheet.fills` | `Array` | 채우기 스타일 목록 |
383
- | `styleSheet.borders` | `Array` | 테두리 스타일 목록 |
384
- | `styleSheet.cellXfs` | `Array` | 셀 서식(xf) 목록 |
385
-
386
- ### `ExcelXmlStyleDataXf`
387
-
388
- 셀 서식(xf) 데이터이다.
389
-
390
- ```typescript
391
- export interface ExcelXmlStyleDataXf {
392
- $: {
393
- numFmtId?: string;
394
- fontId?: string;
395
- fillId?: string;
396
- borderId?: string;
397
- xfId?: string;
398
- applyNumberFormat?: string;
399
- applyFont?: string;
400
- applyAlignment?: string;
401
- applyFill?: string;
402
- applyBorder?: string;
403
- };
404
- alignment?: [{ $: { horizontal?: "center" | "left" | "right"; vertical?: "center" | "top" | "bottom" } }];
405
- }
406
- ```
407
-
408
- | Field | Type | Description |
409
- |-------|------|-------------|
410
- | `$.numFmtId` | `string \| undefined` | 숫자 형식 ID |
411
- | `$.fontId` | `string \| undefined` | 폰트 ID |
412
- | `$.fillId` | `string \| undefined` | 채우기 ID |
413
- | `$.borderId` | `string \| undefined` | 테두리 ID |
414
- | `$.xfId` | `string \| undefined` | 부모 xf ID |
415
- | `$.applyNumberFormat` | `string \| undefined` | 숫자 형식 적용 여부 |
416
- | `$.applyFont` | `string \| undefined` | 폰트 적용 여부 |
417
- | `$.applyAlignment` | `string \| undefined` | 정렬 적용 여부 |
418
- | `$.applyFill` | `string \| undefined` | 채우기 적용 여부 |
419
- | `$.applyBorder` | `string \| undefined` | 테두리 적용 여부 |
420
- | `alignment` | `Array \| undefined` | 정렬 설정 (horizontal, vertical) |
421
-
422
- ### `ExcelXmlStyleDataFill`
423
-
424
- 채우기 스타일 데이터이다.
425
-
426
- ```typescript
427
- export interface ExcelXmlStyleDataFill {
428
- patternFill: [{ $: { patternType: "none" | "solid" | "gray125" }; fgColor?: [{ $: { rgb: string } }] }];
429
- }
430
- ```
431
-
432
- | Field | Type | Description |
433
- |-------|------|-------------|
434
- | `patternFill[0].$.patternType` | `"none" \| "solid" \| "gray125"` | 패턴 유형 |
435
- | `patternFill[0].fgColor` | `[{ $: { rgb: string } }] \| undefined` | 전경색 (ARGB) |
436
-
437
- ### `ExcelXmlStyleDataBorder`
438
-
439
- 테두리 스타일 데이터이다. 각 방향은 선택적이며, `style`과 `color`를 가진다.
440
-
441
- ```typescript
442
- export interface ExcelXmlStyleDataBorder {
443
- top?: [{ $: { style: "thin" | "medium" }; color?: [{ $: { rgb: string } }] }];
444
- left?: [{ $: { style: "thin" | "medium" }; color?: [{ $: { rgb: string } }] }];
445
- right?: [{ $: { style: "thin" | "medium" }; color?: [{ $: { rgb: string } }] }];
446
- bottom?: [{ $: { style: "thin" | "medium" }; color?: [{ $: { rgb: string } }] }];
447
- }
448
- ```
449
-
450
- | Field | Type | Description |
451
- |-------|------|-------------|
452
- | `top` | `Array \| undefined` | 상단 테두리 (`"thin"` 또는 `"medium"`) |
453
- | `left` | `Array \| undefined` | 좌측 테두리 |
454
- | `right` | `Array \| undefined` | 우측 테두리 |
455
- | `bottom` | `Array \| undefined` | 하단 테두리 |
@@ -1,194 +0,0 @@
1
- # Utilities
2
-
3
- ## `ExcelUtils`
4
-
5
- Excel 유틸리티 함수 모음. 셀 주소 변환, 날짜/숫자 변환, 숫자 형식 처리 정적 메서드를 제공한다.
6
-
7
- ```typescript
8
- export class ExcelUtils {
9
- // 주소 변환
10
- static stringifyAddr(point: ExcelAddressPoint): string;
11
- static stringifyRowAddr(r: number): string;
12
- static stringifyColAddr(c: number): string;
13
- static parseRowAddr(addr: string): number;
14
- static parseColAddr(addr: string): number;
15
- static parseCellAddr(addr: string): ExcelAddressPoint;
16
- static parseRangeAddr(rangeAddr: string): ExcelAddressRangePoint;
17
- static stringifyRangeAddr(point: ExcelAddressRangePoint): string;
18
-
19
- // 날짜/숫자 변환
20
- static convertTimeTickToNumber(tick: number): number;
21
- static convertNumberToTimeTick(value: number): number;
22
-
23
- // 숫자 형식 처리
24
- static convertNumFmtCodeToName(numFmtCode: string): ExcelNumberFormat;
25
- static convertNumFmtIdToName(numFmtId: number): ExcelNumberFormat;
26
- static convertNumFmtNameToId(numFmtName: ExcelNumberFormat): number;
27
- }
28
- ```
29
-
30
- ### 주소 변환 메서드
31
-
32
- #### `stringifyAddr(point)`
33
-
34
- 셀 좌표를 "A1" 형식 문자열로 변환한다.
35
-
36
- | Parameter | Type | Description |
37
- |-----------|------|-------------|
38
- | `point` | `ExcelAddressPoint` | 셀 좌표 (`{ r: number; c: number }`) |
39
-
40
- **반환값:** `string` - 예: `{ r: 0, c: 0 }` -> `"A1"`, `{ r: 2, c: 3 }` -> `"D3"`
41
-
42
- #### `stringifyRowAddr(r)`
43
-
44
- 행 인덱스(0 기반)를 행 주소 문자열로 변환한다.
45
-
46
- | Parameter | Type | Description |
47
- |-----------|------|-------------|
48
- | `r` | `number` | 행 인덱스 (0 기반) |
49
-
50
- **반환값:** `string` - 예: `0` -> `"1"`, `9` -> `"10"`
51
-
52
- #### `stringifyColAddr(c)`
53
-
54
- 열 인덱스(0 기반)를 열 주소 문자열로 변환한다. 열 인덱스는 0~16383 범위여야 한다.
55
-
56
- | Parameter | Type | Description |
57
- |-----------|------|-------------|
58
- | `c` | `number` | 열 인덱스 (0 기반) |
59
-
60
- **반환값:** `string` - 예: `0` -> `"A"`, `25` -> `"Z"`, `26` -> `"AA"`
61
-
62
- #### `parseRowAddr(addr)`
63
-
64
- 셀 주소에서 행 인덱스를 추출한다.
65
-
66
- | Parameter | Type | Description |
67
- |-----------|------|-------------|
68
- | `addr` | `string` | 셀 주소 (예: `"A3"`) |
69
-
70
- **반환값:** `number` - 0 기반 행 인덱스. 예: `"A3"` -> `2`
71
-
72
- #### `parseColAddr(addr)`
73
-
74
- 셀 주소에서 열 인덱스를 추출한다.
75
-
76
- | Parameter | Type | Description |
77
- |-----------|------|-------------|
78
- | `addr` | `string` | 셀 주소 (예: `"B3"`) |
79
-
80
- **반환값:** `number` - 0 기반 열 인덱스. 예: `"B3"` -> `1`
81
-
82
- #### `parseCellAddr(addr)`
83
-
84
- 셀 주소를 좌표로 변환한다.
85
-
86
- | Parameter | Type | Description |
87
- |-----------|------|-------------|
88
- | `addr` | `string` | 셀 주소 (예: `"B3"`) |
89
-
90
- **반환값:** `ExcelAddressPoint` - 예: `"B3"` -> `{ r: 2, c: 1 }`
91
-
92
- #### `parseRangeAddr(rangeAddr)`
93
-
94
- 범위 주소를 좌표로 변환한다.
95
-
96
- | Parameter | Type | Description |
97
- |-----------|------|-------------|
98
- | `rangeAddr` | `string` | 범위 주소 (예: `"A1:C3"`) |
99
-
100
- **반환값:** `ExcelAddressRangePoint` - 예: `"A1:C3"` -> `{ s: { r: 0, c: 0 }, e: { r: 2, c: 2 } }`
101
-
102
- #### `stringifyRangeAddr(point)`
103
-
104
- 범위 좌표를 주소 문자열로 변환한다. 시작과 끝이 같으면 단일 셀 주소를 반환한다.
105
-
106
- | Parameter | Type | Description |
107
- |-----------|------|-------------|
108
- | `point` | `ExcelAddressRangePoint` | 범위 좌표 |
109
-
110
- **반환값:** `string` - 예: `"A1:C3"` 또는 `"A1"` (단일 셀)
111
-
112
- ### 날짜/숫자 변환 메서드
113
-
114
- #### `convertTimeTickToNumber(tick)`
115
-
116
- JavaScript 타임스탬프(ms)를 Excel 날짜 숫자로 변환한다. Excel은 1900-01-01을 1로 계산한다 (1899-12-30이 날짜 0).
117
-
118
- | Parameter | Type | Description |
119
- |-----------|------|-------------|
120
- | `tick` | `number` | JavaScript 타임스탬프 (밀리초) |
121
-
122
- **반환값:** `number` - Excel 날짜 숫자
123
-
124
- #### `convertNumberToTimeTick(value)`
125
-
126
- Excel 날짜 숫자를 JavaScript 타임스탬프(ms)로 변환한다.
127
-
128
- | Parameter | Type | Description |
129
- |-----------|------|-------------|
130
- | `value` | `number` | Excel 날짜 숫자 |
131
-
132
- **반환값:** `number` - JavaScript 타임스탬프 (밀리초)
133
-
134
- ### 숫자 형식 처리 메서드
135
-
136
- #### `convertNumFmtCodeToName(numFmtCode)`
137
-
138
- 숫자 형식 코드를 형식 이름으로 변환한다.
139
-
140
- | Parameter | Type | Description |
141
- |-----------|------|-------------|
142
- | `numFmtCode` | `string` | 숫자 형식 코드 (예: `"General"`, `"yyyy-mm-dd"`) |
143
-
144
- **반환값:** `ExcelNumberFormat` - `"number"`, `"string"`, `"DateOnly"`, `"DateTime"`, `"Time"` 중 하나
145
-
146
- **변환 규칙:**
147
-
148
- | 형식 코드 패턴 | 반환값 |
149
- |----------------|--------|
150
- | `"General"` | `"number"` |
151
- | `yy`, `dd`, `mm`(날짜 문맥) 포함 + 시간 포함 | `"DateTime"` |
152
- | `yy`, `dd`, `mm`(날짜 문맥) 포함 | `"DateOnly"` |
153
- | `h`, `ss` 포함 | `"Time"` |
154
- | 숫자 패턴 (`0`, `#`, `.` 등) | `"number"` |
155
-
156
- #### `convertNumFmtIdToName(numFmtId)`
157
-
158
- Excel 내장 숫자 형식 ID를 형식 이름으로 변환한다.
159
-
160
- | Parameter | Type | Description |
161
- |-----------|------|-------------|
162
- | `numFmtId` | `number` | 숫자 형식 ID |
163
-
164
- **반환값:** `ExcelNumberFormat`
165
-
166
- **내장 형식 ID 범위:**
167
-
168
- | ID 범위 | 형식 |
169
- |---------|------|
170
- | 0~13, 37~40, 48 | `"number"` (숫자/일반/통화/퍼센트) |
171
- | 14~17, 27~31, 34~36, 50~58 | `"DateOnly"` (날짜, 로컬라이즈 포함) |
172
- | 22 | `"DateTime"` (날짜+시간) |
173
- | 18~21, 32~33, 45~47 | `"Time"` (시간) |
174
- | 49 | `"string"` (텍스트) |
175
-
176
- #### `convertNumFmtNameToId(numFmtName)`
177
-
178
- 숫자 형식 이름을 형식 ID로 변환한다.
179
-
180
- | Parameter | Type | Description |
181
- |-----------|------|-------------|
182
- | `numFmtName` | `ExcelNumberFormat` | 형식 이름 |
183
-
184
- **반환값:** `number`
185
-
186
- **매핑:**
187
-
188
- | 형식 이름 | ID |
189
- |-----------|-----|
190
- | `"number"` | 0 |
191
- | `"DateOnly"` | 14 |
192
- | `"DateTime"` | 22 |
193
- | `"Time"` | 18 |
194
- | `"string"` | 49 |