@signa-so/sdk 0.2.2 → 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 (137) hide show
  1. package/README.md +22 -14
  2. package/dist/_internals/fetch-with-retry.d.ts.map +1 -1
  3. package/dist/_internals/fetch-with-retry.js +11 -3
  4. package/dist/_internals/fetch-with-retry.js.map +1 -1
  5. package/dist/_internals/query-string.d.ts +5 -4
  6. package/dist/_internals/query-string.d.ts.map +1 -1
  7. package/dist/_internals/query-string.js +6 -14
  8. package/dist/_internals/query-string.js.map +1 -1
  9. package/dist/category-nice.d.ts +22 -0
  10. package/dist/category-nice.d.ts.map +1 -0
  11. package/dist/category-nice.js +109 -0
  12. package/dist/category-nice.js.map +1 -0
  13. package/dist/client.d.ts +80 -10
  14. package/dist/client.d.ts.map +1 -1
  15. package/dist/client.js +110 -13
  16. package/dist/client.js.map +1 -1
  17. package/dist/errors.d.ts +7 -0
  18. package/dist/errors.d.ts.map +1 -1
  19. package/dist/errors.js +10 -1
  20. package/dist/errors.js.map +1 -1
  21. package/dist/generated/api-types.d.ts +9700 -2920
  22. package/dist/generated/api-types.d.ts.map +1 -1
  23. package/dist/index.d.ts +6 -1
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +5 -0
  26. package/dist/index.js.map +1 -1
  27. package/dist/pagination.d.ts +24 -2
  28. package/dist/pagination.d.ts.map +1 -1
  29. package/dist/pagination.js +28 -1
  30. package/dist/pagination.js.map +1 -1
  31. package/dist/resources/alerts.d.ts +18 -13
  32. package/dist/resources/alerts.d.ts.map +1 -1
  33. package/dist/resources/alerts.js +28 -20
  34. package/dist/resources/alerts.js.map +1 -1
  35. package/dist/resources/analytics.d.ts +8 -0
  36. package/dist/resources/analytics.d.ts.map +1 -0
  37. package/dist/resources/analytics.js +13 -0
  38. package/dist/resources/analytics.js.map +1 -0
  39. package/dist/resources/assignments.d.ts +25 -0
  40. package/dist/resources/assignments.d.ts.map +1 -0
  41. package/dist/resources/assignments.js +33 -0
  42. package/dist/resources/assignments.js.map +1 -0
  43. package/dist/resources/attorneys.d.ts +7 -3
  44. package/dist/resources/attorneys.d.ts.map +1 -1
  45. package/dist/resources/attorneys.js +10 -5
  46. package/dist/resources/attorneys.js.map +1 -1
  47. package/dist/resources/compare.d.ts +29 -0
  48. package/dist/resources/compare.d.ts.map +1 -0
  49. package/dist/resources/compare.js +30 -0
  50. package/dist/resources/compare.js.map +1 -0
  51. package/dist/resources/deadlines.d.ts +24 -0
  52. package/dist/resources/deadlines.d.ts.map +1 -0
  53. package/dist/resources/deadlines.js +26 -0
  54. package/dist/resources/deadlines.js.map +1 -0
  55. package/dist/resources/entities.d.ts +53 -0
  56. package/dist/resources/entities.d.ts.map +1 -0
  57. package/dist/resources/entities.js +74 -0
  58. package/dist/resources/entities.js.map +1 -0
  59. package/dist/resources/events.d.ts +2 -2
  60. package/dist/resources/events.d.ts.map +1 -1
  61. package/dist/resources/events.js +2 -2
  62. package/dist/resources/events.js.map +1 -1
  63. package/dist/resources/feedback.d.ts +19 -0
  64. package/dist/resources/feedback.d.ts.map +1 -0
  65. package/dist/resources/feedback.js +29 -0
  66. package/dist/resources/feedback.js.map +1 -0
  67. package/dist/resources/firms.d.ts +7 -6
  68. package/dist/resources/firms.d.ts.map +1 -1
  69. package/dist/resources/firms.js +9 -5
  70. package/dist/resources/firms.js.map +1 -1
  71. package/dist/resources/goods-services.d.ts +56 -0
  72. package/dist/resources/goods-services.d.ts.map +1 -0
  73. package/dist/resources/goods-services.js +60 -0
  74. package/dist/resources/goods-services.js.map +1 -0
  75. package/dist/resources/oppositions.d.ts +18 -0
  76. package/dist/resources/oppositions.d.ts.map +1 -0
  77. package/dist/resources/oppositions.js +20 -0
  78. package/dist/resources/oppositions.js.map +1 -0
  79. package/dist/resources/organization.d.ts +56 -0
  80. package/dist/resources/organization.d.ts.map +1 -0
  81. package/dist/resources/organization.js +89 -0
  82. package/dist/resources/organization.js.map +1 -0
  83. package/dist/resources/owners.d.ts +7 -3
  84. package/dist/resources/owners.d.ts.map +1 -1
  85. package/dist/resources/owners.js +10 -5
  86. package/dist/resources/owners.js.map +1 -1
  87. package/dist/resources/portfolios.d.ts +3 -3
  88. package/dist/resources/portfolios.d.ts.map +1 -1
  89. package/dist/resources/portfolios.js +4 -4
  90. package/dist/resources/portfolios.js.map +1 -1
  91. package/dist/resources/proceedings.d.ts +1 -1
  92. package/dist/resources/proceedings.js +1 -1
  93. package/dist/resources/reconcile.d.ts +22 -0
  94. package/dist/resources/reconcile.d.ts.map +1 -0
  95. package/dist/resources/reconcile.js +24 -0
  96. package/dist/resources/reconcile.js.map +1 -0
  97. package/dist/resources/references.d.ts +51 -12
  98. package/dist/resources/references.d.ts.map +1 -1
  99. package/dist/resources/references.js +33 -15
  100. package/dist/resources/references.js.map +1 -1
  101. package/dist/resources/screening.d.ts +63 -0
  102. package/dist/resources/screening.d.ts.map +1 -0
  103. package/dist/resources/screening.js +66 -0
  104. package/dist/resources/screening.js.map +1 -0
  105. package/dist/resources/suggest.d.ts +16 -0
  106. package/dist/resources/suggest.d.ts.map +1 -0
  107. package/dist/resources/suggest.js +18 -0
  108. package/dist/resources/suggest.js.map +1 -0
  109. package/dist/resources/trademarks.d.ts +82 -6
  110. package/dist/resources/trademarks.d.ts.map +1 -1
  111. package/dist/resources/trademarks.js +132 -5
  112. package/dist/resources/trademarks.js.map +1 -1
  113. package/dist/resources/watches.d.ts +68 -9
  114. package/dist/resources/watches.d.ts.map +1 -1
  115. package/dist/resources/watches.js +111 -12
  116. package/dist/resources/watches.js.map +1 -1
  117. package/dist/resources/webhooks.d.ts +57 -0
  118. package/dist/resources/webhooks.d.ts.map +1 -0
  119. package/dist/resources/webhooks.js +86 -0
  120. package/dist/resources/webhooks.js.map +1 -0
  121. package/dist/types.d.ts +2781 -239
  122. package/dist/types.d.ts.map +1 -1
  123. package/dist/version.d.ts +1 -1
  124. package/dist/version.js +1 -1
  125. package/dist/webhooks.d.ts +57 -0
  126. package/dist/webhooks.d.ts.map +1 -0
  127. package/dist/webhooks.js +76 -0
  128. package/dist/webhooks.js.map +1 -0
  129. package/package.json +9 -3
  130. package/dist/resources/platform.d.ts +0 -29
  131. package/dist/resources/platform.d.ts.map +0 -1
  132. package/dist/resources/platform.js +0 -50
  133. package/dist/resources/platform.js.map +0 -1
  134. package/dist/resources/search.d.ts +0 -27
  135. package/dist/resources/search.d.ts.map +0 -1
  136. package/dist/resources/search.js +0 -36
  137. package/dist/resources/search.js.map +0 -1
