@kumori/kdsl 0.0.14 → 0.0.16

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 (171) hide show
  1. package/dist/build/deployment_spec.d.ts +2586 -0
  2. package/dist/build/deployment_spec.js +293 -0
  3. package/dist/build/deployment_spec.js.map +1 -0
  4. package/dist/build/helpers/builtin.d.ts +17 -0
  5. package/dist/build/helpers/builtin.js +80 -0
  6. package/dist/build/helpers/builtin.js.map +1 -0
  7. package/dist/build/helpers/component.d.ts +17 -0
  8. package/dist/build/helpers/component.js +212 -0
  9. package/dist/build/helpers/component.js.map +1 -0
  10. package/dist/build/helpers/connector.d.ts +13 -0
  11. package/dist/build/helpers/connector.js +189 -0
  12. package/dist/build/helpers/connector.js.map +1 -0
  13. package/dist/build/helpers/deployment.d.ts +326 -0
  14. package/dist/build/helpers/deployment.js +85 -0
  15. package/dist/build/helpers/deployment.js.map +1 -0
  16. package/dist/build/helpers/resource.d.ts +97 -0
  17. package/dist/build/helpers/resource.js +54 -0
  18. package/dist/build/helpers/resource.js.map +1 -0
  19. package/dist/build/helpers/service.d.ts +27 -0
  20. package/dist/build/helpers/service.js +196 -0
  21. package/dist/build/helpers/service.js.map +1 -0
  22. package/dist/build/helpers/utils.d.ts +30 -0
  23. package/dist/build/helpers/utils.js +77 -0
  24. package/dist/build/helpers/utils.js.map +1 -0
  25. package/dist/build/main.d.ts +17 -0
  26. package/dist/build/main.js +188 -0
  27. package/dist/build/main.js.map +1 -0
  28. package/dist/build/solution.d.ts +20 -0
  29. package/dist/build/solution.js +71 -0
  30. package/dist/build/solution.js.map +1 -0
  31. package/dist/check/main.d.ts +21 -0
  32. package/dist/check/main.js +99 -0
  33. package/dist/check/main.js.map +1 -0
  34. package/dist/clean/main.d.ts +11 -0
  35. package/dist/clean/main.js +26 -0
  36. package/dist/clean/main.js.map +1 -0
  37. package/dist/deployment/gen/deployment-template.kumori +33 -0
  38. package/dist/deployment/gen/main.d.ts +15 -0
  39. package/dist/deployment/gen/main.js +158 -0
  40. package/dist/deployment/gen/main.js.map +1 -0
  41. package/dist/deployment/gen/types.d.ts +27 -0
  42. package/dist/deployment/gen/types.js +2 -0
  43. package/dist/deployment/gen/types.js.map +1 -0
  44. package/dist/deployment/main.d.ts +8 -0
  45. package/dist/deployment/main.js +17 -0
  46. package/dist/deployment/main.js.map +1 -0
  47. package/dist/help/main.d.ts +13 -0
  48. package/dist/help/main.js +49 -0
  49. package/dist/help/main.js.map +1 -0
  50. package/dist/help/topic/build.d.ts +2 -0
  51. package/dist/help/topic/build.js +7 -0
  52. package/dist/help/topic/build.js.map +1 -0
  53. package/dist/help/topic/mod_dep.d.ts +2 -0
  54. package/dist/help/topic/mod_dep.js +8 -0
  55. package/dist/help/topic/mod_dep.js.map +1 -0
  56. package/dist/help/topic/mod_dl.d.ts +2 -0
  57. package/dist/help/topic/mod_dl.js +25 -0
  58. package/dist/help/topic/mod_dl.js.map +1 -0
  59. package/dist/index/create/main.d.ts +14 -0
  60. package/dist/index/create/main.js +286 -0
  61. package/dist/index/create/main.js.map +1 -0
  62. package/dist/index/main.d.ts +8 -0
  63. package/dist/index/main.js +17 -0
  64. package/dist/index/main.js.map +1 -0
  65. package/dist/lib/build.d.ts +42 -0
  66. package/dist/lib/build.js +42 -0
  67. package/dist/lib/build.js.map +1 -0
  68. package/dist/lib/check.d.ts +41 -0
  69. package/dist/lib/check.js +45 -0
  70. package/dist/lib/check.js.map +1 -0
  71. package/dist/lib/clean.d.ts +31 -0
  72. package/dist/lib/clean.js +39 -0
  73. package/dist/lib/clean.js.map +1 -0
  74. package/dist/lib/deployment.d.ts +35 -0
  75. package/dist/lib/deployment.js +31 -0
  76. package/dist/lib/deployment.js.map +1 -0
  77. package/dist/lib/index-cmd.d.ts +54 -0
  78. package/dist/lib/index-cmd.js +60 -0
  79. package/dist/lib/index-cmd.js.map +1 -0
  80. package/dist/lib/index.d.ts +58 -0
  81. package/dist/lib/index.js +54 -0
  82. package/dist/lib/index.js.map +1 -0
  83. package/dist/lib/io/lib.kumori +5 -0
  84. package/dist/lib/kumori/builtin/httpinbound.h.kumori +27 -0
  85. package/dist/lib/kumori/builtin/tcpinbound.h.kumori +25 -0
  86. package/dist/lib/kumori/builtin.kumori +18 -0
  87. package/dist/lib/kumori/component.kumori +120 -0
  88. package/dist/lib/kumori/deployment.kumori +16 -0
  89. package/dist/lib/kumori/resource.kumori +25 -0
  90. package/dist/lib/kumori/service.kumori +49 -0
  91. package/dist/lib/kumori/shared.kumori +11 -0
  92. package/dist/lib/kumori/sized.kumori +25 -0
  93. package/dist/lib/logger.d.ts +10 -0
  94. package/dist/lib/logger.js +23 -0
  95. package/dist/lib/logger.js.map +1 -0
  96. package/dist/lib/mod.d.ts +156 -0
  97. package/dist/lib/mod.js +144 -0
  98. package/dist/lib/mod.js.map +1 -0
  99. package/dist/lib/registry.d.ts +61 -0
  100. package/dist/lib/registry.js +67 -0
  101. package/dist/lib/registry.js.map +1 -0
  102. package/dist/lib/sized.kumori +8 -0
  103. package/dist/lib/std.kumori +8 -0
  104. package/dist/lib/strconv/lib.kumori +11 -0
  105. package/dist/lib/types.d.ts +26 -0
  106. package/dist/lib/types.js +2 -0
  107. package/dist/lib/types.js.map +1 -0
  108. package/dist/main.d.ts +1 -0
  109. package/dist/main.js +37 -0
  110. package/dist/main.js.map +1 -0
  111. package/dist/mod/checksum/main.d.ts +11 -0
  112. package/dist/mod/checksum/main.js +33 -0
  113. package/dist/mod/checksum/main.js.map +1 -0
  114. package/dist/mod/dependency/main.d.ts +19 -0
  115. package/dist/mod/dependency/main.js +163 -0
  116. package/dist/mod/dependency/main.js.map +1 -0
  117. package/dist/mod/download/functions.d.ts +53 -0
  118. package/dist/mod/download/functions.js +235 -0
  119. package/dist/mod/download/functions.js.map +1 -0
  120. package/dist/mod/download/main.d.ts +26 -0
  121. package/dist/mod/download/main.js +99 -0
  122. package/dist/mod/download/main.js.map +1 -0
  123. package/dist/mod/init/main.d.ts +13 -0
  124. package/dist/mod/init/main.js +66 -0
  125. package/dist/mod/init/main.js.map +1 -0
  126. package/dist/mod/jsonschema/gen/main.d.ts +11 -0
  127. package/dist/mod/jsonschema/gen/main.js +288 -0
  128. package/dist/mod/jsonschema/gen/main.js.map +1 -0
  129. package/dist/mod/jsonschema/get/kdslschema.d.ts +28 -0
  130. package/dist/mod/jsonschema/get/kdslschema.js +3 -0
  131. package/dist/mod/jsonschema/get/kdslschema.js.map +1 -0
  132. package/dist/mod/jsonschema/get/main.d.ts +76 -0
  133. package/dist/mod/jsonschema/get/main.js +346 -0
  134. package/dist/mod/jsonschema/get/main.js.map +1 -0
  135. package/dist/mod/jsonschema/main.d.ts +8 -0
  136. package/dist/mod/jsonschema/main.js +20 -0
  137. package/dist/mod/jsonschema/main.js.map +1 -0
  138. package/dist/mod/main.d.ts +8 -0
  139. package/dist/mod/main.js +27 -0
  140. package/dist/mod/main.js.map +1 -0
  141. package/dist/mod/update/main.d.ts +17 -0
  142. package/dist/mod/update/main.js +68 -0
  143. package/dist/mod/update/main.js.map +1 -0
  144. package/dist/registry/add.d.ts +15 -0
  145. package/dist/registry/add.js +58 -0
  146. package/dist/registry/add.js.map +1 -0
  147. package/dist/registry/list.d.ts +15 -0
  148. package/dist/registry/list.js +29 -0
  149. package/dist/registry/list.js.map +1 -0
  150. package/dist/registry/main.d.ts +8 -0
  151. package/dist/registry/main.js +21 -0
  152. package/dist/registry/main.js.map +1 -0
  153. package/dist/registry/remove.d.ts +15 -0
  154. package/dist/registry/remove.js +34 -0
  155. package/dist/registry/remove.js.map +1 -0
  156. package/dist/util/err-format.d.ts +2 -0
  157. package/dist/util/err-format.js +10 -0
  158. package/dist/util/err-format.js.map +1 -0
  159. package/dist/util/err-handler.d.ts +3 -0
  160. package/dist/util/err-handler.js +11 -0
  161. package/dist/util/err-handler.js.map +1 -0
  162. package/dist/util.d.ts +2 -0
  163. package/dist/util.js +2 -0
  164. package/dist/util.js.map +1 -0
  165. package/dist/version.d.ts +2 -0
  166. package/dist/version.js +5 -0
  167. package/dist/version.js.map +1 -0
  168. package/out/deployment/gen/deployment-template.kumori +33 -0
  169. package/out/deployment-template.kumori +33 -0
  170. package/out/main.cjs +378 -209
  171. package/package.json +67 -17
