@sprucelabs/spruce-cli 18.2.0 → 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 +6 -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 +5 -4
- package/build/__tests__/behavioral/permissions/PermissionStore.test.js +96 -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/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/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 +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 +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 +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/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 +95 -38
- 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/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 +27 -8
- 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
|
@@ -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
|
|
|
@@ -30,6 +30,7 @@ export default class SkillEmitsBootEventsTest extends AbstractEventTest {
|
|
|
30
30
|
@test()
|
|
31
31
|
protected static async skillEmitsDidBootEventsThatErrorAfterBoot() {
|
|
32
32
|
await this.installEventFeature('events')
|
|
33
|
+
this.disablePermissionSyncing()
|
|
33
34
|
const version = 'v2020_01_01'
|
|
34
35
|
|
|
35
36
|
await this.Action('event', 'listen').execute({
|
|
@@ -44,4 +45,9 @@ export default class SkillEmitsBootEventsTest extends AbstractEventTest {
|
|
|
44
45
|
const err = await assert.doesThrowAsync(() => response.meta?.promise)
|
|
45
46
|
errorAssert.assertError(err, 'LISTENER_NOT_IMPLEMENTED')
|
|
46
47
|
}
|
|
48
|
+
|
|
49
|
+
private static disablePermissionSyncing() {
|
|
50
|
+
const env = this.Service('env')
|
|
51
|
+
env.set('SHOULD_REGISTER_PERMISSIONS', 'false')
|
|
52
|
+
}
|
|
47
53
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { diskUtil, namesUtil } from '@sprucelabs/spruce-skill-utils'
|
|
2
2
|
import { test, assert } from '@sprucelabs/test-utils'
|
|
3
3
|
import testUtil from '../../../tests/utilities/test.utility'
|
|
4
|
-
import AbstractPermissionsTest from './AbstractPermissionsTest'
|
|
4
|
+
import AbstractPermissionsTest from './support/AbstractPermissionsTest'
|
|
5
5
|
|
|
6
6
|
export default class CreatingPermissionsTest extends AbstractPermissionsTest {
|
|
7
7
|
@test('can create permission contract named booking', 'booking')
|
|
@@ -16,7 +16,7 @@ export default class CreatingPermissionsTest extends AbstractPermissionsTest {
|
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
@test()
|
|
19
|
-
protected static async
|
|
19
|
+
protected static async generatesExpectedPermissionContract() {
|
|
20
20
|
const { contractPath } = await this.executeAndGetContract()
|
|
21
21
|
const contents = diskUtil.readFile(contractPath)
|
|
22
22
|
assert.doesInclude(
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { diskUtil } from '@sprucelabs/spruce-skill-utils'
|
|
2
|
+
import { assert, test } from '@sprucelabs/test-utils'
|
|
3
|
+
import AbstractPermissionsTest from './support/AbstractPermissionsTest'
|
|
4
|
+
|
|
5
|
+
export default class PermissionPluginTest extends AbstractPermissionsTest {
|
|
6
|
+
@test()
|
|
7
|
+
protected static async createsPluginWithExpectedContent() {
|
|
8
|
+
const expected = this.getPluginPath()
|
|
9
|
+
await this.assertFilePassesTypeChecks(expected)
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
@test()
|
|
13
|
+
protected static async pluginIsExpectedContent() {
|
|
14
|
+
const content = diskUtil.readFile(this.getPluginPath())
|
|
15
|
+
assert.isEqual(
|
|
16
|
+
content.trim(),
|
|
17
|
+
`export { plugin as default } from '@sprucelabs/spruce-permission-plugin'`
|
|
18
|
+
)
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
private static getPluginPath() {
|
|
22
|
+
return this.resolveHashSprucePath('features', 'permission.plugin.ts')
|
|
23
|
+
}
|
|
24
|
+
}
|