pipework 0.187.0 → 0.188.0

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 (37) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/REFERENCE.md +322 -13
  3. package/dist/auth/auth/chain.js +5 -5
  4. package/dist/auth/auth/chain.js.map +1 -1
  5. package/dist/auth/auth/cookie.d.ts +10 -0
  6. package/dist/auth/auth/cookie.d.ts.map +1 -1
  7. package/dist/auth/auth/cookie.js +37 -0
  8. package/dist/auth/auth/cookie.js.map +1 -1
  9. package/dist/auth/auth/multi-org.d.ts +3 -1
  10. package/dist/auth/auth/multi-org.d.ts.map +1 -1
  11. package/dist/auth/auth/multi-org.js +6 -3
  12. package/dist/auth/auth/multi-org.js.map +1 -1
  13. package/dist/auth/auth/sessions.d.ts +30 -8
  14. package/dist/auth/auth/sessions.d.ts.map +1 -1
  15. package/dist/auth/auth/sessions.js +40 -40
  16. package/dist/auth/auth/sessions.js.map +1 -1
  17. package/dist/auth/auth/signing-keys.d.ts +15 -0
  18. package/dist/auth/auth/signing-keys.d.ts.map +1 -0
  19. package/dist/auth/auth/signing-keys.js +60 -0
  20. package/dist/auth/auth/signing-keys.js.map +1 -0
  21. package/dist/core/errors/http.d.ts +13 -0
  22. package/dist/core/errors/http.d.ts.map +1 -1
  23. package/dist/core/errors/http.js +17 -1
  24. package/dist/core/errors/http.js.map +1 -1
  25. package/dist/core/errors/index.d.ts +1 -1
  26. package/dist/core/errors/index.d.ts.map +1 -1
  27. package/dist/core/errors/index.js +1 -1
  28. package/dist/core/errors/index.js.map +1 -1
  29. package/dist/core/errors/namespace.d.ts +6 -2
  30. package/dist/core/errors/namespace.d.ts.map +1 -1
  31. package/dist/core/errors/namespace.js +6 -2
  32. package/dist/core/errors/namespace.js.map +1 -1
  33. package/package.json +1 -1
  34. package/dist/infra/email/sigv4.d.ts +0 -24
  35. package/dist/infra/email/sigv4.d.ts.map +0 -1
  36. package/dist/infra/email/sigv4.js +0 -55
  37. package/dist/infra/email/sigv4.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/core/errors/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAEzC,qBAAa,aAAc,SAAQ,aAAa;IAC9C,QAAQ,CAAC,IAAI,EAAG,WAAW,CAAS;IACpC,QAAQ,CAAC,UAAU,EAAG,GAAG,CAAS;gBAEtB,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;CAGpE;AAED,qBAAa,iBAAkB,SAAQ,aAAa;IAClD,QAAQ,CAAC,IAAI,EAAG,cAAc,CAAS;IACvC,QAAQ,CAAC,UAAU,EAAG,GAAG,CAAS;gBAEtB,OAAO,GAAE,MAAkC,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;CAG/F;AAED,qBAAa,cAAe,SAAQ,aAAa;IAC/C,QAAQ,CAAC,IAAI,EAAG,WAAW,CAAS;IACpC,QAAQ,CAAC,UAAU,EAAG,GAAG,CAAS;gBAEtB,OAAO,GAAE,MAAmC,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;CAGhG;AAED,qBAAa,qBAAsB,SAAQ,aAAa;IACtD,QAAQ,CAAC,IAAI,EAAG,oBAAoB,CAAS;IAC7C,QAAQ,CAAC,UAAU,EAAG,GAAG,CAAS;gBAGhC,OAAO,GAAE,MAAgF,EACzF,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;CAIxC;AAED,qBAAa,eAAgB,SAAQ,aAAa;IAChD,QAAQ,CAAC,IAAI,EAAG,kBAAkB,CAAS;IAC3C,QAAQ,CAAC,UAAU,EAAG,GAAG,CAAS;IAClC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,CAAA;gBAErD,OAAO,EAAE,MAAM;gBACf,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM;CAW7E;AAED,qBAAa,oBAAqB,SAAQ,aAAa;IACrD,QAAQ,CAAC,IAAI,EAAG,mBAAmB,CAAS;IAC5C,QAAQ,CAAC,UAAU,EAAG,GAAG,CAAS;IAClC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAA;gBAEtB,iBAAiB,EAAE,MAAM,EAAE,OAAO,GAAE,MAA8C;CAI/F;AAED,qBAAa,aAAc,SAAQ,aAAa;IAC9C,QAAQ,CAAC,IAAI,EAAG,UAAU,CAAS;IACnC,QAAQ,CAAC,UAAU,EAAG,GAAG,CAAS;gBAEtB,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;CAGnE;AAGD,qBAAa,oBAAqB,SAAQ,aAAa;IACrD,QAAQ,CAAC,IAAI,EAAG,mBAAmB,CAAS;IAC5C,QAAQ,CAAC,UAAU,EAAG,GAAG,CAAS;gBAEtB,OAAO,GAAE,MAAiC,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;CAG9F;AAED,qBAAa,yBAA0B,SAAQ,aAAa;IAC1D,QAAQ,CAAC,IAAI,EAAG,wBAAwB,CAAS;IACjD,QAAQ,CAAC,UAAU,EAAG,GAAG,CAAS;gBAEtB,OAAO,GAAE,MAAiC,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;CAG9F;AAED,qBAAa,uBAAwB,SAAQ,aAAa;IACxD,QAAQ,CAAC,IAAI,EAAG,qBAAqB,CAAS;IAC9C,QAAQ,CAAC,UAAU,EAAG,GAAG,CAAS;gBAEtB,OAAO,GAAE,MAA8E,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;CAG3I"}
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/core/errors/http.ts"],"names":[],"mappings":"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"}
@@ -23,7 +23,7 @@ export class ForbiddenError extends PipeworkError {
23
23
  export class CrossSiteRequestError extends PipeworkError {
24
24
  code = 'CROSS_SITE_REQUEST';
25
25
  httpStatus = 403;
26
- constructor(message = 'A write authenticated by a cookie must come from the app\'s own site.', details = {}) {
26
+ constructor(message = 'A request authenticated by a cookie must come from the app\'s own site.', details = {}) {
27
27
  super(message, details);
28
28
  }
29
29
  }
@@ -80,4 +80,20 @@ export class MalformedMultipartError extends PipeworkError {
80
80
  super(message, details);
81
81
  }
82
82
  }
83
+ export class AuthConfigurationError extends PipeworkError {
84
+ code = 'AUTH_CONFIGURATION';
85
+ httpStatus = 500;
86
+ constructor(message, details = {}) {
87
+ super(message, details);
88
+ }
89
+ }
90
+ export class AuthUnavailableError extends PipeworkError {
91
+ code = 'AUTH_UNAVAILABLE';
92
+ httpStatus = 503;
93
+ constructor(message, options = {}) {
94
+ super(message, options.details ?? {});
95
+ if (options.cause !== undefined)
96
+ this.cause = options.cause;
97
+ }
98
+ }
83
99
  //# sourceMappingURL=http.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/core/errors/http.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/core/errors/http.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  export { PipeworkError, isPipeworkError } from './base.js';
2
- export { NotFoundError, UnauthorizedError, ForbiddenError, CrossSiteRequestError, ValidationError, ConflictError, TooManyRequestsError, PayloadTooLargeError, UnsupportedMediaTypeError, MalformedMultipartError } from './http.js';
2
+ export { NotFoundError, UnauthorizedError, ForbiddenError, CrossSiteRequestError, AuthConfigurationError, AuthUnavailableError, ValidationError, ConflictError, TooManyRequestsError, PayloadTooLargeError, UnsupportedMediaTypeError, MalformedMultipartError } from './http.js';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/errors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAC1D,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,cAAc,EAAE,qBAAqB,EAAE,eAAe,EAAE,aAAa,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/errors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAC1D,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,cAAc,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,eAAe,EAAE,aAAa,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAA"}
@@ -1,3 +1,3 @@
1
1
  export { PipeworkError, isPipeworkError } from './base.js';
2
- export { NotFoundError, UnauthorizedError, ForbiddenError, CrossSiteRequestError, ValidationError, ConflictError, TooManyRequestsError, PayloadTooLargeError, UnsupportedMediaTypeError, MalformedMultipartError } from './http.js';
2
+ export { NotFoundError, UnauthorizedError, ForbiddenError, CrossSiteRequestError, AuthConfigurationError, AuthUnavailableError, ValidationError, ConflictError, TooManyRequestsError, PayloadTooLargeError, UnsupportedMediaTypeError, MalformedMultipartError } from './http.js';
3
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/errors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAC1D,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,cAAc,EAAE,qBAAqB,EAAE,eAAe,EAAE,aAAa,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/errors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAC1D,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,cAAc,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,eAAe,EAAE,aAAa,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAA"}
@@ -1,4 +1,4 @@
1
- import { PipeworkError, NotFoundError, UnauthorizedError, ForbiddenError, CrossSiteRequestError, ValidationError, ConflictError, TooManyRequestsError, PayloadTooLargeError, UnsupportedMediaTypeError, MalformedMultipartError } from './index.js';
1
+ import { PipeworkError, NotFoundError, UnauthorizedError, ForbiddenError, CrossSiteRequestError, AuthConfigurationError, AuthUnavailableError, ValidationError, ConflictError, TooManyRequestsError, PayloadTooLargeError, UnsupportedMediaTypeError, MalformedMultipartError } from './index.js';
2
2
  /** Standard error classes — all extend PipeworkError with structured error codes and actionable messages. */
3
3
  export declare const errors: {
4
4
  /** Base error class with code, statusCode, and suggestion fields. */
@@ -9,8 +9,12 @@ export declare const errors: {
9
9
  Unauthorized: typeof UnauthorizedError;
10
10
  /** 403 — authenticated but insufficient permissions. */
11
11
  Forbidden: typeof ForbiddenError;
12
- /** 403 `CROSS_SITE_REQUEST` — a cookie-authenticated write that did not come from the app's own site. */
12
+ /** 403 `CROSS_SITE_REQUEST` — a cookie-authenticated request that did not come from the app's own site. */
13
13
  CrossSiteRequest: typeof CrossSiteRequestError;
14
+ /** 500 `AUTH_CONFIGURATION` — the auth setup itself is faulty (a signing key that will not load); never a refusal of the caller. */
15
+ AuthConfiguration: typeof AuthConfigurationError;
16
+ /** 503 `AUTH_UNAVAILABLE` — authentication could not be decided (its database failed); never read as signed out. */
17
+ AuthUnavailable: typeof AuthUnavailableError;
14
18
  /** 422 — input validation failed, carries field-level details. */
15
19
  Validation: typeof ValidationError;
16
20
  /** 409 — resource state conflict (duplicate, version mismatch). */
@@ -1 +1 @@
1
- {"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../../src/core/errors/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,iBAAiB,EAAE,cAAc,EAAE,qBAAqB,EAAE,eAAe,EAAE,aAAa,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AAEnP,6GAA6G;AAC7G,eAAO,MAAM,MAAM;IACjB,qEAAqE;;IAErE,gCAAgC;;IAEhC,+CAA+C;;IAE/C,wDAAwD;;IAExD,yGAAyG;;IAEzG,kEAAkE;;IAElE,mEAAmE;;IAEnE,4FAA4F;;IAE5F,sDAAsD;;IAEtD,+DAA+D;;IAE/D,8GAA8G;;CAE/G,CAAA"}
1
+ {"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../../src/core/errors/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,iBAAiB,EAAE,cAAc,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,eAAe,EAAE,aAAa,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AAEjS,6GAA6G;AAC7G,eAAO,MAAM,MAAM;IACjB,qEAAqE;;IAErE,gCAAgC;;IAEhC,+CAA+C;;IAE/C,wDAAwD;;IAExD,2GAA2G;;IAE3G,oIAAoI;;IAEpI,oHAAoH;;IAEpH,kEAAkE;;IAElE,mEAAmE;;IAEnE,4FAA4F;;IAE5F,sDAAsD;;IAEtD,+DAA+D;;IAE/D,8GAA8G;;CAE/G,CAAA"}
@@ -1,4 +1,4 @@
1
- import { PipeworkError, NotFoundError, UnauthorizedError, ForbiddenError, CrossSiteRequestError, ValidationError, ConflictError, TooManyRequestsError, PayloadTooLargeError, UnsupportedMediaTypeError, MalformedMultipartError } from './index.js';
1
+ import { PipeworkError, NotFoundError, UnauthorizedError, ForbiddenError, CrossSiteRequestError, AuthConfigurationError, AuthUnavailableError, ValidationError, ConflictError, TooManyRequestsError, PayloadTooLargeError, UnsupportedMediaTypeError, MalformedMultipartError } from './index.js';
2
2
  /** Standard error classes — all extend PipeworkError with structured error codes and actionable messages. */
3
3
  export const errors = {
4
4
  /** Base error class with code, statusCode, and suggestion fields. */
@@ -9,8 +9,12 @@ export const errors = {
9
9
  Unauthorized: UnauthorizedError,
10
10
  /** 403 — authenticated but insufficient permissions. */
11
11
  Forbidden: ForbiddenError,
12
- /** 403 `CROSS_SITE_REQUEST` — a cookie-authenticated write that did not come from the app's own site. */
12
+ /** 403 `CROSS_SITE_REQUEST` — a cookie-authenticated request that did not come from the app's own site. */
13
13
  CrossSiteRequest: CrossSiteRequestError,
14
+ /** 500 `AUTH_CONFIGURATION` — the auth setup itself is faulty (a signing key that will not load); never a refusal of the caller. */
15
+ AuthConfiguration: AuthConfigurationError,
16
+ /** 503 `AUTH_UNAVAILABLE` — authentication could not be decided (its database failed); never read as signed out. */
17
+ AuthUnavailable: AuthUnavailableError,
14
18
  /** 422 — input validation failed, carries field-level details. */
15
19
  Validation: ValidationError,
16
20
  /** 409 — resource state conflict (duplicate, version mismatch). */
@@ -1 +1 @@
1
- {"version":3,"file":"namespace.js","sourceRoot":"","sources":["../../../src/core/errors/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,iBAAiB,EAAE,cAAc,EAAE,qBAAqB,EAAE,eAAe,EAAE,aAAa,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AAEnP,6GAA6G;AAC7G,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,qEAAqE;IACrE,IAAI,EAAE,aAAa;IACnB,gCAAgC;IAChC,QAAQ,EAAE,aAAa;IACvB,+CAA+C;IAC/C,YAAY,EAAE,iBAAiB;IAC/B,wDAAwD;IACxD,SAAS,EAAE,cAAc;IACzB,yGAAyG;IACzG,gBAAgB,EAAE,qBAAqB;IACvC,kEAAkE;IAClE,UAAU,EAAE,eAAe;IAC3B,mEAAmE;IACnE,QAAQ,EAAE,aAAa;IACvB,4FAA4F;IAC5F,eAAe,EAAE,oBAAoB;IACrC,sDAAsD;IACtD,eAAe,EAAE,oBAAoB;IACrC,+DAA+D;IAC/D,oBAAoB,EAAE,yBAAyB;IAC/C,8GAA8G;IAC9G,kBAAkB,EAAE,uBAAuB;CAC5C,CAAA"}
1
+ {"version":3,"file":"namespace.js","sourceRoot":"","sources":["../../../src/core/errors/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,iBAAiB,EAAE,cAAc,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,eAAe,EAAE,aAAa,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AAEjS,6GAA6G;AAC7G,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,qEAAqE;IACrE,IAAI,EAAE,aAAa;IACnB,gCAAgC;IAChC,QAAQ,EAAE,aAAa;IACvB,+CAA+C;IAC/C,YAAY,EAAE,iBAAiB;IAC/B,wDAAwD;IACxD,SAAS,EAAE,cAAc;IACzB,2GAA2G;IAC3G,gBAAgB,EAAE,qBAAqB;IACvC,oIAAoI;IACpI,iBAAiB,EAAE,sBAAsB;IACzC,oHAAoH;IACpH,eAAe,EAAE,oBAAoB;IACrC,kEAAkE;IAClE,UAAU,EAAE,eAAe;IAC3B,mEAAmE;IACnE,QAAQ,EAAE,aAAa;IACvB,4FAA4F;IAC5F,eAAe,EAAE,oBAAoB;IACrC,sDAAsD;IACtD,eAAe,EAAE,oBAAoB;IACrC,+DAA+D;IAC/D,oBAAoB,EAAE,yBAAyB;IAC/C,8GAA8G;IAC9G,kBAAkB,EAAE,uBAAuB;CAC5C,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pipework",
3
- "version": "0.187.0",
3
+ "version": "0.188.0",
4
4
  "description": "TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -1,24 +0,0 @@
1
- export interface AwsCredentials {
2
- readonly accessKeyId: string;
3
- readonly secretAccessKey: string;
4
- readonly sessionToken?: string;
5
- }
6
- export interface SigV4Request {
7
- readonly method: string;
8
- readonly url: string;
9
- /** Headers to sign and send, other than host and x-amz-date, which are added. */
10
- readonly headers: Readonly<Record<string, string>>;
11
- readonly body: string | Buffer;
12
- readonly region: string;
13
- readonly service: string;
14
- readonly credentials: AwsCredentials;
15
- readonly now?: Date;
16
- }
17
- /**
18
- * Signs a request with AWS Signature Version 4 and returns the headers to send:
19
- * the given ones, `x-amz-date`, `x-amz-security-token` when the credentials carry
20
- * a session token, and `authorization`. `host` is signed but not returned; the
21
- * HTTP client sets it from the URL.
22
- */
23
- export declare function signV4(req: SigV4Request): Record<string, string>;
24
- //# sourceMappingURL=sigv4.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sigv4.d.ts","sourceRoot":"","sources":["../../../src/infra/email/sigv4.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAC/B;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,iFAAiF;IACjF,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAClD,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAA;IACpC,QAAQ,CAAC,GAAG,CAAC,EAAE,IAAI,CAAA;CACpB;AAkBD;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAwChE"}
@@ -1,55 +0,0 @@
1
- import { createHash, createHmac } from 'node:crypto';
2
- function sha256Hex(data) {
3
- return createHash('sha256').update(data).digest('hex');
4
- }
5
- function hmac(key, data) {
6
- return createHmac('sha256', key).update(data).digest();
7
- }
8
- function uriEncode(s) {
9
- return encodeURIComponent(s).replace(/[!'()*]/g, c => `%${c.charCodeAt(0).toString(16).toUpperCase()}`);
10
- }
11
- function amzDate(d) {
12
- return d.toISOString().replace(/[-:]/g, '').replace(/\.\d{3}/, '');
13
- }
14
- /**
15
- * Signs a request with AWS Signature Version 4 and returns the headers to send:
16
- * the given ones, `x-amz-date`, `x-amz-security-token` when the credentials carry
17
- * a session token, and `authorization`. `host` is signed but not returned; the
18
- * HTTP client sets it from the URL.
19
- */
20
- export function signV4(req) {
21
- const url = new URL(req.url);
22
- const stamp = amzDate(req.now ?? new Date());
23
- const day = stamp.slice(0, 8);
24
- const headers = {};
25
- for (const [name, value] of Object.entries(req.headers))
26
- headers[name.toLowerCase()] = value.trim().replace(/\s+/g, ' ');
27
- headers['x-amz-date'] = stamp;
28
- if (req.credentials.sessionToken !== undefined)
29
- headers['x-amz-security-token'] = req.credentials.sessionToken;
30
- const signed = { ...headers, host: url.host };
31
- const names = Object.keys(signed).sort();
32
- const canonicalHeaders = names.map(n => `${n}:${signed[n]}\n`).join('');
33
- const signedHeaders = names.join(';');
34
- const canonicalPath = url.pathname.split('/').map(uriEncode).join('/');
35
- const canonicalQuery = [...url.searchParams.entries()]
36
- .map(([k, v]) => [uriEncode(k), uriEncode(v)])
37
- .sort((a, b) => (a[0] === b[0] ? (a[1] < b[1] ? -1 : a[1] > b[1] ? 1 : 0) : (a[0] < b[0] ? -1 : 1)))
38
- .map(([k, v]) => `${k}=${v}`)
39
- .join('&');
40
- const canonicalRequest = [
41
- req.method.toUpperCase(), canonicalPath, canonicalQuery, canonicalHeaders, signedHeaders, sha256Hex(req.body),
42
- ].join('\n');
43
- const scope = `${day}/${req.region}/${req.service}/aws4_request`;
44
- const stringToSign = ['AWS4-HMAC-SHA256', stamp, scope, sha256Hex(canonicalRequest)].join('\n');
45
- const kDate = hmac(`AWS4${req.credentials.secretAccessKey}`, day);
46
- const kRegion = hmac(kDate, req.region);
47
- const kService = hmac(kRegion, req.service);
48
- const kSigning = hmac(kService, 'aws4_request');
49
- const signature = createHmac('sha256', kSigning).update(stringToSign).digest('hex');
50
- return {
51
- ...headers,
52
- authorization: `AWS4-HMAC-SHA256 Credential=${req.credentials.accessKeyId}/${scope}, SignedHeaders=${signedHeaders}, Signature=${signature}`,
53
- };
54
- }
55
- //# sourceMappingURL=sigv4.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sigv4.js","sourceRoot":"","sources":["../../../src/infra/email/sigv4.ts"],"names":[],"mappings":"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"}