@ikatec/digisac-api-sdk 4.0.0 → 4.2.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 +34 -4
  2. package/dist/apis/authHistory/AuthHistoryApi.cjs +11 -17
  3. package/dist/apis/authHistory/AuthHistoryApi.cjs.map +1 -1
  4. package/dist/apis/authHistory/AuthHistoryApi.d.ts +10 -18
  5. package/dist/apis/authHistory/AuthHistoryApi.d.ts.map +1 -1
  6. package/dist/apis/authHistory/AuthHistoryApi.mjs +11 -15
  7. package/dist/apis/authHistory/AuthHistoryApi.mjs.map +1 -1
  8. package/dist/apis/authHistory/types.d.ts +4 -3
  9. package/dist/apis/authHistory/types.d.ts.map +1 -1
  10. package/dist/apis/clientFeedback/ClientFeedbackApi.cjs +2 -5
  11. package/dist/apis/clientFeedback/ClientFeedbackApi.cjs.map +1 -1
  12. package/dist/apis/clientFeedback/ClientFeedbackApi.d.ts +2 -4
  13. package/dist/apis/clientFeedback/ClientFeedbackApi.d.ts.map +1 -1
  14. package/dist/apis/clientFeedback/ClientFeedbackApi.mjs +3 -5
  15. package/dist/apis/clientFeedback/ClientFeedbackApi.mjs.map +1 -1
  16. package/dist/apis/contacts/ContactsApi.cjs +2 -2
  17. package/dist/apis/contacts/ContactsApi.cjs.map +1 -1
  18. package/dist/apis/contacts/ContactsApi.mjs +2 -2
  19. package/dist/apis/contacts/ContactsApi.mjs.map +1 -1
  20. package/dist/apis/customFields/types.d.ts +21 -19
  21. package/dist/apis/customFields/types.d.ts.map +1 -1
  22. package/dist/apis/dashboard/DashboardApi.cjs +19 -0
  23. package/dist/apis/dashboard/DashboardApi.cjs.map +1 -0
  24. package/dist/apis/dashboard/DashboardApi.d.ts +12 -0
  25. package/dist/apis/dashboard/DashboardApi.d.ts.map +1 -0
  26. package/dist/apis/dashboard/DashboardApi.mjs +18 -0
  27. package/dist/apis/dashboard/DashboardApi.mjs.map +1 -0
  28. package/dist/apis/dashboard/index.cjs +4 -0
  29. package/dist/apis/dashboard/index.d.ts +3 -0
  30. package/dist/apis/dashboard/index.d.ts.map +1 -0
  31. package/dist/apis/dashboard/index.mjs +3 -0
  32. package/dist/apis/dashboard/types.cjs +0 -0
  33. package/dist/apis/dashboard/types.d.ts +53 -0
  34. package/dist/apis/dashboard/types.d.ts.map +1 -0
  35. package/dist/apis/dashboard/types.mjs +0 -0
  36. package/dist/apis/holiday/types.d.ts +34 -8
  37. package/dist/apis/holiday/types.d.ts.map +1 -1
  38. package/dist/apis/index.cjs +6 -0
  39. package/dist/apis/index.d.ts +2 -0
  40. package/dist/apis/index.d.ts.map +1 -1
  41. package/dist/apis/index.mjs +5 -1
  42. package/dist/apis/me/MeApi.cjs +2 -5
  43. package/dist/apis/me/MeApi.cjs.map +1 -1
  44. package/dist/apis/me/MeApi.d.ts +2 -4
  45. package/dist/apis/me/MeApi.d.ts.map +1 -1
  46. package/dist/apis/me/MeApi.mjs +3 -5
  47. package/dist/apis/me/MeApi.mjs.map +1 -1
  48. package/dist/apis/now/NowApi.cjs +37 -0
  49. package/dist/apis/now/NowApi.cjs.map +1 -0
  50. package/dist/apis/now/NowApi.d.ts +26 -0
  51. package/dist/apis/now/NowApi.d.ts.map +1 -0
  52. package/dist/apis/now/NowApi.mjs +36 -0
  53. package/dist/apis/now/NowApi.mjs.map +1 -0
  54. package/dist/apis/now/index.cjs +4 -0
  55. package/dist/apis/now/index.d.ts +3 -0
  56. package/dist/apis/now/index.d.ts.map +1 -0
  57. package/dist/apis/now/index.mjs +3 -0
  58. package/dist/apis/now/types.cjs +0 -0
  59. package/dist/apis/now/types.d.ts +45 -0
  60. package/dist/apis/now/types.d.ts.map +1 -0
  61. package/dist/apis/now/types.mjs +0 -0
  62. package/dist/apis/people/types.d.ts +7 -2
  63. package/dist/apis/people/types.d.ts.map +1 -1
  64. package/dist/apis/permissions/PermissionsApi.cjs +6 -2
  65. package/dist/apis/permissions/PermissionsApi.cjs.map +1 -1
  66. package/dist/apis/permissions/PermissionsApi.d.ts +7 -3
  67. package/dist/apis/permissions/PermissionsApi.d.ts.map +1 -1
  68. package/dist/apis/permissions/PermissionsApi.mjs +6 -2
  69. package/dist/apis/permissions/PermissionsApi.mjs.map +1 -1
  70. package/dist/apis/permissions/types.d.ts +4 -14
  71. package/dist/apis/permissions/types.d.ts.map +1 -1
  72. package/dist/apis/personalAccessTokens/PersonalAccessTokensApi.cjs +5 -0
  73. package/dist/apis/personalAccessTokens/PersonalAccessTokensApi.cjs.map +1 -1
  74. package/dist/apis/personalAccessTokens/PersonalAccessTokensApi.d.ts +5 -0
  75. package/dist/apis/personalAccessTokens/PersonalAccessTokensApi.d.ts.map +1 -1
  76. package/dist/apis/personalAccessTokens/PersonalAccessTokensApi.mjs +5 -0
  77. package/dist/apis/personalAccessTokens/PersonalAccessTokensApi.mjs.map +1 -1
  78. package/dist/apis/personalAccessTokens/types.d.ts +23 -4
  79. package/dist/apis/personalAccessTokens/types.d.ts.map +1 -1
  80. package/dist/apis/roles/RolesApi.cjs.map +1 -1
  81. package/dist/apis/roles/RolesApi.d.ts +2 -2
  82. package/dist/apis/roles/RolesApi.d.ts.map +1 -1
  83. package/dist/apis/roles/RolesApi.mjs.map +1 -1
  84. package/dist/apis/roles/types.d.ts +27 -4
  85. package/dist/apis/roles/types.d.ts.map +1 -1
  86. package/dist/apis/serviceAccessManagement/ServiceAccessManagementApi.cjs +3 -9
  87. package/dist/apis/serviceAccessManagement/ServiceAccessManagementApi.cjs.map +1 -1
  88. package/dist/apis/serviceAccessManagement/ServiceAccessManagementApi.d.ts +3 -4
  89. package/dist/apis/serviceAccessManagement/ServiceAccessManagementApi.d.ts.map +1 -1
  90. package/dist/apis/serviceAccessManagement/ServiceAccessManagementApi.mjs +3 -7
  91. package/dist/apis/serviceAccessManagement/ServiceAccessManagementApi.mjs.map +1 -1
  92. package/dist/apis/stickerUsers/StickerUsersApi.cjs +3 -9
  93. package/dist/apis/stickerUsers/StickerUsersApi.cjs.map +1 -1
  94. package/dist/apis/stickerUsers/StickerUsersApi.d.ts +3 -4
  95. package/dist/apis/stickerUsers/StickerUsersApi.d.ts.map +1 -1
  96. package/dist/apis/stickerUsers/StickerUsersApi.mjs +3 -7
  97. package/dist/apis/stickerUsers/StickerUsersApi.mjs.map +1 -1
  98. package/dist/apis/terms/TermsApi.cjs +7 -13
  99. package/dist/apis/terms/TermsApi.cjs.map +1 -1
  100. package/dist/apis/terms/TermsApi.d.ts +6 -5
  101. package/dist/apis/terms/TermsApi.d.ts.map +1 -1
  102. package/dist/apis/terms/TermsApi.mjs +7 -11
  103. package/dist/apis/terms/TermsApi.mjs.map +1 -1
  104. package/dist/apis/timetable/types.d.ts +12 -7
  105. package/dist/apis/timetable/types.d.ts.map +1 -1
  106. package/dist/apis/transcripts/TranscriptsApi.cjs +2 -5
  107. package/dist/apis/transcripts/TranscriptsApi.cjs.map +1 -1
  108. package/dist/apis/transcripts/TranscriptsApi.d.ts +2 -4
  109. package/dist/apis/transcripts/TranscriptsApi.d.ts.map +1 -1
  110. package/dist/apis/transcripts/TranscriptsApi.mjs +3 -5
  111. package/dist/apis/transcripts/TranscriptsApi.mjs.map +1 -1
  112. package/dist/core/ApiClient.d.ts +3 -0
  113. package/dist/core/ApiClient.d.ts.map +1 -1
  114. package/dist/core/ArchivableCrudApi.cjs +0 -2
  115. package/dist/core/ArchivableCrudApi.cjs.map +1 -1
  116. package/dist/core/ArchivableCrudApi.d.ts.map +1 -1
  117. package/dist/core/ArchivableCrudApi.mjs +0 -2
  118. package/dist/core/ArchivableCrudApi.mjs.map +1 -1
  119. package/dist/core/BaseApi.cjs +34 -0
  120. package/dist/core/BaseApi.cjs.map +1 -0
  121. package/dist/core/BaseApi.d.ts +20 -0
  122. package/dist/core/BaseApi.d.ts.map +1 -0
  123. package/dist/core/BaseApi.mjs +33 -0
  124. package/dist/core/BaseApi.mjs.map +1 -0
  125. package/dist/core/BaseApiClient.cjs +4 -1
  126. package/dist/core/BaseApiClient.cjs.map +1 -1
  127. package/dist/core/BaseApiClient.d.ts +7 -1
  128. package/dist/core/BaseApiClient.d.ts.map +1 -1
  129. package/dist/core/BaseApiClient.mjs +4 -1
  130. package/dist/core/BaseApiClient.mjs.map +1 -1
  131. package/dist/core/BaseCrudApi.cjs +3 -40
  132. package/dist/core/BaseCrudApi.cjs.map +1 -1
  133. package/dist/core/BaseCrudApi.d.ts +4 -23
  134. package/dist/core/BaseCrudApi.d.ts.map +1 -1
  135. package/dist/core/BaseCrudApi.mjs +3 -38
  136. package/dist/core/BaseCrudApi.mjs.map +1 -1
  137. package/dist/core/BaseReadApi.cjs +44 -0
  138. package/dist/core/BaseReadApi.cjs.map +1 -0
  139. package/dist/core/BaseReadApi.d.ts +32 -0
  140. package/dist/core/BaseReadApi.d.ts.map +1 -0
  141. package/dist/core/BaseReadApi.mjs +43 -0
  142. package/dist/core/BaseReadApi.mjs.map +1 -0
  143. package/dist/core/bindMethods.cjs +24 -0
  144. package/dist/core/bindMethods.cjs.map +1 -0
  145. package/dist/core/bindMethods.d.ts +7 -0
  146. package/dist/core/bindMethods.d.ts.map +1 -0
  147. package/dist/core/bindMethods.mjs +22 -0
  148. package/dist/core/bindMethods.mjs.map +1 -0
  149. package/dist/core/index.cjs +4 -0
  150. package/dist/core/index.d.ts +4 -0
  151. package/dist/core/index.d.ts.map +1 -1
  152. package/dist/core/index.mjs +3 -1
  153. package/dist/core/queryString.cjs +22 -0
  154. package/dist/core/queryString.cjs.map +1 -0
  155. package/dist/core/queryString.d.ts +14 -0
  156. package/dist/core/queryString.d.ts.map +1 -0
  157. package/dist/core/queryString.mjs +18 -0
  158. package/dist/core/queryString.mjs.map +1 -0
  159. package/dist/core/types.d.ts +2 -0
  160. package/dist/core/types.d.ts.map +1 -1
  161. package/dist/core/withQueryFormat.cjs +42 -0
  162. package/dist/core/withQueryFormat.cjs.map +1 -0
  163. package/dist/core/withQueryFormat.d.ts +10 -0
  164. package/dist/core/withQueryFormat.d.ts.map +1 -0
  165. package/dist/core/withQueryFormat.mjs +40 -0
  166. package/dist/core/withQueryFormat.mjs.map +1 -0
  167. package/dist/index.cjs +4 -0
  168. package/dist/index.mjs +3 -1
  169. package/package.json +1 -1
  170. package/src/apis/authHistory/AuthHistoryApi.test.ts +11 -3
  171. package/src/apis/authHistory/AuthHistoryApi.ts +11 -37
  172. package/src/apis/authHistory/types.ts +4 -3
  173. package/src/apis/campaigns/CampaignsApi.test.ts +1 -1
  174. package/src/apis/clientFeedback/ClientFeedbackApi.ts +5 -7
  175. package/src/apis/contacts/ContactsApi.test.ts +1 -1
  176. package/src/apis/contacts/ContactsApi.ts +2 -2
  177. package/src/apis/customFields/types.ts +21 -25
  178. package/src/apis/dashboard/DashboardApi.test.ts +82 -0
  179. package/src/apis/dashboard/DashboardApi.ts +18 -0
  180. package/src/apis/dashboard/index.ts +2 -0
  181. package/src/apis/dashboard/types.ts +53 -0
  182. package/src/apis/holiday/types.ts +36 -8
  183. package/src/apis/index.ts +2 -0
  184. package/src/apis/me/MeApi.ts +2 -8
  185. package/src/apis/messages/MessagesApi.test.ts +2 -2
  186. package/src/apis/now/NowApi.test.ts +125 -0
  187. package/src/apis/now/NowApi.ts +59 -0
  188. package/src/apis/now/index.ts +2 -0
  189. package/src/apis/now/types.ts +47 -0
  190. package/src/apis/payloads.test-d.ts +39 -0
  191. package/src/apis/payloads.test.ts +81 -0
  192. package/src/apis/people/types.ts +7 -2
  193. package/src/apis/permissions/PermissionsApi.test.ts +93 -0
  194. package/src/apis/permissions/PermissionsApi.ts +7 -7
  195. package/src/apis/permissions/types.ts +4 -16
  196. package/src/apis/personalAccessTokens/PersonalAccessTokensApi.ts +5 -0
  197. package/src/apis/personalAccessTokens/types.ts +25 -4
  198. package/src/apis/queryFormat.test.ts +273 -0
  199. package/src/apis/roles/RolesApi.ts +7 -2
  200. package/src/apis/roles/types.ts +27 -4
  201. package/src/apis/serviceAccessManagement/ServiceAccessManagementApi.test.ts +2 -2
  202. package/src/apis/serviceAccessManagement/ServiceAccessManagementApi.ts +10 -10
  203. package/src/apis/stickerUsers/StickerUsersApi.test.ts +1 -1
  204. package/src/apis/stickerUsers/StickerUsersApi.ts +7 -10
  205. package/src/apis/terms/TermsApi.ts +7 -13
  206. package/src/apis/timetable/types.ts +13 -7
  207. package/src/apis/transcripts/TranscriptsApi.ts +2 -7
  208. package/src/core/ApiClient.ts +4 -0
  209. package/src/core/ArchivableCrudApi.ts +0 -2
  210. package/src/core/BaseApi.test.ts +164 -0
  211. package/src/core/BaseApi.ts +32 -0
  212. package/src/core/BaseApiClient.test.ts +10 -0
  213. package/src/core/BaseApiClient.ts +9 -1
  214. package/src/core/BaseCrudApi.test-d.ts +9 -0
  215. package/src/core/BaseCrudApi.test.ts +131 -60
  216. package/src/core/BaseCrudApi.ts +7 -63
  217. package/src/core/BaseReadApi.ts +70 -0
  218. package/src/core/bindMethods.ts +26 -0
  219. package/src/core/index.ts +4 -0
  220. package/src/core/queryString.test.ts +71 -0
  221. package/src/core/queryString.ts +30 -0
  222. package/src/core/types.ts +5 -0
  223. package/src/core/withQueryFormat.test.ts +136 -0
  224. package/src/core/withQueryFormat.ts +47 -0
