@sprucelabs/spruce-cli 19.2.2 → 19.2.4
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 +16 -0
- package/build/GlobalEmitter.js +2 -3
- package/build/GlobalEmitter.js.map +1 -1
- package/build/InFlightEntertainment.js +1 -2
- package/build/InFlightEntertainment.js.map +1 -1
- package/build/__tests__/behavioral/AddingADependency.test.js +2 -3
- package/build/__tests__/behavioral/AddingADependency.test.js.map +1 -1
- package/build/__tests__/behavioral/BlockingCommands.test.js +2 -3
- package/build/__tests__/behavioral/BlockingCommands.test.js.map +1 -1
- package/build/__tests__/behavioral/BootingTheCli.test.js +2 -3
- package/build/__tests__/behavioral/BootingTheCli.test.js.map +1 -1
- package/build/__tests__/behavioral/BootingWithBadFiles.test.js +2 -3
- package/build/__tests__/behavioral/BootingWithBadFiles.test.js.map +1 -1
- package/build/__tests__/behavioral/CreatingAConversationTopic.test.js +2 -3
- package/build/__tests__/behavioral/CreatingAConversationTopic.test.js.map +1 -1
- package/build/__tests__/behavioral/DeployingASkill.test.js +2 -3
- package/build/__tests__/behavioral/DeployingASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/DeployingToSandbox.test.js +2 -3
- package/build/__tests__/behavioral/DeployingToSandbox.test.js.map +1 -1
- package/build/__tests__/behavioral/EnablingAndDisablingCache.test.js +2 -3
- package/build/__tests__/behavioral/EnablingAndDisablingCache.test.js.map +1 -1
- package/build/__tests__/behavioral/GettingCliVersion.test.js +2 -3
- package/build/__tests__/behavioral/GettingCliVersion.test.js.map +1 -1
- package/build/__tests__/behavioral/ManagingDependencies.test.js +2 -3
- package/build/__tests__/behavioral/ManagingDependencies.test.js.map +1 -1
- package/build/__tests__/behavioral/OverridingCommandsInPackageJson.test.js +2 -3
- package/build/__tests__/behavioral/OverridingCommandsInPackageJson.test.js.map +1 -1
- package/build/__tests__/behavioral/RegisteringConversationsOnBoot.test.js +2 -3
- package/build/__tests__/behavioral/RegisteringConversationsOnBoot.test.js.map +1 -1
- package/build/__tests__/behavioral/RememberingUpgradeSelections.test.js +2 -3
- package/build/__tests__/behavioral/RememberingUpgradeSelections.test.js.map +1 -1
- package/build/__tests__/behavioral/SettingLogTransportsInASkill.test.js +2 -3
- package/build/__tests__/behavioral/SettingLogTransportsInASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/SettingRemote.test.js +2 -3
- package/build/__tests__/behavioral/SettingRemote.test.js.map +1 -1
- package/build/__tests__/behavioral/SettingUpVscode.test.js +2 -3
- package/build/__tests__/behavioral/SettingUpVscode.test.js.map +1 -1
- package/build/__tests__/behavioral/TestingAConversation.test.js +2 -3
- package/build/__tests__/behavioral/TestingAConversation.test.js.map +1 -1
- package/build/__tests__/behavioral/errors/CreatingANewErrorBuilder.test.js +2 -3
- package/build/__tests__/behavioral/errors/CreatingANewErrorBuilder.test.js.map +1 -1
- package/build/__tests__/behavioral/errors/KeepingErrorClassInSync.test.js +2 -3
- package/build/__tests__/behavioral/errors/KeepingErrorClassInSync.test.js.map +1 -1
- package/build/__tests__/behavioral/errors/KeepingErrorsInSync.test.js +2 -3
- package/build/__tests__/behavioral/errors/KeepingErrorsInSync.test.js.map +1 -1
- package/build/__tests__/behavioral/errors/SettingUpErrors.test.js +2 -3
- package/build/__tests__/behavioral/errors/SettingUpErrors.test.js.map +1 -1
- package/build/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.js +2 -3
- package/build/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.js.map +1 -1
- package/build/__tests__/behavioral/events/CreatingAListener.test.js +2 -3
- package/build/__tests__/behavioral/events/CreatingAListener.test.js.map +1 -1
- package/build/__tests__/behavioral/events/CreatingAnEvent.test.js +2 -3
- package/build/__tests__/behavioral/events/CreatingAnEvent.test.js.map +1 -1
- package/build/__tests__/behavioral/events/EventWriter.test.js +2 -3
- package/build/__tests__/behavioral/events/EventWriter.test.js.map +1 -1
- package/build/__tests__/behavioral/events/KeepingEventsInSync.test.js +2 -3
- package/build/__tests__/behavioral/events/KeepingEventsInSync.test.js.map +1 -1
- package/build/__tests__/behavioral/events/KeepingEventsInSync2.test.js +2 -3
- package/build/__tests__/behavioral/events/KeepingEventsInSync2.test.js.map +1 -1
- package/build/__tests__/behavioral/events/KeepingListenersInSync.test.js +2 -3
- package/build/__tests__/behavioral/events/KeepingListenersInSync.test.js.map +1 -1
- package/build/__tests__/behavioral/events/ListeningToAnEventYouCreate.test.js +2 -3
- package/build/__tests__/behavioral/events/ListeningToAnEventYouCreate.test.js.map +1 -1
- package/build/__tests__/behavioral/events/ListeningToCoreEvents.test.js +2 -3
- package/build/__tests__/behavioral/events/ListeningToCoreEvents.test.js.map +1 -1
- package/build/__tests__/behavioral/events/RegisteringEventsOnBoot.test.js +2 -3
- package/build/__tests__/behavioral/events/RegisteringEventsOnBoot.test.js.map +1 -1
- package/build/__tests__/behavioral/events/RegisteringGlobalEvents.test.js +2 -3
- package/build/__tests__/behavioral/events/RegisteringGlobalEvents.test.js.map +1 -1
- package/build/__tests__/behavioral/events/SettingUpEvents.test.js +2 -3
- package/build/__tests__/behavioral/events/SettingUpEvents.test.js.map +1 -1
- package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.js +2 -3
- package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.js.map +1 -1
- package/build/__tests__/behavioral/events/SyncingEventsOnlyFromDependencies.test.js +2 -3
- package/build/__tests__/behavioral/events/SyncingEventsOnlyFromDependencies.test.js.map +1 -1
- package/build/__tests__/behavioral/node/CreatingANodeModule.test.js +2 -3
- package/build/__tests__/behavioral/node/CreatingANodeModule.test.js.map +1 -1
- package/build/__tests__/behavioral/onboard/StartingOnboarding.test.js +5 -7
- package/build/__tests__/behavioral/onboard/StartingOnboarding.test.js.map +1 -1
- package/build/__tests__/behavioral/organization/CreatingAnOrg.test.js +2 -3
- package/build/__tests__/behavioral/organization/CreatingAnOrg.test.js.map +1 -1
- package/build/__tests__/behavioral/permissions/CreatingPermissions.test.js +2 -3
- package/build/__tests__/behavioral/permissions/CreatingPermissions.test.js.map +1 -1
- package/build/__tests__/behavioral/permissions/PermissionPlugin.test.js +2 -3
- package/build/__tests__/behavioral/permissions/PermissionPlugin.test.js.map +1 -1
- package/build/__tests__/behavioral/permissions/PermissionStore.test.js +2 -3
- package/build/__tests__/behavioral/permissions/PermissionStore.test.js.map +1 -1
- package/build/__tests__/behavioral/permissions/PermissionWriter.test.js +2 -3
- package/build/__tests__/behavioral/permissions/PermissionWriter.test.js.map +1 -1
- package/build/__tests__/behavioral/permissions/SyncingPermissions.test.js +4 -6
- package/build/__tests__/behavioral/permissions/SyncingPermissions.test.js.map +1 -1
- package/build/__tests__/behavioral/permissions/support/AbstractPermissionsTest.js +2 -3
- package/build/__tests__/behavioral/permissions/support/AbstractPermissionsTest.js.map +1 -1
- package/build/__tests__/behavioral/person/LoggingInAsPerson.test.js +2 -3
- package/build/__tests__/behavioral/person/LoggingInAsPerson.test.js.map +1 -1
- package/build/__tests__/behavioral/person/SeeWhoIsLoggedIn.test.js +2 -3
- package/build/__tests__/behavioral/person/SeeWhoIsLoggedIn.test.js.map +1 -1
- package/build/__tests__/behavioral/polish/SettingUpPolish.test.js +2 -3
- package/build/__tests__/behavioral/polish/SettingUpPolish.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/CreatingANewSchemaBuilder.test.js +2 -3
- package/build/__tests__/behavioral/schemas/CreatingANewSchemaBuilder.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/CreatingSchemasWithGenerics.test.js +2 -3
- package/build/__tests__/behavioral/schemas/CreatingSchemasWithGenerics.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/GeneratingFieldTypesOnly.test.js +2 -3
- package/build/__tests__/behavioral/schemas/GeneratingFieldTypesOnly.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.js +2 -3
- package/build/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/HandlesRelatedSchemas.test.js +2 -3
- package/build/__tests__/behavioral/schemas/HandlesRelatedSchemas.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/ImportingSchemaImports.test.js +2 -3
- package/build/__tests__/behavioral/schemas/ImportingSchemaImports.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/KeepingSchemasInSync.test.js +2 -3
- package/build/__tests__/behavioral/schemas/KeepingSchemasInSync.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/SettingUpSchemas.test.js +2 -3
- package/build/__tests__/behavioral/schemas/SettingUpSchemas.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/SettingUpSchemasForModuleDistribution.test.js +2 -3
- package/build/__tests__/behavioral/schemas/SettingUpSchemasForModuleDistribution.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/SyncingBadSchemasProvidesHelpfulErrorMessages.test.js +2 -3
- package/build/__tests__/behavioral/schemas/SyncingBadSchemasProvidesHelpfulErrorMessages.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/UsingSchemasInCli.test.js +3 -4
- package/build/__tests__/behavioral/schemas/UsingSchemasInCli.test.js.map +1 -1
- package/build/__tests__/behavioral/skill/BootingASkill.test.js +2 -3
- package/build/__tests__/behavioral/skill/BootingASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/skill/CreatingASkill.test.js +2 -3
- package/build/__tests__/behavioral/skill/CreatingASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/skill/InstallingASkillAtAnOrg.test.js +2 -3
- package/build/__tests__/behavioral/skill/InstallingASkillAtAnOrg.test.js.map +1 -1
- package/build/__tests__/behavioral/skill/LoggingInAsASkill.test.js +2 -3
- package/build/__tests__/behavioral/skill/LoggingInAsASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/skill/RebuildingASkill.test.js +2 -3
- package/build/__tests__/behavioral/skill/RebuildingASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/skill/RegisteringASkill.test.js +2 -3
- package/build/__tests__/behavioral/skill/RegisteringASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/skill/SettingUpASkill.test.js +2 -3
- package/build/__tests__/behavioral/skill/SettingUpASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/stores/CreatingADataStore.test.js +2 -3
- package/build/__tests__/behavioral/stores/CreatingADataStore.test.js.map +1 -1
- package/build/__tests__/behavioral/stores/KeepingDataStoresInSync.test.js +2 -3
- package/build/__tests__/behavioral/stores/KeepingDataStoresInSync.test.js.map +1 -1
- package/build/__tests__/behavioral/tests/CreatingATest.test.js +2 -3
- package/build/__tests__/behavioral/tests/CreatingATest.test.js.map +1 -1
- package/build/__tests__/behavioral/tests/RunningTests.test.js +2 -3
- package/build/__tests__/behavioral/tests/RunningTests.test.js.map +1 -1
- package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js +2 -3
- package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js.map +1 -1
- package/build/__tests__/behavioral/tests/SettingUpASkillForTesting.test.js +2 -3
- package/build/__tests__/behavioral/tests/SettingUpASkillForTesting.test.js.map +1 -1
- package/build/__tests__/behavioral/tests/SettingUpTests.test.js +2 -3
- package/build/__tests__/behavioral/tests/SettingUpTests.test.js.map +1 -1
- package/build/__tests__/behavioral/tests/TestReporterSettingsRemembered.test.js +2 -3
- package/build/__tests__/behavioral/tests/TestReporterSettingsRemembered.test.js.map +1 -1
- package/build/__tests__/behavioral/tests/TestingDataStores.test.js +2 -3
- package/build/__tests__/behavioral/tests/TestingDataStores.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpdatingDependencies.test.js +2 -3
- package/build/__tests__/behavioral/upgrading/UpdatingDependencies.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpdatingDependencies2.test.js +2 -3
- package/build/__tests__/behavioral/upgrading/UpdatingDependencies2.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingANodeModule.test.js +2 -3
- package/build/__tests__/behavioral/upgrading/UpgradingANodeModule.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingASkill.test.js +2 -3
- package/build/__tests__/behavioral/upgrading/UpgradingASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingASkill2.test.js +2 -3
- package/build/__tests__/behavioral/upgrading/UpgradingASkill2.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingASkill3.test.js +2 -3
- package/build/__tests__/behavioral/upgrading/UpgradingASkill3.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingASkill4.test.js +2 -3
- package/build/__tests__/behavioral/upgrading/UpgradingASkill4.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingASkill5.test.js +5 -8
- package/build/__tests__/behavioral/upgrading/UpgradingASkill5.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingWithListeners.test.js +2 -3
- package/build/__tests__/behavioral/upgrading/UpgradingWithListeners.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingWithSandboxFeatureInstalled.test.js +2 -3
- package/build/__tests__/behavioral/upgrading/UpgradingWithSandboxFeatureInstalled.test.js.map +1 -1
- package/build/__tests__/behavioral/views/CreatingASkillView.test.js +2 -3
- package/build/__tests__/behavioral/views/CreatingASkillView.test.js.map +1 -1
- package/build/__tests__/behavioral/views/CreatingATheme.test.js +2 -3
- package/build/__tests__/behavioral/views/CreatingATheme.test.js.map +1 -1
- package/build/__tests__/behavioral/views/KeepingViewsInSync.test.js +2 -3
- package/build/__tests__/behavioral/views/KeepingViewsInSync.test.js.map +1 -1
- package/build/__tests__/behavioral/views/RegisteringSkillViewOnBoot.test.js +2 -3
- package/build/__tests__/behavioral/views/RegisteringSkillViewOnBoot.test.js.map +1 -1
- package/build/__tests__/behavioral/views/SettingUpViews.test.js +2 -3
- package/build/__tests__/behavioral/views/SettingUpViews.test.js.map +1 -1
- package/build/__tests__/behavioral/views/TestingViewControllers.test.js +2 -3
- package/build/__tests__/behavioral/views/TestingViewControllers.test.js.map +1 -1
- package/build/__tests__/behavioral/views/WatchingSkillViews.test.js +2 -3
- package/build/__tests__/behavioral/views/WatchingSkillViews.test.js.map +1 -1
- package/build/__tests__/behavioral/views/plugins/CreatingAViewPlugin.test.js +2 -3
- package/build/__tests__/behavioral/views/plugins/CreatingAViewPlugin.test.js.map +1 -1
- package/build/__tests__/behavioral/watchers/WatchingForChanges.test.js +2 -3
- package/build/__tests__/behavioral/watchers/WatchingForChanges.test.js.map +1 -1
- package/build/__tests__/implementation/ActionExecuter.test.js +2 -3
- package/build/__tests__/implementation/ActionExecuter.test.js.map +1 -1
- package/build/__tests__/implementation/ActionExecuter2.test.js +2 -3
- package/build/__tests__/implementation/ActionExecuter2.test.js.map +1 -1
- package/build/__tests__/implementation/ActionExecuter3.test.js +2 -3
- package/build/__tests__/implementation/ActionExecuter3.test.js.map +1 -1
- package/build/__tests__/implementation/ActionExecuter4.test.js +2 -3
- package/build/__tests__/implementation/ActionExecuter4.test.js.map +1 -1
- package/build/__tests__/implementation/ArgParser.test.js +3 -4
- package/build/__tests__/implementation/ArgParser.test.js.map +1 -1
- package/build/__tests__/implementation/BuildService.test.js +2 -3
- package/build/__tests__/implementation/BuildService.test.js.map +1 -1
- package/build/__tests__/implementation/BulkImporting.test.js +3 -4
- package/build/__tests__/implementation/BulkImporting.test.js.map +1 -1
- package/build/__tests__/implementation/CachingImports.test.js +2 -3
- package/build/__tests__/implementation/CachingImports.test.js.map +1 -1
- package/build/__tests__/implementation/CommandOptionBuilder.test.js +2 -3
- package/build/__tests__/implementation/CommandOptionBuilder.test.js.map +1 -1
- package/build/__tests__/implementation/CommanderCommandResultMapper.test.js +3 -4
- package/build/__tests__/implementation/CommanderCommandResultMapper.test.js.map +1 -1
- package/build/__tests__/implementation/DataStoreStore.test.js +2 -3
- package/build/__tests__/implementation/DataStoreStore.test.js.map +1 -1
- package/build/__tests__/implementation/DeletingOrphanedSchemaDefinitions.test.js +2 -3
- package/build/__tests__/implementation/DeletingOrphanedSchemaDefinitions.test.js.map +1 -1
- package/build/__tests__/implementation/EventContractCleanerUtil.test.js +3 -4
- package/build/__tests__/implementation/EventContractCleanerUtil.test.js.map +1 -1
- package/build/__tests__/implementation/EventStore.test.js +2 -3
- package/build/__tests__/implementation/EventStore.test.js.map +1 -1
- package/build/__tests__/implementation/EventTemplateItemBuilder.test.js +2 -3
- package/build/__tests__/implementation/EventTemplateItemBuilder.test.js.map +1 -1
- package/build/__tests__/implementation/FeatureCommandAttacher.test.js +2 -3
- package/build/__tests__/implementation/FeatureCommandAttacher.test.js.map +1 -1
- package/build/__tests__/implementation/FeatureFixture.test.js +2 -3
- package/build/__tests__/implementation/FeatureFixture.test.js.map +1 -1
- package/build/__tests__/implementation/FeatureInstaller.test.js +2 -3
- package/build/__tests__/implementation/FeatureInstaller.test.js.map +1 -1
- package/build/__tests__/implementation/FeaturesUtil.test.js +3 -4
- package/build/__tests__/implementation/FeaturesUtil.test.js.map +1 -1
- package/build/__tests__/implementation/FieldTemplateItemBuilder.test.js +2 -3
- package/build/__tests__/implementation/FieldTemplateItemBuilder.test.js.map +1 -1
- package/build/__tests__/implementation/GlobalEmitter.test.js +2 -3
- package/build/__tests__/implementation/GlobalEmitter.test.js.map +1 -1
- package/build/__tests__/implementation/Introspection.test.js +2 -3
- package/build/__tests__/implementation/Introspection.test.js.map +1 -1
- package/build/__tests__/implementation/JestJsonParser.test.js +3 -4
- package/build/__tests__/implementation/JestJsonParser.test.js.map +1 -1
- package/build/__tests__/implementation/LintService.test.js +2 -3
- package/build/__tests__/implementation/LintService.test.js.map +1 -1
- package/build/__tests__/implementation/ListenerStore.test.js +2 -3
- package/build/__tests__/implementation/ListenerStore.test.js.map +1 -1
- package/build/__tests__/implementation/OnboardingScriptLoader.test.js +2 -3
- package/build/__tests__/implementation/OnboardingScriptLoader.test.js.map +1 -1
- package/build/__tests__/implementation/OnboardingScriptPlayer.test.js +2 -3
- package/build/__tests__/implementation/OnboardingScriptPlayer.test.js.map +1 -1
- package/build/__tests__/implementation/OnboardingStore.test.js +2 -3
- package/build/__tests__/implementation/OnboardingStore.test.js.map +1 -1
- package/build/__tests__/implementation/OrganizationStore.test.js +2 -3
- package/build/__tests__/implementation/OrganizationStore.test.js.map +1 -1
- package/build/__tests__/implementation/ParentTestFinder.test.js +2 -3
- package/build/__tests__/implementation/ParentTestFinder.test.js.map +1 -1
- package/build/__tests__/implementation/PkgService.test.js +2 -3
- package/build/__tests__/implementation/PkgService.test.js.map +1 -1
- package/build/__tests__/implementation/SchemaStore.test.js +2 -3
- package/build/__tests__/implementation/SchemaStore.test.js.map +1 -1
- package/build/__tests__/implementation/SchemaTemplateItemBuilder.test.js +2 -3
- package/build/__tests__/implementation/SchemaTemplateItemBuilder.test.js.map +1 -1
- package/build/__tests__/implementation/SchemaValueTypeWriter.test.js +2 -3
- package/build/__tests__/implementation/SchemaValueTypeWriter.test.js.map +1 -1
- package/build/__tests__/implementation/ServiceFactory.test.js +2 -3
- package/build/__tests__/implementation/ServiceFactory.test.js.map +1 -1
- package/build/__tests__/implementation/SettingUpANodeModule.test.js +2 -3
- package/build/__tests__/implementation/SettingUpANodeModule.test.js.map +1 -1
- package/build/__tests__/implementation/SkillStore.test.js +2 -3
- package/build/__tests__/implementation/SkillStore.test.js.map +1 -1
- package/build/__tests__/implementation/StoreFeature.test.js +2 -3
- package/build/__tests__/implementation/StoreFeature.test.js.map +1 -1
- package/build/__tests__/implementation/TestReporter.test.js +2 -3
- package/build/__tests__/implementation/TestReporter.test.js.map +1 -1
- package/build/__tests__/implementation/TestRunner.test.js +2 -3
- package/build/__tests__/implementation/TestRunner.test.js.map +1 -1
- package/build/__tests__/implementation/ValueTypeMapping.test.js +2 -3
- package/build/__tests__/implementation/ValueTypeMapping.test.js.map +1 -1
- package/build/__tests__/implementation/Widgets.test.js +2 -3
- package/build/__tests__/implementation/Widgets.test.js.map +1 -1
- package/build/__tests__/support/EventFaker.js +1 -2
- package/build/__tests__/support/EventFaker.js.map +1 -1
- package/build/cli/Cli.js +1 -2
- package/build/cli/Cli.js.map +1 -1
- package/build/components/AbstractComponent.js +1 -2
- package/build/components/AbstractComponent.js.map +1 -1
- package/build/components/FormComponent.js +4 -6
- package/build/components/FormComponent.js.map +1 -1
- package/build/components/QuizComponent.js +1 -2
- package/build/components/QuizComponent.js.map +1 -1
- package/build/errors/SpruceError.js +2 -3
- package/build/errors/SpruceError.js.map +1 -1
- package/build/features/AbstractAction.js +1 -2
- package/build/features/AbstractAction.js.map +1 -1
- package/build/features/AbstractFeature.js +1 -2
- package/build/features/AbstractFeature.js.map +1 -1
- package/build/features/ActionExecuter.js +1 -2
- package/build/features/ActionExecuter.js.map +1 -1
- package/build/features/ActionFactory.js +1 -2
- package/build/features/ActionFactory.js.map +1 -1
- package/build/features/ActionQuestionAsker.js +1 -2
- package/build/features/ActionQuestionAsker.js.map +1 -1
- package/build/features/FeatureCommandAttacher.js +1 -2
- package/build/features/FeatureCommandAttacher.js.map +1 -1
- package/build/features/FeatureInstaller.js +1 -2
- package/build/features/FeatureInstaller.js.map +1 -1
- package/build/features/FeatureInstallerFactory.js +1 -2
- package/build/features/FeatureInstallerFactory.js.map +1 -1
- package/build/features/OverrideActionDecorator.js +1 -2
- package/build/features/OverrideActionDecorator.js.map +1 -1
- package/build/features/cache/CacheFeature.js +6 -8
- package/build/features/cache/CacheFeature.js.map +1 -1
- package/build/features/cache/actions/DisableAction.js +5 -7
- package/build/features/cache/actions/DisableAction.js.map +1 -1
- package/build/features/cache/actions/EnableAction.js +5 -7
- package/build/features/cache/actions/EnableAction.js.map +1 -1
- package/build/features/conversation/ConversationFeature.js +9 -11
- package/build/features/conversation/ConversationFeature.js.map +1 -1
- package/build/features/conversation/actions/CreateAction.js +4 -6
- package/build/features/conversation/actions/CreateAction.js.map +1 -1
- package/build/features/conversation/actions/TestAction.js +6 -8
- package/build/features/conversation/actions/TestAction.js.map +1 -1
- package/build/features/conversation/stores/ConversationStore.js +3 -5
- package/build/features/conversation/stores/ConversationStore.js.map +1 -1
- package/build/features/conversation/writers/ConversationWriter.js +2 -3
- package/build/features/conversation/writers/ConversationWriter.js.map +1 -1
- package/build/features/dependencies/DependencyFeature.js +8 -10
- package/build/features/dependencies/DependencyFeature.js.map +1 -1
- package/build/features/dependencies/actions/AddAction.js +5 -7
- package/build/features/dependencies/actions/AddAction.js.map +1 -1
- package/build/features/dependencies/actions/ManageAction.js +5 -7
- package/build/features/dependencies/actions/ManageAction.js.map +1 -1
- package/build/features/deploy/DeployFeature.js +8 -10
- package/build/features/deploy/DeployFeature.js.map +1 -1
- package/build/features/deploy/actions/HerokuAction.js +5 -7
- package/build/features/deploy/actions/HerokuAction.js.map +1 -1
- package/build/features/deploy/writers/DeployWriter.js +2 -3
- package/build/features/deploy/writers/DeployWriter.js.map +1 -1
- package/build/features/error/ErrorFeature.js +9 -11
- package/build/features/error/ErrorFeature.js.map +1 -1
- package/build/features/error/ParentTestFinder.js +1 -2
- package/build/features/error/ParentTestFinder.js.map +1 -1
- package/build/features/error/actions/CreateAction.js +4 -6
- package/build/features/error/actions/CreateAction.js.map +1 -1
- package/build/features/error/actions/SyncAction.js +5 -7
- package/build/features/error/actions/SyncAction.js.map +1 -1
- package/build/features/error/writers/ErrorWriter.js +2 -3
- package/build/features/error/writers/ErrorWriter.js.map +1 -1
- package/build/features/event/EventFeature.js +14 -16
- package/build/features/event/EventFeature.js.map +1 -1
- package/build/features/event/actions/CreateAction.js +4 -6
- package/build/features/event/actions/CreateAction.js.map +1 -1
- package/build/features/event/actions/ListenAction.js +5 -7
- package/build/features/event/actions/ListenAction.js.map +1 -1
- package/build/features/event/actions/SetRemoteAction.js +5 -7
- package/build/features/event/actions/SetRemoteAction.js.map +1 -1
- package/build/features/event/actions/SyncAction.js +5 -7
- package/build/features/event/actions/SyncAction.js.map +1 -1
- package/build/features/event/actions/SyncListenersAction.js +5 -7
- package/build/features/event/actions/SyncListenersAction.js.map +1 -1
- package/build/features/event/builders/EventContractBuilder.js +1 -2
- package/build/features/event/builders/EventContractBuilder.js.map +1 -1
- package/build/features/event/builders/ListenerTemplateItemBuilder.js +1 -2
- package/build/features/event/builders/ListenerTemplateItemBuilder.js.map +1 -1
- package/build/features/event/services/EventSettingsService.js +1 -2
- package/build/features/event/services/EventSettingsService.js.map +1 -1
- package/build/features/event/stores/EventStore.js +3 -5
- package/build/features/event/stores/EventStore.js.map +1 -1
- package/build/features/event/stores/ListenerStore.js +3 -5
- package/build/features/event/stores/ListenerStore.js.map +1 -1
- package/build/features/event/writers/EventWriter.js +2 -3
- package/build/features/event/writers/EventWriter.js.map +1 -1
- package/build/features/eventContract/EventContractFeature.js +9 -10
- package/build/features/eventContract/EventContractFeature.js.map +1 -1
- package/build/features/eventContract/actions/PullAction.js +5 -7
- package/build/features/eventContract/actions/PullAction.js.map +1 -1
- package/build/features/log/LogFeature.js +7 -9
- package/build/features/log/LogFeature.js.map +1 -1
- package/build/features/log/actions/CreateTransportAction.js +5 -7
- package/build/features/log/actions/CreateTransportAction.js.map +1 -1
- package/build/features/log/writers/LogWriter.js +2 -3
- package/build/features/log/writers/LogWriter.js.map +1 -1
- package/build/features/node/NodeFeature.js +12 -14
- package/build/features/node/NodeFeature.js.map +1 -1
- package/build/features/node/actions/CreateAction.js +5 -7
- package/build/features/node/actions/CreateAction.js.map +1 -1
- package/build/features/node/actions/UpdateDependenciesAction.js +6 -8
- package/build/features/node/actions/UpdateDependenciesAction.js.map +1 -1
- package/build/features/node/actions/UpgradeAction.js +5 -7
- package/build/features/node/actions/UpgradeAction.js.map +1 -1
- package/build/features/node/writers/NodeWriter.js +2 -3
- package/build/features/node/writers/NodeWriter.js.map +1 -1
- package/build/features/onboard/OnboardFeature.js +13 -15
- package/build/features/onboard/OnboardFeature.js.map +1 -1
- package/build/features/onboard/ScriptLoader.js +1 -2
- package/build/features/onboard/ScriptLoader.js.map +1 -1
- package/build/features/onboard/ScriptPlayer.js +1 -2
- package/build/features/onboard/ScriptPlayer.js.map +1 -1
- package/build/features/onboard/actions/OnboardAction.js +4 -6
- package/build/features/onboard/actions/OnboardAction.js.map +1 -1
- package/build/features/onboard/stores/OnboardingStore.js +3 -5
- package/build/features/onboard/stores/OnboardingStore.js.map +1 -1
- package/build/features/organization/OrganizationFeature.js +7 -8
- package/build/features/organization/OrganizationFeature.js.map +1 -1
- package/build/features/organization/actions/CreateAction.js +4 -6
- package/build/features/organization/actions/CreateAction.js.map +1 -1
- package/build/features/organization/actions/InstallAction.js +5 -7
- package/build/features/organization/actions/InstallAction.js.map +1 -1
- package/build/features/organization/stores/OrganizationStore.js +3 -5
- package/build/features/organization/stores/OrganizationStore.js.map +1 -1
- package/build/features/permission/PermissionFeature.js +10 -12
- package/build/features/permission/PermissionFeature.js.map +1 -1
- package/build/features/permission/actions/CreateAction.js +5 -7
- package/build/features/permission/actions/CreateAction.js.map +1 -1
- package/build/features/permission/actions/SyncAction.js +7 -9
- package/build/features/permission/actions/SyncAction.js.map +1 -1
- package/build/features/permission/stores/PermissionStore.js +3 -5
- package/build/features/permission/stores/PermissionStore.js.map +1 -1
- package/build/features/permission/writers/PermissionWriter.js +2 -3
- package/build/features/permission/writers/PermissionWriter.js.map +1 -1
- package/build/features/person/PersonFeature.js +8 -9
- package/build/features/person/PersonFeature.js.map +1 -1
- package/build/features/person/actions/LoginAction.js +5 -7
- package/build/features/person/actions/LoginAction.js.map +1 -1
- package/build/features/person/actions/LogoutAction.js +5 -7
- package/build/features/person/actions/LogoutAction.js.map +1 -1
- package/build/features/person/actions/WhoamiAction.js +5 -7
- package/build/features/person/actions/WhoamiAction.js.map +1 -1
- package/build/features/polish/PolishFeature.js +8 -9
- package/build/features/polish/PolishFeature.js.map +1 -1
- package/build/features/polish/actions/SetupAction.js +4 -6
- package/build/features/polish/actions/SetupAction.js.map +1 -1
- package/build/features/polish/writers/PolishWriter.js +2 -3
- package/build/features/polish/writers/PolishWriter.js.map +1 -1
- package/build/features/sandbox/SandboxFeature.js +7 -8
- package/build/features/sandbox/SandboxFeature.js.map +1 -1
- package/build/features/sandbox/actions/SetupAction.js +4 -6
- package/build/features/sandbox/actions/SetupAction.js.map +1 -1
- package/build/features/sandbox/writers/SandboxWriter.js +2 -3
- package/build/features/sandbox/writers/SandboxWriter.js.map +1 -1
- package/build/features/schema/SchemaFeature.js +10 -12
- package/build/features/schema/SchemaFeature.js.map +1 -1
- package/build/features/schema/ValueTypeBuilder.js +1 -2
- package/build/features/schema/ValueTypeBuilder.js.map +1 -1
- package/build/features/schema/actions/CreateAction.js +4 -6
- package/build/features/schema/actions/CreateAction.js.map +1 -1
- package/build/features/schema/actions/SyncAction.js +7 -9
- package/build/features/schema/actions/SyncAction.js.map +1 -1
- package/build/features/schema/actions/SyncFieldsAction.js +5 -7
- package/build/features/schema/actions/SyncFieldsAction.js.map +1 -1
- package/build/features/schema/services/SchemaService.js +2 -3
- package/build/features/schema/services/SchemaService.js.map +1 -1
- package/build/features/schema/stores/SchemaStore.js +3 -5
- package/build/features/schema/stores/SchemaStore.js.map +1 -1
- package/build/features/schema/writers/SchemaWriter.js +3 -5
- package/build/features/schema/writers/SchemaWriter.js.map +1 -1
- package/build/features/skill/SkillFeature.js +14 -16
- package/build/features/skill/SkillFeature.js.map +1 -1
- package/build/features/skill/actions/BootAction.js +7 -9
- package/build/features/skill/actions/BootAction.js.map +1 -1
- package/build/features/skill/actions/CreateAction.js +5 -7
- package/build/features/skill/actions/CreateAction.js.map +1 -1
- package/build/features/skill/actions/DashboardAction.js +5 -7
- package/build/features/skill/actions/DashboardAction.js.map +1 -1
- package/build/features/skill/actions/LoginAction.js +5 -7
- package/build/features/skill/actions/LoginAction.js.map +1 -1
- package/build/features/skill/actions/RebuildAction.js +5 -7
- package/build/features/skill/actions/RebuildAction.js.map +1 -1
- package/build/features/skill/actions/RegisterAction.js +5 -7
- package/build/features/skill/actions/RegisterAction.js.map +1 -1
- package/build/features/skill/stores/SkillStore.js +3 -5
- package/build/features/skill/stores/SkillStore.js.map +1 -1
- package/build/features/skill/updaters/Updater.js +1 -2
- package/build/features/skill/updaters/Updater.js.map +1 -1
- package/build/features/skill/writers/SkillWriter.js +2 -3
- package/build/features/skill/writers/SkillWriter.js.map +1 -1
- package/build/features/store/StoreFeature.js +10 -12
- package/build/features/store/StoreFeature.js.map +1 -1
- package/build/features/store/actions/CreateAction.js +4 -6
- package/build/features/store/actions/CreateAction.js.map +1 -1
- package/build/features/store/actions/SyncAction.js +5 -7
- package/build/features/store/actions/SyncAction.js.map +1 -1
- package/build/features/store/stores/StoreStore.js +3 -5
- package/build/features/store/stores/StoreStore.js.map +1 -1
- package/build/features/store/templateItemBuilders/StoreTemplateItemBuilder.js +1 -2
- package/build/features/store/templateItemBuilders/StoreTemplateItemBuilder.js.map +1 -1
- package/build/features/store/writers/StoreWriter.js +2 -3
- package/build/features/store/writers/StoreWriter.js.map +1 -1
- package/build/features/test/TestFeature.js +8 -10
- package/build/features/test/TestFeature.js.map +1 -1
- package/build/features/test/TestLogItemGenerator.js +1 -2
- package/build/features/test/TestLogItemGenerator.js.map +1 -1
- package/build/features/test/TestReporter.js +1 -2
- package/build/features/test/TestReporter.js.map +1 -1
- package/build/features/test/TestRunner.js +6 -8
- package/build/features/test/TestRunner.js.map +1 -1
- package/build/features/test/actions/CreateAction.js +4 -6
- package/build/features/test/actions/CreateAction.js.map +1 -1
- package/build/features/test/actions/SetupAction.js +5 -7
- package/build/features/test/actions/SetupAction.js.map +1 -1
- package/build/features/test/actions/TestAction.js +17 -19
- package/build/features/test/actions/TestAction.js.map +1 -1
- package/build/features/test/writers/TestWriter.js +2 -3
- package/build/features/test/writers/TestWriter.js.map +1 -1
- package/build/features/view/ViewFeature.js +8 -10
- package/build/features/view/ViewFeature.js.map +1 -1
- package/build/features/view/actions/CreateAction.js +5 -7
- package/build/features/view/actions/CreateAction.js.map +1 -1
- package/build/features/view/actions/CreatePluginAction.js +5 -7
- package/build/features/view/actions/CreatePluginAction.js.map +1 -1
- package/build/features/view/actions/CreateThemeAction.js +5 -7
- package/build/features/view/actions/CreateThemeAction.js.map +1 -1
- package/build/features/view/actions/SyncAction.js +5 -7
- package/build/features/view/actions/SyncAction.js.map +1 -1
- package/build/features/view/actions/WatchAction.js +7 -9
- package/build/features/view/actions/WatchAction.js.map +1 -1
- package/build/features/view/stores/ViewStore.js +3 -5
- package/build/features/view/stores/ViewStore.js.map +1 -1
- package/build/features/view/writers/ViewWriter.js +2 -3
- package/build/features/view/writers/ViewWriter.js.map +1 -1
- package/build/features/vscode/VsCodeFeature.js +7 -8
- package/build/features/vscode/VsCodeFeature.js.map +1 -1
- package/build/features/vscode/actions/SetupAction.js +6 -8
- package/build/features/vscode/actions/SetupAction.js.map +1 -1
- package/build/features/vscode/services/VsCodeService.js +2 -3
- package/build/features/vscode/services/VsCodeService.js.map +1 -1
- package/build/features/vscode/writers/VsCodeWriter.js +2 -3
- package/build/features/vscode/writers/VsCodeWriter.js.map +1 -1
- package/build/features/watch/WatchFeature.js +9 -11
- package/build/features/watch/WatchFeature.js.map +1 -1
- package/build/interfaces/SpyInterface.js +1 -2
- package/build/interfaces/SpyInterface.js.map +1 -1
- package/build/interfaces/TerminalInterface.js +2 -3
- package/build/interfaces/TerminalInterface.js.map +1 -1
- package/build/services/BuildService.js +1 -2
- package/build/services/BuildService.js.map +1 -1
- package/build/services/CommandService.js +1 -2
- package/build/services/CommandService.js.map +1 -1
- package/build/services/DependencyService.js +1 -2
- package/build/services/DependencyService.js.map +1 -1
- package/build/services/GameService.js +1 -2
- package/build/services/GameService.js.map +1 -1
- package/build/services/ImportService.js +1 -2
- package/build/services/ImportService.js.map +1 -1
- package/build/services/LintService.js +1 -2
- package/build/services/LintService.js.map +1 -1
- package/build/services/PkgService.js +3 -5
- package/build/services/PkgService.js.map +1 -1
- package/build/services/ServiceFactory.js +1 -2
- package/build/services/ServiceFactory.js.map +1 -1
- package/build/stores/AbstractLocalStore.js +2 -3
- package/build/stores/AbstractLocalStore.js.map +1 -1
- package/build/stores/AbstractStore.js +1 -2
- package/build/stores/AbstractStore.js.map +1 -1
- package/build/stores/StoreFactory.js +1 -2
- package/build/stores/StoreFactory.js.map +1 -1
- package/build/templateItemBuilders/EventTemplateItemBuilder.js +1 -2
- package/build/templateItemBuilders/EventTemplateItemBuilder.js.map +1 -1
- package/build/templateItemBuilders/FieldTemplateItemBuilder.js +1 -2
- package/build/templateItemBuilders/FieldTemplateItemBuilder.js.map +1 -1
- package/build/templateItemBuilders/SchemaTemplateItemBuilder.js +1 -2
- package/build/templateItemBuilders/SchemaTemplateItemBuilder.js.map +1 -1
- package/build/tests/AbstractCliTest.js +3 -4
- package/build/tests/AbstractCliTest.js.map +1 -1
- package/build/tests/AbstractErrorTest.js +2 -3
- package/build/tests/AbstractErrorTest.js.map +1 -1
- package/build/tests/AbstractEventTest.js +2 -3
- package/build/tests/AbstractEventTest.js.map +1 -1
- package/build/tests/AbstractSchemaTest.js +2 -3
- package/build/tests/AbstractSchemaTest.js.map +1 -1
- package/build/tests/AbstractSkillTest.js +2 -3
- package/build/tests/AbstractSkillTest.js.map +1 -1
- package/build/tests/AbstractTestTest.js +2 -3
- package/build/tests/AbstractTestTest.js.map +1 -1
- package/build/tests/CommandFaker.js +1 -2
- package/build/tests/CommandFaker.js.map +1 -1
- package/build/tests/JestJsonParser.js +1 -2
- package/build/tests/JestJsonParser.js.map +1 -1
- package/build/tests/MockProgramFactory.js +1 -2
- package/build/tests/MockProgramFactory.js.map +1 -1
- package/build/tests/cleanTestData.js +1 -1
- package/build/tests/cleanTestData.js.map +1 -1
- package/build/tests/fixtures/FeatureFixture.js +1 -2
- package/build/tests/fixtures/FeatureFixture.js.map +1 -1
- package/build/tests/fixtures/MercuryFixture.js +1 -2
- package/build/tests/fixtures/MercuryFixture.js.map +1 -1
- package/build/tests/fixtures/OrganizationFixture.js +1 -2
- package/build/tests/fixtures/OrganizationFixture.js.map +1 -1
- package/build/tests/fixtures/PersonFixture.js +1 -2
- package/build/tests/fixtures/PersonFixture.js.map +1 -1
- package/build/tests/fixtures/SkillFixture.js +1 -2
- package/build/tests/fixtures/SkillFixture.js.map +1 -1
- package/build/tests/fixtures/ViewFixture.js +1 -2
- package/build/tests/fixtures/ViewFixture.js.map +1 -1
- package/build/updaters/ScriptUpdater.js +1 -2
- package/build/updaters/ScriptUpdater.js.map +1 -1
- package/build/utilities/introspection.utility.js +1 -1
- package/build/utilities/introspection.utility.js.map +1 -1
- package/build/widgets/WidgetFactory.js +1 -2
- package/build/widgets/WidgetFactory.js.map +1 -1
- package/build/widgets/terminalKit/TKButtonWidget.js +6 -8
- package/build/widgets/terminalKit/TKButtonWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkBaseWidget.js +14 -16
- package/build/widgets/terminalKit/TkBaseWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkInputWidget.js +7 -9
- package/build/widgets/terminalKit/TkInputWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkLayoutCellWidget.js +5 -7
- package/build/widgets/terminalKit/TkLayoutCellWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkLayoutWidget.js +5 -7
- package/build/widgets/terminalKit/TkLayoutWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkMenuBarWidget.js +6 -8
- package/build/widgets/terminalKit/TkMenuBarWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkPopupWidget.js +5 -7
- package/build/widgets/terminalKit/TkPopupWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkProgressBarWidget.js +5 -7
- package/build/widgets/terminalKit/TkProgressBarWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkTextWidget.js +7 -9
- package/build/widgets/terminalKit/TkTextWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkWindowWidget.js +15 -17
- package/build/widgets/terminalKit/TkWindowWidget.js.map +1 -1
- package/build/writers/AbstractWriter.js +1 -2
- package/build/writers/AbstractWriter.js.map +1 -1
- package/build/writers/WriterFactory.js +1 -2
- package/build/writers/WriterFactory.js.map +1 -1
- package/package.json +27 -27
|
@@ -44,7 +44,7 @@ var AbstractAction = exports["default"] = /*#__PURE__*/function () {
|
|
|
44
44
|
this.emitter = options.emitter;
|
|
45
45
|
this.actionExecuter = options.actionExecuter;
|
|
46
46
|
}
|
|
47
|
-
(0, _createClass2["default"])(AbstractAction, [{
|
|
47
|
+
return (0, _createClass2["default"])(AbstractAction, [{
|
|
48
48
|
key: "Action",
|
|
49
49
|
value: function Action(featureCode, actionCode) {
|
|
50
50
|
return this.actionExecuter.Action(featureCode, actionCode);
|
|
@@ -202,6 +202,5 @@ var AbstractAction = exports["default"] = /*#__PURE__*/function () {
|
|
|
202
202
|
return connectToApi;
|
|
203
203
|
}()
|
|
204
204
|
}]);
|
|
205
|
-
return AbstractAction;
|
|
206
205
|
}();
|
|
207
206
|
//# sourceMappingURL=AbstractAction.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractAction.js","names":["_spruceSkillUtils","require","_validateAndNormalize","_interopRequireDefault","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","AbstractAction","exports","options","_classCallCheck2","cwd","templates","parent","storeFactory","serviceFactory","features","featureInstaller","ui","writerFactory","apiClientFactory","emitter","actionExecuter","_createClass2","key","value","Action","featureCode","actionCode","_Service","Service","_x","_x2","toString","type","Store","code","Writer","fileDescriptions","linter","getFeature","getFeatureCodes","getAllCodes","validateAndNormalizeOptions","schema","optionsSchema","validateAndNormalizer","validateAndNormalize","_resolveVersion","_asyncToGenerator2","_regenerator","mark","_callee","userSuppliedVersion","resolvedDestination","resolvedVersion","wrap","_callee$","_context","prev","next","versionUtil","generateVersion","undefined","constValue","askForVersionIfTodaysVersionDoesNotExist","sent","assertValidVersion","abrupt","dirValue","stop","resolveVersion","_x3","_x4","_askForVersionIfTodaysVersionDoesNotExist","_callee2","fallbackVersion","versions","todaysVersion","version","alreadyHasToday","choices","_callee2$","_context2","getAllVersions","find","label","_toConsumableArray2","sort","a","b","intValue","map","prompt","hint","isRequired","_x5","_x6","_connectToApi","_callee3","_callee3$","_context3","connectToApi","_x7"],"sources":["../../src/features/AbstractAction.ts"],"sourcesContent":["import { Schema, SchemaValues, SchemaPartialValues } from '@sprucelabs/schema'\nimport { versionUtil } from '@sprucelabs/spruce-skill-utils'\nimport { Templates } from '@sprucelabs/spruce-templates'\nimport { GlobalEmitter } from '../GlobalEmitter'\nimport ServiceFactory, {\n\tServiceProvider,\n\tService,\n\tServiceMap,\n} from '../services/ServiceFactory'\nimport StoreFactory, {\n\tStoreCode,\n\tCreateStoreOptions,\n\tStoreMap,\n} from '../stores/StoreFactory'\nimport {\n\tApiClient,\n\tApiClientFactory,\n\tApiClientFactoryOptions,\n} from '../types/apiClient.types'\nimport { GraphicsInterface } from '../types/cli.types'\nimport { WriterOptions } from '../writers/AbstractWriter'\nimport WriterFactory, { WriterCode, WriterMap } from '../writers/WriterFactory'\nimport AbstractFeature from './AbstractFeature'\nimport ActionExecuter from './ActionExecuter'\nimport FeatureInstaller from './FeatureInstaller'\nimport {\n\tFeatureAction,\n\tFeatureActionResponse,\n\tActionOptions,\n\tFeatureCode,\n} from './features.types'\nimport validateAndNormalizer from './validateAndNormalize.utility'\n\nexport default abstract class AbstractAction<S extends Schema = Schema>\n\timplements FeatureAction<S>, ServiceProvider\n{\n\tpublic abstract optionsSchema: S\n\tpublic readonly commandAliases: string[] = []\n\tpublic abstract invocationMessage: string\n\n\tprotected parent: AbstractFeature\n\tprotected features: FeatureInstaller\n\tprotected cwd: string\n\tprotected templates: Templates\n\tprotected ui: GraphicsInterface\n\tprotected emitter: GlobalEmitter\n\n\tprivate serviceFactory: ServiceFactory\n\tprivate storeFactory: StoreFactory\n\tprivate writerFactory: WriterFactory\n\tprivate apiClientFactory: ApiClientFactory\n\tprivate actionExecuter: ActionExecuter\n\n\tpublic constructor(options: ActionOptions) {\n\t\tthis.cwd = options.cwd\n\t\tthis.templates = options.templates\n\t\tthis.parent = options.parent\n\t\tthis.storeFactory = options.storeFactory\n\t\tthis.serviceFactory = options.serviceFactory\n\t\tthis.features = options.featureInstaller\n\t\tthis.ui = options.ui\n\t\tthis.writerFactory = options.writerFactory\n\t\tthis.apiClientFactory = options.apiClientFactory\n\t\tthis.emitter = options.emitter\n\t\tthis.actionExecuter = options.actionExecuter\n\t}\n\n\tpublic abstract execute(\n\t\toptions: SchemaValues<S>\n\t): Promise<FeatureActionResponse>\n\n\tprotected Action(featureCode: FeatureCode, actionCode: string) {\n\t\treturn this.actionExecuter.Action(featureCode, actionCode)\n\t}\n\n\tpublic Service<S extends Service>(type: S, cwd?: string): ServiceMap[S] {\n\t\treturn this.serviceFactory.Service(cwd ?? this.cwd, type)\n\t}\n\n\tprotected Store<C extends StoreCode>(\n\t\tcode: C,\n\t\toptions?: CreateStoreOptions<C>\n\t): StoreMap[C] {\n\t\treturn this.storeFactory.Store(code, { cwd: this.cwd, ...(options as any) })\n\t}\n\n\tprotected Writer<C extends WriterCode>(\n\t\tcode: C,\n\t\toptions?: Partial<WriterOptions>\n\t): WriterMap[C] {\n\t\treturn this.writerFactory.Writer(code, {\n\t\t\tfileDescriptions: this.parent.fileDescriptions,\n\t\t\tlinter: this.Service('lint'),\n\t\t\t...options,\n\t\t})\n\t}\n\n\tprotected getFeature<C extends FeatureCode>(code: C) {\n\t\treturn this.features.getFeature(code)\n\t}\n\n\tprotected getFeatureCodes(): FeatureCode[] {\n\t\treturn this.features.getAllCodes()\n\t}\n\n\tprotected validateAndNormalizeOptions(options: SchemaPartialValues<S>) {\n\t\tconst schema = this.optionsSchema\n\t\treturn validateAndNormalizer.validateAndNormalize(schema, options)\n\t}\n\n\tprotected async resolveVersion(\n\t\tuserSuppliedVersion: string | null | undefined,\n\t\tresolvedDestination: string\n\t) {\n\t\tlet resolvedVersion = versionUtil.generateVersion(\n\t\t\tuserSuppliedVersion ?? undefined\n\t\t).constValue\n\n\t\tif (!userSuppliedVersion) {\n\t\t\tresolvedVersion = await this.askForVersionIfTodaysVersionDoesNotExist(\n\t\t\t\tresolvedDestination,\n\t\t\t\tresolvedVersion\n\t\t\t)\n\t\t}\n\t\tversionUtil.assertValidVersion(resolvedVersion)\n\n\t\treturn versionUtil.generateVersion(resolvedVersion).dirValue\n\t}\n\n\tprivate async askForVersionIfTodaysVersionDoesNotExist(\n\t\tresolvedDestination: string,\n\t\tfallbackVersion: string\n\t) {\n\t\tconst versions = versionUtil.getAllVersions(resolvedDestination)\n\t\tconst todaysVersion = versionUtil.generateVersion()\n\n\t\tlet version = fallbackVersion\n\t\tconst alreadyHasToday = !!versions.find(\n\t\t\t(version) => version.dirValue === todaysVersion.dirValue\n\t\t)\n\t\tconst choices = []\n\n\t\tif (!alreadyHasToday) {\n\t\t\tchoices.push({\n\t\t\t\tlabel: 'New Version',\n\t\t\t\tvalue: todaysVersion.dirValue,\n\t\t\t})\n\t\t}\n\n\t\tchoices.push(\n\t\t\t...versions\n\t\t\t\t.sort((a, b) => {\n\t\t\t\t\treturn a.intValue > b.intValue ? -1 : 1\n\t\t\t\t})\n\t\t\t\t.map((version) => ({\n\t\t\t\t\tvalue: version.dirValue,\n\t\t\t\t\tlabel: version.dirValue,\n\t\t\t\t}))\n\t\t)\n\n\t\tif (versions.length > 0) {\n\t\t\tversion = await this.ui.prompt({\n\t\t\t\ttype: 'select',\n\t\t\t\tlabel: 'Version',\n\t\t\t\thint: 'Confirm which version you want to use?',\n\t\t\t\tisRequired: true,\n\t\t\t\toptions: {\n\t\t\t\t\tchoices,\n\t\t\t\t},\n\t\t\t})\n\t\t}\n\t\treturn version\n\t}\n\n\tprotected async connectToApi(\n\t\toptions?: ApiClientFactoryOptions\n\t): Promise<ApiClient> {\n\t\treturn this.apiClientFactory(options)\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"AbstractAction.js","names":["_spruceSkillUtils","require","_validateAndNormalize","_interopRequireDefault","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","AbstractAction","exports","options","_classCallCheck2","cwd","templates","parent","storeFactory","serviceFactory","features","featureInstaller","ui","writerFactory","apiClientFactory","emitter","actionExecuter","_createClass2","key","value","Action","featureCode","actionCode","_Service","Service","_x","_x2","toString","type","Store","code","Writer","fileDescriptions","linter","getFeature","getFeatureCodes","getAllCodes","validateAndNormalizeOptions","schema","optionsSchema","validateAndNormalizer","validateAndNormalize","_resolveVersion","_asyncToGenerator2","_regenerator","mark","_callee","userSuppliedVersion","resolvedDestination","resolvedVersion","wrap","_callee$","_context","prev","next","versionUtil","generateVersion","undefined","constValue","askForVersionIfTodaysVersionDoesNotExist","sent","assertValidVersion","abrupt","dirValue","stop","resolveVersion","_x3","_x4","_askForVersionIfTodaysVersionDoesNotExist","_callee2","fallbackVersion","versions","todaysVersion","version","alreadyHasToday","choices","_callee2$","_context2","getAllVersions","find","label","_toConsumableArray2","sort","a","b","intValue","map","prompt","hint","isRequired","_x5","_x6","_connectToApi","_callee3","_callee3$","_context3","connectToApi","_x7"],"sources":["../../src/features/AbstractAction.ts"],"sourcesContent":["import { Schema, SchemaValues, SchemaPartialValues } from '@sprucelabs/schema'\nimport { versionUtil } from '@sprucelabs/spruce-skill-utils'\nimport { Templates } from '@sprucelabs/spruce-templates'\nimport { GlobalEmitter } from '../GlobalEmitter'\nimport ServiceFactory, {\n\tServiceProvider,\n\tService,\n\tServiceMap,\n} from '../services/ServiceFactory'\nimport StoreFactory, {\n\tStoreCode,\n\tCreateStoreOptions,\n\tStoreMap,\n} from '../stores/StoreFactory'\nimport {\n\tApiClient,\n\tApiClientFactory,\n\tApiClientFactoryOptions,\n} from '../types/apiClient.types'\nimport { GraphicsInterface } from '../types/cli.types'\nimport { WriterOptions } from '../writers/AbstractWriter'\nimport WriterFactory, { WriterCode, WriterMap } from '../writers/WriterFactory'\nimport AbstractFeature from './AbstractFeature'\nimport ActionExecuter from './ActionExecuter'\nimport FeatureInstaller from './FeatureInstaller'\nimport {\n\tFeatureAction,\n\tFeatureActionResponse,\n\tActionOptions,\n\tFeatureCode,\n} from './features.types'\nimport validateAndNormalizer from './validateAndNormalize.utility'\n\nexport default abstract class AbstractAction<S extends Schema = Schema>\n\timplements FeatureAction<S>, ServiceProvider\n{\n\tpublic abstract optionsSchema: S\n\tpublic readonly commandAliases: string[] = []\n\tpublic abstract invocationMessage: string\n\n\tprotected parent: AbstractFeature\n\tprotected features: FeatureInstaller\n\tprotected cwd: string\n\tprotected templates: Templates\n\tprotected ui: GraphicsInterface\n\tprotected emitter: GlobalEmitter\n\n\tprivate serviceFactory: ServiceFactory\n\tprivate storeFactory: StoreFactory\n\tprivate writerFactory: WriterFactory\n\tprivate apiClientFactory: ApiClientFactory\n\tprivate actionExecuter: ActionExecuter\n\n\tpublic constructor(options: ActionOptions) {\n\t\tthis.cwd = options.cwd\n\t\tthis.templates = options.templates\n\t\tthis.parent = options.parent\n\t\tthis.storeFactory = options.storeFactory\n\t\tthis.serviceFactory = options.serviceFactory\n\t\tthis.features = options.featureInstaller\n\t\tthis.ui = options.ui\n\t\tthis.writerFactory = options.writerFactory\n\t\tthis.apiClientFactory = options.apiClientFactory\n\t\tthis.emitter = options.emitter\n\t\tthis.actionExecuter = options.actionExecuter\n\t}\n\n\tpublic abstract execute(\n\t\toptions: SchemaValues<S>\n\t): Promise<FeatureActionResponse>\n\n\tprotected Action(featureCode: FeatureCode, actionCode: string) {\n\t\treturn this.actionExecuter.Action(featureCode, actionCode)\n\t}\n\n\tpublic Service<S extends Service>(type: S, cwd?: string): ServiceMap[S] {\n\t\treturn this.serviceFactory.Service(cwd ?? this.cwd, type)\n\t}\n\n\tprotected Store<C extends StoreCode>(\n\t\tcode: C,\n\t\toptions?: CreateStoreOptions<C>\n\t): StoreMap[C] {\n\t\treturn this.storeFactory.Store(code, { cwd: this.cwd, ...(options as any) })\n\t}\n\n\tprotected Writer<C extends WriterCode>(\n\t\tcode: C,\n\t\toptions?: Partial<WriterOptions>\n\t): WriterMap[C] {\n\t\treturn this.writerFactory.Writer(code, {\n\t\t\tfileDescriptions: this.parent.fileDescriptions,\n\t\t\tlinter: this.Service('lint'),\n\t\t\t...options,\n\t\t})\n\t}\n\n\tprotected getFeature<C extends FeatureCode>(code: C) {\n\t\treturn this.features.getFeature(code)\n\t}\n\n\tprotected getFeatureCodes(): FeatureCode[] {\n\t\treturn this.features.getAllCodes()\n\t}\n\n\tprotected validateAndNormalizeOptions(options: SchemaPartialValues<S>) {\n\t\tconst schema = this.optionsSchema\n\t\treturn validateAndNormalizer.validateAndNormalize(schema, options)\n\t}\n\n\tprotected async resolveVersion(\n\t\tuserSuppliedVersion: string | null | undefined,\n\t\tresolvedDestination: string\n\t) {\n\t\tlet resolvedVersion = versionUtil.generateVersion(\n\t\t\tuserSuppliedVersion ?? undefined\n\t\t).constValue\n\n\t\tif (!userSuppliedVersion) {\n\t\t\tresolvedVersion = await this.askForVersionIfTodaysVersionDoesNotExist(\n\t\t\t\tresolvedDestination,\n\t\t\t\tresolvedVersion\n\t\t\t)\n\t\t}\n\t\tversionUtil.assertValidVersion(resolvedVersion)\n\n\t\treturn versionUtil.generateVersion(resolvedVersion).dirValue\n\t}\n\n\tprivate async askForVersionIfTodaysVersionDoesNotExist(\n\t\tresolvedDestination: string,\n\t\tfallbackVersion: string\n\t) {\n\t\tconst versions = versionUtil.getAllVersions(resolvedDestination)\n\t\tconst todaysVersion = versionUtil.generateVersion()\n\n\t\tlet version = fallbackVersion\n\t\tconst alreadyHasToday = !!versions.find(\n\t\t\t(version) => version.dirValue === todaysVersion.dirValue\n\t\t)\n\t\tconst choices = []\n\n\t\tif (!alreadyHasToday) {\n\t\t\tchoices.push({\n\t\t\t\tlabel: 'New Version',\n\t\t\t\tvalue: todaysVersion.dirValue,\n\t\t\t})\n\t\t}\n\n\t\tchoices.push(\n\t\t\t...versions\n\t\t\t\t.sort((a, b) => {\n\t\t\t\t\treturn a.intValue > b.intValue ? -1 : 1\n\t\t\t\t})\n\t\t\t\t.map((version) => ({\n\t\t\t\t\tvalue: version.dirValue,\n\t\t\t\t\tlabel: version.dirValue,\n\t\t\t\t}))\n\t\t)\n\n\t\tif (versions.length > 0) {\n\t\t\tversion = await this.ui.prompt({\n\t\t\t\ttype: 'select',\n\t\t\t\tlabel: 'Version',\n\t\t\t\thint: 'Confirm which version you want to use?',\n\t\t\t\tisRequired: true,\n\t\t\t\toptions: {\n\t\t\t\t\tchoices,\n\t\t\t\t},\n\t\t\t})\n\t\t}\n\t\treturn version\n\t}\n\n\tprotected async connectToApi(\n\t\toptions?: ApiClientFactoryOptions\n\t): Promise<ApiClient> {\n\t\treturn this.apiClientFactory(options)\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -61,7 +61,7 @@ var AbstractFeature = exports["default"] = /*#__PURE__*/function () {
|
|
|
61
61
|
this.apiClientFactory = options.apiClientFactory;
|
|
62
62
|
this.actionExecuter = options.actionExecuter;
|
|
63
63
|
}
|
|
64
|
-
(0, _createClass2["default"])(AbstractFeature, [{
|
|
64
|
+
return (0, _createClass2["default"])(AbstractFeature, [{
|
|
65
65
|
key: "Action",
|
|
66
66
|
value: function Action(featureCode, actionCode) {
|
|
67
67
|
return this.actionExecuter.Action(featureCode, actionCode);
|
|
@@ -206,6 +206,5 @@ var AbstractFeature = exports["default"] = /*#__PURE__*/function () {
|
|
|
206
206
|
return connectToApi;
|
|
207
207
|
}()
|
|
208
208
|
}]);
|
|
209
|
-
return AbstractFeature;
|
|
210
209
|
}();
|
|
211
210
|
//# sourceMappingURL=AbstractFeature.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractFeature.js","names":["_path","_interopRequireDefault","require","_globby","_WriterFactory","_feature","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","minLen","_arrayLikeToArray","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","ownKeys","r","t","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","AbstractFeature","exports","options","_classCallCheck2","cwd","serviceFactory","templates","actions","actionFactory","storeFactory","writers","WriterFactory","ui","settings","Service","linter","emitter","features","featureInstaller","apiClientFactory","actionExecuter","_createClass2","key","Action","featureCode","actionCode","_beforePackageInstall","_asyncToGenerator2","_regenerator","mark","_callee","_options","wrap","_callee$","_context","prev","abrupt","stop","beforePackageInstall","_x3","_afterPackageInstall","_callee2","_callee2$","_context2","afterPackageInstall","_x4","_Service","_x","_x2","type","Writer","code","fileDescriptions","getFeature","_getAvailableActionCodes","_callee3","matches","codes","_iterator","_step","match","generatedCode","_callee3$","_context3","actionsDir","actionCodes","globby","pathUtil","join","sent","featuresUtil","filePathToActionCode","getAvailableActionCodes","Store","_connectToApi","_callee4","_callee4$","_context4","connectToApi","_x5"],"sources":["../../src/features/AbstractFeature.ts"],"sourcesContent":["import pathUtil from 'path'\nimport globby from '@sprucelabs/globby'\nimport { Schema, SchemaValues } from '@sprucelabs/schema'\nimport { Templates } from '@sprucelabs/spruce-templates'\nimport { GlobalEmitter } from '../GlobalEmitter'\nimport ServiceFactory, {\n\tService,\n\tServiceProvider,\n\tServiceMap,\n} from '../services/ServiceFactory'\nimport StoreFactory, {\n\tStoreCode,\n\tCreateStoreOptions,\n\tStoreMap,\n} from '../stores/StoreFactory'\nimport {\n\tApiClient,\n\tApiClientFactory,\n\tApiClientFactoryOptions,\n} from '../types/apiClient.types'\nimport { NpmPackage, GeneratedFile, FileDescription } from '../types/cli.types'\nimport { GraphicsInterface } from '../types/cli.types'\nimport { WriterOptions } from '../writers/AbstractWriter'\nimport WriterFactory, { WriterCode, WriterMap } from '../writers/WriterFactory'\nimport ActionExecuter from './ActionExecuter'\nimport ActionFactory from './ActionFactory'\nimport featuresUtil from './feature.utilities'\nimport FeatureInstaller from './FeatureInstaller'\nimport { FeatureCode } from './features.types'\n\nexport default abstract class AbstractFeature<\n\tS extends Schema | undefined = Schema | undefined,\n> implements ServiceProvider\n{\n\tpublic abstract description: string\n\tpublic readonly dependencies: FeatureDependency[] = []\n\tpublic readonly packageDependencies: NpmPackage[] = []\n\tpublic readonly optionsSchema?: S\n\tpublic readonly fileDescriptions: FileDescription[] = []\n\n\tpublic isInstalled?(): Promise<boolean>\n\n\tpublic abstract readonly code: FeatureCode\n\tpublic abstract readonly nameReadable: string\n\tpublic readonly installOrderWeight: number = 0\n\n\tpublic cwd: string\n\tpublic scripts: Record<string, any> = {}\n\tpublic actionsDir: string | undefined\n\tprotected actions?: ActionFactory\n\tprotected templates: Templates\n\tprotected emitter: GlobalEmitter\n\tprotected features: FeatureInstaller\n\tprotected ui: GraphicsInterface\n\n\tprivate serviceFactory: ServiceFactory\n\tprivate storeFactory: StoreFactory\n\tprivate writers: WriterFactory\n\tprivate apiClientFactory: ApiClientFactory\n\tprivate actionExecuter: ActionExecuter\n\tprivate actionCodes?: string[]\n\n\tpublic constructor(options: FeatureOptions) {\n\t\tthis.cwd = options.cwd\n\t\tthis.serviceFactory = options.serviceFactory\n\t\tthis.templates = options.templates\n\t\tthis.actions = options.actionFactory\n\t\tthis.storeFactory = options.storeFactory\n\t\tthis.writers = new WriterFactory({\n\t\t\ttemplates: this.templates,\n\t\t\tui: options.ui,\n\t\t\tsettings: this.Service('settings'),\n\t\t\tlinter: this.Service('lint'),\n\t\t})\n\t\tthis.emitter = options.emitter\n\t\tthis.features = options.featureInstaller\n\t\tthis.ui = options.ui\n\t\tthis.apiClientFactory = options.apiClientFactory\n\t\tthis.actionExecuter = options.actionExecuter\n\t}\n\n\tprotected Action(featureCode: string, actionCode: string) {\n\t\treturn this.actionExecuter.Action(featureCode as any, actionCode)\n\t}\n\n\tpublic async beforePackageInstall(\n\t\t_options: S extends Schema ? SchemaValues<S> : undefined\n\t): Promise<InstallResults> {\n\t\treturn {}\n\t}\n\n\tpublic async afterPackageInstall(\n\t\t_options: S extends Schema ? SchemaValues<S> : undefined\n\t): Promise<InstallResults> {\n\t\treturn {}\n\t}\n\n\tpublic Service<S extends Service>(type: S, cwd?: string): ServiceMap[S] {\n\t\treturn this.serviceFactory.Service(cwd ?? this.cwd, type)\n\t}\n\n\tpublic Writer<C extends WriterCode>(\n\t\tcode: C,\n\t\toptions?: Partial<WriterOptions>\n\t): WriterMap[C] {\n\t\treturn this.writers.Writer(code, {\n\t\t\tfileDescriptions: this.fileDescriptions,\n\t\t\tlinter: this.Service('lint'),\n\t\t\t...options,\n\t\t})\n\t}\n\n\tpublic getFeature<Code extends FeatureCode>(code: Code) {\n\t\treturn this.features.getFeature(code)\n\t}\n\n\tpublic async getAvailableActionCodes(): Promise<string[]> {\n\t\tif (!this.actionsDir) {\n\t\t\treturn []\n\t\t}\n\n\t\tif (!this.actionCodes) {\n\t\t\tconst matches: string[] = await globby(\n\t\t\t\tpathUtil.join(this.actionsDir, '**/*Action.js')\n\t\t\t)\n\n\t\t\tconst codes: string[] = []\n\n\t\t\tfor (const match of matches) {\n\t\t\t\tconst generatedCode = featuresUtil.filePathToActionCode(match)\n\t\t\t\tcodes.push(generatedCode)\n\t\t\t}\n\n\t\t\tthis.actionCodes = codes\n\t\t}\n\n\t\treturn this.actionCodes\n\t}\n\n\tpublic Store<C extends StoreCode>(\n\t\tcode: C,\n\t\toptions?: CreateStoreOptions<C>\n\t): StoreMap[C] {\n\t\treturn this.storeFactory.Store(code, { cwd: this.cwd, ...(options as any) })\n\t}\n\n\tprotected async connectToApi(\n\t\toptions?: ApiClientFactoryOptions\n\t): Promise<ApiClient> {\n\t\treturn this.apiClientFactory(options)\n\t}\n}\n\nexport interface InstallResults {\n\tfiles?: GeneratedFile[]\n\tcwd?: string\n}\n\nexport interface FeatureDependency {\n\tisRequired: boolean\n\tcode: FeatureCode\n}\n\nexport interface FeatureOptions {\n\tcwd: string\n\tserviceFactory: ServiceFactory\n\ttemplates: Templates\n\tstoreFactory: StoreFactory\n\tactionFactory?: ActionFactory\n\tfeatureInstaller: FeatureInstaller\n\tui: GraphicsInterface\n\temitter: GlobalEmitter\n\tapiClientFactory: ApiClientFactory\n\tactionExecuter: ActionExecuter\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"AbstractFeature.js","names":["_path","_interopRequireDefault","require","_globby","_WriterFactory","_feature","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","minLen","_arrayLikeToArray","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","ownKeys","r","t","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","AbstractFeature","exports","options","_classCallCheck2","cwd","serviceFactory","templates","actions","actionFactory","storeFactory","writers","WriterFactory","ui","settings","Service","linter","emitter","features","featureInstaller","apiClientFactory","actionExecuter","_createClass2","key","Action","featureCode","actionCode","_beforePackageInstall","_asyncToGenerator2","_regenerator","mark","_callee","_options","wrap","_callee$","_context","prev","abrupt","stop","beforePackageInstall","_x3","_afterPackageInstall","_callee2","_callee2$","_context2","afterPackageInstall","_x4","_Service","_x","_x2","type","Writer","code","fileDescriptions","getFeature","_getAvailableActionCodes","_callee3","matches","codes","_iterator","_step","match","generatedCode","_callee3$","_context3","actionsDir","actionCodes","globby","pathUtil","join","sent","featuresUtil","filePathToActionCode","getAvailableActionCodes","Store","_connectToApi","_callee4","_callee4$","_context4","connectToApi","_x5"],"sources":["../../src/features/AbstractFeature.ts"],"sourcesContent":["import pathUtil from 'path'\nimport globby from '@sprucelabs/globby'\nimport { Schema, SchemaValues } from '@sprucelabs/schema'\nimport { Templates } from '@sprucelabs/spruce-templates'\nimport { GlobalEmitter } from '../GlobalEmitter'\nimport ServiceFactory, {\n\tService,\n\tServiceProvider,\n\tServiceMap,\n} from '../services/ServiceFactory'\nimport StoreFactory, {\n\tStoreCode,\n\tCreateStoreOptions,\n\tStoreMap,\n} from '../stores/StoreFactory'\nimport {\n\tApiClient,\n\tApiClientFactory,\n\tApiClientFactoryOptions,\n} from '../types/apiClient.types'\nimport { NpmPackage, GeneratedFile, FileDescription } from '../types/cli.types'\nimport { GraphicsInterface } from '../types/cli.types'\nimport { WriterOptions } from '../writers/AbstractWriter'\nimport WriterFactory, { WriterCode, WriterMap } from '../writers/WriterFactory'\nimport ActionExecuter from './ActionExecuter'\nimport ActionFactory from './ActionFactory'\nimport featuresUtil from './feature.utilities'\nimport FeatureInstaller from './FeatureInstaller'\nimport { FeatureCode } from './features.types'\n\nexport default abstract class AbstractFeature<\n\tS extends Schema | undefined = Schema | undefined,\n> implements ServiceProvider\n{\n\tpublic abstract description: string\n\tpublic readonly dependencies: FeatureDependency[] = []\n\tpublic readonly packageDependencies: NpmPackage[] = []\n\tpublic readonly optionsSchema?: S\n\tpublic readonly fileDescriptions: FileDescription[] = []\n\n\tpublic isInstalled?(): Promise<boolean>\n\n\tpublic abstract readonly code: FeatureCode\n\tpublic abstract readonly nameReadable: string\n\tpublic readonly installOrderWeight: number = 0\n\n\tpublic cwd: string\n\tpublic scripts: Record<string, any> = {}\n\tpublic actionsDir: string | undefined\n\tprotected actions?: ActionFactory\n\tprotected templates: Templates\n\tprotected emitter: GlobalEmitter\n\tprotected features: FeatureInstaller\n\tprotected ui: GraphicsInterface\n\n\tprivate serviceFactory: ServiceFactory\n\tprivate storeFactory: StoreFactory\n\tprivate writers: WriterFactory\n\tprivate apiClientFactory: ApiClientFactory\n\tprivate actionExecuter: ActionExecuter\n\tprivate actionCodes?: string[]\n\n\tpublic constructor(options: FeatureOptions) {\n\t\tthis.cwd = options.cwd\n\t\tthis.serviceFactory = options.serviceFactory\n\t\tthis.templates = options.templates\n\t\tthis.actions = options.actionFactory\n\t\tthis.storeFactory = options.storeFactory\n\t\tthis.writers = new WriterFactory({\n\t\t\ttemplates: this.templates,\n\t\t\tui: options.ui,\n\t\t\tsettings: this.Service('settings'),\n\t\t\tlinter: this.Service('lint'),\n\t\t})\n\t\tthis.emitter = options.emitter\n\t\tthis.features = options.featureInstaller\n\t\tthis.ui = options.ui\n\t\tthis.apiClientFactory = options.apiClientFactory\n\t\tthis.actionExecuter = options.actionExecuter\n\t}\n\n\tprotected Action(featureCode: string, actionCode: string) {\n\t\treturn this.actionExecuter.Action(featureCode as any, actionCode)\n\t}\n\n\tpublic async beforePackageInstall(\n\t\t_options: S extends Schema ? SchemaValues<S> : undefined\n\t): Promise<InstallResults> {\n\t\treturn {}\n\t}\n\n\tpublic async afterPackageInstall(\n\t\t_options: S extends Schema ? SchemaValues<S> : undefined\n\t): Promise<InstallResults> {\n\t\treturn {}\n\t}\n\n\tpublic Service<S extends Service>(type: S, cwd?: string): ServiceMap[S] {\n\t\treturn this.serviceFactory.Service(cwd ?? this.cwd, type)\n\t}\n\n\tpublic Writer<C extends WriterCode>(\n\t\tcode: C,\n\t\toptions?: Partial<WriterOptions>\n\t): WriterMap[C] {\n\t\treturn this.writers.Writer(code, {\n\t\t\tfileDescriptions: this.fileDescriptions,\n\t\t\tlinter: this.Service('lint'),\n\t\t\t...options,\n\t\t})\n\t}\n\n\tpublic getFeature<Code extends FeatureCode>(code: Code) {\n\t\treturn this.features.getFeature(code)\n\t}\n\n\tpublic async getAvailableActionCodes(): Promise<string[]> {\n\t\tif (!this.actionsDir) {\n\t\t\treturn []\n\t\t}\n\n\t\tif (!this.actionCodes) {\n\t\t\tconst matches: string[] = await globby(\n\t\t\t\tpathUtil.join(this.actionsDir, '**/*Action.js')\n\t\t\t)\n\n\t\t\tconst codes: string[] = []\n\n\t\t\tfor (const match of matches) {\n\t\t\t\tconst generatedCode = featuresUtil.filePathToActionCode(match)\n\t\t\t\tcodes.push(generatedCode)\n\t\t\t}\n\n\t\t\tthis.actionCodes = codes\n\t\t}\n\n\t\treturn this.actionCodes\n\t}\n\n\tpublic Store<C extends StoreCode>(\n\t\tcode: C,\n\t\toptions?: CreateStoreOptions<C>\n\t): StoreMap[C] {\n\t\treturn this.storeFactory.Store(code, { cwd: this.cwd, ...(options as any) })\n\t}\n\n\tprotected async connectToApi(\n\t\toptions?: ApiClientFactoryOptions\n\t): Promise<ApiClient> {\n\t\treturn this.apiClientFactory(options)\n\t}\n}\n\nexport interface InstallResults {\n\tfiles?: GeneratedFile[]\n\tcwd?: string\n}\n\nexport interface FeatureDependency {\n\tisRequired: boolean\n\tcode: FeatureCode\n}\n\nexport interface FeatureOptions {\n\tcwd: string\n\tserviceFactory: ServiceFactory\n\ttemplates: Templates\n\tstoreFactory: StoreFactory\n\tactionFactory?: ActionFactory\n\tfeatureInstaller: FeatureInstaller\n\tui: GraphicsInterface\n\temitter: GlobalEmitter\n\tapiClientFactory: ApiClientFactory\n\tactionExecuter: ActionExecuter\n}\n"],"mappings":";;;;;;;;;;;;AAAA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAF,sBAAA,CAAAC,OAAA;AAsBA,IAAAE,cAAA,GAAAH,sBAAA,CAAAC,OAAA;AAGA,IAAAG,QAAA,GAAAJ,sBAAA,CAAAC,OAAA;AAA8C,SAAAI,2BAAAC,CAAA,EAAAC,cAAA,QAAAC,EAAA,UAAAC,MAAA,oBAAAH,CAAA,CAAAG,MAAA,CAAAC,QAAA,KAAAJ,CAAA,qBAAAE,EAAA,QAAAG,KAAA,CAAAC,OAAA,CAAAN,CAAA,MAAAE,EAAA,GAAAK,2BAAA,CAAAP,CAAA,MAAAC,cAAA,IAAAD,CAAA,WAAAA,CAAA,CAAAQ,MAAA,qBAAAN,EAAA,EAAAF,CAAA,GAAAE,EAAA,MAAAO,CAAA,UAAAC,CAAA,YAAAA,EAAA,eAAAC,CAAA,EAAAD,CAAA,EAAAE,CAAA,WAAAA,EAAA,QAAAH,CAAA,IAAAT,CAAA,CAAAQ,MAAA,WAAAK,IAAA,mBAAAA,IAAA,SAAAC,KAAA,EAAAd,CAAA,CAAAS,CAAA,UAAAM,CAAA,WAAAA,EAAAC,EAAA,UAAAA,EAAA,KAAAC,CAAA,EAAAP,CAAA,gBAAAQ,SAAA,iJAAAC,gBAAA,SAAAC,MAAA,UAAAC,GAAA,WAAAV,CAAA,WAAAA,EAAA,IAAAT,EAAA,GAAAA,EAAA,CAAAoB,IAAA,CAAAtB,CAAA,MAAAY,CAAA,WAAAA,EAAA,QAAAW,IAAA,GAAArB,EAAA,CAAAsB,IAAA,IAAAL,gBAAA,GAAAI,IAAA,CAAAV,IAAA,SAAAU,IAAA,KAAAR,CAAA,WAAAA,EAAAU,GAAA,IAAAL,MAAA,SAAAC,GAAA,GAAAI,GAAA,KAAAR,CAAA,WAAAA,EAAA,eAAAE,gBAAA,IAAAjB,EAAA,oBAAAA,EAAA,8BAAAkB,MAAA,QAAAC,GAAA;AAAA,SAAAd,4BAAAP,CAAA,EAAA0B,MAAA,SAAA1B,CAAA,qBAAAA,CAAA,sBAAA2B,iBAAA,CAAA3B,CAAA,EAAA0B,MAAA,OAAAd,CAAA,GAAAgB,MAAA,CAAAC,SAAA,CAAAC,QAAA,CAAAR,IAAA,CAAAtB,CAAA,EAAA+B,KAAA,aAAAnB,CAAA,iBAAAZ,CAAA,CAAAgC,WAAA,EAAApB,CAAA,GAAAZ,CAAA,CAAAgC,WAAA,CAAAC,IAAA,MAAArB,CAAA,cAAAA,CAAA,mBAAAP,KAAA,CAAA6B,IAAA,CAAAlC,CAAA,OAAAY,CAAA,+DAAAuB,IAAA,CAAAvB,CAAA,UAAAe,iBAAA,CAAA3B,CAAA,EAAA0B,MAAA;AAAA,SAAAC,kBAAAS,GAAA,EAAAC,GAAA,QAAAA,GAAA,YAAAA,GAAA,GAAAD,GAAA,CAAA5B,MAAA,EAAA6B,GAAA,GAAAD,GAAA,CAAA5B,MAAA,WAAAC,CAAA,MAAA6B,IAAA,OAAAjC,KAAA,CAAAgC,GAAA,GAAA5B,CAAA,GAAA4B,GAAA,EAAA5B,CAAA,IAAA6B,IAAA,CAAA7B,CAAA,IAAA2B,GAAA,CAAA3B,CAAA,UAAA6B,IAAA;AAAA,SAAAC,QAAAxB,CAAA,EAAAyB,CAAA,QAAAC,CAAA,GAAAb,MAAA,CAAAc,IAAA,CAAA3B,CAAA,OAAAa,MAAA,CAAAe,qBAAA,QAAA3C,CAAA,GAAA4B,MAAA,CAAAe,qBAAA,CAAA5B,CAAA,GAAAyB,CAAA,KAAAxC,CAAA,GAAAA,CAAA,CAAA4C,MAAA,WAAAJ,CAAA,WAAAZ,MAAA,CAAAiB,wBAAA,CAAA9B,CAAA,EAAAyB,CAAA,EAAAM,UAAA,OAAAL,CAAA,CAAAM,IAAA,CAAAC,KAAA,CAAAP,CAAA,EAAAzC,CAAA,YAAAyC,CAAA;AAAA,SAAAQ,cAAAlC,CAAA,aAAAyB,CAAA,MAAAA,CAAA,GAAAU,SAAA,CAAA1C,MAAA,EAAAgC,CAAA,UAAAC,CAAA,WAAAS,SAAA,CAAAV,CAAA,IAAAU,SAAA,CAAAV,CAAA,QAAAA,CAAA,OAAAD,OAAA,CAAAX,MAAA,CAAAa,CAAA,OAAAU,OAAA,WAAAX,CAAA,QAAAY,gBAAA,aAAArC,CAAA,EAAAyB,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAZ,MAAA,CAAAyB,yBAAA,GAAAzB,MAAA,CAAA0B,gBAAA,CAAAvC,CAAA,EAAAa,MAAA,CAAAyB,yBAAA,CAAAZ,CAAA,KAAAF,OAAA,CAAAX,MAAA,CAAAa,CAAA,GAAAU,OAAA,WAAAX,CAAA,IAAAZ,MAAA,CAAA2B,cAAA,CAAAxC,CAAA,EAAAyB,CAAA,EAAAZ,MAAA,CAAAiB,wBAAA,CAAAJ,CAAA,EAAAD,CAAA,iBAAAzB,CAAA;AAAA,IAIhByC,eAAe,GAAAC,OAAA;EAgC5C,SAAAD,gBAAmBE,OAAuB,EAAE;IAAA,IAAAC,gBAAA,mBAAAH,eAAA;IAAA,IAAAJ,gBAAA;IAAA,IAAAA,gBAAA,mCA3BQ,EAAE;IAAA,IAAAA,gBAAA,0CACF,EAAE;IAAA,IAAAA,gBAAA;IAAA,IAAAA,gBAAA,uCAEA,EAAE;IAAA,IAAAA,gBAAA;IAAA,IAAAA,gBAAA;IAAA,IAAAA,gBAAA,yCAMX,CAAC;IAAA,IAAAA,gBAAA;IAAA,IAAAA,gBAAA,8BAGR,CAAC,CAAC;IAAA,IAAAA,gBAAA;IAAA,IAAAA,gBAAA;IAAA,IAAAA,gBAAA;IAAA,IAAAA,gBAAA;IAAA,IAAAA,gBAAA;IAAA,IAAAA,gBAAA;IAAA,IAAAA,gBAAA;IAAA,IAAAA,gBAAA;IAAA,IAAAA,gBAAA;IAAA,IAAAA,gBAAA;IAAA,IAAAA,gBAAA;IAAA,IAAAA,gBAAA;IAgBvC,IAAI,CAACQ,GAAG,GAAGF,OAAO,CAACE,GAAG;IACtB,IAAI,CAACC,cAAc,GAAGH,OAAO,CAACG,cAAc;IAC5C,IAAI,CAACC,SAAS,GAAGJ,OAAO,CAACI,SAAS;IAClC,IAAI,CAACC,OAAO,GAAGL,OAAO,CAACM,aAAa;IACpC,IAAI,CAACC,YAAY,GAAGP,OAAO,CAACO,YAAY;IACxC,IAAI,CAACC,OAAO,GAAG,IAAIC,yBAAa,CAAC;MAChCL,SAAS,EAAE,IAAI,CAACA,SAAS;MACzBM,EAAE,EAAEV,OAAO,CAACU,EAAE;MACdC,QAAQ,EAAE,IAAI,CAACC,OAAO,CAAC,UAAU,CAAC;MAClCC,MAAM,EAAE,IAAI,CAACD,OAAO,CAAC,MAAM;IAC5B,CAAC,CAAC;IACF,IAAI,CAACE,OAAO,GAAGd,OAAO,CAACc,OAAO;IAC9B,IAAI,CAACC,QAAQ,GAAGf,OAAO,CAACgB,gBAAgB;IACxC,IAAI,CAACN,EAAE,GAAGV,OAAO,CAACU,EAAE;IACpB,IAAI,CAACO,gBAAgB,GAAGjB,OAAO,CAACiB,gBAAgB;IAChD,IAAI,CAACC,cAAc,GAAGlB,OAAO,CAACkB,cAAc;EAC7C;EAAC,WAAAC,aAAA,aAAArB,eAAA;IAAAsB,GAAA;IAAAhE,KAAA,EAED,SAAAiE,OAAiBC,WAAmB,EAAEC,UAAkB,EAAE;MACzD,OAAO,IAAI,CAACL,cAAc,CAACG,MAAM,CAACC,WAAW,EAASC,UAAU,CAAC;IAClE;EAAC;IAAAH,GAAA;IAAAhE,KAAA;MAAA,IAAAoE,qBAAA,OAAAC,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAED,SAAAC,QACCC,QAAwD;QAAA,OAAAH,YAAA,YAAAI,IAAA,UAAAC,SAAAC,QAAA;UAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAlE,IAAA;YAAA;cAAA,OAAAkE,QAAA,CAAAE,MAAA,WAEjD,CAAC,CAAC;YAAA;YAAA;cAAA,OAAAF,QAAA,CAAAG,IAAA;UAAA;QAAA,GAAAP,OAAA;MAAA,CACT;MAAA,SAAAQ,qBAAAC,GAAA;QAAA,OAAAb,qBAAA,CAAAlC,KAAA,OAAAE,SAAA;MAAA;MAAA,OAAA4C,oBAAA;IAAA;EAAA;IAAAhB,GAAA;IAAAhE,KAAA;MAAA,IAAAkF,oBAAA,OAAAb,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAED,SAAAY,SACCV,QAAwD;QAAA,OAAAH,YAAA,YAAAI,IAAA,UAAAU,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAAR,IAAA,GAAAQ,SAAA,CAAA3E,IAAA;YAAA;cAAA,OAAA2E,SAAA,CAAAP,MAAA,WAEjD,CAAC,CAAC;YAAA;YAAA;cAAA,OAAAO,SAAA,CAAAN,IAAA;UAAA;QAAA,GAAAI,QAAA;MAAA,CACT;MAAA,SAAAG,oBAAAC,GAAA;QAAA,OAAAL,oBAAA,CAAAhD,KAAA,OAAAE,SAAA;MAAA;MAAA,OAAAkD,mBAAA;IAAA;EAAA;IAAAtB,GAAA;IAAAhE,KAAA,YAAAwF,QAAA;MAAA,SAAAhC,QAAAiC,EAAA,EAAAC,GAAA;QAAA,OAAAF,QAAA,CAAAtD,KAAA,OAAAE,SAAA;MAAA;MAAAoB,OAAA,CAAAxC,QAAA;QAAA,OAAAwE,QAAA,CAAAxE,QAAA;MAAA;MAAA,OAAAwC,OAAA;IAAA,EAED,UAAkCmC,IAAO,EAAE7C,GAAY,EAAiB;MACvE,OAAO,IAAI,CAACC,cAAc,CAACS,OAAO,CAACV,GAAG,aAAHA,GAAG,cAAHA,GAAG,GAAI,IAAI,CAACA,GAAG,EAAE6C,IAAI,CAAC;IAC1D,CAAC;EAAA;IAAA3B,GAAA;IAAAhE,KAAA,EAED,SAAA4F,OACCC,IAAO,EACPjD,OAAgC,EACjB;MACf,OAAO,IAAI,CAACQ,OAAO,CAACwC,MAAM,CAACC,IAAI,EAAA1D,aAAA;QAC9B2D,gBAAgB,EAAE,IAAI,CAACA,gBAAgB;QACvCrC,MAAM,EAAE,IAAI,CAACD,OAAO,CAAC,MAAM;MAAC,GACzBZ,OAAO,CACV,CAAC;IACH;EAAC;IAAAoB,GAAA;IAAAhE,KAAA,EAED,SAAA+F,WAA4CF,IAAU,EAAE;MACvD,OAAO,IAAI,CAAClC,QAAQ,CAACoC,UAAU,CAACF,IAAI,CAAC;IACtC;EAAC;IAAA7B,GAAA;IAAAhE,KAAA;MAAA,IAAAgG,wBAAA,OAAA3B,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAED,SAAA0B,SAAA;QAAA,IAAAC,OAAA,EAAAC,KAAA,EAAAC,SAAA,EAAAC,KAAA,EAAAC,KAAA,EAAAC,aAAA;QAAA,OAAAjC,YAAA,YAAAI,IAAA,UAAA8B,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAA5B,IAAA,GAAA4B,SAAA,CAAA/F,IAAA;YAAA;cAAA,IACM,IAAI,CAACgG,UAAU;gBAAAD,SAAA,CAAA/F,IAAA;gBAAA;cAAA;cAAA,OAAA+F,SAAA,CAAA3B,MAAA,WACZ,EAAE;YAAA;cAAA,IAGL,IAAI,CAAC6B,WAAW;gBAAAF,SAAA,CAAA/F,IAAA;gBAAA;cAAA;cAAA+F,SAAA,CAAA/F,IAAA;cAAA,OACY,IAAAkG,kBAAM,EACrCC,gBAAQ,CAACC,IAAI,CAAC,IAAI,CAACJ,UAAU,EAAE,eAAe,CAC/C,CAAC;YAAA;cAFKR,OAAiB,GAAAO,SAAA,CAAAM,IAAA;cAIjBZ,KAAe,GAAG,EAAE;cAAAC,SAAA,GAAAnH,0BAAA,CAENiH,OAAO;cAAA;gBAA3B,KAAAE,SAAA,CAAAvG,CAAA,MAAAwG,KAAA,GAAAD,SAAA,CAAAtG,CAAA,IAAAC,IAAA,GAA6B;kBAAlBuG,KAAK,GAAAD,KAAA,CAAArG,KAAA;kBACTuG,aAAa,GAAGS,mBAAY,CAACC,oBAAoB,CAACX,KAAK,CAAC;kBAC9DH,KAAK,CAAClE,IAAI,CAACsE,aAAa,CAAC;gBAC1B;cAAC,SAAAhG,GAAA;gBAAA6F,SAAA,CAAAnG,CAAA,CAAAM,GAAA;cAAA;gBAAA6F,SAAA,CAAAjG,CAAA;cAAA;cAED,IAAI,CAACwG,WAAW,GAAGR,KAAK;YAAA;cAAA,OAAAM,SAAA,CAAA3B,MAAA,WAGlB,IAAI,CAAC6B,WAAW;YAAA;YAAA;cAAA,OAAAF,SAAA,CAAA1B,IAAA;UAAA;QAAA,GAAAkB,QAAA;MAAA,CACvB;MAAA,SAAAiB,wBAAA;QAAA,OAAAlB,wBAAA,CAAA9D,KAAA,OAAAE,SAAA;MAAA;MAAA,OAAA8E,uBAAA;IAAA;EAAA;IAAAlD,GAAA;IAAAhE,KAAA,EAED,SAAAmH,MACCtB,IAAO,EACPjD,OAA+B,EACjB;MACd,OAAO,IAAI,CAACO,YAAY,CAACgE,KAAK,CAACtB,IAAI,EAAA1D,aAAA;QAAIW,GAAG,EAAE,IAAI,CAACA;MAAG,GAAMF,OAAO,CAAU,CAAC;IAC7E;EAAC;IAAAoB,GAAA;IAAAhE,KAAA;MAAA,IAAAoH,aAAA,OAAA/C,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAED,SAAA8C,SACCzE,OAAiC;QAAA,OAAA0B,YAAA,YAAAI,IAAA,UAAA4C,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAA1C,IAAA,GAAA0C,SAAA,CAAA7G,IAAA;YAAA;cAAA,OAAA6G,SAAA,CAAAzC,MAAA,WAE1B,IAAI,CAACjB,gBAAgB,CAACjB,OAAO,CAAC;YAAA;YAAA;cAAA,OAAA2E,SAAA,CAAAxC,IAAA;UAAA;QAAA,GAAAsC,QAAA;MAAA,CACrC;MAAA,SAAAG,aAAAC,GAAA;QAAA,OAAAL,aAAA,CAAAlF,KAAA,OAAAE,SAAA;MAAA;MAAA,OAAAoF,YAAA;IAAA;EAAA;AAAA","ignoreList":[]}
|
|
@@ -35,7 +35,7 @@ var ActionExecuter = exports["default"] = /*#__PURE__*/function () {
|
|
|
35
35
|
this.shouldAutoHandleDependencies = (_options$shouldAutoHa = options.shouldAutoHandleDependencies) !== null && _options$shouldAutoHa !== void 0 ? _options$shouldAutoHa : true;
|
|
36
36
|
this.shouldThrowOnListenerError = !!options.shouldThrowOnListenerError;
|
|
37
37
|
}
|
|
38
|
-
(0, _createClass2["default"])(ActionExecuter, [{
|
|
38
|
+
return (0, _createClass2["default"])(ActionExecuter, [{
|
|
39
39
|
key: "getFeatureInstaller",
|
|
40
40
|
value: function getFeatureInstaller() {
|
|
41
41
|
return this.featureInstallerFactory();
|
|
@@ -293,6 +293,5 @@ var ActionExecuter = exports["default"] = /*#__PURE__*/function () {
|
|
|
293
293
|
return action;
|
|
294
294
|
}
|
|
295
295
|
}]);
|
|
296
|
-
return ActionExecuter;
|
|
297
296
|
}();
|
|
298
297
|
//# sourceMappingURL=ActionExecuter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActionExecuter.js","names":["_spruceEventUtils","require","_merge","_interopRequireDefault","_SpruceError","_action","_ActionQuestionAsker","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","ActionExecuter","exports","options","_options$shouldAutoHa","_classCallCheck2","featureInstallerFactory","emitter","ui","actions","actionFactory","shouldAutoHandleDependencies","shouldThrowOnListenerError","_createClass2","key","value","getFeatureInstaller","_execute","_asyncToGenerator2","_regenerator","mark","_callee","_errors$length","_yield$asker$installO","_ref","_yield$asker$askAbout","_yield$asker$askAbout2","_ref2","featureCode","actionCode","action","originalExecute","actionOptions","installer","isInstalled","willExecuteResults","_eventResponseUtil$ge","willExecutePayloads","errors","feature","asker","response","installOptions","answers","_yield$asker$installO2","ourFeatureResults","executeResults","didExecuteResults","_eventResponseUtil$ge2","payloads","didExecuteErrors","wrap","_callee$","_context","prev","next","sent","SpruceError","code","friendlyMessage","concat","emit","eventResponseUtil","getAllResponsePayloadsAndErrors","abrupt","actionUtil","assertNoErrorsInResponse","getFeature","ActionOptionAsker","featureInstaller","installOrMarkAsSkippedMissingDependencies","t1","t0","t2","askAboutMissingFeatureOptionsIfFeatureIsNotInstalled","t5","t4","t6","t7","t3","t8","askAboutMissingActionOptions","t10","t9","t11","installOurFeature","t13","t12","t14","merge","t15","results","mergeActionResults","_toConsumableArray2","stop","execute","_x","Action","_this","actionExecuter","bind","_ref3","_callee2","_callee2$","_context2","_x2"],"sources":["../../src/features/ActionExecuter.ts"],"sourcesContent":["import { eventResponseUtil } from '@sprucelabs/spruce-event-utils'\nimport merge from 'lodash/merge'\nimport SpruceError from '../errors/SpruceError'\nimport { GlobalEmitter } from '../GlobalEmitter'\nimport { GraphicsInterface } from '../types/cli.types'\nimport actionUtil from '../utilities/action.utility'\nimport ActionFactory from './ActionFactory'\nimport ActionOptionAsker from './ActionQuestionAsker'\nimport FeatureInstaller from './FeatureInstaller'\nimport {\n\tFeatureCode,\n\tFeatureInstallResponse,\n\tFeatureAction,\n\tFeatureActionResponse,\n} from './features.types'\n\nexport default class ActionExecuter {\n\tprivate emitter: GlobalEmitter\n\tprivate ui: GraphicsInterface\n\tprivate actions: ActionFactory\n\tprivate featureInstallerFactory: () => FeatureInstaller\n\tprivate shouldAutoHandleDependencies: boolean\n\tprivate shouldThrowOnListenerError: boolean\n\n\tpublic constructor(options: ActionExecuterOptions) {\n\t\tthis.featureInstallerFactory = options.featureInstallerFactory\n\t\tthis.emitter = options.emitter\n\t\tthis.ui = options.ui\n\t\tthis.actions = options.actionFactory\n\t\tthis.shouldAutoHandleDependencies =\n\t\t\toptions.shouldAutoHandleDependencies ?? true\n\n\t\tthis.shouldThrowOnListenerError = !!options.shouldThrowOnListenerError\n\t}\n\n\tprivate getFeatureInstaller() {\n\t\treturn this.featureInstallerFactory()\n\t}\n\n\tprivate async execute(options: {\n\t\tfeatureCode: FeatureCode\n\t\tactionCode: string\n\t\taction: any\n\t\toriginalExecute: any\n\t\toptions?: Record<string, any>\n\t}): Promise<FeatureInstallResponse & FeatureActionResponse> {\n\t\tconst {\n\t\t\tfeatureCode,\n\t\t\tactionCode,\n\t\t\taction,\n\t\t\toriginalExecute,\n\t\t\toptions: actionOptions,\n\t\t} = options\n\n\t\tconst installer = this.getFeatureInstaller()\n\t\tconst isInstalled = await installer.isInstalled(featureCode)\n\n\t\tif (!isInstalled && !this.shouldAutoHandleDependencies) {\n\t\t\tthrow new SpruceError({\n\t\t\t\tcode: 'FEATURE_NOT_INSTALLED',\n\t\t\t\tfeatureCode,\n\t\t\t\tfriendlyMessage: `You need to install the \\`${featureCode}\\` feature.`,\n\t\t\t})\n\t\t}\n\n\t\tconst willExecuteResults = await this.emitter.emit('feature.will-execute', {\n\t\t\tfeatureCode,\n\t\t\tactionCode,\n\t\t\toptions: actionOptions,\n\t\t})\n\n\t\tconst { payloads: willExecutePayloads, errors } =\n\t\t\teventResponseUtil.getAllResponsePayloadsAndErrors(\n\t\t\t\twillExecuteResults,\n\t\t\t\tSpruceError\n\t\t\t)\n\n\t\tif (errors?.length ?? 0 > 0) {\n\t\t\tif (this.shouldThrowOnListenerError) {\n\t\t\t\t//@ts-ignore\n\t\t\t\tthrow errors[0]\n\t\t\t}\n\t\t\treturn { errors }\n\t\t}\n\n\t\tactionUtil.assertNoErrorsInResponse(willExecuteResults)\n\n\t\tconst feature = installer.getFeature(featureCode)\n\n\t\tconst asker = new ActionOptionAsker({\n\t\t\tfeatureInstaller: installer,\n\t\t\tfeature,\n\t\t\tactionCode,\n\t\t\tshouldAutoHandleDependencies: this.shouldAutoHandleDependencies,\n\t\t\tui: this.ui,\n\t\t})\n\n\t\tlet response =\n\t\t\t(await asker.installOrMarkAsSkippedMissingDependencies()) ?? {}\n\n\t\tconst installOptions =\n\t\t\t(await asker.askAboutMissingFeatureOptionsIfFeatureIsNotInstalled(\n\t\t\t\tisInstalled,\n\t\t\t\tactionOptions\n\t\t\t)) ??\n\t\t\tactionOptions ??\n\t\t\t{}\n\n\t\tlet answers =\n\t\t\t(await asker.askAboutMissingActionOptions(action, installOptions)) ??\n\t\t\tinstallOptions\n\n\t\tif (!isInstalled) {\n\t\t\tconst ourFeatureResults =\n\t\t\t\t(await asker.installOurFeature(installOptions)) ?? {}\n\t\t\tresponse = merge(response, ourFeatureResults)\n\t\t}\n\n\t\tlet executeResults: FeatureActionResponse = {}\n\n\t\ttry {\n\t\t\texecuteResults = await originalExecute({\n\t\t\t\t...answers,\n\t\t\t})\n\t\t} catch (err: any) {\n\t\t\texecuteResults.errors = [err]\n\t\t}\n\n\t\tresponse = merge(response, executeResults)\n\n\t\tconst didExecuteResults = await this.emitter.emit('feature.did-execute', {\n\t\t\tresults: response,\n\t\t\tfeatureCode,\n\t\t\tactionCode,\n\t\t})\n\n\t\tconst { payloads, errors: didExecuteErrors } =\n\t\t\teventResponseUtil.getAllResponsePayloadsAndErrors(\n\t\t\t\tdidExecuteResults,\n\t\t\t\tSpruceError\n\t\t\t)\n\n\t\tif (\n\t\t\t(this.shouldThrowOnListenerError && didExecuteErrors?.length) ??\n\t\t\t0 > 0\n\t\t) {\n\t\t\t//@ts-ignore\n\t\t\tthrow didExecuteErrors[0]\n\t\t}\n\n\t\tresponse = actionUtil.mergeActionResults(\n\t\t\tresponse,\n\t\t\t...willExecutePayloads,\n\t\t\t...payloads\n\t\t)\n\n\t\tif (didExecuteErrors) {\n\t\t\tresponse = actionUtil.mergeActionResults(response, {\n\t\t\t\terrors: didExecuteErrors,\n\t\t\t})\n\t\t}\n\n\t\treturn response\n\t}\n\n\tpublic Action<F extends FeatureCode>(\n\t\tfeatureCode: F,\n\t\tactionCode: string\n\t): FeatureAction {\n\t\tconst featureInstaller = this.getFeatureInstaller()\n\n\t\tconst action = this.actions.Action({\n\t\t\tfeatureCode,\n\t\t\tactionCode,\n\t\t\tactionExecuter: this,\n\t\t\tfeatureInstaller,\n\t\t})\n\n\t\tconst originalExecute = action.execute.bind(action)\n\n\t\taction.execute = async (options: any) => {\n\t\t\treturn this.execute({\n\t\t\t\tfeatureCode,\n\t\t\t\tactionCode,\n\t\t\t\taction,\n\t\t\t\toriginalExecute,\n\t\t\t\toptions,\n\t\t\t})\n\t\t}\n\n\t\treturn action as any\n\t}\n}\n\nexport interface ActionExecuterOptions {\n\tui: GraphicsInterface\n\temitter: GlobalEmitter\n\tactionFactory: ActionFactory\n\tfeatureInstallerFactory: () => FeatureInstaller\n\tshouldAutoHandleDependencies?: boolean\n\tshouldThrowOnListenerError?: boolean\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ActionExecuter.js","names":["_spruceEventUtils","require","_merge","_interopRequireDefault","_SpruceError","_action","_ActionQuestionAsker","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","ActionExecuter","exports","options","_options$shouldAutoHa","_classCallCheck2","featureInstallerFactory","emitter","ui","actions","actionFactory","shouldAutoHandleDependencies","shouldThrowOnListenerError","_createClass2","key","value","getFeatureInstaller","_execute","_asyncToGenerator2","_regenerator","mark","_callee","_errors$length","_yield$asker$installO","_ref","_yield$asker$askAbout","_yield$asker$askAbout2","_ref2","featureCode","actionCode","action","originalExecute","actionOptions","installer","isInstalled","willExecuteResults","_eventResponseUtil$ge","willExecutePayloads","errors","feature","asker","response","installOptions","answers","_yield$asker$installO2","ourFeatureResults","executeResults","didExecuteResults","_eventResponseUtil$ge2","payloads","didExecuteErrors","wrap","_callee$","_context","prev","next","sent","SpruceError","code","friendlyMessage","concat","emit","eventResponseUtil","getAllResponsePayloadsAndErrors","abrupt","actionUtil","assertNoErrorsInResponse","getFeature","ActionOptionAsker","featureInstaller","installOrMarkAsSkippedMissingDependencies","t1","t0","t2","askAboutMissingFeatureOptionsIfFeatureIsNotInstalled","t5","t4","t6","t7","t3","t8","askAboutMissingActionOptions","t10","t9","t11","installOurFeature","t13","t12","t14","merge","t15","results","mergeActionResults","_toConsumableArray2","stop","execute","_x","Action","_this","actionExecuter","bind","_ref3","_callee2","_callee2$","_context2","_x2"],"sources":["../../src/features/ActionExecuter.ts"],"sourcesContent":["import { eventResponseUtil } from '@sprucelabs/spruce-event-utils'\nimport merge from 'lodash/merge'\nimport SpruceError from '../errors/SpruceError'\nimport { GlobalEmitter } from '../GlobalEmitter'\nimport { GraphicsInterface } from '../types/cli.types'\nimport actionUtil from '../utilities/action.utility'\nimport ActionFactory from './ActionFactory'\nimport ActionOptionAsker from './ActionQuestionAsker'\nimport FeatureInstaller from './FeatureInstaller'\nimport {\n\tFeatureCode,\n\tFeatureInstallResponse,\n\tFeatureAction,\n\tFeatureActionResponse,\n} from './features.types'\n\nexport default class ActionExecuter {\n\tprivate emitter: GlobalEmitter\n\tprivate ui: GraphicsInterface\n\tprivate actions: ActionFactory\n\tprivate featureInstallerFactory: () => FeatureInstaller\n\tprivate shouldAutoHandleDependencies: boolean\n\tprivate shouldThrowOnListenerError: boolean\n\n\tpublic constructor(options: ActionExecuterOptions) {\n\t\tthis.featureInstallerFactory = options.featureInstallerFactory\n\t\tthis.emitter = options.emitter\n\t\tthis.ui = options.ui\n\t\tthis.actions = options.actionFactory\n\t\tthis.shouldAutoHandleDependencies =\n\t\t\toptions.shouldAutoHandleDependencies ?? true\n\n\t\tthis.shouldThrowOnListenerError = !!options.shouldThrowOnListenerError\n\t}\n\n\tprivate getFeatureInstaller() {\n\t\treturn this.featureInstallerFactory()\n\t}\n\n\tprivate async execute(options: {\n\t\tfeatureCode: FeatureCode\n\t\tactionCode: string\n\t\taction: any\n\t\toriginalExecute: any\n\t\toptions?: Record<string, any>\n\t}): Promise<FeatureInstallResponse & FeatureActionResponse> {\n\t\tconst {\n\t\t\tfeatureCode,\n\t\t\tactionCode,\n\t\t\taction,\n\t\t\toriginalExecute,\n\t\t\toptions: actionOptions,\n\t\t} = options\n\n\t\tconst installer = this.getFeatureInstaller()\n\t\tconst isInstalled = await installer.isInstalled(featureCode)\n\n\t\tif (!isInstalled && !this.shouldAutoHandleDependencies) {\n\t\t\tthrow new SpruceError({\n\t\t\t\tcode: 'FEATURE_NOT_INSTALLED',\n\t\t\t\tfeatureCode,\n\t\t\t\tfriendlyMessage: `You need to install the \\`${featureCode}\\` feature.`,\n\t\t\t})\n\t\t}\n\n\t\tconst willExecuteResults = await this.emitter.emit('feature.will-execute', {\n\t\t\tfeatureCode,\n\t\t\tactionCode,\n\t\t\toptions: actionOptions,\n\t\t})\n\n\t\tconst { payloads: willExecutePayloads, errors } =\n\t\t\teventResponseUtil.getAllResponsePayloadsAndErrors(\n\t\t\t\twillExecuteResults,\n\t\t\t\tSpruceError\n\t\t\t)\n\n\t\tif (errors?.length ?? 0 > 0) {\n\t\t\tif (this.shouldThrowOnListenerError) {\n\t\t\t\t//@ts-ignore\n\t\t\t\tthrow errors[0]\n\t\t\t}\n\t\t\treturn { errors }\n\t\t}\n\n\t\tactionUtil.assertNoErrorsInResponse(willExecuteResults)\n\n\t\tconst feature = installer.getFeature(featureCode)\n\n\t\tconst asker = new ActionOptionAsker({\n\t\t\tfeatureInstaller: installer,\n\t\t\tfeature,\n\t\t\tactionCode,\n\t\t\tshouldAutoHandleDependencies: this.shouldAutoHandleDependencies,\n\t\t\tui: this.ui,\n\t\t})\n\n\t\tlet response =\n\t\t\t(await asker.installOrMarkAsSkippedMissingDependencies()) ?? {}\n\n\t\tconst installOptions =\n\t\t\t(await asker.askAboutMissingFeatureOptionsIfFeatureIsNotInstalled(\n\t\t\t\tisInstalled,\n\t\t\t\tactionOptions\n\t\t\t)) ??\n\t\t\tactionOptions ??\n\t\t\t{}\n\n\t\tlet answers =\n\t\t\t(await asker.askAboutMissingActionOptions(action, installOptions)) ??\n\t\t\tinstallOptions\n\n\t\tif (!isInstalled) {\n\t\t\tconst ourFeatureResults =\n\t\t\t\t(await asker.installOurFeature(installOptions)) ?? {}\n\t\t\tresponse = merge(response, ourFeatureResults)\n\t\t}\n\n\t\tlet executeResults: FeatureActionResponse = {}\n\n\t\ttry {\n\t\t\texecuteResults = await originalExecute({\n\t\t\t\t...answers,\n\t\t\t})\n\t\t} catch (err: any) {\n\t\t\texecuteResults.errors = [err]\n\t\t}\n\n\t\tresponse = merge(response, executeResults)\n\n\t\tconst didExecuteResults = await this.emitter.emit('feature.did-execute', {\n\t\t\tresults: response,\n\t\t\tfeatureCode,\n\t\t\tactionCode,\n\t\t})\n\n\t\tconst { payloads, errors: didExecuteErrors } =\n\t\t\teventResponseUtil.getAllResponsePayloadsAndErrors(\n\t\t\t\tdidExecuteResults,\n\t\t\t\tSpruceError\n\t\t\t)\n\n\t\tif (\n\t\t\t(this.shouldThrowOnListenerError && didExecuteErrors?.length) ??\n\t\t\t0 > 0\n\t\t) {\n\t\t\t//@ts-ignore\n\t\t\tthrow didExecuteErrors[0]\n\t\t}\n\n\t\tresponse = actionUtil.mergeActionResults(\n\t\t\tresponse,\n\t\t\t...willExecutePayloads,\n\t\t\t...payloads\n\t\t)\n\n\t\tif (didExecuteErrors) {\n\t\t\tresponse = actionUtil.mergeActionResults(response, {\n\t\t\t\terrors: didExecuteErrors,\n\t\t\t})\n\t\t}\n\n\t\treturn response\n\t}\n\n\tpublic Action<F extends FeatureCode>(\n\t\tfeatureCode: F,\n\t\tactionCode: string\n\t): FeatureAction {\n\t\tconst featureInstaller = this.getFeatureInstaller()\n\n\t\tconst action = this.actions.Action({\n\t\t\tfeatureCode,\n\t\t\tactionCode,\n\t\t\tactionExecuter: this,\n\t\t\tfeatureInstaller,\n\t\t})\n\n\t\tconst originalExecute = action.execute.bind(action)\n\n\t\taction.execute = async (options: any) => {\n\t\t\treturn this.execute({\n\t\t\t\tfeatureCode,\n\t\t\t\tactionCode,\n\t\t\t\taction,\n\t\t\t\toriginalExecute,\n\t\t\t\toptions,\n\t\t\t})\n\t\t}\n\n\t\treturn action as any\n\t}\n}\n\nexport interface ActionExecuterOptions {\n\tui: GraphicsInterface\n\temitter: GlobalEmitter\n\tactionFactory: ActionFactory\n\tfeatureInstallerFactory: () => FeatureInstaller\n\tshouldAutoHandleDependencies?: boolean\n\tshouldThrowOnListenerError?: boolean\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -28,7 +28,7 @@ var ActionFactory = exports["default"] = /*#__PURE__*/function () {
|
|
|
28
28
|
this.blockedCommands = blockedCommands;
|
|
29
29
|
this.optionOverrides = optionOverrides;
|
|
30
30
|
}
|
|
31
|
-
(0, _createClass2["default"])(ActionFactory, [{
|
|
31
|
+
return (0, _createClass2["default"])(ActionFactory, [{
|
|
32
32
|
key: "Action",
|
|
33
33
|
value: function Action(options) {
|
|
34
34
|
var featureCode = options.featureCode,
|
|
@@ -105,7 +105,6 @@ var ActionFactory = exports["default"] = /*#__PURE__*/function () {
|
|
|
105
105
|
this.overrides = {};
|
|
106
106
|
}
|
|
107
107
|
}]);
|
|
108
|
-
return ActionFactory;
|
|
109
108
|
}();
|
|
110
109
|
(0, _defineProperty2["default"])(ActionFactory, "overrides", {});
|
|
111
110
|
//# sourceMappingURL=ActionFactory.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActionFactory.js","names":["_spruceSkillUtils","require","_SpruceError","_interopRequireDefault","_OverrideActionDecorator","_excluded","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","ActionFactory","exports","options","_classCallCheck2","blockedCommands","optionOverrides","actionOptions","_objectWithoutProperties2","_createClass2","key","value","Action","featureCode","actionCode","actionExecuter","featureInstaller","feature","getFeature","actionsDir","Error","concat","Class","originalError","overrideKey","overrides","classPath","diskUtil","resolvePath","namesUtil","toPascal","err","SpruceError","code","friendlyMessage","action","parent","execute","actionDecorator","OverrideActionDecorator","ui","setActionClass","ExecuteTrackingAction","clearActionOverrides"],"sources":["../../src/features/ActionFactory.ts"],"sourcesContent":["import { Schema } from '@sprucelabs/schema'\nimport { namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport SpruceError from '../errors/SpruceError'\nimport {\n\tFeatureAction,\n\tActionOptions,\n\tFeatureCode,\n} from '../features/features.types'\nimport { GlobalEmitter } from '../GlobalEmitter'\nimport { BlockedCommands, OptionOverrides } from '../types/cli.types'\nimport ActionExecuter from './ActionExecuter'\nimport FeatureInstaller from './FeatureInstaller'\nimport OverrideActionDecorator from './OverrideActionDecorator'\n\nexport default class ActionFactory {\n\tprivate actionOptions: FeatureActionFactoryOptions\n\tprivate blockedCommands?: BlockedCommands\n\tprivate optionOverrides?: OptionOverrides\n\tprivate static overrides: Record<string, ActionConstructor> = {}\n\n\tpublic constructor(options: FeatureActionFactoryOptions) {\n\t\tconst { blockedCommands, optionOverrides, ...actionOptions } = options\n\t\tthis.actionOptions = actionOptions\n\t\tthis.blockedCommands = blockedCommands\n\t\tthis.optionOverrides = optionOverrides\n\t}\n\n\tpublic Action<F extends FeatureCode, S extends Schema = Schema>(options: {\n\t\tfeatureCode: F\n\t\tactionCode: string\n\t\tactionExecuter: ActionExecuter\n\t\tfeatureInstaller: FeatureInstaller\n\t}): FeatureAction<S> {\n\t\tconst { featureCode, actionCode, actionExecuter, featureInstaller } =\n\t\t\toptions\n\n\t\tconst feature = featureInstaller.getFeature(featureCode)\n\n\t\tif (!feature.actionsDir) {\n\t\t\tthrow new Error(\n\t\t\t\t`Your ${featureCode} features needs \\`public actionsDir = diskUtil.resolvePath(__dirname, 'actions')\\``\n\t\t\t)\n\t\t}\n\n\t\tlet Class: new (options: ActionOptions) => FeatureAction | undefined\n\t\tlet originalError: Error | undefined\n\n\t\tconst key = ActionFactory.overrideKey(featureCode, actionCode)\n\t\tif (ActionFactory.overrides[key]) {\n\t\t\tClass = ActionFactory.overrides[key]\n\t\t} else {\n\t\t\tconst classPath = diskUtil.resolvePath(\n\t\t\t\tfeature.actionsDir,\n\t\t\t\t`${namesUtil.toPascal(actionCode)}Action`\n\t\t\t)\n\t\t\ttry {\n\t\t\t\tClass = require(classPath).default\n\t\t\t\t// eslint-disable-next-line no-empty\n\t\t\t} catch (err: any) {\n\t\t\t\toriginalError = err\n\t\t\t}\n\t\t}\n\n\t\t//@ts-ignore\n\t\tif (!Class) {\n\t\t\tthrow new SpruceError({\n\t\t\t\tcode: 'GENERIC',\n\t\t\t\tfriendlyMessage: `I could not find any action named '${actionCode}' for the ${feature.code} feature. Make sure it's the default export and extends AbstractAction.`,\n\t\t\t\toriginalError,\n\t\t\t})\n\t\t}\n\n\t\tconst action = new Class({\n\t\t\t...this.actionOptions,\n\t\t\tactionExecuter,\n\t\t\tparent: feature,\n\t\t\tfeatureInstaller,\n\t\t})\n\n\t\tif (!action) {\n\t\t\tthrow new SpruceError({\n\t\t\t\tcode: 'GENERIC',\n\t\t\t\tfriendlyMessage: `I could not instantiate ${actionCode} action on ${feature.code} feature.`,\n\t\t\t})\n\t\t}\n\n\t\tif (!action.execute) {\n\t\t\tthrow new SpruceError({\n\t\t\t\tcode: 'GENERIC',\n\t\t\t\tfriendlyMessage: `It looks like the ${feature.code} feature's '${actionCode}' action does not properly extend AbstractAction.`,\n\t\t\t})\n\t\t}\n\n\t\tconst actionDecorator = new OverrideActionDecorator({\n\t\t\taction,\n\t\t\tfeature,\n\t\t\tblockedCommands: this.blockedCommands,\n\t\t\toptionOverrides: this.optionOverrides,\n\t\t\tui: this.actionOptions.ui,\n\t\t\tactionCode,\n\t\t})\n\n\t\treturn actionDecorator as FeatureAction<S>\n\t}\n\n\tpublic static setActionClass(\n\t\tfeatureCode: FeatureCode,\n\t\taction: string,\n\t\tExecuteTrackingAction: ActionConstructor\n\t) {\n\t\tthis.overrides[ActionFactory.overrideKey(featureCode, action)] =\n\t\t\tExecuteTrackingAction\n\t}\n\n\tprivate static overrideKey(featureCode: string, action: string) {\n\t\treturn `${featureCode}${action}`\n\t}\n\n\tpublic static clearActionOverrides() {\n\t\tthis.overrides = {}\n\t}\n}\n\nexport interface FeatureActionFactoryOptions\n\textends Omit<\n\t\tActionOptions,\n\t\t'parent' | 'actionExecuter' | 'featureInstaller'\n\t> {\n\temitter: GlobalEmitter\n\tblockedCommands?: BlockedCommands\n\toptionOverrides?: OptionOverrides\n}\n\ntype ActionConstructor = new (options: ActionOptions) => FeatureAction\n"],"mappings":";;;;;;;;;;;AACA,IAAAA,iBAAA,GAAAC,OAAA;AAEA,IAAAC,YAAA,GAAAC,sBAAA,CAAAF,OAAA;AAUA,IAAAG,wBAAA,GAAAD,sBAAA,CAAAF,OAAA;AAA+D,IAAAI,SAAA;AAAA,SAAAC,QAAAC,CAAA,EAAAC,CAAA,QAAAC,CAAA,GAAAC,MAAA,CAAAC,IAAA,CAAAJ,CAAA,OAAAG,MAAA,CAAAE,qBAAA,QAAAC,CAAA,GAAAH,MAAA,CAAAE,qBAAA,CAAAL,CAAA,GAAAC,CAAA,KAAAK,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAN,CAAA,WAAAE,MAAA,CAAAK,wBAAA,CAAAR,CAAA,EAAAC,CAAA,EAAAQ,UAAA,OAAAP,CAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,CAAA,EAAAI,CAAA,YAAAJ,CAAA;AAAA,SAAAU,cAAAZ,CAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAY,SAAA,CAAAC,MAAA,EAAAb,CAAA,UAAAC,CAAA,WAAAW,SAAA,CAAAZ,CAAA,IAAAY,SAAA,CAAAZ,CAAA,QAAAA,CAAA,OAAAF,OAAA,CAAAI,MAAA,CAAAD,CAAA,OAAAa,OAAA,WAAAd,CAAA,QAAAe,gBAAA,aAAAhB,CAAA,EAAAC,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAE,MAAA,CAAAc,yBAAA,GAAAd,MAAA,CAAAe,gBAAA,CAAAlB,CAAA,EAAAG,MAAA,CAAAc,yBAAA,CAAAf,CAAA,KAAAH,OAAA,CAAAI,MAAA,CAAAD,CAAA,GAAAa,OAAA,WAAAd,CAAA,IAAAE,MAAA,CAAAgB,cAAA,CAAAnB,CAAA,EAAAC,CAAA,EAAAE,MAAA,CAAAK,wBAAA,CAAAN,CAAA,EAAAD,CAAA,iBAAAD,CAAA;AAAA,IAE1CoB,aAAa,GAAAC,OAAA;EAMjC,SAAAD,cAAmBE,OAAoC,EAAE;IAAA,IAAAC,gBAAA,mBAAAH,aAAA;IAAA,IAAAJ,gBAAA;IAAA,IAAAA,gBAAA;IAAA,IAAAA,gBAAA;IACxD,IAAQQ,eAAe,GAAwCF,OAAO,CAA9DE,eAAe;MAAEC,eAAe,GAAuBH,OAAO,CAA7CG,eAAe;MAAKC,aAAa,OAAAC,yBAAA,aAAKL,OAAO,EAAAxB,SAAA;IACtE,IAAI,CAAC4B,aAAa,GAAGA,aAAa;IAClC,IAAI,CAACF,eAAe,GAAGA,eAAe;IACtC,IAAI,CAACC,eAAe,GAAGA,eAAe;EACvC;EAAC,
|
|
1
|
+
{"version":3,"file":"ActionFactory.js","names":["_spruceSkillUtils","require","_SpruceError","_interopRequireDefault","_OverrideActionDecorator","_excluded","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","ActionFactory","exports","options","_classCallCheck2","blockedCommands","optionOverrides","actionOptions","_objectWithoutProperties2","_createClass2","key","value","Action","featureCode","actionCode","actionExecuter","featureInstaller","feature","getFeature","actionsDir","Error","concat","Class","originalError","overrideKey","overrides","classPath","diskUtil","resolvePath","namesUtil","toPascal","err","SpruceError","code","friendlyMessage","action","parent","execute","actionDecorator","OverrideActionDecorator","ui","setActionClass","ExecuteTrackingAction","clearActionOverrides"],"sources":["../../src/features/ActionFactory.ts"],"sourcesContent":["import { Schema } from '@sprucelabs/schema'\nimport { namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport SpruceError from '../errors/SpruceError'\nimport {\n\tFeatureAction,\n\tActionOptions,\n\tFeatureCode,\n} from '../features/features.types'\nimport { GlobalEmitter } from '../GlobalEmitter'\nimport { BlockedCommands, OptionOverrides } from '../types/cli.types'\nimport ActionExecuter from './ActionExecuter'\nimport FeatureInstaller from './FeatureInstaller'\nimport OverrideActionDecorator from './OverrideActionDecorator'\n\nexport default class ActionFactory {\n\tprivate actionOptions: FeatureActionFactoryOptions\n\tprivate blockedCommands?: BlockedCommands\n\tprivate optionOverrides?: OptionOverrides\n\tprivate static overrides: Record<string, ActionConstructor> = {}\n\n\tpublic constructor(options: FeatureActionFactoryOptions) {\n\t\tconst { blockedCommands, optionOverrides, ...actionOptions } = options\n\t\tthis.actionOptions = actionOptions\n\t\tthis.blockedCommands = blockedCommands\n\t\tthis.optionOverrides = optionOverrides\n\t}\n\n\tpublic Action<F extends FeatureCode, S extends Schema = Schema>(options: {\n\t\tfeatureCode: F\n\t\tactionCode: string\n\t\tactionExecuter: ActionExecuter\n\t\tfeatureInstaller: FeatureInstaller\n\t}): FeatureAction<S> {\n\t\tconst { featureCode, actionCode, actionExecuter, featureInstaller } =\n\t\t\toptions\n\n\t\tconst feature = featureInstaller.getFeature(featureCode)\n\n\t\tif (!feature.actionsDir) {\n\t\t\tthrow new Error(\n\t\t\t\t`Your ${featureCode} features needs \\`public actionsDir = diskUtil.resolvePath(__dirname, 'actions')\\``\n\t\t\t)\n\t\t}\n\n\t\tlet Class: new (options: ActionOptions) => FeatureAction | undefined\n\t\tlet originalError: Error | undefined\n\n\t\tconst key = ActionFactory.overrideKey(featureCode, actionCode)\n\t\tif (ActionFactory.overrides[key]) {\n\t\t\tClass = ActionFactory.overrides[key]\n\t\t} else {\n\t\t\tconst classPath = diskUtil.resolvePath(\n\t\t\t\tfeature.actionsDir,\n\t\t\t\t`${namesUtil.toPascal(actionCode)}Action`\n\t\t\t)\n\t\t\ttry {\n\t\t\t\tClass = require(classPath).default\n\t\t\t\t// eslint-disable-next-line no-empty\n\t\t\t} catch (err: any) {\n\t\t\t\toriginalError = err\n\t\t\t}\n\t\t}\n\n\t\t//@ts-ignore\n\t\tif (!Class) {\n\t\t\tthrow new SpruceError({\n\t\t\t\tcode: 'GENERIC',\n\t\t\t\tfriendlyMessage: `I could not find any action named '${actionCode}' for the ${feature.code} feature. Make sure it's the default export and extends AbstractAction.`,\n\t\t\t\toriginalError,\n\t\t\t})\n\t\t}\n\n\t\tconst action = new Class({\n\t\t\t...this.actionOptions,\n\t\t\tactionExecuter,\n\t\t\tparent: feature,\n\t\t\tfeatureInstaller,\n\t\t})\n\n\t\tif (!action) {\n\t\t\tthrow new SpruceError({\n\t\t\t\tcode: 'GENERIC',\n\t\t\t\tfriendlyMessage: `I could not instantiate ${actionCode} action on ${feature.code} feature.`,\n\t\t\t})\n\t\t}\n\n\t\tif (!action.execute) {\n\t\t\tthrow new SpruceError({\n\t\t\t\tcode: 'GENERIC',\n\t\t\t\tfriendlyMessage: `It looks like the ${feature.code} feature's '${actionCode}' action does not properly extend AbstractAction.`,\n\t\t\t})\n\t\t}\n\n\t\tconst actionDecorator = new OverrideActionDecorator({\n\t\t\taction,\n\t\t\tfeature,\n\t\t\tblockedCommands: this.blockedCommands,\n\t\t\toptionOverrides: this.optionOverrides,\n\t\t\tui: this.actionOptions.ui,\n\t\t\tactionCode,\n\t\t})\n\n\t\treturn actionDecorator as FeatureAction<S>\n\t}\n\n\tpublic static setActionClass(\n\t\tfeatureCode: FeatureCode,\n\t\taction: string,\n\t\tExecuteTrackingAction: ActionConstructor\n\t) {\n\t\tthis.overrides[ActionFactory.overrideKey(featureCode, action)] =\n\t\t\tExecuteTrackingAction\n\t}\n\n\tprivate static overrideKey(featureCode: string, action: string) {\n\t\treturn `${featureCode}${action}`\n\t}\n\n\tpublic static clearActionOverrides() {\n\t\tthis.overrides = {}\n\t}\n}\n\nexport interface FeatureActionFactoryOptions\n\textends Omit<\n\t\tActionOptions,\n\t\t'parent' | 'actionExecuter' | 'featureInstaller'\n\t> {\n\temitter: GlobalEmitter\n\tblockedCommands?: BlockedCommands\n\toptionOverrides?: OptionOverrides\n}\n\ntype ActionConstructor = new (options: ActionOptions) => FeatureAction\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -32,7 +32,7 @@ var ActionOptionAsker = exports["default"] = /*#__PURE__*/function () {
|
|
|
32
32
|
this.feature = options.feature;
|
|
33
33
|
this.shouldAutoHandleDependencies = options.shouldAutoHandleDependencies;
|
|
34
34
|
}
|
|
35
|
-
(0, _createClass2["default"])(ActionOptionAsker, [{
|
|
35
|
+
return (0, _createClass2["default"])(ActionOptionAsker, [{
|
|
36
36
|
key: "installOrMarkAsSkippedMissingDependencies",
|
|
37
37
|
value: function () {
|
|
38
38
|
var _installOrMarkAsSkippedMissingDependencies = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
@@ -483,7 +483,6 @@ var ActionOptionAsker = exports["default"] = /*#__PURE__*/function () {
|
|
|
483
483
|
return "Before you can run `".concat(this.getCommandName(), "`, ").concat(message, " Don't worry, I'll walk you through it!");
|
|
484
484
|
}
|
|
485
485
|
}]);
|
|
486
|
-
return ActionOptionAsker;
|
|
487
486
|
}();
|
|
488
487
|
function s(array) {
|
|
489
488
|
return array.length === 1 ? '' : '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActionQuestionAsker.js","names":["_merge","_interopRequireDefault","require","_FormComponent","_constants","_SpruceError","_form","_feature","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","ActionOptionAsker","exports","options","_classCallCheck2","ui","featureInstaller","actionCode","feature","shouldAutoHandleDependencies","_createClass2","key","value","_installOrMarkAsSkippedMissingDependencies","_asyncToGenerator2","_regenerator","mark","_callee","notInstalled","response","installCount","toInstall","wasInstalled","installResults","wrap","_callee$","_context","prev","next","getDependenciesNotInstalled","sent","renderLine","generateConfirmInstallMessage","shift","Error","isInstalled","code","isMarkedAsSkipped","installOrMarkAsSkippedMissingDependency","merge","clear","waitForEnter","concat","getCommandName","abrupt","stop","installOrMarkAsSkippedMissingDependencies","_getDependenciesNotInstalled","_callee3","_this","dependencies","installedStatuses","_callee3$","_context3","getFeatureDependencies","Promise","all","map","_ref","_callee2","dependency","_callee2$","_context2","getFeature","_x","_askAboutMissingFeatureOptionsIfFeatureIsNotInstalled","_callee4","installOptions","answers","_callee4$","_context4","optionsSchema","collectAnswers","askAboutMissingFeatureOptionsIfFeatureIsNotInstalled","_x2","_x3","_askAboutMissingActionOptions","_callee5","action","schema","_callee5$","_context5","askAboutMissingActionOptions","_x4","_x5","_installOurFeature","_callee6","_this2","isFirstUpdate","_callee6$","_context6","SpruceError","featureCode","friendlyMessage","install","installFeatureDependencies","features","didUpdateHandler","message","renderHeading","startLoading","stopLoading","installOurFeature","_x6","renderHero","CLI_HERO","renderHeadline","_installOrMarkAsSkippedMissingDependency","_callee7","_this3","isRequired","confirm","installResponse","_callee7$","_context7","nameReadable","command","prompt","type","defaultValue","label","choices","markAsSkippedThisRun","markAsPermanentlySkipped","undefined","_x7","_collectAnswers","_callee8","_schema$fields","cleaned","fieldNames","providedFieldNames","fieldsToPresent","featureForm","_callee8$","_context8","fields","name","_schema$fields2","_schema$fields3","indexOf","isPrivate","FormComponent","initialValues","onWillAskQuestion","formUtil","onWillAskQuestionHandler","bind","present","showOverview","_x8","_x9","featuresUtil","generateCommand","required","optional","feat","requiredMessage","s","optionalMessage","areIs","mixedMessage","array"],"sources":["../../src/features/ActionQuestionAsker.ts"],"sourcesContent":["import { Schema, SchemaValues, SchemaPartialValues } from '@sprucelabs/schema'\nimport merge from 'lodash/merge'\nimport FormComponent from '../components/FormComponent'\nimport { CLI_HERO } from '../constants'\nimport SpruceError from '../errors/SpruceError'\nimport { GraphicsInterface } from '../types/cli.types'\nimport formUtil from '../utilities/form.utility'\nimport AbstractFeature, { FeatureDependency } from './AbstractFeature'\nimport featuresUtil from './feature.utilities'\nimport FeatureInstaller from './FeatureInstaller'\nimport {\n\tFeatureCode,\n\tFeatureInstallResponse,\n\tFeatureAction,\n\tFeatureMap,\n} from './features.types'\n\nexport default class ActionOptionAsker<F extends FeatureCode = FeatureCode> {\n\tprivate ui: GraphicsInterface\n\tprivate featureInstaller: FeatureInstaller\n\tprivate actionCode: string\n\tprivate feature: AbstractFeature\n\tprivate shouldAutoHandleDependencies = true\n\n\tpublic constructor(options: {\n\t\tui: GraphicsInterface\n\t\tfeatureInstaller: FeatureInstaller\n\t\tactionCode: string\n\t\tfeature: AbstractFeature\n\t\tshouldAutoHandleDependencies: boolean\n\t}) {\n\t\tthis.ui = options.ui\n\t\tthis.featureInstaller = options.featureInstaller\n\t\tthis.actionCode = options.actionCode\n\t\tthis.feature = options.feature\n\t\tthis.shouldAutoHandleDependencies = options.shouldAutoHandleDependencies\n\t}\n\n\tpublic async installOrMarkAsSkippedMissingDependencies(): Promise<FeatureInstallResponse> {\n\t\tconst notInstalled = await this.getDependenciesNotInstalled()\n\n\t\tlet response: FeatureInstallResponse = {}\n\t\tlet installCount = 0\n\n\t\tif (notInstalled.length > 0) {\n\t\t\tthis.ui.renderLine(\n\t\t\t\tthis.generateConfirmInstallMessage(notInstalled) + '\\n'\n\t\t\t)\n\n\t\t\twhile (notInstalled.length > 0) {\n\t\t\t\tconst toInstall = notInstalled.shift()\n\t\t\t\tif (!toInstall) {\n\t\t\t\t\t// for typescript\n\t\t\t\t\tthrow new Error('Dependent feature error')\n\t\t\t\t}\n\n\t\t\t\tconst wasInstalled = await this.featureInstaller.isInstalled(\n\t\t\t\t\ttoInstall.code\n\t\t\t\t)\n\n\t\t\t\tif (\n\t\t\t\t\t!wasInstalled &&\n\t\t\t\t\t!this.featureInstaller.isMarkedAsSkipped(toInstall.code)\n\t\t\t\t) {\n\t\t\t\t\tconst installResults =\n\t\t\t\t\t\tawait this.installOrMarkAsSkippedMissingDependency(toInstall)\n\t\t\t\t\tresponse = merge(response, installResults)\n\t\t\t\t\tinstallCount++\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (installCount > 0) {\n\t\t\t\tthis.ui.clear()\n\n\t\t\t\tawait this.ui.waitForEnter(\n\t\t\t\t\t`Phew, now that we're done with that, lets get back to ${this.getCommandName()}!`\n\t\t\t\t)\n\n\t\t\t\tthis.ui.clear()\n\t\t\t}\n\t\t}\n\n\t\treturn response\n\t}\n\n\tprivate async getDependenciesNotInstalled(): Promise<\n\t\tFeatureDependencyWithFeature[]\n\t> {\n\t\tconst dependencies = this.featureInstaller.getFeatureDependencies(\n\t\t\tthis.feature.code\n\t\t)\n\n\t\tconst installedStatuses = await Promise.all(\n\t\t\tdependencies.map(async (dependency) => {\n\t\t\t\tconst feature = this.featureInstaller.getFeature(dependency.code)\n\n\t\t\t\tconst isInstalled = await this.featureInstaller.isInstalled(\n\t\t\t\t\tdependency.code\n\t\t\t\t)\n\n\t\t\t\tconst isMarkedAsSkipped = this.featureInstaller.isMarkedAsSkipped(\n\t\t\t\t\tfeature.code\n\t\t\t\t)\n\n\t\t\t\tif (isMarkedAsSkipped) {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\n\t\t\t\treturn !isInstalled ? { feature, ...dependency } : null\n\t\t\t})\n\t\t)\n\n\t\tconst notInstalled = installedStatuses.filter(\n\t\t\t(feature) => !!feature\n\t\t) as FeatureDependencyWithFeature[]\n\n\t\treturn notInstalled\n\t}\n\n\tpublic async askAboutMissingFeatureOptionsIfFeatureIsNotInstalled(\n\t\tisInstalled: boolean,\n\t\toptions: (Record<string, any> & FeatureCommandExecuteOptions<F>) | undefined\n\t) {\n\t\tlet installOptions = { ...options }\n\n\t\tif (!isInstalled) {\n\t\t\tif (this.feature.optionsSchema) {\n\t\t\t\tconst answers = await this.collectAnswers(\n\t\t\t\t\tthis.feature.optionsSchema,\n\t\t\t\t\toptions\n\t\t\t\t)\n\n\t\t\t\tinstallOptions = { ...installOptions, ...answers }\n\t\t\t}\n\t\t}\n\t\treturn installOptions\n\t}\n\n\tpublic async askAboutMissingActionOptions(\n\t\taction: FeatureAction<Schema>,\n\t\toptions: (Record<string, any> & FeatureCommandExecuteOptions<F>) | undefined\n\t) {\n\t\tlet answers\n\n\t\tconst schema = action.optionsSchema\n\t\tif (schema) {\n\t\t\tanswers = await this.collectAnswers(schema, options)\n\t\t}\n\t\treturn answers\n\t}\n\n\tpublic async installOurFeature(installOptions: Record<string, any>) {\n\t\tif (!this.shouldAutoHandleDependencies) {\n\t\t\tthrow new SpruceError({\n\t\t\t\tcode: 'FEATURE_NOT_INSTALLED',\n\t\t\t\tfeatureCode: this.feature.code,\n\t\t\t\tfriendlyMessage: `You need to install the \\`${this.feature.code}\\` feature.`,\n\t\t\t})\n\t\t}\n\n\t\tlet isFirstUpdate = true\n\n\t\tconst installResults = await this.featureInstaller.install({\n\t\t\tinstallFeatureDependencies: false,\n\t\t\tfeatures: [\n\t\t\t\t{\n\t\t\t\t\tcode: this.feature.code as any,\n\t\t\t\t\toptions: installOptions as any,\n\t\t\t\t},\n\t\t\t],\n\t\t\tdidUpdateHandler: (message) => {\n\t\t\t\tif (isFirstUpdate) {\n\t\t\t\t\tthis.renderHeading(this.feature.code)\n\t\t\t\t\tisFirstUpdate = false\n\t\t\t\t}\n\t\t\t\tthis.ui.startLoading(message)\n\t\t\t},\n\t\t})\n\n\t\tthis.ui.stopLoading()\n\n\t\treturn installResults\n\t}\n\n\tprivate renderHeading(code: string) {\n\t\tthis.ui.clear()\n\t\tthis.ui.renderHero(CLI_HERO)\n\t\tthis.ui.renderHeadline(`Installing ${code} feature...`)\n\t}\n\n\tprivate async installOrMarkAsSkippedMissingDependency(\n\t\ttoInstall: FeatureDependencyWithFeature\n\t): Promise<FeatureInstallResponse> {\n\t\tconst { feature, isRequired } = toInstall\n\n\t\tif (isRequired) {\n\t\t\tconst confirm = await this.ui.confirm(\n\t\t\t\t`Install the ${feature.nameReadable} feature?`\n\t\t\t)\n\n\t\t\tif (!confirm) {\n\t\t\t\tthrow new SpruceError({\n\t\t\t\t\tcode: 'COMMAND_ABORTED',\n\t\t\t\t\tcommand: this.getCommandName(),\n\t\t\t\t})\n\t\t\t}\n\t\t} else {\n\t\t\tconst response = await this.ui.prompt({\n\t\t\t\ttype: 'select',\n\t\t\t\tdefaultValue: 'yes',\n\t\t\t\tlabel: `Install the ${feature.nameReadable} feature? (optional)`,\n\t\t\t\toptions: {\n\t\t\t\t\tchoices: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvalue: 'yes',\n\t\t\t\t\t\t\tlabel: 'Yes',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvalue: 'skip',\n\t\t\t\t\t\t\tlabel: 'Skip',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvalue: 'alwaysSkip',\n\t\t\t\t\t\t\tlabel: 'Always skip',\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\tif (response !== 'yes') {\n\t\t\t\tthis.ui.renderLine(\n\t\t\t\t\tresponse === 'alwaysSkip'\n\t\t\t\t\t\t? 'Skipping forever!'\n\t\t\t\t\t\t: 'Cool, skipping for now.'\n\t\t\t\t)\n\n\t\t\t\tif (response === 'skip') {\n\t\t\t\t\tthis.featureInstaller.markAsSkippedThisRun(feature.code)\n\t\t\t\t} else {\n\t\t\t\t\tthis.featureInstaller.markAsPermanentlySkipped(feature.code)\n\t\t\t\t}\n\n\t\t\t\tconst installResponse: FeatureInstallResponse = {}\n\t\t\t\treturn installResponse\n\t\t\t}\n\t\t}\n\n\t\tlet installOptions = {}\n\n\t\tif (feature.optionsSchema) {\n\t\t\tinstallOptions = await this.collectAnswers(\n\t\t\t\tfeature.optionsSchema,\n\t\t\t\tundefined\n\t\t\t)\n\t\t}\n\n\t\tif (!this.shouldAutoHandleDependencies) {\n\t\t\tthrow new SpruceError({\n\t\t\t\tcode: 'FEATURE_NOT_INSTALLED',\n\t\t\t\tfeatureCode: this.feature.code,\n\t\t\t\tfriendlyMessage: `You need to install the \\`${this.feature.code}\\` feature.`,\n\t\t\t})\n\t\t}\n\n\t\tlet isFirstUpdate = true\n\n\t\tconst installResults = await this.featureInstaller.install({\n\t\t\tinstallFeatureDependencies: false,\n\t\t\tdidUpdateHandler: (message: string) => {\n\t\t\t\tif (isFirstUpdate) {\n\t\t\t\t\tthis.renderHeading(this.feature.code)\n\t\t\t\t\tisFirstUpdate = false\n\t\t\t\t}\n\t\t\t\tthis.ui.startLoading(message)\n\t\t\t},\n\t\t\tfeatures: [\n\t\t\t\t{\n\t\t\t\t\tcode: feature.code as any,\n\t\t\t\t\toptions: installOptions as any,\n\t\t\t\t},\n\t\t\t],\n\t\t})\n\n\t\tthis.ui.stopLoading()\n\n\t\treturn installResults\n\t}\n\n\tprivate async collectAnswers<S extends Schema>(\n\t\tschema: S,\n\t\toptions: FeatureCommandExecuteOptions<F, S> | undefined\n\t) {\n\t\tconst cleaned: Record<string, any> = {}\n\t\tObject.keys(options ?? {}).forEach((key) => {\n\t\t\t//@ts-ignore\n\t\t\tif (typeof options[key] !== 'undefined') {\n\t\t\t\t//@ts-ignore\n\t\t\t\tcleaned[key] = options[key]\n\t\t\t}\n\t\t})\n\n\t\tconst fieldNames = Object.keys(schema.fields ?? {})\n\t\tconst providedFieldNames = cleaned ? Object.keys(cleaned ?? {}) : []\n\t\tconst fieldsToPresent = fieldNames.filter(\n\t\t\t(name) =>\n\t\t\t\tprovidedFieldNames.indexOf(name) === -1 &&\n\t\t\t\tschema.fields?.[name].isRequired === true &&\n\t\t\t\tschema.fields?.[name].isPrivate !== true\n\t\t)\n\n\t\tlet answers = {}\n\t\tif (fieldsToPresent.length > 0) {\n\t\t\tconst featureForm = new FormComponent<S>({\n\t\t\t\tui: this.ui,\n\t\t\t\tschema,\n\t\t\t\t//@ts-ignore\n\t\t\t\tinitialValues: cleaned,\n\t\t\t\tonWillAskQuestion: formUtil.onWillAskQuestionHandler.bind(\n\t\t\t\t\tformUtil\n\t\t\t\t) as any,\n\t\t\t})\n\n\t\t\tanswers = await featureForm.present({\n\t\t\t\tshowOverview: false,\n\t\t\t\t// @ts-ignore\n\t\t\t\tfields: fieldsToPresent,\n\t\t\t})\n\t\t}\n\n\t\treturn { ...(cleaned ?? {}), ...answers } as SchemaValues<S>\n\t}\n\n\tprivate getCommandName() {\n\t\treturn featuresUtil.generateCommand(this.feature.code, this.actionCode)\n\t}\n\n\tprivate generateConfirmInstallMessage(\n\t\tnotInstalled: FeatureDependencyWithFeature[]\n\t): string {\n\t\tconst required: FeatureDependencyWithFeature[] = []\n\t\tconst optional: FeatureDependencyWithFeature[] = []\n\n\t\tnotInstalled.forEach((feat) => {\n\t\t\tif (feat.isRequired) {\n\t\t\t\trequired.push(feat)\n\t\t\t} else {\n\t\t\t\toptional.push(feat)\n\t\t\t}\n\t\t})\n\n\t\tconst requiredMessage = `I'll need to install ${required.length} feature${s(\n\t\t\trequired\n\t\t)}.`\n\n\t\tconst optionalMessage = `there ${areIs(optional)} ${\n\t\t\toptional.length\n\t\t} optional feature${s(optional)} that could be installed.`\n\n\t\tconst mixedMessage = `I found ${required.length} required and ${\n\t\t\toptional.length\n\t\t} optional feature${s(optional)} to install.`\n\n\t\tlet message = mixedMessage\n\n\t\tif (optional.length === 0) {\n\t\t\tmessage = requiredMessage\n\t\t} else if (optional.length > 0 && required.length === 0) {\n\t\t\tmessage = optionalMessage\n\t\t}\n\n\t\treturn `Before you can run \\`${this.getCommandName()}\\`, ${message} Don't worry, I'll walk you through it!`\n\t}\n}\n\ntype FeatureCommandExecuteOptions<\n\tF extends FeatureCode,\n\tS extends Schema | undefined = FeatureMap[F]['optionsSchema'],\n> = S extends Schema ? SchemaPartialValues<S> : undefined\n\ntype FeatureDependencyWithFeature = FeatureDependency & {\n\tfeature: AbstractFeature\n}\n\nfunction s(array: any[]) {\n\treturn array.length === 1 ? '' : ''\n}\n\nfunction areIs(array: any[]) {\n\treturn array.length === 1 ? 'is' : 'are'\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ActionQuestionAsker.js","names":["_merge","_interopRequireDefault","require","_FormComponent","_constants","_SpruceError","_form","_feature","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","ActionOptionAsker","exports","options","_classCallCheck2","ui","featureInstaller","actionCode","feature","shouldAutoHandleDependencies","_createClass2","key","value","_installOrMarkAsSkippedMissingDependencies","_asyncToGenerator2","_regenerator","mark","_callee","notInstalled","response","installCount","toInstall","wasInstalled","installResults","wrap","_callee$","_context","prev","next","getDependenciesNotInstalled","sent","renderLine","generateConfirmInstallMessage","shift","Error","isInstalled","code","isMarkedAsSkipped","installOrMarkAsSkippedMissingDependency","merge","clear","waitForEnter","concat","getCommandName","abrupt","stop","installOrMarkAsSkippedMissingDependencies","_getDependenciesNotInstalled","_callee3","_this","dependencies","installedStatuses","_callee3$","_context3","getFeatureDependencies","Promise","all","map","_ref","_callee2","dependency","_callee2$","_context2","getFeature","_x","_askAboutMissingFeatureOptionsIfFeatureIsNotInstalled","_callee4","installOptions","answers","_callee4$","_context4","optionsSchema","collectAnswers","askAboutMissingFeatureOptionsIfFeatureIsNotInstalled","_x2","_x3","_askAboutMissingActionOptions","_callee5","action","schema","_callee5$","_context5","askAboutMissingActionOptions","_x4","_x5","_installOurFeature","_callee6","_this2","isFirstUpdate","_callee6$","_context6","SpruceError","featureCode","friendlyMessage","install","installFeatureDependencies","features","didUpdateHandler","message","renderHeading","startLoading","stopLoading","installOurFeature","_x6","renderHero","CLI_HERO","renderHeadline","_installOrMarkAsSkippedMissingDependency","_callee7","_this3","isRequired","confirm","installResponse","_callee7$","_context7","nameReadable","command","prompt","type","defaultValue","label","choices","markAsSkippedThisRun","markAsPermanentlySkipped","undefined","_x7","_collectAnswers","_callee8","_schema$fields","cleaned","fieldNames","providedFieldNames","fieldsToPresent","featureForm","_callee8$","_context8","fields","name","_schema$fields2","_schema$fields3","indexOf","isPrivate","FormComponent","initialValues","onWillAskQuestion","formUtil","onWillAskQuestionHandler","bind","present","showOverview","_x8","_x9","featuresUtil","generateCommand","required","optional","feat","requiredMessage","s","optionalMessage","areIs","mixedMessage","array"],"sources":["../../src/features/ActionQuestionAsker.ts"],"sourcesContent":["import { Schema, SchemaValues, SchemaPartialValues } from '@sprucelabs/schema'\nimport merge from 'lodash/merge'\nimport FormComponent from '../components/FormComponent'\nimport { CLI_HERO } from '../constants'\nimport SpruceError from '../errors/SpruceError'\nimport { GraphicsInterface } from '../types/cli.types'\nimport formUtil from '../utilities/form.utility'\nimport AbstractFeature, { FeatureDependency } from './AbstractFeature'\nimport featuresUtil from './feature.utilities'\nimport FeatureInstaller from './FeatureInstaller'\nimport {\n\tFeatureCode,\n\tFeatureInstallResponse,\n\tFeatureAction,\n\tFeatureMap,\n} from './features.types'\n\nexport default class ActionOptionAsker<F extends FeatureCode = FeatureCode> {\n\tprivate ui: GraphicsInterface\n\tprivate featureInstaller: FeatureInstaller\n\tprivate actionCode: string\n\tprivate feature: AbstractFeature\n\tprivate shouldAutoHandleDependencies = true\n\n\tpublic constructor(options: {\n\t\tui: GraphicsInterface\n\t\tfeatureInstaller: FeatureInstaller\n\t\tactionCode: string\n\t\tfeature: AbstractFeature\n\t\tshouldAutoHandleDependencies: boolean\n\t}) {\n\t\tthis.ui = options.ui\n\t\tthis.featureInstaller = options.featureInstaller\n\t\tthis.actionCode = options.actionCode\n\t\tthis.feature = options.feature\n\t\tthis.shouldAutoHandleDependencies = options.shouldAutoHandleDependencies\n\t}\n\n\tpublic async installOrMarkAsSkippedMissingDependencies(): Promise<FeatureInstallResponse> {\n\t\tconst notInstalled = await this.getDependenciesNotInstalled()\n\n\t\tlet response: FeatureInstallResponse = {}\n\t\tlet installCount = 0\n\n\t\tif (notInstalled.length > 0) {\n\t\t\tthis.ui.renderLine(\n\t\t\t\tthis.generateConfirmInstallMessage(notInstalled) + '\\n'\n\t\t\t)\n\n\t\t\twhile (notInstalled.length > 0) {\n\t\t\t\tconst toInstall = notInstalled.shift()\n\t\t\t\tif (!toInstall) {\n\t\t\t\t\t// for typescript\n\t\t\t\t\tthrow new Error('Dependent feature error')\n\t\t\t\t}\n\n\t\t\t\tconst wasInstalled = await this.featureInstaller.isInstalled(\n\t\t\t\t\ttoInstall.code\n\t\t\t\t)\n\n\t\t\t\tif (\n\t\t\t\t\t!wasInstalled &&\n\t\t\t\t\t!this.featureInstaller.isMarkedAsSkipped(toInstall.code)\n\t\t\t\t) {\n\t\t\t\t\tconst installResults =\n\t\t\t\t\t\tawait this.installOrMarkAsSkippedMissingDependency(toInstall)\n\t\t\t\t\tresponse = merge(response, installResults)\n\t\t\t\t\tinstallCount++\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (installCount > 0) {\n\t\t\t\tthis.ui.clear()\n\n\t\t\t\tawait this.ui.waitForEnter(\n\t\t\t\t\t`Phew, now that we're done with that, lets get back to ${this.getCommandName()}!`\n\t\t\t\t)\n\n\t\t\t\tthis.ui.clear()\n\t\t\t}\n\t\t}\n\n\t\treturn response\n\t}\n\n\tprivate async getDependenciesNotInstalled(): Promise<\n\t\tFeatureDependencyWithFeature[]\n\t> {\n\t\tconst dependencies = this.featureInstaller.getFeatureDependencies(\n\t\t\tthis.feature.code\n\t\t)\n\n\t\tconst installedStatuses = await Promise.all(\n\t\t\tdependencies.map(async (dependency) => {\n\t\t\t\tconst feature = this.featureInstaller.getFeature(dependency.code)\n\n\t\t\t\tconst isInstalled = await this.featureInstaller.isInstalled(\n\t\t\t\t\tdependency.code\n\t\t\t\t)\n\n\t\t\t\tconst isMarkedAsSkipped = this.featureInstaller.isMarkedAsSkipped(\n\t\t\t\t\tfeature.code\n\t\t\t\t)\n\n\t\t\t\tif (isMarkedAsSkipped) {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\n\t\t\t\treturn !isInstalled ? { feature, ...dependency } : null\n\t\t\t})\n\t\t)\n\n\t\tconst notInstalled = installedStatuses.filter(\n\t\t\t(feature) => !!feature\n\t\t) as FeatureDependencyWithFeature[]\n\n\t\treturn notInstalled\n\t}\n\n\tpublic async askAboutMissingFeatureOptionsIfFeatureIsNotInstalled(\n\t\tisInstalled: boolean,\n\t\toptions: (Record<string, any> & FeatureCommandExecuteOptions<F>) | undefined\n\t) {\n\t\tlet installOptions = { ...options }\n\n\t\tif (!isInstalled) {\n\t\t\tif (this.feature.optionsSchema) {\n\t\t\t\tconst answers = await this.collectAnswers(\n\t\t\t\t\tthis.feature.optionsSchema,\n\t\t\t\t\toptions\n\t\t\t\t)\n\n\t\t\t\tinstallOptions = { ...installOptions, ...answers }\n\t\t\t}\n\t\t}\n\t\treturn installOptions\n\t}\n\n\tpublic async askAboutMissingActionOptions(\n\t\taction: FeatureAction<Schema>,\n\t\toptions: (Record<string, any> & FeatureCommandExecuteOptions<F>) | undefined\n\t) {\n\t\tlet answers\n\n\t\tconst schema = action.optionsSchema\n\t\tif (schema) {\n\t\t\tanswers = await this.collectAnswers(schema, options)\n\t\t}\n\t\treturn answers\n\t}\n\n\tpublic async installOurFeature(installOptions: Record<string, any>) {\n\t\tif (!this.shouldAutoHandleDependencies) {\n\t\t\tthrow new SpruceError({\n\t\t\t\tcode: 'FEATURE_NOT_INSTALLED',\n\t\t\t\tfeatureCode: this.feature.code,\n\t\t\t\tfriendlyMessage: `You need to install the \\`${this.feature.code}\\` feature.`,\n\t\t\t})\n\t\t}\n\n\t\tlet isFirstUpdate = true\n\n\t\tconst installResults = await this.featureInstaller.install({\n\t\t\tinstallFeatureDependencies: false,\n\t\t\tfeatures: [\n\t\t\t\t{\n\t\t\t\t\tcode: this.feature.code as any,\n\t\t\t\t\toptions: installOptions as any,\n\t\t\t\t},\n\t\t\t],\n\t\t\tdidUpdateHandler: (message) => {\n\t\t\t\tif (isFirstUpdate) {\n\t\t\t\t\tthis.renderHeading(this.feature.code)\n\t\t\t\t\tisFirstUpdate = false\n\t\t\t\t}\n\t\t\t\tthis.ui.startLoading(message)\n\t\t\t},\n\t\t})\n\n\t\tthis.ui.stopLoading()\n\n\t\treturn installResults\n\t}\n\n\tprivate renderHeading(code: string) {\n\t\tthis.ui.clear()\n\t\tthis.ui.renderHero(CLI_HERO)\n\t\tthis.ui.renderHeadline(`Installing ${code} feature...`)\n\t}\n\n\tprivate async installOrMarkAsSkippedMissingDependency(\n\t\ttoInstall: FeatureDependencyWithFeature\n\t): Promise<FeatureInstallResponse> {\n\t\tconst { feature, isRequired } = toInstall\n\n\t\tif (isRequired) {\n\t\t\tconst confirm = await this.ui.confirm(\n\t\t\t\t`Install the ${feature.nameReadable} feature?`\n\t\t\t)\n\n\t\t\tif (!confirm) {\n\t\t\t\tthrow new SpruceError({\n\t\t\t\t\tcode: 'COMMAND_ABORTED',\n\t\t\t\t\tcommand: this.getCommandName(),\n\t\t\t\t})\n\t\t\t}\n\t\t} else {\n\t\t\tconst response = await this.ui.prompt({\n\t\t\t\ttype: 'select',\n\t\t\t\tdefaultValue: 'yes',\n\t\t\t\tlabel: `Install the ${feature.nameReadable} feature? (optional)`,\n\t\t\t\toptions: {\n\t\t\t\t\tchoices: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvalue: 'yes',\n\t\t\t\t\t\t\tlabel: 'Yes',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvalue: 'skip',\n\t\t\t\t\t\t\tlabel: 'Skip',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvalue: 'alwaysSkip',\n\t\t\t\t\t\t\tlabel: 'Always skip',\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\tif (response !== 'yes') {\n\t\t\t\tthis.ui.renderLine(\n\t\t\t\t\tresponse === 'alwaysSkip'\n\t\t\t\t\t\t? 'Skipping forever!'\n\t\t\t\t\t\t: 'Cool, skipping for now.'\n\t\t\t\t)\n\n\t\t\t\tif (response === 'skip') {\n\t\t\t\t\tthis.featureInstaller.markAsSkippedThisRun(feature.code)\n\t\t\t\t} else {\n\t\t\t\t\tthis.featureInstaller.markAsPermanentlySkipped(feature.code)\n\t\t\t\t}\n\n\t\t\t\tconst installResponse: FeatureInstallResponse = {}\n\t\t\t\treturn installResponse\n\t\t\t}\n\t\t}\n\n\t\tlet installOptions = {}\n\n\t\tif (feature.optionsSchema) {\n\t\t\tinstallOptions = await this.collectAnswers(\n\t\t\t\tfeature.optionsSchema,\n\t\t\t\tundefined\n\t\t\t)\n\t\t}\n\n\t\tif (!this.shouldAutoHandleDependencies) {\n\t\t\tthrow new SpruceError({\n\t\t\t\tcode: 'FEATURE_NOT_INSTALLED',\n\t\t\t\tfeatureCode: this.feature.code,\n\t\t\t\tfriendlyMessage: `You need to install the \\`${this.feature.code}\\` feature.`,\n\t\t\t})\n\t\t}\n\n\t\tlet isFirstUpdate = true\n\n\t\tconst installResults = await this.featureInstaller.install({\n\t\t\tinstallFeatureDependencies: false,\n\t\t\tdidUpdateHandler: (message: string) => {\n\t\t\t\tif (isFirstUpdate) {\n\t\t\t\t\tthis.renderHeading(this.feature.code)\n\t\t\t\t\tisFirstUpdate = false\n\t\t\t\t}\n\t\t\t\tthis.ui.startLoading(message)\n\t\t\t},\n\t\t\tfeatures: [\n\t\t\t\t{\n\t\t\t\t\tcode: feature.code as any,\n\t\t\t\t\toptions: installOptions as any,\n\t\t\t\t},\n\t\t\t],\n\t\t})\n\n\t\tthis.ui.stopLoading()\n\n\t\treturn installResults\n\t}\n\n\tprivate async collectAnswers<S extends Schema>(\n\t\tschema: S,\n\t\toptions: FeatureCommandExecuteOptions<F, S> | undefined\n\t) {\n\t\tconst cleaned: Record<string, any> = {}\n\t\tObject.keys(options ?? {}).forEach((key) => {\n\t\t\t//@ts-ignore\n\t\t\tif (typeof options[key] !== 'undefined') {\n\t\t\t\t//@ts-ignore\n\t\t\t\tcleaned[key] = options[key]\n\t\t\t}\n\t\t})\n\n\t\tconst fieldNames = Object.keys(schema.fields ?? {})\n\t\tconst providedFieldNames = cleaned ? Object.keys(cleaned ?? {}) : []\n\t\tconst fieldsToPresent = fieldNames.filter(\n\t\t\t(name) =>\n\t\t\t\tprovidedFieldNames.indexOf(name) === -1 &&\n\t\t\t\tschema.fields?.[name].isRequired === true &&\n\t\t\t\tschema.fields?.[name].isPrivate !== true\n\t\t)\n\n\t\tlet answers = {}\n\t\tif (fieldsToPresent.length > 0) {\n\t\t\tconst featureForm = new FormComponent<S>({\n\t\t\t\tui: this.ui,\n\t\t\t\tschema,\n\t\t\t\t//@ts-ignore\n\t\t\t\tinitialValues: cleaned,\n\t\t\t\tonWillAskQuestion: formUtil.onWillAskQuestionHandler.bind(\n\t\t\t\t\tformUtil\n\t\t\t\t) as any,\n\t\t\t})\n\n\t\t\tanswers = await featureForm.present({\n\t\t\t\tshowOverview: false,\n\t\t\t\t// @ts-ignore\n\t\t\t\tfields: fieldsToPresent,\n\t\t\t})\n\t\t}\n\n\t\treturn { ...(cleaned ?? {}), ...answers } as SchemaValues<S>\n\t}\n\n\tprivate getCommandName() {\n\t\treturn featuresUtil.generateCommand(this.feature.code, this.actionCode)\n\t}\n\n\tprivate generateConfirmInstallMessage(\n\t\tnotInstalled: FeatureDependencyWithFeature[]\n\t): string {\n\t\tconst required: FeatureDependencyWithFeature[] = []\n\t\tconst optional: FeatureDependencyWithFeature[] = []\n\n\t\tnotInstalled.forEach((feat) => {\n\t\t\tif (feat.isRequired) {\n\t\t\t\trequired.push(feat)\n\t\t\t} else {\n\t\t\t\toptional.push(feat)\n\t\t\t}\n\t\t})\n\n\t\tconst requiredMessage = `I'll need to install ${required.length} feature${s(\n\t\t\trequired\n\t\t)}.`\n\n\t\tconst optionalMessage = `there ${areIs(optional)} ${\n\t\t\toptional.length\n\t\t} optional feature${s(optional)} that could be installed.`\n\n\t\tconst mixedMessage = `I found ${required.length} required and ${\n\t\t\toptional.length\n\t\t} optional feature${s(optional)} to install.`\n\n\t\tlet message = mixedMessage\n\n\t\tif (optional.length === 0) {\n\t\t\tmessage = requiredMessage\n\t\t} else if (optional.length > 0 && required.length === 0) {\n\t\t\tmessage = optionalMessage\n\t\t}\n\n\t\treturn `Before you can run \\`${this.getCommandName()}\\`, ${message} Don't worry, I'll walk you through it!`\n\t}\n}\n\ntype FeatureCommandExecuteOptions<\n\tF extends FeatureCode,\n\tS extends Schema | undefined = FeatureMap[F]['optionsSchema'],\n> = S extends Schema ? SchemaPartialValues<S> : undefined\n\ntype FeatureDependencyWithFeature = FeatureDependency & {\n\tfeature: AbstractFeature\n}\n\nfunction s(array: any[]) {\n\treturn array.length === 1 ? '' : ''\n}\n\nfunction areIs(array: any[]) {\n\treturn array.length === 1 ? 'is' : 'are'\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -34,7 +34,7 @@ var FeatureCommandAttacher = exports["default"] = /*#__PURE__*/function () {
|
|
|
34
34
|
this.ui = term;
|
|
35
35
|
this.actionExecuter = actionExecuter;
|
|
36
36
|
}
|
|
37
|
-
(0, _createClass2["default"])(FeatureCommandAttacher, [{
|
|
37
|
+
return (0, _createClass2["default"])(FeatureCommandAttacher, [{
|
|
38
38
|
key: "attachFeature",
|
|
39
39
|
value: function () {
|
|
40
40
|
var _attachFeature = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(feature) {
|
|
@@ -181,6 +181,5 @@ var FeatureCommandAttacher = exports["default"] = /*#__PURE__*/function () {
|
|
|
181
181
|
});
|
|
182
182
|
}
|
|
183
183
|
}]);
|
|
184
|
-
return FeatureCommandAttacher;
|
|
185
184
|
}();
|
|
186
185
|
//# sourceMappingURL=FeatureCommandAttacher.js.map
|