@nest-yalc-2/omnikernel-module 2.2.0 → 2.2.2
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/LICENSE +661 -0
- package/package.json +30 -17
- package/src/base/omni-base.entity.js +42 -0
- package/src/base/omni-base.entity.js.map +1 -0
- package/src/base/omni-external-ref.entity.js +61 -0
- package/src/base/omni-external-ref.entity.js.map +1 -0
- package/src/base/omni-named.entity.js +24 -0
- package/src/base/omni-named.entity.js.map +1 -0
- package/src/base/omni-record.entity.js +60 -0
- package/src/base/omni-record.entity.js.map +1 -0
- package/src/base/omni-relation.entity.js +80 -0
- package/src/base/omni-relation.entity.js.map +1 -0
- package/src/index.js +50 -0
- package/src/index.js.map +1 -0
- package/src/omni-collection-kind.enum.js +10 -0
- package/src/omni-collection-kind.enum.js.map +1 -0
- package/src/omni-collection.backend.js +11 -0
- package/src/omni-collection.backend.js.map +1 -0
- package/{dist/src → src}/omni-collection.dto.d.ts +1 -1
- package/src/omni-collection.dto.js +170 -0
- package/src/omni-collection.dto.js.map +1 -0
- package/{dist/src → src}/omni-collection.dto.ts +1 -1
- package/src/omni-collection.entity.js +30 -0
- package/src/omni-collection.entity.js.map +1 -0
- package/{dist/src → src}/omni-collection.service.js +4 -8
- package/src/omni-collection.service.js.map +1 -0
- package/src/omni-document-kind.enum.js +12 -0
- package/src/omni-document-kind.enum.js.map +1 -0
- package/src/omni-document.backend.js +11 -0
- package/src/omni-document.backend.js.map +1 -0
- package/{dist/src → src}/omni-document.dto.d.ts +1 -1
- package/src/omni-document.dto.js +199 -0
- package/src/omni-document.dto.js.map +1 -0
- package/{dist/src → src}/omni-document.dto.ts +1 -1
- package/src/omni-document.entity.js +42 -0
- package/src/omni-document.entity.js.map +1 -0
- package/{dist/src → src}/omni-document.service.js +4 -8
- package/src/omni-document.service.js.map +1 -0
- package/src/omni-dto.helpers.js +7 -0
- package/src/omni-dto.helpers.js.map +1 -0
- package/{dist/src → src}/omni-extension-projection.definition.js +24 -29
- package/src/omni-extension-projection.definition.js.map +1 -0
- package/{dist/src → src}/omni-extension-projection.resource.d.ts +1 -1
- package/src/omni-extension-projection.resource.js +124 -0
- package/src/omni-extension-projection.resource.js.map +1 -0
- package/{dist/src → src}/omni-extension-projection.resource.ts +1 -1
- package/{dist/src → src}/omni-extension-projection.service.js +15 -19
- package/src/omni-extension-projection.service.js.map +1 -0
- package/src/omni-external-ref-binding.validator.js +30 -0
- package/src/omni-external-ref-binding.validator.js.map +1 -0
- package/src/omni-external-ref-internal-type.enum.js +11 -0
- package/src/omni-external-ref-internal-type.enum.js.map +1 -0
- package/src/omni-external-ref.backend.js +15 -0
- package/src/omni-external-ref.backend.js.map +1 -0
- package/{dist/src → src}/omni-external-ref.dto.d.ts +1 -1
- package/src/omni-external-ref.dto.js +126 -0
- package/src/omni-external-ref.dto.js.map +1 -0
- package/{dist/src → src}/omni-external-ref.dto.ts +1 -1
- package/{dist/src → src}/omni-external-ref.service.js +11 -15
- package/src/omni-external-ref.service.js.map +1 -0
- package/{dist/src → src}/omni-migration.js +22 -27
- package/src/omni-migration.js.map +1 -0
- package/src/omni-named.backend.js +9 -0
- package/src/omni-named.backend.js.map +1 -0
- package/{dist/src → src}/omni-named.dto.d.ts +1 -1
- package/src/omni-named.dto.js +80 -0
- package/src/omni-named.dto.js.map +1 -0
- package/{dist/src → src}/omni-named.dto.ts +1 -1
- package/{dist/src → src}/omni-projection.catalog.js +18 -23
- package/src/omni-projection.catalog.js.map +1 -0
- package/src/omni-projection.lifecycle.js +2 -0
- package/src/omni-record-status.enum.js +11 -0
- package/src/omni-record-status.enum.js.map +1 -0
- package/src/omni-record.backend.js +9 -0
- package/src/omni-record.backend.js.map +1 -0
- package/{dist/src → src}/omni-record.dto.d.ts +1 -1
- package/src/omni-record.dto.js +155 -0
- package/src/omni-record.dto.js.map +1 -0
- package/{dist/src → src}/omni-record.dto.ts +1 -1
- package/{dist/src → src}/omni-record.service.js +6 -10
- package/src/omni-record.service.js.map +1 -0
- package/src/omni-relation-kind.contract.js +29 -0
- package/src/omni-relation-kind.contract.js.map +1 -0
- package/src/omni-relation-kind.enum.js +12 -0
- package/src/omni-relation-kind.enum.js.map +1 -0
- package/{dist/src → src}/omni-relation-projection.definition.js +7 -12
- package/src/omni-relation-projection.definition.js.map +1 -0
- package/{dist/src → src}/omni-relation-projection.resource.d.ts +1 -1
- package/src/omni-relation-projection.resource.js +196 -0
- package/src/omni-relation-projection.resource.js.map +1 -0
- package/{dist/src → src}/omni-relation-projection.resource.ts +2 -2
- package/{dist/src → src}/omni-relation-projection.service.js +44 -48
- package/src/omni-relation-projection.service.js.map +1 -0
- package/src/omni-relation-semantics.js +27 -0
- package/src/omni-relation-semantics.js.map +1 -0
- package/src/omni-relation-status.enum.js +11 -0
- package/src/omni-relation-status.enum.js.map +1 -0
- package/src/omni-relation.backend.js +13 -0
- package/src/omni-relation.backend.js.map +1 -0
- package/{dist/src → src}/omni-relation.dto.d.ts +1 -1
- package/src/omni-relation.dto.js +139 -0
- package/src/omni-relation.dto.js.map +1 -0
- package/{dist/src → src}/omni-relation.dto.ts +1 -1
- package/{dist/src → src}/omni-relation.service.js +14 -18
- package/src/omni-relation.service.js.map +1 -0
- package/{dist/src → src}/omni-scope.js +14 -18
- package/src/omni-scope.js.map +1 -0
- package/{dist/src → src}/omni-scoped.backend.d.ts +1 -1
- package/src/omni-scoped.backend.js +43 -0
- package/src/omni-scoped.backend.js.map +1 -0
- package/{dist/src → src}/omni-scoped.backend.ts +1 -1
- package/{dist/src → src}/omni-scoped.repository.js +1 -5
- package/src/omni-scoped.repository.js.map +1 -0
- package/{dist/src → src}/omni-scoped.service.js +17 -21
- package/src/omni-scoped.service.js.map +1 -0
- package/{dist/src → src}/omnikernel.diagnostics.js +1 -4
- package/src/omnikernel.diagnostics.js.map +1 -0
- package/src/omnikernel.module.js +79 -0
- package/src/omnikernel.module.js.map +1 -0
- package/src/omnikernel.query.service.js +80 -0
- package/src/omnikernel.query.service.js.map +1 -0
- package/dist/src/base/omni-base.entity.js +0 -45
- package/dist/src/base/omni-base.entity.js.map +0 -1
- package/dist/src/base/omni-external-ref.entity.js +0 -64
- package/dist/src/base/omni-external-ref.entity.js.map +0 -1
- package/dist/src/base/omni-named.entity.js +0 -27
- package/dist/src/base/omni-named.entity.js.map +0 -1
- package/dist/src/base/omni-record.entity.js +0 -63
- package/dist/src/base/omni-record.entity.js.map +0 -1
- package/dist/src/base/omni-relation.entity.js +0 -83
- package/dist/src/base/omni-relation.entity.js.map +0 -1
- package/dist/src/index.js +0 -53
- package/dist/src/index.js.map +0 -1
- package/dist/src/omni-collection-kind.enum.js +0 -13
- package/dist/src/omni-collection-kind.enum.js.map +0 -1
- package/dist/src/omni-collection.backend.js +0 -15
- package/dist/src/omni-collection.backend.js.map +0 -1
- package/dist/src/omni-collection.dto.js +0 -173
- package/dist/src/omni-collection.dto.js.map +0 -1
- package/dist/src/omni-collection.entity.js +0 -33
- package/dist/src/omni-collection.entity.js.map +0 -1
- package/dist/src/omni-collection.service.js.map +0 -1
- package/dist/src/omni-document-kind.enum.js +0 -15
- package/dist/src/omni-document-kind.enum.js.map +0 -1
- package/dist/src/omni-document.backend.js +0 -15
- package/dist/src/omni-document.backend.js.map +0 -1
- package/dist/src/omni-document.dto.js +0 -202
- package/dist/src/omni-document.dto.js.map +0 -1
- package/dist/src/omni-document.entity.js +0 -45
- package/dist/src/omni-document.entity.js.map +0 -1
- package/dist/src/omni-document.service.js.map +0 -1
- package/dist/src/omni-dto.helpers.js +0 -10
- package/dist/src/omni-dto.helpers.js.map +0 -1
- package/dist/src/omni-extension-projection.definition.js.map +0 -1
- package/dist/src/omni-extension-projection.resource.js +0 -127
- package/dist/src/omni-extension-projection.resource.js.map +0 -1
- package/dist/src/omni-extension-projection.service.js.map +0 -1
- package/dist/src/omni-external-ref-binding.validator.js +0 -34
- package/dist/src/omni-external-ref-binding.validator.js.map +0 -1
- package/dist/src/omni-external-ref-internal-type.enum.js +0 -14
- package/dist/src/omni-external-ref-internal-type.enum.js.map +0 -1
- package/dist/src/omni-external-ref.backend.js +0 -19
- package/dist/src/omni-external-ref.backend.js.map +0 -1
- package/dist/src/omni-external-ref.dto.js +0 -129
- package/dist/src/omni-external-ref.dto.js.map +0 -1
- package/dist/src/omni-external-ref.service.js.map +0 -1
- package/dist/src/omni-migration.js.map +0 -1
- package/dist/src/omni-named.backend.js +0 -13
- package/dist/src/omni-named.backend.js.map +0 -1
- package/dist/src/omni-named.dto.js +0 -83
- package/dist/src/omni-named.dto.js.map +0 -1
- package/dist/src/omni-projection.catalog.js.map +0 -1
- package/dist/src/omni-projection.lifecycle.js +0 -3
- package/dist/src/omni-record-status.enum.js +0 -14
- package/dist/src/omni-record-status.enum.js.map +0 -1
- package/dist/src/omni-record.backend.js +0 -13
- package/dist/src/omni-record.backend.js.map +0 -1
- package/dist/src/omni-record.dto.js +0 -158
- package/dist/src/omni-record.dto.js.map +0 -1
- package/dist/src/omni-record.service.js.map +0 -1
- package/dist/src/omni-relation-kind.contract.js +0 -33
- package/dist/src/omni-relation-kind.contract.js.map +0 -1
- package/dist/src/omni-relation-kind.enum.js +0 -15
- package/dist/src/omni-relation-kind.enum.js.map +0 -1
- package/dist/src/omni-relation-projection.definition.js.map +0 -1
- package/dist/src/omni-relation-projection.resource.js +0 -201
- package/dist/src/omni-relation-projection.resource.js.map +0 -1
- package/dist/src/omni-relation-projection.service.js.map +0 -1
- package/dist/src/omni-relation-semantics.js +0 -34
- package/dist/src/omni-relation-semantics.js.map +0 -1
- package/dist/src/omni-relation-status.enum.js +0 -14
- package/dist/src/omni-relation-status.enum.js.map +0 -1
- package/dist/src/omni-relation.backend.js +0 -17
- package/dist/src/omni-relation.backend.js.map +0 -1
- package/dist/src/omni-relation.dto.js +0 -142
- package/dist/src/omni-relation.dto.js.map +0 -1
- package/dist/src/omni-relation.service.js.map +0 -1
- package/dist/src/omni-scope.js.map +0 -1
- package/dist/src/omni-scoped.backend.js +0 -47
- package/dist/src/omni-scoped.backend.js.map +0 -1
- package/dist/src/omni-scoped.repository.js.map +0 -1
- package/dist/src/omni-scoped.service.js.map +0 -1
- package/dist/src/omnikernel.diagnostics.js.map +0 -1
- package/dist/src/omnikernel.module.js +0 -82
- package/dist/src/omnikernel.module.js.map +0 -1
- package/dist/src/omnikernel.query.service.js +0 -85
- package/dist/src/omnikernel.query.service.js.map +0 -1
- /package/{dist/src → src}/__tests__/omni-collection.entity.spec.ts +0 -0
- /package/{dist/src → src}/__tests__/omni-collection.service.spec.ts +0 -0
- /package/{dist/src → src}/__tests__/omni-document.entity.spec.ts +0 -0
- /package/{dist/src → src}/__tests__/omni-document.service.spec.ts +0 -0
- /package/{dist/src → src}/__tests__/omni-extension-projection-constraints.spec.ts +0 -0
- /package/{dist/src → src}/__tests__/omni-extension-projection.registration.spec.ts +0 -0
- /package/{dist/src → src}/__tests__/omni-extension-projection.service.spec.ts +0 -0
- /package/{dist/src → src}/__tests__/omni-external-ref.entity.spec.ts +0 -0
- /package/{dist/src → src}/__tests__/omni-external-ref.service.spec.ts +0 -0
- /package/{dist/src → src}/__tests__/omni-named.entity.spec.ts +0 -0
- /package/{dist/src → src}/__tests__/omni-record.entity.spec.ts +0 -0
- /package/{dist/src → src}/__tests__/omni-record.service.spec.ts +0 -0
- /package/{dist/src → src}/__tests__/omni-relation-semantics.spec.ts +0 -0
- /package/{dist/src → src}/__tests__/omni-relation.entity.spec.ts +0 -0
- /package/{dist/src → src}/__tests__/omni-scope-substrate.spec.ts +0 -0
- /package/{dist/src → src}/__tests__/omni-scoped.backend.spec.ts +0 -0
- /package/{dist/src → src}/__tests__/omni-scoped.service.spec.ts +0 -0
- /package/{dist/src → src}/__tests__/omnikernel.diagnostics.spec.ts +0 -0
- /package/{dist/src → src}/__tests__/omnikernel.module.spec.ts +0 -0
- /package/{dist/src → src}/__tests__/omnikernel.persistence.spec.ts +0 -0
- /package/{dist/src → src}/__tests__/omnikernel.public-api.spec.ts +0 -0
- /package/{dist/src → src}/__tests__/omnikernel.query.service.spec.ts +0 -0
- /package/{dist/src → src}/__tests__/tsconfig.json +0 -0
- /package/{dist/src → src}/base/omni-base.entity.d.ts +0 -0
- /package/{dist/src → src}/base/omni-base.entity.ts +0 -0
- /package/{dist/src → src}/base/omni-external-ref.entity.d.ts +0 -0
- /package/{dist/src → src}/base/omni-external-ref.entity.ts +0 -0
- /package/{dist/src → src}/base/omni-named.entity.d.ts +0 -0
- /package/{dist/src → src}/base/omni-named.entity.ts +0 -0
- /package/{dist/src → src}/base/omni-record.entity.d.ts +0 -0
- /package/{dist/src → src}/base/omni-record.entity.ts +0 -0
- /package/{dist/src → src}/base/omni-relation.entity.d.ts +0 -0
- /package/{dist/src → src}/base/omni-relation.entity.ts +0 -0
- /package/{dist/src → src}/index.d.ts +0 -0
- /package/{dist/src → src}/index.ts +0 -0
- /package/{dist/src → src}/omni-collection-kind.enum.d.ts +0 -0
- /package/{dist/src → src}/omni-collection-kind.enum.ts +0 -0
- /package/{dist/src → src}/omni-collection.backend.d.ts +0 -0
- /package/{dist/src → src}/omni-collection.backend.ts +0 -0
- /package/{dist/src → src}/omni-collection.entity.d.ts +0 -0
- /package/{dist/src → src}/omni-collection.entity.ts +0 -0
- /package/{dist/src → src}/omni-collection.service.d.ts +0 -0
- /package/{dist/src → src}/omni-collection.service.ts +0 -0
- /package/{dist/src → src}/omni-document-kind.enum.d.ts +0 -0
- /package/{dist/src → src}/omni-document-kind.enum.ts +0 -0
- /package/{dist/src → src}/omni-document.backend.d.ts +0 -0
- /package/{dist/src → src}/omni-document.backend.ts +0 -0
- /package/{dist/src → src}/omni-document.entity.d.ts +0 -0
- /package/{dist/src → src}/omni-document.entity.ts +0 -0
- /package/{dist/src → src}/omni-document.service.d.ts +0 -0
- /package/{dist/src → src}/omni-document.service.ts +0 -0
- /package/{dist/src → src}/omni-dto.helpers.d.ts +0 -0
- /package/{dist/src → src}/omni-dto.helpers.ts +0 -0
- /package/{dist/src → src}/omni-extension-projection.definition.d.ts +0 -0
- /package/{dist/src → src}/omni-extension-projection.definition.ts +0 -0
- /package/{dist/src → src}/omni-extension-projection.service.d.ts +0 -0
- /package/{dist/src → src}/omni-extension-projection.service.ts +0 -0
- /package/{dist/src → src}/omni-external-ref-binding.validator.d.ts +0 -0
- /package/{dist/src → src}/omni-external-ref-binding.validator.ts +0 -0
- /package/{dist/src → src}/omni-external-ref-internal-type.enum.d.ts +0 -0
- /package/{dist/src → src}/omni-external-ref-internal-type.enum.ts +0 -0
- /package/{dist/src → src}/omni-external-ref.backend.d.ts +0 -0
- /package/{dist/src → src}/omni-external-ref.backend.ts +0 -0
- /package/{dist/src → src}/omni-external-ref.service.d.ts +0 -0
- /package/{dist/src → src}/omni-external-ref.service.ts +0 -0
- /package/{dist/src → src}/omni-migration.d.ts +0 -0
- /package/{dist/src → src}/omni-migration.ts +0 -0
- /package/{dist/src → src}/omni-named.backend.d.ts +0 -0
- /package/{dist/src → src}/omni-named.backend.ts +0 -0
- /package/{dist/src → src}/omni-projection.catalog.d.ts +0 -0
- /package/{dist/src → src}/omni-projection.catalog.ts +0 -0
- /package/{dist/src → src}/omni-projection.lifecycle.d.ts +0 -0
- /package/{dist/src → src}/omni-projection.lifecycle.js.map +0 -0
- /package/{dist/src → src}/omni-projection.lifecycle.ts +0 -0
- /package/{dist/src → src}/omni-record-status.enum.d.ts +0 -0
- /package/{dist/src → src}/omni-record-status.enum.ts +0 -0
- /package/{dist/src → src}/omni-record.backend.d.ts +0 -0
- /package/{dist/src → src}/omni-record.backend.ts +0 -0
- /package/{dist/src → src}/omni-record.service.d.ts +0 -0
- /package/{dist/src → src}/omni-record.service.ts +0 -0
- /package/{dist/src → src}/omni-relation-kind.contract.d.ts +0 -0
- /package/{dist/src → src}/omni-relation-kind.contract.ts +0 -0
- /package/{dist/src → src}/omni-relation-kind.enum.d.ts +0 -0
- /package/{dist/src → src}/omni-relation-kind.enum.ts +0 -0
- /package/{dist/src → src}/omni-relation-projection.definition.d.ts +0 -0
- /package/{dist/src → src}/omni-relation-projection.definition.ts +0 -0
- /package/{dist/src → src}/omni-relation-projection.service.d.ts +0 -0
- /package/{dist/src → src}/omni-relation-projection.service.ts +0 -0
- /package/{dist/src → src}/omni-relation-semantics.d.ts +0 -0
- /package/{dist/src → src}/omni-relation-semantics.ts +0 -0
- /package/{dist/src → src}/omni-relation-status.enum.d.ts +0 -0
- /package/{dist/src → src}/omni-relation-status.enum.ts +0 -0
- /package/{dist/src → src}/omni-relation.backend.d.ts +0 -0
- /package/{dist/src → src}/omni-relation.backend.ts +0 -0
- /package/{dist/src → src}/omni-relation.service.d.ts +0 -0
- /package/{dist/src → src}/omni-relation.service.ts +0 -0
- /package/{dist/src → src}/omni-scope.d.ts +0 -0
- /package/{dist/src → src}/omni-scope.ts +0 -0
- /package/{dist/src → src}/omni-scoped.repository.d.ts +0 -0
- /package/{dist/src → src}/omni-scoped.repository.ts +0 -0
- /package/{dist/src → src}/omni-scoped.service.d.ts +0 -0
- /package/{dist/src → src}/omni-scoped.service.ts +0 -0
- /package/{dist/src → src}/omnikernel.diagnostics.d.ts +0 -0
- /package/{dist/src → src}/omnikernel.diagnostics.ts +0 -0
- /package/{dist/src → src}/omnikernel.module.d.ts +0 -0
- /package/{dist/src → src}/omnikernel.module.ts +0 -0
- /package/{dist/src → src}/omnikernel.query.service.d.ts +0 -0
- /package/{dist/src → src}/omnikernel.query.service.ts +0 -0
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { Scope } from '@nestjs/common';
|
|
2
|
+
import { getDataSourceToken } from '@nestjs/typeorm';
|
|
3
|
+
import { createProjectionDialect, createProjectionGraphqlTypes, CrudGenResourceFactory, getServiceToken, } from '@nest-yalc-2/crud-gen';
|
|
4
|
+
import { GQLDataLoader, getDataloaderToken, getFn, } from '@nest-yalc-2/data-loader';
|
|
5
|
+
import { YalcEventService } from '@nest-yalc-2/event-manager';
|
|
6
|
+
import { OmniRecordEntity } from './base/omni-record.entity.js';
|
|
7
|
+
import { OmniExtensionProjectionService } from './omni-extension-projection.service.js';
|
|
8
|
+
import { OmniScopeContext } from './omni-scope.js';
|
|
9
|
+
function dialectFor(dataSource) {
|
|
10
|
+
if (dataSource.options.type !== 'sqlite' &&
|
|
11
|
+
dataSource.options.type !== 'postgres') {
|
|
12
|
+
throw new TypeError('Omni extension projections require a SQLite or PostgreSQL data source.');
|
|
13
|
+
}
|
|
14
|
+
return createProjectionDialect(dataSource.options.type);
|
|
15
|
+
}
|
|
16
|
+
function defaultGraphqlNames(apiModel) {
|
|
17
|
+
return {
|
|
18
|
+
object: apiModel.name,
|
|
19
|
+
create: `${apiModel.name}CreateInput`,
|
|
20
|
+
patch: `${apiModel.name}UpdateInput`,
|
|
21
|
+
conditions: `${apiModel.name}Condition`,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
export function createOmniExtensionProjectionRegistration(options) {
|
|
25
|
+
const graphqlTypes = createProjectionGraphqlTypes(options.definition, options.graphql?.names ?? defaultGraphqlNames(options.apiModel));
|
|
26
|
+
const serviceToken = getServiceToken(options.apiModel);
|
|
27
|
+
const dataLoaderToken = getDataloaderToken(options.apiModel);
|
|
28
|
+
const resource = CrudGenResourceFactory({
|
|
29
|
+
entityModel: options.apiModel,
|
|
30
|
+
backend: false,
|
|
31
|
+
graphql: {
|
|
32
|
+
resolver: {
|
|
33
|
+
dto: graphqlTypes.object,
|
|
34
|
+
input: {
|
|
35
|
+
create: graphqlTypes.create,
|
|
36
|
+
update: graphqlTypes.patch,
|
|
37
|
+
conditions: graphqlTypes.conditions,
|
|
38
|
+
},
|
|
39
|
+
...(options.graphql?.prefix ? { prefix: options.graphql.prefix } : {}),
|
|
40
|
+
...(options.moduleRefToken !== undefined
|
|
41
|
+
? { moduleRefToken: options.moduleRefToken }
|
|
42
|
+
: {}),
|
|
43
|
+
queries: {
|
|
44
|
+
getResource: { idName: options.definition.identity.column },
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
serviceToken,
|
|
48
|
+
dataLoaderToken,
|
|
49
|
+
},
|
|
50
|
+
rest: {
|
|
51
|
+
dto: graphqlTypes.object,
|
|
52
|
+
serialize: true,
|
|
53
|
+
...(options.rest?.path ? { path: options.rest.path } : {}),
|
|
54
|
+
idField: options.definition.identity.column,
|
|
55
|
+
serviceToken,
|
|
56
|
+
},
|
|
57
|
+
});
|
|
58
|
+
const reader = Object.freeze({
|
|
59
|
+
type: 'extension',
|
|
60
|
+
id: options.definition.id,
|
|
61
|
+
entity: options.entity,
|
|
62
|
+
definition: options.definition,
|
|
63
|
+
});
|
|
64
|
+
const serviceProvider = options.lifecycle && options.catalog
|
|
65
|
+
? {
|
|
66
|
+
provide: serviceToken,
|
|
67
|
+
scope: Scope.REQUEST,
|
|
68
|
+
useFactory: (dataSource, scope, events, lifecycle, catalog) => new OmniExtensionProjectionService(dataSource.getRepository(options.entity), dataSource.getRepository(OmniRecordEntity), dataSource, scope, dialectFor(dataSource), events, options.definition, lifecycle, catalog),
|
|
69
|
+
inject: [
|
|
70
|
+
getDataSourceToken(options.dbConnection),
|
|
71
|
+
OmniScopeContext,
|
|
72
|
+
YalcEventService,
|
|
73
|
+
options.lifecycle.token,
|
|
74
|
+
options.catalog.token,
|
|
75
|
+
],
|
|
76
|
+
}
|
|
77
|
+
: options.lifecycle
|
|
78
|
+
? {
|
|
79
|
+
provide: serviceToken,
|
|
80
|
+
scope: Scope.REQUEST,
|
|
81
|
+
useFactory: (dataSource, scope, events, lifecycle) => new OmniExtensionProjectionService(dataSource.getRepository(options.entity), dataSource.getRepository(OmniRecordEntity), dataSource, scope, dialectFor(dataSource), events, options.definition, lifecycle),
|
|
82
|
+
inject: [
|
|
83
|
+
getDataSourceToken(options.dbConnection),
|
|
84
|
+
OmniScopeContext,
|
|
85
|
+
YalcEventService,
|
|
86
|
+
options.lifecycle.token,
|
|
87
|
+
],
|
|
88
|
+
}
|
|
89
|
+
: {
|
|
90
|
+
provide: serviceToken,
|
|
91
|
+
scope: Scope.REQUEST,
|
|
92
|
+
useFactory: (dataSource, scope, events) => new OmniExtensionProjectionService(dataSource.getRepository(options.entity), dataSource.getRepository(OmniRecordEntity), dataSource, scope, dialectFor(dataSource), events, options.definition, undefined),
|
|
93
|
+
inject: [
|
|
94
|
+
getDataSourceToken(options.dbConnection),
|
|
95
|
+
OmniScopeContext,
|
|
96
|
+
YalcEventService,
|
|
97
|
+
],
|
|
98
|
+
};
|
|
99
|
+
const providers = [
|
|
100
|
+
serviceProvider,
|
|
101
|
+
{
|
|
102
|
+
provide: dataLoaderToken,
|
|
103
|
+
scope: Scope.REQUEST,
|
|
104
|
+
useFactory: (service, scope) => new GQLDataLoader(getFn(service), 'guid', undefined, {
|
|
105
|
+
cacheKeyFn: (key) => scope.cacheKey(key),
|
|
106
|
+
}),
|
|
107
|
+
inject: [serviceToken, OmniScopeContext],
|
|
108
|
+
},
|
|
109
|
+
...resource.providers,
|
|
110
|
+
];
|
|
111
|
+
return Object.freeze({
|
|
112
|
+
definition: options.definition,
|
|
113
|
+
entities: Object.freeze([options.entity]),
|
|
114
|
+
reservedRecordKinds: Object.freeze([options.definition.owner.kind]),
|
|
115
|
+
reader,
|
|
116
|
+
graphqlTypes: Object.freeze(graphqlTypes),
|
|
117
|
+
resource,
|
|
118
|
+
controllers: Object.freeze([...resource.controllers]),
|
|
119
|
+
providers: Object.freeze(providers),
|
|
120
|
+
serviceToken,
|
|
121
|
+
dataLoaderToken,
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=omni-extension-projection.resource.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"omni-extension-projection.resource.js","sourceRoot":"","sources":["omni-extension-projection.resource.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
getFn,
|
|
15
15
|
} from '@nest-yalc-2/data-loader';
|
|
16
16
|
import { YalcEventService } from '@nest-yalc-2/event-manager';
|
|
17
|
-
import type { ClassType } from '@node-yalc/types/globals';
|
|
17
|
+
import type { ClassType } from '@node-yalc/types/globals.js';
|
|
18
18
|
import type { DataSource, EntityTarget, ObjectLiteral } from 'typeorm';
|
|
19
19
|
import { OmniRecordEntity } from './base/omni-record.entity.js';
|
|
20
20
|
import type { OmniExtensionProjectionDefinition } from './omni-extension-projection.definition.js';
|
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const typeorm_1 = require("typeorm");
|
|
6
|
-
const omni_record_entity_js_1 = require("./base/omni-record.entity.js");
|
|
7
|
-
const omni_projection_catalog_js_1 = require("./omni-projection.catalog.js");
|
|
1
|
+
import { PROJECTION_INTEGER_MAX, ProjectionResourceService, } from '@nest-yalc-2/crud-gen';
|
|
2
|
+
import { In, IsNull, } from 'typeorm';
|
|
3
|
+
import { OmniRecordEntity } from './base/omni-record.entity.js';
|
|
4
|
+
import { createOmniProjectionReaderCatalog, } from './omni-projection.catalog.js';
|
|
8
5
|
function hasOwn(input, field) {
|
|
9
6
|
return Object.prototype.hasOwnProperty.call(input, field);
|
|
10
7
|
}
|
|
@@ -20,7 +17,7 @@ function isRetryableTransactionError(error) {
|
|
|
20
17
|
code === 'SQLITE_BUSY' ||
|
|
21
18
|
code === 'SQLITE_BUSY_SNAPSHOT');
|
|
22
19
|
}
|
|
23
|
-
class OmniExtensionProjectionService extends
|
|
20
|
+
export class OmniExtensionProjectionService extends ProjectionResourceService {
|
|
24
21
|
constructor(extensionRepository, ownerRepository, dataSource, scope, dialect, events, omniDefinition, lifecycle, readerCatalog) {
|
|
25
22
|
super(extensionRepository, scope, dialect, events, omniDefinition);
|
|
26
23
|
this.ownerRepository = ownerRepository;
|
|
@@ -45,11 +42,11 @@ class OmniExtensionProjectionService extends crud_gen_1.ProjectionResourceServic
|
|
|
45
42
|
const owners = await this.ownerRepository.find({
|
|
46
43
|
where: {
|
|
47
44
|
scopeId: this.scope.scopeId,
|
|
48
|
-
guid:
|
|
45
|
+
guid: In(guids),
|
|
49
46
|
kind: this.omniDefinition.owner.kind,
|
|
50
47
|
payloadSchemaId: this.omniDefinition.owner.schema.id,
|
|
51
48
|
payloadSchemaVersion: this.omniDefinition.owner.schema.version,
|
|
52
|
-
deletedAt:
|
|
49
|
+
deletedAt: IsNull(),
|
|
53
50
|
},
|
|
54
51
|
});
|
|
55
52
|
const ownersByGuid = new Map(owners.map((owner) => [owner.guid, owner]));
|
|
@@ -82,7 +79,7 @@ class OmniExtensionProjectionService extends crud_gen_1.ProjectionResourceServic
|
|
|
82
79
|
readers: this.readers(manager),
|
|
83
80
|
input,
|
|
84
81
|
});
|
|
85
|
-
await manager.getRepository(
|
|
82
|
+
await manager.getRepository(OmniRecordEntity).save(owner);
|
|
86
83
|
const saved = await manager
|
|
87
84
|
.getRepository(this.repository.target)
|
|
88
85
|
.save(extension);
|
|
@@ -102,12 +99,12 @@ class OmniExtensionProjectionService extends crud_gen_1.ProjectionResourceServic
|
|
|
102
99
|
if (typeof expectedRevision !== 'number' ||
|
|
103
100
|
!Number.isInteger(expectedRevision) ||
|
|
104
101
|
expectedRevision < 1 ||
|
|
105
|
-
expectedRevision >=
|
|
106
|
-
this.invalid(`expectedRevision must be an integer between 1 and ${
|
|
102
|
+
expectedRevision >= PROJECTION_INTEGER_MAX) {
|
|
103
|
+
this.invalid(`expectedRevision must be an integer between 1 and ${PROJECTION_INTEGER_MAX - 1}.`);
|
|
107
104
|
}
|
|
108
105
|
const patch = this.createValuePatch(guid, input);
|
|
109
106
|
return this.mutate(async (manager) => {
|
|
110
|
-
const owners = manager.getRepository(
|
|
107
|
+
const owners = manager.getRepository(OmniRecordEntity);
|
|
111
108
|
const extensions = manager.getRepository(this.repository.target);
|
|
112
109
|
const currentOwner = await this.findOwner(guid, manager);
|
|
113
110
|
const currentExtension = await extensions.findOne({
|
|
@@ -188,7 +185,7 @@ class OmniExtensionProjectionService extends crud_gen_1.ProjectionResourceServic
|
|
|
188
185
|
input: {},
|
|
189
186
|
current: this.merge(extension, owner),
|
|
190
187
|
});
|
|
191
|
-
const result = await manager.getRepository(
|
|
188
|
+
const result = await manager.getRepository(OmniRecordEntity).delete({
|
|
192
189
|
scopeId: this.scope.scopeId,
|
|
193
190
|
guid,
|
|
194
191
|
kind: this.omniDefinition.owner.kind,
|
|
@@ -221,7 +218,7 @@ class OmniExtensionProjectionService extends crud_gen_1.ProjectionResourceServic
|
|
|
221
218
|
}
|
|
222
219
|
readers(manager) {
|
|
223
220
|
return (this.readerCatalog ??
|
|
224
|
-
|
|
221
|
+
createOmniProjectionReaderCatalog([
|
|
225
222
|
{
|
|
226
223
|
type: 'extension',
|
|
227
224
|
id: this.omniDefinition.id,
|
|
@@ -291,14 +288,14 @@ class OmniExtensionProjectionService extends crud_gen_1.ProjectionResourceServic
|
|
|
291
288
|
return owner ? this.merge(extension, owner) : null;
|
|
292
289
|
}
|
|
293
290
|
async findOwner(guid, manager) {
|
|
294
|
-
return (manager?.getRepository(
|
|
291
|
+
return (manager?.getRepository(OmniRecordEntity) ?? this.ownerRepository).findOne({
|
|
295
292
|
where: {
|
|
296
293
|
scopeId: this.scope.scopeId,
|
|
297
294
|
guid,
|
|
298
295
|
kind: this.omniDefinition.owner.kind,
|
|
299
296
|
payloadSchemaId: this.omniDefinition.owner.schema.id,
|
|
300
297
|
payloadSchemaVersion: this.omniDefinition.owner.schema.version,
|
|
301
|
-
deletedAt:
|
|
298
|
+
deletedAt: IsNull(),
|
|
302
299
|
},
|
|
303
300
|
});
|
|
304
301
|
}
|
|
@@ -328,5 +325,4 @@ class OmniExtensionProjectionService extends crud_gen_1.ProjectionResourceServic
|
|
|
328
325
|
});
|
|
329
326
|
}
|
|
330
327
|
}
|
|
331
|
-
exports.OmniExtensionProjectionService = OmniExtensionProjectionService;
|
|
332
328
|
//# sourceMappingURL=omni-extension-projection.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"omni-extension-projection.service.js","sourceRoot":"","sources":["omni-extension-projection.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { BadRequestException, NotFoundException } from '@nestjs/common';
|
|
2
|
+
import { IsNull } from 'typeorm';
|
|
3
|
+
import { OmniExternalRefInternalType } from './omni-external-ref-internal-type.enum.js';
|
|
4
|
+
export class OmniExternalRefBindingValidator {
|
|
5
|
+
constructor(recordRepository, scope) {
|
|
6
|
+
this.recordRepository = recordRepository;
|
|
7
|
+
this.scope = scope;
|
|
8
|
+
}
|
|
9
|
+
async assertTarget(binding) {
|
|
10
|
+
if (binding.internalType !== OmniExternalRefInternalType.Record) {
|
|
11
|
+
throw new BadRequestException('Omni external record binding must declare internalType record.');
|
|
12
|
+
}
|
|
13
|
+
if (typeof binding.internalId !== 'string' ||
|
|
14
|
+
binding.internalId.trim().length === 0) {
|
|
15
|
+
throw new BadRequestException('Omni external reference internalId must be a non-empty record identity.');
|
|
16
|
+
}
|
|
17
|
+
const record = await this.recordRepository.findOne({
|
|
18
|
+
where: {
|
|
19
|
+
scopeId: this.scope.scopeId,
|
|
20
|
+
guid: binding.internalId,
|
|
21
|
+
deletedAt: IsNull(),
|
|
22
|
+
},
|
|
23
|
+
});
|
|
24
|
+
if (!record) {
|
|
25
|
+
throw new NotFoundException('Omni external reference target was not found in this scope.');
|
|
26
|
+
}
|
|
27
|
+
return record;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=omni-external-ref-binding.validator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"omni-external-ref-binding.validator.js","sourceRoot":"","sources":["omni-external-ref-binding.validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,EAAE,MAAM,EAAmB,MAAM,SAAS,CAAC;AAElD,OAAO,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;AAaxF,MAAM,OAAO,+BAA+B;IAC1C,YACmB,gBAA8C,EAC9C,KAAgB;QADhB,qBAAgB,GAAhB,gBAAgB,CAA8B;QAC9C,UAAK,GAAL,KAAK,CAAW;IAChC,CAAC;IAEJ,KAAK,CAAC,YAAY,CAChB,OAA+B;QAE/B,IAAI,OAAO,CAAC,YAAY,KAAK,2BAA2B,CAAC,MAAM,EAAE,CAAC;YAChE,MAAM,IAAI,mBAAmB,CAC3B,gEAAgE,CACjE,CAAC;QACJ,CAAC;QACD,IACE,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ;YACtC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EACtC,CAAC;YACD,MAAM,IAAI,mBAAmB,CAC3B,yEAAyE,CAC1E,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC;YACjD,KAAK,EAAE;gBACL,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO;gBAC3B,IAAI,EAAE,OAAO,CAAC,UAAU;gBACxB,SAAS,EAAE,MAAM,EAAE;aACpB;SACF,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,iBAAiB,CACzB,6DAA6D,CAC9D,CAAC;QACJ,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { registerEnumType } from '@nestjs/graphql';
|
|
2
|
+
export var OmniExternalRefInternalType;
|
|
3
|
+
(function (OmniExternalRefInternalType) {
|
|
4
|
+
OmniExternalRefInternalType["Record"] = "record";
|
|
5
|
+
OmniExternalRefInternalType["Document"] = "document";
|
|
6
|
+
OmniExternalRefInternalType["Collection"] = "collection";
|
|
7
|
+
})(OmniExternalRefInternalType || (OmniExternalRefInternalType = {}));
|
|
8
|
+
registerEnumType(OmniExternalRefInternalType, {
|
|
9
|
+
name: 'OmniExternalRefInternalType',
|
|
10
|
+
});
|
|
11
|
+
//# sourceMappingURL=omni-external-ref-internal-type.enum.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"omni-external-ref-internal-type.enum.js","sourceRoot":"","sources":["omni-external-ref-internal-type.enum.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,MAAM,CAAN,IAAY,2BAIX;AAJD,WAAY,2BAA2B;IACrC,gDAAiB,CAAA;IACjB,oDAAqB,CAAA;IACrB,wDAAyB,CAAA;AAC3B,CAAC,EAJW,2BAA2B,KAA3B,2BAA2B,QAItC;AAED,gBAAgB,CAAC,2BAA2B,EAAE;IAC5C,IAAI,EAAE,6BAA6B;CACpC,CAAC,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { getRepositoryToken } from '@nestjs/typeorm';
|
|
2
|
+
import { OmniRecordEntity } from './base/omni-record.entity.js';
|
|
3
|
+
import { OmniExternalRefEntity } from './base/omni-external-ref.entity.js';
|
|
4
|
+
import { OmniExternalRefBindingValidator } from './omni-external-ref-binding.validator.js';
|
|
5
|
+
import { OmniExternalRefService } from './omni-external-ref.service.js';
|
|
6
|
+
import { omniBackendServiceToken, omniScopedBackendProvidersFactory, } from './omni-scoped.backend.js';
|
|
7
|
+
export const omniExternalRefBackendProvidersFactory = (dbConnection) => omniScopedBackendProvidersFactory({
|
|
8
|
+
entityModel: OmniExternalRefEntity,
|
|
9
|
+
dbConnection,
|
|
10
|
+
serviceToken: omniBackendServiceToken(OmniExternalRefService),
|
|
11
|
+
serviceProvider: OmniExternalRefService,
|
|
12
|
+
additionalInject: [getRepositoryToken(OmniRecordEntity, dbConnection)],
|
|
13
|
+
createService: (repository, scope, options, recordRepository) => new OmniExternalRefService(repository, scope, options.deletion.externalRef, new OmniExternalRefBindingValidator(recordRepository, scope)),
|
|
14
|
+
});
|
|
15
|
+
//# sourceMappingURL=omni-external-ref.backend.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"omni-external-ref.backend.js","sourceRoot":"","sources":["omni-external-ref.backend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,+BAA+B,EAAE,MAAM,0CAA0C,CAAC;AAC3F,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EACL,uBAAuB,EACvB,iCAAiC,GAClC,MAAM,0BAA0B,CAAC;AAElC,MAAM,CAAC,MAAM,sCAAsC,GAAG,CAAC,YAAoB,EAAE,EAAE,CAC7E,iCAAiC,CAAwB;IACvD,WAAW,EAAE,qBAAqB;IAClC,YAAY;IACZ,YAAY,EAAE,uBAAuB,CAAC,sBAAsB,CAAC;IAC7D,eAAe,EAAE,sBAAsB;IACvC,gBAAgB,EAAE,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;IACtE,aAAa,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,EAAE,CAC9D,IAAI,sBAAsB,CACxB,UAAU,EACV,KAAK,EACL,OAAO,CAAC,QAAQ,CAAC,WAAW,EAC5B,IAAI,+BAA+B,CAAC,gBAAyB,EAAE,KAAK,CAAC,CACtE;CACJ,CAAC,CAAC"}
|
|
@@ -14,7 +14,7 @@ export declare class OmniExternalRefType extends OmniExternalRefEntity {
|
|
|
14
14
|
payloadSchemaId?: string | null;
|
|
15
15
|
payloadSchemaVersion?: number | null;
|
|
16
16
|
}
|
|
17
|
-
declare const OmniExternalRefCreateInput_base: import("@nestjs/common").Type<Omit<OmniExternalRefType, "
|
|
17
|
+
declare const OmniExternalRefCreateInput_base: import("@nestjs/common").Type<Omit<OmniExternalRefType, "revision" | "createdAt" | "updatedAt">>;
|
|
18
18
|
export declare class OmniExternalRefCreateInput extends OmniExternalRefCreateInput_base {
|
|
19
19
|
}
|
|
20
20
|
declare const OmniExternalRefCondition_base: import("@nestjs/common").Type<Partial<OmniExternalRefCreateInput>>;
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
|
2
|
+
import { InputType, Int, ObjectType, OmitType, PartialType, } from '@nestjs/graphql';
|
|
3
|
+
import { ModelField, ModelObject, } from '@nest-yalc-2/crud-gen/object.decorator.js';
|
|
4
|
+
import { UUIDScalar } from '@nest-yalc-2/graphql/scalars/uuid.scalar.js';
|
|
5
|
+
import returnValue from '@node-yalc/utils/returnValue.js';
|
|
6
|
+
import { IsEnum, IsInt, IsObject, IsOptional, IsString, IsUUID, MaxLength, } from 'class-validator';
|
|
7
|
+
import { GraphQLJSONObject } from 'graphql-type-json';
|
|
8
|
+
import { OmniExternalRefEntity } from './base/omni-external-ref.entity.js';
|
|
9
|
+
import { assignOmniPublicDto } from './omni-dto.helpers.js';
|
|
10
|
+
import { OmniExternalRefInternalType } from './omni-external-ref-internal-type.enum.js';
|
|
11
|
+
let OmniExternalRefType = class OmniExternalRefType extends OmniExternalRefEntity {
|
|
12
|
+
constructor(data) {
|
|
13
|
+
super();
|
|
14
|
+
if (data) {
|
|
15
|
+
assignOmniPublicDto(this, data);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
__decorate([
|
|
20
|
+
ModelField({ gqlType: returnValue(UUIDScalar), isRequired: true }),
|
|
21
|
+
IsUUID(),
|
|
22
|
+
__metadata("design:type", String)
|
|
23
|
+
], OmniExternalRefType.prototype, "guid", void 0);
|
|
24
|
+
__decorate([
|
|
25
|
+
ModelField({ gqlType: returnValue(Int) }),
|
|
26
|
+
IsInt(),
|
|
27
|
+
__metadata("design:type", Number)
|
|
28
|
+
], OmniExternalRefType.prototype, "revision", void 0);
|
|
29
|
+
__decorate([
|
|
30
|
+
ModelField({ gqlType: returnValue(OmniExternalRefInternalType) }),
|
|
31
|
+
IsEnum(OmniExternalRefInternalType),
|
|
32
|
+
__metadata("design:type", String)
|
|
33
|
+
], OmniExternalRefType.prototype, "internalType", void 0);
|
|
34
|
+
__decorate([
|
|
35
|
+
ModelField({ gqlType: returnValue(UUIDScalar), isRequired: true }),
|
|
36
|
+
IsUUID(),
|
|
37
|
+
__metadata("design:type", String)
|
|
38
|
+
], OmniExternalRefType.prototype, "internalId", void 0);
|
|
39
|
+
__decorate([
|
|
40
|
+
ModelField({ gqlType: returnValue(String) }),
|
|
41
|
+
IsString(),
|
|
42
|
+
MaxLength(128),
|
|
43
|
+
__metadata("design:type", String)
|
|
44
|
+
], OmniExternalRefType.prototype, "provider", void 0);
|
|
45
|
+
__decorate([
|
|
46
|
+
ModelField({
|
|
47
|
+
gqlType: returnValue(String),
|
|
48
|
+
gqlOptions: { nullable: true },
|
|
49
|
+
}),
|
|
50
|
+
IsOptional(),
|
|
51
|
+
IsString(),
|
|
52
|
+
MaxLength(128),
|
|
53
|
+
__metadata("design:type", Object)
|
|
54
|
+
], OmniExternalRefType.prototype, "account", void 0);
|
|
55
|
+
__decorate([
|
|
56
|
+
ModelField({
|
|
57
|
+
gqlType: returnValue(String),
|
|
58
|
+
gqlOptions: { nullable: true },
|
|
59
|
+
}),
|
|
60
|
+
IsOptional(),
|
|
61
|
+
IsString(),
|
|
62
|
+
MaxLength(128),
|
|
63
|
+
__metadata("design:type", Object)
|
|
64
|
+
], OmniExternalRefType.prototype, "container", void 0);
|
|
65
|
+
__decorate([
|
|
66
|
+
ModelField({ gqlType: returnValue(String) }),
|
|
67
|
+
IsString(),
|
|
68
|
+
MaxLength(255),
|
|
69
|
+
__metadata("design:type", String)
|
|
70
|
+
], OmniExternalRefType.prototype, "externalId", void 0);
|
|
71
|
+
__decorate([
|
|
72
|
+
ModelField({
|
|
73
|
+
gqlType: returnValue(GraphQLJSONObject),
|
|
74
|
+
gqlOptions: { nullable: true },
|
|
75
|
+
}),
|
|
76
|
+
IsOptional(),
|
|
77
|
+
IsObject(),
|
|
78
|
+
__metadata("design:type", Object)
|
|
79
|
+
], OmniExternalRefType.prototype, "payload", void 0);
|
|
80
|
+
__decorate([
|
|
81
|
+
ModelField({
|
|
82
|
+
gqlType: returnValue(String),
|
|
83
|
+
gqlOptions: { nullable: true },
|
|
84
|
+
}),
|
|
85
|
+
IsOptional(),
|
|
86
|
+
IsString(),
|
|
87
|
+
MaxLength(128),
|
|
88
|
+
__metadata("design:type", Object)
|
|
89
|
+
], OmniExternalRefType.prototype, "payloadSchemaId", void 0);
|
|
90
|
+
__decorate([
|
|
91
|
+
ModelField({
|
|
92
|
+
gqlType: returnValue(Int),
|
|
93
|
+
gqlOptions: { nullable: true },
|
|
94
|
+
}),
|
|
95
|
+
IsOptional(),
|
|
96
|
+
IsInt(),
|
|
97
|
+
__metadata("design:type", Object)
|
|
98
|
+
], OmniExternalRefType.prototype, "payloadSchemaVersion", void 0);
|
|
99
|
+
OmniExternalRefType = __decorate([
|
|
100
|
+
ObjectType(),
|
|
101
|
+
ModelObject(),
|
|
102
|
+
__metadata("design:paramtypes", [Object])
|
|
103
|
+
], OmniExternalRefType);
|
|
104
|
+
export { OmniExternalRefType };
|
|
105
|
+
let OmniExternalRefCreateInput = class OmniExternalRefCreateInput extends OmitType(OmniExternalRefType, ['createdAt', 'updatedAt', 'revision'], InputType) {
|
|
106
|
+
};
|
|
107
|
+
OmniExternalRefCreateInput = __decorate([
|
|
108
|
+
InputType(),
|
|
109
|
+
ModelObject()
|
|
110
|
+
], OmniExternalRefCreateInput);
|
|
111
|
+
export { OmniExternalRefCreateInput };
|
|
112
|
+
let OmniExternalRefCondition = class OmniExternalRefCondition extends PartialType(OmniExternalRefCreateInput, InputType) {
|
|
113
|
+
};
|
|
114
|
+
OmniExternalRefCondition = __decorate([
|
|
115
|
+
InputType(),
|
|
116
|
+
ModelObject({ copyFrom: OmniExternalRefType })
|
|
117
|
+
], OmniExternalRefCondition);
|
|
118
|
+
export { OmniExternalRefCondition };
|
|
119
|
+
let OmniExternalRefUpdateInput = class OmniExternalRefUpdateInput extends PartialType(OmniExternalRefCreateInput, InputType) {
|
|
120
|
+
};
|
|
121
|
+
OmniExternalRefUpdateInput = __decorate([
|
|
122
|
+
InputType(),
|
|
123
|
+
ModelObject({ copyFrom: OmniExternalRefType })
|
|
124
|
+
], OmniExternalRefUpdateInput);
|
|
125
|
+
export { OmniExternalRefUpdateInput };
|
|
126
|
+
//# sourceMappingURL=omni-external-ref.dto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"omni-external-ref.dto.js","sourceRoot":"","sources":["omni-external-ref.dto.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,SAAS,EACT,GAAG,EACH,UAAU,EACV,QAAQ,EACR,WAAW,GACZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,UAAU,EACV,WAAW,GACZ,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,6CAA6C,CAAC;AACzE,OAAO,WAAW,MAAM,iCAAiC,CAAC;AAC1D,OAAO,EACL,MAAM,EACN,KAAK,EACL,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,MAAM,EACN,SAAS,GACV,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;AAIjF,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,qBAAqB;IAC5D,YAAY,IAAmC;QAC7C,KAAK,EAAE,CAAC;QACR,IAAI,IAAI,EAAE,CAAC;YACT,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;CAsEF,CAAA;AAlEC;IAFC,UAAU,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IAClE,MAAM,EAAE;;iDACK;AAId;IAFC,UAAU,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;IACzC,KAAK,EAAE;;qDACU;AAIlB;IAFC,UAAU,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,2BAA2B,CAAC,EAAE,CAAC;IACjE,MAAM,CAAC,2BAA2B,CAAC;;yDACO;AAI3C;IAFC,UAAU,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IAClE,MAAM,EAAE;;uDACW;AAKpB;IAHC,UAAU,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;IAC5C,QAAQ,EAAE;IACV,SAAS,CAAC,GAAG,CAAC;;qDACG;AASlB;IAPC,UAAU,CAAC;QACV,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC;QAC5B,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;KAC/B,CAAC;IACD,UAAU,EAAE;IACZ,QAAQ,EAAE;IACV,SAAS,CAAC,GAAG,CAAC;;oDACS;AASxB;IAPC,UAAU,CAAC;QACV,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC;QAC5B,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;KAC/B,CAAC;IACD,UAAU,EAAE;IACZ,QAAQ,EAAE;IACV,SAAS,CAAC,GAAG,CAAC;;sDACW;AAK1B;IAHC,UAAU,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;IAC5C,QAAQ,EAAE;IACV,SAAS,CAAC,GAAG,CAAC;;uDACK;AAQpB;IANC,UAAU,CAAC;QACV,OAAO,EAAE,WAAW,CAAC,iBAAiB,CAAC;QACvC,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;KAC/B,CAAC;IACD,UAAU,EAAE;IACZ,QAAQ,EAAE;;oDAC8B;AASzC;IAPC,UAAU,CAAC;QACV,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC;QAC5B,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;KAC/B,CAAC;IACD,UAAU,EAAE;IACZ,QAAQ,EAAE;IACV,SAAS,CAAC,GAAG,CAAC;;4DACiB;AAQhC;IANC,UAAU,CAAC;QACV,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC;QACzB,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;KAC/B,CAAC;IACD,UAAU,EAAE;IACZ,KAAK,EAAE;;iEAC6B;AA3E1B,mBAAmB;IAF/B,UAAU,EAAE;IACZ,WAAW,EAAE;;GACD,mBAAmB,CA4E/B;;AAIM,IAAM,0BAA0B,GAAhC,MAAM,0BAA2B,SAAQ,QAAQ,CACtD,mBAAmB,EACnB,CAAC,WAAW,EAAE,WAAW,EAAE,UAAU,CAAU,EAC/C,SAAS,CACV;CAAG,CAAA;AAJS,0BAA0B;IAFtC,SAAS,EAAE;IACX,WAAW,EAAE;GACD,0BAA0B,CAInC;;AAIG,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,WAAW,CACvD,0BAA0B,EAC1B,SAAS,CACV;CAAG,CAAA;AAHS,wBAAwB;IAFpC,SAAS,EAAE;IACX,WAAW,CAAC,EAAE,QAAQ,EAAE,mBAAmB,EAAE,CAAC;GAClC,wBAAwB,CAGjC;;AAIG,IAAM,0BAA0B,GAAhC,MAAM,0BAA2B,SAAQ,WAAW,CACzD,0BAA0B,EAC1B,SAAS,CACV;CAAG,CAAA;AAHS,0BAA0B;IAFtC,SAAS,EAAE;IACX,WAAW,CAAC,EAAE,QAAQ,EAAE,mBAAmB,EAAE,CAAC;GAClC,0BAA0B,CAGnC"}
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
ModelObject,
|
|
11
11
|
} from '@nest-yalc-2/crud-gen/object.decorator.js';
|
|
12
12
|
import { UUIDScalar } from '@nest-yalc-2/graphql/scalars/uuid.scalar.js';
|
|
13
|
-
import returnValue from '@node-yalc/utils/returnValue';
|
|
13
|
+
import returnValue from '@node-yalc/utils/returnValue.js';
|
|
14
14
|
import {
|
|
15
15
|
IsEnum,
|
|
16
16
|
IsInt,
|
|
@@ -1,13 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const common_1 = require("@nestjs/common");
|
|
5
|
-
const omni_external_ref_internal_type_enum_js_1 = require("./omni-external-ref-internal-type.enum.js");
|
|
6
|
-
const omni_scoped_service_js_1 = require("./omni-scoped.service.js");
|
|
1
|
+
import { ConflictException } from '@nestjs/common';
|
|
2
|
+
import { OmniExternalRefInternalType } from './omni-external-ref-internal-type.enum.js';
|
|
3
|
+
import { OmniScopedService } from './omni-scoped.service.js';
|
|
7
4
|
function hasOwn(input, key) {
|
|
8
5
|
return Object.prototype.hasOwnProperty.call(input, key);
|
|
9
6
|
}
|
|
10
|
-
class OmniExternalRefService extends
|
|
7
|
+
export class OmniExternalRefService extends OmniScopedService {
|
|
11
8
|
constructor(repository, scopeOrRepositoryWrite, deletion, bindingValidator) {
|
|
12
9
|
if (!bindingValidator) {
|
|
13
10
|
throw new TypeError('OmniExternalRefService requires an OmniExternalRefBindingValidator.');
|
|
@@ -55,7 +52,7 @@ class OmniExternalRefService extends omni_scoped_service_js_1.OmniScopedService
|
|
|
55
52
|
if (existing) {
|
|
56
53
|
if (existing.internalType !== input.internalType ||
|
|
57
54
|
existing.internalId !== input.internalId) {
|
|
58
|
-
throw new
|
|
55
|
+
throw new ConflictException('External reference binding is immutable after creation.');
|
|
59
56
|
}
|
|
60
57
|
const { internalType: _internalType, internalId: _internalId, ...update } = this.normalizeExternalIdentity(input);
|
|
61
58
|
return this.updateEntity({ guid: existing.guid }, update);
|
|
@@ -65,14 +62,14 @@ class OmniExternalRefService extends omni_scoped_service_js_1.OmniScopedService
|
|
|
65
62
|
async syncDocumentReference(internalId, input) {
|
|
66
63
|
return this.upsertExternalRef({
|
|
67
64
|
...input,
|
|
68
|
-
internalType:
|
|
65
|
+
internalType: OmniExternalRefInternalType.Document,
|
|
69
66
|
internalId,
|
|
70
67
|
});
|
|
71
68
|
}
|
|
72
69
|
async syncCollectionReference(internalId, input) {
|
|
73
70
|
return this.upsertExternalRef({
|
|
74
71
|
...input,
|
|
75
|
-
internalType:
|
|
72
|
+
internalType: OmniExternalRefInternalType.Collection,
|
|
76
73
|
internalId,
|
|
77
74
|
});
|
|
78
75
|
}
|
|
@@ -89,7 +86,7 @@ class OmniExternalRefService extends omni_scoped_service_js_1.OmniScopedService
|
|
|
89
86
|
container: normalized.container ?? null,
|
|
90
87
|
});
|
|
91
88
|
if (existing) {
|
|
92
|
-
throw new
|
|
89
|
+
throw new ConflictException('External reference identity already exists in this scope.');
|
|
93
90
|
}
|
|
94
91
|
}
|
|
95
92
|
return super.createEntity(normalized, findOptions, returnEntity);
|
|
@@ -102,9 +99,9 @@ class OmniExternalRefService extends omni_scoped_service_js_1.OmniScopedService
|
|
|
102
99
|
async assertBinding(input) {
|
|
103
100
|
if (typeof input.internalId !== 'string' ||
|
|
104
101
|
input.internalType === undefined) {
|
|
105
|
-
throw new
|
|
102
|
+
throw new ConflictException('External reference binding requires internalType and internalId.');
|
|
106
103
|
}
|
|
107
|
-
if (input.internalType !==
|
|
104
|
+
if (input.internalType !== OmniExternalRefInternalType.Record) {
|
|
108
105
|
return;
|
|
109
106
|
}
|
|
110
107
|
await this.bindingValidator.assertTarget({
|
|
@@ -114,7 +111,7 @@ class OmniExternalRefService extends omni_scoped_service_js_1.OmniScopedService
|
|
|
114
111
|
}
|
|
115
112
|
rejectBindingMutation(input) {
|
|
116
113
|
if (hasOwn(input, 'internalType') || hasOwn(input, 'internalId')) {
|
|
117
|
-
throw new
|
|
114
|
+
throw new ConflictException('External reference binding is immutable after creation.');
|
|
118
115
|
}
|
|
119
116
|
}
|
|
120
117
|
normalizeExternalIdentity(input) {
|
|
@@ -129,5 +126,4 @@ class OmniExternalRefService extends omni_scoped_service_js_1.OmniScopedService
|
|
|
129
126
|
};
|
|
130
127
|
}
|
|
131
128
|
}
|
|
132
|
-
exports.OmniExternalRefService = OmniExternalRefService;
|
|
133
129
|
//# sourceMappingURL=omni-external-ref.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"omni-external-ref.service.js","sourceRoot":"","sources":["omni-external-ref.service.ts"],"names":[],"mappings":"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"}
|