runlify 0.0.782 → 0.0.786

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/build/index.js +4 -2
  2. package/build/projectsGeneration/builders/BaseSavableEntityBuilder.js +17 -13
  3. package/build/projectsGeneration/builders/SystemMetaBuilder.js +27 -3
  4. package/build/projectsGeneration/builders/buildedTypes.js +1 -1
  5. package/build/projectsGeneration/builders/storage.js +60 -0
  6. package/build/projectsGeneration/commonEntities/addCommonCommands.js +22 -4
  7. package/build/projectsGeneration/defaultCatalogs/{addElasticSearch.js → addExternalSearch.js} +5 -5
  8. package/build/projectsGeneration/defaultCatalogs/index.js +2 -2
  9. package/build/projectsGeneration/generateProject/back/generateBack.js +3 -1
  10. package/build/projectsGeneration/generateProject/back/src/services/generateBackEntityService.js +2 -2
  11. package/build/projectsGeneration/generateProject/generateBackClickHouseBootstrap.js +16 -0
  12. package/build/projectsGeneration/generateProject/generateBackElasticBootstrap.js +3 -2
  13. package/build/projectsGeneration/generateProject/generateEnvironment.js +33 -16
  14. package/build/projectsGeneration/generators/fileTemplates/back/clickhouse/jobs.js +94 -0
  15. package/build/projectsGeneration/generators/fileTemplates/back/elastic/jobs.js +15 -3
  16. package/build/projectsGeneration/generators/fileTemplates/back/environment/src/clients/createPgPrismaClient.js +43 -0
  17. package/build/projectsGeneration/generators/fileTemplates/back/environment/src/clients/getPrisma.js +139 -20
  18. package/build/projectsGeneration/generators/fileTemplates/back/environment/src/init/prisma/writeClientPackageStubs.js +39 -0
  19. package/build/projectsGeneration/generators/fileTemplates/back/services/entity/class.js +31 -20
  20. package/build/projectsGeneration/generators/fileTemplates/back/services/entity/config.js +9 -2
  21. package/build/projectsGeneration/generators/prisma/scheme/genPrismaConfig.js +34 -0
  22. package/build/projectsGeneration/generators/prisma/scheme/genPrismaConfig.spec.js +28 -0
  23. package/build/projectsGeneration/generators/prisma/scheme/genPrismaSchemaForEntitiesWithClientAdnDb.js +29 -12
  24. package/build/projectsGeneration/generators/prisma/scheme/genPrismaSchemaForEntitiesWithClientAdnDb.spec.js +99 -0
  25. package/build/projectsGeneration/utils/buildPrismaCommands.js +80 -0
  26. package/build/projectsGeneration/utils/buildPrismaCommands.spec.js +58 -0
  27. package/build/projectsGeneration/utils/detectPrismaMajorVersion.js +62 -0
  28. package/build/projectsGeneration/utils/detectPrismaMajorVersion.spec.js +51 -0
  29. package/build/types/index.d.ts +1 -0
  30. package/build/types/projectsGeneration/builders/BaseSavableEntityBuilder.d.ts +4 -4
  31. package/build/types/projectsGeneration/builders/SystemMetaBuilder.d.ts +4 -1
  32. package/build/types/projectsGeneration/builders/buildedTypes.d.ts +2 -2
  33. package/build/types/projectsGeneration/builders/storage.d.ts +21 -0
  34. package/build/types/projectsGeneration/defaultCatalogs/addExternalSearch.d.ts +2 -0
  35. package/build/types/projectsGeneration/defaultCatalogs/index.d.ts +1 -1
  36. package/build/types/projectsGeneration/generateProject/generateBackClickHouseBootstrap.d.ts +3 -0
  37. package/build/types/projectsGeneration/generators/fileTemplates/back/clickhouse/jobs.d.ts +183 -0
  38. package/build/types/projectsGeneration/generators/fileTemplates/back/environment/src/clients/createPgPrismaClient.d.ts +1 -0
  39. package/build/types/projectsGeneration/generators/fileTemplates/back/environment/src/clients/getPrisma.d.ts +1 -1
  40. package/build/types/projectsGeneration/generators/fileTemplates/back/environment/src/init/prisma/writeClientPackageStubs.d.ts +2 -0
  41. package/build/types/projectsGeneration/generators/fileTemplates/back/services/entity/class.d.ts +1 -1
  42. package/build/types/projectsGeneration/generators/prisma/scheme/genPrismaConfig.d.ts +13 -0
  43. package/build/types/projectsGeneration/generators/prisma/scheme/genPrismaConfig.spec.d.ts +1 -0
  44. package/build/types/projectsGeneration/generators/prisma/scheme/genPrismaSchemaForEntitiesWithClientAdnDb.d.ts +3 -1
  45. package/build/types/projectsGeneration/generators/prisma/scheme/genPrismaSchemaForEntitiesWithClientAdnDb.spec.d.ts +1 -0
  46. package/build/types/projectsGeneration/utils/buildPrismaCommands.d.ts +11 -0
  47. package/build/types/projectsGeneration/utils/buildPrismaCommands.spec.d.ts +1 -0
  48. package/build/types/projectsGeneration/utils/detectPrismaMajorVersion.d.ts +2 -0
  49. package/build/types/projectsGeneration/utils/detectPrismaMajorVersion.spec.d.ts +1 -0
  50. package/package.json +9 -1
  51. package/build/types/projectsGeneration/defaultCatalogs/addElasticSearch.d.ts +0 -2
@@ -3,19 +3,65 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.prismaGetterTmpl = void 0;
4
4
  const change_case_1 = require("change-case");
5
5
  const cases_1 = require("../../../../../../../utils/cases");
