@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TerminalInterface.js","names":["_path","_interopRequireDefault","require","_error","_globby","_schema","_spruceSkillUtils","_cfonts","_chalk","_cliTable","_emphasize","_fsExtra","_inquirer","_lodash","_interopRequireWildcard","_ora","_terminalKit","_SpruceError","_feature","_graphicsInterface","_duration","_isCi","_process","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","_createForOfIteratorHelper","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","F","s","done","value","_e","f","TypeError","normalCompletion","didErr","err","step","next","_e2","minLen","_arrayLikeToArray","toString","slice","constructor","name","from","test","arr","len","arr2","terminalImage","fieldCount","generateInquirerFieldName","concat","filterEffectsForCFonts","effects","effect","GraphicsTextEffect","SpruceHeader","Reset","Bold","Dim","Italic","Underline","Inverse","Hidden","Strikethrough","Visible","indexOf","TerminalInterface","exports","cwd","renderStackTraces","undefined","log","console","bind","_classCallCheck2","_createClass2","key","_sendInput","_asyncToGenerator2","_regenerator","mark","_callee","wrap","_callee$","_context","prev","Error","stop","sendInput","renderLines","lines","_this","line","renderLine","renderObject","object","_this2","Green","renderDivider","chalk","bold","JSON","stringify","renderSection","options","headline","_options$dividerEffec","dividerEffects","_options$headlineEffe","headlineEffects","Blue","_options$bodyEffects","bodyEffects","renderHeadline","bar","renderActionSummary","results","_results$files$filter","_results$files","_results$files$filter2","_results$files2","_results$files$filter3","_results$files3","_results$errors","_results$packagesInst","_results$summaryLines","_this3","generatedFiles","files","action","updatedFiles","skippedFiles","errors","packagesInstalled","renderHero","summaryLines","_toConsumableArray2","featuresUtil","generateCommand","featureCode","actionCode","table","Table","head","colWidths","wordWrap","colAligns","sort","one","two","pkg","isDev","_i","_arr","_iterator","_step","_file$description","file","description","namesUtil","toPascal","hints","renderError","totalTime","durationUtil","msToFriendly","message","isSpruce","fonts","say","font","align","space","colors","setTitle","title","process","stdout","write","shouldStripVowels","columns","stripped","replace","toLowerCase","gradient","Red","renderHint","eraseBeforeRender","terminal","eraseLine","renderWarning","Yellow","_startLoading","_callee2","_callee2$","_context2","stopLoading","loader","ora","text","start","startLoading","_x","_stopLoading","_callee3","_TerminalInterface$lo","_callee3$","_context3","_confirm","_callee4","question","confirmResult","_callee4$","_context4","inquirer","prompt","type","sent","abrupt","answer","confirm","_x2","_waitForEnter","_callee5","_callee5$","_context5","label","bgGreenBright","black","waitForEnter","_x3","clear","renderCodeSample","code","colored","emphasize","highlight","_prompt","_callee6","definition","fieldDefinition","defaultValue","promptOptions","field","_fieldDefinition$defa","_fieldDefinition$defa2","dirPath","_fieldDefinition$defa3","_fieldDefinition$defa4","_dirPath","response","result","_callee6$","_context6","isPromptActive","generatePromptLabel","FieldFactory","Field","transformer","toValueType","validate","areSchemaValuesValid","id","fields","t0","choices","map","choice","checked","_","includes","SpruceError","friendlyMessage","path","join","root","onlyShowDir","fs","existsSync","lstatSync","isDirectory","cleanedPath","uri","globby","directory","extname","_x4","hint","italic","dim","stackLines","cleanStack","splice","stack","AbstractSpruceError","original","originalError","split","renderProgressBar","removeProgressBar","progressBar","percent","showPercent","eta","showEta","items","totalItems","inline","renderInline","updateProgressBar","update","_renderImage","_callee7","image","_callee7$","_context7","renderImage","_x5","_x6","_getCursorPosition","_callee8","_callee8$","_context8","Promise","resolve","requestCursorLocation","getCursorLocation","x","y","getCursorPosition","saveCursor","restoreCursor","moveCursorTo","moveTo","clearBelowCursor","eraseDisplayBelow","doesSupportColor","_doesSupportColor","setDoesSupportColor","isTTy","isTTY","isCi"],"sources":["../../src/interfaces/TerminalInterface.ts"],"sourcesContent":["import path from 'path'\nimport AbstractSpruceError from '@sprucelabs/error'\nimport globby from '@sprucelabs/globby'\nimport {\n\tFieldFactory,\n\tFieldDefinitionValueType,\n\tareSchemaValuesValid,\n} from '@sprucelabs/schema'\nimport { IField } from '@sprucelabs/schema'\nimport { namesUtil } from '@sprucelabs/spruce-skill-utils'\n// @ts-ignore\nimport fonts from 'cfonts'\nimport chalk from 'chalk'\n// @ts-ignore No definition available\nimport Table from 'cli-table3'\n// @ts-ignore No definition available\nimport emphasize from 'emphasize'\nimport fs from 'fs-extra'\nimport inquirer from 'inquirer'\nimport _ from 'lodash'\nimport { filter } from 'lodash'\nimport ora from 'ora'\nimport { terminal } from 'terminal-kit'\nimport { ProgressBarController } from 'terminal-kit/Terminal'\nimport { FieldDefinitions } from '#spruce/schemas/fields/fields.types'\nimport SpruceError from '../errors/SpruceError'\nimport featuresUtil from '../features/feature.utilities'\nimport { ExecutionResults, GraphicsInterface } from '../types/cli.types'\nimport {\n\tGraphicsTextEffect,\n\tImageDimensions,\n\tProgressBarOptions,\n\tProgressBarUpdateOptions,\n} from '../types/graphicsInterface.types'\nimport durationUtil from '../utilities/duration.utility'\nimport isCi from '../utilities/isCi'\nconst terminalImage = require('terminal-image')\n\nlet fieldCount = 0\nfunction generateInquirerFieldName() {\n\tfieldCount++\n\treturn `field-${fieldCount}`\n}\n\n/** Remove effects cfonts does not support */\nfunction filterEffectsForCFonts(effects: GraphicsTextEffect[]) {\n\treturn filter(\n\t\teffects,\n\t\t(effect) =>\n\t\t\t[\n\t\t\t\tGraphicsTextEffect.SpruceHeader,\n\t\t\t\tGraphicsTextEffect.Reset,\n\t\t\t\tGraphicsTextEffect.Bold,\n\t\t\t\tGraphicsTextEffect.Dim,\n\t\t\t\tGraphicsTextEffect.Italic,\n\t\t\t\tGraphicsTextEffect.Underline,\n\t\t\t\tGraphicsTextEffect.Inverse,\n\t\t\t\tGraphicsTextEffect.Hidden,\n\t\t\t\tGraphicsTextEffect.Strikethrough,\n\t\t\t\tGraphicsTextEffect.Visible,\n\t\t\t].indexOf(effect) === -1\n\t)\n}\n\ntype TerminalSpecificOptions = {\n\teraseBeforeRender?: boolean\n}\n\nexport default class TerminalInterface implements GraphicsInterface {\n\tpublic isPromptActive = false\n\tpublic cwd: string\n\tprivate renderStackTraces = false\n\tprivate static loader?: ora.Ora | null\n\tprivate progressBar: ProgressBarController | null = null\n\tprivate static _doesSupportColor = process?.stdout?.isTTY && !isCi()\n\tprivate log: (...args: any[]) => void\n\n\tpublic constructor(\n\t\tcwd: string,\n\t\trenderStackTraces = false,\n\t\tlog = console.log.bind(console)\n\t) {\n\t\tthis.cwd = cwd\n\t\tthis.renderStackTraces = renderStackTraces\n\t\tthis.log = log\n\t}\n\n\tpublic static doesSupportColor() {\n\t\treturn this._doesSupportColor\n\t}\n\n\tpublic static setDoesSupportColor(isTTy: boolean) {\n\t\tthis._doesSupportColor = isTTy\n\t}\n\n\tpublic async sendInput(): Promise<void> {\n\t\tthrow new Error('sendInput not supported on the TerminalInterface!')\n\t}\n\n\tpublic renderLines(lines: any[], effects?: GraphicsTextEffect[]) {\n\t\tlines.forEach((line) => {\n\t\t\tthis.renderLine(line, effects)\n\t\t})\n\t}\n\n\tpublic renderObject(\n\t\tobject: Record<string, any>,\n\t\teffects: GraphicsTextEffect[] = [GraphicsTextEffect.Green]\n\t) {\n\t\tthis.renderLine('')\n\t\tthis.renderDivider()\n\t\tthis.renderLine('')\n\t\tObject.keys(object).forEach((key) => {\n\t\t\tthis.renderLine(\n\t\t\t\t`${chalk.bold(key)}: ${\n\t\t\t\t\ttypeof object[key] === 'string'\n\t\t\t\t\t\t? object[key]\n\t\t\t\t\t\t: JSON.stringify(object[key])\n\t\t\t\t}`,\n\t\t\t\teffects\n\t\t\t)\n\t\t})\n\t\tthis.renderLine('')\n\t\tthis.renderDivider()\n\t\tthis.renderLine('')\n\t}\n\n\tpublic renderSection(options: {\n\t\theadline?: string\n\t\tlines?: string[]\n\t\tobject?: Record<string, any>\n\t\theadlineEffects?: GraphicsTextEffect[]\n\t\tbodyEffects?: GraphicsTextEffect[]\n\t\tdividerEffects?: GraphicsTextEffect[]\n\t}) {\n\t\tconst {\n\t\t\theadline,\n\t\t\tlines,\n\t\t\tobject,\n\t\t\tdividerEffects = [],\n\t\t\theadlineEffects = [GraphicsTextEffect.Blue, GraphicsTextEffect.Bold],\n\t\t\tbodyEffects = [GraphicsTextEffect.Green],\n\t\t} = options\n\n\t\tif (headline) {\n\t\t\tthis.renderHeadline(`${headline} 🌲🤖`, headlineEffects, dividerEffects)\n\t\t}\n\n\t\tif (lines) {\n\t\t\tthis.renderLines(lines, bodyEffects)\n\n\t\t\tthis.renderLine('')\n\t\t\tthis.renderDivider(dividerEffects)\n\t\t}\n\n\t\tif (object) {\n\t\t\tthis.renderObject(object, bodyEffects)\n\t\t}\n\n\t\tthis.renderLine('')\n\t}\n\n\tpublic renderDivider(effects?: GraphicsTextEffect[]) {\n\t\tconst bar = '=================================================='\n\t\tthis.renderLine(bar, effects)\n\t}\n\n\tpublic renderActionSummary(\n\t\tresults: ExecutionResults & { totalTime?: number }\n\t) {\n\t\tconst generatedFiles =\n\t\t\tresults.files?.filter((f) => f.action === 'generated') ?? []\n\t\tconst updatedFiles =\n\t\t\tresults.files?.filter((f) => f.action === 'updated') ?? []\n\t\tconst skippedFiles =\n\t\t\tresults.files?.filter((f) => f.action === 'skipped') ?? []\n\n\t\tconst errors = results.errors ?? []\n\t\tconst packagesInstalled = results.packagesInstalled ?? []\n\n\t\tthis.renderHero(`${results.headline}`)\n\n\t\tlet summaryLines: string[] = [\n\t\t\terrors.length > 0 ? `Errors: ${errors.length}` : null,\n\t\t\tgeneratedFiles.length > 0\n\t\t\t\t? `Generated files: ${generatedFiles.length}`\n\t\t\t\t: null,\n\t\t\tupdatedFiles.length > 0 ? `Updated files: ${updatedFiles.length}` : null,\n\t\t\tskippedFiles.length > 0 ? `Skipped files: ${skippedFiles.length}` : null,\n\t\t\tpackagesInstalled.length > 0\n\t\t\t\t? `NPM packages installed: ${packagesInstalled.length}`\n\t\t\t\t: null,\n\t\t\t...(results.summaryLines ?? []),\n\t\t].filter((line) => !!line) as string[]\n\n\t\tif (summaryLines.length === 0) {\n\t\t\tsummaryLines.push('Nothing to report!')\n\t\t}\n\t\tthis.renderSection({\n\t\t\theadline: `${featuresUtil.generateCommand(\n\t\t\t\tresults.featureCode,\n\t\t\t\tresults.actionCode\n\t\t\t)} summary`,\n\t\t\tlines: summaryLines,\n\t\t})\n\n\t\tif (packagesInstalled.length > 0) {\n\t\t\tconst table = new Table({\n\t\t\t\thead: ['Name', 'Dev'],\n\t\t\t\tcolWidths: [40, 5],\n\t\t\t\twordWrap: true,\n\t\t\t\tcolAligns: ['left', 'center'],\n\t\t\t})\n\t\t\tpackagesInstalled\n\t\t\t\t.sort((one, two) => (one.name > two.name ? 1 : -1))\n\t\t\t\t.forEach((pkg) => {\n\t\t\t\t\ttable.push([pkg.name, pkg.isDev ? '√' : ''])\n\t\t\t\t})\n\n\t\t\tthis.renderSection({\n\t\t\t\theadline: `NPM packages summary`,\n\t\t\t\tlines: [table.toString()],\n\t\t\t})\n\t\t}\n\n\t\tfor (let files of [generatedFiles, updatedFiles]) {\n\t\t\tif (files.length > 0) {\n\t\t\t\tconst table = new Table({\n\t\t\t\t\thead: ['File', 'Description'],\n\t\t\t\t\twordWrap: true,\n\t\t\t\t})\n\n\t\t\t\tfiles = files.sort()\n\n\t\t\t\tfor (const file of files) {\n\t\t\t\t\ttable.push([file.name, file.description ?? ''])\n\t\t\t\t}\n\n\t\t\t\tthis.renderSection({\n\t\t\t\t\theadline: `${namesUtil.toPascal(files[0].action)} file summary`,\n\t\t\t\t\tlines: [table.toString()],\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\tif (results.hints) {\n\t\t\tthis.renderSection({\n\t\t\t\theadline: 'Read below 👇',\n\t\t\t\tlines: results.hints,\n\t\t\t})\n\t\t}\n\n\t\tif (errors.length > 0) {\n\t\t\tthis.renderHeadline('Errors')\n\t\t\terrors.forEach((err) => this.renderError(err))\n\t\t}\n\n\t\tif (results.totalTime) {\n\t\t\tthis.renderLine(\n\t\t\t\t`Total time: ${durationUtil.msToFriendly(results.totalTime)}`\n\t\t\t)\n\t\t}\n\t}\n\n\tpublic renderHeadline(\n\t\tmessage: string,\n\t\teffects: GraphicsTextEffect[] = [\n\t\t\tGraphicsTextEffect.Blue,\n\t\t\tGraphicsTextEffect.Bold,\n\t\t],\n\t\tdividerEffects: GraphicsTextEffect[] = []\n\t) {\n\t\tconst isSpruce = effects.indexOf(GraphicsTextEffect.SpruceHeader) > -1\n\n\t\tif (isSpruce) {\n\t\t\tfonts.say(message, {\n\t\t\t\tfont: GraphicsTextEffect.SpruceHeader,\n\t\t\t\talign: 'left',\n\t\t\t\tspace: false,\n\t\t\t\tcolors: filterEffectsForCFonts(effects),\n\t\t\t})\n\t\t} else {\n\t\t\tthis.renderDivider(dividerEffects)\n\t\t\tthis.renderLine(message, effects)\n\t\t\tthis.renderDivider(dividerEffects)\n\t\t\tthis.renderLine('')\n\t\t}\n\t}\n\n\tpublic setTitle(title: string): void {\n\t\tprocess.stdout.write('\\x1b]2;' + title + '\\x07')\n\t}\n\n\tpublic renderHero(message: string, effects?: GraphicsTextEffect[]) {\n\t\tconst shouldStripVowels = process.stdout.columns < 80\n\n\t\tlet stripped = shouldStripVowels\n\t\t\t? message.replace(/[aeiou]/gi, '')\n\t\t\t: message\n\n\t\tif (\n\t\t\tshouldStripVowels &&\n\t\t\t['a', 'e', 'i', 'o', 'u'].indexOf(message[0].toLowerCase()) > -1\n\t\t) {\n\t\t\tstripped = `${message[0]}${stripped}`\n\t\t}\n\n\t\tfonts.say(stripped, {\n\t\t\talign: 'left',\n\t\t\tgradient: [GraphicsTextEffect.Red, GraphicsTextEffect.Blue],\n\t\t\tcolors: effects ? filterEffectsForCFonts(effects) : undefined,\n\t\t})\n\t}\n\n\tpublic renderHint(message: string) {\n\t\treturn this.renderLine(`👨🏫 ${message}`)\n\t}\n\n\tpublic renderLine(\n\t\tmessage: any,\n\t\teffects: GraphicsTextEffect[] = [],\n\t\toptions?: TerminalSpecificOptions\n\t) {\n\t\tlet write: any = chalk\n\t\teffects.forEach((effect) => {\n\t\t\twrite = write[effect]\n\t\t})\n\n\t\tif (options?.eraseBeforeRender) {\n\t\t\tterminal.eraseLine()\n\t\t}\n\n\t\tthis.log(effects.length > 0 ? write(message) : message)\n\t}\n\n\tpublic renderWarning(message: string) {\n\t\tthis.renderLine(`⚠️ ${message}`, [\n\t\t\tGraphicsTextEffect.Bold,\n\t\t\tGraphicsTextEffect.Yellow,\n\t\t])\n\t}\n\n\tpublic async startLoading(message?: string) {\n\t\t// eslint-disable-next-line @typescript-eslint/no-floating-promises\n\t\tthis.stopLoading()\n\t\tTerminalInterface.loader = ora({\n\t\t\ttext: message,\n\t\t}).start()\n\t}\n\n\tpublic async stopLoading() {\n\t\tTerminalInterface.loader?.stop()\n\t\tTerminalInterface.loader = null\n\t}\n\n\tpublic async confirm(question: string): Promise<boolean> {\n\t\tconst confirmResult = await inquirer.prompt({\n\t\t\ttype: 'confirm',\n\t\t\tname: 'answer',\n\t\t\tmessage: question,\n\t\t})\n\n\t\treturn !!confirmResult.answer\n\t}\n\n\tpublic async waitForEnter(message?: string) {\n\t\tawait this.prompt({\n\t\t\ttype: 'text',\n\t\t\tlabel: `${message ? message + ' ' : ''}${chalk.bgGreenBright.black(\n\t\t\t\t'hit enter'\n\t\t\t)}`,\n\t\t})\n\t\tthis.renderLine('')\n\t\treturn\n\t}\n\n\tpublic clear() {\n\t\tvoid this.stopLoading()\n\t\tconsole.clear()\n\t}\n\n\tpublic renderCodeSample(code: string) {\n\t\ttry {\n\t\t\tconst colored = emphasize.highlight('js', code).value\n\t\t\tthis.renderLine(colored)\n\t\t} catch (err: any) {\n\t\t\tthis.renderWarning(err)\n\t\t}\n\t}\n\n\tpublic async prompt<T extends FieldDefinitions>(\n\t\tdefinition: T\n\t): Promise<FieldDefinitionValueType<T>> {\n\t\tthis.isPromptActive = true\n\t\tconst name = generateInquirerFieldName()\n\t\tconst fieldDefinition: FieldDefinitions = definition\n\t\tconst { defaultValue } = fieldDefinition\n\n\t\tconst promptOptions: Record<string, any> = {\n\t\t\tdefault: defaultValue,\n\t\t\tname,\n\t\t\tmessage: this.generatePromptLabel(fieldDefinition),\n\t\t}\n\n\t\tconst field = FieldFactory.Field('prompt', fieldDefinition)\n\n\t\tpromptOptions.transformer = (value: string) => {\n\t\t\treturn (field as IField<any>).toValueType(value)\n\t\t}\n\n\t\tpromptOptions.validate = (value: string) => {\n\t\t\treturn areSchemaValuesValid(\n\t\t\t\t{\n\t\t\t\t\tid: 'promptvalidateschema',\n\t\t\t\t\tfields: {\n\t\t\t\t\t\tprompt: fieldDefinition,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{ prompt: value }\n\t\t\t)\n\t\t\t// return field.validate(value, {}).length === 0\n\t\t}\n\n\t\tswitch (fieldDefinition.type) {\n\t\t\t// Map select options to prompt list choices\n\t\t\tcase 'boolean':\n\t\t\t\tpromptOptions.type = 'confirm'\n\t\t\t\tbreak\n\n\t\t\tcase 'select':\n\t\t\t\tpromptOptions.type = fieldDefinition.isArray ? 'checkbox' : 'list'\n\n\t\t\t\tpromptOptions.choices = fieldDefinition.options.choices.map(\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t(choice) => ({\n\t\t\t\t\t\tname: choice.label,\n\t\t\t\t\t\tvalue: choice.value,\n\t\t\t\t\t\tchecked: _.includes(fieldDefinition.defaultValue, choice.value),\n\t\t\t\t\t})\n\t\t\t\t)\n\n\t\t\t\tbreak\n\t\t\t// Directory select\n\t\t\t// File select\n\t\t\tcase 'directory': {\n\t\t\t\tif (fieldDefinition.isArray) {\n\t\t\t\t\tthrow new SpruceError({\n\t\t\t\t\t\tcode: 'NOT_IMPLEMENTED',\n\t\t\t\t\t\tfriendlyMessage:\n\t\t\t\t\t\t\t'isArray file field not supported, prompt needs to be rewritten with isArray support',\n\t\t\t\t\t})\n\t\t\t\t}\n\n\t\t\t\tconst dirPath = path.join(\n\t\t\t\t\tfieldDefinition.defaultValue?.path ?? this.cwd,\n\t\t\t\t\t'/'\n\t\t\t\t)\n\n\t\t\t\tpromptOptions.type = 'file'\n\t\t\t\tpromptOptions.root = dirPath\n\t\t\t\tpromptOptions.onlyShowDir = true\n\n\t\t\t\t// Only let people select an actual file\n\t\t\t\tpromptOptions.validate = (value: string) => {\n\t\t\t\t\treturn fs.existsSync(value) && fs.lstatSync(value).isDirectory()\n\t\t\t\t}\n\t\t\t\t// Strip out cwd from the paths while selecting\n\t\t\t\tpromptOptions.transformer = (path: string) => {\n\t\t\t\t\tconst cleanedPath = path.replace(promptOptions.root, '')\n\t\t\t\t\treturn cleanedPath.length === 0 ? promptOptions.root : cleanedPath\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tcase 'file': {\n\t\t\t\tif (fieldDefinition.isArray) {\n\t\t\t\t\tthrow new SpruceError({\n\t\t\t\t\t\tcode: 'NOT_IMPLEMENTED',\n\t\t\t\t\t\tfriendlyMessage:\n\t\t\t\t\t\t\t'isArray file field not supported, prompt needs to be rewritten with isArray support',\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tconst dirPath = path.join(\n\t\t\t\t\tfieldDefinition.defaultValue?.uri ?? this.cwd,\n\t\t\t\t\t'/'\n\t\t\t\t)\n\n\t\t\t\t// Check if directory is empty.\n\t\t\t\tconst files = await globby(`${dirPath}**/*`)\n\n\t\t\t\tif (files.length === 0) {\n\t\t\t\t\tthrow new SpruceError({\n\t\t\t\t\t\tcode: 'DIRECTORY_EMPTY',\n\t\t\t\t\t\tdirectory: dirPath,\n\t\t\t\t\t\tfriendlyMessage: `I wanted to help you select a file, but none exist in ${dirPath}.`,\n\t\t\t\t\t})\n\t\t\t\t}\n\n\t\t\t\tpromptOptions.type = 'file'\n\t\t\t\tpromptOptions.root = dirPath\n\n\t\t\t\t// Only let people select an actual file\n\t\t\t\tpromptOptions.validate = (value: string) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\tfs.existsSync(value) &&\n\t\t\t\t\t\t!fs.lstatSync(value).isDirectory() &&\n\t\t\t\t\t\tpath.extname(value) === '.ts'\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\t// Strip out cwd from the paths while selecting\n\t\t\t\tpromptOptions.transformer = (path: string) => {\n\t\t\t\t\tconst cleanedPath = path.replace(promptOptions.root, '')\n\t\t\t\t\treturn cleanedPath.length === 0 ? promptOptions.root : cleanedPath\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\t// Defaults to input\n\t\t\tdefault:\n\t\t\t\tpromptOptions.type = 'input'\n\t\t}\n\n\t\tconst response = (await inquirer.prompt(promptOptions)) as any\n\n\t\tthis.isPromptActive = false\n\n\t\tconst result =\n\t\t\ttypeof response[name] !== 'undefined'\n\t\t\t\t? (field as IField<any>).toValueType(response[name])\n\t\t\t\t: response[name]\n\n\t\treturn result\n\t}\n\tprivate generatePromptLabel(fieldDefinition: FieldDefinitions): any {\n\t\tlet label = fieldDefinition.label\n\n\t\tif (fieldDefinition.hint) {\n\t\t\tlabel = `${label} ${chalk.italic.dim(`(${fieldDefinition.hint})`)}`\n\t\t}\n\n\t\tlabel = label + ': '\n\n\t\treturn label\n\t}\n\n\tpublic renderError(err: Error) {\n\t\t// eslint-disable-next-line @typescript-eslint/no-floating-promises\n\t\tthis.stopLoading()\n\n\t\tconst message = err.message\n\t\t// Remove message from stack so the message is not doubled up\n\t\tconst stackLines = this.cleanStack(err)\n\t\tthis.renderSection({\n\t\t\theadline: message,\n\t\t\tlines: this.renderStackTraces ? stackLines.splice(0, 100) : undefined,\n\t\t\theadlineEffects: [GraphicsTextEffect.Bold, GraphicsTextEffect.Red],\n\t\t\tdividerEffects: [GraphicsTextEffect.Red],\n\t\t\tbodyEffects: [GraphicsTextEffect.Red],\n\t\t})\n\t}\n\n\tprivate cleanStack(err: Error) {\n\t\tconst message = err.message\n\t\tlet stack = err.stack ? err.stack.replace(message, '') : ''\n\n\t\tif (err instanceof AbstractSpruceError) {\n\t\t\tlet original = err.originalError\n\t\t\twhile (original) {\n\t\t\t\tstack = stack.replace('Error: ' + original.message, '')\n\t\t\t\toriginal = (original as AbstractSpruceError).originalError\n\t\t\t}\n\t\t}\n\n\t\tconst stackLines = stack.split('\\n')\n\n\t\treturn stackLines\n\t}\n\n\tpublic renderProgressBar(options: ProgressBarOptions): void {\n\t\tthis.removeProgressBar()\n\t\tthis.progressBar = terminal.progressBar({\n\t\t\t...options,\n\t\t\tpercent: options.showPercent,\n\t\t\teta: options.showEta,\n\t\t\titems: options.totalItems,\n\t\t\tinline: options.renderInline,\n\t\t})\n\t}\n\n\tpublic removeProgressBar() {\n\t\tif (this.progressBar) {\n\t\t\tthis.progressBar.stop()\n\t\t\tthis.progressBar = null\n\t\t}\n\t}\n\n\tpublic updateProgressBar(options: ProgressBarUpdateOptions): void {\n\t\tif (this.progressBar) {\n\t\t\tthis.progressBar.update({\n\t\t\t\t...options,\n\t\t\t\titems: options.totalItems,\n\t\t\t})\n\t\t}\n\t}\n\n\tpublic async renderImage(\n\t\tpath: string,\n\t\toptions?: ImageDimensions\n\t): Promise<void> {\n\t\tconst image = await terminalImage.file(path, options)\n\t\tthis.renderLine(image)\n\t}\n\n\tpublic async getCursorPosition(): Promise<{ x: number; y: number } | null> {\n\t\treturn new Promise((resolve) => {\n\t\t\tterminal.requestCursorLocation()\n\t\t\tterminal.getCursorLocation((err, x, y) => {\n\t\t\t\tresolve(err ? null : { x: x ?? 0, y: y ?? 0 })\n\t\t\t})\n\t\t})\n\t}\n\n\tpublic saveCursor() {\n\t\tterminal.saveCursor()\n\t}\n\n\tpublic restoreCursor() {\n\t\tterminal.restoreCursor()\n\t}\n\n\tpublic moveCursorTo(x: number, y: number): void {\n\t\tterminal.moveTo(x, y)\n\t}\n\n\tpublic clearBelowCursor(): void {\n\t\tterminal.eraseDisplayBelow()\n\t}\n\n\tpublic eraseLine() {\n\t\tterminal.eraseLine()\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"TerminalInterface.js","names":["_path","_interopRequireDefault","require","_error","_globby","_schema","_spruceSkillUtils","_cfonts","_chalk","_cliTable","_emphasize","_fsExtra","_inquirer","_lodash","_interopRequireWildcard","_ora","_terminalKit","_SpruceError","_feature","_graphicsInterface","_duration","_isCi","_process","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","_createForOfIteratorHelper","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","F","s","done","value","_e","f","TypeError","normalCompletion","didErr","err","step","next","_e2","minLen","_arrayLikeToArray","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","terminalImage","fieldCount","generateInquirerFieldName","concat","filterEffectsForCFonts","effects","effect","GraphicsTextEffect","SpruceHeader","Reset","Bold","Dim","Italic","Underline","Inverse","Hidden","Strikethrough","Visible","indexOf","TerminalInterface","exports","cwd","renderStackTraces","undefined","log","console","bind","_classCallCheck2","_createClass2","key","_sendInput","_asyncToGenerator2","_regenerator","mark","_callee","wrap","_callee$","_context","prev","Error","stop","sendInput","renderLines","lines","_this","line","renderLine","renderObject","object","_this2","Green","renderDivider","chalk","bold","JSON","stringify","renderSection","options","headline","_options$dividerEffec","dividerEffects","_options$headlineEffe","headlineEffects","Blue","_options$bodyEffects","bodyEffects","renderHeadline","bar","renderActionSummary","results","_results$files$filter","_results$files","_results$files$filter2","_results$files2","_results$files$filter3","_results$files3","_results$errors","_results$packagesInst","_results$summaryLines","_this3","generatedFiles","files","action","updatedFiles","skippedFiles","errors","packagesInstalled","renderHero","summaryLines","_toConsumableArray2","featuresUtil","generateCommand","featureCode","actionCode","table","Table","head","colWidths","wordWrap","colAligns","sort","one","two","pkg","isDev","_i","_arr","_iterator","_step","_file$description","file","description","namesUtil","toPascal","hints","renderError","totalTime","durationUtil","msToFriendly","message","isSpruce","fonts","say","font","align","space","colors","setTitle","title","process","stdout","write","shouldStripVowels","columns","stripped","replace","toLowerCase","gradient","Red","renderHint","eraseBeforeRender","terminal","eraseLine","renderWarning","Yellow","_startLoading","_callee2","_callee2$","_context2","stopLoading","loader","ora","text","start","startLoading","_x","_stopLoading","_callee3","_TerminalInterface$lo","_callee3$","_context3","_confirm","_callee4","question","confirmResult","_callee4$","_context4","inquirer","prompt","type","sent","abrupt","answer","confirm","_x2","_waitForEnter","_callee5","_callee5$","_context5","label","bgGreenBright","black","waitForEnter","_x3","clear","renderCodeSample","code","colored","emphasize","highlight","_prompt","_callee6","definition","fieldDefinition","defaultValue","promptOptions","field","_fieldDefinition$defa","_fieldDefinition$defa2","dirPath","_fieldDefinition$defa3","_fieldDefinition$defa4","_dirPath","response","result","_callee6$","_context6","isPromptActive","generatePromptLabel","FieldFactory","Field","transformer","toValueType","validate","areSchemaValuesValid","id","fields","t0","choices","map","choice","checked","_","includes","SpruceError","friendlyMessage","path","join","root","onlyShowDir","fs","existsSync","lstatSync","isDirectory","cleanedPath","uri","globby","directory","extname","_x4","hint","italic","dim","stackLines","cleanStack","splice","stack","AbstractSpruceError","original","originalError","split","renderProgressBar","removeProgressBar","progressBar","percent","showPercent","eta","showEta","items","totalItems","inline","renderInline","updateProgressBar","update","_renderImage","_callee7","image","_callee7$","_context7","renderImage","_x5","_x6","_getCursorPosition","_callee8","_callee8$","_context8","Promise","resolve","requestCursorLocation","getCursorLocation","x","y","getCursorPosition","saveCursor","restoreCursor","moveCursorTo","moveTo","clearBelowCursor","eraseDisplayBelow","doesSupportColor","_doesSupportColor","setDoesSupportColor","isTTy","isTTY","isCi"],"sources":["../../src/interfaces/TerminalInterface.ts"],"sourcesContent":["import path from 'path'\nimport AbstractSpruceError from '@sprucelabs/error'\nimport globby from '@sprucelabs/globby'\nimport {\n\tFieldFactory,\n\tFieldDefinitionValueType,\n\tareSchemaValuesValid,\n} from '@sprucelabs/schema'\nimport { IField } from '@sprucelabs/schema'\nimport { namesUtil } from '@sprucelabs/spruce-skill-utils'\n// @ts-ignore\nimport fonts from 'cfonts'\nimport chalk from 'chalk'\n// @ts-ignore No definition available\nimport Table from 'cli-table3'\n// @ts-ignore No definition available\nimport emphasize from 'emphasize'\nimport fs from 'fs-extra'\nimport inquirer from 'inquirer'\nimport _ from 'lodash'\nimport { filter } from 'lodash'\nimport ora from 'ora'\nimport { terminal } from 'terminal-kit'\nimport { ProgressBarController } from 'terminal-kit/Terminal'\nimport { FieldDefinitions } from '#spruce/schemas/fields/fields.types'\nimport SpruceError from '../errors/SpruceError'\nimport featuresUtil from '../features/feature.utilities'\nimport { ExecutionResults, GraphicsInterface } from '../types/cli.types'\nimport {\n\tGraphicsTextEffect,\n\tImageDimensions,\n\tProgressBarOptions,\n\tProgressBarUpdateOptions,\n} from '../types/graphicsInterface.types'\nimport durationUtil from '../utilities/duration.utility'\nimport isCi from '../utilities/isCi'\nconst terminalImage = require('terminal-image')\n\nlet fieldCount = 0\nfunction generateInquirerFieldName() {\n\tfieldCount++\n\treturn `field-${fieldCount}`\n}\n\n/** Remove effects cfonts does not support */\nfunction filterEffectsForCFonts(effects: GraphicsTextEffect[]) {\n\treturn filter(\n\t\teffects,\n\t\t(effect) =>\n\t\t\t[\n\t\t\t\tGraphicsTextEffect.SpruceHeader,\n\t\t\t\tGraphicsTextEffect.Reset,\n\t\t\t\tGraphicsTextEffect.Bold,\n\t\t\t\tGraphicsTextEffect.Dim,\n\t\t\t\tGraphicsTextEffect.Italic,\n\t\t\t\tGraphicsTextEffect.Underline,\n\t\t\t\tGraphicsTextEffect.Inverse,\n\t\t\t\tGraphicsTextEffect.Hidden,\n\t\t\t\tGraphicsTextEffect.Strikethrough,\n\t\t\t\tGraphicsTextEffect.Visible,\n\t\t\t].indexOf(effect) === -1\n\t)\n}\n\ntype TerminalSpecificOptions = {\n\teraseBeforeRender?: boolean\n}\n\nexport default class TerminalInterface implements GraphicsInterface {\n\tpublic isPromptActive = false\n\tpublic cwd: string\n\tprivate renderStackTraces = false\n\tprivate static loader?: ora.Ora | null\n\tprivate progressBar: ProgressBarController | null = null\n\tprivate static _doesSupportColor = process?.stdout?.isTTY && !isCi()\n\tprivate log: (...args: any[]) => void\n\n\tpublic constructor(\n\t\tcwd: string,\n\t\trenderStackTraces = false,\n\t\tlog = console.log.bind(console)\n\t) {\n\t\tthis.cwd = cwd\n\t\tthis.renderStackTraces = renderStackTraces\n\t\tthis.log = log\n\t}\n\n\tpublic static doesSupportColor() {\n\t\treturn this._doesSupportColor\n\t}\n\n\tpublic static setDoesSupportColor(isTTy: boolean) {\n\t\tthis._doesSupportColor = isTTy\n\t}\n\n\tpublic async sendInput(): Promise<void> {\n\t\tthrow new Error('sendInput not supported on the TerminalInterface!')\n\t}\n\n\tpublic renderLines(lines: any[], effects?: GraphicsTextEffect[]) {\n\t\tlines.forEach((line) => {\n\t\t\tthis.renderLine(line, effects)\n\t\t})\n\t}\n\n\tpublic renderObject(\n\t\tobject: Record<string, any>,\n\t\teffects: GraphicsTextEffect[] = [GraphicsTextEffect.Green]\n\t) {\n\t\tthis.renderLine('')\n\t\tthis.renderDivider()\n\t\tthis.renderLine('')\n\t\tObject.keys(object).forEach((key) => {\n\t\t\tthis.renderLine(\n\t\t\t\t`${chalk.bold(key)}: ${\n\t\t\t\t\ttypeof object[key] === 'string'\n\t\t\t\t\t\t? object[key]\n\t\t\t\t\t\t: JSON.stringify(object[key])\n\t\t\t\t}`,\n\t\t\t\teffects\n\t\t\t)\n\t\t})\n\t\tthis.renderLine('')\n\t\tthis.renderDivider()\n\t\tthis.renderLine('')\n\t}\n\n\tpublic renderSection(options: {\n\t\theadline?: string\n\t\tlines?: string[]\n\t\tobject?: Record<string, any>\n\t\theadlineEffects?: GraphicsTextEffect[]\n\t\tbodyEffects?: GraphicsTextEffect[]\n\t\tdividerEffects?: GraphicsTextEffect[]\n\t}) {\n\t\tconst {\n\t\t\theadline,\n\t\t\tlines,\n\t\t\tobject,\n\t\t\tdividerEffects = [],\n\t\t\theadlineEffects = [GraphicsTextEffect.Blue, GraphicsTextEffect.Bold],\n\t\t\tbodyEffects = [GraphicsTextEffect.Green],\n\t\t} = options\n\n\t\tif (headline) {\n\t\t\tthis.renderHeadline(`${headline} 🌲🤖`, headlineEffects, dividerEffects)\n\t\t}\n\n\t\tif (lines) {\n\t\t\tthis.renderLines(lines, bodyEffects)\n\n\t\t\tthis.renderLine('')\n\t\t\tthis.renderDivider(dividerEffects)\n\t\t}\n\n\t\tif (object) {\n\t\t\tthis.renderObject(object, bodyEffects)\n\t\t}\n\n\t\tthis.renderLine('')\n\t}\n\n\tpublic renderDivider(effects?: GraphicsTextEffect[]) {\n\t\tconst bar = '=================================================='\n\t\tthis.renderLine(bar, effects)\n\t}\n\n\tpublic renderActionSummary(\n\t\tresults: ExecutionResults & { totalTime?: number }\n\t) {\n\t\tconst generatedFiles =\n\t\t\tresults.files?.filter((f) => f.action === 'generated') ?? []\n\t\tconst updatedFiles =\n\t\t\tresults.files?.filter((f) => f.action === 'updated') ?? []\n\t\tconst skippedFiles =\n\t\t\tresults.files?.filter((f) => f.action === 'skipped') ?? []\n\n\t\tconst errors = results.errors ?? []\n\t\tconst packagesInstalled = results.packagesInstalled ?? []\n\n\t\tthis.renderHero(`${results.headline}`)\n\n\t\tlet summaryLines: string[] = [\n\t\t\terrors.length > 0 ? `Errors: ${errors.length}` : null,\n\t\t\tgeneratedFiles.length > 0\n\t\t\t\t? `Generated files: ${generatedFiles.length}`\n\t\t\t\t: null,\n\t\t\tupdatedFiles.length > 0 ? `Updated files: ${updatedFiles.length}` : null,\n\t\t\tskippedFiles.length > 0 ? `Skipped files: ${skippedFiles.length}` : null,\n\t\t\tpackagesInstalled.length > 0\n\t\t\t\t? `NPM packages installed: ${packagesInstalled.length}`\n\t\t\t\t: null,\n\t\t\t...(results.summaryLines ?? []),\n\t\t].filter((line) => !!line) as string[]\n\n\t\tif (summaryLines.length === 0) {\n\t\t\tsummaryLines.push('Nothing to report!')\n\t\t}\n\t\tthis.renderSection({\n\t\t\theadline: `${featuresUtil.generateCommand(\n\t\t\t\tresults.featureCode,\n\t\t\t\tresults.actionCode\n\t\t\t)} summary`,\n\t\t\tlines: summaryLines,\n\t\t})\n\n\t\tif (packagesInstalled.length > 0) {\n\t\t\tconst table = new Table({\n\t\t\t\thead: ['Name', 'Dev'],\n\t\t\t\tcolWidths: [40, 5],\n\t\t\t\twordWrap: true,\n\t\t\t\tcolAligns: ['left', 'center'],\n\t\t\t})\n\t\t\tpackagesInstalled\n\t\t\t\t.sort((one, two) => (one.name > two.name ? 1 : -1))\n\t\t\t\t.forEach((pkg) => {\n\t\t\t\t\ttable.push([pkg.name, pkg.isDev ? '√' : ''])\n\t\t\t\t})\n\n\t\t\tthis.renderSection({\n\t\t\t\theadline: `NPM packages summary`,\n\t\t\t\tlines: [table.toString()],\n\t\t\t})\n\t\t}\n\n\t\tfor (let files of [generatedFiles, updatedFiles]) {\n\t\t\tif (files.length > 0) {\n\t\t\t\tconst table = new Table({\n\t\t\t\t\thead: ['File', 'Description'],\n\t\t\t\t\twordWrap: true,\n\t\t\t\t})\n\n\t\t\t\tfiles = files.sort()\n\n\t\t\t\tfor (const file of files) {\n\t\t\t\t\ttable.push([file.name, file.description ?? ''])\n\t\t\t\t}\n\n\t\t\t\tthis.renderSection({\n\t\t\t\t\theadline: `${namesUtil.toPascal(files[0].action)} file summary`,\n\t\t\t\t\tlines: [table.toString()],\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\tif (results.hints) {\n\t\t\tthis.renderSection({\n\t\t\t\theadline: 'Read below 👇',\n\t\t\t\tlines: results.hints,\n\t\t\t})\n\t\t}\n\n\t\tif (errors.length > 0) {\n\t\t\tthis.renderHeadline('Errors')\n\t\t\terrors.forEach((err) => this.renderError(err))\n\t\t}\n\n\t\tif (results.totalTime) {\n\t\t\tthis.renderLine(\n\t\t\t\t`Total time: ${durationUtil.msToFriendly(results.totalTime)}`\n\t\t\t)\n\t\t}\n\t}\n\n\tpublic renderHeadline(\n\t\tmessage: string,\n\t\teffects: GraphicsTextEffect[] = [\n\t\t\tGraphicsTextEffect.Blue,\n\t\t\tGraphicsTextEffect.Bold,\n\t\t],\n\t\tdividerEffects: GraphicsTextEffect[] = []\n\t) {\n\t\tconst isSpruce = effects.indexOf(GraphicsTextEffect.SpruceHeader) > -1\n\n\t\tif (isSpruce) {\n\t\t\tfonts.say(message, {\n\t\t\t\tfont: GraphicsTextEffect.SpruceHeader,\n\t\t\t\talign: 'left',\n\t\t\t\tspace: false,\n\t\t\t\tcolors: filterEffectsForCFonts(effects),\n\t\t\t})\n\t\t} else {\n\t\t\tthis.renderDivider(dividerEffects)\n\t\t\tthis.renderLine(message, effects)\n\t\t\tthis.renderDivider(dividerEffects)\n\t\t\tthis.renderLine('')\n\t\t}\n\t}\n\n\tpublic setTitle(title: string): void {\n\t\tprocess.stdout.write('\\x1b]2;' + title + '\\x07')\n\t}\n\n\tpublic renderHero(message: string, effects?: GraphicsTextEffect[]) {\n\t\tconst shouldStripVowels = process.stdout.columns < 80\n\n\t\tlet stripped = shouldStripVowels\n\t\t\t? message.replace(/[aeiou]/gi, '')\n\t\t\t: message\n\n\t\tif (\n\t\t\tshouldStripVowels &&\n\t\t\t['a', 'e', 'i', 'o', 'u'].indexOf(message[0].toLowerCase()) > -1\n\t\t) {\n\t\t\tstripped = `${message[0]}${stripped}`\n\t\t}\n\n\t\tfonts.say(stripped, {\n\t\t\talign: 'left',\n\t\t\tgradient: [GraphicsTextEffect.Red, GraphicsTextEffect.Blue],\n\t\t\tcolors: effects ? filterEffectsForCFonts(effects) : undefined,\n\t\t})\n\t}\n\n\tpublic renderHint(message: string) {\n\t\treturn this.renderLine(`👨🏫 ${message}`)\n\t}\n\n\tpublic renderLine(\n\t\tmessage: any,\n\t\teffects: GraphicsTextEffect[] = [],\n\t\toptions?: TerminalSpecificOptions\n\t) {\n\t\tlet write: any = chalk\n\t\teffects.forEach((effect) => {\n\t\t\twrite = write[effect]\n\t\t})\n\n\t\tif (options?.eraseBeforeRender) {\n\t\t\tterminal.eraseLine()\n\t\t}\n\n\t\tthis.log(effects.length > 0 ? write(message) : message)\n\t}\n\n\tpublic renderWarning(message: string) {\n\t\tthis.renderLine(`⚠️ ${message}`, [\n\t\t\tGraphicsTextEffect.Bold,\n\t\t\tGraphicsTextEffect.Yellow,\n\t\t])\n\t}\n\n\tpublic async startLoading(message?: string) {\n\t\t// eslint-disable-next-line @typescript-eslint/no-floating-promises\n\t\tthis.stopLoading()\n\t\tTerminalInterface.loader = ora({\n\t\t\ttext: message,\n\t\t}).start()\n\t}\n\n\tpublic async stopLoading() {\n\t\tTerminalInterface.loader?.stop()\n\t\tTerminalInterface.loader = null\n\t}\n\n\tpublic async confirm(question: string): Promise<boolean> {\n\t\tconst confirmResult = await inquirer.prompt({\n\t\t\ttype: 'confirm',\n\t\t\tname: 'answer',\n\t\t\tmessage: question,\n\t\t})\n\n\t\treturn !!confirmResult.answer\n\t}\n\n\tpublic async waitForEnter(message?: string) {\n\t\tawait this.prompt({\n\t\t\ttype: 'text',\n\t\t\tlabel: `${message ? message + ' ' : ''}${chalk.bgGreenBright.black(\n\t\t\t\t'hit enter'\n\t\t\t)}`,\n\t\t})\n\t\tthis.renderLine('')\n\t\treturn\n\t}\n\n\tpublic clear() {\n\t\tvoid this.stopLoading()\n\t\tconsole.clear()\n\t}\n\n\tpublic renderCodeSample(code: string) {\n\t\ttry {\n\t\t\tconst colored = emphasize.highlight('js', code).value\n\t\t\tthis.renderLine(colored)\n\t\t} catch (err: any) {\n\t\t\tthis.renderWarning(err)\n\t\t}\n\t}\n\n\tpublic async prompt<T extends FieldDefinitions>(\n\t\tdefinition: T\n\t): Promise<FieldDefinitionValueType<T>> {\n\t\tthis.isPromptActive = true\n\t\tconst name = generateInquirerFieldName()\n\t\tconst fieldDefinition: FieldDefinitions = definition\n\t\tconst { defaultValue } = fieldDefinition\n\n\t\tconst promptOptions: Record<string, any> = {\n\t\t\tdefault: defaultValue,\n\t\t\tname,\n\t\t\tmessage: this.generatePromptLabel(fieldDefinition),\n\t\t}\n\n\t\tconst field = FieldFactory.Field('prompt', fieldDefinition)\n\n\t\tpromptOptions.transformer = (value: string) => {\n\t\t\treturn (field as IField<any>).toValueType(value)\n\t\t}\n\n\t\tpromptOptions.validate = (value: string) => {\n\t\t\treturn areSchemaValuesValid(\n\t\t\t\t{\n\t\t\t\t\tid: 'promptvalidateschema',\n\t\t\t\t\tfields: {\n\t\t\t\t\t\tprompt: fieldDefinition,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{ prompt: value }\n\t\t\t)\n\t\t\t// return field.validate(value, {}).length === 0\n\t\t}\n\n\t\tswitch (fieldDefinition.type) {\n\t\t\t// Map select options to prompt list choices\n\t\t\tcase 'boolean':\n\t\t\t\tpromptOptions.type = 'confirm'\n\t\t\t\tbreak\n\n\t\t\tcase 'select':\n\t\t\t\tpromptOptions.type = fieldDefinition.isArray ? 'checkbox' : 'list'\n\n\t\t\t\tpromptOptions.choices = fieldDefinition.options.choices.map(\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t(choice) => ({\n\t\t\t\t\t\tname: choice.label,\n\t\t\t\t\t\tvalue: choice.value,\n\t\t\t\t\t\tchecked: _.includes(fieldDefinition.defaultValue, choice.value),\n\t\t\t\t\t})\n\t\t\t\t)\n\n\t\t\t\tbreak\n\t\t\t// Directory select\n\t\t\t// File select\n\t\t\tcase 'directory': {\n\t\t\t\tif (fieldDefinition.isArray) {\n\t\t\t\t\tthrow new SpruceError({\n\t\t\t\t\t\tcode: 'NOT_IMPLEMENTED',\n\t\t\t\t\t\tfriendlyMessage:\n\t\t\t\t\t\t\t'isArray file field not supported, prompt needs to be rewritten with isArray support',\n\t\t\t\t\t})\n\t\t\t\t}\n\n\t\t\t\tconst dirPath = path.join(\n\t\t\t\t\tfieldDefinition.defaultValue?.path ?? this.cwd,\n\t\t\t\t\t'/'\n\t\t\t\t)\n\n\t\t\t\tpromptOptions.type = 'file'\n\t\t\t\tpromptOptions.root = dirPath\n\t\t\t\tpromptOptions.onlyShowDir = true\n\n\t\t\t\t// Only let people select an actual file\n\t\t\t\tpromptOptions.validate = (value: string) => {\n\t\t\t\t\treturn fs.existsSync(value) && fs.lstatSync(value).isDirectory()\n\t\t\t\t}\n\t\t\t\t// Strip out cwd from the paths while selecting\n\t\t\t\tpromptOptions.transformer = (path: string) => {\n\t\t\t\t\tconst cleanedPath = path.replace(promptOptions.root, '')\n\t\t\t\t\treturn cleanedPath.length === 0 ? promptOptions.root : cleanedPath\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tcase 'file': {\n\t\t\t\tif (fieldDefinition.isArray) {\n\t\t\t\t\tthrow new SpruceError({\n\t\t\t\t\t\tcode: 'NOT_IMPLEMENTED',\n\t\t\t\t\t\tfriendlyMessage:\n\t\t\t\t\t\t\t'isArray file field not supported, prompt needs to be rewritten with isArray support',\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tconst dirPath = path.join(\n\t\t\t\t\tfieldDefinition.defaultValue?.uri ?? this.cwd,\n\t\t\t\t\t'/'\n\t\t\t\t)\n\n\t\t\t\t// Check if directory is empty.\n\t\t\t\tconst files = await globby(`${dirPath}**/*`)\n\n\t\t\t\tif (files.length === 0) {\n\t\t\t\t\tthrow new SpruceError({\n\t\t\t\t\t\tcode: 'DIRECTORY_EMPTY',\n\t\t\t\t\t\tdirectory: dirPath,\n\t\t\t\t\t\tfriendlyMessage: `I wanted to help you select a file, but none exist in ${dirPath}.`,\n\t\t\t\t\t})\n\t\t\t\t}\n\n\t\t\t\tpromptOptions.type = 'file'\n\t\t\t\tpromptOptions.root = dirPath\n\n\t\t\t\t// Only let people select an actual file\n\t\t\t\tpromptOptions.validate = (value: string) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\tfs.existsSync(value) &&\n\t\t\t\t\t\t!fs.lstatSync(value).isDirectory() &&\n\t\t\t\t\t\tpath.extname(value) === '.ts'\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\t// Strip out cwd from the paths while selecting\n\t\t\t\tpromptOptions.transformer = (path: string) => {\n\t\t\t\t\tconst cleanedPath = path.replace(promptOptions.root, '')\n\t\t\t\t\treturn cleanedPath.length === 0 ? promptOptions.root : cleanedPath\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\t// Defaults to input\n\t\t\tdefault:\n\t\t\t\tpromptOptions.type = 'input'\n\t\t}\n\n\t\tconst response = (await inquirer.prompt(promptOptions)) as any\n\n\t\tthis.isPromptActive = false\n\n\t\tconst result =\n\t\t\ttypeof response[name] !== 'undefined'\n\t\t\t\t? (field as IField<any>).toValueType(response[name])\n\t\t\t\t: response[name]\n\n\t\treturn result\n\t}\n\tprivate generatePromptLabel(fieldDefinition: FieldDefinitions): any {\n\t\tlet label = fieldDefinition.label\n\n\t\tif (fieldDefinition.hint) {\n\t\t\tlabel = `${label} ${chalk.italic.dim(`(${fieldDefinition.hint})`)}`\n\t\t}\n\n\t\tlabel = label + ': '\n\n\t\treturn label\n\t}\n\n\tpublic renderError(err: Error) {\n\t\t// eslint-disable-next-line @typescript-eslint/no-floating-promises\n\t\tthis.stopLoading()\n\n\t\tconst message = err.message\n\t\t// Remove message from stack so the message is not doubled up\n\t\tconst stackLines = this.cleanStack(err)\n\t\tthis.renderSection({\n\t\t\theadline: message,\n\t\t\tlines: this.renderStackTraces ? stackLines.splice(0, 100) : undefined,\n\t\t\theadlineEffects: [GraphicsTextEffect.Bold, GraphicsTextEffect.Red],\n\t\t\tdividerEffects: [GraphicsTextEffect.Red],\n\t\t\tbodyEffects: [GraphicsTextEffect.Red],\n\t\t})\n\t}\n\n\tprivate cleanStack(err: Error) {\n\t\tconst message = err.message\n\t\tlet stack = err.stack ? err.stack.replace(message, '') : ''\n\n\t\tif (err instanceof AbstractSpruceError) {\n\t\t\tlet original = err.originalError\n\t\t\twhile (original) {\n\t\t\t\tstack = stack.replace('Error: ' + original.message, '')\n\t\t\t\toriginal = (original as AbstractSpruceError).originalError\n\t\t\t}\n\t\t}\n\n\t\tconst stackLines = stack.split('\\n')\n\n\t\treturn stackLines\n\t}\n\n\tpublic renderProgressBar(options: ProgressBarOptions): void {\n\t\tthis.removeProgressBar()\n\t\tthis.progressBar = terminal.progressBar({\n\t\t\t...options,\n\t\t\tpercent: options.showPercent,\n\t\t\teta: options.showEta,\n\t\t\titems: options.totalItems,\n\t\t\tinline: options.renderInline,\n\t\t})\n\t}\n\n\tpublic removeProgressBar() {\n\t\tif (this.progressBar) {\n\t\t\tthis.progressBar.stop()\n\t\t\tthis.progressBar = null\n\t\t}\n\t}\n\n\tpublic updateProgressBar(options: ProgressBarUpdateOptions): void {\n\t\tif (this.progressBar) {\n\t\t\tthis.progressBar.update({\n\t\t\t\t...options,\n\t\t\t\titems: options.totalItems,\n\t\t\t})\n\t\t}\n\t}\n\n\tpublic async renderImage(\n\t\tpath: string,\n\t\toptions?: ImageDimensions\n\t): Promise<void> {\n\t\tconst image = await terminalImage.file(path, options)\n\t\tthis.renderLine(image)\n\t}\n\n\tpublic async getCursorPosition(): Promise<{ x: number; y: number } | null> {\n\t\treturn new Promise((resolve) => {\n\t\t\tterminal.requestCursorLocation()\n\t\t\tterminal.getCursorLocation((err, x, y) => {\n\t\t\t\tresolve(err ? null : { x: x ?? 0, y: y ?? 0 })\n\t\t\t})\n\t\t})\n\t}\n\n\tpublic saveCursor() {\n\t\tterminal.saveCursor()\n\t}\n\n\tpublic restoreCursor() {\n\t\tterminal.restoreCursor()\n\t}\n\n\tpublic moveCursorTo(x: number, y: number): void {\n\t\tterminal.moveTo(x, y)\n\t}\n\n\tpublic clearBelowCursor(): void {\n\t\tterminal.eraseDisplayBelow()\n\t}\n\n\tpublic eraseLine() {\n\t\tterminal.eraseLine()\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -18,7 +18,7 @@ var BuildService = exports["default"] = /*#__PURE__*/function () {
|
|
|
18
18
|
this.commandService = commandService;
|
|
19
19
|
this.lintService = lintService;
|
|
20
20
|
}
|
|
21
|
-
(0, _createClass2["default"])(BuildService, [{
|
|
21
|
+
return (0, _createClass2["default"])(BuildService, [{
|
|
22
22
|
key: "cwd",
|
|
23
23
|
get: function get() {
|
|
24
24
|
return this.commandService.cwd;
|
|
@@ -58,6 +58,5 @@ var BuildService = exports["default"] = /*#__PURE__*/function () {
|
|
|
58
58
|
return build;
|
|
59
59
|
}()
|
|
60
60
|
}]);
|
|
61
|
-
return BuildService;
|
|
62
61
|
}();
|
|
63
62
|
//# sourceMappingURL=BuildService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BuildService.js","names":["BuildService","exports","commandService","lintService","_classCallCheck2","_defineProperty2","_createClass2","key","get","cwd","set","value","_build","_asyncToGenerator2","_regenerator","mark","_callee","options","results","wrap","_callee$","_context","prev","next","shouldFixLintFirst","fix","execute","sent","abrupt","stop","build","_x","apply","arguments"],"sources":["../../src/services/BuildService.ts"],"sourcesContent":["import CommandService from './CommandService'\nimport LintService from './LintService'\n\nexport default class BuildService {\n\tpublic set cwd(cwd: string) {\n\t\tthis.commandService.cwd = cwd\n\t}\n\n\tpublic get cwd() {\n\t\treturn this.commandService.cwd\n\t}\n\n\tprivate commandService: CommandService\n\tprivate lintService: LintService\n\n\tpublic constructor(commandService: CommandService, lintService: LintService) {\n\t\tthis.commandService = commandService\n\t\tthis.lintService = lintService\n\t}\n\n\tpublic async build(options?: { shouldFixLintFirst?: boolean }) {\n\t\tif (options?.shouldFixLintFirst !== false) {\n\t\t\tawait this.lintService.fix('**/*.ts')\n\t\t}\n\t\tconst results = await this.commandService.execute(`yarn build.dev`)\n\t\treturn results\n\t}\n}\n"],"mappings":";;;;;;;;;;;;IAGqBA,YAAY,GAAAC,OAAA;EAYhC,SAAAD,aAAmBE,cAA8B,EAAEC,WAAwB,EAAE;IAAA,IAAAC,gBAAA,mBAAAJ,YAAA;IAAA,IAAAK,gBAAA;IAAA,IAAAA,gBAAA;IAC5E,IAAI,CAACH,cAAc,GAAGA,cAAc;IACpC,IAAI,CAACC,WAAW,GAAGA,WAAW;EAC/B;EAAC,
|
|
1
|
+
{"version":3,"file":"BuildService.js","names":["BuildService","exports","commandService","lintService","_classCallCheck2","_defineProperty2","_createClass2","key","get","cwd","set","value","_build","_asyncToGenerator2","_regenerator","mark","_callee","options","results","wrap","_callee$","_context","prev","next","shouldFixLintFirst","fix","execute","sent","abrupt","stop","build","_x","apply","arguments"],"sources":["../../src/services/BuildService.ts"],"sourcesContent":["import CommandService from './CommandService'\nimport LintService from './LintService'\n\nexport default class BuildService {\n\tpublic set cwd(cwd: string) {\n\t\tthis.commandService.cwd = cwd\n\t}\n\n\tpublic get cwd() {\n\t\treturn this.commandService.cwd\n\t}\n\n\tprivate commandService: CommandService\n\tprivate lintService: LintService\n\n\tpublic constructor(commandService: CommandService, lintService: LintService) {\n\t\tthis.commandService = commandService\n\t\tthis.lintService = lintService\n\t}\n\n\tpublic async build(options?: { shouldFixLintFirst?: boolean }) {\n\t\tif (options?.shouldFixLintFirst !== false) {\n\t\t\tawait this.lintService.fix('**/*.ts')\n\t\t}\n\t\tconst results = await this.commandService.execute(`yarn build.dev`)\n\t\treturn results\n\t}\n}\n"],"mappings":";;;;;;;;;;;;IAGqBA,YAAY,GAAAC,OAAA;EAYhC,SAAAD,aAAmBE,cAA8B,EAAEC,WAAwB,EAAE;IAAA,IAAAC,gBAAA,mBAAAJ,YAAA;IAAA,IAAAK,gBAAA;IAAA,IAAAA,gBAAA;IAC5E,IAAI,CAACH,cAAc,GAAGA,cAAc;IACpC,IAAI,CAACC,WAAW,GAAGA,WAAW;EAC/B;EAAC,WAAAG,aAAA,aAAAN,YAAA;IAAAO,GAAA;IAAAC,GAAA,EAVD,SAAAA,IAAA,EAAiB;MAChB,OAAO,IAAI,CAACN,cAAc,CAACO,GAAG;IAC/B,CAAC;IAAAC,GAAA,EAND,SAAAA,IAAeD,GAAW,EAAE;MAC3B,IAAI,CAACP,cAAc,CAACO,GAAG,GAAGA,GAAG;IAC9B;EAAC;IAAAF,GAAA;IAAAI,KAAA;MAAA,IAAAC,MAAA,OAAAC,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAcD,SAAAC,QAAmBC,OAA0C;QAAA,IAAAC,OAAA;QAAA,OAAAJ,YAAA,YAAAK,IAAA,UAAAC,SAAAC,QAAA;UAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;YAAA;cAAA,MACxD,CAAAN,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEO,kBAAkB,MAAK,KAAK;gBAAAH,QAAA,CAAAE,IAAA;gBAAA;cAAA;cAAAF,QAAA,CAAAE,IAAA;cAAA,OAClC,IAAI,CAACpB,WAAW,CAACsB,GAAG,CAAC,SAAS,CAAC;YAAA;cAAAJ,QAAA,CAAAE,IAAA;cAAA,OAEhB,IAAI,CAACrB,cAAc,CAACwB,OAAO,iBAAiB,CAAC;YAAA;cAA7DR,OAAO,GAAAG,QAAA,CAAAM,IAAA;cAAA,OAAAN,QAAA,CAAAO,MAAA,WACNV,OAAO;YAAA;YAAA;cAAA,OAAAG,QAAA,CAAAQ,IAAA;UAAA;QAAA,GAAAb,OAAA;MAAA,CACd;MAAA,SAAAc,MAAAC,EAAA;QAAA,OAAAnB,MAAA,CAAAoB,KAAA,OAAAC,SAAA;MAAA;MAAA,OAAAH,KAAA;IAAA;EAAA;AAAA","ignoreList":[]}
|
|
@@ -40,7 +40,7 @@ var CommandService = exports["default"] = /*#__PURE__*/function () {
|
|
|
40
40
|
});
|
|
41
41
|
this.cwd = cwd;
|
|
42
42
|
}
|
|
43
|
-
(0, _createClass2["default"])(CommandService, [{
|
|
43
|
+
return (0, _createClass2["default"])(CommandService, [{
|
|
44
44
|
key: "execute",
|
|
45
45
|
value: function () {
|
|
46
46
|
var _execute = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(cmd, options) {
|
|
@@ -194,7 +194,6 @@ var CommandService = exports["default"] = /*#__PURE__*/function () {
|
|
|
194
194
|
this.fakeResponses = [];
|
|
195
195
|
}
|
|
196
196
|
}]);
|
|
197
|
-
return CommandService;
|
|
198
197
|
}();
|
|
199
198
|
(0, _defineProperty2["default"])(CommandService, "fakeResponses", []);
|
|
200
199
|
(0, _defineProperty2["default"])(CommandService, "commandsRunCapturedByMockResponses", []);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommandService.js","names":["_child_process","require","_error","_interopRequireDefault","_spruceSkillUtils","_escapeRegExp","_stringArgv","_treeKill","_SpruceError","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","process","setMaxListeners","CommandService","exports","cwd","_this","_classCallCheck2","_this$activeChildProc","activeChildProcess","pid","ignoreCloseErrors","treeKill","_this$activeChildProc2","_createClass2","key","value","_execute","_asyncToGenerator2","_regenerator","mark","_callee","cmd","options","_this2","args","executable","boundKill","_this$getMockResponse","mockResponse","mockKey","_mockResponse$callbac","_mockResponse$stdout","wrap","_callee$","_context","prev","next","stringArgv","shift","kill","bind","Error","getMockResponse","commandsRunCapturedByMockResponses","callback","call","code","SpruceError","concat","join","stdout","stderr","abrupt","on","Promise","resolve","reject","_child$stdout2","_child$stderr","spawnOptions","shouldStream","stdio","env","PATH","IS_CLI","FORCE_COLOR","forceColor","shell","child","spawn","outStream","_child$stdout","pipe","addListener","data","_options$onData","onData","toString","_options$onError","onError","closeHandler","off","undefined","setTimeout","_child$stdout3","_child$stderr2","removeAllListeners","ignoreErrors","search","escapeRegExp","ERROR_DIVIDER","stderrParts","split","err","AbstractSpruceError","parse","stop","execute","_x","_x2","trim","commands","fakeResponses","match","find","command","RegExp","replace","response","fakeCommand","unshift","clearFakedResponses"],"sources":["../../src/services/CommandService.ts"],"sourcesContent":["import { spawn, SpawnOptions, ChildProcess } from 'child_process'\nimport { Writable } from 'stream'\nimport AbstractSpruceError from '@sprucelabs/error'\nimport { ERROR_DIVIDER } from '@sprucelabs/spruce-skill-utils'\nimport escapeRegExp from 'lodash/escapeRegExp'\nimport stringArgv from 'string-argv'\nimport treeKill from 'tree-kill'\nimport SpruceError from '../errors/SpruceError'\n\nprocess.setMaxListeners(100)\n\nexport default class CommandService {\n\tpublic cwd: string\n\tprivate activeChildProcess: ChildProcess | undefined\n\tprivate ignoreCloseErrors = false\n\tprivate static fakeResponses: {\n\t\tcommand: string | RegExp\n\t\tresponse: MockResponse\n\t}[] = []\n\tprivate static commandsRunCapturedByMockResponses: string[] = []\n\n\tpublic constructor(cwd: string) {\n\t\tthis.cwd = cwd\n\t}\n\n\tpublic async execute(\n\t\tcmd: string,\n\t\toptions?: {\n\t\t\tignoreErrors?: boolean\n\t\t\targs?: string[]\n\t\t\tshouldStream?: boolean\n\t\t\toutStream?: Writable\n\t\t\tonError?: (error: string) => void\n\t\t\tonData?: (data: string) => void\n\t\t\tspawnOptions?: SpawnOptions\n\t\t\tforceColor?: boolean\n\t\t\tenv?: Record<string, any>\n\t\t}\n\t): Promise<{\n\t\tstdout: string\n\t}> {\n\t\tconst cwd = this.cwd\n\t\tconst args = options?.args || stringArgv(cmd)\n\t\tconst executable = options?.args ? cmd : args.shift()\n\t\tconst boundKill = this.kill.bind(this)\n\n\t\tif (!executable) {\n\t\t\tthrow new Error('Bad params sent to command service')\n\t\t}\n\n\t\tconst { mockResponse, mockKey } = this.getMockResponse(executable, args)\n\n\t\tif (mockResponse) {\n\t\t\tCommandService.commandsRunCapturedByMockResponses.push(mockKey)\n\t\t\tmockResponse.callback?.(executable, args)\n\n\t\t\tif (mockResponse.code !== 0) {\n\t\t\t\tthrow new SpruceError({\n\t\t\t\t\tcode: 'EXECUTING_COMMAND_FAILED',\n\t\t\t\t\tcmd: `${executable} ${args.join(' ')}`,\n\t\t\t\t\tcwd,\n\t\t\t\t\tstdout: mockResponse.stdout,\n\t\t\t\t\tstderr: mockResponse.stderr,\n\t\t\t\t})\n\t\t\t}\n\n\t\t\treturn { stdout: mockResponse.stdout ?? '' }\n\t\t}\n\n\t\tprocess.on('exit', boundKill)\n\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tlet stdout = ''\n\t\t\tlet stderr = ''\n\t\t\tconst spawnOptions: SpawnOptions = options?.shouldStream\n\t\t\t\t? {\n\t\t\t\t\t\tstdio: 'inherit',\n\t\t\t\t\t\tcwd,\n\t\t\t\t\t\tenv: {\n\t\t\t\t\t\t\tPATH: process.env.PATH,\n\t\t\t\t\t\t\tIS_CLI: 'true',\n\t\t\t\t\t\t\tFORCE_COLOR: options?.forceColor ? '1' : '0',\n\t\t\t\t\t\t\t...options?.env,\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\t\t\t\t: {\n\t\t\t\t\t\tcwd,\n\t\t\t\t\t\tenv: {\n\t\t\t\t\t\t\tPATH: process.env.PATH,\n\t\t\t\t\t\t\tIS_CLI: 'true',\n\t\t\t\t\t\t\tFORCE_COLOR: options?.forceColor ? '1' : '0',\n\t\t\t\t\t\t\t...options?.env,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tshell: true,\n\t\t\t\t\t\t...options?.spawnOptions,\n\t\t\t\t\t}\n\n\t\t\tconst child = spawn(executable, args, spawnOptions)\n\t\t\tthis.activeChildProcess = child\n\n\t\t\tif (options?.outStream) {\n\t\t\t\tchild.stdout?.pipe(options.outStream)\n\t\t\t}\n\n\t\t\tchild.stdout?.addListener('data', (data) => {\n\t\t\t\toptions?.onData?.(data.toString())\n\t\t\t\tstdout += data\n\t\t\t})\n\n\t\t\tchild.stderr?.addListener('data', (data) => {\n\t\t\t\toptions?.onError?.(data.toString())\n\t\t\t\tstderr += data\n\t\t\t})\n\n\t\t\tconst closeHandler = (code: number) => {\n\t\t\t\tprocess.off('exit', boundKill)\n\n\t\t\t\tif (!this.activeChildProcess) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tthis.activeChildProcess = undefined\n\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tchild.stdout?.removeAllListeners()\n\t\t\t\t\tchild.stderr?.removeAllListeners()\n\t\t\t\t\tchild.removeAllListeners()\n\n\t\t\t\t\tif (code === 0 || this.ignoreCloseErrors || options?.ignoreErrors) {\n\t\t\t\t\t\tresolve({ stdout })\n\t\t\t\t\t\tthis.ignoreCloseErrors = false\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (stderr.search(escapeRegExp(ERROR_DIVIDER)) > -1) {\n\t\t\t\t\t\t\tconst stderrParts = stderr.split(ERROR_DIVIDER)\n\t\t\t\t\t\t\tconst err = AbstractSpruceError.parse(stderrParts[1], SpruceError)\n\t\t\t\t\t\t\treject(err)\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treject(\n\t\t\t\t\t\t\tnew SpruceError({\n\t\t\t\t\t\t\t\tcode: 'EXECUTING_COMMAND_FAILED',\n\t\t\t\t\t\t\t\tcmd: `${executable} ${args.join(' ')}`,\n\t\t\t\t\t\t\t\tcwd,\n\t\t\t\t\t\t\t\tstdout,\n\t\t\t\t\t\t\t\tstderr,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t}, 0)\n\t\t\t}\n\n\t\t\tchild.addListener('close', closeHandler)\n\t\t\tchild.addListener('exit', closeHandler)\n\t\t})\n\t}\n\n\tpublic kill = () => {\n\t\tif (this.activeChildProcess?.pid) {\n\t\t\tthis.ignoreCloseErrors = true\n\t\t\ttreeKill(this.activeChildProcess.pid, 'SIGTERM')\n\t\t}\n\t}\n\n\tpublic pid = () => {\n\t\treturn this.activeChildProcess?.pid\n\t}\n\n\tprivate getMockResponse(executable: string, args: string[]) {\n\t\tconst mockKey = `${executable} ${args.join(' ')}`.trim()\n\t\tconst commands = CommandService.fakeResponses\n\t\tconst match = commands.find((r) =>\n\t\t\tr.command instanceof RegExp\n\t\t\t\t? mockKey.search(r.command) > -1\n\t\t\t\t: r.command.replace(/ +/gis, '') === mockKey.replace(/ +/gis, '')\n\t\t)\n\n\t\treturn { mockResponse: match?.response, mockKey }\n\t}\n\n\tpublic static fakeCommand(command: string | RegExp, response: MockResponse) {\n\t\tthis.fakeResponses.unshift({\n\t\t\tcommand,\n\t\t\tresponse,\n\t\t})\n\t}\n\n\tpublic static clearFakedResponses() {\n\t\tthis.fakeResponses = []\n\t}\n}\n\ninterface MockResponse {\n\tcode: number\n\tstdout?: string\n\tstderr?: string\n\tcallback?: (executable: string, args: any[]) => void\n}\n"],"mappings":";;;;;;;;;;;;AAAA,IAAAA,cAAA,GAAAC,OAAA;AAEA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,iBAAA,GAAAH,OAAA;AACA,IAAAI,aAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,WAAA,GAAAH,sBAAA,CAAAF,OAAA;AACA,IAAAM,SAAA,GAAAJ,sBAAA,CAAAF,OAAA;AACA,IAAAO,YAAA,GAAAL,sBAAA,CAAAF,OAAA;AAA+C,SAAAQ,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;AAE/CoB,OAAO,CAACC,eAAe,CAAC,GAAG,CAAC;AAAA,IAEPC,cAAc,GAAAC,OAAA;EAUlC,SAAAD,eAAmBE,GAAW,EAAE;IAAA,IAAAC,KAAA;IAAA,IAAAC,gBAAA,mBAAAJ,cAAA;IAAA,IAAAN,gBAAA;IAAA,IAAAA,gBAAA;IAAA,IAAAA,gBAAA,wCAPJ,KAAK;IAAA,IAAAA,gBAAA,2BA8InB,YAAM;MAAA,IAAAW,qBAAA;MACnB,KAAAA,qBAAA,GAAIF,KAAI,CAACG,kBAAkB,cAAAD,qBAAA,eAAvBA,qBAAA,CAAyBE,GAAG,EAAE;QACjCJ,KAAI,CAACK,iBAAiB,GAAG,IAAI;QAC7B,IAAAC,oBAAQ,EAACN,KAAI,CAACG,kBAAkB,CAACC,GAAG,EAAE,SAAS,CAAC;MACjD;IACD,CAAC;IAAA,IAAAb,gBAAA,0BAEY,YAAM;MAAA,IAAAgB,sBAAA;MAClB,QAAAA,sBAAA,GAAOP,KAAI,CAACG,kBAAkB,cAAAI,sBAAA,uBAAvBA,sBAAA,CAAyBH,GAAG;IACpC,CAAC;IA/IA,IAAI,CAACL,GAAG,GAAGA,GAAG;EACf;EAAC,IAAAS,aAAA,aAAAX,cAAA;IAAAY,GAAA;IAAAC,KAAA;MAAA,IAAAC,QAAA,OAAAC,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAED,SAAAC,QACCC,GAAW,EACXC,OAUC;QAAA,IAAAC,MAAA;QAAA,IAAAnB,GAAA,EAAAoB,IAAA,EAAAC,UAAA,EAAAC,SAAA,EAAAC,qBAAA,EAAAC,YAAA,EAAAC,OAAA,EAAAC,qBAAA,EAAAC,oBAAA;QAAA,OAAAb,YAAA,YAAAc,IAAA,UAAAC,SAAAC,QAAA;UAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;YAAA;cAIKhC,GAAG,GAAG,IAAI,CAACA,GAAG;cACdoB,IAAI,GAAG,CAAAF,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEE,IAAI,KAAI,IAAAa,sBAAU,EAAChB,GAAG,CAAC;cACvCI,UAAU,GAAGH,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEE,IAAI,GAAGH,GAAG,GAAGG,IAAI,CAACc,KAAK,CAAC,CAAC;cAC/CZ,SAAS,GAAG,IAAI,CAACa,IAAI,CAACC,IAAI,CAAC,IAAI,CAAC;cAAA,IAEjCf,UAAU;gBAAAS,QAAA,CAAAE,IAAA;gBAAA;cAAA;cAAA,MACR,IAAIK,KAAK,CAAC,oCAAoC,CAAC;YAAA;cAAAd,qBAAA,GAGpB,IAAI,CAACe,eAAe,CAACjB,UAAU,EAAED,IAAI,CAAC,EAAhEI,YAAY,GAAAD,qBAAA,CAAZC,YAAY,EAAEC,OAAO,GAAAF,qBAAA,CAAPE,OAAO;cAAA,KAEzBD,YAAY;gBAAAM,QAAA,CAAAE,IAAA;gBAAA;cAAA;cACflC,cAAc,CAACyC,kCAAkC,CAACrD,IAAI,CAACuC,OAAO,CAAC;cAC/D,CAAAC,qBAAA,GAAAF,YAAY,CAACgB,QAAQ,cAAAd,qBAAA,eAArBA,qBAAA,CAAAe,IAAA,CAAAjB,YAAY,EAAYH,UAAU,EAAED,IAAI,CAAC;cAAA,MAErCI,YAAY,CAACkB,IAAI,KAAK,CAAC;gBAAAZ,QAAA,CAAAE,IAAA;gBAAA;cAAA;cAAA,MACpB,IAAIW,uBAAW,CAAC;gBACrBD,IAAI,EAAE,0BAA0B;gBAChCzB,GAAG,KAAA2B,MAAA,CAAKvB,UAAU,OAAAuB,MAAA,CAAIxB,IAAI,CAACyB,IAAI,CAAC,GAAG,CAAC,CAAE;gBACtC7C,GAAG,EAAHA,GAAG;gBACH8C,MAAM,EAAEtB,YAAY,CAACsB,MAAM;gBAC3BC,MAAM,EAAEvB,YAAY,CAACuB;cACtB,CAAC,CAAC;YAAA;cAAA,OAAAjB,QAAA,CAAAkB,MAAA,WAGI;gBAAEF,MAAM,GAAAnB,oBAAA,GAAEH,YAAY,CAACsB,MAAM,cAAAnB,oBAAA,cAAAA,oBAAA,GAAI;cAAG,CAAC;YAAA;cAG7C/B,OAAO,CAACqD,EAAE,CAAC,MAAM,EAAE3B,SAAS,CAAC;cAAA,OAAAQ,QAAA,CAAAkB,MAAA,WAEtB,IAAIE,OAAO,CAAC,UAACC,OAAO,EAAEC,MAAM,EAAK;gBAAA,IAAAC,cAAA,EAAAC,aAAA;gBACvC,IAAIR,MAAM,GAAG,EAAE;gBACf,IAAIC,MAAM,GAAG,EAAE;gBACf,IAAMQ,YAA0B,GAAGrC,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEsC,YAAY,GACrD;kBACAC,KAAK,EAAE,SAAS;kBAChBzD,GAAG,EAAHA,GAAG;kBACH0D,GAAG,EAAAtE,aAAA;oBACFuE,IAAI,EAAE/D,OAAO,CAAC8D,GAAG,CAACC,IAAI;oBACtBC,MAAM,EAAE,MAAM;oBACdC,WAAW,EAAE3C,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAE4C,UAAU,GAAG,GAAG,GAAG;kBAAG,GACzC5C,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEwC,GAAG;gBAEjB,CAAC,GAAAtE,aAAA;kBAEAY,GAAG,EAAHA,GAAG;kBACH0D,GAAG,EAAAtE,aAAA;oBACFuE,IAAI,EAAE/D,OAAO,CAAC8D,GAAG,CAACC,IAAI;oBACtBC,MAAM,EAAE,MAAM;oBACdC,WAAW,EAAE3C,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAE4C,UAAU,GAAG,GAAG,GAAG;kBAAG,GACzC5C,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEwC,GAAG,CACf;kBACDK,KAAK,EAAE;gBAAI,GACR7C,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEqC,YAAY,CACxB;gBAEH,IAAMS,KAAK,GAAG,IAAAC,oBAAK,EAAC5C,UAAU,EAAED,IAAI,EAAEmC,YAAY,CAAC;gBACnDpC,MAAI,CAACf,kBAAkB,GAAG4D,KAAK;gBAE/B,IAAI9C,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEgD,SAAS,EAAE;kBAAA,IAAAC,aAAA;kBACvB,CAAAA,aAAA,GAAAH,KAAK,CAAClB,MAAM,cAAAqB,aAAA,eAAZA,aAAA,CAAcC,IAAI,CAAClD,OAAO,CAACgD,SAAS,CAAC;gBACtC;gBAEA,CAAAb,cAAA,GAAAW,KAAK,CAAClB,MAAM,cAAAO,cAAA,eAAZA,cAAA,CAAcgB,WAAW,CAAC,MAAM,EAAE,UAACC,IAAI,EAAK;kBAAA,IAAAC,eAAA;kBAC3CrD,OAAO,aAAPA,OAAO,gBAAAqD,eAAA,GAAPrD,OAAO,CAAEsD,MAAM,cAAAD,eAAA,eAAfA,eAAA,CAAA9B,IAAA,CAAAvB,OAAO,EAAWoD,IAAI,CAACG,QAAQ,CAAC,CAAC,CAAC;kBAClC3B,MAAM,IAAIwB,IAAI;gBACf,CAAC,CAAC;gBAEF,CAAAhB,aAAA,GAAAU,KAAK,CAACjB,MAAM,cAAAO,aAAA,eAAZA,aAAA,CAAce,WAAW,CAAC,MAAM,EAAE,UAACC,IAAI,EAAK;kBAAA,IAAAI,gBAAA;kBAC3CxD,OAAO,aAAPA,OAAO,gBAAAwD,gBAAA,GAAPxD,OAAO,CAAEyD,OAAO,cAAAD,gBAAA,eAAhBA,gBAAA,CAAAjC,IAAA,CAAAvB,OAAO,EAAYoD,IAAI,CAACG,QAAQ,CAAC,CAAC,CAAC;kBACnC1B,MAAM,IAAIuB,IAAI;gBACf,CAAC,CAAC;gBAEF,IAAMM,YAAY,GAAG,SAAfA,YAAYA,CAAIlC,IAAY,EAAK;kBACtC9C,OAAO,CAACiF,GAAG,CAAC,MAAM,EAAEvD,SAAS,CAAC;kBAE9B,IAAI,CAACH,MAAI,CAACf,kBAAkB,EAAE;oBAC7B;kBACD;kBACAe,MAAI,CAACf,kBAAkB,GAAG0E,SAAS;kBAEnCC,UAAU,CAAC,YAAM;oBAAA,IAAAC,cAAA,EAAAC,cAAA;oBAChB,CAAAD,cAAA,GAAAhB,KAAK,CAAClB,MAAM,cAAAkC,cAAA,eAAZA,cAAA,CAAcE,kBAAkB,CAAC,CAAC;oBAClC,CAAAD,cAAA,GAAAjB,KAAK,CAACjB,MAAM,cAAAkC,cAAA,eAAZA,cAAA,CAAcC,kBAAkB,CAAC,CAAC;oBAClClB,KAAK,CAACkB,kBAAkB,CAAC,CAAC;oBAE1B,IAAIxC,IAAI,KAAK,CAAC,IAAIvB,MAAI,CAACb,iBAAiB,IAAIY,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEiE,YAAY,EAAE;sBAClEhC,OAAO,CAAC;wBAAEL,MAAM,EAANA;sBAAO,CAAC,CAAC;sBACnB3B,MAAI,CAACb,iBAAiB,GAAG,KAAK;oBAC/B,CAAC,MAAM;sBACN,IAAIyC,MAAM,CAACqC,MAAM,CAAC,IAAAC,wBAAY,EAACC,+BAAa,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;wBACpD,IAAMC,WAAW,GAAGxC,MAAM,CAACyC,KAAK,CAACF,+BAAa,CAAC;wBAC/C,IAAMG,GAAG,GAAGC,iBAAmB,CAACC,KAAK,CAACJ,WAAW,CAAC,CAAC,CAAC,EAAE5C,uBAAW,CAAC;wBAClES,MAAM,CAACqC,GAAG,CAAC;wBACX;sBACD;sBAEArC,MAAM,CACL,IAAIT,uBAAW,CAAC;wBACfD,IAAI,EAAE,0BAA0B;wBAChCzB,GAAG,KAAA2B,MAAA,CAAKvB,UAAU,OAAAuB,MAAA,CAAIxB,IAAI,CAACyB,IAAI,CAAC,GAAG,CAAC,CAAE;wBACtC7C,GAAG,EAAHA,GAAG;wBACH8C,MAAM,EAANA,MAAM;wBACNC,MAAM,EAANA;sBACD,CAAC,CACF,CAAC;oBACF;kBACD,CAAC,EAAE,CAAC,CAAC;gBACN,CAAC;gBAEDiB,KAAK,CAACK,WAAW,CAAC,OAAO,EAAEO,YAAY,CAAC;gBACxCZ,KAAK,CAACK,WAAW,CAAC,MAAM,EAAEO,YAAY,CAAC;cACxC,CAAC,CAAC;YAAA;YAAA;cAAA,OAAA9C,QAAA,CAAA8D,IAAA;UAAA;QAAA,GAAA5E,OAAA;MAAA,CACF;MAAA,SAAA6E,QAAAC,EAAA,EAAAC,GAAA;QAAA,OAAAnF,QAAA,CAAAzB,KAAA,OAAAE,SAAA;MAAA;MAAA,OAAAwG,OAAA;IAAA;EAAA;IAAAnF,GAAA;IAAAC,KAAA,EAaD,SAAA2B,gBAAwBjB,UAAkB,EAAED,IAAc,EAAE;MAC3D,IAAMK,OAAO,GAAG,GAAAmB,MAAA,CAAGvB,UAAU,OAAAuB,MAAA,CAAIxB,IAAI,CAACyB,IAAI,CAAC,GAAG,CAAC,EAAGmD,IAAI,CAAC,CAAC;MACxD,IAAMC,QAAQ,GAAGnG,cAAc,CAACoG,aAAa;MAC7C,IAAMC,KAAK,GAAGF,QAAQ,CAACG,IAAI,CAAC,UAAC3H,CAAC;QAAA,OAC7BA,CAAC,CAAC4H,OAAO,YAAYC,MAAM,GACxB7E,OAAO,CAAC2D,MAAM,CAAC3G,CAAC,CAAC4H,OAAO,CAAC,GAAG,CAAC,CAAC,GAC9B5H,CAAC,CAAC4H,OAAO,CAACE,OAAO,CAAC,MAAO,EAAE,EAAE,CAAC,KAAK9E,OAAO,CAAC8E,OAAO,CAAC,MAAO,EAAE,EAAE,CAAC;MAAA,CACnE,CAAC;MAED,OAAO;QAAE/E,YAAY,EAAE2E,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEK,QAAQ;QAAE/E,OAAO,EAAPA;MAAQ,CAAC;IAClD;EAAC;IAAAf,GAAA;IAAAC,KAAA,EAED,SAAA8F,YAA0BJ,OAAwB,EAAEG,QAAsB,EAAE;MAC3E,IAAI,CAACN,aAAa,CAACQ,OAAO,CAAC;QAC1BL,OAAO,EAAPA,OAAO;QACPG,QAAQ,EAARA;MACD,CAAC,CAAC;IACH;EAAC;IAAA9F,GAAA;IAAAC,KAAA,EAED,SAAAgG,oBAAA,EAAoC;MACnC,IAAI,CAACT,aAAa,GAAG,EAAE;IACxB;EAAC;EAAA,OAAApG,cAAA;AAAA;AAAA,IAAAN,gBAAA,aAjLmBM,cAAc,mBAO5B,EAAE;AAAA,IAAAN,gBAAA,aAPYM,cAAc,wCAQ4B,EAAE","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"CommandService.js","names":["_child_process","require","_error","_interopRequireDefault","_spruceSkillUtils","_escapeRegExp","_stringArgv","_treeKill","_SpruceError","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","process","setMaxListeners","CommandService","exports","cwd","_this","_classCallCheck2","_this$activeChildProc","activeChildProcess","pid","ignoreCloseErrors","treeKill","_this$activeChildProc2","_createClass2","key","value","_execute","_asyncToGenerator2","_regenerator","mark","_callee","cmd","options","_this2","args","executable","boundKill","_this$getMockResponse","mockResponse","mockKey","_mockResponse$callbac","_mockResponse$stdout","wrap","_callee$","_context","prev","next","stringArgv","shift","kill","bind","Error","getMockResponse","commandsRunCapturedByMockResponses","callback","call","code","SpruceError","concat","join","stdout","stderr","abrupt","on","Promise","resolve","reject","_child$stdout2","_child$stderr","spawnOptions","shouldStream","stdio","env","PATH","IS_CLI","FORCE_COLOR","forceColor","shell","child","spawn","outStream","_child$stdout","pipe","addListener","data","_options$onData","onData","toString","_options$onError","onError","closeHandler","off","undefined","setTimeout","_child$stdout3","_child$stderr2","removeAllListeners","ignoreErrors","search","escapeRegExp","ERROR_DIVIDER","stderrParts","split","err","AbstractSpruceError","parse","stop","execute","_x","_x2","trim","commands","fakeResponses","match","find","command","RegExp","replace","response","fakeCommand","unshift","clearFakedResponses"],"sources":["../../src/services/CommandService.ts"],"sourcesContent":["import { spawn, SpawnOptions, ChildProcess } from 'child_process'\nimport { Writable } from 'stream'\nimport AbstractSpruceError from '@sprucelabs/error'\nimport { ERROR_DIVIDER } from '@sprucelabs/spruce-skill-utils'\nimport escapeRegExp from 'lodash/escapeRegExp'\nimport stringArgv from 'string-argv'\nimport treeKill from 'tree-kill'\nimport SpruceError from '../errors/SpruceError'\n\nprocess.setMaxListeners(100)\n\nexport default class CommandService {\n\tpublic cwd: string\n\tprivate activeChildProcess: ChildProcess | undefined\n\tprivate ignoreCloseErrors = false\n\tprivate static fakeResponses: {\n\t\tcommand: string | RegExp\n\t\tresponse: MockResponse\n\t}[] = []\n\tprivate static commandsRunCapturedByMockResponses: string[] = []\n\n\tpublic constructor(cwd: string) {\n\t\tthis.cwd = cwd\n\t}\n\n\tpublic async execute(\n\t\tcmd: string,\n\t\toptions?: {\n\t\t\tignoreErrors?: boolean\n\t\t\targs?: string[]\n\t\t\tshouldStream?: boolean\n\t\t\toutStream?: Writable\n\t\t\tonError?: (error: string) => void\n\t\t\tonData?: (data: string) => void\n\t\t\tspawnOptions?: SpawnOptions\n\t\t\tforceColor?: boolean\n\t\t\tenv?: Record<string, any>\n\t\t}\n\t): Promise<{\n\t\tstdout: string\n\t}> {\n\t\tconst cwd = this.cwd\n\t\tconst args = options?.args || stringArgv(cmd)\n\t\tconst executable = options?.args ? cmd : args.shift()\n\t\tconst boundKill = this.kill.bind(this)\n\n\t\tif (!executable) {\n\t\t\tthrow new Error('Bad params sent to command service')\n\t\t}\n\n\t\tconst { mockResponse, mockKey } = this.getMockResponse(executable, args)\n\n\t\tif (mockResponse) {\n\t\t\tCommandService.commandsRunCapturedByMockResponses.push(mockKey)\n\t\t\tmockResponse.callback?.(executable, args)\n\n\t\t\tif (mockResponse.code !== 0) {\n\t\t\t\tthrow new SpruceError({\n\t\t\t\t\tcode: 'EXECUTING_COMMAND_FAILED',\n\t\t\t\t\tcmd: `${executable} ${args.join(' ')}`,\n\t\t\t\t\tcwd,\n\t\t\t\t\tstdout: mockResponse.stdout,\n\t\t\t\t\tstderr: mockResponse.stderr,\n\t\t\t\t})\n\t\t\t}\n\n\t\t\treturn { stdout: mockResponse.stdout ?? '' }\n\t\t}\n\n\t\tprocess.on('exit', boundKill)\n\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tlet stdout = ''\n\t\t\tlet stderr = ''\n\t\t\tconst spawnOptions: SpawnOptions = options?.shouldStream\n\t\t\t\t? {\n\t\t\t\t\t\tstdio: 'inherit',\n\t\t\t\t\t\tcwd,\n\t\t\t\t\t\tenv: {\n\t\t\t\t\t\t\tPATH: process.env.PATH,\n\t\t\t\t\t\t\tIS_CLI: 'true',\n\t\t\t\t\t\t\tFORCE_COLOR: options?.forceColor ? '1' : '0',\n\t\t\t\t\t\t\t...options?.env,\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\t\t\t\t: {\n\t\t\t\t\t\tcwd,\n\t\t\t\t\t\tenv: {\n\t\t\t\t\t\t\tPATH: process.env.PATH,\n\t\t\t\t\t\t\tIS_CLI: 'true',\n\t\t\t\t\t\t\tFORCE_COLOR: options?.forceColor ? '1' : '0',\n\t\t\t\t\t\t\t...options?.env,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tshell: true,\n\t\t\t\t\t\t...options?.spawnOptions,\n\t\t\t\t\t}\n\n\t\t\tconst child = spawn(executable, args, spawnOptions)\n\t\t\tthis.activeChildProcess = child\n\n\t\t\tif (options?.outStream) {\n\t\t\t\tchild.stdout?.pipe(options.outStream)\n\t\t\t}\n\n\t\t\tchild.stdout?.addListener('data', (data) => {\n\t\t\t\toptions?.onData?.(data.toString())\n\t\t\t\tstdout += data\n\t\t\t})\n\n\t\t\tchild.stderr?.addListener('data', (data) => {\n\t\t\t\toptions?.onError?.(data.toString())\n\t\t\t\tstderr += data\n\t\t\t})\n\n\t\t\tconst closeHandler = (code: number) => {\n\t\t\t\tprocess.off('exit', boundKill)\n\n\t\t\t\tif (!this.activeChildProcess) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tthis.activeChildProcess = undefined\n\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tchild.stdout?.removeAllListeners()\n\t\t\t\t\tchild.stderr?.removeAllListeners()\n\t\t\t\t\tchild.removeAllListeners()\n\n\t\t\t\t\tif (code === 0 || this.ignoreCloseErrors || options?.ignoreErrors) {\n\t\t\t\t\t\tresolve({ stdout })\n\t\t\t\t\t\tthis.ignoreCloseErrors = false\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (stderr.search(escapeRegExp(ERROR_DIVIDER)) > -1) {\n\t\t\t\t\t\t\tconst stderrParts = stderr.split(ERROR_DIVIDER)\n\t\t\t\t\t\t\tconst err = AbstractSpruceError.parse(stderrParts[1], SpruceError)\n\t\t\t\t\t\t\treject(err)\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treject(\n\t\t\t\t\t\t\tnew SpruceError({\n\t\t\t\t\t\t\t\tcode: 'EXECUTING_COMMAND_FAILED',\n\t\t\t\t\t\t\t\tcmd: `${executable} ${args.join(' ')}`,\n\t\t\t\t\t\t\t\tcwd,\n\t\t\t\t\t\t\t\tstdout,\n\t\t\t\t\t\t\t\tstderr,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t}, 0)\n\t\t\t}\n\n\t\t\tchild.addListener('close', closeHandler)\n\t\t\tchild.addListener('exit', closeHandler)\n\t\t})\n\t}\n\n\tpublic kill = () => {\n\t\tif (this.activeChildProcess?.pid) {\n\t\t\tthis.ignoreCloseErrors = true\n\t\t\ttreeKill(this.activeChildProcess.pid, 'SIGTERM')\n\t\t}\n\t}\n\n\tpublic pid = () => {\n\t\treturn this.activeChildProcess?.pid\n\t}\n\n\tprivate getMockResponse(executable: string, args: string[]) {\n\t\tconst mockKey = `${executable} ${args.join(' ')}`.trim()\n\t\tconst commands = CommandService.fakeResponses\n\t\tconst match = commands.find((r) =>\n\t\t\tr.command instanceof RegExp\n\t\t\t\t? mockKey.search(r.command) > -1\n\t\t\t\t: r.command.replace(/ +/gis, '') === mockKey.replace(/ +/gis, '')\n\t\t)\n\n\t\treturn { mockResponse: match?.response, mockKey }\n\t}\n\n\tpublic static fakeCommand(command: string | RegExp, response: MockResponse) {\n\t\tthis.fakeResponses.unshift({\n\t\t\tcommand,\n\t\t\tresponse,\n\t\t})\n\t}\n\n\tpublic static clearFakedResponses() {\n\t\tthis.fakeResponses = []\n\t}\n}\n\ninterface MockResponse {\n\tcode: number\n\tstdout?: string\n\tstderr?: string\n\tcallback?: (executable: string, args: any[]) => void\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -15,7 +15,7 @@ var DependencyService = exports["default"] = /*#__PURE__*/function () {
|
|
|
15
15
|
(0, _defineProperty2["default"])(this, "settings", void 0);
|
|
16
16
|
this.settings = settings;
|
|
17
17
|
}
|
|
18
|
-
(0, _createClass2["default"])(DependencyService, [{
|
|
18
|
+
return (0, _createClass2["default"])(DependencyService, [{
|
|
19
19
|
key: "set",
|
|
20
20
|
value: function set(dependencies) {
|
|
21
21
|
this.settings.set('dependencies', dependencies);
|
|
@@ -50,6 +50,5 @@ var DependencyService = exports["default"] = /*#__PURE__*/function () {
|
|
|
50
50
|
return (_this$settings$get2 = this.settings.get('dependencies')) !== null && _this$settings$get2 !== void 0 ? _this$settings$get2 : [];
|
|
51
51
|
}
|
|
52
52
|
}]);
|
|
53
|
-
return DependencyService;
|
|
54
53
|
}();
|
|
55
54
|
//# sourceMappingURL=DependencyService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DependencyService.js","names":["_SpruceError","_interopRequireDefault","require","DependencyService","exports","settings","_classCallCheck2","_defineProperty2","_createClass2","key","value","set","dependencies","add","dependency","_this$settings$get","assertDependencyDoesNotExist","namespace","get","push","match","find","d","SpruceError","code","_this$settings$get2"],"sources":["../../src/services/DependencyService.ts"],"sourcesContent":["import { SettingsService } from '@sprucelabs/spruce-skill-utils'\nimport SpruceError from '../errors/SpruceError'\n\ninterface Dependency {\n\tid: string\n\tnamespace: string\n}\n\nexport default class DependencyService {\n\tprivate settings: SettingsService<string>\n\tpublic constructor(settings: SettingsService) {\n\t\tthis.settings = settings\n\t}\n\n\tpublic set(dependencies: Dependency[]) {\n\t\tthis.settings.set('dependencies', dependencies)\n\t}\n\n\tpublic add(dependency: Dependency) {\n\t\tthis.assertDependencyDoesNotExist(dependency.namespace)\n\n\t\tconst dependencies = this.settings.get('dependencies') ?? []\n\t\tdependencies.push(dependency)\n\t\tthis.settings.set('dependencies', dependencies)\n\t}\n\tprivate assertDependencyDoesNotExist(namespace: string) {\n\t\tconst dependencies = this.get()\n\t\tconst match = dependencies.find((d) => d.namespace === namespace)\n\n\t\tif (match) {\n\t\t\tthrow new SpruceError({\n\t\t\t\tcode: 'DEPENDENCY_EXISTS',\n\t\t\t\tnamespace,\n\t\t\t})\n\t\t}\n\t}\n\n\tpublic get(): Dependency[] {\n\t\treturn this.settings.get('dependencies') ?? []\n\t}\n}\n"],"mappings":";;;;;;;;;;AACA,IAAAA,YAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA+C,IAO1BC,iBAAiB,GAAAC,OAAA;EAErC,SAAAD,kBAAmBE,QAAyB,EAAE;IAAA,IAAAC,gBAAA,mBAAAH,iBAAA;IAAA,IAAAI,gBAAA;IAC7C,IAAI,CAACF,QAAQ,GAAGA,QAAQ;EACzB;EAAC,
|
|
1
|
+
{"version":3,"file":"DependencyService.js","names":["_SpruceError","_interopRequireDefault","require","DependencyService","exports","settings","_classCallCheck2","_defineProperty2","_createClass2","key","value","set","dependencies","add","dependency","_this$settings$get","assertDependencyDoesNotExist","namespace","get","push","match","find","d","SpruceError","code","_this$settings$get2"],"sources":["../../src/services/DependencyService.ts"],"sourcesContent":["import { SettingsService } from '@sprucelabs/spruce-skill-utils'\nimport SpruceError from '../errors/SpruceError'\n\ninterface Dependency {\n\tid: string\n\tnamespace: string\n}\n\nexport default class DependencyService {\n\tprivate settings: SettingsService<string>\n\tpublic constructor(settings: SettingsService) {\n\t\tthis.settings = settings\n\t}\n\n\tpublic set(dependencies: Dependency[]) {\n\t\tthis.settings.set('dependencies', dependencies)\n\t}\n\n\tpublic add(dependency: Dependency) {\n\t\tthis.assertDependencyDoesNotExist(dependency.namespace)\n\n\t\tconst dependencies = this.settings.get('dependencies') ?? []\n\t\tdependencies.push(dependency)\n\t\tthis.settings.set('dependencies', dependencies)\n\t}\n\tprivate assertDependencyDoesNotExist(namespace: string) {\n\t\tconst dependencies = this.get()\n\t\tconst match = dependencies.find((d) => d.namespace === namespace)\n\n\t\tif (match) {\n\t\t\tthrow new SpruceError({\n\t\t\t\tcode: 'DEPENDENCY_EXISTS',\n\t\t\t\tnamespace,\n\t\t\t})\n\t\t}\n\t}\n\n\tpublic get(): Dependency[] {\n\t\treturn this.settings.get('dependencies') ?? []\n\t}\n}\n"],"mappings":";;;;;;;;;;AACA,IAAAA,YAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA+C,IAO1BC,iBAAiB,GAAAC,OAAA;EAErC,SAAAD,kBAAmBE,QAAyB,EAAE;IAAA,IAAAC,gBAAA,mBAAAH,iBAAA;IAAA,IAAAI,gBAAA;IAC7C,IAAI,CAACF,QAAQ,GAAGA,QAAQ;EACzB;EAAC,WAAAG,aAAA,aAAAL,iBAAA;IAAAM,GAAA;IAAAC,KAAA,EAED,SAAAC,IAAWC,YAA0B,EAAE;MACtC,IAAI,CAACP,QAAQ,CAACM,GAAG,CAAC,cAAc,EAAEC,YAAY,CAAC;IAChD;EAAC;IAAAH,GAAA;IAAAC,KAAA,EAED,SAAAG,IAAWC,UAAsB,EAAE;MAAA,IAAAC,kBAAA;MAClC,IAAI,CAACC,4BAA4B,CAACF,UAAU,CAACG,SAAS,CAAC;MAEvD,IAAML,YAAY,IAAAG,kBAAA,GAAG,IAAI,CAACV,QAAQ,CAACa,GAAG,CAAC,cAAc,CAAC,cAAAH,kBAAA,cAAAA,kBAAA,GAAI,EAAE;MAC5DH,YAAY,CAACO,IAAI,CAACL,UAAU,CAAC;MAC7B,IAAI,CAACT,QAAQ,CAACM,GAAG,CAAC,cAAc,EAAEC,YAAY,CAAC;IAChD;EAAC;IAAAH,GAAA;IAAAC,KAAA,EACD,SAAAM,6BAAqCC,SAAiB,EAAE;MACvD,IAAML,YAAY,GAAG,IAAI,CAACM,GAAG,CAAC,CAAC;MAC/B,IAAME,KAAK,GAAGR,YAAY,CAACS,IAAI,CAAC,UAACC,CAAC;QAAA,OAAKA,CAAC,CAACL,SAAS,KAAKA,SAAS;MAAA,EAAC;MAEjE,IAAIG,KAAK,EAAE;QACV,MAAM,IAAIG,uBAAW,CAAC;UACrBC,IAAI,EAAE,mBAAmB;UACzBP,SAAS,EAATA;QACD,CAAC,CAAC;MACH;IACD;EAAC;IAAAR,GAAA;IAAAC,KAAA,EAED,SAAAQ,IAAA,EAA2B;MAAA,IAAAO,mBAAA;MAC1B,QAAAA,mBAAA,GAAO,IAAI,CAACpB,QAAQ,CAACa,GAAG,CAAC,cAAc,CAAC,cAAAO,mBAAA,cAAAA,mBAAA,GAAI,EAAE;IAC/C;EAAC;AAAA","ignoreList":[]}
|
|
@@ -23,7 +23,7 @@ var GameService = exports["default"] = /*#__PURE__*/function () {
|
|
|
23
23
|
this.ui = ui;
|
|
24
24
|
this.command.cwd = _spruceSkillUtils.diskUtil.resolvePath(__dirname, '../../');
|
|
25
25
|
}
|
|
26
|
-
(0, _createClass2["default"])(GameService, [{
|
|
26
|
+
return (0, _createClass2["default"])(GameService, [{
|
|
27
27
|
key: "setStatusMessage",
|
|
28
28
|
value: function setStatusMessage(message) {
|
|
29
29
|
this.statusMessage = message;
|
|
@@ -106,6 +106,5 @@ var GameService = exports["default"] = /*#__PURE__*/function () {
|
|
|
106
106
|
this.ui.clear();
|
|
107
107
|
}
|
|
108
108
|
}]);
|
|
109
|
-
return GameService;
|
|
110
109
|
}();
|
|
111
110
|
//# sourceMappingURL=GameService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GameService.js","names":["_spruceSkillUtils","require","GameService","exports","command","ui","_classCallCheck2","_defineProperty2","cwd","diskUtil","resolvePath","__dirname","_createClass2","key","value","setStatusMessage","message","statusMessage","_play","_asyncToGenerator2","_regenerator","mark","_callee","_this","introductionSentences","sentencesToPlay","next","_args","arguments","wrap","_callee$","_context","prev","length","undefined","_toConsumableArray2","stopLoading","killed","shift","renderLine","Promise","r","setTimeout","abrupt","execute","spawnOptions","stdio","process","stdin","onData","data","_process$stdout","stdout","write","_process$stdout2","saveCursor","moveCursorTo","clearBelowCursor","restoreCursor","stop","play","apply","kill","clear"],"sources":["../../src/services/GameService.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport TerminalInterface from '../interfaces/TerminalInterface'\nimport CommandService from './CommandService'\n\nexport default class GameService {\n\tprivate command: CommandService\n\tprivate ui: TerminalInterface\n\tprivate statusMessage?: string\n\tprivate killed = false\n\n\tpublic constructor(command: CommandService, ui: TerminalInterface) {\n\t\tthis.command = command\n\t\tthis.ui = ui\n\t\tthis.command.cwd = diskUtil.resolvePath(__dirname, '../../')\n\t}\n\n\tpublic setStatusMessage(message: string) {\n\t\tthis.statusMessage = message\n\t}\n\n\tpublic async play(introductionSentences: string[] = []) {\n\t\tconst sentencesToPlay = [...introductionSentences]\n\t\tawait this.ui.stopLoading()\n\t\tthis.killed = false\n\n\t\twhile (sentencesToPlay.length > 0) {\n\t\t\tconst next = sentencesToPlay.shift() as string\n\t\t\tthis.ui.renderLine(next)\n\t\t\tawait new Promise((r) => setTimeout(r, 2000))\n\t\t\tif (this.killed) {\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\n\t\tawait this.command.execute('node ./node_modules/.bin/js-tetris-cli', {\n\t\t\tspawnOptions: {\n\t\t\t\tstdio: [process.stdin, 'pipe', 'pipe'],\n\t\t\t},\n\t\t\tonData: (data: string) => {\n\t\t\t\tif (!this.killed) {\n\t\t\t\t\tprocess.stdout?.write(data)\n\t\t\t\t\tif (this.statusMessage) {\n\t\t\t\t\t\tthis.ui.saveCursor()\n\t\t\t\t\t\tthis.ui.moveCursorTo(0, 25)\n\t\t\t\t\t\tthis.ui.clearBelowCursor()\n\t\t\t\t\t\tprocess.stdout?.write(this.statusMessage)\n\t\t\t\t\t\tthis.ui.restoreCursor()\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t})\n\t}\n\n\tpublic kill() {\n\t\tthis.killed = true\n\t\tthis.command.kill()\n\t\tthis.ui.clear()\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AAAyD,IAIpCC,WAAW,GAAAC,OAAA;EAM/B,SAAAD,YAAmBE,OAAuB,EAAEC,EAAqB,EAAE;IAAA,IAAAC,gBAAA,mBAAAJ,WAAA;IAAA,IAAAK,gBAAA;IAAA,IAAAA,gBAAA;IAAA,IAAAA,gBAAA;IAAA,IAAAA,gBAAA,6BAFlD,KAAK;IAGrB,IAAI,CAACH,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACC,EAAE,GAAGA,EAAE;IACZ,IAAI,CAACD,OAAO,CAACI,GAAG,GAAGC,0BAAQ,CAACC,WAAW,CAACC,SAAS,EAAE,QAAQ,CAAC;EAC7D;EAAC,
|
|
1
|
+
{"version":3,"file":"GameService.js","names":["_spruceSkillUtils","require","GameService","exports","command","ui","_classCallCheck2","_defineProperty2","cwd","diskUtil","resolvePath","__dirname","_createClass2","key","value","setStatusMessage","message","statusMessage","_play","_asyncToGenerator2","_regenerator","mark","_callee","_this","introductionSentences","sentencesToPlay","next","_args","arguments","wrap","_callee$","_context","prev","length","undefined","_toConsumableArray2","stopLoading","killed","shift","renderLine","Promise","r","setTimeout","abrupt","execute","spawnOptions","stdio","process","stdin","onData","data","_process$stdout","stdout","write","_process$stdout2","saveCursor","moveCursorTo","clearBelowCursor","restoreCursor","stop","play","apply","kill","clear"],"sources":["../../src/services/GameService.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport TerminalInterface from '../interfaces/TerminalInterface'\nimport CommandService from './CommandService'\n\nexport default class GameService {\n\tprivate command: CommandService\n\tprivate ui: TerminalInterface\n\tprivate statusMessage?: string\n\tprivate killed = false\n\n\tpublic constructor(command: CommandService, ui: TerminalInterface) {\n\t\tthis.command = command\n\t\tthis.ui = ui\n\t\tthis.command.cwd = diskUtil.resolvePath(__dirname, '../../')\n\t}\n\n\tpublic setStatusMessage(message: string) {\n\t\tthis.statusMessage = message\n\t}\n\n\tpublic async play(introductionSentences: string[] = []) {\n\t\tconst sentencesToPlay = [...introductionSentences]\n\t\tawait this.ui.stopLoading()\n\t\tthis.killed = false\n\n\t\twhile (sentencesToPlay.length > 0) {\n\t\t\tconst next = sentencesToPlay.shift() as string\n\t\t\tthis.ui.renderLine(next)\n\t\t\tawait new Promise((r) => setTimeout(r, 2000))\n\t\t\tif (this.killed) {\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\n\t\tawait this.command.execute('node ./node_modules/.bin/js-tetris-cli', {\n\t\t\tspawnOptions: {\n\t\t\t\tstdio: [process.stdin, 'pipe', 'pipe'],\n\t\t\t},\n\t\t\tonData: (data: string) => {\n\t\t\t\tif (!this.killed) {\n\t\t\t\t\tprocess.stdout?.write(data)\n\t\t\t\t\tif (this.statusMessage) {\n\t\t\t\t\t\tthis.ui.saveCursor()\n\t\t\t\t\t\tthis.ui.moveCursorTo(0, 25)\n\t\t\t\t\t\tthis.ui.clearBelowCursor()\n\t\t\t\t\t\tprocess.stdout?.write(this.statusMessage)\n\t\t\t\t\t\tthis.ui.restoreCursor()\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t})\n\t}\n\n\tpublic kill() {\n\t\tthis.killed = true\n\t\tthis.command.kill()\n\t\tthis.ui.clear()\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -166,7 +166,7 @@ var ImportService = exports["default"] = /*#__PURE__*/function () {
|
|
|
166
166
|
this.cwd = options.cwd;
|
|
167
167
|
this.command = options.command;
|
|
168
168
|
}
|
|
169
|
-
(0, _createClass2["default"])(ImportService, [{
|
|
169
|
+
return (0, _createClass2["default"])(ImportService, [{
|
|
170
170
|
key: "haveImportsChanged",
|
|
171
171
|
value: function haveImportsChanged(originalFilepath, contents) {
|
|
172
172
|
var changed = false;
|
|
@@ -378,7 +378,6 @@ var ImportService = exports["default"] = /*#__PURE__*/function () {
|
|
|
378
378
|
return this.importCacheDir;
|
|
379
379
|
}
|
|
380
380
|
}]);
|
|
381
|
-
return ImportService;
|
|
382
381
|
}();
|
|
383
382
|
(0, _defineProperty2["default"])(ImportService, "cachedImports", {});
|
|
384
383
|
(0, _defineProperty2["default"])(ImportService, "importCacheDir", _spruceSkillUtils.diskUtil.createTempDir('import-service'));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImportService.js","names":["_path","_interopRequireDefault","require","_spruceSkillUtils","_fsExtra","_md","_SpruceError","_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","ImportService","exports","options","_this","_classCallCheck2","_defineProperty2","_ref","_asyncToGenerator2","_regenerator","mark","_callee","file","_this$pullHashAndCont","hash","fileContents","isDirty","response","wrap","_callee$","_context","prev","isCachingEnabled","abrupt","importAllUncached","pullHashAndContents","hasFileChanged","haveImportsChanged","cachedImports","importAllCached","sent","writeCacheFile","stop","_x","apply","arguments","_ref2","_callee2","defaultImported","args","_yield$_this$command$","stdout","successParts","errParts","proxyError","_callee2$","_context2","fs","existsSync","SpruceError","code","friendlyMessage","concat","divider","errorDivider","search","_toConsumableArray2","command","execute","split","buildErrorFromExecuteResponse","JSON","parse","t0","originalError","_x2","_ref3","_callee3","imported","_callee3$","_context3","importAll","_x3","cwd","_createClass2","key","originalFilepath","contents","changed","importMatches","regex","exec","match","dir","pathUtil","dirname","nodeResolved","resolve","join","_this$pullHashAndCont2","_unused","destination","resolveCacheFile","diskUtil","writeFile","stringify","_this$pullHashAndCont3","cacheFile","readFile","Error","_unused2","_errParts$","stack","_bulkImport","_callee4","files","filepath","filename","imports","idx","_iterator","_step","_file","relative","fullPath","results","_iterator2","_step2","_callee4$","_context4","resolvePath","Date","getTime","replace","extname","importDefault","t1","finish","deleteDir","bulkImport","_x4","resolvedFilePath","doesFileExist","cacheDir","md5","clearCache","setCacheDir","importCacheDir","disableCache","enableCaching","createTempDir"],"sources":["../../src/services/ImportService.ts"],"sourcesContent":["import pathUtil from 'path'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport fs from 'fs-extra'\nimport md5 from 'md5'\nimport SpruceError from '../errors/SpruceError'\nimport CommandService from './CommandService'\n\nexport default class ImportService {\n\tpublic cwd: string\n\n\tprivate divider = '## SPRUCE-CLI DIVIDER ##'\n\tprivate errorDivider = '## SPRUCE-CLI ERROR DIVIDER ##'\n\n\tprivate static cachedImports: Record<string, Record<string, any>> = {}\n\tprivate static importCacheDir: string =\n\t\tdiskUtil.createTempDir('import-service')\n\tprivate command: CommandService\n\tprivate static isCachingEnabled: boolean\n\n\tpublic constructor(options: { cwd: string; command: CommandService }) {\n\t\tthis.cwd = options.cwd\n\t\tthis.command = options.command\n\t}\n\n\tpublic importAll = async <T extends Record<string, any>>(\n\t\tfile: string\n\t): Promise<T> => {\n\t\tif (!ImportService.isCachingEnabled) {\n\t\t\treturn this.importAllUncached(file)\n\t\t}\n\n\t\tconst { hash, fileContents } = this.pullHashAndContents(file)\n\n\t\tif (!this.hasFileChanged(hash)) {\n\t\t\tconst isDirty = this.haveImportsChanged(file, fileContents)\n\n\t\t\tif (!isDirty && ImportService.cachedImports[hash]) {\n\t\t\t\treturn ImportService.cachedImports[hash] as T\n\t\t\t} else if (!isDirty) {\n\t\t\t\tImportService.cachedImports[hash] = this.importAllCached(file)\n\t\t\t\treturn ImportService.cachedImports[hash] as T\n\t\t\t}\n\t\t}\n\n\t\tImportService.cachedImports[hash] = this.importAllUncached(file)\n\t\tconst response = (await ImportService.cachedImports[hash]) as T\n\t\tthis.writeCacheFile(hash, response)\n\n\t\treturn response\n\t}\n\n\tprivate haveImportsChanged(\n\t\toriginalFilepath: string,\n\t\tcontents: string\n\t): boolean {\n\t\tlet changed = false\n\t\tlet importMatches\n\n\t\t// only check files that start with dot because they are local and we can actually only check local files\n\t\tconst regex =\n\t\t\toriginalFilepath.search(/\\.js$/i) > -1\n\t\t\t\t? /require\\(['\"](\\..*?)['\"]\\)/gis\n\t\t\t\t: /import.*[\"'](\\..*?)[\"']/gis\n\n\t\twhile ((importMatches = regex.exec(contents)) !== null) {\n\t\t\ttry {\n\t\t\t\tconst match = importMatches[1]\n\t\t\t\tconst dir = pathUtil.dirname(originalFilepath)\n\t\t\t\tconst nodeResolved = require.resolve(pathUtil.join(dir, match))\n\t\t\t\tconst { hash } = this.pullHashAndContents(nodeResolved)\n\n\t\t\t\tif (this.hasFileChanged(hash)) {\n\t\t\t\t\tchanged = true\n\t\t\t\t}\n\t\t\t} catch {\n\t\t\t\tchanged = true\n\t\t\t}\n\t\t}\n\n\t\treturn changed\n\t}\n\n\tprivate writeCacheFile(hash: string, contents: Record<string, any>) {\n\t\tconst destination = this.resolveCacheFile(hash)\n\t\tdiskUtil.writeFile(destination, JSON.stringify(contents))\n\t}\n\n\tprivate importAllCached(file: string) {\n\t\tconst { hash } = this.pullHashAndContents(file)\n\n\t\tconst cacheFile = this.resolveCacheFile(hash)\n\t\tconst contents = diskUtil.readFile(cacheFile)\n\n\t\treturn JSON.parse(contents)\n\t}\n\n\tprivate importAllUncached = async <T extends Record<string, any>>(\n\t\tfile: string\n\t): Promise<T> => {\n\t\tlet defaultImported: T | undefined\n\n\t\tif (!fs.existsSync(file)) {\n\t\t\tthrow new SpruceError({\n\t\t\t\tcode: 'FAILED_TO_IMPORT',\n\t\t\t\tfile,\n\t\t\t\tfriendlyMessage: `I couldn't import ${file} because I couldn't find it!`,\n\t\t\t})\n\t\t}\n\n\t\tlet args = [\n\t\t\t'-e',\n\t\t\t`\"try { const imported = require('${file}');console.log('${this.divider}');console.log(JSON.stringify(imported)); } catch(err) { console.log('${this.errorDivider}');console.log(err.options ? err.toString() : err.stack); }\"`,\n\t\t]\n\n\t\tif (file.search(/\\.ts$/i) > -1) {\n\t\t\targs = [\n\t\t\t\t'-r',\n\t\t\t\t'ts-node/register',\n\t\t\t\t'-r',\n\t\t\t\t'tsconfig-paths/register',\n\t\t\t\t...args,\n\t\t\t]\n\t\t}\n\n\t\ttry {\n\t\t\tconst { stdout } = await this.command.execute('node', {\n\t\t\t\targs,\n\t\t\t})\n\n\t\t\tconst successParts = stdout.split(this.divider)\n\t\t\tconst errParts = stdout.split(this.errorDivider)\n\n\t\t\tif (errParts.length > 1) {\n\t\t\t\tconst proxyError = this.buildErrorFromExecuteResponse(\n\t\t\t\t\terrParts,\n\t\t\t\t\tfile,\n\t\t\t\t\tstdout\n\t\t\t\t)\n\n\t\t\t\tthrow proxyError\n\t\t\t} else {\n\t\t\t\tdefaultImported = JSON.parse(successParts[1])\n\t\t\t}\n\t\t} catch (err: any) {\n\t\t\tif (err instanceof SpruceError) {\n\t\t\t\tthrow err\n\t\t\t} else {\n\t\t\t\tthrow new SpruceError({\n\t\t\t\t\tcode: 'FAILED_TO_IMPORT',\n\t\t\t\t\tfile,\n\t\t\t\t\toriginalError: err,\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\treturn defaultImported as T\n\t}\n\n\tpublic importDefault = async <T extends Record<string, any>>(\n\t\tfile: string\n\t): Promise<T> => {\n\t\tconst imported: any = await this.importAll(file)\n\t\treturn imported.default as T\n\t}\n\n\tprivate buildErrorFromExecuteResponse(\n\t\terrParts: string[],\n\t\tfile: string,\n\t\tstdout: string\n\t) {\n\t\tlet err: Record<string, any> = {}\n\t\ttry {\n\t\t\terr = JSON.parse(errParts[1])\n\t\t\tif (!err.options) {\n\t\t\t\tthrow Error('Capture and reported below')\n\t\t\t}\n\t\t} catch {\n\t\t\terr = {\n\t\t\t\toptions: {\n\t\t\t\t\tcode: 'FAILED_TO_IMPORT',\n\t\t\t\t\tfile,\n\t\t\t\t\tfriendlyMessage: `Unknown error from import, output was: \\n\\n\"${\n\t\t\t\t\t\terrParts[1] ?? stdout\n\t\t\t\t\t}\"`,\n\t\t\t\t},\n\t\t\t}\n\t\t}\n\n\t\tconst proxyError = new SpruceError(err.options)\n\n\t\tif (err.stack) {\n\t\t\tproxyError.stack = err.stack\n\t\t}\n\t\treturn proxyError\n\t}\n\n\tpublic async bulkImport(files: string[]): Promise<any[]> {\n\t\tif (files.length === 0) {\n\t\t\treturn []\n\t\t}\n\t\tconst filepath = diskUtil.resolvePath(this.cwd, '.tmp')\n\t\tconst filename = 'bulk-import-' + new Date().getTime() + '.ts'\n\n\t\tlet imports = ``\n\t\tlet exports = `export default [\\n`\n\n\t\tlet idx = 0\n\t\tfor (const file of files) {\n\t\t\tconst relative = pathUtil\n\t\t\t\t.relative(filepath, file)\n\t\t\t\t.replace(pathUtil.extname(file), '')\n\n\t\t\timports += `import { default as import${idx}} from '${relative}'\\n`\n\t\t\texports += `import${idx},\\n`\n\t\t\tidx++\n\t\t}\n\n\t\texports += ']'\n\n\t\tconst contents = imports + `\\n\\n` + exports\n\t\tconst fullPath = pathUtil.join(filepath, filename)\n\t\tdiskUtil.writeFile(fullPath, contents)\n\n\t\ttry {\n\t\t\tconst results = (await this.importDefault(fullPath)) as any[]\n\n\t\t\treturn results as any\n\t\t} catch (err) {\n\t\t\t// if something failed, lets load one at a time until we find the one that failes\n\t\t\tfor (const file of files) {\n\t\t\t\tconst imported = await this.importDefault(file)\n\t\t\t\tif (!imported) {\n\t\t\t\t\tthrow new SpruceError({\n\t\t\t\t\t\tcode: 'FAILED_TO_IMPORT',\n\t\t\t\t\t\tfile,\n\t\t\t\t\t\tfriendlyMessage: `Looks like ${file} does not export default.`,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthrow err\n\t\t} finally {\n\t\t\tdiskUtil.deleteDir(filepath)\n\t\t}\n\t}\n\n\tpublic static clearCache() {\n\t\tImportService.cachedImports = {}\n\t\tdiskUtil.deleteDir(this.cacheDir())\n\t}\n\n\tpublic static setCacheDir(cacheDir: string) {\n\t\tthis.importCacheDir = cacheDir\n\t}\n\n\tpublic static disableCache() {\n\t\tthis.isCachingEnabled = false\n\t}\n\n\tpublic static enableCaching() {\n\t\tthis.isCachingEnabled = true\n\t}\n\n\tprivate hasFileChanged(hash: string) {\n\t\tconst resolvedFilePath = this.resolveCacheFile(hash)\n\t\treturn !diskUtil.doesFileExist(resolvedFilePath)\n\t}\n\n\tprivate resolveCacheFile(hash: string) {\n\t\treturn diskUtil.resolvePath(ImportService.cacheDir(), hash + '.json')\n\t}\n\n\tprivate static cacheDir(): string {\n\t\treturn this.importCacheDir\n\t}\n\n\tprivate pullHashAndContents(file: string) {\n\t\tconst fileContents = diskUtil.readFile(file)\n\t\tconst hash = md5(fileContents)\n\t\treturn { hash, fileContents }\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ImportService.js","names":["_path","_interopRequireDefault","require","_spruceSkillUtils","_fsExtra","_md","_SpruceError","_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","ImportService","exports","options","_this","_classCallCheck2","_defineProperty2","_ref","_asyncToGenerator2","_regenerator","mark","_callee","file","_this$pullHashAndCont","hash","fileContents","isDirty","response","wrap","_callee$","_context","prev","isCachingEnabled","abrupt","importAllUncached","pullHashAndContents","hasFileChanged","haveImportsChanged","cachedImports","importAllCached","sent","writeCacheFile","stop","_x","apply","arguments","_ref2","_callee2","defaultImported","args","_yield$_this$command$","stdout","successParts","errParts","proxyError","_callee2$","_context2","fs","existsSync","SpruceError","code","friendlyMessage","concat","divider","errorDivider","search","_toConsumableArray2","command","execute","split","buildErrorFromExecuteResponse","JSON","parse","t0","originalError","_x2","_ref3","_callee3","imported","_callee3$","_context3","importAll","_x3","cwd","_createClass2","key","originalFilepath","contents","changed","importMatches","regex","exec","match","dir","pathUtil","dirname","nodeResolved","resolve","join","_this$pullHashAndCont2","_unused","destination","resolveCacheFile","diskUtil","writeFile","stringify","_this$pullHashAndCont3","cacheFile","readFile","Error","_unused2","_errParts$","stack","_bulkImport","_callee4","files","filepath","filename","imports","idx","_iterator","_step","_file","relative","fullPath","results","_iterator2","_step2","_callee4$","_context4","resolvePath","Date","getTime","replace","extname","importDefault","t1","finish","deleteDir","bulkImport","_x4","resolvedFilePath","doesFileExist","cacheDir","md5","clearCache","setCacheDir","importCacheDir","disableCache","enableCaching","createTempDir"],"sources":["../../src/services/ImportService.ts"],"sourcesContent":["import pathUtil from 'path'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport fs from 'fs-extra'\nimport md5 from 'md5'\nimport SpruceError from '../errors/SpruceError'\nimport CommandService from './CommandService'\n\nexport default class ImportService {\n\tpublic cwd: string\n\n\tprivate divider = '## SPRUCE-CLI DIVIDER ##'\n\tprivate errorDivider = '## SPRUCE-CLI ERROR DIVIDER ##'\n\n\tprivate static cachedImports: Record<string, Record<string, any>> = {}\n\tprivate static importCacheDir: string =\n\t\tdiskUtil.createTempDir('import-service')\n\tprivate command: CommandService\n\tprivate static isCachingEnabled: boolean\n\n\tpublic constructor(options: { cwd: string; command: CommandService }) {\n\t\tthis.cwd = options.cwd\n\t\tthis.command = options.command\n\t}\n\n\tpublic importAll = async <T extends Record<string, any>>(\n\t\tfile: string\n\t): Promise<T> => {\n\t\tif (!ImportService.isCachingEnabled) {\n\t\t\treturn this.importAllUncached(file)\n\t\t}\n\n\t\tconst { hash, fileContents } = this.pullHashAndContents(file)\n\n\t\tif (!this.hasFileChanged(hash)) {\n\t\t\tconst isDirty = this.haveImportsChanged(file, fileContents)\n\n\t\t\tif (!isDirty && ImportService.cachedImports[hash]) {\n\t\t\t\treturn ImportService.cachedImports[hash] as T\n\t\t\t} else if (!isDirty) {\n\t\t\t\tImportService.cachedImports[hash] = this.importAllCached(file)\n\t\t\t\treturn ImportService.cachedImports[hash] as T\n\t\t\t}\n\t\t}\n\n\t\tImportService.cachedImports[hash] = this.importAllUncached(file)\n\t\tconst response = (await ImportService.cachedImports[hash]) as T\n\t\tthis.writeCacheFile(hash, response)\n\n\t\treturn response\n\t}\n\n\tprivate haveImportsChanged(\n\t\toriginalFilepath: string,\n\t\tcontents: string\n\t): boolean {\n\t\tlet changed = false\n\t\tlet importMatches\n\n\t\t// only check files that start with dot because they are local and we can actually only check local files\n\t\tconst regex =\n\t\t\toriginalFilepath.search(/\\.js$/i) > -1\n\t\t\t\t? /require\\(['\"](\\..*?)['\"]\\)/gis\n\t\t\t\t: /import.*[\"'](\\..*?)[\"']/gis\n\n\t\twhile ((importMatches = regex.exec(contents)) !== null) {\n\t\t\ttry {\n\t\t\t\tconst match = importMatches[1]\n\t\t\t\tconst dir = pathUtil.dirname(originalFilepath)\n\t\t\t\tconst nodeResolved = require.resolve(pathUtil.join(dir, match))\n\t\t\t\tconst { hash } = this.pullHashAndContents(nodeResolved)\n\n\t\t\t\tif (this.hasFileChanged(hash)) {\n\t\t\t\t\tchanged = true\n\t\t\t\t}\n\t\t\t} catch {\n\t\t\t\tchanged = true\n\t\t\t}\n\t\t}\n\n\t\treturn changed\n\t}\n\n\tprivate writeCacheFile(hash: string, contents: Record<string, any>) {\n\t\tconst destination = this.resolveCacheFile(hash)\n\t\tdiskUtil.writeFile(destination, JSON.stringify(contents))\n\t}\n\n\tprivate importAllCached(file: string) {\n\t\tconst { hash } = this.pullHashAndContents(file)\n\n\t\tconst cacheFile = this.resolveCacheFile(hash)\n\t\tconst contents = diskUtil.readFile(cacheFile)\n\n\t\treturn JSON.parse(contents)\n\t}\n\n\tprivate importAllUncached = async <T extends Record<string, any>>(\n\t\tfile: string\n\t): Promise<T> => {\n\t\tlet defaultImported: T | undefined\n\n\t\tif (!fs.existsSync(file)) {\n\t\t\tthrow new SpruceError({\n\t\t\t\tcode: 'FAILED_TO_IMPORT',\n\t\t\t\tfile,\n\t\t\t\tfriendlyMessage: `I couldn't import ${file} because I couldn't find it!`,\n\t\t\t})\n\t\t}\n\n\t\tlet args = [\n\t\t\t'-e',\n\t\t\t`\"try { const imported = require('${file}');console.log('${this.divider}');console.log(JSON.stringify(imported)); } catch(err) { console.log('${this.errorDivider}');console.log(err.options ? err.toString() : err.stack); }\"`,\n\t\t]\n\n\t\tif (file.search(/\\.ts$/i) > -1) {\n\t\t\targs = [\n\t\t\t\t'-r',\n\t\t\t\t'ts-node/register',\n\t\t\t\t'-r',\n\t\t\t\t'tsconfig-paths/register',\n\t\t\t\t...args,\n\t\t\t]\n\t\t}\n\n\t\ttry {\n\t\t\tconst { stdout } = await this.command.execute('node', {\n\t\t\t\targs,\n\t\t\t})\n\n\t\t\tconst successParts = stdout.split(this.divider)\n\t\t\tconst errParts = stdout.split(this.errorDivider)\n\n\t\t\tif (errParts.length > 1) {\n\t\t\t\tconst proxyError = this.buildErrorFromExecuteResponse(\n\t\t\t\t\terrParts,\n\t\t\t\t\tfile,\n\t\t\t\t\tstdout\n\t\t\t\t)\n\n\t\t\t\tthrow proxyError\n\t\t\t} else {\n\t\t\t\tdefaultImported = JSON.parse(successParts[1])\n\t\t\t}\n\t\t} catch (err: any) {\n\t\t\tif (err instanceof SpruceError) {\n\t\t\t\tthrow err\n\t\t\t} else {\n\t\t\t\tthrow new SpruceError({\n\t\t\t\t\tcode: 'FAILED_TO_IMPORT',\n\t\t\t\t\tfile,\n\t\t\t\t\toriginalError: err,\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\treturn defaultImported as T\n\t}\n\n\tpublic importDefault = async <T extends Record<string, any>>(\n\t\tfile: string\n\t): Promise<T> => {\n\t\tconst imported: any = await this.importAll(file)\n\t\treturn imported.default as T\n\t}\n\n\tprivate buildErrorFromExecuteResponse(\n\t\terrParts: string[],\n\t\tfile: string,\n\t\tstdout: string\n\t) {\n\t\tlet err: Record<string, any> = {}\n\t\ttry {\n\t\t\terr = JSON.parse(errParts[1])\n\t\t\tif (!err.options) {\n\t\t\t\tthrow Error('Capture and reported below')\n\t\t\t}\n\t\t} catch {\n\t\t\terr = {\n\t\t\t\toptions: {\n\t\t\t\t\tcode: 'FAILED_TO_IMPORT',\n\t\t\t\t\tfile,\n\t\t\t\t\tfriendlyMessage: `Unknown error from import, output was: \\n\\n\"${\n\t\t\t\t\t\terrParts[1] ?? stdout\n\t\t\t\t\t}\"`,\n\t\t\t\t},\n\t\t\t}\n\t\t}\n\n\t\tconst proxyError = new SpruceError(err.options)\n\n\t\tif (err.stack) {\n\t\t\tproxyError.stack = err.stack\n\t\t}\n\t\treturn proxyError\n\t}\n\n\tpublic async bulkImport(files: string[]): Promise<any[]> {\n\t\tif (files.length === 0) {\n\t\t\treturn []\n\t\t}\n\t\tconst filepath = diskUtil.resolvePath(this.cwd, '.tmp')\n\t\tconst filename = 'bulk-import-' + new Date().getTime() + '.ts'\n\n\t\tlet imports = ``\n\t\tlet exports = `export default [\\n`\n\n\t\tlet idx = 0\n\t\tfor (const file of files) {\n\t\t\tconst relative = pathUtil\n\t\t\t\t.relative(filepath, file)\n\t\t\t\t.replace(pathUtil.extname(file), '')\n\n\t\t\timports += `import { default as import${idx}} from '${relative}'\\n`\n\t\t\texports += `import${idx},\\n`\n\t\t\tidx++\n\t\t}\n\n\t\texports += ']'\n\n\t\tconst contents = imports + `\\n\\n` + exports\n\t\tconst fullPath = pathUtil.join(filepath, filename)\n\t\tdiskUtil.writeFile(fullPath, contents)\n\n\t\ttry {\n\t\t\tconst results = (await this.importDefault(fullPath)) as any[]\n\n\t\t\treturn results as any\n\t\t} catch (err) {\n\t\t\t// if something failed, lets load one at a time until we find the one that failes\n\t\t\tfor (const file of files) {\n\t\t\t\tconst imported = await this.importDefault(file)\n\t\t\t\tif (!imported) {\n\t\t\t\t\tthrow new SpruceError({\n\t\t\t\t\t\tcode: 'FAILED_TO_IMPORT',\n\t\t\t\t\t\tfile,\n\t\t\t\t\t\tfriendlyMessage: `Looks like ${file} does not export default.`,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthrow err\n\t\t} finally {\n\t\t\tdiskUtil.deleteDir(filepath)\n\t\t}\n\t}\n\n\tpublic static clearCache() {\n\t\tImportService.cachedImports = {}\n\t\tdiskUtil.deleteDir(this.cacheDir())\n\t}\n\n\tpublic static setCacheDir(cacheDir: string) {\n\t\tthis.importCacheDir = cacheDir\n\t}\n\n\tpublic static disableCache() {\n\t\tthis.isCachingEnabled = false\n\t}\n\n\tpublic static enableCaching() {\n\t\tthis.isCachingEnabled = true\n\t}\n\n\tprivate hasFileChanged(hash: string) {\n\t\tconst resolvedFilePath = this.resolveCacheFile(hash)\n\t\treturn !diskUtil.doesFileExist(resolvedFilePath)\n\t}\n\n\tprivate resolveCacheFile(hash: string) {\n\t\treturn diskUtil.resolvePath(ImportService.cacheDir(), hash + '.json')\n\t}\n\n\tprivate static cacheDir(): string {\n\t\treturn this.importCacheDir\n\t}\n\n\tprivate pullHashAndContents(file: string) {\n\t\tconst fileContents = diskUtil.readFile(file)\n\t\tconst hash = md5(fileContents)\n\t\treturn { hash, fileContents }\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
|