@klerick/json-api-nestjs 10.0.0-beta.16 → 10.0.0-beta.18

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 (63) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/README.md +233 -21
  3. package/package.json +1 -1
  4. package/src/lib/constants/di.d.ts +1 -0
  5. package/src/lib/constants/di.js +2 -1
  6. package/src/lib/constants/di.js.map +1 -1
  7. package/src/lib/modules/atomic-operation/controllers/operation.controller.js +4 -4
  8. package/src/lib/modules/atomic-operation/controllers/operation.controller.js.map +1 -1
  9. package/src/lib/modules/atomic-operation/pipes/input-operation.pipe.js.map +1 -1
  10. package/src/lib/modules/atomic-operation/service/execute.service.d.ts +3 -3
  11. package/src/lib/modules/atomic-operation/service/execute.service.js +49 -33
  12. package/src/lib/modules/atomic-operation/service/execute.service.js.map +1 -1
  13. package/src/lib/modules/atomic-operation/service/explorer.service.js +10 -6
  14. package/src/lib/modules/atomic-operation/service/explorer.service.js.map +1 -1
  15. package/src/lib/modules/atomic-operation/service/swagger.service.js +4 -4
  16. package/src/lib/modules/atomic-operation/service/swagger.service.js.map +1 -1
  17. package/src/lib/modules/atomic-operation/utils/zod/zod-helper.d.ts +12 -5
  18. package/src/lib/modules/atomic-operation/utils/zod/zod-helper.js +6 -3
  19. package/src/lib/modules/atomic-operation/utils/zod/zod-helper.js.map +1 -1
  20. package/src/lib/modules/mixin/config/bindings.js +20 -0
  21. package/src/lib/modules/mixin/config/bindings.js.map +1 -1
  22. package/src/lib/modules/mixin/controllers/json-base.controller.d.ts +5 -5
  23. package/src/lib/modules/mixin/controllers/json-base.controller.js +5 -5
  24. package/src/lib/modules/mixin/controllers/json-base.controller.js.map +1 -1
  25. package/src/lib/modules/mixin/factory/zod-validate.factory.d.ts +2 -1
  26. package/src/lib/modules/mixin/factory/zod-validate.factory.js +5 -1
  27. package/src/lib/modules/mixin/factory/zod-validate.factory.js.map +1 -1
  28. package/src/lib/modules/mixin/helpers/bind-controller.js +4 -1
  29. package/src/lib/modules/mixin/helpers/bind-controller.js.map +1 -1
  30. package/src/lib/modules/mixin/mixin.module.js +1 -0
  31. package/src/lib/modules/mixin/mixin.module.js.map +1 -1
  32. package/src/lib/modules/mixin/pipe/index.d.ts +1 -0
  33. package/src/lib/modules/mixin/pipe/index.js +5 -0
  34. package/src/lib/modules/mixin/pipe/index.js.map +1 -1
  35. package/src/lib/modules/mixin/pipe/meta-extractor/index.d.ts +1 -0
  36. package/src/lib/modules/mixin/pipe/meta-extractor/index.js +5 -0
  37. package/src/lib/modules/mixin/pipe/meta-extractor/index.js.map +1 -0
  38. package/src/lib/modules/mixin/pipe/meta-extractor/meta-extractor.pipe.d.ts +6 -0
  39. package/src/lib/modules/mixin/pipe/meta-extractor/meta-extractor.pipe.js +27 -0
  40. package/src/lib/modules/mixin/pipe/meta-extractor/meta-extractor.pipe.js.map +1 -0
  41. package/src/lib/modules/mixin/swagger/utils.js +1 -0
  42. package/src/lib/modules/mixin/swagger/utils.js.map +1 -1
  43. package/src/lib/modules/mixin/zod/index.d.ts +1 -1
  44. package/src/lib/modules/mixin/zod/index.js +4 -0
  45. package/src/lib/modules/mixin/zod/index.js.map +1 -1
  46. package/src/lib/modules/mixin/zod/zod-input-patch-relationship-schema/index.d.ts +1 -0
  47. package/src/lib/modules/mixin/zod/zod-input-patch-relationship-schema/index.js +1 -1
  48. package/src/lib/modules/mixin/zod/zod-input-patch-relationship-schema/index.js.map +1 -1
  49. package/src/lib/modules/mixin/zod/zod-input-patch-schema/index.d.ts +3 -1
  50. package/src/lib/modules/mixin/zod/zod-input-patch-schema/index.js +1 -0
  51. package/src/lib/modules/mixin/zod/zod-input-patch-schema/index.js.map +1 -1
  52. package/src/lib/modules/mixin/zod/zod-input-post-relationship-schema/index.d.ts +1 -0
  53. package/src/lib/modules/mixin/zod/zod-input-post-relationship-schema/index.js +1 -0
  54. package/src/lib/modules/mixin/zod/zod-input-post-relationship-schema/index.js.map +1 -1
  55. package/src/lib/modules/mixin/zod/zod-input-post-schema/index.d.ts +3 -1
  56. package/src/lib/modules/mixin/zod/zod-input-post-schema/index.js +1 -0
  57. package/src/lib/modules/mixin/zod/zod-input-post-schema/index.js.map +1 -1
  58. package/src/lib/modules/mixin/zod/zod-share/index.d.ts +1 -0
  59. package/src/lib/modules/mixin/zod/zod-share/index.js +1 -0
  60. package/src/lib/modules/mixin/zod/zod-share/index.js.map +1 -1
  61. package/src/lib/modules/mixin/zod/zod-share/meta.d.ts +11 -0
  62. package/src/lib/modules/mixin/zod/zod-share/meta.js +15 -0
  63. package/src/lib/modules/mixin/zod/zod-share/meta.js.map +1 -0