@@ -1 +1 @@
1
- {"version":3,"file":"BaseCrudApi.mjs","names":[],"sources":["../../src/core/BaseCrudApi.ts"],"sourcesContent":["import qs from 'qs'\nimport type { ApiClient } from './ApiClient'\nimport type { CrudApi, GetByIdQuery, ListQuery, Paginated } from './types'\nexport type {\n WhereClause,\n IncludeItem,\n ListQuery,\n GetByIdQuery,\n Paginated,\n HasGetMany,\n HasGetById,\n HasCreate,\n HasUpdateById,\n HasDeleteById,\n CrudApi,\n} from './types'\n\nexport class BaseCrudApi<\n TResponse,\n TCreate,\n TUpdate = TCreate,\n TQuery extends ListQuery<TResponse> = ListQuery<TResponse>,\n> implements CrudApi<TResponse, TCreate, TUpdate, TQuery> {\n public readonly client: ApiClient\n public readonly basePath: string\n\n constructor(client: ApiClient, basePath: string) {\n this.client = client\n this.basePath = basePath.replace(/\\/$/, '')\n this.getMany = this.getMany.bind(this)\n this.getOne = this.getOne.bind(this)\n this.getById = this.getById.bind(this)\n this.create = this.create.bind(this)\n this.updateById = this.updateById.bind(this)\n this.deleteById = this.deleteById.bind(this)\n }\n\n getMany(\n query: TQuery & { paginate: false },\n headers?: Record<string, string>,\n ): Promise<TResponse[]>\n getMany(\n query?: TQuery & { paginate?: true },\n headers?: Record<string, string>,\n ): Promise<Paginated<TResponse>>\n getMany(\n query?: TQuery,\n headers?: Record<string, string>,\n ): Promise<Paginated<TResponse> | TResponse[]> {\n const queryString = query ? `?${qs.stringify(query)}` : ''\n return this.client.get<Paginated<TResponse> | TResponse[]>(\n `${this.basePath}${queryString}`,\n headers,\n )\n }\n\n /**\n * Returns the first resource matching the query, or `null` when none match.\n * Convenience over `getMany` with `limit: 1`.\n * @permissions $resourceName.view\n */\n async getOne(query?: TQuery, headers?: Record<string, string>): Promise<TResponse | null> {\n const results = await this.getMany(\n { ...query, limit: 1, paginate: false } as TQuery & { paginate: false },\n headers,\n )\n return results[0] ?? null\n }\n\n /**\n * Returns a single resource by ID.\n * @permissions $resourceName.view\n */\n getById(\n id: string,\n query?: GetByIdQuery<TResponse>,\n headers?: Record<string, string>,\n ): Promise<TResponse> {\n const queryString = query ? `?${qs.stringify(query)}` : ''\n return this.client.get<TResponse>(`${this.basePath}/${id}${queryString}`, headers)\n }\n\n /**\n * Creates a new resource.\n * @permissions $resourceName.create\n */\n create(body: TCreate, headers?: Record<string, string>): Promise<TResponse> {\n return this.client.post<TResponse, TCreate>(this.basePath, body, headers)\n }\n\n /**\n * Updates an existing resource by ID.\n * @permissions $resourceName.update\n */\n updateById(id: string, body: TUpdate, headers?: Record<string, string>): Promise<TResponse> {\n return this.client.put<TResponse, TUpdate>(`${this.basePath}/${id}`, body, headers)\n }\n\n /**\n * Deletes a resource by ID.\n * @permissions $resourceName.delete\n */\n deleteById(id: string, headers?: Record<string, string>): Promise<TResponse> {\n return this.client.delete<TResponse>(`${this.basePath}/${id}`, headers)\n }\n}\n"],"mappings":";;;AAiBA,IAAa,cAAb,MAK0D;CACxD,AAAgB;CAChB,AAAgB;CAEhB,YAAY,QAAmB,UAAkB;AAC/C,OAAK,SAAS;AACd,OAAK,WAAW,SAAS,QAAQ,OAAO,GAAG;AAC3C,OAAK,UAAU,KAAK,QAAQ,KAAK,KAAK;AACtC,OAAK,SAAS,KAAK,OAAO,KAAK,KAAK;AACpC,OAAK,UAAU,KAAK,QAAQ,KAAK,KAAK;AACtC,OAAK,SAAS,KAAK,OAAO,KAAK,KAAK;AACpC,OAAK,aAAa,KAAK,WAAW,KAAK,KAAK;AAC5C,OAAK,aAAa,KAAK,WAAW,KAAK,KAAK;;CAW9C,QACE,OACA,SAC6C;EAC7C,MAAM,cAAc,QAAQ,IAAI,GAAG,UAAU,MAAM,KAAK;AACxD,SAAO,KAAK,OAAO,IACjB,GAAG,KAAK,WAAW,eACnB,QACD;;;;;;;CAQH,MAAM,OAAO,OAAgB,SAA6D;AAKxF,UAJgB,MAAM,KAAK,QACzB;GAAE,GAAG;GAAO,OAAO;GAAG,UAAU;GAAO,EACvC,QACD,EACc,MAAM;;;;;;CAOvB,QACE,IACA,OACA,SACoB;EACpB,MAAM,cAAc,QAAQ,IAAI,GAAG,UAAU,MAAM,KAAK;AACxD,SAAO,KAAK,OAAO,IAAe,GAAG,KAAK,SAAS,GAAG,KAAK,eAAe,QAAQ;;;;;;CAOpF,OAAO,MAAe,SAAsD;AAC1E,SAAO,KAAK,OAAO,KAAyB,KAAK,UAAU,MAAM,QAAQ;;;;;;CAO3E,WAAW,IAAY,MAAe,SAAsD;AAC1F,SAAO,KAAK,OAAO,IAAwB,GAAG,KAAK,SAAS,GAAG,MAAM,MAAM,QAAQ;;;;;;CAOrF,WAAW,IAAY,SAAsD;AAC3E,SAAO,KAAK,OAAO,OAAkB,GAAG,KAAK,SAAS,GAAG,MAAM,QAAQ"}
1
+ {"version":3,"file":"BaseCrudApi.mjs","names":[],"sources":["../../src/core/BaseCrudApi.ts"],"sourcesContent":["import { BaseReadApi } from './BaseReadApi'\nimport type { CrudApi, ListQuery } from './types'\nexport type {\n WhereClause,\n IncludeItem,\n ListQuery,\n GetByIdQuery,\n Paginated,\n HasGetMany,\n HasGetById,\n HasCreate,\n HasUpdateById,\n HasDeleteById,\n CrudApi,\n} from './types'\n\n/** Generic CRUD resource: the reads of `BaseReadApi` plus `create`, `updateById` and `deleteById`. */\nexport class BaseCrudApi<\n TResponse,\n TCreate,\n TUpdate = TCreate,\n TQuery extends ListQuery<TResponse> = ListQuery<TResponse>,\n>\n extends BaseReadApi<TResponse, TQuery>\n implements CrudApi<TResponse, TCreate, TUpdate, TQuery>\n{\n /**\n * Creates a new resource.\n * @permissions $resourceName.create\n */\n create(body: TCreate, headers?: Record<string, string>): Promise<TResponse> {\n return this.client.post<TResponse, TCreate>(this.basePath, body, headers)\n }\n\n /**\n * Updates an existing resource by ID.\n * @permissions $resourceName.update\n */\n updateById(id: string, body: TUpdate, headers?: Record<string, string>): Promise<TResponse> {\n return this.client.put<TResponse, TUpdate>(`${this.basePath}/${id}`, body, headers)\n }\n\n /**\n * Deletes a resource by ID.\n * @permissions $resourceName.delete\n */\n deleteById(id: string, headers?: Record<string, string>): Promise<TResponse> {\n return this.client.delete<TResponse>(`${this.basePath}/${id}`, headers)\n }\n}\n"],"mappings":";;;;AAiBA,IAAa,cAAb,cAMU,YAEV;;;;;CAKE,OAAO,MAAe,SAAsD;AAC1E,SAAO,KAAK,OAAO,KAAyB,KAAK,UAAU,MAAM,QAAQ;;;;;;CAO3E,WAAW,IAAY,MAAe,SAAsD;AAC1F,SAAO,KAAK,OAAO,IAAwB,GAAG,KAAK,SAAS,GAAG,MAAM,MAAM,QAAQ;;;;;;CAOrF,WAAW,IAAY,SAAsD;AAC3E,SAAO,KAAK,OAAO,OAAkB,GAAG,KAAK,SAAS,GAAG,MAAM,QAAQ"}
@@ -0,0 +1,44 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_core_BaseApi = require('./BaseApi.cjs');
3
+
4
+ //#region src/core/BaseReadApi.ts
5
+ /**
6
+ * Generic read-only resource: `getMany`, `getOne` and `getById` under `basePath`. Base of
7
+ * `BaseCrudApi`, and of the resources the backend only serves for reading (e.g. permissions,
8
+ * auth history).
9
+ */
10
+ var BaseReadApi = class extends require_core_BaseApi.BaseApi {
11
+ basePath;
12
+ constructor(client, basePath) {
13
+ super(client);
14
+ this.basePath = basePath.replace(/\/$/, "");
15
+ }
16
+ getMany(query, headers) {
17
+ const queryString = this.toQueryString(query);
18
+ return this.client.get(`${this.basePath}${queryString}`, headers);
19
+ }
20
+ /**
21
+ * Returns the first resource matching the query, or `null` when none match.
22
+ * Convenience over `getMany` with `limit: 1`.
23
+ * @permissions $resourceName.view
24
+ */
25
+ async getOne(query, headers) {
26
+ return (await this.getMany({
27
+ ...query,
28
+ limit: 1,
29
+ paginate: false
30
+ }, headers))?.[0] ?? null;
31
+ }
32
+ /**
33
+ * Returns a single resource by ID. When it does not exist most routes answer 200 with an empty
34
+ * body, which resolves to `undefined`.
35
+ * @permissions $resourceName.view
36
+ */
37
+ getById(id, query, headers) {
38
+ return this.client.get(`${this.basePath}/${id}${this.toQueryString(query)}`, headers);
39
+ }
40
+ };
41
+
42
+ //#endregion
43
+ exports.BaseReadApi = BaseReadApi;
44
+ //# sourceMappingURL=BaseReadApi.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseReadApi.cjs","names":["BaseApi"],"sources":["../../src/core/BaseReadApi.ts"],"sourcesContent":["import type { ApiClient } from './ApiClient'\nimport { BaseApi } from './BaseApi'\nimport type { GetByIdQuery, HasGetById, HasGetMany, ListQuery, Paginated } from './types'\n\n/**\n * Generic read-only resource: `getMany`, `getOne` and `getById` under `basePath`. Base of\n * `BaseCrudApi`, and of the resources the backend only serves for reading (e.g. permissions,\n * auth history).\n */\nexport class BaseReadApi<TResponse, TQuery extends ListQuery<TResponse> = ListQuery<TResponse>>\n extends BaseApi\n implements HasGetMany<TResponse, TQuery>, HasGetById<TResponse>\n{\n public readonly basePath: string\n\n constructor(client: ApiClient, basePath: string) {\n super(client)\n this.basePath = basePath.replace(/\\/$/, '')\n }\n\n getMany(\n query: TQuery & { paginate: false },\n headers?: Record<string, string>,\n ): Promise<TResponse[]>\n getMany(\n query?: TQuery & { paginate?: true },\n headers?: Record<string, string>,\n ): Promise<Paginated<TResponse>>\n getMany(\n query?: TQuery,\n headers?: Record<string, string>,\n ): Promise<Paginated<TResponse> | TResponse[]>\n getMany(\n query?: TQuery,\n headers?: Record<string, string>,\n ): Promise<Paginated<TResponse> | TResponse[]> {\n const queryString = this.toQueryString(query)\n return this.client.get<Paginated<TResponse> | TResponse[]>(\n `${this.basePath}${queryString}`,\n headers,\n )\n }\n\n /**\n * Returns the first resource matching the query, or `null` when none match.\n * Convenience over `getMany` with `limit: 1`.\n * @permissions $resourceName.view\n */\n async getOne(query?: TQuery, headers?: Record<string, string>): Promise<TResponse | null> {\n const results = await this.getMany(\n { ...query, limit: 1, paginate: false } as TQuery & { paginate: false },\n headers,\n )\n // An empty response body resolves to `undefined`.\n return results?.[0] ?? null\n }\n\n /**\n * Returns a single resource by ID. When it does not exist most routes answer 200 with an empty\n * body, which resolves to `undefined`.\n * @permissions $resourceName.view\n */\n getById(\n id: string,\n query?: GetByIdQuery<TResponse>,\n headers?: Record<string, string>,\n ): Promise<TResponse> {\n return this.client.get<TResponse>(`${this.basePath}/${id}${this.toQueryString(query)}`, headers)\n }\n}\n"],"mappings":";;;;;;;;;AASA,IAAa,cAAb,cACUA,6BAEV;CACE,AAAgB;CAEhB,YAAY,QAAmB,UAAkB;AAC/C,QAAM,OAAO;AACb,OAAK,WAAW,SAAS,QAAQ,OAAO,GAAG;;CAe7C,QACE,OACA,SAC6C;EAC7C,MAAM,cAAc,KAAK,cAAc,MAAM;AAC7C,SAAO,KAAK,OAAO,IACjB,GAAG,KAAK,WAAW,eACnB,QACD;;;;;;;CAQH,MAAM,OAAO,OAAgB,SAA6D;AAMxF,UALgB,MAAM,KAAK,QACzB;GAAE,GAAG;GAAO,OAAO;GAAG,UAAU;GAAO,EACvC,QACD,IAEgB,MAAM;;;;;;;CAQzB,QACE,IACA,OACA,SACoB;AACpB,SAAO,KAAK,OAAO,IAAe,GAAG,KAAK,SAAS,GAAG,KAAK,KAAK,cAAc,MAAM,IAAI,QAAQ"}
@@ -0,0 +1,32 @@
1
+ import type { ApiClient } from './ApiClient';
2
+ import { BaseApi } from './BaseApi';
3
+ import type { GetByIdQuery, HasGetById, HasGetMany, ListQuery, Paginated } from './types';
4
+ /**
5
+ * Generic read-only resource: `getMany`, `getOne` and `getById` under `basePath`. Base of
6
+ * `BaseCrudApi`, and of the resources the backend only serves for reading (e.g. permissions,
7
+ * auth history).
8
+ */
9
+ export declare class BaseReadApi<TResponse, TQuery extends ListQuery<TResponse> = ListQuery<TResponse>> extends BaseApi implements HasGetMany<TResponse, TQuery>, HasGetById<TResponse> {
10
+ readonly basePath: string;
11
+ constructor(client: ApiClient, basePath: string);
12
+ getMany(query: TQuery & {
13
+ paginate: false;
14
+ }, headers?: Record<string, string>): Promise<TResponse[]>;
15
+ getMany(query?: TQuery & {
16
+ paginate?: true;
17
+ }, headers?: Record<string, string>): Promise<Paginated<TResponse>>;
18
+ getMany(query?: TQuery, headers?: Record<string, string>): Promise<Paginated<TResponse> | TResponse[]>;
19
+ /**
20
+ * Returns the first resource matching the query, or `null` when none match.
21
+ * Convenience over `getMany` with `limit: 1`.
22
+ * @permissions $resourceName.view
23
+ */
24
+ getOne(query?: TQuery, headers?: Record<string, string>): Promise<TResponse | null>;
25
+ /**
26
+ * Returns a single resource by ID. When it does not exist most routes answer 200 with an empty
27
+ * body, which resolves to `undefined`.
28
+ * @permissions $resourceName.view
29
+ */
30
+ getById(id: string, query?: GetByIdQuery<TResponse>, headers?: Record<string, string>): Promise<TResponse>;
31
+ }
32
+ //# sourceMappingURL=BaseReadApi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseReadApi.d.ts","sourceRoot":"","sources":["../../src/core/BaseReadApi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAEzF;;;;GAIG;AACH,qBAAa,WAAW,CAAC,SAAS,EAAE,MAAM,SAAS,SAAS,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,CAC5F,SAAQ,OACR,YAAW,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC;IAE/D,SAAgB,QAAQ,EAAE,MAAM,CAAA;gBAEpB,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM;IAK/C,OAAO,CACL,KAAK,EAAE,MAAM,GAAG;QAAE,QAAQ,EAAE,KAAK,CAAA;KAAE,EACnC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,OAAO,CAAC,SAAS,EAAE,CAAC;IACvB,OAAO,CACL,KAAK,CAAC,EAAE,MAAM,GAAG;QAAE,QAAQ,CAAC,EAAE,IAAI,CAAA;KAAE,EACpC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CACL,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,SAAS,EAAE,CAAC;IAY9C;;;;OAIG;IACG,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IASzF;;;;OAIG;IACH,OAAO,CACL,EAAE,EAAE,MAAM,EACV,KAAK,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,EAC/B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,OAAO,CAAC,SAAS,CAAC;CAGtB"}
@@ -0,0 +1,43 @@
1
+ import { BaseApi } from "./BaseApi.mjs";
2
+
3
+ //#region src/core/BaseReadApi.ts
4
+ /**
5
+ * Generic read-only resource: `getMany`, `getOne` and `getById` under `basePath`. Base of
6
+ * `BaseCrudApi`, and of the resources the backend only serves for reading (e.g. permissions,
7
+ * auth history).
8
+ */
9
+ var BaseReadApi = class extends BaseApi {
10
+ basePath;
11
+ constructor(client, basePath) {
12
+ super(client);
13
+ this.basePath = basePath.replace(/\/$/, "");
14
+ }
15
+ getMany(query, headers) {
16
+ const queryString = this.toQueryString(query);
17
+ return this.client.get(`${this.basePath}${queryString}`, headers);
18
+ }
19
+ /**
20
+ * Returns the first resource matching the query, or `null` when none match.
21
+ * Convenience over `getMany` with `limit: 1`.
22
+ * @permissions $resourceName.view
23
+ */
24
+ async getOne(query, headers) {
25
+ return (await this.getMany({
26
+ ...query,
27
+ limit: 1,
28
+ paginate: false
29
+ }, headers))?.[0] ?? null;
30
+ }
31
+ /**
32
+ * Returns a single resource by ID. When it does not exist most routes answer 200 with an empty
33
+ * body, which resolves to `undefined`.
34
+ * @permissions $resourceName.view
35
+ */
36
+ getById(id, query, headers) {
37
+ return this.client.get(`${this.basePath}/${id}${this.toQueryString(query)}`, headers);
38
+ }
39
+ };
40
+
41
+ //#endregion
42
+ export { BaseReadApi };
43
+ //# sourceMappingURL=BaseReadApi.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseReadApi.mjs","names":[],"sources":["../../src/core/BaseReadApi.ts"],"sourcesContent":["import type { ApiClient } from './ApiClient'\nimport { BaseApi } from './BaseApi'\nimport type { GetByIdQuery, HasGetById, HasGetMany, ListQuery, Paginated } from './types'\n\n/**\n * Generic read-only resource: `getMany`, `getOne` and `getById` under `basePath`. Base of\n * `BaseCrudApi`, and of the resources the backend only serves for reading (e.g. permissions,\n * auth history).\n */\nexport class BaseReadApi<TResponse, TQuery extends ListQuery<TResponse> = ListQuery<TResponse>>\n extends BaseApi\n implements HasGetMany<TResponse, TQuery>, HasGetById<TResponse>\n{\n public readonly basePath: string\n\n constructor(client: ApiClient, basePath: string) {\n super(client)\n this.basePath = basePath.replace(/\\/$/, '')\n }\n\n getMany(\n query: TQuery & { paginate: false },\n headers?: Record<string, string>,\n ): Promise<TResponse[]>\n getMany(\n query?: TQuery & { paginate?: true },\n headers?: Record<string, string>,\n ): Promise<Paginated<TResponse>>\n getMany(\n query?: TQuery,\n headers?: Record<string, string>,\n ): Promise<Paginated<TResponse> | TResponse[]>\n getMany(\n query?: TQuery,\n headers?: Record<string, string>,\n ): Promise<Paginated<TResponse> | TResponse[]> {\n const queryString = this.toQueryString(query)\n return this.client.get<Paginated<TResponse> | TResponse[]>(\n `${this.basePath}${queryString}`,\n headers,\n )\n }\n\n /**\n * Returns the first resource matching the query, or `null` when none match.\n * Convenience over `getMany` with `limit: 1`.\n * @permissions $resourceName.view\n */\n async getOne(query?: TQuery, headers?: Record<string, string>): Promise<TResponse | null> {\n const results = await this.getMany(\n { ...query, limit: 1, paginate: false } as TQuery & { paginate: false },\n headers,\n )\n // An empty response body resolves to `undefined`.\n return results?.[0] ?? null\n }\n\n /**\n * Returns a single resource by ID. When it does not exist most routes answer 200 with an empty\n * body, which resolves to `undefined`.\n * @permissions $resourceName.view\n */\n getById(\n id: string,\n query?: GetByIdQuery<TResponse>,\n headers?: Record<string, string>,\n ): Promise<TResponse> {\n return this.client.get<TResponse>(`${this.basePath}/${id}${this.toQueryString(query)}`, headers)\n }\n}\n"],"mappings":";;;;;;;;AASA,IAAa,cAAb,cACU,QAEV;CACE,AAAgB;CAEhB,YAAY,QAAmB,UAAkB;AAC/C,QAAM,OAAO;AACb,OAAK,WAAW,SAAS,QAAQ,OAAO,GAAG;;CAe7C,QACE,OACA,SAC6C;EAC7C,MAAM,cAAc,KAAK,cAAc,MAAM;AAC7C,SAAO,KAAK,OAAO,IACjB,GAAG,KAAK,WAAW,eACnB,QACD;;;;;;;CAQH,MAAM,OAAO,OAAgB,SAA6D;AAMxF,UALgB,MAAM,KAAK,QACzB;GAAE,GAAG;GAAO,OAAO;GAAG,UAAU;GAAO,EACvC,QACD,IAEgB,MAAM;;;;;;;CAQzB,QACE,IACA,OACA,SACoB;AACpB,SAAO,KAAK,OAAO,IAAe,GAAG,KAAK,SAAS,GAAG,KAAK,KAAK,cAAc,MAAM,IAAI,QAAQ"}
@@ -0,0 +1,24 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+
3
+ //#region src/core/bindMethods.ts
4
+ /**
5
+ * Binds every method of `instance`'s class chain (up to `Object.prototype`) to `instance`, as own
6
+ * properties, so methods keep working when destructured (`const { getMany } = api`). The most
7
+ * derived implementation wins; getters, setters and `constructor` are skipped.
8
+ */
9
+ function bindMethods(instance) {
10
+ const target = instance;
11
+ const bound = /* @__PURE__ */ new Set();
12
+ for (let prototype = Object.getPrototypeOf(instance); prototype && prototype !== Object.prototype; prototype = Object.getPrototypeOf(prototype)) for (const key of Reflect.ownKeys(prototype)) {
13
+ if (key === "constructor" || bound.has(key)) continue;
14
+ const { value } = Object.getOwnPropertyDescriptor(prototype, key);
15
+ if (typeof value === "function") {
16
+ target[key] = value.bind(instance);
17
+ bound.add(key);
18
+ }
19
+ }
20
+ }
21
+
22
+ //#endregion
23
+ exports.bindMethods = bindMethods;
24
+ //# sourceMappingURL=bindMethods.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bindMethods.cjs","names":[],"sources":["../../src/core/bindMethods.ts"],"sourcesContent":["/**\n * Binds every method of `instance`'s class chain (up to `Object.prototype`) to `instance`, as own\n * properties, so methods keep working when destructured (`const { getMany } = api`). The most\n * derived implementation wins; getters, setters and `constructor` are skipped.\n */\nexport function bindMethods(instance: object): void {\n const target = instance as Record<PropertyKey, unknown>\n const bound = new Set<PropertyKey>()\n\n for (\n let prototype: object | null = Object.getPrototypeOf(instance);\n prototype && prototype !== Object.prototype;\n prototype = Object.getPrototypeOf(prototype)\n ) {\n for (const key of Reflect.ownKeys(prototype)) {\n if (key === 'constructor' || bound.has(key)) {\n continue\n }\n const { value } = Object.getOwnPropertyDescriptor(prototype, key) as PropertyDescriptor\n if (typeof value === 'function') {\n target[key] = value.bind(instance)\n bound.add(key)\n }\n }\n }\n}\n"],"mappings":";;;;;;;;AAKA,SAAgB,YAAY,UAAwB;CAClD,MAAM,SAAS;CACf,MAAM,wBAAQ,IAAI,KAAkB;AAEpC,MACE,IAAI,YAA2B,OAAO,eAAe,SAAS,EAC9D,aAAa,cAAc,OAAO,WAClC,YAAY,OAAO,eAAe,UAAU,CAE5C,MAAK,MAAM,OAAO,QAAQ,QAAQ,UAAU,EAAE;AAC5C,MAAI,QAAQ,iBAAiB,MAAM,IAAI,IAAI,CACzC;EAEF,MAAM,EAAE,UAAU,OAAO,yBAAyB,WAAW,IAAI;AACjE,MAAI,OAAO,UAAU,YAAY;AAC/B,UAAO,OAAO,MAAM,KAAK,SAAS;AAClC,SAAM,IAAI,IAAI"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Binds every method of `instance`'s class chain (up to `Object.prototype`) to `instance`, as own
3
+ * properties, so methods keep working when destructured (`const { getMany } = api`). The most
4
+ * derived implementation wins; getters, setters and `constructor` are skipped.
5
+ */
6
+ export declare function bindMethods(instance: object): void;
7
+ //# sourceMappingURL=bindMethods.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bindMethods.d.ts","sourceRoot":"","sources":["../../src/core/bindMethods.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAoBlD"}
@@ -0,0 +1,22 @@
1
+ //#region src/core/bindMethods.ts
2
+ /**
3
+ * Binds every method of `instance`'s class chain (up to `Object.prototype`) to `instance`, as own
4
+ * properties, so methods keep working when destructured (`const { getMany } = api`). The most
5
+ * derived implementation wins; getters, setters and `constructor` are skipped.
6
+ */
7
+ function bindMethods(instance) {
8
+ const target = instance;
9
+ const bound = /* @__PURE__ */ new Set();
10
+ for (let prototype = Object.getPrototypeOf(instance); prototype && prototype !== Object.prototype; prototype = Object.getPrototypeOf(prototype)) for (const key of Reflect.ownKeys(prototype)) {
11
+ if (key === "constructor" || bound.has(key)) continue;
12
+ const { value } = Object.getOwnPropertyDescriptor(prototype, key);
13
+ if (typeof value === "function") {
14
+ target[key] = value.bind(instance);
15
+ bound.add(key);
16
+ }
17
+ }
18
+ }
19
+
20
+ //#endregion
21
+ export { bindMethods };
22
+ //# sourceMappingURL=bindMethods.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bindMethods.mjs","names":[],"sources":["../../src/core/bindMethods.ts"],"sourcesContent":["/**\n * Binds every method of `instance`'s class chain (up to `Object.prototype`) to `instance`, as own\n * properties, so methods keep working when destructured (`const { getMany } = api`). The most\n * derived implementation wins; getters, setters and `constructor` are skipped.\n */\nexport function bindMethods(instance: object): void {\n const target = instance as Record<PropertyKey, unknown>\n const bound = new Set<PropertyKey>()\n\n for (\n let prototype: object | null = Object.getPrototypeOf(instance);\n prototype && prototype !== Object.prototype;\n prototype = Object.getPrototypeOf(prototype)\n ) {\n for (const key of Reflect.ownKeys(prototype)) {\n if (key === 'constructor' || bound.has(key)) {\n continue\n }\n const { value } = Object.getOwnPropertyDescriptor(prototype, key) as PropertyDescriptor\n if (typeof value === 'function') {\n target[key] = value.bind(instance)\n bound.add(key)\n }\n }\n }\n}\n"],"mappings":";;;;;;AAKA,SAAgB,YAAY,UAAwB;CAClD,MAAM,SAAS;CACf,MAAM,wBAAQ,IAAI,KAAkB;AAEpC,MACE,IAAI,YAA2B,OAAO,eAAe,SAAS,EAC9D,aAAa,cAAc,OAAO,WAClC,YAAY,OAAO,eAAe,UAAU,CAE5C,MAAK,MAAM,OAAO,QAAQ,QAAQ,UAAU,EAAE;AAC5C,MAAI,QAAQ,iBAAiB,MAAM,IAAI,IAAI,CACzC;EAEF,MAAM,EAAE,UAAU,OAAO,yBAAyB,WAAW,IAAI;AACjE,MAAI,OAAO,UAAU,YAAY;AAC/B,UAAO,OAAO,MAAM,KAAK,SAAS;AAClC,SAAM,IAAI,IAAI"}
@@ -1,6 +1,8 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
2
  const require_core_errors = require('./errors.cjs');
