@klerick/json-api-nestjs-sdk 10.0.0-beta.9 → 10.0.1

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 (79) hide show
  1. package/CHANGELOG.md +117 -0
  2. package/README.md +365 -58
  3. package/cjs/src/index.js +9 -8
  4. package/cjs/src/index.js.map +1 -1
  5. package/cjs/src/lib/json-api-angular.js +22 -18
  6. package/cjs/src/lib/json-api-angular.js.map +1 -1
  7. package/cjs/src/lib/json-api-js.js +11 -11
  8. package/cjs/src/lib/json-api-js.js.map +1 -1
  9. package/cjs/src/lib/service/atomic-operations.service.js +22 -16
  10. package/cjs/src/lib/service/atomic-operations.service.js.map +1 -1
  11. package/cjs/src/lib/service/fetch-inner-client.js +3 -3
  12. package/cjs/src/lib/service/fetch-inner-client.js.map +1 -1
  13. package/cjs/src/lib/service/index.js +3 -3
  14. package/cjs/src/lib/service/index.js.map +1 -1
  15. package/cjs/src/lib/service/json-api-sdk.service.js +33 -21
  16. package/cjs/src/lib/service/json-api-sdk.service.js.map +1 -1
  17. package/cjs/src/lib/service/json-api-utils.service.js +135 -59
  18. package/cjs/src/lib/service/json-api-utils.service.js.map +1 -1
  19. package/cjs/src/lib/types/index.js +10 -10
  20. package/cjs/src/lib/types/index.js.map +1 -1
  21. package/cjs/src/lib/utils/generate-atomic-body.js +21 -20
  22. package/cjs/src/lib/utils/generate-atomic-body.js.map +1 -1
  23. package/cjs/src/lib/utils/index.js +5 -5
  24. package/cjs/src/lib/utils/index.js.map +1 -1
  25. package/cjs/src/lib/utils/utils.js +23 -3
  26. package/cjs/src/lib/utils/utils.js.map +1 -1
  27. package/cjs/src/ngModule.js +8 -8
  28. package/cjs/src/ngModule.js.map +1 -1
  29. package/mjs/package.json +1 -0
  30. package/mjs/src/index.d.ts +4 -4
  31. package/mjs/src/index.js +3 -3
  32. package/mjs/src/index.js.map +1 -1
  33. package/mjs/src/lib/json-api-angular.d.ts +10 -12
  34. package/mjs/src/lib/json-api-angular.js +11 -7
  35. package/mjs/src/lib/json-api-angular.js.map +1 -1
  36. package/mjs/src/lib/json-api-js.d.ts +4 -4
  37. package/mjs/src/lib/json-api-js.js +6 -6
  38. package/mjs/src/lib/json-api-js.js.map +1 -1
  39. package/mjs/src/lib/service/atomic-operations.service.d.ts +7 -7
  40. package/mjs/src/lib/service/atomic-operations.service.js +21 -15
  41. package/mjs/src/lib/service/atomic-operations.service.js.map +1 -1
  42. package/mjs/src/lib/service/fetch-inner-client.d.ts +2 -2
  43. package/mjs/src/lib/service/fetch-inner-client.js +1 -1
  44. package/mjs/src/lib/service/fetch-inner-client.js.map +1 -1
  45. package/mjs/src/lib/service/index.d.ts +3 -3
  46. package/mjs/src/lib/service/index.js +3 -3
  47. package/mjs/src/lib/service/index.js.map +1 -1
  48. package/mjs/src/lib/service/json-api-sdk.service.d.ts +14 -14
  49. package/mjs/src/lib/service/json-api-sdk.service.js +29 -17
  50. package/mjs/src/lib/service/json-api-sdk.service.js.map +1 -1
  51. package/mjs/src/lib/service/json-api-utils.service.d.ts +6 -5
  52. package/mjs/src/lib/service/json-api-utils.service.js +128 -52
  53. package/mjs/src/lib/service/json-api-utils.service.js.map +1 -1
  54. package/mjs/src/lib/token/index.d.ts +1 -1
  55. package/mjs/src/lib/types/atomic-operation.d.ts +11 -11
  56. package/mjs/src/lib/types/atomic-type.d.ts +2 -2
  57. package/mjs/src/lib/types/config.d.ts +2 -2
  58. package/mjs/src/lib/types/entity-chain.d.ts +6 -6
  59. package/mjs/src/lib/types/http-inner-client.d.ts +3 -3
  60. package/mjs/src/lib/types/http-request-params.d.ts +3 -0
  61. package/mjs/src/lib/types/index.d.ts +10 -10
  62. package/mjs/src/lib/types/index.js +10 -10
  63. package/mjs/src/lib/types/index.js.map +1 -1
  64. package/mjs/src/lib/types/promise-json-api-sdk.d.ts +16 -16
  65. package/mjs/src/lib/types/query-params.d.ts +1 -1
  66. package/mjs/src/lib/utils/adapter-for-axios.d.ts +1 -1
  67. package/mjs/src/lib/utils/generate-atomic-body.d.ts +7 -7
  68. package/mjs/src/lib/utils/generate-atomic-body.js +19 -18
  69. package/mjs/src/lib/utils/generate-atomic-body.js.map +1 -1
  70. package/mjs/src/lib/utils/index.d.ts +5 -5
  71. package/mjs/src/lib/utils/index.js +5 -5
  72. package/mjs/src/lib/utils/index.js.map +1 -1
  73. package/mjs/src/lib/utils/utils.d.ts +11 -1
  74. package/mjs/src/lib/utils/utils.js +19 -1
  75. package/mjs/src/lib/utils/utils.js.map +1 -1
  76. package/mjs/src/ngModule.d.ts +3 -3
  77. package/mjs/src/ngModule.js +2 -2
  78. package/mjs/src/ngModule.js.map +1 -1
  79. package/package.json +5 -5
