likec4 1.56.0 → 1.58.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 (207) hide show
  1. package/__app__/codegen/react.mjs +7 -8
  2. package/__app__/codegen/webcomponent.mjs +77 -736
  3. package/__app__/src/aichat/index.mjs +8 -0
  4. package/__app__/src/chunks/AIChat.mjs +959 -0
  5. package/__app__/src/chunks/DiagramActorProvider.mjs +7638 -0
  6. package/__app__/src/chunks/LikeC4Styles.mjs +1866 -0
  7. package/__app__/src/chunks/Markdown.mjs +146 -0
  8. package/__app__/src/chunks/NavigationPanel.mjs +61 -0
  9. package/__app__/src/chunks/ProjectsOverview.mjs +540 -0
  10. package/__app__/src/chunks/adhoc-editor.mjs +3386 -0
  11. package/__app__/src/chunks/es.mjs +439 -0
  12. package/__app__/src/chunks/hooks.mjs +145 -0
  13. package/__app__/src/chunks/libs/@dagrejs/dagre.mjs +1894 -0
  14. package/__app__/src/chunks/libs/@floating-ui.mjs +2218 -0
  15. package/__app__/src/chunks/libs/@mantine.mjs +12070 -0
  16. package/__app__/src/chunks/libs/@tabler/icons-react.mjs +252 -0
  17. package/__app__/src/chunks/libs/@tanstack-ai.mjs +1768 -0
  18. package/__app__/src/chunks/libs/@tanstack.mjs +2718 -0
  19. package/__app__/src/chunks/libs/@xstate/react.mjs +1982 -0
  20. package/__app__/src/chunks/libs/@xyflow/react.mjs +5256 -0
  21. package/__app__/src/chunks/libs/bezier-js.mjs +1003 -0
  22. package/__app__/src/chunks/libs/d3.mjs +2842 -0
  23. package/__app__/src/chunks/libs/fast-equals.mjs +268 -0
  24. package/__app__/src/chunks/libs/framer.mjs +5872 -0
  25. package/__app__/src/chunks/libs/remeda.mjs +642 -0
  26. package/__app__/src/chunks/libs/zod.mjs +3170 -0
  27. package/__app__/src/chunks/rolldown-runtime.mjs +23 -0
  28. package/__app__/src/chunks/styled-system.mjs +1040 -0
  29. package/__app__/src/fonts.css +1 -1
  30. package/__app__/src/main.mjs +14847 -1
  31. package/__app__/src/style.css +1 -1
  32. package/config/schema.json +14 -41
  33. package/dist/chunks/enableServer.mjs +1 -0
  34. package/dist/chunks/filenames.mjs +2 -2
  35. package/dist/chunks/index2.d.mts +2057 -722
  36. package/dist/chunks/libs/@chevrotain/gast.mjs +1 -1
  37. package/dist/chunks/libs/@logtape/logtape.mjs +4 -3
  38. package/dist/chunks/libs/@ts-graphviz/ast.mjs +3 -0
  39. package/dist/chunks/libs/@ts-graphviz/common.d.mts +9 -0
  40. package/dist/chunks/libs/@ts-graphviz/core.mjs +1 -0
  41. package/dist/chunks/libs/chevrotain-allstar.mjs +2 -2
  42. package/dist/chunks/libs/chevrotain.mjs +26 -26
  43. package/dist/chunks/libs/langium.d.mts +5 -5
  44. package/dist/chunks/libs/langium.mjs +10 -10
  45. package/dist/chunks/libs/merge-error-cause.mjs +1 -1
  46. package/dist/chunks/libs/pako.mjs +3 -1
  47. package/dist/chunks/libs/pretty-ms.mjs +1 -1
  48. package/dist/chunks/libs/remeda.mjs +1 -1
  49. package/dist/chunks/libs/ufo.mjs +1 -1
  50. package/dist/chunks/libs/unstorage.mjs +1 -1
  51. package/dist/chunks/libs/which.mjs +1 -1
  52. package/dist/chunks/libs/zod.d.mts +60 -25
  53. package/dist/chunks/libs/zod.mjs +65 -0
  54. package/dist/chunks/node.mjs +84 -56
  55. package/dist/chunks/sequence-view.mjs +1 -1
  56. package/dist/chunks/vite-plugin.mjs +593 -0
  57. package/dist/cli/index.mjs +184 -141
  58. package/dist/index.d.mts +2 -131
  59. package/dist/index.mjs +1 -1
  60. package/dist/model/index.d.mts +2 -2
  61. package/dist/vite-plugin/index.d.mts +53 -2
  62. package/dist/vite-plugin/index.mjs +1 -1
  63. package/dist/vite-plugin/internal/index.d.mts +327 -4
  64. package/dist/vite-plugin/internal/index.mjs +946 -1
  65. package/package.json +85 -72
  66. package/react/index.d.mts +174 -73
  67. package/react/index.mjs +42468 -38926
  68. package/vite-plugin-modules.d.ts +4 -0
  69. package/__app__/chunks/ColorSchemeToggle.mjs +0 -1
  70. package/__app__/chunks/DiagramActorProvider.mjs +0 -10
  71. package/__app__/chunks/Fallback.mjs +0 -1
  72. package/__app__/chunks/Header.mjs +0 -13
  73. package/__app__/chunks/IconRenderer.mjs +0 -1
  74. package/__app__/chunks/LikeC4Diagram.mjs +0 -19
  75. package/__app__/chunks/LikeC4ModelContext.mjs +0 -1
  76. package/__app__/chunks/LikeC4ModelContext2.mjs +0 -1
  77. package/__app__/chunks/LikeC4Styles.mjs +0 -48
  78. package/__app__/chunks/NavigationPanel.mjs +0 -1
  79. package/__app__/chunks/StaticLikeC4Diagram.mjs +0 -1
  80. package/__app__/chunks/ViewReact.mjs +0 -1
  81. package/__app__/chunks/__root.mjs +0 -1
  82. package/__app__/chunks/adhoc-editor.mjs +0 -1
  83. package/__app__/chunks/hooks.mjs +0 -1
  84. package/__app__/chunks/libs/@dagrejs/dagre.mjs +0 -1
  85. package/__app__/chunks/libs/@floating-ui/core.mjs +0 -1
  86. package/__app__/chunks/libs/@floating-ui/dom.mjs +0 -1
  87. package/__app__/chunks/libs/@floating-ui/react.mjs +0 -1
  88. package/__app__/chunks/libs/@mantine/core.mjs +0 -41
  89. package/__app__/chunks/libs/@mantine/hooks.mjs +0 -1
  90. package/__app__/chunks/libs/@nanostores/react.mjs +0 -1
  91. package/__app__/chunks/libs/@react-hookz/web.mjs +0 -1
  92. package/__app__/chunks/libs/@tabler/icons-react.mjs +0 -15
  93. package/__app__/chunks/libs/@tanstack/history.mjs +0 -1
  94. package/__app__/chunks/libs/@tanstack/react-router.mjs +0 -3
  95. package/__app__/chunks/libs/@tanstack/router-core.mjs +0 -1
  96. package/__app__/chunks/libs/@xstate/react.mjs +0 -1
  97. package/__app__/chunks/libs/@xstate/store.mjs +0 -1
  98. package/__app__/chunks/libs/@xyflow/react.mjs +0 -7
  99. package/__app__/chunks/libs/@zag-js/anatomy.mjs +0 -1
  100. package/__app__/chunks/libs/@zag-js/collection.mjs +0 -1
  101. package/__app__/chunks/libs/@zag-js/core.mjs +0 -1
  102. package/__app__/chunks/libs/@zag-js/react.mjs +0 -1
  103. package/__app__/chunks/libs/@zag-js/tree-view.mjs +0 -1
  104. package/__app__/chunks/libs/bezier-js.mjs +0 -1
  105. package/__app__/chunks/libs/d3-path.mjs +0 -1
  106. package/__app__/chunks/libs/d3-shape.mjs +0 -1
  107. package/__app__/chunks/libs/fast-equals.mjs +0 -1
  108. package/__app__/chunks/libs/framer-motion.mjs +0 -9
  109. package/__app__/chunks/libs/html-to-image.mjs +0 -2
  110. package/__app__/chunks/libs/motion-dom.mjs +0 -1
  111. package/__app__/chunks/libs/motion.mjs +0 -1
  112. package/__app__/chunks/libs/nanostores.mjs +0 -1
  113. package/__app__/chunks/libs/react-error-boundary.mjs +0 -1
  114. package/__app__/chunks/libs/react-resizable-panels.mjs +0 -1
  115. package/__app__/chunks/libs/remeda.mjs +0 -1
  116. package/__app__/chunks/libs/xstate.mjs +0 -1
  117. package/__app__/chunks/libs/zod.mjs +0 -39
  118. package/__app__/chunks/rolldown-runtime.mjs +0 -1
  119. package/__app__/chunks/safeCtx.mjs +0 -1
  120. package/__app__/chunks/searchParams.mjs +0 -1
  121. package/__app__/chunks/single-index.mjs +0 -1
  122. package/__app__/chunks/styled-system.mjs +0 -1
  123. package/__app__/chunks/styles.css.mjs +0 -1
  124. package/__app__/chunks/useLikeC4Project.mjs +0 -1
  125. package/__app__/chunks/useUpdateEffect.mjs +0 -1
  126. package/__app__/src/pages/AdHocViewEditor.mjs +0 -1
  127. package/__app__/src/pages/EmbedPage.mjs +0 -1
  128. package/__app__/src/pages/ExportPage.mjs +0 -1
  129. package/__app__/src/pages/ProjectsOverview.mjs +0 -1
  130. package/__app__/src/pages/ViewAsD2.mjs +0 -1
  131. package/__app__/src/pages/ViewAsDot.mjs +0 -1
  132. package/__app__/src/pages/ViewAsMmd.mjs +0 -1
  133. package/__app__/src/pages/ViewAsPuml.mjs +0 -1
  134. package/__app__/src/pages/ViewEditor.mjs +0 -1
  135. package/__app__/src/pages/ViewReact.mjs +0 -1
  136. package/__app__/src/routeTree.gen.mjs +0 -1
  137. package/__app__/src/routes/__root.mjs +0 -1
  138. package/__app__/src/routes/_single/adhoc.mjs +0 -1
  139. package/__app__/src/routes/_single/embed._viewId.mjs +0 -1
  140. package/__app__/src/routes/_single/export._viewId.mjs +0 -1
  141. package/__app__/src/routes/_single/route.mjs +0 -1
  142. package/__app__/src/routes/_single/single-index.mjs +0 -1
  143. package/__app__/src/routes/_single/view._viewId.d2.mjs +0 -1
  144. package/__app__/src/routes/_single/view._viewId.dot.mjs +0 -1
  145. package/__app__/src/routes/_single/view._viewId.index.mjs +0 -1
  146. package/__app__/src/routes/_single/view._viewId.mjs +0 -1
  147. package/__app__/src/routes/_single/view._viewId.mmd.mjs +0 -1
  148. package/__app__/src/routes/_single/view._viewId.puml.mjs +0 -1
  149. package/__app__/src/routes/_single/webcomponent._.mjs +0 -33
  150. package/__app__/src/routes/index.mjs +0 -1
  151. package/__app__/src/routes/project._projectId/-components.mjs +0 -1
  152. package/__app__/src/routes/project._projectId/adhoc.mjs +0 -1
  153. package/__app__/src/routes/project._projectId/embed._viewId.mjs +0 -1
  154. package/__app__/src/routes/project._projectId/export._viewId.mjs +0 -1
  155. package/__app__/src/routes/project._projectId/index.mjs +0 -1
  156. package/__app__/src/routes/project._projectId/route.mjs +0 -1
  157. package/__app__/src/routes/project._projectId/view._viewId.d2.mjs +0 -1
  158. package/__app__/src/routes/project._projectId/view._viewId.dot.mjs +0 -1
  159. package/__app__/src/routes/project._projectId/view._viewId.index.mjs +0 -1
  160. package/__app__/src/routes/project._projectId/view._viewId.mjs +0 -1
  161. package/__app__/src/routes/project._projectId/view._viewId.mmd.mjs +0 -1
  162. package/__app__/src/routes/project._projectId/view._viewId.puml.mjs +0 -1
  163. package/__app__/src/routes/projects.mjs +0 -1
  164. package/dist/chunks/libs/@chevrotain/utils.mjs +0 -1
  165. package/dist/chunks/libs/@hono/mcp.mjs +0 -45
  166. package/dist/chunks/libs/@hono/node-server.mjs +0 -1
  167. package/dist/chunks/libs/@logtape/logtape.d.mts +0 -1023
  168. package/dist/chunks/libs/@modelcontextprotocol/sdk.mjs +0 -12
  169. package/dist/chunks/libs/ajv.mjs +0 -1
  170. package/dist/chunks/libs/ansi-align.mjs +0 -2
  171. package/dist/chunks/libs/ansi-regex.mjs +0 -1
  172. package/dist/chunks/libs/ansi-styles.mjs +0 -1
  173. package/dist/chunks/libs/atomically.mjs +0 -1
  174. package/dist/chunks/libs/boxen.mjs +0 -22
  175. package/dist/chunks/libs/conf.mjs +0 -1
  176. package/dist/chunks/libs/defu.mjs +0 -1
  177. package/dist/chunks/libs/destr.mjs +0 -1
  178. package/dist/chunks/libs/find-up-simple.mjs +0 -1
  179. package/dist/chunks/libs/get-port.mjs +0 -1
  180. package/dist/chunks/libs/hono.mjs +0 -1
  181. package/dist/chunks/libs/is-docker.mjs +0 -1
  182. package/dist/chunks/libs/is-error-instance.mjs +0 -1
  183. package/dist/chunks/libs/is-inside-container.mjs +0 -1
  184. package/dist/chunks/libs/is-plain-obj.mjs +0 -1
  185. package/dist/chunks/libs/isexe.mjs +0 -1
  186. package/dist/chunks/libs/ky.mjs +0 -3
  187. package/dist/chunks/libs/p-debounce.mjs +0 -1
  188. package/dist/chunks/libs/p-limit.mjs +0 -1
  189. package/dist/chunks/libs/p-timeout.mjs +0 -1
  190. package/dist/chunks/libs/package-up.mjs +0 -1
  191. package/dist/chunks/libs/parse-ms.mjs +0 -1
  192. package/dist/chunks/libs/safe-stringify.mjs +0 -1
  193. package/dist/chunks/libs/strip-indent.mjs +0 -1
  194. package/dist/chunks/libs/tinyrainbow.mjs +0 -1
  195. package/dist/chunks/libs/ts-graphviz.d.mts +0 -12
  196. package/dist/chunks/libs/ts-graphviz.mjs +0 -4
  197. package/dist/chunks/libs/vscode-languageserver.mjs +0 -1
  198. package/dist/chunks/libs/word-wrap.mjs +0 -12
  199. package/dist/chunks/plugin.mjs +0 -400
  200. package/dist/vite-plugin/internal/chunks/libs/@nanostores/react.d.mts +0 -269
  201. package/dist/vite-plugin/internal/chunks/libs/@nanostores/react.mjs +0 -1
  202. package/dist/vite-plugin/internal/chunks/libs/birpc.mjs +0 -1
  203. package/dist/vite-plugin/internal/chunks/libs/fast-equals.mjs +0 -1
  204. package/dist/vite-plugin/internal/chunks/libs/nanostores.d.mts +0 -59
  205. package/dist/vite-plugin/internal/chunks/libs/nanostores.mjs +0 -1
  206. package/dist/vite-plugin/internal/chunks/libs/remeda.mjs +0 -1
  207. package/dist/vite-plugin/internal/chunks/rolldown-runtime.mjs +0 -1