3
3
  const require_core_BaseApiClient = require('./BaseApiClient.cjs');
4
+ const require_core_BaseApi = require('./BaseApi.cjs');
5
+ const require_core_BaseReadApi = require('./BaseReadApi.cjs');
4
6
  const require_core_BaseCrudApi = require('./BaseCrudApi.cjs');
5
7
  const require_core_ArchivableCrudApi = require('./ArchivableCrudApi.cjs');
6
8
 
@@ -9,8 +11,10 @@ exports.ApiError = require_core_errors.ApiError;
9
11
  exports.ArchivableCrudApi = require_core_ArchivableCrudApi.ArchivableCrudApi;
10
12
  exports.AuthenticationError = require_core_errors.AuthenticationError;
11
13
  exports.BadRequestError = require_core_errors.BadRequestError;
14
+ exports.BaseApi = require_core_BaseApi.BaseApi;
12
15
  exports.BaseApiClient = require_core_BaseApiClient.BaseApiClient;
13
16
  exports.BaseCrudApi = require_core_BaseCrudApi.BaseCrudApi;
17
+ exports.BaseReadApi = require_core_BaseReadApi.BaseReadApi;
14
18
  exports.ConflictError = require_core_errors.ConflictError;
15
19
  exports.DigisacError = require_core_errors.DigisacError;
