@klerick/json-api-nestjs-sdk 10.0.0-beta.8 → 10.0.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 (83) hide show
  1. package/CHANGELOG.md +121 -0
  2. package/README.md +498 -45
  3. package/cjs/src/index.js +9 -7
  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 +31 -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 +55 -22
  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 +138 -59
  18. package/cjs/src/lib/service/json-api-utils.service.js.map +1 -1
  19. package/cjs/src/lib/types/entity-chain.js +3 -0
  20. package/cjs/src/lib/types/entity-chain.js.map +1 -0
  21. package/cjs/src/lib/types/index.js +10 -9
  22. package/cjs/src/lib/types/index.js.map +1 -1
  23. package/cjs/src/lib/utils/generate-atomic-body.js +21 -20
  24. package/cjs/src/lib/utils/generate-atomic-body.js.map +1 -1
  25. package/cjs/src/lib/utils/index.js +5 -5
  26. package/cjs/src/lib/utils/index.js.map +1 -1
  27. package/cjs/src/lib/utils/utils.js +42 -3
  28. package/cjs/src/lib/utils/utils.js.map +1 -1
  29. package/cjs/src/ngModule.js +8 -8
  30. package/cjs/src/ngModule.js.map +1 -1
  31. package/mjs/package.json +1 -0
  32. package/mjs/src/index.d.ts +4 -4
  33. package/mjs/src/index.js +3 -3
  34. package/mjs/src/index.js.map +1 -1
  35. package/mjs/src/lib/json-api-angular.d.ts +10 -12
  36. package/mjs/src/lib/json-api-angular.js +11 -7
  37. package/mjs/src/lib/json-api-angular.js.map +1 -1
  38. package/mjs/src/lib/json-api-js.d.ts +4 -4
  39. package/mjs/src/lib/json-api-js.js +26 -6
  40. package/mjs/src/lib/json-api-js.js.map +1 -1
  41. package/mjs/src/lib/service/atomic-operations.service.d.ts +7 -7
  42. package/mjs/src/lib/service/atomic-operations.service.js +21 -15
  43. package/mjs/src/lib/service/atomic-operations.service.js.map +1 -1
  44. package/mjs/src/lib/service/fetch-inner-client.d.ts +2 -2
  45. package/mjs/src/lib/service/fetch-inner-client.js +1 -1
  46. package/mjs/src/lib/service/fetch-inner-client.js.map +1 -1
  47. package/mjs/src/lib/service/index.d.ts +3 -3
  48. package/mjs/src/lib/service/index.js +3 -3
  49. package/mjs/src/lib/service/index.js.map +1 -1
  50. package/mjs/src/lib/service/json-api-sdk.service.d.ts +13 -8
  51. package/mjs/src/lib/service/json-api-sdk.service.js +51 -18
  52. package/mjs/src/lib/service/json-api-sdk.service.js.map +1 -1
  53. package/mjs/src/lib/service/json-api-utils.service.d.ts +6 -5
  54. package/mjs/src/lib/service/json-api-utils.service.js +132 -53
  55. package/mjs/src/lib/service/json-api-utils.service.js.map +1 -1
  56. package/mjs/src/lib/token/index.d.ts +1 -1
  57. package/mjs/src/lib/types/atomic-operation.d.ts +11 -11
  58. package/mjs/src/lib/types/atomic-type.d.ts +2 -2
  59. package/mjs/src/lib/types/config.d.ts +2 -2
  60. package/mjs/src/lib/types/entity-chain.d.ts +32 -0
  61. package/mjs/src/lib/types/entity-chain.js +1 -0
  62. package/mjs/src/lib/types/entity-chain.js.map +1 -0
  63. package/mjs/src/lib/types/http-inner-client.d.ts +3 -3
  64. package/mjs/src/lib/types/http-request-params.d.ts +3 -0
  65. package/mjs/src/lib/types/index.d.ts +10 -9
  66. package/mjs/src/lib/types/index.js +10 -9
  67. package/mjs/src/lib/types/index.js.map +1 -1
  68. package/mjs/src/lib/types/promise-json-api-sdk.d.ts +20 -9
  69. package/mjs/src/lib/types/query-params.d.ts +1 -1
  70. package/mjs/src/lib/utils/adapter-for-axios.d.ts +1 -1
  71. package/mjs/src/lib/utils/generate-atomic-body.d.ts +7 -7
  72. package/mjs/src/lib/utils/generate-atomic-body.js +19 -18
  73. package/mjs/src/lib/utils/generate-atomic-body.js.map +1 -1
  74. package/mjs/src/lib/utils/index.d.ts +5 -5
  75. package/mjs/src/lib/utils/index.js +5 -5
  76. package/mjs/src/lib/utils/index.js.map +1 -1
  77. package/mjs/src/lib/utils/utils.d.ts +20 -1
  78. package/mjs/src/lib/utils/utils.js +36 -1
  79. package/mjs/src/lib/utils/utils.js.map +1 -1
  80. package/mjs/src/ngModule.d.ts +3 -3
  81. package/mjs/src/ngModule.js +2 -2
  82. package/mjs/src/ngModule.js.map +1 -1
  83. package/package.json +5 -5
