@sprucelabs/spruce-cli 18.1.8 → 18.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/build/.spruce/events/events.contract.d.ts +159 -0
- package/build/.spruce/events/events.contract.js +5 -1
- package/build/.spruce/events/events.contract.js.map +1 -1
- package/build/.spruce/events/heartwood/getActiveTheme.v2021_02_11.contract.d.ts +46 -0
- package/build/.spruce/events/heartwood/getActiveTheme.v2021_02_11.contract.js +57 -0
- package/build/.spruce/events/heartwood/getActiveTheme.v2021_02_11.contract.js.map +1 -0
- package/build/.spruce/events/heartwood/registerDashboardCards.v2021_02_11.contract.d.ts +68 -0
- package/build/.spruce/events/heartwood/registerDashboardCards.v2021_02_11.contract.js +78 -0
- package/build/.spruce/events/heartwood/registerDashboardCards.v2021_02_11.contract.js.map +1 -0
- package/build/.spruce/events/heartwood/upsertTheme.v2021_02_11.contract.d.ts +40 -0
- package/build/.spruce/events/heartwood/upsertTheme.v2021_02_11.contract.js +51 -0
- package/build/.spruce/events/heartwood/upsertTheme.v2021_02_11.contract.js.map +1 -0
- package/build/.spruce/events/spruceCli/registerSkillViews.v2021_04_11.contract.d.ts +9 -0
- package/build/.spruce/events/spruceCli/registerSkillViews.v2021_04_11.contract.js +17 -0
- package/build/.spruce/events/spruceCli/registerSkillViews.v2021_04_11.contract.js.map +1 -0
- package/build/.spruce/schemas/schemas.types.d.ts +158 -55
- package/build/.spruce/schemas/schemas.types.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/actionResponse.schema.d.ts +3 -0
- package/build/.spruce/schemas/spruceCli/v2020_07_22/actionResponse.schema.js +70 -0
- package/build/.spruce/schemas/spruceCli/v2020_07_22/actionResponse.schema.js.map +1 -0
- package/build/.spruce/schemas/spruceCli/v2020_07_22/npmPackage.schema.d.ts +3 -0
- package/build/.spruce/schemas/spruceCli/v2020_07_22/npmPackage.schema.js +35 -0
- package/build/.spruce/schemas/spruceCli/v2020_07_22/npmPackage.schema.js.map +1 -0
- package/build/.spruce/settings.json +2 -1
- package/build/GlobalEmitter.d.ts +13 -38
- package/build/GlobalEmitter.js +3 -6
- package/build/GlobalEmitter.js.map +1 -1
- package/build/__tests__/behavioral/TestingAConversation.test.d.ts +2 -1
- package/build/__tests__/behavioral/TestingAConversation.test.js +74 -84
- package/build/__tests__/behavioral/TestingAConversation.test.js.map +1 -1
- package/build/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.js +38 -13
- package/build/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.js.map +1 -1
- package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.d.ts +1 -0
- package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.js +16 -9
- package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.js.map +1 -1
- package/build/__tests__/behavioral/permissions/CreatingPermissions.test.d.ts +2 -2
- package/build/__tests__/behavioral/permissions/CreatingPermissions.test.js +7 -7
- package/build/__tests__/behavioral/permissions/CreatingPermissions.test.js.map +1 -1
- package/build/__tests__/behavioral/permissions/PermissionPlugin.test.d.ts +6 -0
- package/build/__tests__/behavioral/permissions/PermissionPlugin.test.js +85 -0
- package/build/__tests__/behavioral/permissions/PermissionPlugin.test.js.map +1 -0
- package/build/__tests__/behavioral/permissions/PermissionStore.test.d.ts +12 -2
- package/build/__tests__/behavioral/permissions/PermissionStore.test.js +248 -36
- package/build/__tests__/behavioral/permissions/PermissionStore.test.js.map +1 -1
- package/build/__tests__/behavioral/permissions/PermissionWriter.test.d.ts +5 -0
- package/build/__tests__/behavioral/permissions/PermissionWriter.test.js +88 -0
- package/build/__tests__/behavioral/permissions/PermissionWriter.test.js.map +1 -0
- package/build/__tests__/behavioral/permissions/SyncingPermissions.test.d.ts +15 -4
- package/build/__tests__/behavioral/permissions/SyncingPermissions.test.js +325 -28
- package/build/__tests__/behavioral/permissions/SyncingPermissions.test.js.map +1 -1
- package/build/__tests__/behavioral/permissions/support/AbstractPermissionsTest.d.ts +11 -0
- package/build/__tests__/behavioral/permissions/{AbstractPermissionsTest.js → support/AbstractPermissionsTest.js} +34 -2
- package/build/__tests__/behavioral/permissions/support/AbstractPermissionsTest.js.map +1 -0
- package/build/__tests__/behavioral/permissions/support/generateShortAlphaId.d.ts +1 -0
- package/build/__tests__/behavioral/permissions/support/generateShortAlphaId.js +11 -0
- package/build/__tests__/behavioral/permissions/support/generateShortAlphaId.js.map +1 -0
- package/build/__tests__/behavioral/permissions/support/renderPermissionTestFile.d.ts +1 -0
- package/build/__tests__/behavioral/permissions/support/renderPermissionTestFile.js +17 -0
- package/build/__tests__/behavioral/permissions/support/renderPermissionTestFile.js.map +1 -0
- package/build/__tests__/behavioral/permissions/support/sortPermissionContracts.d.ts +5 -0
- package/build/__tests__/behavioral/permissions/support/sortPermissionContracts.js +10 -0
- package/build/__tests__/behavioral/permissions/support/sortPermissionContracts.js.map +1 -0
- package/build/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.d.ts +1 -1
- package/build/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.js +46 -46
- package/build/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.js.map +1 -1
- package/build/__tests__/behavioral/tests/CreatingATest.test.js +2 -2
- package/build/__tests__/behavioral/tests/CreatingATest.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingANodeModule.test.js +7 -3
- package/build/__tests__/behavioral/upgrading/UpgradingANodeModule.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingASkill3.test.js +2 -2
- package/build/__tests__/behavioral/upgrading/UpgradingASkill3.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingASkill4.test.js +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingASkill4.test.js.map +1 -1
- package/build/__tests__/implementation/ActionExecuter2.test.d.ts +1 -1
- package/build/__tests__/implementation/ActionExecuter2.test.js +23 -11
- package/build/__tests__/implementation/ActionExecuter2.test.js.map +1 -1
- package/build/__tests__/implementation/GlobalEmitter.test.d.ts +1 -0
- package/build/__tests__/implementation/GlobalEmitter.test.js +40 -3
- package/build/__tests__/implementation/GlobalEmitter.test.js.map +1 -1
- package/build/__tests__/implementation/SkillStore.test.js +3 -4
- package/build/__tests__/implementation/SkillStore.test.js.map +1 -1
- package/build/__tests__/support/EventFaker.d.ts +5 -0
- package/build/__tests__/support/EventFaker.js +48 -0
- package/build/__tests__/support/EventFaker.js.map +1 -0
- package/build/features/AbstractAction.d.ts +1 -1
- package/build/features/AbstractAction.js.map +1 -1
- package/build/features/AbstractFeature.d.ts +3 -3
- package/build/features/AbstractFeature.js +8 -8
- package/build/features/AbstractFeature.js.map +1 -1
- package/build/features/ActionExecuter.d.ts +1 -1
- package/build/features/ActionExecuter.js +3 -4
- package/build/features/ActionExecuter.js.map +1 -1
- package/build/features/ActionFactory.d.ts +12 -5
- package/build/features/ActionFactory.js +27 -6
- package/build/features/ActionFactory.js.map +1 -1
- package/build/features/ActionQuestionAsker.d.ts +1 -1
- package/build/features/ActionQuestionAsker.js +6 -6
- package/build/features/ActionQuestionAsker.js.map +1 -1
- package/build/features/conversation/ConversationFeature.js +1 -1
- package/build/features/conversation/ConversationFeature.js.map +1 -1
- package/build/features/dependencies/DependencyFeature.js +1 -1
- package/build/features/dependencies/DependencyFeature.js.map +1 -1
- package/build/features/deploy/actions/HerokuAction.js +31 -33
- package/build/features/deploy/actions/HerokuAction.js.map +1 -1
- package/build/features/error/ErrorFeature.js +4 -4
- package/build/features/error/ErrorFeature.js.map +1 -1
- package/build/features/event/EventFeature.d.ts +8 -8
- package/build/features/event/EventFeature.js +7 -4
- package/build/features/event/EventFeature.js.map +1 -1
- package/build/features/event/actions/CreateAction.js.map +1 -1
- package/build/features/event/actions/ListenAction.js.map +1 -1
- package/build/features/event/stores/EventStore.d.ts +9 -9
- package/build/features/event/stores/EventStore.js +26 -26
- package/build/features/event/stores/EventStore.js.map +1 -1
- package/build/features/eventContract/EventContractFeature.js +4 -1
- package/build/features/eventContract/EventContractFeature.js.map +1 -1
- package/build/features/eventContract/actions/PullAction.js +10 -5
- package/build/features/eventContract/actions/PullAction.js.map +1 -1
- package/build/features/features.types.d.ts +2 -37
- package/build/features/features.types.js +0 -41
- package/build/features/features.types.js.map +1 -1
- package/build/features/log/LogFeature.js +1 -1
- package/build/features/log/LogFeature.js.map +1 -1
- package/build/features/node/NodeFeature.js.map +1 -1
- package/build/features/organization/actions/InstallAction.js.map +1 -1
- package/build/features/permission/PermissionFeature.d.ts +12 -2
- package/build/features/permission/PermissionFeature.js +140 -15
- package/build/features/permission/PermissionFeature.js.map +1 -1
- package/build/features/permission/actions/CreateAction.js +4 -1
- package/build/features/permission/actions/CreateAction.js.map +1 -1
- package/build/features/permission/actions/SyncAction.d.ts +5 -1
- package/build/features/permission/actions/SyncAction.js +28 -10
- package/build/features/permission/actions/SyncAction.js.map +1 -1
- package/build/features/permission/stores/PermissionStore.d.ts +7 -1
- package/build/features/permission/stores/PermissionStore.js +92 -23
- package/build/features/permission/stores/PermissionStore.js.map +1 -1
- package/build/features/permission/writers/PermissionWriter.d.ts +7 -1
- package/build/features/permission/writers/PermissionWriter.js +66 -17
- package/build/features/permission/writers/PermissionWriter.js.map +1 -1
- package/build/features/person/PersonFeature.js +1 -1
- package/build/features/person/PersonFeature.js.map +1 -1
- package/build/features/sandbox/SandboxFeature.js +1 -1
- package/build/features/sandbox/SandboxFeature.js.map +1 -1
- package/build/features/schema/SchemaFeature.d.ts +8 -8
- package/build/features/schema/SchemaFeature.js +4 -4
- package/build/features/schema/SchemaFeature.js.map +1 -1
- package/build/features/schema/writers/SchemaWriter.d.ts +12 -12
- package/build/features/schema/writers/SchemaWriter.js.map +1 -1
- package/build/features/skill/SkillFeature.d.ts +11 -11
- package/build/features/skill/SkillFeature.js +2 -2
- package/build/features/skill/SkillFeature.js.map +1 -1
- package/build/features/skill/actions/RebuildAction.js.map +1 -1
- package/build/features/skill/actions/RegisterAction.js.map +1 -1
- package/build/features/skill/stores/SkillStore.js +1 -2
- package/build/features/skill/stores/SkillStore.js.map +1 -1
- package/build/features/store/StoreFeature.js +1 -1
- package/build/features/store/StoreFeature.js.map +1 -1
- package/build/features/store/actions/SyncAction.d.ts +1 -1
- package/build/features/store/actions/SyncAction.js.map +1 -1
- package/build/features/test/TestFeature.js +1 -1
- package/build/features/test/TestFeature.js.map +1 -1
- package/build/features/view/ViewFeature.js +1 -1
- package/build/features/view/ViewFeature.js.map +1 -1
- package/build/schemas/v2020_07_22/actionResponse.builder.d.ts +85 -0
- package/build/schemas/v2020_07_22/actionResponse.builder.js +70 -0
- package/build/schemas/v2020_07_22/actionResponse.builder.js.map +1 -0
- package/build/schemas/v2020_07_22/generatedFile.builder.d.ts +27 -0
- package/build/schemas/v2020_07_22/generatedFile.builder.js +45 -0
- package/build/schemas/v2020_07_22/generatedFile.builder.js.map +1 -0
- package/build/schemas/v2020_07_22/watcherDidDetectChangesEmitPayload.builder.js +4 -40
- package/build/schemas/v2020_07_22/watcherDidDetectChangesEmitPayload.builder.js.map +1 -1
- package/build/services/CommandService.d.ts +2 -2
- package/build/services/CommandService.js +6 -6
- package/build/services/CommandService.js.map +1 -1
- package/build/services/PkgService.d.ts +1 -0
- package/build/services/PkgService.js +5 -0
- package/build/services/PkgService.js.map +1 -1
- package/build/tests/AbstractCliTest.d.ts +7 -3
- package/build/tests/AbstractCliTest.js +81 -45
- package/build/tests/AbstractCliTest.js.map +1 -1
- package/build/tests/buildTestCache.js +7 -0
- package/build/tests/buildTestCache.js.map +1 -1
- package/build/tests/fixtures/FeatureFixture.js +1 -0
- package/build/tests/fixtures/FeatureFixture.js.map +1 -1
- package/build/tests/utilities/test.utility.d.ts +2 -0
- package/build/tests/utilities/test.utility.js +6 -0
- package/build/tests/utilities/test.utility.js.map +1 -1
- package/node_modules/@typescript-eslint/parser/package.json +6 -6
- package/node_modules/@typescript-eslint/scope-manager/dist/ScopeManager.js +9 -9
- package/node_modules/@typescript-eslint/scope-manager/dist/ScopeManager.js.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/definition/Definition.d.ts +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/definition/Definition.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/dom.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/dom.iterable.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/dom.iterable.js +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/dom.iterable.js.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/dom.js +21 -7
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/dom.js.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.intl.d.ts +3 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.intl.d.ts.map +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.intl.js +12 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.intl.js.map +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.js +2 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.js.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/index.d.ts +1 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/index.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/index.js +2 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/index.js.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/webworker.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/webworker.iterable.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/webworker.iterable.js +2 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/webworker.iterable.js.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/webworker.js +39 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/lib/webworker.js.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/ClassVisitor.d.ts +4 -2
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/ClassVisitor.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/ClassVisitor.js +13 -5
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/ClassVisitor.js.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/ExportVisitor.d.ts +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/ExportVisitor.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/PatternVisitor.d.ts +2 -2
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/PatternVisitor.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/PatternVisitor.js +9 -9
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/PatternVisitor.js.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/Reference.js +17 -17
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/Reference.js.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/Referencer.d.ts +2 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/Referencer.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/Referencer.js +3 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/Referencer.js.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/scope/Scope.d.ts +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/scope/Scope.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/scope/ScopeBase.d.ts +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/scope/ScopeBase.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/package.json +12 -12
- package/node_modules/@typescript-eslint/types/_ts3.4/dist/generated/ast-spec.d.ts +27 -3
- package/node_modules/@typescript-eslint/types/_ts3.4/dist/lib.d.ts +1 -1
- package/node_modules/@typescript-eslint/types/_ts3.4/dist/parser-options.d.ts +3 -3
- package/node_modules/@typescript-eslint/types/dist/generated/ast-spec.d.ts +27 -3
- package/node_modules/@typescript-eslint/types/dist/generated/ast-spec.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/types/dist/generated/ast-spec.js +3 -0
- package/node_modules/@typescript-eslint/types/dist/generated/ast-spec.js.map +1 -1
- package/node_modules/@typescript-eslint/types/dist/lib.d.ts +1 -1
- package/node_modules/@typescript-eslint/types/dist/lib.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/types/dist/parser-options.d.ts +3 -3
- package/node_modules/@typescript-eslint/types/dist/parser-options.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/types/package.json +3 -3
- package/node_modules/@typescript-eslint/typescript-estree/_ts3.4/dist/create-program/shared.d.ts +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/_ts3.4/dist/parseSettings/index.d.ts +2 -2
- package/node_modules/@typescript-eslint/typescript-estree/_ts3.4/dist/parser-options.d.ts +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/_ts3.4/dist/parser.d.ts +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/_ts3.4/dist/simple-traverse.d.ts +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/_ts3.4/dist/ts-estree/estree-to-ts-node-types.d.ts +4 -1
- package/node_modules/@typescript-eslint/typescript-estree/_ts3.4/dist/ts-estree/ts-nodes.d.ts +4 -2
- package/node_modules/@typescript-eslint/typescript-estree/dist/convert.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/convert.js +22 -3
- package/node_modules/@typescript-eslint/typescript-estree/dist/convert.js.map +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.js +9 -0
- package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.js.map +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.d.ts +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/index.d.ts +2 -2
- package/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/index.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/warnAboutTSVersion.js +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/parser-options.d.ts +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/parser-options.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/parser.d.ts +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/parser.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/simple-traverse.d.ts +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/simple-traverse.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/estree-to-ts-node-types.d.ts +4 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/estree-to-ts-node-types.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-nodes.d.ts +4 -2
- package/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-nodes.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/package.json +6 -6
- package/node_modules/@typescript-eslint/visitor-keys/dist/visitor-keys.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/visitor-keys/dist/visitor-keys.js +63 -48
- package/node_modules/@typescript-eslint/visitor-keys/dist/visitor-keys.js.map +1 -1
- package/node_modules/@typescript-eslint/visitor-keys/package.json +4 -4
- package/package.json +65 -33
- package/src/.spruce/events/events.contract.ts +24 -0
- package/src/.spruce/events/heartwood/getActiveTheme.v2021_02_11.contract.ts +54 -0
- package/src/.spruce/events/heartwood/registerDashboardCards.v2021_02_11.contract.ts +79 -0
- package/src/.spruce/events/heartwood/upsertTheme.v2021_02_11.contract.ts +48 -0
- package/src/.spruce/events/spruceCli/registerSkillViews.v2021_04_11.contract.ts +13 -0
- package/src/.spruce/schemas/schemas.types.ts +171 -52
- package/src/.spruce/schemas/spruceCli/v2020_07_22/actionResponse.schema.ts +58 -0
- package/src/.spruce/schemas/spruceCli/v2020_07_22/npmPackage.schema.ts +33 -0
- package/src/.spruce/settings.json +2 -1
- package/src/GlobalEmitter.ts +2 -7
- package/src/__tests__/behavioral/TestingAConversation.test.ts +20 -37
- package/src/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.ts +14 -2
- package/src/__tests__/behavioral/events/SkillEmitsBootEvents.test.ts +6 -0
- package/src/__tests__/behavioral/permissions/CreatingPermissions.test.ts +2 -2
- package/src/__tests__/behavioral/permissions/PermissionPlugin.test.ts +24 -0
- package/src/__tests__/behavioral/permissions/PermissionStore.test.ts +204 -23
- package/src/__tests__/behavioral/permissions/PermissionWriter.test.ts +23 -0
- package/src/__tests__/behavioral/permissions/SyncingPermissions.test.ts +125 -8
- package/src/__tests__/behavioral/permissions/support/AbstractPermissionsTest.ts +38 -0
- package/src/__tests__/behavioral/permissions/support/generateShortAlphaId.ts +5 -0
- package/src/__tests__/behavioral/permissions/support/renderPermissionTestFile.ts +27 -0
- package/src/__tests__/behavioral/permissions/support/sortPermissionContracts.ts +3 -0
- package/src/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.ts +12 -12
- package/src/__tests__/behavioral/tests/CreatingATest.test.ts +2 -2
- package/src/__tests__/behavioral/upgrading/UpgradingANodeModule.test.ts +3 -0
- package/src/__tests__/behavioral/upgrading/UpgradingASkill3.test.ts +3 -2
- package/src/__tests__/behavioral/upgrading/UpgradingASkill4.test.ts +1 -1
- package/src/__tests__/implementation/ActionExecuter2.test.ts +13 -6
- package/src/__tests__/implementation/GlobalEmitter.test.ts +22 -1
- package/src/__tests__/implementation/SkillStore.test.ts +1 -2
- package/src/__tests__/support/EventFaker.ts +23 -0
- package/src/features/AbstractAction.ts +2 -2
- package/src/features/AbstractFeature.ts +8 -8
- package/src/features/ActionExecuter.ts +4 -5
- package/src/features/ActionFactory.ts +44 -20
- package/src/features/ActionQuestionAsker.ts +17 -17
- package/src/features/conversation/ConversationFeature.ts +1 -1
- package/src/features/dependencies/DependencyFeature.ts +1 -1
- package/src/features/deploy/actions/HerokuAction.ts +2 -2
- package/src/features/error/ErrorFeature.ts +4 -4
- package/src/features/event/EventFeature.ts +15 -14
- package/src/features/event/actions/CreateAction.ts +1 -1
- package/src/features/event/actions/ListenAction.ts +1 -1
- package/src/features/event/stores/EventStore.ts +37 -37
- package/src/features/eventContract/EventContractFeature.ts +6 -1
- package/src/features/eventContract/actions/PullAction.ts +7 -3
- package/src/features/features.types.ts +4 -41
- package/src/features/log/LogFeature.ts +1 -1
- package/src/features/node/NodeFeature.ts +1 -1
- package/src/features/organization/actions/InstallAction.ts +1 -1
- package/src/features/permission/PermissionFeature.ts +66 -11
- package/src/features/permission/actions/CreateAction.ts +2 -0
- package/src/features/permission/actions/SyncAction.ts +22 -3
- package/src/features/permission/stores/PermissionStore.ts +44 -3
- package/src/features/permission/writers/PermissionWriter.ts +64 -3
- package/src/features/person/PersonFeature.ts +1 -1
- package/src/features/sandbox/SandboxFeature.ts +1 -3
- package/src/features/schema/SchemaFeature.ts +14 -14
- package/src/features/schema/writers/SchemaWriter.ts +14 -15
- package/src/features/skill/SkillFeature.ts +18 -18
- package/src/features/skill/actions/RebuildAction.ts +1 -1
- package/src/features/skill/actions/RegisterAction.ts +1 -1
- package/src/features/skill/stores/SkillStore.ts +1 -2
- package/src/features/store/StoreFeature.ts +1 -1
- package/src/features/store/actions/SyncAction.ts +1 -1
- package/src/features/test/TestFeature.ts +1 -1
- package/src/features/view/ViewFeature.ts +1 -1
- package/src/schemas/v2020_07_22/actionResponse.builder.ts +62 -0
- package/src/schemas/v2020_07_22/generatedFile.builder.ts +44 -0
- package/src/schemas/v2020_07_22/watcherDidDetectChangesEmitPayload.builder.ts +3 -46
- package/src/services/CommandService.ts +5 -5
- package/src/services/PkgService.ts +4 -0
- package/src/tests/AbstractCliTest.ts +31 -13
- package/src/tests/buildTestCache.ts +7 -0
- package/src/tests/fixtures/FeatureFixture.ts +2 -0
- package/src/tests/utilities/test.utility.ts +13 -0
- package/build/__tests__/behavioral/permissions/AbstractPermissionsTest.d.ts +0 -8
- package/build/__tests__/behavioral/permissions/AbstractPermissionsTest.js.map +0 -1
- package/src/__tests__/behavioral/permissions/AbstractPermissionsTest.ts +0 -20
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { SpruceSchemas } from '@sprucelabs/mercury-types';
|
|
1
2
|
import { Schema, SchemaValues } from '@sprucelabs/schema';
|
|
2
3
|
import { Templates } from '@sprucelabs/spruce-templates';
|
|
3
4
|
import { GlobalEmitter } from '../GlobalEmitter';
|
|
@@ -40,47 +41,11 @@ export interface InstallFeatureOptions {
|
|
|
40
41
|
installFeatureDependencies?: boolean;
|
|
41
42
|
didUpdateHandler?: InternalUpdateHandler;
|
|
42
43
|
}
|
|
43
|
-
export declare const actionResponseSchema: {
|
|
44
|
-
id: string;
|
|
45
|
-
fields: {
|
|
46
|
-
files: {
|
|
47
|
-
type: "schema";
|
|
48
|
-
isArray: true;
|
|
49
|
-
options: {
|
|
50
|
-
schema: import("@sprucelabs/mercury-types").SpruceSchemas.SpruceCli.v2020_07_22.GeneratedFileSchema;
|
|
51
|
-
};
|
|
52
|
-
};
|
|
53
|
-
headline: {
|
|
54
|
-
type: "text";
|
|
55
|
-
};
|
|
56
|
-
hints: {
|
|
57
|
-
type: "text";
|
|
58
|
-
isArray: true;
|
|
59
|
-
};
|
|
60
|
-
summaryLines: {
|
|
61
|
-
type: "text";
|
|
62
|
-
isArray: true;
|
|
63
|
-
};
|
|
64
|
-
errors: {
|
|
65
|
-
type: "raw";
|
|
66
|
-
isArray: true;
|
|
67
|
-
options: {
|
|
68
|
-
valueType: string;
|
|
69
|
-
};
|
|
70
|
-
};
|
|
71
|
-
meta: {
|
|
72
|
-
type: "raw";
|
|
73
|
-
options: {
|
|
74
|
-
valueType: string;
|
|
75
|
-
};
|
|
76
|
-
};
|
|
77
|
-
};
|
|
78
|
-
};
|
|
79
44
|
export interface FeatureInstallResponse {
|
|
80
45
|
files?: GeneratedFile[];
|
|
81
46
|
packagesInstalled?: NpmPackage[];
|
|
82
47
|
}
|
|
83
|
-
export declare type FeatureActionResponse =
|
|
48
|
+
export declare type FeatureActionResponse = SpruceSchemas.SpruceCli.v2020_07_22.ActionResponse & FeatureInstallResponse;
|
|
84
49
|
export interface FeatureAction<S extends Schema = Schema> {
|
|
85
50
|
optionsSchema?: S;
|
|
86
51
|
commandAliases: string[];
|
|
@@ -1,47 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
7
|
-
exports.actionResponseSchema = void 0;
|
|
8
|
-
var _schema = require("@sprucelabs/schema");
|
|
9
|
-
var _generatedFile = _interopRequireDefault(require("../.spruce/schemas/spruceCli/v2020_07_22/generatedFile.schema"));
|
|
10
|
-
var actionResponseSchema = (0, _schema.buildSchema)({
|
|
11
|
-
id: 'actionResponse',
|
|
12
|
-
fields: {
|
|
13
|
-
files: {
|
|
14
|
-
type: 'schema',
|
|
15
|
-
isArray: true,
|
|
16
|
-
options: {
|
|
17
|
-
schema: _generatedFile["default"]
|
|
18
|
-
}
|
|
19
|
-
},
|
|
20
|
-
headline: {
|
|
21
|
-
type: 'text'
|
|
22
|
-
},
|
|
23
|
-
hints: {
|
|
24
|
-
type: 'text',
|
|
25
|
-
isArray: true
|
|
26
|
-
},
|
|
27
|
-
summaryLines: {
|
|
28
|
-
type: 'text',
|
|
29
|
-
isArray: true
|
|
30
|
-
},
|
|
31
|
-
errors: {
|
|
32
|
-
type: 'raw',
|
|
33
|
-
isArray: true,
|
|
34
|
-
options: {
|
|
35
|
-
valueType: 'SpruceError<any>'
|
|
36
|
-
}
|
|
37
|
-
},
|
|
38
|
-
meta: {
|
|
39
|
-
type: 'raw',
|
|
40
|
-
options: {
|
|
41
|
-
valueType: 'Record<string, any>'
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
});
|
|
46
|
-
exports.actionResponseSchema = actionResponseSchema;
|
|
47
6
|
//# sourceMappingURL=features.types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"features.types.js","names":[
|
|
1
|
+
{"version":3,"file":"features.types.js","names":[],"sources":["../../src/features/features.types.ts"],"sourcesContent":["import { SpruceSchemas } from '@sprucelabs/mercury-types'\nimport { Schema, SchemaValues } from '@sprucelabs/schema'\nimport { Templates } from '@sprucelabs/spruce-templates'\nimport { GlobalEmitter } from '../GlobalEmitter'\nimport ServiceFactory from '../services/ServiceFactory'\nimport StoreFactory from '../stores/StoreFactory'\nimport { ApiClientFactory } from '../types/apiClient.types'\nimport {\n\tGeneratedFile,\n\tNpmPackage,\n\tInternalUpdateHandler,\n} from '../types/cli.types'\nimport { GraphicsInterface } from '../types/cli.types'\nimport WriterFactory from '../writers/WriterFactory'\nimport AbstractFeature from './AbstractFeature'\nimport ActionExecuter from './ActionExecuter'\nimport FeatureInstaller from './FeatureInstaller'\n\nexport interface FeatureMap {}\nexport interface FeatureOptionsMap {}\n\nexport type InstallFeature<\n\tKeys extends keyof FeatureOptionsMap = keyof FeatureOptionsMap\n> = {\n\t[Key in Keys]: Omit<\n\t\t{\n\t\t\tcode: Key\n\t\t\toptions: FeatureOptionsMap[Key]\n\t\t},\n\t\tFeatureOptionsMap[Key] extends Record<string, any> ? never : 'options'\n\t>\n}[Keys]\n\nexport interface ActionOptions {\n\ttemplates: Templates\n\tserviceFactory: ServiceFactory\n\tcwd: string\n\tparent: AbstractFeature\n\tstoreFactory: StoreFactory\n\tfeatureInstaller: FeatureInstaller\n\tui: GraphicsInterface\n\twriterFactory: WriterFactory\n\temitter: GlobalEmitter\n\tactionExecuter: ActionExecuter\n\tapiClientFactory: ApiClientFactory\n}\n\nexport type FeatureCode = keyof FeatureMap\n\nexport type FeatureExecuteOptions<F extends FeatureCode> =\n\tFeatureMap[F]['optionsSchema'] extends Schema\n\t\t? SchemaValues<FeatureMap[F]['optionsSchema']>\n\t\t: undefined\n\nexport interface InstallFeatureOptions {\n\tfeatures: InstallFeature[]\n\tinstallFeatureDependencies?: boolean\n\tdidUpdateHandler?: InternalUpdateHandler\n}\n\nexport interface FeatureInstallResponse {\n\tfiles?: GeneratedFile[]\n\tpackagesInstalled?: NpmPackage[]\n}\n\nexport type FeatureActionResponse =\n\tSpruceSchemas.SpruceCli.v2020_07_22.ActionResponse & FeatureInstallResponse\n\nexport interface FeatureAction<S extends Schema = Schema> {\n\toptionsSchema?: S\n\tcommandAliases: string[]\n\tinvocationMessage: string\n\texecute: (options: SchemaValues<S>) => Promise<FeatureActionResponse>\n}\n"],"mappings":""}
|
|
@@ -39,7 +39,7 @@ var LogFeature = /*#__PURE__*/function (_AbstractFeature) {
|
|
|
39
39
|
(0, _createClass2["default"])(LogFeature, [{
|
|
40
40
|
key: "isInstalled",
|
|
41
41
|
value: function isInstalled() {
|
|
42
|
-
return this.
|
|
42
|
+
return this.features.isInstalled('skill');
|
|
43
43
|
}
|
|
44
44
|
}]);
|
|
45
45
|
return LogFeature;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LogFeature.js","names":["LogFeature","code","isRequired","diskUtil","resolvePath","__dirname","
|
|
1
|
+
{"version":3,"file":"LogFeature.js","names":["LogFeature","code","isRequired","diskUtil","resolvePath","__dirname","features","isInstalled","AbstractFeature"],"sources":["../../../src/features/log/LogFeature.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport AbstractFeature, { FeatureDependency } from '../AbstractFeature'\nimport { FeatureCode } from '../features.types'\n\ndeclare module '../../features/features.types' {\n\tinterface FeatureMap {\n\t\tlog: LogFeature\n\t}\n\n\tinterface FeatureOptionsMap {\n\t\tlog: undefined\n\t}\n}\n\nexport default class LogFeature extends AbstractFeature {\n\tpublic nameReadable = 'Logging support'\n\tpublic description = 'Logs: Configure how your skill logs and to where.'\n\tpublic code: FeatureCode = 'log'\n\n\tpublic dependencies: FeatureDependency[] = [\n\t\t{ code: 'skill', isRequired: true },\n\t]\n\tpublic actionsDir = diskUtil.resolvePath(__dirname, 'actions')\n\n\tpublic isInstalled() {\n\t\treturn this.features.isInstalled('skill')\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;AAAA;AACA;AAAuE;AAAA;AAAA,IAalDA,UAAU;EAAA;EAAA;EAAA;IAAA;IAAA;IAAA;MAAA;IAAA;IAAA;IAAA,iGACR,iBAAiB;IAAA,gGAClB,mDAAmD;IAAA,yFAC7C,KAAK;IAAA,iGAEW,CAC1C;MAAEC,IAAI,EAAE,OAAO;MAAEC,UAAU,EAAE;IAAK,CAAC,CACnC;IAAA,+FACmBC,0BAAQ,CAACC,WAAW,CAACC,SAAS,EAAE,SAAS,CAAC;IAAA;EAAA;EAAA;IAAA;IAAA,OAE9D,uBAAqB;MACpB,OAAO,IAAI,CAACC,QAAQ,CAACC,WAAW,CAAC,OAAO,CAAC;IAC1C;EAAC;EAAA;AAAA,EAZsCC,4BAAe;AAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeFeature.js","names":["NodeFeature","options","nodeFeatureOptionsSchema","universalDevDependencies","universalScripts","universalFileDescriptions","diskUtil","resolvePath","__dirname","doesFileExist","cwd","emitter","on","payload","featureCode","actionCode","handleUpgrade","ui","clear","renderHero","startLoading","Service","execute","summaryLines","errors","destination","resolveDestination","doesDirExist","createDir","files","name","path","action","Writer","writeNodeModule","written","push","installScripts","pkg","set","value","namesUtil","toKebab","description","unset","Store","setCurrentSkillsNamespace","scriptUpdater","ScriptUpdater","FromFeature","update","AbstractFeature"],"sources":["../../../src/features/node/NodeFeature.ts"],"sourcesContent":["import { Schema, SchemaValues } from '@sprucelabs/schema'\nimport { SpruceSchemas } from '@sprucelabs/spruce-core-schemas'\nimport { diskUtil, namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport nodeFeatureOptionsSchema from '#spruce/schemas/spruceCli/v2020_07_22/nodeFeatureOptions.schema'\nimport { FileDescription, GeneratedFile } from '../../types/cli.types'\nimport ScriptUpdater from '../../updaters/ScriptUpdater'\nimport AbstractFeature, { FeatureDependency } from '../AbstractFeature'\nimport {\n\tActionOptions,\n\tFeatureActionResponse,\n\tFeatureCode,\n} from '../features.types'\nimport universalDevDependencies from '../universalDevDependencies'\nimport universalFileDescriptions from '../universalFileDescriptions'\nimport universalScripts from '../universalScripts'\n\ntype OptionsSchema =\n\tSpruceSchemas.SpruceCli.v2020_07_22.NodeFeatureOptionsSchema\ntype Options = SpruceSchemas.SpruceCli.v2020_07_22.NodeFeatureOptions\n\ndeclare module '../../features/features.types' {\n\tinterface FeatureMap {\n\t\tnode: NodeFeature\n\t}\n\n\tinterface FeatureOptionsMap {\n\t\tnode: SchemaValues<OptionsSchema>\n\t}\n}\n\nexport default class NodeFeature<\n\tS extends OptionsSchema = OptionsSchema\n> extends AbstractFeature<S> {\n\tpublic code: FeatureCode = 'node'\n\tpublic nameReadable = 'nodejs support'\n\tpublic description = ''\n\tpublic dependencies: FeatureDependency[] = []\n\tpublic optionsSchema = nodeFeatureOptionsSchema as S\n\tpublic packageDependencies = [...universalDevDependencies]\n\n\tpublic scripts = {\n\t\t...universalScripts,\n\t}\n\n\tpublic readonly fileDescriptions: FileDescription[] = [\n\t\t...universalFileDescriptions,\n\t]\n\n\tpublic actionsDir = diskUtil.resolvePath(__dirname, 'actions')\n\n\tpublic constructor(options: ActionOptions) {\n\t\tsuper(options)\n\n\t\tvoid this.emitter.on('feature.did-execute', async (payload) => {\n\t\t\tif (payload.featureCode === 'node' && payload.actionCode === 'upgrade') {\n\t\t\t\treturn this.handleUpgrade()\n\t\t\t}\n\n\t\t\treturn {}\n\t\t})\n\t}\n\n\tprivate async handleUpgrade(): Promise<FeatureActionResponse> {\n\t\ttry {\n\t\t\tthis.ui.clear()\n\t\t\tthis.ui.renderHero('Upgrade')\n\n\t\t\tthis.ui.startLoading('Cleaning build...')\n\t\t\tawait this.Service('command').execute('yarn clean.build')\n\n\t\t\tthis.ui.startLoading('Building for development...')\n\t\t\tawait this.Service('command').execute('yarn build.dev')\n\n\t\t\treturn {\n\t\t\t\tsummaryLines: [\n\t\t\t\t\t'Build cleared.',\n\t\t\t\t\t'Lint rules applied to source.',\n\t\t\t\t\t'Code rebuilt successfully.',\n\t\t\t\t],\n\t\t\t}\n\t\t} catch (err) {\n\t\t\treturn {\n\t\t\t\terrors: [err],\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic async beforePackageInstall(options: Options) {\n\t\tconst destination = this.resolveDestination(options)\n\n\t\tif (!diskUtil.doesDirExist(destination)) {\n\t\t\tdiskUtil.createDir(destination)\n\t\t}\n\n\t\tconst files: GeneratedFile[] = [\n\t\t\t{\n\t\t\t\tname: 'package.json',\n\t\t\t\tpath: diskUtil.resolvePath(destination, 'package.json'),\n\t\t\t\taction: 'generated',\n\t\t\t},\n\t\t]\n\n\t\tawait this.Service('command', destination).execute('yarn init -y')\n\n\t\tconst written = await this.Writer('node').writeNodeModule(destination)\n\n\t\tfiles.push(...written)\n\n\t\tawait this.installScripts(destination)\n\n\t\treturn { files, cwd: destination }\n\t}\n\n\tprivate resolveDestination(options: Options) {\n\t\treturn diskUtil.resolvePath(this.cwd, options.destination ?? '')\n\t}\n\n\tpublic async afterPackageInstall(\n\t\toptions: S extends Schema ? SchemaValues<S> : undefined\n\t) {\n\t\tconst cwd = this.resolveDestination(options)\n\t\tconst pkg = this.Service('pkg', cwd)\n\n\t\tpkg.set({ path: 'name', value: namesUtil.toKebab(options.name) })\n\t\tpkg.set({ path: 'description', value: options.description })\n\t\tpkg.set({ path: 'version', value: '0.0.1' })\n\n\t\tpkg.unset('main')\n\t\tpkg.unset('license')\n\n\t\tawait this.Store('skill', {\n\t\t\tcwd,\n\t\t}).setCurrentSkillsNamespace(options.name)\n\n\t\treturn {}\n\t}\n\n\tprivate async installScripts(destination = this.cwd) {\n\t\tconst scriptUpdater = ScriptUpdater.FromFeature(this, {\n\t\t\tcwd: destination,\n\t\t})\n\n\t\tawait scriptUpdater.update()\n\t}\n\n\tpublic isInstalled = async (): Promise<boolean> => {\n\t\treturn diskUtil.doesFileExist(\n\t\t\tdiskUtil.resolvePath(this.cwd, 'package.json')\n\t\t)\n\t}\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"NodeFeature.js","names":["NodeFeature","options","nodeFeatureOptionsSchema","universalDevDependencies","universalScripts","universalFileDescriptions","diskUtil","resolvePath","__dirname","doesFileExist","cwd","emitter","on","payload","featureCode","actionCode","handleUpgrade","ui","clear","renderHero","startLoading","Service","execute","summaryLines","errors","destination","resolveDestination","doesDirExist","createDir","files","name","path","action","Writer","writeNodeModule","written","push","installScripts","pkg","set","value","namesUtil","toKebab","description","unset","Store","setCurrentSkillsNamespace","scriptUpdater","ScriptUpdater","FromFeature","update","AbstractFeature"],"sources":["../../../src/features/node/NodeFeature.ts"],"sourcesContent":["import { Schema, SchemaValues } from '@sprucelabs/schema'\nimport { SpruceSchemas } from '@sprucelabs/spruce-core-schemas'\nimport { diskUtil, namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport nodeFeatureOptionsSchema from '#spruce/schemas/spruceCli/v2020_07_22/nodeFeatureOptions.schema'\nimport { FileDescription, GeneratedFile } from '../../types/cli.types'\nimport ScriptUpdater from '../../updaters/ScriptUpdater'\nimport AbstractFeature, { FeatureDependency } from '../AbstractFeature'\nimport {\n\tActionOptions,\n\tFeatureActionResponse,\n\tFeatureCode,\n} from '../features.types'\nimport universalDevDependencies from '../universalDevDependencies'\nimport universalFileDescriptions from '../universalFileDescriptions'\nimport universalScripts from '../universalScripts'\n\ntype OptionsSchema =\n\tSpruceSchemas.SpruceCli.v2020_07_22.NodeFeatureOptionsSchema\ntype Options = SpruceSchemas.SpruceCli.v2020_07_22.NodeFeatureOptions\n\ndeclare module '../../features/features.types' {\n\tinterface FeatureMap {\n\t\tnode: NodeFeature\n\t}\n\n\tinterface FeatureOptionsMap {\n\t\tnode: SchemaValues<OptionsSchema>\n\t}\n}\n\nexport default class NodeFeature<\n\tS extends OptionsSchema = OptionsSchema\n> extends AbstractFeature<S> {\n\tpublic code: FeatureCode = 'node'\n\tpublic nameReadable = 'nodejs support'\n\tpublic description = ''\n\tpublic dependencies: FeatureDependency[] = []\n\tpublic optionsSchema = nodeFeatureOptionsSchema as S\n\tpublic packageDependencies = [...universalDevDependencies]\n\n\tpublic scripts = {\n\t\t...universalScripts,\n\t}\n\n\tpublic readonly fileDescriptions: FileDescription[] = [\n\t\t...universalFileDescriptions,\n\t]\n\n\tpublic actionsDir = diskUtil.resolvePath(__dirname, 'actions')\n\n\tpublic constructor(options: ActionOptions) {\n\t\tsuper(options)\n\n\t\tvoid this.emitter.on('feature.did-execute', async (payload) => {\n\t\t\tif (payload.featureCode === 'node' && payload.actionCode === 'upgrade') {\n\t\t\t\treturn this.handleUpgrade()\n\t\t\t}\n\n\t\t\treturn {}\n\t\t})\n\t}\n\n\tprivate async handleUpgrade(): Promise<FeatureActionResponse> {\n\t\ttry {\n\t\t\tthis.ui.clear()\n\t\t\tthis.ui.renderHero('Upgrade')\n\n\t\t\tthis.ui.startLoading('Cleaning build...')\n\t\t\tawait this.Service('command').execute('yarn clean.build')\n\n\t\t\tthis.ui.startLoading('Building for development...')\n\t\t\tawait this.Service('command').execute('yarn build.dev')\n\n\t\t\treturn {\n\t\t\t\tsummaryLines: [\n\t\t\t\t\t'Build cleared.',\n\t\t\t\t\t'Lint rules applied to source.',\n\t\t\t\t\t'Code rebuilt successfully.',\n\t\t\t\t],\n\t\t\t}\n\t\t} catch (err: any) {\n\t\t\treturn {\n\t\t\t\terrors: [err],\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic async beforePackageInstall(options: Options) {\n\t\tconst destination = this.resolveDestination(options)\n\n\t\tif (!diskUtil.doesDirExist(destination)) {\n\t\t\tdiskUtil.createDir(destination)\n\t\t}\n\n\t\tconst files: GeneratedFile[] = [\n\t\t\t{\n\t\t\t\tname: 'package.json',\n\t\t\t\tpath: diskUtil.resolvePath(destination, 'package.json'),\n\t\t\t\taction: 'generated',\n\t\t\t},\n\t\t]\n\n\t\tawait this.Service('command', destination).execute('yarn init -y')\n\n\t\tconst written = await this.Writer('node').writeNodeModule(destination)\n\n\t\tfiles.push(...written)\n\n\t\tawait this.installScripts(destination)\n\n\t\treturn { files, cwd: destination }\n\t}\n\n\tprivate resolveDestination(options: Options) {\n\t\treturn diskUtil.resolvePath(this.cwd, options.destination ?? '')\n\t}\n\n\tpublic async afterPackageInstall(\n\t\toptions: S extends Schema ? SchemaValues<S> : undefined\n\t) {\n\t\tconst cwd = this.resolveDestination(options)\n\t\tconst pkg = this.Service('pkg', cwd)\n\n\t\tpkg.set({ path: 'name', value: namesUtil.toKebab(options.name) })\n\t\tpkg.set({ path: 'description', value: options.description })\n\t\tpkg.set({ path: 'version', value: '0.0.1' })\n\n\t\tpkg.unset('main')\n\t\tpkg.unset('license')\n\n\t\tawait this.Store('skill', {\n\t\t\tcwd,\n\t\t}).setCurrentSkillsNamespace(options.name)\n\n\t\treturn {}\n\t}\n\n\tprivate async installScripts(destination = this.cwd) {\n\t\tconst scriptUpdater = ScriptUpdater.FromFeature(this, {\n\t\t\tcwd: destination,\n\t\t})\n\n\t\tawait scriptUpdater.update()\n\t}\n\n\tpublic isInstalled = async (): Promise<boolean> => {\n\t\treturn diskUtil.doesFileExist(\n\t\t\tdiskUtil.resolvePath(this.cwd, 'package.json')\n\t\t)\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InstallAction.js","names":["InstallAction","installSkillAtOrganizationActionSchema","options","Store","loadCurrentSkill","skill","id","SpruceError","code","validateAndNormalizeOptions","organizationId","fetchMyOrganizations","orgs","length","ui","confirm","name","choices","map","o","value","label","prompt","type","isRequired","installSkillAtOrganization","summaryLines","errors","AbstractAction"],"sources":["../../../../src/features/organization/actions/InstallAction.ts"],"sourcesContent":["import { SelectChoice } from '@sprucelabs/schema'\nimport { SpruceSchemas } from '#spruce/schemas/schemas.types'\nimport installSkillAtOrganizationActionSchema from '#spruce/schemas/spruceCli/v2020_07_22/installSkillAtOrganizationOptions.schema'\nimport SpruceError from '../../../errors/SpruceError'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\n\ntype OptionsSchema =\n\tSpruceSchemas.SpruceCli.v2020_07_22.InstallSkillAtOrganizationOptionsSchema\ntype Options =\n\tSpruceSchemas.SpruceCli.v2020_07_22.InstallSkillAtOrganizationOptions\nexport default class InstallAction extends AbstractAction<OptionsSchema> {\n\tpublic commandAliases = ['install.skill']\n\tpublic optionsSchema: OptionsSchema = installSkillAtOrganizationActionSchema\n\tpublic invocationMessage = 'Installing skill at org... 🏙'\n\n\tpublic async execute(options: Options): Promise<FeatureActionResponse> {\n\t\ttry {\n\t\t\tconst skill = await this.Store('skill').loadCurrentSkill()\n\n\t\t\tif (!skill.id) {\n\t\t\t\tthrow new SpruceError({ code: 'SKILL_NOT_REGISTERED' })\n\t\t\t}\n\n\t\t\tlet { organizationId } = this.validateAndNormalizeOptions(options)\n\n\t\t\tif (!organizationId) {\n\t\t\t\tconst orgs = await this.Store('organization').fetchMyOrganizations()\n\n\t\t\t\tif (orgs.length === 0) {\n\t\t\t\t\tthrow new SpruceError({\n\t\t\t\t\t\tcode: 'NO_ORGANIZATIONS_FOUND',\n\t\t\t\t\t})\n\t\t\t\t}\n\n\t\t\t\tif (orgs.length === 1) {\n\t\t\t\t\tconst confirm = await this.ui.confirm(\n\t\t\t\t\t\t`You ready to install your skill at ${orgs[0].name}?`\n\t\t\t\t\t)\n\n\t\t\t\t\tif (!confirm) {\n\t\t\t\t\t\treturn {}\n\t\t\t\t\t}\n\n\t\t\t\t\torganizationId = orgs[0].id\n\t\t\t\t} else {\n\t\t\t\t\tconst choices: SelectChoice[] = orgs.map((o) => ({\n\t\t\t\t\t\tvalue: o.id,\n\t\t\t\t\t\tlabel: o.name,\n\t\t\t\t\t}))\n\n\t\t\t\t\torganizationId = await this.ui.prompt({\n\t\t\t\t\t\ttype: 'select',\n\t\t\t\t\t\tlabel: 'Which organization should we install your skill to?',\n\t\t\t\t\t\tisRequired: true,\n\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\tchoices,\n\t\t\t\t\t\t},\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tawait this.Store('organization').installSkillAtOrganization(\n\t\t\t\tskill.id,\n\t\t\t\torganizationId\n\t\t\t)\n\n\t\t\treturn {\n\t\t\t\tsummaryLines: ['Skill installed!'],\n\t\t\t}\n\t\t} catch (err) {\n\t\t\treturn {\n\t\t\t\terrors: [err],\n\t\t\t}\n\t\t}\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAEA;AACA;AACA;AAAiD;AAAA;AAAA,IAO5BA,aAAa;EAAA;EAAA;EAAA;IAAA;IAAA;IAAA;MAAA;IAAA;IAAA;IAAA,mGACT,CAAC,eAAe,CAAC;IAAA,kGACHC,6CAAsC;IAAA,sGACjD,+BAA+B;IAAA;EAAA;EAAA;IAAA;IAAA;MAAA,6FAE1D,iBAAqBC,OAAgB;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA;gBAAA,OAEf,IAAI,CAACC,KAAK,CAAC,OAAO,CAAC,CAACC,gBAAgB,EAAE;cAAA;gBAApDC,KAAK;gBAAA,IAENA,KAAK,CAACC,EAAE;kBAAA;kBAAA;gBAAA;gBAAA,MACN,IAAIC,uBAAW,CAAC;kBAAEC,IAAI,EAAE;gBAAuB,CAAC,CAAC;cAAA;gBAAA,wBAG/B,IAAI,CAACC,2BAA2B,CAACP,OAAO,CAAC,EAA5DQ,cAAc,yBAAdA,cAAc;gBAAA,IAEfA,cAAc;kBAAA;kBAAA;gBAAA;gBAAA;gBAAA,OACC,IAAI,CAACP,KAAK,CAAC,cAAc,CAAC,CAACQ,oBAAoB,EAAE;cAAA;gBAA9DC,IAAI;gBAAA,MAENA,IAAI,CAACC,MAAM,KAAK,CAAC;kBAAA;kBAAA;gBAAA;gBAAA,MACd,IAAIN,uBAAW,CAAC;kBACrBC,IAAI,EAAE;gBACP,CAAC,CAAC;cAAA;gBAAA,MAGCI,IAAI,CAACC,MAAM,KAAK,CAAC;kBAAA;kBAAA;gBAAA;gBAAA;gBAAA,OACE,IAAI,CAACC,EAAE,CAACC,OAAO,8CACEH,IAAI,CAAC,CAAC,CAAC,CAACI,IAAI,OAClD;cAAA;gBAFKD,OAAO;gBAAA,IAIRA,OAAO;kBAAA;kBAAA;gBAAA;gBAAA,iCACJ,CAAC,CAAC;cAAA;gBAGVL,cAAc,GAAGE,IAAI,CAAC,CAAC,CAAC,CAACN,EAAE;gBAAA;gBAAA;cAAA;gBAErBW,OAAuB,GAAGL,IAAI,CAACM,GAAG,CAAC,UAACC,CAAC;kBAAA,OAAM;oBAChDC,KAAK,EAAED,CAAC,CAACb,EAAE;oBACXe,KAAK,EAAEF,CAAC,CAACH;kBACV,CAAC;gBAAA,CAAC,CAAC;gBAAA;gBAAA,OAEoB,IAAI,CAACF,EAAE,CAACQ,MAAM,CAAC;kBACrCC,IAAI,EAAE,QAAQ;kBACdF,KAAK,EAAE,qDAAqD;kBAC5DG,UAAU,EAAE,IAAI;kBAChBtB,OAAO,EAAE;oBACRe,OAAO,EAAPA;kBACD;gBACD,CAAC,CAAC;cAAA;gBAPFP,cAAc;cAAA;gBAAA;gBAAA,OAWV,IAAI,CAACP,KAAK,CAAC,cAAc,CAAC,CAACsB,0BAA0B,CAC1DpB,KAAK,CAACC,EAAE,EACRI,cAAc,CACd;cAAA;gBAAA,iCAEM;kBACNgB,YAAY,EAAE,CAAC,kBAAkB;gBAClC,CAAC;cAAA;gBAAA;gBAAA;gBAAA,iCAEM;kBACNC,MAAM,EAAE;gBACT,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAEF;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;EAAA;AAAA,EAhEyCC,2BAAc;AAAA"}
|
|
1
|
+
{"version":3,"file":"InstallAction.js","names":["InstallAction","installSkillAtOrganizationActionSchema","options","Store","loadCurrentSkill","skill","id","SpruceError","code","validateAndNormalizeOptions","organizationId","fetchMyOrganizations","orgs","length","ui","confirm","name","choices","map","o","value","label","prompt","type","isRequired","installSkillAtOrganization","summaryLines","errors","AbstractAction"],"sources":["../../../../src/features/organization/actions/InstallAction.ts"],"sourcesContent":["import { SelectChoice } from '@sprucelabs/schema'\nimport { SpruceSchemas } from '#spruce/schemas/schemas.types'\nimport installSkillAtOrganizationActionSchema from '#spruce/schemas/spruceCli/v2020_07_22/installSkillAtOrganizationOptions.schema'\nimport SpruceError from '../../../errors/SpruceError'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\n\ntype OptionsSchema =\n\tSpruceSchemas.SpruceCli.v2020_07_22.InstallSkillAtOrganizationOptionsSchema\ntype Options =\n\tSpruceSchemas.SpruceCli.v2020_07_22.InstallSkillAtOrganizationOptions\nexport default class InstallAction extends AbstractAction<OptionsSchema> {\n\tpublic commandAliases = ['install.skill']\n\tpublic optionsSchema: OptionsSchema = installSkillAtOrganizationActionSchema\n\tpublic invocationMessage = 'Installing skill at org... 🏙'\n\n\tpublic async execute(options: Options): Promise<FeatureActionResponse> {\n\t\ttry {\n\t\t\tconst skill = await this.Store('skill').loadCurrentSkill()\n\n\t\t\tif (!skill.id) {\n\t\t\t\tthrow new SpruceError({ code: 'SKILL_NOT_REGISTERED' })\n\t\t\t}\n\n\t\t\tlet { organizationId } = this.validateAndNormalizeOptions(options)\n\n\t\t\tif (!organizationId) {\n\t\t\t\tconst orgs = await this.Store('organization').fetchMyOrganizations()\n\n\t\t\t\tif (orgs.length === 0) {\n\t\t\t\t\tthrow new SpruceError({\n\t\t\t\t\t\tcode: 'NO_ORGANIZATIONS_FOUND',\n\t\t\t\t\t})\n\t\t\t\t}\n\n\t\t\t\tif (orgs.length === 1) {\n\t\t\t\t\tconst confirm = await this.ui.confirm(\n\t\t\t\t\t\t`You ready to install your skill at ${orgs[0].name}?`\n\t\t\t\t\t)\n\n\t\t\t\t\tif (!confirm) {\n\t\t\t\t\t\treturn {}\n\t\t\t\t\t}\n\n\t\t\t\t\torganizationId = orgs[0].id\n\t\t\t\t} else {\n\t\t\t\t\tconst choices: SelectChoice[] = orgs.map((o) => ({\n\t\t\t\t\t\tvalue: o.id,\n\t\t\t\t\t\tlabel: o.name,\n\t\t\t\t\t}))\n\n\t\t\t\t\torganizationId = await this.ui.prompt({\n\t\t\t\t\t\ttype: 'select',\n\t\t\t\t\t\tlabel: 'Which organization should we install your skill to?',\n\t\t\t\t\t\tisRequired: true,\n\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\tchoices,\n\t\t\t\t\t\t},\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tawait this.Store('organization').installSkillAtOrganization(\n\t\t\t\tskill.id,\n\t\t\t\torganizationId\n\t\t\t)\n\n\t\t\treturn {\n\t\t\t\tsummaryLines: ['Skill installed!'],\n\t\t\t}\n\t\t} catch (err: any) {\n\t\t\treturn {\n\t\t\t\terrors: [err],\n\t\t\t}\n\t\t}\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAEA;AACA;AACA;AAAiD;AAAA;AAAA,IAO5BA,aAAa;EAAA;EAAA;EAAA;IAAA;IAAA;IAAA;MAAA;IAAA;IAAA;IAAA,mGACT,CAAC,eAAe,CAAC;IAAA,kGACHC,6CAAsC;IAAA,sGACjD,+BAA+B;IAAA;EAAA;EAAA;IAAA;IAAA;MAAA,6FAE1D,iBAAqBC,OAAgB;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA;gBAAA,OAEf,IAAI,CAACC,KAAK,CAAC,OAAO,CAAC,CAACC,gBAAgB,EAAE;cAAA;gBAApDC,KAAK;gBAAA,IAENA,KAAK,CAACC,EAAE;kBAAA;kBAAA;gBAAA;gBAAA,MACN,IAAIC,uBAAW,CAAC;kBAAEC,IAAI,EAAE;gBAAuB,CAAC,CAAC;cAAA;gBAAA,wBAG/B,IAAI,CAACC,2BAA2B,CAACP,OAAO,CAAC,EAA5DQ,cAAc,yBAAdA,cAAc;gBAAA,IAEfA,cAAc;kBAAA;kBAAA;gBAAA;gBAAA;gBAAA,OACC,IAAI,CAACP,KAAK,CAAC,cAAc,CAAC,CAACQ,oBAAoB,EAAE;cAAA;gBAA9DC,IAAI;gBAAA,MAENA,IAAI,CAACC,MAAM,KAAK,CAAC;kBAAA;kBAAA;gBAAA;gBAAA,MACd,IAAIN,uBAAW,CAAC;kBACrBC,IAAI,EAAE;gBACP,CAAC,CAAC;cAAA;gBAAA,MAGCI,IAAI,CAACC,MAAM,KAAK,CAAC;kBAAA;kBAAA;gBAAA;gBAAA;gBAAA,OACE,IAAI,CAACC,EAAE,CAACC,OAAO,8CACEH,IAAI,CAAC,CAAC,CAAC,CAACI,IAAI,OAClD;cAAA;gBAFKD,OAAO;gBAAA,IAIRA,OAAO;kBAAA;kBAAA;gBAAA;gBAAA,iCACJ,CAAC,CAAC;cAAA;gBAGVL,cAAc,GAAGE,IAAI,CAAC,CAAC,CAAC,CAACN,EAAE;gBAAA;gBAAA;cAAA;gBAErBW,OAAuB,GAAGL,IAAI,CAACM,GAAG,CAAC,UAACC,CAAC;kBAAA,OAAM;oBAChDC,KAAK,EAAED,CAAC,CAACb,EAAE;oBACXe,KAAK,EAAEF,CAAC,CAACH;kBACV,CAAC;gBAAA,CAAC,CAAC;gBAAA;gBAAA,OAEoB,IAAI,CAACF,EAAE,CAACQ,MAAM,CAAC;kBACrCC,IAAI,EAAE,QAAQ;kBACdF,KAAK,EAAE,qDAAqD;kBAC5DG,UAAU,EAAE,IAAI;kBAChBtB,OAAO,EAAE;oBACRe,OAAO,EAAPA;kBACD;gBACD,CAAC,CAAC;cAAA;gBAPFP,cAAc;cAAA;gBAAA;gBAAA,OAWV,IAAI,CAACP,KAAK,CAAC,cAAc,CAAC,CAACsB,0BAA0B,CAC1DpB,KAAK,CAACC,EAAE,EACRI,cAAc,CACd;cAAA;gBAAA,iCAEM;kBACNgB,YAAY,EAAE,CAAC,kBAAkB;gBAClC,CAAC;cAAA;gBAAA;gBAAA;gBAAA,iCAEM;kBACNC,MAAM,EAAE;gBACT,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAEF;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;EAAA;AAAA,EAhEyCC,2BAAc;AAAA"}
|
|
@@ -1,12 +1,22 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { NpmPackage } from '@sprucelabs/spruce-skill-utils';
|
|
2
|
+
import AbstractFeature, { FeatureDependency, FeatureOptions, InstallResults } from '../AbstractFeature';
|
|
2
3
|
import { FeatureCode } from '../features.types';
|
|
3
4
|
export default class PermissionFeature extends AbstractFeature {
|
|
4
5
|
code: FeatureCode;
|
|
5
6
|
nameReadable: string;
|
|
6
7
|
description: string;
|
|
7
8
|
dependencies: FeatureDependency[];
|
|
8
|
-
packageDependencies: never[];
|
|
9
9
|
actionsDir: string;
|
|
10
|
+
packageDependencies: NpmPackage[];
|
|
11
|
+
private writer;
|
|
12
|
+
constructor(options: FeatureOptions);
|
|
13
|
+
handleDidExecuteAction({ featureCode, actionCode, }: {
|
|
14
|
+
featureCode: string;
|
|
15
|
+
actionCode: string;
|
|
16
|
+
}): Promise<import("../features.types").FeatureActionResponse>;
|
|
17
|
+
afterPackageInstall(): Promise<InstallResults>;
|
|
18
|
+
private writeTypesFile;
|
|
19
|
+
private writePlugin;
|
|
10
20
|
}
|
|
11
21
|
declare module '../../features/features.types' {
|
|
12
22
|
interface FeatureMap {
|
|
@@ -5,8 +5,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports["default"] = void 0;
|
|
8
|
-
var
|
|
8
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
10
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
9
11
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
12
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
10
13
|
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
11
14
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
12
15
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
@@ -19,28 +22,150 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re
|
|
|
19
22
|
var PermissionFeature = /*#__PURE__*/function (_AbstractFeature) {
|
|
20
23
|
(0, _inherits2["default"])(PermissionFeature, _AbstractFeature);
|
|
21
24
|
var _super = _createSuper(PermissionFeature);
|
|
22
|
-
function PermissionFeature() {
|
|
25
|
+
function PermissionFeature(options) {
|
|
23
26
|
var _this;
|
|
24
27
|
(0, _classCallCheck2["default"])(this, PermissionFeature);
|
|
25
|
-
|
|
26
|
-
args[_key] = arguments[_key];
|
|
27
|
-
}
|
|
28
|
-
_this = _super.call.apply(_super, [this].concat(args));
|
|
28
|
+
_this = _super.call(this, options);
|
|
29
29
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "code", 'permission');
|
|
30
30
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "nameReadable", 'permission');
|
|
31
31
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "description", 'Manage permissions for your skill');
|
|
32
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "dependencies", [
|
|
33
|
-
code: 'skill',
|
|
34
|
-
isRequired: true
|
|
35
|
-
}, {
|
|
36
|
-
code: 'event',
|
|
37
|
-
isRequired: true
|
|
38
|
-
}]);
|
|
39
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "packageDependencies", []);
|
|
32
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "dependencies", []);
|
|
40
33
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "actionsDir", _spruceSkillUtils.diskUtil.resolvePath(__dirname, 'actions'));
|
|
34
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "packageDependencies", [{
|
|
35
|
+
name: '@sprucelabs/spruce-permission-plugin@latest'
|
|
36
|
+
}]);
|
|
37
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "writer", void 0);
|
|
38
|
+
_this.writer = _this.Writer('permission');
|
|
39
|
+
void _this.emitter.on('feature.did-execute', _this.handleDidExecuteAction.bind((0, _assertThisInitialized2["default"])(_this)));
|
|
41
40
|
return _this;
|
|
42
41
|
}
|
|
43
|
-
|
|
42
|
+
(0, _createClass2["default"])(PermissionFeature, [{
|
|
43
|
+
key: "handleDidExecuteAction",
|
|
44
|
+
value: function () {
|
|
45
|
+
var _handleDidExecuteAction = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(_ref) {
|
|
46
|
+
var featureCode, actionCode, isInstalled, isSkillInstalled, _results$files, combinedFile, results;
|
|
47
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
48
|
+
while (1) {
|
|
49
|
+
switch (_context.prev = _context.next) {
|
|
50
|
+
case 0:
|
|
51
|
+
featureCode = _ref.featureCode, actionCode = _ref.actionCode;
|
|
52
|
+
_context.next = 3;
|
|
53
|
+
return this.features.isInstalled('permission');
|
|
54
|
+
case 3:
|
|
55
|
+
isInstalled = _context.sent;
|
|
56
|
+
_context.next = 6;
|
|
57
|
+
return this.features.isInstalled('skill');
|
|
58
|
+
case 6:
|
|
59
|
+
isSkillInstalled = _context.sent;
|
|
60
|
+
if (!(isSkillInstalled && isInstalled && featureCode === 'node' && actionCode === 'upgrade')) {
|
|
61
|
+
_context.next = 16;
|
|
62
|
+
break;
|
|
63
|
+
}
|
|
64
|
+
_context.next = 10;
|
|
65
|
+
return this.writePlugin();
|
|
66
|
+
case 10:
|
|
67
|
+
combinedFile = _context.sent;
|
|
68
|
+
_context.next = 13;
|
|
69
|
+
return this.Action('permission', 'sync').execute({});
|
|
70
|
+
case 13:
|
|
71
|
+
results = _context.sent;
|
|
72
|
+
results.files = [].concat((0, _toConsumableArray2["default"])((_results$files = results.files) !== null && _results$files !== void 0 ? _results$files : []), (0, _toConsumableArray2["default"])(combinedFile));
|
|
73
|
+
return _context.abrupt("return", results);
|
|
74
|
+
case 16:
|
|
75
|
+
return _context.abrupt("return", {});
|
|
76
|
+
case 17:
|
|
77
|
+
case "end":
|
|
78
|
+
return _context.stop();
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}, _callee, this);
|
|
82
|
+
}));
|
|
83
|
+
function handleDidExecuteAction(_x) {
|
|
84
|
+
return _handleDidExecuteAction.apply(this, arguments);
|
|
85
|
+
}
|
|
86
|
+
return handleDidExecuteAction;
|
|
87
|
+
}()
|
|
88
|
+
}, {
|
|
89
|
+
key: "afterPackageInstall",
|
|
90
|
+
value: function () {
|
|
91
|
+
var _afterPackageInstall = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
|
|
92
|
+
var files, combinedFile;
|
|
93
|
+
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
94
|
+
while (1) {
|
|
95
|
+
switch (_context2.prev = _context2.next) {
|
|
96
|
+
case 0:
|
|
97
|
+
_context2.next = 2;
|
|
98
|
+
return this.writePlugin();
|
|
99
|
+
case 2:
|
|
100
|
+
files = _context2.sent;
|
|
101
|
+
_context2.next = 5;
|
|
102
|
+
return this.writeTypesFile();
|
|
103
|
+
case 5:
|
|
104
|
+
combinedFile = _context2.sent;
|
|
105
|
+
return _context2.abrupt("return", {
|
|
106
|
+
files: [].concat((0, _toConsumableArray2["default"])(files), (0, _toConsumableArray2["default"])(combinedFile))
|
|
107
|
+
});
|
|
108
|
+
case 7:
|
|
109
|
+
case "end":
|
|
110
|
+
return _context2.stop();
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}, _callee2, this);
|
|
114
|
+
}));
|
|
115
|
+
function afterPackageInstall() {
|
|
116
|
+
return _afterPackageInstall.apply(this, arguments);
|
|
117
|
+
}
|
|
118
|
+
return afterPackageInstall;
|
|
119
|
+
}()
|
|
120
|
+
}, {
|
|
121
|
+
key: "writeTypesFile",
|
|
122
|
+
value: function () {
|
|
123
|
+
var _writeTypesFile = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
|
|
124
|
+
return _regenerator["default"].wrap(function _callee3$(_context3) {
|
|
125
|
+
while (1) {
|
|
126
|
+
switch (_context3.prev = _context3.next) {
|
|
127
|
+
case 0:
|
|
128
|
+
_context3.next = 2;
|
|
129
|
+
return this.writer.writeTypesFile(this.cwd, {
|
|
130
|
+
contracts: []
|
|
131
|
+
});
|
|
132
|
+
case 2:
|
|
133
|
+
return _context3.abrupt("return", _context3.sent);
|
|
134
|
+
case 3:
|
|
135
|
+
case "end":
|
|
136
|
+
return _context3.stop();
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}, _callee3, this);
|
|
140
|
+
}));
|
|
141
|
+
function writeTypesFile() {
|
|
142
|
+
return _writeTypesFile.apply(this, arguments);
|
|
143
|
+
}
|
|
144
|
+
return writeTypesFile;
|
|
145
|
+
}()
|
|
146
|
+
}, {
|
|
147
|
+
key: "writePlugin",
|
|
148
|
+
value: function () {
|
|
149
|
+
var _writePlugin = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
|
|
150
|
+
return _regenerator["default"].wrap(function _callee4$(_context4) {
|
|
151
|
+
while (1) {
|
|
152
|
+
switch (_context4.prev = _context4.next) {
|
|
153
|
+
case 0:
|
|
154
|
+
return _context4.abrupt("return", this.writer.writePlugin(this.cwd));
|
|
155
|
+
case 1:
|
|
156
|
+
case "end":
|
|
157
|
+
return _context4.stop();
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}, _callee4, this);
|
|
161
|
+
}));
|
|
162
|
+
function writePlugin() {
|
|
163
|
+
return _writePlugin.apply(this, arguments);
|
|
164
|
+
}
|
|
165
|
+
return writePlugin;
|
|
166
|
+
}()
|
|
167
|
+
}]);
|
|
168
|
+
return PermissionFeature;
|
|
44
169
|
}(_AbstractFeature2["default"]);
|
|
45
170
|
exports["default"] = PermissionFeature;
|
|
46
171
|
//# sourceMappingURL=PermissionFeature.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PermissionFeature.js","names":["PermissionFeature","
|
|
1
|
+
{"version":3,"file":"PermissionFeature.js","names":["PermissionFeature","options","diskUtil","resolvePath","__dirname","name","writer","Writer","emitter","on","handleDidExecuteAction","bind","featureCode","actionCode","features","isInstalled","isSkillInstalled","writePlugin","combinedFile","Action","execute","results","files","writeTypesFile","cwd","contracts","AbstractFeature"],"sources":["../../../src/features/permission/PermissionFeature.ts"],"sourcesContent":["import { diskUtil, NpmPackage } from '@sprucelabs/spruce-skill-utils'\nimport AbstractFeature, {\n\tFeatureDependency,\n\tFeatureOptions,\n\tInstallResults,\n} from '../AbstractFeature'\nimport { FeatureCode } from '../features.types'\nimport PermissionWriter from './writers/PermissionWriter'\n\nexport default class PermissionFeature extends AbstractFeature {\n\tpublic code: FeatureCode = 'permission'\n\tpublic nameReadable = 'permission'\n\tpublic description = 'Manage permissions for your skill'\n\tpublic dependencies: FeatureDependency[] = []\n\tpublic actionsDir = diskUtil.resolvePath(__dirname, 'actions')\n\tpublic packageDependencies: NpmPackage[] = [\n\t\t{\n\t\t\tname: '@sprucelabs/spruce-permission-plugin@latest',\n\t\t},\n\t]\n\tprivate writer: PermissionWriter\n\n\tpublic constructor(options: FeatureOptions) {\n\t\tsuper(options)\n\t\tthis.writer = this.Writer('permission')\n\n\t\tvoid this.emitter.on(\n\t\t\t'feature.did-execute',\n\t\t\tthis.handleDidExecuteAction.bind(this)\n\t\t)\n\t}\n\n\tpublic async handleDidExecuteAction({\n\t\tfeatureCode,\n\t\tactionCode,\n\t}: {\n\t\tfeatureCode: string\n\t\tactionCode: string\n\t}) {\n\t\tconst isInstalled = await this.features.isInstalled('permission')\n\t\tconst isSkillInstalled = await this.features.isInstalled('skill')\n\n\t\tif (\n\t\t\tisSkillInstalled &&\n\t\t\tisInstalled &&\n\t\t\tfeatureCode === 'node' &&\n\t\t\tactionCode === 'upgrade'\n\t\t) {\n\t\t\tconst combinedFile = await this.writePlugin()\n\t\t\tconst results = await this.Action('permission', 'sync').execute({})\n\n\t\t\tresults.files = [...(results.files ?? []), ...combinedFile]\n\t\t\treturn results\n\t\t}\n\n\t\treturn {}\n\t}\n\n\tpublic async afterPackageInstall(): Promise<InstallResults> {\n\t\tconst files = await this.writePlugin()\n\t\tconst combinedFile = await this.writeTypesFile()\n\n\t\treturn {\n\t\t\tfiles: [...files, ...combinedFile],\n\t\t}\n\t}\n\n\tprivate async writeTypesFile() {\n\t\treturn await this.writer.writeTypesFile(this.cwd, {\n\t\t\tcontracts: [],\n\t\t})\n\t}\n\n\tprivate async writePlugin() {\n\t\treturn this.writer.writePlugin(this.cwd)\n\t}\n}\n\ndeclare module '../../features/features.types' {\n\tinterface FeatureMap {\n\t\tpermission: PermissionFeature\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AACA;AAI2B;AAAA;AAAA,IAINA,iBAAiB;EAAA;EAAA;EAarC,2BAAmBC,OAAuB,EAAE;IAAA;IAAA;IAC3C,0BAAMA,OAAO;IAAC,yFAbY,YAAY;IAAA,iGACjB,YAAY;IAAA,gGACb,mCAAmC;IAAA,iGACb,EAAE;IAAA,+FACzBC,0BAAQ,CAACC,WAAW,CAACC,SAAS,EAAE,SAAS,CAAC;IAAA,wGACnB,CAC1C;MACCC,IAAI,EAAE;IACP,CAAC,CACD;IAAA;IAKA,MAAKC,MAAM,GAAG,MAAKC,MAAM,CAAC,YAAY,CAAC;IAEvC,KAAK,MAAKC,OAAO,CAACC,EAAE,CACnB,qBAAqB,EACrB,MAAKC,sBAAsB,CAACC,IAAI,gDAAM,CACtC;IAAA;EACF;EAAC;IAAA;IAAA;MAAA,4GAED;QAAA;QAAA;UAAA;YAAA;cAAA;gBACCC,WAAW,QAAXA,WAAW,EACXC,UAAU,QAAVA,UAAU;gBAAA;gBAAA,OAKgB,IAAI,CAACC,QAAQ,CAACC,WAAW,CAAC,YAAY,CAAC;cAAA;gBAA3DA,WAAW;gBAAA;gBAAA,OACc,IAAI,CAACD,QAAQ,CAACC,WAAW,CAAC,OAAO,CAAC;cAAA;gBAA3DC,gBAAgB;gBAAA,MAGrBA,gBAAgB,IAChBD,WAAW,IACXH,WAAW,KAAK,MAAM,IACtBC,UAAU,KAAK,SAAS;kBAAA;kBAAA;gBAAA;gBAAA;gBAAA,OAEG,IAAI,CAACI,WAAW,EAAE;cAAA;gBAAvCC,YAAY;gBAAA;gBAAA,OACI,IAAI,CAACC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAACC,OAAO,CAAC,CAAC,CAAC,CAAC;cAAA;gBAA7DC,OAAO;gBAEbA,OAAO,CAACC,KAAK,mEAAQD,OAAO,CAACC,KAAK,2DAAI,EAAE,uCAAMJ,YAAY,EAAC;gBAAA,iCACpDG,OAAO;cAAA;gBAAA,iCAGR,CAAC,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACT;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,yGAED;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACqB,IAAI,CAACJ,WAAW,EAAE;cAAA;gBAAhCK,KAAK;gBAAA;gBAAA,OACgB,IAAI,CAACC,cAAc,EAAE;cAAA;gBAA1CL,YAAY;gBAAA,kCAEX;kBACNI,KAAK,gDAAMA,KAAK,uCAAKJ,YAAY;gBAClC,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACD;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,oGAED;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACc,IAAI,CAACZ,MAAM,CAACiB,cAAc,CAAC,IAAI,CAACC,GAAG,EAAE;kBACjDC,SAAS,EAAE;gBACZ,CAAC,CAAC;cAAA;gBAAA;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACF;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,iGAED;QAAA;UAAA;YAAA;cAAA;gBAAA,kCACQ,IAAI,CAACnB,MAAM,CAACW,WAAW,CAAC,IAAI,CAACO,GAAG,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACxC;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;EAAA;AAAA,EAlE6CE,4BAAe;AAAA"}
|
|
@@ -58,10 +58,13 @@ var CreateAction = /*#__PURE__*/function (_AbstractAction) {
|
|
|
58
58
|
});
|
|
59
59
|
case 5:
|
|
60
60
|
files = _context.sent;
|
|
61
|
+
_context.next = 8;
|
|
62
|
+
return this.Action('permission', 'sync').execute({});
|
|
63
|
+
case 8:
|
|
61
64
|
return _context.abrupt("return", {
|
|
62
65
|
files: files
|
|
63
66
|
});
|
|
64
|
-
case
|
|
67
|
+
case 9:
|
|
65
68
|
case "end":
|
|
66
69
|
return _context.stop();
|
|
67
70
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateAction.js","names":["CreateAction","schema","options","validateAndNormalizeOptions","nameKebab","nameReadable","nameCamel","description","destination","diskUtil","resolvePath","cwd","writer","Writer","writeContract","namesUtil","toKebab","files","AbstractAction","buildSchema","id","fields","namedTemplateItemSchema","label","hint","pickFields"],"sources":["../../../../src/features/permission/actions/CreateAction.ts"],"sourcesContent":["import { buildSchema, pickFields, SchemaValues } from '@sprucelabs/schema'\nimport { diskUtil, namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport namedTemplateItemSchema from '#spruce/schemas/spruceCli/v2020_07_22/namedTemplateItem.schema'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\n\nexport default class CreateAction extends AbstractAction<OptionsSchema> {\n\tpublic optionsSchema = schema\n\tpublic invocationMessage = 'Creating a permission contract... 🛡'\n\tpublic readonly commandAliases: string[] = [\n\t\t'create.permissions',\n\t\t'create.permission',\n\t]\n\n\tpublic async execute(options: Options): Promise<FeatureActionResponse> {\n\t\tconst { nameKebab, nameReadable, nameCamel, description } =\n\t\t\tthis.validateAndNormalizeOptions(options)\n\n\t\tconst destination = diskUtil.resolvePath(this.cwd, 'src', 'permissions')\n\n\t\tconst writer = this.Writer('permission')\n\t\tconst files = await writer.writeContract(destination, {\n\t\t\tnameKebab: nameKebab ?? namesUtil.toKebab(nameReadable),\n\t\t\tnameReadable,\n\t\t\tnameCamel,\n\t\t\tdescription,\n\t\t})\n\n\t\treturn {\n\t\t\tfiles,\n\t\t}\n\t}\n}\n\nconst schema = buildSchema({\n\tid: 'createPermission',\n\tfields: {\n\t\tnameReadable: {\n\t\t\t...namedTemplateItemSchema.fields.nameReadable,\n\t\t\tlabel: `Name your permission contract`,\n\t\t\thint: `A contract contains many permissions grouped by a responsibility`,\n\t\t},\n\t\t...pickFields(namedTemplateItemSchema.fields, ['nameCamel', 'nameKebab']),\n\t\tdescription: {\n\t\t\t...namedTemplateItemSchema.fields.description,\n\t\t\tlabel: `Describe this contract`,\n\t\t},\n\t},\n})\n\ntype OptionsSchema = typeof schema\ntype Options = SchemaValues<OptionsSchema>\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AAAiD;AAAA;AAAA;AAAA;AAAA,IAG5BA,YAAY;EAAA;EAAA;EAAA;IAAA;IAAA;IAAA;MAAA;IAAA;IAAA;IAAA,kGACTC,MAAM;IAAA,sGACF,sCAAsC;IAAA,mGACtB,CAC1C,oBAAoB,EACpB,mBAAmB,CACnB;IAAA;EAAA;EAAA;IAAA;IAAA;MAAA,6FAED,iBAAqBC,OAAgB;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA,wBAEnC,IAAI,CAACC,2BAA2B,CAACD,OAAO,CAAC,EADlCE,SAAS,yBAATA,SAAS,EAAEC,YAAY,yBAAZA,YAAY,EAAEC,SAAS,yBAATA,SAAS,EAAEC,WAAW,yBAAXA,WAAW;gBAGjDC,WAAW,GAAGC,0BAAQ,CAACC,WAAW,CAAC,IAAI,CAACC,GAAG,EAAE,KAAK,EAAE,aAAa,CAAC;gBAElEC,MAAM,GAAG,IAAI,CAACC,MAAM,CAAC,YAAY,CAAC;gBAAA;gBAAA,OACpBD,MAAM,CAACE,aAAa,CAACN,WAAW,EAAE;kBACrDJ,SAAS,EAAEA,SAAS,aAATA,SAAS,cAATA,SAAS,GAAIW,2BAAS,CAACC,OAAO,CAACX,YAAY,CAAC;kBACvDA,YAAY,EAAZA,YAAY;kBACZC,SAAS,EAATA,SAAS;kBACTC,WAAW,EAAXA;gBACD,CAAC,CAAC;cAAA;gBALIU,KAAK;gBAAA,
|
|
1
|
+
{"version":3,"file":"CreateAction.js","names":["CreateAction","schema","options","validateAndNormalizeOptions","nameKebab","nameReadable","nameCamel","description","destination","diskUtil","resolvePath","cwd","writer","Writer","writeContract","namesUtil","toKebab","files","Action","execute","AbstractAction","buildSchema","id","fields","namedTemplateItemSchema","label","hint","pickFields"],"sources":["../../../../src/features/permission/actions/CreateAction.ts"],"sourcesContent":["import { buildSchema, pickFields, SchemaValues } from '@sprucelabs/schema'\nimport { diskUtil, namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport namedTemplateItemSchema from '#spruce/schemas/spruceCli/v2020_07_22/namedTemplateItem.schema'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\n\nexport default class CreateAction extends AbstractAction<OptionsSchema> {\n\tpublic optionsSchema = schema\n\tpublic invocationMessage = 'Creating a permission contract... 🛡'\n\tpublic readonly commandAliases: string[] = [\n\t\t'create.permissions',\n\t\t'create.permission',\n\t]\n\n\tpublic async execute(options: Options): Promise<FeatureActionResponse> {\n\t\tconst { nameKebab, nameReadable, nameCamel, description } =\n\t\t\tthis.validateAndNormalizeOptions(options)\n\n\t\tconst destination = diskUtil.resolvePath(this.cwd, 'src', 'permissions')\n\n\t\tconst writer = this.Writer('permission')\n\t\tconst files = await writer.writeContract(destination, {\n\t\t\tnameKebab: nameKebab ?? namesUtil.toKebab(nameReadable),\n\t\t\tnameReadable,\n\t\t\tnameCamel,\n\t\t\tdescription,\n\t\t})\n\n\t\tawait this.Action('permission', 'sync').execute({})\n\n\t\treturn {\n\t\t\tfiles,\n\t\t}\n\t}\n}\n\nconst schema = buildSchema({\n\tid: 'createPermission',\n\tfields: {\n\t\tnameReadable: {\n\t\t\t...namedTemplateItemSchema.fields.nameReadable,\n\t\t\tlabel: `Name your permission contract`,\n\t\t\thint: `A contract contains many permissions grouped by a responsibility`,\n\t\t},\n\t\t...pickFields(namedTemplateItemSchema.fields, ['nameCamel', 'nameKebab']),\n\t\tdescription: {\n\t\t\t...namedTemplateItemSchema.fields.description,\n\t\t\tlabel: `Describe this contract`,\n\t\t},\n\t},\n})\n\ntype OptionsSchema = typeof schema\ntype Options = SchemaValues<OptionsSchema>\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AAAiD;AAAA;AAAA;AAAA;AAAA,IAG5BA,YAAY;EAAA;EAAA;EAAA;IAAA;IAAA;IAAA;MAAA;IAAA;IAAA;IAAA,kGACTC,MAAM;IAAA,sGACF,sCAAsC;IAAA,mGACtB,CAC1C,oBAAoB,EACpB,mBAAmB,CACnB;IAAA;EAAA;EAAA;IAAA;IAAA;MAAA,6FAED,iBAAqBC,OAAgB;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA,wBAEnC,IAAI,CAACC,2BAA2B,CAACD,OAAO,CAAC,EADlCE,SAAS,yBAATA,SAAS,EAAEC,YAAY,yBAAZA,YAAY,EAAEC,SAAS,yBAATA,SAAS,EAAEC,WAAW,yBAAXA,WAAW;gBAGjDC,WAAW,GAAGC,0BAAQ,CAACC,WAAW,CAAC,IAAI,CAACC,GAAG,EAAE,KAAK,EAAE,aAAa,CAAC;gBAElEC,MAAM,GAAG,IAAI,CAACC,MAAM,CAAC,YAAY,CAAC;gBAAA;gBAAA,OACpBD,MAAM,CAACE,aAAa,CAACN,WAAW,EAAE;kBACrDJ,SAAS,EAAEA,SAAS,aAATA,SAAS,cAATA,SAAS,GAAIW,2BAAS,CAACC,OAAO,CAACX,YAAY,CAAC;kBACvDA,YAAY,EAAZA,YAAY;kBACZC,SAAS,EAATA,SAAS;kBACTC,WAAW,EAAXA;gBACD,CAAC,CAAC;cAAA;gBALIU,KAAK;gBAAA;gBAAA,OAOL,IAAI,CAACC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAACC,OAAO,CAAC,CAAC,CAAC,CAAC;cAAA;gBAAA,iCAE5C;kBACNF,KAAK,EAALA;gBACD,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACD;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;EAAA;AAAA,EA3BwCG,2BAAc;AAAA;AA8BxD,IAAMnB,MAAM,GAAG,IAAAoB,mBAAW,EAAC;EAC1BC,EAAE,EAAE,kBAAkB;EACtBC,MAAM;IACLlB,YAAY,kCACRmB,6BAAuB,CAACD,MAAM,CAAClB,YAAY;MAC9CoB,KAAK,iCAAiC;MACtCC,IAAI;IAAoE;EACxE,GACE,IAAAC,kBAAU,EAACH,6BAAuB,CAACD,MAAM,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACzEhB,WAAW,kCACPiB,6BAAuB,CAACD,MAAM,CAAChB,WAAW;MAC7CkB,KAAK;IAA0B;EAC/B;AAEH,CAAC,CAAC"}
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import AbstractAction from '../../AbstractAction';
|
|
2
|
-
import { FeatureActionResponse } from '../../features.types';
|
|
2
|
+
import { ActionOptions, FeatureActionResponse } from '../../features.types';
|
|
3
3
|
export default class SyncAction extends AbstractAction<OptionsSchema> {
|
|
4
4
|
invocationMessage: string;
|
|
5
5
|
optionsSchema: {
|
|
6
6
|
id: string;
|
|
7
7
|
fields: {};
|
|
8
8
|
};
|
|
9
|
+
readonly commandAliases: string[];
|
|
10
|
+
private permissions;
|
|
11
|
+
private writer;
|
|
12
|
+
constructor(options: ActionOptions);
|
|
9
13
|
execute(): Promise<FeatureActionResponse>;
|
|
10
14
|
}
|
|
11
15
|
declare const schema: {
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports["default"] = void 0;
|
|
8
8
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
9
10
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
10
11
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
12
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
@@ -21,34 +22,51 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re
|
|
|
21
22
|
var SyncAction = /*#__PURE__*/function (_AbstractAction) {
|
|
22
23
|
(0, _inherits2["default"])(SyncAction, _AbstractAction);
|
|
23
24
|
var _super = _createSuper(SyncAction);
|
|
24
|
-
function SyncAction() {
|
|
25
|
+
function SyncAction(options) {
|
|
25
26
|
var _this;
|
|
26
27
|
(0, _classCallCheck2["default"])(this, SyncAction);
|
|
27
|
-
|
|
28
|
-
args[_key] = arguments[_key];
|
|
29
|
-
}
|
|
30
|
-
_this = _super.call.apply(_super, [this].concat(args));
|
|
28
|
+
_this = _super.call(this, options);
|
|
31
29
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "invocationMessage", 'Syncing permissions... 🛡');
|
|
32
30
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "optionsSchema", schema);
|
|
31
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "commandAliases", ['sync.permissions']);
|
|
32
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "permissions", void 0);
|
|
33
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "writer", void 0);
|
|
34
|
+
_this.permissions = _this.Store('permission');
|
|
35
|
+
_this.writer = _this.Writer('permission');
|
|
33
36
|
return _this;
|
|
34
37
|
}
|
|
35
38
|
(0, _createClass2["default"])(SyncAction, [{
|
|
36
39
|
key: "execute",
|
|
37
40
|
value: function () {
|
|
38
41
|
var _execute = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
39
|
-
var
|
|
42
|
+
var map, typesFiles, local, combinedFiles;
|
|
40
43
|
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
41
44
|
while (1) {
|
|
42
45
|
switch (_context.prev = _context.next) {
|
|
43
46
|
case 0:
|
|
44
47
|
_context.next = 2;
|
|
45
|
-
return this.
|
|
48
|
+
return this.permissions.fetchContracts();
|
|
46
49
|
case 2:
|
|
47
|
-
|
|
50
|
+
map = _context.sent;
|
|
51
|
+
_context.next = 5;
|
|
52
|
+
return this.writer.writeTypesFile(this.cwd, map);
|
|
53
|
+
case 5:
|
|
54
|
+
typesFiles = _context.sent;
|
|
55
|
+
_context.next = 8;
|
|
56
|
+
return this.permissions.loadLocalPermissions();
|
|
57
|
+
case 8:
|
|
58
|
+
local = _context.sent;
|
|
59
|
+
_context.next = 11;
|
|
60
|
+
return this.writer.writeCombinedFile(this.cwd, {
|
|
61
|
+
contracts: local
|
|
62
|
+
});
|
|
63
|
+
case 11:
|
|
64
|
+
combinedFiles = _context.sent;
|
|
48
65
|
return _context.abrupt("return", {
|
|
49
|
-
files:
|
|
66
|
+
files: [].concat((0, _toConsumableArray2["default"])(typesFiles), (0, _toConsumableArray2["default"])(combinedFiles)),
|
|
67
|
+
summaryLines: ['Permissions synced']
|
|
50
68
|
});
|
|
51
|
-
case
|
|
69
|
+
case 13:
|
|
52
70
|
case "end":
|
|
53
71
|
return _context.stop();
|
|
54
72
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SyncAction.js","names":["SyncAction","schema","Writer","writeTypesFile","cwd","files","AbstractAction","buildSchema","id","fields"],"sources":["../../../../src/features/permission/actions/SyncAction.ts"],"sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\n\nexport default class SyncAction extends AbstractAction<OptionsSchema> {\n\tpublic invocationMessage = 'Syncing permissions... 🛡'\n\tpublic optionsSchema = schema\n\n\tpublic async execute(): Promise<FeatureActionResponse> {\n\t\tconst
|
|
1
|
+
{"version":3,"file":"SyncAction.js","names":["SyncAction","options","schema","permissions","Store","writer","Writer","fetchContracts","map","writeTypesFile","cwd","typesFiles","loadLocalPermissions","local","writeCombinedFile","contracts","combinedFiles","files","summaryLines","AbstractAction","buildSchema","id","fields"],"sources":["../../../../src/features/permission/actions/SyncAction.ts"],"sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\nimport AbstractAction from '../../AbstractAction'\nimport { ActionOptions, FeatureActionResponse } from '../../features.types'\nimport PermissionStore from '../stores/PermissionStore'\nimport PermissionWriter from '../writers/PermissionWriter'\n\nexport default class SyncAction extends AbstractAction<OptionsSchema> {\n\tpublic invocationMessage = 'Syncing permissions... 🛡'\n\tpublic optionsSchema = schema\n\tpublic readonly commandAliases: string[] = ['sync.permissions']\n\n\tprivate permissions: PermissionStore\n\tprivate writer: PermissionWriter\n\n\tpublic constructor(options: ActionOptions) {\n\t\tsuper(options)\n\t\tthis.permissions = this.Store('permission')\n\t\tthis.writer = this.Writer('permission')\n\t}\n\n\tpublic async execute(): Promise<FeatureActionResponse> {\n\t\tconst map = await this.permissions.fetchContracts()\n\t\tconst typesFiles = await this.writer.writeTypesFile(this.cwd, map)\n\n\t\tconst local = await this.permissions.loadLocalPermissions()\n\t\tconst combinedFiles = await this.writer.writeCombinedFile(this.cwd, {\n\t\t\tcontracts: local,\n\t\t})\n\n\t\treturn {\n\t\t\tfiles: [...typesFiles, ...combinedFiles],\n\t\t\tsummaryLines: ['Permissions synced'],\n\t\t}\n\t}\n}\n\nconst schema = buildSchema({\n\tid: 'syncPermissions',\n\tfields: {},\n})\n\ntype OptionsSchema = typeof schema\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AACA;AAAiD;AAAA;AAAA,IAK5BA,UAAU;EAAA;EAAA;EAQ9B,oBAAmBC,OAAsB,EAAE;IAAA;IAAA;IAC1C,0BAAMA,OAAO;IAAC,sGARY,2BAA2B;IAAA,kGAC/BC,MAAM;IAAA,mGACc,CAAC,kBAAkB,CAAC;IAAA;IAAA;IAO9D,MAAKC,WAAW,GAAG,MAAKC,KAAK,CAAC,YAAY,CAAC;IAC3C,MAAKC,MAAM,GAAG,MAAKC,MAAM,CAAC,YAAY,CAAC;IAAA;EACxC;EAAC;IAAA;IAAA;MAAA,6FAED;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACmB,IAAI,CAACH,WAAW,CAACI,cAAc,EAAE;cAAA;gBAA7CC,GAAG;gBAAA;gBAAA,OACgB,IAAI,CAACH,MAAM,CAACI,cAAc,CAAC,IAAI,CAACC,GAAG,EAAEF,GAAG,CAAC;cAAA;gBAA5DG,UAAU;gBAAA;gBAAA,OAEI,IAAI,CAACR,WAAW,CAACS,oBAAoB,EAAE;cAAA;gBAArDC,KAAK;gBAAA;gBAAA,OACiB,IAAI,CAACR,MAAM,CAACS,iBAAiB,CAAC,IAAI,CAACJ,GAAG,EAAE;kBACnEK,SAAS,EAAEF;gBACZ,CAAC,CAAC;cAAA;gBAFIG,aAAa;gBAAA,iCAIZ;kBACNC,KAAK,gDAAMN,UAAU,uCAAKK,aAAa,EAAC;kBACxCE,YAAY,EAAE,CAAC,oBAAoB;gBACpC,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACD;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;EAAA;AAAA,EA3BsCC,2BAAc;AAAA;AA8BtD,IAAMjB,MAAM,GAAG,IAAAkB,mBAAW,EAAC;EAC1BC,EAAE,EAAE,iBAAiB;EACrBC,MAAM,EAAE,CAAC;AACV,CAAC,CAAC"}
|
|
@@ -2,5 +2,11 @@ import { PermissionContractMap } from '@sprucelabs/mercury-types';
|
|
|
2
2
|
import AbstractStore from '../../../stores/AbstractStore';
|
|
3
3
|
export default class PermissionStore extends AbstractStore {
|
|
4
4
|
name: string;
|
|
5
|
-
loadLocalPermissions(): Promise<
|
|
5
|
+
loadLocalPermissions(): Promise<ImportedPermission[]>;
|
|
6
|
+
fetchContracts(): Promise<PermissionContractMap>;
|
|
7
|
+
}
|
|
8
|
+
export interface ImportedPermission {
|
|
9
|
+
id: string;
|
|
10
|
+
permissions: string[];
|
|
11
|
+
path: string;
|
|
6
12
|
}
|