@voiceflow/api-sdk 3.27.34 → 3.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (224) hide show
  1. package/README.md +1 -1
  2. package/build/cjs/client.d.ts +2 -1
  3. package/build/cjs/client.d.ts.map +1 -1
  4. package/build/cjs/fetch.d.ts +1 -1
  5. package/build/cjs/fetch.d.ts.map +1 -1
  6. package/build/cjs/index.d.ts +3 -2
  7. package/build/cjs/index.d.ts.map +1 -1
  8. package/build/cjs/publicClient.d.ts +3 -2
  9. package/build/cjs/publicClient.d.ts.map +1 -1
  10. package/build/cjs/resources/analytics/index.d.ts +1 -1
  11. package/build/cjs/resources/analytics/index.d.ts.map +1 -1
  12. package/build/cjs/resources/apiKey.d.ts +2 -2
  13. package/build/cjs/resources/apiKey.d.ts.map +1 -1
  14. package/build/cjs/resources/base.d.ts +4 -3
  15. package/build/cjs/resources/base.d.ts.map +1 -1
  16. package/build/cjs/resources/crud.d.ts +2 -1
  17. package/build/cjs/resources/crud.d.ts.map +1 -1
  18. package/build/cjs/resources/crudNested.d.ts +3 -2
  19. package/build/cjs/resources/crudNested.d.ts.map +1 -1
  20. package/build/cjs/resources/diagram.d.ts +2 -2
  21. package/build/cjs/resources/diagram.d.ts.map +1 -1
  22. package/build/cjs/resources/fetcher.d.ts +2 -2
  23. package/build/cjs/resources/fetcher.d.ts.map +1 -1
  24. package/build/cjs/resources/fetcher.js +3 -3
  25. package/build/cjs/resources/note.d.ts +3 -3
  26. package/build/cjs/resources/note.d.ts.map +1 -1
  27. package/build/cjs/resources/program.d.ts +3 -3
  28. package/build/cjs/resources/program.d.ts.map +1 -1
  29. package/build/cjs/resources/program.js +3 -1
  30. package/build/cjs/resources/project/index.d.ts +5 -5
  31. package/build/cjs/resources/project/index.d.ts.map +1 -1
  32. package/build/cjs/resources/project/interface.d.ts +1 -1
  33. package/build/cjs/resources/project/interface.d.ts.map +1 -1
  34. package/build/cjs/resources/project/interface.js +1 -1
  35. package/build/cjs/resources/project/member.d.ts +7 -5
  36. package/build/cjs/resources/project/member.d.ts.map +1 -1
  37. package/build/cjs/resources/projectSecret.d.ts +1 -1
  38. package/build/cjs/resources/projectSecret.d.ts.map +1 -1
  39. package/build/cjs/resources/user.d.ts.map +1 -1
  40. package/build/cjs/resources/variableState.d.ts +4 -4
  41. package/build/cjs/resources/variableState.d.ts.map +1 -1
  42. package/build/cjs/resources/version/canvasTemplate.d.ts +3 -3
  43. package/build/cjs/resources/version/canvasTemplate.d.ts.map +1 -1
  44. package/build/cjs/resources/version/diagram.d.ts +3 -3
  45. package/build/cjs/resources/version/diagram.d.ts.map +1 -1
  46. package/build/cjs/resources/version/domain.d.ts +3 -3
  47. package/build/cjs/resources/version/domain.d.ts.map +1 -1
  48. package/build/cjs/resources/version/index.d.ts +5 -5
  49. package/build/cjs/resources/version/index.d.ts.map +1 -1
  50. package/build/cjs/resources/version/program.d.ts +3 -3
  51. package/build/cjs/resources/version/program.d.ts.map +1 -1
  52. package/build/cjs/resources/version/prototypeProgram.d.ts +3 -3
  53. package/build/cjs/resources/version/prototypeProgram.d.ts.map +1 -1
  54. package/build/cjs/types.d.ts +7 -7
  55. package/build/cjs/types.d.ts.map +1 -1
  56. package/build/esm/client.d.ts +2 -1
  57. package/build/esm/client.d.ts.map +1 -1
  58. package/build/esm/fetch.d.ts +1 -1
  59. package/build/esm/fetch.d.ts.map +1 -1
  60. package/build/esm/index.d.ts +3 -2
  61. package/build/esm/index.d.ts.map +1 -1
  62. package/build/esm/publicClient.d.ts +3 -2
  63. package/build/esm/publicClient.d.ts.map +1 -1
  64. package/build/esm/publicClient.js +1 -1
  65. package/build/esm/resources/analytics/index.d.ts +1 -1
  66. package/build/esm/resources/analytics/index.d.ts.map +1 -1
  67. package/build/esm/resources/apiKey.d.ts +2 -2
  68. package/build/esm/resources/apiKey.d.ts.map +1 -1
  69. package/build/esm/resources/base.d.ts +4 -3
  70. package/build/esm/resources/base.d.ts.map +1 -1
  71. package/build/esm/resources/crud.d.ts +2 -1
  72. package/build/esm/resources/crud.d.ts.map +1 -1
  73. package/build/esm/resources/crudNested.d.ts +3 -2
  74. package/build/esm/resources/crudNested.d.ts.map +1 -1
  75. package/build/esm/resources/diagram.d.ts +2 -2
  76. package/build/esm/resources/diagram.d.ts.map +1 -1
  77. package/build/esm/resources/fetcher.d.ts +2 -2
  78. package/build/esm/resources/fetcher.d.ts.map +1 -1
  79. package/build/esm/resources/fetcher.js +3 -3
  80. package/build/esm/resources/note.d.ts +3 -3
  81. package/build/esm/resources/note.d.ts.map +1 -1
  82. package/build/esm/resources/program.d.ts +3 -3
  83. package/build/esm/resources/program.d.ts.map +1 -1
  84. package/build/esm/resources/program.js +3 -1
  85. package/build/esm/resources/project/index.d.ts +5 -5
  86. package/build/esm/resources/project/index.d.ts.map +1 -1
  87. package/build/esm/resources/project/interface.d.ts +1 -1
  88. package/build/esm/resources/project/interface.d.ts.map +1 -1
  89. package/build/esm/resources/project/member.d.ts +7 -5
  90. package/build/esm/resources/project/member.d.ts.map +1 -1
  91. package/build/esm/resources/projectSecret.d.ts +1 -1
  92. package/build/esm/resources/projectSecret.d.ts.map +1 -1
  93. package/build/esm/resources/user.d.ts.map +1 -1
  94. package/build/esm/resources/variableState.d.ts +4 -4
  95. package/build/esm/resources/variableState.d.ts.map +1 -1
  96. package/build/esm/resources/version/canvasTemplate.d.ts +3 -3
  97. package/build/esm/resources/version/canvasTemplate.d.ts.map +1 -1
  98. package/build/esm/resources/version/diagram.d.ts +3 -3
  99. package/build/esm/resources/version/diagram.d.ts.map +1 -1
  100. package/build/esm/resources/version/domain.d.ts +3 -3
  101. package/build/esm/resources/version/domain.d.ts.map +1 -1
  102. package/build/esm/resources/version/index.d.ts +5 -5
  103. package/build/esm/resources/version/index.d.ts.map +1 -1
  104. package/build/esm/resources/version/program.d.ts +3 -3
  105. package/build/esm/resources/version/program.d.ts.map +1 -1
  106. package/build/esm/resources/version/prototypeProgram.d.ts +3 -3
  107. package/build/esm/resources/version/prototypeProgram.d.ts.map +1 -1
  108. package/build/esm/types.d.ts +7 -7
  109. package/build/esm/types.d.ts.map +1 -1
  110. package/package.json +40 -42
  111. package/build/cjs/client.test.d.ts +0 -2
  112. package/build/cjs/client.test.d.ts.map +0 -1
  113. package/build/cjs/client.test.js +0 -54
  114. package/build/cjs/fetch.test.d.ts +0 -2
  115. package/build/cjs/fetch.test.d.ts.map +0 -1
  116. package/build/cjs/fetch.test.js +0 -194
  117. package/build/cjs/index.test.d.ts +0 -2
  118. package/build/cjs/index.test.d.ts.map +0 -1
  119. package/build/cjs/index.test.js +0 -72
  120. package/build/cjs/resources/analytics.test.d.ts +0 -2
  121. package/build/cjs/resources/analytics.test.d.ts.map +0 -1
  122. package/build/cjs/resources/analytics.test.js +0 -186
  123. package/build/cjs/resources/apiKey.test.d.ts +0 -2
  124. package/build/cjs/resources/apiKey.test.d.ts.map +0 -1
  125. package/build/cjs/resources/apiKey.test.js +0 -90
  126. package/build/cjs/resources/base.test.d.ts +0 -2
  127. package/build/cjs/resources/base.test.d.ts.map +0 -1
  128. package/build/cjs/resources/base.test.js +0 -57
  129. package/build/cjs/resources/crud.test.d.ts +0 -2
  130. package/build/cjs/resources/crud.test.d.ts.map +0 -1
  131. package/build/cjs/resources/crud.test.js +0 -104
  132. package/build/cjs/resources/crudNested.test.d.ts +0 -2
  133. package/build/cjs/resources/crudNested.test.d.ts.map +0 -1
  134. package/build/cjs/resources/crudNested.test.js +0 -105
  135. package/build/cjs/resources/diagram.test.d.ts +0 -2
  136. package/build/cjs/resources/diagram.test.d.ts.map +0 -1
  137. package/build/cjs/resources/diagram.test.js +0 -130
  138. package/build/cjs/resources/note.test.d.ts +0 -2
  139. package/build/cjs/resources/note.test.d.ts.map +0 -1
  140. package/build/cjs/resources/note.test.js +0 -37
  141. package/build/cjs/resources/program.test.d.ts +0 -2
  142. package/build/cjs/resources/program.test.d.ts.map +0 -1
  143. package/build/cjs/resources/program.test.js +0 -140
  144. package/build/cjs/resources/project/index.test.d.ts +0 -2
  145. package/build/cjs/resources/project/index.test.d.ts.map +0 -1
  146. package/build/cjs/resources/project/index.test.js +0 -178
  147. package/build/cjs/resources/project/member.test.d.ts +0 -2
  148. package/build/cjs/resources/project/member.test.d.ts.map +0 -1
  149. package/build/cjs/resources/project/member.test.js +0 -111
  150. package/build/cjs/resources/prototypeProgram.test.d.ts +0 -2
  151. package/build/cjs/resources/prototypeProgram.test.d.ts.map +0 -1
  152. package/build/cjs/resources/prototypeProgram.test.js +0 -18
  153. package/build/cjs/resources/user.test.d.ts +0 -2
  154. package/build/cjs/resources/user.test.d.ts.map +0 -1
  155. package/build/cjs/resources/user.test.js +0 -35
  156. package/build/cjs/resources/variableState.test.d.ts +0 -2
  157. package/build/cjs/resources/variableState.test.d.ts.map +0 -1
  158. package/build/cjs/resources/variableState.test.js +0 -56
  159. package/build/cjs/resources/version/canvasTemplate.test.d.ts +0 -2
  160. package/build/cjs/resources/version/canvasTemplate.test.d.ts.map +0 -1
  161. package/build/cjs/resources/version/canvasTemplate.test.js +0 -89
  162. package/build/cjs/resources/version/domain.test.d.ts +0 -2
  163. package/build/cjs/resources/version/domain.test.d.ts.map +0 -1
  164. package/build/cjs/resources/version/domain.test.js +0 -114
  165. package/build/cjs/resources/version/index.test.d.ts +0 -2
  166. package/build/cjs/resources/version/index.test.d.ts.map +0 -1
  167. package/build/cjs/resources/version/index.test.js +0 -323
  168. package/build/esm/client.test.d.ts +0 -2
  169. package/build/esm/client.test.d.ts.map +0 -1
  170. package/build/esm/client.test.js +0 -49
  171. package/build/esm/fetch.test.d.ts +0 -2
  172. package/build/esm/fetch.test.d.ts.map +0 -1
  173. package/build/esm/fetch.test.js +0 -189
  174. package/build/esm/index.test.d.ts +0 -2
  175. package/build/esm/index.test.d.ts.map +0 -1
  176. package/build/esm/index.test.js +0 -44
  177. package/build/esm/resources/analytics.test.d.ts +0 -2
  178. package/build/esm/resources/analytics.test.d.ts.map +0 -1
  179. package/build/esm/resources/analytics.test.js +0 -181
  180. package/build/esm/resources/apiKey.test.d.ts +0 -2
  181. package/build/esm/resources/apiKey.test.d.ts.map +0 -1
  182. package/build/esm/resources/apiKey.test.js +0 -85
  183. package/build/esm/resources/base.test.d.ts +0 -2
  184. package/build/esm/resources/base.test.d.ts.map +0 -1
  185. package/build/esm/resources/base.test.js +0 -52
  186. package/build/esm/resources/crud.test.d.ts +0 -2
  187. package/build/esm/resources/crud.test.d.ts.map +0 -1
  188. package/build/esm/resources/crud.test.js +0 -99
  189. package/build/esm/resources/crudNested.test.d.ts +0 -2
  190. package/build/esm/resources/crudNested.test.d.ts.map +0 -1
  191. package/build/esm/resources/crudNested.test.js +0 -100
  192. package/build/esm/resources/diagram.test.d.ts +0 -2
  193. package/build/esm/resources/diagram.test.d.ts.map +0 -1
  194. package/build/esm/resources/diagram.test.js +0 -125
  195. package/build/esm/resources/note.test.d.ts +0 -2
  196. package/build/esm/resources/note.test.d.ts.map +0 -1
  197. package/build/esm/resources/note.test.js +0 -32
  198. package/build/esm/resources/program.test.d.ts +0 -2
  199. package/build/esm/resources/program.test.d.ts.map +0 -1
  200. package/build/esm/resources/program.test.js +0 -135
  201. package/build/esm/resources/project/index.test.d.ts +0 -2
  202. package/build/esm/resources/project/index.test.d.ts.map +0 -1
  203. package/build/esm/resources/project/index.test.js +0 -173
  204. package/build/esm/resources/project/member.test.d.ts +0 -2
  205. package/build/esm/resources/project/member.test.d.ts.map +0 -1
  206. package/build/esm/resources/project/member.test.js +0 -106
  207. package/build/esm/resources/prototypeProgram.test.d.ts +0 -2
  208. package/build/esm/resources/prototypeProgram.test.d.ts.map +0 -1
  209. package/build/esm/resources/prototypeProgram.test.js +0 -13
  210. package/build/esm/resources/user.test.d.ts +0 -2
  211. package/build/esm/resources/user.test.d.ts.map +0 -1
  212. package/build/esm/resources/user.test.js +0 -30
  213. package/build/esm/resources/variableState.test.d.ts +0 -2
  214. package/build/esm/resources/variableState.test.d.ts.map +0 -1
  215. package/build/esm/resources/variableState.test.js +0 -51
  216. package/build/esm/resources/version/canvasTemplate.test.d.ts +0 -2
  217. package/build/esm/resources/version/canvasTemplate.test.d.ts.map +0 -1
  218. package/build/esm/resources/version/canvasTemplate.test.js +0 -84
  219. package/build/esm/resources/version/domain.test.d.ts +0 -2
  220. package/build/esm/resources/version/domain.test.d.ts.map +0 -1
  221. package/build/esm/resources/version/domain.test.js +0 -109
  222. package/build/esm/resources/version/index.test.d.ts +0 -2
  223. package/build/esm/resources/version/index.test.d.ts.map +0 -1
  224. package/build/esm/resources/version/index.test.js +0 -318
