@insignia-education/api-sdk-js 0.9.22 → 0.9.24

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 (163) hide show
  1. package/.env +1 -0
  2. package/.env.test +5 -0
  3. package/.github/workflows/npm-publish-github-packages.yml +0 -0
  4. package/LICENSE +0 -0
  5. package/README.md +0 -14
  6. package/babel.config.cjs +0 -0
  7. package/coverage/clover.xml +860 -0
  8. package/coverage/coverage-final.json +33 -0
  9. package/coverage/lcov-report/Accounts.js.html +151 -0
  10. package/coverage/lcov-report/Auth.js.html +130 -0
  11. package/coverage/lcov-report/Categories.js.html +121 -0
  12. package/coverage/lcov-report/Changelogs.js.html +118 -0
  13. package/coverage/lcov-report/Client.js.html +349 -0
  14. package/coverage/lcov-report/Configs.js.html +121 -0
  15. package/coverage/lcov-report/ContactForms.js.html +121 -0
  16. package/coverage/lcov-report/ConversationalTopics.js.html +121 -0
  17. package/coverage/lcov-report/Countries.js.html +112 -0
  18. package/coverage/lcov-report/Coupons.js.html +121 -0
  19. package/coverage/lcov-report/Courses.js.html +328 -0
  20. package/coverage/lcov-report/Currencies.js.html +115 -0
  21. package/coverage/lcov-report/Files.js.html +115 -0
  22. package/coverage/lcov-report/Forums.js.html +157 -0
  23. package/coverage/lcov-report/Hashes.js.html +118 -0
  24. package/coverage/lcov-report/Insignias.js.html +121 -0
  25. package/coverage/lcov-report/Languages.js.html +121 -0
  26. package/coverage/lcov-report/MailBlacklist.js.html +118 -0
  27. package/coverage/lcov-report/Organizations.js.html +118 -0
  28. package/coverage/lcov-report/Quizzes.js.html +181 -0
  29. package/coverage/lcov-report/ShortLinks.js.html +121 -0
  30. package/coverage/lcov-report/Surveys.js.html +181 -0
  31. package/coverage/lcov-report/Tags.js.html +121 -0
  32. package/coverage/lcov-report/Taxes.js.html +121 -0
  33. package/coverage/lcov-report/Teacher.js.html +196 -0
  34. package/coverage/lcov-report/Translations.js.html +121 -0
  35. package/coverage/lcov-report/UserTypes.js.html +121 -0
  36. package/coverage/lcov-report/Users.js.html +331 -0
  37. package/coverage/lcov-report/Zoom.js.html +154 -0
  38. package/coverage/lcov-report/base.css +224 -0
  39. package/coverage/lcov-report/block-navigation.js +87 -0
  40. package/coverage/lcov-report/favicon.png +0 -0
  41. package/coverage/lcov-report/index.html +161 -0
  42. package/coverage/lcov-report/prettify.css +1 -0
  43. package/coverage/lcov-report/prettify.js +2 -0
  44. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  45. package/coverage/lcov-report/sorter.js +210 -0
  46. package/coverage/lcov-report/src/Client.js.html +349 -0
  47. package/coverage/lcov-report/src/api/index.html +116 -0
  48. package/coverage/lcov-report/src/api/index.js.html +127 -0
  49. package/coverage/lcov-report/src/api/v1/Accounts.js.html +151 -0
  50. package/coverage/lcov-report/src/api/v1/Auth.js.html +130 -0
  51. package/coverage/lcov-report/src/api/v1/Categories.js.html +121 -0
  52. package/coverage/lcov-report/src/api/v1/Changelogs.js.html +118 -0
  53. package/coverage/lcov-report/src/api/v1/Configs.js.html +121 -0
  54. package/coverage/lcov-report/src/api/v1/ContactForms.js.html +121 -0
  55. package/coverage/lcov-report/src/api/v1/ConversationalTopics.js.html +121 -0
  56. package/coverage/lcov-report/src/api/v1/Countries.js.html +112 -0
  57. package/coverage/lcov-report/src/api/v1/Coupons.js.html +121 -0
  58. package/coverage/lcov-report/src/api/v1/Courses.js.html +355 -0
  59. package/coverage/lcov-report/src/api/v1/Currencies.js.html +115 -0
  60. package/coverage/lcov-report/src/api/v1/Files.js.html +115 -0
  61. package/coverage/lcov-report/src/api/v1/Forums.js.html +157 -0
  62. package/coverage/lcov-report/src/api/v1/Hashes.js.html +118 -0
  63. package/coverage/lcov-report/src/api/v1/Insignias.js.html +121 -0
  64. package/coverage/lcov-report/src/api/v1/Languages.js.html +121 -0
  65. package/coverage/lcov-report/src/api/v1/MailBlacklist.js.html +118 -0
  66. package/coverage/lcov-report/src/api/v1/Organizations.js.html +118 -0
  67. package/coverage/lcov-report/src/api/v1/PaymentMethods.js.html +112 -0
  68. package/coverage/lcov-report/src/api/v1/Quizzes.js.html +181 -0
  69. package/coverage/lcov-report/src/api/v1/ShortLinks.js.html +121 -0
  70. package/coverage/lcov-report/src/api/v1/Surveys.js.html +181 -0
  71. package/coverage/lcov-report/src/api/v1/Tags.js.html +121 -0
  72. package/coverage/lcov-report/src/api/v1/Taxes.js.html +121 -0
  73. package/coverage/lcov-report/src/api/v1/Teacher.js.html +196 -0
  74. package/coverage/lcov-report/src/api/v1/Translations.js.html +121 -0
  75. package/coverage/lcov-report/src/api/v1/UserTypes.js.html +121 -0
  76. package/coverage/lcov-report/src/api/v1/Users.js.html +334 -0
  77. package/coverage/lcov-report/src/api/v1/Zoom.js.html +124 -0
  78. package/coverage/lcov-report/src/api/v1/index.html +521 -0
  79. package/coverage/lcov-report/src/api/v1/index.js.html +295 -0
  80. package/coverage/lcov-report/src/index.html +131 -0
  81. package/coverage/lcov-report/src/index.js.html +109 -0
  82. package/coverage/lcov-report/tests/helpers.js.html +130 -0
  83. package/coverage/lcov-report/tests/index.html +116 -0
  84. package/coverage/lcov-report/tests/integration/cookieJar.js.html +229 -0
  85. package/coverage/lcov-report/tests/integration/index.html +116 -0
  86. package/coverage/lcov.info +1606 -0
  87. package/coverage/test-report.html +980 -0
  88. package/eslint.config.mjs +10 -0
  89. package/index.js +0 -0
  90. package/jest.config.mjs +10 -0
  91. package/package.json +1 -1
  92. package/scss/Services/_notification.scss +0 -0
  93. package/scss/index.scss +0 -0
  94. package/src/Client.js +55 -2
  95. package/src/api/index.js +0 -0
  96. package/src/api/v1/Accounts.js +0 -0
  97. package/src/api/v1/Auth.js +0 -0
  98. package/src/api/v1/Categories.js +0 -0
  99. package/src/api/v1/Changelogs.js +0 -0
  100. package/src/api/v1/Configs.js +0 -0
  101. package/src/api/v1/ContactForms.js +0 -0
  102. package/src/api/v1/ConversationalTopics.js +0 -0
  103. package/src/api/v1/Countries.js +0 -0
  104. package/src/api/v1/Coupons.js +0 -0
  105. package/src/api/v1/Courses.js +10 -1
  106. package/src/api/v1/Currencies.js +0 -0
  107. package/src/api/v1/Files.js +0 -0
  108. package/src/api/v1/Forums.js +0 -0
  109. package/src/api/v1/Hashes.js +0 -0
  110. package/src/api/v1/Insignias.js +0 -0
  111. package/src/api/v1/Languages.js +0 -0
  112. package/src/api/v1/MailBlacklist.js +0 -0
  113. package/src/api/v1/Organizations.js +0 -0
  114. package/src/api/v1/PaymentMethods.js +0 -0
  115. package/src/api/v1/Quizzes.js +0 -0
  116. package/src/api/v1/ShortLinks.js +0 -0
  117. package/src/api/v1/Surveys.js +0 -0
  118. package/src/api/v1/Taxes.js +0 -0
  119. package/src/api/v1/Teacher.js +0 -0
  120. package/src/api/v1/UserTypes.js +0 -0
  121. package/src/api/v1/Users.js +0 -0
  122. package/src/api/v1/Zoom.js +0 -10
  123. package/src/api/v1/index.js +1 -4
  124. package/src/index.js +0 -0
  125. package/tests/client.test.js +64 -1
  126. package/tests/helpers.js +16 -0
  127. package/tests/integration/api/v1/accounts.test.js +37 -0
  128. package/tests/integration/api/v1/auth/login.test.js +60 -0
  129. package/tests/integration/api/v1/categories.test.js +19 -0
  130. package/tests/integration/api/v1/changelogs.test.js +21 -0
  131. package/tests/integration/api/v1/configs.test.js +20 -0
  132. package/tests/integration/api/v1/contact-forms.test.js +24 -0
  133. package/tests/integration/api/v1/conversational-topics.test.js +19 -0
  134. package/tests/integration/api/v1/countries.test.js +20 -0
  135. package/tests/integration/api/v1/coupons.test.js +26 -0
  136. package/tests/integration/api/v1/courses/by-cod.test.js +19 -0
  137. package/tests/integration/api/v1/courses/index.test.js +46 -0
  138. package/tests/integration/api/v1/currencies/index.test.js +24 -0
  139. package/tests/integration/api/v1/currencies/values.test.js +24 -0
  140. package/tests/integration/api/v1/files.test.js +25 -0
  141. package/tests/integration/api/v1/forums/index.test.js +23 -0
  142. package/tests/integration/api/v1/hashes.test.js +26 -0
  143. package/tests/integration/api/v1/insignias.test.js +19 -0
  144. package/tests/integration/api/v1/languages.test.js +28 -0
  145. package/tests/integration/api/v1/mail-blacklist.test.js +26 -0
  146. package/tests/integration/api/v1/organizations.test.js +25 -0
  147. package/tests/integration/api/v1/payment-methods/by-currencies.test.js +51 -0
  148. package/tests/integration/api/v1/quizzes/index.test.js +39 -0
  149. package/tests/integration/api/v1/short-links.test.js +27 -0
  150. package/tests/integration/api/v1/surveys/index.test.js +40 -0
  151. package/tests/integration/api/v1/taxes.test.js +20 -0
  152. package/tests/integration/api/v1/teacher/index.test.js +53 -0
  153. package/tests/integration/api/v1/user-types.test.js +19 -0
  154. package/tests/integration/api/v1/users/cash-receivers.test.js +19 -0
  155. package/tests/integration/api/v1/users/index.test.js +35 -0
  156. package/tests/integration/api/v1/zoom.test.js +24 -0
  157. package/tests/integration/loadEnv.js +0 -0
  158. package/src/api/v1/Tags.js +0 -12
  159. package/src/api/v1/Translations.js +0 -12
  160. package/tests/api/v1.test.js +0 -480
  161. package/tests/integration/api.v1.test.js +0 -125
  162. package/tests/integration/auth.test.js +0 -40
  163. package/tests/integration/cookieJar.js +0 -48
