@sprucelabs/spruce-cli 15.2.23 → 15.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +31 -0
- package/build/.spruce/errors/errors.types.js.map +1 -1
- package/build/.spruce/errors/options.types.js.map +1 -1
- package/build/.spruce/errors/spruceCli/actionCancelled.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/bootError.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/buildFailed.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/cacheNotEnabled.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/commandAborted.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/commandBlocked.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/commandNotImplemented.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/createAutoloaderFailed.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/dependencyExists.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/deployFailed.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/directoryEmpty.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/directoryNotSkill.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/dockerNotStarted.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/executingCommandFailed.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/failedToImport.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/featureNotInstalled.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/fileExists.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/generic.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/invalidCommand.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/invalidEventContract.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/invalidFeatureCode.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/invalidTestDirectory.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/lintFailed.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/mercuryResponseError.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/missingDependencies.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/missingDependenciesDependency.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/noOrganizationsFound.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/noSkillsRegistered.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/notImplemented.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/notLoggedIn.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/schemaExists.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/schemaFailedToImport.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/schemaTemplateItemBuildingFailed.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/skillNotFound.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/skillNotRegistered.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/skillViewExists.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/storeExists.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/testFailed.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/themeExists.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/transportAlreadyExists.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/vscodeNotInstalled.schema.js.map +1 -1
- package/build/.spruce/events/events.contract.js.map +1 -1
- package/build/.spruce/events/heartwood/didRegisterSkillViews.v2021_02_11.contract.js.map +1 -1
- package/build/.spruce/events/heartwood/generateUrl.v2021_02_11.contract.js.map +1 -1
- package/build/.spruce/events/heartwood/getSkillViews.v2021_02_11.contract.js.map +1 -1
- package/build/.spruce/events/heartwood/listViews.v2021_02_11.contract.js.map +1 -1
- package/build/.spruce/events/heartwood/registerSkillViews.v2021_02_11.contract.js.map +1 -1
- package/build/.spruce/schemas/fields/fieldClassMap.js.map +1 -1
- package/build/.spruce/schemas/fields/fields.types.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitTarget.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitTarget.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitTargetAndPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlResponsePayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/getSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/getSkillViewsResponsePayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/getViewControllersEmitTarget.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/listViewsResponsePayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/listViewsResult.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsResponsePayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/theme.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/themeProps.schema.js.map +1 -1
- package/build/.spruce/schemas/schemas.types.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/fullMessageChoices.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/location.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/message.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/messageSource.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/messageTarget.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/organization.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/person.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/personLocation.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/personOrganization.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/profileImage.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/role.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/sendMessage.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/skill.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/skillCreator.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/bootSkillOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/createConversationTopicOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/createErrorOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/createOrganizationOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/createSchemaOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/createTestOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/generatedDir.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/generatedFile.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/installSkillAtOrganizationOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/listenEventOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/namedTemplateItem.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/nodeFeatureOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/onboardOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/onboarding.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/personWithToken.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/registerDashboardWidgetsEmitPayloadSchema.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/setupTestsOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/setupVscodeOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/skillFeature.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/syncErrorOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/syncEventOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/syncSchemaFieldsOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/syncSchemasOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/testOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/upgradeSkillOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/watcherDidDetectChangesEmitPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceEventUtils/v2021_09_13/eventSource.schema.js.map +1 -1
- package/build/.spruce/skill.types.js.map +1 -1
- package/build/GlobalEmitter.js.map +1 -1
- package/build/InFlightEntertainment.js.map +1 -1
- package/build/__tests__/behavioral/AddingADependency.test.js +3 -1
- package/build/__tests__/behavioral/AddingADependency.test.js.map +1 -1
- package/build/__tests__/behavioral/BlockingCommands.test.js.map +1 -1
- package/build/__tests__/behavioral/BootingTheCli.test.js.map +1 -1
- package/build/__tests__/behavioral/BootingWithBadFiles.test.js.map +1 -1
- package/build/__tests__/behavioral/CreatingAConversationTopic.test.js.map +1 -1
- package/build/__tests__/behavioral/CreatingSchemasWithGenerics.test.js.map +1 -1
- package/build/__tests__/behavioral/DeployingASkill.test.js +20 -20
- package/build/__tests__/behavioral/DeployingASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/DeployingToSandbox.test.js.map +1 -1
- package/build/__tests__/behavioral/EnablingAndDisablingCache.test.js +12 -12
- package/build/__tests__/behavioral/EnablingAndDisablingCache.test.js.map +1 -1
- package/build/__tests__/behavioral/GettingCliVersion.test.js.map +1 -1
- package/build/__tests__/behavioral/InstallingASkillAtAnOrg.test.js +3 -1
- package/build/__tests__/behavioral/InstallingASkillAtAnOrg.test.js.map +1 -1
- package/build/__tests__/behavioral/ListeningToCoreEvents.test.js.map +1 -1
- package/build/__tests__/behavioral/LoggingInAsASkill.test.js +4 -2
- package/build/__tests__/behavioral/LoggingInAsASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/ManagingDependencies.test.js.map +1 -1
- package/build/__tests__/behavioral/OverridingCommandsInPackageJson.test.js.map +1 -1
- package/build/__tests__/behavioral/RebuildingASkill.test.js +2 -2
- package/build/__tests__/behavioral/RebuildingASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/RegisteringConversationsOnBoot.test.js.map +1 -1
- package/build/__tests__/behavioral/RegisteringEventsOnBoot.test.js +6 -4
- package/build/__tests__/behavioral/RegisteringEventsOnBoot.test.js.map +1 -1
- package/build/__tests__/behavioral/RegisteringGlobalEvents.test.js +3 -1
- package/build/__tests__/behavioral/RegisteringGlobalEvents.test.js.map +1 -1
- package/build/__tests__/behavioral/RegisteringSkillViewOnBoot.test.js +3 -1
- package/build/__tests__/behavioral/RegisteringSkillViewOnBoot.test.js.map +1 -1
- package/build/__tests__/behavioral/RememberingUpgradeSelections.test.js.map +1 -1
- package/build/__tests__/behavioral/SettingLogTransportsInASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/SettingRemote.test.js.map +1 -1
- package/build/__tests__/behavioral/SettingUpASkillForTesting.test.js +5 -3
- package/build/__tests__/behavioral/SettingUpASkillForTesting.test.js.map +1 -1
- package/build/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.js.map +1 -1
- package/build/__tests__/behavioral/SettingUpVscode.test.js.map +1 -1
- package/build/__tests__/behavioral/SyncingEventsOnlyFromDependencies.test.js.map +1 -1
- package/build/__tests__/behavioral/TestReporterSettingsRemembered.test.js.map +1 -1
- package/build/__tests__/behavioral/TestingAConversation.test.js.map +1 -1
- package/build/__tests__/behavioral/TestingDataStores.test.js.map +1 -1
- package/build/__tests__/behavioral/WatchingSkillViews.test.js +6 -6
- package/build/__tests__/behavioral/WatchingSkillViews.test.js.map +1 -1
- package/build/__tests__/behavioral/errors/CreatingANewErrorBuilder.test.js.map +1 -1
- package/build/__tests__/behavioral/errors/KeepingErrorClassInSync.test.js.map +1 -1
- package/build/__tests__/behavioral/errors/KeepingErrorsInSync.test.js.map +1 -1
- package/build/__tests__/behavioral/errors/SettingUpErrors.test.js.map +1 -1
- package/build/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.js.map +1 -1
- package/build/__tests__/behavioral/events/CreatingAListener.test.d.ts +5 -0
- package/build/__tests__/behavioral/events/CreatingAListener.test.js +242 -119
- package/build/__tests__/behavioral/events/CreatingAListener.test.js.map +1 -1
- package/build/__tests__/behavioral/events/CreatingAnEvent.test.js +3 -1
- package/build/__tests__/behavioral/events/CreatingAnEvent.test.js.map +1 -1
- package/build/__tests__/behavioral/events/KeepingEventsInSync.test.js.map +1 -1
- package/build/__tests__/behavioral/events/KeepingEventsInSync2.test.js.map +1 -1
- package/build/__tests__/behavioral/events/KeepingListenersInSync.test.js.map +1 -1
- package/build/__tests__/behavioral/events/ListeningToAnEventYouCreate.test.js.map +1 -1
- package/build/__tests__/behavioral/events/SettingUpEvents.test.js.map +1 -1
- package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.js.map +1 -1
- package/build/__tests__/behavioral/node/CreatingANodeModule.test.js +1 -1
- package/build/__tests__/behavioral/node/CreatingANodeModule.test.js.map +1 -1
- package/build/__tests__/behavioral/onboard/StartingOnboarding.test.js.map +1 -1
- package/build/__tests__/behavioral/organization/CreatingAnOrg.test.js.map +1 -1
- package/build/__tests__/behavioral/person/LoggingInAsPerson.test.js.map +1 -1
- package/build/__tests__/behavioral/person/SeeWhoIsLoggedIn.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/CreatingANewSchemaBuilder.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/GeneratingFieldTypesOnly.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/HandlesRelatedSchemas.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/ImportingSchemaImports.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/KeepingSchemasInSync.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/SettingUpSchemas.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/SyncingBadSchemasProvidesHelpfulErrorMessages.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/UsingSchemasInCli.test.js.map +1 -1
- package/build/__tests__/behavioral/skill/BootingASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/skill/CreatingASkill.test.js +1 -1
- package/build/__tests__/behavioral/skill/CreatingASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/skill/RegisteringASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/skill/SettingUpASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/stores/CreatingADataStore.test.js +2 -2
- package/build/__tests__/behavioral/stores/CreatingADataStore.test.js.map +1 -1
- package/build/__tests__/behavioral/stores/KeepingDataStoresInSync.test.js.map +1 -1
- package/build/__tests__/behavioral/tests/CreatingATest.test.js.map +1 -1
- package/build/__tests__/behavioral/tests/RunningTests.test.js.map +1 -1
- package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.d.ts +1 -1
- package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js +8 -8
- package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js.map +1 -1
- package/build/__tests__/behavioral/tests/SettingUpTests.test.js.map +1 -1
- package/build/__tests__/behavioral/{UpdatingDependencies.test.d.ts → upgrading/UpdatingDependencies.test.d.ts} +1 -1
- package/build/__tests__/behavioral/{UpdatingDependencies.test.js → upgrading/UpdatingDependencies.test.js} +1 -1
- package/build/__tests__/behavioral/upgrading/UpdatingDependencies.test.js.map +1 -0
- package/build/__tests__/behavioral/{UpdatingDependencies2.test.d.ts → upgrading/UpdatingDependencies2.test.d.ts} +1 -1
- package/build/__tests__/behavioral/{UpdatingDependencies2.test.js → upgrading/UpdatingDependencies2.test.js} +4 -4
- package/build/__tests__/behavioral/upgrading/UpdatingDependencies2.test.js.map +1 -0
- package/build/__tests__/behavioral/{UpgradingANodeModule.test.d.ts → upgrading/UpgradingANodeModule.test.d.ts} +1 -1
- package/build/__tests__/behavioral/{UpgradingANodeModule.test.js → upgrading/UpgradingANodeModule.test.js} +7 -7
- package/build/__tests__/behavioral/upgrading/UpgradingANodeModule.test.js.map +1 -0
- package/build/__tests__/behavioral/{skill → upgrading}/UpgradingASkill.test.d.ts +0 -0
- package/build/__tests__/behavioral/{skill → upgrading}/UpgradingASkill.test.js +3 -14
- package/build/__tests__/behavioral/upgrading/UpgradingASkill.test.js.map +1 -0
- package/build/__tests__/behavioral/{skill → upgrading}/UpgradingASkill2.test.d.ts +0 -0
- package/build/__tests__/behavioral/{skill → upgrading}/UpgradingASkill2.test.js +4 -13
- package/build/__tests__/behavioral/upgrading/UpgradingASkill2.test.js.map +1 -0
- package/build/__tests__/behavioral/{skill → upgrading}/UpgradingASkill3.test.d.ts +0 -0
- package/build/__tests__/behavioral/{skill → upgrading}/UpgradingASkill3.test.js +6 -6
- package/build/__tests__/behavioral/upgrading/UpgradingASkill3.test.js.map +1 -0
- package/build/__tests__/behavioral/{skill → upgrading}/UpgradingASkill4.test.d.ts +0 -0
- package/build/__tests__/behavioral/{skill → upgrading}/UpgradingASkill4.test.js +3 -3
- package/build/__tests__/behavioral/upgrading/UpgradingASkill4.test.js.map +1 -0
- package/build/__tests__/behavioral/{skill → upgrading}/UpgradingASkill5.test.d.ts +0 -0
- package/build/__tests__/behavioral/{skill → upgrading}/UpgradingASkill5.test.js +2 -2
- package/build/__tests__/behavioral/upgrading/UpgradingASkill5.test.js.map +1 -0
- package/build/__tests__/behavioral/{skill → upgrading}/UpgradingWithListeners.test.d.ts +0 -0
- package/build/__tests__/behavioral/{skill → upgrading}/UpgradingWithListeners.test.js +4 -8
- package/build/__tests__/behavioral/upgrading/UpgradingWithListeners.test.js.map +1 -0
- package/build/__tests__/behavioral/{UpgradingWithSandboxFeatureInstalled.test.d.ts → upgrading/UpgradingWithSandboxFeatureInstalled.test.d.ts} +3 -3
- package/build/__tests__/behavioral/{UpgradingWithSandboxFeatureInstalled.test.js → upgrading/UpgradingWithSandboxFeatureInstalled.test.js} +14 -14
- package/build/__tests__/behavioral/upgrading/UpgradingWithSandboxFeatureInstalled.test.js.map +1 -0
- package/build/__tests__/behavioral/views/CreatingASkillView.test.js.map +1 -1
- package/build/__tests__/behavioral/views/CreatingATheme.test.js.map +1 -1
- package/build/__tests__/behavioral/views/KeepingViewsInSync.test.js.map +1 -1
- package/build/__tests__/behavioral/views/SettingUpViews.test.js.map +1 -1
- package/build/__tests__/behavioral/views/TestingViewControllers.test.js.map +1 -1
- package/build/__tests__/behavioral/watchers/WatchingForChanges.test.js.map +1 -1
- package/build/__tests__/implementation/ActionExecuter.test.js.map +1 -1
- package/build/__tests__/implementation/ActionExecuter2.test.js +1 -1
- package/build/__tests__/implementation/ActionExecuter2.test.js.map +1 -1
- package/build/__tests__/implementation/ActionExecuter3.test.js.map +1 -1
- package/build/__tests__/implementation/ActionExecuter4.test.js +2 -2
- package/build/__tests__/implementation/ActionExecuter4.test.js.map +1 -1
- package/build/__tests__/implementation/ArgParser.test.js.map +1 -1
- package/build/__tests__/implementation/BuildService.test.js.map +1 -1
- package/build/__tests__/implementation/BulkImporting.test.js.map +1 -1
- package/build/__tests__/implementation/CachingImports.test.js.map +1 -1
- package/build/__tests__/implementation/CommandOptionBuilder.test.js.map +1 -1
- package/build/__tests__/implementation/CommanderCommandResultMapper.test.js.map +1 -1
- package/build/__tests__/implementation/DataStoreStore.test.d.ts +1 -0
- package/build/__tests__/implementation/DataStoreStore.test.js +30 -3
- package/build/__tests__/implementation/DataStoreStore.test.js.map +1 -1
- package/build/__tests__/implementation/DeletingOrphanedSchemaDefinitions.test.js.map +1 -1
- package/build/__tests__/implementation/EventContractCleanerUtil.test.js.map +1 -1
- package/build/__tests__/implementation/EventStore.test.d.ts +1 -0
- package/build/__tests__/implementation/EventStore.test.js +68 -35
- package/build/__tests__/implementation/EventStore.test.js.map +1 -1
- package/build/__tests__/implementation/EventTemplateItemBuilder.test.js.map +1 -1
- package/build/__tests__/implementation/FeatureCommandAttacher.test.js.map +1 -1
- package/build/__tests__/implementation/FeatureFixture.test.js.map +1 -1
- package/build/__tests__/implementation/FeatureInstaller.test.js.map +1 -1
- package/build/__tests__/implementation/FeaturesUtil.test.js.map +1 -1
- package/build/__tests__/implementation/FieldTemplateItemBuilder.test.js.map +1 -1
- package/build/__tests__/implementation/GlobalEmitter.js.map +1 -1
- package/build/__tests__/implementation/Introspection.test.js.map +1 -1
- package/build/__tests__/implementation/JestJsonParser.test.js.map +1 -1
- package/build/__tests__/implementation/LintService.test.js +2 -2
- package/build/__tests__/implementation/LintService.test.js.map +1 -1
- package/build/__tests__/implementation/ListenerStore.test.d.ts +4 -0
- package/build/__tests__/implementation/ListenerStore.test.js +56 -0
- package/build/__tests__/implementation/ListenerStore.test.js.map +1 -0
- package/build/__tests__/implementation/OnboardingScriptLoader.test.js.map +1 -1
- package/build/__tests__/implementation/OnboardingScriptPlayer.test.js.map +1 -1
- package/build/__tests__/implementation/OnboardingStore.test.js.map +1 -1
- package/build/__tests__/implementation/OrganizationStore.test.js.map +1 -1
- package/build/__tests__/implementation/ParentTestFinder.test.js.map +1 -1
- package/build/__tests__/implementation/PkgService.test.js +2 -2
- package/build/__tests__/implementation/PkgService.test.js.map +1 -1
- package/build/__tests__/implementation/SchemaStore.test.js.map +1 -1
- package/build/__tests__/implementation/SchemaTemplateItemBuilder.test.js.map +1 -1
- package/build/__tests__/implementation/SchemaValueTypeWriter.test.js.map +1 -1
- package/build/__tests__/implementation/ServiceFactory.test.js.map +1 -1
- package/build/__tests__/implementation/SettingUpANodeModule.test.js.map +1 -1
- package/build/__tests__/implementation/SkillStore.test.js.map +1 -1
- package/build/__tests__/implementation/StoreFeature.test.js +2 -2
- package/build/__tests__/implementation/StoreFeature.test.js.map +1 -1
- package/build/__tests__/implementation/TestReporter.test.js.map +1 -1
- package/build/__tests__/implementation/TestRunner.test.js.map +1 -1
- package/build/__tests__/implementation/ValueTypeMapping.test.js.map +1 -1
- package/build/__tests__/implementation/Widgets.test.js.map +1 -1
- package/build/__tests__/support/onTestFileResult.js.map +1 -1
- package/build/__tests__/support/scripts/first.script.js.map +1 -1
- package/build/__tests__/support/scripts/second.script.js.map +1 -1
- package/build/__tests__/support/scripts/third.test.script.js.map +1 -1
- package/build/addons/filePrompt.addon.js.map +1 -1
- package/build/cli.js +1 -1
- package/build/cli.js.map +1 -1
- package/build/components/AbstractComponent.js.map +1 -1
- package/build/components/FormComponent.js.map +1 -1
- package/build/components/QuizComponent.js.map +1 -1
- package/build/constants.js.map +1 -1
- package/build/errors/SpruceError.js.map +1 -1
- package/build/errors/actionCancelled.builder.js.map +1 -1
- package/build/errors/bootError.builder.js.map +1 -1
- package/build/errors/buildFailed.builder.js.map +1 -1
- package/build/errors/cacheNotEnabled.builder.js.map +1 -1
- package/build/errors/commandAborted.builder.js.map +1 -1
- package/build/errors/commandBlocked.builder.js.map +1 -1
- package/build/errors/commandNotImplemented.builder.js.map +1 -1
- package/build/errors/createAutoloaderFailed.builder.js.map +1 -1
- package/build/errors/dependencyExists.builder.js.map +1 -1
- package/build/errors/deployFailed.builder.js.map +1 -1
- package/build/errors/directoryEmpty.builder.js.map +1 -1
- package/build/errors/directoryNotSkill.builder.js.map +1 -1
- package/build/errors/dockerNotStarted.builder.js.map +1 -1
- package/build/errors/executingCommandFailed.builder.js.map +1 -1
- package/build/errors/failedToImport.builder.js.map +1 -1
- package/build/errors/featureNotInstalled.builder.js.map +1 -1
- package/build/errors/fileExists.builder.js.map +1 -1
- package/build/errors/generic.builder.js.map +1 -1
- package/build/errors/invalidCommand.builder.js.map +1 -1
- package/build/errors/invalidEventContract.builder.js.map +1 -1
- package/build/errors/invalidFeatureCode.builder.js.map +1 -1
- package/build/errors/invalidTestDirectory.builder.js.map +1 -1
- package/build/errors/lintFailed.builder.js.map +1 -1
- package/build/errors/mercuryResponseError.builder.js.map +1 -1
- package/build/errors/missingDependencies.builder.js.map +1 -1
- package/build/errors/noOrganizationsFound.builder.js.map +1 -1
- package/build/errors/noSkillsRegistered.builder.js.map +1 -1
- package/build/errors/notImplemented.builder.js.map +1 -1
- package/build/errors/notLoggedIn.builder.js.map +1 -1
- package/build/errors/schemaExists.builder.js.map +1 -1
- package/build/errors/schemaFailedToImport.builder.js.map +1 -1
- package/build/errors/schemaTemplateItemBuildingFailed.builder.js.map +1 -1
- package/build/errors/skillNotFound.builder.js.map +1 -1
- package/build/errors/skillNotRegistered.builder.js.map +1 -1
- package/build/errors/skillViewExists.builder.js.map +1 -1
- package/build/errors/storeExists.builder.js.map +1 -1
- package/build/errors/testFailed.builder.js.map +1 -1
- package/build/errors/themeExists.builder.js.map +1 -1
- package/build/errors/transportAlreadyExists.builder.js.map +1 -1
- package/build/errors/vscodeNotInstalled.builder.js.map +1 -1
- package/build/features/AbstractAction.js.map +1 -1
- package/build/features/AbstractFeature.js.map +1 -1
- package/build/features/ActionExecuter.js.map +1 -1
- package/build/features/ActionFactory.js.map +1 -1
- package/build/features/ActionQuestionAsker.js.map +1 -1
- package/build/features/FeatureCommandAttacher.js.map +1 -1
- package/build/features/FeatureInstaller.js.map +1 -1
- package/build/features/FeatureInstallerFactory.js.map +1 -1
- package/build/features/OverrideActionDecorator.js.map +1 -1
- package/build/features/cache/CacheFeature.js.map +1 -1
- package/build/features/cache/actions/DisableAction.js.map +1 -1
- package/build/features/cache/actions/EnableAction.js.map +1 -1
- package/build/features/cache/constants.js.map +1 -1
- package/build/features/conversation/ConversationFeature.js.map +1 -1
- package/build/features/conversation/actions/CreateAction.js.map +1 -1
- package/build/features/conversation/actions/TestAction.js.map +1 -1
- package/build/features/conversation/stores/ConversationStore.js.map +1 -1
- package/build/features/conversation/writers/ConversationWriter.js.map +1 -1
- package/build/features/dependencies/DependencyFeature.js.map +1 -1
- package/build/features/dependencies/actions/AddAction.js.map +1 -1
- package/build/features/dependencies/actions/ManageAction.js.map +1 -1
- package/build/features/deploy/DeployFeature.js.map +1 -1
- package/build/features/deploy/actions/HerokuAction.js.map +1 -1
- package/build/features/deploy/writers/DeployWriter.js.map +1 -1
- package/build/features/error/ErrorFeature.js.map +1 -1
- package/build/features/error/ParentTestFinder.js.map +1 -1
- package/build/features/error/actions/CreateAction.js.map +1 -1
- package/build/features/error/actions/SyncAction.js.map +1 -1
- package/build/features/error/writers/ErrorWriter.js.map +1 -1
- package/build/features/event/EventFeature.d.ts +1 -0
- package/build/features/event/EventFeature.js +89 -56
- package/build/features/event/EventFeature.js.map +1 -1
- package/build/features/event/actions/CreateAction.js.map +1 -1
- package/build/features/event/actions/ListenAction.d.ts +1 -0
- package/build/features/event/actions/ListenAction.js +23 -31
- package/build/features/event/actions/ListenAction.js.map +1 -1
- package/build/features/event/actions/SetRemoteAction.js.map +1 -1
- package/build/features/event/actions/SyncAction.js.map +1 -1
- package/build/features/event/actions/SyncListenersAction.js.map +1 -1
- package/build/features/event/builders/EventContractBuilder.js.map +1 -1
- package/build/features/event/builders/ListenerTemplateItemBuilder.js.map +1 -1
- package/build/features/event/services/EventSettingsService.js.map +1 -1
- package/build/features/event/services/RemoteService.js.map +1 -1
- package/build/features/event/stores/EventStore.d.ts +7 -5
- package/build/features/event/stores/EventStore.js +16 -8
- package/build/features/event/stores/EventStore.js.map +1 -1
- package/build/features/event/stores/ListenerStore.d.ts +1 -0
- package/build/features/event/stores/ListenerStore.js +6 -1
- package/build/features/event/stores/ListenerStore.js.map +1 -1
- package/build/features/event/writers/EventWriter.js.map +1 -1
- package/build/features/eventContract/EventContractFeature.js.map +1 -1
- package/build/features/eventContract/actions/PullAction.js.map +1 -1
- package/build/features/feature.utilities.js.map +1 -1
- package/build/features/features.types.js.map +1 -1
- package/build/features/log/LogFeature.js.map +1 -1
- package/build/features/log/actions/CreateTransportAction.js.map +1 -1
- package/build/features/log/writers/LogWriter.js.map +1 -1
- package/build/features/node/NodeFeature.js.map +1 -1
- package/build/features/node/actions/CreateAction.js.map +1 -1
- package/build/features/node/actions/UpdateDependenciesAction.js.map +1 -1
- package/build/features/node/actions/UpgradeAction.js.map +1 -1
- package/build/features/node/writers/NodeWriter.js.map +1 -1
- package/build/features/onboard/OnboardFeature.js.map +1 -1
- package/build/features/onboard/ScriptLoader.js.map +1 -1
- package/build/features/onboard/ScriptPlayer.js.map +1 -1
- package/build/features/onboard/actions/OnboardAction.js.map +1 -1
- package/build/features/onboard/scripts/onboarding.first.script.js.map +1 -1
- package/build/features/onboard/scripts/onboarding.immersive.script.js.map +1 -1
- package/build/features/onboard/scripts/onboarding.returning.script.js.map +1 -1
- package/build/features/onboard/scripts/onboarding.short.script.js.map +1 -1
- package/build/features/onboard/scripts/todo/todo.create.skill.script.js.map +1 -1
- package/build/features/onboard/scripts/todo/todo.test.script.js.map +1 -1
- package/build/features/onboard/scripts/wrongCommand.script.js.map +1 -1
- package/build/features/onboard/stores/OnboardingStore.js.map +1 -1
- package/build/features/organization/OrganizationFeature.js.map +1 -1
- package/build/features/organization/actions/CreateAction.js.map +1 -1
- package/build/features/organization/actions/InstallAction.js.map +1 -1
- package/build/features/organization/stores/OrganizationStore.js.map +1 -1
- package/build/features/person/PersonFeature.js.map +1 -1
- package/build/features/person/actions/LoginAction.js.map +1 -1
- package/build/features/person/actions/LogoutAction.js.map +1 -1
- package/build/features/person/actions/WhoamiAction.js.map +1 -1
- package/build/features/sandbox/SandboxFeature.js.map +1 -1
- package/build/features/sandbox/actions/SetupAction.js.map +1 -1
- package/build/features/sandbox/writers/SandboxWriter.js.map +1 -1
- package/build/features/schema/SchemaFeature.js.map +1 -1
- package/build/features/schema/ValueTypeBuilder.js.map +1 -1
- package/build/features/schema/actions/CreateAction.js.map +1 -1
- package/build/features/schema/actions/SyncAction.js.map +1 -1
- package/build/features/schema/actions/SyncFieldsAction.js.map +1 -1
- package/build/features/schema/services/SchemaService.js.map +1 -1
- package/build/features/schema/stores/SchemaStore.js.map +1 -1
- package/build/features/schema/utilities/schema.utility.js.map +1 -1
- package/build/features/schema/utilities/schemaDisk.utility.js.map +1 -1
- package/build/features/schema/utilities/schemaGenerator.utility.js.map +1 -1
- package/build/features/schema/writers/SchemaWriter.js.map +1 -1
- package/build/features/skill/SkillFeature.js.map +1 -1
- package/build/features/skill/actions/BootAction.js.map +1 -1
- package/build/features/skill/actions/CreateAction.js.map +1 -1
- package/build/features/skill/actions/DashboardAction.js.map +1 -1
- package/build/features/skill/actions/LoginAction.js.map +1 -1
- package/build/features/skill/actions/RebuildAction.js.map +1 -1
- package/build/features/skill/actions/RegisterAction.js.map +1 -1
- package/build/features/skill/stores/SkillStore.js.map +1 -1
- package/build/features/skill/updaters/Updater.js.map +1 -1
- package/build/features/skill/writers/SkillWriter.js.map +1 -1
- package/build/features/store/StoreFeature.d.ts +1 -1
- package/build/features/store/StoreFeature.js +15 -14
- package/build/features/store/StoreFeature.js.map +1 -1
- package/build/features/store/actions/CreateAction.js.map +1 -1
- package/build/features/store/actions/SyncAction.js.map +1 -1
- package/build/features/store/stores/StoreStore.d.ts +1 -0
- package/build/features/store/stores/StoreStore.js +6 -1
- package/build/features/store/stores/StoreStore.js.map +1 -1
- package/build/features/store/templateItemBuilders/StoreTemplateItemBuilder.js.map +1 -1
- package/build/features/store/writers/StoreWriter.js.map +1 -1
- package/build/features/test/TestFeature.js.map +1 -1
- package/build/features/test/TestLogItemGenerator.js.map +1 -1
- package/build/features/test/TestReporter.js.map +1 -1
- package/build/features/test/TestRunner.js.map +1 -1
- package/build/features/test/actions/CreateAction.js.map +1 -1
- package/build/features/test/actions/SetupAction.js.map +1 -1
- package/build/features/test/actions/TestAction.js.map +1 -1
- package/build/features/test/test.types.js.map +1 -1
- package/build/features/test/writers/TestWriter.js.map +1 -1
- package/build/features/universalDevDependencies.js.map +1 -1
- package/build/features/universalFileDescriptions.js.map +1 -1
- package/build/features/universalScripts.js.map +1 -1
- package/build/features/validateAndNormalize.utility.d.ts +2 -2
- package/build/features/validateAndNormalize.utility.js +2 -2
- package/build/features/validateAndNormalize.utility.js.map +1 -1
- package/build/features/view/ViewFeature.js.map +1 -1
- package/build/features/view/actions/CreateAction.js.map +1 -1
- package/build/features/view/actions/CreateThemeAction.js.map +1 -1
- package/build/features/view/actions/SyncAction.js.map +1 -1
- package/build/features/view/actions/WatchAction.js.map +1 -1
- package/build/features/view/stores/ViewStore.js.map +1 -1
- package/build/features/view/writers/ViewWriter.js.map +1 -1
- package/build/features/vscode/VsCodeFeature.js.map +1 -1
- package/build/features/vscode/actions/SetupAction.js.map +1 -1
- package/build/features/vscode/services/VsCodeService.js.map +1 -1
- package/build/features/vscode/writers/VsCodeWriter.js.map +1 -1
- package/build/features/watch/WatchFeature.js.map +1 -1
- package/build/index.js.map +1 -1
- package/build/interfaces/SpyInterface.js.map +1 -1
- package/build/interfaces/TerminalInterface.js.map +1 -1
- package/build/schemas/v2020_07_22/bootSkillOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/createConversationTopicOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/createErrorOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/createOrganizationOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/createSchemaOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/createTestOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/installSkillAtOrganizationOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/listenEventOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/namedTemplateItem.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/nodeFeatureOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/onboardOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/onboarding.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/personWithToken.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/registerDashboardWidgetsEmitPayloadSchema.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/setupTestsOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/setupVscodeOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/skillFeature.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/syncErrorOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/syncEventOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/syncSchemaFieldsOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/syncSchemasOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/testOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/upgradeSkillOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/watcherDidDetectChangesEmitPayload.builder.js.map +1 -1
- package/build/services/BuildService.js.map +1 -1
- package/build/services/CommandService.d.ts +1 -1
- package/build/services/CommandService.js +2 -2
- package/build/services/CommandService.js.map +1 -1
- package/build/services/DependencyService.js.map +1 -1
- package/build/services/GameService.js.map +1 -1
- package/build/services/ImportService.js.map +1 -1
- package/build/services/LintService.js.map +1 -1
- package/build/services/PkgService.js.map +1 -1
- package/build/services/ServiceFactory.js.map +1 -1
- package/build/services/TypeCheckerService.js.map +1 -1
- package/build/stores/AbstractLocalStore.js.map +1 -1
- package/build/stores/AbstractStore.js.map +1 -1
- package/build/stores/StoreFactory.js.map +1 -1
- package/build/templateItemBuilders/EventTemplateItemBuilder.js.map +1 -1
- package/build/templateItemBuilders/FieldTemplateItemBuilder.js.map +1 -1
- package/build/templateItemBuilders/SchemaTemplateItemBuilder.js.map +1 -1
- package/build/tests/AbstractCliTest.d.ts +2 -0
- package/build/tests/AbstractCliTest.js +9 -2
- package/build/tests/AbstractCliTest.js.map +1 -1
- package/build/tests/AbstractErrorTest.js.map +1 -1
- package/build/tests/AbstractEventTest.js.map +1 -1
- package/build/tests/AbstractSchemaTest.js.map +1 -1
- package/build/tests/AbstractSkillTest.js.map +1 -1
- package/build/tests/AbstractTestTest.js.map +1 -1
- package/build/tests/CommandFaker.d.ts +8 -0
- package/build/tests/CommandFaker.js +54 -0
- package/build/tests/CommandFaker.js.map +1 -0
- package/build/tests/JestJsonParser.js.map +1 -1
- package/build/tests/MockProgramFactory.js.map +1 -1
- package/build/tests/buildTestCache.js.map +1 -1
- package/build/tests/cleanTestCache.js.map +1 -1
- package/build/tests/cleanTestData.js +9 -10
- package/build/tests/cleanTestData.js.map +1 -1
- package/build/tests/constants.d.ts +8 -0
- package/build/tests/constants.js +28 -0
- package/build/tests/constants.js.map +1 -0
- package/build/tests/fixtures/FeatureFixture.js.map +1 -1
- package/build/tests/fixtures/MercuryFixture.js.map +1 -1
- package/build/tests/fixtures/OrganizationFixture.js.map +1 -1
- package/build/tests/fixtures/PersonFixture.js.map +1 -1
- package/build/tests/fixtures/SkillFixture.js.map +1 -1
- package/build/tests/fixtures/ViewFixture.js.map +1 -1
- package/build/tests/utilities/test.utility.js.map +1 -1
- package/build/tests/utilities/uiAssert.utility.js.map +1 -1
- package/build/types/apiClient.types.js.map +1 -1
- package/build/types/cli.types.js.map +1 -1
- package/build/types/graphicsInterface.types.js.map +1 -1
- package/build/updaters/ScriptUpdater.js.map +1 -1
- package/build/utilities/action.utility.js.map +1 -1
- package/build/utilities/apiClient.utility.js.map +1 -1
- package/build/utilities/argParser.utility.js.map +1 -1
- package/build/utilities/commander.utility.js.map +1 -1
- package/build/utilities/duration.utility.js.map +1 -1
- package/build/utilities/eventContractCleaner.utility.js.map +1 -1
- package/build/utilities/form.utility.js.map +1 -1
- package/build/utilities/introspection.utility.js.map +1 -1
- package/build/utilities/isCi.js.map +1 -1
- package/build/utilities/tsConfig.utility.js.map +1 -1
- package/build/utilities/ui.utility.js.map +1 -1
- package/build/widgets/Theme.js.map +1 -1
- package/build/widgets/WidgetFactory.js.map +1 -1
- package/build/widgets/keySelectChoices.js.map +1 -1
- package/build/widgets/terminalKit/TKButtonWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkBaseWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkInputWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkLayoutCellWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkLayoutWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkMenuBarWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkPopupWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkProgressBarWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkTextWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkWindowWidget.js.map +1 -1
- package/build/widgets/terminalKit/termKit.utility.js.map +1 -1
- package/build/widgets/types/button.types.js.map +1 -1
- package/build/widgets/types/factory.types.js.map +1 -1
- package/build/widgets/types/input.types.js.map +1 -1
- package/build/widgets/types/layout.types.js.map +1 -1
- package/build/widgets/types/menuBar.types.js.map +1 -1
- package/build/widgets/types/popup.types.js.map +1 -1
- package/build/widgets/types/progressBar.types.js.map +1 -1
- package/build/widgets/types/table.types.js.map +1 -1
- package/build/widgets/types/text.types.js.map +1 -1
- package/build/widgets/types/widgets.types.js.map +1 -1
- package/build/widgets/types/window.types.js.map +1 -1
- package/build/widgets/widget.utilities.js.map +1 -1
- package/build/writers/AbstractWriter.js.map +1 -1
- package/build/writers/WriterFactory.js.map +1 -1
- package/package.json +72 -72
- package/src/__tests__/behavioral/AddingADependency.test.ts +2 -1
- package/src/__tests__/behavioral/DeployingASkill.test.ts +20 -20
- package/src/__tests__/behavioral/EnablingAndDisablingCache.test.ts +12 -12
- package/src/__tests__/behavioral/InstallingASkillAtAnOrg.test.ts +2 -1
- package/src/__tests__/behavioral/LoggingInAsASkill.test.ts +3 -2
- package/src/__tests__/behavioral/RebuildingASkill.test.ts +2 -2
- package/src/__tests__/behavioral/RegisteringEventsOnBoot.test.ts +3 -5
- package/src/__tests__/behavioral/RegisteringGlobalEvents.test.ts +2 -1
- package/src/__tests__/behavioral/RegisteringSkillViewOnBoot.test.ts +2 -1
- package/src/__tests__/behavioral/SettingUpASkillForTesting.test.ts +4 -3
- package/src/__tests__/behavioral/WatchingSkillViews.test.ts +6 -6
- package/src/__tests__/behavioral/events/CreatingAListener.test.ts +54 -7
- package/src/__tests__/behavioral/events/CreatingAnEvent.test.ts +2 -1
- package/src/__tests__/behavioral/node/CreatingANodeModule.test.ts +1 -1
- package/src/__tests__/behavioral/skill/CreatingASkill.test.ts +1 -1
- package/src/__tests__/behavioral/stores/CreatingADataStore.test.ts +2 -2
- package/src/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.ts +3 -3
- package/src/__tests__/behavioral/{UpdatingDependencies.test.ts → upgrading/UpdatingDependencies.test.ts} +2 -2
- package/src/__tests__/behavioral/{UpdatingDependencies2.test.ts → upgrading/UpdatingDependencies2.test.ts} +6 -6
- package/src/__tests__/behavioral/{UpgradingANodeModule.test.ts → upgrading/UpgradingANodeModule.test.ts} +7 -7
- package/src/__tests__/behavioral/{skill → upgrading}/UpgradingASkill.test.ts +3 -11
- package/src/__tests__/behavioral/{skill → upgrading}/UpgradingASkill2.test.ts +4 -7
- package/src/__tests__/behavioral/{skill → upgrading}/UpgradingASkill3.test.ts +6 -6
- package/src/__tests__/behavioral/{skill → upgrading}/UpgradingASkill4.test.ts +3 -3
- package/src/__tests__/behavioral/{skill → upgrading}/UpgradingASkill5.test.ts +2 -2
- package/src/__tests__/behavioral/{skill → upgrading}/UpgradingWithListeners.test.ts +3 -5
- package/src/__tests__/behavioral/{UpgradingWithSandboxFeatureInstalled.test.ts → upgrading/UpgradingWithSandboxFeatureInstalled.test.ts} +5 -5
- package/src/__tests__/implementation/ActionExecuter2.test.ts +1 -1
- package/src/__tests__/implementation/ActionExecuter4.test.ts +2 -2
- package/src/__tests__/implementation/DataStoreStore.test.ts +8 -0
- package/src/__tests__/implementation/EventStore.test.ts +17 -1
- package/src/__tests__/implementation/LintService.test.ts +2 -2
- package/src/__tests__/implementation/ListenerStore.test.ts +14 -0
- package/src/__tests__/implementation/PkgService.test.ts +4 -7
- package/src/__tests__/implementation/StoreFeature.test.ts +2 -2
- package/src/cli.ts +1 -1
- package/src/features/AbstractAction.ts +2 -2
- package/src/features/event/EventFeature.ts +14 -11
- package/src/features/event/actions/ListenAction.ts +22 -12
- package/src/features/event/builders/EventContractBuilder.ts +2 -2
- package/src/features/event/stores/EventStore.ts +28 -20
- package/src/features/event/stores/ListenerStore.ts +5 -3
- package/src/features/store/StoreFeature.ts +7 -6
- package/src/features/store/stores/StoreStore.ts +5 -1
- package/src/features/validateAndNormalize.utility.ts +2 -2
- package/src/services/CommandService.ts +1 -4
- package/src/tests/AbstractCliTest.ts +6 -1
- package/src/tests/CommandFaker.ts +24 -0
- package/src/tests/cleanTestData.ts +2 -19
- package/src/tests/constants.ts +17 -0
- package/build/__tests__/behavioral/UpdatingDependencies.test.js.map +0 -1
- package/build/__tests__/behavioral/UpdatingDependencies2.test.js.map +0 -1
- package/build/__tests__/behavioral/UpgradingANodeModule.test.js.map +0 -1
- package/build/__tests__/behavioral/UpgradingWithSandboxFeatureInstalled.test.js.map +0 -1
- package/build/__tests__/behavioral/skill/UpgradingASkill.test.js.map +0 -1
- package/build/__tests__/behavioral/skill/UpgradingASkill2.test.js.map +0 -1
- package/build/__tests__/behavioral/skill/UpgradingASkill3.test.js.map +0 -1
- package/build/__tests__/behavioral/skill/UpgradingASkill4.test.js.map +0 -1
- package/build/__tests__/behavioral/skill/UpgradingASkill5.test.js.map +0 -1
- package/build/__tests__/behavioral/skill/UpgradingWithListeners.test.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"VsCodeWriter.js","names":["VsCodeWriter","destinationDir","shouldConfirmBeforeWriting","writeDirectoryTemplate","code","DirectoryTemplateCode","VsCode","context","AbstractWriter"],"sources":["../../../../src/features/vscode/writers/VsCodeWriter.ts"],"sourcesContent":["import { DirectoryTemplateCode } from '@sprucelabs/spruce-templates'\nimport AbstractWriter, { WriteResults } from '../../../writers/AbstractWriter'\n\nexport default class VsCodeWriter extends AbstractWriter {\n\tpublic async writeVsCodeConfigurations(\n\t\tdestinationDir: string,\n\t\tshouldConfirmBeforeWriting = true\n\t): Promise<WriteResults> {\n\t\treturn this.writeDirectoryTemplate({\n\t\t\tdestinationDir,\n\t\t\tcode: DirectoryTemplateCode.VsCode,\n\t\t\tshouldConfirmBeforeWriting,\n\t\t\tcontext: {},\n\t\t})\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;;;;;IAEqBA,Y;;;;;;;;;;;;;qHACpB,iBACCC,cADD;QAAA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAECC,0BAFD,2DAE8B,IAF9B;gBAAA,iCAIQ,KAAKC,sBAAL,CAA4B;kBAClCF,cAAc,EAAdA,cADkC;kBAElCG,IAAI,EAAEC,uCAAsBC,MAFM;kBAGlCJ,0BAA0B,EAA1BA,0BAHkC;kBAIlCK,OAAO,EAAE;gBAJyB,CAA5B,CAJR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EADyCC,2B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"WatchFeature.js","names":["WatchFeature","_isWatching","options","watchDir","diskUtil","resolvePath","cwd","sourceDir","watcher","chokidar","watch","ignoreInitial","startsWith","on","action","path","changesSinceLastChange","push","schemaId","mapChokidarActionToSchemaId","version","values","mapChokidarActionToGeneratedAction","name","pathUtil","basename","timeoutId","clearTimeout","setTimeout","fireChange","delay","search","map","add","addDir","change","unlink","unlinkDir","changes","emitter","emit","close","AbstractFeature"],"sources":["../../../src/features/watch/WatchFeature.ts"],"sourcesContent":["import pathUtil from 'path'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport chokidar from 'chokidar'\nimport { GeneratedFile, GeneratedFileOrDir } from '../../types/cli.types'\nimport AbstractFeature from '../AbstractFeature'\nimport { FeatureCode } from '../features.types'\n\ntype ChokidarAction = 'add' | 'addDir' | 'change' | 'unlink' | 'unlinkDir'\n\ndeclare module '../../features/features.types' {\n\tinterface FeatureMap {\n\t\twatch: WatchFeature\n\t}\n\n\tinterface FeatureOptionsMap {\n\t\twatch: undefined\n\t}\n}\n\nexport default class WatchFeature extends AbstractFeature {\n\tpublic description =\n\t\t'Watches for changes on the file system and emits app level events for other features to respond to.'\n\tpublic code: FeatureCode = 'watch'\n\tpublic nameReadable = 'Watch'\n\n\tprivate _isWatching = false\n\tprivate watcher?: chokidar.FSWatcher\n\t// eslint-disable-next-line no-undef\n\tprivate timeoutId?: NodeJS.Timeout\n\tprivate changesSinceLastChange: GeneratedFileOrDir[] = []\n\n\tpublic async isWatching() {\n\t\treturn this._isWatching\n\t}\n\n\tpublic async startWatching(options?: { delay?: number; sourceDir?: string }) {\n\t\tthis._isWatching = true\n\n\t\tconst watchDir = diskUtil.resolvePath(this.cwd, options?.sourceDir ?? '')\n\n\t\tthis.watcher = chokidar.watch(watchDir, {\n\t\t\tignoreInitial: true,\n\t\t})\n\n\t\tconst startsWith = diskUtil.resolvePath(watchDir, 'build')\n\n\t\tthis.watcher.on('all', async (action, path) => {\n\t\t\tif (path.startsWith(startsWith)) {\n\t\t\t\tthis.changesSinceLastChange.push({\n\t\t\t\t\tschemaId: this.mapChokidarActionToSchemaId(action),\n\t\t\t\t\tversion: 'v2020_07_22',\n\t\t\t\t\tvalues: {\n\t\t\t\t\t\taction: this.mapChokidarActionToGeneratedAction(action),\n\t\t\t\t\t\tpath,\n\t\t\t\t\t\tname: pathUtil.basename(path),\n\t\t\t\t\t},\n\t\t\t\t})\n\n\t\t\t\tif (this.timeoutId) {\n\t\t\t\t\tclearTimeout(this.timeoutId)\n\t\t\t\t}\n\n\t\t\t\tthis.timeoutId = setTimeout(async () => {\n\t\t\t\t\tawait this.fireChange()\n\t\t\t\t}, options?.delay ?? 500)\n\t\t\t}\n\t\t})\n\t}\n\n\tprivate mapChokidarActionToSchemaId(\n\t\taction: ChokidarAction\n\t): GeneratedFileOrDir['schemaId'] {\n\t\treturn action.search(/dir/gi) > -1 ? 'generatedDir' : 'generatedFile'\n\t}\n\n\tprivate mapChokidarActionToGeneratedAction(chokidar: ChokidarAction) {\n\t\tconst map = {\n\t\t\tadd: 'generated',\n\t\t\taddDir: 'generated',\n\t\t\tchange: 'updated',\n\t\t\tunlink: 'deleted',\n\t\t\tunlinkDir: 'deleted',\n\t\t}\n\n\t\treturn map[chokidar] as GeneratedFile['action']\n\t}\n\n\tprivate async fireChange() {\n\t\tconst changes = this.changesSinceLastChange\n\t\tthis.changesSinceLastChange = []\n\n\t\tawait this.emitter.emit('watcher.did-detect-change', {\n\t\t\tchanges,\n\t\t})\n\t}\n\n\tpublic async stopWatching() {\n\t\tthis._isWatching = false\n\t\tawait this.watcher?.close()\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;;;;;IAeqBA,Y;;;;;;;;;;;;;;;oGAEnB,qG;6FAC0B,O;qGACL,O;oGAEA,K;;;+GAIiC,E;;;;;;;sGAEvD;QAAA;UAAA;YAAA;cAAA;gBAAA,iCACQ,KAAKC,WADb;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;yGAIA,kBAA2BC,OAA3B;QAAA;QAAA;;QAAA;QAAA;UAAA;YAAA;cAAA;gBACC,KAAKD,WAAL,GAAmB,IAAnB;gBAEME,QAHP,GAGkBC,2BAASC,WAAT,CAAqB,KAAKC,GAA1B,wBAA+BJ,OAA/B,aAA+BA,OAA/B,uBAA+BA,OAAO,CAAEK,SAAxC,mEAAqD,EAArD,CAHlB;gBAKC,KAAKC,OAAL,GAAeC,qBAASC,KAAT,CAAeP,QAAf,EAAyB;kBACvCQ,aAAa,EAAE;gBADwB,CAAzB,CAAf;gBAIMC,UATP,GASoBR,2BAASC,WAAT,CAAqBF,QAArB,EAA+B,OAA/B,CATpB;gBAWC,KAAKK,OAAL,CAAaK,EAAb,CAAgB,KAAhB;kBAAA,yFAAuB,kBAAOC,MAAP,EAAeC,IAAf;oBAAA;;oBAAA;sBAAA;wBAAA;0BAAA;4BACtB,IAAIA,IAAI,CAACH,UAAL,CAAgBA,UAAhB,CAAJ,EAAiC;8BAChC,MAAI,CAACI,sBAAL,CAA4BC,IAA5B,CAAiC;gCAChCC,QAAQ,EAAE,MAAI,CAACC,2BAAL,CAAiCL,MAAjC,CADsB;gCAEhCM,OAAO,EAAE,aAFuB;gCAGhCC,MAAM,EAAE;kCACPP,MAAM,EAAE,MAAI,CAACQ,kCAAL,CAAwCR,MAAxC,CADD;kCAEPC,IAAI,EAAJA,IAFO;kCAGPQ,IAAI,EAAEC,iBAASC,QAAT,CAAkBV,IAAlB;gCAHC;8BAHwB,CAAjC;;8BAUA,IAAI,MAAI,CAACW,SAAT,EAAoB;gCACnBC,YAAY,CAAC,MAAI,CAACD,SAAN,CAAZ;8BACA;;8BAED,MAAI,CAACA,SAAL,GAAiBE,UAAU,6FAAC;gCAAA;kCAAA;oCAAA;sCAAA;wCAAA;wCAAA,OACrB,MAAI,CAACC,UAAL,EADqB;;sCAAA;sCAAA;wCAAA;oCAAA;kCAAA;gCAAA;8BAAA,CAAD,sBAExB3B,OAFwB,aAExBA,OAFwB,uBAExBA,OAAO,CAAE4B,KAFe,2DAEN,GAFM,CAA3B;4BAGA;;0BAnBqB;0BAAA;4BAAA;wBAAA;sBAAA;oBAAA;kBAAA,CAAvB;;kBAAA;oBAAA;kBAAA;gBAAA;;cAXD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;WAkCA,qCACChB,MADD,EAEkC;MACjC,OAAOA,MAAM,CAACiB,MAAP,CAAc,OAAd,IAAyB,CAAC,CAA1B,GAA8B,cAA9B,GAA+C,eAAtD;IACA;;;WAED,4CAA2CtB,QAA3C,EAAqE;MACpE,IAAMuB,GAAG,GAAG;QACXC,GAAG,EAAE,WADM;QAEXC,MAAM,EAAE,WAFG;QAGXC,MAAM,EAAE,SAHG;QAIXC,MAAM,EAAE,SAJG;QAKXC,SAAS,EAAE;MALA,CAAZ;MAQA,OAAOL,GAAG,CAACvB,QAAD,CAAV;IACA;;;;sGAED;QAAA;QAAA;UAAA;YAAA;cAAA;gBACO6B,OADP,GACiB,KAAKtB,sBADtB;gBAEC,KAAKA,sBAAL,GAA8B,EAA9B;gBAFD;gBAAA,OAIO,KAAKuB,OAAL,CAAaC,IAAb,CAAkB,2BAAlB,EAA+C;kBACpDF,OAAO,EAAPA;gBADoD,CAA/C,CAJP;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;wGASA;QAAA;;QAAA;UAAA;YAAA;cAAA;gBACC,KAAKrC,WAAL,GAAmB,KAAnB;gBADD;gBAAA,wBAEO,KAAKO,OAFZ,kDAEO,cAAciC,KAAd,EAFP;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EA7EyCC,4B"}
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"index.js","names":["require","config","process","argv","then","results","code","errors","length","exit","err","term","TerminalInterface","cwd","env","CLI_RENDER_STACK_TRACES","renderError"],"sources":["../src/index.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport { run } from './cli'\nimport TerminalInterface from './interfaces/TerminalInterface'\n\nrequire('dotenv').config()\n\nrun(process.argv)\n\t.then((results: any) => {\n\t\tconst code = results?.errors?.length > 0 ? 1 : 0\n\t\tprocess.exit(code)\n\t})\n\t.catch((err) => {\n\t\tconst term = new TerminalInterface(\n\t\t\tprocess.cwd(),\n\t\t\tprocess.env.CLI_RENDER_STACK_TRACES !== 'false'\n\t\t)\n\t\tterm.renderError(err)\n\t\tprocess.exit(1)\n\t})\n"],"mappings":"AAAA;;;;;AAEA;;AACA;;AAEAA,OAAO,CAAC,QAAD,CAAP,CAAkBC,MAAlB;;AAEA,cAAIC,OAAO,CAACC,IAAZ,EACEC,IADF,CACO,UAACC,OAAD,EAAkB;EAAA;;EACvB,IAAMC,IAAI,GAAG,CAAAD,OAAO,SAAP,IAAAA,OAAO,WAAP,+BAAAA,OAAO,CAAEE,MAAT,oEAAiBC,MAAjB,IAA0B,CAA1B,GAA8B,CAA9B,GAAkC,CAA/C;EACAN,OAAO,CAACO,IAAR,CAAaH,IAAb;AACA,CAJF,WAKQ,UAACI,GAAD,EAAS;EACf,IAAMC,IAAI,GAAG,IAAIC,6BAAJ,CACZV,OAAO,CAACW,GAAR,EADY,EAEZX,OAAO,CAACY,GAAR,CAAYC,uBAAZ,KAAwC,OAF5B,CAAb;EAIAJ,IAAI,CAACK,WAAL,CAAiBN,GAAjB;EACAR,OAAO,CAACO,IAAR,CAAa,CAAb;AACA,CAZF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/interfaces/SpyInterface.ts"],"names":["SpyInterface","x","y","startTime","Date","getTime","term","shouldRenderTestLogs","TerminalInterface","process","cwd","strs","optionallyRenderLine","join","undefined","env","SHOULD_RENDER_TEST_LOGS","message","effects","trackInvocation","renderWarning","renderHint","command","options","invocations","push","promptResolver","confirmResolver","waitForEnterResolver","clearTimeout","promptTimeout","length","input","resolver","promptDefaultValue","toLowerCase","Error","Promise","resolve","setTimeout","renderSection","obj","renderObject","err","renderError","code","renderCodeSample","results","renderActionSummary","renderHero","dividerEffects","renderHeadline","renderDivider","duration","friendly","durationUtil","msToFriendly","testLog","info","global","activeTest","test","path","messages","renderLines","definition","msg","namesUtil","toPascal","type","label","choices","forEach","choice","value","reject","reset","assert","fail","defaultValue","ttl","checkInterval","loops","lastWriteCount","isWaitingForInput","hasWritten","testUtil","log","question","title","cursorPosition","pos"],"mappings":"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","sourcesContent":["import { FieldDefinitionValueType } from '@sprucelabs/schema'\nimport { namesUtil, testLog } from '@sprucelabs/spruce-skill-utils'\nimport { assert } from '@sprucelabs/test'\nimport { FieldDefinitions } from '#spruce/schemas/fields/fields.types'\nimport testUtil from '../tests/utilities/test.utility'\nimport { ExecutionResults } from '../types/cli.types'\nimport { GraphicsInterface } from '../types/cli.types'\nimport {\n\tGraphicsTextEffect,\n\tProgressBarOptions,\n\tProgressBarUpdateOptions,\n\tImageDimensions,\n} from '../types/graphicsInterface.types'\nimport durationUtil from '../utilities/duration.utility'\nimport TerminalInterface from './TerminalInterface'\n\nexport default class SpyInterface implements GraphicsInterface {\n\tpublic invocations: { command: string; options?: any }[] = []\n\tprivate cursorPosition = { x: 0, y: 0 }\n\n\tprivate promptResolver?: (\n\t\tinput: FieldDefinitionValueType<FieldDefinitions>\n\t) => void | undefined\n\n\tprivate confirmResolver?: (pass: boolean) => void | undefined\n\tprivate waitForEnterResolver?: () => void | undefined\n\tprivate promptDefaultValue: any\n\tprivate term?: TerminalInterface\n\tprivate startTime: number\n\tprivate promptTimeout?: any\n\n\tpublic constructor() {\n\t\tthis.startTime = new Date().getTime()\n\n\t\tthis.term = this.shouldRenderTestLogs()\n\t\t\t? new TerminalInterface(process.cwd(), true, (...strs: []) => {\n\t\t\t\t\tthis.optionallyRenderLine(strs.join(' '))\n\t\t\t })\n\t\t\t: undefined\n\t}\n\n\tprivate shouldRenderTestLogs() {\n\t\treturn process.env.SHOULD_RENDER_TEST_LOGS === 'true'\n\t}\n\n\tpublic renderWarning(\n\t\tmessage: string,\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderWarning', { message, effects })\n\t\tthis.term?.renderWarning(message)\n\t}\n\n\tpublic renderHint(\n\t\tmessage: string,\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderHint', { message, effects })\n\t\tthis.optionallyRenderLine(`Hint: ${message}`)\n\t\tthis.term?.renderHint(message)\n\t}\n\n\tprivate trackInvocation(command: string, options?: any) {\n\t\t// testUtil.log(command, JSON.stringify(options), '\\n')\n\t\tthis.invocations.push({ command, options })\n\t}\n\n\tpublic isWaitingForInput() {\n\t\treturn !!(\n\t\t\tthis.promptResolver ||\n\t\t\tthis.confirmResolver ||\n\t\t\tthis.waitForEnterResolver\n\t\t)\n\t}\n\n\tpublic reset() {\n\t\tthis.promptResolver = undefined\n\t\tthis.confirmResolver = undefined\n\t\tthis.waitForEnterResolver = undefined\n\t\tclearTimeout(this.promptTimeout)\n\t}\n\n\tpublic getLastInvocation() {\n\t\treturn this.invocations[this.invocations.length - 1]\n\t}\n\n\tpublic async sendInput(input: string | string[]): Promise<void> {\n\t\tthis.trackInvocation('sendInput', input)\n\n\t\tthis.optionallyRenderLine(\n\t\t\t`Sending input: \"${input.length > 0 ? input : 'ENTER'}\"`\n\t\t)\n\n\t\tif (this.waitForEnterResolver) {\n\t\t\tconst resolver = this.waitForEnterResolver\n\t\t\tthis.waitForEnterResolver = undefined\n\n\t\t\tresolver()\n\t\t} else if (this.promptResolver) {\n\t\t\tconst resolver = this.promptResolver\n\t\t\tthis.promptResolver = undefined\n\n\t\t\tresolver(input !== '\\n' && input !== '' ? input : this.promptDefaultValue)\n\t\t} else if (this.confirmResolver) {\n\t\t\tconst resolver = this.confirmResolver\n\t\t\tthis.confirmResolver = undefined\n\n\t\t\tresolver(\n\t\t\t\tinput === '\\n' ||\n\t\t\t\t\tinput.length === 0 ||\n\t\t\t\t\t(typeof input === 'string' && input.toLowerCase() === 'y')\n\t\t\t)\n\t\t} else {\n\t\t\tthrow new Error('Sent input before prompted for input')\n\t\t}\n\n\t\treturn new Promise((resolve) => {\n\t\t\tsetTimeout(resolve, 50)\n\t\t})\n\t}\n\n\tpublic renderSection(options: {\n\t\theadline: string\n\t\tlines?: string[] | string[]\n\t\theadlineEffects?: GraphicsTextEffect[]\n\t\tdividerEffects?: GraphicsTextEffect[]\n\t\tbodyEffects?: GraphicsTextEffect[]\n\t\tobject?: any\n\t}): void {\n\t\tthis.trackInvocation('renderSection', options)\n\t\tthis.term?.renderSection(options)\n\t}\n\n\tpublic renderObject(obj: any): void {\n\t\tthis.trackInvocation('renderObject', obj)\n\t\tthis.term?.renderObject(obj)\n\t}\n\n\tpublic renderError(err: Error): void {\n\t\tthis.trackInvocation('renderError', err)\n\t\tthis.term?.renderError(err)\n\t}\n\n\tpublic renderCodeSample(code: string): void {\n\t\tthis.trackInvocation('renderCodeSample', code)\n\t\tthis.term?.renderCodeSample(code)\n\t}\n\n\tpublic renderActionSummary(results: ExecutionResults): void {\n\t\tthis.trackInvocation('renderCommandSummary', results)\n\t\tthis.term?.renderActionSummary(results)\n\t}\n\n\tpublic renderHero(\n\t\tmessage: string,\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderHero', { message, effects })\n\t\tthis.term?.renderHero(message, effects)\n\t}\n\n\tpublic renderHeadline(\n\t\tmessage: string,\n\t\teffects: GraphicsTextEffect[],\n\t\tdividerEffects: GraphicsTextEffect[]\n\t): void {\n\t\tthis.trackInvocation('renderHeadline', { message, effects, dividerEffects })\n\t\tthis.term?.renderHeadline(message, effects, dividerEffects)\n\t}\n\n\tpublic renderDivider(effects?: GraphicsTextEffect[] | undefined): void {\n\t\tthis.trackInvocation('renderDivider', effects)\n\t\tthis.term?.renderDivider(effects)\n\t}\n\n\tpublic renderLine(\n\t\tmessage: string,\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderLine', { message, effects })\n\t\tmessage && message.length > 0 && this.optionallyRenderLine(message)\n\t}\n\n\tprivate optionallyRenderLine(message: string) {\n\t\tif (this.shouldRenderTestLogs()) {\n\t\t\tconst duration = new Date().getTime() - this.startTime\n\t\t\tconst friendly = durationUtil.msToFriendly(duration)\n\n\t\t\ttestLog.info(\n\t\t\t\t`${\n\t\t\t\t\t//@ts-ignore\n\t\t\t\t\tglobal.activeTest?.test ? global.activeTest?.test + ' :: ' : ''\n\t\t\t\t}${friendly} :: ${message}`\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\tthis.trackInvocation('renderImage', { path, options })\n\t}\n\n\tpublic renderLines(\n\t\tmessages: string[],\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderLines', { messages, effects })\n\t\tthis.term?.renderLines(messages, effects)\n\t}\n\n\tpublic async prompt<T extends FieldDefinitions>(definition: T) {\n\t\tthis.trackInvocation('prompt', definition)\n\n\t\tif (this.promptResolver) {\n\t\t\tthrow new Error(\n\t\t\t\t'Tried to double prompt. Try this.term?.sendInput() before calling prompt next.'\n\t\t\t)\n\t\t}\n\n\t\tlet msg = `${namesUtil.toPascal(definition.type)} Prompt: ${\n\t\t\tdefinition.label\n\t\t}`\n\n\t\tif (definition.type === 'select') {\n\t\t\tmsg += '\\n\\nChoices:\\n'\n\t\t\tdefinition.options.choices.forEach((choice) => {\n\t\t\t\tmsg += `\\n${choice.value}: ${choice.label}`\n\t\t\t})\n\n\t\t\tmsg += '\\n'\n\t\t}\n\n\t\tthis.optionallyRenderLine(msg)\n\n\t\treturn new Promise<FieldDefinitionValueType<FieldDefinitions>>(\n\t\t\t(resolve, reject) => {\n\t\t\t\tthis.promptResolver = (...args: any[]) => {\n\t\t\t\t\tclearTimeout(this.promptTimeout)\n\t\t\t\t\t//@ts-ignore\n\t\t\t\t\tresolve(...args)\n\t\t\t\t}\n\t\t\t\tthis.promptTimeout = setTimeout(() => {\n\t\t\t\t\tthis.reset()\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tassert.fail(\n\t\t\t\t\t\t\t`Timed out waiting for input with label: '${definition.label}'\\n\\nConsider passing what you need to Action().execute({ something })`\n\t\t\t\t\t\t)\n\t\t\t\t\t} catch (err: any) {\n\t\t\t\t\t\treject(err)\n\t\t\t\t\t}\n\t\t\t\t}, 10000)\n\t\t\t\tthis.promptDefaultValue = definition.defaultValue\n\t\t\t}\n\t\t)\n\t}\n\n\tpublic startLoading(message?: string | undefined): void {\n\t\tthis.trackInvocation('startLoading', message)\n\t\tthis.optionallyRenderLine(message ? `${message}` : 'Start loading...')\n\t}\n\n\tpublic stopLoading(): void {\n\t\tthis.trackInvocation('stopLoading')\n\t\tthis.optionallyRenderLine('Stop loading...')\n\t}\n\n\tpublic async waitForEnter(message?: string | undefined): Promise<void> {\n\t\tthis.trackInvocation('waitForEnter', message)\n\t\tthis.optionallyRenderLine(\n\t\t\t`${message ? ` ${message}\\n\\n` : ``}Waiting for enter...`\n\t\t)\n\n\t\treturn new Promise((resolve) => {\n\t\t\tthis.waitForEnterResolver = resolve\n\t\t})\n\t}\n\n\tpublic async waitForInput() {\n\t\tconst ttl = 1000 * 60 * 5\n\t\tconst checkInterval = 100\n\t\tlet loops = ttl / checkInterval\n\t\tlet lastWriteCount = this.invocations.length\n\n\t\twhile (!this.isWaitingForInput()) {\n\t\t\tif (loops-- === 0) {\n\t\t\t\tassert.fail(`Waiting for input timed out.`)\n\t\t\t}\n\n\t\t\tconst hasWritten = lastWriteCount != this.invocations.length\n\n\t\t\tif (hasWritten) {\n\t\t\t\tloops = ttl / checkInterval\n\t\t\t\tlastWriteCount = this.invocations.length\n\t\t\t\tif (this.shouldRenderTestLogs()) {\n\t\t\t\t\ttestUtil.log('waitForInput timeout reset because of new output.')\n\t\t\t\t}\n\t\t\t}\n\t\t\tawait new Promise((resolve) => setTimeout(resolve, checkInterval))\n\t\t}\n\t}\n\n\tpublic confirm(question: string): Promise<boolean> {\n\t\tthis.trackInvocation('confirm', question)\n\t\tthis.optionallyRenderLine(`${question} :: Y/N...`)\n\n\t\treturn new Promise((resolve) => {\n\t\t\tthis.confirmResolver = resolve\n\t\t})\n\t}\n\n\tpublic clear(): void {\n\t\tthis.trackInvocation('clear')\n\t}\n\n\tpublic renderProgressBar(options: ProgressBarOptions): void {\n\t\tthis.trackInvocation('renderProgressBar', options)\n\t\tthis.optionallyRenderLine(\n\t\t\t`Showing progress${options.title ? ` ${options.title}` : ``}`\n\t\t)\n\t}\n\n\tpublic updateProgressBar(options: ProgressBarUpdateOptions): void {\n\t\tthis.trackInvocation('updateProgressBar', options)\n\t}\n\n\tpublic removeProgressBar(): void {\n\t\tthis.trackInvocation('removeProgressBar')\n\t\tthis.optionallyRenderLine(`Hiding progress`)\n\t}\n\n\tpublic async getCursorPosition(): Promise<{ x: number; y: number } | null> {\n\t\tthis.trackInvocation('getCursorPosition')\n\t\treturn this.cursorPosition\n\t}\n\n\tpublic setCursorPosition(pos: { x: number; y: number }) {\n\t\tthis.cursorPosition = pos\n\t}\n\n\tpublic moveCursorTo(x: number, y: number): void {\n\t\tthis.trackInvocation('moveCursorTo', { x, y })\n\t}\n\n\tpublic clearBelowCursor(): void {\n\t\tthis.trackInvocation('clearBelowCursor')\n\t}\n}\n"],"file":"SpyInterface.js"}
|
|
1
|
+
{"version":3,"file":"SpyInterface.js","names":["SpyInterface","x","y","startTime","Date","getTime","term","shouldRenderTestLogs","TerminalInterface","process","cwd","strs","optionallyRenderLine","join","undefined","env","SHOULD_RENDER_TEST_LOGS","message","effects","trackInvocation","renderWarning","renderHint","command","options","invocations","push","promptResolver","confirmResolver","waitForEnterResolver","clearTimeout","promptTimeout","length","input","resolver","promptDefaultValue","toLowerCase","Error","Promise","resolve","setTimeout","renderSection","obj","renderObject","err","renderError","code","renderCodeSample","results","renderActionSummary","renderHero","dividerEffects","renderHeadline","renderDivider","duration","friendly","durationUtil","msToFriendly","testLog","info","global","activeTest","test","path","messages","renderLines","definition","msg","namesUtil","toPascal","type","label","choices","forEach","choice","value","reject","reset","assert","fail","defaultValue","ttl","checkInterval","loops","lastWriteCount","isWaitingForInput","hasWritten","testUtil","log","question","title","cursorPosition","pos"],"sources":["../../src/interfaces/SpyInterface.ts"],"sourcesContent":["import { FieldDefinitionValueType } from '@sprucelabs/schema'\nimport { namesUtil, testLog } from '@sprucelabs/spruce-skill-utils'\nimport { assert } from '@sprucelabs/test'\nimport { FieldDefinitions } from '#spruce/schemas/fields/fields.types'\nimport testUtil from '../tests/utilities/test.utility'\nimport { ExecutionResults } from '../types/cli.types'\nimport { GraphicsInterface } from '../types/cli.types'\nimport {\n\tGraphicsTextEffect,\n\tProgressBarOptions,\n\tProgressBarUpdateOptions,\n\tImageDimensions,\n} from '../types/graphicsInterface.types'\nimport durationUtil from '../utilities/duration.utility'\nimport TerminalInterface from './TerminalInterface'\n\nexport default class SpyInterface implements GraphicsInterface {\n\tpublic invocations: { command: string; options?: any }[] = []\n\tprivate cursorPosition = { x: 0, y: 0 }\n\n\tprivate promptResolver?: (\n\t\tinput: FieldDefinitionValueType<FieldDefinitions>\n\t) => void | undefined\n\n\tprivate confirmResolver?: (pass: boolean) => void | undefined\n\tprivate waitForEnterResolver?: () => void | undefined\n\tprivate promptDefaultValue: any\n\tprivate term?: TerminalInterface\n\tprivate startTime: number\n\tprivate promptTimeout?: any\n\n\tpublic constructor() {\n\t\tthis.startTime = new Date().getTime()\n\n\t\tthis.term = this.shouldRenderTestLogs()\n\t\t\t? new TerminalInterface(process.cwd(), true, (...strs: []) => {\n\t\t\t\t\tthis.optionallyRenderLine(strs.join(' '))\n\t\t\t })\n\t\t\t: undefined\n\t}\n\n\tprivate shouldRenderTestLogs() {\n\t\treturn process.env.SHOULD_RENDER_TEST_LOGS === 'true'\n\t}\n\n\tpublic renderWarning(\n\t\tmessage: string,\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderWarning', { message, effects })\n\t\tthis.term?.renderWarning(message)\n\t}\n\n\tpublic renderHint(\n\t\tmessage: string,\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderHint', { message, effects })\n\t\tthis.optionallyRenderLine(`Hint: ${message}`)\n\t\tthis.term?.renderHint(message)\n\t}\n\n\tprivate trackInvocation(command: string, options?: any) {\n\t\t// testUtil.log(command, JSON.stringify(options), '\\n')\n\t\tthis.invocations.push({ command, options })\n\t}\n\n\tpublic isWaitingForInput() {\n\t\treturn !!(\n\t\t\tthis.promptResolver ||\n\t\t\tthis.confirmResolver ||\n\t\t\tthis.waitForEnterResolver\n\t\t)\n\t}\n\n\tpublic reset() {\n\t\tthis.promptResolver = undefined\n\t\tthis.confirmResolver = undefined\n\t\tthis.waitForEnterResolver = undefined\n\t\tclearTimeout(this.promptTimeout)\n\t}\n\n\tpublic getLastInvocation() {\n\t\treturn this.invocations[this.invocations.length - 1]\n\t}\n\n\tpublic async sendInput(input: string | string[]): Promise<void> {\n\t\tthis.trackInvocation('sendInput', input)\n\n\t\tthis.optionallyRenderLine(\n\t\t\t`Sending input: \"${input.length > 0 ? input : 'ENTER'}\"`\n\t\t)\n\n\t\tif (this.waitForEnterResolver) {\n\t\t\tconst resolver = this.waitForEnterResolver\n\t\t\tthis.waitForEnterResolver = undefined\n\n\t\t\tresolver()\n\t\t} else if (this.promptResolver) {\n\t\t\tconst resolver = this.promptResolver\n\t\t\tthis.promptResolver = undefined\n\n\t\t\tresolver(input !== '\\n' && input !== '' ? input : this.promptDefaultValue)\n\t\t} else if (this.confirmResolver) {\n\t\t\tconst resolver = this.confirmResolver\n\t\t\tthis.confirmResolver = undefined\n\n\t\t\tresolver(\n\t\t\t\tinput === '\\n' ||\n\t\t\t\t\tinput.length === 0 ||\n\t\t\t\t\t(typeof input === 'string' && input.toLowerCase() === 'y')\n\t\t\t)\n\t\t} else {\n\t\t\tthrow new Error('Sent input before prompted for input')\n\t\t}\n\n\t\treturn new Promise((resolve) => {\n\t\t\tsetTimeout(resolve, 50)\n\t\t})\n\t}\n\n\tpublic renderSection(options: {\n\t\theadline: string\n\t\tlines?: string[] | string[]\n\t\theadlineEffects?: GraphicsTextEffect[]\n\t\tdividerEffects?: GraphicsTextEffect[]\n\t\tbodyEffects?: GraphicsTextEffect[]\n\t\tobject?: any\n\t}): void {\n\t\tthis.trackInvocation('renderSection', options)\n\t\tthis.term?.renderSection(options)\n\t}\n\n\tpublic renderObject(obj: any): void {\n\t\tthis.trackInvocation('renderObject', obj)\n\t\tthis.term?.renderObject(obj)\n\t}\n\n\tpublic renderError(err: Error): void {\n\t\tthis.trackInvocation('renderError', err)\n\t\tthis.term?.renderError(err)\n\t}\n\n\tpublic renderCodeSample(code: string): void {\n\t\tthis.trackInvocation('renderCodeSample', code)\n\t\tthis.term?.renderCodeSample(code)\n\t}\n\n\tpublic renderActionSummary(results: ExecutionResults): void {\n\t\tthis.trackInvocation('renderCommandSummary', results)\n\t\tthis.term?.renderActionSummary(results)\n\t}\n\n\tpublic renderHero(\n\t\tmessage: string,\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderHero', { message, effects })\n\t\tthis.term?.renderHero(message, effects)\n\t}\n\n\tpublic renderHeadline(\n\t\tmessage: string,\n\t\teffects: GraphicsTextEffect[],\n\t\tdividerEffects: GraphicsTextEffect[]\n\t): void {\n\t\tthis.trackInvocation('renderHeadline', { message, effects, dividerEffects })\n\t\tthis.term?.renderHeadline(message, effects, dividerEffects)\n\t}\n\n\tpublic renderDivider(effects?: GraphicsTextEffect[] | undefined): void {\n\t\tthis.trackInvocation('renderDivider', effects)\n\t\tthis.term?.renderDivider(effects)\n\t}\n\n\tpublic renderLine(\n\t\tmessage: string,\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderLine', { message, effects })\n\t\tmessage && message.length > 0 && this.optionallyRenderLine(message)\n\t}\n\n\tprivate optionallyRenderLine(message: string) {\n\t\tif (this.shouldRenderTestLogs()) {\n\t\t\tconst duration = new Date().getTime() - this.startTime\n\t\t\tconst friendly = durationUtil.msToFriendly(duration)\n\n\t\t\ttestLog.info(\n\t\t\t\t`${\n\t\t\t\t\t//@ts-ignore\n\t\t\t\t\tglobal.activeTest?.test ? global.activeTest?.test + ' :: ' : ''\n\t\t\t\t}${friendly} :: ${message}`\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\tthis.trackInvocation('renderImage', { path, options })\n\t}\n\n\tpublic renderLines(\n\t\tmessages: string[],\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderLines', { messages, effects })\n\t\tthis.term?.renderLines(messages, effects)\n\t}\n\n\tpublic async prompt<T extends FieldDefinitions>(definition: T) {\n\t\tthis.trackInvocation('prompt', definition)\n\n\t\tif (this.promptResolver) {\n\t\t\tthrow new Error(\n\t\t\t\t'Tried to double prompt. Try this.term?.sendInput() before calling prompt next.'\n\t\t\t)\n\t\t}\n\n\t\tlet msg = `${namesUtil.toPascal(definition.type)} Prompt: ${\n\t\t\tdefinition.label\n\t\t}`\n\n\t\tif (definition.type === 'select') {\n\t\t\tmsg += '\\n\\nChoices:\\n'\n\t\t\tdefinition.options.choices.forEach((choice) => {\n\t\t\t\tmsg += `\\n${choice.value}: ${choice.label}`\n\t\t\t})\n\n\t\t\tmsg += '\\n'\n\t\t}\n\n\t\tthis.optionallyRenderLine(msg)\n\n\t\treturn new Promise<FieldDefinitionValueType<FieldDefinitions>>(\n\t\t\t(resolve, reject) => {\n\t\t\t\tthis.promptResolver = (...args: any[]) => {\n\t\t\t\t\tclearTimeout(this.promptTimeout)\n\t\t\t\t\t//@ts-ignore\n\t\t\t\t\tresolve(...args)\n\t\t\t\t}\n\t\t\t\tthis.promptTimeout = setTimeout(() => {\n\t\t\t\t\tthis.reset()\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tassert.fail(\n\t\t\t\t\t\t\t`Timed out waiting for input with label: '${definition.label}'\\n\\nConsider passing what you need to Action().execute({ something })`\n\t\t\t\t\t\t)\n\t\t\t\t\t} catch (err: any) {\n\t\t\t\t\t\treject(err)\n\t\t\t\t\t}\n\t\t\t\t}, 10000)\n\t\t\t\tthis.promptDefaultValue = definition.defaultValue\n\t\t\t}\n\t\t)\n\t}\n\n\tpublic startLoading(message?: string | undefined): void {\n\t\tthis.trackInvocation('startLoading', message)\n\t\tthis.optionallyRenderLine(message ? `${message}` : 'Start loading...')\n\t}\n\n\tpublic stopLoading(): void {\n\t\tthis.trackInvocation('stopLoading')\n\t\tthis.optionallyRenderLine('Stop loading...')\n\t}\n\n\tpublic async waitForEnter(message?: string | undefined): Promise<void> {\n\t\tthis.trackInvocation('waitForEnter', message)\n\t\tthis.optionallyRenderLine(\n\t\t\t`${message ? ` ${message}\\n\\n` : ``}Waiting for enter...`\n\t\t)\n\n\t\treturn new Promise((resolve) => {\n\t\t\tthis.waitForEnterResolver = resolve\n\t\t})\n\t}\n\n\tpublic async waitForInput() {\n\t\tconst ttl = 1000 * 60 * 5\n\t\tconst checkInterval = 100\n\t\tlet loops = ttl / checkInterval\n\t\tlet lastWriteCount = this.invocations.length\n\n\t\twhile (!this.isWaitingForInput()) {\n\t\t\tif (loops-- === 0) {\n\t\t\t\tassert.fail(`Waiting for input timed out.`)\n\t\t\t}\n\n\t\t\tconst hasWritten = lastWriteCount != this.invocations.length\n\n\t\t\tif (hasWritten) {\n\t\t\t\tloops = ttl / checkInterval\n\t\t\t\tlastWriteCount = this.invocations.length\n\t\t\t\tif (this.shouldRenderTestLogs()) {\n\t\t\t\t\ttestUtil.log('waitForInput timeout reset because of new output.')\n\t\t\t\t}\n\t\t\t}\n\t\t\tawait new Promise((resolve) => setTimeout(resolve, checkInterval))\n\t\t}\n\t}\n\n\tpublic confirm(question: string): Promise<boolean> {\n\t\tthis.trackInvocation('confirm', question)\n\t\tthis.optionallyRenderLine(`${question} :: Y/N...`)\n\n\t\treturn new Promise((resolve) => {\n\t\t\tthis.confirmResolver = resolve\n\t\t})\n\t}\n\n\tpublic clear(): void {\n\t\tthis.trackInvocation('clear')\n\t}\n\n\tpublic renderProgressBar(options: ProgressBarOptions): void {\n\t\tthis.trackInvocation('renderProgressBar', options)\n\t\tthis.optionallyRenderLine(\n\t\t\t`Showing progress${options.title ? ` ${options.title}` : ``}`\n\t\t)\n\t}\n\n\tpublic updateProgressBar(options: ProgressBarUpdateOptions): void {\n\t\tthis.trackInvocation('updateProgressBar', options)\n\t}\n\n\tpublic removeProgressBar(): void {\n\t\tthis.trackInvocation('removeProgressBar')\n\t\tthis.optionallyRenderLine(`Hiding progress`)\n\t}\n\n\tpublic async getCursorPosition(): Promise<{ x: number; y: number } | null> {\n\t\tthis.trackInvocation('getCursorPosition')\n\t\treturn this.cursorPosition\n\t}\n\n\tpublic setCursorPosition(pos: { x: number; y: number }) {\n\t\tthis.cursorPosition = pos\n\t}\n\n\tpublic moveCursorTo(x: number, y: number): void {\n\t\tthis.trackInvocation('moveCursorTo', { x, y })\n\t}\n\n\tpublic clearBelowCursor(): void {\n\t\tthis.trackInvocation('clearBelowCursor')\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/interfaces/TerminalInterface.ts"],"names":["terminalImage","require","fieldCount","generateInquirerFieldName","filterEffectsForCFonts","effects","effect","GraphicsTextEffect","SpruceHeader","Reset","Bold","Dim","Italic","Underline","Inverse","Hidden","Strikethrough","Visible","indexOf","TerminalInterface","cwd","renderStackTraces","log","console","bind","Error","lines","forEach","line","renderLine","object","Green","renderDivider","Object","keys","key","chalk","bold","JSON","stringify","options","headline","dividerEffects","headlineEffects","Blue","bodyEffects","renderHeadline","renderLines","renderObject","bar","results","generatedFiles","files","filter","f","action","updatedFiles","skippedFiles","errors","packagesInstalled","renderHero","summaryLines","length","push","renderSection","featuresUtil","generateCommand","featureCode","actionCode","table","Table","head","colWidths","wordWrap","colAligns","sort","one","two","name","pkg","isDev","toString","file","description","namesUtil","toPascal","hints","err","renderError","totalTime","durationUtil","msToFriendly","message","isSpruce","fonts","say","font","align","space","colors","shouldStripVowels","process","stdout","columns","stripped","replace","gradient","Red","undefined","write","eraseBeforeRender","terminal","eraseLine","Yellow","stopLoading","loader","text","start","stop","question","inquirer","prompt","type","confirmResult","answer","label","bgGreenBright","black","clear","code","colored","emphasize","highlight","value","renderWarning","definition","isPromptActive","fieldDefinition","defaultValue","promptOptions","generatePromptLabel","field","FieldFactory","Field","transformer","toValueType","validate","id","fields","isArray","choices","map","choice","checked","_","includes","SpruceError","friendlyMessage","dirPath","path","join","root","onlyShowDir","fs","existsSync","lstatSync","isDirectory","cleanedPath","directory","extname","response","result","hint","italic","dim","stackLines","cleanStack","splice","stack","AbstractSpruceError","original","originalError","split","removeProgressBar","progressBar","percent","showPercent","eta","showEta","items","totalItems","inline","renderInline","update","image","Promise","resolve","requestCursorLocation","getCursorLocation","x","y","saveCursor","restoreCursor","moveTo","eraseDisplayBelow","_doesSupportColor","isTTy","isTTY"],"mappings":"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","sourcesContent":["import path from 'path'\nimport AbstractSpruceError from '@sprucelabs/error'\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 globby from 'globby'\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 renderHero(message: string, effects?: GraphicsTextEffect[]) {\n\t\tconst shouldStripVowels = process.stdout.columns < 80\n\n\t\tconst stripped = shouldStripVowels\n\t\t\t? message.replace(/[aeiou]/gi, '')\n\t\t\t: message\n\n\t\tfonts.say(stripped, {\n\t\t\t// Font: 'tiny',\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?.path ?? 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"],"file":"TerminalInterface.js"}
|
|
1
|
+
{"version":3,"file":"TerminalInterface.js","names":["terminalImage","require","fieldCount","generateInquirerFieldName","filterEffectsForCFonts","effects","effect","GraphicsTextEffect","SpruceHeader","Reset","Bold","Dim","Italic","Underline","Inverse","Hidden","Strikethrough","Visible","indexOf","TerminalInterface","cwd","renderStackTraces","log","console","bind","Error","lines","forEach","line","renderLine","object","Green","renderDivider","Object","keys","key","chalk","bold","JSON","stringify","options","headline","dividerEffects","headlineEffects","Blue","bodyEffects","renderHeadline","renderLines","renderObject","bar","results","generatedFiles","files","filter","f","action","updatedFiles","skippedFiles","errors","packagesInstalled","renderHero","summaryLines","length","push","renderSection","featuresUtil","generateCommand","featureCode","actionCode","table","Table","head","colWidths","wordWrap","colAligns","sort","one","two","name","pkg","isDev","toString","file","description","namesUtil","toPascal","hints","err","renderError","totalTime","durationUtil","msToFriendly","message","isSpruce","fonts","say","font","align","space","colors","shouldStripVowels","process","stdout","columns","stripped","replace","gradient","Red","undefined","write","eraseBeforeRender","terminal","eraseLine","Yellow","stopLoading","loader","text","start","stop","question","inquirer","prompt","type","confirmResult","answer","label","bgGreenBright","black","clear","code","colored","emphasize","highlight","value","renderWarning","definition","isPromptActive","fieldDefinition","defaultValue","promptOptions","generatePromptLabel","field","FieldFactory","Field","transformer","toValueType","validate","id","fields","isArray","choices","map","choice","checked","_","includes","SpruceError","friendlyMessage","dirPath","path","join","root","onlyShowDir","fs","existsSync","lstatSync","isDirectory","cleanedPath","directory","extname","response","result","hint","italic","dim","stackLines","cleanStack","splice","stack","AbstractSpruceError","original","originalError","split","removeProgressBar","progressBar","percent","showPercent","eta","showEta","items","totalItems","inline","renderInline","update","image","Promise","resolve","requestCursorLocation","getCursorLocation","x","y","saveCursor","restoreCursor","moveTo","eraseDisplayBelow","_doesSupportColor","isTTy","isTTY"],"sources":["../../src/interfaces/TerminalInterface.ts"],"sourcesContent":["import path from 'path'\nimport AbstractSpruceError from '@sprucelabs/error'\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 globby from 'globby'\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 renderHero(message: string, effects?: GraphicsTextEffect[]) {\n\t\tconst shouldStripVowels = process.stdout.columns < 80\n\n\t\tconst stripped = shouldStripVowels\n\t\t\t? message.replace(/[aeiou]/gi, '')\n\t\t\t: message\n\n\t\tfonts.say(stripped, {\n\t\t\t// Font: 'tiny',\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?.path ?? 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":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAMA;;AAEA;;AACA;;AAEA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AACA;;AAGA;;AACA;;AAEA;;AAMA;;AACA;;;;;;;;;;;;;;;;;;AACA,IAAMA,aAAa,GAAGC,OAAO,CAAC,gBAAD,CAA7B;;AAEA,IAAIC,UAAU,GAAG,CAAjB;;AACA,SAASC,yBAAT,GAAqC;EACpCD,UAAU;EACV,uBAAgBA,UAAhB;AACA;AAED;;;AACA,SAASE,sBAAT,CAAgCC,OAAhC,EAA+D;EAC9D,OAAO,oBACNA,OADM,EAEN,UAACC,MAAD;IAAA,OACC,CACCC,sCAAmBC,YADpB,EAECD,sCAAmBE,KAFpB,EAGCF,sCAAmBG,IAHpB,EAICH,sCAAmBI,GAJpB,EAKCJ,sCAAmBK,MALpB,EAMCL,sCAAmBM,SANpB,EAOCN,sCAAmBO,OAPpB,EAQCP,sCAAmBQ,MARpB,EASCR,sCAAmBS,aATpB,EAUCT,sCAAmBU,OAVpB,EAWEC,OAXF,CAWUZ,MAXV,MAWsB,CAAC,CAZxB;EAAA,CAFM,CAAP;AAgBA;;IAMoBa,iB;EASpB,2BACCC,GADD,EAIE;IAAA,IAFDC,iBAEC,uEAFmB,KAEnB;IAAA,IADDC,GACC,uEADKC,OAAO,CAACD,GAAR,CAAYE,IAAZ,CAAiBD,OAAjB,CACL;IAAA;IAAA,yDAZsB,KAYtB;IAAA;IAAA,4DAV0B,KAU1B;IAAA,sDARkD,IAQlD;IAAA;IACD,KAAKH,GAAL,GAAWA,GAAX;IACA,KAAKC,iBAAL,GAAyBA,iBAAzB;IACA,KAAKC,GAAL,GAAWA,GAAX;EACA;;;;;qGAUD;QAAA;UAAA;YAAA;cAAA;gBAAA,MACO,IAAIG,KAAJ,CAAU,mDAAV,CADP;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;WAIA,qBAAmBC,KAAnB,EAAiCrB,OAAjC,EAAiE;MAAA;;MAChEqB,KAAK,CAACC,OAAN,CAAc,UAACC,IAAD,EAAU;QACvB,KAAI,CAACC,UAAL,CAAgBD,IAAhB,EAAsBvB,OAAtB;MACA,CAFD;IAGA;;;WAED,sBACCyB,MADD,EAGE;MAAA;;MAAA,IADDzB,OACC,uEAD+B,CAACE,sCAAmBwB,KAApB,CAC/B;MACD,KAAKF,UAAL,CAAgB,EAAhB;MACA,KAAKG,aAAL;MACA,KAAKH,UAAL,CAAgB,EAAhB;MACAI,MAAM,CAACC,IAAP,CAAYJ,MAAZ,EAAoBH,OAApB,CAA4B,UAACQ,GAAD,EAAS;QACpC,MAAI,CAACN,UAAL,WACIO,kBAAMC,IAAN,CAAWF,GAAX,CADJ,eAEE,OAAOL,MAAM,CAACK,GAAD,CAAb,KAAuB,QAAvB,GACGL,MAAM,CAACK,GAAD,CADT,GAEGG,IAAI,CAACC,SAAL,CAAeT,MAAM,CAACK,GAAD,CAArB,CAJL,GAMC9B,OAND;MAQA,CATD;MAUA,KAAKwB,UAAL,CAAgB,EAAhB;MACA,KAAKG,aAAL;MACA,KAAKH,UAAL,CAAgB,EAAhB;IACA;;;WAED,uBAAqBW,OAArB,EAOG;MACF,IACCC,QADD,GAOID,OAPJ,CACCC,QADD;MAAA,IAECf,KAFD,GAOIc,OAPJ,CAECd,KAFD;MAAA,IAGCI,MAHD,GAOIU,OAPJ,CAGCV,MAHD;MAAA,4BAOIU,OAPJ,CAICE,cAJD;MAAA,IAICA,cAJD,sCAIkB,EAJlB;MAAA,4BAOIF,OAPJ,CAKCG,eALD;MAAA,IAKCA,eALD,sCAKmB,CAACpC,sCAAmBqC,IAApB,EAA0BrC,sCAAmBG,IAA7C,CALnB;MAAA,2BAOI8B,OAPJ,CAMCK,WAND;MAAA,IAMCA,WAND,qCAMe,CAACtC,sCAAmBwB,KAApB,CANf;;MASA,IAAIU,QAAJ,EAAc;QACb,KAAKK,cAAL,WAAuBL,QAAvB,gCAAwCE,eAAxC,EAAyDD,cAAzD;MACA;;MAED,IAAIhB,KAAJ,EAAW;QACV,KAAKqB,WAAL,CAAiBrB,KAAjB,EAAwBmB,WAAxB;QAEA,KAAKhB,UAAL,CAAgB,EAAhB;QACA,KAAKG,aAAL,CAAmBU,cAAnB;MACA;;MAED,IAAIZ,MAAJ,EAAY;QACX,KAAKkB,YAAL,CAAkBlB,MAAlB,EAA0Be,WAA1B;MACA;;MAED,KAAKhB,UAAL,CAAgB,EAAhB;IACA;;;WAED,uBAAqBxB,OAArB,EAAqD;MACpD,IAAM4C,GAAG,GAAG,oDAAZ;MACA,KAAKpB,UAAL,CAAgBoB,GAAhB,EAAqB5C,OAArB;IACA;;;WAED,6BACC6C,OADD,EAEE;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;;MACD,IAAMC,cAAc,8CACnBD,OAAO,CAACE,KADW,mDACnB,eAAeC,MAAf,CAAsB,UAACC,CAAD;QAAA,OAAOA,CAAC,CAACC,MAAF,KAAa,WAApB;MAAA,CAAtB,CADmB,yEACuC,EAD3D;MAEA,IAAMC,YAAY,gDACjBN,OAAO,CAACE,KADS,oDACjB,gBAAeC,MAAf,CAAsB,UAACC,CAAD;QAAA,OAAOA,CAAC,CAACC,MAAF,KAAa,SAApB;MAAA,CAAtB,CADiB,2EACuC,EADzD;MAEA,IAAME,YAAY,gDACjBP,OAAO,CAACE,KADS,oDACjB,gBAAeC,MAAf,CAAsB,UAACC,CAAD;QAAA,OAAOA,CAAC,CAACC,MAAF,KAAa,SAApB;MAAA,CAAtB,CADiB,2EACuC,EADzD;MAGA,IAAMG,MAAM,sBAAGR,OAAO,CAACQ,MAAX,6DAAqB,EAAjC;MACA,IAAMC,iBAAiB,4BAAGT,OAAO,CAACS,iBAAX,yEAAgC,EAAvD;MAEA,KAAKC,UAAL,WAAmBV,OAAO,CAACT,QAA3B;MAEA,IAAIoB,YAAsB,GAAG,CAC5BH,MAAM,CAACI,MAAP,GAAgB,CAAhB,qBAA+BJ,MAAM,CAACI,MAAtC,IAAiD,IADrB,EAE5BX,cAAc,CAACW,MAAf,GAAwB,CAAxB,8BACuBX,cAAc,CAACW,MADtC,IAEG,IAJyB,EAK5BN,YAAY,CAACM,MAAb,GAAsB,CAAtB,4BAA4CN,YAAY,CAACM,MAAzD,IAAoE,IALxC,EAM5BL,YAAY,CAACK,MAAb,GAAsB,CAAtB,4BAA4CL,YAAY,CAACK,MAAzD,IAAoE,IANxC,EAO5BH,iBAAiB,CAACG,MAAlB,GAA2B,CAA3B,qCAC8BH,iBAAiB,CAACG,MADhD,IAEG,IATyB,sEAUxBZ,OAAO,CAACW,YAVgB,yEAUA,EAVA,GAW3BR,MAX2B,CAWpB,UAACzB,IAAD;QAAA,OAAU,CAAC,CAACA,IAAZ;MAAA,CAXoB,CAA7B;;MAaA,IAAIiC,YAAY,CAACC,MAAb,KAAwB,CAA5B,EAA+B;QAC9BD,YAAY,CAACE,IAAb,CAAkB,oBAAlB;MACA;;MACD,KAAKC,aAAL,CAAmB;QAClBvB,QAAQ,YAAKwB,oBAAaC,eAAb,CACZhB,OAAO,CAACiB,WADI,EAEZjB,OAAO,CAACkB,UAFI,CAAL,aADU;QAKlB1C,KAAK,EAAEmC;MALW,CAAnB;;MAQA,IAAIF,iBAAiB,CAACG,MAAlB,GAA2B,CAA/B,EAAkC;QACjC,IAAMO,KAAK,GAAG,IAAIC,oBAAJ,CAAU;UACvBC,IAAI,EAAE,CAAC,MAAD,EAAS,KAAT,CADiB;UAEvBC,SAAS,EAAE,CAAC,EAAD,EAAK,CAAL,CAFY;UAGvBC,QAAQ,EAAE,IAHa;UAIvBC,SAAS,EAAE,CAAC,MAAD,EAAS,QAAT;QAJY,CAAV,CAAd;QAMAf,iBAAiB,CACfgB,IADF,CACO,UAACC,GAAD,EAAMC,GAAN;UAAA,OAAeD,GAAG,CAACE,IAAJ,GAAWD,GAAG,CAACC,IAAf,GAAsB,CAAtB,GAA0B,CAAC,CAA1C;QAAA,CADP,EAEEnD,OAFF,CAEU,UAACoD,GAAD,EAAS;UACjBV,KAAK,CAACN,IAAN,CAAW,CAACgB,GAAG,CAACD,IAAL,EAAWC,GAAG,CAACC,KAAJ,GAAY,GAAZ,GAAkB,EAA7B,CAAX;QACA,CAJF;QAMA,KAAKhB,aAAL,CAAmB;UAClBvB,QAAQ,wBADU;UAElBf,KAAK,EAAE,CAAC2C,KAAK,CAACY,QAAN,EAAD;QAFW,CAAnB;MAIA;;MAED,wBAAkB,CAAC9B,cAAD,EAAiBK,YAAjB,CAAlB,0BAAkD;QAA7C,IAAIJ,KAAK,WAAT;;QACJ,IAAIA,KAAK,CAACU,MAAN,GAAe,CAAnB,EAAsB;UACrB,IAAMO,MAAK,GAAG,IAAIC,oBAAJ,CAAU;YACvBC,IAAI,EAAE,CAAC,MAAD,EAAS,aAAT,CADiB;YAEvBE,QAAQ,EAAE;UAFa,CAAV,CAAd;;UAKArB,KAAK,GAAGA,KAAK,CAACuB,IAAN,EAAR;;UANqB,2CAQFvB,KARE;UAAA;;UAAA;YAQrB,oDAA0B;cAAA;;cAAA,IAAf8B,IAAe;;cACzBb,MAAK,CAACN,IAAN,CAAW,CAACmB,IAAI,CAACJ,IAAN,uBAAYI,IAAI,CAACC,WAAjB,iEAAgC,EAAhC,CAAX;YACA;UAVoB;YAAA;UAAA;YAAA;UAAA;;UAYrB,KAAKnB,aAAL,CAAmB;YAClBvB,QAAQ,YAAK2C,4BAAUC,QAAV,CAAmBjC,KAAK,CAAC,CAAD,CAAL,CAASG,MAA5B,CAAL,kBADU;YAElB7B,KAAK,EAAE,CAAC2C,MAAK,CAACY,QAAN,EAAD;UAFW,CAAnB;QAIA;MACD;;MAED,IAAI/B,OAAO,CAACoC,KAAZ,EAAmB;QAClB,KAAKtB,aAAL,CAAmB;UAClBvB,QAAQ,EAAE,eADQ;UAElBf,KAAK,EAAEwB,OAAO,CAACoC;QAFG,CAAnB;MAIA;;MAED,IAAI5B,MAAM,CAACI,MAAP,GAAgB,CAApB,EAAuB;QACtB,KAAKhB,cAAL,CAAoB,QAApB;QACAY,MAAM,CAAC/B,OAAP,CAAe,UAAC4D,GAAD;UAAA,OAAS,MAAI,CAACC,WAAL,CAAiBD,GAAjB,CAAT;QAAA,CAAf;MACA;;MAED,IAAIrC,OAAO,CAACuC,SAAZ,EAAuB;QACtB,KAAK5D,UAAL,uBACgB6D,qBAAaC,YAAb,CAA0BzC,OAAO,CAACuC,SAAlC,CADhB;MAGA;IACD;;;WAED,wBACCG,OADD,EAOE;MAAA,IALDvF,OAKC,uEAL+B,CAC/BE,sCAAmBqC,IADY,EAE/BrC,sCAAmBG,IAFY,CAK/B;MAAA,IADDgC,cACC,uEADsC,EACtC;MACD,IAAMmD,QAAQ,GAAGxF,OAAO,CAACa,OAAR,CAAgBX,sCAAmBC,YAAnC,IAAmD,CAAC,CAArE;;MAEA,IAAIqF,QAAJ,EAAc;QACbC,mBAAMC,GAAN,CAAUH,OAAV,EAAmB;UAClBI,IAAI,EAAEzF,sCAAmBC,YADP;UAElByF,KAAK,EAAE,MAFW;UAGlBC,KAAK,EAAE,KAHW;UAIlBC,MAAM,EAAE/F,sBAAsB,CAACC,OAAD;QAJZ,CAAnB;MAMA,CAPD,MAOO;QACN,KAAK2B,aAAL,CAAmBU,cAAnB;QACA,KAAKb,UAAL,CAAgB+D,OAAhB,EAAyBvF,OAAzB;QACA,KAAK2B,aAAL,CAAmBU,cAAnB;QACA,KAAKb,UAAL,CAAgB,EAAhB;MACA;IACD;;;WAED,oBAAkB+D,OAAlB,EAAmCvF,OAAnC,EAAmE;MAClE,IAAM+F,iBAAiB,GAAGC,OAAO,CAACC,MAAR,CAAeC,OAAf,GAAyB,EAAnD;MAEA,IAAMC,QAAQ,GAAGJ,iBAAiB,GAC/BR,OAAO,CAACa,OAAR,CAAgB,WAAhB,EAA6B,EAA7B,CAD+B,GAE/Bb,OAFH;;MAIAE,mBAAMC,GAAN,CAAUS,QAAV,EAAoB;QACnB;QACAP,KAAK,EAAE,MAFY;QAGnBS,QAAQ,EAAE,CAACnG,sCAAmBoG,GAApB,EAAyBpG,sCAAmBqC,IAA5C,CAHS;QAInBuD,MAAM,EAAE9F,OAAO,GAAGD,sBAAsB,CAACC,OAAD,CAAzB,GAAqCuG;MAJjC,CAApB;IAMA;;;WAED,oBAAkBhB,OAAlB,EAAmC;MAClC,OAAO,KAAK/D,UAAL,0CAAyB+D,OAAzB,EAAP;IACA;;;WAED,oBACCA,OADD,EAIE;MAAA,IAFDvF,OAEC,uEAF+B,EAE/B;MAAA,IADDmC,OACC;MACD,IAAIqE,KAAU,GAAGzE,iBAAjB;MACA/B,OAAO,CAACsB,OAAR,CAAgB,UAACrB,MAAD,EAAY;QAC3BuG,KAAK,GAAGA,KAAK,CAACvG,MAAD,CAAb;MACA,CAFD;;MAIA,IAAIkC,OAAJ,aAAIA,OAAJ,eAAIA,OAAO,CAAEsE,iBAAb,EAAgC;QAC/BC,sBAASC,SAAT;MACA;;MAED,KAAK1F,GAAL,CAASjB,OAAO,CAACyD,MAAR,GAAiB,CAAjB,GAAqB+C,KAAK,CAACjB,OAAD,CAA1B,GAAsCA,OAA/C;IACA;;;WAED,uBAAqBA,OAArB,EAAsC;MACrC,KAAK/D,UAAL,wBAAsB+D,OAAtB,GAAiC,CAChCrF,sCAAmBG,IADa,EAEhCH,sCAAmB0G,MAFa,CAAjC;IAIA;;;;wGAED,kBAA0BrB,OAA1B;QAAA;UAAA;YAAA;cAAA;gBACC;gBACA,KAAKsB,WAAL;gBACA/F,iBAAiB,CAACgG,MAAlB,GAA2B,qBAAI;kBAC9BC,IAAI,EAAExB;gBADwB,CAAJ,EAExByB,KAFwB,EAA3B;;cAHD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;uGAQA;QAAA;;QAAA;UAAA;YAAA;cAAA;gBACC,yBAAAlG,iBAAiB,CAACgG,MAAlB,gFAA0BG,IAA1B;gBACAnG,iBAAiB,CAACgG,MAAlB,GAA2B,IAA3B;;cAFD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;mGAKA,kBAAqBI,QAArB;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAC6BC,qBAASC,MAAT,CAAgB;kBAC3CC,IAAI,EAAE,SADqC;kBAE3C5C,IAAI,EAAE,QAFqC;kBAG3Cc,OAAO,EAAE2B;gBAHkC,CAAhB,CAD7B;;cAAA;gBACOI,aADP;gBAAA,kCAOQ,CAAC,CAACA,aAAa,CAACC,MAPxB;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;wGAUA,kBAA0BhC,OAA1B;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACO,KAAK6B,MAAL,CAAY;kBACjBC,IAAI,EAAE,MADW;kBAEjBG,KAAK,YAAKjC,OAAO,GAAGA,OAAO,GAAG,GAAb,GAAmB,EAA/B,SAAoCxD,kBAAM0F,aAAN,CAAoBC,KAApB,CACxC,WADwC,CAApC;gBAFY,CAAZ,CADP;;cAAA;gBAOC,KAAKlG,UAAL,CAAgB,EAAhB;gBAPD;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;WAWA,iBAAe;MACd,KAAK,KAAKqF,WAAL,EAAL;MACA3F,OAAO,CAACyG,KAAR;IACA;;;WAED,0BAAwBC,IAAxB,EAAsC;MACrC,IAAI;QACH,IAAMC,OAAO,GAAGC,sBAAUC,SAAV,CAAoB,IAApB,EAA0BH,IAA1B,EAAgCI,KAAhD;;QACA,KAAKxG,UAAL,CAAgBqG,OAAhB;MACA,CAHD,CAGE,OAAO3C,GAAP,EAAiB;QAClB,KAAK+C,aAAL,CAAmB/C,GAAnB;MACA;IACD;;;;kGAED,kBACCgD,UADD;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAGC,KAAKC,cAAL,GAAsB,IAAtB;gBACM1D,IAJP,GAIc3E,yBAAyB,EAJvC;gBAKOsI,eALP,GAK2CF,UAL3C;gBAMSG,YANT,GAM0BD,eAN1B,CAMSC,YANT;gBAQOC,aARP,GAQ4C;kBAC1C,WAASD,YADiC;kBAE1C5D,IAAI,EAAJA,IAF0C;kBAG1Cc,OAAO,EAAE,KAAKgD,mBAAL,CAAyBH,eAAzB;gBAHiC,CAR5C;gBAcOI,KAdP,GAceC,qBAAaC,KAAb,CAAmB,QAAnB,EAA6BN,eAA7B,CAdf;;gBAgBCE,aAAa,CAACK,WAAd,GAA4B,UAACX,KAAD,EAAmB;kBAC9C,OAAQQ,KAAD,CAAuBI,WAAvB,CAAmCZ,KAAnC,CAAP;gBACA,CAFD;;gBAIAM,aAAa,CAACO,QAAd,GAAyB,UAACb,KAAD,EAAmB;kBAC3C,OAAO,kCACN;oBACCc,EAAE,EAAE,sBADL;oBAECC,MAAM,EAAE;sBACP3B,MAAM,EAAEgB;oBADD;kBAFT,CADM,EAON;oBAAEhB,MAAM,EAAEY;kBAAV,CAPM,CAAP,CAD2C,CAU3C;gBACA,CAXD;;gBApBD,eAiCSI,eAAe,CAACf,IAjCzB;gBAAA,kCAmCO,SAnCP,yBAuCO,QAvCP,yBAsDO,WAtDP,yBAmFO,MAnFP;gBAAA;;cAAA;gBAoCGiB,aAAa,CAACjB,IAAd,GAAqB,SAArB;gBApCH;;cAAA;gBAwCGiB,aAAa,CAACjB,IAAd,GAAqBe,eAAe,CAACY,OAAhB,GAA0B,UAA1B,GAAuC,MAA5D;gBAEAV,aAAa,CAACW,OAAd,GAAwBb,eAAe,CAACjG,OAAhB,CAAwB8G,OAAxB,CAAgCC,GAAhC,EACvB;gBACA,UAACC,MAAD;kBAAA,OAAa;oBACZ1E,IAAI,EAAE0E,MAAM,CAAC3B,KADD;oBAEZQ,KAAK,EAAEmB,MAAM,CAACnB,KAFF;oBAGZoB,OAAO,EAAEC,mBAAEC,QAAF,CAAWlB,eAAe,CAACC,YAA3B,EAAyCc,MAAM,CAACnB,KAAhD;kBAHG,CAAb;gBAAA,CAFuB,CAAxB;gBA1CH;;cAAA;gBAAA,KAuDOI,eAAe,CAACY,OAvDvB;kBAAA;kBAAA;gBAAA;;gBAAA,MAwDU,IAAIO,uBAAJ,CAAgB;kBACrB3B,IAAI,EAAE,iBADe;kBAErB4B,eAAe,EACd;gBAHoB,CAAhB,CAxDV;;cAAA;gBA+DSC,OA/DT,GA+DmBC,iBAAKC,IAAL,oDACfvB,eAAe,CAACC,YADD,2DACf,uBAA8BqB,IADf,yEACuB,KAAK3I,GAD5B,EAEf,GAFe,CA/DnB;gBAoEGuH,aAAa,CAACjB,IAAd,GAAqB,MAArB;gBACAiB,aAAa,CAACsB,IAAd,GAAqBH,OAArB;gBACAnB,aAAa,CAACuB,WAAd,GAA4B,IAA5B,CAtEH,CAwEG;;gBACAvB,aAAa,CAACO,QAAd,GAAyB,UAACb,KAAD,EAAmB;kBAC3C,OAAO8B,oBAAGC,UAAH,CAAc/B,KAAd,KAAwB8B,oBAAGE,SAAH,CAAahC,KAAb,EAAoBiC,WAApB,EAA/B;gBACA,CAFD,CAzEH,CA4EG;;;gBACA3B,aAAa,CAACK,WAAd,GAA4B,UAACe,IAAD,EAAkB;kBAC7C,IAAMQ,WAAW,GAAGR,IAAI,CAACtD,OAAL,CAAakC,aAAa,CAACsB,IAA3B,EAAiC,EAAjC,CAApB;kBACA,OAAOM,WAAW,CAACzG,MAAZ,KAAuB,CAAvB,GAA2B6E,aAAa,CAACsB,IAAzC,GAAgDM,WAAvD;gBACA,CAHD;;gBA7EH;;cAAA;gBAAA,KAoFO9B,eAAe,CAACY,OApFvB;kBAAA;kBAAA;gBAAA;;gBAAA,MAqFU,IAAIO,uBAAJ,CAAgB;kBACrB3B,IAAI,EAAE,iBADe;kBAErB4B,eAAe,EACd;gBAHoB,CAAhB,CArFV;;cAAA;gBA2FSC,QA3FT,GA2FmBC,iBAAKC,IAAL,qDACfvB,eAAe,CAACC,YADD,2DACf,uBAA8BqB,IADf,2EACuB,KAAK3I,GAD5B,EAEf,GAFe,CA3FnB,EAgGG;;gBAhGH;gBAAA,OAiGuB,kCAAU0I,QAAV,UAjGvB;;cAAA;gBAiGS1G,KAjGT;;gBAAA,MAmGOA,KAAK,CAACU,MAAN,KAAiB,CAnGxB;kBAAA;kBAAA;gBAAA;;gBAAA,MAoGU,IAAI8F,uBAAJ,CAAgB;kBACrB3B,IAAI,EAAE,iBADe;kBAErBuC,SAAS,EAAEV,QAFU;kBAGrBD,eAAe,kEAA2DC,QAA3D;gBAHM,CAAhB,CApGV;;cAAA;gBA2GGnB,aAAa,CAACjB,IAAd,GAAqB,MAArB;gBACAiB,aAAa,CAACsB,IAAd,GAAqBH,QAArB,CA5GH,CA8GG;;gBACAnB,aAAa,CAACO,QAAd,GAAyB,UAACb,KAAD,EAAmB;kBAC3C,OACC8B,oBAAGC,UAAH,CAAc/B,KAAd,KACA,CAAC8B,oBAAGE,SAAH,CAAahC,KAAb,EAAoBiC,WAApB,EADD,IAEAP,iBAAKU,OAAL,CAAapC,KAAb,MAAwB,KAHzB;gBAKA,CAND,CA/GH,CAsHG;;;gBACAM,aAAa,CAACK,WAAd,GAA4B,UAACe,IAAD,EAAkB;kBAC7C,IAAMQ,WAAW,GAAGR,IAAI,CAACtD,OAAL,CAAakC,aAAa,CAACsB,IAA3B,EAAiC,EAAjC,CAApB;kBACA,OAAOM,WAAW,CAACzG,MAAZ,KAAuB,CAAvB,GAA2B6E,aAAa,CAACsB,IAAzC,GAAgDM,WAAvD;gBACA,CAHD;;gBAvHH;;cAAA;gBAgIG5B,aAAa,CAACjB,IAAd,GAAqB,OAArB;;cAhIH;gBAAA;gBAAA,OAmIyBF,qBAASC,MAAT,CAAgBkB,aAAhB,CAnIzB;;cAAA;gBAmIO+B,QAnIP;gBAqIC,KAAKlC,cAAL,GAAsB,KAAtB;gBAEMmC,MAvIP,GAwIE,OAAOD,QAAQ,CAAC5F,IAAD,CAAf,KAA0B,WAA1B,GACI+D,KAAD,CAAuBI,WAAvB,CAAmCyB,QAAQ,CAAC5F,IAAD,CAA3C,CADH,GAEG4F,QAAQ,CAAC5F,IAAD,CA1Ib;gBAAA,kCA4IQ6F,MA5IR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;WA8IA,6BAA4BlC,eAA5B,EAAoE;MACnE,IAAIZ,KAAK,GAAGY,eAAe,CAACZ,KAA5B;;MAEA,IAAIY,eAAe,CAACmC,IAApB,EAA0B;QACzB/C,KAAK,aAAMA,KAAN,cAAezF,kBAAMyI,MAAN,CAAaC,GAAb,YAAqBrC,eAAe,CAACmC,IAArC,OAAf,CAAL;MACA;;MAED/C,KAAK,GAAGA,KAAK,GAAG,IAAhB;MAEA,OAAOA,KAAP;IACA;;;WAED,qBAAmBtC,GAAnB,EAA+B;MAC9B;MACA,KAAK2B,WAAL;MAEA,IAAMtB,OAAO,GAAGL,GAAG,CAACK,OAApB,CAJ8B,CAK9B;;MACA,IAAMmF,UAAU,GAAG,KAAKC,UAAL,CAAgBzF,GAAhB,CAAnB;MACA,KAAKvB,aAAL,CAAmB;QAClBvB,QAAQ,EAAEmD,OADQ;QAElBlE,KAAK,EAAE,KAAKL,iBAAL,GAAyB0J,UAAU,CAACE,MAAX,CAAkB,CAAlB,EAAqB,GAArB,CAAzB,GAAqDrE,SAF1C;QAGlBjE,eAAe,EAAE,CAACpC,sCAAmBG,IAApB,EAA0BH,sCAAmBoG,GAA7C,CAHC;QAIlBjE,cAAc,EAAE,CAACnC,sCAAmBoG,GAApB,CAJE;QAKlB9D,WAAW,EAAE,CAACtC,sCAAmBoG,GAApB;MALK,CAAnB;IAOA;;;WAED,oBAAmBpB,GAAnB,EAA+B;MAC9B,IAAMK,OAAO,GAAGL,GAAG,CAACK,OAApB;MACA,IAAIsF,KAAK,GAAG3F,GAAG,CAAC2F,KAAJ,GAAY3F,GAAG,CAAC2F,KAAJ,CAAUzE,OAAV,CAAkBb,OAAlB,EAA2B,EAA3B,CAAZ,GAA6C,EAAzD;;MAEA,IAAIL,GAAG,YAAY4F,iBAAnB,EAAwC;QACvC,IAAIC,QAAQ,GAAG7F,GAAG,CAAC8F,aAAnB;;QACA,OAAOD,QAAP,EAAiB;UAChBF,KAAK,GAAGA,KAAK,CAACzE,OAAN,CAAc,YAAY2E,QAAQ,CAACxF,OAAnC,EAA4C,EAA5C,CAAR;UACAwF,QAAQ,GAAIA,QAAD,CAAkCC,aAA7C;QACA;MACD;;MAED,IAAMN,UAAU,GAAGG,KAAK,CAACI,KAAN,CAAY,IAAZ,CAAnB;MAEA,OAAOP,UAAP;IACA;;;WAED,2BAAyBvI,OAAzB,EAA4D;MAC3D,KAAK+I,iBAAL;MACA,KAAKC,WAAL,GAAmBzE,sBAASyE,WAAT,iCACfhJ,OADe;QAElBiJ,OAAO,EAAEjJ,OAAO,CAACkJ,WAFC;QAGlBC,GAAG,EAAEnJ,OAAO,CAACoJ,OAHK;QAIlBC,KAAK,EAAErJ,OAAO,CAACsJ,UAJG;QAKlBC,MAAM,EAAEvJ,OAAO,CAACwJ;MALE,GAAnB;IAOA;;;WAED,6BAA2B;MAC1B,IAAI,KAAKR,WAAT,EAAsB;QACrB,KAAKA,WAAL,CAAiBlE,IAAjB;QACA,KAAKkE,WAAL,GAAmB,IAAnB;MACA;IACD;;;WAED,2BAAyBhJ,OAAzB,EAAkE;MACjE,IAAI,KAAKgJ,WAAT,EAAsB;QACrB,KAAKA,WAAL,CAAiBS,MAAjB,iCACIzJ,OADJ;UAECqJ,KAAK,EAAErJ,OAAO,CAACsJ;QAFhB;MAIA;IACD;;;;uGAED,kBACC/B,IADD,EAECvH,OAFD;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAIqBxC,aAAa,CAACkF,IAAd,CAAmB6E,IAAnB,EAAyBvH,OAAzB,CAJrB;;cAAA;gBAIO0J,KAJP;gBAKC,KAAKrK,UAAL,CAAgBqK,KAAhB;;cALD;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;6GAQA;QAAA;UAAA;YAAA;cAAA;gBAAA,kCACQ,IAAIC,OAAJ,CAAY,UAACC,OAAD,EAAa;kBAC/BrF,sBAASsF,qBAAT;;kBACAtF,sBAASuF,iBAAT,CAA2B,UAAC/G,GAAD,EAAMgH,CAAN,EAASC,CAAT,EAAe;oBACzCJ,OAAO,CAAC7G,GAAG,GAAG,IAAH,GAAU;sBAAEgH,CAAC,EAAEA,CAAF,aAAEA,CAAF,cAAEA,CAAF,GAAO,CAAV;sBAAaC,CAAC,EAAEA,CAAF,aAAEA,CAAF,cAAEA,CAAF,GAAO;oBAArB,CAAd,CAAP;kBACA,CAFD;gBAGA,CALM,CADR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;WASA,sBAAoB;MACnBzF,sBAAS0F,UAAT;IACA;;;WAED,yBAAuB;MACtB1F,sBAAS2F,aAAT;IACA;;;WAED,sBAAoBH,CAApB,EAA+BC,CAA/B,EAAgD;MAC/CzF,sBAAS4F,MAAT,CAAgBJ,CAAhB,EAAmBC,CAAnB;IACA;;;WAED,4BAAgC;MAC/BzF,sBAAS6F,iBAAT;IACA;;;WAED,qBAAmB;MAClB7F,sBAASC,SAAT;IACA;;;WA9hBD,4BAAiC;MAChC,OAAO,KAAK6F,iBAAZ;IACA;;;WAED,6BAAkCC,KAAlC,EAAkD;MACjD,KAAKD,iBAAL,GAAyBC,KAAzB;IACA;;;;;;iCAzBmB3L,iB;iCAAAA,iB,uBAMe,aAAAkF,OAAO,UAAP,+DAASC,MAAT,oEAAiByG,KAAjB,KAA0B,CAAC,uB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"bootSkillOptions.builder.js","names":["id","name","description","fields","local","type","label","hint","onData","options","valueType","onError","shouldReturnImmediately","isPrivate","defaultValue","undefined"],"sources":["../../../src/schemas/v2020_07_22/bootSkillOptions.builder.ts"],"sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\n\nexport default buildSchema({\n\tid: 'bootSkillOptions',\n\tname: 'Boot skill action',\n\tdescription: 'Boot your skill 💪',\n\tfields: {\n\t\tlocal: {\n\t\t\ttype: 'boolean',\n\t\t\tlabel: 'Run local',\n\t\t\thint: 'Will run using ts-node and typescript directly. Longer boot times',\n\t\t},\n\t\tonData: {\n\t\t\ttype: 'raw',\n\t\t\toptions: {\n\t\t\t\tvalueType: '(msg: string) => void',\n\t\t\t},\n\t\t},\n\t\tonError: {\n\t\t\ttype: 'raw',\n\t\t\toptions: {\n\t\t\t\tvalueType: '(msg: string) => void',\n\t\t\t},\n\t\t},\n\t\tshouldReturnImmediately: {\n\t\t\tlabel: 'Wait until skill is booted',\n\t\t\ttype: 'boolean',\n\t\t\tisPrivate: true,\n\t\t\thint: 'For testing. Returns immediately after executing test so the running tests can be managed programatically.',\n\t\t\tdefaultValue: false,\n\t\t\toptions: undefined,\n\t\t},\n\t},\n})\n"],"mappings":";;;;;;;AAAA;;eAEe,yBAAY;EAC1BA,EAAE,EAAE,kBADsB;EAE1BC,IAAI,EAAE,mBAFoB;EAG1BC,WAAW,EAAE,oBAHa;EAI1BC,MAAM,EAAE;IACPC,KAAK,EAAE;MACNC,IAAI,EAAE,SADA;MAENC,KAAK,EAAE,WAFD;MAGNC,IAAI,EAAE;IAHA,CADA;IAMPC,MAAM,EAAE;MACPH,IAAI,EAAE,KADC;MAEPI,OAAO,EAAE;QACRC,SAAS,EAAE;MADH;IAFF,CAND;IAYPC,OAAO,EAAE;MACRN,IAAI,EAAE,KADE;MAERI,OAAO,EAAE;QACRC,SAAS,EAAE;MADH;IAFD,CAZF;IAkBPE,uBAAuB,EAAE;MACxBN,KAAK,EAAE,4BADiB;MAExBD,IAAI,EAAE,SAFkB;MAGxBQ,SAAS,EAAE,IAHa;MAIxBN,IAAI,EAAE,4GAJkB;MAKxBO,YAAY,EAAE,KALU;MAMxBL,OAAO,EAAEM;IANe;EAlBlB;AAJkB,CAAZ,C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"createConversationTopicOptions.builder.js","names":["id","name","description","fields","nameReadable","namedTemplateItemBuilder","label","hint","nameCamel"],"sources":["../../../src/schemas/v2020_07_22/createConversationTopicOptions.builder.ts"],"sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\nimport namedTemplateItemBuilder from './namedTemplateItem.builder'\n\nexport default buildSchema({\n\tid: 'createConversationTopicOptions',\n\tname: 'Create conversation options',\n\tdescription: 'Define a topic you want to discuss.',\n\tfields: {\n\t\tnameReadable: {\n\t\t\t...namedTemplateItemBuilder.fields.nameReadable,\n\t\t\tlabel: 'Topic',\n\t\t\thint: 'What should we talk about or try and get done, e.g. Book an appointment or tell a knock knock joke.',\n\t\t},\n\t\tnameCamel: namedTemplateItemBuilder.fields.nameCamel,\n\t},\n})\n"],"mappings":";;;;;;;;;;;AAAA;;AACA;;;;;;eAEe,yBAAY;EAC1BA,EAAE,EAAE,gCADsB;EAE1BC,IAAI,EAAE,6BAFoB;EAG1BC,WAAW,EAAE,qCAHa;EAI1BC,MAAM,EAAE;IACPC,YAAY,kCACRC,8BAAyBF,MAAzB,CAAgCC,YADxB;MAEXE,KAAK,EAAE,OAFI;MAGXC,IAAI,EAAE;IAHK,EADL;IAMPC,SAAS,EAAEH,8BAAyBF,MAAzB,CAAgCK;EANpC;AAJkB,CAAZ,C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"createErrorOptions.builder.js","names":["id","name","description","fields","syncErrorsOptionsBuilder","errorBuilderDestinationDir","type","label","isRequired","isPrivate","hint","defaultValue","nameReadable","namedTemplateItemBuilder","namePascal","nameCamel"],"sources":["../../../src/schemas/v2020_07_22/createErrorOptions.builder.ts"],"sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\nimport namedTemplateItemBuilder from './namedTemplateItem.builder'\nimport syncErrorsOptionsBuilder from './syncErrorOptions.builder'\n\nexport default buildSchema({\n\tid: 'createErrorOptions',\n\tname: 'Create error action',\n\tdescription: 'Create a builder for your brand new error! ',\n\tfields: {\n\t\t...syncErrorsOptionsBuilder.fields,\n\t\terrorBuilderDestinationDir: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Error builder destination directory',\n\t\t\tisRequired: true,\n\t\t\tisPrivate: true,\n\t\t\thint: \"Where I'll save your new builder file?\",\n\t\t\tdefaultValue: './src/errors',\n\t\t},\n\t\tnameReadable: namedTemplateItemBuilder.fields.nameReadable,\n\t\tnamePascal: namedTemplateItemBuilder.fields.namePascal,\n\t\tnameCamel: namedTemplateItemBuilder.fields.nameCamel,\n\t\tdescription: namedTemplateItemBuilder.fields.description,\n\t},\n})\n"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;eAEe,yBAAY;EAC1BA,EAAE,EAAE,oBADsB;EAE1BC,IAAI,EAAE,qBAFoB;EAG1BC,WAAW,EAAE,6CAHa;EAI1BC,MAAM,kCACFC,6BAAyBD,MADvB;IAELE,0BAA0B,EAAE;MAC3BC,IAAI,EAAE,MADqB;MAE3BC,KAAK,EAAE,qCAFoB;MAG3BC,UAAU,EAAE,IAHe;MAI3BC,SAAS,EAAE,IAJgB;MAK3BC,IAAI,EAAE,wCALqB;MAM3BC,YAAY,EAAE;IANa,CAFvB;IAULC,YAAY,EAAEC,8BAAyBV,MAAzB,CAAgCS,YAVzC;IAWLE,UAAU,EAAED,8BAAyBV,MAAzB,CAAgCW,UAXvC;IAYLC,SAAS,EAAEF,8BAAyBV,MAAzB,CAAgCY,SAZtC;IAaLb,WAAW,EAAEW,8BAAyBV,MAAzB,CAAgCD;EAbxC;AAJoB,CAAZ,C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"createOrganizationOptions.builder.js","names":["id","name","description","fields","nameReadable","namedTemplateItemBuilder","label","nameKebab"],"sources":["../../../src/schemas/v2020_07_22/createOrganizationOptions.builder.ts"],"sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\nimport namedTemplateItemBuilder from './namedTemplateItem.builder'\n\nexport default buildSchema({\n\tid: 'createOrganizationOptions',\n\tname: 'create organization action',\n\tdescription:\n\t\t'Skills can only communicate with people and skills associated with the same organization. This ensures people can get differentiated experiences across multiple businesses.',\n\tfields: {\n\t\tnameReadable: {\n\t\t\t...namedTemplateItemBuilder.fields.nameReadable,\n\t\t\tlabel: 'Name',\n\t\t},\n\t\tnameKebab: {\n\t\t\t...namedTemplateItemBuilder.fields.nameKebab,\n\t\t\tlabel: 'Slug',\n\t\t},\n\t},\n})\n"],"mappings":";;;;;;;;;;;AAAA;;AACA;;;;;;eAEe,yBAAY;EAC1BA,EAAE,EAAE,2BADsB;EAE1BC,IAAI,EAAE,4BAFoB;EAG1BC,WAAW,EACV,8KAJyB;EAK1BC,MAAM,EAAE;IACPC,YAAY,kCACRC,8BAAyBF,MAAzB,CAAgCC,YADxB;MAEXE,KAAK,EAAE;IAFI,EADL;IAKPC,SAAS,kCACLF,8BAAyBF,MAAzB,CAAgCI,SAD3B;MAERD,KAAK,EAAE;IAFC;EALF;AALkB,CAAZ,C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"createSchemaOptions.builder.js","names":["id","name","description","fields","syncSchemasOptionsBuilder","schemaBuilderDestinationDir","type","label","hint","defaultValue","builderFunction","isPrivate","moduleToImportFromWhenRemote","syncAfterCreate","version","nameReadable","namedTemplateItemBuilder","namePascal","nameCamel"],"sources":["../../../src/schemas/v2020_07_22/createSchemaOptions.builder.ts"],"sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\nimport namedTemplateItemBuilder from './namedTemplateItem.builder'\nimport syncSchemasOptionsBuilder from './syncSchemasOptions.builder'\n\nexport default buildSchema({\n\tid: 'createSchemaOptions',\n\tname: 'Create schema',\n\tdescription: 'Create the builder to a fresh new schema!',\n\tfields: {\n\t\t...syncSchemasOptionsBuilder.fields,\n\t\tschemaBuilderDestinationDir: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Schema builder destination directory',\n\t\t\thint: \"Where I'll save the new schema builder.\",\n\t\t\tdefaultValue: 'src/schemas',\n\t\t},\n\t\tbuilderFunction: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Builder function',\n\t\t\thint: 'The function that builds this schema',\n\t\t\tdefaultValue: 'buildSchema',\n\t\t\tisPrivate: true,\n\t\t},\n\t\tmoduleToImportFromWhenRemote: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Source module',\n\t\t\thint: 'If this schema should be imported from a node module vs generated locally.',\n\t\t},\n\t\tsyncAfterCreate: {\n\t\t\ttype: 'boolean',\n\t\t\tlabel: 'Sync after creation',\n\t\t\thint: 'This will ensure types and schemas are in sync after you create your builder.',\n\t\t\tisPrivate: true,\n\t\t\tdefaultValue: true,\n\t\t},\n\t\tversion: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Version',\n\t\t\thint: 'Set a version yourself instead of letting me generate one for you',\n\t\t\tisPrivate: true,\n\t\t},\n\t\tnameReadable: namedTemplateItemBuilder.fields.nameReadable,\n\t\tnamePascal: namedTemplateItemBuilder.fields.namePascal,\n\t\tnameCamel: namedTemplateItemBuilder.fields.nameCamel,\n\t\tdescription: namedTemplateItemBuilder.fields.description,\n\t},\n})\n"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;eAEe,yBAAY;EAC1BA,EAAE,EAAE,qBADsB;EAE1BC,IAAI,EAAE,eAFoB;EAG1BC,WAAW,EAAE,2CAHa;EAI1BC,MAAM,kCACFC,+BAA0BD,MADxB;IAELE,2BAA2B,EAAE;MAC5BC,IAAI,EAAE,MADsB;MAE5BC,KAAK,EAAE,sCAFqB;MAG5BC,IAAI,EAAE,yCAHsB;MAI5BC,YAAY,EAAE;IAJc,CAFxB;IAQLC,eAAe,EAAE;MAChBJ,IAAI,EAAE,MADU;MAEhBC,KAAK,EAAE,kBAFS;MAGhBC,IAAI,EAAE,sCAHU;MAIhBC,YAAY,EAAE,aAJE;MAKhBE,SAAS,EAAE;IALK,CARZ;IAeLC,4BAA4B,EAAE;MAC7BN,IAAI,EAAE,MADuB;MAE7BC,KAAK,EAAE,eAFsB;MAG7BC,IAAI,EAAE;IAHuB,CAfzB;IAoBLK,eAAe,EAAE;MAChBP,IAAI,EAAE,SADU;MAEhBC,KAAK,EAAE,qBAFS;MAGhBC,IAAI,EAAE,+EAHU;MAIhBG,SAAS,EAAE,IAJK;MAKhBF,YAAY,EAAE;IALE,CApBZ;IA2BLK,OAAO,EAAE;MACRR,IAAI,EAAE,MADE;MAERC,KAAK,EAAE,SAFC;MAGRC,IAAI,EAAE,mEAHE;MAIRG,SAAS,EAAE;IAJH,CA3BJ;IAiCLI,YAAY,EAAEC,8BAAyBb,MAAzB,CAAgCY,YAjCzC;IAkCLE,UAAU,EAAED,8BAAyBb,MAAzB,CAAgCc,UAlCvC;IAmCLC,SAAS,EAAEF,8BAAyBb,MAAzB,CAAgCe,SAnCtC;IAoCLhB,WAAW,EAAEc,8BAAyBb,MAAzB,CAAgCD;EApCxC;AAJoB,CAAZ,C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"createTestOptions.builder.js","names":["id","name","description","fields","type","label","isRequired","options","choices","value","nameReadable","hint","testDestinationDir","defaultValue","nameCamel","namedTemplateItemBuilder","namePascal"],"sources":["../../../src/schemas/v2020_07_22/createTestOptions.builder.ts"],"sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\nimport namedTemplateItemBuilder from './namedTemplateItem.builder'\n\nexport default buildSchema({\n\tid: 'createTestOptions',\n\tname: 'Create test action',\n\tdescription: 'Your first failing test just a command away! ⚔️',\n\tfields: {\n\t\ttype: {\n\t\t\ttype: 'select',\n\t\t\tlabel: 'Type of test',\n\t\t\tisRequired: true,\n\t\t\toptions: {\n\t\t\t\tchoices: [\n\t\t\t\t\t{ value: 'behavioral', label: 'Behavioral' },\n\t\t\t\t\t{ value: 'implementation', label: 'Implementation' },\n\t\t\t\t],\n\t\t\t},\n\t\t},\n\t\tnameReadable: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'What are you testing?',\n\t\t\tisRequired: true,\n\t\t\thint: 'E.g. Booking an appointment or turning on a light',\n\t\t},\n\t\ttestDestinationDir: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Test destination directory',\n\t\t\thint: \"Where I'll save your new test.\",\n\t\t\tdefaultValue: 'src/__tests__',\n\t\t},\n\t\tnameCamel: namedTemplateItemBuilder.fields.nameCamel,\n\t\tnamePascal: namedTemplateItemBuilder.fields.namePascal,\n\t},\n})\n"],"mappings":";;;;;;;;;AAAA;;AACA;;eAEe,yBAAY;EAC1BA,EAAE,EAAE,mBADsB;EAE1BC,IAAI,EAAE,oBAFoB;EAG1BC,WAAW,EAAE,iDAHa;EAI1BC,MAAM,EAAE;IACPC,IAAI,EAAE;MACLA,IAAI,EAAE,QADD;MAELC,KAAK,EAAE,cAFF;MAGLC,UAAU,EAAE,IAHP;MAILC,OAAO,EAAE;QACRC,OAAO,EAAE,CACR;UAAEC,KAAK,EAAE,YAAT;UAAuBJ,KAAK,EAAE;QAA9B,CADQ,EAER;UAAEI,KAAK,EAAE,gBAAT;UAA2BJ,KAAK,EAAE;QAAlC,CAFQ;MADD;IAJJ,CADC;IAYPK,YAAY,EAAE;MACbN,IAAI,EAAE,MADO;MAEbC,KAAK,EAAE,uBAFM;MAGbC,UAAU,EAAE,IAHC;MAIbK,IAAI,EAAE;IAJO,CAZP;IAkBPC,kBAAkB,EAAE;MACnBR,IAAI,EAAE,MADa;MAEnBC,KAAK,EAAE,4BAFY;MAGnBM,IAAI,EAAE,gCAHa;MAInBE,YAAY,EAAE;IAJK,CAlBb;IAwBPC,SAAS,EAAEC,8BAAyBZ,MAAzB,CAAgCW,SAxBpC;IAyBPE,UAAU,EAAED,8BAAyBZ,MAAzB,CAAgCa;EAzBrC;AAJkB,CAAZ,C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"installSkillAtOrganizationOptions.builder.js","names":["id","name","description","fields","organizationId","type","label"],"sources":["../../../src/schemas/v2020_07_22/installSkillAtOrganizationOptions.builder.ts"],"sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\n\nexport default buildSchema({\n\tid: 'installSkillAtOrganizationOptions',\n\tname: 'install skill at organization action',\n\tdescription: 'Install your skill at any organization you are connected to.',\n\tfields: {\n\t\torganizationId: {\n\t\t\ttype: 'id',\n\t\t\tlabel: 'Organization id',\n\t\t},\n\t},\n})\n"],"mappings":";;;;;;;AAAA;;eAEe,yBAAY;EAC1BA,EAAE,EAAE,mCADsB;EAE1BC,IAAI,EAAE,sCAFoB;EAG1BC,WAAW,EAAE,8DAHa;EAI1BC,MAAM,EAAE;IACPC,cAAc,EAAE;MACfC,IAAI,EAAE,IADS;MAEfC,KAAK,EAAE;IAFQ;EADT;AAJkB,CAAZ,C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"listenEventOptions.builder.js","names":["id","name","description","fields","syncEventOptionsBuilder","namespace","type","label","eventName","listenerDestinationDir","hint","defaultValue","version","isPrivate"],"sources":["../../../src/schemas/v2020_07_22/listenEventOptions.builder.ts"],"sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\nimport syncEventOptionsBuilder from './syncEventOptions.builder'\n\nexport default buildSchema({\n\tid: 'listenEventOptions',\n\tname: 'Listen to event action',\n\tdescription: 'Options for event.listen.',\n\tfields: {\n\t\t...syncEventOptionsBuilder.fields,\n\t\tnamespace: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Namespace',\n\t\t},\n\t\teventName: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Event name',\n\t\t},\n\t\tlistenerDestinationDir: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Events destination directory',\n\t\t\thint: 'Where should I add your listeners?',\n\t\t\tdefaultValue: 'src/listeners',\n\t\t},\n\t\tversion: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Version',\n\t\t\thint: 'Set a version yourself instead of letting me generate one for you',\n\t\t\tisPrivate: true,\n\t\t},\n\t},\n})\n"],"mappings":";;;;;;;;;;;AAAA;;AACA;;;;;;eAEe,yBAAY;EAC1BA,EAAE,EAAE,oBADsB;EAE1BC,IAAI,EAAE,wBAFoB;EAG1BC,WAAW,EAAE,2BAHa;EAI1BC,MAAM,kCACFC,6BAAwBD,MADtB;IAELE,SAAS,EAAE;MACVC,IAAI,EAAE,MADI;MAEVC,KAAK,EAAE;IAFG,CAFN;IAMLC,SAAS,EAAE;MACVF,IAAI,EAAE,MADI;MAEVC,KAAK,EAAE;IAFG,CANN;IAULE,sBAAsB,EAAE;MACvBH,IAAI,EAAE,MADiB;MAEvBC,KAAK,EAAE,8BAFgB;MAGvBG,IAAI,EAAE,oCAHiB;MAIvBC,YAAY,EAAE;IAJS,CAVnB;IAgBLC,OAAO,EAAE;MACRN,IAAI,EAAE,MADE;MAERC,KAAK,EAAE,SAFC;MAGRG,IAAI,EAAE,mEAHE;MAIRG,SAAS,EAAE;IAJH;EAhBJ;AAJoB,CAAZ,C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"namedTemplateItem.builder.js","names":["id","name","description","fields","nameReadable","type","label","hint","isRequired","nameReadablePlural","nameCamel","nameCamelPlural","namePascal","namePascalPlural","nameConst","nameKebab","nameSnake","nameSnakePlural"],"sources":["../../../src/schemas/v2020_07_22/namedTemplateItem.builder.ts"],"sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\n\nexport default buildSchema({\n\tid: 'namedTemplateItem',\n\tname: 'NamedTemplateItem',\n\tdescription: 'Used to collect input on the names of a class or interface',\n\tfields: {\n\t\tnameReadable: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Readable name',\n\t\t\thint: 'The name people will read',\n\t\t\tisRequired: true,\n\t\t},\n\t\tnameReadablePlural: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Readable name (plural)',\n\t\t\thint: 'The plural form of the name people will read',\n\t\t\tisRequired: true,\n\t\t},\n\t\tnameCamel: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Camel case name',\n\t\t\tisRequired: true,\n\t\t\thint: 'camelCase version of the name',\n\t\t},\n\t\tnameCamelPlural: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Plural camel case name',\n\t\t\thint: 'camelCase version of the name',\n\t\t},\n\t\tnamePascal: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Pascal case name',\n\t\t\thint: 'PascalCase of the name',\n\t\t},\n\t\tnamePascalPlural: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Plural Pascal case name',\n\t\t\thint: 'PascalCase of the name',\n\t\t},\n\t\tnameConst: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Constant case name',\n\t\t\thint: 'CONST_CASE of the name',\n\t\t},\n\t\tnameKebab: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Kebab case name',\n\t\t\thint: 'kebab-case of the name',\n\t\t},\n\t\tnameSnake: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Snake case name',\n\t\t\thint: 'snake_case of the name',\n\t\t},\n\t\tnameSnakePlural: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Snake case name (plural)',\n\t\t\thint: 'snakes_case of the name',\n\t\t},\n\t\tdescription: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Description',\n\t\t\thint: 'Describe a bit more here',\n\t\t},\n\t},\n})\n"],"mappings":";;;;;;;AAAA;;eAEe,yBAAY;EAC1BA,EAAE,EAAE,mBADsB;EAE1BC,IAAI,EAAE,mBAFoB;EAG1BC,WAAW,EAAE,4DAHa;EAI1BC,MAAM,EAAE;IACPC,YAAY,EAAE;MACbC,IAAI,EAAE,MADO;MAEbC,KAAK,EAAE,eAFM;MAGbC,IAAI,EAAE,2BAHO;MAIbC,UAAU,EAAE;IAJC,CADP;IAOPC,kBAAkB,EAAE;MACnBJ,IAAI,EAAE,MADa;MAEnBC,KAAK,EAAE,wBAFY;MAGnBC,IAAI,EAAE,8CAHa;MAInBC,UAAU,EAAE;IAJO,CAPb;IAaPE,SAAS,EAAE;MACVL,IAAI,EAAE,MADI;MAEVC,KAAK,EAAE,iBAFG;MAGVE,UAAU,EAAE,IAHF;MAIVD,IAAI,EAAE;IAJI,CAbJ;IAmBPI,eAAe,EAAE;MAChBN,IAAI,EAAE,MADU;MAEhBC,KAAK,EAAE,wBAFS;MAGhBC,IAAI,EAAE;IAHU,CAnBV;IAwBPK,UAAU,EAAE;MACXP,IAAI,EAAE,MADK;MAEXC,KAAK,EAAE,kBAFI;MAGXC,IAAI,EAAE;IAHK,CAxBL;IA6BPM,gBAAgB,EAAE;MACjBR,IAAI,EAAE,MADW;MAEjBC,KAAK,EAAE,yBAFU;MAGjBC,IAAI,EAAE;IAHW,CA7BX;IAkCPO,SAAS,EAAE;MACVT,IAAI,EAAE,MADI;MAEVC,KAAK,EAAE,oBAFG;MAGVC,IAAI,EAAE;IAHI,CAlCJ;IAuCPQ,SAAS,EAAE;MACVV,IAAI,EAAE,MADI;MAEVC,KAAK,EAAE,iBAFG;MAGVC,IAAI,EAAE;IAHI,CAvCJ;IA4CPS,SAAS,EAAE;MACVX,IAAI,EAAE,MADI;MAEVC,KAAK,EAAE,iBAFG;MAGVC,IAAI,EAAE;IAHI,CA5CJ;IAiDPU,eAAe,EAAE;MAChBZ,IAAI,EAAE,MADU;MAEhBC,KAAK,EAAE,0BAFS;MAGhBC,IAAI,EAAE;IAHU,CAjDV;IAsDPL,WAAW,EAAE;MACZG,IAAI,EAAE,MADM;MAEZC,KAAK,EAAE,aAFK;MAGZC,IAAI,EAAE;IAHM;EAtDN;AAJkB,CAAZ,C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"nodeFeatureOptions.builder.js","names":["id","name","description","fields","destination","type","defaultValue","isRequired","label"],"sources":["../../../src/schemas/v2020_07_22/nodeFeatureOptions.builder.ts"],"sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\n\nexport default buildSchema({\n\tid: 'nodeFeatureOptions',\n\tname: 'Create node module',\n\tdescription:\n\t\t'Create a new node module, to be written in typescript, ready to rock!',\n\tfields: {\n\t\tdestination: {\n\t\t\ttype: 'text',\n\t\t\tdefaultValue: '.',\n\t\t},\n\t\tname: {\n\t\t\ttype: 'text',\n\t\t\tisRequired: true,\n\t\t\tlabel: \"What's the name of your module?\",\n\t\t},\n\t\tdescription: {\n\t\t\ttype: 'text',\n\t\t\tisRequired: true,\n\t\t\tlabel: 'How would you describe your module?',\n\t\t},\n\t},\n})\n"],"mappings":";;;;;;;AAAA;;eAEe,yBAAY;EAC1BA,EAAE,EAAE,oBADsB;EAE1BC,IAAI,EAAE,oBAFoB;EAG1BC,WAAW,EACV,uEAJyB;EAK1BC,MAAM,EAAE;IACPC,WAAW,EAAE;MACZC,IAAI,EAAE,MADM;MAEZC,YAAY,EAAE;IAFF,CADN;IAKPL,IAAI,EAAE;MACLI,IAAI,EAAE,MADD;MAELE,UAAU,EAAE,IAFP;MAGLC,KAAK,EAAE;IAHF,CALC;IAUPN,WAAW,EAAE;MACZG,IAAI,EAAE,MADM;MAEZE,UAAU,EAAE,IAFA;MAGZC,KAAK,EAAE;IAHK;EAVN;AALkB,CAAZ,C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"onboardOptions.builder.js","names":["id","name","description","fields"],"sources":["../../../src/schemas/v2020_07_22/onboardOptions.builder.ts"],"sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\n\nexport default buildSchema({\n\tid: 'onboardOptions',\n\tname: 'Onboard action',\n\tdescription: 'The question is; Are you read? ⚡️',\n\tfields: {},\n})\n"],"mappings":";;;;;;;AAAA;;eAEe,yBAAY;EAC1BA,EAAE,EAAE,gBADsB;EAE1BC,IAAI,EAAE,gBAFoB;EAG1BC,WAAW,EAAE,mCAHa;EAI1BC,MAAM,EAAE;AAJkB,CAAZ,C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"onboarding.builder.js","names":["id","name","description","fields","mode","type","label","isRequired","options","choices","value","stage"],"sources":["../../../src/schemas/v2020_07_22/onboarding.builder.ts"],"sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\n\nexport default buildSchema({\n\tid: 'onboarding',\n\tname: 'Onboarding',\n\tdescription: 'Track onboarding progress and tutorials & quizzes completed.',\n\tfields: {\n\t\tmode: {\n\t\t\ttype: 'select',\n\t\t\tlabel: 'mode',\n\t\t\tisRequired: true,\n\t\t\toptions: {\n\t\t\t\tchoices: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: 'Short',\n\t\t\t\t\t\tvalue: 'short',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: 'Immersive',\n\t\t\t\t\t\tvalue: 'immersive',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: 'Off',\n\t\t\t\t\t\tvalue: 'off',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t},\n\t\tstage: {\n\t\t\ttype: 'select',\n\t\t\tlabel: 'Stage',\n\t\t\toptions: {\n\t\t\t\tchoices: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: 'Create skill',\n\t\t\t\t\t\tvalue: 'create.skill',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: 'Test',\n\t\t\t\t\t\tvalue: 'test',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t},\n\t},\n})\n"],"mappings":";;;;;;;AAAA;;eAEe,yBAAY;EAC1BA,EAAE,EAAE,YADsB;EAE1BC,IAAI,EAAE,YAFoB;EAG1BC,WAAW,EAAE,8DAHa;EAI1BC,MAAM,EAAE;IACPC,IAAI,EAAE;MACLC,IAAI,EAAE,QADD;MAELC,KAAK,EAAE,MAFF;MAGLC,UAAU,EAAE,IAHP;MAILC,OAAO,EAAE;QACRC,OAAO,EAAE,CACR;UACCH,KAAK,EAAE,OADR;UAECI,KAAK,EAAE;QAFR,CADQ,EAKR;UACCJ,KAAK,EAAE,WADR;UAECI,KAAK,EAAE;QAFR,CALQ,EASR;UACCJ,KAAK,EAAE,KADR;UAECI,KAAK,EAAE;QAFR,CATQ;MADD;IAJJ,CADC;IAsBPC,KAAK,EAAE;MACNN,IAAI,EAAE,QADA;MAENC,KAAK,EAAE,OAFD;MAGNE,OAAO,EAAE;QACRC,OAAO,EAAE,CACR;UACCH,KAAK,EAAE,cADR;UAECI,KAAK,EAAE;QAFR,CADQ,EAKR;UACCJ,KAAK,EAAE,MADR;UAECI,KAAK,EAAE;QAFR,CALQ;MADD;IAHH;EAtBA;AAJkB,CAAZ,C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"personWithToken.builder.js","names":["id","description","fields","personSchema","casualName","token","type","isRequired","isLoggedIn","label"],"sources":["../../../src/schemas/v2020_07_22/personWithToken.builder.ts"],"sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\n// eslint-disable-next-line spruce/prohibit-import-of-schema-in-builders\nimport personSchema from '#spruce/schemas/spruce/v2020_07_22/person.schema'\n\nexport default buildSchema({\n\tid: 'personWithToken',\n\tdescription: 'A stripped down cli user with token details for login',\n\tfields: {\n\t\tid: personSchema.fields.id,\n\t\tcasualName: personSchema.fields.casualName,\n\t\ttoken: { type: 'text', isRequired: true },\n\t\tisLoggedIn: {\n\t\t\ttype: 'boolean',\n\t\t\tlabel: 'Logged in',\n\t\t},\n\t},\n})\n"],"mappings":";;;;;;;;;AAAA;;AAEA;;AADA;eAGe,yBAAY;EAC1BA,EAAE,EAAE,iBADsB;EAE1BC,WAAW,EAAE,uDAFa;EAG1BC,MAAM,EAAE;IACPF,EAAE,EAAEG,mBAAaD,MAAb,CAAoBF,EADjB;IAEPI,UAAU,EAAED,mBAAaD,MAAb,CAAoBE,UAFzB;IAGPC,KAAK,EAAE;MAAEC,IAAI,EAAE,MAAR;MAAgBC,UAAU,EAAE;IAA5B,CAHA;IAIPC,UAAU,EAAE;MACXF,IAAI,EAAE,SADK;MAEXG,KAAK,EAAE;IAFI;EAJL;AAHkB,CAAZ,C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"registerDashboardWidgetsEmitPayloadSchema.builder.js","names":["id","name","description","importsWhenLocal","fields","widgets","type","options","valueType"],"sources":["../../../src/schemas/v2020_07_22/registerDashboardWidgetsEmitPayloadSchema.builder.ts"],"sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\n\nexport default buildSchema({\n\tid: 'registerDashboardWidgetsEmitPayloadSchema',\n\tname: 'register dashboard widgets emit payload schema',\n\tdescription: '',\n\timportsWhenLocal: [\n\t\t\"import { BaseWidget } from '#spruce/../widgets/types/widgets.types'\",\n\t],\n\tfields: {\n\t\twidgets: {\n\t\t\ttype: 'raw',\n\t\t\toptions: {\n\t\t\t\tvalueType: 'BaseWidget',\n\t\t\t},\n\t\t},\n\t},\n})\n"],"mappings":";;;;;;;AAAA;;eAEe,yBAAY;EAC1BA,EAAE,EAAE,2CADsB;EAE1BC,IAAI,EAAE,gDAFoB;EAG1BC,WAAW,EAAE,EAHa;EAI1BC,gBAAgB,EAAE,CACjB,qEADiB,CAJQ;EAO1BC,MAAM,EAAE;IACPC,OAAO,EAAE;MACRC,IAAI,EAAE,KADE;MAERC,OAAO,EAAE;QACRC,SAAS,EAAE;MADH;IAFD;EADF;AAPkB,CAAZ,C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"setupTestsOptions.builder.js","names":["id","name","description","fields","demoNumber","type","label","isRequired","skillSlug"],"sources":["../../../src/schemas/v2020_07_22/setupTestsOptions.builder.ts"],"sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\n\nexport default buildSchema({\n\tid: 'setupTestsOptions',\n\tname: 'Setup tests options',\n\tdescription:\n\t\t'Use this with in your CI/CD environment to get your skill ready to run tests.',\n\tfields: {\n\t\tdemoNumber: {\n\t\t\ttype: 'phone',\n\t\t\tlabel: 'Demo phone number',\n\t\t\tisRequired: true,\n\t\t},\n\t\tskillSlug: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Namespace',\n\t\t\tisRequired: true,\n\t\t},\n\t},\n})\n"],"mappings":";;;;;;;AAAA;;eAEe,yBAAY;EAC1BA,EAAE,EAAE,mBADsB;EAE1BC,IAAI,EAAE,qBAFoB;EAG1BC,WAAW,EACV,+EAJyB;EAK1BC,MAAM,EAAE;IACPC,UAAU,EAAE;MACXC,IAAI,EAAE,OADK;MAEXC,KAAK,EAAE,mBAFI;MAGXC,UAAU,EAAE;IAHD,CADL;IAMPC,SAAS,EAAE;MACVH,IAAI,EAAE,MADI;MAEVC,KAAK,EAAE,WAFG;MAGVC,UAAU,EAAE;IAHF;EANJ;AALkB,CAAZ,C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"setupVscodeOptions.builder.js","names":["id","name","description","fields","all","type","label"],"sources":["../../../src/schemas/v2020_07_22/setupVscodeOptions.builder.ts"],"sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\n\nexport default buildSchema({\n\tid: 'setupVscodeOptions',\n\tname: 'Setup vscode action',\n\tdescription:\n\t\t'Install vscode extensions, launch configs, and settings the Spruce team uses in-house!',\n\tfields: {\n\t\tall: {\n\t\t\ttype: 'boolean',\n\t\t\tlabel: 'Install everything',\n\t\t},\n\t},\n})\n"],"mappings":";;;;;;;AAAA;;eAEe,yBAAY;EAC1BA,EAAE,EAAE,oBADsB;EAE1BC,IAAI,EAAE,qBAFoB;EAG1BC,WAAW,EACV,wFAJyB;EAK1BC,MAAM,EAAE;IACPC,GAAG,EAAE;MACJC,IAAI,EAAE,SADF;MAEJC,KAAK,EAAE;IAFH;EADE;AALkB,CAAZ,C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"skillFeature.builder.js","names":["id","name","fields","destination","type","defaultValue","isRequired","label","description"],"sources":["../../../src/schemas/v2020_07_22/skillFeature.builder.ts"],"sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\n\nexport default buildSchema({\n\tid: 'skillFeature',\n\tname: 'Skill feature options',\n\tfields: {\n\t\tdestination: {\n\t\t\ttype: 'text',\n\t\t\tdefaultValue: '.',\n\t\t},\n\t\tname: {\n\t\t\ttype: 'text',\n\t\t\tisRequired: true,\n\t\t\tlabel: \"What's the name of your skill?\",\n\t\t},\n\t\tdescription: {\n\t\t\ttype: 'text',\n\t\t\tisRequired: true,\n\t\t\tlabel: 'How would you describe your skill?',\n\t\t},\n\t},\n})\n"],"mappings":";;;;;;;AAAA;;eAEe,yBAAY;EAC1BA,EAAE,EAAE,cADsB;EAE1BC,IAAI,EAAE,uBAFoB;EAG1BC,MAAM,EAAE;IACPC,WAAW,EAAE;MACZC,IAAI,EAAE,MADM;MAEZC,YAAY,EAAE;IAFF,CADN;IAKPJ,IAAI,EAAE;MACLG,IAAI,EAAE,MADD;MAELE,UAAU,EAAE,IAFP;MAGLC,KAAK,EAAE;IAHF,CALC;IAUPC,WAAW,EAAE;MACZJ,IAAI,EAAE,MADM;MAEZE,UAAU,EAAE,IAFA;MAGZC,KAAK,EAAE;IAHK;EAVN;AAHkB,CAAZ,C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"syncErrorOptions.builder.js","names":["id","name","description","fields","syncSchemasOptionsBuilder","errorClassDestinationDir","type","label","isRequired","isPrivate","hint","defaultValue","errorLookupDir","errorTypesDestinationDir"],"sources":["../../../src/schemas/v2020_07_22/syncErrorOptions.builder.ts"],"sourcesContent":["import { buildSchema, dropFields } from '@sprucelabs/schema'\nimport syncSchemasOptionsBuilder from './syncSchemasOptions.builder'\n\nexport default buildSchema({\n\tid: 'syncErrorOptions',\n\tname: 'Sync error action',\n\tdescription: 'Keep your errors types in sync with your builders',\n\tfields: {\n\t\t...dropFields(syncSchemasOptionsBuilder.fields, [\n\t\t\t'deleteDestinationDirIfNoSchemas',\n\t\t\t'deleteOrphanedSchemas',\n\t\t]),\n\t\terrorClassDestinationDir: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Error class destination',\n\t\t\tisRequired: true,\n\t\t\tisPrivate: true,\n\t\t\thint: \"Where I'll save your new Error class file?\",\n\t\t\tdefaultValue: 'src/errors',\n\t\t},\n\t\terrorLookupDir: {\n\t\t\ttype: 'text',\n\t\t\thint: 'Where I should look for your error builders?',\n\t\t\tdefaultValue: 'src/errors',\n\t\t},\n\t\terrorTypesDestinationDir: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Types destination dir',\n\t\t\thint: 'This is where error options and type information will be written',\n\t\t\tdefaultValue: '#spruce/errors',\n\t\t},\n\t},\n})\n"],"mappings":";;;;;;;;;;;AAAA;;AACA;;;;;;eAEe,yBAAY;EAC1BA,EAAE,EAAE,kBADsB;EAE1BC,IAAI,EAAE,mBAFoB;EAG1BC,WAAW,EAAE,mDAHa;EAI1BC,MAAM,kCACF,wBAAWC,+BAA0BD,MAArC,EAA6C,CAC/C,iCAD+C,EAE/C,uBAF+C,CAA7C,CADE;IAKLE,wBAAwB,EAAE;MACzBC,IAAI,EAAE,MADmB;MAEzBC,KAAK,EAAE,yBAFkB;MAGzBC,UAAU,EAAE,IAHa;MAIzBC,SAAS,EAAE,IAJc;MAKzBC,IAAI,EAAE,4CALmB;MAMzBC,YAAY,EAAE;IANW,CALrB;IAaLC,cAAc,EAAE;MACfN,IAAI,EAAE,MADS;MAEfI,IAAI,EAAE,8CAFS;MAGfC,YAAY,EAAE;IAHC,CAbX;IAkBLE,wBAAwB,EAAE;MACzBP,IAAI,EAAE,MADmB;MAEzBC,KAAK,EAAE,uBAFkB;MAGzBG,IAAI,EAAE,kEAHmB;MAIzBC,YAAY,EAAE;IAJW;EAlBrB;AAJoB,CAAZ,C"}
|