package/dist/index.d.mts CHANGED
@@ -1,129 +1,7 @@
1
1
  import { i as __name } from "./chunks/rolldown-runtime.mjs";
2
- import { t as Logger } from "./chunks/libs/@logtape/logtape.mjs";
3
- import { a as LikeC4Views, i as LikeC4SharedServices, n as LikeC4ModelBuilder, o as ProjectsManager, r as LikeC4Services, t as LikeC4LanguageServices } from "./chunks/index2.mjs";
4
- import { LayoutedView, NonEmptyArray, ProjectId } from "@likec4/core/types";
5
- import { LikeC4Model } from "@likec4/core/model";
6
- export * from "@likec4/core/types";
2
+ import { t as LikeC4$1 } from "./chunks/index2.mjs";
3
+ export type * from "@likec4/core/types";
7
4
 
8
- //#region ../language-services/dist/_chunks/options.d.mts
9
- //#region src/common/LikeC4.d.ts
10
- interface LikeC4Langium {
11
- shared: LikeC4SharedServices;
12
- likec4: LikeC4Services;
13
- }
14
- declare class LikeC4$1 {
15
- protected readonly langium: LikeC4Langium;
16
- protected readonly logger: Logger;
17
- constructor(langium: LikeC4Langium, logger?: Logger);
18
- /**
19
- * File system path to the workspace root
20
- */
21
- get workspace(): any;
22
- /**
23
- * URI of the workspace root
24
- */
25
- get workspaceURI(): any;
26
- /**
27
- * URL of the workspace root
28
- */
29
- get workspaceURL(): any;
30
- get languageServices(): LikeC4LanguageServices;
31
- get projectsManager(): ProjectsManager;
32
- get viewsService(): LikeC4Views;
33
- get modelBuilder(): LikeC4ModelBuilder;
34
- private get LangiumDocuments();
35
- ensureSingleProject(): void;
36
- /**
37
- * Diagram is a computed view, layouted using Graphviz
38
- * If diagram has manual layout, it will be used.
39
- * Used in React components
40
- */
41
- diagrams(project?: string | undefined): Promise<LayoutedView[]>;
42
- /**
43
- * Builds LikeC4Model from all documents
44
- * Only computes view predicates {@link ComputedView} - i.e. no layout
45
- * Not ready for rendering, but enough to traverse
46
- *
47
- * Sync version does not read manual layouts
48
- * Use {@link computedModel} for a version that includes manual layouts
49
- */
50
- syncComputedModel(project?: string | undefined): LikeC4Model.Computed;
51
- /**
52
- * Builds LikeC4Model from all documents
53
- * Only computes view predicates {@link ComputedView} - i.e. no layout
54
- * Not ready for rendering, but enough to traverse
55
- */
56
- computedModel(project?: string | undefined): Promise<LikeC4Model.Computed>;
57
- projects(): NonEmptyArray<ProjectId>;
58
- /**
59
- * Same as {@link computedModel()}, but also applies layout
60
- * Ready for rendering
61
- */
62
- layoutedModel(project?: string | undefined): Promise<LikeC4Model.Layouted>;
63
- getErrors(): Array<{
64
- message: string;
65
- line: number;
66
- range: {
67
- start: {
68
- line: number;
69
- character: number;
70
- };
71
- end: {
72
- line: number;
73
- character: number;
74
- };
75
- };
76
- sourceFsPath: string;
77
- }>;
78
- hasErrors(): boolean;
79
- /**
80
- * @returns true if there are errors
81
- */
82
- printErrors(): boolean;
83
- /**
84
- * Returns the number of parsed documents in the workspace
85
- */
86
- documentCount(): number;
87
- /**
88
- * @returns a function to dispose the listener
89
- */
90
- onModelUpdate(listener: () => void): () => void;
91
- /**
92
- * Formats documents and returns a map of document URI → formatted source text.
93
- *
94
- * Target selection uses union semantics:
95
- * - Omit both `projects` and `documentUris` to format **all** documents.
96
- * - Provide `projects` to include all documents from those projects.
97
- * - Provide `documentUris` to include specific documents.
98
- * - Provide both to format the **union** (deduplicated).
99
- */
100
- format(options?: LikeC4FormatOptions): Promise<Map<string, string>>;
101
- dispose(): Promise<void>;
102
- [Symbol.asyncDispose](): Promise<void>;
103
- }
104
- /**
105
- * Options for {@link LikeC4.format}.
106
- *
107
- * Same as {@link FormatOptions} but uses project name strings instead of {@link ProjectId}.
108
- */
109
- interface LikeC4FormatOptions {
110
- /** Include all documents from these projects (by name). */
111
- projects?: ReadonlyArray<string>;
112
- /** Include these specific documents (by URI string). */
113
- documentUris?: ReadonlyArray<string>;
114
- /** Size of a tab in spaces (default: 2). */
115
- tabSize?: number;
116
- /** Prefer spaces over tabs (default: true). */
117
- insertSpaces?: boolean;
118
- /** Trim trailing whitespace on a line. */
119
- trimTrailingWhitespace?: boolean;
120
- /** Insert a newline character at the end of the file if one does not exist. */
121
- insertFinalNewline?: boolean;
122
- /** Trim all newlines after the final newline at the end of the file. */
123
- trimFinalNewlines?: boolean;
124
- } //#endregion
125
- //#region src/common/options.d.ts
126
- //#endregion
127
5
  //#region src/LikeC4.d.ts
