@bgord/bun 1.21.8 → 1.21.10

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.
Files changed (83) hide show
  1. package/dist/alert-channel-composite.adapter.js +1 -1
  2. package/dist/alert-channel-composite.adapter.js.map +1 -1
  3. package/dist/cache-repository-redis.adapter.js.map +1 -1
  4. package/dist/crypto-aes-gcm.service.d.ts +2 -2
  5. package/dist/crypto-aes-gcm.service.d.ts.map +1 -1
  6. package/dist/crypto-aes-gcm.service.js +2 -2
  7. package/dist/crypto-aes-gcm.service.js.map +1 -1
  8. package/dist/crypto-key-provider-file.adapter.d.ts.map +1 -1
  9. package/dist/crypto-key-provider-file.adapter.js +4 -1
  10. package/dist/crypto-key-provider-file.adapter.js.map +1 -1
  11. package/dist/crypto-key-provider-memory.adapter.js.map +1 -1
  12. package/dist/encryption-iv.vo.d.ts +1 -1
  13. package/dist/encryption-iv.vo.d.ts.map +1 -1
  14. package/dist/encryption-key.vo.d.ts +1 -1
  15. package/dist/encryption-key.vo.d.ts.map +1 -1
  16. package/dist/endpoint-hono.adapter.d.ts +6 -0
  17. package/dist/endpoint-hono.adapter.d.ts.map +1 -0
  18. package/dist/endpoint-hono.adapter.js +7 -0
  19. package/dist/endpoint-hono.adapter.js.map +1 -0
  20. package/dist/endpoint.port.d.ts +3 -0
  21. package/dist/endpoint.port.d.ts.map +1 -0
  22. package/dist/endpoint.port.js +2 -0
  23. package/dist/endpoint.port.js.map +1 -0
  24. package/dist/healthcheck-hono.handler.d.ts +1 -67
  25. package/dist/healthcheck-hono.handler.d.ts.map +1 -1
  26. package/dist/healthcheck-hono.handler.js +2 -2
  27. package/dist/healthcheck-hono.handler.js.map +1 -1
  28. package/dist/index.d.ts +2 -0
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +2 -0
  31. package/dist/index.js.map +1 -1
  32. package/dist/job-registry.adapter.js.map +1 -1
  33. package/dist/languages.vo.js +1 -1
  34. package/dist/languages.vo.js.map +1 -1
  35. package/dist/liveness-hono.handler.d.ts +1 -3
  36. package/dist/liveness-hono.handler.d.ts.map +1 -1
  37. package/dist/liveness-hono.handler.js +2 -2
  38. package/dist/liveness-hono.handler.js.map +1 -1
  39. package/dist/message-bus-with-logger.adapter.d.ts.map +1 -1
  40. package/dist/message-bus-with-logger.adapter.js.map +1 -1
  41. package/dist/modules/preferences/commands/SET_USER_LANGUAGE_COMMAND.d.ts +1 -1
  42. package/dist/modules/preferences/events/USER_LANGUAGE_SET_EVENT.d.ts +1 -1
  43. package/dist/modules/preferences/ports/user-language-resolver.d.ts +2 -2
  44. package/dist/modules/preferences/ports/user-language-resolver.d.ts.map +1 -1
  45. package/dist/readiness-hono.handler.d.ts +1 -4
  46. package/dist/readiness-hono.handler.d.ts.map +1 -1
  47. package/dist/readiness-hono.handler.js +2 -2
  48. package/dist/readiness-hono.handler.js.map +1 -1
  49. package/dist/request-context-hono.adapter.d.ts.map +1 -1
  50. package/dist/request-context-hono.adapter.js +10 -0
  51. package/dist/request-context-hono.adapter.js.map +1 -1
  52. package/dist/request-context.port.d.ts +6 -0
  53. package/dist/request-context.port.d.ts.map +1 -1
  54. package/dist/shield-maintenance-hono.strategy.js +1 -1
  55. package/dist/shield-maintenance-hono.strategy.js.map +1 -1
  56. package/dist/shield-security-hono.strategy.d.ts.map +1 -1
  57. package/dist/shield-security-hono.strategy.js +4 -4
  58. package/dist/shield-security-hono.strategy.js.map +1 -1
  59. package/dist/translations-hono.handler.js +1 -1
  60. package/dist/translations-hono.handler.js.map +1 -1
  61. package/package.json +8 -8
  62. package/readme.md +2 -0
  63. package/src/alert-channel-composite.adapter.ts +1 -1
  64. package/src/cache-repository-redis.adapter.ts +1 -1
  65. package/src/crypto-aes-gcm.service.ts +8 -12
  66. package/src/crypto-key-provider-file.adapter.ts +4 -7
  67. package/src/crypto-key-provider-memory.adapter.ts +1 -1
  68. package/src/encryption-iv.vo.ts +1 -1
  69. package/src/encryption-key.vo.ts +1 -1
  70. package/src/endpoint-hono.adapter.ts +9 -0
  71. package/src/endpoint.port.ts +3 -0
  72. package/src/healthcheck-hono.handler.ts +2 -2
  73. package/src/index.ts +2 -0
  74. package/src/job-registry.adapter.ts +1 -1
  75. package/src/languages.vo.ts +1 -1
  76. package/src/liveness-hono.handler.ts +2 -2
  77. package/src/message-bus-with-logger.adapter.ts +2 -2
  78. package/src/readiness-hono.handler.ts +2 -2
  79. package/src/request-context-hono.adapter.ts +9 -0
  80. package/src/request-context.port.ts +5 -0
  81. package/src/shield-maintenance-hono.strategy.ts +1 -1
  82. package/src/shield-security-hono.strategy.ts +4 -5
  83. package/src/translations-hono.handler.ts +1 -1
