@grantex/sdk 0.6.0 → 0.7.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 (181) hide show
  1. package/LICENSE +185 -185
  2. package/NOTICE +16 -16
  3. package/README.md +974 -947
  4. package/dist/authorization-details.d.ts +86 -0
  5. package/dist/authorization-details.d.ts.map +1 -0
  6. package/dist/authorization-details.js +209 -0
  7. package/dist/authorization-details.js.map +1 -0
  8. package/dist/canonical.d.ts +47 -0
  9. package/dist/canonical.d.ts.map +1 -0
  10. package/dist/canonical.js +163 -0
  11. package/dist/canonical.js.map +1 -0
  12. package/dist/caps/index.d.ts +19 -0
  13. package/dist/caps/index.d.ts.map +1 -0
  14. package/dist/caps/index.js +19 -0
  15. package/dist/caps/index.js.map +1 -0
  16. package/dist/caps/limits.d.ts +40 -0
  17. package/dist/caps/limits.d.ts.map +1 -0
  18. package/dist/caps/limits.js +109 -0
  19. package/dist/caps/limits.js.map +1 -0
  20. package/dist/caps/memory.d.ts +15 -0
  21. package/dist/caps/memory.d.ts.map +1 -0
  22. package/dist/caps/memory.js +57 -0
  23. package/dist/caps/memory.js.map +1 -0
  24. package/dist/caps/meter.d.ts +107 -0
  25. package/dist/caps/meter.d.ts.map +1 -0
  26. package/dist/caps/meter.js +200 -0
  27. package/dist/caps/meter.js.map +1 -0
  28. package/dist/caps/postgres.d.ts +64 -0
  29. package/dist/caps/postgres.d.ts.map +1 -0
  30. package/dist/caps/postgres.js +221 -0
  31. package/dist/caps/postgres.js.map +1 -0
  32. package/dist/caps/redis.d.ts +45 -0
  33. package/dist/caps/redis.d.ts.map +1 -0
  34. package/dist/caps/redis.js +173 -0
  35. package/dist/caps/redis.js.map +1 -0
  36. package/dist/client.d.ts +12 -0
  37. package/dist/client.d.ts.map +1 -1
  38. package/dist/client.js +517 -57
  39. package/dist/client.js.map +1 -1
  40. package/dist/decisions/action.d.ts +51 -0
  41. package/dist/decisions/action.d.ts.map +1 -0
  42. package/dist/decisions/action.js +237 -0
  43. package/dist/decisions/action.js.map +1 -0
  44. package/dist/decisions/index.d.ts +11 -0
  45. package/dist/decisions/index.d.ts.map +1 -0
  46. package/dist/decisions/index.js +8 -0
  47. package/dist/decisions/index.js.map +1 -0
  48. package/dist/decisions/verify.d.ts +103 -0
  49. package/dist/decisions/verify.d.ts.map +1 -0
  50. package/dist/decisions/verify.js +277 -0
  51. package/dist/decisions/verify.js.map +1 -0
  52. package/dist/denials.d.ts +132 -0
  53. package/dist/denials.d.ts.map +1 -0
  54. package/dist/denials.js +129 -0
  55. package/dist/denials.js.map +1 -0
  56. package/dist/evidence/build.d.ts +63 -0
  57. package/dist/evidence/build.d.ts.map +1 -0
  58. package/dist/evidence/build.js +201 -0
  59. package/dist/evidence/build.js.map +1 -0
  60. package/dist/evidence/canonical.d.ts +3 -0
  61. package/dist/evidence/canonical.d.ts.map +1 -0
  62. package/dist/evidence/canonical.js +3 -0
  63. package/dist/evidence/canonical.js.map +1 -0
  64. package/dist/evidence/checks.d.ts +13 -0
  65. package/dist/evidence/checks.d.ts.map +1 -0
  66. package/dist/evidence/checks.js +406 -0
  67. package/dist/evidence/checks.js.map +1 -0
  68. package/dist/evidence/document.d.ts +8 -0
  69. package/dist/evidence/document.d.ts.map +1 -0
  70. package/dist/evidence/document.js +298 -0
  71. package/dist/evidence/document.js.map +1 -0
  72. package/dist/evidence/hashing.d.ts +37 -0
  73. package/dist/evidence/hashing.d.ts.map +1 -0
  74. package/dist/evidence/hashing.js +106 -0
  75. package/dist/evidence/hashing.js.map +1 -0
  76. package/dist/evidence/index.d.ts +24 -0
  77. package/dist/evidence/index.d.ts.map +1 -0
  78. package/dist/evidence/index.js +24 -0
  79. package/dist/evidence/index.js.map +1 -0
  80. package/dist/evidence/result.d.ts +88 -0
  81. package/dist/evidence/result.d.ts.map +1 -0
  82. package/dist/evidence/result.js +88 -0
  83. package/dist/evidence/result.js.map +1 -0
  84. package/dist/evidence/schema-1.0.d.ts +2 -0
  85. package/dist/evidence/schema-1.0.d.ts.map +1 -0
  86. package/dist/evidence/schema-1.0.js +1398 -0
  87. package/dist/evidence/schema-1.0.js.map +1 -0
  88. package/dist/evidence/schema.d.ts +13 -0
  89. package/dist/evidence/schema.d.ts.map +1 -0
  90. package/dist/evidence/schema.js +264 -0
  91. package/dist/evidence/schema.js.map +1 -0
  92. package/dist/evidence/signature.d.ts +23 -0
  93. package/dist/evidence/signature.d.ts.map +1 -0
  94. package/dist/evidence/signature.js +136 -0
  95. package/dist/evidence/signature.js.map +1 -0
  96. package/dist/evidence/trace.d.ts +23 -0
  97. package/dist/evidence/trace.d.ts.map +1 -0
  98. package/dist/evidence/trace.js +69 -0
  99. package/dist/evidence/trace.js.map +1 -0
  100. package/dist/evidence/verify.d.ts +29 -0
  101. package/dist/evidence/verify.d.ts.map +1 -0
  102. package/dist/evidence/verify.js +163 -0
  103. package/dist/evidence/verify.js.map +1 -0
  104. package/dist/http.d.ts +12 -1
  105. package/dist/http.d.ts.map +1 -1
  106. package/dist/http.js +11 -5
  107. package/dist/http.js.map +1 -1
  108. package/dist/index.d.ts +16 -3
  109. package/dist/index.d.ts.map +1 -1
  110. package/dist/index.js +16 -2
  111. package/dist/index.js.map +1 -1
  112. package/dist/manifest.d.ts +178 -9
  113. package/dist/manifest.d.ts.map +1 -1
  114. package/dist/manifest.js +379 -16
  115. package/dist/manifest.js.map +1 -1
  116. package/dist/purpose.d.ts +29 -0
  117. package/dist/purpose.d.ts.map +1 -0
  118. package/dist/purpose.js +60 -0
  119. package/dist/purpose.js.map +1 -0
  120. package/dist/resources/agents.js +3 -3
  121. package/dist/resources/agents.js.map +1 -1
  122. package/dist/resources/anomalies.d.ts +3 -1
  123. package/dist/resources/anomalies.d.ts.map +1 -1
  124. package/dist/resources/anomalies.js +7 -1
  125. package/dist/resources/anomalies.js.map +1 -1
  126. package/dist/resources/audit.js +1 -1
  127. package/dist/resources/audit.js.map +1 -1
  128. package/dist/resources/budgets.js +2 -2
  129. package/dist/resources/budgets.js.map +1 -1
  130. package/dist/resources/credentials.js +1 -1
  131. package/dist/resources/credentials.js.map +1 -1
  132. package/dist/resources/decisions.d.ts +69 -0
  133. package/dist/resources/decisions.d.ts.map +1 -0
  134. package/dist/resources/decisions.js +115 -0
  135. package/dist/resources/decisions.js.map +1 -0
  136. package/dist/resources/domains.js +2 -2
  137. package/dist/resources/domains.js.map +1 -1
  138. package/dist/resources/dpdp.js +4 -4
  139. package/dist/resources/dpdp.js.map +1 -1
  140. package/dist/resources/grants.js +2 -2
  141. package/dist/resources/grants.js.map +1 -1
  142. package/dist/resources/policies.js +3 -3
  143. package/dist/resources/policies.js.map +1 -1
  144. package/dist/resources/scim.js +5 -5
  145. package/dist/resources/scim.js.map +1 -1
  146. package/dist/resources/tokens.d.ts.map +1 -1
  147. package/dist/resources/tokens.js +5 -1
  148. package/dist/resources/tokens.js.map +1 -1
  149. package/dist/resources/vault.js +2 -2
  150. package/dist/resources/vault.js.map +1 -1
  151. package/dist/resources/webauthn.d.ts +6 -1
  152. package/dist/resources/webauthn.d.ts.map +1 -1
  153. package/dist/resources/webauthn.js +5 -1
  154. package/dist/resources/webauthn.js.map +1 -1
  155. package/dist/resources/webhooks.js +1 -1
  156. package/dist/resources/webhooks.js.map +1 -1
  157. package/dist/revocations/feed.d.ts +61 -0
  158. package/dist/revocations/feed.d.ts.map +1 -0
  159. package/dist/revocations/feed.js +282 -0
  160. package/dist/revocations/feed.js.map +1 -0
  161. package/dist/revocations/index.d.ts +20 -0
  162. package/dist/revocations/index.d.ts.map +1 -0
  163. package/dist/revocations/index.js +19 -0
  164. package/dist/revocations/index.js.map +1 -0
  165. package/dist/revocations/set.d.ts +59 -0
  166. package/dist/revocations/set.d.ts.map +1 -0
  167. package/dist/revocations/set.js +87 -0
  168. package/dist/revocations/set.js.map +1 -0
  169. package/dist/scopes.d.ts +26 -0
  170. package/dist/scopes.d.ts.map +1 -0
  171. package/dist/scopes.js +37 -0
  172. package/dist/scopes.js.map +1 -0
  173. package/dist/types.d.ts +121 -4
  174. package/dist/types.d.ts.map +1 -1
  175. package/dist/types.js +0 -1
  176. package/dist/types.js.map +1 -1
  177. package/dist/verify.d.ts +31 -2
  178. package/dist/verify.d.ts.map +1 -1
  179. package/dist/verify.js +236 -29
  180. package/dist/verify.js.map +1 -1
  181. package/package.json +92 -84
