@ereo/core 0.2.37 → 0.2.38
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/app.d.ts.map +1 -1
- package/dist/context.d.ts.map +1 -1
- package/dist/index.js +41 -9
- package/dist/plugin.d.ts +1 -0
- package/dist/plugin.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/app.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,MAAM,EACN,KAAK,EACL,UAAU,EACV,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAsB1C;;GAEG;AACH,wBAAgB,SAAS,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAEnE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,eAAe,GAAG,eAAe,CAErE;AAED;;GAEG;AACH,qBAAa,OAAQ,YAAW,WAAW;IACzC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,MAAM,EAAE,KAAK,EAAE,CAAM;IACrB,OAAO,EAAE,MAAM,EAAE,CAAM;IAEvB,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,YAAY,CAA0D;IAE9E,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAa;IAC3D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAAuC;gBAE1E,OAAO,GAAE,kBAAuB;IAc5C;;OAEG;IACH,OAAO,CAAC,WAAW;IAanB;;OAEG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAKzB;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAK5C;;;OAGG;IACH,eAAe,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,UAAU,GAAG,IAAI,GAAG,IAAI;IAIvE;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI;IAIhC;;OAEG;YACW,iBAAiB;IAU/B;;OAEG;IACG,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,MAAM,EACN,KAAK,EACL,UAAU,EACV,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAsB1C;;GAEG;AACH,wBAAgB,SAAS,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAEnE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,eAAe,GAAG,eAAe,CAErE;AAED;;GAEG;AACH,qBAAa,OAAQ,YAAW,WAAW;IACzC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,MAAM,EAAE,KAAK,EAAE,CAAM;IACrB,OAAO,EAAE,MAAM,EAAE,CAAM;IAEvB,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,YAAY,CAA0D;IAE9E,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAa;IAC3D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAAuC;gBAE1E,OAAO,GAAE,kBAAuB;IAc5C;;OAEG;IACH,OAAO,CAAC,WAAW;IAanB;;OAEG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAKzB;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAK5C;;;OAGG;IACH,eAAe,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,UAAU,GAAG,IAAI,GAAG,IAAI;IAIvE;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI;IAIhC;;OAEG;YACW,iBAAiB;IAU/B;;OAEG;IACG,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;IAkBjD;;OAEG;YACW,aAAa;IA0B3B;;OAEG;YACW,WAAW;IAsFzB,OAAO,CAAC,iBAAiB;YAQX,kBAAkB;IA8BhC;;OAEG;IACH,OAAO,CAAC,YAAY;IAiBpB;;OAEG;IACH,OAAO,CAAC,WAAW;IAsBnB;;;OAGG;IACG,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAS1B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAc5B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAS5B;;OAEG;IACH,iBAAiB,IAAI,cAAc;CAGpC;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,OAAO,CAE1D"}
|
package/dist/context.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAgB,SAAS,EAAoB,MAAM,SAAS,CAAC;AAEnG;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,cAAc,CAE9D;AAED;;;;;GAKG;AACH,qBAAa,cAAe,YAAW,UAAU;IAC/C,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;IAClB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACjD,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAElC,OAAO,CAAC,KAAK,CAA8B;IAC3C,OAAO,CAAC,YAAY,CAA2B;IAC/C,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,SAAS,CAA6B;IAC9C,OAAO,CAAC,gBAAgB,CAAgB;gBAE5B,OAAO,EAAE,OAAO;
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAgB,SAAS,EAAoB,MAAM,SAAS,CAAC;AAEnG;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,cAAc,CAE9D;AAED;;;;;GAKG;AACH,qBAAa,cAAe,YAAW,UAAU;IAC/C,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;IAClB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACjD,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAElC,OAAO,CAAC,KAAK,CAA8B;IAC3C,OAAO,CAAC,YAAY,CAA2B;IAC/C,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,SAAS,CAA6B;IAC9C,OAAO,CAAC,gBAAgB,CAAgB;gBAE5B,OAAO,EAAE,OAAO;IA8B5B;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,YAAY,CAY1B;IAEF;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,SAAS,CAmCzB;IAEF;;;OAGG;IACH,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAIlC;;;OAGG;IACH,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAInC;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB;;OAEG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAI5B;;OAEG;IACH,uBAAuB,IAAI,MAAM,GAAG,IAAI;IAuBxC;;OAEG;IACH,eAAe,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ;CA8B9C;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,cAAc,CAExE;AAQD,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,CAE7E;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,cAAc,GAAG,SAAS,CAEvE"}
|
package/dist/index.js
CHANGED
|
@@ -28,7 +28,11 @@ class RequestContext {
|
|
|
28
28
|
cookieMap = new Map;
|
|
29
29
|
setCookieHeaders = [];
|
|
30
30
|
constructor(request) {
|
|
31
|
-
|
|
31
|
+
try {
|
|
32
|
+
this.url = new URL(request.url);
|
|
33
|
+
} catch {
|
|
34
|
+
this.url = new URL("http://localhost/");
|
|
35
|
+
}
|
|
32
36
|
this.env = typeof process !== "undefined" ? process.env : {};
|
|
33
37
|
this.responseHeaders = new Headers;
|
|
34
38
|
const cookieHeader = request.headers.get("Cookie");
|
|
@@ -97,7 +101,8 @@ class RequestContext {
|
|
|
97
101
|
parts.push(`Path=${options?.path ?? "/"}`);
|
|
98
102
|
if (options?.domain)
|
|
99
103
|
parts.push(`Domain=${options.domain}`);
|
|
100
|
-
|
|
104
|
+
if (options?.httpOnly !== false)
|
|
105
|
+
parts.push("HttpOnly");
|
|
101
106
|
this.setCookieHeaders.push(parts.join("; "));
|
|
102
107
|
},
|
|
103
108
|
has: (name) => {
|
|
@@ -182,10 +187,10 @@ class PluginRegistry {
|
|
|
182
187
|
console.warn(`Plugin "${plugin.name}" is already registered, skipping duplicate`);
|
|
183
188
|
return;
|
|
184
189
|
}
|
|
185
|
-
this.plugins.push(plugin);
|
|
186
190
|
if (plugin.setup) {
|
|
187
191
|
await plugin.setup(this.context);
|
|
188
192
|
}
|
|
193
|
+
this.plugins.push(plugin);
|
|
189
194
|
}
|
|
190
195
|
async registerAll(plugins) {
|
|
191
196
|
for (const plugin of plugins) {
|
|
@@ -257,11 +262,20 @@ class PluginRegistry {
|
|
|
257
262
|
}
|
|
258
263
|
}
|
|
259
264
|
async buildEnd() {
|
|
265
|
+
let firstError = null;
|
|
260
266
|
for (const plugin of this.plugins) {
|
|
261
267
|
if (plugin.buildEnd) {
|
|
262
|
-
|
|
268
|
+
try {
|
|
269
|
+
await plugin.buildEnd();
|
|
270
|
+
} catch (error) {
|
|
271
|
+
console.error(`Plugin "${plugin.name}" buildEnd failed:`, error);
|
|
272
|
+
if (!firstError)
|
|
273
|
+
firstError = error;
|
|
274
|
+
}
|
|
263
275
|
}
|
|
264
276
|
}
|
|
277
|
+
if (firstError)
|
|
278
|
+
throw firstError;
|
|
265
279
|
}
|
|
266
280
|
}
|
|
267
281
|
function definePlugin(plugin) {
|
|
@@ -326,11 +340,20 @@ function composePlugins(name, plugins) {
|
|
|
326
340
|
}
|
|
327
341
|
},
|
|
328
342
|
async buildEnd() {
|
|
343
|
+
let firstError = null;
|
|
329
344
|
for (const plugin of plugins) {
|
|
330
345
|
if (plugin.buildEnd) {
|
|
331
|
-
|
|
346
|
+
try {
|
|
347
|
+
await plugin.buildEnd();
|
|
348
|
+
} catch (error) {
|
|
349
|
+
console.error(`Composed plugin "${plugin.name}" buildEnd failed:`, error);
|
|
350
|
+
if (!firstError)
|
|
351
|
+
firstError = error;
|
|
352
|
+
}
|
|
332
353
|
}
|
|
333
354
|
}
|
|
355
|
+
if (firstError)
|
|
356
|
+
throw firstError;
|
|
334
357
|
}
|
|
335
358
|
};
|
|
336
359
|
}
|
|
@@ -420,15 +443,24 @@ class EreoApp {
|
|
|
420
443
|
});
|
|
421
444
|
return context.applyToResponse(response);
|
|
422
445
|
} catch (error) {
|
|
423
|
-
|
|
446
|
+
const errorResponse = this.handleError(error, context);
|
|
447
|
+
return context.applyToResponse(errorResponse);
|
|
424
448
|
}
|
|
425
449
|
}
|
|
426
450
|
async runMiddleware(request, context, final) {
|
|
427
451
|
let index = 0;
|
|
428
452
|
const next = async () => {
|
|
429
453
|
if (index < this.middlewares.length) {
|
|
430
|
-
const
|
|
431
|
-
|
|
454
|
+
const currentIndex = index++;
|
|
455
|
+
const middleware = this.middlewares[currentIndex];
|
|
456
|
+
let called = false;
|
|
457
|
+
return middleware(request, context, async () => {
|
|
458
|
+
if (called) {
|
|
459
|
+
throw new Error("next() called multiple times in middleware");
|
|
460
|
+
}
|
|
461
|
+
called = true;
|
|
462
|
+
return next();
|
|
463
|
+
});
|
|
432
464
|
}
|
|
433
465
|
return final();
|
|
434
466
|
};
|
|
@@ -491,7 +523,7 @@ class EreoApp {
|
|
|
491
523
|
if (!basePath || basePath === "/") {
|
|
492
524
|
return "";
|
|
493
525
|
}
|
|
494
|
-
return basePath.replace(/\/+$/, "");
|
|
526
|
+
return basePath.replace(/\/{2,}/g, "/").replace(/\/+$/, "");
|
|
495
527
|
}
|
|
496
528
|
async getEffectiveMethod(request) {
|
|
497
529
|
const method = request.method.toUpperCase();
|
package/dist/plugin.d.ts
CHANGED
package/dist/plugin.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAiB,SAAS,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAEjF;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,OAAO,CAAgB;gBAEnB,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,aAAa,GAAG,YAAY,EAAE,IAAI,EAAE,MAAM;IAIrF;;OAEG;IACG,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAiB,SAAS,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAEjF;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,OAAO,CAAgB;gBAEnB,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,aAAa,GAAG,YAAY,EAAE,IAAI,EAAE,MAAM;IAIrF;;OAEG;IACG,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB7C;;OAEG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMnD;;OAEG;IACH,UAAU,IAAI,SAAS,MAAM,EAAE;IAI/B;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI3C;;OAEG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAoB1D;;OAEG;IACH,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAYpC;;OAEG;IACG,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAY9C;;;OAGG;IACG,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAcvD;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAQjC;;;OAGG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAchC;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAyEtE;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB,QAKhC,CAAC;AAEH;;GAEG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAOxD"}
|