@openhi/platform 0.0.0

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 (38) hide show
  1. package/README.md +3 -0
  2. package/lib/index.d.ts +2 -0
  3. package/lib/index.js +19 -0
  4. package/lib/openhi.d.ts +88 -0
  5. package/lib/openhi.js +108 -0
  6. package/lib/service.d.ts +36 -0
  7. package/lib/service.js +203 -0
  8. package/lib/templates/generate-templates.d.ts +5 -0
  9. package/lib/templates/generate-templates.js +45 -0
  10. package/lib/templates/service-template.d.ts +33 -0
  11. package/lib/templates/service-template.js +42 -0
  12. package/lib/templates/src/README.md.d.ts +5 -0
  13. package/lib/templates/src/README.md.js +19 -0
  14. package/lib/templates/src/app-test.d.ts +5 -0
  15. package/lib/templates/src/app-test.js +61 -0
  16. package/lib/templates/src/app.d.ts +5 -0
  17. package/lib/templates/src/app.js +27 -0
  18. package/lib/templates/src/config.d.ts +5 -0
  19. package/lib/templates/src/config.js +23 -0
  20. package/lib/templates/src/data/README.md.d.ts +5 -0
  21. package/lib/templates/src/data/README.md.js +19 -0
  22. package/lib/templates/src/data/models/README.md.d.ts +5 -0
  23. package/lib/templates/src/data/models/README.md.js +19 -0
  24. package/lib/templates/src/infrastructure/README.md.d.ts +5 -0
  25. package/lib/templates/src/infrastructure/README.md.js +19 -0
  26. package/lib/templates/src/integrations/README.md.d.ts +5 -0
  27. package/lib/templates/src/integrations/README.md.js +19 -0
  28. package/lib/templates/src/main.d.ts +5 -0
  29. package/lib/templates/src/main.js +15 -0
  30. package/lib/templates/src/workflows/README.md.d.ts +5 -0
  31. package/lib/templates/src/workflows/README.md.js +19 -0
  32. package/lib/workflows/aws-teardown-workflow.d.ts +13 -0
  33. package/lib/workflows/aws-teardown-workflow.js +222 -0
  34. package/lib/workflows/build-dev-workflow.d.ts +12 -0
  35. package/lib/workflows/build-dev-workflow.js +48 -0
  36. package/lib/workflows/build-stage-workflow.d.ts +12 -0
  37. package/lib/workflows/build-stage-workflow.js +60 -0
  38. package/package.json +51 -0
