@macedon-technologies/batman 1.31.0 → 1.32.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.
- package/.jsii +11 -11
- package/README.md +54 -1
- package/attestation/manifest.ts +1 -0
- package/factory/work-item-sources.md +52 -0
- package/lib/ApiConstructFile.js +4 -1
- package/lib/BaseApplicationStackFile.js +4 -4
- package/lib/BatmanProject.js +1 -1
- package/lib/BootcampBaseApplicationStackFile.js +4 -4
- package/lib/BootcampProject.js +1 -1
- package/lib/CodeOwnersFile.js +1 -1
- package/lib/PrAutoMergeWorkflow.js +1 -1
- package/lib/ProductionDeployWorkflow.js +1 -1
- package/lib/SoftwareFactoryAttestation.js +3 -1
- package/lib/SoftwareFactoryFiles.js +4 -2
- package/lib/SoftwareFactoryModels.js +28 -17
- package/lib/SoftwareFactoryWorkItemSources.d.ts +15 -0
- package/lib/SoftwareFactoryWorkItemSources.js +89 -0
- package/lib/StagingDeployWorkflow.js +1 -1
- package/lib/utils.js +8 -5
- package/models/@swamp/software-factory/platform-common-factory.yaml +24 -15
- package/package.json +1 -1
package/.jsii
CHANGED
|
@@ -97,7 +97,7 @@
|
|
|
97
97
|
},
|
|
98
98
|
"name": "@macedon-technologies/batman",
|
|
99
99
|
"readme": {
|
|
100
|
-
"markdown": "# Platform Common Projen\n\nA baseline architecture template for new projects using Projen. This project provides a standardized foundation that includes both frontend and backend components with authentication.\n\n## Project Intention\n\nThis template serves as a starting point for new projects, providing:\n- Consistent project structure and configuration\n- Pre-configured development tooling\n- Integrated authentication system\n- Full-stack application foundation\n\n## Components Created\n\nThe BatmanProject generates:\n\n### Frontend\n- **React Application** - Modern React app with TypeScript\n- **Clerk Authentication** - Integrated user authentication and management\n- **Playwright e2e Testing** - `@playwright/test` + `@clerk/testing` devDeps, a `test:e2e` task, and a scaffolded `playwright.config.ts` + `e2e/` starter suite (see the generated `web/e2e/README.md`); disable with `e2eTesting: false`. The generated `pr-deploy.yml` workflow also runs this suite against each PR's deployed URL unless `e2eTesting: false` is set.\n\n### Backend/Infrastructure\n- **AWS Infrastructure** - CDK-based cloud resources\n- **API Gateway** - RESTful API endpoints\n- **Lambda Functions** - Serverless compute\n- **Database** - Persistent data storage\n\n## Usage Examples\n\n### Basic Project Creation\n\nCreate a `.projenrc.ts` file in your project root:\n\n```typescript\nimport { BatmanProject } from '@macedon-technologies/batman';\n\nconst project = new BatmanProject({\n name: 'my-new-app',\n defaultReleaseBranch: 'main',\n});\n\nproject.synth();\n```\n\nThen run:\n```bash\nnpx projen\n```\n\n### With Custom Configuration\n\nCreate a `.projenrc.ts` file with additional options:\n\n```typescript\nimport { BatmanProject } from '@macedon-technologies/batman';\n\nconst project = new BatmanProject({\n name: 'my-enterprise-app',\n defaultReleaseBranch: 'main',\n description: 'Enterprise application with authentication',\n authorName: 'Your Name',\n authorEmail: 'your.email@company.com',\n});\n\nproject.synth();\n```\n\nThen run:\n```bash\nnpx projen\n```\n\n### Development Workflow\n\n```bash\n# Install dependencies\nyarn install\n\n# Start development server\nyarn dev\n\n# Deploy infrastructure\nyarn deploy\n\n# Run tests\nyarn test\n```\n\n## Deploying staging on demand\n\nThe generated `Staging Deploy` workflow runs on every push to `main` and can also be run manually from the Actions tab (\"Run workflow\"). Use that to redeploy `main` when a merge raised no push event or a deploy needs re-running. Pick `main` as the branch: the workflow deploys whichever branch you select.\n\n## Auto-merging pull requests with a GitHub App\n\nSetting `prAutoMerge: true` generates `.github/workflows/pr-auto-merge.yml`. It turns on GitHub's squash auto-merge for every pull request into the default branch when the pull request is opened, reopened or marked ready for review. Drafts and pull requests into other branches are left alone. The pull request then merges by itself once your branch ruleset is satisfied.\n\nThe workflow arms the merge with a GitHub App token, not `GITHUB_TOKEN`. GitHub attributes an auto-merge to whoever armed it and raises no events for anything `GITHUB_TOKEN` does, so a merge armed with it would never trigger `Staging Deploy` or `PR Cleanup`.\n\nThe App's private key can mint tokens for every repository the App is installed on, so it lives in an `auto-merge` environment that only `main` can use, not in the repository's secrets. Anyone with write access can read repository secrets from a workflow on their own branch. The workflow runs on `pull_request_target`, which uses the workflow file from the default branch and so passes the environment's branch rule; it never checks out pull request code. Use one App per repository so a leaked key reaches only that repository.\n\nSet it up in this order. Until the App and credentials exist, every pull request's `pr-auto-merge` run fails.\n\n1. **Create a GitHub App** in the organization (Settings → Developer settings → GitHub Apps → New GitHub App). It needs no webhook. Under Repository permissions give it **Read and write** on Contents, Pull requests, Workflows and Issues. Workflows is needed because Batman upgrades change files under `.github/workflows/`. Issues lets the merge close linked issues.\n2. **Generate a private key** on the App's page, and note its **Client ID**.\n3. **Install the App** on the repository (the App's page → Install App → Only select repositories).\n4. **Create an `auto-merge` environment** (Settings → Environments → New environment). Under Deployment branches and tags choose **Selected branches and tags** and add `main`. Then add to the environment:\n - an environment **variable** `AUTO_MERGE_APP_CLIENT_ID` set to the Client ID;\n - an environment **secret** `AUTO_MERGE_APP_PRIVATE_KEY` set to the full contents of the `.pem` file.\n\n Don't add them as repository variables or secrets.\n5. **Turn on \"Allow auto-merge\"** in the repository's Settings → General → Pull Requests.\n6. **Protect the default branch** with a ruleset that requires an approving review and your required status checks. `prAutoMerge` doesn't create one. Without it, an armed pull request merges as soon as it can, unreviewed.\n7. Set `prAutoMerge: true` in `.projenrc.ts` and run projen.\n\nIf the variable or the secret is missing from the environment, the run fails with an error naming both. If the App's installation lacks one of the four permissions, minting the token fails. Pull requests from forks are armed like any other, since the workflow runs from the default branch, and still wait for the ruleset's review. Dependabot pull requests don't receive the environment's secret, so their runs fail the credential check. Merge those by hand. Each run also records a deployment to the `auto-merge` environment.\n\n## Upgrading\n\n### The base stack no longer creates a VPC\n\n`BaseApplicationStack` used to create a VPC with a NAT gateway and attach the API Lambda to it.\nIt now creates neither unless the stack props set `enableVpc: true`. A stack that upgrades\nwithout it deletes its VPC and NAT gateway on the next deploy.\n\nAdd `enableVpc: true` to every `ApplicationStack` in `src/main.ts` and `src/LocalDevApp.ts` (new projects: `additionalStackProps: { enableVpc: true }` on each environment) if any of these apply:\n\n- your `ApplicationStack` uses `this.vpc` or overrides `createVpc()`; the override is not called otherwise;\n- the Lambda reaches anything private, such as RDS or a VPC endpoint;\n- another stack imports this stack's VPC outputs; CloudFormation refuses to delete them.\n\n`this.vpc` is now typed `IVpc | undefined`, even with `enableVpc: true`, so code that passes it where an `IVpc` is required (such as `new SecurityGroup(this, 'Sg', { vpc: this.vpc })`) stops compiling. With `enableVpc: true` the VPC is created before your `ApplicationStack` constructor runs, so use `this.vpc!` there, or check it and throw if it's missing.\n\nOtherwise, make `vpc` optional in `src/constructs/Api.ts` (`readonly vpc?: IVpc;`) so the project compiles. Deleting the VPC can take a while as Lambda releases its network interfaces.\n\nWith `enableVpc: true`, the Lambda is attached only if your `Api.ts` still accepts a `vpc` prop and your stack doesn't override `createApi()` without passing it.\n\n### n8n support is removed\n\n`BatmanProject` and `BootcampProject` no longer generate any n8n wiring. The base stacks have no `n8nEndpoint` prop, `src/constructs/WorkflowProvider.ts` and a construct per `src/workflows/*.json` are no longer generated, and new projects get an `Api.ts`, `main.ts` and `LocalDevApp.ts` without n8n. The `n8nWorkflows` option, the `n8nEndpoint` environment config field and the exported `WorkflowAutoDiscover` class are gone, so every project removes `n8nWorkflows` and `n8nEndpoint` from its `.projenrc.ts`.\n\nA project that doesn't use n8n stops compiling until it also removes:\n\n- `n8nEndpoint` from every `ApplicationStack` in `src/main.ts` and `src/LocalDevApp.ts`;\n- the `n8nEndpoint` prop, the n8n JWT key secret and its `grantRead` from `src/constructs/Api.ts`;\n- any `n8nEndpoint: this.props.n8nEndpoint` in a `createApi()` override;\n- any generated `src/constructs/*Workflow.ts` files and `src/workflows/`, which import the now-deleted `WorkflowProvider`.\n\nA project that uses n8n takes ownership of it:\n\n1. Upgrading makes projen delete `src/constructs/WorkflowProvider.ts`. Restore it from the last commit that had it, which works whether or not the deletion is already committed:\n\n ```bash\n git checkout \"$(git log -n1 --format=%H --diff-filter=AM -- src/constructs/WorkflowProvider.ts)\" -- src/constructs/WorkflowProvider.ts\n ```\n\n Then delete the `~~ Generated by projen` header line from it and from your per-workflow constructs (such as `AlfredWorkflow.ts`). They're yours from now on, and a new workflow needs its construct written by hand.\n2. Move `n8nEndpoint` from `Api` to your `ApplicationStack`. Remove the `n8nEndpoint` prop and its `N8N_ENDPOINT` environment entry from `src/constructs/Api.ts`, add `readonly n8nEndpoint: string;` to `ApplicationStackProps` (your `main.ts` and `LocalDevApp.ts` already pass it), and set the variable after `super()`:\n\n ```typescript\n this.api.lambdaFunction.addEnvironment('N8N_ENDPOINT', props.n8nEndpoint);\n ```\n\n## SoftwareFactoryFiles (standalone, non-Batman projects)\n\n`SoftwareFactoryFiles` is independently exported and can be attached to any\n`projen` `NodeProject` — it does not require `BatmanProject` or\n`BootcampProject`. It generates the `@swamp/software-factory` state machine,\nthe architecture rule registry, the pre-PR attestation gate, the OpenSpec\ntask-completion gate, and the swamp workflows that wire them together.\n\n```typescript\nimport { javascript } from 'projen';\nimport { SoftwareFactoryFiles } from '@macedon-technologies/batman';\n\nconst project = new javascript.NodeProject({\n name: 'my-other-project',\n defaultReleaseBranch: 'main',\n});\n\nnew SoftwareFactoryFiles(project, {\n repoName: 'my-other-project',\n githubOwner: 'my-github-org', // defaults to 'macedon-technologies' if omitted\n baseBranch: 'main', // defaults to 'main'\n});\n\nproject.synth();\n```\n\nAfter running `npx projen`, follow the printed `swamp:bootstrap` task to pull\nthe required swamp extensions and create the project's secrets vault."
|
|
100
|
+
"markdown": "# Platform Common Projen\n\nA baseline architecture template for new projects using Projen. This project provides a standardized foundation that includes both frontend and backend components with authentication.\n\n## Project Intention\n\nThis template serves as a starting point for new projects, providing:\n- Consistent project structure and configuration\n- Pre-configured development tooling\n- Integrated authentication system\n- Full-stack application foundation\n\n## Components Created\n\nThe BatmanProject generates:\n\n### Frontend\n- **React Application** - Modern React app with TypeScript\n- **Clerk Authentication** - Integrated user authentication and management\n- **Playwright e2e Testing** - `@playwright/test` + `@clerk/testing` devDeps, a `test:e2e` task, and a scaffolded `playwright.config.ts` + `e2e/` starter suite (see the generated `web/e2e/README.md`); disable with `e2eTesting: false`. The generated `pr-deploy.yml` workflow also runs this suite against each PR's deployed URL unless `e2eTesting: false` is set.\n\n### Backend/Infrastructure\n- **AWS Infrastructure** - CDK-based cloud resources\n- **API Gateway** - RESTful API endpoints\n- **Lambda Functions** - Serverless compute\n- **Database** - Persistent data storage\n\n## Usage Examples\n\n### Basic Project Creation\n\nCreate a `.projenrc.ts` file in your project root:\n\n```typescript\nimport { BatmanProject } from '@macedon-technologies/batman';\n\nconst project = new BatmanProject({\n name: 'my-new-app',\n defaultReleaseBranch: 'main',\n});\n\nproject.synth();\n```\n\nThen run:\n```bash\nnpx projen\n```\n\n### With Custom Configuration\n\nCreate a `.projenrc.ts` file with additional options:\n\n```typescript\nimport { BatmanProject } from '@macedon-technologies/batman';\n\nconst project = new BatmanProject({\n name: 'my-enterprise-app',\n defaultReleaseBranch: 'main',\n description: 'Enterprise application with authentication',\n authorName: 'Your Name',\n authorEmail: 'your.email@company.com',\n});\n\nproject.synth();\n```\n\nThen run:\n```bash\nnpx projen\n```\n\n### Development Workflow\n\n```bash\n# Install dependencies\nyarn install\n\n# Start development server\nyarn dev\n\n# Deploy infrastructure\nyarn deploy\n\n# Run tests\nyarn test\n```\n\n## Deploying staging on demand\n\nThe generated `Staging Deploy` workflow runs on every push to `main` and can also be run manually from the Actions tab (\"Run workflow\"). Use that to redeploy `main` when a merge raised no push event or a deploy needs re-running. Pick `main` as the branch: the workflow deploys whichever branch you select.\n\n## Auto-merging pull requests with a GitHub App\n\nSetting `prAutoMerge: true` generates `.github/workflows/pr-auto-merge.yml`. It turns on GitHub's squash auto-merge for every pull request into the default branch when the pull request is opened, reopened or marked ready for review. Drafts and pull requests into other branches are left alone. The pull request then merges by itself once your branch ruleset is satisfied.\n\nThe workflow arms the merge with a GitHub App token, not `GITHUB_TOKEN`. GitHub attributes an auto-merge to whoever armed it and raises no events for anything `GITHUB_TOKEN` does, so a merge armed with it would never trigger `Staging Deploy` or `PR Cleanup`.\n\nThe App's private key can mint tokens for every repository the App is installed on, so it lives in an `auto-merge` environment that only `main` can use, not in the repository's secrets. Anyone with write access can read repository secrets from a workflow on their own branch. The workflow runs on `pull_request_target`, which uses the workflow file from the default branch and so passes the environment's branch rule; it never checks out pull request code. Use one App per repository so a leaked key reaches only that repository.\n\nSet it up in this order. Until the App and credentials exist, every pull request's `pr-auto-merge` run fails.\n\n1. **Create a GitHub App** in the organization (Settings → Developer settings → GitHub Apps → New GitHub App). It needs no webhook. Under Repository permissions give it **Read and write** on Contents, Pull requests, Workflows and Issues. Workflows is needed because Batman upgrades change files under `.github/workflows/`. Issues lets the merge close linked issues.\n2. **Generate a private key** on the App's page, and note its **Client ID**.\n3. **Install the App** on the repository (the App's page → Install App → Only select repositories).\n4. **Create an `auto-merge` environment** (Settings → Environments → New environment). Under Deployment branches and tags choose **Selected branches and tags** and add `main`. Then add to the environment:\n - an environment **variable** `AUTO_MERGE_APP_CLIENT_ID` set to the Client ID;\n - an environment **secret** `AUTO_MERGE_APP_PRIVATE_KEY` set to the full contents of the `.pem` file.\n\n Don't add them as repository variables or secrets.\n5. **Turn on \"Allow auto-merge\"** in the repository's Settings → General → Pull Requests.\n6. **Protect the default branch** with a ruleset that requires an approving review and your required status checks. `prAutoMerge` doesn't create one. Without it, an armed pull request merges as soon as it can, unreviewed.\n7. Set `prAutoMerge: true` in `.projenrc.ts` and run projen.\n\nIf the variable or the secret is missing from the environment, the run fails with an error naming both. If the App's installation lacks one of the four permissions, minting the token fails. Pull requests from forks are armed like any other, since the workflow runs from the default branch, and still wait for the ruleset's review. Dependabot pull requests don't receive the environment's secret, so their runs fail the credential check. Merge those by hand. Each run also records a deployment to the `auto-merge` environment.\n\n## Upgrading\n\n### Datadog tracing defaults changed\n\n`BaseApplicationStack` now defaults `datadog.nodeLayerVersion` to 143 (dd-trace 6.x) instead of 132, and passes `enableMergeXrayTraces: false` to `DatadogLambda`. These reach every project on its next `npx projen`. With merging off, the `aws.apigateway` span Datadog infers starts the API trace; API Gateway stage X-Ray tracing stays on. A stack that set its own `nodeLayerVersion` keeps it. To merge X-Ray traces again, override `createDatadogExtension()` in your `ApplicationStack`:\n\n```ts\nprotected override createDatadogExtension() {\n super.createDatadogExtension();\n Object.assign(this.datadog.props, { enableMergeXrayTraces: true });\n}\n```\n\nNew projects' `src/constructs/Api.ts` installs `express` and `pg` into the Lambda artifact instead of bundling them, so dd-trace can trace router and `pg.query` calls. `Api.ts` is yours once generated, so existing projects add `express` and `pg` to `bundling.nodeModules` on the `NodejsFunction` in `createLambdaFunction()`, creating the block if it has none:\n\n```ts\nbundling: {\n nodeModules: ['express', 'pg'],\n},\n```\n\nCDK installs each package at the version spec in your root `package.json`, so `express` and `pg` must have plain version ranges there. A `catalog:` spec fails synth.\n\n### The base stack no longer creates a VPC\n\n`BaseApplicationStack` used to create a VPC with a NAT gateway and attach the API Lambda to it.\nIt now creates neither unless the stack props set `enableVpc: true`. A stack that upgrades\nwithout it deletes its VPC and NAT gateway on the next deploy.\n\nAdd `enableVpc: true` to every `ApplicationStack` in `src/main.ts` and `src/LocalDevApp.ts` (new projects: `additionalStackProps: { enableVpc: true }` on each environment) if any of these apply:\n\n- your `ApplicationStack` uses `this.vpc` or overrides `createVpc()`; the override is not called otherwise;\n- the Lambda reaches anything private, such as RDS or a VPC endpoint;\n- another stack imports this stack's VPC outputs; CloudFormation refuses to delete them.\n\n`this.vpc` is now typed `IVpc | undefined`, even with `enableVpc: true`, so code that passes it where an `IVpc` is required (such as `new SecurityGroup(this, 'Sg', { vpc: this.vpc })`) stops compiling. With `enableVpc: true` the VPC is created before your `ApplicationStack` constructor runs, so use `this.vpc!` there, or check it and throw if it's missing.\n\nOtherwise, make `vpc` optional in `src/constructs/Api.ts` (`readonly vpc?: IVpc;`) so the project compiles. Deleting the VPC can take a while as Lambda releases its network interfaces.\n\nWith `enableVpc: true`, the Lambda is attached only if your `Api.ts` still accepts a `vpc` prop and your stack doesn't override `createApi()` without passing it.\n\n### n8n support is removed\n\n`BatmanProject` and `BootcampProject` no longer generate any n8n wiring. The base stacks have no `n8nEndpoint` prop, `src/constructs/WorkflowProvider.ts` and a construct per `src/workflows/*.json` are no longer generated, and new projects get an `Api.ts`, `main.ts` and `LocalDevApp.ts` without n8n. The `n8nWorkflows` option, the `n8nEndpoint` environment config field and the exported `WorkflowAutoDiscover` class are gone, so every project removes `n8nWorkflows` and `n8nEndpoint` from its `.projenrc.ts`.\n\nA project that doesn't use n8n stops compiling until it also removes:\n\n- `n8nEndpoint` from every `ApplicationStack` in `src/main.ts` and `src/LocalDevApp.ts`;\n- the `n8nEndpoint` prop, the n8n JWT key secret and its `grantRead` from `src/constructs/Api.ts`;\n- any `n8nEndpoint: this.props.n8nEndpoint` in a `createApi()` override;\n- any generated `src/constructs/*Workflow.ts` files and `src/workflows/`, which import the now-deleted `WorkflowProvider`.\n\nA project that uses n8n takes ownership of it:\n\n1. Upgrading makes projen delete `src/constructs/WorkflowProvider.ts`. Restore it from the last commit that had it, which works whether or not the deletion is already committed:\n\n ```bash\n git checkout \"$(git log -n1 --format=%H --diff-filter=AM -- src/constructs/WorkflowProvider.ts)\" -- src/constructs/WorkflowProvider.ts\n ```\n\n Then delete the `~~ Generated by projen` header line from it and from your per-workflow constructs (such as `AlfredWorkflow.ts`). They're yours from now on, and a new workflow needs its construct written by hand.\n2. Move `n8nEndpoint` from `Api` to your `ApplicationStack`. Remove the `n8nEndpoint` prop and its `N8N_ENDPOINT` environment entry from `src/constructs/Api.ts`, add `readonly n8nEndpoint: string;` to `ApplicationStackProps` (your `main.ts` and `LocalDevApp.ts` already pass it), and set the variable after `super()`:\n\n ```typescript\n this.api.lambdaFunction.addEnvironment('N8N_ENDPOINT', props.n8nEndpoint);\n ```\n\n## SoftwareFactoryFiles (standalone, non-Batman projects)\n\n`SoftwareFactoryFiles` is independently exported and can be attached to any\n`projen` `NodeProject` — it does not require `BatmanProject` or\n`BootcampProject`. It generates the `@swamp/software-factory` state machine,\nthe architecture rule registry, the pre-PR attestation gate, the OpenSpec\ntask-completion gate, and the swamp workflows that wire them together.\n\n```typescript\nimport { javascript } from 'projen';\nimport { SoftwareFactoryFiles } from '@macedon-technologies/batman';\n\nconst project = new javascript.NodeProject({\n name: 'my-other-project',\n defaultReleaseBranch: 'main',\n});\n\nnew SoftwareFactoryFiles(project, {\n repoName: 'my-other-project',\n githubOwner: 'my-github-org', // defaults to 'macedon-technologies' if omitted\n baseBranch: 'main', // defaults to 'main'\n});\n\nproject.synth();\n```\n\nAfter running `npx projen`, follow the printed `swamp:bootstrap` task to pull\nthe required swamp extensions and create the project's secrets vault.\n\n### Work items and `factory/work-item-sources.md`\n\nA factory run's `workItem` is the ticket's bare key in its own tracker, such as\n`108` for a GitHub issue or `AI-123`, with nothing naming the tracker. The run's\nrecords and scratch paths are named after it, so a run is always started with\nthe bare key, even when the request names the tracker.\n\nThe factory's intake stage resolves the work item by following the managed\n`factory/work-item-sources.md`: which sources' key formats fit it, which model\nand method fetch it, how its fields map into the `issue-context` artifact, and\nwhich link line `open-pr` writes in the PR body (`Closes #<key>` for GitHub).\nWhen more than one source finds the key, intake stops and asks which was meant. Batman regenerates this file on every\nsynth, so supporting another tracker never needs a factory definition edit. The\nfile is part of the PR attestation manifest. The first synth that adds it changes\n`attestation/manifest.ts`, so any factory PR that's already open needs\nre-attesting.\n\n#### Updating an already-scaffolded factory\n\nThe factory definition (`models/@swamp/software-factory/<repo>-factory.yaml`)\nis written once, so a repo scaffolded before the routing file existed\nregenerates it:\n\n1. Note the file's `id:` line and any changes the repo has made to it since it\n was scaffolded (`git log -p -- <file>`).\n2. Delete the file and run `npx projen`, which writes the current template.\n3. Put the old `id:` line back, so swamp still treats it as the same model, and\n re-apply the repo's changes.\n\nRuns that recorded the old `issue-context` (`number` instead of `source`/`key`)\nkeep working: the routing file tells later stages to treat them as GitHub issues."
|
|
101
101
|
},
|
|
102
102
|
"repository": {
|
|
103
103
|
"type": "git",
|
|
@@ -926,7 +926,7 @@
|
|
|
926
926
|
},
|
|
927
927
|
"locationInModule": {
|
|
928
928
|
"filename": "src/SoftwareFactoryFiles.ts",
|
|
929
|
-
"line":
|
|
929
|
+
"line": 77
|
|
930
930
|
},
|
|
931
931
|
"parameters": [
|
|
932
932
|
{
|
|
@@ -946,7 +946,7 @@
|
|
|
946
946
|
"kind": "class",
|
|
947
947
|
"locationInModule": {
|
|
948
948
|
"filename": "src/SoftwareFactoryFiles.ts",
|
|
949
|
-
"line":
|
|
949
|
+
"line": 76
|
|
950
950
|
},
|
|
951
951
|
"name": "SoftwareFactoryFiles",
|
|
952
952
|
"symbolId": "src/SoftwareFactoryFiles:SoftwareFactoryFiles"
|
|
@@ -961,7 +961,7 @@
|
|
|
961
961
|
"kind": "interface",
|
|
962
962
|
"locationInModule": {
|
|
963
963
|
"filename": "src/SoftwareFactoryFiles.ts",
|
|
964
|
-
"line":
|
|
964
|
+
"line": 13
|
|
965
965
|
},
|
|
966
966
|
"name": "SoftwareFactoryFilesOptions",
|
|
967
967
|
"properties": [
|
|
@@ -974,7 +974,7 @@
|
|
|
974
974
|
"immutable": true,
|
|
975
975
|
"locationInModule": {
|
|
976
976
|
"filename": "src/SoftwareFactoryFiles.ts",
|
|
977
|
-
"line":
|
|
977
|
+
"line": 19
|
|
978
978
|
},
|
|
979
979
|
"name": "repoName",
|
|
980
980
|
"type": {
|
|
@@ -990,7 +990,7 @@
|
|
|
990
990
|
"immutable": true,
|
|
991
991
|
"locationInModule": {
|
|
992
992
|
"filename": "src/SoftwareFactoryFiles.ts",
|
|
993
|
-
"line":
|
|
993
|
+
"line": 38
|
|
994
994
|
},
|
|
995
995
|
"name": "actionVersions",
|
|
996
996
|
"optional": true,
|
|
@@ -1009,7 +1009,7 @@
|
|
|
1009
1009
|
"immutable": true,
|
|
1010
1010
|
"locationInModule": {
|
|
1011
1011
|
"filename": "src/SoftwareFactoryFiles.ts",
|
|
1012
|
-
"line":
|
|
1012
|
+
"line": 49
|
|
1013
1013
|
},
|
|
1014
1014
|
"name": "attestationFiles",
|
|
1015
1015
|
"optional": true,
|
|
@@ -1032,7 +1032,7 @@
|
|
|
1032
1032
|
"immutable": true,
|
|
1033
1033
|
"locationInModule": {
|
|
1034
1034
|
"filename": "src/SoftwareFactoryFiles.ts",
|
|
1035
|
-
"line":
|
|
1035
|
+
"line": 33
|
|
1036
1036
|
},
|
|
1037
1037
|
"name": "baseBranch",
|
|
1038
1038
|
"optional": true,
|
|
@@ -1050,7 +1050,7 @@
|
|
|
1050
1050
|
"immutable": true,
|
|
1051
1051
|
"locationInModule": {
|
|
1052
1052
|
"filename": "src/SoftwareFactoryFiles.ts",
|
|
1053
|
-
"line":
|
|
1053
|
+
"line": 26
|
|
1054
1054
|
},
|
|
1055
1055
|
"name": "githubOwner",
|
|
1056
1056
|
"optional": true,
|
|
@@ -1393,6 +1393,6 @@
|
|
|
1393
1393
|
"symbolId": "src/WorkflowActionVersions:WorkflowActionVersions"
|
|
1394
1394
|
}
|
|
1395
1395
|
},
|
|
1396
|
-
"version": "1.
|
|
1397
|
-
"fingerprint": "
|
|
1396
|
+
"version": "1.32.0",
|
|
1397
|
+
"fingerprint": "mzAhut3YlIggln/fITyEpqCI9pvzHMHbEObX8fjAVW4="
|
|
1398
1398
|
}
|
package/README.md
CHANGED
|
@@ -116,6 +116,27 @@ If the variable or the secret is missing from the environment, the run fails wit
|
|
|
116
116
|
|
|
117
117
|
## Upgrading
|
|
118
118
|
|
|
119
|
+
### Datadog tracing defaults changed
|
|
120
|
+
|
|
121
|
+
`BaseApplicationStack` now defaults `datadog.nodeLayerVersion` to 143 (dd-trace 6.x) instead of 132, and passes `enableMergeXrayTraces: false` to `DatadogLambda`. These reach every project on its next `npx projen`. With merging off, the `aws.apigateway` span Datadog infers starts the API trace; API Gateway stage X-Ray tracing stays on. A stack that set its own `nodeLayerVersion` keeps it. To merge X-Ray traces again, override `createDatadogExtension()` in your `ApplicationStack`:
|
|
122
|
+
|
|
123
|
+
```ts
|
|
124
|
+
protected override createDatadogExtension() {
|
|
125
|
+
super.createDatadogExtension();
|
|
126
|
+
Object.assign(this.datadog.props, { enableMergeXrayTraces: true });
|
|
127
|
+
}
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
New projects' `src/constructs/Api.ts` installs `express` and `pg` into the Lambda artifact instead of bundling them, so dd-trace can trace router and `pg.query` calls. `Api.ts` is yours once generated, so existing projects add `express` and `pg` to `bundling.nodeModules` on the `NodejsFunction` in `createLambdaFunction()`, creating the block if it has none:
|
|
131
|
+
|
|
132
|
+
```ts
|
|
133
|
+
bundling: {
|
|
134
|
+
nodeModules: ['express', 'pg'],
|
|
135
|
+
},
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
CDK installs each package at the version spec in your root `package.json`, so `express` and `pg` must have plain version ranges there. A `catalog:` spec fails synth.
|
|
139
|
+
|
|
119
140
|
### The base stack no longer creates a VPC
|
|
120
141
|
|
|
121
142
|
`BaseApplicationStack` used to create a VPC with a NAT gateway and attach the API Lambda to it.
|
|
@@ -187,4 +208,36 @@ project.synth();
|
|
|
187
208
|
```
|
|
188
209
|
|
|
189
210
|
After running `npx projen`, follow the printed `swamp:bootstrap` task to pull
|
|
190
|
-
the required swamp extensions and create the project's secrets vault.
|
|
211
|
+
the required swamp extensions and create the project's secrets vault.
|
|
212
|
+
|
|
213
|
+
### Work items and `factory/work-item-sources.md`
|
|
214
|
+
|
|
215
|
+
A factory run's `workItem` is the ticket's bare key in its own tracker, such as
|
|
216
|
+
`108` for a GitHub issue or `AI-123`, with nothing naming the tracker. The run's
|
|
217
|
+
records and scratch paths are named after it, so a run is always started with
|
|
218
|
+
the bare key, even when the request names the tracker.
|
|
219
|
+
|
|
220
|
+
The factory's intake stage resolves the work item by following the managed
|
|
221
|
+
`factory/work-item-sources.md`: which sources' key formats fit it, which model
|
|
222
|
+
and method fetch it, how its fields map into the `issue-context` artifact, and
|
|
223
|
+
which link line `open-pr` writes in the PR body (`Closes #<key>` for GitHub).
|
|
224
|
+
When more than one source finds the key, intake stops and asks which was meant. Batman regenerates this file on every
|
|
225
|
+
synth, so supporting another tracker never needs a factory definition edit. The
|
|
226
|
+
file is part of the PR attestation manifest. The first synth that adds it changes
|
|
227
|
+
`attestation/manifest.ts`, so any factory PR that's already open needs
|
|
228
|
+
re-attesting.
|
|
229
|
+
|
|
230
|
+
#### Updating an already-scaffolded factory
|
|
231
|
+
|
|
232
|
+
The factory definition (`models/@swamp/software-factory/<repo>-factory.yaml`)
|
|
233
|
+
is written once, so a repo scaffolded before the routing file existed
|
|
234
|
+
regenerates it:
|
|
235
|
+
|
|
236
|
+
1. Note the file's `id:` line and any changes the repo has made to it since it
|
|
237
|
+
was scaffolded (`git log -p -- <file>`).
|
|
238
|
+
2. Delete the file and run `npx projen`, which writes the current template.
|
|
239
|
+
3. Put the old `id:` line back, so swamp still treats it as the same model, and
|
|
240
|
+
re-apply the repo's changes.
|
|
241
|
+
|
|
242
|
+
Runs that recorded the old `issue-context` (`number` instead of `source`/`key`)
|
|
243
|
+
keep working: the routing file tells later stages to treat them as GitHub issues.
|
package/attestation/manifest.ts
CHANGED
|
@@ -15,6 +15,7 @@ export const MANIFEST_FILES: readonly string[] = [
|
|
|
15
15
|
'workflows/workflow-openspec-plan-verify.yaml',
|
|
16
16
|
'workflows/workflow-openspec-tasks-verify.yaml',
|
|
17
17
|
'models/@swamp/software-factory/platform-common-factory.yaml',
|
|
18
|
+
'factory/work-item-sources.md',
|
|
18
19
|
'architecture-rules/rules.json',
|
|
19
20
|
'architecture-rules/check.ts',
|
|
20
21
|
'openspec-gates/check-tasks-complete.ts',
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
<!-- ~~ Generated by projen. To modify, edit .projenrc.ts and run "pnpm exec projen". -->
|
|
2
|
+
# Work-item sources
|
|
3
|
+
|
|
4
|
+
The software factory's intake and open-pr stages follow this file to turn a
|
|
5
|
+
`workItem` into an `issue-context` record and a PR link line.
|
|
6
|
+
|
|
7
|
+
## Reading `workItem`
|
|
8
|
+
|
|
9
|
+
`workItem` is the work item's bare key in its own tracker, such as `108` or `AI-123`, with
|
|
10
|
+
nothing naming the tracker. Start a run with the bare key even when the request names the
|
|
11
|
+
tracker ("spar story AI-123" starts `AI-123`).
|
|
12
|
+
|
|
13
|
+
## Resolving a work item
|
|
14
|
+
|
|
15
|
+
1. The candidates are every source below whose **Match** fits `workItem`.
|
|
16
|
+
2. For each candidate, run its **Fetch**, then its **Read back**.
|
|
17
|
+
3. If more than one candidate finds the work item, stop and ask which one was meant.
|
|
18
|
+
4. If none finds it, stop: do not record `issue-context`. Report the `workItem` and the
|
|
19
|
+
sources this file lists (`github`).
|
|
20
|
+
5. Otherwise record `issue-context` using the **Mapping** of the source that found it.
|
|
21
|
+
|
|
22
|
+
## issue-context
|
|
23
|
+
|
|
24
|
+
| Field | Required | Meaning |
|
|
25
|
+
|-------|----------|---------|
|
|
26
|
+
| `source` | yes | The source id below, e.g. `github` |
|
|
27
|
+
| `key` | yes | The tracker's own identifier, as a string |
|
|
28
|
+
| `title` | yes | The work item's title |
|
|
29
|
+
| `url` | yes | A link a person can open |
|
|
30
|
+
| `body` | no | The description as plain text |
|
|
31
|
+
| `labels` | no | Label names |
|
|
32
|
+
| `acceptanceCriteria` | no | One string per criterion |
|
|
33
|
+
|
|
34
|
+
A source may record extra fields alongside these.
|
|
35
|
+
|
|
36
|
+
An `issue-context` with no `source` was recorded before this file existed: treat it as
|
|
37
|
+
`source: github` with `key` equal to its `number`.
|
|
38
|
+
|
|
39
|
+
## PR link line
|
|
40
|
+
|
|
41
|
+
open-pr puts the **PR link line** of the source named by `issue-context.source` in the
|
|
42
|
+
PR body, with `<key>` and `<url>` taken from `issue-context`.
|
|
43
|
+
|
|
44
|
+
## Sources
|
|
45
|
+
|
|
46
|
+
### github
|
|
47
|
+
|
|
48
|
+
- **Match:** a positive integer such as `108`, which is the issue number.
|
|
49
|
+
- **Fetch:** run the `platform-common-issues` model's `list_issues` method for `macedon-technologies/platform-common`.
|
|
50
|
+
- **Read back:** `swamp data query` over the `platform-common-issues` data, filtered to the issue whose `number` equals the key as an integer.
|
|
51
|
+
- **Mapping:** `source: github`; `key`: the issue number as a string; `title`; `body`, omitted when the issue has none; `labels`: the label names; `url`: the issue's HTML URL.
|
|
52
|
+
- **PR link line:** `Closes #<key>`
|
package/lib/ApiConstructFile.js
CHANGED
|
@@ -90,6 +90,9 @@ export class Api extends Construct {
|
|
|
90
90
|
memorySize: 512,
|
|
91
91
|
entry: join(__dirname, 'handler/Api.Function.ts'),
|
|
92
92
|
vpc: this.props.vpc,
|
|
93
|
+
bundling: {
|
|
94
|
+
nodeModules: ['express', 'pg'],
|
|
95
|
+
},
|
|
93
96
|
});
|
|
94
97
|
}
|
|
95
98
|
|
|
@@ -173,4 +176,4 @@ export class Api extends Construct {
|
|
|
173
176
|
}
|
|
174
177
|
}
|
|
175
178
|
exports.ApiConstructFile = ApiConstructFile;
|
|
176
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
179
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBpQ29uc3RydWN0RmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9BcGlDb25zdHJ1Y3RGaWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1DQUFvQztBQUd2QixRQUFBLGlDQUFpQyxHQUFHLGtDQUFrQyxDQUFDO0FBV3BGLE1BQWEsZ0JBQWlCLFNBQVEsbUJBQVU7SUFDOUMsWUFBWSxPQUE0QixFQUFFLFVBQW1DLEVBQUU7UUFDN0UsTUFBTSx1QkFBdUIsR0FBRyxPQUFPLENBQUMsdUJBQXVCLElBQUkseUNBQWlDLENBQUM7UUFDckcsS0FBSyxDQUFDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRTtZQUN0QyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs0QkFrRVksdUJBQXVCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQWtHbEQ7U0FDSSxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUEzS0QsNENBMktDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2FtcGxlRmlsZSB9IGZyb20gJ3Byb2plbic7XG5pbXBvcnQgeyBBd3NDZGtUeXBlU2NyaXB0QXBwIH0gZnJvbSAncHJvamVuL2xpYi9hd3NjZGsnO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9BVVRIT1JJWkVSX09CSkVDVF9WRVJTSU9OID0gJ3NrYU9vdGZwSzhsOEJiUWdvTnlUWU8zTVo1YUEuM3hsJztcblxuZXhwb3J0IGludGVyZmFjZSBBcGlDb25zdHJ1Y3RGaWxlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgUzMgb2JqZWN0IHZlcnNpb24gb2YgdGhlIGNsZXJrLWF1dGhvcml6ZXIgTGFtYmRhIGRlcGxveW1lbnQgcGFja2FnZSB0byBwaW4uXG4gICAqXG4gICAqIEBkZWZhdWx0ICdza2FPb3RmcEs4bDhCYlFnb055VFlPM01aNWFBLjN4bCdcbiAgICovXG4gIHJlYWRvbmx5IGF1dGhvcml6ZXJPYmplY3RWZXJzaW9uPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgQXBpQ29uc3RydWN0RmlsZSBleHRlbmRzIFNhbXBsZUZpbGUge1xuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBBd3NDZGtUeXBlU2NyaXB0QXBwLCBvcHRpb25zOiBBcGlDb25zdHJ1Y3RGaWxlT3B0aW9ucyA9IHt9KSB7XG4gICAgY29uc3QgYXV0aG9yaXplck9iamVjdFZlcnNpb24gPSBvcHRpb25zLmF1dGhvcml6ZXJPYmplY3RWZXJzaW9uID8/IERFRkFVTFRfQVVUSE9SSVpFUl9PQkpFQ1RfVkVSU0lPTjtcbiAgICBzdXBlcihwcm9qZWN0LCAnc3JjL2NvbnN0cnVjdHMvQXBpLnRzJywge1xuICAgICAgY29udGVudHM6IGBpbXBvcnQgeyBqb2luIH0gZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBSdXN0RnVuY3Rpb24gfSBmcm9tICdAY2RrbGFicy9hd3MtbGFtYmRhLXJ1c3QnO1xuaW1wb3J0IHsgRHVyYXRpb24sIFN0YWNrIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQWNjZXNzTG9nRm9ybWF0LCBFbmRwb2ludFR5cGUsIExhbWJkYUludGVncmF0aW9uLCBMb2dHcm91cExvZ0Rlc3RpbmF0aW9uLCBSZXN0QXBpLCBUb2tlbkF1dGhvcml6ZXIgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtYXBpZ2F0ZXdheSc7XG5pbXBvcnQgeyBJVnBjIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjMic7XG5pbXBvcnQgeyBBbnlQcmluY2lwYWwsIEVmZmVjdCwgUG9saWN5RG9jdW1lbnQsIFBvbGljeVN0YXRlbWVudCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0IHsgQXJjaGl0ZWN0dXJlLCBTM0NvZGVWMiwgRnVuY3Rpb24gYXMgTGFtYmRhRnVuY3Rpb24sIFJ1bnRpbWUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCB7IE5vZGVqc0Z1bmN0aW9uIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYS1ub2RlanMnO1xuaW1wb3J0IHsgTG9nR3JvdXAsIFJldGVudGlvbkRheXMgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbG9ncyc7XG5pbXBvcnQgeyBCdWNrZXQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnO1xuXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IFNlY3JldCB9IGZyb20gJy4vU2VjcmV0JztcblxuZXhwb3J0IGludGVyZmFjZSBBcGlQcm9wcyB7XG4gIHJlYWRvbmx5IGNsb3VkRnJvbnRPcmlnaW5SZXF1ZXN0UG9saWN5SWQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHZwYz86IElWcGM7XG4gIHJlYWRvbmx5IGNsZXJrSndrc1VybDogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgQXBpIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIHJlc3RBcGk6IFJlc3RBcGk7XG4gIHB1YmxpYyBsYW1iZGFGdW5jdGlvbjogTGFtYmRhRnVuY3Rpb247XG5cbiAgcHJpdmF0ZSBhdXRob3JpemVyRnVuY3Rpb246IFJ1c3RGdW5jdGlvbjtcbiAgcHJpdmF0ZSBhdXRob3JpemVyOiBUb2tlbkF1dGhvcml6ZXI7XG4gIHByaXZhdGUgY2xlcmtBdXRoU2VjcmV0OiBTZWNyZXQ7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJpdmF0ZSBwcm9wczogQXBpUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgdGhpcy5jcmVhdGVDbGVya0F1dGhTZWNyZXQoKTtcbiAgICBpZiAoIXRoaXMuY2xlcmtBdXRoU2VjcmV0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBjcmVhdGUgQ2xlcmsgYXV0aCBzZWNyZXQnKTtcbiAgICB9XG5cbiAgICB0aGlzLmNyZWF0ZUxhbWJkYUZ1bmN0aW9uKCk7XG4gICAgaWYgKCF0aGlzLmxhbWJkYUZ1bmN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBjcmVhdGUgbGFtYmRhIGZ1bmN0aW9uJyk7XG4gICAgfVxuXG4gICAgdGhpcy5jcmVhdGVBdXRob3JpemVyRnVuY3Rpb24oKTtcbiAgICBpZiAoIXRoaXMuYXV0aG9yaXplckZ1bmN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBjcmVhdGUgYXV0aG9yaXplciBmdW5jdGlvbicpO1xuICAgIH1cblxuICAgIHRoaXMuY3JlYXRlUmVzdEFwaSgpO1xuICAgIGlmICghdGhpcy5yZXN0QXBpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBjcmVhdGUgUkVTVCBBUEknKTtcbiAgICB9XG5cbiAgICB0aGlzLmNyZWF0ZUF1dGhvcml6ZXIoKTtcbiAgICBpZiAoIXRoaXMuYXV0aG9yaXplcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gY3JlYXRlIGF1dGhvcml6ZXInKTtcbiAgICB9XG5cbiAgICB0aGlzLnNldHVwQXBpSW50ZWdyYXRpb24oKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjcmVhdGVBdXRob3JpemVyRnVuY3Rpb24oKSB7XG4gICAgdGhpcy5hdXRob3JpemVyRnVuY3Rpb24gPSBuZXcgTGFtYmRhRnVuY3Rpb24odGhpcywgJ0NsZXJrQXV0aG9yaXplckhhbmRsZXInLCB7XG4gICAgICBydW50aW1lOiBSdW50aW1lLlBST1ZJREVEX0FMMjAyMyxcbiAgICAgIHRpbWVvdXQ6IER1cmF0aW9uLnNlY29uZHMoMTApLFxuICAgICAgY29kZTogUzNDb2RlVjIuZnJvbUJ1Y2tldFYyKFxuICAgICAgICBCdWNrZXQuZnJvbUJ1Y2tldE5hbWUodGhpcywgJ01hY2Vkb25QbGF0Zm9ybUJ1Y2tldCcsICdtYWNlZG9uLXBsYXRmb3JtLWNvbW1vbi0wMTU5NTU4MTcyNjMnKSxcbiAgICAgICAgJ2xhbWJkYS9jbGVyay1hdXRob3JpemVyLWFybTY0LWxhdGVzdC56aXAnLFxuICAgICAgICB7IG9iamVjdFZlcnNpb246ICcke2F1dGhvcml6ZXJPYmplY3RWZXJzaW9ufScgfSxcbiAgICAgICksXG4gICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICBDTEVSS19KV0tTX1VSTDogdGhpcy5wcm9wcy5jbGVya0p3a3NVcmwsXG4gICAgICB9LFxuICAgICAgaGFuZGxlcjogJ2l0c3J1c3RiYWJ5JyxcbiAgICAgIGFyY2hpdGVjdHVyZTogQXJjaGl0ZWN0dXJlLkFSTV82NCxcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjcmVhdGVMYW1iZGFGdW5jdGlvbigpIHtcbiAgICB0aGlzLmxhbWJkYUZ1bmN0aW9uID0gbmV3IE5vZGVqc0Z1bmN0aW9uKHRoaXMsICdGdW5jdGlvbicsIHtcbiAgICAgIHJ1bnRpbWU6IFJ1bnRpbWUuTk9ERUpTXzI0X1gsXG4gICAgICB0aW1lb3V0OiBEdXJhdGlvbi5zZWNvbmRzKDMwKSxcbiAgICAgIG1lbW9yeVNpemU6IDUxMixcbiAgICAgIGVudHJ5OiBqb2luKF9fZGlybmFtZSwgJ2hhbmRsZXIvQXBpLkZ1bmN0aW9uLnRzJyksXG4gICAgICB2cGM6IHRoaXMucHJvcHMudnBjLFxuICAgICAgYnVuZGxpbmc6IHtcbiAgICAgICAgbm9kZU1vZHVsZXM6IFsnZXhwcmVzcycsICdwZyddLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjcmVhdGVSZXN0QXBpKCkge1xuICAgIGNvbnN0IGFjY2Vzc0xvZ0dyb3VwID0gbmV3IExvZ0dyb3VwKHRoaXMsICdBcGlBY2Nlc3NMb2dzJywge1xuICAgICAgcmV0ZW50aW9uOiBSZXRlbnRpb25EYXlzLlRXT19XRUVLUyxcbiAgICB9KTtcblxuICAgIHRoaXMucmVzdEFwaSA9IG5ldyBSZXN0QXBpKHRoaXMsICdSZXN0QXBpJywge1xuICAgICAgcmVzdEFwaU5hbWU6IFxcYFxcJHtTdGFjay5vZih0aGlzKS5zdGFja05hbWV9LWFwaVxcYCxcbiAgICAgIGRlc2NyaXB0aW9uOiAnQVBJIGZvciBNVlAgVUkgYXBwbGljYXRpb24nLFxuICAgICAgZW5kcG9pbnRUeXBlczogW0VuZHBvaW50VHlwZS5SRUdJT05BTF0sXG4gICAgICBjbG91ZFdhdGNoUm9sZTogdHJ1ZSxcbiAgICAgIGRlcGxveU9wdGlvbnM6IHtcbiAgICAgICAgdHJhY2luZ0VuYWJsZWQ6IHRydWUsXG4gICAgICAgIG1ldHJpY3NFbmFibGVkOiB0cnVlLFxuICAgICAgICBhY2Nlc3NMb2dEZXN0aW5hdGlvbjogbmV3IExvZ0dyb3VwTG9nRGVzdGluYXRpb24oYWNjZXNzTG9nR3JvdXApLFxuICAgICAgICBhY2Nlc3NMb2dGb3JtYXQ6IEFjY2Vzc0xvZ0Zvcm1hdC5qc29uV2l0aFN0YW5kYXJkRmllbGRzKCksXG4gICAgICB9LFxuICAgICAgcG9saWN5OiBuZXcgUG9saWN5RG9jdW1lbnQoe1xuICAgICAgICBzdGF0ZW1lbnRzOiBbXG4gICAgICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgICBlZmZlY3Q6IEVmZmVjdC5ERU5ZLFxuICAgICAgICAgICAgcHJpbmNpcGFsczogW25ldyBBbnlQcmluY2lwYWwoKV0sXG4gICAgICAgICAgICBhY3Rpb25zOiBbJ2V4ZWN1dGUtYXBpOkludm9rZSddLFxuICAgICAgICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgICAgICAgIGNvbmRpdGlvbnM6IHtcbiAgICAgICAgICAgICAgU3RyaW5nTm90RXF1YWxzOiB7XG4gICAgICAgICAgICAgICAgJ2F3czp1c2VyYWdlbnQnOiAnQW1hem9uIENsb3VkRnJvbnQnLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgIGVmZmVjdDogRWZmZWN0LkFMTE9XLFxuICAgICAgICAgICAgcHJpbmNpcGFsczogW25ldyBBbnlQcmluY2lwYWwoKV0sXG4gICAgICAgICAgICBhY3Rpb25zOiBbJ2V4ZWN1dGUtYXBpOkludm9rZSddLFxuICAgICAgICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgICAgICAgIGNvbmRpdGlvbnM6IHtcbiAgICAgICAgICAgICAgU3RyaW5nRXF1YWxzOiB7XG4gICAgICAgICAgICAgICAgJ2F3czp1c2VyYWdlbnQnOiAnQW1hem9uIENsb3VkRnJvbnQnLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgXSxcbiAgICAgIH0pLFxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNyZWF0ZUF1dGhvcml6ZXIoKSB7XG4gICAgdGhpcy5hdXRob3JpemVyID0gbmV3IFRva2VuQXV0aG9yaXplcih0aGlzLCAnQ2xlcmtBdXRob3JpemVyJywge1xuICAgICAgaGFuZGxlcjogdGhpcy5hdXRob3JpemVyRnVuY3Rpb24sXG4gICAgICBpZGVudGl0eVNvdXJjZTogJ21ldGhvZC5yZXF1ZXN0LmhlYWRlci5BdXRob3JpemF0aW9uJyxcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXR1cEFwaUludGVncmF0aW9uKCkge1xuICAgIGNvbnN0IGludGVncmF0aW9uID0gbmV3IExhbWJkYUludGVncmF0aW9uKHRoaXMubGFtYmRhRnVuY3Rpb24pO1xuICAgIHRoaXMucmVzdEFwaS5yb290LmFkZFByb3h5KHtcbiAgICAgIGRlZmF1bHRJbnRlZ3JhdGlvbjogaW50ZWdyYXRpb24sXG4gICAgICBhbnlNZXRob2Q6IHRydWUsXG4gICAgICBkZWZhdWx0TWV0aG9kT3B0aW9uczoge1xuICAgICAgICBhdXRob3JpemVyOiB0aGlzLmF1dGhvcml6ZXIsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVDbGVya0F1dGhTZWNyZXQoKSB7XG4gICAgdGhpcy5jbGVya0F1dGhTZWNyZXQgPSBuZXcgU2VjcmV0KHRoaXMsICdDbGVya0F1dGhTZWNyZXQnLCB7XG4gICAgICBnZW5lcmF0ZVNlY3JldFN0cmluZzoge1xuICAgICAgICBzZWNyZXRTdHJpbmdUZW1wbGF0ZTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgIGNsZXJrUHVibGlzaGFibGVLZXk6ICcnLFxuICAgICAgICAgIGNsZXJrSndrc1VybDogJycsXG4gICAgICAgIH0pLFxuICAgICAgICBnZW5lcmF0ZVN0cmluZ0tleTogJ2NsZXJrUHVibGlzaGFibGVLZXknLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuYCxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -24,7 +24,7 @@ class BaseApplicationStackFile extends projen_1.TextFile {
|
|
|
24
24
|
' /**',
|
|
25
25
|
' * The version of the Datadog Node.js Lambda layer to use.',
|
|
26
26
|
' *',
|
|
27
|
-
' * @default
|
|
27
|
+
' * @default 143',
|
|
28
28
|
' */',
|
|
29
29
|
' readonly nodeLayerVersion?: number;',
|
|
30
30
|
'',
|
|
@@ -166,10 +166,10 @@ class BaseApplicationStackFile extends projen_1.TextFile {
|
|
|
166
166
|
' this.datadog = new DatadogLambda(this, \'Datadog\', {',
|
|
167
167
|
' apiKeySecret: datadogApiSecret,',
|
|
168
168
|
' service: this.props.datadog?.projectName || this.id,',
|
|
169
|
-
' nodeLayerVersion: this.props.datadog?.nodeLayerVersion ||
|
|
169
|
+
' nodeLayerVersion: this.props.datadog?.nodeLayerVersion || 143,',
|
|
170
170
|
' pythonLayerVersion: this.props.datadog?.pythonLayerVersion || 123,',
|
|
171
171
|
' extensionLayerVersion: 99,',
|
|
172
|
-
' enableMergeXrayTraces:
|
|
172
|
+
' enableMergeXrayTraces: false,',
|
|
173
173
|
' });',
|
|
174
174
|
' }',
|
|
175
175
|
'}',
|
|
@@ -179,4 +179,4 @@ class BaseApplicationStackFile extends projen_1.TextFile {
|
|
|
179
179
|
}
|
|
180
180
|
}
|
|
181
181
|
exports.BaseApplicationStackFile = BaseApplicationStackFile;
|
|
182
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmFzZUFwcGxpY2F0aW9uU3RhY2tGaWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0Jhc2VBcHBsaWNhdGlvblN0YWNrRmlsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBa0M7QUFHbEMsTUFBYSx3QkFBeUIsU0FBUSxpQkFBUTtJQUNwRCxZQUFZLE9BQTRCO1FBQ3RDLEtBQUssQ0FBQyxPQUFPLEVBQUUsb0NBQW9DLEVBQUU7WUFDbkQsTUFBTSxFQUFFLElBQUk7WUFDWixRQUFRLEVBQUUsSUFBSTtZQUNkLEtBQUssRUFBRTtnQkFDTCx3RUFBd0U7Z0JBQ3hFLG9EQUFvRDtnQkFDcEQsc0VBQXNFO2dCQUN0RSw0REFBNEQ7Z0JBQzVELDJDQUEyQztnQkFDM0MsOERBQThEO2dCQUM5RCw2REFBNkQ7Z0JBQzdELDRDQUE0QztnQkFDNUMsZ0VBQWdFO2dCQUNoRSxFQUFFO2dCQUNGLGlFQUFpRTtnQkFDakUsRUFBRTtnQkFDRix3QkFBd0I7Z0JBQ3hCLFNBQVM7Z0JBQ1QsZ0VBQWdFO2dCQUNoRSxRQUFRO2dCQUNSLHFCQUFxQjtnQkFDckIsU0FBUztnQkFDVCx5Q0FBeUM7Z0JBQ3pDLEVBQUU7Z0JBQ0YsU0FBUztnQkFDVCwrREFBK0Q7Z0JBQy9ELFFBQVE7Z0JBQ1IscUJBQXFCO2dCQUNyQixTQUFTO2dCQUNULDJDQUEyQztnQkFDM0MsRUFBRTtnQkFDRixTQUFTO2dCQUNULHNFQUFzRTtnQkFDdEUsUUFBUTtnQkFDUixxQ0FBcUM7Z0JBQ3JDLFNBQVM7Z0JBQ1Qsb0NBQW9DO2dCQUNwQyxNQUFNO2dCQUNOLE9BQU87Z0JBQ1AsMERBQTBEO2dCQUMxRCxNQUFNO2dCQUNOLCtDQUErQztnQkFDL0MsT0FBTztnQkFDUCwwQ0FBMEM7Z0JBQzFDLEVBQUU7Z0JBQ0YsT0FBTztnQkFDUCwrRUFBK0U7Z0JBQy9FLE9BQU87Z0JBQ1AsNkZBQTZGO2dCQUM3RixFQUFFO2dCQUNGLE9BQU87Z0JBQ1Asa0VBQWtFO2dCQUNsRSxPQUFPO2dCQUNQLHFFQUFxRTtnQkFDckUsRUFBRTtnQkFDRixPQUFPO2dCQUNQLG9GQUFvRjtnQkFDcEYsbUZBQW1GO2dCQUNuRix1REFBdUQ7Z0JBQ3ZELE1BQU07Z0JBQ04scUJBQXFCO2dCQUNyQixPQUFPO2dCQUNQLGlDQUFpQztnQkFDakMsRUFBRTtnQkFDRixPQUFPO2dCQUNQLDhEQUE4RDtnQkFDOUQsTUFBTTtnQkFDTiw2QkFBNkI7Z0JBQzdCLE9BQU87Z0JBQ1AsOEJBQThCO2dCQUM5QixFQUFFO2dCQUNGLE9BQU87Z0JBQ1AsaUZBQWlGO2dCQUNqRixNQUFNO2dCQUNOLHlCQUF5QjtnQkFDekIsdUJBQXVCO2dCQUN2QixPQUFPO2dCQUNQLDhCQUE4QjtnQkFDOUIsR0FBRztnQkFDSCxFQUFFO2dCQUNGLDZGQUE2RjtnQkFDN0YscUNBQXFDO2dCQUNyQyxzQ0FBc0M7Z0JBQ3RDLHlCQUF5QjtnQkFDekIsdUJBQXVCO2dCQUN2QiwyQ0FBMkM7Z0JBQzNDLEVBQUU7Z0JBQ0YsZ0ZBQWdGO2dCQUNoRiw4QkFBOEI7Z0JBQzlCLEVBQUU7Z0JBQ0YscUNBQXFDO2dCQUNyQyxzREFBc0Q7Z0JBQ3RELE9BQU87Z0JBQ1AsRUFBRTtnQkFDRixvQ0FBb0M7Z0JBQ3BDLDBCQUEwQjtnQkFDMUIsK0RBQStEO2dCQUMvRCxPQUFPO2dCQUNQLEVBQUU7Z0JBQ0YsOEJBQThCO2dCQUM5Qiw2QkFBNkI7Z0JBQzdCLHdEQUF3RDtnQkFDeEQsT0FBTztnQkFDUCxFQUFFO2dCQUNGLGlDQUFpQztnQkFDakMseUJBQXlCO2dCQUN6QixPQUFPO2dCQUNQLEVBQUU7Z0JBQ0YsdUJBQXVCO2dCQUN2QixzQkFBc0I7Z0JBQ3RCLGlEQUFpRDtnQkFDakQsT0FBTztnQkFDUCxFQUFFO2dCQUNGLGlDQUFpQztnQkFDakMsRUFBRTtnQkFDRiwyQkFBMkI7Z0JBQzNCLHlFQUF5RTtnQkFDekUsS0FBSztnQkFDTCxFQUFFO2dCQUNGLHFDQUFxQztnQkFDckMsdUVBQXVFO2dCQUN2RSxvQ0FBb0M7Z0JBQ3BDLDhCQUE4QjtnQkFDOUIsc0NBQXNDO2dCQUN0QyxTQUFTO2dCQUNULEtBQUs7Z0JBQ0wsRUFBRTtnQkFDRiwyQkFBMkI7Z0JBQzNCLDBGQUEwRjtnQkFDMUYseUNBQXlDO2dCQUN6QywrQ0FBK0M7Z0JBQy9DLDhDQUE4QztnQkFDOUMsU0FBUztnQkFDVCxLQUFLO2dCQUNMLEVBQUU7Z0JBQ0YsMkJBQTJCO2dCQUMzQix5Q0FBeUM7Z0JBQ3pDLHdEQUF3RDtnQkFDeEQsa0JBQWtCO2dCQUNsQix1QkFBdUI7Z0JBQ3ZCLFNBQVM7Z0JBQ1QsS0FBSztnQkFDTCxFQUFFO2dCQUNGLGtDQUFrQztnQkFDbEMscUVBQXFFO2dCQUNyRSxvREFBb0Q7Z0JBQ3BELFNBQVM7Z0JBQ1QsS0FBSztnQkFDTCxFQUFFO2dCQUNGLCtCQUErQjtnQkFDL0IsMkNBQTJDO2dCQUMzQyx3REFBd0Q7Z0JBQ3hELHVEQUF1RDtnQkFDdkQsa0VBQWtFO2dCQUNsRSxTQUFTO2dCQUNULEtBQUs7Z0JBQ0wsRUFBRTtnQkFDRix3Q0FBd0M7Z0JBQ3hDLGtIQUFrSDtnQkFDbEgsMkRBQTJEO2dCQUMzRCx1Q0FBdUM7Z0JBQ3ZDLDREQUE0RDtnQkFDNUQsc0VBQXNFO2dCQUN0RSwwRUFBMEU7Z0JBQzFFLGtDQUFrQztnQkFDbEMsb0NBQW9DO2dCQUNwQyxTQUFTO2dCQUNULEtBQUs7Z0JBQ0wsR0FBRztnQkFDSCxFQUFFO2FBQ0g7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUEvS0QsNERBK0tDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGV4dEZpbGUgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgQXdzQ2RrVHlwZVNjcmlwdEFwcCB9IGZyb20gJ3Byb2plbi9saWIvYXdzY2RrJztcblxuZXhwb3J0IGNsYXNzIEJhc2VBcHBsaWNhdGlvblN0YWNrRmlsZSBleHRlbmRzIFRleHRGaWxlIHtcbiAgY29uc3RydWN0b3IocHJvamVjdDogQXdzQ2RrVHlwZVNjcmlwdEFwcCkge1xuICAgIHN1cGVyKHByb2plY3QsICdzcmMvc3RhY2tzL0Jhc2VBcHBsaWNhdGlvblN0YWNrLnRzJywge1xuICAgICAgbWFya2VyOiB0cnVlLFxuICAgICAgcmVhZG9ubHk6IHRydWUsXG4gICAgICBsaW5lczogW1xuICAgICAgICAnaW1wb3J0IHsgQXNwZWN0cywgQ2ZuT3V0cHV0LCBTdGFjaywgU3RhY2tQcm9wcyB9IGZyb20gXFwnYXdzLWNkay1saWJcXCc7JyxcbiAgICAgICAgJ2ltcG9ydCB7IElWcGMsIFZwYyB9IGZyb20gXFwnYXdzLWNkay1saWIvYXdzLWVjMlxcJzsnLFxuICAgICAgICAnaW1wb3J0IHsgSG9zdGVkWm9uZSwgSUhvc3RlZFpvbmUgfSBmcm9tIFxcJ2F3cy1jZGstbGliL2F3cy1yb3V0ZTUzXFwnOycsXG4gICAgICAgICdpbXBvcnQgeyBTZWNyZXQgfSBmcm9tIFxcJ2F3cy1jZGstbGliL2F3cy1zZWNyZXRzbWFuYWdlclxcJzsnLFxuICAgICAgICAnaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcXCdjb25zdHJ1Y3RzXFwnOycsXG4gICAgICAgICdpbXBvcnQgeyBEYXRhZG9nTGFtYmRhIH0gZnJvbSBcXCdkYXRhZG9nLWNkay1jb25zdHJ1Y3RzLXYyXFwnOycsXG4gICAgICAgICdpbXBvcnQgeyBEYXRhRG9nQXNwZWN0IH0gZnJvbSBcXCcuLi9hc3BlY3RzL0RhdGFEb2dBc3BlY3RcXCc7JyxcbiAgICAgICAgJ2ltcG9ydCB7IEFwaSB9IGZyb20gXFwnLi4vY29uc3RydWN0cy9BcGlcXCc7JyxcbiAgICAgICAgJ2ltcG9ydCB7IFN0YXRpY1dlYnNpdGUgfSBmcm9tIFxcJy4uL2NvbnN0cnVjdHMvU3RhdGljV2Vic2l0ZVxcJzsnLFxuICAgICAgICAnJyxcbiAgICAgICAgJ2V4cG9ydCBpbnRlcmZhY2UgQmFzZUFwcGxpY2F0aW9uU3RhY2tQcm9wcyBleHRlbmRzIFN0YWNrUHJvcHMgeycsXG4gICAgICAgICcnLFxuICAgICAgICAnICByZWFkb25seSBkYXRhZG9nPzogeycsXG4gICAgICAgICcgICAgLyoqJyxcbiAgICAgICAgJyAgICAgKiBUaGUgdmVyc2lvbiBvZiB0aGUgRGF0YWRvZyBOb2RlLmpzIExhbWJkYSBsYXllciB0byB1c2UuJyxcbiAgICAgICAgJyAgICAgKicsXG4gICAgICAgICcgICAgICogQGRlZmF1bHQgMTMyJyxcbiAgICAgICAgJyAgICAgKi8nLFxuICAgICAgICAnICAgIHJlYWRvbmx5IG5vZGVMYXllclZlcnNpb24/OiBudW1iZXI7JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgICAgLyoqJyxcbiAgICAgICAgJyAgICAgKiBUaGUgdmVyc2lvbiBvZiB0aGUgRGF0YWRvZyBQeXRob24gTGFtYmRhIGxheWVyIHRvIHVzZS4nLFxuICAgICAgICAnICAgICAqJyxcbiAgICAgICAgJyAgICAgKiBAZGVmYXVsdCAxMjMnLFxuICAgICAgICAnICAgICAqLycsXG4gICAgICAgICcgICAgcmVhZG9ubHkgcHl0aG9uTGF5ZXJWZXJzaW9uPzogbnVtYmVyOycsXG4gICAgICAgICcnLFxuICAgICAgICAnICAgIC8qKicsXG4gICAgICAgICcgICAgICogVGhlIG5hbWUgb2YgdGhlIHByb2plY3Qvc2VydmljZSBmb3IgRGF0YWRvZyB0YWdnaW5nIHB1cnBvc2VzLicsXG4gICAgICAgICcgICAgIConLFxuICAgICAgICAnICAgICAqIEBkZWZhdWx0IC0gdXNlcyB0aGUgc3RhY2sgSUQnLFxuICAgICAgICAnICAgICAqLycsXG4gICAgICAgICcgICAgcmVhZG9ubHkgcHJvamVjdE5hbWU/OiBzdHJpbmc7JyxcbiAgICAgICAgJyAgfTsnLFxuICAgICAgICAnICAvKionLFxuICAgICAgICAnICAgKiBUaGUgZG9tYWluIG5hbWUgb2YgdGhlIFJvdXRlIDUzIGhvc3RlZCB6b25lIHRvIHVzZS4nLFxuICAgICAgICAnICAgKicsXG4gICAgICAgICcgICAqIEBleGFtcGxlIFxcJ21hY2Vkb24uc2FuZGJveC5kZWZpYW5jZS5haVxcJycsXG4gICAgICAgICcgICAqLycsXG4gICAgICAgICcgIHJlYWRvbmx5IGhvc3RlZFpvbmVEb21haW5OYW1lOiBzdHJpbmc7JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgIC8qKicsXG4gICAgICAgICcgICAqIFRoZSBBUk4gb2YgdGhlIFNlY3JldHMgTWFuYWdlciBzZWNyZXQgdGhhdCBjb250YWlucyB0aGUgRGF0YWRvZyBBUEkga2V5LicsXG4gICAgICAgICcgICAqLycsXG4gICAgICAgICcgIHJlYWRvbmx5IGRhdGFkb2dTZWNyZXRBcm46IGBhcm46YXdzOnNlY3JldHNtYW5hZ2VyOiR7c3RyaW5nfToke3N0cmluZ306c2VjcmV0OiR7c3RyaW5nfWA7JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgIC8qKicsXG4gICAgICAgICcgICAqIFRoZSBDbGVyayBKV0tTIFVSTCB1c2VkIHRvIHZlcmlmeSBzZXNzaW9uIHRva2VuIHNpZ25hdHVyZXMuJyxcbiAgICAgICAgJyAgICovJyxcbiAgICAgICAgJyAgcmVhZG9ubHkgY2xlcmtKd2tzVXJsOiBgaHR0cHM6Ly8ke3N0cmluZ30vLndlbGwta25vd24vandrcy5qc29uYDsnLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgLyoqJyxcbiAgICAgICAgJyAgICogV2hldGhlciB0byBjcmVhdGUgYSBWUEMgKHdpdGggYSBOQVQgZ2F0ZXdheSkgYW5kIGF0dGFjaCB0aGUgQVBJIExhbWJkYSB0byBpdC4nLFxuICAgICAgICAnICAgKiBBIExhbWJkYSBvdXRzaWRlIGEgVlBDIGFscmVhZHkgaGFzIGludGVybmV0IGVncmVzcywgc28gb25seSBlbmFibGUgdGhpcyB3aGVuJyxcbiAgICAgICAgJyAgICogdGhlIHN0YWNrIG5lZWRzIHRvIHJlYWNoIHJlc291cmNlcyBpbnNpZGUgYSBWUEMuJyxcbiAgICAgICAgJyAgIConLFxuICAgICAgICAnICAgKiBAZGVmYXVsdCBmYWxzZScsXG4gICAgICAgICcgICAqLycsXG4gICAgICAgICcgIHJlYWRvbmx5IGVuYWJsZVZwYz86IGJvb2xlYW47JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgIC8qKicsXG4gICAgICAgICcgICAqIFRoZSBuYW1lIG9mIHRoZSBWUEMgdG8gY3JlYXRlIHdoZW4gYGVuYWJsZVZwY2AgaXMgdHJ1ZS4nLFxuICAgICAgICAnICAgKicsXG4gICAgICAgICcgICAqIEBkZWZhdWx0IFxcJyR7aWR9LXZwY1xcJycsXG4gICAgICAgICcgICAqLycsXG4gICAgICAgICcgIHJlYWRvbmx5IHZwY05hbWU/OiBzdHJpbmc7JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgIC8qKicsXG4gICAgICAgICcgICAqIFRoZSBob3N0bmFtZSBmb3IgdGhlIHN0YXRpYyB3ZWJzaXRlLiBUaGlzIHdpbGwgYmUgYWRkZWQgdG8gdGhlIGhvc3RlZHpvbmUuJyxcbiAgICAgICAgJyAgIConLFxuICAgICAgICAnICAgKiBAZXhhbXBsZSBcXCdteWJvaVxcJycsXG4gICAgICAgICcgICAqIEBkZWZhdWx0IFxcJ212cFxcJycsXG4gICAgICAgICcgICAqLycsXG4gICAgICAgICcgIHJlYWRvbmx5IGhvc3RuYW1lOiBzdHJpbmc7JyxcbiAgICAgICAgJ30nLFxuICAgICAgICAnJyxcbiAgICAgICAgJ2V4cG9ydCBjbGFzcyBCYXNlQXBwbGljYXRpb25TdGFjazxUUHJvcHMgZXh0ZW5kcyBCYXNlQXBwbGljYXRpb25TdGFja1Byb3BzPiBleHRlbmRzIFN0YWNrIHsnLFxuICAgICAgICAnICBwcm90ZWN0ZWQgZGF0YWRvZzogRGF0YWRvZ0xhbWJkYTsnLFxuICAgICAgICAnICBwcm90ZWN0ZWQgaG9zdGVkWm9uZTogSUhvc3RlZFpvbmU7JyxcbiAgICAgICAgJyAgcHJvdGVjdGVkIHZwYz86IElWcGM7JyxcbiAgICAgICAgJyAgcHJvdGVjdGVkIGFwaTogQXBpOycsXG4gICAgICAgICcgIHByb3RlY3RlZCBzdGF0aWNXZWJzaXRlOiBTdGF0aWNXZWJzaXRlOycsXG4gICAgICAgICcnLFxuICAgICAgICAnICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBwcml2YXRlIGlkOiBzdHJpbmcsIHByb3RlY3RlZCBwcm9wczogVFByb3BzKSB7JyxcbiAgICAgICAgJyAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTsnLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgICBpZiAoIXRoaXMucHJvcHMuY2xlcmtKd2tzVXJsKSB7JyxcbiAgICAgICAgJyAgICAgIHRocm93IG5ldyBFcnJvcihcXCdjbGVya0p3a3NVcmwgaXMgcmVxdWlyZWRcXCcpOycsXG4gICAgICAgICcgICAgfScsXG4gICAgICAgICcnLFxuICAgICAgICAnICAgIHRoaXMuY3JlYXRlRGF0YWRvZ0V4dGVuc2lvbigpOycsXG4gICAgICAgICcgICAgaWYgKCF0aGlzLmRhdGFkb2cpIHsnLFxuICAgICAgICAnICAgICAgdGhyb3cgbmV3IEVycm9yKFxcJ0RhdGFkb2cgZXh0ZW5zaW9uIGNyZWF0aW9uIGZhaWxlZFxcJyk7JyxcbiAgICAgICAgJyAgICB9JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgICAgdGhpcy5jcmVhdGVIb3N0ZWRab25lKCk7JyxcbiAgICAgICAgJyAgICBpZiAoIXRoaXMuaG9zdGVkWm9uZSkgeycsXG4gICAgICAgICcgICAgICB0aHJvdyBuZXcgRXJyb3IoXFwnSG9zdGVkWm9uZSBjcmVhdGlvbiBmYWlsZWRcXCcpOycsXG4gICAgICAgICcgICAgfScsXG4gICAgICAgICcnLFxuICAgICAgICAnICAgIGlmICh0aGlzLnByb3BzLmVuYWJsZVZwYykgeycsXG4gICAgICAgICcgICAgICB0aGlzLmNyZWF0ZVZwYygpOycsXG4gICAgICAgICcgICAgfScsXG4gICAgICAgICcnLFxuICAgICAgICAnICAgIHRoaXMuY3JlYXRlQXBpKCk7JyxcbiAgICAgICAgJyAgICBpZiAoIXRoaXMuYXBpKSB7JyxcbiAgICAgICAgJyAgICAgIHRocm93IG5ldyBFcnJvcihcXCdBUEkgY3JlYXRpb24gZmFpbGVkXFwnKTsnLFxuICAgICAgICAnICAgIH0nLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgICB0aGlzLmNyZWF0ZVN0YXRpY1dlYnNpdGUoKTsnLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgICB0aGlzLmNyZWF0ZU91dHB1dHMoKTsnLFxuICAgICAgICAnICAgIEFzcGVjdHMub2YodGhpcykuYWRkKG5ldyBEYXRhRG9nQXNwZWN0KHsgZGF0YWRvZzogdGhpcy5kYXRhZG9nIH0pKTsnLFxuICAgICAgICAnICB9JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgIHByb3RlY3RlZCBjcmVhdGVTdGF0aWNXZWJzaXRlKCkgeycsXG4gICAgICAgICcgICAgdGhpcy5zdGF0aWNXZWJzaXRlID0gbmV3IFN0YXRpY1dlYnNpdGUodGhpcywgXFwnU3RhdGljV2Vic2l0ZVxcJywgeycsXG4gICAgICAgICcgICAgICBob3N0ZWRab25lOiB0aGlzLmhvc3RlZFpvbmUsJyxcbiAgICAgICAgJyAgICAgIGFwaTogdGhpcy5hcGkucmVzdEFwaSwnLFxuICAgICAgICAnICAgICAgaG9zdG5hbWU6IHRoaXMucHJvcHMuaG9zdG5hbWUsJyxcbiAgICAgICAgJyAgICB9KTsnLFxuICAgICAgICAnICB9JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgIHByb3RlY3RlZCBjcmVhdGVBcGkoKSB7JyxcbiAgICAgICAgJyAgICAvLyBTcHJlYWQgc28gdGhpcyBjb21waWxlcyB3aGV0aGVyIG9yIG5vdCB0aGUgcHJvamVjdFxcJ3MgQXBpIGNvbnN0cnVjdCBkZWNsYXJlcyB2cGMuJyxcbiAgICAgICAgJyAgICB0aGlzLmFwaSA9IG5ldyBBcGkodGhpcywgXFwnQXBpXFwnLCB7JyxcbiAgICAgICAgJyAgICAgIC4uLih0aGlzLnZwYyA/IHsgdnBjOiB0aGlzLnZwYyB9IDoge30pLCcsXG4gICAgICAgICcgICAgICBjbGVya0p3a3NVcmw6IHRoaXMucHJvcHMuY2xlcmtKd2tzVXJsLCcsXG4gICAgICAgICcgICAgfSk7JyxcbiAgICAgICAgJyAgfScsXG4gICAgICAgICcnLFxuICAgICAgICAnICBwcm90ZWN0ZWQgY3JlYXRlVnBjKCkgeycsXG4gICAgICAgICcgICAgdGhpcy52cGMgPSBuZXcgVnBjKHRoaXMsIFxcJ1ZQQ1xcJywgeycsXG4gICAgICAgICcgICAgICB2cGNOYW1lOiB0aGlzLnByb3BzLnZwY05hbWUgfHwgYCR7dGhpcy5pZH0tdnBjYCwnLFxuICAgICAgICAnICAgICAgbWF4QXpzOiAzLCcsXG4gICAgICAgICcgICAgICBuYXRHYXRld2F5czogMSwnLFxuICAgICAgICAnICAgIH0pOycsXG4gICAgICAgICcgIH0nLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgcHJvdGVjdGVkIGNyZWF0ZUhvc3RlZFpvbmUoKSB7JyxcbiAgICAgICAgJyAgICB0aGlzLmhvc3RlZFpvbmUgPSBIb3N0ZWRab25lLmZyb21Mb29rdXAodGhpcywgXFwnSG9zdGVkWm9uZVxcJywgeycsXG4gICAgICAgICcgICAgICBkb21haW5OYW1lOiB0aGlzLnByb3BzLmhvc3RlZFpvbmVEb21haW5OYW1lLCcsXG4gICAgICAgICcgICAgfSk7JyxcbiAgICAgICAgJyAgfScsXG4gICAgICAgICcnLFxuICAgICAgICAnICBwcm90ZWN0ZWQgY3JlYXRlT3V0cHV0cygpIHsnLFxuICAgICAgICAnICAgIG5ldyBDZm5PdXRwdXQodGhpcywgXFwnV2Vic2l0ZVVybFxcJywgeycsXG4gICAgICAgICcgICAgICB2YWx1ZTogYGh0dHBzOi8vJHt0aGlzLnN0YXRpY1dlYnNpdGUuaG9zdG5hbWV9YCwnLFxuICAgICAgICAnICAgICAgZGVzY3JpcHRpb246IFxcJ1RoZSBVUkwgb2YgdGhlIHN0YXRpYyB3ZWJzaXRlXFwnLCcsXG4gICAgICAgICcgICAgICBleHBvcnROYW1lOiBgJHt0aGlzLmlkLnJlcGxhY2UoL1xcXFwvLywgXFwnLVxcJyl9LVdlYnNpdGVVcmxgLCcsXG4gICAgICAgICcgICAgfSk7JyxcbiAgICAgICAgJyAgfScsXG4gICAgICAgICcnLFxuICAgICAgICAnICBwcm90ZWN0ZWQgY3JlYXRlRGF0YWRvZ0V4dGVuc2lvbigpIHsnLFxuICAgICAgICAnICAgIGNvbnN0IGRhdGFkb2dBcGlTZWNyZXQgPSBTZWNyZXQuZnJvbVNlY3JldENvbXBsZXRlQXJuKHRoaXMsIFxcJ0RhdGFkb2dBcGlLZXlcXCcsIHRoaXMucHJvcHMuZGF0YWRvZ1NlY3JldEFybik7JyxcbiAgICAgICAgJyAgICB0aGlzLmRhdGFkb2cgPSBuZXcgRGF0YWRvZ0xhbWJkYSh0aGlzLCBcXCdEYXRhZG9nXFwnLCB7JyxcbiAgICAgICAgJyAgICAgIGFwaUtleVNlY3JldDogZGF0YWRvZ0FwaVNlY3JldCwnLFxuICAgICAgICAnICAgICAgc2VydmljZTogdGhpcy5wcm9wcy5kYXRhZG9nPy5wcm9qZWN0TmFtZSB8fCB0aGlzLmlkLCcsXG4gICAgICAgICcgICAgICBub2RlTGF5ZXJWZXJzaW9uOiB0aGlzLnByb3BzLmRhdGFkb2c/Lm5vZGVMYXllclZlcnNpb24gfHwgMTMyLCcsXG4gICAgICAgICcgICAgICBweXRob25MYXllclZlcnNpb246IHRoaXMucHJvcHMuZGF0YWRvZz8ucHl0aG9uTGF5ZXJWZXJzaW9uIHx8IDEyMywnLFxuICAgICAgICAnICAgICAgZXh0ZW5zaW9uTGF5ZXJWZXJzaW9uOiA5OSwnLFxuICAgICAgICAnICAgICAgZW5hYmxlTWVyZ2VYcmF5VHJhY2VzOiB0cnVlLCcsXG4gICAgICAgICcgICAgfSk7JyxcbiAgICAgICAgJyAgfScsXG4gICAgICAgICd9JyxcbiAgICAgICAgJycsXG4gICAgICBdLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
182
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmFzZUFwcGxpY2F0aW9uU3RhY2tGaWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0Jhc2VBcHBsaWNhdGlvblN0YWNrRmlsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBa0M7QUFHbEMsTUFBYSx3QkFBeUIsU0FBUSxpQkFBUTtJQUNwRCxZQUFZLE9BQTRCO1FBQ3RDLEtBQUssQ0FBQyxPQUFPLEVBQUUsb0NBQW9DLEVBQUU7WUFDbkQsTUFBTSxFQUFFLElBQUk7WUFDWixRQUFRLEVBQUUsSUFBSTtZQUNkLEtBQUssRUFBRTtnQkFDTCx3RUFBd0U7Z0JBQ3hFLG9EQUFvRDtnQkFDcEQsc0VBQXNFO2dCQUN0RSw0REFBNEQ7Z0JBQzVELDJDQUEyQztnQkFDM0MsOERBQThEO2dCQUM5RCw2REFBNkQ7Z0JBQzdELDRDQUE0QztnQkFDNUMsZ0VBQWdFO2dCQUNoRSxFQUFFO2dCQUNGLGlFQUFpRTtnQkFDakUsRUFBRTtnQkFDRix3QkFBd0I7Z0JBQ3hCLFNBQVM7Z0JBQ1QsZ0VBQWdFO2dCQUNoRSxRQUFRO2dCQUNSLHFCQUFxQjtnQkFDckIsU0FBUztnQkFDVCx5Q0FBeUM7Z0JBQ3pDLEVBQUU7Z0JBQ0YsU0FBUztnQkFDVCwrREFBK0Q7Z0JBQy9ELFFBQVE7Z0JBQ1IscUJBQXFCO2dCQUNyQixTQUFTO2dCQUNULDJDQUEyQztnQkFDM0MsRUFBRTtnQkFDRixTQUFTO2dCQUNULHNFQUFzRTtnQkFDdEUsUUFBUTtnQkFDUixxQ0FBcUM7Z0JBQ3JDLFNBQVM7Z0JBQ1Qsb0NBQW9DO2dCQUNwQyxNQUFNO2dCQUNOLE9BQU87Z0JBQ1AsMERBQTBEO2dCQUMxRCxNQUFNO2dCQUNOLCtDQUErQztnQkFDL0MsT0FBTztnQkFDUCwwQ0FBMEM7Z0JBQzFDLEVBQUU7Z0JBQ0YsT0FBTztnQkFDUCwrRUFBK0U7Z0JBQy9FLE9BQU87Z0JBQ1AsNkZBQTZGO2dCQUM3RixFQUFFO2dCQUNGLE9BQU87Z0JBQ1Asa0VBQWtFO2dCQUNsRSxPQUFPO2dCQUNQLHFFQUFxRTtnQkFDckUsRUFBRTtnQkFDRixPQUFPO2dCQUNQLG9GQUFvRjtnQkFDcEYsbUZBQW1GO2dCQUNuRix1REFBdUQ7Z0JBQ3ZELE1BQU07Z0JBQ04scUJBQXFCO2dCQUNyQixPQUFPO2dCQUNQLGlDQUFpQztnQkFDakMsRUFBRTtnQkFDRixPQUFPO2dCQUNQLDhEQUE4RDtnQkFDOUQsTUFBTTtnQkFDTiw2QkFBNkI7Z0JBQzdCLE9BQU87Z0JBQ1AsOEJBQThCO2dCQUM5QixFQUFFO2dCQUNGLE9BQU87Z0JBQ1AsaUZBQWlGO2dCQUNqRixNQUFNO2dCQUNOLHlCQUF5QjtnQkFDekIsdUJBQXVCO2dCQUN2QixPQUFPO2dCQUNQLDhCQUE4QjtnQkFDOUIsR0FBRztnQkFDSCxFQUFFO2dCQUNGLDZGQUE2RjtnQkFDN0YscUNBQXFDO2dCQUNyQyxzQ0FBc0M7Z0JBQ3RDLHlCQUF5QjtnQkFDekIsdUJBQXVCO2dCQUN2QiwyQ0FBMkM7Z0JBQzNDLEVBQUU7Z0JBQ0YsZ0ZBQWdGO2dCQUNoRiw4QkFBOEI7Z0JBQzlCLEVBQUU7Z0JBQ0YscUNBQXFDO2dCQUNyQyxzREFBc0Q7Z0JBQ3RELE9BQU87Z0JBQ1AsRUFBRTtnQkFDRixvQ0FBb0M7Z0JBQ3BDLDBCQUEwQjtnQkFDMUIsK0RBQStEO2dCQUMvRCxPQUFPO2dCQUNQLEVBQUU7Z0JBQ0YsOEJBQThCO2dCQUM5Qiw2QkFBNkI7Z0JBQzdCLHdEQUF3RDtnQkFDeEQsT0FBTztnQkFDUCxFQUFFO2dCQUNGLGlDQUFpQztnQkFDakMseUJBQXlCO2dCQUN6QixPQUFPO2dCQUNQLEVBQUU7Z0JBQ0YsdUJBQXVCO2dCQUN2QixzQkFBc0I7Z0JBQ3RCLGlEQUFpRDtnQkFDakQsT0FBTztnQkFDUCxFQUFFO2dCQUNGLGlDQUFpQztnQkFDakMsRUFBRTtnQkFDRiwyQkFBMkI7Z0JBQzNCLHlFQUF5RTtnQkFDekUsS0FBSztnQkFDTCxFQUFFO2dCQUNGLHFDQUFxQztnQkFDckMsdUVBQXVFO2dCQUN2RSxvQ0FBb0M7Z0JBQ3BDLDhCQUE4QjtnQkFDOUIsc0NBQXNDO2dCQUN0QyxTQUFTO2dCQUNULEtBQUs7Z0JBQ0wsRUFBRTtnQkFDRiwyQkFBMkI7Z0JBQzNCLDBGQUEwRjtnQkFDMUYseUNBQXlDO2dCQUN6QywrQ0FBK0M7Z0JBQy9DLDhDQUE4QztnQkFDOUMsU0FBUztnQkFDVCxLQUFLO2dCQUNMLEVBQUU7Z0JBQ0YsMkJBQTJCO2dCQUMzQix5Q0FBeUM7Z0JBQ3pDLHdEQUF3RDtnQkFDeEQsa0JBQWtCO2dCQUNsQix1QkFBdUI7Z0JBQ3ZCLFNBQVM7Z0JBQ1QsS0FBSztnQkFDTCxFQUFFO2dCQUNGLGtDQUFrQztnQkFDbEMscUVBQXFFO2dCQUNyRSxvREFBb0Q7Z0JBQ3BELFNBQVM7Z0JBQ1QsS0FBSztnQkFDTCxFQUFFO2dCQUNGLCtCQUErQjtnQkFDL0IsMkNBQTJDO2dCQUMzQyx3REFBd0Q7Z0JBQ3hELHVEQUF1RDtnQkFDdkQsa0VBQWtFO2dCQUNsRSxTQUFTO2dCQUNULEtBQUs7Z0JBQ0wsRUFBRTtnQkFDRix3Q0FBd0M7Z0JBQ3hDLGtIQUFrSDtnQkFDbEgsMkRBQTJEO2dCQUMzRCx1Q0FBdUM7Z0JBQ3ZDLDREQUE0RDtnQkFDNUQsc0VBQXNFO2dCQUN0RSwwRUFBMEU7Z0JBQzFFLGtDQUFrQztnQkFDbEMscUNBQXFDO2dCQUNyQyxTQUFTO2dCQUNULEtBQUs7Z0JBQ0wsR0FBRztnQkFDSCxFQUFFO2FBQ0g7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUEvS0QsNERBK0tDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGV4dEZpbGUgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgQXdzQ2RrVHlwZVNjcmlwdEFwcCB9IGZyb20gJ3Byb2plbi9saWIvYXdzY2RrJztcblxuZXhwb3J0IGNsYXNzIEJhc2VBcHBsaWNhdGlvblN0YWNrRmlsZSBleHRlbmRzIFRleHRGaWxlIHtcbiAgY29uc3RydWN0b3IocHJvamVjdDogQXdzQ2RrVHlwZVNjcmlwdEFwcCkge1xuICAgIHN1cGVyKHByb2plY3QsICdzcmMvc3RhY2tzL0Jhc2VBcHBsaWNhdGlvblN0YWNrLnRzJywge1xuICAgICAgbWFya2VyOiB0cnVlLFxuICAgICAgcmVhZG9ubHk6IHRydWUsXG4gICAgICBsaW5lczogW1xuICAgICAgICAnaW1wb3J0IHsgQXNwZWN0cywgQ2ZuT3V0cHV0LCBTdGFjaywgU3RhY2tQcm9wcyB9IGZyb20gXFwnYXdzLWNkay1saWJcXCc7JyxcbiAgICAgICAgJ2ltcG9ydCB7IElWcGMsIFZwYyB9IGZyb20gXFwnYXdzLWNkay1saWIvYXdzLWVjMlxcJzsnLFxuICAgICAgICAnaW1wb3J0IHsgSG9zdGVkWm9uZSwgSUhvc3RlZFpvbmUgfSBmcm9tIFxcJ2F3cy1jZGstbGliL2F3cy1yb3V0ZTUzXFwnOycsXG4gICAgICAgICdpbXBvcnQgeyBTZWNyZXQgfSBmcm9tIFxcJ2F3cy1jZGstbGliL2F3cy1zZWNyZXRzbWFuYWdlclxcJzsnLFxuICAgICAgICAnaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcXCdjb25zdHJ1Y3RzXFwnOycsXG4gICAgICAgICdpbXBvcnQgeyBEYXRhZG9nTGFtYmRhIH0gZnJvbSBcXCdkYXRhZG9nLWNkay1jb25zdHJ1Y3RzLXYyXFwnOycsXG4gICAgICAgICdpbXBvcnQgeyBEYXRhRG9nQXNwZWN0IH0gZnJvbSBcXCcuLi9hc3BlY3RzL0RhdGFEb2dBc3BlY3RcXCc7JyxcbiAgICAgICAgJ2ltcG9ydCB7IEFwaSB9IGZyb20gXFwnLi4vY29uc3RydWN0cy9BcGlcXCc7JyxcbiAgICAgICAgJ2ltcG9ydCB7IFN0YXRpY1dlYnNpdGUgfSBmcm9tIFxcJy4uL2NvbnN0cnVjdHMvU3RhdGljV2Vic2l0ZVxcJzsnLFxuICAgICAgICAnJyxcbiAgICAgICAgJ2V4cG9ydCBpbnRlcmZhY2UgQmFzZUFwcGxpY2F0aW9uU3RhY2tQcm9wcyBleHRlbmRzIFN0YWNrUHJvcHMgeycsXG4gICAgICAgICcnLFxuICAgICAgICAnICByZWFkb25seSBkYXRhZG9nPzogeycsXG4gICAgICAgICcgICAgLyoqJyxcbiAgICAgICAgJyAgICAgKiBUaGUgdmVyc2lvbiBvZiB0aGUgRGF0YWRvZyBOb2RlLmpzIExhbWJkYSBsYXllciB0byB1c2UuJyxcbiAgICAgICAgJyAgICAgKicsXG4gICAgICAgICcgICAgICogQGRlZmF1bHQgMTQzJyxcbiAgICAgICAgJyAgICAgKi8nLFxuICAgICAgICAnICAgIHJlYWRvbmx5IG5vZGVMYXllclZlcnNpb24/OiBudW1iZXI7JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgICAgLyoqJyxcbiAgICAgICAgJyAgICAgKiBUaGUgdmVyc2lvbiBvZiB0aGUgRGF0YWRvZyBQeXRob24gTGFtYmRhIGxheWVyIHRvIHVzZS4nLFxuICAgICAgICAnICAgICAqJyxcbiAgICAgICAgJyAgICAgKiBAZGVmYXVsdCAxMjMnLFxuICAgICAgICAnICAgICAqLycsXG4gICAgICAgICcgICAgcmVhZG9ubHkgcHl0aG9uTGF5ZXJWZXJzaW9uPzogbnVtYmVyOycsXG4gICAgICAgICcnLFxuICAgICAgICAnICAgIC8qKicsXG4gICAgICAgICcgICAgICogVGhlIG5hbWUgb2YgdGhlIHByb2plY3Qvc2VydmljZSBmb3IgRGF0YWRvZyB0YWdnaW5nIHB1cnBvc2VzLicsXG4gICAgICAgICcgICAgIConLFxuICAgICAgICAnICAgICAqIEBkZWZhdWx0IC0gdXNlcyB0aGUgc3RhY2sgSUQnLFxuICAgICAgICAnICAgICAqLycsXG4gICAgICAgICcgICAgcmVhZG9ubHkgcHJvamVjdE5hbWU/OiBzdHJpbmc7JyxcbiAgICAgICAgJyAgfTsnLFxuICAgICAgICAnICAvKionLFxuICAgICAgICAnICAgKiBUaGUgZG9tYWluIG5hbWUgb2YgdGhlIFJvdXRlIDUzIGhvc3RlZCB6b25lIHRvIHVzZS4nLFxuICAgICAgICAnICAgKicsXG4gICAgICAgICcgICAqIEBleGFtcGxlIFxcJ21hY2Vkb24uc2FuZGJveC5kZWZpYW5jZS5haVxcJycsXG4gICAgICAgICcgICAqLycsXG4gICAgICAgICcgIHJlYWRvbmx5IGhvc3RlZFpvbmVEb21haW5OYW1lOiBzdHJpbmc7JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgIC8qKicsXG4gICAgICAgICcgICAqIFRoZSBBUk4gb2YgdGhlIFNlY3JldHMgTWFuYWdlciBzZWNyZXQgdGhhdCBjb250YWlucyB0aGUgRGF0YWRvZyBBUEkga2V5LicsXG4gICAgICAgICcgICAqLycsXG4gICAgICAgICcgIHJlYWRvbmx5IGRhdGFkb2dTZWNyZXRBcm46IGBhcm46YXdzOnNlY3JldHNtYW5hZ2VyOiR7c3RyaW5nfToke3N0cmluZ306c2VjcmV0OiR7c3RyaW5nfWA7JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgIC8qKicsXG4gICAgICAgICcgICAqIFRoZSBDbGVyayBKV0tTIFVSTCB1c2VkIHRvIHZlcmlmeSBzZXNzaW9uIHRva2VuIHNpZ25hdHVyZXMuJyxcbiAgICAgICAgJyAgICovJyxcbiAgICAgICAgJyAgcmVhZG9ubHkgY2xlcmtKd2tzVXJsOiBgaHR0cHM6Ly8ke3N0cmluZ30vLndlbGwta25vd24vandrcy5qc29uYDsnLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgLyoqJyxcbiAgICAgICAgJyAgICogV2hldGhlciB0byBjcmVhdGUgYSBWUEMgKHdpdGggYSBOQVQgZ2F0ZXdheSkgYW5kIGF0dGFjaCB0aGUgQVBJIExhbWJkYSB0byBpdC4nLFxuICAgICAgICAnICAgKiBBIExhbWJkYSBvdXRzaWRlIGEgVlBDIGFscmVhZHkgaGFzIGludGVybmV0IGVncmVzcywgc28gb25seSBlbmFibGUgdGhpcyB3aGVuJyxcbiAgICAgICAgJyAgICogdGhlIHN0YWNrIG5lZWRzIHRvIHJlYWNoIHJlc291cmNlcyBpbnNpZGUgYSBWUEMuJyxcbiAgICAgICAgJyAgIConLFxuICAgICAgICAnICAgKiBAZGVmYXVsdCBmYWxzZScsXG4gICAgICAgICcgICAqLycsXG4gICAgICAgICcgIHJlYWRvbmx5IGVuYWJsZVZwYz86IGJvb2xlYW47JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgIC8qKicsXG4gICAgICAgICcgICAqIFRoZSBuYW1lIG9mIHRoZSBWUEMgdG8gY3JlYXRlIHdoZW4gYGVuYWJsZVZwY2AgaXMgdHJ1ZS4nLFxuICAgICAgICAnICAgKicsXG4gICAgICAgICcgICAqIEBkZWZhdWx0IFxcJyR7aWR9LXZwY1xcJycsXG4gICAgICAgICcgICAqLycsXG4gICAgICAgICcgIHJlYWRvbmx5IHZwY05hbWU/OiBzdHJpbmc7JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgIC8qKicsXG4gICAgICAgICcgICAqIFRoZSBob3N0bmFtZSBmb3IgdGhlIHN0YXRpYyB3ZWJzaXRlLiBUaGlzIHdpbGwgYmUgYWRkZWQgdG8gdGhlIGhvc3RlZHpvbmUuJyxcbiAgICAgICAgJyAgIConLFxuICAgICAgICAnICAgKiBAZXhhbXBsZSBcXCdteWJvaVxcJycsXG4gICAgICAgICcgICAqIEBkZWZhdWx0IFxcJ212cFxcJycsXG4gICAgICAgICcgICAqLycsXG4gICAgICAgICcgIHJlYWRvbmx5IGhvc3RuYW1lOiBzdHJpbmc7JyxcbiAgICAgICAgJ30nLFxuICAgICAgICAnJyxcbiAgICAgICAgJ2V4cG9ydCBjbGFzcyBCYXNlQXBwbGljYXRpb25TdGFjazxUUHJvcHMgZXh0ZW5kcyBCYXNlQXBwbGljYXRpb25TdGFja1Byb3BzPiBleHRlbmRzIFN0YWNrIHsnLFxuICAgICAgICAnICBwcm90ZWN0ZWQgZGF0YWRvZzogRGF0YWRvZ0xhbWJkYTsnLFxuICAgICAgICAnICBwcm90ZWN0ZWQgaG9zdGVkWm9uZTogSUhvc3RlZFpvbmU7JyxcbiAgICAgICAgJyAgcHJvdGVjdGVkIHZwYz86IElWcGM7JyxcbiAgICAgICAgJyAgcHJvdGVjdGVkIGFwaTogQXBpOycsXG4gICAgICAgICcgIHByb3RlY3RlZCBzdGF0aWNXZWJzaXRlOiBTdGF0aWNXZWJzaXRlOycsXG4gICAgICAgICcnLFxuICAgICAgICAnICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBwcml2YXRlIGlkOiBzdHJpbmcsIHByb3RlY3RlZCBwcm9wczogVFByb3BzKSB7JyxcbiAgICAgICAgJyAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTsnLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgICBpZiAoIXRoaXMucHJvcHMuY2xlcmtKd2tzVXJsKSB7JyxcbiAgICAgICAgJyAgICAgIHRocm93IG5ldyBFcnJvcihcXCdjbGVya0p3a3NVcmwgaXMgcmVxdWlyZWRcXCcpOycsXG4gICAgICAgICcgICAgfScsXG4gICAgICAgICcnLFxuICAgICAgICAnICAgIHRoaXMuY3JlYXRlRGF0YWRvZ0V4dGVuc2lvbigpOycsXG4gICAgICAgICcgICAgaWYgKCF0aGlzLmRhdGFkb2cpIHsnLFxuICAgICAgICAnICAgICAgdGhyb3cgbmV3IEVycm9yKFxcJ0RhdGFkb2cgZXh0ZW5zaW9uIGNyZWF0aW9uIGZhaWxlZFxcJyk7JyxcbiAgICAgICAgJyAgICB9JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgICAgdGhpcy5jcmVhdGVIb3N0ZWRab25lKCk7JyxcbiAgICAgICAgJyAgICBpZiAoIXRoaXMuaG9zdGVkWm9uZSkgeycsXG4gICAgICAgICcgICAgICB0aHJvdyBuZXcgRXJyb3IoXFwnSG9zdGVkWm9uZSBjcmVhdGlvbiBmYWlsZWRcXCcpOycsXG4gICAgICAgICcgICAgfScsXG4gICAgICAgICcnLFxuICAgICAgICAnICAgIGlmICh0aGlzLnByb3BzLmVuYWJsZVZwYykgeycsXG4gICAgICAgICcgICAgICB0aGlzLmNyZWF0ZVZwYygpOycsXG4gICAgICAgICcgICAgfScsXG4gICAgICAgICcnLFxuICAgICAgICAnICAgIHRoaXMuY3JlYXRlQXBpKCk7JyxcbiAgICAgICAgJyAgICBpZiAoIXRoaXMuYXBpKSB7JyxcbiAgICAgICAgJyAgICAgIHRocm93IG5ldyBFcnJvcihcXCdBUEkgY3JlYXRpb24gZmFpbGVkXFwnKTsnLFxuICAgICAgICAnICAgIH0nLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgICB0aGlzLmNyZWF0ZVN0YXRpY1dlYnNpdGUoKTsnLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgICB0aGlzLmNyZWF0ZU91dHB1dHMoKTsnLFxuICAgICAgICAnICAgIEFzcGVjdHMub2YodGhpcykuYWRkKG5ldyBEYXRhRG9nQXNwZWN0KHsgZGF0YWRvZzogdGhpcy5kYXRhZG9nIH0pKTsnLFxuICAgICAgICAnICB9JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgIHByb3RlY3RlZCBjcmVhdGVTdGF0aWNXZWJzaXRlKCkgeycsXG4gICAgICAgICcgICAgdGhpcy5zdGF0aWNXZWJzaXRlID0gbmV3IFN0YXRpY1dlYnNpdGUodGhpcywgXFwnU3RhdGljV2Vic2l0ZVxcJywgeycsXG4gICAgICAgICcgICAgICBob3N0ZWRab25lOiB0aGlzLmhvc3RlZFpvbmUsJyxcbiAgICAgICAgJyAgICAgIGFwaTogdGhpcy5hcGkucmVzdEFwaSwnLFxuICAgICAgICAnICAgICAgaG9zdG5hbWU6IHRoaXMucHJvcHMuaG9zdG5hbWUsJyxcbiAgICAgICAgJyAgICB9KTsnLFxuICAgICAgICAnICB9JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgIHByb3RlY3RlZCBjcmVhdGVBcGkoKSB7JyxcbiAgICAgICAgJyAgICAvLyBTcHJlYWQgc28gdGhpcyBjb21waWxlcyB3aGV0aGVyIG9yIG5vdCB0aGUgcHJvamVjdFxcJ3MgQXBpIGNvbnN0cnVjdCBkZWNsYXJlcyB2cGMuJyxcbiAgICAgICAgJyAgICB0aGlzLmFwaSA9IG5ldyBBcGkodGhpcywgXFwnQXBpXFwnLCB7JyxcbiAgICAgICAgJyAgICAgIC4uLih0aGlzLnZwYyA/IHsgdnBjOiB0aGlzLnZwYyB9IDoge30pLCcsXG4gICAgICAgICcgICAgICBjbGVya0p3a3NVcmw6IHRoaXMucHJvcHMuY2xlcmtKd2tzVXJsLCcsXG4gICAgICAgICcgICAgfSk7JyxcbiAgICAgICAgJyAgfScsXG4gICAgICAgICcnLFxuICAgICAgICAnICBwcm90ZWN0ZWQgY3JlYXRlVnBjKCkgeycsXG4gICAgICAgICcgICAgdGhpcy52cGMgPSBuZXcgVnBjKHRoaXMsIFxcJ1ZQQ1xcJywgeycsXG4gICAgICAgICcgICAgICB2cGNOYW1lOiB0aGlzLnByb3BzLnZwY05hbWUgfHwgYCR7dGhpcy5pZH0tdnBjYCwnLFxuICAgICAgICAnICAgICAgbWF4QXpzOiAzLCcsXG4gICAgICAgICcgICAgICBuYXRHYXRld2F5czogMSwnLFxuICAgICAgICAnICAgIH0pOycsXG4gICAgICAgICcgIH0nLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgcHJvdGVjdGVkIGNyZWF0ZUhvc3RlZFpvbmUoKSB7JyxcbiAgICAgICAgJyAgICB0aGlzLmhvc3RlZFpvbmUgPSBIb3N0ZWRab25lLmZyb21Mb29rdXAodGhpcywgXFwnSG9zdGVkWm9uZVxcJywgeycsXG4gICAgICAgICcgICAgICBkb21haW5OYW1lOiB0aGlzLnByb3BzLmhvc3RlZFpvbmVEb21haW5OYW1lLCcsXG4gICAgICAgICcgICAgfSk7JyxcbiAgICAgICAgJyAgfScsXG4gICAgICAgICcnLFxuICAgICAgICAnICBwcm90ZWN0ZWQgY3JlYXRlT3V0cHV0cygpIHsnLFxuICAgICAgICAnICAgIG5ldyBDZm5PdXRwdXQodGhpcywgXFwnV2Vic2l0ZVVybFxcJywgeycsXG4gICAgICAgICcgICAgICB2YWx1ZTogYGh0dHBzOi8vJHt0aGlzLnN0YXRpY1dlYnNpdGUuaG9zdG5hbWV9YCwnLFxuICAgICAgICAnICAgICAgZGVzY3JpcHRpb246IFxcJ1RoZSBVUkwgb2YgdGhlIHN0YXRpYyB3ZWJzaXRlXFwnLCcsXG4gICAgICAgICcgICAgICBleHBvcnROYW1lOiBgJHt0aGlzLmlkLnJlcGxhY2UoL1xcXFwvLywgXFwnLVxcJyl9LVdlYnNpdGVVcmxgLCcsXG4gICAgICAgICcgICAgfSk7JyxcbiAgICAgICAgJyAgfScsXG4gICAgICAgICcnLFxuICAgICAgICAnICBwcm90ZWN0ZWQgY3JlYXRlRGF0YWRvZ0V4dGVuc2lvbigpIHsnLFxuICAgICAgICAnICAgIGNvbnN0IGRhdGFkb2dBcGlTZWNyZXQgPSBTZWNyZXQuZnJvbVNlY3JldENvbXBsZXRlQXJuKHRoaXMsIFxcJ0RhdGFkb2dBcGlLZXlcXCcsIHRoaXMucHJvcHMuZGF0YWRvZ1NlY3JldEFybik7JyxcbiAgICAgICAgJyAgICB0aGlzLmRhdGFkb2cgPSBuZXcgRGF0YWRvZ0xhbWJkYSh0aGlzLCBcXCdEYXRhZG9nXFwnLCB7JyxcbiAgICAgICAgJyAgICAgIGFwaUtleVNlY3JldDogZGF0YWRvZ0FwaVNlY3JldCwnLFxuICAgICAgICAnICAgICAgc2VydmljZTogdGhpcy5wcm9wcy5kYXRhZG9nPy5wcm9qZWN0TmFtZSB8fCB0aGlzLmlkLCcsXG4gICAgICAgICcgICAgICBub2RlTGF5ZXJWZXJzaW9uOiB0aGlzLnByb3BzLmRhdGFkb2c/Lm5vZGVMYXllclZlcnNpb24gfHwgMTQzLCcsXG4gICAgICAgICcgICAgICBweXRob25MYXllclZlcnNpb246IHRoaXMucHJvcHMuZGF0YWRvZz8ucHl0aG9uTGF5ZXJWZXJzaW9uIHx8IDEyMywnLFxuICAgICAgICAnICAgICAgZXh0ZW5zaW9uTGF5ZXJWZXJzaW9uOiA5OSwnLFxuICAgICAgICAnICAgICAgZW5hYmxlTWVyZ2VYcmF5VHJhY2VzOiBmYWxzZSwnLFxuICAgICAgICAnICAgIH0pOycsXG4gICAgICAgICcgIH0nLFxuICAgICAgICAnfScsXG4gICAgICAgICcnLFxuICAgICAgXSxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
package/lib/BatmanProject.js
CHANGED
|
@@ -12,7 +12,7 @@ const SoftwareFactoryFiles_1 = require("./SoftwareFactoryFiles");
|
|
|
12
12
|
const utils_1 = require("./utils");
|
|
13
13
|
const ViteReactProject_1 = require("./ViteReactProject");
|
|
14
14
|
class BatmanProject extends awscdk_1.AwsCdkTypeScriptApp {
|
|
15
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@macedon-technologies/batman.BatmanProject", version: "1.
|
|
15
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@macedon-technologies/batman.BatmanProject", version: "1.32.0" };
|
|
16
16
|
constructor(options) {
|
|
17
17
|
super({
|
|
18
18
|
...options,
|
|
@@ -26,7 +26,7 @@ class BootcampBaseApplicationStackFile extends projen_1.TextFile {
|
|
|
26
26
|
' /**',
|
|
27
27
|
' * The version of the Datadog Node.js Lambda layer to use.',
|
|
28
28
|
' *',
|
|
29
|
-
' * @default
|
|
29
|
+
' * @default 143',
|
|
30
30
|
' */',
|
|
31
31
|
' readonly nodeLayerVersion?: number;',
|
|
32
32
|
'',
|
|
@@ -156,10 +156,10 @@ class BootcampBaseApplicationStackFile extends projen_1.TextFile {
|
|
|
156
156
|
' this.datadog = new DatadogLambda(this, \'Datadog\', {',
|
|
157
157
|
' apiKeySecret: datadogApiSecret,',
|
|
158
158
|
' service: this.props.datadog?.projectName || this.id,',
|
|
159
|
-
' nodeLayerVersion: this.props.datadog?.nodeLayerVersion ||
|
|
159
|
+
' nodeLayerVersion: this.props.datadog?.nodeLayerVersion || 143,',
|
|
160
160
|
' pythonLayerVersion: this.props.datadog?.pythonLayerVersion || 123,',
|
|
161
161
|
' extensionLayerVersion: 99,',
|
|
162
|
-
' enableMergeXrayTraces:
|
|
162
|
+
' enableMergeXrayTraces: false,',
|
|
163
163
|
' });',
|
|
164
164
|
' }',
|
|
165
165
|
'',
|
|
@@ -199,4 +199,4 @@ class BootcampBaseApplicationStackFile extends projen_1.TextFile {
|
|
|
199
199
|
}
|
|
200
200
|
}
|
|
201
201
|
exports.BootcampBaseApplicationStackFile = BootcampBaseApplicationStackFile;
|
|
202
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm9vdGNhbXBCYXNlQXBwbGljYXRpb25TdGFja0ZpbGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvQm9vdGNhbXBCYXNlQXBwbGljYXRpb25TdGFja0ZpbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQWtDO0FBR2xDLE1BQWEsZ0NBQWlDLFNBQVEsaUJBQVE7SUFDNUQsWUFBWSxPQUE0QjtRQUN0QyxLQUFLLENBQUMsT0FBTyxFQUFFLG9DQUFvQyxFQUFFO1lBQ25ELE1BQU0sRUFBRSxJQUFJO1lBQ1osUUFBUSxFQUFFLElBQUk7WUFDZCxLQUFLLEVBQUU7Z0JBQ0wsd0JBQXdCO2dCQUN4Qiw0QkFBNEI7Z0JBQzVCLHdFQUF3RTtnQkFDeEUsb0RBQW9EO2dCQUNwRCxzRUFBc0U7Z0JBQ3RFLDREQUE0RDtnQkFDNUQsMkNBQTJDO2dCQUMzQyw4REFBOEQ7Z0JBQzlELDZEQUE2RDtnQkFDN0QsNENBQTRDO2dCQUM1QyxnRUFBZ0U7Z0JBQ2hFLEVBQUU7Z0JBQ0YsaUVBQWlFO2dCQUNqRSxFQUFFO2dCQUNGLHdCQUF3QjtnQkFDeEIsU0FBUztnQkFDVCxnRUFBZ0U7Z0JBQ2hFLFFBQVE7Z0JBQ1IscUJBQXFCO2dCQUNyQixTQUFTO2dCQUNULHlDQUF5QztnQkFDekMsRUFBRTtnQkFDRixTQUFTO2dCQUNULCtEQUErRDtnQkFDL0QsUUFBUTtnQkFDUixxQkFBcUI7Z0JBQ3JCLFNBQVM7Z0JBQ1QsMkNBQTJDO2dCQUMzQyxFQUFFO2dCQUNGLFNBQVM7Z0JBQ1Qsc0VBQXNFO2dCQUN0RSxRQUFRO2dCQUNSLHFDQUFxQztnQkFDckMsU0FBUztnQkFDVCxvQ0FBb0M7Z0JBQ3BDLE1BQU07Z0JBQ04sT0FBTztnQkFDUCwwREFBMEQ7Z0JBQzFELE1BQU07Z0JBQ04sK0NBQStDO2dCQUMvQyxPQUFPO2dCQUNQLDBDQUEwQztnQkFDMUMsRUFBRTtnQkFDRixPQUFPO2dCQUNQLCtFQUErRTtnQkFDL0UsT0FBTztnQkFDUCw2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LENBQUM7Q0FDRjtBQW5NRCw0RUFtTUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUZXh0RmlsZSB9IGZyb20gJ3Byb2plbic7XG5pbXBvcnQgeyBBd3NDZGtUeXBlU2NyaXB0QXBwIH0gZnJvbSAncHJvamVuL2xpYi9hd3NjZGsnO1xuXG5leHBvcnQgY2xhc3MgQm9vdGNhbXBCYXNlQXBwbGljYXRpb25TdGFja0ZpbGUgZXh0ZW5kcyBUZXh0RmlsZSB7XG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IEF3c0Nka1R5cGVTY3JpcHRBcHApIHtcbiAgICBzdXBlcihwcm9qZWN0LCAnc3JjL3N0YWNrcy9CYXNlQXBwbGljYXRpb25TdGFjay50cycsIHtcbiAgICAgIG1hcmtlcjogdHJ1ZSxcbiAgICAgIHJlYWRvbmx5OiB0cnVlLFxuICAgICAgbGluZXM6IFtcbiAgICAgICAgJ2ltcG9ydCBmcyBmcm9tIFxcJ2ZzXFwnOycsXG4gICAgICAgICdpbXBvcnQgcGF0aCBmcm9tIFxcJ3BhdGhcXCc7JyxcbiAgICAgICAgJ2ltcG9ydCB7IEFzcGVjdHMsIENmbk91dHB1dCwgU3RhY2ssIFN0YWNrUHJvcHMgfSBmcm9tIFxcJ2F3cy1jZGstbGliXFwnOycsXG4gICAgICAgICdpbXBvcnQgeyBJVnBjLCBWcGMgfSBmcm9tIFxcJ2F3cy1jZGstbGliL2F3cy1lYzJcXCc7JyxcbiAgICAgICAgJ2ltcG9ydCB7IEhvc3RlZFpvbmUsIElIb3N0ZWRab25lIH0gZnJvbSBcXCdhd3MtY2RrLWxpYi9hd3Mtcm91dGU1M1xcJzsnLFxuICAgICAgICAnaW1wb3J0IHsgU2VjcmV0IH0gZnJvbSBcXCdhd3MtY2RrLWxpYi9hd3Mtc2VjcmV0c21hbmFnZXJcXCc7JyxcbiAgICAgICAgJ2ltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXFwnY29uc3RydWN0c1xcJzsnLFxuICAgICAgICAnaW1wb3J0IHsgRGF0YWRvZ0xhbWJkYSB9IGZyb20gXFwnZGF0YWRvZy1jZGstY29uc3RydWN0cy12MlxcJzsnLFxuICAgICAgICAnaW1wb3J0IHsgRGF0YURvZ0FzcGVjdCB9IGZyb20gXFwnLi4vYXNwZWN0cy9EYXRhRG9nQXNwZWN0XFwnOycsXG4gICAgICAgICdpbXBvcnQgeyBBcGkgfSBmcm9tIFxcJy4uL2NvbnN0cnVjdHMvQXBpXFwnOycsXG4gICAgICAgICdpbXBvcnQgeyBTdGF0aWNXZWJzaXRlIH0gZnJvbSBcXCcuLi9jb25zdHJ1Y3RzL1N0YXRpY1dlYnNpdGVcXCc7JyxcbiAgICAgICAgJycsXG4gICAgICAgICdleHBvcnQgaW50ZXJmYWNlIEJhc2VBcHBsaWNhdGlvblN0YWNrUHJvcHMgZXh0ZW5kcyBTdGFja1Byb3BzIHsnLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgcmVhZG9ubHkgZGF0YWRvZz86IHsnLFxuICAgICAgICAnICAgIC8qKicsXG4gICAgICAgICcgICAgICogVGhlIHZlcnNpb24gb2YgdGhlIERhdGFkb2cgTm9kZS5qcyBMYW1iZGEgbGF5ZXIgdG8gdXNlLicsXG4gICAgICAgICcgICAgIConLFxuICAgICAgICAnICAgICAqIEBkZWZhdWx0IDEzMicsXG4gICAgICAgICcgICAgICovJyxcbiAgICAgICAgJyAgICByZWFkb25seSBub2RlTGF5ZXJWZXJzaW9uPzogbnVtYmVyOycsXG4gICAgICAgICcnLFxuICAgICAgICAnICAgIC8qKicsXG4gICAgICAgICcgICAgICogVGhlIHZlcnNpb24gb2YgdGhlIERhdGFkb2cgUHl0aG9uIExhbWJkYSBsYXllciB0byB1c2UuJyxcbiAgICAgICAgJyAgICAgKicsXG4gICAgICAgICcgICAgICogQGRlZmF1bHQgMTIzJyxcbiAgICAgICAgJyAgICAgKi8nLFxuICAgICAgICAnICAgIHJlYWRvbmx5IHB5dGhvbkxheWVyVmVyc2lvbj86IG51bWJlcjsnLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgICAvKionLFxuICAgICAgICAnICAgICAqIFRoZSBuYW1lIG9mIHRoZSBwcm9qZWN0L3NlcnZpY2UgZm9yIERhdGFkb2cgdGFnZ2luZyBwdXJwb3Nlcy4nLFxuICAgICAgICAnICAgICAqJyxcbiAgICAgICAgJyAgICAgKiBAZGVmYXVsdCAtIHVzZXMgdGhlIHN0YWNrIElEJyxcbiAgICAgICAgJyAgICAgKi8nLFxuICAgICAgICAnICAgIHJlYWRvbmx5IHByb2plY3ROYW1lPzogc3RyaW5nOycsXG4gICAgICAgICcgIH07JyxcbiAgICAgICAgJyAgLyoqJyxcbiAgICAgICAgJyAgICogVGhlIGRvbWFpbiBuYW1lIG9mIHRoZSBSb3V0ZSA1MyBob3N0ZWQgem9uZSB0byB1c2UuJyxcbiAgICAgICAgJyAgIConLFxuICAgICAgICAnICAgKiBAZXhhbXBsZSBcXCdtYWNlZG9uLnNhbmRib3guZGVmaWFuY2UuYWlcXCcnLFxuICAgICAgICAnICAgKi8nLFxuICAgICAgICAnICByZWFkb25seSBob3N0ZWRab25lRG9tYWluTmFtZTogc3RyaW5nOycsXG4gICAgICAgICcnLFxuICAgICAgICAnICAvKionLFxuICAgICAgICAnICAgKiBUaGUgQVJOIG9mIHRoZSBTZWNyZXRzIE1hbmFnZXIgc2VjcmV0IHRoYXQgY29udGFpbnMgdGhlIERhdGFkb2cgQVBJIGtleS4nLFxuICAgICAgICAnICAgKi8nLFxuICAgICAgICAnICByZWFkb25seSBkYXRhZG9nU2VjcmV0QXJuOiBgYXJuOmF3czpzZWNyZXRzbWFuYWdlcjoke3N0cmluZ306JHtzdHJpbmd9OnNlY3JldDoke3N0cmluZ31gOycsXG4gICAgICAgICcnLFxuICAgICAgICAnICAvKionLFxuICAgICAgICAnICAgKiBUaGUgQ2xlcmsgSldLUyBVUkwgdXNlZCB0byB2ZXJpZnkgc2Vzc2lvbiB0b2tlbiBzaWduYXR1cmVzLicsXG4gICAgICAgICcgICAqLycsXG4gICAgICAgICcgIHJlYWRvbmx5IGNsZXJrSndrc1VybDogYGh0dHBzOi8vJHtzdHJpbmd9Ly53ZWxsLWtub3duL2p3a3MuanNvbmA7JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgIC8qKicsXG4gICAgICAgICcgICAqIFRoZSBuYW1lIG9mIHRoZSBWUEMgdG8gY3JlYXRlLicsXG4gICAgICAgICcgICAqJyxcbiAgICAgICAgJyAgICogQGRlZmF1bHQgXFwnJHtpZH0tdnBjXFwnJyxcbiAgICAgICAgJyAgICovJyxcbiAgICAgICAgJyAgcmVhZG9ubHkgdnBjTmFtZT86IHN0cmluZzsnLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgLyoqJyxcbiAgICAgICAgJyAgICogVGhlIGhvc3RuYW1lIGZvciB0aGUgc3RhdGljIHdlYnNpdGUuIFRoaXMgd2lsbCBiZSBhZGRlZCB0byB0aGUgaG9zdGVkem9uZS4nLFxuICAgICAgICAnICAgKicsXG4gICAgICAgICcgICAqIEBleGFtcGxlIFxcJ215Ym9pXFwnJyxcbiAgICAgICAgJyAgICogQGRlZmF1bHQgXFwnbXZwXFwnJyxcbiAgICAgICAgJyAgICovJyxcbiAgICAgICAgJyAgcmVhZG9ubHkgaG9zdG5hbWU6IHN0cmluZzsnLFxuICAgICAgICAnfScsXG4gICAgICAgICcnLFxuICAgICAgICAnZXhwb3J0IGNsYXNzIEJhc2VBcHBsaWNhdGlvblN0YWNrPFRQcm9wcyBleHRlbmRzIEJhc2VBcHBsaWNhdGlvblN0YWNrUHJvcHM+IGV4dGVuZHMgU3RhY2sgeycsXG4gICAgICAgICcgIHByb3RlY3RlZCBkYXRhZG9nOiBEYXRhZG9nTGFtYmRhOycsXG4gICAgICAgICcgIHByb3RlY3RlZCBob3N0ZWRab25lOiBJSG9zdGVkWm9uZTsnLFxuICAgICAgICAnICBwcm90ZWN0ZWQgdnBjOiBJVnBjOycsXG4gICAgICAgICcgIHByb3RlY3RlZCBhcGk6IEFwaTsnLFxuICAgICAgICAnICBwcm90ZWN0ZWQgc3RhdGljV2Vic2l0ZTogU3RhdGljV2Vic2l0ZTsnLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgcHJpdmF0ZSBpZDogc3RyaW5nLCBwcm90ZWN0ZWQgcHJvcHM6IFRQcm9wcykgeycsXG4gICAgICAgICcgICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgICAgaWYgKCF0aGlzLnByb3BzLmNsZXJrSndrc1VybCkgeycsXG4gICAgICAgICcgICAgICB0aHJvdyBuZXcgRXJyb3IoXFwnY2xlcmtKd2tzVXJsIGlzIHJlcXVpcmVkXFwnKTsnLFxuICAgICAgICAnICAgIH0nLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgICB0aGlzLmNyZWF0ZURhdGFkb2dFeHRlbnNpb24oKTsnLFxuICAgICAgICAnICAgIGlmICghdGhpcy5kYXRhZG9nKSB7JyxcbiAgICAgICAgJyAgICAgIHRocm93IG5ldyBFcnJvcihcXCdEYXRhZG9nIGV4dGVuc2lvbiBjcmVhdGlvbiBmYWlsZWRcXCcpOycsXG4gICAgICAgICcgICAgfScsXG4gICAgICAgICcnLFxuICAgICAgICAnICAgIHRoaXMuY3JlYXRlSG9zdGVkWm9uZSgpOycsXG4gICAgICAgICcgICAgaWYgKCF0aGlzLmhvc3RlZFpvbmUpIHsnLFxuICAgICAgICAnICAgICAgdGhyb3cgbmV3IEVycm9yKFxcJ0hvc3RlZFpvbmUgY3JlYXRpb24gZmFpbGVkXFwnKTsnLFxuICAgICAgICAnICAgIH0nLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgICB0aGlzLmNyZWF0ZVZwYygpOycsXG4gICAgICAgICcnLFxuICAgICAgICAnICAgIHRoaXMuY3JlYXRlQXBpKCk7JyxcbiAgICAgICAgJyAgICBpZiAoIXRoaXMuYXBpKSB7JyxcbiAgICAgICAgJyAgICAgIHRocm93IG5ldyBFcnJvcihcXCdBUEkgY3JlYXRpb24gZmFpbGVkXFwnKTsnLFxuICAgICAgICAnICAgIH0nLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgICB0aGlzLmNyZWF0ZVN0YXRpY1dlYnNpdGUoKTsnLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgICB0aGlzLmNyZWF0ZU91dHB1dHMoKTsnLFxuICAgICAgICAnICAgIEFzcGVjdHMub2YodGhpcykuYWRkKG5ldyBEYXRhRG9nQXNwZWN0KHsgZGF0YWRvZzogdGhpcy5kYXRhZG9nIH0pKTsnLFxuICAgICAgICAnICB9JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgIHByb3RlY3RlZCBjcmVhdGVTdGF0aWNXZWJzaXRlKCkgeycsXG4gICAgICAgICcgICAgdGhpcy5zdGF0aWNXZWJzaXRlID0gbmV3IFN0YXRpY1dlYnNpdGUodGhpcywgXFwnU3RhdGljV2Vic2l0ZVxcJywgeycsXG4gICAgICAgICcgICAgICBob3N0ZWRab25lOiB0aGlzLmhvc3RlZFpvbmUsJyxcbiAgICAgICAgJyAgICAgIGFwaTogdGhpcy5hcGkucmVzdEFwaSwnLFxuICAgICAgICAnICAgICAgaG9zdG5hbWU6IHRoaXMucHJvcHMuaG9zdG5hbWUsJyxcbiAgICAgICAgJyAgICB9KTsnLFxuICAgICAgICAnICB9JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgIHByb3RlY3RlZCBjcmVhdGVBcGkoKSB7JyxcbiAgICAgICAgJyAgICB0aGlzLmFwaSA9IG5ldyBBcGkodGhpcywgXFwnQXBpXFwnLCB7JyxcbiAgICAgICAgJyAgICAgIHZwYzogdGhpcy52cGMsJyxcbiAgICAgICAgJyAgICAgIGNsZXJrSndrc1VybDogdGhpcy5wcm9wcy5jbGVya0p3a3NVcmwsJyxcbiAgICAgICAgJyAgICB9KTsnLFxuICAgICAgICAnICB9JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgIHByb3RlY3RlZCBjcmVhdGVWcGMoKSB7JyxcbiAgICAgICAgJyAgICB0aGlzLnZwYyA9IG5ldyBWcGModGhpcywgXFwnVlBDXFwnLCB7JyxcbiAgICAgICAgJyAgICAgIHZwY05hbWU6IHRoaXMucHJvcHMudnBjTmFtZSB8fCBgJHt0aGlzLmlkfS12cGNgLCcsXG4gICAgICAgICcgICAgICBtYXhBenM6IDMsJyxcbiAgICAgICAgJyAgICAgIG5hdEdhdGV3YXlzOiAxLCcsXG4gICAgICAgICcgICAgfSk7JyxcbiAgICAgICAgJyAgfScsXG4gICAgICAgICcnLFxuICAgICAgICAnICBwcm90ZWN0ZWQgY3JlYXRlSG9zdGVkWm9uZSgpIHsnLFxuICAgICAgICAnICAgIHRoaXMuaG9zdGVkWm9uZSA9IEhvc3RlZFpvbmUuZnJvbUxvb2t1cCh0aGlzLCBcXCdIb3N0ZWRab25lXFwnLCB7JyxcbiAgICAgICAgJyAgICAgIGRvbWFpbk5hbWU6IHRoaXMucHJvcHMuaG9zdGVkWm9uZURvbWFpbk5hbWUsJyxcbiAgICAgICAgJyAgICB9KTsnLFxuICAgICAgICAnICB9JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgIHByb3RlY3RlZCBjcmVhdGVPdXRwdXRzKCkgeycsXG4gICAgICAgICcgICAgbmV3IENmbk91dHB1dCh0aGlzLCBcXCdXZWJzaXRlVXJsXFwnLCB7JyxcbiAgICAgICAgJyAgICAgIHZhbHVlOiBgaHR0cHM6Ly8ke3RoaXMuc3RhdGljV2Vic2l0ZS5ob3N0bmFtZX1gLCcsXG4gICAgICAgICcgICAgICBkZXNjcmlwdGlvbjogXFwnVGhlIFVSTCBvZiB0aGUgc3RhdGljIHdlYnNpdGVcXCcsJyxcbiAgICAgICAgJyAgICAgIGV4cG9ydE5hbWU6IGAke3RoaXMuaWQucmVwbGFjZSgvXFxcXC8vLCBcXCctXFwnKX0tV2Vic2l0ZVVybGAsJyxcbiAgICAgICAgJyAgICB9KTsnLFxuICAgICAgICAnICB9JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgIHByb3RlY3RlZCBjcmVhdGVEYXRhZG9nRXh0ZW5zaW9uKCkgeycsXG4gICAgICAgICcgICAgY29uc3QgZGF0YWRvZ0FwaVNlY3JldCA9IFNlY3JldC5mcm9tU2VjcmV0Q29tcGxldGVBcm4odGhpcywgXFwnRGF0YWRvZ0FwaUtleVxcJywgdGhpcy5wcm9wcy5kYXRhZG9nU2VjcmV0QXJuKTsnLFxuICAgICAgICAnICAgIHRoaXMuZGF0YWRvZyA9IG5ldyBEYXRhZG9nTGFtYmRhKHRoaXMsIFxcJ0RhdGFkb2dcXCcsIHsnLFxuICAgICAgICAnICAgICAgYXBpS2V5U2VjcmV0OiBkYXRhZG9nQXBpU2VjcmV0LCcsXG4gICAgICAgICcgICAgICBzZXJ2aWNlOiB0aGlzLnByb3BzLmRhdGFkb2c/LnByb2plY3ROYW1lIHx8IHRoaXMuaWQsJyxcbiAgICAgICAgJyAgICAgIG5vZGVMYXllclZlcnNpb246IHRoaXMucHJvcHMuZGF0YWRvZz8ubm9kZUxheWVyVmVyc2lvbiB8fCAxMzIsJyxcbiAgICAgICAgJyAgICAgIHB5dGhvbkxheWVyVmVyc2lvbjogdGhpcy5wcm9wcy5kYXRhZG9nPy5weXRob25MYXllclZlcnNpb24gfHwgMTIzLCcsXG4gICAgICAgICcgICAgICBleHRlbnNpb25MYXllclZlcnNpb246IDk5LCcsXG4gICAgICAgICcgICAgICBlbmFibGVNZXJnZVhyYXlUcmFjZXM6IHRydWUsJyxcbiAgICAgICAgJyAgICB9KTsnLFxuICAgICAgICAnICB9JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgIC8qKicsXG4gICAgICAgICcgICAqIEFkZHMgdGhlIGN1cnJlbnQgYnJhbmNoIG5hbWUgKGNsZWFuZWQgd2l0aCBcXCcvXFwnIC0+IFxcJy1cXCcpIGlmIG5vdCBvbiB0aGUgbWFpbiBicmFuY2gnLFxuICAgICAgICAnICAgKiBAcGFyYW0gcHJlZml4JyxcbiAgICAgICAgJyAgICogQHByaXZhdGUnLFxuICAgICAgICAnICAqLycsXG4gICAgICAgICcgIHByaXZhdGUgYWRkQnJhbmNoTmFtZShwcmVmaXg6IHN0cmluZykgeycsXG4gICAgICAgICcgICAgY29uc3QgZGJPdmVycmlkZSA9IHByb2Nlc3MuZW52LkRCX09WRVJSSURFOycsXG4gICAgICAgICcgICAgaWYgKGRiT3ZlcnJpZGUpIHsnLFxuICAgICAgICAnICAgICAgcmV0dXJuIGAke3ByZWZpeH0tJHtkYk92ZXJyaWRlfWA7JyxcbiAgICAgICAgJyAgICB9JyxcbiAgICAgICAgJyAgJyxcbiAgICAgICAgJyAgICBjb25zdCBoZWFkID0gZnMucmVhZEZpbGVTeW5jKHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBcXCcuZ2l0XFwnLCBcXCdIRUFEXFwnKSwgXFwndXRmOFxcJykudHJpbSgpOycsXG4gICAgICAgICcgICAgY29uc3QgYnJhbmNoID0gaGVhZC5zdGFydHNXaXRoKFxcJ3JlZjogXFwnKSA/IGhlYWQucmVwbGFjZShcXCdyZWY6IHJlZnMvaGVhZHMvXFwnLCBcXCdcXCcpIDogaGVhZDsgLy8gZGV0YWNoZWQgSEVBRCByZXR1cm5zIGEgU0hBJyxcbiAgICAgICAgJyAgJyxcbiAgICAgICAgJyAgICBpZiAoYnJhbmNoICE9PSBcXCdtYWluXFwnKSB7JyxcbiAgICAgICAgJyAgICAgIGNvbnNvbGUubG9nKFxcJ2JyYW5jaDogXFwnLCBicmFuY2gpOycsXG4gICAgICAgICcgICAgICBjb25zdCBjbGVhbkJyYW5jaE5hbWUgPSBicmFuY2gucmVwbGFjZSgvXFxcXC8vZ2ksIFxcJy1cXCcpOycsXG4gICAgICAgICcgICAgICByZXR1cm4gYCR7cHJlZml4fS0ke2NsZWFuQnJhbmNoTmFtZX1gOycsXG4gICAgICAgICcgICAgfScsXG4gICAgICAgICcgICcsXG4gICAgICAgICcgICAgcmV0dXJuIHByZWZpeDsnLFxuICAgICAgICAnICB9JyxcbiAgICAgICAgJyAgJyxcbiAgICAgICAgJyAgcHJvdGVjdGVkIGdldERhdGFiYXNlTmFtZShkYXRhYmFzZU5hbWU6IHN0cmluZykgeycsXG4gICAgICAgICcgICAgcmV0dXJuIHRoaXMuYWRkQnJhbmNoTmFtZShkYXRhYmFzZU5hbWUpOycsXG4gICAgICAgICcgIH0nLFxuICAgICAgICAnICAnLFxuICAgICAgICAnICBwcm90ZWN0ZWQgZ2V0VXNlcm5hbWUodXNlcm5hbWU6IHN0cmluZykgeycsXG4gICAgICAgICcgICAgcmV0dXJuIHRoaXMuYWRkQnJhbmNoTmFtZSh1c2VybmFtZSk7JyxcbiAgICAgICAgJyAgfScsXG4gICAgICAgICd9JyxcbiAgICAgIF0sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
202
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm9vdGNhbXBCYXNlQXBwbGljYXRpb25TdGFja0ZpbGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvQm9vdGNhbXBCYXNlQXBwbGljYXRpb25TdGFja0ZpbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQWtDO0FBR2xDLE1BQWEsZ0NBQWlDLFNBQVEsaUJBQVE7SUFDNUQsWUFBWSxPQUE0QjtRQUN0QyxLQUFLLENBQUMsT0FBTyxFQUFFLG9DQUFvQyxFQUFFO1lBQ25ELE1BQU0sRUFBRSxJQUFJO1lBQ1osUUFBUSxFQUFFLElBQUk7WUFDZCxLQUFLLEVBQUU7Z0JBQ0wsd0JBQXdCO2dCQUN4Qiw0QkFBNEI7Z0JBQzVCLHdFQUF3RTtnQkFDeEUsb0RBQW9EO2dCQUNwRCxzRUFBc0U7Z0JBQ3RFLDREQUE0RDtnQkFDNUQsMkNBQTJDO2dCQUMzQyw4REFBOEQ7Z0JBQzlELDZEQUE2RDtnQkFDN0QsNENBQTRDO2dCQUM1QyxnRUFBZ0U7Z0JBQ2hFLEVBQUU7Z0JBQ0YsaUVBQWlFO2dCQUNqRSxFQUFFO2dCQUNGLHdCQUF3QjtnQkFDeEIsU0FBUztnQkFDVCxnRUFBZ0U7Z0JBQ2hFLFFBQVE7Z0JBQ1IscUJBQXFCO2dCQUNyQixTQUFTO2dCQUNULHlDQUF5QztnQkFDekMsRUFBRTtnQkFDRixTQUFTO2dCQUNULCtEQUErRDtnQkFDL0QsUUFBUTtnQkFDUixxQkFBcUI7Z0JBQ3JCLFNBQVM7Z0JBQ1QsMkNBQTJDO2dCQUMzQyxFQUFFO2dCQUNGLFNBQVM7Z0JBQ1Qsc0VBQXNFO2dCQUN0RSxRQUFRO2dCQUNSLHFDQUFxQztnQkFDckMsU0FBUztnQkFDVCxvQ0FBb0M7Z0JBQ3BDLE1BQU07Z0JBQ04sT0FBTztnQkFDUCwwREFBMEQ7Z0JBQzFELE1BQU07Z0JBQ04sK0NBQStDO2dCQUMvQyxPQUFPO2dCQUNQLDBDQUEwQztnQkFDMUMsRUFBRTtnQkFDRixPQUFPO2dCQUNQLCtFQUErRTtnQkFDL0UsT0FBTztnQkFDUCw2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LENBQUM7Q0FDRjtBQW5NRCw0RUFtTUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUZXh0RmlsZSB9IGZyb20gJ3Byb2plbic7XG5pbXBvcnQgeyBBd3NDZGtUeXBlU2NyaXB0QXBwIH0gZnJvbSAncHJvamVuL2xpYi9hd3NjZGsnO1xuXG5leHBvcnQgY2xhc3MgQm9vdGNhbXBCYXNlQXBwbGljYXRpb25TdGFja0ZpbGUgZXh0ZW5kcyBUZXh0RmlsZSB7XG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IEF3c0Nka1R5cGVTY3JpcHRBcHApIHtcbiAgICBzdXBlcihwcm9qZWN0LCAnc3JjL3N0YWNrcy9CYXNlQXBwbGljYXRpb25TdGFjay50cycsIHtcbiAgICAgIG1hcmtlcjogdHJ1ZSxcbiAgICAgIHJlYWRvbmx5OiB0cnVlLFxuICAgICAgbGluZXM6IFtcbiAgICAgICAgJ2ltcG9ydCBmcyBmcm9tIFxcJ2ZzXFwnOycsXG4gICAgICAgICdpbXBvcnQgcGF0aCBmcm9tIFxcJ3BhdGhcXCc7JyxcbiAgICAgICAgJ2ltcG9ydCB7IEFzcGVjdHMsIENmbk91dHB1dCwgU3RhY2ssIFN0YWNrUHJvcHMgfSBmcm9tIFxcJ2F3cy1jZGstbGliXFwnOycsXG4gICAgICAgICdpbXBvcnQgeyBJVnBjLCBWcGMgfSBmcm9tIFxcJ2F3cy1jZGstbGliL2F3cy1lYzJcXCc7JyxcbiAgICAgICAgJ2ltcG9ydCB7IEhvc3RlZFpvbmUsIElIb3N0ZWRab25lIH0gZnJvbSBcXCdhd3MtY2RrLWxpYi9hd3Mtcm91dGU1M1xcJzsnLFxuICAgICAgICAnaW1wb3J0IHsgU2VjcmV0IH0gZnJvbSBcXCdhd3MtY2RrLWxpYi9hd3Mtc2VjcmV0c21hbmFnZXJcXCc7JyxcbiAgICAgICAgJ2ltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXFwnY29uc3RydWN0c1xcJzsnLFxuICAgICAgICAnaW1wb3J0IHsgRGF0YWRvZ0xhbWJkYSB9IGZyb20gXFwnZGF0YWRvZy1jZGstY29uc3RydWN0cy12MlxcJzsnLFxuICAgICAgICAnaW1wb3J0IHsgRGF0YURvZ0FzcGVjdCB9IGZyb20gXFwnLi4vYXNwZWN0cy9EYXRhRG9nQXNwZWN0XFwnOycsXG4gICAgICAgICdpbXBvcnQgeyBBcGkgfSBmcm9tIFxcJy4uL2NvbnN0cnVjdHMvQXBpXFwnOycsXG4gICAgICAgICdpbXBvcnQgeyBTdGF0aWNXZWJzaXRlIH0gZnJvbSBcXCcuLi9jb25zdHJ1Y3RzL1N0YXRpY1dlYnNpdGVcXCc7JyxcbiAgICAgICAgJycsXG4gICAgICAgICdleHBvcnQgaW50ZXJmYWNlIEJhc2VBcHBsaWNhdGlvblN0YWNrUHJvcHMgZXh0ZW5kcyBTdGFja1Byb3BzIHsnLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgcmVhZG9ubHkgZGF0YWRvZz86IHsnLFxuICAgICAgICAnICAgIC8qKicsXG4gICAgICAgICcgICAgICogVGhlIHZlcnNpb24gb2YgdGhlIERhdGFkb2cgTm9kZS5qcyBMYW1iZGEgbGF5ZXIgdG8gdXNlLicsXG4gICAgICAgICcgICAgIConLFxuICAgICAgICAnICAgICAqIEBkZWZhdWx0IDE0MycsXG4gICAgICAgICcgICAgICovJyxcbiAgICAgICAgJyAgICByZWFkb25seSBub2RlTGF5ZXJWZXJzaW9uPzogbnVtYmVyOycsXG4gICAgICAgICcnLFxuICAgICAgICAnICAgIC8qKicsXG4gICAgICAgICcgICAgICogVGhlIHZlcnNpb24gb2YgdGhlIERhdGFkb2cgUHl0aG9uIExhbWJkYSBsYXllciB0byB1c2UuJyxcbiAgICAgICAgJyAgICAgKicsXG4gICAgICAgICcgICAgICogQGRlZmF1bHQgMTIzJyxcbiAgICAgICAgJyAgICAgKi8nLFxuICAgICAgICAnICAgIHJlYWRvbmx5IHB5dGhvbkxheWVyVmVyc2lvbj86IG51bWJlcjsnLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgICAvKionLFxuICAgICAgICAnICAgICAqIFRoZSBuYW1lIG9mIHRoZSBwcm9qZWN0L3NlcnZpY2UgZm9yIERhdGFkb2cgdGFnZ2luZyBwdXJwb3Nlcy4nLFxuICAgICAgICAnICAgICAqJyxcbiAgICAgICAgJyAgICAgKiBAZGVmYXVsdCAtIHVzZXMgdGhlIHN0YWNrIElEJyxcbiAgICAgICAgJyAgICAgKi8nLFxuICAgICAgICAnICAgIHJlYWRvbmx5IHByb2plY3ROYW1lPzogc3RyaW5nOycsXG4gICAgICAgICcgIH07JyxcbiAgICAgICAgJyAgLyoqJyxcbiAgICAgICAgJyAgICogVGhlIGRvbWFpbiBuYW1lIG9mIHRoZSBSb3V0ZSA1MyBob3N0ZWQgem9uZSB0byB1c2UuJyxcbiAgICAgICAgJyAgIConLFxuICAgICAgICAnICAgKiBAZXhhbXBsZSBcXCdtYWNlZG9uLnNhbmRib3guZGVmaWFuY2UuYWlcXCcnLFxuICAgICAgICAnICAgKi8nLFxuICAgICAgICAnICByZWFkb25seSBob3N0ZWRab25lRG9tYWluTmFtZTogc3RyaW5nOycsXG4gICAgICAgICcnLFxuICAgICAgICAnICAvKionLFxuICAgICAgICAnICAgKiBUaGUgQVJOIG9mIHRoZSBTZWNyZXRzIE1hbmFnZXIgc2VjcmV0IHRoYXQgY29udGFpbnMgdGhlIERhdGFkb2cgQVBJIGtleS4nLFxuICAgICAgICAnICAgKi8nLFxuICAgICAgICAnICByZWFkb25seSBkYXRhZG9nU2VjcmV0QXJuOiBgYXJuOmF3czpzZWNyZXRzbWFuYWdlcjoke3N0cmluZ306JHtzdHJpbmd9OnNlY3JldDoke3N0cmluZ31gOycsXG4gICAgICAgICcnLFxuICAgICAgICAnICAvKionLFxuICAgICAgICAnICAgKiBUaGUgQ2xlcmsgSldLUyBVUkwgdXNlZCB0byB2ZXJpZnkgc2Vzc2lvbiB0b2tlbiBzaWduYXR1cmVzLicsXG4gICAgICAgICcgICAqLycsXG4gICAgICAgICcgIHJlYWRvbmx5IGNsZXJrSndrc1VybDogYGh0dHBzOi8vJHtzdHJpbmd9Ly53ZWxsLWtub3duL2p3a3MuanNvbmA7JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgIC8qKicsXG4gICAgICAgICcgICAqIFRoZSBuYW1lIG9mIHRoZSBWUEMgdG8gY3JlYXRlLicsXG4gICAgICAgICcgICAqJyxcbiAgICAgICAgJyAgICogQGRlZmF1bHQgXFwnJHtpZH0tdnBjXFwnJyxcbiAgICAgICAgJyAgICovJyxcbiAgICAgICAgJyAgcmVhZG9ubHkgdnBjTmFtZT86IHN0cmluZzsnLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgLyoqJyxcbiAgICAgICAgJyAgICogVGhlIGhvc3RuYW1lIGZvciB0aGUgc3RhdGljIHdlYnNpdGUuIFRoaXMgd2lsbCBiZSBhZGRlZCB0byB0aGUgaG9zdGVkem9uZS4nLFxuICAgICAgICAnICAgKicsXG4gICAgICAgICcgICAqIEBleGFtcGxlIFxcJ215Ym9pXFwnJyxcbiAgICAgICAgJyAgICogQGRlZmF1bHQgXFwnbXZwXFwnJyxcbiAgICAgICAgJyAgICovJyxcbiAgICAgICAgJyAgcmVhZG9ubHkgaG9zdG5hbWU6IHN0cmluZzsnLFxuICAgICAgICAnfScsXG4gICAgICAgICcnLFxuICAgICAgICAnZXhwb3J0IGNsYXNzIEJhc2VBcHBsaWNhdGlvblN0YWNrPFRQcm9wcyBleHRlbmRzIEJhc2VBcHBsaWNhdGlvblN0YWNrUHJvcHM+IGV4dGVuZHMgU3RhY2sgeycsXG4gICAgICAgICcgIHByb3RlY3RlZCBkYXRhZG9nOiBEYXRhZG9nTGFtYmRhOycsXG4gICAgICAgICcgIHByb3RlY3RlZCBob3N0ZWRab25lOiBJSG9zdGVkWm9uZTsnLFxuICAgICAgICAnICBwcm90ZWN0ZWQgdnBjOiBJVnBjOycsXG4gICAgICAgICcgIHByb3RlY3RlZCBhcGk6IEFwaTsnLFxuICAgICAgICAnICBwcm90ZWN0ZWQgc3RhdGljV2Vic2l0ZTogU3RhdGljV2Vic2l0ZTsnLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgcHJpdmF0ZSBpZDogc3RyaW5nLCBwcm90ZWN0ZWQgcHJvcHM6IFRQcm9wcykgeycsXG4gICAgICAgICcgICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgICAgaWYgKCF0aGlzLnByb3BzLmNsZXJrSndrc1VybCkgeycsXG4gICAgICAgICcgICAgICB0aHJvdyBuZXcgRXJyb3IoXFwnY2xlcmtKd2tzVXJsIGlzIHJlcXVpcmVkXFwnKTsnLFxuICAgICAgICAnICAgIH0nLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgICB0aGlzLmNyZWF0ZURhdGFkb2dFeHRlbnNpb24oKTsnLFxuICAgICAgICAnICAgIGlmICghdGhpcy5kYXRhZG9nKSB7JyxcbiAgICAgICAgJyAgICAgIHRocm93IG5ldyBFcnJvcihcXCdEYXRhZG9nIGV4dGVuc2lvbiBjcmVhdGlvbiBmYWlsZWRcXCcpOycsXG4gICAgICAgICcgICAgfScsXG4gICAgICAgICcnLFxuICAgICAgICAnICAgIHRoaXMuY3JlYXRlSG9zdGVkWm9uZSgpOycsXG4gICAgICAgICcgICAgaWYgKCF0aGlzLmhvc3RlZFpvbmUpIHsnLFxuICAgICAgICAnICAgICAgdGhyb3cgbmV3IEVycm9yKFxcJ0hvc3RlZFpvbmUgY3JlYXRpb24gZmFpbGVkXFwnKTsnLFxuICAgICAgICAnICAgIH0nLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgICB0aGlzLmNyZWF0ZVZwYygpOycsXG4gICAgICAgICcnLFxuICAgICAgICAnICAgIHRoaXMuY3JlYXRlQXBpKCk7JyxcbiAgICAgICAgJyAgICBpZiAoIXRoaXMuYXBpKSB7JyxcbiAgICAgICAgJyAgICAgIHRocm93IG5ldyBFcnJvcihcXCdBUEkgY3JlYXRpb24gZmFpbGVkXFwnKTsnLFxuICAgICAgICAnICAgIH0nLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgICB0aGlzLmNyZWF0ZVN0YXRpY1dlYnNpdGUoKTsnLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgICB0aGlzLmNyZWF0ZU91dHB1dHMoKTsnLFxuICAgICAgICAnICAgIEFzcGVjdHMub2YodGhpcykuYWRkKG5ldyBEYXRhRG9nQXNwZWN0KHsgZGF0YWRvZzogdGhpcy5kYXRhZG9nIH0pKTsnLFxuICAgICAgICAnICB9JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgIHByb3RlY3RlZCBjcmVhdGVTdGF0aWNXZWJzaXRlKCkgeycsXG4gICAgICAgICcgICAgdGhpcy5zdGF0aWNXZWJzaXRlID0gbmV3IFN0YXRpY1dlYnNpdGUodGhpcywgXFwnU3RhdGljV2Vic2l0ZVxcJywgeycsXG4gICAgICAgICcgICAgICBob3N0ZWRab25lOiB0aGlzLmhvc3RlZFpvbmUsJyxcbiAgICAgICAgJyAgICAgIGFwaTogdGhpcy5hcGkucmVzdEFwaSwnLFxuICAgICAgICAnICAgICAgaG9zdG5hbWU6IHRoaXMucHJvcHMuaG9zdG5hbWUsJyxcbiAgICAgICAgJyAgICB9KTsnLFxuICAgICAgICAnICB9JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgIHByb3RlY3RlZCBjcmVhdGVBcGkoKSB7JyxcbiAgICAgICAgJyAgICB0aGlzLmFwaSA9IG5ldyBBcGkodGhpcywgXFwnQXBpXFwnLCB7JyxcbiAgICAgICAgJyAgICAgIHZwYzogdGhpcy52cGMsJyxcbiAgICAgICAgJyAgICAgIGNsZXJrSndrc1VybDogdGhpcy5wcm9wcy5jbGVya0p3a3NVcmwsJyxcbiAgICAgICAgJyAgICB9KTsnLFxuICAgICAgICAnICB9JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgIHByb3RlY3RlZCBjcmVhdGVWcGMoKSB7JyxcbiAgICAgICAgJyAgICB0aGlzLnZwYyA9IG5ldyBWcGModGhpcywgXFwnVlBDXFwnLCB7JyxcbiAgICAgICAgJyAgICAgIHZwY05hbWU6IHRoaXMucHJvcHMudnBjTmFtZSB8fCBgJHt0aGlzLmlkfS12cGNgLCcsXG4gICAgICAgICcgICAgICBtYXhBenM6IDMsJyxcbiAgICAgICAgJyAgICAgIG5hdEdhdGV3YXlzOiAxLCcsXG4gICAgICAgICcgICAgfSk7JyxcbiAgICAgICAgJyAgfScsXG4gICAgICAgICcnLFxuICAgICAgICAnICBwcm90ZWN0ZWQgY3JlYXRlSG9zdGVkWm9uZSgpIHsnLFxuICAgICAgICAnICAgIHRoaXMuaG9zdGVkWm9uZSA9IEhvc3RlZFpvbmUuZnJvbUxvb2t1cCh0aGlzLCBcXCdIb3N0ZWRab25lXFwnLCB7JyxcbiAgICAgICAgJyAgICAgIGRvbWFpbk5hbWU6IHRoaXMucHJvcHMuaG9zdGVkWm9uZURvbWFpbk5hbWUsJyxcbiAgICAgICAgJyAgICB9KTsnLFxuICAgICAgICAnICB9JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgIHByb3RlY3RlZCBjcmVhdGVPdXRwdXRzKCkgeycsXG4gICAgICAgICcgICAgbmV3IENmbk91dHB1dCh0aGlzLCBcXCdXZWJzaXRlVXJsXFwnLCB7JyxcbiAgICAgICAgJyAgICAgIHZhbHVlOiBgaHR0cHM6Ly8ke3RoaXMuc3RhdGljV2Vic2l0ZS5ob3N0bmFtZX1gLCcsXG4gICAgICAgICcgICAgICBkZXNjcmlwdGlvbjogXFwnVGhlIFVSTCBvZiB0aGUgc3RhdGljIHdlYnNpdGVcXCcsJyxcbiAgICAgICAgJyAgICAgIGV4cG9ydE5hbWU6IGAke3RoaXMuaWQucmVwbGFjZSgvXFxcXC8vLCBcXCctXFwnKX0tV2Vic2l0ZVVybGAsJyxcbiAgICAgICAgJyAgICB9KTsnLFxuICAgICAgICAnICB9JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgIHByb3RlY3RlZCBjcmVhdGVEYXRhZG9nRXh0ZW5zaW9uKCkgeycsXG4gICAgICAgICcgICAgY29uc3QgZGF0YWRvZ0FwaVNlY3JldCA9IFNlY3JldC5mcm9tU2VjcmV0Q29tcGxldGVBcm4odGhpcywgXFwnRGF0YWRvZ0FwaUtleVxcJywgdGhpcy5wcm9wcy5kYXRhZG9nU2VjcmV0QXJuKTsnLFxuICAgICAgICAnICAgIHRoaXMuZGF0YWRvZyA9IG5ldyBEYXRhZG9nTGFtYmRhKHRoaXMsIFxcJ0RhdGFkb2dcXCcsIHsnLFxuICAgICAgICAnICAgICAgYXBpS2V5U2VjcmV0OiBkYXRhZG9nQXBpU2VjcmV0LCcsXG4gICAgICAgICcgICAgICBzZXJ2aWNlOiB0aGlzLnByb3BzLmRhdGFkb2c/LnByb2plY3ROYW1lIHx8IHRoaXMuaWQsJyxcbiAgICAgICAgJyAgICAgIG5vZGVMYXllclZlcnNpb246IHRoaXMucHJvcHMuZGF0YWRvZz8ubm9kZUxheWVyVmVyc2lvbiB8fCAxNDMsJyxcbiAgICAgICAgJyAgICAgIHB5dGhvbkxheWVyVmVyc2lvbjogdGhpcy5wcm9wcy5kYXRhZG9nPy5weXRob25MYXllclZlcnNpb24gfHwgMTIzLCcsXG4gICAgICAgICcgICAgICBleHRlbnNpb25MYXllclZlcnNpb246IDk5LCcsXG4gICAgICAgICcgICAgICBlbmFibGVNZXJnZVhyYXlUcmFjZXM6IGZhbHNlLCcsXG4gICAgICAgICcgICAgfSk7JyxcbiAgICAgICAgJyAgfScsXG4gICAgICAgICcnLFxuICAgICAgICAnICAvKionLFxuICAgICAgICAnICAgKiBBZGRzIHRoZSBjdXJyZW50IGJyYW5jaCBuYW1lIChjbGVhbmVkIHdpdGggXFwnL1xcJyAtPiBcXCctXFwnKSBpZiBub3Qgb24gdGhlIG1haW4gYnJhbmNoJyxcbiAgICAgICAgJyAgICogQHBhcmFtIHByZWZpeCcsXG4gICAgICAgICcgICAqIEBwcml2YXRlJyxcbiAgICAgICAgJyAgKi8nLFxuICAgICAgICAnICBwcml2YXRlIGFkZEJyYW5jaE5hbWUocHJlZml4OiBzdHJpbmcpIHsnLFxuICAgICAgICAnICAgIGNvbnN0IGRiT3ZlcnJpZGUgPSBwcm9jZXNzLmVudi5EQl9PVkVSUklERTsnLFxuICAgICAgICAnICAgIGlmIChkYk92ZXJyaWRlKSB7JyxcbiAgICAgICAgJyAgICAgIHJldHVybiBgJHtwcmVmaXh9LSR7ZGJPdmVycmlkZX1gOycsXG4gICAgICAgICcgICAgfScsXG4gICAgICAgICcgICcsXG4gICAgICAgICcgICAgY29uc3QgaGVhZCA9IGZzLnJlYWRGaWxlU3luYyhwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgXFwnLmdpdFxcJywgXFwnSEVBRFxcJyksIFxcJ3V0ZjhcXCcpLnRyaW0oKTsnLFxuICAgICAgICAnICAgIGNvbnN0IGJyYW5jaCA9IGhlYWQuc3RhcnRzV2l0aChcXCdyZWY6IFxcJykgPyBoZWFkLnJlcGxhY2UoXFwncmVmOiByZWZzL2hlYWRzL1xcJywgXFwnXFwnKSA6IGhlYWQ7IC8vIGRldGFjaGVkIEhFQUQgcmV0dXJucyBhIFNIQScsXG4gICAgICAgICcgICcsXG4gICAgICAgICcgICAgaWYgKGJyYW5jaCAhPT0gXFwnbWFpblxcJykgeycsXG4gICAgICAgICcgICAgICBjb25zb2xlLmxvZyhcXCdicmFuY2g6IFxcJywgYnJhbmNoKTsnLFxuICAgICAgICAnICAgICAgY29uc3QgY2xlYW5CcmFuY2hOYW1lID0gYnJhbmNoLnJlcGxhY2UoL1xcXFwvL2dpLCBcXCctXFwnKTsnLFxuICAgICAgICAnICAgICAgcmV0dXJuIGAke3ByZWZpeH0tJHtjbGVhbkJyYW5jaE5hbWV9YDsnLFxuICAgICAgICAnICAgIH0nLFxuICAgICAgICAnICAnLFxuICAgICAgICAnICAgIHJldHVybiBwcmVmaXg7JyxcbiAgICAgICAgJyAgfScsXG4gICAgICAgICcgICcsXG4gICAgICAgICcgIHByb3RlY3RlZCBnZXREYXRhYmFzZU5hbWUoZGF0YWJhc2VOYW1lOiBzdHJpbmcpIHsnLFxuICAgICAgICAnICAgIHJldHVybiB0aGlzLmFkZEJyYW5jaE5hbWUoZGF0YWJhc2VOYW1lKTsnLFxuICAgICAgICAnICB9JyxcbiAgICAgICAgJyAgJyxcbiAgICAgICAgJyAgcHJvdGVjdGVkIGdldFVzZXJuYW1lKHVzZXJuYW1lOiBzdHJpbmcpIHsnLFxuICAgICAgICAnICAgIHJldHVybiB0aGlzLmFkZEJyYW5jaE5hbWUodXNlcm5hbWUpOycsXG4gICAgICAgICcgIH0nLFxuICAgICAgICAnfScsXG4gICAgICBdLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
package/lib/BootcampProject.js
CHANGED
|
@@ -12,7 +12,7 @@ const SoftwareFactoryFiles_1 = require("./SoftwareFactoryFiles");
|
|
|
12
12
|
const utils_1 = require("./utils");
|
|
13
13
|
const ViteReactProject_1 = require("./ViteReactProject");
|
|
14
14
|
class BootcampProject extends awscdk_1.AwsCdkTypeScriptApp {
|
|
15
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@macedon-technologies/batman.BootcampProject", version: "1.
|
|
15
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@macedon-technologies/batman.BootcampProject", version: "1.32.0" };
|
|
16
16
|
constructor(options) {
|
|
17
17
|
super({
|
|
18
18
|
...options,
|
package/lib/CodeOwnersFile.js
CHANGED
|
@@ -4,7 +4,7 @@ exports.CodeOwnersFile = void 0;
|
|
|
4
4
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
5
5
|
const projen_1 = require("projen");
|
|
6
6
|
class CodeOwnersFile extends projen_1.TextFile {
|
|
7
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@macedon-technologies/batman.CodeOwnersFile", version: "1.
|
|
7
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@macedon-technologies/batman.CodeOwnersFile", version: "1.32.0" };
|
|
8
8
|
constructor(project, options = {}) {
|
|
9
9
|
const defaultOwners = ['* @macedon-technologies/platform', '* @macedon-technologies/ai-development-team'];
|
|
10
10
|
const allOwners = [...defaultOwners, ...(options.additionalOwners || [])];
|
|
@@ -14,7 +14,7 @@ const PR_AUTO_MERGE_README_URL = 'https://github.com/macedon-technologies/platfo
|
|
|
14
14
|
* workflows from pull request branches can't read the key. The job never checks out pull request code.
|
|
15
15
|
*/
|
|
16
16
|
class PrAutoMergeWorkflow extends projen_1.YamlFile {
|
|
17
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@macedon-technologies/batman.PrAutoMergeWorkflow", version: "1.
|
|
17
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@macedon-technologies/batman.PrAutoMergeWorkflow", version: "1.32.0" };
|
|
18
18
|
constructor(project, options = {}) {
|
|
19
19
|
const actionVersions = (0, WorkflowActionVersions_1.resolveActionVersions)(options.actionVersions);
|
|
20
20
|
super(project, '.github/workflows/pr-auto-merge.yml', {
|
|
@@ -7,7 +7,7 @@ const javascript_1 = require("projen/lib/javascript");
|
|
|
7
7
|
const utils_1 = require("./utils");
|
|
8
8
|
const WorkflowActionVersions_1 = require("./WorkflowActionVersions");
|
|
9
9
|
class ProductionDeployWorkflow extends projen_1.YamlFile {
|
|
10
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@macedon-technologies/batman.ProductionDeployWorkflow", version: "1.
|
|
10
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@macedon-technologies/batman.ProductionDeployWorkflow", version: "1.32.0" };
|
|
11
11
|
constructor(project, options) {
|
|
12
12
|
const packageManager = project.package.packageManager;
|
|
13
13
|
const actionVersions = (0, WorkflowActionVersions_1.resolveActionVersions)(options.actionVersions);
|