@knocklabs/client 0.11.2 → 0.11.3

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.11.3
4
+
5
+ ### Patch Changes
6
+
7
+ - 4f76cd6: fix: raise when calling user methods before auth
8
+
3
9
  ## 0.11.2
4
10
 
5
11
  ### Patch Changes
@@ -1,2 +1,2 @@
1
- "use strict";var l=Object.defineProperty;var d=(r,e,t)=>e in r?l(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var u=(r,e,t)=>d(r,typeof e!="symbol"?e+"":e,t);Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a="default";function o(r){return typeof r=="object"?r:{subscribed:r}}class h{constructor(e){u(this,"instance");this.instance=e}async getAll(){const e=await this.instance.client().makeRequest({method:"GET",url:`/v1/users/${this.instance.userId}/preferences`});return this.handleResponse(e)}async get(e={}){const t=e.preferenceSet||a,s=await this.instance.client().makeRequest({method:"GET",url:`/v1/users/${this.instance.userId}/preferences/${t}`});return this.handleResponse(s)}async set(e,t={}){const s=t.preferenceSet||a,n=await this.instance.client().makeRequest({method:"PUT",url:`/v1/users/${this.instance.userId}/preferences/${s}`,data:e});return this.handleResponse(n)}async setChannelTypes(e,t={}){const s=t.preferenceSet||a,n=await this.instance.client().makeRequest({method:"PUT",url:`/v1/users/${this.instance.userId}/preferences/${s}/channel_types`,data:e});return this.handleResponse(n)}async setChannelType(e,t,s={}){const n=s.preferenceSet||a,c=await this.instance.client().makeRequest({method:"PUT",url:`/v1/users/${this.instance.userId}/preferences/${n}/channel_types/${e}`,data:{subscribed:t}});return this.handleResponse(c)}async setWorkflows(e,t={}){const s=t.preferenceSet||a,n=await this.instance.client().makeRequest({method:"PUT",url:`/v1/users/${this.instance.userId}/preferences/${s}/workflows`,data:e});return this.handleResponse(n)}async setWorkflow(e,t,s={}){const n=s.preferenceSet||a,c=o(t),i=await this.instance.client().makeRequest({method:"PUT",url:`/v1/users/${this.instance.userId}/preferences/${n}/workflows/${e}`,data:c});return this.handleResponse(i)}async setCategories(e,t={}){const s=t.preferenceSet||a,n=await this.instance.client().makeRequest({method:"PUT",url:`/v1/users/${this.instance.userId}/preferences/${s}/categories`,data:e});return this.handleResponse(n)}async setCategory(e,t,s={}){const n=s.preferenceSet||a,c=o(t),i=await this.instance.client().makeRequest({method:"PUT",url:`/v1/users/${this.instance.userId}/preferences/${n}/categories/${e}`,data:c});return this.handleResponse(i)}handleResponse(e){if(e.statusCode==="error")throw new Error(e.error||e.body);return e.body}}exports.default=h;
1
+ "use strict";var h=Object.defineProperty;var l=(r,e,t)=>e in r?h(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var u=(r,e,t)=>l(r,typeof e!="symbol"?e+"":e,t);Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a="default";function o(r){return typeof r=="object"?r:{subscribed:r}}class d{constructor(e){u(this,"instance");this.instance=e}async getAll(){this.instance.failIfNotAuthenticated();const e=await this.instance.client().makeRequest({method:"GET",url:`/v1/users/${this.instance.userId}/preferences`});return this.handleResponse(e)}async get(e={}){this.instance.failIfNotAuthenticated();const t=e.preferenceSet||a,s=await this.instance.client().makeRequest({method:"GET",url:`/v1/users/${this.instance.userId}/preferences/${t}`});return this.handleResponse(s)}async set(e,t={}){this.instance.failIfNotAuthenticated();const s=t.preferenceSet||a,n=await this.instance.client().makeRequest({method:"PUT",url:`/v1/users/${this.instance.userId}/preferences/${s}`,data:e});return this.handleResponse(n)}async setChannelTypes(e,t={}){this.instance.failIfNotAuthenticated();const s=t.preferenceSet||a,n=await this.instance.client().makeRequest({method:"PUT",url:`/v1/users/${this.instance.userId}/preferences/${s}/channel_types`,data:e});return this.handleResponse(n)}async setChannelType(e,t,s={}){this.instance.failIfNotAuthenticated();const n=s.preferenceSet||a,c=await this.instance.client().makeRequest({method:"PUT",url:`/v1/users/${this.instance.userId}/preferences/${n}/channel_types/${e}`,data:{subscribed:t}});return this.handleResponse(c)}async setWorkflows(e,t={}){this.instance.failIfNotAuthenticated();const s=t.preferenceSet||a,n=await this.instance.client().makeRequest({method:"PUT",url:`/v1/users/${this.instance.userId}/preferences/${s}/workflows`,data:e});return this.handleResponse(n)}async setWorkflow(e,t,s={}){this.instance.failIfNotAuthenticated();const n=s.preferenceSet||a,c=o(t),i=await this.instance.client().makeRequest({method:"PUT",url:`/v1/users/${this.instance.userId}/preferences/${n}/workflows/${e}`,data:c});return this.handleResponse(i)}async setCategories(e,t={}){this.instance.failIfNotAuthenticated();const s=t.preferenceSet||a,n=await this.instance.client().makeRequest({method:"PUT",url:`/v1/users/${this.instance.userId}/preferences/${s}/categories`,data:e});return this.handleResponse(n)}async setCategory(e,t,s={}){this.instance.failIfNotAuthenticated();const n=s.preferenceSet||a,c=o(t),i=await this.instance.client().makeRequest({method:"PUT",url:`/v1/users/${this.instance.userId}/preferences/${n}/categories/${e}`,data:c});return this.handleResponse(i)}handleResponse(e){if(e.statusCode==="error")throw new Error(e.error||e.body);return e.body}}exports.default=d;
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/clients/preferences/index.ts"],"sourcesContent":["import { ChannelType } from \"@knocklabs/types\";\n\nimport { ApiResponse } from \"../../api\";\nimport Knock from \"../../knock\";\n\nimport {\n ChannelTypePreferences,\n PreferenceOptions,\n PreferenceSet,\n SetPreferencesProperties,\n WorkflowPreferenceSetting,\n WorkflowPreferences,\n} from \"./interfaces\";\n\nconst DEFAULT_PREFERENCE_SET_ID = \"default\";\n\nfunction buildUpdateParam(param: WorkflowPreferenceSetting) {\n if (typeof param === \"object\") {\n return param;\n }\n\n return { subscribed: param };\n}\n\nclass Preferences {\n private instance: Knock;\n\n constructor(instance: Knock) {\n this.instance = instance;\n }\n\n /**\n * @deprecated Use `user.getAllPreferences()` instead\n */\n async getAll() {\n const result = await this.instance.client().makeRequest({\n method: \"GET\",\n url: `/v1/users/${this.instance.userId}/preferences`,\n });\n\n return this.handleResponse(result);\n }\n\n /**\n * @deprecated Use `user.getPreferences()` instead\n */\n async get(options: PreferenceOptions = {}) {\n const preferenceSetId = options.preferenceSet || DEFAULT_PREFERENCE_SET_ID;\n\n const result = await this.instance.client().makeRequest({\n method: \"GET\",\n url: `/v1/users/${this.instance.userId}/preferences/${preferenceSetId}`,\n });\n\n return this.handleResponse(result);\n }\n\n /**\n * @deprecated Use `user.setPreferences(preferenceSet, options)` instead\n */\n async set(\n preferenceSet: SetPreferencesProperties,\n options: PreferenceOptions = {},\n ) {\n const preferenceSetId = options.preferenceSet || DEFAULT_PREFERENCE_SET_ID;\n\n const result = await this.instance.client().makeRequest({\n method: \"PUT\",\n url: `/v1/users/${this.instance.userId}/preferences/${preferenceSetId}`,\n data: preferenceSet,\n });\n\n return this.handleResponse(result);\n }\n\n /**\n * @deprecated Use `user.setPreferences(preferenceSet, options)` instead\n */\n async setChannelTypes(\n channelTypePreferences: ChannelTypePreferences,\n options: PreferenceOptions = {},\n ) {\n const preferenceSetId = options.preferenceSet || DEFAULT_PREFERENCE_SET_ID;\n\n const result = await this.instance.client().makeRequest({\n method: \"PUT\",\n url: `/v1/users/${this.instance.userId}/preferences/${preferenceSetId}/channel_types`,\n data: channelTypePreferences,\n });\n\n return this.handleResponse(result);\n }\n\n /**\n * @deprecated Use `user.setPreferences(preferenceSet, options)` instead\n */\n async setChannelType(\n channelType: ChannelType,\n setting: boolean,\n options: PreferenceOptions = {},\n ) {\n const preferenceSetId = options.preferenceSet || DEFAULT_PREFERENCE_SET_ID;\n\n const result = await this.instance.client().makeRequest({\n method: \"PUT\",\n url: `/v1/users/${this.instance.userId}/preferences/${preferenceSetId}/channel_types/${channelType}`,\n data: { subscribed: setting },\n });\n\n return this.handleResponse(result);\n }\n\n /**\n * @deprecated Use `user.setPreferences(preferenceSet, options)` instead\n */\n async setWorkflows(\n workflowPreferences: WorkflowPreferences,\n options: PreferenceOptions = {},\n ) {\n const preferenceSetId = options.preferenceSet || DEFAULT_PREFERENCE_SET_ID;\n\n const result = await this.instance.client().makeRequest({\n method: \"PUT\",\n url: `/v1/users/${this.instance.userId}/preferences/${preferenceSetId}/workflows`,\n data: workflowPreferences,\n });\n\n return this.handleResponse(result);\n }\n\n /**\n * @deprecated Use `user.setPreferences(preferenceSet, options)` instead\n */\n async setWorkflow(\n workflowKey: string,\n setting: WorkflowPreferenceSetting,\n options: PreferenceOptions = {},\n ) {\n const preferenceSetId = options.preferenceSet || DEFAULT_PREFERENCE_SET_ID;\n const params = buildUpdateParam(setting);\n\n const result = await this.instance.client().makeRequest({\n method: \"PUT\",\n url: `/v1/users/${this.instance.userId}/preferences/${preferenceSetId}/workflows/${workflowKey}`,\n data: params,\n });\n\n return this.handleResponse(result);\n }\n\n /**\n * @deprecated Use `user.setPreferences(preferenceSet, options)` instead\n */\n async setCategories(\n categoryPreferences: WorkflowPreferences,\n options: PreferenceOptions = {},\n ) {\n const preferenceSetId = options.preferenceSet || DEFAULT_PREFERENCE_SET_ID;\n\n const result = await this.instance.client().makeRequest({\n method: \"PUT\",\n url: `/v1/users/${this.instance.userId}/preferences/${preferenceSetId}/categories`,\n data: categoryPreferences,\n });\n\n return this.handleResponse(result);\n }\n\n /**\n * @deprecated Use `user.setPreferences(preferenceSet, options)` instead\n */\n async setCategory(\n categoryKey: string,\n setting: WorkflowPreferenceSetting,\n options: PreferenceOptions = {},\n ) {\n const preferenceSetId = options.preferenceSet || DEFAULT_PREFERENCE_SET_ID;\n const params = buildUpdateParam(setting);\n\n const result = await this.instance.client().makeRequest({\n method: \"PUT\",\n url: `/v1/users/${this.instance.userId}/preferences/${preferenceSetId}/categories/${categoryKey}`,\n data: params,\n });\n\n return this.handleResponse(result);\n }\n\n private handleResponse(response: ApiResponse) {\n if (response.statusCode === \"error\") {\n throw new Error(response.error || response.body);\n }\n\n return response.body as PreferenceSet;\n }\n}\n\nexport default Preferences;\n"],"names":["DEFAULT_PREFERENCE_SET_ID","buildUpdateParam","param","Preferences","instance","__publicField","result","options","preferenceSetId","preferenceSet","channelTypePreferences","channelType","setting","workflowPreferences","workflowKey","params","categoryPreferences","categoryKey","response"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/clients/preferences/index.ts"],"sourcesContent":["import { ChannelType } from \"@knocklabs/types\";\n\nimport { ApiResponse } from \"../../api\";\nimport Knock from \"../../knock\";\n\nimport {\n ChannelTypePreferences,\n PreferenceOptions,\n PreferenceSet,\n SetPreferencesProperties,\n WorkflowPreferenceSetting,\n WorkflowPreferences,\n} from \"./interfaces\";\n\nconst DEFAULT_PREFERENCE_SET_ID = \"default\";\n\nfunction buildUpdateParam(param: WorkflowPreferenceSetting) {\n if (typeof param === \"object\") {\n return param;\n }\n\n return { subscribed: param };\n}\n\nclass Preferences {\n private instance: Knock;\n\n constructor(instance: Knock) {\n this.instance = instance;\n }\n\n /**\n * @deprecated Use `user.getAllPreferences()` instead\n */\n async getAll() {\n this.instance.failIfNotAuthenticated();\n\n const result = await this.instance.client().makeRequest({\n method: \"GET\",\n url: `/v1/users/${this.instance.userId}/preferences`,\n });\n\n return this.handleResponse(result);\n }\n\n /**\n * @deprecated Use `user.getPreferences()` instead\n */\n async get(options: PreferenceOptions = {}) {\n this.instance.failIfNotAuthenticated();\n\n const preferenceSetId = options.preferenceSet || DEFAULT_PREFERENCE_SET_ID;\n\n const result = await this.instance.client().makeRequest({\n method: \"GET\",\n url: `/v1/users/${this.instance.userId}/preferences/${preferenceSetId}`,\n });\n\n return this.handleResponse(result);\n }\n\n /**\n * @deprecated Use `user.setPreferences(preferenceSet, options)` instead\n */\n async set(\n preferenceSet: SetPreferencesProperties,\n options: PreferenceOptions = {},\n ) {\n this.instance.failIfNotAuthenticated();\n\n const preferenceSetId = options.preferenceSet || DEFAULT_PREFERENCE_SET_ID;\n\n const result = await this.instance.client().makeRequest({\n method: \"PUT\",\n url: `/v1/users/${this.instance.userId}/preferences/${preferenceSetId}`,\n data: preferenceSet,\n });\n\n return this.handleResponse(result);\n }\n\n /**\n * @deprecated Use `user.setPreferences(preferenceSet, options)` instead\n */\n async setChannelTypes(\n channelTypePreferences: ChannelTypePreferences,\n options: PreferenceOptions = {},\n ) {\n this.instance.failIfNotAuthenticated();\n const preferenceSetId = options.preferenceSet || DEFAULT_PREFERENCE_SET_ID;\n\n const result = await this.instance.client().makeRequest({\n method: \"PUT\",\n url: `/v1/users/${this.instance.userId}/preferences/${preferenceSetId}/channel_types`,\n data: channelTypePreferences,\n });\n\n return this.handleResponse(result);\n }\n\n /**\n * @deprecated Use `user.setPreferences(preferenceSet, options)` instead\n */\n async setChannelType(\n channelType: ChannelType,\n setting: boolean,\n options: PreferenceOptions = {},\n ) {\n this.instance.failIfNotAuthenticated();\n const preferenceSetId = options.preferenceSet || DEFAULT_PREFERENCE_SET_ID;\n\n const result = await this.instance.client().makeRequest({\n method: \"PUT\",\n url: `/v1/users/${this.instance.userId}/preferences/${preferenceSetId}/channel_types/${channelType}`,\n data: { subscribed: setting },\n });\n\n return this.handleResponse(result);\n }\n\n /**\n * @deprecated Use `user.setPreferences(preferenceSet, options)` instead\n */\n async setWorkflows(\n workflowPreferences: WorkflowPreferences,\n options: PreferenceOptions = {},\n ) {\n this.instance.failIfNotAuthenticated();\n const preferenceSetId = options.preferenceSet || DEFAULT_PREFERENCE_SET_ID;\n\n const result = await this.instance.client().makeRequest({\n method: \"PUT\",\n url: `/v1/users/${this.instance.userId}/preferences/${preferenceSetId}/workflows`,\n data: workflowPreferences,\n });\n\n return this.handleResponse(result);\n }\n\n /**\n * @deprecated Use `user.setPreferences(preferenceSet, options)` instead\n */\n async setWorkflow(\n workflowKey: string,\n setting: WorkflowPreferenceSetting,\n options: PreferenceOptions = {},\n ) {\n this.instance.failIfNotAuthenticated();\n\n const preferenceSetId = options.preferenceSet || DEFAULT_PREFERENCE_SET_ID;\n const params = buildUpdateParam(setting);\n\n const result = await this.instance.client().makeRequest({\n method: \"PUT\",\n url: `/v1/users/${this.instance.userId}/preferences/${preferenceSetId}/workflows/${workflowKey}`,\n data: params,\n });\n\n return this.handleResponse(result);\n }\n\n /**\n * @deprecated Use `user.setPreferences(preferenceSet, options)` instead\n */\n async setCategories(\n categoryPreferences: WorkflowPreferences,\n options: PreferenceOptions = {},\n ) {\n this.instance.failIfNotAuthenticated();\n\n const preferenceSetId = options.preferenceSet || DEFAULT_PREFERENCE_SET_ID;\n\n const result = await this.instance.client().makeRequest({\n method: \"PUT\",\n url: `/v1/users/${this.instance.userId}/preferences/${preferenceSetId}/categories`,\n data: categoryPreferences,\n });\n\n return this.handleResponse(result);\n }\n\n /**\n * @deprecated Use `user.setPreferences(preferenceSet, options)` instead\n */\n async setCategory(\n categoryKey: string,\n setting: WorkflowPreferenceSetting,\n options: PreferenceOptions = {},\n ) {\n this.instance.failIfNotAuthenticated();\n\n const preferenceSetId = options.preferenceSet || DEFAULT_PREFERENCE_SET_ID;\n const params = buildUpdateParam(setting);\n\n const result = await this.instance.client().makeRequest({\n method: \"PUT\",\n url: `/v1/users/${this.instance.userId}/preferences/${preferenceSetId}/categories/${categoryKey}`,\n data: params,\n });\n\n return this.handleResponse(result);\n }\n\n private handleResponse(response: ApiResponse) {\n if (response.statusCode === \"error\") {\n throw new Error(response.error || response.body);\n }\n\n return response.body as PreferenceSet;\n }\n}\n\nexport default Preferences;\n"],"names":["DEFAULT_PREFERENCE_SET_ID","buildUpdateParam","param","Preferences","instance","__publicField","result","options","preferenceSetId","preferenceSet","channelTypePreferences","channelType","setting","workflowPreferences","workflowKey","params","categoryPreferences","categoryKey","response"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";var c=Object.defineProperty;var u=(s,e,t)=>e in s?c(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t;var a=(s,e,t)=>u(s,typeof e!="symbol"?e+"":e,t);Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const r="default";class l{constructor(e){a(this,"instance");this.instance=e}async get(){const e=await this.instance.client().makeRequest({method:"GET",url:`/v1/users/${this.instance.userId}`});return this.handleResponse(e)}async identify(e={}){const t=await this.instance.client().makeRequest({method:"PUT",url:`/v1/users/${this.instance.userId}`,params:e});return this.handleResponse(t)}async getAllPreferences(){const e=await this.instance.client().makeRequest({method:"GET",url:`/v1/users/${this.instance.userId}/preferences`});return this.handleResponse(e)}async getPreferences(e={}){const t=e.preferenceSet||r,n=await this.instance.client().makeRequest({method:"GET",url:`/v1/users/${this.instance.userId}/preferences/${t}`,params:{tenant:e.tenant}});return this.handleResponse(n)}async setPreferences(e,t={}){const n=t.preferenceSet||r,i=await this.instance.client().makeRequest({method:"PUT",url:`/v1/users/${this.instance.userId}/preferences/${n}`,data:e});return this.handleResponse(i)}async getChannelData(e){const t=await this.instance.client().makeRequest({method:"GET",url:`/v1/users/${this.instance.userId}/channel_data/${e.channelId}`});return this.handleResponse(t)}async setChannelData({channelId:e,channelData:t}){const n=await this.instance.client().makeRequest({method:"PUT",url:`/v1/users/${this.instance.userId}/channel_data/${e}`,data:{data:t}});return this.handleResponse(n)}handleResponse(e){if(e.statusCode==="error")throw new Error(e.error||e.body);return e.body}}exports.default=l;
1
+ "use strict";var c=Object.defineProperty;var u=(s,e,t)=>e in s?c(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t;var a=(s,e,t)=>u(s,typeof e!="symbol"?e+"":e,t);Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const i="default";class h{constructor(e){a(this,"instance");this.instance=e}async get(){this.instance.failIfNotAuthenticated();const e=await this.instance.client().makeRequest({method:"GET",url:`/v1/users/${this.instance.userId}`});return this.handleResponse(e)}async identify(e={}){this.instance.failIfNotAuthenticated();const t=await this.instance.client().makeRequest({method:"PUT",url:`/v1/users/${this.instance.userId}`,params:e});return this.handleResponse(t)}async getAllPreferences(){this.instance.failIfNotAuthenticated();const e=await this.instance.client().makeRequest({method:"GET",url:`/v1/users/${this.instance.userId}/preferences`});return this.handleResponse(e)}async getPreferences(e={}){this.instance.failIfNotAuthenticated();const t=e.preferenceSet||i,n=await this.instance.client().makeRequest({method:"GET",url:`/v1/users/${this.instance.userId}/preferences/${t}`,params:{tenant:e.tenant}});return this.handleResponse(n)}async setPreferences(e,t={}){this.instance.failIfNotAuthenticated();const n=t.preferenceSet||i,r=await this.instance.client().makeRequest({method:"PUT",url:`/v1/users/${this.instance.userId}/preferences/${n}`,data:e});return this.handleResponse(r)}async getChannelData(e){this.instance.failIfNotAuthenticated();const t=await this.instance.client().makeRequest({method:"GET",url:`/v1/users/${this.instance.userId}/channel_data/${e.channelId}`});return this.handleResponse(t)}async setChannelData({channelId:e,channelData:t}){this.instance.failIfNotAuthenticated();const n=await this.instance.client().makeRequest({method:"PUT",url:`/v1/users/${this.instance.userId}/channel_data/${e}`,data:{data:t}});return this.handleResponse(n)}handleResponse(e){if(e.statusCode==="error")throw new Error(e.error||e.body);return e.body}}exports.default=h;
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/clients/users/index.ts"],"sourcesContent":["import { GenericData } from \"@knocklabs/types\";\n\nimport { ApiResponse } from \"../../api\";\nimport { ChannelData, User } from \"../../interfaces\";\nimport Knock from \"../../knock\";\nimport {\n GetPreferencesOptions,\n PreferenceOptions,\n PreferenceSet,\n SetPreferencesProperties,\n} from \"../preferences/interfaces\";\n\nimport { GetChannelDataInput, SetChannelDataInput } from \"./interfaces\";\n\nconst DEFAULT_PREFERENCE_SET_ID = \"default\";\n\nclass UserClient {\n private instance: Knock;\n\n constructor(instance: Knock) {\n this.instance = instance;\n }\n\n async get() {\n const result = await this.instance.client().makeRequest({\n method: \"GET\",\n url: `/v1/users/${this.instance.userId}`,\n });\n\n return this.handleResponse<User>(result);\n }\n\n async identify(props: GenericData = {}) {\n const result = await this.instance.client().makeRequest({\n method: \"PUT\",\n url: `/v1/users/${this.instance.userId}`,\n params: props,\n });\n\n return this.handleResponse<User>(result);\n }\n\n async getAllPreferences() {\n const result = await this.instance.client().makeRequest({\n method: \"GET\",\n url: `/v1/users/${this.instance.userId}/preferences`,\n });\n\n return this.handleResponse<PreferenceSet[]>(result);\n }\n\n async getPreferences(\n options: GetPreferencesOptions = {},\n ): Promise<PreferenceSet> {\n const preferenceSetId = options.preferenceSet || DEFAULT_PREFERENCE_SET_ID;\n\n const result = await this.instance.client().makeRequest({\n method: \"GET\",\n url: `/v1/users/${this.instance.userId}/preferences/${preferenceSetId}`,\n params: { tenant: options.tenant },\n });\n\n return this.handleResponse<PreferenceSet>(result);\n }\n\n async setPreferences(\n preferenceSet: SetPreferencesProperties,\n options: PreferenceOptions = {},\n ): Promise<PreferenceSet> {\n const preferenceSetId = options.preferenceSet || DEFAULT_PREFERENCE_SET_ID;\n\n const result = await this.instance.client().makeRequest({\n method: \"PUT\",\n url: `/v1/users/${this.instance.userId}/preferences/${preferenceSetId}`,\n data: preferenceSet,\n });\n\n return this.handleResponse<PreferenceSet>(result);\n }\n\n async getChannelData<T = GenericData>(params: GetChannelDataInput) {\n const result = await this.instance.client().makeRequest({\n method: \"GET\",\n url: `/v1/users/${this.instance.userId}/channel_data/${params.channelId}`,\n });\n\n return this.handleResponse<ChannelData<T>>(result);\n }\n\n async setChannelData<T = GenericData>({\n channelId,\n channelData,\n }: SetChannelDataInput) {\n const result = await this.instance.client().makeRequest({\n method: \"PUT\",\n url: `/v1/users/${this.instance.userId}/channel_data/${channelId}`,\n data: { data: channelData },\n });\n\n return this.handleResponse<ChannelData<T>>(result);\n }\n\n private handleResponse<T>(response: ApiResponse) {\n if (response.statusCode === \"error\") {\n throw new Error(response.error || response.body);\n }\n\n return response.body as T;\n }\n}\n\nexport default UserClient;\n"],"names":["DEFAULT_PREFERENCE_SET_ID","UserClient","instance","__publicField","result","props","options","preferenceSetId","preferenceSet","params","channelId","channelData","response"],"mappings":"gRAcA,MAAMA,EAA4B,UAElC,MAAMC,CAAW,CAGf,YAAYC,EAAiB,CAFrBC,EAAA,iBAGN,KAAK,SAAWD,CAClB,CAEA,MAAM,KAAM,CACV,MAAME,EAAS,MAAM,KAAK,SAAS,OAAA,EAAS,YAAY,CACtD,OAAQ,MACR,IAAK,aAAa,KAAK,SAAS,MAAM,EAAA,CACvC,EAEM,OAAA,KAAK,eAAqBA,CAAM,CACzC,CAEA,MAAM,SAASC,EAAqB,GAAI,CACtC,MAAMD,EAAS,MAAM,KAAK,SAAS,OAAA,EAAS,YAAY,CACtD,OAAQ,MACR,IAAK,aAAa,KAAK,SAAS,MAAM,GACtC,OAAQC,CAAA,CACT,EAEM,OAAA,KAAK,eAAqBD,CAAM,CACzC,CAEA,MAAM,mBAAoB,CACxB,MAAMA,EAAS,MAAM,KAAK,SAAS,OAAA,EAAS,YAAY,CACtD,OAAQ,MACR,IAAK,aAAa,KAAK,SAAS,MAAM,cAAA,CACvC,EAEM,OAAA,KAAK,eAAgCA,CAAM,CACpD,CAEA,MAAM,eACJE,EAAiC,GACT,CAClB,MAAAC,EAAkBD,EAAQ,eAAiBN,EAE3CI,EAAS,MAAM,KAAK,SAAS,OAAA,EAAS,YAAY,CACtD,OAAQ,MACR,IAAK,aAAa,KAAK,SAAS,MAAM,gBAAgBG,CAAe,GACrE,OAAQ,CAAE,OAAQD,EAAQ,MAAO,CAAA,CAClC,EAEM,OAAA,KAAK,eAA8BF,CAAM,CAClD,CAEA,MAAM,eACJI,EACAF,EAA6B,GACL,CAClB,MAAAC,EAAkBD,EAAQ,eAAiBN,EAE3CI,EAAS,MAAM,KAAK,SAAS,OAAA,EAAS,YAAY,CACtD,OAAQ,MACR,IAAK,aAAa,KAAK,SAAS,MAAM,gBAAgBG,CAAe,GACrE,KAAMC,CAAA,CACP,EAEM,OAAA,KAAK,eAA8BJ,CAAM,CAClD,CAEA,MAAM,eAAgCK,EAA6B,CACjE,MAAML,EAAS,MAAM,KAAK,SAAS,OAAA,EAAS,YAAY,CACtD,OAAQ,MACR,IAAK,aAAa,KAAK,SAAS,MAAM,iBAAiBK,EAAO,SAAS,EAAA,CACxE,EAEM,OAAA,KAAK,eAA+BL,CAAM,CACnD,CAEA,MAAM,eAAgC,CACpC,UAAAM,EACA,YAAAC,CAAA,EACsB,CACtB,MAAMP,EAAS,MAAM,KAAK,SAAS,OAAA,EAAS,YAAY,CACtD,OAAQ,MACR,IAAK,aAAa,KAAK,SAAS,MAAM,iBAAiBM,CAAS,GAChE,KAAM,CAAE,KAAMC,CAAY,CAAA,CAC3B,EAEM,OAAA,KAAK,eAA+BP,CAAM,CACnD,CAEQ,eAAkBQ,EAAuB,CAC3C,GAAAA,EAAS,aAAe,QAC1B,MAAM,IAAI,MAAMA,EAAS,OAASA,EAAS,IAAI,EAGjD,OAAOA,EAAS,IAClB,CACF"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/clients/users/index.ts"],"sourcesContent":["import { GenericData } from \"@knocklabs/types\";\n\nimport { ApiResponse } from \"../../api\";\nimport { ChannelData, User } from \"../../interfaces\";\nimport Knock from \"../../knock\";\nimport {\n GetPreferencesOptions,\n PreferenceOptions,\n PreferenceSet,\n SetPreferencesProperties,\n} from \"../preferences/interfaces\";\n\nimport { GetChannelDataInput, SetChannelDataInput } from \"./interfaces\";\n\nconst DEFAULT_PREFERENCE_SET_ID = \"default\";\n\nclass UserClient {\n private instance: Knock;\n\n constructor(instance: Knock) {\n this.instance = instance;\n }\n\n async get() {\n this.instance.failIfNotAuthenticated();\n\n const result = await this.instance.client().makeRequest({\n method: \"GET\",\n url: `/v1/users/${this.instance.userId}`,\n });\n\n return this.handleResponse<User>(result);\n }\n\n async identify(props: GenericData = {}) {\n this.instance.failIfNotAuthenticated();\n\n const result = await this.instance.client().makeRequest({\n method: \"PUT\",\n url: `/v1/users/${this.instance.userId}`,\n params: props,\n });\n\n return this.handleResponse<User>(result);\n }\n\n async getAllPreferences() {\n this.instance.failIfNotAuthenticated();\n\n const result = await this.instance.client().makeRequest({\n method: \"GET\",\n url: `/v1/users/${this.instance.userId}/preferences`,\n });\n\n return this.handleResponse<PreferenceSet[]>(result);\n }\n\n async getPreferences(\n options: GetPreferencesOptions = {},\n ): Promise<PreferenceSet> {\n this.instance.failIfNotAuthenticated();\n const preferenceSetId = options.preferenceSet || DEFAULT_PREFERENCE_SET_ID;\n\n const result = await this.instance.client().makeRequest({\n method: \"GET\",\n url: `/v1/users/${this.instance.userId}/preferences/${preferenceSetId}`,\n params: { tenant: options.tenant },\n });\n\n return this.handleResponse<PreferenceSet>(result);\n }\n\n async setPreferences(\n preferenceSet: SetPreferencesProperties,\n options: PreferenceOptions = {},\n ): Promise<PreferenceSet> {\n this.instance.failIfNotAuthenticated();\n const preferenceSetId = options.preferenceSet || DEFAULT_PREFERENCE_SET_ID;\n\n const result = await this.instance.client().makeRequest({\n method: \"PUT\",\n url: `/v1/users/${this.instance.userId}/preferences/${preferenceSetId}`,\n data: preferenceSet,\n });\n\n return this.handleResponse<PreferenceSet>(result);\n }\n\n async getChannelData<T = GenericData>(params: GetChannelDataInput) {\n this.instance.failIfNotAuthenticated();\n\n const result = await this.instance.client().makeRequest({\n method: \"GET\",\n url: `/v1/users/${this.instance.userId}/channel_data/${params.channelId}`,\n });\n\n return this.handleResponse<ChannelData<T>>(result);\n }\n\n async setChannelData<T = GenericData>({\n channelId,\n channelData,\n }: SetChannelDataInput) {\n this.instance.failIfNotAuthenticated();\n\n const result = await this.instance.client().makeRequest({\n method: \"PUT\",\n url: `/v1/users/${this.instance.userId}/channel_data/${channelId}`,\n data: { data: channelData },\n });\n\n return this.handleResponse<ChannelData<T>>(result);\n }\n\n private handleResponse<T>(response: ApiResponse) {\n if (response.statusCode === \"error\") {\n throw new Error(response.error || response.body);\n }\n\n return response.body as T;\n }\n}\n\nexport default UserClient;\n"],"names":["DEFAULT_PREFERENCE_SET_ID","UserClient","instance","__publicField","result","props","options","preferenceSetId","preferenceSet","params","channelId","channelData","response"],"mappings":"gRAcA,MAAMA,EAA4B,UAElC,MAAMC,CAAW,CAGf,YAAYC,EAAiB,CAFrBC,EAAA,iBAGN,KAAK,SAAWD,CAClB,CAEA,MAAM,KAAM,CACV,KAAK,SAAS,yBAEd,MAAME,EAAS,MAAM,KAAK,SAAS,OAAA,EAAS,YAAY,CACtD,OAAQ,MACR,IAAK,aAAa,KAAK,SAAS,MAAM,EAAA,CACvC,EAEM,OAAA,KAAK,eAAqBA,CAAM,CACzC,CAEA,MAAM,SAASC,EAAqB,GAAI,CACtC,KAAK,SAAS,yBAEd,MAAMD,EAAS,MAAM,KAAK,SAAS,OAAA,EAAS,YAAY,CACtD,OAAQ,MACR,IAAK,aAAa,KAAK,SAAS,MAAM,GACtC,OAAQC,CAAA,CACT,EAEM,OAAA,KAAK,eAAqBD,CAAM,CACzC,CAEA,MAAM,mBAAoB,CACxB,KAAK,SAAS,yBAEd,MAAMA,EAAS,MAAM,KAAK,SAAS,OAAA,EAAS,YAAY,CACtD,OAAQ,MACR,IAAK,aAAa,KAAK,SAAS,MAAM,cAAA,CACvC,EAEM,OAAA,KAAK,eAAgCA,CAAM,CACpD,CAEA,MAAM,eACJE,EAAiC,GACT,CACxB,KAAK,SAAS,yBACR,MAAAC,EAAkBD,EAAQ,eAAiBN,EAE3CI,EAAS,MAAM,KAAK,SAAS,OAAA,EAAS,YAAY,CACtD,OAAQ,MACR,IAAK,aAAa,KAAK,SAAS,MAAM,gBAAgBG,CAAe,GACrE,OAAQ,CAAE,OAAQD,EAAQ,MAAO,CAAA,CAClC,EAEM,OAAA,KAAK,eAA8BF,CAAM,CAClD,CAEA,MAAM,eACJI,EACAF,EAA6B,GACL,CACxB,KAAK,SAAS,yBACR,MAAAC,EAAkBD,EAAQ,eAAiBN,EAE3CI,EAAS,MAAM,KAAK,SAAS,OAAA,EAAS,YAAY,CACtD,OAAQ,MACR,IAAK,aAAa,KAAK,SAAS,MAAM,gBAAgBG,CAAe,GACrE,KAAMC,CAAA,CACP,EAEM,OAAA,KAAK,eAA8BJ,CAAM,CAClD,CAEA,MAAM,eAAgCK,EAA6B,CACjE,KAAK,SAAS,yBAEd,MAAML,EAAS,MAAM,KAAK,SAAS,OAAA,EAAS,YAAY,CACtD,OAAQ,MACR,IAAK,aAAa,KAAK,SAAS,MAAM,iBAAiBK,EAAO,SAAS,EAAA,CACxE,EAEM,OAAA,KAAK,eAA+BL,CAAM,CACnD,CAEA,MAAM,eAAgC,CACpC,UAAAM,EACA,YAAAC,CAAA,EACsB,CACtB,KAAK,SAAS,yBAEd,MAAMP,EAAS,MAAM,KAAK,SAAS,OAAA,EAAS,YAAY,CACtD,OAAQ,MACR,IAAK,aAAa,KAAK,SAAS,MAAM,iBAAiBM,CAAS,GAChE,KAAM,CAAE,KAAMC,CAAY,CAAA,CAC3B,EAEM,OAAA,KAAK,eAA+BP,CAAM,CACnD,CAEQ,eAAkBQ,EAAuB,CAC3C,GAAAA,EAAS,aAAe,QAC1B,MAAM,IAAI,MAAMA,EAAS,OAASA,EAAS,IAAI,EAGjD,OAAOA,EAAS,IAClB,CACF"}
package/dist/cjs/knock.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var h=Object.defineProperty;var c=(n,e,t)=>e in n?h(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var i=(n,e,t)=>c(n,typeof e!="symbol"?e+"":e,t);Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const l=require("jwt-decode"),d=require("./api.js"),p=require("./clients/feed/index.js"),k=require("./clients/messages/index.js"),f=require("./clients/ms-teams/index.js"),T=require("./clients/objects/index.js"),g=require("./clients/preferences/index.js"),w=require("./clients/slack/index.js"),x=require("./clients/users/index.js"),C="https://api.knock.app";class m{constructor(e,t={}){i(this,"host");i(this,"apiClient",null);i(this,"userId");i(this,"userToken");i(this,"logLevel");i(this,"tokenExpirationTimer",null);i(this,"feeds",new p.default(this));i(this,"objects",new T.default(this));i(this,"preferences",new g.default(this));i(this,"slack",new w.default(this));i(this,"msTeams",new f.default(this));i(this,"user",new x.default(this));i(this,"messages",new k.default(this));if(this.apiKey=e,this.host=t.host||C,this.logLevel=t.logLevel,this.log("Initialized Knock instance"),this.apiKey&&this.apiKey.startsWith("sk_"))throw new Error("[Knock] You are using your secret API key on the client. Please use the public key.")}client(){return this.apiClient||(this.apiClient=this.createApiClient()),this.apiClient}authenticate(e,t,s){let r=!1;this.apiClient&&(this.userId!==e||this.userToken!==t)&&(this.log("userId or userToken changed; reinitializing connections"),this.feeds.teardownInstances(),this.teardown(),r=!0),this.userId=e,this.userToken=t,this.log(`Authenticated with userId ${e}`),this.userToken&&(s==null?void 0:s.onUserTokenExpiring)instanceof Function&&this.maybeScheduleUserTokenExpiration(s.onUserTokenExpiring,s.timeBeforeExpirationInMs),r&&(this.apiClient=this.createApiClient(),this.feeds.reinitializeInstances(),this.log("Reinitialized real-time connections"))}isAuthenticated(e=!1){return e?!!(this.userId&&this.userToken):!!this.userId}teardown(){var e;this.tokenExpirationTimer&&clearTimeout(this.tokenExpirationTimer),(e=this.apiClient)!=null&&e.socket&&this.apiClient.socket.isConnected()&&this.apiClient.socket.disconnect()}log(e){this.logLevel==="debug"&&console.log(`[Knock] ${e}`)}createApiClient(){return new d.default({apiKey:this.apiKey,host:this.host,userToken:this.userToken})}async maybeScheduleUserTokenExpiration(e,t=3e4){if(!this.userToken)return;const s=l.jwtDecode(this.userToken),r=(s.exp??0)*1e3,o=Date.now();if(r&&r>o){const u=r-t-o;this.tokenExpirationTimer=setTimeout(async()=>{const a=await e(this.userToken,s);typeof a=="string"&&this.authenticate(this.userId,a,{onUserTokenExpiring:e,timeBeforeExpirationInMs:t})},u)}}}exports.default=m;
1
+ "use strict";var u=Object.defineProperty;var c=(n,e,i)=>e in n?u(n,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):n[e]=i;var t=(n,e,i)=>c(n,typeof e!="symbol"?e+"":e,i);Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const l=require("jwt-decode"),d=require("./api.js"),f=require("./clients/feed/index.js"),p=require("./clients/messages/index.js"),k=require("./clients/ms-teams/index.js"),T=require("./clients/objects/index.js"),w=require("./clients/preferences/index.js"),g=require("./clients/slack/index.js"),x=require("./clients/users/index.js"),C="https://api.knock.app";class m{constructor(e,i={}){t(this,"host");t(this,"apiClient",null);t(this,"userId");t(this,"userToken");t(this,"logLevel");t(this,"tokenExpirationTimer",null);t(this,"feeds",new f.default(this));t(this,"objects",new T.default(this));t(this,"preferences",new w.default(this));t(this,"slack",new g.default(this));t(this,"msTeams",new k.default(this));t(this,"user",new x.default(this));t(this,"messages",new p.default(this));if(this.apiKey=e,this.host=i.host||C,this.logLevel=i.logLevel,this.log("Initialized Knock instance"),this.apiKey&&this.apiKey.startsWith("sk_"))throw new Error("[Knock] You are using your secret API key on the client. Please use the public key.")}client(){return this.apiClient||(this.apiClient=this.createApiClient()),this.apiClient}authenticate(e,i,s){let r=!1;this.apiClient&&(this.userId!==e||this.userToken!==i)&&(this.log("userId or userToken changed; reinitializing connections"),this.feeds.teardownInstances(),this.teardown(),r=!0),this.userId=e,this.userToken=i,this.log(`Authenticated with userId ${e}`),this.userToken&&(s==null?void 0:s.onUserTokenExpiring)instanceof Function&&this.maybeScheduleUserTokenExpiration(s.onUserTokenExpiring,s.timeBeforeExpirationInMs),r&&(this.apiClient=this.createApiClient(),this.feeds.reinitializeInstances(),this.log("Reinitialized real-time connections"))}failIfNotAuthenticated(){if(!this.isAuthenticated())throw new Error("Not authenticated. Please call `authenticate` first.")}isAuthenticated(e=!1){return e?!!(this.userId&&this.userToken):!!this.userId}teardown(){var e;this.tokenExpirationTimer&&clearTimeout(this.tokenExpirationTimer),(e=this.apiClient)!=null&&e.socket&&this.apiClient.socket.isConnected()&&this.apiClient.socket.disconnect()}log(e){this.logLevel==="debug"&&console.log(`[Knock] ${e}`)}createApiClient(){return new d.default({apiKey:this.apiKey,host:this.host,userToken:this.userToken})}async maybeScheduleUserTokenExpiration(e,i=3e4){if(!this.userToken)return;const s=l.jwtDecode(this.userToken),r=(s.exp??0)*1e3,o=Date.now();if(r&&r>o){const h=r-i-o;this.tokenExpirationTimer=setTimeout(async()=>{const a=await e(this.userToken,s);typeof a=="string"&&this.authenticate(this.userId,a,{onUserTokenExpiring:e,timeBeforeExpirationInMs:i})},h)}}}exports.default=m;
2
2
  //# sourceMappingURL=knock.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"knock.js","sources":["../../src/knock.ts"],"sourcesContent":["import { jwtDecode } from \"jwt-decode\";\n\nimport ApiClient from \"./api\";\nimport FeedClient from \"./clients/feed\";\nimport MessageClient from \"./clients/messages\";\nimport MsTeamsClient from \"./clients/ms-teams\";\nimport ObjectClient from \"./clients/objects\";\nimport Preferences from \"./clients/preferences\";\nimport SlackClient from \"./clients/slack\";\nimport UserClient from \"./clients/users\";\nimport {\n AuthenticateOptions,\n KnockOptions,\n LogLevel,\n UserTokenExpiringCallback,\n} from \"./interfaces\";\n\nconst DEFAULT_HOST = \"https://api.knock.app\";\n\nclass Knock {\n public host: string;\n private apiClient: ApiClient | null = null;\n public userId: string | undefined | null;\n public userToken?: string;\n public logLevel?: LogLevel;\n private tokenExpirationTimer: ReturnType<typeof setTimeout> | null = null;\n readonly feeds = new FeedClient(this);\n readonly objects = new ObjectClient(this);\n readonly preferences = new Preferences(this);\n readonly slack = new SlackClient(this);\n readonly msTeams = new MsTeamsClient(this);\n readonly user = new UserClient(this);\n readonly messages = new MessageClient(this);\n\n constructor(\n readonly apiKey: string,\n options: KnockOptions = {},\n ) {\n this.host = options.host || DEFAULT_HOST;\n this.logLevel = options.logLevel;\n\n this.log(\"Initialized Knock instance\");\n\n // Fail loudly if we're using the wrong API key\n if (this.apiKey && this.apiKey.startsWith(\"sk_\")) {\n throw new Error(\n \"[Knock] You are using your secret API key on the client. Please use the public key.\",\n );\n }\n }\n\n client() {\n // Initiate a new API client if we don't have one yet\n if (!this.apiClient) {\n this.apiClient = this.createApiClient();\n }\n\n return this.apiClient;\n }\n\n /*\n Authenticates the current user. In non-sandbox environments\n the userToken must be specified.\n */\n authenticate(\n userId: Knock[\"userId\"],\n userToken?: Knock[\"userToken\"],\n options?: AuthenticateOptions,\n ) {\n let reinitializeApi = false;\n const currentApiClient = this.apiClient;\n\n // If we've previously been initialized and the values have now changed, then we\n // need to reinitialize any stateful connections we have\n if (\n currentApiClient &&\n (this.userId !== userId || this.userToken !== userToken)\n ) {\n this.log(\"userId or userToken changed; reinitializing connections\");\n this.feeds.teardownInstances();\n this.teardown();\n reinitializeApi = true;\n }\n\n this.userId = userId;\n this.userToken = userToken;\n\n this.log(`Authenticated with userId ${userId}`);\n\n if (this.userToken && options?.onUserTokenExpiring instanceof Function) {\n this.maybeScheduleUserTokenExpiration(\n options.onUserTokenExpiring,\n options.timeBeforeExpirationInMs,\n );\n }\n\n // If we get the signal to reinitialize the api client, then we want to create a new client\n // and the reinitialize any existing feed real-time connections we have so everything continues\n // to work with the new credentials we've been given\n if (reinitializeApi) {\n this.apiClient = this.createApiClient();\n this.feeds.reinitializeInstances();\n this.log(\"Reinitialized real-time connections\");\n }\n\n return;\n }\n\n /*\n Returns whether or this Knock instance is authenticated. Passing `true` will check the presence\n of the userToken as well.\n */\n isAuthenticated(checkUserToken = false) {\n return checkUserToken ? !!(this.userId && this.userToken) : !!this.userId;\n }\n\n // Used to teardown any connected instances\n teardown() {\n if (this.tokenExpirationTimer) {\n clearTimeout(this.tokenExpirationTimer);\n }\n if (this.apiClient?.socket && this.apiClient.socket.isConnected()) {\n this.apiClient.socket.disconnect();\n }\n }\n\n log(message: string) {\n if (this.logLevel === \"debug\") {\n console.log(`[Knock] ${message}`);\n }\n }\n\n /**\n * Initiates an API client\n */\n private createApiClient() {\n return new ApiClient({\n apiKey: this.apiKey,\n host: this.host,\n userToken: this.userToken,\n });\n }\n\n private async maybeScheduleUserTokenExpiration(\n callbackFn: UserTokenExpiringCallback,\n timeBeforeExpirationInMs: number = 30_000,\n ) {\n if (!this.userToken) return;\n\n const decoded = jwtDecode(this.userToken);\n const expiresAtMs = (decoded.exp ?? 0) * 1000;\n const nowMs = Date.now();\n\n // Expiration is in the future\n if (expiresAtMs && expiresAtMs > nowMs) {\n // Check how long until the token should be regenerated\n // | ----------------- | ----------------------- |\n // ^ now ^ expiration offset ^ expires at\n const msInFuture = expiresAtMs - timeBeforeExpirationInMs - nowMs;\n\n this.tokenExpirationTimer = setTimeout(async () => {\n const newToken = await callbackFn(this.userToken as string, decoded);\n\n // Reauthenticate which will handle reinitializing sockets\n if (typeof newToken === \"string\") {\n this.authenticate(this.userId!, newToken, {\n onUserTokenExpiring: callbackFn,\n timeBeforeExpirationInMs: timeBeforeExpirationInMs,\n });\n }\n }, msInFuture);\n }\n }\n}\n\nexport default Knock;\n"],"names":["DEFAULT_HOST","Knock","apiKey","options","__publicField","FeedClient","ObjectClient","Preferences","SlackClient","MsTeamsClient","UserClient","MessageClient","userId","userToken","reinitializeApi","checkUserToken","_a","message","ApiClient","callbackFn","timeBeforeExpirationInMs","decoded","jwtDecode","expiresAtMs","nowMs","msInFuture","newToken"],"mappings":"2lBAiBMA,EAAe,wBAErB,MAAMC,CAAM,CAeV,YACWC,EACTC,EAAwB,GACxB,CAjBKC,EAAA,aACCA,EAAA,iBAA8B,MAC/BA,EAAA,eACAA,EAAA,kBACAA,EAAA,iBACCA,EAAA,4BAA6D,MAC5DA,EAAA,aAAQ,IAAIC,UAAW,IAAI,GAC3BD,EAAA,eAAU,IAAIE,UAAa,IAAI,GAC/BF,EAAA,mBAAc,IAAIG,UAAY,IAAI,GAClCH,EAAA,aAAQ,IAAII,UAAY,IAAI,GAC5BJ,EAAA,eAAU,IAAIK,UAAc,IAAI,GAChCL,EAAA,YAAO,IAAIM,UAAW,IAAI,GAC1BN,EAAA,gBAAW,IAAIO,UAAc,IAAI,GAYxC,GATS,KAAA,OAAAT,EAGJ,KAAA,KAAOC,EAAQ,MAAQH,EAC5B,KAAK,SAAWG,EAAQ,SAExB,KAAK,IAAI,4BAA4B,EAGjC,KAAK,QAAU,KAAK,OAAO,WAAW,KAAK,EAC7C,MAAM,IAAI,MACR,qFAAA,CAGN,CAEA,QAAS,CAEH,OAAC,KAAK,YACH,KAAA,UAAY,KAAK,mBAGjB,KAAK,SACd,CAMA,aACES,EACAC,EACAV,EACA,CACA,IAAIW,EAAkB,GACG,KAAK,YAM3B,KAAK,SAAWF,GAAU,KAAK,YAAcC,KAE9C,KAAK,IAAI,yDAAyD,EAClE,KAAK,MAAM,oBACX,KAAK,SAAS,EACIC,EAAA,IAGpB,KAAK,OAASF,EACd,KAAK,UAAYC,EAEZ,KAAA,IAAI,6BAA6BD,CAAM,EAAE,EAE1C,KAAK,YAAaT,GAAA,YAAAA,EAAS,+BAA+B,UACvD,KAAA,iCACHA,EAAQ,oBACRA,EAAQ,wBAAA,EAORW,IACG,KAAA,UAAY,KAAK,kBACtB,KAAK,MAAM,wBACX,KAAK,IAAI,qCAAqC,EAIlD,CAMA,gBAAgBC,EAAiB,GAAO,CAC/B,OAAAA,EAAiB,CAAC,EAAE,KAAK,QAAU,KAAK,WAAa,CAAC,CAAC,KAAK,MACrE,CAGA,UAAW,OACL,KAAK,sBACP,aAAa,KAAK,oBAAoB,GAEpCC,EAAA,KAAK,YAAL,MAAAA,EAAgB,QAAU,KAAK,UAAU,OAAO,eAC7C,KAAA,UAAU,OAAO,YAE1B,CAEA,IAAIC,EAAiB,CACf,KAAK,WAAa,SACZ,QAAA,IAAI,WAAWA,CAAO,EAAE,CAEpC,CAKQ,iBAAkB,CACxB,OAAO,IAAIC,EAAAA,QAAU,CACnB,OAAQ,KAAK,OACb,KAAM,KAAK,KACX,UAAW,KAAK,SAAA,CACjB,CACH,CAEA,MAAc,iCACZC,EACAC,EAAmC,IACnC,CACI,GAAA,CAAC,KAAK,UAAW,OAEf,MAAAC,EAAUC,EAAAA,UAAU,KAAK,SAAS,EAClCC,GAAeF,EAAQ,KAAO,GAAK,IACnCG,EAAQ,KAAK,MAGf,GAAAD,GAAeA,EAAcC,EAAO,CAIhC,MAAAC,EAAaF,EAAcH,EAA2BI,EAEvD,KAAA,qBAAuB,WAAW,SAAY,CACjD,MAAME,EAAW,MAAMP,EAAW,KAAK,UAAqBE,CAAO,EAG/D,OAAOK,GAAa,UACjB,KAAA,aAAa,KAAK,OAASA,EAAU,CACxC,oBAAqBP,EACrB,yBAAAC,CAAA,CACD,GAEFK,CAAU,CACf,CACF,CACF"}
1
+ {"version":3,"file":"knock.js","sources":["../../src/knock.ts"],"sourcesContent":["import { jwtDecode } from \"jwt-decode\";\n\nimport ApiClient from \"./api\";\nimport FeedClient from \"./clients/feed\";\nimport MessageClient from \"./clients/messages\";\nimport MsTeamsClient from \"./clients/ms-teams\";\nimport ObjectClient from \"./clients/objects\";\nimport Preferences from \"./clients/preferences\";\nimport SlackClient from \"./clients/slack\";\nimport UserClient from \"./clients/users\";\nimport {\n AuthenticateOptions,\n KnockOptions,\n LogLevel,\n UserTokenExpiringCallback,\n} from \"./interfaces\";\n\nconst DEFAULT_HOST = \"https://api.knock.app\";\n\nclass Knock {\n public host: string;\n private apiClient: ApiClient | null = null;\n public userId: string | undefined | null;\n public userToken?: string;\n public logLevel?: LogLevel;\n private tokenExpirationTimer: ReturnType<typeof setTimeout> | null = null;\n readonly feeds = new FeedClient(this);\n readonly objects = new ObjectClient(this);\n readonly preferences = new Preferences(this);\n readonly slack = new SlackClient(this);\n readonly msTeams = new MsTeamsClient(this);\n readonly user = new UserClient(this);\n readonly messages = new MessageClient(this);\n\n constructor(\n readonly apiKey: string,\n options: KnockOptions = {},\n ) {\n this.host = options.host || DEFAULT_HOST;\n this.logLevel = options.logLevel;\n\n this.log(\"Initialized Knock instance\");\n\n // Fail loudly if we're using the wrong API key\n if (this.apiKey && this.apiKey.startsWith(\"sk_\")) {\n throw new Error(\n \"[Knock] You are using your secret API key on the client. Please use the public key.\",\n );\n }\n }\n\n client() {\n // Initiate a new API client if we don't have one yet\n if (!this.apiClient) {\n this.apiClient = this.createApiClient();\n }\n\n return this.apiClient;\n }\n\n /*\n Authenticates the current user. In non-sandbox environments\n the userToken must be specified.\n */\n authenticate(\n userId: Knock[\"userId\"],\n userToken?: Knock[\"userToken\"],\n options?: AuthenticateOptions,\n ) {\n let reinitializeApi = false;\n const currentApiClient = this.apiClient;\n\n // If we've previously been initialized and the values have now changed, then we\n // need to reinitialize any stateful connections we have\n if (\n currentApiClient &&\n (this.userId !== userId || this.userToken !== userToken)\n ) {\n this.log(\"userId or userToken changed; reinitializing connections\");\n this.feeds.teardownInstances();\n this.teardown();\n reinitializeApi = true;\n }\n\n this.userId = userId;\n this.userToken = userToken;\n\n this.log(`Authenticated with userId ${userId}`);\n\n if (this.userToken && options?.onUserTokenExpiring instanceof Function) {\n this.maybeScheduleUserTokenExpiration(\n options.onUserTokenExpiring,\n options.timeBeforeExpirationInMs,\n );\n }\n\n // If we get the signal to reinitialize the api client, then we want to create a new client\n // and the reinitialize any existing feed real-time connections we have so everything continues\n // to work with the new credentials we've been given\n if (reinitializeApi) {\n this.apiClient = this.createApiClient();\n this.feeds.reinitializeInstances();\n this.log(\"Reinitialized real-time connections\");\n }\n\n return;\n }\n\n failIfNotAuthenticated() {\n if (!this.isAuthenticated()) {\n throw new Error(\"Not authenticated. Please call `authenticate` first.\");\n }\n }\n\n /*\n Returns whether or this Knock instance is authenticated. Passing `true` will check the presence\n of the userToken as well.\n */\n isAuthenticated(checkUserToken = false) {\n return checkUserToken ? !!(this.userId && this.userToken) : !!this.userId;\n }\n\n // Used to teardown any connected instances\n teardown() {\n if (this.tokenExpirationTimer) {\n clearTimeout(this.tokenExpirationTimer);\n }\n if (this.apiClient?.socket && this.apiClient.socket.isConnected()) {\n this.apiClient.socket.disconnect();\n }\n }\n\n log(message: string) {\n if (this.logLevel === \"debug\") {\n console.log(`[Knock] ${message}`);\n }\n }\n\n /**\n * Initiates an API client\n */\n private createApiClient() {\n return new ApiClient({\n apiKey: this.apiKey,\n host: this.host,\n userToken: this.userToken,\n });\n }\n\n private async maybeScheduleUserTokenExpiration(\n callbackFn: UserTokenExpiringCallback,\n timeBeforeExpirationInMs: number = 30_000,\n ) {\n if (!this.userToken) return;\n\n const decoded = jwtDecode(this.userToken);\n const expiresAtMs = (decoded.exp ?? 0) * 1000;\n const nowMs = Date.now();\n\n // Expiration is in the future\n if (expiresAtMs && expiresAtMs > nowMs) {\n // Check how long until the token should be regenerated\n // | ----------------- | ----------------------- |\n // ^ now ^ expiration offset ^ expires at\n const msInFuture = expiresAtMs - timeBeforeExpirationInMs - nowMs;\n\n this.tokenExpirationTimer = setTimeout(async () => {\n const newToken = await callbackFn(this.userToken as string, decoded);\n\n // Reauthenticate which will handle reinitializing sockets\n if (typeof newToken === \"string\") {\n this.authenticate(this.userId!, newToken, {\n onUserTokenExpiring: callbackFn,\n timeBeforeExpirationInMs: timeBeforeExpirationInMs,\n });\n }\n }, msInFuture);\n }\n }\n}\n\nexport default Knock;\n"],"names":["DEFAULT_HOST","Knock","apiKey","options","__publicField","FeedClient","ObjectClient","Preferences","SlackClient","MsTeamsClient","UserClient","MessageClient","userId","userToken","reinitializeApi","checkUserToken","_a","message","ApiClient","callbackFn","timeBeforeExpirationInMs","decoded","jwtDecode","expiresAtMs","nowMs","msInFuture","newToken"],"mappings":"2lBAiBMA,EAAe,wBAErB,MAAMC,CAAM,CAeV,YACWC,EACTC,EAAwB,GACxB,CAjBKC,EAAA,aACCA,EAAA,iBAA8B,MAC/BA,EAAA,eACAA,EAAA,kBACAA,EAAA,iBACCA,EAAA,4BAA6D,MAC5DA,EAAA,aAAQ,IAAIC,UAAW,IAAI,GAC3BD,EAAA,eAAU,IAAIE,UAAa,IAAI,GAC/BF,EAAA,mBAAc,IAAIG,UAAY,IAAI,GAClCH,EAAA,aAAQ,IAAII,UAAY,IAAI,GAC5BJ,EAAA,eAAU,IAAIK,UAAc,IAAI,GAChCL,EAAA,YAAO,IAAIM,UAAW,IAAI,GAC1BN,EAAA,gBAAW,IAAIO,UAAc,IAAI,GAYxC,GATS,KAAA,OAAAT,EAGJ,KAAA,KAAOC,EAAQ,MAAQH,EAC5B,KAAK,SAAWG,EAAQ,SAExB,KAAK,IAAI,4BAA4B,EAGjC,KAAK,QAAU,KAAK,OAAO,WAAW,KAAK,EAC7C,MAAM,IAAI,MACR,qFAAA,CAGN,CAEA,QAAS,CAEH,OAAC,KAAK,YACH,KAAA,UAAY,KAAK,mBAGjB,KAAK,SACd,CAMA,aACES,EACAC,EACAV,EACA,CACA,IAAIW,EAAkB,GACG,KAAK,YAM3B,KAAK,SAAWF,GAAU,KAAK,YAAcC,KAE9C,KAAK,IAAI,yDAAyD,EAClE,KAAK,MAAM,oBACX,KAAK,SAAS,EACIC,EAAA,IAGpB,KAAK,OAASF,EACd,KAAK,UAAYC,EAEZ,KAAA,IAAI,6BAA6BD,CAAM,EAAE,EAE1C,KAAK,YAAaT,GAAA,YAAAA,EAAS,+BAA+B,UACvD,KAAA,iCACHA,EAAQ,oBACRA,EAAQ,wBAAA,EAORW,IACG,KAAA,UAAY,KAAK,kBACtB,KAAK,MAAM,wBACX,KAAK,IAAI,qCAAqC,EAIlD,CAEA,wBAAyB,CACnB,GAAA,CAAC,KAAK,kBACF,MAAA,IAAI,MAAM,sDAAsD,CAE1E,CAMA,gBAAgBC,EAAiB,GAAO,CAC/B,OAAAA,EAAiB,CAAC,EAAE,KAAK,QAAU,KAAK,WAAa,CAAC,CAAC,KAAK,MACrE,CAGA,UAAW,OACL,KAAK,sBACP,aAAa,KAAK,oBAAoB,GAEpCC,EAAA,KAAK,YAAL,MAAAA,EAAgB,QAAU,KAAK,UAAU,OAAO,eAC7C,KAAA,UAAU,OAAO,YAE1B,CAEA,IAAIC,EAAiB,CACf,KAAK,WAAa,SACZ,QAAA,IAAI,WAAWA,CAAO,EAAE,CAEpC,CAKQ,iBAAkB,CACxB,OAAO,IAAIC,EAAAA,QAAU,CACnB,OAAQ,KAAK,OACb,KAAM,KAAK,KACX,UAAW,KAAK,SAAA,CACjB,CACH,CAEA,MAAc,iCACZC,EACAC,EAAmC,IACnC,CACI,GAAA,CAAC,KAAK,UAAW,OAEf,MAAAC,EAAUC,EAAAA,UAAU,KAAK,SAAS,EAClCC,GAAeF,EAAQ,KAAO,GAAK,IACnCG,EAAQ,KAAK,MAGf,GAAAD,GAAeA,EAAcC,EAAO,CAIhC,MAAAC,EAAaF,EAAcH,EAA2BI,EAEvD,KAAA,qBAAuB,WAAW,SAAY,CACjD,MAAME,EAAW,MAAMP,EAAW,KAAK,UAAqBE,CAAO,EAG/D,OAAOK,GAAa,UACjB,KAAA,aAAa,KAAK,OAASA,EAAU,CACxC,oBAAqBP,EACrB,yBAAAC,CAAA,CACD,GAEFK,CAAU,CACf,CACF,CACF"}
@@ -1,11 +1,11 @@
1
- var d = Object.defineProperty;
2
- var h = (r, e, t) => e in r ? d(r, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[e] = t;
3
- var u = (r, e, t) => h(r, typeof e != "symbol" ? e + "" : e, t);
1
+ var o = Object.defineProperty;
2
+ var d = (r, e, t) => e in r ? o(r, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[e] = t;
3
+ var u = (r, e, t) => d(r, typeof e != "symbol" ? e + "" : e, t);
4
4
  const a = "default";
5
- function o(r) {
5
+ function h(r) {
6
6
  return typeof r == "object" ? r : { subscribed: r };
7
7
  }
8
- class p {
8
+ class f {
9
9
  constructor(e) {
10
10
  u(this, "instance");
11
11
  this.instance = e;
@@ -14,6 +14,7 @@ class p {
14
14
  * @deprecated Use `user.getAllPreferences()` instead
15
15
  */
16
16
  async getAll() {
17
+ this.instance.failIfNotAuthenticated();
17
18
  const e = await this.instance.client().makeRequest({
18
19
  method: "GET",
19
20
  url: `/v1/users/${this.instance.userId}/preferences`
@@ -24,6 +25,7 @@ class p {
24
25
  * @deprecated Use `user.getPreferences()` instead
25
26
  */
26
27
  async get(e = {}) {
28
+ this.instance.failIfNotAuthenticated();
27
29
  const t = e.preferenceSet || a, s = await this.instance.client().makeRequest({
28
30
  method: "GET",
29
31
  url: `/v1/users/${this.instance.userId}/preferences/${t}`
@@ -34,6 +36,7 @@ class p {
34
36
  * @deprecated Use `user.setPreferences(preferenceSet, options)` instead
35
37
  */
36
38
  async set(e, t = {}) {
39
+ this.instance.failIfNotAuthenticated();
37
40
  const s = t.preferenceSet || a, n = await this.instance.client().makeRequest({
38
41
  method: "PUT",
39
42
  url: `/v1/users/${this.instance.userId}/preferences/${s}`,
@@ -45,6 +48,7 @@ class p {
45
48
  * @deprecated Use `user.setPreferences(preferenceSet, options)` instead
46
49
  */
47
50
  async setChannelTypes(e, t = {}) {
51
+ this.instance.failIfNotAuthenticated();
48
52
  const s = t.preferenceSet || a, n = await this.instance.client().makeRequest({
49
53
  method: "PUT",
50
54
  url: `/v1/users/${this.instance.userId}/preferences/${s}/channel_types`,
@@ -56,6 +60,7 @@ class p {
56
60
  * @deprecated Use `user.setPreferences(preferenceSet, options)` instead
57
61
  */
58
62
  async setChannelType(e, t, s = {}) {
63
+ this.instance.failIfNotAuthenticated();
59
64
  const n = s.preferenceSet || a, c = await this.instance.client().makeRequest({
60
65
  method: "PUT",
61
66
  url: `/v1/users/${this.instance.userId}/preferences/${n}/channel_types/${e}`,
@@ -67,6 +72,7 @@ class p {
67
72
  * @deprecated Use `user.setPreferences(preferenceSet, options)` instead
68
73
  */
69
74
  async setWorkflows(e, t = {}) {
75
+ this.instance.failIfNotAuthenticated();
70
76
  const s = t.preferenceSet || a, n = await this.instance.client().makeRequest({
71
77
  method: "PUT",
72
78
  url: `/v1/users/${this.instance.userId}/preferences/${s}/workflows`,
@@ -78,7 +84,8 @@ class p {
78
84
  * @deprecated Use `user.setPreferences(preferenceSet, options)` instead
79
85
  */
80
86
  async setWorkflow(e, t, s = {}) {
81
- const n = s.preferenceSet || a, c = o(t), i = await this.instance.client().makeRequest({
87
+ this.instance.failIfNotAuthenticated();
88
+ const n = s.preferenceSet || a, c = h(t), i = await this.instance.client().makeRequest({
82
89
  method: "PUT",
83
90
  url: `/v1/users/${this.instance.userId}/preferences/${n}/workflows/${e}`,
84
91
  data: c
@@ -89,6 +96,7 @@ class p {
89
96
  * @deprecated Use `user.setPreferences(preferenceSet, options)` instead
90
97
  */
91
98
  async setCategories(e, t = {}) {
99
+ this.instance.failIfNotAuthenticated();
92
100
  const s = t.preferenceSet || a, n = await this.instance.client().makeRequest({
93
101
  method: "PUT",
94
102
  url: `/v1/users/${this.instance.userId}/preferences/${s}/categories`,
@@ -100,7 +108,8 @@ class p {
100
108
  * @deprecated Use `user.setPreferences(preferenceSet, options)` instead
101
109
  */
102
110
  async setCategory(e, t, s = {}) {
103
- const n = s.preferenceSet || a, c = o(t), i = await this.instance.client().makeRequest({
111
+ this.instance.failIfNotAuthenticated();
112
+ const n = s.preferenceSet || a, c = h(t), i = await this.instance.client().makeRequest({
104
113
  method: "PUT",
105
114
  url: `/v1/users/${this.instance.userId}/preferences/${n}/categories/${e}`,
106
115
  data: c
@@ -114,6 +123,6 @@ class p {
114
123
  }
115
124
  }
116
125
  export {
117
- p as default
126
+ f as default
118
127
  };
119
128
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../src/clients/preferences/index.ts"],"sourcesContent":["import { ChannelType } from \"@knocklabs/types\";\n\nimport { ApiResponse } from \"../../api\";\nimport Knock from \"../../knock\";\n\nimport {\n ChannelTypePreferences,\n PreferenceOptions,\n PreferenceSet,\n SetPreferencesProperties,\n WorkflowPreferenceSetting,\n WorkflowPreferences,\n} from \"./interfaces\";\n\nconst DEFAULT_PREFERENCE_SET_ID = \"default\";\n\nfunction buildUpdateParam(param: WorkflowPreferenceSetting) {\n if (typeof param === \"object\") {\n return param;\n }\n\n return { subscribed: param };\n}\n\nclass Preferences {\n private instance: Knock;\n\n constructor(instance: Knock) {\n this.instance = instance;\n }\n\n /**\n * @deprecated Use `user.getAllPreferences()` instead\n */\n async getAll() {\n const result = await this.instance.client().makeRequest({\n method: \"GET\",\n url: `/v1/users/${this.instance.userId}/preferences`,\n });\n\n return this.handleResponse(result);\n }\n\n /**\n * @deprecated Use `user.getPreferences()` instead\n */\n async get(options: PreferenceOptions = {}) {\n const preferenceSetId = options.preferenceSet || DEFAULT_PREFERENCE_SET_ID;\n\n const result = await this.instance.client().makeRequest({\n method: \"GET\",\n url: `/v1/users/${this.instance.userId}/preferences/${preferenceSetId}`,\n });\n\n return this.handleResponse(result);\n }\n\n /**\n * @deprecated Use `user.setPreferences(preferenceSet, options)` instead\n */\n async set(\n preferenceSet: SetPreferencesProperties,\n options: PreferenceOptions = {},\n ) {\n const preferenceSetId = options.preferenceSet || DEFAULT_PREFERENCE_SET_ID;\n\n const result = await this.instance.client().makeRequest({\n method: \"PUT\",\n url: `/v1/users/${this.instance.userId}/preferences/${preferenceSetId}`,\n data: preferenceSet,\n });\n\n return this.handleResponse(result);\n }\n\n /**\n * @deprecated Use `user.setPreferences(preferenceSet, options)` instead\n */\n async setChannelTypes(\n channelTypePreferences: ChannelTypePreferences,\n options: PreferenceOptions = {},\n ) {\n const preferenceSetId = options.preferenceSet || DEFAULT_PREFERENCE_SET_ID;\n\n const result = await this.instance.client().makeRequest({\n method: \"PUT\",\n url: `/v1/users/${this.instance.userId}/preferences/${preferenceSetId}/channel_types`,\n data: channelTypePreferences,\n });\n\n return this.handleResponse(result);\n }\n\n /**\n * @deprecated Use `user.setPreferences(preferenceSet, options)` instead\n */\n async setChannelType(\n channelType: ChannelType,\n setting: boolean,\n options: PreferenceOptions = {},\n ) {\n const preferenceSetId = options.preferenceSet || DEFAULT_PREFERENCE_SET_ID;\n\n const result = await this.instance.client().makeRequest({\n method: \"PUT\",\n url: `/v1/users/${this.instance.userId}/preferences/${preferenceSetId}/channel_types/${channelType}`,\n data: { subscribed: setting },\n });\n\n return this.handleResponse(result);\n }\n\n /**\n * @deprecated Use `user.setPreferences(preferenceSet, options)` instead\n */\n async setWorkflows(\n workflowPreferences: WorkflowPreferences,\n options: PreferenceOptions = {},\n ) {\n const preferenceSetId = options.preferenceSet || DEFAULT_PREFERENCE_SET_ID;\n\n const result = await this.instance.client().makeRequest({\n method: \"PUT\",\n url: `/v1/users/${this.instance.userId}/preferences/${preferenceSetId}/workflows`,\n data: workflowPreferences,\n });\n\n return this.handleResponse(result);\n }\n\n /**\n * @deprecated Use `user.setPreferences(preferenceSet, options)` instead\n */\n async setWorkflow(\n workflowKey: string,\n setting: WorkflowPreferenceSetting,\n options: PreferenceOptions = {},\n ) {\n const preferenceSetId = options.preferenceSet || DEFAULT_PREFERENCE_SET_ID;\n const params = buildUpdateParam(setting);\n\n const result = await this.instance.client().makeRequest({\n method: \"PUT\",\n url: `/v1/users/${this.instance.userId}/preferences/${preferenceSetId}/workflows/${workflowKey}`,\n data: params,\n });\n\n return this.handleResponse(result);\n }\n\n /**\n * @deprecated Use `user.setPreferences(preferenceSet, options)` instead\n */\n async setCategories(\n categoryPreferences: WorkflowPreferences,\n options: PreferenceOptions = {},\n ) {\n const preferenceSetId = options.preferenceSet || DEFAULT_PREFERENCE_SET_ID;\n\n const result = await this.instance.client().makeRequest({\n method: \"PUT\",\n url: `/v1/users/${this.instance.userId}/preferences/${preferenceSetId}/categories`,\n data: categoryPreferences,\n });\n\n return this.handleResponse(result);\n }\n\n /**\n * @deprecated Use `user.setPreferences(preferenceSet, options)` instead\n */\n async setCategory(\n categoryKey: string,\n setting: WorkflowPreferenceSetting,\n options: PreferenceOptions = {},\n ) {\n const preferenceSetId = options.preferenceSet || DEFAULT_PREFERENCE_SET_ID;\n const params = buildUpdateParam(setting);\n\n const result = await this.instance.client().makeRequest({\n method: \"PUT\",\n url: `/v1/users/${this.instance.userId}/preferences/${preferenceSetId}/categories/${categoryKey}`,\n data: params,\n });\n\n return this.handleResponse(result);\n }\n\n private handleResponse(response: ApiResponse) {\n if (response.statusCode === \"error\") {\n throw new Error(response.error || response.body);\n }\n\n return response.body as PreferenceSet;\n }\n}\n\nexport default Preferences;\n"],"names":["DEFAULT_PREFERENCE_SET_ID","buildUpdateParam","param","Preferences","instance","__publicField","result","options","preferenceSetId","preferenceSet","channelTypePreferences","channelType","setting","workflowPreferences","workflowKey","params","categoryPreferences","categoryKey","response"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../src/clients/preferences/index.ts"],"sourcesContent":["import { ChannelType } from \"@knocklabs/types\";\n\nimport { ApiResponse } from \"../../api\";\nimport Knock from \"../../knock\";\n\nimport {\n ChannelTypePreferences,\n PreferenceOptions,\n PreferenceSet,\n SetPreferencesProperties,\n WorkflowPreferenceSetting,\n WorkflowPreferences,\n} from \"./interfaces\";\n\nconst DEFAULT_PREFERENCE_SET_ID = \"default\";\n\nfunction buildUpdateParam(param: WorkflowPreferenceSetting) {\n if (typeof param === \"object\") {\n return param;\n }\n\n return { subscribed: param };\n}\n\nclass Preferences {\n private instance: Knock;\n\n constructor(instance: Knock) {\n this.instance = instance;\n }\n\n /**\n * @deprecated Use `user.getAllPreferences()` instead\n */\n async getAll() {\n this.instance.failIfNotAuthenticated();\n\n const result = await this.instance.client().makeRequest({\n method: \"GET\",\n url: `/v1/users/${this.instance.userId}/preferences`,\n });\n\n return this.handleResponse(result);\n }\n\n /**\n * @deprecated Use `user.getPreferences()` instead\n */\n async get(options: PreferenceOptions = {}) {\n this.instance.failIfNotAuthenticated();\n\n const preferenceSetId = options.preferenceSet || DEFAULT_PREFERENCE_SET_ID;\n\n const result = await this.instance.client().makeRequest({\n method: \"GET\",\n url: `/v1/users/${this.instance.userId}/preferences/${preferenceSetId}`,\n });\n\n return this.handleResponse(result);\n }\n\n /**\n * @deprecated Use `user.setPreferences(preferenceSet, options)` instead\n */\n async set(\n preferenceSet: SetPreferencesProperties,\n options: PreferenceOptions = {},\n ) {\n this.instance.failIfNotAuthenticated();\n\n const preferenceSetId = options.preferenceSet || DEFAULT_PREFERENCE_SET_ID;\n\n const result = await this.instance.client().makeRequest({\n method: \"PUT\",\n url: `/v1/users/${this.instance.userId}/preferences/${preferenceSetId}`,\n data: preferenceSet,\n });\n\n return this.handleResponse(result);\n }\n\n /**\n * @deprecated Use `user.setPreferences(preferenceSet, options)` instead\n */\n async setChannelTypes(\n channelTypePreferences: ChannelTypePreferences,\n options: PreferenceOptions = {},\n ) {\n this.instance.failIfNotAuthenticated();\n const preferenceSetId = options.preferenceSet || DEFAULT_PREFERENCE_SET_ID;\n\n const result = await this.instance.client().makeRequest({\n method: \"PUT\",\n url: `/v1/users/${this.instance.userId}/preferences/${preferenceSetId}/channel_types`,\n data: channelTypePreferences,\n });\n\n return this.handleResponse(result);\n }\n\n /**\n * @deprecated Use `user.setPreferences(preferenceSet, options)` instead\n */\n async setChannelType(\n channelType: ChannelType,\n setting: boolean,\n options: PreferenceOptions = {},\n ) {\n this.instance.failIfNotAuthenticated();\n const preferenceSetId = options.preferenceSet || DEFAULT_PREFERENCE_SET_ID;\n\n const result = await this.instance.client().makeRequest({\n method: \"PUT\",\n url: `/v1/users/${this.instance.userId}/preferences/${preferenceSetId}/channel_types/${channelType}`,\n data: { subscribed: setting },\n });\n\n return this.handleResponse(result);\n }\n\n /**\n * @deprecated Use `user.setPreferences(preferenceSet, options)` instead\n */\n async setWorkflows(\n workflowPreferences: WorkflowPreferences,\n options: PreferenceOptions = {},\n ) {\n this.instance.failIfNotAuthenticated();\n const preferenceSetId = options.preferenceSet || DEFAULT_PREFERENCE_SET_ID;\n\n const result = await this.instance.client().makeRequest({\n method: \"PUT\",\n url: `/v1/users/${this.instance.userId}/preferences/${preferenceSetId}/workflows`,\n data: workflowPreferences,\n });\n\n return this.handleResponse(result);\n }\n\n /**\n * @deprecated Use `user.setPreferences(preferenceSet, options)` instead\n */\n async setWorkflow(\n workflowKey: string,\n setting: WorkflowPreferenceSetting,\n options: PreferenceOptions = {},\n ) {\n this.instance.failIfNotAuthenticated();\n\n const preferenceSetId = options.preferenceSet || DEFAULT_PREFERENCE_SET_ID;\n const params = buildUpdateParam(setting);\n\n const result = await this.instance.client().makeRequest({\n method: \"PUT\",\n url: `/v1/users/${this.instance.userId}/preferences/${preferenceSetId}/workflows/${workflowKey}`,\n data: params,\n });\n\n return this.handleResponse(result);\n }\n\n /**\n * @deprecated Use `user.setPreferences(preferenceSet, options)` instead\n */\n async setCategories(\n categoryPreferences: WorkflowPreferences,\n options: PreferenceOptions = {},\n ) {\n this.instance.failIfNotAuthenticated();\n\n const preferenceSetId = options.preferenceSet || DEFAULT_PREFERENCE_SET_ID;\n\n const result = await this.instance.client().makeRequest({\n method: \"PUT\",\n url: `/v1/users/${this.instance.userId}/preferences/${preferenceSetId}/categories`,\n data: categoryPreferences,\n });\n\n return this.handleResponse(result);\n }\n\n /**\n * @deprecated Use `user.setPreferences(preferenceSet, options)` instead\n */\n async setCategory(\n categoryKey: string,\n setting: WorkflowPreferenceSetting,\n options: PreferenceOptions = {},\n ) {\n this.instance.failIfNotAuthenticated();\n\n const preferenceSetId = options.preferenceSet || DEFAULT_PREFERENCE_SET_ID;\n const params = buildUpdateParam(setting);\n\n const result = await this.instance.client().makeRequest({\n method: \"PUT\",\n url: `/v1/users/${this.instance.userId}/preferences/${preferenceSetId}/categories/${categoryKey}`,\n data: params,\n });\n\n return this.handleResponse(result);\n }\n\n private handleResponse(response: ApiResponse) {\n if (response.statusCode === \"error\") {\n throw new Error(response.error || response.body);\n }\n\n return response.body as PreferenceSet;\n }\n}\n\nexport default Preferences;\n"],"names":["DEFAULT_PREFERENCE_SET_ID","buildUpdateParam","param","Preferences","instance","__publicField","result","options","preferenceSetId","preferenceSet","channelTypePreferences","channelType","setting","workflowPreferences","workflowKey","params","categoryPreferences","categoryKey","response"],"mappings":"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"}
@@ -1,13 +1,14 @@
1
- var i = Object.defineProperty;
2
- var u = (s, e, t) => e in s ? i(s, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : s[e] = t;
3
- var a = (s, e, t) => u(s, typeof e != "symbol" ? e + "" : e, t);
4
- const r = "default";
1
+ var c = Object.defineProperty;
2
+ var h = (s, e, t) => e in s ? c(s, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : s[e] = t;
3
+ var a = (s, e, t) => h(s, typeof e != "symbol" ? e + "" : e, t);
4
+ const i = "default";
5
5
  class l {
6
6
  constructor(e) {
7
7
  a(this, "instance");
8
8
  this.instance = e;
9
9
  }
10
10
  async get() {
11
+ this.instance.failIfNotAuthenticated();
11
12
  const e = await this.instance.client().makeRequest({
12
13
  method: "GET",
13
14
  url: `/v1/users/${this.instance.userId}`
@@ -15,6 +16,7 @@ class l {
15
16
  return this.handleResponse(e);
16
17
  }
17
18
  async identify(e = {}) {
19
+ this.instance.failIfNotAuthenticated();
18
20
  const t = await this.instance.client().makeRequest({
19
21
  method: "PUT",
20
22
  url: `/v1/users/${this.instance.userId}`,
@@ -23,6 +25,7 @@ class l {
23
25
  return this.handleResponse(t);
24
26
  }
25
27
  async getAllPreferences() {
28
+ this.instance.failIfNotAuthenticated();
26
29
  const e = await this.instance.client().makeRequest({
27
30
  method: "GET",
28
31
  url: `/v1/users/${this.instance.userId}/preferences`
@@ -30,7 +33,8 @@ class l {
30
33
  return this.handleResponse(e);
31
34
  }
32
35
  async getPreferences(e = {}) {
33
- const t = e.preferenceSet || r, n = await this.instance.client().makeRequest({
36
+ this.instance.failIfNotAuthenticated();
37
+ const t = e.preferenceSet || i, n = await this.instance.client().makeRequest({
34
38
  method: "GET",
35
39
  url: `/v1/users/${this.instance.userId}/preferences/${t}`,
36
40
  params: { tenant: e.tenant }
@@ -38,14 +42,16 @@ class l {
38
42
  return this.handleResponse(n);
39
43
  }
40
44
  async setPreferences(e, t = {}) {
41
- const n = t.preferenceSet || r, c = await this.instance.client().makeRequest({
45
+ this.instance.failIfNotAuthenticated();
46
+ const n = t.preferenceSet || i, r = await this.instance.client().makeRequest({
42
47
  method: "PUT",
43
48
  url: `/v1/users/${this.instance.userId}/preferences/${n}`,
44
49
  data: e
45
50
  });
46
- return this.handleResponse(c);
51
+ return this.handleResponse(r);
47
52
  }
48
53
  async getChannelData(e) {
54
+ this.instance.failIfNotAuthenticated();
49
55
  const t = await this.instance.client().makeRequest({
50
56
  method: "GET",
51
57
  url: `/v1/users/${this.instance.userId}/channel_data/${e.channelId}`
@@ -56,6 +62,7 @@ class l {
56
62
  channelId: e,
57
63
  channelData: t
58
64
  }) {
65
+ this.instance.failIfNotAuthenticated();
59
66
  const n = await this.instance.client().makeRequest({
60
67
  method: "PUT",
61
68
  url: `/v1/users/${this.instance.userId}/channel_data/${e}`,
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../src/clients/users/index.ts"],"sourcesContent":["import { GenericData } from \"@knocklabs/types\";\n\nimport { ApiResponse } from \"../../api\";\nimport { ChannelData, User } from \"../../interfaces\";\nimport Knock from \"../../knock\";\nimport {\n GetPreferencesOptions,\n PreferenceOptions,\n PreferenceSet,\n SetPreferencesProperties,\n} from \"../preferences/interfaces\";\n\nimport { GetChannelDataInput, SetChannelDataInput } from \"./interfaces\";\n\nconst DEFAULT_PREFERENCE_SET_ID = \"default\";\n\nclass UserClient {\n private instance: Knock;\n\n constructor(instance: Knock) {\n this.instance = instance;\n }\n\n async get() {\n const result = await this.instance.client().makeRequest({\n method: \"GET\",\n url: `/v1/users/${this.instance.userId}`,\n });\n\n return this.handleResponse<User>(result);\n }\n\n async identify(props: GenericData = {}) {\n const result = await this.instance.client().makeRequest({\n method: \"PUT\",\n url: `/v1/users/${this.instance.userId}`,\n params: props,\n });\n\n return this.handleResponse<User>(result);\n }\n\n async getAllPreferences() {\n const result = await this.instance.client().makeRequest({\n method: \"GET\",\n url: `/v1/users/${this.instance.userId}/preferences`,\n });\n\n return this.handleResponse<PreferenceSet[]>(result);\n }\n\n async getPreferences(\n options: GetPreferencesOptions = {},\n ): Promise<PreferenceSet> {\n const preferenceSetId = options.preferenceSet || DEFAULT_PREFERENCE_SET_ID;\n\n const result = await this.instance.client().makeRequest({\n method: \"GET\",\n url: `/v1/users/${this.instance.userId}/preferences/${preferenceSetId}`,\n params: { tenant: options.tenant },\n });\n\n return this.handleResponse<PreferenceSet>(result);\n }\n\n async setPreferences(\n preferenceSet: SetPreferencesProperties,\n options: PreferenceOptions = {},\n ): Promise<PreferenceSet> {\n const preferenceSetId = options.preferenceSet || DEFAULT_PREFERENCE_SET_ID;\n\n const result = await this.instance.client().makeRequest({\n method: \"PUT\",\n url: `/v1/users/${this.instance.userId}/preferences/${preferenceSetId}`,\n data: preferenceSet,\n });\n\n return this.handleResponse<PreferenceSet>(result);\n }\n\n async getChannelData<T = GenericData>(params: GetChannelDataInput) {\n const result = await this.instance.client().makeRequest({\n method: \"GET\",\n url: `/v1/users/${this.instance.userId}/channel_data/${params.channelId}`,\n });\n\n return this.handleResponse<ChannelData<T>>(result);\n }\n\n async setChannelData<T = GenericData>({\n channelId,\n channelData,\n }: SetChannelDataInput) {\n const result = await this.instance.client().makeRequest({\n method: \"PUT\",\n url: `/v1/users/${this.instance.userId}/channel_data/${channelId}`,\n data: { data: channelData },\n });\n\n return this.handleResponse<ChannelData<T>>(result);\n }\n\n private handleResponse<T>(response: ApiResponse) {\n if (response.statusCode === \"error\") {\n throw new Error(response.error || response.body);\n }\n\n return response.body as T;\n }\n}\n\nexport default UserClient;\n"],"names":["DEFAULT_PREFERENCE_SET_ID","UserClient","instance","__publicField","result","props","options","preferenceSetId","preferenceSet","params","channelId","channelData","response"],"mappings":";;;AAcA,MAAMA,IAA4B;AAElC,MAAMC,EAAW;AAAA,EAGf,YAAYC,GAAiB;AAFrB,IAAAC,EAAA;AAGN,SAAK,WAAWD;AAAA,EAClB;AAAA,EAEA,MAAM,MAAM;AACV,UAAME,IAAS,MAAM,KAAK,SAAS,OAAA,EAAS,YAAY;AAAA,MACtD,QAAQ;AAAA,MACR,KAAK,aAAa,KAAK,SAAS,MAAM;AAAA,IAAA,CACvC;AAEM,WAAA,KAAK,eAAqBA,CAAM;AAAA,EACzC;AAAA,EAEA,MAAM,SAASC,IAAqB,IAAI;AACtC,UAAMD,IAAS,MAAM,KAAK,SAAS,OAAA,EAAS,YAAY;AAAA,MACtD,QAAQ;AAAA,MACR,KAAK,aAAa,KAAK,SAAS,MAAM;AAAA,MACtC,QAAQC;AAAA,IAAA,CACT;AAEM,WAAA,KAAK,eAAqBD,CAAM;AAAA,EACzC;AAAA,EAEA,MAAM,oBAAoB;AACxB,UAAMA,IAAS,MAAM,KAAK,SAAS,OAAA,EAAS,YAAY;AAAA,MACtD,QAAQ;AAAA,MACR,KAAK,aAAa,KAAK,SAAS,MAAM;AAAA,IAAA,CACvC;AAEM,WAAA,KAAK,eAAgCA,CAAM;AAAA,EACpD;AAAA,EAEA,MAAM,eACJE,IAAiC,IACT;AAClB,UAAAC,IAAkBD,EAAQ,iBAAiBN,GAE3CI,IAAS,MAAM,KAAK,SAAS,OAAA,EAAS,YAAY;AAAA,MACtD,QAAQ;AAAA,MACR,KAAK,aAAa,KAAK,SAAS,MAAM,gBAAgBG,CAAe;AAAA,MACrE,QAAQ,EAAE,QAAQD,EAAQ,OAAO;AAAA,IAAA,CAClC;AAEM,WAAA,KAAK,eAA8BF,CAAM;AAAA,EAClD;AAAA,EAEA,MAAM,eACJI,GACAF,IAA6B,IACL;AAClB,UAAAC,IAAkBD,EAAQ,iBAAiBN,GAE3CI,IAAS,MAAM,KAAK,SAAS,OAAA,EAAS,YAAY;AAAA,MACtD,QAAQ;AAAA,MACR,KAAK,aAAa,KAAK,SAAS,MAAM,gBAAgBG,CAAe;AAAA,MACrE,MAAMC;AAAA,IAAA,CACP;AAEM,WAAA,KAAK,eAA8BJ,CAAM;AAAA,EAClD;AAAA,EAEA,MAAM,eAAgCK,GAA6B;AACjE,UAAML,IAAS,MAAM,KAAK,SAAS,OAAA,EAAS,YAAY;AAAA,MACtD,QAAQ;AAAA,MACR,KAAK,aAAa,KAAK,SAAS,MAAM,iBAAiBK,EAAO,SAAS;AAAA,IAAA,CACxE;AAEM,WAAA,KAAK,eAA+BL,CAAM;AAAA,EACnD;AAAA,EAEA,MAAM,eAAgC;AAAA,IACpC,WAAAM;AAAA,IACA,aAAAC;AAAA,EAAA,GACsB;AACtB,UAAMP,IAAS,MAAM,KAAK,SAAS,OAAA,EAAS,YAAY;AAAA,MACtD,QAAQ;AAAA,MACR,KAAK,aAAa,KAAK,SAAS,MAAM,iBAAiBM,CAAS;AAAA,MAChE,MAAM,EAAE,MAAMC,EAAY;AAAA,IAAA,CAC3B;AAEM,WAAA,KAAK,eAA+BP,CAAM;AAAA,EACnD;AAAA,EAEQ,eAAkBQ,GAAuB;AAC3C,QAAAA,EAAS,eAAe;AAC1B,YAAM,IAAI,MAAMA,EAAS,SAASA,EAAS,IAAI;AAGjD,WAAOA,EAAS;AAAA,EAClB;AACF;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../src/clients/users/index.ts"],"sourcesContent":["import { GenericData } from \"@knocklabs/types\";\n\nimport { ApiResponse } from \"../../api\";\nimport { ChannelData, User } from \"../../interfaces\";\nimport Knock from \"../../knock\";\nimport {\n GetPreferencesOptions,\n PreferenceOptions,\n PreferenceSet,\n SetPreferencesProperties,\n} from \"../preferences/interfaces\";\n\nimport { GetChannelDataInput, SetChannelDataInput } from \"./interfaces\";\n\nconst DEFAULT_PREFERENCE_SET_ID = \"default\";\n\nclass UserClient {\n private instance: Knock;\n\n constructor(instance: Knock) {\n this.instance = instance;\n }\n\n async get() {\n this.instance.failIfNotAuthenticated();\n\n const result = await this.instance.client().makeRequest({\n method: \"GET\",\n url: `/v1/users/${this.instance.userId}`,\n });\n\n return this.handleResponse<User>(result);\n }\n\n async identify(props: GenericData = {}) {\n this.instance.failIfNotAuthenticated();\n\n const result = await this.instance.client().makeRequest({\n method: \"PUT\",\n url: `/v1/users/${this.instance.userId}`,\n params: props,\n });\n\n return this.handleResponse<User>(result);\n }\n\n async getAllPreferences() {\n this.instance.failIfNotAuthenticated();\n\n const result = await this.instance.client().makeRequest({\n method: \"GET\",\n url: `/v1/users/${this.instance.userId}/preferences`,\n });\n\n return this.handleResponse<PreferenceSet[]>(result);\n }\n\n async getPreferences(\n options: GetPreferencesOptions = {},\n ): Promise<PreferenceSet> {\n this.instance.failIfNotAuthenticated();\n const preferenceSetId = options.preferenceSet || DEFAULT_PREFERENCE_SET_ID;\n\n const result = await this.instance.client().makeRequest({\n method: \"GET\",\n url: `/v1/users/${this.instance.userId}/preferences/${preferenceSetId}`,\n params: { tenant: options.tenant },\n });\n\n return this.handleResponse<PreferenceSet>(result);\n }\n\n async setPreferences(\n preferenceSet: SetPreferencesProperties,\n options: PreferenceOptions = {},\n ): Promise<PreferenceSet> {\n this.instance.failIfNotAuthenticated();\n const preferenceSetId = options.preferenceSet || DEFAULT_PREFERENCE_SET_ID;\n\n const result = await this.instance.client().makeRequest({\n method: \"PUT\",\n url: `/v1/users/${this.instance.userId}/preferences/${preferenceSetId}`,\n data: preferenceSet,\n });\n\n return this.handleResponse<PreferenceSet>(result);\n }\n\n async getChannelData<T = GenericData>(params: GetChannelDataInput) {\n this.instance.failIfNotAuthenticated();\n\n const result = await this.instance.client().makeRequest({\n method: \"GET\",\n url: `/v1/users/${this.instance.userId}/channel_data/${params.channelId}`,\n });\n\n return this.handleResponse<ChannelData<T>>(result);\n }\n\n async setChannelData<T = GenericData>({\n channelId,\n channelData,\n }: SetChannelDataInput) {\n this.instance.failIfNotAuthenticated();\n\n const result = await this.instance.client().makeRequest({\n method: \"PUT\",\n url: `/v1/users/${this.instance.userId}/channel_data/${channelId}`,\n data: { data: channelData },\n });\n\n return this.handleResponse<ChannelData<T>>(result);\n }\n\n private handleResponse<T>(response: ApiResponse) {\n if (response.statusCode === \"error\") {\n throw new Error(response.error || response.body);\n }\n\n return response.body as T;\n }\n}\n\nexport default UserClient;\n"],"names":["DEFAULT_PREFERENCE_SET_ID","UserClient","instance","__publicField","result","props","options","preferenceSetId","preferenceSet","params","channelId","channelData","response"],"mappings":";;;AAcA,MAAMA,IAA4B;AAElC,MAAMC,EAAW;AAAA,EAGf,YAAYC,GAAiB;AAFrB,IAAAC,EAAA;AAGN,SAAK,WAAWD;AAAA,EAClB;AAAA,EAEA,MAAM,MAAM;AACV,SAAK,SAAS;AAEd,UAAME,IAAS,MAAM,KAAK,SAAS,OAAA,EAAS,YAAY;AAAA,MACtD,QAAQ;AAAA,MACR,KAAK,aAAa,KAAK,SAAS,MAAM;AAAA,IAAA,CACvC;AAEM,WAAA,KAAK,eAAqBA,CAAM;AAAA,EACzC;AAAA,EAEA,MAAM,SAASC,IAAqB,IAAI;AACtC,SAAK,SAAS;AAEd,UAAMD,IAAS,MAAM,KAAK,SAAS,OAAA,EAAS,YAAY;AAAA,MACtD,QAAQ;AAAA,MACR,KAAK,aAAa,KAAK,SAAS,MAAM;AAAA,MACtC,QAAQC;AAAA,IAAA,CACT;AAEM,WAAA,KAAK,eAAqBD,CAAM;AAAA,EACzC;AAAA,EAEA,MAAM,oBAAoB;AACxB,SAAK,SAAS;AAEd,UAAMA,IAAS,MAAM,KAAK,SAAS,OAAA,EAAS,YAAY;AAAA,MACtD,QAAQ;AAAA,MACR,KAAK,aAAa,KAAK,SAAS,MAAM;AAAA,IAAA,CACvC;AAEM,WAAA,KAAK,eAAgCA,CAAM;AAAA,EACpD;AAAA,EAEA,MAAM,eACJE,IAAiC,IACT;AACxB,SAAK,SAAS;AACR,UAAAC,IAAkBD,EAAQ,iBAAiBN,GAE3CI,IAAS,MAAM,KAAK,SAAS,OAAA,EAAS,YAAY;AAAA,MACtD,QAAQ;AAAA,MACR,KAAK,aAAa,KAAK,SAAS,MAAM,gBAAgBG,CAAe;AAAA,MACrE,QAAQ,EAAE,QAAQD,EAAQ,OAAO;AAAA,IAAA,CAClC;AAEM,WAAA,KAAK,eAA8BF,CAAM;AAAA,EAClD;AAAA,EAEA,MAAM,eACJI,GACAF,IAA6B,IACL;AACxB,SAAK,SAAS;AACR,UAAAC,IAAkBD,EAAQ,iBAAiBN,GAE3CI,IAAS,MAAM,KAAK,SAAS,OAAA,EAAS,YAAY;AAAA,MACtD,QAAQ;AAAA,MACR,KAAK,aAAa,KAAK,SAAS,MAAM,gBAAgBG,CAAe;AAAA,MACrE,MAAMC;AAAA,IAAA,CACP;AAEM,WAAA,KAAK,eAA8BJ,CAAM;AAAA,EAClD;AAAA,EAEA,MAAM,eAAgCK,GAA6B;AACjE,SAAK,SAAS;AAEd,UAAML,IAAS,MAAM,KAAK,SAAS,OAAA,EAAS,YAAY;AAAA,MACtD,QAAQ;AAAA,MACR,KAAK,aAAa,KAAK,SAAS,MAAM,iBAAiBK,EAAO,SAAS;AAAA,IAAA,CACxE;AAEM,WAAA,KAAK,eAA+BL,CAAM;AAAA,EACnD;AAAA,EAEA,MAAM,eAAgC;AAAA,IACpC,WAAAM;AAAA,IACA,aAAAC;AAAA,EAAA,GACsB;AACtB,SAAK,SAAS;AAEd,UAAMP,IAAS,MAAM,KAAK,SAAS,OAAA,EAAS,YAAY;AAAA,MACtD,QAAQ;AAAA,MACR,KAAK,aAAa,KAAK,SAAS,MAAM,iBAAiBM,CAAS;AAAA,MAChE,MAAM,EAAE,MAAMC,EAAY;AAAA,IAAA,CAC3B;AAEM,WAAA,KAAK,eAA+BP,CAAM;AAAA,EACnD;AAAA,EAEQ,eAAkBQ,GAAuB;AAC3C,QAAAA,EAAS,eAAe;AAC1B,YAAM,IAAI,MAAMA,EAAS,SAASA,EAAS,IAAI;AAGjD,WAAOA,EAAS;AAAA,EAClB;AACF;"}
@@ -1,32 +1,32 @@
1
1
  var l = Object.defineProperty;
2
- var c = (n, e, t) => e in n ? l(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t;
3
- var i = (n, e, t) => c(n, typeof e != "symbol" ? e + "" : e, t);
2
+ var c = (n, e, i) => e in n ? l(n, e, { enumerable: !0, configurable: !0, writable: !0, value: i }) : n[e] = i;
3
+ var t = (n, e, i) => c(n, typeof e != "symbol" ? e + "" : e, i);
4
4
  import { jwtDecode as u } from "jwt-decode";
5
5
  import p from "./api.mjs";
6
- import k from "./clients/feed/index.mjs";
7
- import m from "./clients/messages/index.mjs";
8
- import f from "./clients/ms-teams/index.mjs";
6
+ import f from "./clients/feed/index.mjs";
7
+ import k from "./clients/messages/index.mjs";
8
+ import m from "./clients/ms-teams/index.mjs";
9
9
  import d from "./clients/objects/index.mjs";
10
10
  import T from "./clients/preferences/index.mjs";
11
11
  import C from "./clients/slack/index.mjs";
12
- import g from "./clients/users/index.mjs";
13
- const w = "https://api.knock.app";
12
+ import w from "./clients/users/index.mjs";
13
+ const g = "https://api.knock.app";
14
14
  class v {
15
- constructor(e, t = {}) {
16
- i(this, "host");
17
- i(this, "apiClient", null);
18
- i(this, "userId");
19
- i(this, "userToken");
20
- i(this, "logLevel");
21
- i(this, "tokenExpirationTimer", null);
22
- i(this, "feeds", new k(this));
23
- i(this, "objects", new d(this));
24
- i(this, "preferences", new T(this));
25
- i(this, "slack", new C(this));
26
- i(this, "msTeams", new f(this));
27
- i(this, "user", new g(this));
28
- i(this, "messages", new m(this));
29
- if (this.apiKey = e, this.host = t.host || w, this.logLevel = t.logLevel, this.log("Initialized Knock instance"), this.apiKey && this.apiKey.startsWith("sk_"))
15
+ constructor(e, i = {}) {
16
+ t(this, "host");
17
+ t(this, "apiClient", null);
18
+ t(this, "userId");
19
+ t(this, "userToken");
20
+ t(this, "logLevel");
21
+ t(this, "tokenExpirationTimer", null);
22
+ t(this, "feeds", new f(this));
23
+ t(this, "objects", new d(this));
24
+ t(this, "preferences", new T(this));
25
+ t(this, "slack", new C(this));
26
+ t(this, "msTeams", new m(this));
27
+ t(this, "user", new w(this));
28
+ t(this, "messages", new k(this));
29
+ if (this.apiKey = e, this.host = i.host || g, this.logLevel = i.logLevel, this.log("Initialized Knock instance"), this.apiKey && this.apiKey.startsWith("sk_"))
30
30
  throw new Error(
31
31
  "[Knock] You are using your secret API key on the client. Please use the public key."
32
32
  );
@@ -38,13 +38,17 @@ class v {
38
38
  Authenticates the current user. In non-sandbox environments
39
39
  the userToken must be specified.
40
40
  */
41
- authenticate(e, t, s) {
41
+ authenticate(e, i, s) {
42
42
  let r = !1;
43
- this.apiClient && (this.userId !== e || this.userToken !== t) && (this.log("userId or userToken changed; reinitializing connections"), this.feeds.teardownInstances(), this.teardown(), r = !0), this.userId = e, this.userToken = t, this.log(`Authenticated with userId ${e}`), this.userToken && (s == null ? void 0 : s.onUserTokenExpiring) instanceof Function && this.maybeScheduleUserTokenExpiration(
43
+ this.apiClient && (this.userId !== e || this.userToken !== i) && (this.log("userId or userToken changed; reinitializing connections"), this.feeds.teardownInstances(), this.teardown(), r = !0), this.userId = e, this.userToken = i, this.log(`Authenticated with userId ${e}`), this.userToken && (s == null ? void 0 : s.onUserTokenExpiring) instanceof Function && this.maybeScheduleUserTokenExpiration(
44
44
  s.onUserTokenExpiring,
45
45
  s.timeBeforeExpirationInMs
46
46
  ), r && (this.apiClient = this.createApiClient(), this.feeds.reinitializeInstances(), this.log("Reinitialized real-time connections"));
47
47
  }
48
+ failIfNotAuthenticated() {
49
+ if (!this.isAuthenticated())
50
+ throw new Error("Not authenticated. Please call `authenticate` first.");
51
+ }
48
52
  /*
49
53
  Returns whether or this Knock instance is authenticated. Passing `true` will check the presence
50
54
  of the userToken as well.
@@ -70,18 +74,18 @@ class v {
70
74
  userToken: this.userToken
71
75
  });
72
76
  }
73
- async maybeScheduleUserTokenExpiration(e, t = 3e4) {
77
+ async maybeScheduleUserTokenExpiration(e, i = 3e4) {
74
78
  if (!this.userToken) return;
75
79
  const s = u(this.userToken), r = (s.exp ?? 0) * 1e3, o = Date.now();
76
80
  if (r && r > o) {
77
- const a = r - t - o;
81
+ const h = r - i - o;
78
82
  this.tokenExpirationTimer = setTimeout(async () => {
79
- const h = await e(this.userToken, s);
80
- typeof h == "string" && this.authenticate(this.userId, h, {
83
+ const a = await e(this.userToken, s);
84
+ typeof a == "string" && this.authenticate(this.userId, a, {
81
85
  onUserTokenExpiring: e,
82
- timeBeforeExpirationInMs: t
86
+ timeBeforeExpirationInMs: i
83
87
  });
84
- }, a);
88
+ }, h);
85
89
  }
86
90
  }
87
91
  }
@@ -1 +1 @@
1
- {"version":3,"file":"knock.mjs","sources":["../../src/knock.ts"],"sourcesContent":["import { jwtDecode } from \"jwt-decode\";\n\nimport ApiClient from \"./api\";\nimport FeedClient from \"./clients/feed\";\nimport MessageClient from \"./clients/messages\";\nimport MsTeamsClient from \"./clients/ms-teams\";\nimport ObjectClient from \"./clients/objects\";\nimport Preferences from \"./clients/preferences\";\nimport SlackClient from \"./clients/slack\";\nimport UserClient from \"./clients/users\";\nimport {\n AuthenticateOptions,\n KnockOptions,\n LogLevel,\n UserTokenExpiringCallback,\n} from \"./interfaces\";\n\nconst DEFAULT_HOST = \"https://api.knock.app\";\n\nclass Knock {\n public host: string;\n private apiClient: ApiClient | null = null;\n public userId: string | undefined | null;\n public userToken?: string;\n public logLevel?: LogLevel;\n private tokenExpirationTimer: ReturnType<typeof setTimeout> | null = null;\n readonly feeds = new FeedClient(this);\n readonly objects = new ObjectClient(this);\n readonly preferences = new Preferences(this);\n readonly slack = new SlackClient(this);\n readonly msTeams = new MsTeamsClient(this);\n readonly user = new UserClient(this);\n readonly messages = new MessageClient(this);\n\n constructor(\n readonly apiKey: string,\n options: KnockOptions = {},\n ) {\n this.host = options.host || DEFAULT_HOST;\n this.logLevel = options.logLevel;\n\n this.log(\"Initialized Knock instance\");\n\n // Fail loudly if we're using the wrong API key\n if (this.apiKey && this.apiKey.startsWith(\"sk_\")) {\n throw new Error(\n \"[Knock] You are using your secret API key on the client. Please use the public key.\",\n );\n }\n }\n\n client() {\n // Initiate a new API client if we don't have one yet\n if (!this.apiClient) {\n this.apiClient = this.createApiClient();\n }\n\n return this.apiClient;\n }\n\n /*\n Authenticates the current user. In non-sandbox environments\n the userToken must be specified.\n */\n authenticate(\n userId: Knock[\"userId\"],\n userToken?: Knock[\"userToken\"],\n options?: AuthenticateOptions,\n ) {\n let reinitializeApi = false;\n const currentApiClient = this.apiClient;\n\n // If we've previously been initialized and the values have now changed, then we\n // need to reinitialize any stateful connections we have\n if (\n currentApiClient &&\n (this.userId !== userId || this.userToken !== userToken)\n ) {\n this.log(\"userId or userToken changed; reinitializing connections\");\n this.feeds.teardownInstances();\n this.teardown();\n reinitializeApi = true;\n }\n\n this.userId = userId;\n this.userToken = userToken;\n\n this.log(`Authenticated with userId ${userId}`);\n\n if (this.userToken && options?.onUserTokenExpiring instanceof Function) {\n this.maybeScheduleUserTokenExpiration(\n options.onUserTokenExpiring,\n options.timeBeforeExpirationInMs,\n );\n }\n\n // If we get the signal to reinitialize the api client, then we want to create a new client\n // and the reinitialize any existing feed real-time connections we have so everything continues\n // to work with the new credentials we've been given\n if (reinitializeApi) {\n this.apiClient = this.createApiClient();\n this.feeds.reinitializeInstances();\n this.log(\"Reinitialized real-time connections\");\n }\n\n return;\n }\n\n /*\n Returns whether or this Knock instance is authenticated. Passing `true` will check the presence\n of the userToken as well.\n */\n isAuthenticated(checkUserToken = false) {\n return checkUserToken ? !!(this.userId && this.userToken) : !!this.userId;\n }\n\n // Used to teardown any connected instances\n teardown() {\n if (this.tokenExpirationTimer) {\n clearTimeout(this.tokenExpirationTimer);\n }\n if (this.apiClient?.socket && this.apiClient.socket.isConnected()) {\n this.apiClient.socket.disconnect();\n }\n }\n\n log(message: string) {\n if (this.logLevel === \"debug\") {\n console.log(`[Knock] ${message}`);\n }\n }\n\n /**\n * Initiates an API client\n */\n private createApiClient() {\n return new ApiClient({\n apiKey: this.apiKey,\n host: this.host,\n userToken: this.userToken,\n });\n }\n\n private async maybeScheduleUserTokenExpiration(\n callbackFn: UserTokenExpiringCallback,\n timeBeforeExpirationInMs: number = 30_000,\n ) {\n if (!this.userToken) return;\n\n const decoded = jwtDecode(this.userToken);\n const expiresAtMs = (decoded.exp ?? 0) * 1000;\n const nowMs = Date.now();\n\n // Expiration is in the future\n if (expiresAtMs && expiresAtMs > nowMs) {\n // Check how long until the token should be regenerated\n // | ----------------- | ----------------------- |\n // ^ now ^ expiration offset ^ expires at\n const msInFuture = expiresAtMs - timeBeforeExpirationInMs - nowMs;\n\n this.tokenExpirationTimer = setTimeout(async () => {\n const newToken = await callbackFn(this.userToken as string, decoded);\n\n // Reauthenticate which will handle reinitializing sockets\n if (typeof newToken === \"string\") {\n this.authenticate(this.userId!, newToken, {\n onUserTokenExpiring: callbackFn,\n timeBeforeExpirationInMs: timeBeforeExpirationInMs,\n });\n }\n }, msInFuture);\n }\n }\n}\n\nexport default Knock;\n"],"names":["DEFAULT_HOST","Knock","apiKey","options","__publicField","FeedClient","ObjectClient","Preferences","SlackClient","MsTeamsClient","UserClient","MessageClient","userId","userToken","reinitializeApi","checkUserToken","_a","message","ApiClient","callbackFn","timeBeforeExpirationInMs","decoded","jwtDecode","expiresAtMs","nowMs","msInFuture","newToken"],"mappings":"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"}
1
+ {"version":3,"file":"knock.mjs","sources":["../../src/knock.ts"],"sourcesContent":["import { jwtDecode } from \"jwt-decode\";\n\nimport ApiClient from \"./api\";\nimport FeedClient from \"./clients/feed\";\nimport MessageClient from \"./clients/messages\";\nimport MsTeamsClient from \"./clients/ms-teams\";\nimport ObjectClient from \"./clients/objects\";\nimport Preferences from \"./clients/preferences\";\nimport SlackClient from \"./clients/slack\";\nimport UserClient from \"./clients/users\";\nimport {\n AuthenticateOptions,\n KnockOptions,\n LogLevel,\n UserTokenExpiringCallback,\n} from \"./interfaces\";\n\nconst DEFAULT_HOST = \"https://api.knock.app\";\n\nclass Knock {\n public host: string;\n private apiClient: ApiClient | null = null;\n public userId: string | undefined | null;\n public userToken?: string;\n public logLevel?: LogLevel;\n private tokenExpirationTimer: ReturnType<typeof setTimeout> | null = null;\n readonly feeds = new FeedClient(this);\n readonly objects = new ObjectClient(this);\n readonly preferences = new Preferences(this);\n readonly slack = new SlackClient(this);\n readonly msTeams = new MsTeamsClient(this);\n readonly user = new UserClient(this);\n readonly messages = new MessageClient(this);\n\n constructor(\n readonly apiKey: string,\n options: KnockOptions = {},\n ) {\n this.host = options.host || DEFAULT_HOST;\n this.logLevel = options.logLevel;\n\n this.log(\"Initialized Knock instance\");\n\n // Fail loudly if we're using the wrong API key\n if (this.apiKey && this.apiKey.startsWith(\"sk_\")) {\n throw new Error(\n \"[Knock] You are using your secret API key on the client. Please use the public key.\",\n );\n }\n }\n\n client() {\n // Initiate a new API client if we don't have one yet\n if (!this.apiClient) {\n this.apiClient = this.createApiClient();\n }\n\n return this.apiClient;\n }\n\n /*\n Authenticates the current user. In non-sandbox environments\n the userToken must be specified.\n */\n authenticate(\n userId: Knock[\"userId\"],\n userToken?: Knock[\"userToken\"],\n options?: AuthenticateOptions,\n ) {\n let reinitializeApi = false;\n const currentApiClient = this.apiClient;\n\n // If we've previously been initialized and the values have now changed, then we\n // need to reinitialize any stateful connections we have\n if (\n currentApiClient &&\n (this.userId !== userId || this.userToken !== userToken)\n ) {\n this.log(\"userId or userToken changed; reinitializing connections\");\n this.feeds.teardownInstances();\n this.teardown();\n reinitializeApi = true;\n }\n\n this.userId = userId;\n this.userToken = userToken;\n\n this.log(`Authenticated with userId ${userId}`);\n\n if (this.userToken && options?.onUserTokenExpiring instanceof Function) {\n this.maybeScheduleUserTokenExpiration(\n options.onUserTokenExpiring,\n options.timeBeforeExpirationInMs,\n );\n }\n\n // If we get the signal to reinitialize the api client, then we want to create a new client\n // and the reinitialize any existing feed real-time connections we have so everything continues\n // to work with the new credentials we've been given\n if (reinitializeApi) {\n this.apiClient = this.createApiClient();\n this.feeds.reinitializeInstances();\n this.log(\"Reinitialized real-time connections\");\n }\n\n return;\n }\n\n failIfNotAuthenticated() {\n if (!this.isAuthenticated()) {\n throw new Error(\"Not authenticated. Please call `authenticate` first.\");\n }\n }\n\n /*\n Returns whether or this Knock instance is authenticated. Passing `true` will check the presence\n of the userToken as well.\n */\n isAuthenticated(checkUserToken = false) {\n return checkUserToken ? !!(this.userId && this.userToken) : !!this.userId;\n }\n\n // Used to teardown any connected instances\n teardown() {\n if (this.tokenExpirationTimer) {\n clearTimeout(this.tokenExpirationTimer);\n }\n if (this.apiClient?.socket && this.apiClient.socket.isConnected()) {\n this.apiClient.socket.disconnect();\n }\n }\n\n log(message: string) {\n if (this.logLevel === \"debug\") {\n console.log(`[Knock] ${message}`);\n }\n }\n\n /**\n * Initiates an API client\n */\n private createApiClient() {\n return new ApiClient({\n apiKey: this.apiKey,\n host: this.host,\n userToken: this.userToken,\n });\n }\n\n private async maybeScheduleUserTokenExpiration(\n callbackFn: UserTokenExpiringCallback,\n timeBeforeExpirationInMs: number = 30_000,\n ) {\n if (!this.userToken) return;\n\n const decoded = jwtDecode(this.userToken);\n const expiresAtMs = (decoded.exp ?? 0) * 1000;\n const nowMs = Date.now();\n\n // Expiration is in the future\n if (expiresAtMs && expiresAtMs > nowMs) {\n // Check how long until the token should be regenerated\n // | ----------------- | ----------------------- |\n // ^ now ^ expiration offset ^ expires at\n const msInFuture = expiresAtMs - timeBeforeExpirationInMs - nowMs;\n\n this.tokenExpirationTimer = setTimeout(async () => {\n const newToken = await callbackFn(this.userToken as string, decoded);\n\n // Reauthenticate which will handle reinitializing sockets\n if (typeof newToken === \"string\") {\n this.authenticate(this.userId!, newToken, {\n onUserTokenExpiring: callbackFn,\n timeBeforeExpirationInMs: timeBeforeExpirationInMs,\n });\n }\n }, msInFuture);\n }\n }\n}\n\nexport default Knock;\n"],"names":["DEFAULT_HOST","Knock","apiKey","options","__publicField","FeedClient","ObjectClient","Preferences","SlackClient","MsTeamsClient","UserClient","MessageClient","userId","userToken","reinitializeApi","checkUserToken","_a","message","ApiClient","callbackFn","timeBeforeExpirationInMs","decoded","jwtDecode","expiresAtMs","nowMs","msInFuture","newToken"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/clients/preferences/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C,OAAO,KAAK,MAAM,aAAa,CAAC;AAEhC,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,aAAa,EACb,wBAAwB,EACxB,yBAAyB,EACzB,mBAAmB,EACpB,MAAM,cAAc,CAAC;AAYtB,cAAM,WAAW;IACf,OAAO,CAAC,QAAQ,CAAQ;gBAEZ,QAAQ,EAAE,KAAK;IAI3B;;OAEG;IACG,MAAM;IASZ;;OAEG;IACG,GAAG,CAAC,OAAO,GAAE,iBAAsB;IAWzC;;OAEG;IACG,GAAG,CACP,aAAa,EAAE,wBAAwB,EACvC,OAAO,GAAE,iBAAsB;IAajC;;OAEG;IACG,eAAe,CACnB,sBAAsB,EAAE,sBAAsB,EAC9C,OAAO,GAAE,iBAAsB;IAajC;;OAEG;IACG,cAAc,CAClB,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE,iBAAsB;IAajC;;OAEG;IACG,YAAY,CAChB,mBAAmB,EAAE,mBAAmB,EACxC,OAAO,GAAE,iBAAsB;IAajC;;OAEG;IACG,WAAW,CACf,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,yBAAyB,EAClC,OAAO,GAAE,iBAAsB;IAcjC;;OAEG;IACG,aAAa,CACjB,mBAAmB,EAAE,mBAAmB,EACxC,OAAO,GAAE,iBAAsB;IAajC;;OAEG;IACG,WAAW,CACf,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,yBAAyB,EAClC,OAAO,GAAE,iBAAsB;IAcjC,OAAO,CAAC,cAAc;CAOvB;AAED,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/clients/preferences/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C,OAAO,KAAK,MAAM,aAAa,CAAC;AAEhC,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,aAAa,EACb,wBAAwB,EACxB,yBAAyB,EACzB,mBAAmB,EACpB,MAAM,cAAc,CAAC;AAYtB,cAAM,WAAW;IACf,OAAO,CAAC,QAAQ,CAAQ;gBAEZ,QAAQ,EAAE,KAAK;IAI3B;;OAEG;IACG,MAAM;IAWZ;;OAEG;IACG,GAAG,CAAC,OAAO,GAAE,iBAAsB;IAazC;;OAEG;IACG,GAAG,CACP,aAAa,EAAE,wBAAwB,EACvC,OAAO,GAAE,iBAAsB;IAejC;;OAEG;IACG,eAAe,CACnB,sBAAsB,EAAE,sBAAsB,EAC9C,OAAO,GAAE,iBAAsB;IAcjC;;OAEG;IACG,cAAc,CAClB,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE,iBAAsB;IAcjC;;OAEG;IACG,YAAY,CAChB,mBAAmB,EAAE,mBAAmB,EACxC,OAAO,GAAE,iBAAsB;IAcjC;;OAEG;IACG,WAAW,CACf,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,yBAAyB,EAClC,OAAO,GAAE,iBAAsB;IAgBjC;;OAEG;IACG,aAAa,CACjB,mBAAmB,EAAE,mBAAmB,EACxC,OAAO,GAAE,iBAAsB;IAejC;;OAEG;IACG,WAAW,CACf,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,yBAAyB,EAClC,OAAO,GAAE,iBAAsB;IAgBjC,OAAO,CAAC,cAAc;CAOvB;AAED,eAAe,WAAW,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/clients/users/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,MAAM,aAAa,CAAC;AAChC,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,wBAAwB,EACzB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAIxE,cAAM,UAAU;IACd,OAAO,CAAC,QAAQ,CAAQ;gBAEZ,QAAQ,EAAE,KAAK;IAIrB,GAAG;IASH,QAAQ,CAAC,KAAK,GAAE,WAAgB;IAUhC,iBAAiB;IASjB,cAAc,CAClB,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,aAAa,CAAC;IAYnB,cAAc,CAClB,aAAa,EAAE,wBAAwB,EACvC,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,aAAa,CAAC;IAYnB,cAAc,CAAC,CAAC,GAAG,WAAW,EAAE,MAAM,EAAE,mBAAmB;IAS3D,cAAc,CAAC,CAAC,GAAG,WAAW,EAAE,EACpC,SAAS,EACT,WAAW,GACZ,EAAE,mBAAmB;IAUtB,OAAO,CAAC,cAAc;CAOvB;AAED,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/clients/users/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,MAAM,aAAa,CAAC;AAChC,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,wBAAwB,EACzB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAIxE,cAAM,UAAU;IACd,OAAO,CAAC,QAAQ,CAAQ;gBAEZ,QAAQ,EAAE,KAAK;IAIrB,GAAG;IAWH,QAAQ,CAAC,KAAK,GAAE,WAAgB;IAYhC,iBAAiB;IAWjB,cAAc,CAClB,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,aAAa,CAAC;IAanB,cAAc,CAClB,aAAa,EAAE,wBAAwB,EACvC,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,aAAa,CAAC;IAanB,cAAc,CAAC,CAAC,GAAG,WAAW,EAAE,MAAM,EAAE,mBAAmB;IAW3D,cAAc,CAAC,CAAC,GAAG,WAAW,EAAE,EACpC,SAAS,EACT,WAAW,GACZ,EAAE,mBAAmB;IAYtB,OAAO,CAAC,cAAc;CAOvB;AAED,eAAe,UAAU,CAAC"}
@@ -25,6 +25,7 @@ declare class Knock {
25
25
  constructor(apiKey: string, options?: KnockOptions);
26
26
  client(): ApiClient;
27
27
  authenticate(userId: Knock["userId"], userToken?: Knock["userToken"], options?: AuthenticateOptions): void;
28
+ failIfNotAuthenticated(): void;
28
29
  isAuthenticated(checkUserToken?: boolean): boolean;
29
30
  teardown(): void;
30
31
  log(message: string): void;
@@ -1 +1 @@
1
- {"version":3,"file":"knock.d.ts","sourceRoot":"","sources":["../../src/knock.ts"],"names":[],"mappings":"AAEA,OAAO,SAAS,MAAM,OAAO,CAAC;AAC9B,OAAO,UAAU,MAAM,gBAAgB,CAAC;AACxC,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,YAAY,MAAM,mBAAmB,CAAC;AAC7C,OAAO,WAAW,MAAM,uBAAuB,CAAC;AAChD,OAAO,WAAW,MAAM,iBAAiB,CAAC;AAC1C,OAAO,UAAU,MAAM,iBAAiB,CAAC;AACzC,OAAO,EACL,mBAAmB,EACnB,YAAY,EACZ,QAAQ,EAET,MAAM,cAAc,CAAC;AAItB,cAAM,KAAK;IAgBP,QAAQ,CAAC,MAAM,EAAE,MAAM;IAflB,IAAI,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,SAAS,CAA0B;IACpC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAC3B,OAAO,CAAC,oBAAoB,CAA8C;IAC1E,QAAQ,CAAC,KAAK,aAAwB;IACtC,QAAQ,CAAC,OAAO,eAA0B;IAC1C,QAAQ,CAAC,WAAW,cAAyB;IAC7C,QAAQ,CAAC,KAAK,cAAyB;IACvC,QAAQ,CAAC,OAAO,gBAA2B;IAC3C,QAAQ,CAAC,IAAI,aAAwB;IACrC,QAAQ,CAAC,QAAQ,gBAA2B;gBAGjC,MAAM,EAAE,MAAM,EACvB,OAAO,GAAE,YAAiB;IAe5B,MAAM;IAaN,YAAY,CACV,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,EACvB,SAAS,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,EAC9B,OAAO,CAAC,EAAE,mBAAmB;IA6C/B,eAAe,CAAC,cAAc,UAAQ;IAKtC,QAAQ;IASR,GAAG,CAAC,OAAO,EAAE,MAAM;IAMnB;;OAEG;IACH,OAAO,CAAC,eAAe;YAQT,gCAAgC;CA8B/C;AAED,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"knock.d.ts","sourceRoot":"","sources":["../../src/knock.ts"],"names":[],"mappings":"AAEA,OAAO,SAAS,MAAM,OAAO,CAAC;AAC9B,OAAO,UAAU,MAAM,gBAAgB,CAAC;AACxC,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,YAAY,MAAM,mBAAmB,CAAC;AAC7C,OAAO,WAAW,MAAM,uBAAuB,CAAC;AAChD,OAAO,WAAW,MAAM,iBAAiB,CAAC;AAC1C,OAAO,UAAU,MAAM,iBAAiB,CAAC;AACzC,OAAO,EACL,mBAAmB,EACnB,YAAY,EACZ,QAAQ,EAET,MAAM,cAAc,CAAC;AAItB,cAAM,KAAK;IAgBP,QAAQ,CAAC,MAAM,EAAE,MAAM;IAflB,IAAI,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,SAAS,CAA0B;IACpC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAC3B,OAAO,CAAC,oBAAoB,CAA8C;IAC1E,QAAQ,CAAC,KAAK,aAAwB;IACtC,QAAQ,CAAC,OAAO,eAA0B;IAC1C,QAAQ,CAAC,WAAW,cAAyB;IAC7C,QAAQ,CAAC,KAAK,cAAyB;IACvC,QAAQ,CAAC,OAAO,gBAA2B;IAC3C,QAAQ,CAAC,IAAI,aAAwB;IACrC,QAAQ,CAAC,QAAQ,gBAA2B;gBAGjC,MAAM,EAAE,MAAM,EACvB,OAAO,GAAE,YAAiB;IAe5B,MAAM;IAaN,YAAY,CACV,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,EACvB,SAAS,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,EAC9B,OAAO,CAAC,EAAE,mBAAmB;IAyC/B,sBAAsB;IAUtB,eAAe,CAAC,cAAc,UAAQ;IAKtC,QAAQ;IASR,GAAG,CAAC,OAAO,EAAE,MAAM;IAMnB;;OAEG;IACH,OAAO,CAAC,eAAe;YAQT,gCAAgC;CA8B/C;AAED,eAAe,KAAK,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@knocklabs/client",
3
- "version": "0.11.2",
3
+ "version": "0.11.3",
4
4
  "description": "The clientside library for interacting with Knock",
5
5
  "homepage": "https://github.com/knocklabs/javascript/tree/main/packages/client",
6
6
  "author": "@knocklabs",
@@ -76,7 +76,7 @@
76
76
  "axios-retry": "^4.5.0",
77
77
  "eventemitter2": "^6.4.5",
78
78
  "jwt-decode": "^4.0.0",
79
- "phoenix": "1.7.14",
79
+ "phoenix": "1.7.19",
80
80
  "zustand": "^3.7.2"
81
81
  }
82
82
  }
@@ -33,6 +33,8 @@ class Preferences {
33
33
  * @deprecated Use `user.getAllPreferences()` instead
34
34
  */
35
35
  async getAll() {
36
+ this.instance.failIfNotAuthenticated();
37
+
36
38
  const result = await this.instance.client().makeRequest({
37
39
  method: "GET",
38
40
  url: `/v1/users/${this.instance.userId}/preferences`,
@@ -45,6 +47,8 @@ class Preferences {
45
47
  * @deprecated Use `user.getPreferences()` instead
46
48
  */
47
49
  async get(options: PreferenceOptions = {}) {
50
+ this.instance.failIfNotAuthenticated();
51
+
48
52
  const preferenceSetId = options.preferenceSet || DEFAULT_PREFERENCE_SET_ID;
49
53
 
50
54
  const result = await this.instance.client().makeRequest({
@@ -62,6 +66,8 @@ class Preferences {
62
66
  preferenceSet: SetPreferencesProperties,
63
67
  options: PreferenceOptions = {},
64
68
  ) {
69
+ this.instance.failIfNotAuthenticated();
70
+
65
71
  const preferenceSetId = options.preferenceSet || DEFAULT_PREFERENCE_SET_ID;
66
72
 
67
73
  const result = await this.instance.client().makeRequest({
@@ -80,6 +86,7 @@ class Preferences {
80
86
  channelTypePreferences: ChannelTypePreferences,
81
87
  options: PreferenceOptions = {},
82
88
  ) {
89
+ this.instance.failIfNotAuthenticated();
83
90
  const preferenceSetId = options.preferenceSet || DEFAULT_PREFERENCE_SET_ID;
84
91
 
85
92
  const result = await this.instance.client().makeRequest({
@@ -99,6 +106,7 @@ class Preferences {
99
106
  setting: boolean,
100
107
  options: PreferenceOptions = {},
101
108
  ) {
109
+ this.instance.failIfNotAuthenticated();
102
110
  const preferenceSetId = options.preferenceSet || DEFAULT_PREFERENCE_SET_ID;
103
111
 
104
112
  const result = await this.instance.client().makeRequest({
@@ -117,6 +125,7 @@ class Preferences {
117
125
  workflowPreferences: WorkflowPreferences,
118
126
  options: PreferenceOptions = {},
119
127
  ) {
128
+ this.instance.failIfNotAuthenticated();
120
129
  const preferenceSetId = options.preferenceSet || DEFAULT_PREFERENCE_SET_ID;
121
130
 
122
131
  const result = await this.instance.client().makeRequest({
@@ -136,6 +145,8 @@ class Preferences {
136
145
  setting: WorkflowPreferenceSetting,
137
146
  options: PreferenceOptions = {},
138
147
  ) {
148
+ this.instance.failIfNotAuthenticated();
149
+
139
150
  const preferenceSetId = options.preferenceSet || DEFAULT_PREFERENCE_SET_ID;
140
151
  const params = buildUpdateParam(setting);
141
152
 
@@ -155,6 +166,8 @@ class Preferences {
155
166
  categoryPreferences: WorkflowPreferences,
156
167
  options: PreferenceOptions = {},
157
168
  ) {
169
+ this.instance.failIfNotAuthenticated();
170
+
158
171
  const preferenceSetId = options.preferenceSet || DEFAULT_PREFERENCE_SET_ID;
159
172
 
160
173
  const result = await this.instance.client().makeRequest({
@@ -174,6 +187,8 @@ class Preferences {
174
187
  setting: WorkflowPreferenceSetting,
175
188
  options: PreferenceOptions = {},
176
189
  ) {
190
+ this.instance.failIfNotAuthenticated();
191
+
177
192
  const preferenceSetId = options.preferenceSet || DEFAULT_PREFERENCE_SET_ID;
178
193
  const params = buildUpdateParam(setting);
179
194
 
@@ -22,6 +22,8 @@ class UserClient {
22
22
  }
23
23
 
24
24
  async get() {
25
+ this.instance.failIfNotAuthenticated();
26
+
25
27
  const result = await this.instance.client().makeRequest({
26
28
  method: "GET",
27
29
  url: `/v1/users/${this.instance.userId}`,
@@ -31,6 +33,8 @@ class UserClient {
31
33
  }
32
34
 
33
35
  async identify(props: GenericData = {}) {
36
+ this.instance.failIfNotAuthenticated();
37
+
34
38
  const result = await this.instance.client().makeRequest({
35
39
  method: "PUT",
36
40
  url: `/v1/users/${this.instance.userId}`,
@@ -41,6 +45,8 @@ class UserClient {
41
45
  }
42
46
 
43
47
  async getAllPreferences() {
48
+ this.instance.failIfNotAuthenticated();
49
+
44
50
  const result = await this.instance.client().makeRequest({
45
51
  method: "GET",
46
52
  url: `/v1/users/${this.instance.userId}/preferences`,
@@ -52,6 +58,7 @@ class UserClient {
52
58
  async getPreferences(
53
59
  options: GetPreferencesOptions = {},
54
60
  ): Promise<PreferenceSet> {
61
+ this.instance.failIfNotAuthenticated();
55
62
  const preferenceSetId = options.preferenceSet || DEFAULT_PREFERENCE_SET_ID;
56
63
 
57
64
  const result = await this.instance.client().makeRequest({
@@ -67,6 +74,7 @@ class UserClient {
67
74
  preferenceSet: SetPreferencesProperties,
68
75
  options: PreferenceOptions = {},
69
76
  ): Promise<PreferenceSet> {
77
+ this.instance.failIfNotAuthenticated();
70
78
  const preferenceSetId = options.preferenceSet || DEFAULT_PREFERENCE_SET_ID;
71
79
 
72
80
  const result = await this.instance.client().makeRequest({
@@ -79,6 +87,8 @@ class UserClient {
79
87
  }
80
88
 
81
89
  async getChannelData<T = GenericData>(params: GetChannelDataInput) {
90
+ this.instance.failIfNotAuthenticated();
91
+
82
92
  const result = await this.instance.client().makeRequest({
83
93
  method: "GET",
84
94
  url: `/v1/users/${this.instance.userId}/channel_data/${params.channelId}`,
@@ -91,6 +101,8 @@ class UserClient {
91
101
  channelId,
92
102
  channelData,
93
103
  }: SetChannelDataInput) {
104
+ this.instance.failIfNotAuthenticated();
105
+
94
106
  const result = await this.instance.client().makeRequest({
95
107
  method: "PUT",
96
108
  url: `/v1/users/${this.instance.userId}/channel_data/${channelId}`,
package/src/knock.ts CHANGED
@@ -106,6 +106,12 @@ class Knock {
106
106
  return;
107
107
  }
108
108
 
109
+ failIfNotAuthenticated() {
110
+ if (!this.isAuthenticated()) {
111
+ throw new Error("Not authenticated. Please call `authenticate` first.");
112
+ }
113
+ }
114
+
109
115
  /*
110
116
  Returns whether or this Knock instance is authenticated. Passing `true` will check the presence
111
117
  of the userToken as well.