@@ -3,6 +3,12 @@ export class AnomaliesClient {
3
3
  constructor(http) {
4
4
  this.#http = http;
5
5
  }
6
+ getResponsePolicy() {
7
+ return this.#http.get('/v1/irregularities/response-policy');
8
+ }
9
+ setResponsePolicy(mode) {
10
+ return this.#http.patch('/v1/irregularities/response-policy', { mode });
11
+ }
6
12
  /** Run anomaly detection across all agents and return detected anomalies. */
7
13
  detect() {
8
14
  return this.#http.post('/v1/anomalies/detect', {});
@@ -14,7 +20,7 @@ export class AnomaliesClient {
14
20
  }
15
21
  /** Acknowledge an anomaly by ID. */
16
22
  acknowledge(anomalyId) {
17
- return this.#http.patch(`/v1/anomalies/${anomalyId}/acknowledge`, {});
23
+ return this.#http.patch(`/v1/anomalies/${encodeURIComponent(anomalyId)}/acknowledge`, {});
18
24
  }
19
25
  }
20
26
  //# sourceMappingURL=anomalies.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"anomalies.js","sourceRoot":"","sources":["../../src/resources/anomalies.ts"],"names":[],"mappings":"AAOA,MAAM,OAAO,eAAe;IACjB,KAAK,CAAa;IAE3B,YAAY,IAAgB;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,6EAA6E;IAC7E,MAAM;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAA0B,sBAAsB,EAAE,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,0FAA0F;IAC1F,IAAI,CAAC,MAAqC;QACxC,MAAM,EAAE,GAAG,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAwB,gBAAgB,EAAE,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,oCAAoC;IACpC,WAAW,CAAC,SAAiB;QAC3B,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAU,iBAAiB,SAAS,cAAc,EAAE,EAAE,CAAC,CAAC;IACjF,CAAC;CACF"}
1
+ {"version":3,"file":"anomalies.js","sourceRoot":"","sources":["../../src/resources/anomalies.ts"],"names":[],"mappings":"AASA,MAAM,OAAO,eAAe;IACjB,KAAK,CAAa;IAE3B,YAAY,IAAgB;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAA6B,oCAAoC,CAAC,CAAC;IAC1F,CAAC;IAED,iBAAiB,CAAC,IAA8B;QAC9C,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAA6B,oCAAoC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IACtG,CAAC;IAED,6EAA6E;IAC7E,MAAM;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAA0B,sBAAsB,EAAE,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,0FAA0F;IAC1F,IAAI,CAAC,MAAqC;QACxC,MAAM,EAAE,GAAG,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAwB,gBAAgB,EAAE,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,oCAAoC;IACpC,WAAW,CAAC,SAAiB;QAC3B,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAU,iBAAiB,kBAAkB,CAAC,SAAS,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IACrG,CAAC;CACF"}
@@ -12,7 +12,7 @@ export class AuditClient {
12
12
  return this.#http.get(path);
13
13
  }
14
14
  get(entryId) {
15
- return this.#http.get(`/v1/audit/${entryId}`);
15
+ return this.#http.get(`/v1/audit/${encodeURIComponent(entryId)}`);
16
16
  }
17
17
  checkpoint() {
18
18
  return this.#http.post('/v1/audit/checkpoints');
@@ -1 +1 @@
1
- {"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/resources/audit.ts"],"names":[],"mappings":"AASA,MAAM,OAAO,WAAW;IACb,KAAK,CAAa;IAE3B,YAAY,IAAgB;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,GAAG,CAAC,MAAsB;QACxB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAa,eAAe,EAAE,MAAM,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,CAAC,MAAwB;QAC3B,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,qBAAqB,KAAK,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC;QACxE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAoB,IAAI,CAAC,CAAC;IACjD,CAAC;IAED,GAAG,CAAC,OAAe;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAa,aAAa,OAAO,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAkB,uBAAuB,CAAC,CAAC;IACnE,CAAC;CACF;AAED,SAAS,UAAU,CAAC,MAAwB;IAC1C,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAC3C,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,CACL,CAAC;IACtC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACpC,OAAO,OAAO;SACX,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5E,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/resources/audit.ts"],"names":[],"mappings":"AASA,MAAM,OAAO,WAAW;IACb,KAAK,CAAa;IAE3B,YAAY,IAAgB;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,GAAG,CAAC,MAAsB;QACxB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAa,eAAe,EAAE,MAAM,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,CAAC,MAAwB;QAC3B,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,qBAAqB,KAAK,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC;QACxE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAoB,IAAI,CAAC,CAAC;IACjD,CAAC;IAED,GAAG,CAAC,OAAe;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAa,aAAa,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAChF,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAkB,uBAAuB,CAAC,CAAC;IACnE,CAAC;CACF;AAED,SAAS,UAAU,CAAC,MAAwB;IAC1C,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAC3C,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,CACL,CAAC;IACtC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACpC,OAAO,OAAO;SACX,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5E,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC"}
@@ -13,7 +13,7 @@ export class BudgetsClient {
13
13
  }
14
14
  /** Get the current budget balance for a grant. */
15
15
  balance(grantId) {
16
- return this.#http.get(`/v1/budget/balance/${grantId}`);
16
+ return this.#http.get(`/v1/budget/balance/${encodeURIComponent(grantId)}`);
17
17
  }
18
18
  /** List budget transactions for a grant. */
19
19
  transactions(grantId, params) {
@@ -23,7 +23,7 @@ export class BudgetsClient {
23
23
  if (params?.pageSize !== undefined)
24
24
  query.set('pageSize', String(params.pageSize));
25
25
  const qs = query.toString();
26
- return this.#http.get(`/v1/budget/transactions/${grantId}${qs ? `?${qs}` : ''}`);
26
+ return this.#http.get(`/v1/budget/transactions/${encodeURIComponent(grantId)}${qs ? `?${qs}` : ''}`);
27
27
  }
28
28
  }