@@ -0,0 +1,13 @@
1
+ import { Service, Connection } from "@kumori/kdsl-lsp/language/builtin/lib/kumori/service.js";
2
+ import { Connector } from "../deployment_spec.js";
3
+ import { SolutionJSONContext } from "./deployment.js";
4
+ /**
5
+ * Converts a service connection definition into the solution JSON format.
6
+ * This translates the "connector" section of a service into the "connector" section
7
+ * of the solution JSON.
8
+ * @param ctx The solution JSON context.
9
+ * @param service The service to convert.
10
+ * @param cnx The connection to convert.
11
+ * @returns The connector representation of the connection.
12
+ */
13
+ export declare function ServiceConnectionToSolutionJSON(ctx: SolutionJSONContext, service: Service, cnx: Connection): Connector;
@@ -0,0 +1,189 @@
1
+ import { LoadBalancerName, FullConnectorName } from "@kumori/kdsl-lsp/language/builtin/lib/kumori/service.js";
2
+ import { isService } from "./deployment.js";
3
+ import { ReferenceUpdater } from "./utils.js";
4
+ /**
5
+ * Resolves and updates a Reference object for a given component reference.
6
+ * @param ctx The solution JSON context.
7
+ * @param componentRef The component reference to resolve.
8
+ * @param ref The Reference object to update.
9
+ * @param isServiceKind Whether the reference should be marked as a service.
10
+ */
11
+ // I don't like to disable eslint rules, but I'll let it be here
12
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
13
+ function resolveReference(ctx, componentRef, ref, isServiceKind) {
14
+ const mod = ctx.svcs.shared.references.KumoriModules;
15
+ const modifiers = ReferenceUpdater(mod, ctx.nodes.get(componentRef));
16
+ for (const m of modifiers) {
17
+ m(ref);
18
+ }
19
+ if (isServiceKind) {
20
+ ref.kind = "service";
21
+ }
22
+ return ref;
23
+ }
24
+ /**
25
+ * Checks if a server is already present in the servers array.
26
+ * Deduplication is done by comparing JSON string representations.
27
+ * @param servers Array of existing servers.
28
+ * @param candidate The candidate server to check.
29
+ * @returns True if duplicate, false otherwise.
30
+ */
31
+ function isServerDuplicate(servers, candidate) {
32
+ return servers.some(s => JSON.stringify(s) === JSON.stringify(candidate));
33
+ }
34
+ /**
35
+ * Builds a connector client object.
36
+ * @param target The role of the client.
37
+ * @param channel The channel of the client.
38
+ * @returns A ConnectorClient object.
39
+ */
40
+ function buildClient(target, channel) {
41
+ return { role: target, channel };
42
+ }
43
+ /**
44
+ * Builds a connector server object.
45
+ * @param meta The meta information for the server.
46
+ * @param role The role of the server.
47
+ * @param channel The channel of the server.
48
+ * @returns A ConnectorServer object.
49
+ */
50
+ // I don't like to disable eslint rules, but I'll let it be here
51
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
52
+ function buildServer(meta, role, channel) {
53
+ return {
54
+ meta,
55
+ links: [{ role, channel }]
56
+ };
57
+ }
58
+ /**
59
+ * Converts a service connection definition into the solution JSON format.
60
+ * This translates the "connector" section of a service into the "connector" section
61
+ * of the solution JSON.
62
+ * @param ctx The solution JSON context.
63
+ * @param service The service to convert.
64
+ * @param cnx The connection to convert.
65
+ * @returns The connector representation of the connection.
66
+ */
67
+ export function ServiceConnectionToSolutionJSON(ctx, service, cnx) {
68
+ const ref = {
69
+ version: [0, 0, 0],
70
+ kind: "component",
71
+ domain: "unknown",
72
+ module: "unknown",
73
+ name: "unknown",
74
+ };
75
+ if (cnx.$type === LoadBalancerName) {
76
+ cnx = cnx;
77
+ const servers = [];
78
+ const clients = [];
79
+ // The "from" and "to" arrays define multiple connections.
80
+ // We accumulate all clients and servers and then return a single connector.
81
+ if ("from" in cnx.value && Array.isArray(cnx.value.from) && "to" in cnx.value && Array.isArray(cnx.value.to)) {
82
+ for (const fromCnx of cnx.value.from) {
83
+ // Each "from" defines a client
84
+ clients.push(buildClient(fromCnx.target, fromCnx.channel));
85
+ // Each "to" defines a server for this client
86
+ for (const toCnx of cnx.value.to) {
87
+ const componentRef = service.role[toCnx.target == "self" ? fromCnx.target : toCnx.target];
88
+ const isServiceKind = isService(componentRef.artifact) || toCnx.target == "self";
89
+ resolveReference(ctx, componentRef, ref, isServiceKind);
90
+ const meta = cnx.value.meta ?? [{
91
+ auto: {
92
+ channel: toCnx.target !== "self" ? toCnx.target + "." + toCnx.channel : toCnx.channel,
93
+ compRef: ref,
94
+ roleName: toCnx.target == "self" ? fromCnx.target : toCnx.target,
95
+ },
96
+ user: {}
97
+ }];
98
+ const server = buildServer(meta, toCnx.target, toCnx.channel);
99
+ // We don't want duplicates
100
+ if (!isServerDuplicate(servers, server)) {
101
+ servers.push(server);
102
+ }
103
+ }
104
+ }
105
+ }
106
+ else if ("from" in cnx.value && !Array.isArray(cnx.value.from) && !Array.isArray(cnx.value.to)) {
107
+ const fromCnx = cnx.value.from;
108
+ const toCnx = cnx.value.to;
109
+ // Each "from" defines a client
110
+ clients.push(buildClient(fromCnx.target, fromCnx.channel));
111
+ // Each "to" defines a server for this client
112
+ const componentRef = service.role[toCnx.target == "self" ? fromCnx.target : toCnx.target];
113
+ const isServiceKind = isService(componentRef.artifact) || toCnx.target == "self";
114
+ resolveReference(ctx, componentRef, ref, isServiceKind);
115
+ const meta = cnx.value.meta ?? [{
116
+ auto: {
117
+ channel: toCnx.target !== "self" ? toCnx.target + "." + toCnx.channel : toCnx.channel,
118
+ compRef: ref,
119
+ roleName: toCnx.target == "self" ? fromCnx.target : toCnx.target,
120
+ },
121
+ user: {}
122
+ }];
123
+ const server = buildServer(meta, toCnx.target, toCnx.channel);
124
+ // We don't want duplicates
125
+ if (!isServerDuplicate(servers, server)) {
126
+ servers.push(server);
127
+ }
128
+ }
129
+ return {
130
+ kind: "lb",
131
+ clients: clients,
132
+ servers: servers
133
+ };
134
+ }
135
+ if (cnx.$type === FullConnectorName) {
136
+ cnx = cnx;
137
+ const servers = [];
138
+ const clients = [];
139
+ // The "from" and "to" arrays define multiple connections.
140
+ // We accumulate all clients and servers and then return a single connector.
141
+ // The "FullConnector" connector can have either "from" and "to" arrays or single "target" and "channel" properties.
142
+ if ("from" in cnx.value && Array.isArray(cnx.value.from) && "to" in cnx.value && Array.isArray(cnx.value.to)) {
143
+ // Each "from" defines a client
144
+ for (const fromCnx of cnx.value.from) {
145
+ clients.push(buildClient(fromCnx.target, fromCnx.channel));
146
+ // Each "to" defines a server for this client
147
+ for (const toCnx of cnx.value.to) {
148
+ const componentRef = service.role[toCnx.target == "self" ? fromCnx.target : toCnx.target];
149
+ const isServiceKind = isService(componentRef.artifact);
150
+ resolveReference(ctx, componentRef, ref, isServiceKind);
151
+ const meta = cnx.value.meta ?? [{
152
+ auto: {
153
+ channel: toCnx.target !== "self" ? toCnx.target + "." + toCnx.channel : toCnx.channel,
154
+ compRef: ref,
155
+ roleName: toCnx.target == "self" ? fromCnx.target : toCnx.target,
156
+ },
157
+ user: {}
158
+ }];
159
+ const server = buildServer(meta, toCnx.target, toCnx.channel);
160
+ // We don't want duplicates
161
+ if (!isServerDuplicate(servers, server)) {
162
+ servers.push(server);
163
+ }
164
+ }
165
+ }
166
+ }
167
+ else if ("target" in cnx.value && "channel" in cnx.value) {
168
+ const componentRef = service.role[cnx.value.target];
169
+ const isServiceKind = isService(componentRef.artifact);
170
+ resolveReference(ctx, componentRef, ref, isServiceKind);
171
+ const meta = cnx.value.meta ?? [{
172
+ auto: {
173
+ channel: cnx.value.channel,
174
+ compRef: ref,
175
+ roleName: cnx.value.target,
176
+ },
177
+ user: {}
178
+ }];
179
+ servers.push(buildServer(meta, cnx.value.target, cnx.value.channel));
180
+ }
181
+ return {
182
+ kind: "full",
183
+ clients: clients,
184
+ servers: servers,
185
+ };
186
+ }
187
+ throw new Error(`unknown connection type '${cnx.$type}'`);
188
+ }
189
+ //# sourceMappingURL=connector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connector.js","sourceRoot":"","sources":["../../../src/build/helpers/connector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,326 @@
1
+ import { Builtin } from "@kumori/kdsl-lsp/language/builtin/lib/kumori/builtin.js";
2
+ import { Component } from "@kumori/kdsl-lsp/language/builtin/lib/kumori/component.js";
3
+ import { Deployment } from "@kumori/kdsl-lsp/language/builtin/lib/kumori/deployment.js";
4
+ import { Service } from "@kumori/kdsl-lsp/language/builtin/lib/kumori/service.js";
5
+ import { KumoriServices } from "@kumori/kdsl-lsp/language/kumori.js";
6
+ import { AstNode } from "langium";
7
+ import { KukuSolutionSpec, V3DeploymentSpec } from "../deployment_spec.js";
8
+ export interface SolutionJSONContext {
9
+ svcs: KumoriServices;
10
+ root: KukuSolutionSpec;
11
+ nodes: Map<object, AstNode>;
12
+ path: string[];
13
+ }
14
+ export declare const CtxId: (ctx: SolutionJSONContext) => string;
15
+ export declare const CtxParentId: (ctx: SolutionJSONContext) => string;
16
+ export declare const WithPath: (ctx: SolutionJSONContext, name: string) => SolutionJSONContext;
17
+ export declare const AddDeployment: (ctx: SolutionJSONContext, dep: V3DeploymentSpec) => {
18
+ name: string;
19
+ meta?: any;
20
+ up?: string | undefined;
21
+ artifact?: {
22
+ ref: {
23
+ name: string;
24
+ kind: "deployment" | "service" | "component";
25
+ domain: string;
26
+ version: number[];
27
+ module?: string | undefined;
28
+ prerelease?: string | undefined;
29
+ buildmetadata?: string | undefined;
30
+ };
31
+ spec: number[];
32
+ description: {
33
+ builtin: boolean;
34
+ config?: {
35
+ resilience: number;
36
+ parameter?: Record<string, any> | undefined;
37
+ resource?: Record<string, {
38
+ certificate?: string | undefined;
39
+ ca?: string | undefined;
40
+ domain?: string | undefined;
41
+ port?: string | undefined;
42
+ secret?: string | undefined;
43
+ volume?: any;
44
+ }> | undefined;
45
+ scale?: ({
46
+ qos?: any;
47
+ hsize?: number | undefined;
48
+ } & {
49
+ detail?: Record<string, ({
50
+ qos?: any;
51
+ hsize?: number | undefined;
52
+ } & /*elided*/ any) | undefined>;
53
+ }) | undefined;
54
+ } | undefined;
55
+ srv?: {
56
+ duplex?: Record<string, {
57
+ inherited: boolean;
58
+ protocol: "http" | "tcp" | "udp" | "grpc";
59
+ port?: number | undefined;
60
+ portnum?: number | undefined;
61
+ }> | undefined;
62
+ client?: Record<string, {
63
+ inherited: boolean;
64
+ protocol: "http" | "tcp" | "udp" | "grpc";
65
+ port?: number | undefined;
66
+ portnum?: number | undefined;
67
+ }> | undefined;
68
+ server?: Record<string, {
69
+ inherited: boolean;
70
+ protocol: "http" | "tcp" | "udp" | "grpc";
71
+ port?: number | undefined;
72
+ portnum?: number | undefined;
73
+ }> | undefined;
74
+ } | undefined;
75
+ role?: Record<string, {
76
+ name: string;
77
+ artifact: {
78
+ ref: {
79
+ name: string;
80
+ kind: "deployment" | "service" | "component";
81
+ domain: string;
82
+ version: number[];
83
+ module?: string | undefined;
84
+ prerelease?: string | undefined;
85
+ buildmetadata?: string | undefined;
86
+ };
87
+ spec: number[];
88
+ description?: {
89
+ builtin: boolean;
90
+ size: {
91
+ mincpu: {
92
+ kind: "storage" | "cpu" | "ram" | "bandwidth";
93
+ size: number;
94
+ unit: string;
95
+ };
96
+ bandwidth: {
97
+ kind: "storage" | "cpu" | "ram" | "bandwidth";
98
+ size: number;
99
+ unit: string;
100
+ };
101
+ minbandwidth: number;
102
+ };
103
+ config?: {
104
+ resilience: number;
105
+ parameter?: Record<string, any> | undefined;
106
+ resource?: Record<string, {
107
+ certificate?: string | undefined;
108
+ ca?: string | undefined;
109
+ domain?: string | undefined;
110
+ port?: string | undefined;
111
+ secret?: string | undefined;
112
+ volume?: any;
113
+ }> | undefined;
114
+ scale?: ({
115
+ qos?: any;
116
+ hsize?: number | undefined;
117
+ } & {
118
+ detail?: Record<string, ({
119
+ qos?: any;
120
+ hsize?: number | undefined;
121
+ } & /*elided*/ any) | undefined>;
122
+ }) | undefined;
123
+ } | undefined;
124
+ srv?: {
125
+ duplex?: Record<string, {
126
+ inherited: boolean;
127
+ protocol: "http" | "tcp" | "udp" | "grpc";
128
+ port?: number | undefined;
129
+ portnum?: number | undefined;
130
+ }> | undefined;
131
+ client?: Record<string, {
132
+ inherited: boolean;
133
+ protocol: "http" | "tcp" | "udp" | "grpc";
134
+ port?: number | undefined;
135
+ portnum?: number | undefined;
136
+ }> | undefined;
137
+ server?: Record<string, {
138
+ inherited: boolean;
139
+ protocol: "http" | "tcp" | "udp" | "grpc";
140
+ port?: number | undefined;
141
+ portnum?: number | undefined;
142
+ }> | undefined;
143
+ } | undefined;
144
+ profile?: {
145
+ threadability: string;
146
+ iopsintensive: boolean;
147
+ } | undefined;
148
+ code?: Record<string, {
149
+ name: string;
150
+ image: {
151
+ tag: string;
152
+ hub?: {
153
+ name: string;
154
+ secret?: string | undefined;
155
+ } | undefined;
156
+ };
157
+ entrypoint?: string[] | undefined;
158
+ cmd?: string[] | undefined;
159
+ mapping?: {
160
+ env?: Record<string, {
161
+ secret?: string | undefined;
162
+ port?: string | undefined;
163
+ domain?: string | undefined;
164
+ certificate?: string | undefined;
165
+ ca?: string | undefined;
166
+ value?: string | number | boolean | undefined;
167
+ enableTemplate?: boolean | undefined;
168
+ }> | undefined;
169
+ filesystem?: Record<string, {
170
+ data?: {
171
+ secret?: string | undefined;
172
+ port?: string | undefined;
173
+ domain?: string | undefined;
174
+ certificate?: string | undefined;
175
+ ca?: string | undefined;
176
+ value?: string | undefined;
177
+ } | undefined;
178
+ format?: "text" | "json" | "yaml" | undefined;
179
+ group?: number | undefined;
180
+ mode?: number | undefined;
181
+ path?: string | undefined;
182
+ user?: number | undefined;
183
+ rebootOnUpdate?: boolean | undefined;
184
+ volume?: string | undefined;
185
+ enableTemplate?: boolean | undefined;
186
+ }> | undefined;
187
+ } | undefined;
188
+ size?: {
189
+ cpu: {
190
+ kind: "storage" | "cpu" | "ram" | "bandwidth";
191
+ size: number;
192
+ unit: string;
193
+ };
194
+ mincpu: number;
195
+ memory: {
196
+ kind: "storage" | "cpu" | "ram" | "bandwidth";
197
+ size: number;
198
+ unit: string;
199
+ };
200
+ } | undefined;
201
+ user?: {
202
+ userid: number;
203
+ groupid: number;
204
+ } | undefined;
205
+ init?: boolean | undefined;
206
+ }> | undefined;
207
+ probe?: Record<string, {
208
+ liveness?: {
209
+ protocol: {
210
+ http?: {
211
+ port: number;
212
+ path: string;
213
+ } | undefined;
214
+ tcp?: {
215
+ port: number;
216
+ } | undefined;
217
+ exec?: {
218
+ path: string;
219
+ } | undefined;
220
+ };
221
+ startupGraceWindow?: {
222
+ unit: "attempts" | "ms";
223
+ duration: number;
224
+ probe: boolean;
225
+ } | undefined;
226
+ frequency?: any;
227
+ timeout?: number | undefined;
228
+ } | undefined;
229
+ readiness?: {
230
+ protocol: {
231
+ http?: {
232
+ port: number;
233
+ path: string;
234
+ } | undefined;
235
+ tcp?: {
236
+ port: number;
237
+ } | undefined;
238
+ exec?: {
239
+ path: string;
240
+ } | undefined;
241
+ };
242
+ frequency?: any;
243
+ timeout?: number | undefined;
244
+ } | undefined;
245
+ pmetrics?: {
246
+ protocol: {
247
+ http?: {
248
+ port: number;
249
+ path: string;
250
+ } | undefined;
251
+ };
252
+ } | undefined;
253
+ }> | undefined;
254
+ } | undefined;
255
+ };
256
+ config?: {
257
+ resilience: number;
258
+ parameter?: Record<string, any> | undefined;
259
+ resource?: Record<string, {
260
+ certificate?: string | undefined;
261
+ ca?: string | undefined;
262
+ domain?: string | undefined;
263
+ port?: string | undefined;
264
+ secret?: string | undefined;
265
+ volume?: any;
266
+ }> | undefined;
267
+ scale?: ({
268
+ qos?: any;
269
+ hsize?: number | undefined;
270
+ } & {
271
+ detail?: Record<string, ({
272
+ qos?: any;
273
+ hsize?: number | undefined;
274
+ } & /*elided*/ any) | undefined>;
275
+ }) | undefined;
276
+ } | undefined;
277
+ updates?: "free" | undefined;
278
+ meta?: any;
279
+ }> | undefined;
280
+ connector?: Record<string, {
281
+ kind: "lb" | "full";
282
+ clients: {
283
+ role: string;
284
+ channel: string;
285
+ }[];
286
+ servers: {
287
+ links: {
288
+ role: string;
289
+ channel: string;
290
+ }[];
291
+ meta?: any;
292
+ }[];
293
+ }> | undefined;
294
+ };
295
+ } | undefined;
296
+ config?: {
297
+ resilience: number;
298
+ parameter?: Record<string, any> | undefined;
299
+ resource?: Record<string, {
300
+ certificate?: string | undefined;
301
+ ca?: string | undefined;
302
+ domain?: string | undefined;
303
+ port?: string | undefined;
304
+ secret?: string | undefined;
305
+ volume?: any;
306
+ }> | undefined;
307
+ scale?: ({
308
+ qos?: any;
309
+ hsize?: number | undefined;
310
+ } & {
311
+ detail?: Record<string, ({
312
+ qos?: any;
313
+ hsize?: number | undefined;
314
+ } & /*elided*/ any) | undefined>;
315
+ }) | undefined;
316
+ } | undefined;
317
+ };
318
+ /**
319
+ * Convert a deployment artifact to a solution JSON representation.
320
+ * @param deployment - The deployment artifact to convert.
321
+ * @returns The solution JSON representation.
322
+ */
323
+ export declare function DeploymentToSolutionJSON(svcs: KumoriServices, nodes: SolutionJSONContext["nodes"], deployment: Deployment): KukuSolutionSpec;
324
+ export declare function isComponent(v: Component | Service | Builtin): v is Component;
325
+ export declare function isService(v: Component | Service | Builtin): v is Service;
326
+ export declare function isBuiltin(v: Component | Service | Builtin): v is Builtin;
@@ -0,0 +1,85 @@
1
+ import { ComponentServiceToSolutionJSON } from "./component.js";
2
+ import { ServiceToSolutionJSON } from "./service.js";
3
+ import { ResourceToSolutionJSON } from "./resource.js";
4
+ import { isComponentArtifact } from "@kumori/kdsl-lsp/language/generated/ast.js";
5
+ export const CtxId = (ctx) => ctx.path.join(".");
6
+ export const CtxParentId = (ctx) => ctx.path.slice(0, -1).join(".");
7
+ export const WithPath = (ctx, name) => ({ ...ctx, path: [...ctx.path, name] });
8
+ export const AddDeployment = (ctx, dep) => ctx.root.deployments[CtxId(ctx)] = dep;
9
+ /**
10
+ * Convert a deployment artifact to a solution JSON representation.
11
+ * @param deployment - The deployment artifact to convert.
12
+ * @returns The solution JSON representation.
13
+ */
14
+ export function DeploymentToSolutionJSON(svcs, nodes, deployment) {
15
+ const root = {
16
+ cspec: "1.0",
17
+ top: deployment.name,
18
+ deployments: {},
19
+ links: [],
20
+ };
21
+ const ctx = { svcs, path: [deployment.name], root, nodes };
22
+ root.deployments[deployment.name] = {
23
+ name: deployment.name,
24
+ meta: deployment.meta,
25
+ config: {
26
+ parameter: deployment.config ?? {},
27
+ resource: Object.fromEntries(Object.entries(deployment.resource ?? {})
28
+ .map(([k, v]) => [k, ResourceToSolutionJSON(v)])),
29
+ resilience: deployment.resilience ?? 0,
30
+ scale: {
31
+ detail: (() => {
32
+ if (isComponent(deployment.artifact)) {
33
+ const componentArtifact = ctx.nodes.get(deployment.artifact);
34
+ let componentName = "";
35
+ if (componentArtifact && isComponentArtifact(componentArtifact)) {
36
+ componentName = componentArtifact.name.value.$refText;
37
+ }
38
+ if (componentName === "") {
39
+ throw new Error("Unable to determine component name for scale detail.");
40
+ }
41
+ return { [componentName]: { hsize: typeof deployment.scale === "number" ? deployment.scale : 1 } };
42
+ }
43
+ if (isService(deployment.artifact)) {
44
+ const roles = Object.entries(deployment.artifact.role ?? {});
45
+ return Object.fromEntries(roles.map(([roleName]) => [
46
+ roleName,
47
+ {
48
+ hsize: (deployment.scale &&
49
+ typeof deployment.scale === "object" &&
50
+ !Array.isArray(deployment.scale) &&
51
+ roleName in deployment.scale)
52
+ ? deployment.scale[roleName]
53
+ : 1
54
+ }
55
+ ]));
56
+ }
57
+ return {};
58
+ })()
59
+ },
60
+ },
61
+ artifact: (() => {
62
+ if (isComponent(deployment.artifact)) {
63
+ return ComponentServiceToSolutionJSON(ctx, deployment.artifact, deployment.scale);
64
+ }
65
+ if (isService(deployment.artifact)) {
66
+ return ServiceToSolutionJSON(ctx, deployment.artifact, deployment.scale);
67
+ }
68
+ if (isBuiltin(deployment.artifact)) {
69
+ throw new Error("not implemented: handle builtin");
70
+ }
71
+ throw new Error("unknown artifact");
72
+ })()
73
+ };
74
+ return root;
75
+ }
76
+ export function isComponent(v) {
77
+ return "size" in v;
78
+ }
79
+ export function isService(v) {
80
+ return !(isComponent(v) || isBuiltin(v));
81
+ }
82
+ export function isBuiltin(v) {
83
+ return "id" in v;
84
+ }
85
+ //# sourceMappingURL=deployment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployment.js","sourceRoot":"","sources":["../../../src/build/helpers/deployment.ts"],"names":[],"mappings":"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"}