@heyatom/bastion-client 0.7.2 → 0.8.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 (61) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/README.md +144 -46
  3. package/dist/cjs/core/api-client.d.ts +16 -5
  4. package/dist/cjs/core/api-client.js +23 -5
  5. package/dist/cjs/core/bastion-http.d.ts +7 -0
  6. package/dist/cjs/core/bastion-http.js +27 -3
  7. package/dist/cjs/core/errors.d.ts +17 -2
  8. package/dist/cjs/core/errors.js +22 -2
  9. package/dist/cjs/core/jwks-verifier.d.ts +1 -1
  10. package/dist/cjs/core/jwks-verifier.js +11 -10
  11. package/dist/cjs/core/jwt.d.ts +13 -0
  12. package/dist/cjs/core/jwt.js +55 -0
  13. package/dist/cjs/core/service-token-provider.js +2 -2
  14. package/dist/cjs/nest/bastion-api-client.provider.d.ts +3 -2
  15. package/dist/cjs/nest/bastion-api-client.provider.js +3 -2
  16. package/dist/cjs/nest/bastion-http-exception.d.ts +16 -6
  17. package/dist/cjs/nest/bastion-http-exception.js +38 -7
  18. package/dist/cjs/nest/bastion.module.d.ts +5 -3
  19. package/dist/cjs/nest/bastion.module.js +8 -1
  20. package/dist/cjs/nest/bastion.service.d.ts +1 -1
  21. package/dist/cjs/nest/bastion.service.js +7 -2
  22. package/dist/cjs/nest/decorators/current-user.decorator.d.ts +2 -0
  23. package/dist/cjs/nest/decorators/current-user.decorator.js +3 -1
  24. package/dist/cjs/nest/guards/app-user.guard.d.ts +16 -0
  25. package/dist/cjs/nest/guards/app-user.guard.js +47 -0
  26. package/dist/cjs/nest/index.d.ts +3 -1
  27. package/dist/cjs/nest/index.js +6 -1
  28. package/dist/cjs/nest/options.d.ts +7 -0
  29. package/dist/cjs/nest/request-context.d.ts +10 -0
  30. package/dist/cjs/nest/request-context.js +19 -0
  31. package/dist/cjs/webhooks/index.d.ts +2 -1
  32. package/dist/esm/core/api-client.d.ts +16 -5
  33. package/dist/esm/core/api-client.js +24 -6
  34. package/dist/esm/core/bastion-http.d.ts +7 -0
  35. package/dist/esm/core/bastion-http.js +28 -4
  36. package/dist/esm/core/errors.d.ts +17 -2
  37. package/dist/esm/core/errors.js +21 -2
  38. package/dist/esm/core/jwks-verifier.d.ts +1 -1
  39. package/dist/esm/core/jwks-verifier.js +11 -10
  40. package/dist/esm/core/jwt.d.ts +13 -0
  41. package/dist/esm/core/jwt.js +50 -0
  42. package/dist/esm/core/service-token-provider.js +2 -2
  43. package/dist/esm/nest/bastion-api-client.provider.d.ts +3 -2
  44. package/dist/esm/nest/bastion-api-client.provider.js +3 -2
  45. package/dist/esm/nest/bastion-http-exception.d.ts +16 -6
  46. package/dist/esm/nest/bastion-http-exception.js +40 -9
  47. package/dist/esm/nest/bastion.module.d.ts +5 -3
  48. package/dist/esm/nest/bastion.module.js +9 -2
  49. package/dist/esm/nest/bastion.service.d.ts +1 -1
  50. package/dist/esm/nest/bastion.service.js +7 -2
  51. package/dist/esm/nest/decorators/current-user.decorator.d.ts +2 -0
  52. package/dist/esm/nest/decorators/current-user.decorator.js +2 -0
  53. package/dist/esm/nest/guards/app-user.guard.d.ts +16 -0
  54. package/dist/esm/nest/guards/app-user.guard.js +44 -0
  55. package/dist/esm/nest/index.d.ts +3 -1
  56. package/dist/esm/nest/index.js +3 -1
  57. package/dist/esm/nest/options.d.ts +7 -0
  58. package/dist/esm/nest/request-context.d.ts +10 -0
  59. package/dist/esm/nest/request-context.js +15 -0
  60. package/dist/esm/webhooks/index.d.ts +2 -1
  61. package/package.json +3 -3
@@ -0,0 +1,10 @@
1
+ /** Express/Fastify middleware: keeps the request reachable for the rest of its async chain. */
2
+ export declare function requestContextMiddleware(req: {
3
+ id?: unknown;
4
+ }, _res: unknown, next: () => void): void;
5
+ /**
6
+ * The served request's own id, `req.id` as set by pino-http (`genReqId`, api.md §7):
7
+ * the default `requestId` of `BastionModule`. Read lazily, so the logger
8
+ * middleware may run before or after this one.
9
+ */
10
+ export declare function currentRequestId(): string | undefined;
@@ -0,0 +1,15 @@
1
+ import { AsyncLocalStorage } from 'node:async_hooks';
2
+ const store = new AsyncLocalStorage();
3
+ /** Express/Fastify middleware: keeps the request reachable for the rest of its async chain. */
4
+ export function requestContextMiddleware(req, _res, next) {
5
+ store.run(req, next);
6
+ }
7
+ /**
8
+ * The served request's own id, `req.id` as set by pino-http (`genReqId`, api.md §7):
9
+ * the default `requestId` of `BastionModule`. Read lazily, so the logger
10
+ * middleware may run before or after this one.
11
+ */
12
+ export function currentRequestId() {
13
+ const id = store.getStore()?.id;
14
+ return typeof id === 'string' ? id : undefined;
15
+ }
@@ -29,7 +29,8 @@ export interface VerifyWebhookOptions {
29
29
  * Accept the legacy body-only `X-Bastion-Signature` when v2 is absent.
30
30
  * Default `false`: legacy carries no timestamp or delivery id, so accepting
31
31
  * it lets anyone holding an old delivery replay it by stripping the v2
32
- * header. Opt in only while migrating a consumer that cannot see v2 yet.
32
+ * header. Bastion no longer sends the legacy header, so there is nothing
33
+ * left to migrate: leave it off.
33
34
  */
34
35
  allowLegacySignature?: boolean;
35
36
  /** Max age of `t` on a v2 signature, default 300 s. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@heyatom/bastion-client",
3
- "version": "0.7.2",
3
+ "version": "0.8.0",
4
4
  "description": "Consumer SDK for the Bastion identity provider: JWKS verification, service-client auth, audit writes, NestJS guards",
5
5
  "license": "MIT",
6
6
  "author": "Andrea Tombolato <hey@heyatom.dev> (https://heyatom.dev)",
@@ -10,7 +10,8 @@
10
10
  },
11
11
  "files": [
12
12
  "dist",
13
- "README.md"
13
+ "README.md",
14
+ "CHANGELOG.md"
14
15
  ],
15
16
  "main": "./dist/cjs/core/index.js",
16
17
  "module": "./dist/esm/core/index.js",
@@ -60,7 +61,6 @@
60
61
  "peerDependencies": {
61
62
  "@nestjs/common": "^11.0.0",
62
63
  "@nestjs/core": "^11.0.0",
63
- "jose": "^6.0.0",
64
64
  "reflect-metadata": "^0.2.0",
65
65
  "rxjs": "^7.0.0"
66
66
  },