@insignia-education/api-sdk-js 0.15.44 → 0.15.47

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 (90) hide show
  1. package/AGENTS.md +5 -0
  2. package/package.json +1 -1
  3. package/src/api/v1/Employee.js +25 -0
  4. package/src/api/v1/Organizations.js +19 -1
  5. package/src/api/v1/Users.js +17 -0
  6. package/src/api/v1/index.js +2 -0
  7. package/tests/helpers.js +5 -0
  8. package/tests/integration/api/v1/organizations.test.js +83 -19
  9. package/coverage/clover.xml +0 -129
  10. package/coverage/coverage-final.json +0 -2
  11. package/coverage/lcov-report/Accounts.js.html +0 -151
  12. package/coverage/lcov-report/Auth.js.html +0 -130
  13. package/coverage/lcov-report/Categories.js.html +0 -121
  14. package/coverage/lcov-report/Changelogs.js.html +0 -118
  15. package/coverage/lcov-report/Client.js.html +0 -445
  16. package/coverage/lcov-report/Configs.js.html +0 -121
  17. package/coverage/lcov-report/ContactForms.js.html +0 -121
  18. package/coverage/lcov-report/ConversationalTopics.js.html +0 -121
  19. package/coverage/lcov-report/Countries.js.html +0 -112
  20. package/coverage/lcov-report/Coupons.js.html +0 -121
  21. package/coverage/lcov-report/Courses.js.html +0 -328
  22. package/coverage/lcov-report/Currencies.js.html +0 -115
  23. package/coverage/lcov-report/Files.js.html +0 -115
  24. package/coverage/lcov-report/Forums.js.html +0 -157
  25. package/coverage/lcov-report/Hashes.js.html +0 -118
  26. package/coverage/lcov-report/Insignias.js.html +0 -121
  27. package/coverage/lcov-report/Languages.js.html +0 -121
  28. package/coverage/lcov-report/MailBlacklist.js.html +0 -118
  29. package/coverage/lcov-report/Organizations.js.html +0 -118
  30. package/coverage/lcov-report/Quizzes.js.html +0 -181
  31. package/coverage/lcov-report/ShortLinks.js.html +0 -121
  32. package/coverage/lcov-report/Surveys.js.html +0 -181
  33. package/coverage/lcov-report/Tags.js.html +0 -121
  34. package/coverage/lcov-report/Taxes.js.html +0 -121
  35. package/coverage/lcov-report/Teacher.js.html +0 -196
  36. package/coverage/lcov-report/Translations.js.html +0 -121
  37. package/coverage/lcov-report/UserTypes.js.html +0 -121
  38. package/coverage/lcov-report/Users.js.html +0 -331
  39. package/coverage/lcov-report/Zoom.js.html +0 -154
  40. package/coverage/lcov-report/base.css +0 -224
  41. package/coverage/lcov-report/block-navigation.js +0 -87
  42. package/coverage/lcov-report/favicon.png +0 -0
  43. package/coverage/lcov-report/index.html +0 -116
  44. package/coverage/lcov-report/prettify.css +0 -1
  45. package/coverage/lcov-report/prettify.js +0 -2
  46. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  47. package/coverage/lcov-report/sorter.js +0 -210
  48. package/coverage/lcov-report/src/Client.js.html +0 -445
  49. package/coverage/lcov-report/src/api/index.html +0 -116
  50. package/coverage/lcov-report/src/api/index.js.html +0 -127
  51. package/coverage/lcov-report/src/api/v1/Accounts.js.html +0 -151
  52. package/coverage/lcov-report/src/api/v1/Auth.js.html +0 -151
  53. package/coverage/lcov-report/src/api/v1/Categories.js.html +0 -121
  54. package/coverage/lcov-report/src/api/v1/Changelogs.js.html +0 -118
  55. package/coverage/lcov-report/src/api/v1/Configs.js.html +0 -121
  56. package/coverage/lcov-report/src/api/v1/ContactForms.js.html +0 -121
  57. package/coverage/lcov-report/src/api/v1/ConversationalTopics.js.html +0 -121
  58. package/coverage/lcov-report/src/api/v1/Countries.js.html +0 -112
  59. package/coverage/lcov-report/src/api/v1/Coupons.js.html +0 -121
  60. package/coverage/lcov-report/src/api/v1/Courses.js.html +0 -379
  61. package/coverage/lcov-report/src/api/v1/Currencies.js.html +0 -115
  62. package/coverage/lcov-report/src/api/v1/Files.js.html +0 -160
  63. package/coverage/lcov-report/src/api/v1/Forums.js.html +0 -157
  64. package/coverage/lcov-report/src/api/v1/Hashes.js.html +0 -118
  65. package/coverage/lcov-report/src/api/v1/Insignias.js.html +0 -121
  66. package/coverage/lcov-report/src/api/v1/Languages.js.html +0 -121
  67. package/coverage/lcov-report/src/api/v1/MailBlacklist.js.html +0 -118
  68. package/coverage/lcov-report/src/api/v1/Organizations.js.html +0 -118
  69. package/coverage/lcov-report/src/api/v1/PaymentMethods.js.html +0 -112
  70. package/coverage/lcov-report/src/api/v1/Payments.js.html +0 -121
  71. package/coverage/lcov-report/src/api/v1/Quizzes.js.html +0 -181
  72. package/coverage/lcov-report/src/api/v1/ShortLinks.js.html +0 -121
  73. package/coverage/lcov-report/src/api/v1/Surveys.js.html +0 -181
  74. package/coverage/lcov-report/src/api/v1/Tags.js.html +0 -121
  75. package/coverage/lcov-report/src/api/v1/Taxes.js.html +0 -121
  76. package/coverage/lcov-report/src/api/v1/Teacher.js.html +0 -220
  77. package/coverage/lcov-report/src/api/v1/Translations.js.html +0 -121
  78. package/coverage/lcov-report/src/api/v1/UserTypes.js.html +0 -121
  79. package/coverage/lcov-report/src/api/v1/Users.js.html +0 -457
  80. package/coverage/lcov-report/src/api/v1/Zoom.js.html +0 -124
  81. package/coverage/lcov-report/src/api/v1/index.html +0 -536
  82. package/coverage/lcov-report/src/api/v1/index.js.html +0 -301
  83. package/coverage/lcov-report/src/index.html +0 -131
  84. package/coverage/lcov-report/src/index.js.html +0 -109
  85. package/coverage/lcov-report/tests/helpers.js.html +0 -130
  86. package/coverage/lcov-report/tests/index.html +0 -116
  87. package/coverage/lcov-report/tests/integration/cookieJar.js.html +0 -229
  88. package/coverage/lcov-report/tests/integration/index.html +0 -116
  89. package/coverage/lcov.info +0 -200
  90. package/coverage/test-report.html +0 -277
