@kinwan/infrascript 0.1.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 (72) hide show
  1. package/README.md +291 -0
  2. package/dist/actions/Job.d.ts +36 -0
  3. package/dist/actions/Job.d.ts.map +1 -0
  4. package/dist/actions/Job.js +93 -0
  5. package/dist/actions/Job.js.map +1 -0
  6. package/dist/actions/Step.d.ts +25 -0
  7. package/dist/actions/Step.d.ts.map +1 -0
  8. package/dist/actions/Step.js +72 -0
  9. package/dist/actions/Step.js.map +1 -0
  10. package/dist/actions/Workflow.d.ts +27 -0
  11. package/dist/actions/Workflow.d.ts.map +1 -0
  12. package/dist/actions/Workflow.js +77 -0
  13. package/dist/actions/Workflow.js.map +1 -0
  14. package/dist/actions/types.d.ts +34 -0
  15. package/dist/actions/types.d.ts.map +1 -0
  16. package/dist/actions/types.js +3 -0
  17. package/dist/actions/types.js.map +1 -0
  18. package/dist/cli/index.d.ts +3 -0
  19. package/dist/cli/index.d.ts.map +1 -0
  20. package/dist/cli/index.js +160 -0
  21. package/dist/cli/index.js.map +1 -0
  22. package/dist/config.d.ts +40 -0
  23. package/dist/config.d.ts.map +1 -0
  24. package/dist/config.js +29 -0
  25. package/dist/config.js.map +1 -0
  26. package/dist/core/Builder.d.ts +12 -0
  27. package/dist/core/Builder.d.ts.map +1 -0
  28. package/dist/core/Builder.js +11 -0
  29. package/dist/core/Builder.js.map +1 -0
  30. package/dist/core/FileWriter.d.ts +10 -0
  31. package/dist/core/FileWriter.d.ts.map +1 -0
  32. package/dist/core/FileWriter.js +79 -0
  33. package/dist/core/FileWriter.js.map +1 -0
  34. package/dist/core/YamlSerializer.d.ts +2 -0
  35. package/dist/core/YamlSerializer.d.ts.map +1 -0
  36. package/dist/core/YamlSerializer.js +46 -0
  37. package/dist/core/YamlSerializer.js.map +1 -0
  38. package/dist/index.d.ts +16 -0
  39. package/dist/index.d.ts.map +1 -0
  40. package/dist/index.js +32 -0
  41. package/dist/index.js.map +1 -0
  42. package/dist/k8s/Deployment.d.ts +41 -0
  43. package/dist/k8s/Deployment.d.ts.map +1 -0
  44. package/dist/k8s/Deployment.js +135 -0
  45. package/dist/k8s/Deployment.js.map +1 -0
  46. package/dist/k8s/EKSCluster.d.ts +77 -0
  47. package/dist/k8s/EKSCluster.d.ts.map +1 -0
  48. package/dist/k8s/EKSCluster.js +80 -0
  49. package/dist/k8s/EKSCluster.js.map +1 -0
  50. package/dist/k8s/K8sApp.d.ts +71 -0
  51. package/dist/k8s/K8sApp.d.ts.map +1 -0
  52. package/dist/k8s/K8sApp.js +175 -0
  53. package/dist/k8s/K8sApp.js.map +1 -0
  54. package/dist/k8s/Manifests.d.ts +80 -0
  55. package/dist/k8s/Manifests.d.ts.map +1 -0
  56. package/dist/k8s/Manifests.js +204 -0
  57. package/dist/k8s/Manifests.js.map +1 -0
  58. package/dist/k8s/types.d.ts +63 -0
  59. package/dist/k8s/types.d.ts.map +1 -0
  60. package/dist/k8s/types.js +13 -0
  61. package/dist/k8s/types.js.map +1 -0
  62. package/infrascript.config.ts +69 -0
  63. package/infrascript.eks.config.ts +121 -0
  64. package/k8s/api-config-configmap.yaml +7 -0
  65. package/k8s/api-deployment.yaml +54 -0
  66. package/k8s/api-ingress.yaml +21 -0
  67. package/k8s/api-pvc-pvc.yaml +10 -0
  68. package/k8s/api-secret-secret.yaml +8 -0
  69. package/k8s/api-service.yaml +12 -0
  70. package/k8s/worker-deployment.yaml +24 -0
  71. package/k8s/worker-service.yaml +12 -0
  72. package/package.json +34 -0
