@bgord/bun 1.4.26 → 1.5.2

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 (101) hide show
  1. package/dist/basic-auth-password.vo.d.ts +3 -3
  2. package/dist/basic-auth-password.vo.d.ts.map +1 -1
  3. package/dist/basic-auth-password.vo.js.map +1 -1
  4. package/dist/basic-auth-username.vo.d.ts +3 -3
  5. package/dist/basic-auth-username.vo.d.ts.map +1 -1
  6. package/dist/basic-auth-username.vo.js.map +1 -1
  7. package/dist/binary.vo.d.ts +4 -4
  8. package/dist/binary.vo.d.ts.map +1 -1
  9. package/dist/binary.vo.js.map +1 -1
  10. package/dist/crypto-key-provider-file.adapter.d.ts +11 -0
  11. package/dist/crypto-key-provider-file.adapter.d.ts.map +1 -0
  12. package/dist/crypto-key-provider-file.adapter.js +19 -0
  13. package/dist/crypto-key-provider-file.adapter.js.map +1 -0
  14. package/dist/crypto-key-provider-memory.adapter.d.ts +8 -0
  15. package/dist/crypto-key-provider-memory.adapter.d.ts.map +1 -0
  16. package/dist/crypto-key-provider-memory.adapter.js +11 -0
  17. package/dist/crypto-key-provider-memory.adapter.js.map +1 -0
  18. package/dist/encryption-bun.adapter.d.ts +3 -0
  19. package/dist/encryption-bun.adapter.d.ts.map +1 -1
  20. package/dist/encryption-bun.adapter.js +21 -14
  21. package/dist/encryption-bun.adapter.js.map +1 -1
  22. package/dist/encryption-key-value.vo.d.ts +8 -0
  23. package/dist/encryption-key-value.vo.d.ts.map +1 -0
  24. package/dist/encryption-key-value.vo.js +12 -0
  25. package/dist/encryption-key-value.vo.js.map +1 -0
  26. package/dist/encryption-key.vo.d.ts +13 -5
  27. package/dist/encryption-key.vo.d.ts.map +1 -1
  28. package/dist/encryption-key.vo.js +38 -11
  29. package/dist/encryption-key.vo.js.map +1 -1
  30. package/dist/encryption-noop.adapter.d.ts +2 -0
  31. package/dist/encryption-noop.adapter.d.ts.map +1 -1
  32. package/dist/encryption-noop.adapter.js +5 -1
  33. package/dist/encryption-noop.adapter.js.map +1 -1
  34. package/dist/environment-loader-encrypted.adapter.d.ts +22 -0
  35. package/dist/environment-loader-encrypted.adapter.d.ts.map +1 -0
  36. package/dist/environment-loader-encrypted.adapter.js +17 -0
  37. package/dist/environment-loader-encrypted.adapter.js.map +1 -0
  38. package/dist/environment-loader-process.adapter.d.ts +15 -0
  39. package/dist/environment-loader-process.adapter.d.ts.map +1 -0
  40. package/dist/environment-loader-process.adapter.js +16 -0
  41. package/dist/environment-loader-process.adapter.js.map +1 -0
  42. package/dist/environment-loader.port.d.ts +9 -0
  43. package/dist/environment-loader.port.d.ts.map +1 -0
  44. package/dist/environment-loader.port.js +2 -0
  45. package/dist/environment-loader.port.js.map +1 -0
  46. package/dist/event-stream.vo.d.ts +3 -3
  47. package/dist/event-stream.vo.d.ts.map +1 -1
  48. package/dist/event-stream.vo.js.map +1 -1
  49. package/dist/hcaptcha-secret-key.vo.d.ts +2 -2
  50. package/dist/hcaptcha-secret-key.vo.d.ts.map +1 -1
  51. package/dist/hcaptcha-secret-key.vo.js.map +1 -1
  52. package/dist/hcaptcha-site-key.vo.d.ts +2 -2
  53. package/dist/hcaptcha-site-key.vo.d.ts.map +1 -1
  54. package/dist/hcaptcha-site-key.vo.js +1 -4
  55. package/dist/hcaptcha-site-key.vo.js.map +1 -1
  56. package/dist/index.d.ts +6 -2
  57. package/dist/index.d.ts.map +1 -1
  58. package/dist/index.js +6 -2
  59. package/dist/index.js.map +1 -1
  60. package/dist/recaptcha-secret-key.vo.d.ts +2 -2
  61. package/dist/recaptcha-secret-key.vo.d.ts.map +1 -1
  62. package/dist/recaptcha-secret-key.vo.js.map +1 -1
  63. package/dist/recaptcha-site-key.vo.d.ts +2 -2
  64. package/dist/recaptcha-site-key.vo.d.ts.map +1 -1
  65. package/dist/recaptcha-site-key.vo.js +1 -4
  66. package/dist/recaptcha-site-key.vo.js.map +1 -1
  67. package/dist/tsconfig.tsbuildinfo +1 -1
  68. package/dist/visitor-id.vo.d.ts +3 -3
  69. package/dist/visitor-id.vo.d.ts.map +1 -1
  70. package/dist/visitor-id.vo.js.map +1 -1
  71. package/package.json +8 -6
  72. package/readme.md +6 -2
  73. package/src/basic-auth-password.vo.ts +1 -1
  74. package/src/basic-auth-username.vo.ts +1 -1
  75. package/src/binary.vo.ts +1 -1
  76. package/src/crypto-key-provider-file.adapter.ts +28 -0
  77. package/src/crypto-key-provider-memory.adapter.ts +17 -0
  78. package/src/encryption-bun.adapter.ts +28 -24
  79. package/src/encryption-key-value.vo.ts +16 -0
  80. package/src/encryption-key.vo.ts +43 -12
  81. package/src/encryption-noop.adapter.ts +3 -1
  82. package/src/environment-loader-encrypted.adapter.ts +25 -0
  83. package/src/environment-loader-process.adapter.ts +22 -0
  84. package/src/environment-loader.port.ts +8 -0
  85. package/src/event-stream.vo.ts +1 -1
  86. package/src/hcaptcha-secret-key.vo.ts +1 -1
  87. package/src/hcaptcha-site-key.vo.ts +1 -4
  88. package/src/index.ts +6 -2
  89. package/src/recaptcha-secret-key.vo.ts +1 -1
  90. package/src/recaptcha-site-key.vo.ts +1 -4
  91. package/src/visitor-id.vo.ts +1 -1
  92. package/dist/crypto-key-provider-env.adapter.d.ts +0 -8
  93. package/dist/crypto-key-provider-env.adapter.d.ts.map +0 -1
  94. package/dist/crypto-key-provider-env.adapter.js +0 -14
  95. package/dist/crypto-key-provider-env.adapter.js.map +0 -1
  96. package/dist/environment-validator.service.d.ts +0 -15
  97. package/dist/environment-validator.service.d.ts.map +0 -1
  98. package/dist/environment-validator.service.js +0 -13
  99. package/dist/environment-validator.service.js.map +0 -1
  100. package/src/crypto-key-provider-env.adapter.ts +0 -16
  101. package/src/environment-validator.service.ts +0 -18
