@ikatec/digisac-api-sdk 1.3.1 → 1.3.2

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.
@@ -34,7 +34,7 @@ var BaseCrudApi = class {
34
34
  * @permissions $resourceName.update
35
35
  */
36
36
  updateById(id, body, headers) {
37
- return this.client.patch(`${this.basePath}/${id}`, body, headers);
37
+ return this.client.put(`${this.basePath}/${id}`, body, headers);
38
38
  }
39
39
  /**
40
40
  * Deletes a resource by ID.
@@ -1 +1 @@
1
- {"version":3,"file":"BaseCrudApi.cjs","names":[],"sources":["../../src/core/BaseCrudApi.ts"],"sourcesContent":["import qs from 'qs'\nimport type { ApiClient } from './ApiClient'\nimport type { CrudApi, ListQuery, Paginated } from './types'\nexport type {\n WhereClause,\n IncludeItem,\n ListQuery,\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 protected readonly client: ApiClient\n protected readonly basePath: string\n\n constructor(client: ApiClient, basePath: string) {\n this.client = 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 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 a single resource by ID.\n * @permissions $resourceName.view\n */\n getById(id: string, headers?: Record<string, string>): Promise<TResponse> {\n return this.client.get<TResponse>(`${this.basePath}/${id}`, 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.patch<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":";;;;;;AAgBA,IAAa,cAAb,MAK0D;CACxD,AAAmB;CACnB,AAAmB;CAEnB,YAAY,QAAmB,UAAkB;AAC/C,OAAK,SAAS;AACd,OAAK,WAAW,SAAS,QAAQ,OAAO,GAAG;;CAW7C,QACE,OACA,SAC6C;EAC7C,MAAM,cAAc,QAAQ,IAAI,WAAG,UAAU,MAAM,KAAK;AACxD,SAAO,KAAK,OAAO,IACjB,GAAG,KAAK,WAAW,eACnB,QACD;;;;;;CAOH,QAAQ,IAAY,SAAsD;AACxE,SAAO,KAAK,OAAO,IAAe,GAAG,KAAK,SAAS,GAAG,MAAM,QAAQ;;;;;;CAOtE,OAAO,MAAe,SAAsD;AAC1E,SAAO,KAAK,OAAO,KAAyB,KAAK,UAAU,MAAM,QAAQ;;;;;;CAO3E,WAAW,IAAY,MAAe,SAAsD;AAC1F,SAAO,KAAK,OAAO,MAA0B,GAAG,KAAK,SAAS,GAAG,MAAM,MAAM,QAAQ;;;;;;CAOvF,WAAW,IAAY,SAAsD;AAC3E,SAAO,KAAK,OAAO,OAAkB,GAAG,KAAK,SAAS,GAAG,MAAM,QAAQ"}
1
+ {"version":3,"file":"BaseCrudApi.cjs","names":[],"sources":["../../src/core/BaseCrudApi.ts"],"sourcesContent":["import qs from 'qs'\nimport type { ApiClient } from './ApiClient'\nimport type { CrudApi, ListQuery, Paginated } from './types'\nexport type {\n WhereClause,\n IncludeItem,\n ListQuery,\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 protected readonly client: ApiClient\n protected readonly basePath: string\n\n constructor(client: ApiClient, basePath: string) {\n this.client = 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 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 a single resource by ID.\n * @permissions $resourceName.view\n */\n getById(id: string, headers?: Record<string, string>): Promise<TResponse> {\n return this.client.get<TResponse>(`${this.basePath}/${id}`, 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":";;;;;;AAgBA,IAAa,cAAb,MAK0D;CACxD,AAAmB;CACnB,AAAmB;CAEnB,YAAY,QAAmB,UAAkB;AAC/C,OAAK,SAAS;AACd,OAAK,WAAW,SAAS,QAAQ,OAAO,GAAG;;CAW7C,QACE,OACA,SAC6C;EAC7C,MAAM,cAAc,QAAQ,IAAI,WAAG,UAAU,MAAM,KAAK;AACxD,SAAO,KAAK,OAAO,IACjB,GAAG,KAAK,WAAW,eACnB,QACD;;;;;;CAOH,QAAQ,IAAY,SAAsD;AACxE,SAAO,KAAK,OAAO,IAAe,GAAG,KAAK,SAAS,GAAG,MAAM,QAAQ;;;;;;CAOtE,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"}
@@ -31,7 +31,7 @@ var BaseCrudApi = class {
31
31
  * @permissions $resourceName.update
32
32
  */
33
33
  updateById(id, body, headers) {
34
- return this.client.patch(`${this.basePath}/${id}`, body, headers);
34
+ return this.client.put(`${this.basePath}/${id}`, body, headers);
35
35
  }
36
36
  /**
37
37
  * Deletes a resource by ID.
@@ -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, ListQuery, Paginated } from './types'\nexport type {\n WhereClause,\n IncludeItem,\n ListQuery,\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 protected readonly client: ApiClient\n protected readonly basePath: string\n\n constructor(client: ApiClient, basePath: string) {\n this.client = 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 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 a single resource by ID.\n * @permissions $resourceName.view\n */\n getById(id: string, headers?: Record<string, string>): Promise<TResponse> {\n return this.client.get<TResponse>(`${this.basePath}/${id}`, 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.patch<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":";;;AAgBA,IAAa,cAAb,MAK0D;CACxD,AAAmB;CACnB,AAAmB;CAEnB,YAAY,QAAmB,UAAkB;AAC/C,OAAK,SAAS;AACd,OAAK,WAAW,SAAS,QAAQ,OAAO,GAAG;;CAW7C,QACE,OACA,SAC6C;EAC7C,MAAM,cAAc,QAAQ,IAAI,GAAG,UAAU,MAAM,KAAK;AACxD,SAAO,KAAK,OAAO,IACjB,GAAG,KAAK,WAAW,eACnB,QACD;;;;;;CAOH,QAAQ,IAAY,SAAsD;AACxE,SAAO,KAAK,OAAO,IAAe,GAAG,KAAK,SAAS,GAAG,MAAM,QAAQ;;;;;;CAOtE,OAAO,MAAe,SAAsD;AAC1E,SAAO,KAAK,OAAO,KAAyB,KAAK,UAAU,MAAM,QAAQ;;;;;;CAO3E,WAAW,IAAY,MAAe,SAAsD;AAC1F,SAAO,KAAK,OAAO,MAA0B,GAAG,KAAK,SAAS,GAAG,MAAM,MAAM,QAAQ;;;;;;CAOvF,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 qs from 'qs'\nimport type { ApiClient } from './ApiClient'\nimport type { CrudApi, ListQuery, Paginated } from './types'\nexport type {\n WhereClause,\n IncludeItem,\n ListQuery,\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 protected readonly client: ApiClient\n protected readonly basePath: string\n\n constructor(client: ApiClient, basePath: string) {\n this.client = 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 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 a single resource by ID.\n * @permissions $resourceName.view\n */\n getById(id: string, headers?: Record<string, string>): Promise<TResponse> {\n return this.client.get<TResponse>(`${this.basePath}/${id}`, 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":";;;AAgBA,IAAa,cAAb,MAK0D;CACxD,AAAmB;CACnB,AAAmB;CAEnB,YAAY,QAAmB,UAAkB;AAC/C,OAAK,SAAS;AACd,OAAK,WAAW,SAAS,QAAQ,OAAO,GAAG;;CAW7C,QACE,OACA,SAC6C;EAC7C,MAAM,cAAc,QAAQ,IAAI,GAAG,UAAU,MAAM,KAAK;AACxD,SAAO,KAAK,OAAO,IACjB,GAAG,KAAK,WAAW,eACnB,QACD;;;;;;CAOH,QAAQ,IAAY,SAAsD;AACxE,SAAO,KAAK,OAAO,IAAe,GAAG,KAAK,SAAS,GAAG,MAAM,QAAQ;;;;;;CAOtE,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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ikatec/digisac-api-sdk",
3
- "version": "1.3.1",
3
+ "version": "1.3.2",
4
4
  "type": "module",
5
5
  "main": "./dist/index.cjs",
6
6
  "module": "./dist/index.mjs",
@@ -176,21 +176,21 @@ describe('BaseCrudApi', () => {
176
176
  // ── updateById ───────────────────────────────────────────────────
177
177
 
178
178
  describe('updateById', () => {
179
- it('calls client.patch with basePath/id and body', async () => {
179
+ it('calls client.put with basePath/id and body', async () => {
180
180
  const updated: Item = { id: 'abc', name: 'Updated' }
181
- vi.mocked(client.patch).mockResolvedValue(updated)
181
+ vi.mocked(client.put).mockResolvedValue(updated)
182
182
 
183
183
  const result = await api.updateById('abc', { name: 'Updated' })
184
- expect(client.patch).toHaveBeenCalledWith('/items/abc', { name: 'Updated' }, undefined)
184
+ expect(client.put).toHaveBeenCalledWith('/items/abc', { name: 'Updated' }, undefined)
185
185
  expect(result).toEqual(updated)
186
186
  })
187
187
 
188
188
  it('forwards custom headers', async () => {
189
- vi.mocked(client.patch).mockResolvedValue({ id: '1', name: 'y' })
189
+ vi.mocked(client.put).mockResolvedValue({ id: '1', name: 'y' })
190
190
  const headers = { 'If-Match': 'etag-1' }
191
191
 
192
192
  await api.updateById('1', { name: 'y' }, headers)
193
- expect(client.patch).toHaveBeenCalledWith('/items/1', { name: 'y' }, headers)
193
+ expect(client.put).toHaveBeenCalledWith('/items/1', { name: 'y' }, headers)
194
194
  })
195
195
  })
196
196
 
@@ -233,8 +233,8 @@ describe('BaseCrudApi', () => {
233
233
  await expect(api.create({ name: 'bad' })).rejects.toThrow('Validation failed')
234
234
  })
235
235
 
236
- it('propagates errors from client.patch in updateById', async () => {
237
- vi.mocked(client.patch).mockRejectedValue(new Error('Conflict'))
236
+ it('propagates errors from client.put in updateById', async () => {
237
+ vi.mocked(client.put).mockRejectedValue(new Error('Conflict'))
238
238
  await expect(api.updateById('1', { name: 'x' })).rejects.toThrow('Conflict')
239
239
  })
240
240
 
@@ -68,7 +68,7 @@ export class BaseCrudApi<
68
68
  * @permissions $resourceName.update
69
69
  */
70
70
  updateById(id: string, body: TUpdate, headers?: Record<string, string>): Promise<TResponse> {
71
- return this.client.patch<TResponse, TUpdate>(`${this.basePath}/${id}`, body, headers)
71
+ return this.client.put<TResponse, TUpdate>(`${this.basePath}/${id}`, body, headers)
72
72
  }
73
73
 
74
74
  /**