@macedon-technologies/batman 1.29.0 → 1.31.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 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## 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### 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."
101
101
  },
102
102
  "repository": {
103
103
  "type": "git",
@@ -123,7 +123,7 @@
123
123
  "kind": "interface",
124
124
  "locationInModule": {
125
125
  "filename": "src/Application.ts",
126
- "line": 24
126
+ "line": 23
127
127
  },
128
128
  "name": "ApplicationEnvironmentConfig",
129
129
  "properties": [
@@ -135,7 +135,7 @@
135
135
  "immutable": true,
136
136
  "locationInModule": {
137
137
  "filename": "src/Application.ts",
138
- "line": 25
138
+ "line": 24
139
139
  },
140
140
  "name": "githubActionRoleArn",
141
141
  "type": {
@@ -158,7 +158,7 @@
158
158
  },
159
159
  "locationInModule": {
160
160
  "filename": "src/BatmanProject.ts",
161
- "line": 82
161
+ "line": 87
162
162
  },
163
163
  "parameters": [
164
164
  {
@@ -172,7 +172,7 @@
172
172
  "kind": "class",
173
173
  "locationInModule": {
174
174
  "filename": "src/BatmanProject.ts",
175
- "line": 81
175
+ "line": 86
176
176
  },
177
177
  "name": "BatmanProject",
178
178
  "symbolId": "src/BatmanProject:BatmanProject"
@@ -251,7 +251,7 @@
251
251
  "immutable": true,
252
252
  "locationInModule": {
253
253
  "filename": "src/BatmanProject.ts",
254
- "line": 52
254
+ "line": 47
255
255
  },
256
256
  "name": "actionVersions",
257
257
  "optional": true,
@@ -268,7 +268,7 @@
268
268
  "immutable": true,
269
269
  "locationInModule": {
270
270
  "filename": "src/BatmanProject.ts",
271
- "line": 42
271
+ "line": 37
272
272
  },
273
273
  "name": "additionalCodeOwners",
274
274
  "optional": true,
@@ -314,7 +314,7 @@
314
314
  "immutable": true,
315
315
  "locationInModule": {
316
316
  "filename": "src/BatmanProject.ts",
317
- "line": 77
317
+ "line": 72
318
318
  },
319
319
  "name": "attestationFiles",
320
320
  "optional": true,
@@ -337,7 +337,7 @@
337
337
  "immutable": true,
338
338
  "locationInModule": {
339
339
  "filename": "src/BatmanProject.ts",
340
- "line": 59
340
+ "line": 54
341
341
  },
342
342
  "name": "authorizerObjectVersion",
343
343
  "optional": true,
@@ -355,7 +355,7 @@
355
355
  "immutable": true,
356
356
  "locationInModule": {
357
357
  "filename": "src/BatmanProject.ts",
358
- "line": 66
358
+ "line": 61
359
359
  },
360
360
  "name": "e2eTesting",
361
361
  "optional": true,
@@ -366,15 +366,17 @@
366
366
  {
367
367
  "abstract": true,
368
368
  "docs": {
369
+ "default": "false",
370
+ "remarks": "Requires the\n`AUTO_MERGE_APP_CLIENT_ID` variable and the\n`AUTO_MERGE_APP_PRIVATE_KEY` secret in an `auto-merge` environment; see the README section\n\"Auto-merging pull requests with a GitHub App\".",
369
371
  "stability": "stable",
370
- "summary": "Enable n8n workflow auto-discovery and WorkflowProvider generation."
372
+ "summary": "Generates the pr-auto-merge workflow, which arms squash auto-merge on ready pull requests into the default branch with a GitHub App token."
371
373
  },
372
374
  "immutable": true,
373
375
  "locationInModule": {
374
376
  "filename": "src/BatmanProject.ts",
375
- "line": 37
377
+ "line": 82
376
378
  },
377
- "name": "n8nWorkflows",
379
+ "name": "prAutoMerge",
378
380
  "optional": true,
379
381
  "type": {
380
382
  "primitive": "boolean"
@@ -389,7 +391,7 @@
389
391
  "immutable": true,
390
392
  "locationInModule": {
391
393
  "filename": "src/BatmanProject.ts",
392
- "line": 47
394
+ "line": 42
393
395
  },
394
396
  "name": "websiteDeps",
395
397
  "optional": true,
@@ -554,7 +556,7 @@
554
556
  "immutable": true,
555
557
  "locationInModule": {
556
558
  "filename": "src/MainFile.ts",
557
- "line": 11
559
+ "line": 10
558
560
  },
559
561
  "name": "account",
560
562
  "type": {
@@ -584,7 +586,7 @@
584
586
  "immutable": true,
585
587
  "locationInModule": {
586
588
  "filename": "src/MainFile.ts",
587
- "line": 13
589
+ "line": 12
588
590
  },
589
591
  "name": "clerkPublishableKey",
590
592
  "type": {
@@ -644,9 +646,9 @@
644
646
  "immutable": true,
645
647
  "locationInModule": {
646
648
  "filename": "src/MainFile.ts",
647
- "line": 10
649
+ "line": 11
648
650
  },
649
- "name": "n8nEndpoint",
651
+ "name": "region",
650
652
  "type": {
651
653
  "primitive": "string"
652
654
  }
@@ -659,36 +661,124 @@
659
661
  "immutable": true,
660
662
  "locationInModule": {
661
663
  "filename": "src/MainFile.ts",
662
- "line": 12
664
+ "line": 13
663
665
  },
664
- "name": "region",
666
+ "name": "additionalStackProps",
667
+ "optional": true,
665
668
  "type": {
666
- "primitive": "string"
669
+ "collection": {
670
+ "elementtype": {
671
+ "primitive": "any"
672
+ },
673
+ "kind": "map"
674
+ }
667
675
  }
676
+ }
677
+ ],
678
+ "symbolId": "src/MainFile:EnvironmentConfig"
679
+ },
680
+ "@macedon-technologies/batman.PrAutoMergeWorkflow": {
681
+ "assembly": "@macedon-technologies/batman",
682
+ "base": "projen.YamlFile",
683
+ "docs": {
684
+ "stability": "stable",
685
+ "summary": "Generates `.github/workflows/pr-auto-merge.yml`, which arms GitHub's native squash auto-merge on every ready pull request into the default branch using a GitHub App installation token. It runs on `pull_request_target` in the `auto-merge` environment, which holds the `AUTO_MERGE_APP_CLIENT_ID` variable and the `AUTO_MERGE_APP_PRIVATE_KEY` secret, so workflows from pull request branches can't read the key. The job never checks out pull request code."
686
+ },
687
+ "fqn": "@macedon-technologies/batman.PrAutoMergeWorkflow",
688
+ "initializer": {
689
+ "docs": {
690
+ "stability": "stable"
691
+ },
692
+ "locationInModule": {
693
+ "filename": "src/PrAutoMergeWorkflow.ts",
694
+ "line": 22
668
695
  },
696
+ "parameters": [
697
+ {
698
+ "name": "project",
699
+ "type": {
700
+ "fqn": "projen.Project"
701
+ }
702
+ },
703
+ {
704
+ "name": "options",
705
+ "optional": true,
706
+ "type": {
707
+ "fqn": "@macedon-technologies/batman.PrAutoMergeWorkflowOptions"
708
+ }
709
+ }
710
+ ]
711
+ },
712
+ "kind": "class",
713
+ "locationInModule": {
714
+ "filename": "src/PrAutoMergeWorkflow.ts",
715
+ "line": 21
716
+ },
717
+ "methods": [
718
+ {
719
+ "docs": {
720
+ "stability": "stable",
721
+ "summary": "Implemented by derived classes and returns the contents of the file to emit."
722
+ },
723
+ "locationInModule": {
724
+ "filename": "src/PrAutoMergeWorkflow.ts",
725
+ "line": 84
726
+ },
727
+ "name": "synthesizeContent",
728
+ "overrides": "projen.YamlFile",
729
+ "parameters": [
730
+ {
731
+ "name": "resolver",
732
+ "type": {
733
+ "fqn": "projen.IResolver"
734
+ }
735
+ }
736
+ ],
737
+ "protected": true,
738
+ "returns": {
739
+ "optional": true,
740
+ "type": {
741
+ "primitive": "string"
742
+ }
743
+ }
744
+ }
745
+ ],
746
+ "name": "PrAutoMergeWorkflow",
747
+ "symbolId": "src/PrAutoMergeWorkflow:PrAutoMergeWorkflow"
748
+ },
749
+ "@macedon-technologies/batman.PrAutoMergeWorkflowOptions": {
750
+ "assembly": "@macedon-technologies/batman",
751
+ "datatype": true,
752
+ "docs": {
753
+ "stability": "stable"
754
+ },
755
+ "fqn": "@macedon-technologies/batman.PrAutoMergeWorkflowOptions",
756
+ "kind": "interface",
757
+ "locationInModule": {
758
+ "filename": "src/PrAutoMergeWorkflow.ts",
759
+ "line": 7
760
+ },
761
+ "name": "PrAutoMergeWorkflowOptions",
762
+ "properties": [
669
763
  {
670
764
  "abstract": true,
671
765
  "docs": {
672
- "stability": "stable"
766
+ "stability": "stable",
767
+ "summary": "Overrides for the pinned action versions used by this workflow."
673
768
  },
674
769
  "immutable": true,
675
770
  "locationInModule": {
676
- "filename": "src/MainFile.ts",
677
- "line": 14
771
+ "filename": "src/PrAutoMergeWorkflow.ts",
772
+ "line": 11
678
773
  },
679
- "name": "additionalStackProps",
774
+ "name": "actionVersions",
680
775
  "optional": true,
681
776
  "type": {
682
- "collection": {
683
- "elementtype": {
684
- "primitive": "any"
685
- },
686
- "kind": "map"
687
- }
777
+ "fqn": "@macedon-technologies/batman.WorkflowActionVersions"
688
778
  }
689
779
  }
690
780
  ],
691
- "symbolId": "src/MainFile:EnvironmentConfig"
781
+ "symbolId": "src/PrAutoMergeWorkflow:PrAutoMergeWorkflowOptions"
692
782
  },
693
783
  "@macedon-technologies/batman.ProductionDeployWorkflow": {
694
784
  "assembly": "@macedon-technologies/batman",
@@ -1155,6 +1245,24 @@
1155
1245
  "primitive": "string"
1156
1246
  }
1157
1247
  },
1248
+ {
1249
+ "abstract": true,
1250
+ "docs": {
1251
+ "default": "'actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1' // v3.2.0",
1252
+ "stability": "stable",
1253
+ "summary": "The `actions/create-github-app-token` action reference, used by the opt-in pr-auto-merge workflow to mint a GitHub App installation token."
1254
+ },
1255
+ "immutable": true,
1256
+ "locationInModule": {
1257
+ "filename": "src/WorkflowActionVersions.ts",
1258
+ "line": 86
1259
+ },
1260
+ "name": "createGithubAppToken",
1261
+ "optional": true,
1262
+ "type": {
1263
+ "primitive": "string"
1264
+ }
1265
+ },
1158
1266
  {
1159
1267
  "abstract": true,
1160
1268
  "docs": {
@@ -1283,54 +1391,8 @@
1283
1391
  }
1284
1392
  ],
1285
1393
  "symbolId": "src/WorkflowActionVersions:WorkflowActionVersions"
1286
- },
1287
- "@macedon-technologies/batman.WorkflowAutoDiscover": {
1288
- "assembly": "@macedon-technologies/batman",
1289
- "base": "projen.Component",
1290
- "docs": {
1291
- "stability": "stable"
1292
- },
1293
- "fqn": "@macedon-technologies/batman.WorkflowAutoDiscover",
1294
- "initializer": {
1295
- "docs": {
1296
- "stability": "stable"
1297
- },
1298
- "locationInModule": {
1299
- "filename": "src/WorkflowAutoDiscover.ts",
1300
- "line": 7
1301
- },
1302
- "parameters": [
1303
- {
1304
- "name": "project",
1305
- "type": {
1306
- "fqn": "projen.awscdk.AwsCdkTypeScriptApp"
1307
- }
1308
- }
1309
- ]
1310
- },
1311
- "kind": "class",
1312
- "locationInModule": {
1313
- "filename": "src/WorkflowAutoDiscover.ts",
1314
- "line": 6
1315
- },
1316
- "methods": [
1317
- {
1318
- "docs": {
1319
- "stability": "stable",
1320
- "summary": "Synthesizes files to the project output directory."
1321
- },
1322
- "locationInModule": {
1323
- "filename": "src/WorkflowAutoDiscover.ts",
1324
- "line": 11
1325
- },
1326
- "name": "synthesize",
1327
- "overrides": "projen.Component"
1328
- }
1329
- ],
1330
- "name": "WorkflowAutoDiscover",
1331
- "symbolId": "src/WorkflowAutoDiscover:WorkflowAutoDiscover"
1332
1394
  }
1333
1395
  },
1334
- "version": "1.29.0",
1335
- "fingerprint": "dt1wlH22V+EIj+x/9WefgyfYIFcWaGRY6I39LcVxZNI="
1396
+ "version": "1.31.0",
1397
+ "fingerprint": "v3LtzRASfWDpM+pq51kAi0OCLSH+2WXyh+/YEMCFxFg="
1336
1398
  }