@formbricks/hub 0.4.4 → 0.5.1

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 (128) hide show
  1. package/CHANGELOG.md +57 -0
  2. package/api-promise.d.mts +1 -0
  3. package/api-promise.d.mts.map +1 -1
  4. package/api-promise.d.ts +1 -0
  5. package/api-promise.d.ts.map +1 -1
  6. package/api-promise.mjs +1 -0
  7. package/api-promise.mjs.map +1 -1
  8. package/client.d.mts.map +1 -1
  9. package/client.d.ts.map +1 -1
  10. package/client.js +11 -0
  11. package/client.js.map +1 -1
  12. package/client.mjs +11 -0
  13. package/client.mjs.map +1 -1
  14. package/core/api-promise.d.mts.map +1 -1
  15. package/core/api-promise.d.ts.map +1 -1
  16. package/core/api-promise.mjs.map +1 -1
  17. package/core/error.mjs.map +1 -1
  18. package/core/resource.d.mts.map +1 -1
  19. package/core/resource.d.ts.map +1 -1
  20. package/core/uploads.d.mts.map +1 -1
  21. package/core/uploads.d.ts.map +1 -1
  22. package/core/uploads.mjs.map +1 -1
  23. package/error.d.mts +1 -0
  24. package/error.d.mts.map +1 -1
  25. package/error.d.ts +1 -0
  26. package/error.d.ts.map +1 -1
  27. package/error.mjs +1 -0
  28. package/error.mjs.map +1 -1
  29. package/index.d.mts.map +1 -1
  30. package/index.d.ts.map +1 -1
  31. package/index.mjs.map +1 -1
  32. package/internal/detect-platform.mjs.map +1 -1
  33. package/internal/headers.mjs.map +1 -1
  34. package/internal/parse.d.mts.map +1 -1
  35. package/internal/parse.d.ts.map +1 -1
  36. package/internal/parse.mjs.map +1 -1
  37. package/internal/request-options.d.mts.map +1 -1
  38. package/internal/request-options.d.ts.map +1 -1
  39. package/internal/shims.d.mts +6 -0
  40. package/internal/shims.d.mts.map +1 -1
  41. package/internal/shims.d.ts +6 -0
  42. package/internal/shims.d.ts.map +1 -1
  43. package/internal/to-file.d.mts.map +1 -1
  44. package/internal/to-file.d.ts.map +1 -1
  45. package/internal/to-file.mjs.map +1 -1
  46. package/internal/types.d.mts +10 -10
  47. package/internal/types.d.mts.map +1 -1
  48. package/internal/types.d.ts +10 -10
  49. package/internal/types.d.ts.map +1 -1
  50. package/internal/uploads.d.mts.map +1 -1
  51. package/internal/uploads.d.ts.map +1 -1
  52. package/internal/uploads.mjs.map +1 -1
  53. package/internal/utils/base64.mjs.map +1 -1
  54. package/internal/utils/log.d.mts.map +1 -1
  55. package/internal/utils/log.d.ts.map +1 -1
  56. package/internal/utils/log.js +2 -0
  57. package/internal/utils/log.js.map +1 -1
  58. package/internal/utils/log.mjs +2 -0
  59. package/internal/utils/log.mjs.map +1 -1
  60. package/internal/utils/path.mjs.map +1 -1
  61. package/internal/utils/query.mjs.map +1 -1
  62. package/internal/utils/values.mjs.map +1 -1
  63. package/internal/utils.d.mts.map +1 -1
  64. package/internal/utils.d.ts.map +1 -1
  65. package/internal/utils.mjs.map +1 -1
  66. package/package.json +1 -1
  67. package/resource.d.mts +1 -0
  68. package/resource.d.mts.map +1 -1
  69. package/resource.d.ts +1 -0
  70. package/resource.d.ts.map +1 -1
  71. package/resource.mjs +1 -0
  72. package/resource.mjs.map +1 -1
  73. package/resources/feedback-records/feedback-records.d.mts +23 -20
  74. package/resources/feedback-records/feedback-records.d.mts.map +1 -1
  75. package/resources/feedback-records/feedback-records.d.ts +23 -20
  76. package/resources/feedback-records/feedback-records.d.ts.map +1 -1
  77. package/resources/feedback-records/feedback-records.js +12 -9
  78. package/resources/feedback-records/feedback-records.js.map +1 -1
  79. package/resources/feedback-records/feedback-records.mjs +12 -9
  80. package/resources/feedback-records/feedback-records.mjs.map +1 -1
  81. package/resources/feedback-records/index.d.mts.map +1 -1
  82. package/resources/feedback-records/index.d.ts.map +1 -1
  83. package/resources/feedback-records/index.mjs.map +1 -1
  84. package/resources/feedback-records/search.d.mts +2 -1
  85. package/resources/feedback-records/search.d.mts.map +1 -1
  86. package/resources/feedback-records/search.d.ts +2 -1
  87. package/resources/feedback-records/search.d.ts.map +1 -1
  88. package/resources/feedback-records/search.js +2 -1
  89. package/resources/feedback-records/search.js.map +1 -1
  90. package/resources/feedback-records/search.mjs +2 -1
  91. package/resources/feedback-records/search.mjs.map +1 -1
  92. package/resources/feedback-records.d.mts.map +1 -1
  93. package/resources/feedback-records.d.ts.map +1 -1
  94. package/resources/feedback-records.mjs.map +1 -1
  95. package/resources/health.d.mts.map +1 -1
  96. package/resources/health.d.ts.map +1 -1
  97. package/resources/health.mjs.map +1 -1
  98. package/resources/index.d.mts.map +1 -1
  99. package/resources/index.d.ts.map +1 -1
  100. package/resources/index.mjs.map +1 -1
  101. package/resources/webhooks.d.mts +10 -9
  102. package/resources/webhooks.d.mts.map +1 -1
  103. package/resources/webhooks.d.ts +10 -9
  104. package/resources/webhooks.d.ts.map +1 -1
  105. package/resources/webhooks.js +3 -2
  106. package/resources/webhooks.js.map +1 -1
  107. package/resources/webhooks.mjs +3 -2
  108. package/resources/webhooks.mjs.map +1 -1
  109. package/resources.d.mts.map +1 -1
  110. package/resources.d.ts.map +1 -1
  111. package/resources.mjs.map +1 -1
  112. package/src/client.ts +12 -0
  113. package/src/internal/types.ts +6 -8
  114. package/src/internal/utils/log.ts +2 -0
  115. package/src/resources/feedback-records/feedback-records.ts +25 -22
  116. package/src/resources/feedback-records/search.ts +2 -1
  117. package/src/resources/webhooks.ts +11 -10
  118. package/src/version.ts +1 -1
  119. package/uploads.d.mts +1 -0
  120. package/uploads.d.mts.map +1 -1
  121. package/uploads.d.ts +1 -0
  122. package/uploads.d.ts.map +1 -1
  123. package/uploads.mjs +1 -0
  124. package/uploads.mjs.map +1 -1
  125. package/version.d.mts +1 -1
  126. package/version.d.ts +1 -1
  127. package/version.js +1 -1
  128. package/version.mjs +1 -1
