@sprucelabs/spruce-cli 18.2.0 → 18.3.1
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 +10 -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/EventWriter.test.d.ts +4 -0
- package/build/__tests__/behavioral/events/EventWriter.test.js +116 -0
- package/build/__tests__/behavioral/events/EventWriter.test.js.map +1 -0
- package/build/__tests__/behavioral/{ListeningToCoreEvents.test.d.ts → events/ListeningToCoreEvents.test.d.ts} +1 -1
- package/build/__tests__/behavioral/{ListeningToCoreEvents.test.js → events/ListeningToCoreEvents.test.js} +1 -1
- package/build/__tests__/behavioral/events/ListeningToCoreEvents.test.js.map +1 -0
- package/build/__tests__/behavioral/{RegisteringEventsOnBoot.test.d.ts → events/RegisteringEventsOnBoot.test.d.ts} +1 -1
- package/build/__tests__/behavioral/{RegisteringEventsOnBoot.test.js → events/RegisteringEventsOnBoot.test.js} +2 -2
- package/build/__tests__/behavioral/events/RegisteringEventsOnBoot.test.js.map +1 -0
- package/build/__tests__/behavioral/{RegisteringGlobalEvents.test.d.ts → events/RegisteringGlobalEvents.test.d.ts} +2 -3
- package/build/__tests__/behavioral/{RegisteringGlobalEvents.test.js → events/RegisteringGlobalEvents.test.js} +45 -70
- package/build/__tests__/behavioral/events/RegisteringGlobalEvents.test.js.map +1 -0
- 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/{SyncingEventsOnlyFromDependencies.test.d.ts → events/SyncingEventsOnlyFromDependencies.test.d.ts} +1 -1
- package/build/__tests__/behavioral/{SyncingEventsOnlyFromDependencies.test.js → events/SyncingEventsOnlyFromDependencies.test.js} +1 -1
- package/build/__tests__/behavioral/events/SyncingEventsOnlyFromDependencies.test.js.map +1 -0
- 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 +5 -4
- package/build/__tests__/behavioral/permissions/PermissionStore.test.js +97 -63
- 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/{CreatingSchemasWithGenerics.test.d.ts → schemas/CreatingSchemasWithGenerics.test.d.ts} +1 -1
- package/build/__tests__/behavioral/{CreatingSchemasWithGenerics.test.js → schemas/CreatingSchemasWithGenerics.test.js} +2 -2
- package/build/__tests__/behavioral/schemas/CreatingSchemasWithGenerics.test.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/{SettingUpSchemasForModuleDistribution.test.d.ts → schemas/SettingUpSchemasForModuleDistribution.test.d.ts} +1 -1
- package/build/__tests__/behavioral/{SettingUpSchemasForModuleDistribution.test.js → schemas/SettingUpSchemasForModuleDistribution.test.js} +3 -3
- package/build/__tests__/behavioral/schemas/SettingUpSchemasForModuleDistribution.test.js.map +1 -0
- package/build/__tests__/behavioral/{InstallingASkillAtAnOrg.test.d.ts → skill/InstallingASkillAtAnOrg.test.d.ts} +1 -1
- package/build/__tests__/behavioral/{InstallingASkillAtAnOrg.test.js → skill/InstallingASkillAtAnOrg.test.js} +2 -2
- package/build/__tests__/behavioral/skill/InstallingASkillAtAnOrg.test.js.map +1 -0
- package/build/__tests__/behavioral/{LoggingInAsASkill.test.d.ts → skill/LoggingInAsASkill.test.d.ts} +1 -1
- package/build/__tests__/behavioral/{LoggingInAsASkill.test.js → skill/LoggingInAsASkill.test.js} +2 -2
- package/build/__tests__/behavioral/skill/LoggingInAsASkill.test.js.map +1 -0
- package/build/__tests__/behavioral/{RebuildingASkill.test.d.ts → skill/RebuildingASkill.test.d.ts} +1 -1
- package/build/__tests__/behavioral/{RebuildingASkill.test.js → skill/RebuildingASkill.test.js} +2 -2
- package/build/__tests__/behavioral/skill/RebuildingASkill.test.js.map +1 -0
- 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/{SettingUpASkillForTesting.test.d.ts → tests/SettingUpASkillForTesting.test.d.ts} +1 -1
- package/build/__tests__/behavioral/{SettingUpASkillForTesting.test.js → tests/SettingUpASkillForTesting.test.js} +2 -2
- package/build/__tests__/behavioral/tests/SettingUpASkillForTesting.test.js.map +1 -0
- package/build/__tests__/behavioral/{TestReporterSettingsRemembered.test.d.ts → tests/TestReporterSettingsRemembered.test.d.ts} +1 -1
- package/build/__tests__/behavioral/{TestReporterSettingsRemembered.test.js → tests/TestReporterSettingsRemembered.test.js} +1 -1
- package/build/__tests__/behavioral/tests/TestReporterSettingsRemembered.test.js.map +1 -0
- package/build/__tests__/behavioral/{TestingDataStores.test.d.ts → tests/TestingDataStores.test.d.ts} +1 -1
- package/build/__tests__/behavioral/{TestingDataStores.test.js → tests/TestingDataStores.test.js} +3 -3
- package/build/__tests__/behavioral/tests/TestingDataStores.test.js.map +1 -0
- 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__/behavioral/{RegisteringSkillViewOnBoot.test.d.ts → views/RegisteringSkillViewOnBoot.test.d.ts} +4 -4
- package/build/__tests__/behavioral/{RegisteringSkillViewOnBoot.test.js → views/RegisteringSkillViewOnBoot.test.js} +2 -2
- package/build/__tests__/behavioral/views/RegisteringSkillViewOnBoot.test.js.map +1 -0
- package/build/__tests__/behavioral/{WatchingSkillViews.test.d.ts → views/WatchingSkillViews.test.d.ts} +1 -1
- package/build/__tests__/behavioral/{WatchingSkillViews.test.js → views/WatchingSkillViews.test.js} +2 -2
- package/build/__tests__/behavioral/views/WatchingSkillViews.test.js.map +1 -0
- 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/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 +138 -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 +6 -1
- package/build/features/permission/stores/PermissionStore.js +43 -31
- 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 +67 -18
- 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 +5 -5
- 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/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/package.json +5 -5
- package/node_modules/@typescript-eslint/types/_ts3.4/dist/generated/ast-spec.d.ts +20 -2
- package/node_modules/@typescript-eslint/types/dist/generated/ast-spec.d.ts +20 -2
- 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 +2 -0
- package/node_modules/@typescript-eslint/types/dist/generated/ast-spec.js.map +1 -1
- package/node_modules/@typescript-eslint/types/package.json +2 -2
- package/node_modules/@typescript-eslint/typescript-estree/_ts3.4/dist/ts-estree/estree-to-ts-node-types.d.ts +2 -0
- package/node_modules/@typescript-eslint/typescript-estree/_ts3.4/dist/ts-estree/ts-nodes.d.ts +2 -0
- package/node_modules/@typescript-eslint/typescript-estree/dist/convert.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/convert.js +15 -3
- package/node_modules/@typescript-eslint/typescript-estree/dist/convert.js.map +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/estree-to-ts-node-types.d.ts +2 -0
- 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 +2 -0
- 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 +5 -5
- 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 -49
- package/node_modules/@typescript-eslint/visitor-keys/dist/visitor-keys.js.map +1 -1
- package/node_modules/@typescript-eslint/visitor-keys/package.json +3 -3
- 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/EventWriter.test.ts +75 -0
- package/src/__tests__/behavioral/{ListeningToCoreEvents.test.ts → events/ListeningToCoreEvents.test.ts} +1 -1
- package/src/__tests__/behavioral/{RegisteringEventsOnBoot.test.ts → events/RegisteringEventsOnBoot.test.ts} +2 -2
- package/src/__tests__/behavioral/{RegisteringGlobalEvents.test.ts → events/RegisteringGlobalEvents.test.ts} +4 -12
- package/src/__tests__/behavioral/events/SkillEmitsBootEvents.test.ts +6 -0
- package/src/__tests__/behavioral/{SyncingEventsOnlyFromDependencies.test.ts → events/SyncingEventsOnlyFromDependencies.test.ts} +2 -2
- 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 +96 -38
- package/src/__tests__/behavioral/permissions/PermissionWriter.test.ts +24 -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/{CreatingSchemasWithGenerics.test.ts → schemas/CreatingSchemasWithGenerics.test.ts} +2 -2
- package/src/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.ts +12 -12
- package/src/__tests__/behavioral/{SettingUpSchemasForModuleDistribution.test.ts → schemas/SettingUpSchemasForModuleDistribution.test.ts} +4 -4
- package/src/__tests__/behavioral/{InstallingASkillAtAnOrg.test.ts → skill/InstallingASkillAtAnOrg.test.ts} +2 -2
- package/src/__tests__/behavioral/{LoggingInAsASkill.test.ts → skill/LoggingInAsASkill.test.ts} +3 -3
- package/src/__tests__/behavioral/{RebuildingASkill.test.ts → skill/RebuildingASkill.test.ts} +2 -2
- package/src/__tests__/behavioral/tests/CreatingATest.test.ts +2 -2
- package/src/__tests__/behavioral/{SettingUpASkillForTesting.test.ts → tests/SettingUpASkillForTesting.test.ts} +2 -2
- package/src/__tests__/behavioral/{TestReporterSettingsRemembered.test.ts → tests/TestReporterSettingsRemembered.test.ts} +2 -2
- package/src/__tests__/behavioral/{TestingDataStores.test.ts → tests/TestingDataStores.test.ts} +3 -3
- 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__/behavioral/{RegisteringSkillViewOnBoot.test.ts → views/RegisteringSkillViewOnBoot.test.ts} +2 -2
- package/src/__tests__/behavioral/{WatchingSkillViews.test.ts → views/WatchingSkillViews.test.ts} +3 -3
- 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/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 +68 -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 +27 -8
- package/src/features/permission/writers/PermissionWriter.ts +62 -4
- 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/CreatingSchemasWithGenerics.test.js.map +0 -1
- package/build/__tests__/behavioral/InstallingASkillAtAnOrg.test.js.map +0 -1
- package/build/__tests__/behavioral/ListeningToCoreEvents.test.js.map +0 -1
- package/build/__tests__/behavioral/LoggingInAsASkill.test.js.map +0 -1
- package/build/__tests__/behavioral/RebuildingASkill.test.js.map +0 -1
- package/build/__tests__/behavioral/RegisteringEventsOnBoot.test.js.map +0 -1
- package/build/__tests__/behavioral/RegisteringGlobalEvents.test.js.map +0 -1
- package/build/__tests__/behavioral/RegisteringSkillViewOnBoot.test.js.map +0 -1
- package/build/__tests__/behavioral/SettingUpASkillForTesting.test.js.map +0 -1
- package/build/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.js.map +0 -1
- package/build/__tests__/behavioral/SyncingEventsOnlyFromDependencies.test.js.map +0 -1
- package/build/__tests__/behavioral/TestReporterSettingsRemembered.test.js.map +0 -1
- package/build/__tests__/behavioral/TestingDataStores.test.js.map +0 -1
- package/build/__tests__/behavioral/WatchingSkillViews.test.js.map +0 -1
- 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
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { buildEventContract } from '@sprucelabs/mercury-types'
|
|
2
|
+
import { buildPermissionContract } from '@sprucelabs/mercury-types'
|
|
3
|
+
import upsertThemeEmitTargetAndPayloadSchema from '#spruce/schemas/heartwood/v2021_02_11/upsertThemeEmitTargetAndPayload.schema'
|
|
4
|
+
import upsertThemeResponsePayloadSchema from '#spruce/schemas/heartwood/v2021_02_11/upsertThemeResponsePayload.schema'
|
|
5
|
+
|
|
6
|
+
const upsertThemeEventContract = buildEventContract({
|
|
7
|
+
eventSignatures: {
|
|
8
|
+
'heartwood.upsert-theme::v2021_02_11': {
|
|
9
|
+
isGlobal: true,
|
|
10
|
+
emitPayloadSchema: upsertThemeEmitTargetAndPayloadSchema,
|
|
11
|
+
responsePayloadSchema: upsertThemeResponsePayloadSchema,
|
|
12
|
+
emitPermissionContract: buildPermissionContract({
|
|
13
|
+
id: 'upsertThemeEmitPermissions',
|
|
14
|
+
name: 'upsert theme',
|
|
15
|
+
description: null,
|
|
16
|
+
requireAllPermissions: false,
|
|
17
|
+
permissions: [
|
|
18
|
+
{
|
|
19
|
+
id: 'can-manage-organization-themes',
|
|
20
|
+
name: 'Can manage org themes',
|
|
21
|
+
description: null,
|
|
22
|
+
requireAllStatuses: false,
|
|
23
|
+
defaults: {
|
|
24
|
+
skill: true,
|
|
25
|
+
owner: {
|
|
26
|
+
default: true,
|
|
27
|
+
clockedIn: null,
|
|
28
|
+
clockedOut: null,
|
|
29
|
+
onPrem: null,
|
|
30
|
+
offPrem: null,
|
|
31
|
+
},
|
|
32
|
+
groupManager: null,
|
|
33
|
+
manager: null,
|
|
34
|
+
teammate: null,
|
|
35
|
+
anonymous: null,
|
|
36
|
+
loggedIn: null,
|
|
37
|
+
guest: null,
|
|
38
|
+
},
|
|
39
|
+
can: null,
|
|
40
|
+
},
|
|
41
|
+
],
|
|
42
|
+
}),
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
})
|
|
46
|
+
export default upsertThemeEventContract
|
|
47
|
+
|
|
48
|
+
export type UpsertThemeEventContract = typeof upsertThemeEventContract
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { buildEventContract } from '@sprucelabs/mercury-types'
|
|
2
|
+
|
|
3
|
+
const registerSkillViewsEventContract = buildEventContract({
|
|
4
|
+
eventSignatures: {
|
|
5
|
+
'spruce-cli.register-skill-views::v2021_04_11': {
|
|
6
|
+
isGlobal: true,
|
|
7
|
+
},
|
|
8
|
+
},
|
|
9
|
+
})
|
|
10
|
+
export default registerSkillViewsEventContract
|
|
11
|
+
|
|
12
|
+
export type RegisterSkillViewsEventContract =
|
|
13
|
+
typeof registerSkillViewsEventContract
|
|
@@ -12,6 +12,7 @@ import * as SpruceSchema from '@sprucelabs/schema'
|
|
|
12
12
|
import '@sprucelabs/spruce-event-utils'
|
|
13
13
|
import { SkillViewControllerId } from '@sprucelabs/heartwood-view-controllers'
|
|
14
14
|
import { BaseWidget } from '#spruce/../widgets/types/widgets.types'
|
|
15
|
+
import AbstractSpruceError from '@sprucelabs/error'
|
|
15
16
|
|
|
16
17
|
declare module '@sprucelabs/spruce-core-schemas/build/.spruce/schemas/core.schemas.types' {
|
|
17
18
|
|
|
@@ -921,58 +922,6 @@ declare module '@sprucelabs/spruce-core-schemas/build/.spruce/schemas/core.schem
|
|
|
921
922
|
}
|
|
922
923
|
|
|
923
924
|
|
|
924
|
-
namespace SpruceSchemas.SpruceCli.v2020_07_22 {
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
interface GeneratedFile {
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
'name': string
|
|
931
|
-
|
|
932
|
-
'path': string
|
|
933
|
-
|
|
934
|
-
'description'?: string| undefined | null
|
|
935
|
-
|
|
936
|
-
'action': ("skipped" | "generated" | "updated" | "deleted")
|
|
937
|
-
}
|
|
938
|
-
|
|
939
|
-
interface GeneratedFileSchema extends SpruceSchema.Schema {
|
|
940
|
-
id: 'generatedFile',
|
|
941
|
-
version: 'v2020_07_22',
|
|
942
|
-
namespace: 'SpruceCli',
|
|
943
|
-
name: '',
|
|
944
|
-
fields: {
|
|
945
|
-
/** . */
|
|
946
|
-
'name': {
|
|
947
|
-
type: 'text',
|
|
948
|
-
isRequired: true,
|
|
949
|
-
options: undefined
|
|
950
|
-
},
|
|
951
|
-
/** . */
|
|
952
|
-
'path': {
|
|
953
|
-
type: 'text',
|
|
954
|
-
isRequired: true,
|
|
955
|
-
options: undefined
|
|
956
|
-
},
|
|
957
|
-
/** . */
|
|
958
|
-
'description': {
|
|
959
|
-
type: 'text',
|
|
960
|
-
options: undefined
|
|
961
|
-
},
|
|
962
|
-
/** . */
|
|
963
|
-
'action': {
|
|
964
|
-
type: 'select',
|
|
965
|
-
isRequired: true,
|
|
966
|
-
options: {choices: [{"label":"Skipped","value":"skipped"},{"label":"Generated","value":"generated"},{"label":"Updated","value":"updated"},{"label":"Deleted","value":"deleted"}],}
|
|
967
|
-
},
|
|
968
|
-
}
|
|
969
|
-
}
|
|
970
|
-
|
|
971
|
-
interface GeneratedFileEntity extends SchemaEntity<SpruceSchemas.SpruceCli.v2020_07_22.GeneratedFileSchema> {}
|
|
972
|
-
|
|
973
|
-
}
|
|
974
|
-
|
|
975
|
-
|
|
976
925
|
namespace SpruceSchemas.SpruceCli.v2020_07_22 {
|
|
977
926
|
|
|
978
927
|
|
|
@@ -2997,4 +2946,174 @@ declare module '@sprucelabs/spruce-core-schemas/build/.spruce/schemas/core.schem
|
|
|
2997
2946
|
|
|
2998
2947
|
}
|
|
2999
2948
|
|
|
2949
|
+
|
|
2950
|
+
namespace SpruceSchemas.SpruceCli.v2020_07_22 {
|
|
2951
|
+
|
|
2952
|
+
|
|
2953
|
+
interface NpmPackage {
|
|
2954
|
+
|
|
2955
|
+
|
|
2956
|
+
'name': string
|
|
2957
|
+
|
|
2958
|
+
'version'?: string| undefined | null
|
|
2959
|
+
|
|
2960
|
+
'isDev'?: boolean| undefined | null
|
|
2961
|
+
}
|
|
2962
|
+
|
|
2963
|
+
interface NpmPackageSchema extends SpruceSchema.Schema {
|
|
2964
|
+
id: 'npmPackage',
|
|
2965
|
+
version: 'v2020_07_22',
|
|
2966
|
+
namespace: 'SpruceCli',
|
|
2967
|
+
name: '',
|
|
2968
|
+
fields: {
|
|
2969
|
+
/** . */
|
|
2970
|
+
'name': {
|
|
2971
|
+
type: 'text',
|
|
2972
|
+
isRequired: true,
|
|
2973
|
+
options: undefined
|
|
2974
|
+
},
|
|
2975
|
+
/** . */
|
|
2976
|
+
'version': {
|
|
2977
|
+
type: 'text',
|
|
2978
|
+
options: undefined
|
|
2979
|
+
},
|
|
2980
|
+
/** . */
|
|
2981
|
+
'isDev': {
|
|
2982
|
+
type: 'boolean',
|
|
2983
|
+
options: undefined
|
|
2984
|
+
},
|
|
2985
|
+
}
|
|
2986
|
+
}
|
|
2987
|
+
|
|
2988
|
+
interface NpmPackageEntity extends SchemaEntity<SpruceSchemas.SpruceCli.v2020_07_22.NpmPackageSchema> {}
|
|
2989
|
+
|
|
2990
|
+
}
|
|
2991
|
+
|
|
2992
|
+
|
|
2993
|
+
namespace SpruceSchemas.SpruceCli.v2020_07_22 {
|
|
2994
|
+
|
|
2995
|
+
|
|
2996
|
+
interface GeneratedFile {
|
|
2997
|
+
|
|
2998
|
+
|
|
2999
|
+
'name': string
|
|
3000
|
+
|
|
3001
|
+
'path': string
|
|
3002
|
+
|
|
3003
|
+
'description'?: string| undefined | null
|
|
3004
|
+
|
|
3005
|
+
'action': ("skipped" | "generated" | "updated" | "deleted")
|
|
3006
|
+
}
|
|
3007
|
+
|
|
3008
|
+
interface GeneratedFileSchema extends SpruceSchema.Schema {
|
|
3009
|
+
id: 'generatedFile',
|
|
3010
|
+
version: 'v2020_07_22',
|
|
3011
|
+
namespace: 'SpruceCli',
|
|
3012
|
+
name: '',
|
|
3013
|
+
fields: {
|
|
3014
|
+
/** . */
|
|
3015
|
+
'name': {
|
|
3016
|
+
type: 'text',
|
|
3017
|
+
isRequired: true,
|
|
3018
|
+
options: undefined
|
|
3019
|
+
},
|
|
3020
|
+
/** . */
|
|
3021
|
+
'path': {
|
|
3022
|
+
type: 'text',
|
|
3023
|
+
isRequired: true,
|
|
3024
|
+
options: undefined
|
|
3025
|
+
},
|
|
3026
|
+
/** . */
|
|
3027
|
+
'description': {
|
|
3028
|
+
type: 'text',
|
|
3029
|
+
options: undefined
|
|
3030
|
+
},
|
|
3031
|
+
/** . */
|
|
3032
|
+
'action': {
|
|
3033
|
+
type: 'select',
|
|
3034
|
+
isRequired: true,
|
|
3035
|
+
options: {choices: [{"label":"Skipped","value":"skipped"},{"label":"Generated","value":"generated"},{"label":"Updated","value":"updated"},{"label":"Deleted","value":"deleted"}],}
|
|
3036
|
+
},
|
|
3037
|
+
}
|
|
3038
|
+
}
|
|
3039
|
+
|
|
3040
|
+
interface GeneratedFileEntity extends SchemaEntity<SpruceSchemas.SpruceCli.v2020_07_22.GeneratedFileSchema> {}
|
|
3041
|
+
|
|
3042
|
+
}
|
|
3043
|
+
|
|
3044
|
+
|
|
3045
|
+
namespace SpruceSchemas.SpruceCli.v2020_07_22 {
|
|
3046
|
+
|
|
3047
|
+
|
|
3048
|
+
interface ActionResponse {
|
|
3049
|
+
|
|
3050
|
+
|
|
3051
|
+
'files'?: SpruceSchemas.SpruceCli.v2020_07_22.GeneratedFile[]| undefined | null
|
|
3052
|
+
|
|
3053
|
+
'headline'?: string| undefined | null
|
|
3054
|
+
|
|
3055
|
+
'hints'?: string[]| undefined | null
|
|
3056
|
+
|
|
3057
|
+
'summaryLines'?: string[]| undefined | null
|
|
3058
|
+
|
|
3059
|
+
'errors'?: (AbstractSpruceError<any>)[]| undefined | null
|
|
3060
|
+
|
|
3061
|
+
'meta'?: (Record<string, any>)| undefined | null
|
|
3062
|
+
|
|
3063
|
+
'packagesInstalled'?: SpruceSchemas.SpruceCli.v2020_07_22.NpmPackage[]| undefined | null
|
|
3064
|
+
}
|
|
3065
|
+
|
|
3066
|
+
interface ActionResponseSchema extends SpruceSchema.Schema {
|
|
3067
|
+
id: 'actionResponse',
|
|
3068
|
+
version: 'v2020_07_22',
|
|
3069
|
+
namespace: 'SpruceCli',
|
|
3070
|
+
name: 'Action response',
|
|
3071
|
+
fields: {
|
|
3072
|
+
/** . */
|
|
3073
|
+
'files': {
|
|
3074
|
+
type: 'schema',
|
|
3075
|
+
isArray: true,
|
|
3076
|
+
options: {schema: SpruceSchemas.SpruceCli.v2020_07_22.GeneratedFileSchema,}
|
|
3077
|
+
},
|
|
3078
|
+
/** . */
|
|
3079
|
+
'headline': {
|
|
3080
|
+
type: 'text',
|
|
3081
|
+
options: undefined
|
|
3082
|
+
},
|
|
3083
|
+
/** . */
|
|
3084
|
+
'hints': {
|
|
3085
|
+
type: 'text',
|
|
3086
|
+
isArray: true,
|
|
3087
|
+
options: undefined
|
|
3088
|
+
},
|
|
3089
|
+
/** . */
|
|
3090
|
+
'summaryLines': {
|
|
3091
|
+
type: 'text',
|
|
3092
|
+
isArray: true,
|
|
3093
|
+
options: undefined
|
|
3094
|
+
},
|
|
3095
|
+
/** . */
|
|
3096
|
+
'errors': {
|
|
3097
|
+
type: 'raw',
|
|
3098
|
+
isArray: true,
|
|
3099
|
+
options: {valueType: `AbstractSpruceError<any>`,}
|
|
3100
|
+
},
|
|
3101
|
+
/** . */
|
|
3102
|
+
'meta': {
|
|
3103
|
+
type: 'raw',
|
|
3104
|
+
options: {valueType: `Record<string, any>`,}
|
|
3105
|
+
},
|
|
3106
|
+
/** . */
|
|
3107
|
+
'packagesInstalled': {
|
|
3108
|
+
type: 'schema',
|
|
3109
|
+
isArray: true,
|
|
3110
|
+
options: {schema: SpruceSchemas.SpruceCli.v2020_07_22.NpmPackageSchema,}
|
|
3111
|
+
},
|
|
3112
|
+
}
|
|
3113
|
+
}
|
|
3114
|
+
|
|
3115
|
+
interface ActionResponseEntity extends SchemaEntity<SpruceSchemas.SpruceCli.v2020_07_22.ActionResponseSchema> {}
|
|
3116
|
+
|
|
3117
|
+
}
|
|
3118
|
+
|
|
3000
3119
|
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { SchemaRegistry } from '@sprucelabs/schema'
|
|
2
|
+
import { SpruceSchemas } from '../../schemas.types'
|
|
3
|
+
|
|
4
|
+
import generatedFileSchema_v2020_07_22 from '#spruce/schemas/spruceCli/v2020_07_22/generatedFile.schema'
|
|
5
|
+
import npmPackageSchema_v2020_07_22 from '#spruce/schemas/spruceCli/v2020_07_22/npmPackage.schema'
|
|
6
|
+
|
|
7
|
+
const actionResponseSchema: SpruceSchemas.SpruceCli.v2020_07_22.ActionResponseSchema = {
|
|
8
|
+
id: 'actionResponse',
|
|
9
|
+
version: 'v2020_07_22',
|
|
10
|
+
namespace: 'SpruceCli',
|
|
11
|
+
name: 'Action response',
|
|
12
|
+
fields: {
|
|
13
|
+
/** . */
|
|
14
|
+
'files': {
|
|
15
|
+
type: 'schema',
|
|
16
|
+
isArray: true,
|
|
17
|
+
options: {schema: generatedFileSchema_v2020_07_22,}
|
|
18
|
+
},
|
|
19
|
+
/** . */
|
|
20
|
+
'headline': {
|
|
21
|
+
type: 'text',
|
|
22
|
+
options: undefined
|
|
23
|
+
},
|
|
24
|
+
/** . */
|
|
25
|
+
'hints': {
|
|
26
|
+
type: 'text',
|
|
27
|
+
isArray: true,
|
|
28
|
+
options: undefined
|
|
29
|
+
},
|
|
30
|
+
/** . */
|
|
31
|
+
'summaryLines': {
|
|
32
|
+
type: 'text',
|
|
33
|
+
isArray: true,
|
|
34
|
+
options: undefined
|
|
35
|
+
},
|
|
36
|
+
/** . */
|
|
37
|
+
'errors': {
|
|
38
|
+
type: 'raw',
|
|
39
|
+
isArray: true,
|
|
40
|
+
options: {valueType: `AbstractSpruceError<any>`,}
|
|
41
|
+
},
|
|
42
|
+
/** . */
|
|
43
|
+
'meta': {
|
|
44
|
+
type: 'raw',
|
|
45
|
+
options: {valueType: `Record<string, any>`,}
|
|
46
|
+
},
|
|
47
|
+
/** . */
|
|
48
|
+
'packagesInstalled': {
|
|
49
|
+
type: 'schema',
|
|
50
|
+
isArray: true,
|
|
51
|
+
options: {schema: npmPackageSchema_v2020_07_22,}
|
|
52
|
+
},
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
SchemaRegistry.getInstance().trackSchema(actionResponseSchema)
|
|
57
|
+
|
|
58
|
+
export default actionResponseSchema
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { SchemaRegistry } from '@sprucelabs/schema'
|
|
2
|
+
import { SpruceSchemas } from '../../schemas.types'
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
const npmPackageSchema: SpruceSchemas.SpruceCli.v2020_07_22.NpmPackageSchema = {
|
|
7
|
+
id: 'npmPackage',
|
|
8
|
+
version: 'v2020_07_22',
|
|
9
|
+
namespace: 'SpruceCli',
|
|
10
|
+
name: '',
|
|
11
|
+
fields: {
|
|
12
|
+
/** . */
|
|
13
|
+
'name': {
|
|
14
|
+
type: 'text',
|
|
15
|
+
isRequired: true,
|
|
16
|
+
options: undefined
|
|
17
|
+
},
|
|
18
|
+
/** . */
|
|
19
|
+
'version': {
|
|
20
|
+
type: 'text',
|
|
21
|
+
options: undefined
|
|
22
|
+
},
|
|
23
|
+
/** . */
|
|
24
|
+
'isDev': {
|
|
25
|
+
type: 'boolean',
|
|
26
|
+
options: undefined
|
|
27
|
+
},
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
SchemaRegistry.getInstance().trackSchema(npmPackageSchema)
|
|
32
|
+
|
|
33
|
+
export default npmPackageSchema
|
package/src/GlobalEmitter.ts
CHANGED
|
@@ -4,8 +4,8 @@ import {
|
|
|
4
4
|
MercuryEventEmitter,
|
|
5
5
|
} from '@sprucelabs/mercury-types'
|
|
6
6
|
import { buildSchema } from '@sprucelabs/schema'
|
|
7
|
+
import actionResponseSchema from '#spruce/schemas/spruceCli/v2020_07_22/actionResponse.schema'
|
|
7
8
|
import watcherDidDetectChangesEmitPayloadSchema from '#spruce/schemas/spruceCli/v2020_07_22/watcherDidDetectChangesEmitPayload.schema'
|
|
8
|
-
import { actionResponseSchema } from './features/features.types'
|
|
9
9
|
|
|
10
10
|
export const globalContract = buildEventContract({
|
|
11
11
|
eventSignatures: {
|
|
@@ -97,12 +97,7 @@ export const globalContract = buildEventContract({
|
|
|
97
97
|
},
|
|
98
98
|
},
|
|
99
99
|
}),
|
|
100
|
-
responsePayloadSchema:
|
|
101
|
-
id: 'willExecuteResponsePayload',
|
|
102
|
-
fields: {
|
|
103
|
-
...actionResponseSchema.fields,
|
|
104
|
-
},
|
|
105
|
-
}),
|
|
100
|
+
responsePayloadSchema: actionResponseSchema,
|
|
106
101
|
},
|
|
107
102
|
'feature.did-execute': {
|
|
108
103
|
emitPayloadSchema: buildSchema({
|
|
@@ -15,6 +15,8 @@ export default class TestingAConversationTest extends AbstractCliTest {
|
|
|
15
15
|
protected static async shouldRunWithoutConversationShouldShutdownOnItsOwn() {
|
|
16
16
|
await this.FeatureFixture().installCachedFeatures('conversation')
|
|
17
17
|
|
|
18
|
+
this.disablePermissionSyncing()
|
|
19
|
+
|
|
18
20
|
const test = await this.Action('conversation', 'test').execute({
|
|
19
21
|
shouldReturnImmediately: true,
|
|
20
22
|
shouldRunSilently: true,
|
|
@@ -58,43 +60,6 @@ export default class TestingAConversationTest extends AbstractCliTest {
|
|
|
58
60
|
} while (psResults.length > 0)
|
|
59
61
|
}
|
|
60
62
|
|
|
61
|
-
// @test.skip('No longer dies on stderr')
|
|
62
|
-
// protected static async diesWithStandardError() {
|
|
63
|
-
// const { conversation } = await this.installAndCreateConversation()
|
|
64
|
-
|
|
65
|
-
// const topicFile = this.resolvePath(
|
|
66
|
-
// 'src',
|
|
67
|
-
// 'conversations',
|
|
68
|
-
// 'knockKnockJoke.topic.ts'
|
|
69
|
-
// )
|
|
70
|
-
|
|
71
|
-
// const contents =
|
|
72
|
-
// `process.stderr.write('oh no!')\n\n` + diskUtil.readFile(topicFile)
|
|
73
|
-
|
|
74
|
-
// diskUtil.writeFile(topicFile, contents)
|
|
75
|
-
|
|
76
|
-
// const test = await conversation
|
|
77
|
-
// .Action('test')
|
|
78
|
-
// .execute({ shouldRunSilently: true })
|
|
79
|
-
|
|
80
|
-
// assert.isTruthy(test.errors)
|
|
81
|
-
// errorAssert.assertError(test.errors[0], 'EXECUTING_COMMAND_FAILED', {
|
|
82
|
-
// stderr: 'oh no!',
|
|
83
|
-
// })
|
|
84
|
-
// }
|
|
85
|
-
|
|
86
|
-
private static async installAndCreateConversation() {
|
|
87
|
-
await this.FeatureFixture().installCachedFeatures('conversation')
|
|
88
|
-
|
|
89
|
-
const results = await this.Action('conversation', 'create').execute({
|
|
90
|
-
nameReadable: 'tell a knock knock joke',
|
|
91
|
-
nameCamel: 'knockKnockJoke',
|
|
92
|
-
})
|
|
93
|
-
|
|
94
|
-
assert.isFalsy(results.errors)
|
|
95
|
-
return { createResults: results }
|
|
96
|
-
}
|
|
97
|
-
|
|
98
63
|
@test()
|
|
99
64
|
protected static async doesntReturnErrorWhenKilled() {
|
|
100
65
|
await this.installAndCreateConversation()
|
|
@@ -131,4 +96,22 @@ export default class TestingAConversationTest extends AbstractCliTest {
|
|
|
131
96
|
|
|
132
97
|
assert.isArray(results.errors)
|
|
133
98
|
}
|
|
99
|
+
|
|
100
|
+
private static async installAndCreateConversation() {
|
|
101
|
+
await this.FeatureFixture().installCachedFeatures('conversation')
|
|
102
|
+
this.disablePermissionSyncing()
|
|
103
|
+
|
|
104
|
+
const results = await this.Action('conversation', 'create').execute({
|
|
105
|
+
nameReadable: 'tell a knock knock joke',
|
|
106
|
+
nameCamel: 'knockKnockJoke',
|
|
107
|
+
})
|
|
108
|
+
|
|
109
|
+
assert.isFalsy(results.errors)
|
|
110
|
+
return { createResults: results }
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
private static disablePermissionSyncing() {
|
|
114
|
+
const env = this.Service('env')
|
|
115
|
+
env.set('SHOULD_REGISTER_PERMISSIONS', 'false')
|
|
116
|
+
}
|
|
134
117
|
}
|
|
@@ -8,6 +8,7 @@ import testUtil from '../../../tests/utilities/test.utility'
|
|
|
8
8
|
|
|
9
9
|
export default class GeneratingMercuryEventContractTest extends AbstractCliTest {
|
|
10
10
|
private static cli: CliInterface
|
|
11
|
+
|
|
11
12
|
protected static async beforeEach() {
|
|
12
13
|
await super.beforeEach()
|
|
13
14
|
this.cli = await this.Cli()
|
|
@@ -26,6 +27,7 @@ export default class GeneratingMercuryEventContractTest extends AbstractCliTest
|
|
|
26
27
|
|
|
27
28
|
@test()
|
|
28
29
|
protected static async generatesContractAtCwd() {
|
|
30
|
+
await this.FeatureFixture().installCachedFeatures('events')
|
|
29
31
|
const results = await this.Action('eventContract', 'pull').execute({})
|
|
30
32
|
assert.isFalsy(results.errors)
|
|
31
33
|
|
|
@@ -51,6 +53,7 @@ export default class GeneratingMercuryEventContractTest extends AbstractCliTest
|
|
|
51
53
|
|
|
52
54
|
@test()
|
|
53
55
|
protected static async generatesAtDestination() {
|
|
56
|
+
await this.FeatureFixture().installCachedFeatures('events')
|
|
54
57
|
const results = await this.Action('eventContract', 'pull').execute({
|
|
55
58
|
destination: './src/tests',
|
|
56
59
|
})
|
|
@@ -109,7 +112,16 @@ export default class GeneratingMercuryEventContractTest extends AbstractCliTest
|
|
|
109
112
|
protected static async contractHasTypes() {
|
|
110
113
|
this.cli = await this.FeatureFixture().installCachedFeatures('node')
|
|
111
114
|
|
|
112
|
-
const
|
|
115
|
+
const promise = this.Action('eventContract', 'pull', {
|
|
116
|
+
shouldAutoHandleDependencies: true,
|
|
117
|
+
}).execute({})
|
|
118
|
+
|
|
119
|
+
await this.waitForInput()
|
|
120
|
+
await this.ui.sendInput('Y')
|
|
121
|
+
await this.waitForInput()
|
|
122
|
+
await this.ui.sendInput('\n')
|
|
123
|
+
|
|
124
|
+
const results = await promise
|
|
113
125
|
|
|
114
126
|
const match = testUtil.assertFileByNameInGeneratedFiles(
|
|
115
127
|
'events.contract.ts',
|
|
@@ -128,6 +140,7 @@ export default class GeneratingMercuryEventContractTest extends AbstractCliTest
|
|
|
128
140
|
|
|
129
141
|
@test()
|
|
130
142
|
protected static async generatingASecondTimeReportsAnUpdate() {
|
|
143
|
+
this.cli = await this.FeatureFixture().installCachedFeatures('events')
|
|
131
144
|
await this.Action('eventContract', 'pull').execute({})
|
|
132
145
|
|
|
133
146
|
const results = await this.Action('eventContract', 'pull').execute({})
|
|
@@ -145,7 +158,6 @@ export default class GeneratingMercuryEventContractTest extends AbstractCliTest
|
|
|
145
158
|
|
|
146
159
|
private static async installSkillAndPullContracts() {
|
|
147
160
|
this.cli = await this.FeatureFixture().installCachedFeatures('events')
|
|
148
|
-
|
|
149
161
|
return await this.pullContracts()
|
|
150
162
|
}
|
|
151
163
|
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { namesUtil, versionUtil } from '@sprucelabs/spruce-skill-utils'
|
|
2
|
+
import { EventSignatureTemplateItem } from '@sprucelabs/spruce-templates'
|
|
3
|
+
import { test, assert, generateId } from '@sprucelabs/test-utils'
|
|
4
|
+
import AbstractCliTest from '../../../tests/AbstractCliTest'
|
|
5
|
+
|
|
6
|
+
export default class EventWriterTest extends AbstractCliTest {
|
|
7
|
+
@test()
|
|
8
|
+
protected static async canCreateEventWriter() {
|
|
9
|
+
await this.FeatureFixture().installCachedFeatures('events')
|
|
10
|
+
const writer = this.writers.Writer('event', { fileDescriptions: [] })
|
|
11
|
+
const name = 'My event'
|
|
12
|
+
const namespace = 'appointments'
|
|
13
|
+
|
|
14
|
+
const contractId1 = generateId() as any
|
|
15
|
+
const contractId2 = generateId() as any
|
|
16
|
+
const permissionId1 = generateId() as any
|
|
17
|
+
const permissionId2 = generateId() as any
|
|
18
|
+
|
|
19
|
+
const sig: EventSignatureTemplateItem = {
|
|
20
|
+
isGlobal: true,
|
|
21
|
+
emitPermissions: {
|
|
22
|
+
contractId: contractId1,
|
|
23
|
+
permissionIdsAny: [permissionId1],
|
|
24
|
+
},
|
|
25
|
+
listenPermissions: {
|
|
26
|
+
contractId: contractId2,
|
|
27
|
+
permissionIdsAny: [permissionId2],
|
|
28
|
+
},
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
const permWriter = this.writers.Writer('permission', {
|
|
32
|
+
fileDescriptions: [],
|
|
33
|
+
})
|
|
34
|
+
|
|
35
|
+
//@ts-ignore
|
|
36
|
+
await permWriter.writeTypesFile(this.cwd, {
|
|
37
|
+
[contractId1]: [permissionId1],
|
|
38
|
+
[contractId2]: [permissionId2],
|
|
39
|
+
})
|
|
40
|
+
|
|
41
|
+
const results = await writer.writeContracts(
|
|
42
|
+
this.resolveHashSprucePath('events'),
|
|
43
|
+
{
|
|
44
|
+
eventBuilderFile: '@sprucelabs/mercury-types',
|
|
45
|
+
schemaTemplateItems: [],
|
|
46
|
+
shouldImportCoreEvents: false,
|
|
47
|
+
skillEventContractTypesFile: '',
|
|
48
|
+
eventContractTemplateItems: [
|
|
49
|
+
{
|
|
50
|
+
imports: [
|
|
51
|
+
{
|
|
52
|
+
importAs: '{ buildEventContract }',
|
|
53
|
+
package: '@sprucelabs/mercury-types',
|
|
54
|
+
},
|
|
55
|
+
],
|
|
56
|
+
isLocal: true,
|
|
57
|
+
nameCamel: namesUtil.toCamel(name),
|
|
58
|
+
namePascal: namesUtil.toPascal(name),
|
|
59
|
+
namespace,
|
|
60
|
+
namespaceCamel: namesUtil.toCamel(namespace),
|
|
61
|
+
namespacePascal: namesUtil.toPascal(namespace),
|
|
62
|
+
version: versionUtil.generateVersion().constValue,
|
|
63
|
+
eventSignatures: {
|
|
64
|
+
test: sig,
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
],
|
|
68
|
+
}
|
|
69
|
+
)
|
|
70
|
+
|
|
71
|
+
const match = results[0]
|
|
72
|
+
const imported = await this.Service('import').importDefault(match.path)
|
|
73
|
+
assert.isEqualDeep(imported.eventSignatures.test, sig)
|
|
74
|
+
}
|
|
75
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { test, assert } from '@sprucelabs/test-utils'
|
|
2
|
-
import AbstractSkillTest from '
|
|
2
|
+
import AbstractSkillTest from '../../../tests/AbstractSkillTest'
|
|
3
3
|
|
|
4
4
|
export default class ListeningToCoreEventsTest extends AbstractSkillTest {
|
|
5
5
|
protected static skillCacheKey = 'events'
|
|
@@ -4,8 +4,8 @@ import {
|
|
|
4
4
|
} from '@sprucelabs/spruce-event-utils'
|
|
5
5
|
import { namesUtil, versionUtil } from '@sprucelabs/spruce-skill-utils'
|
|
6
6
|
import { test, assert } from '@sprucelabs/test-utils'
|
|
7
|
-
import AbstractEventTest from '
|
|
8
|
-
import { DEMO_NUMBER_EVENTS_ON_BOOT } from '
|
|
7
|
+
import AbstractEventTest from '../../../tests/AbstractEventTest'
|
|
8
|
+
import { DEMO_NUMBER_EVENTS_ON_BOOT } from '../../../tests/constants'
|
|
9
9
|
|
|
10
10
|
const EVENT_NAME_READABLE = 'did book appointment'
|
|
11
11
|
const EVENT_NAME = 'did-book-appointment'
|