package/AGENTS.md CHANGED
@@ -60,6 +60,11 @@ api.users.cashReceivers();
60
60
  2. Register it in `src/api/v1/index.js`
61
61
  3. Write integration tests in `tests/integration/api/v1/resource-name.test.js`
62
62
 
63
+ Verify a new/changed method by running its integration test against a locally running `api`
64
+ (`npm test`), not by scripting one-off `curl`/fetch calls in a shell. The integration test is the
65
+ artifact that proves the SDK and the API agree, and it's what keeps both repos in sync going
66
+ forward — a curl call proves nothing once the terminal closes.
67
+
63
68
  ## Testing coverage requirements
64
69
 
65
70
  Same pattern as `api`'s endpoint tests (see its `AGENTS.md`), applied per SDK method:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@insignia-education/api-sdk-js",
3
- "version": "0.15.44",
3
+ "version": "0.15.47",
4
4
  "description": "JavaScript SDK for the Insignia Education API",
5
5
  "main": "index.js",
6
6
  "type": "module",
@@ -0,0 +1,25 @@
1
+ export default class Employee {
2
+ #client;
3
+
4
+ constructor(client) {
5
+ this.#client = client;
6
+ }
7
+
8
+ dashboard() {
9
+ const base = '/employee/dashboard';
10
+ return {
11
+ /** All teachers' sessions for a given date (YYYY-MM-DD). */
12
+ sessions: (date) => this.#client.get(`${base}/sessions`, { date }),
13
+ /** All sessions for one course_date, any teacher. */
14
+ courseDateSessions: (courseDateId) => this.#client.get(`${base}/course-dates/${courseDateId}/sessions`),
15
+ /** Mark a student's attendance on any teacher's session. */
16
+ markAttendance: (sessionId, studentId, present) =>
17
+ this.#client.patch(`${base}/sessions/${sessionId}/attendance`, { student_id: studentId, present }),
18
+ /** Mark whether the assigned teacher showed up to a session. */
19
+ markTeacherPresent: (sessionId, present) =>
20
+ this.#client.patch(`${base}/sessions/${sessionId}/teacher-present`, { present }),
21
+ /** Users with all 3 KYC files uploaded but not yet verified. */
22
+ kycPending: () => this.#client.get(`${base}/kyc-pending`),
23
+ };
24
+ }
25
+ }
@@ -5,7 +5,25 @@ export default class Organizations {
5
5
  this.#client = client;
6
6
  }
7
7
 
