@contember/engine-server 1.1.0-alpha.1 → 1.1.0-alpha.4

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 (93) hide show
  1. package/alpine.dockerfile +3 -1
  2. package/debian.dockerfile +3 -1
  3. package/dist/src/MasterContainer.d.ts +104 -8
  4. package/dist/src/MasterContainer.d.ts.map +1 -1
  5. package/dist/src/MasterContainer.js +65 -84
  6. package/dist/src/MasterContainer.js.map +1 -1
  7. package/dist/src/bootstrap/Initializer.d.ts +3 -12
  8. package/dist/src/bootstrap/Initializer.d.ts.map +1 -1
  9. package/dist/src/bootstrap/Initializer.js +8 -24
  10. package/dist/src/bootstrap/Initializer.js.map +1 -1
  11. package/dist/src/config/config.d.ts +7 -49
  12. package/dist/src/config/config.d.ts.map +1 -1
  13. package/dist/src/config/config.js +11 -188
  14. package/dist/src/config/config.js.map +1 -1
  15. package/dist/src/config/configSchema.d.ts +84 -0
  16. package/dist/src/config/configSchema.d.ts.map +1 -0
  17. package/dist/src/config/configSchema.js +80 -0
  18. package/dist/src/config/configSchema.js.map +1 -0
  19. package/dist/src/config/configTemplate.d.ts +2 -0
  20. package/dist/src/config/configTemplate.d.ts.map +1 -0
  21. package/dist/src/config/configTemplate.js +62 -0
  22. package/dist/src/config/configTemplate.js.map +1 -0
  23. package/dist/src/config/projectConfigResolver.d.ts +8 -0
  24. package/dist/src/config/projectConfigResolver.d.ts.map +1 -0
  25. package/dist/src/config/projectConfigResolver.js +63 -0
  26. package/dist/src/config/projectConfigResolver.js.map +1 -0
  27. package/dist/src/config/tenantConfigResolver.d.ts +8 -0
  28. package/dist/src/config/tenantConfigResolver.d.ts.map +1 -0
  29. package/dist/src/config/tenantConfigResolver.js +31 -0
  30. package/dist/src/config/tenantConfigResolver.js.map +1 -0
  31. package/dist/src/http/CollectHttpMetricsMiddelware.d.ts +2 -2
  32. package/dist/src/http/CollectHttpMetricsMiddelware.d.ts.map +1 -1
  33. package/dist/src/http/CollectHttpMetricsMiddelware.js +6 -5
  34. package/dist/src/http/CollectHttpMetricsMiddelware.js.map +1 -1
  35. package/dist/src/project/ProjectContainer.d.ts +14 -16
  36. package/dist/src/project/ProjectContainer.d.ts.map +1 -1
  37. package/dist/src/project/ProjectContainer.js +17 -12
  38. package/dist/src/project/ProjectContainer.js.map +1 -1
  39. package/dist/src/project/ProjectContainerResolver.d.ts +12 -10
  40. package/dist/src/project/ProjectContainerResolver.d.ts.map +1 -1
  41. package/dist/src/project/ProjectContainerResolver.js +26 -33
  42. package/dist/src/project/ProjectContainerResolver.js.map +1 -1
  43. package/dist/src/project/{ProjectGroupState.d.ts → ProjectContainerStore.d.ts} +2 -2
  44. package/dist/src/project/ProjectContainerStore.d.ts.map +1 -0
  45. package/dist/src/project/{ProjectGroupState.js → ProjectContainerStore.js} +4 -4
  46. package/dist/src/project/ProjectContainerStore.js.map +1 -0
  47. package/dist/src/project/ProjectInitializer.d.ts +3 -3
  48. package/dist/src/project/ProjectInitializer.d.ts.map +1 -1
  49. package/dist/src/project/ProjectInitializer.js +4 -4
  50. package/dist/src/project/ProjectInitializer.js.map +1 -1
  51. package/dist/src/project/ProjectSchemaResolver.d.ts +3 -3
  52. package/dist/src/project/ProjectSchemaResolver.d.ts.map +1 -1
  53. package/dist/src/project/ProjectSchemaResolver.js +5 -5
  54. package/dist/src/project/ProjectSchemaResolver.js.map +1 -1
  55. package/dist/src/projectGroup/ProjectGroupContainer.d.ts +23 -0
  56. package/dist/src/projectGroup/ProjectGroupContainer.d.ts.map +1 -0
  57. package/dist/src/projectGroup/ProjectGroupContainer.js +64 -0
  58. package/dist/src/projectGroup/ProjectGroupContainer.js.map +1 -0
  59. package/dist/src/projectGroup/ProjectGroupContainerResolver.d.ts +12 -0
  60. package/dist/src/projectGroup/ProjectGroupContainerResolver.d.ts.map +1 -0
  61. package/dist/src/projectGroup/ProjectGroupContainerResolver.js +36 -0
  62. package/dist/src/projectGroup/ProjectGroupContainerResolver.js.map +1 -0
  63. package/dist/src/start.js +9 -8
  64. package/dist/src/start.js.map +1 -1
  65. package/dist/src/tsconfig.tsbuildinfo +1 -1
  66. package/dist/src/utils/dbMetrics.d.ts +6 -2
  67. package/dist/src/utils/dbMetrics.d.ts.map +1 -1
  68. package/dist/src/utils/dbMetrics.js +13 -16
  69. package/dist/src/utils/dbMetrics.js.map +1 -1
  70. package/dist/tests/cases/http.js +30 -19
  71. package/dist/tests/cases/http.js.map +1 -1
  72. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  73. package/package.json +22 -21
  74. package/src/MasterContainer.ts +145 -204
  75. package/src/bootstrap/Initializer.ts +9 -34
  76. package/src/config/config.ts +23 -234
  77. package/src/config/configSchema.ts +114 -0
  78. package/src/config/configTemplate.ts +58 -0
  79. package/src/config/projectConfigResolver.ts +83 -0
  80. package/src/config/tenantConfigResolver.ts +41 -0
  81. package/src/http/CollectHttpMetricsMiddelware.ts +6 -5
  82. package/src/project/ProjectContainer.ts +25 -18
  83. package/src/project/ProjectContainerResolver.ts +29 -37
  84. package/src/project/{ProjectGroupState.ts → ProjectContainerStore.ts} +1 -1
  85. package/src/project/ProjectInitializer.ts +5 -9
  86. package/src/project/ProjectSchemaResolver.ts +6 -10
  87. package/src/projectGroup/ProjectGroupContainer.ts +120 -0
  88. package/src/projectGroup/ProjectGroupContainerResolver.ts +47 -0
  89. package/src/start.ts +9 -8
  90. package/src/utils/dbMetrics.ts +19 -20
  91. package/tests/cases/http.ts +35 -22
  92. package/dist/src/project/ProjectGroupState.d.ts.map +0 -1
  93. package/dist/src/project/ProjectGroupState.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"CollectHttpMetricsMiddelware.d.ts","sourceRoot":"","sources":["../../../src/http/CollectHttpMetricsMiddelware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,yBAAyB,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAA;AAChH,OAAO,IAAI,MAAM,aAAa,CAAA;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAExD,eAAO,MAAM,mCAAmC,aACrC,KAAK,QAAQ,KACrB,cAAc,QAAQ,6BAA6B,GAAG,yBAAyB,GAAG,eAAe,CAAC,CAwBpG,CAAA"}
