@go-labs-sg/gosh 0.14.0 → 1.1.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 +48 -5
- package/command-manifest.json +10 -0
- package/command-reference.md +8 -0
- package/dist/index.js +212 -167
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -65,6 +65,17 @@ Before requesting approval, login verifies write/read/delete capability with a u
|
|
|
65
65
|
|
|
66
66
|
See the [shared authentication contract](../../cli-auth/README.md) for recovery and verification limits.
|
|
67
67
|
|
|
68
|
+
## Realtime watch reconciliation
|
|
69
|
+
|
|
70
|
+
`gosh player watch` and `gosh submission watch` continue to emit newline-delimited
|
|
71
|
+
JSON. On a v2-enabled server, process-local changes can arrive immediately;
|
|
72
|
+
cross-process changes are reconciled through the existing 15-second resync
|
|
73
|
+
cadence while a watch is active. A player `resync` message or submission
|
|
74
|
+
`resynced: true` message means fetch the current authorized state again, not that
|
|
75
|
+
a complete business-event replay was delivered. Command names, arguments and
|
|
76
|
+
permission checks are unchanged. Browser clients use scoped v2 subscriptions
|
|
77
|
+
instead of this compatibility cadence.
|
|
78
|
+
|
|
68
79
|
## Authentication
|
|
69
80
|
|
|
70
81
|
```bash
|
|
@@ -183,10 +194,14 @@ value in that template team's `order` field:
|
|
|
183
194
|
Events default to `OPEN` progression, which keeps the existing open-play flow.
|
|
184
195
|
Sequential progression starts each team or individual on an ordered station
|
|
185
196
|
route. Group routing is available only for `TEAM` play mode. Create teams and
|
|
186
|
-
assign them to routing groups before launching the event
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
197
|
+
assign them to routing groups before launching the event. Routes, stations
|
|
198
|
+
and missions stay editable after play starts: each edit re-syncs every started
|
|
199
|
+
team's saved progress in the same transaction. Played stations keep their
|
|
200
|
+
progress and order, while unplayed stations follow the new route. An edit that
|
|
201
|
+
would remove the station a team is in the middle of fails with a conflict and
|
|
202
|
+
changes nothing. A started team's group assignment, team creation, play mode
|
|
203
|
+
and progression settings stay locked. A group shares its ordered station route,
|
|
204
|
+
while each team keeps independent progress through that route.
|
|
190
205
|
|
|
191
206
|
Configure gameplay, then manage the event's routing groups and their complete
|
|
192
207
|
station lists:
|
|
@@ -281,7 +296,7 @@ gosh player mission skip \
|
|
|
281
296
|
```
|
|
282
297
|
|
|
283
298
|
Player actions require event enrollment and the configured team submission
|
|
284
|
-
permissions. A
|
|
299
|
+
permissions. A player cannot undo a skip: it earns zero points and resolves only that mission,
|
|
285
300
|
preserves points from the station's other submitted missions, and advances the
|
|
286
301
|
route once all station missions are submitted or skipped. The station timer
|
|
287
302
|
runs from check-in/start through the final mission submission or skip. It
|
|
@@ -289,6 +304,34 @@ measures mission work only: travel between stations and staff review time are
|
|
|
289
304
|
excluded. Existing leaderboard and results commands include the resulting
|
|
290
305
|
timing information.
|
|
291
306
|
|
|
307
|
+
A host with `reviewSubmissions` can reopen one submitted or skipped mission for
|
|
308
|
+
a team (`teamId`) or individual player (`eventPlayerId`) on a fixed-order route
|
|
309
|
+
while the event is live:
|
|
310
|
+
|
|
311
|
+
```bash
|
|
312
|
+
gosh mission reopen \
|
|
313
|
+
--input '{"eventId":"event-id","missionId":"mission-1","teamId":"team-1"}' \
|
|
314
|
+
--target team-1 \
|
|
315
|
+
--allow-state-change
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
The earlier submission's points keep counting until the team submits again;
|
|
319
|
+
then only the new submission counts, up or down. Station times and the team's
|
|
320
|
+
finish time are kept, and a finished station accepts the reopened mission
|
|
321
|
+
until it is resolved. Pending submissions must be reviewed first, and a
|
|
322
|
+
reopened mission that still holds earlier points cannot be skipped.
|
|
323
|
+
|
|
324
|
+
When reviewing, pass the submission's `updatedAt` from the review queue as
|
|
325
|
+
`expectedUpdatedAt`. If the team resubmitted after you read it, the review is
|
|
326
|
+
refused with `CONFLICT` instead of scoring the new answer blind:
|
|
327
|
+
|
|
328
|
+
```bash
|
|
329
|
+
gosh submission review \
|
|
330
|
+
--input '{"eventId":"event-id","organizationId":"org-id","submissionId":"submission-1","status":"APPROVED","expectedUpdatedAt":"2026-10-14T07:00:00.000Z"}' \
|
|
331
|
+
--target submission-1 \
|
|
332
|
+
--allow-state-change
|
|
333
|
+
```
|
|
334
|
+
|
|
292
335
|
### Artwork requirements (no login required)
|
|
293
336
|
|
|
294
337
|
Read the bundled upload policy before preparing station, mission, or branding artwork:
|
package/command-manifest.json
CHANGED
|
@@ -1622,6 +1622,16 @@
|
|
|
1622
1622
|
"name"
|
|
1623
1623
|
]
|
|
1624
1624
|
},
|
|
1625
|
+
{
|
|
1626
|
+
"effects": ["state-change"],
|
|
1627
|
+
"input": "json",
|
|
1628
|
+
"operation": "mutation",
|
|
1629
|
+
"path": ["mission", "reopen"],
|
|
1630
|
+
"procedure": "event.reopenMission",
|
|
1631
|
+
"requiresAuth": true,
|
|
1632
|
+
"summary": "Reopen a submitted or skipped mission for one team (teamId) or player (eventPlayerId) on a fixed-order route. Earlier points count until they resubmit; then only the new submission counts. Finish times are kept.",
|
|
1633
|
+
"targetKeys": ["teamId", "eventPlayerId", "missionId"]
|
|
1634
|
+
},
|
|
1625
1635
|
{
|
|
1626
1636
|
"effects": ["state-change"],
|
|
1627
1637
|
"input": "json",
|
package/command-reference.md
CHANGED
|
@@ -618,6 +618,14 @@ Review a mission submission.
|
|
|
618
618
|
- Input: `--input '<json>'` required
|
|
619
619
|
- Effects: state-change
|
|
620
620
|
|
|
621
|
+
## `gosh mission reopen`
|
|
622
|
+
|
|
623
|
+
Reopen a submitted or skipped mission for one team (teamId) or player (eventPlayerId) on a fixed-order route. Earlier points count until they resubmit; then only the new submission counts. Finish times are kept.
|
|
624
|
+
|
|
625
|
+
- Authentication: browser-authenticated CLI session required
|
|
626
|
+
- Input: `--input '<json>'` required
|
|
627
|
+
- Effects: state-change
|
|
628
|
+
|
|
621
629
|
## `gosh results-share regenerate`
|
|
622
630
|
|
|
623
631
|
Create a new results portal share token.
|
package/dist/index.js
CHANGED
|
@@ -35,31 +35,31 @@ 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.8/node_modules/dotenv/dist/index.cjs
|
|
39
39
|
var require_dist = __commonJS(function(exports, module) {
|
|
40
|
-
var
|
|
40
|
+
var j = (e, n) => () => {
|
|
41
41
|
try {
|
|
42
|
-
return
|
|
42
|
+
return n || e((n = { exports: {} }).exports, n), n.exports;
|
|
43
43
|
} catch (t) {
|
|
44
|
-
throw
|
|
44
|
+
throw n = 0, t;
|
|
45
45
|
}
|
|
46
46
|
};
|
|
47
|
-
var
|
|
47
|
+
var k = j((xe, U) => {
|
|
48
48
|
function G(e) {
|
|
49
49
|
return typeof e == "string" ? !["false", "0", "no", "off", ""].includes(e.toLowerCase()) : !!e;
|
|
50
50
|
}
|
|
51
|
-
function
|
|
52
|
-
let
|
|
51
|
+
function Y(e = process.env) {
|
|
52
|
+
let n = {};
|
|
53
53
|
for (let t of ["ENCODING", "PATH", "QUIET", "DEBUG", "OVERRIDE", "FAST"]) {
|
|
54
|
-
let
|
|
55
|
-
|
|
54
|
+
let o = e[`DOTENV_${t}`] != null ? e[`DOTENV_${t}`] : e[`DOTENV_CONFIG_${t}`];
|
|
55
|
+
o != null && (n[t.toLowerCase()] = t === "ENCODING" || t === "PATH" ? o : G(o));
|
|
56
56
|
}
|
|
57
|
-
return
|
|
57
|
+
return n;
|
|
58
58
|
}
|
|
59
|
-
U.exports = { parseBoolean: G, optionsFromEnv:
|
|
59
|
+
U.exports = { parseBoolean: G, optionsFromEnv: Y };
|
|
60
60
|
});
|
|
61
|
-
var N =
|
|
62
|
-
var
|
|
61
|
+
var N = j((ye, x) => {
|
|
62
|
+
var z = __require("fs"), I = __require("path"), Z = __require("os"), { URL: ee, fileURLToPath: te } = __require("url"), { parseBoolean: $, optionsFromEnv: B } = k(), re = /(?:^|^)\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++)
|
|
@@ -69,92 +69,92 @@ var require_dist = __commonJS(function(exports, module) {
|
|
|
69
69
|
b[45] = 1;
|
|
70
70
|
b[46] = 1;
|
|
71
71
|
b[95] = 1;
|
|
72
|
-
function
|
|
73
|
-
let
|
|
72
|
+
function ne(e) {
|
|
73
|
+
let n = {}, t = e.toString();
|
|
74
74
|
t = t.replace(/\r\n?/mg, `
|
|
75
75
|
`);
|
|
76
|
-
let
|
|
77
|
-
for (;(
|
|
78
|
-
let r =
|
|
76
|
+
let o;
|
|
77
|
+
for (;(o = re.exec(t)) != null; ) {
|
|
78
|
+
let r = o[1], s = o[2] || "";
|
|
79
79
|
s = s.trim();
|
|
80
80
|
let i = s[0];
|
|
81
81
|
s = s.replace(/^(['"`])([\s\S]*)\1$/mg, "$2"), i === '"' && (s = s.replace(/\\n/g, `
|
|
82
|
-
`), s = s.replace(/\\r/g, "\r")),
|
|
82
|
+
`), s = s.replace(/\\r/g, "\r")), n[r] = s;
|
|
83
83
|
}
|
|
84
|
-
return
|
|
84
|
+
return n;
|
|
85
85
|
}
|
|
86
86
|
function w(e) {
|
|
87
87
|
return e <= 32 ? e === 32 || e >= 9 && e <= 13 : e >= 160 && (e === 160 || e === 5760 || e >= 8192 && e <= 8202 || e === 8232 || e === 8233 || e === 8239 || e === 8287 || e === 12288 || e === 65279);
|
|
88
88
|
}
|
|
89
|
-
function
|
|
89
|
+
function q(e) {
|
|
90
90
|
return e === 10 || e === 8232 || e === 8233;
|
|
91
91
|
}
|
|
92
92
|
function oe(e) {
|
|
93
|
-
let
|
|
93
|
+
let n = {}, t = typeof e == "string" ? e : e.toString();
|
|
94
94
|
t.indexOf("\r") !== -1 && (t = t.replace(/\r\n?/g, `
|
|
95
95
|
`));
|
|
96
|
-
let
|
|
97
|
-
for (;r <
|
|
96
|
+
let o = t.length, r = 0;
|
|
97
|
+
for (;r < o; ) {
|
|
98
98
|
let s = t.charCodeAt(r);
|
|
99
|
-
for (;r <
|
|
99
|
+
for (;r < o && w(s); )
|
|
100
100
|
r++, s = t.charCodeAt(r);
|
|
101
|
-
if (r >=
|
|
101
|
+
if (r >= o)
|
|
102
102
|
break;
|
|
103
103
|
if (s === 35) {
|
|
104
|
-
for (;r <
|
|
104
|
+
for (;r < o && !q(t.charCodeAt(r)); )
|
|
105
105
|
r++;
|
|
106
106
|
continue;
|
|
107
107
|
}
|
|
108
108
|
let i = -1;
|
|
109
|
-
if (s === 101 && r + 6 <
|
|
109
|
+
if (s === 101 && r + 6 < o && t.charCodeAt(r + 1) === 120 && t.charCodeAt(r + 2) === 112 && t.charCodeAt(r + 3) === 111 && t.charCodeAt(r + 4) === 114 && t.charCodeAt(r + 5) === 116) {
|
|
110
110
|
let v = t.charCodeAt(r + 6);
|
|
111
111
|
if (w(v)) {
|
|
112
112
|
let u = r + 7;
|
|
113
|
-
for (;u <
|
|
113
|
+
for (;u < o && w(t.charCodeAt(u)); )
|
|
114
114
|
u++;
|
|
115
115
|
b[t.charCodeAt(u)] && (i = r + 6, r = u);
|
|
116
116
|
} else
|
|
117
117
|
s = t.charCodeAt(r);
|
|
118
118
|
}
|
|
119
119
|
let l = r, d = 0;
|
|
120
|
-
for (;r <
|
|
120
|
+
for (;r < o && (d = t.charCodeAt(r), b[d]); )
|
|
121
121
|
r++;
|
|
122
122
|
if (r === l) {
|
|
123
|
-
for (;r <
|
|
123
|
+
for (;r < o && !q(t.charCodeAt(r)); )
|
|
124
124
|
r++;
|
|
125
125
|
continue;
|
|
126
126
|
}
|
|
127
|
-
let
|
|
128
|
-
if (r >=
|
|
127
|
+
let h = t.slice(l, r), f = r;
|
|
128
|
+
if (r >= o && (d = 0), w(d))
|
|
129
129
|
do
|
|
130
|
-
r++, d = r <
|
|
130
|
+
r++, d = r < o ? t.charCodeAt(r) : 0;
|
|
131
131
|
while (w(d));
|
|
132
132
|
if (d === 61)
|
|
133
133
|
r++;
|
|
134
|
-
else if (d === 58 && r === f && r + 1 <
|
|
134
|
+
else if (d === 58 && r === f && r + 1 < o && w(t.charCodeAt(r + 1)))
|
|
135
135
|
r += 2;
|
|
136
136
|
else {
|
|
137
|
-
for (r = i === -1 ? f : i;r <
|
|
137
|
+
for (r = i === -1 ? f : i;r < o && !q(t.charCodeAt(r)); )
|
|
138
138
|
r++;
|
|
139
139
|
continue;
|
|
140
140
|
}
|
|
141
141
|
let c = r, a = r;
|
|
142
|
-
for (;a <
|
|
142
|
+
for (;a < o && w(t.charCodeAt(a)); )
|
|
143
143
|
a++;
|
|
144
|
-
let g = t.charCodeAt(a),
|
|
144
|
+
let g = t.charCodeAt(a), p, y = false;
|
|
145
145
|
if (g === 39 || g === 34 || g === 96) {
|
|
146
146
|
let v = t[a], u = t.indexOf(v, a + 1), m = -1, C = -1;
|
|
147
147
|
for (;u !== -1; ) {
|
|
148
|
-
let
|
|
149
|
-
for (;E <
|
|
148
|
+
let O = t.charCodeAt(u - 1) === 92, E = u + 1;
|
|
149
|
+
for (;E < o && !q(t.charCodeAt(E)) && w(t.charCodeAt(E)); )
|
|
150
150
|
E++;
|
|
151
|
-
if ((E ===
|
|
151
|
+
if ((E === o || q(t.charCodeAt(E)) || t.charCodeAt(E) === 35) && (m = u, C = E), !O)
|
|
152
152
|
break;
|
|
153
153
|
u = t.indexOf(v, u + 1);
|
|
154
154
|
}
|
|
155
155
|
if (m !== -1) {
|
|
156
|
-
if (
|
|
157
|
-
for (;r <
|
|
156
|
+
if (p = t.slice(a + 1, m), r = C, t.charCodeAt(r) === 35)
|
|
157
|
+
for (;r < o && !q(t.charCodeAt(r)); )
|
|
158
158
|
r++;
|
|
159
159
|
y = true;
|
|
160
160
|
}
|
|
@@ -162,9 +162,9 @@ var require_dist = __commonJS(function(exports, module) {
|
|
|
162
162
|
if (!y) {
|
|
163
163
|
let v = t.indexOf(`
|
|
164
164
|
`, c);
|
|
165
|
-
v === -1 && (v =
|
|
165
|
+
v === -1 && (v = o);
|
|
166
166
|
let u;
|
|
167
|
-
if (
|
|
167
|
+
if (o < 4096)
|
|
168
168
|
u = t.indexOf("#", c), (u === -1 || u > v) && (u = v);
|
|
169
169
|
else
|
|
170
170
|
for (u = c;u < v && t.charCodeAt(u) !== 35; )
|
|
@@ -174,38 +174,41 @@ var require_dist = __commonJS(function(exports, module) {
|
|
|
174
174
|
m++;
|
|
175
175
|
for (;C > m && w(t.charCodeAt(C - 1)); )
|
|
176
176
|
C--;
|
|
177
|
-
let
|
|
178
|
-
if (C - m >= 2 && (
|
|
179
|
-
for (;r <
|
|
177
|
+
let O = t.charCodeAt(m);
|
|
178
|
+
if (p = t.slice(m, C), p.includes("\u2028") || p.includes("\u2029") ? p = p.replace(/^(['"`])([\s\S]*)\1$/mg, "$2") : C - m >= 2 && (O === 39 || O === 34 || O === 96) && t.charCodeAt(C - 1) === O && (p = t.slice(m + 1, C - 1)), r = u, u < v)
|
|
179
|
+
for (;r < o && !q(t.charCodeAt(r)); )
|
|
180
180
|
r++;
|
|
181
181
|
}
|
|
182
|
-
g === 34 && (y || a < r) &&
|
|
183
|
-
`).replace(/\\r/g, "\r")),
|
|
182
|
+
g === 34 && (y || a < r) && p.indexOf("\\") !== -1 && (p = p.replace(/\\n/g, `
|
|
183
|
+
`).replace(/\\r/g, "\r")), n[h] = p;
|
|
184
184
|
}
|
|
185
|
-
return
|
|
185
|
+
return n;
|
|
186
186
|
}
|
|
187
|
-
function
|
|
188
|
-
return
|
|
187
|
+
function se(e, n) {
|
|
188
|
+
return n && $(n.fast) ? oe(e) : ne(e);
|
|
189
189
|
}
|
|
190
190
|
function T(e) {
|
|
191
191
|
console.log(`\u2506 ${e}`);
|
|
192
192
|
}
|
|
193
|
-
function
|
|
193
|
+
function ie(e) {
|
|
194
194
|
console.error(`\u25C7 ${e}`);
|
|
195
195
|
}
|
|
196
196
|
function V(e) {
|
|
197
|
-
return e[0] === "~" ?
|
|
197
|
+
return e[0] === "~" ? I.join(Z.homedir(), e.slice(1)) : e;
|
|
198
198
|
}
|
|
199
|
-
function
|
|
200
|
-
|
|
199
|
+
function ce(e = {}) {
|
|
200
|
+
let n = { ...e };
|
|
201
|
+
for (let t of Object.keys(n))
|
|
202
|
+
n[t] === undefined && delete n[t];
|
|
203
|
+
return { ...B(), ...n };
|
|
201
204
|
}
|
|
202
|
-
function
|
|
203
|
-
e =
|
|
204
|
-
let
|
|
205
|
-
e && e.processEnv != null && (
|
|
205
|
+
function ae(e) {
|
|
206
|
+
e = ce(e);
|
|
207
|
+
let n = I.resolve(process.cwd(), ".env"), t = "utf8", o = process.env;
|
|
208
|
+
e && e.processEnv != null && (o = e.processEnv);
|
|
206
209
|
let r = $(e && e.debug);
|
|
207
210
|
e && e.encoding ? t = e.encoding : r && T("no encoding is specified (UTF-8 is used by default)");
|
|
208
|
-
let s = [
|
|
211
|
+
let s = [n];
|
|
209
212
|
if (e && e.path)
|
|
210
213
|
if (!Array.isArray(e.path))
|
|
211
214
|
s = [V(e.path)];
|
|
@@ -217,116 +220,116 @@ var require_dist = __commonJS(function(exports, module) {
|
|
|
217
220
|
let i, l = {}, d = { fast: e.fast };
|
|
218
221
|
for (let c of s)
|
|
219
222
|
try {
|
|
220
|
-
let a = A.parse(
|
|
223
|
+
let a = A.parse(z.readFileSync(c, { encoding: t }), d);
|
|
221
224
|
A.populate(l, a, e);
|
|
222
225
|
} catch (a) {
|
|
223
226
|
r && T(`failed to load ${c} ${a.message}`), i = a;
|
|
224
227
|
}
|
|
225
|
-
let
|
|
228
|
+
let h = A.populate(o, l, e), f = $(Object.prototype.hasOwnProperty.call(e, "quiet") ? e.quiet : B(o).quiet);
|
|
226
229
|
if (r || !f) {
|
|
227
|
-
let c = Object.keys(
|
|
230
|
+
let c = Object.keys(h).length, a = [];
|
|
228
231
|
for (let g of s)
|
|
229
232
|
try {
|
|
230
|
-
let
|
|
231
|
-
a.push(
|
|
232
|
-
} catch (
|
|
233
|
-
r && T(`failed to load ${g} ${
|
|
233
|
+
let p = I.relative(process.cwd(), g instanceof ee ? te(g) : g);
|
|
234
|
+
a.push(p);
|
|
235
|
+
} catch (p) {
|
|
236
|
+
r && T(`failed to load ${g} ${p.message}`), i = p;
|
|
234
237
|
}
|
|
235
|
-
|
|
238
|
+
ie(`injected env (${c}) from ${a.join(",")}`);
|
|
236
239
|
}
|
|
237
240
|
return i ? { parsed: l, error: i } : { parsed: l };
|
|
238
241
|
}
|
|
239
|
-
function
|
|
242
|
+
function le(e) {
|
|
240
243
|
return A.configDotenv(e);
|
|
241
244
|
}
|
|
242
|
-
function
|
|
243
|
-
let
|
|
244
|
-
if (e === null || typeof e != "object" ||
|
|
245
|
+
function fe(e, n, t = {}) {
|
|
246
|
+
let o = $(t && t.debug), r = $(t && t.override), s = {};
|
|
247
|
+
if (e === null || typeof e != "object" || n === null || typeof n != "object") {
|
|
245
248
|
let i = new Error("OBJECT_REQUIRED: Please check the processEnv argument being passed to populate");
|
|
246
249
|
throw i.code = "OBJECT_REQUIRED", i;
|
|
247
250
|
}
|
|
248
|
-
for (let i of Object.keys(
|
|
249
|
-
Object.prototype.hasOwnProperty.call(e, i) ? (r === true && (e[i] =
|
|
251
|
+
for (let i of Object.keys(n))
|
|
252
|
+
Object.prototype.hasOwnProperty.call(e, i) ? (r === true && (e[i] = n[i], s[i] = n[i]), o && T(r === true ? `"${i}" is already defined and WAS overwritten` : `"${i}" is already defined and was NOT overwritten`)) : (e[i] = n[i], s[i] = n[i]);
|
|
250
253
|
return s;
|
|
251
254
|
}
|
|
252
|
-
var A = { configDotenv:
|
|
255
|
+
var A = { configDotenv: ae, config: le, parse: se, populate: fe };
|
|
253
256
|
x.exports.configDotenv = A.configDotenv;
|
|
254
257
|
x.exports.config = A.config;
|
|
255
258
|
x.exports.parse = A.parse;
|
|
256
259
|
x.exports.populate = A.populate;
|
|
257
260
|
x.exports = A;
|
|
258
261
|
});
|
|
259
|
-
var M =
|
|
260
|
-
var _ = __require("child_process"),
|
|
261
|
-
function
|
|
262
|
-
let
|
|
263
|
-
for (let
|
|
264
|
-
if (
|
|
262
|
+
var M = j((Te, W) => {
|
|
263
|
+
var _ = __require("child_process"), ue = __require("fs"), L = __require("path");
|
|
264
|
+
function de(e) {
|
|
265
|
+
let n = ['"'], t = 0;
|
|
266
|
+
for (let o of e) {
|
|
267
|
+
if (o === "\\") {
|
|
265
268
|
t++;
|
|
266
269
|
continue;
|
|
267
270
|
}
|
|
268
|
-
|
|
271
|
+
o === '"' ? n.push("\\".repeat(t * 2 + 1), '"') : n.push("\\".repeat(t), o), t = 0;
|
|
269
272
|
}
|
|
270
|
-
return
|
|
273
|
+
return n.push("\\".repeat(t * 2), '"'), n.join("");
|
|
271
274
|
}
|
|
272
|
-
function H(e,
|
|
273
|
-
for (let t = 0;t <
|
|
274
|
-
let
|
|
275
|
+
function H(e, n = 1) {
|
|
276
|
+
for (let t = 0;t < n; t++) {
|
|
277
|
+
let o = [];
|
|
275
278
|
for (let r of e) {
|
|
276
279
|
let s = r.charCodeAt(0), i = s >= 48 && s <= 57 || s >= 65 && s <= 90 || s >= 97 && s <= 122, l = "\\/:._-".includes(r);
|
|
277
|
-
!i && !l && s < 128 &&
|
|
280
|
+
!i && !l && s < 128 && o.push("^"), o.push(r);
|
|
278
281
|
}
|
|
279
|
-
e =
|
|
282
|
+
e = o.join("");
|
|
280
283
|
}
|
|
281
284
|
return e;
|
|
282
285
|
}
|
|
283
|
-
function P(e,
|
|
284
|
-
let t = Object.keys(e).reverse().find((
|
|
286
|
+
function P(e, n) {
|
|
287
|
+
let t = Object.keys(e).reverse().find((o) => o.toUpperCase() === n);
|
|
285
288
|
return t === undefined ? undefined : e[t];
|
|
286
289
|
}
|
|
287
|
-
function
|
|
288
|
-
let
|
|
290
|
+
function pe(e, n, t) {
|
|
291
|
+
let o = (P(n, "PATHEXT") || ".COM;.EXE;.BAT;.CMD").split(";").filter(Boolean), s = o.some((l) => e.toLowerCase().endsWith(l.toLowerCase())) ? ["", ...o] : [...o, ""], i = /[\\/]/.test(e) ? [t] : [t, ...(P(n, "PATH") || "").split(";")];
|
|
289
292
|
for (let l of i)
|
|
290
293
|
for (let d of s) {
|
|
291
|
-
let
|
|
294
|
+
let h = L.resolve(t, l.replace(/^"|"$/g, ""), e + d);
|
|
292
295
|
try {
|
|
293
|
-
if (
|
|
294
|
-
return
|
|
296
|
+
if (ue.statSync(h).isFile())
|
|
297
|
+
return h;
|
|
295
298
|
} catch {}
|
|
296
299
|
}
|
|
297
300
|
}
|
|
298
|
-
function
|
|
301
|
+
function he(e, n, t) {
|
|
299
302
|
if (process.platform !== "win32")
|
|
300
|
-
return _.spawn(e,
|
|
301
|
-
let
|
|
303
|
+
return _.spawn(e, n, t);
|
|
304
|
+
let o = t.env || process.env, r = pe(e, o, t.cwd || process.cwd());
|
|
302
305
|
if (r && /\.(?:exe|com)$/i.test(r))
|
|
303
|
-
return _.spawn(r,
|
|
306
|
+
return _.spawn(r, n, t);
|
|
304
307
|
let s = /\.(?:bat|cmd)$/i.test(r || e), i = [H(L.normalize(r || e))];
|
|
305
|
-
for (let d of
|
|
306
|
-
i.push(H(
|
|
308
|
+
for (let d of n)
|
|
309
|
+
i.push(H(de(d), s ? 2 : 1));
|
|
307
310
|
let l = i.join(" ");
|
|
308
|
-
return _.spawn(P(
|
|
311
|
+
return _.spawn(P(o, "COMSPEC") || "cmd.exe", ["/d", "/v:off", "/s", "/c", `"${l}"`], { ...t, windowsVerbatimArguments: true });
|
|
309
312
|
}
|
|
310
|
-
W.exports =
|
|
313
|
+
W.exports = he;
|
|
311
314
|
});
|
|
312
|
-
var
|
|
313
|
-
var
|
|
315
|
+
var X = j(($e, F) => {
|
|
316
|
+
var ge = __require("fs"), me = __require("os"), Q = __require("path"), ve = __require("child_process"), Ce = M(), R = N(), { optionsFromEnv: J } = k();
|
|
314
317
|
function D() {
|
|
315
318
|
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
319
|
`));
|
|
317
320
|
}
|
|
318
321
|
function we(e) {
|
|
319
|
-
let
|
|
320
|
-
for (let
|
|
321
|
-
let f = e[
|
|
322
|
+
let n = [], t = false, o, r, s, i, l = -1;
|
|
323
|
+
for (let h = 0;h < e.length; h++) {
|
|
324
|
+
let f = e[h];
|
|
322
325
|
if (f === "--") {
|
|
323
|
-
l =
|
|
326
|
+
l = h + 1;
|
|
324
327
|
break;
|
|
325
328
|
}
|
|
326
329
|
if (f === "--help" || f === "-h")
|
|
327
330
|
return { help: true };
|
|
328
331
|
if (f === "--quiet" || f === "-q") {
|
|
329
|
-
|
|
332
|
+
o = true;
|
|
330
333
|
continue;
|
|
331
334
|
}
|
|
332
335
|
if (f === "--debug") {
|
|
@@ -342,51 +345,51 @@ var require_dist = __commonJS(function(exports, module) {
|
|
|
342
345
|
continue;
|
|
343
346
|
}
|
|
344
347
|
if (f === "-f" || f === "--file" || f.startsWith("-f=") || f.startsWith("--file=")) {
|
|
345
|
-
let c = f.indexOf("="), a = c === -1 ? f : f.slice(0, c), g = c === -1 ? e[++
|
|
348
|
+
let c = f.indexOf("="), a = c === -1 ? f : f.slice(0, c), g = c === -1 ? e[++h] : f.slice(c + 1);
|
|
346
349
|
if (!g || g === "--")
|
|
347
350
|
return { error: `${a} requires a path` };
|
|
348
|
-
let
|
|
349
|
-
if (
|
|
351
|
+
let p = g.split(",").map((y) => y.trim()).filter(Boolean);
|
|
352
|
+
if (p.length === 0)
|
|
350
353
|
return { error: `${a} requires a path` };
|
|
351
|
-
|
|
354
|
+
n.push(...p), t = true;
|
|
352
355
|
continue;
|
|
353
356
|
}
|
|
354
357
|
if (f.startsWith("-"))
|
|
355
358
|
return { error: `unknown option: ${f}` };
|
|
356
|
-
l =
|
|
359
|
+
l = h;
|
|
357
360
|
break;
|
|
358
361
|
}
|
|
359
362
|
let d = l === -1 ? [] : e.slice(l);
|
|
360
|
-
return { paths:
|
|
363
|
+
return { paths: n, pathSet: t, quiet: o, debug: r, override: s, fast: i, command: d };
|
|
361
364
|
}
|
|
362
365
|
function Ae(e) {
|
|
363
|
-
return e[0] === "~" ? Q.join(
|
|
366
|
+
return e[0] === "~" ? Q.join(me.homedir(), e.slice(1)) : e;
|
|
364
367
|
}
|
|
365
368
|
function Ee(e) {
|
|
366
|
-
let
|
|
367
|
-
return
|
|
369
|
+
let n = J(), t = { encoding: n.encoding || "utf8", quiet: n.quiet, debug: n.debug === true, override: n.override === true, fast: n.fast === true, paths: [".env"], defaultPath: true };
|
|
370
|
+
return n.path != null && (t.paths = [n.path], t.defaultPath = false), e.pathSet && (t.paths = e.paths, t.defaultPath = false), e.quiet != null && (t.quiet = e.quiet), e.debug != null && (t.debug = e.debug), e.override != null && (t.override = e.override), e.fast != null && (t.fast = e.fast), t;
|
|
368
371
|
}
|
|
369
372
|
function be(e) {
|
|
370
|
-
let
|
|
373
|
+
let n = {}, t = [], o = { override: e.override, debug: e.debug };
|
|
371
374
|
for (let s of e.paths) {
|
|
372
375
|
let i = Q.resolve(process.cwd(), Ae(s));
|
|
373
376
|
try {
|
|
374
|
-
let l = R.parse(
|
|
375
|
-
R.populate(
|
|
377
|
+
let l = R.parse(ge.readFileSync(i, { encoding: e.encoding }), { fast: e.fast });
|
|
378
|
+
R.populate(n, l, o), t.push(s);
|
|
376
379
|
} catch (l) {
|
|
377
380
|
if (e.debug && console.log(`\u2506 failed to load ${s} ${l.message}`), !(e.defaultPath && l.code === "ENOENT"))
|
|
378
381
|
throw l;
|
|
379
382
|
}
|
|
380
383
|
}
|
|
381
|
-
return { injected: R.populate(process.env,
|
|
384
|
+
return { injected: R.populate(process.env, n, o), loadedPaths: t };
|
|
382
385
|
}
|
|
383
|
-
function
|
|
384
|
-
let
|
|
385
|
-
if (
|
|
386
|
+
function K(e) {
|
|
387
|
+
let n = e[0];
|
|
388
|
+
if (n === "--help" || n === "-h") {
|
|
386
389
|
D();
|
|
387
390
|
return;
|
|
388
391
|
}
|
|
389
|
-
if (
|
|
392
|
+
if (n !== "run") {
|
|
390
393
|
D(), process.exitCode = 1;
|
|
391
394
|
return;
|
|
392
395
|
}
|
|
@@ -403,22 +406,22 @@ var require_dist = __commonJS(function(exports, module) {
|
|
|
403
406
|
D(), process.exitCode = 1;
|
|
404
407
|
return;
|
|
405
408
|
}
|
|
406
|
-
let
|
|
409
|
+
let o = Ee(t);
|
|
407
410
|
try {
|
|
408
|
-
let c = be(
|
|
409
|
-
if (!
|
|
410
|
-
let
|
|
411
|
-
c.loadedPaths.length > 0 && (
|
|
411
|
+
let c = be(o);
|
|
412
|
+
if (!(o.quiet == null ? J().quiet : o.quiet)) {
|
|
413
|
+
let g = `\u25C7 injected env (${Object.keys(c.injected).length})`;
|
|
414
|
+
c.loadedPaths.length > 0 && (g += ` from ${c.loadedPaths.join(", ")}`), console.error(g);
|
|
412
415
|
}
|
|
413
416
|
} catch (c) {
|
|
414
417
|
console.error(`dotenv: ${c.message}`), process.exitCode = 1;
|
|
415
418
|
return;
|
|
416
419
|
}
|
|
417
|
-
let r = !!process.stdin.isTTY, s = process.platform !== "win32" && !r, i =
|
|
418
|
-
function
|
|
420
|
+
let r = !!process.stdin.isTTY, s = process.platform !== "win32" && !r, i = Ce(t.command[0], t.command.slice(1), { stdio: "inherit", detached: s }), l = new Map, d = 0;
|
|
421
|
+
function h(c) {
|
|
419
422
|
if (!(!i.pid || i.exitCode !== null || i.signalCode !== null)) {
|
|
420
423
|
if (process.platform === "win32") {
|
|
421
|
-
|
|
424
|
+
ve.spawnSync("taskkill", ["/pid", String(i.pid), "/T", "/F"], { stdio: "ignore" });
|
|
422
425
|
return;
|
|
423
426
|
}
|
|
424
427
|
try {
|
|
@@ -439,11 +442,11 @@ var require_dist = __commonJS(function(exports, module) {
|
|
|
439
442
|
if (d++, r && process.platform !== "win32" && d === 1)
|
|
440
443
|
return;
|
|
441
444
|
if (d > 1) {
|
|
442
|
-
|
|
445
|
+
h(d === 2 ? "SIGTERM" : "SIGKILL");
|
|
443
446
|
return;
|
|
444
447
|
}
|
|
445
448
|
}
|
|
446
|
-
|
|
449
|
+
h(c);
|
|
447
450
|
};
|
|
448
451
|
l.set(c, a), process.on(c, a);
|
|
449
452
|
}
|
|
@@ -453,16 +456,16 @@ var require_dist = __commonJS(function(exports, module) {
|
|
|
453
456
|
f(), typeof c == "number" ? process.exit(c) : (setInterval(() => {}, 1000), process.kill(process.pid, a));
|
|
454
457
|
});
|
|
455
458
|
}
|
|
456
|
-
F.exports =
|
|
457
|
-
F === __require.main &&
|
|
459
|
+
F.exports = K;
|
|
460
|
+
F === __require.main && K(process.argv.slice(2));
|
|
458
461
|
});
|
|
459
|
-
var
|
|
460
|
-
var
|
|
461
|
-
module.exports =
|
|
462
|
-
module.exports.config =
|
|
463
|
-
module.exports.configDotenv =
|
|
464
|
-
module.exports.parse =
|
|
465
|
-
module.exports.populate =
|
|
462
|
+
var S = N();
|
|
463
|
+
var qe = X();
|
|
464
|
+
module.exports = S;
|
|
465
|
+
module.exports.config = S.config;
|
|
466
|
+
module.exports.configDotenv = S.configDotenv;
|
|
467
|
+
module.exports.parse = S.parse;
|
|
468
|
+
module.exports.populate = S.populate;
|
|
466
469
|
});
|
|
467
470
|
|
|
468
471
|
// src/load-env.ts
|
|
@@ -512,7 +515,7 @@ var createPkcePair = () => {
|
|
|
512
515
|
verifier
|
|
513
516
|
};
|
|
514
517
|
};
|
|
515
|
-
// ../../../node_modules/.bun/zod@4.6.
|
|
518
|
+
// ../../../node_modules/.bun/zod@4.6.7/node_modules/zod/v4/core/util.js
|
|
516
519
|
function getEnumValues(entries) {
|
|
517
520
|
const numericValues = Object.values(entries).filter((v) => typeof v === "number");
|
|
518
521
|
const values = Object.entries(entries).filter(([k, _]) => numericValues.indexOf(+k) === -1).map(([_, v]) => v);
|
|
@@ -858,6 +861,18 @@ function prefixIssues(path, issues) {
|
|
|
858
861
|
function unwrapMessage(message) {
|
|
859
862
|
return typeof message === "string" ? message : message?.message;
|
|
860
863
|
}
|
|
864
|
+
function sizeCaps(defChecks) {
|
|
865
|
+
const caps = [];
|
|
866
|
+
for (const ch of defChecks ?? []) {
|
|
867
|
+
const d = ch._zod.def;
|
|
868
|
+
if (!/_(length|size)$|_equals$/.test(d.check))
|
|
869
|
+
break;
|
|
870
|
+
const max = d.maximum ?? d.length ?? d.size;
|
|
871
|
+
if (max >= 0)
|
|
872
|
+
caps.push([max, ch]);
|
|
873
|
+
}
|
|
874
|
+
return caps;
|
|
875
|
+
}
|
|
861
876
|
function attachSchema(issues, start, inst) {
|
|
862
877
|
var _a;
|
|
863
878
|
for (let i = start;i < issues.length; i++) {
|
|
@@ -1055,7 +1070,7 @@ function constantCatch(value) {
|
|
|
1055
1070
|
return fn;
|
|
1056
1071
|
}
|
|
1057
1072
|
|
|
1058
|
-
// ../../../node_modules/.bun/zod@4.6.
|
|
1073
|
+
// ../../../node_modules/.bun/zod@4.6.7/node_modules/zod/v4/core/core.js
|
|
1059
1074
|
var _a;
|
|
1060
1075
|
var _zodDesc = { value: undefined, enumerable: false };
|
|
1061
1076
|
var _E = "captureStackTrace" in Error ? Error : null;
|
|
@@ -1173,7 +1188,7 @@ function config2(newConfig) {
|
|
|
1173
1188
|
Object.assign(globalConfig, newConfig);
|
|
1174
1189
|
return globalConfig;
|
|
1175
1190
|
}
|
|
1176
|
-
// ../../../node_modules/.bun/zod@4.6.
|
|
1191
|
+
// ../../../node_modules/.bun/zod@4.6.7/node_modules/zod/v4/core/errors.js
|
|
1177
1192
|
function _getMessage() {
|
|
1178
1193
|
const internals = this._zod;
|
|
1179
1194
|
internals.message ?? (internals.message = JSON.stringify(internals.def, jsonStringifyReplacer, 2));
|
|
@@ -1288,7 +1303,7 @@ function formatError(error, mapper = (issue) => issue.message) {
|
|
|
1288
1303
|
return fieldErrors;
|
|
1289
1304
|
}
|
|
1290
1305
|
|
|
1291
|
-
// ../../../node_modules/.bun/zod@4.6.
|
|
1306
|
+
// ../../../node_modules/.bun/zod@4.6.7/node_modules/zod/v4/core/parse.js
|
|
1292
1307
|
function finalizeParams(callee, params) {
|
|
1293
1308
|
return { callee: params?.callee ?? callee, Err: params?.Err };
|
|
1294
1309
|
}
|
|
@@ -1435,7 +1450,7 @@ var _safeEncodeAsync = (_Err) => async (schema, value, _ctx) => {
|
|
|
1435
1450
|
var _safeDecodeAsync = (_Err) => async (schema, value, _ctx) => {
|
|
1436
1451
|
return _safeParseAsync(_Err)(schema, value, _ctx);
|
|
1437
1452
|
};
|
|
1438
|
-
// ../../../node_modules/.bun/zod@4.6.
|
|
1453
|
+
// ../../../node_modules/.bun/zod@4.6.7/node_modules/zod/v4/core/regexes.js
|
|
1439
1454
|
var cuid = /^[cC][0-9a-z]{6,}$/;
|
|
1440
1455
|
var cuid2 = /^[0-9a-z]+$/;
|
|
1441
1456
|
var ulid = /^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$/;
|
|
@@ -1493,7 +1508,7 @@ var _null = /^null$/i;
|
|
|
1493
1508
|
var lowercase = /^[^A-Z]*$/;
|
|
1494
1509
|
var uppercase = /^[^a-z]*$/;
|
|
1495
1510
|
|
|
1496
|
-
// ../../../node_modules/.bun/zod@4.6.
|
|
1511
|
+
// ../../../node_modules/.bun/zod@4.6.7/node_modules/zod/v4/core/checks.js
|
|
1497
1512
|
var $ZodCheck = /* @__PURE__ */ $constructor("$ZodCheck", (inst, def) => {
|
|
1498
1513
|
var _a;
|
|
1499
1514
|
inst._zod ?? (inst._zod = {});
|
|
@@ -1809,7 +1824,7 @@ var $ZodCheckOverwrite = /* @__PURE__ */ $constructor("$ZodCheckOverwrite", (ins
|
|
|
1809
1824
|
};
|
|
1810
1825
|
});
|
|
1811
1826
|
|
|
1812
|
-
// ../../../node_modules/.bun/zod@4.6.
|
|
1827
|
+
// ../../../node_modules/.bun/zod@4.6.7/node_modules/zod/v4/core/doc.js
|
|
1813
1828
|
class Doc {
|
|
1814
1829
|
constructor(args = [], closed = {}) {
|
|
1815
1830
|
this.content = [];
|
|
@@ -1851,14 +1866,14 @@ ${content.join(`
|
|
|
1851
1866
|
}
|
|
1852
1867
|
}
|
|
1853
1868
|
|
|
1854
|
-
// ../../../node_modules/.bun/zod@4.6.
|
|
1869
|
+
// ../../../node_modules/.bun/zod@4.6.7/node_modules/zod/v4/core/versions.js
|
|
1855
1870
|
var version = {
|
|
1856
1871
|
major: 4,
|
|
1857
1872
|
minor: 6,
|
|
1858
|
-
patch:
|
|
1873
|
+
patch: 7
|
|
1859
1874
|
};
|
|
1860
1875
|
|
|
1861
|
-
// ../../../node_modules/.bun/zod@4.6.
|
|
1876
|
+
// ../../../node_modules/.bun/zod@4.6.7/node_modules/zod/v4/core/schemas.js
|
|
1862
1877
|
var $ZodType = /* @__PURE__ */ $constructor("$ZodType", (inst, def) => {
|
|
1863
1878
|
var _a;
|
|
1864
1879
|
inst ?? (inst = {});
|
|
@@ -2424,6 +2439,29 @@ var $ZodNever = /* @__PURE__ */ $constructor("$ZodNever", (inst, def) => {
|
|
|
2424
2439
|
return payload;
|
|
2425
2440
|
};
|
|
2426
2441
|
});
|
|
2442
|
+
function capSize(inst, size) {
|
|
2443
|
+
const caps = sizeCaps(inst._zod.def.checks);
|
|
2444
|
+
if (!caps.length)
|
|
2445
|
+
return;
|
|
2446
|
+
const cap = Math.min(...caps.map((c) => c[0]));
|
|
2447
|
+
const parse = inst._zod.parse;
|
|
2448
|
+
inst._zod.parse = (payload, ctx) => {
|
|
2449
|
+
const n = size(payload.value);
|
|
2450
|
+
if (n > cap && !ctx?.skipChecks && ctx?.direction !== "backward") {
|
|
2451
|
+
for (const [max, ch] of sizeCaps(inst._zod.def.checks)) {
|
|
2452
|
+
if (n > max && ch._zod.def.when(payload)) {
|
|
2453
|
+
const start = payload.issues.length;
|
|
2454
|
+
ch._zod.check(payload);
|
|
2455
|
+
payload.issues[start].continue = false;
|
|
2456
|
+
attachSchema(payload.issues, start, inst);
|
|
2457
|
+
return payload;
|
|
2458
|
+
}
|
|
2459
|
+
}
|
|
2460
|
+
}
|
|
2461
|
+
return parse(payload, ctx);
|
|
2462
|
+
};
|
|
2463
|
+
}
|
|
2464
|
+
var arraySize = (input) => Array.isArray(input) ? input.length : -1;
|
|
2427
2465
|
function handleArrayResult(result, final, index) {
|
|
2428
2466
|
if (result.issues.length) {
|
|
2429
2467
|
final.issues.push(...prefixIssues(index, result.issues));
|
|
@@ -2467,6 +2505,7 @@ var $ZodArray = /* @__PURE__ */ $constructor("$ZodArray", (inst, def) => {
|
|
|
2467
2505
|
}
|
|
2468
2506
|
return payload;
|
|
2469
2507
|
};
|
|
2508
|
+
capSize(inst, arraySize);
|
|
2470
2509
|
});
|
|
2471
2510
|
function handlePropertyResult(result, final, key, input, optin, optout) {
|
|
2472
2511
|
const isPresent = key in input;
|
|
@@ -3249,7 +3288,7 @@ function handleRefineResult(result, payload, input, inst) {
|
|
|
3249
3288
|
payload.issues.push(issue(_iss));
|
|
3250
3289
|
}
|
|
3251
3290
|
}
|
|
3252
|
-
// ../../../node_modules/.bun/zod@4.6.
|
|
3291
|
+
// ../../../node_modules/.bun/zod@4.6.7/node_modules/zod/v4/core/memoizer.js
|
|
3253
3292
|
class $ZodCyclicError extends Error {
|
|
3254
3293
|
constructor() {
|
|
3255
3294
|
super(`Cannot parse a reference cycle that closes through a transform`);
|
|
@@ -3518,7 +3557,7 @@ function isBackEdge(ctx, value) {
|
|
|
3518
3557
|
const backEdges = ctx[STATE]?.backEdges;
|
|
3519
3558
|
return backEdges !== undefined && isRef(value) && backEdges.has(value);
|
|
3520
3559
|
}
|
|
3521
|
-
// ../../../node_modules/.bun/zod@4.6.
|
|
3560
|
+
// ../../../node_modules/.bun/zod@4.6.7/node_modules/zod/v4/locales/en.js
|
|
3522
3561
|
var error = () => {
|
|
3523
3562
|
const Sizable = {
|
|
3524
3563
|
string: { unit: "characters", verb: "to have" },
|
|
@@ -3640,7 +3679,7 @@ function en_default() {
|
|
|
3640
3679
|
localeError: error()
|
|
3641
3680
|
};
|
|
3642
3681
|
}
|
|
3643
|
-
// ../../../node_modules/.bun/zod@4.6.
|
|
3682
|
+
// ../../../node_modules/.bun/zod@4.6.7/node_modules/zod/v4/core/registries.js
|
|
3644
3683
|
var _a2;
|
|
3645
3684
|
class $ZodRegistry {
|
|
3646
3685
|
constructor() {
|
|
@@ -3687,7 +3726,7 @@ function registry() {
|
|
|
3687
3726
|
}
|
|
3688
3727
|
(_a2 = globalThis).__zod_globalRegistry ?? (_a2.__zod_globalRegistry = registry());
|
|
3689
3728
|
var globalRegistry = globalThis.__zod_globalRegistry;
|
|
3690
|
-
// ../../../node_modules/.bun/zod@4.6.
|
|
3729
|
+
// ../../../node_modules/.bun/zod@4.6.7/node_modules/zod/v4/core/api.js
|
|
3691
3730
|
function snapshotChecks(def) {
|
|
3692
3731
|
if (def.checks)
|
|
3693
3732
|
def.checks = [...def.checks];
|
|
@@ -4141,7 +4180,7 @@ function _check(fn, params) {
|
|
|
4141
4180
|
ch._zod.check = fn;
|
|
4142
4181
|
return ch;
|
|
4143
4182
|
}
|
|
4144
|
-
// ../../../node_modules/.bun/zod@4.6.
|
|
4183
|
+
// ../../../node_modules/.bun/zod@4.6.7/node_modules/zod/v4/core/to-json-schema.js
|
|
4145
4184
|
function assignProps(target, ...sources) {
|
|
4146
4185
|
for (const source of sources) {
|
|
4147
4186
|
for (const key of Reflect.ownKeys(source)) {
|
|
@@ -4664,7 +4703,7 @@ var createStandardJSONSchemaMethod = (schema, io, processors = {}) => (params) =
|
|
|
4664
4703
|
extractDefs(ctx, schema);
|
|
4665
4704
|
return finalize(ctx, schema);
|
|
4666
4705
|
};
|
|
4667
|
-
// ../../../node_modules/.bun/zod@4.6.
|
|
4706
|
+
// ../../../node_modules/.bun/zod@4.6.7/node_modules/zod/v4/core/json-schema-processors.js
|
|
4668
4707
|
var narrowMin = (agg, key, value) => {
|
|
4669
4708
|
if (agg[key] === undefined || value > agg[key])
|
|
4670
4709
|
agg[key] = value;
|
|
@@ -5093,7 +5132,7 @@ var optionalProcessor = (schema, ctx, _json, params) => {
|
|
|
5093
5132
|
const seen = ctx.seen.get(schema);
|
|
5094
5133
|
seen.ref = def.innerType;
|
|
5095
5134
|
};
|
|
5096
|
-
// ../../../node_modules/.bun/zod@4.6.
|
|
5135
|
+
// ../../../node_modules/.bun/zod@4.6.7/node_modules/zod/v4/classic/errors.js
|
|
5097
5136
|
var _installedErrorProtos = /* @__PURE__ */ new WeakSet([Object.prototype, Error.prototype]);
|
|
5098
5137
|
function _lazyMethod(proto, key, make) {
|
|
5099
5138
|
Object.defineProperty(proto, key, {
|
|
@@ -5138,7 +5177,7 @@ var ZodRealError = /* @__PURE__ */ $constructor("ZodError", initializer2, undefi
|
|
|
5138
5177
|
Parent: Error
|
|
5139
5178
|
});
|
|
5140
5179
|
|
|
5141
|
-
// ../../../node_modules/.bun/zod@4.6.
|
|
5180
|
+
// ../../../node_modules/.bun/zod@4.6.7/node_modules/zod/v4/classic/parse.js
|
|
5142
5181
|
var parse2 = /* @__PURE__ */ _parse(ZodRealError);
|
|
5143
5182
|
var parseAsync = /* @__PURE__ */ _parseAsync(ZodRealError);
|
|
5144
5183
|
var safeParse = /* @__PURE__ */ _safeParse(ZodRealError);
|
|
@@ -5152,7 +5191,7 @@ var safeDecode = /* @__PURE__ */ _safeDecode(ZodRealError);
|
|
|
5152
5191
|
var safeEncodeAsync = /* @__PURE__ */ _safeEncodeAsync(ZodRealError);
|
|
5153
5192
|
var safeDecodeAsync = /* @__PURE__ */ _safeDecodeAsync(ZodRealError);
|
|
5154
5193
|
|
|
5155
|
-
// ../../../node_modules/.bun/zod@4.6.
|
|
5194
|
+
// ../../../node_modules/.bun/zod@4.6.7/node_modules/zod/v4/classic/schemas.js
|
|
5156
5195
|
function _ensureDefaultLocale() {
|
|
5157
5196
|
if (!globalConfig.localeError)
|
|
5158
5197
|
config2(en_default());
|
|
@@ -7537,6 +7576,10 @@ var typedOperations = {
|
|
|
7537
7576
|
kind: "mutation",
|
|
7538
7577
|
invoke: (client, input) => client.event.reviewSubmission.mutate(input)
|
|
7539
7578
|
},
|
|
7579
|
+
"event.reopenMission": {
|
|
7580
|
+
kind: "mutation",
|
|
7581
|
+
invoke: (client, input) => client.event.reopenMission.mutate(input)
|
|
7582
|
+
},
|
|
7540
7583
|
"event.regenerateResultsPortalShare": {
|
|
7541
7584
|
kind: "mutation",
|
|
7542
7585
|
invoke: (client, input) => client.event.regenerateResultsPortalShare.mutate(input)
|
|
@@ -7882,6 +7925,7 @@ var mutationTargetKeys = {
|
|
|
7882
7925
|
"team.assignTeamRoutingGroup": ["teamId"],
|
|
7883
7926
|
"event.startStation": ["stationId"],
|
|
7884
7927
|
"event.skipMission": ["missionId"],
|
|
7928
|
+
"event.reopenMission": ["teamId", "eventPlayerId", "missionId"],
|
|
7885
7929
|
"event.create": ["organizationId", "name"],
|
|
7886
7930
|
"event.createFromTemplate": ["organizationId", "templateId"],
|
|
7887
7931
|
"event.requestLoginEmailOtp": ["eventId", "email"],
|
|
@@ -8018,6 +8062,7 @@ var commands = [
|
|
|
8018
8062
|
mutation(["reward", "update"], "event.updateReward", "Update an event reward.", ["state-change"]),
|
|
8019
8063
|
mutation(["score", "adjust"], "event.createScoreAdjustment", "Create a manual score adjustment.", ["state-change"]),
|
|
8020
8064
|
mutation(["submission", "review"], "event.reviewSubmission", "Review a mission submission.", ["state-change"]),
|
|
8065
|
+
mutation(["mission", "reopen"], "event.reopenMission", "Reopen a submitted or skipped mission for one team (teamId) or player (eventPlayerId) on a fixed-order route. Earlier points count until they resubmit; then only the new submission counts. Finish times are kept.", ["state-change"]),
|
|
8021
8066
|
mutation(["results-share", "regenerate"], "event.regenerateResultsPortalShare", "Create a new results portal share token.", ["state-change"]),
|
|
8022
8067
|
mutation(["results-share", "revoke"], "event.revokeResultsPortalShare", "Revoke the current results portal share token.", ["state-change", "delete"]),
|
|
8023
8068
|
query(["event", "analytics-shell"], "event.getAdminAnalyticsShell", "Get the organizer analytics shell."),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@go-labs-sg/gosh",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "1.1.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.8",
|
|
23
23
|
"superjson": "^2.2.6"
|
|
24
24
|
},
|
|
25
25
|
"engines": {
|