6
- const prismaGetterTmpl = (args) => {
7
- const otherDbs = args.system.dataBases
8
- .map((d) => d.name)
9
- .filter((d) => d !== 'main');
10
- const extraImports = otherDbs
11
- .map((db) => `import {PrismaClient as PrismaClient${(0, cases_1.pascal)(db)}} from '../../prisma/databases/${db}/client';`)
12
- .join('\n');
13
- const extraGetters = otherDbs.map((db) => {
14
- const p = (0, cases_1.pascal)(db);
15
- const writeKey = (0, change_case_1.camelCase)(`database.${db}.write.uri`);
16
- const readUriKey = (0, change_case_1.camelCase)(`database.${db}.readOnly.uri`);
17
- const readEnabledKey = (0, change_case_1.camelCase)(`database.${db}.readOnly.enabled`);
6
+ const buildExtraGetter = (db, p7) => {
7
+ const p = (0, cases_1.pascal)(db);
8
+ const writeKey = (0, change_case_1.camelCase)(`database.${db}.write.uri`);
9
+ const readUriKey = (0, change_case_1.camelCase)(`database.${db}.readOnly.uri`);
10
+ const readEnabledKey = (0, change_case_1.camelCase)(`database.${db}.readOnly.enabled`);
11
+ if (p7) {
18
12
  return `
13
+ const prisma${p}ByUri = new Map<string, PrismaClient${p}>();
14
+
15
+ export const getPrisma${p} = async (connectionType: 'write' | 'readOnly') => {
16
+ const {
17
+ ${writeKey}: writeUri,
18
+ ${readUriKey}: readOnlyUri,
19
+ ${readEnabledKey}: readOnlyEnabled,
20
+ } = await getConfig();
21
+
22
+ let uri: string;
23
+
24
+ if (connectionType === 'write') {
25
+ uri = writeUri;
26
+ } else {
27
+ if (!readOnlyEnabled) {
28
+ const msg = 'Read only database connection cannot be used with the database.${db}.readOnly.enabled is not true';
29
+ return new Proxy({} as any, {
30
+ get(_target: PrismaClient${p}, property: string | symbol) {
31
+ if (property === 'then') {
32
+ return undefined;
33
+ }
34
+ if (property === '$disconnect') {
35
+ return () => log.info('noop $disconnect');
36
+ }
37
+ log.error(\`getPrisma${p}: \${property.toString()}\`);
38
+ log.error(msg);
39
+ throw new Error(msg);
40
+ },
41
+ apply: () => {
42
+ log.error('apply');
43
+ log.error(msg);
44
+ throw new Error(msg);
45
+ },
46
+ }) as PrismaClient${p};
47
+ }
48
+ if (!readOnlyUri) {
49
+ throw new Error('database.${db}.readOnly.uri must be set');
50
+ }
51
+ uri = readOnlyUri;
52
+ }
53
+
54
+ let prisma${p} = prisma${p}ByUri.get(uri);
55
+ if (!prisma${p}) {
56
+ prisma${p} = createPgPrismaClient(PrismaClient${p}, uri);
57
+ prisma${p}ByUri.set(uri, prisma${p});
58
+ }
59
+
60
+ return prisma${p};
61
+ };
62
+ `;
63
+ }
64
+ return `
19
65
  let prisma${p}: PrismaClient${p} | null = null;
20
66
 
21
67
  export const getPrisma${p} = async (connectionType: 'write' | 'readOnly') => {
@@ -70,13 +116,74 @@ export const getPrisma${p} = async (connectionType: 'write' | 'readOnly') => {
70
116
  return prisma${p};
71
117
  };
72
118
  `;
73
- });
74
- return `import {PrismaClient} from '@prisma/client';
75
- ${extraImports}
76
- import {getConfig} from '../config';
77
- import log from '../log';
78
- import {addParamsToDatabaseUri} from '../utils/addParamsToPgUri';
119
+ };
120
+ const prismaGetterTmpl = (args, prismaMajor) => {
121
+ const p7 = (prismaMajor !== null && prismaMajor !== void 0 ? prismaMajor : 6) >= 7;
122
+ const otherDbs = args.system.dataBases
123
+ .map((d) => d.name)
124
+ .filter((d) => d !== 'main');
125
+ const extraImports = otherDbs
126
+ .map((db) => `import {PrismaClient as PrismaClient${(0, cases_1.pascal)(db)}} from '${p7 ? `@prisma/${db}/client` : `../../prisma/databases/${db}/client`}';`)
127
+ .join('\n');
128
+ const extraGetters = otherDbs.map((db) => buildExtraGetter(db, p7)).join('');
129
+ const mainGetter = p7
130
+ ? `
131
+ const prismaByUri = new Map<string, PrismaClient>();
132
+
133
+ export const getPrisma = async (connectionType: 'write' | 'readOnly') => {
134
+ const {
135
+ databaseMainWriteUri,
136
+ databaseMainReadOnlyUri,
137
+ databaseMainReadOnlyEnabled,
138
+ } = await getConfig();
139
+
140
+ let uri: string;
141
+
142
+ if (connectionType === 'write') {
143
+ uri = databaseMainWriteUri;
144
+ } else {
145
+ if (!databaseMainReadOnlyEnabled) {
146
+ const msg = 'Read only database connection cannot be used with the database.main.readOnly.enabled is not true';
147
+ return new Proxy({} as any, {
148
+ get(_target: PrismaClient, property: string | symbol) {
149
+ if (property === 'then') {
150
+ return undefined;
151
+ }
152
+
153
+ if (property === '$disconnect') {
154
+ return () => log.info('noop $disconnect');
155
+ }
156
+
157
+ log.error(\`get: \${property.toString()}\`);
79
158
 
159
+ log.error(msg);
160
+ throw new Error(msg);
161
+ },
162
+ apply: () => {
163
+ log.error('apply');
164
+ log.error(msg);
165
+ throw new Error(msg);
166
+ },
167
+ }) as PrismaClient;
168
+ }
169
+
170
+ if (!databaseMainReadOnlyUri) {
171
+ throw new Error('database.main.readOnly.uri must be set');
172
+ }
173
+
174
+ uri = databaseMainReadOnlyUri;
175
+ }
176
+
177
+ let prisma = prismaByUri.get(uri);
178
+ if (!prisma) {
179
+ prisma = createPgPrismaClient(PrismaClient, uri);
180
+ prismaByUri.set(uri, prisma);
181
+ }
182
+
183
+ return prisma;
184
+ };
185
+ `
186
+ : `
80
187
  let prisma: PrismaClient | null = null;
81
188
 
82
189
  export const getPrisma = async (connectionType: 'write' | 'readOnly') => {
@@ -137,8 +244,20 @@ export const getPrisma = async (connectionType: 'write' | 'readOnly') => {
137
244
 
138
245
  return prisma;
139
246
  };
140
- ${extraGetters.join('')}
247
+ `;
248
+ const p7Imports = p7
249
+ ? `import {createPgPrismaClient} from './createPgPrismaClient';
250
+ `
251
+ : `import {addParamsToDatabaseUri} from '../utils/addParamsToPgUri';
252
+ `;
253
+ return `import {PrismaClient} from '@prisma/client';
254
+ ${extraImports}
255
+ import {getConfig} from '../config';
256
+ import log from '../log';
257
+ ${p7Imports}
258
+ ${mainGetter}
259
+ ${extraGetters}
141
260
  `;
142
261
  };
143
262
  exports.prismaGetterTmpl = prismaGetterTmpl;
144
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0UHJpc21hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3Byb2plY3RzR2VuZXJhdGlvbi9nZW5lcmF0b3JzL2ZpbGVUZW1wbGF0ZXMvYmFjay9lbnZpcm9ubWVudC9zcmMvY2xpZW50cy9nZXRQcmlzbWEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQXFDO0FBQ3JDLDREQUF1RDtBQUdoRCxNQUFNLGdCQUFnQixHQUFHLENBQUMsSUFBK0IsRUFBRSxFQUFFO0lBQ2xFLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUztTQUNuQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7U0FDbEIsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssTUFBTSxDQUFDLENBQUE7SUFFOUIsTUFBTSxZQUFZLEdBQUcsUUFBUTtTQUMxQixHQUFHLENBQ0YsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUNMLHVDQUF1QyxJQUFBLGNBQU0sRUFDM0MsRUFBRSxDQUNILGtDQUFrQyxFQUFFLFdBQVcsQ0FDbkQ7U0FDQSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7SUFFYixNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUU7UUFDdkMsTUFBTSxDQUFDLEdBQUcsSUFBQSxjQUFNLEVBQUMsRUFBRSxDQUFDLENBQUE7UUFDcEIsTUFBTSxRQUFRLEdBQUcsSUFBQSx1QkFBUyxFQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsQ0FBQTtRQUN0RCxNQUFNLFVBQVUsR0FBRyxJQUFBLHVCQUFTLEVBQUMsWUFBWSxFQUFFLGVBQWUsQ0FBQyxDQUFBO1FBQzNELE1BQU0sY0FBYyxHQUFHLElBQUEsdUJBQVMsRUFBQyxZQUFZLEVBQUUsbUJBQW1CLENBQUMsQ0FBQTtRQUVuRSxPQUFPO1lBQ0MsQ0FBQyxpQkFBaUIsQ0FBQzs7d0JBRVAsQ0FBQzs7TUFFbkIsUUFBUTtNQUNSLFVBQVU7TUFDVixjQUFjOzs7Ozs7Ozs7b0ZBU2dFLEVBQUU7O21DQUVuRCxDQUFDOzs7Ozs7O2lDQU9ILENBQUM7Ozs7Ozs7OzswQkFTUixDQUFDOzs7a0NBR08sRUFBRTs7Ozs7ZUFLckIsQ0FBQztZQUNKLENBQUMsc0JBQXNCLENBQUM7Ozs7Ozs7OztpQkFTbkIsQ0FBQzs7Q0FFakIsQ0FBQTtJQUNDLENBQUMsQ0FBQyxDQUFBO0lBRUYsT0FBTztFQUNQLFlBQVk7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBaUVaLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO0NBQ3RCLENBQUE7QUFDRCxDQUFDLENBQUE7QUFqSlksUUFBQSxnQkFBZ0Isb0JBaUo1QiJ9
263
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0UHJpc21hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3Byb2plY3RzR2VuZXJhdGlvbi9nZW5lcmF0b3JzL2ZpbGVUZW1wbGF0ZXMvYmFjay9lbnZpcm9ubWVudC9zcmMvY2xpZW50cy9nZXRQcmlzbWEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQXFDO0FBQ3JDLDREQUF1RDtBQUd2RCxNQUFNLGdCQUFnQixHQUFHLENBQ3ZCLEVBQVUsRUFDVixFQUFXLEVBQ0gsRUFBRTtJQUNWLE1BQU0sQ0FBQyxHQUFHLElBQUEsY0FBTSxFQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQ3BCLE1BQU0sUUFBUSxHQUFHLElBQUEsdUJBQVMsRUFBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLENBQUE7SUFDdEQsTUFBTSxVQUFVLEdBQUcsSUFBQSx1QkFBUyxFQUFDLFlBQVksRUFBRSxlQUFlLENBQUMsQ0FBQTtJQUMzRCxNQUFNLGNBQWMsR0FBRyxJQUFBLHVCQUFTLEVBQUMsWUFBWSxFQUFFLG1CQUFtQixDQUFDLENBQUE7SUFFbkUsSUFBSSxFQUFFLEVBQUU7UUFDTixPQUFPO2NBQ0csQ0FBQyx1Q0FBdUMsQ0FBQzs7d0JBRS9CLENBQUM7O01BRW5CLFFBQVE7TUFDUixVQUFVO01BQ1YsY0FBYzs7Ozs7Ozs7O29GQVNnRSxFQUFFOzttQ0FFbkQsQ0FBQzs7Ozs7OztpQ0FPSCxDQUFDOzs7Ozs7Ozs7MEJBU1IsQ0FBQzs7O2tDQUdPLEVBQUU7Ozs7O2NBS3RCLENBQUMsWUFBWSxDQUFDO2VBQ2IsQ0FBQztZQUNKLENBQUMsdUNBQXVDLENBQUM7WUFDekMsQ0FBQyx3QkFBd0IsQ0FBQzs7O2lCQUdyQixDQUFDOztDQUVqQixDQUFBO0tBQ0U7SUFFRCxPQUFPO1lBQ0csQ0FBQyxpQkFBaUIsQ0FBQzs7d0JBRVAsQ0FBQzs7TUFFbkIsUUFBUTtNQUNSLFVBQVU7TUFDVixjQUFjOzs7Ozs7Ozs7b0ZBU2dFLEVBQUU7O21DQUVuRCxDQUFDOzs7Ozs7O2lDQU9ILENBQUM7Ozs7Ozs7OzswQkFTUixDQUFDOzs7a0NBR08sRUFBRTs7Ozs7ZUFLckIsQ0FBQztZQUNKLENBQUMsc0JBQXNCLENBQUM7Ozs7Ozs7OztpQkFTbkIsQ0FBQzs7Q0FFakIsQ0FBQTtBQUNELENBQUMsQ0FBQTtBQUVNLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxJQUErQixFQUFFLFdBQW9CLEVBQUUsRUFBRTtJQUN4RixNQUFNLEVBQUUsR0FBRyxDQUFDLFdBQVcsYUFBWCxXQUFXLGNBQVgsV0FBVyxHQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUNsQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVM7U0FDbkMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1NBQ2xCLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxDQUFBO0lBRTlCLE1BQU0sWUFBWSxHQUFHLFFBQVE7U0FDMUIsR0FBRyxDQUNGLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FDTCx1Q0FBdUMsSUFBQSxjQUFNLEVBQzNDLEVBQUUsQ0FDSCxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsMEJBQTBCLEVBQUUsU0FBUyxJQUFJLENBQ3RGO1NBQ0EsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBRWIsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBRTVFLE1BQU0sVUFBVSxHQUFHLEVBQUU7UUFDbkIsQ0FBQyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBdURMO1FBQ0csQ0FBQyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBNkRMLENBQUE7SUFFQyxNQUFNLFNBQVMsR0FBRyxFQUFFO1FBQ2xCLENBQUMsQ0FBQztDQUNMO1FBQ0csQ0FBQyxDQUFDO0NBQ0wsQ0FBQTtJQUVDLE9BQU87RUFDUCxZQUFZOzs7RUFHWixTQUFTO0VBQ1QsVUFBVTtFQUNWLFlBQVk7Q0FDYixDQUFBO0FBQ0QsQ0FBQyxDQUFBO0FBdkpZLFFBQUEsZ0JBQWdCLG9CQXVKNUIifQ==
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.writeClientPackageStubsTmpl = void 0;
4
+ const writeClientPackageStubsTmpl = (args) => {
5
+ const extraDbs = args.system.dataBases
6
+ .map((d) => d.name)
7
+ .filter((d) => d !== 'main');
8
+ return `import {existsSync, writeFileSync} from 'node:fs';
9
+ import {join} from 'node:path';
10
+
11
+ const extraDatabases = ${JSON.stringify(extraDbs)};
12
+
13
+ const writeStub = (dir: string, packageName: string): void => {
14
+ const clientTs = join(dir, 'client.ts');
15
+ if (!existsSync(clientTs)) {
16
+ return;
17
+ }
18
+ writeFileSync(
19
+ join(dir, 'package.json'),
20
+ JSON.stringify({name: packageName, types: './client.ts'}) + '\\n',
21
+ );
22
+ };
23
+
24
+ const shardsOnly = process.argv.includes('--shards-only');
25
+
26
+ if (shardsOnly) {
27
+ writeStub('prisma/shards/build', '@prisma/shards/build');
28
+ } else {
29
+ for (const db of extraDatabases) {
30
+ writeStub(
31
+ join('prisma', 'databases', db, 'client'),
32
+ \`@prisma/\${db}/client\`,
33
+ );
34
+ }
35
+ }
36
+ `;
37
+ };
38
+ exports.writeClientPackageStubsTmpl = writeClientPackageStubsTmpl;
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGVDbGllbnRQYWNrYWdlU3R1YnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvcHJvamVjdHNHZW5lcmF0aW9uL2dlbmVyYXRvcnMvZmlsZVRlbXBsYXRlcy9iYWNrL2Vudmlyb25tZW50L3NyYy9pbml0L3ByaXNtYS93cml0ZUNsaWVudFBhY2thZ2VTdHVicy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFTyxNQUFNLDJCQUEyQixHQUFHLENBQUMsSUFBK0IsRUFBVSxFQUFFO0lBQ3JGLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUztTQUNuQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7U0FDbEIsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssTUFBTSxDQUFDLENBQUE7SUFFOUIsT0FBTzs7O3lCQUdnQixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXlCaEQsQ0FBQTtBQUNELENBQUMsQ0FBQTtBQWxDWSxRQUFBLDJCQUEyQiwrQkFrQ3ZDIn0=
@@ -4,7 +4,9 @@ exports.prismaServiceBaseClassTmpl = void 0;
4
4
  const cases_1 = require("../../../../../../utils/cases");
5
5
  const pluralize_1 = require("pluralize");
6
6
  const utils_1 = require("../../../../../utils");
7
- const prismaServiceBaseClassTmpl = ({ entity, }) => {
7
+ const detectPrismaMajorVersion_1 = require("../../../../../utils/detectPrismaMajorVersion");
8
+ const storage_1 = require("../../../../../builders/storage");
9
+ const prismaServiceBaseClassTmpl = ({ entity, options, }) => {
8
10
  const contextName = 'Context';
9
11
  const forbiddenForUserFields = entity.fields.filter((f) => !f.updatableByUser && f.name !== 'search');
10
12
  const requiredForDbButNotForUserFields = entity.fields.filter((f) => f.required && !f.requiredOnInput && f.name !== 'id');
@@ -13,43 +15,46 @@ const prismaServiceBaseClassTmpl = ({ entity, }) => {
13
15
  .filter((f) => !f.hidden);
14
16
  const isSharded = entity.sharded && entity.database === 'main';
15
17
  const prismaCtxKey = entity.database === 'main' ? 'prisma' : `prisma${(0, cases_1.pascal)(entity.database)}`;
16
- const isExternalSearch = entity.externalSearch;
18
+ const storage = entity.storage;
19
+ const isHybridExternalSearch = (0, storage_1.isStorageExternalSearch)(storage);
20
+ const searchPrefix = (0, storage_1.getSearchServicePrefix)(storage);
17
21
  const isDocument = entity.type === 'document';
18
22
  const isSumRegistry = entity.type === 'sumRegistry';
19
23
  const isInfoRegistry = entity.type === 'infoRegistry';
20
24
  const isClearFromDB = entity.clearDBAfter.length > 0;
21
- const isPrismaDelegatable = !entity.elasticOnly && !isSharded;
25
+ const isPrismaDelegatable = (0, storage_1.usesPrismaDelegate)(storage) && !isSharded;
26
+ const isExternalStoreOnly = (0, storage_1.isStorageElasticOnly)(storage) || (0, storage_1.isStorageClickHouseOnly)(storage);
22
27
  let extendedType = 'BaseService';
23
- if (isExternalSearch) {
24
- extendedType = 'ElasticBaseSearch';
28
+ if (isHybridExternalSearch && searchPrefix) {
29
+ extendedType = `${searchPrefix}BaseSearch`;
25
30
  }
26
31
  if (isSharded) {
27
32
  extendedType = 'ShardsService';
28
33
  }
29
34
  if (isDocument) {
30
35
  extendedType = 'DocumentBaseService';
31
- if (isExternalSearch) {
32
- extendedType = 'ElasticDocumentBaseService';
36
+ if (isHybridExternalSearch && searchPrefix) {
37
+ extendedType = `${searchPrefix}DocumentBaseService`;
33
38
  }
34
39
  }
35
40
  if (isSumRegistry) {
36
41
  extendedType = 'SumRegistryService';
37
- if (isExternalSearch) {
38
- extendedType = 'ElasticSumRegistryService';
42
+ if (isHybridExternalSearch && searchPrefix) {
43
+ extendedType = `${searchPrefix}SumRegistryService`;
39
44
  }
40
45
  }
41
46
  if (isInfoRegistry) {
42
47
  extendedType = 'InfoRegistryService';
43
- if (isExternalSearch) {
44
- extendedType = 'ElasticInfoRegistryService';
48
+ if (isHybridExternalSearch && searchPrefix) {
49
+ extendedType = `${searchPrefix}InfoRegistryService`;
45
50
  }
46
51
  }
47
52
  if (isSharded) {
48
53
  extendedType = 'ShardsService';
49
- if (isExternalSearch) {
50
- extendedType = 'ElasticShardsService';
54
+ if (isHybridExternalSearch && searchPrefix) {
55
+ extendedType = `${searchPrefix}ShardsService`;
51
56
  if (isClearFromDB) {
52
- extendedType = 'ElasticClearDBShardsService';
57
+ extendedType = `${searchPrefix}ClearDBShardsService`;
53
58
  }
54
59
  }
55
60
  if (isDocument) {
@@ -59,9 +64,12 @@ const prismaServiceBaseClassTmpl = ({ entity, }) => {
59
64
  }
60
65
  }
61
66
  }
62
- if (entity.elasticOnly) {
67
+ if ((0, storage_1.isStorageElasticOnly)(storage)) {
63
68
  extendedType = 'ElasticOnlyService';
64
69
  }
70
+ if ((0, storage_1.isStorageClickHouseOnly)(storage)) {
71
+ extendedType = 'ClickHouseOnlyService';
72
+ }
65
73
  const additionalImports = [];
66
74
  let registries = '';
67
75
  if (isDocument) {
@@ -78,9 +86,12 @@ export interface ${(0, cases_1.pascalSingular)(document.name)}RegistryEntries {$
78
86
  `;
79
87
  }
80
88
  if (isPrismaDelegatable) {
89
+ const isPrisma7 = (0, detectPrismaMajorVersion_1.detectPrismaMajorVersion)(options.detachedBackProject) >= 7;
81
90
  const prismaMod = entity.database === 'main'
82
91
  ? '@prisma/client'
83
- : `../../../../prisma/databases/${entity.database}/client`;
92
+ : isPrisma7
93
+ ? `@prisma/${entity.database}/client`
94
+ : `../../../../prisma/databases/${entity.database}/client`;
84
95
  additionalImports.push(`import {Prisma} from '${prismaMod}';`);
85
96
  }
86
97
  const serviceName = `${(0, cases_1.pascal)(entity.name)}Service`;
@@ -89,7 +100,7 @@ export interface ${(0, cases_1.pascalSingular)(document.name)}RegistryEntries {$
89
100
  MutationUpdate${(0, cases_1.pascalSingular)(entity.name)}Args,
90
101
  MutationRemove${(0, cases_1.pascalSingular)(entity.name)}Args,
91
102
  QueryAll${(0, cases_1.pascalPlural)(entity.name)}Args,
92
- ${(0, cases_1.pascalSingular)(entity.name)},${isExternalSearch ? `
103
+ ${(0, cases_1.pascalSingular)(entity.name)},${isHybridExternalSearch ? `
93
104
  External${(0, cases_1.pascal)(entity.name)}SearchTracking,` : ''}
94
105
  } from '../../../generated/graphql';
95
106
  import {${contextName}} from '../types';
@@ -143,7 +154,7 @@ export class ${serviceName} extends ${extendedType}<
143
154
  QueryAll${(0, cases_1.pascalPlural)(entity.name)}Args,
144
155
  Autodefinable${(0, cases_1.pascalSingular)(entity.name)}Keys,
145
156
  ForbidenForUser${(0, cases_1.pascalSingular)(entity.name)}Keys,
146
- RequiredDbNotUser${(0, cases_1.pascalSingular)(entity.name)}Keys${isExternalSearch ? `,
157
+ RequiredDbNotUser${(0, cases_1.pascalSingular)(entity.name)}Keys${isHybridExternalSearch ? `,
147
158
  External${(0, cases_1.pascal)(entity.name)}SearchTracking` : ''}${isDocument ? `,
148
159
  ${(0, cases_1.pascalSingular)(entity.name)}RegistryEntries` : ''}${isPrismaDelegatable ? `,
149
160
  Prisma.${(0, cases_1.pascalSingular)(entity.name)}Delegate<any>` : ''}
@@ -152,7 +163,7 @@ export class ${serviceName} extends ${extendedType}<
152
163
 
153
164
  constructor(public override ctx: Context) {
154
165
  super(ctx,${isSharded ? ` '${(0, cases_1.camelSingular)(entity.name)}'${entity.externalSearchName ? `, 'external${(0, cases_1.pascal)(entity.name)}SearchTracking'` : ''},`
155
- : entity.elasticOnly ? '' : ` ctx.${prismaCtxKey}.${(0, cases_1.camelSingular)(entity.name)},${isExternalSearch ? ` ctx.${prismaCtxKey}.external${(0, cases_1.pascal)(entity.name)}SearchTracking,` : ''}`} config);
166
+ : isExternalStoreOnly ? '' : ` ctx.${prismaCtxKey}.${(0, cases_1.camelSingular)(entity.name)},${isHybridExternalSearch ? ` ctx.${prismaCtxKey}.external${(0, cases_1.pascal)(entity.name)}SearchTracking,` : ''}`} config);
156
167
  initBuiltInHooks(this);
157
168
  initUserHooks(this);${getDefaultableFields().length > 0 ? `
158
169
 
@@ -182,4 +193,4 @@ ${(0, utils_1.pad)(4)(getDefaultableFields()
182
193
  `;
183
194
  };
184
195
  exports.prismaServiceBaseClassTmpl = prismaServiceBaseClassTmpl;
185
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvcHJvamVjdHNHZW5lcmF0aW9uL2dlbmVyYXRvcnMvZmlsZVRlbXBsYXRlcy9iYWNrL3NlcnZpY2VzL2VudGl0eS9jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5REFLc0M7QUFDdEMseUNBQWtDO0FBRWxDLGdEQUFnRTtBQUd6RCxNQUFNLDBCQUEwQixHQUFHLENBQUMsRUFDekMsTUFBTSxHQUNtQixFQUFFLEVBQUU7SUFDN0IsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFBO0lBRTdCLE1BQU0sc0JBQXNCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQ2pELENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLENBQ2pELENBQUE7SUFDRCxNQUFNLGdDQUFnQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUMzRCxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsQ0FBQyxlQUFlLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQzNELENBQUE7SUFFRCxNQUFNLG9CQUFvQixHQUFHLEdBQUcsRUFBRSxDQUNoQyxNQUFNLENBQUMsTUFBTTtTQUNWLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLDZCQUE2QixDQUFDO1NBQzlDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUE7SUFFN0IsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUMsUUFBUSxLQUFLLE1BQU0sQ0FBQztJQUMvRCxNQUFNLFlBQVksR0FDaEIsTUFBTSxDQUFDLFFB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
196
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvcHJvamVjdHNHZW5lcmF0aW9uL2dlbmVyYXRvcnMvZmlsZVRlbXBsYXRlcy9iYWNrL3NlcnZpY2VzL2VudGl0eS9jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5REFLc0M7QUFDdEMseUNBQWtDO0FBRWxDLGdEQUFnRTtBQUVoRSw0RkFBc0Y7QUFDdEYsNkRBTXdDO0FBRWpDLE1BQU0sMEJBQTBCLEdBQUcsQ0FBQyxFQUN6QyxNQUFNLEVBQ04sT0FBTyxHQUNrQixFQUFFLEVBQUU7SUFDN0IsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFBO0lBRTdCLE1BQU0sc0JBQXNCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQ2pELENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLENBQ2pELENBQUE7SUFDRCxNQUFNLGdDQUFnQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUMzRCxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsQ0FBQyxlQUFlLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQzNELENBQUE7SUFFRCxNQUFNLG9CQUFvQixHQUFHLEdBQUcsRUFBRSxDQUNoQyxNQUFNLENBQUMsTUFBTTtTQUNWLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLDZCQUE2QixDQUFDO1NBQzlDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUE7SUFFN0IsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUMsUUFBUSxLQUFLLE1BQU0sQ0FB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
@@ -29,6 +29,7 @@ const R = __importStar(require("ramda"));
29
29
  const metaUtils_1 = require("../../../../../metaUtils");
30
30
  const cases_1 = require("../../../../../../utils/cases");
31
31
  const utils_1 = require("../../../../../utils");
32
+ const storage_1 = require("../../../../../builders/storage");
32
33
  const arrToStr = (val) => R.trim((0, utils_1.pad)(1)(JSON.stringify(val, undefined, ' ').replaceAll('"', '\'')));
33
34
  const getStrNames = R.compose(arrToStr, R.map(R.path(['name'])));
34
35
  const autogeneratedStringId = (entity) => (0, metaUtils_1.getKeyField)(entity).autoGenerated && (0, metaUtils_1.getKeyField)(entity).type === 'string';
@@ -78,6 +79,10 @@ const configTmpl = ({ entity, options, }, allSumRegistries, allInfoRegistries) =
78
79
  }
79
80
  const registrarDependedRegistries = docRegistries.filter((r) => r.registrarDepended);
80
81
  const externalSearchDeps = registrarDependedRegistries.filter(r => r.externalSearchName).map((r) => [(0, pluralize_1.singular)(r.name), (0, pluralize_1.singular)(r.externalSearchName)]);
82
+ const storage = entity.storage;
83
+ const searchEngine = (0, storage_1.getSearchEngine)(storage);
84
+ const externalSearch = (0, storage_1.getConfigExternalSearch)(storage);
85
+ const searchEngineLiteral = searchEngine === null ? 'null' : `'${searchEngine}'`;
81
86
  return `import Entity from '../../../types/Entity';
82
87
  import {${configType}} from '../types';
83
88
 
@@ -86,7 +91,9 @@ const config: ${configType} = {
86
91
  autogeneratedStringId: ${autogeneratedStringId(entity)},
87
92
  auditable: ${entity.auditable},
88
93
  withSearch: ${!!entity.fields.find((f) => f.name === 'search')},
89
- externalSearch: ${entity.externalSearch},
94
+ storage: '${storage}',
95
+ searchEngine: ${searchEngineLiteral},
96
+ externalSearch: ${externalSearch},
90
97
  sharded: ${isSharded},
91
98
  dateFields: ${getStrNames(dateFields)},
92
99
  otherFields: ${getStrNames(notDateFields)},
@@ -109,4 +116,4 @@ export default config;
109
116
  `;
110
117
  };
111
118
  exports.configTmpl = configTmpl;
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3Byb2plY3RzR2VuZXJhdGlvbi9nZW5lcmF0b3JzL2ZpbGVUZW1wbGF0ZXMvYmFjay9zZXJ2aWNlcy9lbnRpdHkvY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEseUNBQWtDO0FBQ2xDLHlDQUEwQjtBQUkxQix3REFBb0Q7QUFDcEQseURBQTJFO0FBQzNFLGdEQUF3QztBQUV4QyxNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFBLFdBQUcsRUFBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFDekcsTUFBTSxXQUFXLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFFaEUsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLE1BQWMsRUFBRSxFQUFFLENBQy9DLElBQUEsdUJBQVcsRUFBQyxNQUFNLENBQUMsQ0FBQyxhQUFhLElBQUksSUFBQSx1QkFBVyxFQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLENBQUE7QUFFckUsTUFBTSxVQUFVLEdBQUcsQ0FBQyxFQUN6QixNQUFNLEVBQ04sT0FBTyxHQUNrQixFQUN6QixnQkFBMEMsRUFDMUMsaUJBQTRDLEVBQzVDLEVBQUU7SUFDRixNQUFNLHNCQUFzQixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUNqRCxDQUFDLENBQUMsRUFBRSxFQUFF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
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3Byb2plY3RzR2VuZXJhdGlvbi9nZW5lcmF0b3JzL2ZpbGVUZW1wbGF0ZXMvYmFjay9zZXJ2aWNlcy9lbnRpdHkvY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEseUNBQWtDO0FBQ2xDLHlDQUEwQjtBQUkxQix3REFBb0Q7QUFDcEQseURBQTJFO0FBQzNFLGdEQUF3QztBQUN4Qyw2REFBd0Y7QUFFeEYsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBQSxXQUFHLEVBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBQ3pHLE1BQU0sV0FBVyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBRWhFLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxNQUFjLEVBQUUsRUFBRSxDQUMvQyxJQUFBLHVCQUFXLEVBQUMsTUFBTSxDQUFDLENBQUMsYUFBYSxJQUFJLElBQUEsdUJBQVcsRUFBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFBO0FBRXJFLE1BQU0sVUFBVSxHQUFHLENBQUMsRUFDekIsTUFBTSxFQUNOLE9BQU8sR0FDa0IsRUFDekIsZ0JBQTBDLEVBQzFDLGlCQUE0QyxFQUM1QyxFQUFFO0lBQ0YsTUFBTSxzQkFBc0IsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FDakQsQ0FBQyxD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
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.extraDbMigrationEnvVar = exports.genShardsDeployPrismaConfig = exports.genShardsPrismaConfig = exports.genExtraDbDeployPrismaConfig = exports.genExtraDbPrismaConfig = exports.genMainDeployPrismaConfig = exports.genMainPrismaConfig = exports.genPrismaConfig = void 0;
4
+ const databaseMeta_1 = require("../../../utils/databaseMeta");
5
+ const genPrismaConfig = ({ schema, database }) => {
6
+ const migrationEnv = (0, databaseMeta_1.prismaDatasourceMigrationEnvVar)(database);
7
+ const defaultDb = (0, databaseMeta_1.postgresUrlDatabaseName)(database);
8
+ return `import {defineConfig} from 'prisma/config';
9
+
10
+ export default defineConfig({
11
+ schema: '${schema}',
12
+ datasource: {
13
+ url: process.env['${migrationEnv}'] ?? 'postgresql://postgres:password@localhost:5432/${defaultDb}',
14
+ },
15
+ });
16
+ `;
17
+ };
18
+ exports.genPrismaConfig = genPrismaConfig;
19
+ const genMainPrismaConfig = () => (0, exports.genPrismaConfig)({ schema: 'schema.prisma', database: 'main' });
20
+ exports.genMainPrismaConfig = genMainPrismaConfig;
21
+ const genMainDeployPrismaConfig = () => (0, exports.genPrismaConfig)({ schema: 'deployConnection.prisma', database: 'main' });
22
+ exports.genMainDeployPrismaConfig = genMainDeployPrismaConfig;
23
+ const genExtraDbPrismaConfig = (database) => (0, exports.genPrismaConfig)({ schema: 'schema.prisma', database });
24
+ exports.genExtraDbPrismaConfig = genExtraDbPrismaConfig;
25
+ const genExtraDbDeployPrismaConfig = (database) => (0, exports.genPrismaConfig)({ schema: 'deployConnection.prisma', database });
26
+ exports.genExtraDbDeployPrismaConfig = genExtraDbDeployPrismaConfig;
27
+ const genShardsPrismaConfig = () => (0, exports.genPrismaConfig)({ schema: 'schema.prisma', database: 'main' });
28
+ exports.genShardsPrismaConfig = genShardsPrismaConfig;
29
+ const genShardsDeployPrismaConfig = () => (0, exports.genPrismaConfig)({ schema: 'deployConnection.prisma', database: 'main' });
30
+ exports.genShardsDeployPrismaConfig = genShardsDeployPrismaConfig;
31
+ /** Used in tests to assert env var naming for extra DBs. */
32
+ const extraDbMigrationEnvVar = (database) => `DATABASE_${(0, databaseMeta_1.databaseNameToEnvSuffix)(database)}_MIGRATION_URI`;
33
+ exports.extraDbMigrationEnvVar = extraDbMigrationEnvVar;
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuUHJpc21hQ29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3Byb2plY3RzR2VuZXJhdGlvbi9nZW5lcmF0b3JzL3ByaXNtYS9zY2hlbWUvZ2VuUHJpc21hQ29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDhEQUlvQztBQU83QixNQUFNLGVBQWUsR0FBRyxDQUFDLEVBQUMsTUFBTSxFQUFFLFFBQVEsRUFBeUIsRUFBVSxFQUFFO0lBQ3BGLE1BQU0sWUFBWSxHQUFHLElBQUEsOENBQStCLEVBQUMsUUFBUSxDQUFDLENBQUE7SUFDOUQsTUFBTSxTQUFTLEdBQUcsSUFBQSxzQ0FBdUIsRUFBQyxRQUFRLENBQUMsQ0FBQTtJQUVuRCxPQUFPOzs7YUFHSSxNQUFNOzt3QkFFSyxZQUFZLHdEQUF3RCxTQUFTOzs7Q0FHcEcsQ0FBQTtBQUNELENBQUMsQ0FBQTtBQWJZLFFBQUEsZUFBZSxtQkFhM0I7QUFFTSxNQUFNLG1CQUFtQixHQUFHLEdBQVcsRUFBRSxDQUM5QyxJQUFBLHVCQUFlLEVBQUMsRUFBQyxNQUFNLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUMsQ0FBQyxDQUFBO0FBRGpELFFBQUEsbUJBQW1CLHVCQUM4QjtBQUV2RCxNQUFNLHlCQUF5QixHQUFHLEdBQVcsRUFBRSxDQUNwRCxJQUFBLHVCQUFlLEVBQUMsRUFBQyxNQUFNLEVBQUUseUJBQXlCLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBQyxDQUFDLENBQUE7QUFEM0QsUUFBQSx5QkFBeUIsNkJBQ2tDO0FBRWpFLE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxRQUFnQixFQUFVLEVBQUUsQ0FDakUsSUFBQSx1QkFBZSxFQUFDLEVBQUMsTUFBTSxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUMsQ0FBQyxDQUFBO0FBRHpDLFFBQUEsc0JBQXNCLDBCQUNtQjtBQUUvQyxNQUFNLDRCQUE0QixHQUFHLENBQUMsUUFBZ0IsRUFBVSxFQUFFLENBQ3ZFLElBQUEsdUJBQWUsRUFBQyxFQUFDLE1BQU0sRUFBRSx5QkFBeUIsRUFBRSxRQUFRLEVBQUMsQ0FBQyxDQUFBO0FBRG5ELFFBQUEsNEJBQTRCLGdDQUN1QjtBQUV6RCxNQUFNLHFCQUFxQixHQUFHLEdBQVcsRUFBRSxDQUNoRCxJQUFBLHVCQUFlLEVBQUMsRUFBQyxNQUFNLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUMsQ0FBQyxDQUFBO0FBRGpELFFBQUEscUJBQXFCLHlCQUM0QjtBQUV2RCxNQUFNLDJCQUEyQixHQUFHLEdBQVcsRUFBRSxDQUN0RCxJQUFBLHVCQUFlLEVBQUMsRUFBQyxNQUFNLEVBQUUseUJBQXlCLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBQyxDQUFDLENBQUE7QUFEM0QsUUFBQSwyQkFBMkIsK0JBQ2dDO0FBRXhFLDREQUE0RDtBQUNyRCxNQUFNLHNCQUFzQixHQUFHLENBQUMsUUFBZ0IsRUFBVSxFQUFFLENBQ2pFLFlBQVksSUFBQSxzQ0FBdUIsRUFBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUE7QUFEbEQsUUFBQSxzQkFBc0IsMEJBQzRCIn0=
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const jest_without_globals_1 = require("jest-without-globals");
4
+ const genPrismaConfig_1 = require("./genPrismaConfig");
5
+ describe('genPrismaConfig', () => {
6
+ it('generates main prisma.config.ts', () => {
7
+ const result = (0, genPrismaConfig_1.genMainPrismaConfig)();
8
+ (0, jest_without_globals_1.expect)(result).toContain("schema: 'schema.prisma'");
9
+ (0, jest_without_globals_1.expect)(result).toContain("DATABASE_MAIN_MIGRATION_URI");
10
+ (0, jest_without_globals_1.expect)(result).toContain('postgresql://postgres:password@localhost:5432/postgres');
11
+ });
12
+ it('generates main deploy.prisma.config.ts', () => {
13
+ const result = (0, genPrismaConfig_1.genMainDeployPrismaConfig)();
14
+ (0, jest_without_globals_1.expect)(result).toContain("schema: 'deployConnection.prisma'");
15
+ (0, jest_without_globals_1.expect)(result).toContain("DATABASE_MAIN_MIGRATION_URI");
16
+ });
17
+ it('generates extra DB config with correct env var', () => {
18
+ const result = (0, genPrismaConfig_1.genExtraDbPrismaConfig)('bsDocuments');
19
+ (0, jest_without_globals_1.expect)(result).toContain(`process.env['${(0, genPrismaConfig_1.extraDbMigrationEnvVar)('bsDocuments')}']`);
20
+ (0, jest_without_globals_1.expect)(result).toContain('postgresql://postgres:password@localhost:5432/bs_documents');
21
+ });
22
+ it('generates extra DB deploy config', () => {
23
+ const result = (0, genPrismaConfig_1.genExtraDbDeployPrismaConfig)('bsDocuments');
24
+ (0, jest_without_globals_1.expect)(result).toContain("schema: 'deployConnection.prisma'");
25
+ (0, jest_without_globals_1.expect)(result).toContain(`DATABASE_BS_DOCUMENTS_MIGRATION_URI`);
26
+ });
27
+ });
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuUHJpc21hQ29uZmlnLnNwZWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcHJvamVjdHNHZW5lcmF0aW9uL2dlbmVyYXRvcnMvcHJpc21hL3NjaGVtZS9nZW5QcmlzbWFDb25maWcuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLCtEQUEyQztBQUMzQyx1REFNMEI7QUFFMUIsUUFBUSxDQUFDLGlCQUFpQixFQUFFLEdBQUcsRUFBRTtJQUMvQixFQUFFLENBQUMsaUNBQWlDLEVBQUUsR0FBRyxFQUFFO1FBQ3pDLE1BQU0sTUFBTSxHQUFHLElBQUEscUNBQW1CLEdBQUUsQ0FBQTtRQUNwQyxJQUFBLDZCQUFNLEVBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDLHlCQUF5QixDQUFDLENBQUE7UUFDbkQsSUFBQSw2QkFBTSxFQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFBO1FBQ3ZELElBQUEsNkJBQU0sRUFBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUMsd0RBQXdELENBQUMsQ0FBQTtJQUNwRixDQUFDLENBQUMsQ0FBQTtJQUVGLEVBQUUsQ0FBQyx3Q0FBd0MsRUFBRSxHQUFHLEVBQUU7UUFDaEQsTUFBTSxNQUFNLEdBQUcsSUFBQSwyQ0FBeUIsR0FBRSxDQUFBO1FBQzFDLElBQUEsNkJBQU0sRUFBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUMsbUNBQW1DLENBQUMsQ0FBQTtRQUM3RCxJQUFBLDZCQUFNLEVBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDLDZCQUE2QixDQUFDLENBQUE7SUFDekQsQ0FBQyxDQUFDLENBQUE7SUFFRixFQUFFLENBQUMsZ0RBQWdELEVBQUUsR0FBRyxFQUFFO1FBQ3hELE1BQU0sTUFBTSxHQUFHLElBQUEsd0NBQXNCLEVBQUMsYUFBYSxDQUFDLENBQUE7UUFDcEQsSUFBQSw2QkFBTSxFQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsSUFBQSx3Q0FBc0IsRUFBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDbkYsSUFBQSw2QkFBTSxFQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsQ0FBQyw0REFBNEQsQ0FBQyxDQUFBO0lBQ3hGLENBQUMsQ0FBQyxDQUFBO0lBRUYsRUFBRSxDQUFDLGtDQUFrQyxFQUFFLEdBQUcsRUFBRTtRQUMxQyxNQUFNLE1BQU0sR0FBRyxJQUFBLDhDQUE0QixFQUFDLGFBQWEsQ0FBQyxDQUFBO1FBQzFELElBQUEsNkJBQU0sRUFBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUMsbUNBQW1DLENBQUMsQ0FBQTtRQUM3RCxJQUFBLDZCQUFNLEVBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDLHFDQUFxQyxDQUFDLENBQUE7SUFDakUsQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDLENBQUMsQ0FBQSJ9
@@ -24,12 +24,14 @@ const collectCrossDatabaseEntityLinkViolations = (entities, allEntities) => {
24
24
  }
25
25
  return lines;
26
26
  };
27
+ const isPrisma7 = (prismaMajor) => (prismaMajor !== null && prismaMajor !== void 0 ? prismaMajor : 6) >= 7;
27
28
  const genPrismaSchemaForEntitiesWithClientAdnDb = (args, opts) => {
28
- const { database, forShards } = opts;
29
+ const { database, forShards, prismaMajor } = opts;
29
30
  const { entities, allLinks, allEntities } = args;
30
31
  const effectiveForShards = database === 'main' && forShards;
32
+ const p7 = isPrisma7(prismaMajor);
31
33
  const ent = entities
32
- .filter((e) => !e.elasticOnly)
34
+ .filter((e) => e.storage !== 'elastic' && e.storage !== 'clickhouse')
33
35
  .filter((e) => {
34
36
  if (database !== 'main') {
35
37
  return e.database === database;
@@ -42,9 +44,14 @@ const genPrismaSchemaForEntitiesWithClientAdnDb = (args, opts) => {
42
44
  `Replace addLinkField with addViewLinkField for these links in metadata:\n${crossDbViolations.join('\n')}`);
43
45
  }
44
46
  const joined = (0, genPrismaSchemaForEntities_1.genPrismaSchemaForEntities)(ent, allLinks, effectiveForShards, allEntities);
45
- const writeEnv = (0, databaseMeta_1.prismaDatasourceWriteEnvVar)(database);
47
+ const provider = p7 ? 'prisma-client' : 'prisma-client-js';
48
+ const previewFeatures = p7 ? '' : '\n previewFeatures = ["metrics"]';
46
49
  let outputLine = '';
47
- if (database === 'main' && effectiveForShards) {
50
+ if (p7 && database === 'main' && !effectiveForShards) {
51
+ outputLine = `
52
+ output = "./generated/client"`;
53
+ }
54
+ else if (database === 'main' && effectiveForShards) {
48
55
  outputLine = `
49
56
  output = "./build"`;
50
57
  }
@@ -52,21 +59,31 @@ const genPrismaSchemaForEntitiesWithClientAdnDb = (args, opts) => {
52
59
  outputLine = `
53
60
  output = "./client"`;
54
61
  }
62
+ const datasourceBlock = p7
63
+ ? `datasource db {
64
+ provider = "postgresql"
65
+ }`
66
+ : `datasource db {
67
+ provider = "postgresql"
68
+ url = env("${(0, databaseMeta_1.prismaDatasourceWriteEnvVar)(database)}")
69
+ }`;
55
70
  return `generator client {
56
- provider = "prisma-client-js"
57
- previewFeatures = ["metrics"]${outputLine}
71
+ provider = "${provider}"${previewFeatures}${outputLine}
58
72
  }
59
73
 
60
- datasource db {
61
- provider = "postgresql"
62
- url = env("${writeEnv}")
63
- }
74
+ ${datasourceBlock}
64
75
 
65
76
  ${joined}`;
66
77
  };
67
78
  exports.genPrismaSchemaForEntitiesWithClientAdnDb = genPrismaSchemaForEntitiesWithClientAdnDb;
68
79
  /** Minimal deploy schema (migrate URL only). */
69
- const genDeployConnectionPrisma = (database) => {
80
+ const genDeployConnectionPrisma = (database, prismaMajor) => {
81
+ if (isPrisma7(prismaMajor)) {
82
+ return `datasource db {
83
+ provider = "postgresql"
84
+ }
85
+ `;
86
+ }
70
87
  const migrationEnv = (0, databaseMeta_1.prismaDatasourceMigrationEnvVar)(database);
71
88
  return `datasource db {
72
89
  provider = "postgresql"
@@ -79,4 +96,4 @@ generator client {
79
96
  `;
80
97
  };
81
98
  exports.genDeployConnectionPrisma = genDeployConnectionPrisma;
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuUHJpc21hU2NoZW1hRm9yRW50aXRpZXNXaXRoQ2xpZW50QWRuRGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcHJvamVjdHNHZW5lcmF0aW9uL2dlbmVyYXRvcnMvcHJpc21hL3NjaGVtZS9nZW5QcmlzbWFTY2hlbWFGb3JFbnRpdGllc1dpdGhDbGllbnRBZG5EYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSw2RUFBdUU7QUFDdkUsOERBR29DO0FBRXBDLE1BQU0sd0NBQXdDLEdBQUcsQ0FDL0MsUUFBa0IsRUFDbEIsV0FBZ0MsRUFDdEIsRUFBRTtJQUNaLE1BQU0sS0FBSyxHQUFhLEVBQUUsQ0FBQTtJQUMxQixLQUFLLE1BQU0sTUFBTSxJQUFJLFFBQVEsRUFBRTtRQUM3QixLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUU7WUFDakMsSUFBSSxLQUFLLENBQUMsUUFBUSxLQUFLLE1BQU0sRUFBRTtnQkFDN0IsU0FBUTthQUNUO1lBQ0QsSUFBSSxLQUFLLENBQUMsWUFBWSxLQUFLLFFBQVEsRUFBRTtnQkFDbkMsU0FBUTthQUNUO1lBQ0QsTUFBTSxNQUFNLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUE7WUFDcEQsSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDWCxTQUFRO2FBQ1Q7WUFDRCxJQUFJLE1BQU0sQ0FBQyxRQUFRLEtBQUssTUFBTSxDQUFDLFFBQVEsRUFBRTtnQkFDdkMsS0FBSyxDQUFDLElBQUksQ0FDUixLQUFLLE1BQU0sQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLElBQUksTUFBTSxLQUFLLENBQUMsY0FBYyxlQUFlLE1BQU0sQ0FBQyxRQUFRLFFBQVEsTUFBTSxDQUFDLFFBQVEsSUFBSSxDQUNsSCxDQUFBO2FBQ0Y7U0FDRjtLQUNGO0lBQ0QsT0FBTyxLQUFLLENBQUE7QUFDZCxDQUFDLENBQUE7QUFZTSxNQUFNLHlDQUF5QyxHQUFHLENBQ3ZELElBQStCLEVBQy9CLElBQThCLEVBQzlCLEVBQUU7SUFDRixNQUFNLEVBQUMsUUFBUSxFQUFFLFNBQVMsRUFBQyxHQUFHLElBQUksQ0FBQTtJQUNsQyxNQUFNLEVBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUMsR0FBRyxJQUFJLENBQUE7SUFFOUMsTUFBTSxrQkFBa0IsR0FBRyxRQUFRLEtBQUssTUFBTSxJQUFJLFNBQVMsQ0FBQTtJQUUzRCxNQUFNLEdBQUcsR0FBRyxRQUFRO1NBQ2pCLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDO1NBQzdCLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1FBQ1osSUFBSSxRQUFRLEtBQUssTUFBTSxFQUFFO1lBQ3ZCLE9BQU8sQ0FBQyxDQUFDLFFBQVEsS0FBSyxRQUFRLENBQUE7U0FDL0I7UUFDRCxPQUFPLENBQUMsQ0FBQyxRQUFRLEtBQUssTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUN0RSxDQUFDLENBQUMsQ0FBQTtJQUVKLE1BQU0saUJBQWlCLEdBQUcsd0NBQXdDLENBQUMsR0FBRyxFQUFFLFdBQVcsQ0FBQyxDQUFBO0lBQ3BGLElBQUksaUJBQWlCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtRQUNoQyxNQUFNLElBQUksS0FBSyxDQUNiLG9HQUFvRztZQUNsRyw0RUFBNEUsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQzdHLENBQUE7S0FDRjtJQUVELE1BQU0sTUFBTSxHQUFHLElBQUEsdURBQTBCLEVBQ3ZDLEdBQUcsRUFDSCxRQUFRLEVBQ1Isa0JBQWtCLEVBQ2xCLFdBQVcsQ0FDWixDQUFBO0lBRUQsTUFBTSxRQUFRLEdBQUcsSUFBQSwwQ0FBMkIsRUFBQyxRQUFRLENBQUMsQ0FBQTtJQUV0RCxJQUFJLFVBQVUsR0FBRyxFQUFFLENBQUE7SUFDbkIsSUFBSSxRQUFRLEtBQUssTUFBTSxJQUFJLGtCQUFrQixFQUFFO1FBQzdDLFVBQVUsR0FBRzt1QkFDTSxDQUFBO0tBQ3BCO1NBQU0sSUFBSSxRQUFRLEtBQUssTUFBTSxFQUFFO1FBQzlCLFVBQVUsR0FBRzt3QkFDTyxDQUFBO0tBQ3JCO0lBRUQsT0FBTzs7aUNBRXdCLFVBQVU7Ozs7O29CQUt2QixRQUFROzs7RUFHMUIsTUFBTSxFQUFFLENBQUE7QUFDVixDQUFDLENBQUE7QUF2RFksUUFBQSx5Q0FBeUMsNkNBdURyRDtBQUVELGdEQUFnRDtBQUN6QyxNQUFNLHlCQUF5QixHQUFHLENBQUMsUUFBZ0IsRUFBVSxFQUFFO0lBQ3BFLE1BQU0sWUFBWSxHQUFHLElBQUEsOENBQStCLEVBQUMsUUFBUSxDQUFDLENBQUE7SUFDOUQsT0FBTzs7b0JBRVcsWUFBWTs7Ozs7O0NBTS9CLENBQUE7QUFDRCxDQUFDLENBQUE7QUFYWSxRQUFBLHlCQUF5Qiw2QkFXckMifQ==
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuUHJpc21hU2NoZW1hRm9yRW50aXRpZXNXaXRoQ2xpZW50QWRuRGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcHJvamVjdHNHZW5lcmF0aW9uL2dlbmVyYXRvcnMvcHJpc21hL3NjaGVtZS9nZW5QcmlzbWFTY2hlbWFGb3JFbnRpdGllc1dpdGhDbGllbnRBZG5EYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSw2RUFBdUU7QUFDdkUsOERBR29DO0FBRXBDLE1BQU0sd0NBQXdDLEdBQUcsQ0FDL0MsUUFBa0IsRUFDbEIsV0FBZ0MsRUFDdEIsRUFBRTtJQUNaLE1BQU0sS0FBSyxHQUFhLEVBQUUsQ0FBQTtJQUMxQixLQUFLLE1BQU0sTUFBTSxJQUFJLFFBQVEsRUFBRTtRQUM3QixLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUU7WUFDakMsSUFBSSxLQUFLLENBQUMsUUFBUSxLQUFLLE1BQU0sRUFBRTtnQkFDN0IsU0FBUTthQUNUO1lBQ0QsSUFBSSxLQUFLLENBQUMsWUFBWSxLQUFLLFFBQVEsRUFBRTtnQkFDbkMsU0FBUTthQUNUO1lBQ0QsTUFBTSxNQUFNLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUE7WUFDcEQsSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDWCxTQUFRO2FBQ1Q7WUFDRCxJQUFJLE1BQU0sQ0FBQyxRQUFRLEtBQUssTUFBTSxDQUFDLFFBQVEsRUFBRTtnQkFDdkMsS0FBSyxDQUFDLElBQUksQ0FDUixLQUFLLE1BQU0sQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLElBQUksTUFBTSxLQUFLLENBQUMsY0FBYyxlQUFlLE1BQU0sQ0FBQyxRQUFRLFFBQVEsTUFBTSxDQUFDLFFBQVEsSUFBSSxDQUNsSCxDQUFBO2FBQ0Y7U0FDRjtLQUNGO0lBQ0QsT0FBTyxLQUFLLENBQUE7QUFDZCxDQUFDLENBQUE7QUFjRCxNQUFNLFNBQVMsR0FBRyxDQUFDLFdBQW9CLEVBQVcsRUFBRSxDQUFDLENBQUMsV0FBVyxhQUFYLFdBQVcsY0FBWCxXQUFXLEdBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFBO0FBRXJFLE1BQU0seUNBQXlDLEdBQUcsQ0FDdkQsSUFBK0IsRUFDL0IsSUFBOEIsRUFDOUIsRUFBRTtJQUNGLE1BQU0sRUFBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBQyxHQUFHLElBQUksQ0FBQTtJQUMvQyxNQUFNLEVBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUMsR0FBRyxJQUFJLENBQUE7SUFFOUMsTUFBTSxrQkFBa0IsR0FBRyxRQUFRLEtBQUssTUFBTSxJQUFJLFNBQVMsQ0FBQTtJQUMzRCxNQUFNLEVBQUUsR0FBRyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUE7SUFFakMsTUFBTSxHQUFHLEdBQUcsUUFBUTtTQUNqQixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEtBQUssU0FBUyxJQUFJLENBQUMsQ0FBQyxPQUFPLEtBQUssWUFBWSxDQUFDO1NBQ3BFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1FBQ1osSUFBSSxRQUFRLEtBQUssTUFBTSxFQUFFO1lBQ3ZCLE9BQU8sQ0FBQyxDQUFDLFFBQVEsS0FBSyxRQUFRLENBQUE7U0FDL0I7UUFDRCxPQUFPLENBQUMsQ0FBQyxRQUFRLEtBQUssTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUN0RSxDQUFDLENBQUMsQ0FBQTtJQUVKLE1BQU0saUJBQWlCLEdBQUcsd0NBQXdDLENBQUMsR0FBRyxFQUFFLFdBQVcsQ0FBQyxDQUFBO0lBQ3BGLElBQUksaUJBQWlCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtRQUNoQyxNQUFNLElBQUksS0FBSyxDQUNiLG9HQUFvRztZQUNsRyw0RUFBNEUsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQzdHLENBQUE7S0FDRjtJQUVELE1BQU0sTUFBTSxHQUFHLElBQUEsdURBQTBCLEVBQ3ZDLEdBQUcsRUFDSCxRQUFRLEVBQ1Isa0JBQWtCLEVBQ2xCLFdBQVcsQ0FDWixDQUFBO0lBRUQsTUFBTSxRQUFRLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFBO0lBQzFELE1BQU0sZUFBZSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxtQ0FBbUMsQ0FBQTtJQUVyRSxJQUFJLFVBQVUsR0FBRyxFQUFFLENBQUE7SUFDbkIsSUFBSSxFQUFFLElBQUksUUFBUSxLQUFLLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixFQUFFO1FBQ3BELFVBQVUsR0FBRztrQ0FDaUIsQ0FBQTtLQUMvQjtTQUFNLElBQUksUUFBUSxLQUFLLE1BQU0sSUFBSSxrQkFBa0IsRUFBRTtRQUNwRCxVQUFVLEdBQUc7dUJBQ00sQ0FBQTtLQUNwQjtTQUFNLElBQUksUUFBUSxLQUFLLE1BQU0sRUFBRTtRQUM5QixVQUFVLEdBQUc7d0JBQ08sQ0FBQTtLQUNyQjtJQUVELE1BQU0sZUFBZSxHQUFHLEVBQUU7UUFDeEIsQ0FBQyxDQUFDOztFQUVKO1FBQ0UsQ0FBQyxDQUFDOztvQkFFYyxJQUFBLDBDQUEyQixFQUFDLFFBQVEsQ0FBQztFQUN2RCxDQUFBO0lBRUEsT0FBTztnQkFDTyxRQUFRLElBQUksZUFBZSxHQUFHLFVBQVU7OztFQUd0RCxlQUFlOztFQUVmLE1BQU0sRUFBRSxDQUFBO0FBQ1YsQ0FBQyxDQUFBO0FBakVZLFFBQUEseUNBQXlDLDZDQWlFckQ7QUFFRCxnREFBZ0Q7QUFDekMsTUFBTSx5QkFBeUIsR0FBRyxDQUN2QyxRQUFnQixFQUNoQixXQUFvQixFQUNaLEVBQUU7SUFDVixJQUFJLFNBQVMsQ0FBQyxXQUFXLENBQUMsRUFBRTtRQUMxQixPQUFPOzs7Q0FHVixDQUFBO0tBQ0U7SUFFRCxNQUFNLFlBQVksR0FBRyxJQUFBLDhDQUErQixFQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQzlELE9BQU87O29CQUVXLFlBQVk7Ozs7OztDQU0vQixDQUFBO0FBQ0QsQ0FBQyxDQUFBO0FBckJZLFFBQUEseUJBQXlCLDZCQXFCckMifQ==