29
29
  //# sourceMappingURL=budgets.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"budgets.js","sourceRoot":"","sources":["../../src/resources/budgets.ts"],"names":[],"mappings":"AASA,MAAM,OAAO,aAAa;IACf,KAAK,CAAa;IAE3B,YAAY,IAAgB;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,8CAA8C;IAC9C,QAAQ,CAAC,MAA4B;QACnC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAmB,qBAAqB,EAAE,MAAM,CAAC,CAAC;IAC1E,CAAC;IAED,6CAA6C;IAC7C,KAAK,CAAC,MAAyB;QAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAsB,kBAAkB,EAAE,MAAM,CAAC,CAAC;IAC1E,CAAC;IAED,kDAAkD;IAClD,OAAO,CAAC,OAAe;QACrB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAmB,sBAAsB,OAAO,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,4CAA4C;IAC5C,YAAY,CACV,OAAe,EACf,MAA6C;QAE7C,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;QACpC,IAAI,MAAM,EAAE,IAAI,KAAK,SAAS;YAAE,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACvE,IAAI,MAAM,EAAE,QAAQ,KAAK,SAAS;YAAE,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QACnF,MAAM,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CACnB,2BAA2B,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAC1D,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"budgets.js","sourceRoot":"","sources":["../../src/resources/budgets.ts"],"names":[],"mappings":"AASA,MAAM,OAAO,aAAa;IACf,KAAK,CAAa;IAE3B,YAAY,IAAgB;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,8CAA8C;IAC9C,QAAQ,CAAC,MAA4B;QACnC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAmB,qBAAqB,EAAE,MAAM,CAAC,CAAC;IAC1E,CAAC;IAED,6CAA6C;IAC7C,KAAK,CAAC,MAAyB;QAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAsB,kBAAkB,EAAE,MAAM,CAAC,CAAC;IAC1E,CAAC;IAED,kDAAkD;IAClD,OAAO,CAAC,OAAe;QACrB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAmB,sBAAsB,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/F,CAAC;IAED,4CAA4C;IAC5C,YAAY,CACV,OAAe,EACf,MAA6C;QAE7C,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;QACpC,IAAI,MAAM,EAAE,IAAI,KAAK,SAAS;YAAE,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACvE,IAAI,MAAM,EAAE,QAAQ,KAAK,SAAS;YAAE,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QACnF,MAAM,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CACnB,2BAA2B,kBAAkB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAC9E,CAAC;IACJ,CAAC;CACF"}
@@ -4,7 +4,7 @@ export class CredentialsClient {
4
4
  this.#http = http;
5
5
  }
6
6
  get(credentialId) {
7
- return this.#http.get(`/v1/credentials/${credentialId}`);
7
+ return this.#http.get(`/v1/credentials/${encodeURIComponent(credentialId)}`);
8
8
  }
9
9
  list(params) {
10
10
  const searchParams = new URLSearchParams();
@@ -1 +1 @@
1
- {"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../src/resources/credentials.ts"],"names":[],"mappings":"AAUA,MAAM,OAAO,iBAAiB;IACnB,KAAK,CAAa;IAE3B,YAAY,IAAgB;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,GAAG,CAAC,YAAoB;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAA6B,mBAAmB,YAAY,EAAE,CAAC,CAAC;IACvF,CAAC;IAED,IAAI,CAAC,MAA8B;QACjC,MAAM,YAAY,GAAG,IAAI,eAAe,EAAE,CAAC;QAC3C,IAAI,MAAM,EAAE,CAAC;YACX,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClD,IAAI,KAAK,KAAK,SAAS;oBAAE,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;QACD,MAAM,EAAE,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAA0B,kBAAkB,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACzF,CAAC;IAED,MAAM,CAAC,KAAa;QAClB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAuB,wBAAwB,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;IAChG,CAAC;IAED,OAAO,CAAC,MAA0B;QAChC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAqB,yBAAyB,EAAE,MAAM,CAAC,CAAC;IAChF,CAAC;CACF"}
1
+ {"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../src/resources/credentials.ts"],"names":[],"mappings":"AAUA,MAAM,OAAO,iBAAiB;IACnB,KAAK,CAAa;IAE3B,YAAY,IAAgB;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,GAAG,CAAC,YAAoB;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAA6B,mBAAmB,kBAAkB,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAC3G,CAAC;IAED,IAAI,CAAC,MAA8B;QACjC,MAAM,YAAY,GAAG,IAAI,eAAe,EAAE,CAAC;QAC3C,IAAI,MAAM,EAAE,CAAC;YACX,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClD,IAAI,KAAK,KAAK,SAAS;oBAAE,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;QACD,MAAM,EAAE,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAA0B,kBAAkB,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACzF,CAAC;IAED,MAAM,CAAC,KAAa;QAClB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAuB,wBAAwB,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;IAChG,CAAC;IAED,OAAO,CAAC,MAA0B;QAChC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAqB,yBAAyB,EAAE,MAAM,CAAC,CAAC;IAChF,CAAC;CACF"}
@@ -0,0 +1,69 @@
1
+ import type { HttpClient } from '../http.js';
2
+ import { type DecisionAction } from '../decisions/action.js';
3
+ import { type DecisionGrantSet } from '../decisions/verify.js';
4
+ /** The issuer's record that decision grants were consumed for one action. */
5
+ export interface ConsumedDecision {
6
+ requestId: string;
7
+ jtis: string[];
8
+ actionHash: string;
9
+ approvers: Record<string, unknown>[];
10
+ }
11
+ /** Consumes decision grants atomically at their issuer. */
12
+ export interface DecisionConsumer {
13
+ consume(grants: DecisionGrantSet, options?: {
14
+ agentId?: string;
15
+ grantId?: string;
16
+ }): Promise<ConsumedDecision>;
17
+ }
18
+ export interface CreateDecisionRequestParams {
19
+ action: DecisionAction;
20
+ connector: string;
21
+ caseVersion: string;
22
+ /** The manifest's `four_eyes_on`; two approvals are required when it lists the decision. */
23
+ /** The memo the approver reviews (text). Stored with its hash and bound into the grant. */
24
+ memo: {
25
+ content: string;
26
+ ref?: string;
27
+ };
28
+ /** The policy score the approver reviews (a JSON object). Stored with its hash and bound into the grant. */
29
+ policyScore: {
30
+ content: Record<string, unknown>;
31
+ ref?: string;
32
+ };
33
+ fourEyesOn?: string[];
34
+ approvalsRequired?: 1 | 2;
35
+ expiresInSeconds?: number;
36
+ agentId?: string;
37
+ grantId?: string;
38
+ }
39
+ export interface ConsumeDecisionParams {
40
+ agentId?: string;
41
+ grantId?: string;
42
+ }
43
+ export declare class DecisionsClient {
44
+ #private;
45
+ constructor(http: HttpClient);
46
+ /** Register the case's current version; unconsumed grants for other versions are revoked. */
47
+ setCaseVersion(caseId: string, caseVersion: string): Promise<Record<string, unknown>>;
48
+ /** Ask a person to decide one semantic action. Idempotent while the request is open. */
49
+ createRequest(params: CreateDecisionRequestParams): Promise<Record<string, unknown>>;
50
+ /** Status and approvals; `decisionGrants` once fully approved and still usable. */
51
+ getRequest(requestId: string): Promise<Record<string, unknown>>;
52
+ cancelRequest(requestId: string): Promise<Record<string, unknown>>;
53
+ /**
54
+ * Consume decision grants atomically at the auth service. Pass a verified
55
+ * `DecisionGrantSet`, or the tokens with the action and case version.
56
+ * Throws `DecisionGrantError` with the issuer's sub-reason when refused and
57
+ * `consume_unavailable` when the issuer cannot be reached or answers
58
+ * unexpectedly: an unconfirmed consumption is never treated as success.
59
+ *
60
+ * Consumption spends the grants. If the response is lost after the auth
61
+ * service consumed them, or the tool call fails afterwards, they stay spent
62
+ * and a person has to approve again.
63
+ */
64
+ consume(grants: DecisionGrantSet | readonly string[], options?: ConsumeDecisionParams & {
65
+ action?: DecisionAction;
66
+ caseVersion?: string;
67
+ }): Promise<ConsumedDecision>;
68
+ }
69
+ //# sourceMappingURL=decisions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decisions.d.ts","sourceRoot":"","sources":["../../src/resources/decisions.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAG7C,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAAsB,KAAK,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAInF,6EAA6E;AAC7E,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;CACtC;AAED,2DAA2D;AAC3D,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,MAAM,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAChH;AAED,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,4FAA4F;IAC5F,2FAA2F;IAC3F,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACxC,4GAA4G;IAC5G,WAAW,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAChE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,iBAAiB,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAMD,qBAAa,eAAe;;IAG1B,YAAY,IAAI,EAAE,UAAU,EAE3B;IAED,6FAA6F;IAC7F,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAEpF;IAED,wFAAwF;IACxF,aAAa,CAAC,MAAM,EAAE,2BAA2B,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAEnF;IAED,mFAAmF;IACnF,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAE9D;IAED,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAEjE;IAED;;;;;;;;;;OAUG;IACG,OAAO,CACX,MAAM,EAAE,gBAAgB,GAAG,SAAS,MAAM,EAAE,EAC5C,OAAO,GAAE,qBAAqB,GAAG;QAAE,MAAM,CAAC,EAAE,cAAc,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAO,GACtF,OAAO,CAAC,gBAAgB,CAAC,CAgE3B;CACF"}
@@ -0,0 +1,115 @@
1
+ /**
2
+ * Auth-service API for decision grants (PRD G-3): `grantex.decisions`.
3
+ *
4
+ * A platform creates decision requests and consumes decision grants with its
5
+ * API key. It cannot approve: a person approves on the auth service's approval
6
+ * page (`approvalPage` in the request) after signing in with an identity
7
+ * provider the service administrator allow-listed. The auth service must run
8
+ * with `DECISION_GRANTS_ENABLED=true`.
9
+ */
10
+ import { decodeJwt } from 'jose';
11
+ import { GrantexApiError, GrantexError } from '../errors.js';
12
+ import { DecisionSubReason } from '../denials.js';
13
+ import { parseDecisionAction } from '../decisions/action.js';
14
+ import { DecisionGrantError } from '../decisions/verify.js';
15
+ const KNOWN_SUB_REASONS = new Set(Object.values(DecisionSubReason));
16
+ function strip(value) {
17
+ return Object.fromEntries(Object.entries(value).filter(([, v]) => v !== undefined));
18
+ }
19
+ export class DecisionsClient {
20
+ #http;
21
+ constructor(http) {
22
+ this.#http = http;
23
+ }
24
+ /** Register the case's current version; unconsumed grants for other versions are revoked. */
25
+ setCaseVersion(caseId, caseVersion) {
26
+ return this.#http.put(`/v1/decisions/cases/${encodeURIComponent(caseId)}`, { caseVersion });
27
+ }
28
+ /** Ask a person to decide one semantic action. Idempotent while the request is open. */
29
+ createRequest(params) {
30
+ return this.#http.post('/v1/decisions/requests', strip({ ...params, action: parseDecisionAction(params.action) }));
31
+ }
32
+ /** Status and approvals; `decisionGrants` once fully approved and still usable. */
33
+ getRequest(requestId) {
34
+ return this.#http.get(`/v1/decisions/requests/${encodeURIComponent(requestId)}`);
35
+ }
36
+ cancelRequest(requestId) {
37
+ return this.#http.post(`/v1/decisions/requests/${encodeURIComponent(requestId)}/cancel`);
38
+ }
39
+ /**
40
+ * Consume decision grants atomically at the auth service. Pass a verified
41
+ * `DecisionGrantSet`, or the tokens with the action and case version.
42
+ * Throws `DecisionGrantError` with the issuer's sub-reason when refused and
43
+ * `consume_unavailable` when the issuer cannot be reached or answers
44
+ * unexpectedly: an unconfirmed consumption is never treated as success.
45
+ *
46
+ * Consumption spends the grants. If the response is lost after the auth
47
+ * service consumed them, or the tool call fails afterwards, they stay spent
48
+ * and a person has to approve again.
49
+ */
50
+ async consume(grants, options = {}) {
51
+ let tokens;
52
+ let action;
53
+ let caseVersion;
54
+ let expectedJtis;
55
+ if (Array.isArray(grants)) {
56
+ if (options.action === undefined || options.caseVersion === undefined) {
57
+ throw new Error('consume needs action and caseVersion when given tokens');
58
+ }
59
+ tokens = [...grants];
60
+ action = parseDecisionAction(options.action);
61
+ caseVersion = options.caseVersion;
62
+ expectedJtis = tokens.map((t) => {
63
+ try {
64
+ const jti = decodeJwt(t).jti;
65
+ return typeof jti === 'string' ? jti : '';
66
+ }
67
+ catch {
68
+ return '';
69
+ }
70
+ });
71
+ }
72
+ else {
73
+ const set = grants;
74
+ tokens = set.grants.map((g) => g.token);
75
+ action = set.action;
76
+ caseVersion = set.caseVersion;
77
+ expectedJtis = set.grants.map((g) => g.jti);
78
+ }
79
+ let data;
80
+ try {
81
+ data = await this.#http.post('/v1/decisions/consume', strip({ decisionGrants: tokens, action, caseVersion, agentId: options.agentId, grantId: options.grantId }), { retry: false });
82
+ }
83
+ catch (err) {
84
+ if (err instanceof GrantexApiError) {
85
+ const body = err.body;
86
+ const subReason = body?.['subReason'];
87
+ if ([400, 404, 409, 410].includes(err.statusCode) && typeof subReason === 'string' && KNOWN_SUB_REASONS.has(subReason)) {
88
+ throw new DecisionGrantError(subReason, err.message);
89
+ }
90
+ }
91
+ if (err instanceof GrantexError) {
92
+ throw new DecisionGrantError(DecisionSubReason.CONSUME_UNAVAILABLE, `decision grant could not be consumed: ${err.message}`);
93
+ }
94
+ throw err;
95
+ }
96
+ const record = data;
97
+ if (!record || record['consumed'] !== true || !Array.isArray(record['jtis'])) {
98
+ throw new DecisionGrantError(DecisionSubReason.CONSUME_UNAVAILABLE, 'unexpected response from the auth service');
99
+ }
100
+ const jtis = record['jtis'].map(String);
101
+ if ([...jtis].sort().join(',') !== [...expectedJtis].sort().join(',')) {
102
+ throw new DecisionGrantError(DecisionSubReason.CONSUME_UNAVAILABLE, 'the auth service consumed different decision grants');
103
+ }
104
+ const approvers = Array.isArray(record['approvers'])
105
+ ? record['approvers'].filter((a) => typeof a === 'object' && a !== null)
106
+ : [];
107
+ return {
108
+ requestId: String(record['requestId'] ?? ''),
109
+ jtis,
110
+ actionHash: String(record['actionHash'] ?? ''),
111
+ approvers,
112
+ };
113
+ }
114
+ }
115
+ //# sourceMappingURL=decisions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decisions.js","sourceRoot":"","sources":["../../src/resources/decisions.ts"],"names":[],"mappings":"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"}
@@ -13,11 +13,11 @@ export class DomainsClient {
13
13
  }
