@tienne/gestalt 0.88.0 → 0.89.0

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 (197) hide show
  1. package/CLAUDE.md +6 -2
  2. package/README.ko.md +2 -1
  3. package/README.md +3 -1
  4. package/dist/package.json +2 -1
  5. package/dist/plugin/skills/_shared/proactive-routing.md +1 -0
  6. package/dist/plugin/skills/architecture/SKILL.md +913 -0
  7. package/dist/schemas/architecture-ir.schema.json +596 -0
  8. package/dist/src/architecture/canvas-geometry.d.ts +40 -0
  9. package/dist/src/architecture/canvas-geometry.d.ts.map +1 -0
  10. package/dist/src/architecture/canvas-geometry.js +212 -0
  11. package/dist/src/architecture/canvas-geometry.js.map +1 -0
  12. package/dist/src/architecture/codeowners.d.ts +16 -0
  13. package/dist/src/architecture/codeowners.d.ts.map +1 -0
  14. package/dist/src/architecture/codeowners.js +58 -0
  15. package/dist/src/architecture/codeowners.js.map +1 -0
  16. package/dist/src/architecture/compare-layout.d.ts +27 -0
  17. package/dist/src/architecture/compare-layout.d.ts.map +1 -0
  18. package/dist/src/architecture/compare-layout.js +72 -0
  19. package/dist/src/architecture/compare-layout.js.map +1 -0
  20. package/dist/src/architecture/dataflow-layout.d.ts +29 -0
  21. package/dist/src/architecture/dataflow-layout.d.ts.map +1 -0
  22. package/dist/src/architecture/dataflow-layout.js +229 -0
  23. package/dist/src/architecture/dataflow-layout.js.map +1 -0
  24. package/dist/src/architecture/doc-fresh.d.ts +31 -0
  25. package/dist/src/architecture/doc-fresh.d.ts.map +1 -0
  26. package/dist/src/architecture/doc-fresh.js +84 -0
  27. package/dist/src/architecture/doc-fresh.js.map +1 -0
  28. package/dist/src/architecture/doc-link.d.ts +84 -0
  29. package/dist/src/architecture/doc-link.d.ts.map +1 -0
  30. package/dist/src/architecture/doc-link.js +396 -0
  31. package/dist/src/architecture/doc-link.js.map +1 -0
  32. package/dist/src/architecture/doc-routes.d.ts +39 -0
  33. package/dist/src/architecture/doc-routes.d.ts.map +1 -0
  34. package/dist/src/architecture/doc-routes.js +123 -0
  35. package/dist/src/architecture/doc-routes.js.map +1 -0
  36. package/dist/src/architecture/doc-scan.d.ts +107 -0
  37. package/dist/src/architecture/doc-scan.d.ts.map +1 -0
  38. package/dist/src/architecture/doc-scan.js +617 -0
  39. package/dist/src/architecture/doc-scan.js.map +1 -0
  40. package/dist/src/architecture/doc-stale.d.ts +32 -0
  41. package/dist/src/architecture/doc-stale.d.ts.map +1 -0
  42. package/dist/src/architecture/doc-stale.js +60 -0
  43. package/dist/src/architecture/doc-stale.js.map +1 -0
  44. package/dist/src/architecture/drilldown.d.ts +51 -0
  45. package/dist/src/architecture/drilldown.d.ts.map +1 -0
  46. package/dist/src/architecture/drilldown.js +1160 -0
  47. package/dist/src/architecture/drilldown.js.map +1 -0
  48. package/dist/src/architecture/endpoint-match.d.ts +43 -0
  49. package/dist/src/architecture/endpoint-match.d.ts.map +1 -0
  50. package/dist/src/architecture/endpoint-match.js +133 -0
  51. package/dist/src/architecture/endpoint-match.js.map +1 -0
  52. package/dist/src/architecture/flow-layout.d.ts +79 -0
  53. package/dist/src/architecture/flow-layout.d.ts.map +1 -0
  54. package/dist/src/architecture/flow-layout.js +519 -0
  55. package/dist/src/architecture/flow-layout.js.map +1 -0
  56. package/dist/src/architecture/focus.d.ts +14 -0
  57. package/dist/src/architecture/focus.d.ts.map +1 -0
  58. package/dist/src/architecture/focus.js +107 -0
  59. package/dist/src/architecture/focus.js.map +1 -0
  60. package/dist/src/architecture/global-context.d.ts +23 -0
  61. package/dist/src/architecture/global-context.d.ts.map +1 -0
  62. package/dist/src/architecture/global-context.js +67 -0
  63. package/dist/src/architecture/global-context.js.map +1 -0
  64. package/dist/src/architecture/html-client.d.ts +35 -0
  65. package/dist/src/architecture/html-client.d.ts.map +1 -0
  66. package/dist/src/architecture/html-client.js +1852 -0
  67. package/dist/src/architecture/html-client.js.map +1 -0
  68. package/dist/src/architecture/html-renderer.d.ts +22 -0
  69. package/dist/src/architecture/html-renderer.d.ts.map +1 -0
  70. package/dist/src/architecture/html-renderer.js +1290 -0
  71. package/dist/src/architecture/html-renderer.js.map +1 -0
  72. package/dist/src/architecture/html-theme.d.ts +25 -0
  73. package/dist/src/architecture/html-theme.d.ts.map +1 -0
  74. package/dist/src/architecture/html-theme.js +681 -0
  75. package/dist/src/architecture/html-theme.js.map +1 -0
  76. package/dist/src/architecture/index.d.ts +9 -0
  77. package/dist/src/architecture/index.d.ts.map +1 -0
  78. package/dist/src/architecture/index.js +9 -0
  79. package/dist/src/architecture/index.js.map +1 -0
  80. package/dist/src/architecture/ir-schema.d.ts +1832 -0
  81. package/dist/src/architecture/ir-schema.d.ts.map +1 -0
  82. package/dist/src/architecture/ir-schema.js +343 -0
  83. package/dist/src/architecture/ir-schema.js.map +1 -0
  84. package/dist/src/architecture/kind-text.d.ts +21 -0
  85. package/dist/src/architecture/kind-text.d.ts.map +1 -0
  86. package/dist/src/architecture/kind-text.js +42 -0
  87. package/dist/src/architecture/kind-text.js.map +1 -0
  88. package/dist/src/architecture/layout.d.ts +227 -0
  89. package/dist/src/architecture/layout.d.ts.map +1 -0
  90. package/dist/src/architecture/layout.js +627 -0
  91. package/dist/src/architecture/layout.js.map +1 -0
  92. package/dist/src/architecture/mcp-tool-match.d.ts +49 -0
  93. package/dist/src/architecture/mcp-tool-match.d.ts.map +1 -0
  94. package/dist/src/architecture/mcp-tool-match.js +53 -0
  95. package/dist/src/architecture/mcp-tool-match.js.map +1 -0
  96. package/dist/src/architecture/merge.d.ts +54 -0
  97. package/dist/src/architecture/merge.d.ts.map +1 -0
  98. package/dist/src/architecture/merge.js +681 -0
  99. package/dist/src/architecture/merge.js.map +1 -0
  100. package/dist/src/architecture/micro-app.d.ts +20 -0
  101. package/dist/src/architecture/micro-app.d.ts.map +1 -0
  102. package/dist/src/architecture/micro-app.js +41 -0
  103. package/dist/src/architecture/micro-app.js.map +1 -0
  104. package/dist/src/architecture/name-ref-match.d.ts +43 -0
  105. package/dist/src/architecture/name-ref-match.d.ts.map +1 -0
  106. package/dist/src/architecture/name-ref-match.js +127 -0
  107. package/dist/src/architecture/name-ref-match.js.map +1 -0
  108. package/dist/src/architecture/packs/data.d.ts +109 -0
  109. package/dist/src/architecture/packs/data.d.ts.map +1 -0
  110. package/dist/src/architecture/packs/data.js +64 -0
  111. package/dist/src/architecture/packs/data.js.map +1 -0
  112. package/dist/src/architecture/packs/generic.d.ts +47 -0
  113. package/dist/src/architecture/packs/generic.d.ts.map +1 -0
  114. package/dist/src/architecture/packs/generic.js +35 -0
  115. package/dist/src/architecture/packs/generic.js.map +1 -0
  116. package/dist/src/architecture/packs/harness.d.ts +96 -0
  117. package/dist/src/architecture/packs/harness.d.ts.map +1 -0
  118. package/dist/src/architecture/packs/harness.js +66 -0
  119. package/dist/src/architecture/packs/harness.js.map +1 -0
  120. package/dist/src/architecture/packs/index.d.ts +840 -0
  121. package/dist/src/architecture/packs/index.d.ts.map +1 -0
  122. package/dist/src/architecture/packs/index.js +87 -0
  123. package/dist/src/architecture/packs/index.js.map +1 -0
  124. package/dist/src/architecture/packs/infra.d.ts +91 -0
  125. package/dist/src/architecture/packs/infra.d.ts.map +1 -0
  126. package/dist/src/architecture/packs/infra.js +57 -0
  127. package/dist/src/architecture/packs/infra.js.map +1 -0
  128. package/dist/src/architecture/packs/knowledge.d.ts +72 -0
  129. package/dist/src/architecture/packs/knowledge.d.ts.map +1 -0
  130. package/dist/src/architecture/packs/knowledge.js +58 -0
  131. package/dist/src/architecture/packs/knowledge.js.map +1 -0
  132. package/dist/src/architecture/packs/process.d.ts +87 -0
  133. package/dist/src/architecture/packs/process.d.ts.map +1 -0
  134. package/dist/src/architecture/packs/process.js +52 -0
  135. package/dist/src/architecture/packs/process.js.map +1 -0
  136. package/dist/src/architecture/packs/render-classes.d.ts +11 -0
  137. package/dist/src/architecture/packs/render-classes.d.ts.map +1 -0
  138. package/dist/src/architecture/packs/render-classes.js +92 -0
  139. package/dist/src/architecture/packs/render-classes.js.map +1 -0
  140. package/dist/src/architecture/packs/types.d.ts +66 -0
  141. package/dist/src/architecture/packs/types.d.ts.map +1 -0
  142. package/dist/src/architecture/packs/types.js +18 -0
  143. package/dist/src/architecture/packs/types.js.map +1 -0
  144. package/dist/src/architecture/packs/web-product.d.ts +348 -0
  145. package/dist/src/architecture/packs/web-product.d.ts.map +1 -0
  146. package/dist/src/architecture/packs/web-product.js +226 -0
  147. package/dist/src/architecture/packs/web-product.js.map +1 -0
  148. package/dist/src/architecture/sequence-layout.d.ts +50 -0
  149. package/dist/src/architecture/sequence-layout.d.ts.map +1 -0
  150. package/dist/src/architecture/sequence-layout.js +140 -0
  151. package/dist/src/architecture/sequence-layout.js.map +1 -0
  152. package/dist/src/architecture/service-facts.d.ts +30 -0
  153. package/dist/src/architecture/service-facts.d.ts.map +1 -0
  154. package/dist/src/architecture/service-facts.js +88 -0
  155. package/dist/src/architecture/service-facts.js.map +1 -0
  156. package/dist/src/architecture/store.d.ts +50 -0
  157. package/dist/src/architecture/store.d.ts.map +1 -0
  158. package/dist/src/architecture/store.js +320 -0
  159. package/dist/src/architecture/store.js.map +1 -0
  160. package/dist/src/architecture/types.d.ts +400 -0
  161. package/dist/src/architecture/types.d.ts.map +1 -0
  162. package/dist/src/architecture/types.js +75 -0
  163. package/dist/src/architecture/types.js.map +1 -0
  164. package/dist/src/architecture/validator.d.ts +65 -0
  165. package/dist/src/architecture/validator.d.ts.map +1 -0
  166. package/dist/src/architecture/validator.js +1249 -0
  167. package/dist/src/architecture/validator.js.map +1 -0
  168. package/dist/src/core/errors.d.ts +4 -0
  169. package/dist/src/core/errors.d.ts.map +1 -1
  170. package/dist/src/core/errors.js +8 -0
  171. package/dist/src/core/errors.js.map +1 -1
  172. package/dist/src/mcp/schemas.d.ts +317 -0
  173. package/dist/src/mcp/schemas.d.ts.map +1 -1
  174. package/dist/src/mcp/schemas.js +151 -0
  175. package/dist/src/mcp/schemas.js.map +1 -1
  176. package/dist/src/mcp/server.d.ts.map +1 -1
  177. package/dist/src/mcp/server.js +7 -1
  178. package/dist/src/mcp/server.js.map +1 -1
  179. package/dist/src/mcp/tools/architecture-passthrough.d.ts +9 -0
  180. package/dist/src/mcp/tools/architecture-passthrough.d.ts.map +1 -0
  181. package/dist/src/mcp/tools/architecture-passthrough.js +587 -0
  182. package/dist/src/mcp/tools/architecture-passthrough.js.map +1 -0
  183. package/dist/src/utils/claude-projects.d.ts +19 -0
  184. package/dist/src/utils/claude-projects.d.ts.map +1 -0
  185. package/dist/src/utils/claude-projects.js +157 -0
  186. package/dist/src/utils/claude-projects.js.map +1 -0
  187. package/dist/src/utils/read-only-tools.d.ts +19 -0
  188. package/dist/src/utils/read-only-tools.d.ts.map +1 -0
  189. package/dist/src/utils/read-only-tools.js +132 -0
  190. package/dist/src/utils/read-only-tools.js.map +1 -0
  191. package/package.json +2 -1
  192. package/plugin/.codex-plugin/plugin.json +1 -1
  193. package/plugin/.mcp.json +1 -1
  194. package/plugin/mcp.json +1 -1
  195. package/plugin/skills/_shared/proactive-routing.md +1 -0
  196. package/plugin/skills/architecture/SKILL.md +913 -0
  197. package/schemas/architecture-ir.schema.json +596 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/architecture/packs/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,87 @@
