@sprucelabs/spruce-cli 15.2.24 → 15.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +31 -0
- package/build/.spruce/errors/errors.types.js.map +1 -1
- package/build/.spruce/errors/options.types.js.map +1 -1
- package/build/.spruce/errors/spruceCli/actionCancelled.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/bootError.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/buildFailed.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/cacheNotEnabled.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/commandAborted.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/commandBlocked.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/commandNotImplemented.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/createAutoloaderFailed.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/dependencyExists.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/deployFailed.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/directoryEmpty.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/directoryNotSkill.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/dockerNotStarted.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/executingCommandFailed.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/failedToImport.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/featureNotInstalled.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/fileExists.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/generic.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/invalidCommand.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/invalidEventContract.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/invalidFeatureCode.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/invalidTestDirectory.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/lintFailed.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/mercuryResponseError.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/missingDependencies.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/missingDependenciesDependency.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/noOrganizationsFound.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/noSkillsRegistered.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/notImplemented.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/notLoggedIn.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/schemaExists.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/schemaFailedToImport.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/schemaTemplateItemBuildingFailed.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/skillNotFound.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/skillNotRegistered.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/skillViewExists.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/storeExists.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/testFailed.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/themeExists.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/transportAlreadyExists.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/vscodeNotInstalled.schema.js.map +1 -1
- package/build/.spruce/events/events.contract.js.map +1 -1
- package/build/.spruce/events/heartwood/didRegisterSkillViews.v2021_02_11.contract.js.map +1 -1
- package/build/.spruce/events/heartwood/generateUrl.v2021_02_11.contract.js.map +1 -1
- package/build/.spruce/events/heartwood/getSkillViews.v2021_02_11.contract.js.map +1 -1
- package/build/.spruce/events/heartwood/listViews.v2021_02_11.contract.js.map +1 -1
- package/build/.spruce/events/heartwood/registerSkillViews.v2021_02_11.contract.js.map +1 -1
- package/build/.spruce/schemas/fields/fieldClassMap.js.map +1 -1
- package/build/.spruce/schemas/fields/fields.types.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitTarget.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitTarget.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitTargetAndPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlResponsePayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/getSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/getSkillViewsResponsePayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/getViewControllersEmitTarget.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/listViewsResponsePayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/listViewsResult.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsResponsePayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/theme.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/themeProps.schema.js.map +1 -1
- package/build/.spruce/schemas/schemas.types.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/fullMessageChoices.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/location.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/message.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/messageSource.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/messageTarget.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/organization.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/person.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/personLocation.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/personOrganization.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/profileImage.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/role.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/sendMessage.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/skill.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/skillCreator.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/bootSkillOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/createConversationTopicOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/createErrorOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/createOrganizationOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/createSchemaOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/createTestOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/generatedDir.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/generatedFile.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/installSkillAtOrganizationOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/listenEventOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/namedTemplateItem.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/nodeFeatureOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/onboardOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/onboarding.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/personWithToken.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/registerDashboardWidgetsEmitPayloadSchema.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/setupTestsOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/setupVscodeOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/skillFeature.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/syncErrorOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/syncEventOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/syncSchemaFieldsOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/syncSchemasOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/testOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/upgradeSkillOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/watcherDidDetectChangesEmitPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceEventUtils/v2021_09_13/eventSource.schema.js.map +1 -1
- package/build/.spruce/skill.types.js.map +1 -1
- package/build/GlobalEmitter.js.map +1 -1
- package/build/InFlightEntertainment.js.map +1 -1
- package/build/__tests__/behavioral/AddingADependency.test.js.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.d.ts +1 -0
- package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js +20 -14
- 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.d.ts +1 -0
- package/build/__tests__/implementation/DataStoreStore.test.js +30 -3
- package/build/__tests__/implementation/DataStoreStore.test.js.map +1 -1
- package/build/__tests__/implementation/DeletingOrphanedSchemaDefinitions.test.js.map +1 -1
- package/build/__tests__/implementation/EventContractCleanerUtil.test.js.map +1 -1
- package/build/__tests__/implementation/EventStore.test.d.ts +1 -0
- package/build/__tests__/implementation/EventStore.test.js +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 +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 +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.d.ts +1 -0
- package/build/features/store/stores/StoreStore.js +6 -1
- package/build/features/store/stores/StoreStore.js.map +1 -1
- package/build/features/store/templateItemBuilders/StoreTemplateItemBuilder.js.map +1 -1
- package/build/features/store/writers/StoreWriter.js.map +1 -1
- package/build/features/test/TestFeature.js.map +1 -1
- package/build/features/test/TestLogItemGenerator.js.map +1 -1
- package/build/features/test/TestReporter.js.map +1 -1
- package/build/features/test/TestRunner.js.map +1 -1
- package/build/features/test/actions/CreateAction.js +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 +1 -3
- 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.d.ts +2 -1
- package/build/tests/CommandFaker.js +13 -7
- 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 +36 -36
- package/src/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.ts +21 -7
- package/src/__tests__/implementation/DataStoreStore.test.ts +8 -0
- 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/event/writers/EventWriter.ts +1 -1
- package/src/features/schema/writers/SchemaWriter.ts +1 -1
- package/src/features/store/StoreFeature.ts +1 -1
- package/src/features/store/stores/StoreStore.ts +5 -1
- package/src/features/test/actions/CreateAction.ts +1 -1
- package/src/features/validateAndNormalize.utility.ts +2 -2
- package/src/features/view/writers/ViewWriter.ts +3 -2
- package/src/tests/CommandFaker.ts +9 -5
|
@@ -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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/tests/fixtures/FeatureFixture.ts"],"names":["FeatureFixture","options","cwd","search","Error","serviceFactory","term","ui","generateCacheIfMissing","shouldGenerateCacheIfMissing","apiClientFactory","emitter","featureInstaller","type","Service","linkWorkspacePackages","Cli","Boot","graphicsInterface","cli","linkedUtils","cacheKey","bootOptions","installFeatures","features","isCached","installedSkills","testUtil","isCacheEnabled","doesCacheExist","copyCachedSkillToCwd","removeCwdFromCacheTracker","addCwdToCacheTracker","cacheCli","linkLocalPackages","settings","loadCacheTracker","diskUtil","copyDir","process","env","TEST_HOST","set","dirsToDelete","push","writeCacheSettings","settingsFile","getTestCacheTrackerFilePath","settingsFolder","pathUtil","dirname","doesDirExist","createDir","writeFile","JSON","stringify","alreadyInstalled","resolvePath","exists","doesFileExist","settingsObject","parse","readFile","resolveHashSprucePath","__dirname","dir","deleteDir"],"mappings":"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","sourcesContent":["import pathUtil from 'path'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport Cli, { CliBootOptions, CliInterface } from '../../cli'\nimport FeatureInstaller from '../../features/FeatureInstaller'\nimport { InstallFeature } from '../../features/features.types'\nimport { GlobalEmitter } from '../../GlobalEmitter'\nimport ServiceFactory, {\n\tServiceProvider,\n\tService,\n\tServiceMap,\n} from '../../services/ServiceFactory'\nimport { ApiClientFactory } from '../../types/apiClient.types'\nimport { GraphicsInterface } from '../../types/cli.types'\nimport testUtil from '../utilities/test.utility'\n\nexport interface CachedCli {\n\tcli: CliInterface\n\tcwd: string\n}\n\nexport interface FeatureFixtureOptions {\n\tcwd: string\n\tserviceFactory: ServiceFactory\n\tui: GraphicsInterface\n\tshouldGenerateCacheIfMissing?: boolean\n\tapiClientFactory: ApiClientFactory\n\temitter?: GlobalEmitter\n\tfeatureInstaller?: FeatureInstaller\n}\n\nexport default class FeatureFixture implements ServiceProvider {\n\tprivate cwd: string\n\tprivate installedSkills: Record<string, CachedCli> = {}\n\tprivate serviceFactory: ServiceFactory\n\tprivate static linkedUtils = false\n\tprivate static dirsToDelete: string[] = []\n\tprivate term: GraphicsInterface\n\tprivate generateCacheIfMissing = false\n\tprivate apiClientFactory: ApiClientFactory\n\tprivate emitter?: GlobalEmitter\n\tprivate featureInstaller?: FeatureInstaller\n\n\tpublic constructor(options: FeatureFixtureOptions) {\n\t\tif (options.cwd.search('packages/spruce-cli') > -1) {\n\t\t\tthrow new Error(\"You can't run FeatureFixture in the cli directory.\")\n\t\t}\n\n\t\tthis.cwd = options.cwd\n\t\tthis.serviceFactory = options.serviceFactory\n\t\tthis.term = options.ui\n\t\tthis.generateCacheIfMissing = !!options.shouldGenerateCacheIfMissing\n\t\tthis.apiClientFactory = options.apiClientFactory\n\t\tthis.emitter = options.emitter\n\t\tthis.featureInstaller = options.featureInstaller\n\t}\n\n\tpublic static deleteOldSkillDirs() {\n\t\tfor (const dir of this.dirsToDelete) {\n\t\t\tdiskUtil.deleteDir(dir)\n\t\t}\n\t}\n\n\tpublic Service<S extends Service>(\n\t\ttype: S,\n\t\tcwd?: string | undefined\n\t): ServiceMap[S] {\n\t\treturn this.serviceFactory.Service(cwd ?? this.cwd, type)\n\t}\n\n\tpublic async Cli(options?: CliBootOptions) {\n\t\tawait this.linkWorkspacePackages()\n\n\t\tconst cli = await Cli.Boot({\n\t\t\tcwd: this.cwd,\n\t\t\tgraphicsInterface: this.term,\n\t\t\tapiClientFactory: this.apiClientFactory,\n\t\t\temitter: this.emitter,\n\t\t\tfeatureInstaller: this.featureInstaller,\n\t\t\t...(options ?? {}),\n\t\t})\n\n\t\treturn cli\n\t}\n\n\tprivate async linkWorkspacePackages() {\n\t\tif (!FeatureFixture.linkedUtils) {\n\t\t\tFeatureFixture.linkedUtils = true\n\n\t\t\t// const expectedLinkedDir = pathUtil.join(\n\t\t\t// \tos.homedir(),\n\t\t\t// \t'.config',\n\t\t\t// \t'yarn',\n\t\t\t// \t'link',\n\t\t\t// \t'@sprucelabs',\n\t\t\t// \t'spruce-skill-utils'\n\t\t\t// )\n\n\t\t\t// if (!fsUtil.existsSync(expectedLinkedDir)) {\n\t\t\t// \tconst command = this.Service('command')\n\t\t\t// \ttry {\n\t\t\t// \t\tawait command.execute(\n\t\t\t// \t\t\t`cd ${pathUtil.join(\n\t\t\t// \t\t\t\t__dirname,\n\t\t\t// \t\t\t\t'..',\n\t\t\t// \t\t\t\t'..',\n\t\t\t// \t\t\t\t'..',\n\t\t\t// \t\t\t\t'spruce-skill-utils'\n\t\t\t// \t\t\t)} && yarn link`\n\t\t\t// \t\t)\n\t\t\t// \t} catch (err) {\n\t\t\t// \t\tif (fsUtil.existsSync(expectedLinkedDir)) {\n\t\t\t// \t\t\tlog.warn(`Symlink ${expectedLinkedDir} already exists`)\n\t\t\t// \t\t} else {\n\t\t\t// \t\t\tlog.warn(\n\t\t\t// \t\t\t\t`Symlink ${expectedLinkedDir} failed, but the check thinks it is missing`\n\t\t\t// \t\t\t)\n\t\t\t// \t\t}\n\t\t\t// \t}\n\t\t\t// }\n\t\t}\n\t}\n\n\tpublic async installCachedFeatures(\n\t\tcacheKey: string,\n\t\tbootOptions?: CliBootOptions\n\t) {\n\t\treturn this.installFeatures([], cacheKey, bootOptions)\n\t}\n\n\tpublic async installFeatures(\n\t\tfeatures: InstallFeature[],\n\t\tcacheKey?: string,\n\t\tbootOptions?: CliBootOptions\n\t) {\n\t\tif (this.isCached(cacheKey)) {\n\t\t\treturn this.installedSkills[cacheKey as string].cli\n\t\t}\n\n\t\tlet isCached = false\n\t\tif (cacheKey && testUtil.isCacheEnabled()) {\n\t\t\tisCached = this.doesCacheExist(cacheKey)\n\n\t\t\tif (!isCached && !this.generateCacheIfMissing) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Cached skill not found, make sure\\n\\n\"${cacheKey}\"\\n\\nis in your package.json under \"testSkillCache\" and run\\n\\n\\`yarn cache.tests\\``\n\t\t\t\t)\n\t\t\t}\n\n\t\t\tif (isCached) {\n\t\t\t\tawait this.copyCachedSkillToCwd(cacheKey)\n\t\t\t} else {\n\t\t\t\tthis.removeCwdFromCacheTracker(cacheKey)\n\t\t\t}\n\t\t}\n\n\t\tconst cli = await this.Cli(bootOptions)\n\n\t\tif (!isCached) {\n\t\t\tawait cli.installFeatures({\n\t\t\t\tfeatures,\n\t\t\t})\n\t\t}\n\n\t\tif (cacheKey && testUtil.isCacheEnabled()) {\n\t\t\t!isCached && this.addCwdToCacheTracker(cacheKey)\n\t\t\tthis.cacheCli(cacheKey, cli)\n\t\t}\n\n\t\tawait this.linkLocalPackages()\n\n\t\treturn cli\n\t}\n\n\tprivate isCached(cacheKey: string | undefined) {\n\t\treturn (\n\t\t\tcacheKey && this.installedSkills[cacheKey] && testUtil.isCacheEnabled()\n\t\t)\n\t}\n\n\tpublic async linkLocalPackages() {\n\t\t// const command = this.Service('command')\n\t\t// await command.execute(`yarn link @sprucelabs/spruce-skill-utils`)\n\t}\n\n\tprivate async copyCachedSkillToCwd(cacheKey: string) {\n\t\tlet isCached = this.doesCacheExist(cacheKey)\n\n\t\tif (isCached) {\n\t\t\tlet settings = this.loadCacheTracker()\n\t\t\tawait diskUtil.copyDir(settings[cacheKey], this.cwd)\n\n\t\t\tif (process.env.TEST_HOST) {\n\t\t\t\tthis.Service('env').set('HOST', process.env.TEST_HOST)\n\t\t\t}\n\n\t\t\tFeatureFixture.dirsToDelete.push(this.cwd)\n\t\t}\n\t}\n\n\tprivate addCwdToCacheTracker(cacheKey: string) {\n\t\tlet settings = this.loadCacheTracker()\n\n\t\tif (!settings) {\n\t\t\tsettings = {}\n\t\t}\n\n\t\tif (!settings[cacheKey]) {\n\t\t\tsettings[cacheKey] = this.cwd\n\t\t\tthis.writeCacheSettings(settings)\n\t\t}\n\t\treturn settings\n\t}\n\n\tprivate removeCwdFromCacheTracker(cacheKey: string) {\n\t\tlet settings = this.loadCacheTracker()\n\n\t\tif (!settings) {\n\t\t\tsettings = {}\n\t\t}\n\n\t\tif (settings[cacheKey]) {\n\t\t\tdelete settings[cacheKey]\n\t\t\tthis.writeCacheSettings(settings)\n\t\t}\n\t}\n\n\tprivate writeCacheSettings(settings: Record<string, any>) {\n\t\tconst settingsFile = this.getTestCacheTrackerFilePath()\n\t\tconst settingsFolder = pathUtil.dirname(settingsFile)\n\n\t\t!diskUtil.doesDirExist(settingsFolder) && diskUtil.createDir(settingsFolder)\n\n\t\tdiskUtil.writeFile(settingsFile, JSON.stringify(settings, null, 2))\n\t}\n\n\tprivate doesCacheExist(cacheKey: string) {\n\t\tlet alreadyInstalled = false\n\n\t\tconst settings = this.loadCacheTracker()\n\n\t\tif (settings?.[cacheKey]) {\n\t\t\talreadyInstalled = true\n\t\t}\n\n\t\tif (alreadyInstalled) {\n\t\t\talreadyInstalled = diskUtil.doesDirExist(\n\t\t\t\tdiskUtil.resolvePath(settings[cacheKey], 'node_modules')\n\t\t\t)\n\t\t}\n\n\t\treturn alreadyInstalled\n\t}\n\n\tpublic loadCacheTracker() {\n\t\tconst settingsFile = this.getTestCacheTrackerFilePath()\n\n\t\tconst exists = diskUtil.doesFileExist(settingsFile)\n\t\tlet settingsObject: Record<string, any> = {}\n\n\t\ttry {\n\t\t\tsettingsObject = exists ? JSON.parse(diskUtil.readFile(settingsFile)) : {}\n\t\t\t// eslint-disable-next-line no-empty\n\t\t} catch {}\n\n\t\treturn settingsObject\n\t}\n\n\tpublic getTestCacheTrackerFilePath() {\n\t\treturn diskUtil.resolveHashSprucePath(\n\t\t\t__dirname,\n\t\t\t'tmp',\n\t\t\t`cached-skills.json`\n\t\t)\n\t}\n\n\tprivate cacheCli(cacheKey: string, cli: CliInterface) {\n\t\tthis.installedSkills[cacheKey] = {\n\t\t\tcwd: this.cwd,\n\t\t\tcli,\n\t\t}\n\t}\n}\n"],"file":"FeatureFixture.js"}
|
|
1
|
+
{"version":3,"file":"FeatureFixture.js","names":["FeatureFixture","options","cwd","search","Error","serviceFactory","term","ui","generateCacheIfMissing","shouldGenerateCacheIfMissing","apiClientFactory","emitter","featureInstaller","type","Service","linkWorkspacePackages","Cli","Boot","graphicsInterface","cli","linkedUtils","cacheKey","bootOptions","installFeatures","features","isCached","installedSkills","testUtil","isCacheEnabled","doesCacheExist","copyCachedSkillToCwd","removeCwdFromCacheTracker","addCwdToCacheTracker","cacheCli","linkLocalPackages","settings","loadCacheTracker","diskUtil","copyDir","process","env","TEST_HOST","set","dirsToDelete","push","writeCacheSettings","settingsFile","getTestCacheTrackerFilePath","settingsFolder","pathUtil","dirname","doesDirExist","createDir","writeFile","JSON","stringify","alreadyInstalled","resolvePath","exists","doesFileExist","settingsObject","parse","readFile","resolveHashSprucePath","__dirname","dir","deleteDir"],"sources":["../../../src/tests/fixtures/FeatureFixture.ts"],"sourcesContent":["import pathUtil from 'path'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport Cli, { CliBootOptions, CliInterface } from '../../cli'\nimport FeatureInstaller from '../../features/FeatureInstaller'\nimport { InstallFeature } from '../../features/features.types'\nimport { GlobalEmitter } from '../../GlobalEmitter'\nimport ServiceFactory, {\n\tServiceProvider,\n\tService,\n\tServiceMap,\n} from '../../services/ServiceFactory'\nimport { ApiClientFactory } from '../../types/apiClient.types'\nimport { GraphicsInterface } from '../../types/cli.types'\nimport testUtil from '../utilities/test.utility'\n\nexport interface CachedCli {\n\tcli: CliInterface\n\tcwd: string\n}\n\nexport interface FeatureFixtureOptions {\n\tcwd: string\n\tserviceFactory: ServiceFactory\n\tui: GraphicsInterface\n\tshouldGenerateCacheIfMissing?: boolean\n\tapiClientFactory: ApiClientFactory\n\temitter?: GlobalEmitter\n\tfeatureInstaller?: FeatureInstaller\n}\n\nexport default class FeatureFixture implements ServiceProvider {\n\tprivate cwd: string\n\tprivate installedSkills: Record<string, CachedCli> = {}\n\tprivate serviceFactory: ServiceFactory\n\tprivate static linkedUtils = false\n\tprivate static dirsToDelete: string[] = []\n\tprivate term: GraphicsInterface\n\tprivate generateCacheIfMissing = false\n\tprivate apiClientFactory: ApiClientFactory\n\tprivate emitter?: GlobalEmitter\n\tprivate featureInstaller?: FeatureInstaller\n\n\tpublic constructor(options: FeatureFixtureOptions) {\n\t\tif (options.cwd.search('packages/spruce-cli') > -1) {\n\t\t\tthrow new Error(\"You can't run FeatureFixture in the cli directory.\")\n\t\t}\n\n\t\tthis.cwd = options.cwd\n\t\tthis.serviceFactory = options.serviceFactory\n\t\tthis.term = options.ui\n\t\tthis.generateCacheIfMissing = !!options.shouldGenerateCacheIfMissing\n\t\tthis.apiClientFactory = options.apiClientFactory\n\t\tthis.emitter = options.emitter\n\t\tthis.featureInstaller = options.featureInstaller\n\t}\n\n\tpublic static deleteOldSkillDirs() {\n\t\tfor (const dir of this.dirsToDelete) {\n\t\t\tdiskUtil.deleteDir(dir)\n\t\t}\n\t}\n\n\tpublic Service<S extends Service>(\n\t\ttype: S,\n\t\tcwd?: string | undefined\n\t): ServiceMap[S] {\n\t\treturn this.serviceFactory.Service(cwd ?? this.cwd, type)\n\t}\n\n\tpublic async Cli(options?: CliBootOptions) {\n\t\tawait this.linkWorkspacePackages()\n\n\t\tconst cli = await Cli.Boot({\n\t\t\tcwd: this.cwd,\n\t\t\tgraphicsInterface: this.term,\n\t\t\tapiClientFactory: this.apiClientFactory,\n\t\t\temitter: this.emitter,\n\t\t\tfeatureInstaller: this.featureInstaller,\n\t\t\t...(options ?? {}),\n\t\t})\n\n\t\treturn cli\n\t}\n\n\tprivate async linkWorkspacePackages() {\n\t\tif (!FeatureFixture.linkedUtils) {\n\t\t\tFeatureFixture.linkedUtils = true\n\n\t\t\t// const expectedLinkedDir = pathUtil.join(\n\t\t\t// \tos.homedir(),\n\t\t\t// \t'.config',\n\t\t\t// \t'yarn',\n\t\t\t// \t'link',\n\t\t\t// \t'@sprucelabs',\n\t\t\t// \t'spruce-skill-utils'\n\t\t\t// )\n\n\t\t\t// if (!fsUtil.existsSync(expectedLinkedDir)) {\n\t\t\t// \tconst command = this.Service('command')\n\t\t\t// \ttry {\n\t\t\t// \t\tawait command.execute(\n\t\t\t// \t\t\t`cd ${pathUtil.join(\n\t\t\t// \t\t\t\t__dirname,\n\t\t\t// \t\t\t\t'..',\n\t\t\t// \t\t\t\t'..',\n\t\t\t// \t\t\t\t'..',\n\t\t\t// \t\t\t\t'spruce-skill-utils'\n\t\t\t// \t\t\t)} && yarn link`\n\t\t\t// \t\t)\n\t\t\t// \t} catch (err) {\n\t\t\t// \t\tif (fsUtil.existsSync(expectedLinkedDir)) {\n\t\t\t// \t\t\tlog.warn(`Symlink ${expectedLinkedDir} already exists`)\n\t\t\t// \t\t} else {\n\t\t\t// \t\t\tlog.warn(\n\t\t\t// \t\t\t\t`Symlink ${expectedLinkedDir} failed, but the check thinks it is missing`\n\t\t\t// \t\t\t)\n\t\t\t// \t\t}\n\t\t\t// \t}\n\t\t\t// }\n\t\t}\n\t}\n\n\tpublic async installCachedFeatures(\n\t\tcacheKey: string,\n\t\tbootOptions?: CliBootOptions\n\t) {\n\t\treturn this.installFeatures([], cacheKey, bootOptions)\n\t}\n\n\tpublic async installFeatures(\n\t\tfeatures: InstallFeature[],\n\t\tcacheKey?: string,\n\t\tbootOptions?: CliBootOptions\n\t) {\n\t\tif (this.isCached(cacheKey)) {\n\t\t\treturn this.installedSkills[cacheKey as string].cli\n\t\t}\n\n\t\tlet isCached = false\n\t\tif (cacheKey && testUtil.isCacheEnabled()) {\n\t\t\tisCached = this.doesCacheExist(cacheKey)\n\n\t\t\tif (!isCached && !this.generateCacheIfMissing) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Cached skill not found, make sure\\n\\n\"${cacheKey}\"\\n\\nis in your package.json under \"testSkillCache\" and run\\n\\n\\`yarn cache.tests\\``\n\t\t\t\t)\n\t\t\t}\n\n\t\t\tif (isCached) {\n\t\t\t\tawait this.copyCachedSkillToCwd(cacheKey)\n\t\t\t} else {\n\t\t\t\tthis.removeCwdFromCacheTracker(cacheKey)\n\t\t\t}\n\t\t}\n\n\t\tconst cli = await this.Cli(bootOptions)\n\n\t\tif (!isCached) {\n\t\t\tawait cli.installFeatures({\n\t\t\t\tfeatures,\n\t\t\t})\n\t\t}\n\n\t\tif (cacheKey && testUtil.isCacheEnabled()) {\n\t\t\t!isCached && this.addCwdToCacheTracker(cacheKey)\n\t\t\tthis.cacheCli(cacheKey, cli)\n\t\t}\n\n\t\tawait this.linkLocalPackages()\n\n\t\treturn cli\n\t}\n\n\tprivate isCached(cacheKey: string | undefined) {\n\t\treturn (\n\t\t\tcacheKey && this.installedSkills[cacheKey] && testUtil.isCacheEnabled()\n\t\t)\n\t}\n\n\tpublic async linkLocalPackages() {\n\t\t// const command = this.Service('command')\n\t\t// await command.execute(`yarn link @sprucelabs/spruce-skill-utils`)\n\t}\n\n\tprivate async copyCachedSkillToCwd(cacheKey: string) {\n\t\tlet isCached = this.doesCacheExist(cacheKey)\n\n\t\tif (isCached) {\n\t\t\tlet settings = this.loadCacheTracker()\n\t\t\tawait diskUtil.copyDir(settings[cacheKey], this.cwd)\n\n\t\t\tif (process.env.TEST_HOST) {\n\t\t\t\tthis.Service('env').set('HOST', process.env.TEST_HOST)\n\t\t\t}\n\n\t\t\tFeatureFixture.dirsToDelete.push(this.cwd)\n\t\t}\n\t}\n\n\tprivate addCwdToCacheTracker(cacheKey: string) {\n\t\tlet settings = this.loadCacheTracker()\n\n\t\tif (!settings) {\n\t\t\tsettings = {}\n\t\t}\n\n\t\tif (!settings[cacheKey]) {\n\t\t\tsettings[cacheKey] = this.cwd\n\t\t\tthis.writeCacheSettings(settings)\n\t\t}\n\t\treturn settings\n\t}\n\n\tprivate removeCwdFromCacheTracker(cacheKey: string) {\n\t\tlet settings = this.loadCacheTracker()\n\n\t\tif (!settings) {\n\t\t\tsettings = {}\n\t\t}\n\n\t\tif (settings[cacheKey]) {\n\t\t\tdelete settings[cacheKey]\n\t\t\tthis.writeCacheSettings(settings)\n\t\t}\n\t}\n\n\tprivate writeCacheSettings(settings: Record<string, any>) {\n\t\tconst settingsFile = this.getTestCacheTrackerFilePath()\n\t\tconst settingsFolder = pathUtil.dirname(settingsFile)\n\n\t\t!diskUtil.doesDirExist(settingsFolder) && diskUtil.createDir(settingsFolder)\n\n\t\tdiskUtil.writeFile(settingsFile, JSON.stringify(settings, null, 2))\n\t}\n\n\tprivate doesCacheExist(cacheKey: string) {\n\t\tlet alreadyInstalled = false\n\n\t\tconst settings = this.loadCacheTracker()\n\n\t\tif (settings?.[cacheKey]) {\n\t\t\talreadyInstalled = true\n\t\t}\n\n\t\tif (alreadyInstalled) {\n\t\t\talreadyInstalled = diskUtil.doesDirExist(\n\t\t\t\tdiskUtil.resolvePath(settings[cacheKey], 'node_modules')\n\t\t\t)\n\t\t}\n\n\t\treturn alreadyInstalled\n\t}\n\n\tpublic loadCacheTracker() {\n\t\tconst settingsFile = this.getTestCacheTrackerFilePath()\n\n\t\tconst exists = diskUtil.doesFileExist(settingsFile)\n\t\tlet settingsObject: Record<string, any> = {}\n\n\t\ttry {\n\t\t\tsettingsObject = exists ? JSON.parse(diskUtil.readFile(settingsFile)) : {}\n\t\t\t// eslint-disable-next-line no-empty\n\t\t} catch {}\n\n\t\treturn settingsObject\n\t}\n\n\tpublic getTestCacheTrackerFilePath() {\n\t\treturn diskUtil.resolveHashSprucePath(\n\t\t\t__dirname,\n\t\t\t'tmp',\n\t\t\t`cached-skills.json`\n\t\t)\n\t}\n\n\tprivate cacheCli(cacheKey: string, cli: CliInterface) {\n\t\tthis.installedSkills[cacheKey] = {\n\t\t\tcwd: this.cwd,\n\t\t\tcli,\n\t\t}\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"MercuryFixture.js","names":["require","config","TEST_HOST","process","env","DEFAULT_HOST","MercuryFixture","cwd","serviceFactory","apiClientFactory","Cli","buildApiClientFactory","host","shouldReconnect","options","getApiClientFactory","resetApiClients"],"sources":["../../../src/tests/fixtures/MercuryFixture.ts"],"sourcesContent":["import Cli from '../../cli'\nimport { DEFAULT_HOST } from '../../constants'\nimport ServiceFactory from '../../services/ServiceFactory'\nimport {\n\tApiClientFactory,\n\tApiClientFactoryOptions,\n} from '../../types/apiClient.types'\nrequire('dotenv').config()\n\nconst TEST_HOST = process.env.TEST_HOST ?? DEFAULT_HOST\n\nexport default class MercuryFixture {\n\tprivate cwd: string\n\tprivate serviceFactory: ServiceFactory\n\tprivate apiClientFactory: any\n\n\tpublic constructor(cwd: string, serviceFactory: ServiceFactory) {\n\t\tthis.cwd = cwd\n\t\tthis.serviceFactory = serviceFactory\n\t\tthis.apiClientFactory = Cli.buildApiClientFactory(\n\t\t\tthis.cwd,\n\t\t\tthis.serviceFactory,\n\t\t\t{ host: TEST_HOST, shouldReconnect: false }\n\t\t)\n\t}\n\n\tpublic getApiClientFactory(): ApiClientFactory {\n\t\treturn this.apiClientFactory\n\t}\n\n\tpublic connectToApi(options?: ApiClientFactoryOptions) {\n\t\treturn this.getApiClientFactory()(options)\n\t}\n\n\tpublic async disconnectAll() {\n\t\tawait Cli.resetApiClients()\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;AACA;;;;AAMAA,OAAO,CAAC,QAAD,CAAP,CAAkBC,MAAlB;;AAEA,IAAMC,SAAS,4BAAGC,OAAO,CAACC,GAAR,CAAYF,SAAf,yEAA4BG,uBAA3C;;IAEqBC,c;EAKpB,wBAAmBC,GAAnB,EAAgCC,cAAhC,EAAgE;IAAA;IAAA;IAAA;IAAA;IAC/D,KAAKD,GAAL,GAAWA,GAAX;IACA,KAAKC,cAAL,GAAsBA,cAAtB;IACA,KAAKC,gBAAL,GAAwBC,gBAAIC,qBAAJ,CACvB,KAAKJ,GADkB,EAEvB,KAAKC,cAFkB,EAGvB;MAAEI,IAAI,EAAEV,SAAR;MAAmBW,eAAe,EAAE;IAApC,CAHuB,CAAxB;EAKA;;;;WAED,+BAA+C;MAC9C,OAAO,KAAKJ,gBAAZ;IACA;;;WAED,sBAAoBK,OAApB,EAAuD;MACtD,OAAO,KAAKC,mBAAL,GAA2BD,OAA3B,CAAP;IACA;;;;yGAED;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACOJ,gBAAIM,eAAJ,EADP;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"OrganizationFixture.js","names":["OrganizationFixture","personFixture","storeFactory","options","loginAsDemoPerson","Store","create","slug","Date","getTime","orgStore","fetchMyOrganizations","orgs","org","deleteOrganization","id","length","skillId","orgId","installSkillAtOrganization"],"sources":["../../../src/tests/fixtures/OrganizationFixture.ts"],"sourcesContent":["import StoreFactory from '../../stores/StoreFactory'\nimport PersonFixture from './PersonFixture'\n\nexport default class OrganizationFixture {\n\tprivate storeFactory: StoreFactory\n\tprivate personFixture: PersonFixture\n\n\tpublic constructor(personFixture: PersonFixture, storeFactory: StoreFactory) {\n\t\tthis.storeFactory = storeFactory\n\t\tthis.personFixture = personFixture\n\t}\n\n\tpublic async seedDemoOrg(options: { name: string; slug?: string }) {\n\t\tawait this.personFixture.loginAsDemoPerson()\n\n\t\treturn this.storeFactory.Store('organization').create({\n\t\t\tslug: `my-org-${new Date().getTime()}`,\n\t\t\t...options,\n\t\t})\n\t}\n\n\tpublic async clearAllOrgs() {\n\t\tawait this.personFixture.loginAsDemoPerson()\n\n\t\tconst orgStore = this.storeFactory.Store('organization')\n\t\tconst orgs = await orgStore.fetchMyOrganizations()\n\n\t\tfor (const org of orgs) {\n\t\t\tawait orgStore.deleteOrganization(org.id)\n\t\t}\n\n\t\treturn orgs.length\n\t}\n\n\tpublic async installSkillAtOrganization(skillId: string, orgId: string) {\n\t\tawait this.personFixture.loginAsDemoPerson()\n\t\tconst orgStore = this.storeFactory.Store('organization')\n\n\t\tawait orgStore.installSkillAtOrganization(skillId, orgId)\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAGqBA,mB;EAIpB,6BAAmBC,aAAnB,EAAiDC,YAAjD,EAA6E;IAAA;IAAA;IAAA;IAC5E,KAAKA,YAAL,GAAoBA,YAApB;IACA,KAAKD,aAAL,GAAqBA,aAArB;EACA;;;;;uGAED,iBAAyBE,OAAzB;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACO,KAAKF,aAAL,CAAmBG,iBAAnB,EADP;;cAAA;gBAAA,iCAGQ,KAAKF,YAAL,CAAkBG,KAAlB,CAAwB,cAAxB,EAAwCC,MAAxC;kBACNC,IAAI,mBAAY,IAAIC,IAAJ,GAAWC,OAAX,EAAZ;gBADE,GAEHN,OAFG,EAHR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;wGASA;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACO,KAAKF,aAAL,CAAmBG,iBAAnB,EADP;;cAAA;gBAGOM,QAHP,GAGkB,KAAKR,YAAL,CAAkBG,KAAlB,CAAwB,cAAxB,CAHlB;gBAAA;gBAAA,OAIoBK,QAAQ,CAACC,oBAAT,EAJpB;;cAAA;gBAIOC,IAJP;gBAAA,uCAMmBA,IANnB;gBAAA;;gBAAA;;cAAA;gBAAA;kBAAA;kBAAA;gBAAA;;gBAMYC,GANZ;gBAAA;gBAAA,OAOQH,QAAQ,CAACI,kBAAT,CAA4BD,GAAG,CAACE,EAAhC,CAPR;;cAAA;gBAAA;gBAAA;;cAAA;gBAAA;gBAAA;;cAAA;gBAAA;gBAAA;;gBAAA;;cAAA;gBAAA;;gBAAA;;gBAAA;;cAAA;gBAAA,kCAUQH,IAAI,CAACI,MAVb;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;sHAaA,kBAAwCC,OAAxC,EAAyDC,KAAzD;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACO,KAAKjB,aAAL,CAAmBG,iBAAnB,EADP;;cAAA;gBAEOM,QAFP,GAEkB,KAAKR,YAAL,CAAkBG,KAAlB,CAAwB,cAAxB,CAFlB;gBAAA;gBAAA,OAIOK,QAAQ,CAACS,0BAAT,CAAoCF,OAApC,EAA6CC,KAA7C,CAJP;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"PersonFixture.js","names":["require","config","DEMO_NUMBER","process","env","PersonFixture","apiClientFactory","connectToApi","phone","client","auth","person","SchemaError","code","parameters","emit","payload","requestPinResults","eventResponseUtil","getFirstResponseOrThrow","challenge","pin","substr","confirmPinResults","token","personWithToken"],"sources":["../../../src/tests/fixtures/PersonFixture.ts"],"sourcesContent":["import { SpruceSchemas } from '@sprucelabs/mercury-types'\nimport { SchemaError } from '@sprucelabs/schema'\nimport { eventResponseUtil } from '@sprucelabs/spruce-event-utils'\nimport { ApiClientFactory } from '../../types/apiClient.types'\n\nrequire('dotenv').config()\n\nexport const DEMO_NUMBER = process.env.DEMO_NUMBER as string\n\nexport default class PersonFixture {\n\tprivate connectToApi: ApiClientFactory\n\n\tpublic constructor(apiClientFactory: ApiClientFactory) {\n\t\tthis.connectToApi = apiClientFactory\n\t}\n\n\tpublic async loginAsDemoPerson(\n\t\tphone?: string\n\t): Promise<SpruceSchemas.SpruceCli.v2020_07_22.PersonWithToken> {\n\t\tconst client = await this.connectToApi()\n\n\t\t//@ts-ignore\n\t\tif (!phone && client.auth?.person) {\n\t\t\t//@ts-ignore\n\t\t\treturn client.auth.person\n\t\t}\n\n\t\tphone = phone || DEMO_NUMBER\n\n\t\tif (!phone) {\n\t\t\tthrow new SchemaError({\n\t\t\t\tcode: 'MISSING_PARAMETERS',\n\t\t\t\tparameters: ['env.DEMO_NUMBER'],\n\t\t\t})\n\t\t}\n\n\t\t//@ts-ignore\n\t\tif (client.auth?.person?.phone === phone) {\n\t\t\t//@ts-ignore\n\t\t\treturn client.auth.person\n\t\t}\n\n\t\tconst requestPinResults = await client.emit('request-pin::v2020_12_25', {\n\t\t\tpayload: { phone },\n\t\t})\n\n\t\tconst { challenge } =\n\t\t\teventResponseUtil.getFirstResponseOrThrow(requestPinResults)\n\n\t\tconst confirmPinResults = await client.emit('confirm-pin::v2020_12_25', {\n\t\t\tpayload: { challenge, pin: phone.substr(-4) },\n\t\t})\n\n\t\tconst { person, token } =\n\t\t\teventResponseUtil.getFirstResponseOrThrow(confirmPinResults)\n\n\t\tconst personWithToken = { ...person, token }\n\n\t\t//@ts-ignore\n\t\tclient.auth = { person: personWithToken }\n\n\t\treturn personWithToken\n\t}\n\n\tpublic async logout() {\n\t\tconst client = await this.connectToApi()\n\n\t\tawait client.emit('logout::v2020_12_25')\n\n\t\t//@ts-ignore\n\t\tdelete client.auth\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AACA;;AACA;;;;;;AAGAA,OAAO,CAAC,QAAD,CAAP,CAAkBC,MAAlB;;AAEO,IAAMC,WAAW,GAAGC,OAAO,CAACC,GAAR,CAAYF,WAAhC;;;IAEcG,a;EAGpB,uBAAmBC,gBAAnB,EAAuD;IAAA;IAAA;IACtD,KAAKC,YAAL,GAAoBD,gBAApB;EACA;;;;;6GAED,iBACCE,KADD;QAAA;;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAGsB,KAAKD,YAAL,EAHtB;;cAAA;gBAGOE,MAHP;;gBAAA,MAMK,CAACD,KAAD,oBAAUC,MAAM,CAACC,IAAjB,yCAAU,aAAaC,MAN5B;kBAAA;kBAAA;gBAAA;;gBAAA,iCAQSF,MAAM,CAACC,IAAP,CAAYC,MARrB;;cAAA;gBAWCH,KAAK,GAAGA,KAAK,IAAIN,WAAjB;;gBAXD,IAaMM,KAbN;kBAAA;kBAAA;gBAAA;;gBAAA,MAcQ,IAAII,mBAAJ,CAAgB;kBACrBC,IAAI,EAAE,oBADe;kBAErBC,UAAU,EAAE,CAAC,iBAAD;gBAFS,CAAhB,CAdR;;cAAA;gBAAA,MAqBK,kBAAAL,MAAM,CAACC,IAAP,wFAAaC,MAAb,8EAAqBH,KAArB,MAA+BA,KArBpC;kBAAA;kBAAA;gBAAA;;gBAAA,iCAuBSC,MAAM,CAACC,IAAP,CAAYC,MAvBrB;;cAAA;gBAAA;gBAAA,OA0BiCF,MAAM,CAACM,IAAP,CAAY,0BAAZ,EAAwC;kBACvEC,OAAO,EAAE;oBAAER,KAAK,EAALA;kBAAF;gBAD8D,CAAxC,CA1BjC;;cAAA;gBA0BOS,iBA1BP;gBAAA,wBA+BEC,oCAAkBC,uBAAlB,CAA0CF,iBAA1C,CA/BF,EA8BSG,SA9BT,yBA8BSA,SA9BT;gBAAA;gBAAA,OAiCiCX,MAAM,CAACM,IAAP,CAAY,0BAAZ,EAAwC;kBACvEC,OAAO,EAAE;oBAAEI,SAAS,EAATA,SAAF;oBAAaC,GAAG,EAAEb,KAAK,CAACc,MAAN,CAAa,CAAC,CAAd;kBAAlB;gBAD8D,CAAxC,CAjCjC;;cAAA;gBAiCOC,iBAjCP;gBAAA,yBAsCEL,oCAAkBC,uBAAlB,CAA0CI,iBAA1C,CAtCF,EAqCSZ,MArCT,0BAqCSA,MArCT,EAqCiBa,KArCjB,0BAqCiBA,KArCjB;gBAwCOC,eAxCP,mCAwC8Bd,MAxC9B;kBAwCsCa,KAAK,EAALA;gBAxCtC,IA0CC;;gBACAf,MAAM,CAACC,IAAP,GAAc;kBAAEC,MAAM,EAAEc;gBAAV,CAAd;gBA3CD,iCA6CQA,eA7CR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;kGAgDA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACsB,KAAKlB,YAAL,EADtB;;cAAA;gBACOE,MADP;gBAAA;gBAAA,OAGOA,MAAM,CAACM,IAAP,CAAY,qBAAZ,CAHP;;cAAA;gBAKC;gBACA,OAAON,MAAM,CAACC,IAAd;;cAND;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"SkillFixture.js","names":["SkillFixture","personFixture","storeFactory","apiClientFactory","values","options","registerCurrentSkill","isRegisteringCurrentSkill","loginAsDemoPerson","phone","Store","register","slug","generateSkillSlug","name","skillCount","namesUtil","toKebab","Date","getTime","auth","contract","skillAuth","apiClientUtil","skillOrAuthToAuth","client","eventStore","registerEventContract","eventContract","unRegisterEvents","skillStore","fetchMySkills","skills","skill","unregisterSkill","id","length","Math","round","random"],"sources":["../../../src/tests/fixtures/SkillFixture.ts"],"sourcesContent":["import { EventContract, SpruceSchemas } from '@sprucelabs/mercury-types'\nimport { namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport { RegisterSkillOptions } from '../../features/skill/stores/SkillStore'\nimport StoreFactory from '../../stores/StoreFactory'\nimport {\n\tApiClientFactory,\n\tApiClientFactoryOptions,\n} from '../../types/apiClient.types'\nimport apiClientUtil from '../../utilities/apiClient.utility'\nimport PersonFixture from './PersonFixture'\n\nexport default class SkillFixture {\n\tprivate storeFactory: StoreFactory\n\tprivate apiClientFactory: ApiClientFactory\n\tprivate personFixture: PersonFixture\n\n\tprivate static skillCount = Math.round(Math.random() * 100)\n\n\tpublic constructor(\n\t\tpersonFixture: PersonFixture,\n\t\tstoreFactory: StoreFactory,\n\t\tapiClientFactory: ApiClientFactory\n\t) {\n\t\tthis.personFixture = personFixture\n\t\tthis.storeFactory = storeFactory\n\t\tthis.apiClientFactory = apiClientFactory\n\t}\n\n\tpublic async seedDemoSkill(\n\t\tvalues: { name: string },\n\t\toptions?: { phone?: string }\n\t) {\n\t\treturn this.registerCurrentSkill(values, {\n\t\t\tisRegisteringCurrentSkill: false,\n\t\t\t...options,\n\t\t})\n\t}\n\n\tpublic async registerCurrentSkill(\n\t\tvalues: { name: string; slug?: string },\n\t\toptions?: RegisterSkillOptions & { phone?: string }\n\t) {\n\t\tawait this.personFixture.loginAsDemoPerson(options?.phone)\n\n\t\treturn this.storeFactory.Store('skill').register(\n\t\t\t{\n\t\t\t\tslug: values.slug ?? this.generateSkillSlug(values.name),\n\t\t\t\t...values,\n\t\t\t},\n\t\t\toptions\n\t\t)\n\t}\n\n\tprivate generateSkillSlug(name: string): string {\n\t\tSkillFixture.skillCount++\n\t\treturn `${namesUtil.toKebab(name)}-${new Date().getTime()}-count-${\n\t\t\tSkillFixture.skillCount\n\t\t}-cli-test`\n\t}\n\n\tpublic async registerEventContract(\n\t\tauth: ApiClientFactoryOptions | SpruceSchemas.Spruce.v2020_07_22.Skill,\n\t\tcontract: EventContract\n\t) {\n\t\tconst skillAuth = apiClientUtil.skillOrAuthToAuth(auth)\n\t\tconst client = await this.apiClientFactory(skillAuth)\n\n\t\tconst eventStore = this.storeFactory.Store('event', {\n\t\t\tapiClientFactory: async () => {\n\t\t\t\treturn client\n\t\t\t},\n\t\t})\n\n\t\tawait eventStore.registerEventContract({\n\t\t\teventContract: contract,\n\t\t})\n\t}\n\n\tpublic async unRegisterEvents(\n\t\tauth: ApiClientFactoryOptions | SpruceSchemas.Spruce.v2020_07_22.Skill,\n\t\toptions: SpruceSchemas.Mercury.v2020_12_25.UnregisterEventsEmitPayload\n\t) {\n\t\tconst skillAuth = apiClientUtil.skillOrAuthToAuth(auth)\n\t\tconst client = await this.apiClientFactory(skillAuth)\n\n\t\tconst eventStore = this.storeFactory.Store('event', {\n\t\t\tapiClientFactory: async () => {\n\t\t\t\treturn client\n\t\t\t},\n\t\t})\n\n\t\tawait eventStore.unRegisterEvents(options)\n\t}\n\n\tpublic async clearAllSkills() {\n\t\tawait this.personFixture.loginAsDemoPerson()\n\n\t\tconst skillStore = this.storeFactory.Store('skill')\n\t\tconst skills = await skillStore.fetchMySkills()\n\n\t\tfor (const skill of skills) {\n\t\t\tawait skillStore.unregisterSkill(skill.id)\n\t\t}\n\n\t\treturn skills.length\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"ViewFixture.js","names":["ViewFixture","cwd","viewWriter","syncAction","writer","options","writeSkillViewController","files","execute"],"sources":["../../../src/tests/fixtures/ViewFixture.ts"],"sourcesContent":["import SyncAction from '../../features/view/actions/SyncAction'\nimport ViewWriter from '../../features/view/writers/ViewWriter'\n\nexport default class ViewFixture {\n\tprivate writer: ViewWriter\n\tprivate cwd: string\n\tprivate syncAction: SyncAction\n\tpublic constructor(\n\t\tcwd: string,\n\t\tviewWriter: ViewWriter,\n\t\tsyncAction: SyncAction\n\t) {\n\t\tthis.cwd = cwd\n\t\tthis.writer = viewWriter\n\t\tthis.syncAction = syncAction\n\t}\n\n\tpublic async createViewController(options: {\n\t\tnamePascal: string\n\t\tnameKebab: string\n\t}) {\n\t\tconst files = await this.writer.writeSkillViewController(this.cwd, options)\n\n\t\tawait this.syncAction.execute({})\n\n\t\treturn files[0]\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;IAGqBA,W;EAIpB,qBACCC,GADD,EAECC,UAFD,EAGCC,UAHD,EAIE;IAAA;IAAA;IAAA;IAAA;IACD,KAAKF,GAAL,GAAWA,GAAX;IACA,KAAKG,MAAL,GAAcF,UAAd;IACA,KAAKC,UAAL,GAAkBA,UAAlB;EACA;;;;;gHAED,iBAAkCE,OAAlC;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAIqB,KAAKD,MAAL,CAAYE,wBAAZ,CAAqC,KAAKL,GAA1C,EAA+CI,OAA/C,CAJrB;;cAAA;gBAIOE,KAJP;gBAAA;gBAAA,OAMO,KAAKJ,UAAL,CAAgBK,OAAhB,CAAwB,EAAxB,CANP;;cAAA;gBAAA,iCAQQD,KAAK,CAAC,CAAD,CARb;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"test.utility.js","names":["require","config","hasArg","regex","process","argv","find","arg","search","testUtil","shouldClearCache","isCacheEnabled","resolveTestDir","cacheKey","diskUtil","resolvePath","getTestRootDir","shouldCleanupTestSkillDirs","env","CLEANUP_TEST_SKILL_DIRS","TEST_CACHE_ROOT_DIR","pathUtil","join","os","tmpdir","assertCountsByAction","files","options","generated","filter","f","action","length","updated","skipped","assert","isEqual","assertFileByNameInGeneratedFiles","name","file","path","isTruthy","JSON","stringify","assertFileByPathInGeneratedFiles","startTime","startLogTimer","Date","getTime","log","prefix","global","activeTest","test","TEST_LOG_FILTER","match","RegExp","args","stderr","write","getTimeSpentFormatted","getTimeSpent","now","delta","spent","durationUtil","msToFriendly"],"sources":["../../../src/tests/utilities/test.utility.ts"],"sourcesContent":["import os from 'os'\nimport pathUtil from 'path'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { assert } from '@sprucelabs/test'\nimport { GeneratedFile } from '../../types/cli.types'\nimport durationUtil from '../../utilities/duration.utility'\nrequire('dotenv').config()\n\nfunction hasArg(regex: RegExp) {\n\treturn !!process.argv?.find((arg) => arg.search(regex) > -1)\n}\n\nconst testUtil = {\n\tshouldClearCache() {\n\t\treturn hasArg(/clear.*?cache/gi)\n\t},\n\tisCacheEnabled() {\n\t\treturn !hasArg(/no.*?cache/gi)\n\t},\n\n\tresolveTestDir(cacheKey = '') {\n\t\treturn diskUtil.resolvePath(this.getTestRootDir(), 'spruce-cli', cacheKey)\n\t},\n\n\tshouldCleanupTestSkillDirs() {\n\t\treturn process.env.CLEANUP_TEST_SKILL_DIRS !== 'false'\n\t},\n\n\tgetTestRootDir() {\n\t\treturn process.env.TEST_CACHE_ROOT_DIR ?? pathUtil.join(os.tmpdir())\n\t},\n\n\tassertCountsByAction(\n\t\tfiles: GeneratedFile[] | undefined,\n\t\toptions: {\n\t\t\tgenerated: number\n\t\t\tupdated: number\n\t\t\tskipped: number\n\t\t}\n\t) {\n\t\tconst generated = (files ?? []).filter(\n\t\t\t(f) => f.action === 'generated'\n\t\t).length\n\t\tconst updated = (files ?? []).filter((f) => f.action === 'updated').length\n\t\tconst skipped = (files ?? []).filter((f) => f.action === 'skipped').length\n\n\t\tassert.isEqual(\n\t\t\tgenerated,\n\t\t\toptions.generated,\n\t\t\t`Generated the wrong number of files. Got ${generated} but expected ${options.generated}.`\n\t\t)\n\n\t\tassert.isEqual(\n\t\t\tupdated,\n\t\t\toptions.updated,\n\t\t\t`Updated the wrong number of files. Got ${updated} but expected ${options.updated}.`\n\t\t)\n\n\t\tassert.isEqual(\n\t\t\tskipped,\n\t\t\toptions.skipped,\n\t\t\t`Skipped the wrong number of files. Got ${skipped} but expected ${options.skipped}.`\n\t\t)\n\t},\n\n\tassertFileByNameInGeneratedFiles(\n\t\tname: string | RegExp,\n\t\tfiles: GeneratedFile[] | undefined\n\t): string {\n\t\tconst file = (files ?? []).find((f) => f.name.search(name) > -1)?.path\n\t\tassert.isTruthy(\n\t\t\tfile,\n\t\t\t`file named '${name}' not found in generated files.\\n\\n${JSON.stringify(\n\t\t\t\tfiles ?? [],\n\t\t\t\tnull,\n\t\t\t\t2\n\t\t\t)}`\n\t\t)\n\n\t\treturn file\n\t},\n\n\tassertFileByPathInGeneratedFiles(\n\t\tpath: string | RegExp,\n\t\tfiles: GeneratedFile[] | undefined\n\t): string {\n\t\tconst file = (files ?? []).find((f) => f.path.search(path) > -1)?.path\n\t\tassert.isTruthy(\n\t\t\tfile,\n\t\t\t`file with path '${path}' not found in generated files.\\n\\n${JSON.stringify(\n\t\t\t\tfiles ?? [],\n\t\t\t\tnull,\n\t\t\t\t2\n\t\t\t)}`\n\t\t)\n\n\t\treturn file\n\t},\n\n\tstartTime: 0,\n\tstartLogTimer() {\n\t\tthis.startTime = new Date().getTime()\n\t},\n\n\tlog(...args: any[]) {\n\t\t//@ts-ignore\n\t\tconst prefix = global.activeTest\n\t\t\t? //@ts-ignore\n\t\t\t `${global.activeTest?.file}::${global.activeTest?.test} :: `\n\t\t\t: ''\n\n\t\tif (process.env.TEST_LOG_FILTER) {\n\t\t\tconst match = prefix.search(\n\t\t\t\tnew RegExp(process.env.TEST_LOG_FILTER, 'igm')\n\t\t\t)\n\t\t\tif (match < 0) {\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\n\t\tprocess.stderr.write(\n\t\t\tprefix + this.getTimeSpentFormatted() + ': ' + args.join(' ')\n\t\t)\n\t},\n\n\tgetTimeSpent() {\n\t\tconst now = new Date().getTime()\n\t\tconst delta = now - this.startTime\n\t\treturn delta\n\t},\n\n\tgetTimeSpentFormatted() {\n\t\tconst spent = this.getTimeSpent()\n\t\treturn durationUtil.msToFriendly(spent)\n\t},\n}\n\nexport default testUtil\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"uiAssert.utility.js","names":["uiAssert","assertRendersSelect","ui","waitForInput","last","getLastInvocation","assert","isTruthy","options","choices","assertSelectDidNotRenderChoice","value","label","doesNotInclude","assertSelectRenderChoice","doesInclude","assertRendersConfirmWriteFile","isEqual","type","isEqualDeep"],"sources":["../../../src/tests/utilities/uiAssert.utility.ts"],"sourcesContent":["import { assert } from '@sprucelabs/test'\nimport SpyInterface from '../../interfaces/SpyInterface'\n\nconst uiAssert = {\n\tasync assertRendersSelect(ui: SpyInterface) {\n\t\tawait ui.waitForInput()\n\n\t\tconst last = ui.getLastInvocation()\n\t\tassert.isTruthy(\n\t\t\tlast.options.options.choices,\n\t\t\t`I expected a select, I did not find one!`\n\t\t)\n\n\t\treturn last.options\n\t},\n\n\tassertSelectDidNotRenderChoice(\n\t\tui: SpyInterface,\n\t\tvalue: string,\n\t\tlabel: string\n\t) {\n\t\tconst last = ui.getLastInvocation()\n\n\t\tassert.doesNotInclude(last.options.options.choices, {\n\t\t\tvalue,\n\t\t\tlabel,\n\t\t})\n\t},\n\n\tassertSelectRenderChoice(ui: SpyInterface, value: string, label: string) {\n\t\tconst last = ui.getLastInvocation()\n\n\t\tassert.doesInclude(last.options.options.choices, {\n\t\t\tvalue,\n\t\t\tlabel,\n\t\t})\n\t},\n\n\tasync assertRendersConfirmWriteFile(ui: SpyInterface) {\n\t\tawait ui.waitForInput()\n\n\t\tconst last = ui.getLastInvocation()\n\n\t\tassert.isEqual(last.options.type, 'select')\n\t\tassert.isEqualDeep(last.options.options.choices, [\n\t\t\t{\n\t\t\t\tlabel: 'Overwrite',\n\t\t\t\tvalue: 'overwrite',\n\t\t\t},\n\t\t\t{ value: 'skip', label: 'Skip' },\n\t\t\t{ value: 'alwaysSkip', label: 'Always skip' },\n\t\t])\n\t},\n}\n\nexport default uiAssert\n"],"mappings":";;;;;;;;;;;;;AAAA;;AAGA,IAAMA,QAAQ,GAAG;EACVC,mBADU,+BACUC,EADV,EAC4B;IAAA;MAAA;MAAA;QAAA;UAAA;YAAA;cAAA;cAAA,OACrCA,EAAE,CAACC,YAAH,EADqC;;YAAA;cAGrCC,IAHqC,GAG9BF,EAAE,CAACG,iBAAH,EAH8B;;cAI3CC,aAAOC,QAAP,CACCH,IAAI,CAACI,OAAL,CAAaA,OAAb,CAAqBC,OADtB;;cAJ2C,iCASpCL,IAAI,CAACI,OAT+B;;YAAA;YAAA;cAAA;UAAA;QAAA;MAAA;IAAA;EAU3C,CAXe;EAahBE,8BAbgB,0CAcfR,EAde,EAefS,KAfe,EAgBfC,KAhBe,EAiBd;IACD,IAAMR,IAAI,GAAGF,EAAE,CAACG,iBAAH,EAAb;;IAEAC,aAAOO,cAAP,CAAsBT,IAAI,CAACI,OAAL,CAAaA,OAAb,CAAqBC,OAA3C,EAAoD;MACnDE,KAAK,EAALA,KADmD;MAEnDC,KAAK,EAALA;IAFmD,CAApD;EAIA,CAxBe;EA0BhBE,wBA1BgB,oCA0BSZ,EA1BT,EA0B2BS,KA1B3B,EA0B0CC,KA1B1C,EA0ByD;IACxE,IAAMR,IAAI,GAAGF,EAAE,CAACG,iBAAH,EAAb;;IAEAC,aAAOS,WAAP,CAAmBX,IAAI,CAACI,OAAL,CAAaA,OAAb,CAAqBC,OAAxC,EAAiD;MAChDE,KAAK,EAALA,KADgD;MAEhDC,KAAK,EAALA;IAFgD,CAAjD;EAIA,CAjCe;EAmCVI,6BAnCU,yCAmCoBd,EAnCpB,EAmCsC;IAAA;MAAA;MAAA;QAAA;UAAA;YAAA;cAAA;cAAA,OAC/CA,EAAE,CAACC,YAAH,EAD+C;;YAAA;cAG/CC,IAH+C,GAGxCF,EAAE,CAACG,iBAAH,EAHwC;;cAKrDC,aAAOW,OAAP,CAAeb,IAAI,CAACI,OAAL,CAAaU,IAA5B,EAAkC,QAAlC;;cACAZ,aAAOa,WAAP,CAAmBf,IAAI,CAACI,OAAL,CAAaA,OAAb,CAAqBC,OAAxC,EAAiD,CAChD;gBACCG,KAAK,EAAE,WADR;gBAECD,KAAK,EAAE;cAFR,CADgD,EAKhD;gBAAEA,KAAK,EAAE,MAAT;gBAAiBC,KAAK,EAAE;cAAxB,CALgD,EAMhD;gBAAED,KAAK,EAAE,YAAT;gBAAuBC,KAAK,EAAE;cAA9B,CANgD,CAAjD;;YANqD;YAAA;cAAA;UAAA;QAAA;MAAA;IAAA;EAcrD;AAjDe,CAAjB;eAoDeZ,Q"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"apiClient.types.js","names":[],"sources":["../../src/types/apiClient.types.ts"],"sourcesContent":["import { MercuryClient } from '@sprucelabs/mercury-client'\nimport { SpruceSchemas } from '@sprucelabs/mercury-types'\n\nexport type ApiClientFactoryOptions =\n\tSpruceSchemas.Mercury.v2020_12_25.AuthenticateEmitPayload & {\n\t\tshouldAuthAsCurrentSkill?: boolean\n\t\tshouldAuthAsLoggedInPerson?: boolean\n\t}\nexport type ApiClient = MercuryClient\nexport type ApiClientFactory = (\n\toptions?: ApiClientFactoryOptions\n) => Promise<ApiClient>\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"cli.types.js","names":[],"sources":["../../src/types/cli.types.ts"],"sourcesContent":["import { SpruceSchemas } from '#spruce/schemas/schemas.types'\nimport {\n\tFeatureAction,\n\tFeatureActionResponse,\n} from '../features/features.types'\nimport { GraphicsInterface as IGraphicsInterface } from './graphicsInterface.types'\nexport { NpmPackage } from '@sprucelabs/spruce-skill-utils'\n\nexport interface GraphicsInterface extends IGraphicsInterface {\n\trenderActionSummary(results: ExecutionResults & { totalTime?: number }): void\n\tgetCursorPosition(): Promise<{ x: number; y: number } | null>\n\tmoveCursorTo(x: number, y: number): void\n\tclearBelowCursor(): void\n\tclear(): void\n\twaitForEnter(message?: string): Promise<void>\n\tsendInput(message: string): Promise<void>\n}\n\nexport type GeneratedFile = SpruceSchemas.SpruceCli.v2020_07_22.GeneratedFile\nexport type GeneratedDir = SpruceSchemas.SpruceCli.v2020_07_22.GeneratedDir\nexport type GeneratedFileOrDir =\n\tSpruceSchemas.SpruceCli.v2020_07_22.WatcherDidDetectChangesEmitPayload['changes'][number]\n\nexport interface ExecutionResults extends FeatureActionResponse {\n\tfeatureCode: string\n\tactionCode: string\n\theadline: string\n\taction: FeatureAction\n}\n\ntype Skill = Omit<SpruceSchemas.Spruce.v2020_07_22.Skill, 'creators'>\n\nexport type CurrentSkill = Partial<Skill> & {\n\tname: string\n\tisRegistered: boolean\n\tnamespacePascal: string\n}\n\nexport type RegisteredSkill = Omit<\n\tSpruceSchemas.Spruce.v2020_07_22.Skill,\n\t'creators'\n>\n\nexport type UpgradeMode =\n\tSpruceSchemas.SpruceCli.v2020_07_22.UpgradeSkillOptions['upgradeMode']\n\nexport type FileDescription = {\n\tpath: string\n\tdescription: string\n\tshouldOverwriteWhenChanged: boolean\n\tconfirmPromptOnFirstWrite?: string\n}\n\nexport type InternalUpdateHandler = (message: string) => void\n\nexport interface OptionOverrides {\n\t[command: string]: Record<string, any>\n}\n\nexport interface BlockedCommands {\n\t[command: string]: string\n}\n"],"mappings":";;;;;;;;;;;;AAMA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"graphicsInterface.types.js","names":[],"sources":["../../src/types/graphicsInterface.types.ts"],"sourcesContent":["export {\n\tGraphicsTextEffect,\n\tImageDimensions,\n\tProgressBarOptions,\n\tProgressBarUpdateOptions,\n\tGraphicsInterface,\n} from '@sprucelabs/spruce-skill-utils'\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"ScriptUpdater.js","names":["ScriptUpdater","options","pkg","latestScripts","shouldConfirmIfScriptExistsButIsDifferent","ui","settings","scripts","get","all","oldScripts","shouldConfirm","shouldSkipAll","updaterSettings","skipped","name","script","oldScript","shouldAlwaysSkip","indexOf","shouldWrite","clear","renderSection","headline","object","Current","prompt","type","label","choices","value","FILE_ACTION_OVERWRITE","FILE_ACTION_SKIP","FILE_ACTION_ALWAYS_SKIP","desiredAction","push","set","path","feature","cwd","updater","Service"],"sources":["../../src/updaters/ScriptUpdater.ts"],"sourcesContent":["import { SettingsService } from '@sprucelabs/spruce-skill-utils'\nimport {\n\tFILE_ACTION_ALWAYS_SKIP,\n\tFILE_ACTION_OVERWRITE,\n\tFILE_ACTION_SKIP,\n} from '../constants'\nimport AbstractFeature from '../features/AbstractFeature'\nimport PkgService from '../services/PkgService'\nimport { GraphicsInterface } from '../types/cli.types'\n\nexport default class ScriptUpdater {\n\tprivate pkg: PkgService\n\tprivate latestScripts: Record<string, any>\n\tprivate shouldConfirmIfScriptExistsButIsDifferent: boolean\n\tprivate ui: GraphicsInterface\n\tprivate settings: SettingsService<string>\n\n\tpublic constructor(options: {\n\t\tpkg: PkgService\n\t\tlatestScripts: Record<string, any>\n\t\tshouldConfirmIfScriptExistsButIsDifferent?: boolean\n\t\tui: GraphicsInterface\n\t\tsettings: SettingsService\n\t}) {\n\t\tthis.pkg = options.pkg\n\t\tthis.latestScripts = options.latestScripts\n\t\tthis.shouldConfirmIfScriptExistsButIsDifferent =\n\t\t\toptions.shouldConfirmIfScriptExistsButIsDifferent ?? true\n\t\tthis.ui = options.ui\n\t\tthis.settings = options.settings\n\t}\n\n\tpublic static FromFeature(\n\t\tfeature: AbstractFeature,\n\t\toptions?: { cwd?: string; latestScripts?: Record<string, any> }\n\t) {\n\t\tconst cwd = options?.cwd ?? feature.cwd\n\n\t\tconst updater = new ScriptUpdater({\n\t\t\tpkg: feature.Service('pkg', cwd),\n\t\t\tlatestScripts: feature.scripts ?? [],\n\t\t\t//@ts-ignore\n\t\t\tui: feature.ui,\n\t\t\tsettings: feature.Service('settings', cwd),\n\t\t\t...options,\n\t\t})\n\n\t\treturn updater\n\t}\n\n\tpublic async update(options?: {\n\t\tshouldConfirmIfScriptExistsButIsDifferent?: boolean\n\t}) {\n\t\tthis.shouldConfirmIfScriptExistsButIsDifferent =\n\t\t\toptions?.shouldConfirmIfScriptExistsButIsDifferent ??\n\t\t\tthis.shouldConfirmIfScriptExistsButIsDifferent\n\n\t\tconst scripts = (this.pkg.get('scripts') as Record<string, string>) ?? {}\n\t\tconst all = this.latestScripts\n\t\tconst oldScripts = this.pkg.get('scripts') ?? {}\n\n\t\tlet shouldConfirm = this.shouldConfirmIfScriptExistsButIsDifferent\n\t\tlet shouldSkipAll = false\n\t\tconst updaterSettings = {\n\t\t\tskipped: [],\n\t\t\t...this.settings.get('scriptUpdater'),\n\t\t}\n\n\t\tfor (const name in this.latestScripts) {\n\t\t\tconst script = this.latestScripts[name as keyof typeof all]\n\t\t\tconst oldScript = oldScripts[name as any]\n\n\t\t\tconst shouldAlwaysSkip =\n\t\t\t\t(updaterSettings.skipped ?? []).indexOf(name) > -1\n\t\t\tlet shouldWrite = !shouldSkipAll && !shouldAlwaysSkip\n\n\t\t\tif (\n\t\t\t\tshouldConfirm &&\n\t\t\t\t!shouldSkipAll &&\n\t\t\t\toldScript &&\n\t\t\t\tscript !== oldScript &&\n\t\t\t\t!shouldAlwaysSkip\n\t\t\t) {\n\t\t\t\tthis.ui.clear()\n\t\t\t\tthis.ui.renderSection({\n\t\t\t\t\theadline: `Change to \\`${name}\\` detected!`,\n\t\t\t\t\tobject: {\n\t\t\t\t\t\tCurrent: oldScript,\n\t\t\t\t\t\t' New': script,\n\t\t\t\t\t},\n\t\t\t\t})\n\n\t\t\t\tconst desiredAction = await this.ui.prompt({\n\t\t\t\t\ttype: 'select',\n\t\t\t\t\tlabel: 'What should I do?',\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tchoices: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: 'Overwrite',\n\t\t\t\t\t\t\t\tvalue: FILE_ACTION_OVERWRITE,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: 'Skip',\n\t\t\t\t\t\t\t\tvalue: FILE_ACTION_SKIP,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: 'Always skip',\n\t\t\t\t\t\t\t\tvalue: FILE_ACTION_ALWAYS_SKIP,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: 'Skip all',\n\t\t\t\t\t\t\t\tvalue: 'skipAll',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t})\n\n\t\t\t\tif (desiredAction === 'alwaysSkip') {\n\t\t\t\t\tupdaterSettings.skipped.push(name)\n\t\t\t\t\tshouldWrite = false\n\t\t\t\t} else if (desiredAction === 'skipAll') {\n\t\t\t\t\tshouldSkipAll = true\n\t\t\t\t\tshouldWrite = false\n\t\t\t\t} else if (desiredAction === 'skip') {\n\t\t\t\t\tshouldWrite = false\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (shouldWrite) {\n\t\t\t\tscripts[name] = script\n\t\t\t}\n\t\t}\n\n\t\tthis.settings.set('scriptUpdater', updaterSettings)\n\t\tthis.pkg.set({ path: 'scripts', value: scripts })\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"action.utility.js","names":["actionUtil","mergeActionResults","isObject","obj","objects","reduce","prev","Object","keys","forEach","key","pVal","oVal","Array","isArray","concat","makeUnique","val","a","b","path","assertNoErrorsInResponse","response","eventResponseUtil","getFirstResponseOrThrow"],"sources":["../../src/utilities/action.utility.ts"],"sourcesContent":["import { MercuryAggregateResponse } from '@sprucelabs/mercury-types'\nimport { eventResponseUtil } from '@sprucelabs/spruce-event-utils'\nimport isEqual from 'lodash/isEqual'\nimport uniqWith from 'lodash/uniqWith'\n\nconst actionUtil = {\n\tmergeActionResults(...objects: any[]) {\n\t\tconst isObject = (obj: any) => obj && typeof obj === 'object'\n\t\treturn objects.reduce((prev, obj) => {\n\t\t\tObject.keys(obj || {}).forEach((key) => {\n\t\t\t\tconst pVal = prev[key]\n\t\t\t\tconst oVal = obj[key]\n\n\t\t\t\tif (Array.isArray(pVal) && Array.isArray(oVal)) {\n\t\t\t\t\tprev[key] = pVal.concat(...oVal)\n\t\t\t\t\tprev[key] = this.makeUnique(prev[key])\n\t\t\t\t} else if (isObject(pVal) && isObject(oVal)) {\n\t\t\t\t\tprev[key] = this.mergeActionResults(pVal, oVal)\n\t\t\t\t} else if (typeof oVal !== 'undefined') {\n\t\t\t\t\tprev[key] = oVal\n\t\t\t\t}\n\t\t\t})\n\t\t\treturn prev\n\t\t}, {})\n\t},\n\n\tmakeUnique(val: any[]): any[] {\n\t\treturn uniqWith(val, (a: any, b: any) => {\n\t\t\treturn isEqual(a, b) || (a.path && b.path && a.path === b.path)\n\t\t})\n\t},\n\n\tassertNoErrorsInResponse(response: MercuryAggregateResponse<any>) {\n\t\teventResponseUtil.getFirstResponseOrThrow(response)\n\t},\n}\n\nexport default actionUtil\n"],"mappings":";;;;;;;;;;;;;AACA;;AACA;;AACA;;AAEA,IAAMA,UAAU,GAAG;EAClBC,kBADkB,gCACoB;IAAA;;IACrC,IAAMC,QAAQ,GAAG,SAAXA,QAAW,CAACC,GAAD;MAAA,OAAcA,GAAG,IAAI,yBAAOA,GAAP,MAAe,QAApC;IAAA,CAAjB;;IADqC,kCAAhBC,OAAgB;MAAhBA,OAAgB;IAAA;;IAErC,OAAOA,OAAO,CAACC,MAAR,CAAe,UAACC,IAAD,EAAOH,GAAP,EAAe;MACpCI,MAAM,CAACC,IAAP,CAAYL,GAAG,IAAI,EAAnB,EAAuBM,OAAvB,CAA+B,UAACC,GAAD,EAAS;QACvC,IAAMC,IAAI,GAAGL,IAAI,CAACI,GAAD,CAAjB;QACA,IAAME,IAAI,GAAGT,GAAG,CAACO,GAAD,CAAhB;;QAEA,IAAIG,KAAK,CAACC,OAAN,CAAcH,IAAd,KAAuBE,KAAK,CAACC,OAAN,CAAcF,IAAd,CAA3B,EAAgD;UAC/CN,IAAI,CAACI,GAAD,CAAJ,GAAYC,IAAI,CAACI,MAAL,OAAAJ,IAAI,sCAAWC,IAAX,EAAhB;UACAN,IAAI,CAACI,GAAD,CAAJ,GAAY,KAAI,CAACM,UAAL,CAAgBV,IAAI,CAACI,GAAD,CAApB,CAAZ;QACA,CAHD,MAGO,IAAIR,QAAQ,CAACS,IAAD,CAAR,IAAkBT,QAAQ,CAACU,IAAD,CAA9B,EAAsC;UAC5CN,IAAI,CAACI,GAAD,CAAJ,GAAY,KAAI,CAACT,kBAAL,CAAwBU,IAAxB,EAA8BC,IAA9B,CAAZ;QACA,CAFM,MAEA,IAAI,OAAOA,IAAP,KAAgB,WAApB,EAAiC;UACvCN,IAAI,CAACI,GAAD,CAAJ,GAAYE,IAAZ;QACA;MACD,CAZD;MAaA,OAAON,IAAP;IACA,CAfM,EAeJ,EAfI,CAAP;EAgBA,CAnBiB;EAqBlBU,UArBkB,sBAqBPC,GArBO,EAqBY;IAC7B,OAAO,0BAASA,GAAT,EAAc,UAACC,CAAD,EAASC,CAAT,EAAoB;MACxC,OAAO,yBAAQD,CAAR,EAAWC,CAAX,KAAkBD,CAAC,CAACE,IAAF,IAAUD,CAAC,CAACC,IAAZ,IAAoBF,CAAC,CAACE,IAAF,KAAWD,CAAC,CAACC,IAA1D;IACA,CAFM,CAAP;EAGA,CAzBiB;EA2BlBC,wBA3BkB,oCA2BOC,QA3BP,EA2BgD;IACjEC,oCAAkBC,uBAAlB,CAA0CF,QAA1C;EACA;AA7BiB,CAAnB;eAgCetB,U"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"apiClient.utility.js","names":["apiClientUtil","generateClientCacheKey","options","shouldAuthAsCurrentSkill","shouldAuthAsLoggedInPerson","token","skillId","apiKey","SchemaError","code","parameters","filter","p","friendlyMessage","skillOrAuthToAuth","auth","id","skillAuth"],"sources":["../../src/utilities/apiClient.utility.ts"],"sourcesContent":["import { SchemaError } from '@sprucelabs/schema'\nimport { SpruceSchemas } from '@sprucelabs/spruce-core-schemas'\nimport { ApiClientFactoryOptions } from '../types/apiClient.types'\n\ntype Skill = SpruceSchemas.Spruce.v2020_07_22.Skill\n\nconst apiClientUtil = {\n\tgenerateClientCacheKey: (options?: ApiClientFactoryOptions) => {\n\t\tif (options?.shouldAuthAsCurrentSkill) {\n\t\t\treturn 'skill'\n\t\t}\n\n\t\tif (options?.shouldAuthAsLoggedInPerson === false) {\n\t\t\treturn 'anon'\n\t\t}\n\n\t\tif (!options || (!options.token && !options.skillId)) {\n\t\t\treturn 'loggedInPersonOrAnon'\n\t\t}\n\n\t\tif (options.token) {\n\t\t\treturn `person:${options.token}`\n\t\t}\n\n\t\tif (options.skillId && options.apiKey) {\n\t\t\treturn `skill:${options.skillId}:${options.apiKey}`\n\t\t}\n\n\t\tthrow new SchemaError({\n\t\t\tcode: 'INVALID_PARAMETERS',\n\t\t\tparameters: [\n\t\t\t\t!options.token && 'token',\n\t\t\t\t!options.skillId && 'skillId',\n\t\t\t\t!options.apiKey && 'apiKey',\n\t\t\t].filter((p) => !!p) as string[],\n\t\t\tfriendlyMessage: `You must pass a token to login as a person or a skillId and apiKey to login as a skill.`,\n\t\t})\n\t},\n\n\tskillOrAuthToAuth(auth: ApiClientFactoryOptions | Skill) {\n\t\tlet { skillId } = auth as ApiClientFactoryOptions\n\t\tlet { id } = auth as Skill\n\n\t\tskillId = id ?? skillId\n\n\t\tif (!skillId) {\n\t\t\tthrow new SchemaError({\n\t\t\t\tcode: 'MISSING_PARAMETERS',\n\t\t\t\tparameters: ['auth.skillId'],\n\t\t\t})\n\t\t}\n\n\t\tconst skillAuth = {\n\t\t\tskillId,\n\t\t\tapiKey: auth.apiKey,\n\t\t}\n\n\t\treturn skillAuth\n\t},\n}\n\nexport default apiClientUtil\n"],"mappings":";;;;;;;AAAA;;AAMA,IAAMA,aAAa,GAAG;EACrBC,sBAAsB,EAAE,gCAACC,OAAD,EAAuC;IAC9D,IAAIA,OAAJ,aAAIA,OAAJ,eAAIA,OAAO,CAAEC,wBAAb,EAAuC;MACtC,OAAO,OAAP;IACA;;IAED,IAAI,CAAAD,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEE,0BAAT,MAAwC,KAA5C,EAAmD;MAClD,OAAO,MAAP;IACA;;IAED,IAAI,CAACF,OAAD,IAAa,CAACA,OAAO,CAACG,KAAT,IAAkB,CAACH,OAAO,CAACI,OAA5C,EAAsD;MACrD,OAAO,sBAAP;IACA;;IAED,IAAIJ,OAAO,CAACG,KAAZ,EAAmB;MAClB,wBAAiBH,OAAO,CAACG,KAAzB;IACA;;IAED,IAAIH,OAAO,CAACI,OAAR,IAAmBJ,OAAO,CAACK,MAA/B,EAAuC;MACtC,uBAAgBL,OAAO,CAACI,OAAxB,cAAmCJ,OAAO,CAACK,MAA3C;IACA;;IAED,MAAM,IAAIC,mBAAJ,CAAgB;MACrBC,IAAI,EAAE,oBADe;MAErBC,UAAU,EAAE,CACX,CAACR,OAAO,CAACG,KAAT,IAAkB,OADP,EAEX,CAACH,OAAO,CAACI,OAAT,IAAoB,SAFT,EAGX,CAACJ,OAAO,CAACK,MAAT,IAAmB,QAHR,EAIVI,MAJU,CAIH,UAACC,CAAD;QAAA,OAAO,CAAC,CAACA,CAAT;MAAA,CAJG,CAFS;MAOrBC,eAAe;IAPM,CAAhB,CAAN;EASA,CA/BoB;EAiCrBC,iBAjCqB,6BAiCHC,IAjCG,EAiCoC;IACxD,WAAkBA,IAAlB;IAAA,IAAMT,OAAN,QAAMA,OAAN;IACA,YAAaS,IAAb;IAAA,IAAMC,EAAN,SAAMA,EAAN;IAEAV,OAAO,GAAGU,EAAH,aAAGA,EAAH,cAAGA,EAAH,GAASV,OAAhB;;IAEA,IAAI,CAACA,OAAL,EAAc;MACb,MAAM,IAAIE,mBAAJ,CAAgB;QACrBC,IAAI,EAAE,oBADe;QAErBC,UAAU,EAAE,CAAC,cAAD;MAFS,CAAhB,CAAN;IAIA;;IAED,IAAMO,SAAS,GAAG;MACjBX,OAAO,EAAPA,OADiB;MAEjBC,MAAM,EAAEQ,IAAI,CAACR;IAFI,CAAlB;IAKA,OAAOU,SAAP;EACA;AApDoB,CAAtB;eAuDejB,a"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"argParser.utility.js","names":["argParserUtil","parse","input","length","parts","split","args","key","part","replace"],"sources":["../../src/utilities/argParser.utility.ts"],"sourcesContent":["export const argParserUtil = {\n\tparse(input: string) {\n\t\tif (input.length > 0) {\n\t\t\tconst parts = input.split(' ')\n\n\t\t\tconst args: Record<string, string> = {}\n\t\t\tlet key: string | null = null\n\n\t\t\tfor (const part of parts) {\n\t\t\t\tif (part[0] === '-') {\n\t\t\t\t\tkey = part.replace(/^--?/, '')\n\t\t\t\t} else if (key) {\n\t\t\t\t\targs[key] = part\n\t\t\t\t\tkey = null\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (key) {\n\t\t\t\targs[key] = 'true'\n\t\t\t}\n\n\t\t\treturn args\n\t\t}\n\t\treturn {}\n\t},\n}\n"],"mappings":";;;;;;;;;;;;;AAAO,IAAMA,aAAa,GAAG;EAC5BC,KAD4B,iBACtBC,KADsB,EACP;IACpB,IAAIA,KAAK,CAACC,MAAN,GAAe,CAAnB,EAAsB;MACrB,IAAMC,KAAK,GAAGF,KAAK,CAACG,KAAN,CAAY,GAAZ,CAAd;MAEA,IAAMC,IAA4B,GAAG,EAArC;MACA,IAAIC,GAAkB,GAAG,IAAzB;;MAJqB,2CAMFH,KANE;MAAA;;MAAA;QAMrB,oDAA0B;UAAA,IAAfI,IAAe;;UACzB,IAAIA,IAAI,CAAC,CAAD,CAAJ,KAAY,GAAhB,EAAqB;YACpBD,GAAG,GAAGC,IAAI,CAACC,OAAL,CAAa,MAAb,EAAqB,EAArB,CAAN;UACA,CAFD,MAEO,IAAIF,GAAJ,EAAS;YACfD,IAAI,CAACC,GAAD,CAAJ,GAAYC,IAAZ;YACAD,GAAG,GAAG,IAAN;UACA;QACD;MAboB;QAAA;MAAA;QAAA;MAAA;;MAerB,IAAIA,GAAJ,EAAS;QACRD,IAAI,CAACC,GAAD,CAAJ,GAAY,MAAZ;MACA;;MAED,OAAOD,IAAP;IACA;;IACD,OAAO,EAAP;EACA;AAxB2B,CAAtB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"commander.utility.js","names":["commanderUtil","mapIncomingToOptions","args","strings","filter","a","possibleSchema","length","schema","id","fields","undefined","originalOptions","find","options","fieldNames","Object","keys","c"],"sources":["../../src/utilities/commander.utility.ts"],"sourcesContent":["import { isObjectLike } from 'lodash'\n\nconst commanderUtil = {\n\tmapIncomingToOptions(...args: any[]) {\n\t\tconst strings = args.filter((a) => typeof a === 'string')\n\t\tconst possibleSchema = args[args.length - 1]\n\t\tconst schema =\n\t\t\tpossibleSchema?.id && possibleSchema?.fields ? possibleSchema : undefined\n\n\t\tconst originalOptions = args.find((a) => isObjectLike(a)) ?? {}\n\t\tconst options: Record<string, any> = {}\n\n\t\tif (schema) {\n\t\t\tconst fieldNames = Object.keys(schema.fields ?? {})\n\t\t\tfor (let c = 0; c < strings.length; c++) {\n\t\t\t\toptions[fieldNames[c]] = strings[c]\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\t...originalOptions,\n\t\t\t...options,\n\t\t}\n\t},\n}\n\nexport default commanderUtil\n"],"mappings":";;;;;;;;;;;AAAA;;;;;;AAEA,IAAMA,aAAa,GAAG;EACrBC,oBADqB,kCACgB;IAAA;;IAAA,kCAAbC,IAAa;MAAbA,IAAa;IAAA;;IACpC,IAAMC,OAAO,GAAGD,IAAI,CAACE,MAAL,CAAY,UAACC,CAAD;MAAA,OAAO,OAAOA,CAAP,KAAa,QAApB;IAAA,CAAZ,CAAhB;IACA,IAAMC,cAAc,GAAGJ,IAAI,CAACA,IAAI,CAACK,MAAL,GAAc,CAAf,CAA3B;IACA,IAAMC,MAAM,GACXF,cAAc,SAAd,IAAAA,cAAc,WAAd,IAAAA,cAAc,CAAEG,EAAhB,IAAsBH,cAAtB,aAAsBA,cAAtB,eAAsBA,cAAc,CAAEI,MAAtC,GAA+CJ,cAA/C,GAAgEK,SADjE;IAGA,IAAMC,eAAe,iBAAGV,IAAI,CAACW,IAAL,CAAU,UAACR,CAAD;MAAA,OAAO,0BAAaA,CAAb,CAAP;IAAA,CAAV,CAAH,mDAAwC,EAA7D;IACA,IAAMS,OAA4B,GAAG,EAArC;;IAEA,IAAIN,MAAJ,EAAY;MAAA;;MACX,IAAMO,UAAU,GAAGC,MAAM,CAACC,IAAP,mBAAYT,MAAM,CAACE,MAAnB,2DAA6B,EAA7B,CAAnB;;MACA,KAAK,IAAIQ,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGf,OAAO,CAACI,MAA5B,EAAoCW,CAAC,EAArC,EAAyC;QACxCJ,OAAO,CAACC,UAAU,CAACG,CAAD,CAAX,CAAP,GAAyBf,OAAO,CAACe,CAAD,CAAhC;MACA;IACD;;IAED,uCACIN,eADJ,GAEIE,OAFJ;EAIA;AArBoB,CAAtB;eAwBed,a"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"duration.utility.js","names":["durationUtil","msToFriendly","duration","milliseconds","seconds","Math","floor","minutes","hours","durationStr","length","trim"],"sources":["../../src/utilities/duration.utility.ts"],"sourcesContent":["const durationUtil = {\n\tmsToFriendly(duration: number): string {\n\t\tlet milliseconds = duration % 1000,\n\t\t\tseconds = Math.floor((duration / 1000) % 60),\n\t\t\tminutes = Math.floor((duration / (1000 * 60)) % 60),\n\t\t\thours = Math.floor((duration / (1000 * 60 * 60)) % 24)\n\n\t\tlet durationStr = ''\n\n\t\tif (hours > 0) {\n\t\t\tdurationStr += `${hours}h `\n\t\t}\n\n\t\tif (hours > 0 || minutes > 0) {\n\t\t\tdurationStr += `${minutes}m `\n\t\t}\n\n\t\tif (durationStr.length > 0 || seconds > 0) {\n\t\t\tdurationStr += `${seconds}s `\n\t\t}\n\n\t\tif (hours === 0 && minutes === 0) {\n\t\t\tif (seconds > 0) {\n\t\t\t\tdurationStr = `${seconds}.${milliseconds}s`\n\t\t\t} else {\n\t\t\t\tdurationStr += `${milliseconds}ms`\n\t\t\t}\n\t\t}\n\n\t\treturn durationStr.trim()\n\t},\n}\n\nexport default durationUtil\n"],"mappings":";;;;;;AAAA,IAAMA,YAAY,GAAG;EACpBC,YADoB,wBACPC,QADO,EACmB;IACtC,IAAIC,YAAY,GAAGD,QAAQ,GAAG,IAA9B;IAAA,IACCE,OAAO,GAAGC,IAAI,CAACC,KAAL,CAAYJ,QAAQ,GAAG,IAAZ,GAAoB,EAA/B,CADX;IAAA,IAECK,OAAO,GAAGF,IAAI,CAACC,KAAL,CAAYJ,QAAQ,IAAI,OAAO,EAAX,CAAT,GAA2B,EAAtC,CAFX;IAAA,IAGCM,KAAK,GAAGH,IAAI,CAACC,KAAL,CAAYJ,QAAQ,IAAI,OAAO,EAAP,GAAY,EAAhB,CAAT,GAAgC,EAA3C,CAHT;IAKA,IAAIO,WAAW,GAAG,EAAlB;;IAEA,IAAID,KAAK,GAAG,CAAZ,EAAe;MACdC,WAAW,cAAOD,KAAP,OAAX;IACA;;IAED,IAAIA,KAAK,GAAG,CAAR,IAAaD,OAAO,GAAG,CAA3B,EAA8B;MAC7BE,WAAW,cAAOF,OAAP,OAAX;IACA;;IAED,IAAIE,WAAW,CAACC,MAAZ,GAAqB,CAArB,IAA0BN,OAAO,GAAG,CAAxC,EAA2C;MAC1CK,WAAW,cAAOL,OAAP,OAAX;IACA;;IAED,IAAII,KAAK,KAAK,CAAV,IAAeD,OAAO,KAAK,CAA/B,EAAkC;MACjC,IAAIH,OAAO,GAAG,CAAd,EAAiB;QAChBK,WAAW,aAAML,OAAN,cAAiBD,YAAjB,MAAX;MACA,CAFD,MAEO;QACNM,WAAW,cAAON,YAAP,OAAX;MACA;IACD;;IAED,OAAOM,WAAW,CAACE,IAAZ,EAAP;EACA;AA9BmB,CAArB;eAiCeX,Y"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"eventContractCleaner.utility.js","names":["eventContractCleanerUtil","cleanPayloadsAndPermissions","contract","cleaned","eventSignatures","signatures","eventContractUtil","getNamedEventSignatures","sig","cleanedSig","signature","emitPayloadFields","Object","keys","emitPayloadSchema","fields","payload","options","schema","length","targetPayloadFields","target","responsePayloadSchema","emitPermissionContract","permissions","listenPermissionContract","fullyQualifiedEventName"],"sources":["../../src/utilities/eventContractCleaner.utility.ts"],"sourcesContent":["import { EventContract } from '@sprucelabs/mercury-types'\nimport { eventContractUtil } from '@sprucelabs/spruce-event-utils'\n\nexport const eventContractCleanerUtil = {\n\tcleanPayloadsAndPermissions(contract: EventContract): EventContract {\n\t\tconst cleaned: EventContract = {\n\t\t\teventSignatures: {},\n\t\t}\n\n\t\tconst signatures = eventContractUtil.getNamedEventSignatures(contract)\n\n\t\tfor (const sig of signatures) {\n\t\t\tconst cleanedSig = {\n\t\t\t\t...sig.signature,\n\t\t\t}\n\n\t\t\tconst emitPayloadFields = Object.keys(\n\t\t\t\t//@ts-ignore\n\t\t\t\tcleanedSig.emitPayloadSchema?.fields?.payload?.options?.schema\n\t\t\t\t\t?.fields ?? {}\n\t\t\t).length\n\n\t\t\tconst targetPayloadFields = Object.keys(\n\t\t\t\t//@ts-ignore\n\t\t\t\tcleanedSig.emitPayloadSchema?.fields?.target?.options?.schema?.fields ??\n\t\t\t\t\t{}\n\t\t\t).length\n\n\t\t\tif (emitPayloadFields + targetPayloadFields === 0) {\n\t\t\t\tdelete cleanedSig.emitPayloadSchema\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tcleanedSig.responsePayloadSchema?.fields &&\n\t\t\t\tObject.keys(cleanedSig.responsePayloadSchema?.fields).length === 0\n\t\t\t) {\n\t\t\t\tdelete cleanedSig.responsePayloadSchema\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tcleanedSig.emitPermissionContract &&\n\t\t\t\tcleanedSig.emitPermissionContract.permissions.length === 0\n\t\t\t) {\n\t\t\t\tdelete cleanedSig.emitPermissionContract\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tcleanedSig.listenPermissionContract &&\n\t\t\t\tcleanedSig.listenPermissionContract.permissions.length === 0\n\t\t\t) {\n\t\t\t\tdelete cleanedSig.listenPermissionContract\n\t\t\t}\n\n\t\t\tcleaned.eventSignatures[sig.fullyQualifiedEventName] = cleanedSig\n\t\t}\n\n\t\treturn cleaned\n\t},\n}\n"],"mappings":";;;;;;;;;;;AACA;;;;;;;;;;;;AAEO,IAAMA,wBAAwB,GAAG;EACvCC,2BADuC,uCACXC,QADW,EAC6B;IACnE,IAAMC,OAAsB,GAAG;MAC9BC,eAAe,EAAE;IADa,CAA/B;;IAIA,IAAMC,UAAU,GAAGC,oCAAkBC,uBAAlB,CAA0CL,QAA1C,CAAnB;;IALmE,2CAOjDG,UAPiD;IAAA;;IAAA;MAOnE,oDAA8B;QAAA;;QAAA,IAAnBG,GAAmB;;QAC7B,IAAMC,UAAU,qBACZD,GAAG,CAACE,SADQ,CAAhB;;QAIA,IAAMC,iBAAiB,GAAGC,MAAM,CAACC,IAAP,EACzB;QADyB,mDAEzBJ,UAAU,CAACK,iBAFc,qFAEzB,uBAA8BC,MAFL,qFAEzB,uBAAsCC,OAFb,qFAEzB,uBAA+CC,OAFtB,qFAEzB,uBAAwDC,MAF/B,2DAEzB,uBACGH,MAHsB,yEAGZ,EAHY,EAIxBI,MAJF;QAMA,IAAMC,mBAAmB,GAAGR,MAAM,CAACC,IAAP,EAC3B;QAD2B,oDAE3BJ,UAAU,CAACK,iBAFgB,qFAE3B,uBAA8BC,MAFH,sFAE3B,uBAAsCM,MAFX,uFAE3B,wBAA8CJ,OAFnB,uFAE3B,wBAAuDC,MAF5B,4DAE3B,wBAA+DH,MAFpC,2EAG1B,EAH0B,EAI1BI,MAJF;;QAMA,IAAIR,iBAAiB,GAAGS,mBAApB,KAA4C,CAAhD,EAAmD;UAClD,OAAOX,UAAU,CAACK,iBAAlB;QACA;;QAED,IACC,yBAAAL,UAAU,CAACa,qBAAX,wEAAkCP,MAAlC,IACAH,MAAM,CAACC,IAAP,2BAAYJ,UAAU,CAACa,qBAAvB,2DAAY,uBAAkCP,MAA9C,EAAsDI,MAAtD,KAAiE,CAFlE,EAGE;UACD,OAAOV,UAAU,CAACa,qBAAlB;QACA;;QAED,IACCb,UAAU,CAACc,sBAAX,IACAd,UAAU,CAACc,sBAAX,CAAkCC,WAAlC,CAA8CL,MAA9C,KAAyD,CAF1D,EAGE;UACD,OAAOV,UAAU,CAACc,sBAAlB;QACA;;QAED,IACCd,UAAU,CAACgB,wBAAX,IACAhB,UAAU,CAACgB,wBAAX,CAAoCD,WAApC,CAAgDL,MAAhD,KAA2D,CAF5D,EAGE;UACD,OAAOV,UAAU,CAACgB,wBAAlB;QACA;;QAEDtB,OAAO,CAACC,eAAR,CAAwBI,GAAG,CAACkB,uBAA5B,IAAuDjB,UAAvD;MACA;IAlDkE;MAAA;IAAA;MAAA;IAAA;;IAoDnE,OAAON,OAAP;EACA;AAtDsC,CAAjC"}
|