@kypacs/sdk 1.0.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 (79) hide show
  1. package/README.md +307 -0
  2. package/dist/.tsbuildinfo +1 -0
  3. package/dist/client.d.ts +26 -0
  4. package/dist/client.d.ts.map +1 -0
  5. package/dist/client.js +44 -0
  6. package/dist/client.js.map +1 -0
  7. package/dist/config.d.ts +25 -0
  8. package/dist/config.d.ts.map +1 -0
  9. package/dist/config.js +22 -0
  10. package/dist/config.js.map +1 -0
  11. package/dist/errors.d.ts +42 -0
  12. package/dist/errors.d.ts.map +1 -0
  13. package/dist/errors.js +82 -0
  14. package/dist/errors.js.map +1 -0
  15. package/dist/http.d.ts +19 -0
  16. package/dist/http.d.ts.map +1 -0
  17. package/dist/http.js +143 -0
  18. package/dist/http.js.map +1 -0
  19. package/dist/index.d.ts +10 -0
  20. package/dist/index.d.ts.map +1 -0
  21. package/dist/index.js +19 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/resources/billing.d.ts +12 -0
  24. package/dist/resources/billing.d.ts.map +1 -0
  25. package/dist/resources/billing.js +27 -0
  26. package/dist/resources/billing.js.map +1 -0
  27. package/dist/resources/businesses.d.ts +14 -0
  28. package/dist/resources/businesses.d.ts.map +1 -0
  29. package/dist/resources/businesses.js +43 -0
  30. package/dist/resources/businesses.js.map +1 -0
  31. package/dist/resources/cases.d.ts +15 -0
  32. package/dist/resources/cases.d.ts.map +1 -0
  33. package/dist/resources/cases.js +46 -0
  34. package/dist/resources/cases.js.map +1 -0
  35. package/dist/resources/documents.d.ts +15 -0
  36. package/dist/resources/documents.d.ts.map +1 -0
  37. package/dist/resources/documents.js +30 -0
  38. package/dist/resources/documents.js.map +1 -0
  39. package/dist/resources/reports.d.ts +177 -0
  40. package/dist/resources/reports.d.ts.map +1 -0
  41. package/dist/resources/reports.js +44 -0
  42. package/dist/resources/reports.js.map +1 -0
  43. package/dist/resources/screenings.d.ts +14 -0
  44. package/dist/resources/screenings.d.ts.map +1 -0
  45. package/dist/resources/screenings.js +43 -0
  46. package/dist/resources/screenings.js.map +1 -0
  47. package/dist/resources/tenants.d.ts +11 -0
  48. package/dist/resources/tenants.d.ts.map +1 -0
  49. package/dist/resources/tenants.js +24 -0
  50. package/dist/resources/tenants.js.map +1 -0
  51. package/dist/resources/users.d.ts +12 -0
  52. package/dist/resources/users.d.ts.map +1 -0
  53. package/dist/resources/users.js +27 -0
  54. package/dist/resources/users.js.map +1 -0
  55. package/dist/resources/verifications.d.ts +15 -0
  56. package/dist/resources/verifications.d.ts.map +1 -0
  57. package/dist/resources/verifications.js +46 -0
  58. package/dist/resources/verifications.js.map +1 -0
  59. package/dist/resources/webhooks.d.ts +12 -0
  60. package/dist/resources/webhooks.d.ts.map +1 -0
  61. package/dist/resources/webhooks.js +27 -0
  62. package/dist/resources/webhooks.js.map +1 -0
  63. package/dist/types/api.d.ts +146 -0
  64. package/dist/types/api.d.ts.map +1 -0
  65. package/dist/types/api.js +3 -0
  66. package/dist/types/api.js.map +1 -0
  67. package/dist/types/generated.d.ts +16642 -0
  68. package/dist/types/generated.d.ts.map +1 -0
  69. package/dist/types/generated.js +10 -0
  70. package/dist/types/generated.js.map +1 -0
  71. package/dist/types/openapi-spec.generated.d.ts +12308 -0
  72. package/dist/types/openapi-spec.generated.d.ts.map +1 -0
  73. package/dist/types/openapi-spec.generated.js +7 -0
  74. package/dist/types/openapi-spec.generated.js.map +1 -0
  75. package/dist/webhook-verification.d.ts +21 -0
  76. package/dist/webhook-verification.d.ts.map +1 -0
  77. package/dist/webhook-verification.js +35 -0
  78. package/dist/webhook-verification.js.map +1 -0
  79. package/package.json +33 -0
