@bolta-io/cli 0.0.16 → 0.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.
Files changed (68) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/CLAUDE.md +3 -1
  3. package/README.md +3 -0
  4. package/dist/bin/bolta.js +18 -30
  5. package/dist/bin/bolta.js.map +1 -1
  6. package/dist/src/client/bolta-client.d.ts +3 -0
  7. package/dist/src/client/bolta-client.d.ts.map +1 -1
  8. package/dist/src/client/bolta-client.js +24 -6
  9. package/dist/src/client/bolta-client.js.map +1 -1
  10. package/dist/src/commands/config/index.d.ts.map +1 -1
  11. package/dist/src/commands/config/index.js +73 -33
  12. package/dist/src/commands/config/index.js.map +1 -1
  13. package/dist/src/commands/examples/index.d.ts.map +1 -1
  14. package/dist/src/commands/examples/index.js +4 -0
  15. package/dist/src/commands/examples/index.js.map +1 -1
  16. package/dist/src/commands/invoice/amend.d.ts.map +1 -1
  17. package/dist/src/commands/invoice/amend.js +9 -18
  18. package/dist/src/commands/invoice/amend.js.map +1 -1
  19. package/dist/src/commands/invoice/index.d.ts.map +1 -1
  20. package/dist/src/commands/invoice/index.js +3 -0
  21. package/dist/src/commands/invoice/index.js.map +1 -1
  22. package/dist/src/commands/invoice/issue-request.d.ts.map +1 -1
  23. package/dist/src/commands/invoice/issue-request.js +3 -8
  24. package/dist/src/commands/invoice/issue-request.js.map +1 -1
  25. package/dist/src/commands/invoice/issue.d.ts.map +1 -1
  26. package/dist/src/commands/invoice/issue.js +3 -8
  27. package/dist/src/commands/invoice/issue.js.map +1 -1
  28. package/dist/src/commands/update/nudge.d.ts +12 -0
  29. package/dist/src/commands/update/nudge.d.ts.map +1 -0
  30. package/dist/src/commands/update/nudge.js +104 -0
  31. package/dist/src/commands/update/nudge.js.map +1 -0
  32. package/dist/src/commands/update/updater.d.ts.map +1 -1
  33. package/dist/src/commands/update/updater.js +15 -28
  34. package/dist/src/commands/update/updater.js.map +1 -1
  35. package/dist/src/config/config-manager.d.ts +13 -0
  36. package/dist/src/config/config-manager.d.ts.map +1 -1
  37. package/dist/src/config/config-manager.js +57 -21
  38. package/dist/src/config/config-manager.js.map +1 -1
  39. package/dist/src/config/update-check-cache.d.ts +12 -0
  40. package/dist/src/config/update-check-cache.d.ts.map +1 -0
  41. package/dist/src/config/update-check-cache.js +45 -0
  42. package/dist/src/config/update-check-cache.js.map +1 -0
  43. package/dist/src/types/api.d.ts +6 -2
  44. package/dist/src/types/api.d.ts.map +1 -1
  45. package/dist/src/types/api.js +4 -1
  46. package/dist/src/types/api.js.map +1 -1
  47. package/dist/src/utils/client.d.ts +17 -0
  48. package/dist/src/utils/client.d.ts.map +1 -0
  49. package/dist/src/utils/client.js +17 -0
  50. package/dist/src/utils/client.js.map +1 -0
  51. package/dist/src/utils/output.d.ts +10 -2
  52. package/dist/src/utils/output.d.ts.map +1 -1
  53. package/dist/src/utils/output.js +17 -3
  54. package/dist/src/utils/output.js.map +1 -1
  55. package/dist/src/utils/platform.d.ts +1 -0
  56. package/dist/src/utils/platform.d.ts.map +1 -1
  57. package/dist/src/utils/platform.js +36 -9
  58. package/dist/src/utils/platform.js.map +1 -1
  59. package/dist/src/utils/version.d.ts +3 -0
  60. package/dist/src/utils/version.d.ts.map +1 -1
  61. package/dist/src/utils/version.js +24 -0
  62. package/dist/src/utils/version.js.map +1 -1
  63. package/dist/src/validators/schemas.d.ts +41 -1
  64. package/dist/src/validators/schemas.d.ts.map +1 -1
  65. package/dist/src/validators/schemas.js +68 -6
  66. package/dist/src/validators/schemas.js.map +1 -1
  67. package/llms.txt +4 -2
  68. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"config-manager.js","sourceRoot":"","sources":["../../../src/config/config-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAa,MAAM,SAAS,CAAC;AAC5E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;AAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AAEpD,MAAM,UAAU,UAAU;IACxB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAgB,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAmB;IAC5C,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACxD,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAgB;IAC5C,OAAO,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,UAAU,EAAE,CAAC,MAAM,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAgB,EAAE,aAAsB;IACzE,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC;IAC5B,IAAI,aAAa,EAAE,CAAC;QAClB,kBAAkB,CAAC,kDAAkD,CAAC,CAAC;QACvE,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAE5B,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;IAC1E,IAAI,MAAM,CAAC,WAAW;QAAE,OAAO,MAAM,CAAC,WAAW,CAAC;IAElD,8BAA8B;IAC9B,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC;QACnC,kBAAkB,CAAC,2DAA2D,CAAC,CAAC;QAChF,OAAO,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;IACxC,CAAC;IACD,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,kBAAkB,CAAC,+FAA+F,CAAC,CAAC;QACpH,OAAO,MAAM,CAAC,WAAW,CAAC;IAC5B,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,UAAU,EAAE,CAAC,OAAO,IAAI,0BAA0B,CAAC;AAC9F,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAW;IACpC,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAClC,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,CAAC"}
