@go-labs-sg/gosh 0.12.0 → 0.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -1
- package/dist/index.js +27 -27
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -97,7 +97,7 @@ Commands use `--input '<json>'` for the exact validated tRPC input object. This
|
|
|
97
97
|
|
|
98
98
|
`gosh event list-page` returns `{ items, page, pageSize, pageCount, totalCount }`. It defaults to page 1 with 25 results, accepts page sizes from 1 to 100, and supports server-side `search` and `status` filters. Archived events are excluded unless an explicit status is supplied. Request subsequent pages explicitly; the CLI does not automatically fetch every page. The existing `gosh event list` command and its array response remain unchanged.
|
|
99
99
|
|
|
100
|
-
The command registry exposes the supported GOSH tRPC procedures across organizer and global-admin operations, organization invitations and membership, player workflows, public results/login procedures, uploads, and realtime subscriptions. Update the registry alongside API changes, then run `bun
|
|
100
|
+
The command registry exposes the supported GOSH tRPC procedures across organizer and global-admin operations, organization invitations and membership, player workflows, public results/login procedures, uploads, and realtime subscriptions. Update the registry alongside API changes, then run `bun --filter @go-labs-sg/gosh generate:commands` from the repository root to regenerate the manifest, reference, and typed operations.
|
|
101
101
|
|
|
102
102
|
### Templates and organization scope
|
|
103
103
|
|
|
@@ -358,6 +358,20 @@ Without the allow flags, an interactive terminal prints a workflow preview and r
|
|
|
358
358
|
|
|
359
359
|
One-shot commands write one JSON envelope to stdout. Watch commands write newline-delimited JSON envelopes. Failures and opt-in `--debug` diagnostics go to stderr, and known secrets, payloads, join codes, share tokens, and signed URLs are redacted. `--quiet` or `-q` suppresses diagnostics.
|
|
360
360
|
|
|
361
|
+
## Monorepo development
|
|
362
|
+
|
|
363
|
+
Follow the [development workflow](../../../docs/development-workflow.md#required-cli-coverage). App/API changes affecting this CLI must update its commands, types/input-output contracts, help/docs and verification in the same change. Use the existing authenticated product API rather than CLI-only business logic. Presentation-only changes do not require CLI edits; record why when no CLI update was needed.
|
|
364
|
+
|
|
365
|
+
From the repository root after isolated-worktree initialization:
|
|
366
|
+
|
|
367
|
+
```bash
|
|
368
|
+
bun --filter @go-labs-sg/gosh typecheck
|
|
369
|
+
bun --filter @go-labs-sg/gosh build
|
|
370
|
+
bun run packages/gosh/cli/src/index.ts help
|
|
371
|
+
```
|
|
372
|
+
|
|
373
|
+
Building is not publication or permission to mutate live data. Use focused temporary business-behavior tests and the final pre-push gate from the shared workflow. Its existing build regenerates command artifacts; review the manifest/reference and typed operations after registry changes.
|
|
374
|
+
|
|
361
375
|
## Release verification
|
|
362
376
|
|
|
363
377
|
The `gosh-cli-v*` release workflow runs
|
package/dist/index.js
CHANGED
|
@@ -35,16 +35,16 @@ var __toESM = (mod, isNodeMode, target) => {
|
|
|
35
35
|
var __commonJS = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
|
|
36
36
|
var __require = import.meta.require;
|
|
37
37
|
|
|
38
|
-
// ../../../node_modules/.bun/dotenv@18.0.
|
|
38
|
+
// ../../../node_modules/.bun/dotenv@18.0.6/node_modules/dotenv/dist/index.cjs
|
|
39
39
|
var require_dist = __commonJS(function(exports, module) {
|
|
40
|
-
var
|
|
40
|
+
var S = (e, o) => () => {
|
|
41
41
|
try {
|
|
42
42
|
return o || e((o = { exports: {} }).exports, o), o.exports;
|
|
43
43
|
} catch (t) {
|
|
44
44
|
throw o = 0, t;
|
|
45
45
|
}
|
|
46
46
|
};
|
|
47
|
-
var
|
|
47
|
+
var j = S((xe, U) => {
|
|
48
48
|
function G(e) {
|
|
49
49
|
return typeof e == "string" ? !["false", "0", "no", "off", ""].includes(e.toLowerCase()) : !!e;
|
|
50
50
|
}
|
|
@@ -58,8 +58,8 @@ var require_dist = __commonJS(function(exports, module) {
|
|
|
58
58
|
}
|
|
59
59
|
U.exports = { parseBoolean: G, optionsFromEnv: X };
|
|
60
60
|
});
|
|
61
|
-
var N =
|
|
62
|
-
var Y = __require("fs"),
|
|
61
|
+
var N = S((ye, x) => {
|
|
62
|
+
var Y = __require("fs"), k = __require("path"), z = __require("os"), { URL: Z, fileURLToPath: ee } = __require("url"), { parseBoolean: $, optionsFromEnv: B } = j(), te = /(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/mg, b = new Uint8Array(256);
|
|
63
63
|
for (let e = 48;e <= 57; e++)
|
|
64
64
|
b[e] = 1;
|
|
65
65
|
for (let e = 65;e <= 90; e++)
|
|
@@ -185,7 +185,7 @@ var require_dist = __commonJS(function(exports, module) {
|
|
|
185
185
|
return o;
|
|
186
186
|
}
|
|
187
187
|
function ne(e, o) {
|
|
188
|
-
return o &&
|
|
188
|
+
return o && $(o.fast) ? oe(e) : re(e);
|
|
189
189
|
}
|
|
190
190
|
function T(e) {
|
|
191
191
|
console.log(`\u2506 ${e}`);
|
|
@@ -194,16 +194,16 @@ var require_dist = __commonJS(function(exports, module) {
|
|
|
194
194
|
console.error(`\u25C7 ${e}`);
|
|
195
195
|
}
|
|
196
196
|
function V(e) {
|
|
197
|
-
return e[0] === "~" ?
|
|
197
|
+
return e[0] === "~" ? k.join(z.homedir(), e.slice(1)) : e;
|
|
198
198
|
}
|
|
199
199
|
function ie(e = {}) {
|
|
200
200
|
return { ...B(), ...e };
|
|
201
201
|
}
|
|
202
202
|
function ce(e) {
|
|
203
203
|
e = ie(e);
|
|
204
|
-
let o =
|
|
204
|
+
let o = k.resolve(process.cwd(), ".env"), t = "utf8", n = process.env;
|
|
205
205
|
e && e.processEnv != null && (n = e.processEnv);
|
|
206
|
-
let r =
|
|
206
|
+
let r = $(e && e.debug);
|
|
207
207
|
e && e.encoding ? t = e.encoding : r && T("no encoding is specified (UTF-8 is used by default)");
|
|
208
208
|
let s = [o];
|
|
209
209
|
if (e && e.path)
|
|
@@ -222,12 +222,12 @@ var require_dist = __commonJS(function(exports, module) {
|
|
|
222
222
|
} catch (a) {
|
|
223
223
|
r && T(`failed to load ${c} ${a.message}`), i = a;
|
|
224
224
|
}
|
|
225
|
-
let p = A.populate(n, l, e), f =
|
|
225
|
+
let p = A.populate(n, l, e), f = $(Object.prototype.hasOwnProperty.call(e, "quiet") ? e.quiet : B(n).quiet);
|
|
226
226
|
if (r || !f) {
|
|
227
227
|
let c = Object.keys(p).length, a = [];
|
|
228
228
|
for (let g of s)
|
|
229
229
|
try {
|
|
230
|
-
let h =
|
|
230
|
+
let h = k.relative(process.cwd(), g instanceof Z ? ee(g) : g);
|
|
231
231
|
a.push(h);
|
|
232
232
|
} catch (h) {
|
|
233
233
|
r && T(`failed to load ${g} ${h.message}`), i = h;
|
|
@@ -240,7 +240,7 @@ var require_dist = __commonJS(function(exports, module) {
|
|
|
240
240
|
return A.configDotenv(e);
|
|
241
241
|
}
|
|
242
242
|
function le(e, o, t = {}) {
|
|
243
|
-
let n =
|
|
243
|
+
let n = $(t && t.debug), r = $(t && t.override), s = {};
|
|
244
244
|
if (e === null || typeof e != "object" || o === null || typeof o != "object") {
|
|
245
245
|
let i = new Error("OBJECT_REQUIRED: Please check the processEnv argument being passed to populate");
|
|
246
246
|
throw i.code = "OBJECT_REQUIRED", i;
|
|
@@ -256,7 +256,7 @@ var require_dist = __commonJS(function(exports, module) {
|
|
|
256
256
|
x.exports.populate = A.populate;
|
|
257
257
|
x.exports = A;
|
|
258
258
|
});
|
|
259
|
-
var M =
|
|
259
|
+
var M = S((Te, W) => {
|
|
260
260
|
var _ = __require("child_process"), fe = __require("fs"), L = __require("path");
|
|
261
261
|
function ue(e) {
|
|
262
262
|
let o = ['"'], t = 0;
|
|
@@ -309,9 +309,9 @@ var require_dist = __commonJS(function(exports, module) {
|
|
|
309
309
|
}
|
|
310
310
|
W.exports = pe;
|
|
311
311
|
});
|
|
312
|
-
var K =
|
|
313
|
-
var he = __require("fs"), ge = __require("os"), Q = __require("path"), me = __require("child_process"), ve = M(), R = N(), { optionsFromEnv: Ce } =
|
|
314
|
-
function
|
|
312
|
+
var K = S(($e, F) => {
|
|
313
|
+
var he = __require("fs"), ge = __require("os"), Q = __require("path"), me = __require("child_process"), ve = M(), R = N(), { optionsFromEnv: Ce } = j();
|
|
314
|
+
function D() {
|
|
315
315
|
console.log(["Usage: dotenv run [--help] [-q|--quiet] [--debug] [--override] [--fast] [-f|--file <paths>] [--] <command> [args...]", "", "Run a command with environment variables from a .env file.", "Place dotenv options before the command; all following arguments go to the command.", "", "Options:", " -f, --file <paths> .env paths, comma-separated or repeated (default: .env)", " -q, --quiet suppress the injected env message", " --debug enable debug logging", " --override override existing environment variables", " --fast use the faster character-scanner parser", "", "Environment variables (DOTENV_CONFIG_* names remain as fallbacks):", " DOTENV_PATH, DOTENV_ENCODING, DOTENV_QUIET,", " DOTENV_DEBUG, DOTENV_OVERRIDE,", " DOTENV_FAST"].join(`
|
|
316
316
|
`));
|
|
317
317
|
}
|
|
@@ -383,24 +383,24 @@ var require_dist = __commonJS(function(exports, module) {
|
|
|
383
383
|
function J(e) {
|
|
384
384
|
let o = e[0];
|
|
385
385
|
if (o === "--help" || o === "-h") {
|
|
386
|
-
|
|
386
|
+
D();
|
|
387
387
|
return;
|
|
388
388
|
}
|
|
389
389
|
if (o !== "run") {
|
|
390
|
-
|
|
390
|
+
D(), process.exitCode = 1;
|
|
391
391
|
return;
|
|
392
392
|
}
|
|
393
393
|
let t = we(e.slice(1));
|
|
394
394
|
if (t.help) {
|
|
395
|
-
|
|
395
|
+
D();
|
|
396
396
|
return;
|
|
397
397
|
}
|
|
398
398
|
if (t.error) {
|
|
399
|
-
console.error(`dotenv: ${t.error}`),
|
|
399
|
+
console.error(`dotenv: ${t.error}`), D(), process.exitCode = 1;
|
|
400
400
|
return;
|
|
401
401
|
}
|
|
402
402
|
if (t.command.length === 0) {
|
|
403
|
-
|
|
403
|
+
D(), process.exitCode = 1;
|
|
404
404
|
return;
|
|
405
405
|
}
|
|
406
406
|
let n = Ee(t);
|
|
@@ -456,13 +456,13 @@ var require_dist = __commonJS(function(exports, module) {
|
|
|
456
456
|
F.exports = J;
|
|
457
457
|
F === __require.main && J(process.argv.slice(2));
|
|
458
458
|
});
|
|
459
|
-
var
|
|
459
|
+
var I = N();
|
|
460
460
|
var Oe = K();
|
|
461
|
-
module.exports =
|
|
462
|
-
module.exports.config =
|
|
463
|
-
module.exports.configDotenv =
|
|
464
|
-
module.exports.parse =
|
|
465
|
-
module.exports.populate =
|
|
461
|
+
module.exports = I;
|
|
462
|
+
module.exports.config = I.config;
|
|
463
|
+
module.exports.configDotenv = I.configDotenv;
|
|
464
|
+
module.exports.parse = I.parse;
|
|
465
|
+
module.exports.populate = I.populate;
|
|
466
466
|
});
|
|
467
467
|
|
|
468
468
|
// src/load-env.ts
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@go-labs-sg/gosh",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.13.0",
|
|
4
4
|
"description": "GOSH CLI for organizers and AI agents — manage organizations, events, teams, stations, missions, templates, and live operations through the GOSH API.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
],
|
|
20
20
|
"dependencies": {
|
|
21
21
|
"@trpc/client": "^11.19.0",
|
|
22
|
-
"dotenv": "^18.0.
|
|
22
|
+
"dotenv": "^18.0.6",
|
|
23
23
|
"superjson": "^2.2.6"
|
|
24
24
|
},
|
|
25
25
|
"engines": {
|