1
+ import { DATA_PACK } from './data.js';
2
+ import { GENERIC_PACK } from './generic.js';
3
+ import { HARNESS_PACK } from './harness.js';
4
+ import { INFRA_PACK } from './infra.js';
5
+ import { KNOWLEDGE_PACK } from './knowledge.js';
6
+ import { PROCESS_PACK } from './process.js';
7
+ import { WEB_PRODUCT_PACK } from './web-product.js';
8
+ export * from './render-classes.js';
9
+ export * from './types.js';
10
+ /** 내장 팩. 이 순서로 표를 합친다. 새 팩은 뒤에 붙여야 기존 팩 표의 순서가 안 바뀐다 */
11
+ export const BUILTIN_PACKS = [
12
+ WEB_PRODUCT_PACK,
13
+ HARNESS_PACK,
14
+ GENERIC_PACK,
15
+ INFRA_PACK,
16
+ DATA_PACK,
17
+ PROCESS_PACK,
18
+ KNOWLEDGE_PACK,
19
+ ];
20
+ /** packs를 안 적은 IR이 쓰는 팩. 팩을 나누기 전 어휘 전부라 옛 IR이 그대로 읽힌다 */
21
+ export const LEGACY_PACK_IDS = ['web-product', 'harness'];
22
+ const PACK_BY_ID = new Map(BUILTIN_PACKS.map((p) => [p.id, p]));
23
+ export function packById(id) {
24
+ return PACK_BY_ID.get(id);
25
+ }
26
+ /** 모르는 팩 id는 건너뛴다. 검증은 validator가 따로 한다 */
27
+ export function resolvePackIds(ids) {
28
+ const want = new Set();
29
+ const visit = (id) => {
30
+ const p = PACK_BY_ID.get(id);
31
+ if (p === undefined || want.has(id))
32
+ return;
33
+ want.add(id);
34
+ for (const r of p.requires ?? [])
35
+ visit(r);
36
+ };
37
+ for (const id of ids)
38
+ visit(id);
39
+ return BUILTIN_PACKS.map((p) => p.id).filter((id) => want.has(id));
40
+ }
41
+ const cache = new Map();
42
+ export function vocabularyOf(ids = LEGACY_PACK_IDS) {
43
+ const packIds = resolvePackIds(ids);
44
+ const key = packIds.join(',');
45
+ const hit = cache.get(key);
46
+ if (hit !== undefined)
47
+ return hit;
48
+ const v = {
49
+ packIds,
50
+ nodeKinds: {},
51
+ displayKinds: {},
52
+ looks: {},
53
+ lanes: {},
54
+ edgeKinds: {},
55
+ drilldown: 'none',
56
+ matchers: [],
57
+ };
58
+ const strategies = [];
59
+ for (const id of packIds) {
60
+ const p = PACK_BY_ID.get(id);
61
+ Object.assign(v.nodeKinds, p.nodeKinds);
62
+ Object.assign(v.looks, p.nodeKinds);
63
+ Object.assign(v.displayKinds, p.displayKinds ?? {});
64
+ Object.assign(v.looks, p.displayKinds ?? {});
65
+ Object.assign(v.lanes, p.lanes);
66
+ Object.assign(v.edgeKinds, p.edgeKinds);
67
+ strategies.push(p.drilldown);
68
+ for (const m of p.matchers)
69
+ if (!v.matchers.includes(m))
70
+ v.matchers.push(m);
71
+ }
72
+ // generic처럼 none인 팩을 requires로 끌어와도 tree 팩의 전략을 덮지 않게 순서 대신 우선순위로 고른다
73
+ v.drilldown = strategies.includes('web-product')
74
+ ? 'web-product'
75
+ : strategies.includes('tree')
76
+ ? 'tree'
77
+ : 'none';
78
+ cache.set(key, v);
79
+ return v;
80
+ }
81
+ /** 내장 팩 전부. kind 목록과 레인, 열 순위처럼 IR마다 안 갈리는 표가 이걸 쓴다 */
82
+ export const ALL_PACKS_VOCABULARY = vocabularyOf(BUILTIN_PACKS.map((p) => p.id));
83
+ /** IR이 쓰는 어휘. packs를 안 적은 IR은 LEGACY_PACK_IDS로 읽는다 */
84
+ export function irVocabulary(ir) {
85
+ return vocabularyOf(ir.packs ?? LEGACY_PACK_IDS);
86
+ }
87
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/architecture/packs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAS5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAE3B,wDAAwD;AACxD,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,gBAAgB;IAChB,YAAY;IACZ,YAAY;IACZ,UAAU;IACV,SAAS;IACT,YAAY;IACZ,cAAc;CACN,CAAC;AAcX,0DAA0D;AAC1D,MAAM,CAAC,MAAM,eAAe,GAAsB,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;AAE7E,MAAM,UAAU,GAAwC,IAAI,GAAG,CAC7D,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAmB,CAAC,CAAC,CACtD,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,EAAU;IACjC,OAAO,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC5B,CAAC;AAiBD,2CAA2C;AAC3C,MAAM,UAAU,cAAc,CAAC,GAAsB;IACnD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,KAAK,GAAG,CAAC,EAAU,EAAQ,EAAE;QACjC,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC7B,IAAI,CAAC,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,OAAO;QAC5C,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACb,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,IAAI,EAAE;YAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC,CAAC;IACF,KAAK,MAAM,EAAE,IAAI,GAAG;QAAE,KAAK,CAAC,EAAE,CAAC,CAAC;IAChC,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAY,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/E,CAAC;AAED,MAAM,KAAK,GAAG,IAAI,GAAG,EAAsB,CAAC;AAE5C,MAAM,UAAU,YAAY,CAAC,MAAyB,eAAe;IACnE,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IACpC,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9B,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,GAAG,CAAC;IAClC,MAAM,CAAC,GAAe;QACpB,OAAO;QACP,SAAS,EAAE,EAAE;QACb,YAAY,EAAE,EAAE;QAChB,KAAK,EAAE,EAAE;QACT,KAAK,EAAE,EAAE;QACT,SAAS,EAAE,EAAE;QACb,SAAS,EAAE,MAAM;QACjB,QAAQ,EAAE,EAAE;KACb,CAAC;IACF,MAAM,UAAU,GAAwB,EAAE,CAAC;IAC3C,KAAK,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC;QAC9B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;QACxC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;QACpD,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;QAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;QAChC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;QACxC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC7B,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ;YAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9E,CAAC;IACD,sEAAsE;IACtE,CAAC,CAAC,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC9C,CAAC,CAAC,aAAa;QACf,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC3B,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,MAAM,CAAC;IACb,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAClB,OAAO,CAAC,CAAC;AACX,CAAC;AAED,uDAAuD;AACvD,MAAM,CAAC,MAAM,oBAAoB,GAAe,YAAY,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAE7F,sDAAsD;AACtD,MAAM,UAAU,YAAY,CAAC,EAAiC;IAC5D,OAAO,YAAY,CAAC,EAAE,CAAC,KAAK,IAAI,eAAe,CAAC,CAAC;AACnD,CAAC"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * 네트워크와 실행 환경. 네트워크 안에 서브넷, 그 안에 클러스터와 워크로드가 들어간다.
3
+ * 포함 관계가 깊어서 parent 나무로 한 단계씩 내려가며 본다
4
+ */
5
+ export declare const INFRA_PACK: {
6
+ readonly id: "infra";
7
+ readonly title: "인프라";
8
+ readonly description: "네트워크, 서브넷, 클러스터, 워크로드, 방화벽";
9
+ readonly requires: readonly ["generic"];
10
+ readonly drilldown: "tree";
11
+ readonly matchers: readonly ["iac-ref"];
12
+ readonly nodeKinds: {
13
+ readonly firewall: {
14
+ readonly lane: "infra_edge";
15
+ readonly rank: 0;
16
+ readonly parents: readonly ["network", "subnet"];
17
+ readonly renderClass: import("./types.js").RenderClass;
18
+ readonly short: string;
19
+ readonly text: string;
20
+ readonly color: import("./types.js").KindColor;
21
+ readonly icon: string;
22
+ };
23
+ readonly network: {
24
+ readonly lane: "infra_net";
25
+ readonly rank: 1;
26
+ readonly renderClass: import("./types.js").RenderClass;
27
+ readonly short: string;
28
+ readonly text: string;
29
+ readonly color: import("./types.js").KindColor;
30
+ readonly icon: string;
31
+ };
32
+ readonly subnet: {
33
+ readonly lane: "infra_net";
34
+ readonly rank: 1;
35
+ readonly parents: readonly ["network"];
36
+ readonly renderClass: import("./types.js").RenderClass;
37
+ readonly short: string;
38
+ readonly text: string;
39
+ readonly color: import("./types.js").KindColor;
40
+ readonly icon: string;
41
+ };
42
+ readonly cluster: {
43
+ readonly lane: "infra_run";
44
+ readonly rank: 2;
45
+ readonly parents: readonly ["network", "subnet"];
46
+ readonly renderClass: import("./types.js").RenderClass;
47
+ readonly short: string;
48
+ readonly text: string;
49
+ readonly color: import("./types.js").KindColor;
50
+ readonly icon: string;
51
+ };
52
+ readonly workload: {
53
+ readonly lane: "infra_run";
54
+ readonly rank: 3;
55
+ readonly parents: readonly ["network", "subnet", "cluster"];
56
+ readonly renderClass: import("./types.js").RenderClass;
57
+ readonly short: string;
58
+ readonly text: string;
59
+ readonly color: import("./types.js").KindColor;
60
+ readonly icon: string;
61
+ };
62
+ };
63
+ readonly lanes: {
64
+ readonly infra_edge: {
65
+ readonly title: "경계";
66
+ };
67
+ readonly infra_net: {
68
+ readonly title: "네트워크";
69
+ };
70
+ readonly infra_run: {
71
+ readonly title: "실행";
72
+ };
73
+ };
74
+ readonly edgeKinds: {
75
+ readonly peers: {
76
+ readonly text: "피어링";
77
+ readonly ends: {
78
+ readonly from: readonly ["network"];
79
+ readonly to: readonly ["network"];
80
+ };
81
+ };
82
+ readonly allows: {
83
+ readonly text: "통신 허용";
84
+ readonly ends: {
85
+ readonly from: readonly ["firewall"];
86
+ readonly to: readonly ["subnet", "cluster", "workload"];
87
+ };
88
+ };
89
+ };
90
+ };
91
+ //# sourceMappingURL=infra.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"infra.d.ts","sourceRoot":"","sources":["../../../../src/architecture/packs/infra.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkDY,CAAC"}
@@ -0,0 +1,57 @@
1
+ import { classLook } from './render-classes.js';
2
+ /**
3
+ * 네트워크와 실행 환경. 네트워크 안에 서브넷, 그 안에 클러스터와 워크로드가 들어간다.
4
+ * 포함 관계가 깊어서 parent 나무로 한 단계씩 내려가며 본다
5
+ */
6
+ export const INFRA_PACK = {
7
+ id: 'infra',
8
+ title: '인프라',
9
+ description: '네트워크, 서브넷, 클러스터, 워크로드, 방화벽',
10
+ requires: ['generic'],
11
+ drilldown: 'tree',
12
+ matchers: ['iac-ref'],
13
+ nodeKinds: {
14
+ firewall: {
15
+ ...classLook('gateway', '방화벽', '드나드는 통신을 거르는 관문'),
16
+ lane: 'infra_edge',
17
+ rank: 0,
18
+ parents: ['network', 'subnet'],
19
+ },
20
+ network: {
21
+ ...classLook('infra', '네트워크', '격리된 사설 네트워크'),
22
+ lane: 'infra_net',
23
+ rank: 1,
24
+ },
25
+ subnet: {
26
+ ...classLook('infra', '서브넷', '네트워크 안의 주소 구간'),
27
+ lane: 'infra_net',
28
+ rank: 1,
29
+ parents: ['network'],
30
+ },
31
+ cluster: {
32
+ ...classLook('infra', '클러스터', '워크로드를 띄우는 실행 묶음'),
33
+ lane: 'infra_run',
34
+ rank: 2,
35
+ parents: ['network', 'subnet'],
36
+ },
37
+ workload: {
38
+ ...classLook('service', '워크로드', '클러스터나 서브넷에서 도는 프로그램'),
39
+ lane: 'infra_run',
40
+ rank: 3,
41
+ parents: ['network', 'subnet', 'cluster'],
42
+ },
43
+ },
44
+ lanes: {
45
+ infra_edge: { title: '경계' },
46
+ infra_net: { title: '네트워크' },
47
+ infra_run: { title: '실행' },
48
+ },
49
+ edgeKinds: {
50
+ peers: { text: '피어링', ends: { from: ['network'], to: ['network'] } },
51
+ allows: {
52
+ text: '통신 허용',
53
+ ends: { from: ['firewall'], to: ['subnet', 'cluster', 'workload'] },
54
+ },
55
+ },
56
+ };
57
+ //# sourceMappingURL=infra.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"infra.js","sourceRoot":"","sources":["../../../../src/architecture/packs/infra.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGhD;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,EAAE,EAAE,OAAO;IACX,KAAK,EAAE,KAAK;IACZ,WAAW,EAAE,4BAA4B;IACzC,QAAQ,EAAE,CAAC,SAAS,CAAC;IACrB,SAAS,EAAE,MAAM;IACjB,QAAQ,EAAE,CAAC,SAAS,CAAC;IACrB,SAAS,EAAE;QACT,QAAQ,EAAE;YACR,GAAG,SAAS,CAAC,SAAS,EAAE,KAAK,EAAE,iBAAiB,CAAC;YACjD,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,CAAC;YACP,OAAO,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC;SAC/B;QACD,OAAO,EAAE;YACP,GAAG,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC;YAC5C,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,CAAC;SACR;QACD,MAAM,EAAE;YACN,GAAG,SAAS,CAAC,OAAO,EAAE,KAAK,EAAE,eAAe,CAAC;YAC7C,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,CAAC;YACP,OAAO,EAAE,CAAC,SAAS,CAAC;SACrB;QACD,OAAO,EAAE;YACP,GAAG,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,iBAAiB,CAAC;YAChD,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,CAAC;YACP,OAAO,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC;SAC/B;QACD,QAAQ,EAAE;YACR,GAAG,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,qBAAqB,CAAC;YACtD,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,CAAC;YACP,OAAO,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC;SAC1C;KACF;IACD,KAAK,EAAE;QACL,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;QAC3B,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;QAC5B,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;KAC3B;IACD,SAAS,EAAE;QACT,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;QACpE,MAAM,EAAE;YACN,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE;SACpE;KACF;CACgC,CAAC"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * 지식 문서 지도. 분류와 도메인 같은 묶음 안에 문서가, 디자인 영역 안에 화면 문서가 들어간다.
3
+ * 문서 노드는 파일 하나다. label이 레포 기준 경로라 병합 키가 경로를 따른다
4
+ */
5
+ export declare const KNOWLEDGE_PACK: {
6
+ readonly id: "knowledge";
7
+ readonly title: "지식 문서";
8
+ readonly description: "문서 묶음, 문서, 디자인 화면 문서와 그 문서가 설명하는 기술 노드";
9
+ readonly requires: readonly ["generic"];
10
+ readonly drilldown: "tree";
11
+ readonly matchers: readonly ["doc-path", "screen-route"];
12
+ readonly nodeKinds: {
13
+ readonly doc_group: {
14
+ readonly lane: "kn_group";
15
+ readonly rank: 0;
16
+ readonly parents: readonly ["doc_group"];
17
+ readonly renderClass: import("./types.js").RenderClass;
18
+ readonly short: string;
19
+ readonly text: string;
20
+ readonly color: import("./types.js").KindColor;
21
+ readonly icon: string;
22
+ };
23
+ readonly document: {
24
+ readonly lane: "kn_doc";
25
+ readonly rank: 1;
26
+ readonly parents: readonly ["doc_group"];
27
+ readonly renderClass: import("./types.js").RenderClass;
28
+ readonly short: string;
29
+ readonly text: string;
30
+ readonly color: import("./types.js").KindColor;
31
+ readonly icon: string;
32
+ };
33
+ readonly design_screen: {
34
+ readonly lane: "kn_screen";
35
+ readonly rank: 2;
36
+ readonly parents: readonly ["doc_group"];
37
+ readonly renderClass: import("./types.js").RenderClass;
38
+ readonly short: string;
39
+ readonly text: string;
40
+ readonly color: import("./types.js").KindColor;
41
+ readonly icon: string;
42
+ };
43
+ };
44
+ readonly lanes: {
45
+ readonly kn_group: {
46
+ readonly title: "묶음";
47
+ };
48
+ readonly kn_doc: {
49
+ readonly title: "문서";
50
+ };
51
+ readonly kn_screen: {
52
+ readonly title: "화면 문서";
53
+ };
54
+ };
55
+ readonly edgeKinds: {
56
+ readonly describes: {
57
+ readonly text: "설명";
58
+ };
59
+ readonly indexes: {
60
+ readonly text: "안내";
61
+ readonly ends: {
62
+ readonly from: readonly ["document"];
63
+ readonly to: readonly ["document", "design_screen", "doc_group"];
64
+ };
65
+ };
66
+ };
67
+ };
68
+ /** 지식과 아키텍처 그림에서 문서가 있어야 할 자리로 보는 kind. 엔드포인트는 수가 많아 요약 수치에만 넣는다 */
69
+ export declare const KNOWLEDGE_COVERAGE_KINDS: readonly string[];
70
+ /** 문서 정보(doc)를 가질 수 있는 kind */
71
+ export declare const KNOWLEDGE_DOC_KINDS: readonly string[];
72
+ //# sourceMappingURL=knowledge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knowledge.d.ts","sourceRoot":"","sources":["../../../../src/architecture/packs/knowledge.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyCQ,CAAC;AAEpC,oEAAoE;AACpE,eAAO,MAAM,wBAAwB,EAAE,SAAS,MAAM,EAMrD,CAAC;AAEF,+BAA+B;AAC/B,eAAO,MAAM,mBAAmB,EAAE,SAAS,MAAM,EAA0C,CAAC"}
@@ -0,0 +1,58 @@
1
+ import { classLook } from './render-classes.js';
2
+ /**
3
+ * 지식 문서 지도. 분류와 도메인 같은 묶음 안에 문서가, 디자인 영역 안에 화면 문서가 들어간다.
4
+ * 문서 노드는 파일 하나다. label이 레포 기준 경로라 병합 키가 경로를 따른다
5
+ */
6
+ export const KNOWLEDGE_PACK = {
7
+ id: 'knowledge',
8
+ title: '지식 문서',
9
+ description: '문서 묶음, 문서, 디자인 화면 문서와 그 문서가 설명하는 기술 노드',
10
+ requires: ['generic'],
11
+ drilldown: 'tree',
12
+ matchers: ['doc-path', 'screen-route'],
13
+ nodeKinds: {
14
+ doc_group: {
15
+ ...classLook('infra', '문서 묶음', '분류나 도메인처럼 문서를 모은 곳'),
16
+ lane: 'kn_group',
17
+ rank: 0,
18
+ parents: ['doc_group'],
19
+ },
20
+ document: {
21
+ ...classLook('document', '문서', '파일 하나로 된 지식 문서'),
22
+ lane: 'kn_doc',
23
+ rank: 1,
24
+ parents: ['doc_group'],
25
+ },
26
+ design_screen: {
27
+ ...classLook('client', '화면 문서', '디자인 화면 색인의 한 화면'),
28
+ lane: 'kn_screen',
29
+ rank: 2,
30
+ parents: ['doc_group'],
31
+ },
32
+ },
33
+ lanes: {
34
+ kn_group: { title: '묶음' },
35
+ kn_doc: { title: '문서' },
36
+ kn_screen: { title: '화면 문서' },
37
+ },
38
+ edgeKinds: {
39
+ // 문서가 말한 것이지 코드가 증명한 게 아니라서 늘 점선이다. 가리킨 파일이 있는지는 docLink에 적는다.
40
+ // 받는 쪽은 어느 kind든 되므로 ends 대신 검증기가 보내는 쪽만 따로 본다
41
+ describes: { text: '설명' },
42
+ indexes: {
43
+ text: '안내',
44
+ ends: { from: ['document'], to: ['document', 'design_screen', 'doc_group'] },
45
+ },
46
+ },
47
+ };
48
+ /** 지식과 아키텍처 그림에서 문서가 있어야 할 자리로 보는 kind. 엔드포인트는 수가 많아 요약 수치에만 넣는다 */
49
+ export const KNOWLEDGE_COVERAGE_KINDS = [
50
+ 'service',
51
+ 'micro_app',
52
+ 'app_module',
53
+ 'feature',
54
+ 'screen',
55
+ ];
56
+ /** 문서 정보(doc)를 가질 수 있는 kind */
57
+ export const KNOWLEDGE_DOC_KINDS = Object.keys(KNOWLEDGE_PACK.nodeKinds);
58
+ //# sourceMappingURL=knowledge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knowledge.js","sourceRoot":"","sources":["../../../../src/architecture/packs/knowledge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGhD;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,EAAE,EAAE,WAAW;IACf,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,wCAAwC;IACrD,QAAQ,EAAE,CAAC,SAAS,CAAC;IACrB,SAAS,EAAE,MAAM;IACjB,QAAQ,EAAE,CAAC,UAAU,EAAE,cAAc,CAAC;IACtC,SAAS,EAAE;QACT,SAAS,EAAE;YACT,GAAG,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,oBAAoB,CAAC;YACpD,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,CAAC;YACP,OAAO,EAAE,CAAC,WAAW,CAAC;SACvB;QACD,QAAQ,EAAE;YACR,GAAG,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,gBAAgB,CAAC;YAChD,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,CAAC;YACP,OAAO,EAAE,CAAC,WAAW,CAAC;SACvB;QACD,aAAa,EAAE;YACb,GAAG,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,iBAAiB,CAAC;YAClD,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,CAAC;YACP,OAAO,EAAE,CAAC,WAAW,CAAC;SACvB;KACF;IACD,KAAK,EAAE;QACL,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;QACzB,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;QACvB,SAAS,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE;KAC9B;IACD,SAAS,EAAE;QACT,+DAA+D;QAC/D,+CAA+C;QAC/C,SAAS,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;QACzB,OAAO,EAAE;YACP,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,EAAE,eAAe,EAAE,WAAW,CAAC,EAAE;SAC7E;KACF;CACgC,CAAC;AAEpC,oEAAoE;AACpE,MAAM,CAAC,MAAM,wBAAwB,GAAsB;IACzD,SAAS;IACT,WAAW;IACX,YAAY;IACZ,SAAS;IACT,QAAQ;CACT,CAAC;AAEF,+BAA+B;AAC/B,MAAM,CAAC,MAAM,mBAAmB,GAAsB,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC"}
@@ -0,0 +1,87 @@
1
+ /**
2
+ * 업무 조직도. 누가 어느 조직에 있고 어떤 시스템과 양식으로 일을 넘기는지 그린다.
3
+ * 순서가 중요한 업무는 flows로 그린다. 이 팩은 그 흐름에 나오는 사람과 시스템이 어디 속하는지 잡는다
4
+ */
5
+ export declare const PROCESS_PACK: {
6
+ readonly id: "process";
7
+ readonly title: "업무 흐름";
8
+ readonly description: "조직, 역할, 업무 시스템, 문서 양식";
9
+ readonly requires: readonly ["generic"];
10
+ readonly drilldown: "tree";
11
+ readonly matchers: readonly ["state-value"];
12
+ readonly nodeKinds: {
13
+ readonly org_unit: {
14
+ readonly lane: "biz_org";
15
+ readonly rank: 0;
16
+ readonly parents: readonly ["org_unit"];
17
+ readonly renderClass: import("./types.js").RenderClass;
18
+ readonly short: string;
19
+ readonly text: string;
20
+ readonly color: import("./types.js").KindColor;
21
+ readonly icon: string;
22
+ };
23
+ readonly role: {
24
+ readonly lane: "biz_org";
25
+ readonly rank: 0;
26
+ readonly parents: readonly ["org_unit"];
27
+ readonly renderClass: import("./types.js").RenderClass;
28
+ readonly short: string;
29
+ readonly text: string;
30
+ readonly color: import("./types.js").KindColor;
31
+ readonly icon: string;
32
+ };
33
+ readonly system: {
34
+ readonly lane: "biz_sys";
35
+ readonly rank: 1;
36
+ readonly renderClass: import("./types.js").RenderClass;
37
+ readonly short: string;
38
+ readonly text: string;
39
+ readonly color: import("./types.js").KindColor;
40
+ readonly icon: string;
41
+ };
42
+ readonly form: {
43
+ readonly lane: "biz_doc";
44
+ readonly rank: 2;
45
+ readonly renderClass: import("./types.js").RenderClass;
46
+ readonly short: string;
47
+ readonly text: string;
48
+ readonly color: import("./types.js").KindColor;
49
+ readonly icon: string;
50
+ };
51
+ };
52
+ readonly lanes: {
53
+ readonly biz_org: {
54
+ readonly title: "사람";
55
+ };
56
+ readonly biz_sys: {
57
+ readonly title: "시스템";
58
+ };
59
+ readonly biz_doc: {
60
+ readonly title: "양식";
61
+ };
62
+ };
63
+ readonly edgeKinds: {
64
+ readonly hands_over: {
65
+ readonly text: "넘김";
66
+ readonly ends: {
67
+ readonly from: readonly ["org_unit", "role"];
68
+ readonly to: readonly ["org_unit", "role"];
69
+ };
70
+ };
71
+ readonly approves: {
72
+ readonly text: "승인";
73
+ readonly ends: {
74
+ readonly from: readonly ["org_unit", "role"];
75
+ readonly to: readonly ["form"];
76
+ };
77
+ };
78
+ readonly records: {
79
+ readonly text: "기록";
80
+ readonly ends: {
81
+ readonly from: readonly ["org_unit", "role", "system"];
82
+ readonly to: readonly ["form", "system"];
83
+ };
84
+ };
85
+ };
86
+ };
87
+ //# sourceMappingURL=process.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../../../src/architecture/packs/process.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6CU,CAAC"}
@@ -0,0 +1,52 @@
1
+ import { classLook } from './render-classes.js';
2
+ /**
3
+ * 업무 조직도. 누가 어느 조직에 있고 어떤 시스템과 양식으로 일을 넘기는지 그린다.
4
+ * 순서가 중요한 업무는 flows로 그린다. 이 팩은 그 흐름에 나오는 사람과 시스템이 어디 속하는지 잡는다
5
+ */
6
+ export const PROCESS_PACK = {
7
+ id: 'process',
8
+ title: '업무 흐름',
9
+ description: '조직, 역할, 업무 시스템, 문서 양식',
10
+ requires: ['generic'],
11
+ drilldown: 'tree',
12
+ matchers: ['state-value'],
13
+ nodeKinds: {
14
+ org_unit: {
15
+ ...classLook('actor', '조직', '팀이나 부서'),
16
+ lane: 'biz_org',
17
+ rank: 0,
18
+ parents: ['org_unit'],
19
+ },
20
+ role: {
21
+ ...classLook('actor', '역할', '업무를 맡는 사람의 자리'),
22
+ lane: 'biz_org',
23
+ rank: 0,
24
+ parents: ['org_unit'],
25
+ },
26
+ // 시스템이 양식 앞에 선다. records는 사람과 시스템에서 양식으로 가서 이 순서여야 선이 뒤로 안 돈다
27
+ system: {
28
+ ...classLook('service', '업무 시스템', '업무를 기록하고 처리하는 시스템'),
29
+ lane: 'biz_sys',
30
+ rank: 1,
31
+ },
32
+ form: {
33
+ ...classLook('document', '양식', '업무에 쓰는 문서 양식'),
34
+ lane: 'biz_doc',
35
+ rank: 2,
36
+ },
37
+ },
38
+ lanes: {
39
+ biz_org: { title: '사람' },
40
+ biz_sys: { title: '시스템' },
41
+ biz_doc: { title: '양식' },
42
+ },
43
+ edgeKinds: {
44
+ hands_over: { text: '넘김', ends: { from: ['org_unit', 'role'], to: ['org_unit', 'role'] } },
45
+ approves: { text: '승인', ends: { from: ['org_unit', 'role'], to: ['form'] } },
46
+ records: {
47
+ text: '기록',
48
+ ends: { from: ['org_unit', 'role', 'system'], to: ['form', 'system'] },
49
+ },
50
+ },
51
+ };
52
+ //# sourceMappingURL=process.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process.js","sourceRoot":"","sources":["../../../../src/architecture/packs/process.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGhD;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,EAAE,EAAE,SAAS;IACb,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,uBAAuB;IACpC,QAAQ,EAAE,CAAC,SAAS,CAAC;IACrB,SAAS,EAAE,MAAM;IACjB,QAAQ,EAAE,CAAC,aAAa,CAAC;IACzB,SAAS,EAAE;QACT,QAAQ,EAAE;YACR,GAAG,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC;YACrC,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,CAAC;YACP,OAAO,EAAE,CAAC,UAAU,CAAC;SACtB;QACD,IAAI,EAAE;YACJ,GAAG,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,eAAe,CAAC;YAC5C,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,CAAC;YACP,OAAO,EAAE,CAAC,UAAU,CAAC;SACtB;QACD,8DAA8D;QAC9D,MAAM,EAAE;YACN,GAAG,SAAS,CAAC,SAAS,EAAE,QAAQ,EAAE,mBAAmB,CAAC;YACtD,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,CAAC;SACR;QACD,IAAI,EAAE;YACJ,GAAG,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,cAAc,CAAC;YAC9C,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,CAAC;SACR;KACF;IACD,KAAK,EAAE;QACL,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;QACxB,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;QACzB,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;KACzB;IACD,SAAS,EAAE;QACT,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,EAAE;QAC1F,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE;QAC5E,OAAO,EAAE;YACP,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE;SACvE;KACF;CACgC,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { KindLook, RenderClass } from './types.js';
2
+ /**
3
+ * 렌더 분류마다 기본 모양. 범용 component가 이 모양을 그대로 받는다.
4
+ * 새 팩 kind는 classLook으로 여기 색과 아이콘을 빌리고 칩 글자만 바꿔 쓴다
5
+ */
6
+ export declare const RENDER_CLASS_LOOKS: Readonly<Record<RenderClass, KindLook>>;
7
+ /** 분류의 색과 아이콘을 빌리고 칩 글자와 설명만 팩 것으로 바꾼다 */
8
+ export declare function classLook(renderClass: RenderClass, short: string, text: string): KindLook;
9
+ /** component 노드의 표시 종류 키. CSS 클래스와 아이콘 id에 그대로 들어간다 */
10
+ export declare function componentDisplayKind(renderClass: RenderClass): `cx_${RenderClass}`;
11
+ //# sourceMappingURL=render-classes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render-classes.d.ts","sourceRoot":"","sources":["../../../../src/architecture/packs/render-classes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAExD;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,CA8EtE,CAAC;AAEF,0CAA0C;AAC1C,wBAAgB,SAAS,CAAC,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,CAEzF;AAED,uDAAuD;AACvD,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,WAAW,EAAE,CAElF"}