@simplysm/sd-cli 14.2.7 → 14.2.9

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 (31) hide show
  1. package/dist/commands/device.d.ts.map +1 -1
  2. package/dist/commands/device.js +6 -3
  3. package/dist/commands/device.js.map +1 -1
  4. package/dist/commands/init/normalize.d.ts.map +1 -1
  5. package/dist/commands/init/normalize.js +1 -0
  6. package/dist/commands/init/normalize.js.map +1 -1
  7. package/dist/commands/init/types.d.ts +1 -0
  8. package/dist/commands/init/types.d.ts.map +1 -1
  9. package/dist/sd-config.types.d.ts +2 -1
  10. package/dist/sd-config.types.d.ts.map +1 -1
  11. package/package.json +9 -9
  12. package/src/commands/device.ts +7 -3
  13. package/src/commands/init/normalize.ts +1 -0
  14. package/src/commands/init/templates/client/package.json.hbs +10 -8
  15. package/src/commands/init/templates/client/src/app/home/master/role-permission/role-permission.view.ts.hbs +2 -2
  16. package/src/commands/init/templates/client/src/app/home/master/role-permission/role.detail.ts.hbs +7 -5
  17. package/src/commands/init/templates/client/src/app/home/my-info/my-info.detail.ts.hbs +2 -2
  18. package/src/commands/init/templates/client/src/app/home/system/system-log/system-log.list.ts.hbs +1 -1
  19. package/src/commands/init/templates/client/src/app/login/login.view.ts.hbs +1 -1
  20. package/src/commands/init/templates/client/src/modals/text-view.modal.ts.hbs +1 -1
  21. package/src/commands/init/templates/client/tsconfig.json +1 -0
  22. package/src/commands/init/templates/client-common/package.json.hbs +5 -5
  23. package/src/commands/init/templates/client-common/tsconfig.json +1 -0
  24. package/src/commands/init/templates/common/package.json.hbs +4 -4
  25. package/src/commands/init/templates/common/src/db/system-data-log.ext.ts.hbs +4 -4
  26. package/src/commands/init/templates/server/package.json.hbs +7 -7
  27. package/src/commands/init/templates/workspace-root/package.json.hbs +3 -2
  28. package/src/commands/init/templates/workspace-root/pnpm-workspace.yaml +13 -0
  29. package/src/commands/init/types.ts +1 -0
  30. package/src/sd-config.types.ts +2 -1
  31. package/tests/init/render.spec.ts +21 -0
@@ -1 +1 @@
1
- {"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../src/commands/device.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;;;GAKG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAgGrE"}
1
+ {"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../src/commands/device.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;;;GAKG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAoGrE"}
@@ -50,9 +50,12 @@ export async function runDevice(options) {
50
50
  serverUrl = `http://localhost:${clientConfig.server}/${targetName}/`;
51
51
  }