@@ -1,7 +1,7 @@
1
1
  import { createEntityInstance, isObject, ObjectTyped, } from '@klerick/json-api-nestjs-shared';
2
2
  import { kebabCase } from 'change-case-commonjs';
3
- import { getTypeForReq, HttpParams, isRelation, isNullRef } from '../utils';
4
- import { ID_KEY } from '../constants';
3
+ import { getTypeForReq, HttpParams, isRelation, isNullRef, isEmptyArrayRef } from '../utils/index.js';
4
+ import { ID_KEY } from '../constants/index.js';
5
5
  export class JsonApiUtilsService {
6
6
  jsonApiSdkConfig;
7
7
  constructor(jsonApiSdkConfig) {
@@ -113,49 +113,79 @@ export class JsonApiUtilsService {
113
113
  }
114
114
  return httpParams;
115
115
  }
116
- convertResponseData(body, includeEntity) {
116
+ convertResponseData(body, includeEntity, asPlain = false) {
117
117
  const { data, included = [] } = body;
118
118
  const isArray = Array.isArray(data);
119
119
  const arrayData = isArray ? data : [data];
120
120
  const result = [];
121
121
  for (const dataItem of arrayData) {
122
+ let id = dataItem[this.jsonApiSdkConfig.idKey];
123
+ if (this.jsonApiSdkConfig.idIsNumber && /^\d+$/.test(String(id))) {
124
+ const idNumber = parseInt(id, 10);
125
+ id = isNaN(idNumber) ? id : idNumber;
126
+ }
122
127
  const entityObject = {
123
- [this.jsonApiSdkConfig.idKey]: this.jsonApiSdkConfig.idIsNumber
124
- ? parseInt(dataItem[this.jsonApiSdkConfig.idKey], 10)
125
- : dataItem[this.jsonApiSdkConfig.idKey],
128
+ [this.jsonApiSdkConfig.idKey]: id,
126
129
  ...Object.entries(dataItem.attributes || []).reduce((acum, [key, val]) => {
127
- acum[key] = this.jsonApiSdkConfig.dateFields.includes(key)
128
- ? new Date(String(val))
129
- : val;
130
+ if (this.jsonApiSdkConfig.dateFields.includes(key)) {
131
+ const date = new Date(String(val));
132
+ acum[key] = isNaN(date.getTime()) ? val : date;
133
+ }
134
+ else {
135
+ acum[key] = val;
136
+ }
130
137
  return acum;
131
138
  }, {}),
132
139
  };
133
- const itemEntity = Object.assign(this.createEntityInstance(dataItem.type), entityObject);
134
- if (!includeEntity || includeEntity.length === 0) {
135
- result.push(itemEntity);
136
- continue;
137
- }
138
- for (const itemInclude of includeEntity) {
139
- if (!(dataItem.relationships && dataItem.relationships[itemInclude])) {
140
- continue;
141
- }
142
- const relationship = dataItem.relationships[itemInclude];
143
- if (!relationship || !('data' in relationship) || !relationship.data) {
144
- continue;
145
- }
146
- const relationshipData = relationship.data;
147
- if (Array.isArray(relationshipData)) {
148
- itemEntity[itemInclude] = relationshipData.reduce((acum, item) => {
149
- const result = this.findIncludeEntity(item, included);
150
- if (result)
151
- acum.push(result);
152
- return acum;
153
- }, []);
154
- }
155
- else {
156
- const relation = this.findIncludeEntity(relationshipData, included);
157
- if (relation)
158
- itemEntity[itemInclude] = relation;
140
+ const itemEntity = (asPlain
141
+ ? entityObject
142
+ : Object.assign(this.createEntityInstance(dataItem.type), entityObject));
143
+ // Process all relationships from response
144
+ if (dataItem.relationships) {
145
+ for (const [relKey, relationship] of Object.entries(dataItem.relationships)) {
146
+ if (!relationship || typeof relationship !== 'object' || !('data' in relationship)) {
147
+ continue;
148
+ }
149
+ const relationshipData = relationship.data;
150
+ // Skip if no data (null relationship)
151
+ if (relationshipData === null || relationshipData === undefined) {
152
+ continue;
153
+ }
154
+ const isIncluded = includeEntity?.includes(relKey);
155
+ if (Array.isArray(relationshipData)) {
156
+ itemEntity[relKey] = relationshipData.reduce((acum, item) => {
157
+ // Try to find in included first
158
+ const result = isIncluded
159
+ ? this.findIncludeEntity(item, included, asPlain)
160
+ : null;
161
+ if (result) {
162
+ acum.push(result);
163
+ }
164
+ else {
165
+ // Create minimal entity with just id
166
+ const minimalEntity = this.createMinimalEntityFromRelationship(item, asPlain);
167
+ if (minimalEntity)
168
+ acum.push(minimalEntity);
169
+ }
170
+ return acum;
171
+ }, []);
172
+ }
173
+ else {
174
+ // Try to find in included first
175
+ const relation = isIncluded
176
+ ? this.findIncludeEntity(relationshipData, included, asPlain)
177
+ : null;
178
+ if (relation) {
179
+ itemEntity[relKey] = relation;
180
+ }
181
+ else {
182
+ // Create minimal entity with just id
183
+ const minimalEntity = this.createMinimalEntityFromRelationship(relationshipData, asPlain);
184
+ if (minimalEntity) {
185
+ itemEntity[relKey] = minimalEntity;
186
+ }
187
+ }
188
+ }
159
189
  }
160
190
  }
161
191
  result.push(itemEntity);
@@ -170,21 +200,45 @@ export class JsonApiUtilsService {
170
200
  createEntityInstance(name) {
171
201
  return createEntityInstance(name);
172
202
  }
173
- findIncludeEntity(item, included) {
203
+ createMinimalEntityFromRelationship(item, asPlain = false) {
204
+ if (!item || !item['id'])
205
+ return;
206
+ let id = item['id'];
207
+ if (this.jsonApiSdkConfig.idIsNumber && /^\d+$/.test(String(id))) {
208
+ const idNumber = parseInt(id, 10);
209
+ id = isNaN(idNumber) ? id : idNumber;
210
+ }
211
+ const entityObject = {
212
+ [this.jsonApiSdkConfig.idKey]: id,
213
+ };
214
+ if (asPlain) {
215
+ return entityObject;
216
+ }
217
+ return Object.assign(this.createEntityInstance(item.type.toString()), entityObject);
218
+ }
219
+ findIncludeEntity(item, included, asPlain = false) {
174
220
  const relatedIncluded = included.find((includedItem) => includedItem.type === item.type && includedItem.id === item.id);
175
221
  if (!relatedIncluded)
176
222
  return;
223
+ const rawId = relatedIncluded[this.jsonApiSdkConfig.idKey];
177
224
  const entityObject = {
178
- [this.jsonApiSdkConfig.idKey]: this.jsonApiSdkConfig.idIsNumber
179
- ? parseInt(relatedIncluded[this.jsonApiSdkConfig.idKey], 10)
180
- : relatedIncluded[this.jsonApiSdkConfig.idKey],
225
+ [this.jsonApiSdkConfig.idKey]: this.jsonApiSdkConfig.idIsNumber && /^\d+$/.test(String(rawId))
226
+ ? parseInt(rawId, 10)
227
+ : rawId,
181
228
  ...Object.entries(relatedIncluded.attributes || []).reduce((acum, [key, val]) => {
182
- acum[key] = this.jsonApiSdkConfig.dateFields.includes(key)
183
- ? new Date(String(val))
184
- : val;
229
+ if (this.jsonApiSdkConfig.dateFields.includes(key)) {
230
+ const date = new Date(String(val));
231
+ acum[key] = isNaN(date.getTime()) ? val : date;
232
+ }
233
+ else {
234
+ acum[key] = val;
235
+ }
185
236
  return acum;
186
237
  }, {}),
187
238
  };
239
+ if (asPlain) {
240
+ return entityObject;
241
+ }
188
242
  return Object.assign(this.createEntityInstance(item.type.toString()), entityObject);
189
243
  }
190
244
  generateBody(entity) {
@@ -211,19 +265,34 @@ export class JsonApiUtilsService {
211
265
  if (isNullRef(val)) {
212
266
  data = null;
213
267
  }
268
+ else if (isEmptyArrayRef(val)) {
269
+ data = [];
270
+ }
214
271
  else if (Array.isArray(val)) {
215
- data = val.map((i) => ({
216
- type: getTypeForReq(i.constructor.name),
217
- id: i[ID_KEY].toString(),
218
- }));
272
+ data = val.map((i) => {
273
+ const relationId = i[ID_KEY];
274
+ if (relationId === undefined || relationId === null) {
275
+ throw new Error(`Entity '${i.constructor.name}' used in relationship '${String(key)}' must have an id. ` +
276
+ `For atomic operations with temporary IDs, set the id property before using the entity in relationships.`);
277
+ }
278
+ return {
279
+ type: getTypeForReq(i.constructor.name),
280
+ id: relationId.toString(),
281
+ };
282
+ });
219
283
  }
220
284
  else {
221
- if (val[ID_KEY] !== null) {
285
+ const relationId = val[ID_KEY];
286
+ if (relationId !== undefined && relationId !== null) {
222
287
  data = {
223
288
  type: getTypeForReq(val.constructor.name),
224
- id: val[ID_KEY].toString(),
289
+ id: relationId.toString(),
225
290
  };
226
291
  }
292
+ else if (relationId === undefined) {
293
+ throw new Error(`Entity '${val.constructor.name}' used in relationship '${String(key)}' must have an id. ` +
294
+ `For atomic operations with temporary IDs, set the id property before using the entity in relationships.`);
295
+ }
227
296
  else {
228
297
  data = null;
229
298
  }
@@ -244,10 +313,17 @@ export class JsonApiUtilsService {
244
313
  }
245
314
  }
246
315
  generateRelationshipsBody(relationshipEntity) {
247
- const generateRelationObj = (relation) => ({
248
- id: String(Reflect.get(relation, this.jsonApiSdkConfig.idKey)),
249
- type: getTypeForReq(relation.constructor.name),
250
- });
316
+ const generateRelationObj = (relation) => {
317
+ const relationId = Reflect.get(relation, this.jsonApiSdkConfig.idKey);
318
+ if (relationId === undefined || relationId === null) {
319
+ throw new Error(`Entity '${relation.constructor.name}' used in relationship operation must have an id. ` +
320
+ `For atomic operations with temporary IDs, set the id property before using the entity.`);
321
+ }
322
+ return {
323
+ id: String(relationId),
324
+ type: getTypeForReq(relation.constructor.name),
325
+ };
326
+ };
251
327
  return Array.isArray(relationshipEntity)
252
328
  ? relationshipEntity.map((item) => generateRelationObj(item))
253
329
  : generateRelationObj(relationshipEntity);
@@ -1 +1 @@
1
- {"version":3,"file":"json-api-utils.service.js","sourceRoot":"","sources":["../../../../../../../../libs/json-api/json-api-nestjs-sdk/src/lib/service/json-api-utils.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"json-api-utils.service.js","sourceRoot":"","sources":["../../../../../../../../libs/json-api/json-api-nestjs-sdk/src/lib/service/json-api-utils.service.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  import { InjectionToken } from '@angular/core';
2
- import { JsonApiSdkConfig, AtomicFactory as TypeAtomicFactory } from '../types';
2
+ import { JsonApiSdkConfig, AtomicFactory as TypeAtomicFactory } from '../types/index.js';
3
3
  export declare const JSON_API_SDK_CONFIG: InjectionToken<JsonApiSdkConfig>;
4
4
  export declare const AtomicFactory: InjectionToken<TypeAtomicFactory>;
@@ -1,6 +1,6 @@
1
1
  import { RelationKeys } from '@klerick/json-api-nestjs-shared';
2
2
  import { Observable } from 'rxjs';
3
- import { ReturnIfArray } from './utils';
3
+ import { ReturnIfArray } from './utils.js';
4
4
  export interface AtomicRunGeneral<T extends unknown[]> {
5
5
  run(): Observable<T>;
6
6
  }
@@ -8,22 +8,22 @@ export interface AtomicRunPromise<T extends unknown[]> {
8
8
  run(): Promise<T>;
9
9
  }
10
10
  export interface AtomicMainOperations<T extends unknown[]> {
11
- postOne<Entity extends object, OutputEntity extends Entity = Entity>(entity: Entity): AtomicOperations<[...T, OutputEntity]>;
12
- patchOne<Entity extends object, OutputEntity extends Entity = Entity>(entity: Entity): AtomicOperations<[...T, OutputEntity]>;
11
+ postOne<Entity extends object, OutputEntity extends Entity = Entity>(entity: Entity, meta?: Record<string, unknown>): AtomicOperations<[...T, OutputEntity]>;
12
+ patchOne<Entity extends object, OutputEntity extends Entity = Entity>(entity: Entity, meta?: Record<string, unknown>): AtomicOperations<[...T, OutputEntity]>;
13
13
  deleteOne<Entity extends object>(entity: Entity): AtomicOperations<[...T]>;
14
14
  deleteOne<Entity extends object>(entity: Entity, skipEmpty: true): AtomicOperations<[...T]>;
15
15
  deleteOne<Entity extends object>(entity: Entity, skipEmpty: false): AtomicOperations<[...T, 'EMPTY']>;
16
- patchRelationships<Entity extends object, Rel extends RelationKeys<Entity>>(entity: Entity, relationType: Rel): AtomicOperations<[...T, ReturnIfArray<Entity[Rel], string>]>;
17
- postRelationships<Entity extends object, Rel extends RelationKeys<Entity>>(entity: Entity, relationType: Rel): AtomicOperations<[...T, ReturnIfArray<Entity[Rel], string>]>;
18
- deleteRelationships<Entity extends object, Rel extends RelationKeys<Entity>>(entity: Entity, relationType: Rel): AtomicOperations<[...T]>;
16
+ patchRelationships<Entity extends object, Rel extends RelationKeys<Entity>>(entity: Entity, relationType: Rel, meta?: Record<string, unknown>): AtomicOperations<[...T, ReturnIfArray<Entity[Rel], string>]>;
17
+ postRelationships<Entity extends object, Rel extends RelationKeys<Entity>>(entity: Entity, relationType: Rel, meta?: Record<string, unknown>): AtomicOperations<[...T, ReturnIfArray<Entity[Rel], string>]>;
18
+ deleteRelationships<Entity extends object, Rel extends RelationKeys<Entity>>(entity: Entity, relationType: Rel, meta?: Record<string, unknown>): AtomicOperations<[...T]>;
19
19
  }
20
20
  export interface AtomicMainOperationsPromise<T extends unknown[]> {
21
- postOne<Entity extends object, OutputEntity extends Entity = Entity>(entity: Entity): AtomicOperationsPromise<[...T, OutputEntity]>;
22
- patchOne<Entity extends object, OutputEntity extends Entity = Entity>(entity: Entity): AtomicOperationsPromise<[...T, OutputEntity]>;
21
+ postOne<Entity extends object, OutputEntity extends Entity = Entity>(entity: Entity, meta?: Record<string, unknown>): AtomicOperationsPromise<[...T, OutputEntity]>;
22
+ patchOne<Entity extends object, OutputEntity extends Entity = Entity>(entity: Entity, meta?: Record<string, unknown>): AtomicOperationsPromise<[...T, OutputEntity]>;
23
23
  deleteOne<Entity extends object>(entity: Entity): AtomicOperationsPromise<[...T]>;
24
- patchRelationships<Entity extends object, Rel extends RelationKeys<Entity>>(entity: Entity, relationType: Rel): AtomicOperationsPromise<[...T, ReturnIfArray<Entity[Rel], string>]>;
25
- postRelationships<Entity extends object, Rel extends RelationKeys<Entity>>(entity: Entity, relationType: Rel): AtomicOperationsPromise<[...T, ReturnIfArray<Entity[Rel], string>]>;
26
- deleteRelationships<Entity extends object, Rel extends RelationKeys<Entity>>(entity: Entity, relationType: Rel): AtomicOperationsPromise<[...T]>;
24
+ patchRelationships<Entity extends object, Rel extends RelationKeys<Entity>>(entity: Entity, relationType: Rel, meta?: Record<string, unknown>): AtomicOperationsPromise<[...T, ReturnIfArray<Entity[Rel], string>]>;
25
+ postRelationships<Entity extends object, Rel extends RelationKeys<Entity>>(entity: Entity, relationType: Rel, meta?: Record<string, unknown>): AtomicOperationsPromise<[...T, ReturnIfArray<Entity[Rel], string>]>;
26
+ deleteRelationships<Entity extends object, Rel extends RelationKeys<Entity>>(entity: Entity, relationType: Rel, meta?: Record<string, unknown>): AtomicOperationsPromise<[...T]>;
27
27
  }
28
28
  export interface AtomicOperations<T extends unknown[]> extends AtomicMainOperations<T>, AtomicRunGeneral<T> {
29
29
  }
@@ -1,12 +1,12 @@
1
1
  import { KEY_MAIN_INPUT_SCHEMA, KEY_MAIN_OUTPUT_SCHEMA, Operation, ResourceObject } from '@klerick/json-api-nestjs-shared';
2
- import { AtomicMainOperations } from './atomic-operation';
2
+ import { AtomicMainOperations } from './atomic-operation.js';
3
3
  export type BodyType = {
4
4
  op: Operation;
5
5
  ref: {
6
6
  type: string;
7
7
  id?: string;
8
8
  relationship?: string;
9
- tmpId?: string;
9
+ lid?: string;
10
10
  };
11
11
  data?: any;
12
12
  };
@@ -1,5 +1,5 @@
1
- import { PartialByKeys } from './utils';
2
- import { HttpInnerClient } from './http-inner-client';
1
+ import { PartialByKeys } from './utils.js';
2
+ import { HttpInnerClient } from './http-inner-client.js';
3
3
  export type JsonApiSdkConfig = {
4
4
  apiHost: string;
5
5
  apiPrefix?: string;
@@ -1,6 +1,6 @@
1
1
  import { Observable } from 'rxjs';
2
2
  import { RelationKeys } from '@klerick/json-api-nestjs-shared';
3
- import { ReturnIfArray } from './utils';
3
+ import { ReturnIfArray } from './utils.js';
4
4
  /**
5
5
  * Chainable entity methods returning Observable
6
6
  * @param E - Input entity type (for request body)
@@ -8,13 +8,13 @@ import { ReturnIfArray } from './utils';
8
8
  * @param IdKey - ID field key, defaults to 'id'
9
9
  */
10
10
  export interface EntityChain<E extends object, OutputE extends E = E, IdKey extends string = 'id'> {
11
- postOne(): Observable<OutputE>;
12
- patchOne(): Observable<OutputE>;
11
+ postOne(meta?: Record<string, unknown>): Observable<OutputE>;
12
+ patchOne(meta?: Record<string, unknown>): Observable<OutputE>;
13
13
  deleteOne(): Observable<void>;
14
14
  getRelationships<Rel extends RelationKeys<E, IdKey>>(relationType: Rel): Observable<ReturnIfArray<E[Rel], string>>;
15
- patchRelationships<Rel extends RelationKeys<E, IdKey>>(relationType: Rel): Observable<ReturnIfArray<E[Rel], string>>;
16
- postRelationships<Rel extends RelationKeys<E, IdKey>>(relationType: Rel): Observable<ReturnIfArray<E[Rel], string>>;
17
- deleteRelationships<Rel extends RelationKeys<E, IdKey>>(relationType: Rel): Observable<void>;
15
+ patchRelationships<Rel extends RelationKeys<E, IdKey>>(relationType: Rel, meta?: Record<string, unknown>): Observable<ReturnIfArray<E[Rel], string>>;
16
+ postRelationships<Rel extends RelationKeys<E, IdKey>>(relationType: Rel, meta?: Record<string, unknown>): Observable<ReturnIfArray<E[Rel], string>>;
17
+ deleteRelationships<Rel extends RelationKeys<E, IdKey>>(relationType: Rel, meta?: Record<string, unknown>): Observable<void>;
18
18
  }
19
19
  /**
20
20
  * Converts Observable<T> to Promise<T>
@@ -1,8 +1,8 @@
1
1
  import { Observable } from 'rxjs';
2
2
  import { RelationKeys, ResourceObject, ResourceObjectRelationships } from '@klerick/json-api-nestjs-shared';
3
- import { ParamObject } from '../utils';
4
- import { PostData, PatchData, RelationBodyData } from './http-request-params';
5
- import { AtomicBody, AtomicResponse } from './atomic-type';
3
+ import { ParamObject } from '../utils/index.js';
4
+ import { PostData, PatchData, RelationBodyData } from './http-request-params.js';
5
+ import { AtomicBody, AtomicResponse } from './atomic-type.js';
6
6
  export interface HttpInnerClient {
7
7
  get<T extends object, R extends 'object' | 'array' = 'object', IdKey extends string = string>(url: string, params?: {
8
8
  params: ParamObject;
@@ -10,11 +10,14 @@ type PostMainData<T = string> = Omit<MainData<T>, 'id'> & {
10
10
  };
11
11
  export type PostData<T extends object, IdKey extends string = 'id'> = {
12
12
  data: PostMainData & BaseAttribute<T, IdKey> & BaseRelationships<T, IdKey>;
13
+ meta?: Record<string, unknown>;
13
14
  };
14
15
  export type PatchData<T extends object, IdKey extends string = 'id'> = {
15
16
  data: MainData & BaseAttribute<T, IdKey> & BaseRelationships<T, IdKey>;
17
+ meta?: Record<string, unknown>;
16
18
  };
17
19
  export type RelationBodyData = {
18
20
  data: MainData | MainData[];
21
+ meta?: Record<string, unknown>;
19
22
  };
20
23
  export {};
@@ -1,10 +1,10 @@
1
- export * from './http-inner-client';
2
- export * from './http-request-params';
3
- export * from './atomic-type';
4
- export * from './atomic-operation';
5
- export * from './utils';
6
- export * from './config';
7
- export * from './query-params';
8
- export * from './promise-json-api-sdk';
9
- export * from './filter-operand';
10
- export * from './entity-chain';
1
+ export * from './http-inner-client.js';
2
+ export * from './http-request-params.js';
3
+ export * from './atomic-type.js';
4
+ export * from './atomic-operation.js';
5
+ export * from './utils.js';
6
+ export * from './config.js';
7
+ export * from './query-params.js';
8
+ export * from './promise-json-api-sdk.js';
9
+ export * from './filter-operand.js';
10
+ export * from './entity-chain.js';
@@ -1,11 +1,11 @@
1
- export * from './http-inner-client';
2
- export * from './http-request-params';
3
- export * from './atomic-type';
4
- export * from './atomic-operation';
5
- export * from './utils';
6
- export * from './config';
7
- export * from './query-params';
8
- export * from './promise-json-api-sdk';
9
- export * from './filter-operand';
10
- export * from './entity-chain';
1
+ export * from './http-inner-client.js';
2
+ export * from './http-request-params.js';
3
+ export * from './atomic-type.js';
4
+ export * from './atomic-operation.js';
5
+ export * from './utils.js';
6
+ export * from './config.js';
7
+ export * from './query-params.js';
8
+ export * from './promise-json-api-sdk.js';
9
+ export * from './filter-operand.js';
10
+ export * from './entity-chain.js';
11
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../libs/json-api/json-api-nestjs-sdk/src/lib/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../libs/json-api/json-api-nestjs-sdk/src/lib/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC"}
@@ -1,27 +1,27 @@
1
1
  import { EntityClass, RelationKeys } from '@klerick/json-api-nestjs-shared';
2
- import { QueryParams, QueryParamsForOneItem } from './query-params';
3
- import { EntityArray } from '../utils';
4
- import { ReturnIfArray } from './utils';
5
- import { PromiseEntityChain } from './entity-chain';
2
+ import { QueryParams, QueryParamsForOneItem } from './query-params.js';
3
+ import { EntityArray } from '../utils/index.js';
4
+ import { ReturnIfArray } from './utils.js';
5
+ import { PromiseEntityChain } from './entity-chain.js';
6
6
  /**
7
7
  * JsonApiSdkService with Promise return types
8
- * Methods support separate Input and Output types via generics.
8
+ * POST/PATCH methods support separate Input and Output types via generics.
9
9
  * If OutputEntity is not specified, it defaults to the same as Entity.
10
10
  */
11
11
  export interface PromiseJsonApiSdkService {
12
- getList<Entity extends object, OutputEntity extends Entity = Entity>(entity: EntityClass<Entity>, params?: QueryParams<Entity>): Promise<EntityArray<OutputEntity>>;
13
- getList<Entity extends object, OutputEntity extends Entity = Entity>(typeName: string, params?: QueryParams<Entity>): Promise<EntityArray<OutputEntity>>;
14
- getAll<Entity extends object, OutputEntity extends Entity = Entity>(entity: EntityClass<Entity>, params?: QueryParams<Entity>, push?: boolean): Promise<EntityArray<OutputEntity>>;
15
- getAll<Entity extends object, OutputEntity extends Entity = Entity>(typeName: string, params?: QueryParams<Entity>, push?: boolean): Promise<EntityArray<OutputEntity>>;
16
- getOne<Entity extends object, OutputEntity extends Entity = Entity>(entity: EntityClass<Entity>, id: string | number, params?: QueryParamsForOneItem<Entity>): Promise<OutputEntity>;
17
- getOne<Entity extends object, OutputEntity extends Entity = Entity>(typeName: string, id: string | number, params?: QueryParamsForOneItem<Entity>): Promise<OutputEntity>;
18
- postOne<Entity extends object, OutputEntity extends Entity = Entity>(entity: Entity): Promise<OutputEntity>;
19
- patchOne<Entity extends object, OutputEntity extends Entity = Entity>(entity: Entity): Promise<OutputEntity>;
12
+ getList<Entity extends object>(entity: EntityClass<Entity>, params?: QueryParams<Entity>): Promise<EntityArray<Entity>>;
13
+ getList<Entity extends object>(typeName: string, params?: QueryParams<Entity>): Promise<EntityArray<Entity>>;
14
+ getAll<Entity extends object>(entity: EntityClass<Entity>, params?: QueryParams<Entity>, push?: boolean): Promise<EntityArray<Entity>>;
15
+ getAll<Entity extends object>(typeName: string, params?: QueryParams<Entity>, push?: boolean): Promise<EntityArray<Entity>>;
16
+ getOne<Entity extends object>(entity: EntityClass<Entity>, id: string | number, params?: QueryParamsForOneItem<Entity>): Promise<Entity>;
17
+ getOne<Entity extends object>(typeName: string, id: string | number, params?: QueryParamsForOneItem<Entity>): Promise<Entity>;
18
+ postOne<Entity extends object, OutputEntity extends Entity = Entity>(entity: Entity, meta?: Record<string, unknown>): Promise<OutputEntity>;
19
+ patchOne<Entity extends object, OutputEntity extends Entity = Entity>(entity: Entity, meta?: Record<string, unknown>): Promise<OutputEntity>;
20
20
  deleteOne<Entity extends object>(entity: Entity): Promise<void>;
21
21
  getRelationships<Entity extends object, IdKey extends string = 'id', Rel extends RelationKeys<Entity, IdKey> = RelationKeys<Entity, IdKey>>(entity: Entity, relationType: Rel): Promise<ReturnIfArray<Entity[Rel], string>>;
22
- patchRelationships<Entity extends object, IdKey extends string = 'id', Rel extends RelationKeys<Entity, IdKey> = RelationKeys<Entity, IdKey>>(entity: Entity, relationType: Rel): Promise<ReturnIfArray<Entity[Rel], string>>;
23
- postRelationships<Entity extends object, IdKey extends string = 'id', Rel extends RelationKeys<Entity, IdKey> = RelationKeys<Entity, IdKey>>(entity: Entity, relationType: Rel): Promise<ReturnIfArray<Entity[Rel], string>>;
24
- deleteRelationships<Entity extends object, IdKey extends string = 'id', Rel extends RelationKeys<Entity, IdKey> = RelationKeys<Entity, IdKey>>(entity: Entity, relationType: Rel): Promise<void>;
22
+ patchRelationships<Entity extends object, IdKey extends string = 'id', Rel extends RelationKeys<Entity, IdKey> = RelationKeys<Entity, IdKey>>(entity: Entity, relationType: Rel, meta?: Record<string, unknown>): Promise<ReturnIfArray<Entity[Rel], string>>;
23
+ postRelationships<Entity extends object, IdKey extends string = 'id', Rel extends RelationKeys<Entity, IdKey> = RelationKeys<Entity, IdKey>>(entity: Entity, relationType: Rel, meta?: Record<string, unknown>): Promise<ReturnIfArray<Entity[Rel], string>>;
24
+ deleteRelationships<Entity extends object, IdKey extends string = 'id', Rel extends RelationKeys<Entity, IdKey> = RelationKeys<Entity, IdKey>>(entity: Entity, relationType: Rel, meta?: Record<string, unknown>): Promise<void>;
25
25
  entity<E extends object, OutputE extends E = E>(typeName: string, data: E): PromiseEntityChain<E, OutputE>;
26
26
  entity<E extends object>(typeName: string, data: E, raw: true): E;
27
27
  }
@@ -1,5 +1,5 @@
1
1
  import { QueryField, RelationKeys, PropertyKeys, TypeOfArray } from '@klerick/json-api-nestjs-shared';
2
- import { Operands, OperandsRelation } from './filter-operand';
2
+ import { Operands, OperandsRelation } from './filter-operand.js';
3
3
  export type SortType = 'ASC' | 'DESC';
4
4
  export type Includes<T> = RelationKeys<T>[];
5
5
  type TargetField<E> = {
@@ -1,3 +1,3 @@
1
1
  import { AxiosStatic, AxiosInstance } from 'axios';
2
- import { HttpInnerClient } from '../types';
2
+ import { HttpInnerClient } from '../types/index.js';
3
3
  export declare function adapterForAxios(axios: AxiosStatic | AxiosInstance): HttpInnerClient;
@@ -1,6 +1,6 @@
1
1
  import { RelationKeys } from '@klerick/json-api-nestjs-shared';
2
- import { AtomicMainOperations, JsonApiSdkConfig, BodyType } from '../types';
3
- import { JsonApiUtilsService } from '../service';
2
+ import { AtomicMainOperations, JsonApiSdkConfig, BodyType } from '../types/index.js';
3
+ import { JsonApiUtilsService } from '../service/index.js';
4
4
  export type AtomicVoidOperation = {
5
5
  [K in keyof AtomicMainOperations<[]>]: (...arg: any) => void;
6
6
  };
@@ -13,10 +13,10 @@ export declare class GenerateAtomicBody<Entity extends object = any, Rel extends
13
13
  get isSkipEmpty(): boolean;
14
14
  private setToBody;
15
15
  getBody(): BodyType;
16
- postOne(entity: Entity): void;
17
- patchOne(entity: Entity): void;
16
+ postOne(entity: Entity, meta?: Record<string, unknown>): void;
17
+ patchOne(entity: Entity, meta?: Record<string, unknown>): void;
18
18
  deleteOne(entity: Entity, skipEmpty: boolean): void;
19
- patchRelationships(entity: Entity, relationType: Rel): void;
20
- postRelationships(entity: Entity, relationType: Rel): void;
21
- deleteRelationships(entity: Entity, relationType: Rel): void;
19
+ patchRelationships(entity: Entity, relationType: Rel, meta?: Record<string, unknown>): void;
20
+ postRelationships(entity: Entity, relationType: Rel, meta?: Record<string, unknown>): void;
21
+ deleteRelationships(entity: Entity, relationType: Rel, meta?: Record<string, unknown>): void;
22
22
  }