16
20
  exports.InternalServerError = require_core_errors.InternalServerError;
@@ -1,7 +1,11 @@
1
1
  export type { ApiClient, HttpMethod } from './ApiClient';
2
2
  export { BaseApiClient } from './BaseApiClient';
3
+ export type { BaseApiClientOptions } from './BaseApiClient';
4
+ export type { QueryFormat } from './queryString';
3
5
  export { DigisacError, ApiConnectionError, ApiError, BadRequestError, ValidationError, AuthenticationError, PaymentRequiredError, PermissionDeniedError, NotFoundError, ConflictError, UnprocessableEntityError, RateLimitError, InternalServerError, parseFieldErrors, } from './errors';
4
6
  export type { FieldError, ErrorClassName, ApiErrorOptions } from './errors';
7
+ export { BaseApi } from './BaseApi';
8
+ export { BaseReadApi } from './BaseReadApi';
5
9
  export { BaseCrudApi } from './BaseCrudApi';
6
10
  export { ArchivableCrudApi } from './ArchivableCrudApi';
7
11
  export type { WhereClause, IncludeItem, ListQuery, GetByIdQuery, Paginated } from './types';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,QAAQ,EACR,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,aAAa,EACb,aAAa,EACb,wBAAwB,EACxB,cAAc,EACd,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,UAAU,CAAA;AACjB,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,YAAY,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAC3D,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,QAAQ,EACR,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,aAAa,EACb,aAAa,EACb,wBAAwB,EACxB,cAAc,EACd,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,UAAU,CAAA;AACjB,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC3E,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA"}
