@codemem/core 0.33.0-alpha.1 → 0.33.0-alpha.3
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/{coordinator-api-BBt-baSo.js → coordinator-api-CoP9mgpm.js} +234 -173
- package/dist/coordinator-api-CoP9mgpm.js.map +1 -0
- package/dist/coordinator-api.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1811 -1731
- package/dist/index.js.map +1 -1
- package/dist/internal/cloudflare-coordinator.js +1 -1
- package/dist/project-scope-settings.d.ts +4 -1
- package/dist/project-scope-settings.d.ts.map +1 -1
- package/dist/scope-membership-cache.d.ts +6 -1
- package/dist/scope-membership-cache.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/coordinator-api-BBt-baSo.js.map +0 -1
|
@@ -17,7 +17,7 @@ var t = (e, t, n) => (r, i) => {
|
|
|
17
17
|
return c && (r.finalized === !1 || l) && (r.res = c), r;
|
|
18
18
|
}
|
|
19
19
|
}, n = /* @__PURE__ */ Symbol(), r = async (e, t = /* @__PURE__ */ Object.create(null)) => {
|
|
20
|
-
let { all: n = !1, dot: r = !1 } = t, a = (e instanceof
|
|
20
|
+
let { all: n = !1, dot: r = !1 } = t, a = (e instanceof E ? e.raw.headers : e.headers).get("Content-Type");
|
|
21
21
|
return a?.startsWith("multipart/form-data") || a?.startsWith("application/x-www-form-urlencoded") ? i(e, {
|
|
22
22
|
all: n,
|
|
23
23
|
dot: r
|
|
@@ -123,7 +123,7 @@ var o = (e, t, n) => {
|
|
|
123
123
|
r += "/" + t, n.push(r);
|
|
124
124
|
} else r += "/" + e;
|
|
125
125
|
}), n.filter((e, t, n) => n.indexOf(e) === t);
|
|
126
|
-
}, b = (e) => /[%+]/.test(e) ? (e.indexOf("+") !== -1 && (e = e.replace(/\+/g, " ")), e.indexOf("%") === -1 ? e : m(e,
|
|
126
|
+
}, b = (e) => /[%+]/.test(e) ? (e.indexOf("+") !== -1 && (e = e.replace(/\+/g, " ")), e.indexOf("%") === -1 ? e : m(e, w)) : e, x = (e, t, n) => {
|
|
127
127
|
let r;
|
|
128
128
|
if (!n && t && !/[%+]/.test(t)) {
|
|
129
129
|
let n = e.indexOf("?", 8);
|
|
@@ -150,7 +150,7 @@ var o = (e, t, n) => {
|
|
|
150
150
|
o === -1 ? c = "" : (c = e.slice(o + 1, t === -1 ? void 0 : t), r && (c = b(c))), n ? (i[s] && Array.isArray(i[s]) || (i[s] = []), i[s].push(c)) : i[s] ??= c;
|
|
151
151
|
}
|
|
152
152
|
return t ? i[t] : i;
|
|
153
|
-
},
|
|
153
|
+
}, S = x, C = (e, t) => x(e, t, !0), w = decodeURIComponent, T = (e) => m(e, w), E = class {
|
|
154
154
|
raw;
|
|
155
155
|
#e;
|
|
156
156
|
#t;
|
|
@@ -165,13 +165,13 @@ var o = (e, t, n) => {
|
|
|
165
165
|
}
|
|
166
166
|
#n(e) {
|
|
167
167
|
let t = this.#t[0][this.routeIndex][1][e], n = this.#i(t);
|
|
168
|
-
return n && /\%/.test(n) ?
|
|
168
|
+
return n && /\%/.test(n) ? T(n) : n;
|
|
169
169
|
}
|
|
170
170
|
#r() {
|
|
171
171
|
let e = {}, t = Object.keys(this.#t[0][this.routeIndex][1]);
|
|
172
172
|
for (let n of t) {
|
|
173
173
|
let t = this.#i(this.#t[0][this.routeIndex][1][n]);
|
|
174
|
-
t !== void 0 && (e[n] = /\%/.test(t) ?
|
|
174
|
+
t !== void 0 && (e[n] = /\%/.test(t) ? T(t) : t);
|
|
175
175
|
}
|
|
176
176
|
return e;
|
|
177
177
|
}
|
|
@@ -179,10 +179,10 @@ var o = (e, t, n) => {
|
|
|
179
179
|
return this.#t[1] ? this.#t[1][e] : e;
|
|
180
180
|
}
|
|
181
181
|
query(e) {
|
|
182
|
-
return
|
|
182
|
+
return S(this.url, e);
|
|
183
183
|
}
|
|
184
184
|
queries(e) {
|
|
185
|
-
return
|
|
185
|
+
return C(this.url, e);
|
|
186
186
|
}
|
|
187
187
|
header(e) {
|
|
188
188
|
if (e) return this.raw.headers.get(e) ?? void 0;
|
|
@@ -239,14 +239,14 @@ var o = (e, t, n) => {
|
|
|
239
239
|
get routePath() {
|
|
240
240
|
return this.#t[0].map(([[, e]]) => e)[this.routeIndex].path;
|
|
241
241
|
}
|
|
242
|
-
},
|
|
242
|
+
}, ee = {
|
|
243
243
|
Stringify: 1,
|
|
244
244
|
BeforeStream: 2,
|
|
245
245
|
Stream: 3
|
|
246
|
-
},
|
|
246
|
+
}, te = (e, t) => {
|
|
247
247
|
let n = new String(e);
|
|
248
248
|
return n.isEscaped = !0, n.callbacks = t, n;
|
|
249
|
-
},
|
|
249
|
+
}, D = async (e, t, n, r, i) => {
|
|
250
250
|
typeof e == "object" && !(e instanceof String) && (e instanceof Promise || (e = e.toString()), e instanceof Promise && (e = await e));
|
|
251
251
|
let a = e.callbacks;
|
|
252
252
|
if (!a?.length) return Promise.resolve(e);
|
|
@@ -255,12 +255,12 @@ var o = (e, t, n) => {
|
|
|
255
255
|
phase: t,
|
|
256
256
|
buffer: i,
|
|
257
257
|
context: r
|
|
258
|
-
}))).then((e) => Promise.all(e.filter(Boolean).map((e) =>
|
|
259
|
-
return n ?
|
|
260
|
-
},
|
|
258
|
+
}))).then((e) => Promise.all(e.filter(Boolean).map((e) => D(e, t, !1, r, i))).then(() => i[0]));
|
|
259
|
+
return n ? te(await o, a) : o;
|
|
260
|
+
}, ne = "text/plain; charset=UTF-8", O = (e, t) => ({
|
|
261
261
|
"Content-Type": e,
|
|
262
262
|
...t
|
|
263
|
-
}),
|
|
263
|
+
}), k = (e, t) => new Response(e, t), re = class {
|
|
264
264
|
#e;
|
|
265
265
|
#t;
|
|
266
266
|
env = {};
|
|
@@ -280,7 +280,7 @@ var o = (e, t, n) => {
|
|
|
280
280
|
this.#e = e, t && (this.#i = t.executionCtx, this.env = t.env, this.#c = t.notFoundHandler, this.#d = t.path, this.#u = t.matchResult);
|
|
281
281
|
}
|
|
282
282
|
get req() {
|
|
283
|
-
return this.#t ??= new
|
|
283
|
+
return this.#t ??= new E(this.#e, this.#d, this.#u), this.#t;
|
|
284
284
|
}
|
|
285
285
|
get event() {
|
|
286
286
|
if (this.#i && "respondWith" in this.#i) return this.#i;
|
|
@@ -291,11 +291,11 @@ var o = (e, t, n) => {
|
|
|
291
291
|
throw Error("This context has no ExecutionContext");
|
|
292
292
|
}
|
|
293
293
|
get res() {
|
|
294
|
-
return this.#a ||=
|
|
294
|
+
return this.#a ||= k(null, { headers: this.#l ??= new Headers() });
|
|
295
295
|
}
|
|
296
296
|
set res(e) {
|
|
297
297
|
if (this.#a && e) {
|
|
298
|
-
e =
|
|
298
|
+
e = k(e.body, e);
|
|
299
299
|
for (let [t, n] of this.#a.headers.entries()) if (t !== "content-type") if (t === "set-cookie") {
|
|
300
300
|
let t = this.#a.headers.getSetCookie();
|
|
301
301
|
e.headers.delete("set-cookie");
|
|
@@ -311,7 +311,7 @@ var o = (e, t, n) => {
|
|
|
311
311
|
this.#s = e;
|
|
312
312
|
};
|
|
313
313
|
header = (e, t, n) => {
|
|
314
|
-
this.finalized && (this.#a =
|
|
314
|
+
this.finalized && (this.#a = k(this.#a.body, this.#a));
|
|
315
315
|
let r = this.#a ? this.#a.headers : this.#l ??= new Headers();
|
|
316
316
|
t === void 0 ? r.delete(e) : n?.append ? r.append(e, t) : r.set(e, t);
|
|
317
317
|
};
|
|
@@ -336,38 +336,38 @@ var o = (e, t, n) => {
|
|
|
336
336
|
r.delete(e);
|
|
337
337
|
for (let n of t) r.append(e, n);
|
|
338
338
|
}
|
|
339
|
-
return
|
|
339
|
+
return k(e, {
|
|
340
340
|
status: typeof t == "number" ? t : t?.status ?? this.#r,
|
|
341
341
|
headers: r
|
|
342
342
|
});
|
|
343
343
|
}
|
|
344
344
|
newResponse = (...e) => this.#f(...e);
|
|
345
345
|
body = (e, t, n) => this.#f(e, t, n);
|
|
346
|
-
text = (e, t, n) => !this.#l && !this.#r && !t && !n && !this.finalized ? new Response(e) : this.#f(e, t,
|
|
347
|
-
json = (e, t, n) => this.#f(JSON.stringify(e), t,
|
|
346
|
+
text = (e, t, n) => !this.#l && !this.#r && !t && !n && !this.finalized ? new Response(e) : this.#f(e, t, O(ne, n));
|
|
347
|
+
json = (e, t, n) => this.#f(JSON.stringify(e), t, O("application/json", n));
|
|
348
348
|
html = (e, t, n) => {
|
|
349
|
-
let r = (e) => this.#f(e, t,
|
|
350
|
-
return typeof e == "object" ?
|
|
349
|
+
let r = (e) => this.#f(e, t, O("text/html; charset=UTF-8", n));
|
|
350
|
+
return typeof e == "object" ? D(e, ee.Stringify, !1, {}).then(r) : r(e);
|
|
351
351
|
};
|
|
352
352
|
redirect = (e, t) => {
|
|
353
353
|
let n = String(e);
|
|
354
354
|
return this.header("Location", /[^\x00-\xFF]/.test(n) ? encodeURI(n) : n), this.newResponse(null, t ?? 302);
|
|
355
355
|
};
|
|
356
|
-
notFound = () => (this.#c ??= () =>
|
|
357
|
-
},
|
|
356
|
+
notFound = () => (this.#c ??= () => k(), this.#c(this));
|
|
357
|
+
}, ie = [
|
|
358
358
|
"get",
|
|
359
359
|
"post",
|
|
360
360
|
"put",
|
|
361
361
|
"delete",
|
|
362
362
|
"options",
|
|
363
363
|
"patch"
|
|
364
|
-
],
|
|
364
|
+
], A = "Can not add a route since the matcher is already built.", j = class extends Error {}, ae = "__COMPOSED_HANDLER", oe = (e) => e.text("404 Not Found", 404), M = (e, t) => {
|
|
365
365
|
if ("getResponse" in e) {
|
|
366
366
|
let n = e.getResponse();
|
|
367
367
|
return t.newResponse(n.body, n);
|
|
368
368
|
}
|
|
369
369
|
return console.error(e), t.text("Internal Server Error", 500);
|
|
370
|
-
},
|
|
370
|
+
}, se = class e {
|
|
371
371
|
get;
|
|
372
372
|
post;
|
|
373
373
|
put;
|
|
@@ -383,7 +383,7 @@ var o = (e, t, n) => {
|
|
|
383
383
|
#e = "/";
|
|
384
384
|
routes = [];
|
|
385
385
|
constructor(e = {}) {
|
|
386
|
-
[...
|
|
386
|
+
[...ie, "all"].forEach((e) => {
|
|
387
387
|
this[e] = (t, ...n) => (typeof t == "string" ? this.#e = t : this.#r(e, this.#e, t), n.forEach((t) => {
|
|
388
388
|
this.#r(e, this.#e, t);
|
|
389
389
|
}), this);
|
|
@@ -408,13 +408,13 @@ var o = (e, t, n) => {
|
|
|
408
408
|
});
|
|
409
409
|
return t.errorHandler = this.errorHandler, t.#n = this.#n, t.routes = this.routes, t;
|
|
410
410
|
}
|
|
411
|
-
#n =
|
|
412
|
-
errorHandler =
|
|
411
|
+
#n = oe;
|
|
412
|
+
errorHandler = M;
|
|
413
413
|
route(e, n) {
|
|
414
414
|
let r = this.basePath(e);
|
|
415
415
|
return n.routes.map((e) => {
|
|
416
416
|
let i;
|
|
417
|
-
n.errorHandler ===
|
|
417
|
+
n.errorHandler === M ? i = e.handler : (i = async (r, i) => (await t([], n.errorHandler)(r, () => e.handler(r, i))).res, i[ae] = e.handler), r.#r(e.method, e.path, i, e.basePath);
|
|
418
418
|
}), this;
|
|
419
419
|
}
|
|
420
420
|
basePath(e) {
|
|
@@ -464,7 +464,7 @@ var o = (e, t, n) => {
|
|
|
464
464
|
}
|
|
465
465
|
#a(e, n, r, i) {
|
|
466
466
|
if (i === "HEAD") return (async () => new Response(null, await this.#a(e, n, r, "GET")))();
|
|
467
|
-
let a = this.getPath(e, { env: r }), o = this.router.match(i, a), s = new
|
|
467
|
+
let a = this.getPath(e, { env: r }), o = this.router.match(i, a), s = new re(e, {
|
|
468
468
|
path: a,
|
|
469
469
|
matchResult: o,
|
|
470
470
|
env: r,
|
|
@@ -500,13 +500,13 @@ var o = (e, t, n) => {
|
|
|
500
500
|
e.respondWith(this.#a(e.request, e, void 0, e.request.method));
|
|
501
501
|
});
|
|
502
502
|
};
|
|
503
|
-
},
|
|
504
|
-
function
|
|
503
|
+
}, N = [];
|
|
504
|
+
function ce(e, t) {
|
|
505
505
|
let n = this.buildAllMatchers(), r = ((e, t) => {
|
|
506
506
|
let r = n[e] || n.ALL, i = r[2][t];
|
|
507
507
|
if (i) return i;
|
|
508
508
|
let a = t.match(r[0]);
|
|
509
|
-
if (!a) return [[],
|
|
509
|
+
if (!a) return [[], N];
|
|
510
510
|
let o = a.indexOf("", 1);
|
|
511
511
|
return [r[1][o], a];
|
|
512
512
|
});
|
|
@@ -514,17 +514,17 @@ function ue(e, t) {
|
|
|
514
514
|
}
|
|
515
515
|
//#endregion
|
|
516
516
|
//#region ../../node_modules/.pnpm/hono@4.12.21/node_modules/hono/dist/router/reg-exp-router/node.js
|
|
517
|
-
var
|
|
518
|
-
function
|
|
519
|
-
return e.length === 1 ? t.length === 1 ? e < t ? -1 : 1 : -1 : t.length === 1 || e ===
|
|
517
|
+
var P = "[^/]+", F = ".*", I = "(?:|/.*)", L = /* @__PURE__ */ Symbol(), le = /* @__PURE__ */ new Set(".\\+*[^]$()");
|
|
518
|
+
function ue(e, t) {
|
|
519
|
+
return e.length === 1 ? t.length === 1 ? e < t ? -1 : 1 : -1 : t.length === 1 || e === F || e === I ? 1 : t === F || t === I ? -1 : e === P ? 1 : t === P ? -1 : e.length === t.length ? e < t ? -1 : 1 : t.length - e.length;
|
|
520
520
|
}
|
|
521
|
-
var
|
|
521
|
+
var de = class e {
|
|
522
522
|
#e;
|
|
523
523
|
#t;
|
|
524
524
|
#n = /* @__PURE__ */ Object.create(null);
|
|
525
525
|
insert(t, n, r, i, a) {
|
|
526
526
|
if (t.length === 0) {
|
|
527
|
-
if (this.#e !== void 0) throw
|
|
527
|
+
if (this.#e !== void 0) throw L;
|
|
528
528
|
if (a) return;
|
|
529
529
|
this.#e = n;
|
|
530
530
|
return;
|
|
@@ -532,42 +532,42 @@ var pe = class e {
|
|
|
532
532
|
let [o, ...s] = t, c = o === "*" ? s.length === 0 ? [
|
|
533
533
|
"",
|
|
534
534
|
"",
|
|
535
|
-
|
|
535
|
+
F
|
|
536
536
|
] : [
|
|
537
537
|
"",
|
|
538
538
|
"",
|
|
539
|
-
|
|
539
|
+
P
|
|
540
540
|
] : o === "/*" ? [
|
|
541
541
|
"",
|
|
542
542
|
"",
|
|
543
|
-
|
|
543
|
+
I
|
|
544
544
|
] : o.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/), l;
|
|
545
545
|
if (c) {
|
|
546
|
-
let t = c[1], n = c[2] ||
|
|
547
|
-
if (t && c[2] && (n === ".*" || (n = n.replace(/^\((?!\?:)(?=[^)]+\)$)/, "(?:"), /\((?!\?:)/.test(n)))) throw
|
|
546
|
+
let t = c[1], n = c[2] || P;
|
|
547
|
+
if (t && c[2] && (n === ".*" || (n = n.replace(/^\((?!\?:)(?=[^)]+\)$)/, "(?:"), /\((?!\?:)/.test(n)))) throw L;
|
|
548
548
|
if (l = this.#n[n], !l) {
|
|
549
|
-
if (Object.keys(this.#n).some((e) => e !==
|
|
549
|
+
if (Object.keys(this.#n).some((e) => e !== F && e !== I)) throw L;
|
|
550
550
|
if (a) return;
|
|
551
551
|
l = this.#n[n] = new e(), t !== "" && (l.#t = i.varIndex++);
|
|
552
552
|
}
|
|
553
553
|
!a && t !== "" && r.push([t, l.#t]);
|
|
554
554
|
} else if (l = this.#n[o], !l) {
|
|
555
|
-
if (Object.keys(this.#n).some((e) => e.length > 1 && e !==
|
|
555
|
+
if (Object.keys(this.#n).some((e) => e.length > 1 && e !== F && e !== I)) throw L;
|
|
556
556
|
if (a) return;
|
|
557
557
|
l = this.#n[o] = new e();
|
|
558
558
|
}
|
|
559
559
|
l.insert(s, n, r, i, a);
|
|
560
560
|
}
|
|
561
561
|
buildRegExpStr() {
|
|
562
|
-
let e = Object.keys(this.#n).sort(
|
|
562
|
+
let e = Object.keys(this.#n).sort(ue).map((e) => {
|
|
563
563
|
let t = this.#n[e];
|
|
564
|
-
return (typeof t.#t == "number" ? `(${e})@${t.#t}` :
|
|
564
|
+
return (typeof t.#t == "number" ? `(${e})@${t.#t}` : le.has(e) ? `\\${e}` : e) + t.buildRegExpStr();
|
|
565
565
|
});
|
|
566
566
|
return typeof this.#e == "number" && e.unshift(`#${this.#e}`), e.length === 0 ? "" : e.length === 1 ? e[0] : "(?:" + e.join("|") + ")";
|
|
567
567
|
}
|
|
568
|
-
},
|
|
568
|
+
}, fe = class {
|
|
569
569
|
#e = { varIndex: 0 };
|
|
570
|
-
#t = new
|
|
570
|
+
#t = new de();
|
|
571
571
|
insert(e, t, n) {
|
|
572
572
|
let r = [], i = [];
|
|
573
573
|
for (let t = 0;;) {
|
|
@@ -601,29 +601,29 @@ var pe = class e {
|
|
|
601
601
|
r
|
|
602
602
|
];
|
|
603
603
|
}
|
|
604
|
-
},
|
|
604
|
+
}, pe = [
|
|
605
605
|
/^$/,
|
|
606
606
|
[],
|
|
607
607
|
/* @__PURE__ */ Object.create(null)
|
|
608
|
-
],
|
|
609
|
-
function
|
|
610
|
-
return
|
|
608
|
+
], R = /* @__PURE__ */ Object.create(null);
|
|
609
|
+
function z(e) {
|
|
610
|
+
return R[e] ??= RegExp(e === "*" ? "" : `^${e.replace(/\/\*$|([.\\+*[^\]$()])/g, (e, t) => t ? `\\${t}` : "(?:|/.*)")}$`);
|
|
611
611
|
}
|
|
612
|
-
function
|
|
613
|
-
|
|
612
|
+
function me() {
|
|
613
|
+
R = /* @__PURE__ */ Object.create(null);
|
|
614
614
|
}
|
|
615
|
-
function
|
|
616
|
-
let t = new
|
|
617
|
-
if (e.length === 0) return
|
|
615
|
+
function he(e) {
|
|
616
|
+
let t = new fe(), n = [];
|
|
617
|
+
if (e.length === 0) return pe;
|
|
618
618
|
let r = e.map((e) => [!/\*|\/:/.test(e[0]), ...e]).sort(([e, t], [n, r]) => e ? 1 : n ? -1 : t.length - r.length), i = /* @__PURE__ */ Object.create(null);
|
|
619
619
|
for (let e = 0, a = -1, o = r.length; e < o; e++) {
|
|
620
620
|
let [o, s, c] = r[e];
|
|
621
|
-
o ? i[s] = [c.map(([e]) => [e, /* @__PURE__ */ Object.create(null)]),
|
|
621
|
+
o ? i[s] = [c.map(([e]) => [e, /* @__PURE__ */ Object.create(null)]), N] : a++;
|
|
622
622
|
let l;
|
|
623
623
|
try {
|
|
624
624
|
l = t.insert(s, a, o);
|
|
625
625
|
} catch (e) {
|
|
626
|
-
throw e ===
|
|
626
|
+
throw e === L ? new j(s) : e;
|
|
627
627
|
}
|
|
628
628
|
o || (n[a] = c.map(([e, t]) => {
|
|
629
629
|
let n = /* @__PURE__ */ Object.create(null);
|
|
@@ -649,12 +649,12 @@ function _e(e) {
|
|
|
649
649
|
i
|
|
650
650
|
];
|
|
651
651
|
}
|
|
652
|
-
function
|
|
652
|
+
function B(e, t) {
|
|
653
653
|
if (e) {
|
|
654
|
-
for (let n of Object.keys(e).sort((e, t) => t.length - e.length)) if (
|
|
654
|
+
for (let n of Object.keys(e).sort((e, t) => t.length - e.length)) if (z(n).test(t)) return [...e[n]];
|
|
655
655
|
}
|
|
656
656
|
}
|
|
657
|
-
var
|
|
657
|
+
var ge = class {
|
|
658
658
|
name = "RegExpRouter";
|
|
659
659
|
#e;
|
|
660
660
|
#t;
|
|
@@ -663,7 +663,7 @@ var ve = class {
|
|
|
663
663
|
}
|
|
664
664
|
add(e, t, n) {
|
|
665
665
|
let r = this.#e, i = this.#t;
|
|
666
|
-
if (!r || !i) throw Error(
|
|
666
|
+
if (!r || !i) throw Error(A);
|
|
667
667
|
r[e] || [r, i].forEach((t) => {
|
|
668
668
|
t[e] = /* @__PURE__ */ Object.create(null), Object.keys(t.ALL).forEach((n) => {
|
|
669
669
|
t[e][n] = [...t.ALL[n]];
|
|
@@ -671,10 +671,10 @@ var ve = class {
|
|
|
671
671
|
}), t === "/*" && (t = "*");
|
|
672
672
|
let a = (t.match(/\/:/g) || []).length;
|
|
673
673
|
if (/\*$/.test(t)) {
|
|
674
|
-
let o =
|
|
674
|
+
let o = z(t);
|
|
675
675
|
e === "ALL" ? Object.keys(r).forEach((e) => {
|
|
676
|
-
r[e][t] ||=
|
|
677
|
-
}) : r[e][t] ||=
|
|
676
|
+
r[e][t] ||= B(r[e], t) || B(r.ALL, t) || [];
|
|
677
|
+
}) : r[e][t] ||= B(r[e], t) || B(r.ALL, t) || [], Object.keys(r).forEach((t) => {
|
|
678
678
|
(e === "ALL" || e === t) && Object.keys(r[t]).forEach((e) => {
|
|
679
679
|
o.test(e) && r[t][e].push([n, a]);
|
|
680
680
|
});
|
|
@@ -687,25 +687,25 @@ var ve = class {
|
|
|
687
687
|
for (let t = 0, s = o.length; t < s; t++) {
|
|
688
688
|
let c = o[t];
|
|
689
689
|
Object.keys(i).forEach((o) => {
|
|
690
|
-
(e === "ALL" || e === o) && (i[o][c] ||= [...
|
|
690
|
+
(e === "ALL" || e === o) && (i[o][c] ||= [...B(r[o], c) || B(r.ALL, c) || []], i[o][c].push([n, a - s + t + 1]));
|
|
691
691
|
});
|
|
692
692
|
}
|
|
693
693
|
}
|
|
694
|
-
match =
|
|
694
|
+
match = ce;
|
|
695
695
|
buildAllMatchers() {
|
|
696
696
|
let e = /* @__PURE__ */ Object.create(null);
|
|
697
697
|
return Object.keys(this.#t).concat(Object.keys(this.#e)).forEach((t) => {
|
|
698
698
|
e[t] ||= this.#n(t);
|
|
699
|
-
}), this.#e = this.#t = void 0,
|
|
699
|
+
}), this.#e = this.#t = void 0, me(), e;
|
|
700
700
|
}
|
|
701
701
|
#n(e) {
|
|
702
702
|
let t = [], n = e === "ALL";
|
|
703
703
|
return [this.#e, this.#t].forEach((r) => {
|
|
704
704
|
let i = r[e] ? Object.keys(r[e]).map((t) => [t, r[e][t]]) : [];
|
|
705
705
|
i.length === 0 ? e !== "ALL" && t.push(...Object.keys(r.ALL).map((e) => [e, r.ALL[e]])) : (n ||= !0, t.push(...i));
|
|
706
|
-
}), n ?
|
|
706
|
+
}), n ? he(t) : null;
|
|
707
707
|
}
|
|
708
|
-
},
|
|
708
|
+
}, _e = class {
|
|
709
709
|
name = "SmartRouter";
|
|
710
710
|
#e = [];
|
|
711
711
|
#t = [];
|
|
@@ -713,7 +713,7 @@ var ve = class {
|
|
|
713
713
|
this.#e = e.routers;
|
|
714
714
|
}
|
|
715
715
|
add(e, t, n) {
|
|
716
|
-
if (!this.#t) throw Error(
|
|
716
|
+
if (!this.#t) throw Error(A);
|
|
717
717
|
this.#t.push([
|
|
718
718
|
e,
|
|
719
719
|
t,
|
|
@@ -729,7 +729,7 @@ var ve = class {
|
|
|
729
729
|
for (let e = 0, t = r.length; e < t; e++) i.add(...r[e]);
|
|
730
730
|
o = i.match(e, t);
|
|
731
731
|
} catch (e) {
|
|
732
|
-
if (e instanceof
|
|
732
|
+
if (e instanceof j) continue;
|
|
733
733
|
throw e;
|
|
734
734
|
}
|
|
735
735
|
this.match = i.match.bind(i), this.#e = [i], this.#t = void 0;
|
|
@@ -742,15 +742,15 @@ var ve = class {
|
|
|
742
742
|
if (this.#t || this.#e.length !== 1) throw Error("No active router has been determined yet.");
|
|
743
743
|
return this.#e[0];
|
|
744
744
|
}
|
|
745
|
-
},
|
|
745
|
+
}, V = /* @__PURE__ */ Object.create(null), ve = (e) => {
|
|
746
746
|
for (let t in e) return !0;
|
|
747
747
|
return !1;
|
|
748
|
-
},
|
|
748
|
+
}, ye = class e {
|
|
749
749
|
#e;
|
|
750
750
|
#t;
|
|
751
751
|
#n;
|
|
752
752
|
#r = 0;
|
|
753
|
-
#i =
|
|
753
|
+
#i = V;
|
|
754
754
|
constructor(e, t, n) {
|
|
755
755
|
if (this.#t = n || /* @__PURE__ */ Object.create(null), this.#e = [], e && t) {
|
|
756
756
|
let n = /* @__PURE__ */ Object.create(null);
|
|
@@ -782,7 +782,7 @@ var ve = class {
|
|
|
782
782
|
#a(e, t, n, r, i) {
|
|
783
783
|
for (let a = 0, o = t.#e.length; a < o; a++) {
|
|
784
784
|
let o = t.#e[a], s = o[n] || o.ALL, c = {};
|
|
785
|
-
if (s !== void 0 && (s.params = /* @__PURE__ */ Object.create(null), e.push(s), r !==
|
|
785
|
+
if (s !== void 0 && (s.params = /* @__PURE__ */ Object.create(null), e.push(s), r !== V || i && i !== V)) for (let e = 0, t = s.possibleKeys.length; e < t; e++) {
|
|
786
786
|
let t = s.possibleKeys[e], n = c[s.score];
|
|
787
787
|
s.params[t] = i?.[t] && !n ? i[t] : r[t] ?? i?.[t], c[s.score] = !0;
|
|
788
788
|
}
|
|
@@ -790,7 +790,7 @@ var ve = class {
|
|
|
790
790
|
}
|
|
791
791
|
search(e, t) {
|
|
792
792
|
let n = [];
|
|
793
|
-
this.#i =
|
|
793
|
+
this.#i = V;
|
|
794
794
|
let r = [this], i = c(t), a = [], o = i.length, s = null;
|
|
795
795
|
for (let c = 0; c < o; c++) {
|
|
796
796
|
let l = i[c], u = c === o - 1, d = [];
|
|
@@ -798,7 +798,7 @@ var ve = class {
|
|
|
798
798
|
let p = r[f], m = p.#t[l];
|
|
799
799
|
m && (m.#i = p.#i, u ? (m.#t["*"] && this.#a(n, m.#t["*"], e, p.#i), this.#a(n, m, e, p.#i)) : d.push(m));
|
|
800
800
|
for (let r = 0, f = p.#n.length; r < f; r++) {
|
|
801
|
-
let f = p.#n[r], m = p.#i ===
|
|
801
|
+
let f = p.#n[r], m = p.#i === V ? {} : { ...p.#i };
|
|
802
802
|
if (f === "*") {
|
|
803
803
|
let t = p.#t["*"];
|
|
804
804
|
t && (this.#a(n, t, e, p.#i), t.#i = m, d.push(t));
|
|
@@ -815,7 +815,7 @@ var ve = class {
|
|
|
815
815
|
}
|
|
816
816
|
let r = t.substring(s[c]), l = _.exec(r);
|
|
817
817
|
if (l) {
|
|
818
|
-
if (m[g] = l[0], this.#a(n, v, e, p.#i, m),
|
|
818
|
+
if (m[g] = l[0], this.#a(n, v, e, p.#i, m), ve(v.#t)) {
|
|
819
819
|
v.#i = m;
|
|
820
820
|
let e = l[0].match(/\//)?.length ?? 0;
|
|
821
821
|
(a[e] ||= []).push(v);
|
|
@@ -831,11 +831,11 @@ var ve = class {
|
|
|
831
831
|
}
|
|
832
832
|
return n.length > 1 && n.sort((e, t) => e.score - t.score), [n.map(({ handler: e, params: t }) => [e, t])];
|
|
833
833
|
}
|
|
834
|
-
},
|
|
834
|
+
}, be = class {
|
|
835
835
|
name = "TrieRouter";
|
|
836
836
|
#e;
|
|
837
837
|
constructor() {
|
|
838
|
-
this.#e = new
|
|
838
|
+
this.#e = new ye();
|
|
839
839
|
}
|
|
840
840
|
add(e, t, n) {
|
|
841
841
|
let r = y(t);
|
|
@@ -848,43 +848,43 @@ var ve = class {
|
|
|
848
848
|
match(e, t) {
|
|
849
849
|
return this.#e.search(e, t);
|
|
850
850
|
}
|
|
851
|
-
},
|
|
851
|
+
}, xe = class extends se {
|
|
852
852
|
constructor(e = {}) {
|
|
853
|
-
super(e), this.router = e.router ?? new
|
|
853
|
+
super(e), this.router = e.router ?? new _e({ routers: [new ge(), new be()] });
|
|
854
854
|
}
|
|
855
855
|
};
|
|
856
856
|
//#endregion
|
|
857
857
|
//#region src/coordinator-invites.ts
|
|
858
|
-
function
|
|
858
|
+
function Se(e) {
|
|
859
859
|
let t = "";
|
|
860
860
|
for (let n of e) t += String.fromCharCode(n);
|
|
861
861
|
return btoa(t);
|
|
862
862
|
}
|
|
863
|
-
function
|
|
863
|
+
function Ce(e) {
|
|
864
864
|
let t = atob(e), n = new Uint8Array(t.length);
|
|
865
865
|
for (let e = 0; e < t.length; e += 1) n[e] = t.charCodeAt(e);
|
|
866
866
|
return n;
|
|
867
867
|
}
|
|
868
|
-
function
|
|
868
|
+
function we(e) {
|
|
869
869
|
return e.replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
|
|
870
870
|
}
|
|
871
|
-
function
|
|
871
|
+
function Te(e) {
|
|
872
872
|
let t = e.replace(/-/g, "+").replace(/_/g, "/");
|
|
873
873
|
return t + "=".repeat((4 - t.length % 4) % 4);
|
|
874
874
|
}
|
|
875
|
-
function
|
|
875
|
+
function H(e) {
|
|
876
876
|
let t = JSON.stringify(e);
|
|
877
|
-
return
|
|
877
|
+
return we(Se(new TextEncoder().encode(t)));
|
|
878
878
|
}
|
|
879
|
-
function
|
|
880
|
-
let t = new TextDecoder().decode(Te(
|
|
879
|
+
function Ee(e) {
|
|
880
|
+
let t = new TextDecoder().decode(Ce(Te(e))), n = JSON.parse(t);
|
|
881
881
|
if (typeof n != "object" || !n) throw Error("invalid invite payload");
|
|
882
882
|
return n;
|
|
883
883
|
}
|
|
884
|
-
function
|
|
884
|
+
function U(e) {
|
|
885
885
|
return `codemem://join?invite=${encodeURIComponent(e)}`;
|
|
886
886
|
}
|
|
887
|
-
function
|
|
887
|
+
function De(e) {
|
|
888
888
|
let t = e.trim();
|
|
889
889
|
if (t.startsWith("codemem://")) {
|
|
890
890
|
let e = new URL(t).searchParams.get("invite") ?? "";
|
|
@@ -895,20 +895,20 @@ function ke(e) {
|
|
|
895
895
|
}
|
|
896
896
|
//#endregion
|
|
897
897
|
//#region ../../node_modules/.pnpm/limiter@3.0.0/node_modules/limiter/dist/esm/clock.js
|
|
898
|
-
function
|
|
898
|
+
function Oe(e) {
|
|
899
899
|
let t = performance.now() * .001, n = Math.floor(t), r = Math.floor(t % 1 * 1e9);
|
|
900
900
|
return e != null && (n -= e[0], r -= e[1], r < 0 && (n--, r += 1e9)), [n, r];
|
|
901
901
|
}
|
|
902
|
-
function
|
|
903
|
-
let [e, t] =
|
|
902
|
+
function W() {
|
|
903
|
+
let [e, t] = Oe();
|
|
904
904
|
return e * 1e3 + Math.floor(t / 1e6);
|
|
905
905
|
}
|
|
906
|
-
function
|
|
906
|
+
function G(e) {
|
|
907
907
|
return new Promise((t) => setTimeout(t, e));
|
|
908
908
|
}
|
|
909
909
|
//#endregion
|
|
910
910
|
//#region ../../node_modules/.pnpm/limiter@3.0.0/node_modules/limiter/dist/esm/TokenBucket.js
|
|
911
|
-
var
|
|
911
|
+
var ke = class {
|
|
912
912
|
bucketSize;
|
|
913
913
|
tokensPerInterval;
|
|
914
914
|
interval;
|
|
@@ -935,13 +935,13 @@ var je = class {
|
|
|
935
935
|
default: throw Error("Invalid interval " + n);
|
|
936
936
|
}
|
|
937
937
|
else this.interval = n;
|
|
938
|
-
this.parentBucket = r, this.content = 0, this.lastDrip =
|
|
938
|
+
this.parentBucket = r, this.content = 0, this.lastDrip = W();
|
|
939
939
|
}
|
|
940
940
|
async removeTokens(e) {
|
|
941
941
|
if (this.bucketSize === 0) return Infinity;
|
|
942
942
|
if (e > this.bucketSize) throw Error(`Requested tokens ${e} exceeds bucket size ${this.bucketSize}`);
|
|
943
943
|
this.drip();
|
|
944
|
-
let t = async () => (await
|
|
944
|
+
let t = async () => (await G(Math.ceil((e - this.content) * (this.interval / this.tokensPerInterval))), this.removeTokens(e));
|
|
945
945
|
if (e > this.content) return t();
|
|
946
946
|
if (this.parentBucket != null) {
|
|
947
947
|
let n = await this.parentBucket.removeTokens(e);
|
|
@@ -956,30 +956,30 @@ var je = class {
|
|
|
956
956
|
let e = this.content;
|
|
957
957
|
return this.content = this.bucketSize, this.content > e;
|
|
958
958
|
}
|
|
959
|
-
let e =
|
|
959
|
+
let e = W(), t = Math.max(e - this.lastDrip, 0);
|
|
960
960
|
this.lastDrip = e;
|
|
961
961
|
let n = t * (this.tokensPerInterval / this.interval), r = this.content;
|
|
962
962
|
return this.content = Math.min(this.content + n, this.bucketSize), Math.floor(this.content) > Math.floor(r);
|
|
963
963
|
}
|
|
964
|
-
},
|
|
964
|
+
}, Ae = class {
|
|
965
965
|
tokenBucket;
|
|
966
966
|
curIntervalStart;
|
|
967
967
|
tokensThisInterval;
|
|
968
968
|
fireImmediately;
|
|
969
969
|
constructor({ tokensPerInterval: e, interval: t, fireImmediately: n }) {
|
|
970
|
-
this.tokenBucket = new
|
|
970
|
+
this.tokenBucket = new ke({
|
|
971
971
|
bucketSize: e,
|
|
972
972
|
tokensPerInterval: e,
|
|
973
973
|
interval: t
|
|
974
|
-
}), this.tokenBucket.content = e, this.curIntervalStart =
|
|
974
|
+
}), this.tokenBucket.content = e, this.curIntervalStart = W(), this.tokensThisInterval = 0, this.fireImmediately = n ?? !1;
|
|
975
975
|
}
|
|
976
976
|
async removeTokens(e) {
|
|
977
977
|
if (e > this.tokenBucket.bucketSize) throw Error(`Requested tokens ${e} exceeds maximum tokens per interval ${this.tokenBucket.bucketSize}`);
|
|
978
|
-
let t =
|
|
978
|
+
let t = W();
|
|
979
979
|
if ((t < this.curIntervalStart || t - this.curIntervalStart >= this.tokenBucket.interval) && (this.curIntervalStart = t, this.tokensThisInterval = 0), e > this.tokenBucket.tokensPerInterval - this.tokensThisInterval) {
|
|
980
980
|
if (this.fireImmediately) return -1;
|
|
981
981
|
{
|
|
982
|
-
await
|
|
982
|
+
await G(Math.ceil(this.curIntervalStart + this.tokenBucket.interval - t));
|
|
983
983
|
let n = await this.tokenBucket.removeTokens(e);
|
|
984
984
|
return this.tokensThisInterval += e, n;
|
|
985
985
|
}
|
|
@@ -989,7 +989,7 @@ var je = class {
|
|
|
989
989
|
}
|
|
990
990
|
tryRemoveTokens(e) {
|
|
991
991
|
if (e > this.tokenBucket.bucketSize) return !1;
|
|
992
|
-
let t =
|
|
992
|
+
let t = W();
|
|
993
993
|
if ((t < this.curIntervalStart || t - this.curIntervalStart >= this.tokenBucket.interval) && (this.curIntervalStart = t, this.tokensThisInterval = 0), e > this.tokenBucket.tokensPerInterval - this.tokensThisInterval) return !1;
|
|
994
994
|
let n = this.tokenBucket.tryRemoveTokens(e);
|
|
995
995
|
return n && (this.tokensThisInterval += e), n;
|
|
@@ -1000,7 +1000,7 @@ var je = class {
|
|
|
1000
1000
|
};
|
|
1001
1001
|
//#endregion
|
|
1002
1002
|
//#region src/request-rate-limit.ts
|
|
1003
|
-
function
|
|
1003
|
+
function je(e = {}) {
|
|
1004
1004
|
let t = Math.max(1e3, Math.trunc(e.windowMs ?? 6e4)), n = e.now ?? (() => Date.now()), r = /* @__PURE__ */ new Map(), i = 0;
|
|
1005
1005
|
function a(e) {
|
|
1006
1006
|
return Math.max(1, Math.ceil(t / Math.max(1, e) / 1e3));
|
|
@@ -1017,7 +1017,7 @@ function Ne(e = {}) {
|
|
|
1017
1017
|
o(l);
|
|
1018
1018
|
let u = `${c}:${e}`, d = r.get(u);
|
|
1019
1019
|
return d || (d = {
|
|
1020
|
-
limiter: new
|
|
1020
|
+
limiter: new Ae({
|
|
1021
1021
|
tokensPerInterval: c,
|
|
1022
1022
|
interval: t,
|
|
1023
1023
|
fireImmediately: !0
|
|
@@ -1034,8 +1034,8 @@ function Ne(e = {}) {
|
|
|
1034
1034
|
}
|
|
1035
1035
|
//#endregion
|
|
1036
1036
|
//#region src/scope-membership-semantics.ts
|
|
1037
|
-
var
|
|
1038
|
-
function
|
|
1037
|
+
var K = "Revocation prevents future sync only; it does not remove data already copied to the revoked device.";
|
|
1038
|
+
function Me(e) {
|
|
1039
1039
|
let t = Number.isFinite(e.membershipEpoch) ? Number(e.membershipEpoch) : null, n = Number.isFinite(e.requiredEpoch) ? Number(e.requiredEpoch) : null;
|
|
1040
1040
|
return t == null || n == null ? {
|
|
1041
1041
|
membership_epoch: t,
|
|
@@ -1049,28 +1049,28 @@ function Pe(e) {
|
|
|
1049
1049
|
reason: t < n ? "stale_epoch" : "current"
|
|
1050
1050
|
};
|
|
1051
1051
|
}
|
|
1052
|
-
function
|
|
1052
|
+
function q(e) {
|
|
1053
1053
|
return {
|
|
1054
1054
|
scope_id: e.scopeId,
|
|
1055
1055
|
device_id: e.deviceId,
|
|
1056
1056
|
membership_epoch: Number.isFinite(e.membershipEpoch) ? Number(e.membershipEpoch) : null,
|
|
1057
1057
|
prevents_future_sync: !0,
|
|
1058
1058
|
deletes_already_copied_data: !1,
|
|
1059
|
-
message:
|
|
1059
|
+
message: K
|
|
1060
1060
|
};
|
|
1061
1061
|
}
|
|
1062
1062
|
//#endregion
|
|
1063
1063
|
//#region src/sync-auth-constants.ts
|
|
1064
|
-
var
|
|
1064
|
+
var Ne = 300;
|
|
1065
1065
|
//#endregion
|
|
1066
1066
|
//#region src/sync-fingerprint.ts
|
|
1067
|
-
function
|
|
1067
|
+
function J(t) {
|
|
1068
1068
|
return e("sha256").update(t, "utf-8").digest("hex");
|
|
1069
1069
|
}
|
|
1070
1070
|
//#endregion
|
|
1071
1071
|
//#region src/coordinator-api.ts
|
|
1072
|
-
var
|
|
1073
|
-
function
|
|
1072
|
+
var Y = 64 * 1024, X = "X-Codemem-Coordinator-Admin", Z = "X-Codemem-Coordinator-Admin-Actor", Pe = 120, Fe = 30;
|
|
1073
|
+
function Q(e, t) {
|
|
1074
1074
|
let n = t.adminSecret();
|
|
1075
1075
|
if (!n) return {
|
|
1076
1076
|
ok: !1,
|
|
@@ -1088,17 +1088,17 @@ function Z(e, t) {
|
|
|
1088
1088
|
error: "missing_admin_header"
|
|
1089
1089
|
};
|
|
1090
1090
|
}
|
|
1091
|
-
function
|
|
1091
|
+
function Ie(e) {
|
|
1092
1092
|
let t = new URL(e);
|
|
1093
1093
|
return t.search ? `${t.pathname}${t.search}` : t.pathname;
|
|
1094
1094
|
}
|
|
1095
|
-
async function
|
|
1095
|
+
async function Le(e, t, n, r) {
|
|
1096
1096
|
return await e.recordNonce(t, n, r);
|
|
1097
1097
|
}
|
|
1098
|
-
async function
|
|
1098
|
+
async function Re(e, t) {
|
|
1099
1099
|
await e.cleanupNonces(t);
|
|
1100
1100
|
}
|
|
1101
|
-
async function
|
|
1101
|
+
async function $(e, t, n, r) {
|
|
1102
1102
|
let { deviceId: i, signature: a, timestamp: o, nonce: s } = r;
|
|
1103
1103
|
if (!i || !a || !o || !s) return {
|
|
1104
1104
|
ok: !1,
|
|
@@ -1126,7 +1126,7 @@ async function Q(e, t, n, r) {
|
|
|
1126
1126
|
try {
|
|
1127
1127
|
u = await n({
|
|
1128
1128
|
method: r.method,
|
|
1129
|
-
pathWithQuery:
|
|
1129
|
+
pathWithQuery: Ie(r.url),
|
|
1130
1130
|
bodyBytes: r.body,
|
|
1131
1131
|
timestamp: o,
|
|
1132
1132
|
nonce: s,
|
|
@@ -1147,7 +1147,7 @@ async function Q(e, t, n, r) {
|
|
|
1147
1147
|
enrollment: null
|
|
1148
1148
|
};
|
|
1149
1149
|
let d = t.now();
|
|
1150
|
-
return await
|
|
1150
|
+
return await Le(e, i, s, d) ? (await Re(e, (/* @__PURE__ */ new Date(new Date(d).getTime() - 300 * 2 * 1e3)).toISOString()), {
|
|
1151
1151
|
ok: !0,
|
|
1152
1152
|
error: "ok",
|
|
1153
1153
|
enrollment: c
|
|
@@ -1157,9 +1157,9 @@ async function Q(e, t, n, r) {
|
|
|
1157
1157
|
enrollment: null
|
|
1158
1158
|
};
|
|
1159
1159
|
}
|
|
1160
|
-
function
|
|
1160
|
+
function ze(e) {
|
|
1161
1161
|
if (!e?.storeFactory || !e.runtime || !e.requestVerifier) throw Error("createCoordinatorApp requires storeFactory, runtime, and requestVerifier.");
|
|
1162
|
-
let t = e.runtime, n = e.storeFactory, r = e.requestVerifier, i = e.requestRateLimit ?? {}, a = i.limiter ??
|
|
1162
|
+
let t = e.runtime, n = e.storeFactory, r = e.requestVerifier, i = e.requestRateLimit ?? {}, a = i.limiter ?? je(), o = Math.max(1, Math.trunc(i.readLimit ?? Pe)), s = Math.max(1, Math.trunc(i.mutationLimit ?? Fe)), c = Math.max(1, Math.trunc(i.unauthenticatedReadLimit ?? Math.min(20, o))), l = Math.max(1, Math.trunc(i.unauthenticatedMutationLimit ?? Math.min(10, s))), u = new xe(), d = new TextDecoder();
|
|
1163
1163
|
function f(e, t, n) {
|
|
1164
1164
|
let r = e.req.method === "GET" || e.req.method === "HEAD" || e.req.method === "OPTIONS", i = a.check(`${e.req.method}:${n ? "auth" : "anon"}:${t}`, n ? r ? o : s : r ? c : l);
|
|
1165
1165
|
return i.allowed ? null : (e.header("Retry-After", String(i.retryAfterS)), e.json({
|
|
@@ -1169,7 +1169,7 @@ function Be(e) {
|
|
|
1169
1169
|
}
|
|
1170
1170
|
async function p(e) {
|
|
1171
1171
|
let t = Number.parseInt(e.req.header("content-length") ?? "", 10);
|
|
1172
|
-
if (Number.isFinite(t) && t >
|
|
1172
|
+
if (Number.isFinite(t) && t > Y) return null;
|
|
1173
1173
|
let n = e.req.raw.body;
|
|
1174
1174
|
if (!n) return new Uint8Array();
|
|
1175
1175
|
let r = n.getReader(), i = [], a = 0;
|
|
@@ -1178,7 +1178,7 @@ function Be(e) {
|
|
|
1178
1178
|
let { done: e, value: t } = await r.read();
|
|
1179
1179
|
if (e) break;
|
|
1180
1180
|
if (t) {
|
|
1181
|
-
if (a += t.byteLength, a >
|
|
1181
|
+
if (a += t.byteLength, a > Y) return await r.cancel(), null;
|
|
1182
1182
|
i.push(t);
|
|
1183
1183
|
}
|
|
1184
1184
|
}
|
|
@@ -1251,6 +1251,31 @@ function Be(e) {
|
|
|
1251
1251
|
response: r.json({ error: "scope_not_found" }, 404)
|
|
1252
1252
|
};
|
|
1253
1253
|
}
|
|
1254
|
+
async function x(e, n, i) {
|
|
1255
|
+
let a = await $(e, t, r, {
|
|
1256
|
+
method: i.req.method,
|
|
1257
|
+
url: i.req.url,
|
|
1258
|
+
groupId: n,
|
|
1259
|
+
body: new Uint8Array(),
|
|
1260
|
+
deviceId: i.req.header("X-Opencode-Device") ?? null,
|
|
1261
|
+
signature: i.req.header("X-Opencode-Signature") ?? null,
|
|
1262
|
+
timestamp: i.req.header("X-Opencode-Timestamp") ?? null,
|
|
1263
|
+
nonce: i.req.header("X-Opencode-Nonce") ?? null
|
|
1264
|
+
});
|
|
1265
|
+
return !a.ok || !a.enrollment ? {
|
|
1266
|
+
auth: a,
|
|
1267
|
+
response: f(i, i.req.path, !1) ?? i.json({ error: a.error }, a.error === "group_archived" ? 409 : 401)
|
|
1268
|
+
} : {
|
|
1269
|
+
auth: a,
|
|
1270
|
+
response: f(i, String(a.enrollment.device_id), !0)
|
|
1271
|
+
};
|
|
1272
|
+
}
|
|
1273
|
+
function S(e, t) {
|
|
1274
|
+
return e.status === "active" && e.membership_epoch >= t.membership_epoch;
|
|
1275
|
+
}
|
|
1276
|
+
async function C(e, t, n) {
|
|
1277
|
+
return (await e.listScopeMemberships(t.scope_id, !1)).some((e) => e.device_id === n && S(e, t));
|
|
1278
|
+
}
|
|
1254
1279
|
return u.post("/v1/presence", async (e) => {
|
|
1255
1280
|
let i = await p(e);
|
|
1256
1281
|
if (i == null) return e.json({ error: "body_too_large" }, 413);
|
|
@@ -1260,7 +1285,7 @@ function Be(e) {
|
|
|
1260
1285
|
if (!o) return e.json({ error: "group_id_required" }, 400);
|
|
1261
1286
|
let s = n();
|
|
1262
1287
|
try {
|
|
1263
|
-
let n = await
|
|
1288
|
+
let n = await $(s, t, r, {
|
|
1264
1289
|
method: e.req.method,
|
|
1265
1290
|
url: e.req.url,
|
|
1266
1291
|
groupId: o,
|
|
@@ -1301,7 +1326,7 @@ function Be(e) {
|
|
|
1301
1326
|
if (!i) return e.json({ error: "group_id_required" }, 400);
|
|
1302
1327
|
let a = n();
|
|
1303
1328
|
try {
|
|
1304
|
-
let n = await
|
|
1329
|
+
let n = await $(a, t, r, {
|
|
1305
1330
|
method: e.req.method,
|
|
1306
1331
|
url: e.req.url,
|
|
1307
1332
|
groupId: i,
|
|
@@ -1319,13 +1344,49 @@ function Be(e) {
|
|
|
1319
1344
|
} finally {
|
|
1320
1345
|
await a.close();
|
|
1321
1346
|
}
|
|
1347
|
+
}), u.get("/v1/scopes", async (e) => {
|
|
1348
|
+
let t = (e.req.query("group_id") ?? "").trim();
|
|
1349
|
+
if (!t) return e.json({ error: "group_id_required" }, 400);
|
|
1350
|
+
let r = n();
|
|
1351
|
+
try {
|
|
1352
|
+
let { auth: n, response: i } = await x(r, t, e);
|
|
1353
|
+
if (i) return i;
|
|
1354
|
+
if (!n.enrollment) return e.json({ error: "unknown_device" }, 401);
|
|
1355
|
+
let a = await r.listScopes({
|
|
1356
|
+
groupId: t,
|
|
1357
|
+
includeInactive: !1
|
|
1358
|
+
}), o = [];
|
|
1359
|
+
for (let e of a) e.status === "active" && await C(r, e, String(n.enrollment.device_id)) && o.push(e);
|
|
1360
|
+
return e.json({ items: o });
|
|
1361
|
+
} finally {
|
|
1362
|
+
await r.close();
|
|
1363
|
+
}
|
|
1364
|
+
}), u.get("/v1/scopes/:scope_id/members", async (e) => {
|
|
1365
|
+
let t = (e.req.query("group_id") ?? "").trim(), r = String(e.req.param("scope_id") ?? "").trim();
|
|
1366
|
+
if (!t) return e.json({ error: "group_id_required" }, 400);
|
|
1367
|
+
if (!r) return e.json({ error: "scope_id_required" }, 400);
|
|
1368
|
+
let i = n();
|
|
1369
|
+
try {
|
|
1370
|
+
let { auth: n, response: a } = await x(i, t, e);
|
|
1371
|
+
if (a) return a;
|
|
1372
|
+
if (!n.enrollment) return e.json({ error: "unknown_device" }, 401);
|
|
1373
|
+
let o = (await i.listScopes({
|
|
1374
|
+
groupId: t,
|
|
1375
|
+
includeInactive: !1
|
|
1376
|
+
})).find((e) => e.scope_id === r) ?? null;
|
|
1377
|
+
if (!o || o.status !== "active") return e.json({ error: "scope_not_found" }, 404);
|
|
1378
|
+
let s = await i.listScopeMemberships(r, !1);
|
|
1379
|
+
return s.some((e) => e.device_id === String(n.enrollment?.device_id) && S(e, o)) ? e.json({ items: s.filter((e) => S(e, o)) }) : e.json({ error: "scope_not_authorized" }, 403);
|
|
1380
|
+
} finally {
|
|
1381
|
+
await i.close();
|
|
1382
|
+
}
|
|
1322
1383
|
}), u.get("/v1/reciprocal-approvals", async (e) => {
|
|
1323
1384
|
let i = (e.req.query("group_id") ?? "").trim(), a = (e.req.query("direction") ?? "incoming").trim(), o = (e.req.query("status") ?? "pending").trim() || "pending";
|
|
1324
1385
|
if (!i) return e.json({ error: "group_id_required" }, 400);
|
|
1325
1386
|
if (!["incoming", "outgoing"].includes(a)) return e.json({ error: "direction_must_be_incoming_or_outgoing" }, 400);
|
|
1326
1387
|
let s = n();
|
|
1327
1388
|
try {
|
|
1328
|
-
let n = await
|
|
1389
|
+
let n = await $(s, t, r, {
|
|
1329
1390
|
method: e.req.method,
|
|
1330
1391
|
url: e.req.url,
|
|
1331
1392
|
groupId: i,
|
|
@@ -1357,7 +1418,7 @@ function Be(e) {
|
|
|
1357
1418
|
if (!o || !s) return e.json({ error: "group_id_and_requested_device_id_required" }, 400);
|
|
1358
1419
|
let c = n();
|
|
1359
1420
|
try {
|
|
1360
|
-
let n = await
|
|
1421
|
+
let n = await $(c, t, r, {
|
|
1361
1422
|
method: e.req.method,
|
|
1362
1423
|
url: e.req.url,
|
|
1363
1424
|
groupId: o,
|
|
@@ -1385,7 +1446,7 @@ function Be(e) {
|
|
|
1385
1446
|
await c.close();
|
|
1386
1447
|
}
|
|
1387
1448
|
}), u.post("/v1/admin/devices", async (e) => {
|
|
1388
|
-
let r =
|
|
1449
|
+
let r = Q(e.req.header(X), t);
|
|
1389
1450
|
if (!r.ok) return f(e, e.req.path, !1) ?? e.json({ error: r.error }, 401);
|
|
1390
1451
|
let i = f(e, "admin", !0);
|
|
1391
1452
|
if (i) return i;
|
|
@@ -1395,7 +1456,7 @@ function Be(e) {
|
|
|
1395
1456
|
if (!o) return e.json({ error: "invalid_json" }, 400);
|
|
1396
1457
|
let s = String(o.group_id ?? "").trim(), c = String(o.device_id ?? "").trim(), l = String(o.fingerprint ?? "").trim(), u = String(o.public_key ?? "").trim(), d = String(o.display_name ?? "").trim() || null;
|
|
1397
1458
|
if (!s || !c || !l || !u) return e.json({ error: "group_id_device_id_fingerprint_public_key_required" }, 400);
|
|
1398
|
-
if (
|
|
1459
|
+
if (J(u) !== l) return e.json({ error: "fingerprint_mismatch" }, 400);
|
|
1399
1460
|
let h = n();
|
|
1400
1461
|
try {
|
|
1401
1462
|
await h.createGroup(s), await h.enrollDevice(s, {
|
|
@@ -1409,7 +1470,7 @@ function Be(e) {
|
|
|
1409
1470
|
}
|
|
1410
1471
|
return e.json({ ok: !0 });
|
|
1411
1472
|
}), u.get("/v1/admin/groups", async (e) => {
|
|
1412
|
-
let r =
|
|
1473
|
+
let r = Q(e.req.header(X), t);
|
|
1413
1474
|
if (!r.ok) return f(e, e.req.path, !1) ?? e.json({ error: r.error }, 401);
|
|
1414
1475
|
let i = f(e, "admin", !0);
|
|
1415
1476
|
if (i) return i;
|
|
@@ -1424,7 +1485,7 @@ function Be(e) {
|
|
|
1424
1485
|
await o.close();
|
|
1425
1486
|
}
|
|
1426
1487
|
}), u.post("/v1/admin/groups", async (e) => {
|
|
1427
|
-
let r =
|
|
1488
|
+
let r = Q(e.req.header(X), t);
|
|
1428
1489
|
if (!r.ok) return f(e, e.req.path, !1) ?? e.json({ error: r.error }, 401);
|
|
1429
1490
|
let i = f(e, "admin", !0);
|
|
1430
1491
|
if (i) return i;
|
|
@@ -1444,7 +1505,7 @@ function Be(e) {
|
|
|
1444
1505
|
await l.close();
|
|
1445
1506
|
}
|
|
1446
1507
|
}), u.post("/v1/admin/groups/rename", async (e) => {
|
|
1447
|
-
let r =
|
|
1508
|
+
let r = Q(e.req.header(X), t);
|
|
1448
1509
|
if (!r.ok) return f(e, e.req.path, !1) ?? e.json({ error: r.error }, 401);
|
|
1449
1510
|
let i = f(e, "admin", !0);
|
|
1450
1511
|
if (i) return i;
|
|
@@ -1464,7 +1525,7 @@ function Be(e) {
|
|
|
1464
1525
|
await l.close();
|
|
1465
1526
|
}
|
|
1466
1527
|
}), u.post("/v1/admin/groups/archive", async (e) => {
|
|
1467
|
-
let r =
|
|
1528
|
+
let r = Q(e.req.header(X), t);
|
|
1468
1529
|
if (!r.ok) return f(e, e.req.path, !1) ?? e.json({ error: r.error }, 401);
|
|
1469
1530
|
let i = f(e, "admin", !0);
|
|
1470
1531
|
if (i) return i;
|
|
@@ -1484,7 +1545,7 @@ function Be(e) {
|
|
|
1484
1545
|
await c.close();
|
|
1485
1546
|
}
|
|
1486
1547
|
}), u.post("/v1/admin/groups/unarchive", async (e) => {
|
|
1487
|
-
let r =
|
|
1548
|
+
let r = Q(e.req.header(X), t);
|
|
1488
1549
|
if (!r.ok) return f(e, e.req.path, !1) ?? e.json({ error: r.error }, 401);
|
|
1489
1550
|
let i = f(e, "admin", !0);
|
|
1490
1551
|
if (i) return i;
|
|
@@ -1504,7 +1565,7 @@ function Be(e) {
|
|
|
1504
1565
|
await c.close();
|
|
1505
1566
|
}
|
|
1506
1567
|
}), u.get("/v1/admin/groups/:group_id/scopes", async (e) => {
|
|
1507
|
-
let r =
|
|
1568
|
+
let r = Q(e.req.header(X), t);
|
|
1508
1569
|
if (!r.ok) return f(e, e.req.path, !1) ?? e.json({ error: r.error }, 401);
|
|
1509
1570
|
let i = f(e, "admin", !0);
|
|
1510
1571
|
if (i) return i;
|
|
@@ -1521,7 +1582,7 @@ function Be(e) {
|
|
|
1521
1582
|
await o.close();
|
|
1522
1583
|
}
|
|
1523
1584
|
}), u.post("/v1/admin/groups/:group_id/scopes", async (e) => {
|
|
1524
|
-
let r =
|
|
1585
|
+
let r = Q(e.req.header(X), t);
|
|
1525
1586
|
if (!r.ok) return f(e, e.req.path, !1) ?? e.json({ error: r.error }, 401);
|
|
1526
1587
|
let i = f(e, "admin", !0);
|
|
1527
1588
|
if (i) return i;
|
|
@@ -1558,7 +1619,7 @@ function Be(e) {
|
|
|
1558
1619
|
await d.close();
|
|
1559
1620
|
}
|
|
1560
1621
|
}), u.patch("/v1/admin/groups/:group_id/scopes/:scope_id", async (e) => {
|
|
1561
|
-
let r =
|
|
1622
|
+
let r = Q(e.req.header(X), t);
|
|
1562
1623
|
if (!r.ok) return f(e, e.req.path, !1) ?? e.json({ error: r.error }, 401);
|
|
1563
1624
|
let i = f(e, "admin", !0);
|
|
1564
1625
|
if (i) return i;
|
|
@@ -1595,7 +1656,7 @@ function Be(e) {
|
|
|
1595
1656
|
await u.close();
|
|
1596
1657
|
}
|
|
1597
1658
|
}), u.get("/v1/admin/groups/:group_id/scopes/:scope_id/members", async (e) => {
|
|
1598
|
-
let r =
|
|
1659
|
+
let r = Q(e.req.header(X), t);
|
|
1599
1660
|
if (!r.ok) return f(e, e.req.path, !1) ?? e.json({ error: r.error }, 401);
|
|
1600
1661
|
let i = f(e, "admin", !0);
|
|
1601
1662
|
if (i) return i;
|
|
@@ -1607,7 +1668,7 @@ function Be(e) {
|
|
|
1607
1668
|
await s.close();
|
|
1608
1669
|
}
|
|
1609
1670
|
}), u.post("/v1/admin/groups/:group_id/scopes/:scope_id/members", async (e) => {
|
|
1610
|
-
let r =
|
|
1671
|
+
let r = Q(e.req.header(X), t);
|
|
1611
1672
|
if (!r.ok) return f(e, e.req.path, !1) ?? e.json({ error: r.error }, 401);
|
|
1612
1673
|
let i = f(e, "admin", !0);
|
|
1613
1674
|
if (i) return i;
|
|
@@ -1635,7 +1696,7 @@ function Be(e) {
|
|
|
1635
1696
|
manifestHash: h(o, "manifest_hash"),
|
|
1636
1697
|
signedManifestJson: h(o, "signed_manifest_json"),
|
|
1637
1698
|
actorType: "admin",
|
|
1638
|
-
actorId: g(e.req.header(
|
|
1699
|
+
actorId: g(e.req.header(Z))
|
|
1639
1700
|
});
|
|
1640
1701
|
return e.json({
|
|
1641
1702
|
ok: !0,
|
|
@@ -1647,7 +1708,7 @@ function Be(e) {
|
|
|
1647
1708
|
await d.close();
|
|
1648
1709
|
}
|
|
1649
1710
|
}), u.post("/v1/admin/groups/:group_id/scopes/:scope_id/members/:device_id/revoke", async (e) => {
|
|
1650
|
-
let r =
|
|
1711
|
+
let r = Q(e.req.header(X), t);
|
|
1651
1712
|
if (!r.ok) return f(e, e.req.path, !1) ?? e.json({ error: r.error }, 401);
|
|
1652
1713
|
let i = f(e, "admin", !0);
|
|
1653
1714
|
if (i) return i;
|
|
@@ -1669,7 +1730,7 @@ function Be(e) {
|
|
|
1669
1730
|
manifestHash: h(o, "manifest_hash"),
|
|
1670
1731
|
signedManifestJson: h(o, "signed_manifest_json"),
|
|
1671
1732
|
actorType: "admin",
|
|
1672
|
-
actorId: g(e.req.header(
|
|
1733
|
+
actorId: g(e.req.header(Z))
|
|
1673
1734
|
})) return e.json({ error: "membership_not_found" }, 404);
|
|
1674
1735
|
let n;
|
|
1675
1736
|
try {
|
|
@@ -1681,7 +1742,7 @@ function Be(e) {
|
|
|
1681
1742
|
ok: !0,
|
|
1682
1743
|
scope_id: c,
|
|
1683
1744
|
device_id: l,
|
|
1684
|
-
revocation:
|
|
1745
|
+
revocation: q({
|
|
1685
1746
|
scopeId: c,
|
|
1686
1747
|
deviceId: l,
|
|
1687
1748
|
membershipEpoch: n?.membership_epoch ?? u
|
|
@@ -1693,7 +1754,7 @@ function Be(e) {
|
|
|
1693
1754
|
await d.close();
|
|
1694
1755
|
}
|
|
1695
1756
|
}), u.get("/v1/admin/devices", async (e) => {
|
|
1696
|
-
let r =
|
|
1757
|
+
let r = Q(e.req.header(X), t);
|
|
1697
1758
|
if (!r.ok) return f(e, e.req.path, !1) ?? e.json({ error: r.error }, 401);
|
|
1698
1759
|
let i = f(e, "admin", !0);
|
|
1699
1760
|
if (i) return i;
|
|
@@ -1710,7 +1771,7 @@ function Be(e) {
|
|
|
1710
1771
|
await s.close();
|
|
1711
1772
|
}
|
|
1712
1773
|
}), u.post("/v1/admin/devices/rename", async (e) => {
|
|
1713
|
-
let r =
|
|
1774
|
+
let r = Q(e.req.header(X), t);
|
|
1714
1775
|
if (!r.ok) return f(e, e.req.path, !1) ?? e.json({ error: r.error }, 401);
|
|
1715
1776
|
let i = f(e, "admin", !0);
|
|
1716
1777
|
if (i) return i;
|
|
@@ -1733,7 +1794,7 @@ function Be(e) {
|
|
|
1733
1794
|
await u.close();
|
|
1734
1795
|
}
|
|
1735
1796
|
}), u.post("/v1/admin/devices/disable", async (e) => {
|
|
1736
|
-
let r =
|
|
1797
|
+
let r = Q(e.req.header(X), t);
|
|
1737
1798
|
if (!r.ok) return f(e, e.req.path, !1) ?? e.json({ error: r.error }, 401);
|
|
1738
1799
|
let i = f(e, "admin", !0);
|
|
1739
1800
|
if (i) return i;
|
|
@@ -1750,7 +1811,7 @@ function Be(e) {
|
|
|
1750
1811
|
await l.close();
|
|
1751
1812
|
}
|
|
1752
1813
|
}), u.post("/v1/admin/devices/enable", async (e) => {
|
|
1753
|
-
let r =
|
|
1814
|
+
let r = Q(e.req.header(X), t);
|
|
1754
1815
|
if (!r.ok) return f(e, e.req.path, !1) ?? e.json({ error: r.error }, 401);
|
|
1755
1816
|
let i = f(e, "admin", !0);
|
|
1756
1817
|
if (i) return i;
|
|
@@ -1767,7 +1828,7 @@ function Be(e) {
|
|
|
1767
1828
|
await l.close();
|
|
1768
1829
|
}
|
|
1769
1830
|
}), u.post("/v1/admin/devices/remove", async (e) => {
|
|
1770
|
-
let r =
|
|
1831
|
+
let r = Q(e.req.header(X), t);
|
|
1771
1832
|
if (!r.ok) return f(e, e.req.path, !1) ?? e.json({ error: r.error }, 401);
|
|
1772
1833
|
let i = f(e, "admin", !0);
|
|
1773
1834
|
if (i) return i;
|
|
@@ -1784,7 +1845,7 @@ function Be(e) {
|
|
|
1784
1845
|
await l.close();
|
|
1785
1846
|
}
|
|
1786
1847
|
}), u.post("/v1/admin/invites", async (e) => {
|
|
1787
|
-
let r =
|
|
1848
|
+
let r = Q(e.req.header(X), t);
|
|
1788
1849
|
if (!r.ok) return f(e, e.req.path, !1) ?? e.json({ error: r.error }, 401);
|
|
1789
1850
|
let i = f(e, "admin", !0);
|
|
1790
1851
|
if (i) return i;
|
|
@@ -1813,19 +1874,19 @@ function Be(e) {
|
|
|
1813
1874
|
token: String(n.token ?? ""),
|
|
1814
1875
|
expires_at: l,
|
|
1815
1876
|
team_name: n.team_name_snapshot ?? null
|
|
1816
|
-
}, i =
|
|
1877
|
+
}, i = H(r), { token: a, ...f } = n;
|
|
1817
1878
|
return e.json({
|
|
1818
1879
|
ok: !0,
|
|
1819
1880
|
invite: f,
|
|
1820
1881
|
payload: r,
|
|
1821
1882
|
encoded: i,
|
|
1822
|
-
link:
|
|
1883
|
+
link: U(i)
|
|
1823
1884
|
});
|
|
1824
1885
|
} finally {
|
|
1825
1886
|
await d.close();
|
|
1826
1887
|
}
|
|
1827
1888
|
}), u.get("/v1/admin/invites", async (e) => {
|
|
1828
|
-
let r =
|
|
1889
|
+
let r = Q(e.req.header(X), t);
|
|
1829
1890
|
if (!r.ok) return f(e, e.req.path, !1) ?? e.json({ error: r.error }, 401);
|
|
1830
1891
|
let i = f(e, "admin", !0);
|
|
1831
1892
|
if (i) return i;
|
|
@@ -1839,7 +1900,7 @@ function Be(e) {
|
|
|
1839
1900
|
await o.close();
|
|
1840
1901
|
}
|
|
1841
1902
|
}), u.get("/v1/admin/bootstrap-grants/:grantId", async (e) => {
|
|
1842
|
-
let r =
|
|
1903
|
+
let r = Q(e.req.header(X), t);
|
|
1843
1904
|
if (!r.ok) return f(e, e.req.path, !1) ?? e.json({ error: r.error }, 401);
|
|
1844
1905
|
let i = f(e, "admin", !0);
|
|
1845
1906
|
if (i) return i;
|
|
@@ -1860,7 +1921,7 @@ function Be(e) {
|
|
|
1860
1921
|
await o.close();
|
|
1861
1922
|
}
|
|
1862
1923
|
}), u.get("/v1/admin/bootstrap-grants", async (e) => {
|
|
1863
|
-
let r =
|
|
1924
|
+
let r = Q(e.req.header(X), t);
|
|
1864
1925
|
if (!r.ok) return f(e, e.req.path, !1) ?? e.json({ error: r.error }, 401);
|
|
1865
1926
|
let i = f(e, "admin", !0);
|
|
1866
1927
|
if (i) return i;
|
|
@@ -1873,7 +1934,7 @@ function Be(e) {
|
|
|
1873
1934
|
await o.close();
|
|
1874
1935
|
}
|
|
1875
1936
|
}), u.post("/v1/admin/bootstrap-grants/revoke", async (e) => {
|
|
1876
|
-
let r =
|
|
1937
|
+
let r = Q(e.req.header(X), t);
|
|
1877
1938
|
if (!r.ok) return f(e, e.req.path, !1) ?? e.json({ error: r.error }, 401);
|
|
1878
1939
|
let i = f(e, "admin", !0);
|
|
1879
1940
|
if (i) return i;
|
|
@@ -1892,16 +1953,16 @@ function Be(e) {
|
|
|
1892
1953
|
} finally {
|
|
1893
1954
|
await c.close();
|
|
1894
1955
|
}
|
|
1895
|
-
}), u.post("/v1/admin/join-requests/approve", async (e) =>
|
|
1956
|
+
}), u.post("/v1/admin/join-requests/approve", async (e) => Be(e, !0, {
|
|
1896
1957
|
createStore: n,
|
|
1897
1958
|
runtime: t,
|
|
1898
1959
|
rateLimitedResponse: f
|
|
1899
|
-
})), u.post("/v1/admin/join-requests/deny", async (e) =>
|
|
1960
|
+
})), u.post("/v1/admin/join-requests/deny", async (e) => Be(e, !1, {
|
|
1900
1961
|
createStore: n,
|
|
1901
1962
|
runtime: t,
|
|
1902
1963
|
rateLimitedResponse: f
|
|
1903
1964
|
})), u.get("/v1/admin/join-requests", async (e) => {
|
|
1904
|
-
let r =
|
|
1965
|
+
let r = Q(e.req.header(X), t);
|
|
1905
1966
|
if (!r.ok) return f(e, e.req.path, !1) ?? e.json({ error: r.error }, 401);
|
|
1906
1967
|
let i = f(e, "admin", !0);
|
|
1907
1968
|
if (i) return i;
|
|
@@ -1920,7 +1981,7 @@ function Be(e) {
|
|
|
1920
1981
|
if (!i) return e.json({ error: "invalid_json" }, 400);
|
|
1921
1982
|
let a = String(i.token ?? "").trim(), o = String(i.device_id ?? "").trim(), s = String(i.fingerprint ?? "").trim(), c = String(i.public_key ?? "").trim(), l = String(i.display_name ?? "").trim() || null;
|
|
1922
1983
|
if (!a || !o || !s || !c) return e.json({ error: "token_device_id_fingerprint_public_key_required" }, 400);
|
|
1923
|
-
if (
|
|
1984
|
+
if (J(c) !== s) return e.json({ error: "fingerprint_mismatch" }, 400);
|
|
1924
1985
|
let u = n();
|
|
1925
1986
|
try {
|
|
1926
1987
|
let n = await u.getInviteByToken(a);
|
|
@@ -1973,14 +2034,14 @@ function Be(e) {
|
|
|
1973
2034
|
}
|
|
1974
2035
|
}), u;
|
|
1975
2036
|
}
|
|
1976
|
-
async function
|
|
1977
|
-
let r =
|
|
2037
|
+
async function Be(e, t, n) {
|
|
2038
|
+
let r = Q(e.req.header(X), n.runtime);
|
|
1978
2039
|
if (!r.ok) return n.rateLimitedResponse(e, e.req.path, !1) ?? e.json({ error: r.error }, 401);
|
|
1979
2040
|
let i = n.rateLimitedResponse(e, "admin", !0);
|
|
1980
2041
|
if (i) return i;
|
|
1981
2042
|
let a = await (async () => {
|
|
1982
2043
|
let t = Number.parseInt(e.req.header("content-length") ?? "", 10);
|
|
1983
|
-
if (Number.isFinite(t) && t >
|
|
2044
|
+
if (Number.isFinite(t) && t > Y) return null;
|
|
1984
2045
|
let n = e.req.raw.body;
|
|
1985
2046
|
if (!n) return new Uint8Array();
|
|
1986
2047
|
let r = n.getReader(), i = [], a = 0;
|
|
@@ -1989,7 +2050,7 @@ async function $(e, t, n) {
|
|
|
1989
2050
|
let { done: e, value: t } = await r.read();
|
|
1990
2051
|
if (e) break;
|
|
1991
2052
|
if (t) {
|
|
1992
|
-
if (a += t.byteLength, a >
|
|
2053
|
+
if (a += t.byteLength, a > Y) return await r.cancel(), null;
|
|
1993
2054
|
i.push(t);
|
|
1994
2055
|
}
|
|
1995
2056
|
}
|
|
@@ -2037,6 +2098,6 @@ async function $(e, t, n) {
|
|
|
2037
2098
|
}
|
|
2038
2099
|
}
|
|
2039
2100
|
//#endregion
|
|
2040
|
-
export {
|
|
2101
|
+
export { q as a, H as c, K as i, De as l, J as n, Me as o, Ne as r, Ee as s, ze as t, U as u };
|
|
2041
2102
|
|
|
2042
|
-
//# sourceMappingURL=coordinator-api-
|
|
2103
|
+
//# sourceMappingURL=coordinator-api-CoP9mgpm.js.map
|