14
14
  /** Verify a custom domain via DNS. */
15
15
  verify(domainId) {
16
- return this.#http.post(`/v1/domains/${domainId}/verify`);
16
+ return this.#http.post(`/v1/domains/${encodeURIComponent(domainId)}/verify`);
17
17
  }
18
18
  /** Delete a custom domain. */
19
19
  delete(domainId) {
20
- return this.#http.delete(`/v1/domains/${domainId}`);
20
+ return this.#http.delete(`/v1/domains/${encodeURIComponent(domainId)}`);
21
21
  }
22
22
  }
23
23
  //# sourceMappingURL=domains.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"domains.js","sourceRoot":"","sources":["../../src/resources/domains.ts"],"names":[],"mappings":"AAQA,MAAM,OAAO,aAAa;IACf,KAAK,CAAa;IAE3B,YAAY,IAAgB;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,0DAA0D;IAC1D,MAAM,CAAC,MAA0B;QAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAuB,aAAa,EAAE,MAAM,CAAC,CAAC;IACtE,CAAC;IAED,2BAA2B;IAC3B,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAsB,aAAa,CAAC,CAAC;IAC5D,CAAC;IAED,sCAAsC;IACtC,MAAM,CAAC,QAAgB;QACrB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAuB,eAAe,QAAQ,SAAS,CAAC,CAAC;IACjF,CAAC;IAED,8BAA8B;IAC9B,MAAM,CAAC,QAAgB;QACrB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,QAAQ,EAAE,CAAC,CAAC;IACtD,CAAC;CACF"}
1
+ {"version":3,"file":"domains.js","sourceRoot":"","sources":["../../src/resources/domains.ts"],"names":[],"mappings":"AAQA,MAAM,OAAO,aAAa;IACf,KAAK,CAAa;IAE3B,YAAY,IAAgB;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,0DAA0D;IAC1D,MAAM,CAAC,MAA0B;QAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAuB,aAAa,EAAE,MAAM,CAAC,CAAC;IACtE,CAAC;IAED,2BAA2B;IAC3B,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAsB,aAAa,CAAC,CAAC;IAC5D,CAAC;IAED,sCAAsC;IACtC,MAAM,CAAC,QAAgB;QACrB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAuB,eAAe,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACrG,CAAC;IAED,8BAA8B;IAC9B,MAAM,CAAC,QAAgB;QACrB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC1E,CAAC;CACF"}
@@ -7,14 +7,14 @@ export class DpdpClient {
7
7
  return this.#http.post('/v1/dpdp/consent-records', params);
8
8
  }
