@simplysm/sd-claude 14.0.89 → 14.0.91
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 -17
- package/claude/references/sd-simplysm14/apis/angular/README.md +52 -30
- package/claude/references/sd-simplysm14/apis/angular/controls.md +200 -38
- package/claude/references/sd-simplysm14/apis/angular/crud.md +41 -53
- package/claude/references/sd-simplysm14/apis/angular/directives.md +66 -22
- package/claude/references/sd-simplysm14/apis/angular/features.md +127 -40
- package/claude/references/sd-simplysm14/apis/angular/infra.md +60 -43
- package/claude/references/sd-simplysm14/apis/angular/layout.md +56 -20
- package/claude/references/sd-simplysm14/apis/angular/overlay.md +74 -74
- package/claude/references/sd-simplysm14/apis/angular/routing-appstructure.md +50 -40
- package/claude/references/sd-simplysm14/apis/angular/selection-managers.md +55 -15
- package/claude/references/sd-simplysm14/apis/angular/shared-data.md +59 -42
- package/claude/references/sd-simplysm14/apis/angular/sheet.md +77 -62
- package/claude/references/sd-simplysm14/apis/capacitor-plugin-auto-update/README.md +8 -7
- package/claude/references/sd-simplysm14/apis/capacitor-plugin-file-system/README.md +71 -43
- package/claude/references/sd-simplysm14/apis/capacitor-plugin-intent/README.md +22 -14
- package/claude/references/sd-simplysm14/apis/capacitor-plugin-usb-storage/README.md +19 -19
- package/claude/references/sd-simplysm14/apis/core-browser/README.md +17 -17
- package/claude/references/sd-simplysm14/apis/core-browser/dom-element.md +28 -28
- package/claude/references/sd-simplysm14/apis/core-browser/indexed-db.md +37 -37
- package/claude/references/sd-simplysm14/apis/core-common/README.md +87 -219
- package/claude/references/sd-simplysm14/apis/core-common/array-ext.md +54 -98
- package/claude/references/sd-simplysm14/apis/core-common/async-runtime.md +57 -99
- package/claude/references/sd-simplysm14/apis/core-common/datetime.md +60 -103
- package/claude/references/sd-simplysm14/apis/core-common/errors.md +42 -47
- package/claude/references/sd-simplysm14/apis/core-common/obj.md +42 -88
- package/claude/references/sd-simplysm14/apis/core-common/serialization.md +55 -0
- package/claude/references/sd-simplysm14/apis/core-node/README.md +6 -7
- package/claude/references/sd-simplysm14/apis/core-node/consola.md +17 -12
- package/claude/references/sd-simplysm14/apis/core-node/cpx.md +14 -13
- package/claude/references/sd-simplysm14/apis/core-node/fs-watcher.md +9 -8
- package/claude/references/sd-simplysm14/apis/core-node/fsx.md +14 -13
- package/claude/references/sd-simplysm14/apis/core-node/pathx.md +4 -8
- package/claude/references/sd-simplysm14/apis/core-node/worker.md +14 -12
- package/claude/references/sd-simplysm14/apis/excel/README.md +22 -22
- package/claude/references/sd-simplysm14/apis/excel/cell.md +37 -29
- package/claude/references/sd-simplysm14/apis/excel/conditional-format.md +29 -15
- package/claude/references/sd-simplysm14/apis/excel/style.md +33 -27
- package/claude/references/sd-simplysm14/apis/excel/utils.md +29 -19
- package/claude/references/sd-simplysm14/apis/excel/workbook-worksheet.md +78 -55
- package/claude/references/sd-simplysm14/apis/excel/wrapper.md +42 -45
- package/claude/references/sd-simplysm14/apis/orm-common/README.md +6 -8
- package/claude/references/sd-simplysm14/apis/orm-common/db-context.md +118 -67
- package/claude/references/sd-simplysm14/apis/orm-common/expr.md +83 -86
- package/claude/references/sd-simplysm14/apis/orm-common/queryable.md +102 -93
- package/claude/references/sd-simplysm14/apis/orm-common/schema.md +138 -81
- package/claude/references/sd-simplysm14/apis/orm-common/types.md +49 -44
- package/claude/references/sd-simplysm14/apis/orm-node/README.md +42 -42
- package/claude/references/sd-simplysm14/apis/orm-node/db-conn.md +44 -33
- package/claude/references/sd-simplysm14/apis/sd-cli/README.md +11 -10
- package/claude/references/sd-simplysm14/apis/service-client/README.md +56 -52
- package/claude/references/sd-simplysm14/apis/service-client/orm.md +33 -28
- package/claude/references/sd-simplysm14/apis/service-client/transport.md +23 -21
- package/claude/references/sd-simplysm14/apis/service-common/README.md +83 -48
- package/claude/references/sd-simplysm14/apis/service-common/app-structure.md +126 -34
- package/claude/references/sd-simplysm14/apis/service-common/protocol.md +109 -54
- package/claude/references/sd-simplysm14/apis/service-server/README.md +69 -81
- package/claude/references/sd-simplysm14/apis/service-server/service-authoring.md +46 -43
- package/claude/references/sd-simplysm14/apis/service-server/transport-internals.md +63 -37
- package/claude/references/sd-simplysm14/apis/service-server/v1-legacy.md +40 -30
- package/claude/references/sd-simplysm14/apis/storage/README.md +17 -17
- package/claude/references/sd-simplysm14/manuals/client-app-structure.md +135 -140
- package/claude/references/sd-simplysm14/manuals/client-orm.md +1 -1
- package/claude/references/sd-simplysm14/manuals/client-service.md +19 -7
- package/claude/references/sd-simplysm14/manuals/client-shared-data.md +2 -2
- package/claude/references/sd-simplysm14/manuals/client-system-log.md +16 -4
- package/claude/references/sd-simplysm14/manuals/data-log.md +0 -1
- package/claude/references/sd-simplysm14/manuals/orm.md +16 -0
- package/claude/rules/sd-design-rules.md +10 -0
- package/claude/skills/sd-demo/SKILL.md +0 -6
- package/claude/skills/sd-docs/SKILL.md +60 -0
- package/claude/{workflows/sd-docs.rules.md → skills/sd-docs/references/subagent-prompt.md} +118 -103
- package/claude/skills/sd-impl/SKILL.md +7 -4
- package/claude/skills/sd-spec/SKILL.md +842 -15
- package/claude/skills/sd-spec/references/example-spec.md +26 -36
- package/package.json +1 -1
- package/claude/references/sd-simplysm14/apis/core-common/json-transfer.md +0 -53
- package/claude/skills/sd-spec/references/spec-authoring.md +0 -519
- package/claude/workflows/sd-docs.js +0 -84
|
@@ -93,14 +93,14 @@ flowchart LR
|
|
|
93
93
|
|
|
94
94
|
## 4. 화면
|
|
95
95
|
|
|
96
|
-
| § | 분류 | 화면
|
|
97
|
-
| --- | -------- |
|
|
98
|
-
| 4.1 | 기준정보 | 품목 관리
|
|
99
|
-
| 4.2 | 기준정보 |
|
|
100
|
-
| 4.3 |
|
|
101
|
-
| 4.4 |
|
|
102
|
-
|
|
103
|
-
|
|
96
|
+
| § | 분류 | 화면 | 유형 | 장치 |
|
|
97
|
+
| --- | -------- | ------------- | -------- | ---- |
|
|
98
|
+
| 4.1 | 기준정보 | 품목 관리 | 마스터 | PC |
|
|
99
|
+
| 4.2 | 기준정보 | Location 관리 | 마스터 | PC |
|
|
100
|
+
| 4.3 | 입고 | 입고 스캔 | 트랜잭션 | PDA |
|
|
101
|
+
| 4.4 | 재고 | 재고 확인 | 조회 | PC |
|
|
102
|
+
|
|
103
|
+
전용 모달(품목 등록·편집·Location 등록·편집)은 각각 호출 화면(품목 관리·Location 관리) 한 곳에서만 쓰이므로 별도 §4.x 로 분리하지 않고 부모 §4.x 안에 포함 (sub-section). 자세한 배치 규칙은 spec-authoring.md "모달 처리" 참조.
|
|
104
104
|
|
|
105
105
|
### 4.1 품목 관리 (PC) [확정: 2026-04-01, 구현: 2026-04-05]
|
|
106
106
|
|
|
@@ -145,8 +145,8 @@ Actor: 창고 관리자
|
|
|
145
145
|
#### 동작
|
|
146
146
|
|
|
147
147
|
- `[조회]` 클릭: 검색 필터 조건으로 목록을 갱신
|
|
148
|
-
- `[등록]` 클릭:
|
|
149
|
-
- ID 버튼 클릭:
|
|
148
|
+
- `[등록]` 클릭: → 품목 등록·편집 을 빈 폼 상태로 모달 띄움
|
|
149
|
+
- ID 버튼 클릭: → 품목 등록·편집 을 해당 행 데이터로 채워 모달 띄움
|
|
150
150
|
- `[선택 삭제]` 클릭: 선택된 행들의 활성 여부를 false 로 전환 (이후 해당 품목 입출고 불가)
|
|
151
151
|
- `[선택 복구]` 클릭: 선택된 행들의 활성 여부를 true 로 전환
|
|
152
152
|
- `[엑셀 업로드]` 클릭: 엑셀 파일 선택 후, 코드를 키로 일괄 등록·수정
|
|
@@ -166,16 +166,11 @@ Actor: 창고 관리자
|
|
|
166
166
|
| `화주코드` + `SEQ` | [모델.품목.코드] | `<화주코드>-<SEQ>` 형식으로 합성 |
|
|
167
167
|
| `품목명` | [모델.품목.명칭] | 1:1 |
|
|
168
168
|
|
|
169
|
-
|
|
169
|
+
#### 품목 등록·편집 (모달)
|
|
170
170
|
|
|
171
|
-
|
|
172
|
-
관련 섹션: [프로세스.입고]
|
|
173
|
-
|
|
174
|
-
기능 개요:
|
|
171
|
+
품목 신규 등록 또는 기존 품목 편집 (호출하는 쪽에서 빈 폼/기존 데이터로 모달 띄움).
|
|
175
172
|
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
#### 와이어프레임
|
|
173
|
+
##### 와이어프레임
|
|
179
174
|
|
|
180
175
|
```
|
|
181
176
|
┌──────────────────────────────────────┐
|
|
@@ -187,7 +182,7 @@ Actor: 창고 관리자
|
|
|
187
182
|
└──────────────────────────────────────┘
|
|
188
183
|
```
|
|
189
184
|
|
|
190
|
-
|
|
185
|
+
##### 항목
|
|
191
186
|
|
|
192
187
|
**입력 폼**
|
|
193
188
|
|
|
@@ -196,12 +191,12 @@ Actor: 창고 관리자
|
|
|
196
191
|
| 코드 | 텍스트 입력 | O | [모델.품목.코드] | |
|
|
197
192
|
| 명칭 | 텍스트 입력 | O | [모델.품목.명칭] | |
|
|
198
193
|
|
|
199
|
-
|
|
194
|
+
##### 동작
|
|
200
195
|
|
|
201
196
|
- `[저장]` 클릭: 활성 품목 내에서 코드·명칭 유일성을 검증한 뒤 저장하고 모달 닫음
|
|
202
197
|
- `[취소]` 클릭: 변경 사항을 폐기하고 모달 닫음
|
|
203
198
|
|
|
204
|
-
### 4.
|
|
199
|
+
### 4.2 Location 관리 (PC) [확정: 2026-04-01]
|
|
205
200
|
|
|
206
201
|
Actor: 창고 관리자
|
|
207
202
|
관련 섹션: [프로세스.입고]
|
|
@@ -243,8 +238,8 @@ Actor: 창고 관리자
|
|
|
243
238
|
#### 동작
|
|
244
239
|
|
|
245
240
|
- `[조회]` 클릭: 검색 필터 조건으로 목록을 갱신
|
|
246
|
-
- `[등록]` 클릭:
|
|
247
|
-
- ID 버튼 클릭:
|
|
241
|
+
- `[등록]` 클릭: → Location 등록·편집 을 빈 폼 상태로 모달 띄움
|
|
242
|
+
- ID 버튼 클릭: → Location 등록·편집 을 해당 행 데이터로 채워 모달 띄움
|
|
248
243
|
- `[선택 삭제]` 클릭: 선택된 행들의 활성 여부를 false 로 전환
|
|
249
244
|
- `[선택 복구]` 클릭: 선택된 행들의 활성 여부를 true 로 전환
|
|
250
245
|
- `[엑셀 업로드]` 클릭: 엑셀 파일 선택 후, 코드를 키로 일괄 등록·수정
|
|
@@ -264,16 +259,11 @@ Actor: 창고 관리자
|
|
|
264
259
|
|
|
265
260
|
- 비활성 행: 전체 텍스트에 취소선 + 회색 처리
|
|
266
261
|
|
|
267
|
-
|
|
262
|
+
#### Location 등록·편집 (모달)
|
|
268
263
|
|
|
269
|
-
|
|
270
|
-
관련 섹션: [프로세스.입고]
|
|
271
|
-
|
|
272
|
-
기능 개요:
|
|
264
|
+
Location 신규 등록 또는 기존 Location 편집 (호출하는 쪽에서 빈 폼/기존 데이터로 모달 띄움).
|
|
273
265
|
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
#### 와이어프레임
|
|
266
|
+
##### 와이어프레임
|
|
277
267
|
|
|
278
268
|
```
|
|
279
269
|
┌──────────────────────────────────────┐
|
|
@@ -285,7 +275,7 @@ Actor: 창고 관리자
|
|
|
285
275
|
└──────────────────────────────────────┘
|
|
286
276
|
```
|
|
287
277
|
|
|
288
|
-
|
|
278
|
+
##### 항목
|
|
289
279
|
|
|
290
280
|
**입력 폼**
|
|
291
281
|
|
|
@@ -293,12 +283,12 @@ Actor: 창고 관리자
|
|
|
293
283
|
| ---- | ----------- | ---- | -------------------- | ----------------------- |
|
|
294
284
|
| 코드 | 텍스트 입력 | O | [모델.Location.코드] | 영문 대문자/숫자/하이픈 |
|
|
295
285
|
|
|
296
|
-
|
|
286
|
+
##### 동작
|
|
297
287
|
|
|
298
288
|
- `[저장]` 클릭: 활성 Location 내에서 코드 유일성을 검증한 뒤 저장하고 모달 닫음
|
|
299
289
|
- `[취소]` 클릭: 변경 사항을 폐기하고 모달 닫음
|
|
300
290
|
|
|
301
|
-
### 4.
|
|
291
|
+
### 4.3 입고 스캔 (PDA) [확정: 2026-04-01]
|
|
302
292
|
|
|
303
293
|
Actor: 창고 작업자
|
|
304
294
|
관련 섹션: [프로세스.입고], [외부 인터페이스.ERP 입고 통보]
|
|
@@ -338,7 +328,7 @@ Actor: 창고 작업자
|
|
|
338
328
|
3. [모델.재고] 레코드 생성
|
|
339
329
|
4. [외부 인터페이스.ERP 입고 통보] 호출
|
|
340
330
|
|
|
341
|
-
### 4.
|
|
331
|
+
### 4.4 재고 확인 (PC) [확정: 2026-04-01]
|
|
342
332
|
|
|
343
333
|
Actor: 창고 관리자
|
|
344
334
|
관련 섹션: [프로세스.입고], [기타.과거 재고 조회], [자동 처리.재고 스냅샷]
|
|
@@ -602,4 +592,4 @@ Actor: 창고 관리자
|
|
|
602
592
|
- 영향: 업무 프로세스 출고(2.2번 섹션) OPEN 상태 유지
|
|
603
593
|
|
|
604
594
|
- 2026-04-05: 품목 마스터 sd-impl 완료 (구현 마커 부착)
|
|
605
|
-
- 근거: 시연 검증 통과 — 화면 품목 관리(4.1번
|
|
595
|
+
- 근거: 시연 검증 통과 — 화면 품목 관리(4.1번 섹션, 품목 등록·편집 모달 영역 포함)
|
package/package.json
CHANGED
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
# @simplysm/core-common — JSON / Worker 직렬화 (json / transfer)
|
|
2
|
-
|
|
3
|
-
커스텀 타입을 보존하며 직렬화/역직렬화할 때 함께 읽히는 묶음. `json`(문자열 ↔ 객체)과 `transfer`(Web Worker 메시지 ↔ 객체). 두 모듈 모두 `Date`/`DateTime`/`DateOnly`/`Time`/`Uuid`/`Set`/`Map`/`Error`/`Uint8Array` 를 `{ __type__, data }` 태그 객체로 변환해 왕복 보존한다. (XML 직렬화 `xml` 네임스페이스는 README 의 "xml" 인라인 섹션 참조.)
|
|
4
|
-
|
|
5
|
-
## json
|
|
6
|
-
|
|
7
|
-
`import { json } from "@simplysm/core-common"`.
|
|
8
|
-
|
|
9
|
-
```typescript
|
|
10
|
-
json.stringify(obj: unknown, options?: {
|
|
11
|
-
space?: string | number;
|
|
12
|
-
replacer?: (key: string | undefined, value: unknown) => unknown;
|
|
13
|
-
redactBytes?: boolean;
|
|
14
|
-
}): string;
|
|
15
|
-
json.parse<TResult = unknown>(json: string): TResult;
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
- `stringify(obj, options)` — 커스텀 타입을 태그 객체로 변환 후 `JSON.stringify`. 전역 프로토타입을 건드리지 않아 Worker 환경에서 안전.
|
|
19
|
-
- `space` — 들여쓰기(숫자=공백 수, 문자열=들여쓰기 문자).
|
|
20
|
-
- `replacer(key, value)` — 기본 타입 변환 **전에** 호출되는 커스텀 변환 훅.
|
|
21
|
-
- `redactBytes: true` — `Uint8Array` 내용을 `"__hidden__"` 으로 대체(로깅용). 이 결과는 `parse` 로 복원 불가(복원 시도 시 `SdError`).
|
|
22
|
-
- 순환 참조가 있으면 `TypeError`. `toJSON` 메서드가 있는 객체는 그 결과를 사용(Date/DateTime 등 커스텀 타입은 사전 변환 처리됨).
|
|
23
|
-
- `parse(json)` — 태그 객체를 원래 타입으로 복원. 복원 후 **모든 JSON null 을 undefined 로 변환**(simplysm null-free 규칙, `obj.nullToUndefined` 사용). 파싱 실패 시 `SdError`로 감싸 throw — `env("DEV")` 가 truthy 면 전체 JSON 문자열을, 아니면 길이만 메시지에 포함.
|
|
24
|
-
|
|
25
|
-
주의: 사용자 데이터에 우연히 `{ __type__: "Date"|..., data: ... }` 형태가 있으면 의도치 않게 타입으로 복원될 수 있음.
|
|
26
|
-
|
|
27
|
-
```typescript
|
|
28
|
-
const s = json.stringify({ at: new DateTime(), id: Uuid.generate() }, { space: 2 });
|
|
29
|
-
const o = json.parse<{ at: DateTime; id: Uuid }>(s); // 타입 복원, null→undefined
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
## transfer
|
|
33
|
-
|
|
34
|
-
`import { transfer } from "@simplysm/core-common"`. `structuredClone` 이 다루지 못하는 커스텀 타입을 Worker 로 보내기 위한 인코딩/디코딩.
|
|
35
|
-
|
|
36
|
-
```typescript
|
|
37
|
-
transfer.encode(obj: unknown): { result: unknown; transferList: ArrayBuffer[] };
|
|
38
|
-
transfer.decode(obj: unknown): unknown;
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
- `encode(obj)` — 커스텀 타입을 태그 객체로 변환한 `result` 와, zero-copy 전송 대상 `transferList`(Uint8Array 의 ArrayBuffer)를 반환. `postMessage(result, transferList)` 에 그대로 전달.
|
|
42
|
-
- `Uint8Array` 는 태그하지 않고 그대로 두되 그 buffer 를 `transferList` 에 추가(`SharedArrayBuffer` 는 제외 — 이미 공유 메모리).
|
|
43
|
-
- `Error` 는 `name`/`message`/`stack` 과 존재 시 `code`/`detail`/`cause` 까지 재귀 인코딩.
|
|
44
|
-
- 순환 참조 시 경로 정보를 담아 `TypeError` throw. 같은 객체가 여러 번 참조되면 캐싱된 인코딩 재사용.
|
|
45
|
-
- `decode(obj)` — Worker 에서 받은 데이터의 태그 객체를 원래 타입으로 복원(`Date`/`DateTime`/`DateOnly`/`Time`/`Uuid`/`RegExp`/`Error`, Array/Map/Set/객체 재귀). `Uint8Array` 는 그대로 통과.
|
|
46
|
-
|
|
47
|
-
```typescript
|
|
48
|
-
// 송신
|
|
49
|
-
const { result, transferList } = transfer.encode(data);
|
|
50
|
-
worker.postMessage(result, transferList);
|
|
51
|
-
// 수신
|
|
52
|
-
const decoded = transfer.decode(event.data);
|
|
53
|
-
```
|