hatchkit 0.1.1
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/dist/config.d.ts +131 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +629 -0
- package/dist/config.js.map +1 -0
- package/dist/deploy/coolify.d.ts +4 -0
- package/dist/deploy/coolify.d.ts.map +1 -0
- package/dist/deploy/coolify.js +20 -0
- package/dist/deploy/coolify.js.map +1 -0
- package/dist/deploy/github.d.ts +4 -0
- package/dist/deploy/github.d.ts.map +1 -0
- package/dist/deploy/github.js +39 -0
- package/dist/deploy/github.js.map +1 -0
- package/dist/deploy/gpu.d.ts +4 -0
- package/dist/deploy/gpu.d.ts.map +1 -0
- package/dist/deploy/gpu.js +97 -0
- package/dist/deploy/gpu.js.map +1 -0
- package/dist/deploy/keys.d.ts +9 -0
- package/dist/deploy/keys.d.ts.map +1 -0
- package/dist/deploy/keys.js +73 -0
- package/dist/deploy/keys.js.map +1 -0
- package/dist/deploy/terraform.d.ts +4 -0
- package/dist/deploy/terraform.d.ts.map +1 -0
- package/dist/deploy/terraform.js +55 -0
- package/dist/deploy/terraform.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +599 -0
- package/dist/index.js.map +1 -0
- package/dist/prompts.d.ts +52 -0
- package/dist/prompts.d.ts.map +1 -0
- package/dist/prompts.js +313 -0
- package/dist/prompts.js.map +1 -0
- package/dist/provision/glitchtip.d.ts +6 -0
- package/dist/provision/glitchtip.d.ts.map +1 -0
- package/dist/provision/glitchtip.js +46 -0
- package/dist/provision/glitchtip.js.map +1 -0
- package/dist/provision/index.d.ts +9 -0
- package/dist/provision/index.d.ts.map +1 -0
- package/dist/provision/index.js +108 -0
- package/dist/provision/index.js.map +1 -0
- package/dist/provision/openpanel.d.ts +8 -0
- package/dist/provision/openpanel.d.ts.map +1 -0
- package/dist/provision/openpanel.js +66 -0
- package/dist/provision/openpanel.js.map +1 -0
- package/dist/provision/resend.d.ts +16 -0
- package/dist/provision/resend.d.ts.map +1 -0
- package/dist/provision/resend.js +43 -0
- package/dist/provision/resend.js.map +1 -0
- package/dist/scaffold/app.d.ts +13 -0
- package/dist/scaffold/app.d.ts.map +1 -0
- package/dist/scaffold/app.js +340 -0
- package/dist/scaffold/app.js.map +1 -0
- package/dist/scaffold/dotenvx.d.ts +30 -0
- package/dist/scaffold/dotenvx.d.ts.map +1 -0
- package/dist/scaffold/dotenvx.js +142 -0
- package/dist/scaffold/dotenvx.js.map +1 -0
- package/dist/scaffold/infra.d.ts +17 -0
- package/dist/scaffold/infra.d.ts.map +1 -0
- package/dist/scaffold/infra.js +200 -0
- package/dist/scaffold/infra.js.map +1 -0
- package/dist/scaffold/manifest.d.ts +50 -0
- package/dist/scaffold/manifest.d.ts.map +1 -0
- package/dist/scaffold/manifest.js +83 -0
- package/dist/scaffold/manifest.js.map +1 -0
- package/dist/scaffold/ml-client.d.ts +20 -0
- package/dist/scaffold/ml-client.d.ts.map +1 -0
- package/dist/scaffold/ml-client.js +38 -0
- package/dist/scaffold/ml-client.js.map +1 -0
- package/dist/scaffold/pkg-json.d.ts +20 -0
- package/dist/scaffold/pkg-json.d.ts.map +1 -0
- package/dist/scaffold/pkg-json.js +113 -0
- package/dist/scaffold/pkg-json.js.map +1 -0
- package/dist/scaffold/starter-files.d.ts +40 -0
- package/dist/scaffold/starter-files.d.ts.map +1 -0
- package/dist/scaffold/starter-files.js +197 -0
- package/dist/scaffold/starter-files.js.map +1 -0
- package/dist/scaffold/update.d.ts +8 -0
- package/dist/scaffold/update.d.ts.map +1 -0
- package/dist/scaffold/update.js +255 -0
- package/dist/scaffold/update.js.map +1 -0
- package/dist/templates/addons/analytics/middleware.ts.hbs +13 -0
- package/dist/templates/addons/analytics/sentry.ts.hbs +16 -0
- package/dist/templates/addons/storage/s3.ts.hbs +40 -0
- package/dist/templates/addons/storage/upload.ts.hbs +23 -0
- package/dist/templates/addons/stripe/checkout.ts.hbs +27 -0
- package/dist/templates/addons/stripe/client.ts.hbs +6 -0
- package/dist/templates/addons/stripe/webhook.ts.hbs +39 -0
- package/dist/templates/addons/websocket/redis.ts.hbs +25 -0
- package/dist/templates/addons/websocket/ws.ts.hbs +32 -0
- package/dist/templates/base/.dockerignore.hbs +7 -0
- package/dist/templates/base/Dockerfile.hbs +18 -0
- package/dist/templates/base/env.example.hbs +60 -0
- package/dist/templates/base/github-actions.yml.hbs +35 -0
- package/dist/templates/base/gitignore.hbs +5 -0
- package/dist/templates/base/package.json.hbs +36 -0
- package/dist/templates/base/src/auth/auth.ts.hbs +13 -0
- package/dist/templates/base/src/auth/routes.ts.hbs +19 -0
- package/dist/templates/base/src/config.ts.hbs +36 -0
- package/dist/templates/base/src/db.ts.hbs +12 -0
- package/dist/templates/base/src/index.ts.hbs +80 -0
- package/dist/templates/base/src/routes/health.ts.hbs +12 -0
- package/dist/templates/base/tsconfig.json.hbs +18 -0
- package/dist/templates/ml-clients/3d-extraction.ts.hbs +20 -0
- package/dist/templates/ml-clients/background-removal.ts.hbs +17 -0
- package/dist/templates/ml-clients/custom-hf.ts.hbs +20 -0
- package/dist/templates/ml-clients/image-recognition.ts.hbs +22 -0
- package/dist/templates/ml-clients/subtitles.ts.hbs +26 -0
- package/dist/utils/coolify-api.d.ts +45 -0
- package/dist/utils/coolify-api.d.ts.map +1 -0
- package/dist/utils/coolify-api.js +72 -0
- package/dist/utils/coolify-api.js.map +1 -0
- package/dist/utils/errors.d.ts +2 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +31 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/exec.d.ts +23 -0
- package/dist/utils/exec.d.ts.map +1 -0
- package/dist/utils/exec.js +47 -0
- package/dist/utils/exec.js.map +1 -0
- package/dist/utils/flags.d.ts +17 -0
- package/dist/utils/flags.d.ts.map +1 -0
- package/dist/utils/flags.js +116 -0
- package/dist/utils/flags.js.map +1 -0
- package/dist/utils/hf-api.d.ts +13 -0
- package/dist/utils/hf-api.d.ts.map +1 -0
- package/dist/utils/hf-api.js +30 -0
- package/dist/utils/hf-api.js.map +1 -0
- package/dist/utils/ports.d.ts +29 -0
- package/dist/utils/ports.d.ts.map +1 -0
- package/dist/utils/ports.js +86 -0
- package/dist/utils/ports.js.map +1 -0
- package/dist/utils/secrets.d.ts +25 -0
- package/dist/utils/secrets.d.ts.map +1 -0
- package/dist/utils/secrets.js +51 -0
- package/dist/utils/secrets.js.map +1 -0
- package/dist/utils/template.d.ts +7 -0
- package/dist/utils/template.d.ts.map +1 -0
- package/dist/utils/template.js +35 -0
- package/dist/utils/template.js.map +1 -0
- package/dist/utils/validate.d.ts +16 -0
- package/dist/utils/validate.d.ts.map +1 -0
- package/dist/utils/validate.js +60 -0
- package/dist/utils/validate.js.map +1 -0
- package/dist/utils/version.d.ts +2 -0
- package/dist/utils/version.d.ts.map +1 -0
- package/dist/utils/version.js +21 -0
- package/dist/utils/version.js.map +1 -0
- package/package.json +48 -0
- package/scripts/copy-templates.mjs +20 -0
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
export interface ProviderStatus {
|
|
2
|
+
status: "configured" | "unconfigured";
|
|
3
|
+
lastVerified?: string;
|
|
4
|
+
}
|
|
5
|
+
export interface CoolifyMeta extends ProviderStatus {
|
|
6
|
+
url: string;
|
|
7
|
+
serversCache?: Array<{
|
|
8
|
+
id: number;
|
|
9
|
+
name: string;
|
|
10
|
+
ip: string;
|
|
11
|
+
}>;
|
|
12
|
+
}
|
|
13
|
+
export interface HetznerMeta extends ProviderStatus {
|
|
14
|
+
}
|
|
15
|
+
export interface DnsMeta extends ProviderStatus {
|
|
16
|
+
provider: "inwx" | "cloudflare" | "manual";
|
|
17
|
+
username?: string;
|
|
18
|
+
}
|
|
19
|
+
export interface S3ProviderMeta extends ProviderStatus {
|
|
20
|
+
location?: string;
|
|
21
|
+
endpoint?: string;
|
|
22
|
+
region?: string;
|
|
23
|
+
}
|
|
24
|
+
export interface GpuProviderMeta extends ProviderStatus {
|
|
25
|
+
tokenId?: string;
|
|
26
|
+
endpointId?: string;
|
|
27
|
+
}
|
|
28
|
+
export interface GlitchtipMeta extends ProviderStatus {
|
|
29
|
+
url: string;
|
|
30
|
+
/** Cached org slug so the CLI doesn't re-prompt on every provision. */
|
|
31
|
+
organizationSlug?: string;
|
|
32
|
+
/** Default team slug inside that org (GlitchTip requires a team to
|
|
33
|
+
* own each project). */
|
|
34
|
+
teamSlug?: string;
|
|
35
|
+
}
|
|
36
|
+
export interface OpenpanelMeta extends ProviderStatus {
|
|
37
|
+
url: string;
|
|
38
|
+
/** Default organization slug, used as the "project group" when
|
|
39
|
+
* creating a new project/client via the dashboard. */
|
|
40
|
+
organizationSlug?: string;
|
|
41
|
+
}
|
|
42
|
+
export interface ResendMeta extends ProviderStatus {
|
|
43
|
+
/** Optional default region for new sending domains ("us-east-1", "eu-west-1"…). */
|
|
44
|
+
defaultRegion?: string;
|
|
45
|
+
}
|
|
46
|
+
export interface CoolifyConfig extends CoolifyMeta {
|
|
47
|
+
token: string;
|
|
48
|
+
}
|
|
49
|
+
export interface HetznerConfig extends HetznerMeta {
|
|
50
|
+
token: string;
|
|
51
|
+
}
|
|
52
|
+
export interface DnsConfig extends DnsMeta {
|
|
53
|
+
password?: string;
|
|
54
|
+
apiToken?: string;
|
|
55
|
+
}
|
|
56
|
+
export interface S3ProviderConfig extends S3ProviderMeta {
|
|
57
|
+
accessKey: string;
|
|
58
|
+
secretKey: string;
|
|
59
|
+
}
|
|
60
|
+
export interface GpuProviderConfig extends GpuProviderMeta {
|
|
61
|
+
apiKey?: string;
|
|
62
|
+
tokenSecret?: string;
|
|
63
|
+
}
|
|
64
|
+
export interface GlitchtipConfig extends GlitchtipMeta {
|
|
65
|
+
token: string;
|
|
66
|
+
}
|
|
67
|
+
export interface OpenpanelConfig extends OpenpanelMeta {
|
|
68
|
+
token: string;
|
|
69
|
+
}
|
|
70
|
+
export interface ResendConfig extends ResendMeta {
|
|
71
|
+
apiKey: string;
|
|
72
|
+
}
|
|
73
|
+
export interface MlServiceEntry {
|
|
74
|
+
platform: string;
|
|
75
|
+
endpoint: string;
|
|
76
|
+
deployedAt: string;
|
|
77
|
+
gpu: string;
|
|
78
|
+
model: string;
|
|
79
|
+
}
|
|
80
|
+
export interface CliConfig {
|
|
81
|
+
version: number;
|
|
82
|
+
providers: {
|
|
83
|
+
github: ProviderStatus;
|
|
84
|
+
coolify?: CoolifyMeta;
|
|
85
|
+
hetzner?: HetznerMeta;
|
|
86
|
+
dns?: DnsMeta;
|
|
87
|
+
s3: Record<string, S3ProviderMeta>;
|
|
88
|
+
gpu: Record<string, GpuProviderMeta>;
|
|
89
|
+
glitchtip?: GlitchtipMeta;
|
|
90
|
+
openpanel?: OpenpanelMeta;
|
|
91
|
+
resend?: ResendMeta;
|
|
92
|
+
};
|
|
93
|
+
mlServices: Record<string, MlServiceEntry>;
|
|
94
|
+
/** Ports that are already assigned to scaffolded projects so the
|
|
95
|
+
* picker avoids collisions across `hatchkit create` invocations. */
|
|
96
|
+
usedPorts: number[];
|
|
97
|
+
}
|
|
98
|
+
export declare function getConfig(): CliConfig;
|
|
99
|
+
export declare function getConfigPath(): string;
|
|
100
|
+
/** Reset all CLI config. Clears providers and ML registry, plus every
|
|
101
|
+
* secret this CLI has stored in the OS keychain. */
|
|
102
|
+
export declare function resetConfig(): Promise<void>;
|
|
103
|
+
export declare function ensureGitHub(): Promise<void>;
|
|
104
|
+
export declare function ensureCoolify(): Promise<CoolifyConfig>;
|
|
105
|
+
/** Read Coolify config (meta + token) from storage. Returns null if not
|
|
106
|
+
* configured or if the secret has been removed out-of-band. */
|
|
107
|
+
export declare function getCoolifyConfig(): Promise<CoolifyConfig | null>;
|
|
108
|
+
export declare function ensureHetzner(): Promise<HetznerConfig>;
|
|
109
|
+
export declare function getHetznerToken(): Promise<string | null>;
|
|
110
|
+
export declare function ensureDns(): Promise<DnsConfig>;
|
|
111
|
+
export declare function getDnsConfig(): Promise<DnsConfig | null>;
|
|
112
|
+
export declare function ensureS3(provider: "hetzner" | "aws" | "r2"): Promise<S3ProviderConfig>;
|
|
113
|
+
export declare function getS3Config(provider: string): Promise<S3ProviderConfig | null>;
|
|
114
|
+
export declare function ensureGpuProvider(platform: "modal" | "runpod" | "hf" | "replicate"): Promise<GpuProviderConfig>;
|
|
115
|
+
export declare function getGpuConfig(platform: string): Promise<GpuProviderConfig | null>;
|
|
116
|
+
export declare function getUsedPorts(): number[];
|
|
117
|
+
export declare function addUsedPorts(ports: number[]): void;
|
|
118
|
+
/** Remove ports from the used-ports registry. Used for rollback when a
|
|
119
|
+
* scaffold that already claimed ports subsequently fails. */
|
|
120
|
+
export declare function removeUsedPorts(ports: number[]): void;
|
|
121
|
+
export declare function getMlServices(): Record<string, MlServiceEntry>;
|
|
122
|
+
export declare function registerMlService(name: string, entry: MlServiceEntry): void;
|
|
123
|
+
export declare function ensureGlitchtip(): Promise<GlitchtipConfig>;
|
|
124
|
+
export declare function getGlitchtipConfig(): Promise<GlitchtipConfig | null>;
|
|
125
|
+
export declare function ensureOpenpanel(): Promise<OpenpanelConfig>;
|
|
126
|
+
export declare function getOpenpanelConfig(): Promise<OpenpanelConfig | null>;
|
|
127
|
+
export declare function ensureResend(): Promise<ResendConfig>;
|
|
128
|
+
export declare function getResendConfig(): Promise<ResendConfig | null>;
|
|
129
|
+
export declare function isFirstRun(): Promise<boolean>;
|
|
130
|
+
export declare function runOnboarding(): Promise<void>;
|
|
131
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|