@@ -1,6 +1,8 @@
1
1
  import { ApiConnectionError, ApiError, AuthenticationError, BadRequestError, ConflictError, DigisacError, InternalServerError, NotFoundError, PaymentRequiredError, PermissionDeniedError, RateLimitError, UnprocessableEntityError, ValidationError, parseFieldErrors } from "./errors.mjs";
2
2
  import { BaseApiClient } from "./BaseApiClient.mjs";
3
+ import { BaseApi } from "./BaseApi.mjs";
4
+ import { BaseReadApi } from "./BaseReadApi.mjs";
3
5
  import { BaseCrudApi } from "./BaseCrudApi.mjs";
4
6
  import { ArchivableCrudApi } from "./ArchivableCrudApi.mjs";
5
7
 
6
- export { ApiConnectionError, ApiError, ArchivableCrudApi, AuthenticationError, BadRequestError, BaseApiClient, BaseCrudApi, ConflictError, DigisacError, InternalServerError, NotFoundError, PaymentRequiredError, PermissionDeniedError, RateLimitError, UnprocessableEntityError, ValidationError, parseFieldErrors };
8
+ export { ApiConnectionError, ApiError, ArchivableCrudApi, AuthenticationError, BadRequestError, BaseApi, BaseApiClient, BaseCrudApi, BaseReadApi, ConflictError, DigisacError, InternalServerError, NotFoundError, PaymentRequiredError, PermissionDeniedError, RateLimitError, UnprocessableEntityError, ValidationError, parseFieldErrors };
@@ -0,0 +1,22 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_chunk = require('../_chunks/chunk-Dk0Otj32.cjs');
3
+ let qs = require("qs");
4
+ qs = require_chunk.__toESM(qs);
5
+
6
+ //#region src/core/queryString.ts
7
+ const DEFAULT_QUERY_FORMAT = "json";
8
+ /** Serializes a query in `format`, or returns `''` when there is nothing to send. */
9
+ function toQueryString(query, format = DEFAULT_QUERY_FORMAT) {
10
+ if (!query) return "";
11
+ if (format === "qs") {
12
+ const queryString = qs.default.stringify(query);
13
+ return queryString ? `?${queryString}` : "";
14
+ }
15
+ const json = JSON.stringify(query);
16
+ return json === "{}" ? "" : `?query=${encodeURIComponent(json)}`;
17
+ }
18
+
19
+ //#endregion
20
+ exports.DEFAULT_QUERY_FORMAT = DEFAULT_QUERY_FORMAT;
21
+ exports.toQueryString = toQueryString;
22
+ //# sourceMappingURL=queryString.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queryString.cjs","names":[],"sources":["../../src/core/queryString.ts"],"sourcesContent":["import qs from 'qs'\n\n/**\n * How list/get queries (`where`, `include`, `order`, ...) are put in the URL:\n *\n * - `'json'` — `?query=<JSON>`, merged into `req.query` by the backend `parseQuery` middleware.\n * Keeps `null`, booleans and numbers typed and has no nesting limit.\n * - `'qs'` — bracket notation (`?where[name]=x&page=2`). Readable, but the backend parses it with\n * `qs` defaults: `null` arrives as `''`, booleans/numbers as strings, and objects nested deeper\n * than 5 levels (e.g. an `include` inside an `include` with a `where`) are mangled.\n */\nexport type QueryFormat = 'json' | 'qs'\n\nexport const DEFAULT_QUERY_FORMAT: QueryFormat = 'json'\n\n/** Serializes a query in `format`, or returns `''` when there is nothing to send. */\nexport function toQueryString(\n query?: object | null,\n format: QueryFormat = DEFAULT_QUERY_FORMAT,\n): string {\n if (!query) {\n return ''\n }\n if (format === 'qs') {\n const queryString = qs.stringify(query)\n return queryString ? `?${queryString}` : ''\n }\n const json = JSON.stringify(query)\n return json === '{}' ? '' : `?query=${encodeURIComponent(json)}`\n}\n"],"mappings":";;;;;;AAaA,MAAa,uBAAoC;;AAGjD,SAAgB,cACd,OACA,SAAsB,sBACd;AACR,KAAI,CAAC,MACH,QAAO;AAET,KAAI,WAAW,MAAM;EACnB,MAAM,cAAc,WAAG,UAAU,MAAM;AACvC,SAAO,cAAc,IAAI,gBAAgB;;CAE3C,MAAM,OAAO,KAAK,UAAU,MAAM;AAClC,QAAO,SAAS,OAAO,KAAK,UAAU,mBAAmB,KAAK"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * How list/get queries (`where`, `include`, `order`, ...) are put in the URL:
3
+ *
4
+ * - `'json'` — `?query=<JSON>`, merged into `req.query` by the backend `parseQuery` middleware.
5
+ * Keeps `null`, booleans and numbers typed and has no nesting limit.
6
+ * - `'qs'` — bracket notation (`?where[name]=x&page=2`). Readable, but the backend parses it with
7
+ * `qs` defaults: `null` arrives as `''`, booleans/numbers as strings, and objects nested deeper
8
+ * than 5 levels (e.g. an `include` inside an `include` with a `where`) are mangled.
9
+ */
10
+ export type QueryFormat = 'json' | 'qs';
11
+ export declare const DEFAULT_QUERY_FORMAT: QueryFormat;
12
+ /** Serializes a query in `format`, or returns `''` when there is nothing to send. */
13
+ export declare function toQueryString(query?: object | null, format?: QueryFormat): string;
14
+ //# sourceMappingURL=queryString.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queryString.d.ts","sourceRoot":"","sources":["../../src/core/queryString.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,IAAI,CAAA;AAEvC,eAAO,MAAM,oBAAoB,EAAE,WAAoB,CAAA;AAEvD,qFAAqF;AACrF,wBAAgB,aAAa,CAC3B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,EACrB,MAAM,GAAE,WAAkC,GACzC,MAAM,CAUR"}
@@ -0,0 +1,18 @@
1
+ import qs from "qs";
2
+
3
+ //#region src/core/queryString.ts
4
+ const DEFAULT_QUERY_FORMAT = "json";
5
+ /** Serializes a query in `format`, or returns `''` when there is nothing to send. */
6
+ function toQueryString(query, format = DEFAULT_QUERY_FORMAT) {
7
+ if (!query) return "";
8
+ if (format === "qs") {
9
+ const queryString = qs.stringify(query);
10
+ return queryString ? `?${queryString}` : "";
11
+ }
12
+ const json = JSON.stringify(query);
13
+ return json === "{}" ? "" : `?query=${encodeURIComponent(json)}`;
14
+ }
15
+
16
+ //#endregion
17
+ export { DEFAULT_QUERY_FORMAT, toQueryString };
18
+ //# sourceMappingURL=queryString.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queryString.mjs","names":[],"sources":["../../src/core/queryString.ts"],"sourcesContent":["import qs from 'qs'\n\n/**\n * How list/get queries (`where`, `include`, `order`, ...) are put in the URL:\n *\n * - `'json'` — `?query=<JSON>`, merged into `req.query` by the backend `parseQuery` middleware.\n * Keeps `null`, booleans and numbers typed and has no nesting limit.\n * - `'qs'` — bracket notation (`?where[name]=x&page=2`). Readable, but the backend parses it with\n * `qs` defaults: `null` arrives as `''`, booleans/numbers as strings, and objects nested deeper\n * than 5 levels (e.g. an `include` inside an `include` with a `where`) are mangled.\n */\nexport type QueryFormat = 'json' | 'qs'\n\nexport const DEFAULT_QUERY_FORMAT: QueryFormat = 'json'\n\n/** Serializes a query in `format`, or returns `''` when there is nothing to send. */\nexport function toQueryString(\n query?: object | null,\n format: QueryFormat = DEFAULT_QUERY_FORMAT,\n): string {\n if (!query) {\n return ''\n }\n if (format === 'qs') {\n const queryString = qs.stringify(query)\n return queryString ? `?${queryString}` : ''\n }\n const json = JSON.stringify(query)\n return json === '{}' ? '' : `?query=${encodeURIComponent(json)}`\n}\n"],"mappings":";;;AAaA,MAAa,uBAAoC;;AAGjD,SAAgB,cACd,OACA,SAAsB,sBACd;AACR,KAAI,CAAC,MACH,QAAO;AAET,KAAI,WAAW,MAAM;EACnB,MAAM,cAAc,GAAG,UAAU,MAAM;AACvC,SAAO,cAAc,IAAI,gBAAgB;;CAE3C,MAAM,OAAO,KAAK,UAAU,MAAM;AAClC,QAAO,SAAS,OAAO,KAAK,UAAU,mBAAmB,KAAK"}
@@ -91,6 +91,8 @@ export interface HasGetMany<TResponse, TQuery extends ListQuery<TResponse> = Lis
91
91
  getMany(query?: TQuery & {
92
92
  paginate?: true;
93
93
  }, headers?: Record<string, string>): Promise<Paginated<TResponse>>;