9
9
  getConsentRecord(recordId) {
10
- return this.#http.get(`/v1/dpdp/consent-records/${recordId}`);
10
+ return this.#http.get(`/v1/dpdp/consent-records/${encodeURIComponent(recordId)}`);
11
11
  }
12
12
  listConsentRecords(principalId) {
13
13
  const qs = principalId ? `?dataPrincipalId=${encodeURIComponent(principalId)}` : '';
14
14
  return this.#http.get(`/v1/dpdp/consent-records${qs}`);
15
15
  }
16
16
  withdrawConsent(recordId, params) {
17
- return this.#http.post(`/v1/dpdp/consent-records/${recordId}/withdraw`, params);
17
+ return this.#http.post(`/v1/dpdp/consent-records/${encodeURIComponent(recordId)}/withdraw`, params);
18
18
  }
19
19
  listPrincipalRecords(principalId) {
20
20
  return this.#http.get(`/v1/dpdp/data-principals/${encodeURIComponent(principalId)}/records`);
@@ -31,13 +31,13 @@ export class DpdpClient {
31
31
  return this.#http.post('/v1/dpdp/grievances', params);
32
32
  }
33
33
  getGrievance(grievanceId) {
34
- return this.#http.get(`/v1/dpdp/grievances/${grievanceId}`);
34
+ return this.#http.get(`/v1/dpdp/grievances/${encodeURIComponent(grievanceId)}`);
35
35
  }
36
36
  createExport(params) {
37
37
  return this.#http.post('/v1/dpdp/exports', params);
38
38
  }
39
39
  getExport(exportId) {
40
- return this.#http.get(`/v1/dpdp/exports/${exportId}`);
40
+ return this.#http.get(`/v1/dpdp/exports/${encodeURIComponent(exportId)}`);
41
41
  }
42
42
  }
43
43
  //# sourceMappingURL=dpdp.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dpdp.js","sourceRoot":"","sources":["../../src/resources/dpdp.ts"],"names":[],"mappings":"AAiBA,MAAM,OAAO,UAAU;IACZ,KAAK,CAAa;IAE3B,YAAY,IAAgB;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,mBAAmB,CAAC,MAAiC;QACnD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAgB,0BAA0B,EAAE,MAAM,CAAC,CAAC;IAC5E,CAAC;IAED,gBAAgB,CAAC,QAAgB;QAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAgB,4BAA4B,QAAQ,EAAE,CAAC,CAAC;IAC/E,CAAC;IAED,kBAAkB,CAAC,WAAoB;QACrC,MAAM,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC,oBAAoB,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpF,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAA6B,2BAA2B,EAAE,EAAE,CAAC,CAAC;IACrF,CAAC;IAED,eAAe,CAAC,QAAgB,EAAE,MAA6B;QAC7D,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAA0B,4BAA4B,QAAQ,WAAW,EAAE,MAAM,CAAC,CAAC;IAC3G,CAAC;IAED,oBAAoB,CAAC,WAAmB;QACtC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAA2B,4BAA4B,kBAAkB,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IACzH,CAAC;IAED,cAAc,CAAC,WAAmB;QAChC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAkB,4BAA4B,kBAAkB,CAAC,WAAW,CAAC,UAAU,EAAE;YAC7G,eAAe,EAAE,WAAW;SAC7B,CAAC,CAAC;IACL,CAAC;IAED,mBAAmB,CAAC,MAAiC;QACnD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAgB,0BAA0B,EAAE,MAAM,CAAC,CAAC;IAC5E,CAAC;IAED,aAAa,CAAC,MAA2B;QACvC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,qBAAqB,EAAE,MAAM,CAAC,CAAC;IACnE,CAAC;IAED,YAAY,CAAC,WAAmB;QAC9B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,uBAAuB,WAAW,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,YAAY,CAAC,MAA8B;QACzC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAa,kBAAkB,EAAE,MAAM,CAAC,CAAC;IACjE,CAAC;IAED,SAAS,CAAC,QAAgB;QACxB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAa,oBAAoB,QAAQ,EAAE,CAAC,CAAC;IACpE,CAAC;CACF"}
1
+ {"version":3,"file":"dpdp.js","sourceRoot":"","sources":["../../src/resources/dpdp.ts"],"names":[],"mappings":"AAiBA,MAAM,OAAO,UAAU;IACZ,KAAK,CAAa;IAE3B,YAAY,IAAgB;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,mBAAmB,CAAC,MAAiC;QACnD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAgB,0BAA0B,EAAE,MAAM,CAAC,CAAC;IAC5E,CAAC;IAED,gBAAgB,CAAC,QAAgB;QAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAgB,4BAA4B,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACnG,CAAC;IAED,kBAAkB,CAAC,WAAoB;QACrC,MAAM,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC,oBAAoB,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpF,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAA6B,2BAA2B,EAAE,EAAE,CAAC,CAAC;IACrF,CAAC;IAED,eAAe,CAAC,QAAgB,EAAE,MAA6B;QAC7D,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAA0B,4BAA4B,kBAAkB,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAC/H,CAAC;IAED,oBAAoB,CAAC,WAAmB;QACtC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAA2B,4BAA4B,kBAAkB,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IACzH,CAAC;IAED,cAAc,CAAC,WAAmB;QAChC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAkB,4BAA4B,kBAAkB,CAAC,WAAW,CAAC,UAAU,EAAE;YAC7G,eAAe,EAAE,WAAW;SAC7B,CAAC,CAAC;IACL,CAAC;IAED,mBAAmB,CAAC,MAAiC;QACnD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAgB,0BAA0B,EAAE,MAAM,CAAC,CAAC;IAC5E,CAAC;IAED,aAAa,CAAC,MAA2B;QACvC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,qBAAqB,EAAE,MAAM,CAAC,CAAC;IACnE,CAAC;IAED,YAAY,CAAC,WAAmB;QAC9B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,uBAAuB,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAC7F,CAAC;IAED,YAAY,CAAC,MAA8B;QACzC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAa,kBAAkB,EAAE,MAAM,CAAC,CAAC;IACjE,CAAC;IAED,SAAS,CAAC,QAAgB;QACxB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAa,oBAAoB,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACxF,CAAC;CACF"}
@@ -6,7 +6,7 @@ export class GrantsClient {
6
6
  this.#http = http;
7
7
  }
8
8
  get(grantId) {
9
- return this.#http.get(`/v1/grants/${grantId}`);
9
+ return this.#http.get(`/v1/grants/${encodeURIComponent(grantId)}`);
10
10
  }
11
11
  list(params) {
12
12
  const query = buildQuery(params);
@@ -14,7 +14,7 @@ export class GrantsClient {
14
14
  return this.#http.get(path);
15
15
  }
16
16
  revoke(grantId) {
17
- return this.#http.delete(`/v1/grants/${grantId}`);
17
+ return this.#http.delete(`/v1/grants/${encodeURIComponent(grantId)}`);
18
18
  }
19
19
  /**
20
20
  * Create a delegated sub-agent grant (SPEC §9).
@@ -1 +1 @@
1
- {"version":3,"file":"grants.js","sourceRoot":"","sources":["../../src/resources/grants.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAUjD,MAAM,OAAO,YAAY;IACd,KAAK,CAAa;IAE3B,YAAY,IAAgB;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,GAAG,CAAC,OAAe;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAQ,cAAc,OAAO,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,CAAC,MAAyB;QAC5B,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,cAAc,KAAK,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;QAC1D,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAqB,IAAI,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,CAAC,OAAe;QACpB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAO,cAAc,OAAO,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,MAAsB;QAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,KAAa;QACxB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAKpC,mBAAmB,EACnB,EAAE,KAAK,EAAE,CACV,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACzC,MAAM,IAAI,iBAAiB,CACzB,4BAA4B,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAC5E,CAAC;QACJ,CAAC;QACD,OAAO,qBAAqB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC;CACF;AAED,SAAS,UAAU,CAAC,MAAyB;IAC3C,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAC3C,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,CACL,CAAC;IACtC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACpC,OAAO,OAAO;SACX,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5E,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"grants.js","sourceRoot":"","sources":["../../src/resources/grants.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAUjD,MAAM,OAAO,YAAY;IACd,KAAK,CAAa;IAE3B,YAAY,IAAgB;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,GAAG,CAAC,OAAe;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAQ,cAAc,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,IAAI,CAAC,MAAyB;QAC5B,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,cAAc,KAAK,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;QAC1D,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAqB,IAAI,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,CAAC,OAAe;QACpB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAO,cAAc,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,MAAsB;QAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,KAAa;QACxB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAKpC,mBAAmB,EACnB,EAAE,KAAK,EAAE,CACV,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACzC,MAAM,IAAI,iBAAiB,CACzB,4BAA4B,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAC5E,CAAC;QACJ,CAAC;QACD,OAAO,qBAAqB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC;CACF;AAED,SAAS,UAAU,CAAC,MAAyB;IAC3C,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAC3C,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,CACL,CAAC;IACtC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACpC,OAAO,OAAO;SACX,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5E,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC"}
@@ -13,15 +13,15 @@ export class PoliciesClient {
13
13
  }
14
14
  /** Get a single policy by ID. */
15
15
  get(policyId) {
16
- return this.#http.get(`/v1/policies/${policyId}`);
16
+ return this.#http.get(`/v1/policies/${encodeURIComponent(policyId)}`);
17
17
  }
18
18
  /** Update a policy. */
19
19
  update(policyId, params) {
20
- return this.#http.patch(`/v1/policies/${policyId}`, params);
20
+ return this.#http.patch(`/v1/policies/${encodeURIComponent(policyId)}`, params);
21
21
  }
22
22
  /** Delete a policy. */
23
23
  delete(policyId) {
24
- return this.#http.delete(`/v1/policies/${policyId}`);
24
+ return this.#http.delete(`/v1/policies/${encodeURIComponent(policyId)}`);
25
25
  }
26
26
  }