@@ -10,12 +10,13 @@ export class Webhooks extends APIResource {
10
10
  * Creates a new webhook endpoint. When events occur (e.g.
11
11
  * feedback*record.created), the Hub POSTs a signed payload to the webhook URL. If
12
12
  * signing_key is omitted, a key is auto-generated (Standard Webhooks format,
13
- * whsec*...). See WebhookDeliveryPayload for the payload structure sent to your
14
- * URL.
13
+ * whsec*...). tenant_id is required; webhooks only receive events from that exact
14
+ * tenant. See WebhookDeliveryPayload for the payload structure sent to your URL.
15
15
  *
16
16
  * @example
17
17
  * ```ts
18
18
  * const webhook = await client.webhooks.create({
19
+ * tenant_id: 'org-123',
19
20
  * url: 'https://example.com/hub-events',
20
21
  * enabled: true,
21
22
  * event_types: [
@@ -1 +1 @@
1
- {"version":3,"file":"webhooks.mjs","sourceRoot":"","sources":["../src/resources/webhooks.ts"],"names":[],"mappings":"AAAA,sFAAsF;OAE/E,EAAE,WAAW,EAAE;OAEf,EAAE,YAAY,EAAE;OAEhB,EAAE,IAAI,EAAE;AAEf;;GAEG;AACH,MAAM,OAAO,QAAS,SAAQ,WAAW;IACvC;;;;;;;;;;;;;;;;;;;OAmBG;IACH,MAAM,CAAC,IAAyB,EAAE,OAAwB;QACxD,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACjE,CAAC;IAED;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,EAAU,EAAE,OAAwB;QAC3C,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAA,gBAAgB,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IAC7D,CAAC;IAED;;;;;;;;;OASG;IACH,MAAM,CAAC,EAAU,EAAE,IAAyB,EAAE,OAAwB;QACpE,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAA,gBAAgB,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,CACF,QAA8C,EAAE,EAChD,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACjE,CAAC;IAED;;;;;;;;;OASG;IACH,MAAM,CAAC,EAAU,EAAE,OAAwB;QACzC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAA,gBAAgB,EAAE,EAAE,EAAE;YACnD,GAAG,OAAO;YACV,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;SAC7D,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"webhooks.mjs","sourceRoot":"","sources":["../src/resources/webhooks.ts"],"names":[],"mappings":"AAAA,sFAAsF;AAEtF,OAAO,EAAE,WAAW,EAAE,6BAAyB;AAE/C,OAAO,EAAE,YAAY,EAAE,gCAA4B;AAEnD,OAAO,EAAE,IAAI,EAAE,mCAA+B;AAE9C;;GAEG;AACH,MAAM,OAAO,QAAS,SAAQ,WAAW;IACvC;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,MAAM,CAAC,IAAyB,EAAE,OAAwB;QACxD,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACjE,CAAC;IAED;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,EAAU,EAAE,OAAwB;QAC3C,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAA,gBAAgB,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IAC7D,CAAC;IAED;;;;;;;;;OASG;IACH,MAAM,CAAC,EAAU,EAAE,IAAyB,EAAE,OAAwB;QACpE,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAA,gBAAgB,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,CACF,QAA8C,EAAE,EAChD,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACjE,CAAC;IAED;;;;;;;;;OASG;IACH,MAAM,CAAC,EAAU,EAAE,OAAwB;QACzC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAA,gBAAgB,EAAE,EAAE,EAAE;YACnD,GAAG,OAAO;YACV,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;SAC7D,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"resources.d.mts","sourceRoot":"","sources":["src/resources.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"resources.d.mts","sourceRoot":"","sources":["src/resources.ts"],"names":[],"mappings":"AAAA,sCAAkC"}
@@ -1 +1 @@
1
- {"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["src/resources.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["src/resources.ts"],"names":[],"mappings":"AAAA,qCAAkC"}
package/resources.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"resources.mjs","sourceRoot":"","sources":["src/resources.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"resources.mjs","sourceRoot":"","sources":["src/resources.ts"],"names":[],"mappings":"AAAA,sCAAkC"}
package/src/client.ts CHANGED
@@ -190,6 +190,18 @@ export class FormbricksHub {
190
190
  this.fetch = options.fetch ?? Shims.getDefaultFetch();
191
191
  this.#encoder = Opts.FallbackEncoder;
192
192
 
193
+ const customHeadersEnv = readEnv('FORMBRICKS_HUB_CUSTOM_HEADERS');
194
+ if (customHeadersEnv) {
195
+ const parsed: Record<string, string> = {};
196
+ for (const line of customHeadersEnv.split('\n')) {
197
+ const colon = line.indexOf(':');
198
+ if (colon >= 0) {
199
+ parsed[line.substring(0, colon).trim()] = line.substring(colon + 1).trim();
200
+ }
201
+ }
202
+ options.defaultHeaders = { ...parsed, ...options.defaultHeaders };
203
+ }
204
+
193
205
  this._options = options;
194
206
 
195
207
  this.apiKey = apiKey;
@@ -40,7 +40,6 @@ type OverloadedParameters<T> =
40
40
  : T extends (...args: infer A) => unknown ? A
41
41
  : never;
42
42
 
43
- /* eslint-disable */
44
43
  /**
45
44
  * These imports attempt to get types from a parent package's dependencies.
46
45
  * Unresolved bare specifiers can trigger [automatic type acquisition][1] in some projects, which
@@ -63,19 +62,18 @@ type OverloadedParameters<T> =
63
62
  *
64
63
  * [1]: https://www.typescriptlang.org/tsconfig/#typeAcquisition
65
64
  */
66
- /** @ts-ignore For users with \@types/node */
65
+ /** @ts-ignore For users with \@types/node */ /* prettier-ignore */
67
66
  type UndiciTypesRequestInit = NotAny<import('../node_modules/undici-types/index.d.ts').RequestInit> | NotAny<import('../../node_modules/undici-types/index.d.ts').RequestInit> | NotAny<import('../../../node_modules/undici-types/index.d.ts').RequestInit> | NotAny<import('../../../../node_modules/undici-types/index.d.ts').RequestInit> | NotAny<import('../../../../../node_modules/undici-types/index.d.ts').RequestInit> | NotAny<import('../../../../../../node_modules/undici-types/index.d.ts').RequestInit> | NotAny<import('../../../../../../../node_modules/undici-types/index.d.ts').RequestInit> | NotAny<import('../../../../../../../../node_modules/undici-types/index.d.ts').RequestInit> | NotAny<import('../../../../../../../../../node_modules/undici-types/index.d.ts').RequestInit> | NotAny<import('../../../../../../../../../../node_modules/undici-types/index.d.ts').RequestInit>;
68
- /** @ts-ignore For users with undici */
67
+ /** @ts-ignore For users with undici */ /* prettier-ignore */
69
68
  type UndiciRequestInit = NotAny<import('../node_modules/undici/index.d.ts').RequestInit> | NotAny<import('../../node_modules/undici/index.d.ts').RequestInit> | NotAny<import('../../../node_modules/undici/index.d.ts').RequestInit> | NotAny<import('../../../../node_modules/undici/index.d.ts').RequestInit> | NotAny<import('../../../../../node_modules/undici/index.d.ts').RequestInit> | NotAny<import('../../../../../../node_modules/undici/index.d.ts').RequestInit> | NotAny<import('../../../../../../../node_modules/undici/index.d.ts').RequestInit> | NotAny<import('../../../../../../../../node_modules/undici/index.d.ts').RequestInit> | NotAny<import('../../../../../../../../../node_modules/undici/index.d.ts').RequestInit> | NotAny<import('../../../../../../../../../../node_modules/undici/index.d.ts').RequestInit>;
70
- /** @ts-ignore For users with \@types/bun */
69
+ /** @ts-ignore For users with \@types/bun */ /* prettier-ignore */
71
70
  type BunRequestInit = globalThis.FetchRequestInit;
72
- /** @ts-ignore For users with node-fetch@2 */
71
+ /** @ts-ignore For users with node-fetch@2 */ /* prettier-ignore */
73
72
  type NodeFetch2RequestInit = NotAny<import('../node_modules/@types/node-fetch/index.d.ts').RequestInit> | NotAny<import('../../node_modules/@types/node-fetch/index.d.ts').RequestInit> | NotAny<import('../../../node_modules/@types/node-fetch/index.d.ts').RequestInit> | NotAny<import('../../../../node_modules/@types/node-fetch/index.d.ts').RequestInit> | NotAny<import('../../../../../node_modules/@types/node-fetch/index.d.ts').RequestInit> | NotAny<import('../../../../../../node_modules/@types/node-fetch/index.d.ts').RequestInit> | NotAny<import('../../../../../../../node_modules/@types/node-fetch/index.d.ts').RequestInit> | NotAny<import('../../../../../../../../node_modules/@types/node-fetch/index.d.ts').RequestInit> | NotAny<import('../../../../../../../../../node_modules/@types/node-fetch/index.d.ts').RequestInit> | NotAny<import('../../../../../../../../../../node_modules/@types/node-fetch/index.d.ts').RequestInit>;
74
- /** @ts-ignore For users with node-fetch@3, doesn't need file extension because types are at ./@types/index.d.ts */
73
+ /** @ts-ignore For users with node-fetch@3, doesn't need file extension because types are at ./@types/index.d.ts */ /* prettier-ignore */
75
74
  type NodeFetch3RequestInit = NotAny<import('../node_modules/node-fetch').RequestInit> | NotAny<import('../../node_modules/node-fetch').RequestInit> | NotAny<import('../../../node_modules/node-fetch').RequestInit> | NotAny<import('../../../../node_modules/node-fetch').RequestInit> | NotAny<import('../../../../../node_modules/node-fetch').RequestInit> | NotAny<import('../../../../../../node_modules/node-fetch').RequestInit> | NotAny<import('../../../../../../../node_modules/node-fetch').RequestInit> | NotAny<import('../../../../../../../../node_modules/node-fetch').RequestInit> | NotAny<import('../../../../../../../../../node_modules/node-fetch').RequestInit> | NotAny<import('../../../../../../../../../../node_modules/node-fetch').RequestInit>;
76
- /** @ts-ignore For users who use Deno */
75
+ /** @ts-ignore For users who use Deno */ /* prettier-ignore */
77
76
  type FetchRequestInit = NonNullable<OverloadedParameters<typeof fetch>[1]>;
78
- /* eslint-enable */
79
77
 
80
78
  type RequestInits =
81
79
  | NotAny<UndiciTypesRequestInit>
@@ -107,6 +107,8 @@ export const formatRequestDetails = (details: {
107
107
  name,
108
108
  (
109
109
  name.toLowerCase() === 'authorization' ||
110
+ name.toLowerCase() === 'api-key' ||
111
+ name.toLowerCase() === 'x-api-key' ||
110
112
  name.toLowerCase() === 'cookie' ||
111
113
  name.toLowerCase() === 'set-cookie'
112
114
  ) ?
@@ -30,7 +30,7 @@ export class FeedbackRecords extends APIResource {
30
30
  * language: 'en',
31
31
  * source_id: 'survey-123',
32
32
  * source_name: 'Q1 NPS Survey',
33
- * user_identifier: 'user-abc-123',
33
+ * user_id: 'user-abc-123',
34
34
  * value_number: 9,
35
35
  * });
36
36
  * ```
