@nest-yalc-2/omnikernel-module 2.1.0 → 2.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +7 -8
- package/src/base/omni-base.entity.js +25 -28
- package/src/base/omni-base.entity.js.map +1 -1
- package/src/base/omni-external-ref.entity.js +40 -43
- package/src/base/omni-external-ref.entity.js.map +1 -1
- package/src/base/omni-named.entity.js +18 -21
- package/src/base/omni-named.entity.js.map +1 -1
- package/src/base/omni-record.entity.js +36 -39
- package/src/base/omni-record.entity.js.map +1 -1
- package/src/base/omni-relation.entity.js +45 -48
- package/src/base/omni-relation.entity.js.map +1 -1
- package/src/index.js +49 -52
- package/src/index.js.map +1 -1
- package/src/omni-collection-kind.enum.js +4 -7
- package/src/omni-collection-kind.enum.js.map +1 -1
- package/src/omni-collection.backend.js +8 -12
- package/src/omni-collection.backend.js.map +1 -1
- package/src/omni-collection.dto.d.ts +1 -1
- package/src/omni-collection.dto.js +110 -113
- package/src/omni-collection.dto.js.map +1 -1
- package/src/omni-collection.dto.ts +1 -1
- package/src/omni-collection.entity.js +19 -22
- package/src/omni-collection.entity.js.map +1 -1
- package/src/omni-collection.service.js +4 -8
- package/src/omni-collection.service.js.map +1 -1
- package/src/omni-document-kind.enum.js +4 -7
- package/src/omni-document-kind.enum.js.map +1 -1
- package/src/omni-document.backend.js +8 -12
- package/src/omni-document.backend.js.map +1 -1
- package/src/omni-document.dto.d.ts +1 -1
- package/src/omni-document.dto.js +130 -133
- package/src/omni-document.dto.js.map +1 -1
- package/src/omni-document.dto.ts +1 -1
- package/src/omni-document.entity.js +28 -31
- package/src/omni-document.entity.js.map +1 -1
- package/src/omni-document.service.js +4 -8
- package/src/omni-document.service.js.map +1 -1
- package/src/omni-dto.helpers.js +1 -4
- package/src/omni-dto.helpers.js.map +1 -1
- package/src/omni-extension-projection.definition.js +24 -29
- package/src/omni-extension-projection.definition.js.map +1 -1
- package/src/omni-extension-projection.resource.d.ts +1 -1
- package/src/omni-extension-projection.resource.js +32 -35
- package/src/omni-extension-projection.resource.js.map +1 -1
- package/src/omni-extension-projection.resource.ts +1 -1
- package/src/omni-extension-projection.service.js +15 -19
- package/src/omni-extension-projection.service.js.map +1 -1
- package/src/omni-external-ref-binding.validator.js +9 -13
- package/src/omni-external-ref-binding.validator.js.map +1 -1
- package/src/omni-external-ref-internal-type.enum.js +4 -7
- package/src/omni-external-ref-internal-type.enum.js.map +1 -1
- package/src/omni-external-ref.backend.js +12 -16
- package/src/omni-external-ref.backend.js.map +1 -1
- package/src/omni-external-ref.dto.d.ts +1 -1
- package/src/omni-external-ref.dto.js +91 -94
- package/src/omni-external-ref.dto.js.map +1 -1
- package/src/omni-external-ref.dto.ts +1 -1
- package/src/omni-external-ref.service.js +11 -15
- package/src/omni-external-ref.service.js.map +1 -1
- package/src/omni-migration.js +22 -27
- package/src/omni-migration.js.map +1 -1
- package/src/omni-named.backend.js +6 -10
- package/src/omni-named.backend.js.map +1 -1
- package/src/omni-named.dto.d.ts +1 -1
- package/src/omni-named.dto.js +57 -60
- package/src/omni-named.dto.js.map +1 -1
- package/src/omni-named.dto.ts +1 -1
- package/src/omni-projection.catalog.js +18 -23
- package/src/omni-projection.catalog.js.map +1 -1
- package/src/omni-projection.lifecycle.js +1 -2
- package/src/omni-record-status.enum.js +4 -7
- package/src/omni-record-status.enum.js.map +1 -1
- package/src/omni-record.backend.js +6 -10
- package/src/omni-record.backend.js.map +1 -1
- package/src/omni-record.dto.d.ts +1 -1
- package/src/omni-record.dto.js +100 -103
- package/src/omni-record.dto.js.map +1 -1
- package/src/omni-record.dto.ts +1 -1
- package/src/omni-record.service.js +6 -10
- package/src/omni-record.service.js.map +1 -1
- package/src/omni-relation-kind.contract.js +10 -14
- package/src/omni-relation-kind.contract.js.map +1 -1
- package/src/omni-relation-kind.enum.js +4 -7
- package/src/omni-relation-kind.enum.js.map +1 -1
- package/src/omni-relation-projection.definition.js +7 -12
- package/src/omni-relation-projection.definition.js.map +1 -1
- package/src/omni-relation-projection.resource.d.ts +1 -1
- package/src/omni-relation-projection.resource.js +66 -71
- package/src/omni-relation-projection.resource.js.map +1 -1
- package/src/omni-relation-projection.resource.ts +2 -2
- package/src/omni-relation-projection.service.js +44 -48
- package/src/omni-relation-projection.service.js.map +1 -1
- package/src/omni-relation-semantics.js +16 -23
- package/src/omni-relation-semantics.js.map +1 -1
- package/src/omni-relation-status.enum.js +4 -7
- package/src/omni-relation-status.enum.js.map +1 -1
- package/src/omni-relation.backend.js +10 -14
- package/src/omni-relation.backend.js.map +1 -1
- package/src/omni-relation.dto.d.ts +1 -1
- package/src/omni-relation.dto.js +89 -92
- package/src/omni-relation.dto.js.map +1 -1
- package/src/omni-relation.dto.ts +1 -1
- package/src/omni-relation.service.js +14 -18
- package/src/omni-relation.service.js.map +1 -1
- package/src/omni-scope.js +14 -18
- package/src/omni-scope.js.map +1 -1
- package/src/omni-scoped.backend.d.ts +1 -1
- package/src/omni-scoped.backend.js +21 -25
- package/src/omni-scoped.backend.js.map +1 -1
- package/src/omni-scoped.backend.ts +1 -1
- package/src/omni-scoped.repository.js +1 -5
- package/src/omni-scoped.repository.js.map +1 -1
- package/src/omni-scoped.service.js +17 -21
- package/src/omni-scoped.service.js.map +1 -1
- package/src/omnikernel.diagnostics.js +1 -4
- package/src/omnikernel.diagnostics.js.map +1 -1
- package/src/omnikernel.module.js +44 -47
- package/src/omnikernel.module.js.map +1 -1
- package/src/omnikernel.query.service.js +21 -26
- package/src/omnikernel.query.service.js.map +1 -1
|
@@ -1,23 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
const omni_relation_entity_js_1 = require("./base/omni-relation.entity.js");
|
|
17
|
-
const omni_relation_projection_definition_js_1 = require("./omni-relation-projection.definition.js");
|
|
18
|
-
const omni_relation_projection_service_js_1 = require("./omni-relation-projection.service.js");
|
|
19
|
-
const omni_relation_kind_contract_js_1 = require("./omni-relation-kind.contract.js");
|
|
20
|
-
const omni_scope_js_1 = require("./omni-scope.js");
|
|
1
|
+
import { Scope } from '@nestjs/common';
|
|
2
|
+
import { InputType, Int, ObjectType } from '@nestjs/graphql';
|
|
3
|
+
import { getDataSourceToken } from '@nestjs/typeorm';
|
|
4
|
+
import { CrudGenResourceFactory, FilterOptionType, ModelField, ModelObject, getServiceToken, } from '@nest-yalc-2/crud-gen';
|
|
5
|
+
import { GQLDataLoader, getDataloaderToken, getFn, } from '@nest-yalc-2/data-loader';
|
|
6
|
+
import { UUIDScalar } from '@nest-yalc-2/graphql/scalars/uuid.scalar.js';
|
|
7
|
+
import returnValue from '@node-yalc/utils/returnValue.js';
|
|
8
|
+
import { Exclude, Expose } from 'class-transformer';
|
|
9
|
+
import { GraphQLJSON } from 'graphql-type-json';
|
|
10
|
+
import { OmniRecordEntity } from './base/omni-record.entity.js';
|
|
11
|
+
import { OmniRelationEntity } from './base/omni-relation.entity.js';
|
|
12
|
+
import { getOmniRelationProjectionAliases, getOmniRelationProjectionAllowedKinds, } from './omni-relation-projection.definition.js';
|
|
13
|
+
import { OmniRelationProjectionService } from './omni-relation-projection.service.js';
|
|
14
|
+
import { createOmniRelationKindContract } from './omni-relation-kind.contract.js';
|
|
15
|
+
import { OMNI_KERNEL_OPTIONS, OmniScopeContext } from './omni-scope.js';
|
|
21
16
|
function namedClass(name, outputFields) {
|
|
22
17
|
return {
|
|
23
18
|
[name]: class {
|
|
@@ -36,12 +31,12 @@ function namedClass(name, outputFields) {
|
|
|
36
31
|
}[name];
|
|
37
32
|
}
|
|
38
33
|
function addField(target, name, destination, type, nullable) {
|
|
39
|
-
|
|
34
|
+
ModelField({
|
|
40
35
|
dst: destination,
|
|
41
|
-
gqlType: (
|
|
36
|
+
gqlType: returnValue(type),
|
|
42
37
|
gqlOptions: { nullable },
|
|
43
38
|
})(target.prototype, name);
|
|
44
|
-
|
|
39
|
+
Expose()(target.prototype, name);
|
|
45
40
|
}
|
|
46
41
|
function defaultGraphqlNames(apiModel) {
|
|
47
42
|
return {
|
|
@@ -51,9 +46,9 @@ function defaultGraphqlNames(apiModel) {
|
|
|
51
46
|
conditions: `${apiModel.name}Condition`,
|
|
52
47
|
};
|
|
53
48
|
}
|
|
54
|
-
function createOmniRelationProjectionGraphqlTypes(definition, names) {
|
|
55
|
-
const aliases =
|
|
56
|
-
const multipleKinds =
|
|
49
|
+
export function createOmniRelationProjectionGraphqlTypes(definition, names) {
|
|
50
|
+
const aliases = getOmniRelationProjectionAliases(definition);
|
|
51
|
+
const multipleKinds = getOmniRelationProjectionAllowedKinds(definition).length > 1;
|
|
57
52
|
const objectFields = [
|
|
58
53
|
['guid', 'guid'],
|
|
59
54
|
[aliases.source, 'sourceRecordId'],
|
|
@@ -64,45 +59,45 @@ function createOmniRelationProjectionGraphqlTypes(definition, names) {
|
|
|
64
59
|
if (multipleKinds)
|
|
65
60
|
objectFields.splice(1, 0, [aliases.kind, 'kind']);
|
|
66
61
|
const object = namedClass(names.object, objectFields);
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
filters: { type:
|
|
62
|
+
ObjectType(names.object)(object);
|
|
63
|
+
ModelObject({
|
|
64
|
+
filters: { type: FilterOptionType.INCLUDE, fields: ['guid'] },
|
|
70
65
|
})(object);
|
|
71
|
-
|
|
72
|
-
addField(object, 'guid', 'guid',
|
|
66
|
+
Exclude()(object);
|
|
67
|
+
addField(object, 'guid', 'guid', UUIDScalar, false);
|
|
73
68
|
if (multipleKinds) {
|
|
74
69
|
addField(object, aliases.kind, 'kind', String, false);
|
|
75
70
|
}
|
|
76
|
-
addField(object, aliases.source, 'sourceRecordId',
|
|
77
|
-
addField(object, aliases.target, 'targetRecordId',
|
|
78
|
-
addField(object, 'revision', 'revision',
|
|
79
|
-
addField(object, aliases.payload, 'payload',
|
|
71
|
+
addField(object, aliases.source, 'sourceRecordId', UUIDScalar, false);
|
|
72
|
+
addField(object, aliases.target, 'targetRecordId', UUIDScalar, false);
|
|
73
|
+
addField(object, 'revision', 'revision', Int, false);
|
|
74
|
+
addField(object, aliases.payload, 'payload', GraphQLJSON, true);
|
|
80
75
|
const create = namedClass(names.create);
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
addField(create, 'guid', 'guid',
|
|
76
|
+
InputType(names.create)(create);
|
|
77
|
+
ModelObject()(create);
|
|
78
|
+
addField(create, 'guid', 'guid', UUIDScalar, false);
|
|
84
79
|
if (multipleKinds) {
|
|
85
80
|
addField(create, aliases.kind, 'kind', String, false);
|
|
86
81
|
}
|
|
87
|
-
addField(create, aliases.source, 'sourceRecordId',
|
|
88
|
-
addField(create, aliases.target, 'targetRecordId',
|
|
89
|
-
addField(create, aliases.payload, 'payload',
|
|
82
|
+
addField(create, aliases.source, 'sourceRecordId', UUIDScalar, false);
|
|
83
|
+
addField(create, aliases.target, 'targetRecordId', UUIDScalar, false);
|
|
84
|
+
addField(create, aliases.payload, 'payload', GraphQLJSON, true);
|
|
90
85
|
const patch = namedClass(names.patch);
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
addField(patch, aliases.payload, 'payload',
|
|
94
|
-
addField(patch, 'expectedRevision', 'expectedRevision',
|
|
86
|
+
InputType(names.patch)(patch);
|
|
87
|
+
ModelObject()(patch);
|
|
88
|
+
addField(patch, aliases.payload, 'payload', GraphQLJSON, true);
|
|
89
|
+
addField(patch, 'expectedRevision', 'expectedRevision', Int, false);
|
|
95
90
|
const conditions = namedClass(names.conditions);
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
addField(conditions, 'guid', 'guid',
|
|
91
|
+
InputType(names.conditions)(conditions);
|
|
92
|
+
ModelObject()(conditions);
|
|
93
|
+
addField(conditions, 'guid', 'guid', UUIDScalar, false);
|
|
99
94
|
return { object, create, patch, conditions };
|
|
100
95
|
}
|
|
101
|
-
function createOmniRelationProjectionRegistration(options) {
|
|
96
|
+
export function createOmniRelationProjectionRegistration(options) {
|
|
102
97
|
const graphqlTypes = createOmniRelationProjectionGraphqlTypes(options.definition, options.graphql?.names ?? defaultGraphqlNames(options.apiModel));
|
|
103
|
-
const serviceToken =
|
|
104
|
-
const dataLoaderToken =
|
|
105
|
-
const resource =
|
|
98
|
+
const serviceToken = getServiceToken(options.apiModel);
|
|
99
|
+
const dataLoaderToken = getDataloaderToken(options.apiModel);
|
|
100
|
+
const resource = CrudGenResourceFactory({
|
|
106
101
|
entityModel: options.apiModel,
|
|
107
102
|
backend: false,
|
|
108
103
|
graphql: {
|
|
@@ -131,7 +126,7 @@ function createOmniRelationProjectionRegistration(options) {
|
|
|
131
126
|
},
|
|
132
127
|
});
|
|
133
128
|
const relationKinds = Object.freeze([
|
|
134
|
-
...
|
|
129
|
+
...getOmniRelationProjectionAllowedKinds(options.definition),
|
|
135
130
|
]);
|
|
136
131
|
const reader = Object.freeze({
|
|
137
132
|
type: 'relation',
|
|
@@ -141,12 +136,12 @@ function createOmniRelationProjectionRegistration(options) {
|
|
|
141
136
|
const serviceProvider = options.lifecycle && options.catalog
|
|
142
137
|
? {
|
|
143
138
|
provide: serviceToken,
|
|
144
|
-
scope:
|
|
145
|
-
useFactory: (dataSource, scope, omniOptions, lifecycle, catalog) => new
|
|
139
|
+
scope: Scope.REQUEST,
|
|
140
|
+
useFactory: (dataSource, scope, omniOptions, lifecycle, catalog) => new OmniRelationProjectionService(dataSource.getRepository(OmniRelationEntity), scope, omniOptions.deletion.relation, dataSource.getRepository(OmniRecordEntity), createOmniRelationKindContract(relationKinds), options.definition, dataSource, lifecycle, catalog),
|
|
146
141
|
inject: [
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
142
|
+
getDataSourceToken(options.dbConnection),
|
|
143
|
+
OmniScopeContext,
|
|
144
|
+
OMNI_KERNEL_OPTIONS,
|
|
150
145
|
options.lifecycle.token,
|
|
151
146
|
options.catalog.token,
|
|
152
147
|
],
|
|
@@ -154,34 +149,34 @@ function createOmniRelationProjectionRegistration(options) {
|
|
|
154
149
|
: options.lifecycle
|
|
155
150
|
? {
|
|
156
151
|
provide: serviceToken,
|
|
157
|
-
scope:
|
|
158
|
-
useFactory: (dataSource, scope, omniOptions, lifecycle) => new
|
|
152
|
+
scope: Scope.REQUEST,
|
|
153
|
+
useFactory: (dataSource, scope, omniOptions, lifecycle) => new OmniRelationProjectionService(dataSource.getRepository(OmniRelationEntity), scope, omniOptions.deletion.relation, dataSource.getRepository(OmniRecordEntity), createOmniRelationKindContract(relationKinds), options.definition, dataSource, lifecycle),
|
|
159
154
|
inject: [
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
155
|
+
getDataSourceToken(options.dbConnection),
|
|
156
|
+
OmniScopeContext,
|
|
157
|
+
OMNI_KERNEL_OPTIONS,
|
|
163
158
|
options.lifecycle.token,
|
|
164
159
|
],
|
|
165
160
|
}
|
|
166
161
|
: {
|
|
167
162
|
provide: serviceToken,
|
|
168
|
-
scope:
|
|
169
|
-
useFactory: (dataSource, scope, omniOptions) => new
|
|
163
|
+
scope: Scope.REQUEST,
|
|
164
|
+
useFactory: (dataSource, scope, omniOptions) => new OmniRelationProjectionService(dataSource.getRepository(OmniRelationEntity), scope, omniOptions.deletion.relation, dataSource.getRepository(OmniRecordEntity), createOmniRelationKindContract(relationKinds), options.definition, dataSource, undefined),
|
|
170
165
|
inject: [
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
166
|
+
getDataSourceToken(options.dbConnection),
|
|
167
|
+
OmniScopeContext,
|
|
168
|
+
OMNI_KERNEL_OPTIONS,
|
|
174
169
|
],
|
|
175
170
|
};
|
|
176
171
|
const providers = [
|
|
177
172
|
serviceProvider,
|
|
178
173
|
{
|
|
179
174
|
provide: dataLoaderToken,
|
|
180
|
-
scope:
|
|
181
|
-
useFactory: (service, scope) => new
|
|
175
|
+
scope: Scope.REQUEST,
|
|
176
|
+
useFactory: (service, scope) => new GQLDataLoader(getFn(service), 'guid', undefined, {
|
|
182
177
|
cacheKeyFn: (key) => scope.cacheKey(key),
|
|
183
178
|
}),
|
|
184
|
-
inject: [serviceToken,
|
|
179
|
+
inject: [serviceToken, OmniScopeContext],
|
|
185
180
|
},
|
|
186
181
|
...resource.providers,
|
|
187
182
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"omni-relation-projection.resource.js","sourceRoot":"","sources":["omni-relation-projection.resource.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"omni-relation-projection.resource.js","sourceRoot":"","sources":["omni-relation-projection.resource.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,8 +15,8 @@ import {
|
|
|
15
15
|
getFn,
|
|
16
16
|
} from '@nest-yalc-2/data-loader';
|
|
17
17
|
import { UUIDScalar } from '@nest-yalc-2/graphql/scalars/uuid.scalar.js';
|
|
18
|
-
import type { ClassType } from '@node-yalc/types/globals';
|
|
19
|
-
import returnValue from '@node-yalc/utils/returnValue';
|
|
18
|
+
import type { ClassType } from '@node-yalc/types/globals.js';
|
|
19
|
+
import returnValue from '@node-yalc/utils/returnValue.js';
|
|
20
20
|
import { Exclude, Expose } from 'class-transformer';
|
|
21
21
|
import { GraphQLJSON } from 'graphql-type-json';
|
|
22
22
|
import type { DataSource, ObjectLiteral } from 'typeorm';
|
|
@@ -1,15 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const omni_relation_projection_definition_js_1 = require("./omni-relation-projection.definition.js");
|
|
11
|
-
const omni_relation_service_js_1 = require("./omni-relation.service.js");
|
|
12
|
-
const omni_relation_status_enum_js_1 = require("./omni-relation-status.enum.js");
|
|
1
|
+
import { BadRequestException, ConflictException } from '@nestjs/common';
|
|
2
|
+
import { Operators, PROJECTION_INTEGER_MAX, } from '@nest-yalc-2/crud-gen';
|
|
3
|
+
import { In, IsNull, } from 'typeorm';
|
|
4
|
+
import { OmniRecordEntity } from './base/omni-record.entity.js';
|
|
5
|
+
import { OmniRelationEntity } from './base/omni-relation.entity.js';
|
|
6
|
+
import { createOmniProjectionReaderCatalog, } from './omni-projection.catalog.js';
|
|
7
|
+
import { getOmniRelationProjectionAliases, getOmniRelationProjectionAllowedKinds, } from './omni-relation-projection.definition.js';
|
|
8
|
+
import { OmniRelationService } from './omni-relation.service.js';
|
|
9
|
+
import { OmniRelationStatus } from './omni-relation-status.enum.js';
|
|
13
10
|
function hasOwn(input, key) {
|
|
14
11
|
return Object.prototype.hasOwnProperty.call(input, key);
|
|
15
12
|
}
|
|
@@ -20,7 +17,7 @@ function isRetryableTransactionError(error) {
|
|
|
20
17
|
code === 'SQLITE_BUSY' ||
|
|
21
18
|
code === 'SQLITE_BUSY_SNAPSHOT');
|
|
22
19
|
}
|
|
23
|
-
class OmniRelationProjectionService extends
|
|
20
|
+
export class OmniRelationProjectionService extends OmniRelationService {
|
|
24
21
|
constructor(repository, scope, relationDeletion, recordRepository, kinds, definition, dataSource, lifecycle, readerCatalog) {
|
|
25
22
|
super(repository, scope, relationDeletion, recordRepository, kinds);
|
|
26
23
|
this.relationDeletion = relationDeletion;
|
|
@@ -28,7 +25,7 @@ class OmniRelationProjectionService extends omni_relation_service_js_1.OmniRelat
|
|
|
28
25
|
this.dataSource = dataSource;
|
|
29
26
|
this.lifecycle = lifecycle;
|
|
30
27
|
this.readerCatalog = readerCatalog;
|
|
31
|
-
for (const kind of
|
|
28
|
+
for (const kind of getOmniRelationProjectionAllowedKinds(definition)) {
|
|
32
29
|
try {
|
|
33
30
|
kinds.assert(kind);
|
|
34
31
|
}
|
|
@@ -49,7 +46,7 @@ class OmniRelationProjectionService extends omni_relation_service_js_1.OmniRelat
|
|
|
49
46
|
return typeof result === 'boolean' ? result : this.publicEntity(result);
|
|
50
47
|
}
|
|
51
48
|
const result = await this.mutate(async (manager) => {
|
|
52
|
-
await this.assertRelation(created, manager.getRepository(
|
|
49
|
+
await this.assertRelation(created, manager.getRepository(OmniRecordEntity));
|
|
53
50
|
await this.lifecycle.beforeCreate?.({
|
|
54
51
|
definition: this.definition,
|
|
55
52
|
scope: this.scope,
|
|
@@ -57,7 +54,7 @@ class OmniRelationProjectionService extends omni_relation_service_js_1.OmniRelat
|
|
|
57
54
|
readers: this.readers(manager),
|
|
58
55
|
input: this.publicInput(normalized),
|
|
59
56
|
});
|
|
60
|
-
const repository = manager.getRepository(
|
|
57
|
+
const repository = manager.getRepository(OmniRelationEntity);
|
|
61
58
|
const entity = {
|
|
62
59
|
...created,
|
|
63
60
|
scopeId: this.scopeId,
|
|
@@ -83,7 +80,7 @@ class OmniRelationProjectionService extends omni_relation_service_js_1.OmniRelat
|
|
|
83
80
|
async getEntityListExtended(findOptions = {}, withCount = false, relations, databaseName) {
|
|
84
81
|
this.rejectFixedFilters(findOptions.where);
|
|
85
82
|
const where = {
|
|
86
|
-
operator:
|
|
83
|
+
operator: Operators.AND,
|
|
87
84
|
filters: this.definitionFilters(),
|
|
88
85
|
...(findOptions.where ? { childExpressions: [findOptions.where] } : {}),
|
|
89
86
|
};
|
|
@@ -103,23 +100,23 @@ class OmniRelationProjectionService extends omni_relation_service_js_1.OmniRelat
|
|
|
103
100
|
if (typeof expectedRevision !== 'number' ||
|
|
104
101
|
!Number.isInteger(expectedRevision) ||
|
|
105
102
|
expectedRevision < 1 ||
|
|
106
|
-
expectedRevision >=
|
|
107
|
-
throw new
|
|
103
|
+
expectedRevision >= PROJECTION_INTEGER_MAX) {
|
|
104
|
+
throw new BadRequestException(`expectedRevision must be an integer between 1 and ${PROJECTION_INTEGER_MAX - 1}.`);
|
|
108
105
|
}
|
|
109
106
|
const fixedConditions = this.withDefinitionConditions(this.normalizeConditions(conditions));
|
|
110
107
|
const { expectedRevision: _expectedRevision, ...changes } = normalized;
|
|
111
108
|
if (Object.keys(changes).length === 0) {
|
|
112
|
-
throw new
|
|
109
|
+
throw new BadRequestException('Omni relation update requires metadata.');
|
|
113
110
|
}
|
|
114
111
|
const result = await this.mutate(async (manager) => {
|
|
115
|
-
const repository = manager.getRepository(
|
|
112
|
+
const repository = manager.getRepository(OmniRelationEntity);
|
|
116
113
|
const current = await repository.findOne({ where: fixedConditions });
|
|
117
114
|
if (!current)
|
|
118
115
|
this.notFound();
|
|
119
116
|
if (current.revision !== expectedRevision) {
|
|
120
|
-
throw new
|
|
117
|
+
throw new ConflictException('Omni relation revision conflict.');
|
|
121
118
|
}
|
|
122
|
-
await this.assertRelation({ ...current, ...changes }, manager.getRepository(
|
|
119
|
+
await this.assertRelation({ ...current, ...changes }, manager.getRepository(OmniRecordEntity));
|
|
123
120
|
await this.lifecycle?.beforeUpdate?.({
|
|
124
121
|
definition: this.definition,
|
|
125
122
|
scope: this.scope,
|
|
@@ -136,10 +133,10 @@ class OmniRelationProjectionService extends omni_relation_service_js_1.OmniRelat
|
|
|
136
133
|
.andWhere('"guid" = :guid', { guid: current.guid })
|
|
137
134
|
.andWhere('"revision" = :expectedRevision', { expectedRevision })
|
|
138
135
|
.andWhere('"kind" IN (:...kinds)', {
|
|
139
|
-
kinds: [...
|
|
136
|
+
kinds: [...getOmniRelationProjectionAllowedKinds(this.definition)],
|
|
140
137
|
})
|
|
141
138
|
.andWhere('"status" = :status', {
|
|
142
|
-
status: this.definition.relation.status ??
|
|
139
|
+
status: this.definition.relation.status ?? OmniRelationStatus.Active,
|
|
143
140
|
})
|
|
144
141
|
.andWhere(this.definition.relation.schema
|
|
145
142
|
? '"payloadSchemaId" = :schemaId AND "payloadSchemaVersion" = :schemaVersion'
|
|
@@ -154,7 +151,7 @@ class OmniRelationProjectionService extends omni_relation_service_js_1.OmniRelat
|
|
|
154
151
|
const existing = await repository.findOne({ where: fixedConditions });
|
|
155
152
|
if (!existing)
|
|
156
153
|
this.notFound();
|
|
157
|
-
throw new
|
|
154
|
+
throw new ConflictException('Omni relation revision conflict.');
|
|
158
155
|
}
|
|
159
156
|
if (!returnEntity)
|
|
160
157
|
return true;
|
|
@@ -167,7 +164,7 @@ class OmniRelationProjectionService extends omni_relation_service_js_1.OmniRelat
|
|
|
167
164
|
if (!this.lifecycle)
|
|
168
165
|
return super.deleteEntity(fixedConditions);
|
|
169
166
|
return this.mutate(async (manager) => {
|
|
170
|
-
const repository = manager.getRepository(
|
|
167
|
+
const repository = manager.getRepository(OmniRelationEntity);
|
|
171
168
|
const current = await repository.findOne({ where: fixedConditions });
|
|
172
169
|
if (!current)
|
|
173
170
|
this.notFound();
|
|
@@ -190,14 +187,14 @@ class OmniRelationProjectionService extends omni_relation_service_js_1.OmniRelat
|
|
|
190
187
|
assertEndpointKinds(source, target) {
|
|
191
188
|
if (source.kind !== this.definition.relation.sourceKind ||
|
|
192
189
|
target.kind !== this.definition.relation.targetKind) {
|
|
193
|
-
throw new
|
|
190
|
+
throw new BadRequestException('Omni relation endpoints do not match the registered resource kinds.');
|
|
194
191
|
}
|
|
195
192
|
}
|
|
196
193
|
createValues(input) {
|
|
197
194
|
return {
|
|
198
195
|
...input,
|
|
199
196
|
kind: input.kind,
|
|
200
|
-
status: this.definition.relation.status ??
|
|
197
|
+
status: this.definition.relation.status ?? OmniRelationStatus.Active,
|
|
201
198
|
...(this.definition.relation.schema
|
|
202
199
|
? {
|
|
203
200
|
payloadSchemaId: this.definition.relation.schema.id,
|
|
@@ -207,7 +204,7 @@ class OmniRelationProjectionService extends omni_relation_service_js_1.OmniRelat
|
|
|
207
204
|
};
|
|
208
205
|
}
|
|
209
206
|
publicEntity(entity) {
|
|
210
|
-
const aliases =
|
|
207
|
+
const aliases = getOmniRelationProjectionAliases(this.definition);
|
|
211
208
|
return {
|
|
212
209
|
...entity,
|
|
213
210
|
...(aliases.kind === 'kind' ? {} : { [aliases.kind]: entity.kind }),
|
|
@@ -223,7 +220,7 @@ class OmniRelationProjectionService extends omni_relation_service_js_1.OmniRelat
|
|
|
223
220
|
};
|
|
224
221
|
}
|
|
225
222
|
publicInput(input) {
|
|
226
|
-
const aliases =
|
|
223
|
+
const aliases = getOmniRelationProjectionAliases(this.definition);
|
|
227
224
|
const output = { ...input };
|
|
228
225
|
for (const [field, alias] of [
|
|
229
226
|
['kind', aliases.kind],
|
|
@@ -239,21 +236,21 @@ class OmniRelationProjectionService extends omni_relation_service_js_1.OmniRelat
|
|
|
239
236
|
return output;
|
|
240
237
|
}
|
|
241
238
|
selectCreateKind(input) {
|
|
242
|
-
const allowed =
|
|
239
|
+
const allowed = getOmniRelationProjectionAllowedKinds(this.definition);
|
|
243
240
|
if (allowed.length === 1) {
|
|
244
241
|
if (input.kind !== undefined) {
|
|
245
|
-
throw new
|
|
242
|
+
throw new BadRequestException('Omni relation kind is server-owned.');
|
|
246
243
|
}
|
|
247
244
|
input.kind = allowed[0];
|
|
248
245
|
return;
|
|
249
246
|
}
|
|
250
247
|
if (typeof input.kind !== 'string' || !allowed.includes(input.kind)) {
|
|
251
|
-
throw new
|
|
248
|
+
throw new BadRequestException('Omni relation kind is not allowed by this resource.');
|
|
252
249
|
}
|
|
253
250
|
}
|
|
254
251
|
normalizeInput(input) {
|
|
255
252
|
const normalized = { ...input };
|
|
256
|
-
const aliases =
|
|
253
|
+
const aliases = getOmniRelationProjectionAliases(this.definition);
|
|
257
254
|
for (const [alias, field] of [
|
|
258
255
|
[aliases.kind, 'kind'],
|
|
259
256
|
[aliases.source, 'sourceRecordId'],
|
|
@@ -265,7 +262,7 @@ class OmniRelationProjectionService extends omni_relation_service_js_1.OmniRelat
|
|
|
265
262
|
if (!hasOwn(normalized, alias))
|
|
266
263
|
continue;
|
|
267
264
|
if (hasOwn(normalized, field)) {
|
|
268
|
-
throw new
|
|
265
|
+
throw new BadRequestException(`Omni relation ${alias} conflicts with ${field}.`);
|
|
269
266
|
}
|
|
270
267
|
normalized[field] = normalized[alias];
|
|
271
268
|
delete normalized[alias];
|
|
@@ -283,14 +280,14 @@ class OmniRelationProjectionService extends omni_relation_service_js_1.OmniRelat
|
|
|
283
280
|
'payloadSchemaVersion',
|
|
284
281
|
]) {
|
|
285
282
|
if (hasOwn(input, field)) {
|
|
286
|
-
throw new
|
|
283
|
+
throw new BadRequestException(`Omni relation ${field} is server-owned.`);
|
|
287
284
|
}
|
|
288
285
|
}
|
|
289
286
|
}
|
|
290
287
|
rejectImmutableEndpoints(input) {
|
|
291
288
|
for (const field of ['guid', 'sourceRecordId', 'targetRecordId']) {
|
|
292
289
|
if (hasOwn(input, field)) {
|
|
293
|
-
throw new
|
|
290
|
+
throw new BadRequestException(`Omni relation ${field} is immutable.`);
|
|
294
291
|
}
|
|
295
292
|
}
|
|
296
293
|
}
|
|
@@ -298,7 +295,7 @@ class OmniRelationProjectionService extends omni_relation_service_js_1.OmniRelat
|
|
|
298
295
|
if (hasOwn(input, 'payload') &&
|
|
299
296
|
input.payload !== null &&
|
|
300
297
|
(typeof input.payload !== 'object' || Array.isArray(input.payload))) {
|
|
301
|
-
throw new
|
|
298
|
+
throw new BadRequestException('payload must be a JSON object or null.');
|
|
302
299
|
}
|
|
303
300
|
}
|
|
304
301
|
withDefinitionConditions(conditions) {
|
|
@@ -314,23 +311,23 @@ class OmniRelationProjectionService extends omni_relation_service_js_1.OmniRelat
|
|
|
314
311
|
definitionFilters() {
|
|
315
312
|
const relation = this.definition.relation;
|
|
316
313
|
return {
|
|
317
|
-
kind:
|
|
318
|
-
status: relation.status ??
|
|
314
|
+
kind: In([...getOmniRelationProjectionAllowedKinds(this.definition)]),
|
|
315
|
+
status: relation.status ?? OmniRelationStatus.Active,
|
|
319
316
|
...(relation.schema
|
|
320
317
|
? {
|
|
321
318
|
payloadSchemaId: relation.schema.id,
|
|
322
319
|
payloadSchemaVersion: relation.schema.version,
|
|
323
320
|
}
|
|
324
321
|
: {
|
|
325
|
-
payloadSchemaId:
|
|
326
|
-
payloadSchemaVersion:
|
|
322
|
+
payloadSchemaId: IsNull(),
|
|
323
|
+
payloadSchemaVersion: IsNull(),
|
|
327
324
|
}),
|
|
328
325
|
};
|
|
329
326
|
}
|
|
330
327
|
assertFixedConditions(conditions) {
|
|
331
328
|
for (const field of Object.keys(this.definitionFilters())) {
|
|
332
329
|
if (hasOwn(conditions, field)) {
|
|
333
|
-
throw new
|
|
330
|
+
throw new BadRequestException(`Omni relation ${field} is server-owned.`);
|
|
334
331
|
}
|
|
335
332
|
}
|
|
336
333
|
}
|
|
@@ -344,7 +341,7 @@ class OmniRelationProjectionService extends omni_relation_service_js_1.OmniRelat
|
|
|
344
341
|
const candidate = where;
|
|
345
342
|
for (const field of Object.keys(this.definitionFilters())) {
|
|
346
343
|
if (hasOwn(candidate, field)) {
|
|
347
|
-
throw new
|
|
344
|
+
throw new BadRequestException(`Omni relation ${field} is server-owned.`);
|
|
348
345
|
}
|
|
349
346
|
}
|
|
350
347
|
if (candidate.filters && typeof candidate.filters === 'object') {
|
|
@@ -356,7 +353,7 @@ class OmniRelationProjectionService extends omni_relation_service_js_1.OmniRelat
|
|
|
356
353
|
}
|
|
357
354
|
readers(manager) {
|
|
358
355
|
return (this.readerCatalog ??
|
|
359
|
-
|
|
356
|
+
createOmniProjectionReaderCatalog([
|
|
360
357
|
{
|
|
361
358
|
type: 'relation',
|
|
362
359
|
id: this.definition.id,
|
|
@@ -375,11 +372,10 @@ class OmniRelationProjectionService extends omni_relation_service_js_1.OmniRelat
|
|
|
375
372
|
}
|
|
376
373
|
catch (error) {
|
|
377
374
|
if (isRetryableTransactionError(error)) {
|
|
378
|
-
throw new
|
|
375
|
+
throw new ConflictException('Omni projection concurrent write conflict; retry the mutation.');
|
|
379
376
|
}
|
|
380
377
|
throw error;
|
|
381
378
|
}
|
|
382
379
|
}
|
|
383
380
|
}
|
|
384
|
-
exports.OmniRelationProjectionService = OmniRelationProjectionService;
|
|
385
381
|
//# sourceMappingURL=omni-relation-projection.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"omni-relation-projection.service.js","sourceRoot":"","sources":["omni-relation-projection.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"omni-relation-projection.service.js","sourceRoot":"","sources":["omni-relation-projection.service.ts"],"names":[],"mappings":"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"}
|