@sprucelabs/spruce-cli 15.4.11 → 17.0.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/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/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/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/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/GlobalEmitter.js.map +1 -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.map +1 -1
- package/build/__tests__/behavioral/DeployingToSandbox.test.js.map +1 -1
- 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.map +1 -1
- package/build/__tests__/behavioral/ListeningToCoreEvents.test.js.map +1 -1
- 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.map +1 -1
- package/build/__tests__/behavioral/RegisteringConversationsOnBoot.test.js.map +1 -1
- package/build/__tests__/behavioral/RegisteringEventsOnBoot.test.js.map +1 -1
- package/build/__tests__/behavioral/RegisteringGlobalEvents.test.js.map +1 -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.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.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.js.map +1 -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.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.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.map +1 -1
- package/build/__tests__/behavioral/stores/KeepingDataStoresInSync.test.js.map +1 -1
- package/build/__tests__/behavioral/tests/CreatingATest.test.js +3 -3
- 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.js.map +1 -1
- package/build/__tests__/behavioral/tests/SettingUpTests.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpdatingDependencies.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpdatingDependencies2.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingANodeModule.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingASkill2.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingASkill3.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingASkill4.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingASkill5.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingWithListeners.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingWithSandboxFeatureInstalled.test.js.map +1 -1
- package/build/__tests__/behavioral/views/CreatingASkillView.test.js +1 -1
- 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.map +1 -1
- package/build/__tests__/implementation/ActionExecuter3.test.js.map +1 -1
- 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.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.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.map +1 -1
- package/build/__tests__/implementation/ListenerStore.test.js.map +1 -1
- 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.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.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/scripts/first.script.js.map +1 -1
- package/build/addons/filePrompt.addon.js.map +1 -1
- package/build/cli.js.map +1 -1
- package/build/components/FormComponent.js.map +1 -1
- package/build/components/QuizComponent.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/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/conversation/ConversationFeature.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.js.map +1 -1
- package/build/features/event/actions/CreateAction.js.map +1 -1
- package/build/features/event/actions/ListenAction.js.map +1 -1
- package/build/features/event/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/stores/EventStore.js.map +1 -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/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/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/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/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.d.ts +2 -1
- package/build/features/schema/stores/SchemaStore.js +2 -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.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.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/writers/TestWriter.js.map +1 -1
- 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/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 +0 -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/CommandService.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/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.js.map +1 -1
- package/build/tests/AbstractEventTest.js.map +1 -1
- package/build/tests/AbstractSchemaTest.js.map +1 -1
- package/build/tests/AbstractTestTest.js.map +1 -1
- package/build/tests/CommandFaker.js.map +1 -1
- package/build/tests/JestJsonParser.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.map +1 -1
- package/build/tests/fixtures/FeatureFixture.js.map +1 -1
- package/build/tests/fixtures/MercuryFixture.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/utilities/test.utility.js.map +1 -1
- package/build/tests/utilities/uiAssert.utility.js.map +1 -1
- package/build/utilities/action.utility.js.map +1 -1
- package/build/utilities/commander.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/tsConfig.utility.js.map +1 -1
- package/build/widgets/Theme.js.map +1 -1
- package/build/widgets/WidgetFactory.js.map +1 -1
- package/build/widgets/terminalKit/TKButtonWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkInputWidget.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/TkTextWidget.js.map +1 -1
- package/build/widgets/terminalKit/termKit.utility.js.map +1 -1
- package/build/widgets/types/input.types.js.map +1 -1
- package/build/widgets/types/menuBar.types.js.map +1 -1
- package/build/widgets/types/text.types.js.map +1 -1
- package/build/widgets/types/window.types.js.map +1 -1
- package/build/writers/AbstractWriter.js.map +1 -1
- package/package.json +36 -36
- package/src/__tests__/behavioral/views/CreatingASkillView.test.ts +3 -2
- package/src/features/schema/stores/SchemaStore.ts +4 -2
- package/build/.spruce/schemas/spruce/v2020_07_22/fullMessageChoices.schema.d.ts +0 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/fullMessageChoices.schema.js +0 -14
- package/build/.spruce/schemas/spruce/v2020_07_22/fullMessageChoices.schema.js.map +0 -1
- package/src/.spruce/schemas/spruce/v2020_07_22/fullMessageChoices.schema.ts +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchemaWriter.js","names":["SchemaWriter","filename","templateFuncName","description","destinationDir","options","ui","startLoading","nameCamel","resolvedBuilderDestination","shouldEnableVersioning","pathUtil","resolve","versionUtil","resolveNewLatestPath","version","LATEST_HANDLEBARS","diskUtil","doesFileExist","SpruceError","code","schemaId","destination","builderContent","templates","schemaBuilder","writeFileIfChangedMixinResults","results","lint","fieldTemplateItems","fieldTemplates","fileAndFunc","resolvedDestination","path","join","contents","destinationDirOrFilename","schemaTemplateItems","valueTypes","typesTemplate","resolvedTypesDestination","resolveFilenameWithFallback","DEFAULT_SCHEMA_TYPES_FILENAME","localItems","filter","i","importFrom","length","schemaTypesContents","schemasTypes","globalSchemaNamespace","writeAllSchemas","dirname","typesFile","allSchemaResults","push","item","writeSchema","schemaResults","registerBuiltSchemas","schemaDiskUtil","resolvePath","schema","resolveRelativePath","undefined","replace","extname","schemaContents","schemaFile","shouldImportCoreSchemas","id","cwd","resolveHashSprucePath","pluginContents","schemaPlugin","AbstractWriter"],"sources":["../../../../src/features/schema/writers/SchemaWriter.ts"],"sourcesContent":["import path from 'path'\nimport pathUtil from 'path'\nimport { FieldTemplateItem, SchemaTemplateItem } from '@sprucelabs/schema'\nimport { versionUtil } from '@sprucelabs/spruce-skill-utils'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport {\n\tLATEST_HANDLEBARS,\n\tDEFAULT_SCHEMA_TYPES_FILENAME,\n} from '@sprucelabs/spruce-skill-utils'\nimport {\n\tSchemaBuilderTemplateItem,\n\tValueTypes,\n} from '@sprucelabs/spruce-templates'\nimport SpruceError from '../../../errors/SpruceError'\nimport AbstractWriter, { WriteResults } from '../../../writers/AbstractWriter'\nimport schemaDiskUtil from '../utilities/schemaDisk.utility'\n\ninterface WriteFieldTypesOptions {\n\tfieldTemplateItems: FieldTemplateItem[]\n}\n\n// eslint-disable-next-line no-redeclare\nexport interface GenerateSchemaTypesOptions {\n\tfieldTemplateItems: FieldTemplateItem[]\n\tschemaTemplateItems: SchemaTemplateItem[]\n\tvalueTypes: ValueTypes\n\tglobalSchemaNamespace?: string\n\ttypesTemplate?: string\n\tregisterBuiltSchemas?: boolean\n\tshouldImportCoreSchemas: boolean\n}\n\nexport default class SchemaWriter extends AbstractWriter {\n\tprivate readonly fieldTemplates: {\n\t\tfilename: string\n\t\ttemplateFuncName: 'fieldsTypes' | 'fieldClassMap'\n\t\tdescription: string\n\t}[] = [\n\t\t{\n\t\t\tfilename: 'fields.types.ts',\n\t\t\ttemplateFuncName: 'fieldsTypes',\n\t\t\tdescription:\n\t\t\t\t'All the interfaces generated for every type of schema field (text, number, address, etc).',\n\t\t},\n\t\t{\n\t\t\tfilename: 'fieldClassMap.ts',\n\t\t\ttemplateFuncName: 'fieldClassMap',\n\t\t\tdescription:\n\t\t\t\t'An object that is injected into the FieldFactory and ensures 3rd party fields are integrated.',\n\t\t},\n\t]\n\n\tpublic async writeBuilder(\n\t\tdestinationDir: string,\n\t\toptions: SchemaBuilderTemplateItem & {\n\t\t\tshouldEnableVersioning?: boolean\n\t\t\tversion?: string\n\t\t}\n\t): Promise<WriteResults> {\n\t\tthis.ui.startLoading('Writing builder...')\n\n\t\tconst filename = `${options.nameCamel}.builder.ts`\n\n\t\tconst resolvedBuilderDestination =\n\t\t\toptions.shouldEnableVersioning === false\n\t\t\t\t? pathUtil.resolve(destinationDir, filename)\n\t\t\t\t: versionUtil.resolveNewLatestPath(\n\t\t\t\t\t\tdestinationDir,\n\t\t\t\t\t\toptions.version ?? LATEST_HANDLEBARS,\n\t\t\t\t\t\tfilename\n\t\t\t\t )\n\n\t\tif (diskUtil.doesFileExist(resolvedBuilderDestination)) {\n\t\t\tthrow new SpruceError({\n\t\t\t\tcode: 'SCHEMA_EXISTS',\n\t\t\t\tschemaId: options.nameCamel,\n\t\t\t\tdestination: destinationDir,\n\t\t\t})\n\t\t}\n\n\t\tconst builderContent = this.templates.schemaBuilder(options)\n\n\t\tconst results = await this.writeFileIfChangedMixinResults(\n\t\t\tresolvedBuilderDestination,\n\t\t\tbuilderContent,\n\t\t\t'The source of truth for building your schemas and their types. Run spruce sync.errors when you change this.'\n\t\t)\n\n\t\tawait this.lint(resolvedBuilderDestination)\n\n\t\treturn results\n\t}\n\n\tpublic async writeFieldTypes(\n\t\tdestinationDir: string,\n\t\toptions: WriteFieldTypesOptions\n\t): Promise<WriteResults> {\n\t\tthis.ui.startLoading('Checking schema field types...')\n\n\t\tconst { fieldTemplateItems } = options\n\n\t\tlet results: WriteResults = []\n\n\t\tfor (const fileAndFunc of this.fieldTemplates) {\n\t\t\tconst { filename, templateFuncName, description } = fileAndFunc\n\n\t\t\tconst resolvedDestination = path.join(destinationDir, 'fields', filename)\n\n\t\t\tconst contents = this.templates[templateFuncName]({\n\t\t\t\tfieldTemplateItems,\n\t\t\t})\n\n\t\t\tresults = await this.writeFileIfChangedMixinResults(\n\t\t\t\tresolvedDestination,\n\t\t\t\tcontents,\n\t\t\t\tdescription,\n\t\t\t\tresults\n\t\t\t)\n\t\t}\n\n\t\treturn results\n\t}\n\n\tpublic async writeSchemasAndTypes(\n\t\tdestinationDirOrFilename: string,\n\t\toptions: GenerateSchemaTypesOptions\n\t): Promise<WriteResults> {\n\t\tconst {\n\t\t\tfieldTemplateItems,\n\t\t\tschemaTemplateItems,\n\t\t\tvalueTypes,\n\t\t\ttypesTemplate,\n\t\t} = options\n\n\t\tconst resolvedTypesDestination = this.resolveFilenameWithFallback(\n\t\t\tdestinationDirOrFilename,\n\t\t\tDEFAULT_SCHEMA_TYPES_FILENAME\n\t\t)\n\n\t\tlet results: WriteResults = []\n\t\tthis.ui.startLoading('Generating schema types...')\n\n\t\tconst localItems = schemaTemplateItems.filter((i) => !i.importFrom)\n\n\t\tif (localItems.length > 0) {\n\t\t\tconst schemaTypesContents = this.templates.schemasTypes({\n\t\t\t\tschemaTemplateItems: localItems,\n\t\t\t\tfieldTemplateItems,\n\t\t\t\tvalueTypes,\n\t\t\t\tglobalSchemaNamespace: options.globalSchemaNamespace,\n\t\t\t\ttypesTemplate,\n\t\t\t})\n\n\t\t\tresults = await this.writeFileIfChangedMixinResults(\n\t\t\t\tresolvedTypesDestination,\n\t\t\t\tschemaTypesContents,\n\t\t\t\t'Namespace for accessing all your schemas. Type `SpruceSchemas` in your IDE to get started. ⚡️'\n\t\t\t)\n\n\t\t\tawait this.lint(resolvedTypesDestination)\n\t\t}\n\n\t\tthis.ui.startLoading(\n\t\t\t`Checking ${schemaTemplateItems.length} schemas for changes...`\n\t\t)\n\n\t\tconst allSchemaResults = await this.writeAllSchemas(\n\t\t\tpathUtil.dirname(resolvedTypesDestination),\n\t\t\t{\n\t\t\t\t...options,\n\t\t\t\ttypesFile: resolvedTypesDestination,\n\t\t\t}\n\t\t)\n\n\t\tresults.push(...allSchemaResults)\n\n\t\treturn results\n\t}\n\n\tprivate async writeAllSchemas(\n\t\tdestinationDir: string,\n\t\toptions: GenerateSchemaTypesOptions & { typesFile?: string }\n\t): Promise<WriteResults> {\n\t\tconst results: WriteResults = []\n\n\t\tfor (const item of options.schemaTemplateItems) {\n\t\t\tconst schemaResults = await this.writeSchema(destinationDir, {\n\t\t\t\t...options,\n\t\t\t\t...item,\n\t\t\t})\n\t\t\tresults.push(...schemaResults)\n\t\t}\n\n\t\treturn results\n\t}\n\n\tpublic async writeSchema(\n\t\tdestinationDir: string,\n\t\toptions: {\n\t\t\tschemaTemplateItems: SchemaTemplateItem[]\n\t\t\tfieldTemplateItems: FieldTemplateItem[]\n\t\t\tvalueTypes: ValueTypes\n\t\t\ttypesFile?: string\n\t\t\tregisterBuiltSchemas?: boolean\n\t\t\tshouldImportCoreSchemas: boolean\n\t\t} & SchemaTemplateItem\n\t) {\n\t\tconst {\n\t\t\tschemaTemplateItems,\n\t\t\tfieldTemplateItems,\n\t\t\tvalueTypes,\n\t\t\tregisterBuiltSchemas = true,\n\t\t\t...item\n\t\t} = options\n\n\t\tconst resolvedDestination = schemaDiskUtil.resolvePath({\n\t\t\tdestination: destinationDir,\n\t\t\tschema: options.schema,\n\t\t})\n\n\t\tlet typesFile = options.typesFile\n\t\t\t? diskUtil.resolveRelativePath(\n\t\t\t\t\tpathUtil.dirname(resolvedDestination),\n\t\t\t\t\toptions.typesFile\n\t\t\t )\n\t\t\t: undefined\n\n\t\tif (typesFile) {\n\t\t\ttypesFile = typesFile.replace(pathUtil.extname(typesFile), '')\n\t\t}\n\n\t\tconst schemaContents = this.templates.schema({\n\t\t\t...item,\n\t\t\tregisterBuiltSchemas,\n\t\t\tschemaTemplateItems,\n\t\t\tfieldTemplateItems,\n\t\t\tvalueTypes,\n\t\t\ttypesFile,\n\t\t\tschemaFile:\n\t\t\t\titem.importFrom && options.shouldImportCoreSchemas\n\t\t\t\t\t? `schema/imported.schema.ts.hbs`\n\t\t\t\t\t: undefined,\n\t\t})\n\n\t\treturn this.writeFileIfChangedMixinResults(\n\t\t\tresolvedDestination,\n\t\t\tschemaContents,\n\t\t\t`${\n\t\t\t\titem.schema.description ? `${item.schema.description} ` : ''\n\t\t\t}This is the schema generated by ${\n\t\t\t\titem.id\n\t\t\t}.builder.ts. AUTOGENERATED. DO NOT EDIT.`\n\t\t)\n\t}\n\n\tpublic async writeValueTypes(\n\t\tdestinationDir: string,\n\t\toptions: {\n\t\t\tschemaTemplateItems: SchemaTemplateItem[]\n\t\t\tfieldTemplateItems: FieldTemplateItem[]\n\t\t\tglobalSchemaNamespace?: string\n\t\t}\n\t): Promise<WriteResults> {\n\t\tconst contents = this.templates.valueTypes(options)\n\t\tconst destination = pathUtil.join(destinationDir, 'tmp', 'valueType.tmp.ts')\n\n\t\treturn this.writeFileIfChangedMixinResults(\n\t\t\tdestination,\n\t\t\tcontents,\n\t\t\t'For constructing what goes to the right of the : after each property in the interface.'\n\t\t)\n\t}\n\n\tpublic writePlugin(cwd: string) {\n\t\tconst destination = diskUtil.resolveHashSprucePath(\n\t\t\tcwd,\n\t\t\t'features',\n\t\t\t'schema.plugin.ts'\n\t\t)\n\n\t\tconst pluginContents = this.templates.schemaPlugin()\n\n\t\tconst results = this.writeFileIfChangedMixinResults(\n\t\t\tdestination,\n\t\t\tpluginContents,\n\t\t\t'Enable schema support in your skill.'\n\t\t)\n\n\t\treturn results\n\t}\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SchemaWriter.js","names":["SchemaWriter","filename","templateFuncName","description","destinationDir","options","ui","startLoading","nameCamel","resolvedBuilderDestination","shouldEnableVersioning","pathUtil","resolve","versionUtil","resolveNewLatestPath","version","LATEST_HANDLEBARS","diskUtil","doesFileExist","SpruceError","code","schemaId","destination","builderContent","templates","schemaBuilder","writeFileIfChangedMixinResults","results","lint","fieldTemplateItems","fieldTemplates","fileAndFunc","resolvedDestination","path","join","contents","destinationDirOrFilename","schemaTemplateItems","valueTypes","typesTemplate","resolvedTypesDestination","resolveFilenameWithFallback","DEFAULT_SCHEMA_TYPES_FILENAME","localItems","filter","i","importFrom","length","schemaTypesContents","schemasTypes","globalSchemaNamespace","writeAllSchemas","dirname","typesFile","allSchemaResults","push","item","writeSchema","schemaResults","registerBuiltSchemas","schemaDiskUtil","resolvePath","schema","resolveRelativePath","undefined","replace","extname","schemaContents","schemaFile","shouldImportCoreSchemas","id","cwd","resolveHashSprucePath","pluginContents","schemaPlugin","AbstractWriter"],"sources":["../../../../src/features/schema/writers/SchemaWriter.ts"],"sourcesContent":["import path from 'path'\nimport pathUtil from 'path'\nimport { FieldTemplateItem, SchemaTemplateItem } from '@sprucelabs/schema'\nimport { versionUtil } from '@sprucelabs/spruce-skill-utils'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport {\n\tLATEST_HANDLEBARS,\n\tDEFAULT_SCHEMA_TYPES_FILENAME,\n} from '@sprucelabs/spruce-skill-utils'\nimport {\n\tSchemaBuilderTemplateItem,\n\tValueTypes,\n} from '@sprucelabs/spruce-templates'\nimport SpruceError from '../../../errors/SpruceError'\nimport AbstractWriter, { WriteResults } from '../../../writers/AbstractWriter'\nimport schemaDiskUtil from '../utilities/schemaDisk.utility'\n\ninterface WriteFieldTypesOptions {\n\tfieldTemplateItems: FieldTemplateItem[]\n}\n\n// eslint-disable-next-line no-redeclare\nexport interface GenerateSchemaTypesOptions {\n\tfieldTemplateItems: FieldTemplateItem[]\n\tschemaTemplateItems: SchemaTemplateItem[]\n\tvalueTypes: ValueTypes\n\tglobalSchemaNamespace?: string\n\ttypesTemplate?: string\n\tregisterBuiltSchemas?: boolean\n\tshouldImportCoreSchemas: boolean\n}\n\nexport default class SchemaWriter extends AbstractWriter {\n\tprivate readonly fieldTemplates: {\n\t\tfilename: string\n\t\ttemplateFuncName: 'fieldsTypes' | 'fieldClassMap'\n\t\tdescription: string\n\t}[] = [\n\t\t{\n\t\t\tfilename: 'fields.types.ts',\n\t\t\ttemplateFuncName: 'fieldsTypes',\n\t\t\tdescription:\n\t\t\t\t'All the interfaces generated for every type of schema field (text, number, address, etc).',\n\t\t},\n\t\t{\n\t\t\tfilename: 'fieldClassMap.ts',\n\t\t\ttemplateFuncName: 'fieldClassMap',\n\t\t\tdescription:\n\t\t\t\t'An object that is injected into the FieldFactory and ensures 3rd party fields are integrated.',\n\t\t},\n\t]\n\n\tpublic async writeBuilder(\n\t\tdestinationDir: string,\n\t\toptions: SchemaBuilderTemplateItem & {\n\t\t\tshouldEnableVersioning?: boolean\n\t\t\tversion?: string\n\t\t}\n\t): Promise<WriteResults> {\n\t\tthis.ui.startLoading('Writing builder...')\n\n\t\tconst filename = `${options.nameCamel}.builder.ts`\n\n\t\tconst resolvedBuilderDestination =\n\t\t\toptions.shouldEnableVersioning === false\n\t\t\t\t? pathUtil.resolve(destinationDir, filename)\n\t\t\t\t: versionUtil.resolveNewLatestPath(\n\t\t\t\t\t\tdestinationDir,\n\t\t\t\t\t\toptions.version ?? LATEST_HANDLEBARS,\n\t\t\t\t\t\tfilename\n\t\t\t\t )\n\n\t\tif (diskUtil.doesFileExist(resolvedBuilderDestination)) {\n\t\t\tthrow new SpruceError({\n\t\t\t\tcode: 'SCHEMA_EXISTS',\n\t\t\t\tschemaId: options.nameCamel,\n\t\t\t\tdestination: destinationDir,\n\t\t\t})\n\t\t}\n\n\t\tconst builderContent = this.templates.schemaBuilder(options)\n\n\t\tconst results = await this.writeFileIfChangedMixinResults(\n\t\t\tresolvedBuilderDestination,\n\t\t\tbuilderContent,\n\t\t\t'The source of truth for building your schemas and their types. Run spruce sync.errors when you change this.'\n\t\t)\n\n\t\tawait this.lint(resolvedBuilderDestination)\n\n\t\treturn results\n\t}\n\n\tpublic async writeFieldTypes(\n\t\tdestinationDir: string,\n\t\toptions: WriteFieldTypesOptions\n\t): Promise<WriteResults> {\n\t\tthis.ui.startLoading('Checking schema field types...')\n\n\t\tconst { fieldTemplateItems } = options\n\n\t\tlet results: WriteResults = []\n\n\t\tfor (const fileAndFunc of this.fieldTemplates) {\n\t\t\tconst { filename, templateFuncName, description } = fileAndFunc\n\n\t\t\tconst resolvedDestination = path.join(destinationDir, 'fields', filename)\n\n\t\t\tconst contents = this.templates[templateFuncName]({\n\t\t\t\tfieldTemplateItems,\n\t\t\t})\n\n\t\t\tresults = await this.writeFileIfChangedMixinResults(\n\t\t\t\tresolvedDestination,\n\t\t\t\tcontents,\n\t\t\t\tdescription,\n\t\t\t\tresults\n\t\t\t)\n\t\t}\n\n\t\treturn results\n\t}\n\n\tpublic async writeSchemasAndTypes(\n\t\tdestinationDirOrFilename: string,\n\t\toptions: GenerateSchemaTypesOptions\n\t): Promise<WriteResults> {\n\t\tconst {\n\t\t\tfieldTemplateItems,\n\t\t\tschemaTemplateItems,\n\t\t\tvalueTypes,\n\t\t\ttypesTemplate,\n\t\t} = options\n\n\t\tconst resolvedTypesDestination = this.resolveFilenameWithFallback(\n\t\t\tdestinationDirOrFilename,\n\t\t\tDEFAULT_SCHEMA_TYPES_FILENAME\n\t\t)\n\n\t\tlet results: WriteResults = []\n\t\tthis.ui.startLoading('Generating schema types...')\n\n\t\tconst localItems = schemaTemplateItems.filter((i) => !i.importFrom)\n\n\t\tif (localItems.length > 0) {\n\t\t\tconst schemaTypesContents = this.templates.schemasTypes({\n\t\t\t\tschemaTemplateItems: localItems,\n\t\t\t\tfieldTemplateItems,\n\t\t\t\tvalueTypes,\n\t\t\t\tglobalSchemaNamespace: options.globalSchemaNamespace,\n\t\t\t\ttypesTemplate,\n\t\t\t})\n\n\t\t\tresults = await this.writeFileIfChangedMixinResults(\n\t\t\t\tresolvedTypesDestination,\n\t\t\t\tschemaTypesContents,\n\t\t\t\t'Namespace for accessing all your schemas. Type `SpruceSchemas` in your IDE to get started. ⚡️'\n\t\t\t)\n\n\t\t\tawait this.lint(resolvedTypesDestination)\n\t\t}\n\n\t\tthis.ui.startLoading(\n\t\t\t`Checking ${schemaTemplateItems.length} schemas for changes...`\n\t\t)\n\n\t\tconst allSchemaResults = await this.writeAllSchemas(\n\t\t\tpathUtil.dirname(resolvedTypesDestination),\n\t\t\t{\n\t\t\t\t...options,\n\t\t\t\ttypesFile: resolvedTypesDestination,\n\t\t\t}\n\t\t)\n\n\t\tresults.push(...allSchemaResults)\n\n\t\treturn results\n\t}\n\n\tprivate async writeAllSchemas(\n\t\tdestinationDir: string,\n\t\toptions: GenerateSchemaTypesOptions & { typesFile?: string }\n\t): Promise<WriteResults> {\n\t\tconst results: WriteResults = []\n\n\t\tfor (const item of options.schemaTemplateItems) {\n\t\t\tconst schemaResults = await this.writeSchema(destinationDir, {\n\t\t\t\t...options,\n\t\t\t\t...item,\n\t\t\t})\n\t\t\tresults.push(...schemaResults)\n\t\t}\n\n\t\treturn results\n\t}\n\n\tpublic async writeSchema(\n\t\tdestinationDir: string,\n\t\toptions: {\n\t\t\tschemaTemplateItems: SchemaTemplateItem[]\n\t\t\tfieldTemplateItems: FieldTemplateItem[]\n\t\t\tvalueTypes: ValueTypes\n\t\t\ttypesFile?: string\n\t\t\tregisterBuiltSchemas?: boolean\n\t\t\tshouldImportCoreSchemas: boolean\n\t\t} & SchemaTemplateItem\n\t) {\n\t\tconst {\n\t\t\tschemaTemplateItems,\n\t\t\tfieldTemplateItems,\n\t\t\tvalueTypes,\n\t\t\tregisterBuiltSchemas = true,\n\t\t\t...item\n\t\t} = options\n\n\t\tconst resolvedDestination = schemaDiskUtil.resolvePath({\n\t\t\tdestination: destinationDir,\n\t\t\tschema: options.schema,\n\t\t})\n\n\t\tlet typesFile = options.typesFile\n\t\t\t? diskUtil.resolveRelativePath(\n\t\t\t\t\tpathUtil.dirname(resolvedDestination),\n\t\t\t\t\toptions.typesFile\n\t\t\t )\n\t\t\t: undefined\n\n\t\tif (typesFile) {\n\t\t\ttypesFile = typesFile.replace(pathUtil.extname(typesFile), '')\n\t\t}\n\n\t\tconst schemaContents = this.templates.schema({\n\t\t\t...item,\n\t\t\tregisterBuiltSchemas,\n\t\t\tschemaTemplateItems,\n\t\t\tfieldTemplateItems,\n\t\t\tvalueTypes,\n\t\t\ttypesFile,\n\t\t\tschemaFile:\n\t\t\t\titem.importFrom && options.shouldImportCoreSchemas\n\t\t\t\t\t? `schema/imported.schema.ts.hbs`\n\t\t\t\t\t: undefined,\n\t\t})\n\n\t\treturn this.writeFileIfChangedMixinResults(\n\t\t\tresolvedDestination,\n\t\t\tschemaContents,\n\t\t\t`${\n\t\t\t\titem.schema.description ? `${item.schema.description} ` : ''\n\t\t\t}This is the schema generated by ${\n\t\t\t\titem.id\n\t\t\t}.builder.ts. AUTOGENERATED. DO NOT EDIT.`\n\t\t)\n\t}\n\n\tpublic async writeValueTypes(\n\t\tdestinationDir: string,\n\t\toptions: {\n\t\t\tschemaTemplateItems: SchemaTemplateItem[]\n\t\t\tfieldTemplateItems: FieldTemplateItem[]\n\t\t\tglobalSchemaNamespace?: string\n\t\t}\n\t): Promise<WriteResults> {\n\t\tconst contents = this.templates.valueTypes(options)\n\t\tconst destination = pathUtil.join(destinationDir, 'tmp', 'valueType.tmp.ts')\n\n\t\treturn this.writeFileIfChangedMixinResults(\n\t\t\tdestination,\n\t\t\tcontents,\n\t\t\t'For constructing what goes to the right of the : after each property in the interface.'\n\t\t)\n\t}\n\n\tpublic writePlugin(cwd: string) {\n\t\tconst destination = diskUtil.resolveHashSprucePath(\n\t\t\tcwd,\n\t\t\t'features',\n\t\t\t'schema.plugin.ts'\n\t\t)\n\n\t\tconst pluginContents = this.templates.schemaPlugin()\n\n\t\tconst results = this.writeFileIfChangedMixinResults(\n\t\t\tdestination,\n\t\t\tpluginContents,\n\t\t\t'Enable schema support in your skill.'\n\t\t)\n\n\t\treturn results\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAGA;;AAUA;;AACA;;AACA;;;;;;;;;;;;;;;;;;IAiBqBA,Y;;;;;;;;;;;;;;;uGAKd,CACL;MACCC,QAAQ,EAAE,iBADX;MAECC,gBAAgB,EAAE,aAFnB;MAGCC,WAAW,EACV;IAJF,CADK,EAOL;MACCF,QAAQ,EAAE,kBADX;MAECC,gBAAgB,EAAE,eAFnB;MAGCC,WAAW,EACV;IAJF,CAPK,C;;;;;;;wGAeN,iBACCC,cADD,EAECC,OAFD;QAAA;;QAAA;QAAA;UAAA;YAAA;cAAA;gBAOC,KAAKC,EAAL,CAAQC,YAAR,CAAqB,oBAArB;gBAEMN,QATP,aASqBI,OAAO,CAACG,SAT7B;gBAWOC,0BAXP,GAYEJ,OAAO,CAACK,sBAAR,KAAmC,KAAnC,GACGC,gBAAA,CAASC,OAAT,CAAiBR,cAAjB,EAAiCH,QAAjC,CADH,GAEGY,6BAAA,CAAYC,oBAAZ,CACAV,cADA,sBAEAC,OAAO,CAACU,OAFR,+DAEmBC,mCAFnB,EAGAf,QAHA,CAdL;;gBAAA,KAoBKgB,0BAAA,CAASC,aAAT,CAAuBT,0BAAvB,CApBL;kBAAA;kBAAA;gBAAA;;gBAAA,MAqBQ,IAAIU,uBAAJ,CAAgB;kBACrBC,IAAI,EAAE,eADe;kBAErBC,QAAQ,EAAEhB,OAAO,CAACG,SAFG;kBAGrBc,WAAW,EAAElB;gBAHQ,CAAhB,CArBR;;cAAA;gBA4BOmB,cA5BP,GA4BwB,KAAKC,SAAL,CAAeC,aAAf,CAA6BpB,OAA7B,CA5BxB;gBAAA;gBAAA,OA8BuB,KAAKqB,8BAAL,CACrBjB,0BADqB,EAErBc,cAFqB,EAGrB,6GAHqB,CA9BvB;;cAAA;gBA8BOI,OA9BP;gBAAA;gBAAA,OAoCO,KAAKC,IAAL,CAAUnB,0BAAV,CApCP;;cAAA;gBAAA,iCAsCQkB,OAtCR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;2GAyCA,kBACCvB,cADD,EAECC,OAFD;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAIC,KAAKC,EAAL,CAAQC,YAAR,CAAqB,gCAArB;gBAEQsB,kBANT,GAMgCxB,OANhC,CAMSwB,kBANT;gBAQKF,OARL,GAQ6B,EAR7B;gBAAA,uCAU2B,KAAKG,cAVhC;gBAAA;;gBAAA;;cAAA;gBAAA;kBAAA;kBAAA;gBAAA;;gBAUYC,WAVZ;gBAWU9B,QAXV,GAWsD8B,WAXtD,CAWU9B,QAXV,EAWoBC,gBAXpB,GAWsD6B,WAXtD,CAWoB7B,gBAXpB,EAWsCC,WAXtC,GAWsD4B,WAXtD,CAWsC5B,WAXtC;gBAaQ6B,mBAbR,GAa8BC,gBAAA,CAAKC,IAAL,CAAU9B,cAAV,EAA0B,QAA1B,EAAoCH,QAApC,CAb9B;gBAeQkC,QAfR,GAemB,KAAKX,SAAL,CAAetB,gBAAf,EAAiC;kBACjD2B,kBAAkB,EAAlBA;gBADiD,CAAjC,CAfnB;gBAAA;gBAAA,OAmBkB,KAAKH,8BAAL,CACfM,mBADe,EAEfG,QAFe,EAGfhC,WAHe,EAIfwB,OAJe,CAnBlB;;cAAA;gBAmBEA,OAnBF;;cAAA;gBAAA;gBAAA;;cAAA;gBAAA;gBAAA;;cAAA;gBAAA;gBAAA;;gBAAA;;cAAA;gBAAA;;gBAAA;;gBAAA;;cAAA;gBAAA,kCA2BQA,OA3BR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;gHA8BA,kBACCS,wBADD,EAEC/B,OAFD;QAAA;;QAAA;QAAA;UAAA;YAAA;cAAA;gBAKEwB,kBALF,GASKxB,OATL,CAKEwB,kBALF,EAMEQ,mBANF,GASKhC,OATL,CAMEgC,mBANF,EAOEC,UAPF,GASKjC,OATL,CAOEiC,UAPF,EAQEC,aARF,GASKlC,OATL,CAQEkC,aARF;gBAWOC,wBAXP,GAWkC,KAAKC,2BAAL,CAChCL,wBADgC,EAEhCM,+CAFgC,CAXlC;gBAgBKf,OAhBL,GAgB6B,EAhB7B;gBAiBC,KAAKrB,EAAL,CAAQC,YAAR,CAAqB,4BAArB;gBAEMoC,UAnBP,GAmBoBN,mBAAmB,CAACO,MAApB,CAA2B,UAACC,CAAD;kBAAA,OAAO,CAACA,CAAC,CAACC,UAAV;gBAAA,CAA3B,CAnBpB;;gBAAA,MAqBKH,UAAU,CAACI,MAAX,GAAoB,CArBzB;kBAAA;kBAAA;gBAAA;;gBAsBQC,mBAtBR,GAsB8B,KAAKxB,SAAL,CAAeyB,YAAf,CAA4B;kBACvDZ,mBAAmB,EAAEM,UADkC;kBAEvDd,kBAAkB,EAAlBA,kBAFuD;kBAGvDS,UAAU,EAAVA,UAHuD;kBAIvDY,qBAAqB,EAAE7C,OAAO,CAAC6C,qBAJwB;kBAKvDX,aAAa,EAAbA;gBALuD,CAA5B,CAtB9B;gBAAA;gBAAA,OA8BkB,KAAKb,8BAAL,CACfc,wBADe,EAEfQ,mBAFe,EAGf,+FAHe,CA9BlB;;cAAA;gBA8BErB,OA9BF;gBAAA;gBAAA,OAoCQ,KAAKC,IAAL,CAAUY,wBAAV,CApCR;;cAAA;gBAuCC,KAAKlC,EAAL,CAAQC,YAAR,oBACa8B,mBAAmB,CAACU,MADjC;gBAvCD;gBAAA,OA2CgC,KAAKI,eAAL,CAC9BxC,gBAAA,CAASyC,OAAT,CAAiBZ,wBAAjB,CAD8B,kCAG1BnC,OAH0B;kBAI7BgD,SAAS,EAAEb;gBAJkB,GA3ChC;;cAAA;gBA2COc,gBA3CP;;gBAmDC,YAAA3B,OAAO,EAAC4B,IAAR,qDAAgBD,gBAAhB;;gBAnDD,kCAqDQ3B,OArDR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;2GAwDA,kBACCvB,cADD,EAECC,OAFD;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAIOsB,OAJP,GAI+B,EAJ/B;gBAAA,wCAMoBtB,OAAO,CAACgC,mBAN5B;gBAAA;;gBAAA;;cAAA;gBAAA;kBAAA;kBAAA;gBAAA;;gBAMYmB,IANZ;gBAAA;gBAAA,OAO8B,KAAKC,WAAL,CAAiBrD,cAAjB,kCACxBC,OADwB,GAExBmD,IAFwB,EAP9B;;cAAA;gBAOQE,aAPR;gBAWE/B,OAAO,CAAC4B,IAAR,OAAA5B,OAAO,sCAAS+B,aAAT,EAAP;;cAXF;gBAAA;gBAAA;;cAAA;gBAAA;gBAAA;;cAAA;gBAAA;gBAAA;;gBAAA;;cAAA;gBAAA;;gBAAA;;gBAAA;;cAAA;gBAAA,kCAcQ/B,OAdR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;uGAiBA,kBACCvB,cADD,EAECC,OAFD;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAYEgC,mBAZF,GAiBKhC,OAjBL,CAYEgC,mBAZF,EAaER,kBAbF,GAiBKxB,OAjBL,CAaEwB,kBAbF,EAcES,UAdF,GAiBKjC,OAjBL,CAcEiC,UAdF,0BAiBKjC,OAjBL,CAeEsD,oBAfF,EAeEA,oBAfF,sCAeyB,IAfzB,0BAgBKH,IAhBL,6CAiBKnD,OAjBL;gBAmBO2B,mBAnBP,GAmB6B4B,sBAAA,CAAeC,WAAf,CAA2B;kBACtDvC,WAAW,EAAElB,cADyC;kBAEtD0D,MAAM,EAAEzD,OAAO,CAACyD;gBAFsC,CAA3B,CAnB7B;gBAwBKT,SAxBL,GAwBiBhD,OAAO,CAACgD,SAAR,GACbpC,0BAAA,CAAS8C,mBAAT,CACApD,gBAAA,CAASyC,OAAT,CAAiBpB,mBAAjB,CADA,EAEA3B,OAAO,CAACgD,SAFR,CADa,GAKbW,SA7BJ;;gBA+BC,IAAIX,SAAJ,EAAe;kBACdA,SAAS,GAAGA,SAAS,CAACY,OAAV,CAAkBtD,gBAAA,CAASuD,OAAT,CAAiBb,SAAjB,CAAlB,EAA+C,EAA/C,CAAZ;gBACA;;gBAEKc,cAnCP,GAmCwB,KAAK3C,SAAL,CAAesC,MAAf,iCACnBN,IADmB;kBAEtBG,oBAAoB,EAApBA,oBAFsB;kBAGtBtB,mBAAmB,EAAnBA,mBAHsB;kBAItBR,kBAAkB,EAAlBA,kBAJsB;kBAKtBS,UAAU,EAAVA,UALsB;kBAMtBe,SAAS,EAATA,SANsB;kBAOtBe,UAAU,EACTZ,IAAI,CAACV,UAAL,IAAmBzC,OAAO,CAACgE,uBAA3B,qCAEGL;gBAVkB,GAnCxB;gBAAA,kCAgDQ,KAAKtC,8BAAL,CACNM,mBADM,EAENmC,cAFM,YAILX,IAAI,CAACM,MAAL,CAAY3D,WAAZ,aAA6BqD,IAAI,CAACM,MAAL,CAAY3D,WAAzC,SAA0D,EAJrD,6CAMLqD,IAAI,CAACc,EANA,8CAhDR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;2GA2DA,kBACClE,cADD,EAECC,OAFD;QAAA;QAAA;UAAA;YAAA;cAAA;gBAQO8B,QARP,GAQkB,KAAKX,SAAL,CAAec,UAAf,CAA0BjC,OAA1B,CARlB;gBASOiB,WATP,GASqBX,gBAAA,CAASuB,IAAT,CAAc9B,cAAd,EAA8B,KAA9B,EAAqC,kBAArC,CATrB;gBAAA,kCAWQ,KAAKsB,8BAAL,CACNJ,WADM,EAENa,QAFM,EAGN,wFAHM,CAXR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;WAkBA,qBAAmBoC,GAAnB,EAAgC;MAC/B,IAAMjD,WAAW,GAAGL,0BAAA,CAASuD,qBAAT,CACnBD,GADmB,EAEnB,UAFmB,EAGnB,kBAHmB,CAApB;;MAMA,IAAME,cAAc,GAAG,KAAKjD,SAAL,CAAekD,YAAf,EAAvB;MAEA,IAAM/C,OAAO,GAAG,KAAKD,8BAAL,CACfJ,WADe,EAEfmD,cAFe,EAGf,sCAHe,CAAhB;MAMA,OAAO9C,OAAP;IACA;;;EAjQwCgD,2B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SkillFeature.js","names":["SkillFeature","options","name","version","isDev","universalDevDependencies","skillFeatureSchema","diskUtil","resolvePath","__dirname","node","yarn","boot","health","universalScripts","universalFileDescriptions","path","description","shouldOverwriteWhenChanged","emitter","on","handleRegisterAbstractTestClasses","bind","handleWillExecute","abstractClasses","label","featureCode","install","files","cwd","resolveDestination","destination","Store","setCurrentSkillsNamespace","doesDirExist","createDir","skillGenerator","Writer","writeSkill","installScripts","setEngines","env","Service","set","scriptUpdater","ScriptUpdater","FromFeature","update","pkg","engines","get","all","value","actionCode","upgradeOptions","featureInstaller","isInstalled","updater","Updater","updateFiles","AbstractFeature"],"sources":["../../../src/features/skill/SkillFeature.ts"],"sourcesContent":["import { SchemaValues, validateSchemaValues } from '@sprucelabs/schema'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { SpruceSchemas } from '#spruce/schemas/schemas.types'\nimport skillFeatureSchema from '#spruce/schemas/spruceCli/v2020_07_22/skillFeature.schema'\nimport { FileDescription, NpmPackage } from '../../types/cli.types'\nimport ScriptUpdater from '../../updaters/ScriptUpdater'\nimport AbstractFeature, { FeatureOptions } from '../AbstractFeature'\nimport { FeatureCode } from '../features.types'\nimport universalDevDependencies from '../universalDevDependencies'\nimport universalFileDescriptions from '../universalFileDescriptions'\nimport universalScripts from '../universalScripts'\nimport Updater from './updaters/Updater'\n\ntype SkillFeatureOptionsSchema =\n\tSpruceSchemas.SpruceCli.v2020_07_22.SkillFeatureSchema\ntype SkillFeatureOptions = SpruceSchemas.SpruceCli.v2020_07_22.SkillFeature\n\ndeclare module '../../features/features.types' {\n\tinterface FeatureMap {\n\t\tskill: SkillFeature\n\t}\n\n\tinterface FeatureOptionsMap {\n\t\tskill: SchemaValues<SkillFeatureOptionsSchema>\n\t}\n}\n\ntype UpgradeOptions = SpruceSchemas.SpruceCli.v2020_07_22.UpgradeSkillOptions\n\nexport default class SkillFeature<\n\tS extends SkillFeatureOptionsSchema = SkillFeatureOptionsSchema\n> extends AbstractFeature<S> {\n\tpublic nameReadable = 'Skill'\n\tpublic code: FeatureCode = 'skill'\n\tpublic description = 'The scaffolding needed to run a Skill'\n\tpublic readonly installOrderWeight = 100\n\n\tpublic packageDependencies: NpmPackage[] = [\n\t\t{ name: '@sprucelabs/error' },\n\t\t{ name: '@sprucelabs/spruce-skill-utils' },\n\t\t{ name: '@sprucelabs/spruce-skill-booter' },\n\t\t{ name: '@sprucelabs/spruce-event-utils' },\n\t\t{ name: '@sprucelabs/spruce-event-plugin' },\n\t\t{ name: '@sprucelabs/spruce-core-schemas' },\n\t\t{ name: 'dotenv' },\n\t\t{ name: 'globby', version: '^11.0.4' },\n\t\t{\n\t\t\tname: '@sprucelabs/mercury-types',\n\t\t},\n\t\t{ name: 'tsconfig-paths', isDev: true },\n\t\t{ name: 'ts-node', isDev: true },\n\t\t...universalDevDependencies,\n\t]\n\n\tpublic optionsSchema = skillFeatureSchema as S\n\tpublic actionsDir = diskUtil.resolvePath(__dirname, 'actions')\n\tprivate engines = {\n\t\tnode: '16.x',\n\t\tyarn: '1.x',\n\t}\n\tpublic scripts = {\n\t\tboot: 'node build/index',\n\t\t'boot.local':\n\t\t\t'node -r ts-node/register -r tsconfig-paths/register ./src/index',\n\n\t\thealth: 'yarn boot --health',\n\t\t'health.local': 'yarn boot.local --health',\n\n\t\t...universalScripts,\n\t}\n\n\tpublic readonly fileDescriptions: FileDescription[] = [\n\t\t...universalFileDescriptions,\n\t\t{\n\t\t\tpath: 'src/index.ts',\n\t\t\tdescription: 'The file that \"boots\" the skill.',\n\t\t\tshouldOverwriteWhenChanged: true,\n\t\t},\n\t\t{\n\t\t\tpath: 'errors/SpruceError.ts',\n\t\t\tdescription: 'Starting error class that you can edit.',\n\t\t\tshouldOverwriteWhenChanged: false,\n\t\t},\n\t\t{\n\t\t\tpath: '.spruce/skill.ts',\n\t\t\tdescription: 'Used to support booting the skill.',\n\t\t\tshouldOverwriteWhenChanged: true,\n\t\t},\n\t\t{\n\t\t\tpath: '.spruce/errors/options.types.ts',\n\t\t\tdescription:\n\t\t\t\t'Holds all possible error codes and options. Will be updated as you create more errors (spruce create.error).',\n\t\t\tshouldOverwriteWhenChanged: true,\n\t\t},\n\t\t{\n\t\t\tpath: 'src/.spruce/features/event.plugin.ts',\n\t\t\tdescription:\n\t\t\t\t'Gives your skill event support through local boot events and optionall Mercury (spruce event.listen).',\n\t\t\tshouldOverwriteWhenChanged: true,\n\t\t},\n\t]\n\n\tpublic constructor(options: FeatureOptions) {\n\t\tsuper(options)\n\n\t\tvoid this.emitter.on(\n\t\t\t`test.register-abstract-test-classes`,\n\t\t\tthis.handleRegisterAbstractTestClasses.bind(this)\n\t\t)\n\n\t\tvoid this.emitter.on(\n\t\t\t'feature.will-execute',\n\t\t\tthis.handleWillExecute.bind(this)\n\t\t)\n\t}\n\n\tprivate async handleRegisterAbstractTestClasses() {\n\t\treturn {\n\t\t\tabstractClasses: [\n\t\t\t\t{\n\t\t\t\t\tname: 'AbstractSpruceFixtureTest',\n\t\t\t\t\tlabel: 'AbstractSpruceFixtureTest',\n\t\t\t\t\timport: '@sprucelabs/spruce-test-fixtures',\n\t\t\t\t\tfeatureCode: 'skill',\n\t\t\t\t},\n\t\t\t],\n\t\t}\n\t}\n\n\tpublic async beforePackageInstall(options: SkillFeatureOptions) {\n\t\tconst { files } = await this.install(options)\n\t\treturn { files, cwd: this.resolveDestination(options) }\n\t}\n\n\tpublic async afterPackageInstall(options: SkillFeatureOptions) {\n\t\tconst destination = this.resolveDestination(options)\n\t\tawait this.Store('skill', { cwd: destination }).setCurrentSkillsNamespace(\n\t\t\toptions.name\n\t\t)\n\t\treturn {}\n\t}\n\n\tprivate async install(options: SkillFeatureOptions) {\n\t\tvalidateSchemaValues(skillFeatureSchema, options)\n\n\t\tconst destination = this.resolveDestination(options)\n\t\tif (!diskUtil.doesDirExist(destination)) {\n\t\t\tdiskUtil.createDir(destination)\n\t\t}\n\n\t\tconst skillGenerator = this.Writer('skill')\n\n\t\tconst files = await skillGenerator.writeSkill(destination, options)\n\n\t\tawait this.installScripts(destination)\n\n\t\tthis.setEngines(destination)\n\n\t\tconst env = this.Service('env', destination)\n\t\tenv.set('SKILL_NAME', options.name)\n\n\t\treturn { files }\n\t}\n\n\tprivate resolveDestination(options: SkillFeatureOptions) {\n\t\treturn diskUtil.resolvePath(this.cwd, options.destination ?? '')\n\t}\n\n\tpublic 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 setEngines(destination: string) {\n\t\tconst pkg = this.Service('pkg', destination)\n\t\tconst engines = (pkg.get('engines') as Record<string, string>) || {}\n\n\t\tfor (const name in this.engines) {\n\t\t\tconst all = this.engines\n\t\t\tengines[name] = this.engines[name as keyof typeof all]\n\t\t}\n\n\t\tpkg.set({ path: 'engines', value: engines })\n\t}\n\n\tpublic async handleWillExecute(options: {\n\t\tfeatureCode: string\n\t\tactionCode: string\n\t\toptions?: UpgradeOptions\n\t}) {\n\t\tconst { featureCode, actionCode, options: upgradeOptions } = options\n\t\tconst isInstalled = await this.featureInstaller.isInstalled('skill')\n\n\t\tif (isInstalled && featureCode === 'node' && actionCode === 'upgrade') {\n\t\t\tconst updater = new Updater(this, this.emitter)\n\t\t\tconst files = await updater.updateFiles(upgradeOptions ?? {})\n\t\t\treturn {\n\t\t\t\tfiles,\n\t\t\t}\n\t\t}\n\n\t\treturn {}\n\t}\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SkillFeature.js","names":["SkillFeature","options","name","version","isDev","universalDevDependencies","skillFeatureSchema","diskUtil","resolvePath","__dirname","node","yarn","boot","health","universalScripts","universalFileDescriptions","path","description","shouldOverwriteWhenChanged","emitter","on","handleRegisterAbstractTestClasses","bind","handleWillExecute","abstractClasses","label","featureCode","install","files","cwd","resolveDestination","destination","Store","setCurrentSkillsNamespace","validateSchemaValues","doesDirExist","createDir","skillGenerator","Writer","writeSkill","installScripts","setEngines","env","Service","set","scriptUpdater","ScriptUpdater","FromFeature","update","pkg","engines","get","all","value","actionCode","upgradeOptions","featureInstaller","isInstalled","updater","Updater","updateFiles","AbstractFeature"],"sources":["../../../src/features/skill/SkillFeature.ts"],"sourcesContent":["import { SchemaValues, validateSchemaValues } from '@sprucelabs/schema'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { SpruceSchemas } from '#spruce/schemas/schemas.types'\nimport skillFeatureSchema from '#spruce/schemas/spruceCli/v2020_07_22/skillFeature.schema'\nimport { FileDescription, NpmPackage } from '../../types/cli.types'\nimport ScriptUpdater from '../../updaters/ScriptUpdater'\nimport AbstractFeature, { FeatureOptions } from '../AbstractFeature'\nimport { FeatureCode } from '../features.types'\nimport universalDevDependencies from '../universalDevDependencies'\nimport universalFileDescriptions from '../universalFileDescriptions'\nimport universalScripts from '../universalScripts'\nimport Updater from './updaters/Updater'\n\ntype SkillFeatureOptionsSchema =\n\tSpruceSchemas.SpruceCli.v2020_07_22.SkillFeatureSchema\ntype SkillFeatureOptions = SpruceSchemas.SpruceCli.v2020_07_22.SkillFeature\n\ndeclare module '../../features/features.types' {\n\tinterface FeatureMap {\n\t\tskill: SkillFeature\n\t}\n\n\tinterface FeatureOptionsMap {\n\t\tskill: SchemaValues<SkillFeatureOptionsSchema>\n\t}\n}\n\ntype UpgradeOptions = SpruceSchemas.SpruceCli.v2020_07_22.UpgradeSkillOptions\n\nexport default class SkillFeature<\n\tS extends SkillFeatureOptionsSchema = SkillFeatureOptionsSchema\n> extends AbstractFeature<S> {\n\tpublic nameReadable = 'Skill'\n\tpublic code: FeatureCode = 'skill'\n\tpublic description = 'The scaffolding needed to run a Skill'\n\tpublic readonly installOrderWeight = 100\n\n\tpublic packageDependencies: NpmPackage[] = [\n\t\t{ name: '@sprucelabs/error' },\n\t\t{ name: '@sprucelabs/spruce-skill-utils' },\n\t\t{ name: '@sprucelabs/spruce-skill-booter' },\n\t\t{ name: '@sprucelabs/spruce-event-utils' },\n\t\t{ name: '@sprucelabs/spruce-event-plugin' },\n\t\t{ name: '@sprucelabs/spruce-core-schemas' },\n\t\t{ name: 'dotenv' },\n\t\t{ name: 'globby', version: '^11.0.4' },\n\t\t{\n\t\t\tname: '@sprucelabs/mercury-types',\n\t\t},\n\t\t{ name: 'tsconfig-paths', isDev: true },\n\t\t{ name: 'ts-node', isDev: true },\n\t\t...universalDevDependencies,\n\t]\n\n\tpublic optionsSchema = skillFeatureSchema as S\n\tpublic actionsDir = diskUtil.resolvePath(__dirname, 'actions')\n\tprivate engines = {\n\t\tnode: '16.x',\n\t\tyarn: '1.x',\n\t}\n\tpublic scripts = {\n\t\tboot: 'node build/index',\n\t\t'boot.local':\n\t\t\t'node -r ts-node/register -r tsconfig-paths/register ./src/index',\n\n\t\thealth: 'yarn boot --health',\n\t\t'health.local': 'yarn boot.local --health',\n\n\t\t...universalScripts,\n\t}\n\n\tpublic readonly fileDescriptions: FileDescription[] = [\n\t\t...universalFileDescriptions,\n\t\t{\n\t\t\tpath: 'src/index.ts',\n\t\t\tdescription: 'The file that \"boots\" the skill.',\n\t\t\tshouldOverwriteWhenChanged: true,\n\t\t},\n\t\t{\n\t\t\tpath: 'errors/SpruceError.ts',\n\t\t\tdescription: 'Starting error class that you can edit.',\n\t\t\tshouldOverwriteWhenChanged: false,\n\t\t},\n\t\t{\n\t\t\tpath: '.spruce/skill.ts',\n\t\t\tdescription: 'Used to support booting the skill.',\n\t\t\tshouldOverwriteWhenChanged: true,\n\t\t},\n\t\t{\n\t\t\tpath: '.spruce/errors/options.types.ts',\n\t\t\tdescription:\n\t\t\t\t'Holds all possible error codes and options. Will be updated as you create more errors (spruce create.error).',\n\t\t\tshouldOverwriteWhenChanged: true,\n\t\t},\n\t\t{\n\t\t\tpath: 'src/.spruce/features/event.plugin.ts',\n\t\t\tdescription:\n\t\t\t\t'Gives your skill event support through local boot events and optionall Mercury (spruce event.listen).',\n\t\t\tshouldOverwriteWhenChanged: true,\n\t\t},\n\t]\n\n\tpublic constructor(options: FeatureOptions) {\n\t\tsuper(options)\n\n\t\tvoid this.emitter.on(\n\t\t\t`test.register-abstract-test-classes`,\n\t\t\tthis.handleRegisterAbstractTestClasses.bind(this)\n\t\t)\n\n\t\tvoid this.emitter.on(\n\t\t\t'feature.will-execute',\n\t\t\tthis.handleWillExecute.bind(this)\n\t\t)\n\t}\n\n\tprivate async handleRegisterAbstractTestClasses() {\n\t\treturn {\n\t\t\tabstractClasses: [\n\t\t\t\t{\n\t\t\t\t\tname: 'AbstractSpruceFixtureTest',\n\t\t\t\t\tlabel: 'AbstractSpruceFixtureTest',\n\t\t\t\t\timport: '@sprucelabs/spruce-test-fixtures',\n\t\t\t\t\tfeatureCode: 'skill',\n\t\t\t\t},\n\t\t\t],\n\t\t}\n\t}\n\n\tpublic async beforePackageInstall(options: SkillFeatureOptions) {\n\t\tconst { files } = await this.install(options)\n\t\treturn { files, cwd: this.resolveDestination(options) }\n\t}\n\n\tpublic async afterPackageInstall(options: SkillFeatureOptions) {\n\t\tconst destination = this.resolveDestination(options)\n\t\tawait this.Store('skill', { cwd: destination }).setCurrentSkillsNamespace(\n\t\t\toptions.name\n\t\t)\n\t\treturn {}\n\t}\n\n\tprivate async install(options: SkillFeatureOptions) {\n\t\tvalidateSchemaValues(skillFeatureSchema, options)\n\n\t\tconst destination = this.resolveDestination(options)\n\t\tif (!diskUtil.doesDirExist(destination)) {\n\t\t\tdiskUtil.createDir(destination)\n\t\t}\n\n\t\tconst skillGenerator = this.Writer('skill')\n\n\t\tconst files = await skillGenerator.writeSkill(destination, options)\n\n\t\tawait this.installScripts(destination)\n\n\t\tthis.setEngines(destination)\n\n\t\tconst env = this.Service('env', destination)\n\t\tenv.set('SKILL_NAME', options.name)\n\n\t\treturn { files }\n\t}\n\n\tprivate resolveDestination(options: SkillFeatureOptions) {\n\t\treturn diskUtil.resolvePath(this.cwd, options.destination ?? '')\n\t}\n\n\tpublic 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 setEngines(destination: string) {\n\t\tconst pkg = this.Service('pkg', destination)\n\t\tconst engines = (pkg.get('engines') as Record<string, string>) || {}\n\n\t\tfor (const name in this.engines) {\n\t\t\tconst all = this.engines\n\t\t\tengines[name] = this.engines[name as keyof typeof all]\n\t\t}\n\n\t\tpkg.set({ path: 'engines', value: engines })\n\t}\n\n\tpublic async handleWillExecute(options: {\n\t\tfeatureCode: string\n\t\tactionCode: string\n\t\toptions?: UpgradeOptions\n\t}) {\n\t\tconst { featureCode, actionCode, options: upgradeOptions } = options\n\t\tconst isInstalled = await this.featureInstaller.isInstalled('skill')\n\n\t\tif (isInstalled && featureCode === 'node' && actionCode === 'upgrade') {\n\t\t\tconst updater = new Updater(this, this.emitter)\n\t\t\tconst files = await updater.updateFiles(upgradeOptions ?? {})\n\t\t\treturn {\n\t\t\t\tfiles,\n\t\t\t}\n\t\t}\n\n\t\treturn {}\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BootAction.js","names":["BootAction","bootSkillOptionsSchema","options","command","Service","script","onDataHandler","onData","onErrorHandler","onError","local","bootPromise","Promise","resolve","reject","runningPromise","boot","hints","meta","isBooted","kill","bind","pid","promise","then","err","shouldReturnImmediately","execute","data","search","undefined","results","mappedErr","message","SpruceError","code","friendlyMessage","AbstractAction"],"sources":["../../../../src/features/skill/actions/BootAction.ts"],"sourcesContent":["import { SpruceSchemas } from '#spruce/schemas/schemas.types'\nimport bootSkillOptionsSchema from '#spruce/schemas/spruceCli/v2020_07_22/bootSkillOptions.schema'\nimport SpruceError from '../../../errors/SpruceError'\nimport CommandService from '../../../services/CommandService'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\n\ntype OptionsSchema = SpruceSchemas.SpruceCli.v2020_07_22.BootSkillOptionsSchema\ntype Options = SpruceSchemas.SpruceCli.v2020_07_22.BootSkillOptions\n\nexport interface BootMeta {\n\tkill: () => void\n\tpid: number\n\tpromise: Promise<void>\n\tisBooted: boolean\n\tbootPromise: Promise<void>\n}\n\nexport default class BootAction extends AbstractAction<OptionsSchema> {\n\tpublic optionsSchema: OptionsSchema = bootSkillOptionsSchema\n\tpublic commandAliases = ['boot']\n\tpublic invocationMessage = 'Booting skill... ⚡️'\n\tprivate onDataHandler: ((msg: string) => void) | null | undefined\n\tprivate onErrorHandler: ((msg: string) => void) | null | undefined\n\n\tpublic async execute(options: Options): Promise<FeatureActionResponse> {\n\t\tconst command = this.Service('command')\n\n\t\tlet script = 'boot'\n\t\tthis.onDataHandler = options.onData\n\t\tthis.onErrorHandler = options.onError\n\n\t\tif (options.local) {\n\t\t\tscript += '.local'\n\t\t}\n\n\t\tlet runningPromise: any\n\n\t\tlet bootPromise = new Promise((resolve, reject) => {\n\t\t\trunningPromise = this.boot(command, script, resolve, reject)\n\t\t})\n\n\t\tconst hints = ['Skill booted succesfully!', 'Skill torn down cleanly!']\n\n\t\tconst meta = {\n\t\t\tisBooted: false,\n\t\t\tkill: command.kill.bind(command),\n\t\t\tpid: command.pid() as number,\n\t\t\tpromise: runningPromise,\n\t\t\tbootPromise,\n\t\t}\n\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tbootPromise = bootPromise\n\t\t\t\t.then(() => {\n\t\t\t\t\tmeta.isBooted = true\n\t\t\t\t\treturn { meta, hints }\n\t\t\t\t})\n\t\t\t\t.catch((err) => {\n\t\t\t\t\treject(err)\n\t\t\t\t\treturn err\n\t\t\t\t})\n\n\t\t\tif (!options.shouldReturnImmediately) {\n\t\t\t\tvoid bootPromise.then(() => resolve({ meta, hints }))\n\t\t\t} else {\n\t\t\t\tmeta.bootPromise = bootPromise\n\n\t\t\t\tresolve({\n\t\t\t\t\tmeta,\n\t\t\t\t\thints,\n\t\t\t\t})\n\t\t\t}\n\t\t})\n\t}\n\n\tprivate async boot(\n\t\tcommand: CommandService,\n\t\tscript: string,\n\t\tresolve: (value: unknown) => void,\n\t\treject: (reason?: any) => void\n\t) {\n\t\tlet isBooted = false\n\t\ttry {\n\t\t\tconst results = await command.execute(`yarn ${script}`, {\n\t\t\t\tonData: (data) => {\n\t\t\t\t\tthis.onDataHandler?.(data)\n\t\t\t\t\tif (!isBooted && data.search(':: Skill booted') > -1) {\n\t\t\t\t\t\tisBooted = true\n\t\t\t\t\t\tresolve(undefined)\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tonError: (data) => {\n\t\t\t\t\tthis.onErrorHandler?.(data)\n\t\t\t\t},\n\t\t\t})\n\n\t\t\tif (!isBooted) {\n\t\t\t\tisBooted = true\n\t\t\t\tresolve(undefined)\n\t\t\t}\n\n\t\t\treturn results\n\t\t} catch (err: any) {\n\t\t\tlet mappedErr = err\n\t\t\tif (\n\t\t\t\tmappedErr.message.search(/Error: cannot find module.*?build\\/index/gi) >\n\t\t\t\t-1\n\t\t\t) {\n\t\t\t\tmappedErr = new SpruceError({\n\t\t\t\t\tcode: 'BOOT_ERROR',\n\t\t\t\t\tfriendlyMessage: 'You must build your skill before you can boot it!',\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tif (!isBooted) {\n\t\t\t\treject(mappedErr)\n\t\t\t} else {\n\t\t\t\tthrow mappedErr\n\t\t\t}\n\t\t}\n\n\t\treturn null\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;AACA;;AAEA;;;;;;IAcqBA,U;;;;;;;;;;;;;;;sGACkBC,4B;uGACd,CAAC,MAAD,C;0GACG,qB;;;;;;;;;mGAI3B,iBAAqBC,OAArB;QAAA;;QAAA;QAAA;UAAA;YAAA;cAAA;gBACOC,OADP,GACiB,KAAKC,OAAL,CAAa,SAAb,CADjB;gBAGKC,MAHL,GAGc,MAHd;gBAIC,KAAKC,aAAL,GAAqBJ,OAAO,CAACK,MAA7B;gBACA,KAAKC,cAAL,GAAsBN,OAAO,CAACO,OAA9B;;gBAEA,IAAIP,OAAO,CAACQ,KAAZ,EAAmB;kBAClBL,MAAM,IAAI,QAAV;gBACA;;gBAIGM,WAbL,GAamB,IAAIC,OAAJ,CAAY,UAACC,OAAD,EAAUC,MAAV,EAAqB;kBAClDC,cAAc,GAAG,MAAI,CAACC,IAAL,CAAUb,OAAV,EAAmBE,MAAnB,EAA2BQ,OAA3B,EAAoCC,MAApC,CAAjB;gBACA,CAFiB,CAbnB;gBAiBOG,KAjBP,GAiBe,CAAC,2BAAD,EAA8B,0BAA9B,CAjBf;gBAmBOC,IAnBP,GAmBc;kBACZC,QAAQ,EAAE,KADE;kBAEZC,IAAI,EAAEjB,OAAO,CAACiB,IAAR,CAAaC,IAAb,CAAkBlB,OAAlB,CAFM;kBAGZmB,GAAG,EAAEnB,OAAO,CAACmB,GAAR,EAHO;kBAIZC,OAAO,EAAER,cAJG;kBAKZJ,WAAW,EAAXA;gBALY,CAnBd;gBAAA,iCA2BQ,IAAIC,OAAJ,CAAY,UAACC,OAAD,EAAUC,MAAV,EAAqB;kBACvCH,WAAW,GAAGA,WAAW,CACvBa,IADY,CACP,YAAM;oBACXN,IAAI,CAACC,QAAL,GAAgB,IAAhB;oBACA,OAAO;sBAAED,IAAI,EAAJA,IAAF;sBAAQD,KAAK,EAALA;oBAAR,CAAP;kBACA,CAJY,WAKN,UAACQ,GAAD,EAAS;oBACfX,MAAM,CAACW,GAAD,CAAN;oBACA,OAAOA,GAAP;kBACA,CARY,CAAd;;kBAUA,IAAI,CAACvB,OAAO,CAACwB,uBAAb,EAAsC;oBACrC,KAAKf,WAAW,CAACa,IAAZ,CAAiB;sBAAA,OAAMX,OAAO,CAAC;wBAAEK,IAAI,EAAJA,IAAF;wBAAQD,KAAK,EAALA;sBAAR,CAAD,CAAb;oBAAA,CAAjB,CAAL;kBACA,CAFD,MAEO;oBACNC,IAAI,CAACP,WAAL,GAAmBA,WAAnB;oBAEAE,OAAO,CAAC;sBACPK,IAAI,EAAJA,IADO;sBAEPD,KAAK,EAALA;oBAFO,CAAD,CAAP;kBAIA;gBACD,CArBM,CA3BR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;gGAmDA,kBACCd,OADD,EAECE,MAFD,EAGCQ,OAHD,EAICC,MAJD;QAAA;;QAAA;QAAA;UAAA;YAAA;cAAA;gBAMKK,QANL,GAMgB,KANhB;gBAAA;gBAAA;gBAAA,OAQwBhB,OAAO,CAACwB,OAAR,gBAAwBtB,MAAxB,GAAkC;kBACvDE,MAAM,EAAE,gBAACqB,IAAD,EAAU;oBAAA;;oBACjB,
|
|
1
|
+
{"version":3,"file":"BootAction.js","names":["BootAction","bootSkillOptionsSchema","options","command","Service","script","onDataHandler","onData","onErrorHandler","onError","local","bootPromise","Promise","resolve","reject","runningPromise","boot","hints","meta","isBooted","kill","bind","pid","promise","then","err","shouldReturnImmediately","execute","data","search","undefined","results","mappedErr","message","SpruceError","code","friendlyMessage","AbstractAction"],"sources":["../../../../src/features/skill/actions/BootAction.ts"],"sourcesContent":["import { SpruceSchemas } from '#spruce/schemas/schemas.types'\nimport bootSkillOptionsSchema from '#spruce/schemas/spruceCli/v2020_07_22/bootSkillOptions.schema'\nimport SpruceError from '../../../errors/SpruceError'\nimport CommandService from '../../../services/CommandService'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\n\ntype OptionsSchema = SpruceSchemas.SpruceCli.v2020_07_22.BootSkillOptionsSchema\ntype Options = SpruceSchemas.SpruceCli.v2020_07_22.BootSkillOptions\n\nexport interface BootMeta {\n\tkill: () => void\n\tpid: number\n\tpromise: Promise<void>\n\tisBooted: boolean\n\tbootPromise: Promise<void>\n}\n\nexport default class BootAction extends AbstractAction<OptionsSchema> {\n\tpublic optionsSchema: OptionsSchema = bootSkillOptionsSchema\n\tpublic commandAliases = ['boot']\n\tpublic invocationMessage = 'Booting skill... ⚡️'\n\tprivate onDataHandler: ((msg: string) => void) | null | undefined\n\tprivate onErrorHandler: ((msg: string) => void) | null | undefined\n\n\tpublic async execute(options: Options): Promise<FeatureActionResponse> {\n\t\tconst command = this.Service('command')\n\n\t\tlet script = 'boot'\n\t\tthis.onDataHandler = options.onData\n\t\tthis.onErrorHandler = options.onError\n\n\t\tif (options.local) {\n\t\t\tscript += '.local'\n\t\t}\n\n\t\tlet runningPromise: any\n\n\t\tlet bootPromise = new Promise((resolve, reject) => {\n\t\t\trunningPromise = this.boot(command, script, resolve, reject)\n\t\t})\n\n\t\tconst hints = ['Skill booted succesfully!', 'Skill torn down cleanly!']\n\n\t\tconst meta = {\n\t\t\tisBooted: false,\n\t\t\tkill: command.kill.bind(command),\n\t\t\tpid: command.pid() as number,\n\t\t\tpromise: runningPromise,\n\t\t\tbootPromise,\n\t\t}\n\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tbootPromise = bootPromise\n\t\t\t\t.then(() => {\n\t\t\t\t\tmeta.isBooted = true\n\t\t\t\t\treturn { meta, hints }\n\t\t\t\t})\n\t\t\t\t.catch((err) => {\n\t\t\t\t\treject(err)\n\t\t\t\t\treturn err\n\t\t\t\t})\n\n\t\t\tif (!options.shouldReturnImmediately) {\n\t\t\t\tvoid bootPromise.then(() => resolve({ meta, hints }))\n\t\t\t} else {\n\t\t\t\tmeta.bootPromise = bootPromise\n\n\t\t\t\tresolve({\n\t\t\t\t\tmeta,\n\t\t\t\t\thints,\n\t\t\t\t})\n\t\t\t}\n\t\t})\n\t}\n\n\tprivate async boot(\n\t\tcommand: CommandService,\n\t\tscript: string,\n\t\tresolve: (value: unknown) => void,\n\t\treject: (reason?: any) => void\n\t) {\n\t\tlet isBooted = false\n\t\ttry {\n\t\t\tconst results = await command.execute(`yarn ${script}`, {\n\t\t\t\tonData: (data) => {\n\t\t\t\t\tthis.onDataHandler?.(data)\n\t\t\t\t\tif (!isBooted && data.search(':: Skill booted') > -1) {\n\t\t\t\t\t\tisBooted = true\n\t\t\t\t\t\tresolve(undefined)\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tonError: (data) => {\n\t\t\t\t\tthis.onErrorHandler?.(data)\n\t\t\t\t},\n\t\t\t})\n\n\t\t\tif (!isBooted) {\n\t\t\t\tisBooted = true\n\t\t\t\tresolve(undefined)\n\t\t\t}\n\n\t\t\treturn results\n\t\t} catch (err: any) {\n\t\t\tlet mappedErr = err\n\t\t\tif (\n\t\t\t\tmappedErr.message.search(/Error: cannot find module.*?build\\/index/gi) >\n\t\t\t\t-1\n\t\t\t) {\n\t\t\t\tmappedErr = new SpruceError({\n\t\t\t\t\tcode: 'BOOT_ERROR',\n\t\t\t\t\tfriendlyMessage: 'You must build your skill before you can boot it!',\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tif (!isBooted) {\n\t\t\t\treject(mappedErr)\n\t\t\t} else {\n\t\t\t\tthrow mappedErr\n\t\t\t}\n\t\t}\n\n\t\treturn null\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateAction.js","names":["optionsSchema","id","name","description","fields","skillFeatureSchema","CreateAction","options","codeSuggestion","destination","hints","AbstractAction"],"sources":["../../../../src/features/skill/actions/CreateAction.ts"],"sourcesContent":["import { buildSchema, SchemaValues } from '@sprucelabs/schema'\nimport skillFeatureSchema from '#spruce/schemas/spruceCli/v2020_07_22/skillFeature.schema'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\n\nconst optionsSchema = buildSchema({\n\tid: 'createSkill',\n\tname: 'create skill',\n\tdescription:\n\t\t'A skill is a micro-app, focused on delivering personaziled (and discrete) experiences.',\n\tfields: {\n\t\t...skillFeatureSchema.fields,\n\t},\n})\n\ntype OptionsSchema = typeof optionsSchema\ntype Options = SchemaValues<OptionsSchema>\n\nexport default class CreateAction extends AbstractAction<OptionsSchema> {\n\tpublic optionsSchema = optionsSchema\n\tpublic commandAliases = ['create.skill [destination]']\n\tpublic invocationMessage = 'Creating your new skill... ⚡️'\n\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'This is so much fun! Lets keep moving.',\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":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;;;;;AAGA,IAAMA,aAAa,GAAG,
|
|
1
|
+
{"version":3,"file":"CreateAction.js","names":["optionsSchema","buildSchema","id","name","description","fields","skillFeatureSchema","CreateAction","options","codeSuggestion","destination","hints","AbstractAction"],"sources":["../../../../src/features/skill/actions/CreateAction.ts"],"sourcesContent":["import { buildSchema, SchemaValues } from '@sprucelabs/schema'\nimport skillFeatureSchema from '#spruce/schemas/spruceCli/v2020_07_22/skillFeature.schema'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\n\nconst optionsSchema = buildSchema({\n\tid: 'createSkill',\n\tname: 'create skill',\n\tdescription:\n\t\t'A skill is a micro-app, focused on delivering personaziled (and discrete) experiences.',\n\tfields: {\n\t\t...skillFeatureSchema.fields,\n\t},\n})\n\ntype OptionsSchema = typeof optionsSchema\ntype Options = SchemaValues<OptionsSchema>\n\nexport default class CreateAction extends AbstractAction<OptionsSchema> {\n\tpublic optionsSchema = optionsSchema\n\tpublic commandAliases = ['create.skill [destination]']\n\tpublic invocationMessage = 'Creating your new skill... ⚡️'\n\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'This is so much fun! Lets keep moving.',\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":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;;;;;AAGA,IAAMA,aAAa,GAAG,IAAAC,mBAAA,EAAY;EACjCC,EAAE,EAAE,aAD6B;EAEjCC,IAAI,EAAE,cAF2B;EAGjCC,WAAW,EACV,wFAJgC;EAKjCC,MAAM,oBACFC,wBAAA,CAAmBD,MADjB;AAL2B,CAAZ,CAAtB;;IAaqBE,Y;;;;;;;;;;;;;;;sGACGP,a;uGACC,CAAC,4BAAD,C;0GACG,+B;;;;;;;mGAE3B,iBAAqBQ,OAArB;QAAA;QAAA;UAAA;YAAA;cAAA;gBACOC,cADP,GACwBD,OAAO,CAACE,WAAR,gBACdF,OAAO,CAACE,WADM,0BADxB;gBAAA,iCAKQ;kBACNC,KAAK,EAAE,CACN,wCADM,iDAEmCF,cAFnC,wBAGN,qEAHM,EAIN,mGAJM,EAKN,mBALM;gBADD,CALR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EALyCG,2B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DashboardAction.js","names":["optionsSchema","id","name","description","fields","DashboardAction","hints","AbstractAction"],"sources":["../../../../src/features/skill/actions/DashboardAction.ts"],"sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\n\nexport const optionsSchema = buildSchema({\n\tid: 'dashboard',\n\tname: 'Skill dashboard',\n\tdescription: 'Coming soon...',\n\tfields: {},\n})\n\nexport type DashboardActionDefinition = typeof optionsSchema\n\nexport default class DashboardAction extends AbstractAction<DashboardActionDefinition> {\n\tpublic optionsSchema = optionsSchema\n\tpublic commandAliases = ['dashboard']\n\tpublic invocationMessage = 'Loading dashboard... ⚡️'\n\n\tpublic async execute(): Promise<FeatureActionResponse> {\n\t\treturn {\n\t\t\thints: ['Coming soon.'],\n\t\t}\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;;;;;AAGO,IAAMA,aAAa,GAAG,
|
|
1
|
+
{"version":3,"file":"DashboardAction.js","names":["optionsSchema","buildSchema","id","name","description","fields","DashboardAction","hints","AbstractAction"],"sources":["../../../../src/features/skill/actions/DashboardAction.ts"],"sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\n\nexport const optionsSchema = buildSchema({\n\tid: 'dashboard',\n\tname: 'Skill dashboard',\n\tdescription: 'Coming soon...',\n\tfields: {},\n})\n\nexport type DashboardActionDefinition = typeof optionsSchema\n\nexport default class DashboardAction extends AbstractAction<DashboardActionDefinition> {\n\tpublic optionsSchema = optionsSchema\n\tpublic commandAliases = ['dashboard']\n\tpublic invocationMessage = 'Loading dashboard... ⚡️'\n\n\tpublic async execute(): Promise<FeatureActionResponse> {\n\t\treturn {\n\t\t\thints: ['Coming soon.'],\n\t\t}\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;;;;;AAGO,IAAMA,aAAa,GAAG,IAAAC,mBAAA,EAAY;EACxCC,EAAE,EAAE,WADoC;EAExCC,IAAI,EAAE,iBAFkC;EAGxCC,WAAW,EAAE,gBAH2B;EAIxCC,MAAM,EAAE;AAJgC,CAAZ,CAAtB;;;IAScC,e;;;;;;;;;;;;;;;sGACGN,a;uGACC,CAAC,WAAD,C;0GACG,yB;;;;;;;mGAE3B;QAAA;UAAA;YAAA;cAAA;gBAAA,iCACQ;kBACNO,KAAK,EAAE,CAAC,cAAD;gBADD,CADR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EAL4CC,2B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LoginAction.js","names":["optionsSchema","id","description","fields","skillSlug","type","label","LoginAction","options","validateAndNormalizeOptions","person","Service","getLoggedInPerson","loginResponse","skillResponse","ui","renderLine","prompt","isRequired","phone","Action","execute","connectToApi","client","emit","payload","shouldOnlyShowMine","skillResults","eventResponseUtil","getFirstResponseOrThrow","skills","match","find","s","slug","errors","SpruceError","code","friendlyMessage","length","error","choices","map","name","value","selectedSkillId","filter","target","skillId","shouldIncludeApiKey","currentSkillResults","skill","updateCurrentSkill","summaryLines","meta","actionUtil","mergeActionResults","AbstractAction"],"sources":["../../../../src/features/skill/actions/LoginAction.ts"],"sourcesContent":["import { buildSchema, SchemaValues } from '@sprucelabs/schema'\nimport { eventResponseUtil } from '@sprucelabs/spruce-event-utils'\nimport SpruceError from '../../../errors/SpruceError'\nimport actionUtil from '../../../utilities/action.utility'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\nimport { generateSkillSummaryLines } from './RegisterAction'\n\nconst optionsSchema = buildSchema({\n\tid: 'loginSkillAction',\n\tdescription:\n\t\t'If you already registered your skill but lost your env or changed environments.',\n\tfields: {\n\t\tskillSlug: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Namespace',\n\t\t},\n\t},\n})\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.skill']\n\tpublic invocationMessage = 'Logging in as skill... ⚡️'\n\n\tpublic async execute(options: Options): Promise<FeatureActionResponse> {\n\t\tconst { skillSlug } = this.validateAndNormalizeOptions(options)\n\n\t\tconst person = this.Service('auth').getLoggedInPerson()\n\t\tlet loginResponse: FeatureActionResponse = {}\n\t\tlet skillResponse: FeatureActionResponse = {}\n\n\t\tif (!person) {\n\t\t\tthis.ui.renderLine(\n\t\t\t\t'You gotta login as a person before you can login as a skill.'\n\t\t\t)\n\n\t\t\tconst phone = await this.ui.prompt({\n\t\t\t\ttype: 'phone',\n\t\t\t\tlabel: 'Phone number',\n\t\t\t\tisRequired: true,\n\t\t\t})\n\n\t\t\tloginResponse = await this.Action('person', 'login').execute({\n\t\t\t\tphone,\n\t\t\t})\n\t\t}\n\n\t\tconst client = await this.connectToApi()\n\t\tconst skillResults = await client.emit('list-skills::v2020_12_25', {\n\t\t\tpayload: {\n\t\t\t\tshouldOnlyShowMine: true,\n\t\t\t},\n\t\t})\n\n\t\tlet { skills } = eventResponseUtil.getFirstResponseOrThrow(skillResults)\n\n\t\tif (skillSlug) {\n\t\t\tconst match = skills.find((s) => s.slug === skillSlug)\n\n\t\t\tif (!match) {\n\t\t\t\treturn {\n\t\t\t\t\terrors: [\n\t\t\t\t\t\tnew SpruceError({\n\t\t\t\t\t\t\tcode: 'SKILL_NOT_FOUND',\n\t\t\t\t\t\t\tfriendlyMessage: `I couldn't find a skill that you own with the slug: ${skillSlug}`,\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\tskills = [match]\n\t\t}\n\n\t\tif (skills.length === 0) {\n\t\t\tconst error = new SpruceError({ code: 'NO_SKILLS_REGISTERED' })\n\n\t\t\tif (error) {\n\t\t\t\treturn {\n\t\t\t\t\terrors: [error],\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (skills.length > 1) {\n\t\t\tconst selectedSkillId = await this.ui.prompt({\n\t\t\t\ttype: 'select',\n\t\t\t\tlabel: 'Which skill are we logging in as?',\n\t\t\t\tisRequired: true,\n\t\t\t\toptions: {\n\t\t\t\t\tchoices: skills.map((s) => ({\n\t\t\t\t\t\tlabel: s.name,\n\t\t\t\t\t\tvalue: s.id,\n\t\t\t\t\t})),\n\t\t\t\t},\n\t\t\t})\n\n\t\t\tskills = skills.filter((s) => s.id === selectedSkillId)\n\t\t}\n\n\t\tif (skills.length === 1) {\n\t\t\tconst currentSkillResults = await client.emit('get-skill::v2020_12_25', {\n\t\t\t\ttarget: {\n\t\t\t\t\tskillId: skills[0].id,\n\t\t\t\t},\n\t\t\t\tpayload: {\n\t\t\t\t\tshouldIncludeApiKey: true,\n\t\t\t\t},\n\t\t\t})\n\n\t\t\tconst { skill } =\n\t\t\t\teventResponseUtil.getFirstResponseOrThrow(currentSkillResults)\n\n\t\t\tthis.Service('auth').updateCurrentSkill(skill)\n\n\t\t\tskillResponse.summaryLines = generateSkillSummaryLines(skill)\n\t\t\tskillResponse.meta = {\n\t\t\t\tskill,\n\t\t\t}\n\t\t}\n\n\t\treturn actionUtil.mergeActionResults(loginResponse, skillResponse)\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AAEA;;;;;;AAEA,IAAMA,aAAa,GAAG,
|
|
1
|
+
{"version":3,"file":"LoginAction.js","names":["optionsSchema","buildSchema","id","description","fields","skillSlug","type","label","LoginAction","options","validateAndNormalizeOptions","person","Service","getLoggedInPerson","loginResponse","skillResponse","ui","renderLine","prompt","isRequired","phone","Action","execute","connectToApi","client","emit","payload","shouldOnlyShowMine","skillResults","eventResponseUtil","getFirstResponseOrThrow","skills","match","find","s","slug","errors","SpruceError","code","friendlyMessage","length","error","choices","map","name","value","selectedSkillId","filter","target","skillId","shouldIncludeApiKey","currentSkillResults","skill","updateCurrentSkill","summaryLines","generateSkillSummaryLines","meta","actionUtil","mergeActionResults","AbstractAction"],"sources":["../../../../src/features/skill/actions/LoginAction.ts"],"sourcesContent":["import { buildSchema, SchemaValues } from '@sprucelabs/schema'\nimport { eventResponseUtil } from '@sprucelabs/spruce-event-utils'\nimport SpruceError from '../../../errors/SpruceError'\nimport actionUtil from '../../../utilities/action.utility'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\nimport { generateSkillSummaryLines } from './RegisterAction'\n\nconst optionsSchema = buildSchema({\n\tid: 'loginSkillAction',\n\tdescription:\n\t\t'If you already registered your skill but lost your env or changed environments.',\n\tfields: {\n\t\tskillSlug: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Namespace',\n\t\t},\n\t},\n})\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.skill']\n\tpublic invocationMessage = 'Logging in as skill... ⚡️'\n\n\tpublic async execute(options: Options): Promise<FeatureActionResponse> {\n\t\tconst { skillSlug } = this.validateAndNormalizeOptions(options)\n\n\t\tconst person = this.Service('auth').getLoggedInPerson()\n\t\tlet loginResponse: FeatureActionResponse = {}\n\t\tlet skillResponse: FeatureActionResponse = {}\n\n\t\tif (!person) {\n\t\t\tthis.ui.renderLine(\n\t\t\t\t'You gotta login as a person before you can login as a skill.'\n\t\t\t)\n\n\t\t\tconst phone = await this.ui.prompt({\n\t\t\t\ttype: 'phone',\n\t\t\t\tlabel: 'Phone number',\n\t\t\t\tisRequired: true,\n\t\t\t})\n\n\t\t\tloginResponse = await this.Action('person', 'login').execute({\n\t\t\t\tphone,\n\t\t\t})\n\t\t}\n\n\t\tconst client = await this.connectToApi()\n\t\tconst skillResults = await client.emit('list-skills::v2020_12_25', {\n\t\t\tpayload: {\n\t\t\t\tshouldOnlyShowMine: true,\n\t\t\t},\n\t\t})\n\n\t\tlet { skills } = eventResponseUtil.getFirstResponseOrThrow(skillResults)\n\n\t\tif (skillSlug) {\n\t\t\tconst match = skills.find((s) => s.slug === skillSlug)\n\n\t\t\tif (!match) {\n\t\t\t\treturn {\n\t\t\t\t\terrors: [\n\t\t\t\t\t\tnew SpruceError({\n\t\t\t\t\t\t\tcode: 'SKILL_NOT_FOUND',\n\t\t\t\t\t\t\tfriendlyMessage: `I couldn't find a skill that you own with the slug: ${skillSlug}`,\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\tskills = [match]\n\t\t}\n\n\t\tif (skills.length === 0) {\n\t\t\tconst error = new SpruceError({ code: 'NO_SKILLS_REGISTERED' })\n\n\t\t\tif (error) {\n\t\t\t\treturn {\n\t\t\t\t\terrors: [error],\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (skills.length > 1) {\n\t\t\tconst selectedSkillId = await this.ui.prompt({\n\t\t\t\ttype: 'select',\n\t\t\t\tlabel: 'Which skill are we logging in as?',\n\t\t\t\tisRequired: true,\n\t\t\t\toptions: {\n\t\t\t\t\tchoices: skills.map((s) => ({\n\t\t\t\t\t\tlabel: s.name,\n\t\t\t\t\t\tvalue: s.id,\n\t\t\t\t\t})),\n\t\t\t\t},\n\t\t\t})\n\n\t\t\tskills = skills.filter((s) => s.id === selectedSkillId)\n\t\t}\n\n\t\tif (skills.length === 1) {\n\t\t\tconst currentSkillResults = await client.emit('get-skill::v2020_12_25', {\n\t\t\t\ttarget: {\n\t\t\t\t\tskillId: skills[0].id,\n\t\t\t\t},\n\t\t\t\tpayload: {\n\t\t\t\t\tshouldIncludeApiKey: true,\n\t\t\t\t},\n\t\t\t})\n\n\t\t\tconst { skill } =\n\t\t\t\teventResponseUtil.getFirstResponseOrThrow(currentSkillResults)\n\n\t\t\tthis.Service('auth').updateCurrentSkill(skill)\n\n\t\t\tskillResponse.summaryLines = generateSkillSummaryLines(skill)\n\t\t\tskillResponse.meta = {\n\t\t\t\tskill,\n\t\t\t}\n\t\t}\n\n\t\treturn actionUtil.mergeActionResults(loginResponse, skillResponse)\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RebuildAction.js","names":["optionsSchema","id","description","fields","shouldPlayGames","type","label","defaultValue","RebuildAction","options","validateAndNormalizeOptions","command","Service","InFlightEntertainment","start","ui","startLoading","execute","onData","data","writeStatus","resetUi","errors","summaryLines","stop","stopLoading","AbstractAction"],"sources":["../../../../src/features/skill/actions/RebuildAction.ts"],"sourcesContent":["import { buildSchema, SchemaValues } from '@sprucelabs/schema'\nimport InFlightEntertainment from '../../../InFlightEntertainment'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\n\nconst optionsSchema = buildSchema({\n\tid: 'rebuildOptions',\n\tdescription:\n\t\t'Clear the build and node_modules folder and start from the top.',\n\tfields: {\n\t\tshouldPlayGames: {\n\t\t\ttype: 'boolean',\n\t\t\tlabel: 'Play games',\n\t\t\tdefaultValue: true,\n\t\t},\n\t},\n})\n\ntype OptionsSchema = typeof optionsSchema\ntype Options = SchemaValues<OptionsSchema>\n\nexport default class RebuildAction extends AbstractAction<OptionsSchema> {\n\tpublic optionsSchema: OptionsSchema = optionsSchema\n\tpublic commandAliases = ['rebuild']\n\tpublic invocationMessage = 'Rebuilding your skill... ⚡️'\n\n\tpublic async execute(options: Options): Promise<FeatureActionResponse> {\n\t\tconst { shouldPlayGames } = this.validateAndNormalizeOptions(options)\n\t\tconst command = this.Service('command')\n\n\t\ttry {\n\t\t\tif (shouldPlayGames) {\n\t\t\t\tInFlightEntertainment.start([\n\t\t\t\t\t'Rebuild sequence initialized...',\n\t\t\t\t\t'The only option is setting a new high score!',\n\t\t\t\t])\n\t\t\t} else {\n\t\t\t\tthis.ui.startLoading('Rebuilding....')\n\t\t\t}\n\n\t\t\tawait command.execute('yarn rebuild', {\n\t\t\t\tonData: (data: string) => {\n\t\t\t\t\tInFlightEntertainment?.writeStatus(data)\n\t\t\t\t},\n\t\t\t})\n\t\t} catch (err) {\n\t\t\tthis.resetUi()\n\n\t\t\treturn {\n\t\t\t\terrors: [err],\n\t\t\t}\n\t\t}\n\n\t\tthis.resetUi()\n\n\t\treturn {\n\t\t\tsummaryLines: [\n\t\t\t\t'☑️ node_modules cleared.',\n\t\t\t\t'☑️ node_modules installed.',\n\t\t\t\t'☑️ Build folder cleared.',\n\t\t\t\t'☑️ Build complete.',\n\t\t\t],\n\t\t}\n\t}\n\n\tprivate resetUi() {\n\t\tInFlightEntertainment.stop()\n\t\tthis.ui.stopLoading()\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;AAGA,IAAMA,aAAa,GAAG,
|
|
1
|
+
{"version":3,"file":"RebuildAction.js","names":["optionsSchema","buildSchema","id","description","fields","shouldPlayGames","type","label","defaultValue","RebuildAction","options","validateAndNormalizeOptions","command","Service","InFlightEntertainment","start","ui","startLoading","execute","onData","data","writeStatus","resetUi","errors","summaryLines","stop","stopLoading","AbstractAction"],"sources":["../../../../src/features/skill/actions/RebuildAction.ts"],"sourcesContent":["import { buildSchema, SchemaValues } from '@sprucelabs/schema'\nimport InFlightEntertainment from '../../../InFlightEntertainment'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\n\nconst optionsSchema = buildSchema({\n\tid: 'rebuildOptions',\n\tdescription:\n\t\t'Clear the build and node_modules folder and start from the top.',\n\tfields: {\n\t\tshouldPlayGames: {\n\t\t\ttype: 'boolean',\n\t\t\tlabel: 'Play games',\n\t\t\tdefaultValue: true,\n\t\t},\n\t},\n})\n\ntype OptionsSchema = typeof optionsSchema\ntype Options = SchemaValues<OptionsSchema>\n\nexport default class RebuildAction extends AbstractAction<OptionsSchema> {\n\tpublic optionsSchema: OptionsSchema = optionsSchema\n\tpublic commandAliases = ['rebuild']\n\tpublic invocationMessage = 'Rebuilding your skill... ⚡️'\n\n\tpublic async execute(options: Options): Promise<FeatureActionResponse> {\n\t\tconst { shouldPlayGames } = this.validateAndNormalizeOptions(options)\n\t\tconst command = this.Service('command')\n\n\t\ttry {\n\t\t\tif (shouldPlayGames) {\n\t\t\t\tInFlightEntertainment.start([\n\t\t\t\t\t'Rebuild sequence initialized...',\n\t\t\t\t\t'The only option is setting a new high score!',\n\t\t\t\t])\n\t\t\t} else {\n\t\t\t\tthis.ui.startLoading('Rebuilding....')\n\t\t\t}\n\n\t\t\tawait command.execute('yarn rebuild', {\n\t\t\t\tonData: (data: string) => {\n\t\t\t\t\tInFlightEntertainment?.writeStatus(data)\n\t\t\t\t},\n\t\t\t})\n\t\t} catch (err) {\n\t\t\tthis.resetUi()\n\n\t\t\treturn {\n\t\t\t\terrors: [err],\n\t\t\t}\n\t\t}\n\n\t\tthis.resetUi()\n\n\t\treturn {\n\t\t\tsummaryLines: [\n\t\t\t\t'☑️ node_modules cleared.',\n\t\t\t\t'☑️ node_modules installed.',\n\t\t\t\t'☑️ Build folder cleared.',\n\t\t\t\t'☑️ Build complete.',\n\t\t\t],\n\t\t}\n\t}\n\n\tprivate resetUi() {\n\t\tInFlightEntertainment.stop()\n\t\tthis.ui.stopLoading()\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;AAGA,IAAMA,aAAa,GAAG,IAAAC,mBAAA,EAAY;EACjCC,EAAE,EAAE,gBAD6B;EAEjCC,WAAW,EACV,iEAHgC;EAIjCC,MAAM,EAAE;IACPC,eAAe,EAAE;MAChBC,IAAI,EAAE,SADU;MAEhBC,KAAK,EAAE,YAFS;MAGhBC,YAAY,EAAE;IAHE;EADV;AAJyB,CAAZ,CAAtB;;IAgBqBC,a;;;;;;;;;;;;;;;sGACkBT,a;uGACd,CAAC,SAAD,C;0GACG,6B;;;;;;;mGAE3B,iBAAqBU,OAArB;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAAA,wBAC6B,KAAKC,2BAAL,CAAiCD,OAAjC,CAD7B,EACSL,eADT,yBACSA,eADT;gBAEOO,OAFP,GAEiB,KAAKC,OAAL,CAAa,SAAb,CAFjB;gBAAA;;gBAKE,IAAIR,eAAJ,EAAqB;kBACpBS,iCAAA,CAAsBC,KAAtB,CAA4B,CAC3B,iCAD2B,EAE3B,8CAF2B,CAA5B;gBAIA,CALD,MAKO;kBACN,KAAKC,EAAL,CAAQC,YAAR,CAAqB,gBAArB;gBACA;;gBAZH;gBAAA,OAcQL,OAAO,CAACM,OAAR,CAAgB,cAAhB,EAAgC;kBACrCC,MAAM,EAAE,gBAACC,IAAD,EAAkB;oBACzBN,iCAAA,aAAAA,iCAAA,uBAAAA,iCAAA,CAAuBO,WAAvB,CAAmCD,IAAnC;kBACA;gBAHoC,CAAhC,CAdR;;cAAA;gBAAA;gBAAA;;cAAA;gBAAA;gBAAA;gBAoBE,KAAKE,OAAL;gBApBF,iCAsBS;kBACNC,MAAM,EAAE;gBADF,CAtBT;;cAAA;gBA2BC,KAAKD,OAAL;gBA3BD,iCA6BQ;kBACNE,YAAY,EAAE,CACb,0BADa,EAEb,4BAFa,EAGb,0BAHa,EAIb,oBAJa;gBADR,CA7BR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;WAuCA,mBAAkB;MACjBV,iCAAA,CAAsBW,IAAtB;;MACA,KAAKT,EAAL,CAAQU,WAAR;IACA;;;EA/CyCC,2B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RegisterAction.js","names":["optionsSchema","id","description","fields","nameReadable","type","label","isRequired","nameKebab","RegisterAction","options","validateAndNormalizeOptions","connectToApi","client","emit","payload","name","slug","results","eventResponseUtil","getFirstResponseOrThrow","skill","summaryLines","generateSkillSummaryLines","Service","updateCurrentSkill","hints","meta","errors","AbstractAction","apiKey"],"sources":["../../../../src/features/skill/actions/RegisterAction.ts"],"sourcesContent":["import { buildSchema, SchemaValues } from '@sprucelabs/schema'\nimport { eventResponseUtil } from '@sprucelabs/spruce-event-utils'\nimport { RegisteredSkill } from '../../../types/cli.types'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\n\nconst optionsSchema = buildSchema({\n\tid: 'registerSkillAction',\n\tdescription:\n\t\t'Register your skill with Mercury so you can start communicating with other skills.',\n\tfields: {\n\t\tnameReadable: {\n\t\t\ttype: 'text',\n\t\t\tlabel: `What is your skill's name?`,\n\t\t\tisRequired: true,\n\t\t},\n\t\tnameKebab: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Namespace',\n\t\t\tisRequired: true,\n\t\t},\n\t\tdescription: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Describe your skill',\n\t\t},\n\t},\n})\n\ntype OptionsSchema = typeof optionsSchema\ntype Options = SchemaValues<OptionsSchema>\n\nexport default class RegisterAction extends AbstractAction<OptionsSchema> {\n\tpublic optionsSchema: OptionsSchema = optionsSchema\n\tpublic commandAliases = ['register.skill', 'register']\n\tpublic invocationMessage = 'Registering your skill... ⚡️'\n\n\tpublic async execute(options: Options): Promise<FeatureActionResponse> {\n\t\tconst { nameReadable, nameKebab, description } =\n\t\t\tthis.validateAndNormalizeOptions(options)\n\n\t\tconst client = await this.connectToApi()\n\t\tconst results = await client.emit('register-skill::v2020_12_25', {\n\t\t\tpayload: {\n\t\t\t\tname: nameReadable,\n\t\t\t\tslug: nameKebab,\n\t\t\t\tdescription,\n\t\t\t},\n\t\t})\n\n\t\ttry {\n\t\t\tconst { skill } = eventResponseUtil.getFirstResponseOrThrow(results)\n\n\t\t\tconst summaryLines = generateSkillSummaryLines(skill)\n\n\t\t\tthis.Service('auth').updateCurrentSkill(skill)\n\n\t\t\treturn {\n\t\t\t\tsummaryLines,\n\t\t\t\thints: [\n\t\t\t\t\t'Your skill is registered.',\n\t\t\t\t\t'You can check your .env for more details.',\n\t\t\t\t\t\"If you're ready to deploy, try `spruce deploy`. 🚀\",\n\t\t\t\t],\n\t\t\t\tmeta: {\n\t\t\t\t\tskill,\n\t\t\t\t},\n\t\t\t}\n\t\t} catch (err) {\n\t\t\treturn {\n\t\t\t\thints: [\n\t\t\t\t\t`If you've already registered your skill, try 'spruce login.skill'!`,\n\t\t\t\t],\n\t\t\t\terrors: [err],\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport function generateSkillSummaryLines(skill: RegisteredSkill) {\n\treturn [\n\t\t`Name: ${skill.name}`,\n\t\t`Slug: ${skill.slug}`,\n\t\t`ID: ${skill.id}`,\n\t\t`API Key: ${skill.apiKey}`,\n\t]\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAEA;;;;;;AAGA,IAAMA,aAAa,GAAG,
|
|
1
|
+
{"version":3,"file":"RegisterAction.js","names":["optionsSchema","buildSchema","id","description","fields","nameReadable","type","label","isRequired","nameKebab","RegisterAction","options","validateAndNormalizeOptions","connectToApi","client","emit","payload","name","slug","results","eventResponseUtil","getFirstResponseOrThrow","skill","summaryLines","generateSkillSummaryLines","Service","updateCurrentSkill","hints","meta","errors","AbstractAction","apiKey"],"sources":["../../../../src/features/skill/actions/RegisterAction.ts"],"sourcesContent":["import { buildSchema, SchemaValues } from '@sprucelabs/schema'\nimport { eventResponseUtil } from '@sprucelabs/spruce-event-utils'\nimport { RegisteredSkill } from '../../../types/cli.types'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\n\nconst optionsSchema = buildSchema({\n\tid: 'registerSkillAction',\n\tdescription:\n\t\t'Register your skill with Mercury so you can start communicating with other skills.',\n\tfields: {\n\t\tnameReadable: {\n\t\t\ttype: 'text',\n\t\t\tlabel: `What is your skill's name?`,\n\t\t\tisRequired: true,\n\t\t},\n\t\tnameKebab: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Namespace',\n\t\t\tisRequired: true,\n\t\t},\n\t\tdescription: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Describe your skill',\n\t\t},\n\t},\n})\n\ntype OptionsSchema = typeof optionsSchema\ntype Options = SchemaValues<OptionsSchema>\n\nexport default class RegisterAction extends AbstractAction<OptionsSchema> {\n\tpublic optionsSchema: OptionsSchema = optionsSchema\n\tpublic commandAliases = ['register.skill', 'register']\n\tpublic invocationMessage = 'Registering your skill... ⚡️'\n\n\tpublic async execute(options: Options): Promise<FeatureActionResponse> {\n\t\tconst { nameReadable, nameKebab, description } =\n\t\t\tthis.validateAndNormalizeOptions(options)\n\n\t\tconst client = await this.connectToApi()\n\t\tconst results = await client.emit('register-skill::v2020_12_25', {\n\t\t\tpayload: {\n\t\t\t\tname: nameReadable,\n\t\t\t\tslug: nameKebab,\n\t\t\t\tdescription,\n\t\t\t},\n\t\t})\n\n\t\ttry {\n\t\t\tconst { skill } = eventResponseUtil.getFirstResponseOrThrow(results)\n\n\t\t\tconst summaryLines = generateSkillSummaryLines(skill)\n\n\t\t\tthis.Service('auth').updateCurrentSkill(skill)\n\n\t\t\treturn {\n\t\t\t\tsummaryLines,\n\t\t\t\thints: [\n\t\t\t\t\t'Your skill is registered.',\n\t\t\t\t\t'You can check your .env for more details.',\n\t\t\t\t\t\"If you're ready to deploy, try `spruce deploy`. 🚀\",\n\t\t\t\t],\n\t\t\t\tmeta: {\n\t\t\t\t\tskill,\n\t\t\t\t},\n\t\t\t}\n\t\t} catch (err) {\n\t\t\treturn {\n\t\t\t\thints: [\n\t\t\t\t\t`If you've already registered your skill, try 'spruce login.skill'!`,\n\t\t\t\t],\n\t\t\t\terrors: [err],\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport function generateSkillSummaryLines(skill: RegisteredSkill) {\n\treturn [\n\t\t`Name: ${skill.name}`,\n\t\t`Slug: ${skill.slug}`,\n\t\t`ID: ${skill.id}`,\n\t\t`API Key: ${skill.apiKey}`,\n\t]\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAEA;;;;;;AAGA,IAAMA,aAAa,GAAG,IAAAC,mBAAA,EAAY;EACjCC,EAAE,EAAE,qBAD6B;EAEjCC,WAAW,EACV,oFAHgC;EAIjCC,MAAM,EAAE;IACPC,YAAY,EAAE;MACbC,IAAI,EAAE,MADO;MAEbC,KAAK,8BAFQ;MAGbC,UAAU,EAAE;IAHC,CADP;IAMPC,SAAS,EAAE;MACVH,IAAI,EAAE,MADI;MAEVC,KAAK,EAAE,WAFG;MAGVC,UAAU,EAAE;IAHF,CANJ;IAWPL,WAAW,EAAE;MACZG,IAAI,EAAE,MADM;MAEZC,KAAK,EAAE;IAFK;EAXN;AAJyB,CAAZ,CAAtB;;IAyBqBG,c;;;;;;;;;;;;;;;sGACkBV,a;uGACd,CAAC,gBAAD,EAAmB,UAAnB,C;0GACG,8B;;;;;;;mGAE3B,iBAAqBW,OAArB;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAAA,wBAEE,KAAKC,2BAAL,CAAiCD,OAAjC,CAFF,EACSN,YADT,yBACSA,YADT,EACuBI,SADvB,yBACuBA,SADvB,EACkCN,WADlC,yBACkCA,WADlC;gBAAA;gBAAA,OAIsB,KAAKU,YAAL,EAJtB;;cAAA;gBAIOC,MAJP;gBAAA;gBAAA,OAKuBA,MAAM,CAACC,IAAP,CAAY,6BAAZ,EAA2C;kBAChEC,OAAO,EAAE;oBACRC,IAAI,EAAEZ,YADE;oBAERa,IAAI,EAAET,SAFE;oBAGRN,WAAW,EAAXA;kBAHQ;gBADuD,CAA3C,CALvB;;cAAA;gBAKOgB,OALP;gBAAA;gBAAA,wBAcoBC,mCAAA,CAAkBC,uBAAlB,CAA0CF,OAA1C,CAdpB,EAcUG,KAdV,yBAcUA,KAdV;gBAgBQC,YAhBR,GAgBuBC,yBAAyB,CAACF,KAAD,CAhBhD;gBAkBE,KAAKG,OAAL,CAAa,MAAb,EAAqBC,kBAArB,CAAwCJ,KAAxC;gBAlBF,iCAoBS;kBACNC,YAAY,EAAZA,YADM;kBAENI,KAAK,EAAE,CACN,2BADM,EAEN,2CAFM,EAGN,oDAHM,CAFD;kBAONC,IAAI,EAAE;oBACLN,KAAK,EAALA;kBADK;gBAPA,CApBT;;cAAA;gBAAA;gBAAA;gBAAA,iCAgCS;kBACNK,KAAK,EAAE,sEADD;kBAINE,MAAM,EAAE;gBAJF,CAhCT;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EAL2CC,2B;;;;AA+CrC,SAASN,yBAAT,CAAmCF,KAAnC,EAA2D;EACjE,OAAO,iBACGA,KAAK,CAACL,IADT,mBAEGK,KAAK,CAACJ,IAFT,iBAGCI,KAAK,CAACpB,EAHP,sBAIMoB,KAAK,CAACS,MAJZ,EAAP;AAMA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SkillStore.js","names":["SkillStore","values","options","isRegisteringCurrentSkill","assertInSkill","name","slug","description","connectToApi","client","emit","payload","results","eventResponseUtil","getFirstResponseOrThrow","skill","setCurrentSkillsNamespace","Service","updateCurrentSkill","isInstalled","isMarkedAsInstalled","SpruceError","code","currentSkill","getCurrentSkill","shouldAuthAsCurrentSkill","target","skillId","id","response","namespacePascal","namesUtil","toPascal","isRegistered","apiKey","getNamespaceFromPkg","getEventNamespaceForNotRegistered","getSkillDescriptionFromPkg","loadCurrentSkill","pkg","nameFromPackage","get","Error","fallback","current","namespace","isCurrentSkillRegistered","friendlyMessage","updateCurrentSkillNamespace","undefined","logoutCurrentSkill","fetchAllSkills","shouldOnlyShowMine","query","skills","AbstractStore"],"sources":["../../../../src/features/skill/stores/SkillStore.ts"],"sourcesContent":["import { eventResponseUtil } from '@sprucelabs/spruce-event-utils'\nimport { namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport SpruceError from '../../../errors/SpruceError'\nimport AbstractStore from '../../../stores/AbstractStore'\nimport { CurrentSkill, RegisteredSkill } from '../../../types/cli.types'\n\nexport interface CreateSkill {\n\tname: string\n\tslug: string\n\tdescription?: string\n}\n\nexport interface RegisterSkillOptions {\n\tisRegisteringCurrentSkill?: boolean\n}\n\nexport default class SkillStore extends AbstractStore {\n\tpublic readonly name = 'skill'\n\tprivate static currentSkill?: CurrentSkill\n\n\tpublic static clearCurrentSkill() {\n\t\tthis.currentSkill = undefined\n\t}\n\n\tpublic async register(\n\t\tvalues: CreateSkill,\n\t\toptions?: RegisterSkillOptions\n\t): Promise<RegisteredSkill> {\n\t\tconst isRegisteringCurrentSkill =\n\t\t\toptions?.isRegisteringCurrentSkill !== false\n\n\t\tisRegisteringCurrentSkill && this.assertInSkill()\n\n\t\tconst { name, slug, description } = values\n\t\tconst client = await this.connectToApi()\n\n\t\tconst results = await client.emit('register-skill::v2020_12_25', {\n\t\t\tpayload: {\n\t\t\t\tname,\n\t\t\t\tslug,\n\t\t\t\tdescription,\n\t\t\t},\n\t\t})\n\n\t\tconst { skill } = eventResponseUtil.getFirstResponseOrThrow(results)\n\n\t\tif (isRegisteringCurrentSkill) {\n\t\t\tawait this.setCurrentSkillsNamespace(skill.slug)\n\t\t\tthis.Service('auth').updateCurrentSkill(skill)\n\t\t}\n\n\t\treturn skill\n\t}\n\n\tprivate assertInSkill() {\n\t\tconst isInstalled = this.Service('settings').isMarkedAsInstalled('skill')\n\n\t\tif (!isInstalled) {\n\t\t\tthrow new SpruceError({ code: 'DIRECTORY_NOT_SKILL' })\n\t\t}\n\t}\n\n\tpublic async loadCurrentSkill(): Promise<CurrentSkill> {\n\t\tif (SkillStore.currentSkill) {\n\t\t\treturn SkillStore.currentSkill\n\t\t}\n\n\t\tthis.assertInSkill()\n\n\t\tconst currentSkill = this.Service('auth').getCurrentSkill()\n\n\t\tif (currentSkill) {\n\t\t\tconst client = await this.connectToApi({ shouldAuthAsCurrentSkill: true })\n\n\t\t\tconst response = await client.emit('get-skill::v2020_12_25', {\n\t\t\t\ttarget: {\n\t\t\t\t\tskillId: currentSkill.id,\n\t\t\t\t},\n\t\t\t})\n\n\t\t\tconst { skill } = eventResponseUtil.getFirstResponseOrThrow(response)\n\n\t\t\tSkillStore.currentSkill = {\n\t\t\t\t...skill,\n\t\t\t\tnamespacePascal: namesUtil.toPascal(skill.slug),\n\t\t\t\tisRegistered: true,\n\t\t\t\tapiKey: currentSkill.apiKey,\n\t\t\t}\n\n\t\t\treturn SkillStore.currentSkill as CurrentSkill\n\t\t}\n\n\t\treturn {\n\t\t\tname: this.getNamespaceFromPkg(),\n\t\t\tnamespacePascal: this.getEventNamespaceForNotRegistered(),\n\t\t\tdescription: this.getSkillDescriptionFromPkg(),\n\t\t\tisRegistered: false,\n\t\t}\n\t}\n\n\tpublic async isCurrentSkillRegistered() {\n\t\tconst skill = await this.loadCurrentSkill()\n\t\treturn skill.isRegistered\n\t}\n\n\tprivate getNamespaceFromPkg() {\n\t\tconst pkg = this.Service('pkg')\n\t\tconst nameFromPackage = pkg.get('skill.namespace')\n\t\tif (!nameFromPackage) {\n\t\t\tthrow new Error(\n\t\t\t\t'You need need to set skill.namespace in the package.json'\n\t\t\t)\n\t\t}\n\t\treturn nameFromPackage\n\t}\n\n\tpublic async loadCurrentSkillsNamespace() {\n\t\tconst fallback = namesUtil.toPascal(this.getNamespaceFromPkg())\n\n\t\tif (this.Service('auth').getCurrentSkill()) {\n\t\t\tconst current = await this.loadCurrentSkill()\n\t\t\treturn namesUtil.toPascal(current.slug ?? fallback)\n\t\t}\n\n\t\treturn fallback\n\t}\n\n\tpublic async setCurrentSkillsNamespace(namespace: string) {\n\t\tlet isRegistered = false\n\t\ttry {\n\t\t\tisRegistered = await this.isCurrentSkillRegistered()\n\t\t\t// eslint-disable-next-line no-empty\n\t\t} catch {}\n\n\t\tif (isRegistered) {\n\t\t\tthrow new SpruceError({\n\t\t\t\tcode: 'GENERIC',\n\t\t\t\tfriendlyMessage: `You can't set the namespace of a skill that is registered.`,\n\t\t\t})\n\t\t}\n\n\t\tthis.Service('auth').updateCurrentSkillNamespace(namespace)\n\t}\n\n\tprivate getEventNamespaceForNotRegistered() {\n\t\treturn namesUtil.toPascal(this.getNamespaceFromPkg())\n\t}\n\n\tprivate getSkillDescriptionFromPkg() {\n\t\tconst pkg = this.Service('pkg')\n\t\treturn pkg.get('description')\n\t}\n\n\tpublic async unregisterSkill(skillId: string) {\n\t\tconst client = await this.connectToApi()\n\n\t\tconst response = await client.emit('unregister-skill::v2020_12_25', {\n\t\t\ttarget: {\n\t\t\t\tskillId,\n\t\t\t},\n\t\t})\n\n\t\teventResponseUtil.getFirstResponseOrThrow(response)\n\n\t\tif (SkillStore.currentSkill?.id === skillId) {\n\t\t\tSkillStore.currentSkill = undefined\n\t\t\tthis.Service('auth').logoutCurrentSkill()\n\t\t}\n\t}\n\n\tpublic async fetchMySkills() {\n\t\treturn this.fetchAllSkills({ shouldOnlyShowMine: true })\n\t}\n\n\tpublic async fetchAllSkills(query?: {\n\t\tshouldOnlyShowMine?: boolean\n\t\tnamespaces?: string[]\n\t}) {\n\t\tconst client = await this.connectToApi()\n\n\t\tconst response = await client.emit('list-skills::v2020_12_25', {\n\t\t\tpayload: {\n\t\t\t\t...query,\n\t\t\t},\n\t\t})\n\n\t\tconst { skills } = eventResponseUtil.getFirstResponseOrThrow(response)\n\n\t\treturn skills\n\t}\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SkillStore.js","names":["SkillStore","values","options","isRegisteringCurrentSkill","assertInSkill","name","slug","description","connectToApi","client","emit","payload","results","eventResponseUtil","getFirstResponseOrThrow","skill","setCurrentSkillsNamespace","Service","updateCurrentSkill","isInstalled","isMarkedAsInstalled","SpruceError","code","currentSkill","getCurrentSkill","shouldAuthAsCurrentSkill","target","skillId","id","response","namespacePascal","namesUtil","toPascal","isRegistered","apiKey","getNamespaceFromPkg","getEventNamespaceForNotRegistered","getSkillDescriptionFromPkg","loadCurrentSkill","pkg","nameFromPackage","get","Error","fallback","current","namespace","isCurrentSkillRegistered","friendlyMessage","updateCurrentSkillNamespace","undefined","logoutCurrentSkill","fetchAllSkills","shouldOnlyShowMine","query","skills","AbstractStore"],"sources":["../../../../src/features/skill/stores/SkillStore.ts"],"sourcesContent":["import { eventResponseUtil } from '@sprucelabs/spruce-event-utils'\nimport { namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport SpruceError from '../../../errors/SpruceError'\nimport AbstractStore from '../../../stores/AbstractStore'\nimport { CurrentSkill, RegisteredSkill } from '../../../types/cli.types'\n\nexport interface CreateSkill {\n\tname: string\n\tslug: string\n\tdescription?: string\n}\n\nexport interface RegisterSkillOptions {\n\tisRegisteringCurrentSkill?: boolean\n}\n\nexport default class SkillStore extends AbstractStore {\n\tpublic readonly name = 'skill'\n\tprivate static currentSkill?: CurrentSkill\n\n\tpublic static clearCurrentSkill() {\n\t\tthis.currentSkill = undefined\n\t}\n\n\tpublic async register(\n\t\tvalues: CreateSkill,\n\t\toptions?: RegisterSkillOptions\n\t): Promise<RegisteredSkill> {\n\t\tconst isRegisteringCurrentSkill =\n\t\t\toptions?.isRegisteringCurrentSkill !== false\n\n\t\tisRegisteringCurrentSkill && this.assertInSkill()\n\n\t\tconst { name, slug, description } = values\n\t\tconst client = await this.connectToApi()\n\n\t\tconst results = await client.emit('register-skill::v2020_12_25', {\n\t\t\tpayload: {\n\t\t\t\tname,\n\t\t\t\tslug,\n\t\t\t\tdescription,\n\t\t\t},\n\t\t})\n\n\t\tconst { skill } = eventResponseUtil.getFirstResponseOrThrow(results)\n\n\t\tif (isRegisteringCurrentSkill) {\n\t\t\tawait this.setCurrentSkillsNamespace(skill.slug)\n\t\t\tthis.Service('auth').updateCurrentSkill(skill)\n\t\t}\n\n\t\treturn skill\n\t}\n\n\tprivate assertInSkill() {\n\t\tconst isInstalled = this.Service('settings').isMarkedAsInstalled('skill')\n\n\t\tif (!isInstalled) {\n\t\t\tthrow new SpruceError({ code: 'DIRECTORY_NOT_SKILL' })\n\t\t}\n\t}\n\n\tpublic async loadCurrentSkill(): Promise<CurrentSkill> {\n\t\tif (SkillStore.currentSkill) {\n\t\t\treturn SkillStore.currentSkill\n\t\t}\n\n\t\tthis.assertInSkill()\n\n\t\tconst currentSkill = this.Service('auth').getCurrentSkill()\n\n\t\tif (currentSkill) {\n\t\t\tconst client = await this.connectToApi({ shouldAuthAsCurrentSkill: true })\n\n\t\t\tconst response = await client.emit('get-skill::v2020_12_25', {\n\t\t\t\ttarget: {\n\t\t\t\t\tskillId: currentSkill.id,\n\t\t\t\t},\n\t\t\t})\n\n\t\t\tconst { skill } = eventResponseUtil.getFirstResponseOrThrow(response)\n\n\t\t\tSkillStore.currentSkill = {\n\t\t\t\t...skill,\n\t\t\t\tnamespacePascal: namesUtil.toPascal(skill.slug),\n\t\t\t\tisRegistered: true,\n\t\t\t\tapiKey: currentSkill.apiKey,\n\t\t\t}\n\n\t\t\treturn SkillStore.currentSkill as CurrentSkill\n\t\t}\n\n\t\treturn {\n\t\t\tname: this.getNamespaceFromPkg(),\n\t\t\tnamespacePascal: this.getEventNamespaceForNotRegistered(),\n\t\t\tdescription: this.getSkillDescriptionFromPkg(),\n\t\t\tisRegistered: false,\n\t\t}\n\t}\n\n\tpublic async isCurrentSkillRegistered() {\n\t\tconst skill = await this.loadCurrentSkill()\n\t\treturn skill.isRegistered\n\t}\n\n\tprivate getNamespaceFromPkg() {\n\t\tconst pkg = this.Service('pkg')\n\t\tconst nameFromPackage = pkg.get('skill.namespace')\n\t\tif (!nameFromPackage) {\n\t\t\tthrow new Error(\n\t\t\t\t'You need need to set skill.namespace in the package.json'\n\t\t\t)\n\t\t}\n\t\treturn nameFromPackage\n\t}\n\n\tpublic async loadCurrentSkillsNamespace() {\n\t\tconst fallback = namesUtil.toPascal(this.getNamespaceFromPkg())\n\n\t\tif (this.Service('auth').getCurrentSkill()) {\n\t\t\tconst current = await this.loadCurrentSkill()\n\t\t\treturn namesUtil.toPascal(current.slug ?? fallback)\n\t\t}\n\n\t\treturn fallback\n\t}\n\n\tpublic async setCurrentSkillsNamespace(namespace: string) {\n\t\tlet isRegistered = false\n\t\ttry {\n\t\t\tisRegistered = await this.isCurrentSkillRegistered()\n\t\t\t// eslint-disable-next-line no-empty\n\t\t} catch {}\n\n\t\tif (isRegistered) {\n\t\t\tthrow new SpruceError({\n\t\t\t\tcode: 'GENERIC',\n\t\t\t\tfriendlyMessage: `You can't set the namespace of a skill that is registered.`,\n\t\t\t})\n\t\t}\n\n\t\tthis.Service('auth').updateCurrentSkillNamespace(namespace)\n\t}\n\n\tprivate getEventNamespaceForNotRegistered() {\n\t\treturn namesUtil.toPascal(this.getNamespaceFromPkg())\n\t}\n\n\tprivate getSkillDescriptionFromPkg() {\n\t\tconst pkg = this.Service('pkg')\n\t\treturn pkg.get('description')\n\t}\n\n\tpublic async unregisterSkill(skillId: string) {\n\t\tconst client = await this.connectToApi()\n\n\t\tconst response = await client.emit('unregister-skill::v2020_12_25', {\n\t\t\ttarget: {\n\t\t\t\tskillId,\n\t\t\t},\n\t\t})\n\n\t\teventResponseUtil.getFirstResponseOrThrow(response)\n\n\t\tif (SkillStore.currentSkill?.id === skillId) {\n\t\t\tSkillStore.currentSkill = undefined\n\t\t\tthis.Service('auth').logoutCurrentSkill()\n\t\t}\n\t}\n\n\tpublic async fetchMySkills() {\n\t\treturn this.fetchAllSkills({ shouldOnlyShowMine: true })\n\t}\n\n\tpublic async fetchAllSkills(query?: {\n\t\tshouldOnlyShowMine?: boolean\n\t\tnamespaces?: string[]\n\t}) {\n\t\tconst client = await this.connectToApi()\n\n\t\tconst response = await client.emit('list-skills::v2020_12_25', {\n\t\t\tpayload: {\n\t\t\t\t...query,\n\t\t\t},\n\t\t})\n\n\t\tconst { skills } = eventResponseUtil.getFirstResponseOrThrow(response)\n\n\t\treturn skills\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Updater.js","names":["Updater","skill","emitter","feature","normalizedOptions","skillWriter","Writer","upgradeMode","pkgService","Service","name","get","description","emit","results","eventResponseUtil","getAllResponsePayloadsAndErrors","SpruceError","payloads","filesToSkip","NODE_FILES_TO_UPGRADE","payload","push","writeSkill","cwd","generatedFiles"],"sources":["../../../../src/features/skill/updaters/Updater.ts"],"sourcesContent":["import { eventResponseUtil } from '@sprucelabs/spruce-event-utils'\nimport { SpruceSchemas } from '#spruce/schemas/schemas.types'\nimport SpruceError from '../../../errors/SpruceError'\nimport { GlobalEmitter } from '../../../GlobalEmitter'\nimport AbstractFeature from '../../AbstractFeature'\nimport { NODE_FILES_TO_UPGRADE } from '../../node/writers/NodeWriter'\n\ntype UpgradeOptions = SpruceSchemas.SpruceCli.v2020_07_22.UpgradeSkillOptions\n\ntype Feature =\n\tAbstractFeature<SpruceSchemas.SpruceCli.v2020_07_22.SkillFeatureSchema>\n\nexport default class Updater {\n\tprivate feature: Feature\n\tprivate emitter: GlobalEmitter\n\n\tpublic constructor(skill: Feature, emitter: GlobalEmitter) {\n\t\tthis.emitter = emitter\n\t\tthis.feature = skill\n\t}\n\n\tpublic async updateFiles(normalizedOptions: UpgradeOptions) {\n\t\tconst skillWriter = this.feature.Writer('skill', {\n\t\t\tupgradeMode: normalizedOptions.upgradeMode,\n\t\t})\n\t\tconst pkgService = this.feature.Service('pkg')\n\t\tconst name = pkgService.get('name')\n\t\tconst description = pkgService.get('description')\n\n\t\tconst results = await this.emitter.emit(\n\t\t\t'skill.will-write-directory-template'\n\t\t)\n\n\t\tconst { payloads } = eventResponseUtil.getAllResponsePayloadsAndErrors(\n\t\t\tresults,\n\t\t\tSpruceError\n\t\t)\n\n\t\tconst filesToSkip = [...NODE_FILES_TO_UPGRADE, 'package.json']\n\n\t\tfor (const payload of payloads) {\n\t\t\tif (payload.filesToSkip) {\n\t\t\t\tfilesToSkip.push(...payload.filesToSkip)\n\t\t\t}\n\t\t}\n\n\t\tconst generatedFiles = await skillWriter.writeSkill(this.feature.cwd, {\n\t\t\tname,\n\t\t\tdescription,\n\t\t\tfilesToSkip,\n\t\t})\n\n\t\treturn generatedFiles\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AAEA;;AAGA;;;;;;;;IAOqBA,O;EAIpB,iBAAmBC,KAAnB,EAAmCC,OAAnC,EAA2D;IAAA;IAAA;IAAA;IAC1D,KAAKA,OAAL,GAAeA,OAAf;IACA,KAAKC,OAAL,GAAeF,KAAf;EACA;;;;;uGAED,iBAAyBG,iBAAzB;QAAA;;QAAA;UAAA;YAAA;cAAA;gBACOC,WADP,GACqB,KAAKF,OAAL,CAAaG,MAAb,CAAoB,OAApB,EAA6B;kBAChDC,WAAW,EAAEH,iBAAiB,CAACG;gBADiB,CAA7B,CADrB;gBAIOC,UAJP,GAIoB,KAAKL,OAAL,CAAaM,OAAb,CAAqB,KAArB,CAJpB;gBAKOC,IALP,GAKcF,UAAU,CAACG,GAAX,CAAe,MAAf,CALd;gBAMOC,WANP,GAMqBJ,UAAU,CAACG,GAAX,CAAe,aAAf,CANrB;gBAAA;gBAAA,OAQuB,KAAKT,OAAL,CAAaW,IAAb,CACrB,qCADqB,CARvB;;cAAA;gBAQOC,OARP;gBAAA,wBAYsBC,
|
|
1
|
+
{"version":3,"file":"Updater.js","names":["Updater","skill","emitter","feature","normalizedOptions","skillWriter","Writer","upgradeMode","pkgService","Service","name","get","description","emit","results","eventResponseUtil","getAllResponsePayloadsAndErrors","SpruceError","payloads","filesToSkip","NODE_FILES_TO_UPGRADE","payload","push","writeSkill","cwd","generatedFiles"],"sources":["../../../../src/features/skill/updaters/Updater.ts"],"sourcesContent":["import { eventResponseUtil } from '@sprucelabs/spruce-event-utils'\nimport { SpruceSchemas } from '#spruce/schemas/schemas.types'\nimport SpruceError from '../../../errors/SpruceError'\nimport { GlobalEmitter } from '../../../GlobalEmitter'\nimport AbstractFeature from '../../AbstractFeature'\nimport { NODE_FILES_TO_UPGRADE } from '../../node/writers/NodeWriter'\n\ntype UpgradeOptions = SpruceSchemas.SpruceCli.v2020_07_22.UpgradeSkillOptions\n\ntype Feature =\n\tAbstractFeature<SpruceSchemas.SpruceCli.v2020_07_22.SkillFeatureSchema>\n\nexport default class Updater {\n\tprivate feature: Feature\n\tprivate emitter: GlobalEmitter\n\n\tpublic constructor(skill: Feature, emitter: GlobalEmitter) {\n\t\tthis.emitter = emitter\n\t\tthis.feature = skill\n\t}\n\n\tpublic async updateFiles(normalizedOptions: UpgradeOptions) {\n\t\tconst skillWriter = this.feature.Writer('skill', {\n\t\t\tupgradeMode: normalizedOptions.upgradeMode,\n\t\t})\n\t\tconst pkgService = this.feature.Service('pkg')\n\t\tconst name = pkgService.get('name')\n\t\tconst description = pkgService.get('description')\n\n\t\tconst results = await this.emitter.emit(\n\t\t\t'skill.will-write-directory-template'\n\t\t)\n\n\t\tconst { payloads } = eventResponseUtil.getAllResponsePayloadsAndErrors(\n\t\t\tresults,\n\t\t\tSpruceError\n\t\t)\n\n\t\tconst filesToSkip = [...NODE_FILES_TO_UPGRADE, 'package.json']\n\n\t\tfor (const payload of payloads) {\n\t\t\tif (payload.filesToSkip) {\n\t\t\t\tfilesToSkip.push(...payload.filesToSkip)\n\t\t\t}\n\t\t}\n\n\t\tconst generatedFiles = await skillWriter.writeSkill(this.feature.cwd, {\n\t\t\tname,\n\t\t\tdescription,\n\t\t\tfilesToSkip,\n\t\t})\n\n\t\treturn generatedFiles\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AAEA;;AAGA;;;;;;;;IAOqBA,O;EAIpB,iBAAmBC,KAAnB,EAAmCC,OAAnC,EAA2D;IAAA;IAAA;IAAA;IAC1D,KAAKA,OAAL,GAAeA,OAAf;IACA,KAAKC,OAAL,GAAeF,KAAf;EACA;;;;;uGAED,iBAAyBG,iBAAzB;QAAA;;QAAA;UAAA;YAAA;cAAA;gBACOC,WADP,GACqB,KAAKF,OAAL,CAAaG,MAAb,CAAoB,OAApB,EAA6B;kBAChDC,WAAW,EAAEH,iBAAiB,CAACG;gBADiB,CAA7B,CADrB;gBAIOC,UAJP,GAIoB,KAAKL,OAAL,CAAaM,OAAb,CAAqB,KAArB,CAJpB;gBAKOC,IALP,GAKcF,UAAU,CAACG,GAAX,CAAe,MAAf,CALd;gBAMOC,WANP,GAMqBJ,UAAU,CAACG,GAAX,CAAe,aAAf,CANrB;gBAAA;gBAAA,OAQuB,KAAKT,OAAL,CAAaW,IAAb,CACrB,qCADqB,CARvB;;cAAA;gBAQOC,OARP;gBAAA,wBAYsBC,mCAAA,CAAkBC,+BAAlB,CACpBF,OADoB,EAEpBG,uBAFoB,CAZtB,EAYSC,QAZT,yBAYSA,QAZT;gBAiBOC,WAjBP,iDAiByBC,iCAjBzB,IAiBgD,cAjBhD;gBAAA,uCAmBuBF,QAnBvB;;gBAAA;kBAmBC,oDAAgC;oBAArBG,OAAqB;;oBAC/B,IAAIA,OAAO,CAACF,WAAZ,EAAyB;sBACxBA,WAAW,CAACG,IAAZ,OAAAH,WAAW,sCAASE,OAAO,CAACF,WAAjB,EAAX;oBACA;kBACD;gBAvBF;kBAAA;gBAAA;kBAAA;gBAAA;;gBAAA;gBAAA,OAyB8Bd,WAAW,CAACkB,UAAZ,CAAuB,KAAKpB,OAAL,CAAaqB,GAApC,EAAyC;kBACrEd,IAAI,EAAJA,IADqE;kBAErEE,WAAW,EAAXA,WAFqE;kBAGrEO,WAAW,EAAXA;gBAHqE,CAAzC,CAzB9B;;cAAA;gBAyBOM,cAzBP;gBAAA,iCA+BQA,cA/BR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SkillWriter.js","names":["SkillGenerator","destinationDir","options","filesToSkip","context","writeDirectoryTemplate","code","DirectoryTemplateCode","Skill","firstFileWriteMessage","name","namesUtil","toKebab","AbstractWriter"],"sources":["../../../../src/features/skill/writers/SkillWriter.ts"],"sourcesContent":["import { namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport {\n\tDirectoryTemplateContextSkill,\n\tDirectoryTemplateCode,\n} from '@sprucelabs/spruce-templates'\nimport AbstractWriter, { WriteResults } from '../../../writers/AbstractWriter'\n\nexport default class SkillGenerator extends AbstractWriter {\n\tpublic async writeSkill(\n\t\tdestinationDir: string,\n\t\toptions: DirectoryTemplateContextSkill & { filesToSkip?: string[] }\n\t): Promise<WriteResults> {\n\t\tconst { filesToSkip, ...context } = options\n\n\t\treturn this.writeDirectoryTemplate({\n\t\t\tdestinationDir,\n\t\t\tcode: DirectoryTemplateCode.Skill,\n\t\t\tfilesToSkip,\n\t\t\tfirstFileWriteMessage:\n\t\t\t\t'As I was upgrading your skill, I found some files I want to overwrite. Lemme take you through them now.',\n\t\t\tcontext: {\n\t\t\t\t...context,\n\t\t\t\tname: namesUtil.toKebab(options.name),\n\t\t\t},\n\t\t})\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAIA;;;;;;;;;;;;IAEqBA,c;;;;;;;;;;;;;sGACpB,iBACCC,cADD,EAECC,OAFD;QAAA;QAAA;UAAA;YAAA;cAAA;gBAISC,WAJT,GAIqCD,OAJrC,CAISC,WAJT,EAIyBC,OAJzB,6CAIqCF,OAJrC;gBAAA,iCAMQ,KAAKG,sBAAL,CAA4B;kBAClCJ,cAAc,EAAdA,cADkC;kBAElCK,IAAI,EAAEC,
|
|
1
|
+
{"version":3,"file":"SkillWriter.js","names":["SkillGenerator","destinationDir","options","filesToSkip","context","writeDirectoryTemplate","code","DirectoryTemplateCode","Skill","firstFileWriteMessage","name","namesUtil","toKebab","AbstractWriter"],"sources":["../../../../src/features/skill/writers/SkillWriter.ts"],"sourcesContent":["import { namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport {\n\tDirectoryTemplateContextSkill,\n\tDirectoryTemplateCode,\n} from '@sprucelabs/spruce-templates'\nimport AbstractWriter, { WriteResults } from '../../../writers/AbstractWriter'\n\nexport default class SkillGenerator extends AbstractWriter {\n\tpublic async writeSkill(\n\t\tdestinationDir: string,\n\t\toptions: DirectoryTemplateContextSkill & { filesToSkip?: string[] }\n\t): Promise<WriteResults> {\n\t\tconst { filesToSkip, ...context } = options\n\n\t\treturn this.writeDirectoryTemplate({\n\t\t\tdestinationDir,\n\t\t\tcode: DirectoryTemplateCode.Skill,\n\t\t\tfilesToSkip,\n\t\t\tfirstFileWriteMessage:\n\t\t\t\t'As I was upgrading your skill, I found some files I want to overwrite. Lemme take you through them now.',\n\t\t\tcontext: {\n\t\t\t\t...context,\n\t\t\t\tname: namesUtil.toKebab(options.name),\n\t\t\t},\n\t\t})\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAIA;;;;;;;;;;;;IAEqBA,c;;;;;;;;;;;;;sGACpB,iBACCC,cADD,EAECC,OAFD;QAAA;QAAA;UAAA;YAAA;cAAA;gBAISC,WAJT,GAIqCD,OAJrC,CAISC,WAJT,EAIyBC,OAJzB,6CAIqCF,OAJrC;gBAAA,iCAMQ,KAAKG,sBAAL,CAA4B;kBAClCJ,cAAc,EAAdA,cADkC;kBAElCK,IAAI,EAAEC,sCAAA,CAAsBC,KAFM;kBAGlCL,WAAW,EAAXA,WAHkC;kBAIlCM,qBAAqB,EACpB,yGALiC;kBAMlCL,OAAO,kCACHA,OADG;oBAENM,IAAI,EAAEC,2BAAA,CAAUC,OAAV,CAAkBV,OAAO,CAACQ,IAA1B;kBAFA;gBAN2B,CAA5B,CANR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EAD2CG,2B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StoreFeature.js","names":["StoreFeature","options","code","isRequired","name","isDev","diskUtil","resolvePath","__dirname","emitter","on","registerAbstractTestClassHandler","bind","handleDidExecute","abstractClasses","label","featureCode","payload","featureInstaller","isInstalled","isUpgrade","actionCode","uiUtil","renderMasthead","ui","headline","Action","execute","results","Writer","writePlugin","cwd","files","AbstractFeature"],"sources":["../../../src/features/store/StoreFeature.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport uiUtil from '../../utilities/ui.utility'\nimport AbstractFeature, {\n\tFeatureDependency,\n\tFeatureOptions,\n} from '../AbstractFeature'\nimport { FeatureCode } from '../features.types'\n\ndeclare module '../../features/features.types' {\n\tinterface FeatureMap {\n\t\tstore: StoreFeature\n\t}\n}\n\nexport default class StoreFeature extends AbstractFeature {\n\tpublic nameReadable = 'Data Stores'\n\tpublic description = 'For working with remote places of storage.'\n\tpublic code: FeatureCode = 'store'\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\t\t{ name: '@sprucelabs/spruce-store-plugin@latest', isDev: false },\n\t\t{ name: '@sprucelabs/data-stores@latest', isDev: false },\n\t]\n\n\tpublic actionsDir = diskUtil.resolvePath(__dirname, 'actions')\n\n\tpublic constructor(options: FeatureOptions) {\n\t\tsuper(options)\n\n\t\tvoid this.emitter.on(\n\t\t\t'test.register-abstract-test-classes',\n\t\t\tthis.registerAbstractTestClassHandler.bind(this)\n\t\t)\n\t\tvoid this.emitter.on(\n\t\t\t'feature.did-execute',\n\t\t\tthis.handleDidExecute.bind(this)\n\t\t)\n\t}\n\n\tprivate async registerAbstractTestClassHandler() {\n\t\treturn {\n\t\t\tabstractClasses: [\n\t\t\t\t{\n\t\t\t\t\tname: 'AbstractStoreTest',\n\t\t\t\t\tlabel: 'AbstractStoreTest',\n\t\t\t\t\timport: '@sprucelabs/spruce-store-plugin',\n\t\t\t\t\tfeatureCode: 'store',\n\t\t\t\t},\n\t\t\t],\n\t\t}\n\t}\n\n\tprivate async handleDidExecute(payload: {\n\t\tfeatureCode: string\n\t\tactionCode: string\n\t}) {\n\t\tconst isInstalled = await this.featureInstaller.isInstalled('store')\n\n\t\tconst isUpgrade =\n\t\t\tisInstalled &&\n\t\t\tpayload.featureCode === 'node' &&\n\t\t\tpayload.actionCode === 'upgrade'\n\n\t\tif (isUpgrade) {\n\t\t\tuiUtil.renderMasthead({\n\t\t\t\tui: this.ui,\n\t\t\t\theadline: 'Re-syncing data stores...',\n\t\t\t})\n\n\t\t\tconst results = await this.Action('store', 'sync').execute({})\n\n\t\t\treturn results\n\t\t}\n\n\t\treturn {}\n\t}\n\n\tpublic async afterPackageInstall() {\n\t\tconst files = await this.Writer('store').writePlugin(this.cwd)\n\t\treturn {\n\t\t\tfiles,\n\t\t}\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;IAYqBA,Y;;;;;EAiBpB,sBAAmBC,OAAnB,EAA4C;IAAA;;IAAA;IAC3C,0BAAMA,OAAN;IAD2C,iGAhBtB,aAgBsB;IAAA,gGAfvB,4CAeuB;IAAA,yFAdjB,OAciB;IAAA,iGAbD,CAC1C;MACCC,IAAI,EAAE,OADP;MAECC,UAAU,EAAE;IAFb,CAD0C,CAaC;IAAA,wGAPf,CAC5B;MAAEC,IAAI,EAAE,wCAAR;MAAkDC,KAAK,EAAE;IAAzD,CAD4B,EAE5B;MAAED,IAAI,EAAE,gCAAR;MAA0CC,KAAK,EAAE;IAAjD,CAF4B,CAOe;IAAA,+FAFxBC,
|
|
1
|
+
{"version":3,"file":"StoreFeature.js","names":["StoreFeature","options","code","isRequired","name","isDev","diskUtil","resolvePath","__dirname","emitter","on","registerAbstractTestClassHandler","bind","handleDidExecute","abstractClasses","label","featureCode","payload","featureInstaller","isInstalled","isUpgrade","actionCode","uiUtil","renderMasthead","ui","headline","Action","execute","results","Writer","writePlugin","cwd","files","AbstractFeature"],"sources":["../../../src/features/store/StoreFeature.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport uiUtil from '../../utilities/ui.utility'\nimport AbstractFeature, {\n\tFeatureDependency,\n\tFeatureOptions,\n} from '../AbstractFeature'\nimport { FeatureCode } from '../features.types'\n\ndeclare module '../../features/features.types' {\n\tinterface FeatureMap {\n\t\tstore: StoreFeature\n\t}\n}\n\nexport default class StoreFeature extends AbstractFeature {\n\tpublic nameReadable = 'Data Stores'\n\tpublic description = 'For working with remote places of storage.'\n\tpublic code: FeatureCode = 'store'\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\t\t{ name: '@sprucelabs/spruce-store-plugin@latest', isDev: false },\n\t\t{ name: '@sprucelabs/data-stores@latest', isDev: false },\n\t]\n\n\tpublic actionsDir = diskUtil.resolvePath(__dirname, 'actions')\n\n\tpublic constructor(options: FeatureOptions) {\n\t\tsuper(options)\n\n\t\tvoid this.emitter.on(\n\t\t\t'test.register-abstract-test-classes',\n\t\t\tthis.registerAbstractTestClassHandler.bind(this)\n\t\t)\n\t\tvoid this.emitter.on(\n\t\t\t'feature.did-execute',\n\t\t\tthis.handleDidExecute.bind(this)\n\t\t)\n\t}\n\n\tprivate async registerAbstractTestClassHandler() {\n\t\treturn {\n\t\t\tabstractClasses: [\n\t\t\t\t{\n\t\t\t\t\tname: 'AbstractStoreTest',\n\t\t\t\t\tlabel: 'AbstractStoreTest',\n\t\t\t\t\timport: '@sprucelabs/spruce-store-plugin',\n\t\t\t\t\tfeatureCode: 'store',\n\t\t\t\t},\n\t\t\t],\n\t\t}\n\t}\n\n\tprivate async handleDidExecute(payload: {\n\t\tfeatureCode: string\n\t\tactionCode: string\n\t}) {\n\t\tconst isInstalled = await this.featureInstaller.isInstalled('store')\n\n\t\tconst isUpgrade =\n\t\t\tisInstalled &&\n\t\t\tpayload.featureCode === 'node' &&\n\t\t\tpayload.actionCode === 'upgrade'\n\n\t\tif (isUpgrade) {\n\t\t\tuiUtil.renderMasthead({\n\t\t\t\tui: this.ui,\n\t\t\t\theadline: 'Re-syncing data stores...',\n\t\t\t})\n\n\t\t\tconst results = await this.Action('store', 'sync').execute({})\n\n\t\t\treturn results\n\t\t}\n\n\t\treturn {}\n\t}\n\n\tpublic async afterPackageInstall() {\n\t\tconst files = await this.Writer('store').writePlugin(this.cwd)\n\t\treturn {\n\t\t\tfiles,\n\t\t}\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;IAYqBA,Y;;;;;EAiBpB,sBAAmBC,OAAnB,EAA4C;IAAA;;IAAA;IAC3C,0BAAMA,OAAN;IAD2C,iGAhBtB,aAgBsB;IAAA,gGAfvB,4CAeuB;IAAA,yFAdjB,OAciB;IAAA,iGAbD,CAC1C;MACCC,IAAI,EAAE,OADP;MAECC,UAAU,EAAE;IAFb,CAD0C,CAaC;IAAA,wGAPf,CAC5B;MAAEC,IAAI,EAAE,wCAAR;MAAkDC,KAAK,EAAE;IAAzD,CAD4B,EAE5B;MAAED,IAAI,EAAE,gCAAR;MAA0CC,KAAK,EAAE;IAAjD,CAF4B,CAOe;IAAA,+FAFxBC,0BAAA,CAASC,WAAT,CAAqBC,SAArB,EAAgC,SAAhC,CAEwB;IAG3C,KAAK,MAAKC,OAAL,CAAaC,EAAb,CACJ,qCADI,EAEJ,MAAKC,gCAAL,CAAsCC,IAAtC,gDAFI,CAAL;IAIA,KAAK,MAAKH,OAAL,CAAaC,EAAb,CACJ,qBADI,EAEJ,MAAKG,gBAAL,CAAsBD,IAAtB,gDAFI,CAAL;IAP2C;EAW3C;;;;;4HAED;QAAA;UAAA;YAAA;cAAA;gBAAA,iCACQ;kBACNE,eAAe,EAAE,CAChB;oBACCV,IAAI,EAAE,mBADP;oBAECW,KAAK,EAAE,mBAFR;oBAGC,UAAQ,iCAHT;oBAICC,WAAW,EAAE;kBAJd,CADgB;gBADX,CADR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;4GAaA,kBAA+BC,OAA/B;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAI2B,KAAKC,gBAAL,CAAsBC,WAAtB,CAAkC,OAAlC,CAJ3B;;cAAA;gBAIOA,WAJP;gBAMOC,SANP,GAOED,WAAW,IACXF,OAAO,CAACD,WAAR,KAAwB,MADxB,IAEAC,OAAO,CAACI,UAAR,KAAuB,SATzB;;gBAAA,KAWKD,SAXL;kBAAA;kBAAA;gBAAA;;gBAYEE,cAAA,CAAOC,cAAP,CAAsB;kBACrBC,EAAE,EAAE,KAAKA,EADY;kBAErBC,QAAQ,EAAE;gBAFW,CAAtB;;gBAZF;gBAAA,OAiBwB,KAAKC,MAAL,CAAY,OAAZ,EAAqB,MAArB,EAA6BC,OAA7B,CAAqC,EAArC,CAjBxB;;cAAA;gBAiBQC,OAjBR;gBAAA,kCAmBSA,OAnBT;;cAAA;gBAAA,kCAsBQ,EAtBR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;+GAyBA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACqB,KAAKC,MAAL,CAAY,OAAZ,EAAqBC,WAArB,CAAiC,KAAKC,GAAtC,CADrB;;cAAA;gBACOC,KADP;gBAAA,kCAEQ;kBACNA,KAAK,EAALA;gBADM,CAFR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EApEyCC,4B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateAction.js","names":["optionsSchema","id","description","fields","nameReadable","namedTemplateItemBuilder","label","hint","nameReadablePlural","namePascal","isRequired","namePascalPlural","nameSnakePlural","CreateAction","options","validateAndNormalizeOptions","writer","Writer","writeStore","cwd","namesUtil","toPascal","toSnake","files","Action","execute","syncResults","actionUtil","mergeActionResults","errors","AbstractAction"],"sources":["../../../../src/features/store/actions/CreateAction.ts"],"sourcesContent":["import { buildSchema, SchemaValues } from '@sprucelabs/schema'\nimport { namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport namedTemplateItemBuilder from '../../../schemas/v2020_07_22/namedTemplateItem.builder'\nimport actionUtil from '../../../utilities/action.utility'\nimport AbstractAction from '../../AbstractAction'\n\nconst optionsSchema = buildSchema({\n\tid: 'createStoreOptions',\n\tdescription:\n\t\t'Create a place to store data. Can be a database, can be memory, can be a spreadsheet. If you need to store data, do it here.',\n\tfields: {\n\t\tnameReadable: {\n\t\t\t...namedTemplateItemBuilder.fields.nameReadable,\n\t\t\tlabel: 'Store name (singular)',\n\t\t\thint: 'Make it easy to read and singlar, e.g. Person or Bid',\n\t\t},\n\t\tnameReadablePlural: {\n\t\t\t...namedTemplateItemBuilder.fields.nameReadablePlural,\n\t\t\tlabel: 'Store name (plural)',\n\t\t\thint: 'Make it easy to read and plural, e.g. People or Bids',\n\t\t},\n\t\tnamePascal: {\n\t\t\t...namedTemplateItemBuilder.fields.namePascal,\n\t\t\tisRequired: true,\n\t\t},\n\t\tnamePascalPlural: namedTemplateItemBuilder.fields.namePascalPlural,\n\t\tnameSnakePlural: namedTemplateItemBuilder.fields.nameSnakePlural,\n\t},\n})\n\ntype OptionsSchema = typeof optionsSchema\ntype Options = SchemaValues<OptionsSchema>\n\nexport default class CreateAction extends AbstractAction<OptionsSchema> {\n\tpublic optionsSchema = optionsSchema\n\tpublic invocationMessage = 'Creating a data store... 💿'\n\n\tpublic async execute(options: Options) {\n\t\tconst {\n\t\t\tnamePascal,\n\t\t\tnamePascalPlural,\n\t\t\tnameSnakePlural,\n\t\t\tnameReadablePlural,\n\t\t} = this.validateAndNormalizeOptions(options)\n\n\t\tconst writer = this.Writer('store')\n\n\t\ttry {\n\t\t\tconst files = await writer.writeStore(this.cwd, {\n\t\t\t\tnamePascal,\n\t\t\t\tnamePascalPlural:\n\t\t\t\t\tnamePascalPlural ?? namesUtil.toPascal(nameReadablePlural),\n\t\t\t\tnameSnakePlural:\n\t\t\t\t\tnameSnakePlural ?? namesUtil.toSnake(nameReadablePlural),\n\t\t\t})\n\n\t\t\tconst syncResults = await this.Action('store', 'sync').execute({})\n\n\t\t\treturn actionUtil.mergeActionResults(syncResults, {\n\t\t\t\tfiles,\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":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AAEA,IAAMA,aAAa,GAAG,
|
|
1
|
+
{"version":3,"file":"CreateAction.js","names":["optionsSchema","buildSchema","id","description","fields","nameReadable","namedTemplateItemBuilder","label","hint","nameReadablePlural","namePascal","isRequired","namePascalPlural","nameSnakePlural","CreateAction","options","validateAndNormalizeOptions","writer","Writer","writeStore","cwd","namesUtil","toPascal","toSnake","files","Action","execute","syncResults","actionUtil","mergeActionResults","errors","AbstractAction"],"sources":["../../../../src/features/store/actions/CreateAction.ts"],"sourcesContent":["import { buildSchema, SchemaValues } from '@sprucelabs/schema'\nimport { namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport namedTemplateItemBuilder from '../../../schemas/v2020_07_22/namedTemplateItem.builder'\nimport actionUtil from '../../../utilities/action.utility'\nimport AbstractAction from '../../AbstractAction'\n\nconst optionsSchema = buildSchema({\n\tid: 'createStoreOptions',\n\tdescription:\n\t\t'Create a place to store data. Can be a database, can be memory, can be a spreadsheet. If you need to store data, do it here.',\n\tfields: {\n\t\tnameReadable: {\n\t\t\t...namedTemplateItemBuilder.fields.nameReadable,\n\t\t\tlabel: 'Store name (singular)',\n\t\t\thint: 'Make it easy to read and singlar, e.g. Person or Bid',\n\t\t},\n\t\tnameReadablePlural: {\n\t\t\t...namedTemplateItemBuilder.fields.nameReadablePlural,\n\t\t\tlabel: 'Store name (plural)',\n\t\t\thint: 'Make it easy to read and plural, e.g. People or Bids',\n\t\t},\n\t\tnamePascal: {\n\t\t\t...namedTemplateItemBuilder.fields.namePascal,\n\t\t\tisRequired: true,\n\t\t},\n\t\tnamePascalPlural: namedTemplateItemBuilder.fields.namePascalPlural,\n\t\tnameSnakePlural: namedTemplateItemBuilder.fields.nameSnakePlural,\n\t},\n})\n\ntype OptionsSchema = typeof optionsSchema\ntype Options = SchemaValues<OptionsSchema>\n\nexport default class CreateAction extends AbstractAction<OptionsSchema> {\n\tpublic optionsSchema = optionsSchema\n\tpublic invocationMessage = 'Creating a data store... 💿'\n\n\tpublic async execute(options: Options) {\n\t\tconst {\n\t\t\tnamePascal,\n\t\t\tnamePascalPlural,\n\t\t\tnameSnakePlural,\n\t\t\tnameReadablePlural,\n\t\t} = this.validateAndNormalizeOptions(options)\n\n\t\tconst writer = this.Writer('store')\n\n\t\ttry {\n\t\t\tconst files = await writer.writeStore(this.cwd, {\n\t\t\t\tnamePascal,\n\t\t\t\tnamePascalPlural:\n\t\t\t\t\tnamePascalPlural ?? namesUtil.toPascal(nameReadablePlural),\n\t\t\t\tnameSnakePlural:\n\t\t\t\t\tnameSnakePlural ?? namesUtil.toSnake(nameReadablePlural),\n\t\t\t})\n\n\t\t\tconst syncResults = await this.Action('store', 'sync').execute({})\n\n\t\t\treturn actionUtil.mergeActionResults(syncResults, {\n\t\t\t\tfiles,\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":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AAEA,IAAMA,aAAa,GAAG,IAAAC,mBAAA,EAAY;EACjCC,EAAE,EAAE,oBAD6B;EAEjCC,WAAW,EACV,8HAHgC;EAIjCC,MAAM,EAAE;IACPC,YAAY,kCACRC,6BAAA,CAAyBF,MAAzB,CAAgCC,YADxB;MAEXE,KAAK,EAAE,uBAFI;MAGXC,IAAI,EAAE;IAHK,EADL;IAMPC,kBAAkB,kCACdH,6BAAA,CAAyBF,MAAzB,CAAgCK,kBADlB;MAEjBF,KAAK,EAAE,qBAFU;MAGjBC,IAAI,EAAE;IAHW,EANX;IAWPE,UAAU,kCACNJ,6BAAA,CAAyBF,MAAzB,CAAgCM,UAD1B;MAETC,UAAU,EAAE;IAFH,EAXH;IAePC,gBAAgB,EAAEN,6BAAA,CAAyBF,MAAzB,CAAgCQ,gBAf3C;IAgBPC,eAAe,EAAEP,6BAAA,CAAyBF,MAAzB,CAAgCS;EAhB1C;AAJyB,CAAZ,CAAtB;;IA2BqBC,Y;;;;;;;;;;;;;;;sGACGd,a;0GACI,6B;;;;;;;mGAE3B,iBAAqBe,OAArB;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAAA,wBAMK,KAAKC,2BAAL,CAAiCD,OAAjC,CANL,EAEEL,UAFF,yBAEEA,UAFF,EAGEE,gBAHF,yBAGEA,gBAHF,EAIEC,eAJF,yBAIEA,eAJF,EAKEJ,kBALF,yBAKEA,kBALF;gBAQOQ,MARP,GAQgB,KAAKC,MAAL,CAAY,OAAZ,CARhB;gBAAA;gBAAA;gBAAA,OAWsBD,MAAM,CAACE,UAAP,CAAkB,KAAKC,GAAvB,EAA4B;kBAC/CV,UAAU,EAAVA,UAD+C;kBAE/CE,gBAAgB,EACfA,gBADe,aACfA,gBADe,cACfA,gBADe,GACKS,2BAAA,CAAUC,QAAV,CAAmBb,kBAAnB,CAH0B;kBAI/CI,eAAe,EACdA,eADc,aACdA,eADc,cACdA,eADc,GACKQ,2BAAA,CAAUE,OAAV,CAAkBd,kBAAlB;gBAL2B,CAA5B,CAXtB;;cAAA;gBAWQe,KAXR;gBAAA;gBAAA,OAmB4B,KAAKC,MAAL,CAAY,OAAZ,EAAqB,MAArB,EAA6BC,OAA7B,CAAqC,EAArC,CAnB5B;;cAAA;gBAmBQC,WAnBR;gBAAA,iCAqBSC,kBAAA,CAAWC,kBAAX,CAA8BF,WAA9B,EAA2C;kBACjDH,KAAK,EAALA;gBADiD,CAA3C,CArBT;;cAAA;gBAAA;gBAAA;gBAAA,iCAyBS;kBACNM,MAAM,EAAE;gBADF,CAzBT;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EAJyCC,2B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SyncAction.js","names":["optionsSchema","id","description","fields","SyncAction","_options","Store","fetchStores","stores","files","length","destination","diskUtil","resolveHashSprucePath","cwd","builder","StoreTemplateItemBuilder","templateItems","buildTemplateItems","writer","Writer","writeTypesAndMap","errors","AbstractAction"],"sources":["../../../../src/features/store/actions/SyncAction.ts"],"sourcesContent":["import { buildSchema, SchemaValues } from '@sprucelabs/schema'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { GeneratedFile } from '../../../types/cli.types'\nimport AbstractAction from '../../AbstractAction'\nimport StoreTemplateItemBuilder from '../templateItemBuilders/StoreTemplateItemBuilder'\n\nconst optionsSchema = buildSchema({\n\tid: 'syncDataStoreOptions',\n\tdescription:\n\t\t\"Only needed if you change a store's name, manually add or remove one.\",\n\tfields: {},\n})\n\ntype OptionsSchema = typeof optionsSchema\ntype Options = SchemaValues<OptionsSchema>\n\nexport default class SyncAction extends AbstractAction<OptionsSchema> {\n\tpublic optionsSchema = optionsSchema\n\tpublic commandAliases = ['sync.stores']\n\tpublic invocationMessage =\n\t\t'Generating store types and setting up store factory... 💿'\n\n\tpublic async execute(_options: Options) {\n\t\ttry {\n\t\t\tconst stores = await this.Store('store').fetchStores()\n\n\t\t\tlet files: GeneratedFile[] = []\n\n\t\t\tif (stores.length > 0) {\n\t\t\t\tconst destination = diskUtil.resolveHashSprucePath(this.cwd, 'stores')\n\t\t\t\tconst builder = new StoreTemplateItemBuilder()\n\t\t\t\tconst templateItems = builder.buildTemplateItems(stores, destination)\n\n\t\t\t\tconst writer = this.Writer('store')\n\t\t\t\tfiles = await writer.writeTypesAndMap(destination, {\n\t\t\t\t\tstores: templateItems,\n\t\t\t\t})\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tfiles,\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":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAEA;;AACA;;;;;;AAEA,IAAMA,aAAa,GAAG,
|
|
1
|
+
{"version":3,"file":"SyncAction.js","names":["optionsSchema","buildSchema","id","description","fields","SyncAction","_options","Store","fetchStores","stores","files","length","destination","diskUtil","resolveHashSprucePath","cwd","builder","StoreTemplateItemBuilder","templateItems","buildTemplateItems","writer","Writer","writeTypesAndMap","errors","AbstractAction"],"sources":["../../../../src/features/store/actions/SyncAction.ts"],"sourcesContent":["import { buildSchema, SchemaValues } from '@sprucelabs/schema'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { GeneratedFile } from '../../../types/cli.types'\nimport AbstractAction from '../../AbstractAction'\nimport StoreTemplateItemBuilder from '../templateItemBuilders/StoreTemplateItemBuilder'\n\nconst optionsSchema = buildSchema({\n\tid: 'syncDataStoreOptions',\n\tdescription:\n\t\t\"Only needed if you change a store's name, manually add or remove one.\",\n\tfields: {},\n})\n\ntype OptionsSchema = typeof optionsSchema\ntype Options = SchemaValues<OptionsSchema>\n\nexport default class SyncAction extends AbstractAction<OptionsSchema> {\n\tpublic optionsSchema = optionsSchema\n\tpublic commandAliases = ['sync.stores']\n\tpublic invocationMessage =\n\t\t'Generating store types and setting up store factory... 💿'\n\n\tpublic async execute(_options: Options) {\n\t\ttry {\n\t\t\tconst stores = await this.Store('store').fetchStores()\n\n\t\t\tlet files: GeneratedFile[] = []\n\n\t\t\tif (stores.length > 0) {\n\t\t\t\tconst destination = diskUtil.resolveHashSprucePath(this.cwd, 'stores')\n\t\t\t\tconst builder = new StoreTemplateItemBuilder()\n\t\t\t\tconst templateItems = builder.buildTemplateItems(stores, destination)\n\n\t\t\t\tconst writer = this.Writer('store')\n\t\t\t\tfiles = await writer.writeTypesAndMap(destination, {\n\t\t\t\t\tstores: templateItems,\n\t\t\t\t})\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tfiles,\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":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAEA;;AACA;;;;;;AAEA,IAAMA,aAAa,GAAG,IAAAC,mBAAA,EAAY;EACjCC,EAAE,EAAE,sBAD6B;EAEjCC,WAAW,EACV,uEAHgC;EAIjCC,MAAM,EAAE;AAJyB,CAAZ,CAAtB;;IAUqBC,U;;;;;;;;;;;;;;;sGACGL,a;uGACC,CAAC,aAAD,C;0GAEvB,2D;;;;;;;mGAED,iBAAqBM,QAArB;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA;gBAAA,OAEuB,KAAKC,KAAL,CAAW,OAAX,EAAoBC,WAApB,EAFvB;;cAAA;gBAEQC,MAFR;gBAIMC,KAJN,GAI+B,EAJ/B;;gBAAA,MAMMD,MAAM,CAACE,MAAP,GAAgB,CANtB;kBAAA;kBAAA;gBAAA;;gBAOSC,WAPT,GAOuBC,0BAAA,CAASC,qBAAT,CAA+B,KAAKC,GAApC,EAAyC,QAAzC,CAPvB;gBAQSC,OART,GAQmB,IAAIC,oCAAJ,EARnB;gBASSC,aATT,GASyBF,OAAO,CAACG,kBAAR,CAA2BV,MAA3B,EAAmCG,WAAnC,CATzB;gBAWSQ,MAXT,GAWkB,KAAKC,MAAL,CAAY,OAAZ,CAXlB;gBAAA;gBAAA,OAYiBD,MAAM,CAACE,gBAAP,CAAwBV,WAAxB,EAAqC;kBAClDH,MAAM,EAAES;gBAD0C,CAArC,CAZjB;;cAAA;gBAYGR,KAZH;;cAAA;gBAAA,iCAiBS;kBACNA,KAAK,EAALA;gBADM,CAjBT;;cAAA;gBAAA;gBAAA;gBAAA,iCAqBS;kBACNa,MAAM,EAAE;gBADF,CArBT;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EANuCC,2B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StoreStore.js","names":["StoreStore","search","generateGlobbyPattern","matches","results","introspectionUtil","introspect","stores","i","length","className","classes","SpruceError","code","file","push","path","diskUtil","resolvePath","cwd","AbstractStore"],"sources":["../../../../src/features/store/stores/StoreStore.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport globby from 'globby'\nimport SpruceError from '../../../errors/SpruceError'\nimport AbstractStore from '../../../stores/AbstractStore'\nimport introspectionUtil from '../../../utilities/introspection.utility'\n\nexport interface LoadedStore {\n\tclassName: string\n\tpath: string\n}\n\nexport default class StoreStore extends AbstractStore {\n\tpublic name = 'store'\n\n\tpublic async fetchStores() {\n\t\tconst search = this.generateGlobbyPattern()\n\t\tconst matches = await globby(search)\n\n\t\tconst results = introspectionUtil.introspect(matches)\n\n\t\tconst stores: LoadedStore[] = []\n\n\t\tfor (let i = 0; i < results.length; i++) {\n\t\t\tconst introspect = results[i]\n\t\t\tconst className = introspect.classes[0]?.className\n\t\t\tif (!className) {\n\t\t\t\tthrow new SpruceError({ code: 'FAILED_TO_IMPORT', file: matches[i] })\n\t\t\t}\n\n\t\t\tstores.push({ className, path: matches[i] })\n\t\t}\n\n\t\treturn stores\n\t}\n\n\tprivate generateGlobbyPattern() {\n\t\treturn diskUtil.resolvePath(this.cwd, 'src', '**', '*.store.ts')\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;IAOqBA,U;;;;;;;;;;;;;;;6FACN,O;;;;;;;uGAEd;QAAA;;QAAA;UAAA;YAAA;cAAA;gBACOC,MADP,GACgB,KAAKC,qBAAL,EADhB;gBAAA;gBAAA,OAEuB,
|
|
1
|
+
{"version":3,"file":"StoreStore.js","names":["StoreStore","search","generateGlobbyPattern","globby","matches","results","introspectionUtil","introspect","stores","i","length","className","classes","SpruceError","code","file","push","path","diskUtil","resolvePath","cwd","AbstractStore"],"sources":["../../../../src/features/store/stores/StoreStore.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport globby from 'globby'\nimport SpruceError from '../../../errors/SpruceError'\nimport AbstractStore from '../../../stores/AbstractStore'\nimport introspectionUtil from '../../../utilities/introspection.utility'\n\nexport interface LoadedStore {\n\tclassName: string\n\tpath: string\n}\n\nexport default class StoreStore extends AbstractStore {\n\tpublic name = 'store'\n\n\tpublic async fetchStores() {\n\t\tconst search = this.generateGlobbyPattern()\n\t\tconst matches = await globby(search)\n\n\t\tconst results = introspectionUtil.introspect(matches)\n\n\t\tconst stores: LoadedStore[] = []\n\n\t\tfor (let i = 0; i < results.length; i++) {\n\t\t\tconst introspect = results[i]\n\t\t\tconst className = introspect.classes[0]?.className\n\t\t\tif (!className) {\n\t\t\t\tthrow new SpruceError({ code: 'FAILED_TO_IMPORT', file: matches[i] })\n\t\t\t}\n\n\t\t\tstores.push({ className, path: matches[i] })\n\t\t}\n\n\t\treturn stores\n\t}\n\n\tprivate generateGlobbyPattern() {\n\t\treturn diskUtil.resolvePath(this.cwd, 'src', '**', '*.store.ts')\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;IAOqBA,U;;;;;;;;;;;;;;;6FACN,O;;;;;;;uGAEd;QAAA;;QAAA;UAAA;YAAA;cAAA;gBACOC,MADP,GACgB,KAAKC,qBAAL,EADhB;gBAAA;gBAAA,OAEuB,IAAAC,kBAAA,EAAOF,MAAP,CAFvB;;cAAA;gBAEOG,OAFP;gBAIOC,OAJP,GAIiBC,yBAAA,CAAkBC,UAAlB,CAA6BH,OAA7B,CAJjB;gBAMOI,MANP,GAM+B,EAN/B;gBAQUC,CARV,GAQc,CARd;;cAAA;gBAAA,MAQiBA,CAAC,GAAGJ,OAAO,CAACK,MAR7B;kBAAA;kBAAA;gBAAA;;gBASQH,UATR,GASqBF,OAAO,CAACI,CAAD,CAT5B;gBAUQE,SAVR,2BAUoBJ,UAAU,CAACK,OAAX,CAAmB,CAAnB,CAVpB,yDAUoB,qBAAuBD,SAV3C;;gBAAA,IAWOA,SAXP;kBAAA;kBAAA;gBAAA;;gBAAA,MAYS,IAAIE,uBAAJ,CAAgB;kBAAEC,IAAI,EAAE,kBAAR;kBAA4BC,IAAI,EAAEX,OAAO,CAACK,CAAD;gBAAzC,CAAhB,CAZT;;cAAA;gBAeED,MAAM,CAACQ,IAAP,CAAY;kBAAEL,SAAS,EAATA,SAAF;kBAAaM,IAAI,EAAEb,OAAO,CAACK,CAAD;gBAA1B,CAAZ;;cAfF;gBAQqCA,CAAC,EARtC;gBAAA;gBAAA;;cAAA;gBAAA,iCAkBQD,MAlBR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;WAqBA,iCAAgC;MAC/B,OAAOU,0BAAA,CAASC,WAAT,CAAqB,KAAKC,GAA1B,EAA+B,KAA/B,EAAsC,IAAtC,EAA4C,YAA5C,CAAP;IACA;;;EA1BsCC,0B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StoreTemplateItemBuilder.js","names":["StoreTemplateItemBuilder","stores","destination","items","store","ext","pathUtil","extname","path","relativePath","relative","replace","pascalPlural","className","push","namePascalPlural","nameCamelPlural","namesUtil","toCamel"],"sources":["../../../../src/features/store/templateItemBuilders/StoreTemplateItemBuilder.ts"],"sourcesContent":["import pathUtil from 'path'\nimport { namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport { StoreTemplateItem } from '@sprucelabs/spruce-templates'\nimport { LoadedStore } from '../stores/StoreStore'\n\nexport default class StoreTemplateItemBuilder {\n\tpublic buildTemplateItems(\n\t\tstores: LoadedStore[],\n\t\tdestination: string\n\t): StoreTemplateItem[] {\n\t\tconst items: StoreTemplateItem[] = []\n\n\t\tfor (const store of stores) {\n\t\t\tconst ext = pathUtil.extname(store.path)\n\t\t\tconst relativePath = pathUtil\n\t\t\t\t.relative(destination, store.path)\n\t\t\t\t.replace(ext, '')\n\n\t\t\tconst pascalPlural = store.className.replace('Store', '')\n\t\t\titems.push({\n\t\t\t\tnamePascalPlural: pascalPlural,\n\t\t\t\tnameCamelPlural: namesUtil.toCamel(pascalPlural),\n\t\t\t\tpath: relativePath,\n\t\t\t})\n\t\t}\n\n\t\treturn items\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;;;;;;;IAIqBA,wB;;;;;;;WACpB,4BACCC,MADD,EAECC,WAFD,EAGuB;MACtB,IAAMC,KAA0B,GAAG,EAAnC;;MADsB,2CAGFF,MAHE;MAAA;;MAAA;QAGtB,oDAA4B;UAAA,IAAjBG,KAAiB;;UAC3B,IAAMC,GAAG,GAAGC,
|
|
1
|
+
{"version":3,"file":"StoreTemplateItemBuilder.js","names":["StoreTemplateItemBuilder","stores","destination","items","store","ext","pathUtil","extname","path","relativePath","relative","replace","pascalPlural","className","push","namePascalPlural","nameCamelPlural","namesUtil","toCamel"],"sources":["../../../../src/features/store/templateItemBuilders/StoreTemplateItemBuilder.ts"],"sourcesContent":["import pathUtil from 'path'\nimport { namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport { StoreTemplateItem } from '@sprucelabs/spruce-templates'\nimport { LoadedStore } from '../stores/StoreStore'\n\nexport default class StoreTemplateItemBuilder {\n\tpublic buildTemplateItems(\n\t\tstores: LoadedStore[],\n\t\tdestination: string\n\t): StoreTemplateItem[] {\n\t\tconst items: StoreTemplateItem[] = []\n\n\t\tfor (const store of stores) {\n\t\t\tconst ext = pathUtil.extname(store.path)\n\t\t\tconst relativePath = pathUtil\n\t\t\t\t.relative(destination, store.path)\n\t\t\t\t.replace(ext, '')\n\n\t\t\tconst pascalPlural = store.className.replace('Store', '')\n\t\t\titems.push({\n\t\t\t\tnamePascalPlural: pascalPlural,\n\t\t\t\tnameCamelPlural: namesUtil.toCamel(pascalPlural),\n\t\t\t\tpath: relativePath,\n\t\t\t})\n\t\t}\n\n\t\treturn items\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;;;;;;;IAIqBA,wB;;;;;;;WACpB,4BACCC,MADD,EAECC,WAFD,EAGuB;MACtB,IAAMC,KAA0B,GAAG,EAAnC;;MADsB,2CAGFF,MAHE;MAAA;;MAAA;QAGtB,oDAA4B;UAAA,IAAjBG,KAAiB;;UAC3B,IAAMC,GAAG,GAAGC,gBAAA,CAASC,OAAT,CAAiBH,KAAK,CAACI,IAAvB,CAAZ;;UACA,IAAMC,YAAY,GAAGH,gBAAA,CACnBI,QADmB,CACVR,WADU,EACGE,KAAK,CAACI,IADT,EAEnBG,OAFmB,CAEXN,GAFW,EAEN,EAFM,CAArB;;UAIA,IAAMO,YAAY,GAAGR,KAAK,CAACS,SAAN,CAAgBF,OAAhB,CAAwB,OAAxB,EAAiC,EAAjC,CAArB;UACAR,KAAK,CAACW,IAAN,CAAW;YACVC,gBAAgB,EAAEH,YADR;YAEVI,eAAe,EAAEC,2BAAA,CAAUC,OAAV,CAAkBN,YAAlB,CAFP;YAGVJ,IAAI,EAAEC;UAHI,CAAX;QAKA;MAfqB;QAAA;MAAA;QAAA;MAAA;;MAiBtB,OAAON,KAAP;IACA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StoreWriter.js","names":["StoreWriter","destination","options","namePascalPlural","files","filename","fileDest","diskUtil","resolvePath","doesFileExist","SpruceError","code","contents","templates","store","writeFile","lint","push","action","name","path","cwd","resolveHashSprucePath","pluginContents","storePlugin","results","writeFileIfChangedMixinResults","Promise","all","writeTypes","writeMap","types","map","file","typesContent","storeTypes","mapContent","stores","AbstractWriter"],"sources":["../../../../src/features/store/writers/StoreWriter.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport {\n\tStoreTemplateItem,\n\tStoreTemplateOptions,\n} from '@sprucelabs/spruce-templates'\nimport SpruceError from '../../../errors/SpruceError'\nimport { GeneratedFile } from '../../../types/cli.types'\nimport AbstractWriter from '../../../writers/AbstractWriter'\n\nexport default class StoreWriter extends AbstractWriter {\n\tpublic async writeStore(destination: string, options: StoreTemplateOptions) {\n\t\tconst { namePascalPlural } = options\n\n\t\tconst files: GeneratedFile[] = []\n\n\t\tconst filename = `${namePascalPlural}.store.ts`\n\n\t\tconst fileDest = diskUtil.resolvePath(\n\t\t\tdestination,\n\t\t\t'src',\n\t\t\t'stores',\n\t\t\tfilename\n\t\t)\n\n\t\tif (diskUtil.doesFileExist(fileDest)) {\n\t\t\tthrow new SpruceError({ code: 'STORE_EXISTS' })\n\t\t}\n\n\t\tconst contents = this.templates.store(options)\n\n\t\tdiskUtil.writeFile(fileDest, contents)\n\n\t\tawait this.lint(fileDest)\n\n\t\tfiles.push({\n\t\t\taction: 'generated',\n\t\t\tname: filename,\n\t\t\tpath: fileDest,\n\t\t})\n\n\t\treturn files\n\t}\n\n\tpublic writePlugin(cwd: string) {\n\t\tconst destination = diskUtil.resolveHashSprucePath(\n\t\t\tcwd,\n\t\t\t'features',\n\t\t\t'store.plugin.ts'\n\t\t)\n\n\t\tconst pluginContents = this.templates.storePlugin()\n\n\t\tconst results = this.writeFileIfChangedMixinResults(\n\t\t\tdestination,\n\t\t\tpluginContents,\n\t\t\t'Loads all your data stores and connects you to any databases you have configured.'\n\t\t)\n\n\t\treturn results\n\t}\n\n\tpublic async writeTypesAndMap(\n\t\tdestination: string,\n\t\toptions: { stores: StoreTemplateItem[] }\n\t) {\n\t\tconst [types, map] = await Promise.all([\n\t\t\tthis.writeTypes(destination, options),\n\t\t\tthis.writeMap(destination, options),\n\t\t])\n\n\t\treturn [...types, ...map]\n\t}\n\n\tpublic async writeTypes(\n\t\tdestination: string,\n\t\toptions: { stores: StoreTemplateItem[] }\n\t) {\n\t\tconst file = diskUtil.resolvePath(destination, 'stores.types.ts')\n\n\t\tconst typesContent = this.templates.storeTypes(options)\n\n\t\tconst files = this.writeFileIfChangedMixinResults(\n\t\t\tfile,\n\t\t\ttypesContent,\n\t\t\t'The type merging for so the StoreFactory properly types you stores.'\n\t\t)\n\n\t\tawait this.lint(file)\n\n\t\treturn files\n\t}\n\n\tpublic async writeMap(\n\t\tdestination: string,\n\t\toptions: { stores: StoreTemplateItem[] }\n\t) {\n\t\tconst file = diskUtil.resolvePath(destination, 'stores.ts')\n\t\tconst mapContent = this.templates.stores(options)\n\n\t\tconst files = this.writeFileIfChangedMixinResults(\n\t\t\tfile,\n\t\t\tmapContent,\n\t\t\t'A reference to all your data stores for easy inclusion.'\n\t\t)\n\n\t\tawait this.lint(file)\n\n\t\treturn files\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAKA;;AAEA;;;;;;IAEqBA,W;;;;;;;;;;;;;sGACpB,iBAAwBC,WAAxB,EAA6CC,OAA7C;QAAA;QAAA;UAAA;YAAA;cAAA;gBACSC,gBADT,GAC8BD,OAD9B,CACSC,gBADT;gBAGOC,KAHP,GAGgC,EAHhC;gBAKOC,QALP,aAKqBF,gBALrB;gBAOOG,QAPP,GAOkBC,
|
|
1
|
+
{"version":3,"file":"StoreWriter.js","names":["StoreWriter","destination","options","namePascalPlural","files","filename","fileDest","diskUtil","resolvePath","doesFileExist","SpruceError","code","contents","templates","store","writeFile","lint","push","action","name","path","cwd","resolveHashSprucePath","pluginContents","storePlugin","results","writeFileIfChangedMixinResults","Promise","all","writeTypes","writeMap","types","map","file","typesContent","storeTypes","mapContent","stores","AbstractWriter"],"sources":["../../../../src/features/store/writers/StoreWriter.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport {\n\tStoreTemplateItem,\n\tStoreTemplateOptions,\n} from '@sprucelabs/spruce-templates'\nimport SpruceError from '../../../errors/SpruceError'\nimport { GeneratedFile } from '../../../types/cli.types'\nimport AbstractWriter from '../../../writers/AbstractWriter'\n\nexport default class StoreWriter extends AbstractWriter {\n\tpublic async writeStore(destination: string, options: StoreTemplateOptions) {\n\t\tconst { namePascalPlural } = options\n\n\t\tconst files: GeneratedFile[] = []\n\n\t\tconst filename = `${namePascalPlural}.store.ts`\n\n\t\tconst fileDest = diskUtil.resolvePath(\n\t\t\tdestination,\n\t\t\t'src',\n\t\t\t'stores',\n\t\t\tfilename\n\t\t)\n\n\t\tif (diskUtil.doesFileExist(fileDest)) {\n\t\t\tthrow new SpruceError({ code: 'STORE_EXISTS' })\n\t\t}\n\n\t\tconst contents = this.templates.store(options)\n\n\t\tdiskUtil.writeFile(fileDest, contents)\n\n\t\tawait this.lint(fileDest)\n\n\t\tfiles.push({\n\t\t\taction: 'generated',\n\t\t\tname: filename,\n\t\t\tpath: fileDest,\n\t\t})\n\n\t\treturn files\n\t}\n\n\tpublic writePlugin(cwd: string) {\n\t\tconst destination = diskUtil.resolveHashSprucePath(\n\t\t\tcwd,\n\t\t\t'features',\n\t\t\t'store.plugin.ts'\n\t\t)\n\n\t\tconst pluginContents = this.templates.storePlugin()\n\n\t\tconst results = this.writeFileIfChangedMixinResults(\n\t\t\tdestination,\n\t\t\tpluginContents,\n\t\t\t'Loads all your data stores and connects you to any databases you have configured.'\n\t\t)\n\n\t\treturn results\n\t}\n\n\tpublic async writeTypesAndMap(\n\t\tdestination: string,\n\t\toptions: { stores: StoreTemplateItem[] }\n\t) {\n\t\tconst [types, map] = await Promise.all([\n\t\t\tthis.writeTypes(destination, options),\n\t\t\tthis.writeMap(destination, options),\n\t\t])\n\n\t\treturn [...types, ...map]\n\t}\n\n\tpublic async writeTypes(\n\t\tdestination: string,\n\t\toptions: { stores: StoreTemplateItem[] }\n\t) {\n\t\tconst file = diskUtil.resolvePath(destination, 'stores.types.ts')\n\n\t\tconst typesContent = this.templates.storeTypes(options)\n\n\t\tconst files = this.writeFileIfChangedMixinResults(\n\t\t\tfile,\n\t\t\ttypesContent,\n\t\t\t'The type merging for so the StoreFactory properly types you stores.'\n\t\t)\n\n\t\tawait this.lint(file)\n\n\t\treturn files\n\t}\n\n\tpublic async writeMap(\n\t\tdestination: string,\n\t\toptions: { stores: StoreTemplateItem[] }\n\t) {\n\t\tconst file = diskUtil.resolvePath(destination, 'stores.ts')\n\t\tconst mapContent = this.templates.stores(options)\n\n\t\tconst files = this.writeFileIfChangedMixinResults(\n\t\t\tfile,\n\t\t\tmapContent,\n\t\t\t'A reference to all your data stores for easy inclusion.'\n\t\t)\n\n\t\tawait this.lint(file)\n\n\t\treturn files\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TestFeature.js","names":["TestFeature","code","isRequired","name","isDev","diskUtil","resolvePath","__dirname","service","Service","configureJest","configureScripts","configureTsConfig","tsConfig","tsConfigUtil","readConfig","cwd","compilerOptions","experimentalDecorators","setCompilerOption","err","scripts","get","test","set","path","value","jestConfig","testRunner","maxWorkers","testTimeout","testEnvironment","testPathIgnorePatterns","testMatch","moduleNameMapper","existingJest","parentFinder","ParentTestFinder","findAbstractTests","candidates","map","a","label","emitter","emit","results","eventResponseUtil","getAllResponsePayloadsAndErrors","SpruceError","payloads","payload","abstractClasses","ac","isDefaultExport","featureCode","featureInstaller","isInstalled","push","sort","b","AbstractFeature"],"sources":["../../../src/features/test/TestFeature.ts"],"sourcesContent":["import { eventResponseUtil } from '@sprucelabs/spruce-event-utils'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport SpruceError from '../../errors/SpruceError'\nimport PkgService from '../../services/PkgService'\nimport { NpmPackage } from '../../types/cli.types'\nimport tsConfigUtil from '../../utilities/tsConfig.utility'\nimport AbstractFeature, { FeatureDependency } from '../AbstractFeature'\nimport ParentTestFinder from '../error/ParentTestFinder'\nimport { FeatureCode } from '../features.types'\n\ndeclare module '../../features/features.types' {\n\tinterface FeatureMap {\n\t\ttest: TestFeature\n\t}\n}\n\nexport interface ParentClassCandidate {\n\tname: string\n\tlabel: string\n\tpath?: string\n\timport?: string\n\tisDefaultExport: boolean\n\tfeatureCode?: FeatureCode\n}\n\nexport default class TestFeature extends AbstractFeature {\n\tpublic nameReadable = 'Testing'\n\tpublic description = 'Test first. Test everything! 💪'\n\tpublic code: FeatureCode = 'test'\n\tpublic dependencies: FeatureDependency[] = [\n\t\t{ code: 'skill', isRequired: false },\n\t\t{ code: 'node', isRequired: true },\n\t]\n\tpublic packageDependencies: NpmPackage[] = [\n\t\t{ name: '@sprucelabs/test@latest', isDev: true },\n\t\t{ name: '@sprucelabs/test-utils@latest', isDev: true },\n\t\t{ name: '@sprucelabs/jest-json-reporter@latest', isDev: true },\n\t\t{ name: '@sprucelabs/spruce-test-fixtures@latest', isDev: true },\n\t\t{ name: 'jest-circus', isDev: true },\n\t\t{ name: 'jest', isDev: true },\n\t]\n\tpublic actionsDir = diskUtil.resolvePath(__dirname, 'actions')\n\n\tpublic async afterPackageInstall() {\n\t\tconst service = this.Service('pkg')\n\n\t\tthis.configureJest(service)\n\t\tthis.configureScripts(service)\n\t\tthis.configureTsConfig()\n\n\t\treturn {}\n\t}\n\n\tprivate configureTsConfig() {\n\t\ttry {\n\t\t\tconst tsConfig = tsConfigUtil.readConfig(this.cwd)\n\t\t\tif (!tsConfig.compilerOptions.experimentalDecorators) {\n\t\t\t\ttsConfig.compilerOptions.experimentalDecorators = true\n\t\t\t\ttsConfigUtil.setCompilerOption(this.cwd, 'experimentalDecorators', true)\n\t\t\t}\n\t\t} catch (err) {\n\t\t\t//@ts-ignore\n\t\t}\n\t}\n\n\tprivate configureScripts(service: PkgService) {\n\t\tlet scripts = service.get('scripts') as Record<string, any> | undefined\n\n\t\tif (!scripts) {\n\t\t\tscripts = {}\n\t\t}\n\n\t\tif (!scripts.test) {\n\t\t\tscripts.test = 'jest'\n\t\t\tscripts['watch.tests'] = 'jest --watch'\n\t\t\tservice.set({ path: 'scripts', value: scripts })\n\t\t}\n\t}\n\n\tprivate configureJest(service: PkgService) {\n\t\tconst jestConfig = {\n\t\t\ttestRunner: 'jest-circus/runner',\n\t\t\tmaxWorkers: 4,\n\t\t\ttestTimeout: 120000,\n\t\t\ttestEnvironment: 'node',\n\t\t\ttestPathIgnorePatterns: [\n\t\t\t\t'<rootDir>/tmp/',\n\t\t\t\t'<rootDir>/src/',\n\t\t\t\t'<rootDir>/node_modules/',\n\t\t\t\t'<rootDir>/build/__tests__/testDirsAndFiles/',\n\t\t\t],\n\t\t\ttestMatch: ['**/__tests__/**/*.test.js?(x)'],\n\t\t\tmoduleNameMapper: {\n\t\t\t\t'^#spruce/(.*)$': '<rootDir>/build/.spruce/$1',\n\t\t\t},\n\t\t}\n\n\t\tconst existingJest = service.get('jest') as Record<string, any>\n\t\tif (!existingJest) {\n\t\t\tservice.set({ path: 'jest', value: jestConfig })\n\t\t}\n\t}\n\n\tpublic async buildParentClassCandidates(): Promise<ParentClassCandidate[]> {\n\t\tconst parentFinder = new ParentTestFinder(this.cwd)\n\t\tconst candidates: ParentClassCandidate[] = (\n\t\t\tawait parentFinder.findAbstractTests()\n\t\t).map((a) => ({ ...a, label: a.name }))\n\n\t\tconst results = await this.emitter.emit(\n\t\t\t'test.register-abstract-test-classes'\n\t\t)\n\n\t\tconst { payloads } = eventResponseUtil.getAllResponsePayloadsAndErrors(\n\t\t\tresults,\n\t\t\tSpruceError\n\t\t)\n\n\t\tfor (const payload of payloads) {\n\t\t\tconst { abstractClasses } = payload\n\n\t\t\tfor (const ac of abstractClasses) {\n\t\t\t\tconst a = { ...ac, isDefaultExport: false }\n\n\t\t\t\tif (ac.featureCode) {\n\t\t\t\t\tconst isInstalled = await this.featureInstaller.isInstalled(\n\t\t\t\t\t\tac.featureCode as any\n\t\t\t\t\t)\n\n\t\t\t\t\tif (!isInstalled) {\n\t\t\t\t\t\ta.label = `${a.label} (requires install)`\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcandidates.push(a as any)\n\t\t\t}\n\t\t}\n\n\t\tcandidates.sort((a, b) => {\n\t\t\tif (a.label > b.label) {\n\t\t\t\treturn 1\n\t\t\t} else {\n\t\t\t\treturn -1\n\t\t\t}\n\t\t})\n\n\t\treturn candidates\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAGA;;AACA;;AACA;;;;;;;;;;;;;;;;IAkBqBA,W;;;;;;;;;;;;;;;qGACE,S;oGACD,iC;6FACM,M;qGACgB,CAC1C;MAAEC,IAAI,EAAE,OAAR;MAAiBC,UAAU,EAAE;IAA7B,CAD0C,EAE1C;MAAED,IAAI,EAAE,MAAR;MAAgBC,UAAU,EAAE;IAA5B,CAF0C,C;4GAIA,CAC1C;MAAEC,IAAI,EAAE,yBAAR;MAAmCC,KAAK,EAAE;IAA1C,CAD0C,EAE1C;MAAED,IAAI,EAAE,+BAAR;MAAyCC,KAAK,EAAE;IAAhD,CAF0C,EAG1C;MAAED,IAAI,EAAE,uCAAR;MAAiDC,KAAK,EAAE;IAAxD,CAH0C,EAI1C;MAAED,IAAI,EAAE,yCAAR;MAAmDC,KAAK,EAAE;IAA1D,CAJ0C,EAK1C;MAAED,IAAI,EAAE,aAAR;MAAuBC,KAAK,EAAE;IAA9B,CAL0C,EAM1C;MAAED,IAAI,EAAE,MAAR;MAAgBC,KAAK,EAAE;IAAvB,CAN0C,C;mGAQvBC,
|
|
1
|
+
{"version":3,"file":"TestFeature.js","names":["TestFeature","code","isRequired","name","isDev","diskUtil","resolvePath","__dirname","service","Service","configureJest","configureScripts","configureTsConfig","tsConfig","tsConfigUtil","readConfig","cwd","compilerOptions","experimentalDecorators","setCompilerOption","err","scripts","get","test","set","path","value","jestConfig","testRunner","maxWorkers","testTimeout","testEnvironment","testPathIgnorePatterns","testMatch","moduleNameMapper","existingJest","parentFinder","ParentTestFinder","findAbstractTests","candidates","map","a","label","emitter","emit","results","eventResponseUtil","getAllResponsePayloadsAndErrors","SpruceError","payloads","payload","abstractClasses","ac","isDefaultExport","featureCode","featureInstaller","isInstalled","push","sort","b","AbstractFeature"],"sources":["../../../src/features/test/TestFeature.ts"],"sourcesContent":["import { eventResponseUtil } from '@sprucelabs/spruce-event-utils'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport SpruceError from '../../errors/SpruceError'\nimport PkgService from '../../services/PkgService'\nimport { NpmPackage } from '../../types/cli.types'\nimport tsConfigUtil from '../../utilities/tsConfig.utility'\nimport AbstractFeature, { FeatureDependency } from '../AbstractFeature'\nimport ParentTestFinder from '../error/ParentTestFinder'\nimport { FeatureCode } from '../features.types'\n\ndeclare module '../../features/features.types' {\n\tinterface FeatureMap {\n\t\ttest: TestFeature\n\t}\n}\n\nexport interface ParentClassCandidate {\n\tname: string\n\tlabel: string\n\tpath?: string\n\timport?: string\n\tisDefaultExport: boolean\n\tfeatureCode?: FeatureCode\n}\n\nexport default class TestFeature extends AbstractFeature {\n\tpublic nameReadable = 'Testing'\n\tpublic description = 'Test first. Test everything! 💪'\n\tpublic code: FeatureCode = 'test'\n\tpublic dependencies: FeatureDependency[] = [\n\t\t{ code: 'skill', isRequired: false },\n\t\t{ code: 'node', isRequired: true },\n\t]\n\tpublic packageDependencies: NpmPackage[] = [\n\t\t{ name: '@sprucelabs/test@latest', isDev: true },\n\t\t{ name: '@sprucelabs/test-utils@latest', isDev: true },\n\t\t{ name: '@sprucelabs/jest-json-reporter@latest', isDev: true },\n\t\t{ name: '@sprucelabs/spruce-test-fixtures@latest', isDev: true },\n\t\t{ name: 'jest-circus', isDev: true },\n\t\t{ name: 'jest', isDev: true },\n\t]\n\tpublic actionsDir = diskUtil.resolvePath(__dirname, 'actions')\n\n\tpublic async afterPackageInstall() {\n\t\tconst service = this.Service('pkg')\n\n\t\tthis.configureJest(service)\n\t\tthis.configureScripts(service)\n\t\tthis.configureTsConfig()\n\n\t\treturn {}\n\t}\n\n\tprivate configureTsConfig() {\n\t\ttry {\n\t\t\tconst tsConfig = tsConfigUtil.readConfig(this.cwd)\n\t\t\tif (!tsConfig.compilerOptions.experimentalDecorators) {\n\t\t\t\ttsConfig.compilerOptions.experimentalDecorators = true\n\t\t\t\ttsConfigUtil.setCompilerOption(this.cwd, 'experimentalDecorators', true)\n\t\t\t}\n\t\t} catch (err) {\n\t\t\t//@ts-ignore\n\t\t}\n\t}\n\n\tprivate configureScripts(service: PkgService) {\n\t\tlet scripts = service.get('scripts') as Record<string, any> | undefined\n\n\t\tif (!scripts) {\n\t\t\tscripts = {}\n\t\t}\n\n\t\tif (!scripts.test) {\n\t\t\tscripts.test = 'jest'\n\t\t\tscripts['watch.tests'] = 'jest --watch'\n\t\t\tservice.set({ path: 'scripts', value: scripts })\n\t\t}\n\t}\n\n\tprivate configureJest(service: PkgService) {\n\t\tconst jestConfig = {\n\t\t\ttestRunner: 'jest-circus/runner',\n\t\t\tmaxWorkers: 4,\n\t\t\ttestTimeout: 120000,\n\t\t\ttestEnvironment: 'node',\n\t\t\ttestPathIgnorePatterns: [\n\t\t\t\t'<rootDir>/tmp/',\n\t\t\t\t'<rootDir>/src/',\n\t\t\t\t'<rootDir>/node_modules/',\n\t\t\t\t'<rootDir>/build/__tests__/testDirsAndFiles/',\n\t\t\t],\n\t\t\ttestMatch: ['**/__tests__/**/*.test.js?(x)'],\n\t\t\tmoduleNameMapper: {\n\t\t\t\t'^#spruce/(.*)$': '<rootDir>/build/.spruce/$1',\n\t\t\t},\n\t\t}\n\n\t\tconst existingJest = service.get('jest') as Record<string, any>\n\t\tif (!existingJest) {\n\t\t\tservice.set({ path: 'jest', value: jestConfig })\n\t\t}\n\t}\n\n\tpublic async buildParentClassCandidates(): Promise<ParentClassCandidate[]> {\n\t\tconst parentFinder = new ParentTestFinder(this.cwd)\n\t\tconst candidates: ParentClassCandidate[] = (\n\t\t\tawait parentFinder.findAbstractTests()\n\t\t).map((a) => ({ ...a, label: a.name }))\n\n\t\tconst results = await this.emitter.emit(\n\t\t\t'test.register-abstract-test-classes'\n\t\t)\n\n\t\tconst { payloads } = eventResponseUtil.getAllResponsePayloadsAndErrors(\n\t\t\tresults,\n\t\t\tSpruceError\n\t\t)\n\n\t\tfor (const payload of payloads) {\n\t\t\tconst { abstractClasses } = payload\n\n\t\t\tfor (const ac of abstractClasses) {\n\t\t\t\tconst a = { ...ac, isDefaultExport: false }\n\n\t\t\t\tif (ac.featureCode) {\n\t\t\t\t\tconst isInstalled = await this.featureInstaller.isInstalled(\n\t\t\t\t\t\tac.featureCode as any\n\t\t\t\t\t)\n\n\t\t\t\t\tif (!isInstalled) {\n\t\t\t\t\t\ta.label = `${a.label} (requires install)`\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcandidates.push(a as any)\n\t\t\t}\n\t\t}\n\n\t\tcandidates.sort((a, b) => {\n\t\t\tif (a.label > b.label) {\n\t\t\t\treturn 1\n\t\t\t} else {\n\t\t\t\treturn -1\n\t\t\t}\n\t\t})\n\n\t\treturn candidates\n\t}\n}\n"],"mappings":"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"}
|