@@ -1,40 +0,0 @@
1
- import './cookieJar.js';
2
- import InsigniaApiV1 from '../../src/api/v1/index.js';
3
-
4
- const api = new InsigniaApiV1(process.env.INSIGNIA_EDUCATION_API_BASE_URL);
5
-
6
- describe('Auth (integration)', () => {
7
- test('login returns token metadata and sets cookie', async () => {
8
- const res = await api.auth.login({
9
- email: process.env.TEST_EMAIL,
10
- password: process.env.TEST_PASSWORD,
11
- });
12
- const body = res?.response ?? res;
13
- expect(body.success).toBe('ok');
14
- });
15
-
16
- test('auth/user returns the authenticated user', async () => {
17
- const res = await api.auth.user();
18
- const body = res?.response ?? res;
19
- expect(body.email).toBe(process.env.TEST_EMAIL);
20
- });
21
-
22
- test('refresh returns new token metadata', async () => {
23
- const res = await api.auth.refresh();
24
- const body = res?.response ?? res;
25
- expect(body.token_type).toBe('bearer');
26
- expect(body.expires_in).toBeGreaterThan(0);
27
- });
28
-
29
- test('logout clears the session', async () => {
30
- const res = await api.auth.logout();
31
- const body = res?.response ?? res;
32
- expect(body.message).toBe('Successfully logged out');
33
- });
34
-
35
- test('auth/user returns 401 after logout', async () => {
36
- const res = await api.auth.user();
37
- const body = res?.response ?? res;
38
- expect(res?.status ?? body?.status).toBe(401);
39
- });
40
- });
@@ -1,48 +0,0 @@
1
- // Wraps globalThis.fetch with a simple cookie jar so HTTP-only cookies
2
- // set by the server are replayed on subsequent requests — mirrors what
3
- // browsers do automatically but Node.js does not.
4
-
5
- const jar = new Map(); // origin → { name: value }
6
-
7
- const _fetch = globalThis.fetch;
8
-
9
- globalThis.fetch = async function (url, options = {}) {
10
- const origin = new URL(url).origin;
11
-
12
- // Inject stored cookies for this origin
13
- const stored = jar.get(origin);
14
- if (stored && Object.keys(stored).length > 0) {
15
- const cookieStr = Object.entries(stored)
16
- .map(([k, v]) => `${k}=${v}`)
17
- .join('; ');
18
- options = { ...options, headers: { ...options.headers, Cookie: cookieStr } };
19
- }
20
-
21
- const response = await _fetch(url, options);
22
-
23
- // Capture Set-Cookie headers (getSetCookie() returns each header separately,
24
- // avoiding the comma-in-Expires parsing problem)
25
- const setCookies = response.headers.getSetCookie?.() ??
26
- [response.headers.get('set-cookie')].filter(Boolean);
27
-
28
- for (const raw of setCookies) {
29
- const nameVal = raw.split(';')[0].trim();
30
- const eq = nameVal.indexOf('=');
31
- if (eq < 1) continue;
32
-
33
- const name = nameVal.slice(0, eq).trim();
34
- const value = nameVal.slice(eq + 1).trim();
35
- const attrs = raw.toLowerCase();
36
- const isDeleted = attrs.includes('max-age=0') ||
37
- attrs.includes('expires=thu, 01 jan 1970');
38
-
39
- if (!jar.has(origin)) jar.set(origin, {});
40
- if (isDeleted) {
41
- delete jar.get(origin)[name];
42
- } else {
43
- jar.get(origin)[name] = value;
44
- }
45
- }
46
-
47
- return response;
48
- };