@@ -7,9 +7,9 @@ export class ReadinessHonoHandler {
7
7
  this.handler = new ReadinessHandler(config);
8
8
  }
9
9
  handle() {
10
- return factory.createHandlers(async (c) => {
10
+ return factory.createHandlers(async () => {
11
11
  const result = await this.handler.check();
12
- return c.json(result.details, result.code, result.headers);
12
+ return Response.json(result.details, { status: result.code, headers: result.headers });
13
13
  });
14
14
  }
15
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"readiness-hono.handler.js","sourceRoot":"","sources":["../src/readiness-hono.handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAwB,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE7E,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;AAEhC,MAAM,OAAO,oBAAoB;IACd,OAAO,CAAmB;IAE3C,YAAY,MAAuB;QACjC,IAAI,CAAC,OAAO,GAAG,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM;QACJ,OAAO,OAAO,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;YACxC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YAE1C,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"readiness-hono.handler.js","sourceRoot":"","sources":["../src/readiness-hono.handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAwB,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE7E,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;AAEhC,MAAM,OAAO,oBAAoB;IACd,OAAO,CAAmB;IAE3C,YAAY,MAAuB;QACjC,IAAI,CAAC,OAAO,GAAG,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM;QACJ,OAAO,OAAO,CAAC,cAAc,CAAC,KAAK,IAAI,EAAE;YACvC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YAE1C,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QACzF,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"request-context-hono.adapter.d.ts","sourceRoot":"","sources":["../src/request-context-hono.adapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAGpC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7D,qBAAa,yBAA0B,YAAW,cAAc;IAC9D,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;IAC5C,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IAC9C,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC,YAAY,CAAC,CAAC;IAElD,YAAY,OAAO,EAAE,OAAO,EAuD3B;CACF"}
1
+ {"version":3,"file":"request-context-hono.adapter.d.ts","sourceRoot":"","sources":["../src/request-context-hono.adapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAIpC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAG7D,qBAAa,yBAA0B,YAAW,cAAc;IAC9D,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;IAC5C,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IAC9C,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC,YAAY,CAAC,CAAC;IAElD,YAAY,OAAO,EAAE,OAAO,EA8D3B;CACF"}
@@ -2,6 +2,8 @@
2
2
  import * as tools from "@bgord/tools";
3
3
  import { getConnInfo } from "hono/bun";
4
4
  import { getCookie } from "hono/cookie";
5
+ import { HTTPException } from "hono/http-exception";
6
+ import { ShieldAuthStrategyError } from "./shield-auth.strategy";
5
7
  export class RequestContextHonoAdapter {
6
8
  request;
7
9
  identity;
@@ -47,6 +49,14 @@ export class RequestContextHonoAdapter {
47
49
  };
48
50
  this.identity = {
49
51
  userId: () => context.get("user")?.id,
52
+ authenticatedUserId: () => {
53
+ const user = context.get("user");
54
+ if (user === undefined)
55
+ throw new Error(ShieldAuthStrategyError.NotAttached);
56
+ if (user === null)
57
+ throw new HTTPException(401, { message: ShieldAuthStrategyError.Rejected });
58
+ return user.id;
59
+ },
50
60
  ip: () => context.req.header("x-real-ip") ||
51
61
  context.req.header("x-forwarded-for")?.split(",")[0]?.trim() ||
52
62
  getConnInfo(context).remote.address,
@@ -1 +1 @@
1
- {"version":3,"file":"request-context-hono.adapter.js","sourceRoot":"","sources":["../src/request-context-hono.adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"request-context-hono.adapter.js","sourceRoot":"","sources":["../src/request-context-hono.adapter.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,7 @@ export interface RequestContext {
19
19
  };
20
20
  readonly identity: {
21
21
  userId(): UUIDType | undefined;
22
+ authenticatedUserId(): UUIDType;
22
23
  ip(): string | undefined;
23
24
  remoteIp(): string | undefined;
24
25
  ua(): string | undefined;
@@ -107,6 +108,11 @@ export interface HasIdentityUserId {
107
108
  userId(): UUIDType | undefined;
108
109
  };
109
110
  }
111
+ export interface HasIdentityAuthenticatedUserId {
112
+ readonly identity: {
113
+ authenticatedUserId(): UUIDType;
114
+ };
115
+ }
110
116
  export interface HasIdentityIp {
111
117
  readonly identity: {
112
118
  ip(): string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"request-context.port.d.ts","sourceRoot":"","sources":["../src/request-context.port.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"request-context.port.d.ts","sourceRoot":"","sources":["../src/request-context.port.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,7 @@ export class ShieldMaintenanceHonoStrategy {
13
13
  const maintenance = await this.strategy.evaluate();
14
14
  if (!maintenance.enabled)
15
15
  return next();
16
- return c.json(maintenance.body, maintenance.code, maintenance.headers);
16
+ return Response.json(maintenance.body, { status: maintenance.code, headers: maintenance.headers });
17
17
  };
18
18
  }
19
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"shield-maintenance-hono.strategy.js","sourceRoot":"","sources":["../src/shield-maintenance-hono.strategy.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAgC,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAExG,MAAM,OAAO,6BAA6B;IACvB,QAAQ,CAA4B;IAErD,YAAY,MAAgC;QAC1C,IAAI,CAAC,QAAQ,GAAG,IAAI,yBAAyB,CAAC,MAAM,CAAC,CAAC;IACxD,CAAC;IAED,MAAM;QACJ,OAAO,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;YACvB,MAAM,OAAO,GAAG,IAAI,yBAAyB,CAAC,CAAC,CAAC,CAAC;YAEjD,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC;gBAAE,OAAO,IAAI,EAAE,CAAC;YAErD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAEnD,IAAI,CAAC,WAAW,CAAC,OAAO;gBAAE,OAAO,IAAI,EAAE,CAAC;YAExC,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;QACzE,CAAC,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"shield-maintenance-hono.strategy.js","sourceRoot":"","sources":["../src/shield-maintenance-hono.strategy.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAgC,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAExG,MAAM,OAAO,6BAA6B;IACvB,QAAQ,CAA4B;IAErD,YAAY,MAAgC;QAC1C,IAAI,CAAC,QAAQ,GAAG,IAAI,yBAAyB,CAAC,MAAM,CAAC,CAAC;IACxD,CAAC;IAED,MAAM;QACJ,OAAO,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;YACvB,MAAM,OAAO,GAAG,IAAI,yBAAyB,CAAC,CAAC,CAAC,CAAC;YAEjD,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC;gBAAE,OAAO,IAAI,EAAE,CAAC;YAErD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAEnD,IAAI,CAAC,WAAW,CAAC,OAAO;gBAAE,OAAO,IAAI,EAAE,CAAC;YAExC,OAAO,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QACrG,CAAC,CAAC;IACJ,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"shield-security-hono.strategy.d.ts","sourceRoot":"","sources":["../src/shield-security-hono.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAE9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,KAAK,YAAY,GAAG;IAAE,OAAO,EAAE,WAAW,CAAA;CAAE,CAAC;AAE7C,eAAO,MAAM,+BAA+B;IAC1C,SAAS;CACV,CAAC;AAEF,qBAAa,0BAA2B,YAAW,kBAAkB;IAKjE,OAAO,CAAC,QAAQ,CAAC,IAAI;IAJvB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyB;IAElD,YACE,QAAQ,EAAE,aAAa,CAAC,cAAc,CAAC,EACtB,IAAI,EAAE,YAAY,EAGpC;IAED,MAAM,IAAI,iBAAiB,CAoC1B;CACF"}
1
+ {"version":3,"file":"shield-security-hono.strategy.d.ts","sourceRoot":"","sources":["../src/shield-security-hono.strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAC9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,KAAK,YAAY,GAAG;IAAE,OAAO,EAAE,WAAW,CAAA;CAAE,CAAC;AAE7C,eAAO,MAAM,+BAA+B;IAC1C,SAAS;CACV,CAAC;AAEF,qBAAa,0BAA2B,YAAW,kBAAkB;IAKjE,OAAO,CAAC,QAAQ,CAAC,IAAI;IAJvB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyB;IAElD,YACE,QAAQ,EAAE,aAAa,CAAC,cAAc,CAAC,EACtB,IAAI,EAAE,YAAY,EAGpC;IAED,MAAM,IAAI,iBAAiB,CAoC1B;CACF"}
@@ -20,18 +20,18 @@ export class ShieldSecurityHonoStrategy {
20
20
  case "allow":
21
21
  return next();
22
22
  case "deny":
23
- return c.text(action.reason, action.response.status);
23
+ return new Response(action.reason, { status: action.response.status });
24
24
  case "mirage":
25
- return c.json({}, action.response.status);
25
+ return Response.json({}, { status: action.response.status });
26
26
  case "delay": {
27
27
  await this.deps.Sleeper.wait(action.duration);
28
28
  switch (action.after.kind) {
29
29
  case "allow":
30
30
  return next();
31
31
  case "deny":
32
- return c.text(action.after.reason, action.after.response.status);
32
+ return new Response(action.after.reason, { status: action.after.response.status });
33
33
  case "mirage":
34
- return c.json({}, action.after.response.status);
34
+ return Response.json({}, { status: action.after.response.status });
35
35
  default:
36
36
  throw new Error(ShieldSecurityHonoStrategyError.Unhandled);
37
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"shield-security-hono.strategy.js","sourceRoot":"","sources":["../src/shield-security-hono.strategy.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAE3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAKpE,MAAM,CAAC,MAAM,+BAA+B,GAAG;IAC7C,SAAS,EAAE,+CAA+C;CAC3D,CAAC;AAEF,MAAM,OAAO,0BAA0B;IAKlB,IAAI;IAJN,QAAQ,CAAyB;IAElD,YACE,QAAuC,EACtB,IAAkB;oBAAlB,IAAI;QAErB,IAAI,CAAC,QAAQ,GAAG,IAAI,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IACvD,CAAC;IAED,MAAM;QACJ,OAAO,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;YACvB,MAAM,OAAO,GAAG,IAAI,yBAAyB,CAAC,CAAC,CAAC,CAAC;YACjD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAErD,IAAI,CAAC,MAAM;gBAAE,OAAO,IAAI,EAAE,CAAC;YAE3B,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;gBACpB,KAAK,OAAO;oBACV,OAAO,IAAI,EAAE,CAAC;gBAEhB,KAAK,MAAM;oBACT,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,MAA8B,CAAC,CAAC;gBAE/E,KAAK,QAAQ;oBACX,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,MAA8B,CAAC,CAAC;gBAEpE,KAAK,OAAO,EAAE,CAAC;oBACb,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;oBAE9C,QAAQ,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;wBAC1B,KAAK,OAAO;4BACV,OAAO,IAAI,EAAE,CAAC;wBAEhB,KAAK,MAAM;4BACT,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,MAA8B,CAAC,CAAC;wBAE3F,KAAK,QAAQ;4BACX,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,MAA8B,CAAC,CAAC;wBAE1E;4BACE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,SAAS,CAAC,CAAC;oBAC/D,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"shield-security-hono.strategy.js","sourceRoot":"","sources":["../src/shield-security-hono.strategy.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAE3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAKpE,MAAM,CAAC,MAAM,+BAA+B,GAAG;IAC7C,SAAS,EAAE,+CAA+C;CAC3D,CAAC;AAEF,MAAM,OAAO,0BAA0B;IAKlB,IAAI;IAJN,QAAQ,CAAyB;IAElD,YACE,QAAuC,EACtB,IAAkB;oBAAlB,IAAI;QAErB,IAAI,CAAC,QAAQ,GAAG,IAAI,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IACvD,CAAC;IAED,MAAM;QACJ,OAAO,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;YACvB,MAAM,OAAO,GAAG,IAAI,yBAAyB,CAAC,CAAC,CAAC,CAAC;YACjD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAErD,IAAI,CAAC,MAAM;gBAAE,OAAO,IAAI,EAAE,CAAC;YAE3B,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;gBACpB,KAAK,OAAO;oBACV,OAAO,IAAI,EAAE,CAAC;gBAEhB,KAAK,MAAM;oBACT,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;gBAEzE,KAAK,QAAQ;oBACX,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;gBAE/D,KAAK,OAAO,EAAE,CAAC;oBACb,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;oBAE9C,QAAQ,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;wBAC1B,KAAK,OAAO;4BACV,OAAO,IAAI,EAAE,CAAC;wBAEhB,KAAK,MAAM;4BACT,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;wBAErF,KAAK,QAAQ;4BACX,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;wBAErE;4BACE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,SAAS,CAAC,CAAC;oBAC/D,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;CACF"}
@@ -10,7 +10,7 @@ export class TranslationsHonoHandler {
10
10
  return factory.createHandlers(async (c) => {
11
11
  const language = c.get("language");
12
12
  const result = await this.handler.execute(language);
13
- return c.json(result);
13
+ return Response.json(result);
14
14
  });
15
15
  }
16
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"translations-hono.handler.js","sourceRoot":"","sources":["../src/translations-hono.handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAI7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAK7D,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;AAEhC,MAAM,OAAO,uBAAuB;IACjB,OAAO,CAAyB;IAEjD,YAAY,MAAoB,EAAE,IAAkB;QAClD,IAAI,CAAC,OAAO,GAAG,IAAI,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACvD,CAAC;IAED,MAAM;QACJ,OAAO,OAAO,CAAC,cAAc,CAAqD,KAAK,EAAE,CAAC,EAAE,EAAE;YAC5F,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACnC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAEpD,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"translations-hono.handler.js","sourceRoot":"","sources":["../src/translations-hono.handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAI7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAK7D,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;AAEhC,MAAM,OAAO,uBAAuB;IACjB,OAAO,CAAyB;IAEjD,YAAY,MAAoB,EAAE,IAAkB;QAClD,IAAI,CAAC,OAAO,GAAG,IAAI,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACvD,CAAC;IAED,MAAM;QACJ,OAAO,OAAO,CAAC,cAAc,CAAqD,KAAK,EAAE,CAAC,EAAE,EAAE;YAC5F,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACnC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAEpD,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bgord/bun",
3
- "version": "1.21.8",
3
+ "version": "1.21.10",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "author": "Bartosz Gordon",
@@ -22,17 +22,17 @@
22
22
  "devDependencies": {
23
23
  "@biomejs/biome": "2.5.8",
24
24
  "@standard-schema/spec": "1.1.0",
25
- "@stryker-mutator/core": "9.6.1",
26
- "@stryker-mutator/typescript-checker": "9.6.1",
25
+ "@stryker-mutator/core": "10.0.0",
26
+ "@stryker-mutator/typescript-checker": "10.0.0",
27
27
  "@types/bun": "1.3.14",
28
28
  "@types/nodemailer": "8.0.1",
29
29
  "@types/yazl": "3.3.1",
30
- "better-auth": "1.6.27",
30
+ "better-auth": "1.6.28",
31
31
  "cspell": "10.0.1",
32
32
  "csv": "6.6.3",
33
- "fallow": "3.15.0",
33
+ "fallow": "3.16.0",
34
34
  "lefthook": "2.1.10",
35
- "lockfile-lint": "5.0.0",
35
+ "lockfile-lint": "5.0.1",
36
36
  "nodemailer": "9.0.5",
37
37
  "publint": "0.3.23",
38
38
  "shellcheck": "4.1.0",
@@ -40,13 +40,13 @@
40
40
  "yazl": "3.3.1"
41
41
  },
42
42
  "dependencies": {
43
- "@bgord/tools": "1.6.6",
43
+ "@bgord/tools": "1.6.7",
44
44
  "emittery": "2.0.0",
45
45
  "hono": "4.13.2",
46
46
  "node-cache": "5.1.2"
47
47
  },
48
48
  "peerDependencies": {
49
- "better-auth": "1.6.27",
49
+ "better-auth": "1.6.28",
50
50
  "csv": "6.6.3",
51
51
  "nodemailer": "9.0.5",
52
52
  "yazl": "3.3.1"
package/readme.md CHANGED
@@ -128,6 +128,8 @@ src/
128
128
  ├── encryption-key.vo.ts
129
129
  ├── encryption-noop.adapter.ts
130
130
  ├── encryption.port.ts
131
+ ├── endpoint-hono.adapter.ts
132
+ ├── endpoint.port.ts
131
133
  ├── environment-loader-encrypted.adapter.ts
132
134
  ├── environment-loader-noop.adapter.ts
133
135
  ├── environment-loader-process-safe.adapter.ts
@@ -18,7 +18,7 @@ export class AlertChannelCompositeAdapter implements AlertChannelPort {
18
18
 
19
19
  if (results.some((result) => result.status === "fulfilled")) return;
20
20
 
21
- const reasons = results.map((result) => (result as PromiseRejectedResult).reason);
21
+ const reasons = results.flatMap((result) => (result.status === "rejected" ? [result.reason] : []));
22
22
 
23
23
  throw new AggregateError(reasons, AlertChannelCompositeError.AllFailed);
24
24
  }
@@ -12,7 +12,7 @@ export class CacheRepositoryRedisAdapter implements CacheRepositoryPort {
12
12
  async get<T>(subject: Hash): Promise<T | null> {
13
13
  const value = await this.client.get(subject.get());
14
14
  if (value === null) return null;
15
- return JSON.parse(value) as T;
15
+ return JSON.parse(value);
16
16
  }
17
17
 
18
18
  async set<T>(subject: Hash, value: T): Promise<void> {
@@ -6,12 +6,12 @@ export const CryptoAesGcmError = { InvalidPayload: "aes.gcm.crypto.invalid.paylo
6
6
  export class CryptoAesGcm {
7
7
  static readonly ALGORITHM = "AES-GCM";
8
8
 
9
- static async encrypt(key: CryptoKey, plaintext: ArrayBuffer, iv: Uint8Array): Promise<Uint8Array> {
10
- const encrypted = await crypto.subtle.encrypt(
11
- { name: CryptoAesGcm.ALGORITHM, iv: iv as BufferSource },
12
- key,
13
- plaintext,
14
- );
9
+ static async encrypt(
10
+ key: CryptoKey,
11
+ plaintext: ArrayBuffer,
12
+ iv: Uint8Array<ArrayBuffer>,
13
+ ): Promise<Uint8Array> {
14
+ const encrypted = await crypto.subtle.encrypt({ name: CryptoAesGcm.ALGORITHM, iv }, key, plaintext);
15
15
 
16
16
  const ciphertext = new Uint8Array(encrypted);
17
17
  const output = new Uint8Array(iv.length + ciphertext.length);
@@ -22,16 +22,12 @@ export class CryptoAesGcm {
22
22
  return output;
23
23
  }
24
24
 
25
- static async decrypt(key: CryptoKey, payload: Uint8Array): Promise<ArrayBuffer> {
25
+ static async decrypt(key: CryptoKey, payload: Uint8Array<ArrayBuffer>): Promise<ArrayBuffer> {
26
26
  if (payload.length < EncryptionIV.LENGTH + 1) throw new Error(CryptoAesGcmError.InvalidPayload);
27
27
 
28
28
  const iv = payload.subarray(0, EncryptionIV.LENGTH);
29
29
  const ciphertext = payload.subarray(EncryptionIV.LENGTH);
30
30
 
31
- return crypto.subtle.decrypt(
32
- { name: CryptoAesGcm.ALGORITHM, iv: iv as BufferSource },
33
- key,
34
- ciphertext as BufferSource,
35
- );
31
+ return crypto.subtle.decrypt({ name: CryptoAesGcm.ALGORITHM, iv }, key, ciphertext);
36
32
  }
37
33
  }
@@ -25,12 +25,9 @@ export class CryptoKeyProviderFileAdapter implements CryptoKeyProviderPort {
25
25
 
26
26
  const encryptionKey = EncryptionKey.fromString(content.trim());
27
27
 
28
- return crypto.subtle.importKey(
29
- "raw",
30
- encryptionKey.toBytes() as BufferSource,
31
- { name: "AES-GCM" },
32
- false,
33
- ["encrypt", "decrypt"],
34
- );
28
+ return crypto.subtle.importKey("raw", encryptionKey.toBytes(), { name: "AES-GCM" }, false, [
29
+ "encrypt",
30
+ "decrypt",
31
+ ]);
35
32
  }
36
33
  }
@@ -8,7 +8,7 @@ export class CryptoKeyProviderMemoryAdapter implements CryptoKeyProviderPort {
8
8
  async get(): Promise<CryptoKey> {
9
9
  return crypto.subtle.importKey(
10
10
  "raw",
11
- EncryptionKey.fromString(this.ENCRYPTION_KEY_VALUE).toBytes() as BufferSource,
11
+ EncryptionKey.fromString(this.ENCRYPTION_KEY_VALUE).toBytes(),
12
12
  { name: "AES-GCM" },
13
13
  false,
14
14
  ["encrypt", "decrypt"],
@@ -1,7 +1,7 @@
1
1
  export class EncryptionIV {
2
2
  static readonly LENGTH = 12;
3
3
 
4
- static generate(): Uint8Array {
4
+ static generate(): Uint8Array<ArrayBuffer> {
5
5
  const iv = new Uint8Array(EncryptionIV.LENGTH);
6
6
  crypto.getRandomValues(iv);
7
7
 
@@ -24,7 +24,7 @@ export class EncryptionKey {
24
24
  return this.key === another.key;
25
25
  }
26
26
 
27
- toBytes(): Uint8Array {
27
+ toBytes(): Uint8Array<ArrayBuffer> {
28
28
  return Uint8Array.fromHex(this.key);
29
29
  }
30
30
 
@@ -0,0 +1,9 @@
1
+ import type { Handler } from "hono";
2
+ import type { EndpointPort } from "./endpoint.port";
3
+ import { RequestContextHonoAdapter } from "./request-context-hono.adapter";
4
+
5
+ export class EndpointHonoAdapter {
6
+ static adapt(endpoint: EndpointPort): Handler {
7
+ return (c) => endpoint(new RequestContextHonoAdapter(c));
8
+ }
9
+ }
@@ -0,0 +1,3 @@
1
+ import type { RequestContext } from "./request-context.port";
2
+
3
+ export type EndpointPort<T = RequestContext> = (context: T) => Promise<Response> | Response;
@@ -16,10 +16,10 @@ export class HealthcheckHonoHandler implements HandlerHonoPort {
16
16
  }
17
17
 
18
18
  handle() {
19
- return factory.createHandlers(async (c) => {
19
+ return factory.createHandlers(async () => {
20
20
  const healthcheck = await this.handler.check();
21
21
 
22
- return c.json(healthcheck, healthcheck.code);
22
+ return Response.json(healthcheck, { status: healthcheck.code });
23
23
  });
24
24
  }
25
25
  }
package/src/index.ts CHANGED
@@ -101,6 +101,8 @@ export * from "./encryption-aes-gcm.adapter";
101
101
  export * from "./encryption-key.vo";
102
102
  export * from "./encryption-key-value.vo";
103
103
  export * from "./encryption-noop.adapter";
104
+ export * from "./endpoint.port";
105
+ export * from "./endpoint-hono.adapter";
104
106
  export * from "./environment-loader.port";
105
107
  export * from "./environment-loader-encrypted.adapter";
106
108
  export * from "./environment-loader-noop.adapter";
@@ -53,6 +53,6 @@ export class JobRegistryAdapter<Job extends GenericJob> implements JobRegistryPo
53
53
  const entry = this.map.get(name);
54
54
  if (!entry) throw new Error(JobRegistryAdapterError.UnknownJob);
55
55
 
56
- return entry.handler as JobHandler<Job>;
56
+ return entry.handler;
57
57
  }
58
58
  }
@@ -22,6 +22,6 @@ export class Languages<T extends tools.LanguageType> {
22
22
  }
23
23
 
24
24
  isSupported(value: unknown): value is T {
25
- return this.values.includes(value as T);
25
+ return this.values.some((language) => language === value);
26
26
  }
27
27
  }
@@ -8,10 +8,10 @@ export class LivenessHonoHandler implements HandlerHonoPort {
8
8
  private readonly handler = new LivenessHandler();
9
9
 
10
10
  handle() {
11
- return factory.createHandlers(async (c) => {
11
+ return factory.createHandlers(async () => {
12
12
  const { headers, ...body } = this.handler.execute();
13
13
 
14
- return c.json(body, 200, headers);
14
+ return Response.json(body, { status: 200, headers });
15
15
  });
16
16
  }
17
17
  }
@@ -1,5 +1,5 @@
1
1
  import { CorrelationStorage } from "./correlation-storage.service";
2
- import type { LogCoreType, LoggerPort } from "./logger.port";
2
+ import type { LoggerPort } from "./logger.port";
3
3
  import type { Message, ToMessageMap } from "./message.types";
4
4
  import type { MessageBusPort } from "./message-bus.port";
5
5
 
@@ -13,7 +13,7 @@ export class MessageBusWithLoggerAdapter<Messages extends Message> implements Me
13
13
  async emit<M extends Messages>(message: M): Promise<void> {
14
14
  this.deps.Logger.info({
15
15
  message: `${message.name} emitted`,
16
- metadata: message as LogCoreType["metadata"],
16
+ metadata: message,
17
17
  correlationId: CorrelationStorage.get(),
18
18
  ...this.base,
19
19
  });
@@ -12,10 +12,10 @@ export class ReadinessHonoHandler implements HandlerHonoPort {
12
12
  }
13
13
 
14
14
  handle() {
15
- return factory.createHandlers(async (c) => {
15
+ return factory.createHandlers(async () => {
16
16
  const result = await this.handler.check();
17
17
 
18
- return c.json(result.details, result.code, result.headers);
18
+ return Response.json(result.details, { status: result.code, headers: result.headers });
19
19
  });
20
20
  }
21
21
  }
@@ -3,7 +3,9 @@ import * as tools from "@bgord/tools";
3
3
  import type { Context } from "hono";
4
4
  import { getConnInfo } from "hono/bun";
5
5
  import { getCookie } from "hono/cookie";
6
+ import { HTTPException } from "hono/http-exception";
6
7
  import type { RequestContext } from "./request-context.port";
8
+ import { ShieldAuthStrategyError } from "./shield-auth.strategy";
7
9
 
8
10
  export class RequestContextHonoAdapter implements RequestContext {
9
11
  readonly request: RequestContext["request"];
@@ -49,6 +51,13 @@ export class RequestContextHonoAdapter implements RequestContext {
49
51
 
50
52
  this.identity = {
51
53
  userId: () => context.get("user")?.id,
54
+ authenticatedUserId: () => {
55
+ const user = context.get("user");
56
+
57
+ if (user === undefined) throw new Error(ShieldAuthStrategyError.NotAttached);
58
+ if (user === null) throw new HTTPException(401, { message: ShieldAuthStrategyError.Rejected });
59
+ return user.id;
60
+ },
52
61
  ip: () =>
53
62
  context.req.header("x-real-ip") ||
54
63
  context.req.header("x-forwarded-for")?.split(",")[0]?.trim() ||
@@ -21,6 +21,7 @@ export interface RequestContext {
21
21
 
22
22
  readonly identity: {
23
23
  userId(): UUIDType | undefined;
24
+ authenticatedUserId(): UUIDType;
24
25
  ip(): string | undefined;
25
26
  remoteIp(): string | undefined;
26
27
  ua(): string | undefined;
@@ -93,6 +94,10 @@ export interface HasIdentityUserId {
93
94
  readonly identity: { userId(): UUIDType | undefined };
94
95
  }
95
96
 
97
+ export interface HasIdentityAuthenticatedUserId {
98
+ readonly identity: { authenticatedUserId(): UUIDType };
99
+ }
100
+
96
101
  export interface HasIdentityIp {
97
102
  readonly identity: { ip(): string | undefined };
98
103
  }
@@ -20,7 +20,7 @@ export class ShieldMaintenanceHonoStrategy implements MiddlewareHonoPort {
20
20
 
21
21
  if (!maintenance.enabled) return next();
22
22
 
23
- return c.json(maintenance.body, maintenance.code, maintenance.headers);
23
+ return Response.json(maintenance.body, { status: maintenance.code, headers: maintenance.headers });
24
24
  };
25
25
  }
26
26
  }
@@ -1,5 +1,4 @@
1
1
  import type { MiddlewareHandler } from "hono";
2
- import type { ContentfulStatusCode } from "hono/utils/http-status";
3
2
  import type { MiddlewareHonoPort } from "./middleware-hono.port";
4
3
  import { RequestContextHonoAdapter } from "./request-context-hono.adapter";
5
4
  import type { SecurityPolicy } from "./security-policy.vo";
@@ -34,10 +33,10 @@ export class ShieldSecurityHonoStrategy implements MiddlewareHonoPort {
34
33
  return next();
35
34
 
36
35
  case "deny":
37
- return c.text(action.reason, action.response.status as ContentfulStatusCode);
36
+ return new Response(action.reason, { status: action.response.status });
38
37
 
39
38
  case "mirage":
40
- return c.json({}, action.response.status as ContentfulStatusCode);
39
+ return Response.json({}, { status: action.response.status });
41
40
 
42
41
  case "delay": {
43
42
  await this.deps.Sleeper.wait(action.duration);
@@ -47,10 +46,10 @@ export class ShieldSecurityHonoStrategy implements MiddlewareHonoPort {
47
46
  return next();
48
47
 
49
48
  case "deny":
50
- return c.text(action.after.reason, action.after.response.status as ContentfulStatusCode);
49
+ return new Response(action.after.reason, { status: action.after.response.status });
51
50
 
52
51
  case "mirage":
53
- return c.json({}, action.after.response.status as ContentfulStatusCode);
52
+ return Response.json({}, { status: action.after.response.status });
54
53
 
55
54
  default:
56
55
  throw new Error(ShieldSecurityHonoStrategyError.Unhandled);
@@ -22,7 +22,7 @@ export class TranslationsHonoHandler<T extends tools.LanguageType> implements Ha
22
22
  const language = c.get("language");
23
23
  const result = await this.handler.execute(language);
24
24
 
25
- return c.json(result);
25
+ return Response.json(result);
26
26
  });
27
27
  }
28
28
  }