@mikarinneoracle/oci-cdk-code-only-preview 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/package.json +1 -1
  2. package/lib/.gen/providers/oci/identity-dynamic-group/index.d.ts +0 -166
  3. package/lib/.gen/providers/oci/identity-dynamic-group/index.js +0 -408
  4. package/lib/bin/deploy-with-build.js +0 -132
  5. package/lib/test/java-function/aws-cdk/bin/app.d.ts +0 -2
  6. package/lib/test/java-function/aws-cdk/bin/app.js +0 -51
  7. package/lib/test/java-function/aws-cdk/lib/function-stack.d.ts +0 -11
  8. package/lib/test/java-function/aws-cdk/lib/function-stack.js +0 -159
  9. package/lib/test/java-function/aws-cdk/lib/test-function-stack.d.ts +0 -5
  10. package/lib/test/java-function/aws-cdk/lib/test-function-stack.js +0 -94
  11. package/lib/test/java-function/oci-cdk/.gen/providers/oci/apigateway-deployment/index.d.ts +0 -5356
  12. package/lib/test/java-function/oci-cdk/.gen/providers/oci/apigateway-deployment/index.js +0 -14972
  13. package/lib/test/java-function/oci-cdk/.gen/providers/oci/apigateway-gateway/index.d.ts +0 -449
  14. package/lib/test/java-function/oci-cdk/.gen/providers/oci/apigateway-gateway/index.js +0 -1149
  15. package/lib/test/java-function/oci-cdk/.gen/providers/oci/artifacts-container-repository/index.d.ts +0 -217
  16. package/lib/test/java-function/oci-cdk/.gen/providers/oci/artifacts-container-repository/index.js +0 -563
  17. package/lib/test/java-function/oci-cdk/.gen/providers/oci/core-internet-gateway/index.d.ts +0 -176
  18. package/lib/test/java-function/oci-cdk/.gen/providers/oci/core-internet-gateway/index.js +0 -431
  19. package/lib/test/java-function/oci-cdk/.gen/providers/oci/core-route-table/index.d.ts +0 -255
  20. package/lib/test/java-function/oci-cdk/.gen/providers/oci/core-route-table/index.js +0 -644
  21. package/lib/test/java-function/oci-cdk/.gen/providers/oci/core-security-list/index.d.ts +0 -752
  22. package/lib/test/java-function/oci-cdk/.gen/providers/oci/core-security-list/index.js +0 -2091
  23. package/lib/test/java-function/oci-cdk/.gen/providers/oci/core-service-gateway/index.d.ts +0 -220
  24. package/lib/test/java-function/oci-cdk/.gen/providers/oci/core-service-gateway/index.js +0 -543
  25. package/lib/test/java-function/oci-cdk/.gen/providers/oci/core-subnet/index.d.ts +0 -251
  26. package/lib/test/java-function/oci-cdk/.gen/providers/oci/core-subnet/index.js +0 -612
  27. package/lib/test/java-function/oci-cdk/.gen/providers/oci/core-vcn/index.d.ts +0 -270
  28. package/lib/test/java-function/oci-cdk/.gen/providers/oci/core-vcn/index.js +0 -672
  29. package/lib/test/java-function/oci-cdk/.gen/providers/oci/data-oci-core-services/index.d.ts +0 -150
  30. package/lib/test/java-function/oci-cdk/.gen/providers/oci/data-oci-core-services/index.js +0 -386
  31. package/lib/test/java-function/oci-cdk/.gen/providers/oci/functions-application/index.d.ts +0 -330
  32. package/lib/test/java-function/oci-cdk/.gen/providers/oci/functions-application/index.js +0 -821
  33. package/lib/test/java-function/oci-cdk/.gen/providers/oci/functions-function/index.d.ts +0 -322
  34. package/lib/test/java-function/oci-cdk/.gen/providers/oci/functions-function/index.js +0 -820
  35. package/lib/test/java-function/oci-cdk/.gen/providers/oci/provider/index.d.ts +0 -190
  36. package/lib/test/java-function/oci-cdk/.gen/providers/oci/provider/index.js +0 -391
  37. package/lib/test/java-function/oci-cdk/.gen/providers/oci/vault-secret/index.d.ts +0 -439
  38. package/lib/test/java-function/oci-cdk/.gen/providers/oci/vault-secret/index.js +0 -1146
  39. package/lib/test/java-function/oci-cdk/bin/app.d.ts +0 -2
  40. package/lib/test/java-function/oci-cdk/bin/app.js +0 -34
  41. package/lib/test/java-function/oci-cdk/config/oci-config.d.ts +0 -68
  42. package/lib/test/java-function/oci-cdk/config/oci-config.js +0 -202
  43. package/lib/test/java-function/oci-cdk/lib/function-stack.d.ts +0 -31
  44. package/lib/test/java-function/oci-cdk/lib/function-stack.js +0 -549
  45. package/lib/test/java-function/oci-cdk/lib/test-function-stack.d.ts +0 -17
  46. package/lib/test/java-function/oci-cdk/lib/test-function-stack.js +0 -99