@@ -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
  }
@@ -1,5 +1,5 @@
1
1
  import { Operation } from '@klerick/json-api-nestjs-shared';
2
- import { getTypeForReq } from './utils';
2
+ import { getTypeForReq } from './utils.js';
3
3
  export class GenerateAtomicBody {
4
4
  jsonApiUtilsService;
5
5
  jsonApiSdkConfig;
@@ -12,7 +12,7 @@ export class GenerateAtomicBody {
12
12
  get isSkipEmpty() {
13
13
  return this.skipEmpty;
14
14
  }
15
- setToBody(op, entity, relationType) {
15
+ setToBody(op, entity, relationType, meta) {
16
16
  const type = getTypeForReq(entity.constructor.name);
17
17
  const { relationships, attributes } = this.jsonApiUtilsService.generateBody(entity);
18
18
  const id = Reflect.get(entity, this.jsonApiSdkConfig.idKey);
@@ -26,61 +26,62 @@ export class GenerateAtomicBody {
26
26
  ...idObj,
27
27
  };
28
28
  const rel = relationType ? { relationship: String(relationType) } : {};
29
- const tmpId = op === 'add' && id && !relationType ? { tmpId: String(id) } : {};
30
- if (op === 'add' && id && !relationType) {
31
- idObj['id'] = String(id);
32
- }
29
+ const lid = op === 'add' && id && !relationType ? { lid: String(id) } : {};
30
+ // IMPORTANT: Do NOT add meta for remove operation without relationship
31
+ // zodRemove schema doesn't have meta field
32
+ const shouldIncludeMeta = meta && !(op === 'remove' && !relationType);
33
33
  this.bodyData = {
34
34
  op,
35
- ref: { type, ...idObj, ...rel, ...tmpId },
35
+ ref: { type, ...idObj, ...rel, ...lid },
36
36
  ...(op === 'remove' && !relationType ? {} : { data }),
37
+ ...(shouldIncludeMeta ? { meta } : {}),
37
38
  };
38
39
  }
39
40
  getBody() {
40
41
  return this.bodyData;
41
42
  }
42
- postOne(entity) {
43
- this.setToBody(Operation.add, entity);
43
+ postOne(entity, meta) {
44
+ this.setToBody(Operation.add, entity, undefined, meta);
44
45
  }
45
- patchOne(entity) {
46
+ patchOne(entity, meta) {
46
47
  if (Reflect.get(entity, this.jsonApiSdkConfig.idKey) === undefined) {
47
48
  throw new Error('Resource params should be instance of resource with id params');
48
49
  }
49
- this.setToBody(Operation.update, entity);
50
+ this.setToBody(Operation.update, entity, undefined, meta);
50
51
  }
51
52
  deleteOne(entity, skipEmpty) {
52
53
  if (!Reflect.get(entity, this.jsonApiSdkConfig.idKey)) {
53
54
  throw new Error('Resource params should be instance of resource with id params');
54
55
  }
55
56
  this.skipEmpty = skipEmpty;
56
- this.setToBody(Operation.remove, entity);
57
+ this.setToBody(Operation.remove, entity, undefined, undefined);
57
58
  }
58
- patchRelationships(entity, relationType) {
59
+ patchRelationships(entity, relationType, meta) {
59
60
  if (!Reflect.get(entity, this.jsonApiSdkConfig.idKey)) {
60
61
  throw new Error('Resource params should be instance of resource with id params');
61
62
  }
62
63
  if (entity[relationType] === undefined) {
63
64
  new Error(`${relationType.toString()} should not be undefined in entity`);
64
65
  }
65
- this.setToBody(Operation.update, entity, relationType);
66
+ this.setToBody(Operation.update, entity, relationType, meta);
66
67
  }
67
- postRelationships(entity, relationType) {
68
+ postRelationships(entity, relationType, meta) {
68
69
  if (!Reflect.get(entity, this.jsonApiSdkConfig.idKey)) {
69
70
  throw new Error('Resource params should be instance of resource with id params');
70
71
  }
71
72
  if (entity[relationType] === undefined) {
72
73
  throw new Error(`${relationType.toString()} should not be undefined in entity`);
73
74
  }
74
- this.setToBody(Operation.add, entity, relationType);
75
+ this.setToBody(Operation.add, entity, relationType, meta);
75
76
  }
76
- deleteRelationships(entity, relationType) {
77
+ deleteRelationships(entity, relationType, meta) {
77
78
  if (!Reflect.get(entity, this.jsonApiSdkConfig.idKey)) {
78
79
  throw new Error('Resource params should be instance of resource with id params');
79
80
  }
80
81
  if (entity[relationType] === undefined) {
81
82
  throw new Error(`${relationType.toString()} should not be undefined in entity`);
82
83
  }
83
- this.setToBody(Operation.remove, entity, relationType);
84
+ this.setToBody(Operation.remove, entity, relationType, meta);
84
85
  }
85
86
  }
86
87
  //# sourceMappingURL=generate-atomic-body.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate-atomic-body.js","sourceRoot":"","sources":["../../../../../../../../libs/json-api/json-api-nestjs-sdk/src/lib/utils/generate-atomic-body.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-atomic-body.js","sourceRoot":"","sources":["../../../../../../../../libs/json-api/json-api-nestjs-sdk/src/lib/utils/generate-atomic-body.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAgB,MAAM,iCAAiC,CAAC;AAG1E,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAO3C,MAAM,OAAO,kBAAkB;IAMnB;IACA;IAFV,YACU,mBAAwC,EACxC,gBAAkC;QADlC,wBAAmB,GAAnB,mBAAmB,CAAqB;QACxC,qBAAgB,GAAhB,gBAAgB,CAAkB;IACzC,CAAC;IACI,QAAQ,CAAY;IACpB,SAAS,GAAG,IAAI,CAAC;IAEzB,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAEO,SAAS,CACf,EAAa,EACb,MAAc,EACd,YAAkB,EAClB,IAA8B;QAE9B,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAEpD,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,GACjC,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAChD,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAE5D,MAAM,KAAK,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;QACtE,MAAM,IAAI,GAAG,YAAY;YACvB,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,yBAAyB,CAChD,MAAM,CAAC,YAAY,CAAQ,CAC5B;YACH,CAAC,CAAC;gBACE,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;gBAC5C,UAAU;gBACV,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnE,GAAG,KAAK;aACT,CAAC;QAEN,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,MAAM,GAAG,GACP,EAAE,KAAK,KAAK,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAEjE,uEAAuE;QACvE,2CAA2C;QAC3C,MAAM,iBAAiB,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,KAAK,QAAQ,IAAI,CAAC,YAAY,CAAC,CAAC;QAEtE,IAAI,CAAC,QAAQ,GAAG;YACd,EAAE;YACF,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE;YACvC,GAAG,CAAC,EAAE,KAAK,QAAQ,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;YACrD,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACvC,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,OAAO,CAAC,MAAc,EAAE,IAA8B;QACpD,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IACzD,CAAC;IACD,QAAQ,CAAC,MAAc,EAAE,IAA8B;QACrD,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE,CAAC;YACnE,MAAM,IAAI,KAAK,CACb,+DAA+D,CAChE,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAC5D,CAAC;IACD,SAAS,CAAC,MAAc,EAAE,SAAkB;QAC1C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;YACtD,MAAM,IAAI,KAAK,CACb,+DAA+D,CAChE,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IACjE,CAAC;IACD,kBAAkB,CAChB,MAAc,EACd,YAAiB,EACjB,IAA8B;QAE9B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;YACtD,MAAM,IAAI,KAAK,CACb,+DAA+D,CAChE,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,CAAC,YAAY,CAAC,KAAK,SAAS,EAAE,CAAC;YACvC,IAAI,KAAK,CAAC,GAAG,YAAY,CAAC,QAAQ,EAAE,oCAAoC,CAAC,CAAC;QAC5E,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;IAC/D,CAAC;IACD,iBAAiB,CACf,MAAc,EACd,YAAiB,EACjB,IAA8B;QAE9B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;YACtD,MAAM,IAAI,KAAK,CACb,+DAA+D,CAChE,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,CAAC,YAAY,CAAC,KAAK,SAAS,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CACb,GAAG,YAAY,CAAC,QAAQ,EAAE,oCAAoC,CAC/D,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;IAC5D,CAAC;IACD,mBAAmB,CACjB,MAAc,EACd,YAAiB,EACjB,IAA8B;QAE9B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;YACtD,MAAM,IAAI,KAAK,CACb,+DAA+D,CAChE,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,CAAC,YAAY,CAAC,KAAK,SAAS,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CACb,GAAG,YAAY,CAAC,QAAQ,EAAE,oCAAoC,CAC/D,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;IAC/D,CAAC;CACF"}
@@ -1,5 +1,5 @@
1
- export * from './http-params';
2
- export * from './generate-atomic-body';
3
- export * from './entity-array';
4
- export * from './utils';
5
- export * from './adapter-for-axios';
1
+ export * from './http-params.js';
2
+ export * from './generate-atomic-body.js';
3
+ export * from './entity-array.js';
4
+ export * from './utils.js';
5
+ export * from './adapter-for-axios.js';
@@ -1,6 +1,6 @@
1
- export * from './http-params';
2
- export * from './generate-atomic-body';
3
- export * from './entity-array';
4
- export * from './utils';
5
- export * from './adapter-for-axios';
1
+ export * from './http-params.js';
2
+ export * from './generate-atomic-body.js';
3
+ export * from './entity-array.js';
4
+ export * from './utils.js';
5
+ export * from './adapter-for-axios.js';
6
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../libs/json-api/json-api-nestjs-sdk/src/lib/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../libs/json-api/json-api-nestjs-sdk/src/lib/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,wBAAwB,CAAC"}
@@ -1,4 +1,23 @@
1
- import { JsonApiSdkConfig, JsonSdkConfig } from '../types';
1
+ import { JsonApiSdkConfig, JsonSdkConfig } from '../types/index.js';
2
+ /**
3
+ * Marker for null relationship.
4
+ * Returns null for TypeScript but object with Symbol marker for runtime.
5
+ */
6
+ export declare function nullRef(): null;
7
+ /**
8
+ * Checks if value is a nullRef marker
9
+ */
10
+ export declare function isNullRef(val: unknown): boolean;
11
+ /**
12
+ * Marker for empty array relationship.
13
+ * Returns empty array for TypeScript but object with Symbol marker for runtime.
14
+ * Use this to explicitly clear all items from a to-many relationship.
15
+ */
16
+ export declare function emptyArrayRef<T = unknown>(): T[];
17
+ /**
18
+ * Checks if value is an emptyArrayRef marker
19
+ */
20
+ export declare function isEmptyArrayRef(val: unknown): boolean;
2
21
  export declare function isRelation(val: any): boolean;
3
22
  export declare function getTypeForReq(str: string): string;
4
23
  export declare function resultConfig(partialConfig: JsonSdkConfig): JsonApiSdkConfig;
@@ -1,6 +1,41 @@
1
1
  import { kebabCase } from 'change-case-commonjs';
2
- import { ID_KEY } from '../constants';
2
+ import { ID_KEY } from '../constants/index.js';
3
+ const NULL_REF = Symbol('null-ref');
4
+ const EMPTY_ARRAY_REF = Symbol('empty-array-ref');
5
+ /**
6
+ * Marker for null relationship.
7
+ * Returns null for TypeScript but object with Symbol marker for runtime.
8
+ */
9
+ export function nullRef() {
10
+ return { [NULL_REF]: true };
11
+ }
12
+ /**
13
+ * Checks if value is a nullRef marker
14
+ */
15
+ export function isNullRef(val) {
16
+ return val !== null && typeof val === 'object' && NULL_REF in val;
17
+ }
18
+ /**
19
+ * Marker for empty array relationship.
20
+ * Returns empty array for TypeScript but object with Symbol marker for runtime.
21
+ * Use this to explicitly clear all items from a to-many relationship.
22
+ */
23
+ export function emptyArrayRef() {
24
+ return { [EMPTY_ARRAY_REF]: true };
25
+ }
26
+ /**
27
+ * Checks if value is an emptyArrayRef marker
28
+ */
29
+ export function isEmptyArrayRef(val) {
30
+ return val !== null && typeof val === 'object' && EMPTY_ARRAY_REF in val;
31
+ }
3
32
  export function isRelation(val) {
33
+ // nullRef is a special case - it's a relationship that should be null
34
+ if (isNullRef(val))
35
+ return true;
36
+ // emptyArrayRef is a special case - it's a to-many relationship that should be empty
37
+ if (isEmptyArrayRef(val))
38
+ return true;
4
39
  const result = !(val === null ||
5
40
  !val ||
6
41
  ['String', 'Boolean', 'Number', 'Date'].includes(val.constructor.name));
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../../../../libs/json-api/json-api-nestjs-sdk/src/lib/utils/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAGtC,MAAM,UAAU,UAAU,CAAC,GAAQ;IACjC,MAAM,MAAM,GAAG,CAAC,CACd,GAAG,KAAK,IAAI;QACZ,CAAC,GAAG;QACJ,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CACvE,CAAC;IAEF,IAAI,CAAC,MAAM;QAAE,OAAO,MAAM,CAAC;IAC3B,OAAO,MAAM,IAAI,GAAG,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,aAA4B;IACvD,OAAO;QACL,GAAG,aAAa;QAChB,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM;QACzD,UAAU,EACR,aAAa,CAAC,UAAU,KAAK,SAAS;YACpC,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,UAAU;QAChC,UAAU,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;KACrE,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../../../../libs/json-api/json-api-nestjs-sdk/src/lib/utils/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAG/C,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AACpC,MAAM,eAAe,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAElD;;;GAGG;AACH,MAAM,UAAU,OAAO;IACrB,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAqB,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,GAAY;IACpC,OAAO,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,QAAQ,IAAI,GAAG,CAAC;AACpE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE,IAAI,EAAoB,CAAC;AACvD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,GAAY;IAC1C,OAAO,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,eAAe,IAAI,GAAG,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAQ;IACjC,sEAAsE;IACtE,IAAI,SAAS,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAChC,qFAAqF;IACrF,IAAI,eAAe,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAEtC,MAAM,MAAM,GAAG,CAAC,CACd,GAAG,KAAK,IAAI;QACZ,CAAC,GAAG;QACJ,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CACvE,CAAC;IAEF,IAAI,CAAC,MAAM;QAAE,OAAO,MAAM,CAAC;IAC3B,OAAO,MAAM,IAAI,GAAG,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,aAA4B;IACvD,OAAO;QACL,GAAG,aAAa;QAChB,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM;QACzD,UAAU,EACR,aAAa,CAAC,UAAU,KAAK,SAAS;YACpC,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,UAAU;QAChC,UAAU,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;KACrE,CAAC;AACJ,CAAC"}
@@ -1,4 +1,4 @@
1
1
  export { FilterOperand, ResourceObject } from '@klerick/json-api-nestjs-shared';
2
- export { AtomicFactory, provideJsonApi, JSON_API_SDK_CONFIG, getProviders, } from './lib/json-api-angular';
3
- export { JsonApiUtilsService, JsonApiSdkService } from './lib/service';
4
- export { AtomicOperations, JsonSdkConfig } from './lib/types';
2
+ export { AtomicFactory, provideJsonApi, JSON_API_SDK_CONFIG, getProviders, JsonSdkConfigFactory, JsonSdkConfigOrFactory, } from './lib/json-api-angular.js';
3
+ export { JsonApiUtilsService, JsonApiSdkService } from './lib/service/index.js';
4
+ export { AtomicOperations, JsonSdkConfig } from './lib/types/index.js';
@@ -1,4 +1,4 @@
1
1
  export { FilterOperand } from '@klerick/json-api-nestjs-shared';
2
- export { AtomicFactory, provideJsonApi, JSON_API_SDK_CONFIG, getProviders, } from './lib/json-api-angular';
3
- export { JsonApiUtilsService, JsonApiSdkService } from './lib/service';
2
+ export { AtomicFactory, provideJsonApi, JSON_API_SDK_CONFIG, getProviders, } from './lib/json-api-angular.js';
3
+ export { JsonApiUtilsService, JsonApiSdkService } from './lib/service/index.js';
4
4
  //# sourceMappingURL=ngModule.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ngModule.js","sourceRoot":"","sources":["../../../../../../libs/json-api/json-api-nestjs-sdk/src/ngModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAkB,MAAM,iCAAiC,CAAC;AAEhF,OAAO,EACL,aAAa,EACb,cAAc,EACd,mBAAmB,EACnB,YAAY,GACb,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"ngModule.js","sourceRoot":"","sources":["../../../../../../libs/json-api/json-api-nestjs-sdk/src/ngModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAkB,MAAM,iCAAiC,CAAC;AAEhF,OAAO,EACL,aAAa,EACb,cAAc,EACd,mBAAmB,EACnB,YAAY,GAGb,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@klerick/json-api-nestjs-sdk",
3
- "version": "10.0.0-beta.8",
3
+ "version": "10.0.0",
4
4
  "description": "Helper for client JsonAPi Plugin for NestJs",
5
5
  "keywords": [
6
6
  "nestjs",
@@ -12,12 +12,12 @@
12
12
  "CRUD"
13
13
  ],
14
14
  "dependencies": {
15
- "@klerick/json-api-nestjs-shared": "^1.0.0-beta.5"
15
+ "@klerick/json-api-nestjs-shared": "^1.0.0-beta.8"
16
16
  },
17
17
  "peerDependencies": {
18
18
  "axios": "^1.6.0",
19
- "@angular/common": "^19.0.0 || ^20.0.0 || ^21.0.0",
20
- "@angular/core": "^19.0.0 || ^20.0.0 || ^21.0.0",
19
+ "@angular/common": "^19.0.0 || ^20.0.0 || ^21.0.0 || ^22.0.0",
20
+ "@angular/core": "^19.0.0 || ^20.0.0 || ^21.0.0 || ^22.0.0",
21
21
  "rxjs": "^7.0.0",
22
22
  "tslib": ">2.3.0"
23
23
  },
@@ -61,7 +61,7 @@
61
61
  "url": "https://github.com/klerick/nestjs-json-api.git"
62
62
  },
63
63
  "engines": {
64
- "node": ">= 20.0.0"
64
+ "node": "^22.22.3 || ^24.15.0 || >=26.0.0"
65
65
  },
66
66
  "files": [
67
67
  "**/*"