godprotocol 2.3.59 → 2.3.61
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/package.json
CHANGED
|
@@ -61,7 +61,7 @@ class Route_table extends Headers {
|
|
|
61
61
|
|
|
62
62
|
handle_before = async (payload) => {
|
|
63
63
|
for (const callback of this.before_callbacks) {
|
|
64
|
-
const result = await callback(payload);
|
|
64
|
+
const result = await callback(payload, this.gp);
|
|
65
65
|
|
|
66
66
|
if (result && result.ok === false) {
|
|
67
67
|
return result;
|
|
@@ -71,9 +71,9 @@ class Route_table extends Headers {
|
|
|
71
71
|
return { ok: true };
|
|
72
72
|
};
|
|
73
73
|
|
|
74
|
-
handle_after = async (payload
|
|
74
|
+
handle_after = async (payload) => {
|
|
75
75
|
for (const callback of this.after_callbacks) {
|
|
76
|
-
await callback(payload,
|
|
76
|
+
await callback(payload, this.gp);
|
|
77
77
|
}
|
|
78
78
|
|
|
79
79
|
return { ok: true };
|
|
@@ -81,7 +81,7 @@ class Route_table extends Headers {
|
|
|
81
81
|
|
|
82
82
|
handle_error_callback = async (payload) => {
|
|
83
83
|
for (const callback of this.error_callbacks) {
|
|
84
|
-
await callback(payload);
|
|
84
|
+
await callback(payload, this.gp);
|
|
85
85
|
}
|
|
86
86
|
|
|
87
87
|
return { ok: true };
|
|
@@ -224,6 +224,20 @@ const respond = (result, res) => {
|
|
|
224
224
|
const version_middleware = async (req, res, routers) => {
|
|
225
225
|
let error_stage = "Version Middleware";
|
|
226
226
|
|
|
227
|
+
// Hoisted so the catch block can see them — try/catch are separate
|
|
228
|
+
// block scopes, so anything declared with let/const *inside* try
|
|
229
|
+
// is invisible inside catch. These need to exist before try starts.
|
|
230
|
+
let version;
|
|
231
|
+
let versionRouter;
|
|
232
|
+
let query = {};
|
|
233
|
+
let body = {};
|
|
234
|
+
let name;
|
|
235
|
+
let router;
|
|
236
|
+
let securityResult;
|
|
237
|
+
let callback;
|
|
238
|
+
let payload;
|
|
239
|
+
let result;
|
|
240
|
+
|
|
227
241
|
try {
|
|
228
242
|
applyCors(req, res);
|
|
229
243
|
|
|
@@ -236,7 +250,7 @@ const version_middleware = async (req, res, routers) => {
|
|
|
236
250
|
const pathname = parsed_url.pathname;
|
|
237
251
|
|
|
238
252
|
// ⬇️ query params captured for every method now
|
|
239
|
-
|
|
253
|
+
query = Object.fromEntries(parsed_url.searchParams.entries()); // was: const query =
|
|
240
254
|
req.query = query;
|
|
241
255
|
|
|
242
256
|
req.request_id = crypto.randomUUID();
|
|
@@ -245,8 +259,6 @@ const version_middleware = async (req, res, routers) => {
|
|
|
245
259
|
res.request_id = req.request_id;
|
|
246
260
|
|
|
247
261
|
// STATIC ROUTE DETECTION
|
|
248
|
-
let version;
|
|
249
|
-
|
|
250
262
|
const versionMatch = pathname.match(/^\/api\/([^\/]+)(\/|$)/i);
|
|
251
263
|
if (req.method === "GET") {
|
|
252
264
|
if (routers.static_path && pathname.startsWith(routers.static_path)) {
|
|
@@ -267,7 +279,7 @@ const version_middleware = async (req, res, routers) => {
|
|
|
267
279
|
req.headers["x-platform"],
|
|
268
280
|
);
|
|
269
281
|
|
|
270
|
-
|
|
282
|
+
versionRouter = await routers.get_version(version); // was: let versionRouter =
|
|
271
283
|
|
|
272
284
|
if (!versionRouter) {
|
|
273
285
|
version = "*";
|
|
@@ -288,8 +300,6 @@ const version_middleware = async (req, res, routers) => {
|
|
|
288
300
|
|
|
289
301
|
version = versionRouter.version;
|
|
290
302
|
|
|
291
|
-
let body = {};
|
|
292
|
-
|
|
293
303
|
if (req.method === "GET") {
|
|
294
304
|
// GET keeps existing behavior: query params double as body
|
|
295
305
|
body = query;
|
|
@@ -309,7 +319,7 @@ const version_middleware = async (req, res, routers) => {
|
|
|
309
319
|
return versionRouter.routes(req, res);
|
|
310
320
|
}
|
|
311
321
|
|
|
312
|
-
|
|
322
|
+
router = routers; // was: const router =
|
|
313
323
|
|
|
314
324
|
// remove query string from route
|
|
315
325
|
let routePath = pathname;
|
|
@@ -324,13 +334,13 @@ const version_middleware = async (req, res, routers) => {
|
|
|
324
334
|
|
|
325
335
|
req.url = routePath;
|
|
326
336
|
|
|
327
|
-
|
|
337
|
+
name = routePath.replace(/^\//, ""); // was: let name =
|
|
328
338
|
|
|
329
339
|
const isWebhook = req.headers["is-webhook"];
|
|
330
340
|
|
|
331
341
|
// SECURITY
|
|
332
342
|
error_stage = "Header";
|
|
333
|
-
|
|
343
|
+
securityResult = await router.handle_security(name, req, version); // was: const securityResult =
|
|
334
344
|
|
|
335
345
|
if (securityResult !== true) {
|
|
336
346
|
return respond(securityResult, res);
|
|
@@ -344,22 +354,19 @@ const version_middleware = async (req, res, routers) => {
|
|
|
344
354
|
});
|
|
345
355
|
|
|
346
356
|
// WEBHOOK PRIOR
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
},
|
|
355
|
-
router.gp,
|
|
356
|
-
);
|
|
357
|
+
callback = await router.handle_before({
|
|
358
|
+
req,
|
|
359
|
+
body,
|
|
360
|
+
query,
|
|
361
|
+
route: name,
|
|
362
|
+
db: db.db,
|
|
363
|
+
});
|
|
357
364
|
|
|
358
365
|
if (callback?.response) return respond(callback.response, res);
|
|
359
366
|
|
|
360
367
|
if (callback?.body) body = callback.body;
|
|
361
368
|
|
|
362
|
-
if (callback?.query) query = callback.query;
|
|
369
|
+
if (callback?.query) query = callback.query;
|
|
363
370
|
|
|
364
371
|
if (callback?.headers) req.headers = callback.headers;
|
|
365
372
|
|
|
@@ -369,7 +376,8 @@ const version_middleware = async (req, res, routers) => {
|
|
|
369
376
|
// EXECUTE
|
|
370
377
|
|
|
371
378
|
error_stage = "Handler";
|
|
372
|
-
|
|
379
|
+
payload = {
|
|
380
|
+
// was: let payload =
|
|
373
381
|
body,
|
|
374
382
|
query,
|
|
375
383
|
route: name,
|
|
@@ -383,23 +391,20 @@ const version_middleware = async (req, res, routers) => {
|
|
|
383
391
|
params: {},
|
|
384
392
|
memory: router.gp.memory,
|
|
385
393
|
};
|
|
386
|
-
|
|
394
|
+
result = await router.execute(name, payload, version); // was: const result =
|
|
387
395
|
|
|
388
396
|
// WEBHOOK AFTER
|
|
389
397
|
if (!isWebhook && version !== "*") {
|
|
390
398
|
error_stage = "Webhook";
|
|
391
399
|
|
|
392
|
-
await router.handle_after(
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
},
|
|
401
|
-
router.gp,
|
|
402
|
-
);
|
|
400
|
+
await router.handle_after({
|
|
401
|
+
req: payload,
|
|
402
|
+
result,
|
|
403
|
+
headers: req.headers,
|
|
404
|
+
version,
|
|
405
|
+
route: payload.route_pattern || name,
|
|
406
|
+
db: db.db,
|
|
407
|
+
});
|
|
403
408
|
}
|
|
404
409
|
|
|
405
410
|
return respond(result, res);
|
|
@@ -407,11 +412,9 @@ const version_middleware = async (req, res, routers) => {
|
|
|
407
412
|
console.error(`${error_stage} Error:`, err);
|
|
408
413
|
|
|
409
414
|
try {
|
|
410
|
-
await
|
|
415
|
+
await routers?.handle_error_callback?.({
|
|
411
416
|
request_id: req?.request_id,
|
|
412
|
-
|
|
413
417
|
stage: error_stage,
|
|
414
|
-
|
|
415
418
|
timestamp: new Date().toISOString(),
|
|
416
419
|
|
|
417
420
|
error: {
|