@simplysm/excel 13.0.15 → 13.0.18

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/README.md CHANGED
@@ -12,15 +12,7 @@ yarn add @simplysm/excel
12
12
  pnpm add @simplysm/excel
13
13
  ```
14
14
 
15
- ### Dependencies
16
-
17
- | Package | Purpose |
18
- |--------|------|
19
- | `@simplysm/core-common` | Date/time types (`DateOnly`, `DateTime`, `Time`), utilities |
20
- | `zod` | Schema-based data validation for `ExcelWrapper` |
21
- | `mime` | MIME type determination for image insertion |
22
-
23
- ## Core Modules
15
+ ## Main Modules
24
16
 
25
17
  ### Core Classes
26
18
 
@@ -443,7 +435,7 @@ Behavior of the `read()` method:
443
435
  | `getBlob()` | `Promise<Blob>` | Export as Blob |
444
436
  | `close()` | `Promise<void>` | Release resources |
445
437
 
446
- ## Important Notes
438
+ ## Caveats
447
439
 
448
440
  ### All Cell Methods are Asynchronous
449
441
 
@@ -6,18 +6,18 @@ import { ExcelWorkbook } from "./excel-workbook";
6
6
  *
7
7
  * 스키마에서 타입 정보를 추론하여 타입 안전한 읽기/쓰기 제공
8
8
  */
9
- export declare class ExcelWrapper<T extends z.ZodObject<z.ZodRawShape>> {
9
+ export declare class ExcelWrapper<TSchema extends z.ZodObject<z.ZodRawShape>> {
10
10
  private readonly _schema;
11
11
  private readonly _displayNameMap;
12
12
  /**
13
13
  * @param _schema Zod 스키마 (레코드 구조 정의)
14
14
  * @param _displayNameMap 필드명-표시명 매핑 (Excel 헤더로 사용)
15
15
  */
16
- constructor(_schema: T, _displayNameMap: Record<keyof z.infer<T>, string>);
16
+ constructor(_schema: TSchema, _displayNameMap: Record<keyof z.infer<TSchema>, string>);
17
17
  /**
18
18
  * Excel 파일 읽기 → 레코드 배열
19
19
  */
20
- read(file: Bytes | Blob, wsNameOrIndex?: string | number): Promise<z.infer<T>[]>;
20
+ read(file: Bytes | Blob, wsNameOrIndex?: string | number): Promise<z.infer<TSchema>[]>;
21
21
  /**
22
22
  * 레코드 배열 → Excel 워크북
23
23
  *
@@ -31,7 +31,7 @@ export declare class ExcelWrapper<T extends z.ZodObject<z.ZodRawShape>> {
31
31
  * const bytes = await wb.getBytes();
32
32
  * ```
33
33
  */
34
- write(wsName: string, records: Partial<z.infer<T>>[]): Promise<ExcelWorkbook>;
34
+ write(wsName: string, records: Partial<z.infer<TSchema>>[]): Promise<ExcelWorkbook>;
35
35
  private _getReverseDisplayNameMap;
36
36
  private _convertValue;
37
37
  private _unwrapSchema;
