@pennyfarthing/core 7.4.0 → 7.5.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/dist/cli/utils/files.d.ts +0 -1
- package/dist/cli/utils/files.js +73 -56
- package/dist/cli/utils/manifest.d.ts +0 -1
- package/dist/cli/utils/manifest.js +48 -45
- package/dist/cli/utils/version.d.ts +0 -1
- package/dist/cli/utils/version.js +38 -32
- package/dist/index.d.ts +0 -1
- package/dist/index.js +39 -11
- package/dist/permissions/index.d.ts +0 -1
- package/dist/permissions/index.js +7 -4
- package/dist/permissions/permission-schema.d.ts +0 -1
- package/dist/permissions/permission-schema.js +13 -9
- package/dist/scripts/job-fair-aggregator.d.ts +0 -1
- package/dist/scripts/job-fair-aggregator.js +484 -341
- package/dist/workflow/index.d.ts +0 -1
- package/dist/workflow/index.js +12 -5
- package/dist/workflow/workflow-loader.d.ts +0 -1
- package/dist/workflow/workflow-loader.js +40 -34
- package/dist/workflow/workflow-permissions.d.ts +0 -1
- package/dist/workflow/workflow-permissions.js +14 -8
- package/dist/workflow/workflow-router.d.ts +0 -1
- package/dist/workflow/workflow-router.js +70 -51
- package/dist/workflow/workflow-schema.d.ts +0 -1
- package/dist/workflow/workflow-schema.js +62 -59
- package/package.json +1 -1
- package/dist/bmad/context-reader.d.ts +0 -71
- package/dist/bmad/context-reader.d.ts.map +0 -1
- package/dist/bmad/context-reader.js +0 -369
- package/dist/bmad/context-reader.js.map +0 -1
- package/dist/bmad/context-reader.test.d.ts +0 -71
- package/dist/bmad/context-reader.test.d.ts.map +0 -1
- package/dist/bmad/context-reader.test.js +0 -878
- package/dist/bmad/context-reader.test.js.map +0 -1
- package/dist/bmad/epics-parser.d.ts +0 -61
- package/dist/bmad/epics-parser.d.ts.map +0 -1
- package/dist/bmad/epics-parser.js +0 -331
- package/dist/bmad/epics-parser.js.map +0 -1
- package/dist/bmad/epics-parser.test.d.ts +0 -7
- package/dist/bmad/epics-parser.test.d.ts.map +0 -1
- package/dist/bmad/epics-parser.test.js +0 -449
- package/dist/bmad/epics-parser.test.js.map +0 -1
- package/dist/bmad/index.d.ts +0 -11
- package/dist/bmad/index.d.ts.map +0 -1
- package/dist/bmad/index.js +0 -24
- package/dist/bmad/index.js.map +0 -1
- package/dist/bmad/status-sync.d.ts +0 -173
- package/dist/bmad/status-sync.d.ts.map +0 -1
- package/dist/bmad/status-sync.js +0 -463
- package/dist/bmad/status-sync.js.map +0 -1
- package/dist/bmad/status-sync.test.d.ts +0 -7
- package/dist/bmad/status-sync.test.d.ts.map +0 -1
- package/dist/bmad/status-sync.test.js +0 -702
- package/dist/bmad/status-sync.test.js.map +0 -1
- package/dist/bmad/story-exporter.d.ts +0 -55
- package/dist/bmad/story-exporter.d.ts.map +0 -1
- package/dist/bmad/story-exporter.js +0 -170
- package/dist/bmad/story-exporter.js.map +0 -1
- package/dist/bmad/story-exporter.test.d.ts +0 -51
- package/dist/bmad/story-exporter.test.d.ts.map +0 -1
- package/dist/bmad/story-exporter.test.js +0 -603
- package/dist/bmad/story-exporter.test.js.map +0 -1
- package/dist/bmad/story-parser.d.ts +0 -44
- package/dist/bmad/story-parser.d.ts.map +0 -1
- package/dist/bmad/story-parser.js +0 -307
- package/dist/bmad/story-parser.js.map +0 -1
- package/dist/bmad/story-parser.test.d.ts +0 -44
- package/dist/bmad/story-parser.test.d.ts.map +0 -1
- package/dist/bmad/story-parser.test.js +0 -693
- package/dist/bmad/story-parser.test.js.map +0 -1
- package/dist/cli/commands/command.d.ts +0 -28
- package/dist/cli/commands/command.d.ts.map +0 -1
- package/dist/cli/commands/command.js +0 -399
- package/dist/cli/commands/command.js.map +0 -1
- package/dist/cli/commands/cyclist.d.ts +0 -46
- package/dist/cli/commands/cyclist.d.ts.map +0 -1
- package/dist/cli/commands/cyclist.js +0 -196
- package/dist/cli/commands/cyclist.js.map +0 -1
- package/dist/cli/commands/cyclist.test.d.ts +0 -13
- package/dist/cli/commands/cyclist.test.d.ts.map +0 -1
- package/dist/cli/commands/cyclist.test.js +0 -245
- package/dist/cli/commands/cyclist.test.js.map +0 -1
- package/dist/cli/commands/doctor.d.ts +0 -9
- package/dist/cli/commands/doctor.d.ts.map +0 -1
- package/dist/cli/commands/doctor.js +0 -652
- package/dist/cli/commands/doctor.js.map +0 -1
- package/dist/cli/commands/init.d.ts +0 -8
- package/dist/cli/commands/init.d.ts.map +0 -1
- package/dist/cli/commands/init.js +0 -524
- package/dist/cli/commands/init.js.map +0 -1
- package/dist/cli/commands/skill.d.ts +0 -28
- package/dist/cli/commands/skill.d.ts.map +0 -1
- package/dist/cli/commands/skill.js +0 -416
- package/dist/cli/commands/skill.js.map +0 -1
- package/dist/cli/commands/theme.d.ts +0 -21
- package/dist/cli/commands/theme.d.ts.map +0 -1
- package/dist/cli/commands/theme.js +0 -201
- package/dist/cli/commands/theme.js.map +0 -1
- package/dist/cli/commands/uninstall.d.ts +0 -8
- package/dist/cli/commands/uninstall.d.ts.map +0 -1
- package/dist/cli/commands/uninstall.js +0 -237
- package/dist/cli/commands/uninstall.js.map +0 -1
- package/dist/cli/commands/update.d.ts +0 -9
- package/dist/cli/commands/update.d.ts.map +0 -1
- package/dist/cli/commands/update.js +0 -418
- package/dist/cli/commands/update.js.map +0 -1
- package/dist/cli/commands/version.d.ts +0 -2
- package/dist/cli/commands/version.d.ts.map +0 -1
- package/dist/cli/commands/version.js +0 -28
- package/dist/cli/commands/version.js.map +0 -1
- package/dist/cli/customization.test.d.ts +0 -12
- package/dist/cli/customization.test.d.ts.map +0 -1
- package/dist/cli/customization.test.js +0 -84
- package/dist/cli/customization.test.js.map +0 -1
- package/dist/cli/cyclist-migration.test.d.ts +0 -16
- package/dist/cli/cyclist-migration.test.d.ts.map +0 -1
- package/dist/cli/cyclist-migration.test.js +0 -225
- package/dist/cli/cyclist-migration.test.js.map +0 -1
- package/dist/cli/index.d.ts +0 -3
- package/dist/cli/index.d.ts.map +0 -1
- package/dist/cli/index.js +0 -174
- package/dist/cli/index.js.map +0 -1
- package/dist/cli/ocean-profiles.test.d.ts +0 -13
- package/dist/cli/ocean-profiles.test.d.ts.map +0 -1
- package/dist/cli/ocean-profiles.test.js +0 -134
- package/dist/cli/ocean-profiles.test.js.map +0 -1
- package/dist/cli/theme-maker.test.d.ts +0 -11
- package/dist/cli/theme-maker.test.d.ts.map +0 -1
- package/dist/cli/theme-maker.test.js +0 -356
- package/dist/cli/theme-maker.test.js.map +0 -1
- package/dist/cli/utils/constants.d.ts +0 -66
- package/dist/cli/utils/constants.d.ts.map +0 -1
- package/dist/cli/utils/constants.js +0 -54
- package/dist/cli/utils/constants.js.map +0 -1
- package/dist/cli/utils/files.d.ts.map +0 -1
- package/dist/cli/utils/files.js.map +0 -1
- package/dist/cli/utils/logger.d.ts +0 -26
- package/dist/cli/utils/logger.d.ts.map +0 -1
- package/dist/cli/utils/logger.js +0 -88
- package/dist/cli/utils/logger.js.map +0 -1
- package/dist/cli/utils/manifest.d.ts.map +0 -1
- package/dist/cli/utils/manifest.js.map +0 -1
- package/dist/cli/utils/node-modules.d.ts +0 -6
- package/dist/cli/utils/node-modules.d.ts.map +0 -1
- package/dist/cli/utils/node-modules.js +0 -31
- package/dist/cli/utils/node-modules.js.map +0 -1
- package/dist/cli/utils/prompts.d.ts +0 -34
- package/dist/cli/utils/prompts.d.ts.map +0 -1
- package/dist/cli/utils/prompts.js +0 -93
- package/dist/cli/utils/prompts.js.map +0 -1
- package/dist/cli/utils/symlinks.d.ts +0 -29
- package/dist/cli/utils/symlinks.d.ts.map +0 -1
- package/dist/cli/utils/symlinks.js +0 -181
- package/dist/cli/utils/symlinks.js.map +0 -1
- package/dist/cli/utils/themes.d.ts +0 -101
- package/dist/cli/utils/themes.d.ts.map +0 -1
- package/dist/cli/utils/themes.js +0 -373
- package/dist/cli/utils/themes.js.map +0 -1
- package/dist/cli/utils/themes.test.d.ts +0 -12
- package/dist/cli/utils/themes.test.d.ts.map +0 -1
- package/dist/cli/utils/themes.test.js +0 -147
- package/dist/cli/utils/themes.test.js.map +0 -1
- package/dist/cli/utils/version.d.ts.map +0 -1
- package/dist/cli/utils/version.js.map +0 -1
- package/dist/cli/workspace.test.d.ts +0 -8
- package/dist/cli/workspace.test.d.ts.map +0 -1
- package/dist/cli/workspace.test.js +0 -151
- package/dist/cli/workspace.test.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/jira/jira-epic-creation.d.ts +0 -109
- package/dist/jira/jira-epic-creation.d.ts.map +0 -1
- package/dist/jira/jira-epic-creation.js +0 -253
- package/dist/jira/jira-epic-creation.js.map +0 -1
- package/dist/jira/jira-epic-creation.test.d.ts +0 -16
- package/dist/jira/jira-epic-creation.test.d.ts.map +0 -1
- package/dist/jira/jira-epic-creation.test.js +0 -387
- package/dist/jira/jira-epic-creation.test.js.map +0 -1
- package/dist/jira/jira-sprint-sync.d.ts +0 -247
- package/dist/jira/jira-sprint-sync.d.ts.map +0 -1
- package/dist/jira/jira-sprint-sync.js +0 -670
- package/dist/jira/jira-sprint-sync.js.map +0 -1
- package/dist/jira/jira-sprint-sync.test.d.ts +0 -16
- package/dist/jira/jira-sprint-sync.test.d.ts.map +0 -1
- package/dist/jira/jira-sprint-sync.test.js +0 -845
- package/dist/jira/jira-sprint-sync.test.js.map +0 -1
- package/dist/permissions/index.d.ts.map +0 -1
- package/dist/permissions/index.js.map +0 -1
- package/dist/permissions/permission-schema.d.ts.map +0 -1
- package/dist/permissions/permission-schema.js.map +0 -1
- package/dist/permissions/permission-schema.test.d.ts +0 -40
- package/dist/permissions/permission-schema.test.d.ts.map +0 -1
- package/dist/permissions/permission-schema.test.js +0 -367
- package/dist/permissions/permission-schema.test.js.map +0 -1
- package/dist/scripts/add-ocean-profiles.d.ts +0 -9
- package/dist/scripts/add-ocean-profiles.d.ts.map +0 -1
- package/dist/scripts/add-ocean-profiles.js +0 -695
- package/dist/scripts/add-ocean-profiles.js.map +0 -1
- package/dist/scripts/benchmark-integration.d.ts +0 -182
- package/dist/scripts/benchmark-integration.d.ts.map +0 -1
- package/dist/scripts/benchmark-integration.js +0 -691
- package/dist/scripts/benchmark-integration.js.map +0 -1
- package/dist/scripts/benchmark-integration.test.d.ts +0 -13
- package/dist/scripts/benchmark-integration.test.d.ts.map +0 -1
- package/dist/scripts/benchmark-integration.test.js +0 -680
- package/dist/scripts/benchmark-integration.test.js.map +0 -1
- package/dist/scripts/debugging-scenarios.test.d.ts +0 -18
- package/dist/scripts/debugging-scenarios.test.d.ts.map +0 -1
- package/dist/scripts/debugging-scenarios.test.js +0 -317
- package/dist/scripts/debugging-scenarios.test.js.map +0 -1
- package/dist/scripts/generate-all-spiders.d.ts +0 -10
- package/dist/scripts/generate-all-spiders.d.ts.map +0 -1
- package/dist/scripts/generate-all-spiders.js +0 -306
- package/dist/scripts/generate-all-spiders.js.map +0 -1
- package/dist/scripts/generate-report.d.ts +0 -65
- package/dist/scripts/generate-report.d.ts.map +0 -1
- package/dist/scripts/generate-report.js +0 -378
- package/dist/scripts/generate-report.js.map +0 -1
- package/dist/scripts/generate-report.test.d.ts +0 -13
- package/dist/scripts/generate-report.test.d.ts.map +0 -1
- package/dist/scripts/generate-report.test.js +0 -363
- package/dist/scripts/generate-report.test.js.map +0 -1
- package/dist/scripts/generate-spider-report.d.ts +0 -65
- package/dist/scripts/generate-spider-report.d.ts.map +0 -1
- package/dist/scripts/generate-spider-report.js +0 -366
- package/dist/scripts/generate-spider-report.js.map +0 -1
- package/dist/scripts/generate-spider-report.test.d.ts +0 -13
- package/dist/scripts/generate-spider-report.test.d.ts.map +0 -1
- package/dist/scripts/generate-spider-report.test.js +0 -367
- package/dist/scripts/generate-spider-report.test.js.map +0 -1
- package/dist/scripts/generate-spider.d.ts +0 -47
- package/dist/scripts/generate-spider.d.ts.map +0 -1
- package/dist/scripts/generate-spider.js +0 -338
- package/dist/scripts/generate-spider.js.map +0 -1
- package/dist/scripts/generate-spider.test.d.ts +0 -14
- package/dist/scripts/generate-spider.test.d.ts.map +0 -1
- package/dist/scripts/generate-spider.test.js +0 -271
- package/dist/scripts/generate-spider.test.js.map +0 -1
- package/dist/scripts/job-fair-aggregator.d.ts.map +0 -1
- package/dist/scripts/job-fair-aggregator.js.map +0 -1
- package/dist/scripts/job-fair-aggregator.test.d.ts +0 -14
- package/dist/scripts/job-fair-aggregator.test.d.ts.map +0 -1
- package/dist/scripts/job-fair-aggregator.test.js +0 -616
- package/dist/scripts/job-fair-aggregator.test.js.map +0 -1
- package/dist/scripts/run-ci.test.d.ts +0 -20
- package/dist/scripts/run-ci.test.d.ts.map +0 -1
- package/dist/scripts/run-ci.test.js +0 -127
- package/dist/scripts/run-ci.test.js.map +0 -1
- package/dist/scripts/theme-detail.test.d.ts +0 -10
- package/dist/scripts/theme-detail.test.d.ts.map +0 -1
- package/dist/scripts/theme-detail.test.js +0 -199
- package/dist/scripts/theme-detail.test.js.map +0 -1
- package/dist/scripts/validate-ocean-profiles.d.ts +0 -9
- package/dist/scripts/validate-ocean-profiles.d.ts.map +0 -1
- package/dist/scripts/validate-ocean-profiles.js +0 -130
- package/dist/scripts/validate-ocean-profiles.js.map +0 -1
- package/dist/workflow/gate-handler.d.ts +0 -94
- package/dist/workflow/gate-handler.d.ts.map +0 -1
- package/dist/workflow/gate-handler.js +0 -189
- package/dist/workflow/gate-handler.js.map +0 -1
- package/dist/workflow/gate-handler.test.d.ts +0 -14
- package/dist/workflow/gate-handler.test.d.ts.map +0 -1
- package/dist/workflow/gate-handler.test.js +0 -543
- package/dist/workflow/gate-handler.test.js.map +0 -1
- package/dist/workflow/generic-handoff.d.ts +0 -281
- package/dist/workflow/generic-handoff.d.ts.map +0 -1
- package/dist/workflow/generic-handoff.js +0 -411
- package/dist/workflow/generic-handoff.js.map +0 -1
- package/dist/workflow/generic-handoff.test.d.ts +0 -21
- package/dist/workflow/generic-handoff.test.d.ts.map +0 -1
- package/dist/workflow/generic-handoff.test.js +0 -499
- package/dist/workflow/generic-handoff.test.js.map +0 -1
- package/dist/workflow/generic-sm-finish.d.ts +0 -89
- package/dist/workflow/generic-sm-finish.d.ts.map +0 -1
- package/dist/workflow/generic-sm-finish.js +0 -157
- package/dist/workflow/generic-sm-finish.js.map +0 -1
- package/dist/workflow/generic-sm-setup.d.ts +0 -138
- package/dist/workflow/generic-sm-setup.d.ts.map +0 -1
- package/dist/workflow/generic-sm-setup.js +0 -382
- package/dist/workflow/generic-sm-setup.js.map +0 -1
- package/dist/workflow/index.d.ts.map +0 -1
- package/dist/workflow/index.js.map +0 -1
- package/dist/workflow/session-state.d.ts +0 -92
- package/dist/workflow/session-state.d.ts.map +0 -1
- package/dist/workflow/session-state.js +0 -198
- package/dist/workflow/session-state.js.map +0 -1
- package/dist/workflow/session-state.test.d.ts +0 -8
- package/dist/workflow/session-state.test.d.ts.map +0 -1
- package/dist/workflow/session-state.test.js +0 -551
- package/dist/workflow/session-state.test.js.map +0 -1
- package/dist/workflow/sm-subagents.test.d.ts +0 -23
- package/dist/workflow/sm-subagents.test.d.ts.map +0 -1
- package/dist/workflow/sm-subagents.test.js +0 -727
- package/dist/workflow/sm-subagents.test.js.map +0 -1
- package/dist/workflow/step-parser.d.ts +0 -45
- package/dist/workflow/step-parser.d.ts.map +0 -1
- package/dist/workflow/step-parser.js +0 -147
- package/dist/workflow/step-parser.js.map +0 -1
- package/dist/workflow/step-parser.test.d.ts +0 -14
- package/dist/workflow/step-parser.test.d.ts.map +0 -1
- package/dist/workflow/step-parser.test.js +0 -470
- package/dist/workflow/step-parser.test.js.map +0 -1
- package/dist/workflow/story-workflow-routing.test.d.ts +0 -17
- package/dist/workflow/story-workflow-routing.test.d.ts.map +0 -1
- package/dist/workflow/story-workflow-routing.test.js +0 -559
- package/dist/workflow/story-workflow-routing.test.js.map +0 -1
- package/dist/workflow/test-cache.d.ts +0 -131
- package/dist/workflow/test-cache.d.ts.map +0 -1
- package/dist/workflow/test-cache.js +0 -226
- package/dist/workflow/test-cache.js.map +0 -1
- package/dist/workflow/test-cache.test.d.ts +0 -17
- package/dist/workflow/test-cache.test.d.ts.map +0 -1
- package/dist/workflow/test-cache.test.js +0 -438
- package/dist/workflow/test-cache.test.js.map +0 -1
- package/dist/workflow/trimodal.d.ts +0 -86
- package/dist/workflow/trimodal.d.ts.map +0 -1
- package/dist/workflow/trimodal.js +0 -118
- package/dist/workflow/trimodal.js.map +0 -1
- package/dist/workflow/trimodal.test.d.ts +0 -11
- package/dist/workflow/trimodal.test.d.ts.map +0 -1
- package/dist/workflow/trimodal.test.js +0 -395
- package/dist/workflow/trimodal.test.js.map +0 -1
- package/dist/workflow/variable-resolver.d.ts +0 -67
- package/dist/workflow/variable-resolver.d.ts.map +0 -1
- package/dist/workflow/variable-resolver.js +0 -156
- package/dist/workflow/variable-resolver.js.map +0 -1
- package/dist/workflow/variable-resolver.test.d.ts +0 -14
- package/dist/workflow/variable-resolver.test.d.ts.map +0 -1
- package/dist/workflow/variable-resolver.test.js +0 -400
- package/dist/workflow/variable-resolver.test.js.map +0 -1
- package/dist/workflow/workflow-executor.d.ts +0 -163
- package/dist/workflow/workflow-executor.d.ts.map +0 -1
- package/dist/workflow/workflow-executor.js +0 -197
- package/dist/workflow/workflow-executor.js.map +0 -1
- package/dist/workflow/workflow-executor.test.d.ts +0 -8
- package/dist/workflow/workflow-executor.test.d.ts.map +0 -1
- package/dist/workflow/workflow-executor.test.js +0 -444
- package/dist/workflow/workflow-executor.test.js.map +0 -1
- package/dist/workflow/workflow-loader.d.ts.map +0 -1
- package/dist/workflow/workflow-loader.js.map +0 -1
- package/dist/workflow/workflow-loader.test.d.ts +0 -15
- package/dist/workflow/workflow-loader.test.d.ts.map +0 -1
- package/dist/workflow/workflow-loader.test.js +0 -354
- package/dist/workflow/workflow-loader.test.js.map +0 -1
- package/dist/workflow/workflow-migration.test.d.ts +0 -17
- package/dist/workflow/workflow-migration.test.d.ts.map +0 -1
- package/dist/workflow/workflow-migration.test.js +0 -371
- package/dist/workflow/workflow-migration.test.js.map +0 -1
- package/dist/workflow/workflow-permissions.d.ts.map +0 -1
- package/dist/workflow/workflow-permissions.js.map +0 -1
- package/dist/workflow/workflow-permissions.test.d.ts +0 -15
- package/dist/workflow/workflow-permissions.test.d.ts.map +0 -1
- package/dist/workflow/workflow-permissions.test.js +0 -301
- package/dist/workflow/workflow-permissions.test.js.map +0 -1
- package/dist/workflow/workflow-router.d.ts.map +0 -1
- package/dist/workflow/workflow-router.js.map +0 -1
- package/dist/workflow/workflow-router.test.d.ts +0 -20
- package/dist/workflow/workflow-router.test.d.ts.map +0 -1
- package/dist/workflow/workflow-router.test.js +0 -607
- package/dist/workflow/workflow-router.test.js.map +0 -1
- package/dist/workflow/workflow-schema.d.ts.map +0 -1
- package/dist/workflow/workflow-schema.js.map +0 -1
- package/dist/workflow/workflow-schema.test.d.ts +0 -45
- package/dist/workflow/workflow-schema.test.d.ts.map +0 -1
- package/dist/workflow/workflow-schema.test.js +0 -512
- package/dist/workflow/workflow-schema.test.js.map +0 -1
- package/dist/workflow/workflow-stepped-schema.test.d.ts +0 -18
- package/dist/workflow/workflow-stepped-schema.test.d.ts.map +0 -1
- package/dist/workflow/workflow-stepped-schema.test.js +0 -608
- package/dist/workflow/workflow-stepped-schema.test.js.map +0 -1
|
@@ -1,9 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
/**
|
|
2
3
|
* Workflow Schema Validation
|
|
3
4
|
*
|
|
4
5
|
* Defines types and validation for workflow definitions.
|
|
5
6
|
* See pennyfarthing-dist/guides/workflow-schema.md for spec.
|
|
6
7
|
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.validateWorkflow = validateWorkflow;
|
|
7
10
|
/**
|
|
8
11
|
* Validates a workflow definition object
|
|
9
12
|
*
|
|
@@ -23,8 +26,8 @@
|
|
|
23
26
|
* }
|
|
24
27
|
* ```
|
|
25
28
|
*/
|
|
26
|
-
|
|
27
|
-
|
|
29
|
+
function validateWorkflow(input) {
|
|
30
|
+
var errors = [];
|
|
28
31
|
// Check input is an object
|
|
29
32
|
if (!input || typeof input !== 'object') {
|
|
30
33
|
return {
|
|
@@ -32,7 +35,7 @@ export function validateWorkflow(input) {
|
|
|
32
35
|
errors: [{ field: 'workflow', message: 'Input must be an object' }]
|
|
33
36
|
};
|
|
34
37
|
}
|
|
35
|
-
|
|
38
|
+
var inputObj = input;
|
|
36
39
|
// Check for root 'workflow' key
|
|
37
40
|
if (!('workflow' in inputObj) || !inputObj.workflow || typeof inputObj.workflow !== 'object') {
|
|
38
41
|
return {
|
|
@@ -40,7 +43,7 @@ export function validateWorkflow(input) {
|
|
|
40
43
|
errors: [{ field: 'workflow', message: 'Missing required root "workflow" key' }]
|
|
41
44
|
};
|
|
42
45
|
}
|
|
43
|
-
|
|
46
|
+
var workflowObj = inputObj.workflow;
|
|
44
47
|
// Validate workflow.name (required, string)
|
|
45
48
|
if (!('name' in workflowObj) || workflowObj.name === undefined || workflowObj.name === null) {
|
|
46
49
|
errors.push({ field: 'workflow.name', message: 'Name is required' });
|
|
@@ -49,7 +52,7 @@ export function validateWorkflow(input) {
|
|
|
49
52
|
errors.push({ field: 'workflow.name', message: 'Name must be a string' });
|
|
50
53
|
}
|
|
51
54
|
// Determine workflow type (default to 'phased' for backward compatibility)
|
|
52
|
-
|
|
55
|
+
var workflowType = ('type' in workflowObj && workflowObj.type !== undefined)
|
|
53
56
|
? workflowObj.type
|
|
54
57
|
: 'phased';
|
|
55
58
|
// Validate type field if present
|
|
@@ -58,9 +61,9 @@ export function validateWorkflow(input) {
|
|
|
58
61
|
errors.push({ field: 'workflow.type', message: 'Type must be "phased" or "stepped"' });
|
|
59
62
|
}
|
|
60
63
|
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
+
var isStepped = workflowType === 'stepped';
|
|
65
|
+
var hasPhases = 'phases' in workflowObj && workflowObj.phases !== undefined;
|
|
66
|
+
var hasSteps = 'steps' in workflowObj && workflowObj.steps !== undefined;
|
|
64
67
|
// Validate mutual exclusivity: stepped workflows cannot have phases
|
|
65
68
|
if (isStepped && hasPhases) {
|
|
66
69
|
errors.push({ field: 'workflow.phases', message: 'Stepped workflows cannot have phases (mutually exclusive)' });
|
|
@@ -73,7 +76,7 @@ export function validateWorkflow(input) {
|
|
|
73
76
|
}
|
|
74
77
|
else {
|
|
75
78
|
// Validate steps object
|
|
76
|
-
|
|
79
|
+
var stepsObj = workflowObj.steps;
|
|
77
80
|
if (!stepsObj || typeof stepsObj !== 'object') {
|
|
78
81
|
errors.push({ field: 'workflow.steps', message: 'Steps must be an object' });
|
|
79
82
|
}
|
|
@@ -102,7 +105,7 @@ export function validateWorkflow(input) {
|
|
|
102
105
|
}
|
|
103
106
|
// Validate modes (optional, but only valid for stepped)
|
|
104
107
|
if ('modes' in workflowObj && workflowObj.modes !== undefined) {
|
|
105
|
-
|
|
108
|
+
var modesObj = workflowObj.modes;
|
|
106
109
|
if (!modesObj || typeof modesObj !== 'object') {
|
|
107
110
|
errors.push({ field: 'workflow.modes', message: 'Modes must be an object' });
|
|
108
111
|
}
|
|
@@ -114,16 +117,17 @@ export function validateWorkflow(input) {
|
|
|
114
117
|
}
|
|
115
118
|
}
|
|
116
119
|
// Mode paths must be strings if present
|
|
117
|
-
for (
|
|
120
|
+
for (var _i = 0, _a = ['create', 'validate', 'edit']; _i < _a.length; _i++) {
|
|
121
|
+
var mode = _a[_i];
|
|
118
122
|
if (mode in modesObj && modesObj[mode] !== undefined && typeof modesObj[mode] !== 'string') {
|
|
119
|
-
errors.push({ field:
|
|
123
|
+
errors.push({ field: "workflow.modes.".concat(mode), message: "Modes ".concat(mode, " must be a string") });
|
|
120
124
|
}
|
|
121
125
|
}
|
|
122
126
|
}
|
|
123
127
|
}
|
|
124
128
|
// Validate stepped gates (optional)
|
|
125
129
|
if ('gates' in workflowObj && workflowObj.gates !== undefined) {
|
|
126
|
-
|
|
130
|
+
var gatesObj = workflowObj.gates;
|
|
127
131
|
if (!gatesObj || typeof gatesObj !== 'object') {
|
|
128
132
|
errors.push({ field: 'workflow.gates', message: 'Gates must be an object' });
|
|
129
133
|
}
|
|
@@ -134,10 +138,10 @@ export function validateWorkflow(input) {
|
|
|
134
138
|
errors.push({ field: 'workflow.gates.after_steps', message: 'Gates after_steps must be an array' });
|
|
135
139
|
}
|
|
136
140
|
else {
|
|
137
|
-
|
|
138
|
-
afterSteps.forEach((step, index)
|
|
141
|
+
var afterSteps = gatesObj.after_steps;
|
|
142
|
+
afterSteps.forEach(function (step, index) {
|
|
139
143
|
if (typeof step !== 'number') {
|
|
140
|
-
errors.push({ field:
|
|
144
|
+
errors.push({ field: "workflow.gates.after_steps[".concat(index, "]"), message: 'Gates after_steps values must be numbers' });
|
|
141
145
|
}
|
|
142
146
|
});
|
|
143
147
|
}
|
|
@@ -179,52 +183,52 @@ export function validateWorkflow(input) {
|
|
|
179
183
|
}
|
|
180
184
|
else {
|
|
181
185
|
// Validate each phase
|
|
182
|
-
|
|
183
|
-
phases.forEach((phase, index)
|
|
186
|
+
var phases = workflowObj.phases;
|
|
187
|
+
phases.forEach(function (phase, index) {
|
|
184
188
|
if (!phase || typeof phase !== 'object') {
|
|
185
|
-
errors.push({ field:
|
|
189
|
+
errors.push({ field: "workflow.phases[".concat(index, "]"), message: 'Phase must be an object' });
|
|
186
190
|
return;
|
|
187
191
|
}
|
|
188
|
-
|
|
192
|
+
var phaseObj = phase;
|
|
189
193
|
// Phase name (required)
|
|
190
194
|
if (!('name' in phaseObj) || phaseObj.name === undefined || phaseObj.name === null) {
|
|
191
|
-
errors.push({ field:
|
|
195
|
+
errors.push({ field: "workflow.phases[".concat(index, "].name"), message: 'Phase name is required' });
|
|
192
196
|
}
|
|
193
197
|
else if (typeof phaseObj.name !== 'string') {
|
|
194
|
-
errors.push({ field:
|
|
198
|
+
errors.push({ field: "workflow.phases[".concat(index, "].name"), message: 'Phase name must be a string' });
|
|
195
199
|
}
|
|
196
200
|
// Phase agent (required)
|
|
197
201
|
if (!('agent' in phaseObj) || phaseObj.agent === undefined || phaseObj.agent === null) {
|
|
198
|
-
errors.push({ field:
|
|
202
|
+
errors.push({ field: "workflow.phases[".concat(index, "].agent"), message: 'Phase agent is required' });
|
|
199
203
|
}
|
|
200
204
|
else if (typeof phaseObj.agent !== 'string') {
|
|
201
|
-
errors.push({ field:
|
|
205
|
+
errors.push({ field: "workflow.phases[".concat(index, "].agent"), message: 'Phase agent must be a string' });
|
|
202
206
|
}
|
|
203
207
|
// Phase gate (optional, but if present must have type)
|
|
204
208
|
if ('gate' in phaseObj && phaseObj.gate !== undefined) {
|
|
205
209
|
if (!phaseObj.gate || typeof phaseObj.gate !== 'object') {
|
|
206
|
-
errors.push({ field:
|
|
210
|
+
errors.push({ field: "workflow.phases[".concat(index, "].gate"), message: 'Gate must be an object' });
|
|
207
211
|
}
|
|
208
212
|
else {
|
|
209
|
-
|
|
213
|
+
var gateObj = phaseObj.gate;
|
|
210
214
|
if (!('type' in gateObj) || gateObj.type === undefined || gateObj.type === null) {
|
|
211
|
-
errors.push({ field:
|
|
215
|
+
errors.push({ field: "workflow.phases[".concat(index, "].gate.type"), message: 'Gate type is required' });
|
|
212
216
|
}
|
|
213
217
|
else if (typeof gateObj.type !== 'string') {
|
|
214
|
-
errors.push({ field:
|
|
218
|
+
errors.push({ field: "workflow.phases[".concat(index, "].gate.type"), message: 'Gate type must be a string' });
|
|
215
219
|
}
|
|
216
220
|
}
|
|
217
221
|
}
|
|
218
222
|
// Phase input (optional, array of strings)
|
|
219
223
|
if ('input' in phaseObj && phaseObj.input !== undefined) {
|
|
220
224
|
if (!Array.isArray(phaseObj.input)) {
|
|
221
|
-
errors.push({ field:
|
|
225
|
+
errors.push({ field: "workflow.phases[".concat(index, "].input"), message: 'Input must be an array' });
|
|
222
226
|
}
|
|
223
227
|
}
|
|
224
228
|
// Phase output (optional, array of strings)
|
|
225
229
|
if ('output' in phaseObj && phaseObj.output !== undefined) {
|
|
226
230
|
if (!Array.isArray(phaseObj.output)) {
|
|
227
|
-
errors.push({ field:
|
|
231
|
+
errors.push({ field: "workflow.phases[".concat(index, "].output"), message: 'Output must be an array' });
|
|
228
232
|
}
|
|
229
233
|
}
|
|
230
234
|
});
|
|
@@ -236,7 +240,7 @@ export function validateWorkflow(input) {
|
|
|
236
240
|
errors.push({ field: 'workflow.triggers', message: 'Triggers must be an object' });
|
|
237
241
|
}
|
|
238
242
|
else {
|
|
239
|
-
|
|
243
|
+
var triggersObj = workflowObj.triggers;
|
|
240
244
|
// tags (optional, array)
|
|
241
245
|
if ('tags' in triggersObj && triggersObj.tags !== undefined) {
|
|
242
246
|
if (!Array.isArray(triggersObj.tags)) {
|
|
@@ -255,7 +259,7 @@ export function validateWorkflow(input) {
|
|
|
255
259
|
errors.push({ field: 'workflow.triggers.points', message: 'Points must be an object' });
|
|
256
260
|
}
|
|
257
261
|
else {
|
|
258
|
-
|
|
262
|
+
var pointsObj = triggersObj.points;
|
|
259
263
|
// min (optional, number)
|
|
260
264
|
if ('min' in pointsObj && pointsObj.min !== undefined) {
|
|
261
265
|
if (typeof pointsObj.min !== 'number') {
|
|
@@ -290,43 +294,43 @@ export function validateWorkflow(input) {
|
|
|
290
294
|
errors.push({ field: 'workflow.permissions', message: 'Permissions must be an array' });
|
|
291
295
|
}
|
|
292
296
|
else {
|
|
293
|
-
|
|
294
|
-
permissions.forEach((permission, index)
|
|
297
|
+
var permissions = workflowObj.permissions;
|
|
298
|
+
permissions.forEach(function (permission, index) {
|
|
295
299
|
if (!permission || typeof permission !== 'object') {
|
|
296
|
-
errors.push({ field:
|
|
300
|
+
errors.push({ field: "workflow.permissions[".concat(index, "]"), message: 'Permission must be an object' });
|
|
297
301
|
return;
|
|
298
302
|
}
|
|
299
|
-
|
|
303
|
+
var permObj = permission;
|
|
300
304
|
// tool (required, string)
|
|
301
305
|
if (!('tool' in permObj) || permObj.tool === undefined || permObj.tool === null) {
|
|
302
|
-
errors.push({ field:
|
|
306
|
+
errors.push({ field: "workflow.permissions[".concat(index, "].tool"), message: 'Permission tool is required' });
|
|
303
307
|
}
|
|
304
308
|
else if (typeof permObj.tool !== 'string') {
|
|
305
|
-
errors.push({ field:
|
|
309
|
+
errors.push({ field: "workflow.permissions[".concat(index, "].tool"), message: 'Permission tool must be a string' });
|
|
306
310
|
}
|
|
307
311
|
// scope (required, string)
|
|
308
312
|
if (!('scope' in permObj) || permObj.scope === undefined || permObj.scope === null) {
|
|
309
|
-
errors.push({ field:
|
|
313
|
+
errors.push({ field: "workflow.permissions[".concat(index, "].scope"), message: 'Permission scope is required' });
|
|
310
314
|
}
|
|
311
315
|
else if (typeof permObj.scope !== 'string') {
|
|
312
|
-
errors.push({ field:
|
|
316
|
+
errors.push({ field: "workflow.permissions[".concat(index, "].scope"), message: 'Permission scope must be a string' });
|
|
313
317
|
}
|
|
314
318
|
// reason (required, string)
|
|
315
319
|
if (!('reason' in permObj) || permObj.reason === undefined || permObj.reason === null) {
|
|
316
|
-
errors.push({ field:
|
|
320
|
+
errors.push({ field: "workflow.permissions[".concat(index, "].reason"), message: 'Permission reason is required' });
|
|
317
321
|
}
|
|
318
322
|
else if (typeof permObj.reason !== 'string') {
|
|
319
|
-
errors.push({ field:
|
|
323
|
+
errors.push({ field: "workflow.permissions[".concat(index, "].reason"), message: 'Permission reason must be a string' });
|
|
320
324
|
}
|
|
321
325
|
});
|
|
322
326
|
}
|
|
323
327
|
}
|
|
324
328
|
// If there are errors, return invalid result
|
|
325
329
|
if (errors.length > 0) {
|
|
326
|
-
return { valid: false, errors };
|
|
330
|
+
return { valid: false, errors: errors };
|
|
327
331
|
}
|
|
328
332
|
// Build the validated workflow object
|
|
329
|
-
|
|
333
|
+
var workflow = {
|
|
330
334
|
name: workflowObj.name
|
|
331
335
|
};
|
|
332
336
|
// Set type (default to phased for backward compatibility)
|
|
@@ -334,11 +338,11 @@ export function validateWorkflow(input) {
|
|
|
334
338
|
workflow.type = workflowObj.type;
|
|
335
339
|
}
|
|
336
340
|
// Determine if stepped for conditional field handling
|
|
337
|
-
|
|
341
|
+
var isSteppedWorkflow = workflow.type === 'stepped';
|
|
338
342
|
// Build phases array for phased workflows
|
|
339
343
|
if (!isSteppedWorkflow && workflowObj.phases !== undefined) {
|
|
340
|
-
workflow.phases = workflowObj.phases.map((phase)
|
|
341
|
-
|
|
344
|
+
workflow.phases = workflowObj.phases.map(function (phase) {
|
|
345
|
+
var result = {
|
|
342
346
|
name: phase.name,
|
|
343
347
|
agent: phase.agent
|
|
344
348
|
};
|
|
@@ -349,7 +353,7 @@ export function validateWorkflow(input) {
|
|
|
349
353
|
result.output = phase.output;
|
|
350
354
|
}
|
|
351
355
|
if (phase.gate !== undefined) {
|
|
352
|
-
|
|
356
|
+
var gateObj = phase.gate;
|
|
353
357
|
result.gate = {
|
|
354
358
|
type: gateObj.type
|
|
355
359
|
};
|
|
@@ -368,7 +372,7 @@ export function validateWorkflow(input) {
|
|
|
368
372
|
}
|
|
369
373
|
// steps (required for stepped, already validated)
|
|
370
374
|
if (workflowObj.steps !== undefined) {
|
|
371
|
-
|
|
375
|
+
var stepsObj = workflowObj.steps;
|
|
372
376
|
workflow.steps = {
|
|
373
377
|
path: stepsObj.path,
|
|
374
378
|
pattern: stepsObj.pattern
|
|
@@ -376,7 +380,7 @@ export function validateWorkflow(input) {
|
|
|
376
380
|
}
|
|
377
381
|
// modes (optional)
|
|
378
382
|
if (workflowObj.modes !== undefined) {
|
|
379
|
-
|
|
383
|
+
var modesObj = workflowObj.modes;
|
|
380
384
|
workflow.modes = {
|
|
381
385
|
default: modesObj.default
|
|
382
386
|
};
|
|
@@ -396,7 +400,7 @@ export function validateWorkflow(input) {
|
|
|
396
400
|
}
|
|
397
401
|
// gates (optional, stepped workflow gates)
|
|
398
402
|
if (workflowObj.gates !== undefined) {
|
|
399
|
-
|
|
403
|
+
var gatesObj = workflowObj.gates;
|
|
400
404
|
workflow.gates = {};
|
|
401
405
|
if (gatesObj.after_steps !== undefined) {
|
|
402
406
|
workflow.gates.after_steps = gatesObj.after_steps;
|
|
@@ -417,8 +421,8 @@ export function validateWorkflow(input) {
|
|
|
417
421
|
workflow.version = workflowObj.version;
|
|
418
422
|
}
|
|
419
423
|
if (workflowObj.triggers !== undefined) {
|
|
420
|
-
|
|
421
|
-
|
|
424
|
+
var triggersObj = workflowObj.triggers;
|
|
425
|
+
var triggers = {};
|
|
422
426
|
if (triggersObj.tags !== undefined) {
|
|
423
427
|
triggers.tags = triggersObj.tags;
|
|
424
428
|
}
|
|
@@ -426,7 +430,7 @@ export function validateWorkflow(input) {
|
|
|
426
430
|
triggers.types = triggersObj.types;
|
|
427
431
|
}
|
|
428
432
|
if (triggersObj.points !== undefined) {
|
|
429
|
-
|
|
433
|
+
var pointsObj = triggersObj.points;
|
|
430
434
|
triggers.points = {};
|
|
431
435
|
if (pointsObj.min !== undefined) {
|
|
432
436
|
triggers.points.min = pointsObj.min;
|
|
@@ -442,13 +446,12 @@ export function validateWorkflow(input) {
|
|
|
442
446
|
}
|
|
443
447
|
// Build permissions array if present
|
|
444
448
|
if (workflowObj.permissions !== undefined) {
|
|
445
|
-
|
|
446
|
-
workflow.permissions = permissionsArr.map((perm)
|
|
449
|
+
var permissionsArr = workflowObj.permissions;
|
|
450
|
+
workflow.permissions = permissionsArr.map(function (perm) { return ({
|
|
447
451
|
tool: perm.tool,
|
|
448
452
|
scope: perm.scope,
|
|
449
453
|
reason: perm.reason,
|
|
450
|
-
}));
|
|
454
|
+
}); });
|
|
451
455
|
}
|
|
452
|
-
return { valid: true, workflow };
|
|
456
|
+
return { valid: true, workflow: workflow };
|
|
453
457
|
}
|
|
454
|
-
//# sourceMappingURL=workflow-schema.js.map
|
package/package.json
CHANGED
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* BMAD Project Context Reader - Story 32-4
|
|
3
|
-
*
|
|
4
|
-
* Parses BMAD project-context.md files and extracts technology stack,
|
|
5
|
-
* implementation rules, and AI agent guidance for Pennyfarthing integration.
|
|
6
|
-
*/
|
|
7
|
-
export interface TechnologyStack {
|
|
8
|
-
frontend?: {
|
|
9
|
-
framework?: string;
|
|
10
|
-
language?: string;
|
|
11
|
-
stateManagement?: string;
|
|
12
|
-
styling?: string;
|
|
13
|
-
buildTool?: string;
|
|
14
|
-
};
|
|
15
|
-
backend?: {
|
|
16
|
-
language?: string;
|
|
17
|
-
framework?: string;
|
|
18
|
-
database?: string;
|
|
19
|
-
cache?: string;
|
|
20
|
-
apiStyle?: string;
|
|
21
|
-
};
|
|
22
|
-
infrastructure?: {
|
|
23
|
-
cloudProvider?: string;
|
|
24
|
-
containerRuntime?: string;
|
|
25
|
-
orchestration?: string;
|
|
26
|
-
ciCd?: string;
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
export interface ImplementationRule {
|
|
30
|
-
number: number;
|
|
31
|
-
title: string;
|
|
32
|
-
description: string;
|
|
33
|
-
}
|
|
34
|
-
export interface AiAgentGuidance {
|
|
35
|
-
do?: string[];
|
|
36
|
-
dont?: string[];
|
|
37
|
-
contextLoading?: string;
|
|
38
|
-
}
|
|
39
|
-
export interface ExternalDependency {
|
|
40
|
-
name: string;
|
|
41
|
-
purpose: string;
|
|
42
|
-
documentation: string;
|
|
43
|
-
}
|
|
44
|
-
export interface BmadProjectContext {
|
|
45
|
-
overview: string;
|
|
46
|
-
technologyStack: TechnologyStack;
|
|
47
|
-
implementationRules: ImplementationRule[];
|
|
48
|
-
projectStructure?: string;
|
|
49
|
-
codingStandards?: string;
|
|
50
|
-
aiAgentGuidance?: AiAgentGuidance;
|
|
51
|
-
externalDependencies?: ExternalDependency[];
|
|
52
|
-
environmentSetup?: string;
|
|
53
|
-
}
|
|
54
|
-
export interface ContextParseError {
|
|
55
|
-
section: string;
|
|
56
|
-
message: string;
|
|
57
|
-
line?: number;
|
|
58
|
-
}
|
|
59
|
-
export interface ContextParseResult {
|
|
60
|
-
success: boolean;
|
|
61
|
-
context?: BmadProjectContext;
|
|
62
|
-
errors?: ContextParseError[];
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Parse a BMAD project-context.md file and extract structured context.
|
|
66
|
-
*
|
|
67
|
-
* @param content - Raw markdown content of project-context.md
|
|
68
|
-
* @returns ContextParseResult with success status and either context or errors
|
|
69
|
-
*/
|
|
70
|
-
export declare function parseBmadContext(content: string): ContextParseResult;
|
|
71
|
-
//# sourceMappingURL=context-reader.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"context-reader.d.ts","sourceRoot":"","sources":["../../src/bmad/context-reader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE;QACT,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,cAAc,CAAC,EAAE;QACf,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,eAAe,CAAC;IACjC,mBAAmB,EAAE,kBAAkB,EAAE,CAAC;IAC1C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,oBAAoB,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC5C,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,MAAM,CAAC,EAAE,iBAAiB,EAAE,CAAC;CAC9B;AAkUD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB,CAmGpE"}
|