@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,"
|
|
1
|
+
{"version":3,"file":"FieldTemplateItemBuilder.js","names":["FieldTemplateItemBuilder","fields","templateItems","generatedImportAsCount","field","registration","name","className","pkg","importAs","isLocal","item","namePascal","namesUtil","toPascal","nameCamel","toCamel","nameReadable","pascalType","type","camelType","description","valueTypeMapper","push"],"sources":["../../src/templateItemBuilders/FieldTemplateItemBuilder.ts"],"sourcesContent":["import { FieldTemplateItem } from '@sprucelabs/schema'\nimport { namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport { FetchedField } from '../features/schema/stores/SchemaStore'\n\nexport default class FieldTemplateItemBuilder {\n\tpublic generateTemplateItems(fields: FetchedField[]) {\n\t\tconst templateItems: FieldTemplateItem[] = []\n\t\tlet generatedImportAsCount = 0\n\n\t\tfor (let field of fields) {\n\t\t\tconst { registration } = field\n\t\t\tconst name = registration.className\n\t\t\tlet pkg = registration.package\n\t\t\tlet importAs = registration.importAs\n\n\t\t\tif (field.isLocal) {\n\t\t\t\tpkg = `#spruce/../fields/${registration.className}`\n\t\t\t\timportAs = `generated_import_${generatedImportAsCount++}`\n\t\t\t}\n\n\t\t\tconst item: FieldTemplateItem = {\n\t\t\t\tnamePascal: namesUtil.toPascal(name),\n\t\t\t\tnameCamel: namesUtil.toCamel(name),\n\t\t\t\tpackage: pkg,\n\t\t\t\tclassName: registration.className,\n\t\t\t\timportAs,\n\t\t\t\tnameReadable: registration.className,\n\t\t\t\tpascalType: namesUtil.toPascal(registration.type),\n\t\t\t\tcamelType: namesUtil.toCamel(registration.type),\n\t\t\t\tisLocal: field.isLocal,\n\t\t\t\tdescription: registration.description,\n\t\t\t\tvalueTypeMapper: registration.valueTypeMapper,\n\t\t\t}\n\n\t\t\tgeneratedImportAsCount++\n\n\t\t\ttemplateItems.push(item)\n\t\t}\n\n\t\treturn templateItems\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;AACA;;;;;;;;IAGqBA,wB;;;;;;;WACpB,+BAA6BC,MAA7B,EAAqD;MACpD,IAAMC,aAAkC,GAAG,EAA3C;MACA,IAAIC,sBAAsB,GAAG,CAA7B;;MAFoD,2CAIlCF,MAJkC;MAAA;;MAAA;QAIpD,oDAA0B;UAAA,IAAjBG,KAAiB;UACzB,IAAQC,YAAR,GAAyBD,KAAzB,CAAQC,YAAR;UACA,IAAMC,IAAI,GAAGD,YAAY,CAACE,SAA1B;UACA,IAAIC,GAAG,GAAGH,YAAY,WAAtB;UACA,IAAII,QAAQ,GAAGJ,YAAY,CAACI,QAA5B;;UAEA,IAAIL,KAAK,CAACM,OAAV,EAAmB;YAClBF,GAAG,+BAAwBH,YAAY,CAACE,SAArC,CAAH;YACAE,QAAQ,8BAAuBN,sBAAsB,EAA7C,CAAR;UACA;;UAED,IAAMQ,IAAuB,GAAG;YAC/BC,UAAU,EAAEC,4BAAUC,QAAV,CAAmBR,IAAnB,CADmB;YAE/BS,SAAS,EAAEF,4BAAUG,OAAV,CAAkBV,IAAlB,CAFoB;YAG/B,WAASE,GAHsB;YAI/BD,SAAS,EAAEF,YAAY,CAACE,SAJO;YAK/BE,QAAQ,EAARA,QAL+B;YAM/BQ,YAAY,EAAEZ,YAAY,CAACE,SANI;YAO/BW,UAAU,EAAEL,4BAAUC,QAAV,CAAmBT,YAAY,CAACc,IAAhC,CAPmB;YAQ/BC,SAAS,EAAEP,4BAAUG,OAAV,CAAkBX,YAAY,CAACc,IAA/B,CARoB;YAS/BT,OAAO,EAAEN,KAAK,CAACM,OATgB;YAU/BW,WAAW,EAAEhB,YAAY,CAACgB,WAVK;YAW/BC,eAAe,EAAEjB,YAAY,CAACiB;UAXC,CAAhC;UAcAnB,sBAAsB;UAEtBD,aAAa,CAACqB,IAAd,CAAmBZ,IAAnB;QACA;MAhCmD;QAAA;MAAA;QAAA;MAAA;;MAkCpD,OAAOT,aAAP;IACA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/templateItemBuilders/SchemaTemplateItemBuilder.ts"],"names":["SchemaTemplateItemBuilder","localNamespace","schemasByNamespace","destinationDir","schemas","namespaces","Object","keys","namespace","push","map","s","flattenSchemas","flattened","values","schemasByKey","sorted","sort","a","b","doesADependOnB","reverse","schemaTemplateItems","buildTemplateItem","dependencies","idWithVersion","schema","find","dep","forEach","def","flattenSchema","isNested","localSchema","namedFields","pluckFields","field","name","type","schemasOrIdsWithVersion","SchemaField","mapFieldDefinitionToSchemasOrIdsWithVersion","originalOptions","options","schemaId","schemaIds","schemaOrId","related","version","moduleToImportFromWhenRemote","relatedIdWithVersion","length","SpruceError","code","id","schemaNamespace","fieldName","fieldOptions","key","schemaUtil","generateCacheKey","fields","dynamicFieldSignature","dynamicField","importFrom","getImportFromForSchema","item","generateNamesForSchema","toLowerCase","importsWhenLocal","imports","importsWhenRemote","match","CORE_NAMESPACE","undefined"],"mappings":"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","sourcesContent":["import {\n\tSchema,\n\tSchemaTemplateItem,\n\tSchemaField,\n\tSchemaIdWithVersion,\n\tnormalizeSchemaToIdWithVersion,\n\tisIdWithVersion,\n} from '@sprucelabs/schema'\nimport { CORE_NAMESPACE } from '@sprucelabs/spruce-skill-utils'\nimport cloneDeep from 'lodash/cloneDeep'\nimport isEqual from 'lodash/isEqual'\nimport merge from 'lodash/merge'\nimport SpruceError from '../errors/SpruceError'\nimport { SchemasByNamespace } from '../features/schema/stores/SchemaStore'\nimport schemaUtil from '../features/schema/utilities/schema.utility'\n\ninterface SchemaWithDependencies {\n\tschema: Schema\n\tdependencies: SchemaIdWithVersion[]\n\tisNested: boolean\n}\n\nexport default class SchemaTemplateItemBuilder {\n\tprivate schemasByKey: Record<string, SchemaWithDependencies> = {}\n\tprivate localNamespace: string\n\n\tpublic constructor(localNamespace: string) {\n\t\tthis.localNamespace = localNamespace\n\t}\n\n\tpublic buildTemplateItems(\n\t\tschemasByNamespace: SchemasByNamespace,\n\t\tdestinationDir = '#spruce/schemas'\n\t) {\n\t\tconst schemas: Schema[] = []\n\t\tconst namespaces = Object.keys(schemasByNamespace)\n\n\t\tfor (const namespace of namespaces) {\n\t\t\tschemas.push(\n\t\t\t\t...schemasByNamespace[namespace].map((s) => ({ namespace, ...s }))\n\t\t\t)\n\t\t}\n\n\t\tthis.flattenSchemas(schemas)\n\n\t\tconst flattened = Object.values(this.schemasByKey)\n\t\tconst sorted = flattened\n\t\t\t.sort((a, b) => {\n\t\t\t\tif (this.doesADependOnB(a, b)) {\n\t\t\t\t\treturn -1\n\t\t\t\t} else if (this.doesADependOnB(b, a)) {\n\t\t\t\t\treturn 1\n\t\t\t\t}\n\t\t\t\treturn 0\n\t\t\t})\n\t\t\t.reverse()\n\n\t\tconst schemaTemplateItems = sorted.map((s) =>\n\t\t\tthis.buildTemplateItem({\n\t\t\t\t...s,\n\t\t\t\tdestinationDir,\n\t\t\t})\n\t\t)\n\n\t\treturn schemaTemplateItems\n\t}\n\n\tprivate doesADependOnB(a: SchemaWithDependencies, b: SchemaWithDependencies) {\n\t\tconst { dependencies } = a\n\t\tconst idWithVersion = normalizeSchemaToIdWithVersion(b.schema)\n\n\t\tif (dependencies.find((dep) => isEqual(dep, idWithVersion))) {\n\t\t\treturn true\n\t\t}\n\n\t\treturn false\n\t}\n\n\tprivate flattenSchemas(schemas: Schema[]) {\n\t\tschemas.forEach((def) => {\n\t\t\tthis.flattenSchema(def)\n\t\t})\n\t}\n\n\tprivate flattenSchema(schema: Schema, isNested = false) {\n\t\tconst localSchema = cloneDeep(schema)\n\n\t\tconst namedFields = this.pluckFields(localSchema)\n\t\tconst dependencies: SchemaIdWithVersion[] = []\n\n\t\tnamedFields.forEach(({ field, name }) => {\n\t\t\tif (field.type === 'schema') {\n\t\t\t\tconst schemasOrIdsWithVersion =\n\t\t\t\t\tSchemaField.mapFieldDefinitionToSchemasOrIdsWithVersion(field)\n\n\t\t\t\tconst { ...originalOptions } = field.options\n\t\t\t\tdelete field.options.schema\n\t\t\t\tdelete field.options.schemaId\n\t\t\t\tdelete field.options.schemaIds\n\t\t\t\tdelete field.options.schemas\n\t\t\t\tfield.options.schemaIds = []\n\n\t\t\t\tschemasOrIdsWithVersion.forEach((schemaOrId) => {\n\t\t\t\t\tconst related = { ...schemaOrId }\n\n\t\t\t\t\tif (localSchema.version && !related.version) {\n\t\t\t\t\t\trelated.version = localSchema.version\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!related.namespace) {\n\t\t\t\t\t\trelated.namespace = schema.namespace\n\t\t\t\t\t}\n\n\t\t\t\t\tif (\n\t\t\t\t\t\tlocalSchema.moduleToImportFromWhenRemote &&\n\t\t\t\t\t\t//@ts-ignore\n\t\t\t\t\t\t!related.moduleToImportFromWhenRemote &&\n\t\t\t\t\t\t!isIdWithVersion(related)\n\t\t\t\t\t) {\n\t\t\t\t\t\t//@ts-ignore\n\t\t\t\t\t\trelated.moduleToImportFromWhenRemote =\n\t\t\t\t\t\t\tlocalSchema.moduleToImportFromWhenRemote\n\t\t\t\t\t}\n\n\t\t\t\t\tconst relatedIdWithVersion = normalizeSchemaToIdWithVersion(related)\n\n\t\t\t\t\tfield.options.schemaIds?.push(relatedIdWithVersion)\n\t\t\t\t\tdependencies.push(relatedIdWithVersion)\n\n\t\t\t\t\tthis.flattenSchema(related, true)\n\t\t\t\t})\n\n\t\t\t\tif (field.options.schemaIds.length === 0) {\n\t\t\t\t\tthrow new SpruceError({\n\t\t\t\t\t\tcode: 'SCHEMA_TEMPLATE_ITEM_BUILDING_FAILED',\n\t\t\t\t\t\tschemaId: schema.id,\n\t\t\t\t\t\tschemaNamespace: schema.namespace as string,\n\t\t\t\t\t\tfieldName: name,\n\t\t\t\t\t\tfieldOptions: originalOptions,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\n\t\tconst key = schemaUtil.generateCacheKey(localSchema)\n\t\tthis.schemasByKey[key] = merge(this.schemasByKey[key] ?? {}, {\n\t\t\tschema: localSchema,\n\t\t\tdependencies,\n\t\t\tisNested: this.schemasByKey[key]?.isNested === false ? false : isNested,\n\t\t})\n\t}\n\n\tprivate pluckFields(localSchema: Schema) {\n\t\tconst fields = localSchema.dynamicFieldSignature\n\t\t\t? { dynamicField: localSchema.dynamicFieldSignature }\n\t\t\t: localSchema.fields ?? {}\n\n\t\tconst namedFields = Object.keys(fields).map((name) => ({\n\t\t\tname,\n\t\t\tfield: fields[name],\n\t\t}))\n\t\treturn namedFields\n\t}\n\n\tprivate buildTemplateItem(options: {\n\t\tschema: Schema\n\t\tisNested: boolean\n\t\tdestinationDir: string\n\t}): SchemaTemplateItem {\n\t\tconst { schema, isNested, destinationDir } = options\n\t\tconst namespace = schema.namespace ?? this.localNamespace\n\n\t\tconst importFrom = this.getImportFromForSchema(schema)\n\t\tconst item: SchemaTemplateItem = {\n\t\t\tid: schema.id,\n\t\t\tnamespace,\n\t\t\tschema,\n\t\t\t...schemaUtil.generateNamesForSchema(schema),\n\t\t\tisNested,\n\t\t\tdestinationDir,\n\t\t}\n\n\t\tif (importFrom) {\n\t\t\titem.importFrom = importFrom\n\t\t}\n\n\t\tif (\n\t\t\tnamespace.toLowerCase() === this.localNamespace.toLowerCase() &&\n\t\t\tschema.importsWhenLocal\n\t\t) {\n\t\t\titem.imports = [...schema.importsWhenLocal]\n\t\t} else if (\n\t\t\tnamespace.toLowerCase() !== this.localNamespace.toLowerCase() &&\n\t\t\tschema.importsWhenRemote\n\t\t) {\n\t\t\titem.imports = [...schema.importsWhenRemote]\n\t\t}\n\n\t\tconst namedFields = this.pluckFields(schema)\n\n\t\tfor (const { field } of namedFields) {\n\t\t\tif (field.type === 'schema') {\n\t\t\t\tfield.options.schemaIds?.forEach((idWithVersion) => {\n\t\t\t\t\tconst key = schemaUtil.generateCacheKey(idWithVersion)\n\t\t\t\t\tconst match = this.schemasByKey[key]\n\n\t\t\t\t\tif (\n\t\t\t\t\t\tmatch.schema.importsWhenRemote &&\n\t\t\t\t\t\tmatch.schema.namespace &&\n\t\t\t\t\t\tmatch.schema.namespace.toLowerCase() !==\n\t\t\t\t\t\t\tthis.localNamespace.toLowerCase()\n\t\t\t\t\t) {\n\t\t\t\t\t\tif (!item.imports) {\n\t\t\t\t\t\t\titem.imports = []\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\titem.imports.push(...match.schema.importsWhenRemote)\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\treturn item\n\t}\n\n\tprivate getImportFromForSchema(schema: Schema): string | undefined {\n\t\tif (\n\t\t\tschema.moduleToImportFromWhenRemote &&\n\t\t\tschema.namespace !== this.localNamespace\n\t\t) {\n\t\t\treturn schema.moduleToImportFromWhenRemote\n\t\t}\n\t\tswitch (schema.namespace) {\n\t\t\tcase CORE_NAMESPACE:\n\t\t\t\tif (this.localNamespace !== CORE_NAMESPACE) {\n\t\t\t\t\treturn '@sprucelabs/spruce-core-schemas'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t}\n\n\t\treturn undefined\n\t}\n}\n"],"file":"SchemaTemplateItemBuilder.js"}
|
|
1
|
+
{"version":3,"file":"SchemaTemplateItemBuilder.js","names":["SchemaTemplateItemBuilder","localNamespace","schemasByNamespace","destinationDir","schemas","namespaces","Object","keys","namespace","push","map","s","flattenSchemas","flattened","values","schemasByKey","sorted","sort","a","b","doesADependOnB","reverse","schemaTemplateItems","buildTemplateItem","dependencies","idWithVersion","schema","find","dep","forEach","def","flattenSchema","isNested","localSchema","namedFields","pluckFields","field","name","type","schemasOrIdsWithVersion","SchemaField","mapFieldDefinitionToSchemasOrIdsWithVersion","originalOptions","options","schemaId","schemaIds","schemaOrId","related","version","moduleToImportFromWhenRemote","relatedIdWithVersion","length","SpruceError","code","id","schemaNamespace","fieldName","fieldOptions","key","schemaUtil","generateCacheKey","fields","dynamicFieldSignature","dynamicField","importFrom","getImportFromForSchema","item","generateNamesForSchema","toLowerCase","importsWhenLocal","imports","importsWhenRemote","match","CORE_NAMESPACE","undefined"],"sources":["../../src/templateItemBuilders/SchemaTemplateItemBuilder.ts"],"sourcesContent":["import {\n\tSchema,\n\tSchemaTemplateItem,\n\tSchemaField,\n\tSchemaIdWithVersion,\n\tnormalizeSchemaToIdWithVersion,\n\tisIdWithVersion,\n} from '@sprucelabs/schema'\nimport { CORE_NAMESPACE } from '@sprucelabs/spruce-skill-utils'\nimport cloneDeep from 'lodash/cloneDeep'\nimport isEqual from 'lodash/isEqual'\nimport merge from 'lodash/merge'\nimport SpruceError from '../errors/SpruceError'\nimport { SchemasByNamespace } from '../features/schema/stores/SchemaStore'\nimport schemaUtil from '../features/schema/utilities/schema.utility'\n\ninterface SchemaWithDependencies {\n\tschema: Schema\n\tdependencies: SchemaIdWithVersion[]\n\tisNested: boolean\n}\n\nexport default class SchemaTemplateItemBuilder {\n\tprivate schemasByKey: Record<string, SchemaWithDependencies> = {}\n\tprivate localNamespace: string\n\n\tpublic constructor(localNamespace: string) {\n\t\tthis.localNamespace = localNamespace\n\t}\n\n\tpublic buildTemplateItems(\n\t\tschemasByNamespace: SchemasByNamespace,\n\t\tdestinationDir = '#spruce/schemas'\n\t) {\n\t\tconst schemas: Schema[] = []\n\t\tconst namespaces = Object.keys(schemasByNamespace)\n\n\t\tfor (const namespace of namespaces) {\n\t\t\tschemas.push(\n\t\t\t\t...schemasByNamespace[namespace].map((s) => ({ namespace, ...s }))\n\t\t\t)\n\t\t}\n\n\t\tthis.flattenSchemas(schemas)\n\n\t\tconst flattened = Object.values(this.schemasByKey)\n\t\tconst sorted = flattened\n\t\t\t.sort((a, b) => {\n\t\t\t\tif (this.doesADependOnB(a, b)) {\n\t\t\t\t\treturn -1\n\t\t\t\t} else if (this.doesADependOnB(b, a)) {\n\t\t\t\t\treturn 1\n\t\t\t\t}\n\t\t\t\treturn 0\n\t\t\t})\n\t\t\t.reverse()\n\n\t\tconst schemaTemplateItems = sorted.map((s) =>\n\t\t\tthis.buildTemplateItem({\n\t\t\t\t...s,\n\t\t\t\tdestinationDir,\n\t\t\t})\n\t\t)\n\n\t\treturn schemaTemplateItems\n\t}\n\n\tprivate doesADependOnB(a: SchemaWithDependencies, b: SchemaWithDependencies) {\n\t\tconst { dependencies } = a\n\t\tconst idWithVersion = normalizeSchemaToIdWithVersion(b.schema)\n\n\t\tif (dependencies.find((dep) => isEqual(dep, idWithVersion))) {\n\t\t\treturn true\n\t\t}\n\n\t\treturn false\n\t}\n\n\tprivate flattenSchemas(schemas: Schema[]) {\n\t\tschemas.forEach((def) => {\n\t\t\tthis.flattenSchema(def)\n\t\t})\n\t}\n\n\tprivate flattenSchema(schema: Schema, isNested = false) {\n\t\tconst localSchema = cloneDeep(schema)\n\n\t\tconst namedFields = this.pluckFields(localSchema)\n\t\tconst dependencies: SchemaIdWithVersion[] = []\n\n\t\tnamedFields.forEach(({ field, name }) => {\n\t\t\tif (field.type === 'schema') {\n\t\t\t\tconst schemasOrIdsWithVersion =\n\t\t\t\t\tSchemaField.mapFieldDefinitionToSchemasOrIdsWithVersion(field)\n\n\t\t\t\tconst { ...originalOptions } = field.options\n\t\t\t\tdelete field.options.schema\n\t\t\t\tdelete field.options.schemaId\n\t\t\t\tdelete field.options.schemaIds\n\t\t\t\tdelete field.options.schemas\n\t\t\t\tfield.options.schemaIds = []\n\n\t\t\t\tschemasOrIdsWithVersion.forEach((schemaOrId) => {\n\t\t\t\t\tconst related = { ...schemaOrId }\n\n\t\t\t\t\tif (localSchema.version && !related.version) {\n\t\t\t\t\t\trelated.version = localSchema.version\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!related.namespace) {\n\t\t\t\t\t\trelated.namespace = schema.namespace\n\t\t\t\t\t}\n\n\t\t\t\t\tif (\n\t\t\t\t\t\tlocalSchema.moduleToImportFromWhenRemote &&\n\t\t\t\t\t\t//@ts-ignore\n\t\t\t\t\t\t!related.moduleToImportFromWhenRemote &&\n\t\t\t\t\t\t!isIdWithVersion(related)\n\t\t\t\t\t) {\n\t\t\t\t\t\t//@ts-ignore\n\t\t\t\t\t\trelated.moduleToImportFromWhenRemote =\n\t\t\t\t\t\t\tlocalSchema.moduleToImportFromWhenRemote\n\t\t\t\t\t}\n\n\t\t\t\t\tconst relatedIdWithVersion = normalizeSchemaToIdWithVersion(related)\n\n\t\t\t\t\tfield.options.schemaIds?.push(relatedIdWithVersion)\n\t\t\t\t\tdependencies.push(relatedIdWithVersion)\n\n\t\t\t\t\tthis.flattenSchema(related, true)\n\t\t\t\t})\n\n\t\t\t\tif (field.options.schemaIds.length === 0) {\n\t\t\t\t\tthrow new SpruceError({\n\t\t\t\t\t\tcode: 'SCHEMA_TEMPLATE_ITEM_BUILDING_FAILED',\n\t\t\t\t\t\tschemaId: schema.id,\n\t\t\t\t\t\tschemaNamespace: schema.namespace as string,\n\t\t\t\t\t\tfieldName: name,\n\t\t\t\t\t\tfieldOptions: originalOptions,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\n\t\tconst key = schemaUtil.generateCacheKey(localSchema)\n\t\tthis.schemasByKey[key] = merge(this.schemasByKey[key] ?? {}, {\n\t\t\tschema: localSchema,\n\t\t\tdependencies,\n\t\t\tisNested: this.schemasByKey[key]?.isNested === false ? false : isNested,\n\t\t})\n\t}\n\n\tprivate pluckFields(localSchema: Schema) {\n\t\tconst fields = localSchema.dynamicFieldSignature\n\t\t\t? { dynamicField: localSchema.dynamicFieldSignature }\n\t\t\t: localSchema.fields ?? {}\n\n\t\tconst namedFields = Object.keys(fields).map((name) => ({\n\t\t\tname,\n\t\t\tfield: fields[name],\n\t\t}))\n\t\treturn namedFields\n\t}\n\n\tprivate buildTemplateItem(options: {\n\t\tschema: Schema\n\t\tisNested: boolean\n\t\tdestinationDir: string\n\t}): SchemaTemplateItem {\n\t\tconst { schema, isNested, destinationDir } = options\n\t\tconst namespace = schema.namespace ?? this.localNamespace\n\n\t\tconst importFrom = this.getImportFromForSchema(schema)\n\t\tconst item: SchemaTemplateItem = {\n\t\t\tid: schema.id,\n\t\t\tnamespace,\n\t\t\tschema,\n\t\t\t...schemaUtil.generateNamesForSchema(schema),\n\t\t\tisNested,\n\t\t\tdestinationDir,\n\t\t}\n\n\t\tif (importFrom) {\n\t\t\titem.importFrom = importFrom\n\t\t}\n\n\t\tif (\n\t\t\tnamespace.toLowerCase() === this.localNamespace.toLowerCase() &&\n\t\t\tschema.importsWhenLocal\n\t\t) {\n\t\t\titem.imports = [...schema.importsWhenLocal]\n\t\t} else if (\n\t\t\tnamespace.toLowerCase() !== this.localNamespace.toLowerCase() &&\n\t\t\tschema.importsWhenRemote\n\t\t) {\n\t\t\titem.imports = [...schema.importsWhenRemote]\n\t\t}\n\n\t\tconst namedFields = this.pluckFields(schema)\n\n\t\tfor (const { field } of namedFields) {\n\t\t\tif (field.type === 'schema') {\n\t\t\t\tfield.options.schemaIds?.forEach((idWithVersion) => {\n\t\t\t\t\tconst key = schemaUtil.generateCacheKey(idWithVersion)\n\t\t\t\t\tconst match = this.schemasByKey[key]\n\n\t\t\t\t\tif (\n\t\t\t\t\t\tmatch.schema.importsWhenRemote &&\n\t\t\t\t\t\tmatch.schema.namespace &&\n\t\t\t\t\t\tmatch.schema.namespace.toLowerCase() !==\n\t\t\t\t\t\t\tthis.localNamespace.toLowerCase()\n\t\t\t\t\t) {\n\t\t\t\t\t\tif (!item.imports) {\n\t\t\t\t\t\t\titem.imports = []\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\titem.imports.push(...match.schema.importsWhenRemote)\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\treturn item\n\t}\n\n\tprivate getImportFromForSchema(schema: Schema): string | undefined {\n\t\tif (\n\t\t\tschema.moduleToImportFromWhenRemote &&\n\t\t\tschema.namespace !== this.localNamespace\n\t\t) {\n\t\t\treturn schema.moduleToImportFromWhenRemote\n\t\t}\n\t\tswitch (schema.namespace) {\n\t\t\tcase CORE_NAMESPACE:\n\t\t\t\tif (this.localNamespace !== CORE_NAMESPACE) {\n\t\t\t\t\treturn '@sprucelabs/spruce-core-schemas'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t}\n\n\t\treturn undefined\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/tests/AbstractCliTest.ts"],"names":["AbstractCliTest","cleanTestDirsAndFiles","LintService","disableLinting","ImportService","setCacheDir","diskUtil","createRandomTempDir","enableCaching","process","env","ENABLE_INSTALL_ENTERTAINMENT","originalEnv","testUtil","startLogTimer","SchemaRegistry","getInstance","forgetAllSchemas","cwd","freshTmpDir","homeDir","emitter","undefined","featureInstaller","OnboardingStore","overrideCwd","ui","reset","invocations","setCursorPosition","x","y","clearFixtures","clearCache","SkillStore","clearCurrentSkill","EventStore","CommandService","clearMockResponses","MercuryClientFactory","setIsTestMode","commandFaker","CommandFaker","organizationFixture","clearAllOrgs","mercuryFixture","disconnectAll","_ui","isWaitingForInput","Error","doesDirExist","shouldClearCache","deleteDir","shouldCleanupTestSkillDirs","FeatureFixture","deleteOldSkillDirs","pattern","resolveTestPath","matches","match","deleteFile","personFixture","skillFixture","viewFixture","tmpDirectory","resolveTestDir","uuid","v4","fs","ensureDirSync","SpyInterface","CliGlobalEmitter","Emitter","pathAfterTestDirsAndFiles","pathUtil","join","cliRoot","options","Cli","fixture","linkLocalPackages","type","sf","ServiceFactory","Service","getEmitter","serviceFactory","apiClientFactory","getMercuryFixture","getApiClientFactory","getFeatureInstaller","MercuryFixture","PersonFixture","writerFactory","WriterFactory","viewWriter","Writer","fileDescriptions","ViewFixture","Action","templates","settings","execute","promise","waitForInput","sendInput","results","OrganizationFixture","people","StoreFactory","SkillFixture","filePath","resolveHashSprucePath","storeFactory","actionExecuter","ActionExecuter","FeatureInstallerFactory","WithAllFeatures","code","Store","isInstalled","assert","isTrue","files","file","checker","check","path","connectToApi","all","dir","wait","timeout","log","featureCode","actionCode","executer","shouldThrowOnListenerError","actionFactory","ActionFactory","optionOverrides","shouldInstallMissingDependencies","featureInstallerFactory","shouldAutoHandleDependencies","label","last","getLastInvocation","doesInclude","choices","find","o","value","AbstractSpruceTest","__dirname"],"mappings":"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","sourcesContent":["import pathUtil from 'path'\nimport { MercuryClientFactory } from '@sprucelabs/mercury-client'\nimport { SchemaRegistry } from '@sprucelabs/schema'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { templates } from '@sprucelabs/spruce-templates'\nimport AbstractSpruceTest, { assert } from '@sprucelabs/test'\nimport fs from 'fs-extra'\nimport globby from 'globby'\nimport * as uuid from 'uuid'\nimport { CliBootOptions } from '../cli'\nimport AbstractAction from '../features/AbstractAction'\nimport { FeatureOptions } from '../features/AbstractFeature'\nimport ActionExecuter, {\n\tActionExecuterOptions,\n} from '../features/ActionExecuter'\nimport ActionFactory from '../features/ActionFactory'\nimport EventStore from '../features/event/stores/EventStore'\nimport FeatureInstaller from '../features/FeatureInstaller'\nimport FeatureInstallerFactory from '../features/FeatureInstallerFactory'\nimport { FeatureActionResponse, FeatureCode } from '../features/features.types'\nimport OnboardingStore from '../features/onboard/stores/OnboardingStore'\nimport SkillStore from '../features/skill/stores/SkillStore'\nimport CliGlobalEmitter, { GlobalEmitter } from '../GlobalEmitter'\nimport SpyInterface from '../interfaces/SpyInterface'\nimport CommandService from '../services/CommandService'\nimport ImportService from '../services/ImportService'\nimport LintService from '../services/LintService'\nimport ServiceFactory, { Service, ServiceMap } from '../services/ServiceFactory'\nimport StoreFactory, {\n\tStoreCode,\n\tStoreFactoryMethodOptions,\n\tStoreFactoryOptions,\n\tStoreMap,\n} from '../stores/StoreFactory'\nimport { ApiClientFactoryOptions } from '../types/apiClient.types'\nimport { OptionOverrides } from '../types/cli.types'\nimport WriterFactory from '../writers/WriterFactory'\nimport CommandFaker from './CommandFaker'\nimport FeatureFixture, {\n\tFeatureFixtureOptions,\n} from './fixtures/FeatureFixture'\nimport MercuryFixture from './fixtures/MercuryFixture'\nimport OrganizationFixture from './fixtures/OrganizationFixture'\nimport PersonFixture from './fixtures/PersonFixture'\nimport SkillFixture from './fixtures/SkillFixture'\nimport ViewFixture from './fixtures/ViewFixture'\nimport testUtil from './utilities/test.utility'\n\ntype ExecuterOptions = Partial<ActionExecuterOptions> & {\n\toptionOverrides?: OptionOverrides\n}\n\nexport default abstract class AbstractCliTest extends AbstractSpruceTest {\n\tprotected static cliRoot = pathUtil.join(__dirname, '..')\n\tprotected static homeDir: string\n\tprotected static commandFaker: CommandFaker\n\n\tprivate static _ui: SpyInterface\n\tprivate static emitter?: GlobalEmitter\n\tprivate static mercuryFixture?: MercuryFixture\n\tprivate static personFixture?: PersonFixture\n\tprivate static organizationFixture?: OrganizationFixture\n\tprivate static skillFixture?: SkillFixture\n\tprivate static featureInstaller?: FeatureInstaller\n\tprivate static viewFixture?: ViewFixture\n\tprivate static originalEnv: { [x: string]: string | undefined }\n\n\tprotected static async beforeAll() {\n\t\tawait super.beforeAll()\n\t\tawait this.cleanTestDirsAndFiles()\n\n\t\tLintService.disableLinting()\n\n\t\tImportService.setCacheDir(diskUtil.createRandomTempDir())\n\t\tImportService.enableCaching()\n\n\t\tprocess.env.ENABLE_INSTALL_ENTERTAINMENT = 'false'\n\n\t\tthis.originalEnv = { ...process.env }\n\t}\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\n\t\t//@ts-ignore\n\t\tprocess.env = { ...this.originalEnv }\n\n\t\ttestUtil.startLogTimer()\n\n\t\tSchemaRegistry.getInstance().forgetAllSchemas()\n\n\t\tthis.cwd = this.freshTmpDir()\n\t\tthis.homeDir = this.freshTmpDir()\n\n\t\tthis.emitter = undefined\n\t\tthis.featureInstaller = undefined\n\n\t\tOnboardingStore.overrideCwd(diskUtil.createRandomTempDir())\n\n\t\tthis.ui.reset()\n\t\tthis.ui.invocations = []\n\t\tthis.ui.setCursorPosition({ x: 0, y: 0 })\n\n\t\tthis.clearFixtures()\n\n\t\tImportService.clearCache()\n\t\tSkillStore.clearCurrentSkill()\n\t\tEventStore.clearCache()\n\t\tCommandService.clearMockResponses()\n\t\tMercuryClientFactory.reset()\n\t\tMercuryClientFactory.setIsTestMode(false)\n\n\t\tthis.commandFaker = new CommandFaker()\n\t}\n\n\tprotected static async afterEach() {\n\t\tawait super.afterEach()\n\n\t\tawait this.organizationFixture?.clearAllOrgs()\n\t\tawait this.mercuryFixture?.disconnectAll()\n\n\t\tthis.clearFixtures()\n\n\t\tif (this._ui?.isWaitingForInput()) {\n\t\t\tthrow new Error(\n\t\t\t\t`Terminal interface is waiting for input. Make sure you are invoking this.term.sendInput() as many times as needed.`\n\t\t\t)\n\t\t}\n\n\t\tif (diskUtil.doesDirExist(this.cwd) && testUtil.shouldClearCache()) {\n\t\t\tdiskUtil.deleteDir(this.cwd)\n\t\t}\n\n\t\tif (diskUtil.doesDirExist(this.homeDir) && testUtil.shouldClearCache()) {\n\t\t\tdiskUtil.deleteDir(this.homeDir)\n\t\t}\n\t}\n\n\tprotected static async afterAll() {\n\t\tawait super.afterAll()\n\t\tif (testUtil.shouldCleanupTestSkillDirs()) {\n\t\t\tFeatureFixture.deleteOldSkillDirs()\n\t\t}\n\t}\n\n\tprivate static async cleanTestDirsAndFiles() {\n\t\tconst pattern = this.resolveTestPath('**/*.d.ts')\n\t\tconst matches = await globby(pattern)\n\n\t\tfor (const match of matches) {\n\t\t\tdiskUtil.deleteFile(match)\n\t\t}\n\t}\n\n\tprivate static clearFixtures() {\n\t\tthis.emitter = undefined\n\t\tthis.mercuryFixture = undefined\n\t\tthis.organizationFixture = undefined\n\t\tthis.personFixture = undefined\n\t\tthis.skillFixture = undefined\n\t\tthis.viewFixture = undefined\n\t}\n\n\tprotected static freshTmpDir() {\n\t\tconst tmpDirectory = testUtil.resolveTestDir(uuid.v4())\n\t\tfs.ensureDirSync(tmpDirectory)\n\t\treturn tmpDirectory\n\t}\n\n\tprotected static get ui() {\n\t\tif (!this._ui) {\n\t\t\tthis._ui = new SpyInterface()\n\t\t}\n\n\t\treturn this._ui\n\t}\n\n\tprotected static getEmitter() {\n\t\tif (!this.emitter) {\n\t\t\tthis.emitter = CliGlobalEmitter.Emitter()\n\t\t}\n\t\treturn this.emitter\n\t}\n\n\tprotected static resolveTestPath(...pathAfterTestDirsAndFiles: string[]) {\n\t\treturn pathUtil.join(\n\t\t\tthis.cliRoot,\n\t\t\t'__tests__',\n\t\t\t'testDirsAndFiles',\n\t\t\t...pathAfterTestDirsAndFiles\n\t\t)\n\t}\n\n\tprotected static async Cli(options?: CliBootOptions) {\n\t\treturn this.FeatureFixture(options).Cli({\n\t\t\tcwd: this.cwd,\n\t\t\thomeDir: this.homeDir,\n\t\t\t...(options ?? {}),\n\t\t})\n\t}\n\n\tprotected static async linkLocalPackages() {\n\t\tconst fixture = this.FeatureFixture()\n\t\tawait fixture.linkLocalPackages()\n\t}\n\n\tprotected static Service<S extends Service>(\n\t\ttype: S,\n\t\tcwd?: string\n\t): ServiceMap[S] {\n\t\tconst sf = this.ServiceFactory()\n\t\treturn sf.Service(cwd ?? this.cwd, type)\n\t}\n\n\tprotected static ServiceFactory() {\n\t\treturn new ServiceFactory()\n\t}\n\n\tprotected static FeatureFixture(options?: Partial<FeatureFixtureOptions>) {\n\t\tconst emitter = options?.emitter ?? this.getEmitter()\n\n\t\treturn new FeatureFixture({\n\t\t\tcwd: this.cwd,\n\t\t\tserviceFactory: this.ServiceFactory(),\n\t\t\tui: this.ui,\n\t\t\temitter,\n\t\t\tapiClientFactory: this.getMercuryFixture().getApiClientFactory(),\n\t\t\tfeatureInstaller: this.getFeatureInstaller({ emitter }),\n\t\t\t...options,\n\t\t})\n\t}\n\n\tprotected static getMercuryFixture() {\n\t\tif (!this.mercuryFixture) {\n\t\t\tthis.mercuryFixture = new MercuryFixture(this.cwd, this.ServiceFactory())\n\t\t}\n\n\t\treturn this.mercuryFixture\n\t}\n\n\tprotected static get people() {\n\t\tif (!this.personFixture) {\n\t\t\tthis.personFixture = new PersonFixture(\n\t\t\t\tthis.getMercuryFixture().getApiClientFactory()\n\t\t\t)\n\t\t}\n\n\t\treturn this.personFixture\n\t}\n\n\tprotected static getViewFixture() {\n\t\tif (!this.viewFixture) {\n\t\t\tconst writerFactory = this.WriterFactory()\n\n\t\t\tconst viewWriter = writerFactory.Writer('view', { fileDescriptions: [] })\n\t\t\tthis.viewFixture = new ViewFixture(\n\t\t\t\tthis.cwd,\n\t\t\t\tviewWriter,\n\t\t\t\tthis.Action('view', 'sync')\n\t\t\t)\n\t\t}\n\n\t\treturn this.viewFixture\n\t}\n\n\tprivate static WriterFactory() {\n\t\treturn new WriterFactory({\n\t\t\ttemplates,\n\t\t\tui: this.ui,\n\t\t\tsettings: this.Service('settings'),\n\t\t})\n\t}\n\n\tprotected static async skipInstallSkillPrompts<\n\t\tE extends () => Promise<FeatureActionResponse>\n\t>(\n\t\texecute?: E\n\t): Promise<E extends undefined ? undefined : FeatureActionResponse> {\n\t\tconst promise = execute?.()\n\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput('n')\n\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput('')\n\n\t\tconst results = await promise\n\n\t\treturn results as any\n\t}\n\n\tprotected static getOrganizationFixture() {\n\t\tif (!this.organizationFixture) {\n\t\t\tthis.organizationFixture = new OrganizationFixture(\n\t\t\t\tthis.people,\n\t\t\t\tthis.StoreFactory()\n\t\t\t)\n\t\t}\n\n\t\treturn this.organizationFixture\n\t}\n\n\tprotected static getSkillFixture() {\n\t\tif (!this.skillFixture) {\n\t\t\tthis.skillFixture = new SkillFixture(\n\t\t\t\tthis.people,\n\t\t\t\tthis.StoreFactory(),\n\t\t\t\tthis.getMercuryFixture().getApiClientFactory()\n\t\t\t)\n\t\t}\n\n\t\treturn this.skillFixture\n\t}\n\n\tprotected static resolveHashSprucePath(...filePath: string[]) {\n\t\treturn diskUtil.resolveHashSprucePath(this.cwd, ...filePath)\n\t}\n\n\tprotected static getFeatureInstaller(options?: Partial<FeatureOptions>) {\n\t\tif (!this.featureInstaller) {\n\t\t\tconst serviceFactory = this.ServiceFactory()\n\t\t\tconst storeFactory = this.StoreFactory(options)\n\t\t\tconst emitter = this.getEmitter()\n\t\t\tconst apiClientFactory = this.getMercuryFixture().getApiClientFactory()\n\n\t\t\tconst actionExecuter = this.ActionExecuter()\n\n\t\t\tthis.featureInstaller = FeatureInstallerFactory.WithAllFeatures({\n\t\t\t\tcwd: this.cwd,\n\t\t\t\tserviceFactory,\n\t\t\t\tstoreFactory,\n\t\t\t\tui: this.ui,\n\t\t\t\temitter,\n\t\t\t\tapiClientFactory,\n\t\t\t\tactionExecuter,\n\t\t\t\t...options,\n\t\t\t})\n\t\t}\n\n\t\treturn this.featureInstaller\n\t}\n\n\tprotected static StoreFactory(options?: Partial<StoreFactoryOptions>) {\n\t\tconst serviceFactory = this.ServiceFactory()\n\n\t\treturn new StoreFactory({\n\t\t\tcwd: this.cwd,\n\t\t\tserviceFactory,\n\t\t\thomeDir: this.homeDir,\n\t\t\tapiClientFactory: this.getMercuryFixture().getApiClientFactory(),\n\t\t\temitter: this.getEmitter(),\n\t\t\t...options,\n\t\t})\n\t}\n\n\tprotected static Store<C extends StoreCode>(\n\t\tcode: C,\n\t\toptions?: StoreFactoryMethodOptions\n\t): StoreMap[C] {\n\t\treturn this.StoreFactory().Store(code, {\n\t\t\tcwd: this.cwd,\n\t\t\t...options,\n\t\t})\n\t}\n\n\tprotected static async waitForInput() {\n\t\treturn this.ui.waitForInput()\n\t}\n\n\tprotected static async assertIsFeatureInstalled(code: FeatureCode) {\n\t\tconst featureInstaller = this.getFeatureInstaller()\n\t\tconst isInstalled = await featureInstaller.isInstalled(code)\n\n\t\tassert.isTrue(isInstalled)\n\t}\n\n\tprotected static async assertValidActionResponseFiles(\n\t\tresults: FeatureActionResponse\n\t) {\n\t\tfor (const file of results.files ?? []) {\n\t\t\tconst checker = this.Service('typeChecker')\n\t\t\tawait checker.check(file.path)\n\t\t}\n\n\t\t// await Promise.all(\n\t\t// \t(results.files ?? []).map((file) => {\n\t\t// \t\tconst checker = this.Service('typeChecker')\n\t\t// \t\treturn checker.check(file.path)\n\t\t// \t})\n\t\t// )\n\t}\n\n\tprotected static async connectToApi(options?: ApiClientFactoryOptions) {\n\t\treturn this.getMercuryFixture().connectToApi(options)\n\t}\n\n\tprotected static async openInVsCode(options?: {\n\t\tfile?: string\n\t\tdir?: string\n\t\ttimeout?: number\n\t}) {\n\t\tawait this.Action('vscode', 'setup').execute({ all: true })\n\n\t\tawait this.Service('command').execute(\n\t\t\t`code ${options?.file ?? options?.dir ?? this.cwd}`\n\t\t)\n\t\tawait this.wait(options?.timeout ?? 99999999)\n\t}\n\n\tprotected static async openInFinder(options?: {\n\t\tfile?: string\n\t\tdir?: string\n\t\ttimeout?: number\n\t}) {\n\t\tawait this.Service('command').execute(\n\t\t\t`open ${options?.file ?? options?.dir ?? this.cwd}`\n\t\t)\n\t\tawait this.wait(options?.timeout ?? 99999999)\n\t}\n\n\tprotected static log(...args: any[]) {\n\t\ttestUtil.log(...args)\n\t}\n\n\tprotected static Action<\n\t\tAction extends AbstractAction = AbstractAction,\n\t\tF extends FeatureCode = FeatureCode\n\t>(featureCode: F, actionCode: string, options?: ExecuterOptions): Action {\n\t\tconst executer = this.ActionExecuter({\n\t\t\tshouldThrowOnListenerError: true,\n\t\t\t...options,\n\t\t}).Action(featureCode, actionCode)\n\n\t\treturn executer as any\n\t}\n\n\tprotected static ActionExecuter(options?: ExecuterOptions) {\n\t\tconst serviceFactory = this.ServiceFactory()\n\t\tconst writerFactory = this.WriterFactory()\n\n\t\tconst emitter = this.getEmitter()\n\n\t\tconst actionFactory = new ActionFactory({\n\t\t\twriterFactory,\n\t\t\tui: this.ui,\n\t\t\temitter,\n\t\t\tapiClientFactory: this.getMercuryFixture().getApiClientFactory(),\n\t\t\tcwd: this.cwd,\n\t\t\tserviceFactory,\n\t\t\tstoreFactory: this.StoreFactory(),\n\t\t\ttemplates,\n\t\t\toptionOverrides: {\n\t\t\t\t'sync.schemas': {\n\t\t\t\t\tshouldInstallMissingDependencies: true,\n\t\t\t\t},\n\t\t\t\t...options?.optionOverrides,\n\t\t\t},\n\t\t})\n\n\t\tconst executer = new ActionExecuter({\n\t\t\tui: this.ui,\n\t\t\temitter,\n\t\t\tactionFactory,\n\t\t\tfeatureInstallerFactory: () => {\n\t\t\t\treturn this.getFeatureInstaller()\n\t\t\t},\n\t\t\tshouldAutoHandleDependencies: false,\n\t\t\t...options,\n\t\t})\n\n\t\treturn executer\n\t}\n\n\tprotected static selectOptionBasedOnLabel(label: string) {\n\t\tconst last = this.ui.getLastInvocation()\n\t\tassert.doesInclude(last.options.options.choices, {\n\t\t\tlabel,\n\t\t})\n\n\t\tconst match = last.options.options.choices.find(\n\t\t\t(o: any) => o.label === label\n\t\t)\n\n\t\tvoid this.ui.sendInput(`${match.value}`)\n\t}\n}\n"],"file":"AbstractCliTest.js"}
|
|
1
|
+
{"version":3,"file":"AbstractCliTest.js","names":["AbstractCliTest","cleanTestDirsAndFiles","LintService","disableLinting","ImportService","setCacheDir","diskUtil","createRandomTempDir","enableCaching","process","env","ENABLE_INSTALL_ENTERTAINMENT","originalEnv","testUtil","startLogTimer","SchemaRegistry","getInstance","forgetAllSchemas","cwd","freshTmpDir","homeDir","emitter","undefined","featureInstaller","OnboardingStore","overrideCwd","ui","reset","invocations","setCursorPosition","x","y","clearFixtures","clearCache","SkillStore","clearCurrentSkill","EventStore","CommandService","clearMockResponses","MercuryClientFactory","setIsTestMode","commandFaker","CommandFaker","organizationFixture","clearAllOrgs","mercuryFixture","disconnectAll","_ui","isWaitingForInput","Error","doesDirExist","shouldClearCache","deleteDir","shouldCleanupTestSkillDirs","FeatureFixture","deleteOldSkillDirs","pattern","resolveTestPath","matches","match","deleteFile","personFixture","skillFixture","viewFixture","tmpDirectory","resolveTestDir","uuid","v4","fs","ensureDirSync","SpyInterface","CliGlobalEmitter","Emitter","pathAfterTestDirsAndFiles","pathUtil","join","cliRoot","options","Cli","fixture","linkLocalPackages","type","sf","ServiceFactory","Service","getEmitter","serviceFactory","apiClientFactory","getMercuryFixture","getApiClientFactory","getFeatureInstaller","MercuryFixture","PersonFixture","writerFactory","WriterFactory","viewWriter","Writer","fileDescriptions","ViewFixture","Action","templates","settings","execute","promise","waitForInput","sendInput","results","OrganizationFixture","people","StoreFactory","SkillFixture","filePath","resolveHashSprucePath","storeFactory","actionExecuter","ActionExecuter","FeatureInstallerFactory","WithAllFeatures","code","Store","isInstalled","assert","isTrue","files","file","checker","check","path","connectToApi","all","dir","wait","timeout","log","featureCode","actionCode","executer","shouldThrowOnListenerError","actionFactory","ActionFactory","optionOverrides","shouldInstallMissingDependencies","featureInstallerFactory","shouldAutoHandleDependencies","label","last","getLastInvocation","doesInclude","choices","find","o","value","AbstractSpruceTest","__dirname"],"sources":["../../src/tests/AbstractCliTest.ts"],"sourcesContent":["import pathUtil from 'path'\nimport { MercuryClientFactory } from '@sprucelabs/mercury-client'\nimport { SchemaRegistry } from '@sprucelabs/schema'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { templates } from '@sprucelabs/spruce-templates'\nimport AbstractSpruceTest, { assert } from '@sprucelabs/test'\nimport fs from 'fs-extra'\nimport globby from 'globby'\nimport * as uuid from 'uuid'\nimport { CliBootOptions } from '../cli'\nimport AbstractAction from '../features/AbstractAction'\nimport { FeatureOptions } from '../features/AbstractFeature'\nimport ActionExecuter, {\n\tActionExecuterOptions,\n} from '../features/ActionExecuter'\nimport ActionFactory from '../features/ActionFactory'\nimport EventStore from '../features/event/stores/EventStore'\nimport FeatureInstaller from '../features/FeatureInstaller'\nimport FeatureInstallerFactory from '../features/FeatureInstallerFactory'\nimport { FeatureActionResponse, FeatureCode } from '../features/features.types'\nimport OnboardingStore from '../features/onboard/stores/OnboardingStore'\nimport SkillStore from '../features/skill/stores/SkillStore'\nimport CliGlobalEmitter, { GlobalEmitter } from '../GlobalEmitter'\nimport SpyInterface from '../interfaces/SpyInterface'\nimport CommandService from '../services/CommandService'\nimport ImportService from '../services/ImportService'\nimport LintService from '../services/LintService'\nimport ServiceFactory, { Service, ServiceMap } from '../services/ServiceFactory'\nimport StoreFactory, {\n\tStoreCode,\n\tStoreFactoryMethodOptions,\n\tStoreFactoryOptions,\n\tStoreMap,\n} from '../stores/StoreFactory'\nimport { ApiClientFactoryOptions } from '../types/apiClient.types'\nimport { OptionOverrides } from '../types/cli.types'\nimport WriterFactory from '../writers/WriterFactory'\nimport CommandFaker from './CommandFaker'\nimport FeatureFixture, {\n\tFeatureFixtureOptions,\n} from './fixtures/FeatureFixture'\nimport MercuryFixture from './fixtures/MercuryFixture'\nimport OrganizationFixture from './fixtures/OrganizationFixture'\nimport PersonFixture from './fixtures/PersonFixture'\nimport SkillFixture from './fixtures/SkillFixture'\nimport ViewFixture from './fixtures/ViewFixture'\nimport testUtil from './utilities/test.utility'\n\ntype ExecuterOptions = Partial<ActionExecuterOptions> & {\n\toptionOverrides?: OptionOverrides\n}\n\nexport default abstract class AbstractCliTest extends AbstractSpruceTest {\n\tprotected static cliRoot = pathUtil.join(__dirname, '..')\n\tprotected static homeDir: string\n\tprotected static commandFaker: CommandFaker\n\n\tprivate static _ui: SpyInterface\n\tprivate static emitter?: GlobalEmitter\n\tprivate static mercuryFixture?: MercuryFixture\n\tprivate static personFixture?: PersonFixture\n\tprivate static organizationFixture?: OrganizationFixture\n\tprivate static skillFixture?: SkillFixture\n\tprivate static featureInstaller?: FeatureInstaller\n\tprivate static viewFixture?: ViewFixture\n\tprivate static originalEnv: { [x: string]: string | undefined }\n\n\tprotected static async beforeAll() {\n\t\tawait super.beforeAll()\n\t\tawait this.cleanTestDirsAndFiles()\n\n\t\tLintService.disableLinting()\n\n\t\tImportService.setCacheDir(diskUtil.createRandomTempDir())\n\t\tImportService.enableCaching()\n\n\t\tprocess.env.ENABLE_INSTALL_ENTERTAINMENT = 'false'\n\n\t\tthis.originalEnv = { ...process.env }\n\t}\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\n\t\t//@ts-ignore\n\t\tprocess.env = { ...this.originalEnv }\n\n\t\ttestUtil.startLogTimer()\n\n\t\tSchemaRegistry.getInstance().forgetAllSchemas()\n\n\t\tthis.cwd = this.freshTmpDir()\n\t\tthis.homeDir = this.freshTmpDir()\n\n\t\tthis.emitter = undefined\n\t\tthis.featureInstaller = undefined\n\n\t\tOnboardingStore.overrideCwd(diskUtil.createRandomTempDir())\n\n\t\tthis.ui.reset()\n\t\tthis.ui.invocations = []\n\t\tthis.ui.setCursorPosition({ x: 0, y: 0 })\n\n\t\tthis.clearFixtures()\n\n\t\tImportService.clearCache()\n\t\tSkillStore.clearCurrentSkill()\n\t\tEventStore.clearCache()\n\t\tCommandService.clearMockResponses()\n\t\tMercuryClientFactory.reset()\n\t\tMercuryClientFactory.setIsTestMode(false)\n\n\t\tthis.commandFaker = new CommandFaker()\n\t}\n\n\tprotected static async afterEach() {\n\t\tawait super.afterEach()\n\n\t\tawait this.organizationFixture?.clearAllOrgs()\n\t\tawait this.mercuryFixture?.disconnectAll()\n\n\t\tthis.clearFixtures()\n\n\t\tif (this._ui?.isWaitingForInput()) {\n\t\t\tthrow new Error(\n\t\t\t\t`Terminal interface is waiting for input. Make sure you are invoking this.term.sendInput() as many times as needed.`\n\t\t\t)\n\t\t}\n\n\t\tif (diskUtil.doesDirExist(this.cwd) && testUtil.shouldClearCache()) {\n\t\t\tdiskUtil.deleteDir(this.cwd)\n\t\t}\n\n\t\tif (diskUtil.doesDirExist(this.homeDir) && testUtil.shouldClearCache()) {\n\t\t\tdiskUtil.deleteDir(this.homeDir)\n\t\t}\n\t}\n\n\tprotected static async afterAll() {\n\t\tawait super.afterAll()\n\t\tif (testUtil.shouldCleanupTestSkillDirs()) {\n\t\t\tFeatureFixture.deleteOldSkillDirs()\n\t\t}\n\t}\n\n\tprivate static async cleanTestDirsAndFiles() {\n\t\tconst pattern = this.resolveTestPath('**/*.d.ts')\n\t\tconst matches = await globby(pattern)\n\n\t\tfor (const match of matches) {\n\t\t\tdiskUtil.deleteFile(match)\n\t\t}\n\t}\n\n\tprivate static clearFixtures() {\n\t\tthis.emitter = undefined\n\t\tthis.mercuryFixture = undefined\n\t\tthis.organizationFixture = undefined\n\t\tthis.personFixture = undefined\n\t\tthis.skillFixture = undefined\n\t\tthis.viewFixture = undefined\n\t}\n\n\tprotected static freshTmpDir() {\n\t\tconst tmpDirectory = testUtil.resolveTestDir(uuid.v4())\n\t\tfs.ensureDirSync(tmpDirectory)\n\t\treturn tmpDirectory\n\t}\n\n\tprotected static get ui() {\n\t\tif (!this._ui) {\n\t\t\tthis._ui = new SpyInterface()\n\t\t}\n\n\t\treturn this._ui\n\t}\n\n\tprotected static getEmitter() {\n\t\tif (!this.emitter) {\n\t\t\tthis.emitter = CliGlobalEmitter.Emitter()\n\t\t}\n\t\treturn this.emitter\n\t}\n\n\tprotected static resolveTestPath(...pathAfterTestDirsAndFiles: string[]) {\n\t\treturn pathUtil.join(\n\t\t\tthis.cliRoot,\n\t\t\t'__tests__',\n\t\t\t'testDirsAndFiles',\n\t\t\t...pathAfterTestDirsAndFiles\n\t\t)\n\t}\n\n\tprotected static async Cli(options?: CliBootOptions) {\n\t\treturn this.FeatureFixture(options).Cli({\n\t\t\tcwd: this.cwd,\n\t\t\thomeDir: this.homeDir,\n\t\t\t...(options ?? {}),\n\t\t})\n\t}\n\n\tprotected static async linkLocalPackages() {\n\t\tconst fixture = this.FeatureFixture()\n\t\tawait fixture.linkLocalPackages()\n\t}\n\n\tprotected static Service<S extends Service>(\n\t\ttype: S,\n\t\tcwd?: string\n\t): ServiceMap[S] {\n\t\tconst sf = this.ServiceFactory()\n\t\treturn sf.Service(cwd ?? this.cwd, type)\n\t}\n\n\tprotected static ServiceFactory() {\n\t\treturn new ServiceFactory()\n\t}\n\n\tprotected static FeatureFixture(options?: Partial<FeatureFixtureOptions>) {\n\t\tconst emitter = options?.emitter ?? this.getEmitter()\n\n\t\treturn new FeatureFixture({\n\t\t\tcwd: this.cwd,\n\t\t\tserviceFactory: this.ServiceFactory(),\n\t\t\tui: this.ui,\n\t\t\temitter,\n\t\t\tapiClientFactory: this.getMercuryFixture().getApiClientFactory(),\n\t\t\tfeatureInstaller: this.getFeatureInstaller({ emitter }),\n\t\t\t...options,\n\t\t})\n\t}\n\n\tprotected static getMercuryFixture() {\n\t\tif (!this.mercuryFixture) {\n\t\t\tthis.mercuryFixture = new MercuryFixture(this.cwd, this.ServiceFactory())\n\t\t}\n\n\t\treturn this.mercuryFixture\n\t}\n\n\tprotected static get people() {\n\t\tif (!this.personFixture) {\n\t\t\tthis.personFixture = new PersonFixture(\n\t\t\t\tthis.getMercuryFixture().getApiClientFactory()\n\t\t\t)\n\t\t}\n\n\t\treturn this.personFixture\n\t}\n\n\tprotected static getViewFixture() {\n\t\tif (!this.viewFixture) {\n\t\t\tconst writerFactory = this.WriterFactory()\n\n\t\t\tconst viewWriter = writerFactory.Writer('view', { fileDescriptions: [] })\n\t\t\tthis.viewFixture = new ViewFixture(\n\t\t\t\tthis.cwd,\n\t\t\t\tviewWriter,\n\t\t\t\tthis.Action('view', 'sync')\n\t\t\t)\n\t\t}\n\n\t\treturn this.viewFixture\n\t}\n\n\tprivate static WriterFactory() {\n\t\treturn new WriterFactory({\n\t\t\ttemplates,\n\t\t\tui: this.ui,\n\t\t\tsettings: this.Service('settings'),\n\t\t})\n\t}\n\n\tprotected static async skipInstallSkillPrompts<\n\t\tE extends () => Promise<FeatureActionResponse>\n\t>(\n\t\texecute?: E\n\t): Promise<E extends undefined ? undefined : FeatureActionResponse> {\n\t\tconst promise = execute?.()\n\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput('n')\n\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput('')\n\n\t\tconst results = await promise\n\n\t\treturn results as any\n\t}\n\n\tprotected static getOrganizationFixture() {\n\t\tif (!this.organizationFixture) {\n\t\t\tthis.organizationFixture = new OrganizationFixture(\n\t\t\t\tthis.people,\n\t\t\t\tthis.StoreFactory()\n\t\t\t)\n\t\t}\n\n\t\treturn this.organizationFixture\n\t}\n\n\tprotected static getSkillFixture() {\n\t\tif (!this.skillFixture) {\n\t\t\tthis.skillFixture = new SkillFixture(\n\t\t\t\tthis.people,\n\t\t\t\tthis.StoreFactory(),\n\t\t\t\tthis.getMercuryFixture().getApiClientFactory()\n\t\t\t)\n\t\t}\n\n\t\treturn this.skillFixture\n\t}\n\n\tprotected static resolveHashSprucePath(...filePath: string[]) {\n\t\treturn diskUtil.resolveHashSprucePath(this.cwd, ...filePath)\n\t}\n\n\tprotected static getFeatureInstaller(options?: Partial<FeatureOptions>) {\n\t\tif (!this.featureInstaller) {\n\t\t\tconst serviceFactory = this.ServiceFactory()\n\t\t\tconst storeFactory = this.StoreFactory(options)\n\t\t\tconst emitter = this.getEmitter()\n\t\t\tconst apiClientFactory = this.getMercuryFixture().getApiClientFactory()\n\n\t\t\tconst actionExecuter = this.ActionExecuter()\n\n\t\t\tthis.featureInstaller = FeatureInstallerFactory.WithAllFeatures({\n\t\t\t\tcwd: this.cwd,\n\t\t\t\tserviceFactory,\n\t\t\t\tstoreFactory,\n\t\t\t\tui: this.ui,\n\t\t\t\temitter,\n\t\t\t\tapiClientFactory,\n\t\t\t\tactionExecuter,\n\t\t\t\t...options,\n\t\t\t})\n\t\t}\n\n\t\treturn this.featureInstaller\n\t}\n\n\tprotected static StoreFactory(options?: Partial<StoreFactoryOptions>) {\n\t\tconst serviceFactory = this.ServiceFactory()\n\n\t\treturn new StoreFactory({\n\t\t\tcwd: this.cwd,\n\t\t\tserviceFactory,\n\t\t\thomeDir: this.homeDir,\n\t\t\tapiClientFactory: this.getMercuryFixture().getApiClientFactory(),\n\t\t\temitter: this.getEmitter(),\n\t\t\t...options,\n\t\t})\n\t}\n\n\tprotected static Store<C extends StoreCode>(\n\t\tcode: C,\n\t\toptions?: StoreFactoryMethodOptions\n\t): StoreMap[C] {\n\t\treturn this.StoreFactory().Store(code, {\n\t\t\tcwd: this.cwd,\n\t\t\t...options,\n\t\t})\n\t}\n\n\tprotected static async waitForInput() {\n\t\treturn this.ui.waitForInput()\n\t}\n\n\tprotected static async assertIsFeatureInstalled(code: FeatureCode) {\n\t\tconst featureInstaller = this.getFeatureInstaller()\n\t\tconst isInstalled = await featureInstaller.isInstalled(code)\n\n\t\tassert.isTrue(isInstalled)\n\t}\n\n\tprotected static async assertValidActionResponseFiles(\n\t\tresults: FeatureActionResponse\n\t) {\n\t\tfor (const file of results.files ?? []) {\n\t\t\tconst checker = this.Service('typeChecker')\n\t\t\tawait checker.check(file.path)\n\t\t}\n\n\t\t// await Promise.all(\n\t\t// \t(results.files ?? []).map((file) => {\n\t\t// \t\tconst checker = this.Service('typeChecker')\n\t\t// \t\treturn checker.check(file.path)\n\t\t// \t})\n\t\t// )\n\t}\n\n\tprotected static async connectToApi(options?: ApiClientFactoryOptions) {\n\t\treturn this.getMercuryFixture().connectToApi(options)\n\t}\n\n\tprotected static async openInVsCode(options?: {\n\t\tfile?: string\n\t\tdir?: string\n\t\ttimeout?: number\n\t}) {\n\t\tawait this.Action('vscode', 'setup').execute({ all: true })\n\n\t\tawait this.Service('command').execute(\n\t\t\t`code ${options?.file ?? options?.dir ?? this.cwd}`\n\t\t)\n\t\tawait this.wait(options?.timeout ?? 99999999)\n\t}\n\n\tprotected static async openInFinder(options?: {\n\t\tfile?: string\n\t\tdir?: string\n\t\ttimeout?: number\n\t}) {\n\t\tawait this.Service('command').execute(\n\t\t\t`open ${options?.file ?? options?.dir ?? this.cwd}`\n\t\t)\n\t\tawait this.wait(options?.timeout ?? 99999999)\n\t}\n\n\tprotected static log(...args: any[]) {\n\t\ttestUtil.log(...args)\n\t}\n\n\tprotected static Action<\n\t\tAction extends AbstractAction = AbstractAction,\n\t\tF extends FeatureCode = FeatureCode\n\t>(featureCode: F, actionCode: string, options?: ExecuterOptions): Action {\n\t\tconst executer = this.ActionExecuter({\n\t\t\tshouldThrowOnListenerError: true,\n\t\t\t...options,\n\t\t}).Action(featureCode, actionCode)\n\n\t\treturn executer as any\n\t}\n\n\tprotected static ActionExecuter(options?: ExecuterOptions) {\n\t\tconst serviceFactory = this.ServiceFactory()\n\t\tconst writerFactory = this.WriterFactory()\n\n\t\tconst emitter = this.getEmitter()\n\n\t\tconst actionFactory = new ActionFactory({\n\t\t\twriterFactory,\n\t\t\tui: this.ui,\n\t\t\temitter,\n\t\t\tapiClientFactory: this.getMercuryFixture().getApiClientFactory(),\n\t\t\tcwd: this.cwd,\n\t\t\tserviceFactory,\n\t\t\tstoreFactory: this.StoreFactory(),\n\t\t\ttemplates,\n\t\t\toptionOverrides: {\n\t\t\t\t'sync.schemas': {\n\t\t\t\t\tshouldInstallMissingDependencies: true,\n\t\t\t\t},\n\t\t\t\t...options?.optionOverrides,\n\t\t\t},\n\t\t})\n\n\t\tconst executer = new ActionExecuter({\n\t\t\tui: this.ui,\n\t\t\temitter,\n\t\t\tactionFactory,\n\t\t\tfeatureInstallerFactory: () => {\n\t\t\t\treturn this.getFeatureInstaller()\n\t\t\t},\n\t\t\tshouldAutoHandleDependencies: false,\n\t\t\t...options,\n\t\t})\n\n\t\treturn executer\n\t}\n\n\tprotected static selectOptionBasedOnLabel(label: string) {\n\t\tconst last = this.ui.getLastInvocation()\n\t\tassert.doesInclude(last.options.options.choices, {\n\t\t\tlabel,\n\t\t})\n\n\t\tconst match = last.options.options.choices.find(\n\t\t\t(o: any) => o.label === label\n\t\t)\n\n\t\tvoid this.ui.sendInput(`${match.value}`)\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"AbstractErrorTest.js","names":["AbstractErrorTest","resolveHashSprucePath","cacheKey","fixture","FeatureFixture","installFeatures","code","options","name","description","cli","AbstractCliTest"],"sources":["../../src/tests/AbstractErrorTest.ts"],"sourcesContent":["import AbstractCliTest from './AbstractCliTest'\n\nexport default abstract class AbstractErrorTest extends AbstractCliTest {\n\tprotected static get errorTypesFile() {\n\t\treturn this.resolveHashSprucePath('errors', 'errors.types.ts')\n\t}\n\n\tprotected static async installErrorFeature(cacheKey?: string) {\n\t\tconst fixture = this.FeatureFixture()\n\t\tconst cli = await fixture.installFeatures(\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\tcode: 'skill',\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tname: 'testing errors',\n\t\t\t\t\t\tdescription: 'this is also a great test!',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tcode: 'error',\n\t\t\t\t},\n\t\t\t],\n\t\t\tcacheKey\n\t\t)\n\n\t\treturn cli\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;IAE8BA,iB;;;;;;;;;;;;SAC7B,eAAsC;MACrC,OAAO,KAAKC,qBAAL,CAA2B,QAA3B,EAAqC,iBAArC,CAAP;IACA;;;;+GAED,iBAA2CC,QAA3C;QAAA;QAAA;UAAA;YAAA;cAAA;gBACOC,OADP,GACiB,KAAKC,cAAL,EADjB;gBAAA;gBAAA,OAEmBD,OAAO,CAACE,eAAR,CACjB,CACC;kBACCC,IAAI,EAAE,OADP;kBAECC,OAAO,EAAE;oBACRC,IAAI,EAAE,gBADE;oBAERC,WAAW,EAAE;kBAFL;gBAFV,CADD,EAQC;kBACCH,IAAI,EAAE;gBADP,CARD,CADiB,EAajBJ,QAbiB,CAFnB;;cAAA;gBAEOQ,GAFP;gBAAA,iCAkBQA,GAlBR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EALuDC,4B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"AbstractEventTest.js","names":["AbstractEventTest","cacheKey","fixture","FeatureFixture","installFeatures","code","options","name","description","cli","registerCurrentSkillAndInstallToOrg","results","skillFixture","orgFixture","org","seedDemoSkill","skill2","installSkillAtOrganization","id","cliPromise","installEventFeature","getSkillFixture","getOrganizationFixture","seedDemoOrg","registerCurrentSkill","skill","currentSkill","eventName","source","resolveTestPath","dest","resolvePath","version","versionUtil","latestVersionAtPath","dirValue","diskUtil","deleteDir","copyDir","AbstractCliTest"],"sources":["../../src/tests/AbstractEventTest.ts"],"sourcesContent":["import { diskUtil, versionUtil } from '@sprucelabs/spruce-skill-utils'\nimport AbstractCliTest from './AbstractCliTest'\n\nexport default abstract class AbstractEventTest extends AbstractCliTest {\n\tprotected static async installEventFeature(cacheKey?: string) {\n\t\tconst fixture = this.FeatureFixture()\n\t\tconst cli = await fixture.installFeatures(\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\tcode: 'skill',\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tname: 'testing events',\n\t\t\t\t\t\tdescription: 'this too, is a great test!',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tcode: 'event',\n\t\t\t\t},\n\t\t\t],\n\t\t\tcacheKey\n\t\t)\n\n\t\treturn cli\n\t}\n\n\tprotected static async seedDummySkillRegisterCurrentSkillAndInstallToOrg(\n\t\tcacheKey = 'events'\n\t) {\n\t\tconst results = await this.registerCurrentSkillAndInstallToOrg(cacheKey)\n\n\t\tconst { skillFixture, orgFixture, org } = results\n\n\t\tconst skill2 = await skillFixture.seedDemoSkill({\n\t\t\tname: 'my second skill',\n\t\t})\n\n\t\tawait orgFixture.installSkillAtOrganization(skill2.id, org.id)\n\n\t\treturn { ...results, skill2 }\n\t}\n\n\tprotected static async registerCurrentSkillAndInstallToOrg(\n\t\tcacheKey = 'events'\n\t) {\n\t\tconst cliPromise = this.installEventFeature(cacheKey)\n\t\tconst skillFixture = this.getSkillFixture()\n\t\tconst orgFixture = this.getOrganizationFixture()\n\n\t\tconst org = await orgFixture.seedDemoOrg({ name: 'my org' })\n\t\tconst cli = await cliPromise\n\n\t\tconst skill = await skillFixture.registerCurrentSkill({\n\t\t\tname: 'current skill',\n\t\t})\n\n\t\tawait orgFixture.installSkillAtOrganization(skill.id, org.id)\n\n\t\treturn { skillFixture, currentSkill: skill, cli, org, orgFixture }\n\t}\n\n\tprotected static async copyEventBuildersAndPermissions(eventName: string) {\n\t\tconst source = this.resolveTestPath('event_with_emit_and_response_payloads')\n\t\tlet dest = this.resolvePath('src', 'events', eventName)\n\t\tconst version = versionUtil.latestVersionAtPath(dest)\n\t\tdest = this.resolvePath(dest, version.dirValue)\n\t\tdiskUtil.deleteDir(dest)\n\n\t\tawait diskUtil.copyDir(source, dest)\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"AbstractSchemaTest.js","names":["AbstractSchemaTest","resolveHashSprucePath","cacheKey","syncOptions","installSchemaFeature","cli","Action","execute","schemas","expected","map","schema","id","name","version","CORE_SCHEMA_VERSION","constValue","namespace","description","expectedJSon","JSON","stringify","cleanedExpected","parse","sortSchemas","sort","a","b","bootOptions","fixture","FeatureFixture","installFeatures","code","options","graphicsInterface","ui","expectedHealth","skill","status","expectedInstalledSkills","Cli","linkLocalPackages","checkHealth","health","assert","isEqualDeep","packageContents","diskUtil","readFile","resolvePath","doesInclude","installer","getFeatureInstaller","isInstalled","isTrue","AbstractCliTest"],"sources":["../../src/tests/AbstractSchemaTest.ts"],"sourcesContent":["import { Schema } from '@sprucelabs/schema'\nimport {\n\tCORE_SCHEMA_VERSION,\n\tdiskUtil,\n\tHealthCheckResults,\n\tSchemaHealthCheckItem,\n} from '@sprucelabs/spruce-skill-utils'\nimport { assert } from '@sprucelabs/test'\nimport { CliBootOptions } from '../cli'\nimport { FeatureCode } from '../features/features.types'\nimport AbstractCliTest from './AbstractCliTest'\n\nexport default abstract class AbstractSchemaTest extends AbstractCliTest {\n\tprotected static get schemaTypesFile() {\n\t\treturn this.resolveHashSprucePath('schemas', 'schemas.types.ts')\n\t}\n\n\tprotected static get coreSchemaTypesFile() {\n\t\treturn this.resolveHashSprucePath('schemas', 'core.schemas.types.ts')\n\t}\n\n\tprotected static async syncSchemas(cacheKey?: string, syncOptions = {}) {\n\t\tconst cli = await this.installSchemaFeature(cacheKey)\n\n\t\tawait this.Action('schema', 'sync').execute(syncOptions)\n\n\t\treturn cli\n\t}\n\n\tprotected static generateExpectedHealthSchemas(schemas: Schema[]) {\n\t\tconst expected = schemas.map((schema) => ({\n\t\t\t// @ts-ignore\n\t\t\tid: schema.id,\n\t\t\t// @ts-ignore\n\t\t\tname: schema.name,\n\t\t\tversion: schema.version ?? CORE_SCHEMA_VERSION.constValue,\n\t\t\tnamespace: schema.namespace,\n\t\t\t// @ts-ignore\n\t\t\tdescription: schema.description,\n\t\t}))\n\n\t\tconst expectedJSon = JSON.stringify(expected)\n\t\tconst cleanedExpected = JSON.parse(expectedJSon)\n\n\t\treturn this.sortSchemas(cleanedExpected) as SchemaHealthCheckItem['schemas']\n\t}\n\n\tprotected static sortSchemas(schemas: Schema[]) {\n\t\treturn schemas.sort((a, b) => (a.id > b.id ? -1 : 1))\n\t}\n\n\tprotected static async installSchemaFeature(\n\t\tcacheKey?: string,\n\t\tbootOptions?: CliBootOptions\n\t) {\n\t\tconst fixture = this.FeatureFixture()\n\n\t\tconst cli = await fixture.installFeatures(\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\tcode: 'skill',\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tname: 'testing',\n\t\t\t\t\t\tdescription: 'this is a great test!',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tcode: 'schema',\n\t\t\t\t},\n\t\t\t],\n\t\t\tcacheKey,\n\t\t\t{ ...(bootOptions || {}), graphicsInterface: this.ui }\n\t\t)\n\n\t\treturn cli\n\t}\n\n\tprotected static async assertHealthySkillNamed(\n\t\tname: string,\n\t\texpectedHealth: HealthCheckResults = { skill: { status: 'passed' } },\n\t\texpectedInstalledSkills: FeatureCode[] = ['skill']\n\t) {\n\t\tconst cli = await this.Cli()\n\t\tawait this.linkLocalPackages()\n\n\t\tconst health = await cli.checkHealth()\n\n\t\t// @ts-ignore\n\t\tif (health.schema?.schemas) {\n\t\t\t//@ts-ignore\n\t\t\thealth.schema.schemas = this.sortSchemas(health.schema.schemas)\n\t\t}\n\n\t\tassert.isEqualDeep(health, expectedHealth)\n\n\t\tconst packageContents = diskUtil.readFile(this.resolvePath('package.json'))\n\t\tassert.doesInclude(packageContents, name)\n\n\t\tconst installer = this.getFeatureInstaller()\n\n\t\tfor (const code of expectedInstalledSkills) {\n\t\t\tconst isInstalled = await installer.isInstalled(code)\n\t\t\tassert.isTrue(isInstalled)\n\t\t}\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AACA;;AAMA;;AAGA;;;;;;;;;;;;;;;;IAE8BA,kB;;;;;;;;;;;;SAC7B,eAAuC;MACtC,OAAO,KAAKC,qBAAL,CAA2B,SAA3B,EAAsC,kBAAtC,CAAP;IACA;;;SAED,eAA2C;MAC1C,OAAO,KAAKA,qBAAL,CAA2B,SAA3B,EAAsC,uBAAtC,CAAP;IACA;;;;uGAED,iBAAmCC,QAAnC;QAAA;QAAA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAsDC,WAAtD,2DAAoE,EAApE;gBAAA;gBAAA,OACmB,KAAKC,oBAAL,CAA0BF,QAA1B,CADnB;;cAAA;gBACOG,GADP;gBAAA;gBAAA,OAGO,KAAKC,MAAL,CAAY,QAAZ,EAAsB,MAAtB,EAA8BC,OAA9B,CAAsCJ,WAAtC,CAHP;;cAAA;gBAAA,iCAKQE,GALR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;WAQA,uCAA+CG,OAA/C,EAAkE;MACjE,IAAMC,QAAQ,GAAGD,OAAO,CAACE,GAAR,CAAY,UAACC,MAAD;QAAA;;QAAA,OAAa;UACzC;UACAC,EAAE,EAAED,MAAM,CAACC,EAF8B;UAGzC;UACAC,IAAI,EAAEF,MAAM,CAACE,IAJ4B;UAKzCC,OAAO,qBAAEH,MAAM,CAACG,OAAT,6DAAoBC,sCAAoBC,UALN;UAMzCC,SAAS,EAAEN,MAAM,CAACM,SANuB;UAOzC;UACAC,WAAW,EAAEP,MAAM,CAACO;QARqB,CAAb;MAAA,CAAZ,CAAjB;MAWA,IAAMC,YAAY,GAAGC,IAAI,CAACC,SAAL,CAAeZ,QAAf,CAArB;MACA,IAAMa,eAAe,GAAGF,IAAI,CAACG,KAAL,CAAWJ,YAAX,CAAxB;MAEA,OAAO,KAAKK,WAAL,CAAiBF,eAAjB,CAAP;IACA;;;WAED,qBAA6Bd,OAA7B,EAAgD;MAC/C,OAAOA,OAAO,CAACiB,IAAR,CAAa,UAACC,CAAD,EAAIC,CAAJ;QAAA,OAAWD,CAAC,CAACd,EAAF,GAAOe,CAAC,CAACf,EAAT,GAAc,CAAC,CAAf,GAAmB,CAA9B;MAAA,CAAb,CAAP;IACA;;;;gHAED,kBACCV,QADD,EAEC0B,WAFD;QAAA;QAAA;UAAA;YAAA;cAAA;gBAIOC,OAJP,GAIiB,KAAKC,cAAL,EAJjB;gBAAA;gBAAA,OAMmBD,OAAO,CAACE,eAAR,CACjB,CACC;kBACCC,IAAI,EAAE,OADP;kBAECC,OAAO,EAAE;oBACRpB,IAAI,EAAE,SADE;oBAERK,WAAW,EAAE;kBAFL;gBAFV,CADD,EAQC;kBACCc,IAAI,EAAE;gBADP,CARD,CADiB,EAajB9B,QAbiB,kCAcX0B,WAAW,IAAI,EAdJ;kBAcSM,iBAAiB,EAAE,KAAKC;gBAdjC,GANnB;;cAAA;gBAMO9B,GANP;gBAAA,kCAuBQA,GAvBR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;mHA0BA,kBACCQ,IADD;QAAA;;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAECuB,cAFD,8DAEsC;kBAAEC,KAAK,EAAE;oBAAEC,MAAM,EAAE;kBAAV;gBAAT,CAFtC;gBAGCC,uBAHD,8DAG0C,CAAC,OAAD,CAH1C;gBAAA;gBAAA,OAKmB,KAAKC,GAAL,EALnB;;cAAA;gBAKOnC,GALP;gBAAA;gBAAA,OAMO,KAAKoC,iBAAL,EANP;;cAAA;gBAAA;gBAAA,OAQsBpC,GAAG,CAACqC,WAAJ,EARtB;;cAAA;gBAQOC,MARP;;gBAUC;gBACA,sBAAIA,MAAM,CAAChC,MAAX,2CAAI,eAAeH,OAAnB,EAA4B;kBAC3B;kBACAmC,MAAM,CAAChC,MAAP,CAAcH,OAAd,GAAwB,KAAKgB,WAAL,CAAiBmB,MAAM,CAAChC,MAAP,CAAcH,OAA/B,CAAxB;gBACA;;gBAEDoC,aAAOC,WAAP,CAAmBF,MAAnB,EAA2BP,cAA3B;;gBAEMU,eAlBP,GAkByBC,2BAASC,QAAT,CAAkB,KAAKC,WAAL,CAAiB,cAAjB,CAAlB,CAlBzB;;gBAmBCL,aAAOM,WAAP,CAAmBJ,eAAnB,EAAoCjC,IAApC;;gBAEMsC,SArBP,GAqBmB,KAAKC,mBAAL,EArBnB;gBAAA,uCAuBoBb,uBAvBpB;gBAAA;;gBAAA;;cAAA;gBAAA;kBAAA;kBAAA;gBAAA;;gBAuBYP,IAvBZ;gBAAA;gBAAA,OAwB4BmB,SAAS,CAACE,WAAV,CAAsBrB,IAAtB,CAxB5B;;cAAA;gBAwBQqB,WAxBR;;gBAyBET,aAAOU,MAAP,CAAcD,WAAd;;cAzBF;gBAAA;gBAAA;;cAAA;gBAAA;gBAAA;;cAAA;gBAAA;gBAAA;;gBAAA;;cAAA;gBAAA;;gBAAA;;gBAAA;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EAjEwDE,4B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"AbstractSkillTest.js","names":["AbstractSkillTest","skillCacheKey","Error","reInstallSkill","cwd","skillDir","Cli","cli","key","freshTmpDir","FeatureFixture","installCachedFeatures","AbstractCliTest"],"sources":["../../src/tests/AbstractSkillTest.ts"],"sourcesContent":["import { CliInterface } from '../cli'\nimport AbstractCliTest from './AbstractCliTest'\n\nexport default abstract class AbstractSkillTest extends AbstractCliTest {\n\tprotected static skillDir: string\n\tprotected static cli: CliInterface\n\tprotected static skillCacheKey: string\n\n\tprotected static async beforeAll() {\n\t\tif (!this.skillCacheKey) {\n\t\t\tthrow new Error(\n\t\t\t\t\"You must implement `protected static skillCacheKey = 'stores'`\"\n\t\t\t)\n\t\t}\n\t\tawait super.beforeAll()\n\t\tawait this.reInstallSkill()\n\t}\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.cwd = this.skillDir\n\t\tthis.cli = await this.Cli()\n\t}\n\n\tprotected static async reInstallSkill(key = this.skillCacheKey) {\n\t\tthis.cwd = this.skillDir = this.freshTmpDir()\n\t\tthis.cli = await this.FeatureFixture().installCachedFeatures(key)\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;;;;;IAE8BA,iB;;;;;;;;;;;;;qGAK7B;QAAA;UAAA;YAAA;cAAA;gBAAA,IACM,KAAKC,aADX;kBAAA;kBAAA;gBAAA;;gBAAA,MAEQ,IAAIC,KAAJ,CACL,gEADK,CAFR;;cAAA;gBAAA;gBAAA;;cAAA;gBAAA;gBAAA,OAOO,KAAKC,cAAL,EAPP;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;sGAUA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA;;cAAA;gBAEC,KAAKC,GAAL,GAAW,KAAKC,QAAhB;gBAFD;gBAAA,OAGkB,KAAKC,GAAL,EAHlB;;cAAA;gBAGC,KAAKC,GAHN;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;0GAMA;QAAA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAsCC,GAAtC,8DAA4C,KAAKP,aAAjD;gBACC,KAAKG,GAAL,GAAW,KAAKC,QAAL,GAAgB,KAAKI,WAAL,EAA3B;gBADD;gBAAA,OAEkB,KAAKC,cAAL,GAAsBC,qBAAtB,CAA4CH,GAA5C,CAFlB;;cAAA;gBAEC,KAAKD,GAFN;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EArBuDK,4B;;;iCAA1BZ,iB;iCAAAA,iB;iCAAAA,iB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"AbstractTestTest.js","names":["AbstractTestTest","cacheKey","fixture","FeatureFixture","installCachedFeatures","graphicsInterface","ui","cli","file","contents","diskUtil","readFile","passingContent","replace","writeFile","AbstractCliTest"],"sources":["../../src/tests/AbstractTestTest.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport AbstractCliTest from './AbstractCliTest'\n\nexport default class AbstractTestTest extends AbstractCliTest {\n\tprotected static async installTests(\n\t\tcacheKey: 'tests' | 'testsInNodeModule' = 'tests'\n\t) {\n\t\tconst fixture = this.FeatureFixture()\n\t\tconst cli = await fixture.installCachedFeatures(cacheKey, {\n\t\t\tgraphicsInterface: this.ui,\n\t\t})\n\t\treturn cli\n\t}\n\n\tprotected static fixBadTest(file: string) {\n\t\tconst contents = diskUtil.readFile(file)\n\t\tconst passingContent = contents.replace(\n\t\t\t'assert.isTrue(false)',\n\t\t\t'assert.isTrue(true)'\n\t\t)\n\n\t\tdiskUtil.writeFile(file, passingContent)\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;;;;;IAEqBA,gB;;;;;;;;;;;;;wGACpB;QAAA;QAAA;QAAA;QAAA;QAAA;UAAA;YAAA;cAAA;gBACCC,QADD,2DAC2C,OAD3C;gBAGOC,OAHP,GAGiB,KAAKC,cAAL,EAHjB;gBAAA;gBAAA,OAImBD,OAAO,CAACE,qBAAR,CAA8BH,QAA9B,EAAwC;kBACzDI,iBAAiB,EAAE,KAAKC;gBADiC,CAAxC,CAJnB;;cAAA;gBAIOC,GAJP;gBAAA,iCAOQA,GAPR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;WAUA,oBAA4BC,IAA5B,EAA0C;MACzC,IAAMC,QAAQ,GAAGC,2BAASC,QAAT,CAAkBH,IAAlB,CAAjB;;MACA,IAAMI,cAAc,GAAGH,QAAQ,CAACI,OAAT,CACtB,sBADsB,EAEtB,qBAFsB,CAAvB;;MAKAH,2BAASI,SAAT,CAAmBN,IAAnB,EAAyBI,cAAzB;IACA;;;EAnB4CG,4B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"CommandFaker.js","names":["CommandFaker","code","command","RegExp","fakeCommand","CommandService"],"sources":["../../src/tests/CommandFaker.ts"],"sourcesContent":["import CommandService from '../services/CommandService'\n\ntype Command = RegExp | string\n\nexport default class CommandFaker {\n\tpublic fakeRebuild(code = 0) {\n\t\tconst command = new RegExp(/yarn rebuild/gis)\n\t\tthis.fakeCommand(command, code)\n\t}\n\n\tpublic fakeCommand(command: Command, code = 0) {\n\t\tCommandService.fakeCommand(command, {\n\t\t\tcode,\n\t\t})\n\t}\n\n\tpublic fakeCleanBuild(code = 0) {\n\t\tthis.fakeCommand('yarn clean.build', code)\n\t}\n\n\tpublic fakeBuild(code = 0) {\n\t\tthis.fakeCommand('yarn build.dev', code)\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;AAAA;;IAIqBA,Y;;;;;;;WACpB,uBAA6B;MAAA,IAAVC,IAAU,uEAAH,CAAG;MAC5B,IAAMC,OAAO,GAAG,IAAIC,MAAJ,CAAW,gBAAX,CAAhB;MACA,KAAKC,WAAL,CAAiBF,OAAjB,EAA0BD,IAA1B;IACA;;;WAED,qBAAmBC,OAAnB,EAA+C;MAAA,IAAVD,IAAU,uEAAH,CAAG;;MAC9CI,2BAAeD,WAAf,CAA2BF,OAA3B,EAAoC;QACnCD,IAAI,EAAJA;MADmC,CAApC;IAGA;;;WAED,0BAAgC;MAAA,IAAVA,IAAU,uEAAH,CAAG;MAC/B,KAAKG,WAAL,CAAiB,kBAAjB,EAAqCH,IAArC;IACA;;;WAED,qBAA2B;MAAA,IAAVA,IAAU,uEAAH,CAAG;MAC1B,KAAKG,WAAL,CAAiB,gBAAjB,EAAmCH,IAAnC;IACA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/tests/JestJsonParser.ts"],"names":["JestJsonParser","totalTestFiles","data","dataToProcess","buffer","endDividerStartIdx","search","END_DIVIDER","startDividerIdx","Math","max","START_DIVIDER","endDividerEndIdx","length","firstSegment","substr","cleanedSegment","replace","trim","result","JSON","parse","ingestJestResult","testFiles","testResults","status","results","numTotalTestSuites","relativePath","mapAbsoluteJsToRelativeTsPath","test","path","idx","findIndex","file","testCaseResultToTest","testCaseResult","tests","push","pullPathFromTestResponse","pullTestFileStatusFromTestResponse","totalTestFilesComplete","pullTestFilesCompleteFromAggregatedResults","aggregatedResult","totalFailed","numFailedTests","totalPassed","numPassedTests","totalTests","numTotalTests","totalSkipped","numPendingTests","totalTodo","numTodoTests","testResult","testFilePath","pullTestFileResultStatus","pullTestsFromTestFileResult","failureMessage","errorMessage","total","numFailedTestSuites","numPassedTestSuites","tsFile","partialPath","split","pop","Error","numFailingTests","map","name","title","errorMessages","failureMessages","duration"],"mappings":"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","sourcesContent":["import JsonParser, {\n\tAssertionResult,\n\tEND_DIVIDER,\n\tSTART_DIVIDER,\n\tretrocycle,\n} from '@sprucelabs/jest-json-reporter'\nimport escapeRegExp from 'lodash/escapeRegExp'\nimport {\n\tSpruceTestFile,\n\tTestResultStatus,\n\tSpruceTestResults,\n} from '../features/test/test.types'\n\nexport type JsonResultKeys = JsonParserResult['status']\ninterface OnTestFileResult {\n\tstatus: 'onTestFileResult'\n\ttest: Parameters<JsonParser['onTestFileResult']>[0]\n\ttestResult: Parameters<JsonParser['onTestFileResult']>[1]\n\taggregatedResult: Parameters<JsonParser['onTestFileResult']>[2]\n}\n\ntype JsonParserResult =\n\t| {\n\t\t\tstatus: 'onRunStart'\n\t\t\tresults: Parameters<JsonParser['onRunStart']>[0]\n\t }\n\t| {\n\t\t\tstatus: 'onTestCaseResult'\n\t\t\ttest: Parameters<JsonParser['onTestCaseResult']>[0]\n\t\t\ttestCaseResult: Parameters<JsonParser['onTestCaseResult']>[1]\n\t }\n\t| {\n\t\t\tstatus: 'onTestFileStart'\n\t\t\ttest: Parameters<JsonParser['onTestFileStart']>[0]\n\t }\n\t| OnTestFileResult\n\nexport default class JestJsonParser {\n\tprivate testResults: SpruceTestResults = { totalTestFiles: 0 }\n\tprivate buffer = ''\n\n\tpublic write(data: string) {\n\t\tlet dataToProcess = this.buffer + data\n\t\tlet endDividerStartIdx = -1\n\n\t\tdo {\n\t\t\tendDividerStartIdx = dataToProcess.search(escapeRegExp(END_DIVIDER))\n\t\t\tif (endDividerStartIdx > -1) {\n\t\t\t\tlet startDividerIdx = Math.max(\n\t\t\t\t\t0,\n\t\t\t\t\tdataToProcess.search(escapeRegExp(START_DIVIDER))\n\t\t\t\t)\n\t\t\t\tlet endDividerEndIdx = endDividerStartIdx + END_DIVIDER.length\n\t\t\t\tif (startDividerIdx > endDividerStartIdx) {\n\t\t\t\t\tstartDividerIdx = -1\n\t\t\t\t}\n\t\t\t\tconst firstSegment = dataToProcess.substr(\n\t\t\t\t\tstartDividerIdx,\n\t\t\t\t\tendDividerEndIdx - startDividerIdx\n\t\t\t\t)\n\t\t\t\tconst cleanedSegment = firstSegment\n\t\t\t\t\t.replace(START_DIVIDER, '')\n\t\t\t\t\t.replace(END_DIVIDER, '')\n\t\t\t\t\t.trim()\n\n\t\t\t\tconst result = retrocycle(\n\t\t\t\t\tJSON.parse(cleanedSegment)\n\t\t\t\t) as JsonParserResult\n\n\t\t\t\tthis.ingestJestResult(result)\n\n\t\t\t\tdataToProcess = dataToProcess.substr(endDividerEndIdx)\n\t\t\t}\n\t\t} while (endDividerStartIdx > -1)\n\n\t\tthis.buffer = dataToProcess\n\t}\n\n\tprivate ingestJestResult(result: JsonParserResult) {\n\t\tconst testFiles = this.testResults.testFiles ?? []\n\t\tswitch (result.status) {\n\t\t\tcase 'onRunStart':\n\t\t\t\tthis.testResults = {\n\t\t\t\t\ttotalTestFiles: result.results.numTotalTestSuites,\n\t\t\t\t}\n\n\t\t\t\tbreak\n\n\t\t\tcase 'onTestCaseResult': {\n\t\t\t\tconst relativePath = this.mapAbsoluteJsToRelativeTsPath(\n\t\t\t\t\tresult.test.path\n\t\t\t\t)\n\t\t\t\tconst idx = testFiles.findIndex((file) => file.path === relativePath)\n\t\t\t\tconst test = this.testCaseResultToTest(result.testCaseResult)\n\n\t\t\t\tif (!testFiles[idx].tests) {\n\t\t\t\t\ttestFiles[idx].tests = []\n\t\t\t\t}\n\t\t\t\ttestFiles[idx].tests?.push(test)\n\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tcase 'onTestFileStart':\n\t\t\t\ttestFiles.push({\n\t\t\t\t\tpath: this.pullPathFromTestResponse(result),\n\t\t\t\t\tstatus: this.pullTestFileStatusFromTestResponse(result),\n\t\t\t\t})\n\n\t\t\t\tbreak\n\n\t\t\tcase 'onTestFileResult': {\n\t\t\t\tthis.testResults.totalTestFilesComplete =\n\t\t\t\t\tthis.pullTestFilesCompleteFromAggregatedResults(\n\t\t\t\t\t\tresult.aggregatedResult\n\t\t\t\t\t)\n\t\t\t\tthis.testResults.totalTestFiles =\n\t\t\t\t\tresult.aggregatedResult.numTotalTestSuites\n\t\t\t\tthis.testResults.totalFailed = result.aggregatedResult.numFailedTests\n\t\t\t\tthis.testResults.totalPassed = result.aggregatedResult.numPassedTests\n\t\t\t\tthis.testResults.totalTests = result.aggregatedResult.numTotalTests\n\t\t\t\tthis.testResults.totalSkipped = result.aggregatedResult.numPendingTests\n\t\t\t\tthis.testResults.totalTodo = result.aggregatedResult.numTodoTests\n\n\t\t\t\tfor (const testResult of result.aggregatedResult.testResults) {\n\t\t\t\t\tconst relativePath = this.mapAbsoluteJsToRelativeTsPath(\n\t\t\t\t\t\ttestResult.testFilePath\n\t\t\t\t\t)\n\t\t\t\t\tconst idx = testFiles.findIndex((file) => file.path === relativePath)\n\t\t\t\t\tconst file = {\n\t\t\t\t\t\t...(testFiles[idx] ?? {}),\n\t\t\t\t\t\tpath: relativePath,\n\t\t\t\t\t\tstatus: this.pullTestFileResultStatus(testResult),\n\t\t\t\t\t\ttests: this.pullTestsFromTestFileResult(testResult),\n\t\t\t\t\t}\n\n\t\t\t\t\tif (testResult.failureMessage) {\n\t\t\t\t\t\tfile.errorMessage = testResult.failureMessage\n\t\t\t\t\t}\n\n\t\t\t\t\tif (idx === -1) {\n\t\t\t\t\t\ttestFiles.push(file)\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttestFiles[idx] = file\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\tif (testFiles.length > 0) {\n\t\t\tthis.testResults.testFiles = testFiles\n\t\t}\n\t}\n\n\tprivate pullTestFilesCompleteFromAggregatedResults(\n\t\taggregatedResult: OnTestFileResult['aggregatedResult']\n\t) {\n\t\tconst total =\n\t\t\taggregatedResult.numFailedTestSuites +\n\t\t\taggregatedResult.numPassedTestSuites\n\n\t\treturn total\n\t}\n\n\tprivate pullPathFromTestResponse(result: JsonParserResult) {\n\t\tlet path = ''\n\n\t\tswitch (result.status) {\n\t\t\tcase 'onTestFileResult':\n\t\t\tcase 'onTestFileStart':\n\t\t\t\tpath = result.test.path\n\t\t\t\tbreak\n\t\t}\n\n\t\tconst tsFile = this.mapAbsoluteJsToRelativeTsPath(path)\n\t\treturn tsFile\n\t}\n\n\tprivate mapAbsoluteJsToRelativeTsPath(path: string) {\n\t\tconst partialPath = path.split('__tests__').pop()\n\t\tif (!partialPath) {\n\t\t\tthrow new Error('INVALID TEST FILE')\n\t\t}\n\t\tconst tsFile = partialPath.substr(1, partialPath.length - 3) + 'ts'\n\t\treturn tsFile\n\t}\n\n\tprivate pullTestFileStatusFromTestResponse(\n\t\tresult: JsonParserResult\n\t): SpruceTestFile['status'] {\n\t\tswitch (result.status) {\n\t\t\tcase 'onTestFileResult':\n\t\t\t\treturn this.pullTestFileResultStatus(result.testResult)\n\t\t\tdefault:\n\t\t\t\treturn 'running'\n\t\t}\n\t}\n\n\tprivate pullTestFileResultStatus(\n\t\ttestResult: OnTestFileResult['testResult']\n\t): TestResultStatus {\n\t\treturn testResult.failureMessage || testResult.numFailingTests > 0\n\t\t\t? 'failed'\n\t\t\t: 'passed'\n\t}\n\n\tprivate pullTestsFromTestFileResult(\n\t\ttestResult: OnTestFileResult['testResult']\n\t): SpruceTestFile['tests'] {\n\t\treturn testResult.testResults.map((test) => this.testCaseResultToTest(test))\n\t}\n\n\tprivate testCaseResultToTest(test: AssertionResult): {\n\t\tname: string\n\t\tstatus: AssertionResult['status']\n\t\terrorMessages: string[]\n\t\tduration: number\n\t} {\n\t\treturn {\n\t\t\tname: test.title,\n\t\t\tstatus: test.status,\n\t\t\terrorMessages: test.failureMessages,\n\t\t\tduration: test.duration ?? 0,\n\t\t}\n\t}\n\n\tpublic getResults(): SpruceTestResults {\n\t\treturn this.testResults\n\t}\n}\n"],"file":"JestJsonParser.js"}
|
|
1
|
+
{"version":3,"file":"JestJsonParser.js","names":["JestJsonParser","totalTestFiles","data","dataToProcess","buffer","endDividerStartIdx","search","END_DIVIDER","startDividerIdx","Math","max","START_DIVIDER","endDividerEndIdx","length","firstSegment","substr","cleanedSegment","replace","trim","result","JSON","parse","ingestJestResult","testFiles","testResults","status","results","numTotalTestSuites","relativePath","mapAbsoluteJsToRelativeTsPath","test","path","idx","findIndex","file","testCaseResultToTest","testCaseResult","tests","push","pullPathFromTestResponse","pullTestFileStatusFromTestResponse","totalTestFilesComplete","pullTestFilesCompleteFromAggregatedResults","aggregatedResult","totalFailed","numFailedTests","totalPassed","numPassedTests","totalTests","numTotalTests","totalSkipped","numPendingTests","totalTodo","numTodoTests","testResult","testFilePath","pullTestFileResultStatus","pullTestsFromTestFileResult","failureMessage","errorMessage","total","numFailedTestSuites","numPassedTestSuites","tsFile","partialPath","split","pop","Error","numFailingTests","map","name","title","errorMessages","failureMessages","duration"],"sources":["../../src/tests/JestJsonParser.ts"],"sourcesContent":["import JsonParser, {\n\tAssertionResult,\n\tEND_DIVIDER,\n\tSTART_DIVIDER,\n\tretrocycle,\n} from '@sprucelabs/jest-json-reporter'\nimport escapeRegExp from 'lodash/escapeRegExp'\nimport {\n\tSpruceTestFile,\n\tTestResultStatus,\n\tSpruceTestResults,\n} from '../features/test/test.types'\n\nexport type JsonResultKeys = JsonParserResult['status']\ninterface OnTestFileResult {\n\tstatus: 'onTestFileResult'\n\ttest: Parameters<JsonParser['onTestFileResult']>[0]\n\ttestResult: Parameters<JsonParser['onTestFileResult']>[1]\n\taggregatedResult: Parameters<JsonParser['onTestFileResult']>[2]\n}\n\ntype JsonParserResult =\n\t| {\n\t\t\tstatus: 'onRunStart'\n\t\t\tresults: Parameters<JsonParser['onRunStart']>[0]\n\t }\n\t| {\n\t\t\tstatus: 'onTestCaseResult'\n\t\t\ttest: Parameters<JsonParser['onTestCaseResult']>[0]\n\t\t\ttestCaseResult: Parameters<JsonParser['onTestCaseResult']>[1]\n\t }\n\t| {\n\t\t\tstatus: 'onTestFileStart'\n\t\t\ttest: Parameters<JsonParser['onTestFileStart']>[0]\n\t }\n\t| OnTestFileResult\n\nexport default class JestJsonParser {\n\tprivate testResults: SpruceTestResults = { totalTestFiles: 0 }\n\tprivate buffer = ''\n\n\tpublic write(data: string) {\n\t\tlet dataToProcess = this.buffer + data\n\t\tlet endDividerStartIdx = -1\n\n\t\tdo {\n\t\t\tendDividerStartIdx = dataToProcess.search(escapeRegExp(END_DIVIDER))\n\t\t\tif (endDividerStartIdx > -1) {\n\t\t\t\tlet startDividerIdx = Math.max(\n\t\t\t\t\t0,\n\t\t\t\t\tdataToProcess.search(escapeRegExp(START_DIVIDER))\n\t\t\t\t)\n\t\t\t\tlet endDividerEndIdx = endDividerStartIdx + END_DIVIDER.length\n\t\t\t\tif (startDividerIdx > endDividerStartIdx) {\n\t\t\t\t\tstartDividerIdx = -1\n\t\t\t\t}\n\t\t\t\tconst firstSegment = dataToProcess.substr(\n\t\t\t\t\tstartDividerIdx,\n\t\t\t\t\tendDividerEndIdx - startDividerIdx\n\t\t\t\t)\n\t\t\t\tconst cleanedSegment = firstSegment\n\t\t\t\t\t.replace(START_DIVIDER, '')\n\t\t\t\t\t.replace(END_DIVIDER, '')\n\t\t\t\t\t.trim()\n\n\t\t\t\tconst result = retrocycle(\n\t\t\t\t\tJSON.parse(cleanedSegment)\n\t\t\t\t) as JsonParserResult\n\n\t\t\t\tthis.ingestJestResult(result)\n\n\t\t\t\tdataToProcess = dataToProcess.substr(endDividerEndIdx)\n\t\t\t}\n\t\t} while (endDividerStartIdx > -1)\n\n\t\tthis.buffer = dataToProcess\n\t}\n\n\tprivate ingestJestResult(result: JsonParserResult) {\n\t\tconst testFiles = this.testResults.testFiles ?? []\n\t\tswitch (result.status) {\n\t\t\tcase 'onRunStart':\n\t\t\t\tthis.testResults = {\n\t\t\t\t\ttotalTestFiles: result.results.numTotalTestSuites,\n\t\t\t\t}\n\n\t\t\t\tbreak\n\n\t\t\tcase 'onTestCaseResult': {\n\t\t\t\tconst relativePath = this.mapAbsoluteJsToRelativeTsPath(\n\t\t\t\t\tresult.test.path\n\t\t\t\t)\n\t\t\t\tconst idx = testFiles.findIndex((file) => file.path === relativePath)\n\t\t\t\tconst test = this.testCaseResultToTest(result.testCaseResult)\n\n\t\t\t\tif (!testFiles[idx].tests) {\n\t\t\t\t\ttestFiles[idx].tests = []\n\t\t\t\t}\n\t\t\t\ttestFiles[idx].tests?.push(test)\n\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tcase 'onTestFileStart':\n\t\t\t\ttestFiles.push({\n\t\t\t\t\tpath: this.pullPathFromTestResponse(result),\n\t\t\t\t\tstatus: this.pullTestFileStatusFromTestResponse(result),\n\t\t\t\t})\n\n\t\t\t\tbreak\n\n\t\t\tcase 'onTestFileResult': {\n\t\t\t\tthis.testResults.totalTestFilesComplete =\n\t\t\t\t\tthis.pullTestFilesCompleteFromAggregatedResults(\n\t\t\t\t\t\tresult.aggregatedResult\n\t\t\t\t\t)\n\t\t\t\tthis.testResults.totalTestFiles =\n\t\t\t\t\tresult.aggregatedResult.numTotalTestSuites\n\t\t\t\tthis.testResults.totalFailed = result.aggregatedResult.numFailedTests\n\t\t\t\tthis.testResults.totalPassed = result.aggregatedResult.numPassedTests\n\t\t\t\tthis.testResults.totalTests = result.aggregatedResult.numTotalTests\n\t\t\t\tthis.testResults.totalSkipped = result.aggregatedResult.numPendingTests\n\t\t\t\tthis.testResults.totalTodo = result.aggregatedResult.numTodoTests\n\n\t\t\t\tfor (const testResult of result.aggregatedResult.testResults) {\n\t\t\t\t\tconst relativePath = this.mapAbsoluteJsToRelativeTsPath(\n\t\t\t\t\t\ttestResult.testFilePath\n\t\t\t\t\t)\n\t\t\t\t\tconst idx = testFiles.findIndex((file) => file.path === relativePath)\n\t\t\t\t\tconst file = {\n\t\t\t\t\t\t...(testFiles[idx] ?? {}),\n\t\t\t\t\t\tpath: relativePath,\n\t\t\t\t\t\tstatus: this.pullTestFileResultStatus(testResult),\n\t\t\t\t\t\ttests: this.pullTestsFromTestFileResult(testResult),\n\t\t\t\t\t}\n\n\t\t\t\t\tif (testResult.failureMessage) {\n\t\t\t\t\t\tfile.errorMessage = testResult.failureMessage\n\t\t\t\t\t}\n\n\t\t\t\t\tif (idx === -1) {\n\t\t\t\t\t\ttestFiles.push(file)\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttestFiles[idx] = file\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\tif (testFiles.length > 0) {\n\t\t\tthis.testResults.testFiles = testFiles\n\t\t}\n\t}\n\n\tprivate pullTestFilesCompleteFromAggregatedResults(\n\t\taggregatedResult: OnTestFileResult['aggregatedResult']\n\t) {\n\t\tconst total =\n\t\t\taggregatedResult.numFailedTestSuites +\n\t\t\taggregatedResult.numPassedTestSuites\n\n\t\treturn total\n\t}\n\n\tprivate pullPathFromTestResponse(result: JsonParserResult) {\n\t\tlet path = ''\n\n\t\tswitch (result.status) {\n\t\t\tcase 'onTestFileResult':\n\t\t\tcase 'onTestFileStart':\n\t\t\t\tpath = result.test.path\n\t\t\t\tbreak\n\t\t}\n\n\t\tconst tsFile = this.mapAbsoluteJsToRelativeTsPath(path)\n\t\treturn tsFile\n\t}\n\n\tprivate mapAbsoluteJsToRelativeTsPath(path: string) {\n\t\tconst partialPath = path.split('__tests__').pop()\n\t\tif (!partialPath) {\n\t\t\tthrow new Error('INVALID TEST FILE')\n\t\t}\n\t\tconst tsFile = partialPath.substr(1, partialPath.length - 3) + 'ts'\n\t\treturn tsFile\n\t}\n\n\tprivate pullTestFileStatusFromTestResponse(\n\t\tresult: JsonParserResult\n\t): SpruceTestFile['status'] {\n\t\tswitch (result.status) {\n\t\t\tcase 'onTestFileResult':\n\t\t\t\treturn this.pullTestFileResultStatus(result.testResult)\n\t\t\tdefault:\n\t\t\t\treturn 'running'\n\t\t}\n\t}\n\n\tprivate pullTestFileResultStatus(\n\t\ttestResult: OnTestFileResult['testResult']\n\t): TestResultStatus {\n\t\treturn testResult.failureMessage || testResult.numFailingTests > 0\n\t\t\t? 'failed'\n\t\t\t: 'passed'\n\t}\n\n\tprivate pullTestsFromTestFileResult(\n\t\ttestResult: OnTestFileResult['testResult']\n\t): SpruceTestFile['tests'] {\n\t\treturn testResult.testResults.map((test) => this.testCaseResultToTest(test))\n\t}\n\n\tprivate testCaseResultToTest(test: AssertionResult): {\n\t\tname: string\n\t\tstatus: AssertionResult['status']\n\t\terrorMessages: string[]\n\t\tduration: number\n\t} {\n\t\treturn {\n\t\t\tname: test.title,\n\t\t\tstatus: test.status,\n\t\t\terrorMessages: test.failureMessages,\n\t\t\tduration: test.duration ?? 0,\n\t\t}\n\t}\n\n\tpublic getResults(): SpruceTestResults {\n\t\treturn this.testResults\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;AAAA;;AAMA;;;;;;;;;;;;IA+BqBA,c;;;0DACqB;MAAEC,cAAc,EAAE;IAAlB,C;qDACxB,E;;;;;WAEjB,eAAaC,IAAb,EAA2B;MAC1B,IAAIC,aAAa,GAAG,KAAKC,MAAL,GAAcF,IAAlC;MACA,IAAIG,kBAAkB,GAAG,CAAC,CAA1B;;MAEA,GAAG;QACFA,kBAAkB,GAAGF,aAAa,CAACG,MAAd,CAAqB,8BAAaC,6BAAb,CAArB,CAArB;;QACA,IAAIF,kBAAkB,GAAG,CAAC,CAA1B,EAA6B;UAC5B,IAAIG,eAAe,GAAGC,IAAI,CAACC,GAAL,CACrB,CADqB,EAErBP,aAAa,CAACG,MAAd,CAAqB,8BAAaK,+BAAb,CAArB,CAFqB,CAAtB;UAIA,IAAIC,gBAAgB,GAAGP,kBAAkB,GAAGE,8BAAYM,MAAxD;;UACA,IAAIL,eAAe,GAAGH,kBAAtB,EAA0C;YACzCG,eAAe,GAAG,CAAC,CAAnB;UACA;;UACD,IAAMM,YAAY,GAAGX,aAAa,CAACY,MAAd,CACpBP,eADoB,EAEpBI,gBAAgB,GAAGJ,eAFC,CAArB;UAIA,IAAMQ,cAAc,GAAGF,YAAY,CACjCG,OADqB,CACbN,+BADa,EACE,EADF,EAErBM,OAFqB,CAEbV,6BAFa,EAEA,EAFA,EAGrBW,IAHqB,EAAvB;UAKA,IAAMC,MAAM,GAAG,kCACdC,IAAI,CAACC,KAAL,CAAWL,cAAX,CADc,CAAf;UAIA,KAAKM,gBAAL,CAAsBH,MAAtB;UAEAhB,aAAa,GAAGA,aAAa,CAACY,MAAd,CAAqBH,gBAArB,CAAhB;QACA;MACD,CA5BD,QA4BSP,kBAAkB,GAAG,CAAC,CA5B/B;;MA8BA,KAAKD,MAAL,GAAcD,aAAd;IACA;;;WAED,0BAAyBgB,MAAzB,EAAmD;MAAA;MAAA;;MAClD,IAAMI,SAAS,4BAAG,KAAKC,WAAL,CAAiBD,SAApB,yEAAiC,EAAhD;;MACA,QAAQJ,MAAM,CAACM,MAAf;QACC,KAAK,YAAL;UACC,KAAKD,WAAL,GAAmB;YAClBvB,cAAc,EAAEkB,MAAM,CAACO,OAAP,CAAeC;UADb,CAAnB;UAIA;;QAED,KAAK,kBAAL;UAAyB;YAAA;;YACxB,IAAMC,YAAY,GAAG,KAAKC,6BAAL,CACpBV,MAAM,CAACW,IAAP,CAAYC,IADQ,CAArB;YAGA,IAAMC,GAAG,GAAGT,SAAS,CAACU,SAAV,CAAoB,UAACC,IAAD;cAAA,OAAUA,IAAI,CAACH,IAAL,KAAcH,YAAxB;YAAA,CAApB,CAAZ;YACA,IAAME,IAAI,GAAG,KAAKK,oBAAL,CAA0BhB,MAAM,CAACiB,cAAjC,CAAb;;YAEA,IAAI,CAACb,SAAS,CAACS,GAAD,CAAT,CAAeK,KAApB,EAA2B;cAC1Bd,SAAS,CAACS,GAAD,CAAT,CAAeK,KAAf,GAAuB,EAAvB;YACA;;YACD,wBAAAd,SAAS,CAACS,GAAD,CAAT,CAAeK,KAAf,8EAAsBC,IAAtB,CAA2BR,IAA3B;YAEA;UACA;;QACD,KAAK,iBAAL;UACCP,SAAS,CAACe,IAAV,CAAe;YACdP,IAAI,EAAE,KAAKQ,wBAAL,CAA8BpB,MAA9B,CADQ;YAEdM,MAAM,EAAE,KAAKe,kCAAL,CAAwCrB,MAAxC;UAFM,CAAf;UAKA;;QAED,KAAK,kBAAL;UAAyB;YACxB,KAAKK,WAAL,CAAiBiB,sBAAjB,GACC,KAAKC,0CAAL,CACCvB,MAAM,CAACwB,gBADR,CADD;YAIA,KAAKnB,WAAL,CAAiBvB,cAAjB,GACCkB,MAAM,CAACwB,gBAAP,CAAwBhB,kBADzB;YAEA,KAAKH,WAAL,CAAiBoB,WAAjB,GAA+BzB,MAAM,CAACwB,gBAAP,CAAwBE,cAAvD;YACA,KAAKrB,WAAL,CAAiBsB,WAAjB,GAA+B3B,MAAM,CAACwB,gBAAP,CAAwBI,cAAvD;YACA,KAAKvB,WAAL,CAAiBwB,UAAjB,GAA8B7B,MAAM,CAACwB,gBAAP,CAAwBM,aAAtD;YACA,KAAKzB,WAAL,CAAiB0B,YAAjB,GAAgC/B,MAAM,CAACwB,gBAAP,CAAwBQ,eAAxD;YACA,KAAK3B,WAAL,CAAiB4B,SAAjB,GAA6BjC,MAAM,CAACwB,gBAAP,CAAwBU,YAArD;;YAXwB,2CAaClC,MAAM,CAACwB,gBAAP,CAAwBnB,WAbzB;YAAA;;YAAA;cAAA;gBAAA;;gBAAA,IAab8B,UAba;;gBAcvB,IAAM1B,YAAY,GAAG,KAAI,CAACC,6BAAL,CACpByB,UAAU,CAACC,YADS,CAArB;;gBAGA,IAAMvB,GAAG,GAAGT,SAAS,CAACU,SAAV,CAAoB,UAACC,IAAD;kBAAA,OAAUA,IAAI,CAACH,IAAL,KAAcH,YAAxB;gBAAA,CAApB,CAAZ;;gBACA,IAAMM,IAAI,qDACLX,SAAS,CAACS,GAAD,CADJ,2DACa,EADb;kBAETD,IAAI,EAAEH,YAFG;kBAGTH,MAAM,EAAE,KAAI,CAAC+B,wBAAL,CAA8BF,UAA9B,CAHC;kBAITjB,KAAK,EAAE,KAAI,CAACoB,2BAAL,CAAiCH,UAAjC;gBAJE,EAAV;;gBAOA,IAAIA,UAAU,CAACI,cAAf,EAA+B;kBAC9BxB,IAAI,CAACyB,YAAL,GAAoBL,UAAU,CAACI,cAA/B;gBACA;;gBAED,IAAI1B,GAAG,KAAK,CAAC,CAAb,EAAgB;kBACfT,SAAS,CAACe,IAAV,CAAeJ,IAAf;gBACA,CAFD,MAEO;kBACNX,SAAS,CAACS,GAAD,CAAT,GAAiBE,IAAjB;gBACA;cAjCsB;;cAaxB,oDAA8D;gBAAA;cAqB7D;YAlCuB;cAAA;YAAA;cAAA;YAAA;;YAoCxB;UACA;MAnEF;;MAsEA,IAAIX,SAAS,CAACV,MAAV,GAAmB,CAAvB,EAA0B;QACzB,KAAKW,WAAL,CAAiBD,SAAjB,GAA6BA,SAA7B;MACA;IACD;;;WAED,oDACCoB,gBADD,EAEE;MACD,IAAMiB,KAAK,GACVjB,gBAAgB,CAACkB,mBAAjB,GACAlB,gBAAgB,CAACmB,mBAFlB;MAIA,OAAOF,KAAP;IACA;;;WAED,kCAAiCzC,MAAjC,EAA2D;MAC1D,IAAIY,IAAI,GAAG,EAAX;;MAEA,QAAQZ,MAAM,CAACM,MAAf;QACC,KAAK,kBAAL;QACA,KAAK,iBAAL;UACCM,IAAI,GAAGZ,MAAM,CAACW,IAAP,CAAYC,IAAnB;UACA;MAJF;;MAOA,IAAMgC,MAAM,GAAG,KAAKlC,6BAAL,CAAmCE,IAAnC,CAAf;MACA,OAAOgC,MAAP;IACA;;;WAED,uCAAsChC,IAAtC,EAAoD;MACnD,IAAMiC,WAAW,GAAGjC,IAAI,CAACkC,KAAL,CAAW,WAAX,EAAwBC,GAAxB,EAApB;;MACA,IAAI,CAACF,WAAL,EAAkB;QACjB,MAAM,IAAIG,KAAJ,CAAU,mBAAV,CAAN;MACA;;MACD,IAAMJ,MAAM,GAAGC,WAAW,CAACjD,MAAZ,CAAmB,CAAnB,EAAsBiD,WAAW,CAACnD,MAAZ,GAAqB,CAA3C,IAAgD,IAA/D;MACA,OAAOkD,MAAP;IACA;;;WAED,4CACC5C,MADD,EAE4B;MAC3B,QAAQA,MAAM,CAACM,MAAf;QACC,KAAK,kBAAL;UACC,OAAO,KAAK+B,wBAAL,CAA8BrC,MAAM,CAACmC,UAArC,CAAP;;QACD;UACC,OAAO,SAAP;MAJF;IAMA;;;WAED,kCACCA,UADD,EAEoB;MACnB,OAAOA,UAAU,CAACI,cAAX,IAA6BJ,UAAU,CAACc,eAAX,GAA6B,CAA1D,GACJ,QADI,GAEJ,QAFH;IAGA;;;WAED,qCACCd,UADD,EAE2B;MAAA;;MAC1B,OAAOA,UAAU,CAAC9B,WAAX,CAAuB6C,GAAvB,CAA2B,UAACvC,IAAD;QAAA,OAAU,MAAI,CAACK,oBAAL,CAA0BL,IAA1B,CAAV;MAAA,CAA3B,CAAP;IACA;;;WAED,8BAA6BA,IAA7B,EAKE;MAAA;;MACD,OAAO;QACNwC,IAAI,EAAExC,IAAI,CAACyC,KADL;QAEN9C,MAAM,EAAEK,IAAI,CAACL,MAFP;QAGN+C,aAAa,EAAE1C,IAAI,CAAC2C,eAHd;QAINC,QAAQ,oBAAE5C,IAAI,CAAC4C,QAAP,2DAAmB;MAJrB,CAAP;IAMA;;;WAED,sBAAuC;MACtC,OAAO,KAAKlD,WAAZ;IACA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"MockProgramFactory.js","names":["MockProgramFactory","_lastCommand","commandInvocations","descriptionInvocations","actionInvocations","optionInvocations","aliasesInvocations","commands","actionHandler","_options","command","str","push","description","aliases","action","cb","options","option","hint","defaultValue"],"sources":["../../src/tests/MockProgramFactory.ts"],"sourcesContent":["import { CommanderStatic } from 'commander'\n\nexport type MockProgram = CommanderStatic['program'] & {\n\tactionHandler: (options: Record<string, string>) => Promise<void>\n\tdescriptionInvocations: { command: string; description: string }[]\n\toptionInvocations: {\n\t\tcommand: string\n\t\toption: string\n\t\thint: string\n\t\tdefaultValue: string\n\t}[]\n\t_lastCommand: string\n\tcommandInvocations: string[]\n\tactionInvocations: string[]\n\taliasesInvocations: string[]\n}\n\nexport default class MockProgramFactory {\n\tprivate constructor() {}\n\n\tpublic static Program(): MockProgram {\n\t\t// @ts-ignore\n\t\treturn {\n\t\t\t_lastCommand: '',\n\t\t\tcommandInvocations: [],\n\t\t\tdescriptionInvocations: [],\n\t\t\tactionInvocations: [],\n\t\t\toptionInvocations: [],\n\t\t\taliasesInvocations: [],\n\t\t\tcommands: [],\n\t\t\tactionHandler: async (_options?: Record<string, string>) => {},\n\t\t\tcommand(str: string) {\n\t\t\t\tthis.commandInvocations.push(str)\n\t\t\t\tthis._lastCommand = str\n\n\t\t\t\treturn this\n\t\t\t},\n\t\t\t//@ts-ignore\n\t\t\tdescription(str: string) {\n\t\t\t\tthis.descriptionInvocations.push({\n\t\t\t\t\tcommand: this._lastCommand,\n\t\t\t\t\tdescription: str,\n\t\t\t\t})\n\t\t\t\treturn this\n\t\t\t},\n\t\t\t//@ts-ignore\n\t\t\taliases(aliases: string[]) {\n\t\t\t\tthis.aliasesInvocations.push(...aliases)\n\t\t\t\treturn this\n\t\t\t},\n\t\t\taction(cb: (...args: any[]) => Promise<void>) {\n\t\t\t\tthis.actionInvocations.push(this._lastCommand)\n\n\t\t\t\tthis.actionHandler = async (options: Record<string, string>) => {\n\t\t\t\t\tawait cb(options, {})\n\t\t\t\t}\n\n\t\t\t\treturn this\n\t\t\t},\n\t\t\t//@ts-ignore\n\t\t\toption(option: string, hint: string, defaultValue: string) {\n\t\t\t\tthis.optionInvocations.push({\n\t\t\t\t\tcommand: this._lastCommand,\n\t\t\t\t\toption,\n\t\t\t\t\thint,\n\t\t\t\t\tdefaultValue,\n\t\t\t\t})\n\t\t\t\treturn this\n\t\t\t},\n\t\t}\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;IAiBqBA,kB;EACpB,8BAAsB;IAAA;EAAE;;;;WAExB,mBAAqC;MACpC;MACA,OAAO;QACNC,YAAY,EAAE,EADR;QAENC,kBAAkB,EAAE,EAFd;QAGNC,sBAAsB,EAAE,EAHlB;QAINC,iBAAiB,EAAE,EAJb;QAKNC,iBAAiB,EAAE,EALb;QAMNC,kBAAkB,EAAE,EANd;QAONC,QAAQ,EAAE,EAPJ;QAQNC,aAAa;UAAA,mGAAE,iBAAOC,QAAP;YAAA;cAAA;gBAAA;kBAAA;kBAAA;oBAAA;gBAAA;cAAA;YAAA;UAAA,CAAF;;UAAA;YAAA;UAAA;;UAAA;QAAA,GARP;QASNC,OATM,mBASEC,GATF,EASe;UACpB,KAAKT,kBAAL,CAAwBU,IAAxB,CAA6BD,GAA7B;UACA,KAAKV,YAAL,GAAoBU,GAApB;UAEA,OAAO,IAAP;QACA,CAdK;QAeN;QACAE,WAhBM,uBAgBMF,GAhBN,EAgBmB;UACxB,KAAKR,sBAAL,CAA4BS,IAA5B,CAAiC;YAChCF,OAAO,EAAE,KAAKT,YADkB;YAEhCY,WAAW,EAAEF;UAFmB,CAAjC;UAIA,OAAO,IAAP;QACA,CAtBK;QAuBN;QACAG,OAxBM,mBAwBEA,QAxBF,EAwBqB;UAAA;;UAC1B,8BAAKR,kBAAL,EAAwBM,IAAxB,kEAAgCE,QAAhC;;UACA,OAAO,IAAP;QACA,CA3BK;QA4BNC,MA5BM,kBA4BCC,EA5BD,EA4BwC;UAC7C,KAAKZ,iBAAL,CAAuBQ,IAAvB,CAA4B,KAAKX,YAAjC;;UAEA,KAAKO,aAAL;YAAA,yFAAqB,kBAAOS,OAAP;cAAA;gBAAA;kBAAA;oBAAA;sBAAA;sBAAA,OACdD,EAAE,CAACC,OAAD,EAAU,EAAV,CADY;;oBAAA;oBAAA;sBAAA;kBAAA;gBAAA;cAAA;YAAA,CAArB;;YAAA;cAAA;YAAA;UAAA;;UAIA,OAAO,IAAP;QACA,CApCK;QAqCN;QACAC,MAtCM,kBAsCCA,OAtCD,EAsCiBC,IAtCjB,EAsC+BC,YAtC/B,EAsCqD;UAC1D,KAAKf,iBAAL,CAAuBO,IAAvB,CAA4B;YAC3BF,OAAO,EAAE,KAAKT,YADa;YAE3BiB,MAAM,EAANA,OAF2B;YAG3BC,IAAI,EAAJA,IAH2B;YAI3BC,YAAY,EAAZA;UAJ2B,CAA5B;UAMA,OAAO,IAAP;QACA;MA9CK,CAAP;IAgDA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/tests/buildTestCache.ts"],"names":["require","config","packageJsonContents","diskUtil","readFile","resolvePath","__dirname","packageJson","JSON","parse","testSkillCache","testKeys","Object","keys","remaining","length","term","TerminalInterface","start","Date","getTime","testSkillsToCache","process","env","TEST_SKILLS_TO_CACHE","undefined","onlyInstall","split","map","t","trim","shouldRunSequentially","argv","find","a","maxSimultaneous","MAX_SIMULTANEOUS_SKILL_CACHERS","totalSimultaneous","progressInterval","doesSupportColor","didMessagesChange","run","getTimeSpent","renderLine","renderWarning","cacheOrSkip","setup","cache","lineNum","cwd","cacheKey","fixture","options","doesDirExist","GraphicsTextEffect","Italic","deleteDir","Green","installFeatures","durationUtil","msToFriendly","Bold","Red","stack","importCacheDir","testUtil","resolveTestDir","ImportService","setCacheDir","serviceFactory","ServiceFactory","mercuryFixture","MercuryFixture","FeatureFixture","ui","shouldGenerateCacheIfMissing","apiClientFactory","getApiClientFactory","cacheTracker","loadCacheTracker","indexOf","Yellow","message","effects","messages","render","console","log","now","delta","clear","WILL_BUILD_CACHE_SCRIPT","renderHeadline","moveCursorTo","eraseLine","stopLoading","startLoading","dropInS","clearBelowCursor","setInterval","Promise","all","idx","promises","resolve","setTimeout","then","DID_BUILD_CACHE_SCRIPT","clearInterval","err","renderError"],"mappings":"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","sourcesContent":["#!/usr/bin/env node\nimport { execSync } from 'child_process'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport TerminalInterface from '../interfaces/TerminalInterface'\nimport ImportService from '../services/ImportService'\nimport ServiceFactory from '../services/ServiceFactory'\nimport testUtil from '../tests/utilities/test.utility'\nimport { GraphicsTextEffect } from '../types/graphicsInterface.types'\nimport durationUtil from '../utilities/duration.utility'\nimport FeatureFixture from './fixtures/FeatureFixture'\nimport MercuryFixture from './fixtures/MercuryFixture'\nrequire('dotenv').config()\n\nconst packageJsonContents = diskUtil.readFile(\n\tdiskUtil.resolvePath(__dirname, '..', '..', 'package.json')\n)\n\nconst packageJson = JSON.parse(packageJsonContents)\nconst { testSkillCache } = packageJson\nconst testKeys = Object.keys(testSkillCache)\n\nlet remaining = testKeys.length\nconst term = new TerminalInterface(__dirname, true)\nconst start = new Date().getTime()\nconst testSkillsToCache =\n\tprocess.env.TEST_SKILLS_TO_CACHE === '*'\n\t\t? undefined\n\t\t: process.env.TEST_SKILLS_TO_CACHE\nconst onlyInstall = testSkillsToCache?.split(',').map((t) => t.trim()) as\n\t| string[]\n\t| undefined\n\nconst shouldRunSequentially = !!process.argv.find(\n\t(a) => a === '--shouldRunSequentially=true' || a === '--shouldRunSequentially'\n)\nconst maxSimultaneous = process.env.MAX_SIMULTANEOUS_SKILL_CACHERS ?? 10\nlet totalSimultaneous = 0\nlet progressInterval: any\nconst doesSupportColor = TerminalInterface.doesSupportColor()\n\nlet didMessagesChange = true\n\nasync function run() {\n\tterm.clear()\n\n\tif (process.env.WILL_BUILD_CACHE_SCRIPT) {\n\t\tterm.renderLine('Running pre build cache script')\n\t\texecSync(process.env.WILL_BUILD_CACHE_SCRIPT)\n\t}\n\n\tterm.renderHeadline(`Found ${testKeys.length} skills to cache.`)\n\n\tlet messages: [string, any][] = []\n\n\tconst render = async () => {\n\t\tif (didMessagesChange) {\n\t\t\tterm.moveCursorTo(0, 6)\n\n\t\t\tfor (const message of messages) {\n\t\t\t\tterm.eraseLine()\n\t\t\t\tterm.renderLine(message[0], message[1])\n\t\t\t}\n\n\t\t\tawait term.stopLoading()\n\n\t\t\tterm.eraseLine()\n\t\t\tterm.renderLine('')\n\t\t}\n\n\t\tdidMessagesChange = false\n\n\t\tawait term.startLoading(\n\t\t\t`${`Building ${remaining} skill${dropInS(\n\t\t\t\tremaining\n\t\t\t)}`}. ${durationUtil.msToFriendly(getTimeSpent())}`\n\t\t)\n\n\t\tterm.clearBelowCursor()\n\t}\n\n\tprogressInterval = doesSupportColor && setInterval(render, 1000)\n\n\tfunction getTimeSpent() {\n\t\tconst now = new Date().getTime()\n\t\tconst delta = now - start\n\t\treturn delta\n\t}\n\n\tfunction renderLine(lineNum: number, message: any, effects?: any) {\n\t\tif (doesSupportColor) {\n\t\t\tdidMessagesChange = true\n\t\t\tmessages[lineNum] = [message, effects]\n\t\t\tvoid render()\n\t\t} else {\n\t\t\tconsole.log(message)\n\t\t}\n\t}\n\n\tfunction renderWarning(lineNum: number, message: any, effects?: any) {\n\t\tif (doesSupportColor) {\n\t\t\tdidMessagesChange = true\n\t\t\tmessages[lineNum] = [message, effects]\n\t\t\tvoid render()\n\t\t} else {\n\t\t\tconsole.log(message)\n\t\t}\n\t}\n\n\tif (doesSupportColor) {\n\t\tawait term.startLoading(\n\t\t\t`Building ${remaining} remaining skill${dropInS(remaining)}...`\n\t\t)\n\t}\n\n\tif (shouldRunSequentially) {\n\t\tawait Promise.all(\n\t\t\ttestKeys.map((cacheKey, idx) => cacheOrSkip(idx, cacheKey))\n\t\t)\n\t} else {\n\t\tconst promises = testKeys.map(async (cacheKey, idx) => {\n\t\t\twhile (totalSimultaneous >= maxSimultaneous) {\n\t\t\t\tawait new Promise((resolve) => setTimeout(resolve, 1000))\n\t\t\t}\n\t\t\ttotalSimultaneous++\n\t\t\tawait cacheOrSkip(idx, cacheKey)\n\t\t\ttotalSimultaneous--\n\t\t})\n\n\t\tawait Promise.all(promises)\n\t}\n\n\tawait term.stopLoading()\n\tterm.renderLine(`Done! ${durationUtil.msToFriendly(getTimeSpent())}`)\n\n\tasync function cacheOrSkip(lineNum: number, cacheKey: string) {\n\t\tconst { cacheTracker, cwd, fixture, options } = setup(cacheKey)\n\n\t\tif (onlyInstall && onlyInstall.indexOf(cacheKey) === -1) {\n\t\t\trenderLine(lineNum, `Skipping '${cacheKey}'.`, [\n\t\t\t\tGraphicsTextEffect.Yellow,\n\t\t\t])\n\t\t\tremaining--\n\t\t} else if (\n\t\t\tcacheTracker[cacheKey] &&\n\t\t\tdiskUtil.doesDirExist(diskUtil.resolvePath(cwd, 'node_modules'))\n\t\t) {\n\t\t\tremaining--\n\t\t\trenderLine(lineNum, `'${cacheKey}' already cached. Skipping...`, [\n\t\t\t\tGraphicsTextEffect.Italic,\n\t\t\t])\n\t\t} else {\n\t\t\tawait cache(lineNum, cwd, cacheKey, fixture, options)\n\t\t\tremaining--\n\t\t}\n\t}\n\n\tfunction setup(cacheKey: string) {\n\t\tconst options = testSkillCache[cacheKey]\n\n\t\tconst importCacheDir = testUtil.resolveTestDir('spruce-cli-import-cache')\n\t\tImportService.setCacheDir(importCacheDir)\n\n\t\tconst serviceFactory = new ServiceFactory()\n\t\tconst cwd = testUtil.resolveTestDir(cacheKey)\n\n\t\tconst mercuryFixture = new MercuryFixture(cwd, serviceFactory)\n\t\tconst fixture = new FeatureFixture({\n\t\t\tcwd,\n\t\t\tserviceFactory,\n\t\t\tui: new TerminalInterface(cwd),\n\t\t\tshouldGenerateCacheIfMissing: true,\n\t\t\tapiClientFactory: mercuryFixture.getApiClientFactory(),\n\t\t})\n\n\t\tconst cacheTracker = fixture.loadCacheTracker()\n\t\treturn { cacheTracker, cwd, fixture, options }\n\t}\n\n\tasync function cache(\n\t\tlineNum: number,\n\t\tcwd: string,\n\t\tcacheKey: string,\n\t\tfixture: FeatureFixture,\n\t\toptions: any\n\t) {\n\t\tif (diskUtil.doesDirExist(cwd)) {\n\t\t\trenderWarning(\n\t\t\t\tlineNum,\n\t\t\t\t`Found cached '${cacheKey}', but deleted it since it was not in the cache tracker...`,\n\t\t\t\t[GraphicsTextEffect.Italic]\n\t\t\t)\n\t\t\tdiskUtil.deleteDir(cwd)\n\t\t}\n\n\t\trenderLine(lineNum, `Starting to build '${cacheKey}'...`, [\n\t\t\tGraphicsTextEffect.Green,\n\t\t])\n\n\t\ttry {\n\t\t\tawait fixture.installFeatures(options, cacheKey)\n\t\t\trenderLine(\n\t\t\t\tlineNum,\n\t\t\t\t`Done caching '${cacheKey}'. ${\n\t\t\t\t\tremaining - 1\n\t\t\t\t} remaining (${durationUtil.msToFriendly(getTimeSpent())})...`,\n\t\t\t\t[GraphicsTextEffect.Green, GraphicsTextEffect.Bold]\n\t\t\t)\n\t\t} catch (err: any) {\n\t\t\trenderLine(lineNum, `Error caching '${cacheKey}'...`, [\n\t\t\t\tGraphicsTextEffect.Red,\n\t\t\t\tGraphicsTextEffect.Bold,\n\t\t\t])\n\n\t\t\trenderLine(lineNum, `Error caching ${cacheKey}:\\n\\n${err.stack}`)\n\t\t}\n\t}\n}\n\nfunction dropInS(remaining: number) {\n\treturn remaining === 1 ? '' : 's'\n}\n\nvoid run()\n\t.then(() => {\n\t\tif (process.env.DID_BUILD_CACHE_SCRIPT) {\n\t\t\tterm.renderLine('Running pre build cache script')\n\t\t\texecSync(process.env.DID_BUILD_CACHE_SCRIPT)\n\t\t}\n\t\tif (progressInterval) {\n\t\t\tclearInterval(progressInterval)\n\t\t}\n\t})\n\t.catch((err) => {\n\t\tterm.renderError(err)\n\t\tif (progressInterval) {\n\t\t\tclearInterval(progressInterval)\n\t\t}\n\t})\n"],"file":"buildTestCache.js"}
|
|
1
|
+
{"version":3,"file":"buildTestCache.js","names":["require","config","packageJsonContents","diskUtil","readFile","resolvePath","__dirname","packageJson","JSON","parse","testSkillCache","testKeys","Object","keys","remaining","length","term","TerminalInterface","start","Date","getTime","testSkillsToCache","process","env","TEST_SKILLS_TO_CACHE","undefined","onlyInstall","split","map","t","trim","shouldRunSequentially","argv","find","a","maxSimultaneous","MAX_SIMULTANEOUS_SKILL_CACHERS","totalSimultaneous","progressInterval","doesSupportColor","didMessagesChange","run","getTimeSpent","renderLine","renderWarning","cacheOrSkip","setup","cache","lineNum","cwd","cacheKey","fixture","options","doesDirExist","GraphicsTextEffect","Italic","deleteDir","Green","installFeatures","durationUtil","msToFriendly","Bold","Red","stack","importCacheDir","testUtil","resolveTestDir","ImportService","setCacheDir","serviceFactory","ServiceFactory","mercuryFixture","MercuryFixture","FeatureFixture","ui","shouldGenerateCacheIfMissing","apiClientFactory","getApiClientFactory","cacheTracker","loadCacheTracker","indexOf","Yellow","message","effects","messages","render","console","log","now","delta","clear","WILL_BUILD_CACHE_SCRIPT","renderHeadline","moveCursorTo","eraseLine","stopLoading","startLoading","dropInS","clearBelowCursor","setInterval","Promise","all","idx","promises","resolve","setTimeout","then","DID_BUILD_CACHE_SCRIPT","clearInterval","err","renderError"],"sources":["../../src/tests/buildTestCache.ts"],"sourcesContent":["#!/usr/bin/env node\nimport { execSync } from 'child_process'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport TerminalInterface from '../interfaces/TerminalInterface'\nimport ImportService from '../services/ImportService'\nimport ServiceFactory from '../services/ServiceFactory'\nimport testUtil from '../tests/utilities/test.utility'\nimport { GraphicsTextEffect } from '../types/graphicsInterface.types'\nimport durationUtil from '../utilities/duration.utility'\nimport FeatureFixture from './fixtures/FeatureFixture'\nimport MercuryFixture from './fixtures/MercuryFixture'\nrequire('dotenv').config()\n\nconst packageJsonContents = diskUtil.readFile(\n\tdiskUtil.resolvePath(__dirname, '..', '..', 'package.json')\n)\n\nconst packageJson = JSON.parse(packageJsonContents)\nconst { testSkillCache } = packageJson\nconst testKeys = Object.keys(testSkillCache)\n\nlet remaining = testKeys.length\nconst term = new TerminalInterface(__dirname, true)\nconst start = new Date().getTime()\nconst testSkillsToCache =\n\tprocess.env.TEST_SKILLS_TO_CACHE === '*'\n\t\t? undefined\n\t\t: process.env.TEST_SKILLS_TO_CACHE\nconst onlyInstall = testSkillsToCache?.split(',').map((t) => t.trim()) as\n\t| string[]\n\t| undefined\n\nconst shouldRunSequentially = !!process.argv.find(\n\t(a) => a === '--shouldRunSequentially=true' || a === '--shouldRunSequentially'\n)\nconst maxSimultaneous = process.env.MAX_SIMULTANEOUS_SKILL_CACHERS ?? 10\nlet totalSimultaneous = 0\nlet progressInterval: any\nconst doesSupportColor = TerminalInterface.doesSupportColor()\n\nlet didMessagesChange = true\n\nasync function run() {\n\tterm.clear()\n\n\tif (process.env.WILL_BUILD_CACHE_SCRIPT) {\n\t\tterm.renderLine('Running pre build cache script')\n\t\texecSync(process.env.WILL_BUILD_CACHE_SCRIPT)\n\t}\n\n\tterm.renderHeadline(`Found ${testKeys.length} skills to cache.`)\n\n\tlet messages: [string, any][] = []\n\n\tconst render = async () => {\n\t\tif (didMessagesChange) {\n\t\t\tterm.moveCursorTo(0, 6)\n\n\t\t\tfor (const message of messages) {\n\t\t\t\tterm.eraseLine()\n\t\t\t\tterm.renderLine(message[0], message[1])\n\t\t\t}\n\n\t\t\tawait term.stopLoading()\n\n\t\t\tterm.eraseLine()\n\t\t\tterm.renderLine('')\n\t\t}\n\n\t\tdidMessagesChange = false\n\n\t\tawait term.startLoading(\n\t\t\t`${`Building ${remaining} skill${dropInS(\n\t\t\t\tremaining\n\t\t\t)}`}. ${durationUtil.msToFriendly(getTimeSpent())}`\n\t\t)\n\n\t\tterm.clearBelowCursor()\n\t}\n\n\tprogressInterval = doesSupportColor && setInterval(render, 1000)\n\n\tfunction getTimeSpent() {\n\t\tconst now = new Date().getTime()\n\t\tconst delta = now - start\n\t\treturn delta\n\t}\n\n\tfunction renderLine(lineNum: number, message: any, effects?: any) {\n\t\tif (doesSupportColor) {\n\t\t\tdidMessagesChange = true\n\t\t\tmessages[lineNum] = [message, effects]\n\t\t\tvoid render()\n\t\t} else {\n\t\t\tconsole.log(message)\n\t\t}\n\t}\n\n\tfunction renderWarning(lineNum: number, message: any, effects?: any) {\n\t\tif (doesSupportColor) {\n\t\t\tdidMessagesChange = true\n\t\t\tmessages[lineNum] = [message, effects]\n\t\t\tvoid render()\n\t\t} else {\n\t\t\tconsole.log(message)\n\t\t}\n\t}\n\n\tif (doesSupportColor) {\n\t\tawait term.startLoading(\n\t\t\t`Building ${remaining} remaining skill${dropInS(remaining)}...`\n\t\t)\n\t}\n\n\tif (shouldRunSequentially) {\n\t\tawait Promise.all(\n\t\t\ttestKeys.map((cacheKey, idx) => cacheOrSkip(idx, cacheKey))\n\t\t)\n\t} else {\n\t\tconst promises = testKeys.map(async (cacheKey, idx) => {\n\t\t\twhile (totalSimultaneous >= maxSimultaneous) {\n\t\t\t\tawait new Promise((resolve) => setTimeout(resolve, 1000))\n\t\t\t}\n\t\t\ttotalSimultaneous++\n\t\t\tawait cacheOrSkip(idx, cacheKey)\n\t\t\ttotalSimultaneous--\n\t\t})\n\n\t\tawait Promise.all(promises)\n\t}\n\n\tawait term.stopLoading()\n\tterm.renderLine(`Done! ${durationUtil.msToFriendly(getTimeSpent())}`)\n\n\tasync function cacheOrSkip(lineNum: number, cacheKey: string) {\n\t\tconst { cacheTracker, cwd, fixture, options } = setup(cacheKey)\n\n\t\tif (onlyInstall && onlyInstall.indexOf(cacheKey) === -1) {\n\t\t\trenderLine(lineNum, `Skipping '${cacheKey}'.`, [\n\t\t\t\tGraphicsTextEffect.Yellow,\n\t\t\t])\n\t\t\tremaining--\n\t\t} else if (\n\t\t\tcacheTracker[cacheKey] &&\n\t\t\tdiskUtil.doesDirExist(diskUtil.resolvePath(cwd, 'node_modules'))\n\t\t) {\n\t\t\tremaining--\n\t\t\trenderLine(lineNum, `'${cacheKey}' already cached. Skipping...`, [\n\t\t\t\tGraphicsTextEffect.Italic,\n\t\t\t])\n\t\t} else {\n\t\t\tawait cache(lineNum, cwd, cacheKey, fixture, options)\n\t\t\tremaining--\n\t\t}\n\t}\n\n\tfunction setup(cacheKey: string) {\n\t\tconst options = testSkillCache[cacheKey]\n\n\t\tconst importCacheDir = testUtil.resolveTestDir('spruce-cli-import-cache')\n\t\tImportService.setCacheDir(importCacheDir)\n\n\t\tconst serviceFactory = new ServiceFactory()\n\t\tconst cwd = testUtil.resolveTestDir(cacheKey)\n\n\t\tconst mercuryFixture = new MercuryFixture(cwd, serviceFactory)\n\t\tconst fixture = new FeatureFixture({\n\t\t\tcwd,\n\t\t\tserviceFactory,\n\t\t\tui: new TerminalInterface(cwd),\n\t\t\tshouldGenerateCacheIfMissing: true,\n\t\t\tapiClientFactory: mercuryFixture.getApiClientFactory(),\n\t\t})\n\n\t\tconst cacheTracker = fixture.loadCacheTracker()\n\t\treturn { cacheTracker, cwd, fixture, options }\n\t}\n\n\tasync function cache(\n\t\tlineNum: number,\n\t\tcwd: string,\n\t\tcacheKey: string,\n\t\tfixture: FeatureFixture,\n\t\toptions: any\n\t) {\n\t\tif (diskUtil.doesDirExist(cwd)) {\n\t\t\trenderWarning(\n\t\t\t\tlineNum,\n\t\t\t\t`Found cached '${cacheKey}', but deleted it since it was not in the cache tracker...`,\n\t\t\t\t[GraphicsTextEffect.Italic]\n\t\t\t)\n\t\t\tdiskUtil.deleteDir(cwd)\n\t\t}\n\n\t\trenderLine(lineNum, `Starting to build '${cacheKey}'...`, [\n\t\t\tGraphicsTextEffect.Green,\n\t\t])\n\n\t\ttry {\n\t\t\tawait fixture.installFeatures(options, cacheKey)\n\t\t\trenderLine(\n\t\t\t\tlineNum,\n\t\t\t\t`Done caching '${cacheKey}'. ${\n\t\t\t\t\tremaining - 1\n\t\t\t\t} remaining (${durationUtil.msToFriendly(getTimeSpent())})...`,\n\t\t\t\t[GraphicsTextEffect.Green, GraphicsTextEffect.Bold]\n\t\t\t)\n\t\t} catch (err: any) {\n\t\t\trenderLine(lineNum, `Error caching '${cacheKey}'...`, [\n\t\t\t\tGraphicsTextEffect.Red,\n\t\t\t\tGraphicsTextEffect.Bold,\n\t\t\t])\n\n\t\t\trenderLine(lineNum, `Error caching ${cacheKey}:\\n\\n${err.stack}`)\n\t\t}\n\t}\n}\n\nfunction dropInS(remaining: number) {\n\treturn remaining === 1 ? '' : 's'\n}\n\nvoid run()\n\t.then(() => {\n\t\tif (process.env.DID_BUILD_CACHE_SCRIPT) {\n\t\t\tterm.renderLine('Running pre build cache script')\n\t\t\texecSync(process.env.DID_BUILD_CACHE_SCRIPT)\n\t\t}\n\t\tif (progressInterval) {\n\t\t\tclearInterval(progressInterval)\n\t\t}\n\t})\n\t.catch((err) => {\n\t\tterm.renderError(err)\n\t\tif (progressInterval) {\n\t\t\tclearInterval(progressInterval)\n\t\t}\n\t})\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"cleanTestCache.js","names":["require","config","term","TerminalInterface","__dirname","dir","testUtil","resolveTestDir","process","env","CLEAN_CACHE_SCRIPT","renderHeadline","diskUtil","deleteDir","renderLine","GraphicsTextEffect","Green"],"sources":["../../src/tests/cleanTestCache.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport { execSync } from 'child_process'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport TerminalInterface from '../interfaces/TerminalInterface'\nimport testUtil from '../tests/utilities/test.utility'\nimport { GraphicsTextEffect } from '../types/graphicsInterface.types'\nrequire('dotenv').config()\n\nconst term = new TerminalInterface(__dirname)\n\nconst dir = testUtil.resolveTestDir()\n\nif (process.env.CLEAN_CACHE_SCRIPT) {\n\tterm.renderHeadline('Running CLEAN_CACHE_SCRIPT')\n\texecSync(process.env.CLEAN_CACHE_SCRIPT)\n} else {\n\tterm.renderHeadline(`Clearing test cache at ${dir}.`)\n\tdiskUtil.deleteDir(dir)\n}\n\nterm.renderLine('Test cache cleared!', [GraphicsTextEffect.Green])\n"],"mappings":"AAAA;;;;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACAA,OAAO,CAAC,QAAD,CAAP,CAAkBC,MAAlB;;AAEA,IAAMC,IAAI,GAAG,IAAIC,6BAAJ,CAAsBC,SAAtB,CAAb;;AAEA,IAAMC,GAAG,GAAGC,iBAASC,cAAT,EAAZ;;AAEA,IAAIC,OAAO,CAACC,GAAR,CAAYC,kBAAhB,EAAoC;EACnCR,IAAI,CAACS,cAAL,CAAoB,4BAApB;EACA,6BAASH,OAAO,CAACC,GAAR,CAAYC,kBAArB;AACA,CAHD,MAGO;EACNR,IAAI,CAACS,cAAL,kCAA8CN,GAA9C;;EACAO,2BAASC,SAAT,CAAmBR,GAAnB;AACA;;AAEDH,IAAI,CAACY,UAAL,CAAgB,qBAAhB,EAAuC,CAACC,sCAAmBC,KAApB,CAAvC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"cleanTestData.js","names":["demoNumbers","Object","values","demoNumbersByName","cwd","process","term","TerminalInterface","run","renderHeadline","length","serviceFactory","ServiceFactory","mercuryFixture","MercuryFixture","apiClientFactory","getApiClientFactory","storeFactory","StoreFactory","homeDir","osUtil","homedir","emitter","CliGlobalEmitter","Emitter","personFixture","PersonFixture","orgFixture","OrganizationFixture","skillFixture","SkillFixture","number","renderLine","loginAsDemoPerson","clearAllOrgs","totalOrgs","clearAllSkills","totalSkills","disconnectAll","then","err","renderError","exit"],"sources":["../../src/tests/cleanTestData.ts"],"sourcesContent":["import osUtil from 'os'\nimport CliGlobalEmitter from '../GlobalEmitter'\nimport TerminalInterface from '../interfaces/TerminalInterface'\nimport ServiceFactory from '../services/ServiceFactory'\nimport StoreFactory from '../stores/StoreFactory'\nimport * as demoNumbersByName from '../tests/constants'\nimport MercuryFixture from './fixtures/MercuryFixture'\nimport OrganizationFixture from './fixtures/OrganizationFixture'\nimport PersonFixture from './fixtures/PersonFixture'\nimport SkillFixture from './fixtures/SkillFixture'\n\nconst demoNumbers = Object.values(demoNumbersByName)\n\nconst cwd = process.cwd()\nconst term = new TerminalInterface(cwd, true)\n\nasync function run() {\n\tterm.renderHeadline(\n\t\t`Starting cleanup for ${demoNumbers.length} demo numbers.`\n\t)\n\n\tconst serviceFactory = new ServiceFactory()\n\tconst mercuryFixture = new MercuryFixture(cwd, serviceFactory)\n\tconst apiClientFactory = mercuryFixture.getApiClientFactory()\n\tconst storeFactory = new StoreFactory({\n\t\tcwd,\n\t\tserviceFactory,\n\t\thomeDir: osUtil.homedir(),\n\t\temitter: CliGlobalEmitter.Emitter(),\n\t\tapiClientFactory,\n\t})\n\n\tconst personFixture = new PersonFixture(apiClientFactory)\n\tconst orgFixture = new OrganizationFixture(personFixture, storeFactory)\n\tconst skillFixture = new SkillFixture(\n\t\tpersonFixture,\n\t\tstoreFactory,\n\t\tapiClientFactory\n\t)\n\n\tfor (const number of demoNumbers) {\n\t\tterm.renderLine(`Starting cleanup for ${number}`)\n\t\tterm.renderLine(`Logging in...`)\n\n\t\tawait personFixture.loginAsDemoPerson(number)\n\n\t\tterm.renderLine(`Success`)\n\n\t\tterm.renderLine(`Deleting organizations`)\n\t\tconst totalOrgs = await orgFixture.clearAllOrgs()\n\t\tterm.renderLine(`${totalOrgs} orgs deleted`)\n\n\t\tterm.renderLine('Deleting skills')\n\t\tconst totalSkills = await skillFixture.clearAllSkills()\n\t\tterm.renderLine(`${totalSkills} deleted`)\n\t}\n\n\tawait mercuryFixture.disconnectAll()\n}\n\nvoid run()\n\t.then(() => {\n\t\tterm.renderLine('Done cleaning up!')\n\t})\n\t.catch((err) => {\n\t\tterm.renderError(err)\n\t\tprocess.exit(1)\n\t})\n"],"mappings":";;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;AAEA,IAAMA,WAAW,GAAGC,MAAM,CAACC,MAAP,CAAcC,iBAAd,CAApB;AAEA,IAAMC,GAAG,GAAGC,OAAO,CAACD,GAAR,EAAZ;AACA,IAAME,IAAI,GAAG,IAAIC,6BAAJ,CAAsBH,GAAtB,EAA2B,IAA3B,CAAb;;SAEeI,G;;;;;uFAAf;IAAA;;IAAA;MAAA;QAAA;UAAA;YACCF,IAAI,CAACG,cAAL,gCACyBT,WAAW,CAACU,MADrC;YAIMC,cALP,GAKwB,IAAIC,0BAAJ,EALxB;YAMOC,cANP,GAMwB,IAAIC,0BAAJ,CAAmBV,GAAnB,EAAwBO,cAAxB,CANxB;YAOOI,gBAPP,GAO0BF,cAAc,CAACG,mBAAf,EAP1B;YAQOC,YARP,GAQsB,IAAIC,wBAAJ,CAAiB;cACrCd,GAAG,EAAHA,GADqC;cAErCO,cAAc,EAAdA,cAFqC;cAGrCQ,OAAO,EAAEC,eAAOC,OAAP,EAH4B;cAIrCC,OAAO,EAAEC,0BAAiBC,OAAjB,EAJ4B;cAKrCT,gBAAgB,EAAhBA;YALqC,CAAjB,CARtB;YAgBOU,aAhBP,GAgBuB,IAAIC,yBAAJ,CAAkBX,gBAAlB,CAhBvB;YAiBOY,UAjBP,GAiBoB,IAAIC,+BAAJ,CAAwBH,aAAxB,EAAuCR,YAAvC,CAjBpB;YAkBOY,YAlBP,GAkBsB,IAAIC,wBAAJ,CACpBL,aADoB,EAEpBR,YAFoB,EAGpBF,gBAHoB,CAlBtB;YAAA,uCAwBsBf,WAxBtB;YAAA;;YAAA;;UAAA;YAAA;cAAA;cAAA;YAAA;;YAwBY+B,MAxBZ;YAyBEzB,IAAI,CAAC0B,UAAL,gCAAwCD,MAAxC;YACAzB,IAAI,CAAC0B,UAAL;YA1BF;YAAA,OA4BQP,aAAa,CAACQ,iBAAd,CAAgCF,MAAhC,CA5BR;;UAAA;YA8BEzB,IAAI,CAAC0B,UAAL;YAEA1B,IAAI,CAAC0B,UAAL;YAhCF;YAAA,OAiC0BL,UAAU,CAACO,YAAX,EAjC1B;;UAAA;YAiCQC,SAjCR;YAkCE7B,IAAI,CAAC0B,UAAL,WAAmBG,SAAnB;YAEA7B,IAAI,CAAC0B,UAAL,CAAgB,iBAAhB;YApCF;YAAA,OAqC4BH,YAAY,CAACO,cAAb,EArC5B;;UAAA;YAqCQC,WArCR;YAsCE/B,IAAI,CAAC0B,UAAL,WAAmBK,WAAnB;;UAtCF;YAAA;YAAA;;UAAA;YAAA;YAAA;;UAAA;YAAA;YAAA;;YAAA;;UAAA;YAAA;;YAAA;;YAAA;;UAAA;YAAA;YAAA,OAyCOxB,cAAc,CAACyB,aAAf,EAzCP;;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,C;;;;AA4CA,KAAK9B,GAAG,GACN+B,IADG,CACE,YAAM;EACXjC,IAAI,CAAC0B,UAAL,CAAgB,mBAAhB;AACA,CAHG,WAIG,UAACQ,GAAD,EAAS;EACflC,IAAI,CAACmC,WAAL,CAAiBD,GAAjB;EACAnC,OAAO,CAACqC,IAAR,CAAa,CAAb;AACA,CAPG,CAAL"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"constants.js","names":["require","config","DEMO_NUMBER","process","env","DEMO_NUMBER_LOGIN_AS_SKILL","DEMO_NUMBER_INSTALL_SKILL","DEMO_NUMBER_GLOBAL_EVENTS","DEMO_NUMBER_EVENTS_ON_BOOT","DEMO_NUMBER_VIEWS_ON_BOOT","DEMO_NUMBER_CREATING_AN_EVENT","DEMO_NUMBER_EVENT_STORE"],"sources":["../../src/tests/constants.ts"],"sourcesContent":["require('dotenv').config()\n\nexport const DEMO_NUMBER = process.env.DEMO_NUMBER ?? '***missing***'\nexport const DEMO_NUMBER_LOGIN_AS_SKILL =\n\tprocess.env.DEMO_NUMBER_LOGIN_AS_SKILL ?? '***missing***'\nexport const DEMO_NUMBER_INSTALL_SKILL =\n\tprocess.env.DEMO_NUMBER_INSTALL_SKILL ?? '***missing***'\nexport const DEMO_NUMBER_GLOBAL_EVENTS =\n\tprocess.env.DEMO_NUMBER_GLOBAL_EVENTS ?? '***missing***'\nexport const DEMO_NUMBER_EVENTS_ON_BOOT =\n\tprocess.env.DEMO_NUMBER_EVENTS_ON_BOOT ?? '***missing***'\nexport const DEMO_NUMBER_VIEWS_ON_BOOT =\n\tprocess.env.DEMO_NUMBER_VIEWS_ON_BOOT ?? '***missing***'\nexport const DEMO_NUMBER_CREATING_AN_EVENT =\n\tprocess.env.DEMO_NUMBER_CREATING_AN_EVENT ?? '***missing***'\nexport const DEMO_NUMBER_EVENT_STORE =\n\tprocess.env.DEMO_NUMBER_EVENT_STORE ?? '***missing***'\n"],"mappings":";;;;;;;;;AAAAA,OAAO,CAAC,QAAD,CAAP,CAAkBC,MAAlB;;AAEO,IAAMC,WAAW,4BAAGC,OAAO,CAACC,GAAR,CAAYF,WAAf,yEAA8B,eAA/C;;AACA,IAAMG,0BAA0B,6BACtCF,OAAO,CAACC,GAAR,CAAYC,0BAD0B,2EACI,eADpC;;AAEA,IAAMC,yBAAyB,6BACrCH,OAAO,CAACC,GAAR,CAAYE,yBADyB,2EACI,eADnC;;AAEA,IAAMC,yBAAyB,6BACrCJ,OAAO,CAACC,GAAR,CAAYG,yBADyB,2EACI,eADnC;;AAEA,IAAMC,0BAA0B,6BACtCL,OAAO,CAACC,GAAR,CAAYI,0BAD0B,2EACI,eADpC;;AAEA,IAAMC,yBAAyB,6BACrCN,OAAO,CAACC,GAAR,CAAYK,yBADyB,2EACI,eADnC;;AAEA,IAAMC,6BAA6B,6BACzCP,OAAO,CAACC,GAAR,CAAYM,6BAD6B,2EACI,eADvC;;AAEA,IAAMC,uBAAuB,6BACnCR,OAAO,CAACC,GAAR,CAAYO,uBADuB,2EACI,eADjC"}
|