@@ -0,0 +1,34 @@
1
+ /** Known GitHub-hosted runner labels */
2
+ export type Runner = "ubuntu-latest" | "ubuntu-22.04" | "ubuntu-20.04" | "windows-latest" | "windows-2022" | "macos-latest" | "macos-14" | "macos-13" | (string & {});
3
+ /** Supported trigger event names */
4
+ export type TriggerEvent = "push" | "pull_request" | "pull_request_target" | "workflow_dispatch" | "workflow_call" | "schedule" | "release" | "issues" | "issue_comment" | "create" | "delete" | "deployment" | "registry_package" | (string & {});
5
+ export interface PushTriggerOptions {
6
+ branches?: string[];
7
+ "branches-ignore"?: string[];
8
+ tags?: string[];
9
+ "tags-ignore"?: string[];
10
+ paths?: string[];
11
+ "paths-ignore"?: string[];
12
+ }
13
+ export interface PullRequestTriggerOptions extends PushTriggerOptions {
14
+ types?: Array<"opened" | "synchronize" | "reopened" | "closed" | "labeled" | "unlabeled" | (string & {})>;
15
+ }
16
+ export interface ScheduleTriggerOptions {
17
+ cron: string;
18
+ }
19
+ export type TriggerOptions = PushTriggerOptions | PullRequestTriggerOptions | {
20
+ schedule: ScheduleTriggerOptions[];
21
+ } | null;
22
+ export interface StepEnv {
23
+ [key: string]: string;
24
+ }
25
+ export interface Permissions {
26
+ actions?: "read" | "write" | "none";
27
+ contents?: "read" | "write" | "none";
28
+ packages?: "read" | "write" | "none";
29
+ "pull-requests"?: "read" | "write" | "none";
30
+ "id-token"?: "read" | "write" | "none";
31
+ issues?: "read" | "write" | "none";
32
+ deployments?: "read" | "write" | "none";
33
+ }
34
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/actions/types.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,MAAM,MAAM,MAAM,GACd,eAAe,GACf,cAAc,GACd,cAAc,GACd,gBAAgB,GAChB,cAAc,GACd,cAAc,GACd,UAAU,GACV,UAAU,GACV,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAElB,oCAAoC;AACpC,MAAM,MAAM,YAAY,GACpB,MAAM,GACN,cAAc,GACd,qBAAqB,GACrB,mBAAmB,GACnB,eAAe,GACf,UAAU,GACV,SAAS,GACT,QAAQ,GACR,eAAe,GACf,QAAQ,GACR,QAAQ,GACR,YAAY,GACZ,kBAAkB,GAClB,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAElB,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,yBAA0B,SAAQ,kBAAkB;IACnE,KAAK,CAAC,EAAE,KAAK,CACT,QAAQ,GACR,aAAa,GACb,UAAU,GACV,QAAQ,GACR,SAAS,GACT,WAAW,GACX,CAAC,MAAM,GAAG,EAAE,CAAC,CAChB,CAAC;CACH;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,cAAc,GACtB,kBAAkB,GAClB,yBAAyB,GACzB;IAAE,QAAQ,EAAE,sBAAsB,EAAE,CAAA;CAAE,GACtC,IAAI,CAAC;AAET,MAAM,WAAW,OAAO;IACtB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IACpC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IACrC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IACrC,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IAC5C,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IACvC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IACnC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;CACzC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/actions/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,160 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
36
+ var __importDefault = (this && this.__importDefault) || function (mod) {
37
+ return (mod && mod.__esModule) ? mod : { "default": mod };
38
+ };
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ const path = __importStar(require("path"));
41
+ const fs = __importStar(require("fs"));
42
+ const chalk_1 = __importDefault(require("chalk"));
43
+ const FileWriter_1 = require("../core/FileWriter");
44
+ const COMMANDS = ["build", "validate"];
45
+ function usage() {
46
+ console.log(`
47
+ ${chalk_1.default.bold("infrascript")} — typed infra config generator
48
+
49
+ ${chalk_1.default.bold("Usage:")}
50
+ infrascript build Generate YAML files from infrascript.config.ts
51
+ infrascript validate Type-check config without writing files
52
+
53
+ ${chalk_1.default.bold("Config file:")}
54
+ infrascript.config.ts (must have a default export via defineConfig)
55
+ `);
56
+ }
57
+ async function loadConfig(projectRoot) {
58
+ const configPath = path.resolve(projectRoot, "infrascript.config.ts");
59
+ if (!fs.existsSync(configPath)) {
60
+ console.error(chalk_1.default.red(`✗ No infrascript.config.ts found at ${configPath}`));
61
+ process.exit(1);
62
+ }
63
+ // Register ts-node on-the-fly for config loading
64
+ try {
65
+ require("ts-node").register({ transpileOnly: true, esm: false });
66
+ }
67
+ catch {
68
+ console.error(chalk_1.default.red("✗ ts-node is required to load infrascript.config.ts"));
69
+ console.error(chalk_1.default.gray(" Install it: npm install -D ts-node"));
70
+ process.exit(1);
71
+ }
72
+ const mod = require(configPath);
73
+ const config = mod.default ?? mod;
74
+ if (!config || typeof config !== "object") {
75
+ console.error(chalk_1.default.red("✗ infrascript.config.ts must have a default export from defineConfig()"));
76
+ process.exit(1);
77
+ }
78
+ return config;
79
+ }
80
+ async function runBuild(projectRoot, dryRun = false) {
81
+ console.log(chalk_1.default.bold("\n infrascript build\n"));
82
+ const config = await loadConfig(projectRoot);
83
+ const outcomes = [];
84
+ // ── GitHub Actions ──────────────────────────────────────────────────────
85
+ if (config.actions) {
86
+ for (const [, workflow] of Object.entries(config.actions)) {
87
+ if (dryRun) {
88
+ console.log(chalk_1.default.gray(` (validate) ${workflow.outputPath()}`));
89
+ workflow.toObject(); // throws if invalid
90
+ }
91
+ else {
92
+ outcomes.push((0, FileWriter_1.writeBuilder)(workflow, projectRoot));
93
+ }
94
+ }
95
+ }
96
+ // ── K8s apps (facade) ───────────────────────────────────────────────────
97
+ if (config.k8s?.apps) {
98
+ for (const [, app] of Object.entries(config.k8s.apps)) {
99
+ const builders = app.toBuilders();
100
+ for (const builder of builders) {
101
+ if (dryRun) {
102
+ console.log(chalk_1.default.gray(` (validate) ${builder.outputPath()}`));
103
+ builder.toObject();
104
+ }
105
+ else {
106
+ outcomes.push((0, FileWriter_1.writeBuilder)(builder, projectRoot));
107
+ }
108
+ }
109
+ }
110
+ }
111
+ // ── K8s manifests (low-level escape hatch) ───────────────────────────────
112
+ if (config.k8s?.manifests) {
113
+ for (const [, manifest] of Object.entries(config.k8s.manifests)) {
114
+ if (dryRun) {
115
+ console.log(chalk_1.default.gray(` (validate) ${manifest.outputPath()}`));
116
+ manifest.toObject();
117
+ }
118
+ else {
119
+ outcomes.push((0, FileWriter_1.writeBuilder)(manifest, projectRoot));
120
+ }
121
+ }
122
+ }
123
+ if (!dryRun) {
124
+ (0, FileWriter_1.printOutcomes)(outcomes);
125
+ const created = outcomes.filter((o) => o.result === "created").length;
126
+ const updated = outcomes.filter((o) => o.result === "updated").length;
127
+ const unchanged = outcomes.filter((o) => o.result === "unchanged").length;
128
+ console.log(`\n ${chalk_1.default.green(`${created} created`)} ${chalk_1.default.yellow(`${updated} updated`)} ${chalk_1.default.gray(`${unchanged} unchanged`)}\n`);
129
+ }
130
+ else {
131
+ console.log(chalk_1.default.green("\n ✓ Config is valid\n"));
132
+ }
133
+ }
134
+ async function main() {
135
+ const [, , cmd, ...args] = process.argv;
136
+ const projectRoot = process.cwd();
137
+ if (!cmd || cmd === "--help" || cmd === "-h") {
138
+ usage();
139
+ process.exit(0);
140
+ }
141
+ if (!COMMANDS.includes(cmd)) {
142
+ console.error(chalk_1.default.red(`✗ Unknown command: ${cmd}`));
143
+ usage();
144
+ process.exit(1);
145
+ }
146
+ try {
147
+ if (cmd === "build") {
148
+ await runBuild(projectRoot, false);
149
+ }
150
+ else if (cmd === "validate") {
151
+ await runBuild(projectRoot, true);
152
+ }
153
+ }
154
+ catch (err) {
155
+ console.error(chalk_1.default.red(`\n ✗ ${err.message}\n`));
156
+ process.exit(1);
157
+ }
158
+ }
159
+ main();
160
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import type { ActionsWorkflow } from "./actions/Workflow";
2
+ import type { K8sApp } from "./k8s/K8sApp";
3
+ import type { Builder } from "./core/Builder";
4
+ import type { EKSCluster } from "./k8s/EKSCluster";
5
+ export interface K8sConfig {
6
+ /**
7
+ * Optional EKS cluster context.
8
+ * When present, all K8sApp instances automatically receive
9
+ * AWS-specific annotations (ALB ingress, ECR pull policy, gp3 storage).
10
+ */
11
+ cluster?: EKSCluster;
12
+ /** High-level app definitions — each emits multiple manifests automatically */
13
+ apps?: Record<string, K8sApp>;
14
+ /**
15
+ * Low-level escape hatch: individual manifest builders.
16
+ * Each emits exactly one YAML file.
17
+ */
18
+ manifests?: Record<string, Builder>;
19
+ }
20
+ export interface InfrascriptConfig {
21
+ actions?: Record<string, ActionsWorkflow>;
22
+ k8s?: K8sConfig;
23
+ }
24
+ /**
25
+ * Define your infrascript configuration.
26
+ *
27
+ * When k8s.cluster is an EKSCluster, it is automatically injected into
28
+ * all K8sApp instances — you don't need to pass it to each app manually.
29
+ *
30
+ * @example
31
+ * export default defineConfig({
32
+ * actions: { ci, deploy },
33
+ * k8s: {
34
+ * cluster: new EKSCluster({ region: "ap-northeast-1", accountId: "123" }),
35
+ * apps: { api, worker, web },
36
+ * },
37
+ * });
38
+ */
39
+ export declare function defineConfig(config: InfrascriptConfig): InfrascriptConfig;
40
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,MAAM,WAAW,SAAS;IACxB;;;;OAIG;IACH,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,+EAA+E;IAC/E,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC1C,GAAG,CAAC,EAAE,SAAS,CAAC;CACjB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,iBAAiB,GAAG,iBAAiB,CASzE"}
package/dist/config.js ADDED
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defineConfig = defineConfig;
4
+ /**
5
+ * Define your infrascript configuration.
6
+ *
7
+ * When k8s.cluster is an EKSCluster, it is automatically injected into
8
+ * all K8sApp instances — you don't need to pass it to each app manually.
9
+ *
10
+ * @example
11
+ * export default defineConfig({
12
+ * actions: { ci, deploy },
13
+ * k8s: {
14
+ * cluster: new EKSCluster({ region: "ap-northeast-1", accountId: "123" }),
15
+ * apps: { api, worker, web },
16
+ * },
17
+ * });
18
+ */
19
+ function defineConfig(config) {
20
+ // Inject cluster context into all K8sApp instances at config-definition time
21
+ if (config.k8s?.cluster && config.k8s.apps) {
22
+ const cluster = config.k8s.cluster;
23
+ for (const app of Object.values(config.k8s.apps)) {
24
+ app._cluster = cluster;
25
+ }
26
+ }
27
+ return config;
28
+ }
29
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;AAyCA,oCASC;AAxBD;;;;;;;;;;;;;;GAcG;AACH,SAAgB,YAAY,CAAC,MAAyB;IACpD,6EAA6E;IAC7E,IAAI,MAAM,CAAC,GAAG,EAAE,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAC3C,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;QACnC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACjD,GAAG,CAAC,QAAQ,GAAG,OAAO,CAAC;QACzB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Base class for all infrascript builders.
3
+ * Each builder knows its output path and can serialize itself to a YAML string.
4
+ */
5
+ export declare abstract class Builder {
6
+ abstract readonly kind: string;
7
+ /** Serialize to a plain JS object (the YAML-ready representation) */
8
+ abstract toObject(): Record<string, unknown>;
9
+ /** Output file path relative to project root */
10
+ abstract outputPath(): string;
11
+ }
12
+ //# sourceMappingURL=Builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Builder.d.ts","sourceRoot":"","sources":["../../src/core/Builder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,8BAAsB,OAAO;IAC3B,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAE/B,qEAAqE;IACrE,QAAQ,CAAC,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAE5C,gDAAgD;IAChD,QAAQ,CAAC,UAAU,IAAI,MAAM;CAC9B"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Builder = void 0;
4
+ /**
5
+ * Base class for all infrascript builders.
6
+ * Each builder knows its output path and can serialize itself to a YAML string.
7
+ */
8
+ class Builder {
9
+ }
10
+ exports.Builder = Builder;
11
+ //# sourceMappingURL=Builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Builder.js","sourceRoot":"","sources":["../../src/core/Builder.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,MAAsB,OAAO;CAQ5B;AARD,0BAQC"}
@@ -0,0 +1,10 @@
1
+ import type { Builder } from "./Builder";
2
+ export type WriteResult = "created" | "updated" | "unchanged";
3
+ export interface WriteOutcome {
4
+ filePath: string;
5
+ result: WriteResult;
6
+ }
7
+ export declare function writeBuilder(builder: Builder, projectRoot: string): WriteOutcome;
8
+ export declare function writeFile(absPath: string, relPath: string, content: string): WriteOutcome;
9
+ export declare function printOutcomes(outcomes: WriteOutcome[]): void;
10
+ //# sourceMappingURL=FileWriter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileWriter.d.ts","sourceRoot":"","sources":["../../src/core/FileWriter.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,CAAC;AAE9D,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,wBAAgB,YAAY,CAC1B,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,MAAM,GAClB,YAAY,CAMd;AAED,wBAAgB,SAAS,CACvB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,YAAY,CAed;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,IAAI,CAU5D"}
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.writeBuilder = writeBuilder;
40
+ exports.writeFile = writeFile;
41
+ exports.printOutcomes = printOutcomes;
42
+ const fs = __importStar(require("fs"));
43
+ const path = __importStar(require("path"));
44
+ const chalk_1 = __importDefault(require("chalk"));
45
+ const YamlSerializer_1 = require("./YamlSerializer");
46
+ function writeBuilder(builder, projectRoot) {
47
+ const relPath = builder.outputPath();
48
+ const absPath = path.resolve(projectRoot, relPath);
49
+ const content = (0, YamlSerializer_1.toYaml)(builder.toObject());
50
+ return writeFile(absPath, relPath, content);
51
+ }
52
+ function writeFile(absPath, relPath, content) {
53
+ // Ensure directory exists
54
+ fs.mkdirSync(path.dirname(absPath), { recursive: true });
55
+ if (fs.existsSync(absPath)) {
56
+ const existing = fs.readFileSync(absPath, "utf8");
57
+ if (existing === content) {
58
+ return { filePath: relPath, result: "unchanged" };
59
+ }
60
+ fs.writeFileSync(absPath, content, "utf8");
61
+ return { filePath: relPath, result: "updated" };
62
+ }
63
+ fs.writeFileSync(absPath, content, "utf8");
64
+ return { filePath: relPath, result: "created" };
65
+ }
66
+ function printOutcomes(outcomes) {
67
+ for (const { filePath, result } of outcomes) {
68
+ if (result === "created") {
69
+ console.log(chalk_1.default.green(" ✓ created ") + filePath);
70
+ }
71
+ else if (result === "updated") {
72
+ console.log(chalk_1.default.yellow(" ↻ updated ") + filePath);
73
+ }
74
+ else {
75
+ console.log(chalk_1.default.gray(" - unchanged ") + filePath);
76
+ }
77
+ }
78
+ }
79
+ //# sourceMappingURL=FileWriter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileWriter.js","sourceRoot":"","sources":["../../src/core/FileWriter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA,oCASC;AAED,8BAmBC;AAED,sCAUC;AAvDD,uCAAyB;AACzB,2CAA6B;AAC7B,kDAA0B;AAC1B,qDAA0C;AAU1C,SAAgB,YAAY,CAC1B,OAAgB,EAChB,WAAmB;IAEnB,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IACrC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,IAAA,uBAAM,EAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAE3C,OAAO,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC;AAED,SAAgB,SAAS,CACvB,OAAe,EACf,OAAe,EACf,OAAe;IAEf,0BAA0B;IAC1B,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEzD,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAClD,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YACzB,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;QACpD,CAAC;QACD,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAC3C,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAClD,CAAC;IAED,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAC3C,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AAClD,CAAC;AAED,SAAgB,aAAa,CAAC,QAAwB;IACpD,KAAK,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;QAC5C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,QAAQ,CAAC,CAAC;QACvD,CAAC;aAAM,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,QAAQ,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,QAAQ,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function toYaml(obj: Record<string, unknown>): string;
2
+ //# sourceMappingURL=YamlSerializer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"YamlSerializer.d.ts","sourceRoot":"","sources":["../../src/core/YamlSerializer.ts"],"names":[],"mappings":"AAEA,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAO3D"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.toYaml = toYaml;
37
+ const yaml = __importStar(require("js-yaml"));
38
+ function toYaml(obj) {
39
+ return yaml.dump(obj, {
40
+ indent: 2,
41
+ lineWidth: 120,
42
+ noRefs: true,
43
+ quotingType: '"',
44
+ });
45
+ }
46
+ //# sourceMappingURL=YamlSerializer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"YamlSerializer.js","sourceRoot":"","sources":["../../src/core/YamlSerializer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,wBAOC;AATD,8CAAgC;AAEhC,SAAgB,MAAM,CAAC,GAA4B;IACjD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;QACpB,MAAM,EAAE,CAAC;QACT,SAAS,EAAE,GAAG;QACd,MAAM,EAAE,IAAI;QACZ,WAAW,EAAE,GAAG;KACjB,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,16 @@
1
+ export { defineConfig } from "./config";
2
+ export type { InfrascriptConfig, K8sConfig } from "./config";
3
+ export type { Builder } from "./core/Builder";
4
+ export { ActionsWorkflow } from "./actions/Workflow";
5
+ export { Job } from "./actions/Job";
6
+ export { Step } from "./actions/Step";
7
+ export type { Runner, TriggerEvent, PushTriggerOptions, PullRequestTriggerOptions, Permissions, StepEnv, } from "./actions/types";
8
+ export { K8sApp } from "./k8s/K8sApp";
9
+ export { EKSCluster } from "./k8s/EKSCluster";
10
+ export type { EKSClusterOptions } from "./k8s/EKSCluster";
11
+ export { Deployment } from "./k8s/Deployment";
12
+ export { K8sService, Ingress, ConfigMap, Secret, PVC } from "./k8s/Manifests";
13
+ export type { SecretType, AccessMode } from "./k8s/Manifests";
14
+ export { secretRef, configMapRef } from "./k8s/types";
15
+ export type { ResourceRequirements, ImagePullPolicy, RestartPolicy, ServiceType, Protocol, EnvVar, EnvVarValueFrom, VolumeMount, IngressTlsOptions, K8sLabels, K8sAnnotations, } from "./k8s/types";
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,YAAY,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAG7D,YAAY,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAG9C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,YAAY,EACV,MAAM,EACN,YAAY,EACZ,kBAAkB,EAClB,yBAAyB,EACzB,WAAW,EACX,OAAO,GACR,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAGtC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAG1D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAC9E,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACtD,YAAY,EACV,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,WAAW,EACX,QAAQ,EACR,MAAM,EACN,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,SAAS,EACT,cAAc,GACf,MAAM,aAAa,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.configMapRef = exports.secretRef = exports.PVC = exports.Secret = exports.ConfigMap = exports.Ingress = exports.K8sService = exports.Deployment = exports.EKSCluster = exports.K8sApp = exports.Step = exports.Job = exports.ActionsWorkflow = exports.defineConfig = void 0;
4
+ // Config
5
+ var config_1 = require("./config");
6
+ Object.defineProperty(exports, "defineConfig", { enumerable: true, get: function () { return config_1.defineConfig; } });
7
+ // GitHub Actions
8
+ var Workflow_1 = require("./actions/Workflow");
9
+ Object.defineProperty(exports, "ActionsWorkflow", { enumerable: true, get: function () { return Workflow_1.ActionsWorkflow; } });
10
+ var Job_1 = require("./actions/Job");
11
+ Object.defineProperty(exports, "Job", { enumerable: true, get: function () { return Job_1.Job; } });
12
+ var Step_1 = require("./actions/Step");
13
+ Object.defineProperty(exports, "Step", { enumerable: true, get: function () { return Step_1.Step; } });
14
+ // K8s — high level
15
+ var K8sApp_1 = require("./k8s/K8sApp");
16
+ Object.defineProperty(exports, "K8sApp", { enumerable: true, get: function () { return K8sApp_1.K8sApp; } });
17
+ // K8s — cluster contexts
18
+ var EKSCluster_1 = require("./k8s/EKSCluster");
19
+ Object.defineProperty(exports, "EKSCluster", { enumerable: true, get: function () { return EKSCluster_1.EKSCluster; } });
20
+ // K8s — low level (escape hatch)
21
+ var Deployment_1 = require("./k8s/Deployment");
22
+ Object.defineProperty(exports, "Deployment", { enumerable: true, get: function () { return Deployment_1.Deployment; } });
23
+ var Manifests_1 = require("./k8s/Manifests");
24
+ Object.defineProperty(exports, "K8sService", { enumerable: true, get: function () { return Manifests_1.K8sService; } });
25
+ Object.defineProperty(exports, "Ingress", { enumerable: true, get: function () { return Manifests_1.Ingress; } });
26
+ Object.defineProperty(exports, "ConfigMap", { enumerable: true, get: function () { return Manifests_1.ConfigMap; } });
27
+ Object.defineProperty(exports, "Secret", { enumerable: true, get: function () { return Manifests_1.Secret; } });
28
+ Object.defineProperty(exports, "PVC", { enumerable: true, get: function () { return Manifests_1.PVC; } });
29
+ var types_1 = require("./k8s/types");
30
+ Object.defineProperty(exports, "secretRef", { enumerable: true, get: function () { return types_1.secretRef; } });
31
+ Object.defineProperty(exports, "configMapRef", { enumerable: true, get: function () { return types_1.configMapRef; } });
32
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,SAAS;AACT,mCAAwC;AAA/B,sGAAA,YAAY,OAAA;AAMrB,iBAAiB;AACjB,+CAAqD;AAA5C,2GAAA,eAAe,OAAA;AACxB,qCAAoC;AAA3B,0FAAA,GAAG,OAAA;AACZ,uCAAsC;AAA7B,4FAAA,IAAI,OAAA;AAUb,mBAAmB;AACnB,uCAAsC;AAA7B,gGAAA,MAAM,OAAA;AAEf,yBAAyB;AACzB,+CAA8C;AAArC,wGAAA,UAAU,OAAA;AAGnB,iCAAiC;AACjC,+CAA8C;AAArC,wGAAA,UAAU,OAAA;AACnB,6CAA8E;AAArE,uGAAA,UAAU,OAAA;AAAE,oGAAA,OAAO,OAAA;AAAE,sGAAA,SAAS,OAAA;AAAE,mGAAA,MAAM,OAAA;AAAE,gGAAA,GAAG,OAAA;AAEpD,qCAAsD;AAA7C,kGAAA,SAAS,OAAA;AAAE,qGAAA,YAAY,OAAA"}
@@ -0,0 +1,41 @@
1
+ import { Builder } from "../core/Builder";
2
+ import type { ResourceRequirements, ImagePullPolicy, EnvVarValueFrom, VolumeMount, K8sLabels, K8sAnnotations } from "./types";
3
+ export declare class Deployment extends Builder {
4
+ readonly kind = "Deployment";
5
+ private _name;
6
+ private _namespace?;
7
+ private _replicas;
8
+ private _image;
9
+ private _imagePullPolicy?;
10
+ private _ports;
11
+ private _env;
12
+ private _resources?;
13
+ private _volumeMounts;
14
+ private _volumes;
15
+ private _labels;
16
+ private _annotations;
17
+ private _serviceAccountName?;
18
+ private _initContainers;
19
+ private _livenessProbe?;
20
+ private _readinessProbe?;
21
+ constructor(name: string, image: string);
22
+ namespace(ns: string): this;
23
+ replicas(count: number): this;
24
+ imagePullPolicy(policy: ImagePullPolicy): this;
25
+ port(...ports: number[]): this;
26
+ /** Set plain string env vars */
27
+ env(vars: Record<string, string>): this;
28
+ /** Set an env var sourced from a secret or configmap ref */
29
+ envFrom(name: string, valueFrom: EnvVarValueFrom): this;
30
+ resources(req: ResourceRequirements): this;
31
+ volumeMount(mount: VolumeMount): this;
32
+ volume(vol: Record<string, unknown>): this;
33
+ labels(l: K8sLabels): this;
34
+ annotations(a: K8sAnnotations): this;
35
+ serviceAccount(name: string): this;
36
+ livenessProbe(probe: Record<string, unknown>): this;
37
+ readinessProbe(probe: Record<string, unknown>): this;
38
+ outputPath(): string;
39
+ toObject(): Record<string, unknown>;
40
+ }
41
+ //# sourceMappingURL=Deployment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Deployment.d.ts","sourceRoot":"","sources":["../../src/k8s/Deployment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,KAAK,EACV,oBAAoB,EACpB,eAAe,EAEf,eAAe,EACf,WAAW,EACX,SAAS,EACT,cAAc,EACf,MAAM,SAAS,CAAC;AAEjB,qBAAa,UAAW,SAAQ,OAAO;IACrC,QAAQ,CAAC,IAAI,gBAAgB;IAE7B,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,UAAU,CAAC,CAAS;IAC5B,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,gBAAgB,CAAC,CAAkB;IAC3C,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,IAAI,CAAgB;IAC5B,OAAO,CAAC,UAAU,CAAC,CAAuB;IAC1C,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,QAAQ,CAAiC;IACjD,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,mBAAmB,CAAC,CAAS;IACrC,OAAO,CAAC,eAAe,CAAiC;IACxD,OAAO,CAAC,cAAc,CAAC,CAA0B;IACjD,OAAO,CAAC,eAAe,CAAC,CAA0B;gBAEtC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAMvC,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAK3B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK7B,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;IAK9C,IAAI,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IAK9B,gCAAgC;IAChC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAOvC,4DAA4D;IAC5D,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,GAAG,IAAI;IAKvD,SAAS,CAAC,GAAG,EAAE,oBAAoB,GAAG,IAAI;IAK1C,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAKrC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAK1C,MAAM,CAAC,CAAC,EAAE,SAAS,GAAG,IAAI;IAK1B,WAAW,CAAC,CAAC,EAAE,cAAc,GAAG,IAAI;IAKpC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKlC,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAKnD,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAKpD,UAAU,IAAI,MAAM;IAKpB,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CA4CpC"}