@tdk-landscape/tdk-cli-core 1.3.14
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.
- package/README.md +293 -0
- package/bin/tdk.js +14 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +64 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/completion.d.ts +3 -0
- package/dist/commands/completion.d.ts.map +1 -0
- package/dist/commands/completion.js +294 -0
- package/dist/commands/completion.js.map +1 -0
- package/dist/commands/config.d.ts +3 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +220 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/doctor.d.ts +3 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +176 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/down.d.ts +3 -0
- package/dist/commands/down.d.ts.map +1 -0
- package/dist/commands/down.js +32 -0
- package/dist/commands/down.js.map +1 -0
- package/dist/commands/help.d.ts +2 -0
- package/dist/commands/help.d.ts.map +1 -0
- package/dist/commands/help.js +130 -0
- package/dist/commands/help.js.map +1 -0
- package/dist/commands/networks.d.ts +3 -0
- package/dist/commands/networks.d.ts.map +1 -0
- package/dist/commands/networks.js +260 -0
- package/dist/commands/networks.js.map +1 -0
- package/dist/commands/project.d.ts +3 -0
- package/dist/commands/project.d.ts.map +1 -0
- package/dist/commands/project.js +360 -0
- package/dist/commands/project.js.map +1 -0
- package/dist/commands/projects.d.ts +3 -0
- package/dist/commands/projects.d.ts.map +1 -0
- package/dist/commands/projects.js +71 -0
- package/dist/commands/projects.js.map +1 -0
- package/dist/commands/resource.d.ts +69 -0
- package/dist/commands/resource.d.ts.map +1 -0
- package/dist/commands/resource.js +572 -0
- package/dist/commands/resource.js.map +1 -0
- package/dist/commands/resources.d.ts +3 -0
- package/dist/commands/resources.d.ts.map +1 -0
- package/dist/commands/resources.js +73 -0
- package/dist/commands/resources.js.map +1 -0
- package/dist/commands/stack.d.ts +3 -0
- package/dist/commands/stack.d.ts.map +1 -0
- package/dist/commands/stack.js +103 -0
- package/dist/commands/stack.js.map +1 -0
- package/dist/commands/stacks.d.ts +3 -0
- package/dist/commands/stacks.d.ts.map +1 -0
- package/dist/commands/stacks.js +43 -0
- package/dist/commands/stacks.js.map +1 -0
- package/dist/commands/status.d.ts +3 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +71 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/ui.d.ts +3 -0
- package/dist/commands/ui.d.ts.map +1 -0
- package/dist/commands/ui.js +446 -0
- package/dist/commands/ui.js.map +1 -0
- package/dist/commands/up.d.ts +3 -0
- package/dist/commands/up.d.ts.map +1 -0
- package/dist/commands/up.js +149 -0
- package/dist/commands/up.js.map +1 -0
- package/dist/commands/upgrade.d.ts +3 -0
- package/dist/commands/upgrade.d.ts.map +1 -0
- package/dist/commands/upgrade.js +454 -0
- package/dist/commands/upgrade.js.map +1 -0
- package/dist/commands/version.d.ts +3 -0
- package/dist/commands/version.d.ts.map +1 -0
- package/dist/commands/version.js +9 -0
- package/dist/commands/version.js.map +1 -0
- package/dist/components/Accessible.d.ts +8 -0
- package/dist/components/Accessible.d.ts.map +1 -0
- package/dist/components/Accessible.js +10 -0
- package/dist/components/Accessible.js.map +1 -0
- package/dist/components/BaseTooltip.d.ts +4 -0
- package/dist/components/BaseTooltip.d.ts.map +1 -0
- package/dist/components/BaseTooltip.js +28 -0
- package/dist/components/BaseTooltip.js.map +1 -0
- package/dist/components/DetailPanel.d.ts +4 -0
- package/dist/components/DetailPanel.d.ts.map +1 -0
- package/dist/components/DetailPanel.js +18 -0
- package/dist/components/DetailPanel.js.map +1 -0
- package/dist/components/FileTree.d.ts +4 -0
- package/dist/components/FileTree.d.ts.map +1 -0
- package/dist/components/FileTree.js +47 -0
- package/dist/components/FileTree.js.map +1 -0
- package/dist/components/ResourceSelectInput.d.ts +4 -0
- package/dist/components/ResourceSelectInput.d.ts.map +1 -0
- package/dist/components/ResourceSelectInput.js +7 -0
- package/dist/components/ResourceSelectInput.js.map +1 -0
- package/dist/components/ResourceTable.d.ts +4 -0
- package/dist/components/ResourceTable.d.ts.map +1 -0
- package/dist/components/ResourceTable.js +18 -0
- package/dist/components/ResourceTable.js.map +1 -0
- package/dist/components/TabBar.d.ts +4 -0
- package/dist/components/TabBar.d.ts.map +1 -0
- package/dist/components/TabBar.js +17 -0
- package/dist/components/TabBar.js.map +1 -0
- package/dist/components/Tooltip.d.ts +12 -0
- package/dist/components/Tooltip.d.ts.map +1 -0
- package/dist/components/Tooltip.js +12 -0
- package/dist/components/Tooltip.js.map +1 -0
- package/dist/components/index.d.ts +8 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +8 -0
- package/dist/components/index.js.map +1 -0
- package/dist/config/platform-standards.d.ts +159 -0
- package/dist/config/platform-standards.d.ts.map +1 -0
- package/dist/config/platform-standards.js +181 -0
- package/dist/config/platform-standards.js.map +1 -0
- package/dist/generator/extension-fetch.d.ts +9 -0
- package/dist/generator/extension-fetch.d.ts.map +1 -0
- package/dist/generator/extension-fetch.js +153 -0
- package/dist/generator/extension-fetch.js.map +1 -0
- package/dist/generator/template-engine.d.ts +60 -0
- package/dist/generator/template-engine.d.ts.map +1 -0
- package/dist/generator/template-engine.js +416 -0
- package/dist/generator/template-engine.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/types/index.d.ts +236 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +17 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/cache.d.ts +19 -0
- package/dist/utils/cache.d.ts.map +1 -0
- package/dist/utils/cache.js +64 -0
- package/dist/utils/cache.js.map +1 -0
- package/dist/utils/command-helpers.d.ts +17 -0
- package/dist/utils/command-helpers.d.ts.map +1 -0
- package/dist/utils/command-helpers.js +48 -0
- package/dist/utils/command-helpers.js.map +1 -0
- package/dist/utils/constants.d.ts +50 -0
- package/dist/utils/constants.d.ts.map +1 -0
- package/dist/utils/constants.js +100 -0
- package/dist/utils/constants.js.map +1 -0
- package/dist/utils/discovery-context.d.ts +4 -0
- package/dist/utils/discovery-context.d.ts.map +1 -0
- package/dist/utils/discovery-context.js +39 -0
- package/dist/utils/discovery-context.js.map +1 -0
- package/dist/utils/docker.d.ts +3 -0
- package/dist/utils/docker.d.ts.map +1 -0
- package/dist/utils/docker.js +13 -0
- package/dist/utils/docker.js.map +1 -0
- package/dist/utils/env-validator.d.ts +15 -0
- package/dist/utils/env-validator.d.ts.map +1 -0
- package/dist/utils/env-validator.js +95 -0
- package/dist/utils/env-validator.js.map +1 -0
- package/dist/utils/errors.d.ts +28 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +127 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/file-helpers.d.ts +14 -0
- package/dist/utils/file-helpers.d.ts.map +1 -0
- package/dist/utils/file-helpers.js +45 -0
- package/dist/utils/file-helpers.js.map +1 -0
- package/dist/utils/formatting.d.ts +30 -0
- package/dist/utils/formatting.d.ts.map +1 -0
- package/dist/utils/formatting.js +164 -0
- package/dist/utils/formatting.js.map +1 -0
- package/dist/utils/paths.d.ts +3 -0
- package/dist/utils/paths.d.ts.map +1 -0
- package/dist/utils/paths.js +41 -0
- package/dist/utils/paths.js.map +1 -0
- package/dist/utils/port-assignment.d.ts +6 -0
- package/dist/utils/port-assignment.d.ts.map +1 -0
- package/dist/utils/port-assignment.js +75 -0
- package/dist/utils/port-assignment.js.map +1 -0
- package/dist/utils/project-features.d.ts +23 -0
- package/dist/utils/project-features.d.ts.map +1 -0
- package/dist/utils/project-features.js +98 -0
- package/dist/utils/project-features.js.map +1 -0
- package/dist/utils/project-templates.d.ts +7 -0
- package/dist/utils/project-templates.d.ts.map +1 -0
- package/dist/utils/project-templates.js +24 -0
- package/dist/utils/project-templates.js.map +1 -0
- package/dist/utils/resource-features.d.ts +28 -0
- package/dist/utils/resource-features.d.ts.map +1 -0
- package/dist/utils/resource-features.js +148 -0
- package/dist/utils/resource-features.js.map +1 -0
- package/dist/utils/services.d.ts +18 -0
- package/dist/utils/services.d.ts.map +1 -0
- package/dist/utils/services.js +291 -0
- package/dist/utils/services.js.map +1 -0
- package/dist/utils/stack-features.d.ts +22 -0
- package/dist/utils/stack-features.d.ts.map +1 -0
- package/dist/utils/stack-features.js +13 -0
- package/dist/utils/stack-features.js.map +1 -0
- package/dist/utils/tar.d.ts +7 -0
- package/dist/utils/tar.d.ts.map +1 -0
- package/dist/utils/tar.js +21 -0
- package/dist/utils/tar.js.map +1 -0
- package/dist/utils/tilt.d.ts +18 -0
- package/dist/utils/tilt.d.ts.map +1 -0
- package/dist/utils/tilt.js +77 -0
- package/dist/utils/tilt.js.map +1 -0
- package/dist/utils/validation.d.ts +9 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +49 -0
- package/dist/utils/validation.js.map +1 -0
- package/package.json +72 -0
- package/templates/.tiltignore.hbs +73 -0
- package/templates/TILT_RESOURCE_DEFAULTS.star.hbs +221 -0
- package/templates/TILT_TECH_STACK.star.hbs +150 -0
- package/templates/Tiltfile.hbs +295 -0
- package/templates/spec.master.hbs +186 -0
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
export interface DiscoveredResource {
|
|
2
|
+
name: string;
|
|
3
|
+
path: string;
|
|
4
|
+
configPath: string;
|
|
5
|
+
config?: ResourceConfig;
|
|
6
|
+
stack?: string;
|
|
7
|
+
port?: number;
|
|
8
|
+
type?: ResourceType;
|
|
9
|
+
}
|
|
10
|
+
export interface ResourceConfig {
|
|
11
|
+
appName: string;
|
|
12
|
+
appType: "backend" | "frontend" | "library" | "sdk" | "worker" | "migrator";
|
|
13
|
+
stack?: string;
|
|
14
|
+
port?: number;
|
|
15
|
+
replicas?: number;
|
|
16
|
+
runtime?: string;
|
|
17
|
+
features?: string[];
|
|
18
|
+
dependsOn?: string[];
|
|
19
|
+
enabled?: boolean;
|
|
20
|
+
basePath?: string;
|
|
21
|
+
backendName?: string;
|
|
22
|
+
apiPath?: string;
|
|
23
|
+
}
|
|
24
|
+
export interface DiscoveredStack {
|
|
25
|
+
name: string;
|
|
26
|
+
description?: string;
|
|
27
|
+
resources: DiscoveredResource[];
|
|
28
|
+
resourceCount: number;
|
|
29
|
+
}
|
|
30
|
+
export interface TiltCommandResult {
|
|
31
|
+
exitCode: number;
|
|
32
|
+
stdout: string;
|
|
33
|
+
stderr: string;
|
|
34
|
+
}
|
|
35
|
+
export type FileType = "docker" | "tilt" | "config" | "prisma" | "generated" | "unknown";
|
|
36
|
+
export interface AutogeneratedFile {
|
|
37
|
+
name: string;
|
|
38
|
+
path: string;
|
|
39
|
+
type: FileType;
|
|
40
|
+
size: number;
|
|
41
|
+
lastModified: string;
|
|
42
|
+
}
|
|
43
|
+
export type ResourceFileType = "json" | "text";
|
|
44
|
+
export interface FileGenerationTask {
|
|
45
|
+
type: ResourceFileType;
|
|
46
|
+
filename: string;
|
|
47
|
+
content: JsonValue;
|
|
48
|
+
description: string;
|
|
49
|
+
emoji: string;
|
|
50
|
+
}
|
|
51
|
+
export type ResourceType = "frontend" | "backend" | "library" | "sdk" | "worker" | "migrator";
|
|
52
|
+
export declare const CREATABLE_RESOURCE_TYPES: readonly ["backend", "frontend", "worker"];
|
|
53
|
+
export type CreatableResourceType = Extract<ResourceType, (typeof CREATABLE_RESOURCE_TYPES)[number]>;
|
|
54
|
+
export declare function isCreatableResourceType(value: unknown): value is CreatableResourceType;
|
|
55
|
+
export type ResourceStatus = "ready" | "pending" | "error" | "unknown";
|
|
56
|
+
export interface ResourceMetadata {
|
|
57
|
+
name: string;
|
|
58
|
+
stack?: string;
|
|
59
|
+
type: ResourceType;
|
|
60
|
+
port?: number;
|
|
61
|
+
createdAt: string;
|
|
62
|
+
lastModified: string;
|
|
63
|
+
dependencies: string[];
|
|
64
|
+
hasDockerfile: boolean;
|
|
65
|
+
hasTiltfile: boolean;
|
|
66
|
+
hasDockerCompose: boolean;
|
|
67
|
+
autogeneratedFiles: AutogeneratedFile[];
|
|
68
|
+
status: ResourceStatus;
|
|
69
|
+
}
|
|
70
|
+
export type StackHealthStatus = "healthy" | "degraded" | "error" | "unknown";
|
|
71
|
+
export interface StackMetadata {
|
|
72
|
+
name: string;
|
|
73
|
+
resourceCount: number;
|
|
74
|
+
createdAt: string;
|
|
75
|
+
lastModified: string;
|
|
76
|
+
resources: ResourceMetadata[];
|
|
77
|
+
overallStatus: StackHealthStatus;
|
|
78
|
+
}
|
|
79
|
+
export type TiltRuntimeStatus = "running" | "pending" | "error" | "unknown";
|
|
80
|
+
export type TiltBuildStatus = "ok" | "error" | "in_progress" | "unknown";
|
|
81
|
+
export interface TiltResourceStatus {
|
|
82
|
+
runtimeStatus: TiltRuntimeStatus;
|
|
83
|
+
buildStatus: TiltBuildStatus;
|
|
84
|
+
lastBuildTime: string | null;
|
|
85
|
+
currentBuildTime: string | null;
|
|
86
|
+
available: boolean;
|
|
87
|
+
}
|
|
88
|
+
export type JsonValue = string | number | boolean | null | JsonArray | JsonObject;
|
|
89
|
+
export interface JsonArray extends Array<JsonValue> {
|
|
90
|
+
}
|
|
91
|
+
export interface JsonObject extends Record<string, JsonValue> {
|
|
92
|
+
}
|
|
93
|
+
export interface ProjectStackDefinition {
|
|
94
|
+
name: string;
|
|
95
|
+
description: string;
|
|
96
|
+
services: string[];
|
|
97
|
+
}
|
|
98
|
+
export interface ProjectOptionalInfra {
|
|
99
|
+
monitoring: boolean;
|
|
100
|
+
elk: boolean;
|
|
101
|
+
debezium: boolean;
|
|
102
|
+
golden_image: boolean;
|
|
103
|
+
verdaccio: boolean;
|
|
104
|
+
}
|
|
105
|
+
export interface ProjectDiscovery {
|
|
106
|
+
paths: string[];
|
|
107
|
+
}
|
|
108
|
+
export interface ProjectConfig {
|
|
109
|
+
version: string;
|
|
110
|
+
project: {
|
|
111
|
+
name: string;
|
|
112
|
+
version: string;
|
|
113
|
+
};
|
|
114
|
+
stacks: {
|
|
115
|
+
pre_alpha: ProjectStackDefinition;
|
|
116
|
+
alpha: ProjectStackDefinition;
|
|
117
|
+
beta: ProjectStackDefinition;
|
|
118
|
+
out_of_scope: ProjectStackDefinition;
|
|
119
|
+
};
|
|
120
|
+
always_enabled_infra?: string[];
|
|
121
|
+
optional_infra: ProjectOptionalInfra;
|
|
122
|
+
discovery: ProjectDiscovery;
|
|
123
|
+
overrides?: Record<string, JsonValue>;
|
|
124
|
+
}
|
|
125
|
+
export type TabId = "overview" | "resources" | "events" | "files" | "config";
|
|
126
|
+
export interface Tab {
|
|
127
|
+
id: TabId;
|
|
128
|
+
label: string;
|
|
129
|
+
shortcut: string;
|
|
130
|
+
}
|
|
131
|
+
export interface TabBarProps {
|
|
132
|
+
activeTab: TabId;
|
|
133
|
+
onTabChange: (tab: TabId) => void;
|
|
134
|
+
compact?: boolean;
|
|
135
|
+
}
|
|
136
|
+
export type TooltipProps = BaseTooltipProps;
|
|
137
|
+
export interface DetailPanelProps {
|
|
138
|
+
stack: DiscoveredStack | null;
|
|
139
|
+
service: DiscoveredResource | null;
|
|
140
|
+
stackMetadata?: StackMetadata | null;
|
|
141
|
+
visible: boolean;
|
|
142
|
+
}
|
|
143
|
+
export interface ResourceTableProps {
|
|
144
|
+
resources: ResourceMetadata[];
|
|
145
|
+
maxWidth?: number;
|
|
146
|
+
}
|
|
147
|
+
export interface ResourceSelectInputProps {
|
|
148
|
+
items: SelectItem[];
|
|
149
|
+
onSelect: (item: SelectItem) => void;
|
|
150
|
+
highlightedIndex: number;
|
|
151
|
+
}
|
|
152
|
+
export interface FileNode {
|
|
153
|
+
name: string;
|
|
154
|
+
path: string;
|
|
155
|
+
type: "directory" | "file";
|
|
156
|
+
fileType?: FileType;
|
|
157
|
+
children?: FileNode[];
|
|
158
|
+
size?: number;
|
|
159
|
+
lastModified?: string;
|
|
160
|
+
}
|
|
161
|
+
export interface ValidationResult {
|
|
162
|
+
valid: boolean;
|
|
163
|
+
error?: string;
|
|
164
|
+
}
|
|
165
|
+
export interface CheckResult {
|
|
166
|
+
name: string;
|
|
167
|
+
didPass: boolean;
|
|
168
|
+
message: string;
|
|
169
|
+
fix?: string;
|
|
170
|
+
}
|
|
171
|
+
export interface ServiceUrl {
|
|
172
|
+
name: string;
|
|
173
|
+
stack?: string;
|
|
174
|
+
basePath: string;
|
|
175
|
+
url: string;
|
|
176
|
+
port?: number;
|
|
177
|
+
status: "running" | "stopped" | "unknown";
|
|
178
|
+
}
|
|
179
|
+
export interface SelectItem {
|
|
180
|
+
label: string;
|
|
181
|
+
value: string;
|
|
182
|
+
}
|
|
183
|
+
export type StatusValue = ResourceStatus | StackHealthStatus | TiltRuntimeStatus | ServiceUrl["status"] | "active" | "failed" | "critical" | "stopped" | "starting" | "building" | undefined;
|
|
184
|
+
export type StatusCategory = "success" | "error" | "warning" | "unknown";
|
|
185
|
+
export interface DiscoveryContext {
|
|
186
|
+
resources: DiscoveredResource[];
|
|
187
|
+
stacks: DiscoveredStack[];
|
|
188
|
+
stackNames: string[];
|
|
189
|
+
unassignedResources: DiscoveredResource[];
|
|
190
|
+
resourcesByStack: Map<string, DiscoveredResource[]>;
|
|
191
|
+
}
|
|
192
|
+
export interface FileTreeProps {
|
|
193
|
+
nodes: FileNode[];
|
|
194
|
+
onSelect?: (node: FileNode) => void;
|
|
195
|
+
selectedPath?: string;
|
|
196
|
+
}
|
|
197
|
+
export interface BaseTooltipProps {
|
|
198
|
+
content: string;
|
|
199
|
+
shortcut?: string;
|
|
200
|
+
visible: boolean;
|
|
201
|
+
maxWidth?: number;
|
|
202
|
+
wrapText?: boolean;
|
|
203
|
+
prefix?: string;
|
|
204
|
+
marginTop?: number;
|
|
205
|
+
}
|
|
206
|
+
export interface LoadingScreenProps {
|
|
207
|
+
progress: number;
|
|
208
|
+
message: string;
|
|
209
|
+
}
|
|
210
|
+
export interface ErrorScreenProps {
|
|
211
|
+
error: string;
|
|
212
|
+
onRetry: () => void;
|
|
213
|
+
}
|
|
214
|
+
export interface HelpPanelProps {
|
|
215
|
+
onClose: () => void;
|
|
216
|
+
}
|
|
217
|
+
export interface CacheEntry<T> {
|
|
218
|
+
value: T;
|
|
219
|
+
timestamp: number;
|
|
220
|
+
}
|
|
221
|
+
export interface CacheOptions {
|
|
222
|
+
ttlMs: number;
|
|
223
|
+
}
|
|
224
|
+
export interface PackageInfo {
|
|
225
|
+
name: string;
|
|
226
|
+
version: string;
|
|
227
|
+
fullPackage: JsonObject;
|
|
228
|
+
}
|
|
229
|
+
export type PortAssignableResourceType = Extract<CreatableResourceType, "backend" | "frontend" | "worker" | "migrator">;
|
|
230
|
+
export type MasterConfigFileName = "TILT_TECH_STACK.star" | "TILT_RESOURCE_DEFAULTS.star" | "spec.master";
|
|
231
|
+
/**
|
|
232
|
+
* Type guard to validate filename is a known master config file.
|
|
233
|
+
* Eliminates the need for 'as MasterConfigFileName' assertion.
|
|
234
|
+
*/
|
|
235
|
+
export declare function isMasterConfigFileName(filename: string): filename is MasterConfigFileName;
|
|
236
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export const CREATABLE_RESOURCE_TYPES = ["backend", "frontend", "worker"];
|
|
2
|
+
export function isCreatableResourceType(value) {
|
|
3
|
+
return (typeof value === "string" && CREATABLE_RESOURCE_TYPES.includes(value));
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Type guard to validate filename is a known master config file.
|
|
7
|
+
* Eliminates the need for 'as MasterConfigFileName' assertion.
|
|
8
|
+
*/
|
|
9
|
+
export function isMasterConfigFileName(filename) {
|
|
10
|
+
const validNames = [
|
|
11
|
+
"TILT_TECH_STACK.star",
|
|
12
|
+
"TILT_RESOURCE_DEFAULTS.star",
|
|
13
|
+
"spec.master",
|
|
14
|
+
];
|
|
15
|
+
return validNames.includes(filename);
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AA4DA,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,SAAS,EAAE,UAAU,EAAE,QAAQ,CAAU,CAAC;AAOnF,MAAM,UAAU,uBAAuB,CAAC,KAAc;IACpD,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ,IAAK,wBAA8C,CAAC,QAAQ,CAAC,KAAK,CAAC,CAC7F,CAAC;AACJ,CAAC;AAwPD;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,QAAgB;IACrD,MAAM,UAAU,GAAsB;QACpC,sBAAsB;QACtB,6BAA6B;QAC7B,aAAa;KACd,CAAC;IACF,OAAO,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACvC,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { CacheOptions } from "../types/index.js";
|
|
2
|
+
export declare class Cache<T> {
|
|
3
|
+
private data;
|
|
4
|
+
private options;
|
|
5
|
+
constructor(options: CacheOptions);
|
|
6
|
+
has(key: string): boolean;
|
|
7
|
+
get(key: string): T | undefined;
|
|
8
|
+
set(key: string, value: T): void;
|
|
9
|
+
delete(key: string): void;
|
|
10
|
+
clear(): void;
|
|
11
|
+
keys(): string[];
|
|
12
|
+
size(): number;
|
|
13
|
+
}
|
|
14
|
+
export declare function createCacheValidator(ttlMs: number): {
|
|
15
|
+
isValid(): boolean;
|
|
16
|
+
markUpdated(): void;
|
|
17
|
+
reset(): void;
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/utils/cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAElE,qBAAa,KAAK,CAAC,CAAC;IAClB,OAAO,CAAC,IAAI,CAA6B;IACzC,OAAO,CAAC,OAAO,CAAe;IAE9B,YAAY,OAAO,EAAE,YAAY,EAGhC;IAED,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAWxB;IAED,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAK9B;IAED,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAK/B;IAED,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAExB;IAED,KAAK,IAAI,IAAI,CAEZ;IAED,IAAI,IAAI,MAAM,EAAE,CAQf;IAED,IAAI,IAAI,MAAM,CAEb;CACF;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM;IAI9C,OAAO,IAAI,OAAO;IAGlB,WAAW,IAAI,IAAI;IAGnB,KAAK,IAAI,IAAI;EAIhB"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
export class Cache {
|
|
2
|
+
data;
|
|
3
|
+
options;
|
|
4
|
+
constructor(options) {
|
|
5
|
+
this.data = new Map();
|
|
6
|
+
this.options = options;
|
|
7
|
+
}
|
|
8
|
+
has(key) {
|
|
9
|
+
const entry = this.data.get(key);
|
|
10
|
+
if (!entry)
|
|
11
|
+
return false;
|
|
12
|
+
const isExpired = Date.now() - entry.timestamp > this.options.ttlMs;
|
|
13
|
+
if (isExpired) {
|
|
14
|
+
this.data.delete(key);
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
return true;
|
|
18
|
+
}
|
|
19
|
+
get(key) {
|
|
20
|
+
if (!this.has(key)) {
|
|
21
|
+
return undefined;
|
|
22
|
+
}
|
|
23
|
+
return this.data.get(key)?.value;
|
|
24
|
+
}
|
|
25
|
+
set(key, value) {
|
|
26
|
+
this.data.set(key, {
|
|
27
|
+
value,
|
|
28
|
+
timestamp: Date.now(),
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
delete(key) {
|
|
32
|
+
this.data.delete(key);
|
|
33
|
+
}
|
|
34
|
+
clear() {
|
|
35
|
+
this.data.clear();
|
|
36
|
+
}
|
|
37
|
+
keys() {
|
|
38
|
+
const validKeys = [];
|
|
39
|
+
for (const key of this.data.keys()) {
|
|
40
|
+
if (this.has(key)) {
|
|
41
|
+
validKeys.push(key);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return validKeys;
|
|
45
|
+
}
|
|
46
|
+
size() {
|
|
47
|
+
return this.keys().length;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
export function createCacheValidator(ttlMs) {
|
|
51
|
+
let lastUpdated = 0;
|
|
52
|
+
return {
|
|
53
|
+
isValid() {
|
|
54
|
+
return Date.now() - lastUpdated < ttlMs;
|
|
55
|
+
},
|
|
56
|
+
markUpdated() {
|
|
57
|
+
lastUpdated = Date.now();
|
|
58
|
+
},
|
|
59
|
+
reset() {
|
|
60
|
+
lastUpdated = 0;
|
|
61
|
+
},
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/utils/cache.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,KAAK;IACR,IAAI,CAA6B;IACjC,OAAO,CAAe;IAE9B,YAAY,OAAqB;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,GAAG,CAAC,GAAW;QACb,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QAEzB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;QACpE,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACtB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,GAAG,CAAC,GAAW;QACb,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACnB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC;IACnC,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,KAAQ;QACvB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE;YACjB,KAAK;YACL,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,GAAW;QAChB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC;IAED,IAAI;QACF,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YACnC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAClB,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC;IAC5B,CAAC;CACF;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAa;IAChD,IAAI,WAAW,GAAG,CAAC,CAAC;IAEpB,OAAO;QACL,OAAO;YACL,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,GAAG,KAAK,CAAC;QAC1C,CAAC;QACD,WAAW;YACT,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,CAAC;QACD,KAAK;YACH,WAAW,GAAG,CAAC,CAAC;QAClB,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ValidationResult } from "../types/index.js";
|
|
2
|
+
export declare function confirmAction(message: string, defaultValue?: boolean): Promise<boolean>;
|
|
3
|
+
export declare function assertValid(validation: ValidationResult, exitCode?: number): asserts validation is {
|
|
4
|
+
valid: true;
|
|
5
|
+
};
|
|
6
|
+
export declare function handleDryRun(options: {
|
|
7
|
+
dryRun?: boolean;
|
|
8
|
+
}, description: string, command: string): boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Prompt for confirmation with cancellation handling.
|
|
11
|
+
* Displays a confirmation prompt and exits/cancels if user declines.
|
|
12
|
+
* @param message - The confirmation message to display
|
|
13
|
+
* @param onCancel - Optional callback when user cancels (defaults to returning false)
|
|
14
|
+
* @returns Promise<boolean> - true if confirmed, false if cancelled (with callback)
|
|
15
|
+
*/
|
|
16
|
+
export declare function confirmOrCancel(message: string, onCancel?: () => void): Promise<boolean>;
|
|
17
|
+
//# sourceMappingURL=command-helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command-helpers.d.ts","sourceRoot":"","sources":["../../src/utils/command-helpers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAI1D,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,UAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAe1F;AAED,wBAAgB,WAAW,CACzB,UAAU,EAAE,gBAAgB,EAC5B,QAAQ,GAAE,MAAU,GACnB,OAAO,CAAC,UAAU,IAAI;IAAE,KAAK,EAAE,IAAI,CAAA;CAAE,CAIvC;AAED,wBAAgB,YAAY,CAC1B,OAAO,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,EAC7B,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GACd,OAAO,CAOT;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAS9F"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import inquirer from "inquirer";
|
|
2
|
+
import { showErrorAndExit } from "./errors.js";
|
|
3
|
+
import { showCancelled } from "./formatting.js";
|
|
4
|
+
export async function confirmAction(message, defaultValue = true) {
|
|
5
|
+
const { confirm } = await inquirer.prompt([
|
|
6
|
+
{
|
|
7
|
+
type: "confirm",
|
|
8
|
+
name: "confirm",
|
|
9
|
+
message,
|
|
10
|
+
default: defaultValue,
|
|
11
|
+
},
|
|
12
|
+
]);
|
|
13
|
+
if (!confirm) {
|
|
14
|
+
showCancelled();
|
|
15
|
+
}
|
|
16
|
+
return confirm;
|
|
17
|
+
}
|
|
18
|
+
export function assertValid(validation, exitCode = 1) {
|
|
19
|
+
if (!validation.valid) {
|
|
20
|
+
showErrorAndExit(validation.error ?? "Validation failed", exitCode);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
export function handleDryRun(options, description, command) {
|
|
24
|
+
if (options.dryRun) {
|
|
25
|
+
console.log(`Dry run - ${description}`);
|
|
26
|
+
console.log(`Would run: ${command}`);
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Prompt for confirmation with cancellation handling.
|
|
33
|
+
* Displays a confirmation prompt and exits/cancels if user declines.
|
|
34
|
+
* @param message - The confirmation message to display
|
|
35
|
+
* @param onCancel - Optional callback when user cancels (defaults to returning false)
|
|
36
|
+
* @returns Promise<boolean> - true if confirmed, false if cancelled (with callback)
|
|
37
|
+
*/
|
|
38
|
+
export async function confirmOrCancel(message, onCancel) {
|
|
39
|
+
const confirmed = await confirmAction(message, true);
|
|
40
|
+
if (!confirmed) {
|
|
41
|
+
if (onCancel) {
|
|
42
|
+
onCancel();
|
|
43
|
+
}
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
return true;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=command-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command-helpers.js","sourceRoot":"","sources":["../../src/utils/command-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAAe,EAAE,YAAY,GAAG,IAAI;IACtE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;QACxC;YACE,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,SAAS;YACf,OAAO;YACP,OAAO,EAAE,YAAY;SACtB;KACF,CAAC,CAAC;IAEH,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,aAAa,EAAE,CAAC;IAClB,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,UAA4B,EAC5B,QAAQ,GAAW,CAAC;IAEpB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACtB,gBAAgB,CAAC,UAAU,CAAC,KAAK,IAAI,mBAAmB,EAAE,QAAQ,CAAC,CAAC;IACtE,CAAC;AACH,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,OAA6B,EAC7B,WAAmB,EACnB,OAAe;IAEf,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,aAAa,WAAW,EAAE,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,cAAc,OAAO,EAAE,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAAe,EAAE,QAAqB;IAC1E,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACrD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,EAAE,CAAC;QACb,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { ResourceType } from "../types/index.js";
|
|
2
|
+
export declare const MASTER_CONFIG_FILES: readonly ["TILT_TECH_STACK.star", "TILT_RESOURCE_DEFAULTS.star", "spec.master"];
|
|
3
|
+
export declare const VALID_RESOURCE_TYPES: ResourceType[];
|
|
4
|
+
export declare const OPTIONAL_INFRA_SERVICES: readonly ["monitoring", "elk", "debezium", "golden_image", "verdaccio"];
|
|
5
|
+
export declare const PORT_RANGES: {
|
|
6
|
+
readonly frontend: {
|
|
7
|
+
readonly base: 3000;
|
|
8
|
+
readonly min: 3000;
|
|
9
|
+
readonly max: 3999;
|
|
10
|
+
readonly range: "3000-3999";
|
|
11
|
+
};
|
|
12
|
+
readonly backend: {
|
|
13
|
+
readonly base: 4000;
|
|
14
|
+
readonly min: 4000;
|
|
15
|
+
readonly max: 4999;
|
|
16
|
+
readonly range: "4000-4999";
|
|
17
|
+
};
|
|
18
|
+
readonly worker: {
|
|
19
|
+
readonly base: 6000;
|
|
20
|
+
readonly min: 6000;
|
|
21
|
+
readonly max: 6999;
|
|
22
|
+
readonly range: "6000-6999";
|
|
23
|
+
};
|
|
24
|
+
readonly health: {
|
|
25
|
+
readonly base: 5000;
|
|
26
|
+
readonly min: 5000;
|
|
27
|
+
readonly max: 5999;
|
|
28
|
+
readonly range: "5000-5999";
|
|
29
|
+
};
|
|
30
|
+
readonly migrator: {
|
|
31
|
+
readonly base: 7000;
|
|
32
|
+
readonly min: 7000;
|
|
33
|
+
readonly max: 7999;
|
|
34
|
+
readonly range: "7000-7999";
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
export declare const STANDARD_PORTS: {
|
|
38
|
+
readonly tiltUi: 10350;
|
|
39
|
+
readonly traefik: 8080;
|
|
40
|
+
};
|
|
41
|
+
export declare const BASE_DOMAIN_DEFAULT = "beauty-crm.localhost";
|
|
42
|
+
export declare const APP_SUBDOMAIN_PREFIX = "app";
|
|
43
|
+
export declare const API_SUBDOMAIN_PREFIX = "api";
|
|
44
|
+
export declare function getBaseDomain(): string;
|
|
45
|
+
export declare function frontendBaseUrl(protocol?: string): string;
|
|
46
|
+
export declare function apiBaseUrl(protocol?: string): string;
|
|
47
|
+
export declare const SKIP_DIRECTORIES: readonly ["node_modules", ".git", ".tilt", ".tilt-engine", "dist", "build", ".prisma", ".turbo", "coverage", "tmp", "temp", "__tests__", "test", "tests", ".github", ".vscode", "docs"];
|
|
48
|
+
export declare const AUTOGENERATED_FILE_PATTERNS: readonly ["Dockerfile", "docker-compose.yml", "docker-compose.yaml", "Tiltfile", "vite.config.ts", "tsconfig.json", "tsconfig.build.json"];
|
|
49
|
+
export declare function getStackEmoji(stackName: string): string;
|
|
50
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,eAAO,MAAM,mBAAmB,YAC9B,sBAAsB,EACtB,6BAA6B,EAC7B,aAAa,CACL,CAAC;AAEX,eAAO,MAAM,oBAAoB,EAAE,YAAY,EAOrC,CAAC;AAEX,eAAO,MAAM,uBAAuB,YAClC,YAAY,EACZ,KAAK,EACL,UAAU,EACV,cAAc,EACd,WAAW,CACH,CAAC;AAEX,eAAO,MAAM,WAAW;aACtB,QAAQ;iBAAI,IAAI,EAAE,IAAI;iBAAE,GAAG,EAAE,IAAI;iBAAE,GAAG,EAAE,IAAI;iBAAE,KAAK,EAAE,WAAW;;aAChE,OAAO;iBAAI,IAAI,EAAE,IAAI;iBAAE,GAAG,EAAE,IAAI;iBAAE,GAAG,EAAE,IAAI;iBAAE,KAAK,EAAE,WAAW;;aAC/D,MAAM;iBAAI,IAAI,EAAE,IAAI;iBAAE,GAAG,EAAE,IAAI;iBAAE,GAAG,EAAE,IAAI;iBAAE,KAAK,EAAE,WAAW;;aAC9D,MAAM;iBAAI,IAAI,EAAE,IAAI;iBAAE,GAAG,EAAE,IAAI;iBAAE,GAAG,EAAE,IAAI;iBAAE,KAAK,EAAE,WAAW;;aAC9D,QAAQ;iBAAI,IAAI,EAAE,IAAI;iBAAE,GAAG,EAAE,IAAI;iBAAE,GAAG,EAAE,IAAI;iBAAE,KAAK,EAAE,WAAW;;CACxD,CAAC;AAEX,eAAO,MAAM,cAAc;aACzB,MAAM,EAAE,KAAK;aACb,OAAO,EAAE,IAAI;CACL,CAAC;AAEX,eAAO,MAAM,mBAAmB,yBAAyB,CAAC;AAC1D,eAAO,MAAM,oBAAoB,QAAQ,CAAC;AAC1C,eAAO,MAAM,oBAAoB,QAAQ,CAAC;AAE1C,wBAAgB,aAAa,IAAI,MAAM,CAWtC;AAED,wBAAgB,eAAe,CAAC,QAAQ,SAAS,GAAG,MAAM,CAEzD;AAED,wBAAgB,UAAU,CAAC,QAAQ,SAAS,GAAG,MAAM,CAEpD;AAED,eAAO,MAAM,gBAAgB,YAC3B,cAAc,EACd,MAAM,EACN,OAAO,EACP,cAAc,EACd,MAAM,EACN,OAAO,EACP,SAAS,EACT,QAAQ,EACR,UAAU,EACV,KAAK,EACL,MAAM,EACN,WAAW,EACX,MAAM,EACN,OAAO,EACP,SAAS,EACT,SAAS,EACT,MAAM,CACE,CAAC;AAEX,eAAO,MAAM,2BAA2B,YACtC,YAAY,EACZ,oBAAoB,EACpB,qBAAqB,EACrB,UAAU,EACV,gBAAgB,EAChB,eAAe,EACf,qBAAqB,CACb,CAAC;AAYX,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAQvD"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
export const MASTER_CONFIG_FILES = [
|
|
2
|
+
"TILT_TECH_STACK.star",
|
|
3
|
+
"TILT_RESOURCE_DEFAULTS.star",
|
|
4
|
+
"spec.master",
|
|
5
|
+
];
|
|
6
|
+
export const VALID_RESOURCE_TYPES = [
|
|
7
|
+
"backend",
|
|
8
|
+
"frontend",
|
|
9
|
+
"library",
|
|
10
|
+
"sdk",
|
|
11
|
+
"worker",
|
|
12
|
+
"migrator",
|
|
13
|
+
];
|
|
14
|
+
export const OPTIONAL_INFRA_SERVICES = [
|
|
15
|
+
"monitoring",
|
|
16
|
+
"elk",
|
|
17
|
+
"debezium",
|
|
18
|
+
"golden_image",
|
|
19
|
+
"verdaccio",
|
|
20
|
+
];
|
|
21
|
+
export const PORT_RANGES = {
|
|
22
|
+
frontend: { base: 3000, min: 3000, max: 3999, range: "3000-3999" },
|
|
23
|
+
backend: { base: 4000, min: 4000, max: 4999, range: "4000-4999" },
|
|
24
|
+
worker: { base: 6000, min: 6000, max: 6999, range: "6000-6999" },
|
|
25
|
+
health: { base: 5000, min: 5000, max: 5999, range: "5000-5999" },
|
|
26
|
+
migrator: { base: 7000, min: 7000, max: 7999, range: "7000-7999" },
|
|
27
|
+
};
|
|
28
|
+
export const STANDARD_PORTS = {
|
|
29
|
+
tiltUi: 10350,
|
|
30
|
+
traefik: 8080,
|
|
31
|
+
};
|
|
32
|
+
export const BASE_DOMAIN_DEFAULT = "beauty-crm.localhost";
|
|
33
|
+
export const APP_SUBDOMAIN_PREFIX = "app";
|
|
34
|
+
export const API_SUBDOMAIN_PREFIX = "api";
|
|
35
|
+
export function getBaseDomain() {
|
|
36
|
+
const override = process.env.TDK_SERVICE_BASE_URL ?? process.env.TDK_PUBLIC_HOST;
|
|
37
|
+
if (override) {
|
|
38
|
+
try {
|
|
39
|
+
const u = new URL(override.includes("://") ? override : `http://${override}`);
|
|
40
|
+
return u.hostname;
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
return override.replace(/^https?:\/\//, "").split("/")[0];
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return BASE_DOMAIN_DEFAULT;
|
|
47
|
+
}
|
|
48
|
+
export function frontendBaseUrl(protocol = "http") {
|
|
49
|
+
return `${protocol}://${APP_SUBDOMAIN_PREFIX}.${getBaseDomain()}`;
|
|
50
|
+
}
|
|
51
|
+
export function apiBaseUrl(protocol = "http") {
|
|
52
|
+
return `${protocol}://${API_SUBDOMAIN_PREFIX}.${getBaseDomain()}`;
|
|
53
|
+
}
|
|
54
|
+
export const SKIP_DIRECTORIES = [
|
|
55
|
+
"node_modules",
|
|
56
|
+
".git",
|
|
57
|
+
".tilt",
|
|
58
|
+
".tilt-engine",
|
|
59
|
+
"dist",
|
|
60
|
+
"build",
|
|
61
|
+
".prisma",
|
|
62
|
+
".turbo",
|
|
63
|
+
"coverage",
|
|
64
|
+
"tmp",
|
|
65
|
+
"temp",
|
|
66
|
+
"__tests__",
|
|
67
|
+
"test",
|
|
68
|
+
"tests",
|
|
69
|
+
".github",
|
|
70
|
+
".vscode",
|
|
71
|
+
"docs",
|
|
72
|
+
];
|
|
73
|
+
export const AUTOGENERATED_FILE_PATTERNS = [
|
|
74
|
+
"Dockerfile",
|
|
75
|
+
"docker-compose.yml",
|
|
76
|
+
"docker-compose.yaml",
|
|
77
|
+
"Tiltfile",
|
|
78
|
+
"vite.config.ts",
|
|
79
|
+
"tsconfig.json",
|
|
80
|
+
"tsconfig.build.json",
|
|
81
|
+
];
|
|
82
|
+
// Stack emojis - generic, no hardcoded service names
|
|
83
|
+
// Users can add their own stack emojis via project config
|
|
84
|
+
const STACK_EMOJIS = {
|
|
85
|
+
infra: "🏗️",
|
|
86
|
+
core: "🔧",
|
|
87
|
+
api: "⚡",
|
|
88
|
+
app: "🎨",
|
|
89
|
+
orchestrator: "⚙️",
|
|
90
|
+
};
|
|
91
|
+
export function getStackEmoji(stackName) {
|
|
92
|
+
const lowerName = stackName.toLowerCase();
|
|
93
|
+
for (const [key, emoji] of Object.entries(STACK_EMOJIS)) {
|
|
94
|
+
if (lowerName.includes(key)) {
|
|
95
|
+
return emoji;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return "📦";
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discovery-context.d.ts","sourceRoot":"","sources":["../../src/utils/discovery-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAsB,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAO9E,wBAAgB,mBAAmB,IAAI,IAAI,CAG1C;AAMD,wBAAgB,sBAAsB,CAAC,YAAY,UAAQ,GAAG,gBAAgB,CAgC7E"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { createCacheValidator } from "./cache.js";
|
|
2
|
+
import { discoverResources, discoverStacks, getAllStacks } from "./services.js";
|
|
3
|
+
let cachedContext = null;
|
|
4
|
+
const cacheValidator = createCacheValidator(1000);
|
|
5
|
+
export function clearDiscoveryCache() {
|
|
6
|
+
cachedContext = null;
|
|
7
|
+
cacheValidator.reset();
|
|
8
|
+
}
|
|
9
|
+
function isCacheValid() {
|
|
10
|
+
return cachedContext !== null && cacheValidator.isValid();
|
|
11
|
+
}
|
|
12
|
+
export function createDiscoveryContext(forceRefresh = false) {
|
|
13
|
+
if (!forceRefresh && isCacheValid() && cachedContext) {
|
|
14
|
+
return cachedContext;
|
|
15
|
+
}
|
|
16
|
+
const resources = discoverResources();
|
|
17
|
+
const stacks = discoverStacks();
|
|
18
|
+
const stackNames = getAllStacks(resources);
|
|
19
|
+
const unassignedResources = resources.filter((r) => !r.stack);
|
|
20
|
+
const resourcesByStack = new Map();
|
|
21
|
+
for (const resource of resources) {
|
|
22
|
+
if (resource.stack) {
|
|
23
|
+
const stackResources = resourcesByStack.get(resource.stack) || [];
|
|
24
|
+
stackResources.push(resource);
|
|
25
|
+
resourcesByStack.set(resource.stack, stackResources);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
const context = {
|
|
29
|
+
resources,
|
|
30
|
+
stacks,
|
|
31
|
+
stackNames,
|
|
32
|
+
unassignedResources,
|
|
33
|
+
resourcesByStack,
|
|
34
|
+
};
|
|
35
|
+
cachedContext = context;
|
|
36
|
+
cacheValidator.markUpdated();
|
|
37
|
+
return context;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=discovery-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discovery-context.js","sourceRoot":"","sources":["../../src/utils/discovery-context.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAEhF,IAAI,aAAa,GAA4B,IAAI,CAAC;AAClD,MAAM,cAAc,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;AAElD,MAAM,UAAU,mBAAmB;IACjC,aAAa,GAAG,IAAI,CAAC;IACrB,cAAc,CAAC,KAAK,EAAE,CAAC;AACzB,CAAC;AAED,SAAS,YAAY;IACnB,OAAO,aAAa,KAAK,IAAI,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,YAAY,GAAG,KAAK;IACzD,IAAI,CAAC,YAAY,IAAI,YAAY,EAAE,IAAI,aAAa,EAAE,CAAC;QACrD,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,MAAM,SAAS,GAAG,iBAAiB,EAAE,CAAC;IACtC,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC;IAChC,MAAM,UAAU,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;IAE3C,MAAM,mBAAmB,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAE9D,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAgC,CAAC;IACjE,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YACnB,MAAM,cAAc,GAAG,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAClE,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC9B,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAqB;QAChC,SAAS;QACT,MAAM;QACN,UAAU;QACV,mBAAmB;QACnB,gBAAgB;KACjB,CAAC;IAEF,aAAa,GAAG,OAAO,CAAC;IACxB,cAAc,CAAC,WAAW,EAAE,CAAC;IAE7B,OAAO,OAAO,CAAC;AACjB,CAAC"}
|