@likec4/generators 1.4.0 → 1.29.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 (85) hide show
  1. package/LICENSE +21 -0
  2. package/dist/d2/generate-d2.d.ts +1 -2
  3. package/dist/d2/generate-d2.js +70 -63
  4. package/dist/d2/index.d.ts +0 -1
  5. package/dist/d2/index.js +1 -1
  6. package/dist/index.d.ts +2 -2
  7. package/dist/index.js +6 -5
  8. package/dist/mmd/generate-mmd.d.ts +1 -2
  9. package/dist/mmd/generate-mmd.js +82 -63
  10. package/dist/mmd/index.d.ts +0 -1
  11. package/dist/mmd/index.js +1 -1
  12. package/dist/model/generate-likec4-model.d.ts +2 -0
  13. package/dist/model/generate-likec4-model.js +29 -0
  14. package/dist/model/generate-likec4.d.ts +2 -0
  15. package/dist/model/generate-likec4.js +2 -0
  16. package/dist/react/generate-react-types.d.ts +2 -0
  17. package/dist/react/generate-react-types.js +122 -0
  18. package/dist/react/index.d.ts +1 -2
  19. package/dist/react/index.js +1 -1
  20. package/dist/react-next/generate-react-next.d.ts +9 -7
  21. package/dist/react-next/generate-react-next.js +26 -26
  22. package/dist/react-next/index.d.ts +0 -1
  23. package/dist/react-next/index.js +1 -1
  24. package/dist/views-data-ts/generate-views-data.d.ts +3 -4
  25. package/dist/views-data-ts/generate-views-data.js +64 -54
  26. package/dist/views-data-ts/generateViewId.d.ts +1 -2
  27. package/dist/views-data-ts/generateViewId.js +5 -4
  28. package/dist/views-data-ts/index.d.ts +0 -1
  29. package/dist/views-data-ts/index.js +1 -1
  30. package/package.json +25 -27
  31. package/src/__mocks__/data.ts +463 -0
  32. package/src/d2/__snapshots__/generate-d2.spec.ts.snap +91 -0
  33. package/src/d2/generate-d2.spec.ts +15 -0
  34. package/src/d2/generate-d2.ts +106 -0
  35. package/src/d2/index.ts +1 -0
  36. package/src/index.ts +6 -0
  37. package/src/mmd/__snapshots__/generate-mmd.spec.ts.snap +55 -0
  38. package/src/mmd/generate-mmd.spec.ts +15 -0
  39. package/src/mmd/generate-mmd.ts +110 -0
  40. package/src/mmd/index.ts +1 -0
  41. package/src/model/__snapshots__/likec4-model.snap +990 -0
  42. package/src/model/generate-likec4-model.spec.ts +158 -0
  43. package/src/model/generate-likec4-model.ts +33 -0
  44. package/src/model/generate-likec4.ts +5 -0
  45. package/src/react/generate-react-types.ts +127 -0
  46. package/src/react/index.ts +1 -0
  47. package/src/react-next/generate-react-next.ts +111 -0
  48. package/src/react-next/index.ts +1 -0
  49. package/src/views-data-ts/__snapshots__/generate-views-data.spec.ts.snap +83 -0
  50. package/src/views-data-ts/generate-views-data.spec.ts +15 -0
  51. package/src/views-data-ts/generate-views-data.ts +147 -0
  52. package/src/views-data-ts/generateViewId.ts +9 -0
  53. package/src/views-data-ts/index.ts +1 -0
  54. package/dist/__mocks__/data.d.ts +0 -5
  55. package/dist/__mocks__/data.d.ts.map +0 -1
  56. package/dist/__mocks__/data.js +0 -456
  57. package/dist/d2/generate-d2.d.ts.map +0 -1
  58. package/dist/d2/generate-d2.spec.d.ts +0 -2
  59. package/dist/d2/generate-d2.spec.d.ts.map +0 -1
  60. package/dist/d2/generate-d2.spec.js +0 -12
  61. package/dist/d2/index.d.ts.map +0 -1
  62. package/dist/index.d.ts.map +0 -1
  63. package/dist/mmd/generate-mmd.d.ts.map +0 -1
  64. package/dist/mmd/generate-mmd.spec.d.ts +0 -2
  65. package/dist/mmd/generate-mmd.spec.d.ts.map +0 -1
  66. package/dist/mmd/generate-mmd.spec.js +0 -12
  67. package/dist/mmd/index.d.ts.map +0 -1
  68. package/dist/react/generate-react.d.ts +0 -3
  69. package/dist/react/generate-react.d.ts.map +0 -1
  70. package/dist/react/generate-react.js +0 -97
  71. package/dist/react/generate-react.spec.d.ts +0 -2
  72. package/dist/react/generate-react.spec.d.ts.map +0 -1
  73. package/dist/react/generate-react.spec.js +0 -6
  74. package/dist/react/index.d.ts.map +0 -1
  75. package/dist/react-next/generate-react-next.d.ts.map +0 -1
  76. package/dist/react-next/generate-react-next.spec.d.ts +0 -2
  77. package/dist/react-next/generate-react-next.spec.d.ts.map +0 -1
  78. package/dist/react-next/generate-react-next.spec.js +0 -9
  79. package/dist/react-next/index.d.ts.map +0 -1
  80. package/dist/views-data-ts/generate-views-data.d.ts.map +0 -1
  81. package/dist/views-data-ts/generate-views-data.spec.d.ts +0 -2
  82. package/dist/views-data-ts/generate-views-data.spec.d.ts.map +0 -1
  83. package/dist/views-data-ts/generate-views-data.spec.js +0 -12
  84. package/dist/views-data-ts/generateViewId.d.ts.map +0 -1
  85. package/dist/views-data-ts/index.d.ts.map +0 -1