128
6
  type LikeC4Options = {
129
7
  /**
@@ -150,13 +28,6 @@ type LikeC4Options = {
150
28
  * @default 'wasm'
151
29
  */
152
30
  graphviz?: 'wasm' | 'binary';
153
- /**
154
- * Whether to start MCP server
155
- * @default false
156
- */
157
- mcp?: false | 'stdio' | {
158
- port: number;
159
- };
160
31
  /**
161
32
  * Whether to watch for changes in the workspace.
162
33
  * @default false
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- import{i as e}from"./chunks/rolldown-runtime.mjs";import{n as t,t as n}from"./chunks/node.mjs";import{t as r}from"./chunks/libs/defu.mjs";import{exact as i}from"@likec4/core";let a;(function(a){async function fromSource$1(e,t){let{logger:a,watch:o,...s}=t??{};return n(e,r(i({...s,configureLogger:a}),{configureLogger:`console`}))}e(fromSource$1,`fromSource`),a.fromSource=fromSource$1;async function fromWorkspace$1(e=``,n){let{logger:a,watch:o,...s}=n??{};return t(e,r(i({...s,configureLogger:a}),{configureLogger:`console`}))}e(fromWorkspace$1,`fromWorkspace`),a.fromWorkspace=fromWorkspace$1})(a||={});export{a as LikeC4};
1
+ import{i as e}from"./chunks/rolldown-runtime.mjs";import{l as t,n,t as r}from"./chunks/node.mjs";import{exact as i}from"@likec4/core";let a;(function(a){async function fromSource$1(e,n){let{logger:a,watch:o,...s}=n??{};return r(e,t(i({...s,configureLogger:a}),{configureLogger:`console`}))}e(fromSource$1,`fromSource`),a.fromSource=fromSource$1;async function fromWorkspace$1(e=``,r){let{logger:a,watch:o,...s}=r??{};return n(e,t(i({...s,configureLogger:a}),{configureLogger:`console`}))}e(fromWorkspace$1,`fromWorkspace`),a.fromWorkspace=fromWorkspace$1})(a||={});export{a as LikeC4};
@@ -1,9 +1,9 @@
1
1
  import { i as __name } from "../chunks/rolldown-runtime.mjs";
2
2
  import * as types from "@likec4/core/types";
3
- import { BBox, LayoutedDynamicView, NodeId, ViewId } from "@likec4/core/types";
3
+ import { BBox, EdgeId, LayoutedDynamicView, NodeId, ViewId } from "@likec4/core/types";
4
4
  import { Connection, ConnectionModel, DeployedInstanceModel, DeploymentConnectionModel, DeploymentElementModel, DeploymentNodeModel, DeploymentRelationEndpoint, DeploymentRelationModel, EdgeModel, ElementModel, LikeC4DeploymentModel, LikeC4Model, LikeC4Model as LikeC4Model$1, LikeC4ViewModel, NodeModel, RelationshipModel, deploymentConnection, differenceConnections, findAscendingConnections, findDeepestNestedConnection, findDescendantConnections, hasSameSource, hasSameSourceTarget, hasSameTarget, isAnyInOut, isDeployedInstanceModel, isDeploymentElementModel, isDeploymentNodeModel, isDeploymentRelationModel, isEdgeModel, isElementModel, isIncoming, isLikeC4ViewModel, isNestedConnection, isNestedElementOfDeployedInstanceModel, isNodeModel, isOutgoing, isRelationModel, mergeConnections, modelConnection, sortConnectionsByBoundaryHierarchy, sortDeepestFirst } from "@likec4/core/model";
5
5
  import { ComputedProjectEdge, ComputedProjectNode, ComputedProjectsView, LayoutedProjectEdge, LayoutedProjectNode, LayoutedProjectsView } from "@likec4/core/compute-view";
6
- export * from "@likec4/core/types";
6
+ export type * from "@likec4/core/types";
7
7
 
8
8
  //#region ../layouts/dist/sequence/index.d.mts
9
9
  //#region src/sequence/_types.d.ts
@@ -1,6 +1,7 @@
1
1
  import { i as __name } from "../chunks/rolldown-runtime.mjs";
2
- import { t as LikeC4LanguageServices } from "../chunks/index2.mjs";
2
+ import { n as LikeC4LanguageServices } from "../chunks/index2.mjs";
3
3
  import { PluginOption } from "vite";
4
+ import { AnyTextAdapter } from "@tanstack/ai";
4
5
 
5
6
  //#region ../vite-plugin/dist/index.d.mts
6
7
  //#region src/virtuals/app-config.d.ts
@@ -27,7 +28,56 @@ interface AppConfig {
27
28
  theme?: 'light' | 'dark' | undefined;
28
29
  } //#endregion
29
30
  //#region src/plugin.d.ts
31
+ interface AIOptions<TAdapter extends AnyTextAdapter = AnyTextAdapter> {
32
+ /**
33
+ * The AI adapter to use
34
+ *
35
+ * @see https://tanstack.com/ai/latest/docs/getting-started/overview#adapters
36
+ * @example
37
+ * ```ts
38
+ * import { openRouterText } from '@tanstack/ai-openrouter'
39
+ *
40
+ * export default defineConfig({
41
+ * plugins: [
42
+ * likec4VitePlugin({
43
+ * ai: {
44
+ * adapter: openRouterText("openai/gpt-5")
45
+ * },
46
+ * }),
47
+ * ],
48
+ * })
49
+ * ```
50
+ */
51
+ adapter: TAdapter;
52
+ /** Model-specific provider options (type comes from adapter) */
53
+ modelOptions?: TAdapter['~types']['providerOptions'];
54
+ maxTokens?: number;
55
+ }
30
56
  type SharedOptions = {
57
+ /**
58
+ * AI configuration, by default enabled with automatic detection based on environment variables.
59
+ * You can also provide explicit configuration.
60
+ * Or set to `disabled` to disable AI.
61
+ *
62
+ * @default 'auto' (automatic detection based on environment variables)
63
+ *
64
+ * @see https://tanstack.com/ai/latest/docs/getting-started/overview#adapters
65
+ * @example
66
+ * ```ts
67
+ * import { openRouterText } from '@tanstack/ai-openrouter'
68
+ *
69
+ * export default defineConfig({
70
+ * plugins: [
71
+ * likec4VitePlugin({
72
+ * ai: {
73
+ * adapter: openRouterText("openai/gpt-5")
74
+ * },
75
+ * }),
76
+ * ],
77
+ * })
78
+ * ```
79
+ */
80
+ ai?: 'disabled' | 'auto' | AIOptions | undefined;
31
81
  /**
32
82
  * Define vite environments where this plugin should be active
33
83
  * By default, the plugin is active in all environments
@@ -89,7 +139,8 @@ type LikeC4VitePluginOptions = SharedOptions & ({
89
139
  declare function LikeC4VitePlugin({
90
140
  environments,
91
141
  appConfig,
92
- ...opts
142
+ ai: _ai,
143
+ ...pluginOpts
93
144
  }: LikeC4VitePluginOptions): PluginOption; //#endregion
94
145
  //#endregion
95
146
  export { LikeC4VitePlugin, type LikeC4VitePluginOptions };
@@ -1 +1 @@
1
- import{t as e}from"../chunks/plugin.mjs";export{e as LikeC4VitePlugin};
1
+ import{t as e}from"../chunks/vite-plugin.mjs";export{e as LikeC4VitePlugin};
@@ -1,13 +1,289 @@
1
- import { t as __name } from "./chunks/rolldown-runtime.mjs";
2
- import { a as map, c as WritableAtom, l as atom, o as Atom, s as ReadableAtom, t as useStore } from "./chunks/libs/@nanostores/react.mjs";
3
- import { n as computed, t as batched } from "./chunks/libs/nanostores.mjs";
4
1
  import { LikeC4Model } from "@likec4/core/model";
2
+ import { DependencyList } from "react";
5
3
  import { LayoutedElementView, LayoutedLikeC4ModelData, LayoutedView, ProjectId, ViewChange, ViewId } from "@likec4/core/types";
6
4
  import { AdhocViewPredicate } from "@likec4/core/compute-view";
7
5
 
8
- //#region ../vite-plugin/dist/internal.d.mts
6
+ //#region ../vite-plugin/dist/internal/index.d.mts
7
+ //#region ../../node_modules/.pnpm/nanostores@1.3.0/node_modules/nanostores/atom/index.d.ts
8
+ type AllKeys<T> = T extends any ? keyof T : never;
9
+ type Primitive = boolean | number | string;
10
+ type ReadonlyIfObject<Value> = Value extends undefined ? Value : Value extends ((...args: any) => any) ? Value : Value extends Primitive ? Value : Value extends object ? Readonly<Value> : Value;
11
+ /**
12
+ * Store object.
13
+ */
14
+ interface ReadableAtom<Value = any> {
15
+ /**
16
+ * Get store value.
17
+ *
18
+ * In contrast with {@link ReadableAtom#value} this value will be always
19
+ * initialized even if store had no listeners.
20
+ *
21
+ * ```js
22
+ * $store.get()
23
+ * ```
24
+ *
25
+ * @returns Store value.
26
+ */
27
+ get(): Value;
28
+ /**
29
+ * Low-level attribute to read store’s initial value.
30
+ */
31
+ readonly init: undefined | Value;
32
+ /**
33
+ * Listeners count.
34
+ */
35
+ readonly lc: number;
36
+ /**
37
+ * Subscribe to store changes.
38
+ *
39
+ * In contrast with {@link Store#subscribe} it do not call listener
40
+ * immediately.
41
+ *
42
+ * @param listener Callback with store value and old value.
43
+ * @returns Function to remove listener.
44
+ */
45
+ listen(listener: (value: ReadonlyIfObject<Value>, oldValue: ReadonlyIfObject<Value>) => void): () => void;
46
+ /**
47
+ * Low-level method to notify listeners about changes in the store.
48
+ *
49
+ * Can cause unexpected behaviour when combined with frontend frameworks
50
+ * that perform equality checks for values, such as React.
51
+ */
52
+ notify(oldValue?: ReadonlyIfObject<Value>): void;
53
+ /**
54
+ * Unbind all listeners.
55
+ */
56
+ off(): void;
57
+ /**
58
+ * Subscribe to store changes and call listener immediately.
59
+ *
60
+ * ```
61
+ * import { $router } from '../store'
62
+ *
63
+ * $router.subscribe(page => {
64
+ * console.log(page)
65
+ * })
66
+ * ```
67
+ *
68
+ * @param listener Callback with store value and old value.
69
+ * @returns Function to remove listener.
70
+ */
71
+ subscribe(listener: (value: ReadonlyIfObject<Value>, oldValue?: ReadonlyIfObject<Value>) => void): () => void;
72
+ /**
73
+ * Low-level method to read store’s value without calling `onStart`.
74
+ *
75
+ * Try to use only {@link ReadableAtom#get}.
76
+ * Without subscribers, value can be undefined.
77
+ */
78
+ readonly value: undefined | Value;
79
+ }
80
+ /**
81
+ * Store with a way to manually change the value.
82
+ */
83
+ interface WritableAtom<Value = any> extends ReadableAtom<Value> {
84
+ /**
85
+ * Change store value.
86
+ *
87
+ * ```js
88
+ * $router.set({ path: location.pathname, page: parse(location.pathname) })
89
+ * ```
90
+ *
91
+ * @param newValue New store value.
92
+ */
93
+ set(newValue: Value): void;
94
+ }
95
+ interface PreinitializedWritableAtom<Value> extends WritableAtom<Value> {
96
+ readonly value: Value;
97
+ }
98
+ type Atom<Value = any> = ReadableAtom<Value> | WritableAtom<Value>;
99
+ /**
100
+ * Create store with atomic value. It could be a string or an object, which you
101
+ * will replace completely.
102
+ *
103
+ * If you want to change keys in the object inside store, use {@link map}.
104
+ *
105
+ * ```js
106
+ * import { atom, onMount } from 'nanostores'
107
+ *
108
+ * // Initial value
109
+ * export const $router = atom({ path: '', page: 'home' })
110
+ *
111
+ * function parse () {
112
+ * $router.set({ path: location.pathname, page: parse(location.pathname) })
113
+ * }
114
+ *
115
+ * // Listen for URL changes on first store’s listener.
116
+ * onMount($router, () => {
117
+ * parse()
118
+ * window.addEventListener('popstate', parse)
119
+ * return () => {
120
+ * window.removeEventListener('popstate', parse)
121
+ * }
122
+ * })
123
+ * ```
124
+ *
125
+ * @param initialValue Initial value of the store.
126
+ * @returns The store object with methods to subscribe.
127
+ */
128
+ declare function atom<Value, StoreExt = object>(...args: undefined extends Value ? [] | [Value] : [Value]): PreinitializedWritableAtom<Value> & StoreExt; //#endregion
129
+ //#region ../../node_modules/.pnpm/nanostores@1.3.0/node_modules/nanostores/map/index.d.ts
130
+ type KeyofBase = keyof any;
131
+ type Get<T, K extends KeyofBase> = Extract<T, { [K1 in K]: any }>[K];
132
+ type HasIndexSignature<T> = string extends keyof T ? true : false;
133
+ type ValueWithUndefinedForIndexSignatures<Value, Key extends keyof Value> = HasIndexSignature<Value> extends true ? undefined | Value[Key] : Value[Key];
134
+ type WritableStore<Value = any> = (Value extends object ? MapStore<Value> : never) | WritableAtom<Value>;
135
+ type Store<Value = any> = ReadableAtom<Value> | WritableStore<Value>;
136
+ type AnyStore<Value = any> = {
137
+ get(): Value;
138
+ readonly value: undefined | Value;
139
+ };
140
+ type StoreValue<SomeStore> = SomeStore extends {
141
+ get(): infer Value;
142
+ } ? Value : any;
143
+ interface MapStore<Value extends object = any> extends WritableAtom<Value> {
144
+ /**
145
+ * Subscribe to store changes.
146
+ *
147
+ * In contrast with {@link Store#subscribe} it do not call listener
148
+ * immediately.
149
+ *
150
+ * @param listener Callback with store value and old value.
151
+ * @param changedKey Key that was changed. Will present only if `setKey`
152
+ * has been used to change a store.
153
+ * @returns Function to remove listener.
154
+ */
155
+ listen(listener: (value: ReadonlyIfObject<Value>, oldValue: ReadonlyIfObject<Value>, changedKey: AllKeys<Value>) => void): () => void;
156
+ /**
157
+ * Low-level method to notify listeners about changes in the store.
158
+ *
159
+ * Can cause unexpected behaviour when combined with frontend frameworks
160
+ * that perform equality checks for values, such as React.
161
+ */
162
+ notify(oldValue?: ReadonlyIfObject<Value>, changedKey?: AllKeys<Value>): void;
163
+ /**
164
+ * Change store value.
165
+ *
166
+ * ```js
167
+ * $settings.set({ theme: 'dark' })
168
+ * ```
169
+ *
170
+ * Operation is atomic, subscribers will be notified once with the new value.
171
+ * `changedKey` will be undefined
172
+ *
173
+ * @param newValue New store value.
174
+ */
175
+ set(newValue: Value): void;
176
+ /**
177
+ * Change key in store value.
178
+ *
179
+ * ```js
180
+ * $settings.setKey('theme', 'dark')
181
+ * ```
182
+ *
183
+ * To delete key set `undefined`.
184
+ *
185
+ * ```js
186
+ * $settings.setKey('theme', undefined)
187
+ * ```
188
+ *
189
+ * @param key The key name.
190
+ * @param value New value.
191
+ */
192
+ setKey<Key extends AllKeys<Value>>(key: Key, value: Get<Value, Key> | ValueWithUndefinedForIndexSignatures<Value, Key>): void;
193
+ /**
194
+ * Subscribe to store changes and call listener immediately.
195
+ *
196
+ * ```
197
+ * import { $router } from '../store'
198
+ *
199
+ * $router.subscribe(page => {
200
+ * console.log(page)
201
+ * })
202
+ * ```
203
+ *
204
+ * @param listener Callback with store value and old value.
205
+ * @param changedKey Key that was changed. Will present only
206
+ * if `setKey` has been used to change a store.
207
+ * @returns Function to remove listener.
208
+ */
209
+ subscribe(listener: (value: ReadonlyIfObject<Value>, oldValue: ReadonlyIfObject<Value> | undefined, changedKey: AllKeys<Value> | undefined) => void): () => void;
210
+ }
211
+ interface PreinitializedMapStore<Value extends object = any> extends MapStore<Value> {
212
+ readonly value: Value;
213
+ }
214
+ /**
215
+ * Create map store. Map store is a store with key-value object
216
+ * as a store value.
217
+ *
218
+ * @param init Initialize store and return store destructor.
219
+ * @returns The store object with methods to subscribe.
220
+ */
221
+ declare function map<Value extends object, StoreExt extends object = object>(value?: Value): PreinitializedMapStore<Value> & StoreExt; //#endregion
222
+ //#region ../../node_modules/.pnpm/nanostores@1.3.0/node_modules/nanostores/task/index.d.ts
223
+ interface Task<Value> extends Promise<Value> {
224
+ t: true;
225
+ } //#endregion
226
+ //#region ../../node_modules/.pnpm/nanostores@1.3.0/node_modules/nanostores/computed/index.d.ts
227
+ type StoreValues<Stores extends AnyStore[]> = { [Index in keyof Stores]: StoreValue<Stores[Index]> };
228
+ interface Computed {
229
+ /**
230
+ * @deprecated Use `@nanostores/async`.
231
+ */
232
+ <Value, OriginStore extends Store>(stores: OriginStore, cb: (value: StoreValue<OriginStore>) => Task<Value>): ReadableAtom<undefined | Value>;
233
+ /**
234
+ * @deprecated Use `@nanostores/async`.
235
+ */
236
+ <Value, OriginStores extends AnyStore[]>(stores: [...OriginStores], cb: (...values: StoreValues<OriginStores>) => Task<Value>): ReadableAtom<undefined | Value>;
237
+ <Value, OriginStore extends Store>(stores: OriginStore, cb: (value: StoreValue<OriginStore>) => Value): ReadableAtom<Value>;
238
+ /**
239
+ * Create derived store, which use generates value from another stores.
240
+ *
241
+ * ```js
242
+ * import { computed } from 'nanostores'
243
+ *
244
+ * import { $users } from './users.js'
245
+ *
246
+ * export const $admins = computed($users, users => {
247
+ * return users.filter(user => user.isAdmin)
248
+ * })
249
+ * ```
250
+ *
251
+ * Use `@nanostores/async` for async function.
252
+ */
253
+ <Value, OriginStores extends AnyStore[]>(stores: [...OriginStores], cb: (...values: StoreValues<OriginStores>) => Task<Value> | Value): ReadableAtom<Value>;
254
+ }
255
+ declare const computed: Computed;
256
+ interface Batched {
257
+ <Value, OriginStore extends Store>(stores: OriginStore, cb: (value: StoreValue<OriginStore>) => Task<Value> | Value): ReadableAtom<Value>;
258
+ /**
259
+ * Create derived store, which use generates value from another stores.
260
+ *
261
+ * ```js
262
+ * import { batched } from 'nanostores'
263
+ *
264
+ * const $sortBy = atom('id')
265
+ * const $category = atom('')
266
+ *
267
+ * export const $link = batched([$sortBy, $category], (sortBy, category) => {
268
+ * return `/api/entities?sortBy=${sortBy}&category=${category}`
269
+ * })
270
+ * ```
271
+ */
272
+ <Value, OriginStores extends AnyStore[]>(stores: [...OriginStores], cb: (...values: StoreValues<OriginStores>) => Task<Value> | Value): ReadableAtom<Value>;
273
+ }
274
+ declare const batched: Batched; //#endregion
9
275
  //#region src/rpc/protocol.d.ts
10
276
  interface LikeC4VitePluginRpc {
277
+ /**
278
+ * Apply semantic layout (if AI is available)
279
+ * See vite-plugin for more details
280
+ *
281
+ * (Available in the dev server)
282
+ */
283
+ applySemanticLayout(payload: {
284
+ projectId: ProjectId;
285
+ viewId: ViewId;
286
+ }): Promise<void>;
11
287
  /**
12
288
  * Send a view change to the server
13
289
  * (Available in the dev server)
@@ -26,6 +302,53 @@ interface LikeC4VitePluginRpc {
26
302
  predicates: AdhocViewPredicate[];
27
303
  }): Promise<LayoutedElementView>;
28
304
  } //#endregion
305
+ //#region ../../node_modules/.pnpm/@nanostores+react@1.1.0_nanostores@1.3.0_react@19.2.7/node_modules/@nanostores/react/index.d.ts
306
+ type StoreKeys<T> = T extends {
307
+ setKey: (k: infer K, v: any) => unknown;
308
+ } ? K : never;
309
+ interface UseStoreOptions<SomeStore> {
310
+ /**
311
+ * @default
312
+ * ```ts
313
+ * [store, options.keys]
314
+ * ```
315
+ */
316
+ deps?: DependencyList;
317
+ /**
318
+ * Will re-render components only on specific key changes.
319
+ */
320
+ keys?: StoreKeys<SomeStore>[];
321
+ /**
322
+ * Enable SSR support. Set `initial` when store's initial value is the same on
323
+ * server and client, or provide a function to return the server store state
324
+ * for advanced cases (per useSyncExternalStore's getServerSnapshot).
325
+ */
326
+ ssr?: (() => StoreValue<SomeStore>) | 'initial' | false;
327
+ }
328
+ /**
329
+ * Subscribe to store changes and get store’s value.
330
+ *
331
+ * Can be user with store builder too.
332
+ *
333
+ * ```js
334
+ * import { useStore } from 'nanostores/react'
335
+ *
336
+ * import { router } from '../store/router'
337
+ *
338
+ * export const Layout = () => {
339
+ * let page = useStore(router)
340
+ * if (page.route === 'home') {
341
+ * return <HomePage />
342
+ * } else {
343
+ * return <Error404 />
344
+ * }
345
+ * }
346
+ * ```
347
+ *
348
+ * @param store Store instance.
349
+ * @returns Store value.
350
+ */
351
+ declare function useStore<SomeStore extends Store>(store: SomeStore, options?: UseStoreOptions<SomeStore>): StoreValue<SomeStore>; //#endregion
29
352
  //#region src/internal.d.ts
30
353
  interface LikeC4VitePluginRpcOptions {
31
354
  /**