@@ -1,49 +0,0 @@
1
- import JWT from 'jsonwebtoken';
2
- import { Client } from './client.js';
3
- import Fetch from './fetch.js';
4
- import { Analytics, APIKey, Diagram, Note, Program, Project, ProjectSecret, PrototypeProgram, User, VariableState, Version } from './resources/index.js';
5
- const CLIENT_RESOURCES = [Fetch, Diagram, Program, Project, ProjectSecret, Version, User, APIKey, Analytics, VariableState, Note];
6
- const USER_HASH = 'UserHash_16chars';
7
- const createClient = (authorization) => new Client({
8
- clientKey: '123qwe123',
9
- apiEndpoint: 'apiEndpoint',
10
- authorization: authorization ?? `${USER_HASH}${JWT.sign({}, 'test')}`,
11
- });
12
- describe('Client', () => {
13
- it('.constructor', () => {
14
- const client = createClient();
15
- expect(Object.values(client).every((resource) => CLIENT_RESOURCES.some((Resource) => resource instanceof Resource))).toBe(true);
16
- });
17
- it('.project', () => {
18
- const client = createClient();
19
- expect(client.project).toBeInstanceOf(Project);
20
- });
21
- it('.project secret', () => {
22
- const client = createClient();
23
- expect(client.projectSecret).toBeInstanceOf(ProjectSecret);
24
- });
25
- it('.version', () => {
26
- const client = createClient();
27
- expect(client.version).toBeInstanceOf(Version);
28
- });
29
- it('.program', () => {
30
- const client = createClient();
31
- expect(client.program).toBeInstanceOf(Program);
32
- });
33
- it('.diagram', () => {
34
- const client = createClient();
35
- expect(client.diagram).toBeInstanceOf(Diagram);
36
- });
37
- it('.user', () => {
38
- const client = createClient();
39
- expect(client.user).toBeInstanceOf(User);
40
- });
41
- it('.prototypeProgram', () => {
42
- const client = createClient();
43
- expect(client.prototypeProgram).toBeInstanceOf(PrototypeProgram);
44
- });
45
- it('.apiKey', () => {
46
- const client = createClient();
47
- expect(client.apiKey).toBeInstanceOf(APIKey);
48
- });
49
- });
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=fetch.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fetch.test.d.ts","sourceRoot":"","sources":["../../src/fetch.test.ts"],"names":[],"mappings":""}
@@ -1,189 +0,0 @@
1
- /* eslint-disable dot-notation */
2
- import baseAxios from 'axios';
3
- import Fetch from './fetch.js';
4
- const CLIENT_KEY = '123qwe123';
5
- const AUTHORIZATION = 'qwe123qwe';
6
- const RESPONSE_DATA = {
7
- data: { field1: '1', field2: { subfield: [1, 10] } },
8
- status: 200,
9
- };
10
- const createFetch = (apiEndpoint = '', { options, authorization = 'qwe123qwe' } = {}) => {
11
- const axiosInstance = {
12
- get: jest.fn(),
13
- post: jest.fn(),
14
- put: jest.fn(),
15
- patch: jest.fn(),
16
- delete: jest.fn(),
17
- defaults: {},
18
- };
19
- const axiosCreate = jest.spyOn(baseAxios, 'create').mockReturnValue(axiosInstance);
20
- const fetch = new Fetch({
21
- options,
22
- clientKey: '123qwe123',
23
- apiEndpoint,
24
- authorization: authorization === null ? undefined : authorization,
25
- });
26
- return { fetch, axiosCreate, axiosInstance };
27
- };
28
- describe('Fetch', () => {
29
- afterEach(() => {
30
- jest.restoreAllMocks();
31
- });
32
- it('.constructor', () => {
33
- const { axiosCreate } = createFetch('https://example.com');
34
- expect(axiosCreate).toHaveBeenCalledTimes(1);
35
- expect(axiosCreate).toHaveBeenCalledWith({
36
- baseURL: 'https://example.com/',
37
- headers: {
38
- clientKey: CLIENT_KEY,
39
- authorization: AUTHORIZATION,
40
- },
41
- withCredentials: true,
42
- });
43
- });
44
- it('.constructor with trailing slash', () => {
45
- const { axiosCreate } = createFetch('https://example.com/');
46
- expect(axiosCreate).toHaveBeenCalledTimes(1);
47
- expect(axiosCreate).toHaveBeenCalledWith({
48
- baseURL: 'https://example.com/',
49
- headers: {
50
- clientKey: CLIENT_KEY,
51
- authorization: AUTHORIZATION,
52
- },
53
- withCredentials: true,
54
- });
55
- });
56
- it('.constructor with globalHeaders', () => {
57
- const { axiosCreate } = createFetch('https://example.com', { options: { headers: { key: 'val' } } });
58
- expect(axiosCreate).toHaveBeenCalledTimes(1);
59
- expect(axiosCreate).toHaveBeenCalledWith({
60
- baseURL: 'https://example.com/',
61
- headers: {
62
- key: 'val',
63
- clientKey: CLIENT_KEY,
64
- authorization: AUTHORIZATION,
65
- },
66
- withCredentials: true,
67
- });
68
- });
69
- it('.constructor without authorization', () => {
70
- const { axiosCreate } = createFetch('https://example.com', { authorization: null });
71
- expect(axiosCreate).toHaveBeenCalledTimes(1);
72
- expect(axiosCreate).toHaveBeenCalledWith({
73
- baseURL: 'https://example.com/',
74
- headers: { clientKey: CLIENT_KEY },
75
- withCredentials: true,
76
- });
77
- });
78
- it('.get', async () => {
79
- const { fetch, axiosInstance } = createFetch();
80
- axiosInstance.get.mockResolvedValue(RESPONSE_DATA);
81
- const data = await fetch.get('get');
82
- expect(axiosInstance.get).toHaveBeenCalledTimes(1);
83
- expect(axiosInstance.get).toHaveBeenCalledWith('get');
84
- expect(data).toEqual(RESPONSE_DATA);
85
- });
86
- it('.post', async () => {
87
- const { fetch, axiosInstance } = createFetch();
88
- axiosInstance.post.mockResolvedValue(RESPONSE_DATA);
89
- const data = await fetch.post('post', { name: 'Name', id: 'id' });
90
- expect(axiosInstance.post).toHaveBeenCalledTimes(1);
91
- expect(axiosInstance.post).toHaveBeenCalledWith('post', { name: 'Name', id: 'id' });
92
- expect(data).toEqual(RESPONSE_DATA);
93
- });
94
- it('.put', async () => {
95
- const { fetch, axiosInstance } = createFetch();
96
- axiosInstance.put.mockResolvedValue(RESPONSE_DATA);
97
- const data = await fetch.put('put', { name: 'Name', id: 'id' });
98
- expect(axiosInstance.put).toHaveBeenCalledTimes(1);
99
- expect(axiosInstance.put).toHaveBeenCalledWith('put', { name: 'Name', id: 'id' });
100
- expect(data).toEqual(RESPONSE_DATA);
101
- });
102
- it('.patch', async () => {
103
- const { fetch, axiosInstance } = createFetch();
104
- axiosInstance.patch.mockResolvedValue(RESPONSE_DATA);
105
- const data = await fetch.patch('patch', { name: 'New Name' });
106
- expect(axiosInstance.patch).toHaveBeenCalledTimes(1);
107
- expect(axiosInstance.patch).toHaveBeenCalledWith('patch', { name: 'New Name' }, undefined);
108
- expect(data).toEqual(RESPONSE_DATA);
109
- });
110
- it('.patch with query', async () => {
111
- const { fetch, axiosInstance } = createFetch();
112
- axiosInstance.patch.mockResolvedValue(RESPONSE_DATA);
113
- const data = await fetch.patch('patch', { name: 'New Name' }, { key: '1' });
114
- expect(axiosInstance.patch).toHaveBeenCalledTimes(1);
115
- expect(axiosInstance.patch).toHaveBeenCalledWith('patch', { name: 'New Name' }, { params: { key: '1' } });
116
- expect(data).toEqual(RESPONSE_DATA);
117
- });
118
- it('.delete', async () => {
119
- const { fetch, axiosInstance } = createFetch();
120
- axiosInstance.delete.mockResolvedValue(RESPONSE_DATA);
121
- const data = await fetch.delete('delete');
122
- expect(axiosInstance.delete).toHaveBeenCalledTimes(1);
123
- expect(axiosInstance.delete).toHaveBeenCalledWith('delete');
124
- expect(data).toEqual(RESPONSE_DATA);
125
- });
126
- it('.granularPatch', async () => {
127
- const { fetch, axiosInstance } = createFetch();
128
- axiosInstance.patch.mockResolvedValue(RESPONSE_DATA);
129
- const data = await fetch.granularPatch('patch', 'path.[$var].nested', [1, 2], { var: 20 });
130
- expect(axiosInstance.patch).toHaveBeenCalledTimes(1);
131
- expect(axiosInstance.patch).toHaveBeenCalledWith('patch', { value: [1, 2], path: 'path.[$var].nested', pathVariables: { var: 20 } });
132
- expect(data).toEqual(RESPONSE_DATA);
133
- });
134
- it('.initWithOptions', async () => {
135
- const { fetch, axiosCreate } = createFetch('https://example.com', { options: { headers: { key: 'val' } } });
136
- Object.assign(fetch['axios'], {
137
- defaults: {
138
- baseURL: 'https://example.com/',
139
- headers: {
140
- common: {
141
- key: 'val',
142
- clientKey: CLIENT_KEY,
143
- authorization: AUTHORIZATION,
144
- },
145
- },
146
- },
147
- });
148
- const fetch2 = fetch.initWithOptions({ headers: { key2: 'val2' } });
149
- expect(fetch2).toBeInstanceOf(Fetch);
150
- expect(axiosCreate).toHaveBeenCalledTimes(2);
151
- expect(axiosCreate).toHaveBeenCalledWith({
152
- baseURL: 'https://example.com/',
153
- headers: {
154
- key: 'val',
155
- key2: 'val2',
156
- clientKey: CLIENT_KEY,
157
- authorization: AUTHORIZATION,
158
- },
159
- withCredentials: true,
160
- });
161
- });
162
- it('.setOptions', async () => {
163
- const { fetch } = createFetch('https://example.com', { options: { headers: { key: 'val' } } });
164
- Object.assign(fetch['axios'], {
165
- defaults: {
166
- baseURL: 'https://example.com/',
167
- headers: {
168
- common: {
169
- key: 'val',
170
- clientKey: CLIENT_KEY,
171
- authorization: AUTHORIZATION,
172
- },
173
- },
174
- },
175
- });
176
- fetch.setOptions({ headers: { key2: 'val2' } });
177
- expect(fetch['axios'].defaults).toEqual({
178
- baseURL: 'https://example.com/',
179
- headers: {
180
- common: {
181
- key: 'val',
182
- key2: 'val2',
183
- clientKey: CLIENT_KEY,
184
- authorization: AUTHORIZATION,
185
- },
186
- },
187
- });
188
- });
189
- });
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=index.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../src/index.test.ts"],"names":[],"mappings":""}
@@ -1,44 +0,0 @@
1
- /* eslint-disable dot-notation */
2
- import JWT from 'jsonwebtoken';
3
- import * as s from 'superstruct';
4
- import ApiSDK, { SGenerateClientParams, SParams } from './index.js';
5
- import { Client } from './client.js';
6
- import { PublicClient } from './publicClient.js';
7
- const createSDK = () => {
8
- const assert = jest.spyOn(s, 'assert');
9
- const sdk = new ApiSDK({
10
- clientKey: '123',
11
- apiEndpoint: 'endpoint',
12
- });
13
- return {
14
- sdk,
15
- assert,
16
- };
17
- };
18
- const USER_HASH = 'UserHash_16chars';
19
- const AUTHORIZATION = USER_HASH + JWT.sign({}, 'test');
20
- describe('ApiSDK', () => {
21
- beforeEach(() => {
22
- jest.restoreAllMocks();
23
- });
24
- it('.constructor', () => {
25
- const { sdk, assert } = createSDK();
26
- expect(sdk['clientKey']).toBe('123');
27
- expect(sdk['apiEndpoint']).toBe('endpoint');
28
- expect(assert).toHaveBeenCalledTimes(1);
29
- expect(assert).toHaveBeenCalledWith({ clientKey: '123', apiEndpoint: 'endpoint' }, SParams);
30
- });
31
- it('.generatePublicClient', () => {
32
- const { sdk, assert } = createSDK();
33
- const client = sdk.generatePublicClient();
34
- expect(client).toBeInstanceOf(PublicClient);
35
- expect(assert).toHaveBeenCalledTimes(1);
36
- });
37
- it('.generateClient', () => {
38
- const { sdk, assert } = createSDK();
39
- const client = sdk.generateClient({ authorization: AUTHORIZATION });
40
- expect(client).toBeInstanceOf(Client);
41
- expect(assert).toHaveBeenCalledTimes(2);
42
- expect(assert).toHaveBeenNthCalledWith(2, { authorization: AUTHORIZATION }, SGenerateClientParams);
43
- });
44
- });
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=analytics.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"analytics.test.d.ts","sourceRoot":"","sources":["../../../src/resources/analytics.test.ts"],"names":[],"mappings":""}
@@ -1,181 +0,0 @@
1
- /* eslint-disable dot-notation */
2
- import Analytics from './analytics/index.js';
3
- const createClient = (encrypted = false) => {
4
- const fetch = {
5
- post: jest.fn().mockResolvedValue(undefined),
6
- };
7
- const encryption = {
8
- encryptJSON: jest.fn().mockReturnValue('message'),
9
- };
10
- const analytics = new Analytics(fetch, encrypted ? { encryption: encryption } : undefined);
11
- return { fetch, analytics, encryption };
12
- };
13
- describe('Analytics', () => {
14
- it('.constructor', () => {
15
- const { fetch, analytics } = createClient();
16
- expect(analytics['fetch']).toBe(fetch);
17
- });
18
- it('.endpoint', () => {
19
- const { analytics } = createClient();
20
- expect(analytics['endpoint']).toBe('analytics');
21
- });
22
- it('.endpoint encrypted', () => {
23
- const { analytics } = createClient(true);
24
- expect(analytics['endpoint']).toBe('vf-ping');
25
- });
26
- it('.encryptedPayload throws error', () => {
27
- const { analytics } = createClient(true);
28
- delete analytics['encryption'];
29
- expect(() => analytics['encryptedPayload']({})).toThrow('Encryption should be provided!');
30
- });
31
- it('.track', async () => {
32
- const { fetch, analytics } = createClient();
33
- await analytics.track('');
34
- await analytics.track('Event');
35
- await analytics.track('Event 2', { properties: { id: 'id', value: 10 }, hashed: ['id'] });
36
- expect(fetch.post).toHaveBeenCalledWith('analytics/private-track', {
37
- event: 'Event',
38
- envIDs: undefined,
39
- hashed: undefined,
40
- properties: {},
41
- teamhashed: undefined,
42
- });
43
- expect(fetch.post).toHaveBeenCalledWith('analytics/private-track', {
44
- event: 'Event 2',
45
- hashed: ['id'],
46
- properties: { id: 'id', value: 10 },
47
- teamhashed: undefined,
48
- envIDs: undefined,
49
- });
50
- });
51
- it('.track encrypted', async () => {
52
- const { fetch, analytics } = createClient(true);
53
- await analytics.track('');
54
- await analytics.track('Event');
55
- await analytics.track('Event 2', { properties: { id: 'id', value: 10 }, hashed: ['id'] });
56
- expect(fetch.post).toHaveBeenCalledWith('vf-ping/private', { message: 'message' });
57
- expect(fetch.post).toHaveBeenCalledWith('vf-ping/private', { message: 'message' });
58
- });
59
- it('.trackPublic', async () => {
60
- const { fetch, analytics } = createClient();
61
- await analytics.trackPublic('');
62
- await analytics.trackPublic('Event');
63
- await analytics.trackPublic('Event 2', { anonymousID: '1', properties: { id: 'id', value: 10 }, hashed: ['id'] });
64
- expect(fetch.post).toHaveBeenCalledWith('analytics/track', {
65
- event: 'Event',
66
- anonymousID: undefined,
67
- envIDs: undefined,
68
- hashed: undefined,
69
- properties: {},
70
- teamhashed: undefined,
71
- });
72
- expect(fetch.post).toHaveBeenCalledWith('analytics/track', {
73
- event: 'Event 2',
74
- anonymousID: '1',
75
- hashed: ['id'],
76
- properties: { id: 'id', value: 10 },
77
- teamhashed: undefined,
78
- envIDs: undefined,
79
- });
80
- });
81
- it('.trackPublic encrypted', async () => {
82
- const { fetch, analytics } = createClient(true);
83
- await analytics.trackPublic('');
84
- await analytics.trackPublic('Event');
85
- await analytics.trackPublic('Event 2', { anonymousID: '1', properties: { id: 'id', value: 10 }, hashed: ['id'] });
86
- expect(fetch.post).toHaveBeenCalledWith('vf-ping', { message: 'message' });
87
- expect(fetch.post).toHaveBeenCalledWith('vf-ping', { message: 'message' });
88
- });
89
- it('.track with batching', async () => {
90
- const { fetch, analytics } = createClient();
91
- analytics.setBatching(true);
92
- analytics.track('');
93
- analytics.track('Event');
94
- analytics.track('Event 2', { properties: { id: 'id', value: 10 }, hashed: ['id'] });
95
- await Promise.resolve();
96
- expect(fetch.post).toHaveBeenCalledWith('analytics/private-batch-track', [
97
- { event: 'Event', envIDs: undefined, hashed: undefined, properties: {}, teamhashed: undefined },
98
- { event: 'Event 2', hashed: ['id'], properties: { id: 'id', value: 10 }, teamhashed: undefined, envIDs: undefined },
99
- ]);
100
- });
101
- it('.track encrypted with batching', async () => {
102
- const { fetch, analytics } = createClient(true);
103
- analytics.setBatching(true);
104
- analytics.track('');
105
- analytics.track('Event');
106
- analytics.track('Event 2', { properties: { id: 'id', value: 10 }, hashed: ['id'] });
107
- await Promise.resolve();
108
- expect(fetch.post).toHaveBeenCalledWith('vf-ping/private-batch', { message: 'message' });
109
- });
110
- it('.trackPublic with batching', async () => {
111
- const { fetch, analytics } = createClient();
112
- analytics.setBatching(true);
113
- analytics.trackPublic('');
114
- analytics.trackPublic('Event');
115
- analytics.trackPublic('Event 2', { anonymousID: '1', properties: { id: 'id', value: 10 }, hashed: ['id'] });
116
- await Promise.resolve();
117
- expect(fetch.post).toHaveBeenCalledWith('analytics/batch-track', [
118
- { event: 'Event', anonymousID: undefined, envIDs: undefined, hashed: undefined, properties: {}, teamhashed: undefined },
119
- { event: 'Event 2', anonymousID: '1', hashed: ['id'], properties: { id: 'id', value: 10 }, teamhashed: undefined, envIDs: undefined },
120
- ]);
121
- });
122
- it('.trackPublic encrypted with batching', async () => {
123
- const { fetch, analytics } = createClient(true);
124
- analytics.setBatching(true);
125
- analytics.trackPublic('');
126
- analytics.trackPublic('Event');
127
- analytics.trackPublic('Event 2', { anonymousID: '1', properties: { id: 'id', value: 10 }, hashed: ['id'] });
128
- await Promise.resolve();
129
- expect(fetch.post).toHaveBeenCalledWith('vf-ping/batch', { message: 'message' });
130
- });
131
- it('.flush', async () => {
132
- const { fetch, analytics } = createClient();
133
- analytics.setBatching(true);
134
- analytics.track('');
135
- analytics.track('Event');
136
- analytics.track('Event 2', { properties: { id: 'id', value: 10 }, hashed: ['id'] });
137
- analytics.flush();
138
- expect(fetch.post).toHaveBeenCalledWith('analytics/private-batch-track', [
139
- { event: 'Event', envIDs: undefined, hashed: undefined, properties: {}, teamhashed: undefined },
140
- { event: 'Event 2', hashed: ['id'], properties: { id: 'id', value: 10 }, teamhashed: undefined, envIDs: undefined },
141
- ]);
142
- });
143
- it('.flush handle error', async () => {
144
- const { fetch, analytics } = createClient();
145
- analytics.setBatching(true);
146
- analytics.track('');
147
- analytics.track('Event');
148
- analytics.track('Event 2', { properties: { id: 'id', value: 10 }, hashed: ['id'] });
149
- fetch.post.mockRejectedValue(new Error('error'));
150
- await analytics.flush();
151
- expect(analytics['privateQueue']['queue']).toEqual([
152
- { event: 'Event', envIDs: undefined, hashed: undefined, properties: {}, teamhashed: undefined },
153
- { event: 'Event 2', hashed: ['id'], properties: { id: 'id', value: 10 }, teamhashed: undefined, envIDs: undefined },
154
- ]);
155
- });
156
- it('.identify', async () => {
157
- const { fetch, analytics } = createClient();
158
- await analytics.identify({ traits: { id: 'id', value: 10 }, teamhashed: ['id'] });
159
- expect(fetch.post).toHaveBeenCalledWith('analytics/identify', {
160
- teamhashed: ['id'],
161
- traits: { id: 'id', value: 10 },
162
- envIDs: undefined,
163
- hashed: undefined,
164
- });
165
- });
166
- it('.identify encrypted', async () => {
167
- const { fetch, analytics } = createClient(true);
168
- await analytics.identify({ traits: { id: 'id', value: 10 }, teamhashed: ['id'] });
169
- expect(fetch.post).toHaveBeenCalledWith('vf-ping/user', { message: 'message' });
170
- });
171
- it('.identifyWorkspace', async () => {
172
- const { fetch, analytics } = createClient();
173
- await analytics.identifyWorkspace('id', { name: 'name' });
174
- expect(fetch.post).toHaveBeenCalledWith('analytics/workspace/identify', { id: 'id', name: 'name' });
175
- });
176
- it('.identifyWorkspace encrypted', async () => {
177
- const { fetch, analytics } = createClient(true);
178
- await analytics.identifyWorkspace('id', { name: 'name' });
179
- expect(fetch.post).toHaveBeenCalledWith('vf-ping/workspace', { message: 'message' });
180
- });
181
- });
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=apiKey.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"apiKey.test.d.ts","sourceRoot":"","sources":["../../../src/resources/apiKey.test.ts"],"names":[],"mappings":""}
@@ -1,85 +0,0 @@
1
- /* eslint-disable dot-notation */
2
- import APIKey from './apiKey.js';
3
- import Crud from './crud.js';
4
- const RESPONSE_DATA = { field1: '1', field2: { subfield: [1, 10] } };
5
- const createClient = () => {
6
- const fetch = {
7
- get: jest.fn(),
8
- post: jest.fn(),
9
- put: jest.fn(),
10
- patch: jest.fn(),
11
- delete: jest.fn(),
12
- };
13
- const crud = {
14
- get: jest.fn(),
15
- getByID: jest.fn(),
16
- post: jest.fn(),
17
- put: jest.fn(),
18
- patch: jest.fn(),
19
- delete: jest.fn(),
20
- };
21
- const resource = new APIKey(fetch);
22
- Crud.prototype['_get'] = crud.get;
23
- Crud.prototype['_getByID'] = crud.getByID;
24
- Crud.prototype['_post'] = crud.post;
25
- Crud.prototype['_put'] = crud.put;
26
- Crud.prototype['_patch'] = crud.patch;
27
- Crud.prototype['_delete'] = crud.delete;
28
- return {
29
- crud,
30
- fetch,
31
- resource,
32
- };
33
- };
34
- describe('ApiKeyResource', () => {
35
- it('.get', async () => {
36
- const { crud, resource } = createClient();
37
- crud.getByID.mockResolvedValue(RESPONSE_DATA);
38
- const data = await resource.get('1');
39
- expect(crud.getByID).toHaveBeenCalledTimes(1);
40
- expect(crud.getByID).toHaveBeenCalledWith('1');
41
- expect(data).toBe(RESPONSE_DATA);
42
- });
43
- it('.create', async () => {
44
- const { crud, resource } = createClient();
45
- crud.post.mockResolvedValue(RESPONSE_DATA);
46
- const body = {
47
- _id: '1',
48
- creatorID: 1,
49
- projectID: '1',
50
- name: 'name',
51
- variables: [],
52
- platformData: {
53
- slots: [],
54
- intents: [],
55
- settings: {},
56
- publishing: {},
57
- },
58
- rootDiagramID: '1',
59
- };
60
- const data = await resource.create('1', body);
61
- expect(crud.post).toHaveBeenCalledTimes(1);
62
- expect(crud.post).toHaveBeenCalledWith({ ...body, workspaceID: '1' });
63
- expect(data).toBe(RESPONSE_DATA);
64
- });
65
- it('.update', async () => {
66
- const { crud, resource } = createClient();
67
- crud.put.mockResolvedValue(RESPONSE_DATA);
68
- const body = {
69
- name: 'new name',
70
- variables: ['aaaa'],
71
- };
72
- const data = await resource.update('1', body);
73
- expect(crud.put).toHaveBeenCalledTimes(1);
74
- expect(crud.put).toHaveBeenCalledWith('1', body);
75
- expect(data).toBe(RESPONSE_DATA);
76
- });
77
- it('.delete', async () => {
78
- const { crud, resource } = createClient();
79
- crud.delete.mockResolvedValue(RESPONSE_DATA);
80
- const data = await resource.delete('1');
81
- expect(crud.delete).toHaveBeenCalledTimes(1);
82
- expect(crud.delete).toHaveBeenCalledWith('1');
83
- expect(data).toBe(RESPONSE_DATA);
84
- });
85
- });
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=base.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"base.test.d.ts","sourceRoot":"","sources":["../../../src/resources/base.test.ts"],"names":[],"mappings":""}
@@ -1,52 +0,0 @@
1
- /* eslint-disable dot-notation */
2
- import BaseResource from './base.js';
3
- const createClient = () => {
4
- const fetch = {
5
- get: jest.fn(),
6
- post: jest.fn(),
7
- put: jest.fn(),
8
- patch: jest.fn(),
9
- delete: jest.fn(),
10
- initWithOptions: jest.fn(),
11
- };
12
- class Resource {
13
- }
14
- const resource = new BaseResource({
15
- fetch: fetch,
16
- clazz: Resource,
17
- endpoint: 'endpoint',
18
- });
19
- return {
20
- fetch,
21
- resource,
22
- Resource,
23
- };
24
- };
25
- describe('BaseResource', () => {
26
- it('.constructor', () => {
27
- const { fetch, resource, Resource } = createClient();
28
- expect(resource['fetch']).toBe(fetch);
29
- expect(resource['clazz']).toBe(Resource);
30
- expect(resource['endpoint']).toBe('endpoint');
31
- });
32
- it('.options', () => {
33
- const { fetch, resource, Resource } = createClient();
34
- const instance = resource.options({
35
- headers: { key: 'val' },
36
- });
37
- expect(instance).toBeInstanceOf(Resource);
38
- expect(fetch.initWithOptions).toHaveBeenCalledWith({
39
- headers: { key: 'val' },
40
- });
41
- });
42
- it('._getFieldsQuery', () => {
43
- const { resource } = createClient();
44
- expect(resource['_getFieldsQuery']()).toBe('');
45
- expect(resource['_getFieldsQuery'](['name'])).toBe('?fields=name');
46
- });
47
- it('._getIDsQuery', () => {
48
- const { resource } = createClient();
49
- expect(resource['_getIDsQuery']('name', [])).toBe('');
50
- expect(resource['_getIDsQuery']('name', ['1', '2'])).toBe('?name=1&name=2');
51
- });
52
- });
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=crud.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"crud.test.d.ts","sourceRoot":"","sources":["../../../src/resources/crud.test.ts"],"names":[],"mappings":""}