@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":"NodeFeature.js","names":["NodeFeature","options","nodeFeatureOptionsSchema","universalDevDependencies","universalScripts","universalFileDescriptions","diskUtil","resolvePath","__dirname","doesFileExist","cwd","emitter","on","payload","featureCode","actionCode","handleUpgrade","ui","clear","renderHero","startLoading","Service","execute","summaryLines","errors","destination","resolveDestination","doesDirExist","createDir","files","name","path","action","Writer","writeNodeModule","written","push","installScripts","pkg","set","value","namesUtil","toKebab","description","unset","Store","setCurrentSkillsNamespace","scriptUpdater","ScriptUpdater","FromFeature","update","AbstractFeature"],"sources":["../../../src/features/node/NodeFeature.ts"],"sourcesContent":["import { Schema, SchemaValues } from '@sprucelabs/schema'\nimport { SpruceSchemas } from '@sprucelabs/spruce-core-schemas'\nimport { diskUtil, namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport nodeFeatureOptionsSchema from '#spruce/schemas/spruceCli/v2020_07_22/nodeFeatureOptions.schema'\nimport { FileDescription, GeneratedFile } from '../../types/cli.types'\nimport ScriptUpdater from '../../updaters/ScriptUpdater'\nimport AbstractFeature, { FeatureDependency } from '../AbstractFeature'\nimport {\n\tActionOptions,\n\tFeatureActionResponse,\n\tFeatureCode,\n} from '../features.types'\nimport universalDevDependencies from '../universalDevDependencies'\nimport universalFileDescriptions from '../universalFileDescriptions'\nimport universalScripts from '../universalScripts'\n\ntype OptionsSchema =\n\tSpruceSchemas.SpruceCli.v2020_07_22.NodeFeatureOptionsSchema\ntype Options = SpruceSchemas.SpruceCli.v2020_07_22.NodeFeatureOptions\n\ndeclare module '../../features/features.types' {\n\tinterface FeatureMap {\n\t\tnode: NodeFeature\n\t}\n\n\tinterface FeatureOptionsMap {\n\t\tnode: SchemaValues<OptionsSchema>\n\t}\n}\n\nexport default class NodeFeature<\n\tS extends OptionsSchema = OptionsSchema\n> extends AbstractFeature<S> {\n\tpublic code: FeatureCode = 'node'\n\tpublic nameReadable = 'nodejs support'\n\tpublic description = ''\n\tpublic dependencies: FeatureDependency[] = []\n\tpublic optionsSchema = nodeFeatureOptionsSchema as S\n\tpublic packageDependencies = [...universalDevDependencies]\n\n\tpublic scripts = {\n\t\t...universalScripts,\n\t}\n\n\tpublic readonly fileDescriptions: FileDescription[] = [\n\t\t...universalFileDescriptions,\n\t]\n\n\tpublic actionsDir = diskUtil.resolvePath(__dirname, 'actions')\n\n\tpublic constructor(options: ActionOptions) {\n\t\tsuper(options)\n\n\t\tvoid this.emitter.on('feature.did-execute', async (payload) => {\n\t\t\tif (payload.featureCode === 'node' && payload.actionCode === 'upgrade') {\n\t\t\t\treturn this.handleUpgrade()\n\t\t\t}\n\n\t\t\treturn {}\n\t\t})\n\t}\n\n\tprivate async handleUpgrade(): Promise<FeatureActionResponse> {\n\t\ttry {\n\t\t\tthis.ui.clear()\n\t\t\tthis.ui.renderHero('Upgrade')\n\n\t\t\tthis.ui.startLoading('Cleaning build...')\n\t\t\tawait this.Service('command').execute('yarn clean.build')\n\n\t\t\tthis.ui.startLoading('Building for development...')\n\t\t\tawait this.Service('command').execute('yarn build.dev')\n\n\t\t\treturn {\n\t\t\t\tsummaryLines: [\n\t\t\t\t\t'Build cleared.',\n\t\t\t\t\t'Lint rules applied to source.',\n\t\t\t\t\t'Code rebuilt successfully.',\n\t\t\t\t],\n\t\t\t}\n\t\t} catch (err) {\n\t\t\treturn {\n\t\t\t\terrors: [err],\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic async beforePackageInstall(options: Options) {\n\t\tconst destination = this.resolveDestination(options)\n\n\t\tif (!diskUtil.doesDirExist(destination)) {\n\t\t\tdiskUtil.createDir(destination)\n\t\t}\n\n\t\tconst files: GeneratedFile[] = [\n\t\t\t{\n\t\t\t\tname: 'package.json',\n\t\t\t\tpath: diskUtil.resolvePath(destination, 'package.json'),\n\t\t\t\taction: 'generated',\n\t\t\t},\n\t\t]\n\n\t\tawait this.Service('command', destination).execute('yarn init -y')\n\n\t\tconst written = await this.Writer('node').writeNodeModule(destination)\n\n\t\tfiles.push(...written)\n\n\t\tawait this.installScripts(destination)\n\n\t\treturn { files, cwd: destination }\n\t}\n\n\tprivate resolveDestination(options: Options) {\n\t\treturn diskUtil.resolvePath(this.cwd, options.destination ?? '')\n\t}\n\n\tpublic async afterPackageInstall(\n\t\toptions: S extends Schema ? SchemaValues<S> : undefined\n\t) {\n\t\tconst cwd = this.resolveDestination(options)\n\t\tconst pkg = this.Service('pkg', cwd)\n\n\t\tpkg.set({ path: 'name', value: namesUtil.toKebab(options.name) })\n\t\tpkg.set({ path: 'description', value: options.description })\n\t\tpkg.set({ path: 'version', value: '0.0.1' })\n\n\t\tpkg.unset('main')\n\t\tpkg.unset('license')\n\n\t\tawait this.Store('skill', { cwd }).setCurrentSkillsNamespace(options.name)\n\n\t\treturn {}\n\t}\n\n\tprivate async installScripts(destination = this.cwd) {\n\t\tconst scriptUpdater = ScriptUpdater.FromFeature(this, {\n\t\t\tcwd: destination,\n\t\t})\n\n\t\tawait scriptUpdater.update()\n\t}\n\n\tpublic isInstalled = async (): Promise<boolean> => {\n\t\treturn diskUtil.doesFileExist(\n\t\t\tdiskUtil.resolvePath(this.cwd, 'package.json')\n\t\t)\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"CreateAction.js","names":["optionsSchema","nodeFeatureOptionsSchema","CreateAction","options","codeSuggestion","destination","hints","AbstractAction"],"sources":["../../../../src/features/node/actions/CreateAction.ts"],"sourcesContent":["import { SpruceSchemas } from '@sprucelabs/spruce-core-schemas'\nimport nodeFeatureOptionsSchema from '#spruce/schemas/spruceCli/v2020_07_22/nodeFeatureOptions.schema'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\n\nconst optionsSchema = nodeFeatureOptionsSchema\n\ntype OptionsSchema =\n\tSpruceSchemas.SpruceCli.v2020_07_22.NodeFeatureOptionsSchema\ntype Options = SpruceSchemas.SpruceCli.v2020_07_22.NodeFeatureOptions\n\nexport default class CreateAction extends AbstractAction<OptionsSchema> {\n\tpublic commandAliases = [\n\t\t'create.module [destination]',\n\t\t'create.node [destination]',\n\t]\n\tpublic invocationMessage = 'Setting up a new mode module! 🤖'\n\tpublic optionsSchema = optionsSchema\n\tpublic async execute(options: Options): Promise<FeatureActionResponse> {\n\t\tconst codeSuggestion = options.destination\n\t\t\t? `cd ${options.destination} && code .`\n\t\t\t: `code .`\n\n\t\treturn {\n\t\t\thints: [\n\t\t\t\t'Your new module is ready!',\n\t\t\t\t`When you're ready, go ahead and run \\`${codeSuggestion}\\` to open vscode.`,\n\t\t\t\t'Once vscode loads, open the terminal and type `spruce setup.vscode`',\n\t\t\t\t\"Hint: You're going to want to install all extensions and setup all features (yes for everything).\",\n\t\t\t\t'See you there! 💪',\n\t\t\t],\n\t\t}\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;AACA;;;;;;AAGA,IAAMA,aAAa,GAAGC,8BAAtB;;IAMqBC,Y;;;;;;;;;;;;;;;uGACI,CACvB,6BADuB,EAEvB,2BAFuB,C;0GAIG,kC;sGACJF,a;;;;;;;mGACvB,iBAAqBG,OAArB;QAAA;QAAA;UAAA;YAAA;cAAA;gBACOC,cADP,GACwBD,OAAO,CAACE,WAAR,gBACdF,OAAO,CAACE,WADM,0BADxB;gBAAA,iCAKQ;kBACNC,KAAK,EAAE,CACN,2BADM,iDAEmCF,cAFnC,wBAGN,qEAHM,EAIN,mGAJM,EAKN,mBALM;gBADD,CALR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EAPyCG,2B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/features/node/actions/UpdateDependenciesAction.ts"],"names":["optionsSchema","id","description","fields","UpdateDependenciesAction","_options","files","file","diskUtil","deleteFile","resolvePath","cwd","InFlightEntertainment","start","installDependencies","totalDependencies","totalDevDependencies","headline","summaryLines","stop","featureInstaller","getInstalledFeatures","features","pkg","Service","pkgContents","readPackage","dependencies","Object","keys","map","d","stripped","name","devDependencies","feature","packageDependencies","dep","stripLatest","buildPackageName","isDev","find","unshift","filter","isBlockedFromUpgrade","deleteLockFile","length","writeStatus","install","shouldForceInstall","shouldCleanupLockFiles","content","get","push","set","path","value","isBlocked","indexOf","AbstractAction"],"mappings":"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","sourcesContent":["import { buildSchema, SchemaValues } from '@sprucelabs/schema'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { uniqBy } from 'lodash'\nimport InFlightEntertainment from '../../../InFlightEntertainment'\nimport PkgService from '../../../services/PkgService'\nimport { NpmPackage } from '../../../types/cli.types'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\n\nconst optionsSchema = buildSchema({\n\tid: 'updateDependenciesAction',\n\tdescription:\n\t\t'Clear lock files and node_modules and then reinstalls all modules.',\n\tfields: {},\n})\n\ntype OptionsSchema = typeof optionsSchema\ntype Options = SchemaValues<OptionsSchema>\nexport default class UpdateDependenciesAction extends AbstractAction<OptionsSchema> {\n\tpublic code = 'updateDependencies'\n\tpublic optionsSchema = optionsSchema\n\tpublic commandAliases = ['update.dependencies', 'upgrade.dependencies']\n\tpublic invocationMessage = 'Updating dependencies... 💪'\n\n\tpublic async execute(_options: Options): Promise<FeatureActionResponse> {\n\t\tconst files = ['package-lock.json', 'yarn.lock', 'node_modules']\n\n\t\tfor (const file of files) {\n\t\t\tdiskUtil.deleteFile(diskUtil.resolvePath(this.cwd, file))\n\t\t}\n\n\t\ttry {\n\t\t\tInFlightEntertainment.start(['Here we go!', 'Good luck!'])\n\n\t\t\tconst { totalDependencies, totalDevDependencies } =\n\t\t\t\tawait this.installDependencies()\n\n\t\t\treturn {\n\t\t\t\theadline: 'Update Complete!',\n\t\t\t\tsummaryLines: [\n\t\t\t\t\t`${totalDependencies} dependencie${\n\t\t\t\t\t\ttotalDependencies === 1 ? '' : 's'\n\t\t\t\t\t} updated! 💪`,\n\t\t\t\t\t`${totalDevDependencies} dev dependencie${\n\t\t\t\t\t\ttotalDevDependencies === 1 ? '' : 's'\n\t\t\t\t\t} updated! 💪`,\n\t\t\t\t],\n\t\t\t}\n\t\t} finally {\n\t\t\tInFlightEntertainment.stop()\n\t\t}\n\t}\n\n\tprivate async installDependencies() {\n\t\tconst features = await this.featureInstaller.getInstalledFeatures()\n\n\t\tconst pkg = this.Service('pkg')\n\t\tconst pkgContents = pkg.readPackage()\n\n\t\tlet dependencies: { stripped: string; name: string }[] =\n\t\t\tObject.keys(pkgContents.dependencies ?? {}).map((d) => ({\n\t\t\t\tstripped: d,\n\t\t\t\tname: d,\n\t\t\t})) ?? []\n\n\t\tlet devDependencies: { stripped: string; name: string }[] =\n\t\t\tObject.keys(pkgContents.devDependencies ?? {}).map((d) => ({\n\t\t\t\tstripped: d,\n\t\t\t\tname: d,\n\t\t\t})) ?? []\n\n\t\tfor (const feature of features) {\n\t\t\tfor (const dep of feature.packageDependencies as NpmPackage[]) {\n\t\t\t\tconst stripped = pkg.stripLatest(dep.name)\n\t\t\t\tconst name = pkg.buildPackageName(dep)\n\t\t\t\tconst isDev =\n\t\t\t\t\t(dep.isDev || devDependencies.find((d) => d.stripped === stripped)) &&\n\t\t\t\t\t!dependencies.find((d) => d.stripped === stripped)\n\n\t\t\t\tif (isDev) {\n\t\t\t\t\tdevDependencies.unshift({\n\t\t\t\t\t\tstripped,\n\t\t\t\t\t\tname,\n\t\t\t\t\t})\n\t\t\t\t} else {\n\t\t\t\t\tdependencies.unshift({\n\t\t\t\t\t\tstripped,\n\t\t\t\t\t\tname,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tdependencies = uniqBy(dependencies, 'stripped').filter(\n\t\t\t(d) => !this.isBlockedFromUpgrade(d.stripped, pkg)\n\t\t)\n\t\tdevDependencies = uniqBy(devDependencies, 'stripped').filter(\n\t\t\t(d) => !this.isBlockedFromUpgrade(d.stripped, pkg)\n\t\t)\n\n\t\tpkg.deleteLockFile()\n\n\t\tif (dependencies.length > 0) {\n\t\t\tInFlightEntertainment.writeStatus(\n\t\t\t\t`Installing ${dependencies.length} dependenc${\n\t\t\t\t\tdependencies.length === 1 ? 'y' : 'ies'\n\t\t\t\t}.`\n\t\t\t)\n\t\t\tawait pkg.install(\n\t\t\t\tdependencies.map((d) => d.name),\n\t\t\t\t{\n\t\t\t\t\tshouldForceInstall: true,\n\t\t\t\t\tshouldCleanupLockFiles: false,\n\t\t\t\t}\n\t\t\t)\n\t\t}\n\n\t\tif (devDependencies.length > 0) {\n\t\t\tInFlightEntertainment.writeStatus(\n\t\t\t\t`Installing ${devDependencies.length} dev dependenc${\n\t\t\t\t\tdependencies.length === 1 ? 'y' : 'ies'\n\t\t\t\t}.`\n\t\t\t)\n\t\t\tawait pkg.install(\n\t\t\t\tdevDependencies.map((d) => d.name),\n\t\t\t\t{\n\t\t\t\t\tshouldForceInstall: true,\n\t\t\t\t\tisDev: true,\n\t\t\t\t\tshouldCleanupLockFiles: false,\n\t\t\t\t}\n\t\t\t)\n\t\t}\n\n\t\tpkg.deleteLockFile()\n\n\t\treturn {\n\t\t\ttotalDependencies: dependencies.length,\n\t\t\ttotalDevDependencies: devDependencies.length,\n\t\t}\n\t}\n\n\tpublic blockUpgrade(name: string, pkg: PkgService) {\n\t\tconst content = pkg.get('skill.upgradeIgnoreList') ?? []\n\t\tcontent.push(name)\n\t\tpkg.set({ path: 'skill.upgradeIgnoreList', value: content })\n\t}\n\n\tpublic isBlockedFromUpgrade(name: string, pkg: PkgService) {\n\t\tconst content = pkg.get('skill.upgradeIgnoreList') ?? []\n\t\tconst isBlocked = content.indexOf(name) > -1\n\t\treturn isBlocked\n\t}\n}\n"],"file":"UpdateDependenciesAction.js"}
|
|
1
|
+
{"version":3,"file":"UpdateDependenciesAction.js","names":["optionsSchema","id","description","fields","UpdateDependenciesAction","_options","files","file","diskUtil","deleteFile","resolvePath","cwd","InFlightEntertainment","start","installDependencies","totalDependencies","totalDevDependencies","headline","summaryLines","stop","featureInstaller","getInstalledFeatures","features","pkg","Service","pkgContents","readPackage","dependencies","Object","keys","map","d","stripped","name","devDependencies","feature","packageDependencies","dep","stripLatest","buildPackageName","isDev","find","unshift","filter","isBlockedFromUpgrade","deleteLockFile","length","writeStatus","install","shouldForceInstall","shouldCleanupLockFiles","content","get","push","set","path","value","isBlocked","indexOf","AbstractAction"],"sources":["../../../../src/features/node/actions/UpdateDependenciesAction.ts"],"sourcesContent":["import { buildSchema, SchemaValues } from '@sprucelabs/schema'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { uniqBy } from 'lodash'\nimport InFlightEntertainment from '../../../InFlightEntertainment'\nimport PkgService from '../../../services/PkgService'\nimport { NpmPackage } from '../../../types/cli.types'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\n\nconst optionsSchema = buildSchema({\n\tid: 'updateDependenciesAction',\n\tdescription:\n\t\t'Clear lock files and node_modules and then reinstalls all modules.',\n\tfields: {},\n})\n\ntype OptionsSchema = typeof optionsSchema\ntype Options = SchemaValues<OptionsSchema>\nexport default class UpdateDependenciesAction extends AbstractAction<OptionsSchema> {\n\tpublic code = 'updateDependencies'\n\tpublic optionsSchema = optionsSchema\n\tpublic commandAliases = ['update.dependencies', 'upgrade.dependencies']\n\tpublic invocationMessage = 'Updating dependencies... 💪'\n\n\tpublic async execute(_options: Options): Promise<FeatureActionResponse> {\n\t\tconst files = ['package-lock.json', 'yarn.lock', 'node_modules']\n\n\t\tfor (const file of files) {\n\t\t\tdiskUtil.deleteFile(diskUtil.resolvePath(this.cwd, file))\n\t\t}\n\n\t\ttry {\n\t\t\tInFlightEntertainment.start(['Here we go!', 'Good luck!'])\n\n\t\t\tconst { totalDependencies, totalDevDependencies } =\n\t\t\t\tawait this.installDependencies()\n\n\t\t\treturn {\n\t\t\t\theadline: 'Update Complete!',\n\t\t\t\tsummaryLines: [\n\t\t\t\t\t`${totalDependencies} dependencie${\n\t\t\t\t\t\ttotalDependencies === 1 ? '' : 's'\n\t\t\t\t\t} updated! 💪`,\n\t\t\t\t\t`${totalDevDependencies} dev dependencie${\n\t\t\t\t\t\ttotalDevDependencies === 1 ? '' : 's'\n\t\t\t\t\t} updated! 💪`,\n\t\t\t\t],\n\t\t\t}\n\t\t} finally {\n\t\t\tInFlightEntertainment.stop()\n\t\t}\n\t}\n\n\tprivate async installDependencies() {\n\t\tconst features = await this.featureInstaller.getInstalledFeatures()\n\n\t\tconst pkg = this.Service('pkg')\n\t\tconst pkgContents = pkg.readPackage()\n\n\t\tlet dependencies: { stripped: string; name: string }[] =\n\t\t\tObject.keys(pkgContents.dependencies ?? {}).map((d) => ({\n\t\t\t\tstripped: d,\n\t\t\t\tname: d,\n\t\t\t})) ?? []\n\n\t\tlet devDependencies: { stripped: string; name: string }[] =\n\t\t\tObject.keys(pkgContents.devDependencies ?? {}).map((d) => ({\n\t\t\t\tstripped: d,\n\t\t\t\tname: d,\n\t\t\t})) ?? []\n\n\t\tfor (const feature of features) {\n\t\t\tfor (const dep of feature.packageDependencies as NpmPackage[]) {\n\t\t\t\tconst stripped = pkg.stripLatest(dep.name)\n\t\t\t\tconst name = pkg.buildPackageName(dep)\n\t\t\t\tconst isDev =\n\t\t\t\t\t(dep.isDev || devDependencies.find((d) => d.stripped === stripped)) &&\n\t\t\t\t\t!dependencies.find((d) => d.stripped === stripped)\n\n\t\t\t\tif (isDev) {\n\t\t\t\t\tdevDependencies.unshift({\n\t\t\t\t\t\tstripped,\n\t\t\t\t\t\tname,\n\t\t\t\t\t})\n\t\t\t\t} else {\n\t\t\t\t\tdependencies.unshift({\n\t\t\t\t\t\tstripped,\n\t\t\t\t\t\tname,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tdependencies = uniqBy(dependencies, 'stripped').filter(\n\t\t\t(d) => !this.isBlockedFromUpgrade(d.stripped, pkg)\n\t\t)\n\t\tdevDependencies = uniqBy(devDependencies, 'stripped').filter(\n\t\t\t(d) => !this.isBlockedFromUpgrade(d.stripped, pkg)\n\t\t)\n\n\t\tpkg.deleteLockFile()\n\n\t\tif (dependencies.length > 0) {\n\t\t\tInFlightEntertainment.writeStatus(\n\t\t\t\t`Installing ${dependencies.length} dependenc${\n\t\t\t\t\tdependencies.length === 1 ? 'y' : 'ies'\n\t\t\t\t}.`\n\t\t\t)\n\t\t\tawait pkg.install(\n\t\t\t\tdependencies.map((d) => d.name),\n\t\t\t\t{\n\t\t\t\t\tshouldForceInstall: true,\n\t\t\t\t\tshouldCleanupLockFiles: false,\n\t\t\t\t}\n\t\t\t)\n\t\t}\n\n\t\tif (devDependencies.length > 0) {\n\t\t\tInFlightEntertainment.writeStatus(\n\t\t\t\t`Installing ${devDependencies.length} dev dependenc${\n\t\t\t\t\tdependencies.length === 1 ? 'y' : 'ies'\n\t\t\t\t}.`\n\t\t\t)\n\t\t\tawait pkg.install(\n\t\t\t\tdevDependencies.map((d) => d.name),\n\t\t\t\t{\n\t\t\t\t\tshouldForceInstall: true,\n\t\t\t\t\tisDev: true,\n\t\t\t\t\tshouldCleanupLockFiles: false,\n\t\t\t\t}\n\t\t\t)\n\t\t}\n\n\t\tpkg.deleteLockFile()\n\n\t\treturn {\n\t\t\ttotalDependencies: dependencies.length,\n\t\t\ttotalDevDependencies: devDependencies.length,\n\t\t}\n\t}\n\n\tpublic blockUpgrade(name: string, pkg: PkgService) {\n\t\tconst content = pkg.get('skill.upgradeIgnoreList') ?? []\n\t\tcontent.push(name)\n\t\tpkg.set({ path: 'skill.upgradeIgnoreList', value: content })\n\t}\n\n\tpublic isBlockedFromUpgrade(name: string, pkg: PkgService) {\n\t\tconst content = pkg.get('skill.upgradeIgnoreList') ?? []\n\t\tconst isBlocked = content.indexOf(name) > -1\n\t\treturn isBlocked\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"UpgradeAction.js","names":["UpgradeAction","upgradeSkillActionSchema","options","normalizedOptions","validateAndNormalizeOptions","updateScripts","shouldConfirm","upgradeMode","Writer","writeNodeModule","cwd","shouldConfirmBeforeWriting","shouldWriteIndex","files","ui","clear","InFlightEntertainment","start","reInstallPackageDependencies","dependencyResults","actionUtil","mergeActionResults","headline","stop","renderHero","Action","execute","featureInstaller","getInstalledFeatures","features","scripts","feature","scriptUpdater","ScriptUpdater","FromFeature","parent","latestScripts","update","shouldConfirmIfScriptExistsButIsDifferent","AbstractAction"],"sources":["../../../../src/features/node/actions/UpgradeAction.ts"],"sourcesContent":["import { SchemaValues } from '@sprucelabs/schema'\nimport { SpruceSchemas } from '#spruce/schemas/schemas.types'\nimport upgradeSkillActionSchema from '#spruce/schemas/spruceCli/v2020_07_22/upgradeSkillOptions.schema'\nimport InFlightEntertainment from '../../../InFlightEntertainment'\nimport ScriptUpdater from '../../../updaters/ScriptUpdater'\nimport actionUtil from '../../../utilities/action.utility'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\n\ntype OptionsSchema =\n\tSpruceSchemas.SpruceCli.v2020_07_22.UpgradeSkillOptionsSchema\ntype Options = SchemaValues<OptionsSchema>\n\nexport default class UpgradeAction extends AbstractAction<OptionsSchema> {\n\tpublic invocationMessage = 'Upgrading your skill... 💪'\n\tpublic optionsSchema = upgradeSkillActionSchema\n\tpublic commandAliases = ['upgrade', 'update']\n\n\tpublic async execute(options: Options): Promise<FeatureActionResponse> {\n\t\tconst normalizedOptions = this.validateAndNormalizeOptions(options)\n\n\t\tawait this.updateScripts({\n\t\t\tshouldConfirm: normalizedOptions.upgradeMode !== 'forceEverything',\n\t\t})\n\n\t\ttry {\n\t\t\tconst files = await this.Writer('node', {\n\t\t\t\tupgradeMode: normalizedOptions.upgradeMode,\n\t\t\t}).writeNodeModule(this.cwd, {\n\t\t\t\tshouldConfirmBeforeWriting: true,\n\t\t\t\tshouldWriteIndex: false,\n\t\t\t})\n\n\t\t\tthis.ui.clear()\n\t\t\tInFlightEntertainment.start([\n\t\t\t\t\"Let's start the upgrade!\",\n\t\t\t\t'While things are going, see if you can beat 1k points!',\n\t\t\t\t'Go!!!!',\n\t\t\t])\n\n\t\t\tconst dependencyResults = await this.reInstallPackageDependencies()\n\n\t\t\treturn actionUtil.mergeActionResults(dependencyResults, {\n\t\t\t\theadline: 'Upgrade',\n\t\t\t\tfiles,\n\t\t\t})\n\t\t} finally {\n\t\t\tInFlightEntertainment.stop()\n\t\t\tthis.ui.renderHero('Upgrade')\n\t\t}\n\t}\n\n\tprivate async reInstallPackageDependencies() {\n\t\treturn this.Action('node', 'updateDependencies').execute({})\n\t}\n\n\tprivate async updateScripts(options: { shouldConfirm: boolean }) {\n\t\tconst features = await this.featureInstaller.getInstalledFeatures()\n\n\t\tlet scripts: Record<string, any> = {}\n\n\t\tfor (const feature of features) {\n\t\t\tscripts = {\n\t\t\t\t...scripts,\n\t\t\t\t...feature.scripts,\n\t\t\t}\n\t\t}\n\n\t\tconst scriptUpdater = ScriptUpdater.FromFeature(this.parent, {\n\t\t\tlatestScripts: scripts,\n\t\t})\n\n\t\tawait scriptUpdater.update({\n\t\t\tshouldConfirmIfScriptExistsButIsDifferent: options.shouldConfirm,\n\t\t})\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;IAOqBA,a;;;;;;;;;;;;;;;0GACO,4B;sGACJC,+B;uGACC,CAAC,SAAD,EAAY,QAAZ,C;;;;;;;mGAExB,iBAAqBC,OAArB;QAAA;QAAA;UAAA;YAAA;cAAA;gBACOC,iBADP,GAC2B,KAAKC,2BAAL,CAAiCF,OAAjC,CAD3B;gBAAA;gBAAA,OAGO,KAAKG,aAAL,CAAmB;kBACxBC,aAAa,EAAEH,iBAAiB,CAACI,WAAlB,KAAkC;gBADzB,CAAnB,CAHP;;cAAA;gBAAA;gBAAA;gBAAA,OAQsB,KAAKC,MAAL,CAAY,MAAZ,EAAoB;kBACvCD,WAAW,EAAEJ,iBAAiB,CAACI;gBADQ,CAApB,EAEjBE,eAFiB,CAED,KAAKC,GAFJ,EAES;kBAC5BC,0BAA0B,EAAE,IADA;kBAE5BC,gBAAgB,EAAE;gBAFU,CAFT,CARtB;;cAAA;gBAQQC,KARR;gBAeE,KAAKC,EAAL,CAAQC,KAAR;;gBACAC,kCAAsBC,KAAtB,CAA4B,CAC3B,0BAD2B,EAE3B,wDAF2B,EAG3B,QAH2B,CAA5B;;gBAhBF;gBAAA,OAsBkC,KAAKC,4BAAL,EAtBlC;;cAAA;gBAsBQC,iBAtBR;gBAAA,iCAwBSC,mBAAWC,kBAAX,CAA8BF,iBAA9B,EAAiD;kBACvDG,QAAQ,EAAE,SAD6C;kBAEvDT,KAAK,EAALA;gBAFuD,CAAjD,CAxBT;;cAAA;gBAAA;;gBA6BEG,kCAAsBO,IAAtB;;gBACA,KAAKT,EAAL,CAAQU,UAAR,CAAmB,SAAnB;gBA9BF;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;wHAkCA;QAAA;UAAA;YAAA;cAAA;gBAAA,kCACQ,KAAKC,MAAL,CAAY,MAAZ,EAAoB,oBAApB,EAA0CC,OAA1C,CAAkD,EAAlD,CADR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;yGAIA,kBAA4BxB,OAA5B;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACwB,KAAKyB,gBAAL,CAAsBC,oBAAtB,EADxB;;cAAA;gBACOC,QADP;gBAGKC,OAHL,GAGoC,EAHpC;gBAAA,uCAKuBD,QALvB;;gBAAA;kBAKC,oDAAgC;oBAArBE,OAAqB;oBAC/BD,OAAO,mCACHA,OADG,GAEHC,OAAO,CAACD,OAFL,CAAP;kBAIA;gBAVF;kBAAA;gBAAA;kBAAA;gBAAA;;gBAYOE,aAZP,GAYuBC,0BAAcC,WAAd,CAA0B,KAAKC,MAA/B,EAAuC;kBAC5DC,aAAa,EAAEN;gBAD6C,CAAvC,CAZvB;gBAAA;gBAAA,OAgBOE,aAAa,CAACK,MAAd,CAAqB;kBAC1BC,yCAAyC,EAAEpC,OAAO,CAACI;gBADzB,CAArB,CAhBP;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EA3C0CiC,2B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"NodeWriter.js","names":["NODE_FILES_TO_UPGRADE","NodeWriter","destinationDir","options","files","shouldWriteIndex","contents","destination","diskUtil","resolvePath","writeFile","push","name","description","action","path","writeDirectoryTemplate","code","DirectoryTemplateCode","Skill","filesToWrite","context","directoryTemplateFiles","AbstractWriter"],"sources":["../../../../src/features/node/writers/NodeWriter.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { DirectoryTemplateCode } from '@sprucelabs/spruce-templates'\nimport { GeneratedFile } from '../../../types/cli.types'\nimport AbstractWriter, {\n\tWriteDirectoryTemplateOptions,\n\tWriteResults,\n} from '../../../writers/AbstractWriter'\n\nexport const NODE_FILES_TO_UPGRADE = [\n\t'tsconfig.json',\n\t'.eslintrc.js',\n\t'.eslintignore',\n\t'.gitignore',\n\t'.nvmrc',\n]\nexport default class NodeWriter extends AbstractWriter {\n\tpublic async writeNodeModule(\n\t\tdestinationDir: string,\n\t\toptions?: Partial<WriteDirectoryTemplateOptions> & {\n\t\t\tshouldWriteIndex?: boolean\n\t\t}\n\t): Promise<WriteResults> {\n\t\tlet files: GeneratedFile[] = []\n\t\tif (options?.shouldWriteIndex !== false) {\n\t\t\tconst contents = '//exports go here\\n'\n\t\t\tconst destination = diskUtil.resolvePath(\n\t\t\t\tdestinationDir,\n\t\t\t\t'src',\n\t\t\t\t'index.ts'\n\t\t\t)\n\t\t\tdiskUtil.writeFile(destination, contents)\n\t\t\tfiles.push({\n\t\t\t\tname: 'src/index.ts',\n\t\t\t\tdescription: 'Placeholder entry file!',\n\t\t\t\taction: 'generated',\n\t\t\t\tpath: destination,\n\t\t\t})\n\t\t}\n\n\t\tconst directoryTemplateFiles = await this.writeDirectoryTemplate({\n\t\t\tdestinationDir,\n\t\t\tcode: DirectoryTemplateCode.Skill,\n\t\t\tfilesToWrite: NODE_FILES_TO_UPGRADE,\n\t\t\tcontext: { name: 'ignored', description: 'ignored' },\n\t\t\t...options,\n\t\t})\n\n\t\treturn [...files, ...directoryTemplateFiles]\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAEA;;;;;;;;;;AAKO,IAAMA,qBAAqB,GAAG,CACpC,eADoC,EAEpC,cAFoC,EAGpC,eAHoC,EAIpC,YAJoC,EAKpC,QALoC,CAA9B;;;IAOcC,U;;;;;;;;;;;;;2GACpB,iBACCC,cADD,EAECC,OAFD;QAAA;QAAA;UAAA;YAAA;cAAA;gBAMKC,KANL,GAM8B,EAN9B;;gBAOC,IAAI,CAAAD,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEE,gBAAT,MAA8B,KAAlC,EAAyC;kBAClCC,QADkC,GACvB,qBADuB;kBAElCC,WAFkC,GAEpBC,2BAASC,WAAT,CACnBP,cADmB,EAEnB,KAFmB,EAGnB,UAHmB,CAFoB;;kBAOxCM,2BAASE,SAAT,CAAmBH,WAAnB,EAAgCD,QAAhC;;kBACAF,KAAK,CAACO,IAAN,CAAW;oBACVC,IAAI,EAAE,cADI;oBAEVC,WAAW,EAAE,yBAFH;oBAGVC,MAAM,EAAE,WAHE;oBAIVC,IAAI,EAAER;kBAJI,CAAX;gBAMA;;gBArBF;gBAAA,OAuBsC,KAAKS,sBAAL;kBACpCd,cAAc,EAAdA,cADoC;kBAEpCe,IAAI,EAAEC,uCAAsBC,KAFQ;kBAGpCC,YAAY,EAAEpB,qBAHsB;kBAIpCqB,OAAO,EAAE;oBAAET,IAAI,EAAE,SAAR;oBAAmBC,WAAW,EAAE;kBAAhC;gBAJ2B,GAKjCV,OALiC,EAvBtC;;cAAA;gBAuBOmB,sBAvBP;gBAAA,2CA+BYlB,KA/BZ,sCA+BsBkB,sBA/BtB;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EADuCC,2B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"OnboardFeature.js","names":["OnboardFeature","options","diskUtil","resolvePath","__dirname","emitter","on","handleWillExecuteCommand","bind","handleTestReporterDidBoot","onboardingStore","Store","store","OnboardingStore","ScriptLoader","LoadScripts","ui","dir","scriptsDir","commandExecuter","_command","Error","player","payload","onboarding","getMode","command","generateCommandFromPayload","confirmExpectedCommand","isExpectedCommand","ScriptPlayer","playScriptWithKey","source","contents","readFile","destination","cwd","createTestOptionsSchema","fields","testDestinationDir","defaultValue","writeFile","reset","featuresUtil","generateCommand","featureCode","actionCode","stage","getStage","AbstractFeature"],"sources":["../../../src/features/onboard/OnboardFeature.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport createTestOptionsSchema from '#spruce/schemas/spruceCli/v2020_07_22/createTestOptions.schema'\nimport AbstractFeature, {\n\tFeatureDependency,\n\tFeatureOptions,\n} from '../AbstractFeature'\nimport featuresUtil from '../feature.utilities'\nimport { FeatureCode } from '../features.types'\nimport ScriptLoader from './ScriptLoader'\nimport OnboardingStore from './stores/OnboardingStore'\n\ndeclare module '../../features/features.types' {\n\tinterface FeatureMap {\n\t\tonboard: OnboardFeature\n\t}\n}\n\nexport default class OnboardFeature extends AbstractFeature {\n\tpublic code: FeatureCode = 'onboard'\n\tpublic nameReadable = 'Onboard'\n\tpublic description = 'Get building your first skill already!'\n\tpublic dependencies: FeatureDependency[] = []\n\tpublic packageDependencies = []\n\n\tpublic actionsDir = diskUtil.resolvePath(__dirname, 'actions')\n\n\tprivate onboardingStore?: OnboardingStore\n\tprivate scriptsDir = diskUtil.resolvePath(__dirname, 'scripts')\n\n\tpublic constructor(options: FeatureOptions) {\n\t\tsuper(options)\n\n\t\tvoid this.emitter.on(\n\t\t\t'feature.will-execute',\n\t\t\tthis.handleWillExecuteCommand.bind(this)\n\t\t)\n\n\t\tvoid this.emitter.on(\n\t\t\t'test.reporter-did-boot',\n\t\t\tthis.handleTestReporterDidBoot.bind(this)\n\t\t)\n\t}\n\n\tpublic OnboardingStore() {\n\t\tif (!this.onboardingStore) {\n\t\t\tthis.onboardingStore = this.Store('onboarding')\n\t\t}\n\t\treturn this.onboardingStore\n\t}\n\n\tpublic async ScriptPlayer() {\n\t\tconst store = this.OnboardingStore()\n\n\t\tconst player = await ScriptLoader.LoadScripts({\n\t\t\tui: this.ui,\n\t\t\tdir: this.scriptsDir,\n\t\t\tonboardingStore: store,\n\t\t\tcommandExecuter: async (_command: string) => {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"I can't run commands for you yet, but will be able to soon. For now run `\" +\n\t\t\t\t\t\t_command +\n\t\t\t\t\t\t'` manually.'\n\t\t\t\t)\n\t\t\t},\n\t\t})\n\n\t\treturn player\n\t}\n\n\tprivate async handleWillExecuteCommand(payload: {\n\t\tfeatureCode: string\n\t\tactionCode: string\n\t}) {\n\t\tconst onboarding = this.Store('onboarding')\n\n\t\tif (onboarding.getMode() !== 'off') {\n\t\t\tconst command = this.generateCommandFromPayload(payload)\n\t\t\tawait this.confirmExpectedCommand(payload, onboarding)\n\n\t\t\tif (\n\t\t\t\tonboarding.getMode() !== 'off' &&\n\t\t\t\tthis.isExpectedCommand(command, onboarding)\n\t\t\t) {\n\t\t\t\tconst player = await this.ScriptPlayer()\n\t\t\t\tawait player.playScriptWithKey(`todo.${command}`)\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate handleTestReporterDidBoot() {\n\t\tconst onboarding = this.Store('onboarding')\n\n\t\tif (onboarding.getMode() !== 'off') {\n\t\t\tconst source = diskUtil.resolvePath(\n\t\t\t\t__dirname,\n\t\t\t\t'templates',\n\t\t\t\t'ManagingTodos.test.ts.hbs'\n\t\t\t)\n\n\t\t\tconst contents = diskUtil.readFile(source)\n\n\t\t\tconst destination = diskUtil.resolvePath(\n\t\t\t\tthis.cwd,\n\t\t\t\tcreateTestOptionsSchema.fields.testDestinationDir.defaultValue,\n\t\t\t\t'behavioral',\n\t\t\t\t'ManagingTodos.test.ts'\n\t\t\t)\n\n\t\t\tdiskUtil.writeFile(destination, contents)\n\n\t\t\tthis.Store('onboarding').reset()\n\t\t}\n\t}\n\n\tprivate generateCommandFromPayload(payload: {\n\t\tfeatureCode: string\n\t\tactionCode: string\n\t}) {\n\t\treturn featuresUtil.generateCommand(payload.featureCode, payload.actionCode)\n\t}\n\n\tpublic isInstalled = async (): Promise<boolean> => {\n\t\treturn true\n\t}\n\n\tprivate async confirmExpectedCommand(\n\t\tpayload: { featureCode: string; actionCode: string },\n\t\tstore: OnboardingStore\n\t) {\n\t\tconst command = this.generateCommandFromPayload(payload)\n\t\tconst isExpectedCommand = this.isExpectedCommand(command, store)\n\n\t\tif (\n\t\t\tcommand !== 'setup.vscode' &&\n\t\t\tpayload.featureCode !== 'onboard' &&\n\t\t\t!isExpectedCommand\n\t\t) {\n\t\t\tconst player = await this.ScriptPlayer()\n\t\t\tawait player.playScriptWithKey('wrongCommand')\n\t\t}\n\t}\n\n\tprivate isExpectedCommand(command: string, store: OnboardingStore) {\n\t\tconst stage = store.getStage()\n\n\t\tconst isExpectedCommand = command === stage\n\t\treturn isExpectedCommand\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"ScriptLoader.js","names":["ScriptLoader","options","player","ScriptPlayer","ui","onboardingStore","commandExecuter","dir","scripts","file","name","pathUtil","basename","search","extname","key","replace","script","require","loadScript"],"sources":["../../../src/features/onboard/ScriptLoader.ts"],"sourcesContent":["import pathUtil from 'path'\nimport globby from 'globby'\nimport { GraphicsInterface } from '../../types/cli.types'\nimport ScriptPlayer, { CommandExecuter } from './ScriptPlayer'\nimport OnboardingStore from './stores/OnboardingStore'\n\nexport default class ScriptLoader {\n\tpublic static async LoadScripts(options: {\n\t\tdir: string\n\t\tui: GraphicsInterface\n\t\tonboardingStore: OnboardingStore\n\t\tcommandExecuter: CommandExecuter\n\t}) {\n\t\tconst player = new ScriptPlayer({\n\t\t\tui: options.ui,\n\t\t\tonboardingStore: options.onboardingStore,\n\t\t\tcommandExecuter: options.commandExecuter,\n\t\t})\n\n\t\tconst scripts = await globby(options.dir + '/**/*.script.js')\n\n\t\tfor (const file of scripts) {\n\t\t\tconst name = pathUtil.basename(file)\n\t\t\tconst search = '.script' + pathUtil.extname(name)\n\t\t\tconst key = name.replace(search, '')\n\t\t\tconst script = require(file).default\n\n\t\t\tplayer.loadScript(key, script)\n\t\t}\n\n\t\treturn player\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;;AACA;;AAEA;;;;;;;;IAGqBA,Y;;;;;;;;uGACpB,iBAAgCC,OAAhC;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAMOC,MANP,GAMgB,IAAIC,wBAAJ,CAAiB;kBAC/BC,EAAE,EAAEH,OAAO,CAACG,EADmB;kBAE/BC,eAAe,EAAEJ,OAAO,CAACI,eAFM;kBAG/BC,eAAe,EAAEL,OAAO,CAACK;gBAHM,CAAjB,CANhB;gBAAA;gBAAA,OAYuB,wBAAOL,OAAO,CAACM,GAAR,GAAc,iBAArB,CAZvB;;cAAA;gBAYOC,OAZP;gBAAA,uCAcoBA,OAdpB;;gBAAA;kBAcC,oDAA4B;oBAAjBC,IAAiB;oBACrBC,IADqB,GACdC,iBAASC,QAAT,CAAkBH,IAAlB,CADc;oBAErBI,MAFqB,GAEZ,YAAYF,iBAASG,OAAT,CAAiBJ,IAAjB,CAFA;oBAGrBK,GAHqB,GAGfL,IAAI,CAACM,OAAL,CAAaH,MAAb,EAAqB,EAArB,CAHe;oBAIrBI,MAJqB,GAIZC,OAAO,CAACT,IAAD,CAAP,WAJY;oBAM3BP,MAAM,CAACiB,UAAP,CAAkBJ,GAAlB,EAAuBE,MAAvB;kBACA;gBArBF;kBAAA;gBAAA;kBAAA;gBAAA;;gBAAA,iCAuBQf,MAvBR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"ScriptPlayer.js","names":["ScriptPlayer","options","ui","onboardingStore","commandExecuter","key","script","scriptsByKey","Error","playScript","item","possibleRedirect","isRedirect","renderLine","buildCallbackOptions","r","redirectAndPlay","redirect","executeCommand","destination","extractDestination","playScriptWithKey","split","pop","substr","toScriptKey"],"sources":["../../../src/features/onboard/ScriptPlayer.ts"],"sourcesContent":["import { GraphicsInterface } from '../../types/cli.types'\nimport OnboardingStore from './stores/OnboardingStore'\n\nexport type Script = ScriptItem[]\ntype ScriptItem = string | ScriptItemCallback\ntype ScriptRedirect = string\ninterface ScriptItemCallback {\n\t(player: CallbackPlayer):\n\t\t| Promise<void | ScriptRedirect>\n\t\t| void\n\t\t| ScriptRedirect\n}\n\nexport interface CallbackPlayer {\n\tui: GraphicsInterface\n\tredirect(toScriptKey: string): ScriptRedirect\n\tonboardingStore: OnboardingStore\n\texecuteCommand: CommandExecuter\n}\n\nexport type CommandExecuter = (command: string) => Promise<void>\n\nexport default class ScriptPlayer {\n\tprivate ui: GraphicsInterface\n\tprivate scriptsByKey: Record<string, Script> = {}\n\tprivate onboardingStore: OnboardingStore\n\n\tprivate commandExecuter: CommandExecuter\n\n\tpublic constructor(options: {\n\t\tui: GraphicsInterface\n\t\tonboardingStore: OnboardingStore\n\t\tcommandExecuter: CommandExecuter\n\t}) {\n\t\tthis.ui = options.ui\n\t\tthis.onboardingStore = options.onboardingStore\n\t\tthis.commandExecuter = options.commandExecuter\n\t}\n\n\tpublic async playScriptWithKey(key: string) {\n\t\tconst script = this.scriptsByKey[key]\n\n\t\tif (!script) {\n\t\t\tthrow new Error(`Onboarding script '${key}' not found.`)\n\t\t}\n\n\t\tawait this.playScript(script)\n\t}\n\n\tpublic loadScript(key: string, script: Script) {\n\t\tthis.scriptsByKey[key] = script\n\t}\n\n\tpublic async playScript(script: Script) {\n\t\tfor (let item of script) {\n\t\t\tlet possibleRedirect: ScriptRedirect | undefined\n\t\t\tswitch (typeof item) {\n\t\t\t\tcase 'string':\n\t\t\t\t\tif (this.isRedirect(item)) {\n\t\t\t\t\t\tpossibleRedirect = item\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.ui.renderLine(item)\n\t\t\t\t\t\tthis.ui.renderLine('')\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\tcase 'function': {\n\t\t\t\t\tconst r = await item(this.buildCallbackOptions())\n\t\t\t\t\tif (r) {\n\t\t\t\t\t\tpossibleRedirect = r\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\tpossibleRedirect = item\n\t\t\t}\n\n\t\t\tif (this.isRedirect(possibleRedirect)) {\n\t\t\t\tawait this.redirectAndPlay(possibleRedirect)\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate buildCallbackOptions(): CallbackPlayer {\n\t\treturn {\n\t\t\tui: this.ui,\n\t\t\tredirect: ScriptPlayer.redirect,\n\t\t\tonboardingStore: this.onboardingStore,\n\t\t\texecuteCommand: this.commandExecuter,\n\t\t}\n\t}\n\n\tprivate async redirectAndPlay(possibleRedirect: string) {\n\t\tconst destination = this.extractDestination(possibleRedirect)\n\t\tif (destination) {\n\t\t\tawait this.playScriptWithKey(destination)\n\t\t}\n\t}\n\n\tpublic static redirect(toScriptKey: string) {\n\t\treturn `redirect->${toScriptKey}`\n\t}\n\n\tprivate extractDestination(possibleRedirect: string) {\n\t\treturn possibleRedirect.split('->').pop()\n\t}\n\n\tprivate isRedirect(item: string | undefined): item is string {\n\t\treturn !!(item && item.substr(0, 10) === 'redirect->')\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"OnboardAction.js","names":["ListenAction","onboardActionSchema","_options","store","getParent","OnboardingStore","mode","getMode","response","ScriptPlayer","player","playScriptWithKey","stage","getStage","headline","summaryLines","parent","AbstractAction"],"sources":["../../../../src/features/onboard/actions/OnboardAction.ts"],"sourcesContent":["import { SpruceSchemas } from '#spruce/schemas/schemas.types'\nimport onboardActionSchema from '#spruce/schemas/spruceCli/v2020_07_22/onboardOptions.schema'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\nimport OnboardFeature from '../OnboardFeature'\n\ntype OptionsSchema = SpruceSchemas.SpruceCli.v2020_07_22.OnboardOptionsSchema\ntype Options = SpruceSchemas.SpruceCli.v2020_07_22.OnboardOptions\nexport default class ListenAction extends AbstractAction<OptionsSchema> {\n\tpublic optionsSchema: OptionsSchema = onboardActionSchema\n\tpublic invocationMessage = 'All aboard... 🛤'\n\n\tpublic async execute(_options: Options): Promise<FeatureActionResponse> {\n\t\tconst store = this.getParent().OnboardingStore()\n\t\tconst mode = store.getMode()\n\t\tlet response = {}\n\n\t\tconst player = await this.getParent().ScriptPlayer()\n\n\t\tswitch (mode) {\n\t\t\tcase 'short':\n\t\t\tcase 'immersive':\n\t\t\t\tawait player.playScriptWithKey('onboarding.returning')\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tawait player.playScriptWithKey('onboarding.first')\n\t\t}\n\n\t\tconst stage = store.getStage()\n\n\t\tif (stage) {\n\t\t\tresponse = {\n\t\t\t\theadline: `Lets rock!`,\n\t\t\t\tsummaryLines: [\n\t\t\t\t\t`Next step: \\`spruce ${stage} todos\\``,\n\t\t\t\t\t'If stuck: `spruce onboard`',\n\t\t\t\t],\n\t\t\t}\n\t\t} else {\n\t\t\tresponse = {\n\t\t\t\theadline: 'Aborted!',\n\t\t\t}\n\t\t}\n\n\t\treturn response\n\t}\n\n\tprivate getParent(): OnboardFeature {\n\t\treturn this.parent as OnboardFeature\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;AACA;;;;;;IAMqBA,Y;;;;;;;;;;;;;;;sGACkBC,0B;0GACX,kB;;;;;;;mGAE3B,iBAAqBC,QAArB;QAAA;QAAA;UAAA;YAAA;cAAA;gBACOC,KADP,GACe,KAAKC,SAAL,GAAiBC,eAAjB,EADf;gBAEOC,IAFP,GAEcH,KAAK,CAACI,OAAN,EAFd;gBAGKC,QAHL,GAGgB,EAHhB;gBAAA;gBAAA,OAKsB,KAAKJ,SAAL,GAAiBK,YAAjB,EALtB;;cAAA;gBAKOC,MALP;gBAAA,cAOSJ,IAPT;gBAAA,gCAQO,OARP,uBASO,WATP;gBAAA;;cAAA;gBAAA;gBAAA,OAUSI,MAAM,CAACC,iBAAP,CAAyB,sBAAzB,CAVT;;cAAA;gBAAA;;cAAA;gBAAA;gBAAA,OAaSD,MAAM,CAACC,iBAAP,CAAyB,kBAAzB,CAbT;;cAAA;gBAgBOC,KAhBP,GAgBeT,KAAK,CAACU,QAAN,EAhBf;;gBAkBC,IAAID,KAAJ,EAAW;kBACVJ,QAAQ,GAAG;oBACVM,QAAQ,cADE;oBAEVC,YAAY,EAAE,8BACUH,KADV,cAEb,4BAFa;kBAFJ,CAAX;gBAOA,CARD,MAQO;kBACNJ,QAAQ,GAAG;oBACVM,QAAQ,EAAE;kBADA,CAAX;gBAGA;;gBA9BF,iCAgCQN,QAhCR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;WAmCA,qBAAoC;MACnC,OAAO,KAAKQ,MAAZ;IACA;;;EAzCwCC,2B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"onboarding.first.script.js","names":["script","player","ui","waitForEnter","clear","renderDoors","chooseOnboardingAdventure","renderImage","diskUtil","resolvePath","__dirname","width","height","prompt","type","label","isRequired","options","choices","value","answer","redirect"],"sources":["../../../../src/features/onboard/scripts/onboarding.first.script.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { GraphicsInterface } from '../../../types/cli.types'\nimport { Script, CallbackPlayer } from '../ScriptPlayer'\n\nconst script: Script = [\n\t'Hey there! 👋',\n\t\"I'm Sprucebot. 🌲🤖\",\n\t\"I'll be your narrator on this journey to creating your first experience.\",\n\tasync (player) => {\n\t\tawait player.ui.waitForEnter('Lets get started...')\n\t},\n\tasync (player) => {\n\t\tplayer.ui.clear()\n\t},\n\tasync (player) => {\n\t\tawait renderDoors(player.ui)\n\t},\n\t'You are strolling through the forest when you stumble onto a clearing.',\n\t'In the clearing there are two heavy, thick, doors.',\n\t'They are free standing. You walk around them a few times before...',\n\t'You see words scribed onto each.',\n\t'The door to the left says, \"Quick start. 30 minutes.\"',\n\t'The door to the right says, \"Immersive. 4-6 weeks.\"',\n\t'\"Four to six week onboarding!?\" You say out loud. \"What the actual sh**!?\"',\n\t\"You don't have 4-6 weeks to do onboarding. But, you take pride in your work and doing things the right way.\",\n\tasync (player) => {\n\t\treturn await chooseOnboardingAdventure(player)\n\t},\n]\n\nexport async function renderDoors(ui: GraphicsInterface) {\n\tawait ui.renderImage(\n\t\tdiskUtil.resolvePath(__dirname, '../../../../docs/images/doors.jpg'),\n\t\t{\n\t\t\twidth: 100,\n\t\t\theight: 35,\n\t\t}\n\t)\n}\n\nexport async function chooseOnboardingAdventure(player: CallbackPlayer) {\n\tconst answer = await player.ui.prompt({\n\t\ttype: 'select',\n\t\tlabel: 'Which door do you choose?',\n\t\tisRequired: true,\n\t\toptions: {\n\t\t\tchoices: [\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Left door (30 minutes)',\n\t\t\t\t\tvalue: 'short',\n\t\t\t\t} as const,\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Right door (4-6 weeks)',\n\t\t\t\t\tvalue: 'immersive',\n\t\t\t\t} as const,\n\t\t\t],\n\t\t},\n\t})\n\n\tswitch (answer) {\n\t\tcase 'immersive':\n\t\t\treturn player.redirect('onboarding.immersive')\n\t\tcase 'short':\n\t\t\treturn player.redirect('onboarding.short')\n\t}\n}\n\nexport default script\n"],"mappings":";;;;;;;;;;;;;;;AAAA;;AAIA,IAAMA,MAAc,GAAG,CACtB,eADsB,EAEtB,qBAFsB,EAGtB,0EAHsB;EAAA,yFAItB,iBAAOC,MAAP;IAAA;MAAA;QAAA;UAAA;YAAA;YAAA,OACOA,MAAM,CAACC,EAAP,CAAUC,YAAV,CAAuB,qBAAvB,CADP;;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,CAJsB;;EAAA;IAAA;EAAA;AAAA;EAAA,0FAOtB,kBAAOF,MAAP;IAAA;MAAA;QAAA;UAAA;YACCA,MAAM,CAACC,EAAP,CAAUE,KAAV;;UADD;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,CAPsB;;EAAA;IAAA;EAAA;AAAA;EAAA,0FAUtB,kBAAOH,MAAP;IAAA;MAAA;QAAA;UAAA;YAAA;YAAA,OACOI,WAAW,CAACJ,MAAM,CAACC,EAAR,CADlB;;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,CAVsB;;EAAA;IAAA;EAAA;AAAA,KAatB,wEAbsB,EActB,oDAdsB,EAetB,oEAfsB,EAgBtB,kCAhBsB,EAiBtB,uDAjBsB,EAkBtB,qDAlBsB,EAmBtB,4EAnBsB,EAoBtB,6GApBsB;EAAA,0FAqBtB,kBAAOD,MAAP;IAAA;MAAA;QAAA;UAAA;YAAA;YAAA,OACcK,yBAAyB,CAACL,MAAD,CADvC;;UAAA;YAAA;;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,CArBsB;;EAAA;IAAA;EAAA;AAAA,IAAvB;;SA0BsBI,W;;;;;+FAAf,kBAA2BH,EAA3B;IAAA;MAAA;QAAA;UAAA;YAAA;YAAA,OACAA,EAAE,CAACK,WAAH,CACLC,2BAASC,WAAT,CAAqBC,SAArB,EAAgC,mCAAhC,CADK,EAEL;cACCC,KAAK,EAAE,GADR;cAECC,MAAM,EAAE;YAFT,CAFK,CADA;;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,C;;;;SAUeN,yB;;;;;6GAAf,kBAAyCL,MAAzC;IAAA;IAAA;MAAA;QAAA;UAAA;YAAA;YAAA,OACeA,MAAM,CAACC,EAAP,CAAUW,MAAV,CAAiB;cACrCC,IAAI,EAAE,QAD+B;cAErCC,KAAK,EAAE,2BAF8B;cAGrCC,UAAU,EAAE,IAHyB;cAIrCC,OAAO,EAAE;gBACRC,OAAO,EAAE,CACR;kBACCH,KAAK,EAAE,wBADR;kBAECI,KAAK,EAAE;gBAFR,CADQ,EAKR;kBACCJ,KAAK,EAAE,wBADR;kBAECI,KAAK,EAAE;gBAFR,CALQ;cADD;YAJ4B,CAAjB,CADf;;UAAA;YACAC,MADA;YAAA,eAmBEA,MAnBF;YAAA,kCAoBA,WApBA,wBAsBA,OAtBA;YAAA;;UAAA;YAAA,kCAqBGnB,MAAM,CAACoB,QAAP,CAAgB,sBAAhB,CArBH;;UAAA;YAAA,kCAuBGpB,MAAM,CAACoB,QAAP,CAAgB,kBAAhB,CAvBH;;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,C;;;;eA2BQrB,M"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"onboarding.immersive.script.js","names":["script","player","ui","clear","renderImage","diskUtil","resolvePath","__dirname","width","height","waitForEnter"],"sources":["../../../../src/features/onboard/scripts/onboarding.immersive.script.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { Script } from '../ScriptPlayer'\nimport {\n\trenderDoors,\n\tchooseOnboardingAdventure,\n} from './onboarding.first.script'\n\nconst script: Script = [\n\tasync (player) => {\n\t\tplayer.ui.clear()\n\t\tawait player.ui.renderImage(\n\t\t\tdiskUtil.resolvePath(__dirname, '../../../../docs/images/listen.jpg'),\n\t\t\t{\n\t\t\t\twidth: 100,\n\t\t\t\theight: 23,\n\t\t\t}\n\t\t)\n\t},\n\t'You approach the \"Immersive\" door and grab the handle...',\n\t\"It won't budge no matter how hard you try.\",\n\t'You hear a sound, so you put your ear to the door.',\n\t'From the other side, someone yells, \"Work in progress. Try the door on the left! Thaaaaaanks!!\"',\n\t'You back away...',\n\tasync (player) => {\n\t\tawait player.ui.waitForEnter()\n\t\tplayer.ui.clear()\n\t\tawait renderDoors(player.ui)\n\t\treturn chooseOnboardingAdventure(player)\n\t},\n]\n\nexport default script\n"],"mappings":";;;;;;;;;;;;;AAAA;;AAEA;;AAKA,IAAMA,MAAc,GAAG;EAAA,yFACtB,iBAAOC,MAAP;IAAA;MAAA;QAAA;UAAA;YACCA,MAAM,CAACC,EAAP,CAAUC,KAAV;YADD;YAAA,OAEOF,MAAM,CAACC,EAAP,CAAUE,WAAV,CACLC,2BAASC,WAAT,CAAqBC,SAArB,EAAgC,oCAAhC,CADK,EAEL;cACCC,KAAK,EAAE,GADR;cAECC,MAAM,EAAE;YAFT,CAFK,CAFP;;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,CADsB;;EAAA;IAAA;EAAA;AAAA,KAWtB,0DAXsB,EAYtB,4CAZsB,EAatB,oDAbsB,EActB,iGAdsB,EAetB,kBAfsB;EAAA,0FAgBtB,kBAAOR,MAAP;IAAA;MAAA;QAAA;UAAA;YAAA;YAAA,OACOA,MAAM,CAACC,EAAP,CAAUQ,YAAV,EADP;;UAAA;YAECT,MAAM,CAACC,EAAP,CAAUC,KAAV;YAFD;YAAA,OAGO,kCAAYF,MAAM,CAACC,EAAnB,CAHP;;UAAA;YAAA,kCAIQ,gDAA0BD,MAA1B,CAJR;;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,CAhBsB;;EAAA;IAAA;EAAA;AAAA,IAAvB;eAwBeD,M"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"onboarding.returning.script.js","names":["script","player","ui","clear","stage","onboardingStore","getStage","prompt","type","label","options","choices","value","answer","reset","redirect","executeCommand"],"sources":["../../../../src/features/onboard/scripts/onboarding.returning.script.ts"],"sourcesContent":["import { Script } from '../ScriptPlayer'\nimport { renderCommand, renderEnter } from './onboarding.short.script'\n\nconst script: Script = [\n\t(player) => player.ui.clear(),\n\t(player) => renderEnter(player),\n\t'You return to the doors in the forest and enter the one on the left.',\n\t'\"Welcome back!\", shouts Sprucebot.',\n\t'\"It looks like you\\'re supposed to be running\"',\n\t(player) => {\n\t\tconst stage = player.onboardingStore.getStage()\n\t\trenderCommand(player.ui, `spruce ${stage}`)\n\t},\n\tasync (player) => {\n\t\tconst stage = player.onboardingStore.getStage()\n\t\tconst answer = await player.ui.prompt({\n\t\t\ttype: 'select',\n\t\t\tlabel: \"Lemme know what you'd like to do\",\n\t\t\toptions: {\n\t\t\t\tchoices: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: `Run \\`spruce ${stage}\\` for me!`,\n\t\t\t\t\t\tvalue: 'run',\n\t\t\t\t\t} as const,\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: `Start over`,\n\t\t\t\t\t\tvalue: 'startOver',\n\t\t\t\t\t} as const,\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: `Stop onboarding`,\n\t\t\t\t\t\tvalue: 'stop',\n\t\t\t\t\t} as const,\n\t\t\t\t],\n\t\t\t},\n\t\t})\n\n\t\tswitch (answer) {\n\t\t\tcase 'startOver':\n\t\t\t\tplayer.onboardingStore.reset()\n\t\t\t\tplayer.ui.clear()\n\t\t\t\treturn player.redirect('onboarding.first')\n\t\t\tcase 'stop':\n\t\t\t\tplayer.onboardingStore.reset()\n\t\t\t\tbreak\n\t\t\tcase 'run':\n\t\t\t\tawait player.executeCommand(stage as string)\n\t\t\t\tbreak\n\t\t}\n\n\t\treturn\n\t},\n]\n\nexport default script\n"],"mappings":";;;;;;;;;;;;;AACA;;AAEA,IAAMA,MAAc,GAAG,CACtB,UAACC,MAAD;EAAA,OAAYA,MAAM,CAACC,EAAP,CAAUC,KAAV,EAAZ;AAAA,CADsB,EAEtB,UAACF,MAAD;EAAA,OAAY,kCAAYA,MAAZ,CAAZ;AAAA,CAFsB,EAGtB,sEAHsB,EAItB,oCAJsB,EAKtB,gDALsB,EAMtB,UAACA,MAAD,EAAY;EACX,IAAMG,KAAK,GAAGH,MAAM,CAACI,eAAP,CAAuBC,QAAvB,EAAd;EACA,oCAAcL,MAAM,CAACC,EAArB,mBAAmCE,KAAnC;AACA,CATqB;EAAA,yFAUtB,iBAAOH,MAAP;IAAA;IAAA;MAAA;QAAA;UAAA;YACOG,KADP,GACeH,MAAM,CAACI,eAAP,CAAuBC,QAAvB,EADf;YAAA;YAAA,OAEsBL,MAAM,CAACC,EAAP,CAAUK,MAAV,CAAiB;cACrCC,IAAI,EAAE,QAD+B;cAErCC,KAAK,EAAE,kCAF8B;cAGrCC,OAAO,EAAE;gBACRC,OAAO,EAAE,CACR;kBACCF,KAAK,wBAAkBL,KAAlB,cADN;kBAECQ,KAAK,EAAE;gBAFR,CADQ,EAKR;kBACCH,KAAK,cADN;kBAECG,KAAK,EAAE;gBAFR,CALQ,EASR;kBACCH,KAAK,mBADN;kBAECG,KAAK,EAAE;gBAFR,CATQ;cADD;YAH4B,CAAjB,CAFtB;;UAAA;YAEOC,MAFP;YAAA,cAuBSA,MAvBT;YAAA,gCAwBO,WAxBP,uBA4BO,MA5BP,wBA+BO,KA/BP;YAAA;;UAAA;YAyBGZ,MAAM,CAACI,eAAP,CAAuBS,KAAvB;YACAb,MAAM,CAACC,EAAP,CAAUC,KAAV;YA1BH,iCA2BUF,MAAM,CAACc,QAAP,CAAgB,kBAAhB,CA3BV;;UAAA;YA6BGd,MAAM,CAACI,eAAP,CAAuBS,KAAvB;YA7BH;;UAAA;YAAA;YAAA,OAgCSb,MAAM,CAACe,cAAP,CAAsBZ,KAAtB,CAhCT;;UAAA;YAAA;;UAAA;YAAA;;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,CAVsB;;EAAA;IAAA;EAAA;AAAA,IAAvB;eAkDeJ,M"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"onboarding.short.script.js","names":["script","player","ui","clear","renderEnter","line","renderLine","GraphicsTextEffect","Italic","renderCommand","waitForEnter","onboardingStore","setMode","setStage","featuresUtil","generateCommand","renderImage","diskUtil","resolvePath","__dirname","width","height","command","BgMagenta","White"],"sources":["../../../../src/features/onboard/scripts/onboarding.short.script.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { GraphicsInterface } from '../../../types/cli.types'\nimport { GraphicsTextEffect } from '../../../types/graphicsInterface.types'\nimport featuresUtil from '../../feature.utilities'\nimport { CallbackPlayer, Script } from '../ScriptPlayer'\n\nconst script: Script = [\n\tasync (player) => {\n\t\tplayer.ui.clear()\n\t\tawait renderEnter(player)\n\t},\n\t\"You push the door open and enter into the largest room you've ever seen.\",\n\t\"So big, in fact, you can't see where the floors end and the walls begin.\",\n\t'A familiar voice echos...',\n\t'\"Hey! It\\'s Sprucebot again! 🌲🤖\"',\n\tasync (player) => {\n\t\tconst line = `This is so much fun! I love playing both the narrator and a character!`\n\t\tplayer.ui.renderLine(line, [GraphicsTextEffect.Italic])\n\t\tplayer.ui.renderLine('')\n\t},\n\t'Anyway... \"How about we create a simple todo app.\"',\n\t'\"Go ahead and run\"',\n\tasync (player) => {\n\t\trenderCommand(player.ui, 'spruce create.skill todos')\n\t},\n\n\t'\"Tip! If you ever get lost, just run\"',\n\tasync (player) => {\n\t\trenderCommand(player.ui, `spruce onboard`)\n\t},\n\t'\"and I\\'ll get you back on track.\"',\n\tasync (player) => {\n\t\tawait player.ui.waitForEnter('\"Lets do it!\"')\n\n\t\tplayer.onboardingStore.setMode('short')\n\t\tplayer.onboardingStore.setStage(\n\t\t\tfeaturesUtil.generateCommand('skill', 'create') as 'create.skill'\n\t\t)\n\t},\n]\n\nexport function renderEnter(player: CallbackPlayer) {\n\treturn player.ui.renderImage(\n\t\tdiskUtil.resolvePath(__dirname, '../../../../docs/images/inside.jpg'),\n\t\t{\n\t\t\twidth: 100,\n\t\t\theight: 35,\n\t\t}\n\t)\n}\n\nexport function renderCommand(ui: GraphicsInterface, command: string) {\n\tui.renderLine(command, [\n\t\tGraphicsTextEffect.BgMagenta,\n\t\tGraphicsTextEffect.White,\n\t])\n\tui.renderLine('')\n}\n\nexport default script\n"],"mappings":";;;;;;;;;;;;;;;AAAA;;AAEA;;AACA;;AAGA,IAAMA,MAAc,GAAG;EAAA,yFACtB,iBAAOC,MAAP;IAAA;MAAA;QAAA;UAAA;YACCA,MAAM,CAACC,EAAP,CAAUC,KAAV;YADD;YAAA,OAEOC,WAAW,CAACH,MAAD,CAFlB;;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,CADsB;;EAAA;IAAA;EAAA;AAAA,KAKtB,0EALsB,EAMtB,0EANsB,EAOtB,2BAPsB,EAQtB,oCARsB;EAAA,0FAStB,kBAAOA,MAAP;IAAA;IAAA;MAAA;QAAA;UAAA;YACOI,IADP;YAECJ,MAAM,CAACC,EAAP,CAAUI,UAAV,CAAqBD,IAArB,EAA2B,CAACE,sCAAmBC,MAApB,CAA3B;YACAP,MAAM,CAACC,EAAP,CAAUI,UAAV,CAAqB,EAArB;;UAHD;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,CATsB;;EAAA;IAAA;EAAA;AAAA,KActB,oDAdsB,EAetB,oBAfsB;EAAA,0FAgBtB,kBAAOL,MAAP;IAAA;MAAA;QAAA;UAAA;YACCQ,aAAa,CAACR,MAAM,CAACC,EAAR,EAAY,2BAAZ,CAAb;;UADD;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,CAhBsB;;EAAA;IAAA;EAAA;AAAA,KAoBtB,uCApBsB;EAAA,0FAqBtB,kBAAOD,MAAP;IAAA;MAAA;QAAA;UAAA;YACCQ,aAAa,CAACR,MAAM,CAACC,EAAR,mBAAb;;UADD;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,CArBsB;;EAAA;IAAA;EAAA;AAAA,KAwBtB,oCAxBsB;EAAA,0FAyBtB,kBAAOD,MAAP;IAAA;MAAA;QAAA;UAAA;YAAA;YAAA,OACOA,MAAM,CAACC,EAAP,CAAUQ,YAAV,CAAuB,eAAvB,CADP;;UAAA;YAGCT,MAAM,CAACU,eAAP,CAAuBC,OAAvB,CAA+B,OAA/B;YACAX,MAAM,CAACU,eAAP,CAAuBE,QAAvB,CACCC,oBAAaC,eAAb,CAA6B,OAA7B,EAAsC,QAAtC,CADD;;UAJD;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,CAzBsB;;EAAA;IAAA;EAAA;AAAA,IAAvB;;AAmCO,SAASX,WAAT,CAAqBH,MAArB,EAA6C;EACnD,OAAOA,MAAM,CAACC,EAAP,CAAUc,WAAV,CACNC,2BAASC,WAAT,CAAqBC,SAArB,EAAgC,oCAAhC,CADM,EAEN;IACCC,KAAK,EAAE,GADR;IAECC,MAAM,EAAE;EAFT,CAFM,CAAP;AAOA;;AAEM,SAASZ,aAAT,CAAuBP,EAAvB,EAA8CoB,OAA9C,EAA+D;EACrEpB,EAAE,CAACI,UAAH,CAAcgB,OAAd,EAAuB,CACtBf,sCAAmBgB,SADG,EAEtBhB,sCAAmBiB,KAFG,CAAvB;EAIAtB,EAAE,CAACI,UAAH,CAAc,EAAd;AACA;;eAEcN,M"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"todo.create.skill.script.js","names":["script","player","ui","waitForEnter","onboardingStore","setStage"],"sources":["../../../../../src/features/onboard/scripts/todo/todo.create.skill.script.ts"],"sourcesContent":["import { Script } from '../../ScriptPlayer'\n\nconst script: Script = [\n\t'Great work!',\n\t\"I'm going to walk you through creating a skill.\",\n\t\"Because we follow the 3 Laws of Test Driven Development (https://bit.ly/3ls9phs), we're going to get all the way to our first failing test.\",\n\t'First step, you gotta name your skill.',\n\t\"Let's call it 'Todos' to start.\",\n\t'The description is up to you!',\n\t\"I'll meet you on the other side!\",\n\tasync (player) => {\n\t\tawait player.ui.waitForEnter('')\n\t\tplayer.onboardingStore.setStage('test')\n\t},\n]\n\nexport default script\n"],"mappings":";;;;;;;;;;;;;AAEA,IAAMA,MAAc,GAAG,CACtB,aADsB,EAEtB,iDAFsB,EAGtB,6IAHsB,EAItB,wCAJsB,EAKtB,iCALsB,EAMtB,+BANsB,EAOtB,kCAPsB;EAAA,yFAQtB,iBAAOC,MAAP;IAAA;MAAA;QAAA;UAAA;YAAA;YAAA,OACOA,MAAM,CAACC,EAAP,CAAUC,YAAV,CAAuB,EAAvB,CADP;;UAAA;YAECF,MAAM,CAACG,eAAP,CAAuBC,QAAvB,CAAgC,MAAhC;;UAFD;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,CARsB;;EAAA;IAAA;EAAA;AAAA,IAAvB;eAceL,M"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"todo.test.script.js","names":["script","player","ui","waitForEnter"],"sources":["../../../../../src/features/onboard/scripts/todo/todo.test.script.ts"],"sourcesContent":["import { Script } from '../../ScriptPlayer'\n\nconst script: Script = [\n\t'Look at us go! 😄',\n\t\"I'm about to setup testing.\",\n\t'Real testing.',\n\t'Remember the whole 3 Laws of Test Driven Development thing? You are def gonna wanna watch this before continuing -> https://youtu.be/qkblc5WRn-U',\n\t'Ok, getting down off my robot soapbox.',\n\t'Next thing I gotta do is install some more dependencies (I know right?).',\n\t'You ready to go?',\n\tasync (player) => {\n\t\tawait player.ui.waitForEnter('')\n\t},\n]\n\nexport default script\n"],"mappings":";;;;;;;;;;;;;AAEA,IAAMA,MAAc,GAAG,CACtB,mBADsB,EAEtB,6BAFsB,EAGtB,eAHsB,EAItB,kJAJsB,EAKtB,wCALsB,EAMtB,0EANsB,EAOtB,kBAPsB;EAAA,yFAQtB,iBAAOC,MAAP;IAAA;MAAA;QAAA;UAAA;YAAA;YAAA,OACOA,MAAM,CAACC,EAAP,CAAUC,YAAV,CAAuB,EAAvB,CADP;;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,CARsB;;EAAA;IAAA;EAAA;AAAA,IAAvB;eAaeH,M"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"wrongCommand.script.js","names":["script","player","ui","onboardingStore","getStage","stage","prompt","type","label","options","choices","value","answer","reset","renderLine","waitForEnter","Error"],"sources":["../../../../src/features/onboard/scripts/wrongCommand.script.ts"],"sourcesContent":["import { Script } from '../ScriptPlayer'\nimport { renderCommand } from './onboarding.short.script'\n\nconst script: Script = [\n\t'Hold on! ✋',\n\t\"I don't think you're supposed to be here!\",\n\t'I was really expecting you to run:',\n\t(player) => {\n\t\trenderCommand(player.ui, player.onboardingStore.getStage() as string)\n\t},\n\t'But you are in a completely different place.',\n\tasync (player) => {\n\t\tconst stage = player.onboardingStore.getStage() as string\n\t\tconst answer = await player.ui.prompt({\n\t\t\ttype: 'select',\n\t\t\tlabel: 'What should we do?',\n\t\t\toptions: {\n\t\t\t\tchoices: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: 'Continue forward',\n\t\t\t\t\t\tvalue: 'letMePass',\n\t\t\t\t\t} as const,\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: 'Stop onboarding',\n\t\t\t\t\t\tvalue: 'disable',\n\t\t\t\t\t} as const,\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: `Execute \\`${stage}\\``,\n\t\t\t\t\t\tvalue: 'executeCommand',\n\t\t\t\t\t} as const,\n\t\t\t\t],\n\t\t\t},\n\t\t})\n\n\t\tswitch (answer) {\n\t\t\tcase 'disable':\n\t\t\t\tplayer.onboardingStore.reset()\n\t\t\t\tplayer.ui.renderLine('')\n\t\t\t\tplayer.ui.renderLine(\n\t\t\t\t\t`Ok, I've disabled onboarding for now. Hope to see you again soon!`\n\t\t\t\t)\n\t\t\t\tplayer.ui.renderLine('')\n\t\t\t// eslint-disable-next-line no-fallthrough\n\t\t\tcase 'letMePass':\n\t\t\t\tawait player.ui.waitForEnter('As you were!')\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tthrow new Error('Coming soon! For now you have to manually run!')\n\t\t}\n\t},\n]\n\nexport default script\n"],"mappings":";;;;;;;;;;;;;AACA;;AAEA,IAAMA,MAAc,GAAG,CACtB,YADsB,EAEtB,2CAFsB,EAGtB,oCAHsB,EAItB,UAACC,MAAD,EAAY;EACX,oCAAcA,MAAM,CAACC,EAArB,EAAyBD,MAAM,CAACE,eAAP,CAAuBC,QAAvB,EAAzB;AACA,CANqB,EAOtB,8CAPsB;EAAA,yFAQtB,iBAAOH,MAAP;IAAA;IAAA;MAAA;QAAA;UAAA;YACOI,KADP,GACeJ,MAAM,CAACE,eAAP,CAAuBC,QAAvB,EADf;YAAA;YAAA,OAEsBH,MAAM,CAACC,EAAP,CAAUI,MAAV,CAAiB;cACrCC,IAAI,EAAE,QAD+B;cAErCC,KAAK,EAAE,oBAF8B;cAGrCC,OAAO,EAAE;gBACRC,OAAO,EAAE,CACR;kBACCF,KAAK,EAAE,kBADR;kBAECG,KAAK,EAAE;gBAFR,CADQ,EAKR;kBACCH,KAAK,EAAE,iBADR;kBAECG,KAAK,EAAE;gBAFR,CALQ,EASR;kBACCH,KAAK,qBAAeH,KAAf,MADN;kBAECM,KAAK,EAAE;gBAFR,CATQ;cADD;YAH4B,CAAjB,CAFtB;;UAAA;YAEOC,MAFP;YAAA,cAuBSA,MAvBT;YAAA,gCAwBO,SAxBP,uBAgCO,WAhCP;YAAA;;UAAA;YAyBGX,MAAM,CAACE,eAAP,CAAuBU,KAAvB;YACAZ,MAAM,CAACC,EAAP,CAAUY,UAAV,CAAqB,EAArB;YACAb,MAAM,CAACC,EAAP,CAAUY,UAAV;YAGAb,MAAM,CAACC,EAAP,CAAUY,UAAV,CAAqB,EAArB;;UA9BH;YAAA;YAAA,OAiCSb,MAAM,CAACC,EAAP,CAAUa,YAAV,CAAuB,cAAvB,CAjCT;;UAAA;YAAA;;UAAA;YAAA,MAoCS,IAAIC,KAAJ,CAAU,gDAAV,CApCT;;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,CARsB;;EAAA;IAAA;EAAA;AAAA,IAAvB;eAiDehB,M"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"OnboardingStore.js","names":["OnboardingStore","options","cwd","generateCwd","load","schemasByHome","homeDir","SchemaEntityFactory","Entity","onboardingSchema","values","schema","getValues","writeValues","saved","readValues","setValues","stage","mode","get","set","validate","save","undefined","setMode","home","cwdOverride","diskUtil","createTempDir","AbstractLocalStore"],"sources":["../../../../src/features/onboard/stores/OnboardingStore.ts"],"sourcesContent":["import { SchemaEntityFactory, StaticSchemaEntity } from '@sprucelabs/schema'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { SpruceSchemas } from '#spruce/schemas/schemas.types'\nimport onboardingSchema from '#spruce/schemas/spruceCli/v2020_07_22/onboarding.schema'\nimport AbstractLocalStore, {\n\tLocalStoreSettings,\n} from '../../../stores/AbstractLocalStore'\nimport { StoreOptions } from '../../../stores/AbstractStore'\n\nexport interface OnboardingStoreSettings\n\textends LocalStoreSettings,\n\t\tSpruceSchemas.SpruceCli.v2020_07_22.Onboarding {}\n\ntype OnboardingSchema = SpruceSchemas.SpruceCli.v2020_07_22.OnboardingSchema\nexport type OnboardingMode = OnboardingStoreSettings['mode']\nexport type OnboardingStage = OnboardingStoreSettings['stage']\n\nexport default class OnboardingStore extends AbstractLocalStore<OnboardingStoreSettings> {\n\tpublic readonly name = 'onboarding'\n\tprivate static cwdOverride: string\n\n\tprivate static schemasByHome: Record<\n\t\tstring,\n\t\tStaticSchemaEntity<OnboardingSchema>\n\t> = {}\n\n\tpublic constructor(options: StoreOptions) {\n\t\tsuper(options)\n\t\tthis.cwd = this.generateCwd()\n\t\tthis.load()\n\t}\n\n\tprivate get schema() {\n\t\tif (!OnboardingStore.schemasByHome[this.homeDir]) {\n\t\t\tOnboardingStore.schemasByHome[this.homeDir] =\n\t\t\t\tSchemaEntityFactory.Entity(onboardingSchema)\n\t\t}\n\n\t\treturn OnboardingStore.schemasByHome[this.homeDir]\n\t}\n\n\tprivate save() {\n\t\tconst values = this.schema.getValues()\n\t\tthis.writeValues(values)\n\t\treturn this\n\t}\n\n\tprivate load() {\n\t\tconst saved = this.readValues()\n\t\tthis.schema.setValues({\n\t\t\tstage: saved.stage ?? null,\n\t\t\tmode: saved.mode ?? 'off',\n\t\t})\n\t\treturn this\n\t}\n\n\tpublic getMode(): OnboardingMode {\n\t\treturn this.schema.get('mode')\n\t}\n\n\tpublic setMode(mode: OnboardingMode) {\n\t\tthis.schema.set('mode', mode)\n\t\tthis.schema.validate()\n\t\tthis.save()\n\t}\n\n\tpublic getStage() {\n\t\treturn this.schema.get('stage')\n\t}\n\n\tpublic setStage(stage: OnboardingStage) {\n\t\tthis.schema.set('stage', stage)\n\t\tthis.schema.validate()\n\t\tthis.save()\n\t}\n\n\tpublic reset() {\n\t\tthis.schema.set('stage', undefined)\n\t\tthis.setMode('off')\n\t}\n\n\tpublic static overrideCwd(cwd: string) {\n\t\tthis.cwdOverride = cwd\n\t}\n\n\tprotected generateCwd() {\n\t\tconst home =\n\t\t\tOnboardingStore.cwdOverride ?? diskUtil.createTempDir('spruce-cli')\n\t\treturn home\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAEA;;AACA;;;;;;IAaqBA,e;;;;;EASpB,yBAAmBC,OAAnB,EAA0C;IAAA;;IAAA;IACzC,0BAAMA,OAAN;IADyC,yFARnB,YAQmB;IAEzC,MAAKC,GAAL,GAAW,MAAKC,WAAL,EAAX;;IACA,MAAKC,IAAL;;IAHyC;EAIzC;;;;SAED,eAAqB;MACpB,IAAI,CAACJ,eAAe,CAACK,aAAhB,CAA8B,KAAKC,OAAnC,CAAL,EAAkD;QACjDN,eAAe,CAACK,aAAhB,CAA8B,KAAKC,OAAnC,IACCC,4BAAoBC,MAApB,CAA2BC,sBAA3B,CADD;MAEA;;MAED,OAAOT,eAAe,CAACK,aAAhB,CAA8B,KAAKC,OAAnC,CAAP;IACA;;;WAED,gBAAe;MACd,IAAMI,MAAM,GAAG,KAAKC,MAAL,CAAYC,SAAZ,EAAf;MACA,KAAKC,WAAL,CAAiBH,MAAjB;MACA,OAAO,IAAP;IACA;;;WAED,gBAAe;MAAA;;MACd,IAAMI,KAAK,GAAG,KAAKC,UAAL,EAAd;MACA,KAAKJ,MAAL,CAAYK,SAAZ,CAAsB;QACrBC,KAAK,kBAAEH,KAAK,CAACG,KAAR,uDAAiB,IADD;QAErBC,IAAI,iBAAEJ,KAAK,CAACI,IAAR,qDAAgB;MAFC,CAAtB;MAIA,OAAO,IAAP;IACA;;;WAED,mBAAiC;MAChC,OAAO,KAAKP,MAAL,CAAYQ,GAAZ,CAAgB,MAAhB,CAAP;IACA;;;WAED,iBAAeD,IAAf,EAAqC;MACpC,KAAKP,MAAL,CAAYS,GAAZ,CAAgB,MAAhB,EAAwBF,IAAxB;MACA,KAAKP,MAAL,CAAYU,QAAZ;MACA,KAAKC,IAAL;IACA;;;WAED,oBAAkB;MACjB,OAAO,KAAKX,MAAL,CAAYQ,GAAZ,CAAgB,OAAhB,CAAP;IACA;;;WAED,kBAAgBF,KAAhB,EAAwC;MACvC,KAAKN,MAAL,CAAYS,GAAZ,CAAgB,OAAhB,EAAyBH,KAAzB;MACA,KAAKN,MAAL,CAAYU,QAAZ;MACA,KAAKC,IAAL;IACA;;;WAED,iBAAe;MACd,KAAKX,MAAL,CAAYS,GAAZ,CAAgB,OAAhB,EAAyBG,SAAzB;MACA,KAAKC,OAAL,CAAa,KAAb;IACA;;;WAMD,uBAAwB;MAAA;;MACvB,IAAMC,IAAI,4BACTzB,eAAe,CAAC0B,WADP,yEACsBC,2BAASC,aAAT,CAAuB,YAAvB,CADhC;MAEA,OAAOH,IAAP;IACA;;;WARD,qBAA0BvB,GAA1B,EAAuC;MACtC,KAAKwB,WAAL,GAAmBxB,GAAnB;IACA;;;EAlE2C2B,+B;;;iCAAxB7B,e;iCAAAA,e,mBAOhB,E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"OrganizationFeature.js","names":["OrganizationFeature","code","isRequired","diskUtil","resolvePath","__dirname","AbstractFeature"],"sources":["../../../src/features/organization/OrganizationFeature.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport AbstractFeature, { FeatureDependency } from '../AbstractFeature'\nimport { FeatureCode } from '../features.types'\n\ndeclare module '../../features/features.types' {\n\tinterface FeatureMap {\n\t\torganization: OrganizationFeature\n\t}\n}\n\nexport default class OrganizationFeature extends AbstractFeature {\n\tpublic code: FeatureCode = 'organization'\n\tpublic nameReadable = 'Organization'\n\tpublic description = 'Manage the organizations you are part of'\n\tpublic dependencies: FeatureDependency[] = [\n\t\t{\n\t\t\tcode: 'skill',\n\t\t\tisRequired: true,\n\t\t},\n\t\t{\n\t\t\tcode: 'event',\n\t\t\tisRequired: true,\n\t\t},\n\t]\n\tpublic packageDependencies = []\n\n\tpublic actionsDir = diskUtil.resolvePath(__dirname, 'actions')\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;;;;;IASqBA,mB;;;;;;;;;;;;;;;6FACO,c;qGACL,c;oGACD,0C;qGACsB,CAC1C;MACCC,IAAI,EAAE,OADP;MAECC,UAAU,EAAE;IAFb,CAD0C,EAK1C;MACCD,IAAI,EAAE,OADP;MAECC,UAAU,EAAE;IAFb,CAL0C,C;4GAUd,E;mGAETC,2BAASC,WAAT,CAAqBC,SAArB,EAAgC,SAAhC,C;;;;;EAhB4BC,4B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"CreateAction.js","names":["CreateAction","createOrganizationActionSchema","options","validateAndNormalizeOptions","nameReadable","nameKebab","Store","create","name","slug","organization","meta","AbstractAction"],"sources":["../../../../src/features/organization/actions/CreateAction.ts"],"sourcesContent":["import { SpruceSchemas } from '#spruce/schemas/schemas.types'\nimport createOrganizationActionSchema from '#spruce/schemas/spruceCli/v2020_07_22/createOrganizationOptions.schema'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\n\ntype OptionsSchema =\n\tSpruceSchemas.SpruceCli.v2020_07_22.CreateOrganizationOptionsSchema\ntype Options = SpruceSchemas.SpruceCli.v2020_07_22.CreateOrganizationOptions\n\nexport default class CreateAction extends AbstractAction<OptionsSchema> {\n\tpublic optionsSchema = createOrganizationActionSchema\n\tpublic invocationMessage = 'Creating an organization... 🏙'\n\n\tpublic async execute(options: Options): Promise<FeatureActionResponse> {\n\t\tconst { nameReadable, nameKebab } =\n\t\t\tthis.validateAndNormalizeOptions(options)\n\n\t\tconst organization = await this.Store('organization').create({\n\t\t\tname: nameReadable,\n\t\t\tslug: nameKebab,\n\t\t})\n\n\t\treturn {\n\t\t\tmeta: {\n\t\t\t\torganization,\n\t\t\t},\n\t\t}\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;AACA;;;;;;IAOqBA,Y;;;;;;;;;;;;;;;sGACGC,qC;0GACI,gC;;;;;;;mGAE3B,iBAAqBC,OAArB;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAAA,wBAEE,KAAKC,2BAAL,CAAiCD,OAAjC,CAFF,EACSE,YADT,yBACSA,YADT,EACuBC,SADvB,yBACuBA,SADvB;gBAAA;gBAAA,OAI4B,KAAKC,KAAL,CAAW,cAAX,EAA2BC,MAA3B,CAAkC;kBAC5DC,IAAI,EAAEJ,YADsD;kBAE5DK,IAAI,EAAEJ;gBAFsD,CAAlC,CAJ5B;;cAAA;gBAIOK,YAJP;gBAAA,iCASQ;kBACNC,IAAI,EAAE;oBACLD,YAAY,EAAZA;kBADK;gBADA,CATR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EAJyCE,2B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"InstallAction.js","names":["InstallAction","installSkillAtOrganizationActionSchema","options","Store","loadCurrentSkill","skill","id","SpruceError","code","validateAndNormalizeOptions","organizationId","fetchMyOrganizations","orgs","length","ui","confirm","name","choices","map","o","value","label","prompt","type","isRequired","installSkillAtOrganization","summaryLines","errors","AbstractAction"],"sources":["../../../../src/features/organization/actions/InstallAction.ts"],"sourcesContent":["import { SelectChoice } from '@sprucelabs/schema'\nimport { SpruceSchemas } from '#spruce/schemas/schemas.types'\nimport installSkillAtOrganizationActionSchema from '#spruce/schemas/spruceCli/v2020_07_22/installSkillAtOrganizationOptions.schema'\nimport SpruceError from '../../../errors/SpruceError'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\n\ntype OptionsSchema =\n\tSpruceSchemas.SpruceCli.v2020_07_22.InstallSkillAtOrganizationOptionsSchema\ntype Options =\n\tSpruceSchemas.SpruceCli.v2020_07_22.InstallSkillAtOrganizationOptions\nexport default class InstallAction extends AbstractAction<OptionsSchema> {\n\tpublic commandAliases = ['install.skill']\n\tpublic optionsSchema: OptionsSchema = installSkillAtOrganizationActionSchema\n\tpublic invocationMessage = 'Installing skill at org... 🏙'\n\n\tpublic async execute(options: Options): Promise<FeatureActionResponse> {\n\t\ttry {\n\t\t\tconst skill = await this.Store('skill').loadCurrentSkill()\n\n\t\t\tif (!skill.id) {\n\t\t\t\tthrow new SpruceError({ code: 'SKILL_NOT_REGISTERED' })\n\t\t\t}\n\n\t\t\tlet { organizationId } = this.validateAndNormalizeOptions(options)\n\n\t\t\tif (!organizationId) {\n\t\t\t\tconst orgs = await this.Store('organization').fetchMyOrganizations()\n\n\t\t\t\tif (orgs.length === 0) {\n\t\t\t\t\tthrow new SpruceError({\n\t\t\t\t\t\tcode: 'NO_ORGANIZATIONS_FOUND',\n\t\t\t\t\t})\n\t\t\t\t}\n\n\t\t\t\tif (orgs.length === 1) {\n\t\t\t\t\tconst confirm = await this.ui.confirm(\n\t\t\t\t\t\t`You ready to install your skill at ${orgs[0].name}?`\n\t\t\t\t\t)\n\n\t\t\t\t\tif (!confirm) {\n\t\t\t\t\t\treturn {}\n\t\t\t\t\t}\n\n\t\t\t\t\torganizationId = orgs[0].id\n\t\t\t\t} else {\n\t\t\t\t\tconst choices: SelectChoice[] = orgs.map((o) => ({\n\t\t\t\t\t\tvalue: o.id,\n\t\t\t\t\t\tlabel: o.name,\n\t\t\t\t\t}))\n\n\t\t\t\t\torganizationId = await this.ui.prompt({\n\t\t\t\t\t\ttype: 'select',\n\t\t\t\t\t\tlabel: 'Which organization should we install your skill to?',\n\t\t\t\t\t\tisRequired: true,\n\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\tchoices,\n\t\t\t\t\t\t},\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tawait this.Store('organization').installSkillAtOrganization(\n\t\t\t\tskill.id,\n\t\t\t\torganizationId\n\t\t\t)\n\n\t\t\treturn {\n\t\t\t\tsummaryLines: ['Skill installed!'],\n\t\t\t}\n\t\t} catch (err) {\n\t\t\treturn {\n\t\t\t\terrors: [err],\n\t\t\t}\n\t\t}\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;;AACA;;AACA;;;;;;IAOqBA,a;;;;;;;;;;;;;;;uGACI,CAAC,eAAD,C;sGACcC,6C;0GACX,+B;;;;;;;mGAE3B,iBAAqBC,OAArB;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA;gBAAA,OAEsB,KAAKC,KAAL,CAAW,OAAX,EAAoBC,gBAApB,EAFtB;;cAAA;gBAEQC,KAFR;;gBAAA,IAIOA,KAAK,CAACC,EAJb;kBAAA;kBAAA;gBAAA;;gBAAA,MAKS,IAAIC,uBAAJ,CAAgB;kBAAEC,IAAI,EAAE;gBAAR,CAAhB,CALT;;cAAA;gBAAA,wBAQ2B,KAAKC,2BAAL,CAAiCP,OAAjC,CAR3B,EAQQQ,cARR,yBAQQA,cARR;;gBAAA,IAUOA,cAVP;kBAAA;kBAAA;gBAAA;;gBAAA;gBAAA,OAWsB,KAAKP,KAAL,CAAW,cAAX,EAA2BQ,oBAA3B,EAXtB;;cAAA;gBAWSC,IAXT;;gBAAA,MAaOA,IAAI,CAACC,MAAL,KAAgB,CAbvB;kBAAA;kBAAA;gBAAA;;gBAAA,MAcU,IAAIN,uBAAJ,CAAgB;kBACrBC,IAAI,EAAE;gBADe,CAAhB,CAdV;;cAAA;gBAAA,MAmBOI,IAAI,CAACC,MAAL,KAAgB,CAnBvB;kBAAA;kBAAA;gBAAA;;gBAAA;gBAAA,OAoB0B,KAAKC,EAAL,CAAQC,OAAR,8CACiBH,IAAI,CAAC,CAAD,CAAJ,CAAQI,IADzB,OApB1B;;cAAA;gBAoBUD,OApBV;;gBAAA,IAwBSA,OAxBT;kBAAA;kBAAA;gBAAA;;gBAAA,iCAyBY,EAzBZ;;cAAA;gBA4BIL,cAAc,GAAGE,IAAI,CAAC,CAAD,CAAJ,CAAQN,EAAzB;gBA5BJ;gBAAA;;cAAA;gBA8BUW,OA9BV,GA8BoCL,IAAI,CAACM,GAAL,CAAS,UAACC,CAAD;kBAAA,OAAQ;oBAChDC,KAAK,EAAED,CAAC,CAACb,EADuC;oBAEhDe,KAAK,EAAEF,CAAC,CAACH;kBAFuC,CAAR;gBAAA,CAAT,CA9BpC;gBAAA;gBAAA,OAmC2B,KAAKF,EAAL,CAAQQ,MAAR,CAAe;kBACrCC,IAAI,EAAE,QAD+B;kBAErCF,KAAK,EAAE,qDAF8B;kBAGrCG,UAAU,EAAE,IAHyB;kBAIrCtB,OAAO,EAAE;oBACRe,OAAO,EAAPA;kBADQ;gBAJ4B,CAAf,CAnC3B;;cAAA;gBAmCIP,cAnCJ;;cAAA;gBAAA;gBAAA,OA8CQ,KAAKP,KAAL,CAAW,cAAX,EAA2BsB,0BAA3B,CACLpB,KAAK,CAACC,EADD,EAELI,cAFK,CA9CR;;cAAA;gBAAA,iCAmDS;kBACNgB,YAAY,EAAE,CAAC,kBAAD;gBADR,CAnDT;;cAAA;gBAAA;gBAAA;gBAAA,iCAuDS;kBACNC,MAAM,EAAE;gBADF,CAvDT;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EAL0CC,2B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"OrganizationStore.js","names":["OrganizationStore","skillId","orgId","connectToApi","client","emit","target","organizationId","payload","results","eventResponseUtil","getFirstResponseOrThrow","isInstalled","shouldOnlyShowMine","organizations","values","name","slug","organization","AbstractStore"],"sources":["../../../../src/features/organization/stores/OrganizationStore.ts"],"sourcesContent":["import { eventResponseUtil } from '@sprucelabs/spruce-event-utils'\nimport AbstractStore from '../../../stores/AbstractStore'\n\nexport default class OrganizationStore extends AbstractStore {\n\tpublic name = 'organization'\n\n\tpublic async isSkillInstalledAtOrg(skillId: string, orgId: string) {\n\t\tconst client = await this.connectToApi()\n\t\tconst results = await client.emit('is-skill-installed::v2020_12_25', {\n\t\t\ttarget: {\n\t\t\t\torganizationId: orgId,\n\t\t\t},\n\t\t\tpayload: {\n\t\t\t\tskillId,\n\t\t\t},\n\t\t})\n\n\t\tconst { isInstalled } = eventResponseUtil.getFirstResponseOrThrow(results)\n\n\t\treturn isInstalled\n\t}\n\n\tpublic async installSkillAtOrganization(\n\t\tskillId: string,\n\t\torgId: any\n\t): Promise<void> {\n\t\tconst client = await this.connectToApi()\n\n\t\tconst results = await client.emit('install-skill::v2020_12_25', {\n\t\t\ttarget: {\n\t\t\t\torganizationId: orgId,\n\t\t\t},\n\t\t\tpayload: {\n\t\t\t\tskillId,\n\t\t\t},\n\t\t})\n\n\t\teventResponseUtil.getFirstResponseOrThrow(results)\n\t}\n\n\tpublic async fetchMyOrganizations() {\n\t\tconst client = await this.connectToApi()\n\t\tconst results = await client.emit('list-organizations::v2020_12_25', {\n\t\t\tpayload: {\n\t\t\t\tshouldOnlyShowMine: true,\n\t\t\t},\n\t\t})\n\n\t\tconst { organizations } = eventResponseUtil.getFirstResponseOrThrow(results)\n\n\t\treturn organizations\n\t}\n\n\tpublic async create(values: { name: string; slug?: string }) {\n\t\tconst { name, slug } = values\n\n\t\tconst client = await this.connectToApi()\n\n\t\tconst results = await client.emit('create-organization::v2020_12_25', {\n\t\t\tpayload: {\n\t\t\t\tname,\n\t\t\t\tslug,\n\t\t\t},\n\t\t})\n\n\t\tconst { organization } = eventResponseUtil.getFirstResponseOrThrow(results)\n\n\t\treturn organization\n\t}\n\n\tpublic async deleteOrganization(orgId: string) {\n\t\tconst client = await this.connectToApi()\n\n\t\tconst results = await client.emit('delete-organization::v2020_12_25', {\n\t\t\ttarget: {\n\t\t\t\torganizationId: orgId,\n\t\t\t},\n\t\t})\n\n\t\teventResponseUtil.getFirstResponseOrThrow(results)\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"PersonFeature.js","names":["PersonFeature","code","isRequired","diskUtil","resolvePath","__dirname","featureInstaller","isInstalled","AbstractFeature"],"sources":["../../../src/features/person/PersonFeature.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport AbstractFeature, { FeatureDependency } from '../AbstractFeature'\nimport { FeatureCode } from '../features.types'\n\ndeclare module '../../features/features.types' {\n\tinterface FeatureMap {\n\t\tperson: PersonFeature\n\t}\n}\n\nexport default class PersonFeature extends AbstractFeature {\n\tpublic code: FeatureCode = 'person'\n\tpublic nameReadable = 'Person'\n\tpublic description = 'Log in, log out, etc.'\n\tpublic dependencies: FeatureDependency[] = [\n\t\t{\n\t\t\tcode: 'skill',\n\t\t\tisRequired: true,\n\t\t},\n\t]\n\tpublic packageDependencies = []\n\n\tpublic actionsDir = diskUtil.resolvePath(__dirname, 'actions')\n\n\tpublic isInstalled = () => {\n\t\treturn this.featureInstaller.isInstalled('skill')\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;;;;;IASqBA,a;;;;;;;;;;;;;;;6FACO,Q;qGACL,Q;oGACD,uB;qGACsB,CAC1C;MACCC,IAAI,EAAE,OADP;MAECC,UAAU,EAAE;IAFb,CAD0C,C;4GAMd,E;mGAETC,2BAASC,WAAT,CAAqBC,SAArB,EAAgC,SAAhC,C;oGAEC,YAAM;MAC1B,OAAO,MAAKC,gBAAL,CAAsBC,WAAtB,CAAkC,OAAlC,CAAP;IACA,C;;;;;EAhByCC,4B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"LoginAction.js","names":["optionsSchema","id","description","fields","phone","type","label","isRequired","pin","LoginAction","options","validateAndNormalizeOptions","suppliedPin","loggedIn","connectToApi","shouldAuthAsLoggedInPerson","client","emit","payload","requestPinResults","eventResponseUtil","getFirstResponseOrThrow","challenge","response","ui","prompt","confirmPinResults","person","token","loggedInPerson","Service","setLoggedInPerson","meta","summaryLines","casualName","err","renderWarning","AbstractAction"],"sources":["../../../../src/features/person/actions/LoginAction.ts"],"sourcesContent":["import { buildSchema, SchemaValues } from '@sprucelabs/schema'\nimport { eventResponseUtil } from '@sprucelabs/spruce-event-utils'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\n\nconst optionsSchema = buildSchema({\n\tid: 'loginAction',\n\tdescription:\n\t\t'Authenticate as a person. From here, you can begin creating skill, organizations, conversation topics, etc.',\n\tfields: {\n\t\tphone: {\n\t\t\ttype: 'phone',\n\t\t\tlabel: 'Phone number',\n\t\t\tisRequired: true,\n\t\t},\n\t\tpin: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Pin',\n\t\t},\n\t},\n})\ntype OptionsSchema = typeof optionsSchema\ntype Options = SchemaValues<OptionsSchema>\n\nexport default class LoginAction extends AbstractAction<OptionsSchema> {\n\tpublic optionsSchema: OptionsSchema = optionsSchema\n\tpublic commandAliases = ['login']\n\tpublic invocationMessage = 'Logging in... 🤝'\n\n\tpublic async execute(options: Options): Promise<FeatureActionResponse> {\n\t\tconst { phone, pin: suppliedPin } =\n\t\t\tthis.validateAndNormalizeOptions(options)\n\t\tlet loggedIn = false\n\n\t\tconst client = await this.connectToApi({\n\t\t\tshouldAuthAsLoggedInPerson: false,\n\t\t})\n\n\t\tconst requestPinResults = await client.emit('request-pin::v2020_12_25', {\n\t\t\tpayload: { phone },\n\t\t})\n\n\t\tconst { challenge } =\n\t\t\teventResponseUtil.getFirstResponseOrThrow(requestPinResults)\n\n\t\tconst response: FeatureActionResponse = {}\n\n\t\tdo {\n\t\t\tconst pin =\n\t\t\t\tsuppliedPin ??\n\t\t\t\t(await this.ui.prompt({\n\t\t\t\t\ttype: 'text',\n\t\t\t\t\tlabel: 'Pin',\n\t\t\t\t\tisRequired: true,\n\t\t\t\t}))\n\n\t\t\tconst confirmPinResults = await client.emit('confirm-pin::v2020_12_25', {\n\t\t\t\tpayload: { challenge, pin },\n\t\t\t})\n\n\t\t\ttry {\n\t\t\t\tconst { person, token } =\n\t\t\t\t\teventResponseUtil.getFirstResponseOrThrow(confirmPinResults)\n\n\t\t\t\tconst loggedInPerson = { ...person, token }\n\n\t\t\t\tthis.Service('auth').setLoggedInPerson(loggedInPerson)\n\n\t\t\t\tloggedIn = true\n\n\t\t\t\tresponse.meta = { loggedInPerson }\n\t\t\t\tresponse.summaryLines = [`Logged in as ${loggedInPerson.casualName}`]\n\t\t\t} catch (err) {\n\t\t\t\tthis.ui.renderWarning('Oops, bad pin. Try again please! 🙏')\n\t\t\t}\n\t\t} while (!loggedIn)\n\n\t\treturn response\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;;;;;AAGA,IAAMA,aAAa,GAAG,yBAAY;EACjCC,EAAE,EAAE,aAD6B;EAEjCC,WAAW,EACV,6GAHgC;EAIjCC,MAAM,EAAE;IACPC,KAAK,EAAE;MACNC,IAAI,EAAE,OADA;MAENC,KAAK,EAAE,cAFD;MAGNC,UAAU,EAAE;IAHN,CADA;IAMPC,GAAG,EAAE;MACJH,IAAI,EAAE,MADF;MAEJC,KAAK,EAAE;IAFH;EANE;AAJyB,CAAZ,CAAtB;;IAmBqBG,W;;;;;;;;;;;;;;;sGACkBT,a;uGACd,CAAC,OAAD,C;0GACG,kB;;;;;;;mGAE3B,iBAAqBU,OAArB;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAAA,wBAEE,KAAKC,2BAAL,CAAiCD,OAAjC,CAFF,EACSN,KADT,yBACSA,KADT,EACqBQ,WADrB,yBACgBJ,GADhB;gBAGKK,QAHL,GAGgB,KAHhB;gBAAA;gBAAA,OAKsB,KAAKC,YAAL,CAAkB;kBACtCC,0BAA0B,EAAE;gBADU,CAAlB,CALtB;;cAAA;gBAKOC,MALP;gBAAA;gBAAA,OASiCA,MAAM,CAACC,IAAP,CAAY,0BAAZ,EAAwC;kBACvEC,OAAO,EAAE;oBAAEd,KAAK,EAALA;kBAAF;gBAD8D,CAAxC,CATjC;;cAAA;gBASOe,iBATP;gBAAA,wBAcEC,oCAAkBC,uBAAlB,CAA0CF,iBAA1C,CAdF,EAaSG,SAbT,yBAaSA,SAbT;gBAgBOC,QAhBP,GAgByC,EAhBzC;;cAAA;gBAAA,MAoBGX,WApBH,aAoBGA,WApBH;kBAAA;kBAAA;gBAAA;;gBAAA,cAoBGA,WApBH;gBAAA;gBAAA;;cAAA;gBAAA;gBAAA,OAqBU,KAAKY,EAAL,CAAQC,MAAR,CAAe;kBACrBpB,IAAI,EAAE,MADe;kBAErBC,KAAK,EAAE,KAFc;kBAGrBC,UAAU,EAAE;gBAHS,CAAf,CArBV;;cAAA;gBAAA;;cAAA;gBAmBQC,GAnBR;gBAAA;gBAAA,OA2BkCQ,MAAM,CAACC,IAAP,CAAY,0BAAZ,EAAwC;kBACvEC,OAAO,EAAE;oBAAEI,SAAS,EAATA,SAAF;oBAAad,GAAG,EAAHA;kBAAb;gBAD8D,CAAxC,CA3BlC;;cAAA;gBA2BQkB,iBA3BR;;gBA+BE,IAAI;kBAAA,yBAEFN,oCAAkBC,uBAAlB,CAA0CK,iBAA1C,CAFE,EACKC,MADL,0BACKA,MADL,EACaC,KADb,0BACaA,KADb;kBAIGC,cAJH,mCAIyBF,MAJzB;oBAIiCC,KAAK,EAALA;kBAJjC;kBAMH,KAAKE,OAAL,CAAa,MAAb,EAAqBC,iBAArB,CAAuCF,cAAvC;kBAEAhB,QAAQ,GAAG,IAAX;kBAEAU,QAAQ,CAACS,IAAT,GAAgB;oBAAEH,cAAc,EAAdA;kBAAF,CAAhB;kBACAN,QAAQ,CAACU,YAAT,GAAwB,wBAAiBJ,cAAc,CAACK,UAAhC,EAAxB;gBACA,CAZD,CAYE,OAAOC,GAAP,EAAY;kBACb,KAAKX,EAAL,CAAQY,aAAR,CAAsB,qCAAtB;gBACA;;cA7CH;gBAAA,IA8CU,CAACvB,QA9CX;kBAAA;kBAAA;gBAAA;;cAAA;gBAAA,iCAgDQU,QAhDR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EALwCc,2B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"LogoutAction.js","names":["optionsSchema","id","description","fields","LogoutAction","auth","Service","person","getLoggedInPerson","errors","SpruceError","code","logOutPerson","summaryLines","AbstractAction"],"sources":["../../../../src/features/person/actions/LogoutAction.ts"],"sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\nimport SpruceError from '../../../errors/SpruceError'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\n\nconst optionsSchema = buildSchema({\n\tid: 'logoutAction',\n\tdescription: 'Logout as a person.',\n\tfields: {},\n})\ntype OptionsSchema = typeof optionsSchema\n\nexport default class LogoutAction extends AbstractAction<OptionsSchema> {\n\tpublic optionsSchema: OptionsSchema = optionsSchema\n\tpublic commandAliases = ['logout']\n\tpublic invocationMessage = 'Logging out... 🤝'\n\n\tpublic async execute(): Promise<FeatureActionResponse> {\n\t\tconst auth = this.Service('auth')\n\t\tconst person = auth.getLoggedInPerson()\n\n\t\tif (!person) {\n\t\t\treturn {\n\t\t\t\terrors: [\n\t\t\t\t\tnew SpruceError({\n\t\t\t\t\t\tcode: 'NOT_LOGGED_IN',\n\t\t\t\t\t}),\n\t\t\t\t],\n\t\t\t}\n\t\t}\n\n\t\tauth.logOutPerson()\n\n\t\treturn {\n\t\t\tsummaryLines: ['You have been logged out!'],\n\t\t}\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;AAGA,IAAMA,aAAa,GAAG,yBAAY;EACjCC,EAAE,EAAE,cAD6B;EAEjCC,WAAW,EAAE,qBAFoB;EAGjCC,MAAM,EAAE;AAHyB,CAAZ,CAAtB;;IAOqBC,Y;;;;;;;;;;;;;;;sGACkBJ,a;uGACd,CAAC,QAAD,C;0GACG,mB;;;;;;;mGAE3B;QAAA;QAAA;UAAA;YAAA;cAAA;gBACOK,IADP,GACc,KAAKC,OAAL,CAAa,MAAb,CADd;gBAEOC,MAFP,GAEgBF,IAAI,CAACG,iBAAL,EAFhB;;gBAAA,IAIMD,MAJN;kBAAA;kBAAA;gBAAA;;gBAAA,iCAKS;kBACNE,MAAM,EAAE,CACP,IAAIC,uBAAJ,CAAgB;oBACfC,IAAI,EAAE;kBADS,CAAhB,CADO;gBADF,CALT;;cAAA;gBAcCN,IAAI,CAACO,YAAL;gBAdD,iCAgBQ;kBACNC,YAAY,EAAE,CAAC,2BAAD;gBADR,CAhBR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EALyCC,2B"}
|