@sprucelabs/spruce-cli 18.1.8 → 18.3.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/CHANGELOG.md +12 -0
- package/build/.spruce/events/events.contract.d.ts +159 -0
- package/build/.spruce/events/events.contract.js +5 -1
- package/build/.spruce/events/events.contract.js.map +1 -1
- package/build/.spruce/events/heartwood/getActiveTheme.v2021_02_11.contract.d.ts +46 -0
- package/build/.spruce/events/heartwood/getActiveTheme.v2021_02_11.contract.js +57 -0
- package/build/.spruce/events/heartwood/getActiveTheme.v2021_02_11.contract.js.map +1 -0
- package/build/.spruce/events/heartwood/registerDashboardCards.v2021_02_11.contract.d.ts +68 -0
- package/build/.spruce/events/heartwood/registerDashboardCards.v2021_02_11.contract.js +78 -0
- package/build/.spruce/events/heartwood/registerDashboardCards.v2021_02_11.contract.js.map +1 -0
- package/build/.spruce/events/heartwood/upsertTheme.v2021_02_11.contract.d.ts +40 -0
- package/build/.spruce/events/heartwood/upsertTheme.v2021_02_11.contract.js +51 -0
- package/build/.spruce/events/heartwood/upsertTheme.v2021_02_11.contract.js.map +1 -0
- package/build/.spruce/events/spruceCli/registerSkillViews.v2021_04_11.contract.d.ts +9 -0
- package/build/.spruce/events/spruceCli/registerSkillViews.v2021_04_11.contract.js +17 -0
- package/build/.spruce/events/spruceCli/registerSkillViews.v2021_04_11.contract.js.map +1 -0
- package/build/.spruce/schemas/schemas.types.d.ts +158 -55
- package/build/.spruce/schemas/schemas.types.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/actionResponse.schema.d.ts +3 -0
- package/build/.spruce/schemas/spruceCli/v2020_07_22/actionResponse.schema.js +70 -0
- package/build/.spruce/schemas/spruceCli/v2020_07_22/actionResponse.schema.js.map +1 -0
- package/build/.spruce/schemas/spruceCli/v2020_07_22/npmPackage.schema.d.ts +3 -0
- package/build/.spruce/schemas/spruceCli/v2020_07_22/npmPackage.schema.js +35 -0
- package/build/.spruce/schemas/spruceCli/v2020_07_22/npmPackage.schema.js.map +1 -0
- package/build/.spruce/settings.json +2 -1
- package/build/GlobalEmitter.d.ts +13 -38
- package/build/GlobalEmitter.js +3 -6
- package/build/GlobalEmitter.js.map +1 -1
- package/build/__tests__/behavioral/TestingAConversation.test.d.ts +2 -1
- package/build/__tests__/behavioral/TestingAConversation.test.js +74 -84
- package/build/__tests__/behavioral/TestingAConversation.test.js.map +1 -1
- package/build/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.js +38 -13
- package/build/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.js.map +1 -1
- package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.d.ts +1 -0
- package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.js +16 -9
- package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.js.map +1 -1
- package/build/__tests__/behavioral/permissions/CreatingPermissions.test.d.ts +2 -2
- package/build/__tests__/behavioral/permissions/CreatingPermissions.test.js +7 -7
- package/build/__tests__/behavioral/permissions/CreatingPermissions.test.js.map +1 -1
- package/build/__tests__/behavioral/permissions/PermissionPlugin.test.d.ts +6 -0
- package/build/__tests__/behavioral/permissions/PermissionPlugin.test.js +85 -0
- package/build/__tests__/behavioral/permissions/PermissionPlugin.test.js.map +1 -0
- package/build/__tests__/behavioral/permissions/PermissionStore.test.d.ts +12 -2
- package/build/__tests__/behavioral/permissions/PermissionStore.test.js +248 -36
- package/build/__tests__/behavioral/permissions/PermissionStore.test.js.map +1 -1
- package/build/__tests__/behavioral/permissions/PermissionWriter.test.d.ts +5 -0
- package/build/__tests__/behavioral/permissions/PermissionWriter.test.js +88 -0
- package/build/__tests__/behavioral/permissions/PermissionWriter.test.js.map +1 -0
- package/build/__tests__/behavioral/permissions/SyncingPermissions.test.d.ts +15 -4
- package/build/__tests__/behavioral/permissions/SyncingPermissions.test.js +325 -28
- package/build/__tests__/behavioral/permissions/SyncingPermissions.test.js.map +1 -1
- package/build/__tests__/behavioral/permissions/support/AbstractPermissionsTest.d.ts +11 -0
- package/build/__tests__/behavioral/permissions/{AbstractPermissionsTest.js → support/AbstractPermissionsTest.js} +34 -2
- package/build/__tests__/behavioral/permissions/support/AbstractPermissionsTest.js.map +1 -0
- package/build/__tests__/behavioral/permissions/support/generateShortAlphaId.d.ts +1 -0
- package/build/__tests__/behavioral/permissions/support/generateShortAlphaId.js +11 -0
- package/build/__tests__/behavioral/permissions/support/generateShortAlphaId.js.map +1 -0
- package/build/__tests__/behavioral/permissions/support/renderPermissionTestFile.d.ts +1 -0
- package/build/__tests__/behavioral/permissions/support/renderPermissionTestFile.js +17 -0
- package/build/__tests__/behavioral/permissions/support/renderPermissionTestFile.js.map +1 -0
- package/build/__tests__/behavioral/permissions/support/sortPermissionContracts.d.ts +5 -0
- package/build/__tests__/behavioral/permissions/support/sortPermissionContracts.js +10 -0
- package/build/__tests__/behavioral/permissions/support/sortPermissionContracts.js.map +1 -0
- package/build/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.d.ts +1 -1
- package/build/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.js +46 -46
- package/build/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.js.map +1 -1
- package/build/__tests__/behavioral/tests/CreatingATest.test.js +2 -2
- package/build/__tests__/behavioral/tests/CreatingATest.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingANodeModule.test.js +7 -3
- package/build/__tests__/behavioral/upgrading/UpgradingANodeModule.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingASkill3.test.js +2 -2
- package/build/__tests__/behavioral/upgrading/UpgradingASkill3.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingASkill4.test.js +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingASkill4.test.js.map +1 -1
- package/build/__tests__/implementation/ActionExecuter2.test.d.ts +1 -1
- package/build/__tests__/implementation/ActionExecuter2.test.js +23 -11
- package/build/__tests__/implementation/ActionExecuter2.test.js.map +1 -1
- package/build/__tests__/implementation/GlobalEmitter.test.d.ts +1 -0
- package/build/__tests__/implementation/GlobalEmitter.test.js +40 -3
- package/build/__tests__/implementation/GlobalEmitter.test.js.map +1 -1
- package/build/__tests__/implementation/SkillStore.test.js +3 -4
- package/build/__tests__/implementation/SkillStore.test.js.map +1 -1
- package/build/__tests__/support/EventFaker.d.ts +5 -0
- package/build/__tests__/support/EventFaker.js +48 -0
- package/build/__tests__/support/EventFaker.js.map +1 -0
- package/build/features/AbstractAction.d.ts +1 -1
- package/build/features/AbstractAction.js.map +1 -1
- package/build/features/AbstractFeature.d.ts +3 -3
- package/build/features/AbstractFeature.js +8 -8
- package/build/features/AbstractFeature.js.map +1 -1
- package/build/features/ActionExecuter.d.ts +1 -1
- package/build/features/ActionExecuter.js +3 -4
- package/build/features/ActionExecuter.js.map +1 -1
- package/build/features/ActionFactory.d.ts +12 -5
- package/build/features/ActionFactory.js +27 -6
- package/build/features/ActionFactory.js.map +1 -1
- package/build/features/ActionQuestionAsker.d.ts +1 -1
- package/build/features/ActionQuestionAsker.js +6 -6
- package/build/features/ActionQuestionAsker.js.map +1 -1
- package/build/features/conversation/ConversationFeature.js +1 -1
- package/build/features/conversation/ConversationFeature.js.map +1 -1
- package/build/features/dependencies/DependencyFeature.js +1 -1
- package/build/features/dependencies/DependencyFeature.js.map +1 -1
- package/build/features/deploy/actions/HerokuAction.js +31 -33
- package/build/features/deploy/actions/HerokuAction.js.map +1 -1
- package/build/features/error/ErrorFeature.js +4 -4
- package/build/features/error/ErrorFeature.js.map +1 -1
- package/build/features/event/EventFeature.d.ts +8 -8
- package/build/features/event/EventFeature.js +7 -4
- package/build/features/event/EventFeature.js.map +1 -1
- package/build/features/event/actions/CreateAction.js.map +1 -1
- package/build/features/event/actions/ListenAction.js.map +1 -1
- package/build/features/event/stores/EventStore.d.ts +9 -9
- package/build/features/event/stores/EventStore.js +26 -26
- package/build/features/event/stores/EventStore.js.map +1 -1
- package/build/features/eventContract/EventContractFeature.js +4 -1
- package/build/features/eventContract/EventContractFeature.js.map +1 -1
- package/build/features/eventContract/actions/PullAction.js +10 -5
- package/build/features/eventContract/actions/PullAction.js.map +1 -1
- package/build/features/features.types.d.ts +2 -37
- package/build/features/features.types.js +0 -41
- package/build/features/features.types.js.map +1 -1
- package/build/features/log/LogFeature.js +1 -1
- package/build/features/log/LogFeature.js.map +1 -1
- package/build/features/node/NodeFeature.js.map +1 -1
- package/build/features/organization/actions/InstallAction.js.map +1 -1
- package/build/features/permission/PermissionFeature.d.ts +12 -2
- package/build/features/permission/PermissionFeature.js +140 -15
- package/build/features/permission/PermissionFeature.js.map +1 -1
- package/build/features/permission/actions/CreateAction.js +4 -1
- package/build/features/permission/actions/CreateAction.js.map +1 -1
- package/build/features/permission/actions/SyncAction.d.ts +5 -1
- package/build/features/permission/actions/SyncAction.js +28 -10
- package/build/features/permission/actions/SyncAction.js.map +1 -1
- package/build/features/permission/stores/PermissionStore.d.ts +7 -1
- package/build/features/permission/stores/PermissionStore.js +92 -23
- package/build/features/permission/stores/PermissionStore.js.map +1 -1
- package/build/features/permission/writers/PermissionWriter.d.ts +7 -1
- package/build/features/permission/writers/PermissionWriter.js +66 -17
- package/build/features/permission/writers/PermissionWriter.js.map +1 -1
- package/build/features/person/PersonFeature.js +1 -1
- package/build/features/person/PersonFeature.js.map +1 -1
- package/build/features/sandbox/SandboxFeature.js +1 -1
- package/build/features/sandbox/SandboxFeature.js.map +1 -1
- package/build/features/schema/SchemaFeature.d.ts +8 -8
- package/build/features/schema/SchemaFeature.js +4 -4
- package/build/features/schema/SchemaFeature.js.map +1 -1
- package/build/features/schema/writers/SchemaWriter.d.ts +12 -12
- package/build/features/schema/writers/SchemaWriter.js.map +1 -1
- package/build/features/skill/SkillFeature.d.ts +11 -11
- package/build/features/skill/SkillFeature.js +2 -2
- package/build/features/skill/SkillFeature.js.map +1 -1
- package/build/features/skill/actions/RebuildAction.js.map +1 -1
- package/build/features/skill/actions/RegisterAction.js.map +1 -1
- package/build/features/skill/stores/SkillStore.js +1 -2
- package/build/features/skill/stores/SkillStore.js.map +1 -1
- package/build/features/store/StoreFeature.js +1 -1
- package/build/features/store/StoreFeature.js.map +1 -1
- package/build/features/store/actions/SyncAction.d.ts +1 -1
- package/build/features/store/actions/SyncAction.js.map +1 -1
- package/build/features/test/TestFeature.js +1 -1
- package/build/features/test/TestFeature.js.map +1 -1
- package/build/features/view/ViewFeature.js +1 -1
- package/build/features/view/ViewFeature.js.map +1 -1
- package/build/schemas/v2020_07_22/actionResponse.builder.d.ts +85 -0
- package/build/schemas/v2020_07_22/actionResponse.builder.js +70 -0
- package/build/schemas/v2020_07_22/actionResponse.builder.js.map +1 -0
- package/build/schemas/v2020_07_22/generatedFile.builder.d.ts +27 -0
- package/build/schemas/v2020_07_22/generatedFile.builder.js +45 -0
- package/build/schemas/v2020_07_22/generatedFile.builder.js.map +1 -0
- package/build/schemas/v2020_07_22/watcherDidDetectChangesEmitPayload.builder.js +4 -40
- package/build/schemas/v2020_07_22/watcherDidDetectChangesEmitPayload.builder.js.map +1 -1
- package/build/services/CommandService.d.ts +2 -2
- package/build/services/CommandService.js +6 -6
- package/build/services/CommandService.js.map +1 -1
- package/build/services/PkgService.d.ts +1 -0
- package/build/services/PkgService.js +5 -0
- package/build/services/PkgService.js.map +1 -1
- package/build/tests/AbstractCliTest.d.ts +7 -3
- package/build/tests/AbstractCliTest.js +81 -45
- package/build/tests/AbstractCliTest.js.map +1 -1
- package/build/tests/buildTestCache.js +7 -0
- package/build/tests/buildTestCache.js.map +1 -1
- package/build/tests/fixtures/FeatureFixture.js +1 -0
- package/build/tests/fixtures/FeatureFixture.js.map +1 -1
- package/build/tests/utilities/test.utility.d.ts +2 -0
- package/build/tests/utilities/test.utility.js +6 -0
- package/build/tests/utilities/test.utility.js.map +1 -1
- package/node_modules/@typescript-eslint/parser/package.json +6 -6
- package/node_modules/@typescript-eslint/scope-manager/dist/ScopeManager.js +9 -9
- package/node_modules/@typescript-eslint/scope-manager/dist/ScopeManager.js.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/definition/Definition.d.ts +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/definition/Definition.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/dom.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/dom.iterable.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/dom.iterable.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/dom.iterable.js.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/dom.js +21 -7
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/dom.js.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.intl.d.ts +3 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.intl.d.ts.map +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.intl.js +12 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.intl.js.map +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.js +2 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.js.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/index.d.ts +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/index.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/index.js +2 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/index.js.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/webworker.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/webworker.iterable.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/webworker.iterable.js +2 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/webworker.iterable.js.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/webworker.js +39 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/webworker.js.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/ClassVisitor.d.ts +4 -2
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/ClassVisitor.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/ClassVisitor.js +13 -5
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/ClassVisitor.js.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/ExportVisitor.d.ts +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/ExportVisitor.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/PatternVisitor.d.ts +2 -2
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/PatternVisitor.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/PatternVisitor.js +9 -9
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/PatternVisitor.js.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/Reference.js +17 -17
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/Reference.js.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/Referencer.d.ts +2 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/Referencer.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/Referencer.js +3 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/Referencer.js.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/scope/Scope.d.ts +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/scope/Scope.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/scope/ScopeBase.d.ts +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/scope/ScopeBase.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/package.json +12 -12
- package/node_modules/@typescript-eslint/types/_ts3.4/dist/generated/ast-spec.d.ts +27 -3
- package/node_modules/@typescript-eslint/types/_ts3.4/dist/lib.d.ts +1 -1
- package/node_modules/@typescript-eslint/types/_ts3.4/dist/parser-options.d.ts +3 -3
- package/node_modules/@typescript-eslint/types/dist/generated/ast-spec.d.ts +27 -3
- package/node_modules/@typescript-eslint/types/dist/generated/ast-spec.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/types/dist/generated/ast-spec.js +3 -0
- package/node_modules/@typescript-eslint/types/dist/generated/ast-spec.js.map +1 -1
- package/node_modules/@typescript-eslint/types/dist/lib.d.ts +1 -1
- package/node_modules/@typescript-eslint/types/dist/lib.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/types/dist/parser-options.d.ts +3 -3
- package/node_modules/@typescript-eslint/types/dist/parser-options.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/types/package.json +3 -3
- package/node_modules/@typescript-eslint/typescript-estree/_ts3.4/dist/create-program/shared.d.ts +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/_ts3.4/dist/parseSettings/index.d.ts +2 -2
- package/node_modules/@typescript-eslint/typescript-estree/_ts3.4/dist/parser-options.d.ts +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/_ts3.4/dist/parser.d.ts +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/_ts3.4/dist/simple-traverse.d.ts +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/_ts3.4/dist/ts-estree/estree-to-ts-node-types.d.ts +4 -1
- package/node_modules/@typescript-eslint/typescript-estree/_ts3.4/dist/ts-estree/ts-nodes.d.ts +4 -2
- package/node_modules/@typescript-eslint/typescript-estree/dist/convert.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/convert.js +22 -3
- package/node_modules/@typescript-eslint/typescript-estree/dist/convert.js.map +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.js +9 -0
- package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.js.map +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.d.ts +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/index.d.ts +2 -2
- package/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/index.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/warnAboutTSVersion.js +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/parser-options.d.ts +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/parser-options.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/parser.d.ts +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/parser.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/simple-traverse.d.ts +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/simple-traverse.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/estree-to-ts-node-types.d.ts +4 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/estree-to-ts-node-types.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-nodes.d.ts +4 -2
- package/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-nodes.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/package.json +6 -6
- package/node_modules/@typescript-eslint/visitor-keys/dist/visitor-keys.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/visitor-keys/dist/visitor-keys.js +63 -48
- package/node_modules/@typescript-eslint/visitor-keys/dist/visitor-keys.js.map +1 -1
- package/node_modules/@typescript-eslint/visitor-keys/package.json +4 -4
- package/package.json +65 -33
- package/src/.spruce/events/events.contract.ts +24 -0
- package/src/.spruce/events/heartwood/getActiveTheme.v2021_02_11.contract.ts +54 -0
- package/src/.spruce/events/heartwood/registerDashboardCards.v2021_02_11.contract.ts +79 -0
- package/src/.spruce/events/heartwood/upsertTheme.v2021_02_11.contract.ts +48 -0
- package/src/.spruce/events/spruceCli/registerSkillViews.v2021_04_11.contract.ts +13 -0
- package/src/.spruce/schemas/schemas.types.ts +171 -52
- package/src/.spruce/schemas/spruceCli/v2020_07_22/actionResponse.schema.ts +58 -0
- package/src/.spruce/schemas/spruceCli/v2020_07_22/npmPackage.schema.ts +33 -0
- package/src/.spruce/settings.json +2 -1
- package/src/GlobalEmitter.ts +2 -7
- package/src/__tests__/behavioral/TestingAConversation.test.ts +20 -37
- package/src/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.ts +14 -2
- package/src/__tests__/behavioral/events/SkillEmitsBootEvents.test.ts +6 -0
- package/src/__tests__/behavioral/permissions/CreatingPermissions.test.ts +2 -2
- package/src/__tests__/behavioral/permissions/PermissionPlugin.test.ts +24 -0
- package/src/__tests__/behavioral/permissions/PermissionStore.test.ts +204 -23
- package/src/__tests__/behavioral/permissions/PermissionWriter.test.ts +23 -0
- package/src/__tests__/behavioral/permissions/SyncingPermissions.test.ts +125 -8
- package/src/__tests__/behavioral/permissions/support/AbstractPermissionsTest.ts +38 -0
- package/src/__tests__/behavioral/permissions/support/generateShortAlphaId.ts +5 -0
- package/src/__tests__/behavioral/permissions/support/renderPermissionTestFile.ts +27 -0
- package/src/__tests__/behavioral/permissions/support/sortPermissionContracts.ts +3 -0
- package/src/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.ts +12 -12
- package/src/__tests__/behavioral/tests/CreatingATest.test.ts +2 -2
- package/src/__tests__/behavioral/upgrading/UpgradingANodeModule.test.ts +3 -0
- package/src/__tests__/behavioral/upgrading/UpgradingASkill3.test.ts +3 -2
- package/src/__tests__/behavioral/upgrading/UpgradingASkill4.test.ts +1 -1
- package/src/__tests__/implementation/ActionExecuter2.test.ts +13 -6
- package/src/__tests__/implementation/GlobalEmitter.test.ts +22 -1
- package/src/__tests__/implementation/SkillStore.test.ts +1 -2
- package/src/__tests__/support/EventFaker.ts +23 -0
- package/src/features/AbstractAction.ts +2 -2
- package/src/features/AbstractFeature.ts +8 -8
- package/src/features/ActionExecuter.ts +4 -5
- package/src/features/ActionFactory.ts +44 -20
- package/src/features/ActionQuestionAsker.ts +17 -17
- package/src/features/conversation/ConversationFeature.ts +1 -1
- package/src/features/dependencies/DependencyFeature.ts +1 -1
- package/src/features/deploy/actions/HerokuAction.ts +2 -2
- package/src/features/error/ErrorFeature.ts +4 -4
- package/src/features/event/EventFeature.ts +15 -14
- package/src/features/event/actions/CreateAction.ts +1 -1
- package/src/features/event/actions/ListenAction.ts +1 -1
- package/src/features/event/stores/EventStore.ts +37 -37
- package/src/features/eventContract/EventContractFeature.ts +6 -1
- package/src/features/eventContract/actions/PullAction.ts +7 -3
- package/src/features/features.types.ts +4 -41
- package/src/features/log/LogFeature.ts +1 -1
- package/src/features/node/NodeFeature.ts +1 -1
- package/src/features/organization/actions/InstallAction.ts +1 -1
- package/src/features/permission/PermissionFeature.ts +66 -11
- package/src/features/permission/actions/CreateAction.ts +2 -0
- package/src/features/permission/actions/SyncAction.ts +22 -3
- package/src/features/permission/stores/PermissionStore.ts +44 -3
- package/src/features/permission/writers/PermissionWriter.ts +64 -3
- package/src/features/person/PersonFeature.ts +1 -1
- package/src/features/sandbox/SandboxFeature.ts +1 -3
- package/src/features/schema/SchemaFeature.ts +14 -14
- package/src/features/schema/writers/SchemaWriter.ts +14 -15
- package/src/features/skill/SkillFeature.ts +18 -18
- package/src/features/skill/actions/RebuildAction.ts +1 -1
- package/src/features/skill/actions/RegisterAction.ts +1 -1
- package/src/features/skill/stores/SkillStore.ts +1 -2
- package/src/features/store/StoreFeature.ts +1 -1
- package/src/features/store/actions/SyncAction.ts +1 -1
- package/src/features/test/TestFeature.ts +1 -1
- package/src/features/view/ViewFeature.ts +1 -1
- package/src/schemas/v2020_07_22/actionResponse.builder.ts +62 -0
- package/src/schemas/v2020_07_22/generatedFile.builder.ts +44 -0
- package/src/schemas/v2020_07_22/watcherDidDetectChangesEmitPayload.builder.ts +3 -46
- package/src/services/CommandService.ts +5 -5
- package/src/services/PkgService.ts +4 -0
- package/src/tests/AbstractCliTest.ts +31 -13
- package/src/tests/buildTestCache.ts +7 -0
- package/src/tests/fixtures/FeatureFixture.ts +2 -0
- package/src/tests/utilities/test.utility.ts +13 -0
- package/build/__tests__/behavioral/permissions/AbstractPermissionsTest.d.ts +0 -8
- package/build/__tests__/behavioral/permissions/AbstractPermissionsTest.js.map +0 -1
- package/src/__tests__/behavioral/permissions/AbstractPermissionsTest.ts +0 -20
|
@@ -2,14 +2,6 @@ import { FileDescription } from '../../types/cli.types';
|
|
|
2
2
|
import AbstractFeature, { FeatureDependency, FeatureOptions } from '../AbstractFeature';
|
|
3
3
|
import { FeatureActionResponse, FeatureCode } from '../features.types';
|
|
4
4
|
import EventContractBuilder from './builders/EventContractBuilder';
|
|
5
|
-
declare module '../../features/features.types' {
|
|
6
|
-
interface FeatureMap {
|
|
7
|
-
event: EventFeature;
|
|
8
|
-
}
|
|
9
|
-
interface FeatureOptionsMap {
|
|
10
|
-
event: undefined;
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
5
|
export default class EventFeature extends AbstractFeature {
|
|
14
6
|
code: FeatureCode;
|
|
15
7
|
nameReadable: string;
|
|
@@ -33,3 +25,11 @@ export default class EventFeature extends AbstractFeature {
|
|
|
33
25
|
getEventContractBuilder(): EventContractBuilder;
|
|
34
26
|
hasBeenSynced(): boolean;
|
|
35
27
|
}
|
|
28
|
+
declare module '../../features/features.types' {
|
|
29
|
+
interface FeatureMap {
|
|
30
|
+
event: EventFeature;
|
|
31
|
+
}
|
|
32
|
+
interface FeatureOptionsMap {
|
|
33
|
+
event: undefined;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -36,6 +36,9 @@ var EventFeature = /*#__PURE__*/function (_AbstractFeature) {
|
|
|
36
36
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "dependencies", [{
|
|
37
37
|
code: 'schema',
|
|
38
38
|
isRequired: true
|
|
39
|
+
}, {
|
|
40
|
+
code: 'permission',
|
|
41
|
+
isRequired: true
|
|
39
42
|
}]);
|
|
40
43
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "packageDependencies", [{
|
|
41
44
|
name: '@sprucelabs/mercury-client'
|
|
@@ -68,7 +71,7 @@ var EventFeature = /*#__PURE__*/function (_AbstractFeature) {
|
|
|
68
71
|
case 0:
|
|
69
72
|
_spruceSkillUtils.diskUtil.createDir(_spruceSkillUtils.diskUtil.resolvePath(this.cwd, 'src', 'events'));
|
|
70
73
|
_context.next = 3;
|
|
71
|
-
return this.
|
|
74
|
+
return this.features.isInstalled('skill');
|
|
72
75
|
case 3:
|
|
73
76
|
isSkillInstalled = _context.sent;
|
|
74
77
|
if (!isSkillInstalled) {
|
|
@@ -114,7 +117,7 @@ var EventFeature = /*#__PURE__*/function (_AbstractFeature) {
|
|
|
114
117
|
settings.clearListenerCache();
|
|
115
118
|
}
|
|
116
119
|
_context2.next = 6;
|
|
117
|
-
return this.
|
|
120
|
+
return this.features.isInstalled('event');
|
|
118
121
|
case 6:
|
|
119
122
|
isInstalled = _context2.sent;
|
|
120
123
|
isRemoteRelevant = isInstalled && (featureCode === 'event' || featureCode === 'eventContract' || actionCode === 'login') && actionCode !== 'setRemote';
|
|
@@ -179,7 +182,7 @@ var EventFeature = /*#__PURE__*/function (_AbstractFeature) {
|
|
|
179
182
|
case 0:
|
|
180
183
|
featureCode = payload.featureCode, actionCode = payload.actionCode;
|
|
181
184
|
_context4.next = 3;
|
|
182
|
-
return this.
|
|
185
|
+
return this.features.isInstalled('event');
|
|
183
186
|
case 3:
|
|
184
187
|
isInstalled = _context4.sent;
|
|
185
188
|
results = {};
|
|
@@ -272,7 +275,7 @@ var EventFeature = /*#__PURE__*/function (_AbstractFeature) {
|
|
|
272
275
|
switch (_context6.prev = _context6.next) {
|
|
273
276
|
case 0:
|
|
274
277
|
_context6.next = 2;
|
|
275
|
-
return this.
|
|
278
|
+
return this.features.isInstalled(this.code);
|
|
276
279
|
case 2:
|
|
277
280
|
isInstalled = _context6.sent;
|
|
278
281
|
lastSync = this.Service('eventSettings').getLastSyncOptions();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventFeature.js","names":["EventFeature","options","code","isRequired","name","diskUtil","resolvePath","__dirname","emitter","on","handleDidFetchSchemas","bind","handleWillExecute","handleDidExecute","createDir","cwd","featureInstaller","isInstalled","isSkillInstalled","Action","execute","payload","featureCode","actionCode","results","initiatingAction","EventStore","clearCache","combined","combineCodes","settings","Service","clearListenerCache","isRemoteRelevant","appendRemoteToResultsOrPrompt","remoteResults","actionUtil","mergeActionResults","syncResults","isUpgrade","syncListenersAndMixinResults","remote","r","getRemote","TerminalInterface","doesSupportColor","Error","ui","stopLoading","renderLine","summaryLines","getHost","lastSync","getLastSyncOptions","writer","getEventContractBuilder","fetchContractsAndGenerateUniqueSchemas","schemas","shouldSyncOnlyCoreEvents","uniqueSchemas","contractBuilder","EventContractBuilder","optionsSchema","syncEventActionSchema","eventGenerator","Writer","eventStore","Store","skillStore","dependencyService","doesHashSprucePathExist","hasCombinedContractBeenWritten","AbstractFeature"],"sources":["../../../src/features/event/EventFeature.ts"],"sourcesContent":["import { Schema } from '@sprucelabs/schema'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport syncEventActionSchema from '#spruce/schemas/spruceCli/v2020_07_22/syncEventOptions.schema'\nimport TerminalInterface from '../../interfaces/TerminalInterface'\nimport { FileDescription } from '../../types/cli.types'\nimport actionUtil from '../../utilities/action.utility'\nimport AbstractFeature, {\n\tFeatureDependency,\n\tFeatureOptions,\n} from '../AbstractFeature'\nimport { FeatureActionResponse, FeatureCode } from '../features.types'\nimport EventContractBuilder from './builders/EventContractBuilder'\nimport EventStore from './stores/EventStore'\n\ndeclare module '../../features/features.types' {\n\tinterface FeatureMap {\n\t\tevent: EventFeature\n\t}\n\n\tinterface FeatureOptionsMap {\n\t\tevent: undefined\n\t}\n}\n\nexport default class EventFeature extends AbstractFeature {\n\tpublic code: FeatureCode = 'event'\n\tpublic nameReadable = 'Events'\n\tpublic description = 'Connect to the Mercury Event Engine.'\n\tpublic dependencies: FeatureDependency[] = [\n\t\t{ code: 'schema', isRequired: true },\n\t]\n\tpublic packageDependencies = [\n\t\t{\n\t\t\tname: '@sprucelabs/mercury-client',\n\t\t},\n\t\t{\n\t\t\tname: '@sprucelabs/mercury-types',\n\t\t},\n\t\t{\n\t\t\tname: '@sprucelabs/spruce-event-utils',\n\t\t},\n\t\t{\n\t\t\tname: '@sprucelabs/spruce-event-plugin',\n\t\t},\n\t\t{\n\t\t\tname: '@sprucelabs/mercury-core-events',\n\t\t},\n\t]\n\n\tpublic actionsDir = diskUtil.resolvePath(__dirname, 'actions')\n\n\tpublic readonly fileDescriptions: FileDescription[] = []\n\tprivate contractBuilder?: EventContractBuilder\n\tprivate initiatingAction?: string\n\n\tpublic constructor(options: FeatureOptions) {\n\t\tsuper(options)\n\n\t\tvoid this.emitter.on(\n\t\t\t'schema.did-fetch-schemas',\n\t\t\tthis.handleDidFetchSchemas.bind(this)\n\t\t)\n\n\t\tvoid this.emitter.on(\n\t\t\t'feature.will-execute',\n\t\t\tthis.handleWillExecute.bind(this)\n\t\t)\n\n\t\tvoid this.emitter.on(\n\t\t\t'feature.did-execute',\n\t\t\tthis.handleDidExecute.bind(this)\n\t\t)\n\t}\n\n\tpublic async afterPackageInstall() {\n\t\tdiskUtil.createDir(diskUtil.resolvePath(this.cwd, 'src', 'events'))\n\t\tconst isSkillInstalled = await this.featureInstaller.isInstalled('skill')\n\t\tif (isSkillInstalled) {\n\t\t\treturn await this.Action('event', 'sync.listeners').execute({})\n\t\t}\n\n\t\treturn {}\n\t}\n\n\tprivate async handleWillExecute(payload: {\n\t\tfeatureCode: string\n\t\tactionCode: string\n\t}): Promise<FeatureActionResponse> {\n\t\tconst { featureCode, actionCode } = payload\n\n\t\tlet results: FeatureActionResponse = {}\n\n\t\tif (!this.initiatingAction) {\n\t\t\tEventStore.clearCache()\n\t\t\tconst combined = this.combineCodes(featureCode, actionCode)\n\t\t\tthis.initiatingAction = combined\n\t\t}\n\n\t\tif (featureCode === 'node' || featureCode === 'upgrade') {\n\t\t\tconst settings = this.Service('eventSettings')\n\t\t\tsettings.clearListenerCache()\n\t\t}\n\n\t\tconst isInstalled = await this.featureInstaller.isInstalled('event')\n\t\tconst isRemoteRelevant =\n\t\t\tisInstalled &&\n\t\t\t(featureCode === 'event' ||\n\t\t\t\tfeatureCode === 'eventContract' ||\n\t\t\t\tactionCode === 'login') &&\n\t\t\tactionCode !== 'setRemote'\n\n\t\tif (isRemoteRelevant) {\n\t\t\tconst remoteResults = await this.appendRemoteToResultsOrPrompt()\n\t\t\tresults = actionUtil.mergeActionResults(results, remoteResults)\n\t\t}\n\n\t\treturn results\n\t}\n\n\tprivate async syncListenersAndMixinResults(results: FeatureActionResponse) {\n\t\tconst syncResults = await this.Action('event', 'sync.listeners').execute({})\n\t\tresults = actionUtil.mergeActionResults(results, syncResults)\n\t\treturn results\n\t}\n\n\tprivate async handleDidExecute(payload: {\n\t\tfeatureCode: string\n\t\tactionCode: string\n\t}) {\n\t\tconst { featureCode, actionCode } = payload\n\t\tconst isInstalled = await this.featureInstaller.isInstalled('event')\n\n\t\tlet results = {}\n\n\t\tconst isUpgrade =\n\t\t\tisInstalled && featureCode === 'node' && actionCode === 'upgrade'\n\n\t\tif (isUpgrade) {\n\t\t\tresults = await this.Action('event', 'sync').execute({})\n\t\t\tresults = await this.syncListenersAndMixinResults(results)\n\t\t}\n\n\t\tif (this.initiatingAction === this.combineCodes(featureCode, actionCode)) {\n\t\t\tEventStore.clearCache()\n\t\t}\n\n\t\treturn results\n\t}\n\n\tprivate combineCodes(featureCode: string, actionCode: string) {\n\t\treturn `${featureCode}.${actionCode}`\n\t}\n\n\tprivate async appendRemoteToResultsOrPrompt(): Promise<FeatureActionResponse> {\n\t\tconst remote = this.Service('remote')\n\t\tconst r = remote.getRemote()\n\n\t\tif (!r) {\n\t\t\tif (!TerminalInterface.doesSupportColor()) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Dang! I couldn't find env.HOST. Once that is set, lets try again!`\n\t\t\t\t)\n\t\t\t}\n\n\t\t\tthis.ui.stopLoading()\n\t\t\tthis.ui.renderLine(\n\t\t\t\t`Uh oh! It looks like you haven't configured your remote! We gotta do that.`\n\t\t\t)\n\n\t\t\tconst results = await this.Action('event', 'setRemote').execute({})\n\n\t\t\treturn results\n\t\t} else {\n\t\t\treturn {\n\t\t\t\tsummaryLines: [`Remote: ${r}`, `Host: ${remote.getHost()}`],\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate async handleDidFetchSchemas(payload: { schemas?: Schema[] | null }) {\n\t\tconst isInstalled = await this.featureInstaller.isInstalled(this.code)\n\n\t\tconst lastSync = this.Service('eventSettings').getLastSyncOptions()\n\n\t\tif (lastSync && isInstalled) {\n\t\t\tconst writer = this.getEventContractBuilder()\n\n\t\t\tconst uniqueSchemas = await writer.fetchContractsAndGenerateUniqueSchemas(\n\t\t\t\tpayload.schemas ?? [],\n\t\t\t\tlastSync.shouldSyncOnlyCoreEvents\n\t\t\t)\n\n\t\t\treturn {\n\t\t\t\tschemas: uniqueSchemas.schemas ?? [],\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tschemas: [],\n\t\t}\n\t}\n\n\tpublic getEventContractBuilder() {\n\t\tif (!this.contractBuilder) {\n\t\t\tthis.contractBuilder = new EventContractBuilder({\n\t\t\t\tcwd: this.cwd,\n\t\t\t\toptionsSchema: syncEventActionSchema,\n\t\t\t\tui: this.ui,\n\t\t\t\teventGenerator: this.Writer('event'),\n\t\t\t\teventStore: this.Store('event'),\n\t\t\t\tskillStore: this.Store('skill'),\n\t\t\t\tdependencyService: this.Service('dependency'),\n\t\t\t})\n\t\t}\n\n\t\treturn this.contractBuilder\n\t}\n\n\tpublic hasBeenSynced() {\n\t\tif (diskUtil.doesHashSprucePathExist(this.cwd)) {\n\t\t\tconst writer = this.Writer('event')\n\t\t\treturn writer.hasCombinedContractBeenWritten(this.cwd)\n\t\t}\n\n\t\treturn false\n\t}\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EventFeature.js","names":["EventFeature","options","code","isRequired","name","diskUtil","resolvePath","__dirname","emitter","on","handleDidFetchSchemas","bind","handleWillExecute","handleDidExecute","createDir","cwd","features","isInstalled","isSkillInstalled","Action","execute","payload","featureCode","actionCode","results","initiatingAction","EventStore","clearCache","combined","combineCodes","settings","Service","clearListenerCache","isRemoteRelevant","appendRemoteToResultsOrPrompt","remoteResults","actionUtil","mergeActionResults","syncResults","isUpgrade","syncListenersAndMixinResults","remote","r","getRemote","TerminalInterface","doesSupportColor","Error","ui","stopLoading","renderLine","summaryLines","getHost","lastSync","getLastSyncOptions","writer","getEventContractBuilder","fetchContractsAndGenerateUniqueSchemas","schemas","shouldSyncOnlyCoreEvents","uniqueSchemas","contractBuilder","EventContractBuilder","optionsSchema","syncEventActionSchema","eventGenerator","Writer","eventStore","Store","skillStore","dependencyService","doesHashSprucePathExist","hasCombinedContractBeenWritten","AbstractFeature"],"sources":["../../../src/features/event/EventFeature.ts"],"sourcesContent":["import { Schema } from '@sprucelabs/schema'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport syncEventActionSchema from '#spruce/schemas/spruceCli/v2020_07_22/syncEventOptions.schema'\nimport TerminalInterface from '../../interfaces/TerminalInterface'\nimport { FileDescription } from '../../types/cli.types'\nimport actionUtil from '../../utilities/action.utility'\nimport AbstractFeature, {\n\tFeatureDependency,\n\tFeatureOptions,\n} from '../AbstractFeature'\nimport { FeatureActionResponse, FeatureCode } from '../features.types'\nimport EventContractBuilder from './builders/EventContractBuilder'\nimport EventStore from './stores/EventStore'\n\nexport default class EventFeature extends AbstractFeature {\n\tpublic code: FeatureCode = 'event'\n\tpublic nameReadable = 'Events'\n\tpublic description = 'Connect to the Mercury Event Engine.'\n\tpublic dependencies: FeatureDependency[] = [\n\t\t{ code: 'schema', isRequired: true },\n\t\t{ code: 'permission', isRequired: true },\n\t]\n\tpublic packageDependencies = [\n\t\t{\n\t\t\tname: '@sprucelabs/mercury-client',\n\t\t},\n\t\t{\n\t\t\tname: '@sprucelabs/mercury-types',\n\t\t},\n\t\t{\n\t\t\tname: '@sprucelabs/spruce-event-utils',\n\t\t},\n\t\t{\n\t\t\tname: '@sprucelabs/spruce-event-plugin',\n\t\t},\n\t\t{\n\t\t\tname: '@sprucelabs/mercury-core-events',\n\t\t},\n\t]\n\n\tpublic actionsDir = diskUtil.resolvePath(__dirname, 'actions')\n\n\tpublic readonly fileDescriptions: FileDescription[] = []\n\tprivate contractBuilder?: EventContractBuilder\n\tprivate initiatingAction?: string\n\n\tpublic constructor(options: FeatureOptions) {\n\t\tsuper(options)\n\n\t\tvoid this.emitter.on(\n\t\t\t'schema.did-fetch-schemas',\n\t\t\tthis.handleDidFetchSchemas.bind(this)\n\t\t)\n\n\t\tvoid this.emitter.on(\n\t\t\t'feature.will-execute',\n\t\t\tthis.handleWillExecute.bind(this)\n\t\t)\n\n\t\tvoid this.emitter.on(\n\t\t\t'feature.did-execute',\n\t\t\tthis.handleDidExecute.bind(this)\n\t\t)\n\t}\n\n\tpublic async afterPackageInstall() {\n\t\tdiskUtil.createDir(diskUtil.resolvePath(this.cwd, 'src', 'events'))\n\t\tconst isSkillInstalled = await this.features.isInstalled('skill')\n\t\tif (isSkillInstalled) {\n\t\t\treturn await this.Action('event', 'sync.listeners').execute({})\n\t\t}\n\n\t\treturn {}\n\t}\n\n\tprivate async handleWillExecute(payload: {\n\t\tfeatureCode: string\n\t\tactionCode: string\n\t}): Promise<FeatureActionResponse> {\n\t\tconst { featureCode, actionCode } = payload\n\n\t\tlet results: FeatureActionResponse = {}\n\n\t\tif (!this.initiatingAction) {\n\t\t\tEventStore.clearCache()\n\t\t\tconst combined = this.combineCodes(featureCode, actionCode)\n\t\t\tthis.initiatingAction = combined\n\t\t}\n\n\t\tif (featureCode === 'node' || featureCode === 'upgrade') {\n\t\t\tconst settings = this.Service('eventSettings')\n\t\t\tsettings.clearListenerCache()\n\t\t}\n\n\t\tconst isInstalled = await this.features.isInstalled('event')\n\t\tconst isRemoteRelevant =\n\t\t\tisInstalled &&\n\t\t\t(featureCode === 'event' ||\n\t\t\t\tfeatureCode === 'eventContract' ||\n\t\t\t\tactionCode === 'login') &&\n\t\t\tactionCode !== 'setRemote'\n\n\t\tif (isRemoteRelevant) {\n\t\t\tconst remoteResults = await this.appendRemoteToResultsOrPrompt()\n\t\t\tresults = actionUtil.mergeActionResults(results, remoteResults)\n\t\t}\n\n\t\treturn results\n\t}\n\n\tprivate async syncListenersAndMixinResults(results: FeatureActionResponse) {\n\t\tconst syncResults = await this.Action('event', 'sync.listeners').execute({})\n\t\tresults = actionUtil.mergeActionResults(results, syncResults)\n\t\treturn results\n\t}\n\n\tprivate async handleDidExecute(payload: {\n\t\tfeatureCode: string\n\t\tactionCode: string\n\t}) {\n\t\tconst { featureCode, actionCode } = payload\n\t\tconst isInstalled = await this.features.isInstalled('event')\n\n\t\tlet results = {}\n\n\t\tconst isUpgrade =\n\t\t\tisInstalled && featureCode === 'node' && actionCode === 'upgrade'\n\n\t\tif (isUpgrade) {\n\t\t\tresults = await this.Action('event', 'sync').execute({})\n\t\t\tresults = await this.syncListenersAndMixinResults(results)\n\t\t}\n\n\t\tif (this.initiatingAction === this.combineCodes(featureCode, actionCode)) {\n\t\t\tEventStore.clearCache()\n\t\t}\n\n\t\treturn results\n\t}\n\n\tprivate combineCodes(featureCode: string, actionCode: string) {\n\t\treturn `${featureCode}.${actionCode}`\n\t}\n\n\tprivate async appendRemoteToResultsOrPrompt(): Promise<FeatureActionResponse> {\n\t\tconst remote = this.Service('remote')\n\t\tconst r = remote.getRemote()\n\n\t\tif (!r) {\n\t\t\tif (!TerminalInterface.doesSupportColor()) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Dang! I couldn't find env.HOST. Once that is set, lets try again!`\n\t\t\t\t)\n\t\t\t}\n\n\t\t\tthis.ui.stopLoading()\n\t\t\tthis.ui.renderLine(\n\t\t\t\t`Uh oh! It looks like you haven't configured your remote! We gotta do that.`\n\t\t\t)\n\n\t\t\tconst results = await this.Action('event', 'setRemote').execute({})\n\n\t\t\treturn results\n\t\t} else {\n\t\t\treturn {\n\t\t\t\tsummaryLines: [`Remote: ${r}`, `Host: ${remote.getHost()}`],\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate async handleDidFetchSchemas(payload: { schemas?: Schema[] | null }) {\n\t\tconst isInstalled = await this.features.isInstalled(this.code)\n\n\t\tconst lastSync = this.Service('eventSettings').getLastSyncOptions()\n\n\t\tif (lastSync && isInstalled) {\n\t\t\tconst writer = this.getEventContractBuilder()\n\n\t\t\tconst uniqueSchemas = await writer.fetchContractsAndGenerateUniqueSchemas(\n\t\t\t\tpayload.schemas ?? [],\n\t\t\t\tlastSync.shouldSyncOnlyCoreEvents\n\t\t\t)\n\n\t\t\treturn {\n\t\t\t\tschemas: uniqueSchemas.schemas ?? [],\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tschemas: [],\n\t\t}\n\t}\n\n\tpublic getEventContractBuilder() {\n\t\tif (!this.contractBuilder) {\n\t\t\tthis.contractBuilder = new EventContractBuilder({\n\t\t\t\tcwd: this.cwd,\n\t\t\t\toptionsSchema: syncEventActionSchema,\n\t\t\t\tui: this.ui,\n\t\t\t\teventGenerator: this.Writer('event'),\n\t\t\t\teventStore: this.Store('event'),\n\t\t\t\tskillStore: this.Store('skill'),\n\t\t\t\tdependencyService: this.Service('dependency'),\n\t\t\t})\n\t\t}\n\n\t\treturn this.contractBuilder\n\t}\n\n\tpublic hasBeenSynced() {\n\t\tif (diskUtil.doesHashSprucePathExist(this.cwd)) {\n\t\t\tconst writer = this.Writer('event')\n\t\t\treturn writer.hasCombinedContractBeenWritten(this.cwd)\n\t\t}\n\n\t\treturn false\n\t}\n}\n\ndeclare module '../../features/features.types' {\n\tinterface FeatureMap {\n\t\tevent: EventFeature\n\t}\n\n\tinterface FeatureOptionsMap {\n\t\tevent: undefined\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateAction.js","names":["optionsSchema","buildSchema","id","description","fields","nameReadable","namedTemplateItemSchema","isRequired","nameKebab","label","hint","nameCamel","isGlobal","type","version","isPrivate","syncEventActionSchema","CreateAction","options","validateAndNormalizeOptions","Store","loadCurrentSkill","skill","slug","errors","SpruceError","code","destinationDir","diskUtil","resolvePath","cwd","resolveVersion","resolvedVersion","Writer","writeEvent","files","syncOptions","normalizeSchemaValues","shouldIncludePrivateFields","Action","execute","syncResponse","fqen","eventNameUtil","join","eventName","eventNamespace","actionUtil","mergeActionResults","meta","AbstractAction"],"sources":["../../../../src/features/event/actions/CreateAction.ts"],"sourcesContent":["import {\n\tbuildSchema,\n\tnormalizeSchemaValues,\n\tSchemaValues,\n} from '@sprucelabs/schema'\nimport { eventNameUtil } from '@sprucelabs/spruce-event-utils'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport namedTemplateItemSchema from '#spruce/schemas/spruceCli/v2020_07_22/namedTemplateItem.schema'\nimport syncEventActionSchema from '#spruce/schemas/spruceCli/v2020_07_22/syncEventOptions.schema'\nimport SpruceError from '../../../errors/SpruceError'\nimport actionUtil from '../../../utilities/action.utility'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\n\nconst optionsSchema = buildSchema({\n\tid: 'createEventAction',\n\tdescription:\n\t\t\"Create a new event and I'll register it with Mercury when you boot the skill!\",\n\tfields: {\n\t\tnameReadable: {\n\t\t\t...namedTemplateItemSchema.fields.nameReadable,\n\t\t\tisRequired: true,\n\t\t},\n\t\tnameKebab: {\n\t\t\t...namedTemplateItemSchema.fields.nameKebab,\n\t\t\tlabel: 'Event name',\n\t\t\thint: `kebab-case`,\n\t\t\tisRequired: true,\n\t\t},\n\t\tnameCamel: {\n\t\t\t...namedTemplateItemSchema.fields.nameCamel,\n\t\t\tisRequired: true,\n\t\t},\n\t\tisGlobal: {\n\t\t\ttype: 'boolean',\n\t\t\tlabel: 'Is this a global event?',\n\t\t\thint: \"This will allow skills to listen without being installed at the same organization. You'll need permission to make this happen.\",\n\t\t},\n\t\tversion: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Version',\n\t\t\tisPrivate: true,\n\t\t},\n\t\t...syncEventActionSchema.fields,\n\t},\n})\n\ntype OptionsSchema = typeof optionsSchema\n\nexport default class CreateAction extends AbstractAction<OptionsSchema> {\n\tpublic optionsSchema: OptionsSchema = optionsSchema\n\tpublic invocationMessage = 'Creating a new event signature... 🜒'\n\n\tpublic async execute(\n\t\toptions: SchemaValues<OptionsSchema>\n\t): Promise<FeatureActionResponse> {\n\t\tlet { nameKebab, nameReadable, nameCamel, version, isGlobal } =\n\t\t\tthis.validateAndNormalizeOptions(options)\n\n\t\tconst skill = await this.Store('skill').loadCurrentSkill()\n\n\t\tif (!skill.id || !skill.slug) {\n\t\t\treturn {\n\t\t\t\terrors: [new SpruceError({ code: 'SKILL_NOT_REGISTERED' })],\n\t\t\t}\n\t\t}\n\n\t\ttry {\n\t\t\tconst destinationDir = diskUtil.resolvePath(this.cwd, 'src', 'events')\n\t\t\tconst resolvedVersion = await this.resolveVersion(\n\t\t\t\tversion,\n\t\t\t\tdiskUtil.resolvePath(destinationDir, '**', '*')\n\t\t\t)\n\n\t\t\tconst files = await this.Writer('event').writeEvent(destinationDir, {\n\t\t\t\tnameKebab,\n\t\t\t\tnameCamel,\n\t\t\t\tversion: resolvedVersion,\n\t\t\t\tnameReadable,\n\t\t\t\tisGlobal,\n\t\t\t})\n\n\t\t\tconst syncOptions = normalizeSchemaValues(\n\t\t\t\tsyncEventActionSchema,\n\t\t\t\toptions,\n\t\t\t\t{\n\t\t\t\t\tshouldIncludePrivateFields: true,\n\t\t\t\t}\n\t\t\t)\n\n\t\t\tconst syncResponse = await this.Action('event', 'sync').execute(\n\t\t\t\tsyncOptions\n\t\t\t)\n\n\t\t\tconst fqen = eventNameUtil.join({\n\t\t\t\teventName: nameKebab,\n\t\t\t\teventNamespace: skill.slug,\n\t\t\t\tversion: resolvedVersion,\n\t\t\t})\n\n\t\t\treturn actionUtil.mergeActionResults(\n\t\t\t\t{ files, meta: { fqen } },\n\t\t\t\tsyncResponse\n\t\t\t)\n\t\t} catch (err) {\n\t\t\treturn {\n\t\t\t\terrors: [err],\n\t\t\t}\n\t\t}\n\t}\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CreateAction.js","names":["optionsSchema","buildSchema","id","description","fields","nameReadable","namedTemplateItemSchema","isRequired","nameKebab","label","hint","nameCamel","isGlobal","type","version","isPrivate","syncEventActionSchema","CreateAction","options","validateAndNormalizeOptions","Store","loadCurrentSkill","skill","slug","errors","SpruceError","code","destinationDir","diskUtil","resolvePath","cwd","resolveVersion","resolvedVersion","Writer","writeEvent","files","syncOptions","normalizeSchemaValues","shouldIncludePrivateFields","Action","execute","syncResponse","fqen","eventNameUtil","join","eventName","eventNamespace","actionUtil","mergeActionResults","meta","AbstractAction"],"sources":["../../../../src/features/event/actions/CreateAction.ts"],"sourcesContent":["import {\n\tbuildSchema,\n\tnormalizeSchemaValues,\n\tSchemaValues,\n} from '@sprucelabs/schema'\nimport { eventNameUtil } from '@sprucelabs/spruce-event-utils'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport namedTemplateItemSchema from '#spruce/schemas/spruceCli/v2020_07_22/namedTemplateItem.schema'\nimport syncEventActionSchema from '#spruce/schemas/spruceCli/v2020_07_22/syncEventOptions.schema'\nimport SpruceError from '../../../errors/SpruceError'\nimport actionUtil from '../../../utilities/action.utility'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\n\nconst optionsSchema = buildSchema({\n\tid: 'createEventAction',\n\tdescription:\n\t\t\"Create a new event and I'll register it with Mercury when you boot the skill!\",\n\tfields: {\n\t\tnameReadable: {\n\t\t\t...namedTemplateItemSchema.fields.nameReadable,\n\t\t\tisRequired: true,\n\t\t},\n\t\tnameKebab: {\n\t\t\t...namedTemplateItemSchema.fields.nameKebab,\n\t\t\tlabel: 'Event name',\n\t\t\thint: `kebab-case`,\n\t\t\tisRequired: true,\n\t\t},\n\t\tnameCamel: {\n\t\t\t...namedTemplateItemSchema.fields.nameCamel,\n\t\t\tisRequired: true,\n\t\t},\n\t\tisGlobal: {\n\t\t\ttype: 'boolean',\n\t\t\tlabel: 'Is this a global event?',\n\t\t\thint: \"This will allow skills to listen without being installed at the same organization. You'll need permission to make this happen.\",\n\t\t},\n\t\tversion: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Version',\n\t\t\tisPrivate: true,\n\t\t},\n\t\t...syncEventActionSchema.fields,\n\t},\n})\n\ntype OptionsSchema = typeof optionsSchema\n\nexport default class CreateAction extends AbstractAction<OptionsSchema> {\n\tpublic optionsSchema: OptionsSchema = optionsSchema\n\tpublic invocationMessage = 'Creating a new event signature... 🜒'\n\n\tpublic async execute(\n\t\toptions: SchemaValues<OptionsSchema>\n\t): Promise<FeatureActionResponse> {\n\t\tlet { nameKebab, nameReadable, nameCamel, version, isGlobal } =\n\t\t\tthis.validateAndNormalizeOptions(options)\n\n\t\tconst skill = await this.Store('skill').loadCurrentSkill()\n\n\t\tif (!skill.id || !skill.slug) {\n\t\t\treturn {\n\t\t\t\terrors: [new SpruceError({ code: 'SKILL_NOT_REGISTERED' })],\n\t\t\t}\n\t\t}\n\n\t\ttry {\n\t\t\tconst destinationDir = diskUtil.resolvePath(this.cwd, 'src', 'events')\n\t\t\tconst resolvedVersion = await this.resolveVersion(\n\t\t\t\tversion,\n\t\t\t\tdiskUtil.resolvePath(destinationDir, '**', '*')\n\t\t\t)\n\n\t\t\tconst files = await this.Writer('event').writeEvent(destinationDir, {\n\t\t\t\tnameKebab,\n\t\t\t\tnameCamel,\n\t\t\t\tversion: resolvedVersion,\n\t\t\t\tnameReadable,\n\t\t\t\tisGlobal,\n\t\t\t})\n\n\t\t\tconst syncOptions = normalizeSchemaValues(\n\t\t\t\tsyncEventActionSchema,\n\t\t\t\toptions,\n\t\t\t\t{\n\t\t\t\t\tshouldIncludePrivateFields: true,\n\t\t\t\t}\n\t\t\t)\n\n\t\t\tconst syncResponse = await this.Action('event', 'sync').execute(\n\t\t\t\tsyncOptions\n\t\t\t)\n\n\t\t\tconst fqen = eventNameUtil.join({\n\t\t\t\teventName: nameKebab,\n\t\t\t\teventNamespace: skill.slug,\n\t\t\t\tversion: resolvedVersion,\n\t\t\t})\n\n\t\t\treturn actionUtil.mergeActionResults(\n\t\t\t\t{ files, meta: { fqen } },\n\t\t\t\tsyncResponse\n\t\t\t)\n\t\t} catch (err: any) {\n\t\t\treturn {\n\t\t\t\terrors: [err],\n\t\t\t}\n\t\t}\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListenAction.js","names":["SKILL_EVENT_NAMESPACE","CORE_EVENT_NAMESPACE","MERCURY_API_NAMESPACE","ListenAction","eventListenActionSchema","options","normalizedOptions","validateAndNormalizeOptions","response","listenerDestinationDir","versionOptions","version","eventName","namespace","schemaTypesLookupDir","ui","startLoading","fetchEventContracts","contracts","stopLoading","collectNamespace","mapContractsToSelectChoices","eventChoicesByNamespace","SchemaError","code","friendlyMessage","Object","keys","join","parameters","collectEvent","isCoreEvent","undefined","fqen","eventNameUtil","eventNamespace","split","assertIsValidChoice","resolvedDestination","diskUtil","resolvePath","cwd","resolveVersion","resolvedVersion","isSkillEvent","builder","EventTemplateItemBuilder","templateItems","buildEventTemplateItemForName","emitPayloadSchemaTemplateItem","responsePayloadSchemaTemplateItem","writeListener","files","syncListeners","syncResults","actionUtil","mergeActionResults","syncEvents","errors","eventStore","Store","loadCurrentSkill","skill","namespacesForFetch","getDependencyNamespaces","didUpdateHandler","msg","slug","localNamespace","length","namespaces","Service","get","map","d","syncOptions","normalizeSchemaValues","syncEventActionSchema","Action","execute","resolvedSchemaTypesLookupDir","writer","Writer","fullyQualifiedEventName","isValidEvent","find","e","value","i","eventChoices","prompt","type","label","isRequired","choices","namespaceChoices","forEach","contract","namedSignatures","eventContractUtil","getNamedEventSignatures","namedSig","o","push","namesUtil","toPascal","AbstractAction"],"sources":["../../../../src/features/event/actions/ListenAction.ts"],"sourcesContent":["import { EventContract } from '@sprucelabs/mercury-types'\nimport {\n\tnormalizeSchemaValues,\n\tSchemaError,\n\tSchemaTemplateItem,\n\tSelectChoice,\n} from '@sprucelabs/schema'\nimport {\n\teventContractUtil,\n\teventNameUtil,\n} from '@sprucelabs/spruce-event-utils'\nimport {\n\tdiskUtil,\n\tnamesUtil,\n\tMERCURY_API_NAMESPACE,\n} from '@sprucelabs/spruce-skill-utils'\nimport { SpruceSchemas } from '#spruce/schemas/schemas.types'\nimport eventListenActionSchema from '#spruce/schemas/spruceCli/v2020_07_22/listenEventOptions.schema'\nimport syncEventActionSchema from '#spruce/schemas/spruceCli/v2020_07_22/syncEventOptions.schema'\nimport EventTemplateItemBuilder from '../../../templateItemBuilders/EventTemplateItemBuilder'\nimport actionUtil from '../../../utilities/action.utility'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\nimport { FetchContractsOptions } from '../stores/EventStore'\n\nconst SKILL_EVENT_NAMESPACE = 'skill'\nexport const CORE_EVENT_NAMESPACE = MERCURY_API_NAMESPACE\n\ntype OptionsSchema =\n\tSpruceSchemas.SpruceCli.v2020_07_22.ListenEventOptionsSchema\nexport default class ListenAction extends AbstractAction<OptionsSchema> {\n\tpublic optionsSchema: OptionsSchema = eventListenActionSchema\n\tpublic invocationMessage = 'Creating event listener... 🜒'\n\tpublic commandAliases = ['listen.event', 'create.listener']\n\n\tpublic async execute(\n\t\toptions: SpruceSchemas.SpruceCli.v2020_07_22.ListenEventOptions\n\t): Promise<FeatureActionResponse> {\n\t\tconst normalizedOptions = this.validateAndNormalizeOptions(options)\n\n\t\ttry {\n\t\t\tlet response: FeatureActionResponse = {}\n\n\t\t\tlet {\n\t\t\t\tlistenerDestinationDir,\n\t\t\t\tversion: versionOptions,\n\t\t\t\teventName,\n\t\t\t\tnamespace,\n\t\t\t\tschemaTypesLookupDir,\n\t\t\t} = normalizedOptions\n\n\t\t\tthis.ui.startLoading('Loading event contracts...')\n\n\t\t\tconst contracts = await this.fetchEventContracts(namespace)\n\n\t\t\tthis.ui.stopLoading()\n\n\t\t\tif (!namespace) {\n\t\t\t\tnamespace = await this.collectNamespace(contracts)\n\t\t\t}\n\n\t\t\tconst { eventChoicesByNamespace } =\n\t\t\t\tthis.mapContractsToSelectChoices(contracts)\n\n\t\t\tif (!eventChoicesByNamespace[namespace]) {\n\t\t\t\tthrow new SchemaError({\n\t\t\t\t\tcode: 'INVALID_PARAMETERS',\n\t\t\t\t\tfriendlyMessage: `${namespace} is not a valid event namespace. Try: \\n\\n${Object.keys(\n\t\t\t\t\t\teventChoicesByNamespace\n\t\t\t\t\t).join('\\n')}`,\n\t\t\t\t\tparameters: ['namespace'],\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tif (!eventName) {\n\t\t\t\teventName = await this.collectEvent(contracts, namespace)\n\t\t\t}\n\n\t\t\tconst isCoreEvent = namespace === CORE_EVENT_NAMESPACE\n\t\t\tif (isCoreEvent) {\n\t\t\t\tnamespace = undefined\n\t\t\t}\n\n\t\t\tconst fqen = eventNameUtil.join({\n\t\t\t\teventName,\n\t\t\t\teventNamespace: namespace,\n\t\t\t\tversion: versionOptions,\n\t\t\t})\n\n\t\t\tlet { version } = eventNameUtil.split(fqen)\n\n\t\t\tthis.assertIsValidChoice(\n\t\t\t\teventChoicesByNamespace,\n\t\t\t\tnamespace ?? 'mercury',\n\t\t\t\teventName,\n\t\t\t\tfqen\n\t\t\t)\n\n\t\t\tconst resolvedDestination = diskUtil.resolvePath(\n\t\t\t\tthis.cwd,\n\t\t\t\tlistenerDestinationDir\n\t\t\t)\n\n\t\t\tconst resolvedVersion = await this.resolveVersion(\n\t\t\t\tversion,\n\t\t\t\tresolvedDestination\n\t\t\t)\n\n\t\t\tconst isSkillEvent = namespace !== SKILL_EVENT_NAMESPACE\n\n\t\t\tlet emitPayloadSchemaTemplateItem: SchemaTemplateItem | undefined\n\t\t\tlet responsePayloadSchemaTemplateItem: SchemaTemplateItem | undefined\n\n\t\t\tif (isSkillEvent) {\n\t\t\t\tconst builder = new EventTemplateItemBuilder()\n\t\t\t\tconst templateItems = builder.buildEventTemplateItemForName(\n\t\t\t\t\tcontracts,\n\t\t\t\t\teventNameUtil.join({\n\t\t\t\t\t\teventNamespace: !isCoreEvent ? namespace : undefined,\n\t\t\t\t\t\teventName,\n\t\t\t\t\t\tversion: resolvedVersion,\n\t\t\t\t\t})\n\t\t\t\t)\n\n\t\t\t\temitPayloadSchemaTemplateItem =\n\t\t\t\t\ttemplateItems.emitPayloadSchemaTemplateItem\n\t\t\t\tresponsePayloadSchemaTemplateItem =\n\t\t\t\t\ttemplateItems.responsePayloadSchemaTemplateItem\n\t\t\t}\n\n\t\t\tresponse.files = await this.writeListener({\n\t\t\t\tschemaTypesLookupDir,\n\t\t\t\tresolvedDestination,\n\t\t\t\tversion: resolvedVersion,\n\t\t\t\teventName,\n\t\t\t\tnamespace,\n\t\t\t\temitPayloadSchemaTemplateItem,\n\t\t\t\tresponsePayloadSchemaTemplateItem,\n\t\t\t})\n\n\t\t\tconst syncResults = await this.syncListeners()\n\n\t\t\tresponse = actionUtil.mergeActionResults(syncResults, response)\n\n\t\t\tif (isSkillEvent) {\n\t\t\t\tconst syncResults = await this.syncEvents(options)\n\t\t\t\tresponse = actionUtil.mergeActionResults(syncResults, response)\n\t\t\t}\n\n\t\t\treturn response\n\t\t} catch (err) {\n\t\t\treturn {\n\t\t\t\terrors: [err],\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate async fetchEventContracts(namespace?: string) {\n\t\tconst eventStore = this.Store('event')\n\n\t\tconst skill = await this.Store('skill').loadCurrentSkill()\n\n\t\tconst namespacesForFetch =\n\t\t\tnamespace &&\n\t\t\tnamespace !== SKILL_EVENT_NAMESPACE &&\n\t\t\tnamespace !== CORE_EVENT_NAMESPACE\n\t\t\t\t? [namespace]\n\t\t\t\t: [...this.getDependencyNamespaces(), 'mercury']\n\n\t\tconst options: FetchContractsOptions = {\n\t\t\tdidUpdateHandler: (msg: string) => this.ui.startLoading(msg),\n\t\t}\n\n\t\tif (skill.slug) {\n\t\t\toptions.localNamespace = skill.slug\n\t\t}\n\n\t\tif (namespacesForFetch.length > 0) {\n\t\t\toptions.namespaces = namespacesForFetch\n\t\t}\n\n\t\tconst { contracts } = await eventStore.fetchEventContracts(options)\n\n\t\treturn contracts\n\t}\n\n\tprivate getDependencyNamespaces() {\n\t\treturn this.Service('dependency')\n\t\t\t.get()\n\t\t\t.map((d) => d.namespace)\n\t}\n\n\tprivate async syncEvents(\n\t\toptions: SpruceSchemas.SpruceCli.v2020_07_22.ListenEventOptions\n\t) {\n\t\tconst syncOptions = normalizeSchemaValues(syncEventActionSchema, options)\n\n\t\tconst syncResults = await this.Action('event', 'sync').execute(syncOptions)\n\t\treturn syncResults\n\t}\n\n\tprivate async writeListener(options: {\n\t\tresolvedDestination: string\n\t\tschemaTypesLookupDir: string\n\t\tnamespace?: string | undefined\n\t\teventName: string\n\t\temitPayloadSchemaTemplateItem: SchemaTemplateItem | undefined\n\t\tversion: string\n\t\tresponsePayloadSchemaTemplateItem: SchemaTemplateItem | undefined\n\t}) {\n\t\tconst {\n\t\t\tresolvedDestination,\n\t\t\tschemaTypesLookupDir,\n\t\t\tnamespace,\n\t\t\teventName,\n\t\t\tversion,\n\t\t} = options\n\n\t\tconst resolvedSchemaTypesLookupDir = diskUtil.resolvePath(\n\t\t\tthis.cwd,\n\t\t\tschemaTypesLookupDir\n\t\t)\n\t\tconst writer = this.Writer('event')\n\t\tconst files = await writer.writeListener(resolvedDestination, {\n\t\t\t...options,\n\t\t\tfullyQualifiedEventName: eventNameUtil.join({\n\t\t\t\teventName,\n\t\t\t\teventNamespace: namespace,\n\t\t\t\tversion,\n\t\t\t}),\n\t\t\tschemaTypesLookupDir: resolvedSchemaTypesLookupDir,\n\t\t})\n\n\t\treturn files\n\t}\n\n\tprivate assertIsValidChoice(\n\t\teventChoicesByNamespace: Record<string, SelectChoice[]>,\n\t\tnamespace: string,\n\t\teventName: string | undefined,\n\t\tfqen: string\n\t) {\n\t\tconst isValidEvent = !!eventChoicesByNamespace[namespace].find(\n\t\t\t(e) => e.value === eventName || e.value === fqen\n\t\t)\n\n\t\tif (!isValidEvent) {\n\t\t\tthrow new SchemaError({\n\t\t\t\tcode: 'INVALID_PARAMETERS',\n\t\t\t\tfriendlyMessage: `${eventName} is not a valid event . Try: \\n\\n${eventChoicesByNamespace[\n\t\t\t\t\tnamespace\n\t\t\t\t]\n\t\t\t\t\t.map((i) => i.value)\n\t\t\t\t\t.join('\\n')}`,\n\t\t\t\tparameters: ['eventName'],\n\t\t\t})\n\t\t}\n\t}\n\n\tprivate async syncListeners() {\n\t\treturn this.Action('event', 'sync.listeners').execute({})\n\t}\n\n\tprivate async collectEvent(\n\t\tcontracts: EventContract[],\n\t\tnamespace: string\n\t): Promise<string> {\n\t\tconst eventChoices: SelectChoice[] =\n\t\t\tthis.mapContractsToSelectChoices(contracts).eventChoicesByNamespace[\n\t\t\t\tnamespace\n\t\t\t]\n\n\t\tconst eventName = await this.ui.prompt({\n\t\t\ttype: 'select',\n\t\t\tlabel: 'Select an event',\n\t\t\tisRequired: true,\n\t\t\toptions: {\n\t\t\t\tchoices: eventChoices,\n\t\t\t},\n\t\t})\n\n\t\treturn eventName\n\t}\n\n\tprivate async collectNamespace(contracts: EventContract[]): Promise<string> {\n\t\tconst { namespaceChoices } = this.mapContractsToSelectChoices(contracts)\n\n\t\tconst namespace = await this.ui.prompt({\n\t\t\ttype: 'select',\n\t\t\tlabel: 'Select an event namespace',\n\t\t\tisRequired: true,\n\t\t\toptions: {\n\t\t\t\tchoices: namespaceChoices,\n\t\t\t},\n\t\t})\n\n\t\treturn namespace\n\t}\n\n\tprivate mapContractsToSelectChoices(contracts: EventContract[]) {\n\t\tconst namespaceChoices: SelectChoice[] = [\n\t\t\t{\n\t\t\t\tlabel: 'Skill',\n\t\t\t\tvalue: SKILL_EVENT_NAMESPACE,\n\t\t\t},\n\t\t]\n\n\t\tconst eventChoicesByNamespace: Record<string, SelectChoice[]> = {\n\t\t\tskill: [\n\t\t\t\t{\n\t\t\t\t\tlabel: 'will-boot',\n\t\t\t\t\tvalue: 'will-boot',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'did-boot',\n\t\t\t\t\tvalue: 'did-boot',\n\t\t\t\t},\n\t\t\t],\n\t\t}\n\n\t\tcontracts.forEach((contract) => {\n\t\t\tconst namedSignatures =\n\t\t\t\teventContractUtil.getNamedEventSignatures(contract)\n\n\t\t\tfor (const namedSig of namedSignatures) {\n\t\t\t\tconst namespace = namedSig.eventNamespace ?? MERCURY_API_NAMESPACE\n\n\t\t\t\tif (!namespaceChoices.find((o) => o.value === namespace)) {\n\t\t\t\t\tnamespaceChoices.push({\n\t\t\t\t\t\tlabel: namesUtil.toPascal(namespace),\n\t\t\t\t\t\tvalue: namespace,\n\t\t\t\t\t})\n\t\t\t\t}\n\n\t\t\t\tif (!eventChoicesByNamespace[namespace]) {\n\t\t\t\t\teventChoicesByNamespace[namespace] = []\n\t\t\t\t}\n\n\t\t\t\teventChoicesByNamespace[namespace].push({\n\t\t\t\t\tvalue: namedSig.fullyQualifiedEventName,\n\t\t\t\t\tlabel: namedSig.fullyQualifiedEventName,\n\t\t\t\t})\n\t\t\t}\n\t\t})\n\n\t\treturn { eventChoicesByNamespace, namespaceChoices }\n\t}\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ListenAction.js","names":["SKILL_EVENT_NAMESPACE","CORE_EVENT_NAMESPACE","MERCURY_API_NAMESPACE","ListenAction","eventListenActionSchema","options","normalizedOptions","validateAndNormalizeOptions","response","listenerDestinationDir","versionOptions","version","eventName","namespace","schemaTypesLookupDir","ui","startLoading","fetchEventContracts","contracts","stopLoading","collectNamespace","mapContractsToSelectChoices","eventChoicesByNamespace","SchemaError","code","friendlyMessage","Object","keys","join","parameters","collectEvent","isCoreEvent","undefined","fqen","eventNameUtil","eventNamespace","split","assertIsValidChoice","resolvedDestination","diskUtil","resolvePath","cwd","resolveVersion","resolvedVersion","isSkillEvent","builder","EventTemplateItemBuilder","templateItems","buildEventTemplateItemForName","emitPayloadSchemaTemplateItem","responsePayloadSchemaTemplateItem","writeListener","files","syncListeners","syncResults","actionUtil","mergeActionResults","syncEvents","errors","eventStore","Store","loadCurrentSkill","skill","namespacesForFetch","getDependencyNamespaces","didUpdateHandler","msg","slug","localNamespace","length","namespaces","Service","get","map","d","syncOptions","normalizeSchemaValues","syncEventActionSchema","Action","execute","resolvedSchemaTypesLookupDir","writer","Writer","fullyQualifiedEventName","isValidEvent","find","e","value","i","eventChoices","prompt","type","label","isRequired","choices","namespaceChoices","forEach","contract","namedSignatures","eventContractUtil","getNamedEventSignatures","namedSig","o","push","namesUtil","toPascal","AbstractAction"],"sources":["../../../../src/features/event/actions/ListenAction.ts"],"sourcesContent":["import { EventContract } from '@sprucelabs/mercury-types'\nimport {\n\tnormalizeSchemaValues,\n\tSchemaError,\n\tSchemaTemplateItem,\n\tSelectChoice,\n} from '@sprucelabs/schema'\nimport {\n\teventContractUtil,\n\teventNameUtil,\n} from '@sprucelabs/spruce-event-utils'\nimport {\n\tdiskUtil,\n\tnamesUtil,\n\tMERCURY_API_NAMESPACE,\n} from '@sprucelabs/spruce-skill-utils'\nimport { SpruceSchemas } from '#spruce/schemas/schemas.types'\nimport eventListenActionSchema from '#spruce/schemas/spruceCli/v2020_07_22/listenEventOptions.schema'\nimport syncEventActionSchema from '#spruce/schemas/spruceCli/v2020_07_22/syncEventOptions.schema'\nimport EventTemplateItemBuilder from '../../../templateItemBuilders/EventTemplateItemBuilder'\nimport actionUtil from '../../../utilities/action.utility'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\nimport { FetchContractsOptions } from '../stores/EventStore'\n\nconst SKILL_EVENT_NAMESPACE = 'skill'\nexport const CORE_EVENT_NAMESPACE = MERCURY_API_NAMESPACE\n\ntype OptionsSchema =\n\tSpruceSchemas.SpruceCli.v2020_07_22.ListenEventOptionsSchema\nexport default class ListenAction extends AbstractAction<OptionsSchema> {\n\tpublic optionsSchema: OptionsSchema = eventListenActionSchema\n\tpublic invocationMessage = 'Creating event listener... 🜒'\n\tpublic commandAliases = ['listen.event', 'create.listener']\n\n\tpublic async execute(\n\t\toptions: SpruceSchemas.SpruceCli.v2020_07_22.ListenEventOptions\n\t): Promise<FeatureActionResponse> {\n\t\tconst normalizedOptions = this.validateAndNormalizeOptions(options)\n\n\t\ttry {\n\t\t\tlet response: FeatureActionResponse = {}\n\n\t\t\tlet {\n\t\t\t\tlistenerDestinationDir,\n\t\t\t\tversion: versionOptions,\n\t\t\t\teventName,\n\t\t\t\tnamespace,\n\t\t\t\tschemaTypesLookupDir,\n\t\t\t} = normalizedOptions\n\n\t\t\tthis.ui.startLoading('Loading event contracts...')\n\n\t\t\tconst contracts = await this.fetchEventContracts(namespace)\n\n\t\t\tthis.ui.stopLoading()\n\n\t\t\tif (!namespace) {\n\t\t\t\tnamespace = await this.collectNamespace(contracts)\n\t\t\t}\n\n\t\t\tconst { eventChoicesByNamespace } =\n\t\t\t\tthis.mapContractsToSelectChoices(contracts)\n\n\t\t\tif (!eventChoicesByNamespace[namespace]) {\n\t\t\t\tthrow new SchemaError({\n\t\t\t\t\tcode: 'INVALID_PARAMETERS',\n\t\t\t\t\tfriendlyMessage: `${namespace} is not a valid event namespace. Try: \\n\\n${Object.keys(\n\t\t\t\t\t\teventChoicesByNamespace\n\t\t\t\t\t).join('\\n')}`,\n\t\t\t\t\tparameters: ['namespace'],\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tif (!eventName) {\n\t\t\t\teventName = await this.collectEvent(contracts, namespace)\n\t\t\t}\n\n\t\t\tconst isCoreEvent = namespace === CORE_EVENT_NAMESPACE\n\t\t\tif (isCoreEvent) {\n\t\t\t\tnamespace = undefined\n\t\t\t}\n\n\t\t\tconst fqen = eventNameUtil.join({\n\t\t\t\teventName,\n\t\t\t\teventNamespace: namespace,\n\t\t\t\tversion: versionOptions,\n\t\t\t})\n\n\t\t\tlet { version } = eventNameUtil.split(fqen)\n\n\t\t\tthis.assertIsValidChoice(\n\t\t\t\teventChoicesByNamespace,\n\t\t\t\tnamespace ?? 'mercury',\n\t\t\t\teventName,\n\t\t\t\tfqen\n\t\t\t)\n\n\t\t\tconst resolvedDestination = diskUtil.resolvePath(\n\t\t\t\tthis.cwd,\n\t\t\t\tlistenerDestinationDir\n\t\t\t)\n\n\t\t\tconst resolvedVersion = await this.resolveVersion(\n\t\t\t\tversion,\n\t\t\t\tresolvedDestination\n\t\t\t)\n\n\t\t\tconst isSkillEvent = namespace !== SKILL_EVENT_NAMESPACE\n\n\t\t\tlet emitPayloadSchemaTemplateItem: SchemaTemplateItem | undefined\n\t\t\tlet responsePayloadSchemaTemplateItem: SchemaTemplateItem | undefined\n\n\t\t\tif (isSkillEvent) {\n\t\t\t\tconst builder = new EventTemplateItemBuilder()\n\t\t\t\tconst templateItems = builder.buildEventTemplateItemForName(\n\t\t\t\t\tcontracts,\n\t\t\t\t\teventNameUtil.join({\n\t\t\t\t\t\teventNamespace: !isCoreEvent ? namespace : undefined,\n\t\t\t\t\t\teventName,\n\t\t\t\t\t\tversion: resolvedVersion,\n\t\t\t\t\t})\n\t\t\t\t)\n\n\t\t\t\temitPayloadSchemaTemplateItem =\n\t\t\t\t\ttemplateItems.emitPayloadSchemaTemplateItem\n\t\t\t\tresponsePayloadSchemaTemplateItem =\n\t\t\t\t\ttemplateItems.responsePayloadSchemaTemplateItem\n\t\t\t}\n\n\t\t\tresponse.files = await this.writeListener({\n\t\t\t\tschemaTypesLookupDir,\n\t\t\t\tresolvedDestination,\n\t\t\t\tversion: resolvedVersion,\n\t\t\t\teventName,\n\t\t\t\tnamespace,\n\t\t\t\temitPayloadSchemaTemplateItem,\n\t\t\t\tresponsePayloadSchemaTemplateItem,\n\t\t\t})\n\n\t\t\tconst syncResults = await this.syncListeners()\n\n\t\t\tresponse = actionUtil.mergeActionResults(syncResults, response)\n\n\t\t\tif (isSkillEvent) {\n\t\t\t\tconst syncResults = await this.syncEvents(options)\n\t\t\t\tresponse = actionUtil.mergeActionResults(syncResults, response)\n\t\t\t}\n\n\t\t\treturn response\n\t\t} catch (err: any) {\n\t\t\treturn {\n\t\t\t\terrors: [err],\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate async fetchEventContracts(namespace?: string) {\n\t\tconst eventStore = this.Store('event')\n\n\t\tconst skill = await this.Store('skill').loadCurrentSkill()\n\n\t\tconst namespacesForFetch =\n\t\t\tnamespace &&\n\t\t\tnamespace !== SKILL_EVENT_NAMESPACE &&\n\t\t\tnamespace !== CORE_EVENT_NAMESPACE\n\t\t\t\t? [namespace]\n\t\t\t\t: [...this.getDependencyNamespaces(), 'mercury']\n\n\t\tconst options: FetchContractsOptions = {\n\t\t\tdidUpdateHandler: (msg: string) => this.ui.startLoading(msg),\n\t\t}\n\n\t\tif (skill.slug) {\n\t\t\toptions.localNamespace = skill.slug\n\t\t}\n\n\t\tif (namespacesForFetch.length > 0) {\n\t\t\toptions.namespaces = namespacesForFetch\n\t\t}\n\n\t\tconst { contracts } = await eventStore.fetchEventContracts(options)\n\n\t\treturn contracts\n\t}\n\n\tprivate getDependencyNamespaces() {\n\t\treturn this.Service('dependency')\n\t\t\t.get()\n\t\t\t.map((d) => d.namespace)\n\t}\n\n\tprivate async syncEvents(\n\t\toptions: SpruceSchemas.SpruceCli.v2020_07_22.ListenEventOptions\n\t) {\n\t\tconst syncOptions = normalizeSchemaValues(syncEventActionSchema, options)\n\n\t\tconst syncResults = await this.Action('event', 'sync').execute(syncOptions)\n\t\treturn syncResults\n\t}\n\n\tprivate async writeListener(options: {\n\t\tresolvedDestination: string\n\t\tschemaTypesLookupDir: string\n\t\tnamespace?: string | undefined\n\t\teventName: string\n\t\temitPayloadSchemaTemplateItem: SchemaTemplateItem | undefined\n\t\tversion: string\n\t\tresponsePayloadSchemaTemplateItem: SchemaTemplateItem | undefined\n\t}) {\n\t\tconst {\n\t\t\tresolvedDestination,\n\t\t\tschemaTypesLookupDir,\n\t\t\tnamespace,\n\t\t\teventName,\n\t\t\tversion,\n\t\t} = options\n\n\t\tconst resolvedSchemaTypesLookupDir = diskUtil.resolvePath(\n\t\t\tthis.cwd,\n\t\t\tschemaTypesLookupDir\n\t\t)\n\t\tconst writer = this.Writer('event')\n\t\tconst files = await writer.writeListener(resolvedDestination, {\n\t\t\t...options,\n\t\t\tfullyQualifiedEventName: eventNameUtil.join({\n\t\t\t\teventName,\n\t\t\t\teventNamespace: namespace,\n\t\t\t\tversion,\n\t\t\t}),\n\t\t\tschemaTypesLookupDir: resolvedSchemaTypesLookupDir,\n\t\t})\n\n\t\treturn files\n\t}\n\n\tprivate assertIsValidChoice(\n\t\teventChoicesByNamespace: Record<string, SelectChoice[]>,\n\t\tnamespace: string,\n\t\teventName: string | undefined,\n\t\tfqen: string\n\t) {\n\t\tconst isValidEvent = !!eventChoicesByNamespace[namespace].find(\n\t\t\t(e) => e.value === eventName || e.value === fqen\n\t\t)\n\n\t\tif (!isValidEvent) {\n\t\t\tthrow new SchemaError({\n\t\t\t\tcode: 'INVALID_PARAMETERS',\n\t\t\t\tfriendlyMessage: `${eventName} is not a valid event . Try: \\n\\n${eventChoicesByNamespace[\n\t\t\t\t\tnamespace\n\t\t\t\t]\n\t\t\t\t\t.map((i) => i.value)\n\t\t\t\t\t.join('\\n')}`,\n\t\t\t\tparameters: ['eventName'],\n\t\t\t})\n\t\t}\n\t}\n\n\tprivate async syncListeners() {\n\t\treturn this.Action('event', 'sync.listeners').execute({})\n\t}\n\n\tprivate async collectEvent(\n\t\tcontracts: EventContract[],\n\t\tnamespace: string\n\t): Promise<string> {\n\t\tconst eventChoices: SelectChoice[] =\n\t\t\tthis.mapContractsToSelectChoices(contracts).eventChoicesByNamespace[\n\t\t\t\tnamespace\n\t\t\t]\n\n\t\tconst eventName = await this.ui.prompt({\n\t\t\ttype: 'select',\n\t\t\tlabel: 'Select an event',\n\t\t\tisRequired: true,\n\t\t\toptions: {\n\t\t\t\tchoices: eventChoices,\n\t\t\t},\n\t\t})\n\n\t\treturn eventName\n\t}\n\n\tprivate async collectNamespace(contracts: EventContract[]): Promise<string> {\n\t\tconst { namespaceChoices } = this.mapContractsToSelectChoices(contracts)\n\n\t\tconst namespace = await this.ui.prompt({\n\t\t\ttype: 'select',\n\t\t\tlabel: 'Select an event namespace',\n\t\t\tisRequired: true,\n\t\t\toptions: {\n\t\t\t\tchoices: namespaceChoices,\n\t\t\t},\n\t\t})\n\n\t\treturn namespace\n\t}\n\n\tprivate mapContractsToSelectChoices(contracts: EventContract[]) {\n\t\tconst namespaceChoices: SelectChoice[] = [\n\t\t\t{\n\t\t\t\tlabel: 'Skill',\n\t\t\t\tvalue: SKILL_EVENT_NAMESPACE,\n\t\t\t},\n\t\t]\n\n\t\tconst eventChoicesByNamespace: Record<string, SelectChoice[]> = {\n\t\t\tskill: [\n\t\t\t\t{\n\t\t\t\t\tlabel: 'will-boot',\n\t\t\t\t\tvalue: 'will-boot',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'did-boot',\n\t\t\t\t\tvalue: 'did-boot',\n\t\t\t\t},\n\t\t\t],\n\t\t}\n\n\t\tcontracts.forEach((contract) => {\n\t\t\tconst namedSignatures =\n\t\t\t\teventContractUtil.getNamedEventSignatures(contract)\n\n\t\t\tfor (const namedSig of namedSignatures) {\n\t\t\t\tconst namespace = namedSig.eventNamespace ?? MERCURY_API_NAMESPACE\n\n\t\t\t\tif (!namespaceChoices.find((o) => o.value === namespace)) {\n\t\t\t\t\tnamespaceChoices.push({\n\t\t\t\t\t\tlabel: namesUtil.toPascal(namespace),\n\t\t\t\t\t\tvalue: namespace,\n\t\t\t\t\t})\n\t\t\t\t}\n\n\t\t\t\tif (!eventChoicesByNamespace[namespace]) {\n\t\t\t\t\teventChoicesByNamespace[namespace] = []\n\t\t\t\t}\n\n\t\t\t\teventChoicesByNamespace[namespace].push({\n\t\t\t\t\tvalue: namedSig.fullyQualifiedEventName,\n\t\t\t\t\tlabel: namedSig.fullyQualifiedEventName,\n\t\t\t\t})\n\t\t\t}\n\t\t})\n\n\t\treturn { eventChoicesByNamespace, namespaceChoices }\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -2,15 +2,6 @@ import { EventContract, SpruceSchemas } from '@sprucelabs/mercury-types';
|
|
|
2
2
|
import SpruceError from '../../../errors/SpruceError';
|
|
3
3
|
import AbstractStore from '../../../stores/AbstractStore';
|
|
4
4
|
import { InternalUpdateHandler } from '../../../types/cli.types';
|
|
5
|
-
export interface EventStoreFetchEventContractsResponse {
|
|
6
|
-
errors: SpruceError[];
|
|
7
|
-
contracts: EventContract[];
|
|
8
|
-
}
|
|
9
|
-
export interface FetchContractsOptions {
|
|
10
|
-
localNamespace?: string;
|
|
11
|
-
namespaces?: string[];
|
|
12
|
-
didUpdateHandler?: InternalUpdateHandler;
|
|
13
|
-
}
|
|
14
5
|
export default class EventStore extends AbstractStore {
|
|
15
6
|
name: string;
|
|
16
7
|
protected static contractCache: Record<string, any>;
|
|
@@ -26,3 +17,12 @@ export default class EventStore extends AbstractStore {
|
|
|
26
17
|
}): Promise<import("@sprucelabs/mercury-types").MercuryAggregateResponse<import("@sprucelabs/schema").SchemaStaticValues<SpruceSchemas.Mercury.v2020_12_25.RegisterEventsResponsePayloadSchema, false, never, import("@sprucelabs/schema").StaticSchemaAllValues<SpruceSchemas.Mercury.v2020_12_25.RegisterEventsResponsePayloadSchema, false>>>>;
|
|
27
18
|
unRegisterEvents(options: SpruceSchemas.Mercury.v2020_12_25.UnregisterEventsEmitPayload): Promise<void>;
|
|
28
19
|
}
|
|
20
|
+
export interface EventStoreFetchEventContractsResponse {
|
|
21
|
+
errors: SpruceError[];
|
|
22
|
+
contracts: EventContract[];
|
|
23
|
+
}
|
|
24
|
+
export interface FetchContractsOptions {
|
|
25
|
+
localNamespace?: string;
|
|
26
|
+
namespaces?: string[];
|
|
27
|
+
didUpdateHandler?: InternalUpdateHandler;
|
|
28
|
+
}
|
|
@@ -32,32 +32,6 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
|
|
|
32
32
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
33
33
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
34
34
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
35
|
-
var eventFileNamesImportKeyMap = {
|
|
36
|
-
'event.options.ts': {
|
|
37
|
-
key: 'options',
|
|
38
|
-
isSchema: false
|
|
39
|
-
},
|
|
40
|
-
'emitPayload.builder.ts': {
|
|
41
|
-
key: 'emitPayload',
|
|
42
|
-
isSchema: true
|
|
43
|
-
},
|
|
44
|
-
'emitTarget.builder.ts': {
|
|
45
|
-
key: 'emitTarget',
|
|
46
|
-
isSchema: true
|
|
47
|
-
},
|
|
48
|
-
'responsePayload.builder.ts': {
|
|
49
|
-
key: 'responsePayload',
|
|
50
|
-
isSchema: true
|
|
51
|
-
},
|
|
52
|
-
'emitPermissions.builder.ts': {
|
|
53
|
-
key: 'emitPermissions',
|
|
54
|
-
isSchema: false
|
|
55
|
-
},
|
|
56
|
-
'listenPermissions.builder.ts': {
|
|
57
|
-
key: 'listenPermissions',
|
|
58
|
-
isSchema: false
|
|
59
|
-
}
|
|
60
|
-
};
|
|
61
35
|
var EventStore = /*#__PURE__*/function (_AbstractStore) {
|
|
62
36
|
(0, _inherits2["default"])(EventStore, _AbstractStore);
|
|
63
37
|
var _super = _createSuper(EventStore);
|
|
@@ -453,4 +427,30 @@ var EventStore = /*#__PURE__*/function (_AbstractStore) {
|
|
|
453
427
|
exports["default"] = EventStore;
|
|
454
428
|
(0, _defineProperty2["default"])(EventStore, "contractCache", {});
|
|
455
429
|
(0, _defineProperty2["default"])(EventStore, "localEventCache", void 0);
|
|
430
|
+
var eventFileNamesImportKeyMap = {
|
|
431
|
+
'event.options.ts': {
|
|
432
|
+
key: 'options',
|
|
433
|
+
isSchema: false
|
|
434
|
+
},
|
|
435
|
+
'emitPayload.builder.ts': {
|
|
436
|
+
key: 'emitPayload',
|
|
437
|
+
isSchema: true
|
|
438
|
+
},
|
|
439
|
+
'emitTarget.builder.ts': {
|
|
440
|
+
key: 'emitTarget',
|
|
441
|
+
isSchema: true
|
|
442
|
+
},
|
|
443
|
+
'responsePayload.builder.ts': {
|
|
444
|
+
key: 'responsePayload',
|
|
445
|
+
isSchema: true
|
|
446
|
+
},
|
|
447
|
+
'emitPermissions.builder.ts': {
|
|
448
|
+
key: 'emitPermissions',
|
|
449
|
+
isSchema: false
|
|
450
|
+
},
|
|
451
|
+
'listenPermissions.builder.ts': {
|
|
452
|
+
key: 'listenPermissions',
|
|
453
|
+
isSchema: false
|
|
454
|
+
}
|
|
455
|
+
};
|
|
456
456
|
//# sourceMappingURL=EventStore.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventStore.js","names":["eventFileNamesImportKeyMap","key","isSchema","EventStore","options","localNamespace","didUpdateHandler","namespaces","fetchRemoteContracts","contracts","error","responseErrors","loadLocalContract","localContract","filterOutLocalEventsFromRemoteContractsMutating","push","errors","join","contractCache","connectToApi","shouldAuthAsCurrentSkill","client","emitAndFlattenResponses","target","cloneDeep","remoteContracts","ns","namesUtil","toKebab","contract","sigs","eventContractUtil","getNamedEventSignatures","sig","eventNamespace","eventSignatures","fullyQualifiedEventName","localEventCache","globby","generateGlobbyForLocalEvents","localMatches","filesByFqenAndEventKey","length","Promise","all","map","match","eventDiskUtil","splitPathToEvent","eventName","version","fqen","eventNameUtil","filename","pathUtil","basename","eventKey","SpruceError","code","brokenProperty","originalError","matches","o","Service","bulkImport","importsInOrder","importsByName","idx","imported","validateSchema","Object","keys","forEach","split","emitPayloadSchema","buildEmitTargetAndPayloadSchema","payloadSchema","emitPayload","targetSchema","emitTarget","responsePayloadSchema","responsePayload","emitPermissionContract","emitPermissions","listenPermissionContract","listenPermissions","cleaned","eventContractCleanerUtil","cleanPayloadsAndPermissions","validateEventContract","diskUtil","resolvePath","cwd","emit","payload","eventContract","results","eventResponseUtil","getFirstResponseOrThrow","undefined","AbstractStore"],"sources":["../../../../src/features/event/stores/EventStore.ts"],"sourcesContent":["import pathUtil from 'path'\nimport {\n\tEventContract,\n\tEventSignature,\n\tPermissionContract,\n\tSpruceSchemas,\n\tvalidateEventContract,\n} from '@sprucelabs/mercury-types'\nimport { Schema, validateSchema } from '@sprucelabs/schema'\nimport {\n\teventResponseUtil,\n\teventDiskUtil,\n\teventNameUtil,\n\tbuildEmitTargetAndPayloadSchema,\n\teventContractUtil,\n} from '@sprucelabs/spruce-event-utils'\nimport { diskUtil, namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport globby from 'globby'\nimport { cloneDeep } from 'lodash'\nimport SpruceError from '../../../errors/SpruceError'\nimport AbstractStore from '../../../stores/AbstractStore'\nimport { InternalUpdateHandler } from '../../../types/cli.types'\nimport { eventContractCleanerUtil } from '../../../utilities/eventContractCleaner.utility'\n\nexport interface EventStoreFetchEventContractsResponse {\n\terrors: SpruceError[]\n\tcontracts: EventContract[]\n}\n\ntype Options = Omit<\n\tEventSignature,\n\t| 'responsePayloadSchema'\n\t| 'emitPayloadSchema'\n\t| 'listenPermissionContract'\n\t| 'emitPermissionContract'\n>\n\ninterface EventImport {\n\toptions?: Options\n\temitPayload?: Schema\n\temitTarget?: Schema\n\tresponsePayload?: Schema\n\temitPermissions?: PermissionContract\n\tlistenPermissions?: PermissionContract\n}\n\nconst eventFileNamesImportKeyMap = {\n\t'event.options.ts': { key: 'options', isSchema: false },\n\t'emitPayload.builder.ts': { key: 'emitPayload', isSchema: true },\n\t'emitTarget.builder.ts': { key: 'emitTarget', isSchema: true },\n\t'responsePayload.builder.ts': { key: 'responsePayload', isSchema: true },\n\t'emitPermissions.builder.ts': { key: 'emitPermissions', isSchema: false },\n\t'listenPermissions.builder.ts': { key: 'listenPermissions', isSchema: false },\n}\n\nexport interface FetchContractsOptions {\n\tlocalNamespace?: string\n\tnamespaces?: string[]\n\tdidUpdateHandler?: InternalUpdateHandler\n}\n\nexport default class EventStore extends AbstractStore {\n\tpublic name = 'event'\n\tprotected static contractCache: Record<string, any> = {}\n\tprivate static localEventCache?: SpruceSchemas.Mercury.v2020_12_25.EventContract\n\n\tpublic static clearCache() {\n\t\tEventStore.localEventCache = undefined\n\t\tEventStore.contractCache = {}\n\t}\n\n\tpublic async fetchEventContracts(\n\t\toptions?: FetchContractsOptions\n\t): Promise<EventStoreFetchEventContractsResponse> {\n\t\tconst { localNamespace, didUpdateHandler, namespaces } = options ?? {}\n\n\t\tdidUpdateHandler?.('Pulling remote contracts...')\n\n\t\tlet contracts\n\t\ttry {\n\t\t\tcontracts = await this.fetchRemoteContracts(namespaces)\n\t\t} catch (err: any) {\n\t\t\tconst error = err.options.responseErrors?.[0] ?? err\n\t\t\tthrow error\n\t\t}\n\n\t\tconst localContract =\n\t\t\tlocalNamespace &&\n\t\t\t(await this.loadLocalContract(localNamespace, didUpdateHandler))\n\n\t\tif (localNamespace) {\n\t\t\tthis.filterOutLocalEventsFromRemoteContractsMutating(\n\t\t\t\tcontracts,\n\t\t\t\tlocalNamespace\n\t\t\t)\n\t\t}\n\n\t\tif (localContract) {\n\t\t\tcontracts.push(localContract)\n\t\t}\n\n\t\treturn {\n\t\t\tcontracts,\n\t\t\terrors: [],\n\t\t}\n\t}\n\n\tprivate async fetchRemoteContracts(namespaces?: string[]) {\n\t\tconst key = namespaces?.join('|') ?? '_'\n\n\t\tif (!EventStore.contractCache[key]) {\n\t\t\tconst client = await this.connectToApi({ shouldAuthAsCurrentSkill: true })\n\n\t\t\tconst [{ contracts }] = await client.emitAndFlattenResponses(\n\t\t\t\t'get-event-contracts::v2020_12_25',\n\t\t\t\t{\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tnamespaces,\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t)\n\n\t\t\tEventStore.contractCache[key] = contracts\n\t\t}\n\n\t\treturn cloneDeep(EventStore.contractCache[key])\n\t}\n\n\tprivate filterOutLocalEventsFromRemoteContractsMutating(\n\t\tremoteContracts: EventContract[],\n\t\tlocalNamespace: string\n\t) {\n\t\tconst ns = namesUtil.toKebab(localNamespace)\n\n\t\tfor (const contract of remoteContracts) {\n\t\t\tconst sigs = eventContractUtil.getNamedEventSignatures(contract)\n\t\t\tfor (const sig of sigs) {\n\t\t\t\tif (sig.eventNamespace === ns) {\n\t\t\t\t\tdelete contract.eventSignatures[sig.fullyQualifiedEventName]\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic async loadLocalContract(\n\t\tlocalNamespace: string,\n\t\tdidUpdateHandler?: InternalUpdateHandler\n\t): Promise<EventContract | null> {\n\t\tif (EventStore.localEventCache) {\n\t\t\treturn EventStore.localEventCache\n\t\t}\n\n\t\tconst localMatches = await globby(this.generateGlobbyForLocalEvents())\n\n\t\tconst ns = namesUtil.toKebab(localNamespace)\n\t\tconst eventSignatures: Record<string, EventSignature> = {}\n\t\tconst filesByFqenAndEventKey: {\n\t\t\tfqen: string\n\t\t\tisSchema: boolean\n\t\t\tmatch: string\n\t\t\teventKey: string\n\t\t}[] = []\n\n\t\tdidUpdateHandler?.(\n\t\t\t`Importing ${localMatches.length} local event signature files...`\n\t\t)\n\n\t\tawait Promise.all(\n\t\t\tlocalMatches.map(async (match) => {\n\t\t\t\tlet fqen: string | undefined\n\t\t\t\tlet eventKey: keyof EventImport | undefined\n\n\t\t\t\ttry {\n\t\t\t\t\tconst { eventName, version } = eventDiskUtil.splitPathToEvent(match)\n\t\t\t\t\tfqen = eventNameUtil.join({\n\t\t\t\t\t\teventName,\n\t\t\t\t\t\tversion,\n\t\t\t\t\t\teventNamespace: ns,\n\t\t\t\t\t})\n\n\t\t\t\t\tconst filename = pathUtil.basename(\n\t\t\t\t\t\tmatch\n\t\t\t\t\t) as keyof typeof eventFileNamesImportKeyMap\n\n\t\t\t\t\tconst map = eventFileNamesImportKeyMap[filename]\n\n\t\t\t\t\tif (map) {\n\t\t\t\t\t\t//@ts-ignore\n\t\t\t\t\t\teventKey = map.key\n\n\t\t\t\t\t\tfilesByFqenAndEventKey.push({\n\t\t\t\t\t\t\tfqen,\n\t\t\t\t\t\t\tisSchema: map.isSchema,\n\t\t\t\t\t\t\tmatch,\n\t\t\t\t\t\t\teventKey: eventKey as string,\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t} catch (err: any) {\n\t\t\t\t\tthrow new SpruceError({\n\t\t\t\t\t\tcode: 'INVALID_EVENT_CONTRACT',\n\t\t\t\t\t\tfullyQualifiedEventName: fqen ?? 'Bad event name',\n\t\t\t\t\t\tbrokenProperty: eventKey ?? '*** major failure ***',\n\t\t\t\t\t\toriginalError: err,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t})\n\t\t)\n\n\t\tconst matches = filesByFqenAndEventKey.map((o) => o.match)\n\t\tconst importsInOrder = (await this.Service('import').bulkImport(\n\t\t\tmatches\n\t\t)) as Record<string, any>[]\n\t\tconst importsByName: Record<string, EventImport> = {}\n\n\t\tfor (let idx = 0; idx < filesByFqenAndEventKey.length; idx++) {\n\t\t\tconst imported = importsInOrder[idx]\n\t\t\tconst { fqen, eventKey, isSchema } = filesByFqenAndEventKey[idx]\n\n\t\t\tif (isSchema) {\n\t\t\t\ttry {\n\t\t\t\t\tvalidateSchema(imported)\n\t\t\t\t} catch (err: any) {\n\t\t\t\t\tthrow new SpruceError({\n\t\t\t\t\t\tcode: 'INVALID_EVENT_CONTRACT',\n\t\t\t\t\t\tfullyQualifiedEventName: fqen,\n\t\t\t\t\t\tbrokenProperty: eventKey,\n\t\t\t\t\t\toriginalError: err,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!importsByName[fqen]) {\n\t\t\t\timportsByName[fqen] = {}\n\t\t\t}\n\n\t\t\t//@ts-ignore\n\t\t\timportsByName[fqen][eventKey] = imported\n\t\t}\n\n\t\tObject.keys(importsByName).forEach((fqen) => {\n\t\t\tconst imported = importsByName[fqen]\n\t\t\tconst { eventName } = eventNameUtil.split(fqen)\n\t\t\teventSignatures[fqen] = {\n\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\teventName,\n\t\t\t\t\tpayloadSchema: imported.emitPayload,\n\t\t\t\t\ttargetSchema: imported.emitTarget,\n\t\t\t\t}),\n\t\t\t\tresponsePayloadSchema: imported.responsePayload,\n\t\t\t\temitPermissionContract: imported.emitPermissions,\n\t\t\t\tlistenPermissionContract: imported.listenPermissions,\n\t\t\t\t...imported.options,\n\t\t\t}\n\t\t})\n\n\t\tdidUpdateHandler?.(\n\t\t\t`Loaded ${Object.keys(eventSignatures).length} local event signatures...`\n\t\t)\n\n\t\tif (Object.keys(eventSignatures).length > 0) {\n\t\t\tconst cleaned = eventContractCleanerUtil.cleanPayloadsAndPermissions({\n\t\t\t\teventSignatures,\n\t\t\t})\n\n\t\t\tvalidateEventContract(cleaned)\n\n\t\t\tEventStore.localEventCache = cleaned\n\n\t\t\treturn cleaned\n\t\t}\n\n\t\treturn null\n\t}\n\n\tprivate generateGlobbyForLocalEvents(): string | readonly string[] {\n\t\treturn diskUtil.resolvePath(\n\t\t\tthis.cwd,\n\t\t\t'src',\n\t\t\t'**',\n\t\t\t'events',\n\t\t\t'**/*.(builder|options).ts'\n\t\t)\n\t}\n\n\tpublic async registerEventContract(options: {\n\t\teventContract: EventContract\n\t}) {\n\t\tconst client = await this.connectToApi({ shouldAuthAsCurrentSkill: true })\n\n\t\tconst results = await client.emit('register-events::v2020_12_25', {\n\t\t\tpayload: {\n\t\t\t\tcontract: options.eventContract,\n\t\t\t},\n\t\t})\n\n\t\teventResponseUtil.getFirstResponseOrThrow(results)\n\n\t\tEventStore.contractCache = {}\n\n\t\treturn results\n\t}\n\n\tpublic async unRegisterEvents(\n\t\toptions: SpruceSchemas.Mercury.v2020_12_25.UnregisterEventsEmitPayload\n\t) {\n\t\tconst client = await this.connectToApi({ shouldAuthAsCurrentSkill: true })\n\n\t\tconst results = await client.emit('unregister-events::v2020_12_25', {\n\t\t\tpayload: options,\n\t\t})\n\n\t\teventResponseUtil.getFirstResponseOrThrow(results)\n\n\t\tEventStore.contractCache = {}\n\t}\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EventStore.js","names":["EventStore","options","localNamespace","didUpdateHandler","namespaces","fetchRemoteContracts","contracts","error","responseErrors","loadLocalContract","localContract","filterOutLocalEventsFromRemoteContractsMutating","push","errors","key","join","contractCache","connectToApi","shouldAuthAsCurrentSkill","client","emitAndFlattenResponses","target","cloneDeep","remoteContracts","ns","namesUtil","toKebab","contract","sigs","eventContractUtil","getNamedEventSignatures","sig","eventNamespace","eventSignatures","fullyQualifiedEventName","localEventCache","globby","generateGlobbyForLocalEvents","localMatches","filesByFqenAndEventKey","length","Promise","all","map","match","eventDiskUtil","splitPathToEvent","eventName","version","fqen","eventNameUtil","filename","pathUtil","basename","eventFileNamesImportKeyMap","eventKey","isSchema","SpruceError","code","brokenProperty","originalError","matches","o","Service","bulkImport","importsInOrder","importsByName","idx","imported","validateSchema","Object","keys","forEach","split","emitPayloadSchema","buildEmitTargetAndPayloadSchema","payloadSchema","emitPayload","targetSchema","emitTarget","responsePayloadSchema","responsePayload","emitPermissionContract","emitPermissions","listenPermissionContract","listenPermissions","cleaned","eventContractCleanerUtil","cleanPayloadsAndPermissions","validateEventContract","diskUtil","resolvePath","cwd","emit","payload","eventContract","results","eventResponseUtil","getFirstResponseOrThrow","undefined","AbstractStore"],"sources":["../../../../src/features/event/stores/EventStore.ts"],"sourcesContent":["import pathUtil from 'path'\nimport {\n\tEventContract,\n\tEventSignature,\n\tPermissionContract,\n\tSpruceSchemas,\n\tvalidateEventContract,\n} from '@sprucelabs/mercury-types'\nimport { Schema, validateSchema } from '@sprucelabs/schema'\nimport {\n\teventResponseUtil,\n\teventDiskUtil,\n\teventNameUtil,\n\tbuildEmitTargetAndPayloadSchema,\n\teventContractUtil,\n} from '@sprucelabs/spruce-event-utils'\nimport { diskUtil, namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport globby from 'globby'\nimport { cloneDeep } from 'lodash'\nimport SpruceError from '../../../errors/SpruceError'\nimport AbstractStore from '../../../stores/AbstractStore'\nimport { InternalUpdateHandler } from '../../../types/cli.types'\nimport { eventContractCleanerUtil } from '../../../utilities/eventContractCleaner.utility'\n\nexport default class EventStore extends AbstractStore {\n\tpublic name = 'event'\n\tprotected static contractCache: Record<string, any> = {}\n\tprivate static localEventCache?: SpruceSchemas.Mercury.v2020_12_25.EventContract\n\n\tpublic static clearCache() {\n\t\tEventStore.localEventCache = undefined\n\t\tEventStore.contractCache = {}\n\t}\n\n\tpublic async fetchEventContracts(\n\t\toptions?: FetchContractsOptions\n\t): Promise<EventStoreFetchEventContractsResponse> {\n\t\tconst { localNamespace, didUpdateHandler, namespaces } = options ?? {}\n\n\t\tdidUpdateHandler?.('Pulling remote contracts...')\n\n\t\tlet contracts\n\t\ttry {\n\t\t\tcontracts = await this.fetchRemoteContracts(namespaces)\n\t\t} catch (err: any) {\n\t\t\tconst error = err.options.responseErrors?.[0] ?? err\n\t\t\tthrow error\n\t\t}\n\n\t\tconst localContract =\n\t\t\tlocalNamespace &&\n\t\t\t(await this.loadLocalContract(localNamespace, didUpdateHandler))\n\n\t\tif (localNamespace) {\n\t\t\tthis.filterOutLocalEventsFromRemoteContractsMutating(\n\t\t\t\tcontracts,\n\t\t\t\tlocalNamespace\n\t\t\t)\n\t\t}\n\n\t\tif (localContract) {\n\t\t\tcontracts.push(localContract)\n\t\t}\n\n\t\treturn {\n\t\t\tcontracts,\n\t\t\terrors: [],\n\t\t}\n\t}\n\n\tprivate async fetchRemoteContracts(namespaces?: string[]) {\n\t\tconst key = namespaces?.join('|') ?? '_'\n\n\t\tif (!EventStore.contractCache[key]) {\n\t\t\tconst client = await this.connectToApi({ shouldAuthAsCurrentSkill: true })\n\n\t\t\tconst [{ contracts }] = await client.emitAndFlattenResponses(\n\t\t\t\t'get-event-contracts::v2020_12_25',\n\t\t\t\t{\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tnamespaces,\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t)\n\n\t\t\tEventStore.contractCache[key] = contracts\n\t\t}\n\n\t\treturn cloneDeep(EventStore.contractCache[key])\n\t}\n\n\tprivate filterOutLocalEventsFromRemoteContractsMutating(\n\t\tremoteContracts: EventContract[],\n\t\tlocalNamespace: string\n\t) {\n\t\tconst ns = namesUtil.toKebab(localNamespace)\n\n\t\tfor (const contract of remoteContracts) {\n\t\t\tconst sigs = eventContractUtil.getNamedEventSignatures(contract)\n\t\t\tfor (const sig of sigs) {\n\t\t\t\tif (sig.eventNamespace === ns) {\n\t\t\t\t\tdelete contract.eventSignatures[sig.fullyQualifiedEventName]\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic async loadLocalContract(\n\t\tlocalNamespace: string,\n\t\tdidUpdateHandler?: InternalUpdateHandler\n\t): Promise<EventContract | null> {\n\t\tif (EventStore.localEventCache) {\n\t\t\treturn EventStore.localEventCache\n\t\t}\n\n\t\tconst localMatches = await globby(this.generateGlobbyForLocalEvents())\n\n\t\tconst ns = namesUtil.toKebab(localNamespace)\n\t\tconst eventSignatures: Record<string, EventSignature> = {}\n\t\tconst filesByFqenAndEventKey: {\n\t\t\tfqen: string\n\t\t\tisSchema: boolean\n\t\t\tmatch: string\n\t\t\teventKey: string\n\t\t}[] = []\n\n\t\tdidUpdateHandler?.(\n\t\t\t`Importing ${localMatches.length} local event signature files...`\n\t\t)\n\n\t\tawait Promise.all(\n\t\t\tlocalMatches.map(async (match) => {\n\t\t\t\tlet fqen: string | undefined\n\t\t\t\tlet eventKey: keyof EventImport | undefined\n\n\t\t\t\ttry {\n\t\t\t\t\tconst { eventName, version } = eventDiskUtil.splitPathToEvent(match)\n\t\t\t\t\tfqen = eventNameUtil.join({\n\t\t\t\t\t\teventName,\n\t\t\t\t\t\tversion,\n\t\t\t\t\t\teventNamespace: ns,\n\t\t\t\t\t})\n\n\t\t\t\t\tconst filename = pathUtil.basename(\n\t\t\t\t\t\tmatch\n\t\t\t\t\t) as keyof typeof eventFileNamesImportKeyMap\n\n\t\t\t\t\tconst map = eventFileNamesImportKeyMap[filename]\n\n\t\t\t\t\tif (map) {\n\t\t\t\t\t\t//@ts-ignore\n\t\t\t\t\t\teventKey = map.key\n\n\t\t\t\t\t\tfilesByFqenAndEventKey.push({\n\t\t\t\t\t\t\tfqen,\n\t\t\t\t\t\t\tisSchema: map.isSchema,\n\t\t\t\t\t\t\tmatch,\n\t\t\t\t\t\t\teventKey: eventKey as string,\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t} catch (err: any) {\n\t\t\t\t\tthrow new SpruceError({\n\t\t\t\t\t\tcode: 'INVALID_EVENT_CONTRACT',\n\t\t\t\t\t\tfullyQualifiedEventName: fqen ?? 'Bad event name',\n\t\t\t\t\t\tbrokenProperty: eventKey ?? '*** major failure ***',\n\t\t\t\t\t\toriginalError: err,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t})\n\t\t)\n\n\t\tconst matches = filesByFqenAndEventKey.map((o) => o.match)\n\t\tconst importsInOrder = (await this.Service('import').bulkImport(\n\t\t\tmatches\n\t\t)) as Record<string, any>[]\n\t\tconst importsByName: Record<string, EventImport> = {}\n\n\t\tfor (let idx = 0; idx < filesByFqenAndEventKey.length; idx++) {\n\t\t\tconst imported = importsInOrder[idx]\n\t\t\tconst { fqen, eventKey, isSchema } = filesByFqenAndEventKey[idx]\n\n\t\t\tif (isSchema) {\n\t\t\t\ttry {\n\t\t\t\t\tvalidateSchema(imported)\n\t\t\t\t} catch (err: any) {\n\t\t\t\t\tthrow new SpruceError({\n\t\t\t\t\t\tcode: 'INVALID_EVENT_CONTRACT',\n\t\t\t\t\t\tfullyQualifiedEventName: fqen,\n\t\t\t\t\t\tbrokenProperty: eventKey,\n\t\t\t\t\t\toriginalError: err,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!importsByName[fqen]) {\n\t\t\t\timportsByName[fqen] = {}\n\t\t\t}\n\n\t\t\t//@ts-ignore\n\t\t\timportsByName[fqen][eventKey] = imported\n\t\t}\n\n\t\tObject.keys(importsByName).forEach((fqen) => {\n\t\t\tconst imported = importsByName[fqen]\n\t\t\tconst { eventName } = eventNameUtil.split(fqen)\n\t\t\teventSignatures[fqen] = {\n\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\teventName,\n\t\t\t\t\tpayloadSchema: imported.emitPayload,\n\t\t\t\t\ttargetSchema: imported.emitTarget,\n\t\t\t\t}),\n\t\t\t\tresponsePayloadSchema: imported.responsePayload,\n\t\t\t\temitPermissionContract: imported.emitPermissions,\n\t\t\t\tlistenPermissionContract: imported.listenPermissions,\n\t\t\t\t...imported.options,\n\t\t\t}\n\t\t})\n\n\t\tdidUpdateHandler?.(\n\t\t\t`Loaded ${Object.keys(eventSignatures).length} local event signatures...`\n\t\t)\n\n\t\tif (Object.keys(eventSignatures).length > 0) {\n\t\t\tconst cleaned = eventContractCleanerUtil.cleanPayloadsAndPermissions({\n\t\t\t\teventSignatures,\n\t\t\t})\n\n\t\t\tvalidateEventContract(cleaned)\n\n\t\t\tEventStore.localEventCache = cleaned\n\n\t\t\treturn cleaned\n\t\t}\n\n\t\treturn null\n\t}\n\n\tprivate generateGlobbyForLocalEvents(): string | readonly string[] {\n\t\treturn diskUtil.resolvePath(\n\t\t\tthis.cwd,\n\t\t\t'src',\n\t\t\t'**',\n\t\t\t'events',\n\t\t\t'**/*.(builder|options).ts'\n\t\t)\n\t}\n\n\tpublic async registerEventContract(options: {\n\t\teventContract: EventContract\n\t}) {\n\t\tconst client = await this.connectToApi({ shouldAuthAsCurrentSkill: true })\n\n\t\tconst results = await client.emit('register-events::v2020_12_25', {\n\t\t\tpayload: {\n\t\t\t\tcontract: options.eventContract,\n\t\t\t},\n\t\t})\n\n\t\teventResponseUtil.getFirstResponseOrThrow(results)\n\n\t\tEventStore.contractCache = {}\n\n\t\treturn results\n\t}\n\n\tpublic async unRegisterEvents(\n\t\toptions: SpruceSchemas.Mercury.v2020_12_25.UnregisterEventsEmitPayload\n\t) {\n\t\tconst client = await this.connectToApi({ shouldAuthAsCurrentSkill: true })\n\n\t\tconst results = await client.emit('unregister-events::v2020_12_25', {\n\t\t\tpayload: options,\n\t\t})\n\n\t\teventResponseUtil.getFirstResponseOrThrow(results)\n\n\t\tEventStore.contractCache = {}\n\t}\n}\n\nexport interface EventStoreFetchEventContractsResponse {\n\terrors: SpruceError[]\n\tcontracts: EventContract[]\n}\n\ntype Options = Omit<\n\tEventSignature,\n\t| 'responsePayloadSchema'\n\t| 'emitPayloadSchema'\n\t| 'listenPermissionContract'\n\t| 'emitPermissionContract'\n>\n\ninterface EventImport {\n\toptions?: Options\n\temitPayload?: Schema\n\temitTarget?: Schema\n\tresponsePayload?: Schema\n\temitPermissions?: PermissionContract\n\tlistenPermissions?: PermissionContract\n}\n\nconst eventFileNamesImportKeyMap = {\n\t'event.options.ts': { key: 'options', isSchema: false },\n\t'emitPayload.builder.ts': { key: 'emitPayload', isSchema: true },\n\t'emitTarget.builder.ts': { key: 'emitTarget', isSchema: true },\n\t'responsePayload.builder.ts': { key: 'responsePayload', isSchema: true },\n\t'emitPermissions.builder.ts': { key: 'emitPermissions', isSchema: false },\n\t'listenPermissions.builder.ts': { key: 'listenPermissions', isSchema: false },\n}\n\nexport interface FetchContractsOptions {\n\tlocalNamespace?: string\n\tnamespaces?: string[]\n\tdidUpdateHandler?: InternalUpdateHandler\n}\n"],"mappings":"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"}
|
|
@@ -31,7 +31,10 @@ var EventContractFeature = /*#__PURE__*/function (_AbstractFeature) {
|
|
|
31
31
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "code", 'eventContract');
|
|
32
32
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "nameReadable", 'Event Contract');
|
|
33
33
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "description", 'Pull core Mercury events down and write to single, portable, dependency-free, strongly typed contract.');
|
|
34
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "dependencies", [
|
|
34
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "dependencies", [{
|
|
35
|
+
code: 'permission',
|
|
36
|
+
isRequired: true
|
|
37
|
+
}]);
|
|
35
38
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "packageDependencies", []);
|
|
36
39
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "actionsDir", _spruceSkillUtils.diskUtil.resolvePath(__dirname, 'actions'));
|
|
37
40
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "fileDescriptions", []);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventContractFeature.js","names":["EventContractFeature","diskUtil","resolvePath","__dirname","AbstractFeature"],"sources":["../../../src/features/eventContract/EventContractFeature.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { FileDescription } from '../../types/cli.types'\nimport AbstractFeature, { FeatureDependency } from '../AbstractFeature'\nimport { FeatureCode } from '../features.types'\n\ndeclare module '../../features/features.types' {\n\tinterface FeatureMap {\n\t\teventContract: EventContractFeature\n\t}\n}\n\nexport default class EventContractFeature extends AbstractFeature {\n\tpublic code: FeatureCode = 'eventContract'\n\tpublic nameReadable = 'Event Contract'\n\tpublic description =\n\t\t'Pull core Mercury events down and write to single, portable, dependency-free, strongly typed contract.'\n\tpublic dependencies: FeatureDependency[] = []\n\tpublic packageDependencies = []\n\n\tpublic actionsDir = diskUtil.resolvePath(__dirname, 'actions')\n\tpublic readonly fileDescriptions: FileDescription[] = []\n\n\tpublic isInstalled = async () => true\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAEA;AAAuE;AAAA;AAAA,IASlDA,oBAAoB;EAAA;EAAA;EAAA;IAAA;IAAA;IAAA;MAAA;IAAA;IAAA;IAAA,yFACb,eAAe;IAAA,iGACpB,gBAAgB;IAAA,gGAErC,wGAAwG;IAAA,iGAC9D,EAAE;IAAA,
|
|
1
|
+
{"version":3,"file":"EventContractFeature.js","names":["EventContractFeature","code","isRequired","diskUtil","resolvePath","__dirname","AbstractFeature"],"sources":["../../../src/features/eventContract/EventContractFeature.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { FileDescription } from '../../types/cli.types'\nimport AbstractFeature, { FeatureDependency } from '../AbstractFeature'\nimport { FeatureCode } from '../features.types'\n\ndeclare module '../../features/features.types' {\n\tinterface FeatureMap {\n\t\teventContract: EventContractFeature\n\t}\n}\n\nexport default class EventContractFeature extends AbstractFeature {\n\tpublic code: FeatureCode = 'eventContract'\n\tpublic nameReadable = 'Event Contract'\n\tpublic description =\n\t\t'Pull core Mercury events down and write to single, portable, dependency-free, strongly typed contract.'\n\tpublic dependencies: FeatureDependency[] = [\n\t\t{\n\t\t\tcode: 'permission',\n\t\t\tisRequired: true,\n\t\t},\n\t]\n\tpublic packageDependencies = []\n\n\tpublic actionsDir = diskUtil.resolvePath(__dirname, 'actions')\n\tpublic readonly fileDescriptions: FileDescription[] = []\n\n\tpublic isInstalled = async () => true\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAEA;AAAuE;AAAA;AAAA,IASlDA,oBAAoB;EAAA;EAAA;EAAA;IAAA;IAAA;IAAA;MAAA;IAAA;IAAA;IAAA,yFACb,eAAe;IAAA,iGACpB,gBAAgB;IAAA,gGAErC,wGAAwG;IAAA,iGAC9D,CAC1C;MACCC,IAAI,EAAE,YAAY;MAClBC,UAAU,EAAE;IACb,CAAC,CACD;IAAA,wGAC4B,EAAE;IAAA,+FAEXC,0BAAQ,CAACC,WAAW,CAACC,SAAS,EAAE,SAAS,CAAC;IAAA,qGACR,EAAE;IAAA,2LAEnC;MAAA;QAAA;UAAA;YAAA;cAAA,iCAAY,IAAI;YAAA;YAAA;cAAA;UAAA;QAAA;MAAA;IAAA;IAAA;EAAA;EAAA;AAAA,EAhBYC,4BAAe;AAAA"}
|
|
@@ -16,6 +16,7 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/ge
|
|
|
16
16
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
17
17
|
var _schema = require("@sprucelabs/schema");
|
|
18
18
|
var _spruceSkillUtils = require("@sprucelabs/spruce-skill-utils");
|
|
19
|
+
var _action = _interopRequireDefault(require("../../../utilities/action.utility"));
|
|
19
20
|
var _AbstractAction2 = _interopRequireDefault(require("../../AbstractAction"));
|
|
20
21
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
21
22
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
@@ -49,7 +50,7 @@ var PullAction = /*#__PURE__*/function (_AbstractAction) {
|
|
|
49
50
|
key: "execute",
|
|
50
51
|
value: function () {
|
|
51
52
|
var _execute = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(options) {
|
|
52
|
-
var _this$validateAndNorm, _this$validateAndNorm2, destination, filename, _yield$this$Store$fet, contracts, buildEventContractImport, contents, action;
|
|
53
|
+
var _this$validateAndNorm, _this$validateAndNorm2, destination, filename, _yield$this$Store$fet, contracts, buildEventContractImport, contents, action, results;
|
|
53
54
|
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
54
55
|
while (1) {
|
|
55
56
|
switch (_context.prev = _context.next) {
|
|
@@ -62,7 +63,7 @@ var PullAction = /*#__PURE__*/function (_AbstractAction) {
|
|
|
62
63
|
case 5:
|
|
63
64
|
_yield$this$Store$fet = _context.sent;
|
|
64
65
|
contracts = _yield$this$Store$fet.contracts;
|
|
65
|
-
buildEventContractImport = "import { buildEventContract } from '@sprucelabs/mercury-types'";
|
|
66
|
+
buildEventContractImport = "import { buildEventContract } from '@sprucelabs/mercury-types'\nimport '".concat('#spruce', "/permissions/permissions.types'");
|
|
66
67
|
contents = "".concat(buildEventContractImport, "\nconst eventContracts = [").concat(contracts.map(function (c) {
|
|
67
68
|
return "buildEventContract(".concat(JSON.stringify(c, null, 2), ")");
|
|
68
69
|
}).join(',\n'), "] as const\n\n\nexport default eventContracts\nexport type CoreEventContract = ").concat(contracts.map(function (_, idx) {
|
|
@@ -70,15 +71,19 @@ var PullAction = /*#__PURE__*/function (_AbstractAction) {
|
|
|
70
71
|
}).join(' & '), "\n");
|
|
71
72
|
action = _spruceSkillUtils.diskUtil.doesFileExist(destination) ? 'updated' : 'generated';
|
|
72
73
|
_spruceSkillUtils.diskUtil.writeFile(destination, contents);
|
|
73
|
-
|
|
74
|
+
_context.next = 13;
|
|
75
|
+
return this.Action('permission', 'sync').execute({});
|
|
76
|
+
case 13:
|
|
77
|
+
results = _context.sent;
|
|
78
|
+
return _context.abrupt("return", _action["default"].mergeActionResults(results, {
|
|
74
79
|
files: [{
|
|
75
80
|
name: filename,
|
|
76
81
|
path: destination,
|
|
77
82
|
action: action,
|
|
78
83
|
description: 'All your Mercury core events ready for testing!'
|
|
79
84
|
}]
|
|
80
|
-
});
|
|
81
|
-
case
|
|
85
|
+
}));
|
|
86
|
+
case 15:
|
|
82
87
|
case "end":
|
|
83
88
|
return _context.stop();
|
|
84
89
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PullAction.js","names":["pullOptionsSchema","buildSchema","id","description","fields","destination","type","label","hint","PullAction","options","validateAndNormalizeOptions","filename","diskUtil","resolvePath","cwd","Store","fetchEventContracts","contracts","buildEventContractImport","contents","map","c","JSON","stringify","join","_","idx","action","doesFileExist","writeFile","files","name","path","AbstractAction"],"sources":["../../../../src/features/eventContract/actions/PullAction.ts"],"sourcesContent":["import { buildSchema, SchemaValues } from '@sprucelabs/schema'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\n\nconst pullOptionsSchema = buildSchema({\n\tid: 'pullActionSchema',\n\tdescription:\n\t\t'Pulls the event contracts from Mercury down to a single file for easy distribution.',\n\tfields: {\n\t\tdestination: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Destination',\n\t\t\thint: 'File is always named `events.contract.ts`.',\n\t\t},\n\t},\n})\ntype PullOptionsSchema = typeof pullOptionsSchema\ntype Options = SchemaValues<PullOptionsSchema>\n\nexport default class PullAction extends AbstractAction<PullOptionsSchema> {\n\tpublic commandAliases = ['pull.event.contracts']\n\tpublic optionsSchema = pullOptionsSchema\n\tpublic invocationMessage = 'Pulling combined event contract... 🜒'\n\n\tpublic async execute(options: Options): Promise<FeatureActionResponse> {\n\t\tlet { destination = '.' } = this.validateAndNormalizeOptions(options)\n\n\t\tconst filename = 'events.contract.ts'\n\t\tdestination = diskUtil.resolvePath(this.cwd, destination, filename)\n\n\t\tconst { contracts } = await this.Store('event').fetchEventContracts()\n\t\tlet buildEventContractImport = `import { buildEventContract } from '@sprucelabs/mercury-types'`\n\n\t\tconst contents = `${buildEventContractImport}\nconst eventContracts = [${contracts\n\t\t\t.map((c) => `buildEventContract(${JSON.stringify(c, null, 2)})`)\n\t\t\t.join(',\\n')}] as const\n\n\nexport default eventContracts\nexport type CoreEventContract = ${contracts\n\t\t\t.map((_, idx) => `typeof eventContracts[${idx}]`)\n\t\t\t.join(' & ')}\n`\n\n\t\tconst action = diskUtil.doesFileExist(destination) ? 'updated' : 'generated'\n\n\t\tdiskUtil.writeFile(destination, contents)\n\n\t\treturn {\n\t\t\tfiles: [\n\t\t\t\t{\n\t\t\t\t\tname: filename,\n\t\t\t\t\tpath: destination,\n\t\t\t\t\taction,\n\t\t\t\t\tdescription: 'All your Mercury core events ready for testing!',\n\t\t\t\t},\n\t\t\t],\n\t\t}\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AACA;AACA;AAAiD;AAAA;AAGjD,IAAMA,iBAAiB,GAAG,IAAAC,mBAAW,EAAC;EACrCC,EAAE,EAAE,kBAAkB;EACtBC,WAAW,EACV,qFAAqF;EACtFC,MAAM,EAAE;IACPC,WAAW,EAAE;MACZC,IAAI,EAAE,MAAM;MACZC,KAAK,EAAE,aAAa;MACpBC,IAAI,EAAE;IACP;EACD;AACD,CAAC,CAAC;AAAA,IAImBC,UAAU;EAAA;EAAA;EAAA;IAAA;IAAA;IAAA;MAAA;IAAA;IAAA;IAAA,mGACN,CAAC,sBAAsB,CAAC;IAAA,kGACzBT,iBAAiB;IAAA,sGACb,uCAAuC;IAAA;EAAA;EAAA;IAAA;IAAA;MAAA,6FAElE,iBAAqBU,OAAgB;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA,wBACR,IAAI,CAACC,2BAA2B,CAACD,OAAO,CAAC,iDAA/DL,WAAW,EAAXA,WAAW,uCAAG,GAAG;gBAEjBO,QAAQ,GAAG,oBAAoB;gBACrCP,WAAW,GAAGQ,0BAAQ,CAACC,WAAW,CAAC,IAAI,CAACC,GAAG,EAAEV,WAAW,EAAEO,QAAQ,CAAC;gBAAA;gBAAA,OAEvC,IAAI,CAACI,KAAK,CAAC,OAAO,CAAC,CAACC,mBAAmB,EAAE;cAAA;gBAAA;gBAA7DC,SAAS,yBAATA,SAAS;gBACbC,wBAAwB;
|
|
1
|
+
{"version":3,"file":"PullAction.js","names":["pullOptionsSchema","buildSchema","id","description","fields","destination","type","label","hint","PullAction","options","validateAndNormalizeOptions","filename","diskUtil","resolvePath","cwd","Store","fetchEventContracts","contracts","buildEventContractImport","contents","map","c","JSON","stringify","join","_","idx","action","doesFileExist","writeFile","Action","execute","results","actionUtil","mergeActionResults","files","name","path","AbstractAction"],"sources":["../../../../src/features/eventContract/actions/PullAction.ts"],"sourcesContent":["import { buildSchema, SchemaValues } from '@sprucelabs/schema'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport actionUtil from '../../../utilities/action.utility'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\n\nconst pullOptionsSchema = buildSchema({\n\tid: 'pullActionSchema',\n\tdescription:\n\t\t'Pulls the event contracts from Mercury down to a single file for easy distribution.',\n\tfields: {\n\t\tdestination: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Destination',\n\t\t\thint: 'File is always named `events.contract.ts`.',\n\t\t},\n\t},\n})\ntype PullOptionsSchema = typeof pullOptionsSchema\ntype Options = SchemaValues<PullOptionsSchema>\n\nexport default class PullAction extends AbstractAction<PullOptionsSchema> {\n\tpublic commandAliases = ['pull.event.contracts']\n\tpublic optionsSchema = pullOptionsSchema\n\tpublic invocationMessage = 'Pulling combined event contract... 🜒'\n\n\tpublic async execute(options: Options): Promise<FeatureActionResponse> {\n\t\tlet { destination = '.' } = this.validateAndNormalizeOptions(options)\n\n\t\tconst filename = 'events.contract.ts'\n\t\tdestination = diskUtil.resolvePath(this.cwd, destination, filename)\n\n\t\tconst { contracts } = await this.Store('event').fetchEventContracts()\n\t\tlet buildEventContractImport = `import { buildEventContract } from '@sprucelabs/mercury-types'\nimport '${'#spruce'}/permissions/permissions.types'`\n\n\t\tconst contents = `${buildEventContractImport}\nconst eventContracts = [${contracts\n\t\t\t.map((c) => `buildEventContract(${JSON.stringify(c, null, 2)})`)\n\t\t\t.join(',\\n')}] as const\n\n\nexport default eventContracts\nexport type CoreEventContract = ${contracts\n\t\t\t.map((_, idx) => `typeof eventContracts[${idx}]`)\n\t\t\t.join(' & ')}\n`\n\n\t\tconst action = diskUtil.doesFileExist(destination) ? 'updated' : 'generated'\n\n\t\tdiskUtil.writeFile(destination, contents)\n\n\t\tconst results = await this.Action('permission', 'sync').execute({})\n\n\t\treturn actionUtil.mergeActionResults(results, {\n\t\t\tfiles: [\n\t\t\t\t{\n\t\t\t\t\tname: filename,\n\t\t\t\t\tpath: destination,\n\t\t\t\t\taction,\n\t\t\t\t\tdescription: 'All your Mercury core events ready for testing!',\n\t\t\t\t},\n\t\t\t],\n\t\t})\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AAAiD;AAAA;AAGjD,IAAMA,iBAAiB,GAAG,IAAAC,mBAAW,EAAC;EACrCC,EAAE,EAAE,kBAAkB;EACtBC,WAAW,EACV,qFAAqF;EACtFC,MAAM,EAAE;IACPC,WAAW,EAAE;MACZC,IAAI,EAAE,MAAM;MACZC,KAAK,EAAE,aAAa;MACpBC,IAAI,EAAE;IACP;EACD;AACD,CAAC,CAAC;AAAA,IAImBC,UAAU;EAAA;EAAA;EAAA;IAAA;IAAA;IAAA;MAAA;IAAA;IAAA;IAAA,mGACN,CAAC,sBAAsB,CAAC;IAAA,kGACzBT,iBAAiB;IAAA,sGACb,uCAAuC;IAAA;EAAA;EAAA;IAAA;IAAA;MAAA,6FAElE,iBAAqBU,OAAgB;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA,wBACR,IAAI,CAACC,2BAA2B,CAACD,OAAO,CAAC,iDAA/DL,WAAW,EAAXA,WAAW,uCAAG,GAAG;gBAEjBO,QAAQ,GAAG,oBAAoB;gBACrCP,WAAW,GAAGQ,0BAAQ,CAACC,WAAW,CAAC,IAAI,CAACC,GAAG,EAAEV,WAAW,EAAEO,QAAQ,CAAC;gBAAA;gBAAA,OAEvC,IAAI,CAACI,KAAK,CAAC,OAAO,CAAC,CAACC,mBAAmB,EAAE;cAAA;gBAAA;gBAA7DC,SAAS,yBAATA,SAAS;gBACbC,wBAAwB,qFACpB,SAAS;gBAEXC,QAAQ,aAAMD,wBAAwB,uCACpBD,SAAS,CAC/BG,GAAG,CAAC,UAACC,CAAC;kBAAA,oCAA2BC,IAAI,CAACC,SAAS,CAACF,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;gBAAA,CAAG,CAAC,CAC/DG,IAAI,CAAC,KAAK,CAAC,4FAImBP,SAAS,CACvCG,GAAG,CAAC,UAACK,CAAC,EAAEC,GAAG;kBAAA,uCAA8BA,GAAG;gBAAA,CAAG,CAAC,CAChDF,IAAI,CAAC,KAAK,CAAC;gBAGPG,MAAM,GAAGf,0BAAQ,CAACgB,aAAa,CAACxB,WAAW,CAAC,GAAG,SAAS,GAAG,WAAW;gBAE5EQ,0BAAQ,CAACiB,SAAS,CAACzB,WAAW,EAAEe,QAAQ,CAAC;gBAAA;gBAAA,OAEnB,IAAI,CAACW,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAACC,OAAO,CAAC,CAAC,CAAC,CAAC;cAAA;gBAA7DC,OAAO;gBAAA,iCAENC,kBAAU,CAACC,kBAAkB,CAACF,OAAO,EAAE;kBAC7CG,KAAK,EAAE,CACN;oBACCC,IAAI,EAAEzB,QAAQ;oBACd0B,IAAI,EAAEjC,WAAW;oBACjBuB,MAAM,EAANA,MAAM;oBACNzB,WAAW,EAAE;kBACd,CAAC;gBAEH,CAAC,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACF;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;EAAA;AAAA,EA3CsCoC,2BAAc;AAAA"}
|