@@ -1,17 +0,0 @@
1
- import { Construct } from 'constructs';
2
- import { TerraformStack } from 'cdktf';
3
- import { OciBackendConfig } from '../config/oci-config';
4
- export interface OciStackConfig {
5
- compartmentId: string;
6
- ocirCompartmentId?: string;
7
- tenancyId: string;
8
- region: string;
9
- namespace: string;
10
- functionAppName: string;
11
- functionName: string;
12
- ocirRepositoryName?: string;
13
- backend?: OciBackendConfig;
14
- }
15
- export declare class TestFunctionStack extends TerraformStack {
16
- constructor(scope: Construct, id: string, config: OciStackConfig);
17
- }
@@ -1,99 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TestFunctionStack = void 0;
4
- const cdktf_1 = require("cdktf");
5
- const provider_1 = require("../.gen/providers/oci/provider");
6
- const artifacts_container_repository_1 = require("../.gen/providers/oci/artifacts-container-repository");
7
- class TestFunctionStack extends cdktf_1.TerraformStack {
8
- constructor(scope, id, config) {
9
- super(scope, id);
10
- // Configure Terraform backend (if not local)
11
- if (config.backend && config.backend.type !== 'local') {
12
- if (config.backend.type === 'oci') {
13
- this.addOverride('terraform.backend', {
14
- oci: {
15
- bucket: config.backend.bucket,
16
- namespace: config.namespace,
17
- key: config.backend.key || `${id}/terraform.tfstate`,
18
- region: config.region,
19
- },
20
- });
21
- }
22
- else if (config.backend.type === 'http') {
23
- const httpBackend = {
24
- address: config.backend.address,
25
- update_method: config.backend.updateMethod || 'PUT',
26
- };
27
- if (config.backend.lockAddress) {
28
- httpBackend.lock_address = config.backend.lockAddress;
29
- }
30
- if (config.backend.unlockAddress) {
31
- httpBackend.unlock_address = config.backend.unlockAddress;
32
- }
33
- this.addOverride('terraform.backend', {
34
- http: httpBackend,
35
- });
36
- }
37
- }
38
- // OCI Provider
39
- new provider_1.OciProvider(this, 'oci', {
40
- region: config.region,
41
- tenancyOcid: config.tenancyId,
42
- });
43
- // OCIR Container Repository
44
- const ocirCompartmentId = config.ocirCompartmentId || config.compartmentId;
45
- const ocirRepoName = config.ocirRepositoryName || config.functionName;
46
- // Validate that we're not using root compartment
47
- if (ocirCompartmentId.includes('root')) {
48
- throw new Error('OCIR repository cannot be created in root compartment. ' +
49
- 'Please set OCI_OCIR_COMPARTMENT_ID to your home compartment OCID.');
50
- }
51
- const ocirRepository = new artifacts_container_repository_1.ArtifactsContainerRepository(this, 'OcirRepository', {
52
- compartmentId: ocirCompartmentId,
53
- displayName: ocirRepoName,
54
- isPublic: false,
55
- isImmutable: false,
56
- });
57
- // Note: OCI Function and API Gateway resources would be added here
58
- // These require additional provider resources that may need to be configured
59
- // after running `cdktf get` to generate the provider types
60
- // Example structure (commented out until provider types are generated):
61
- /*
62
- // OCI Function Application
63
- const functionApp = new FunctionsApplication(this, 'FunctionApp', {
64
- compartmentId: config.compartmentId,
65
- displayName: config.functionAppName,
66
- });
67
-
68
- // OCI Function
69
- const ociFunction = new Function(this, 'Function', {
70
- applicationId: functionApp.id,
71
- displayName: config.functionName,
72
- image: `${config.region}.ocir.io/${config.namespace}/${ocirRepoName}:latest`,
73
- memoryInMbs: 1024,
74
- timeoutInSeconds: 30,
75
- });
76
-
77
- // API Gateway
78
- const apiGateway = new ApigatewayGateway(this, 'ApiGateway', {
79
- compartmentId: config.compartmentId,
80
- endpointType: 'PUBLIC',
81
- displayName: 'test-function-api-gateway',
82
- });
83
-
84
- // API Gateway Deployment
85
- const apiDeployment = new ApigatewayDeployment(this, 'ApiDeployment', {
86
- compartmentId: config.compartmentId,
87
- gatewayId: apiGateway.id,
88
- pathPrefix: '/test',
89
- displayName: 'test-function-deployment',
90
- // Route configuration would go here
91
- });
92
- */
93
- // Output OCIR repository URL
94
- // This will be used to push Docker images
95
- // Format: <region>.ocir.io/<namespace>/<repository-name>
96
- }
97
- }
98
- exports.TestFunctionStack = TestFunctionStack;
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1mdW5jdGlvbi1zdGFjay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Rlc3QvamF2YS1mdW5jdGlvbi9vY2ktb2Nkay9saWIvdGVzdC1mdW5jdGlvbi1zdGFjay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxpQ0FBdUM7QUFDdkMsNkRBQTZEO0FBQzdELHlHQUFvRztBQWVwRyxNQUFhLGlCQUFrQixTQUFRLHNCQUFjO0lBQ25ELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsTUFBc0I7UUFDOUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQiw2Q0FBNkM7UUFDN0MsSUFBSSxNQUFNLENBQUMsT0FBTyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRSxDQUFDO1lBQ3RELElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssS0FBSyxFQUFFLENBQUM7Z0JBQ2xDLElBQUksQ0FBQyxXQUFXLENBQUMsbUJBQW1CLEVBQUU7b0JBQ3BDLEdBQUcsRUFBRTt3QkFDSCxNQUFNLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNO3dCQUM3QixTQUFTLEVBQUUsTUFBTSxDQUFDLFNBQVM7d0JBQzNCLEdBQUcsRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxHQUFHLEVBQUUsb0JBQW9CO3dCQUNwRCxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU07cUJBQ3RCO2lCQUNGLENBQUMsQ0FBQztZQUNMLENBQUM7aUJBQU0sSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxNQUFNLEVBQUUsQ0FBQztnQkFDMUMsTUFBTSxXQUFXLEdBQVE7b0JBQ3ZCLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU87b0JBQy9CLGFBQWEsRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLFlBQVksSUFBSSxLQUFLO2lCQUNwRCxDQUFDO2dCQUNGLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztvQkFDL0IsV0FBVyxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztnQkFDeEQsQ0FBQztnQkFDRCxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUM7b0JBQ2pDLFdBQVcsQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7Z0JBQzVELENBQUM7Z0JBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsRUFBRTtvQkFDcEMsSUFBSSxFQUFFLFdBQVc7aUJBQ2xCLENBQUMsQ0FBQztZQUNMLENBQUM7UUFDSCxDQUFDO1FBRUQsZUFBZTtRQUNmLElBQUksc0JBQVcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFO1lBQzNCLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTTtZQUNyQixXQUFXLEVBQUUsTUFBTSxDQUFDLFNBQVM7U0FDOUIsQ0FBQyxDQUFDO1FBRUgsNEJBQTRCO1FBQzVCLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixJQUFJLE1BQU0sQ0FBQyxhQUFhLENBQUM7UUFDM0UsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixJQUFJLE1BQU0sQ0FBQyxZQUFZLENBQUM7UUFFdEUsaURBQWlEO1FBQ2pELElBQUksaUJBQWlCLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDdkMsTUFBTSxJQUFJLEtBQUssQ0FDYix5REFBeUQ7Z0JBQ3pELG1FQUFtRSxDQUNwRSxDQUFDO1FBQ0osQ0FBQztRQUVELE1BQU0sY0FBYyxHQUFHLElBQUksNkRBQTRCLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFO1lBQzlFLGFBQWEsRUFBRSxpQkFBaUI7WUFDaEMsV0FBVyxFQUFFLFlBQVk7WUFDekIsUUFBUSxFQUFFLEtBQUs7WUFDZixXQUFXLEVBQUUsS0FBSztTQUNuQixDQUFDLENBQUM7UUFFSCxtRUFBbUU7UUFDbkUsNkVBQTZFO1FBQzdFLDJEQUEyRDtRQUUzRCx3RUFBd0U7UUFDeEU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7VUErQkU7UUFFRiw2QkFBNkI7UUFDN0IsMENBQTBDO1FBQzFDLHlEQUF5RDtJQUMzRCxDQUFDO0NBQ0Y7QUFuR0QsOENBbUdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBUZXJyYWZvcm1TdGFjayB9IGZyb20gJ2Nka3RmJztcbmltcG9ydCB7IE9jaVByb3ZpZGVyIH0gZnJvbSAnLi4vLmdlbi9wcm92aWRlcnMvb2NpL3Byb3ZpZGVyJztcbmltcG9ydCB7IEFydGlmYWN0c0NvbnRhaW5lclJlcG9zaXRvcnkgfSBmcm9tICcuLi8uZ2VuL3Byb3ZpZGVycy9vY2kvYXJ0aWZhY3RzLWNvbnRhaW5lci1yZXBvc2l0b3J5JztcbmltcG9ydCB7IE9jaUJhY2tlbmRDb25maWcgfSBmcm9tICcuLi9jb25maWcvb2NpLWNvbmZpZyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgT2NpU3RhY2tDb25maWcge1xuICBjb21wYXJ0bWVudElkOiBzdHJpbmc7XG4gIG9jaXJDb21wYXJ0bWVudElkPzogc3RyaW5nO1xuICB0ZW5hbmN5SWQ6IHN0cmluZztcbiAgcmVnaW9uOiBzdHJpbmc7XG4gIG5hbWVzcGFjZTogc3RyaW5nO1xuICBmdW5jdGlvbkFwcE5hbWU6IHN0cmluZztcbiAgZnVuY3Rpb25OYW1lOiBzdHJpbmc7XG4gIG9jaXJSZXBvc2l0b3J5TmFtZT86IHN0cmluZztcbiAgYmFja2VuZD86IE9jaUJhY2tlbmRDb25maWc7XG59XG5cbmV4cG9ydCBjbGFzcyBUZXN0RnVuY3Rpb25TdGFjayBleHRlbmRzIFRlcnJhZm9ybVN0YWNrIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgY29uZmlnOiBPY2lTdGFja0NvbmZpZykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICAvLyBDb25maWd1cmUgVGVycmFmb3JtIGJhY2tlbmQgKGlmIG5vdCBsb2NhbClcbiAgICBpZiAoY29uZmlnLmJhY2tlbmQgJiYgY29uZmlnLmJhY2tlbmQudHlwZSAhPT0gJ2xvY2FsJykge1xuICAgICAgaWYgKGNvbmZpZy5iYWNrZW5kLnR5cGUgPT09ICdvY2knKSB7XG4gICAgICAgIHRoaXMuYWRkT3ZlcnJpZGUoJ3RlcnJhZm9ybS5iYWNrZW5kJywge1xuICAgICAgICAgIG9jaToge1xuICAgICAgICAgICAgYnVja2V0OiBjb25maWcuYmFja2VuZC5idWNrZXQsXG4gICAgICAgICAgICBuYW1lc3BhY2U6IGNvbmZpZy5uYW1lc3BhY2UsXG4gICAgICAgICAgICBrZXk6IGNvbmZpZy5iYWNrZW5kLmtleSB8fCBgJHtpZH0vdGVycmFmb3JtLnRmc3RhdGVgLFxuICAgICAgICAgICAgcmVnaW9uOiBjb25maWcucmVnaW9uLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIGlmIChjb25maWcuYmFja2VuZC50eXBlID09PSAnaHR0cCcpIHtcbiAgICAgICAgY29uc3QgaHR0cEJhY2tlbmQ6IGFueSA9IHtcbiAgICAgICAgICBhZGRyZXNzOiBjb25maWcuYmFja2VuZC5hZGRyZXNzLFxuICAgICAgICAgIHVwZGF0ZV9tZXRob2Q6IGNvbmZpZy5iYWNrZW5kLnVwZGF0ZU1ldGhvZCB8fCAnUFVUJyxcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKGNvbmZpZy5iYWNrZW5kLmxvY2tBZGRyZXNzKSB7XG4gICAgICAgICAgaHR0cEJhY2tlbmQubG9ja19hZGRyZXNzID0gY29uZmlnLmJhY2tlbmQubG9ja0FkZHJlc3M7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvbmZpZy5iYWNrZW5kLnVubG9ja0FkZHJlc3MpIHtcbiAgICAgICAgICBodHRwQmFja2VuZC51bmxvY2tfYWRkcmVzcyA9IGNvbmZpZy5iYWNrZW5kLnVubG9ja0FkZHJlc3M7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hZGRPdmVycmlkZSgndGVycmFmb3JtLmJhY2tlbmQnLCB7XG4gICAgICAgICAgaHR0cDogaHR0cEJhY2tlbmQsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE9DSSBQcm92aWRlclxuICAgIG5ldyBPY2lQcm92aWRlcih0aGlzLCAnb2NpJywge1xuICAgICAgcmVnaW9uOiBjb25maWcucmVnaW9uLFxuICAgICAgdGVuYW5jeU9jaWQ6IGNvbmZpZy50ZW5hbmN5SWQsXG4gICAgfSk7XG5cbiAgICAvLyBPQ0lSIENvbnRhaW5lciBSZXBvc2l0b3J5XG4gICAgY29uc3Qgb2NpckNvbXBhcnRtZW50SWQgPSBjb25maWcub2NpckNvbXBhcnRtZW50SWQgfHwgY29uZmlnLmNvbXBhcnRtZW50SWQ7XG4gICAgY29uc3Qgb2NpclJlcG9OYW1lID0gY29uZmlnLm9jaXJSZXBvc2l0b3J5TmFtZSB8fCBjb25maWcuZnVuY3Rpb25OYW1lO1xuICAgIFxuICAgIC8vIFZhbGlkYXRlIHRoYXQgd2UncmUgbm90IHVzaW5nIHJvb3QgY29tcGFydG1lbnRcbiAgICBpZiAob2NpckNvbXBhcnRtZW50SWQuaW5jbHVkZXMoJ3Jvb3QnKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnT0NJUiByZXBvc2l0b3J5IGNhbm5vdCBiZSBjcmVhdGVkIGluIHJvb3QgY29tcGFydG1lbnQuICcgK1xuICAgICAgICAnUGxlYXNlIHNldCBPQ0lfT0NJUl9DT01QQVJUTUVOVF9JRCB0byB5b3VyIGhvbWUgY29tcGFydG1lbnQgT0NJRC4nXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IG9jaXJSZXBvc2l0b3J5ID0gbmV3IEFydGlmYWN0c0NvbnRhaW5lclJlcG9zaXRvcnkodGhpcywgJ09jaXJSZXBvc2l0b3J5Jywge1xuICAgICAgY29tcGFydG1lbnRJZDogb2NpckNvbXBhcnRtZW50SWQsXG4gICAgICBkaXNwbGF5TmFtZTogb2NpclJlcG9OYW1lLFxuICAgICAgaXNQdWJsaWM6IGZhbHNlLFxuICAgICAgaXNJbW11dGFibGU6IGZhbHNlLFxuICAgIH0pO1xuXG4gICAgLy8gTm90ZTogT0NJIEZ1bmN0aW9uIGFuZCBBUEkgR2F0ZXdheSByZXNvdXJjZXMgd291bGQgYmUgYWRkZWQgaGVyZVxuICAgIC8vIFRoZXNlIHJlcXVpcmUgYWRkaXRpb25hbCBwcm92aWRlciByZXNvdXJjZXMgdGhhdCBtYXkgbmVlZCB0byBiZSBjb25maWd1cmVkXG4gICAgLy8gYWZ0ZXIgcnVubmluZyBgY2RrdGYgZ2V0YCB0byBnZW5lcmF0ZSB0aGUgcHJvdmlkZXIgdHlwZXNcbiAgICBcbiAgICAvLyBFeGFtcGxlIHN0cnVjdHVyZSAoY29tbWVudGVkIG91dCB1bnRpbCBwcm92aWRlciB0eXBlcyBhcmUgZ2VuZXJhdGVkKTpcbiAgICAvKlxuICAgIC8vIE9DSSBGdW5jdGlvbiBBcHBsaWNhdGlvblxuICAgIGNvbnN0IGZ1bmN0aW9uQXBwID0gbmV3IEZ1bmN0aW9uc0FwcGxpY2F0aW9uKHRoaXMsICdGdW5jdGlvbkFwcCcsIHtcbiAgICAgIGNvbXBhcnRtZW50SWQ6IGNvbmZpZy5jb21wYXJ0bWVudElkLFxuICAgICAgZGlzcGxheU5hbWU6IGNvbmZpZy5mdW5jdGlvbkFwcE5hbWUsXG4gICAgfSk7XG5cbiAgICAvLyBPQ0kgRnVuY3Rpb25cbiAgICBjb25zdCBvY2lGdW5jdGlvbiA9IG5ldyBGdW5jdGlvbih0aGlzLCAnRnVuY3Rpb24nLCB7XG4gICAgICBhcHBsaWNhdGlvbklkOiBmdW5jdGlvbkFwcC5pZCxcbiAgICAgIGRpc3BsYXlOYW1lOiBjb25maWcuZnVuY3Rpb25OYW1lLFxuICAgICAgaW1hZ2U6IGAke2NvbmZpZy5yZWdpb259Lm9jaXIuaW8vJHtjb25maWcubmFtZXNwYWNlfS8ke29jaXJSZXBvTmFtZX06bGF0ZXN0YCxcbiAgICAgIG1lbW9yeUluTWJzOiAxMDI0LFxuICAgICAgdGltZW91dEluU2Vjb25kczogMzAsXG4gICAgfSk7XG5cbiAgICAvLyBBUEkgR2F0ZXdheVxuICAgIGNvbnN0IGFwaUdhdGV3YXkgPSBuZXcgQXBpZ2F0ZXdheUdhdGV3YXkodGhpcywgJ0FwaUdhdGV3YXknLCB7XG4gICAgICBjb21wYXJ0bWVudElkOiBjb25maWcuY29tcGFydG1lbnRJZCxcbiAgICAgIGVuZHBvaW50VHlwZTogJ1BVQkxJQycsXG4gICAgICBkaXNwbGF5TmFtZTogJ3Rlc3QtZnVuY3Rpb24tYXBpLWdhdGV3YXknLFxuICAgIH0pO1xuXG4gICAgLy8gQVBJIEdhdGV3YXkgRGVwbG95bWVudFxuICAgIGNvbnN0IGFwaURlcGxveW1lbnQgPSBuZXcgQXBpZ2F0ZXdheURlcGxveW1lbnQodGhpcywgJ0FwaURlcGxveW1lbnQnLCB7XG4gICAgICBjb21wYXJ0bWVudElkOiBjb25maWcuY29tcGFydG1lbnRJZCxcbiAgICAgIGdhdGV3YXlJZDogYXBpR2F0ZXdheS5pZCxcbiAgICAgIHBhdGhQcmVmaXg6ICcvdGVzdCcsXG4gICAgICBkaXNwbGF5TmFtZTogJ3Rlc3QtZnVuY3Rpb24tZGVwbG95bWVudCcsXG4gICAgICAvLyBSb3V0ZSBjb25maWd1cmF0aW9uIHdvdWxkIGdvIGhlcmVcbiAgICB9KTtcbiAgICAqL1xuXG4gICAgLy8gT3V0cHV0IE9DSVIgcmVwb3NpdG9yeSBVUkxcbiAgICAvLyBUaGlzIHdpbGwgYmUgdXNlZCB0byBwdXNoIERvY2tlciBpbWFnZXNcbiAgICAvLyBGb3JtYXQ6IDxyZWdpb24+Lm9jaXIuaW8vPG5hbWVzcGFjZT4vPHJlcG9zaXRvcnktbmFtZT5cbiAgfVxufVxuIl19