@@ -75,7 +75,8 @@ export class FeedbackRecords extends APIResource {
75
75
  }
76
76
 
77
77
  /**
78
- * Lists feedback records with optional filters and pagination
78
+ * Lists feedback records for a required tenant_id with optional additional filters
79
+ * and pagination
79
80
  *
80
81
  * @example
81
82
  * ```ts
@@ -106,14 +107,15 @@ export class FeedbackRecords extends APIResource {
106
107
  }
107
108
 
108
109
  /**
109
- * Permanently deletes all feedback record data points matching the specified
110
- * user_identifier. This endpoint supports GDPR Article 17 (Right to Erasure)
111
- * requests.
110
+ * Permanently deletes feedback record data points matching the specified user_id.
111
+ * Omit tenant_id to delete that user_id across all tenants for GDPR Article 17
112
+ * (Right to Erasure) requests. Provide tenant_id to restrict deletion to that
113
+ * tenant only.
112
114
  *
113
115
  * @example
114
116
  * ```ts
115
117
  * const response = await client.feedbackRecords.bulkDelete({
116
- * user_identifier: 'user-abc-123',
118
+ * user_id: 'user-abc-123',
117
119
  * });
118
120
  * ```
119
121
  */
@@ -121,15 +123,16 @@ export class FeedbackRecords extends APIResource {
121
123
  params: FeedbackRecordBulkDeleteParams,
122
124
  options?: RequestOptions,
123
125
  ): APIPromise<FeedbackRecordBulkDeleteResponse> {
124
- const { user_identifier, tenant_id } = params;
125
- return this._client.delete('/v1/feedback-records', { query: { user_identifier, tenant_id }, ...options });
126
+ const { user_id, tenant_id } = params;
127
+ return this._client.delete('/v1/feedback-records', { query: { user_id, tenant_id }, ...options });
126
128
  }