1
+ {"version":3,"file":"config-manager.js","sourceRoot":"","sources":["../../../src/config/config-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAa,MAAM,SAAS,CAAC;AAC5E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEpE,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;AACpD,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AAEpD,MAAM,UAAU,UAAU;IACxB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAgB,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAmB;IAC5C,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACxD,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAC/E,CAAC;AAgBD,iDAAiD;AACjD,SAAS,SAAS,CAAC,KAAc;IAC/B,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAgB;IAC5C,OAAO,SAAS,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC;AACtG,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,4BAA4B,CAC1C,OAAgB,EAChB,aAAsB;IAEtB,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAChC,IAAI,IAAI;QAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAEjD,MAAM,UAAU,GAAG,SAAS,CAAC,aAAa,CAAC,CAAC;IAC5C,IAAI,UAAU,EAAE,CAAC;QACf,kBAAkB,CAAC,kDAAkD,CAAC,CAAC;QACvE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;IACtD,CAAC;IAED,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAE5B,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IACzD,IAAI,MAAM;QAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAEpD,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAChD,IAAI,SAAS;QAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAE7D,8BAA8B;IAC9B,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAC5D,IAAI,SAAS,EAAE,CAAC;QACd,kBAAkB,CAAC,2DAA2D,CAAC,CAAC;QAChF,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;IACpD,CAAC;IAED,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACnD,IAAI,YAAY,EAAE,CAAC;QACjB,kBAAkB,CAAC,+FAA+F,CAAC,CAAC;QACpH,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1D,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAgB,EAAE,aAAsB;IACzE,OAAO,4BAA4B,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,KAAK,CAAC;AACpE,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,sBAAsB,CACpC,MAAyB;IAEzB,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,MAAM,CAAC;QACZ,KAAK,aAAa;YAChB,OAAO,MAAM,CAAC;QAChB,KAAK,KAAK,CAAC;QACX,KAAK,YAAY;YACf,OAAO,KAAK,CAAC;QACf,KAAK,QAAQ,CAAC;QACd,KAAK,eAAe;YAClB,OAAO,QAAQ,CAAC;QAClB;YACE,OAAO,MAAM,CAAC;IAClB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,CACL,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;QACzC,SAAS,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC;QAC/B,0BAA0B,CAC3B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAW;IACpC,OAAO,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/B,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { InstallMethod } from '../utils/platform.js';
2
+ export interface UpdateCheckCache {
3
+ /** 마지막 확인 "시도" 시각(ms). 실패해도 기록해 오프라인 재시도 폭주 방지 */
4
+ lastCheckedAt: number;
5
+ /** 확인된 넛지 대상 버전 */
6
+ latestVersion?: string;
7
+ /** 어떤 설치 방식 기준으로 확인했는지 (재설치 감지용) */
8
+ installMethod?: InstallMethod;
9
+ }
10
+ export declare function loadUpdateCheckCache(): UpdateCheckCache | undefined;
11
+ export declare function saveUpdateCheckCache(cache: UpdateCheckCache): boolean;
12
+ //# sourceMappingURL=update-check-cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-check-cache.d.ts","sourceRoot":"","sources":["../../../src/config/update-check-cache.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAO1D,MAAM,WAAW,gBAAgB;IAC/B,kDAAkD;IAClD,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oCAAoC;IACpC,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED,wBAAgB,oBAAoB,IAAI,gBAAgB,GAAG,SAAS,CASnE;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAuBrE"}
@@ -0,0 +1,45 @@
1
+ import { readFileSync, writeFileSync, mkdirSync, renameSync } from 'node:fs';
2
+ import { join } from 'node:path';
3
+ import { CONFIG_DIR } from './config-manager.js';
4
+ // 업데이트 확인 상태 캐시 (~/.bolta/update-check.json)
5
+ // config.json과 분리: 백그라운드 자식 프로세스와 메인 프로세스의 쓰기 경합 방지
6
+ const CACHE_FILE = join(CONFIG_DIR, 'update-check.json');
7
+ export function loadUpdateCheckCache() {
8
+ try {
9
+ const raw = readFileSync(CACHE_FILE, 'utf-8');
10
+ const parsed = JSON.parse(raw);
11
+ if (typeof parsed.lastCheckedAt !== 'number')
12
+ return undefined;
13
+ return parsed;
14
+ }
15
+ catch {
16
+ return undefined;
17
+ }
18
+ }
19
+ export function saveUpdateCheckCache(cache) {
20
+ try {
21
+ mkdirSync(CONFIG_DIR, { recursive: true, mode: 0o700 });
22
+ }
23
+ catch {
24
+ return false;
25
+ }
26
+ const json = JSON.stringify(cache, null, 2);
27
+ const tmpFile = `${CACHE_FILE}.${process.pid}.${Date.now()}.tmp`;
28
+ try {
29
+ // tmp 쓰기 + rename으로 원자적 교체 (동시 실행 시 last-write-wins)
30
+ writeFileSync(tmpFile, json, { mode: 0o600 });
31
+ renameSync(tmpFile, CACHE_FILE);
32
+ return true;
33
+ }
34
+ catch {
35
+ // Windows AV 잠금 등으로 rename 실패 시 직접 쓰기 폴백
36
+ try {
37
+ writeFileSync(CACHE_FILE, json, { mode: 0o600 });
38
+ return true;
39
+ }
40
+ catch {
41
+ return false;
42
+ }
43
+ }
44
+ }
45
+ //# sourceMappingURL=update-check-cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-check-cache.js","sourceRoot":"","sources":["../../../src/config/update-check-cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,6CAA6C;AAC7C,oDAAoD;AACpD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;AAWzD,MAAM,UAAU,oBAAoB;IAClC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAqB,CAAC;QACnD,IAAI,OAAO,MAAM,CAAC,aAAa,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC;QAC/D,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAuB;IAC1D,IAAI,CAAC;QACH,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC1D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,GAAG,UAAU,IAAI,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC;IACjE,IAAI,CAAC;QACH,qDAAqD;QACrD,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC9C,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,yCAAyC;QACzC,IAAI,CAAC;YACH,aAAa,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACjD,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -23,6 +23,8 @@ export interface TaxInvoiceSupplied {
23
23
  taxRegistrationId?: string | null;
24
24
  managers: ManagerInfo[];
25
25
  }
26
+ export declare const TAX_INVOICE_TAX_TYPES: readonly ["TAXABLE", "ZERO_RATE", "TAX_FREE"];
27
+ export type TaxInvoiceTaxType = (typeof TAX_INVOICE_TAX_TYPES)[number];
26
28
  export interface TaxInvoiceItem {
27
29
  date: string;
28
30
  name: string;
@@ -36,6 +38,7 @@ export interface TaxInvoiceItem {
36
38
  export interface CreateTaxInvoiceRequest {
37
39
  date: string;
38
40
  purpose: 'CLAIM' | 'RECEIPT';
41
+ taxType: TaxInvoiceTaxType;
39
42
  supplier: TaxInvoiceSupplier;
40
43
  supplied: TaxInvoiceSupplied;
41
44
  items: TaxInvoiceItem[];
@@ -67,6 +70,7 @@ export interface AmendTerminationRequest {
67
70
  }
68
71
  export interface AmendChangeSupplyCostRequest {
69
72
  date: string;
73
+ taxType: TaxInvoiceTaxType;
70
74
  items: TaxInvoiceItem[];
71
75
  }
72
76
  export interface CreateSupplierRequest {
@@ -129,8 +133,8 @@ export interface BoltaConfig {
129
133
  baseUrl?: string;
130
134
  timeout?: number;
131
135
  maxRetries?: number;
132
- lastUpdateCheck?: number;
133
- latestKnownVersion?: string;
136
+ /** false면 새 버전 넛지 비활성화 (bolta config set update-check false) */
137
+ updateCheck?: boolean;
134
138
  guideShown?: boolean;
135
139
  }
136
140
  export interface GlobalOptions {
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/types/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/types/api.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,8 @@
1
1
  // ========================
2
2
  // Manager / Party Types
3
3
  // ========================
4
- export {};
4
+ // ========================
5
+ // Tax Invoice Types
6
+ // ========================
7
+ export const TAX_INVOICE_TAX_TYPES = ['TAXABLE', 'ZERO_RATE', 'TAX_FREE'];
5
8
  //# sourceMappingURL=api.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/types/api.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,wBAAwB;AACxB,2BAA2B"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/types/api.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,wBAAwB;AACxB,2BAA2B;AA8B3B,2BAA2B;AAC3B,oBAAoB;AACpB,2BAA2B;AAE3B,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,SAAS,EAAE,WAAW,EAAE,UAAU,CAAU,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { BoltaClient } from '../client/bolta-client.js';
2
+ interface GlobalOptions {
3
+ apiKey?: string;
4
+ supplierKey?: string;
5
+ customerKey?: string;
6
+ }
7
+ /**
8
+ * 글로벌 옵션(및 env/config)으로부터 인증을 해석해 BoltaClient를 만든다.
9
+ * 발행/수정 커맨드에서 반복되던 apiKey 확인 + supplierKey 해석 + 클라이언트 생성을 한곳으로 모은다.
10
+ * 커맨드가 요청 시 supplierKey 값을 함께 넘겨야 하므로 client와 함께 반환한다.
11
+ */
12
+ export declare function createClient(globalOpts: GlobalOptions): {
13
+ client: BoltaClient;
14
+ supplierKey?: string;
15
+ };
16
+ export {};
17
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/utils/client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAGxD,UAAU,aAAa;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,aAAa,GAAG;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAWrG"}
@@ -0,0 +1,17 @@
1
+ import { resolveApiKey, resolveSupplierKeyWithSource, resolveBaseUrl } from '../config/config-manager.js';
2
+ import { BoltaClient } from '../client/bolta-client.js';
3
+ import { BoltaAuthError } from './errors.js';
4
+ /**
5
+ * 글로벌 옵션(및 env/config)으로부터 인증을 해석해 BoltaClient를 만든다.
6
+ * 발행/수정 커맨드에서 반복되던 apiKey 확인 + supplierKey 해석 + 클라이언트 생성을 한곳으로 모은다.
7
+ * 커맨드가 요청 시 supplierKey 값을 함께 넘겨야 하므로 client와 함께 반환한다.
8
+ */
9
+ export function createClient(globalOpts) {
10
+ const apiKey = resolveApiKey(globalOpts.apiKey);
11
+ if (!apiKey)
12
+ throw new BoltaAuthError('API 키가 설정되지 않았습니다.');
13
+ const { value: supplierKey, source: supplierKeySource } = resolveSupplierKeyWithSource(globalOpts.supplierKey, globalOpts.customerKey);
14
+ const client = new BoltaClient({ apiKey, baseUrl: resolveBaseUrl(), supplierKey, supplierKeySource });
15
+ return { client, supplierKey };
16
+ }
17
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/utils/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,4BAA4B,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC1G,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAQ7C;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,UAAyB;IACpD,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAChD,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,cAAc,CAAC,oBAAoB,CAAC,CAAC;IAE5D,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,iBAAiB,EAAE,GAAG,4BAA4B,CACpF,UAAU,CAAC,WAAW,EACtB,UAAU,CAAC,WAAW,CACvB,CAAC;IAEF,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC,CAAC;IACtG,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;AACjC,CAAC"}
@@ -1,9 +1,17 @@
1
1
  export declare function outputSuccess<T>(data: T): void;
2
2
  export declare function outputError(error: unknown): never;
3
+ /**
4
+ * 비밀값(apiKey/supplierKey 등)을 로그·에러에 안전하게 노출하기 위해 마스킹한다.
5
+ * 값을 식별할 수 있도록 앞 prefix자와 뒤 suffix자는 남긴다.
6
+ */
7
+ export declare function maskSecret(value: string, prefix?: number, suffix?: number): string;
3
8
  export declare function verbose(message: string, data?: Record<string, unknown>): void;
4
9
  /**
5
- * Deprecation 경고를 stderr로 1회 출력한다.
6
- * JSON 응답(stdout)을 오염시키지 않도록 항상 stderr를 사용한다.
10
+ * 경고를 stderr로 출력한다. JSON 응답(stdout)을 오염시키지 않도록 항상 stderr를 사용한다.
11
+ */
12
+ export declare function warning(message: string): void;
13
+ /**
14
+ * Deprecation 경고를 stderr로 1회만 출력한다.
7
15
  */
8
16
  export declare function deprecationWarning(message: string): void;
9
17
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../../src/utils/output.ts"],"names":[],"mappings":"AAGA,wBAAgB,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,CAG9C;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,CAyBjD;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAK7E;AAID;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAIxD;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,KAAK,EAAE,MAAM,GACZ,MAAM,CAOR"}
1
+ {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../../src/utils/output.ts"],"names":[],"mappings":"AAGA,wBAAgB,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,CAG9C;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,CAyBjD;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,SAAI,EAAE,MAAM,SAAI,GAAG,MAAM,CAGxE;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAK7E;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE7C;AAID;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAIxD;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,KAAK,EAAE,MAAM,GACZ,MAAM,CAOR"}
@@ -28,22 +28,36 @@ export function outputError(error) {
28
28
  console.log(JSON.stringify(response, null, 2));
29
29
  process.exit(1);
30
30
  }
31
+ /**
32
+ * 비밀값(apiKey/supplierKey 등)을 로그·에러에 안전하게 노출하기 위해 마스킹한다.
33
+ * 값을 식별할 수 있도록 앞 prefix자와 뒤 suffix자는 남긴다.
34
+ */
35
+ export function maskSecret(value, prefix = 6, suffix = 4) {
36
+ if (value.length <= prefix + suffix)
37
+ return '***';
38
+ return `${value.slice(0, prefix)}***${value.slice(-suffix)}`;
39
+ }
31
40
  export function verbose(message, data) {
32
41
  if (process.env.BOLTA_VERBOSE === '1') {
33
42
  const line = data ? `[bolta] ${message} ${JSON.stringify(data)}` : `[bolta] ${message}`;
34
43
  console.error(line);
35
44
  }
36
45
  }
46
+ /**
47
+ * 경고를 stderr로 출력한다. JSON 응답(stdout)을 오염시키지 않도록 항상 stderr를 사용한다.
48
+ */
49
+ export function warning(message) {
50
+ console.error(`[bolta] ⚠ ${message}`);
51
+ }
37
52
  const shownDeprecations = new Set();
38
53
  /**
39
- * Deprecation 경고를 stderr로 1 출력한다.
40
- * JSON 응답(stdout)을 오염시키지 않도록 항상 stderr를 사용한다.
54
+ * Deprecation 경고를 stderr로 1회만 출력한다.
41
55
  */
42
56
  export function deprecationWarning(message) {
43
57
  if (shownDeprecations.has(message))
44
58
  return;
45
59
  shownDeprecations.add(message);
46
- console.error(`[bolta] ⚠ deprecated: ${message}`);
60
+ warning(`deprecated: ${message}`);
47
61
  }
48
62
  /**
49
63
  * 구 이름(alias)을 신규 이름으로 매핑한다. 매핑되면 deprecation 경고를 출력한다.
@@ -1 +1 @@
1
- {"version":3,"file":"output.js","sourceRoot":"","sources":["../../../src/utils/output.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,UAAU,aAAa,CAAI,IAAO;IACtC,MAAM,QAAQ,GAAmB,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACzD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAgB;YAC5B,OAAO,EAAE,KAAK;YACd,KAAK,EAAE;gBACL,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,OAAO,EAAE,KAAK,CAAC,OAAO;aACvB;SACF,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,gBAAgB;IAChB,MAAM,QAAQ,GAAgB;QAC5B,OAAO,EAAE,KAAK;QACd,KAAK,EAAE;YACL,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAChE;KACF,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,OAAe,EAAE,IAA8B;IACrE,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,GAAG,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,WAAW,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,OAAO,EAAE,CAAC;QACxF,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;AACH,CAAC;AAED,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;AAE5C;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAChD,IAAI,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC;QAAE,OAAO;IAC3C,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC/B,OAAO,CAAC,KAAK,CAAC,yBAAyB,OAAO,EAAE,CAAC,CAAC;AACpD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CACnC,KAAa,EACb,OAA+B,EAC/B,KAAa;IAEb,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAC9B,IAAI,MAAM,EAAE,CAAC;QACX,kBAAkB,CAAC,GAAG,KAAK,KAAK,KAAK,OAAO,MAAM,aAAa,CAAC,CAAC;QACjE,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../../../src/utils/output.ts"],"names":[],"mappings":"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"}
@@ -7,5 +7,6 @@ export interface PlatformInfo {
7
7
  }
8
8
  export type InstallMethod = 'sea' | 'homebrew' | 'npm' | 'unknown';
9
9
  export declare function detectPlatform(): PlatformInfo;
10
+ export declare function getUpdateCommand(installMethod: InstallMethod): string;
10
11
  export declare function detectInstallMethod(): InstallMethod;
11
12
  //# sourceMappingURL=platform.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../../../src/utils/platform.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,UAAU,GAAG,KAAK,GAAG,SAAS,CAAC;AAanE,wBAAgB,cAAc,IAAI,YAAY,CAc7C;AAED,wBAAgB,mBAAmB,IAAI,aAAa,CAoCnD"}
1
+ {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../../../src/utils/platform.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,UAAU,GAAG,KAAK,GAAG,SAAS,CAAC;AAanE,wBAAgB,cAAc,IAAI,YAAY,CAc7C;AAGD,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,aAAa,GAAG,MAAM,CAWrE;AAED,wBAAgB,mBAAmB,IAAI,aAAa,CA6BnD"}
@@ -1,3 +1,4 @@
1
+ import { realpathSync } from 'node:fs';
1
2
  import { basename } from 'node:path';
2
3
  const PLATFORM_MAP = {
3
4
  darwin: 'darwin',
@@ -20,21 +21,29 @@ export function detectPlatform() {
20
21
  const archiveName = isWindows ? `bolta-${target}.zip` : `bolta-${target}.tar.gz`;
21
22
  return { platform, arch, target, archiveName, binaryName };
22
23
  }
24
+ // 설치 방식별 업데이트 명령. InstallMethod에서 순수 파생되므로 분류 로직 옆에 둔다.
25
+ export function getUpdateCommand(installMethod) {
26
+ switch (installMethod) {
27
+ case 'homebrew':
28
+ return 'brew upgrade bolta';
29
+ case 'npm':
30
+ return 'npm update -g @bolta-io/cli';
31
+ case 'sea':
32
+ return 'bolta update';
33
+ default:
34
+ return 'npm update -g @bolta-io/cli 또는 brew upgrade bolta';
35
+ }
36
+ }
23
37
  export function detectInstallMethod() {
24
38
  const execPath = process.execPath.toLowerCase();
25
39
  // Homebrew
26
40
  if (execPath.includes('/cellar/') || execPath.includes('/homebrew/')) {
27
41
  return 'homebrew';
28
42
  }
29
- // npm/스크립트 런타임: process.argv[1]이 JS/TS 확장자로 끝나거나 node_modules 포함
30
- const scriptPath = (process.argv[1] || '').toLowerCase();
31
- if (scriptPath.endsWith('.js') ||
32
- scriptPath.endsWith('.mjs') ||
33
- scriptPath.endsWith('.cjs') ||
34
- scriptPath.endsWith('.ts') ||
35
- scriptPath.endsWith('.mts') ||
36
- scriptPath.endsWith('.cts') ||
37
- scriptPath.includes('node_modules')) {
43
+ // npm/스크립트 런타임: 원본 경로로 판정이 때만 npm 전역 bin symlink를 풀어
44
+ // node_modules를 확인한다 (realpathSync는 명령 실행 경로라 지연 호출).
45
+ const scriptPath = process.argv[1] || '';
46
+ if (scriptPath && (isNpmScriptPath(scriptPath) || isNpmScriptPath(resolveRealPath(scriptPath)))) {
38
47
  return 'npm';
39
48
  }
40
49
  const bin = basename(execPath).toLowerCase();
@@ -49,4 +58,22 @@ export function detectInstallMethod() {
49
58
  }
50
59
  return 'unknown';
51
60
  }
61
+ function resolveRealPath(scriptPath) {
62
+ try {
63
+ return realpathSync(scriptPath);
64
+ }
65
+ catch {
66
+ return scriptPath;
67
+ }
68
+ }
69
+ function isNpmScriptPath(scriptPath) {
70
+ const normalized = scriptPath.toLowerCase();
71
+ return (normalized.endsWith('.js') ||
72
+ normalized.endsWith('.mjs') ||
73
+ normalized.endsWith('.cjs') ||
74
+ normalized.endsWith('.ts') ||
75
+ normalized.endsWith('.mts') ||
76
+ normalized.endsWith('.cts') ||
77
+ normalized.includes('node_modules'));
78
+ }
52
79
  //# sourceMappingURL=platform.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"platform.js","sourceRoot":"","sources":["../../../src/utils/platform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAYrC,MAAM,YAAY,GAA2B;IAC3C,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,SAAS;CACjB,CAAC;AAEF,MAAM,QAAQ,GAA2B;IACvC,KAAK,EAAE,OAAO;IACd,GAAG,EAAE,KAAK;CACX,CAAC;AAEF,MAAM,UAAU,cAAc;IAC5B,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,mBAAmB,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,MAAM,MAAM,GAAG,GAAG,QAAQ,IAAI,IAAI,EAAE,CAAC;IACrC,MAAM,SAAS,GAAG,QAAQ,KAAK,SAAS,CAAC;IACzC,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,MAAM,MAAM,CAAC,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC;IACzE,MAAM,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,MAAM,MAAM,CAAC,CAAC,CAAC,SAAS,MAAM,SAAS,CAAC;IAEjF,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;IAEhD,WAAW;IACX,IAAI,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QACrE,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,iEAAiE;IACjE,MAAM,UAAU,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IACzD,IACE,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC;QAC1B,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC3B,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC3B,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC;QAC1B,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC3B,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC3B,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC,EACnC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;IAE7C,8BAA8B;IAC9B,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IAChE,IAAI,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC;QACrF,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,+BAA+B;IAC/B,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../../../src/utils/platform.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { z } from 'zod';
2
+ import type { InstallMethod } from './platform.js';
2
3
  declare const latestVersionInfoSchema: z.ZodObject<{
3
4
  version: z.ZodString;
4
5
  releasedAt: z.ZodString;
@@ -18,6 +19,8 @@ declare const latestVersionInfoSchema: z.ZodObject<{
18
19
  export type LatestVersionInfo = z.infer<typeof latestVersionInfoSchema>;
19
20
  export declare function getCurrentVersion(): string;
20
21
  export declare function fetchLatestVersion(): Promise<LatestVersionInfo>;
22
+ export declare function fetchHomebrewVersion(): Promise<string>;
23
+ export declare function fetchNudgeVersion(installMethod: InstallMethod): Promise<string>;
21
24
  export declare function isUpdateAvailable(current: string, latest: string): boolean;
22
25
  export {};
23
26
  //# sourceMappingURL=version.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../../src/utils/version.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAkBxB,QAAA,MAAM,uBAAuB;;;;;;;;;;;;;;;EAK3B,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAWxE,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAgCrE;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAE1E"}
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../../src/utils/version.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAkBnD,QAAA,MAAM,uBAAuB;;;;;;;;;;;;;;;EAK3B,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAaxE,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAgCrE;AAQD,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC,CAU5D;AAID,wBAAsB,iBAAiB,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAKrF;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAE1E"}
@@ -29,6 +29,8 @@ const githubReleaseSchema = z.object({
29
29
  });
30
30
  const LATEST_JSON_URL = 'https://cli.boltacorp.com/releases/latest.json';
31
31
  const GITHUB_RELEASES_URL = 'https://api.github.com/repos/bolta-io/bolta-cli/releases/latest';
32
+ // Formula/bolta.rb가 develop에 머지될 때 CI가 게시 (.github/workflows/publish-homebrew-version.yml)
33
+ const HOMEBREW_JSON_URL = 'https://cli.boltacorp.com/releases/homebrew.json';
32
34
  export function getCurrentVersion() {
33
35
  return process.env.BOLTA_CLI_VERSION || fallbackVersion;
34
36
  }
@@ -62,6 +64,28 @@ export async function fetchLatestVersion() {
62
64
  changelog: data.html_url,
63
65
  };
64
66
  }
67
+ const homebrewVersionSchema = z.object({
68
+ version: z.string(),
69
+ });
70
+ // Homebrew formula 기준 최신 버전. formula PR이 릴리스보다 늦게 머지되므로
71
+ // brew 사용자에게는 latest.json 대신 이 값을 기준으로 안내해야 조기 넛지가 없다.
72
+ export async function fetchHomebrewVersion() {
73
+ const res = await fetch(HOMEBREW_JSON_URL, {
74
+ signal: AbortSignal.timeout(5000),
75
+ });
76
+ if (!res.ok) {
77
+ throw new Error(`Homebrew 버전 정보를 가져올 수 없습니다 (HTTP ${res.status})`);
78
+ }
79
+ return homebrewVersionSchema.parse(await res.json()).version;
80
+ }
81
+ // 설치 방식에 맞는 "지금 업데이트 가능한" 버전.
82
+ // homebrew는 formula 버전으로 fail-closed (실패 시 latest.json 폴백 금지 — 조기 넛지 재발 방지)
83
+ export async function fetchNudgeVersion(installMethod) {
84
+ if (installMethod === 'homebrew') {
85
+ return fetchHomebrewVersion();
86
+ }
87
+ return (await fetchLatestVersion()).version;
88
+ }
65
89
  export function isUpdateAvailable(current, latest) {
66
90
  return compareSemver(current, latest) < 0;
67
91
  }
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../../src/utils/version.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../../src/utils/version.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@ export declare const managerSchema: z.ZodObject<{
12
12
  name?: string | null | undefined;
13
13
  telephone?: string | null | undefined;
14
14
  }>;
15
+ export declare const taxInvoiceTaxTypeSchema: z.ZodEnum<["TAXABLE", "ZERO_RATE", "TAX_FREE"]>;
15
16
  export declare const taxInvoiceSupplierSchema: z.ZodObject<{
16
17
  identificationNumber: z.ZodPipeline<z.ZodEffects<z.ZodString, string, string>, z.ZodString>;
17
18
  organizationName: z.ZodString;
@@ -139,6 +140,7 @@ export declare const taxInvoiceItemSchema: z.ZodObject<{
139
140
  export declare const createTaxInvoiceSchema: z.ZodEffects<z.ZodObject<{
140
141
  date: z.ZodString;
141
142
  purpose: z.ZodEnum<["CLAIM", "RECEIPT"]>;
143
+ taxType: z.ZodEnum<["TAXABLE", "ZERO_RATE", "TAX_FREE"]>;
142
144
  supplier: z.ZodObject<{
143
145
  identificationNumber: z.ZodPipeline<z.ZodEffects<z.ZodString, string, string>, z.ZodString>;
144
146
  organizationName: z.ZodString;
@@ -267,6 +269,7 @@ export declare const createTaxInvoiceSchema: z.ZodEffects<z.ZodObject<{
267
269
  }, "strip", z.ZodTypeAny, {
268
270
  date: string;
269
271
  purpose: "CLAIM" | "RECEIPT";
272
+ taxType: "TAXABLE" | "ZERO_RATE" | "TAX_FREE";
270
273
  supplier: {
271
274
  identificationNumber: string;
272
275
  organizationName: string;
@@ -309,6 +312,7 @@ export declare const createTaxInvoiceSchema: z.ZodEffects<z.ZodObject<{
309
312
  }, {
310
313
  date: string;
311
314
  purpose: "CLAIM" | "RECEIPT";
315
+ taxType: "TAXABLE" | "ZERO_RATE" | "TAX_FREE";
312
316
  supplier: {
313
317
  identificationNumber: string;
314
318
  organizationName: string;
@@ -351,6 +355,7 @@ export declare const createTaxInvoiceSchema: z.ZodEffects<z.ZodObject<{
351
355
  }>, {
352
356
  date: string;
353
357
  purpose: "CLAIM" | "RECEIPT";
358
+ taxType: "TAXABLE" | "ZERO_RATE" | "TAX_FREE";
354
359
  supplier: {
355
360
  identificationNumber: string;
356
361
  organizationName: string;
@@ -393,6 +398,7 @@ export declare const createTaxInvoiceSchema: z.ZodEffects<z.ZodObject<{
393
398
  }, {
394
399
  date: string;
395
400
  purpose: "CLAIM" | "RECEIPT";
401
+ taxType: "TAXABLE" | "ZERO_RATE" | "TAX_FREE";
396
402
  supplier: {
397
403
  identificationNumber: string;
398
404
  organizationName: string;
@@ -436,6 +442,7 @@ export declare const createTaxInvoiceSchema: z.ZodEffects<z.ZodObject<{
436
442
  export declare const createTaxInvoiceIssueRequestSchema: z.ZodEffects<z.ZodObject<{
437
443
  date: z.ZodString;
438
444
  purpose: z.ZodEnum<["CLAIM", "RECEIPT"]>;
445
+ taxType: z.ZodEnum<["TAXABLE", "ZERO_RATE", "TAX_FREE"]>;
439
446
  supplier: z.ZodObject<{
440
447
  identificationNumber: z.ZodPipeline<z.ZodEffects<z.ZodString, string, string>, z.ZodString>;
441
448
  organizationName: z.ZodString;
@@ -564,6 +571,7 @@ export declare const createTaxInvoiceIssueRequestSchema: z.ZodEffects<z.ZodObjec
564
571
  }, "strip", z.ZodTypeAny, {
565
572
  date: string;
566
573
  purpose: "CLAIM" | "RECEIPT";
574
+ taxType: "TAXABLE" | "ZERO_RATE" | "TAX_FREE";
567
575
  supplier: {
568
576
  identificationNumber: string;
569
577
  organizationName: string;
@@ -606,6 +614,7 @@ export declare const createTaxInvoiceIssueRequestSchema: z.ZodEffects<z.ZodObjec
606
614
  }, {
607
615
  date: string;
608
616
  purpose: "CLAIM" | "RECEIPT";
617
+ taxType: "TAXABLE" | "ZERO_RATE" | "TAX_FREE";
609
618
  supplier: {
610
619
  identificationNumber: string;
611
620
  organizationName: string;
@@ -648,6 +657,7 @@ export declare const createTaxInvoiceIssueRequestSchema: z.ZodEffects<z.ZodObjec
648
657
  }>, {
649
658
  date: string;
650
659
  purpose: "CLAIM" | "RECEIPT";
660
+ taxType: "TAXABLE" | "ZERO_RATE" | "TAX_FREE";
651
661
  supplier: {
652
662
  identificationNumber: string;
653
663
  organizationName: string;
@@ -690,6 +700,7 @@ export declare const createTaxInvoiceIssueRequestSchema: z.ZodEffects<z.ZodObjec
690
700
  }, {
691
701
  date: string;
692
702
  purpose: "CLAIM" | "RECEIPT";
703
+ taxType: "TAXABLE" | "ZERO_RATE" | "TAX_FREE";
693
704
  supplier: {
694
705
  identificationNumber: string;
695
706
  organizationName: string;
@@ -753,8 +764,9 @@ export declare const amendTerminationSchema: z.ZodObject<{
753
764
  }, {
754
765
  date: string;
755
766
  }>;
756
- export declare const amendChangeSupplyCostSchema: z.ZodObject<{
767
+ export declare const amendChangeSupplyCostSchema: z.ZodEffects<z.ZodObject<{
757
768
  date: z.ZodString;
769
+ taxType: z.ZodEnum<["TAXABLE", "ZERO_RATE", "TAX_FREE"]>;
758
770
  items: z.ZodArray<z.ZodObject<{
759
771
  date: z.ZodString;
760
772
  name: z.ZodString;
@@ -786,6 +798,7 @@ export declare const amendChangeSupplyCostSchema: z.ZodObject<{
786
798
  }>, "many">;
787
799
  }, "strip", z.ZodTypeAny, {
788
800
  date: string;
801
+ taxType: "TAXABLE" | "ZERO_RATE" | "TAX_FREE";
789
802
  items: {
790
803
  date: string;
791
804
  name: string;
@@ -798,6 +811,33 @@ export declare const amendChangeSupplyCostSchema: z.ZodObject<{
798
811
  }[];
799
812
  }, {
800
813
  date: string;
814
+ taxType: "TAXABLE" | "ZERO_RATE" | "TAX_FREE";
815
+ items: {
816
+ date: string;
817
+ name: string;
818
+ supplyCost: number;
819
+ unitPrice?: number | null | undefined;
820
+ quantity?: number | null | undefined;
821
+ tax?: number | null | undefined;
822
+ specification?: string | null | undefined;
823
+ description?: string | null | undefined;
824
+ }[];
825
+ }>, {
826
+ date: string;
827
+ taxType: "TAXABLE" | "ZERO_RATE" | "TAX_FREE";
828
+ items: {
829
+ date: string;
830
+ name: string;
831
+ supplyCost: number;
832
+ unitPrice?: number | null | undefined;
833
+ quantity?: number | null | undefined;
834
+ tax?: number | null | undefined;
835
+ specification?: string | null | undefined;
836
+ description?: string | null | undefined;
837
+ }[];
838
+ }, {
839
+ date: string;
840
+ taxType: "TAXABLE" | "ZERO_RATE" | "TAX_FREE";
801
841
  items: {
802
842
  date: string;
803
843
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../src/validators/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAexB,eAAO,MAAM,aAAa;;;;;;;;;;;;EAOxB,CAAC;AAkGH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASnC,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASnC,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;EAY/B,CAAC;AAgBH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsBjC,CAAC;AAEH,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAa7C,CAAC;AAMH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;EAK/B,CAAC;AAMH,eAAO,MAAM,sBAAsB;;;;;;EAEjC,CAAC;AAOH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMtC,CAAC;AAMH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA8I9C,CAAC"}
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../src/validators/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAmBxB,eAAO,MAAM,aAAa;;;;;;;;;;;;EAOxB,CAAC;AA8FH,eAAO,MAAM,uBAAuB,iDAMlC,CAAC;AAMH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASnC,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASnC,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;EAY/B,CAAC;AAiDH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwBjC,CAAC;AAEH,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAe7C,CAAC;AAMH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;EAK/B,CAAC;AAMH,eAAO,MAAM,sBAAsB;;;;;;EAEjC,CAAC;AAOH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAWpC,CAAC;AAML,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAiK9C,CAAC"}