@@ -1,8 +1,8 @@
1
1
  import { z } from "zod/v4";
2
2
  export declare const BasicAuthPasswordError: {
3
- readonly Type: "basic.auth.password.type";
4
- readonly Empty: "basic.auth.password.empty";
5
- readonly TooLong: "basic.auth.password.too.long";
3
+ Type: string;
4
+ Empty: string;
5
+ TooLong: string;
6
6
  };
7
7
  export declare const BasicAuthPassword: z.core.$ZodBranded<z.ZodString, "BasicAuthPassword">;
8
8
  export type BasicAuthPasswordType = z.infer<typeof BasicAuthPassword>;
@@ -1 +1 @@
1
- {"version":3,"file":"basic-auth-password.vo.d.ts","sourceRoot":"","sources":["../src/basic-auth-password.vo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,eAAO,MAAM,sBAAsB;;;;CAIzB,CAAC;AAEX,eAAO,MAAM,iBAAiB,sDAID,CAAC;AAE9B,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
1
+ {"version":3,"file":"basic-auth-password.vo.d.ts","sourceRoot":"","sources":["../src/basic-auth-password.vo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,eAAO,MAAM,sBAAsB;;;;CAIlC,CAAC;AAEF,eAAO,MAAM,iBAAiB,sDAID,CAAC;AAE9B,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"basic-auth-password.vo.js","sourceRoot":"","sources":["../src/basic-auth-password.vo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,IAAI,EAAE,0BAA0B;IAChC,KAAK,EAAE,2BAA2B;IAClC,OAAO,EAAE,8BAA8B;CAC/B,CAAC;AAEX,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAC/B,MAAM,CAAC,sBAAsB,CAAC,IAAI,CAAC;KACnC,GAAG,CAAC,CAAC,EAAE,sBAAsB,CAAC,KAAK,CAAC;KACpC,GAAG,CAAC,GAAG,EAAE,sBAAsB,CAAC,OAAO,CAAC;KACxC,KAAK,CAAC,mBAAmB,CAAC,CAAC"}
1
+ {"version":3,"file":"basic-auth-password.vo.js","sourceRoot":"","sources":["../src/basic-auth-password.vo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,IAAI,EAAE,0BAA0B;IAChC,KAAK,EAAE,2BAA2B;IAClC,OAAO,EAAE,8BAA8B;CACxC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAC/B,MAAM,CAAC,sBAAsB,CAAC,IAAI,CAAC;KACnC,GAAG,CAAC,CAAC,EAAE,sBAAsB,CAAC,KAAK,CAAC;KACpC,GAAG,CAAC,GAAG,EAAE,sBAAsB,CAAC,OAAO,CAAC;KACxC,KAAK,CAAC,mBAAmB,CAAC,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import { z } from "zod/v4";
2
2
  export declare const BasicAuthUsernameError: {
3
- readonly Type: "basic.auth.username.type";
4
- readonly Empty: "basic.auth.username.empty";
5
- readonly TooLong: "basic.auth.username.too.long";
3
+ Type: string;
4
+ Empty: string;
5
+ TooLong: string;
6
6
  };
7
7
  export declare const BasicAuthUsername: z.core.$ZodBranded<z.ZodString, "BasicAuthUsername">;
8
8
  export type BasicAuthUsernameType = z.infer<typeof BasicAuthUsername>;
@@ -1 +1 @@
1
- {"version":3,"file":"basic-auth-username.vo.d.ts","sourceRoot":"","sources":["../src/basic-auth-username.vo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,eAAO,MAAM,sBAAsB;;;;CAIzB,CAAC;AAEX,eAAO,MAAM,iBAAiB,sDAID,CAAC;AAE9B,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
1
+ {"version":3,"file":"basic-auth-username.vo.d.ts","sourceRoot":"","sources":["../src/basic-auth-username.vo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,eAAO,MAAM,sBAAsB;;;;CAIlC,CAAC;AAEF,eAAO,MAAM,iBAAiB,sDAID,CAAC;AAE9B,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"basic-auth-username.vo.js","sourceRoot":"","sources":["../src/basic-auth-username.vo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,IAAI,EAAE,0BAA0B;IAChC,KAAK,EAAE,2BAA2B;IAClC,OAAO,EAAE,8BAA8B;CAC/B,CAAC;AAEX,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAC/B,MAAM,CAAC,sBAAsB,CAAC,IAAI,CAAC;KACnC,GAAG,CAAC,CAAC,EAAE,sBAAsB,CAAC,KAAK,CAAC;KACpC,GAAG,CAAC,GAAG,EAAE,sBAAsB,CAAC,OAAO,CAAC;KACxC,KAAK,CAAC,mBAAmB,CAAC,CAAC"}
1
+ {"version":3,"file":"basic-auth-username.vo.js","sourceRoot":"","sources":["../src/basic-auth-username.vo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,IAAI,EAAE,0BAA0B;IAChC,KAAK,EAAE,2BAA2B;IAClC,OAAO,EAAE,8BAA8B;CACxC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAC/B,MAAM,CAAC,sBAAsB,CAAC,IAAI,CAAC;KACnC,GAAG,CAAC,CAAC,EAAE,sBAAsB,CAAC,KAAK,CAAC;KACpC,GAAG,CAAC,GAAG,EAAE,sBAAsB,CAAC,OAAO,CAAC;KACxC,KAAK,CAAC,mBAAmB,CAAC,CAAC"}
@@ -1,9 +1,9 @@
1
1
  import { z } from "zod/v4";
2
2
  export declare const BinaryError: {
3
- readonly Type: "binary.type";
4
- readonly Empty: "binary.empty";
5
- readonly TooLong: "binary.too.long";
6
- readonly BadChars: "binary.bad.chars";
3
+ Type: string;
4
+ Empty: string;
5
+ TooLong: string;
6
+ BadChars: string;
7
7
  };
8
8
  export declare const Binary: z.core.$ZodBranded<z.ZodString, "Binary">;
9
9
  export type BinaryType = z.infer<typeof Binary>;
@@ -1 +1 @@
1
- {"version":3,"file":"binary.vo.d.ts","sourceRoot":"","sources":["../src/binary.vo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,eAAO,MAAM,WAAW;;;;;CAKd,CAAC;AAKX,eAAO,MAAM,MAAM,2CAKD,CAAC;AAEnB,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,MAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"binary.vo.d.ts","sourceRoot":"","sources":["../src/binary.vo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,eAAO,MAAM,WAAW;;;;;CAKvB,CAAC;AAKF,eAAO,MAAM,MAAM,2CAKD,CAAC;AAEnB,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,MAAM,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"binary.vo.js","sourceRoot":"","sources":["../src/binary.vo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,IAAI,EAAE,aAAa;IACnB,KAAK,EAAE,cAAc;IACrB,OAAO,EAAE,iBAAiB;IAC1B,QAAQ,EAAE,kBAAkB;CACpB,CAAC;AAEX,6DAA6D;AAC7D,MAAM,gBAAgB,GAAG,uBAAuB,CAAC;AAEjD,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC;KACpB,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;KACxB,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC;KACzB,GAAG,CAAC,EAAE,EAAE,WAAW,CAAC,OAAO,CAAC;KAC5B,KAAK,CAAC,gBAAgB,EAAE,WAAW,CAAC,QAAQ,CAAC;KAC7C,KAAK,CAAC,QAAQ,CAAC,CAAC"}
1
+ {"version":3,"file":"binary.vo.js","sourceRoot":"","sources":["../src/binary.vo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,IAAI,EAAE,aAAa;IACnB,KAAK,EAAE,cAAc;IACrB,OAAO,EAAE,iBAAiB;IAC1B,QAAQ,EAAE,kBAAkB;CAC7B,CAAC;AAEF,6DAA6D;AAC7D,MAAM,gBAAgB,GAAG,uBAAuB,CAAC;AAEjD,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC;KACpB,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;KACxB,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC;KACzB,GAAG,CAAC,EAAE,EAAE,WAAW,CAAC,OAAO,CAAC;KAC5B,KAAK,CAAC,gBAAgB,EAAE,WAAW,CAAC,QAAQ,CAAC;KAC7C,KAAK,CAAC,QAAQ,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type * as tools from "@bgord/tools";
2
+ import type { CryptoKeyProviderPort } from "./crypto-key-provider.port";
3
+ export declare const CryptoKeyProviderFileAdapterError: {
4
+ MissingFile: string;
5
+ };
6
+ export declare class CryptoKeyProviderFileAdapter implements CryptoKeyProviderPort {
7
+ private readonly path;
8
+ constructor(path: tools.FilePathAbsolute);
9
+ get(): Promise<CryptoKey>;
10
+ }
11
+ //# sourceMappingURL=crypto-key-provider-file.adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto-key-provider-file.adapter.d.ts","sourceRoot":"","sources":["../src/crypto-key-provider-file.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAGxE,eAAO,MAAM,iCAAiC;;CAE7C,CAAC;AAEF,qBAAa,4BAA6B,YAAW,qBAAqB;IAC5D,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,KAAK,CAAC,gBAAgB;IAEnD,GAAG;CAgBV"}
@@ -0,0 +1,19 @@
1
+ import { EncryptionKey } from "./encryption-key.vo";
2
+ export const CryptoKeyProviderFileAdapterError = {
3
+ MissingFile: "crypto.key.provider.file.adapter.missing.file",
4
+ };
5
+ export class CryptoKeyProviderFileAdapter {
6
+ path;
7
+ constructor(path) {
8
+ this.path = path;
9
+ }
10
+ async get() {
11
+ const file = Bun.file(this.path.get());
12
+ const exists = await file.exists();
13
+ if (!exists)
14
+ throw new Error(CryptoKeyProviderFileAdapterError.MissingFile);
15
+ const encryptionKey = EncryptionKey.fromString(await file.text());
16
+ return crypto.subtle.importKey("raw", encryptionKey.toBuffer(), { name: "AES-GCM" }, false, ["encrypt", "decrypt"]);
17
+ }
18
+ }
19
+ //# sourceMappingURL=crypto-key-provider-file.adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto-key-provider-file.adapter.js","sourceRoot":"","sources":["../src/crypto-key-provider-file.adapter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,CAAC,MAAM,iCAAiC,GAAG;IAC/C,WAAW,EAAE,+CAA+C;CAC7D,CAAC;AAEF,MAAM,OAAO,4BAA4B;IACV;IAA7B,YAA6B,IAA4B;QAA5B,SAAI,GAAJ,IAAI,CAAwB;IAAG,CAAC;IAE7D,KAAK,CAAC,GAAG;QACP,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QAEnC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,WAAW,CAAC,CAAC;QAE5E,MAAM,aAAa,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAElE,OAAO,MAAM,CAAC,MAAM,CAAC,SAAS,CAC5B,KAAK,EACL,aAAa,CAAC,QAAQ,EAAkB,EACxC,EAAE,IAAI,EAAE,SAAS,EAAE,EACnB,KAAK,EACL,CAAC,SAAS,EAAE,SAAS,CAAC,CACvB,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,8 @@
1
+ import type { CryptoKeyProviderPort } from "./crypto-key-provider.port";
2
+ import type { EncryptionKeyValueType } from "./encryption-key-value.vo";
3
+ export declare class CryptoKeyProviderMemoryAdapter implements CryptoKeyProviderPort {
4
+ private readonly ENCRYPTION_KEY_VALUE;
5
+ constructor(ENCRYPTION_KEY_VALUE: EncryptionKeyValueType);
6
+ get(): Promise<CryptoKey>;
7
+ }
8
+ //# sourceMappingURL=crypto-key-provider-memory.adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto-key-provider-memory.adapter.d.ts","sourceRoot":"","sources":["../src/crypto-key-provider-memory.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAExE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAExE,qBAAa,8BAA+B,YAAW,qBAAqB;IAC9D,OAAO,CAAC,QAAQ,CAAC,oBAAoB;gBAApB,oBAAoB,EAAE,sBAAsB;IAEnE,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC;CAShC"}
@@ -0,0 +1,11 @@
1
+ import { EncryptionKey } from "./encryption-key.vo";
2
+ export class CryptoKeyProviderMemoryAdapter {
3
+ ENCRYPTION_KEY_VALUE;
4
+ constructor(ENCRYPTION_KEY_VALUE) {
5
+ this.ENCRYPTION_KEY_VALUE = ENCRYPTION_KEY_VALUE;
6
+ }
7
+ async get() {
8
+ return crypto.subtle.importKey("raw", EncryptionKey.fromString(this.ENCRYPTION_KEY_VALUE).toBuffer(), { name: "AES-GCM" }, false, ["encrypt", "decrypt"]);
9
+ }
10
+ }
11
+ //# sourceMappingURL=crypto-key-provider-memory.adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto-key-provider-memory.adapter.js","sourceRoot":"","sources":["../src/crypto-key-provider-memory.adapter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,MAAM,OAAO,8BAA8B;IACZ;IAA7B,YAA6B,oBAA4C;QAA5C,yBAAoB,GAApB,oBAAoB,CAAwB;IAAG,CAAC;IAE7E,KAAK,CAAC,GAAG;QACP,OAAO,MAAM,CAAC,MAAM,CAAC,SAAS,CAC5B,KAAK,EACL,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,QAAQ,EAAkB,EAC9E,EAAE,IAAI,EAAE,SAAS,EAAE,EACnB,KAAK,EACL,CAAC,SAAS,EAAE,SAAS,CAAC,CACvB,CAAC;IACJ,CAAC;CACF"}
@@ -3,16 +3,19 @@ import type { CryptoKeyProviderPort } from "./crypto-key-provider.port";
3
3
  import type { EncryptionPort, EncryptionRecipe } from "./encryption.port";
4
4
  export declare const EncryptionBunAdapterError: {
5
5
  InvalidPayload: string;
6
+ MissingFile: string;
6
7
  };
7
8
  type Dependencies = {
8
9
  CryptoKeyProvider: CryptoKeyProviderPort;
9
10
  };
10
11
  export declare class EncryptionBunAdapter implements EncryptionPort {
11
12
  private readonly deps;
13
+ private static ALGORITHM;
12
14
  constructor(deps: Dependencies);
13
15
  encrypt(recipe: EncryptionRecipe): Promise<tools.FilePathRelative | tools.FilePathAbsolute>;
14
16
  decrypt(recipe: EncryptionRecipe): Promise<tools.FilePathRelative | tools.FilePathAbsolute>;
15
17
  view(input: tools.FilePathRelative | tools.FilePathAbsolute): Promise<ArrayBuffer>;
18
+ private decryptFile;
16
19
  }
17
20
  export {};
18
21
  //# sourceMappingURL=encryption-bun.adapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"encryption-bun.adapter.d.ts","sourceRoot":"","sources":["../src/encryption-bun.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAG1E,eAAO,MAAM,yBAAyB;;CAA+D,CAAC;AAEtG,KAAK,YAAY,GAAG;IAAE,iBAAiB,EAAE,qBAAqB,CAAA;CAAE,CAAC;AAEjE,qBAAa,oBAAqB,YAAW,cAAc;IAC7C,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,YAAY;IAEzC,OAAO,CAAC,MAAM,EAAE,gBAAgB;IAsBhC,OAAO,CAAC,MAAM,EAAE,gBAAgB;IAuBhC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB;CAkBlE"}
1
+ {"version":3,"file":"encryption-bun.adapter.d.ts","sourceRoot":"","sources":["../src/encryption-bun.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAG1E,eAAO,MAAM,yBAAyB;;;CAGrC,CAAC;AAEF,KAAK,YAAY,GAAG;IAAE,iBAAiB,EAAE,qBAAqB,CAAA;CAAE,CAAC;AAEjE,qBAAa,oBAAqB,YAAW,cAAc;IAG7C,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFjC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAa;gBAER,IAAI,EAAE,YAAY;IAEzC,OAAO,CAAC,MAAM,EAAE,gBAAgB;IA0BhC,OAAO,CAAC,MAAM,EAAE,gBAAgB;IAMhC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB;YAInD,WAAW;CA0B1B"}
@@ -1,16 +1,24 @@
1
1
  import { EncryptionIV } from "./encryption-iv.vo";
2
- export const EncryptionBunAdapterError = { InvalidPayload: "encryption.bun.adapter.invalid.payload" };
2
+ export const EncryptionBunAdapterError = {
3
+ InvalidPayload: "encryption.bun.adapter.invalid.payload",
4
+ MissingFile: "encryption.bun.adapter.missing.file",
5
+ };
3
6
  export class EncryptionBunAdapter {
4
7
  deps;
8
+ static ALGORITHM = "AES-GCM";
5
9
  constructor(deps) {
6
10
  this.deps = deps;
7
11
  }
8
12
  async encrypt(recipe) {
9
13
  const key = await this.deps.CryptoKeyProvider.get();
10
14
  const iv = EncryptionIV.generate();
11
- const plaintext = await Bun.file(recipe.input.get()).arrayBuffer();
12
- const encrypted = await crypto.subtle.encrypt({ name: "AES-GCM", iv: iv.buffer }, key, plaintext);
15
+ const file = Bun.file(recipe.input.get());
16
+ if (!(await file.exists()))
17
+ throw new Error(EncryptionBunAdapterError.MissingFile);
18
+ const plaintext = await file.arrayBuffer();
19
+ const encrypted = await crypto.subtle.encrypt({ name: EncryptionBunAdapter.ALGORITHM, iv: iv.buffer }, key, plaintext);
13
20
  const ciphertext = new Uint8Array(encrypted);
21
+ // Combine IV + Ciphertext
14
22
  const output = new Uint8Array(iv.length + ciphertext.length);
15
23
  output.set(iv, 0);
16
24
  output.set(ciphertext, iv.length);
@@ -18,28 +26,27 @@ export class EncryptionBunAdapter {
18
26
  return recipe.output;
19
27
  }
20
28
  async decrypt(recipe) {
21
- const key = await this.deps.CryptoKeyProvider.get();
22
- const bytes = new Uint8Array(await Bun.file(recipe.input.get()).arrayBuffer());
23
- if (bytes.length < EncryptionIV.LENGTH + 1)
24
- throw new Error(EncryptionBunAdapterError.InvalidPayload);
25
- const iv = bytes.subarray(0, EncryptionIV.LENGTH);
26
- const ivBuffer = iv.buffer.slice(iv.byteOffset, iv.byteOffset + iv.byteLength);
27
- const ciphertext = bytes.subarray(EncryptionIV.LENGTH);
28
- const ciphertextBuffer = ciphertext.buffer.slice(ciphertext.byteOffset, ciphertext.byteOffset + ciphertext.byteLength);
29
- const decrypted = await crypto.subtle.decrypt({ name: "AES-GCM", iv: ivBuffer }, key, ciphertextBuffer);
29
+ const decrypted = await this.decryptFile(recipe.input);
30
30
  await Bun.write(recipe.output.get(), new Uint8Array(decrypted));
31
31
  return recipe.output;
32
32
  }
33
33
  async view(input) {
34
+ return this.decryptFile(input);
35
+ }
36
+ async decryptFile(input) {
34
37
  const key = await this.deps.CryptoKeyProvider.get();
35
- const bytes = new Uint8Array(await Bun.file(input.get()).arrayBuffer());
38
+ const file = Bun.file(input.get());
39
+ if (!(await file.exists()))
40
+ throw new Error(EncryptionBunAdapterError.MissingFile);
41
+ const bytes = new Uint8Array(await file.arrayBuffer());
42
+ // Payload must be at least IV length + 1 byte of content/tag
36
43
  if (bytes.length < EncryptionIV.LENGTH + 1)
37
44
  throw new Error(EncryptionBunAdapterError.InvalidPayload);
38
45
  const iv = bytes.subarray(0, EncryptionIV.LENGTH);
39
46
  const ivBuffer = iv.buffer.slice(iv.byteOffset, iv.byteOffset + iv.byteLength);
40
47
  const ciphertext = bytes.subarray(EncryptionIV.LENGTH);
41
48
  const ciphertextBuffer = ciphertext.buffer.slice(ciphertext.byteOffset, ciphertext.byteOffset + ciphertext.byteLength);
42
- return crypto.subtle.decrypt({ name: "AES-GCM", iv: ivBuffer }, key, ciphertextBuffer);
49
+ return crypto.subtle.decrypt({ name: EncryptionBunAdapter.ALGORITHM, iv: ivBuffer }, key, ciphertextBuffer);
43
50
  }
44
51
  }
45
52
  //# sourceMappingURL=encryption-bun.adapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"encryption-bun.adapter.js","sourceRoot":"","sources":["../src/encryption-bun.adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"encryption-bun.adapter.js","sourceRoot":"","sources":["../src/encryption-bun.adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { z } from "zod/v4";
2
+ export declare const EncryptionKeyValueError: {
3
+ Type: string;
4
+ InvalidHex: string;
5
+ };
6
+ export declare const EncryptionKeyValue: z.core.$ZodBranded<z.ZodString, "EncryptionKeyValue">;
7
+ export type EncryptionKeyValueType = z.infer<typeof EncryptionKeyValue>;
8
+ //# sourceMappingURL=encryption-key-value.vo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encryption-key-value.vo.d.ts","sourceRoot":"","sources":["../src/encryption-key-value.vo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,eAAO,MAAM,uBAAuB;;;CAGnC,CAAC;AAKF,eAAO,MAAM,kBAAkB,uDAGD,CAAC;AAE/B,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { z } from "zod/v4";
2
+ export const EncryptionKeyValueError = {
3
+ Type: "encryption.key.value.type",
4
+ InvalidHex: "encryption.key.value.invalid.hex",
5
+ };
6
+ // 64 hex chars allowed
7
+ const CHARS_WHITELIST = /^[a-fA-F0-9]{64}$/;
8
+ export const EncryptionKeyValue = z
9
+ .string(EncryptionKeyValueError.Type)
10
+ .regex(CHARS_WHITELIST, EncryptionKeyValueError.InvalidHex)
11
+ .brand("EncryptionKeyValue");
12
+ //# sourceMappingURL=encryption-key-value.vo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encryption-key-value.vo.js","sourceRoot":"","sources":["../src/encryption-key-value.vo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,IAAI,EAAE,2BAA2B;IACjC,UAAU,EAAE,kCAAkC;CAC/C,CAAC;AAEF,uBAAuB;AACvB,MAAM,eAAe,GAAG,mBAAmB,CAAC;AAE5C,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC;KAChC,MAAM,CAAC,uBAAuB,CAAC,IAAI,CAAC;KACpC,KAAK,CAAC,eAAe,EAAE,uBAAuB,CAAC,UAAU,CAAC;KAC1D,KAAK,CAAC,oBAAoB,CAAC,CAAC"}
@@ -1,8 +1,16 @@
1
- import { z } from "zod/v4";
1
+ import { type EncryptionKeyValueType } from "./encryption-key-value.vo";
2
2
  export declare const EncryptionKeyError: {
3
- readonly Type: "encryption.key.type";
4
- readonly InvalidHex: "encryption.key.invalid.hex";
3
+ InvalidBuffer: string;
5
4
  };
6
- export declare const EncryptionKey: z.core.$ZodBranded<z.ZodString, "EncryptionKey">;
7
- export type EncryptionKeyType = z.infer<typeof EncryptionKey>;
5
+ export declare class EncryptionKey {
6
+ private readonly value;
7
+ private constructor();
8
+ static fromStringSafe(value: EncryptionKeyValueType): EncryptionKey;
9
+ static fromString(candidate: string): EncryptionKey;
10
+ static fromBuffer(buffer: Uint8Array): EncryptionKey;
11
+ equals(another: EncryptionKey): boolean;
12
+ toBuffer(): Uint8Array;
13
+ toString(): string;
14
+ toJSON(): string;
15
+ }
8
16
  //# sourceMappingURL=encryption-key.vo.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"encryption-key.vo.d.ts","sourceRoot":"","sources":["../src/encryption-key.vo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,eAAO,MAAM,kBAAkB;;;CAGrB,CAAC;AAKX,eAAO,MAAM,aAAa,kDAGD,CAAC;AAE1B,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC"}
1
+ {"version":3,"file":"encryption-key.vo.d.ts","sourceRoot":"","sources":["../src/encryption-key.vo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAE5F,eAAO,MAAM,kBAAkB;;CAAqD,CAAC;AAErF,qBAAa,aAAa;IACJ,OAAO,CAAC,QAAQ,CAAC,KAAK;IAA1C,OAAO;IAEP,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,sBAAsB,GAAG,aAAa;IAInE,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa;IAInD,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,aAAa;IAUpD,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO;IAIvC,QAAQ,IAAI,UAAU;IAUtB,QAAQ,IAAI,MAAM;IAIlB,MAAM,IAAI,MAAM;CAGjB"}
@@ -1,12 +1,39 @@
1
- import { z } from "zod/v4";
2
- export const EncryptionKeyError = {
3
- Type: "encryption.key.type",
4
- InvalidHex: "encryption.key.invalid.hex",
5
- };
6
- // 64 hex chars allowed
7
- const CHARS_WHITELIST = /^[a-fA-F0-9]{64}$/;
8
- export const EncryptionKey = z
9
- .string(EncryptionKeyError.Type)
10
- .regex(CHARS_WHITELIST, EncryptionKeyError.InvalidHex)
11
- .brand("EncryptionKey");
1
+ import { EncryptionKeyValue } from "./encryption-key-value.vo";
2
+ export const EncryptionKeyError = { InvalidBuffer: "encryption.key.invalid.buffer" };
3
+ export class EncryptionKey {
4
+ value;
5
+ constructor(value) {
6
+ this.value = value;
7
+ }
8
+ static fromStringSafe(value) {
9
+ return new EncryptionKey(value);
10
+ }
11
+ static fromString(candidate) {
12
+ return new EncryptionKey(EncryptionKeyValue.parse(candidate));
13
+ }
14
+ static fromBuffer(buffer) {
15
+ if (buffer.length !== 32)
16
+ throw new Error(EncryptionKeyError.InvalidBuffer);
17
+ const hex = Array.from(buffer)
18
+ .map((byte) => byte.toString(16).padStart(2, "0"))
19
+ .join("");
20
+ return EncryptionKey.fromString(hex);
21
+ }
22
+ equals(another) {
23
+ return this.value === another.value;
24
+ }
25
+ toBuffer() {
26
+ const bytes = new Uint8Array(32);
27
+ for (let i = 0; i < 32; i++) {
28
+ bytes[i] = Number.parseInt(this.value.slice(i * 2, i * 2 + 2), 16);
29
+ }
30
+ return bytes;
31
+ }
32
+ toString() {
33
+ return "EncryptionKey";
34
+ }
35
+ toJSON() {
36
+ return "EncryptionKey";
37
+ }
38
+ }
12
39
  //# sourceMappingURL=encryption-key.vo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"encryption-key.vo.js","sourceRoot":"","sources":["../src/encryption-key.vo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,IAAI,EAAE,qBAAqB;IAC3B,UAAU,EAAE,4BAA4B;CAChC,CAAC;AAEX,uBAAuB;AACvB,MAAM,eAAe,GAAG,mBAAmB,CAAC;AAE5C,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC;KAC3B,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC;KAC/B,KAAK,CAAC,eAAe,EAAE,kBAAkB,CAAC,UAAU,CAAC;KACrD,KAAK,CAAC,eAAe,CAAC,CAAC"}
1
+ {"version":3,"file":"encryption-key.vo.js","sourceRoot":"","sources":["../src/encryption-key.vo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAA+B,MAAM,2BAA2B,CAAC;AAE5F,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,aAAa,EAAE,+BAA+B,EAAE,CAAC;AAErF,MAAM,OAAO,aAAa;IACa;IAArC,YAAqC,KAA6B;QAA7B,UAAK,GAAL,KAAK,CAAwB;IAAG,CAAC;IAEtE,MAAM,CAAC,cAAc,CAAC,KAA6B;QACjD,OAAO,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,SAAiB;QACjC,OAAO,IAAI,aAAa,CAAC,kBAAkB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,MAAkB;QAClC,IAAI,MAAM,CAAC,MAAM,KAAK,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC;QAE5E,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;aAC3B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;aACjD,IAAI,CAAC,EAAE,CAAC,CAAC;QAEZ,OAAO,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,OAAsB;QAC3B,OAAO,IAAI,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,CAAC;IACtC,CAAC;IAED,QAAQ;QACN,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;QAEjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5B,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACrE,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,QAAQ;QACN,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,MAAM;QACJ,OAAO,eAAe,CAAC;IACzB,CAAC;CACF"}
@@ -1,6 +1,8 @@
1
1
  import type * as tools from "@bgord/tools";
2
2
  import type { EncryptionPort, EncryptionRecipe } from "./encryption.port";
3
3
  export declare class EncryptionNoopAdapter implements EncryptionPort {
4
+ private readonly buffer;
5
+ constructor(buffer?: ArrayBuffer);
4
6
  encrypt(recipe: EncryptionRecipe): Promise<tools.FilePathRelative | tools.FilePathAbsolute>;
5
7
  decrypt(recipe: EncryptionRecipe): Promise<tools.FilePathRelative | tools.FilePathAbsolute>;
6
8
  view(_input: tools.FilePathRelative | tools.FilePathAbsolute): Promise<ArrayBuffer>;
@@ -1 +1 @@
1
- {"version":3,"file":"encryption-noop.adapter.d.ts","sourceRoot":"","sources":["../src/encryption-noop.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1E,qBAAa,qBAAsB,YAAW,cAAc;IACpD,OAAO,CAAC,MAAM,EAAE,gBAAgB;IAIhC,OAAO,CAAC,MAAM,EAAE,gBAAgB;IAIhC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB;CAGnE"}
1
+ {"version":3,"file":"encryption-noop.adapter.d.ts","sourceRoot":"","sources":["../src/encryption-noop.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1E,qBAAa,qBAAsB,YAAW,cAAc;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,GAAE,WAAqD;IAEpF,OAAO,CAAC,MAAM,EAAE,gBAAgB;IAIhC,OAAO,CAAC,MAAM,EAAE,gBAAgB;IAIhC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB;CAGnE"}
@@ -1,4 +1,8 @@
1
1
  export class EncryptionNoopAdapter {
2
+ buffer;
3
+ constructor(buffer = new TextEncoder().encode("noop").buffer) {
4
+ this.buffer = buffer;
5
+ }
2
6
  async encrypt(recipe) {
3
7
  return recipe.output;
4
8
  }
@@ -6,7 +10,7 @@ export class EncryptionNoopAdapter {
6
10
  return recipe.output;
7
11
  }
8
12
  async view(_input) {
9
- return new TextEncoder().encode("noop").buffer;
13
+ return this.buffer;
10
14
  }
11
15
  }
12
16
  //# sourceMappingURL=encryption-noop.adapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"encryption-noop.adapter.js","sourceRoot":"","sources":["../src/encryption-noop.adapter.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,qBAAqB;IAChC,KAAK,CAAC,OAAO,CAAC,MAAwB;QACpC,OAAO,MAAM,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAwB;QACpC,OAAO,MAAM,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAAuD;QAChE,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;IACjD,CAAC;CACF"}
1
+ {"version":3,"file":"encryption-noop.adapter.js","sourceRoot":"","sources":["../src/encryption-noop.adapter.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,qBAAqB;IACH;IAA7B,YAA6B,SAAsB,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM;QAA7D,WAAM,GAAN,MAAM,CAAuD;IAAG,CAAC;IAE9F,KAAK,CAAC,OAAO,CAAC,MAAwB;QACpC,OAAO,MAAM,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAwB;QACpC,OAAO,MAAM,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAAuD;QAChE,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF"}
@@ -0,0 +1,22 @@
1
+ import type * as tools from "@bgord/tools";
2
+ import type { z } from "zod/v4";
3
+ import type { NodeEnvironmentEnum } from "../src/node-env.vo";
4
+ import type { EncryptionPort } from "./encryption.port";
5
+ import type { EnvironmentLoaderPort } from "./environment-loader.port";
6
+ type Dependencies = {
7
+ Encryption: EncryptionPort;
8
+ };
9
+ export declare class EnvironmentLoaderEncryptedAdapter<Schema extends z.ZodObject<any>> implements EnvironmentLoaderPort<Schema> {
10
+ private readonly config;
11
+ private path;
12
+ private readonly deps;
13
+ constructor(config: {
14
+ type: NodeEnvironmentEnum;
15
+ Schema: Schema;
16
+ }, path: tools.FilePathRelative, deps: Dependencies);
17
+ load(): Promise<Readonly<z.core.output<Schema> & {
18
+ type: NodeEnvironmentEnum;
19
+ }>>;
20
+ }
21
+ export {};
22
+ //# sourceMappingURL=environment-loader-encrypted.adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment-loader-encrypted.adapter.d.ts","sourceRoot":"","sources":["../src/environment-loader-encrypted.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAE3C,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAEvE,KAAK,YAAY,GAAG;IAAE,UAAU,EAAE,cAAc,CAAA;CAAE,CAAC;AAEnD,qBAAa,iCAAiC,CAAC,MAAM,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAC5E,YAAW,qBAAqB,CAAC,MAAM,CAAC;IAGtC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAFJ,MAAM,EAAE;QAAE,IAAI,EAAE,mBAAmB,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAC9D,IAAI,EAAE,KAAK,CAAC,gBAAgB,EACnB,IAAI,EAAE,YAAY;IAG/B,IAAI;;;CAMX"}
@@ -0,0 +1,17 @@
1
+ import { parse } from "dotenv";
2
+ export class EnvironmentLoaderEncryptedAdapter {
3
+ config;
4
+ path;
5
+ deps;
6
+ constructor(config, path, deps) {
7
+ this.config = config;
8
+ this.path = path;
9
+ this.deps = deps;
10
+ }
11
+ async load() {
12
+ const file = await this.deps.Encryption.view(this.path);
13
+ const content = new TextDecoder().decode(file);
14
+ return Object.freeze({ ...this.config.Schema.parse(parse(content)), type: this.config.type });
15
+ }
16
+ }
17
+ //# sourceMappingURL=environment-loader-encrypted.adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment-loader-encrypted.adapter.js","sourceRoot":"","sources":["../src/environment-loader-encrypted.adapter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAQ/B,MAAM,OAAO,iCAAiC;IAIzB;IACT;IACS;IAHnB,YACmB,MAAqD,EAC9D,IAA4B,EACnB,IAAkB;QAFlB,WAAM,GAAN,MAAM,CAA+C;QAC9D,SAAI,GAAJ,IAAI,CAAwB;QACnB,SAAI,GAAJ,IAAI,CAAc;IAClC,CAAC;IAEJ,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxD,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAE/C,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IAChG,CAAC;CACF"}
@@ -0,0 +1,15 @@
1
+ import type { z } from "zod/v4";
2
+ import type { NodeEnvironmentEnum } from "../src/node-env.vo";
3
+ import type { EnvironmentLoaderPort } from "./environment-loader.port";
4
+ export declare class EnvironmentLoaderProcessAdapter<Schema extends z.ZodObject<any>> implements EnvironmentLoaderPort<Schema> {
5
+ private readonly config;
6
+ private env;
7
+ constructor(config: {
8
+ type: NodeEnvironmentEnum;
9
+ Schema: Schema;
10
+ }, env: NodeJS.ProcessEnv);
11
+ load(): Promise<Readonly<z.core.output<Schema> & {
12
+ type: NodeEnvironmentEnum;
13
+ }>>;
14
+ }
15
+ //# sourceMappingURL=environment-loader-process.adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment-loader-process.adapter.d.ts","sourceRoot":"","sources":["../src/environment-loader-process.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAEvE,qBAAa,+BAA+B,CAAC,MAAM,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAC1E,YAAW,qBAAqB,CAAC,MAAM,CAAC;IAGtC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,GAAG;gBADM,MAAM,EAAE;QAAE,IAAI,EAAE,mBAAmB,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAC9D,GAAG,EAAE,MAAM,CAAC,UAAU;IAG1B,IAAI;;;CASX"}
@@ -0,0 +1,16 @@
1
+ export class EnvironmentLoaderProcessAdapter {
2
+ config;
3
+ env;
4
+ constructor(config, env) {
5
+ this.config = config;
6
+ this.env = env;
7
+ }
8
+ async load() {
9
+ const result = this.config.Schema.parse(this.env);
10
+ for (const key of Object.keys(result)) {
11
+ delete process.env[key];
12
+ }
13
+ return Object.freeze({ ...result, type: this.config.type });
14
+ }
15
+ }
16
+ //# sourceMappingURL=environment-loader-process.adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment-loader-process.adapter.js","sourceRoot":"","sources":["../src/environment-loader-process.adapter.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,+BAA+B;IAIvB;IACT;IAFV,YACmB,MAAqD,EAC9D,GAAsB;QADb,WAAM,GAAN,MAAM,CAA+C;QAC9D,QAAG,GAAH,GAAG,CAAmB;IAC7B,CAAC;IAEJ,KAAK,CAAC,IAAI;QACR,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAElD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACtC,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;QAED,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9D,CAAC;CACF"}
@@ -0,0 +1,9 @@
1
+ import type { z } from "zod/v4";
2
+ import type { NodeEnvironmentEnum } from "../src/node-env.vo";
3
+ export type EnvironmentResultType<Schema> = z.infer<Schema> & {
4
+ type: NodeEnvironmentEnum;
5
+ };
6
+ export interface EnvironmentLoaderPort<Schema extends z.ZodObject<any>> {
7
+ load(): Promise<Readonly<EnvironmentResultType<Schema>>>;
8
+ }
9
+ //# sourceMappingURL=environment-loader.port.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment-loader.port.d.ts","sourceRoot":"","sources":["../src/environment-loader.port.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,MAAM,MAAM,qBAAqB,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG;IAAE,IAAI,EAAE,mBAAmB,CAAA;CAAE,CAAC;AAE5F,MAAM,WAAW,qBAAqB,CAAC,MAAM,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC;IACpE,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;CAC1D"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=environment-loader.port.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment-loader.port.js","sourceRoot":"","sources":["../src/environment-loader.port.ts"],"names":[],"mappings":""}
@@ -1,8 +1,8 @@
1
1
  import { z } from "zod/v4";
2
2
  export declare const EventStreamError: {
3
- readonly Type: "event.store.type";
4
- readonly Empty: "event.stream.empty";
5
- readonly TooLong: "event.stream.too.long";
3
+ Type: string;
4
+ Empty: string;
5
+ TooLong: string;
6
6
  };
7
7
  export declare const EventStream: z.ZodString;
8
8
  export type EventStreamType = z.infer<typeof EventStream>;
@@ -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,gBAAgB;;;;CAInB,CAAC;AAEX,eAAO,MAAM,WAAW,aAGa,CAAC;AAEtC,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC"}
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,gBAAgB;;;;CAI5B,CAAC;AAEF,eAAO,MAAM,WAAW,aAGa,CAAC;AAEtC,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC"}
@@ -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,gBAAgB,GAAG;IAC9B,IAAI,EAAE,kBAAkB;IACxB,KAAK,EAAE,oBAAoB;IAC3B,OAAO,EAAE,uBAAuB;CACxB,CAAC;AAEX,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC;KACzB,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC;KAC7B,GAAG,CAAC,CAAC,EAAE,gBAAgB,CAAC,KAAK,CAAC;KAC9B,GAAG,CAAC,GAAG,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC"}
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,gBAAgB,GAAG;IAC9B,IAAI,EAAE,kBAAkB;IACxB,KAAK,EAAE,oBAAoB;IAC3B,OAAO,EAAE,uBAAuB;CACjC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC;KACzB,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC;KAC7B,GAAG,CAAC,CAAC,EAAE,gBAAgB,CAAC,KAAK,CAAC;KAC9B,GAAG,CAAC,GAAG,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { z } from "zod/v4";
2
2
  export declare const HCaptchaSecretKeyError: {
3
- readonly Type: "hcaptcha.secret.key.type";
4
- readonly Length: "hcaptcha.secret.key.length";
3
+ Type: string;
4
+ Length: string;
5
5
  };
6
6
  export declare const HCaptchaSecretKey: z.core.$ZodBranded<z.ZodString, "HCaptchaSecretKey">;
7
7
  export type HCaptchaSecretKeyType = z.infer<typeof HCaptchaSecretKey>;
@@ -1 +1 @@
1
- {"version":3,"file":"hcaptcha-secret-key.vo.d.ts","sourceRoot":"","sources":["../src/hcaptcha-secret-key.vo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,eAAO,MAAM,sBAAsB;;;CAGzB,CAAC;AAEX,eAAO,MAAM,iBAAiB,sDAGD,CAAC;AAE9B,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
1
+ {"version":3,"file":"hcaptcha-secret-key.vo.d.ts","sourceRoot":"","sources":["../src/hcaptcha-secret-key.vo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,eAAO,MAAM,sBAAsB;;;CAGlC,CAAC;AAEF,eAAO,MAAM,iBAAiB,sDAGD,CAAC;AAE9B,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"hcaptcha-secret-key.vo.js","sourceRoot":"","sources":["../src/hcaptcha-secret-key.vo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,IAAI,EAAE,0BAA0B;IAChC,MAAM,EAAE,4BAA4B;CAC5B,CAAC;AAEX,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAC/B,MAAM,CAAC,sBAAsB,CAAC,IAAI,CAAC;KACnC,MAAM,CAAC,EAAE,EAAE,sBAAsB,CAAC,MAAM,CAAC;KACzC,KAAK,CAAC,mBAAmB,CAAC,CAAC"}
1
+ {"version":3,"file":"hcaptcha-secret-key.vo.js","sourceRoot":"","sources":["../src/hcaptcha-secret-key.vo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,IAAI,EAAE,0BAA0B;IAChC,MAAM,EAAE,4BAA4B;CACrC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAC/B,MAAM,CAAC,sBAAsB,CAAC,IAAI,CAAC;KACnC,MAAM,CAAC,EAAE,EAAE,sBAAsB,CAAC,MAAM,CAAC;KACzC,KAAK,CAAC,mBAAmB,CAAC,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { z } from "zod/v4";
2
2
  export declare const HCaptchaSiteKeyError: {
3
- readonly Type: "hcaptcha.site.key.type";
4
- readonly Length: "hcaptcha.site.key.length";
3
+ Type: string;
4
+ Length: string;
5
5
  };
6
6
  export declare const HCaptchaSiteKey: z.core.$ZodBranded<z.ZodString, "HCaptchaSiteKey">;
7
7
  export type HCaptchaSiteKeyType = z.infer<typeof HCaptchaSiteKey>;