27
27
  //# sourceMappingURL=policies.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"policies.js","sourceRoot":"","sources":["../../src/resources/policies.ts"],"names":[],"mappings":"AAQA,MAAM,OAAO,cAAc;IAChB,KAAK,CAAa;IAE3B,YAAY,IAAgB;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,2BAA2B;IAC3B,MAAM,CAAC,MAA0B;QAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAS,cAAc,EAAE,MAAM,CAAC,CAAC;IACzD,CAAC;IAED,yDAAyD;IACzD,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAuB,cAAc,CAAC,CAAC;IAC9D,CAAC;IAED,iCAAiC;IACjC,GAAG,CAAC,QAAgB;QAClB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAS,gBAAgB,QAAQ,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,uBAAuB;IACvB,MAAM,CAAC,QAAgB,EAAE,MAA0B;QACjD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAS,gBAAgB,QAAQ,EAAE,EAAE,MAAM,CAAC,CAAC;IACtE,CAAC;IAED,uBAAuB;IACvB,MAAM,CAAC,QAAgB;QACrB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAO,gBAAgB,QAAQ,EAAE,CAAC,CAAC;IAC7D,CAAC;CACF"}
1
+ {"version":3,"file":"policies.js","sourceRoot":"","sources":["../../src/resources/policies.ts"],"names":[],"mappings":"AAQA,MAAM,OAAO,cAAc;IAChB,KAAK,CAAa;IAE3B,YAAY,IAAgB;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,2BAA2B;IAC3B,MAAM,CAAC,MAA0B;QAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAS,cAAc,EAAE,MAAM,CAAC,CAAC;IACzD,CAAC;IAED,yDAAyD;IACzD,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAuB,cAAc,CAAC,CAAC;IAC9D,CAAC;IAED,iCAAiC;IACjC,GAAG,CAAC,QAAgB;QAClB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAS,gBAAgB,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAChF,CAAC;IAED,uBAAuB;IACvB,MAAM,CAAC,QAAgB,EAAE,MAA0B;QACjD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAS,gBAAgB,kBAAkB,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAC1F,CAAC;IAED,uBAAuB;IACvB,MAAM,CAAC,QAAgB;QACrB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAO,gBAAgB,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACjF,CAAC;CACF"}
@@ -14,7 +14,7 @@ export class ScimClient {
14
14
  }
15
15
  /** Revoke a SCIM token by ID. */
16
16
  revokeToken(tokenId) {
17
- return this.#http.delete(`/v1/scim/tokens/${tokenId}`);
17
+ return this.#http.delete(`/v1/scim/tokens/${encodeURIComponent(tokenId)}`);
18
18
  }
19
19
  // ── SCIM 2.0 Users ────────────────────────────────────────────────────
20
20
  /** List provisioned users (SCIM 2.0 ListResponse). */
@@ -29,7 +29,7 @@ export class ScimClient {
29
29
  }
30
30
  /** Get a single provisioned user by ID. */
31
31
  getUser(userId) {
32
- return this.#http.get(`/scim/v2/Users/${userId}`);
32
+ return this.#http.get(`/scim/v2/Users/${encodeURIComponent(userId)}`);
33
33
  }
34
34
  /** Provision a new user. */
35
35
  createUser(params) {
@@ -37,15 +37,15 @@ export class ScimClient {
37
37
  }
38
38
  /** Full replace of a user (PUT). */
39
39
  replaceUser(userId, params) {
40
- return this.#http.put(`/scim/v2/Users/${userId}`, params);
40
+ return this.#http.put(`/scim/v2/Users/${encodeURIComponent(userId)}`, params);
41
41
  }
42
42
  /** Partial update via SCIM Operations (PATCH). */
43
43
  updateUser(userId, operations) {
44
- return this.#http.patch(`/scim/v2/Users/${userId}`, { Operations: operations });
44
+ return this.#http.patch(`/scim/v2/Users/${encodeURIComponent(userId)}`, { Operations: operations });
45
45
  }
46
46
  /** Deprovision a user (DELETE). */
47
47
  deleteUser(userId) {
48
- return this.#http.delete(`/scim/v2/Users/${userId}`);
48
+ return this.#http.delete(`/scim/v2/Users/${encodeURIComponent(userId)}`);
49
49
  }
50
50
  }
51
51
  //# sourceMappingURL=scim.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scim.js","sourceRoot":"","sources":["../../src/resources/scim.ts"],"names":[],"mappings":"AAYA,MAAM,OAAO,UAAU;IACZ,KAAK,CAAa;IAE3B,YAAY,IAAgB;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,yEAAyE;IAEzE,2EAA2E;IAC3E,WAAW,CAAC,MAA6B;QACvC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAsB,iBAAiB,EAAE,MAAM,CAAC,CAAC;IACzE,CAAC;IAED,yEAAyE;IACzE,UAAU;QACR,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAyB,iBAAiB,CAAC,CAAC;IACnE,CAAC;IAED,iCAAiC;IACjC,WAAW,CAAC,OAAe;QACzB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAO,mBAAmB,OAAO,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,yEAAyE;IAEzE,sDAAsD;IACtD,SAAS,CAAC,MAAgD;QACxD,MAAM,EAAE,GAAG,IAAI,eAAe,EAAE,CAAC;QACjC,IAAI,MAAM,EAAE,UAAU,KAAK,SAAS;YAAE,EAAE,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;QACtF,IAAI,MAAM,EAAE,KAAK,KAAK,SAAS;YAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACvE,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAmB,KAAK,CAAC,CAAC,CAAC,kBAAkB,KAAK,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAChG,CAAC;IAED,2CAA2C;IAC3C,OAAO,CAAC,MAAc;QACpB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAW,kBAAkB,MAAM,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,4BAA4B;IAC5B,UAAU,CAAC,MAA4B;QACrC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAW,gBAAgB,EAAE,MAAM,CAAC,CAAC;IAC7D,CAAC;IAED,oCAAoC;IACpC,WAAW,CAAC,MAAc,EAAE,MAA4B;QACtD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAW,kBAAkB,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC;IACtE,CAAC;IAED,kDAAkD;IAClD,UAAU,CACR,MAAc,EACd,UAAgE;QAEhE,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAW,kBAAkB,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC;IAC5F,CAAC;IAED,mCAAmC;IACnC,UAAU,CAAC,MAAc;QACvB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAO,kBAAkB,MAAM,EAAE,CAAC,CAAC;IAC7D,CAAC;CACF"}
