@devdogsuga/backstage 0.1.7 → 0.1.9
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 +42 -25
- package/dist/{catalog-BiXI0wyi.js → catalog-COleRgQD.js} +22 -13
- package/dist/{cli-Cz8faASC.js → cli-CMThHZgV.js} +23 -29
- package/dist/{cli-Do2nWD7W.js → cli-DjIwbjnx.js} +4 -4
- package/dist/client-A6pJcxSE.js +2 -0
- package/dist/{client-B_MY9kVI.js → client-NuoKMQmV.js} +4 -4
- package/dist/{commands-D345F-Od.js → commands-35rBJ1R0.js} +2 -2
- package/dist/{commands-zPSnOGzH.js → commands-BF5eptEi.js} +4 -4
- package/dist/commands-CaSixDwT.js +699 -0
- package/dist/{commands-DzALVX5g.js → commands-CuYIkHeU.js} +3 -3
- package/dist/{commands-BQ2NIqub.js → commands-DL5fpABN.js} +5 -5
- package/dist/{commands-Sx1fDNNn.js → commands-DQYH_m6i.js} +3 -3
- package/dist/{commands-CLSxKz-l.js → commands-KY-9X1Rh.js} +4 -4
- package/dist/{commands-Dv5TXjvb.js → commands-jJcS7D2a.js} +6 -6
- package/dist/{dry-run-3IxPmCtW.js → dry-run-CFCZUpjb.js} +1 -1
- package/dist/launch.js +6 -6
- package/dist/{meetings-DfU867eV.js → meetings-CLZ6xQQB.js} +2 -2
- package/dist/{peers-B0KDkI6a.js → peers-u1zxe-Ub.js} +1 -1
- package/dist/{queries-DeEwfe2c.js → queries-CaAe3cve.js} +100 -8
- package/dist/{read-B-aJJewb.js → read-B8DSwYfB.js} +2 -2
- package/dist/{telemetry-Bjoz29Hl.js → telemetry-Be_lbB5c.js} +2 -2
- package/dist/telemetry.js +1 -1
- package/dist/{ui-CdKo8mLw.js → ui-Bb69ZfVv.js} +1 -1
- package/dist/{vault-CsBC-1Mq.js → vault-DFV0zjbT.js} +1 -1
- package/package.json +5 -5
- package/dist/client-DwDGjalU.js +0 -2
- package/dist/commands-5Ou8xJw5.js +0 -225
package/README.md
CHANGED
|
@@ -37,29 +37,30 @@ pnpm backstage creds renew # extend every Send 30 days
|
|
|
37
37
|
pnpm backstage import involvement --file OrganizationRoster.csv # verify members; previews, then asks
|
|
38
38
|
pnpm backstage import attendance --meeting 2026-09-09 --file sign-in.csv
|
|
39
39
|
pnpm backstage export stars --from 2026-08-17 # audited under your gh login
|
|
40
|
+
pnpm backstage export attendance --meeting 2026-09-09 --format bevy,involvement
|
|
40
41
|
```
|
|
41
42
|
|
|
42
43
|
## Commands
|
|
43
44
|
|
|
44
|
-
| Command
|
|
45
|
-
|
|
|
46
|
-
| `deploy <app> --tier <t>`
|
|
47
|
-
| `deploy write-env`
|
|
48
|
-
| `deploy preflight`
|
|
49
|
-
| `deploy plan`, `deploy migrate`
|
|
50
|
-
| `deploy smoke --tier <t> [--app]`
|
|
51
|
-
| `deploy reconcile --tier <t>`
|
|
52
|
-
| `deploy prune-monitors --tier <t> [--app]`
|
|
53
|
-
| `env pull\|push\|audit --target <t>`
|
|
54
|
-
| `planner status\|create\|reset-password\|drop`
|
|
55
|
-
| `graphics [graphic…]`
|
|
56
|
-
| `qr <text>`
|
|
57
|
-
| `github rulesets\|settings`
|
|
58
|
-
| `newsletter render\|draft\|send <issue…>`
|
|
59
|
-
| `creds send\|add\|renew\|list\|report`
|
|
60
|
-
| `import involvement --file <csv>`
|
|
61
|
-
| `import attendance --meeting <day> --file <csv>`
|
|
62
|
-
| `export stars\|attendance\|reflections`
|
|
45
|
+
| Command | What it does |
|
|
46
|
+
| -------------------------------------------------- | -------------------------------------------------------------------------------------- |
|
|
47
|
+
| `deploy <app> --tier <t>` | Checks `CLOUDFLARE_API_TOKEN`, writes the Worker's secrets file, deploys, removes it. |
|
|
48
|
+
| `deploy write-env` | Composes `.env.<DEPLOY_ENV>` from the GitHub environment. |
|
|
49
|
+
| `deploy preflight` | Classifies the project: paused (skip) or broken (fail). |
|
|
50
|
+
| `deploy plan`, `deploy migrate` | Dry-run the migrations into the job summary; apply them to `DB_URL`. |
|
|
51
|
+
| `deploy smoke --tier <t> [--app]` | Public routes answer 200, the auth redirect works, this deploy's Sentry release shows. |
|
|
52
|
+
| `deploy reconcile --tier <t>` | The platform's config reconcile, after the deploy (`CRON_SECRET`). |
|
|
53
|
+
| `deploy prune-monitors --tier <t> [--app]` | Deletes the app's Sentry Crons monitors it no longer declares (production only). |
|
|
54
|
+
| `env pull\|push\|audit --target <t>` | One env file per target, synced to Bitwarden and GitHub. `audit` lists orphans. |
|
|
55
|
+
| `planner status\|create\|reset-password\|drop` | The `migration_planner` role the preflight tier holds. |
|
|
56
|
+
| `graphics [graphic…]` | Club images from `@devdogsuga/brand`: `brand/*`, `app/*`, `event/*`. |
|
|
57
|
+
| `qr <text>` | QR codes with every option of `/console/qr`. |
|
|
58
|
+
| `github rulesets\|settings` | Diff (and with `--apply` write) GitHub config, through `gh`. |
|
|
59
|
+
| `newsletter render\|draft\|send <issue…>` | Changelog issues as files, mailbox drafts, or a send. |
|
|
60
|
+
| `creds send\|add\|renew\|list\|report` | Club logins from Bitwarden as email-verified Sends, and the Linear report. |
|
|
61
|
+
| `import involvement --file <csv>` | Verifies the members on the Involvement Network roster, unverifies everyone else. |
|
|
62
|
+
| `import attendance --meeting <day> --file <csv>` | Records a meeting's attendance from a sign-in sheet (method `import`). |
|
|
63
|
+
| `export stars\|attendance\|reflections\|responses` | Member data as CSV, each export audited under the officer's gh login. |
|
|
63
64
|
|
|
64
65
|
`smoke` and `reconcile` replace DevDogsUGA's `packages/deploy-checks`. The
|
|
65
66
|
per-app data (hosts, public paths, the protected path and its redirect) stays in
|
|
@@ -78,8 +79,7 @@ DevDogsUGA, as a `smoke` field on each app's entry in `workers.json`:
|
|
|
78
79
|
"protectedPath": "/console/permissions",
|
|
79
80
|
"protectedRedirectPrefix": "/auth"
|
|
80
81
|
}
|
|
81
|
-
}
|
|
82
|
-
"apps/sandbox"
|
|
82
|
+
}
|
|
83
83
|
]
|
|
84
84
|
```
|
|
85
85
|
|
|
@@ -202,15 +202,32 @@ meetings are refused. Rerunning a sheet records nothing new; `--replace`
|
|
|
202
202
|
makes the sheet the meeting's whole imported set, removing earlier imported
|
|
203
203
|
rows it no longer lists. Every run previews, then asks (`--dry-run`, `--yes`).
|
|
204
204
|
|
|
205
|
-
### `export stars|attendance|reflections`
|
|
205
|
+
### `export stars|attendance|reflections|responses`
|
|
206
206
|
|
|
207
207
|
The platform's three CSVs, columns unchanged: `stars` (one row per earned
|
|
208
208
|
star), `attendance` (one row per check-in; `--meeting` for one night) and
|
|
209
|
-
`reflections` (each member's current text).
|
|
209
|
+
`reflections` (each member's current text). `responses` is the check-in
|
|
210
|
+
survey: one row per answer, worded with each question's current labels
|
|
211
|
+
beside the stored value. With `--meeting` it is that meeting's answers plus
|
|
212
|
+
its attendees' member answers as they stood when it ended (from the answer
|
|
213
|
+
history); `--format wide` writes one meeting as one row per person and one
|
|
214
|
+
column per question. Each export writes a
|
|
210
215
|
`platform.exportAudit` row before reading anything, attributed to the
|
|
211
216
|
platform account linked to the GitHub login `gh` is signed in as, and refuses
|
|
212
|
-
to run when there is none.
|
|
213
|
-
|
|
217
|
+
to run when there is none.
|
|
218
|
+
|
|
219
|
+
`attendance` can also be written as a Bevy attendee import (GDG's
|
|
220
|
+
gdg.community.dev; one row per person, checked in, with a `survey:` column
|
|
221
|
+
for each question mapped to one in `questions.json` that anyone answered) and
|
|
222
|
+
an Involvement Network
|
|
223
|
+
list (one MyID email per line), both for one `--meeting`. `--format
|
|
224
|
+
platform,bevy,involvement` picks any of them, written from one read with an
|
|
225
|
+
audit row each; at a terminal it is asked. At a terminal each file's
|
|
226
|
+
destination is asked for too, with path completion (Tab completes the
|
|
227
|
+
highlighted suggestion; a folder means the suggested name inside it).
|
|
228
|
+
Otherwise files go to `./<kind>…[-<format>].<ext>`, or `--out` (a file, a
|
|
229
|
+
folder for several, or `-` for stdout). Files are owner-readable only and
|
|
230
|
+
never replace an existing file without `--yes` or a yes at the prompt.
|
|
214
231
|
|
|
215
232
|
No secret value reaches stdout, stderr, the failure log, Sentry, an error
|
|
216
233
|
message or argv: values go to `bw` as base64 JSON on stdin, every error is
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { A as YES, D as DRY_RUN, O as JSON_FLAG, j as createCatalog, k as SCOPES, v as noteRan, w as findRepoRoot } from "./telemetry-
|
|
2
|
-
import { n as isDryRun } from "./dry-run-
|
|
3
|
-
import { o as unwrap } from "./ui-
|
|
1
|
+
import { A as YES, D as DRY_RUN, O as JSON_FLAG, j as createCatalog, k as SCOPES, v as noteRan, w as findRepoRoot } from "./telemetry-Be_lbB5c.js";
|
|
2
|
+
import { n as isDryRun } from "./dry-run-CFCZUpjb.js";
|
|
3
|
+
import { o as unwrap } from "./ui-Bb69ZfVv.js";
|
|
4
4
|
import { n as positionals } from "./args-Cjr_Iqts.js";
|
|
5
|
-
import { t as EXPORTS } from "./queries-
|
|
5
|
+
import { t as EXPORTS } from "./queries-CaAe3cve.js";
|
|
6
6
|
import { r as qrCatalogOptions } from "./options-DCaqm8BI.js";
|
|
7
7
|
import { existsSync, readFileSync } from "node:fs";
|
|
8
8
|
import { join } from "node:path";
|
|
@@ -1099,7 +1099,6 @@ const deployCommand = {
|
|
|
1099
1099
|
subcommands: [
|
|
1100
1100
|
app("platform"),
|
|
1101
1101
|
app("schedule-builder"),
|
|
1102
|
-
app("sandbox"),
|
|
1103
1102
|
{
|
|
1104
1103
|
name: "write-env",
|
|
1105
1104
|
summary: "Compose .env.<DEPLOY_ENV> from the GitHub environment.",
|
|
@@ -1243,8 +1242,8 @@ const TO = {
|
|
|
1243
1242
|
};
|
|
1244
1243
|
const OUT = {
|
|
1245
1244
|
flag: "--out",
|
|
1246
|
-
value: "<path|->",
|
|
1247
|
-
summary: "Where to write
|
|
1245
|
+
value: "<path|dir|->",
|
|
1246
|
+
summary: "Where to write (a folder for several files; - for stdout). Asked at a terminal."
|
|
1248
1247
|
};
|
|
1249
1248
|
function exportOf(kind, extra = []) {
|
|
1250
1249
|
return {
|
|
@@ -1262,18 +1261,28 @@ function exportOf(kind, extra = []) {
|
|
|
1262
1261
|
]
|
|
1263
1262
|
};
|
|
1264
1263
|
}
|
|
1264
|
+
const MEETING = {
|
|
1265
|
+
flag: "--meeting",
|
|
1266
|
+
value: "<meeting>",
|
|
1267
|
+
summary: "One meeting: its day (2026-09-09), slug, config id or id."
|
|
1268
|
+
};
|
|
1265
1269
|
const exportCommand = {
|
|
1266
1270
|
name: "export",
|
|
1267
|
-
summary: "Member data as CSV: stars, attendance, reflections. Audited.",
|
|
1271
|
+
summary: "Member data as CSV: stars, attendance, reflections, survey responses. Audited.",
|
|
1268
1272
|
hint: "production database; your gh login is recorded",
|
|
1269
1273
|
subcommands: [
|
|
1270
1274
|
exportOf("stars"),
|
|
1271
|
-
exportOf("attendance", [{
|
|
1272
|
-
flag: "--
|
|
1273
|
-
value: "<
|
|
1274
|
-
summary: "
|
|
1275
|
+
exportOf("attendance", [MEETING, {
|
|
1276
|
+
flag: "--format",
|
|
1277
|
+
value: "<formats>",
|
|
1278
|
+
summary: "platform, bevy (GDG attendee import), involvement (MyID emails); comma-separated. Asked at a terminal."
|
|
1275
1279
|
}]),
|
|
1276
|
-
exportOf("reflections")
|
|
1280
|
+
exportOf("reflections"),
|
|
1281
|
+
exportOf("responses", [MEETING, {
|
|
1282
|
+
flag: "--format",
|
|
1283
|
+
value: "<formats>",
|
|
1284
|
+
summary: "platform (one row per answer), wide (one row per person; needs --meeting). Asked at a terminal."
|
|
1285
|
+
}])
|
|
1277
1286
|
]
|
|
1278
1287
|
};
|
|
1279
1288
|
//#endregion
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { C as discoverRepoRoot, T as cliName, b as ownPackageDir, c as reportDevtoolsError, f as isNoEnv, l as reportDevtoolsFailure, n as captureDevtoolsError, o as initDevtoolsTelemetry, p as isNonInteractive, w as findRepoRoot, x as ownVersion } from "./telemetry-
|
|
2
|
-
import { a as recordEnteredTier, f as helpPath, i as beginInvocation, l as dbPush, m as renderHelp, n as bareGroupStartPath, o as recordResolved, p as renderCommandList, r as runMenu, s as reproducibleCommand, t as catalog, u as dbPushDryRun } from "./catalog-
|
|
3
|
-
import { a as repoPeerUrl, n as loadEnv, r as loadEnvLoad, t as getEnvSync } from "./peers-
|
|
1
|
+
import { C as discoverRepoRoot, T as cliName, b as ownPackageDir, c as reportDevtoolsError, f as isNoEnv, l as reportDevtoolsFailure, n as captureDevtoolsError, o as initDevtoolsTelemetry, p as isNonInteractive, w as findRepoRoot, x as ownVersion } from "./telemetry-Be_lbB5c.js";
|
|
2
|
+
import { a as recordEnteredTier, f as helpPath, i as beginInvocation, l as dbPush, m as renderHelp, n as bareGroupStartPath, o as recordResolved, p as renderCommandList, r as runMenu, s as reproducibleCommand, t as catalog, u as dbPushDryRun } from "./catalog-COleRgQD.js";
|
|
3
|
+
import { a as repoPeerUrl, n as loadEnv, r as loadEnvLoad, t as getEnvSync } from "./peers-u1zxe-Ub.js";
|
|
4
4
|
import { t as nonEmpty } from "./connection-D3XsOE3S.js";
|
|
5
|
-
import { a as wouldRunLine, n as isDryRun, t as dryRunKind } from "./dry-run-
|
|
6
|
-
import { a as explainError, i as explain, n as bail, o as unwrap, r as errorMessage } from "./ui-
|
|
5
|
+
import { a as wouldRunLine, n as isDryRun, t as dryRunKind } from "./dry-run-CFCZUpjb.js";
|
|
6
|
+
import { a as explainError, i as explain, n as bail, o as unwrap, r as errorMessage } from "./ui-Bb69ZfVv.js";
|
|
7
7
|
import { n as positionals, t as flagValue } from "./args-Cjr_Iqts.js";
|
|
8
8
|
import { t as DONE } from "./dispatch-D048O65I.js";
|
|
9
9
|
import { t as EnvDocument } from "./document-DumoZXoO.js";
|
|
10
|
-
import { a as listSecrets$1, c as updateSecret, i as createSecret, o as projectIdFor, r as byKey, s as setExplicitAccessToken } from "./client-
|
|
10
|
+
import { a as listSecrets$1, c as updateSecret, i as createSecret, o as projectIdFor, r as byKey, s as setExplicitAccessToken } from "./client-NuoKMQmV.js";
|
|
11
11
|
import { register } from "node:module";
|
|
12
12
|
import { pathToFileURL } from "node:url";
|
|
13
13
|
import { appendFileSync, existsSync, mkdtempSync, readFileSync, readdirSync, rmSync, writeFileSync } from "node:fs";
|
|
@@ -249,16 +249,12 @@ async function importRepoTs(absolutePath) {
|
|
|
249
249
|
* Most workspace packages declare nothing, so "no env.ts found" means
|
|
250
250
|
* not-a-manifest rather than an error.
|
|
251
251
|
*
|
|
252
|
-
* ⚠️
|
|
253
|
-
*
|
|
254
|
-
*
|
|
255
|
-
*
|
|
256
|
-
*
|
|
257
|
-
*
|
|
258
|
-
* `SANDBOX_PROXY_TOKEN`, minted at deploy time and therefore in no Bitwarden
|
|
259
|
-
* project by design, was reported as an orphan, i.e. as safe for the §3.6 prune
|
|
260
|
-
* path to delete. `apps/sandbox/env.ts` exists now, and states that reasoning
|
|
261
|
-
* at length.
|
|
252
|
+
* ⚠️ A Worker still needs a manifest, even though its bindings arrive as a
|
|
253
|
+
* function argument rather than `process.env`: a manifest is the only thing
|
|
254
|
+
* that routes a credential to a deployed environment and the only thing that
|
|
255
|
+
* tells `env audit` a Worker secret is supposed to be there. Without one, a
|
|
256
|
+
* minted secret (in no Bitwarden project by design) is reported as an orphan,
|
|
257
|
+
* i.e. as safe for the §3.6 prune path to delete.
|
|
262
258
|
*/
|
|
263
259
|
/**
|
|
264
260
|
* The single in-flight (or settled) load.
|
|
@@ -847,8 +843,7 @@ async function runPreflight(deps = {}) {
|
|
|
847
843
|
* ## Minted keys are refused, not filled
|
|
848
844
|
*
|
|
849
845
|
* A `secrecy: "secret"` key `storableKeys()` excludes is "minted": signed at
|
|
850
|
-
* deploy time rather than stored anywhere
|
|
851
|
-
* is declared as. This has no minter of its own — there is nothing in
|
|
846
|
+
* deploy time rather than stored anywhere. This has no minter of its own — there is nothing in
|
|
852
847
|
* this repository that produces one — so a declared minted key is always a
|
|
853
848
|
* hard failure here rather than a silent omission: a Worker that expects a
|
|
854
849
|
* value substituted fails loudly at the file it never got, not at whatever
|
|
@@ -1661,8 +1656,7 @@ function renderWriteEnvReport(result) {
|
|
|
1661
1656
|
* which leaves a Wrangler "config redirect" at `.wrangler/deploy/config.json`
|
|
1662
1657
|
* pointing at the generated `dist/server/wrangler.json`; a bare `wrangler
|
|
1663
1658
|
* deploy` from the app dir resolves through it with no `--config` needed.
|
|
1664
|
-
*
|
|
1665
|
-
* deploy step.
|
|
1659
|
+
* Both apps share one deploy step.
|
|
1666
1660
|
*
|
|
1667
1661
|
* Steps (`write-env`, `preflight`, `plan`, `migrate`, `smoke`, `reconcile`,
|
|
1668
1662
|
* `prune-monitors`) are individually addressable for jobs that run only one.
|
|
@@ -2738,9 +2732,9 @@ async function listWorkerSecrets(target) {
|
|
|
2738
2732
|
*
|
|
2739
2733
|
* The expected set is derived from the app's own manifest: every key it
|
|
2740
2734
|
* declares with `secrecy: "secret"`. That deliberately includes the MINTED
|
|
2741
|
-
* ones.
|
|
2742
|
-
*
|
|
2743
|
-
*
|
|
2735
|
+
* ones. A minted key has no copy in Bitwarden or GitHub by design, and an
|
|
2736
|
+
* audit that reasoned from stored copies alone would report a live credential
|
|
2737
|
+
* as safe to delete. (`env audit` had exactly that bug; see
|
|
2744
2738
|
* `EnvMeta.minted`.)
|
|
2745
2739
|
*
|
|
2746
2740
|
* ## Report always, prune almost never (security plan §3.6)
|
|
@@ -5386,12 +5380,12 @@ const HANDLERS = {
|
|
|
5386
5380
|
},
|
|
5387
5381
|
completions: handleCompletions,
|
|
5388
5382
|
github: handleGithub,
|
|
5389
|
-
graphics: async (rest) => (await import("./commands-
|
|
5390
|
-
qr: async (rest) => (await import("./commands-
|
|
5391
|
-
newsletter: async (rest) => (await import("./commands-
|
|
5392
|
-
creds: async (rest) => (await import("./commands-
|
|
5393
|
-
import: async (rest) => (await import("./commands-
|
|
5394
|
-
export: async (rest) => (await import("./commands-
|
|
5383
|
+
graphics: async (rest) => (await import("./commands-jJcS7D2a.js")).handleGraphics(rest),
|
|
5384
|
+
qr: async (rest) => (await import("./commands-DQYH_m6i.js")).handleQr(rest),
|
|
5385
|
+
newsletter: async (rest) => (await import("./commands-35rBJ1R0.js")).handleNewsletter(rest),
|
|
5386
|
+
creds: async (rest) => (await import("./commands-BF5eptEi.js")).handleCreds(rest),
|
|
5387
|
+
import: async (rest) => (await import("./commands-CuYIkHeU.js")).handleImport(rest),
|
|
5388
|
+
export: async (rest) => (await import("./commands-CaSixDwT.js")).handleExport(rest)
|
|
5395
5389
|
};
|
|
5396
5390
|
/**
|
|
5397
5391
|
* Names that were commands of the contributor CLI, refused with where they
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { C as discoverRepoRoot, p as isNonInteractive } from "./telemetry-
|
|
1
|
+
import { C as discoverRepoRoot, p as isNonInteractive } from "./telemetry-Be_lbB5c.js";
|
|
2
2
|
import { t as nonEmpty } from "./connection-D3XsOE3S.js";
|
|
3
|
-
import { a as explainError, i as explain, o as unwrap, t as UsageError } from "./ui-
|
|
3
|
+
import { a as explainError, i as explain, o as unwrap, t as UsageError } from "./ui-Bb69ZfVv.js";
|
|
4
4
|
import { t as EnvDocument } from "./document-DumoZXoO.js";
|
|
5
5
|
import { resolve } from "node:path";
|
|
6
6
|
import { confirm, log, text } from "@clack/prompts";
|
|
@@ -31,7 +31,7 @@ async function readProductionKey(key) {
|
|
|
31
31
|
const value = nonEmpty(EnvDocument.parse(text).get(key));
|
|
32
32
|
if (value) return value;
|
|
33
33
|
} catch {}
|
|
34
|
-
const { listSecrets, projectIdFor } = await import("./client-
|
|
34
|
+
const { listSecrets, projectIdFor } = await import("./client-A6pJcxSE.js");
|
|
35
35
|
const secrets = await listSecrets(await projectIdFor(PRODUCTION_PROJECT));
|
|
36
36
|
return nonEmpty(secrets.find((s) => s.key === key)?.value);
|
|
37
37
|
}
|
|
@@ -133,4 +133,4 @@ function reportFailure(command, err, worded = []) {
|
|
|
133
133
|
explainError(`${command} failed.`, err);
|
|
134
134
|
}
|
|
135
135
|
//#endregion
|
|
136
|
-
export {
|
|
136
|
+
export { readInputFile as a, ProductionError as c, requireProductionKey as d, withConnection as f, plural as i, connect as l, confirmWrite as n, reportFailure as o, expandHome as r, say as s, canPrompt as t, dbError as u };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { w as findRepoRoot } from "./telemetry-
|
|
2
|
-
import { n as loadEnv } from "./peers-
|
|
3
|
-
import { o as unwrap } from "./ui-
|
|
1
|
+
import { w as findRepoRoot } from "./telemetry-Be_lbB5c.js";
|
|
2
|
+
import { n as loadEnv } from "./peers-u1zxe-Ub.js";
|
|
3
|
+
import { o as unwrap } from "./ui-Bb69ZfVv.js";
|
|
4
4
|
import { t as EnvDocument } from "./document-DumoZXoO.js";
|
|
5
|
-
import { a as readTokenFromVault, o as saveTokenToVault, t as VAULT_ITEM_NAME } from "./vault-
|
|
5
|
+
import { a as readTokenFromVault, o as saveTokenToVault, t as VAULT_ITEM_NAME } from "./vault-DFV0zjbT.js";
|
|
6
6
|
import { dirname, join, resolve } from "node:path";
|
|
7
7
|
import { log, password, select, text } from "@clack/prompts";
|
|
8
8
|
import { mkdir, readFile, writeFile } from "node:fs/promises";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { p as isNonInteractive } from "./telemetry-
|
|
2
|
-
import { a as explainError, o as unwrap, r as errorMessage, t as UsageError } from "./ui-
|
|
1
|
+
import { p as isNonInteractive } from "./telemetry-Be_lbB5c.js";
|
|
2
|
+
import { a as explainError, o as unwrap, r as errorMessage, t as UsageError } from "./ui-Bb69ZfVv.js";
|
|
3
3
|
import { t as DONE } from "./dispatch-D048O65I.js";
|
|
4
4
|
import { dirname, join, resolve } from "node:path";
|
|
5
5
|
import { confirm, log, multiselect, spinner, text } from "@clack/prompts";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { C as discoverRepoRoot, p as isNonInteractive } from "./telemetry-
|
|
1
|
+
import { C as discoverRepoRoot, p as isNonInteractive } from "./telemetry-Be_lbB5c.js";
|
|
2
2
|
import { t as nonEmpty } from "./connection-D3XsOE3S.js";
|
|
3
|
-
import { a as explainError, i as explain, o as unwrap, r as errorMessage, t as UsageError } from "./ui-
|
|
3
|
+
import { a as explainError, i as explain, o as unwrap, r as errorMessage, t as UsageError } from "./ui-Bb69ZfVv.js";
|
|
4
4
|
import { t as DONE } from "./dispatch-D048O65I.js";
|
|
5
5
|
import { t as EnvDocument } from "./document-DumoZXoO.js";
|
|
6
|
-
import { i as readPasswordFromVault, n as bwArgs, r as openVault, s as bwCommand } from "./vault-
|
|
6
|
+
import { i as readPasswordFromVault, n as bwArgs, r as openVault, s as bwCommand } from "./vault-DFV0zjbT.js";
|
|
7
7
|
import { resolve } from "node:path";
|
|
8
8
|
import { confirm, log, multiselect, note, password, select, text } from "@clack/prompts";
|
|
9
9
|
import { readFile } from "node:fs/promises";
|
|
@@ -632,7 +632,7 @@ async function readCheckoutDbUrl() {
|
|
|
632
632
|
}
|
|
633
633
|
}
|
|
634
634
|
async function readSecretsManagerDbUrl() {
|
|
635
|
-
const { listSecrets, projectIdFor } = await import("./client-
|
|
635
|
+
const { listSecrets, projectIdFor } = await import("./client-A6pJcxSE.js");
|
|
636
636
|
const secrets = await listSecrets(await projectIdFor(PRODUCTION_PROJECT));
|
|
637
637
|
return nonEmpty(secrets.find((s) => s.key === "DB_URL")?.value);
|
|
638
638
|
}
|