8
- get(id = null) { return id ? this.#client.get(`/organizations/${id}`) : this.#client.get('/organizations'); }
8
+ /** No id: "my organizations" (all organizations if employee+, else only owned), paginated. */
9
+ get(id = null, { page = 1, perPage = 15 } = {}) {
10
+ return id
11
+ ? this.#client.get(`/organizations/${id}`)
12
+ : this.#client.get('/organizations', { page, per_page: perPage });
13
+ }
14
+ /** Employee-only. */
9
15
  create(data) { return this.#client.put('/organizations', data); }
16
+ /** user_id (owner reassignment) is applied only when the caller is employee-and-above. */
10
17
  edit(id, data) { return this.#client.patch(`/organizations/${id}`, data); }
18
+
19
+ members(id) {
20
+ const base = `/organizations/${id}/members`;
21
+ const client = this.#client;
22
+ return {
23
+ get: () => client.get(base),
24
+ courses: (userId) => client.get(`${base}/${userId}/courses`),
25
+ /** Creates a real UserPayment for this member — same payload shape as users(id).payments().create(). */
26
+ createPayment: (userId, data) => client.put(`${base}/${userId}/payments`, data),
27
+ };
28
+ }
11
29
  }
@@ -19,6 +19,8 @@ export default class Users {
19
19
  teachers({ page = 1, perPage = 15 } = {}) {
20
20
  return this.#client.get('/users/teachers', { page, per_page: perPage });
21
21
  }
22
+ /** Employee-only: users eligible to own/reassign an organization (organization-and-above). */
23
+ organizationOwners() { return this.#client.get('/users/organization-owners'); }
22
24
  edit(id, data) { return this.#client.patch(`/users/${id}`, data); }
23
25
 
24
26
  #nested(userId, path) {
@@ -136,6 +138,9 @@ export default class Users {
136
138
  /** GET /users/{orgId}/organization/members — members where manager_id = orgId. */
137
139
  organizationMembers(orgId) { return this.#client.get(`/users/${orgId}/organization/members`); }
138
140
 
141
+ /** GET /users/{orgId}/organization/students — distinct students with a course_count, for the Students tab list. */
142
+ organizationStudents(orgId) { return this.#client.get(`/users/${orgId}/organization/students`); }
143
+
139
144
  /** Employee-only: everything this user already owns (courses/sessions/quizzes). */
140
145
  ownedItems(userId) { return this.#client.get(`/users/${userId}/owned-items`); }
141
146
 
@@ -153,4 +158,16 @@ export default class Users {
153
158
  get: () => client.get(base),
154
159
  };
155
160
  }
161
+
162
+ /** KYC verification for this user. markUploaded: self or staff. approve/reject: Employee-tier only. */
163
+ kyc(userId) {
164
+ const base = `/users/${userId}/kyc`;
165
+ const client = this.#client;
166
+ return {
167
+ /** type: 'dni-front' | 'dni-back' | 'selfie'. */
168
+ markUploaded: (type) => client.patch(`${base}/${type}`),
169
+ approve: () => client.post(`${base}/approve`),
170
+ reject: () => client.post(`${base}/reject`),
171
+ };
172
+ }
156
173
  }
@@ -13,6 +13,7 @@ import Courses from './Courses.js';
13
13
  import Currencies from './Currencies.js';
14
14
  import Dashboard from './Dashboard.js';
15
15
  import EducationCenter from './EducationCenter.js';
16
+ import Employee from './Employee.js';
16
17
  import Files from './Files.js';
17
18
  import Forums from './Forums.js';
18
19
  import Hashes from './Hashes.js';
@@ -66,6 +67,7 @@ export default class InsigniaApiV1 extends InsigniaApi {
66
67
  this.currencies = new Currencies(this);
67
68
  this.dashboard = new Dashboard(this);
68
69
  this.educationCenter = new EducationCenter(this);
70
+ this.employee = new Employee(this);
69
71
  this.files = new Files(this);
70
72
  this.forums = new Forums(this);
71
73
  this.hashes = new Hashes(this);
package/tests/helpers.js CHANGED
@@ -2,14 +2,19 @@ import InsigniaApiV1 from '../src/api/v1/index.js';
2
2
 
3
3
  export const api = new InsigniaApiV1(process.env.INSIGNIA_EDUCATION_API_BASE_URL);
4
4
 
5
+ // captcha_token is required by LoginRequest; relies on the local API's TURNSTILE_SECRET_KEY
6
+ // being set to Cloudflare's documented "always passes" testing secret
7
+ // (1x0000000000000000000000000000000AA), which accepts any token value.
5
8
  export const loginCustomer = () => api.auth.login({
6
9
  email: process.env.TEST_EMAIL,
7
10
  password: process.env.TEST_PASSWORD,
11
+ captcha_token: 'test',
8
12
  });
9
13
 
10
14
  export const loginAdmin = () => api.auth.login({
11
15
  email: process.env.TEST_EMAIL_ADMIN,
12
16
  password: process.env.TEST_PASSWORD_ADMIN,
17
+ captcha_token: 'test',
13
18
  });
14
19
 
15
20
 
@@ -1,25 +1,89 @@
1
- import InsigniaApiV1 from '../../../../src/api/v1/index.js';
1
+ import {
2
+ api,
3
+ loginCustomer,
4
+ logout,
5
+ } from '../../../helpers.js';
2
6
 
3
- const api = new InsigniaApiV1(process.env.INSIGNIA_EDUCATION_API_BASE_URL);
7
+ // Permission boundaries below the organization-and-above gate (plain customer/student,
8
+ // 403) are covered by the api repo's own PHPUnit suite (OrganizationControllerTest) —
9
+ // no test account below EMPLOYEE-tier is available in this environment's .env.test.
10
+ //
11
+ // Client#request() throws on non-2xx (err.status, err.data) rather than resolving —
12
+ // error cases below assert against a rejected promise, not a resolved {success,status}.
4
13
 
5
- const login = () => api.auth.login({
6
- email: process.env.TEST_EMAIL,
7
- password: process.env.TEST_PASSWORD,
14
+ describe('api/v1/organizations', () => {
15
+ test('get | unauthenticated', async () => {
16
+ await expect(api.organizations.get()).rejects.toMatchObject({ status: 401 });
17
+ });
18
+
19
+ test('create | employee-and-above', async () => {
20
+ await loginCustomer();
21
+ const response = await api.organizations.create({ nice_name: 'SDK Test Org' });
22
+ expect(response["id"]).toBeDefined();
23
+ expect(response["nice_name"]).toBe('SDK Test Org');
24
+ expect(response["user_id"]).toBeDefined();
25
+ });
26
+
27
+ test('get(id) | shape', async () => {
28
+ await loginCustomer();
29
+ const created = await api.organizations.create({ nice_name: 'SDK Test Org 2' });
30
+ const response = await api.organizations.get(created.id);
31
+ expect(response["id"]).toBe(created.id);
32
+ expect(response["nice_name"]).toBe('SDK Test Org 2');
33
+ expect(response["legal_name"]).toBeDefined();
34
+ expect(response["fiscal_number"]).toBeDefined();
35
+ expect(response["user_id"]).toBeDefined();
36
+ expect(response["created_at"]).toBeDefined();
37
+ expect(response["updated_at"]).toBeDefined();
38
+ });
39
+
40
+ test('edit', async () => {
41
+ await loginCustomer();
42
+ const created = await api.organizations.create({ nice_name: 'SDK Test Org 3' });
43
+ const response = await api.organizations.edit(created.id, { nice_name: 'SDK Test Org 3 Edited' });
44
+ expect(response["nice_name"]).toBe('SDK Test Org 3 Edited');
45
+ });
46
+
47
+ test('members(id).get() | empty for a freshly created organization', async () => {
48
+ await loginCustomer();
49
+ const created = await api.organizations.create({ nice_name: 'SDK Test Org 4' });
50
+ const response = await api.organizations.members(created.id).get();
51
+ expect(Object.values(response)).toEqual([]);
52
+ });
53
+
54
+ test('members(id).courses(userId) | rejects a non-member user_id', async () => {
55
+ await loginCustomer();
56
+ const created = await api.organizations.create({ nice_name: 'SDK Test Org 5' });
57
+ await expect(api.organizations.members(created.id).courses(created.user_id))
58
+ .rejects.toMatchObject({ status: 422 });
59
+ });
60
+
61
+ test('members(id).createPayment(userId, data) | reaches validation, not the OwnerOrStaff 403', async () => {
62
+ await loginCustomer();
63
+ const created = await api.organizations.create({ nice_name: 'SDK Test Org 6' });
64
+ // Empty payload — asserts the route/method wiring bypasses OwnerOrStaff and lands
65
+ // in UserPaymentCreateRequest validation (422), never a 403.
66
+ await expect(api.organizations.members(created.id).createPayment(created.user_id, {}))
67
+ .rejects.toMatchObject({ status: 422 });
68
+ });
8
69
  });
9
70
 
10
- describe('api/v1/organizations', () => {
11
- test('get | authenticated', async () => {
12
- await login();
13
- await api.organizations.get()
14
- .then(response => {
15
- response = Object.values(response);
16
- expect(Array.isArray(response)).toBe(true);
17
- response.forEach(org => {
18
- expect(org["id"]).toBeDefined();
19
- expect(org["name"]).toBeDefined();
20
- expect(org["created_at"]).toBeDefined();
21
- expect(org["updated_at"]).toBeDefined();
22
- });
23
- });
71
+ describe('api/v1/users/organization-owners', () => {
72
+ test('get | unauthenticated', async () => {
73
+ // Runs after earlier logged-in tests share this file's `api` client instance —
74
+ // must explicitly log out, or its session cookie makes this look authenticated.
75
+ await logout();
76
+ await expect(api.users.organizationOwners()).rejects.toMatchObject({ status: 401 });
77
+ });
78
+
79
+ test('get | employee-and-above', async () => {
80
+ await loginCustomer();
81
+ const response = Object.values(await api.users.organizationOwners());
82
+ expect(Array.isArray(response)).toBe(true);
83
+ response.forEach(user => {
84
+ expect(user["id"]).toBeDefined();
85
+ expect(user["name"]).toBeDefined();
86
+ expect(user["type_id"]).toBeDefined();
87
+ });
24
88
  });
25
89
  });
@@ -1,129 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <coverage generated="1784989496629" clover="3.2.0">
3
- <project timestamp="1784989496629" name="All files">
4
- <metrics statements="120" coveredstatements="92" conditionals="43" coveredconditionals="35" methods="14" coveredmethods="13" elements="177" coveredelements="140" complexity="0" loc="120" ncloc="120" packages="1" files="1" classes="1"/>
5
- <file name="Client.js" path="/Users/roquendo/code/insignia-education/api-sdk-js/src/Client.js">
6
- <metrics statements="120" coveredstatements="92" conditionals="43" coveredconditionals="35" methods="14" coveredmethods="13"/>
7
- <line num="1" count="1" type="stmt"/>
8
- <line num="2" count="1" type="cond" truecount="1" falsecount="0"/>
9
- <line num="3" count="1" type="stmt"/>
10
- <line num="4" count="1" type="stmt"/>
11
- <line num="5" count="1" type="cond" truecount="1" falsecount="0"/>
12
- <line num="6" count="27" type="stmt"/>
13
- <line num="7" count="27" type="stmt"/>
14
- <line num="8" count="1" type="stmt"/>
15
- <line num="9" count="1" type="cond" truecount="1" falsecount="0"/>
16
- <line num="10" count="27" type="stmt"/>
17
- <line num="11" count="26" type="cond" truecount="2" falsecount="0"/>
18
- <line num="12" count="27" type="cond" truecount="1" falsecount="0"/>
19
- <line num="13" count="27" type="stmt"/>
20
- <line num="14" count="27" type="cond" truecount="2" falsecount="0"/>
21
- <line num="15" count="27" type="stmt"/>
22
- <line num="16" count="27" type="stmt"/>
23
- <line num="17" count="27" type="stmt"/>
24
- <line num="18" count="1" type="stmt"/>
25
- <line num="19" count="1" type="cond" truecount="1" falsecount="0"/>
26
- <line num="20" count="23" type="stmt"/>
27
- <line num="21" count="23" type="stmt"/>
28
- <line num="22" count="23" type="stmt"/>
29
- <line num="23" count="23" type="stmt"/>
30
- <line num="24" count="23" type="stmt"/>
31
- <line num="25" count="23" type="stmt"/>
32
- <line num="26" count="23" type="cond" truecount="1" falsecount="0"/>
33
- <line num="27" count="23" type="stmt"/>
34
- <line num="28" count="23" type="stmt"/>
35
- <line num="29" count="23" type="stmt"/>
36
- <line num="30" count="1" type="stmt"/>
37
- <line num="31" count="1" type="cond" truecount="1" falsecount="0"/>
38
- <line num="32" count="23" type="cond" truecount="2" falsecount="0"/>
39
- <line num="33" count="1" type="stmt"/>
40
- <line num="34" count="1" type="stmt"/>
41
- <line num="35" count="1" type="cond" truecount="1" falsecount="0"/>
42
- <line num="36" count="1" type="stmt"/>
43
- <line num="37" count="1" type="stmt"/>
44
- <line num="38" count="1" type="stmt"/>
45
- <line num="39" count="1" type="cond" truecount="1" falsecount="0"/>
46
- <line num="40" count="23" type="cond" truecount="0" falsecount="1"/>
47
- <line num="41" count="23" type="stmt"/>
48
- <line num="42" count="23" type="stmt"/>
49
- <line num="43" count="23" type="cond" truecount="1" falsecount="0"/>
50
- <line num="44" count="1" type="cond" truecount="1" falsecount="0"/>
51
- <line num="45" count="23" type="cond" truecount="1" falsecount="1"/>
52
- <line num="46" count="23" type="stmt"/>
53
- <line num="47" count="23" type="cond" truecount="1" falsecount="0"/>
54
- <line num="48" count="1" type="stmt"/>
55
- <line num="49" count="1" type="stmt"/>
56
- <line num="50" count="1" type="cond" truecount="0" falsecount="1"/>
57
- <line num="51" count="1" type="stmt"/>
58
- <line num="52" count="1" type="stmt"/>
59
- <line num="53" count="1" type="stmt"/>
60
- <line num="54" count="23" type="stmt"/>
61
- <line num="55" count="1" type="stmt"/>
62
- <line num="56" count="1" type="cond" truecount="1" falsecount="0"/>
63
- <line num="57" count="23" type="cond" truecount="2" falsecount="0"/>
64
- <line num="58" count="22" type="stmt"/>
65
- <line num="59" count="22" type="stmt"/>
66
- <line num="60" count="23" type="cond" truecount="1" falsecount="0"/>
67
- <line num="61" count="1" type="stmt"/>
68
- <line num="62" count="1" type="cond" truecount="0" falsecount="1"/>
69
- <line num="63" count="1" type="cond" truecount="1" falsecount="0"/>
70
- <line num="64" count="21" type="stmt"/>
71
- <line num="65" count="21" type="stmt"/>
72
- <line num="66" count="23" type="cond" truecount="1" falsecount="0"/>
73
- <line num="67" count="1" type="stmt"/>
74
- <line num="68" count="1" type="stmt"/>
75
- <line num="69" count="1" type="cond" truecount="0" falsecount="1"/>
76
- <line num="70" count="0" type="stmt"/>
77
- <line num="71" count="0" type="stmt"/>
78
- <line num="72" count="23" type="stmt"/>
79
- <line num="73" count="1" type="stmt"/>
80
- <line num="74" count="1" type="cond" truecount="1" falsecount="0"/>
81
- <line num="75" count="23" type="stmt"/>
82
- <line num="76" count="23" type="cond" truecount="1" falsecount="0"/>
83
- <line num="77" count="23" type="stmt"/>
84
- <line num="78" count="23" type="stmt"/>
85
- <line num="79" count="23" type="cond" truecount="0" falsecount="1"/>
86
- <line num="80" count="0" type="stmt"/>
87
- <line num="81" count="0" type="stmt"/>
88
- <line num="82" count="0" type="stmt"/>
89
- <line num="83" count="0" type="stmt"/>
90
- <line num="84" count="0" type="stmt"/>
91
- <line num="85" count="23" type="stmt"/>
92
- <line num="86" count="23" type="cond" truecount="3" falsecount="0"/>
93
- <line num="87" count="23" type="stmt"/>
94
- <line num="88" count="1" type="stmt"/>
95
- <line num="89" count="1" type="stmt"/>
96
- <line num="90" count="0" type="stmt"/>
97
- <line num="91" count="0" type="stmt"/>
98
- <line num="92" count="0" type="stmt"/>
99
- <line num="93" count="0" type="stmt"/>
100
- <line num="94" count="0" type="stmt"/>
101
- <line num="95" count="0" type="stmt"/>
102
- <line num="96" count="0" type="stmt"/>
103
- <line num="97" count="0" type="stmt"/>
104
- <line num="98" count="0" type="stmt"/>
105
- <line num="99" count="0" type="stmt"/>
106
- <line num="100" count="0" type="stmt"/>
107
- <line num="101" count="0" type="stmt"/>
108
- <line num="102" count="0" type="stmt"/>
109
- <line num="103" count="0" type="stmt"/>
110
- <line num="104" count="0" type="stmt"/>
111
- <line num="105" count="0" type="stmt"/>
112
- <line num="106" count="1" type="stmt"/>
113
- <line num="107" count="1" type="cond" truecount="1" falsecount="0"/>
114
- <line num="108" count="14" type="cond" truecount="0" falsecount="2"/>
115
- <line num="109" count="0" type="stmt"/>
116
- <line num="110" count="0" type="stmt"/>
117
- <line num="111" count="0" type="stmt"/>
118
- <line num="112" count="0" type="stmt"/>
119
- <line num="113" count="0" type="stmt"/>
120
- <line num="114" count="14" type="stmt"/>
121
- <line num="115" count="14" type="stmt"/>
122
- <line num="116" count="1" type="cond" truecount="1" falsecount="0"/>
123
- <line num="117" count="1" type="cond" truecount="1" falsecount="0"/>
124
- <line num="118" count="1" type="cond" truecount="1" falsecount="0"/>
125
- <line num="119" count="1" type="cond" truecount="1" falsecount="0"/>
126
- <line num="120" count="1" type="stmt"/>
127
- </file>
128
- </project>
129
- </coverage>
@@ -1,2 +0,0 @@
1
- {"/Users/roquendo/code/insignia-education/api-sdk-js/src/Client.js": {"path":"/Users/roquendo/code/insignia-education/api-sdk-js/src/Client.js","all":false,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":37}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":13}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":25}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":0}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":26}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":57}},"6":{"start":{"line":7,"column":0},"end":{"line":7,"column":5}},"7":{"start":{"line":8,"column":0},"end":{"line":8,"column":0}},"8":{"start":{"line":9,"column":0},"end":{"line":9,"column":30}},"9":{"start":{"line":10,"column":0},"end":{"line":10,"column":57}},"10":{"start":{"line":11,"column":0},"end":{"line":11,"column":66}},"11":{"start":{"line":12,"column":0},"end":{"line":12,"column":19}},"12":{"start":{"line":13,"column":0},"end":{"line":13,"column":0}},"13":{"start":{"line":14,"column":0},"end":{"line":14,"column":75}},"14":{"start":{"line":15,"column":0},"end":{"line":15,"column":45}},"15":{"start":{"line":16,"column":0},"end":{"line":16,"column":23}},"16":{"start":{"line":17,"column":0},"end":{"line":17,"column":5}},"17":{"start":{"line":18,"column":0},"end":{"line":18,"column":0}},"18":{"start":{"line":19,"column":0},"end":{"line":19,"column":16}},"19":{"start":{"line":20,"column":0},"end":{"line":20,"column":25}},"20":{"start":{"line":21,"column":0},"end":{"line":21,"column":41}},"21":{"start":{"line":22,"column":0},"end":{"line":22,"column":47}},"22":{"start":{"line":23,"column":0},"end":{"line":23,"column":10}},"23":{"start":{"line":24,"column":0},"end":{"line":24,"column":0}},"24":{"start":{"line":25,"column":0},"end":{"line":25,"column":44}},"25":{"start":{"line":26,"column":0},"end":{"line":26,"column":44}},"26":{"start":{"line":27,"column":0},"end":{"line":27,"column":0}},"27":{"start":{"line":28,"column":0},"end":{"line":28,"column":23}},"28":{"start":{"line":29,"column":0},"end":{"line":29,"column":5}},"29":{"start":{"line":30,"column":0},"end":{"line":30,"column":0}},"30":{"start":{"line":31,"column":0},"end":{"line":31,"column":21}},"31":{"start":{"line":32,"column":0},"end":{"line":32,"column":83}},"32":{"start":{"line":33,"column":0},"end":{"line":33,"column":0}},"33":{"start":{"line":34,"column":0},"end":{"line":34,"column":50}},"34":{"start":{"line":35,"column":0},"end":{"line":35,"column":55}},"35":{"start":{"line":36,"column":0},"end":{"line":36,"column":24}},"36":{"start":{"line":37,"column":0},"end":{"line":37,"column":5}},"37":{"start":{"line":38,"column":0},"end":{"line":38,"column":0}},"38":{"start":{"line":39,"column":0},"end":{"line":39,"column":29}},"39":{"start":{"line":40,"column":0},"end":{"line":40,"column":50}},"40":{"start":{"line":41,"column":0},"end":{"line":41,"column":0}},"41":{"start":{"line":42,"column":0},"end":{"line":42,"column":41}},"42":{"start":{"line":43,"column":0},"end":{"line":43,"column":70}},"43":{"start":{"line":44,"column":0},"end":{"line":44,"column":36}},"44":{"start":{"line":45,"column":0},"end":{"line":45,"column":61}},"45":{"start":{"line":46,"column":0},"end":{"line":46,"column":0}},"46":{"start":{"line":47,"column":0},"end":{"line":47,"column":45}},"47":{"start":{"line":48,"column":0},"end":{"line":48,"column":48}},"48":{"start":{"line":49,"column":0},"end":{"line":49,"column":48}},"49":{"start":{"line":50,"column":0},"end":{"line":50,"column":43}},"50":{"start":{"line":51,"column":0},"end":{"line":51,"column":0}},"51":{"start":{"line":52,"column":0},"end":{"line":52,"column":83}},"52":{"start":{"line":53,"column":0},"end":{"line":53,"column":9}},"53":{"start":{"line":54,"column":0},"end":{"line":54,"column":5}},"54":{"start":{"line":55,"column":0},"end":{"line":55,"column":0}},"55":{"start":{"line":56,"column":0},"end":{"line":56,"column":36}},"56":{"start":{"line":57,"column":0},"end":{"line":57,"column":62}},"57":{"start":{"line":58,"column":0},"end":{"line":58,"column":0}},"58":{"start":{"line":59,"column":0},"end":{"line":59,"column":13}},"59":{"start":{"line":60,"column":0},"end":{"line":60,"column":54}},"60":{"start":{"line":61,"column":0},"end":{"line":61,"column":51}},"61":{"start":{"line":62,"column":0},"end":{"line":62,"column":61}},"62":{"start":{"line":63,"column":0},"end":{"line":63,"column":13}},"63":{"start":{"line":64,"column":0},"end":{"line":64,"column":0}},"64":{"start":{"line":65,"column":0},"end":{"line":65,"column":41}},"65":{"start":{"line":66,"column":0},"end":{"line":66,"column":25}},"66":{"start":{"line":67,"column":0},"end":{"line":67,"column":91}},"67":{"start":{"line":68,"column":0},"end":{"line":68,"column":28}},"68":{"start":{"line":69,"column":0},"end":{"line":69,"column":13}},"69":{"start":{"line":70,"column":0},"end":{"line":70,"column":24}},"70":{"start":{"line":71,"column":0},"end":{"line":71,"column":9}},"71":{"start":{"line":72,"column":0},"end":{"line":72,"column":5}},"72":{"start":{"line":73,"column":0},"end":{"line":73,"column":0}},"73":{"start":{"line":74,"column":0},"end":{"line":74,"column":47}},"74":{"start":{"line":75,"column":0},"end":{"line":75,"column":85}},"75":{"start":{"line":76,"column":0},"end":{"line":76,"column":63}},"76":{"start":{"line":77,"column":0},"end":{"line":77,"column":73}},"77":{"start":{"line":78,"column":0},"end":{"line":78,"column":37}},"78":{"start":{"line":79,"column":0},"end":{"line":79,"column":27}},"79":{"start":{"line":80,"column":0},"end":{"line":80,"column":61}},"80":{"start":{"line":81,"column":0},"end":{"line":81,"column":41}},"81":{"start":{"line":82,"column":0},"end":{"line":82,"column":128}},"82":{"start":{"line":83,"column":0},"end":{"line":83,"column":22}},"83":{"start":{"line":84,"column":0},"end":{"line":84,"column":9}},"84":{"start":{"line":85,"column":0},"end":{"line":85,"column":57}},"85":{"start":{"line":86,"column":0},"end":{"line":86,"column":52}},"86":{"start":{"line":87,"column":0},"end":{"line":87,"column":5}},"87":{"start":{"line":88,"column":0},"end":{"line":88,"column":0}},"88":{"start":{"line":89,"column":0},"end":{"line":89,"column":34}},"89":{"start":{"line":90,"column":0},"end":{"line":90,"column":57}},"90":{"start":{"line":91,"column":0},"end":{"line":91,"column":45}},"91":{"start":{"line":92,"column":0},"end":{"line":92,"column":44}},"92":{"start":{"line":93,"column":0},"end":{"line":93,"column":65}},"93":{"start":{"line":94,"column":0},"end":{"line":94,"column":75}},"94":{"start":{"line":95,"column":0},"end":{"line":95,"column":11}},"95":{"start":{"line":96,"column":0},"end":{"line":96,"column":37}},"96":{"start":{"line":97,"column":0},"end":{"line":97,"column":27}},"97":{"start":{"line":98,"column":0},"end":{"line":98,"column":61}},"98":{"start":{"line":99,"column":0},"end":{"line":99,"column":41}},"99":{"start":{"line":100,"column":0},"end":{"line":100,"column":128}},"100":{"start":{"line":101,"column":0},"end":{"line":101,"column":22}},"101":{"start":{"line":102,"column":0},"end":{"line":102,"column":9}},"102":{"start":{"line":103,"column":0},"end":{"line":103,"column":57}},"103":{"start":{"line":104,"column":0},"end":{"line":104,"column":52}},"104":{"start":{"line":105,"column":0},"end":{"line":105,"column":5}},"105":{"start":{"line":106,"column":0},"end":{"line":106,"column":0}},"106":{"start":{"line":107,"column":0},"end":{"line":107,"column":30}},"107":{"start":{"line":108,"column":0},"end":{"line":108,"column":51}},"108":{"start":{"line":109,"column":0},"end":{"line":109,"column":43}},"109":{"start":{"line":110,"column":0},"end":{"line":110,"column":87}},"110":{"start":{"line":111,"column":0},"end":{"line":111,"column":25}},"111":{"start":{"line":112,"column":0},"end":{"line":112,"column":66}},"112":{"start":{"line":113,"column":0},"end":{"line":113,"column":9}},"113":{"start":{"line":114,"column":0},"end":{"line":114,"column":42}},"114":{"start":{"line":115,"column":0},"end":{"line":115,"column":5}},"115":{"start":{"line":116,"column":0},"end":{"line":116,"column":75}},"116":{"start":{"line":117,"column":0},"end":{"line":117,"column":75}},"117":{"start":{"line":118,"column":0},"end":{"line":118,"column":75}},"118":{"start":{"line":119,"column":0},"end":{"line":119,"column":69}},"119":{"start":{"line":120,"column":0},"end":{"line":120,"column":1}}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":27,"6":27,"7":1,"8":1,"9":27,"10":26,"11":27,"12":27,"13":27,"14":27,"15":27,"16":27,"17":1,"18":1,"19":23,"20":23,"21":23,"22":23,"23":23,"24":23,"25":23,"26":23,"27":23,"28":23,"29":1,"30":1,"31":23,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":23,"40":23,"41":23,"42":23,"43":1,"44":23,"45":23,"46":23,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":23,"54":1,"55":1,"56":23,"57":22,"58":22,"59":23,"60":1,"61":1,"62":1,"63":21,"64":21,"65":23,"66":1,"67":1,"68":1,"69":0,"70":0,"71":23,"72":1,"73":1,"74":23,"75":23,"76":23,"77":23,"78":23,"79":0,"80":0,"81":0,"82":0,"83":0,"84":23,"85":23,"86":23,"87":1,"88":1,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":1,"106":1,"107":14,"108":0,"109":0,"110":0,"111":0,"112":0,"113":14,"114":14,"115":1,"116":1,"117":1,"118":1,"119":1},"branchMap":{"0":{"type":"branch","line":2,"loc":{"start":{"line":2,"column":4},"end":{"line":3,"column":24}},"locations":[{"start":{"line":2,"column":4},"end":{"line":3,"column":24}}]},"1":{"type":"branch","line":5,"loc":{"start":{"line":5,"column":4},"end":{"line":7,"column":5}},"locations":[{"start":{"line":5,"column":4},"end":{"line":7,"column":5}}]},"2":{"type":"branch","line":9,"loc":{"start":{"line":9,"column":11},"end":{"line":17,"column":5}},"locations":[{"start":{"line":9,"column":11},"end":{"line":17,"column":5}}]},"3":{"type":"branch","line":11,"loc":{"start":{"line":11,"column":-1},"end":{"line":11,"column":66}},"locations":[{"start":{"line":11,"column":-1},"end":{"line":11,"column":66}}]},"4":{"type":"branch","line":11,"loc":{"start":{"line":11,"column":58},"end":{"line":11,"column":66}},"locations":[{"start":{"line":11,"column":58},"end":{"line":11,"column":66}}]},"5":{"type":"branch","line":12,"loc":{"start":{"line":12,"column":-1},"end":{"line":12,"column":18}},"locations":[{"start":{"line":12,"column":-1},"end":{"line":12,"column":18}}]},"6":{"type":"branch","line":14,"loc":{"start":{"line":14,"column":25},"end":{"line":14,"column":39}},"locations":[{"start":{"line":14,"column":25},"end":{"line":14,"column":39}}]},"7":{"type":"branch","line":14,"loc":{"start":{"line":14,"column":39},"end":{"line":14,"column":74}},"locations":[{"start":{"line":14,"column":39},"end":{"line":14,"column":74}}]},"8":{"type":"branch","line":19,"loc":{"start":{"line":19,"column":4},"end":{"line":29,"column":5}},"locations":[{"start":{"line":19,"column":4},"end":{"line":29,"column":5}}]},"9":{"type":"branch","line":26,"loc":{"start":{"line":26,"column":20},"end":{"line":26,"column":44}},"locations":[{"start":{"line":26,"column":20},"end":{"line":26,"column":44}}]},"10":{"type":"branch","line":31,"loc":{"start":{"line":31,"column":4},"end":{"line":37,"column":5}},"locations":[{"start":{"line":31,"column":4},"end":{"line":37,"column":5}}]},"11":{"type":"branch","line":32,"loc":{"start":{"line":32,"column":71},"end":{"line":32,"column":83}},"locations":[{"start":{"line":32,"column":71},"end":{"line":32,"column":83}}]},"12":{"type":"branch","line":32,"loc":{"start":{"line":32,"column":82},"end":{"line":37,"column":5}},"locations":[{"start":{"line":32,"column":82},"end":{"line":37,"column":5}}]},"13":{"type":"branch","line":35,"loc":{"start":{"line":35,"column":17},"end":{"line":35,"column":54}},"locations":[{"start":{"line":35,"column":17},"end":{"line":35,"column":54}}]},"14":{"type":"branch","line":39,"loc":{"start":{"line":39,"column":4},"end":{"line":54,"column":5}},"locations":[{"start":{"line":39,"column":4},"end":{"line":54,"column":5}}]},"15":{"type":"branch","line":40,"loc":{"start":{"line":40,"column":43},"end":{"line":40,"column":50}},"locations":[{"start":{"line":40,"column":43},"end":{"line":40,"column":50}}]},"16":{"type":"branch","line":43,"loc":{"start":{"line":43,"column":41},"end":{"line":43,"column":55}},"locations":[{"start":{"line":43,"column":41},"end":{"line":43,"column":55}}]},"17":{"type":"branch","line":44,"loc":{"start":{"line":44,"column":-1},"end":{"line":44,"column":36}},"locations":[{"start":{"line":44,"column":-1},"end":{"line":44,"column":36}}]},"18":{"type":"branch","line":45,"loc":{"start":{"line":45,"column":-1},"end":{"line":45,"column":60}},"locations":[{"start":{"line":45,"column":-1},"end":{"line":45,"column":60}}]},"19":{"type":"branch","line":45,"loc":{"start":{"line":45,"column":22},"end":{"line":45,"column":43}},"locations":[{"start":{"line":45,"column":22},"end":{"line":45,"column":43}}]},"20":{"type":"branch","line":47,"loc":{"start":{"line":47,"column":44},"end":{"line":53,"column":9}},"locations":[{"start":{"line":47,"column":44},"end":{"line":53,"column":9}}]},"21":{"type":"branch","line":50,"loc":{"start":{"line":50,"column":34},"end":{"line":50,"column":43}},"locations":[{"start":{"line":50,"column":34},"end":{"line":50,"column":43}}]},"22":{"type":"branch","line":56,"loc":{"start":{"line":56,"column":4},"end":{"line":72,"column":5}},"locations":[{"start":{"line":56,"column":4},"end":{"line":72,"column":5}}]},"23":{"type":"branch","line":57,"loc":{"start":{"line":57,"column":50},"end":{"line":57,"column":62}},"locations":[{"start":{"line":57,"column":50},"end":{"line":57,"column":62}}]},"24":{"type":"branch","line":57,"loc":{"start":{"line":57,"column":61},"end":{"line":60,"column":53}},"locations":[{"start":{"line":57,"column":61},"end":{"line":60,"column":53}}]},"25":{"type":"branch","line":60,"loc":{"start":{"line":60,"column":53},"end":{"line":63,"column":13}},"locations":[{"start":{"line":60,"column":53},"end":{"line":63,"column":13}}]},"26":{"type":"branch","line":62,"loc":{"start":{"line":62,"column":41},"end":{"line":62,"column":60}},"locations":[{"start":{"line":62,"column":41},"end":{"line":62,"column":60}}]},"27":{"type":"branch","line":63,"loc":{"start":{"line":63,"column":12},"end":{"line":66,"column":10}},"locations":[{"start":{"line":63,"column":12},"end":{"line":66,"column":10}}]},"28":{"type":"branch","line":66,"loc":{"start":{"line":66,"column":10},"end":{"line":71,"column":9}},"locations":[{"start":{"line":66,"column":10},"end":{"line":71,"column":9}}]},"29":{"type":"branch","line":69,"loc":{"start":{"line":69,"column":12},"end":{"line":71,"column":9}},"locations":[{"start":{"line":69,"column":12},"end":{"line":71,"column":9}}]},"30":{"type":"branch","line":74,"loc":{"start":{"line":74,"column":4},"end":{"line":87,"column":5}},"locations":[{"start":{"line":74,"column":4},"end":{"line":87,"column":5}}]},"31":{"type":"branch","line":76,"loc":{"start":{"line":76,"column":27},"end":{"line":76,"column":63}},"locations":[{"start":{"line":76,"column":27},"end":{"line":76,"column":63}}]},"32":{"type":"branch","line":79,"loc":{"start":{"line":79,"column":26},"end":{"line":84,"column":9}},"locations":[{"start":{"line":79,"column":26},"end":{"line":84,"column":9}}]},"33":{"type":"branch","line":86,"loc":{"start":{"line":86,"column":19},"end":{"line":86,"column":28}},"locations":[{"start":{"line":86,"column":19},"end":{"line":86,"column":28}}]},"34":{"type":"branch","line":86,"loc":{"start":{"line":86,"column":28},"end":{"line":86,"column":44}},"locations":[{"start":{"line":86,"column":28},"end":{"line":86,"column":44}}]},"35":{"type":"branch","line":86,"loc":{"start":{"line":86,"column":44},"end":{"line":86,"column":51}},"locations":[{"start":{"line":86,"column":44},"end":{"line":86,"column":51}}]},"36":{"type":"branch","line":107,"loc":{"start":{"line":107,"column":4},"end":{"line":115,"column":5}},"locations":[{"start":{"line":107,"column":4},"end":{"line":115,"column":5}}]},"37":{"type":"branch","line":108,"loc":{"start":{"line":108,"column":18},"end":{"line":108,"column":48}},"locations":[{"start":{"line":108,"column":18},"end":{"line":108,"column":48}}]},"38":{"type":"branch","line":108,"loc":{"start":{"line":108,"column":50},"end":{"line":113,"column":9}},"locations":[{"start":{"line":108,"column":50},"end":{"line":113,"column":9}}]},"39":{"type":"branch","line":116,"loc":{"start":{"line":116,"column":4},"end":{"line":116,"column":75}},"locations":[{"start":{"line":116,"column":4},"end":{"line":116,"column":75}}]},"40":{"type":"branch","line":117,"loc":{"start":{"line":117,"column":4},"end":{"line":117,"column":75}},"locations":[{"start":{"line":117,"column":4},"end":{"line":117,"column":75}}]},"41":{"type":"branch","line":118,"loc":{"start":{"line":118,"column":4},"end":{"line":118,"column":75}},"locations":[{"start":{"line":118,"column":4},"end":{"line":118,"column":75}}]},"42":{"type":"branch","line":119,"loc":{"start":{"line":119,"column":4},"end":{"line":119,"column":69}},"locations":[{"start":{"line":119,"column":4},"end":{"line":119,"column":69}}]}},"b":{"0":[27],"1":[27],"2":[27],"3":[26],"4":[24],"5":[1],"6":[4],"7":[3],"8":[23],"9":[1],"10":[23],"11":[22],"12":[1],"13":[1],"14":[23],"15":[0],"16":[1],"17":[1],"18":[22],"19":[0],"20":[1],"21":[0],"22":[23],"23":[1],"24":[22],"25":[1],"26":[0],"27":[21],"28":[1],"29":[0],"30":[23],"31":[4],"32":[0],"33":[20],"34":[1],"35":[22],"36":[14],"37":[0],"38":[0],"39":[3],"40":[2],"41":[2],"42":[2]},"fnMap":{"0":{"name":"<instance_members_initializer>","decl":{"start":{"line":2,"column":4},"end":{"line":3,"column":24}},"loc":{"start":{"line":2,"column":4},"end":{"line":3,"column":24}},"line":2},"1":{"name":"InsigniaClient","decl":{"start":{"line":5,"column":4},"end":{"line":7,"column":5}},"loc":{"start":{"line":5,"column":4},"end":{"line":7,"column":5}},"line":5},"2":{"name":"_resolve","decl":{"start":{"line":9,"column":11},"end":{"line":17,"column":5}},"loc":{"start":{"line":9,"column":11},"end":{"line":17,"column":5}},"line":9},"3":{"name":"#headers","decl":{"start":{"line":19,"column":4},"end":{"line":29,"column":5}},"loc":{"start":{"line":19,"column":4},"end":{"line":29,"column":5}},"line":19},"4":{"name":"#cookieHeader","decl":{"start":{"line":31,"column":4},"end":{"line":37,"column":5}},"loc":{"start":{"line":31,"column":4},"end":{"line":37,"column":5}},"line":31},"5":{"name":"#storeCookies","decl":{"start":{"line":39,"column":4},"end":{"line":54,"column":5}},"loc":{"start":{"line":39,"column":4},"end":{"line":54,"column":5}},"line":39},"6":{"name":"#parseResponse","decl":{"start":{"line":56,"column":4},"end":{"line":72,"column":5}},"loc":{"start":{"line":56,"column":4},"end":{"line":72,"column":5}},"line":56},"7":{"name":"#request","decl":{"start":{"line":74,"column":4},"end":{"line":87,"column":5}},"loc":{"start":{"line":74,"column":4},"end":{"line":87,"column":5}},"line":74},"8":{"name":"upload","decl":{"start":{"line":89,"column":4},"end":{"line":105,"column":5}},"loc":{"start":{"line":89,"column":4},"end":{"line":105,"column":5}},"line":89},"9":{"name":"get","decl":{"start":{"line":107,"column":4},"end":{"line":115,"column":5}},"loc":{"start":{"line":107,"column":4},"end":{"line":115,"column":5}},"line":107},"10":{"name":"post","decl":{"start":{"line":116,"column":4},"end":{"line":116,"column":75}},"loc":{"start":{"line":116,"column":4},"end":{"line":116,"column":75}},"line":116},"11":{"name":"put","decl":{"start":{"line":117,"column":4},"end":{"line":117,"column":75}},"loc":{"start":{"line":117,"column":4},"end":{"line":117,"column":75}},"line":117},"12":{"name":"patch","decl":{"start":{"line":118,"column":4},"end":{"line":118,"column":75}},"loc":{"start":{"line":118,"column":4},"end":{"line":118,"column":75}},"line":118},"13":{"name":"del","decl":{"start":{"line":119,"column":4},"end":{"line":119,"column":69}},"loc":{"start":{"line":119,"column":4},"end":{"line":119,"column":69}},"line":119}},"f":{"0":27,"1":27,"2":27,"3":23,"4":23,"5":23,"6":23,"7":23,"8":0,"9":14,"10":3,"11":2,"12":2,"13":2}}
2
- }