package/README.md ADDED
@@ -0,0 +1,3 @@
1
+ # @openhi/platform
2
+
3
+ Core framework for building platform services in OpenHI. The library provides templates, workflows, and utilities for creating consistent platform implementations and standardized service structure.
package/lib/index.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export * from "./openhi";
2
+ export * from "./service";
package/lib/index.js ADDED
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./openhi"), exports);
18
+ __exportStar(require("./service"), exports);
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJDQUF5QjtBQUN6Qiw0Q0FBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9vcGVuaGlcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NlcnZpY2VcIjtcbiJdfQ==
@@ -0,0 +1,88 @@
1
+ import { MonorepoProject, MonorepoProjectOptions } from "@codedrifters/configulator";
2
+ import { OpenHiConfig } from "@openhi/config";
3
+ import { SetOptional } from "type-fest";
4
+ import { OpenHiService } from "./service";
5
+ export interface OpenHiOptions {
6
+ /*****************************************************************************
7
+ *
8
+ * Root Project Configuration Options
9
+ *
10
+ * Configuration options for the root monorepo project that contains all
11
+ * OpenHi services and coordinate releases and builds.
12
+ *
13
+ ****************************************************************************/
14
+ readonly rootProjectOptions?: SetOptional<MonorepoProjectOptions, "name">;
15
+ /**
16
+ * Monorepo root project, if using an existing project.
17
+ */
18
+ readonly rootProject?: MonorepoProject;
19
+ /*****************************************************************************
20
+ *
21
+ * Service Configuration Options
22
+ *
23
+ * These options are used to configure the various services within the OpenHi
24
+ * framework. Each service can have its own configuration settings, which will
25
+ * be merged with the default configuration.
26
+ *
27
+ ****************************************************************************/
28
+ /**
29
+ * Default configuration used in all services with undefined configs.
30
+ */
31
+ readonly defaultConfig?: OpenHiConfig;
32
+ /**
33
+ * Global Service Config
34
+ */
35
+ readonly globalServiceConfig?: OpenHiConfig;
36
+ /**
37
+ * Auth Service Config
38
+ */
39
+ readonly authServiceConfig?: OpenHiConfig;
40
+ /**
41
+ * Rest API Service Config
42
+ */
43
+ readonly restApiServiceConfig?: OpenHiConfig;
44
+ /**
45
+ * Core Service Config
46
+ */
47
+ readonly coreServiceConfig?: OpenHiConfig;
48
+ /**
49
+ * Data Service Config (DynamoDB FHIR store, S3, etc.)
50
+ */
51
+ readonly dataServiceConfig?: OpenHiConfig;
52
+ }
53
+ export declare class OpenHi {
54
+ /**
55
+ * Final options used to build this instance.
56
+ */
57
+ options: OpenHiOptions;
58
+ /**
59
+ * Monorepo root project, either passed in as an argument or generated in
60
+ * this component
61
+ */
62
+ readonly rootProject?: MonorepoProject;
63
+ /**
64
+ * Test identifier for this instance.
65
+ */
66
+ readonly id: string;
67
+ /**
68
+ * Global service (deployed first; Core and data services depend on it).
69
+ */
70
+ readonly global: OpenHiService;
71
+ /**
72
+ * Auth service (deployed before Core; Core and data services depend on it).
73
+ */
74
+ readonly auth: OpenHiService;
75
+ /**
76
+ * Rest API service
77
+ */
78
+ readonly restApi: OpenHiService;
79
+ /**
80
+ * Core service
81
+ */
82
+ readonly core: OpenHiService;
83
+ /**
84
+ * Data service (DynamoDB FHIR store, S3, and other persistence).
85
+ */
86
+ readonly data: OpenHiService;
87
+ constructor(options?: OpenHiOptions);
88
+ }
package/lib/openhi.js ADDED
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OpenHi = void 0;
4
+ const ts_deepmerge_1 = require("ts-deepmerge");
5
+ const service_1 = require("./service");
6
+ const aws_teardown_workflow_1 = require("./workflows/aws-teardown-workflow");
7
+ const build_dev_workflow_1 = require("./workflows/build-dev-workflow");
8
+ const build_stage_workflow_1 = require("./workflows/build-stage-workflow");
9
+ class OpenHi {
10
+ constructor(options = {}) {
11
+ /***************************************************************************
12
+ *
13
+ * Options
14
+ *
15
+ * Combine input options with defaults.
16
+ *
17
+ **************************************************************************/
18
+ this.options = (0, ts_deepmerge_1.merge)({ name: "openhi" }, options);
19
+ this.rootProject = this.options.rootProject;
20
+ this.id = this.options.rootProject?.name ?? "openhi";
21
+ /**
22
+ * In future we would create root project here. For now, require it to be
23
+ * passed in.
24
+ */
25
+ if (!this.rootProject) {
26
+ throw new Error("OpenHi requires a MonorepoProject to be passed in via the rootProject option");
27
+ }
28
+ const rootProject = this.rootProject;
29
+ /***************************************************************************
30
+ *
31
+ * Global Service
32
+ *
33
+ * Authentication (Cognito user pool, client, domain, KMS). Deployed before
34
+ * Core so that Core can consume auth via SSM parameters.
35
+ *
36
+ **************************************************************************/
37
+ this.global = new service_1.OpenHiService(this, "global", {
38
+ type: service_1.OPEN_HI_SERVICE_TYPE.GLOBAL,
39
+ config: (0, ts_deepmerge_1.merge)(this.options?.defaultConfig ?? {}, this.options?.globalServiceConfig ?? {}),
40
+ });
41
+ /***************************************************************************
42
+ *
43
+ * Auth Service
44
+ *
45
+ * Authentication (Cognito user pool, client, domain, KMS). Deployed before
46
+ * Core so that Core can consume auth via SSM parameters.
47
+ *
48
+ **************************************************************************/
49
+ this.auth = new service_1.OpenHiService(this, "auth", {
50
+ type: service_1.OPEN_HI_SERVICE_TYPE.AUTH,
51
+ config: (0, ts_deepmerge_1.merge)(this.options?.defaultConfig ?? {}, this.options?.authServiceConfig ?? {}),
52
+ });
53
+ /***************************************************************************
54
+ *
55
+ * Rest API service
56
+ *
57
+ * This contains the REST API for the OpenHi platform.
58
+ *
59
+ **************************************************************************/
60
+ this.restApi = new service_1.OpenHiService(this, "rest-api", {
61
+ type: service_1.OPEN_HI_SERVICE_TYPE.REST_API,
62
+ config: (0, ts_deepmerge_1.merge)(this.options?.defaultConfig ?? {}, this.options?.restApiServiceConfig ?? {}),
63
+ });
64
+ /***************************************************************************
65
+ *
66
+ * Core Service
67
+ *
68
+ * This contains resources that are common across multiple enterprise use
69
+ * cases.
70
+ *
71
+ **************************************************************************/
72
+ this.core = new service_1.OpenHiService(this, "core", {
73
+ type: service_1.OPEN_HI_SERVICE_TYPE.CORE,
74
+ config: (0, ts_deepmerge_1.merge)(this.options?.defaultConfig ?? {}, this.options?.coreServiceConfig ?? {}),
75
+ });
76
+ /***************************************************************************
77
+ *
78
+ * Data Service
79
+ *
80
+ * Data storage stack (DynamoDB FHIR store, S3, etc.). Deployed so that
81
+ * REST API and other services can reference the table via cross-stack.
82
+ *
83
+ **************************************************************************/
84
+ this.data = new service_1.OpenHiService(this, "data", {
85
+ type: service_1.OPEN_HI_SERVICE_TYPE.DATA_SERVICE,
86
+ config: (0, ts_deepmerge_1.merge)(this.options?.defaultConfig ?? {}, this.options?.dataServiceConfig ?? {}),
87
+ });
88
+ /***************************************************************************
89
+ *
90
+ * Integrations
91
+ *
92
+ * Various purpose specific integrations.
93
+ *
94
+ **************************************************************************/
95
+ /***************************************************************************
96
+ *
97
+ * Workflows
98
+ *
99
+ * Workflows for each environment.
100
+ *
101
+ **************************************************************************/
102
+ new build_dev_workflow_1.BuildDevelopmentWorkflow(rootProject, { openhi: this });
103
+ new build_stage_workflow_1.BuildStageWorkflow(rootProject, { openhi: this });
104
+ new aws_teardown_workflow_1.AwsTeardownWorkflow(rootProject, { openhi: this });
105
+ }
106
+ }
107
+ exports.OpenHi = OpenHi;
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbmhpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL29wZW5oaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFLQSwrQ0FBcUM7QUFFckMsdUNBQWdFO0FBQ2hFLDZFQUF3RTtBQUN4RSx1RUFBMEU7QUFDMUUsMkVBQXNFO0FBNER0RSxNQUFhLE1BQU07SUEwQ2pCLFlBQVksVUFBeUIsRUFBRTtRQUNyQzs7Ozs7O29GQU00RTtRQUU1RSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUEsb0JBQUssRUFBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDO1FBQzVDLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsSUFBSSxJQUFJLFFBQVEsQ0FBQztRQUVyRDs7O1dBR0c7UUFDSCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3RCLE1BQU0sSUFBSSxLQUFLLENBQ2IsOEVBQThFLENBQy9FLENBQUM7UUFDSixDQUFDO1FBRUQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUVyQzs7Ozs7OztvRkFPNEU7UUFFNUUsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLHVCQUFhLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRTtZQUM5QyxJQUFJLEVBQUUsOEJBQW9CLENBQUMsTUFBTTtZQUNqQyxNQUFNLEVBQUUsSUFBQSxvQkFBSyxFQUNYLElBQUksQ0FBQyxPQUFPLEVBQUUsYUFBYSxJQUFJLEVBQUUsRUFDakMsSUFBSSxDQUFDLE9BQU8sRUFBRSxtQkFBbUIsSUFBSSxFQUFFLENBQ3hDO1NBQ0YsQ0FBQyxDQUFDO1FBRUg7Ozs7Ozs7b0ZBTzRFO1FBRTVFLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSx1QkFBYSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUU7WUFDMUMsSUFBSSxFQUFFLDhCQUFvQixDQUFDLElBQUk7WUFDL0IsTUFBTSxFQUFFLElBQUEsb0JBQUssRUFDWCxJQUFJLENBQUMsT0FBTyxFQUFFLGFBQWEsSUFBSSxFQUFFLEVBQ2pDLElBQUksQ0FBQyxPQUFPLEVBQUUsaUJBQWlCLElBQUksRUFBRSxDQUN0QztTQUNGLENBQUMsQ0FBQztRQUVIOzs7Ozs7b0ZBTTRFO1FBRTVFLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSx1QkFBYSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDakQsSUFBSSxFQUFFLDhCQUFvQixDQUFDLFFBQVE7WUFDbkMsTUFBTSxFQUFFLElBQUEsb0JBQUssRUFDWCxJQUFJLENBQUMsT0FBTyxFQUFFLGFBQWEsSUFBSSxFQUFFLEVBQ2pDLElBQUksQ0FBQyxPQUFPLEVBQUUsb0JBQW9CLElBQUksRUFBRSxDQUN6QztTQUNGLENBQUMsQ0FBQztRQUVIOzs7Ozs7O29GQU80RTtRQUU1RSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksdUJBQWEsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFO1lBQzFDLElBQUksRUFBRSw4QkFBb0IsQ0FBQyxJQUFJO1lBQy9CLE1BQU0sRUFBRSxJQUFBLG9CQUFLLEVBQ1gsSUFBSSxDQUFDLE9BQU8sRUFBRSxhQUFhLElBQUksRUFBRSxFQUNqQyxJQUFJLENBQUMsT0FBTyxFQUFFLGlCQUFpQixJQUFJLEVBQUUsQ0FDdEM7U0FDRixDQUFDLENBQUM7UUFFSDs7Ozs7OztvRkFPNEU7UUFFNUUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLHVCQUFhLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRTtZQUMxQyxJQUFJLEVBQUUsOEJBQW9CLENBQUMsWUFBWTtZQUN2QyxNQUFNLEVBQUUsSUFBQSxvQkFBSyxFQUNYLElBQUksQ0FBQyxPQUFPLEVBQUUsYUFBYSxJQUFJLEVBQUUsRUFDakMsSUFBSSxDQUFDLE9BQU8sRUFBRSxpQkFBaUIsSUFBSSxFQUFFLENBQ3RDO1NBQ0YsQ0FBQyxDQUFDO1FBRUg7Ozs7OztvRkFNNEU7UUFFNUU7Ozs7OztvRkFNNEU7UUFFNUUsSUFBSSw2Q0FBd0IsQ0FBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM1RCxJQUFJLHlDQUFrQixDQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRXRELElBQUksMkNBQW1CLENBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDekQsQ0FBQztDQUNGO0FBNUtELHdCQTRLQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIE1vbm9yZXBvUHJvamVjdCxcbiAgTW9ub3JlcG9Qcm9qZWN0T3B0aW9ucyxcbn0gZnJvbSBcIkBjb2RlZHJpZnRlcnMvY29uZmlndWxhdG9yXCI7XG5pbXBvcnQgeyBPcGVuSGlDb25maWcgfSBmcm9tIFwiQG9wZW5oaS9jb25maWdcIjtcbmltcG9ydCB7IG1lcmdlIH0gZnJvbSBcInRzLWRlZXBtZXJnZVwiO1xuaW1wb3J0IHsgU2V0T3B0aW9uYWwgfSBmcm9tIFwidHlwZS1mZXN0XCI7XG5pbXBvcnQgeyBPUEVOX0hJX1NFUlZJQ0VfVFlQRSwgT3BlbkhpU2VydmljZSB9IGZyb20gXCIuL3NlcnZpY2VcIjtcbmltcG9ydCB7IEF3c1RlYXJkb3duV29ya2Zsb3cgfSBmcm9tIFwiLi93b3JrZmxvd3MvYXdzLXRlYXJkb3duLXdvcmtmbG93XCI7XG5pbXBvcnQgeyBCdWlsZERldmVsb3BtZW50V29ya2Zsb3cgfSBmcm9tIFwiLi93b3JrZmxvd3MvYnVpbGQtZGV2LXdvcmtmbG93XCI7XG5pbXBvcnQgeyBCdWlsZFN0YWdlV29ya2Zsb3cgfSBmcm9tIFwiLi93b3JrZmxvd3MvYnVpbGQtc3RhZ2Utd29ya2Zsb3dcIjtcblxuZXhwb3J0IGludGVyZmFjZSBPcGVuSGlPcHRpb25zIHtcbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqXG4gICAqIFJvb3QgUHJvamVjdCBDb25maWd1cmF0aW9uIE9wdGlvbnNcbiAgICpcbiAgICogQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgcm9vdCBtb25vcmVwbyBwcm9qZWN0IHRoYXQgY29udGFpbnMgYWxsXG4gICAqIE9wZW5IaSBzZXJ2aWNlcyBhbmQgY29vcmRpbmF0ZSByZWxlYXNlcyBhbmQgYnVpbGRzLlxuICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICByZWFkb25seSByb290UHJvamVjdE9wdGlvbnM/OiBTZXRPcHRpb25hbDxNb25vcmVwb1Byb2plY3RPcHRpb25zLCBcIm5hbWVcIj47XG5cbiAgLyoqXG4gICAqIE1vbm9yZXBvIHJvb3QgcHJvamVjdCwgaWYgdXNpbmcgYW4gZXhpc3RpbmcgcHJvamVjdC5cbiAgICovXG4gIHJlYWRvbmx5IHJvb3RQcm9qZWN0PzogTW9ub3JlcG9Qcm9qZWN0O1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKlxuICAgKiBTZXJ2aWNlIENvbmZpZ3VyYXRpb24gT3B0aW9uc1xuICAgKlxuICAgKiBUaGVzZSBvcHRpb25zIGFyZSB1c2VkIHRvIGNvbmZpZ3VyZSB0aGUgdmFyaW91cyBzZXJ2aWNlcyB3aXRoaW4gdGhlIE9wZW5IaVxuICAgKiBmcmFtZXdvcmsuIEVhY2ggc2VydmljZSBjYW4gaGF2ZSBpdHMgb3duIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MsIHdoaWNoIHdpbGxcbiAgICogYmUgbWVyZ2VkIHdpdGggdGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbi5cbiAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgLyoqXG4gICAqIERlZmF1bHQgY29uZmlndXJhdGlvbiB1c2VkIGluIGFsbCBzZXJ2aWNlcyB3aXRoIHVuZGVmaW5lZCBjb25maWdzLlxuICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdENvbmZpZz86IE9wZW5IaUNvbmZpZztcblxuICAvKipcbiAgICogR2xvYmFsIFNlcnZpY2UgQ29uZmlnXG4gICAqL1xuICByZWFkb25seSBnbG9iYWxTZXJ2aWNlQ29uZmlnPzogT3BlbkhpQ29uZmlnO1xuXG4gIC8qKlxuICAgKiBBdXRoIFNlcnZpY2UgQ29uZmlnXG4gICAqL1xuICByZWFkb25seSBhdXRoU2VydmljZUNvbmZpZz86IE9wZW5IaUNvbmZpZztcblxuICAvKipcbiAgICogUmVzdCBBUEkgU2VydmljZSBDb25maWdcbiAgICovXG4gIHJlYWRvbmx5IHJlc3RBcGlTZXJ2aWNlQ29uZmlnPzogT3BlbkhpQ29uZmlnO1xuXG4gIC8qKlxuICAgKiBDb3JlIFNlcnZpY2UgQ29uZmlnXG4gICAqL1xuICByZWFkb25seSBjb3JlU2VydmljZUNvbmZpZz86IE9wZW5IaUNvbmZpZztcblxuICAvKipcbiAgICogRGF0YSBTZXJ2aWNlIENvbmZpZyAoRHluYW1vREIgRkhJUiBzdG9yZSwgUzMsIGV0Yy4pXG4gICAqL1xuICByZWFkb25seSBkYXRhU2VydmljZUNvbmZpZz86IE9wZW5IaUNvbmZpZztcbn1cblxuZXhwb3J0IGNsYXNzIE9wZW5IaSB7XG4gIC8qKlxuICAgKiBGaW5hbCBvcHRpb25zIHVzZWQgdG8gYnVpbGQgdGhpcyBpbnN0YW5jZS5cbiAgICovXG4gIHB1YmxpYyBvcHRpb25zOiBPcGVuSGlPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBNb25vcmVwbyByb290IHByb2plY3QsIGVpdGhlciBwYXNzZWQgaW4gYXMgYW4gYXJndW1lbnQgb3IgZ2VuZXJhdGVkIGluXG4gICAqIHRoaXMgY29tcG9uZW50XG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcm9vdFByb2plY3Q/OiBNb25vcmVwb1Byb2plY3Q7XG5cbiAgLyoqXG4gICAqIFRlc3QgaWRlbnRpZmllciBmb3IgdGhpcyBpbnN0YW5jZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBpZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBHbG9iYWwgc2VydmljZSAoZGVwbG95ZWQgZmlyc3Q7IENvcmUgYW5kIGRhdGEgc2VydmljZXMgZGVwZW5kIG9uIGl0KS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBnbG9iYWw6IE9wZW5IaVNlcnZpY2U7XG5cbiAgLyoqXG4gICAqIEF1dGggc2VydmljZSAoZGVwbG95ZWQgYmVmb3JlIENvcmU7IENvcmUgYW5kIGRhdGEgc2VydmljZXMgZGVwZW5kIG9uIGl0KS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhdXRoOiBPcGVuSGlTZXJ2aWNlO1xuXG4gIC8qKlxuICAgKiBSZXN0IEFQSSBzZXJ2aWNlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcmVzdEFwaTogT3BlbkhpU2VydmljZTtcblxuICAvKipcbiAgICogQ29yZSBzZXJ2aWNlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY29yZTogT3BlbkhpU2VydmljZTtcblxuICAvKipcbiAgICogRGF0YSBzZXJ2aWNlIChEeW5hbW9EQiBGSElSIHN0b3JlLCBTMywgYW5kIG90aGVyIHBlcnNpc3RlbmNlKS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBkYXRhOiBPcGVuSGlTZXJ2aWNlO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IE9wZW5IaU9wdGlvbnMgPSB7fSkge1xuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgKlxuICAgICAqIE9wdGlvbnNcbiAgICAgKlxuICAgICAqIENvbWJpbmUgaW5wdXQgb3B0aW9ucyB3aXRoIGRlZmF1bHRzLlxuICAgICAqXG4gICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gICAgdGhpcy5vcHRpb25zID0gbWVyZ2UoeyBuYW1lOiBcIm9wZW5oaVwiIH0sIG9wdGlvbnMpO1xuICAgIHRoaXMucm9vdFByb2plY3QgPSB0aGlzLm9wdGlvbnMucm9vdFByb2plY3Q7XG4gICAgdGhpcy5pZCA9IHRoaXMub3B0aW9ucy5yb290UHJvamVjdD8ubmFtZSA/PyBcIm9wZW5oaVwiO1xuXG4gICAgLyoqXG4gICAgICogSW4gZnV0dXJlIHdlIHdvdWxkIGNyZWF0ZSByb290IHByb2plY3QgaGVyZS4gRm9yIG5vdywgcmVxdWlyZSBpdCB0byBiZVxuICAgICAqIHBhc3NlZCBpbi5cbiAgICAgKi9cbiAgICBpZiAoIXRoaXMucm9vdFByb2plY3QpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJPcGVuSGkgcmVxdWlyZXMgYSBNb25vcmVwb1Byb2plY3QgdG8gYmUgcGFzc2VkIGluIHZpYSB0aGUgcm9vdFByb2plY3Qgb3B0aW9uXCIsXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHJvb3RQcm9qZWN0ID0gdGhpcy5yb290UHJvamVjdDtcblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgKlxuICAgICAqIEdsb2JhbCBTZXJ2aWNlXG4gICAgICpcbiAgICAgKiBBdXRoZW50aWNhdGlvbiAoQ29nbml0byB1c2VyIHBvb2wsIGNsaWVudCwgZG9tYWluLCBLTVMpLiBEZXBsb3llZCBiZWZvcmVcbiAgICAgKiBDb3JlIHNvIHRoYXQgQ29yZSBjYW4gY29uc3VtZSBhdXRoIHZpYSBTU00gcGFyYW1ldGVycy5cbiAgICAgKlxuICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAgIHRoaXMuZ2xvYmFsID0gbmV3IE9wZW5IaVNlcnZpY2UodGhpcywgXCJnbG9iYWxcIiwge1xuICAgICAgdHlwZTogT1BFTl9ISV9TRVJWSUNFX1RZUEUuR0xPQkFMLFxuICAgICAgY29uZmlnOiBtZXJnZShcbiAgICAgICAgdGhpcy5vcHRpb25zPy5kZWZhdWx0Q29uZmlnID8/IHt9LFxuICAgICAgICB0aGlzLm9wdGlvbnM/Lmdsb2JhbFNlcnZpY2VDb25maWcgPz8ge30sXG4gICAgICApLFxuICAgIH0pO1xuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAqXG4gICAgICogQXV0aCBTZXJ2aWNlXG4gICAgICpcbiAgICAgKiBBdXRoZW50aWNhdGlvbiAoQ29nbml0byB1c2VyIHBvb2wsIGNsaWVudCwgZG9tYWluLCBLTVMpLiBEZXBsb3llZCBiZWZvcmVcbiAgICAgKiBDb3JlIHNvIHRoYXQgQ29yZSBjYW4gY29uc3VtZSBhdXRoIHZpYSBTU00gcGFyYW1ldGVycy5cbiAgICAgKlxuICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAgIHRoaXMuYXV0aCA9IG5ldyBPcGVuSGlTZXJ2aWNlKHRoaXMsIFwiYXV0aFwiLCB7XG4gICAgICB0eXBlOiBPUEVOX0hJX1NFUlZJQ0VfVFlQRS5BVVRILFxuICAgICAgY29uZmlnOiBtZXJnZShcbiAgICAgICAgdGhpcy5vcHRpb25zPy5kZWZhdWx0Q29uZmlnID8/IHt9LFxuICAgICAgICB0aGlzLm9wdGlvbnM/LmF1dGhTZXJ2aWNlQ29uZmlnID8/IHt9LFxuICAgICAgKSxcbiAgICB9KTtcblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgKlxuICAgICAqIFJlc3QgQVBJIHNlcnZpY2VcbiAgICAgKlxuICAgICAqIFRoaXMgY29udGFpbnMgdGhlIFJFU1QgQVBJIGZvciB0aGUgT3BlbkhpIHBsYXRmb3JtLlxuICAgICAqXG4gICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gICAgdGhpcy5yZXN0QXBpID0gbmV3IE9wZW5IaVNlcnZpY2UodGhpcywgXCJyZXN0LWFwaVwiLCB7XG4gICAgICB0eXBlOiBPUEVOX0hJX1NFUlZJQ0VfVFlQRS5SRVNUX0FQSSxcbiAgICAgIGNvbmZpZzogbWVyZ2UoXG4gICAgICAgIHRoaXMub3B0aW9ucz8uZGVmYXVsdENvbmZpZyA/PyB7fSxcbiAgICAgICAgdGhpcy5vcHRpb25zPy5yZXN0QXBpU2VydmljZUNvbmZpZyA/PyB7fSxcbiAgICAgICksXG4gICAgfSk7XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICpcbiAgICAgKiBDb3JlIFNlcnZpY2VcbiAgICAgKlxuICAgICAqIFRoaXMgY29udGFpbnMgcmVzb3VyY2VzIHRoYXQgYXJlIGNvbW1vbiBhY3Jvc3MgbXVsdGlwbGUgZW50ZXJwcmlzZSB1c2VcbiAgICAgKiBjYXNlcy5cbiAgICAgKlxuICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAgIHRoaXMuY29yZSA9IG5ldyBPcGVuSGlTZXJ2aWNlKHRoaXMsIFwiY29yZVwiLCB7XG4gICAgICB0eXBlOiBPUEVOX0hJX1NFUlZJQ0VfVFlQRS5DT1JFLFxuICAgICAgY29uZmlnOiBtZXJnZShcbiAgICAgICAgdGhpcy5vcHRpb25zPy5kZWZhdWx0Q29uZmlnID8/IHt9LFxuICAgICAgICB0aGlzLm9wdGlvbnM/LmNvcmVTZXJ2aWNlQ29uZmlnID8/IHt9LFxuICAgICAgKSxcbiAgICB9KTtcblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgKlxuICAgICAqIERhdGEgU2VydmljZVxuICAgICAqXG4gICAgICogRGF0YSBzdG9yYWdlIHN0YWNrIChEeW5hbW9EQiBGSElSIHN0b3JlLCBTMywgZXRjLikuIERlcGxveWVkIHNvIHRoYXRcbiAgICAgKiBSRVNUIEFQSSBhbmQgb3RoZXIgc2VydmljZXMgY2FuIHJlZmVyZW5jZSB0aGUgdGFibGUgdmlhIGNyb3NzLXN0YWNrLlxuICAgICAqXG4gICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gICAgdGhpcy5kYXRhID0gbmV3IE9wZW5IaVNlcnZpY2UodGhpcywgXCJkYXRhXCIsIHtcbiAgICAgIHR5cGU6IE9QRU5fSElfU0VSVklDRV9UWVBFLkRBVEFfU0VSVklDRSxcbiAgICAgIGNvbmZpZzogbWVyZ2UoXG4gICAgICAgIHRoaXMub3B0aW9ucz8uZGVmYXVsdENvbmZpZyA/PyB7fSxcbiAgICAgICAgdGhpcy5vcHRpb25zPy5kYXRhU2VydmljZUNvbmZpZyA/PyB7fSxcbiAgICAgICksXG4gICAgfSk7XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICpcbiAgICAgKiBJbnRlZ3JhdGlvbnNcbiAgICAgKlxuICAgICAqIFZhcmlvdXMgcHVycG9zZSBzcGVjaWZpYyBpbnRlZ3JhdGlvbnMuXG4gICAgICpcbiAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICpcbiAgICAgKiBXb3JrZmxvd3NcbiAgICAgKlxuICAgICAqIFdvcmtmbG93cyBmb3IgZWFjaCBlbnZpcm9ubWVudC5cbiAgICAgKlxuICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAgIG5ldyBCdWlsZERldmVsb3BtZW50V29ya2Zsb3cocm9vdFByb2plY3QsIHsgb3BlbmhpOiB0aGlzIH0pO1xuICAgIG5ldyBCdWlsZFN0YWdlV29ya2Zsb3cocm9vdFByb2plY3QsIHsgb3BlbmhpOiB0aGlzIH0pO1xuXG4gICAgbmV3IEF3c1RlYXJkb3duV29ya2Zsb3cocm9vdFByb2plY3QsIHsgb3BlbmhpOiB0aGlzIH0pO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,36 @@
1
+ import { OpenHiConfig } from "@openhi/config";
2
+ import { awscdk } from "projen";
3
+ import { ValueOf } from "type-fest";
4
+ import { OpenHi } from "./openhi";
5
+ export declare const OPEN_HI_SERVICE_TYPE: {
6
+ readonly AUTH: "auth";
7
+ readonly CORE: "core";
8
+ readonly DATA_SERVICE: "data";
9
+ readonly GLOBAL: "global";
10
+ readonly INTEGRATION: "integration";
11
+ readonly REST_API: "rest-api";
12
+ };
13
+ export interface OpenHiServiceOptions {
14
+ /**
15
+ * Configuration for this service.
16
+ *
17
+ * @default uses the global default config.
18
+ */
19
+ readonly config: OpenHiConfig;
20
+ /**
21
+ * What type of service is this?
22
+ */
23
+ readonly type: ValueOf<typeof OPEN_HI_SERVICE_TYPE>;
24
+ }
25
+ export declare class OpenHiService {
26
+ openHi: OpenHi;
27
+ id: string;
28
+ options: OpenHiServiceOptions;
29
+ readonly project: awscdk.AwsCdkTypeScriptApp;
30
+ constructor(openHi: OpenHi, id: string, options: OpenHiServiceOptions);
31
+ private addDeploymentTarget;
32
+ get constructName(): string;
33
+ get outDir(): string;
34
+ get serviceName(): string;
35
+ get typeDir(): Array<string>;
36
+ }
package/lib/service.js ADDED
@@ -0,0 +1,203 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OpenHiService = exports.OPEN_HI_SERVICE_TYPE = void 0;
4
+ const path_1 = require("path");
5
+ const configulator_1 = require("@codedrifters/configulator");
6
+ const config_1 = require("@openhi/config");
7
+ const change_case_1 = require("change-case");
8
+ const projen_1 = require("projen");
9
+ const javascript_1 = require("projen/lib/javascript");
10
+ const generate_templates_1 = require("./templates/generate-templates");
11
+ exports.OPEN_HI_SERVICE_TYPE = {
12
+ AUTH: "auth",
13
+ CORE: "core",
14
+ DATA_SERVICE: "data",
15
+ GLOBAL: "global",
16
+ INTEGRATION: "integration",
17
+ REST_API: "rest-api",
18
+ };
19
+ class OpenHiService {
20
+ constructor(openHi, id, options) {
21
+ /**
22
+ * Build the construct name we expect to use in this service.
23
+ */
24
+ this.openHi = openHi;
25
+ this.id = id;
26
+ this.options = options;
27
+ this.addDeploymentTarget = (awsStageType, awsEnvironmentType, envConfig) => {
28
+ new configulator_1.AwsDeploymentTarget(this.project, {
29
+ account: envConfig.account,
30
+ region: envConfig.region,
31
+ awsStageType,
32
+ awsEnvironmentType,
33
+ localDeployment: true,
34
+ localDeploymentConfig: {
35
+ stackPattern: `${awsStageType}/${awsEnvironmentType}/*-${envConfig.account}-${envConfig.region}`,
36
+ roleName: "poweruseraccess",
37
+ },
38
+ ciDeployment: true,
39
+ ciDeploymentConfig: {
40
+ roleArn: `arn:aws:iam::${envConfig.account}:role/GitHubOpenHiDeployer`,
41
+ stackPattern: `${awsStageType}/${awsEnvironmentType}/*-${envConfig.account}-${envConfig.region}`,
42
+ },
43
+ branches: awsStageType === config_1.OPEN_HI_STAGE.DEV
44
+ ? [
45
+ {
46
+ branch: "feat/*",
47
+ description: [
48
+ "Feature branches for OpenHI (short form).",
49
+ "These branches are used for developing new features.",
50
+ ],
51
+ },
52
+ {
53
+ branch: "feature/*",
54
+ description: [
55
+ "Feature branches for OpenHI.",
56
+ "These branches are used for developing new features.",
57
+ ],
58
+ },
59
+ {
60
+ branch: "fix/*",
61
+ description: [
62
+ "Fix branches for OpenHI.",
63
+ "This branch pattern is used when a developer is working on a fix on the project.",
64
+ ],
65
+ },
66
+ ]
67
+ : [
68
+ {
69
+ branch: "main",
70
+ description: [
71
+ "Main branch for OpenHI.",
72
+ "This branch is used for the main branch.",
73
+ ],
74
+ },
75
+ ],
76
+ });
77
+ };
78
+ /***************************************************************************
79
+ *
80
+ * Projen based CDK build
81
+ *
82
+ **************************************************************************/
83
+ this.project = new projen_1.awscdk.AwsCdkTypeScriptApp({
84
+ /**
85
+ * Top level project config options
86
+ */
87
+ defaultReleaseBranch: "main",
88
+ name: this.serviceName,
89
+ outdir: this.outDir,
90
+ parent: this.openHi.rootProject,
91
+ cdkVersion: this.options?.config?.versions?.cdk?.cdkLibVersion ??
92
+ configulator_1.VERSION.AWS_CDK_LIB_VERSION,
93
+ cdkCliVersion: this.options?.config?.versions?.cdk?.cdkCliVersion ??
94
+ configulator_1.VERSION.AWS_CDK_CLI_VERSION,
95
+ /**
96
+ * Packaging options
97
+ *
98
+ * TODO: Figure out license for monorepo vs per package?
99
+ */
100
+ licensed: false,
101
+ /**
102
+ * Node configs
103
+ */
104
+ packageManager: javascript_1.NodePackageManager.PNPM,
105
+ /**
106
+ * Turn on prettier formatting
107
+ */
108
+ prettier: true,
109
+ /**
110
+ * Don't generate sample code.
111
+ */
112
+ sampleCode: false,
113
+ /**
114
+ * Make sure jest config is stored outside of package.json and use SWC
115
+ * for faster tests.
116
+ */
117
+ jestOptions: {
118
+ configFilePath: "jest.config.json",
119
+ jestConfig: {
120
+ transform: {
121
+ ["^.+\\.[t]sx?$"]: new javascript_1.Transform("@swc/jest"),
122
+ },
123
+ },
124
+ },
125
+ /**
126
+ * SWC for faster testing
127
+ */
128
+ devDeps: ["@swc/jest", "@swc/core"],
129
+ /**
130
+ * Don't package test files.
131
+ */
132
+ npmIgnoreOptions: {
133
+ ignorePatterns: ["*.spec.*", "*.test.*"],
134
+ },
135
+ });
136
+ /**
137
+ * We're using SWC now, remove ts-jest which is included by default.
138
+ */
139
+ this.project.deps.removeDependency("ts-jest");
140
+ /***************************************************************************
141
+ *
142
+ * Workspace Dependencies
143
+ *
144
+ * - Constructs are used to build out the AWS CDK environments.
145
+ *
146
+ **************************************************************************/
147
+ this.project.addDeps("@openhi/config@workspace:*", "@openhi/constructs@workspace:*");
148
+ /***************************************************************************
149
+ *
150
+ * Turbo Configuration
151
+ *
152
+ * - Activate turborepo for the project.
153
+ *
154
+ **************************************************************************/
155
+ new configulator_1.TurboRepo(this.project);
156
+ /***************************************************************************
157
+ *
158
+ * Define some basic Service Structure
159
+ *
160
+ **************************************************************************/
161
+ new generate_templates_1.GenerateTemplates(this);
162
+ /***************************************************************************
163
+ *
164
+ * Deployment Targets
165
+ *
166
+ **************************************************************************/
167
+ [config_1.OPEN_HI_STAGE.DEV, config_1.OPEN_HI_STAGE.STAGE, config_1.OPEN_HI_STAGE.PROD].forEach((stage) => {
168
+ const targets = this.options?.config?.deploymentTargets?.[stage];
169
+ if (targets?.primary) {
170
+ this.addDeploymentTarget(stage, config_1.OPEN_HI_DEPLOYMENT_TARGET_ROLE.PRIMARY, targets.primary);
171
+ }
172
+ targets?.secondary?.forEach((env) => {
173
+ this.addDeploymentTarget(stage, config_1.OPEN_HI_DEPLOYMENT_TARGET_ROLE.SECONDARY, env);
174
+ });
175
+ });
176
+ }
177
+ get constructName() {
178
+ return (0, change_case_1.pascalCase)(["open", "hi", this.id, "service"].join("-"));
179
+ }
180
+ get outDir() {
181
+ return [
182
+ (0, change_case_1.paramCase)(this.openHi.id),
183
+ ...this.typeDir.map((x) => (0, change_case_1.paramCase)(x)),
184
+ (0, change_case_1.paramCase)(this.id),
185
+ ].join(path_1.sep);
186
+ }
187
+ get serviceName() {
188
+ return [(0, change_case_1.paramCase)(this.openHi.id), (0, change_case_1.paramCase)(this.id)].join("-");
189
+ }
190
+ get typeDir() {
191
+ return [];
192
+ /*
193
+ return this.options.type === OPEN_HI_SERVICE_TYPE.AUTH ||
194
+ this.options.type === OPEN_HI_SERVICE_TYPE.CORE ||
195
+ this.options.type === OPEN_HI_SERVICE_TYPE.GLOBAL
196
+ ? []
197
+ : this.options.type === OPEN_HI_SERVICE_TYPE.DATA_SERVICE
198
+ ? ["data"]
199
+ : ["integration"];*/
200
+ }
201
+ }
202
+ exports.OpenHiService = OpenHiService;
203
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtCQUEyQjtBQUMzQiw2REFJb0M7QUFDcEMsMkNBS3dCO0FBQ3hCLDZDQUFvRDtBQUNwRCxtQ0FBZ0M7QUFDaEMsc0RBQXNFO0FBR3RFLHVFQUFtRTtBQUV0RCxRQUFBLG9CQUFvQixHQUFHO0lBQ2xDLElBQUksRUFBRSxNQUFNO0lBQ1osSUFBSSxFQUFFLE1BQU07SUFDWixZQUFZLEVBQUUsTUFBTTtJQUNwQixNQUFNLEVBQUUsUUFBUTtJQUNoQixXQUFXLEVBQUUsYUFBYTtJQUMxQixRQUFRLEVBQUUsVUFBVTtDQUNaLENBQUM7QUFnQlgsTUFBYSxhQUFhO0lBR3hCLFlBQ1MsTUFBYyxFQUNkLEVBQVUsRUFDVixPQUE2QjtRQUVwQzs7V0FFRztRQU5JLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxPQUFFLEdBQUYsRUFBRSxDQUFRO1FBQ1YsWUFBTyxHQUFQLE9BQU8sQ0FBc0I7UUEwSTlCLHdCQUFtQixHQUFHLENBQzVCLFlBQTJDLEVBQzNDLGtCQUFrRSxFQUNsRSxTQUFrQyxFQUNsQyxFQUFFO1lBQ0YsSUFBSSxrQ0FBbUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNwQyxPQUFPLEVBQUUsU0FBUyxDQUFDLE9BQU87Z0JBQzFCLE1BQU0sRUFBRSxTQUFTLENBQUMsTUFBTTtnQkFDeEIsWUFBWTtnQkFDWixrQkFBa0I7Z0JBQ2xCLGVBQWUsRUFBRSxJQUFJO2dCQUNyQixxQkFBcUIsRUFBRTtvQkFDckIsWUFBWSxFQUFFLEdBQUcsWUFBWSxJQUFJLGtCQUFrQixNQUFNLFNBQVMsQ0FBQyxPQUFPLElBQUksU0FBUyxDQUFDLE1BQU0sRUFBRTtvQkFDaEcsUUFBUSxFQUFFLGlCQUFpQjtpQkFDNUI7Z0JBQ0QsWUFBWSxFQUFFLElBQUk7Z0JBQ2xCLGtCQUFrQixFQUFFO29CQUNsQixPQUFP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SUFBQSx1QkFBUyxFQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxFQUFFLENBQUM7UUFDVjs7Ozs7OztnQ0FPd0I7SUFDMUIsQ0FBQztDQUNGO0FBck9ELHNDQXFPQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNlcCB9IGZyb20gXCJwYXRoXCI7XG5pbXBvcnQge1xuICBBd3NEZXBsb3ltZW50VGFyZ2V0LFxuICBUdXJib1JlcG8sXG4gIFZFUlNJT04sXG59IGZyb20gXCJAY29kZWRyaWZ0ZXJzL2NvbmZpZ3VsYXRvclwiO1xuaW1wb3J0IHtcbiAgT1BFTl9ISV9ERVBMT1lNRU5UX1RBUkdFVF9ST0xFLFxuICBPUEVOX0hJX1NUQUdFLFxuICBPcGVuSGlDb25maWcsXG4gIE9wZW5IaUVudmlyb25tZW50Q29uZmlnLFxufSBmcm9tIFwiQG9wZW5oaS9jb25maWdcIjtcbmltcG9ydCB7IHBhcmFtQ2FzZSwgcGFzY2FsQ2FzZSB9IGZyb20gXCJjaGFuZ2UtY2FzZVwiO1xuaW1wb3J0IHsgYXdzY2RrIH0gZnJvbSBcInByb2plblwiO1xuaW1wb3J0IHsgTm9kZVBhY2thZ2VNYW5hZ2VyLCBUcmFuc2Zvcm0gfSBmcm9tIFwicHJvamVuL2xpYi9qYXZhc2NyaXB0XCI7XG5pbXBvcnQgeyBWYWx1ZU9mIH0gZnJvbSBcInR5cGUtZmVzdFwiO1xuaW1wb3J0IHsgT3BlbkhpIH0gZnJvbSBcIi4vb3BlbmhpXCI7XG5pbXBvcnQgeyBHZW5lcmF0ZVRlbXBsYXRlcyB9IGZyb20gXCIuL3RlbXBsYXRlcy9nZW5lcmF0ZS10ZW1wbGF0ZXNcIjtcblxuZXhwb3J0IGNvbnN0IE9QRU5fSElfU0VSVklDRV9UWVBFID0ge1xuICBBVVRIOiBcImF1dGhcIixcbiAgQ09SRTogXCJjb3JlXCIsXG4gIERBVEFfU0VSVklDRTogXCJkYXRhXCIsXG4gIEdMT0JBTDogXCJnbG9iYWxcIixcbiAgSU5URUdSQVRJT046IFwiaW50ZWdyYXRpb25cIixcbiAgUkVTVF9BUEk6IFwicmVzdC1hcGlcIixcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3BlbkhpU2VydmljZU9wdGlvbnMge1xuICAvKipcbiAgICogQ29uZmlndXJhdGlvbiBmb3IgdGhpcyBzZXJ2aWNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCB1c2VzIHRoZSBnbG9iYWwgZGVmYXVsdCBjb25maWcuXG4gICAqL1xuICByZWFkb25seSBjb25maWc6IE9wZW5IaUNvbmZpZztcblxuICAvKipcbiAgICogV2hhdCB0eXBlIG9mIHNlcnZpY2UgaXMgdGhpcz9cbiAgICovXG4gIHJlYWRvbmx5IHR5cGU6IFZhbHVlT2Y8dHlwZW9mIE9QRU5fSElfU0VSVklDRV9UWVBFPjtcbn1cblxuZXhwb3J0IGNsYXNzIE9wZW5IaVNlcnZpY2Uge1xuICBwdWJsaWMgcmVhZG9ubHkgcHJvamVjdDogYXdzY2RrLkF3c0Nka1R5cGVTY3JpcHRBcHA7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIG9wZW5IaTogT3BlbkhpLFxuICAgIHB1YmxpYyBpZDogc3RyaW5nLFxuICAgIHB1YmxpYyBvcHRpb25zOiBPcGVuSGlTZXJ2aWNlT3B0aW9ucyxcbiAgKSB7XG4gICAgLyoqXG4gICAgICogQnVpbGQgdGhlIGNvbnN0cnVjdCBuYW1lIHdlIGV4cGVjdCB0byB1c2UgaW4gdGhpcyBzZXJ2aWNlLlxuICAgICAqL1xuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAqXG4gICAgICogUHJvamVuIGJhc2VkIENESyBidWlsZFxuICAgICAqXG4gICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gICAgdGhpcy5wcm9qZWN0ID0gbmV3IGF3c2Nkay5Bd3NDZGtUeXBlU2NyaXB0QXBwKHtcbiAgICAgIC8qKlxuICAgICAgICogVG9wIGxldmVsIHByb2plY3QgY29uZmlnIG9wdGlvbnNcbiAgICAgICAqL1xuICAgICAgZGVmYXVsdFJlbGVhc2VCcmFuY2g6IFwibWFpblwiLFxuICAgICAgbmFtZTogdGhpcy5zZXJ2aWNlTmFtZSxcbiAgICAgIG91dGRpcjogdGhpcy5vdXREaXIsXG4gICAgICBwYXJlbnQ6IHRoaXMub3BlbkhpLnJvb3RQcm9qZWN0LFxuICAgICAgY2RrVmVyc2lvbjpcbiAgICAgICAgdGhpcy5vcHRpb25zPy5jb25maWc/LnZlcnNpb25zPy5jZGs/LmNka0xpYlZlcnNpb24gPz9cbiAgICAgICAgVkVSU0lPTi5BV1NfQ0RLX0xJQl9WRVJTSU9OLFxuICAgICAgY2RrQ2xpVmVyc2lvbjpcbiAgICAgICAgdGhpcy5vcHRpb25zPy5jb25maWc/LnZlcnNpb25zPy5jZGs/LmNka0NsaVZlcnNpb24gPz9cbiAgICAgICAgVkVSU0lPTi5BV1NfQ0RLX0NMSV9WRVJTSU9OLFxuXG4gICAgICAvKipcbiAgICAgICAqIFBhY2thZ2luZyBvcHRpb25zXG4gICAgICAgKlxuICAgICAgICogVE9ETzogRmlndXJlIG91dCBsaWNlbnNlIGZvciBtb25vcmVwbyB2cyBwZXIgcGFja2FnZT9cbiAgICAgICAqL1xuICAgICAgbGljZW5zZWQ6IGZhbHNlLFxuXG4gICAgICAvKipcbiAgICAgICAqIE5vZGUgY29uZmlnc1xuICAgICAgICovXG4gICAgICBwYWNrYWdlTWFuYWdlcjogTm9kZVBhY2thZ2VNYW5hZ2VyLlBOUE0sXG5cbiAgICAgIC8qKlxuICAgICAgICogVHVybiBvbiBwcmV0dGllciBmb3JtYXR0aW5nXG4gICAgICAgKi9cbiAgICAgIHByZXR0aWVyOiB0cnVlLFxuXG4gICAgICAvKipcbiAgICAgICAqIERvbid0IGdlbmVyYXRlIHNhbXBsZSBjb2RlLlxuICAgICAgICovXG4gICAgICBzYW1wbGVDb2RlOiBmYWxzZSxcblxuICAgICAgLyoqXG4gICAgICAgKiBNYWtlIHN1cmUgamVzdCBjb25maWcgaXMgc3RvcmVkIG91dHNpZGUgb2YgcGFja2FnZS5qc29uIGFuZCB1c2UgU1dDXG4gICAgICAgKiBmb3IgZmFzdGVyIHRlc3RzLlxuICAgICAgICovXG4gICAgICBqZXN0T3B0aW9uczoge1xuICAgICAgICBjb25maWdGaWxlUGF0aDogXCJqZXN0LmNvbmZpZy5qc29uXCIsXG4gICAgICAgIGplc3RDb25maWc6IHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHtcbiAgICAgICAgICAgIFtcIl4uK1xcXFwuW3Rdc3g/JFwiXTogbmV3IFRyYW5zZm9ybShcIkBzd2MvamVzdFwiKSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcblxuICAgICAgLyoqXG4gICAgICAgKiBTV0MgZm9yIGZhc3RlciB0ZXN0aW5nXG4gICAgICAgKi9cbiAgICAgIGRldkRlcHM6IFtcIkBzd2MvamVzdFwiLCBcIkBzd2MvY29yZVwiXSxcblxuICAgICAgLyoqXG4gICAgICAgKiBEb24ndCBwYWNrYWdlIHRlc3QgZmlsZXMuXG4gICAgICAgKi9cbiAgICAgIG5wbUlnbm9yZU9wdGlvbnM6IHtcbiAgICAgICAgaWdub3JlUGF0dGVybnM6IFtcIiouc3BlYy4qXCIsIFwiKi50ZXN0LipcIl0sXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogV2UncmUgdXNpbmcgU1dDIG5vdywgcmVtb3ZlIHRzLWplc3Qgd2hpY2ggaXMgaW5jbHVkZWQgYnkgZGVmYXVsdC5cbiAgICAgKi9cbiAgICB0aGlzLnByb2plY3QuZGVwcy5yZW1vdmVEZXBlbmRlbmN5KFwidHMtamVzdFwiKTtcblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgKlxuICAgICAqIFdvcmtzcGFjZSBEZXBlbmRlbmNpZXNcbiAgICAgKlxuICAgICAqIC0gQ29uc3RydWN0cyBhcmUgdXNlZCB0byBidWlsZCBvdXQgdGhlIEFXUyBDREsgZW52aXJvbm1lbnRzLlxuICAgICAqXG4gICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gICAgdGhpcy5wcm9qZWN0LmFkZERlcHMoXG4gICAgICBcIkBvcGVuaGkvY29uZmlnQHdvcmtzcGFjZToqXCIsXG4gICAgICBcIkBvcGVuaGkvY29uc3RydWN0c0B3b3Jrc3BhY2U6KlwiLFxuICAgICk7XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICpcbiAgICAgKiBUdXJibyBDb25maWd1cmF0aW9uXG4gICAgICpcbiAgICAgKiAtIEFjdGl2YXRlIHR1cmJvcmVwbyBmb3IgdGhlIHByb2plY3QuXG4gICAgICpcbiAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgICBuZXcgVHVyYm9SZXBvKHRoaXMucHJvamVjdCk7XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICpcbiAgICAgKiBEZWZpbmUgc29tZSBiYXNpYyBTZXJ2aWNlIFN0cnVjdHVyZVxuICAgICAqXG4gICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gICAgbmV3IEdlbmVyYXRlVGVtcGxhdGVzKHRoaXMpO1xuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAqXG4gICAgICogRGVwbG95bWVudCBUYXJnZXRzXG4gICAgICpcbiAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgICBbT1BFTl9ISV9TVEFHRS5ERVYsIE9QRU5fSElfU1RBR0UuU1RBR0UsIE9QRU5fSElfU1RBR0UuUFJPRF0uZm9yRWFjaChcbiAgICAgIChzdGFnZSkgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXRzID0gdGhpcy5vcHRpb25zPy5jb25maWc/LmRlcGxveW1lbnRUYXJnZXRzPy5bc3RhZ2VdO1xuICAgICAgICBpZiAodGFyZ2V0cz8ucHJpbWFyeSkge1xuICAgICAgICAgIHRoaXMuYWRkRGVwbG95bWVudFRhcmdldChcbiAgICAgICAgICAgIHN0YWdlLFxuICAgICAgICAgICAgT1BFTl9ISV9ERVBMT1lNRU5UX1RBUkdFVF9ST0xFLlBSSU1BUlksXG4gICAgICAgICAgICB0YXJnZXRzLnByaW1hcnksXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICB0YXJnZXRzPy5zZWNvbmRhcnk/LmZvckVhY2goKGVudikgPT4ge1xuICAgICAgICAgIHRoaXMuYWRkRGVwbG95bWVudFRhcmdldChcbiAgICAgICAgICAgIHN0YWdlLFxuICAgICAgICAgICAgT1BFTl9ISV9ERVBMT1lNRU5UX1RBUkdFVF9ST0xFLlNFQ09OREFSWSxcbiAgICAgICAgICAgIGVudixcbiAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkRGVwbG95bWVudFRhcmdldCA9IChcbiAgICBhd3NTdGFnZVR5cGU6IFZhbHVlT2Y8dHlwZW9mIE9QRU5fSElfU1RBR0U+LFxuICAgIGF3c0Vudmlyb25tZW50VHlwZTogVmFsdWVPZjx0eXBlb2YgT1BFTl9ISV9ERVBMT1lNRU5UX1RBUkdFVF9ST0xFPixcbiAgICBlbnZDb25maWc6IE9wZW5IaUVudmlyb25tZW50Q29uZmlnLFxuICApID0+IHtcbiAgICBuZXcgQXdzRGVwbG95bWVudFRhcmdldCh0aGlzLnByb2plY3QsIHtcbiAgICAgIGFjY291bnQ6IGVudkNvbmZpZy5hY2NvdW50LFxuICAgICAgcmVnaW9uOiBlbnZDb25maWcucmVnaW9uLFxuICAgICAgYXdzU3RhZ2VUeXBlLFxuICAgICAgYXdzRW52aXJvbm1lbnRUeXBlLFxuICAgICAgbG9jYWxEZXBsb3ltZW50OiB0cnVlLFxuICAgICAgbG9jYWxEZXBsb3ltZW50Q29uZmlnOiB7XG4gICAgICAgIHN0YWNrUGF0dGVybjogYCR7YXdzU3RhZ2VUeXBlfS8ke2F3c0Vudmlyb25tZW50VHlwZX0vKi0ke2VudkNvbmZpZy5hY2NvdW50fS0ke2VudkNvbmZpZy5yZWdpb259YCxcbiAgICAgICAgcm9sZU5hbWU6IFwicG93ZXJ1c2VyYWNjZXNzXCIsXG4gICAgICB9LFxuICAgICAgY2lEZXBsb3ltZW50OiB0cnVlLFxuICAgICAgY2lEZXBsb3ltZW50Q29uZmlnOiB7XG4gICAgICAgIHJvbGVBcm46IGBhcm46YXdzOmlhbTo6JHtlbnZDb25maWcuYWNjb3VudH06cm9sZS9HaXRIdWJPcGVuSGlEZXBsb3llcmAsXG4gICAgICAgIHN0YWNrUGF0dGVybjogYCR7YXdzU3RhZ2VUeXBlfS8ke2F3c0Vudmlyb25tZW50VHlwZX0vKi0ke2VudkNvbmZpZy5hY2NvdW50fS0ke2VudkNvbmZpZy5yZWdpb259YCxcbiAgICAgIH0sXG5cbiAgICAgIGJyYW5jaGVzOlxuICAgICAgICBhd3NTdGFnZVR5cGUgPT09IE9QRU5fSElfU1RBR0UuREVWXG4gICAgICAgICAgPyBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBicmFuY2g6IFwiZmVhdC8qXCIsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFtcbiAgICAgICAgICAgICAgICAgIFwiRmVhdHVyZSBicmFuY2hlcyBmb3IgT3BlbkhJIChzaG9ydCBmb3JtKS5cIixcbiAgICAgICAgICAgICAgICAgIFwiVGhlc2UgYnJhbmNoZXMgYXJlIHVzZWQgZm9yIGRldmVsb3BpbmcgbmV3IGZlYXR1cmVzLlwiLFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBicmFuY2g6IFwiZmVhdHVyZS8qXCIsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFtcbiAgICAgICAgICAgICAgICAgIFwiRmVhdHVyZSBicmFuY2hlcyBmb3IgT3BlbkhJLlwiLFxuICAgICAgICAgICAgICAgICAgXCJUaGVzZSBicmFuY2hlcyBhcmUgdXNlZCBmb3IgZGV2ZWxvcGluZyBuZXcgZmVhdHVyZXMuXCIsXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGJyYW5jaDogXCJmaXgvKlwiLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBbXG4gICAgICAgICAgICAgICAgICBcIkZpeCBicmFuY2hlcyBmb3IgT3BlbkhJLlwiLFxuICAgICAgICAgICAgICAgICAgXCJUaGlzIGJyYW5jaCBwYXR0ZXJuIGlzIHVzZWQgd2hlbiBhIGRldmVsb3BlciBpcyB3b3JraW5nIG9uIGEgZml4IG9uIHRoZSBwcm9qZWN0LlwiLFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdXG4gICAgICAgICAgOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBicmFuY2g6IFwibWFpblwiLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBbXG4gICAgICAgICAgICAgICAgICBcIk1haW4gYnJhbmNoIGZvciBPcGVuSEkuXCIsXG4gICAgICAgICAgICAgICAgICBcIlRoaXMgYnJhbmNoIGlzIHVzZWQgZm9yIHRoZSBtYWluIGJyYW5jaC5cIixcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICB9KTtcbiAgfTtcblxuICBnZXQgY29uc3RydWN0TmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBwYXNjYWxDYXNlKFtcIm9wZW5cIiwgXCJoaVwiLCB0aGlzLmlkLCBcInNlcnZpY2VcIl0uam9pbihcIi1cIikpO1xuICB9XG5cbiAgZ2V0IG91dERpcigpIHtcbiAgICByZXR1cm4gW1xuICAgICAgcGFyYW1DYXNlKHRoaXMub3BlbkhpLmlkKSxcbiAgICAgIC4uLnRoaXMudHlwZURpci5tYXAoKHgpID0+IHBhcmFtQ2FzZSh4KSksXG4gICAgICBwYXJhbUNhc2UodGhpcy5pZCksXG4gICAgXS5qb2luKHNlcCk7XG4gIH1cblxuICBnZXQgc2VydmljZU5hbWUoKSB7XG4gICAgcmV0dXJuIFtwYXJhbUNhc2UodGhpcy5vcGVuSGkuaWQpLCBwYXJhbUNhc2UodGhpcy5pZCldLmpvaW4oXCItXCIpO1xuICB9XG5cbiAgZ2V0IHR5cGVEaXIoKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgcmV0dXJuIFtdO1xuICAgIC8qXG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucy50eXBlID09PSBPUEVOX0hJX1NFUlZJQ0VfVFlQRS5BVVRIIHx8XG4gICAgICB0aGlzLm9wdGlvbnMudHlwZSA9PT0gT1BFTl9ISV9TRVJWSUNFX1RZUEUuQ09SRSB8fFxuICAgICAgdGhpcy5vcHRpb25zLnR5cGUgPT09IE9QRU5fSElfU0VSVklDRV9UWVBFLkdMT0JBTFxuICAgICAgPyBbXVxuICAgICAgOiB0aGlzLm9wdGlvbnMudHlwZSA9PT0gT1BFTl9ISV9TRVJWSUNFX1RZUEUuREFUQV9TRVJWSUNFXG4gICAgICAgID8gW1wiZGF0YVwiXVxuICAgICAgICA6IFtcImludGVncmF0aW9uXCJdOyovXG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,5 @@
1
+ import { OpenHiService } from "../service";
2
+ export declare class GenerateTemplates {
3
+ private service;
4
+ constructor(service: OpenHiService);
5
+ }
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GenerateTemplates = void 0;
4
+ const app_1 = require("./src/app");
5
+ const app_test_1 = require("./src/app-test");
6
+ const config_1 = require("./src/config");
7
+ const README_md_1 = require("./src/data/models/README.md");
8
+ const README_md_2 = require("./src/data/README.md");
9
+ const README_md_3 = require("./src/infrastructure/README.md");
10
+ const README_md_4 = require("./src/integrations/README.md");
11
+ const main_1 = require("./src/main");
12
+ const README_md_5 = require("./src/README.md");
13
+ const README_md_6 = require("./src/workflows/README.md");
14
+ class GenerateTemplates {
15
+ constructor(service) {
16
+ this.service = service;
17
+ /**
18
+ * Root src templates
19
+ */
20
+ new app_1.SrcApp(this.service);
21
+ new app_test_1.SrcAppTest(this.service);
22
+ new config_1.SrcConfig(this.service);
23
+ new main_1.SrcMain(this.service);
24
+ new README_md_5.SrcReadMe(this.service);
25
+ /**
26
+ * Data
27
+ */
28
+ new README_md_2.DataReadMe(this.service);
29
+ new README_md_1.DataModelsReadMe(this.service);
30
+ /**
31
+ * Infrastructure
32
+ */
33
+ new README_md_3.InfrastructureReadMe(this.service);
34
+ /**
35
+ * Integrations
36
+ */
37
+ new README_md_4.IntegrationsReadMe(this.service);
38
+ /**
39
+ * Workflows
40
+ */
41
+ new README_md_6.WorkflowsReadMe(this.service);
42
+ }
43
+ }
44
+ exports.GenerateTemplates = GenerateTemplates;
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUtdGVtcGxhdGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RlbXBsYXRlcy9nZW5lcmF0ZS10ZW1wbGF0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsbUNBQW1DO0FBQ25DLDZDQUE0QztBQUM1Qyx5Q0FBeUM7QUFDekMsMkRBQStEO0FBQy9ELG9EQUFrRDtBQUNsRCw4REFBc0U7QUFDdEUsNERBQWtFO0FBQ2xFLHFDQUFxQztBQUNyQywrQ0FBNEM7QUFDNUMseURBQTREO0FBRTVELE1BQWEsaUJBQWlCO0lBQzVCLFlBQW9CLE9BQXNCO1FBQXRCLFlBQU8sR0FBUCxPQUFPLENBQWU7UUFDeEM7O1dBRUc7UUFDSCxJQUFJLFlBQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDekIsSUFBSSxxQkFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM3QixJQUFJLGtCQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzVCLElBQUksY0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMxQixJQUFJLHFCQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTVCOztXQUVHO1FBQ0gsSUFBSSxzQkFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM3QixJQUFJLDRCQUFnQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVuQzs7V0FFRztRQUNILElBQUksZ0NBQW9CLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXZDOztXQUVHO1FBQ0gsSUFBSSw4QkFBa0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFckM7O1dBRUc7UUFDSCxJQUFJLDJCQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7Q0FDRjtBQWhDRCw4Q0FnQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPcGVuSGlTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VcIjtcbmltcG9ydCB7IFNyY0FwcCB9IGZyb20gXCIuL3NyYy9hcHBcIjtcbmltcG9ydCB7IFNyY0FwcFRlc3QgfSBmcm9tIFwiLi9zcmMvYXBwLXRlc3RcIjtcbmltcG9ydCB7IFNyY0NvbmZpZyB9IGZyb20gXCIuL3NyYy9jb25maWdcIjtcbmltcG9ydCB7IERhdGFNb2RlbHNSZWFkTWUgfSBmcm9tIFwiLi9zcmMvZGF0YS9tb2RlbHMvUkVBRE1FLm1kXCI7XG5pbXBvcnQgeyBEYXRhUmVhZE1lIH0gZnJvbSBcIi4vc3JjL2RhdGEvUkVBRE1FLm1kXCI7XG5pbXBvcnQgeyBJbmZyYXN0cnVjdHVyZVJlYWRNZSB9IGZyb20gXCIuL3NyYy9pbmZyYXN0cnVjdHVyZS9SRUFETUUubWRcIjtcbmltcG9ydCB7IEludGVncmF0aW9uc1JlYWRNZSB9IGZyb20gXCIuL3NyYy9pbnRlZ3JhdGlvbnMvUkVBRE1FLm1kXCI7XG5pbXBvcnQgeyBTcmNNYWluIH0gZnJvbSBcIi4vc3JjL21haW5cIjtcbmltcG9ydCB7IFNyY1JlYWRNZSB9IGZyb20gXCIuL3NyYy9SRUFETUUubWRcIjtcbmltcG9ydCB7IFdvcmtmbG93c1JlYWRNZSB9IGZyb20gXCIuL3NyYy93b3JrZmxvd3MvUkVBRE1FLm1kXCI7XG5cbmV4cG9ydCBjbGFzcyBHZW5lcmF0ZVRlbXBsYXRlcyB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2VydmljZTogT3BlbkhpU2VydmljZSkge1xuICAgIC8qKlxuICAgICAqIFJvb3Qgc3JjIHRlbXBsYXRlc1xuICAgICAqL1xuICAgIG5ldyBTcmNBcHAodGhpcy5zZXJ2aWNlKTtcbiAgICBuZXcgU3JjQXBwVGVzdCh0aGlzLnNlcnZpY2UpO1xuICAgIG5ldyBTcmNDb25maWcodGhpcy5zZXJ2aWNlKTtcbiAgICBuZXcgU3JjTWFpbih0aGlzLnNlcnZpY2UpO1xuICAgIG5ldyBTcmNSZWFkTWUodGhpcy5zZXJ2aWNlKTtcblxuICAgIC8qKlxuICAgICAqIERhdGFcbiAgICAgKi9cbiAgICBuZXcgRGF0YVJlYWRNZSh0aGlzLnNlcnZpY2UpO1xuICAgIG5ldyBEYXRhTW9kZWxzUmVhZE1lKHRoaXMuc2VydmljZSk7XG5cbiAgICAvKipcbiAgICAgKiBJbmZyYXN0cnVjdHVyZVxuICAgICAqL1xuICAgIG5ldyBJbmZyYXN0cnVjdHVyZVJlYWRNZSh0aGlzLnNlcnZpY2UpO1xuXG4gICAgLyoqXG4gICAgICogSW50ZWdyYXRpb25zXG4gICAgICovXG4gICAgbmV3IEludGVncmF0aW9uc1JlYWRNZSh0aGlzLnNlcnZpY2UpO1xuXG4gICAgLyoqXG4gICAgICogV29ya2Zsb3dzXG4gICAgICovXG4gICAgbmV3IFdvcmtmbG93c1JlYWRNZSh0aGlzLnNlcnZpY2UpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,33 @@
1
+ import { SampleFile } from "projen";
2
+ import { OpenHiService } from "../service";
3
+ export interface ServiceTemplateOptions {
4
+ /**
5
+ * The content of the sample file, as an array.
6
+ */
7
+ readonly contents: Array<string>;
8
+ /**
9
+ * The relative file path from the project root.
10
+ */
11
+ readonly filePath: string;
12
+ /**
13
+ * Overwrite this template file to it's original state?
14
+ *
15
+ * @default false
16
+ */
17
+ readonly overwrite?: boolean;
18
+ }
19
+ export declare class ServiceTemplate {
20
+ service: OpenHiService;
21
+ options: ServiceTemplateOptions;
22
+ /**
23
+ * The file being generated.
24
+ */
25
+ file?: SampleFile;
26
+ /**
27
+ * Absolute Filepath, including the project path.
28
+ */
29
+ fullFilePath: string;
30
+ constructor(service: OpenHiService, options: ServiceTemplateOptions);
31
+ protected createTemplate(): void;
32
+ overwriteTemplate(): void;
33
+ }