127
129
 
128
130
  /**
129
131
  * Returns feedback record IDs and similarity scores for records similar to the
130
132
  * given one (by embedding). **Only available when embeddings are configured**
131
133
  * (EMBEDDING_PROVIDER and EMBEDDING_MODEL set). Supported providers: openai,
132
- * google (AI Studio), google-vertex. When embeddings are disabled, this endpoint
134
+ * google (Gemini Developer API / Google AI Studio), google-gemini (Gemini
135
+ * Enterprise Agent Platform API). When embeddings are disabled, this endpoint
133
136
  * returns 503 Service Unavailable. The source feedback record must belong to the
134
137
  * given tenant_id (enforced).
135
138
  *
@@ -233,9 +236,9 @@ export interface FeedbackRecordData {
233
236
  source_name?: string;
234
237
 
235
238
  /**
236
- * User identifier
239
+ * User ID (e.g., anonymous ID or email hash)
237
240
  */
238
- user_identifier?: string;
241
+ user_id?: string;
239
242
 
240
243
  /**
241
244
  * Boolean response
@@ -410,9 +413,9 @@ export interface FeedbackRecordCreateParams {
410
413
  source_name?: string | null;
411
414
 
412
415
  /**
413
- * Anonymous ID or email hash
416
+ * User ID (e.g., anonymous ID or email hash)
414
417
  */
