@bgord/bun 0.29.13 → 0.29.14
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/basic-auth.service.d.ts +12 -0
- package/dist/basic-auth.service.d.ts.map +1 -1
- package/dist/basic-auth.service.js +14 -2
- package/dist/basic-auth.service.js.map +1 -1
- package/dist/better-auth-logger.service.d.ts.map +1 -1
- package/dist/better-auth-logger.service.js +2 -4
- package/dist/better-auth-logger.service.js.map +1 -1
- package/dist/clock-fixed.adapter.d.ts +1 -1
- package/dist/clock-fixed.adapter.d.ts.map +1 -1
- package/dist/clock-fixed.adapter.js +3 -3
- package/dist/clock-fixed.adapter.js.map +1 -1
- package/dist/command-logger.service.d.ts.map +1 -1
- package/dist/command-logger.service.js.map +1 -1
- package/dist/env-validator.service.d.ts +1 -0
- package/dist/env-validator.service.d.ts.map +1 -1
- package/dist/env-validator.service.js +2 -1
- package/dist/env-validator.service.js.map +1 -1
- package/dist/event-store.d.ts +1 -1
- package/dist/event-store.d.ts.map +1 -1
- package/dist/event-store.js +2 -2
- package/dist/event-store.js.map +1 -1
- package/dist/event-stream.vo.d.ts +3 -0
- package/dist/event-stream.vo.d.ts.map +1 -1
- package/dist/event-stream.vo.js +5 -1
- package/dist/event-stream.vo.js.map +1 -1
- package/dist/healthcheck.service.d.ts +44 -15
- package/dist/healthcheck.service.d.ts.map +1 -1
- package/dist/healthcheck.service.js +1 -1
- package/dist/healthcheck.service.js.map +1 -1
- package/dist/http-logger.middleware.js +2 -2
- package/dist/http-logger.middleware.js.map +1 -1
- package/dist/rate-limit-store-node-cache.adapter.d.ts +2 -2
- package/dist/rate-limit-store-node-cache.adapter.d.ts.map +1 -1
- package/dist/rate-limit-store-node-cache.adapter.js +5 -5
- package/dist/rate-limit-store-node-cache.adapter.js.map +1 -1
- package/dist/rate-limit-store.port.d.ts +1 -1
- package/dist/rate-limit-store.port.d.ts.map +1 -1
- package/dist/shield-rate-limit.middleware.js +1 -1
- package/dist/shield-rate-limit.middleware.js.map +1 -1
- package/dist/slower.middleware.d.ts +1 -1
- package/dist/slower.middleware.d.ts.map +1 -1
- package/dist/slower.middleware.js +2 -2
- package/dist/slower.middleware.js.map +1 -1
- package/dist/time-zone-offset.middleware.d.ts +3 -7
- package/dist/time-zone-offset.middleware.d.ts.map +1 -1
- package/dist/time-zone-offset.middleware.js +5 -10
- package/dist/time-zone-offset.middleware.js.map +1 -1
- package/dist/translations.service.d.ts +5 -3
- package/dist/translations.service.d.ts.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/uptime.service.d.ts +2 -1
- package/dist/uptime.service.d.ts.map +1 -1
- package/dist/uptime.service.js +4 -4
- package/dist/uptime.service.js.map +1 -1
- package/package.json +4 -4
- package/src/basic-auth.service.ts +14 -2
- package/src/better-auth-logger.service.ts +3 -4
- package/src/clock-fixed.adapter.ts +3 -3
- package/src/command-logger.service.ts +0 -1
- package/src/env-validator.service.ts +3 -1
- package/src/event-store.ts +2 -6
- package/src/event-stream.vo.ts +6 -1
- package/src/healthcheck.service.ts +3 -2
- package/src/http-logger.middleware.ts +2 -2
- package/src/rate-limit-store-node-cache.adapter.ts +3 -3
- package/src/rate-limit-store.port.ts +1 -1
- package/src/shield-rate-limit.middleware.ts +1 -1
- package/src/slower.middleware.ts +2 -2
- package/src/time-zone-offset.middleware.ts +6 -21
- package/src/uptime.service.ts +6 -7
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
import { z } from "zod/v4";
|
|
2
|
+
export declare const BasicAuthUsernameTypeError: {
|
|
3
|
+
readonly error: "basic.auth.username.invalid_type";
|
|
4
|
+
};
|
|
5
|
+
export declare const BasicAuthUsernameLengthError: {
|
|
6
|
+
readonly error: "basic.auth.username.invalid_length";
|
|
7
|
+
};
|
|
2
8
|
export declare const BasicAuthUsername: z.core.$ZodBranded<z.ZodString, "BasicAuthUsername">;
|
|
3
9
|
export type BasicAuthUsernameType = z.infer<typeof BasicAuthUsername>;
|
|
10
|
+
export declare const BasicAuthPasswordTypeError: {
|
|
11
|
+
readonly error: "basic.auth.password.invalid_type";
|
|
12
|
+
};
|
|
13
|
+
export declare const BasicAuthPasswordLengthError: {
|
|
14
|
+
readonly error: "basic.auth.password.invalid_length";
|
|
15
|
+
};
|
|
4
16
|
export declare const BasicAuthPassword: z.core.$ZodBranded<z.ZodString, "BasicAuthPassword">;
|
|
5
17
|
export type BasicAuthPasswordType = z.infer<typeof BasicAuthPassword>;
|
|
6
18
|
type BasicAuthHeaderValueType = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"basic-auth.service.d.ts","sourceRoot":"","sources":["../src/basic-auth.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,eAAO,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"basic-auth.service.d.ts","sourceRoot":"","sources":["../src/basic-auth.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,eAAO,MAAM,0BAA0B;;CAAyD,CAAC;AACjG,eAAO,MAAM,4BAA4B;;CAA2D,CAAC;AACrG,eAAO,MAAM,iBAAiB,sDAID,CAAC;AAC9B,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAEtE,eAAO,MAAM,0BAA0B;;CAAyD,CAAC;AACjG,eAAO,MAAM,4BAA4B;;CAA2D,CAAC;AACrG,eAAO,MAAM,iBAAiB,sDAID,CAAC;AAC9B,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAEtE,KAAK,wBAAwB,GAAG;IAAE,aAAa,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1D,qBAAa,SAAS;IACpB,MAAM,CAAC,aAAa,CAClB,QAAQ,EAAE,qBAAqB,EAC/B,QAAQ,EAAE,qBAAqB,GAC9B,wBAAwB;IAI3B,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,EAAE,QAAQ,EAAE,qBAAqB,GAAG,OAAO;CAG3F"}
|
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
import { z } from "zod/v4";
|
|
2
|
-
export const
|
|
3
|
-
export const
|
|
2
|
+
export const BasicAuthUsernameTypeError = { error: "basic.auth.username.invalid_type" };
|
|
3
|
+
export const BasicAuthUsernameLengthError = { error: "basic.auth.username.invalid_length" };
|
|
4
|
+
export const BasicAuthUsername = z
|
|
5
|
+
.string(BasicAuthUsernameTypeError)
|
|
6
|
+
.min(1, BasicAuthUsernameLengthError)
|
|
7
|
+
.max(128, BasicAuthUsernameLengthError)
|
|
8
|
+
.brand("BasicAuthUsername");
|
|
9
|
+
export const BasicAuthPasswordTypeError = { error: "basic.auth.password.invalid_type" };
|
|
10
|
+
export const BasicAuthPasswordLengthError = { error: "basic.auth.password.invalid_length" };
|
|
11
|
+
export const BasicAuthPassword = z
|
|
12
|
+
.string(BasicAuthPasswordTypeError)
|
|
13
|
+
.min(1, BasicAuthPasswordLengthError)
|
|
14
|
+
.max(128, BasicAuthPasswordLengthError)
|
|
15
|
+
.brand("BasicAuthPassword");
|
|
4
16
|
export class BasicAuth {
|
|
5
17
|
static toHeaderValue(username, password) {
|
|
6
18
|
return { authorization: `Basic ${btoa(`${username}:${password}`)}` };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"basic-auth.service.js","sourceRoot":"","sources":["../src/basic-auth.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"basic-auth.service.js","sourceRoot":"","sources":["../src/basic-auth.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,MAAM,CAAC,MAAM,0BAA0B,GAAG,EAAE,KAAK,EAAE,kCAAkC,EAAW,CAAC;AACjG,MAAM,CAAC,MAAM,4BAA4B,GAAG,EAAE,KAAK,EAAE,oCAAoC,EAAW,CAAC;AACrG,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAC/B,MAAM,CAAC,0BAA0B,CAAC;KAClC,GAAG,CAAC,CAAC,EAAE,4BAA4B,CAAC;KACpC,GAAG,CAAC,GAAG,EAAE,4BAA4B,CAAC;KACtC,KAAK,CAAC,mBAAmB,CAAC,CAAC;AAG9B,MAAM,CAAC,MAAM,0BAA0B,GAAG,EAAE,KAAK,EAAE,kCAAkC,EAAW,CAAC;AACjG,MAAM,CAAC,MAAM,4BAA4B,GAAG,EAAE,KAAK,EAAE,oCAAoC,EAAW,CAAC;AACrG,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAC/B,MAAM,CAAC,0BAA0B,CAAC;KAClC,GAAG,CAAC,CAAC,EAAE,4BAA4B,CAAC;KACpC,GAAG,CAAC,GAAG,EAAE,4BAA4B,CAAC;KACtC,KAAK,CAAC,mBAAmB,CAAC,CAAC;AAK9B,MAAM,OAAO,SAAS;IACpB,MAAM,CAAC,aAAa,CAClB,QAA+B,EAC/B,QAA+B;QAE/B,OAAO,EAAE,aAAa,EAAE,SAAS,IAAI,CAAC,GAAG,QAAQ,IAAI,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;IACvE,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,QAA+B,EAAE,QAA+B;QAC9E,OAAO,IAAI,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IAClE,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"better-auth-logger.service.d.ts","sourceRoot":"","sources":["../src/better-auth-logger.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,KAAK,UAAU,EAAgB,MAAM,eAAe,CAAC;AAG9D,qBAAa,gBAAgB;IACf,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,UAAU;IAE/C,MAAM;;;4BAIS,QAAQ,GAAG,SAAS,WAAW,MAAM,WAAW,OAAO,EAAE;;
|
|
1
|
+
{"version":3,"file":"better-auth-logger.service.d.ts","sourceRoot":"","sources":["../src/better-auth-logger.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,KAAK,UAAU,EAAgB,MAAM,eAAe,CAAC;AAG9D,qBAAa,gBAAgB;IACf,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,UAAU;IAE/C,MAAM;;;4BAIS,QAAQ,GAAG,SAAS,WAAW,MAAM,WAAW,OAAO,EAAE;;IAwBxE,OAAO,CAAC,QAAQ;CAQjB"}
|
|
@@ -14,10 +14,8 @@ export class BetterAuthLogger {
|
|
|
14
14
|
const base = { component: "infra", operation: "better-auth", message, metadata: { args } };
|
|
15
15
|
switch (level) {
|
|
16
16
|
case LogLevelEnum.error: {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
error: formatError(args.find((a) => a instanceof Error) ?? new Error(message)),
|
|
20
|
-
});
|
|
17
|
+
const error = formatError(args.find((a) => a instanceof Error) ?? new Error(message));
|
|
18
|
+
this.logger.error({ ...base, error });
|
|
21
19
|
break;
|
|
22
20
|
}
|
|
23
21
|
case LogLevelEnum.warn: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"better-auth-logger.service.js","sourceRoot":"","sources":["../src/better-auth-logger.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAmB,YAAY,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAE5D,MAAM,OAAO,gBAAgB;IACE;IAA7B,YAA6B,MAAkB;QAAlB,WAAM,GAAN,MAAM,CAAY;IAAG,CAAC;IAEnD,MAAM;QACJ,OAAO;YACL,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,OAAO;YACd,GAAG,EAAE,CAAC,GAAyB,EAAE,OAAe,EAAE,GAAG,IAAe,EAAE,EAAE;gBACtE,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gBACjC,MAAM,IAAI,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAW,CAAC;gBAEpG,QAAQ,KAAK,EAAE,CAAC;oBACd,KAAK,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;wBACxB,
|
|
1
|
+
{"version":3,"file":"better-auth-logger.service.js","sourceRoot":"","sources":["../src/better-auth-logger.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAmB,YAAY,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAE5D,MAAM,OAAO,gBAAgB;IACE;IAA7B,YAA6B,MAAkB;QAAlB,WAAM,GAAN,MAAM,CAAY;IAAG,CAAC;IAEnD,MAAM;QACJ,OAAO;YACL,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,OAAO;YACd,GAAG,EAAE,CAAC,GAAyB,EAAE,OAAe,EAAE,GAAG,IAAe,EAAE,EAAE;gBACtE,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gBACjC,MAAM,IAAI,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAW,CAAC;gBAEpG,QAAQ,KAAK,EAAE,CAAC;oBACd,KAAK,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;wBACxB,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;wBAEtF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;wBACtC,MAAM;oBACR,CAAC;oBACD,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;wBACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBACvB,MAAM;oBACR,CAAC;oBACD,OAAO,CAAC,CAAC,CAAC;wBACR,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBACvB,MAAM;oBACR,CAAC;gBACH,CAAC;YACH,CAAC;SACO,CAAC;IACb,CAAC;IAEO,QAAQ,CAAC,KAA2B;QAC1C,IAAI,KAAK,KAAK,MAAM;YAAE,OAAO,YAAY,CAAC,IAAI,CAAC;QAC/C,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,YAAY,CAAC,IAAI,CAAC;QAClD,IAAI,KAAK,KAAK,MAAM;YAAE,OAAO,YAAY,CAAC,IAAI,CAAC;QAC/C,IAAI,KAAK,KAAK,OAAO;YAAE,OAAO,YAAY,CAAC,KAAK,CAAC;QACjD,IAAI,KAAK,KAAK,OAAO;YAAE,OAAO,YAAY,CAAC,IAAI,CAAC;QAChD,OAAO,YAAY,CAAC,IAAI,CAAC;IAC3B,CAAC;CACF"}
|
|
@@ -5,6 +5,6 @@ export declare class ClockFixedAdapter implements ClockPort {
|
|
|
5
5
|
constructor(candidate: number);
|
|
6
6
|
nowMs(): number & import("zod").$brand<"Timestamp">;
|
|
7
7
|
now(): ReturnType<typeof tools.Time.Now>;
|
|
8
|
-
advanceBy(
|
|
8
|
+
advanceBy(duration: tools.Duration): void;
|
|
9
9
|
}
|
|
10
10
|
//# sourceMappingURL=clock-fixed.adapter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clock-fixed.adapter.d.ts","sourceRoot":"","sources":["../src/clock-fixed.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,qBAAa,iBAAkB,YAAW,SAAS;IACjD,OAAO,CAAC,KAAK,CAAsB;gBAEvB,SAAS,EAAE,MAAM;IAI7B,KAAK;IAIL,GAAG,IAAI,UAAU,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;IAIxC,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"clock-fixed.adapter.d.ts","sourceRoot":"","sources":["../src/clock-fixed.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,qBAAa,iBAAkB,YAAW,SAAS;IACjD,OAAO,CAAC,KAAK,CAAsB;gBAEvB,SAAS,EAAE,MAAM;IAI7B,KAAK;IAIL,GAAG,IAAI,UAAU,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;IAIxC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,GAAG,IAAI;CAG1C"}
|
|
@@ -5,13 +5,13 @@ export class ClockFixedAdapter {
|
|
|
5
5
|
this.value = tools.Timestamp.parse(candidate);
|
|
6
6
|
}
|
|
7
7
|
nowMs() {
|
|
8
|
-
return
|
|
8
|
+
return this.value;
|
|
9
9
|
}
|
|
10
10
|
now() {
|
|
11
11
|
return tools.Time.Now(this.value);
|
|
12
12
|
}
|
|
13
|
-
advanceBy(
|
|
14
|
-
this.value = tools.
|
|
13
|
+
advanceBy(duration) {
|
|
14
|
+
this.value = tools.Time.Now(this.value).Add(duration);
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
17
|
//# sourceMappingURL=clock-fixed.adapter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clock-fixed.adapter.js","sourceRoot":"","sources":["../src/clock-fixed.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAGtC,MAAM,OAAO,iBAAiB;IACpB,KAAK,CAAsB;IAEnC,YAAY,SAAiB;QAC3B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAChD,CAAC;IAED,KAAK;QACH,OAAO,
|
|
1
|
+
{"version":3,"file":"clock-fixed.adapter.js","sourceRoot":"","sources":["../src/clock-fixed.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAGtC,MAAM,OAAO,iBAAiB;IACpB,KAAK,CAAsB;IAEnC,YAAY,SAAiB;QAC3B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAChD,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,GAAG;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,SAAS,CAAC,QAAwB;QAChC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACxD,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-logger.service.d.ts","sourceRoot":"","sources":["../src/command-logger.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,qBAAa,aAAa;IAGZ,OAAO,CAAC,QAAQ,CAAC,MAAM;IAFnC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAwD;gBAEhD,MAAM,EAAE,UAAU;IAE/C,OAAO,CAAC,OAAO;
|
|
1
|
+
{"version":3,"file":"command-logger.service.d.ts","sourceRoot":"","sources":["../src/command-logger.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,qBAAa,aAAa;IAGZ,OAAO,CAAC,QAAQ,CAAC,MAAM;IAFnC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAwD;gBAEhD,MAAM,EAAE,UAAU;IAE/C,OAAO,CAAC,OAAO;IAYf,MAAM,SAXE,MAAM,cACA,MAAM,eACL,MAAM,GAAG,SAAS,eAClB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,UAQb;CAClC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-logger.service.js","sourceRoot":"","sources":["../src/command-logger.service.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,aAAa;IAGK;IAFZ,IAAI,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAE7E,YAA6B,MAAkB;QAAlB,WAAM,GAAN,MAAM,CAAY;IAAG,CAAC;IAE3C,OAAO,CACb,IAAY,EACZ,UAAkB,EAClB,WAA+B,EAC/B,WAA4C;QAE5C,IAAI,IAAI,KAAK,WAAW;YAAE,OAAO;
|
|
1
|
+
{"version":3,"file":"command-logger.service.js","sourceRoot":"","sources":["../src/command-logger.service.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,aAAa;IAGK;IAFZ,IAAI,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAE7E,YAA6B,MAAkB;QAAlB,WAAM,GAAN,MAAM,CAAY;IAAG,CAAC;IAE3C,OAAO,CACb,IAAY,EACZ,UAAkB,EAClB,WAA+B,EAC/B,WAA4C;QAE5C,IAAI,IAAI,KAAK,WAAW;YAAE,OAAO;QACjC,IAAI,OAAO,WAAW,KAAK,QAAQ;YAAE,OAAO;QAE5C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,WAAW,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC/F,CAAC;IAED,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;CAClC"}
|
|
@@ -6,6 +6,7 @@ type EnvironmentValidatorConfig = {
|
|
|
6
6
|
type: unknown;
|
|
7
7
|
schema: AnyZodSchema;
|
|
8
8
|
};
|
|
9
|
+
export declare const InvalidNodeEnvironmentError: "invalid.node.environment";
|
|
9
10
|
export declare class EnvironmentValidator<SchemaType> {
|
|
10
11
|
type: NodeEnvironmentEnumType;
|
|
11
12
|
schema: z.Schema<SchemaType>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env-validator.service.d.ts","sourceRoot":"","sources":["../src/env-validator.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,KAAK,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAC/D,KAAK,YAAY,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC1C,KAAK,0BAA0B,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,CAAC;AAE1E,qBAAa,oBAAoB,CAAC,UAAU;IAC1C,IAAI,EAAE,uBAAuB,CAAC;IAC9B,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBAEjB,MAAM,EAAE,0BAA0B;IAa9C,IAAI,IAAI,UAAU,GAAG;QAAE,IAAI,EAAE,uBAAuB,CAAA;KAAE;CAGvD"}
|
|
1
|
+
{"version":3,"file":"env-validator.service.d.ts","sourceRoot":"","sources":["../src/env-validator.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,KAAK,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAC/D,KAAK,YAAY,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC1C,KAAK,0BAA0B,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,CAAC;AAE1E,eAAO,MAAM,2BAA2B,EAAG,0BAAmC,CAAC;AAE/E,qBAAa,oBAAoB,CAAC,UAAU;IAC1C,IAAI,EAAE,uBAAuB,CAAC;IAC9B,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBAEjB,MAAM,EAAE,0BAA0B;IAa9C,IAAI,IAAI,UAAU,GAAG;QAAE,IAAI,EAAE,uBAAuB,CAAA;KAAE;CAGvD"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { NodeEnvironment } from "../src/node-env.vo";
|
|
2
|
+
export const InvalidNodeEnvironmentError = "invalid.node.environment";
|
|
2
3
|
export class EnvironmentValidator {
|
|
3
4
|
type;
|
|
4
5
|
schema;
|
|
@@ -9,7 +10,7 @@ export class EnvironmentValidator {
|
|
|
9
10
|
this.type = result.data;
|
|
10
11
|
return;
|
|
11
12
|
}
|
|
12
|
-
throw new Error(
|
|
13
|
+
throw new Error(InvalidNodeEnvironmentError);
|
|
13
14
|
}
|
|
14
15
|
load() {
|
|
15
16
|
return { ...this.schema.parse(process.env), type: this.type };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env-validator.service.js","sourceRoot":"","sources":["../src/env-validator.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAMrD,MAAM,OAAO,oBAAoB;IAC/B,IAAI,CAA0B;IAC9B,MAAM,CAAuB;IAE7B,YAAY,MAAkC;QAC5C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAE5B,MAAM,MAAM,GAAG,eAAe,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAEtD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;YACxB,OAAO;QACT,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"env-validator.service.js","sourceRoot":"","sources":["../src/env-validator.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAMrD,MAAM,CAAC,MAAM,2BAA2B,GAAG,0BAAmC,CAAC;AAE/E,MAAM,OAAO,oBAAoB;IAC/B,IAAI,CAA0B;IAC9B,MAAM,CAAuB;IAE7B,YAAY,MAAkC;QAC5C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAE5B,MAAM,MAAM,GAAG,eAAe,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAEtD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;YACxB,OAAO;QACT,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI;QACF,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;IAChE,CAAC;CACF"}
|
package/dist/event-store.d.ts
CHANGED
|
@@ -15,7 +15,7 @@ export declare class EventStore<AllEvents extends GenericEventSchema> {
|
|
|
15
15
|
static EMPTY_STREAM_REVISION: number;
|
|
16
16
|
find<AcceptedEvents extends readonly AllEvents[]>(acceptedEvents: AcceptedEvents, stream: EventStreamType): Promise<z.infer<AcceptedEvents[number]>[]>;
|
|
17
17
|
save(events: z.infer<AllEvents>[]): Promise<z.infer<AllEvents>[]>;
|
|
18
|
-
saveAfter(events: z.infer<AllEvents>[],
|
|
18
|
+
saveAfter(events: z.infer<AllEvents>[], offset: tools.Duration): Promise<z.infer<AllEvents>[]>;
|
|
19
19
|
}
|
|
20
20
|
export declare class EventStoreSaveUniqueStream extends Error {
|
|
21
21
|
constructor();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-store.d.ts","sourceRoot":"","sources":["../src/event-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAClF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAEzE,KAAK,iBAAiB,GAAG,CACvB,MAAM,EAAE,eAAe,EACvB,mBAAmB,EAAE,aAAa,EAAE,KACjC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;AAE5C,KAAK,qBAAqB,GAAG,CAC3B,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,wBAAwB,CAAC,EAAE,KACxC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC;AAElD,KAAK,oBAAoB,GAAG;IAAE,MAAM,EAAE,iBAAiB,CAAC;IAAC,QAAQ,EAAE,qBAAqB,CAAA;CAAE,CAAC;AAE3F,qBAAa,UAAU,CAAC,SAAS,SAAS,kBAAkB;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,oBAAoB;IAEzD,MAAM,CAAC,qBAAqB,SAAM;IAE5B,IAAI,CAAC,cAAc,SAAS,SAAS,SAAS,EAAE,EACpD,cAAc,EAAE,cAAc,EAC9B,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;IAWvC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;IAmBjE,SAAS,
|
|
1
|
+
{"version":3,"file":"event-store.d.ts","sourceRoot":"","sources":["../src/event-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAClF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAEzE,KAAK,iBAAiB,GAAG,CACvB,MAAM,EAAE,eAAe,EACvB,mBAAmB,EAAE,aAAa,EAAE,KACjC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;AAE5C,KAAK,qBAAqB,GAAG,CAC3B,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,wBAAwB,CAAC,EAAE,KACxC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC;AAElD,KAAK,oBAAoB,GAAG;IAAE,MAAM,EAAE,iBAAiB,CAAC;IAAC,QAAQ,EAAE,qBAAqB,CAAA;CAAE,CAAC;AAE3F,qBAAa,UAAU,CAAC,SAAS,SAAS,kBAAkB;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,oBAAoB;IAEzD,MAAM,CAAC,qBAAqB,SAAM;IAE5B,IAAI,CAAC,cAAc,SAAS,SAAS,SAAS,EAAE,EACpD,cAAc,EAAE,cAAc,EAC9B,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;IAWvC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;IAmBjE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;CAIrG;AAED,qBAAa,0BAA2B,SAAQ,KAAK;;CAKpD"}
|
package/dist/event-store.js
CHANGED
package/dist/event-store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-store.js","sourceRoot":"","sources":["../src/event-store.ts"],"names":[],"mappings":"AAkBA,MAAM,OAAO,UAAU;IACQ;IAA7B,YAA6B,MAA4B;QAA5B,WAAM,GAAN,MAAM,CAAsB;IAAG,CAAC;IAE7D,MAAM,CAAC,qBAAqB,GAAG,CAAC,CAAC,CAAC;IAElC,KAAK,CAAC,IAAI,CACR,cAA8B,EAC9B,MAAuB;QAEvB,MAAM,mBAAmB,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAElF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;QAEnE,OAAO,IAAI;aACR,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;aAC5D,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;aAC7F,MAAM,CAAC,CAAC,KAAK,EAA4C,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;IACtF,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAA4B;QACrC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAAE,OAAO,EAAE,CAAC;QAE1B,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAEhC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC;YAAE,MAAM,IAAI,0BAA0B,EAAE,CAAC;QAE9F,yEAAyE;QACzE,mDAAmD;QACnD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAC1C,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAC9E,CAAC;QAEF,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC/B,GAAG,KAAK;YACR,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC;SACnC,CAAC,CAAyB,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,SAAS,
|
|
1
|
+
{"version":3,"file":"event-store.js","sourceRoot":"","sources":["../src/event-store.ts"],"names":[],"mappings":"AAkBA,MAAM,OAAO,UAAU;IACQ;IAA7B,YAA6B,MAA4B;QAA5B,WAAM,GAAN,MAAM,CAAsB;IAAG,CAAC;IAE7D,MAAM,CAAC,qBAAqB,GAAG,CAAC,CAAC,CAAC;IAElC,KAAK,CAAC,IAAI,CACR,cAA8B,EAC9B,MAAuB;QAEvB,MAAM,mBAAmB,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAElF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;QAEnE,OAAO,IAAI;aACR,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;aAC5D,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;aAC7F,MAAM,CAAC,CAAC,KAAK,EAA4C,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;IACtF,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAA4B;QACrC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAAE,OAAO,EAAE,CAAC;QAE1B,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAEhC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC;YAAE,MAAM,IAAI,0BAA0B,EAAE,CAAC;QAE9F,yEAAyE;QACzE,mDAAmD;QACnD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAC1C,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAC9E,CAAC;QAEF,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC/B,GAAG,KAAK;YACR,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC;SACnC,CAAC,CAAyB,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAA4B,EAAE,MAAsB;QAClE,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;;AAGH,MAAM,OAAO,0BAA2B,SAAQ,KAAK;IACnD;QACE,KAAK,EAAE,CAAC;QACR,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,0BAA0B,CAAC,SAAS,CAAC,CAAC;IACpE,CAAC;CACF"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import { z } from "zod/v4";
|
|
2
|
+
export declare const EventStreamInvalidError: {
|
|
3
|
+
readonly error: "event.stream.invalid.error";
|
|
4
|
+
};
|
|
2
5
|
export declare const EventStream: z.ZodString;
|
|
3
6
|
export type EventStreamType = z.infer<typeof EventStream>;
|
|
4
7
|
//# sourceMappingURL=event-stream.vo.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-stream.vo.d.ts","sourceRoot":"","sources":["../src/event-stream.vo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,eAAO,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"event-stream.vo.d.ts","sourceRoot":"","sources":["../src/event-stream.vo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,eAAO,MAAM,uBAAuB;;CAAmD,CAAC;AAExF,eAAO,MAAM,WAAW,aAGY,CAAC;AACrC,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC"}
|
package/dist/event-stream.vo.js
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
1
|
import { z } from "zod/v4";
|
|
2
|
-
export const
|
|
2
|
+
export const EventStreamInvalidError = { error: "event.stream.invalid.error" };
|
|
3
|
+
export const EventStream = z
|
|
4
|
+
.string(EventStreamInvalidError)
|
|
5
|
+
.min(1, EventStreamInvalidError)
|
|
6
|
+
.max(256, EventStreamInvalidError);
|
|
3
7
|
//# sourceMappingURL=event-stream.vo.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-stream.vo.js","sourceRoot":"","sources":["../src/event-stream.vo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"event-stream.vo.js","sourceRoot":"","sources":["../src/event-stream.vo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,KAAK,EAAE,4BAA4B,EAAW,CAAC;AAExF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC;KACzB,MAAM,CAAC,uBAAuB,CAAC;KAC/B,GAAG,CAAC,CAAC,EAAE,uBAAuB,CAAC;KAC/B,GAAG,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC"}
|
|
@@ -1,25 +1,54 @@
|
|
|
1
1
|
import * as tools from "@bgord/tools";
|
|
2
2
|
import type { ClockPort } from "./clock.port";
|
|
3
3
|
import * as prereqs from "./prerequisites.service";
|
|
4
|
-
import { type UptimeResultType } from "./uptime.service";
|
|
5
|
-
type HealthcheckResultType = {
|
|
6
|
-
ok: prereqs.PrerequisiteStatusEnum;
|
|
7
|
-
version: string;
|
|
8
|
-
details: {
|
|
9
|
-
label: prereqs.PrerequisiteLabelType;
|
|
10
|
-
outcome: prereqs.VerifyOutcome;
|
|
11
|
-
}[];
|
|
12
|
-
uptime: UptimeResultType;
|
|
13
|
-
memory: {
|
|
14
|
-
bytes: tools.Size["bytes"];
|
|
15
|
-
formatted: ReturnType<tools.Size["format"]>;
|
|
16
|
-
};
|
|
17
|
-
} & tools.StopwatchResultType;
|
|
18
4
|
type Dependencies = {
|
|
19
5
|
Clock: ClockPort;
|
|
20
6
|
};
|
|
21
7
|
export declare class Healthcheck {
|
|
22
|
-
static build: (prerequisites: prereqs.Prerequisite[], deps: Dependencies) => [import("hono/types").H<import("hono").Env, string, {}, Promise<import("hono
|
|
8
|
+
static build: (prerequisites: prereqs.Prerequisite[], deps: Dependencies) => [import("hono/types").H<import("hono").Env, string, {}, Promise<Response & import("hono").TypedResponse<{
|
|
9
|
+
ok: prereqs.PrerequisiteStatusEnum;
|
|
10
|
+
version: string;
|
|
11
|
+
details: {
|
|
12
|
+
label: prereqs.PrerequisiteLabelType;
|
|
13
|
+
outcome: {
|
|
14
|
+
readonly status: prereqs.PrerequisiteStatusEnum.success;
|
|
15
|
+
} | {
|
|
16
|
+
readonly status: prereqs.PrerequisiteStatusEnum.failure;
|
|
17
|
+
readonly error?: {
|
|
18
|
+
name?: string | undefined;
|
|
19
|
+
message?: string | undefined;
|
|
20
|
+
stack?: string | undefined;
|
|
21
|
+
code?: string | undefined;
|
|
22
|
+
cause?: {
|
|
23
|
+
name?: string | undefined;
|
|
24
|
+
message?: string | undefined;
|
|
25
|
+
} | undefined;
|
|
26
|
+
} | undefined;
|
|
27
|
+
} | {
|
|
28
|
+
readonly status: prereqs.PrerequisiteStatusEnum.undetermined;
|
|
29
|
+
};
|
|
30
|
+
}[];
|
|
31
|
+
uptime: {
|
|
32
|
+
duration: {
|
|
33
|
+
readonly days: number;
|
|
34
|
+
readonly hours: number;
|
|
35
|
+
readonly minutes: number;
|
|
36
|
+
readonly seconds: number;
|
|
37
|
+
readonly ms: tools.DurationMsType;
|
|
38
|
+
isLongerThan: never;
|
|
39
|
+
isShorterThan: never;
|
|
40
|
+
equals: never;
|
|
41
|
+
add: never;
|
|
42
|
+
subtract: never;
|
|
43
|
+
};
|
|
44
|
+
formatted: ReturnType<(typeof tools.DateFormatters)["relative"]>;
|
|
45
|
+
};
|
|
46
|
+
memory: {
|
|
47
|
+
bytes: tools.Size["bytes"];
|
|
48
|
+
formatted: ReturnType<tools.Size["format"]>;
|
|
49
|
+
};
|
|
50
|
+
durationMs: tools.Duration["ms"];
|
|
51
|
+
}, 200 | 424, "json">>>];
|
|
23
52
|
}
|
|
24
53
|
export {};
|
|
25
54
|
//# sourceMappingURL=healthcheck.service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"healthcheck.service.d.ts","sourceRoot":"","sources":["../src/healthcheck.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAGtC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,KAAK,OAAO,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"healthcheck.service.d.ts","sourceRoot":"","sources":["../src/healthcheck.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAGtC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,KAAK,OAAO,MAAM,yBAAyB,CAAC;AAcnD,KAAK,YAAY,GAAG;IAAE,KAAK,EAAE,SAAS,CAAA;CAAE,CAAC;AAEzC,qBAAa,WAAW;IACtB,MAAM,CAAC,KAAK,GAAI,eAAe,OAAO,CAAC,YAAY,EAAE,EAAE,MAAM,YAAY;YAXrE,OAAO,CAAC,sBAAsB;iBACzB,MAAM;;mBACG,OAAO,CAAC,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mCAVhC,2BAA2B;;;mBAYzB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;uBAAa,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;;oBACrE,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;6BAqC3B;CACN"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"healthcheck.service.js","sourceRoot":"","sources":["../src/healthcheck.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAEtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,OAAO,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAyB,MAAM,kBAAkB,CAAC;AAEjE,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"healthcheck.service.js","sourceRoot":"","sources":["../src/healthcheck.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAEtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,OAAO,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAyB,MAAM,kBAAkB,CAAC;AAEjE,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;AAahC,MAAM,OAAO,WAAW;IACtB,MAAM,CAAC,KAAK,GAAG,CAAC,aAAqC,EAAE,IAAkB,EAAE,EAAE,CAC3E,OAAO,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;QACjC,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QAE1D,MAAM,KAAK,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAEtD,MAAM,OAAO,GAA+C,EAAE,CAAC;QAE/D,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;YACzC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACpF,CAAC;QAED,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,sBAAsB,CAAC,OAAO,CAAC;YACpG,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC,OAAO;YACxC,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC,OAAO,CAAC;QAE3C,MAAM,IAAI,GAAG,EAAE,KAAK,OAAO,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAEvE,MAAM,MAAM,GAA0B;YACpC,EAAE;YACF,OAAO;YACP,OAAO,EAAE,KAAK,CAAC,aAAa,IAAI,SAAS;YACzC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;YAC9B,MAAM,EAAE;gBACN,KAAK,EAAE,iBAAiB,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE;gBACxC,SAAS,EAAE,iBAAiB,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;aAC7D;YACD,UAAU,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE;SAChC,CAAC;QAEF,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC"}
|
|
@@ -54,7 +54,7 @@ export class HttpLogger {
|
|
|
54
54
|
});
|
|
55
55
|
const stopwatch = new tools.Stopwatch(deps.Clock.nowMs());
|
|
56
56
|
await next();
|
|
57
|
-
const
|
|
57
|
+
const duration = stopwatch.stop();
|
|
58
58
|
const response = c.res.clone();
|
|
59
59
|
deps.Logger.http({
|
|
60
60
|
component: "http",
|
|
@@ -64,7 +64,7 @@ export class HttpLogger {
|
|
|
64
64
|
method: request.method,
|
|
65
65
|
url: request.url,
|
|
66
66
|
status: response.status,
|
|
67
|
-
durationMs,
|
|
67
|
+
durationMs: duration.ms,
|
|
68
68
|
client,
|
|
69
69
|
cacheHit: response.headers.get(CacheResponse.CACHE_HIT_HEADER) === CacheHitEnum.hit,
|
|
70
70
|
metadata: { response: await HttpLogger.parseJSON(response) },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-logger.middleware.js","sourceRoot":"","sources":["../src/http-logger.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,CAAC,MAAM,QAAQ,CAAC;AACvB,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAK5D,MAAM,qBAAqB,GAAG;IAC5B,QAAQ;IACR,iBAAiB;IACjB,eAAe;IACf,YAAY;IACZ,gBAAgB;IAChB,cAAc;IACd,QAAQ;IACR,KAAK;IACL,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,SAAS;IACT,2BAA2B;IAC3B,YAAY;IACZ,eAAe;CAChB,CAAC;AAMF,MAAM,OAAO,UAAU;IACrB,MAAM,CAAC,KAAK,GAAG,CAAC,IAAkB,EAAE,OAA2B,EAAE,EAAE,CACjE,gBAAgB,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;QACjC,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;QAElC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;QAE/C,IAAI,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;YACjE,MAAM,IAAI,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QAED,MAAM,aAAa,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAAsB,CAAC;QAC9D,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAElD,MAAM,yBAAyB,GAAG;YAChC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE;YACrB,mBAAmB;YACnB,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,qBAAqB,CAAC;YAC3E,IAAI,EAAE,MAAM,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC;YACzC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE;SACvB,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACf,SAAS,EAAE,MAAM;YACjB,SAAS,EAAE,qBAAqB;YAChC,aAAa;YACb,OAAO,EAAE,SAAS;YAClB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,MAAM;YACN,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,yBAAyB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SAC5E,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QAC1D,MAAM,IAAI,EAAE,CAAC;QACb,MAAM,
|
|
1
|
+
{"version":3,"file":"http-logger.middleware.js","sourceRoot":"","sources":["../src/http-logger.middleware.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type * as tools from "@bgord/tools";
|
|
2
2
|
import type { RateLimitStore, RateLimitStoreSubjectType } from "./rate-limit-store.port";
|
|
3
3
|
export declare class RateLimitStoreNodeCache implements RateLimitStore {
|
|
4
|
-
readonly
|
|
4
|
+
readonly ttl: tools.Duration;
|
|
5
5
|
private readonly store;
|
|
6
|
-
constructor(
|
|
6
|
+
constructor(ttl: tools.Duration);
|
|
7
7
|
get(subject: RateLimitStoreSubjectType): Promise<tools.RateLimiter | undefined>;
|
|
8
8
|
set(subject: RateLimitStoreSubjectType, limiter: tools.RateLimiter): Promise<void>;
|
|
9
9
|
flushAll(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rate-limit-store-node-cache.adapter.d.ts","sourceRoot":"","sources":["../src/rate-limit-store-node-cache.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAE3C,OAAO,KAAK,EAAE,cAAc,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAEzF,qBAAa,uBAAwB,YAAW,cAAc;IAGhD,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"rate-limit-store-node-cache.adapter.d.ts","sourceRoot":"","sources":["../src/rate-limit-store-node-cache.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAE3C,OAAO,KAAK,EAAE,cAAc,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAEzF,qBAAa,uBAAwB,YAAW,cAAc;IAGhD,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ;IAFxC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAY;gBAEb,GAAG,EAAE,KAAK,CAAC,QAAQ;IASlC,GAAG,CAAC,OAAO,EAAE,yBAAyB;IAItC,GAAG,CAAC,OAAO,EAAE,yBAAyB,EAAE,OAAO,EAAE,KAAK,CAAC,WAAW;IAIxE,QAAQ;CAGT"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import NodeCache from "node-cache";
|
|
2
2
|
export class RateLimitStoreNodeCache {
|
|
3
|
-
|
|
3
|
+
ttl;
|
|
4
4
|
store;
|
|
5
|
-
constructor(
|
|
6
|
-
this.
|
|
5
|
+
constructor(ttl) {
|
|
6
|
+
this.ttl = ttl;
|
|
7
7
|
this.store = new NodeCache({
|
|
8
|
-
stdTTL: this.
|
|
9
|
-
checkperiod: this.
|
|
8
|
+
stdTTL: this.ttl.seconds,
|
|
9
|
+
checkperiod: this.ttl.seconds,
|
|
10
10
|
deleteOnExpire: true,
|
|
11
11
|
maxKeys: 100_000,
|
|
12
12
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rate-limit-store-node-cache.adapter.js","sourceRoot":"","sources":["../src/rate-limit-store-node-cache.adapter.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,YAAY,CAAC;AAGnC,MAAM,OAAO,uBAAuB;IAGb;IAFJ,KAAK,CAAY;IAElC,YAAqB,
|
|
1
|
+
{"version":3,"file":"rate-limit-store-node-cache.adapter.js","sourceRoot":"","sources":["../src/rate-limit-store-node-cache.adapter.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,YAAY,CAAC;AAGnC,MAAM,OAAO,uBAAuB;IAGb;IAFJ,KAAK,CAAY;IAElC,YAAqB,GAAmB;QAAnB,QAAG,GAAH,GAAG,CAAgB;QACtC,IAAI,CAAC,KAAK,GAAG,IAAI,SAAS,CAAC;YACzB,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO;YACxB,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO;YAC7B,cAAc,EAAE,IAAI;YACpB,OAAO,EAAE,OAAO;SACjB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,OAAkC;QAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAoB,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,OAAkC,EAAE,OAA0B;QACtE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACnC,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IACxB,CAAC;CACF"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type * as tools from "@bgord/tools";
|
|
2
2
|
export type RateLimitStoreSubjectType = string;
|
|
3
3
|
export interface RateLimitStore {
|
|
4
|
-
readonly
|
|
4
|
+
readonly ttl: tools.Duration;
|
|
5
5
|
get(subject: RateLimitStoreSubjectType): Promise<tools.RateLimiter | undefined>;
|
|
6
6
|
set(subject: RateLimitStoreSubjectType, limiter: tools.RateLimiter): Promise<void>;
|
|
7
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rate-limit-store.port.d.ts","sourceRoot":"","sources":["../src/rate-limit-store.port.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAE3C,MAAM,MAAM,yBAAyB,GAAG,MAAM,CAAC;AAE/C,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"rate-limit-store.port.d.ts","sourceRoot":"","sources":["../src/rate-limit-store.port.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAE3C,MAAM,MAAM,yBAAyB,GAAG,MAAM,CAAC;AAE/C,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC;IAC7B,GAAG,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;IAChF,GAAG,CAAC,OAAO,EAAE,yBAAyB,EAAE,OAAO,EAAE,KAAK,CAAC,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpF"}
|
|
@@ -11,7 +11,7 @@ export const ShieldRateLimit = (options, deps) => {
|
|
|
11
11
|
const subject = options.subject(c);
|
|
12
12
|
let limiter = await options.store.get(subject);
|
|
13
13
|
if (!limiter) {
|
|
14
|
-
limiter = new tools.RateLimiter(options.store.
|
|
14
|
+
limiter = new tools.RateLimiter(options.store.ttl);
|
|
15
15
|
options.store.set(subject, limiter);
|
|
16
16
|
}
|
|
17
17
|
const check = limiter.verify(deps.Clock.nowMs());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shield-rate-limit.middleware.js","sourceRoot":"","sources":["../src/shield-rate-limit.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAQpD,MAAM,CAAC,MAAM,mBAAmB,GAAoB,GAAG,EAAE,CAAC,MAAM,CAAC;AACjE,MAAM,CAAC,MAAM,mBAAmB,GAAoB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,MAAM,CAAC;AAEvF,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,aAAa,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC,CAAC;AAEjG,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,OAAmC,EAAE,IAAkB,EAAE,EAAE;IACzF,OAAO,gBAAgB,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;QACxC,IAAI,CAAC,OAAO,CAAC,OAAO;YAAE,OAAO,IAAI,EAAE,CAAC;QAEpC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAEnC,IAAI,OAAO,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAE/C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,GAAG,IAAI,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"shield-rate-limit.middleware.js","sourceRoot":"","sources":["../src/shield-rate-limit.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAQpD,MAAM,CAAC,MAAM,mBAAmB,GAAoB,GAAG,EAAE,CAAC,MAAM,CAAC;AACjE,MAAM,CAAC,MAAM,mBAAmB,GAAoB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,MAAM,CAAC;AAEvF,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,aAAa,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC,CAAC;AAEjG,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,OAAmC,EAAE,IAAkB,EAAE,EAAE;IACzF,OAAO,gBAAgB,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;QACxC,IAAI,CAAC,OAAO,CAAC,OAAO;YAAE,OAAO,IAAI,EAAE,CAAC;QAEpC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAEnC,IAAI,OAAO,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAE/C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,GAAG,IAAI,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnD,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACtC,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QAEjD,IAAI,CAAC,KAAK,CAAC,OAAO;YAAE,MAAM,oBAAoB,CAAC;QAE/C,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAEpC,OAAO,IAAI,EAAE,CAAC;IAChB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type * as tools from "@bgord/tools";
|
|
2
2
|
export declare class Slower {
|
|
3
|
-
static handle: (
|
|
3
|
+
static handle: (offset: tools.Duration) => import("hono").MiddlewareHandler<any, string, {}>;
|
|
4
4
|
}
|
|
5
5
|
//# sourceMappingURL=slower.middleware.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slower.middleware.d.ts","sourceRoot":"","sources":["../src/slower.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAG3C,qBAAa,MAAM;IACjB,MAAM,CAAC,MAAM,GAAI,
|
|
1
|
+
{"version":3,"file":"slower.middleware.d.ts","sourceRoot":"","sources":["../src/slower.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAG3C,qBAAa,MAAM;IACjB,MAAM,CAAC,MAAM,GAAI,QAAQ,KAAK,CAAC,QAAQ,uDAIlC;CACN"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createMiddleware } from "hono/factory";
|
|
2
2
|
export class Slower {
|
|
3
|
-
static handle = (
|
|
4
|
-
await Bun.sleep(
|
|
3
|
+
static handle = (offset) => createMiddleware(async (_c, next) => {
|
|
4
|
+
await Bun.sleep(offset.ms);
|
|
5
5
|
return next();
|
|
6
6
|
});
|
|
7
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slower.middleware.js","sourceRoot":"","sources":["../src/slower.middleware.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,MAAM,OAAO,MAAM;IACjB,MAAM,CAAC,MAAM,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"slower.middleware.js","sourceRoot":"","sources":["../src/slower.middleware.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,MAAM,OAAO,MAAM;IACjB,MAAM,CAAC,MAAM,GAAG,CAAC,MAAsB,EAAE,EAAE,CACzC,gBAAgB,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE;QAClC,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC3B,OAAO,IAAI,EAAE,CAAC;IAChB,CAAC,CAAC,CAAC"}
|
|
@@ -1,15 +1,11 @@
|
|
|
1
1
|
import * as tools from "@bgord/tools";
|
|
2
2
|
export type TimeZoneOffsetVariables = {
|
|
3
|
-
timeZoneOffset:
|
|
4
|
-
minutes: tools.TimeResultInterface["minutes"];
|
|
5
|
-
seconds: tools.TimeResultInterface["seconds"];
|
|
6
|
-
miliseconds: tools.TimeResultInterface["ms"];
|
|
7
|
-
};
|
|
3
|
+
timeZoneOffset: tools.Duration;
|
|
8
4
|
};
|
|
9
5
|
export declare class TimeZoneOffset {
|
|
10
6
|
static TIME_ZONE_OFFSET_HEADER_NAME: string;
|
|
11
7
|
static attach: import("hono").MiddlewareHandler<any, string, {}>;
|
|
12
|
-
static adjustTimestamp(timestamp: tools.TimestampType,
|
|
13
|
-
static adjustDate(timestamp: tools.TimestampType,
|
|
8
|
+
static adjustTimestamp(timestamp: tools.TimestampType, offset: tools.Duration): tools.TimestampType;
|
|
9
|
+
static adjustDate(timestamp: tools.TimestampType, offset: tools.Duration): Date;
|
|
14
10
|
}
|
|
15
11
|
//# sourceMappingURL=time-zone-offset.middleware.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"time-zone-offset.middleware.d.ts","sourceRoot":"","sources":["../src/time-zone-offset.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAGtC,MAAM,MAAM,uBAAuB,GAAG;
|
|
1
|
+
{"version":3,"file":"time-zone-offset.middleware.d.ts","sourceRoot":"","sources":["../src/time-zone-offset.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAGtC,MAAM,MAAM,uBAAuB,GAAG;IAAE,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAA;CAAE,CAAC;AAEzE,qBAAa,cAAc;IACzB,MAAM,CAAC,4BAA4B,SAAsB;IAEzD,MAAM,CAAC,MAAM,oDAQV;IAEH,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,KAAK,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,aAAa;IAInG,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,KAAK,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,CAAC,QAAQ,GAAG,IAAI;CAGhF"}
|
|
@@ -4,19 +4,14 @@ export class TimeZoneOffset {
|
|
|
4
4
|
static TIME_ZONE_OFFSET_HEADER_NAME = "time-zone-offset";
|
|
5
5
|
static attach = createMiddleware(async (c, next) => {
|
|
6
6
|
const timeZoneOffsetMinutes = tools.TimeZoneOffsetValue.parse(c.req.header(TimeZoneOffset.TIME_ZONE_OFFSET_HEADER_NAME));
|
|
7
|
-
|
|
8
|
-
minutes: timeZoneOffsetMinutes,
|
|
9
|
-
seconds: tools.Time.Minutes(timeZoneOffsetMinutes).seconds,
|
|
10
|
-
miliseconds: tools.Time.Minutes(timeZoneOffsetMinutes).ms,
|
|
11
|
-
};
|
|
12
|
-
c.set("timeZoneOffset", timeZoneOffset);
|
|
7
|
+
c.set("timeZoneOffset", tools.Duration.Minutes(timeZoneOffsetMinutes));
|
|
13
8
|
await next();
|
|
14
9
|
});
|
|
15
|
-
static adjustTimestamp(timestamp,
|
|
16
|
-
return tools.Timestamp.parse(timestamp -
|
|
10
|
+
static adjustTimestamp(timestamp, offset) {
|
|
11
|
+
return tools.Timestamp.parse(timestamp - offset.ms);
|
|
17
12
|
}
|
|
18
|
-
static adjustDate(timestamp,
|
|
19
|
-
return new Date(timestamp -
|
|
13
|
+
static adjustDate(timestamp, offset) {
|
|
14
|
+
return new Date(timestamp - offset.ms);
|
|
20
15
|
}
|
|
21
16
|
}
|
|
22
17
|
//# sourceMappingURL=time-zone-offset.middleware.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"time-zone-offset.middleware.js","sourceRoot":"","sources":["../src/time-zone-offset.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"time-zone-offset.middleware.js","sourceRoot":"","sources":["../src/time-zone-offset.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAIhD,MAAM,OAAO,cAAc;IACzB,MAAM,CAAC,4BAA4B,GAAG,kBAAkB,CAAC;IAEzD,MAAM,CAAC,MAAM,GAAG,gBAAgB,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;QACjD,MAAM,qBAAqB,GAAG,KAAK,CAAC,mBAAmB,CAAC,KAAK,CAC3D,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,4BAA4B,CAAC,CAC1D,CAAC;QAEF,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAEvE,MAAM,IAAI,EAAE,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,eAAe,CAAC,SAA8B,EAAE,MAAsB;QAC3E,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,SAA8B,EAAE,MAAsB;QACtE,OAAO,IAAI,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;IACzC,CAAC"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
export declare class Translations {
|
|
2
|
-
static build: () => [import("hono/types").H<import("hono").Env, string, {}, Promise<import("hono
|
|
3
|
-
translations:
|
|
2
|
+
static build: () => [import("hono/types").H<import("hono").Env, string, {}, Promise<Response & import("hono").TypedResponse<{
|
|
3
|
+
translations: {
|
|
4
|
+
[x: string]: string;
|
|
5
|
+
};
|
|
4
6
|
language: string;
|
|
5
|
-
}, import("hono/utils/http-status").ContentfulStatusCode>>>];
|
|
7
|
+
}, import("hono/utils/http-status").ContentfulStatusCode, "json">>>];
|
|
6
8
|
}
|
|
7
9
|
//# sourceMappingURL=translations.service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"translations.service.d.ts","sourceRoot":"","sources":["../src/translations.service.ts"],"names":[],"mappings":"AAMA,qBAAa,YAAY;IACvB,MAAM,CAAC,KAAK
|
|
1
|
+
{"version":3,"file":"translations.service.d.ts","sourceRoot":"","sources":["../src/translations.service.ts"],"names":[],"mappings":"AAMA,qBAAa,YAAY;IACvB,MAAM,CAAC,KAAK;;;;;yEAMP;CACN"}
|