@@ -1 +1 @@
1
- {"version":3,"file":"excel-wrapper.d.ts","sourceRoot":"","sources":["../src/excel-wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,EAAE,KAAK,CAAC,EAA0E,MAAM,KAAK,CAAC;AACrG,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD;;;;GAIG;AACH,qBAAa,YAAY,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC;IAM1D,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,eAAe;IANlC;;;OAGG;gBAEgB,OAAO,EAAE,CAAC,EACV,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;IAGpE;;OAEG;IACG,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,aAAa,GAAE,MAAM,GAAG,MAAU,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAmDzF;;;;;;;;;;;;OAYG;IACG,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC;IAoDnF,OAAO,CAAC,yBAAyB;IAQjC,OAAO,CAAC,aAAa;IA+BrB,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,oBAAoB;IAmB5B,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,UAAU;CAMnB"}
1
+ {"version":3,"file":"excel-wrapper.d.ts","sourceRoot":"","sources":["../src/excel-wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,EAAE,KAAK,CAAC,EAA0E,MAAM,KAAK,CAAC;AACrG,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD;;;;GAIG;AACH,qBAAa,YAAY,CAAC,OAAO,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC;IAMhE,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,eAAe;IANlC;;;OAGG;gBAEgB,OAAO,EAAE,OAAO,EAChB,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAG1E;;OAEG;IACG,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,aAAa,GAAE,MAAM,GAAG,MAAU,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;IAmD/F;;;;;;;;;;;;OAYG;IACG,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC;IAoDzF,OAAO,CAAC,yBAAyB;IAQjC,OAAO,CAAC,aAAa;IA+BrB,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,oBAAoB;IAmB5B,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,UAAU;CAMnB"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/excel-wrapper.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
package/package.json CHANGED
@@ -1,15 +1,14 @@
1
1
  {
2
2
  "name": "@simplysm/excel",
3
- "sideEffects": false,
4
- "version": "13.0.15",
3
+ "version": "13.0.18",
5
4
  "description": "Excel 파일 처리 라이브러리",
6
5
  "author": "김석래",
6
+ "license": "Apache-2.0",
7
7
  "repository": {
8
8
  "type": "git",
9
9
  "url": "https://github.com/kslhunter/simplysm.git",
10
10
  "directory": "packages/excel"
11
11
  },
12
- "license": "Apache-2.0",
13
12
  "type": "module",
14
13
  "main": "./dist/index.js",
15
14
  "types": "./dist/index.d.ts",
@@ -17,9 +16,10 @@
17
16
  "dist",
18
17
  "src"
19
18
  ],
19
+ "sideEffects": false,
20
20
  "dependencies": {
21
21
  "mime": "^4.1.0",
22
22
  "zod": "^4.3.6",
23
- "@simplysm/core-common": "13.0.15"
23
+ "@simplysm/core-common": "13.0.18"
24
24
  }
25
25
  }
@@ -9,20 +9,20 @@ import type { ExcelValueType } from "./types";
9
9
  *
10
10
  * 스키마에서 타입 정보를 추론하여 타입 안전한 읽기/쓰기 제공
11
11
  */
12
- export class ExcelWrapper<T extends z.ZodObject<z.ZodRawShape>> {
12
+ export class ExcelWrapper<TSchema extends z.ZodObject<z.ZodRawShape>> {
13
13
  /**
14
14
  * @param _schema Zod 스키마 (레코드 구조 정의)
15
15
  * @param _displayNameMap 필드명-표시명 매핑 (Excel 헤더로 사용)
16
16
  */
17
17
  constructor(
18
- private readonly _schema: T,
19
- private readonly _displayNameMap: Record<keyof z.infer<T>, string>,
18
+ private readonly _schema: TSchema,
19
+ private readonly _displayNameMap: Record<keyof z.infer<TSchema>, string>,
20
20
  ) {}
21
21
 
22
22
  /**
23
23
  * Excel 파일 읽기 → 레코드 배열
24
24
  */
25
- async read(file: Bytes | Blob, wsNameOrIndex: string | number = 0): Promise<z.infer<T>[]> {
25
+ async read(file: Bytes | Blob, wsNameOrIndex: string | number = 0): Promise<z.infer<TSchema>[]> {
26
26
  await using wb = new ExcelWorkbook(file);
27
27
 
28
28
  const ws = await wb.getWorksheet(wsNameOrIndex);
@@ -39,7 +39,7 @@ export class ExcelWrapper<T extends z.ZodObject<z.ZodRawShape>> {
39
39
 
40
40
  const reverseMap = this._getReverseDisplayNameMap();
41
41
  const shape = this._schema.shape;
42
- const result: z.infer<T>[] = [];
42
+ const result: z.infer<TSchema>[] = [];
43
43
 
44
44
  for (const row of rawData) {
45
45
  const record: Record<string, unknown> = {};
@@ -86,11 +86,11 @@ export class ExcelWrapper<T extends z.ZodObject<z.ZodRawShape>> {
86
86
  * const bytes = await wb.getBytes();
87
87
  * ```
88
88
  */
89
- async write(wsName: string, records: Partial<z.infer<T>>[]): Promise<ExcelWorkbook> {
89
+ async write(wsName: string, records: Partial<z.infer<TSchema>>[]): Promise<ExcelWorkbook> {
90
90
  const wb = new ExcelWorkbook();
91
91
  const ws = await wb.createWorksheet(wsName);
92
92
 
93
- const keys = Object.keys(this._displayNameMap) as (keyof z.infer<T>)[];
93
+ const keys = Object.keys(this._displayNameMap) as (keyof z.infer<TSchema>)[];
94
94
  const headers = keys.map((key) => this._displayNameMap[key]);
95
95
 
96
96
  // 헤더 행 작성