@sprucelabs/spruce-cli 15.2.24 → 15.3.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 +12 -0
- package/build/.spruce/errors/errors.types.js.map +1 -1
- package/build/.spruce/errors/options.types.js.map +1 -1
- package/build/.spruce/errors/spruceCli/actionCancelled.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/bootError.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/buildFailed.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/cacheNotEnabled.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/commandAborted.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/commandBlocked.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/commandNotImplemented.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/createAutoloaderFailed.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/dependencyExists.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/deployFailed.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/directoryEmpty.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/directoryNotSkill.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/dockerNotStarted.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/executingCommandFailed.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/failedToImport.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/featureNotInstalled.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/fileExists.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/generic.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/invalidCommand.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/invalidEventContract.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/invalidFeatureCode.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/invalidTestDirectory.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/lintFailed.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/mercuryResponseError.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/missingDependencies.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/missingDependenciesDependency.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/noOrganizationsFound.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/noSkillsRegistered.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/notImplemented.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/notLoggedIn.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/schemaExists.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/schemaFailedToImport.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/schemaTemplateItemBuildingFailed.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/skillNotFound.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/skillNotRegistered.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/skillViewExists.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/storeExists.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/testFailed.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/themeExists.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/transportAlreadyExists.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/vscodeNotInstalled.schema.js.map +1 -1
- package/build/.spruce/events/events.contract.js.map +1 -1
- package/build/.spruce/events/heartwood/didRegisterSkillViews.v2021_02_11.contract.js.map +1 -1
- package/build/.spruce/events/heartwood/generateUrl.v2021_02_11.contract.js.map +1 -1
- package/build/.spruce/events/heartwood/getSkillViews.v2021_02_11.contract.js.map +1 -1
- package/build/.spruce/events/heartwood/listViews.v2021_02_11.contract.js.map +1 -1
- package/build/.spruce/events/heartwood/registerSkillViews.v2021_02_11.contract.js.map +1 -1
- package/build/.spruce/schemas/fields/fieldClassMap.js.map +1 -1
- package/build/.spruce/schemas/fields/fields.types.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitTarget.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitTarget.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitTargetAndPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlResponsePayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/getSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/getSkillViewsResponsePayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/getViewControllersEmitTarget.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/listViewsResponsePayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/listViewsResult.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsResponsePayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/theme.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/themeProps.schema.js.map +1 -1
- package/build/.spruce/schemas/schemas.types.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/fullMessageChoices.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/location.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/message.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/messageSource.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/messageTarget.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/organization.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/person.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/personLocation.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/personOrganization.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/profileImage.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/role.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/sendMessage.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/skill.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/skillCreator.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/bootSkillOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/createConversationTopicOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/createErrorOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/createOrganizationOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/createSchemaOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/createTestOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/generatedDir.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/generatedFile.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/installSkillAtOrganizationOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/listenEventOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/namedTemplateItem.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/nodeFeatureOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/onboardOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/onboarding.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/personWithToken.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/registerDashboardWidgetsEmitPayloadSchema.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/setupTestsOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/setupVscodeOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/skillFeature.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/syncErrorOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/syncEventOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/syncSchemaFieldsOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/syncSchemasOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/testOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/upgradeSkillOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/watcherDidDetectChangesEmitPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceEventUtils/v2021_09_13/eventSource.schema.js.map +1 -1
- package/build/.spruce/skill.types.js.map +1 -1
- package/build/GlobalEmitter.js.map +1 -1
- package/build/InFlightEntertainment.js.map +1 -1
- package/build/__tests__/behavioral/AddingADependency.test.js.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.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.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.d.ts +1 -0
- package/build/__tests__/implementation/EventStore.test.js +61 -33
- 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.d.ts +4 -0
- package/build/__tests__/implementation/ListenerStore.test.js +56 -0
- package/build/__tests__/implementation/ListenerStore.test.js.map +1 -0
- package/build/__tests__/implementation/OnboardingScriptLoader.test.js.map +1 -1
- package/build/__tests__/implementation/OnboardingScriptPlayer.test.js.map +1 -1
- package/build/__tests__/implementation/OnboardingStore.test.js.map +1 -1
- package/build/__tests__/implementation/OrganizationStore.test.js.map +1 -1
- package/build/__tests__/implementation/ParentTestFinder.test.js.map +1 -1
- package/build/__tests__/implementation/PkgService.test.js.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 +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/onTestFileResult.js.map +1 -1
- package/build/__tests__/support/scripts/first.script.js.map +1 -1
- package/build/__tests__/support/scripts/second.script.js.map +1 -1
- package/build/__tests__/support/scripts/third.test.script.js.map +1 -1
- package/build/addons/filePrompt.addon.js.map +1 -1
- package/build/cli.js.map +1 -1
- package/build/components/AbstractComponent.js.map +1 -1
- package/build/components/FormComponent.js.map +1 -1
- package/build/components/QuizComponent.js.map +1 -1
- package/build/constants.js.map +1 -1
- package/build/errors/SpruceError.js.map +1 -1
- package/build/errors/actionCancelled.builder.js.map +1 -1
- package/build/errors/bootError.builder.js.map +1 -1
- package/build/errors/buildFailed.builder.js.map +1 -1
- package/build/errors/cacheNotEnabled.builder.js.map +1 -1
- package/build/errors/commandAborted.builder.js.map +1 -1
- package/build/errors/commandBlocked.builder.js.map +1 -1
- package/build/errors/commandNotImplemented.builder.js.map +1 -1
- package/build/errors/createAutoloaderFailed.builder.js.map +1 -1
- package/build/errors/dependencyExists.builder.js.map +1 -1
- package/build/errors/deployFailed.builder.js.map +1 -1
- package/build/errors/directoryEmpty.builder.js.map +1 -1
- package/build/errors/directoryNotSkill.builder.js.map +1 -1
- package/build/errors/dockerNotStarted.builder.js.map +1 -1
- package/build/errors/executingCommandFailed.builder.js.map +1 -1
- package/build/errors/failedToImport.builder.js.map +1 -1
- package/build/errors/featureNotInstalled.builder.js.map +1 -1
- package/build/errors/fileExists.builder.js.map +1 -1
- package/build/errors/generic.builder.js.map +1 -1
- package/build/errors/invalidCommand.builder.js.map +1 -1
- package/build/errors/invalidEventContract.builder.js.map +1 -1
- package/build/errors/invalidFeatureCode.builder.js.map +1 -1
- package/build/errors/invalidTestDirectory.builder.js.map +1 -1
- package/build/errors/lintFailed.builder.js.map +1 -1
- package/build/errors/mercuryResponseError.builder.js.map +1 -1
- package/build/errors/missingDependencies.builder.js.map +1 -1
- package/build/errors/noOrganizationsFound.builder.js.map +1 -1
- package/build/errors/noSkillsRegistered.builder.js.map +1 -1
- package/build/errors/notImplemented.builder.js.map +1 -1
- package/build/errors/notLoggedIn.builder.js.map +1 -1
- package/build/errors/schemaExists.builder.js.map +1 -1
- package/build/errors/schemaFailedToImport.builder.js.map +1 -1
- package/build/errors/schemaTemplateItemBuildingFailed.builder.js.map +1 -1
- package/build/errors/skillNotFound.builder.js.map +1 -1
- package/build/errors/skillNotRegistered.builder.js.map +1 -1
- package/build/errors/skillViewExists.builder.js.map +1 -1
- package/build/errors/storeExists.builder.js.map +1 -1
- package/build/errors/testFailed.builder.js.map +1 -1
- package/build/errors/themeExists.builder.js.map +1 -1
- package/build/errors/transportAlreadyExists.builder.js.map +1 -1
- package/build/errors/vscodeNotInstalled.builder.js.map +1 -1
- package/build/features/AbstractAction.js.map +1 -1
- package/build/features/AbstractFeature.js.map +1 -1
- package/build/features/ActionExecuter.js.map +1 -1
- package/build/features/ActionFactory.js.map +1 -1
- package/build/features/ActionQuestionAsker.js.map +1 -1
- package/build/features/FeatureCommandAttacher.js.map +1 -1
- package/build/features/FeatureInstaller.js.map +1 -1
- package/build/features/FeatureInstallerFactory.js.map +1 -1
- package/build/features/OverrideActionDecorator.js.map +1 -1
- package/build/features/cache/CacheFeature.js.map +1 -1
- package/build/features/cache/actions/DisableAction.js.map +1 -1
- package/build/features/cache/actions/EnableAction.js.map +1 -1
- package/build/features/cache/constants.js.map +1 -1
- package/build/features/conversation/ConversationFeature.js.map +1 -1
- package/build/features/conversation/actions/CreateAction.js.map +1 -1
- package/build/features/conversation/actions/TestAction.js.map +1 -1
- package/build/features/conversation/stores/ConversationStore.js.map +1 -1
- package/build/features/conversation/writers/ConversationWriter.js.map +1 -1
- package/build/features/dependencies/DependencyFeature.js.map +1 -1
- package/build/features/dependencies/actions/AddAction.js.map +1 -1
- package/build/features/dependencies/actions/ManageAction.js.map +1 -1
- package/build/features/deploy/DeployFeature.js.map +1 -1
- package/build/features/deploy/actions/HerokuAction.js.map +1 -1
- package/build/features/deploy/writers/DeployWriter.js.map +1 -1
- package/build/features/error/ErrorFeature.js.map +1 -1
- package/build/features/error/ParentTestFinder.js.map +1 -1
- package/build/features/error/actions/CreateAction.js.map +1 -1
- package/build/features/error/actions/SyncAction.js.map +1 -1
- package/build/features/error/writers/ErrorWriter.js.map +1 -1
- package/build/features/event/EventFeature.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/services/EventSettingsService.js.map +1 -1
- package/build/features/event/services/RemoteService.js.map +1 -1
- package/build/features/event/stores/EventStore.d.ts +1 -0
- package/build/features/event/stores/EventStore.js +6 -1
- package/build/features/event/stores/EventStore.js.map +1 -1
- package/build/features/event/stores/ListenerStore.d.ts +1 -0
- package/build/features/event/stores/ListenerStore.js +6 -1
- package/build/features/event/stores/ListenerStore.js.map +1 -1
- package/build/features/event/writers/EventWriter.js.map +1 -1
- package/build/features/eventContract/EventContractFeature.js.map +1 -1
- package/build/features/eventContract/actions/PullAction.js.map +1 -1
- package/build/features/feature.utilities.js.map +1 -1
- package/build/features/features.types.js.map +1 -1
- package/build/features/log/LogFeature.js.map +1 -1
- package/build/features/log/actions/CreateTransportAction.js.map +1 -1
- package/build/features/log/writers/LogWriter.js.map +1 -1
- package/build/features/node/NodeFeature.js.map +1 -1
- package/build/features/node/actions/CreateAction.js.map +1 -1
- package/build/features/node/actions/UpdateDependenciesAction.js.map +1 -1
- package/build/features/node/actions/UpgradeAction.js.map +1 -1
- package/build/features/node/writers/NodeWriter.js.map +1 -1
- package/build/features/onboard/OnboardFeature.js.map +1 -1
- package/build/features/onboard/ScriptLoader.js.map +1 -1
- package/build/features/onboard/ScriptPlayer.js.map +1 -1
- package/build/features/onboard/actions/OnboardAction.js.map +1 -1
- package/build/features/onboard/scripts/onboarding.first.script.js.map +1 -1
- package/build/features/onboard/scripts/onboarding.immersive.script.js.map +1 -1
- package/build/features/onboard/scripts/onboarding.returning.script.js.map +1 -1
- package/build/features/onboard/scripts/onboarding.short.script.js.map +1 -1
- package/build/features/onboard/scripts/todo/todo.create.skill.script.js.map +1 -1
- package/build/features/onboard/scripts/todo/todo.test.script.js.map +1 -1
- package/build/features/onboard/scripts/wrongCommand.script.js.map +1 -1
- package/build/features/onboard/stores/OnboardingStore.js.map +1 -1
- package/build/features/organization/OrganizationFeature.js.map +1 -1
- package/build/features/organization/actions/CreateAction.js.map +1 -1
- package/build/features/organization/actions/InstallAction.js.map +1 -1
- package/build/features/organization/stores/OrganizationStore.js.map +1 -1
- package/build/features/person/PersonFeature.js.map +1 -1
- package/build/features/person/actions/LoginAction.js.map +1 -1
- package/build/features/person/actions/LogoutAction.js.map +1 -1
- package/build/features/person/actions/WhoamiAction.js.map +1 -1
- package/build/features/sandbox/SandboxFeature.js.map +1 -1
- package/build/features/sandbox/actions/SetupAction.js.map +1 -1
- package/build/features/sandbox/writers/SandboxWriter.js.map +1 -1
- package/build/features/schema/SchemaFeature.js.map +1 -1
- package/build/features/schema/ValueTypeBuilder.js.map +1 -1
- package/build/features/schema/actions/CreateAction.js.map +1 -1
- package/build/features/schema/actions/SyncAction.js.map +1 -1
- package/build/features/schema/actions/SyncFieldsAction.js.map +1 -1
- package/build/features/schema/services/SchemaService.js.map +1 -1
- package/build/features/schema/stores/SchemaStore.js.map +1 -1
- package/build/features/schema/utilities/schema.utility.js.map +1 -1
- package/build/features/schema/utilities/schemaDisk.utility.js.map +1 -1
- package/build/features/schema/utilities/schemaGenerator.utility.js.map +1 -1
- package/build/features/schema/writers/SchemaWriter.js.map +1 -1
- package/build/features/skill/SkillFeature.js.map +1 -1
- package/build/features/skill/actions/BootAction.js.map +1 -1
- package/build/features/skill/actions/CreateAction.js.map +1 -1
- package/build/features/skill/actions/DashboardAction.js.map +1 -1
- package/build/features/skill/actions/LoginAction.js.map +1 -1
- package/build/features/skill/actions/RebuildAction.js.map +1 -1
- package/build/features/skill/actions/RegisterAction.js.map +1 -1
- package/build/features/skill/stores/SkillStore.js.map +1 -1
- package/build/features/skill/updaters/Updater.js.map +1 -1
- package/build/features/skill/writers/SkillWriter.js.map +1 -1
- package/build/features/store/StoreFeature.js +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/test.types.js.map +1 -1
- package/build/features/test/writers/TestWriter.js.map +1 -1
- package/build/features/universalDevDependencies.js.map +1 -1
- package/build/features/universalFileDescriptions.js.map +1 -1
- package/build/features/universalScripts.js.map +1 -1
- package/build/features/validateAndNormalize.utility.d.ts +2 -2
- package/build/features/validateAndNormalize.utility.js +2 -2
- package/build/features/validateAndNormalize.utility.js.map +1 -1
- package/build/features/view/ViewFeature.js.map +1 -1
- package/build/features/view/actions/CreateAction.js.map +1 -1
- package/build/features/view/actions/CreateThemeAction.js.map +1 -1
- package/build/features/view/actions/SyncAction.js.map +1 -1
- package/build/features/view/actions/WatchAction.js.map +1 -1
- package/build/features/view/stores/ViewStore.js.map +1 -1
- package/build/features/view/writers/ViewWriter.js.map +1 -1
- package/build/features/vscode/VsCodeFeature.js.map +1 -1
- package/build/features/vscode/actions/SetupAction.js.map +1 -1
- package/build/features/vscode/services/VsCodeService.js.map +1 -1
- package/build/features/vscode/writers/VsCodeWriter.js.map +1 -1
- package/build/features/watch/WatchFeature.js.map +1 -1
- package/build/index.js.map +1 -1
- package/build/interfaces/SpyInterface.js.map +1 -1
- package/build/interfaces/TerminalInterface.js.map +1 -1
- package/build/schemas/v2020_07_22/bootSkillOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/createConversationTopicOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/createErrorOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/createOrganizationOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/createSchemaOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/createTestOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/installSkillAtOrganizationOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/listenEventOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/namedTemplateItem.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/nodeFeatureOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/onboardOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/onboarding.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/personWithToken.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/registerDashboardWidgetsEmitPayloadSchema.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/setupTestsOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/setupVscodeOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/skillFeature.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/syncErrorOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/syncEventOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/syncSchemaFieldsOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/syncSchemasOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/testOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/upgradeSkillOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/watcherDidDetectChangesEmitPayload.builder.js.map +1 -1
- package/build/services/BuildService.js.map +1 -1
- package/build/services/CommandService.js.map +1 -1
- package/build/services/DependencyService.js.map +1 -1
- package/build/services/GameService.js.map +1 -1
- package/build/services/ImportService.js.map +1 -1
- package/build/services/LintService.js.map +1 -1
- package/build/services/PkgService.js.map +1 -1
- package/build/services/ServiceFactory.js.map +1 -1
- package/build/services/TypeCheckerService.js.map +1 -1
- package/build/stores/AbstractLocalStore.js.map +1 -1
- package/build/stores/AbstractStore.js.map +1 -1
- package/build/stores/StoreFactory.js.map +1 -1
- package/build/templateItemBuilders/EventTemplateItemBuilder.js.map +1 -1
- package/build/templateItemBuilders/FieldTemplateItemBuilder.js.map +1 -1
- package/build/templateItemBuilders/SchemaTemplateItemBuilder.js.map +1 -1
- package/build/tests/AbstractCliTest.js.map +1 -1
- package/build/tests/AbstractErrorTest.js.map +1 -1
- package/build/tests/AbstractEventTest.js.map +1 -1
- package/build/tests/AbstractSchemaTest.js.map +1 -1
- package/build/tests/AbstractSkillTest.js.map +1 -1
- package/build/tests/AbstractTestTest.js.map +1 -1
- package/build/tests/CommandFaker.js.map +1 -1
- package/build/tests/JestJsonParser.js.map +1 -1
- package/build/tests/MockProgramFactory.js.map +1 -1
- package/build/tests/buildTestCache.js.map +1 -1
- package/build/tests/cleanTestCache.js.map +1 -1
- package/build/tests/cleanTestData.js.map +1 -1
- package/build/tests/constants.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/OrganizationFixture.js.map +1 -1
- package/build/tests/fixtures/PersonFixture.js.map +1 -1
- package/build/tests/fixtures/SkillFixture.js.map +1 -1
- package/build/tests/fixtures/ViewFixture.js.map +1 -1
- package/build/tests/utilities/test.utility.js.map +1 -1
- package/build/tests/utilities/uiAssert.utility.js.map +1 -1
- package/build/types/apiClient.types.js.map +1 -1
- package/build/types/cli.types.js.map +1 -1
- package/build/types/graphicsInterface.types.js.map +1 -1
- package/build/updaters/ScriptUpdater.js.map +1 -1
- package/build/utilities/action.utility.js.map +1 -1
- package/build/utilities/apiClient.utility.js.map +1 -1
- package/build/utilities/argParser.utility.js.map +1 -1
- package/build/utilities/commander.utility.js.map +1 -1
- package/build/utilities/duration.utility.js.map +1 -1
- package/build/utilities/eventContractCleaner.utility.js.map +1 -1
- package/build/utilities/form.utility.js.map +1 -1
- package/build/utilities/introspection.utility.js.map +1 -1
- package/build/utilities/isCi.js.map +1 -1
- package/build/utilities/tsConfig.utility.js.map +1 -1
- package/build/utilities/ui.utility.js.map +1 -1
- package/build/widgets/Theme.js.map +1 -1
- package/build/widgets/WidgetFactory.js.map +1 -1
- package/build/widgets/keySelectChoices.js.map +1 -1
- package/build/widgets/terminalKit/TKButtonWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkBaseWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkInputWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkLayoutCellWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkLayoutWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkMenuBarWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkPopupWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkProgressBarWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkTextWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkWindowWidget.js.map +1 -1
- package/build/widgets/terminalKit/termKit.utility.js.map +1 -1
- package/build/widgets/types/button.types.js.map +1 -1
- package/build/widgets/types/factory.types.js.map +1 -1
- package/build/widgets/types/input.types.js.map +1 -1
- package/build/widgets/types/layout.types.js.map +1 -1
- package/build/widgets/types/menuBar.types.js.map +1 -1
- package/build/widgets/types/popup.types.js.map +1 -1
- package/build/widgets/types/progressBar.types.js.map +1 -1
- package/build/widgets/types/table.types.js.map +1 -1
- package/build/widgets/types/text.types.js.map +1 -1
- package/build/widgets/types/widgets.types.js.map +1 -1
- package/build/widgets/types/window.types.js.map +1 -1
- package/build/widgets/widget.utilities.js.map +1 -1
- package/build/writers/AbstractWriter.js.map +1 -1
- package/build/writers/WriterFactory.js.map +1 -1
- package/package.json +3 -3
- package/src/__tests__/implementation/EventStore.test.ts +14 -0
- package/src/__tests__/implementation/ListenerStore.test.ts +14 -0
- package/src/__tests__/implementation/StoreFeature.test.ts +1 -1
- package/src/features/AbstractAction.ts +2 -2
- package/src/features/event/builders/EventContractBuilder.ts +2 -2
- package/src/features/event/stores/EventStore.ts +11 -8
- package/src/features/event/stores/ListenerStore.ts +5 -3
- package/src/features/store/StoreFeature.ts +1 -1
- package/src/features/validateAndNormalize.utility.ts +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/tests/fixtures/FeatureFixture.ts"],"names":["FeatureFixture","options","cwd","search","Error","serviceFactory","term","ui","generateCacheIfMissing","shouldGenerateCacheIfMissing","apiClientFactory","emitter","featureInstaller","type","Service","linkWorkspacePackages","Cli","Boot","graphicsInterface","cli","linkedUtils","cacheKey","bootOptions","installFeatures","features","isCached","installedSkills","testUtil","isCacheEnabled","doesCacheExist","copyCachedSkillToCwd","removeCwdFromCacheTracker","addCwdToCacheTracker","cacheCli","linkLocalPackages","settings","loadCacheTracker","diskUtil","copyDir","process","env","TEST_HOST","set","dirsToDelete","push","writeCacheSettings","settingsFile","getTestCacheTrackerFilePath","settingsFolder","pathUtil","dirname","doesDirExist","createDir","writeFile","JSON","stringify","alreadyInstalled","resolvePath","exists","doesFileExist","settingsObject","parse","readFile","resolveHashSprucePath","__dirname","dir","deleteDir"],"mappings":"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","sourcesContent":["import pathUtil from 'path'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport Cli, { CliBootOptions, CliInterface } from '../../cli'\nimport FeatureInstaller from '../../features/FeatureInstaller'\nimport { InstallFeature } from '../../features/features.types'\nimport { GlobalEmitter } from '../../GlobalEmitter'\nimport ServiceFactory, {\n\tServiceProvider,\n\tService,\n\tServiceMap,\n} from '../../services/ServiceFactory'\nimport { ApiClientFactory } from '../../types/apiClient.types'\nimport { GraphicsInterface } from '../../types/cli.types'\nimport testUtil from '../utilities/test.utility'\n\nexport interface CachedCli {\n\tcli: CliInterface\n\tcwd: string\n}\n\nexport interface FeatureFixtureOptions {\n\tcwd: string\n\tserviceFactory: ServiceFactory\n\tui: GraphicsInterface\n\tshouldGenerateCacheIfMissing?: boolean\n\tapiClientFactory: ApiClientFactory\n\temitter?: GlobalEmitter\n\tfeatureInstaller?: FeatureInstaller\n}\n\nexport default class FeatureFixture implements ServiceProvider {\n\tprivate cwd: string\n\tprivate installedSkills: Record<string, CachedCli> = {}\n\tprivate serviceFactory: ServiceFactory\n\tprivate static linkedUtils = false\n\tprivate static dirsToDelete: string[] = []\n\tprivate term: GraphicsInterface\n\tprivate generateCacheIfMissing = false\n\tprivate apiClientFactory: ApiClientFactory\n\tprivate emitter?: GlobalEmitter\n\tprivate featureInstaller?: FeatureInstaller\n\n\tpublic constructor(options: FeatureFixtureOptions) {\n\t\tif (options.cwd.search('packages/spruce-cli') > -1) {\n\t\t\tthrow new Error(\"You can't run FeatureFixture in the cli directory.\")\n\t\t}\n\n\t\tthis.cwd = options.cwd\n\t\tthis.serviceFactory = options.serviceFactory\n\t\tthis.term = options.ui\n\t\tthis.generateCacheIfMissing = !!options.shouldGenerateCacheIfMissing\n\t\tthis.apiClientFactory = options.apiClientFactory\n\t\tthis.emitter = options.emitter\n\t\tthis.featureInstaller = options.featureInstaller\n\t}\n\n\tpublic static deleteOldSkillDirs() {\n\t\tfor (const dir of this.dirsToDelete) {\n\t\t\tdiskUtil.deleteDir(dir)\n\t\t}\n\t}\n\n\tpublic Service<S extends Service>(\n\t\ttype: S,\n\t\tcwd?: string | undefined\n\t): ServiceMap[S] {\n\t\treturn this.serviceFactory.Service(cwd ?? this.cwd, type)\n\t}\n\n\tpublic async Cli(options?: CliBootOptions) {\n\t\tawait this.linkWorkspacePackages()\n\n\t\tconst cli = await Cli.Boot({\n\t\t\tcwd: this.cwd,\n\t\t\tgraphicsInterface: this.term,\n\t\t\tapiClientFactory: this.apiClientFactory,\n\t\t\temitter: this.emitter,\n\t\t\tfeatureInstaller: this.featureInstaller,\n\t\t\t...(options ?? {}),\n\t\t})\n\n\t\treturn cli\n\t}\n\n\tprivate async linkWorkspacePackages() {\n\t\tif (!FeatureFixture.linkedUtils) {\n\t\t\tFeatureFixture.linkedUtils = true\n\n\t\t\t// const expectedLinkedDir = pathUtil.join(\n\t\t\t// \tos.homedir(),\n\t\t\t// \t'.config',\n\t\t\t// \t'yarn',\n\t\t\t// \t'link',\n\t\t\t// \t'@sprucelabs',\n\t\t\t// \t'spruce-skill-utils'\n\t\t\t// )\n\n\t\t\t// if (!fsUtil.existsSync(expectedLinkedDir)) {\n\t\t\t// \tconst command = this.Service('command')\n\t\t\t// \ttry {\n\t\t\t// \t\tawait command.execute(\n\t\t\t// \t\t\t`cd ${pathUtil.join(\n\t\t\t// \t\t\t\t__dirname,\n\t\t\t// \t\t\t\t'..',\n\t\t\t// \t\t\t\t'..',\n\t\t\t// \t\t\t\t'..',\n\t\t\t// \t\t\t\t'spruce-skill-utils'\n\t\t\t// \t\t\t)} && yarn link`\n\t\t\t// \t\t)\n\t\t\t// \t} catch (err) {\n\t\t\t// \t\tif (fsUtil.existsSync(expectedLinkedDir)) {\n\t\t\t// \t\t\tlog.warn(`Symlink ${expectedLinkedDir} already exists`)\n\t\t\t// \t\t} else {\n\t\t\t// \t\t\tlog.warn(\n\t\t\t// \t\t\t\t`Symlink ${expectedLinkedDir} failed, but the check thinks it is missing`\n\t\t\t// \t\t\t)\n\t\t\t// \t\t}\n\t\t\t// \t}\n\t\t\t// }\n\t\t}\n\t}\n\n\tpublic async installCachedFeatures(\n\t\tcacheKey: string,\n\t\tbootOptions?: CliBootOptions\n\t) {\n\t\treturn this.installFeatures([], cacheKey, bootOptions)\n\t}\n\n\tpublic async installFeatures(\n\t\tfeatures: InstallFeature[],\n\t\tcacheKey?: string,\n\t\tbootOptions?: CliBootOptions\n\t) {\n\t\tif (this.isCached(cacheKey)) {\n\t\t\treturn this.installedSkills[cacheKey as string].cli\n\t\t}\n\n\t\tlet isCached = false\n\t\tif (cacheKey && testUtil.isCacheEnabled()) {\n\t\t\tisCached = this.doesCacheExist(cacheKey)\n\n\t\t\tif (!isCached && !this.generateCacheIfMissing) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Cached skill not found, make sure\\n\\n\"${cacheKey}\"\\n\\nis in your package.json under \"testSkillCache\" and run\\n\\n\\`yarn cache.tests\\``\n\t\t\t\t)\n\t\t\t}\n\n\t\t\tif (isCached) {\n\t\t\t\tawait this.copyCachedSkillToCwd(cacheKey)\n\t\t\t} else {\n\t\t\t\tthis.removeCwdFromCacheTracker(cacheKey)\n\t\t\t}\n\t\t}\n\n\t\tconst cli = await this.Cli(bootOptions)\n\n\t\tif (!isCached) {\n\t\t\tawait cli.installFeatures({\n\t\t\t\tfeatures,\n\t\t\t})\n\t\t}\n\n\t\tif (cacheKey && testUtil.isCacheEnabled()) {\n\t\t\t!isCached && this.addCwdToCacheTracker(cacheKey)\n\t\t\tthis.cacheCli(cacheKey, cli)\n\t\t}\n\n\t\tawait this.linkLocalPackages()\n\n\t\treturn cli\n\t}\n\n\tprivate isCached(cacheKey: string | undefined) {\n\t\treturn (\n\t\t\tcacheKey && this.installedSkills[cacheKey] && testUtil.isCacheEnabled()\n\t\t)\n\t}\n\n\tpublic async linkLocalPackages() {\n\t\t// const command = this.Service('command')\n\t\t// await command.execute(`yarn link @sprucelabs/spruce-skill-utils`)\n\t}\n\n\tprivate async copyCachedSkillToCwd(cacheKey: string) {\n\t\tlet isCached = this.doesCacheExist(cacheKey)\n\n\t\tif (isCached) {\n\t\t\tlet settings = this.loadCacheTracker()\n\t\t\tawait diskUtil.copyDir(settings[cacheKey], this.cwd)\n\n\t\t\tif (process.env.TEST_HOST) {\n\t\t\t\tthis.Service('env').set('HOST', process.env.TEST_HOST)\n\t\t\t}\n\n\t\t\tFeatureFixture.dirsToDelete.push(this.cwd)\n\t\t}\n\t}\n\n\tprivate addCwdToCacheTracker(cacheKey: string) {\n\t\tlet settings = this.loadCacheTracker()\n\n\t\tif (!settings) {\n\t\t\tsettings = {}\n\t\t}\n\n\t\tif (!settings[cacheKey]) {\n\t\t\tsettings[cacheKey] = this.cwd\n\t\t\tthis.writeCacheSettings(settings)\n\t\t}\n\t\treturn settings\n\t}\n\n\tprivate removeCwdFromCacheTracker(cacheKey: string) {\n\t\tlet settings = this.loadCacheTracker()\n\n\t\tif (!settings) {\n\t\t\tsettings = {}\n\t\t}\n\n\t\tif (settings[cacheKey]) {\n\t\t\tdelete settings[cacheKey]\n\t\t\tthis.writeCacheSettings(settings)\n\t\t}\n\t}\n\n\tprivate writeCacheSettings(settings: Record<string, any>) {\n\t\tconst settingsFile = this.getTestCacheTrackerFilePath()\n\t\tconst settingsFolder = pathUtil.dirname(settingsFile)\n\n\t\t!diskUtil.doesDirExist(settingsFolder) && diskUtil.createDir(settingsFolder)\n\n\t\tdiskUtil.writeFile(settingsFile, JSON.stringify(settings, null, 2))\n\t}\n\n\tprivate doesCacheExist(cacheKey: string) {\n\t\tlet alreadyInstalled = false\n\n\t\tconst settings = this.loadCacheTracker()\n\n\t\tif (settings?.[cacheKey]) {\n\t\t\talreadyInstalled = true\n\t\t}\n\n\t\tif (alreadyInstalled) {\n\t\t\talreadyInstalled = diskUtil.doesDirExist(\n\t\t\t\tdiskUtil.resolvePath(settings[cacheKey], 'node_modules')\n\t\t\t)\n\t\t}\n\n\t\treturn alreadyInstalled\n\t}\n\n\tpublic loadCacheTracker() {\n\t\tconst settingsFile = this.getTestCacheTrackerFilePath()\n\n\t\tconst exists = diskUtil.doesFileExist(settingsFile)\n\t\tlet settingsObject: Record<string, any> = {}\n\n\t\ttry {\n\t\t\tsettingsObject = exists ? JSON.parse(diskUtil.readFile(settingsFile)) : {}\n\t\t\t// eslint-disable-next-line no-empty\n\t\t} catch {}\n\n\t\treturn settingsObject\n\t}\n\n\tpublic getTestCacheTrackerFilePath() {\n\t\treturn diskUtil.resolveHashSprucePath(\n\t\t\t__dirname,\n\t\t\t'tmp',\n\t\t\t`cached-skills.json`\n\t\t)\n\t}\n\n\tprivate cacheCli(cacheKey: string, cli: CliInterface) {\n\t\tthis.installedSkills[cacheKey] = {\n\t\t\tcwd: this.cwd,\n\t\t\tcli,\n\t\t}\n\t}\n}\n"],"file":"FeatureFixture.js"}
|
|
1
|
+
{"version":3,"file":"FeatureFixture.js","names":["FeatureFixture","options","cwd","search","Error","serviceFactory","term","ui","generateCacheIfMissing","shouldGenerateCacheIfMissing","apiClientFactory","emitter","featureInstaller","type","Service","linkWorkspacePackages","Cli","Boot","graphicsInterface","cli","linkedUtils","cacheKey","bootOptions","installFeatures","features","isCached","installedSkills","testUtil","isCacheEnabled","doesCacheExist","copyCachedSkillToCwd","removeCwdFromCacheTracker","addCwdToCacheTracker","cacheCli","linkLocalPackages","settings","loadCacheTracker","diskUtil","copyDir","process","env","TEST_HOST","set","dirsToDelete","push","writeCacheSettings","settingsFile","getTestCacheTrackerFilePath","settingsFolder","pathUtil","dirname","doesDirExist","createDir","writeFile","JSON","stringify","alreadyInstalled","resolvePath","exists","doesFileExist","settingsObject","parse","readFile","resolveHashSprucePath","__dirname","dir","deleteDir"],"sources":["../../../src/tests/fixtures/FeatureFixture.ts"],"sourcesContent":["import pathUtil from 'path'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport Cli, { CliBootOptions, CliInterface } from '../../cli'\nimport FeatureInstaller from '../../features/FeatureInstaller'\nimport { InstallFeature } from '../../features/features.types'\nimport { GlobalEmitter } from '../../GlobalEmitter'\nimport ServiceFactory, {\n\tServiceProvider,\n\tService,\n\tServiceMap,\n} from '../../services/ServiceFactory'\nimport { ApiClientFactory } from '../../types/apiClient.types'\nimport { GraphicsInterface } from '../../types/cli.types'\nimport testUtil from '../utilities/test.utility'\n\nexport interface CachedCli {\n\tcli: CliInterface\n\tcwd: string\n}\n\nexport interface FeatureFixtureOptions {\n\tcwd: string\n\tserviceFactory: ServiceFactory\n\tui: GraphicsInterface\n\tshouldGenerateCacheIfMissing?: boolean\n\tapiClientFactory: ApiClientFactory\n\temitter?: GlobalEmitter\n\tfeatureInstaller?: FeatureInstaller\n}\n\nexport default class FeatureFixture implements ServiceProvider {\n\tprivate cwd: string\n\tprivate installedSkills: Record<string, CachedCli> = {}\n\tprivate serviceFactory: ServiceFactory\n\tprivate static linkedUtils = false\n\tprivate static dirsToDelete: string[] = []\n\tprivate term: GraphicsInterface\n\tprivate generateCacheIfMissing = false\n\tprivate apiClientFactory: ApiClientFactory\n\tprivate emitter?: GlobalEmitter\n\tprivate featureInstaller?: FeatureInstaller\n\n\tpublic constructor(options: FeatureFixtureOptions) {\n\t\tif (options.cwd.search('packages/spruce-cli') > -1) {\n\t\t\tthrow new Error(\"You can't run FeatureFixture in the cli directory.\")\n\t\t}\n\n\t\tthis.cwd = options.cwd\n\t\tthis.serviceFactory = options.serviceFactory\n\t\tthis.term = options.ui\n\t\tthis.generateCacheIfMissing = !!options.shouldGenerateCacheIfMissing\n\t\tthis.apiClientFactory = options.apiClientFactory\n\t\tthis.emitter = options.emitter\n\t\tthis.featureInstaller = options.featureInstaller\n\t}\n\n\tpublic static deleteOldSkillDirs() {\n\t\tfor (const dir of this.dirsToDelete) {\n\t\t\tdiskUtil.deleteDir(dir)\n\t\t}\n\t}\n\n\tpublic Service<S extends Service>(\n\t\ttype: S,\n\t\tcwd?: string | undefined\n\t): ServiceMap[S] {\n\t\treturn this.serviceFactory.Service(cwd ?? this.cwd, type)\n\t}\n\n\tpublic async Cli(options?: CliBootOptions) {\n\t\tawait this.linkWorkspacePackages()\n\n\t\tconst cli = await Cli.Boot({\n\t\t\tcwd: this.cwd,\n\t\t\tgraphicsInterface: this.term,\n\t\t\tapiClientFactory: this.apiClientFactory,\n\t\t\temitter: this.emitter,\n\t\t\tfeatureInstaller: this.featureInstaller,\n\t\t\t...(options ?? {}),\n\t\t})\n\n\t\treturn cli\n\t}\n\n\tprivate async linkWorkspacePackages() {\n\t\tif (!FeatureFixture.linkedUtils) {\n\t\t\tFeatureFixture.linkedUtils = true\n\n\t\t\t// const expectedLinkedDir = pathUtil.join(\n\t\t\t// \tos.homedir(),\n\t\t\t// \t'.config',\n\t\t\t// \t'yarn',\n\t\t\t// \t'link',\n\t\t\t// \t'@sprucelabs',\n\t\t\t// \t'spruce-skill-utils'\n\t\t\t// )\n\n\t\t\t// if (!fsUtil.existsSync(expectedLinkedDir)) {\n\t\t\t// \tconst command = this.Service('command')\n\t\t\t// \ttry {\n\t\t\t// \t\tawait command.execute(\n\t\t\t// \t\t\t`cd ${pathUtil.join(\n\t\t\t// \t\t\t\t__dirname,\n\t\t\t// \t\t\t\t'..',\n\t\t\t// \t\t\t\t'..',\n\t\t\t// \t\t\t\t'..',\n\t\t\t// \t\t\t\t'spruce-skill-utils'\n\t\t\t// \t\t\t)} && yarn link`\n\t\t\t// \t\t)\n\t\t\t// \t} catch (err) {\n\t\t\t// \t\tif (fsUtil.existsSync(expectedLinkedDir)) {\n\t\t\t// \t\t\tlog.warn(`Symlink ${expectedLinkedDir} already exists`)\n\t\t\t// \t\t} else {\n\t\t\t// \t\t\tlog.warn(\n\t\t\t// \t\t\t\t`Symlink ${expectedLinkedDir} failed, but the check thinks it is missing`\n\t\t\t// \t\t\t)\n\t\t\t// \t\t}\n\t\t\t// \t}\n\t\t\t// }\n\t\t}\n\t}\n\n\tpublic async installCachedFeatures(\n\t\tcacheKey: string,\n\t\tbootOptions?: CliBootOptions\n\t) {\n\t\treturn this.installFeatures([], cacheKey, bootOptions)\n\t}\n\n\tpublic async installFeatures(\n\t\tfeatures: InstallFeature[],\n\t\tcacheKey?: string,\n\t\tbootOptions?: CliBootOptions\n\t) {\n\t\tif (this.isCached(cacheKey)) {\n\t\t\treturn this.installedSkills[cacheKey as string].cli\n\t\t}\n\n\t\tlet isCached = false\n\t\tif (cacheKey && testUtil.isCacheEnabled()) {\n\t\t\tisCached = this.doesCacheExist(cacheKey)\n\n\t\t\tif (!isCached && !this.generateCacheIfMissing) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Cached skill not found, make sure\\n\\n\"${cacheKey}\"\\n\\nis in your package.json under \"testSkillCache\" and run\\n\\n\\`yarn cache.tests\\``\n\t\t\t\t)\n\t\t\t}\n\n\t\t\tif (isCached) {\n\t\t\t\tawait this.copyCachedSkillToCwd(cacheKey)\n\t\t\t} else {\n\t\t\t\tthis.removeCwdFromCacheTracker(cacheKey)\n\t\t\t}\n\t\t}\n\n\t\tconst cli = await this.Cli(bootOptions)\n\n\t\tif (!isCached) {\n\t\t\tawait cli.installFeatures({\n\t\t\t\tfeatures,\n\t\t\t})\n\t\t}\n\n\t\tif (cacheKey && testUtil.isCacheEnabled()) {\n\t\t\t!isCached && this.addCwdToCacheTracker(cacheKey)\n\t\t\tthis.cacheCli(cacheKey, cli)\n\t\t}\n\n\t\tawait this.linkLocalPackages()\n\n\t\treturn cli\n\t}\n\n\tprivate isCached(cacheKey: string | undefined) {\n\t\treturn (\n\t\t\tcacheKey && this.installedSkills[cacheKey] && testUtil.isCacheEnabled()\n\t\t)\n\t}\n\n\tpublic async linkLocalPackages() {\n\t\t// const command = this.Service('command')\n\t\t// await command.execute(`yarn link @sprucelabs/spruce-skill-utils`)\n\t}\n\n\tprivate async copyCachedSkillToCwd(cacheKey: string) {\n\t\tlet isCached = this.doesCacheExist(cacheKey)\n\n\t\tif (isCached) {\n\t\t\tlet settings = this.loadCacheTracker()\n\t\t\tawait diskUtil.copyDir(settings[cacheKey], this.cwd)\n\n\t\t\tif (process.env.TEST_HOST) {\n\t\t\t\tthis.Service('env').set('HOST', process.env.TEST_HOST)\n\t\t\t}\n\n\t\t\tFeatureFixture.dirsToDelete.push(this.cwd)\n\t\t}\n\t}\n\n\tprivate addCwdToCacheTracker(cacheKey: string) {\n\t\tlet settings = this.loadCacheTracker()\n\n\t\tif (!settings) {\n\t\t\tsettings = {}\n\t\t}\n\n\t\tif (!settings[cacheKey]) {\n\t\t\tsettings[cacheKey] = this.cwd\n\t\t\tthis.writeCacheSettings(settings)\n\t\t}\n\t\treturn settings\n\t}\n\n\tprivate removeCwdFromCacheTracker(cacheKey: string) {\n\t\tlet settings = this.loadCacheTracker()\n\n\t\tif (!settings) {\n\t\t\tsettings = {}\n\t\t}\n\n\t\tif (settings[cacheKey]) {\n\t\t\tdelete settings[cacheKey]\n\t\t\tthis.writeCacheSettings(settings)\n\t\t}\n\t}\n\n\tprivate writeCacheSettings(settings: Record<string, any>) {\n\t\tconst settingsFile = this.getTestCacheTrackerFilePath()\n\t\tconst settingsFolder = pathUtil.dirname(settingsFile)\n\n\t\t!diskUtil.doesDirExist(settingsFolder) && diskUtil.createDir(settingsFolder)\n\n\t\tdiskUtil.writeFile(settingsFile, JSON.stringify(settings, null, 2))\n\t}\n\n\tprivate doesCacheExist(cacheKey: string) {\n\t\tlet alreadyInstalled = false\n\n\t\tconst settings = this.loadCacheTracker()\n\n\t\tif (settings?.[cacheKey]) {\n\t\t\talreadyInstalled = true\n\t\t}\n\n\t\tif (alreadyInstalled) {\n\t\t\talreadyInstalled = diskUtil.doesDirExist(\n\t\t\t\tdiskUtil.resolvePath(settings[cacheKey], 'node_modules')\n\t\t\t)\n\t\t}\n\n\t\treturn alreadyInstalled\n\t}\n\n\tpublic loadCacheTracker() {\n\t\tconst settingsFile = this.getTestCacheTrackerFilePath()\n\n\t\tconst exists = diskUtil.doesFileExist(settingsFile)\n\t\tlet settingsObject: Record<string, any> = {}\n\n\t\ttry {\n\t\t\tsettingsObject = exists ? JSON.parse(diskUtil.readFile(settingsFile)) : {}\n\t\t\t// eslint-disable-next-line no-empty\n\t\t} catch {}\n\n\t\treturn settingsObject\n\t}\n\n\tpublic getTestCacheTrackerFilePath() {\n\t\treturn diskUtil.resolveHashSprucePath(\n\t\t\t__dirname,\n\t\t\t'tmp',\n\t\t\t`cached-skills.json`\n\t\t)\n\t}\n\n\tprivate cacheCli(cacheKey: string, cli: CliInterface) {\n\t\tthis.installedSkills[cacheKey] = {\n\t\t\tcwd: this.cwd,\n\t\t\tcli,\n\t\t}\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"MercuryFixture.js","names":["require","config","TEST_HOST","process","env","DEFAULT_HOST","MercuryFixture","cwd","serviceFactory","apiClientFactory","Cli","buildApiClientFactory","host","shouldReconnect","options","getApiClientFactory","resetApiClients"],"sources":["../../../src/tests/fixtures/MercuryFixture.ts"],"sourcesContent":["import Cli from '../../cli'\nimport { DEFAULT_HOST } from '../../constants'\nimport ServiceFactory from '../../services/ServiceFactory'\nimport {\n\tApiClientFactory,\n\tApiClientFactoryOptions,\n} from '../../types/apiClient.types'\nrequire('dotenv').config()\n\nconst TEST_HOST = process.env.TEST_HOST ?? DEFAULT_HOST\n\nexport default class MercuryFixture {\n\tprivate cwd: string\n\tprivate serviceFactory: ServiceFactory\n\tprivate apiClientFactory: any\n\n\tpublic constructor(cwd: string, serviceFactory: ServiceFactory) {\n\t\tthis.cwd = cwd\n\t\tthis.serviceFactory = serviceFactory\n\t\tthis.apiClientFactory = Cli.buildApiClientFactory(\n\t\t\tthis.cwd,\n\t\t\tthis.serviceFactory,\n\t\t\t{ host: TEST_HOST, shouldReconnect: false }\n\t\t)\n\t}\n\n\tpublic getApiClientFactory(): ApiClientFactory {\n\t\treturn this.apiClientFactory\n\t}\n\n\tpublic connectToApi(options?: ApiClientFactoryOptions) {\n\t\treturn this.getApiClientFactory()(options)\n\t}\n\n\tpublic async disconnectAll() {\n\t\tawait Cli.resetApiClients()\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;AACA;;;;AAMAA,OAAO,CAAC,QAAD,CAAP,CAAkBC,MAAlB;;AAEA,IAAMC,SAAS,4BAAGC,OAAO,CAACC,GAAR,CAAYF,SAAf,yEAA4BG,uBAA3C;;IAEqBC,c;EAKpB,wBAAmBC,GAAnB,EAAgCC,cAAhC,EAAgE;IAAA;IAAA;IAAA;IAAA;IAC/D,KAAKD,GAAL,GAAWA,GAAX;IACA,KAAKC,cAAL,GAAsBA,cAAtB;IACA,KAAKC,gBAAL,GAAwBC,gBAAIC,qBAAJ,CACvB,KAAKJ,GADkB,EAEvB,KAAKC,cAFkB,EAGvB;MAAEI,IAAI,EAAEV,SAAR;MAAmBW,eAAe,EAAE;IAApC,CAHuB,CAAxB;EAKA;;;;WAED,+BAA+C;MAC9C,OAAO,KAAKJ,gBAAZ;IACA;;;WAED,sBAAoBK,OAApB,EAAuD;MACtD,OAAO,KAAKC,mBAAL,GAA2BD,OAA3B,CAAP;IACA;;;;yGAED;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACOJ,gBAAIM,eAAJ,EADP;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"OrganizationFixture.js","names":["OrganizationFixture","personFixture","storeFactory","options","loginAsDemoPerson","Store","create","slug","Date","getTime","orgStore","fetchMyOrganizations","orgs","org","deleteOrganization","id","length","skillId","orgId","installSkillAtOrganization"],"sources":["../../../src/tests/fixtures/OrganizationFixture.ts"],"sourcesContent":["import StoreFactory from '../../stores/StoreFactory'\nimport PersonFixture from './PersonFixture'\n\nexport default class OrganizationFixture {\n\tprivate storeFactory: StoreFactory\n\tprivate personFixture: PersonFixture\n\n\tpublic constructor(personFixture: PersonFixture, storeFactory: StoreFactory) {\n\t\tthis.storeFactory = storeFactory\n\t\tthis.personFixture = personFixture\n\t}\n\n\tpublic async seedDemoOrg(options: { name: string; slug?: string }) {\n\t\tawait this.personFixture.loginAsDemoPerson()\n\n\t\treturn this.storeFactory.Store('organization').create({\n\t\t\tslug: `my-org-${new Date().getTime()}`,\n\t\t\t...options,\n\t\t})\n\t}\n\n\tpublic async clearAllOrgs() {\n\t\tawait this.personFixture.loginAsDemoPerson()\n\n\t\tconst orgStore = this.storeFactory.Store('organization')\n\t\tconst orgs = await orgStore.fetchMyOrganizations()\n\n\t\tfor (const org of orgs) {\n\t\t\tawait orgStore.deleteOrganization(org.id)\n\t\t}\n\n\t\treturn orgs.length\n\t}\n\n\tpublic async installSkillAtOrganization(skillId: string, orgId: string) {\n\t\tawait this.personFixture.loginAsDemoPerson()\n\t\tconst orgStore = this.storeFactory.Store('organization')\n\n\t\tawait orgStore.installSkillAtOrganization(skillId, orgId)\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAGqBA,mB;EAIpB,6BAAmBC,aAAnB,EAAiDC,YAAjD,EAA6E;IAAA;IAAA;IAAA;IAC5E,KAAKA,YAAL,GAAoBA,YAApB;IACA,KAAKD,aAAL,GAAqBA,aAArB;EACA;;;;;uGAED,iBAAyBE,OAAzB;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACO,KAAKF,aAAL,CAAmBG,iBAAnB,EADP;;cAAA;gBAAA,iCAGQ,KAAKF,YAAL,CAAkBG,KAAlB,CAAwB,cAAxB,EAAwCC,MAAxC;kBACNC,IAAI,mBAAY,IAAIC,IAAJ,GAAWC,OAAX,EAAZ;gBADE,GAEHN,OAFG,EAHR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;wGASA;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACO,KAAKF,aAAL,CAAmBG,iBAAnB,EADP;;cAAA;gBAGOM,QAHP,GAGkB,KAAKR,YAAL,CAAkBG,KAAlB,CAAwB,cAAxB,CAHlB;gBAAA;gBAAA,OAIoBK,QAAQ,CAACC,oBAAT,EAJpB;;cAAA;gBAIOC,IAJP;gBAAA,uCAMmBA,IANnB;gBAAA;;gBAAA;;cAAA;gBAAA;kBAAA;kBAAA;gBAAA;;gBAMYC,GANZ;gBAAA;gBAAA,OAOQH,QAAQ,CAACI,kBAAT,CAA4BD,GAAG,CAACE,EAAhC,CAPR;;cAAA;gBAAA;gBAAA;;cAAA;gBAAA;gBAAA;;cAAA;gBAAA;gBAAA;;gBAAA;;cAAA;gBAAA;;gBAAA;;gBAAA;;cAAA;gBAAA,kCAUQH,IAAI,CAACI,MAVb;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;sHAaA,kBAAwCC,OAAxC,EAAyDC,KAAzD;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACO,KAAKjB,aAAL,CAAmBG,iBAAnB,EADP;;cAAA;gBAEOM,QAFP,GAEkB,KAAKR,YAAL,CAAkBG,KAAlB,CAAwB,cAAxB,CAFlB;gBAAA;gBAAA,OAIOK,QAAQ,CAACS,0BAAT,CAAoCF,OAApC,EAA6CC,KAA7C,CAJP;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"PersonFixture.js","names":["require","config","DEMO_NUMBER","process","env","PersonFixture","apiClientFactory","connectToApi","phone","client","auth","person","SchemaError","code","parameters","emit","payload","requestPinResults","eventResponseUtil","getFirstResponseOrThrow","challenge","pin","substr","confirmPinResults","token","personWithToken"],"sources":["../../../src/tests/fixtures/PersonFixture.ts"],"sourcesContent":["import { SpruceSchemas } from '@sprucelabs/mercury-types'\nimport { SchemaError } from '@sprucelabs/schema'\nimport { eventResponseUtil } from '@sprucelabs/spruce-event-utils'\nimport { ApiClientFactory } from '../../types/apiClient.types'\n\nrequire('dotenv').config()\n\nexport const DEMO_NUMBER = process.env.DEMO_NUMBER as string\n\nexport default class PersonFixture {\n\tprivate connectToApi: ApiClientFactory\n\n\tpublic constructor(apiClientFactory: ApiClientFactory) {\n\t\tthis.connectToApi = apiClientFactory\n\t}\n\n\tpublic async loginAsDemoPerson(\n\t\tphone?: string\n\t): Promise<SpruceSchemas.SpruceCli.v2020_07_22.PersonWithToken> {\n\t\tconst client = await this.connectToApi()\n\n\t\t//@ts-ignore\n\t\tif (!phone && client.auth?.person) {\n\t\t\t//@ts-ignore\n\t\t\treturn client.auth.person\n\t\t}\n\n\t\tphone = phone || DEMO_NUMBER\n\n\t\tif (!phone) {\n\t\t\tthrow new SchemaError({\n\t\t\t\tcode: 'MISSING_PARAMETERS',\n\t\t\t\tparameters: ['env.DEMO_NUMBER'],\n\t\t\t})\n\t\t}\n\n\t\t//@ts-ignore\n\t\tif (client.auth?.person?.phone === phone) {\n\t\t\t//@ts-ignore\n\t\t\treturn client.auth.person\n\t\t}\n\n\t\tconst requestPinResults = await client.emit('request-pin::v2020_12_25', {\n\t\t\tpayload: { phone },\n\t\t})\n\n\t\tconst { challenge } =\n\t\t\teventResponseUtil.getFirstResponseOrThrow(requestPinResults)\n\n\t\tconst confirmPinResults = await client.emit('confirm-pin::v2020_12_25', {\n\t\t\tpayload: { challenge, pin: phone.substr(-4) },\n\t\t})\n\n\t\tconst { person, token } =\n\t\t\teventResponseUtil.getFirstResponseOrThrow(confirmPinResults)\n\n\t\tconst personWithToken = { ...person, token }\n\n\t\t//@ts-ignore\n\t\tclient.auth = { person: personWithToken }\n\n\t\treturn personWithToken\n\t}\n\n\tpublic async logout() {\n\t\tconst client = await this.connectToApi()\n\n\t\tawait client.emit('logout::v2020_12_25')\n\n\t\t//@ts-ignore\n\t\tdelete client.auth\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AACA;;AACA;;;;;;AAGAA,OAAO,CAAC,QAAD,CAAP,CAAkBC,MAAlB;;AAEO,IAAMC,WAAW,GAAGC,OAAO,CAACC,GAAR,CAAYF,WAAhC;;;IAEcG,a;EAGpB,uBAAmBC,gBAAnB,EAAuD;IAAA;IAAA;IACtD,KAAKC,YAAL,GAAoBD,gBAApB;EACA;;;;;6GAED,iBACCE,KADD;QAAA;;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAGsB,KAAKD,YAAL,EAHtB;;cAAA;gBAGOE,MAHP;;gBAAA,MAMK,CAACD,KAAD,oBAAUC,MAAM,CAACC,IAAjB,yCAAU,aAAaC,MAN5B;kBAAA;kBAAA;gBAAA;;gBAAA,iCAQSF,MAAM,CAACC,IAAP,CAAYC,MARrB;;cAAA;gBAWCH,KAAK,GAAGA,KAAK,IAAIN,WAAjB;;gBAXD,IAaMM,KAbN;kBAAA;kBAAA;gBAAA;;gBAAA,MAcQ,IAAII,mBAAJ,CAAgB;kBACrBC,IAAI,EAAE,oBADe;kBAErBC,UAAU,EAAE,CAAC,iBAAD;gBAFS,CAAhB,CAdR;;cAAA;gBAAA,MAqBK,kBAAAL,MAAM,CAACC,IAAP,wFAAaC,MAAb,8EAAqBH,KAArB,MAA+BA,KArBpC;kBAAA;kBAAA;gBAAA;;gBAAA,iCAuBSC,MAAM,CAACC,IAAP,CAAYC,MAvBrB;;cAAA;gBAAA;gBAAA,OA0BiCF,MAAM,CAACM,IAAP,CAAY,0BAAZ,EAAwC;kBACvEC,OAAO,EAAE;oBAAER,KAAK,EAALA;kBAAF;gBAD8D,CAAxC,CA1BjC;;cAAA;gBA0BOS,iBA1BP;gBAAA,wBA+BEC,oCAAkBC,uBAAlB,CAA0CF,iBAA1C,CA/BF,EA8BSG,SA9BT,yBA8BSA,SA9BT;gBAAA;gBAAA,OAiCiCX,MAAM,CAACM,IAAP,CAAY,0BAAZ,EAAwC;kBACvEC,OAAO,EAAE;oBAAEI,SAAS,EAATA,SAAF;oBAAaC,GAAG,EAAEb,KAAK,CAACc,MAAN,CAAa,CAAC,CAAd;kBAAlB;gBAD8D,CAAxC,CAjCjC;;cAAA;gBAiCOC,iBAjCP;gBAAA,yBAsCEL,oCAAkBC,uBAAlB,CAA0CI,iBAA1C,CAtCF,EAqCSZ,MArCT,0BAqCSA,MArCT,EAqCiBa,KArCjB,0BAqCiBA,KArCjB;gBAwCOC,eAxCP,mCAwC8Bd,MAxC9B;kBAwCsCa,KAAK,EAALA;gBAxCtC,IA0CC;;gBACAf,MAAM,CAACC,IAAP,GAAc;kBAAEC,MAAM,EAAEc;gBAAV,CAAd;gBA3CD,iCA6CQA,eA7CR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;kGAgDA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACsB,KAAKlB,YAAL,EADtB;;cAAA;gBACOE,MADP;gBAAA;gBAAA,OAGOA,MAAM,CAACM,IAAP,CAAY,qBAAZ,CAHP;;cAAA;gBAKC;gBACA,OAAON,MAAM,CAACC,IAAd;;cAND;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"SkillFixture.js","names":["SkillFixture","personFixture","storeFactory","apiClientFactory","values","options","registerCurrentSkill","isRegisteringCurrentSkill","loginAsDemoPerson","phone","Store","register","slug","generateSkillSlug","name","skillCount","namesUtil","toKebab","Date","getTime","auth","contract","skillAuth","apiClientUtil","skillOrAuthToAuth","client","eventStore","registerEventContract","eventContract","unRegisterEvents","skillStore","fetchMySkills","skills","skill","unregisterSkill","id","length","Math","round","random"],"sources":["../../../src/tests/fixtures/SkillFixture.ts"],"sourcesContent":["import { EventContract, SpruceSchemas } from '@sprucelabs/mercury-types'\nimport { namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport { RegisterSkillOptions } from '../../features/skill/stores/SkillStore'\nimport StoreFactory from '../../stores/StoreFactory'\nimport {\n\tApiClientFactory,\n\tApiClientFactoryOptions,\n} from '../../types/apiClient.types'\nimport apiClientUtil from '../../utilities/apiClient.utility'\nimport PersonFixture from './PersonFixture'\n\nexport default class SkillFixture {\n\tprivate storeFactory: StoreFactory\n\tprivate apiClientFactory: ApiClientFactory\n\tprivate personFixture: PersonFixture\n\n\tprivate static skillCount = Math.round(Math.random() * 100)\n\n\tpublic constructor(\n\t\tpersonFixture: PersonFixture,\n\t\tstoreFactory: StoreFactory,\n\t\tapiClientFactory: ApiClientFactory\n\t) {\n\t\tthis.personFixture = personFixture\n\t\tthis.storeFactory = storeFactory\n\t\tthis.apiClientFactory = apiClientFactory\n\t}\n\n\tpublic async seedDemoSkill(\n\t\tvalues: { name: string },\n\t\toptions?: { phone?: string }\n\t) {\n\t\treturn this.registerCurrentSkill(values, {\n\t\t\tisRegisteringCurrentSkill: false,\n\t\t\t...options,\n\t\t})\n\t}\n\n\tpublic async registerCurrentSkill(\n\t\tvalues: { name: string; slug?: string },\n\t\toptions?: RegisterSkillOptions & { phone?: string }\n\t) {\n\t\tawait this.personFixture.loginAsDemoPerson(options?.phone)\n\n\t\treturn this.storeFactory.Store('skill').register(\n\t\t\t{\n\t\t\t\tslug: values.slug ?? this.generateSkillSlug(values.name),\n\t\t\t\t...values,\n\t\t\t},\n\t\t\toptions\n\t\t)\n\t}\n\n\tprivate generateSkillSlug(name: string): string {\n\t\tSkillFixture.skillCount++\n\t\treturn `${namesUtil.toKebab(name)}-${new Date().getTime()}-count-${\n\t\t\tSkillFixture.skillCount\n\t\t}-cli-test`\n\t}\n\n\tpublic async registerEventContract(\n\t\tauth: ApiClientFactoryOptions | SpruceSchemas.Spruce.v2020_07_22.Skill,\n\t\tcontract: EventContract\n\t) {\n\t\tconst skillAuth = apiClientUtil.skillOrAuthToAuth(auth)\n\t\tconst client = await this.apiClientFactory(skillAuth)\n\n\t\tconst eventStore = this.storeFactory.Store('event', {\n\t\t\tapiClientFactory: async () => {\n\t\t\t\treturn client\n\t\t\t},\n\t\t})\n\n\t\tawait eventStore.registerEventContract({\n\t\t\teventContract: contract,\n\t\t})\n\t}\n\n\tpublic async unRegisterEvents(\n\t\tauth: ApiClientFactoryOptions | SpruceSchemas.Spruce.v2020_07_22.Skill,\n\t\toptions: SpruceSchemas.Mercury.v2020_12_25.UnregisterEventsEmitPayload\n\t) {\n\t\tconst skillAuth = apiClientUtil.skillOrAuthToAuth(auth)\n\t\tconst client = await this.apiClientFactory(skillAuth)\n\n\t\tconst eventStore = this.storeFactory.Store('event', {\n\t\t\tapiClientFactory: async () => {\n\t\t\t\treturn client\n\t\t\t},\n\t\t})\n\n\t\tawait eventStore.unRegisterEvents(options)\n\t}\n\n\tpublic async clearAllSkills() {\n\t\tawait this.personFixture.loginAsDemoPerson()\n\n\t\tconst skillStore = this.storeFactory.Store('skill')\n\t\tconst skills = await skillStore.fetchMySkills()\n\n\t\tfor (const skill of skills) {\n\t\t\tawait skillStore.unregisterSkill(skill.id)\n\t\t}\n\n\t\treturn skills.length\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"ViewFixture.js","names":["ViewFixture","cwd","viewWriter","syncAction","writer","options","writeSkillViewController","files","execute"],"sources":["../../../src/tests/fixtures/ViewFixture.ts"],"sourcesContent":["import SyncAction from '../../features/view/actions/SyncAction'\nimport ViewWriter from '../../features/view/writers/ViewWriter'\n\nexport default class ViewFixture {\n\tprivate writer: ViewWriter\n\tprivate cwd: string\n\tprivate syncAction: SyncAction\n\tpublic constructor(\n\t\tcwd: string,\n\t\tviewWriter: ViewWriter,\n\t\tsyncAction: SyncAction\n\t) {\n\t\tthis.cwd = cwd\n\t\tthis.writer = viewWriter\n\t\tthis.syncAction = syncAction\n\t}\n\n\tpublic async createViewController(options: {\n\t\tnamePascal: string\n\t\tnameKebab: string\n\t}) {\n\t\tconst files = await this.writer.writeSkillViewController(this.cwd, options)\n\n\t\tawait this.syncAction.execute({})\n\n\t\treturn files[0]\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;IAGqBA,W;EAIpB,qBACCC,GADD,EAECC,UAFD,EAGCC,UAHD,EAIE;IAAA;IAAA;IAAA;IAAA;IACD,KAAKF,GAAL,GAAWA,GAAX;IACA,KAAKG,MAAL,GAAcF,UAAd;IACA,KAAKC,UAAL,GAAkBA,UAAlB;EACA;;;;;gHAED,iBAAkCE,OAAlC;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAIqB,KAAKD,MAAL,CAAYE,wBAAZ,CAAqC,KAAKL,GAA1C,EAA+CI,OAA/C,CAJrB;;cAAA;gBAIOE,KAJP;gBAAA;gBAAA,OAMO,KAAKJ,UAAL,CAAgBK,OAAhB,CAAwB,EAAxB,CANP;;cAAA;gBAAA,iCAQQD,KAAK,CAAC,CAAD,CARb;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"test.utility.js","names":["require","config","hasArg","regex","process","argv","find","arg","search","testUtil","shouldClearCache","isCacheEnabled","resolveTestDir","cacheKey","diskUtil","resolvePath","getTestRootDir","shouldCleanupTestSkillDirs","env","CLEANUP_TEST_SKILL_DIRS","TEST_CACHE_ROOT_DIR","pathUtil","join","os","tmpdir","assertCountsByAction","files","options","generated","filter","f","action","length","updated","skipped","assert","isEqual","assertFileByNameInGeneratedFiles","name","file","path","isTruthy","JSON","stringify","assertFileByPathInGeneratedFiles","startTime","startLogTimer","Date","getTime","log","prefix","global","activeTest","test","TEST_LOG_FILTER","match","RegExp","args","stderr","write","getTimeSpentFormatted","getTimeSpent","now","delta","spent","durationUtil","msToFriendly"],"sources":["../../../src/tests/utilities/test.utility.ts"],"sourcesContent":["import os from 'os'\nimport pathUtil from 'path'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { assert } from '@sprucelabs/test'\nimport { GeneratedFile } from '../../types/cli.types'\nimport durationUtil from '../../utilities/duration.utility'\nrequire('dotenv').config()\n\nfunction hasArg(regex: RegExp) {\n\treturn !!process.argv?.find((arg) => arg.search(regex) > -1)\n}\n\nconst testUtil = {\n\tshouldClearCache() {\n\t\treturn hasArg(/clear.*?cache/gi)\n\t},\n\tisCacheEnabled() {\n\t\treturn !hasArg(/no.*?cache/gi)\n\t},\n\n\tresolveTestDir(cacheKey = '') {\n\t\treturn diskUtil.resolvePath(this.getTestRootDir(), 'spruce-cli', cacheKey)\n\t},\n\n\tshouldCleanupTestSkillDirs() {\n\t\treturn process.env.CLEANUP_TEST_SKILL_DIRS !== 'false'\n\t},\n\n\tgetTestRootDir() {\n\t\treturn process.env.TEST_CACHE_ROOT_DIR ?? pathUtil.join(os.tmpdir())\n\t},\n\n\tassertCountsByAction(\n\t\tfiles: GeneratedFile[] | undefined,\n\t\toptions: {\n\t\t\tgenerated: number\n\t\t\tupdated: number\n\t\t\tskipped: number\n\t\t}\n\t) {\n\t\tconst generated = (files ?? []).filter(\n\t\t\t(f) => f.action === 'generated'\n\t\t).length\n\t\tconst updated = (files ?? []).filter((f) => f.action === 'updated').length\n\t\tconst skipped = (files ?? []).filter((f) => f.action === 'skipped').length\n\n\t\tassert.isEqual(\n\t\t\tgenerated,\n\t\t\toptions.generated,\n\t\t\t`Generated the wrong number of files. Got ${generated} but expected ${options.generated}.`\n\t\t)\n\n\t\tassert.isEqual(\n\t\t\tupdated,\n\t\t\toptions.updated,\n\t\t\t`Updated the wrong number of files. Got ${updated} but expected ${options.updated}.`\n\t\t)\n\n\t\tassert.isEqual(\n\t\t\tskipped,\n\t\t\toptions.skipped,\n\t\t\t`Skipped the wrong number of files. Got ${skipped} but expected ${options.skipped}.`\n\t\t)\n\t},\n\n\tassertFileByNameInGeneratedFiles(\n\t\tname: string | RegExp,\n\t\tfiles: GeneratedFile[] | undefined\n\t): string {\n\t\tconst file = (files ?? []).find((f) => f.name.search(name) > -1)?.path\n\t\tassert.isTruthy(\n\t\t\tfile,\n\t\t\t`file named '${name}' not found in generated files.\\n\\n${JSON.stringify(\n\t\t\t\tfiles ?? [],\n\t\t\t\tnull,\n\t\t\t\t2\n\t\t\t)}`\n\t\t)\n\n\t\treturn file\n\t},\n\n\tassertFileByPathInGeneratedFiles(\n\t\tpath: string | RegExp,\n\t\tfiles: GeneratedFile[] | undefined\n\t): string {\n\t\tconst file = (files ?? []).find((f) => f.path.search(path) > -1)?.path\n\t\tassert.isTruthy(\n\t\t\tfile,\n\t\t\t`file with path '${path}' not found in generated files.\\n\\n${JSON.stringify(\n\t\t\t\tfiles ?? [],\n\t\t\t\tnull,\n\t\t\t\t2\n\t\t\t)}`\n\t\t)\n\n\t\treturn file\n\t},\n\n\tstartTime: 0,\n\tstartLogTimer() {\n\t\tthis.startTime = new Date().getTime()\n\t},\n\n\tlog(...args: any[]) {\n\t\t//@ts-ignore\n\t\tconst prefix = global.activeTest\n\t\t\t? //@ts-ignore\n\t\t\t `${global.activeTest?.file}::${global.activeTest?.test} :: `\n\t\t\t: ''\n\n\t\tif (process.env.TEST_LOG_FILTER) {\n\t\t\tconst match = prefix.search(\n\t\t\t\tnew RegExp(process.env.TEST_LOG_FILTER, 'igm')\n\t\t\t)\n\t\t\tif (match < 0) {\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\n\t\tprocess.stderr.write(\n\t\t\tprefix + this.getTimeSpentFormatted() + ': ' + args.join(' ')\n\t\t)\n\t},\n\n\tgetTimeSpent() {\n\t\tconst now = new Date().getTime()\n\t\tconst delta = now - this.startTime\n\t\treturn delta\n\t},\n\n\tgetTimeSpentFormatted() {\n\t\tconst spent = this.getTimeSpent()\n\t\treturn durationUtil.msToFriendly(spent)\n\t},\n}\n\nexport default testUtil\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"uiAssert.utility.js","names":["uiAssert","assertRendersSelect","ui","waitForInput","last","getLastInvocation","assert","isTruthy","options","choices","assertSelectDidNotRenderChoice","value","label","doesNotInclude","assertSelectRenderChoice","doesInclude","assertRendersConfirmWriteFile","isEqual","type","isEqualDeep"],"sources":["../../../src/tests/utilities/uiAssert.utility.ts"],"sourcesContent":["import { assert } from '@sprucelabs/test'\nimport SpyInterface from '../../interfaces/SpyInterface'\n\nconst uiAssert = {\n\tasync assertRendersSelect(ui: SpyInterface) {\n\t\tawait ui.waitForInput()\n\n\t\tconst last = ui.getLastInvocation()\n\t\tassert.isTruthy(\n\t\t\tlast.options.options.choices,\n\t\t\t`I expected a select, I did not find one!`\n\t\t)\n\n\t\treturn last.options\n\t},\n\n\tassertSelectDidNotRenderChoice(\n\t\tui: SpyInterface,\n\t\tvalue: string,\n\t\tlabel: string\n\t) {\n\t\tconst last = ui.getLastInvocation()\n\n\t\tassert.doesNotInclude(last.options.options.choices, {\n\t\t\tvalue,\n\t\t\tlabel,\n\t\t})\n\t},\n\n\tassertSelectRenderChoice(ui: SpyInterface, value: string, label: string) {\n\t\tconst last = ui.getLastInvocation()\n\n\t\tassert.doesInclude(last.options.options.choices, {\n\t\t\tvalue,\n\t\t\tlabel,\n\t\t})\n\t},\n\n\tasync assertRendersConfirmWriteFile(ui: SpyInterface) {\n\t\tawait ui.waitForInput()\n\n\t\tconst last = ui.getLastInvocation()\n\n\t\tassert.isEqual(last.options.type, 'select')\n\t\tassert.isEqualDeep(last.options.options.choices, [\n\t\t\t{\n\t\t\t\tlabel: 'Overwrite',\n\t\t\t\tvalue: 'overwrite',\n\t\t\t},\n\t\t\t{ value: 'skip', label: 'Skip' },\n\t\t\t{ value: 'alwaysSkip', label: 'Always skip' },\n\t\t])\n\t},\n}\n\nexport default uiAssert\n"],"mappings":";;;;;;;;;;;;;AAAA;;AAGA,IAAMA,QAAQ,GAAG;EACVC,mBADU,+BACUC,EADV,EAC4B;IAAA;MAAA;MAAA;QAAA;UAAA;YAAA;cAAA;cAAA,OACrCA,EAAE,CAACC,YAAH,EADqC;;YAAA;cAGrCC,IAHqC,GAG9BF,EAAE,CAACG,iBAAH,EAH8B;;cAI3CC,aAAOC,QAAP,CACCH,IAAI,CAACI,OAAL,CAAaA,OAAb,CAAqBC,OADtB;;cAJ2C,iCASpCL,IAAI,CAACI,OAT+B;;YAAA;YAAA;cAAA;UAAA;QAAA;MAAA;IAAA;EAU3C,CAXe;EAahBE,8BAbgB,0CAcfR,EAde,EAefS,KAfe,EAgBfC,KAhBe,EAiBd;IACD,IAAMR,IAAI,GAAGF,EAAE,CAACG,iBAAH,EAAb;;IAEAC,aAAOO,cAAP,CAAsBT,IAAI,CAACI,OAAL,CAAaA,OAAb,CAAqBC,OAA3C,EAAoD;MACnDE,KAAK,EAALA,KADmD;MAEnDC,KAAK,EAALA;IAFmD,CAApD;EAIA,CAxBe;EA0BhBE,wBA1BgB,oCA0BSZ,EA1BT,EA0B2BS,KA1B3B,EA0B0CC,KA1B1C,EA0ByD;IACxE,IAAMR,IAAI,GAAGF,EAAE,CAACG,iBAAH,EAAb;;IAEAC,aAAOS,WAAP,CAAmBX,IAAI,CAACI,OAAL,CAAaA,OAAb,CAAqBC,OAAxC,EAAiD;MAChDE,KAAK,EAALA,KADgD;MAEhDC,KAAK,EAALA;IAFgD,CAAjD;EAIA,CAjCe;EAmCVI,6BAnCU,yCAmCoBd,EAnCpB,EAmCsC;IAAA;MAAA;MAAA;QAAA;UAAA;YAAA;cAAA;cAAA,OAC/CA,EAAE,CAACC,YAAH,EAD+C;;YAAA;cAG/CC,IAH+C,GAGxCF,EAAE,CAACG,iBAAH,EAHwC;;cAKrDC,aAAOW,OAAP,CAAeb,IAAI,CAACI,OAAL,CAAaU,IAA5B,EAAkC,QAAlC;;cACAZ,aAAOa,WAAP,CAAmBf,IAAI,CAACI,OAAL,CAAaA,OAAb,CAAqBC,OAAxC,EAAiD,CAChD;gBACCG,KAAK,EAAE,WADR;gBAECD,KAAK,EAAE;cAFR,CADgD,EAKhD;gBAAEA,KAAK,EAAE,MAAT;gBAAiBC,KAAK,EAAE;cAAxB,CALgD,EAMhD;gBAAED,KAAK,EAAE,YAAT;gBAAuBC,KAAK,EAAE;cAA9B,CANgD,CAAjD;;YANqD;YAAA;cAAA;UAAA;QAAA;MAAA;IAAA;EAcrD;AAjDe,CAAjB;eAoDeZ,Q"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"apiClient.types.js","names":[],"sources":["../../src/types/apiClient.types.ts"],"sourcesContent":["import { MercuryClient } from '@sprucelabs/mercury-client'\nimport { SpruceSchemas } from '@sprucelabs/mercury-types'\n\nexport type ApiClientFactoryOptions =\n\tSpruceSchemas.Mercury.v2020_12_25.AuthenticateEmitPayload & {\n\t\tshouldAuthAsCurrentSkill?: boolean\n\t\tshouldAuthAsLoggedInPerson?: boolean\n\t}\nexport type ApiClient = MercuryClient\nexport type ApiClientFactory = (\n\toptions?: ApiClientFactoryOptions\n) => Promise<ApiClient>\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"cli.types.js","names":[],"sources":["../../src/types/cli.types.ts"],"sourcesContent":["import { SpruceSchemas } from '#spruce/schemas/schemas.types'\nimport {\n\tFeatureAction,\n\tFeatureActionResponse,\n} from '../features/features.types'\nimport { GraphicsInterface as IGraphicsInterface } from './graphicsInterface.types'\nexport { NpmPackage } from '@sprucelabs/spruce-skill-utils'\n\nexport interface GraphicsInterface extends IGraphicsInterface {\n\trenderActionSummary(results: ExecutionResults & { totalTime?: number }): void\n\tgetCursorPosition(): Promise<{ x: number; y: number } | null>\n\tmoveCursorTo(x: number, y: number): void\n\tclearBelowCursor(): void\n\tclear(): void\n\twaitForEnter(message?: string): Promise<void>\n\tsendInput(message: string): Promise<void>\n}\n\nexport type GeneratedFile = SpruceSchemas.SpruceCli.v2020_07_22.GeneratedFile\nexport type GeneratedDir = SpruceSchemas.SpruceCli.v2020_07_22.GeneratedDir\nexport type GeneratedFileOrDir =\n\tSpruceSchemas.SpruceCli.v2020_07_22.WatcherDidDetectChangesEmitPayload['changes'][number]\n\nexport interface ExecutionResults extends FeatureActionResponse {\n\tfeatureCode: string\n\tactionCode: string\n\theadline: string\n\taction: FeatureAction\n}\n\ntype Skill = Omit<SpruceSchemas.Spruce.v2020_07_22.Skill, 'creators'>\n\nexport type CurrentSkill = Partial<Skill> & {\n\tname: string\n\tisRegistered: boolean\n\tnamespacePascal: string\n}\n\nexport type RegisteredSkill = Omit<\n\tSpruceSchemas.Spruce.v2020_07_22.Skill,\n\t'creators'\n>\n\nexport type UpgradeMode =\n\tSpruceSchemas.SpruceCli.v2020_07_22.UpgradeSkillOptions['upgradeMode']\n\nexport type FileDescription = {\n\tpath: string\n\tdescription: string\n\tshouldOverwriteWhenChanged: boolean\n\tconfirmPromptOnFirstWrite?: string\n}\n\nexport type InternalUpdateHandler = (message: string) => void\n\nexport interface OptionOverrides {\n\t[command: string]: Record<string, any>\n}\n\nexport interface BlockedCommands {\n\t[command: string]: string\n}\n"],"mappings":";;;;;;;;;;;;AAMA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"graphicsInterface.types.js","names":[],"sources":["../../src/types/graphicsInterface.types.ts"],"sourcesContent":["export {\n\tGraphicsTextEffect,\n\tImageDimensions,\n\tProgressBarOptions,\n\tProgressBarUpdateOptions,\n\tGraphicsInterface,\n} from '@sprucelabs/spruce-skill-utils'\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"ScriptUpdater.js","names":["ScriptUpdater","options","pkg","latestScripts","shouldConfirmIfScriptExistsButIsDifferent","ui","settings","scripts","get","all","oldScripts","shouldConfirm","shouldSkipAll","updaterSettings","skipped","name","script","oldScript","shouldAlwaysSkip","indexOf","shouldWrite","clear","renderSection","headline","object","Current","prompt","type","label","choices","value","FILE_ACTION_OVERWRITE","FILE_ACTION_SKIP","FILE_ACTION_ALWAYS_SKIP","desiredAction","push","set","path","feature","cwd","updater","Service"],"sources":["../../src/updaters/ScriptUpdater.ts"],"sourcesContent":["import { SettingsService } from '@sprucelabs/spruce-skill-utils'\nimport {\n\tFILE_ACTION_ALWAYS_SKIP,\n\tFILE_ACTION_OVERWRITE,\n\tFILE_ACTION_SKIP,\n} from '../constants'\nimport AbstractFeature from '../features/AbstractFeature'\nimport PkgService from '../services/PkgService'\nimport { GraphicsInterface } from '../types/cli.types'\n\nexport default class ScriptUpdater {\n\tprivate pkg: PkgService\n\tprivate latestScripts: Record<string, any>\n\tprivate shouldConfirmIfScriptExistsButIsDifferent: boolean\n\tprivate ui: GraphicsInterface\n\tprivate settings: SettingsService<string>\n\n\tpublic constructor(options: {\n\t\tpkg: PkgService\n\t\tlatestScripts: Record<string, any>\n\t\tshouldConfirmIfScriptExistsButIsDifferent?: boolean\n\t\tui: GraphicsInterface\n\t\tsettings: SettingsService\n\t}) {\n\t\tthis.pkg = options.pkg\n\t\tthis.latestScripts = options.latestScripts\n\t\tthis.shouldConfirmIfScriptExistsButIsDifferent =\n\t\t\toptions.shouldConfirmIfScriptExistsButIsDifferent ?? true\n\t\tthis.ui = options.ui\n\t\tthis.settings = options.settings\n\t}\n\n\tpublic static FromFeature(\n\t\tfeature: AbstractFeature,\n\t\toptions?: { cwd?: string; latestScripts?: Record<string, any> }\n\t) {\n\t\tconst cwd = options?.cwd ?? feature.cwd\n\n\t\tconst updater = new ScriptUpdater({\n\t\t\tpkg: feature.Service('pkg', cwd),\n\t\t\tlatestScripts: feature.scripts ?? [],\n\t\t\t//@ts-ignore\n\t\t\tui: feature.ui,\n\t\t\tsettings: feature.Service('settings', cwd),\n\t\t\t...options,\n\t\t})\n\n\t\treturn updater\n\t}\n\n\tpublic async update(options?: {\n\t\tshouldConfirmIfScriptExistsButIsDifferent?: boolean\n\t}) {\n\t\tthis.shouldConfirmIfScriptExistsButIsDifferent =\n\t\t\toptions?.shouldConfirmIfScriptExistsButIsDifferent ??\n\t\t\tthis.shouldConfirmIfScriptExistsButIsDifferent\n\n\t\tconst scripts = (this.pkg.get('scripts') as Record<string, string>) ?? {}\n\t\tconst all = this.latestScripts\n\t\tconst oldScripts = this.pkg.get('scripts') ?? {}\n\n\t\tlet shouldConfirm = this.shouldConfirmIfScriptExistsButIsDifferent\n\t\tlet shouldSkipAll = false\n\t\tconst updaterSettings = {\n\t\t\tskipped: [],\n\t\t\t...this.settings.get('scriptUpdater'),\n\t\t}\n\n\t\tfor (const name in this.latestScripts) {\n\t\t\tconst script = this.latestScripts[name as keyof typeof all]\n\t\t\tconst oldScript = oldScripts[name as any]\n\n\t\t\tconst shouldAlwaysSkip =\n\t\t\t\t(updaterSettings.skipped ?? []).indexOf(name) > -1\n\t\t\tlet shouldWrite = !shouldSkipAll && !shouldAlwaysSkip\n\n\t\t\tif (\n\t\t\t\tshouldConfirm &&\n\t\t\t\t!shouldSkipAll &&\n\t\t\t\toldScript &&\n\t\t\t\tscript !== oldScript &&\n\t\t\t\t!shouldAlwaysSkip\n\t\t\t) {\n\t\t\t\tthis.ui.clear()\n\t\t\t\tthis.ui.renderSection({\n\t\t\t\t\theadline: `Change to \\`${name}\\` detected!`,\n\t\t\t\t\tobject: {\n\t\t\t\t\t\tCurrent: oldScript,\n\t\t\t\t\t\t' New': script,\n\t\t\t\t\t},\n\t\t\t\t})\n\n\t\t\t\tconst desiredAction = await this.ui.prompt({\n\t\t\t\t\ttype: 'select',\n\t\t\t\t\tlabel: 'What should I do?',\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tchoices: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: 'Overwrite',\n\t\t\t\t\t\t\t\tvalue: FILE_ACTION_OVERWRITE,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: 'Skip',\n\t\t\t\t\t\t\t\tvalue: FILE_ACTION_SKIP,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: 'Always skip',\n\t\t\t\t\t\t\t\tvalue: FILE_ACTION_ALWAYS_SKIP,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: 'Skip all',\n\t\t\t\t\t\t\t\tvalue: 'skipAll',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t})\n\n\t\t\t\tif (desiredAction === 'alwaysSkip') {\n\t\t\t\t\tupdaterSettings.skipped.push(name)\n\t\t\t\t\tshouldWrite = false\n\t\t\t\t} else if (desiredAction === 'skipAll') {\n\t\t\t\t\tshouldSkipAll = true\n\t\t\t\t\tshouldWrite = false\n\t\t\t\t} else if (desiredAction === 'skip') {\n\t\t\t\t\tshouldWrite = false\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (shouldWrite) {\n\t\t\t\tscripts[name] = script\n\t\t\t}\n\t\t}\n\n\t\tthis.settings.set('scriptUpdater', updaterSettings)\n\t\tthis.pkg.set({ path: 'scripts', value: scripts })\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"action.utility.js","names":["actionUtil","mergeActionResults","isObject","obj","objects","reduce","prev","Object","keys","forEach","key","pVal","oVal","Array","isArray","concat","makeUnique","val","a","b","path","assertNoErrorsInResponse","response","eventResponseUtil","getFirstResponseOrThrow"],"sources":["../../src/utilities/action.utility.ts"],"sourcesContent":["import { MercuryAggregateResponse } from '@sprucelabs/mercury-types'\nimport { eventResponseUtil } from '@sprucelabs/spruce-event-utils'\nimport isEqual from 'lodash/isEqual'\nimport uniqWith from 'lodash/uniqWith'\n\nconst actionUtil = {\n\tmergeActionResults(...objects: any[]) {\n\t\tconst isObject = (obj: any) => obj && typeof obj === 'object'\n\t\treturn objects.reduce((prev, obj) => {\n\t\t\tObject.keys(obj || {}).forEach((key) => {\n\t\t\t\tconst pVal = prev[key]\n\t\t\t\tconst oVal = obj[key]\n\n\t\t\t\tif (Array.isArray(pVal) && Array.isArray(oVal)) {\n\t\t\t\t\tprev[key] = pVal.concat(...oVal)\n\t\t\t\t\tprev[key] = this.makeUnique(prev[key])\n\t\t\t\t} else if (isObject(pVal) && isObject(oVal)) {\n\t\t\t\t\tprev[key] = this.mergeActionResults(pVal, oVal)\n\t\t\t\t} else if (typeof oVal !== 'undefined') {\n\t\t\t\t\tprev[key] = oVal\n\t\t\t\t}\n\t\t\t})\n\t\t\treturn prev\n\t\t}, {})\n\t},\n\n\tmakeUnique(val: any[]): any[] {\n\t\treturn uniqWith(val, (a: any, b: any) => {\n\t\t\treturn isEqual(a, b) || (a.path && b.path && a.path === b.path)\n\t\t})\n\t},\n\n\tassertNoErrorsInResponse(response: MercuryAggregateResponse<any>) {\n\t\teventResponseUtil.getFirstResponseOrThrow(response)\n\t},\n}\n\nexport default actionUtil\n"],"mappings":";;;;;;;;;;;;;AACA;;AACA;;AACA;;AAEA,IAAMA,UAAU,GAAG;EAClBC,kBADkB,gCACoB;IAAA;;IACrC,IAAMC,QAAQ,GAAG,SAAXA,QAAW,CAACC,GAAD;MAAA,OAAcA,GAAG,IAAI,yBAAOA,GAAP,MAAe,QAApC;IAAA,CAAjB;;IADqC,kCAAhBC,OAAgB;MAAhBA,OAAgB;IAAA;;IAErC,OAAOA,OAAO,CAACC,MAAR,CAAe,UAACC,IAAD,EAAOH,GAAP,EAAe;MACpCI,MAAM,CAACC,IAAP,CAAYL,GAAG,IAAI,EAAnB,EAAuBM,OAAvB,CAA+B,UAACC,GAAD,EAAS;QACvC,IAAMC,IAAI,GAAGL,IAAI,CAACI,GAAD,CAAjB;QACA,IAAME,IAAI,GAAGT,GAAG,CAACO,GAAD,CAAhB;;QAEA,IAAIG,KAAK,CAACC,OAAN,CAAcH,IAAd,KAAuBE,KAAK,CAACC,OAAN,CAAcF,IAAd,CAA3B,EAAgD;UAC/CN,IAAI,CAACI,GAAD,CAAJ,GAAYC,IAAI,CAACI,MAAL,OAAAJ,IAAI,sCAAWC,IAAX,EAAhB;UACAN,IAAI,CAACI,GAAD,CAAJ,GAAY,KAAI,CAACM,UAAL,CAAgBV,IAAI,CAACI,GAAD,CAApB,CAAZ;QACA,CAHD,MAGO,IAAIR,QAAQ,CAACS,IAAD,CAAR,IAAkBT,QAAQ,CAACU,IAAD,CAA9B,EAAsC;UAC5CN,IAAI,CAACI,GAAD,CAAJ,GAAY,KAAI,CAACT,kBAAL,CAAwBU,IAAxB,EAA8BC,IAA9B,CAAZ;QACA,CAFM,MAEA,IAAI,OAAOA,IAAP,KAAgB,WAApB,EAAiC;UACvCN,IAAI,CAACI,GAAD,CAAJ,GAAYE,IAAZ;QACA;MACD,CAZD;MAaA,OAAON,IAAP;IACA,CAfM,EAeJ,EAfI,CAAP;EAgBA,CAnBiB;EAqBlBU,UArBkB,sBAqBPC,GArBO,EAqBY;IAC7B,OAAO,0BAASA,GAAT,EAAc,UAACC,CAAD,EAASC,CAAT,EAAoB;MACxC,OAAO,yBAAQD,CAAR,EAAWC,CAAX,KAAkBD,CAAC,CAACE,IAAF,IAAUD,CAAC,CAACC,IAAZ,IAAoBF,CAAC,CAACE,IAAF,KAAWD,CAAC,CAACC,IAA1D;IACA,CAFM,CAAP;EAGA,CAzBiB;EA2BlBC,wBA3BkB,oCA2BOC,QA3BP,EA2BgD;IACjEC,oCAAkBC,uBAAlB,CAA0CF,QAA1C;EACA;AA7BiB,CAAnB;eAgCetB,U"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"apiClient.utility.js","names":["apiClientUtil","generateClientCacheKey","options","shouldAuthAsCurrentSkill","shouldAuthAsLoggedInPerson","token","skillId","apiKey","SchemaError","code","parameters","filter","p","friendlyMessage","skillOrAuthToAuth","auth","id","skillAuth"],"sources":["../../src/utilities/apiClient.utility.ts"],"sourcesContent":["import { SchemaError } from '@sprucelabs/schema'\nimport { SpruceSchemas } from '@sprucelabs/spruce-core-schemas'\nimport { ApiClientFactoryOptions } from '../types/apiClient.types'\n\ntype Skill = SpruceSchemas.Spruce.v2020_07_22.Skill\n\nconst apiClientUtil = {\n\tgenerateClientCacheKey: (options?: ApiClientFactoryOptions) => {\n\t\tif (options?.shouldAuthAsCurrentSkill) {\n\t\t\treturn 'skill'\n\t\t}\n\n\t\tif (options?.shouldAuthAsLoggedInPerson === false) {\n\t\t\treturn 'anon'\n\t\t}\n\n\t\tif (!options || (!options.token && !options.skillId)) {\n\t\t\treturn 'loggedInPersonOrAnon'\n\t\t}\n\n\t\tif (options.token) {\n\t\t\treturn `person:${options.token}`\n\t\t}\n\n\t\tif (options.skillId && options.apiKey) {\n\t\t\treturn `skill:${options.skillId}:${options.apiKey}`\n\t\t}\n\n\t\tthrow new SchemaError({\n\t\t\tcode: 'INVALID_PARAMETERS',\n\t\t\tparameters: [\n\t\t\t\t!options.token && 'token',\n\t\t\t\t!options.skillId && 'skillId',\n\t\t\t\t!options.apiKey && 'apiKey',\n\t\t\t].filter((p) => !!p) as string[],\n\t\t\tfriendlyMessage: `You must pass a token to login as a person or a skillId and apiKey to login as a skill.`,\n\t\t})\n\t},\n\n\tskillOrAuthToAuth(auth: ApiClientFactoryOptions | Skill) {\n\t\tlet { skillId } = auth as ApiClientFactoryOptions\n\t\tlet { id } = auth as Skill\n\n\t\tskillId = id ?? skillId\n\n\t\tif (!skillId) {\n\t\t\tthrow new SchemaError({\n\t\t\t\tcode: 'MISSING_PARAMETERS',\n\t\t\t\tparameters: ['auth.skillId'],\n\t\t\t})\n\t\t}\n\n\t\tconst skillAuth = {\n\t\t\tskillId,\n\t\t\tapiKey: auth.apiKey,\n\t\t}\n\n\t\treturn skillAuth\n\t},\n}\n\nexport default apiClientUtil\n"],"mappings":";;;;;;;AAAA;;AAMA,IAAMA,aAAa,GAAG;EACrBC,sBAAsB,EAAE,gCAACC,OAAD,EAAuC;IAC9D,IAAIA,OAAJ,aAAIA,OAAJ,eAAIA,OAAO,CAAEC,wBAAb,EAAuC;MACtC,OAAO,OAAP;IACA;;IAED,IAAI,CAAAD,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEE,0BAAT,MAAwC,KAA5C,EAAmD;MAClD,OAAO,MAAP;IACA;;IAED,IAAI,CAACF,OAAD,IAAa,CAACA,OAAO,CAACG,KAAT,IAAkB,CAACH,OAAO,CAACI,OAA5C,EAAsD;MACrD,OAAO,sBAAP;IACA;;IAED,IAAIJ,OAAO,CAACG,KAAZ,EAAmB;MAClB,wBAAiBH,OAAO,CAACG,KAAzB;IACA;;IAED,IAAIH,OAAO,CAACI,OAAR,IAAmBJ,OAAO,CAACK,MAA/B,EAAuC;MACtC,uBAAgBL,OAAO,CAACI,OAAxB,cAAmCJ,OAAO,CAACK,MAA3C;IACA;;IAED,MAAM,IAAIC,mBAAJ,CAAgB;MACrBC,IAAI,EAAE,oBADe;MAErBC,UAAU,EAAE,CACX,CAACR,OAAO,CAACG,KAAT,IAAkB,OADP,EAEX,CAACH,OAAO,CAACI,OAAT,IAAoB,SAFT,EAGX,CAACJ,OAAO,CAACK,MAAT,IAAmB,QAHR,EAIVI,MAJU,CAIH,UAACC,CAAD;QAAA,OAAO,CAAC,CAACA,CAAT;MAAA,CAJG,CAFS;MAOrBC,eAAe;IAPM,CAAhB,CAAN;EASA,CA/BoB;EAiCrBC,iBAjCqB,6BAiCHC,IAjCG,EAiCoC;IACxD,WAAkBA,IAAlB;IAAA,IAAMT,OAAN,QAAMA,OAAN;IACA,YAAaS,IAAb;IAAA,IAAMC,EAAN,SAAMA,EAAN;IAEAV,OAAO,GAAGU,EAAH,aAAGA,EAAH,cAAGA,EAAH,GAASV,OAAhB;;IAEA,IAAI,CAACA,OAAL,EAAc;MACb,MAAM,IAAIE,mBAAJ,CAAgB;QACrBC,IAAI,EAAE,oBADe;QAErBC,UAAU,EAAE,CAAC,cAAD;MAFS,CAAhB,CAAN;IAIA;;IAED,IAAMO,SAAS,GAAG;MACjBX,OAAO,EAAPA,OADiB;MAEjBC,MAAM,EAAEQ,IAAI,CAACR;IAFI,CAAlB;IAKA,OAAOU,SAAP;EACA;AApDoB,CAAtB;eAuDejB,a"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"argParser.utility.js","names":["argParserUtil","parse","input","length","parts","split","args","key","part","replace"],"sources":["../../src/utilities/argParser.utility.ts"],"sourcesContent":["export const argParserUtil = {\n\tparse(input: string) {\n\t\tif (input.length > 0) {\n\t\t\tconst parts = input.split(' ')\n\n\t\t\tconst args: Record<string, string> = {}\n\t\t\tlet key: string | null = null\n\n\t\t\tfor (const part of parts) {\n\t\t\t\tif (part[0] === '-') {\n\t\t\t\t\tkey = part.replace(/^--?/, '')\n\t\t\t\t} else if (key) {\n\t\t\t\t\targs[key] = part\n\t\t\t\t\tkey = null\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (key) {\n\t\t\t\targs[key] = 'true'\n\t\t\t}\n\n\t\t\treturn args\n\t\t}\n\t\treturn {}\n\t},\n}\n"],"mappings":";;;;;;;;;;;;;AAAO,IAAMA,aAAa,GAAG;EAC5BC,KAD4B,iBACtBC,KADsB,EACP;IACpB,IAAIA,KAAK,CAACC,MAAN,GAAe,CAAnB,EAAsB;MACrB,IAAMC,KAAK,GAAGF,KAAK,CAACG,KAAN,CAAY,GAAZ,CAAd;MAEA,IAAMC,IAA4B,GAAG,EAArC;MACA,IAAIC,GAAkB,GAAG,IAAzB;;MAJqB,2CAMFH,KANE;MAAA;;MAAA;QAMrB,oDAA0B;UAAA,IAAfI,IAAe;;UACzB,IAAIA,IAAI,CAAC,CAAD,CAAJ,KAAY,GAAhB,EAAqB;YACpBD,GAAG,GAAGC,IAAI,CAACC,OAAL,CAAa,MAAb,EAAqB,EAArB,CAAN;UACA,CAFD,MAEO,IAAIF,GAAJ,EAAS;YACfD,IAAI,CAACC,GAAD,CAAJ,GAAYC,IAAZ;YACAD,GAAG,GAAG,IAAN;UACA;QACD;MAboB;QAAA;MAAA;QAAA;MAAA;;MAerB,IAAIA,GAAJ,EAAS;QACRD,IAAI,CAACC,GAAD,CAAJ,GAAY,MAAZ;MACA;;MAED,OAAOD,IAAP;IACA;;IACD,OAAO,EAAP;EACA;AAxB2B,CAAtB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"commander.utility.js","names":["commanderUtil","mapIncomingToOptions","args","strings","filter","a","possibleSchema","length","schema","id","fields","undefined","originalOptions","find","options","fieldNames","Object","keys","c"],"sources":["../../src/utilities/commander.utility.ts"],"sourcesContent":["import { isObjectLike } from 'lodash'\n\nconst commanderUtil = {\n\tmapIncomingToOptions(...args: any[]) {\n\t\tconst strings = args.filter((a) => typeof a === 'string')\n\t\tconst possibleSchema = args[args.length - 1]\n\t\tconst schema =\n\t\t\tpossibleSchema?.id && possibleSchema?.fields ? possibleSchema : undefined\n\n\t\tconst originalOptions = args.find((a) => isObjectLike(a)) ?? {}\n\t\tconst options: Record<string, any> = {}\n\n\t\tif (schema) {\n\t\t\tconst fieldNames = Object.keys(schema.fields ?? {})\n\t\t\tfor (let c = 0; c < strings.length; c++) {\n\t\t\t\toptions[fieldNames[c]] = strings[c]\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\t...originalOptions,\n\t\t\t...options,\n\t\t}\n\t},\n}\n\nexport default commanderUtil\n"],"mappings":";;;;;;;;;;;AAAA;;;;;;AAEA,IAAMA,aAAa,GAAG;EACrBC,oBADqB,kCACgB;IAAA;;IAAA,kCAAbC,IAAa;MAAbA,IAAa;IAAA;;IACpC,IAAMC,OAAO,GAAGD,IAAI,CAACE,MAAL,CAAY,UAACC,CAAD;MAAA,OAAO,OAAOA,CAAP,KAAa,QAApB;IAAA,CAAZ,CAAhB;IACA,IAAMC,cAAc,GAAGJ,IAAI,CAACA,IAAI,CAACK,MAAL,GAAc,CAAf,CAA3B;IACA,IAAMC,MAAM,GACXF,cAAc,SAAd,IAAAA,cAAc,WAAd,IAAAA,cAAc,CAAEG,EAAhB,IAAsBH,cAAtB,aAAsBA,cAAtB,eAAsBA,cAAc,CAAEI,MAAtC,GAA+CJ,cAA/C,GAAgEK,SADjE;IAGA,IAAMC,eAAe,iBAAGV,IAAI,CAACW,IAAL,CAAU,UAACR,CAAD;MAAA,OAAO,0BAAaA,CAAb,CAAP;IAAA,CAAV,CAAH,mDAAwC,EAA7D;IACA,IAAMS,OAA4B,GAAG,EAArC;;IAEA,IAAIN,MAAJ,EAAY;MAAA;;MACX,IAAMO,UAAU,GAAGC,MAAM,CAACC,IAAP,mBAAYT,MAAM,CAACE,MAAnB,2DAA6B,EAA7B,CAAnB;;MACA,KAAK,IAAIQ,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGf,OAAO,CAACI,MAA5B,EAAoCW,CAAC,EAArC,EAAyC;QACxCJ,OAAO,CAACC,UAAU,CAACG,CAAD,CAAX,CAAP,GAAyBf,OAAO,CAACe,CAAD,CAAhC;MACA;IACD;;IAED,uCACIN,eADJ,GAEIE,OAFJ;EAIA;AArBoB,CAAtB;eAwBed,a"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"duration.utility.js","names":["durationUtil","msToFriendly","duration","milliseconds","seconds","Math","floor","minutes","hours","durationStr","length","trim"],"sources":["../../src/utilities/duration.utility.ts"],"sourcesContent":["const durationUtil = {\n\tmsToFriendly(duration: number): string {\n\t\tlet milliseconds = duration % 1000,\n\t\t\tseconds = Math.floor((duration / 1000) % 60),\n\t\t\tminutes = Math.floor((duration / (1000 * 60)) % 60),\n\t\t\thours = Math.floor((duration / (1000 * 60 * 60)) % 24)\n\n\t\tlet durationStr = ''\n\n\t\tif (hours > 0) {\n\t\t\tdurationStr += `${hours}h `\n\t\t}\n\n\t\tif (hours > 0 || minutes > 0) {\n\t\t\tdurationStr += `${minutes}m `\n\t\t}\n\n\t\tif (durationStr.length > 0 || seconds > 0) {\n\t\t\tdurationStr += `${seconds}s `\n\t\t}\n\n\t\tif (hours === 0 && minutes === 0) {\n\t\t\tif (seconds > 0) {\n\t\t\t\tdurationStr = `${seconds}.${milliseconds}s`\n\t\t\t} else {\n\t\t\t\tdurationStr += `${milliseconds}ms`\n\t\t\t}\n\t\t}\n\n\t\treturn durationStr.trim()\n\t},\n}\n\nexport default durationUtil\n"],"mappings":";;;;;;AAAA,IAAMA,YAAY,GAAG;EACpBC,YADoB,wBACPC,QADO,EACmB;IACtC,IAAIC,YAAY,GAAGD,QAAQ,GAAG,IAA9B;IAAA,IACCE,OAAO,GAAGC,IAAI,CAACC,KAAL,CAAYJ,QAAQ,GAAG,IAAZ,GAAoB,EAA/B,CADX;IAAA,IAECK,OAAO,GAAGF,IAAI,CAACC,KAAL,CAAYJ,QAAQ,IAAI,OAAO,EAAX,CAAT,GAA2B,EAAtC,CAFX;IAAA,IAGCM,KAAK,GAAGH,IAAI,CAACC,KAAL,CAAYJ,QAAQ,IAAI,OAAO,EAAP,GAAY,EAAhB,CAAT,GAAgC,EAA3C,CAHT;IAKA,IAAIO,WAAW,GAAG,EAAlB;;IAEA,IAAID,KAAK,GAAG,CAAZ,EAAe;MACdC,WAAW,cAAOD,KAAP,OAAX;IACA;;IAED,IAAIA,KAAK,GAAG,CAAR,IAAaD,OAAO,GAAG,CAA3B,EAA8B;MAC7BE,WAAW,cAAOF,OAAP,OAAX;IACA;;IAED,IAAIE,WAAW,CAACC,MAAZ,GAAqB,CAArB,IAA0BN,OAAO,GAAG,CAAxC,EAA2C;MAC1CK,WAAW,cAAOL,OAAP,OAAX;IACA;;IAED,IAAII,KAAK,KAAK,CAAV,IAAeD,OAAO,KAAK,CAA/B,EAAkC;MACjC,IAAIH,OAAO,GAAG,CAAd,EAAiB;QAChBK,WAAW,aAAML,OAAN,cAAiBD,YAAjB,MAAX;MACA,CAFD,MAEO;QACNM,WAAW,cAAON,YAAP,OAAX;MACA;IACD;;IAED,OAAOM,WAAW,CAACE,IAAZ,EAAP;EACA;AA9BmB,CAArB;eAiCeX,Y"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"eventContractCleaner.utility.js","names":["eventContractCleanerUtil","cleanPayloadsAndPermissions","contract","cleaned","eventSignatures","signatures","eventContractUtil","getNamedEventSignatures","sig","cleanedSig","signature","emitPayloadFields","Object","keys","emitPayloadSchema","fields","payload","options","schema","length","targetPayloadFields","target","responsePayloadSchema","emitPermissionContract","permissions","listenPermissionContract","fullyQualifiedEventName"],"sources":["../../src/utilities/eventContractCleaner.utility.ts"],"sourcesContent":["import { EventContract } from '@sprucelabs/mercury-types'\nimport { eventContractUtil } from '@sprucelabs/spruce-event-utils'\n\nexport const eventContractCleanerUtil = {\n\tcleanPayloadsAndPermissions(contract: EventContract): EventContract {\n\t\tconst cleaned: EventContract = {\n\t\t\teventSignatures: {},\n\t\t}\n\n\t\tconst signatures = eventContractUtil.getNamedEventSignatures(contract)\n\n\t\tfor (const sig of signatures) {\n\t\t\tconst cleanedSig = {\n\t\t\t\t...sig.signature,\n\t\t\t}\n\n\t\t\tconst emitPayloadFields = Object.keys(\n\t\t\t\t//@ts-ignore\n\t\t\t\tcleanedSig.emitPayloadSchema?.fields?.payload?.options?.schema\n\t\t\t\t\t?.fields ?? {}\n\t\t\t).length\n\n\t\t\tconst targetPayloadFields = Object.keys(\n\t\t\t\t//@ts-ignore\n\t\t\t\tcleanedSig.emitPayloadSchema?.fields?.target?.options?.schema?.fields ??\n\t\t\t\t\t{}\n\t\t\t).length\n\n\t\t\tif (emitPayloadFields + targetPayloadFields === 0) {\n\t\t\t\tdelete cleanedSig.emitPayloadSchema\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tcleanedSig.responsePayloadSchema?.fields &&\n\t\t\t\tObject.keys(cleanedSig.responsePayloadSchema?.fields).length === 0\n\t\t\t) {\n\t\t\t\tdelete cleanedSig.responsePayloadSchema\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tcleanedSig.emitPermissionContract &&\n\t\t\t\tcleanedSig.emitPermissionContract.permissions.length === 0\n\t\t\t) {\n\t\t\t\tdelete cleanedSig.emitPermissionContract\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tcleanedSig.listenPermissionContract &&\n\t\t\t\tcleanedSig.listenPermissionContract.permissions.length === 0\n\t\t\t) {\n\t\t\t\tdelete cleanedSig.listenPermissionContract\n\t\t\t}\n\n\t\t\tcleaned.eventSignatures[sig.fullyQualifiedEventName] = cleanedSig\n\t\t}\n\n\t\treturn cleaned\n\t},\n}\n"],"mappings":";;;;;;;;;;;AACA;;;;;;;;;;;;AAEO,IAAMA,wBAAwB,GAAG;EACvCC,2BADuC,uCACXC,QADW,EAC6B;IACnE,IAAMC,OAAsB,GAAG;MAC9BC,eAAe,EAAE;IADa,CAA/B;;IAIA,IAAMC,UAAU,GAAGC,oCAAkBC,uBAAlB,CAA0CL,QAA1C,CAAnB;;IALmE,2CAOjDG,UAPiD;IAAA;;IAAA;MAOnE,oDAA8B;QAAA;;QAAA,IAAnBG,GAAmB;;QAC7B,IAAMC,UAAU,qBACZD,GAAG,CAACE,SADQ,CAAhB;;QAIA,IAAMC,iBAAiB,GAAGC,MAAM,CAACC,IAAP,EACzB;QADyB,mDAEzBJ,UAAU,CAACK,iBAFc,qFAEzB,uBAA8BC,MAFL,qFAEzB,uBAAsCC,OAFb,qFAEzB,uBAA+CC,OAFtB,qFAEzB,uBAAwDC,MAF/B,2DAEzB,uBACGH,MAHsB,yEAGZ,EAHY,EAIxBI,MAJF;QAMA,IAAMC,mBAAmB,GAAGR,MAAM,CAACC,IAAP,EAC3B;QAD2B,oDAE3BJ,UAAU,CAACK,iBAFgB,qFAE3B,uBAA8BC,MAFH,sFAE3B,uBAAsCM,MAFX,uFAE3B,wBAA8CJ,OAFnB,uFAE3B,wBAAuDC,MAF5B,4DAE3B,wBAA+DH,MAFpC,2EAG1B,EAH0B,EAI1BI,MAJF;;QAMA,IAAIR,iBAAiB,GAAGS,mBAApB,KAA4C,CAAhD,EAAmD;UAClD,OAAOX,UAAU,CAACK,iBAAlB;QACA;;QAED,IACC,yBAAAL,UAAU,CAACa,qBAAX,wEAAkCP,MAAlC,IACAH,MAAM,CAACC,IAAP,2BAAYJ,UAAU,CAACa,qBAAvB,2DAAY,uBAAkCP,MAA9C,EAAsDI,MAAtD,KAAiE,CAFlE,EAGE;UACD,OAAOV,UAAU,CAACa,qBAAlB;QACA;;QAED,IACCb,UAAU,CAACc,sBAAX,IACAd,UAAU,CAACc,sBAAX,CAAkCC,WAAlC,CAA8CL,MAA9C,KAAyD,CAF1D,EAGE;UACD,OAAOV,UAAU,CAACc,sBAAlB;QACA;;QAED,IACCd,UAAU,CAACgB,wBAAX,IACAhB,UAAU,CAACgB,wBAAX,CAAoCD,WAApC,CAAgDL,MAAhD,KAA2D,CAF5D,EAGE;UACD,OAAOV,UAAU,CAACgB,wBAAlB;QACA;;QAEDtB,OAAO,CAACC,eAAR,CAAwBI,GAAG,CAACkB,uBAA5B,IAAuDjB,UAAvD;MACA;IAlDkE;MAAA;IAAA;MAAA;IAAA;;IAoDnE,OAAON,OAAP;EACA;AAtDsC,CAAjC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"form.utility.js","names":["formUtil","onWillAskQuestionHandler","fieldName","fieldDefinition","values","nameCamel","defaultValue","namesUtil","toCamel","nameReadable","nameCamelPlural","toPlural","namePascal","toPascal","namePascalPlural","nameReadablePlural","nameConst","toConst","nameKebab","toKebab","nameSnake","toSnake"],"sources":["../../src/utilities/form.utility.ts"],"sourcesContent":["import { Optional } from '@sprucelabs/schema'\nimport { namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport { FieldDefinitions } from '#spruce/schemas/fields/fields.types'\nimport { SpruceSchemas } from '#spruce/schemas/schemas.types'\n\nconst formUtil = {\n\t/** Help guess on answers */\n\tonWillAskQuestionHandler<\n\t\tK extends keyof SpruceSchemas.SpruceCli.v2020_07_22.NamedTemplateItem = keyof SpruceSchemas.SpruceCli.v2020_07_22.NamedTemplateItem,\n\t\tV extends Optional<SpruceSchemas.SpruceCli.v2020_07_22.NamedTemplateItem> = Optional<SpruceSchemas.SpruceCli.v2020_07_22.NamedTemplateItem>\n\t>(fieldName: K, fieldDefinition: FieldDefinitions, values: V) {\n\t\tswitch (fieldName) {\n\t\t\tcase 'nameCamel':\n\t\t\t\tif (!values.nameCamel) {\n\t\t\t\t\tfieldDefinition.defaultValue = namesUtil.toCamel(\n\t\t\t\t\t\tvalues.nameReadable || ''\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\tcase 'nameCamelPlural':\n\t\t\t\tif (!values.nameCamelPlural) {\n\t\t\t\t\tfieldDefinition.defaultValue = namesUtil.toPlural(\n\t\t\t\t\t\tnamesUtil.toCamel(values.nameReadable || '')\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\tcase 'namePascal':\n\t\t\t\tif (!values.namePascal) {\n\t\t\t\t\tfieldDefinition.defaultValue = namesUtil.toPascal(\n\t\t\t\t\t\tvalues.nameCamel ?? values.nameReadable ?? ''\n\t\t\t\t\t)\n\t\t\t\t}\n\n\t\t\t\tbreak\n\t\t\tcase 'namePascalPlural':\n\t\t\t\tif (!values.namePascalPlural) {\n\t\t\t\t\tif (values.nameCamelPlural || values.nameReadablePlural) {\n\t\t\t\t\t\tfieldDefinition.defaultValue = namesUtil.toPascal(\n\t\t\t\t\t\t\tvalues.nameCamelPlural ?? values.nameReadablePlural ?? ''\n\t\t\t\t\t\t)\n\t\t\t\t\t} else if (values.nameCamel || values.nameReadable) {\n\t\t\t\t\t\tfieldDefinition.defaultValue = namesUtil.toPlural(\n\t\t\t\t\t\t\tnamesUtil.toPascal(values.nameCamel ?? values.nameReadable ?? '')\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\tcase 'nameConst':\n\t\t\t\tif (!values.nameConst) {\n\t\t\t\t\tfieldDefinition.defaultValue = namesUtil.toConst(\n\t\t\t\t\t\tvalues.nameCamel ?? values.namePascal ?? values.nameReadable ?? ''\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\tcase 'nameKebab':\n\t\t\t\tif (!values.nameKebab) {\n\t\t\t\t\tfieldDefinition.defaultValue = namesUtil.toKebab(\n\t\t\t\t\t\tvalues.nameCamel ?? values.namePascal ?? values.nameReadable ?? ''\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\tcase 'nameSnake':\n\t\t\t\tif (!values.nameSnake) {\n\t\t\t\t\tfieldDefinition.defaultValue = namesUtil.toSnake(\n\t\t\t\t\t\tvalues.nameCamel ?? values.namePascal ?? values.nameReadable ?? ''\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\tcase 'nameSnakePlural':\n\t\t\t\tif (!values.nameSnake) {\n\t\t\t\t\tfieldDefinition.defaultValue = namesUtil.toSnake(\n\t\t\t\t\t\tvalues.nameCamelPlural ??\n\t\t\t\t\t\t\tvalues.namePascalPlural ??\n\t\t\t\t\t\t\tvalues.nameReadablePlural ??\n\t\t\t\t\t\t\t''\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t}\n\t\treturn fieldDefinition\n\t},\n}\n\nexport default formUtil\n"],"mappings":";;;;;;;AACA;;AAIA,IAAMA,QAAQ,GAAG;EAChB;EACAC,wBAFgB,oCAKdC,SALc,EAKAC,eALA,EAKmCC,MALnC,EAK8C;IAC7D,QAAQF,SAAR;MACC,KAAK,WAAL;QACC,IAAI,CAACE,MAAM,CAACC,SAAZ,EAAuB;UACtBF,eAAe,CAACG,YAAhB,GAA+BC,4BAAUC,OAAV,CAC9BJ,MAAM,CAACK,YAAP,IAAuB,EADO,CAA/B;QAGA;;QACD;;MACD,KAAK,iBAAL;QACC,IAAI,CAACL,MAAM,CAACM,eAAZ,EAA6B;UAC5BP,eAAe,CAACG,YAAhB,GAA+BC,4BAAUI,QAAV,CAC9BJ,4BAAUC,OAAV,CAAkBJ,MAAM,CAACK,YAAP,IAAuB,EAAzC,CAD8B,CAA/B;QAGA;;QACD;;MACD,KAAK,YAAL;QACC,IAAI,CAACL,MAAM,CAACQ,UAAZ,EAAwB;UAAA;;UACvBT,eAAe,CAACG,YAAhB,GAA+BC,4BAAUM,QAAV,8BAC9BT,MAAM,CAACC,SADuB,iEACVD,MAAM,CAACK,YADG,uCACa,EADb,CAA/B;QAGA;;QAED;;MACD,KAAK,kBAAL;QACC,IAAI,CAACL,MAAM,CAACU,gBAAZ,EAA8B;UAC7B,IAAIV,MAAM,CAACM,eAAP,IAA0BN,MAAM,CAACW,kBAArC,EAAyD;YAAA;;YACxDZ,eAAe,CAACG,YAAhB,GAA+BC,4BAAUM,QAAV,mCAC9BT,MAAM,CAACM,eADuB,yEACJN,MAAM,CAACW,kBADH,yCACyB,EADzB,CAA/B;UAGA,CAJD,MAIO,IAAIX,MAAM,CAACC,SAAP,IAAoBD,MAAM,CAACK,YAA/B,EAA6C;YAAA;;YACnDN,eAAe,CAACG,YAAhB,GAA+BC,4BAAUI,QAAV,CAC9BJ,4BAAUM,QAAV,gCAAmBT,MAAM,CAACC,SAA1B,mEAAuCD,MAAM,CAACK,YAA9C,yCAA8D,EAA9D,CAD8B,CAA/B;UAGA;QACD;;QACD;;MACD,KAAK,WAAL;QACC,IAAI,CAACL,MAAM,CAACY,SAAZ,EAAuB;UAAA;;UACtBb,eAAe,CAACG,YAAhB,GAA+BC,4BAAUU,OAAV,yCAC9Bb,MAAM,CAACC,SADuB,mEACVD,MAAM,CAACQ,UADG,yCACWR,MAAM,CAACK,YADlB,yCACkC,EADlC,CAA/B;QAGA;;QACD;;MACD,KAAK,WAAL;QACC,IAAI,CAACL,MAAM,CAACc,SAAZ,EAAuB;UAAA;;UACtBf,eAAe,CAACG,YAAhB,GAA+BC,4BAAUY,OAAV,yCAC9Bf,MAAM,CAACC,SADuB,mEACVD,MAAM,CAACQ,UADG,yCACWR,MAAM,CAACK,YADlB,yCACkC,EADlC,CAA/B;QAGA;;QACD;;MACD,KAAK,WAAL;QACC,IAAI,CAACL,MAAM,CAACgB,SAAZ,EAAuB;UAAA;;UACtBjB,eAAe,CAACG,YAAhB,GAA+BC,4BAAUc,OAAV,yCAC9BjB,MAAM,CAACC,SADuB,mEACVD,MAAM,CAACQ,UADG,yCACWR,MAAM,CAACK,YADlB,yCACkC,EADlC,CAA/B;QAGA;;QACD;;MACD,KAAK,iBAAL;QACC,IAAI,CAACL,MAAM,CAACgB,SAAZ,EAAuB;UAAA;;UACtBjB,eAAe,CAACG,YAAhB,GAA+BC,4BAAUc,OAAV,+CAC9BjB,MAAM,CAACM,eADuB,2EAE7BN,MAAM,CAACU,gBAFsB,2CAG7BV,MAAM,CAACW,kBAHsB,2CAI7B,EAJ6B,CAA/B;QAMA;;QACD;IAlEF;;IAoEA,OAAOZ,eAAP;EACA;AA3Ee,CAAjB;eA8EeH,Q"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utilities/introspection.utility.ts"],"names":["serializeSymbol","options","checker","symbol","doc","name","getName","documentation","ts","displayPartsToString","getDocumentationComment","valueDeclaration","type","typeToString","getTypeOfSymbolAtLocation","serializeSignature","signature","parameters","map","p","returnType","getReturnType","introspectionUtil","introspect","tsFiles","filePaths","program","createProgram","getTypeChecker","introspects","i","tsFile","sourceFile","getSourceFile","results","classes","interfaces","_","includes","fileName","forEachChild","node","isClassDeclaration","getSymbolAtLocation","details","constructorType","parentClassSymbol","heritageClauses","getTypeAtLocation","types","getSymbol","parentClassName","text","parentClassPath","parent","replace","isAbstractClass","tsutils","isModifierFlagSet","ModifierFlags","Abstract","constructors","getConstructSignatures","s","push","className","classPath","staticProperties","pluckStaticProperties","optionsInterfaceName","isAbstract","isInterfaceDeclaration","interfaceName","length","staticProps","members","member","escapedText","value","initializer"],"mappings":"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","sourcesContent":["import _ from 'lodash'\nimport * as tsutils from 'tsutils'\nimport * as ts from 'typescript'\n\nexport interface IntrospectionClass {\n\tclassName: string\n\tclassPath: string\n\tparentClassName: string | undefined\n\tparentClassPath: string | undefined\n\toptionsInterfaceName: string | undefined\n\tisAbstract: boolean\n\tstaticProperties: StaticProperties\n}\n\ntype StaticProperties = Record<string, any>\n\ninterface IntrospectionInterface {\n\tinterfaceName: string\n}\n\nexport interface Introspection {\n\tclasses: IntrospectionClass[]\n\tinterfaces: IntrospectionInterface[]\n}\n\ninterface DocEntry {\n\tname?: string\n\tfileName?: string\n\tdocumentation?: string\n\ttype?: string\n\tconstructors?: DocEntry[]\n\tparameters?: DocEntry[]\n\treturnType?: string\n}\n\nconst serializeSymbol = (options: {\n\tchecker: ts.TypeChecker\n\tsymbol: ts.Symbol\n}): DocEntry => {\n\tconst { checker, symbol } = options\n\tconst doc: DocEntry = {\n\t\tname: symbol.getName(),\n\t\tdocumentation: ts.displayPartsToString(\n\t\t\tsymbol.getDocumentationComment(checker)\n\t\t),\n\t}\n\n\tif (symbol.valueDeclaration) {\n\t\tdoc.type = checker.typeToString(\n\t\t\tchecker.getTypeOfSymbolAtLocation(symbol, symbol.valueDeclaration)\n\t\t)\n\t}\n\n\treturn doc\n}\n\nconst serializeSignature = (options: {\n\tchecker: ts.TypeChecker\n\tsignature: ts.Signature\n}) => {\n\tconst { checker, signature } = options\n\treturn {\n\t\tparameters: signature.parameters.map((p) =>\n\t\t\tserializeSymbol({ symbol: p, checker })\n\t\t),\n\t\treturnType: checker.typeToString(signature.getReturnType()),\n\t\tdocumentation: ts.displayPartsToString(\n\t\t\tsignature.getDocumentationComment(checker)\n\t\t),\n\t}\n}\n\nconst introspectionUtil = {\n\tintrospect(tsFiles: string[]): Introspection[] {\n\t\tconst filePaths = tsFiles\n\t\tconst program = ts.createProgram(filePaths, {})\n\t\tconst checker = program.getTypeChecker()\n\n\t\t// for building results\n\t\tconst introspects: Introspection[] = []\n\n\t\tfor (let i = 0; i < filePaths.length; i += 1) {\n\t\t\tconst tsFile = filePaths[i]\n\t\t\tconst sourceFile = program.getSourceFile(tsFile)\n\t\t\tconst results: Introspection = { classes: [], interfaces: [] }\n\t\t\tif (sourceFile && _.includes(filePaths, sourceFile.fileName)) {\n\t\t\t\tts.forEachChild(sourceFile, (node) => {\n\t\t\t\t\t// if this is a class declaration\n\t\t\t\t\tif (ts.isClassDeclaration(node) && node.name) {\n\t\t\t\t\t\tconst symbol = checker.getSymbolAtLocation(node.name)\n\n\t\t\t\t\t\tif (symbol?.valueDeclaration) {\n\t\t\t\t\t\t\tconst details = serializeSymbol({ checker, symbol })\n\t\t\t\t\t\t\t// Get the construct signatures\n\t\t\t\t\t\t\tconst constructorType = checker.getTypeOfSymbolAtLocation(\n\t\t\t\t\t\t\t\tsymbol,\n\t\t\t\t\t\t\t\tsymbol.valueDeclaration\n\t\t\t\t\t\t\t)\n\n\t\t\t\t\t\t\tlet parentClassSymbol: ts.Symbol | undefined\n\t\t\t\t\t\t\tif (node.heritageClauses && node.heritageClauses[0]) {\n\t\t\t\t\t\t\t\tparentClassSymbol = checker\n\t\t\t\t\t\t\t\t\t.getTypeAtLocation(node.heritageClauses[0].types[0])\n\t\t\t\t\t\t\t\t\t.getSymbol()\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst parentClassName =\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\tparentClassSymbol?.valueDeclaration?.name?.text\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tconst parentClassPath = parentClassSymbol?.parent\n\t\t\t\t\t\t\t\t?.getName()\n\t\t\t\t\t\t\t\t.replace('\"', '')\n\n\t\t\t\t\t\t\tconst isAbstractClass = tsutils.isModifierFlagSet(\n\t\t\t\t\t\t\t\tnode,\n\t\t\t\t\t\t\t\tts.ModifierFlags.Abstract\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\tdetails.constructors = constructorType\n\t\t\t\t\t\t\t\t.getConstructSignatures()\n\t\t\t\t\t\t\t\t.map((s) => serializeSignature({ signature: s, checker }))\n\n\t\t\t\t\t\t\tresults.classes.push({\n\t\t\t\t\t\t\t\tclassName: node.name.text,\n\t\t\t\t\t\t\t\tclassPath: sourceFile.fileName,\n\t\t\t\t\t\t\t\tparentClassName,\n\t\t\t\t\t\t\t\tparentClassPath,\n\t\t\t\t\t\t\t\tstaticProperties: pluckStaticProperties(node),\n\t\t\t\t\t\t\t\toptionsInterfaceName:\n\t\t\t\t\t\t\t\t\tdetails.constructors?.[0].parameters?.[0]?.type,\n\t\t\t\t\t\t\t\tisAbstract: isAbstractClass,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (ts.isInterfaceDeclaration(node)) {\n\t\t\t\t\t\tresults.interfaces.push({\n\t\t\t\t\t\t\tinterfaceName: node.name.text,\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\tintrospects.push(results)\n\t\t}\n\n\t\treturn introspects\n\t},\n}\n\nexport default introspectionUtil\n\nfunction pluckStaticProperties(node: ts.ClassDeclaration): StaticProperties {\n\tconst staticProps: StaticProperties = {}\n\n\tfor (const member of node.members) {\n\t\t//@ts-ignore\n\t\tconst name = member.name?.escapedText\n\t\t//@ts-ignore\n\t\tconst value = member.initializer?.text\n\n\t\tif (name && value) {\n\t\t\tstaticProps[name] = value\n\t\t}\n\t}\n\n\treturn staticProps\n}\n"],"file":"introspection.utility.js"}
|
|
1
|
+
{"version":3,"file":"introspection.utility.js","names":["serializeSymbol","options","checker","symbol","doc","name","getName","documentation","ts","displayPartsToString","getDocumentationComment","valueDeclaration","type","typeToString","getTypeOfSymbolAtLocation","serializeSignature","signature","parameters","map","p","returnType","getReturnType","introspectionUtil","introspect","tsFiles","filePaths","program","createProgram","getTypeChecker","introspects","i","tsFile","sourceFile","getSourceFile","results","classes","interfaces","_","includes","fileName","forEachChild","node","isClassDeclaration","getSymbolAtLocation","details","constructorType","parentClassSymbol","heritageClauses","getTypeAtLocation","types","getSymbol","parentClassName","text","parentClassPath","parent","replace","isAbstractClass","tsutils","isModifierFlagSet","ModifierFlags","Abstract","constructors","getConstructSignatures","s","push","className","classPath","staticProperties","pluckStaticProperties","optionsInterfaceName","isAbstract","isInterfaceDeclaration","interfaceName","length","staticProps","members","member","escapedText","value","initializer"],"sources":["../../src/utilities/introspection.utility.ts"],"sourcesContent":["import _ from 'lodash'\nimport * as tsutils from 'tsutils'\nimport * as ts from 'typescript'\n\nexport interface IntrospectionClass {\n\tclassName: string\n\tclassPath: string\n\tparentClassName: string | undefined\n\tparentClassPath: string | undefined\n\toptionsInterfaceName: string | undefined\n\tisAbstract: boolean\n\tstaticProperties: StaticProperties\n}\n\ntype StaticProperties = Record<string, any>\n\ninterface IntrospectionInterface {\n\tinterfaceName: string\n}\n\nexport interface Introspection {\n\tclasses: IntrospectionClass[]\n\tinterfaces: IntrospectionInterface[]\n}\n\ninterface DocEntry {\n\tname?: string\n\tfileName?: string\n\tdocumentation?: string\n\ttype?: string\n\tconstructors?: DocEntry[]\n\tparameters?: DocEntry[]\n\treturnType?: string\n}\n\nconst serializeSymbol = (options: {\n\tchecker: ts.TypeChecker\n\tsymbol: ts.Symbol\n}): DocEntry => {\n\tconst { checker, symbol } = options\n\tconst doc: DocEntry = {\n\t\tname: symbol.getName(),\n\t\tdocumentation: ts.displayPartsToString(\n\t\t\tsymbol.getDocumentationComment(checker)\n\t\t),\n\t}\n\n\tif (symbol.valueDeclaration) {\n\t\tdoc.type = checker.typeToString(\n\t\t\tchecker.getTypeOfSymbolAtLocation(symbol, symbol.valueDeclaration)\n\t\t)\n\t}\n\n\treturn doc\n}\n\nconst serializeSignature = (options: {\n\tchecker: ts.TypeChecker\n\tsignature: ts.Signature\n}) => {\n\tconst { checker, signature } = options\n\treturn {\n\t\tparameters: signature.parameters.map((p) =>\n\t\t\tserializeSymbol({ symbol: p, checker })\n\t\t),\n\t\treturnType: checker.typeToString(signature.getReturnType()),\n\t\tdocumentation: ts.displayPartsToString(\n\t\t\tsignature.getDocumentationComment(checker)\n\t\t),\n\t}\n}\n\nconst introspectionUtil = {\n\tintrospect(tsFiles: string[]): Introspection[] {\n\t\tconst filePaths = tsFiles\n\t\tconst program = ts.createProgram(filePaths, {})\n\t\tconst checker = program.getTypeChecker()\n\n\t\t// for building results\n\t\tconst introspects: Introspection[] = []\n\n\t\tfor (let i = 0; i < filePaths.length; i += 1) {\n\t\t\tconst tsFile = filePaths[i]\n\t\t\tconst sourceFile = program.getSourceFile(tsFile)\n\t\t\tconst results: Introspection = { classes: [], interfaces: [] }\n\t\t\tif (sourceFile && _.includes(filePaths, sourceFile.fileName)) {\n\t\t\t\tts.forEachChild(sourceFile, (node) => {\n\t\t\t\t\t// if this is a class declaration\n\t\t\t\t\tif (ts.isClassDeclaration(node) && node.name) {\n\t\t\t\t\t\tconst symbol = checker.getSymbolAtLocation(node.name)\n\n\t\t\t\t\t\tif (symbol?.valueDeclaration) {\n\t\t\t\t\t\t\tconst details = serializeSymbol({ checker, symbol })\n\t\t\t\t\t\t\t// Get the construct signatures\n\t\t\t\t\t\t\tconst constructorType = checker.getTypeOfSymbolAtLocation(\n\t\t\t\t\t\t\t\tsymbol,\n\t\t\t\t\t\t\t\tsymbol.valueDeclaration\n\t\t\t\t\t\t\t)\n\n\t\t\t\t\t\t\tlet parentClassSymbol: ts.Symbol | undefined\n\t\t\t\t\t\t\tif (node.heritageClauses && node.heritageClauses[0]) {\n\t\t\t\t\t\t\t\tparentClassSymbol = checker\n\t\t\t\t\t\t\t\t\t.getTypeAtLocation(node.heritageClauses[0].types[0])\n\t\t\t\t\t\t\t\t\t.getSymbol()\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst parentClassName =\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\tparentClassSymbol?.valueDeclaration?.name?.text\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tconst parentClassPath = parentClassSymbol?.parent\n\t\t\t\t\t\t\t\t?.getName()\n\t\t\t\t\t\t\t\t.replace('\"', '')\n\n\t\t\t\t\t\t\tconst isAbstractClass = tsutils.isModifierFlagSet(\n\t\t\t\t\t\t\t\tnode,\n\t\t\t\t\t\t\t\tts.ModifierFlags.Abstract\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\tdetails.constructors = constructorType\n\t\t\t\t\t\t\t\t.getConstructSignatures()\n\t\t\t\t\t\t\t\t.map((s) => serializeSignature({ signature: s, checker }))\n\n\t\t\t\t\t\t\tresults.classes.push({\n\t\t\t\t\t\t\t\tclassName: node.name.text,\n\t\t\t\t\t\t\t\tclassPath: sourceFile.fileName,\n\t\t\t\t\t\t\t\tparentClassName,\n\t\t\t\t\t\t\t\tparentClassPath,\n\t\t\t\t\t\t\t\tstaticProperties: pluckStaticProperties(node),\n\t\t\t\t\t\t\t\toptionsInterfaceName:\n\t\t\t\t\t\t\t\t\tdetails.constructors?.[0].parameters?.[0]?.type,\n\t\t\t\t\t\t\t\tisAbstract: isAbstractClass,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (ts.isInterfaceDeclaration(node)) {\n\t\t\t\t\t\tresults.interfaces.push({\n\t\t\t\t\t\t\tinterfaceName: node.name.text,\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\tintrospects.push(results)\n\t\t}\n\n\t\treturn introspects\n\t},\n}\n\nexport default introspectionUtil\n\nfunction pluckStaticProperties(node: ts.ClassDeclaration): StaticProperties {\n\tconst staticProps: StaticProperties = {}\n\n\tfor (const member of node.members) {\n\t\t//@ts-ignore\n\t\tconst name = member.name?.escapedText\n\t\t//@ts-ignore\n\t\tconst value = member.initializer?.text\n\n\t\tif (name && value) {\n\t\t\tstaticProps[name] = value\n\t\t}\n\t}\n\n\treturn staticProps\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"isCi.js","names":["isCi","env","process","some","sign","CI_NAME"],"sources":["../../src/utilities/isCi.ts"],"sourcesContent":["export default function isCi() {\n\tconst env = process.env\n\n\tif (\n\t\t[\n\t\t\t'TRAVIS',\n\t\t\t'CIRCLECI',\n\t\t\t'APPVEYOR',\n\t\t\t'GITLAB_CI',\n\t\t\t'GITHUB_ACTIONS',\n\t\t\t'BUILDKITE',\n\t\t\t'DRONE',\n\t\t].some((sign) => sign in env) ||\n\t\tenv.CI_NAME === 'codeship'\n\t) {\n\t\treturn true\n\t}\n\n\treturn false\n}\n"],"mappings":";;;;;;;AAAe,SAASA,IAAT,GAAgB;EAC9B,IAAMC,GAAG,GAAGC,OAAO,CAACD,GAApB;;EAEA,IACC,CACC,QADD,EAEC,UAFD,EAGC,UAHD,EAIC,WAJD,EAKC,gBALD,EAMC,WAND,EAOC,OAPD,EAQEE,IARF,CAQO,UAACC,IAAD;IAAA,OAAUA,IAAI,IAAIH,GAAlB;EAAA,CARP,KASAA,GAAG,CAACI,OAAJ,KAAgB,UAVjB,EAWE;IACD,OAAO,IAAP;EACA;;EAED,OAAO,KAAP;AACA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"tsConfig.utility.js","names":["tsConfigUtil","readConfig","dir","source","packagePath","pathUtil","join","contents","fs","readFileSync","toString","parsed","JSON","parse","err","SpruceError","code","file","originalError","setPathAlias","alias","patterns","paths","compilerOptions","writeConfig","destination","outputFileSync","stringify","setCompilerOption","key","value","isPathAliasSet","path"],"sources":["../../src/utilities/tsConfig.utility.ts"],"sourcesContent":["import pathUtil from 'path'\nimport fs from 'fs-extra'\nimport SpruceError from '../errors/SpruceError'\nconst tsConfigUtil = {\n\treadConfig(dir: string): Record<string, any | undefined> {\n\t\tconst source = dir\n\t\tconst packagePath = pathUtil.join(source, 'tsconfig.json')\n\t\tconst contents = fs.readFileSync(packagePath).toString()\n\t\ttry {\n\t\t\tconst parsed = JSON.parse(contents)\n\t\t\treturn parsed\n\t\t} catch (err: any) {\n\t\t\tthrow new SpruceError({\n\t\t\t\tcode: 'FAILED_TO_IMPORT',\n\t\t\t\tfile: packagePath,\n\t\t\t\toriginalError: err,\n\t\t\t})\n\t\t}\n\t},\n\n\tsetPathAlias(dir: string, alias: string, patterns: string[]) {\n\t\tconst contents = this.readConfig(dir)\n\t\tconst paths = contents.compilerOptions?.paths ?? {}\n\n\t\t// Set new path\n\t\tpaths[alias] = patterns\n\n\t\t// Pass back to contents\n\t\tif (!contents.compilerOptions) {\n\t\t\tcontents.compilerOptions = {}\n\t\t}\n\n\t\tcontents.compilerOptions.paths = paths\n\n\t\tthis.writeConfig(dir, contents)\n\t},\n\n\twriteConfig(dir: string, contents: Record<string, any>) {\n\t\tconst destination = pathUtil.join(dir, 'tsconfig.json')\n\t\tfs.outputFileSync(destination, JSON.stringify(contents, null, 2))\n\t},\n\n\tsetCompilerOption(\n\t\tdir: string,\n\t\tkey: string,\n\t\tvalue: boolean | string | number\n\t) {\n\t\tconst contents = this.readConfig(dir)\n\t\tif (!contents.compilerOptions) {\n\t\t\tcontents.compilerOptions = {}\n\t\t}\n\n\t\tcontents.compilerOptions[key] = value\n\n\t\tthis.writeConfig(dir, contents)\n\t},\n\n\tisPathAliasSet(dir: string, path: string) {\n\t\treturn !!this.readConfig(dir).compilerOptions?.paths?.[path]\n\t},\n}\n\nexport default tsConfigUtil\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA,IAAMA,YAAY,GAAG;EACpBC,UADoB,sBACTC,GADS,EACqC;IACxD,IAAMC,MAAM,GAAGD,GAAf;;IACA,IAAME,WAAW,GAAGC,iBAASC,IAAT,CAAcH,MAAd,EAAsB,eAAtB,CAApB;;IACA,IAAMI,QAAQ,GAAGC,oBAAGC,YAAH,CAAgBL,WAAhB,EAA6BM,QAA7B,EAAjB;;IACA,IAAI;MACH,IAAMC,MAAM,GAAGC,IAAI,CAACC,KAAL,CAAWN,QAAX,CAAf;MACA,OAAOI,MAAP;IACA,CAHD,CAGE,OAAOG,GAAP,EAAiB;MAClB,MAAM,IAAIC,uBAAJ,CAAgB;QACrBC,IAAI,EAAE,kBADe;QAErBC,IAAI,EAAEb,WAFe;QAGrBc,aAAa,EAAEJ;MAHM,CAAhB,CAAN;IAKA;EACD,CAfmB;EAiBpBK,YAjBoB,wBAiBPjB,GAjBO,EAiBMkB,KAjBN,EAiBqBC,QAjBrB,EAiByC;IAAA;;IAC5D,IAAMd,QAAQ,GAAG,KAAKN,UAAL,CAAgBC,GAAhB,CAAjB;IACA,IAAMoB,KAAK,sDAAGf,QAAQ,CAACgB,eAAZ,2DAAG,uBAA0BD,KAA7B,yEAAsC,EAAjD,CAF4D,CAI5D;;IACAA,KAAK,CAACF,KAAD,CAAL,GAAeC,QAAf,CAL4D,CAO5D;;IACA,IAAI,CAACd,QAAQ,CAACgB,eAAd,EAA+B;MAC9BhB,QAAQ,CAACgB,eAAT,GAA2B,EAA3B;IACA;;IAEDhB,QAAQ,CAACgB,eAAT,CAAyBD,KAAzB,GAAiCA,KAAjC;IAEA,KAAKE,WAAL,CAAiBtB,GAAjB,EAAsBK,QAAtB;EACA,CAhCmB;EAkCpBiB,WAlCoB,uBAkCRtB,GAlCQ,EAkCKK,QAlCL,EAkCoC;IACvD,IAAMkB,WAAW,GAAGpB,iBAASC,IAAT,CAAcJ,GAAd,EAAmB,eAAnB,CAApB;;IACAM,oBAAGkB,cAAH,CAAkBD,WAAlB,EAA+Bb,IAAI,CAACe,SAAL,CAAepB,QAAf,EAAyB,IAAzB,EAA+B,CAA/B,CAA/B;EACA,CArCmB;EAuCpBqB,iBAvCoB,6BAwCnB1B,GAxCmB,EAyCnB2B,GAzCmB,EA0CnBC,KA1CmB,EA2ClB;IACD,IAAMvB,QAAQ,GAAG,KAAKN,UAAL,CAAgBC,GAAhB,CAAjB;;IACA,IAAI,CAACK,QAAQ,CAACgB,eAAd,EAA+B;MAC9BhB,QAAQ,CAACgB,eAAT,GAA2B,EAA3B;IACA;;IAEDhB,QAAQ,CAACgB,eAAT,CAAyBM,GAAzB,IAAgCC,KAAhC;IAEA,KAAKN,WAAL,CAAiBtB,GAAjB,EAAsBK,QAAtB;EACA,CApDmB;EAsDpBwB,cAtDoB,0BAsDL7B,GAtDK,EAsDQ8B,IAtDR,EAsDsB;IAAA;;IACzC,OAAO,CAAC,2BAAC,KAAK/B,UAAL,CAAgBC,GAAhB,EAAqBqB,eAAtB,4EAAC,sBAAsCD,KAAvC,mDAAC,uBAA8CU,IAA9C,CAAD,CAAR;EACA;AAxDmB,CAArB;eA2DehC,Y"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"ui.utility.js","names":["uiUtil","renderActionMastHead","ui","action","renderMasthead","headline","invocationMessage","options","hero","clear","renderHero","CLI_HERO","renderHeadline"],"sources":["../../src/utilities/ui.utility.ts"],"sourcesContent":["import { Schema } from '@sprucelabs/schema'\nimport { CLI_HERO } from '../constants'\nimport { FeatureAction } from '../features/features.types'\nimport { GraphicsInterface } from '../types/cli.types'\n\nconst uiUtil = {\n\trenderActionMastHead(ui: GraphicsInterface, action: FeatureAction<Schema>) {\n\t\treturn this.renderMasthead({\n\t\t\tui,\n\t\t\theadline: action.invocationMessage,\n\t\t})\n\t},\n\n\trenderMasthead(options: {\n\t\tui: GraphicsInterface\n\t\thero?: string\n\t\theadline: string\n\t}) {\n\t\tconst { ui, hero, headline } = options\n\n\t\tui.clear()\n\t\tui.renderHero(hero ?? CLI_HERO)\n\t\tui.renderHeadline(headline)\n\t},\n}\n\nexport default uiUtil\n"],"mappings":";;;;;;;AACA;;AAIA,IAAMA,MAAM,GAAG;EACdC,oBADc,gCACOC,EADP,EAC8BC,MAD9B,EAC6D;IAC1E,OAAO,KAAKC,cAAL,CAAoB;MAC1BF,EAAE,EAAFA,EAD0B;MAE1BG,QAAQ,EAAEF,MAAM,CAACG;IAFS,CAApB,CAAP;EAIA,CANa;EAQdF,cARc,0BAQCG,OARD,EAYX;IACF,IAAQL,EAAR,GAA+BK,OAA/B,CAAQL,EAAR;IAAA,IAAYM,IAAZ,GAA+BD,OAA/B,CAAYC,IAAZ;IAAA,IAAkBH,QAAlB,GAA+BE,OAA/B,CAAkBF,QAAlB;IAEAH,EAAE,CAACO,KAAH;IACAP,EAAE,CAACQ,UAAH,CAAcF,IAAd,aAAcA,IAAd,cAAcA,IAAd,GAAsBG,mBAAtB;IACAT,EAAE,CAACU,cAAH,CAAkBP,QAAlB;EACA;AAlBa,CAAf;eAqBeL,M"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"Theme.js","names":["mint","yellow","orange","blue","colors","Theme","primaryColor","length","backgroundColor"],"sources":["../../src/widgets/Theme.ts"],"sourcesContent":["import random from 'lodash/random'\nconst mint = '#24FE91'\nconst yellow = '#fdfd2d'\nconst orange = '#ff8100'\nconst blue = '#63caf3'\n\nconst colors = [mint, yellow, orange, blue]\n\nconst Theme = {\n\tprimaryColor: colors[random(0, colors.length - 1)],\n\tbackgroundColor: '#000000',\n}\n\nexport default Theme\n"],"mappings":";;;;;;;;;AAAA;;AACA,IAAMA,IAAI,GAAG,SAAb;AACA,IAAMC,MAAM,GAAG,SAAf;AACA,IAAMC,MAAM,GAAG,SAAf;AACA,IAAMC,IAAI,GAAG,SAAb;AAEA,IAAMC,MAAM,GAAG,CAACJ,IAAD,EAAOC,MAAP,EAAeC,MAAf,EAAuBC,IAAvB,CAAf;AAEA,IAAME,KAAK,GAAG;EACbC,YAAY,EAAEF,MAAM,CAAC,wBAAO,CAAP,EAAUA,MAAM,CAACG,MAAP,GAAgB,CAA1B,CAAD,CADP;EAEbC,eAAe,EAAE;AAFJ,CAAd;eAKeH,K"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"WidgetFactory.js","names":["termKit","terminal_kit","WidgetFactory","term","terminal","type","options","Class","widgetRegistry","instance","eventContract","contractRegistry"],"sources":["../../src/widgets/WidgetFactory.ts"],"sourcesContent":["import terminal_kit, { Terminal } from 'terminal-kit'\nimport {\n\tcontractRegistry,\n\tFactoryOptions,\n\twidgetRegistry,\n\tWidgetRegistry,\n\tWidgetType,\n} from './types/factory.types'\nconst termKit = terminal_kit as any\n\nexport default class WidgetFactory {\n\tprivate term: Terminal\n\tpublic constructor() {\n\t\tthis.term = termKit.terminal\n\t}\n\n\tpublic Widget<T extends WidgetType>(\n\t\ttype: T,\n\t\toptions: FactoryOptions<T>\n\t): WidgetRegistry[T] {\n\t\tconst Class = widgetRegistry[type]\n\n\t\t//@ts-ignore\n\t\tconst instance = new Class({\n\t\t\t...options,\n\t\t\tterm: this.term,\n\t\t\teventContract: contractRegistry[type],\n\t\t})\n\n\t\t//@ts-ignore\n\t\treturn instance\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;AAAA;;AACA;;;;;;AAOA,IAAMA,OAAO,GAAGC,uBAAhB;;IAEqBC,a;EAEpB,yBAAqB;IAAA;IAAA;IACpB,KAAKC,IAAL,GAAYH,OAAO,CAACI,QAApB;EACA;;;;WAED,gBACCC,IADD,EAECC,OAFD,EAGqB;MACpB,IAAMC,KAAK,GAAGC,wBAAeH,IAAf,CAAd,CADoB,CAGpB;;MACA,IAAMI,QAAQ,GAAG,IAAIF,KAAJ,iCACbD,OADa;QAEhBH,IAAI,EAAE,KAAKA,IAFK;QAGhBO,aAAa,EAAEC,0BAAiBN,IAAjB;MAHC,GAAjB,CAJoB,CAUpB;;MACA,OAAOI,QAAP;IACA"}
|