415
- user_identifier?: string;
418
+ user_id?: string;
416
419
 
417
420
  /**
418
421
  * For yes/no questions
@@ -449,9 +452,9 @@ export interface FeedbackRecordUpdateParams {
449
452
  metadata?: { [key: string]: unknown };
450
453
 
451
454
  /**
452
- * Update user identifier
455
+ * User ID (e.g., anonymous ID or email hash)
453
456
  */
454
- user_identifier?: string;
457
+ user_id?: string;
455
458
 
456
459
  /**
457
460
  * Update boolean response
@@ -535,21 +538,21 @@ export interface FeedbackRecordListParams {
535
538
  until?: string;
536
539
 
537
540
  /**
538
- * Filter by user identifier. NULL bytes not allowed.
541
+ * Filter by user ID. NULL bytes not allowed.
539
542
  */
540
- user_identifier?: string;
543
+ user_id?: string;
541
544
  }
542
545
 
543
546
  export interface FeedbackRecordBulkDeleteParams {
544
547
  /**
545
- * Delete all records matching this user identifier (required). NULL bytes not
546
- * allowed.
548
+ * Delete records matching this user ID (required). NULL bytes not allowed.
547
549
  */
548
- user_identifier: string;
550
+ user_id: string;
549
551
 
550
552
  /**
551
- * Filter by tenant ID (optional, for multi-tenant deployments). NULL bytes not
552
- * allowed.
553
+ * Optional tenant scope. Omit this parameter to delete all records matching
554
+ * user_id across tenants; provide it to delete only records for this tenant. Empty
555
+ * strings and NULL bytes are not allowed.
553
556
  */
554
557
  tenant_id?: string;
555
558
  }