94
+ /** When `paginate` is only known at runtime (e.g. a `boolean` variable). */
95
+ getMany(query?: TQuery, headers?: Record<string, string>): Promise<Paginated<TResponse> | TResponse[]>;
94
96
  }
95
97
  export type GetByIdQuery<T = Record<string, unknown>> = Pick<ListQuery<T>, 'include' | 'attributes'>;
96
98
  export interface HasGetById<TResponse> {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+
3
+ //#region src/core/withQueryFormat.ts
4
+ /**
5
+ * A view of `client` that serializes queries in `format`. Everything else — methods, base URL and
6
+ * the access token — is read from `client`, so `client.setAccessToken()` still applies to it.
7
+ */
8
+ function overrideQueryFormat(client, format) {
9
+ return Object.create(client, { queryFormat: {
10
+ value: format,
11
+ enumerable: true,
12
+ configurable: true
13
+ } });
14
+ }
15
+ /**
16
+ * Copy of `api` whose client serializes queries in `format`; `api` itself is untouched.
17
+ *
18
+ * The copy has the same prototype and fields as `api`, with `client` replaced. Methods the
19
+ * constructor bound to `api` (`this.getMany = this.getMany.bind(this)`) are bound again to the
20
+ * copy, so they use its client.
21
+ */
22
+ function cloneWithQueryFormat(api, format) {
23
+ const source = api;
24
+ const prototype = Object.getPrototypeOf(api);
25
+ const copy = Object.create(prototype);
26
+ for (const key of Reflect.ownKeys(api)) Object.defineProperty(copy, key, Object.getOwnPropertyDescriptor(api, key));
27
+ Object.defineProperty(copy, "client", {
28
+ value: overrideQueryFormat(source.client, format),
29
+ enumerable: true,
30
+ configurable: true,
31
+ writable: false
32
+ });
33
+ for (const key of Reflect.ownKeys(api)) {
34
+ const method = prototype[key];
35
+ if (typeof copy[key] === "function" && typeof method === "function") copy[key] = method.bind(copy);
36
+ }
37
+ return copy;
38
+ }
39
+
40
+ //#endregion
41
+ exports.cloneWithQueryFormat = cloneWithQueryFormat;
42
+ //# sourceMappingURL=withQueryFormat.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withQueryFormat.cjs","names":[],"sources":["../../src/core/withQueryFormat.ts"],"sourcesContent":["import type { ApiClient } from './ApiClient'\nimport type { QueryFormat } from './queryString'\n\n/**\n * A view of `client` that serializes queries in `format`. Everything else — methods, base URL and\n * the access token — is read from `client`, so `client.setAccessToken()` still applies to it.\n */\nfunction overrideQueryFormat<T extends ApiClient>(client: T, format: QueryFormat): T {\n return Object.create(client, {\n queryFormat: { value: format, enumerable: true, configurable: true },\n })\n}\n\n/**\n * Copy of `api` whose client serializes queries in `format`; `api` itself is untouched.\n *\n * The copy has the same prototype and fields as `api`, with `client` replaced. Methods the\n * constructor bound to `api` (`this.getMany = this.getMany.bind(this)`) are bound again to the\n * copy, so they use its client.\n */\nexport function cloneWithQueryFormat<T extends object>(api: T, format: QueryFormat): T {\n const source = api as T & { client: ApiClient }\n const prototype = Object.getPrototypeOf(api) as Record<PropertyKey, unknown>\n const copy = Object.create(prototype) as Record<PropertyKey, unknown>\n\n for (const key of Reflect.ownKeys(api)) {\n Object.defineProperty(\n copy,\n key,\n Object.getOwnPropertyDescriptor(api, key) as PropertyDescriptor,\n )\n }\n Object.defineProperty(copy, 'client', {\n value: overrideQueryFormat(source.client, format),\n enumerable: true,\n configurable: true,\n writable: false,\n })\n for (const key of Reflect.ownKeys(api)) {\n const method = prototype[key]\n if (typeof copy[key] === 'function' && typeof method === 'function') {\n copy[key] = method.bind(copy)\n }\n }\n\n return copy as T\n}\n"],"mappings":";;;;;;;AAOA,SAAS,oBAAyC,QAAW,QAAwB;AACnF,QAAO,OAAO,OAAO,QAAQ,EAC3B,aAAa;EAAE,OAAO;EAAQ,YAAY;EAAM,cAAc;EAAM,EACrE,CAAC;;;;;;;;;AAUJ,SAAgB,qBAAuC,KAAQ,QAAwB;CACrF,MAAM,SAAS;CACf,MAAM,YAAY,OAAO,eAAe,IAAI;CAC5C,MAAM,OAAO,OAAO,OAAO,UAAU;AAErC,MAAK,MAAM,OAAO,QAAQ,QAAQ,IAAI,CACpC,QAAO,eACL,MACA,KACA,OAAO,yBAAyB,KAAK,IAAI,CAC1C;AAEH,QAAO,eAAe,MAAM,UAAU;EACpC,OAAO,oBAAoB,OAAO,QAAQ,OAAO;EACjD,YAAY;EACZ,cAAc;EACd,UAAU;EACX,CAAC;AACF,MAAK,MAAM,OAAO,QAAQ,QAAQ,IAAI,EAAE;EACtC,MAAM,SAAS,UAAU;AACzB,MAAI,OAAO,KAAK,SAAS,cAAc,OAAO,WAAW,WACvD,MAAK,OAAO,OAAO,KAAK,KAAK;;AAIjC,QAAO"}
@@ -0,0 +1,10 @@
1
+ import type { QueryFormat } from './queryString';
2
+ /**
3
+ * Copy of `api` whose client serializes queries in `format`; `api` itself is untouched.
4
+ *
5
+ * The copy has the same prototype and fields as `api`, with `client` replaced. Methods the
6
+ * constructor bound to `api` (`this.getMany = this.getMany.bind(this)`) are bound again to the
7
+ * copy, so they use its client.
8
+ */
9
+ export declare function cloneWithQueryFormat<T extends object>(api: T, format: QueryFormat): T;
10
+ //# sourceMappingURL=withQueryFormat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withQueryFormat.d.ts","sourceRoot":"","sources":["../../src/core/withQueryFormat.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAYhD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,GAAG,CAAC,CA0BrF"}
@@ -0,0 +1,40 @@
1
+ //#region src/core/withQueryFormat.ts
2
+ /**
3
+ * A view of `client` that serializes queries in `format`. Everything else — methods, base URL and
4
+ * the access token — is read from `client`, so `client.setAccessToken()` still applies to it.
5
+ */
6
+ function overrideQueryFormat(client, format) {
7
+ return Object.create(client, { queryFormat: {
8
+ value: format,
9
+ enumerable: true,
10
+ configurable: true
11
+ } });
12
+ }
13
+ /**
14
+ * Copy of `api` whose client serializes queries in `format`; `api` itself is untouched.
15
+ *
16
+ * The copy has the same prototype and fields as `api`, with `client` replaced. Methods the
17
+ * constructor bound to `api` (`this.getMany = this.getMany.bind(this)`) are bound again to the
18
+ * copy, so they use its client.
19
+ */
20
+ function cloneWithQueryFormat(api, format) {
21
+ const source = api;
22
+ const prototype = Object.getPrototypeOf(api);
23
+ const copy = Object.create(prototype);
24
+ for (const key of Reflect.ownKeys(api)) Object.defineProperty(copy, key, Object.getOwnPropertyDescriptor(api, key));
25
+ Object.defineProperty(copy, "client", {
26
+ value: overrideQueryFormat(source.client, format),
27
+ enumerable: true,
28
+ configurable: true,
29
+ writable: false
30
+ });
31
+ for (const key of Reflect.ownKeys(api)) {
32
+ const method = prototype[key];
33
+ if (typeof copy[key] === "function" && typeof method === "function") copy[key] = method.bind(copy);
34
+ }
35
+ return copy;
36
+ }
37
+
38
+ //#endregion
39
+ export { cloneWithQueryFormat };
40
+ //# sourceMappingURL=withQueryFormat.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withQueryFormat.mjs","names":[],"sources":["../../src/core/withQueryFormat.ts"],"sourcesContent":["import type { ApiClient } from './ApiClient'\nimport type { QueryFormat } from './queryString'\n\n/**\n * A view of `client` that serializes queries in `format`. Everything else — methods, base URL and\n * the access token — is read from `client`, so `client.setAccessToken()` still applies to it.\n */\nfunction overrideQueryFormat<T extends ApiClient>(client: T, format: QueryFormat): T {\n return Object.create(client, {\n queryFormat: { value: format, enumerable: true, configurable: true },\n })\n}\n\n/**\n * Copy of `api` whose client serializes queries in `format`; `api` itself is untouched.\n *\n * The copy has the same prototype and fields as `api`, with `client` replaced. Methods the\n * constructor bound to `api` (`this.getMany = this.getMany.bind(this)`) are bound again to the\n * copy, so they use its client.\n */\nexport function cloneWithQueryFormat<T extends object>(api: T, format: QueryFormat): T {\n const source = api as T & { client: ApiClient }\n const prototype = Object.getPrototypeOf(api) as Record<PropertyKey, unknown>\n const copy = Object.create(prototype) as Record<PropertyKey, unknown>\n\n for (const key of Reflect.ownKeys(api)) {\n Object.defineProperty(\n copy,\n key,\n Object.getOwnPropertyDescriptor(api, key) as PropertyDescriptor,\n )\n }\n Object.defineProperty(copy, 'client', {\n value: overrideQueryFormat(source.client, format),\n enumerable: true,\n configurable: true,\n writable: false,\n })\n for (const key of Reflect.ownKeys(api)) {\n const method = prototype[key]\n if (typeof copy[key] === 'function' && typeof method === 'function') {\n copy[key] = method.bind(copy)\n }\n }\n\n return copy as T\n}\n"],"mappings":";;;;;AAOA,SAAS,oBAAyC,QAAW,QAAwB;AACnF,QAAO,OAAO,OAAO,QAAQ,EAC3B,aAAa;EAAE,OAAO;EAAQ,YAAY;EAAM,cAAc;EAAM,EACrE,CAAC;;;;;;;;;AAUJ,SAAgB,qBAAuC,KAAQ,QAAwB;CACrF,MAAM,SAAS;CACf,MAAM,YAAY,OAAO,eAAe,IAAI;CAC5C,MAAM,OAAO,OAAO,OAAO,UAAU;AAErC,MAAK,MAAM,OAAO,QAAQ,QAAQ,IAAI,CACpC,QAAO,eACL,MACA,KACA,OAAO,yBAAyB,KAAK,IAAI,CAC1C;AAEH,QAAO,eAAe,MAAM,UAAU;EACpC,OAAO,oBAAoB,OAAO,QAAQ,OAAO;EACjD,YAAY;EACZ,cAAc;EACd,UAAU;EACX,CAAC;AACF,MAAK,MAAM,OAAO,QAAQ,QAAQ,IAAI,EAAE;EACtC,MAAM,SAAS,UAAU;AACzB,MAAI,OAAO,KAAK,SAAS,cAAc,OAAO,WAAW,WACvD,MAAK,OAAO,OAAO,KAAK,KAAK;;AAIjC,QAAO"}
package/dist/index.cjs CHANGED
@@ -1,6 +1,8 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
2
  const require_core_errors = require('./core/errors.cjs');
3
3
  const require_core_BaseApiClient = require('./core/BaseApiClient.cjs');
4
+ const require_core_BaseApi = require('./core/BaseApi.cjs');
5
+ const require_core_BaseReadApi = require('./core/BaseReadApi.cjs');
4
6
  const require_core_BaseCrudApi = require('./core/BaseCrudApi.cjs');
5
7
  const require_core_ArchivableCrudApi = require('./core/ArchivableCrudApi.cjs');
6
8
  require('./core/index.cjs');
@@ -10,8 +12,10 @@ exports.ApiError = require_core_errors.ApiError;
10
12
  exports.ArchivableCrudApi = require_core_ArchivableCrudApi.ArchivableCrudApi;
11
13
  exports.AuthenticationError = require_core_errors.AuthenticationError;
12
14
  exports.BadRequestError = require_core_errors.BadRequestError;
15
+ exports.BaseApi = require_core_BaseApi.BaseApi;
13
16
  exports.BaseApiClient = require_core_BaseApiClient.BaseApiClient;
14
17
  exports.BaseCrudApi = require_core_BaseCrudApi.BaseCrudApi;
18
+ exports.BaseReadApi = require_core_BaseReadApi.BaseReadApi;
15
19
  exports.ConflictError = require_core_errors.ConflictError;
16
20
  exports.DigisacError = require_core_errors.DigisacError;
17
21
  exports.InternalServerError = require_core_errors.InternalServerError;
package/dist/index.mjs CHANGED
@@ -1,7 +1,9 @@
1
1
  import { ApiConnectionError, ApiError, AuthenticationError, BadRequestError, ConflictError, DigisacError, InternalServerError, NotFoundError, PaymentRequiredError, PermissionDeniedError, RateLimitError, UnprocessableEntityError, ValidationError, parseFieldErrors } from "./core/errors.mjs";
2
2
  import { BaseApiClient } from "./core/BaseApiClient.mjs";
3
+ import { BaseApi } from "./core/BaseApi.mjs";
4
+ import { BaseReadApi } from "./core/BaseReadApi.mjs";
3
5
  import { BaseCrudApi } from "./core/BaseCrudApi.mjs";
4
6
  import { ArchivableCrudApi } from "./core/ArchivableCrudApi.mjs";
5
7
  import "./core/index.mjs";
6
8
 
7
- export { ApiConnectionError, ApiError, ArchivableCrudApi, AuthenticationError, BadRequestError, BaseApiClient, BaseCrudApi, ConflictError, DigisacError, InternalServerError, NotFoundError, PaymentRequiredError, PermissionDeniedError, RateLimitError, UnprocessableEntityError, ValidationError, parseFieldErrors };
9
+ export { ApiConnectionError, ApiError, ArchivableCrudApi, AuthenticationError, BadRequestError, BaseApi, BaseApiClient, BaseCrudApi, BaseReadApi, ConflictError, DigisacError, InternalServerError, NotFoundError, PaymentRequiredError, PermissionDeniedError, RateLimitError, UnprocessableEntityError, ValidationError, parseFieldErrors };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ikatec/digisac-api-sdk",
3
- "version": "4.0.0",
3
+ "version": "4.2.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.cjs",
6
6
  "module": "./dist/index.mjs",
@@ -25,7 +25,6 @@ const entry: AuthHistory = {
25
25
  event: 'auth',
26
26
  userId: 'user-1',
27
27
  accountId: 'acc-1',
28
- branch: 'main',
29
28
  originIP: '127.0.0.1',
30
29
  originUA: 'Mozilla/5.0',
31
30
  createdAt: '2024-01-01T00:00:00Z',
@@ -69,7 +68,7 @@ describe('AuthHistoryApi', () => {
69
68
  await api.getMany({ page: 2, perPage: 5 })
70
69
  const url = vi.mocked(client.get).mock.calls[0][0] as string
71
70
  expect(url).toContain('/auth-history?')
72
- expect(url).toContain('page=2')
71
+ expect(decodeURIComponent(url)).toContain('"page":2')
73
72
  })
74
73
 
75
74
  it('forwards custom headers', async () => {
@@ -95,10 +94,19 @@ describe('AuthHistoryApi', () => {
95
94
  expect(result).toEqual(entry)
96
95
  })
97
96
 
97
+ it('sends the query (e.g. include) in the query string, not as headers', async () => {
98
+ vi.mocked(client.get).mockResolvedValue(entry)
99
+ await api.getById('ah-1', { include: ['user'] })
100
+ expect(client.get).toHaveBeenCalledWith(
101
+ `/auth-history/ah-1?query=${encodeURIComponent(JSON.stringify({ include: ['user'] }))}`,
102
+ undefined,
103
+ )
104
+ })
105
+
98
106
  it('forwards custom headers', async () => {
99
107
  vi.mocked(client.get).mockResolvedValue(entry)
100
108
  const headers = { 'X-Custom': 'h' }
101
- await api.getById('ah-1', headers)
109
+ await api.getById('ah-1', undefined, headers)
102
110
  expect(client.get).toHaveBeenCalledWith('/auth-history/ah-1', headers)
103
111
  })
104
112