@klerick/json-api-nestjs 10.0.0-beta.9 → 10.1.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.
- package/CHANGELOG.md +176 -0
- package/README.md +299 -23
- package/package.json +4 -8
- package/src/index.d.ts +3 -2
- package/src/index.js +4 -1
- package/src/index.js.map +1 -1
- package/src/lib/constants/di.d.ts +1 -0
- package/src/lib/constants/di.js +2 -1
- package/src/lib/constants/di.js.map +1 -1
- package/src/lib/json-api.module.js +3 -2
- package/src/lib/json-api.module.js.map +1 -1
- package/src/lib/modules/atomic-operation/atomic-operation.module.d.ts +1 -2
- package/src/lib/modules/atomic-operation/atomic-operation.module.js +6 -5
- package/src/lib/modules/atomic-operation/atomic-operation.module.js.map +1 -1
- package/src/lib/modules/atomic-operation/controllers/operation.controller.js +4 -4
- package/src/lib/modules/atomic-operation/controllers/operation.controller.js.map +1 -1
- package/src/lib/modules/atomic-operation/factory/map-controller-entity.d.ts +1 -2
- package/src/lib/modules/atomic-operation/factory/map-controller-entity.js +8 -7
- package/src/lib/modules/atomic-operation/factory/map-controller-entity.js.map +1 -1
- package/src/lib/modules/atomic-operation/pipes/input-operation.pipe.js.map +1 -1
- package/src/lib/modules/atomic-operation/service/execute.service.d.ts +13 -3
- package/src/lib/modules/atomic-operation/service/execute.service.js +80 -33
- package/src/lib/modules/atomic-operation/service/execute.service.js.map +1 -1
- package/src/lib/modules/atomic-operation/service/explorer.service.js +10 -6
- package/src/lib/modules/atomic-operation/service/explorer.service.js.map +1 -1
- package/src/lib/modules/atomic-operation/service/swagger.service.js +6 -6
- package/src/lib/modules/atomic-operation/service/swagger.service.js.map +1 -1
- package/src/lib/modules/atomic-operation/utils/zod/zod-helper.d.ts +14 -7
- package/src/lib/modules/atomic-operation/utils/zod/zod-helper.js +12 -9
- package/src/lib/modules/atomic-operation/utils/zod/zod-helper.js.map +1 -1
- package/src/lib/modules/mixin/config/bindings.js +20 -0
- package/src/lib/modules/mixin/config/bindings.js.map +1 -1
- package/src/lib/modules/mixin/controllers/json-base.controller.d.ts +5 -5
- package/src/lib/modules/mixin/controllers/json-base.controller.js +5 -5
- package/src/lib/modules/mixin/controllers/json-base.controller.js.map +1 -1
- package/src/lib/modules/mixin/decorators/index.d.ts +1 -0
- package/src/lib/modules/mixin/decorators/index.js +1 -0
- package/src/lib/modules/mixin/decorators/index.js.map +1 -1
- package/src/lib/modules/mixin/decorators/json-api-response-from/json-api-response-from.decorator.d.ts +19 -0
- package/src/lib/modules/mixin/decorators/json-api-response-from/json-api-response-from.decorator.js +35 -0
- package/src/lib/modules/mixin/decorators/json-api-response-from/json-api-response-from.decorator.js.map +1 -0
- package/src/lib/modules/mixin/factory/zod-validate.factory.d.ts +2 -1
- package/src/lib/modules/mixin/factory/zod-validate.factory.js +5 -1
- package/src/lib/modules/mixin/factory/zod-validate.factory.js.map +1 -1
- package/src/lib/modules/mixin/helpers/bind-controller.js +4 -1
- package/src/lib/modules/mixin/helpers/bind-controller.js.map +1 -1
- package/src/lib/modules/mixin/mixin.module.js +1 -0
- package/src/lib/modules/mixin/mixin.module.js.map +1 -1
- package/src/lib/modules/mixin/pipe/index.d.ts +1 -0
- package/src/lib/modules/mixin/pipe/index.js +5 -0
- package/src/lib/modules/mixin/pipe/index.js.map +1 -1
- package/src/lib/modules/mixin/pipe/meta-extractor/index.d.ts +1 -0
- package/src/lib/modules/mixin/pipe/meta-extractor/index.js +5 -0
- package/src/lib/modules/mixin/pipe/meta-extractor/index.js.map +1 -0
- package/src/lib/modules/mixin/pipe/meta-extractor/meta-extractor.pipe.d.ts +6 -0
- package/src/lib/modules/mixin/pipe/meta-extractor/meta-extractor.pipe.js +27 -0
- package/src/lib/modules/mixin/pipe/meta-extractor/meta-extractor.pipe.js.map +1 -0
- package/src/lib/modules/mixin/service/json-api-transformer.service.d.ts +2 -2
- package/src/lib/modules/mixin/service/json-api-transformer.service.js.map +1 -1
- package/src/lib/modules/mixin/swagger/error-response-model.d.ts +11 -0
- package/src/lib/modules/mixin/swagger/error-response-model.js +63 -0
- package/src/lib/modules/mixin/swagger/error-response-model.js.map +1 -0
- package/src/lib/modules/mixin/swagger/method/delete-one.js +3 -3
- package/src/lib/modules/mixin/swagger/method/delete-one.js.map +1 -1
- package/src/lib/modules/mixin/swagger/method/delete-relationship.js +6 -6
- package/src/lib/modules/mixin/swagger/method/delete-relationship.js.map +1 -1
- package/src/lib/modules/mixin/swagger/method/get-all.js +9 -39
- package/src/lib/modules/mixin/swagger/method/get-all.js.map +1 -1
- package/src/lib/modules/mixin/swagger/method/get-one.js +5 -5
- package/src/lib/modules/mixin/swagger/method/get-one.js.map +1 -1
- package/src/lib/modules/mixin/swagger/method/get-relationship.js +5 -4
- package/src/lib/modules/mixin/swagger/method/get-relationship.js.map +1 -1
- package/src/lib/modules/mixin/swagger/method/patch-one.js +5 -5
- package/src/lib/modules/mixin/swagger/method/patch-one.js.map +1 -1
- package/src/lib/modules/mixin/swagger/method/patch-relationship.js +7 -7
- package/src/lib/modules/mixin/swagger/method/patch-relationship.js.map +1 -1
- package/src/lib/modules/mixin/swagger/method/post-one.js +5 -5
- package/src/lib/modules/mixin/swagger/method/post-one.js.map +1 -1
- package/src/lib/modules/mixin/swagger/method/post-relationship.js +7 -7
- package/src/lib/modules/mixin/swagger/method/post-relationship.js.map +1 -1
- package/src/lib/modules/mixin/swagger/open-api-types.d.ts +18 -0
- package/src/lib/modules/mixin/swagger/open-api-types.js +3 -0
- package/src/lib/modules/mixin/swagger/open-api-types.js.map +1 -0
- package/src/lib/modules/mixin/swagger/swagger-bind.service.d.ts +1 -0
- package/src/lib/modules/mixin/swagger/swagger-bind.service.js +52 -13
- package/src/lib/modules/mixin/swagger/swagger-bind.service.js.map +1 -1
- package/src/lib/modules/mixin/swagger/utils.d.ts +17 -142
- package/src/lib/modules/mixin/swagger/utils.js +178 -124
- package/src/lib/modules/mixin/swagger/utils.js.map +1 -1
- package/src/lib/modules/mixin/zod/index.d.ts +1 -1
- package/src/lib/modules/mixin/zod/index.js +4 -0
- package/src/lib/modules/mixin/zod/index.js.map +1 -1
- package/src/lib/modules/mixin/zod/map-transform-to-json-shema.d.ts +2 -0
- package/src/lib/modules/mixin/zod/map-transform-to-json-shema.js +10 -0
- package/src/lib/modules/mixin/zod/map-transform-to-json-shema.js.map +1 -1
- package/src/lib/modules/mixin/zod/zod-input-patch-relationship-schema/index.d.ts +8 -0
- package/src/lib/modules/mixin/zod/zod-input-patch-relationship-schema/index.js +8 -3
- package/src/lib/modules/mixin/zod/zod-input-patch-relationship-schema/index.js.map +1 -1
- package/src/lib/modules/mixin/zod/zod-input-patch-schema/index.d.ts +3 -1
- package/src/lib/modules/mixin/zod/zod-input-patch-schema/index.js +1 -0
- package/src/lib/modules/mixin/zod/zod-input-patch-schema/index.js.map +1 -1
- package/src/lib/modules/mixin/zod/zod-input-post-relationship-schema/index.d.ts +1 -0
- package/src/lib/modules/mixin/zod/zod-input-post-relationship-schema/index.js +1 -0
- package/src/lib/modules/mixin/zod/zod-input-post-relationship-schema/index.js.map +1 -1
- package/src/lib/modules/mixin/zod/zod-input-post-schema/index.d.ts +4 -2
- package/src/lib/modules/mixin/zod/zod-input-post-schema/index.js +2 -1
- package/src/lib/modules/mixin/zod/zod-input-post-schema/index.js.map +1 -1
- package/src/lib/modules/mixin/zod/zod-input-query-schema/fields.d.ts +8 -5
- package/src/lib/modules/mixin/zod/zod-input-query-schema/fields.js +16 -12
- package/src/lib/modules/mixin/zod/zod-input-query-schema/fields.js.map +1 -1
- package/src/lib/modules/mixin/zod/zod-input-query-schema/filter.d.ts +76 -6
- package/src/lib/modules/mixin/zod/zod-input-query-schema/filter.js +32 -10
- package/src/lib/modules/mixin/zod/zod-input-query-schema/filter.js.map +1 -1
- package/src/lib/modules/mixin/zod/zod-input-query-schema/index.d.ts +40 -15
- package/src/lib/modules/mixin/zod/zod-input-query-schema/index.js +3 -1
- package/src/lib/modules/mixin/zod/zod-input-query-schema/index.js.map +1 -1
- package/src/lib/modules/mixin/zod/zod-query-schema/fields.d.ts +1 -1
- package/src/lib/modules/mixin/zod/zod-query-schema/fields.js +5 -4
- package/src/lib/modules/mixin/zod/zod-query-schema/fields.js.map +1 -1
- package/src/lib/modules/mixin/zod/zod-query-schema/filter.d.ts +4 -2
- package/src/lib/modules/mixin/zod/zod-query-schema/filter.js +19 -8
- package/src/lib/modules/mixin/zod/zod-query-schema/filter.js.map +1 -1
- package/src/lib/modules/mixin/zod/zod-query-schema/include.d.ts +9 -2
- package/src/lib/modules/mixin/zod/zod-query-schema/include.js +2 -1
- package/src/lib/modules/mixin/zod/zod-query-schema/include.js.map +1 -1
- package/src/lib/modules/mixin/zod/zod-query-schema/sort.d.ts +2 -2
- package/src/lib/modules/mixin/zod/zod-query-schema/sort.js +5 -4
- package/src/lib/modules/mixin/zod/zod-query-schema/sort.js.map +1 -1
- package/src/lib/modules/mixin/zod/zod-share/attributes.d.ts +12 -6
- package/src/lib/modules/mixin/zod/zod-share/attributes.js +30 -11
- package/src/lib/modules/mixin/zod/zod-share/attributes.js.map +1 -1
- package/src/lib/modules/mixin/zod/zod-share/id.d.ts +12 -0
- package/src/lib/modules/mixin/zod/zod-share/id.js +17 -0
- package/src/lib/modules/mixin/zod/zod-share/id.js.map +1 -1
- package/src/lib/modules/mixin/zod/zod-share/index.d.ts +1 -0
- package/src/lib/modules/mixin/zod/zod-share/index.js +1 -0
- package/src/lib/modules/mixin/zod/zod-share/index.js.map +1 -1
- package/src/lib/modules/mixin/zod/zod-share/meta.d.ts +11 -0
- package/src/lib/modules/mixin/zod/zod-share/meta.js +15 -0
- package/src/lib/modules/mixin/zod/zod-share/meta.js.map +1 -0
- package/src/lib/modules/mixin/zod/zod-share/page.d.ts +2 -2
- package/src/lib/modules/mixin/zod/zod-utils.d.ts +2 -0
- package/src/lib/modules/mixin/zod/zod-utils.js +20 -0
- package/src/lib/modules/mixin/zod/zod-utils.js.map +1 -1
- package/src/lib/types/entity-param.type.d.ts +21 -7
- package/src/lib/types/module-options.types.d.ts +1 -0
- package/src/lib/utils/column-type.d.ts +13 -0
- package/src/lib/utils/column-type.js +27 -0
- package/src/lib/utils/column-type.js.map +1 -0
- package/src/lib/utils/index.d.ts +1 -0
- package/src/lib/utils/index.js +1 -0
- package/src/lib/utils/index.js.map +1 -1
- package/src/lib/utils/module-helper.js +1 -0
- package/src/lib/utils/module-helper.js.map +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,179 @@
|
|
|
1
|
+
## 10.1.0 (2026-09-12)
|
|
2
|
+
|
|
3
|
+
### 🚀 Features
|
|
4
|
+
|
|
5
|
+
- **json-api-nestjs:** let the date column decide whether a zone may be omitted ([0886790](https://github.com/klerick/nestjs-json-api/commit/0886790))
|
|
6
|
+
|
|
7
|
+
### 🩹 Fixes
|
|
8
|
+
|
|
9
|
+
- **json-api-nestjs:** accept a UTC offset in date attributes ([#120](https://github.com/klerick/nestjs-json-api/issues/120))
|
|
10
|
+
|
|
11
|
+
### 🧱 Updated Dependencies
|
|
12
|
+
|
|
13
|
+
- Updated json-api-nestjs-shared to 1.0.0
|
|
14
|
+
|
|
15
|
+
### ❤️ Thank You
|
|
16
|
+
|
|
17
|
+
- Alex H
|
|
18
|
+
- Claude Opus 5 (1M context)
|
|
19
|
+
|
|
20
|
+
# 10.0.0 (2026-08-13)
|
|
21
|
+
|
|
22
|
+
### 🚀 Features
|
|
23
|
+
|
|
24
|
+
- **json-api-nestjs-microorm:** migrate to MikroORM 7 ([85b3855](https://github.com/klerick/nestjs-json-api/commit/85b3855))
|
|
25
|
+
- **json-api-nestjs:** add support for `meta` object in various operations ([3c09413](https://github.com/klerick/nestjs-json-api/commit/3c09413))
|
|
26
|
+
- **json-api-nestjs:** enhance Zod schema definitions with metadata, refactor Swagger integration, and improve reusability of schema registrations ([9ecb739](https://github.com/klerick/nestjs-json-api/commit/9ecb739))
|
|
27
|
+
- **json-api-nestjs:** refactor query parameter schemas with Zod, improve Swagger definitions, and add reusable transformers ([70e955f](https://github.com/klerick/nestjs-json-api/commit/70e955f))
|
|
28
|
+
- **json-api-nestjs:** add primary key handling for relations and improve query schema generation ([7caea1a](https://github.com/klerick/nestjs-json-api/commit/7caea1a))
|
|
29
|
+
- **json-api-nestjs-shared,json-api-nestjs:** im did mistake in commit msg ([56c483a](https://github.com/klerick/nestjs-json-api/commit/56c483a))
|
|
30
|
+
- **json-api-nestjs:** enhance ZodIncludeQuery with improved type definitions and utility functions ([c4a5856](https://github.com/klerick/nestjs-json-api/commit/c4a5856))
|
|
31
|
+
- **json-api-nestjs:** add JsonApiResponseFrom decorator for reusing response schemas across methods ([f1f49c1](https://github.com/klerick/nestjs-json-api/commit/f1f49c1))
|
|
32
|
+
- **json-api-nestjs:** replace `errorSchema` with `JsonApiErrorResponseModel`, update response schema handling across Swagger methods ([4e7f481](https://github.com/klerick/nestjs-json-api/commit/4e7f481))
|
|
33
|
+
- **json-api-nestjs:** add support for excluding controllers during module initialization ([5e2de06](https://github.com/klerick/nestjs-json-api/commit/5e2de06))
|
|
34
|
+
- **json-api-nestjs:** optimize and memoize Zod schema generation ([611da19](https://github.com/klerick/nestjs-json-api/commit/611da19))
|
|
35
|
+
- **json-api-nestjs:** enhance Patch and Post schema handling, add utility for merging patch data and refine type definitions for attributes and relationships ([2887603](https://github.com/klerick/nestjs-json-api/commit/2887603))
|
|
36
|
+
- **json-api-nestjs:** add read-only and immutable field decorators with validation schema updates and inheritance support ([fccf757](https://github.com/klerick/nestjs-json-api/commit/fccf757))
|
|
37
|
+
- **json-api-nestjs,json-api-nestjs-microorm,json-api-nestjs-typeorm:** add support for automatic resource linkage in to-one relations, update FK field detection and handling ([0dd670d](https://github.com/klerick/nestjs-json-api/commit/0dd670d))
|
|
38
|
+
- **json-api-nestjs:** add hooks support and enhance guards handling with `afterCreateController` hook and guards logic - prepare for acl libs ([5059530](https://github.com/klerick/nestjs-json-api/commit/5059530))
|
|
39
|
+
- **json-api-nestjs:** add `allowSetId` option for enhanced control over entity ID assignment during POST operations ([ce269ad](https://github.com/klerick/nestjs-json-api/commit/ce269ad))
|
|
40
|
+
- **json-api-nestjs:** fix after update nx ([e51f07c](https://github.com/klerick/nestjs-json-api/commit/e51f07c))
|
|
41
|
+
- **json-api-nestjs:** bump zod to v4 ([19888e9](https://github.com/klerick/nestjs-json-api/commit/19888e9))
|
|
42
|
+
- **json-api-nestjs:** Add JSON_API_DECORATOR_ENTITY metadata to controller ([d2deb39](https://github.com/klerick/nestjs-json-api/commit/d2deb39))
|
|
43
|
+
- **json-api-nestjs:** fix after update nx ([5d87f95](https://github.com/klerick/nestjs-json-api/commit/5d87f95))
|
|
44
|
+
- **json-api-nestjs:** bump zod to v4 ([23709bd](https://github.com/klerick/nestjs-json-api/commit/23709bd))
|
|
45
|
+
- **json-api-nestjs:** Export `Params` type in index.ts ([bd509a5](https://github.com/klerick/nestjs-json-api/commit/bd509a5))
|
|
46
|
+
- **json-api-nestjs:** Update package.json dep ([87519a0](https://github.com/klerick/nestjs-json-api/commit/87519a0))
|
|
47
|
+
- **json-api-nestjs,json-api-nestjs-microorm,json-api-nestjs-sdk,json-api-nestjs-shared,json-api-nestjs-typeorm:** up nestjs ([77c7bf4](https://github.com/klerick/nestjs-json-api/commit/77c7bf4))
|
|
48
|
+
- **json-api-nestjs,json-api-nestjs-microorm,json-api-nestjs-sdk,json-api-nestjs-shared,json-api-nestjs-typeorm:** up nestjs ([42b6b82](https://github.com/klerick/nestjs-json-api/commit/42b6b82))
|
|
49
|
+
- **json-api-nestjs,json-api-nestjs-microorm,json-api-nestjs-sdk,json-api-nestjs-shared,json-api-nestjs-typeorm:** up nestjs ([4c559e2](https://github.com/klerick/nestjs-json-api/commit/4c559e2))
|
|
50
|
+
- **json-api-nestjs,json-api-nestjs-microorm,json-api-nestjs-sdk,json-api-nestjs-shared,json-api-nestjs-typeorm:** up nestjs ([b590802](https://github.com/klerick/nestjs-json-api/commit/b590802))
|
|
51
|
+
- ⚠️ **json-api-nestjs:** remove module and refactoring ([f202ebc](https://github.com/klerick/nestjs-json-api/commit/f202ebc))
|
|
52
|
+
|
|
53
|
+
### 🩹 Fixes
|
|
54
|
+
|
|
55
|
+
- **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))
|
|
56
|
+
- **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))
|
|
57
|
+
- **json-api-nestjs:** replace deprecated faker methods, enhance zod schemas with transformations and update constants with METHOD_NAME. change name for method function ([e382bce](https://github.com/klerick/nestjs-json-api/commit/e382bce))
|
|
58
|
+
- **json-api-nestjs:** use ErrorFormatService for format error in AtomicOperationModule fix work with tmpId ([6d166ba](https://github.com/klerick/nestjs-json-api/commit/6d166ba))
|
|
59
|
+
- **json-api-nestjs:** Some fix for swagger ([9a0f190](https://github.com/klerick/nestjs-json-api/commit/9a0f190))
|
|
60
|
+
- **json-api-nestjs:** Use correct options for check is debug or not ([e52cc92](https://github.com/klerick/nestjs-json-api/commit/e52cc92))
|
|
61
|
+
- **json-api-nestjs:** fix type in some place ([61f45e6](https://github.com/klerick/nestjs-json-api/commit/61f45e6))
|
|
62
|
+
|
|
63
|
+
### ⚠️ Breaking Changes
|
|
64
|
+
|
|
65
|
+
- **json-api-nestjs:** remove module and refactoring ([f202ebc](https://github.com/klerick/nestjs-json-api/commit/f202ebc))
|
|
66
|
+
Change type signature, rename npm package
|
|
67
|
+
|
|
68
|
+
### 🧱 Updated Dependencies
|
|
69
|
+
|
|
70
|
+
- Updated json-api-nestjs-shared to 1.0.0-beta.8
|
|
71
|
+
|
|
72
|
+
### ❤️ Thank You
|
|
73
|
+
|
|
74
|
+
- Alex H
|
|
75
|
+
- Claude Opus 5 (1M context)
|
|
76
|
+
|
|
77
|
+
## 10.0.0-beta.18 (2026-02-16)
|
|
78
|
+
|
|
79
|
+
### 🚀 Features
|
|
80
|
+
|
|
81
|
+
- **json-api-nestjs:** add support for `meta` object in various operations ([3c09413](https://github.com/klerick/nestjs-json-api/commit/3c09413))
|
|
82
|
+
|
|
83
|
+
### ❤️ Thank You
|
|
84
|
+
|
|
85
|
+
- Alex H
|
|
86
|
+
|
|
87
|
+
## 10.0.0-beta.17 (2026-02-11)
|
|
88
|
+
|
|
89
|
+
### 🩹 Fixes
|
|
90
|
+
|
|
91
|
+
- **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))
|
|
92
|
+
- **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))
|
|
93
|
+
|
|
94
|
+
### ❤️ Thank You
|
|
95
|
+
|
|
96
|
+
- Alex H
|
|
97
|
+
|
|
98
|
+
## 10.0.0-beta.16 (2026-02-05)
|
|
99
|
+
|
|
100
|
+
### 🚀 Features
|
|
101
|
+
|
|
102
|
+
- **json-api-nestjs:** enhance Zod schema definitions with metadata, refactor Swagger integration, and improve reusability of schema registrations ([9ecb739](https://github.com/klerick/nestjs-json-api/commit/9ecb739))
|
|
103
|
+
|
|
104
|
+
### ❤️ Thank You
|
|
105
|
+
|
|
106
|
+
- Alex H
|
|
107
|
+
|
|
108
|
+
## 10.0.0-beta.15 (2026-02-01)
|
|
109
|
+
|
|
110
|
+
### 🚀 Features
|
|
111
|
+
|
|
112
|
+
- **json-api-nestjs:** refactor query parameter schemas with Zod, improve Swagger definitions, and add reusable transformers ([70e955f](https://github.com/klerick/nestjs-json-api/commit/70e955f))
|
|
113
|
+
- **json-api-nestjs:** add primary key handling for relations and improve query schema generation ([7caea1a](https://github.com/klerick/nestjs-json-api/commit/7caea1a))
|
|
114
|
+
|
|
115
|
+
### 🧱 Updated Dependencies
|
|
116
|
+
|
|
117
|
+
- Updated json-api-nestjs-shared to 1.0.0-beta.7
|
|
118
|
+
|
|
119
|
+
### ❤️ Thank You
|
|
120
|
+
|
|
121
|
+
- Alex H
|
|
122
|
+
|
|
123
|
+
## 10.0.0-beta.14 (2026-01-23)
|
|
124
|
+
|
|
125
|
+
### 🚀 Features
|
|
126
|
+
|
|
127
|
+
- **json-api-nestjs-shared,json-api-nestjs:** im did mistake in commit msg ([56c483a](https://github.com/klerick/nestjs-json-api/commit/56c483a))
|
|
128
|
+
|
|
129
|
+
### 🧱 Updated Dependencies
|
|
130
|
+
|
|
131
|
+
- Updated json-api-nestjs-shared to 1.0.0-beta.6
|
|
132
|
+
|
|
133
|
+
### ❤️ Thank You
|
|
134
|
+
|
|
135
|
+
- Alex H
|
|
136
|
+
|
|
137
|
+
## 10.0.0-beta.13 (2026-01-23)
|
|
138
|
+
|
|
139
|
+
This was a version bump only for json-api-nestjs to align it with other projects, there were no code changes.
|
|
140
|
+
|
|
141
|
+
## 10.0.0-beta.12 (2026-01-23)
|
|
142
|
+
|
|
143
|
+
### 🚀 Features
|
|
144
|
+
|
|
145
|
+
- **json-api-nestjs:** enhance ZodIncludeQuery with improved type definitions and utility functions ([c4a5856](https://github.com/klerick/nestjs-json-api/commit/c4a5856))
|
|
146
|
+
- **json-api-nestjs:** add JsonApiResponseFrom decorator for reusing response schemas across methods ([f1f49c1](https://github.com/klerick/nestjs-json-api/commit/f1f49c1))
|
|
147
|
+
- **json-api-nestjs:** replace `errorSchema` with `JsonApiErrorResponseModel`, update response schema handling across Swagger methods ([4e7f481](https://github.com/klerick/nestjs-json-api/commit/4e7f481))
|
|
148
|
+
|
|
149
|
+
### 🧱 Updated Dependencies
|
|
150
|
+
|
|
151
|
+
- Updated json-api-nestjs-shared to 1.0.0-beta.5
|
|
152
|
+
|
|
153
|
+
### ❤️ Thank You
|
|
154
|
+
|
|
155
|
+
- Alex H
|
|
156
|
+
|
|
157
|
+
## 10.0.0-beta.11 (2026-01-22)
|
|
158
|
+
|
|
159
|
+
### 🚀 Features
|
|
160
|
+
|
|
161
|
+
- **json-api-nestjs:** add support for excluding controllers during module initialization ([5e2de06](https://github.com/klerick/nestjs-json-api/commit/5e2de06))
|
|
162
|
+
|
|
163
|
+
### ❤️ Thank You
|
|
164
|
+
|
|
165
|
+
- Alex H
|
|
166
|
+
|
|
167
|
+
## 10.0.0-beta.10 (2026-01-21)
|
|
168
|
+
|
|
169
|
+
### 🚀 Features
|
|
170
|
+
|
|
171
|
+
- **json-api-nestjs:** optimize and memoize Zod schema generation ([611da19](https://github.com/klerick/nestjs-json-api/commit/611da19))
|
|
172
|
+
|
|
173
|
+
### ❤️ Thank You
|
|
174
|
+
|
|
175
|
+
- Alex H
|
|
176
|
+
|
|
1
177
|
## 10.0.0-beta.9 (2026-01-20)
|
|
2
178
|
|
|
3
179
|
### 🚀 Features
|
package/README.md
CHANGED
|
@@ -79,8 +79,9 @@ The following interface is using for the configuration:
|
|
|
79
79
|
```typescript
|
|
80
80
|
export interface ModuleOptions {
|
|
81
81
|
entities: Entity[]; // List of typeOrm Entity
|
|
82
|
+
excludeControllers?: Entity[]; // List of entities to exclude from automatic controller generation
|
|
82
83
|
controllers?: NestController[]; // List of controller, if you need extend default present
|
|
83
|
-
connectionName?: string; // Type orm connection name: "default" is default name
|
|
84
|
+
connectionName?: string; // Type orm connection name: "default" is default name
|
|
84
85
|
providers?: NestProvider[]; // List of addition provider for useing in custom controller
|
|
85
86
|
imports?: NestImport[]; // List of addition module for useing in custom controller
|
|
86
87
|
options?: {
|
|
@@ -88,11 +89,38 @@ export interface ModuleOptions {
|
|
|
88
89
|
debug?: boolean; // Debug info in result object, like error message
|
|
89
90
|
pipeForId?: Type<PipeTransform> // Nestjs pipe for validate id params, by default ParseIntPipe
|
|
90
91
|
operationUrl?: string // Url for atomic operation https://jsonapi.org/ext/atomic/
|
|
91
|
-
//
|
|
92
|
+
allowSetId?: boolean // Allow client to set id on POST requests, false by default
|
|
93
|
+
// You can add params for MicroOrm or TypeOrm adapter
|
|
92
94
|
} ;
|
|
93
95
|
}
|
|
94
96
|
```
|
|
95
97
|
|
|
98
|
+
### Excluding Controllers
|
|
99
|
+
|
|
100
|
+
If you need to register entities for relationships but don't want automatic controller generation for some of them, use `excludeControllers`:
|
|
101
|
+
|
|
102
|
+
```typescript
|
|
103
|
+
import {Module} from '@nestjs/common';
|
|
104
|
+
import {JsonApiModule} from '@klerick/json-api-nestjs';
|
|
105
|
+
import {TypeOrmJsonApiModule} from '@klerick/json-api-nestjs-typeorm';
|
|
106
|
+
import {Users, Roles, AuditLog} from 'database';
|
|
107
|
+
|
|
108
|
+
@Module({
|
|
109
|
+
imports: [
|
|
110
|
+
JsonApiModule.forRoot(TypeOrmJsonApiModule, {
|
|
111
|
+
entities: [Users, Roles, AuditLog],
|
|
112
|
+
excludeControllers: [AuditLog], // AuditLog entity will not have auto-generated controller
|
|
113
|
+
}),
|
|
114
|
+
],
|
|
115
|
+
})
|
|
116
|
+
export class AppModule {}
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
This is useful when:
|
|
120
|
+
- You want to manage certain entities only through relationships
|
|
121
|
+
- You need custom controller implementation without the auto-generated one
|
|
122
|
+
- Some entities should be internal and not exposed via REST API
|
|
123
|
+
|
|
96
124
|
You can extend the default controller:
|
|
97
125
|
|
|
98
126
|
```typescript
|
|
@@ -335,6 +363,42 @@ type FilterOperand
|
|
|
335
363
|
}
|
|
336
364
|
}
|
|
337
365
|
```
|
|
366
|
+
|
|
367
|
+
### Client-Generated IDs
|
|
368
|
+
|
|
369
|
+
By default, the server generates IDs for new resources. If you need clients to provide their own IDs (e.g., UUIDs), enable the `allowSetId` option:
|
|
370
|
+
|
|
371
|
+
```typescript
|
|
372
|
+
@Module({
|
|
373
|
+
imports: [
|
|
374
|
+
JsonApiModule.forRoot(TypeOrmJsonApiModule, {
|
|
375
|
+
entities: [Users],
|
|
376
|
+
options: {
|
|
377
|
+
allowSetId: true,
|
|
378
|
+
},
|
|
379
|
+
}),
|
|
380
|
+
],
|
|
381
|
+
})
|
|
382
|
+
export class AppModule {}
|
|
383
|
+
```
|
|
384
|
+
|
|
385
|
+
With this option enabled, clients can include the `id` field in POST requests:
|
|
386
|
+
|
|
387
|
+
```json
|
|
388
|
+
{
|
|
389
|
+
"data": {
|
|
390
|
+
"id": "550e8400-e29b-41d4-a716-446655440000",
|
|
391
|
+
"type": "users",
|
|
392
|
+
"attributes": {
|
|
393
|
+
"login": "johndoe",
|
|
394
|
+
"firstName": "John",
|
|
395
|
+
"lastName": "Doe"
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
```
|
|
400
|
+
|
|
401
|
+
**Note:** When `allowSetId` is `false` (default), any `id` provided in the POST body will be ignored and the server will generate a new ID.
|
|
338
402
|
### Update item of Users
|
|
339
403
|
```
|
|
340
404
|
PATCH /users/:id
|
|
@@ -371,30 +435,169 @@ type FilterOperand
|
|
|
371
435
|
|
|
372
436
|
```
|
|
373
437
|
|
|
374
|
-
###
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
-
|
|
380
|
-
-
|
|
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:
|
|
381
450
|
|
|
382
|
-
|
|
451
|
+
**POST Request with Meta:**
|
|
383
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
|
+
```
|
|
384
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
|
+
```
|
|
487
|
+
|
|
488
|
+
**Relationship Operations with Meta:**
|
|
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.
|
|
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
|
|
385
588
|
{
|
|
386
589
|
"atomic:operations":[
|
|
387
590
|
{
|
|
388
591
|
"op":"add",
|
|
389
592
|
"ref":{
|
|
390
593
|
"type":"roles",
|
|
391
|
-
"
|
|
594
|
+
"lid":10000
|
|
392
595
|
},
|
|
393
596
|
"data":{
|
|
394
597
|
"type":"roles",
|
|
395
598
|
"attributes":{
|
|
396
|
-
"name":"
|
|
397
|
-
"key":"
|
|
599
|
+
"name":"admin",
|
|
600
|
+
"key":"admin_role"
|
|
398
601
|
}
|
|
399
602
|
}
|
|
400
603
|
},
|
|
@@ -406,27 +609,100 @@ but [Atomic operation](https://jsonapi.org/ext/atomic/) allow for one request.
|
|
|
406
609
|
"data":{
|
|
407
610
|
"type":"users",
|
|
408
611
|
"attributes":{
|
|
409
|
-
"login":"
|
|
612
|
+
"login":"johndoe",
|
|
613
|
+
"firstName":"John",
|
|
614
|
+
"lastName":"Doe"
|
|
410
615
|
},
|
|
411
616
|
"relationships":{
|
|
412
617
|
"addresses":{
|
|
413
|
-
"
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
"roles":[
|
|
417
|
-
{
|
|
418
|
-
"type":"roles",
|
|
419
|
-
"id":"10000"
|
|
618
|
+
"data":{
|
|
619
|
+
"type":"addresses",
|
|
620
|
+
"id":"1"
|
|
420
621
|
}
|
|
421
|
-
|
|
622
|
+
},
|
|
623
|
+
"roles":{
|
|
624
|
+
"data":[
|
|
625
|
+
{
|
|
626
|
+
"type":"roles",
|
|
627
|
+
"id":"10000"
|
|
628
|
+
}
|
|
629
|
+
]
|
|
630
|
+
}
|
|
422
631
|
}
|
|
423
632
|
}
|
|
424
633
|
}
|
|
425
634
|
]
|
|
426
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:
|
|
427
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
|
|
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
|
+
})
|
|
428
705
|
```
|
|
429
|
-
**tmpId** - is params for operation **add**, should be unique for all operations.
|
|
430
706
|
|
|
431
707
|
If you have Interceptor you can check call it from **AtomicOperation**
|
|
432
708
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@klerick/json-api-nestjs",
|
|
3
|
-
"version": "10.
|
|
3
|
+
"version": "10.1.0",
|
|
4
4
|
"type": "commonjs",
|
|
5
5
|
"description": "JsonApi Plugin for NestJs",
|
|
6
6
|
"keywords": [
|
|
@@ -21,15 +21,11 @@
|
|
|
21
21
|
"tslib": ">2.3.0"
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@klerick/json-api-nestjs-shared": "^1.0.0
|
|
24
|
+
"@klerick/json-api-nestjs-shared": "^1.0.0",
|
|
25
|
+
"ts-toolbelt": "^9.6.0",
|
|
25
26
|
"zod": "^4.1.0",
|
|
26
27
|
"zod-validation-error": "^4.0.0"
|
|
27
28
|
},
|
|
28
|
-
"overrides": {
|
|
29
|
-
"mikro-orm-pglite": {
|
|
30
|
-
"@mikro-orm/postgresql": "^6.4.0"
|
|
31
|
-
}
|
|
32
|
-
},
|
|
33
29
|
"exports": {
|
|
34
30
|
"./package.json": "./package.json",
|
|
35
31
|
".": {
|
|
@@ -51,7 +47,7 @@
|
|
|
51
47
|
"url": "https://github.com/klerick/nestjs-json-api.git"
|
|
52
48
|
},
|
|
53
49
|
"engines": {
|
|
54
|
-
"node": "
|
|
50
|
+
"node": "^22.22.3 || ^24.15.0 || >=26.0.0"
|
|
55
51
|
},
|
|
56
52
|
"files": [
|
|
57
53
|
"**/*"
|
package/src/index.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
export { JsonApiModule } from './lib/json-api.module';
|
|
2
2
|
export { JsonBaseController } from './lib/modules/mixin/controllers/json-base.controller';
|
|
3
|
-
export { JsonApi, InjectService, JsonApiReadOnly, JsonApiImmutable } from './lib/modules/mixin/decorators';
|
|
3
|
+
export { JsonApi, InjectService, JsonApiReadOnly, JsonApiImmutable, JsonApiResponseFrom } from './lib/modules/mixin/decorators';
|
|
4
4
|
export { entityForClass, excludeMethod, patchInputData, } from './lib/modules/mixin/helpers/utils';
|
|
5
|
-
export {
|
|
5
|
+
export { isTimezoneAwareColumnType } from './lib/utils';
|
|
6
|
+
export { PrepareParams, NestProvider, ValidateQueryError, UnionToTuple, EntityParam, DatePropertyTimezone, TypeField, Params, JsonApiReadOnlyField, JsonApiImmutableField, } from './lib/types';
|
|
6
7
|
export { JsonApiTransformerService, ErrorFormatService, EntityParamMapService } from './lib/modules/mixin/service';
|
|
7
8
|
export { MODULE_OPTIONS_TOKEN, CONTROLLER_OPTIONS_TOKEN, ASC, DESC, FIND_ONE_ROW_ENTITY, CHECK_RELATION_NAME, RUN_IN_TRANSACTION_FUNCTION, ORM_SERVICE, ENTITY_PARAM_MAP, DEFAULT_PAGE_SIZE, DEFAULT_QUERY_PAGE, CURRENT_ENTITY, METHOD_NAME } from './lib/constants';
|
|
8
9
|
export { OrmService, OrmService as JsonApiService, EntityControllerParam, CheckRelationName, FindOneRowEntity, RunInTransaction, EntityParamMap, MethodName } from './lib/modules/mixin/types';
|
package/src/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.METHOD_NAME = exports.CURRENT_ENTITY = exports.DEFAULT_QUERY_PAGE = exports.DEFAULT_PAGE_SIZE = exports.ENTITY_PARAM_MAP = exports.ORM_SERVICE = exports.RUN_IN_TRANSACTION_FUNCTION = exports.CHECK_RELATION_NAME = exports.FIND_ONE_ROW_ENTITY = exports.DESC = exports.ASC = exports.CONTROLLER_OPTIONS_TOKEN = exports.MODULE_OPTIONS_TOKEN = exports.EntityParamMapService = exports.ErrorFormatService = exports.JsonApiTransformerService = exports.TypeField = exports.patchInputData = exports.excludeMethod = exports.entityForClass = exports.JsonApiImmutable = exports.JsonApiReadOnly = exports.InjectService = exports.JsonApi = exports.JsonBaseController = exports.JsonApiModule = void 0;
|
|
3
|
+
exports.METHOD_NAME = exports.CURRENT_ENTITY = exports.DEFAULT_QUERY_PAGE = exports.DEFAULT_PAGE_SIZE = exports.ENTITY_PARAM_MAP = exports.ORM_SERVICE = exports.RUN_IN_TRANSACTION_FUNCTION = exports.CHECK_RELATION_NAME = exports.FIND_ONE_ROW_ENTITY = exports.DESC = exports.ASC = exports.CONTROLLER_OPTIONS_TOKEN = exports.MODULE_OPTIONS_TOKEN = exports.EntityParamMapService = exports.ErrorFormatService = exports.JsonApiTransformerService = exports.TypeField = exports.isTimezoneAwareColumnType = exports.patchInputData = exports.excludeMethod = exports.entityForClass = exports.JsonApiResponseFrom = exports.JsonApiImmutable = exports.JsonApiReadOnly = exports.InjectService = exports.JsonApi = exports.JsonBaseController = exports.JsonApiModule = void 0;
|
|
4
4
|
var json_api_module_1 = require("./lib/json-api.module");
|
|
5
5
|
Object.defineProperty(exports, "JsonApiModule", { enumerable: true, get: function () { return json_api_module_1.JsonApiModule; } });
|
|
6
6
|
var json_base_controller_1 = require("./lib/modules/mixin/controllers/json-base.controller");
|
|
@@ -10,10 +10,13 @@ Object.defineProperty(exports, "JsonApi", { enumerable: true, get: function () {
|
|
|
10
10
|
Object.defineProperty(exports, "InjectService", { enumerable: true, get: function () { return decorators_1.InjectService; } });
|
|
11
11
|
Object.defineProperty(exports, "JsonApiReadOnly", { enumerable: true, get: function () { return decorators_1.JsonApiReadOnly; } });
|
|
12
12
|
Object.defineProperty(exports, "JsonApiImmutable", { enumerable: true, get: function () { return decorators_1.JsonApiImmutable; } });
|
|
13
|
+
Object.defineProperty(exports, "JsonApiResponseFrom", { enumerable: true, get: function () { return decorators_1.JsonApiResponseFrom; } });
|
|
13
14
|
var utils_1 = require("./lib/modules/mixin/helpers/utils");
|
|
14
15
|
Object.defineProperty(exports, "entityForClass", { enumerable: true, get: function () { return utils_1.entityForClass; } });
|
|
15
16
|
Object.defineProperty(exports, "excludeMethod", { enumerable: true, get: function () { return utils_1.excludeMethod; } });
|
|
16
17
|
Object.defineProperty(exports, "patchInputData", { enumerable: true, get: function () { return utils_1.patchInputData; } });
|
|
18
|
+
var utils_2 = require("./lib/utils");
|
|
19
|
+
Object.defineProperty(exports, "isTimezoneAwareColumnType", { enumerable: true, get: function () { return utils_2.isTimezoneAwareColumnType; } });
|
|
17
20
|
var types_1 = require("./lib/types");
|
|
18
21
|
Object.defineProperty(exports, "TypeField", { enumerable: true, get: function () { return types_1.TypeField; } });
|
|
19
22
|
var service_1 = require("./lib/modules/mixin/service");
|
package/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../libs/json-api/json-api-nestjs/src/index.ts"],"names":[],"mappings":";;;AAAA,yDAAsD;AAA7C,gHAAA,aAAa,OAAA;AAEtB,6FAA0F;AAAjF,0HAAA,kBAAkB,OAAA;AAC3B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../libs/json-api/json-api-nestjs/src/index.ts"],"names":[],"mappings":";;;AAAA,yDAAsD;AAA7C,gHAAA,aAAa,OAAA;AAEtB,6FAA0F;AAAjF,0HAAA,kBAAkB,OAAA;AAC3B,6DAAgI;AAAvH,qGAAA,OAAO,OAAA;AAAE,2GAAA,aAAa,OAAA;AAAE,6GAAA,eAAe,OAAA;AAAE,8GAAA,gBAAgB,OAAA;AAAE,iHAAA,mBAAmB,OAAA;AACvF,2DAI2C;AAHzC,uGAAA,cAAc,OAAA;AACd,sGAAA,aAAa,OAAA;AACb,uGAAA,cAAc,OAAA;AAEhB,qCAAwD;AAA/C,kHAAA,yBAAyB,OAAA;AAClC,qCAWqB;AAJnB,kGAAA,SAAS,OAAA;AAKX,uDAIqC;AAHnC,oHAAA,yBAAyB,OAAA;AACzB,6GAAA,kBAAkB,OAAA;AAClB,gHAAA,qBAAqB,OAAA;AAEvB,6CAcyB;AAbvB,iHAAA,oBAAoB,OAAA;AACpB,qHAAA,wBAAwB,OAAA;AACxB,gGAAA,GAAG,OAAA;AACH,iGAAA,IAAI,OAAA;AACJ,gHAAA,mBAAmB,OAAA;AACnB,gHAAA,mBAAmB,OAAA;AACnB,wHAAA,2BAA2B,OAAA;AAC3B,wGAAA,WAAW,OAAA;AACX,6GAAA,gBAAgB,OAAA;AAChB,8GAAA,iBAAiB,OAAA;AACjB,+GAAA,kBAAkB,OAAA;AAClB,2GAAA,cAAc,OAAA;AACd,wGAAA,WAAW,OAAA"}
|
|
@@ -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;
|
package/src/lib/constants/di.js
CHANGED
|
@@ -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');
|