@@ -12,7 +12,8 @@ export class Search extends APIResource {
12
12
  * Embeds the search query and returns feedback record IDs with similarity scores
13
13
  * (cosine, 0..1). **Only available when embeddings are configured**
14
14
  * (EMBEDDING_PROVIDER and EMBEDDING_MODEL set). Supported providers: openai,
15
- * google (AI Studio), google-vertex. When embeddings are disabled, this endpoint
15
+ * google (Gemini Developer API / Google AI Studio), google-gemini (Gemini
16
+ * Enterprise Agent Platform API). When embeddings are disabled, this endpoint
16
17
  * returns 503 Service Unavailable. Request body must include query and tenant_id
17
18
  * (required for tenant isolation).
18
19
  *
@@ -14,12 +14,13 @@ export class Webhooks extends APIResource {
14
14
  * Creates a new webhook endpoint. When events occur (e.g.
15
15
  * feedback*record.created), the Hub POSTs a signed payload to the webhook URL. If
16
16
  * signing_key is omitted, a key is auto-generated (Standard Webhooks format,
17
- * whsec*...). See WebhookDeliveryPayload for the payload structure sent to your
18
- * URL.
17
+ * whsec*...). tenant_id is required; webhooks only receive events from that exact
18
+ * tenant. See WebhookDeliveryPayload for the payload structure sent to your URL.
19
19
  *
20
20
  * @example
21
21
  * ```ts
22
22
  * const webhook = await client.webhooks.create({
23
+ * tenant_id: 'org-123',
23
24
  * url: 'https://example.com/hub-events',
24
25
  * enabled: true,
25
26
  * event_types: [
@@ -360,6 +361,12 @@ export namespace WebhookListResponse {
360
361
  }
361
362
 
362
363
  export interface WebhookCreateParams {
364
+ /**
365
+ * Tenant/organization identifier. Required for webhook isolation; NULL bytes not
366
+ * allowed.
367
+ */
368
+ tenant_id: string;
369
+
363
370
  /**
364
371
  * URL to receive webhook POSTs. Must be an HTTP or HTTPS URL. NULL bytes not
365
372
  * allowed.
@@ -390,11 +397,6 @@ export interface WebhookCreateParams {
390
397
  * allowed.
391
398
  */
392
399
  signing_key?: string;
393
-
394
- /**
395
- * Tenant/organization identifier. NULL bytes not allowed.
396
- */
397
- tenant_id?: string;
398
400
  }
399
401
 
400
402
  export interface WebhookUpdateParams {
@@ -422,10 +424,9 @@ export interface WebhookUpdateParams {
422
424
  signing_key?: string;
423
425
 
424
426
  /**
425
- * Omit or send null to leave unchanged. Send empty string to clear (store as
426
- * null).
427
+ * Omit to leave unchanged. Empty strings are rejected; webhooks cannot be global.
427
428
  */
428
- tenant_id?: string | null;
429
+ tenant_id?: string;
429
430
 
430
431
  /**
431
432
  * New webhook URL. Must be an HTTP or HTTPS URL. NULL bytes not allowed.
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const VERSION = '0.4.4'; // x-release-please-version
1
+ export const VERSION = '0.5.1'; // x-release-please-version
package/uploads.d.mts CHANGED
@@ -1,2 +1,3 @@
1
+ /** @deprecated Import from ./core/uploads instead */
1
2
  export * from "./core/uploads.mjs";
2
3
  //# sourceMappingURL=uploads.d.mts.map
package/uploads.d.mts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"uploads.d.mts","sourceRoot":"","sources":["src/uploads.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"uploads.d.mts","sourceRoot":"","sources":["src/uploads.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,mCAA+B"}
package/uploads.d.ts CHANGED
@@ -1,2 +1,3 @@
1
+ /** @deprecated Import from ./core/uploads instead */
1
2
  export * from "./core/uploads.js";
2
3
  //# sourceMappingURL=uploads.d.ts.map
package/uploads.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"uploads.d.ts","sourceRoot":"","sources":["src/uploads.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"uploads.d.ts","sourceRoot":"","sources":["src/uploads.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,kCAA+B"}
package/uploads.mjs CHANGED
@@ -1,2 +1,3 @@
1
+ /** @deprecated Import from ./core/uploads instead */
1
2
  export * from "./core/uploads.mjs";
2
3
  //# sourceMappingURL=uploads.mjs.map
package/uploads.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"uploads.mjs","sourceRoot":"","sources":["src/uploads.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"uploads.mjs","sourceRoot":"","sources":["src/uploads.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,mCAA+B"}
package/version.d.mts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.4.4";
1
+ export declare const VERSION = "0.5.1";
2
2
  //# sourceMappingURL=version.d.mts.map
package/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.4.4";
1
+ export declare const VERSION = "0.5.1";
2
2
  //# sourceMappingURL=version.d.ts.map
package/version.js CHANGED
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VERSION = void 0;
4
- exports.VERSION = '0.4.4'; // x-release-please-version
4
+ exports.VERSION = '0.5.1'; // x-release-please-version
5
5
  //# sourceMappingURL=version.js.map
package/version.mjs CHANGED
@@ -1,2 +1,2 @@
1
- export const VERSION = '0.4.4'; // x-release-please-version
1
+ export const VERSION = '0.5.1'; // x-release-please-version
2
2
  //# sourceMappingURL=version.mjs.map