runlify 0.0.201 → 0.0.203
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/build/projectsGeneration/commonEntities/addAggregateTrackings.js +2 -1
- package/build/projectsGeneration/generators/fileTemplates/back/environment/src/index.js +3 -3
- package/build/projectsGeneration/generators/fileTemplates/back/services/entity/hooks/getUnPostOperations.js +4 -2
- package/build/projectsGeneration/generators/fileTemplates/back/services/entity/service.js +9 -9
- package/build/projectsGeneration/types.js +5 -1
- package/build/types/projectsGeneration/types.d.ts +2 -0
- package/package.json +1 -1
|
@@ -7,8 +7,9 @@ var addAggregateTrackings = function (system) {
|
|
|
7
7
|
aggregateTrackings.addDimensionLinkField('entities', 'entityTypeId', 'Тип сущности').setType('string').setRequired();
|
|
8
8
|
aggregateTrackings.addDimension('entityId', 'Сущность').setType('string').setRequired();
|
|
9
9
|
aggregateTrackings.addResource('lastAggregatesComputed', 'Агрегаты последний раз вычислены ').setType('datetime').setRequired();
|
|
10
|
+
aggregateTrackings.addResource('lastAggregatesScheduled', 'Последний раз было добавлено в очередь на обработку').setType('datetime');
|
|
10
11
|
aggregateTrackings.addResource('lastEntityUpdate', 'Последнее обновление сущности').setType('datetime').setRequired();
|
|
11
12
|
aggregateTrackings.addResource('aggregateVersion', 'Версия агрегата').setType('int').setRequired();
|
|
12
13
|
};
|
|
13
14
|
exports.default = addAggregateTrackings;
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkQWdncmVnYXRlVHJhY2tpbmdzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Byb2plY3RzR2VuZXJhdGlvbi9jb21tb25FbnRpdGllcy9hZGRBZ2dyZWdhdGVUcmFja2luZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFFQSxJQUFNLHFCQUFxQixHQUFHLFVBQUMsTUFBeUI7SUFDdEQscUJBQXFCO0lBQ3JCLElBQU0sa0JBQWtCLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxvQkFBb0IsRUFBRSxLQUFLLEVBQUUscUJBQXFCLENBQUMsQ0FBQztJQUN0RyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsdUZBQXVGLENBQUMsQ0FBQztJQUN2SCxrQkFBa0IsQ0FBQyxxQkFBcUIsQ0FBQyxVQUFVLEVBQUUsY0FBYyxFQUFFLGNBQWMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNySCxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN4RixrQkFBa0IsQ0FBQyxXQUFXLENBQUMsd0JBQXdCLEVBQUUsbUNBQW1DLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDaEksa0JBQWtCLENBQUMsV0FBVyxDQUFDLHlCQUF5QixFQUFFLHFEQUFxRCxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3JJLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsRUFBRSwrQkFBK0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN0SCxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsa0JBQWtCLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7QUFDckcsQ0FBQyxDQUFDO0FBRUYsa0JBQWUscUJBQXFCLENBQUMifQ==
|
|
@@ -5,9 +5,9 @@ var types_1 = require("../../../../../types");
|
|
|
5
5
|
var utils_1 = require("../../../../../utils");
|
|
6
6
|
var environmentIndexTmpl = function (options) {
|
|
7
7
|
if (options === void 0) { options = types_1.defaultBootstrapEntityOptions; }
|
|
8
|
-
return "import exitHook from 'exit-hook';\nimport {ApolloServer, AuthenticationError} from 'apollo-server-express';\nimport {\n ApolloServerPlugin,\n GraphQLRequestContext,\n GraphQLRequestContextDidResolveOperation,\n} from 'apollo-server-plugin-base';\nimport {\n SelectionNode,\n} from 'graphql';\nimport log from './log';\nimport schema from './graph/schema';\nimport {\n createContext,\n createUsersAwareContext,\n} from './adm/services/context';\nimport {Context} from './adm/services/types';\nimport express, {RequestHandler} from 'express';\nimport cors from 'cors';\nimport passport from 'passport';\nimport {json, raw} from 'body-parser';\nimport restRouter from './rest/restRouter';\nimport helmet from 'helmet';\nimport {collectDefaultMetrics, register} from 'prom-client';\nimport {
|
|
8
|
+
return "import exitHook from 'exit-hook';\nimport {ApolloServer, AuthenticationError} from 'apollo-server-express';\nimport {\n ApolloServerPlugin,\n GraphQLRequestContext,\n GraphQLRequestContextDidResolveOperation,\n} from 'apollo-server-plugin-base';\nimport {\n SelectionNode,\n} from 'graphql';\nimport log from './log';\nimport schema from './graph/schema';\nimport {\n createContext,\n createUsersAwareContext,\n} from './adm/services/context';\nimport {Context} from './adm/services/types';\nimport express, {RequestHandler} from 'express';\nimport cors from 'cors';\nimport passport from 'passport';\nimport {json, raw} from 'body-parser';\nimport restRouter from './rest/restRouter';\nimport helmet from 'helmet';\nimport {collectDefaultMetrics, register} from 'prom-client';\nimport {initAdmPassport} from './adm/config/passport';".concat(options.usersEnabled ? "\nimport {initAppPassport} from './app/config/passport';\nimport appAuthRouter from './app/authRouter';\nimport getAppServer from './app/getAppServer';" : '', "\nimport admAuthRouter from './adm/authRouter';\nimport {graphqlUploadExpress} from 'graphql-upload';\nimport {flattenGraphqlToPermission} from './adm/graph/permissionsToGraphql';\nimport defaultContainer from './adm/services/defaultContainer';\nimport healthRouter from './rest/healthRouter';\nimport expressPlayground from 'graphql-playground-middleware-express';\n").concat(options.skipWarningThisIsGenerated
|
|
9
9
|
? ''
|
|
10
|
-
: "\n// ".concat(utils_1.generatedWarning, "\n"), "\nexitHook(async () => {\n createContext().then(ctx => ctx.close());\n});\n\nconst app = express();\n\ninitAppPassport()
|
|
10
|
+
: "\n// ".concat(utils_1.generatedWarning, "\n"), "\nexitHook(async () => {\n createContext().then(ctx => ctx.close());\n});\n\nconst app = express();\n").concat(options.usersEnabled ? "\ninitAppPassport();" : '', "\ninitAdmPassport();\n\nconst production = process.env.NODE_ENV === 'production';\nlog.info(`production: ${production}`);\n\napp.use(cors());\napp.use(raw({limit: '50mb'}) as RequestHandler);\napp.use(json({limit: '1mb'}) as RequestHandler);\napp.use(\n helmet(\n {\n contentSecurityPolicy: production ? undefined : false,\n crossOriginEmbedderPolicy: production ? undefined : false,\n },\n ) as RequestHandler,\n);\napp.use(passport.initialize() as RequestHandler);\n").concat(options.usersEnabled ? "\napp.use('/app/rest', appAuthRouter);" : '', "\napp.use('/adm/rest', admAuthRouter);\n\ncollectDefaultMetrics();\n\napp.get('/metrics', async (_req, res) => {\n try {\n res.set('Content-Type', register.contentType);\n res.end(await register.metrics());\n } catch (error: any) {\n res.status(500).end(error);\n }\n});\n\napp.use('/rest', restRouter);\n\napp.use('/health', healthRouter);\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nconst noop = (_arg: any) => {};\n\nconst start = async () => {\n const context = await createContext(defaultContainer);\n\n app.use('/app/graph', passport.authenticate('appJwt', {session: false}));\n app.use('/app/graph', graphqlUploadExpress({maxFiles: 10, maxFileSize: 50 * 1024 * 1024}) as RequestHandler);\n").concat(options.usersEnabled ? "\n const appServer = getAppServer();\n await appServer.start();\n appServer.applyMiddleware({app, path: '/app/graph'});\n" : '', "\n const authPlugin: ApolloServerPlugin = {\n requestDidStart: async (requestContext: GraphQLRequestContext<{context: Context}>) => {\n const {\n context: {context},\n\n // request: {\n // variables: requestVariables,\n // },\n } = requestContext;\n\n // log.info('requestVariables');\n // log.info(requestVariables);\n\n return {\n didResolveOperation: async (\n resolutionContext: GraphQLRequestContextDidResolveOperation<{context: Context}>,\n ) => {\n // const {getManagerId} = context;\n\n resolutionContext.operation.selectionSet.selections.forEach((selection: SelectionNode) => {\n if (selection.kind === 'Field') {\n const {name: {value: operationName}} = selection;\n noop(operationName);\n noop(typeof context);\n // noop(getManagerId);\n noop(flattenGraphqlToPermission);\n noop(AuthenticationError);\n\n // log.info(typeof getManagerId);\n // log.info(getManagerId());\n\n // log.info(getPermissions());\n\n // log.info(Object.keys(context));\n\n // log.info(operationName);\n // log.info(`operationName: ${operationName}`);\n\n // const permission = flattenGraphqlToPermission[operationName];\n // log.info(`permission: ${permission}`);\n // log.info(`allActionSources: ${flattenGraphqlToPermission.allActionSources}`);\n\n // log.info(typeof AuthenticationError);\n\n // if (!permission) {\n // throw new AuthenticationError(`There is no permission for \"${operationName}\"`);\n // }\n\n // if (!getPermissions().includes(permission)) {\n // throw new AuthenticationError(`Operation \"${operationName}\" not permitted`);\n // }\n\n // log.info(selection);\n } else {\n throw new Error('Not expected');\n }\n });\n },\n };\n },\n };\n\n const server = new ApolloServer({\n context: async ({req}) => ({\n context: await createUsersAwareContext(\n {\n userId: null,\n managerId: (req.user as any).id,\n },\n defaultContainer,\n ),\n }),\n introspection: true,\n plugins: [authPlugin as any],\n schema,\n });\n\n const admGraphPath = '/adm/graph';\n app.use(admGraphPath, passport.authenticate('admJwt', {session: false}));\n app.use(admGraphPath, graphqlUploadExpress({maxFiles: 10, maxFileSize: 50 * 1024 * 1024}) as RequestHandler);\n await server.start();\n server.applyMiddleware({app, path: admGraphPath});\n\n context.service('stats').updateGauges();\n\n const port = 3000;\n const graphEndpoint = `http://localhost:${port}${server.graphqlPath}`;\n\n if (!production) {\n app.get(\n '/playground',\n expressPlayground({\n endpoint: graphEndpoint,\n }),\n );\n\n log.info(`\uD83D\uDE80 GraphQL playground at http://localhost:${port}/playground`);\n }\n\n app.listen({port}, () => {\n log.info(`\uD83D\uDE80 Server ready at ${graphEndpoint}`);\n });\n};\n\ntry {\n start();\n} catch (error: any) {\n log.error(error);\n createContext().then(ctx => ctx.close());\n}\n");
|
|
11
11
|
};
|
|
12
12
|
exports.environmentIndexTmpl = environmentIndexTmpl;
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvcHJvamVjdHNHZW5lcmF0aW9uL2dlbmVyYXRvcnMvZmlsZVRlbXBsYXRlcy9iYWNrL2Vudmlyb25tZW50L3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw4Q0FHNkI7QUFDN0IsOENBQXVEO0FBRWhELElBQU0sb0JBQW9CLEdBQUcsVUFDbEMsT0FBK0Q7SUFBL0Qsd0JBQUEsRUFBQSxVQUFrQyxxQ0FBNkI7SUFDNUQsT0FBQSxpMUJBd0JtRCxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyx5SkFHaEMsQ0FBQyxDQUFDLENBQUMsRUFBRSw0WEFRbEQsT0FBTyxDQUFDLDBCQUEwQjtRQUNoQyxDQUFDLENBQUMsRUFBRTtRQUNKLENBQUMsQ0FBQyxlQUNELHdCQUFnQixPQUNwQixtSEFPQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxzQkFDTixDQUFDLENBQUMsQ0FBQyxFQUFFLG1mQWtCdEIsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsd0NBQ1ksQ0FBQyxDQUFDLENBQUMsRUFBRSw2dUJBMEJ4QyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyw4SEFJeEIsQ0FBQyxDQUFDLENBQUMsRUFBRSwreUdBK0dMO0FBL01JLENBK01KLENBQUE7QUFqTlksUUFBQSxvQkFBb0Isd0JBaU5oQyJ9
|
|
@@ -4,14 +4,16 @@ exports.getUnPostOperationsTmpl = void 0;
|
|
|
4
4
|
var pluralize_1 = require("pluralize");
|
|
5
5
|
var types_1 = require("../../../../../../types");
|
|
6
6
|
var utils_1 = require("../../../../../../utils");
|
|
7
|
+
var fieldTypeToTsType_1 = require("../../../../../fieldTypeToTsType");
|
|
8
|
+
var metaUtils_1 = require("../../../../../../metaUtils");
|
|
7
9
|
var getUnPostOperationsTmpl = function (_prefix, document, options) {
|
|
8
10
|
if (options === void 0) { options = types_1.defaultBootstrapEntityOptions; }
|
|
9
11
|
var contextName = 'Context';
|
|
10
12
|
return "import {PrismaPromise} from '@prisma/client';\nimport {".concat(contextName, "} from '../../types';\n").concat(options.skipWarningThisIsGenerated
|
|
11
13
|
? ''
|
|
12
|
-
: "\n// ".concat(utils_1.generatedWarning, "\n"), "\nexport const getUnPostOperations = async (ctx: ").concat(contextName, ", id:
|
|
14
|
+
: "\n// ".concat(utils_1.generatedWarning, "\n"), "\nexport const getUnPostOperations = async (ctx: ").concat(contextName, ", id: ").concat((0, fieldTypeToTsType_1.fieldTypeToTsType)((0, metaUtils_1.getKeyField)(document).type), "): Promise<PrismaPromise<any>[]> => {\n const registries: any[] = [").concat(document.registries
|
|
13
15
|
.map(function (registry) { return "\n '".concat((0, pluralize_1.singular)(registry), "',"); })
|
|
14
16
|
.join(''), "\n ];\n\n return registries.map(registry => ctx.prisma[registry].deleteMany({\n where: {\n registrarTypeId: '").concat((0, pluralize_1.singular)(document.name), "',\n registrarId: id,\n },\n }));\n};\n");
|
|
15
17
|
};
|
|
16
18
|
exports.getUnPostOperationsTmpl = getUnPostOperationsTmpl;
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0VW5Qb3N0T3BlcmF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9wcm9qZWN0c0dlbmVyYXRpb24vZ2VuZXJhdG9ycy9maWxlVGVtcGxhdGVzL2JhY2svc2VydmljZXMvZW50aXR5L2hvb2tzL2dldFVuUG9zdE9wZXJhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsdUNBQW9DO0FBQ3BDLGlEQUdnQztBQUNoQyxpREFBMEQ7QUFDMUQsc0VBQW9FO0FBQ3BFLHlEQUF5RDtBQUVsRCxJQUFNLHVCQUF1QixHQUFHLFVBQ3JDLE9BQWUsRUFDZixRQUFrQixFQUNsQixPQUErRDtJQUEvRCx3QkFBQSxFQUFBLFVBQWtDLHFDQUE2QjtJQUUvRCxJQUFNLFdBQVcsR0FBRyxTQUFTLENBQUE7SUFFN0IsT0FBTyxpRUFDQyxXQUFXLG9DQUVuQixPQUFPLENBQUMsMEJBQTBCO1FBQ2hDLENBQUMsQ0FBQyxFQUFFO1FBQ0osQ0FBQyxDQUFDLGVBQ0Qsd0JBQWdCLE9BQ3BCLDhEQUVnRCxXQUFXLG1CQUFTLElBQUEscUNBQWlCLEVBQUMsSUFBQSx1QkFBVyxFQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxpRkFDbkYsUUFBUSxDQUFDLFVBQVU7U0FDN0MsR0FBRyxDQUFDLFVBQUMsUUFBUSxJQUFLLE9BQUEsaUJBQVUsSUFBQSxvQkFBUSxFQUFDLFFBQVEsQ0FBQyxPQUFJLEVBQWhDLENBQWdDLENBQUM7U0FDbkQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxvSUFLYSxJQUFBLG9CQUFRLEVBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxxREFLaEQsQ0FBQTtBQUNELENBQUMsQ0FBQTtBQTlCWSxRQUFBLHVCQUF1QiwyQkE4Qm5DIn0=
|
|
@@ -66,7 +66,7 @@ var prismaServiceTmpl = function (_a) {
|
|
|
66
66
|
: 'never', ";\n\nexport type Autodefinable").concat((0, cases_1.pascalSingular)(entity.name), "Part = DefinedRecord<Pick<MutationCreate").concat((0, cases_1.pascalSingular)(entity.name), "Args, Autodefinable").concat((0, cases_1.pascalSingular)(entity.name), "Keys>>;\n\nexport type Reliable").concat((0, cases_1.pascalSingular)(entity.name), "CreateUserInput =\n Omit<MutationCreate").concat((0, cases_1.pascalSingular)(entity.name), "Args, ForbidenForUser").concat((0, cases_1.pascalSingular)(entity.name), "Keys>\n & Autodefinable").concat((0, cases_1.pascalSingular)(entity.name), "Part;\n\nexport type Allowed").concat((0, cases_1.pascalSingular)(entity.name), "ForUserCreateInput = Omit<MutationCreate").concat((0, cases_1.pascalSingular)(entity.name), "Args, ForbidenForUser").concat((0, cases_1.pascalSingular)(entity.name), "Keys>;\n\nexport type StrictCreate").concat((0, cases_1.pascalSingular)(entity.name), "Args = DefinedFieldsInRecord<MutationCreate").concat((0, cases_1.pascalSingular)(entity.name), "Args, RequiredDbNotUser").concat((0, cases_1.pascalSingular)(entity.name), "Keys> & Autodefinable").concat((0, cases_1.pascalSingular)(entity.name), "Part;\nexport type StrictUpdate").concat((0, cases_1.pascalSingular)(entity.name), "Args = DefinedFieldsInRecord<MutationUpdate").concat((0, cases_1.pascalSingular)(entity.name), "Args, RequiredDbNotUser").concat((0, cases_1.pascalSingular)(entity.name), "Keys> & Autodefinable").concat((0, cases_1.pascalSingular)(entity.name), "Part;\n\nexport type StrictCreate").concat((0, cases_1.pascalSingular)(entity.name), "ArgsWithoutAutodefinable = PartialFieldsInRecord<StrictCreate").concat((0, cases_1.pascalSingular)(entity.name), "Args, Autodefinable").concat((0, cases_1.pascalSingular)(entity.name), "Keys>;\nexport type MutationCreate").concat((0, cases_1.pascalSingular)(entity.name), "ArgsWithoutAutodefinable = PartialFieldsInRecord<MutationCreate").concat((0, cases_1.pascalSingular)(entity.name), "Args, Autodefinable").concat((0, cases_1.pascalSingular)(entity.name), "Keys>;\nexport type MutationUpdate").concat((0, cases_1.pascalSingular)(entity.name), "ArgsWithoutAutodefinable = PartialFieldsInRecord<MutationUpdate").concat((0, cases_1.pascalSingular)(entity.name), "Args, Autodefinable").concat((0, cases_1.pascalSingular)(entity.name), "Keys>;\n\nexport interface Base").concat((0, cases_1.pascalPlural)(entity.name), "Methods {\n get: (id: ").concat((0, fieldTypeToTsType_1.fieldTypeToTsType)((0, metaUtils_1.getKeyField)(entity).type), ") =>\n Promise<").concat((0, cases_1.pascalSingular)(entity.name), " | null>;\n getRequired: (id: ").concat((0, fieldTypeToTsType_1.fieldTypeToTsType)((0, metaUtils_1.getKeyField)(entity).type), ") =>\n Promise<").concat((0, cases_1.pascalSingular)(entity.name), ">;\n all: (params?: QueryAll").concat((0, cases_1.pascalPlural)(entity.name), "Args) =>\n Promise<").concat((0, cases_1.pascalSingular)(entity.name), "[]>;\n findOne: (params?: QueryAll").concat((0, cases_1.pascalPlural)(entity.name), "Args) =>\n Promise<").concat((0, cases_1.pascalSingular)(entity.name), " | null>;\n findOneRequired: (params?: QueryAll").concat((0, cases_1.pascalPlural)(entity.name), "Args) =>\n Promise<").concat((0, cases_1.pascalSingular)(entity.name), ">;").concat(entity.type === 'infoRegistry' && entity.period !== 'notPeriodic'
|
|
67
67
|
? "\n sliceOfTheLast: (date?: Date, filter?: Slice".concat((0, cases_1.pascalPlural)(entity.name), "Filter) =>\n Promise<").concat((0, cases_1.pascalSingular)(entity.name), " | null>;\n sliceOfTheFirst: (date?: Date, filter?: Slice").concat((0, cases_1.pascalPlural)(entity.name), "Filter) =>\n Promise<").concat((0, cases_1.pascalSingular)(entity.name), " | null>;")
|
|
68
68
|
: '', "\n count: (params?: Query_All").concat((0, cases_1.pascalPlural)(entity.name), "MetaArgs) =>\n Promise<number>;\n meta: (params?: Query_All").concat((0, cases_1.pascalPlural)(entity.name), "MetaArgs) =>\n Promise<ListMetadata>;\n create: (data: MutationCreate").concat((0, cases_1.pascalSingular)(entity.name), "ArgsWithoutAutodefinable, byUser?: boolean) =>\n Promise<").concat((0, cases_1.pascalSingular)(entity.name), ">;\n createMany: (data: StrictCreate").concat((0, cases_1.pascalSingular)(entity.name), "ArgsWithoutAutodefinable[], byUser?: boolean) =>\n Promise<Prisma.BatchPayload>;\n update: ({id, ...rest}: MutationUpdate").concat((0, cases_1.pascalSingular)(entity.name), "ArgsWithoutAutodefinable, byUser?: boolean) =>\n Promise<").concat((0, cases_1.pascalSingular)(entity.name), ">;\n upsert: (\n data: PartialFieldsInRecord<MutationUpdate").concat((0, cases_1.pascalSingular)(entity.name), "ArgsWithoutAutodefinable, 'id'>,\n byUser?: boolean,\n ) =>\n Promise<").concat((0, cases_1.pascalSingular)(entity.name), ">;\n upsertAdvanced: (\n filter: ").concat((0, cases_1.pascalSingular)(entity.name), "Filter,\n data: MutationCreate").concat((0, cases_1.pascalSingular)(entity.name), "ArgsWithoutAutodefinable,\n byUser?: boolean,\n ) =>\n Promise<").concat((0, cases_1.pascalSingular)(entity.name), ">;\n delete: (params: MutationRemove").concat((0, cases_1.pascalSingular)(entity.name), "Args) =>\n Promise<").concat((0, cases_1.pascalSingular)(entity.name), ">;").concat(entity.type === 'document'
|
|
69
|
-
? "\n\n rePost: (id:
|
|
69
|
+
? "\n\n rePost: (id: ".concat((0, fieldTypeToTsType_1.fieldTypeToTsType)((0, metaUtils_1.getKeyField)(entity).type), ") =>\n Promise<void>;\n getRegistryEntries: (data: ").concat((0, cases_1.pascalSingular)(entity.name), ") =>\n Promise<").concat((0, cases_1.pascalSingular)(entity.name), "RegistryEntries>;\n getPostOperations: (data: ").concat((0, cases_1.pascalSingular)(entity.name), ") =>\n Promise<PrismaPromise<any>[]>;\n getUnPostOperations: (id: ").concat((0, fieldTypeToTsType_1.fieldTypeToTsType)((0, metaUtils_1.getKeyField)(entity).type), ") =>\n Promise<PrismaPromise<any>[]>;")
|
|
70
70
|
: '', "\n}\n\nexport type ").concat((0, cases_1.pascalPlural)(entity.name), "Service = Base").concat((0, cases_1.pascalPlural)(entity.name), "Methods\n & Additional").concat((0, cases_1.pascalPlural)(entity.name), "Methods\n & HooksAddType<\n ").concat((0, cases_1.pascalSingular)(entity.name), ",\n QueryAll").concat((0, cases_1.pascalPlural)(entity.name), "Args,\n Reliable").concat((0, cases_1.pascalSingular)(entity.name), "CreateUserInput,\n MutationUpdate").concat((0, cases_1.pascalSingular)(entity.name), "Args,\n MutationRemove").concat((0, cases_1.pascalSingular)(entity.name), "Args,\n StrictCreate").concat((0, cases_1.pascalSingular)(entity.name), "Args,\n StrictUpdate").concat((0, cases_1.pascalSingular)(entity.name), "Args\n >;\n\nconst dateFieldsForSearch: string[] = ").concat(dateFields.length
|
|
71
71
|
? "[\n".concat(dateFields
|
|
72
72
|
.map(function (f) { return "'".concat(f.name, "',"); })
|
|
@@ -83,7 +83,7 @@ var prismaServiceTmpl = function (_a) {
|
|
|
83
83
|
.map(utils_1.addComma)
|
|
84
84
|
.join('\n')), "\n };\n\n const pairedConstructors = R.toPairs(defaultFieldConstructors);\n\n const resultedPairs: R.KeyValuePair<string, any>[] = [];\n for (const [key, constructor] of pairedConstructors) {\n resultedPairs.push([key, key in currentData && currentData[key] ? currentData[key] : await constructor()]);\n }\n\n return R.mergeLeft(currentData, R.fromPairs(resultedPairs)) as T & Autodefinable").concat((0, cases_1.pascalSingular)(entity.name), "Part;\n }")
|
|
85
85
|
: "currentData as T & Autodefinable".concat((0, cases_1.pascalSingular)(entity.name), "Part"), ";\n\n const all = async (\n params: QueryAll").concat((0, cases_1.pascalPlural)(entity.name), "Args = {},\n ): Promise<").concat((0, cases_1.pascalSingular)(entity.name), "[]> => {").concat(entity.externalSearch
|
|
86
|
-
? "\n const elasticSearch = ctx.elastic.createSearcher('".concat((0, change_case_1.pathCase)(entity.name), "');\n\n const search = await elasticSearch(toElasticRequest(await runHooks.changeListFilter(ctx, params)));\n\n const ids = search.hits.hits.map(el => BigInt((el._source as ").concat((0, cases_1.pascalSingular)(entity.name), ").id));\n const prismaReq = toPrismaRequest(params, {noId: false});\n\n return ctx.prisma.").concat((0, cases_1.camelSingular)(entity.name), ".findMany(\n {\n where: {id: {in: ids}},\n orderBy: prismaReq.orderBy,\n },")
|
|
86
|
+
? "\n const elasticSearch = ctx.elastic.createSearcher('".concat((0, change_case_1.pathCase)(entity.name), "');\n\n const search = await elasticSearch(toElasticRequest(await runHooks.changeListFilter(ctx, params)));\n\n const ids = search.hits.hits.map(el => ").concat((0, metaUtils_1.getKeyField)(entity).type === 'bigint' ? "BigInt((el._source as ".concat((0, cases_1.pascalSingular)(entity.name), ").id)") : "(el._source as ".concat((0, cases_1.pascalSingular)(entity.name), ").id"), ");\n const prismaReq = toPrismaRequest(params, {noId: false});\n\n return ctx.prisma.").concat((0, cases_1.camelSingular)(entity.name), ".findMany(\n {\n where: {id: {in: ids}},\n orderBy: prismaReq.orderBy,\n },")
|
|
87
87
|
: "\n return ctx.prisma.".concat((0, cases_1.camelSingular)(entity.name), ".findMany(\n toPrismaRequest(await runHooks.changeListFilter(ctx, params), {noId: false}),"), "\n ) as unknown as Promise<").concat((0, cases_1.pascalSingular)(entity.name), "[]>;\n };\n\n const findOne = async (\n params: QueryAll").concat((0, cases_1.pascalPlural)(entity.name), "Args = {},\n ): Promise<").concat((0, cases_1.pascalSingular)(entity.name), " | null> => {\n return ctx.prisma.").concat((0, cases_1.camelSingular)(entity.name), ".findFirst(toPrismaRequest(\n await runHooks.changeListFilter(ctx, params),\n {noId: false},\n ));\n };\n\n const findOneRequired = async (\n params: QueryAll").concat((0, cases_1.pascalPlural)(entity.name), "Args = {},\n ): Promise<").concat((0, cases_1.pascalSingular)(entity.name), "> => {\n const found = await findOne(params);\n\n if (!found) {\n throw new Error(`There is no entry with \"${JSON.stringify(params)}\" filter`);\n }\n\n return found;\n };\n\n const get = async (\n id: ").concat((0, fieldTypeToTsType_1.fieldTypeToTsType)((0, metaUtils_1.getKeyField)(entity).type), ",\n ): Promise<").concat((0, cases_1.pascalSingular)(entity.name), " | null> => {\n return findOne({filter: {id}});\n };\n\n const getRequired = async (\n id: ").concat((0, fieldTypeToTsType_1.fieldTypeToTsType)((0, metaUtils_1.getKeyField)(entity).type), ",\n ): Promise<").concat((0, cases_1.pascalSingular)(entity.name), "> => {\n const found = await get(id);\n\n if (!found) {\n throw new Error(`There is no entry with \"${id}\" id`);\n }\n\n return found;\n };\n").concat(entity.type === 'infoRegistry' && entity.period !== 'notPeriodic'
|
|
88
88
|
? "\n const sliceOfTheLast = async (\n date?: Date,\n filter?: Slice".concat((0, cases_1.pascalPlural)(entity.name), "Filter,\n ): Promise<").concat((0, cases_1.pascalSingular)(entity.name), " | null> => {\n return ctx.prisma.").concat((0, cases_1.camelSingular)(entity.name), ".findFirst(toPrismaRequest({\n sortField: 'date',\n sortOrder: 'desc',\n filter: {\n ...filter,\n date_lte: date ?? new Date(),\n },\n }, {noId: false}));\n };\n\n const sliceOfTheFirst = async (\n date?: Date,\n filter?: Slice").concat((0, cases_1.pascalPlural)(entity.name), "Filter,\n ): Promise<").concat((0, cases_1.pascalSingular)(entity.name), " | null> => {\n return ctx.prisma.").concat((0, cases_1.camelSingular)(entity.name), ".findFirst(toPrismaRequest({\n sortField: 'date',\n sortOrder: 'asc',\n filter: {\n ...filter,\n date_gte: date ?? new Date(),\n },\n }, {noId: false}));\n };\n")
|
|
89
89
|
: '', "\n const count = async (\n params: Query_All").concat((0, cases_1.pascalPlural)(entity.name), "MetaArgs = {},\n ): Promise<number> => {").concat(entity.externalSearch
|
|
@@ -94,7 +94,7 @@ var prismaServiceTmpl = function (_a) {
|
|
|
94
94
|
? "\n\n const post = async (\n data: ".concat((0, cases_1.pascalSingular)(entity.name), ",\n ): Promise<void> => {\n await ctx.prisma.$transaction(await getPostOperations(ctx, await augmentByDefault(data)));\n };")
|
|
95
95
|
: '', "\n\n const create = async (\n data: MutationCreate").concat((0, cases_1.pascalSingular)(entity.name), "ArgsWithoutAutodefinable,\n byUser = false,\n ): Promise<").concat((0, cases_1.pascalSingular)(entity.name), "> => {\n // clear from fields forbidden for user\n const cleared = byUser ?\n R.omit(forbiddenForUserFields, data) as Allowed").concat((0, cases_1.pascalSingular)(entity.name), "ForUserCreateInput :\n data;\n\n // Augment with default field\n const augmentedByDefault: Reliable").concat((0, cases_1.pascalSingular)(entity.name), "CreateUserInput = await augmentByDefault(cleared);\n\n const processedData = await runHooks.beforeCreate(ctx, augmentedByDefault);\n").concat(autogeneratedStringId(entity)
|
|
96
96
|
? "\n const createOperation = ctx.prisma.".concat((0, cases_1.camelSingular)(entity.name), ".create({\n data: {\n id: uuidv4(),\n ...R.mergeDeepLeft(\n processedData,\n ").concat(['catalog', 'document'].includes(entity.type)
|
|
97
|
-
? "{\n search: getSearchString(processedData),\n }"
|
|
97
|
+
? "{\n search: getSearchString(processedData),\n },"
|
|
98
98
|
: '{}', "\n ),\n },\n });")
|
|
99
99
|
: "\n const createOperation = ctx.prisma.".concat((0, cases_1.camelSingular)(entity.name), ".create({\n data: R.mergeDeepLeft(\n processedData,\n ").concat(['catalog', 'document'].includes(entity.type)
|
|
100
100
|
? "{\n search: getSearchString(processedData),\n }"
|
|
@@ -105,7 +105,7 @@ var prismaServiceTmpl = function (_a) {
|
|
|
105
105
|
: '').concat(entity.auditable
|
|
106
106
|
? "\n ctx.service('auditLogs').addCreateOperation({\n entityTypeId: Entity.".concat((0, cases_1.pascalSingular)(entity.name), ",\n entityId: result.id,\n actionData: data,\n }),")
|
|
107
107
|
: '').concat(entity.externalSearch
|
|
108
|
-
? "\n ctx.service('externalSearch').onEntityChange(Entity.".concat((0, cases_1.pascalSingular)(entity.name), "
|
|
108
|
+
? "\n ctx.service('externalSearch').onEntityChange(Entity.".concat((0, cases_1.pascalSingular)(entity.name), "),")
|
|
109
109
|
: '').concat(entity.type === 'document'
|
|
110
110
|
? "\n await ctx.prisma.$transaction(await getPostOperations(ctx, result)),"
|
|
111
111
|
: '', "\n ]);\n\n await runHooks.afterCreate(ctx, result as ").concat((0, cases_1.pascalSingular)(entity.name), ");\n\n return result as ").concat((0, cases_1.pascalSingular)(entity.name), ";\n };\n\n const createMany = async (\n entries: StrictCreate").concat((0, cases_1.pascalSingular)(entity.name), "ArgsWithoutAutodefinable[],\n byUser = false,\n ): Promise<Prisma.BatchPayload> => {\n // clear from fields forbidden for user\n const clearedData = byUser ? entries.map(data => R.omit(forbiddenForUserFields, data)) : entries;\n\n // Augment with default field\n const augmentedByDefault = await Promise.all(\n clearedData.map(el => augmentByDefault(el)),\n ) as StrictCreate").concat((0, cases_1.pascalSingular)(entity.name), "Args[];\n").concat(autogeneratedStringId(entity)
|
|
@@ -123,9 +123,9 @@ var prismaServiceTmpl = function (_a) {
|
|
|
123
123
|
: '', "\n ...(await runHooks.additionalOperationsOnUpdate(ctx, processedData)),").concat(entity.type === 'document'
|
|
124
124
|
? "\n ...(await getPostOperations(ctx, processedData)),"
|
|
125
125
|
: '', "\n ];\n\n const [result] = await ctx.prisma.$transaction(operations as any);\n if (!result) {\n throw new Error('There is no such entity');\n }\n\n await Promise.all([").concat(entity.externalSearch
|
|
126
|
-
? "\n ctx.service('externalSearch').onEntityChange(Entity.".concat((0, cases_1.pascalSingular)(entity.name), "
|
|
126
|
+
? "\n ctx.service('externalSearch').onEntityChange(Entity.".concat((0, cases_1.pascalSingular)(entity.name), "),")
|
|
127
127
|
: '', "\n runHooks.afterUpdate(ctx, result as ").concat((0, cases_1.pascalSingular)(entity.name), "),\n ]);\n\n return result as ").concat((0, cases_1.pascalSingular)(entity.name), ";\n };\n\n const upsert = async (\n data: PartialFieldsInRecord<MutationUpdate").concat((0, cases_1.pascalSingular)(entity.name), "ArgsWithoutAutodefinable, 'id'>,\n byUser = false,\n ): Promise<").concat((0, cases_1.pascalSingular)(entity.name), "> => {\n // Get db version\n const dbVersion = data.id ? await get(data.id) : null;\n\n // clear from fields forbidden for user\n const cleared = byUser ? R.omit(forbiddenForUserFields, data) : data;\n\n // Augment with default field\n const augmentedByDefault = await augmentByDefault(cleared);\n\n // augment data by fields from db\n const augmented: StrictUpdate").concat((0, cases_1.pascalSingular)(entity.name), "Args =\n R.mergeLeft(augmentedByDefault, dbVersion || {} as ").concat((0, cases_1.pascalSingular)(entity.name), ");\n\n const processedData = await runHooks.beforeUpsert(ctx, {createData: augmented, updateData: augmented});\n const createData = {\n ...processedData.createData,\n search: getSearchString(processedData.createData),\n };\n const updateData = {\n ...processedData.updateData,\n search: getSearchString(processedData.updateData),\n };\n\n const result = await ctx.prisma.").concat((0, cases_1.camelSingular)(entity.name), ".upsert({\n create: createData,\n update: updateData,\n where: {id: data.id},\n });\n\n if (!result) {\n throw new Error('There is no such entity');\n }\n").concat(entity.externalSearch
|
|
128
|
-
? "\n await ctx.service('externalSearch').onEntityChange(Entity.".concat((0, cases_1.pascalSingular)(entity.name), "
|
|
128
|
+
? "\n await ctx.service('externalSearch').onEntityChange(Entity.".concat((0, cases_1.pascalSingular)(entity.name), ");\n")
|
|
129
129
|
: '', "\n return result;\n };\n\n const upsertAdvanced = async (\n filter: ").concat((0, cases_1.pascalSingular)(entity.name), "Filter,\n data: MutationCreate").concat((0, cases_1.pascalSingular)(entity.name), "ArgsWithoutAutodefinable,\n byUser = false,\n ): Promise<").concat((0, cases_1.pascalSingular)(entity.name), "> => {\n const cnt = await count({filter});\n\n if (cnt > 1) {\n throw new Error(`There is more then one entity (${cnt}) that fits filter \"${JSON.stringify(filter)}\"`);\n } else if (cnt === 0) {\n return create(data, byUser);\n } else {\n const dbVersion = await findOneRequired({filter});\n return update({...data, id: dbVersion.id}, byUser);\n }\n };\n\n const del = async (\n params: MutationRemove").concat((0, cases_1.pascalSingular)(entity.name), "Args,\n ): Promise<").concat((0, cases_1.pascalSingular)(entity.name), "> => {\n await runHooks.beforeDelete(ctx, params);\n\n const deleteOperation = ctx.prisma.").concat((0, cases_1.camelSingular)(entity.name), ".delete({where: {id: params.id}});\n").concat(entity.auditable
|
|
130
130
|
? "\n const auditOperation = ctx.service('auditLogs').addDeleteOperation({\n entityTypeId: Entity.".concat((0, cases_1.pascalSingular)(entity.name), ",\n entityId: params.id,\n });\n")
|
|
131
131
|
: '', "\n const operations = [\n deleteOperation,").concat(entity.auditable
|
|
@@ -133,12 +133,12 @@ var prismaServiceTmpl = function (_a) {
|
|
|
133
133
|
: '', "\n ...(await runHooks.additionalOperationsOnDelete(ctx, params)),").concat(entity.type === 'document'
|
|
134
134
|
? "\n ...(await getUnPostOperations(ctx, params.id)),"
|
|
135
135
|
: '', "\n ];\n\n const entity = await get(params.id);\n\n if (!entity) {\n throw new Error(`There is no entity with \"${params.id}\" id`);\n }\n\n const [result] = await ctx.prisma.$transaction(operations as any);\n\n if (!result) {\n throw new Error('There is no such entity');\n }\n\n await runHooks.afterDelete(ctx, entity);\n\n return entity;\n };").concat(entity.type === 'document'
|
|
136
|
-
? "\n\n const rePost = async (\n id:
|
|
136
|
+
? "\n\n const rePost = async (\n id: ".concat((0, fieldTypeToTsType_1.fieldTypeToTsType)((0, metaUtils_1.getKeyField)(entity).type), ",\n ): Promise<void> => {\n const data = await get(id);\n\n if (!data) {\n throw new Error(`There is no document with \"${id}\" id`);\n }\n\n await post(data);\n };")
|
|
137
137
|
: ''), "\n\n const baseMethods: Base").concat((0, cases_1.pascalPlural)(entity.name), "Methods = {\n get,\n getRequired,\n all,\n findOne,\n findOneRequired,").concat(entity.type === 'infoRegistry' && entity.period !== 'notPeriodic'
|
|
138
138
|
? "\n sliceOfTheLast,\n sliceOfTheFirst,"
|
|
139
139
|
: '', "\n count,\n meta,\n create,\n createMany,\n update,\n upsert,\n upsertAdvanced,\n delete: del,").concat(entity.type === 'document'
|
|
140
|
-
? "\n\n rePost,\n getRegistryEntries: async (data: ".concat((0, cases_1.pascalSingular)(entity.name), ") => getRegistryEntries(ctx, await augmentByDefault(data)),\n getPostOperations: async (data: ").concat((0, cases_1.pascalSingular)(entity.name), ") => getPostOperations(ctx, await augmentByDefault(data)),\n getUnPostOperations: (id:
|
|
140
|
+
? "\n\n rePost,\n getRegistryEntries: async (data: ".concat((0, cases_1.pascalSingular)(entity.name), ") => getRegistryEntries(ctx, await augmentByDefault(data)),\n getPostOperations: async (data: ").concat((0, cases_1.pascalSingular)(entity.name), ") => getPostOperations(ctx, await augmentByDefault(data)),\n getUnPostOperations: (id: ").concat((0, fieldTypeToTsType_1.fieldTypeToTsType)((0, metaUtils_1.getKeyField)(entity).type), ") => getUnPostOperations(ctx, id),")
|
|
141
141
|
: '', "\n };\n\n const additionalMethods = getAdditionalMethods(ctx, baseMethods);\n\n const service: ").concat((0, cases_1.pascalPlural)(entity.name), "Service = {\n ...baseMethods,\n ...additionalMethods,\n hooksAdd,\n };\n\n initBuiltInHooks(service);\n initUserHooks(service);\n\n return service;\n};\n");
|
|
142
142
|
};
|
|
143
143
|
exports.prismaServiceTmpl = prismaServiceTmpl;
|
|
144
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9wcm9qZWN0c0dlbmVyYXRpb24vZ2VuZXJhdG9ycy9maWxlVGVtcGxhdGVzL2JhY2svc2VydmljZXMvZW50aXR5L3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNEJBQTRCO0FBQzVCLG1FQUFpRTtBQUNqRSx1REFJc0M7QUFHdEMsOENBQTZFO0FBQzdFLHNEQUFzRDtBQUN0RCwyQ0FBc0M7QUFFdEMsSUFBTSxxQkFBcUIsR0FBRyxVQUFDLE1BQWM7SUFDM0MsT0FBQSxJQUFBLHVCQUFXLEVBQUMsTUFBTSxDQUFDLENBQUMsYUFBYSxJQUFJLElBQUEsdUJBQVcsRUFBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEtBQUssUUFBUTtBQUExRSxDQUEwRSxDQUFBO0FBRXJFLElBQU0saUJBQWlCLEdBQUcsVUFBQyxFQUdQO1FBRnpCLE1BQU0sWUFBQSxFQUNOLE9BQU8sYUFBQTtJQUVQLElBQU0sV0FBVyxHQUFHLFNBQVMsQ0FBQTtJQUU3QixJQUFNLHNCQUFzQixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUNqRCxVQUFDLENBQUMsSUFBSyxPQUFBLENBQUMsQ0FBQyxDQUFDLGVBQWUsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBekMsQ0FBeUMsQ0FDakQsQ0FBQTtJQUNELElBQU0sZ0NBQWdDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQzNELFVBQUMsQ0FBQyxJQUFLLE9BQUEsQ0FBQyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsQ0FBQyxlQUFlLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLEVBQW5ELENBQW1ELENBQzNELENBQUE7SUFFRCxvTEFBb0w7SUFFcEwsNklBQTZJO0lBRTdJLElBQU0sb0JBQW9CLEdBQUc7UUFDM0IsT0FBQSxNQUFNLENBQUMsTUFBTTthQUNW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
|
|
144
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9wcm9qZWN0c0dlbmVyYXRpb24vZ2VuZXJhdG9ycy9maWxlVGVtcGxhdGVzL2JhY2svc2VydmljZXMvZW50aXR5L3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNEJBQTRCO0FBQzVCLG1FQUFpRTtBQUNqRSx1REFJc0M7QUFHdEMsOENBQTZFO0FBQzdFLHNEQUFzRDtBQUN0RCwyQ0FBc0M7QUFFdEMsSUFBTSxxQkFBcUIsR0FBRyxVQUFDLE1BQWM7SUFDM0MsT0FBQSxJQUFBLHVCQUFXLEVBQUMsTUFBTSxDQUFDLENBQUMsYUFBYSxJQUFJLElBQUEsdUJBQVcsRUFBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEtBQUssUUFBUTtBQUExRSxDQUEwRSxDQUFBO0FBRXJFLElBQU0saUJBQWlCLEdBQUcsVUFBQyxFQUdQO1FBRnpCLE1BQU0sWUFBQSxFQUNOLE9BQU8sYUFBQTtJQUVQLElBQU0sV0FBVyxHQUFHLFNBQVMsQ0FBQTtJQUU3QixJQUFNLHNCQUFzQixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUNqRCxVQUFDLENBQUMsSUFBSyxPQUFBLENBQUMsQ0FBQyxDQUFDLGVBQWUsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBekMsQ0FBeUMsQ0FDakQsQ0FBQTtJQUNELElBQU0sZ0NBQWdDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQzNELFVBQUMsQ0FBQyxJQUFLLE9BQUEsQ0FBQyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsQ0FBQyxlQUFlLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLEVBQW5ELENBQW1ELENBQzNELENBQUE7SUFFRCxvTEFBb0w7SUFFcEwsNklBQTZJO0lBRTdJLElBQU0sb0JBQW9CLEdBQUc7UUFDM0IsT0FBQSxNQUFNLENBQUMsTUFBTTthQUNW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
|
|
@@ -79,5 +79,9 @@ exports.defaultBootstrapEntityOptions = {
|
|
|
79
79
|
// Environment
|
|
80
80
|
corePrismaGetter: true,
|
|
81
81
|
coreIndex: true,
|
|
82
|
+
// Users
|
|
83
|
+
usersEnabled: true,
|
|
84
|
+
// Tenants
|
|
85
|
+
tenantsAvailable: false,
|
|
82
86
|
};
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvamVjdHNHZW5lcmF0aW9uL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUtBLElBQU0sdUJBQXVCLEdBQUc7SUFDOUIsR0FBRyxFQUFFLElBQUk7Q0FDVixDQUFBO0FBRUQsSUFBTSx1QkFBdUIsR0FBRztJQUM5QixHQUFHLEVBQUUsSUFBSTtJQUNULFVBQVUsRUFBRSxLQUFLO0NBQ2xCLENBQUE7QUFFRCxJQUFNLHlCQUF5QixHQUFHO0lBQ2hDLEdBQUcsRUFBRSxJQUFJO0lBQ1QsVUFBVSxFQUFFLEtBQUs7Q0FDbEIsQ0FBQTtBQUVELElBQU0sdUJBQXVCLEdBQUc7SUFDOUIsR0FBRyxFQUFFLElBQUk7Q0FDVixDQUFBO0FBRUQsSUFBTSxtQkFBbUIsR0FBRztJQUMxQixJQUFJLEVBQUUsdUJBQXVCO0lBQzdCLElBQUksRUFBRSx1QkFBdUI7SUFDN0IsSUFBSSxFQUFFLHVCQUF1QjtJQUM3QixNQUFNLEVBQUUseUJBQXlCO0lBQ2pDLElBQUksRUFBRTtRQUNKLElBQUksRUFBRSxJQUFJO0tBQ1g7SUFDRCxhQUFhLEVBQUU7UUFDYixJQUFJLEVBQUUsSUFBSTtLQUNYO0NBQ0YsQ0FBQTtBQUVZLFFBQUEsNkJBQTZCLEdBQUc7SUFDM0MsaUJBQWlCLEVBQUUsSUFBSTtJQUN2QixjQUFjLEVBQUUsSUFBSTtJQUNwQixpQkFBaUIsRUFBRSxJQUFJO0lBQ3ZCLGNBQWMsRUFBRSxJQUFJO0lBQ3BCLDBCQUEwQixFQUFFLEtBQUs7SUFDakMsZUFBZSxFQUFFLElBQUk7SUFDckIsVUFBVSxFQUFFLElBQUk7SUFDaEIsU0FBUyxFQUFFLEtBQUs7SUFFaEIsYUFBYSxFQUFFLElBQUk7SUFDbkIsZUFBZSxFQUFFLElBQUk7SUFFckIsZ0JBQWdCLEVBQUUsSUFBSTtJQUN0QixlQUFlLEVBQUUsSUFBSTtJQUVyQixrQkFBa0IsRUFBRSxJQUFJO0lBQ3hCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsYUFBYSxFQUFFLElBQUk7SUFDbkIsa0JBQWtCLEVBQUUsSUFBSTtJQUN4QixXQUFXLEVBQUUsSUFBSTtJQUNqQixRQUFRLEVBQUUsSUFBSTtJQUVkLGNBQWMsRUFBRSxJQUFJO0lBQ3BCLGNBQWMsRUFBRSxJQUFJO0lBRXBCLFlBQVksRUFBRSxJQUFJO0lBRWxCLFFBQVEsRUFBRSxLQUFLO0lBRWYsS0FBSyxFQUFFLG1CQUFtQjtJQUUxQixtQkFBbUIsRUFBRSxFQUFFO0lBQ3ZCLGlCQUFpQixFQUFFLEVBQUU7SUFDckIsYUFBYSxFQUFFLEVBQUU7SUFDakIsYUFBYSxFQUFFLEVBQUU7SUFDakIsTUFBTSxFQUFFLEVBQUU7SUFDVixXQUFXLEVBQUUsRUFBRTtJQUVmLFlBQVksRUFBRSxFQUFFO0lBQ2hCLGtCQUFrQixFQUFFLEVBQUU7SUFDdEIsYUFBYSxFQUFFLHNCQUFzQjtJQUNyQyxrQkFBa0IsRUFBRSxFQUFFO0lBQ3RCLG1CQUFtQixFQUFFLGlCQUFpQjtJQUN0QyxnQkFBZ0IsRUFBRSxrQ0FBa0M7SUFFcEQsT0FBTztJQUVQLEtBQUs7SUFDTCxlQUFlLEVBQUUsSUFBSTtJQUNyQixhQUFhLEVBQUUsSUFBSTtJQUVuQixhQUFhO0lBQ2Isb0JBQW9CLEVBQUUsbUJBQW1CO0lBQ3pDLHNCQUFzQixFQUFFLDhEQUE4RDtJQUV0RixRQUFRO0lBQ1Isa0JBQWtCLEVBQUUsSUFBSTtJQUN4QixtQkFBbUIsRUFBRSxJQUFJO0lBQ3pCLGdCQUFnQixFQUFFLElBQUk7SUFDdEIsaUJBQWlCLEVBQUUsSUFBSTtJQUN2QixlQUFlLEVBQUUsSUFBSTtJQUVyQixjQUFjO0lBQ2QsZ0JBQWdCLEVBQUUsSUFBSTtJQUN0QixTQUFTLEVBQUUsSUFBSTtJQUVmLFFBQVE7SUFDUixZQUFZLEVBQUUsSUFBSTtJQUVsQixVQUFVO0lBQ1YsZ0JBQWdCLEVBQUUsS0FBSztDQUN4QixDQUFBIn0=
|
|
@@ -70,6 +70,8 @@ export declare const defaultBootstrapEntityOptions: {
|
|
|
70
70
|
genUiChartFront: boolean;
|
|
71
71
|
corePrismaGetter: boolean;
|
|
72
72
|
coreIndex: boolean;
|
|
73
|
+
usersEnabled: boolean;
|
|
74
|
+
tenantsAvailable: boolean;
|
|
73
75
|
};
|
|
74
76
|
export declare type BootstrapEntityOptions = typeof defaultBootstrapEntityOptions;
|
|
75
77
|
export interface EntityBuilderWithOptions<T extends BaseSavableEntityBuilder | ReportBuilder = CatalogBuilder> {
|