52
52
  else {
53
- // server가 패키지명(string) 경우: 서버 패키지의 .dev-port 파일에서 포트 자동 탐지
54
- const serverPkgDir = pathx.posixResolve(cwd, "packages", clientConfig.server);
55
- const portFile = path.join(serverPkgDir, "dist", ".dev-port");
53
+ // server 가 패키지명(string)이면 서버가 클라이언트를 서빙하고,
54
+ // 미지정이면 클라이언트 자신의 dev server 가 서빙한다. 양쪽 다 .dev-port 포트를 탐지
55
+ const servingPkgDir = clientConfig.server != null
56
+ ? pathx.posixResolve(cwd, "packages", clientConfig.server)
57
+ : pkgDir;
58
+ const portFile = path.join(servingPkgDir, "dist", ".dev-port");
56
59
  let portStr;
57
60
  try {
58
61
  portStr = fsx.readSync(portFile).trim();
@@ -1 +1 @@
1
- {"version":3,"file":"device.js","sourceRoot":"","sources":["../../src/commands/device.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"device.js","sourceRoot":"","sources":["../../src/commands/device.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../../src/commands/init/normalize.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAc,SAAS,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AA0CtE,wBAAgB,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,eAAe,CAkE3D"}
1
+ {"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../../src/commands/init/normalize.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAc,SAAS,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AA0CtE,wBAAgB,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,eAAe,CAmE3D"}
@@ -45,6 +45,7 @@ export function normalize(input) {
45
45
  isMobile,
46
46
  appStructureName: `${str.toCamelCase(baseName)}AppStructureItems`,
47
47
  needsNgIcons: (hasRouter && hasAuth) || hasDb,
48
+ needsExcel: hasRouter && hasAuth,
48
49
  useSsg,
49
50
  robotsDirective: useSsg ? "Allow: /" : "Disallow: /",
50
51
  };
@@ -1 +1 @@
1
- {"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../../src/commands/init/normalize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAG5C,MAAM,QAAQ,GAAwD;IACpE,KAAK,EAAE,IAAI;IACX,UAAU,EAAE,IAAI;IAChB,KAAK,EAAE,IAAI;CACZ,CAAC;AAEF,MAAM,cAAc,GAGhB;IACF,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE;IAC7C,UAAU,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE;IAC1D,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE;CAC5C,CAAC;AAEF,SAAS,eAAe,CAAC,IAAY;IACnC,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAY;IACxC,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IACzC,OAAO,GAAG,MAAM,WAAW,CAAC;AAC9B,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAY;IACxC,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;AAC7C,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY;IACpC,OAAO,eAAe,CAAC,IAAI,CAAC;SACzB,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC;SACtC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;SACvB,WAAW,EAAE,CAAC;AACnB,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAY;IACvC,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAgB;IACxC,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,KAAK,CAAC;IAC7C,MAAM,OAAO,GAAG,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC;IAElD,MAAM,OAAO,GAAiB,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACpD,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC;QACxE,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;QACrC,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAClF,MAAM,MAAM,GAAG,SAAS,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC;QAC7D,OAAO;YACL,IAAI;YACJ,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,SAAS;YACT,QAAQ;YACR,gBAAgB,EAAE,GAAG,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,mBAAmB;YACjE,YAAY,EAAE,CAAC,SAAS,IAAI,OAAO,CAAC,IAAI,KAAK;YAC7C,MAAM;YACN,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa;SACrD,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACzD,MAAM,iBAAiB,GACrB,aAAa,CAAC,MAAM,GAAG,CAAC;QACtB,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC;QAC9C,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;IAE5B,MAAM,eAAe,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACxE,MAAM,eAAe,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACxE,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;IAClC,MAAM,eAAe,GAAG,KAAK,CAAC,SAAS,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;IAC/D,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAElD,OAAO;QACL,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,kBAAkB,EAAE,KAAK,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;QACxE,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,KAAK;QACL,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;QAC9C,MAAM,EAAE,KAAK,IAAI,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,UAAU,EAAE,KAAK,IAAI,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;QAC5F,UAAU,EAAE,KAAK,IAAI,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;QAC5F,OAAO,EAAE,KAAK,IAAI,KAAK,CAAC,SAAS,KAAK,OAAO;QAC7C,UAAU,EAAE,KAAK,IAAI,KAAK,CAAC,SAAS,KAAK,YAAY;QACrD,OAAO,EAAE,KAAK,IAAI,KAAK,CAAC,SAAS,KAAK,OAAO;QAC7C,kBAAkB,EAAE,KAAK,CAAC,CAAC,CAAC,oBAAoB,CAAC,KAAK,CAAC,aAAa,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;QACpF,kBAAkB,EAAE,KAAK,CAAC,CAAC,CAAC,oBAAoB,CAAC,KAAK,CAAC,aAAa,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;QACpF,iBAAiB,EAAE,KAAK,CAAC,CAAC,CAAC,mBAAmB,CAAC,KAAK,CAAC,aAAa,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;QAClF,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,gBAAgB,CAAC,KAAK,CAAC,aAAa,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;QAClF,OAAO;QACP,gBAAgB,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE;QAClE,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE;QAChE,eAAe;QACf,eAAe;QACf,iBAAiB;QACjB,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,KAAK;QACrC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;QACtD,qBAAqB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,IAAI;QAC5D,OAAO;QACP,SAAS;QACT,eAAe;QACf,SAAS;QACT,YAAY,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC;KACjC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../../src/commands/init/normalize.ts"],"names":[],"mappings":"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"}
@@ -28,6 +28,7 @@ export interface ClientSpec {
28
28
  isMobile: boolean;
29
29
  appStructureName: string;
30
30
  needsNgIcons: boolean;
31
+ needsExcel: boolean;
31
32
  useSsg: boolean;
32
33
  /** robots.txt 지시문 — SSG(SEO) 클라이언트는 전체 허용, 그 외는 전체 차단 */
33
34
  robotsDirective: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/commands/init/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,QAAQ,CAAC;AAC1C,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,YAAY,GAAG,OAAO,CAAC;AAEzD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,+CAA+C;IAC/C,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,EAAE,OAAO,CAAC;IAChB,yDAAyD;IACzD,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,UAAW,SAAQ,eAAe;IACjD,SAAS,EAAE,MAAM,CAAC;CACnB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/commands/init/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,QAAQ,CAAC;AAC1C,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,YAAY,GAAG,OAAO,CAAC;AAEzD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,+CAA+C;IAC/C,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,yDAAyD;IACzD,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,UAAW,SAAQ,eAAe;IACjD,SAAS,EAAE,MAAM,CAAC;CACnB"}
@@ -203,8 +203,9 @@ export interface SdClientPackageConfig {
203
203
  * 서버 설정
204
204
  * - string: 연결할 서버 패키지명 (예: "demo-server")
205
205
  * - number: 포트 직접 지정 (하위 호환)
206
+ * - 미지정: 독립 실행 (dev 서버 포트 자동 할당)
206
207
  */
207
- server: string | number;
208
+ server?: string | number;
208
209
  /** 빌드 시 치환할 환경 변수 (process.env를 객체로 치환) */
209
210
  env?: Record<string, string>;
210
211
  /** 배포 설정 */
@@ -1 +1 @@
1
- {"version":3,"file":"sd-config.types.d.ts","sourceRoot":"","sources":["../src/sd-config.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sd-config.types.d.ts","sourceRoot":"","sources":["../src/sd-config.types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@simplysm/sd-cli",
3
- "version": "14.2.7",
3
+ "version": "14.2.9",
4
4
  "description": "Simplysm package - CLI tool",
5
5
  "license": "Apache-2.0",
6
6
  "author": "simplysm",
@@ -19,11 +19,11 @@
19
19
  "main": "./dist/index.js",
20
20
  "types": "./dist/index.d.ts",
21
21
  "dependencies": {
22
- "@angular/build": "^22.0.8",
23
- "@angular/compiler-cli": "^22.0.8",
22
+ "@angular/build": "^22.1.0",
23
+ "@angular/compiler-cli": "^22.1.0",
24
24
  "@fastify/http-proxy": "^11.6.0",
25
25
  "@inquirer/prompts": "^8.5.2",
26
- "acorn": "^8.17.0",
26
+ "acorn": "^8.18.0",
27
27
  "acorn-walk": "^8.3.5",
28
28
  "browserslist-to-esbuild": "^2.1.1",
29
29
  "consola": "^3.4.2",
@@ -34,7 +34,7 @@
34
34
  "handlebars": "^4.7.9",
35
35
  "lmdb": "^3.5.6",
36
36
  "mime": "^4.1.0",
37
- "postcss": "^8.5.23",
37
+ "postcss": "^8.5.25",
38
38
  "sass": "^1.102.0",
39
39
  "semver": "^7.8.5",
40
40
  "sharp": "^0.35.3",
@@ -44,12 +44,12 @@
44
44
  "ws": "^8.21.1",
45
45
  "yaml": "^2.9.0",
46
46
  "yargs": "^18.1.0",
47
- "@simplysm/core-common": "14.2.7",
48
- "@simplysm/storage": "14.2.7",
49
- "@simplysm/core-node": "14.2.7"
47
+ "@simplysm/core-common": "14.2.9",
48
+ "@simplysm/core-node": "14.2.9",
49
+ "@simplysm/storage": "14.2.9"
50
50
  },
51
51
  "devDependencies": {
52
- "@angular/core": "^22.0.8",
52
+ "@angular/core": "^22.1.0",
53
53
  "@types/node": "^24.13.3",
54
54
  "@types/semver": "^7.7.1",
55
55
  "@types/ssh2": "^1.15.5",
@@ -64,9 +64,13 @@ export async function runDevice(options: DeviceOptions): Promise<void> {
64
64
  if (typeof clientConfig.server === "number") {
65
65
  serverUrl = `http://localhost:${clientConfig.server}/${targetName}/`;
66
66
  } else {
67
- // server가 패키지명(string) 경우: 서버 패키지의 .dev-port 파일에서 포트 자동 탐지
68
- const serverPkgDir = pathx.posixResolve(cwd, "packages", clientConfig.server);
69
- const portFile = path.join(serverPkgDir, "dist", ".dev-port");
67
+ // server 가 패키지명(string)이면 서버가 클라이언트를 서빙하고,
68
+ // 미지정이면 클라이언트 자신의 dev server 가 서빙한다. 양쪽 다 .dev-port 포트를 탐지
69
+ const servingPkgDir =
70
+ clientConfig.server != null
71
+ ? pathx.posixResolve(cwd, "packages", clientConfig.server)
72
+ : pkgDir;
73
+ const portFile = path.join(servingPkgDir, "dist", ".dev-port");
70
74
  let portStr: string;
71
75
  try {
72
76
  portStr = fsx.readSync(portFile).trim();
@@ -58,6 +58,7 @@ export function normalize(input: InitInput): NormalizedInput {
58
58
  isMobile,
59
59
  appStructureName: `${str.toCamelCase(baseName)}AppStructureItems`,
60
60
  needsNgIcons: (hasRouter && hasAuth) || hasDb,
61
+ needsExcel: hasRouter && hasAuth,
61
62
  useSsg,
62
63
  robotsDirective: useSsg ? "Allow: /" : "Disallow: /",
63
64
  };
@@ -9,18 +9,20 @@
9
9
  "@angular/common": "^22.0.0",
10
10
  "@angular/core": "^22.0.0",
11
11
  "@angular/platform-browser": "^22.0.0",
12
- "@simplysm/angular": "~14.1.0",
13
- "@simplysm/core-browser": "~14.1.0",
14
- "@simplysm/core-common": "~14.1.0"{{#if hasClientCommon}},
12
+ "@simplysm/angular": "~14.2.0",
13
+ "@simplysm/core-browser": "~14.2.0",
14
+ "@simplysm/core-common": "~14.2.0"{{#if hasClientCommon}},
15
15
  "@{{workspaceName}}/client-common": "workspace:*"{{/if}}{{#if hasServer}},
16
- "@simplysm/service-client": "~14.1.0",
17
- "@simplysm/service-common": "~14.1.0"{{/if}}{{#if client.hasRouter}},
16
+ "@simplysm/service-client": "~14.2.0",
17
+ "@simplysm/service-common": "~14.2.0"{{/if}}{{#if client.hasRouter}},
18
18
  "@angular/router": "^22.0.0"{{/if}}{{#if client.useSsg}},
19
19
  "@angular/platform-server": "^22.0.0"{{/if}}{{#if client.needsNgIcons}},
20
- "@ng-icons/core": "^33.2.3",
21
- "@ng-icons/tabler-icons": "^33.2.3"{{/if}}{{#if hasDb}},
20
+ "@ng-icons/core": "^34.0.0",
21
+ "@ng-icons/tabler-icons": "^34.0.0"{{/if}}{{#if client.needsExcel}},
22
+ "@simplysm/excel": "~14.2.0",
23
+ "zod": "^4.4.3"{{/if}}{{#if hasDb}},
22
24
  "@{{workspaceName}}/common": "workspace:*",
23
- "@simplysm/orm-common": "~14.1.0"{{/if}}{{#if client.isMobile}},
25
+ "@simplysm/orm-common": "~14.2.0"{{/if}}{{#if client.isMobile}},
24
26
  "@capacitor/core": "^8.0.0"{{/if}}
25
27
  },
26
28
  "devDependencies": {
@@ -43,7 +43,7 @@ import { RoleList } from "./role.list";
43
43
  <div class="flex-row fill">
44
44
  <!-- min-width: 좌측 역할 목록이 너무 좁아져 가독성이 떨어지는 것을 막는 의도적 고정 폭 (사용자 지시) -->
45
45
  <sd-shared-data-select-list
46
- class="flex-min bdr bdr-color-lighter"
46
+ class="flex-min bdr bdr-soft"
47
47
  style="min-width: 12rem;"
48
48
  [items]="sharedRoles.items()"
49
49
  [(selectedItem)]="selectedRole"
@@ -59,7 +59,7 @@ import { RoleList } from "./role.list";
59
59
  @let _selectedRole = selectedRole();
60
60
  @if (_selectedRole == null) {
61
61
  <div
62
- class="flex-fill tx-theme-gray-default p-xxl"
62
+ class="flex-fill tx-gray p-xxl"
63
63
  style="font-size: 48px; line-height: 1.5em"
64
64
  >
65
65
  <ng-icon [svg]="tablerArrowLeft" />
@@ -132,6 +132,10 @@ export class RoleDetail implements SdModalContentDef<{ id: number } | undefined>
132
132
 
133
133
  this.busyCount.update((v) => v + 1);
134
134
  await this._sdToast.try(async () => {
135
+ const roleName = data.name;
136
+ if (roleName == null) {
137
+ throw new Error("이름을 입력하세요.");
138
+ }
135
139
  const roleId = this.roleId();
136
140
  const {{userEntityCamel}}Id = this._appAuth.authInfo()?.{{userEntityCamel}}Id;
137
141
 
@@ -140,7 +144,7 @@ export class RoleDetail implements SdModalContentDef<{ id: number } | undefined>
140
144
  const isDuplicated = await db
141
145
  .role()
142
146
  .where((c) => [
143
- expr.eq(c.name, data.name),
147
+ expr.eq(c.name, roleName),
144
148
  expr.eq(c.isDeleted, false),
145
149
  ...(roleId == null ? [] : [expr.not(expr.eq(c.id, roleId))]),
146
150
  ])
@@ -150,16 +154,14 @@ export class RoleDetail implements SdModalContentDef<{ id: number } | undefined>
150
154
  }
151
155
 
152
156
  if (roleId == null) {
153
- const [inserted] = await db
154
- .role()
155
- .insert([{ name: data.name, isDeleted: false }], ["id"]);
157
+ const [inserted] = await db.role().insert([{ name: roleName, isDeleted: false }], ["id"]);
156
158
  await db.role().insertDataLog({ action: "등록", itemId: inserted.id, {{userEntityCamel}}Id });
157
159
  return inserted.id;
158
160
  }
159
161
  await db
160
162
  .role()
161
163
  .where((c) => [expr.eq(c.id, roleId)])
162
- .update(() => ({ name: data.name }));
164
+ .update(() => ({ name: roleName }));
163
165
  await db.role().insertDataLog({ action: "수정", itemId: roleId, {{userEntityCamel}}Id });
164
166
  return roleId;
165
167
  });
@@ -107,7 +107,7 @@ import type { I{{userEntityPascal}}ConfigMap } from "@{{workspaceName}}/server";
107
107
  (valueChange)="mark(data)"
108
108
  >
109
109
  <sd-select-item [value]="undefined">
110
- <span class="tx-theme-gray-default">미지정</span>
110
+ <span class="tx-gray">미지정</span>
111
111
  </sd-select-item>
112
112
  @for (flatMenu of flatMenus(); track flatMenu.codeChain.join(".")) {
113
113
  <sd-select-item [value]="'/home/' + flatMenu.codeChain.join('/')">
@@ -121,7 +121,7 @@ import type { I{{userEntityPascal}}ConfigMap } from "@{{workspaceName}}/server";
121
121
  </table>
122
122
 
123
123
  @if (data().lastModifiedAt != null || data().lastModifiedBy != null) {
124
- <div class="p-sm-default tx-theme-gray-default">
124
+ <div class="p-sm-default tx-gray">
125
125
  최종수정:
126
126
  @if (data().lastModifiedAt != null) {
127
127
  \{{ data().lastModifiedAt | format: "yyyy-MM-dd HH:mm" }}
@@ -97,7 +97,7 @@ type TSeverity = "error" | "warn" | "log";
97
97
  <label>심각도</label>
98
98
  <sd-select [(value)]="filter().severity" (valueChange)="mark(filter)">
99
99
  <sd-select-item [value]="undefined">
100
- <span class="tx-theme-gray-default">전체</span>
100
+ <span class="tx-gray">전체</span>
101
101
  </sd-select-item>
102
102
  <sd-select-item [value]="'error'">
103
103
  <sd-label [theme]="'danger'">error</sd-label>
@@ -41,7 +41,7 @@ interface ILoginInput {
41
41
  </div>
42
42
 
43
43
  <div class="card m-0-auto bd-radius-lg" style="width: 22em;">
44
- <div class="flex-row cross-align-center p-lg-xl bdb bdb-color-light">
44
+ <div class="flex-row cross-align-center p-lg-xl bdb bdb-default">
45
45
  <h3 class="flex-fill">로그인</h3>
46
46
  <div>v\{{ VER }}.\{{ DEV ? "d" : "p" }}</div>
47
47
  </div>
@@ -16,7 +16,7 @@ import { type SdModalContentDef } from "@simplysm/angular";
16
16
  imports: [],
17
17
  template: `
18
18
  <div class="p-default">
19
- <div class="p-default bg-theme-gray-lightest bd-radius-default bd bd-theme-gray-lighter">
19
+ <div class="p-default bg-gray-subtle bd-radius-default bd bd-hairline">
20
20
  <pre>\{{ text() }}</pre>
21
21
  </div>
22
22
  </div>
@@ -10,6 +10,7 @@
10
10
  "strictInjectionParameters": true,
11
11
  "strictInputAccessModifiers": true,
12
12
  "strictStandalone": true,
13
+ "typeCheckHostBindings": true,
13
14
  "enableI18nLegacyMessageIdFormat": false,
14
15
  "extendedDiagnostics": {
15
16
  "defaultCategory": "error"
@@ -6,13 +6,13 @@
6
6
  "dependencies": {
7
7
  "@angular/common": "^22.0.0",
8
8
  "@angular/core": "^22.0.0",
9
- "@simplysm/angular": "~14.1.0",
10
- "@simplysm/core-common": "~14.1.0"{{#if hasServer}},
9
+ "@simplysm/angular": "~14.2.0",
10
+ "@simplysm/core-common": "~14.2.0"{{#if hasServer}},
11
11
  "@{{workspaceName}}/common": "workspace:*",
12
- "@simplysm/service-client": "~14.1.0",
13
- "@simplysm/service-common": "~14.1.0"{{/if}}{{#if hasDb}},
12
+ "@simplysm/service-client": "~14.2.0",
13
+ "@simplysm/service-common": "~14.2.0"{{/if}}{{#if hasDb}},
14
14
  "@{{workspaceName}}/server": "workspace:*",
15
- "@simplysm/orm-common": "~14.1.0"{{/if}}
15
+ "@simplysm/orm-common": "~14.2.0"{{/if}}
16
16
  },
17
17
  "devDependencies": {
18
18
  "@angular/compiler": "^22.0.0",
@@ -10,6 +10,7 @@
10
10
  "strictInjectionParameters": true,
11
11
  "strictInputAccessModifiers": true,
12
12
  "strictStandalone": true,
13
+ "typeCheckHostBindings": true,
13
14
  "enableI18nLegacyMessageIdFormat": false,
14
15
  "extendedDiagnostics": {
15
16
  "defaultCategory": "error"
@@ -4,9 +4,9 @@
4
4
  "type": "module",
5
5
  "private": true,
6
6
  "dependencies": {
7
- "@simplysm/core-common": "~14.1.0"{{#if hasDb}},
8
- "@simplysm/orm-common": "~14.1.0"{{/if}}{{#if hasAuth}},
9
- "@simplysm/service-common": "~14.1.0",
10
- "@ng-icons/tabler-icons": "^33.2.3"{{/if}}
7
+ "@simplysm/core-common": "~14.2.0"{{#if hasDb}},
8
+ "@simplysm/orm-common": "~14.2.0"{{/if}}{{#if hasAuth}},
9
+ "@simplysm/service-common": "~14.2.0",
10
+ "@ng-icons/tabler-icons": "^34.0.0"{{/if}}
11
11
  }
12
12
  }
@@ -28,7 +28,7 @@ export type IInsertDataLogParam = {
28
28
  };
29
29
 
30
30
  declare module "@simplysm/orm-common" {
31
- interface Queryable<TData extends DataRecord, TFrom extends TableBuilder<any, any, any> | never> {
31
+ interface Queryable<TData extends DataRecord, TFrom extends TableBuilder<any, any> | never> {
32
32
  joinLastDataLog(
33
33
  opts?: IDataLogJoinOptions,
34
34
  ): Queryable<TData & { lastDataLog?: IDataLogJoinResult }, TFrom>;
@@ -47,7 +47,7 @@ Queryable.prototype.insertDataLog = async function (
47
47
  this: Queryable<any, any>,
48
48
  log: IInsertDataLogParam,
49
49
  ): Promise<void> {
50
- const fromTable = this.meta.from as TableBuilder<any, any, any>;
50
+ const fromTable = this.meta.from as TableBuilder<any, any>;
51
51
  const qr = queryable(this.meta.db, SystemDataLog);
52
52
 
53
53
  await qr().insert([
@@ -71,7 +71,7 @@ Queryable.prototype.joinLastDataLog = function (
71
71
  this: Queryable<any, any>,
72
72
  opts?: IDataLogJoinOptions,
73
73
  ) {
74
- const tableName = (this.meta.from as TableBuilder<any, any, any>).meta.name;
74
+ const tableName = (this.meta.from as TableBuilder<any, any>).meta.name;
75
75
 
76
76
  return this.joinSingle("lastDataLog", (qr, en) =>
77
77
  qr
@@ -107,7 +107,7 @@ Queryable.prototype.joinFirstDataLog = function (
107
107
  this: Queryable<any, any>,
108
108
  opts?: IDataLogJoinOptions,
109
109
  ) {
110
- const tableName = (this.meta.from as TableBuilder<any, any, any>).meta.name;
110
+ const tableName = (this.meta.from as TableBuilder<any, any>).meta.name;
111
111
 
112
112
  return this.joinSingle("firstDataLog", (qr, en) =>
113
113
  qr
@@ -7,17 +7,17 @@
7
7
  "private": true,
8
8
  "dependencies": {
9
9
  "@{{workspaceName}}/common": "workspace:*",
10
- "@simplysm/core-common": "~14.1.0",
11
- "@simplysm/core-node": "~14.1.0",
12
- "@simplysm/service-common": "~14.1.0",
13
- "@simplysm/service-server": "~14.1.0"{{#if hasDb}},
14
- "@simplysm/orm-common": "~14.1.0",
15
- "@simplysm/orm-node": "~14.1.0"{{#if isMysql}},
10
+ "@simplysm/core-common": "~14.2.0",
11
+ "@simplysm/core-node": "~14.2.0",
12
+ "@simplysm/service-common": "~14.2.0",
13
+ "@simplysm/service-server": "~14.2.0"{{#if hasDb}},
14
+ "@simplysm/orm-common": "~14.2.0",
15
+ "@simplysm/orm-node": "~14.2.0"{{#if isMysql}},
16
16
  "mysql2": "^3.22.0"{{/if}}{{#if isPostgres}},
17
17
  "pg": "^8.13.0",
18
18
  "pg-copy-streams": "^7.0.0"{{/if}}{{#if isMssql}},
19
19
  "mssql": "^11.0.0"{{/if}}{{/if}}{{#if hasAuth}},
20
- "@simplysm/excel": "~14.1.0",
20
+ "@simplysm/excel": "~14.2.0",
21
21
  "bcrypt": "^6.0.0"{{/if}}
22
22
  },
23
23
  "devDependencies": {
@@ -25,14 +25,15 @@
25
25
  },
26
26
  "devDependencies": {
27
27
  "@playwright/cli": "^0.1.11",
28
- "@simplysm/lint": "~14.1.0",
29
- "@simplysm/sd-cli": "~14.1.0",
28
+ "@simplysm/lint": "~14.2.0",
29
+ "@simplysm/sd-cli": "~14.2.0",
30
30
  "@types/node": "^24.13.2",
31
31
  "@vitest/browser-playwright": "^4.1.0",
32
32
  "@vitest/coverage-v8": "^4.1.0",
33
33
  "eslint": "^10.6.0",
34
34
  "jiti": "^2.7.0",
35
35
  "oxfmt": "^0.59.0",
36
+ "playwright": "^1.62.0",
36
37
  "typescript": "~6.0.0",
37
38
  "vite": "^8.1.0",
38
39
  "vitest": "^4.1.0"
@@ -1,3 +1,16 @@
1
1
  packages:
2
2
  - packages/*
3
3
  - tests/*
4
+ allowBuilds:
5
+ "@parcel/watcher": true
6
+ bcrypt: true
7
+ bufferutil: true
8
+ core-js: true
9
+ cpu-features: true
10
+ esbuild: true
11
+ lmdb: true
12
+ msgpackr-extract: true
13
+ ssh2: true
14
+ unrs-resolver: true
15
+ utf-8-validate: true
16
+ minimumReleaseAge: 0
@@ -31,6 +31,7 @@ export interface ClientSpec {
31
31
  isMobile: boolean;
32
32
  appStructureName: string;
33
33
  needsNgIcons: boolean;
34
+ needsExcel: boolean;
34
35
  useSsg: boolean;
35
36
  /** robots.txt 지시문 — SSG(SEO) 클라이언트는 전체 허용, 그 외는 전체 차단 */
36
37
  robotsDirective: string;
@@ -225,8 +225,9 @@ export interface SdClientPackageConfig {
225
225
  * 서버 설정
226
226
  * - string: 연결할 서버 패키지명 (예: "demo-server")
227
227
  * - number: 포트 직접 지정 (하위 호환)
228
+ * - 미지정: 독립 실행 (dev 서버 포트 자동 할당)
228
229
  */
229
- server: string | number;
230
+ server?: string | number;
230
231
  /** 빌드 시 치환할 환경 변수 (process.env를 객체로 치환) */
231
232
  env?: Record<string, string>;
232
233
  /** 배포 설정 */
@@ -370,6 +370,27 @@ describe("client 인증 로그인 (routes / login.view / ng-icons)", () => {
370
370
  expect(out).toContain('"@ng-icons/tabler-icons"');
371
371
  });
372
372
 
373
+ it("client/package.json: 인증 ON + router → 목록 엑셀 입출력용 @simplysm/excel + zod 포함", async () => {
374
+ const out = await renderTemplate(path.join(TPL_ROOT, "client/package.json.hbs"), authClientCtx(true));
375
+ expect(out).toContain('"@simplysm/excel"');
376
+ expect(out).toContain('"zod"');
377
+ });
378
+
379
+ it("client/package.json: 인증 ON + router 없음 → @simplysm/excel, zod 없음", async () => {
380
+ const out = await renderTemplate(
381
+ path.join(TPL_ROOT, "client/package.json.hbs"),
382
+ authClientCtx(true, false),
383
+ );
384
+ expect(out).not.toContain('"@simplysm/excel"');
385
+ expect(out).not.toContain('"zod"');
386
+ });
387
+
388
+ it("client/package.json: 인증 OFF → @simplysm/excel, zod 없음", async () => {
389
+ const out = await renderTemplate(path.join(TPL_ROOT, "client/package.json.hbs"), authClientCtx(false));
390
+ expect(out).not.toContain('"@simplysm/excel"');
391
+ expect(out).not.toContain('"zod"');
392
+ });
393
+
373
394
  it("client/package.json: 인증 OFF + DB ON → dev 모달용 @ng-icons 포함", async () => {
374
395
  const out = await renderTemplate(path.join(TPL_ROOT, "client/package.json.hbs"), authClientCtx(false));
375
396
  expect(out).toContain('"@ng-icons/core"');