@@ -0,0 +1,21 @@
1
+ export interface VerifyWebhookSignatureParams {
2
+ /** Raw request body string. */
3
+ payload: string;
4
+ /** Value of the X-PaciKYC-Signature header. */
5
+ signature: string;
6
+ /** Value of the X-PaciKYC-Timestamp header (unix seconds). */
7
+ timestamp: string;
8
+ /** Webhook signing secret (whsec_xxx). */
9
+ secret: string;
10
+ /** Maximum allowed age of the webhook in seconds. Default: 300 (5 minutes). */
11
+ tolerance?: number;
12
+ }
13
+ /**
14
+ * Verify a PaciKYC webhook signature.
15
+ *
16
+ * Signs `${timestamp}.${payload}` with HMAC-SHA256 using the webhook secret,
17
+ * then constant-time compares against the provided signature. Also rejects
18
+ * payloads whose timestamp is older than `tolerance` seconds.
19
+ */
20
+ export declare function verifyWebhookSignature(params: VerifyWebhookSignatureParams): boolean;
21
+ //# sourceMappingURL=webhook-verification.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhook-verification.d.ts","sourceRoot":"","sources":["../src/webhook-verification.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,4BAA4B;IAC3C,+BAA+B;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,+CAA+C;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,8DAA8D;IAC9D,SAAS,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAID;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,4BAA4B,GAAG,OAAO,CAyBpF"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.verifyWebhookSignature = verifyWebhookSignature;
4
+ const node_crypto_1 = require("node:crypto");
5
+ const DEFAULT_TOLERANCE_SECONDS = 300;
6
+ /**
7
+ * Verify a PaciKYC webhook signature.
8
+ *
9
+ * Signs `${timestamp}.${payload}` with HMAC-SHA256 using the webhook secret,
10
+ * then constant-time compares against the provided signature. Also rejects
11
+ * payloads whose timestamp is older than `tolerance` seconds.
12
+ */
13
+ function verifyWebhookSignature(params) {
14
+ const { payload, signature, timestamp, secret, tolerance = DEFAULT_TOLERANCE_SECONDS } = params;
15
+ const ts = parseInt(timestamp, 10);
16
+ if (isNaN(ts)) {
17
+ return false;
18
+ }
19
+ const now = Math.floor(Date.now() / 1000);
20
+ if (Math.abs(now - ts) > tolerance) {
21
+ return false;
22
+ }
23
+ const signedContent = `${timestamp}.${payload}`;
24
+ const expectedSignature = (0, node_crypto_1.createHmac)('sha256', secret).update(signedContent).digest('hex');
25
+ if (signature.length !== expectedSignature.length) {
26
+ return false;
27
+ }
28
+ try {
29
+ return (0, node_crypto_1.timingSafeEqual)(Buffer.from(signature, 'hex'), Buffer.from(expectedSignature, 'hex'));
30
+ }
31
+ catch {
32
+ return false;
33
+ }
34
+ }
35
+ //# sourceMappingURL=webhook-verification.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhook-verification.js","sourceRoot":"","sources":["../src/webhook-verification.ts"],"names":[],"mappings":";;AAwBA,wDAyBC;AAjDD,6CAA0D;AAe1D,MAAM,yBAAyB,GAAG,GAAG,CAAC;AAEtC;;;;;;GAMG;AACH,SAAgB,sBAAsB,CAAC,MAAoC;IACzE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,yBAAyB,EAAE,GAAG,MAAM,CAAC;IAEhG,MAAM,EAAE,GAAG,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IACnC,IAAI,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;QACd,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAC1C,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC;QACnC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,aAAa,GAAG,GAAG,SAAS,IAAI,OAAO,EAAE,CAAC;IAChD,MAAM,iBAAiB,GAAG,IAAA,wBAAU,EAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAE3F,IAAI,SAAS,CAAC,MAAM,KAAK,iBAAiB,CAAC,MAAM,EAAE,CAAC;QAClD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC;QACH,OAAO,IAAA,6BAAe,EAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC,CAAC;IAC/F,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
package/package.json ADDED
@@ -0,0 +1,33 @@
1
+ {
2
+ "name": "@kypacs/sdk",
3
+ "version": "1.0.0",
4
+ "description": "TypeScript SDK for the KYPACS API — typed methods for KYC/KYB verification, AML screening, and compliance management",
5
+ "main": "./dist/index.js",
6
+ "types": "./dist/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "types": "./dist/index.d.ts",
10
+ "default": "./dist/index.js"
11
+ }
12
+ },
13
+ "files": [
14
+ "dist",
15
+ "README.md"
16
+ ],
17
+ "publishConfig": {
18
+ "access": "public"
19
+ },
20
+ "scripts": {
21
+ "build": "tsc --build",
22
+ "type-check": "tsc --noEmit",
23
+ "lint": "eslint \"src/**/*.ts\" --ignore-pattern \"**/*.spec.ts\"",
24
+ "test": "vitest run",
25
+ "test:integration": "vitest run --config vitest.integration.config.ts",
26
+ "generate-sdk": "bash ../../infrastructure/scripts/generate-sdk.sh"
27
+ },
28
+ "devDependencies": {
29
+ "@types/node": "^20.0.0",
30
+ "typescript": "^5.6.3",
31
+ "vitest": "^2.1.5"
32
+ }
33
+ }