@@ -1,21 +1,21 @@
1
- import { CompositeGeneratorNode, toString } from 'langium/generate';
2
- import { generateViewsDataDTs, generateViewsDataJs } from '../views-data-ts/generate-views-data';
1
+ import { CompositeGeneratorNode, toString } from "langium/generate";
2
+ import { generateViewsDataDTs, generateViewsDataJs } from "../views-data-ts/generate-views-data.js";
3
3
  export function generateReactNext(views) {
4
- return {
5
- viewsData: {
6
- fileName: 'likec4-views-data',
7
- js: generateViewsDataJs(views),
8
- dts: generateViewsDataDTs(views)
9
- },
10
- components: {
11
- fileName: 'likec4-components',
12
- ...generateComponents()
13
- },
14
- index: generateIndex()
15
- };
4
+ return {
5
+ viewsData: {
6
+ fileName: "likec4-views-data",
7
+ js: generateViewsDataJs(views),
8
+ dts: generateViewsDataDTs(views)
9
+ },
10
+ components: {
11
+ fileName: "likec4-components",
12
+ ...generateComponents()
13
+ },
14
+ index: generateIndex()
15
+ };
16
16
  }
17
17
  function generateComponents() {
18
- const js = new CompositeGeneratorNode().appendTemplate `
18
+ const js = new CompositeGeneratorNode().appendTemplate`
19
19
  /******************************************************************************
20
20
  * This file was generated
21
21
  * DO NOT EDIT MANUALLY!
@@ -37,7 +37,7 @@ function generateComponents() {
37
37
  }
38
38
  /* prettier-ignore-end */
39
39
  `;
40
- const dts = new CompositeGeneratorNode().appendTemplate `
40
+ const dts = new CompositeGeneratorNode().appendTemplate`
41
41
  /// <reference types="react" />
42
42
  /******************************************************************************
43
43
  * This file was generated
@@ -62,13 +62,13 @@ function generateComponents() {
62
62
  export declare function EmbeddedLikeC4View({ viewId, ...props }: EmbeddedLikeC4ViewProps): JSX.Element;
63
63
  /* prettier-ignore-end */
64
64
  `;
65
- return {
66
- js: toString(js),
67
- dts: toString(dts)
68
- };
65
+ return {
66
+ js: toString(js),
67
+ dts: toString(dts)
68
+ };
69
69
  }