1
+ {"version":3,"file":"CollectHttpMetricsMiddelware.d.ts","sourceRoot":"","sources":["../../../src/http/CollectHttpMetricsMiddelware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAA;AAC7G,OAAO,IAAI,MAAM,aAAa,CAAA;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAExD,eAAO,MAAM,mCAAmC,aACrC,KAAK,QAAQ,KACrB,cAAc,QAAQ,0BAA0B,GAAG,yBAAyB,GAAG,eAAe,CAAC,CAyBjG,CAAA"}
@@ -8,13 +8,13 @@ const prom_client_1 = __importDefault(require("prom-client"));
8
8
  const createColllectHttpMetricsMiddleware = (registry) => {
9
9
  const requestSummary = new prom_client_1.default.Histogram({
10
10
  name: 'contember_http_duration_seconds',
11
- help: 'Incoming HTTP requests statistics by http_method (OPTIONS requests are ignored), http_code, contember_project (or "unknown" for undefined project), contember_module (system, tenant, content, unknown) and graphql_operation (query, mutation, unknown)',
11
+ help: 'Incoming HTTP requests statistics by http_method (OPTIONS requests are ignored), http_code, contember_project (or "unknown" for undefined project), contember_project_group (or "unknown" for undefined project group), contember_module (system, tenant, content, unknown) and graphql_operation (query, mutation, unknown)',
12
12
  registers: [registry],
13
- labelNames: ['http_method', 'http_code', 'contember_project', 'contember_module', 'graphql_operation'],
13
+ labelNames: ['http_method', 'http_code', 'contember_project', 'contember_project_group', 'contember_module', 'graphql_operation'],
14
14
  buckets: [0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1, 2.5, 5, 10],
15
15
  });
16
16
  return async (ctx, next) => {
17
- var _a, _b;
17
+ var _a;
18
18
  const end = ctx.method === 'OPTIONS' ? () => null : requestSummary.startTimer();
19
19
  try {
20
20
  await next();
@@ -23,9 +23,10 @@ const createColllectHttpMetricsMiddleware = (registry) => {
23
23
  const labels = {
24
24
  http_method: ctx.method,
25
25
  http_code: ctx.status,
26
- contember_project: ((_a = ctx.state.project) === null || _a === void 0 ? void 0 : _a.slug) || 'unknown',
26
+ contember_project: ctx.state.project || 'unknown',
27
+ contember_project_group: ctx.state.projectGroup || 'unknown',
27
28
  contember_module: ctx.state.module || 'unknown',
28
- graphql_operation: ((_b = ctx.state.graphql) === null || _b === void 0 ? void 0 : _b.operationName) || 'unknown',
29
+ graphql_operation: ((_a = ctx.state.graphql) === null || _a === void 0 ? void 0 : _a.operationName) || 'unknown',
29
30
  };
30
31
  end(labels);
31
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CollectHttpMetricsMiddelware.js","sourceRoot":"","sources":["../../../src/http/CollectHttpMetricsMiddelware.ts"],"names":[],"mappings":";;;;;;AACA,8DAA8B;AAGvB,MAAM,mCAAmC,GAAG,CAClD,QAAuB,EAC+E,EAAE;IACxG,MAAM,cAAc,GAAG,IAAI,qBAAI,CAAC,SAAS,CAAC;QACzC,IAAI,EAAE,iCAAiC;QACvC,IAAI,EAAE,0PAA0P;QAChQ,SAAS,EAAE,CAAC,QAAQ,CAAC;QACrB,UAAU,EAAE,CAAC,aAAa,EAAE,WAAW,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,mBAAmB,CAAC;QACtG,OAAO,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;KAClE,CAAC,CAAA;IAEF,OAAO,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;;QAC1B,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,UAAU,EAAE,CAAA;QAC/E,IAAI;YACH,MAAM,IAAI,EAAE,CAAA;SACZ;gBAAS;YACT,MAAM,MAAM,GAAG;gBACd,WAAW,EAAE,GAAG,CAAC,MAAM;gBACvB,SAAS,EAAE,GAAG,CAAC,MAAM;gBACrB,iBAAiB,EAAE,CAAA,MAAA,GAAG,CAAC,KAAK,CAAC,OAAO,0CAAE,IAAI,KAAI,SAAS;gBACvD,gBAAgB,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,SAAS;gBAC/C,iBAAiB,EAAE,CAAA,MAAA,GAAG,CAAC,KAAK,CAAC,OAAO,0CAAE,aAAa,KAAI,SAAS;aAChE,CAAA;YACD,GAAG,CAAC,MAAM,CAAC,CAAA;SACX;IACF,CAAC,CAAA;AACF,CAAC,CAAA;AA1BY,QAAA,mCAAmC,uCA0B/C"}
1
+ {"version":3,"file":"CollectHttpMetricsMiddelware.js","sourceRoot":"","sources":["../../../src/http/CollectHttpMetricsMiddelware.ts"],"names":[],"mappings":";;;;;;AACA,8DAA8B;AAGvB,MAAM,mCAAmC,GAAG,CAClD,QAAuB,EAC4E,EAAE;IACrG,MAAM,cAAc,GAAG,IAAI,qBAAI,CAAC,SAAS,CAAC;QACzC,IAAI,EAAE,iCAAiC;QACvC,IAAI,EAAE,8TAA8T;QACpU,SAAS,EAAE,CAAC,QAAQ,CAAC;QACrB,UAAU,EAAE,CAAC,aAAa,EAAE,WAAW,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,mBAAmB,CAAC;QACjI,OAAO,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;KAClE,CAAC,CAAA;IAEF,OAAO,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;;QAC1B,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,UAAU,EAAE,CAAA;QAC/E,IAAI;YACH,MAAM,IAAI,EAAE,CAAA;SACZ;gBAAS;YACT,MAAM,MAAM,GAAG;gBACd,WAAW,EAAE,GAAG,CAAC,MAAM;gBACvB,SAAS,EAAE,GAAG,CAAC,MAAM;gBACrB,iBAAiB,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,SAAS;gBACjD,uBAAuB,EAAE,GAAG,CAAC,KAAK,CAAC,YAAY,IAAI,SAAS;gBAC5D,gBAAgB,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,SAAS;gBAC/C,iBAAiB,EAAE,CAAA,MAAA,GAAG,CAAC,KAAK,CAAC,OAAO,0CAAE,aAAa,KAAI,SAAS;aAChE,CAAA;YACD,GAAG,CAAC,MAAM,CAAC,CAAA;SACX;IACF,CAAC,CAAA;AACF,CAAC,CAAA;AA3BY,QAAA,mCAAmC,uCA2B/C"}
@@ -1,30 +1,33 @@
1
1
  import { Builder } from '@contember/dic';
2
2
  import { Connection } from '@contember/database';
3
3
  import { DatabaseContextFactory, SchemaVersionBuilder } from '@contember/engine-system-api';
4
- import { ModificationHandlerFactory } from '@contember/schema-migrations';
5
4
  import { GraphQlSchemaBuilderFactory, PermissionsByIdentityFactory } from '@contember/engine-content-api';
6
5
  import { Plugin } from '@contember/engine-plugins';
7
- import { ProjectConfig, ContentQueryHandlerProvider, ContentSchemaResolver, GraphQlSchemaFactory, Providers, ProjectContainer } from '@contember/engine-http';
8
- import { ContentQueryHandlerFactory } from '@contember/engine-http';
6
+ import { ContentSchemaResolver, GraphQlSchemaFactory, ProjectConfig, ProjectContainer, Providers } from '@contember/engine-http';
7
+ export declare class ProjectContainerFactoryFactory {
8
+ private readonly debug;
9
+ private readonly plugins;
10
+ private readonly providers;
11
+ constructor(debug: boolean, plugins: Plugin[], providers: Providers);
12
+ create(schemaVersionBuilder: SchemaVersionBuilder): ProjectContainerFactory;
13
+ }
14
+ interface ProjectContainerFactoryArgs {
15
+ project: ProjectConfig;
16
+ }
9
17
  export declare class ProjectContainerFactory {
10
18
  private readonly debug;
11
19
  private readonly plugins;
12
20
  private readonly schemaVersionBuilder;
13
21
  private readonly providers;
14
22
  constructor(debug: boolean, plugins: Plugin[], schemaVersionBuilder: SchemaVersionBuilder, providers: Providers);
15
- createContainer(project: ProjectConfig): ProjectContainer;
16
- protected createBuilder(project: ProjectConfig): Builder<{
23
+ createContainer(args: ProjectContainerFactoryArgs): ProjectContainer;
24
+ protected createBuilder({ project }: ProjectContainerFactoryArgs): Builder<{
17
25
  providers: {
18
26
  uuid: () => string;
19
27
  now: () => Date;
20
28
  bcrypt: (value: string) => Promise<string>;
21
29
  bcryptCompare: (data: any, hash: string) => Promise<boolean>;
22
30
  randomBytes: (bytes: number) => Promise<Buffer>;
23
- encrypt: (value: Buffer) => Promise<{
24
- encrypted: Buffer;
25
- iv: Buffer;
26
- }>;
27
- decrypt: (valueEncrypted: Buffer, iv: Buffer) => Promise<Buffer>;
28
31
  hash: (value: import("crypto").BinaryLike, algo: string) => Buffer;
29
32
  };
30
33
  } & {
@@ -33,22 +36,17 @@ export declare class ProjectContainerFactory {
33
36
  project: ProjectConfig;
34
37
  } & {
35
38
  connection: Connection;
36
- } & {
37
- modificationHandlerFactory: ModificationHandlerFactory;
38
39
  } & {
39
40
  graphQlSchemaBuilderFactory: GraphQlSchemaBuilderFactory;
40
41
  } & {
41
42
  permissionsByIdentityFactory: PermissionsByIdentityFactory;
42
43
  } & {
43
44
  graphQlSchemaFactory: GraphQlSchemaFactory;
44
- } & {
45
- contentQueryHandlerFactory: ContentQueryHandlerFactory;
46
45
  } & {
47
46
  contentSchemaResolver: ContentSchemaResolver;
48
- } & {
49
- contentQueryHandlerProvider: ContentQueryHandlerProvider;
50
47
  } & {
51
48
  systemDatabaseContextFactory: DatabaseContextFactory;
52
49
  }>;
53
50
  }
51
+ export {};
54
52
  //# sourceMappingURL=ProjectContainer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectContainer.d.ts","sourceRoot":"","sources":["../../../src/project/ProjectContainer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAE3F,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAA;AACzE,OAAO,EAAE,2BAA2B,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAA;AACzG,OAAO,EAA4B,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAC5E,OAAO,EACN,aAAa,EACb,2BAA2B,EAC3B,qBAAqB,EACrB,oBAAoB,EACpB,SAAS,EACT,gBAAgB,EAChB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAA;AAEnE,qBAAa,uBAAuB;IAElC,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAHT,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,MAAM,EAAE,EACjB,oBAAoB,EAAE,oBAAoB,EAC1C,SAAS,EAAE,SAAS;IAG/B,eAAe,CAAC,OAAO,EAAE,aAAa,GAAG,gBAAgB;IAYhE,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+B9C"}
1
+ {"version":3,"file":"ProjectContainer.d.ts","sourceRoot":"","sources":["../../../src/project/ProjectContainer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAC3F,OAAO,EAAE,2BAA2B,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAA;AACzG,OAAO,EAA4B,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAC5E,OAAO,EACN,qBAAqB,EACrB,oBAAoB,EACpB,aAAa,EACb,gBAAgB,EAChB,SAAS,EACT,MAAM,wBAAwB,CAAA;AAE/B,qBAAa,8BAA8B;IAEzC,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAFT,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,MAAM,EAAE,EACjB,SAAS,EAAE,SAAS;IAItC,MAAM,CAAC,oBAAoB,EAAE,oBAAoB,GAAG,uBAAuB;CAG3E;AAED,UAAU,2BAA2B;IACpC,OAAO,EAAE,aAAa,CAAA;CACtB;AAED,qBAAa,uBAAuB;IAElC,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAHT,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,MAAM,EAAE,EACjB,oBAAoB,EAAE,oBAAoB,EAC1C,SAAS,EAAE,SAAS;IAG/B,eAAe,CAAC,IAAI,EAAE,2BAA2B,GAAG,gBAAgB;IAY3E,SAAS,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,EAAE,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;CAyBhE"}
@@ -1,14 +1,22 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ProjectContainerFactory = void 0;
3
+ exports.ProjectContainerFactory = exports.ProjectContainerFactoryFactory = void 0;
4
4
  const dic_1 = require("@contember/dic");
5
5
  const database_1 = require("@contember/database");
6
6
  const engine_system_api_1 = require("@contember/engine-system-api");
7
- const utils_1 = require("../utils");
8
- const schema_migrations_1 = require("@contember/schema-migrations");
9
7
  const engine_content_api_1 = require("@contember/engine-content-api");
10
8
  const engine_http_1 = require("@contember/engine-http");
11
- const engine_http_2 = require("@contember/engine-http");
9
+ class ProjectContainerFactoryFactory {
10
+ constructor(debug, plugins, providers) {
11
+ this.debug = debug;
12
+ this.plugins = plugins;
13
+ this.providers = providers;
14
+ }
15
+ create(schemaVersionBuilder) {
16
+ return new ProjectContainerFactory(this.debug, this.plugins, schemaVersionBuilder, this.providers);
17
+ }
18
+ }
19
+ exports.ProjectContainerFactoryFactory = ProjectContainerFactoryFactory;
12
20
  class ProjectContainerFactory {
13
21
  constructor(debug, plugins, schemaVersionBuilder, providers) {
14
22
  this.debug = debug;
@@ -16,18 +24,17 @@ class ProjectContainerFactory {
16
24
  this.schemaVersionBuilder = schemaVersionBuilder;
17
25
  this.providers = providers;
18
26
  }
19
- createContainer(project) {
20
- return this.createBuilder(project)
27
+ createContainer(args) {
28
+ return this.createBuilder(args)
21
29
  .build()
22
- .pick('project', 'connection', 'contentQueryHandlerProvider', 'systemDatabaseContextFactory', 'contentSchemaResolver');
30
+ .pick('project', 'connection', 'systemDatabaseContextFactory', 'contentSchemaResolver', 'graphQlSchemaFactory');
23
31
  }
24
- createBuilder(project) {
32
+ createBuilder({ project }) {
25
33
  return new dic_1.Builder({})
26
34
  .addService('providers', () => this.providers)
27
35
  .addService('schemaVersionBuilder', () => this.schemaVersionBuilder)
28
36
  .addService('project', () => project)
29
37
  .addService('connection', ({ project }) => new database_1.Connection(project.db, { timing: true }))
30
- .addService('modificationHandlerFactory', () => new schema_migrations_1.ModificationHandlerFactory(schema_migrations_1.ModificationHandlerFactory.defaultFactoryMap))
31
38
  .addService('graphQlSchemaBuilderFactory', () => new engine_content_api_1.GraphQlSchemaBuilderFactory())
32
39
  .addService('permissionsByIdentityFactory', ({}) => new engine_content_api_1.PermissionsByIdentityFactory())
33
40
  .addService('graphQlSchemaFactory', ({ project, permissionsByIdentityFactory, graphQlSchemaBuilderFactory, providers }) => {
@@ -36,10 +43,8 @@ class ProjectContainerFactory {
36
43
  .filter((it) => !!it);
37
44
  return new engine_http_1.GraphQlSchemaFactory(graphQlSchemaBuilderFactory, permissionsByIdentityFactory, contributors);
38
45
  })
39
- .addService('contentQueryHandlerFactory', () => new engine_http_2.ContentQueryHandlerFactory(project.slug, this.debug, utils_1.logSentryError))
40
46
  .addService('contentSchemaResolver', ({ schemaVersionBuilder }) => new engine_http_1.ContentSchemaResolver(schemaVersionBuilder))
41
- .addService('contentQueryHandlerProvider', ({ contentSchemaResolver, graphQlSchemaFactory, contentQueryHandlerFactory }) => new engine_http_1.ContentQueryHandlerProvider(contentSchemaResolver, graphQlSchemaFactory, contentQueryHandlerFactory))
42
- .addService('systemDatabaseContextFactory', ({ connection, providers }) => new engine_system_api_1.DatabaseContextFactory(connection.createClient('system', { module: 'system' }), providers));
47
+ .addService('systemDatabaseContextFactory', ({ connection, providers, project }) => { var _a; return new engine_system_api_1.DatabaseContextFactory(connection.createClient((_a = project.db.systemSchema) !== null && _a !== void 0 ? _a : 'system', { module: 'system' }), providers); });
43
48
  }
44
49
  }
45
50
  exports.ProjectContainerFactory = ProjectContainerFactory;
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectContainer.js","sourceRoot":"","sources":["../../../src/project/ProjectContainer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProjectContainer.js","sourceRoot":"","sources":["../../../src/project/ProjectContainer.ts"],"names":[],"mappings":";;;AAAA,wCAAwC;AACxC,kDAAgD;AAChD,oEAA2F;AAC3F,sEAAyG;AAEzG,wDAM+B;AAE/B,MAAa,8BAA8B;IAC1C,YACkB,KAAc,EACd,OAAiB,EACjB,SAAoB;QAFpB,UAAK,GAAL,KAAK,CAAS;QACd,YAAO,GAAP,OAAO,CAAU;QACjB,cAAS,GAAT,SAAS,CAAW;IAEtC,CAAC;IAED,MAAM,CAAC,oBAA0C;QAChD,OAAO,IAAI,uBAAuB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,oBAAoB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;IACnG,CAAC;CACD;AAXD,wEAWC;AAMD,MAAa,uBAAuB;IACnC,YACkB,KAAc,EACd,OAAiB,EACjB,oBAA0C,EAC1C,SAAoB;QAHpB,UAAK,GAAL,KAAK,CAAS;QACd,YAAO,GAAP,OAAO,CAAU;QACjB,yBAAoB,GAApB,oBAAoB,CAAsB;QAC1C,cAAS,GAAT,SAAS,CAAW;IACnC,CAAC;IAEG,eAAe,CAAC,IAAiC;QACvD,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;aAC7B,KAAK,EAAE;aACP,IAAI,CACJ,SAAS,EACT,YAAY,EACZ,8BAA8B,EAC9B,uBAAuB,EACvB,sBAAsB,CACtB,CAAA;IACH,CAAC;IAES,aAAa,CAAC,EAAE,OAAO,EAA+B;QAC/D,OAAO,IAAI,aAAO,CAAC,EAAE,CAAC;aACpB,UAAU,CAAC,WAAW,EAAE,GAAG,EAAE,CAC7B,IAAI,CAAC,SAAS,CAAC;aACf,UAAU,CAAC,sBAAsB,EAAE,GAAG,EAAE,CACxC,IAAI,CAAC,oBAAoB,CAAC;aAC1B,UAAU,CAAC,SAAS,EAAE,GAAG,EAAE,CAC3B,OAAO,CAAC;aACR,UAAU,CAAC,YAAY,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CACzC,IAAI,qBAAU,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;aAC7C,UAAU,CAAC,6BAA6B,EAAE,GAAG,EAAE,CAC/C,IAAI,gDAA2B,EAAE,CAAC;aAClC,UAAU,CAAC,8BAA8B,EAAE,CAAC,EAAE,EAAE,EAAE,CAClD,IAAI,iDAA4B,EAAE,CAAC;aACnC,UAAU,CAAC,sBAAsB,EAAE,CAAC,EAAE,OAAO,EAAE,4BAA4B,EAAE,2BAA2B,EAAE,SAAS,EAAE,EAAE,EAAE;YACzH,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO;iBAC/B,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,oBAAoB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;iBAC7F,MAAM,CAAC,CAAC,EAAE,EAAkC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;YACtD,OAAO,IAAI,kCAAoB,CAAC,2BAA2B,EAAE,4BAA4B,EAAE,YAAY,CAAC,CAAA;QACzG,CAAC,CAAC;aACD,UAAU,CAAC,uBAAuB,EAAE,CAAC,EAAE,oBAAoB,EAAE,EAAE,EAAE,CACjE,IAAI,mCAAqB,CAAC,oBAAoB,CAAC,CAAC;aAChD,UAAU,CAAC,8BAA8B,EAAE,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,WAClF,OAAA,IAAI,0CAAsB,CAAC,UAAU,CAAC,YAAY,CAAC,MAAA,OAAO,CAAC,EAAE,CAAC,YAAY,mCAAI,QAAQ,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,CAAC,CAAA,EAAA,CAAC,CAAA;IAC7H,CAAC;CACD;AA7CD,0DA6CC"}
@@ -1,20 +1,22 @@
1
1
  import { ProjectContainerFactory } from './ProjectContainer';
2
- import { ProjectConfigResolver, ProjectContainer } from '@contember/engine-http';
3
- import { ProjectManager, ProjectWithSecrets } from '@contember/engine-tenant-api';
4
- import { ProjectGroup } from '@contember/engine-tenant-api';
2
+ import { ProjectContainer } from '@contember/engine-http';
3
+ import { DatabaseContext, ProjectManager, ProjectWithSecrets } from '@contember/engine-tenant-api';
5
4
  import { ProjectInitializer as SystemProjectInitializer } from '@contember/engine-system-api';
5
+ import { ProjectConfigResolver } from '../config/projectConfigResolver';
6
+ import { TenantConfig } from '../config/config';
6
7
  export declare class ProjectContainerResolver {
7
8
  private readonly projectContainerFactory;
8
9
  private readonly projectConfigResolver;
9
10
  private readonly projectManager;
10
11
  private readonly systemProjectInitializer;
11
- private projectGroupStates;
12
+ private readonly tenantDatabase;
13
+ private readonly tenantConfig;
14
+ private projectContainers;
12
15
  readonly onCreate: ((container: ProjectContainer) => void | (() => void))[];
13
- constructor(projectContainerFactory: ProjectContainerFactory, projectConfigResolver: ProjectConfigResolver, projectManager: ProjectManager, systemProjectInitializer: SystemProjectInitializer);
14
- getAllProjectContainers(projectGroup: ProjectGroup): Promise<ProjectContainer[]>;
15
- getProjectContainer(projectGroup: ProjectGroup, slug: string, alias?: boolean): Promise<ProjectContainer | undefined>;
16
- createProjectContainer(projectGroup: ProjectGroup, project: ProjectWithSecrets): Promise<ProjectContainer>;
17
- destroyContainer(projectGroup: ProjectGroup, slug: string): Promise<void>;
18
- private getProjectGroupState;
16
+ constructor(projectContainerFactory: ProjectContainerFactory, projectConfigResolver: ProjectConfigResolver, projectManager: ProjectManager, systemProjectInitializer: SystemProjectInitializer, tenantDatabase: DatabaseContext, tenantConfig: TenantConfig);
17
+ getAllProjectContainers(): Promise<ProjectContainer[]>;
18
+ getProjectContainer(slug: string, alias?: boolean): Promise<ProjectContainer | undefined>;
19
+ createProjectContainer(project: ProjectWithSecrets): Promise<ProjectContainer>;
20
+ destroyContainer(slug: string): Promise<void>;
19
21
  }
20
22
  //# sourceMappingURL=ProjectContainerResolver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectContainerResolver.d.ts","sourceRoot":"","sources":["../../../src/project/ProjectContainerResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AAC5D,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAChF,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAC3D,OAAO,EAAE,kBAAkB,IAAI,wBAAwB,EAAE,MAAM,8BAA8B,CAAA;AAI7F,qBAAa,wBAAwB;IAMnC,OAAO,CAAC,QAAQ,CAAC,uBAAuB;IACxC,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IACtC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,wBAAwB;IAR1C,OAAO,CAAC,kBAAkB,CAAiD;IAE3E,SAAgB,QAAQ,EAAE,CAAC,CAAC,SAAS,EAAE,gBAAgB,KAAK,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,EAAE,CAAK;gBAGrE,uBAAuB,EAAE,uBAAuB,EAChD,qBAAqB,EAAE,qBAAqB,EAC5C,cAAc,EAAE,cAAc,EAC9B,wBAAwB,EAAE,wBAAwB;IAGvD,uBAAuB,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAahF,mBAAmB,CAAC,YAAY,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,GAAE,OAAe,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IA8B5H,sBAAsB,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAoB1G,gBAAgB,CAAC,YAAY,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBtF,OAAO,CAAC,oBAAoB;CAQ5B"}
1
+ {"version":3,"file":"ProjectContainerResolver.d.ts","sourceRoot":"","sources":["../../../src/project/ProjectContainerResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AAClG,OAAO,EAAE,kBAAkB,IAAI,wBAAwB,EAAE,MAAM,8BAA8B,CAAA;AAG7F,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAE/C,qBAAa,wBAAwB;IAMnC,OAAO,CAAC,QAAQ,CAAC,uBAAuB;IACxC,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IACtC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,wBAAwB;IACzC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAV9B,OAAO,CAAC,iBAAiB,CAA8B;IAEvD,SAAgB,QAAQ,EAAE,CAAC,CAAC,SAAS,EAAE,gBAAgB,KAAK,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,EAAE,CAAK;gBAGrE,uBAAuB,EAAE,uBAAuB,EAChD,qBAAqB,EAAE,qBAAqB,EAC5C,cAAc,EAAE,cAAc,EAC9B,wBAAwB,EAAE,wBAAwB,EAClD,cAAc,EAAE,eAAe,EAC/B,YAAY,EAAE,YAAY;IAG/B,uBAAuB,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAatD,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,GAAE,OAAe,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IA4BhG,sBAAsB,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAqB9E,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAc1D"}
@@ -1,60 +1,62 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ProjectContainerResolver = void 0;
4
- const ProjectGroupState_1 = require("./ProjectGroupState");
4
+ const ProjectContainerStore_1 = require("./ProjectContainerStore");
5
5
  const engine_common_1 = require("@contember/engine-common");
6
6
  class ProjectContainerResolver {
7
- constructor(projectContainerFactory, projectConfigResolver, projectManager, systemProjectInitializer) {
7
+ constructor(projectContainerFactory, projectConfigResolver, projectManager, systemProjectInitializer, tenantDatabase, tenantConfig) {
8
8
  this.projectContainerFactory = projectContainerFactory;
9
9
  this.projectConfigResolver = projectConfigResolver;
10
10
  this.projectManager = projectManager;
11
11
  this.systemProjectInitializer = systemProjectInitializer;
12
- this.projectGroupStates = new WeakMap();
12
+ this.tenantDatabase = tenantDatabase;
13
+ this.tenantConfig = tenantConfig;
14
+ this.projectContainers = new ProjectContainerStore_1.ProjectContainerStore();
13
15
  this.onCreate = [];
14
16
  }
15
- async getAllProjectContainers(projectGroup) {
16
- const projects = await this.projectManager.getProjects(projectGroup.database);
17
+ async getAllProjectContainers() {
18
+ const projects = await this.projectManager.getProjects(this.tenantDatabase);
17
19
  return await Promise.all(projects.map(async (it) => {
18
- const container = await this.getProjectContainer(projectGroup, it.slug);
20
+ const container = await this.getProjectContainer(it.slug);
19
21
  if (!container) {
20
22
  throw new Error('should not happen');
21
23
  }
22
24
  return container;
23
25
  }));
24
26
  }
25
- async getProjectContainer(projectGroup, slug, alias = false) {
26
- let groupState = this.getProjectGroupState(projectGroup);
27
- const realSlug = groupState.resolveAlias(slug);
27
+ async getProjectContainer(slug, alias = false) {
28
+ const realSlug = this.projectContainers.resolveAlias(slug);
28
29
  if (realSlug) {
29
30
  slug = realSlug;
30
31
  }
31
- const existing = groupState.getContainer(slug);
32
+ const existing = this.projectContainers.getContainer(slug);
32
33
  if (existing) {
33
34
  const existingAwaited = await existing;
34
- const state = await this.projectManager.getProjectState(projectGroup.database, slug, existingAwaited.timestamp);
35
+ const state = await this.projectManager.getProjectState(this.tenantDatabase, slug, existingAwaited.timestamp);
35
36
  if (state === 'valid') {
36
37
  return (await existingAwaited).container;
37
38
  }
38
- await this.destroyContainer(projectGroup, slug);
39
+ await this.destroyContainer(slug);
39
40
  if (state === 'not_found') {
40
41
  return undefined;
41
42
  }
42
43
  }
43
- const project = await this.projectManager.getProjectWithSecretsBySlug(projectGroup.database, slug, alias);
44
+ const project = await this.projectManager.getProjectWithSecretsBySlug(this.tenantDatabase, slug, alias);
44
45
  if (!project) {
45
46
  return undefined;
46
47
  }
47
- const container = await this.createProjectContainer(projectGroup, project);
48
+ const container = await this.createProjectContainer(project);
48
49
  if (slug !== project.slug) {
49
- groupState.setAlias(project.slug, slug);
50
+ this.projectContainers.setAlias(project.slug, slug);
50
51
  }
51
52
  return container;
52
53
  }
53
- async createProjectContainer(projectGroup, project) {
54
- const projectConfig = this.projectConfigResolver(project.slug, project.config, project.secrets);
55
- const groupState = this.getProjectGroupState(projectGroup);
56
- return (await groupState.fetchContainer(project.slug, async (slug) => {
57
- const projectContainer = this.projectContainerFactory.createContainer(projectConfig);
54
+ async createProjectContainer(project) {
55
+ const projectConfig = this.projectConfigResolver(project.slug, project.config, project.secrets, this.tenantConfig);
56
+ return (await this.projectContainers.fetchContainer(project.slug, async (slug) => {
57
+ const projectContainer = this.projectContainerFactory.createContainer({
58
+ project: projectConfig,
59
+ });
58
60
  await this.systemProjectInitializer.initialize(projectContainer.systemDatabaseContextFactory, projectContainer.project,
59
61
  // eslint-disable-next-line no-console
60
62
  new engine_common_1.Logger(console.log));
@@ -66,15 +68,14 @@ class ProjectContainerResolver {
66
68
  };
67
69
  })).container;
68
70
  }
69
- async destroyContainer(projectGroup, slug) {
71
+ async destroyContainer(slug) {
70
72
  var _a;
71
- const groupState = this.getProjectGroupState(projectGroup);
72
- const existing = groupState.getContainer(slug);
73
+ const existing = this.projectContainers.getContainer(slug);
73
74
  if (existing) {
74
75
  const existingAwaited = await existing;
75
76
  existingAwaited.cleanups.forEach(it => it());
76
- (_a = existingAwaited.container.project.alias) === null || _a === void 0 ? void 0 : _a.forEach(it => groupState.removeAlias(it));
77
- groupState.removeContainer(slug);
77
+ (_a = existingAwaited.container.project.alias) === null || _a === void 0 ? void 0 : _a.forEach(it => this.projectContainers.removeAlias(it));
78
+ this.projectContainers.removeContainer(slug);
78
79
  }
79
80
  process.nextTick(() => {
80
81
  if (global.gc) {
@@ -82,14 +83,6 @@ class ProjectContainerResolver {
82
83
  }
83
84
  });
84
85
  }
85
- getProjectGroupState(projectGroup) {
86
- let groupState = this.projectGroupStates.get(projectGroup);
87
- if (!groupState) {
88
- groupState = new ProjectGroupState_1.ProjectGroupState();
89
- this.projectGroupStates.set(projectGroup, new ProjectGroupState_1.ProjectGroupState());
90
- }
91
- return groupState;
92
- }
93
86
  }
94
87
  exports.ProjectContainerResolver = ProjectContainerResolver;
95
88
  //# sourceMappingURL=ProjectContainerResolver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectContainerResolver.js","sourceRoot":"","sources":["../../../src/project/ProjectContainerResolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProjectContainerResolver.js","sourceRoot":"","sources":["../../../src/project/ProjectContainerResolver.ts"],"names":[],"mappings":";;;AAIA,mEAA+D;AAC/D,4DAAiD;AAIjD,MAAa,wBAAwB;IAKpC,YACkB,uBAAgD,EAChD,qBAA4C,EAC5C,cAA8B,EAC9B,wBAAkD,EAClD,cAA+B,EAC/B,YAA0B;QAL1B,4BAAuB,GAAvB,uBAAuB,CAAyB;QAChD,0BAAqB,GAArB,qBAAqB,CAAuB;QAC5C,mBAAc,GAAd,cAAc,CAAgB;QAC9B,6BAAwB,GAAxB,wBAAwB,CAA0B;QAClD,mBAAc,GAAd,cAAc,CAAiB;QAC/B,iBAAY,GAAZ,YAAY,CAAc;QAVpC,sBAAiB,GAAG,IAAI,6CAAqB,EAAE,CAAA;QAEvC,aAAQ,GAA6D,EAAE,CAAA;IASpF,CAAC;IAEG,KAAK,CAAC,uBAAuB;QACnC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QAC3E,OAAO,MAAM,OAAO,CAAC,GAAG,CACvB,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAC,EAAE,EAAC,EAAE;YACvB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;YACzD,IAAI,CAAC,SAAS,EAAE;gBACf,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;aACpC;YACD,OAAO,SAAS,CAAA;QACjB,CAAC,CAAC,CACF,CAAA;IACF,CAAC;IAEM,KAAK,CAAC,mBAAmB,CAAC,IAAY,EAAE,QAAiB,KAAK;QACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;QAC1D,IAAI,QAAQ,EAAE;YACb,IAAI,GAAG,QAAQ,CAAA;SACf;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;QAC1D,IAAI,QAAQ,EAAE;YACb,MAAM,eAAe,GAAG,MAAM,QAAQ,CAAA;YACtC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,EAAE,eAAe,CAAC,SAAS,CAAC,CAAA;YAC7G,IAAI,KAAK,KAAK,OAAO,EAAE;gBACtB,OAAO,CAAC,MAAM,eAAe,CAAC,CAAC,SAAS,CAAA;aACxC;YACD,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;YACjC,IAAI,KAAK,KAAK,WAAW,EAAE;gBAC1B,OAAO,SAAS,CAAA;aAChB;SACD;QACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,2BAA2B,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;QACvG,IAAI,CAAC,OAAO,EAAE;YACb,OAAO,SAAS,CAAA;SAChB;QACD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAA;QAC5D,IAAI,IAAI,KAAK,OAAO,CAAC,IAAI,EAAE;YAC1B,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;SACnD;QACD,OAAO,SAAS,CAAA;IACjB,CAAC;IAEM,KAAK,CAAC,sBAAsB,CAAC,OAA2B;QAC9D,MAAM,aAAa,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAA;QAClH,OAAO,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAC,IAAI,EAAC,EAAE;YAC9E,MAAM,gBAAgB,GAAG,IAAI,CAAC,uBAAuB,CAAC,eAAe,CAAC;gBACrE,OAAO,EAAE,aAAa;aACtB,CAAC,CAAA;YACF,MAAM,IAAI,CAAC,wBAAwB,CAAC,UAAU,CAC7C,gBAAgB,CAAC,4BAA4B,EAC7C,gBAAgB,CAAC,OAAO;YACxB,sCAAsC;YACtC,IAAI,sBAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CACvB,CAAA;YACD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;YAC9E,OAAO;gBACN,SAAS,EAAE,gBAAgB;gBAC3B,QAAQ;gBACR,SAAS,EAAE,OAAO,CAAC,SAAS;aAC5B,CAAA;QACF,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IACd,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAAC,IAAY;;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;QAC1D,IAAI,QAAQ,EAAE;YACb,MAAM,eAAe,GAAG,MAAM,QAAQ,CAAA;YACtC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;YAC5C,MAAA,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,0CAAE,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAA;YAC9F,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;SAC5C;QACD,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE;YACrB,IAAI,MAAM,CAAC,EAAE,EAAE;gBACd,MAAM,CAAC,EAAE,EAAE,CAAA;aACX;QACF,CAAC,CAAC,CAAA;IACH,CAAC;CACD;AA1FD,4DA0FC"}
@@ -4,7 +4,7 @@ declare type ContainerWithMeta = {
4
4
  cleanups: (() => void)[];
5
5
  timestamp: Date;
6
6
  };
7
- export declare class ProjectGroupState {
7
+ export declare class ProjectContainerStore {
8
8
  private containers;
9
9
  private aliasMapping;
10
10
  resolveAlias(slug: string): string | undefined;
@@ -15,4 +15,4 @@ export declare class ProjectGroupState {
15
15
  removeContainer(slug: string): void;
16
16
  }
17
17
  export {};
18
- //# sourceMappingURL=ProjectGroupState.d.ts.map
18
+ //# sourceMappingURL=ProjectContainerStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProjectContainerStore.d.ts","sourceRoot":"","sources":["../../../src/project/ProjectContainerStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAGzD,aAAK,iBAAiB,GAAG;IAAE,SAAS,EAAE,gBAAgB,CAAC;IAAC,QAAQ,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;IAAC,SAAS,EAAE,IAAI,CAAA;CAAE,CAAA;AAEnG,qBAAa,qBAAqB;IACjC,OAAO,CAAC,UAAU,CAA8C;IAChE,OAAO,CAAC,YAAY,CAA4B;IAEzC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI9C,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAI3C,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIhC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,GAAG,SAAS;IAI5D,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAIrH,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;CAG1C"}
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ProjectGroupState = void 0;
3
+ exports.ProjectContainerStore = void 0;
4
4
  const engine_common_1 = require("@contember/engine-common");
5
- class ProjectGroupState {
5
+ class ProjectContainerStore {
6
6
  constructor() {
7
7
  this.containers = new engine_common_1.PromiseMap();
8
8
  this.aliasMapping = new Map();
@@ -26,5 +26,5 @@ class ProjectGroupState {
26
26
  this.containers.delete(slug);
27
27
  }
28
28
  }
29
- exports.ProjectGroupState = ProjectGroupState;
30
- //# sourceMappingURL=ProjectGroupState.js.map
29
+ exports.ProjectContainerStore = ProjectContainerStore;
30
+ //# sourceMappingURL=ProjectContainerStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProjectContainerStore.js","sourceRoot":"","sources":["../../../src/project/ProjectContainerStore.ts"],"names":[],"mappings":";;;AACA,4DAAqD;AAIrD,MAAa,qBAAqB;IAAlC;QACS,eAAU,GAAG,IAAI,0BAAU,EAA6B,CAAA;QACxD,iBAAY,GAAG,IAAI,GAAG,EAAkB,CAAA;IAyBjD,CAAC;IAvBO,YAAY,CAAC,IAAY;QAC/B,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACnC,CAAC;IAEM,QAAQ,CAAC,IAAY,EAAE,KAAa;QAC1C,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IACnC,CAAC;IAEM,WAAW,CAAC,KAAa;QAC/B,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAChC,CAAC;IAEM,YAAY,CAAC,IAAY;QAC/B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACjC,CAAC;IAEM,KAAK,CAAC,cAAc,CAAC,IAAY,EAAE,OAAqD;QAC9F,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAClD,CAAC;IAEM,eAAe,CAAC,IAAY;QAClC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC7B,CAAC;CACD;AA3BD,sDA2BC"}
@@ -1,13 +1,13 @@
1
- import { ProjectGroup, ProjectInitializer as ProjectInitializerInterface, ProjectWithSecrets } from '@contember/engine-tenant-api';
1
+ import { ProjectInitializer as ProjectInitializerInterface, ProjectWithSecrets } from '@contember/engine-tenant-api';
2
2
  import { ProjectContainerResolver } from './ProjectContainerResolver';
3
3
  export declare class ProjectInitializer implements ProjectInitializerInterface {
4
4
  private readonly projectContainerResolver;
5
5
  constructor(projectContainerResolver: ProjectContainerResolver);
6
- initializeProject(projectGroup: ProjectGroup, project: ProjectWithSecrets): Promise<void>;
6
+ initializeProject(project: ProjectWithSecrets): Promise<void>;
7
7
  }
8
8
  export declare class ProjectInitializerProxy implements ProjectInitializerInterface {
9
9
  private initializer;
10
10
  setInitializer(initializer: ProjectInitializerInterface): void;
11
- initializeProject(projectGroup: ProjectGroup, project: ProjectWithSecrets): Promise<void>;
11
+ initializeProject(project: ProjectWithSecrets): Promise<void>;
12
12
  }
13
13
  //# sourceMappingURL=ProjectInitializer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectInitializer.d.ts","sourceRoot":"","sources":["../../../src/project/ProjectInitializer.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,YAAY,EACZ,kBAAkB,IAAI,2BAA2B,EACjD,kBAAkB,EAClB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;AAErE,qBAAa,kBAAmB,YAAW,2BAA2B;IAEpE,OAAO,CAAC,QAAQ,CAAC,wBAAwB;gBAAxB,wBAAwB,EAAE,wBAAwB;IAG9D,iBAAiB,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,kBAAkB;CAG/E;AAED,qBAAa,uBAAwB,YAAW,2BAA2B;IAC1E,OAAO,CAAC,WAAW,CAAqD;IAExE,cAAc,CAAC,WAAW,EAAE,2BAA2B,GAAG,IAAI;IAI9D,iBAAiB,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,kBAAkB;CAMzE"}
1
+ {"version":3,"file":"ProjectInitializer.d.ts","sourceRoot":"","sources":["../../../src/project/ProjectInitializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,IAAI,2BAA2B,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AACpH,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;AAErE,qBAAa,kBAAmB,YAAW,2BAA2B;IAEpE,OAAO,CAAC,QAAQ,CAAC,wBAAwB;gBAAxB,wBAAwB,EAAE,wBAAwB;IAG9D,iBAAiB,CAAC,OAAO,EAAE,kBAAkB;CAGnD;AAED,qBAAa,uBAAwB,YAAW,2BAA2B;IAC1E,OAAO,CAAC,WAAW,CAAqD;IAExE,cAAc,CAAC,WAAW,EAAE,2BAA2B,GAAG,IAAI;IAI9D,iBAAiB,CAAC,OAAO,EAAE,kBAAkB;CAM7C"}
@@ -5,8 +5,8 @@ class ProjectInitializer {
5
5
  constructor(projectContainerResolver) {
6
6
  this.projectContainerResolver = projectContainerResolver;
7
7
  }
8
- async initializeProject(projectGroup, project) {
9
- await this.projectContainerResolver.createProjectContainer(projectGroup, project);
8
+ async initializeProject(project) {
9
+ await this.projectContainerResolver.createProjectContainer(project);
10
10
  }
11
11
  }
12
12
  exports.ProjectInitializer = ProjectInitializer;
@@ -17,11 +17,11 @@ class ProjectInitializerProxy {
17
17
  setInitializer(initializer) {
18
18
  this.initializer = initializer;
19
19
  }
20
- initializeProject(projectGroup, project) {
20
+ initializeProject(project) {
21
21
  if (!this.initializer) {
22
22
  throw new Error('Initializer is not set');
23
23
  }
24
- return this.initializer.initializeProject(projectGroup, project);
24
+ return this.initializer.initializeProject(project);
25
25
  }
26
26
  }
27
27
  exports.ProjectInitializerProxy = ProjectInitializerProxy;
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectInitializer.js","sourceRoot":"","sources":["../../../src/project/ProjectInitializer.ts"],"names":[],"mappings":";;;AAOA,MAAa,kBAAkB;IAC9B,YACkB,wBAAkD;QAAlD,6BAAwB,GAAxB,wBAAwB,CAA0B;IACjE,CAAC;IAEJ,KAAK,CAAC,iBAAiB,CAAC,YAA0B,EAAE,OAA2B;QAC9E,MAAM,IAAI,CAAC,wBAAwB,CAAC,sBAAsB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;IAClF,CAAC;CACD;AARD,gDAQC;AAED,MAAa,uBAAuB;IAApC;QACS,gBAAW,GAA4C,SAAS,CAAA;IAYzE,CAAC;IAVA,cAAc,CAAC,WAAwC;QACtD,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;IAC/B,CAAC;IAED,iBAAiB,CAAC,YAA0B,EAAE,OAA2B;QACxE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACtB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;SACzC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;IACjE,CAAC;CACD;AAbD,0DAaC"}
1
+ {"version":3,"file":"ProjectInitializer.js","sourceRoot":"","sources":["../../../src/project/ProjectInitializer.ts"],"names":[],"mappings":";;;AAGA,MAAa,kBAAkB;IAC9B,YACkB,wBAAkD;QAAlD,6BAAwB,GAAxB,wBAAwB,CAA0B;IACjE,CAAC;IAEJ,KAAK,CAAC,iBAAiB,CAAC,OAA2B;QAClD,MAAM,IAAI,CAAC,wBAAwB,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAA;IACpE,CAAC;CACD;AARD,gDAQC;AAED,MAAa,uBAAuB;IAApC;QACS,gBAAW,GAA4C,SAAS,CAAA;IAYzE,CAAC;IAVA,cAAc,CAAC,WAAwC;QACtD,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;IAC/B,CAAC;IAED,iBAAiB,CAAC,OAA2B;QAC5C,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACtB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;SACzC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAA;IACnD,CAAC;CACD;AAbD,0DAaC"}
@@ -1,4 +1,4 @@
1
- import { ProjectGroup, ProjectSchemaResolver as ProjectSchemaResolverInterface } from '@contember/engine-tenant-api';
1
+ import { ProjectSchemaResolver as ProjectSchemaResolverInterface } from '@contember/engine-tenant-api';
2
2
  import { SchemaVersionBuilder } from '@contember/engine-system-api';
3
3
  import { ProjectContainerResolver } from '@contember/engine-http';
4
4
  import { Schema } from '@contember/schema';
@@ -6,11 +6,11 @@ export declare class ProjectSchemaResolver implements ProjectSchemaResolverInter
6
6
  private readonly projectContainerResolver;
7
7
  private readonly schemaVersionBuilder;
8
8
  constructor(projectContainerResolver: ProjectContainerResolver, schemaVersionBuilder: SchemaVersionBuilder);
9
- getSchema(projectGroup: ProjectGroup, slug: string): Promise<import("@contember/engine-system-api").VersionedSchema | undefined>;
9
+ getSchema(slug: string): Promise<import("@contember/engine-system-api").VersionedSchema | undefined>;
10
10
  }
11
11
  export declare class ProjectSchemaResolverProxy implements ProjectSchemaResolverInterface {
12
12
  private resolver;
13
13
  setResolver(resolver: ProjectSchemaResolver): void;
14
- getSchema(projectGroup: ProjectGroup, projectSlug: string): Promise<Schema | undefined>;
14
+ getSchema(projectSlug: string): Promise<Schema | undefined>;
15
15
  }
16
16
  //# sourceMappingURL=ProjectSchemaResolver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectSchemaResolver.d.ts","sourceRoot":"","sources":["../../../src/project/ProjectSchemaResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,YAAY,EACZ,qBAAqB,IAAI,8BAA8B,EACvD,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AACnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAA;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE1C,qBAAa,qBAAsB,YAAW,8BAA8B;IAE1E,OAAO,CAAC,QAAQ,CAAC,wBAAwB;IACzC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;gBADpB,wBAAwB,EAAE,wBAAwB,EAClD,oBAAoB,EAAE,oBAAoB;IAGtD,SAAS,CAAC,YAAY,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM;CAQxD;AAED,qBAAa,0BAA2B,YAAW,8BAA8B;IAChF,OAAO,CAAC,QAAQ,CAAmC;IAEnD,WAAW,CAAC,QAAQ,EAAE,qBAAqB,GAAG,IAAI;IAIlD,SAAS,CAAC,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;CAMvF"}
1
+ {"version":3,"file":"ProjectSchemaResolver.d.ts","sourceRoot":"","sources":["../../../src/project/ProjectSchemaResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,IAAI,8BAA8B,EAAE,MAAM,8BAA8B,CAAA;AACtG,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AACnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAA;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE1C,qBAAa,qBAAsB,YAAW,8BAA8B;IAE1E,OAAO,CAAC,QAAQ,CAAC,wBAAwB;IACzC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;gBADpB,wBAAwB,EAAE,wBAAwB,EAClD,oBAAoB,EAAE,oBAAoB;IAGtD,SAAS,CAAC,IAAI,EAAE,MAAM;CAQ5B;AAED,qBAAa,0BAA2B,YAAW,8BAA8B;IAChF,OAAO,CAAC,QAAQ,CAAmC;IAEnD,WAAW,CAAC,QAAQ,EAAE,qBAAqB,GAAG,IAAI;IAIlD,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;CAM3D"}
@@ -6,12 +6,12 @@ class ProjectSchemaResolver {
6
6
  this.projectContainerResolver = projectContainerResolver;
7
7
  this.schemaVersionBuilder = schemaVersionBuilder;
8
8
  }
9
- async getSchema(projectGroup, slug) {
10
- const container = await this.projectContainerResolver.getProjectContainer(projectGroup, slug);
9
+ async getSchema(slug) {
10
+ const container = await this.projectContainerResolver.getProjectContainer(slug);
11
11
  if (!container) {
12
12
  return undefined;
13
13
  }
14
- const db = container.systemDatabaseContextFactory.create(undefined);
14
+ const db = container.systemDatabaseContextFactory.create();
15
15
  return await this.schemaVersionBuilder.buildSchema(db);
16
16
  }
17
17
  }
@@ -20,11 +20,11 @@ class ProjectSchemaResolverProxy {
20
20
  setResolver(resolver) {
21
21
  this.resolver = resolver;
22
22
  }
23
- getSchema(projectGroup, projectSlug) {
23
+ getSchema(projectSlug) {
24
24
  if (!this.resolver) {
25
25
  throw new Error('Resolved is not set');
26
26
  }
27
- return this.resolver.getSchema(projectGroup, projectSlug);
27
+ return this.resolver.getSchema(projectSlug);
28
28
  }
29
29
  }
30
30
  exports.ProjectSchemaResolverProxy = ProjectSchemaResolverProxy;
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectSchemaResolver.js","sourceRoot":"","sources":["../../../src/project/ProjectSchemaResolver.ts"],"names":[],"mappings":";;;AASA,MAAa,qBAAqB;IACjC,YACkB,wBAAkD,EAClD,oBAA0C;QAD1C,6BAAwB,GAAxB,wBAAwB,CAA0B;QAClD,yBAAoB,GAApB,oBAAoB,CAAsB;IACzD,CAAC;IAEJ,KAAK,CAAC,SAAS,CAAC,YAA0B,EAAE,IAAY;QACvD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,mBAAmB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;QAC7F,IAAI,CAAC,SAAS,EAAE;YACf,OAAO,SAAS,CAAA;SAChB;QACD,MAAM,EAAE,GAAG,SAAS,CAAC,4BAA4B,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QACnE,OAAO,MAAM,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;IACvD,CAAC;CACD;AAdD,sDAcC;AAED,MAAa,0BAA0B;IAGtC,WAAW,CAAC,QAA+B;QAC1C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IACzB,CAAC;IAED,SAAS,CAAC,YAA0B,EAAE,WAAmB;QACxD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YACnB,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAA;SACtC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;IAC1D,CAAC;CACD;AAbD,gEAaC"}
1
+ {"version":3,"file":"ProjectSchemaResolver.js","sourceRoot":"","sources":["../../../src/project/ProjectSchemaResolver.ts"],"names":[],"mappings":";;;AAKA,MAAa,qBAAqB;IACjC,YACkB,wBAAkD,EAClD,oBAA0C;QAD1C,6BAAwB,GAAxB,wBAAwB,CAA0B;QAClD,yBAAoB,GAApB,oBAAoB,CAAsB;IACzD,CAAC;IAEJ,KAAK,CAAC,SAAS,CAAC,IAAY;QAC3B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAA;QAC/E,IAAI,CAAC,SAAS,EAAE;YACf,OAAO,SAAS,CAAA;SAChB;QACD,MAAM,EAAE,GAAG,SAAS,CAAC,4BAA4B,CAAC,MAAM,EAAE,CAAA;QAC1D,OAAO,MAAM,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;IACvD,CAAC;CACD;AAdD,sDAcC;AAED,MAAa,0BAA0B;IAGtC,WAAW,CAAC,QAA+B;QAC1C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IACzB,CAAC;IAED,SAAS,CAAC,WAAmB;QAC5B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YACnB,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAA;SACtC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;IAC5C,CAAC;CACD;AAbD,gEAaC"}
@@ -0,0 +1,23 @@
1
+ import { TenantContainerFactory } from '@contember/engine-tenant-api';
2
+ import { TenantConfig } from '../config/config';
3
+ import { ProjectGroupContainer, Providers, SystemGraphQLHandlerFactory, TenantGraphQLHandlerFactory } from '@contember/engine-http';
4
+ import { ProjectContainerFactoryFactory } from '../project';
5
+ import { SystemContainerFactory } from '@contember/engine-system-api';
6
+ import { ProjectConfigResolver } from '../config/projectConfigResolver';
7
+ interface ProjectGroupContainerFactoryArgs {
8
+ config: TenantConfig;
9
+ slug: string | undefined;
10
+ }
11
+ export declare class ProjectGroupContainerFactory {
12
+ private readonly providers;
13
+ private readonly systemContainerFactory;
14
+ private readonly tenantContainerFactory;
15
+ private readonly projectContainerFactoryFactory;
16
+ private readonly projectConfigResolver;
17
+ private readonly tenantGraphQLHandlerFactory;
18
+ private readonly systemGraphQLHandlerFactory;
19
+ constructor(providers: Providers, systemContainerFactory: SystemContainerFactory, tenantContainerFactory: TenantContainerFactory, projectContainerFactoryFactory: ProjectContainerFactoryFactory, projectConfigResolver: ProjectConfigResolver, tenantGraphQLHandlerFactory: TenantGraphQLHandlerFactory, systemGraphQLHandlerFactory: SystemGraphQLHandlerFactory);
20
+ create({ config, slug }: ProjectGroupContainerFactoryArgs): ProjectGroupContainer;
21
+ }
22
+ export {};
23
+ //# sourceMappingURL=ProjectGroupContainer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProjectGroupContainer.d.ts","sourceRoot":"","sources":["../../../src/projectGroup/ProjectGroupContainer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAGN,qBAAqB,EACrB,SAAS,EACT,2BAA2B,EAC3B,2BAA2B,EAC3B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EACN,8BAA8B,EAM9B,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AAGvE,UAAU,gCAAgC;IAEzC,MAAM,EAAE,YAAY,CAAA;IACpB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;CACxB;AAED,qBAAa,4BAA4B;IAEvC,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IACvC,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IACvC,OAAO,CAAC,QAAQ,CAAC,8BAA8B;IAC/C,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IACtC,OAAO,CAAC,QAAQ,CAAC,2BAA2B;IAC5C,OAAO,CAAC,QAAQ,CAAC,2BAA2B;gBAN3B,SAAS,EAAE,SAAS,EACpB,sBAAsB,EAAE,sBAAsB,EAC9C,sBAAsB,EAAE,sBAAsB,EAC9C,8BAA8B,EAAE,8BAA8B,EAC9D,qBAAqB,EAAE,qBAAqB,EAC5C,2BAA2B,EAAE,2BAA2B,EACxD,2BAA2B,EAAE,2BAA2B;IAGnE,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,gCAAgC,GAAG,qBAAqB;CA8ExF"}