@@ -1,35 +1,134 @@
1
1
  import { BaseResource } from '../resource.js';
2
2
  import { createList } from '../pagination.js';
3
+ /**
4
+ * Watch management — monitoring v1 (TSK-111).
5
+ *
6
+ * Five watch types compile to one query shape (VAL-PRODUCT-001):
7
+ * `'mark' | 'portfolio' | 'owner' | 'class' | 'similarity'`. `query.match`
8
+ * is rejected in ANY form (object or string) — use `filters.ownerId`,
9
+ * `filters.trademarkIds`, `filters.niceClasses` for scoping and
10
+ * `min_match_tier` for similarity precision. See {@link WatchQuery} and
11
+ * the watches guide for worked examples.
12
+ */
3
13
  export class Watches extends BaseResource {
4
- /** Create a watch. */
14
+ /** Create a watch (or hydrate from a saved search via `?from_saved_search=`). */
5
15
  async create(body, options) {
6
- return this._post('/v1/watches', body, options);
16
+ const { query, ...restOpts } = options ?? {};
17
+ const path = query?.from_saved_search
18
+ ? `/v1/watches${this._buildQS({ from_saved_search: query.from_saved_search })}`
19
+ : '/v1/watches';
20
+ return this._post(path, body, restOpts);
7
21
  }
8
- /** List organization's watches. */
22
+ /** List watches for the calling org (cursor pagination, max 100/page). */
9
23
  async list(params, options) {
10
- const response = await this._getListResponse('/v1/watches', params, options);
11
- return createList(response, (cursor) => this._getListResponse('/v1/watches', { ...params, cursor }, options));
24
+ const fetchPage = async (cursor) => this._getListResponse('/v1/watches', { ...params, cursor }, options);
25
+ const firstPage = await fetchPage(params?.cursor);
26
+ return createList(firstPage, fetchPage);
12
27
  }
13
- /** Retrieve a watch. */
28
+ /** Retrieve a watch (`alert_count_24h` populated). */
14
29
  async retrieve(id, options) {
15
30
  this._validateId(id);
16
31
  return this._get(`/v1/watches/${encodeURIComponent(id)}`, undefined, options);
17
32
  }
18
- /** Update a watch. */
33
+ /** Update a watch (PATCH — partial body). */
19
34
  async update(id, body, options) {
20
35
  this._validateId(id);
21
36
  return this._patch(`/v1/watches/${encodeURIComponent(id)}`, body, options);
22
37
  }
23
- /** Soft-delete a watch. */
38
+ /** Soft-delete a watch (sets `deleted_at`). */
24
39
  async delete(id, options) {
25
40
  this._validateId(id);
26
41
  return this._delete(`/v1/watches/${encodeURIComponent(id)}`, options);
27
42
  }
28
- /** List alerts for a specific watch. */
29
- async alerts(id, params, options) {
43
+ /** Pause evaluation. The watch is preserved; no alerts fire until resumed. */
44
+ async pause(id, options) {
30
45
  this._validateId(id);
31
- const response = await this._getListResponse(`/v1/watches/${encodeURIComponent(id)}/alerts`, params, options);
32
- return createList(response, (cursor) => this._getListResponse(`/v1/watches/${encodeURIComponent(id)}/alerts`, { ...params, cursor }, options));
46
+ return this._post(`/v1/watches/${encodeURIComponent(id)}/pause`, {}, options);
47
+ }
48
+ /** Resume a paused watch. */
49
+ async resume(id, options) {
50
+ this._validateId(id);
51
+ return this._post(`/v1/watches/${encodeURIComponent(id)}/resume`, {}, options);
52
+ }
53
+ /**
54
+ * Bump `evaluation_epoch` to trigger a full re-evaluation across watched
55
+ * offices. Requires the `watches:admin` scope. Returns 409 if the
56
+ * evaluator currently holds the per-(watch, office) lease (15-min stale
57
+ * takeover).
58
+ *
59
+ * v1 accepts an empty body only — `from_date` (historical replay) is
60
+ * reserved for v1.1 and the server rejects it with 400.
61
+ */
62
+ async replay(id, body, options) {
63
+ this._validateId(id);
64
+ return this._post(`/v1/watches/${encodeURIComponent(id)}/replay`, body ?? {}, options);
65
+ }
66
+ /**
67
+ * Dry-run a watch query — returns the count of trademarks that would have
68
+ * alerted if this query had been a live watch over the last
69
+ * `trial_window_days` (default 7). Does not write to the DB
70
+ * (VAL-API-011).
71
+ */
72
+ async preview(body, options) {
73
+ return this._post('/v1/watches/preview', body, options);
74
+ }
75
+ /** Bulk-create up to 100 watches. Counts against the per-plan resource quota. */
76
+ async bulk(body, options) {
77
+ const res = await this._post('/v1/watches/bulk', body, options);
78
+ return res.data;
79
+ }
80
+ /**
81
+ * Self-service diagnostics for a single (watch, trademark) pair.
82
+ * Returns an 11-field explainable trace — see the
83
+ * [diagnostics docs](https://docs.signa.so/api-reference/monitoring/watches/diagnostics)
84
+ * for the full schema and `reason` enum walk-order.
85
+ *
86
+ * Required scope: `portfolios:manage`. Cross-org or missing references
87
+ * return 404.
88
+ */
89
+ async diagnostics(watchId, params, options) {
90
+ this._validateId(watchId);
91
+ if (!params || typeof params.trademarkId !== 'string' || !params.trademarkId) {
92
+ throw new Error('diagnostics requires { trademarkId } (a tm_* ID).');
93
+ }
94
+ return this._get(`/v1/watches/${encodeURIComponent(watchId)}/diagnostics`, { trademark_id: params.trademarkId }, options);
95
+ }
96
+ /**
97
+ * Fetch the monthly proof-of-monitoring attestation (JSON) for a closed UTC
98
+ * calendar month. Defaults to the previous month. The current (open) month
99
+ * returns 422 unless `{ partial: true }`. Deterministic: re-fetch a closed
100
+ * period later and compare `content_hash` to verify integrity.
101
+ *
102
+ * The PDF business record is available at the HTTP layer via
103
+ * `GET /v1/watches/{id}/attestation?format=pdf` (or `Accept: application/pdf`).
104
+ *
105
+ * Required scope: `portfolios:manage`. Cross-org / unknown watch returns 404.
106
+ */
107
+ async attestation(watchId, params, options) {
108
+ this._validateId(watchId);
109
+ const query = {};
110
+ if (params?.period)
111
+ query.period = params.period;
112
+ if (params?.partial)
113
+ query.partial = 'true';
114
+ return this._get(`/v1/watches/${encodeURIComponent(watchId)}/attestation`, query, options);
115
+ }
116
+ /** List alerts scoped to a single watch (cursor pagination). */
117
+ async listAlerts(watchId, params, options) {
118
+ this._validateId(watchId);
119
+ const fetchPage = async (cursor) => this._getListResponse(`/v1/watches/${encodeURIComponent(watchId)}/alerts`, { ...params, cursor }, options);
120
+ const firstPage = await fetchPage(params?.cursor);
121
+ return createList(firstPage, fetchPage);
122
+ }
123
+ /** @internal Build a query string from a flat params object. */
124
+ _buildQS(params) {
125
+ const entries = [];
126
+ for (const [k, v] of Object.entries(params)) {
127
+ if (v === undefined || v === null)
128
+ continue;
129
+ entries.push(`${encodeURIComponent(k)}=${encodeURIComponent(String(v))}`);
130
+ }
131
+ return entries.length ? `?${entries.join('&')}` : '';
33
132
  }
34
133
  }
35
134
  //# sourceMappingURL=watches.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"watches.js","sourceRoot":"","sources":["../../src/resources/watches.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAkB,MAAM,kBAAkB,CAAC;AAY9D,MAAM,OAAO,OAAQ,SAAQ,YAAY;IACvC,sBAAsB;IACtB,KAAK,CAAC,MAAM,CAAC,IAAuB,EAAE,OAAwB;QAC5D,OAAO,IAAI,CAAC,KAAK,CAAQ,aAAa,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAED,mCAAmC;IACnC,KAAK,CAAC,IAAI,CAAC,MAAwB,EAAE,OAAwB;QAC3D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAC1C,aAAa,EACb,MAAiC,EACjC,OAAO,CACR,CAAC;QACF,OAAO,UAAU,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CACrC,IAAI,CAAC,gBAAgB,CACnB,aAAa,EACb,EAAE,GAAG,MAAM,EAAE,MAAM,EAA6B,EAChD,OAAO,CACR,CACF,CAAC;IACJ,CAAC;IAED,wBAAwB;IACxB,KAAK,CAAC,QAAQ,CAAC,EAAU,EAAE,OAAwB;QACjD,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC,IAAI,CAAQ,eAAe,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACvF,CAAC;IAED,sBAAsB;IACtB,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,IAAuB,EAAE,OAAwB;QACxE,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC,MAAM,CAAQ,eAAe,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACpF,CAAC;IAED,2BAA2B;IAC3B,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,OAAwB;QAC/C,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC,OAAO,CAAkB,eAAe,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IACzF,CAAC;IAED,wCAAwC;IACxC,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,MAA0C,EAAE,OAAwB;QAC3F,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACrB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAC1C,eAAe,kBAAkB,CAAC,EAAE,CAAC,SAAS,EAC9C,MAAiC,EACjC,OAAO,CACR,CAAC;QACF,OAAO,UAAU,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CACrC,IAAI,CAAC,gBAAgB,CACnB,eAAe,kBAAkB,CAAC,EAAE,CAAC,SAAS,EAC9C,EAAE,GAAG,MAAM,EAAE,MAAM,EAA6B,EAChD,OAAO,CACR,CACF,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"watches.js","sourceRoot":"","sources":["../../src/resources/watches.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ import { BaseResource } from '../resource.js';
2
+ import { type SignaList } from '../pagination.js';
3
+ import type { Webhook, WebhookDelivery, DeletedResponse, WebhookCreateParams, WebhookUpdateParams, WebhookListParams, WebhookDeliveryListParams, WebhookTestResponse, WebhookRedeliveryResponse, RequestOptions } from '../types.js';
4
+ /**
5
+ * Webhook endpoint management — monitoring v1 (TSK-111).
6
+ *
7
+ * Endpoints receive Standard Webhooks signed POSTs for `alert.created`
8
+ * and `webhook.test` events. The signing secret is
9
+ * returned ONCE on `create()` and `rotateSecret()` — store it before the
10
+ * promise resolves to nothing else, since list/retrieve responses redact it
11
+ * (VAL-API-009).
12
+ *
13
+ * Use `verifyWebhookSignature(headers, body, secret)` exported from the
14
+ * SDK root to verify deliveries on your side.
15
+ */
16
+ export declare class Webhooks extends BaseResource {
17
+ /**
18
+ * Create a webhook endpoint. The response includes the plaintext
19
+ * signing `secret` exactly once.
20
+ */
21
+ create(body: WebhookCreateParams, options?: RequestOptions): Promise<Webhook & {
22
+ secret: string;
23
+ }>;
24
+ /** List webhook endpoints (secret redacted). */
25
+ list(params?: WebhookListParams, options?: RequestOptions): Promise<SignaList<Webhook>>;
26
+ /** Retrieve a webhook endpoint (secret redacted). */
27
+ retrieve(id: string, options?: RequestOptions): Promise<Webhook>;
28
+ /** Update a webhook endpoint. */
29
+ update(id: string, body: WebhookUpdateParams, options?: RequestOptions): Promise<Webhook>;
30
+ /** Soft-delete a webhook endpoint. */
31
+ delete(id: string, options?: RequestOptions): Promise<DeletedResponse>;
32
+ /**
33
+ * Rotate the signing secret. The new secret is returned ONCE; the previous
34
+ * secret remains valid for 24h so you can update your verifier without
35
+ * dropping deliveries (rotation overlap, VAL-WEBHOOK-005).
36
+ */
37
+ rotateSecret(id: string, options?: RequestOptions): Promise<Webhook & {
38
+ secret: string;
39
+ }>;
40
+ /**
41
+ * Send a synthetic `webhook.test` ping to the endpoint. This does NOT
42
+ * increment `consecutive_failures` even if the URL is unreachable
43
+ * (VAL-WEBHOOK-007), so admins can probe dead endpoints without
44
+ * triggering auto-disable.
45
+ */
46
+ test(id: string, options?: RequestOptions): Promise<WebhookTestResponse>;
47
+ /** List delivery audit rows for an endpoint. */
48
+ listDeliveries(id: string, params?: WebhookDeliveryListParams, options?: RequestOptions): Promise<SignaList<WebhookDelivery>>;
49
+ /** Retrieve a single delivery audit row. */
50
+ retrieveDelivery(id: string, deliveryId: string, options?: RequestOptions): Promise<WebhookDelivery>;
51
+ /**
52
+ * Manually redeliver a webhook event. Inserts a new attempt row referencing
53
+ * the same `event_id`. The dispatcher picks it up via SQS. Billable.
54
+ */
55
+ redeliver(id: string, deliveryId: string, options?: RequestOptions): Promise<WebhookRedeliveryResponse>;
56
+ }
57
+ //# sourceMappingURL=webhooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhooks.d.ts","sourceRoot":"","sources":["../../src/resources/webhooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,KAAK,EACV,OAAO,EACP,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,yBAAyB,EACzB,mBAAmB,EACnB,yBAAyB,EACzB,cAAc,EACf,MAAM,aAAa,CAAC;AAErB;;;;;;;;;;;GAWG;AACH,qBAAa,QAAS,SAAQ,YAAY;IACxC;;;OAGG;IACG,MAAM,CACV,IAAI,EAAE,mBAAmB,EACzB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,OAAO,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAIxC,gDAAgD;IAC1C,IAAI,CACR,MAAM,CAAC,EAAE,iBAAiB,EAC1B,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAO9B,qDAAqD;IAC/C,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAKtE,iCAAiC;IAC3B,MAAM,CACV,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,mBAAmB,EACzB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,OAAO,CAAC;IAKnB,sCAAsC;IAChC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;IAK5E;;;;OAIG;IACG,YAAY,CAChB,EAAE,EAAE,MAAM,EACV,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,OAAO,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IASxC;;;;;OAKG;IACG,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAS9E,gDAAgD;IAC1C,cAAc,CAClB,EAAE,EAAE,MAAM,EACV,MAAM,CAAC,EAAE,yBAAyB,EAClC,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;IAYtC,4CAA4C;IACtC,gBAAgB,CACpB,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,eAAe,CAAC;IAU3B;;;OAGG;IACG,SAAS,CACb,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,yBAAyB,CAAC;CAStC"}
@@ -0,0 +1,86 @@
1
+ import { BaseResource } from '../resource.js';
2
+ import { createList } from '../pagination.js';
3
+ /**
4
+ * Webhook endpoint management — monitoring v1 (TSK-111).
5
+ *
6
+ * Endpoints receive Standard Webhooks signed POSTs for `alert.created`
7
+ * and `webhook.test` events. The signing secret is
8
+ * returned ONCE on `create()` and `rotateSecret()` — store it before the
9
+ * promise resolves to nothing else, since list/retrieve responses redact it
10
+ * (VAL-API-009).
11
+ *
12
+ * Use `verifyWebhookSignature(headers, body, secret)` exported from the
13
+ * SDK root to verify deliveries on your side.
14
+ */
15
+ export class Webhooks extends BaseResource {
16
+ /**
17
+ * Create a webhook endpoint. The response includes the plaintext
18
+ * signing `secret` exactly once.
19
+ */
20
+ async create(body, options) {
21
+ return this._post('/v1/webhooks', body, options);
22
+ }
23
+ /** List webhook endpoints (secret redacted). */
24
+ async list(params, options) {
25
+ const fetchPage = async (cursor) => this._getListResponse('/v1/webhooks', { ...params, cursor }, options);
26
+ const firstPage = await fetchPage(params?.cursor);
27
+ return createList(firstPage, fetchPage);
28
+ }
29
+ /** Retrieve a webhook endpoint (secret redacted). */
30
+ async retrieve(id, options) {
31
+ this._validateId(id);
32
+ return this._get(`/v1/webhooks/${encodeURIComponent(id)}`, undefined, options);
33
+ }
34
+ /** Update a webhook endpoint. */
35
+ async update(id, body, options) {
36
+ this._validateId(id);
37
+ return this._patch(`/v1/webhooks/${encodeURIComponent(id)}`, body, options);
38
+ }
39
+ /** Soft-delete a webhook endpoint. */
40
+ async delete(id, options) {
41
+ this._validateId(id);
42
+ return this._delete(`/v1/webhooks/${encodeURIComponent(id)}`, options);
43
+ }
44
+ /**
45
+ * Rotate the signing secret. The new secret is returned ONCE; the previous
46
+ * secret remains valid for 24h so you can update your verifier without
47
+ * dropping deliveries (rotation overlap, VAL-WEBHOOK-005).
48
+ */
49
+ async rotateSecret(id, options) {
50
+ this._validateId(id);
51
+ return this._post(`/v1/webhooks/${encodeURIComponent(id)}/rotate-secret`, {}, options);
52
+ }
53
+ /**
54
+ * Send a synthetic `webhook.test` ping to the endpoint. This does NOT
55
+ * increment `consecutive_failures` even if the URL is unreachable
56
+ * (VAL-WEBHOOK-007), so admins can probe dead endpoints without
57
+ * triggering auto-disable.
58
+ */
59
+ async test(id, options) {
60
+ this._validateId(id);
61
+ return this._post(`/v1/webhooks/${encodeURIComponent(id)}/test`, {}, options);
62
+ }
63
+ /** List delivery audit rows for an endpoint. */
64
+ async listDeliveries(id, params, options) {
65
+ this._validateId(id);
66
+ const fetchPage = async (cursor) => this._getListResponse(`/v1/webhooks/${encodeURIComponent(id)}/deliveries`, { ...params, cursor }, options);
67
+ const firstPage = await fetchPage(params?.cursor);
68
+ return createList(firstPage, fetchPage);
69
+ }
70
+ /** Retrieve a single delivery audit row. */
71
+ async retrieveDelivery(id, deliveryId, options) {
72
+ this._validateId(id);
73
+ this._validateId(deliveryId, 'deliveryId');
74
+ return this._get(`/v1/webhooks/${encodeURIComponent(id)}/deliveries/${encodeURIComponent(deliveryId)}`, undefined, options);
75
+ }
76
+ /**
77
+ * Manually redeliver a webhook event. Inserts a new attempt row referencing
78
+ * the same `event_id`. The dispatcher picks it up via SQS. Billable.
79
+ */
80
+ async redeliver(id, deliveryId, options) {
81
+ this._validateId(id);
82
+ this._validateId(deliveryId, 'deliveryId');
83
+ return this._post(`/v1/webhooks/${encodeURIComponent(id)}/deliveries/${encodeURIComponent(deliveryId)}/redeliver`, {}, options);
84
+ }
85
+ }
86
+ //# sourceMappingURL=webhooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhooks.js","sourceRoot":"","sources":["../../src/resources/webhooks.ts"],"names":[],"mappings":"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"}