1
+ {"version":3,"file":"scim.js","sourceRoot":"","sources":["../../src/resources/scim.ts"],"names":[],"mappings":"AAYA,MAAM,OAAO,UAAU;IACZ,KAAK,CAAa;IAE3B,YAAY,IAAgB;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,yEAAyE;IAEzE,2EAA2E;IAC3E,WAAW,CAAC,MAA6B;QACvC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAsB,iBAAiB,EAAE,MAAM,CAAC,CAAC;IACzE,CAAC;IAED,yEAAyE;IACzE,UAAU;QACR,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAyB,iBAAiB,CAAC,CAAC;IACnE,CAAC;IAED,iCAAiC;IACjC,WAAW,CAAC,OAAe;QACzB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAO,mBAAmB,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACnF,CAAC;IAED,yEAAyE;IAEzE,sDAAsD;IACtD,SAAS,CAAC,MAAgD;QACxD,MAAM,EAAE,GAAG,IAAI,eAAe,EAAE,CAAC;QACjC,IAAI,MAAM,EAAE,UAAU,KAAK,SAAS;YAAE,EAAE,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;QACtF,IAAI,MAAM,EAAE,KAAK,KAAK,SAAS;YAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACvE,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAmB,KAAK,CAAC,CAAC,CAAC,kBAAkB,KAAK,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAChG,CAAC;IAED,2CAA2C;IAC3C,OAAO,CAAC,MAAc;QACpB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAW,kBAAkB,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAClF,CAAC;IAED,4BAA4B;IAC5B,UAAU,CAAC,MAA4B;QACrC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAW,gBAAgB,EAAE,MAAM,CAAC,CAAC;IAC7D,CAAC;IAED,oCAAoC;IACpC,WAAW,CAAC,MAAc,EAAE,MAA4B;QACtD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAW,kBAAkB,kBAAkB,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAC1F,CAAC;IAED,kDAAkD;IAClD,UAAU,CACR,MAAc,EACd,UAAgE;QAEhE,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAW,kBAAkB,kBAAkB,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC;IAChH,CAAC;IAED,mCAAmC;IACnC,UAAU,CAAC,MAAc;QACvB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAO,kBAAkB,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACjF,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../src/resources/tokens.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAGvH,qBAAa,YAAY;;IAIvB,YAAY,IAAI,EAAE,UAAU,EAE3B;IAED,QAAQ,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAEpE;IAEK,OAAO,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAexE;IAED,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAIlD;IAED,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAErC;CACF"}
1
+ {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../src/resources/tokens.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAGvH,qBAAa,YAAY;;IAIvB,YAAY,IAAI,EAAE,UAAU,EAE3B;IAED,QAAQ,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAMpE;IAEK,OAAO,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAexE;IAED,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAIlD;IAED,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAErC;CACF"}
@@ -6,7 +6,11 @@ export class TokensClient {
6
6
  this.#http = http;
7
7
  }
8
8
  exchange(params) {
9
- return this.#http.post('/v1/token', params);
9
+ // Authorization codes are single-use and the server has no idempotent
10
+ // replay for the exchange (unlike refresh): a retried request whose first
11
+ // attempt committed would fail with "code already used" and lose the
12
+ // tokens. Never retry; let the caller surface the error.
13
+ return this.#http.post('/v1/token', params, { retry: false });
10
14
  }
11
15
  async refresh(params) {
12
16
  const now = Date.now();
@@ -1 +1 @@
1
- {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../src/resources/tokens.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,OAAO,YAAY;IACd,KAAK,CAAa;IAClB,iBAAiB,GAAG,IAAI,GAAG,EAA8C,CAAC;IAEnF,YAAY,IAAgB;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,QAAQ,CAAC,MAA2B;QAClC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAwB,WAAW,EAAE,MAAM,CAAC,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAA0B;QACtC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACpD,IAAI,KAAK,CAAC,SAAS,IAAI,GAAG;gBAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnE,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC/D,MAAM,cAAc,GAAG,MAAM,CAAC,cAAc;eACvC,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;QACpE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,GAAG,EAAE,cAAc,EAAE,SAAS,EAAE,GAAG,GAAG,OAAO,EAAE,CAAC,CAAC;QACnG,MAAM,IAAI,GAAG,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;QAC5E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAwB,mBAAmB,EAAE,IAAI,EAAE;YACvF,OAAO,EAAE,EAAE,iBAAiB,EAAE,cAAc,EAAE;SAC/C,CAAC,CAAC;QACH,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACnD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,KAAa;QAClB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAsB,mBAAmB,EAAE;YAC/D,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,OAAe;QACpB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAO,mBAAmB,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;IACtE,CAAC;CACF"}
1
+ {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../src/resources/tokens.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,OAAO,YAAY;IACd,KAAK,CAAa;IAClB,iBAAiB,GAAG,IAAI,GAAG,EAA8C,CAAC;IAEnF,YAAY,IAAgB;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,QAAQ,CAAC,MAA2B;QAClC,sEAAsE;QACtE,0EAA0E;QAC1E,qEAAqE;QACrE,yDAAyD;QACzD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAwB,WAAW,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACvF,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAA0B;QACtC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACpD,IAAI,KAAK,CAAC,SAAS,IAAI,GAAG;gBAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnE,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC/D,MAAM,cAAc,GAAG,MAAM,CAAC,cAAc;eACvC,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;QACpE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,GAAG,EAAE,cAAc,EAAE,SAAS,EAAE,GAAG,GAAG,OAAO,EAAE,CAAC,CAAC;QACnG,MAAM,IAAI,GAAG,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;QAC5E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAwB,mBAAmB,EAAE,IAAI,EAAE;YACvF,OAAO,EAAE,EAAE,iBAAiB,EAAE,cAAc,EAAE;SAC/C,CAAC,CAAC;QACH,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACnD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,KAAa;QAClB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAsB,mBAAmB,EAAE;YAC/D,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,OAAe;QACpB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAO,mBAAmB,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;IACtE,CAAC;CACF"}
@@ -21,11 +21,11 @@ export class VaultClient {
21
21
  }
22
22
  /** Get credential metadata by ID (no raw token). */
23
23
  get(credentialId) {
24
- return this.#http.get(`/v1/vault/credentials/${credentialId}`);
24
+ return this.#http.get(`/v1/vault/credentials/${encodeURIComponent(credentialId)}`);
25
25
  }
26
26
  /** Delete a credential from the vault. */
27
27
  delete(credentialId) {
28
- return this.#http.delete(`/v1/vault/credentials/${credentialId}`);
28
+ return this.#http.delete(`/v1/vault/credentials/${encodeURIComponent(credentialId)}`);
29
29
  }
30
30
  /**
31
31
  * Exchange a grant token for an upstream credential.
@@ -1 +1 @@
1
- {"version":3,"file":"vault.js","sourceRoot":"","sources":["../../src/resources/vault.ts"],"names":[],"mappings":"AAWA,MAAM,OAAO,WAAW;IACb,KAAK,CAAa;IAClB,QAAQ,CAAS;IAE1B,YAAY,IAAgB,EAAE,OAAe;QAC3C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,iFAAiF;IACjF,KAAK,CAAC,MAA6B;QACjC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAA0B,uBAAuB,EAAE,MAAM,CAAC,CAAC;IACnF,CAAC;IAED,gDAAgD;IAChD,IAAI,CAAC,MAAM,GAA+B,EAAE;QAC1C,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;QACpC,IAAI,MAAM,CAAC,WAAW;YAAE,KAAK,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QACrE,IAAI,MAAM,CAAC,OAAO;YAAE,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QACzD,MAAM,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CACnB,wBAAwB,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAC7C,CAAC;IACJ,CAAC;IAED,oDAAoD;IACpD,GAAG,CAAC,YAAoB;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAkB,yBAAyB,YAAY,EAAE,CAAC,CAAC;IAClF,CAAC;IAED,0CAA0C;IAC1C,MAAM,CAAC,YAAoB;QACzB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,yBAAyB,YAAY,EAAE,CAAC,CAAC;IACpE,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,QAAQ,CACZ,UAAkB,EAClB,MAAgC;QAEhC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,gCAAgC,CAAC;QAC7D,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAChC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,UAAU,EAAE;gBACrC,cAAc,EAAE,kBAAkB;gBAClC,MAAM,EAAE,kBAAkB;aAC3B;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;SAC7B,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;YACrD,MAAM,OAAO,GACX,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,SAAS,IAAI,IAAI;gBACnD,CAAC,CAAC,MAAM,CAAE,IAAgC,CAAC,SAAS,CAAC,CAAC;gBACtD,CAAC,CAAC,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,EAAyC,CAAC;IAChE,CAAC;CACF"}
1
+ {"version":3,"file":"vault.js","sourceRoot":"","sources":["../../src/resources/vault.ts"],"names":[],"mappings":"AAWA,MAAM,OAAO,WAAW;IACb,KAAK,CAAa;IAClB,QAAQ,CAAS;IAE1B,YAAY,IAAgB,EAAE,OAAe;QAC3C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,iFAAiF;IACjF,KAAK,CAAC,MAA6B;QACjC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAA0B,uBAAuB,EAAE,MAAM,CAAC,CAAC;IACnF,CAAC;IAED,gDAAgD;IAChD,IAAI,CAAC,MAAM,GAA+B,EAAE;QAC1C,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;QACpC,IAAI,MAAM,CAAC,WAAW;YAAE,KAAK,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QACrE,IAAI,MAAM,CAAC,OAAO;YAAE,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QACzD,MAAM,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CACnB,wBAAwB,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAC7C,CAAC;IACJ,CAAC;IAED,oDAAoD;IACpD,GAAG,CAAC,YAAoB;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAkB,yBAAyB,kBAAkB,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IACtG,CAAC;IAED,0CAA0C;IAC1C,MAAM,CAAC,YAAoB;QACzB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,yBAAyB,kBAAkB,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IACxF,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,QAAQ,CACZ,UAAkB,EAClB,MAAgC;QAEhC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,gCAAgC,CAAC;QAC7D,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAChC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,UAAU,EAAE;gBACrC,cAAc,EAAE,kBAAkB;gBAClC,MAAM,EAAE,kBAAkB;aAC3B;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;SAC7B,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;YACrD,MAAM,OAAO,GACX,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,SAAS,IAAI,IAAI;gBACnD,CAAC,CAAC,MAAM,CAAE,IAAgC,CAAC,SAAS,CAAC,CAAC;gBACtD,CAAC,CAAC,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,EAAyC,CAAC;IAChE,CAAC;CACF"}
@@ -1,8 +1,13 @@
1
1
  import type { HttpClient } from '../http.js';
2
- import type { WebAuthnRegistrationOptions, WebAuthnRegistrationVerifyParams, WebAuthnCredential, ListWebAuthnCredentialsResponse } from '../types.js';
2
+ import type { WebAuthnRegistrationOptions, WebAuthnRegistrationVerifyParams, WebAuthnCredential, ListWebAuthnCredentialsResponse, WebAuthnEnrollmentSession } from '../types.js';
3
3
  export declare class WebAuthnClient {
4
4
  #private;
5
5
  constructor(http: HttpClient);
6
+ /** Issue a one-use hosted enrollment link after authenticating the principal in your application. */
7
+ createEnrollmentSession(params: {
8
+ principalId: string;
9
+ authRequestId?: string;
10
+ }): Promise<WebAuthnEnrollmentSession>;
6
11
  registerOptions(params: {
7
12
  principalId: string;
8
13
  }): Promise<WebAuthnRegistrationOptions>;
@@ -1 +1 @@
1
- {"version":3,"file":"webauthn.d.ts","sourceRoot":"","sources":["../../src/resources/webauthn.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EACV,2BAA2B,EAC3B,gCAAgC,EAChC,kBAAkB,EAClB,+BAA+B,EAChC,MAAM,aAAa,CAAC;AAErB,qBAAa,cAAc;;IAGzB,YAAY,IAAI,EAAE,UAAU,EAE3B;IAED,eAAe,CAAC,MAAM,EAAE;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAErF;IAED,cAAc,CAAC,MAAM,EAAE,gCAAgC,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAEpF;IAED,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAI7E;IAED,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEpD;CACF"}
1
+ {"version":3,"file":"webauthn.d.ts","sourceRoot":"","sources":["../../src/resources/webauthn.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EACV,2BAA2B,EAC3B,gCAAgC,EAChC,kBAAkB,EAClB,+BAA+B,EAC/B,yBAAyB,EAC1B,MAAM,aAAa,CAAC;AAErB,qBAAa,cAAc;;IAGzB,YAAY,IAAI,EAAE,UAAU,EAE3B;IAED,qGAAqG;IACrG,uBAAuB,CAAC,MAAM,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAEnH;IAED,eAAe,CAAC,MAAM,EAAE;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAErF;IAED,cAAc,CAAC,MAAM,EAAE,gCAAgC,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAEpF;IAED,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAI7E;IAED,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEpD;CACF"}
@@ -3,6 +3,10 @@ export class WebAuthnClient {
3
3
  constructor(http) {
4
4
  this.#http = http;
5
5
  }
6
+ /** Issue a one-use hosted enrollment link after authenticating the principal in your application. */
7
+ createEnrollmentSession(params) {
8
+ return this.#http.post('/v1/webauthn/enrollment-sessions', params);
9
+ }
6
10
  registerOptions(params) {
7
11
  return this.#http.post('/v1/webauthn/register/options', params);
8
12
  }
@@ -13,7 +17,7 @@ export class WebAuthnClient {
13
17
  return this.#http.get(`/v1/webauthn/credentials?principalId=${encodeURIComponent(principalId)}`);
14
18
  }
15
19
  deleteCredential(credentialId) {
16
- return this.#http.delete(`/v1/webauthn/credentials/${credentialId}`);
20
+ return this.#http.delete(`/v1/webauthn/credentials/${encodeURIComponent(credentialId)}`);
17
21
  }
18
22
  }
19
23
  //# sourceMappingURL=webauthn.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"webauthn.js","sourceRoot":"","sources":["../../src/resources/webauthn.ts"],"names":[],"mappings":"AAQA,MAAM,OAAO,cAAc;IAChB,KAAK,CAAa;IAE3B,YAAY,IAAgB;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,eAAe,CAAC,MAA+B;QAC7C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAA8B,+BAA+B,EAAE,MAAM,CAAC,CAAC;IAC/F,CAAC;IAED,cAAc,CAAC,MAAwC;QACrD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAqB,8BAA8B,EAAE,MAAM,CAAC,CAAC;IACrF,CAAC;IAED,eAAe,CAAC,WAAmB;QACjC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CACnB,wCAAwC,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAC1E,CAAC;IACJ,CAAC;IAED,gBAAgB,CAAC,YAAoB;QACnC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAO,4BAA4B,YAAY,EAAE,CAAC,CAAC;IAC7E,CAAC;CACF"}
1
+ {"version":3,"file":"webauthn.js","sourceRoot":"","sources":["../../src/resources/webauthn.ts"],"names":[],"mappings":"AASA,MAAM,OAAO,cAAc;IAChB,KAAK,CAAa;IAE3B,YAAY,IAAgB;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,qGAAqG;IACrG,uBAAuB,CAAC,MAAuD;QAC7E,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAA4B,kCAAkC,EAAE,MAAM,CAAC,CAAC;IAChG,CAAC;IAED,eAAe,CAAC,MAA+B;QAC7C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAA8B,+BAA+B,EAAE,MAAM,CAAC,CAAC;IAC/F,CAAC;IAED,cAAc,CAAC,MAAwC;QACrD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAqB,8BAA8B,EAAE,MAAM,CAAC,CAAC;IACrF,CAAC;IAED,eAAe,CAAC,WAAmB;QACjC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CACnB,wCAAwC,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAC1E,CAAC;IACJ,CAAC;IAED,gBAAgB,CAAC,YAAoB;QACnC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAO,4BAA4B,kBAAkB,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IACjG,CAAC;CACF"}
@@ -10,7 +10,7 @@ export class WebhooksClient {
10
10
  return this.#http.get('/v1/webhooks');
11
11
  }
12
12
  delete(webhookId) {
13
- return this.#http.delete(`/v1/webhooks/${webhookId}`);
13
+ return this.#http.delete(`/v1/webhooks/${encodeURIComponent(webhookId)}`);
14
14
  }
15
15
  }
16
16
  //# sourceMappingURL=webhooks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"webhooks.js","sourceRoot":"","sources":["../../src/resources/webhooks.ts"],"names":[],"mappings":"AAOA,MAAM,OAAO,cAAc;IAChB,KAAK,CAAa;IAE3B,YAAY,IAAgB;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,MAAM,CAAC,MAA2B;QAChC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IACjD,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACxC,CAAC;IAED,MAAM,CAAC,SAAiB;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,SAAS,EAAE,CAAC,CAAC;IACxD,CAAC;CACF"}
1
+ {"version":3,"file":"webhooks.js","sourceRoot":"","sources":["../../src/resources/webhooks.ts"],"names":[],"mappings":"AAOA,MAAM,OAAO,cAAc;IAChB,KAAK,CAAa;IAE3B,YAAY,IAAgB;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,MAAM,CAAC,MAA2B;QAChC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IACjD,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACxC,CAAC;IAED,MAAM,CAAC,SAAiB;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAC5E,CAAC;CACF"}