hatchkit 0.1.34 → 0.1.37
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/adopt.d.ts.map +1 -1
- package/dist/adopt.js +167 -1
- package/dist/adopt.js.map +1 -1
- package/dist/assets/env.d.ts +40 -0
- package/dist/assets/env.d.ts.map +1 -0
- package/dist/assets/env.js +150 -0
- package/dist/assets/env.js.map +1 -0
- package/dist/assets/index.d.ts +2 -0
- package/dist/assets/index.d.ts.map +1 -0
- package/dist/assets/index.js +328 -0
- package/dist/assets/index.js.map +1 -0
- package/dist/assets/mirror.d.ts +59 -0
- package/dist/assets/mirror.d.ts.map +1 -0
- package/dist/assets/mirror.js +251 -0
- package/dist/assets/mirror.js.map +1 -0
- package/dist/completion.d.ts.map +1 -1
- package/dist/completion.js +16 -0
- package/dist/completion.js.map +1 -1
- package/dist/config.d.ts +18 -8
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +157 -50
- package/dist/config.js.map +1 -1
- package/dist/deploy/coolify-app.d.ts +6 -0
- package/dist/deploy/coolify-app.d.ts.map +1 -1
- package/dist/deploy/coolify-app.js +58 -15
- package/dist/deploy/coolify-app.js.map +1 -1
- package/dist/deploy/rename-domain.d.ts.map +1 -1
- package/dist/deploy/rename-domain.js +4 -2
- package/dist/deploy/rename-domain.js.map +1 -1
- package/dist/deploy/rollback.d.ts +11 -0
- package/dist/deploy/rollback.d.ts.map +1 -1
- package/dist/deploy/rollback.js +46 -9
- package/dist/deploy/rollback.js.map +1 -1
- package/dist/deploy/sync.d.ts +98 -0
- package/dist/deploy/sync.d.ts.map +1 -0
- package/dist/deploy/sync.js +354 -0
- package/dist/deploy/sync.js.map +1 -0
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js +29 -11
- package/dist/doctor.js.map +1 -1
- package/dist/explain.d.ts.map +1 -1
- package/dist/explain.js +5 -0
- package/dist/explain.js.map +1 -1
- package/dist/index.js +184 -30
- package/dist/index.js.map +1 -1
- package/dist/prompts.d.ts.map +1 -1
- package/dist/prompts.js +7 -5
- package/dist/prompts.js.map +1 -1
- package/dist/provision/s3-buckets.d.ts +12 -5
- package/dist/provision/s3-buckets.d.ts.map +1 -1
- package/dist/provision/s3-buckets.js +14 -7
- package/dist/provision/s3-buckets.js.map +1 -1
- package/dist/provision/stripe.d.ts +85 -16
- package/dist/provision/stripe.d.ts.map +1 -1
- package/dist/provision/stripe.js +334 -28
- package/dist/provision/stripe.js.map +1 -1
- package/dist/provision/write-env.d.ts +7 -0
- package/dist/provision/write-env.d.ts.map +1 -1
- package/dist/provision/write-env.js +18 -0
- package/dist/provision/write-env.js.map +1 -1
- package/dist/scaffold/app.d.ts.map +1 -1
- package/dist/scaffold/app.js +7 -1
- package/dist/scaffold/app.js.map +1 -1
- package/dist/scaffold/infra.js +2 -2
- package/dist/scaffold/infra.js.map +1 -1
- package/dist/scaffold/manifest.d.ts +5 -0
- package/dist/scaffold/manifest.d.ts.map +1 -1
- package/dist/scaffold/manifest.js.map +1 -1
- package/dist/scaffold/starter-files.d.ts +22 -0
- package/dist/scaffold/starter-files.d.ts.map +1 -1
- package/dist/scaffold/starter-files.js +44 -0
- package/dist/scaffold/starter-files.js.map +1 -1
- package/dist/status.d.ts.map +1 -1
- package/dist/status.js +11 -1
- package/dist/status.js.map +1 -1
- package/dist/templates/build-pipeline/docker-compose.yml.hbs +17 -0
- package/dist/utils/cancel-handler.d.ts +17 -0
- package/dist/utils/cancel-handler.d.ts.map +1 -0
- package/dist/utils/cancel-handler.js +97 -0
- package/dist/utils/cancel-handler.js.map +1 -0
- package/dist/utils/coolify-api.d.ts +60 -2
- package/dist/utils/coolify-api.d.ts.map +1 -1
- package/dist/utils/coolify-api.js +85 -2
- package/dist/utils/coolify-api.js.map +1 -1
- package/dist/utils/secrets.d.ts +29 -0
- package/dist/utils/secrets.d.ts.map +1 -1
- package/dist/utils/secrets.js +29 -0
- package/dist/utils/secrets.js.map +1 -1
- package/dist/utils/validate.d.ts +6 -0
- package/dist/utils/validate.d.ts.map +1 -1
- package/dist/utils/validate.js +17 -0
- package/dist/utils/validate.js.map +1 -1
- package/package.json +3 -2
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copy objects from one S3-compatible bucket (or a local directory)
|
|
3
|
+
* into a target S3-compatible bucket. Used by `hatchkit assets push /
|
|
4
|
+
* pull / migrate / seed`.
|
|
5
|
+
*
|
|
6
|
+
* Design:
|
|
7
|
+
* · Cross-provider safe — always streams Get→Put rather than using
|
|
8
|
+
* the server-side CopyObject API (which only works inside one S3
|
|
9
|
+
* service). The AWS SDK Body of GetObject is a Node Readable; we
|
|
10
|
+
* pass it straight to PutObject so memory stays bounded for large
|
|
11
|
+
* objects.
|
|
12
|
+
* · Skip-if-unchanged via ETag + size. ETag is per-provider and
|
|
13
|
+
* differs for multipart uploads, so we only skip on exact match;
|
|
14
|
+
* a mismatch always re-copies (false positives are wasted work,
|
|
15
|
+
* not data loss).
|
|
16
|
+
* · Bounded concurrency. Default 8 — chosen to saturate residential
|
|
17
|
+
* uplinks without overwhelming MinIO running on the same box.
|
|
18
|
+
* · `--delete` is intentionally not exposed here. Mirror semantics
|
|
19
|
+
* are "copy missing + changed"; pruning the target is a separate
|
|
20
|
+
* destructive operation we don't want behind a casual flag.
|
|
21
|
+
*/
|
|
22
|
+
import { createReadStream, statSync } from "node:fs";
|
|
23
|
+
import { readdir } from "node:fs/promises";
|
|
24
|
+
import { join, relative, sep } from "node:path";
|
|
25
|
+
import { GetObjectCommand, HeadObjectCommand, ListObjectsV2Command, PutObjectCommand, S3Client, } from "@aws-sdk/client-s3";
|
|
26
|
+
/** Build an SDK client from our normalised config. */
|
|
27
|
+
export function buildS3Client(cfg) {
|
|
28
|
+
const opts = {
|
|
29
|
+
region: cfg.region,
|
|
30
|
+
endpoint: cfg.endpoint,
|
|
31
|
+
forcePathStyle: cfg.forcePathStyle,
|
|
32
|
+
credentials: {
|
|
33
|
+
accessKeyId: cfg.accessKeyId,
|
|
34
|
+
secretAccessKey: cfg.secretAccessKey,
|
|
35
|
+
},
|
|
36
|
+
};
|
|
37
|
+
return new S3Client(opts);
|
|
38
|
+
}
|
|
39
|
+
export async function mirror(opts) {
|
|
40
|
+
const start = Date.now();
|
|
41
|
+
const list = await listSource(opts.source);
|
|
42
|
+
const targetKeys = await listTargetEtags(opts.target);
|
|
43
|
+
const result = {
|
|
44
|
+
scanned: list.length,
|
|
45
|
+
copied: 0,
|
|
46
|
+
skipped: 0,
|
|
47
|
+
failed: 0,
|
|
48
|
+
bytes: 0,
|
|
49
|
+
durationMs: 0,
|
|
50
|
+
};
|
|
51
|
+
const concurrency = Math.max(1, opts.concurrency ?? 8);
|
|
52
|
+
let cursor = 0;
|
|
53
|
+
async function worker() {
|
|
54
|
+
while (cursor < list.length) {
|
|
55
|
+
const ref = list[cursor++];
|
|
56
|
+
const targetKey = applyPrefix(opts.target.prefix, stripPrefix(opts.source, ref.key));
|
|
57
|
+
const targetMeta = targetKeys.get(targetKey);
|
|
58
|
+
if (targetMeta && shouldSkip(ref, targetMeta)) {
|
|
59
|
+
result.skipped++;
|
|
60
|
+
opts.onObject?.({
|
|
61
|
+
kind: "skipped",
|
|
62
|
+
key: targetKey,
|
|
63
|
+
reason: ref.etag && ref.etag === targetMeta.etag ? "etag-match" : "size-match",
|
|
64
|
+
});
|
|
65
|
+
continue;
|
|
66
|
+
}
|
|
67
|
+
if (opts.dryRun) {
|
|
68
|
+
result.copied++;
|
|
69
|
+
result.bytes += ref.size;
|
|
70
|
+
opts.onObject?.({ kind: "copied", key: targetKey, bytes: ref.size });
|
|
71
|
+
continue;
|
|
72
|
+
}
|
|
73
|
+
try {
|
|
74
|
+
await copyOne(opts.source, ref, opts.target, targetKey);
|
|
75
|
+
result.copied++;
|
|
76
|
+
result.bytes += ref.size;
|
|
77
|
+
opts.onObject?.({ kind: "copied", key: targetKey, bytes: ref.size });
|
|
78
|
+
}
|
|
79
|
+
catch (err) {
|
|
80
|
+
result.failed++;
|
|
81
|
+
opts.onObject?.({
|
|
82
|
+
kind: "copy-failed",
|
|
83
|
+
key: targetKey,
|
|
84
|
+
error: err,
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
await Promise.all(Array.from({ length: concurrency }, worker));
|
|
90
|
+
result.durationMs = Date.now() - start;
|
|
91
|
+
return result;
|
|
92
|
+
}
|
|
93
|
+
/** Decide whether the existing target object can be left alone. */
|
|
94
|
+
function shouldSkip(src, dst) {
|
|
95
|
+
if (src.etag && dst.etag && normEtag(src.etag) === normEtag(dst.etag))
|
|
96
|
+
return true;
|
|
97
|
+
// ETag may be unreliable across providers for multipart objects.
|
|
98
|
+
// Fall back to exact size match — good enough for static asset
|
|
99
|
+
// workflows where re-uploads change content (and therefore size or
|
|
100
|
+
// ETag); avoids a wasteful re-copy for byte-identical objects.
|
|
101
|
+
if (src.size === dst.size && src.etag === undefined && dst.etag === undefined)
|
|
102
|
+
return true;
|
|
103
|
+
return false;
|
|
104
|
+
}
|
|
105
|
+
function normEtag(etag) {
|
|
106
|
+
return etag.replace(/^"|"$/g, "");
|
|
107
|
+
}
|
|
108
|
+
async function listSource(source) {
|
|
109
|
+
if (source.kind === "s3") {
|
|
110
|
+
return listBucket(source.client, source.bucket, source.prefix);
|
|
111
|
+
}
|
|
112
|
+
return listDir(source.dir);
|
|
113
|
+
}
|
|
114
|
+
async function listBucket(client, bucket, prefix) {
|
|
115
|
+
const refs = [];
|
|
116
|
+
let token;
|
|
117
|
+
do {
|
|
118
|
+
const out = await client.send(new ListObjectsV2Command({
|
|
119
|
+
Bucket: bucket,
|
|
120
|
+
Prefix: prefix,
|
|
121
|
+
ContinuationToken: token,
|
|
122
|
+
}));
|
|
123
|
+
for (const c of out.Contents ?? []) {
|
|
124
|
+
if (!c.Key)
|
|
125
|
+
continue;
|
|
126
|
+
refs.push({ key: c.Key, size: c.Size ?? 0, etag: c.ETag });
|
|
127
|
+
}
|
|
128
|
+
token = out.IsTruncated ? out.NextContinuationToken : undefined;
|
|
129
|
+
} while (token);
|
|
130
|
+
return refs;
|
|
131
|
+
}
|
|
132
|
+
async function listDir(root) {
|
|
133
|
+
const out = [];
|
|
134
|
+
await walk(root, root, out);
|
|
135
|
+
return out;
|
|
136
|
+
}
|
|
137
|
+
async function walk(root, dir, acc) {
|
|
138
|
+
const entries = await readdir(dir, { withFileTypes: true });
|
|
139
|
+
for (const e of entries) {
|
|
140
|
+
if (e.name.startsWith("."))
|
|
141
|
+
continue;
|
|
142
|
+
const full = join(dir, e.name);
|
|
143
|
+
if (e.isDirectory()) {
|
|
144
|
+
await walk(root, full, acc);
|
|
145
|
+
continue;
|
|
146
|
+
}
|
|
147
|
+
if (!e.isFile())
|
|
148
|
+
continue;
|
|
149
|
+
const stat = statSync(full);
|
|
150
|
+
const key = relative(root, full).split(sep).join("/");
|
|
151
|
+
acc.push({ key, size: stat.size });
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
async function listTargetEtags(target) {
|
|
155
|
+
const refs = await listBucket(target.client, target.bucket, target.prefix);
|
|
156
|
+
const map = new Map();
|
|
157
|
+
for (const r of refs)
|
|
158
|
+
map.set(r.key, r);
|
|
159
|
+
return map;
|
|
160
|
+
}
|
|
161
|
+
function stripPrefix(source, key) {
|
|
162
|
+
const prefix = source.kind === "s3" ? source.prefix : undefined;
|
|
163
|
+
if (!prefix)
|
|
164
|
+
return key;
|
|
165
|
+
return key.startsWith(prefix) ? key.slice(prefix.length) : key;
|
|
166
|
+
}
|
|
167
|
+
function applyPrefix(prefix, key) {
|
|
168
|
+
if (!prefix)
|
|
169
|
+
return key;
|
|
170
|
+
const normalised = prefix.endsWith("/") ? prefix : `${prefix}/`;
|
|
171
|
+
return `${normalised}${key.replace(/^\//, "")}`;
|
|
172
|
+
}
|
|
173
|
+
async function copyOne(source, ref, target, targetKey) {
|
|
174
|
+
if (source.kind === "dir") {
|
|
175
|
+
const fullPath = join(source.dir, ref.key);
|
|
176
|
+
await target.client.send(new PutObjectCommand({
|
|
177
|
+
Bucket: target.bucket,
|
|
178
|
+
Key: targetKey,
|
|
179
|
+
Body: createReadStream(fullPath),
|
|
180
|
+
ContentLength: ref.size,
|
|
181
|
+
ContentType: contentTypeFor(ref.key),
|
|
182
|
+
}));
|
|
183
|
+
return;
|
|
184
|
+
}
|
|
185
|
+
// S3 → S3 — stream Get into Put so we never buffer the whole object
|
|
186
|
+
// and so this works across providers (server-side copy doesn't).
|
|
187
|
+
const got = await source.client.send(new GetObjectCommand({ Bucket: source.bucket, Key: ref.key }));
|
|
188
|
+
const body = got.Body;
|
|
189
|
+
if (!body) {
|
|
190
|
+
throw new Error(`Empty body for ${source.bucket}/${ref.key}`);
|
|
191
|
+
}
|
|
192
|
+
const stream = body;
|
|
193
|
+
await target.client.send(new PutObjectCommand({
|
|
194
|
+
Bucket: target.bucket,
|
|
195
|
+
Key: targetKey,
|
|
196
|
+
Body: stream,
|
|
197
|
+
ContentLength: got.ContentLength,
|
|
198
|
+
ContentType: got.ContentType,
|
|
199
|
+
}));
|
|
200
|
+
}
|
|
201
|
+
/** Verify the target bucket actually exists + is reachable. Surfaces
|
|
202
|
+
* a friendlier error than the SDK's stack-traced NoSuchBucket. */
|
|
203
|
+
export async function ensureBucket(endpoint) {
|
|
204
|
+
try {
|
|
205
|
+
await endpoint.client.send(new HeadObjectCommand({ Bucket: endpoint.bucket, Key: "__hatchkit_probe__" }));
|
|
206
|
+
}
|
|
207
|
+
catch (err) {
|
|
208
|
+
const e = err;
|
|
209
|
+
// 404 on a probe key is fine — that just means the key doesn't
|
|
210
|
+
// exist, but the bucket does. NoSuchBucket / 403 / network errors
|
|
211
|
+
// bubble up so the caller can render a real message.
|
|
212
|
+
if (e.name === "NotFound" || e.$metadata?.httpStatusCode === 404)
|
|
213
|
+
return;
|
|
214
|
+
throw err;
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
const MIME_BY_EXT = {
|
|
218
|
+
".png": "image/png",
|
|
219
|
+
".jpg": "image/jpeg",
|
|
220
|
+
".jpeg": "image/jpeg",
|
|
221
|
+
".webp": "image/webp",
|
|
222
|
+
".gif": "image/gif",
|
|
223
|
+
".svg": "image/svg+xml",
|
|
224
|
+
".ico": "image/x-icon",
|
|
225
|
+
".mp4": "video/mp4",
|
|
226
|
+
".webm": "video/webm",
|
|
227
|
+
".mp3": "audio/mpeg",
|
|
228
|
+
".wav": "audio/wav",
|
|
229
|
+
".pdf": "application/pdf",
|
|
230
|
+
".json": "application/json",
|
|
231
|
+
".txt": "text/plain",
|
|
232
|
+
".html": "text/html",
|
|
233
|
+
".css": "text/css",
|
|
234
|
+
".js": "application/javascript",
|
|
235
|
+
};
|
|
236
|
+
function contentTypeFor(key) {
|
|
237
|
+
const dot = key.lastIndexOf(".");
|
|
238
|
+
if (dot < 0)
|
|
239
|
+
return "application/octet-stream";
|
|
240
|
+
return MIME_BY_EXT[key.slice(dot).toLowerCase()] ?? "application/octet-stream";
|
|
241
|
+
}
|
|
242
|
+
export function formatBytes(n) {
|
|
243
|
+
if (n < 1024)
|
|
244
|
+
return `${n} B`;
|
|
245
|
+
if (n < 1024 * 1024)
|
|
246
|
+
return `${(n / 1024).toFixed(1)} KB`;
|
|
247
|
+
if (n < 1024 * 1024 * 1024)
|
|
248
|
+
return `${(n / 1024 / 1024).toFixed(1)} MB`;
|
|
249
|
+
return `${(n / 1024 / 1024 / 1024).toFixed(2)} GB`;
|
|
250
|
+
}
|
|
251
|
+
//# sourceMappingURL=mirror.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mirror.js","sourceRoot":"","sources":["../../src/assets/mirror.ts"],"names":[],"mappings":"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"}
|
package/dist/completion.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completion.d.ts","sourceRoot":"","sources":["../src/completion.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"completion.d.ts","sourceRoot":"","sources":["../src/completion.ts"],"names":[],"mappings":"AAiDA,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAIvE"}
|
package/dist/completion.js
CHANGED
|
@@ -17,11 +17,13 @@ const TOP_LEVEL = [
|
|
|
17
17
|
"adopt",
|
|
18
18
|
"update",
|
|
19
19
|
"add",
|
|
20
|
+
"assets",
|
|
20
21
|
"keys",
|
|
21
22
|
"config",
|
|
22
23
|
"completion",
|
|
23
24
|
"help",
|
|
24
25
|
];
|
|
26
|
+
const ASSETS_SUB = ["seed", "push", "pull", "migrate", "list"];
|
|
25
27
|
const CONFIG_ADD = [
|
|
26
28
|
"coolify",
|
|
27
29
|
"ghcr",
|
|
@@ -78,6 +80,9 @@ ${TOP_LEVEL.map((c) => ` '${c}:${topDesc(c)}'`).join("\n")}
|
|
|
78
80
|
keys)
|
|
79
81
|
_values 'keys subcommand' ${KEYS_SUB.map((s) => `'${s}'`).join(" ")}
|
|
80
82
|
;;
|
|
83
|
+
assets)
|
|
84
|
+
_values 'assets subcommand' ${ASSETS_SUB.map((s) => `'${s}'`).join(" ")}
|
|
85
|
+
;;
|
|
81
86
|
completion)
|
|
82
87
|
_values 'shell' ${SHELLS.map((s) => `'${s}'`).join(" ")}
|
|
83
88
|
;;
|
|
@@ -112,6 +117,7 @@ _hatchkit_complete() {
|
|
|
112
117
|
local top="${TOP_LEVEL.join(" ")}"
|
|
113
118
|
local config_sub="${CONFIG_SUB.join(" ")}"
|
|
114
119
|
local keys_sub="${KEYS_SUB.join(" ")}"
|
|
120
|
+
local assets_sub="${ASSETS_SUB.join(" ")}"
|
|
115
121
|
local shells="${SHELLS.join(" ")}"
|
|
116
122
|
local providers="${CONFIG_ADD.join(" ")}"
|
|
117
123
|
|
|
@@ -133,6 +139,11 @@ _hatchkit_complete() {
|
|
|
133
139
|
COMPREPLY=( $(compgen -W "$keys_sub" -- "$cur") )
|
|
134
140
|
fi
|
|
135
141
|
;;
|
|
142
|
+
assets)
|
|
143
|
+
if [[ $cword -eq 2 ]]; then
|
|
144
|
+
COMPREPLY=( $(compgen -W "$assets_sub" -- "$cur") )
|
|
145
|
+
fi
|
|
146
|
+
;;
|
|
136
147
|
completion)
|
|
137
148
|
if [[ $cword -eq 2 ]]; then
|
|
138
149
|
COMPREPLY=( $(compgen -W "$shells" -- "$cur") )
|
|
@@ -169,6 +180,9 @@ function fish() {
|
|
|
169
180
|
for (const s of KEYS_SUB) {
|
|
170
181
|
lines.push(`complete -c hatchkit -n "__fish_seen_subcommand_from keys" -a "${s}"`);
|
|
171
182
|
}
|
|
183
|
+
for (const s of ASSETS_SUB) {
|
|
184
|
+
lines.push(`complete -c hatchkit -n "__fish_seen_subcommand_from assets" -a "${s}"`);
|
|
185
|
+
}
|
|
172
186
|
for (const s of SHELLS) {
|
|
173
187
|
lines.push(`complete -c hatchkit -n "__fish_seen_subcommand_from completion" -a "${s}"`);
|
|
174
188
|
}
|
|
@@ -197,6 +211,8 @@ function topDesc(cmd) {
|
|
|
197
211
|
return "Add features to an already-scaffolded project";
|
|
198
212
|
case "add":
|
|
199
213
|
return "Provision GlitchTip / OpenPanel / Resend clients";
|
|
214
|
+
case "assets":
|
|
215
|
+
return "Move bytes between local MinIO and prod buckets";
|
|
200
216
|
case "keys":
|
|
201
217
|
return "Manage per-project dotenvx private keys";
|
|
202
218
|
case "config":
|
package/dist/completion.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completion.js","sourceRoot":"","sources":["../src/completion.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,SAAS,GAAG;IAChB,OAAO;IACP,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,KAAK;IACL,MAAM;IACN,QAAQ;IACR,YAAY;IACZ,MAAM;CACE,CAAC;AAEX,MAAM,UAAU,GAAG;IACjB,SAAS;IACT,MAAM;IACN,SAAS;IACT,KAAK;IACL,IAAI;IACJ,OAAO;IACP,QAAQ;IACR,IAAI;IACJ,WAAW;IACX,WAAW;IACX,WAAW;IACX,QAAQ;IACR,QAAQ;CACA,CAAC;AAEX,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,OAAO,CAAU,CAAC;AAC7C,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAU,CAAC;AAC5D,MAAM,MAAM,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAU,CAAC;AAEhD,MAAM,UAAU,gBAAgB,CAAC,KAA8B;IAC7D,IAAI,KAAK,KAAK,KAAK;QAAE,OAAO,GAAG,EAAE,CAAC;IAClC,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,IAAI,EAAE,CAAC;IACpC,OAAO,IAAI,EAAE,CAAC;AAChB,CAAC;AAED,SAAS,GAAG;IACV,OAAO;;;;;;;;;EASP,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;wCAgBrB,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;;;sCAG3C,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;;;
|
|
1
|
+
{"version":3,"file":"completion.js","sourceRoot":"","sources":["../src/completion.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -96,10 +96,16 @@ export interface ResendMeta extends ProviderStatus {
|
|
|
96
96
|
defaultRegion?: string;
|
|
97
97
|
}
|
|
98
98
|
export interface StripeMeta extends ProviderStatus {
|
|
99
|
-
/**
|
|
100
|
-
*
|
|
101
|
-
* account
|
|
102
|
-
|
|
99
|
+
/** Account id (`acct_…`) derived from the live master key during
|
|
100
|
+
* verification. Surfaced in `hatchkit doctor` so a silent
|
|
101
|
+
* account-swap (rotated key now points at a *different* Stripe
|
|
102
|
+
* account) shows up as a warning instead of a green check. */
|
|
103
|
+
accountId?: string;
|
|
104
|
+
/** Whether each master key is configured. Both are independent —
|
|
105
|
+
* a user can wire test-only or live-only and we just skip webhook
|
|
106
|
+
* provisioning for the missing mode. */
|
|
107
|
+
hasTestMaster?: boolean;
|
|
108
|
+
hasLiveMaster?: boolean;
|
|
103
109
|
}
|
|
104
110
|
export interface GhcrMeta extends ProviderStatus {
|
|
105
111
|
/** GitHub login the PAT belongs to. Surfaced in `hatchkit config`
|
|
@@ -144,10 +150,14 @@ export interface ResendConfig extends ResendMeta {
|
|
|
144
150
|
apiKey: string;
|
|
145
151
|
}
|
|
146
152
|
export interface StripeConfig extends StripeMeta {
|
|
147
|
-
/**
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
153
|
+
/** Master secret key for test/sandbox-mode operations. Used by
|
|
154
|
+
* hatchkit ONLY to mint webhook endpoints in test mode. Never
|
|
155
|
+
* written into a project. */
|
|
156
|
+
testSecretKey?: string;
|
|
157
|
+
/** Master secret key for live-mode operations. Used by hatchkit
|
|
158
|
+
* ONLY to mint webhook endpoints in live mode. Never written into
|
|
159
|
+
* a project. */
|
|
160
|
+
liveSecretKey?: string;
|
|
151
161
|
}
|
|
152
162
|
export interface GhcrConfig extends GhcrMeta {
|
|
153
163
|
/** PAT with `read:packages` (and optionally `write:packages` for the
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,OAAO,IAAI,MAAM,MAAM,CAAC;AAaxB;;;;;;;;;;;;8DAY8D;AAC9D,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,MAAM,GAAG,IAAI,CAaf;AAeD;;;;;;;;;;;gBAWgB;AAChB,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CA0EvE;AAWD;;sDAEsD;AACtD,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAkBxE;AAMD,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,YAAY,GAAG,cAAc,CAAC;IACtC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAID,MAAM,WAAW,WAAY,SAAQ,cAAc;IACjD,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChE;AAED,MAAM,WAAW,WAAY,SAAQ,cAAc;CAAG;AAEtD,MAAM,WAAW,OAAQ,SAAQ,cAAc;IAC7C,QAAQ,EAAE,MAAM,GAAG,YAAY,GAAG,QAAQ,CAAC;IAC3C,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;2EACuE;IACvE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;qDAEiD;IACjD,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,cAAe,SAAQ,cAAc;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAgB,SAAQ,cAAc;IACrD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,aAAc,SAAQ,cAAc;IACnD,GAAG,EAAE,MAAM,CAAC;IACZ,uEAAuE;IACvE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;6BACyB;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAc,SAAQ,cAAc;IACnD,iEAAiE;IACjE,GAAG,EAAE,MAAM,CAAC;IACZ;;;sDAGkD;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;2DACuD;IACvD,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,UAAW,SAAQ,cAAc;IAChD,mFAAmF;IACnF,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,UAAW,SAAQ,cAAc;IAChD
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|