70
70
  function generateIndex() {
71
- const js = new CompositeGeneratorNode().appendTemplate `
71
+ const js = new CompositeGeneratorNode().appendTemplate`
72
72
  /* prettier-ignore-start */
73
73
  /* eslint-disable */
74
74
 
@@ -87,7 +87,7 @@ function generateIndex() {
87
87
 
88
88
  /* prettier-ignore-end */
89
89
  `;
90
- const dts = new CompositeGeneratorNode().appendTemplate `
90
+ const dts = new CompositeGeneratorNode().appendTemplate`
91
91
  /* prettier-ignore-start */
92
92
  /* eslint-disable */
93
93
 
@@ -95,8 +95,8 @@ function generateIndex() {
95
95
 
96
96
  /* prettier-ignore-end */
97
97
  `;
98
- return {
99
- js: toString(js),
100
- dts: toString(dts)
101
- };
98
+ return {
99
+ js: toString(js),
100
+ dts: toString(dts)
101
+ };
102
102
  }
@@ -1,2 +1 @@
1
1
  export { generateReactNext as default } from './generate-react-next';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- export { generateReactNext as default } from './generate-react-next';
1
+ export { generateReactNext as default } from "./generate-react-next.js";
@@ -1,5 +1,4 @@
1
1
  import type { DiagramView } from '@likec4/core';
2
- export declare function generateViewsDataJs(diagrams: Iterable<DiagramView>): string;
3
- export declare function generateViewsDataTs(diagrams: Iterable<DiagramView>): string;
4
- export declare function generateViewsDataDTs(diagrams: Iterable<DiagramView>): string;
5
- //# sourceMappingURL=generate-views-data.d.ts.map
2
+ export declare function generateViewsDataJs(diagrams: Iterable<DiagramView>): any;
3
+ export declare function generateViewsDataTs(diagrams: Iterable<DiagramView>): any;
4
+ export declare function generateViewsDataDTs(diagrams: Iterable<DiagramView>): any;
@@ -1,10 +1,10 @@
1
- import JSON5 from 'json5';
2
- import { CompositeGeneratorNode, expandToNode, joinToNode, NL, toString } from 'langium/generate';
3
- import { generateViewId } from './generateViewId';
1
+ import JSON5 from "json5";
2
+ import { CompositeGeneratorNode, expandToNode, joinToNode, NL, toString } from "langium/generate";
3
+ import { generateViewId } from "./generateViewId.js";
4
4
  export function generateViewsDataJs(diagrams) {
5
- const views = Array.from(diagrams);
6
- const out = new CompositeGeneratorNode();
7
- out.appendTemplate `
5
+ const views = Array.from(diagrams);
6
+ const out = new CompositeGeneratorNode();
7
+ out.appendTemplate`
8
8
  /******************************************************************************
9
9
  * This file was generated
10
10
  * DO NOT EDIT MANUALLY!
@@ -13,23 +13,27 @@ export function generateViewsDataJs(diagrams) {
13
13
  /* eslint-disable */
14
14
 
15
15
  `.append(NL, NL);
16
- if (views.length == 0) {
17
- out.append('export const LikeC4Views = {}', NL);
18
- return toString(out);
19
- }
20
- out.appendTemplate `
16
+ if (views.length == 0) {
17
+ out.append("export const LikeC4Views = {}", NL);
18
+ return toString(out);
19
+ }
20
+ out.appendTemplate`
21
21
  export const LikeC4Views = {
22
- `
23
- .indent({
24
- indentation: 2,
25
- indentedChildren(indented) {
26
- indented.appendNewLineIf(views.length > 1).append(joinToNode(views, view => expandToNode `${JSON5.stringify(view.id)}: ${JSON5.stringify(view)}`, {
27
- separator: ',',
28
- appendNewLineIfNotEmpty: true
29
- }));
30
- }
31
- })
32
- .append('}', NL, NL).appendTemplate `
22
+ `.indent({
23
+ indentation: 2,
24
+ indentedChildren(indented) {
25
+ indented.appendNewLineIf(views.length > 1).append(
26
+ joinToNode(
27
+ views,
28
+ (view) => expandToNode`${JSON5.stringify(view.id)}: ${JSON5.stringify(view)}`,
29
+ {
30
+ separator: ",",
31
+ appendNewLineIfNotEmpty: true
32
+ }
33
+ )
34
+ );
35
+ }
36
+ }).append("}", NL, NL).appendTemplate`
33
37
 
34
38
  export function isLikeC4ViewId(value) {
35
39
  return (
@@ -41,12 +45,12 @@ export function generateViewsDataJs(diagrams) {
41
45
 
42
46
  /* prettier-ignore-end */
43
47
  `.append(NL);
44
- return toString(out);
48
+ return toString(out);
45
49
  }
46
50
  export function generateViewsDataTs(diagrams) {
47
- const views = Array.from(diagrams);
48
- const out = new CompositeGeneratorNode();
49
- out.appendTemplate `
51
+ const views = Array.from(diagrams);
52
+ const out = new CompositeGeneratorNode();
53
+ out.appendTemplate`
50
54
  /******************************************************************************
51
55
  * This file was generated
52
56
  * DO NOT EDIT MANUALLY!
@@ -56,26 +60,32 @@ export function generateViewsDataTs(diagrams) {
56
60
 
57
61
  // @ts-nocheck
58
62
 
59
- import type { DiagramView } from '@likec4/core'
63
+ import type { DiagramView } from 'likec4'
60
64
  `.append(NL, NL);
61
- if (views.length === 0) {
62
- out.append('export {}', NL);
63
- return toString(out);
64
- }
65
- out.appendTemplate `
65
+ if (views.length === 0) {
66
+ out.append("export {}", NL);
67
+ return toString(out);
68
+ }
69
+ out.appendTemplate`
66
70
  export type LikeC4ViewId = ${generateViewId(views)};
67
71
  export const LikeC4Views = {
68
- `
69
- .indent({
70
- indentation: 2,
71
- indentedChildren(indented) {
72
- indented.appendNewLineIf(views.length > 1).append(joinToNode(views, view => expandToNode `${JSON5.stringify(view.id)}: (${JSON5.stringify(view)} as unknown) as DiagramView`, {
73
- separator: ',',
74
- appendNewLineIfNotEmpty: true
75
- }));
76
- }
77
- })
78
- .append('} as const satisfies Record<LikeC4ViewId, DiagramView>', NL, NL).appendTemplate `
72
+ `.indent({
73
+ indentation: 2,
74
+ indentedChildren(indented) {
75
+ indented.appendNewLineIf(views.length > 1).append(
76
+ joinToNode(
77
+ views,
78
+ (view) => expandToNode`${JSON5.stringify(view.id)}: (${JSON5.stringify(
79
+ view
80
+ )} as unknown) as DiagramView`,
81
+ {
82
+ separator: ",",
83
+ appendNewLineIfNotEmpty: true
84
+ }
85
+ )
86
+ );
87
+ }
88
+ }).append("} as const satisfies Record<LikeC4ViewId, DiagramView>", NL, NL).appendTemplate`
79
89
  export type LikeC4Views = typeof LikeC4Views
80
90
 
81
91
  export function isLikeC4ViewId(value: unknown): value is LikeC4ViewId {
@@ -88,12 +98,12 @@ export function generateViewsDataTs(diagrams) {
88
98
 
89
99
  /* prettier-ignore-end */
90
100
  `.append(NL);
91
- return toString(out);
101
+ return toString(out);
92
102
  }
93
103
  export function generateViewsDataDTs(diagrams) {
94
- const views = Array.from(diagrams);
95
- const out = new CompositeGeneratorNode();
96
- out.appendTemplate `
104
+ const views = Array.from(diagrams);
105
+ const out = new CompositeGeneratorNode();
106
+ out.appendTemplate`
97
107
  /******************************************************************************
98
108
  * This file was generated
99
109
  * DO NOT EDIT MANUALLY!
@@ -101,13 +111,13 @@ export function generateViewsDataDTs(diagrams) {
101
111
  /* prettier-ignore-start */
102
112
  /* eslint-disable */
103
113
 
104
- import type { DiagramView } from '@likec4/core'
114
+ import type { DiagramView } from 'likec4'
105
115
  `.append(NL, NL);
106
- if (views.length == 0) {
107
- out.append('export {}', NL);
108
- return toString(out);
109
- }
110
- out.appendTemplate `
116
+ if (views.length == 0) {
117
+ out.append("export {}", NL);
118
+ return toString(out);
119
+ }
120
+ out.appendTemplate`
111
121
  export type LikeC4ViewId = ${generateViewId(views)};
112
122
  export type LikeC4Views = Record<LikeC4ViewId, DiagramView>
113
123
 
@@ -116,5 +126,5 @@ export function generateViewsDataDTs(diagrams) {
116
126
 
117
127
  /* prettier-ignore-end */
118
128
  `.append(NL);
119
- return toString(out);
129
+ return toString(out);
120
130
  }
@@ -1,3 +1,2 @@
1
1
  import type { DiagramView } from '@likec4/core';
2
- export declare function generateViewId(views: Iterable<DiagramView>): import("langium/generate").CompositeGeneratorNode | undefined;
3
- //# sourceMappingURL=generateViewId.d.ts.map
2
+ export declare function generateViewId(views: Iterable<DiagramView>): any;
@@ -1,6 +1,7 @@
1
- import { expandToNode, joinToNode } from 'langium/generate';
1
+ import JSON5 from "json5";
2
+ import { expandToNode, joinToNode } from "langium/generate";
2
3
  export function generateViewId(views) {
3
- return joinToNode(views, view => expandToNode `'${view.id}'`, {
4
- separator: ' | '
5
- });
4
+ return joinToNode(views, (view) => expandToNode`${JSON5.stringify(view.id)}`, {
5
+ separator: " | "
6
+ });
6
7
  }
@@ -1,2 +1 @@
1
1
  export * from './generate-views-data';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- export * from './generate-views-data';
1
+ export * from "./generate-views-data.js";
package/package.json CHANGED
@@ -1,56 +1,54 @@
1
1
  {
2
2
  "name": "@likec4/generators",
3
- "version": "1.4.0",
3
+ "version": "1.29.0",
4
4
  "license": "MIT",
5
5
  "bugs": "https://github.com/likec4/likec4/issues",
6
6
  "homepage": "https://likec4.dev",
7
7
  "author": "Denis Davydkov <denis@davydkov.com>",
8
8
  "files": [
9
9
  "dist",
10
- "!dist/src"
10
+ "src"
11
11
  ],
12
12
  "repository": {
13
13
  "type": "git",
14
- "url": "https://github.com/likec4/likec4.git",
14
+ "url": "git+https://github.com/likec4/likec4.git",
15
15
  "directory": "packages/generators"
16
16
  },
17
17
  "type": "module",
18
18
  "sideEffects": false,
19
19
  "exports": {
20
20
  ".": {
21
- "types": "./dist/index.d.ts",
22
- "default": "./dist/index.js"
23
- }
24
- },
25
- "publishConfig": {
26
- "registry": "https://registry.npmjs.org",
27
- "access": "public",
28
- "exports": {
29
- ".": {
21
+ "sources": "./src/index.ts",
22
+ "default": {
30
23
  "types": "./dist/index.d.ts",
24
+ "import": "./dist/index.js",
31
25
  "default": "./dist/index.js"
32
26
  }
33
27
  }
34
28
  },
35
- "scripts": {
36
- "typecheck": "tsc --noEmit",
37
- "prepack": "tsc",
38
- "lint": "run -T eslint src/ --fix",
39
- "clean": "run -T rimraf dist",
40
- "test": "vitest run --no-isolate",
41
- "test:watch": "vitest"
29
+ "publishConfig": {
30
+ "registry": "https://registry.npmjs.org",
31
+ "access": "public"
42
32
  },
43
33
  "dependencies": {
44
- "@likec4/core": "1.4.0",
45
34
  "json5": "^2.2.3",
46
- "langium": "3.1.0",
47
- "remeda": "^1.61.0"
35
+ "langium": "3.4.0",
36
+ "remeda": "^2.21.2",
37
+ "@likec4/core": "1.29.0"
48
38
  },
49
39
  "devDependencies": {
50
- "@likec4/tsconfig": "1.4.0",
51
- "@types/node": "^20.14.2",
52
- "typescript": "^5.4.5",
53
- "vitest": "~1.5.3"
40
+ "@types/node": "^20.17.30",
41
+ "typescript": "^5.8.3",
42
+ "unbuild": "^3.5.0",
43
+ "vitest": "^3.1.1",
44
+ "@likec4/tsconfig": "1.29.0"
54
45
  },
55
- "packageManager": "yarn@4.3.0"
46
+ "scripts": {
47
+ "typecheck": "tsc --noEmit",
48
+ "build": "unbuild",
49
+ "lint": "run -T eslint src/ --fix",
50
+ "clean": "rm -r -f dist",
51
+ "test": "vitest run --no-isolate",
52
+ "test:watch": "vitest"
53
+ }
56
54
  }