package/CHANGELOG.md CHANGED
@@ -1,3 +1,24 @@
1
+ ## 10.0.0-beta.18 (2026-02-16)
2
+
3
+ ### 🚀 Features
4
+
5
+ - **json-api-nestjs:** add support for `meta` object in various operations ([3c09413](https://github.com/klerick/nestjs-json-api/commit/3c09413))
6
+
7
+ ### ❤️ Thank You
8
+
9
+ - Alex H
10
+
11
+ ## 10.0.0-beta.17 (2026-02-11)
12
+
13
+ ### 🩹 Fixes
14
+
15
+ - **json-api-nestjs:** replace `id` with `lid` in atomic operation references for JSON:API compliance ([579ed01](https://github.com/klerick/nestjs-json-api/commit/579ed01))
16
+ - **json-api-nestjs:** replace `tmpIds` with `lids` for improved clarity in atomic operation logic and related tests ([81e7da9](https://github.com/klerick/nestjs-json-api/commit/81e7da9))
17
+
18
+ ### ❤️ Thank You
19
+
20
+ - Alex H
21
+
1
22
  ## 10.0.0-beta.16 (2026-02-05)
2
23
 
3
24
  ### 🚀 Features
package/README.md CHANGED
@@ -435,30 +435,169 @@ With this option enabled, clients can include the `id` field in POST requests:
435
435
 
436
436
  ```
437
437
 
438
- ### Atomic operation
439
- You can more information find [here](https://jsonapi.org/ext/atomic/)
440
- But you have additinal feature.
441
- For example: you will need create new **Roles**, then - create new **Users** and assign new **Roles** to new **Users**.
442
- If use native json api you need send 3 http request:
443
- - POST /roles
444
- - POST /users
438
+ ### Meta Support
439
+
440
+ The library supports the `meta` member in JSON:API requests and responses according to the [JSON:API specification](https://jsonapi.org/format/#document-meta). Meta allows passing additional non-standard information that doesn't belong to resource attributes.
441
+
442
+ **Use cases:**
443
+ - Request tracking (correlation IDs, client versions, timestamps)
444
+ - Business logic metadata (import source, batch IDs, priority levels)
445
+ - Audit information (user context, operation reason)
446
+
447
+ #### Meta in Regular Operations
448
+
449
+ Meta is supported in POST, PATCH, and relationship operations:
450
+
451
+ **POST Request with Meta:**
452
+ ```json
453
+ POST /users
454
+ {
455
+ "data": {
456
+ "type": "users",
457
+ "attributes": {
458
+ "login": "johndoe",
459
+ "firstName": "John"
460
+ }
461
+ },
462
+ "meta": {
463
+ "source": "mobile-app",
464
+ "version": "1.0.2",
465
+ "correlationId": "abc-123"
466
+ }
467
+ }
468
+ ```
469
+
470
+ **PATCH Request with Meta:**
471
+ ```json
472
+ PATCH /users/1
473
+ {
474
+ "data": {
475
+ "id": "1",
476
+ "type": "users",
477
+ "attributes": {
478
+ "firstName": "Jane"
479
+ }
480
+ },
481
+ "meta": {
482
+ "reason": "name-change-request",
483
+ "approvedBy": "admin"
484
+ }
485
+ }
486
+ ```
445
487
 
446
- but [Atomic operation](https://jsonapi.org/ext/atomic/) allow for one request.
488
+ **Relationship Operations with Meta:**
447
489
  ```json
490
+ POST /users/1/relationships/roles
491
+ {
492
+ "data": [
493
+ { "type": "roles", "id": "2" }
494
+ ],
495
+ "meta": {
496
+ "assignedBy": "admin",
497
+ "expiresAt": "2024-12-31"
498
+ }
499
+ }
500
+ ```
501
+
502
+ **Note:** DELETE operations do not support meta as per JSON:API specification.
503
+
504
+ #### Accessing Meta in Controllers
505
+
506
+ Meta is automatically extracted and passed as a parameter to controller methods:
507
+
508
+ ```typescript
509
+ import { JsonApi, JsonBaseController } from '@klerick/json-api-nestjs';
510
+ import { Body } from '@nestjs/common';
511
+
512
+ @JsonApi(Users)
513
+ export class UsersController extends JsonBaseController<Users> {
514
+ override async postOne(
515
+ @Body() inputData: PostData<Users>,
516
+ @Body() meta: Record<string, unknown>
517
+ ) {
518
+ // Access meta fields
519
+ console.log('Source:', meta.source);
520
+ console.log('Correlation ID:', meta.correlationId);
521
+
522
+ // Return response with meta
523
+ const response = await super.postOne(inputData);
524
+ return {
525
+ ...response,
526
+ meta: {
527
+ ...meta,
528
+ processedAt: Date.now(),
529
+ processedBy: 'server'
530
+ }
531
+ };
532
+ }
533
+ }
534
+ ```
535
+
536
+ #### Custom Meta Validation
537
+
538
+ You can add custom validation for meta using NestJS pipes:
539
+
540
+ ```typescript
541
+ import { PipeTransform, BadRequestException } from '@nestjs/common';
542
+ import { z } from 'zod';
543
+
544
+ // Define meta schema
545
+ const CustomMetaSchema = z.object({
546
+ source: z.string(),
547
+ version: z.string().regex(/^\d+\.\d+\.\d+$/),
548
+ correlationId: z.string().uuid().optional()
549
+ });
550
+
551
+ type CustomMeta = z.infer<typeof CustomMetaSchema>;
552
+
553
+ // Custom validation pipe
554
+ export class MetaValidationPipe implements PipeTransform<unknown, CustomMeta> {
555
+ transform(value: unknown): CustomMeta {
556
+ try {
557
+ return CustomMetaSchema.parse(value);
558
+ } catch (e) {
559
+ throw new BadRequestException('Invalid meta format');
560
+ }
561
+ }
562
+ }
563
+
564
+ // Use in controller
565
+ @JsonApi(Users)
566
+ export class UsersController extends JsonBaseController<Users> {
567
+ override async postOne(
568
+ @Body() inputData: PostData<Users>,
569
+ @Body(MetaValidationPipe) meta: CustomMeta
570
+ ) {
571
+ // meta is now validated and typed
572
+ console.log(meta.version); // TypeScript knows this exists
573
+ return super.postOne(inputData);
574
+ }
575
+ }
576
+ ```
577
+
578
+ ### Atomic Operations
579
+
580
+ The library implements the [JSON:API Atomic Operations Extension](https://jsonapi.org/ext/atomic/), allowing you to execute multiple operations in a single HTTP request with transaction support.
581
+
582
+ **Use case:** Create multiple related resources in one atomic request instead of multiple sequential HTTP requests.
448
583
 
584
+ Example: Create a new **Role**, create a new **User**, and assign the role to the user - all in one request instead of three separate requests.
585
+
586
+ **Request Example:**
587
+ ```json
449
588
  {
450
589
  "atomic:operations":[
451
590
  {
452
591
  "op":"add",
453
592
  "ref":{
454
593
  "type":"roles",
455
- "tmpId":10000
594
+ "lid":10000
456
595
  },
457
596
  "data":{
458
597
  "type":"roles",
459
598
  "attributes":{
460
- "name":"testRolesAgain",
461
- "key":"testRolesAgain"
599
+ "name":"admin",
600
+ "key":"admin_role"
462
601
  }
463
602
  }
464
603
  },
@@ -470,27 +609,100 @@ but [Atomic operation](https://jsonapi.org/ext/atomic/) allow for one request.
470
609
  "data":{
471
610
  "type":"users",
472
611
  "attributes":{
473
- "login":"newLogin"
612
+ "login":"johndoe",
613
+ "firstName":"John",
614
+ "lastName":"Doe"
474
615
  },
475
616
  "relationships":{
476
617
  "addresses":{
477
- "type":"addresses",
478
- "id":"1"
479
- },
480
- "roles":[
481
- {
482
- "type":"roles",
483
- "id":"10000"
618
+ "data":{
619
+ "type":"addresses",
620
+ "id":"1"
484
621
  }
485
- ]
622
+ },
623
+ "roles":{
624
+ "data":[
625
+ {
626
+ "type":"roles",
627
+ "id":"10000"
628
+ }
629
+ ]
630
+ }
486
631
  }
487
632
  }
488
633
  }
489
634
  ]
490
635
  }
636
+ ```
637
+
638
+ **Local Identifiers (lid):**
639
+ - The `lid` (local identifier) parameter allows referencing resources created within the same atomic request
640
+ - Must be unique across all operations in the request
641
+ - Used in the `ref.lid` field for the operation creating the resource
642
+ - Referenced in `relationships.{relation}.data.id` to establish relationships
643
+ - Automatically replaced with real database IDs by the server
644
+
645
+ **Meta Support in Atomic Operations:**
646
+
647
+ Each operation can include a `meta` object for additional metadata:
648
+
649
+ ```json
650
+ {
651
+ "atomic:operations": [
652
+ {
653
+ "op": "add",
654
+ "ref": { "type": "users", "lid": 1000 },
655
+ "data": {
656
+ "type": "users",
657
+ "attributes": { "login": "john" }
658
+ },
659
+ "meta": {
660
+ "source": "bulk-import",
661
+ "batchId": "batch-123",
662
+ "priority": "high"
663
+ }
664
+ },
665
+ {
666
+ "op": "update",
667
+ "ref": { "type": "users", "id": "5" },
668
+ "data": {
669
+ "type": "users",
670
+ "attributes": { "isActive": false }
671
+ },
672
+ "meta": {
673
+ "reason": "account-suspension",
674
+ "requestedBy": "admin"
675
+ }
676
+ }
677
+ ]
678
+ }
679
+ ```
680
+
681
+ Meta is passed to controller methods just like in regular operations, allowing you to:
682
+ - Track operation context
683
+ - Apply business logic based on metadata
684
+ - Include metadata in response
491
685
 
686
+ **Supported Operations:**
687
+ - `add` - Create a new resource (equivalent to POST)
688
+ - `update` - Update an existing resource (equivalent to PATCH)
689
+ - `remove` - Delete a resource (equivalent to DELETE)
690
+
691
+ **Transaction Guarantees:**
692
+ All operations in an atomic request execute within a single database transaction:
693
+ - If all operations succeed → transaction commits
694
+ - If any operation fails → entire transaction rolls back (no partial changes)
695
+
696
+ **Configuration:**
697
+ ```typescript
698
+ JsonApiModule.forRoot(TypeOrmJsonApiModule, {
699
+ entities: [Users, Roles],
700
+ options: {
701
+ operationUrl: 'operation', // Default endpoint: POST /operation
702
+ allowSetId: true, // Allow clients to set IDs (useful for UUIDs)
703
+ }
704
+ })
492
705
  ```
493
- **tmpId** - is params for operation **add**, should be unique for all operations.
494
706
 
495
707
  If you have Interceptor you can check call it from **AtomicOperation**
496
708
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@klerick/json-api-nestjs",
3
- "version": "10.0.0-beta.16",
3
+ "version": "10.0.0-beta.18",
4
4
  "type": "commonjs",
5
5
  "description": "JsonApi Plugin for NestJs",
6
6
  "keywords": [
@@ -9,6 +9,7 @@ export declare const ZOD_POST_SCHEMA: unique symbol;
9
9
  export declare const ZOD_PATCH_SCHEMA: unique symbol;
10
10
  export declare const ZOD_POST_RELATIONSHIP_SCHEMA: unique symbol;
11
11
  export declare const ZOD_PATCH_RELATIONSHIP_SCHEMA: unique symbol;
12
+ export declare const ZOD_META_SCHEMA: unique symbol;
12
13
  export declare const FIND_ONE_ROW_ENTITY: unique symbol;
13
14
  export declare const CHECK_RELATION_NAME: unique symbol;
14
15
  export declare const RUN_IN_TRANSACTION_FUNCTION: unique symbol;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RUN_IN_TRANSACTION_FUNCTION = exports.CHECK_RELATION_NAME = exports.FIND_ONE_ROW_ENTITY = exports.ZOD_PATCH_RELATIONSHIP_SCHEMA = exports.ZOD_POST_RELATIONSHIP_SCHEMA = exports.ZOD_PATCH_SCHEMA = exports.ZOD_POST_SCHEMA = exports.ZOD_QUERY_SCHEMA = exports.ZOD_INPUT_QUERY_SCHEMA = exports.ENTITY_PARAM_MAP = exports.CURRENT_ENTITY = exports.CONTROLLER_OPTIONS_TOKEN = exports.MODULE_OPTIONS_TOKEN = exports.ORM_SERVICE = void 0;
3
+ exports.RUN_IN_TRANSACTION_FUNCTION = exports.CHECK_RELATION_NAME = exports.FIND_ONE_ROW_ENTITY = exports.ZOD_META_SCHEMA = exports.ZOD_PATCH_RELATIONSHIP_SCHEMA = exports.ZOD_POST_RELATIONSHIP_SCHEMA = exports.ZOD_PATCH_SCHEMA = exports.ZOD_POST_SCHEMA = exports.ZOD_QUERY_SCHEMA = exports.ZOD_INPUT_QUERY_SCHEMA = exports.ENTITY_PARAM_MAP = exports.CURRENT_ENTITY = exports.CONTROLLER_OPTIONS_TOKEN = exports.MODULE_OPTIONS_TOKEN = exports.ORM_SERVICE = void 0;
4
4
  exports.ORM_SERVICE = Symbol('ORM_SERVICE');
5
5
  exports.MODULE_OPTIONS_TOKEN = Symbol('MODULE_OPTIONS_TOKEN');
6
6
  exports.CONTROLLER_OPTIONS_TOKEN = Symbol('CONTROLLER_OPTIONS_TOKEN');
@@ -12,6 +12,7 @@ exports.ZOD_POST_SCHEMA = Symbol('ZOD_POST_SCHEMA');
12
12
  exports.ZOD_PATCH_SCHEMA = Symbol('ZOD_PATCH_SCHEMA');
13
13
  exports.ZOD_POST_RELATIONSHIP_SCHEMA = Symbol('ZOD_POST_RELATIONSHIP_SCHEMA');
14
14
  exports.ZOD_PATCH_RELATIONSHIP_SCHEMA = Symbol('ZOD_PATCH_RELATIONSHIP_SCHEMA');
15
+ exports.ZOD_META_SCHEMA = Symbol('ZOD_META_SCHEMA');
15
16
  exports.FIND_ONE_ROW_ENTITY = Symbol('FIND_ONE_ROW_ENTITY');
16
17
  exports.CHECK_RELATION_NAME = Symbol('CHECK_RELATION_NAME');
17
18
  exports.RUN_IN_TRANSACTION_FUNCTION = Symbol('RUN_IN_TRANSACTION_FUNCTION');
@@ -1 +1 @@
1
- {"version":3,"file":"di.js","sourceRoot":"","sources":["../../../../../../../libs/json-api/json-api-nestjs/src/lib/constants/di.ts"],"names":[],"mappings":";;;AAAa,QAAA,WAAW,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;AAEpC,QAAA,oBAAoB,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC;AACtD,QAAA,wBAAwB,GAAG,MAAM,CAAC,0BAA0B,CAAC,CAAC;AAE9D,QAAA,cAAc,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAC1C,QAAA,gBAAgB,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAE9C,QAAA,sBAAsB,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC;AAC1D,QAAA,gBAAgB,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC;AACpD,QAAA,eAAe,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAC5C,QAAA,gBAAgB,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAC9C,QAAA,4BAA4B,GAAG,MAAM,CAChD,8BAA8B,CAC/B,CAAC;AACW,QAAA,6BAA6B,GAAG,MAAM,CACjD,+BAA+B,CAChC,CAAC;AAEW,QAAA,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AACpD,QAAA,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AACpD,QAAA,2BAA2B,GAAG,MAAM,CAC/C,6BAA6B,CAC9B,CAAC"}
1
+ {"version":3,"file":"di.js","sourceRoot":"","sources":["../../../../../../../libs/json-api/json-api-nestjs/src/lib/constants/di.ts"],"names":[],"mappings":";;;AAAa,QAAA,WAAW,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;AAEpC,QAAA,oBAAoB,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC;AACtD,QAAA,wBAAwB,GAAG,MAAM,CAAC,0BAA0B,CAAC,CAAC;AAE9D,QAAA,cAAc,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAC1C,QAAA,gBAAgB,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAE9C,QAAA,sBAAsB,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC;AAC1D,QAAA,gBAAgB,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC;AACpD,QAAA,eAAe,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAC5C,QAAA,gBAAgB,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAC9C,QAAA,4BAA4B,GAAG,MAAM,CAChD,8BAA8B,CAC/B,CAAC;AACW,QAAA,6BAA6B,GAAG,MAAM,CACjD,+BAA+B,CAChC,CAAC;AACW,QAAA,eAAe,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAE5C,QAAA,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AACpD,QAAA,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AACpD,QAAA,2BAA2B,GAAG,MAAM,CAC/C,6BAA6B,CAC9B,CAAC"}
@@ -59,15 +59,15 @@ let OperationController = class OperationController {
59
59
  });
60
60
  i++;
61
61
  }
62
- const tmpIds = [];
62
+ const lids = [];
63
63
  for (const item of inputOperationData) {
64
64
  if (item.op !== 'add')
65
65
  continue;
66
- if (!item.ref.tmpId)
66
+ if (!item.ref.lid)
67
67
  continue;
68
- tmpIds.push(item.ref.tmpId);
68
+ lids.push(item.ref.lid);
69
69
  }
70
- const result = await this.executeService.run(paramForCall, tmpIds);
70
+ const result = await this.executeService.run(paramForCall, lids);
71
71
  return {
72
72
  [json_api_nestjs_shared_1.KEY_MAIN_OUTPUT_SCHEMA]: result.map((i) => ({
73
73
  data: i.data,
@@ -1 +1 @@
1
- {"version":3,"file":"operation.controller.js","sourceRoot":"","sources":["../../../../../../../../../libs/json-api/json-api-nestjs/src/lib/modules/atomic-operation/controllers/operation.controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"operation.controller.js","sourceRoot":"","sources":["../../../../../../../../../libs/json-api/json-api-nestjs/src/lib/modules/atomic-operation/controllers/operation.controller.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"input-operation.pipe.js","sourceRoot":"","sources":["../../../../../../../../../libs/json-api/json-api-nestjs/src/lib/modules/atomic-operation/pipes/input-operation.pipe.ts"],"names":[],"mappings":";;;;AAAA,2CAKwB;AACxB,4EAAwE;AACxE,6BAA+B;AAG/B,4CAAmD;AAEnD,MAAa,kBAAkB;IAIrB,iBAAiB,CAA0B;IAEnD,SAAS,CAAC,KAAgB;QACxB,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,8CAAqB,CAAC,CAAC;QACpE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,cAAQ,EAAE,CAAC;gBAC1B,MAAM,IAAI,4BAAmB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC1C,CAAC;YAED,MAAM,IAAI,qCAA4B,CAAC,CAAC,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;CACF;AAjBD,gDAiBC;AAbS;IADP,IAAA,eAAM,EAAC,+BAAmB,CAAC;;6DACuB"}
1
+ {"version":3,"file":"input-operation.pipe.js","sourceRoot":"","sources":["../../../../../../../../../libs/json-api/json-api-nestjs/src/lib/modules/atomic-operation/pipes/input-operation.pipe.ts"],"names":[],"mappings":";;;;AAAA,2CAKwB;AACxB,4EAAwE;AACxE,6BAA+B;AAG/B,4CAAmD;AAEnD,MAAa,kBAAkB;IAIrB,iBAAiB,CAA0B;IAEnD,SAAS,CAAC,KAAgB;QACxB,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,8CAAqB,CAAe,CAAC;QAClF,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,cAAQ,EAAE,CAAC;gBAC1B,MAAM,IAAI,4BAAmB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC1C,CAAC;YAED,MAAM,IAAI,qCAA4B,CAAC,CAAC,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;CACF;AAjBD,gDAiBC;AAbS;IADP,IAAA,eAAM,EAAC,+BAAmB,CAAC;;6DACuB"}
@@ -19,11 +19,11 @@ export declare class ExecuteService {
19
19
  get guardsContextCreator(): GuardsContextCreator;
20
20
  private interceptorsConsumer;
21
21
  private guardsConsumer;
22
- run(params: ParamsForExecute[], tmpIds: (string | number)[]): Promise<(ResourceObject<object> | ResourceObjectRelationships<object, string, never>)[]>;
23
- protected executeOperations(params: ParamsForExecute[], tmpIds?: (string | number)[]): Promise<(ResourceObject<object> | ResourceObjectRelationships<object, string, never>)[]>;
22
+ run(params: ParamsForExecute[], lids: (string | number)[]): Promise<(ResourceObject<object> | ResourceObjectRelationships<object, string, never>)[]>;
23
+ protected executeOperations(params: ParamsForExecute[], lids?: (string | number)[]): Promise<(ResourceObject<object> | ResourceObjectRelationships<object, string, never>)[]>;
24
24
  private getCanActivateFn;
25
25
  private getInterceptorsArray;
26
- replaceTmpIds<T extends ParamsForExecute['params']>(inputParams: T, tmpIdsMap: Record<string | number, string | number>): T;
26
+ replaceLids<T extends ParamsForExecute['params']>(inputParams: T, lidsMap: Record<string | number, string | number>): T;
27
27
  private getControllerInstance;
28
28
  private processException;
29
29
  private runOneOperation;
@@ -46,28 +46,36 @@ let ExecuteService = class ExecuteService {
46
46
  }
47
47
  interceptorsConsumer = new interceptors_1.InterceptorsConsumer();
48
48
  guardsConsumer = new guards_1.GuardsConsumer();
49
- async run(params, tmpIds) {
50
- return this.runInTransaction(() => this.executeOperations(params, tmpIds));
49
+ async run(params, lids) {
50
+ return this.runInTransaction(() => this.executeOperations(params, lids));
51
51
  }
52
- async executeOperations(params, tmpIds = []) {
52
+ async executeOperations(params, lids = []) {
53
53
  const iterateParams = this.asyncIteratorFactory.createIterator(params, this.runOneOperation.bind(this));
54
54
  const resultArray = [];
55
55
  let i = 0;
56
- const tmpIdsMap = {};
56
+ let addOperationIndex = 0;
57
+ const lidsMap = {};
57
58
  try {
58
59
  for await (const item of iterateParams) {
59
60
  const currentParams = params[i];
60
61
  const controller = this.getControllerInstance(currentParams);
61
62
  const methodName = currentParams.methodName;
62
63
  const paramsForExecute = item;
63
- const itemReplace = this.replaceTmpIds(paramsForExecute, tmpIdsMap);
64
- const body = itemReplace.at(-1);
65
- // First operation doesn't have tmpId'
66
- const currentTmpId = i !== 0 ? tmpIds[i] : undefined;
67
- if (methodName === 'postOne' && currentTmpId && body) {
68
- if (typeof body === 'object' && 'attributes' in body) {
69
- body['id'] = `${currentTmpId}`;
70
- itemReplace[itemReplace.length - 1];
64
+ const itemReplace = this.replaceLids(paramsForExecute, lidsMap);
65
+ let currentLid = undefined;
66
+ if (methodName === 'postOne') {
67
+ currentLid = lids[addOperationIndex];
68
+ addOperationIndex++;
69
+ }
70
+ if (methodName === 'postOne' && currentLid) {
71
+ for (const param of itemReplace) {
72
+ if (param &&
73
+ typeof param === 'object' &&
74
+ !Array.isArray(param) &&
75
+ 'attributes' in param) {
76
+ param['id'] = `${currentLid}`;
77
+ break;
78
+ }
71
79
  }
72
80
  }
73
81
  const guarFunction = this.getCanActivateFn(controller, controller[methodName], currentParams.module);
@@ -86,8 +94,8 @@ let ExecuteService = class ExecuteService {
86
94
  const result = interceptors.length === 0
87
95
  ? await result$
88
96
  : await (0, rxjs_1.lastValueFrom)(result$);
89
- if (tmpIds[i] && result && !Array.isArray(result.data) && result.data) {
90
- tmpIdsMap[tmpIds[i]] = result.data.id;
97
+ if (currentLid && result && !Array.isArray(result.data) && result.data) {
98
+ lidsMap[currentLid] = result.data.id;
91
99
  }
92
100
  if (result instanceof Object) {
93
101
  resultArray.push(result);
@@ -126,21 +134,26 @@ let ExecuteService = class ExecuteService {
126
134
  controllerFromMap.set(callback, resultInterceptors);
127
135
  return resultInterceptors;
128
136
  }
129
- replaceTmpIds(inputParams, tmpIdsMap) {
130
- const bodyInput = inputParams.at(-1);
131
- if (!bodyInput) {
132
- return inputParams;
133
- }
134
- if (typeof bodyInput === 'string') {
135
- return inputParams;
136
- }
137
- if (typeof bodyInput === 'number') {
138
- return inputParams;
139
- }
140
- if (Array.isArray(bodyInput)) {
141
- return inputParams;
137
+ replaceLids(inputParams, lidsMap) {
138
+ // Find the parameter that contains relationships (data object)
139
+ // For postOne: [data, meta] - index 0
140
+ // For patchOne: [id, data, meta] - index 1
141
+ // For relationship methods: [id, relName, data, meta] - index 2
142
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
143
+ let bodyInput;
144
+ let bodyIndex = -1;
145
+ for (let i = 0; i < inputParams.length; i++) {
146
+ const param = inputParams[i];
147
+ if (param &&
148
+ typeof param === 'object' &&
149
+ !Array.isArray(param) &&
150
+ 'relationships' in param) {
151
+ bodyInput = param;
152
+ bodyIndex = i;
153
+ break;
154
+ }
142
155
  }
143
- if (!(typeof bodyInput === 'object' && 'relationships' in bodyInput)) {
156
+ if (!bodyInput || bodyIndex === -1) {
144
157
  return inputParams;
145
158
  }
146
159
  const { relationships } = bodyInput;
@@ -158,7 +171,7 @@ let ExecuteService = class ExecuteService {
158
171
  return i;
159
172
  return {
160
173
  ...i,
161
- id: tmpIdsMap[i['id']] ? `${tmpIdsMap[i['id']]}` : i['id'],
174
+ id: lidsMap[i['id']] ? `${lidsMap[i['id']]}` : i['id'],
162
175
  };
163
176
  }),
164
177
  };
@@ -168,8 +181,8 @@ let ExecuteService = class ExecuteService {
168
181
  acum[name] = val;
169
182
  }
170
183
  else {
171
- data['id'] = tmpIdsMap[data['id']]
172
- ? `${tmpIdsMap[data['id']]}`
184
+ data['id'] = lidsMap[data['id']]
185
+ ? `${lidsMap[data['id']]}`
173
186
  : data['id'];
174
187
  acum[name] = {
175
188
  data,
@@ -178,7 +191,7 @@ let ExecuteService = class ExecuteService {
178
191
  }
179
192
  return acum;
180
193
  }, { ...relationships });
181
- inputParams[inputParams.length - 1] = bodyInput;
194
+ inputParams[bodyIndex] = bodyInput;
182
195
  return inputParams;
183
196
  }
184
197
  getControllerInstance(params) {
@@ -203,7 +216,7 @@ let ExecuteService = class ExecuteService {
203
216
  return m;
204
217
  });
205
218
  }
206
- throw new common_1.HttpException(response, e.getStatus());
219
+ throw new common_1.HttpException(response, e.getStatus(), { cause: e });
207
220
  }
208
221
  const formatError = this.errorFormatService.formatError(e);
209
222
  if (formatError instanceof common_1.InternalServerErrorException) {
@@ -239,6 +252,9 @@ let ExecuteService = class ExecuteService {
239
252
  return modifiedParams;
240
253
  }
241
254
  getPipeInstance(pipe, module) {
255
+ if (typeof pipe !== 'function' && 'transform' in pipe) {
256
+ return pipe;
257
+ }
242
258
  const instanceWrapper = module.getProviderByKey(pipe);
243
259
  if (!instanceWrapper) {
244
260
  return this.moduleRef.get(pipe, { strict: false });
@@ -1 +1 @@
1
- {"version":3,"file":"execute.service.js","sourceRoot":"","sources":["../../../../../../../../../libs/json-api/json-api-nestjs/src/lib/modules/atomic-operation/service/execute.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"execute.service.js","sourceRoot":"","sources":["../../../../../../../../../libs/json-api/json-api-nestjs/src/lib/modules/atomic-operation/service/execute.service.ts"],"names":[],"mappings":"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"}