@sprucelabs/spruce-cli 15.2.23 → 15.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +31 -0
- package/build/.spruce/errors/errors.types.js.map +1 -1
- package/build/.spruce/errors/options.types.js.map +1 -1
- package/build/.spruce/errors/spruceCli/actionCancelled.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/bootError.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/buildFailed.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/cacheNotEnabled.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/commandAborted.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/commandBlocked.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/commandNotImplemented.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/createAutoloaderFailed.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/dependencyExists.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/deployFailed.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/directoryEmpty.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/directoryNotSkill.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/dockerNotStarted.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/executingCommandFailed.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/failedToImport.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/featureNotInstalled.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/fileExists.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/generic.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/invalidCommand.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/invalidEventContract.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/invalidFeatureCode.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/invalidTestDirectory.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/lintFailed.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/mercuryResponseError.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/missingDependencies.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/missingDependenciesDependency.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/noOrganizationsFound.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/noSkillsRegistered.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/notImplemented.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/notLoggedIn.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/schemaExists.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/schemaFailedToImport.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/schemaTemplateItemBuildingFailed.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/skillNotFound.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/skillNotRegistered.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/skillViewExists.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/storeExists.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/testFailed.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/themeExists.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/transportAlreadyExists.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/vscodeNotInstalled.schema.js.map +1 -1
- package/build/.spruce/events/events.contract.js.map +1 -1
- package/build/.spruce/events/heartwood/didRegisterSkillViews.v2021_02_11.contract.js.map +1 -1
- package/build/.spruce/events/heartwood/generateUrl.v2021_02_11.contract.js.map +1 -1
- package/build/.spruce/events/heartwood/getSkillViews.v2021_02_11.contract.js.map +1 -1
- package/build/.spruce/events/heartwood/listViews.v2021_02_11.contract.js.map +1 -1
- package/build/.spruce/events/heartwood/registerSkillViews.v2021_02_11.contract.js.map +1 -1
- package/build/.spruce/schemas/fields/fieldClassMap.js.map +1 -1
- package/build/.spruce/schemas/fields/fields.types.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitTarget.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitTarget.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitTargetAndPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlResponsePayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/getSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/getSkillViewsResponsePayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/getViewControllersEmitTarget.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/listViewsResponsePayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/listViewsResult.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsResponsePayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/theme.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/themeProps.schema.js.map +1 -1
- package/build/.spruce/schemas/schemas.types.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/fullMessageChoices.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/location.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/message.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/messageSource.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/messageTarget.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/organization.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/person.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/personLocation.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/personOrganization.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/profileImage.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/role.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/sendMessage.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/skill.schema.js.map +1 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/skillCreator.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/bootSkillOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/createConversationTopicOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/createErrorOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/createOrganizationOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/createSchemaOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/createTestOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/generatedDir.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/generatedFile.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/installSkillAtOrganizationOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/listenEventOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/namedTemplateItem.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/nodeFeatureOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/onboardOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/onboarding.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/personWithToken.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/registerDashboardWidgetsEmitPayloadSchema.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/setupTestsOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/setupVscodeOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/skillFeature.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/syncErrorOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/syncEventOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/syncSchemaFieldsOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/syncSchemasOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/testOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/upgradeSkillOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/watcherDidDetectChangesEmitPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceEventUtils/v2021_09_13/eventSource.schema.js.map +1 -1
- package/build/.spruce/skill.types.js.map +1 -1
- package/build/GlobalEmitter.js.map +1 -1
- package/build/InFlightEntertainment.js.map +1 -1
- package/build/__tests__/behavioral/AddingADependency.test.js +3 -1
- package/build/__tests__/behavioral/AddingADependency.test.js.map +1 -1
- package/build/__tests__/behavioral/BlockingCommands.test.js.map +1 -1
- package/build/__tests__/behavioral/BootingTheCli.test.js.map +1 -1
- package/build/__tests__/behavioral/BootingWithBadFiles.test.js.map +1 -1
- package/build/__tests__/behavioral/CreatingAConversationTopic.test.js.map +1 -1
- package/build/__tests__/behavioral/CreatingSchemasWithGenerics.test.js.map +1 -1
- package/build/__tests__/behavioral/DeployingASkill.test.js +20 -20
- package/build/__tests__/behavioral/DeployingASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/DeployingToSandbox.test.js.map +1 -1
- package/build/__tests__/behavioral/EnablingAndDisablingCache.test.js +12 -12
- package/build/__tests__/behavioral/EnablingAndDisablingCache.test.js.map +1 -1
- package/build/__tests__/behavioral/GettingCliVersion.test.js.map +1 -1
- package/build/__tests__/behavioral/InstallingASkillAtAnOrg.test.js +3 -1
- package/build/__tests__/behavioral/InstallingASkillAtAnOrg.test.js.map +1 -1
- package/build/__tests__/behavioral/ListeningToCoreEvents.test.js.map +1 -1
- package/build/__tests__/behavioral/LoggingInAsASkill.test.js +4 -2
- package/build/__tests__/behavioral/LoggingInAsASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/ManagingDependencies.test.js.map +1 -1
- package/build/__tests__/behavioral/OverridingCommandsInPackageJson.test.js.map +1 -1
- package/build/__tests__/behavioral/RebuildingASkill.test.js +2 -2
- package/build/__tests__/behavioral/RebuildingASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/RegisteringConversationsOnBoot.test.js.map +1 -1
- package/build/__tests__/behavioral/RegisteringEventsOnBoot.test.js +6 -4
- package/build/__tests__/behavioral/RegisteringEventsOnBoot.test.js.map +1 -1
- package/build/__tests__/behavioral/RegisteringGlobalEvents.test.js +3 -1
- package/build/__tests__/behavioral/RegisteringGlobalEvents.test.js.map +1 -1
- package/build/__tests__/behavioral/RegisteringSkillViewOnBoot.test.js +3 -1
- package/build/__tests__/behavioral/RegisteringSkillViewOnBoot.test.js.map +1 -1
- package/build/__tests__/behavioral/RememberingUpgradeSelections.test.js.map +1 -1
- package/build/__tests__/behavioral/SettingLogTransportsInASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/SettingRemote.test.js.map +1 -1
- package/build/__tests__/behavioral/SettingUpASkillForTesting.test.js +5 -3
- package/build/__tests__/behavioral/SettingUpASkillForTesting.test.js.map +1 -1
- package/build/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.js.map +1 -1
- package/build/__tests__/behavioral/SettingUpVscode.test.js.map +1 -1
- package/build/__tests__/behavioral/SyncingEventsOnlyFromDependencies.test.js.map +1 -1
- package/build/__tests__/behavioral/TestReporterSettingsRemembered.test.js.map +1 -1
- package/build/__tests__/behavioral/TestingAConversation.test.js.map +1 -1
- package/build/__tests__/behavioral/TestingDataStores.test.js.map +1 -1
- package/build/__tests__/behavioral/WatchingSkillViews.test.js +6 -6
- package/build/__tests__/behavioral/WatchingSkillViews.test.js.map +1 -1
- package/build/__tests__/behavioral/errors/CreatingANewErrorBuilder.test.js.map +1 -1
- package/build/__tests__/behavioral/errors/KeepingErrorClassInSync.test.js.map +1 -1
- package/build/__tests__/behavioral/errors/KeepingErrorsInSync.test.js.map +1 -1
- package/build/__tests__/behavioral/errors/SettingUpErrors.test.js.map +1 -1
- package/build/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.js.map +1 -1
- package/build/__tests__/behavioral/events/CreatingAListener.test.d.ts +5 -0
- package/build/__tests__/behavioral/events/CreatingAListener.test.js +242 -119
- package/build/__tests__/behavioral/events/CreatingAListener.test.js.map +1 -1
- package/build/__tests__/behavioral/events/CreatingAnEvent.test.js +3 -1
- package/build/__tests__/behavioral/events/CreatingAnEvent.test.js.map +1 -1
- package/build/__tests__/behavioral/events/KeepingEventsInSync.test.js.map +1 -1
- package/build/__tests__/behavioral/events/KeepingEventsInSync2.test.js.map +1 -1
- package/build/__tests__/behavioral/events/KeepingListenersInSync.test.js.map +1 -1
- package/build/__tests__/behavioral/events/ListeningToAnEventYouCreate.test.js.map +1 -1
- package/build/__tests__/behavioral/events/SettingUpEvents.test.js.map +1 -1
- package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.js.map +1 -1
- package/build/__tests__/behavioral/node/CreatingANodeModule.test.js +1 -1
- package/build/__tests__/behavioral/node/CreatingANodeModule.test.js.map +1 -1
- package/build/__tests__/behavioral/onboard/StartingOnboarding.test.js.map +1 -1
- package/build/__tests__/behavioral/organization/CreatingAnOrg.test.js.map +1 -1
- package/build/__tests__/behavioral/person/LoggingInAsPerson.test.js.map +1 -1
- package/build/__tests__/behavioral/person/SeeWhoIsLoggedIn.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/CreatingANewSchemaBuilder.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/GeneratingFieldTypesOnly.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/HandlesRelatedSchemas.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/ImportingSchemaImports.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/KeepingSchemasInSync.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/SettingUpSchemas.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/SyncingBadSchemasProvidesHelpfulErrorMessages.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/UsingSchemasInCli.test.js.map +1 -1
- package/build/__tests__/behavioral/skill/BootingASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/skill/CreatingASkill.test.js +1 -1
- package/build/__tests__/behavioral/skill/CreatingASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/skill/RegisteringASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/skill/SettingUpASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/stores/CreatingADataStore.test.js +2 -2
- package/build/__tests__/behavioral/stores/CreatingADataStore.test.js.map +1 -1
- package/build/__tests__/behavioral/stores/KeepingDataStoresInSync.test.js.map +1 -1
- package/build/__tests__/behavioral/tests/CreatingATest.test.js.map +1 -1
- package/build/__tests__/behavioral/tests/RunningTests.test.js.map +1 -1
- package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.d.ts +1 -1
- package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js +8 -8
- package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js.map +1 -1
- package/build/__tests__/behavioral/tests/SettingUpTests.test.js.map +1 -1
- package/build/__tests__/behavioral/{UpdatingDependencies.test.d.ts → upgrading/UpdatingDependencies.test.d.ts} +1 -1
- package/build/__tests__/behavioral/{UpdatingDependencies.test.js → upgrading/UpdatingDependencies.test.js} +1 -1
- package/build/__tests__/behavioral/upgrading/UpdatingDependencies.test.js.map +1 -0
- package/build/__tests__/behavioral/{UpdatingDependencies2.test.d.ts → upgrading/UpdatingDependencies2.test.d.ts} +1 -1
- package/build/__tests__/behavioral/{UpdatingDependencies2.test.js → upgrading/UpdatingDependencies2.test.js} +4 -4
- package/build/__tests__/behavioral/upgrading/UpdatingDependencies2.test.js.map +1 -0
- package/build/__tests__/behavioral/{UpgradingANodeModule.test.d.ts → upgrading/UpgradingANodeModule.test.d.ts} +1 -1
- package/build/__tests__/behavioral/{UpgradingANodeModule.test.js → upgrading/UpgradingANodeModule.test.js} +7 -7
- package/build/__tests__/behavioral/upgrading/UpgradingANodeModule.test.js.map +1 -0
- package/build/__tests__/behavioral/{skill → upgrading}/UpgradingASkill.test.d.ts +0 -0
- package/build/__tests__/behavioral/{skill → upgrading}/UpgradingASkill.test.js +3 -14
- package/build/__tests__/behavioral/upgrading/UpgradingASkill.test.js.map +1 -0
- package/build/__tests__/behavioral/{skill → upgrading}/UpgradingASkill2.test.d.ts +0 -0
- package/build/__tests__/behavioral/{skill → upgrading}/UpgradingASkill2.test.js +4 -13
- package/build/__tests__/behavioral/upgrading/UpgradingASkill2.test.js.map +1 -0
- package/build/__tests__/behavioral/{skill → upgrading}/UpgradingASkill3.test.d.ts +0 -0
- package/build/__tests__/behavioral/{skill → upgrading}/UpgradingASkill3.test.js +6 -6
- package/build/__tests__/behavioral/upgrading/UpgradingASkill3.test.js.map +1 -0
- package/build/__tests__/behavioral/{skill → upgrading}/UpgradingASkill4.test.d.ts +0 -0
- package/build/__tests__/behavioral/{skill → upgrading}/UpgradingASkill4.test.js +3 -3
- package/build/__tests__/behavioral/upgrading/UpgradingASkill4.test.js.map +1 -0
- package/build/__tests__/behavioral/{skill → upgrading}/UpgradingASkill5.test.d.ts +0 -0
- package/build/__tests__/behavioral/{skill → upgrading}/UpgradingASkill5.test.js +2 -2
- package/build/__tests__/behavioral/upgrading/UpgradingASkill5.test.js.map +1 -0
- package/build/__tests__/behavioral/{skill → upgrading}/UpgradingWithListeners.test.d.ts +0 -0
- package/build/__tests__/behavioral/{skill → upgrading}/UpgradingWithListeners.test.js +4 -8
- package/build/__tests__/behavioral/upgrading/UpgradingWithListeners.test.js.map +1 -0
- package/build/__tests__/behavioral/{UpgradingWithSandboxFeatureInstalled.test.d.ts → upgrading/UpgradingWithSandboxFeatureInstalled.test.d.ts} +3 -3
- package/build/__tests__/behavioral/{UpgradingWithSandboxFeatureInstalled.test.js → upgrading/UpgradingWithSandboxFeatureInstalled.test.js} +14 -14
- package/build/__tests__/behavioral/upgrading/UpgradingWithSandboxFeatureInstalled.test.js.map +1 -0
- package/build/__tests__/behavioral/views/CreatingASkillView.test.js.map +1 -1
- package/build/__tests__/behavioral/views/CreatingATheme.test.js.map +1 -1
- package/build/__tests__/behavioral/views/KeepingViewsInSync.test.js.map +1 -1
- package/build/__tests__/behavioral/views/SettingUpViews.test.js.map +1 -1
- package/build/__tests__/behavioral/views/TestingViewControllers.test.js.map +1 -1
- package/build/__tests__/behavioral/watchers/WatchingForChanges.test.js.map +1 -1
- package/build/__tests__/implementation/ActionExecuter.test.js.map +1 -1
- package/build/__tests__/implementation/ActionExecuter2.test.js +1 -1
- package/build/__tests__/implementation/ActionExecuter2.test.js.map +1 -1
- package/build/__tests__/implementation/ActionExecuter3.test.js.map +1 -1
- package/build/__tests__/implementation/ActionExecuter4.test.js +2 -2
- package/build/__tests__/implementation/ActionExecuter4.test.js.map +1 -1
- package/build/__tests__/implementation/ArgParser.test.js.map +1 -1
- package/build/__tests__/implementation/BuildService.test.js.map +1 -1
- package/build/__tests__/implementation/BulkImporting.test.js.map +1 -1
- package/build/__tests__/implementation/CachingImports.test.js.map +1 -1
- package/build/__tests__/implementation/CommandOptionBuilder.test.js.map +1 -1
- package/build/__tests__/implementation/CommanderCommandResultMapper.test.js.map +1 -1
- package/build/__tests__/implementation/DataStoreStore.test.d.ts +1 -0
- package/build/__tests__/implementation/DataStoreStore.test.js +30 -3
- package/build/__tests__/implementation/DataStoreStore.test.js.map +1 -1
- package/build/__tests__/implementation/DeletingOrphanedSchemaDefinitions.test.js.map +1 -1
- package/build/__tests__/implementation/EventContractCleanerUtil.test.js.map +1 -1
- package/build/__tests__/implementation/EventStore.test.d.ts +1 -0
- package/build/__tests__/implementation/EventStore.test.js +68 -35
- package/build/__tests__/implementation/EventStore.test.js.map +1 -1
- package/build/__tests__/implementation/EventTemplateItemBuilder.test.js.map +1 -1
- package/build/__tests__/implementation/FeatureCommandAttacher.test.js.map +1 -1
- package/build/__tests__/implementation/FeatureFixture.test.js.map +1 -1
- package/build/__tests__/implementation/FeatureInstaller.test.js.map +1 -1
- package/build/__tests__/implementation/FeaturesUtil.test.js.map +1 -1
- package/build/__tests__/implementation/FieldTemplateItemBuilder.test.js.map +1 -1
- package/build/__tests__/implementation/GlobalEmitter.js.map +1 -1
- package/build/__tests__/implementation/Introspection.test.js.map +1 -1
- package/build/__tests__/implementation/JestJsonParser.test.js.map +1 -1
- package/build/__tests__/implementation/LintService.test.js +2 -2
- package/build/__tests__/implementation/LintService.test.js.map +1 -1
- package/build/__tests__/implementation/ListenerStore.test.d.ts +4 -0
- package/build/__tests__/implementation/ListenerStore.test.js +56 -0
- package/build/__tests__/implementation/ListenerStore.test.js.map +1 -0
- package/build/__tests__/implementation/OnboardingScriptLoader.test.js.map +1 -1
- package/build/__tests__/implementation/OnboardingScriptPlayer.test.js.map +1 -1
- package/build/__tests__/implementation/OnboardingStore.test.js.map +1 -1
- package/build/__tests__/implementation/OrganizationStore.test.js.map +1 -1
- package/build/__tests__/implementation/ParentTestFinder.test.js.map +1 -1
- package/build/__tests__/implementation/PkgService.test.js +2 -2
- package/build/__tests__/implementation/PkgService.test.js.map +1 -1
- package/build/__tests__/implementation/SchemaStore.test.js.map +1 -1
- package/build/__tests__/implementation/SchemaTemplateItemBuilder.test.js.map +1 -1
- package/build/__tests__/implementation/SchemaValueTypeWriter.test.js.map +1 -1
- package/build/__tests__/implementation/ServiceFactory.test.js.map +1 -1
- package/build/__tests__/implementation/SettingUpANodeModule.test.js.map +1 -1
- package/build/__tests__/implementation/SkillStore.test.js.map +1 -1
- package/build/__tests__/implementation/StoreFeature.test.js +2 -2
- package/build/__tests__/implementation/StoreFeature.test.js.map +1 -1
- package/build/__tests__/implementation/TestReporter.test.js.map +1 -1
- package/build/__tests__/implementation/TestRunner.test.js.map +1 -1
- package/build/__tests__/implementation/ValueTypeMapping.test.js.map +1 -1
- package/build/__tests__/implementation/Widgets.test.js.map +1 -1
- package/build/__tests__/support/onTestFileResult.js.map +1 -1
- package/build/__tests__/support/scripts/first.script.js.map +1 -1
- package/build/__tests__/support/scripts/second.script.js.map +1 -1
- package/build/__tests__/support/scripts/third.test.script.js.map +1 -1
- package/build/addons/filePrompt.addon.js.map +1 -1
- package/build/cli.js +1 -1
- package/build/cli.js.map +1 -1
- package/build/components/AbstractComponent.js.map +1 -1
- package/build/components/FormComponent.js.map +1 -1
- package/build/components/QuizComponent.js.map +1 -1
- package/build/constants.js.map +1 -1
- package/build/errors/SpruceError.js.map +1 -1
- package/build/errors/actionCancelled.builder.js.map +1 -1
- package/build/errors/bootError.builder.js.map +1 -1
- package/build/errors/buildFailed.builder.js.map +1 -1
- package/build/errors/cacheNotEnabled.builder.js.map +1 -1
- package/build/errors/commandAborted.builder.js.map +1 -1
- package/build/errors/commandBlocked.builder.js.map +1 -1
- package/build/errors/commandNotImplemented.builder.js.map +1 -1
- package/build/errors/createAutoloaderFailed.builder.js.map +1 -1
- package/build/errors/dependencyExists.builder.js.map +1 -1
- package/build/errors/deployFailed.builder.js.map +1 -1
- package/build/errors/directoryEmpty.builder.js.map +1 -1
- package/build/errors/directoryNotSkill.builder.js.map +1 -1
- package/build/errors/dockerNotStarted.builder.js.map +1 -1
- package/build/errors/executingCommandFailed.builder.js.map +1 -1
- package/build/errors/failedToImport.builder.js.map +1 -1
- package/build/errors/featureNotInstalled.builder.js.map +1 -1
- package/build/errors/fileExists.builder.js.map +1 -1
- package/build/errors/generic.builder.js.map +1 -1
- package/build/errors/invalidCommand.builder.js.map +1 -1
- package/build/errors/invalidEventContract.builder.js.map +1 -1
- package/build/errors/invalidFeatureCode.builder.js.map +1 -1
- package/build/errors/invalidTestDirectory.builder.js.map +1 -1
- package/build/errors/lintFailed.builder.js.map +1 -1
- package/build/errors/mercuryResponseError.builder.js.map +1 -1
- package/build/errors/missingDependencies.builder.js.map +1 -1
- package/build/errors/noOrganizationsFound.builder.js.map +1 -1
- package/build/errors/noSkillsRegistered.builder.js.map +1 -1
- package/build/errors/notImplemented.builder.js.map +1 -1
- package/build/errors/notLoggedIn.builder.js.map +1 -1
- package/build/errors/schemaExists.builder.js.map +1 -1
- package/build/errors/schemaFailedToImport.builder.js.map +1 -1
- package/build/errors/schemaTemplateItemBuildingFailed.builder.js.map +1 -1
- package/build/errors/skillNotFound.builder.js.map +1 -1
- package/build/errors/skillNotRegistered.builder.js.map +1 -1
- package/build/errors/skillViewExists.builder.js.map +1 -1
- package/build/errors/storeExists.builder.js.map +1 -1
- package/build/errors/testFailed.builder.js.map +1 -1
- package/build/errors/themeExists.builder.js.map +1 -1
- package/build/errors/transportAlreadyExists.builder.js.map +1 -1
- package/build/errors/vscodeNotInstalled.builder.js.map +1 -1
- package/build/features/AbstractAction.js.map +1 -1
- package/build/features/AbstractFeature.js.map +1 -1
- package/build/features/ActionExecuter.js.map +1 -1
- package/build/features/ActionFactory.js.map +1 -1
- package/build/features/ActionQuestionAsker.js.map +1 -1
- package/build/features/FeatureCommandAttacher.js.map +1 -1
- package/build/features/FeatureInstaller.js.map +1 -1
- package/build/features/FeatureInstallerFactory.js.map +1 -1
- package/build/features/OverrideActionDecorator.js.map +1 -1
- package/build/features/cache/CacheFeature.js.map +1 -1
- package/build/features/cache/actions/DisableAction.js.map +1 -1
- package/build/features/cache/actions/EnableAction.js.map +1 -1
- package/build/features/cache/constants.js.map +1 -1
- package/build/features/conversation/ConversationFeature.js.map +1 -1
- package/build/features/conversation/actions/CreateAction.js.map +1 -1
- package/build/features/conversation/actions/TestAction.js.map +1 -1
- package/build/features/conversation/stores/ConversationStore.js.map +1 -1
- package/build/features/conversation/writers/ConversationWriter.js.map +1 -1
- package/build/features/dependencies/DependencyFeature.js.map +1 -1
- package/build/features/dependencies/actions/AddAction.js.map +1 -1
- package/build/features/dependencies/actions/ManageAction.js.map +1 -1
- package/build/features/deploy/DeployFeature.js.map +1 -1
- package/build/features/deploy/actions/HerokuAction.js.map +1 -1
- package/build/features/deploy/writers/DeployWriter.js.map +1 -1
- package/build/features/error/ErrorFeature.js.map +1 -1
- package/build/features/error/ParentTestFinder.js.map +1 -1
- package/build/features/error/actions/CreateAction.js.map +1 -1
- package/build/features/error/actions/SyncAction.js.map +1 -1
- package/build/features/error/writers/ErrorWriter.js.map +1 -1
- package/build/features/event/EventFeature.d.ts +1 -0
- package/build/features/event/EventFeature.js +89 -56
- package/build/features/event/EventFeature.js.map +1 -1
- package/build/features/event/actions/CreateAction.js.map +1 -1
- package/build/features/event/actions/ListenAction.d.ts +1 -0
- package/build/features/event/actions/ListenAction.js +23 -31
- package/build/features/event/actions/ListenAction.js.map +1 -1
- package/build/features/event/actions/SetRemoteAction.js.map +1 -1
- package/build/features/event/actions/SyncAction.js.map +1 -1
- package/build/features/event/actions/SyncListenersAction.js.map +1 -1
- package/build/features/event/builders/EventContractBuilder.js.map +1 -1
- package/build/features/event/builders/ListenerTemplateItemBuilder.js.map +1 -1
- package/build/features/event/services/EventSettingsService.js.map +1 -1
- package/build/features/event/services/RemoteService.js.map +1 -1
- package/build/features/event/stores/EventStore.d.ts +7 -5
- package/build/features/event/stores/EventStore.js +16 -8
- package/build/features/event/stores/EventStore.js.map +1 -1
- package/build/features/event/stores/ListenerStore.d.ts +1 -0
- package/build/features/event/stores/ListenerStore.js +6 -1
- package/build/features/event/stores/ListenerStore.js.map +1 -1
- package/build/features/event/writers/EventWriter.js.map +1 -1
- package/build/features/eventContract/EventContractFeature.js.map +1 -1
- package/build/features/eventContract/actions/PullAction.js.map +1 -1
- package/build/features/feature.utilities.js.map +1 -1
- package/build/features/features.types.js.map +1 -1
- package/build/features/log/LogFeature.js.map +1 -1
- package/build/features/log/actions/CreateTransportAction.js.map +1 -1
- package/build/features/log/writers/LogWriter.js.map +1 -1
- package/build/features/node/NodeFeature.js.map +1 -1
- package/build/features/node/actions/CreateAction.js.map +1 -1
- package/build/features/node/actions/UpdateDependenciesAction.js.map +1 -1
- package/build/features/node/actions/UpgradeAction.js.map +1 -1
- package/build/features/node/writers/NodeWriter.js.map +1 -1
- package/build/features/onboard/OnboardFeature.js.map +1 -1
- package/build/features/onboard/ScriptLoader.js.map +1 -1
- package/build/features/onboard/ScriptPlayer.js.map +1 -1
- package/build/features/onboard/actions/OnboardAction.js.map +1 -1
- package/build/features/onboard/scripts/onboarding.first.script.js.map +1 -1
- package/build/features/onboard/scripts/onboarding.immersive.script.js.map +1 -1
- package/build/features/onboard/scripts/onboarding.returning.script.js.map +1 -1
- package/build/features/onboard/scripts/onboarding.short.script.js.map +1 -1
- package/build/features/onboard/scripts/todo/todo.create.skill.script.js.map +1 -1
- package/build/features/onboard/scripts/todo/todo.test.script.js.map +1 -1
- package/build/features/onboard/scripts/wrongCommand.script.js.map +1 -1
- package/build/features/onboard/stores/OnboardingStore.js.map +1 -1
- package/build/features/organization/OrganizationFeature.js.map +1 -1
- package/build/features/organization/actions/CreateAction.js.map +1 -1
- package/build/features/organization/actions/InstallAction.js.map +1 -1
- package/build/features/organization/stores/OrganizationStore.js.map +1 -1
- package/build/features/person/PersonFeature.js.map +1 -1
- package/build/features/person/actions/LoginAction.js.map +1 -1
- package/build/features/person/actions/LogoutAction.js.map +1 -1
- package/build/features/person/actions/WhoamiAction.js.map +1 -1
- package/build/features/sandbox/SandboxFeature.js.map +1 -1
- package/build/features/sandbox/actions/SetupAction.js.map +1 -1
- package/build/features/sandbox/writers/SandboxWriter.js.map +1 -1
- package/build/features/schema/SchemaFeature.js.map +1 -1
- package/build/features/schema/ValueTypeBuilder.js.map +1 -1
- package/build/features/schema/actions/CreateAction.js.map +1 -1
- package/build/features/schema/actions/SyncAction.js.map +1 -1
- package/build/features/schema/actions/SyncFieldsAction.js.map +1 -1
- package/build/features/schema/services/SchemaService.js.map +1 -1
- package/build/features/schema/stores/SchemaStore.js.map +1 -1
- package/build/features/schema/utilities/schema.utility.js.map +1 -1
- package/build/features/schema/utilities/schemaDisk.utility.js.map +1 -1
- package/build/features/schema/utilities/schemaGenerator.utility.js.map +1 -1
- package/build/features/schema/writers/SchemaWriter.js.map +1 -1
- package/build/features/skill/SkillFeature.js.map +1 -1
- package/build/features/skill/actions/BootAction.js.map +1 -1
- package/build/features/skill/actions/CreateAction.js.map +1 -1
- package/build/features/skill/actions/DashboardAction.js.map +1 -1
- package/build/features/skill/actions/LoginAction.js.map +1 -1
- package/build/features/skill/actions/RebuildAction.js.map +1 -1
- package/build/features/skill/actions/RegisterAction.js.map +1 -1
- package/build/features/skill/stores/SkillStore.js.map +1 -1
- package/build/features/skill/updaters/Updater.js.map +1 -1
- package/build/features/skill/writers/SkillWriter.js.map +1 -1
- package/build/features/store/StoreFeature.d.ts +1 -1
- package/build/features/store/StoreFeature.js +15 -14
- package/build/features/store/StoreFeature.js.map +1 -1
- package/build/features/store/actions/CreateAction.js.map +1 -1
- package/build/features/store/actions/SyncAction.js.map +1 -1
- package/build/features/store/stores/StoreStore.d.ts +1 -0
- package/build/features/store/stores/StoreStore.js +6 -1
- package/build/features/store/stores/StoreStore.js.map +1 -1
- package/build/features/store/templateItemBuilders/StoreTemplateItemBuilder.js.map +1 -1
- package/build/features/store/writers/StoreWriter.js.map +1 -1
- package/build/features/test/TestFeature.js.map +1 -1
- package/build/features/test/TestLogItemGenerator.js.map +1 -1
- package/build/features/test/TestReporter.js.map +1 -1
- package/build/features/test/TestRunner.js.map +1 -1
- package/build/features/test/actions/CreateAction.js.map +1 -1
- package/build/features/test/actions/SetupAction.js.map +1 -1
- package/build/features/test/actions/TestAction.js.map +1 -1
- package/build/features/test/test.types.js.map +1 -1
- package/build/features/test/writers/TestWriter.js.map +1 -1
- package/build/features/universalDevDependencies.js.map +1 -1
- package/build/features/universalFileDescriptions.js.map +1 -1
- package/build/features/universalScripts.js.map +1 -1
- package/build/features/validateAndNormalize.utility.d.ts +2 -2
- package/build/features/validateAndNormalize.utility.js +2 -2
- package/build/features/validateAndNormalize.utility.js.map +1 -1
- package/build/features/view/ViewFeature.js.map +1 -1
- package/build/features/view/actions/CreateAction.js.map +1 -1
- package/build/features/view/actions/CreateThemeAction.js.map +1 -1
- package/build/features/view/actions/SyncAction.js.map +1 -1
- package/build/features/view/actions/WatchAction.js.map +1 -1
- package/build/features/view/stores/ViewStore.js.map +1 -1
- package/build/features/view/writers/ViewWriter.js.map +1 -1
- package/build/features/vscode/VsCodeFeature.js.map +1 -1
- package/build/features/vscode/actions/SetupAction.js.map +1 -1
- package/build/features/vscode/services/VsCodeService.js.map +1 -1
- package/build/features/vscode/writers/VsCodeWriter.js.map +1 -1
- package/build/features/watch/WatchFeature.js.map +1 -1
- package/build/index.js.map +1 -1
- package/build/interfaces/SpyInterface.js.map +1 -1
- package/build/interfaces/TerminalInterface.js.map +1 -1
- package/build/schemas/v2020_07_22/bootSkillOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/createConversationTopicOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/createErrorOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/createOrganizationOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/createSchemaOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/createTestOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/installSkillAtOrganizationOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/listenEventOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/namedTemplateItem.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/nodeFeatureOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/onboardOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/onboarding.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/personWithToken.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/registerDashboardWidgetsEmitPayloadSchema.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/setupTestsOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/setupVscodeOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/skillFeature.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/syncErrorOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/syncEventOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/syncSchemaFieldsOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/syncSchemasOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/testOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/upgradeSkillOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/watcherDidDetectChangesEmitPayload.builder.js.map +1 -1
- package/build/services/BuildService.js.map +1 -1
- package/build/services/CommandService.d.ts +1 -1
- package/build/services/CommandService.js +2 -2
- package/build/services/CommandService.js.map +1 -1
- package/build/services/DependencyService.js.map +1 -1
- package/build/services/GameService.js.map +1 -1
- package/build/services/ImportService.js.map +1 -1
- package/build/services/LintService.js.map +1 -1
- package/build/services/PkgService.js.map +1 -1
- package/build/services/ServiceFactory.js.map +1 -1
- package/build/services/TypeCheckerService.js.map +1 -1
- package/build/stores/AbstractLocalStore.js.map +1 -1
- package/build/stores/AbstractStore.js.map +1 -1
- package/build/stores/StoreFactory.js.map +1 -1
- package/build/templateItemBuilders/EventTemplateItemBuilder.js.map +1 -1
- package/build/templateItemBuilders/FieldTemplateItemBuilder.js.map +1 -1
- package/build/templateItemBuilders/SchemaTemplateItemBuilder.js.map +1 -1
- package/build/tests/AbstractCliTest.d.ts +2 -0
- package/build/tests/AbstractCliTest.js +9 -2
- package/build/tests/AbstractCliTest.js.map +1 -1
- package/build/tests/AbstractErrorTest.js.map +1 -1
- package/build/tests/AbstractEventTest.js.map +1 -1
- package/build/tests/AbstractSchemaTest.js.map +1 -1
- package/build/tests/AbstractSkillTest.js.map +1 -1
- package/build/tests/AbstractTestTest.js.map +1 -1
- package/build/tests/CommandFaker.d.ts +8 -0
- package/build/tests/CommandFaker.js +54 -0
- package/build/tests/CommandFaker.js.map +1 -0
- package/build/tests/JestJsonParser.js.map +1 -1
- package/build/tests/MockProgramFactory.js.map +1 -1
- package/build/tests/buildTestCache.js.map +1 -1
- package/build/tests/cleanTestCache.js.map +1 -1
- package/build/tests/cleanTestData.js +9 -10
- package/build/tests/cleanTestData.js.map +1 -1
- package/build/tests/constants.d.ts +8 -0
- package/build/tests/constants.js +28 -0
- package/build/tests/constants.js.map +1 -0
- package/build/tests/fixtures/FeatureFixture.js.map +1 -1
- package/build/tests/fixtures/MercuryFixture.js.map +1 -1
- package/build/tests/fixtures/OrganizationFixture.js.map +1 -1
- package/build/tests/fixtures/PersonFixture.js.map +1 -1
- package/build/tests/fixtures/SkillFixture.js.map +1 -1
- package/build/tests/fixtures/ViewFixture.js.map +1 -1
- package/build/tests/utilities/test.utility.js.map +1 -1
- package/build/tests/utilities/uiAssert.utility.js.map +1 -1
- package/build/types/apiClient.types.js.map +1 -1
- package/build/types/cli.types.js.map +1 -1
- package/build/types/graphicsInterface.types.js.map +1 -1
- package/build/updaters/ScriptUpdater.js.map +1 -1
- package/build/utilities/action.utility.js.map +1 -1
- package/build/utilities/apiClient.utility.js.map +1 -1
- package/build/utilities/argParser.utility.js.map +1 -1
- package/build/utilities/commander.utility.js.map +1 -1
- package/build/utilities/duration.utility.js.map +1 -1
- package/build/utilities/eventContractCleaner.utility.js.map +1 -1
- package/build/utilities/form.utility.js.map +1 -1
- package/build/utilities/introspection.utility.js.map +1 -1
- package/build/utilities/isCi.js.map +1 -1
- package/build/utilities/tsConfig.utility.js.map +1 -1
- package/build/utilities/ui.utility.js.map +1 -1
- package/build/widgets/Theme.js.map +1 -1
- package/build/widgets/WidgetFactory.js.map +1 -1
- package/build/widgets/keySelectChoices.js.map +1 -1
- package/build/widgets/terminalKit/TKButtonWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkBaseWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkInputWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkLayoutCellWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkLayoutWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkMenuBarWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkPopupWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkProgressBarWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkTextWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkWindowWidget.js.map +1 -1
- package/build/widgets/terminalKit/termKit.utility.js.map +1 -1
- package/build/widgets/types/button.types.js.map +1 -1
- package/build/widgets/types/factory.types.js.map +1 -1
- package/build/widgets/types/input.types.js.map +1 -1
- package/build/widgets/types/layout.types.js.map +1 -1
- package/build/widgets/types/menuBar.types.js.map +1 -1
- package/build/widgets/types/popup.types.js.map +1 -1
- package/build/widgets/types/progressBar.types.js.map +1 -1
- package/build/widgets/types/table.types.js.map +1 -1
- package/build/widgets/types/text.types.js.map +1 -1
- package/build/widgets/types/widgets.types.js.map +1 -1
- package/build/widgets/types/window.types.js.map +1 -1
- package/build/widgets/widget.utilities.js.map +1 -1
- package/build/writers/AbstractWriter.js.map +1 -1
- package/build/writers/WriterFactory.js.map +1 -1
- package/package.json +72 -72
- package/src/__tests__/behavioral/AddingADependency.test.ts +2 -1
- package/src/__tests__/behavioral/DeployingASkill.test.ts +20 -20
- package/src/__tests__/behavioral/EnablingAndDisablingCache.test.ts +12 -12
- package/src/__tests__/behavioral/InstallingASkillAtAnOrg.test.ts +2 -1
- package/src/__tests__/behavioral/LoggingInAsASkill.test.ts +3 -2
- package/src/__tests__/behavioral/RebuildingASkill.test.ts +2 -2
- package/src/__tests__/behavioral/RegisteringEventsOnBoot.test.ts +3 -5
- package/src/__tests__/behavioral/RegisteringGlobalEvents.test.ts +2 -1
- package/src/__tests__/behavioral/RegisteringSkillViewOnBoot.test.ts +2 -1
- package/src/__tests__/behavioral/SettingUpASkillForTesting.test.ts +4 -3
- package/src/__tests__/behavioral/WatchingSkillViews.test.ts +6 -6
- package/src/__tests__/behavioral/events/CreatingAListener.test.ts +54 -7
- package/src/__tests__/behavioral/events/CreatingAnEvent.test.ts +2 -1
- package/src/__tests__/behavioral/node/CreatingANodeModule.test.ts +1 -1
- package/src/__tests__/behavioral/skill/CreatingASkill.test.ts +1 -1
- package/src/__tests__/behavioral/stores/CreatingADataStore.test.ts +2 -2
- package/src/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.ts +3 -3
- package/src/__tests__/behavioral/{UpdatingDependencies.test.ts → upgrading/UpdatingDependencies.test.ts} +2 -2
- package/src/__tests__/behavioral/{UpdatingDependencies2.test.ts → upgrading/UpdatingDependencies2.test.ts} +6 -6
- package/src/__tests__/behavioral/{UpgradingANodeModule.test.ts → upgrading/UpgradingANodeModule.test.ts} +7 -7
- package/src/__tests__/behavioral/{skill → upgrading}/UpgradingASkill.test.ts +3 -11
- package/src/__tests__/behavioral/{skill → upgrading}/UpgradingASkill2.test.ts +4 -7
- package/src/__tests__/behavioral/{skill → upgrading}/UpgradingASkill3.test.ts +6 -6
- package/src/__tests__/behavioral/{skill → upgrading}/UpgradingASkill4.test.ts +3 -3
- package/src/__tests__/behavioral/{skill → upgrading}/UpgradingASkill5.test.ts +2 -2
- package/src/__tests__/behavioral/{skill → upgrading}/UpgradingWithListeners.test.ts +3 -5
- package/src/__tests__/behavioral/{UpgradingWithSandboxFeatureInstalled.test.ts → upgrading/UpgradingWithSandboxFeatureInstalled.test.ts} +5 -5
- package/src/__tests__/implementation/ActionExecuter2.test.ts +1 -1
- package/src/__tests__/implementation/ActionExecuter4.test.ts +2 -2
- package/src/__tests__/implementation/DataStoreStore.test.ts +8 -0
- package/src/__tests__/implementation/EventStore.test.ts +17 -1
- package/src/__tests__/implementation/LintService.test.ts +2 -2
- package/src/__tests__/implementation/ListenerStore.test.ts +14 -0
- package/src/__tests__/implementation/PkgService.test.ts +4 -7
- package/src/__tests__/implementation/StoreFeature.test.ts +2 -2
- package/src/cli.ts +1 -1
- package/src/features/AbstractAction.ts +2 -2
- package/src/features/event/EventFeature.ts +14 -11
- package/src/features/event/actions/ListenAction.ts +22 -12
- package/src/features/event/builders/EventContractBuilder.ts +2 -2
- package/src/features/event/stores/EventStore.ts +28 -20
- package/src/features/event/stores/ListenerStore.ts +5 -3
- package/src/features/store/StoreFeature.ts +7 -6
- package/src/features/store/stores/StoreStore.ts +5 -1
- package/src/features/validateAndNormalize.utility.ts +2 -2
- package/src/services/CommandService.ts +1 -4
- package/src/tests/AbstractCliTest.ts +6 -1
- package/src/tests/CommandFaker.ts +24 -0
- package/src/tests/cleanTestData.ts +2 -19
- package/src/tests/constants.ts +17 -0
- package/build/__tests__/behavioral/UpdatingDependencies.test.js.map +0 -1
- package/build/__tests__/behavioral/UpdatingDependencies2.test.js.map +0 -1
- package/build/__tests__/behavioral/UpgradingANodeModule.test.js.map +0 -1
- package/build/__tests__/behavioral/UpgradingWithSandboxFeatureInstalled.test.js.map +0 -1
- package/build/__tests__/behavioral/skill/UpgradingASkill.test.js.map +0 -1
- package/build/__tests__/behavioral/skill/UpgradingASkill2.test.js.map +0 -1
- package/build/__tests__/behavioral/skill/UpgradingASkill3.test.js.map +0 -1
- package/build/__tests__/behavioral/skill/UpgradingASkill4.test.js.map +0 -1
- package/build/__tests__/behavioral/skill/UpgradingASkill5.test.js.map +0 -1
- package/build/__tests__/behavioral/skill/UpgradingWithListeners.test.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"syncEventOptions.builder.js","names":["id","name","description","fields","contractDestinationDir","type","label","hint","defaultValue","schemaTypesLookupDir","syncSchemasOptionsBuilder","schemaTypesDestinationDirOrFile","shouldSyncOnlyCoreEvents","skillEventContractTypesFile","eventBuilderFile"],"sources":["../../../src/schemas/v2020_07_22/syncEventOptions.builder.ts"],"sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\nimport syncSchemasOptionsBuilder from './syncSchemasOptions.builder'\n\nexport default buildSchema({\n\tid: 'syncEventOptions',\n\tname: 'sync event action',\n\tdescription:\n\t\t'Pull down event contracts from Mercury to make them available in your skill.',\n\tfields: {\n\t\tcontractDestinationDir: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Contract destination',\n\t\t\thint: 'Where I will generate event contracts.',\n\t\t\tdefaultValue: '#spruce/events',\n\t\t},\n\t\tschemaTypesLookupDir: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Schema types lookup directory',\n\t\t\thint: 'Where I will lookup schema types and interfaces.',\n\t\t\tdefaultValue:\n\t\t\t\tsyncSchemasOptionsBuilder.fields.schemaTypesDestinationDirOrFile\n\t\t\t\t\t.defaultValue,\n\t\t},\n\t\tshouldSyncOnlyCoreEvents: {\n\t\t\ttype: 'boolean',\n\t\t\tlabel: 'Sync only core events',\n\t\t\thint: 'For use in @sprucelabs/mercury-types',\n\t\t},\n\t\tskillEventContractTypesFile: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Event signature types file',\n\t\t\tdefaultValue: '@sprucelabs/mercury-types/build/types/mercury.types',\n\t\t},\n\t\teventBuilderFile: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Event builder file',\n\t\t\tdefaultValue: '@sprucelabs/mercury-types',\n\t\t},\n\t},\n})\n"],"mappings":";;;;;;;;;AAAA;;AACA;;eAEe,yBAAY;EAC1BA,EAAE,EAAE,kBADsB;EAE1BC,IAAI,EAAE,mBAFoB;EAG1BC,WAAW,EACV,8EAJyB;EAK1BC,MAAM,EAAE;IACPC,sBAAsB,EAAE;MACvBC,IAAI,EAAE,MADiB;MAEvBC,KAAK,EAAE,sBAFgB;MAGvBC,IAAI,EAAE,wCAHiB;MAIvBC,YAAY,EAAE;IAJS,CADjB;IAOPC,oBAAoB,EAAE;MACrBJ,IAAI,EAAE,MADe;MAErBC,KAAK,EAAE,+BAFc;MAGrBC,IAAI,EAAE,kDAHe;MAIrBC,YAAY,EACXE,+BAA0BP,MAA1B,CAAiCQ,+BAAjC,CACEH;IANkB,CAPf;IAePI,wBAAwB,EAAE;MACzBP,IAAI,EAAE,SADmB;MAEzBC,KAAK,EAAE,uBAFkB;MAGzBC,IAAI,EAAE;IAHmB,CAfnB;IAoBPM,2BAA2B,EAAE;MAC5BR,IAAI,EAAE,MADsB;MAE5BC,KAAK,EAAE,4BAFqB;MAG5BE,YAAY,EAAE;IAHc,CApBtB;IAyBPM,gBAAgB,EAAE;MACjBT,IAAI,EAAE,MADW;MAEjBC,KAAK,EAAE,oBAFU;MAGjBE,YAAY,EAAE;IAHG;EAzBX;AALkB,CAAZ,C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"syncSchemaFieldsOptions.builder.js","names":["id","name","description","fields","fieldTypesDestinationDir","type","label","hint","defaultValue","isPrivate","addonsLookupDir","generateFieldTypes"],"sources":["../../../src/schemas/v2020_07_22/syncSchemaFieldsOptions.builder.ts"],"sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\n\nexport default buildSchema({\n\tid: 'syncSchemaFieldsOptions',\n\tname: 'syncSchemaFieldsOptions',\n\tdescription: 'Sync schema fields so you can use schemas!',\n\tfields: {\n\t\tfieldTypesDestinationDir: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Field types directory',\n\t\t\thint: 'Where field types and interfaces will be generated.',\n\t\t\tdefaultValue: '#spruce/schemas',\n\t\t\tisPrivate: true,\n\t\t},\n\t\taddonsLookupDir: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Addons lookup directory',\n\t\t\thint: \"Where I'll look for new schema fields to be registered.\",\n\t\t\tdefaultValue: 'src/addons',\n\t\t},\n\t\tgenerateFieldTypes: {\n\t\t\ttype: 'boolean',\n\t\t\tlabel: 'Generate field types',\n\t\t\tisPrivate: true,\n\t\t\thint: 'Should I generate field types too?',\n\t\t\tdefaultValue: true,\n\t\t},\n\t},\n})\n"],"mappings":";;;;;;;AAAA;;eAEe,yBAAY;EAC1BA,EAAE,EAAE,yBADsB;EAE1BC,IAAI,EAAE,yBAFoB;EAG1BC,WAAW,EAAE,4CAHa;EAI1BC,MAAM,EAAE;IACPC,wBAAwB,EAAE;MACzBC,IAAI,EAAE,MADmB;MAEzBC,KAAK,EAAE,uBAFkB;MAGzBC,IAAI,EAAE,qDAHmB;MAIzBC,YAAY,EAAE,iBAJW;MAKzBC,SAAS,EAAE;IALc,CADnB;IAQPC,eAAe,EAAE;MAChBL,IAAI,EAAE,MADU;MAEhBC,KAAK,EAAE,yBAFS;MAGhBC,IAAI,EAAE,yDAHU;MAIhBC,YAAY,EAAE;IAJE,CARV;IAcPG,kBAAkB,EAAE;MACnBN,IAAI,EAAE,SADa;MAEnBC,KAAK,EAAE,sBAFY;MAGnBG,SAAS,EAAE,IAHQ;MAInBF,IAAI,EAAE,oCAJa;MAKnBC,YAAY,EAAE;IALK;EAdb;AAJkB,CAAZ,C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"syncSchemasOptions.builder.js","names":["id","name","description","fields","syncSchemaFieldsBuilder","schemaTypesDestinationDirOrFile","type","label","hint","defaultValue","schemaLookupDir","moduleToImportFromWhenRemote","shouldInstallMissingDependencies","shouldEnableVersioning","isPrivate","globalSchemaNamespace","DEFAULT_GLOBAL_SCHEMA_NAMESPACE","shouldFetchRemoteSchemas","shouldFetchLocalSchemas","shouldFetchCoreSchemas","shouldGenerateCoreSchemaTypes","registerBuiltSchemas","deleteDestinationDirIfNoSchemas","deleteOrphanedSchemas","generateStandaloneTypesFile","syncingMessage"],"sources":["../../../src/schemas/v2020_07_22/syncSchemasOptions.builder.ts"],"sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\nimport { DEFAULT_GLOBAL_SCHEMA_NAMESPACE } from '@sprucelabs/spruce-skill-utils'\nimport syncSchemaFieldsBuilder from './syncSchemaFieldsOptions.builder'\n\nexport default buildSchema({\n\tid: 'syncSchemasOptions',\n\tname: 'Sync schemas action',\n\tdescription: 'Options for schema.sync.',\n\tfields: {\n\t\t...syncSchemaFieldsBuilder.fields,\n\t\tschemaTypesDestinationDirOrFile: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Schema types destination directory',\n\t\t\thint: 'Where I will generate schema types and interfaces.',\n\t\t\tdefaultValue: '#spruce/schemas',\n\t\t},\n\t\tschemaLookupDir: {\n\t\t\ttype: 'text',\n\t\t\thint: 'Where I should look for your schema builders?',\n\t\t\tdefaultValue: 'src/schemas',\n\t\t},\n\t\tmoduleToImportFromWhenRemote: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Module import',\n\t\t\thint: 'When other skills use your schemas, will they import them from a module?',\n\t\t},\n\t\tshouldInstallMissingDependencies: {\n\t\t\ttype: 'boolean',\n\t\t\tlabel: 'Auto install missing dependencies',\n\t\t},\n\t\tshouldEnableVersioning: {\n\t\t\ttype: 'boolean',\n\t\t\tdefaultValue: true,\n\t\t\tlabel: 'Enable versioning',\n\t\t\thint: 'Should we use versioning?',\n\t\t\tisPrivate: true,\n\t\t},\n\t\tglobalSchemaNamespace: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Global namespace',\n\t\t\thint: \"The name you'll use when accessing these schemas, e.g. SpruceSchemas\",\n\t\t\tisPrivate: true,\n\t\t\tdefaultValue: DEFAULT_GLOBAL_SCHEMA_NAMESPACE,\n\t\t},\n\t\tshouldFetchRemoteSchemas: {\n\t\t\ttype: 'boolean',\n\t\t\tlabel: 'Fetch remote schemas',\n\t\t\tisPrivate: true,\n\t\t\thint: 'I will pull in schemas from other features.',\n\t\t\tdefaultValue: true,\n\t\t},\n\t\tshouldFetchLocalSchemas: {\n\t\t\ttype: 'boolean',\n\t\t\tlabel: 'Fetch local schemas',\n\t\t\tisPrivate: true,\n\t\t\thint: 'I will look in schemaLookupDir to load local schemas.',\n\t\t\tdefaultValue: true,\n\t\t},\n\t\tshouldFetchCoreSchemas: {\n\t\t\ttype: 'boolean',\n\t\t\tlabel: 'Fetch core schemas',\n\t\t\tisPrivate: true,\n\t\t\thint: 'Should I pull in core schemas too?',\n\t\t\tdefaultValue: true,\n\t\t},\n\t\tshouldGenerateCoreSchemaTypes: {\n\t\t\ttype: 'boolean',\n\t\t\tlabel: 'Generate core schemas',\n\t\t\tisPrivate: true,\n\t\t\thint: 'Used only for updating the @sprucelabs/spruce-core-schemas. Ensures core schemas are generated like local schemas. Also an alias for `--shouldFetchRemoteSchemas=false --shouldFetchCoreSchemas=false --generateStandaloneTypesFile.',\n\t\t},\n\t\tregisterBuiltSchemas: {\n\t\t\ttype: 'boolean',\n\t\t\tlabel: 'Register built schemas',\n\t\t\tisPrivate: true,\n\t\t\thint: 'Should the schemas use the SchemaRegistry for tracking?',\n\t\t\tdefaultValue: true,\n\t\t},\n\t\tdeleteDestinationDirIfNoSchemas: {\n\t\t\ttype: 'boolean',\n\t\t\tlabel: 'Delete directory if no schemas',\n\t\t\tisPrivate: true,\n\t\t\thint: 'Should I delete the schema directory if no schemas are found?',\n\t\t\tdefaultValue: false,\n\t\t},\n\t\tdeleteOrphanedSchemas: {\n\t\t\ttype: 'boolean',\n\t\t\tlabel: 'Delete orphaned schemas',\n\t\t\tisPrivate: true,\n\t\t\thint: 'Should I delete schemas where the builders are missing?',\n\t\t\tdefaultValue: true,\n\t\t},\n\t\tgenerateStandaloneTypesFile: {\n\t\t\tlabel: 'Generate standalone types file',\n\t\t\ttype: 'boolean',\n\t\t\tisPrivate: true,\n\t\t\thint: \"By default, I'll generate a types file that augments core types from @sprucelabs/spruce-core-schemas. Setting this to true will generate a stand alone types file.\",\n\t\t\tdefaultValue: false,\n\t\t},\n\t\tsyncingMessage: {\n\t\t\tlabel: ' message',\n\t\t\ttype: 'text',\n\t\t\tdefaultValue: 'Syncing schemas...',\n\t\t\tisPrivate: true,\n\t\t},\n\t},\n})\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"testOptions.builder.js","names":["id","name","description","fields","shouldReportWhileRunning","type","label","hint","defaultValue","pattern","inspect","shouldHoldAtStart","shouldReturnImmediately","isPrivate","watchMode","options","choices","value"],"sources":["../../../src/schemas/v2020_07_22/testOptions.builder.ts"],"sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\n\nexport default buildSchema({\n\tid: 'testOptions',\n\tname: 'Test skill',\n\tdescription: 'Test your might! 💪',\n\tfields: {\n\t\tshouldReportWhileRunning: {\n\t\t\ttype: 'boolean',\n\t\t\tlabel: 'Report while running',\n\t\t\thint: 'Should I output the test results while they are running?',\n\t\t\tdefaultValue: true,\n\t\t},\n\t\tpattern: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'Pattern',\n\t\t\thint: `I'll filter all tests that match this pattern`,\n\t\t},\n\t\tinspect: {\n\t\t\ttype: 'number',\n\t\t\tlabel: 'Inspect',\n\t\t\thint: `Pass --inspect related args to test process.`,\n\t\t},\n\t\tshouldHoldAtStart: {\n\t\t\ttype: 'boolean',\n\t\t\tlabel: 'Should wait for manual start?',\n\t\t\tdefaultValue: false,\n\t\t},\n\t\tshouldReturnImmediately: {\n\t\t\ttype: 'boolean',\n\t\t\tlabel: 'Wait until tests are finished',\n\t\t\tisPrivate: true,\n\t\t\tdefaultValue: false,\n\t\t\thint: 'For testing. Returns immediately after executing test so the running process can be managed programatically.',\n\t\t},\n\t\twatchMode: {\n\t\t\ttype: 'select',\n\t\t\tlabel: 'Watch',\n\t\t\toptions: {\n\t\t\t\tchoices: [\n\t\t\t\t\t{\n\t\t\t\t\t\tvalue: 'off',\n\t\t\t\t\t\tlabel: 'Off',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tvalue: 'standard',\n\t\t\t\t\t\tlabel: 'Standard',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tvalue: 'smart',\n\t\t\t\t\t\tlabel: 'Smart',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t},\n\t},\n})\n"],"mappings":";;;;;;;AAAA;;eAEe,yBAAY;EAC1BA,EAAE,EAAE,aADsB;EAE1BC,IAAI,EAAE,YAFoB;EAG1BC,WAAW,EAAE,qBAHa;EAI1BC,MAAM,EAAE;IACPC,wBAAwB,EAAE;MACzBC,IAAI,EAAE,SADmB;MAEzBC,KAAK,EAAE,sBAFkB;MAGzBC,IAAI,EAAE,0DAHmB;MAIzBC,YAAY,EAAE;IAJW,CADnB;IAOPC,OAAO,EAAE;MACRJ,IAAI,EAAE,MADE;MAERC,KAAK,EAAE,SAFC;MAGRC,IAAI;IAHI,CAPF;IAYPG,OAAO,EAAE;MACRL,IAAI,EAAE,QADE;MAERC,KAAK,EAAE,SAFC;MAGRC,IAAI;IAHI,CAZF;IAiBPI,iBAAiB,EAAE;MAClBN,IAAI,EAAE,SADY;MAElBC,KAAK,EAAE,+BAFW;MAGlBE,YAAY,EAAE;IAHI,CAjBZ;IAsBPI,uBAAuB,EAAE;MACxBP,IAAI,EAAE,SADkB;MAExBC,KAAK,EAAE,+BAFiB;MAGxBO,SAAS,EAAE,IAHa;MAIxBL,YAAY,EAAE,KAJU;MAKxBD,IAAI,EAAE;IALkB,CAtBlB;IA6BPO,SAAS,EAAE;MACVT,IAAI,EAAE,QADI;MAEVC,KAAK,EAAE,OAFG;MAGVS,OAAO,EAAE;QACRC,OAAO,EAAE,CACR;UACCC,KAAK,EAAE,KADR;UAECX,KAAK,EAAE;QAFR,CADQ,EAKR;UACCW,KAAK,EAAE,UADR;UAECX,KAAK,EAAE;QAFR,CALQ,EASR;UACCW,KAAK,EAAE,OADR;UAECX,KAAK,EAAE;QAFR,CATQ;MADD;IAHC;EA7BJ;AAJkB,CAAZ,C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"upgradeSkillOptions.builder.js","names":["id","name","description","fields","upgradeMode","type","label","defaultValue","options","choices","value"],"sources":["../../../src/schemas/v2020_07_22/upgradeSkillOptions.builder.ts"],"sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\n\nexport default buildSchema({\n\tid: 'upgradeSkillOptions',\n\tname: 'Upgrade skill action',\n\tdescription: 'Upgrade. Everything. Heads up, this can take a few minutes. ⏱',\n\tfields: {\n\t\tupgradeMode: {\n\t\t\ttype: 'select',\n\t\t\tlabel: 'Upgrade mode',\n\t\t\tdefaultValue: 'askForChanged',\n\t\t\toptions: {\n\t\t\t\tchoices: [\n\t\t\t\t\t{\n\t\t\t\t\t\tvalue: 'askForChanged',\n\t\t\t\t\t\tlabel: 'Ask for changed files',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tvalue: 'forceEverything',\n\t\t\t\t\t\tlabel: 'Force everything',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tvalue: 'forceRequiredSkipRest',\n\t\t\t\t\t\tlabel: 'Force required (skipping all non-essential)',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t},\n\t},\n})\n"],"mappings":";;;;;;;AAAA;;eAEe,yBAAY;EAC1BA,EAAE,EAAE,qBADsB;EAE1BC,IAAI,EAAE,sBAFoB;EAG1BC,WAAW,EAAE,+DAHa;EAI1BC,MAAM,EAAE;IACPC,WAAW,EAAE;MACZC,IAAI,EAAE,QADM;MAEZC,KAAK,EAAE,cAFK;MAGZC,YAAY,EAAE,eAHF;MAIZC,OAAO,EAAE;QACRC,OAAO,EAAE,CACR;UACCC,KAAK,EAAE,eADR;UAECJ,KAAK,EAAE;QAFR,CADQ,EAKR;UACCI,KAAK,EAAE,iBADR;UAECJ,KAAK,EAAE;QAFR,CALQ,EASR;UACCI,KAAK,EAAE,uBADR;UAECJ,KAAK,EAAE;QAFR,CATQ;MADD;IAJG;EADN;AAJkB,CAAZ,C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"watcherDidDetectChangesEmitPayload.builder.js","names":["fieldsSchema","id","fields","name","type","isRequired","path","description","action","options","choices","label","value","changes","isArray","schemas"],"sources":["../../../src/schemas/v2020_07_22/watcherDidDetectChangesEmitPayload.builder.ts"],"sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\n\nconst fieldsSchema = buildSchema({\n\tid: 'generatedFileFields',\n\tfields: {\n\t\tname: {\n\t\t\ttype: 'text',\n\t\t\tisRequired: true,\n\t\t},\n\t\tpath: {\n\t\t\ttype: 'text',\n\t\t\tisRequired: true,\n\t\t},\n\t\tdescription: {\n\t\t\ttype: 'text',\n\t\t},\n\t\taction: {\n\t\t\ttype: 'select',\n\t\t\tisRequired: true,\n\t\t\toptions: {\n\t\t\t\tchoices: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: 'Skipped',\n\t\t\t\t\t\tvalue: 'skipped',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: 'Generated',\n\t\t\t\t\t\tvalue: 'generated',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: 'Updated',\n\t\t\t\t\t\tvalue: 'updated',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: 'Deleted',\n\t\t\t\t\t\tvalue: 'deleted',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t},\n\t},\n})\n\nexport default buildSchema({\n\tid: 'watcherDidDetectChangesEmitPayload',\n\tname: 'Watcher did detect changes emit payload',\n\tfields: {\n\t\tchanges: {\n\t\t\ttype: 'schema',\n\t\t\tisRequired: true,\n\t\t\tisArray: true,\n\t\t\toptions: {\n\t\t\t\tschemas: [\n\t\t\t\t\tbuildSchema({\n\t\t\t\t\t\tid: 'generatedFile',\n\t\t\t\t\t\tfields: fieldsSchema.fields,\n\t\t\t\t\t}),\n\t\t\t\t\tbuildSchema({\n\t\t\t\t\t\tid: 'generatedDir',\n\t\t\t\t\t\tfields: fieldsSchema.fields,\n\t\t\t\t\t}),\n\t\t\t\t],\n\t\t\t},\n\t\t},\n\t},\n})\n"],"mappings":";;;;;;;AAAA;;AAEA,IAAMA,YAAY,GAAG,yBAAY;EAChCC,EAAE,EAAE,qBAD4B;EAEhCC,MAAM,EAAE;IACPC,IAAI,EAAE;MACLC,IAAI,EAAE,MADD;MAELC,UAAU,EAAE;IAFP,CADC;IAKPC,IAAI,EAAE;MACLF,IAAI,EAAE,MADD;MAELC,UAAU,EAAE;IAFP,CALC;IASPE,WAAW,EAAE;MACZH,IAAI,EAAE;IADM,CATN;IAYPI,MAAM,EAAE;MACPJ,IAAI,EAAE,QADC;MAEPC,UAAU,EAAE,IAFL;MAGPI,OAAO,EAAE;QACRC,OAAO,EAAE,CACR;UACCC,KAAK,EAAE,SADR;UAECC,KAAK,EAAE;QAFR,CADQ,EAKR;UACCD,KAAK,EAAE,WADR;UAECC,KAAK,EAAE;QAFR,CALQ,EASR;UACCD,KAAK,EAAE,SADR;UAECC,KAAK,EAAE;QAFR,CATQ,EAaR;UACCD,KAAK,EAAE,SADR;UAECC,KAAK,EAAE;QAFR,CAbQ;MADD;IAHF;EAZD;AAFwB,CAAZ,CAArB;;eAyCe,yBAAY;EAC1BX,EAAE,EAAE,oCADsB;EAE1BE,IAAI,EAAE,yCAFoB;EAG1BD,MAAM,EAAE;IACPW,OAAO,EAAE;MACRT,IAAI,EAAE,QADE;MAERC,UAAU,EAAE,IAFJ;MAGRS,OAAO,EAAE,IAHD;MAIRL,OAAO,EAAE;QACRM,OAAO,EAAE,CACR,yBAAY;UACXd,EAAE,EAAE,eADO;UAEXC,MAAM,EAAEF,YAAY,CAACE;QAFV,CAAZ,CADQ,EAKR,yBAAY;UACXD,EAAE,EAAE,cADO;UAEXC,MAAM,EAAEF,YAAY,CAACE;QAFV,CAAZ,CALQ;MADD;IAJD;EADF;AAHkB,CAAZ,C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"BuildService.js","names":["BuildService","commandService","lintService","cwd","options","shouldFixLintFirst","fix","execute","results"],"sources":["../../src/services/BuildService.ts"],"sourcesContent":["import CommandService from './CommandService'\nimport LintService from './LintService'\n\nexport default class BuildService {\n\tpublic set cwd(cwd: string) {\n\t\tthis.commandService.cwd = cwd\n\t}\n\n\tpublic get cwd() {\n\t\treturn this.commandService.cwd\n\t}\n\n\tprivate commandService: CommandService\n\tprivate lintService: LintService\n\n\tpublic constructor(commandService: CommandService, lintService: LintService) {\n\t\tthis.commandService = commandService\n\t\tthis.lintService = lintService\n\t}\n\n\tpublic async build(options?: { shouldFixLintFirst?: boolean }) {\n\t\tif (options?.shouldFixLintFirst !== false) {\n\t\t\tawait this.lintService.fix('**/*.ts')\n\t\t}\n\t\tconst results = await this.commandService.execute(`yarn build.dev`)\n\t\treturn results\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;IAGqBA,Y;EAYpB,sBAAmBC,cAAnB,EAAmDC,WAAnD,EAA6E;IAAA;IAAA;IAAA;IAC5E,KAAKD,cAAL,GAAsBA,cAAtB;IACA,KAAKC,WAAL,GAAmBA,WAAnB;EACA;;;;SAVD,eAAiB;MAChB,OAAO,KAAKD,cAAL,CAAoBE,GAA3B;IACA,C;SAND,aAAeA,GAAf,EAA4B;MAC3B,KAAKF,cAAL,CAAoBE,GAApB,GAA0BA,GAA1B;IACA;;;;iGAcD,iBAAmBC,OAAnB;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA,MACK,CAAAA,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEC,kBAAT,MAAgC,KADrC;kBAAA;kBAAA;gBAAA;;gBAAA;gBAAA,OAEQ,KAAKH,WAAL,CAAiBI,GAAjB,CAAqB,SAArB,CAFR;;cAAA;gBAAA;gBAAA,OAIuB,KAAKL,cAAL,CAAoBM,OAApB,kBAJvB;;cAAA;gBAIOC,OAJP;gBAAA,iCAKQA,OALR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C"}
|
|
@@ -30,7 +30,7 @@ export default class CommandService {
|
|
|
30
30
|
kill: () => void;
|
|
31
31
|
pid: () => number | undefined;
|
|
32
32
|
private getMockResponse;
|
|
33
|
-
static
|
|
33
|
+
static fakeCommand(command: string | RegExp, response: MockResponse): void;
|
|
34
34
|
static clearMockResponses(): void;
|
|
35
35
|
}
|
|
36
36
|
export {};
|
|
@@ -233,8 +233,8 @@ var CommandService = /*#__PURE__*/function () {
|
|
|
233
233
|
};
|
|
234
234
|
}
|
|
235
235
|
}], [{
|
|
236
|
-
key: "
|
|
237
|
-
value: function
|
|
236
|
+
key: "fakeCommand",
|
|
237
|
+
value: function fakeCommand(command, response) {
|
|
238
238
|
this.mockResponses.unshift({
|
|
239
239
|
command: command,
|
|
240
240
|
response: response
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/services/CommandService.ts"],"names":["process","setMaxListeners","CommandService","cwd","activeChildProcess","pid","ignoreCloseErrors","cmd","options","args","executable","shift","boundKill","kill","bind","Error","getMockResponse","mockResponse","mockKey","commandsRunCapturedByMockResponses","push","callback","code","SpruceError","join","stdout","stderr","on","Promise","resolve","reject","spawnOptions","shouldStream","stdio","env","PATH","IS_CLI","FORCE_COLOR","forceColor","shell","child","outStream","pipe","addListener","data","onData","toString","onError","closeHandler","off","undefined","setTimeout","removeAllListeners","ignoreErrors","search","ERROR_DIVIDER","stderrParts","split","err","AbstractSpruceError","parse","trim","commands","mockResponses","match","find","r","command","RegExp","replace","response","unshift"],"mappings":"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","sourcesContent":["import { spawn, SpawnOptions, ChildProcess } from 'child_process'\nimport { Writable } from 'stream'\nimport AbstractSpruceError from '@sprucelabs/error'\nimport { ERROR_DIVIDER } from '@sprucelabs/spruce-skill-utils'\nimport escapeRegExp from 'lodash/escapeRegExp'\nimport stringArgv from 'string-argv'\nimport treeKill from 'tree-kill'\nimport SpruceError from '../errors/SpruceError'\n\nprocess.setMaxListeners(100)\n\ninterface MockResponse {\n\tcode: number\n\tstdout?: string\n\tstderr?: string\n\tcallback?: (executable: string, args: any[]) => void\n}\n\nexport default class CommandService {\n\tpublic cwd: string\n\tprivate activeChildProcess: ChildProcess | undefined\n\tprivate ignoreCloseErrors = false\n\tprivate static mockResponses: {\n\t\tcommand: string | RegExp\n\t\tresponse: MockResponse\n\t}[] = []\n\tprivate static commandsRunCapturedByMockResponses: string[] = []\n\n\tpublic constructor(cwd: string) {\n\t\tthis.cwd = cwd\n\t}\n\n\tpublic async execute(\n\t\tcmd: string,\n\t\toptions?: {\n\t\t\tignoreErrors?: boolean\n\t\t\targs?: string[]\n\t\t\tshouldStream?: boolean\n\t\t\toutStream?: Writable\n\t\t\tonError?: (error: string) => void\n\t\t\tonData?: (data: string) => void\n\t\t\tspawnOptions?: SpawnOptions\n\t\t\tforceColor?: boolean\n\t\t\tenv?: Record<string, any>\n\t\t}\n\t): Promise<{\n\t\tstdout: string\n\t}> {\n\t\tconst cwd = this.cwd\n\t\tconst args = options?.args || stringArgv(cmd)\n\t\tconst executable = options?.args ? cmd : args.shift()\n\t\tconst boundKill = this.kill.bind(this)\n\n\t\tif (!executable) {\n\t\t\tthrow new Error('Bad params sent to command service')\n\t\t}\n\n\t\tconst { mockResponse, mockKey } = this.getMockResponse(executable, args)\n\n\t\tif (mockResponse) {\n\t\t\tCommandService.commandsRunCapturedByMockResponses.push(mockKey)\n\t\t\tmockResponse.callback?.(executable, args)\n\n\t\t\tif (mockResponse.code !== 0) {\n\t\t\t\tthrow new SpruceError({\n\t\t\t\t\tcode: 'EXECUTING_COMMAND_FAILED',\n\t\t\t\t\tcmd: `${executable} ${args.join(' ')}`,\n\t\t\t\t\tcwd,\n\t\t\t\t\tstdout: mockResponse.stdout,\n\t\t\t\t\tstderr: mockResponse.stderr,\n\t\t\t\t})\n\t\t\t}\n\n\t\t\treturn { stdout: mockResponse.stdout ?? '' }\n\t\t}\n\n\t\tprocess.on('exit', boundKill)\n\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tlet stdout = ''\n\t\t\tlet stderr = ''\n\t\t\tconst spawnOptions: SpawnOptions = options?.shouldStream\n\t\t\t\t? {\n\t\t\t\t\t\tstdio: 'inherit',\n\t\t\t\t\t\tcwd,\n\t\t\t\t\t\tenv: {\n\t\t\t\t\t\t\tPATH: process.env.PATH,\n\t\t\t\t\t\t\tIS_CLI: 'true',\n\t\t\t\t\t\t\tFORCE_COLOR: options?.forceColor ? '1' : '0',\n\t\t\t\t\t\t\t...options?.env,\n\t\t\t\t\t\t},\n\t\t\t\t }\n\t\t\t\t: {\n\t\t\t\t\t\tcwd,\n\t\t\t\t\t\tenv: {\n\t\t\t\t\t\t\tPATH: process.env.PATH,\n\t\t\t\t\t\t\tIS_CLI: 'true',\n\t\t\t\t\t\t\tFORCE_COLOR: options?.forceColor ? '1' : '0',\n\t\t\t\t\t\t\t...options?.env,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tshell: true,\n\t\t\t\t\t\t...options?.spawnOptions,\n\t\t\t\t }\n\n\t\t\tconst child = spawn(executable, args, spawnOptions)\n\t\t\tthis.activeChildProcess = child\n\n\t\t\tif (options?.outStream) {\n\t\t\t\tchild.stdout?.pipe(options.outStream)\n\t\t\t}\n\n\t\t\tchild.stdout?.addListener('data', (data) => {\n\t\t\t\toptions?.onData?.(data.toString())\n\t\t\t\tstdout += data\n\t\t\t})\n\n\t\t\tchild.stderr?.addListener('data', (data) => {\n\t\t\t\toptions?.onError?.(data.toString())\n\t\t\t\tstderr += data\n\t\t\t})\n\n\t\t\tconst closeHandler = (code: number) => {\n\t\t\t\tprocess.off('exit', boundKill)\n\n\t\t\t\tif (!this.activeChildProcess) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tthis.activeChildProcess = undefined\n\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tchild.stdout?.removeAllListeners()\n\t\t\t\t\tchild.stderr?.removeAllListeners()\n\t\t\t\t\tchild.removeAllListeners()\n\n\t\t\t\t\tif (code === 0 || this.ignoreCloseErrors || options?.ignoreErrors) {\n\t\t\t\t\t\tresolve({ stdout })\n\t\t\t\t\t\tthis.ignoreCloseErrors = false\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (stderr.search(escapeRegExp(ERROR_DIVIDER)) > -1) {\n\t\t\t\t\t\t\tconst stderrParts = stderr.split(ERROR_DIVIDER)\n\t\t\t\t\t\t\tconst err = AbstractSpruceError.parse(stderrParts[1], SpruceError)\n\t\t\t\t\t\t\treject(err)\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treject(\n\t\t\t\t\t\t\tnew SpruceError({\n\t\t\t\t\t\t\t\tcode: 'EXECUTING_COMMAND_FAILED',\n\t\t\t\t\t\t\t\tcmd: `${executable} ${args.join(' ')}`,\n\t\t\t\t\t\t\t\tcwd,\n\t\t\t\t\t\t\t\tstdout,\n\t\t\t\t\t\t\t\tstderr,\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}, 0)\n\t\t\t}\n\n\t\t\tchild.addListener('close', closeHandler)\n\t\t\tchild.addListener('exit', closeHandler)\n\t\t})\n\t}\n\n\tpublic kill = () => {\n\t\tif (this.activeChildProcess?.pid) {\n\t\t\tthis.ignoreCloseErrors = true\n\t\t\ttreeKill(this.activeChildProcess.pid, 'SIGTERM')\n\t\t}\n\t}\n\n\tpublic pid = () => {\n\t\treturn this.activeChildProcess?.pid\n\t}\n\n\tprivate getMockResponse(executable: string, args: string[]) {\n\t\tconst mockKey = `${executable} ${args.join(' ')}`.trim()\n\t\tconst commands = CommandService.mockResponses\n\t\tconst match = commands.find((r) =>\n\t\t\tr.command instanceof RegExp\n\t\t\t\t? mockKey.search(r.command) > -1\n\t\t\t\t: r.command.replace(/ +/gis, '') === mockKey.replace(/ +/gis, '')\n\t\t)\n\n\t\treturn { mockResponse: match?.response, mockKey }\n\t}\n\n\tpublic static setMockResponse(\n\t\tcommand: string | RegExp,\n\t\tresponse: MockResponse\n\t) {\n\t\tthis.mockResponses.unshift({\n\t\t\tcommand,\n\t\t\tresponse,\n\t\t})\n\t}\n\n\tpublic static clearMockResponses() {\n\t\tthis.mockResponses = []\n\t}\n}\n"],"file":"CommandService.js"}
|
|
1
|
+
{"version":3,"file":"CommandService.js","names":["process","setMaxListeners","CommandService","cwd","activeChildProcess","pid","ignoreCloseErrors","cmd","options","args","executable","shift","boundKill","kill","bind","Error","getMockResponse","mockResponse","mockKey","commandsRunCapturedByMockResponses","push","callback","code","SpruceError","join","stdout","stderr","on","Promise","resolve","reject","spawnOptions","shouldStream","stdio","env","PATH","IS_CLI","FORCE_COLOR","forceColor","shell","child","outStream","pipe","addListener","data","onData","toString","onError","closeHandler","off","undefined","setTimeout","removeAllListeners","ignoreErrors","search","ERROR_DIVIDER","stderrParts","split","err","AbstractSpruceError","parse","trim","commands","mockResponses","match","find","r","command","RegExp","replace","response","unshift"],"sources":["../../src/services/CommandService.ts"],"sourcesContent":["import { spawn, SpawnOptions, ChildProcess } from 'child_process'\nimport { Writable } from 'stream'\nimport AbstractSpruceError from '@sprucelabs/error'\nimport { ERROR_DIVIDER } from '@sprucelabs/spruce-skill-utils'\nimport escapeRegExp from 'lodash/escapeRegExp'\nimport stringArgv from 'string-argv'\nimport treeKill from 'tree-kill'\nimport SpruceError from '../errors/SpruceError'\n\nprocess.setMaxListeners(100)\n\ninterface MockResponse {\n\tcode: number\n\tstdout?: string\n\tstderr?: string\n\tcallback?: (executable: string, args: any[]) => void\n}\n\nexport default class CommandService {\n\tpublic cwd: string\n\tprivate activeChildProcess: ChildProcess | undefined\n\tprivate ignoreCloseErrors = false\n\tprivate static mockResponses: {\n\t\tcommand: string | RegExp\n\t\tresponse: MockResponse\n\t}[] = []\n\tprivate static commandsRunCapturedByMockResponses: string[] = []\n\n\tpublic constructor(cwd: string) {\n\t\tthis.cwd = cwd\n\t}\n\n\tpublic async execute(\n\t\tcmd: string,\n\t\toptions?: {\n\t\t\tignoreErrors?: boolean\n\t\t\targs?: string[]\n\t\t\tshouldStream?: boolean\n\t\t\toutStream?: Writable\n\t\t\tonError?: (error: string) => void\n\t\t\tonData?: (data: string) => void\n\t\t\tspawnOptions?: SpawnOptions\n\t\t\tforceColor?: boolean\n\t\t\tenv?: Record<string, any>\n\t\t}\n\t): Promise<{\n\t\tstdout: string\n\t}> {\n\t\tconst cwd = this.cwd\n\t\tconst args = options?.args || stringArgv(cmd)\n\t\tconst executable = options?.args ? cmd : args.shift()\n\t\tconst boundKill = this.kill.bind(this)\n\n\t\tif (!executable) {\n\t\t\tthrow new Error('Bad params sent to command service')\n\t\t}\n\n\t\tconst { mockResponse, mockKey } = this.getMockResponse(executable, args)\n\n\t\tif (mockResponse) {\n\t\t\tCommandService.commandsRunCapturedByMockResponses.push(mockKey)\n\t\t\tmockResponse.callback?.(executable, args)\n\n\t\t\tif (mockResponse.code !== 0) {\n\t\t\t\tthrow new SpruceError({\n\t\t\t\t\tcode: 'EXECUTING_COMMAND_FAILED',\n\t\t\t\t\tcmd: `${executable} ${args.join(' ')}`,\n\t\t\t\t\tcwd,\n\t\t\t\t\tstdout: mockResponse.stdout,\n\t\t\t\t\tstderr: mockResponse.stderr,\n\t\t\t\t})\n\t\t\t}\n\n\t\t\treturn { stdout: mockResponse.stdout ?? '' }\n\t\t}\n\n\t\tprocess.on('exit', boundKill)\n\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tlet stdout = ''\n\t\t\tlet stderr = ''\n\t\t\tconst spawnOptions: SpawnOptions = options?.shouldStream\n\t\t\t\t? {\n\t\t\t\t\t\tstdio: 'inherit',\n\t\t\t\t\t\tcwd,\n\t\t\t\t\t\tenv: {\n\t\t\t\t\t\t\tPATH: process.env.PATH,\n\t\t\t\t\t\t\tIS_CLI: 'true',\n\t\t\t\t\t\t\tFORCE_COLOR: options?.forceColor ? '1' : '0',\n\t\t\t\t\t\t\t...options?.env,\n\t\t\t\t\t\t},\n\t\t\t\t }\n\t\t\t\t: {\n\t\t\t\t\t\tcwd,\n\t\t\t\t\t\tenv: {\n\t\t\t\t\t\t\tPATH: process.env.PATH,\n\t\t\t\t\t\t\tIS_CLI: 'true',\n\t\t\t\t\t\t\tFORCE_COLOR: options?.forceColor ? '1' : '0',\n\t\t\t\t\t\t\t...options?.env,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tshell: true,\n\t\t\t\t\t\t...options?.spawnOptions,\n\t\t\t\t }\n\n\t\t\tconst child = spawn(executable, args, spawnOptions)\n\t\t\tthis.activeChildProcess = child\n\n\t\t\tif (options?.outStream) {\n\t\t\t\tchild.stdout?.pipe(options.outStream)\n\t\t\t}\n\n\t\t\tchild.stdout?.addListener('data', (data) => {\n\t\t\t\toptions?.onData?.(data.toString())\n\t\t\t\tstdout += data\n\t\t\t})\n\n\t\t\tchild.stderr?.addListener('data', (data) => {\n\t\t\t\toptions?.onError?.(data.toString())\n\t\t\t\tstderr += data\n\t\t\t})\n\n\t\t\tconst closeHandler = (code: number) => {\n\t\t\t\tprocess.off('exit', boundKill)\n\n\t\t\t\tif (!this.activeChildProcess) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tthis.activeChildProcess = undefined\n\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tchild.stdout?.removeAllListeners()\n\t\t\t\t\tchild.stderr?.removeAllListeners()\n\t\t\t\t\tchild.removeAllListeners()\n\n\t\t\t\t\tif (code === 0 || this.ignoreCloseErrors || options?.ignoreErrors) {\n\t\t\t\t\t\tresolve({ stdout })\n\t\t\t\t\t\tthis.ignoreCloseErrors = false\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (stderr.search(escapeRegExp(ERROR_DIVIDER)) > -1) {\n\t\t\t\t\t\t\tconst stderrParts = stderr.split(ERROR_DIVIDER)\n\t\t\t\t\t\t\tconst err = AbstractSpruceError.parse(stderrParts[1], SpruceError)\n\t\t\t\t\t\t\treject(err)\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treject(\n\t\t\t\t\t\t\tnew SpruceError({\n\t\t\t\t\t\t\t\tcode: 'EXECUTING_COMMAND_FAILED',\n\t\t\t\t\t\t\t\tcmd: `${executable} ${args.join(' ')}`,\n\t\t\t\t\t\t\t\tcwd,\n\t\t\t\t\t\t\t\tstdout,\n\t\t\t\t\t\t\t\tstderr,\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}, 0)\n\t\t\t}\n\n\t\t\tchild.addListener('close', closeHandler)\n\t\t\tchild.addListener('exit', closeHandler)\n\t\t})\n\t}\n\n\tpublic kill = () => {\n\t\tif (this.activeChildProcess?.pid) {\n\t\t\tthis.ignoreCloseErrors = true\n\t\t\ttreeKill(this.activeChildProcess.pid, 'SIGTERM')\n\t\t}\n\t}\n\n\tpublic pid = () => {\n\t\treturn this.activeChildProcess?.pid\n\t}\n\n\tprivate getMockResponse(executable: string, args: string[]) {\n\t\tconst mockKey = `${executable} ${args.join(' ')}`.trim()\n\t\tconst commands = CommandService.mockResponses\n\t\tconst match = commands.find((r) =>\n\t\t\tr.command instanceof RegExp\n\t\t\t\t? mockKey.search(r.command) > -1\n\t\t\t\t: r.command.replace(/ +/gis, '') === mockKey.replace(/ +/gis, '')\n\t\t)\n\n\t\treturn { mockResponse: match?.response, mockKey }\n\t}\n\n\tpublic static fakeCommand(command: string | RegExp, response: MockResponse) {\n\t\tthis.mockResponses.unshift({\n\t\t\tcommand,\n\t\t\tresponse,\n\t\t})\n\t}\n\n\tpublic static clearMockResponses() {\n\t\tthis.mockResponses = []\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"DependencyService.js","names":["DependencyService","settings","dependencies","set","dependency","assertDependencyDoesNotExist","namespace","get","push","match","find","d","SpruceError","code"],"sources":["../../src/services/DependencyService.ts"],"sourcesContent":["import { SettingsService } from '@sprucelabs/spruce-skill-utils'\nimport SpruceError from '../errors/SpruceError'\n\ninterface Dependency {\n\tid: string\n\tnamespace: string\n}\n\nexport default class DependencyService {\n\tprivate settings: SettingsService<string>\n\tpublic constructor(settings: SettingsService) {\n\t\tthis.settings = settings\n\t}\n\n\tpublic set(dependencies: Dependency[]) {\n\t\tthis.settings.set('dependencies', dependencies)\n\t}\n\n\tpublic add(dependency: Dependency) {\n\t\tthis.assertDependencyDoesNotExist(dependency.namespace)\n\n\t\tconst dependencies = this.settings.get('dependencies') ?? []\n\t\tdependencies.push(dependency)\n\t\tthis.settings.set('dependencies', dependencies)\n\t}\n\tprivate assertDependencyDoesNotExist(namespace: string) {\n\t\tconst dependencies = this.get()\n\t\tconst match = dependencies.find((d) => d.namespace === namespace)\n\n\t\tif (match) {\n\t\t\tthrow new SpruceError({\n\t\t\t\tcode: 'DEPENDENCY_EXISTS',\n\t\t\t\tnamespace,\n\t\t\t})\n\t\t}\n\t}\n\n\tpublic get(): Dependency[] {\n\t\treturn this.settings.get('dependencies') ?? []\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;AACA;;IAOqBA,iB;EAEpB,2BAAmBC,QAAnB,EAA8C;IAAA;IAAA;IAC7C,KAAKA,QAAL,GAAgBA,QAAhB;EACA;;;;WAED,aAAWC,YAAX,EAAuC;MACtC,KAAKD,QAAL,CAAcE,GAAd,CAAkB,cAAlB,EAAkCD,YAAlC;IACA;;;WAED,aAAWE,UAAX,EAAmC;MAAA;;MAClC,KAAKC,4BAAL,CAAkCD,UAAU,CAACE,SAA7C;MAEA,IAAMJ,YAAY,yBAAG,KAAKD,QAAL,CAAcM,GAAd,CAAkB,cAAlB,CAAH,mEAAwC,EAA1D;MACAL,YAAY,CAACM,IAAb,CAAkBJ,UAAlB;MACA,KAAKH,QAAL,CAAcE,GAAd,CAAkB,cAAlB,EAAkCD,YAAlC;IACA;;;WACD,sCAAqCI,SAArC,EAAwD;MACvD,IAAMJ,YAAY,GAAG,KAAKK,GAAL,EAArB;MACA,IAAME,KAAK,GAAGP,YAAY,CAACQ,IAAb,CAAkB,UAACC,CAAD;QAAA,OAAOA,CAAC,CAACL,SAAF,KAAgBA,SAAvB;MAAA,CAAlB,CAAd;;MAEA,IAAIG,KAAJ,EAAW;QACV,MAAM,IAAIG,uBAAJ,CAAgB;UACrBC,IAAI,EAAE,mBADe;UAErBP,SAAS,EAATA;QAFqB,CAAhB,CAAN;MAIA;IACD;;;WAED,eAA2B;MAAA;;MAC1B,8BAAO,KAAKL,QAAL,CAAcM,GAAd,CAAkB,cAAlB,CAAP,qEAA4C,EAA5C;IACA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"GameService.js","names":["GameService","command","ui","cwd","diskUtil","resolvePath","__dirname","message","statusMessage","introductionSentences","sentencesToPlay","stopLoading","killed","length","next","shift","renderLine","Promise","r","setTimeout","execute","spawnOptions","stdio","process","stdin","onData","data","stdout","write","saveCursor","moveCursorTo","clearBelowCursor","restoreCursor","kill","clear"],"sources":["../../src/services/GameService.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport TerminalInterface from '../interfaces/TerminalInterface'\nimport CommandService from './CommandService'\n\nexport default class GameService {\n\tprivate command: CommandService\n\tprivate ui: TerminalInterface\n\tprivate statusMessage?: string\n\tprivate killed = false\n\n\tpublic constructor(command: CommandService, ui: TerminalInterface) {\n\t\tthis.command = command\n\t\tthis.ui = ui\n\t\tthis.command.cwd = diskUtil.resolvePath(__dirname, '../../')\n\t}\n\n\tpublic setStatusMessage(message: string) {\n\t\tthis.statusMessage = message\n\t}\n\n\tpublic async play(introductionSentences: string[] = []) {\n\t\tconst sentencesToPlay = [...introductionSentences]\n\t\tawait this.ui.stopLoading()\n\t\tthis.killed = false\n\n\t\twhile (sentencesToPlay.length > 0) {\n\t\t\tconst next = sentencesToPlay.shift() as string\n\t\t\tthis.ui.renderLine(next)\n\t\t\tawait new Promise((r) => setTimeout(r, 2000))\n\t\t\tif (this.killed) {\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\n\t\tawait this.command.execute('node ./node_modules/.bin/js-tetris-cli', {\n\t\t\tspawnOptions: {\n\t\t\t\tstdio: [process.stdin, 'pipe', 'pipe'],\n\t\t\t},\n\t\t\tonData: (data: string) => {\n\t\t\t\tif (!this.killed) {\n\t\t\t\t\tprocess.stdout?.write(data)\n\t\t\t\t\tif (this.statusMessage) {\n\t\t\t\t\t\tthis.ui.saveCursor()\n\t\t\t\t\t\tthis.ui.moveCursorTo(0, 25)\n\t\t\t\t\t\tthis.ui.clearBelowCursor()\n\t\t\t\t\t\tprocess.stdout?.write(this.statusMessage)\n\t\t\t\t\t\tthis.ui.restoreCursor()\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t})\n\t}\n\n\tpublic kill() {\n\t\tthis.killed = true\n\t\tthis.command.kill()\n\t\tthis.ui.clear()\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;IAIqBA,W;EAMpB,qBAAmBC,OAAnB,EAA4CC,EAA5C,EAAmE;IAAA;IAAA;IAAA;IAAA;IAAA,iDAFlD,KAEkD;IAClE,KAAKD,OAAL,GAAeA,OAAf;IACA,KAAKC,EAAL,GAAUA,EAAV;IACA,KAAKD,OAAL,CAAaE,GAAb,GAAmBC,2BAASC,WAAT,CAAqBC,SAArB,EAAgC,QAAhC,CAAnB;EACA;;;;WAED,0BAAwBC,OAAxB,EAAyC;MACxC,KAAKC,aAAL,GAAqBD,OAArB;IACA;;;;gGAED;QAAA;;QAAA;QAAA;QAAA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAkBE,qBAAlB,2DAAoD,EAApD;gBACOC,eADP,uCAC6BD,qBAD7B;gBAAA;gBAAA,OAEO,KAAKP,EAAL,CAAQS,WAAR,EAFP;;cAAA;gBAGC,KAAKC,MAAL,GAAc,KAAd;;cAHD;gBAAA,MAKQF,eAAe,CAACG,MAAhB,GAAyB,CALjC;kBAAA;kBAAA;gBAAA;;gBAMQC,IANR,GAMeJ,eAAe,CAACK,KAAhB,EANf;gBAOE,KAAKb,EAAL,CAAQc,UAAR,CAAmBF,IAAnB;gBAPF;gBAAA,OAQQ,IAAIG,OAAJ,CAAY,UAACC,CAAD;kBAAA,OAAOC,UAAU,CAACD,CAAD,EAAI,IAAJ,CAAjB;gBAAA,CAAZ,CARR;;cAAA;gBAAA,KASM,KAAKN,MATX;kBAAA;kBAAA;gBAAA;;gBAAA;;cAAA;gBAAA;gBAAA;;cAAA;gBAAA;gBAAA,OAcO,KAAKX,OAAL,CAAamB,OAAb,CAAqB,wCAArB,EAA+D;kBACpEC,YAAY,EAAE;oBACbC,KAAK,EAAE,CAACC,OAAO,CAACC,KAAT,EAAgB,MAAhB,EAAwB,MAAxB;kBADM,CADsD;kBAIpEC,MAAM,EAAE,gBAACC,IAAD,EAAkB;oBACzB,IAAI,CAAC,KAAI,CAACd,MAAV,EAAkB;sBAAA;;sBACjB,mBAAAW,OAAO,CAACI,MAAR,oEAAgBC,KAAhB,CAAsBF,IAAtB;;sBACA,IAAI,KAAI,CAAClB,aAAT,EAAwB;wBAAA;;wBACvB,KAAI,CAACN,EAAL,CAAQ2B,UAAR;;wBACA,KAAI,CAAC3B,EAAL,CAAQ4B,YAAR,CAAqB,CAArB,EAAwB,EAAxB;;wBACA,KAAI,CAAC5B,EAAL,CAAQ6B,gBAAR;;wBACA,oBAAAR,OAAO,CAACI,MAAR,sEAAgBC,KAAhB,CAAsB,KAAI,CAACpB,aAA3B;;wBACA,KAAI,CAACN,EAAL,CAAQ8B,aAAR;sBACA;oBACD;kBACD;gBAfmE,CAA/D,CAdP;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;WAiCA,gBAAc;MACb,KAAKpB,MAAL,GAAc,IAAd;MACA,KAAKX,OAAL,CAAagC,IAAb;MACA,KAAK/B,EAAL,CAAQgC,KAAR;IACA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/services/ImportService.ts"],"names":["ImportService","options","file","isCachingEnabled","importAllUncached","pullHashAndContents","hash","fileContents","hasFileChanged","isDirty","haveImportsChanged","cachedImports","importAllCached","response","writeCacheFile","fs","existsSync","SpruceError","code","friendlyMessage","args","divider","errorDivider","search","command","execute","stdout","successParts","split","errParts","length","proxyError","buildErrorFromExecuteResponse","defaultImported","JSON","parse","originalError","importAll","imported","cwd","originalFilepath","contents","changed","importMatches","regex","exec","match","dir","pathUtil","dirname","nodeResolved","require","resolve","join","destination","resolveCacheFile","diskUtil","writeFile","stringify","cacheFile","readFile","err","Error","stack","files","filepath","resolvePath","filename","Date","getTime","imports","exports","idx","relative","replace","extname","fullPath","importDefault","results","deleteDir","resolvedFilePath","doesFileExist","cacheDir","importCacheDir","createTempDir"],"mappings":"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","sourcesContent":["import pathUtil from 'path'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport fs from 'fs-extra'\nimport md5 from 'md5'\nimport SpruceError from '../errors/SpruceError'\nimport CommandService from './CommandService'\n\nexport default class ImportService {\n\tpublic cwd: string\n\n\tprivate divider = '## SPRUCE-CLI DIVIDER ##'\n\tprivate errorDivider = '## SPRUCE-CLI ERROR DIVIDER ##'\n\n\tprivate static cachedImports: Record<string, Record<string, any>> = {}\n\tprivate static importCacheDir: string =\n\t\tdiskUtil.createTempDir('import-service')\n\tprivate command: CommandService\n\tprivate static isCachingEnabled: boolean\n\n\tpublic constructor(options: { cwd: string; command: CommandService }) {\n\t\tthis.cwd = options.cwd\n\t\tthis.command = options.command\n\t}\n\n\tpublic importAll = async <T extends Record<string, any>>(\n\t\tfile: string\n\t): Promise<T> => {\n\t\tif (!ImportService.isCachingEnabled) {\n\t\t\treturn this.importAllUncached(file)\n\t\t}\n\n\t\tconst { hash, fileContents } = this.pullHashAndContents(file)\n\n\t\tif (!this.hasFileChanged(hash)) {\n\t\t\tconst isDirty = this.haveImportsChanged(file, fileContents)\n\n\t\t\tif (!isDirty && ImportService.cachedImports[hash]) {\n\t\t\t\treturn ImportService.cachedImports[hash] as T\n\t\t\t} else if (!isDirty) {\n\t\t\t\tImportService.cachedImports[hash] = this.importAllCached(file)\n\t\t\t\treturn ImportService.cachedImports[hash] as T\n\t\t\t}\n\t\t}\n\n\t\tImportService.cachedImports[hash] = this.importAllUncached(file)\n\t\tconst response = (await ImportService.cachedImports[hash]) as T\n\t\tthis.writeCacheFile(hash, response)\n\n\t\treturn response\n\t}\n\n\tprivate haveImportsChanged(\n\t\toriginalFilepath: string,\n\t\tcontents: string\n\t): boolean {\n\t\tlet changed = false\n\t\tlet importMatches\n\n\t\t// only check files that start with dot because they are local and we can actually only check local files\n\t\tconst regex =\n\t\t\toriginalFilepath.search(/\\.js$/i) > -1\n\t\t\t\t? /require\\(['\"](\\..*?)['\"]\\)/gis\n\t\t\t\t: /import.*[\"'](\\..*?)[\"']/gis\n\n\t\twhile ((importMatches = regex.exec(contents)) !== null) {\n\t\t\ttry {\n\t\t\t\tconst match = importMatches[1]\n\t\t\t\tconst dir = pathUtil.dirname(originalFilepath)\n\t\t\t\tconst nodeResolved = require.resolve(pathUtil.join(dir, match))\n\t\t\t\tconst { hash } = this.pullHashAndContents(nodeResolved)\n\n\t\t\t\tif (this.hasFileChanged(hash)) {\n\t\t\t\t\tchanged = true\n\t\t\t\t}\n\t\t\t} catch {\n\t\t\t\tchanged = true\n\t\t\t}\n\t\t}\n\n\t\treturn changed\n\t}\n\n\tprivate writeCacheFile(hash: string, contents: Record<string, any>) {\n\t\tconst destination = this.resolveCacheFile(hash)\n\t\tdiskUtil.writeFile(destination, JSON.stringify(contents))\n\t}\n\n\tprivate importAllCached(file: string) {\n\t\tconst { hash } = this.pullHashAndContents(file)\n\n\t\tconst cacheFile = this.resolveCacheFile(hash)\n\t\tconst contents = diskUtil.readFile(cacheFile)\n\n\t\treturn JSON.parse(contents)\n\t}\n\n\tprivate importAllUncached = async <T extends Record<string, any>>(\n\t\tfile: string\n\t): Promise<T> => {\n\t\tlet defaultImported: T | undefined\n\n\t\tif (!fs.existsSync(file)) {\n\t\t\tthrow new SpruceError({\n\t\t\t\tcode: 'FAILED_TO_IMPORT',\n\t\t\t\tfile,\n\t\t\t\tfriendlyMessage: `I couldn't import ${file} because I couldn't find it!`,\n\t\t\t})\n\t\t}\n\n\t\tlet args = [\n\t\t\t'-e',\n\t\t\t`\"try { const imported = require('${file}');console.log('${this.divider}');console.log(JSON.stringify(imported)); } catch(err) { console.log('${this.errorDivider}');console.log(err.options ? err.toString() : err.stack); }\"`,\n\t\t]\n\n\t\tif (file.search(/\\.ts$/i) > -1) {\n\t\t\targs = [\n\t\t\t\t'-r',\n\t\t\t\t'ts-node/register',\n\t\t\t\t'-r',\n\t\t\t\t'tsconfig-paths/register',\n\t\t\t\t...args,\n\t\t\t]\n\t\t}\n\n\t\ttry {\n\t\t\tconst { stdout } = await this.command.execute('node', {\n\t\t\t\targs,\n\t\t\t})\n\n\t\t\tconst successParts = stdout.split(this.divider)\n\t\t\tconst errParts = stdout.split(this.errorDivider)\n\n\t\t\tif (errParts.length > 1) {\n\t\t\t\tconst proxyError = this.buildErrorFromExecuteResponse(\n\t\t\t\t\terrParts,\n\t\t\t\t\tfile,\n\t\t\t\t\tstdout\n\t\t\t\t)\n\n\t\t\t\tthrow proxyError\n\t\t\t} else {\n\t\t\t\tdefaultImported = JSON.parse(successParts[1])\n\t\t\t}\n\t\t} catch (err: any) {\n\t\t\tif (err instanceof SpruceError) {\n\t\t\t\tthrow err\n\t\t\t} else {\n\t\t\t\tthrow new SpruceError({\n\t\t\t\t\tcode: 'FAILED_TO_IMPORT',\n\t\t\t\t\tfile,\n\t\t\t\t\toriginalError: err,\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\treturn defaultImported as T\n\t}\n\n\tpublic importDefault = async <T extends Record<string, any>>(\n\t\tfile: string\n\t): Promise<T> => {\n\t\tconst imported: any = await this.importAll(file)\n\t\treturn imported.default as T\n\t}\n\n\tprivate buildErrorFromExecuteResponse(\n\t\terrParts: string[],\n\t\tfile: string,\n\t\tstdout: string\n\t) {\n\t\tlet err: Record<string, any> = {}\n\t\ttry {\n\t\t\terr = JSON.parse(errParts[1])\n\t\t\tif (!err.options) {\n\t\t\t\tthrow Error('Capture and reported below')\n\t\t\t}\n\t\t} catch {\n\t\t\terr = {\n\t\t\t\toptions: {\n\t\t\t\t\tcode: 'FAILED_TO_IMPORT',\n\t\t\t\t\tfile,\n\t\t\t\t\tfriendlyMessage: `Unknown error from import, output was: \\n\\n\"${\n\t\t\t\t\t\terrParts[1] ?? stdout\n\t\t\t\t\t}\"`,\n\t\t\t\t},\n\t\t\t}\n\t\t}\n\n\t\tconst proxyError = new SpruceError(err.options)\n\n\t\tif (err.stack) {\n\t\t\tproxyError.stack = err.stack\n\t\t}\n\t\treturn proxyError\n\t}\n\n\tpublic async bulkImport(files: string[]): Promise<any[]> {\n\t\tif (files.length === 0) {\n\t\t\treturn []\n\t\t}\n\t\tconst filepath = diskUtil.resolvePath(this.cwd, '.tmp')\n\t\tconst filename = 'bulk-import-' + new Date().getTime() + '.ts'\n\n\t\tlet imports = ``\n\t\tlet exports = `export default [\\n`\n\n\t\tlet idx = 0\n\t\tfor (const file of files) {\n\t\t\tconst relative = pathUtil\n\t\t\t\t.relative(filepath, file)\n\t\t\t\t.replace(pathUtil.extname(file), '')\n\n\t\t\timports += `import { default as import${idx}} from '${relative}'\\n`\n\t\t\texports += `import${idx},\\n`\n\t\t\tidx++\n\t\t}\n\n\t\texports += ']'\n\n\t\tconst contents = imports + `\\n\\n` + exports\n\t\tconst fullPath = pathUtil.join(filepath, filename)\n\t\tdiskUtil.writeFile(fullPath, contents)\n\n\t\ttry {\n\t\t\tconst results = (await this.importDefault(fullPath)) as any[]\n\n\t\t\treturn results as any\n\t\t} catch (err) {\n\t\t\t// if something failed, lets load one at a time until we find the one that failes\n\t\t\tfor (const file of files) {\n\t\t\t\tconst imported = await this.importDefault(file)\n\t\t\t\tif (!imported) {\n\t\t\t\t\tthrow new SpruceError({\n\t\t\t\t\t\tcode: 'FAILED_TO_IMPORT',\n\t\t\t\t\t\tfile,\n\t\t\t\t\t\tfriendlyMessage: `Looks like ${file} does not export default.`,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthrow err\n\t\t} finally {\n\t\t\tdiskUtil.deleteDir(filepath)\n\t\t}\n\t}\n\n\tpublic static clearCache() {\n\t\tImportService.cachedImports = {}\n\t\tdiskUtil.deleteDir(this.cacheDir())\n\t}\n\n\tpublic static setCacheDir(cacheDir: string) {\n\t\tthis.importCacheDir = cacheDir\n\t}\n\n\tpublic static disableCache() {\n\t\tthis.isCachingEnabled = false\n\t}\n\n\tpublic static enableCaching() {\n\t\tthis.isCachingEnabled = true\n\t}\n\n\tprivate hasFileChanged(hash: string) {\n\t\tconst resolvedFilePath = this.resolveCacheFile(hash)\n\t\treturn !diskUtil.doesFileExist(resolvedFilePath)\n\t}\n\n\tprivate resolveCacheFile(hash: string) {\n\t\treturn diskUtil.resolvePath(ImportService.cacheDir(), hash + '.json')\n\t}\n\n\tprivate static cacheDir(): string {\n\t\treturn this.importCacheDir\n\t}\n\n\tprivate pullHashAndContents(file: string) {\n\t\tconst fileContents = diskUtil.readFile(file)\n\t\tconst hash = md5(fileContents)\n\t\treturn { hash, fileContents }\n\t}\n}\n"],"file":"ImportService.js"}
|
|
1
|
+
{"version":3,"file":"ImportService.js","names":["ImportService","options","file","isCachingEnabled","importAllUncached","pullHashAndContents","hash","fileContents","hasFileChanged","isDirty","haveImportsChanged","cachedImports","importAllCached","response","writeCacheFile","fs","existsSync","SpruceError","code","friendlyMessage","args","divider","errorDivider","search","command","execute","stdout","successParts","split","errParts","length","proxyError","buildErrorFromExecuteResponse","defaultImported","JSON","parse","originalError","importAll","imported","cwd","originalFilepath","contents","changed","importMatches","regex","exec","match","dir","pathUtil","dirname","nodeResolved","require","resolve","join","destination","resolveCacheFile","diskUtil","writeFile","stringify","cacheFile","readFile","err","Error","stack","files","filepath","resolvePath","filename","Date","getTime","imports","exports","idx","relative","replace","extname","fullPath","importDefault","results","deleteDir","resolvedFilePath","doesFileExist","cacheDir","importCacheDir","createTempDir"],"sources":["../../src/services/ImportService.ts"],"sourcesContent":["import pathUtil from 'path'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport fs from 'fs-extra'\nimport md5 from 'md5'\nimport SpruceError from '../errors/SpruceError'\nimport CommandService from './CommandService'\n\nexport default class ImportService {\n\tpublic cwd: string\n\n\tprivate divider = '## SPRUCE-CLI DIVIDER ##'\n\tprivate errorDivider = '## SPRUCE-CLI ERROR DIVIDER ##'\n\n\tprivate static cachedImports: Record<string, Record<string, any>> = {}\n\tprivate static importCacheDir: string =\n\t\tdiskUtil.createTempDir('import-service')\n\tprivate command: CommandService\n\tprivate static isCachingEnabled: boolean\n\n\tpublic constructor(options: { cwd: string; command: CommandService }) {\n\t\tthis.cwd = options.cwd\n\t\tthis.command = options.command\n\t}\n\n\tpublic importAll = async <T extends Record<string, any>>(\n\t\tfile: string\n\t): Promise<T> => {\n\t\tif (!ImportService.isCachingEnabled) {\n\t\t\treturn this.importAllUncached(file)\n\t\t}\n\n\t\tconst { hash, fileContents } = this.pullHashAndContents(file)\n\n\t\tif (!this.hasFileChanged(hash)) {\n\t\t\tconst isDirty = this.haveImportsChanged(file, fileContents)\n\n\t\t\tif (!isDirty && ImportService.cachedImports[hash]) {\n\t\t\t\treturn ImportService.cachedImports[hash] as T\n\t\t\t} else if (!isDirty) {\n\t\t\t\tImportService.cachedImports[hash] = this.importAllCached(file)\n\t\t\t\treturn ImportService.cachedImports[hash] as T\n\t\t\t}\n\t\t}\n\n\t\tImportService.cachedImports[hash] = this.importAllUncached(file)\n\t\tconst response = (await ImportService.cachedImports[hash]) as T\n\t\tthis.writeCacheFile(hash, response)\n\n\t\treturn response\n\t}\n\n\tprivate haveImportsChanged(\n\t\toriginalFilepath: string,\n\t\tcontents: string\n\t): boolean {\n\t\tlet changed = false\n\t\tlet importMatches\n\n\t\t// only check files that start with dot because they are local and we can actually only check local files\n\t\tconst regex =\n\t\t\toriginalFilepath.search(/\\.js$/i) > -1\n\t\t\t\t? /require\\(['\"](\\..*?)['\"]\\)/gis\n\t\t\t\t: /import.*[\"'](\\..*?)[\"']/gis\n\n\t\twhile ((importMatches = regex.exec(contents)) !== null) {\n\t\t\ttry {\n\t\t\t\tconst match = importMatches[1]\n\t\t\t\tconst dir = pathUtil.dirname(originalFilepath)\n\t\t\t\tconst nodeResolved = require.resolve(pathUtil.join(dir, match))\n\t\t\t\tconst { hash } = this.pullHashAndContents(nodeResolved)\n\n\t\t\t\tif (this.hasFileChanged(hash)) {\n\t\t\t\t\tchanged = true\n\t\t\t\t}\n\t\t\t} catch {\n\t\t\t\tchanged = true\n\t\t\t}\n\t\t}\n\n\t\treturn changed\n\t}\n\n\tprivate writeCacheFile(hash: string, contents: Record<string, any>) {\n\t\tconst destination = this.resolveCacheFile(hash)\n\t\tdiskUtil.writeFile(destination, JSON.stringify(contents))\n\t}\n\n\tprivate importAllCached(file: string) {\n\t\tconst { hash } = this.pullHashAndContents(file)\n\n\t\tconst cacheFile = this.resolveCacheFile(hash)\n\t\tconst contents = diskUtil.readFile(cacheFile)\n\n\t\treturn JSON.parse(contents)\n\t}\n\n\tprivate importAllUncached = async <T extends Record<string, any>>(\n\t\tfile: string\n\t): Promise<T> => {\n\t\tlet defaultImported: T | undefined\n\n\t\tif (!fs.existsSync(file)) {\n\t\t\tthrow new SpruceError({\n\t\t\t\tcode: 'FAILED_TO_IMPORT',\n\t\t\t\tfile,\n\t\t\t\tfriendlyMessage: `I couldn't import ${file} because I couldn't find it!`,\n\t\t\t})\n\t\t}\n\n\t\tlet args = [\n\t\t\t'-e',\n\t\t\t`\"try { const imported = require('${file}');console.log('${this.divider}');console.log(JSON.stringify(imported)); } catch(err) { console.log('${this.errorDivider}');console.log(err.options ? err.toString() : err.stack); }\"`,\n\t\t]\n\n\t\tif (file.search(/\\.ts$/i) > -1) {\n\t\t\targs = [\n\t\t\t\t'-r',\n\t\t\t\t'ts-node/register',\n\t\t\t\t'-r',\n\t\t\t\t'tsconfig-paths/register',\n\t\t\t\t...args,\n\t\t\t]\n\t\t}\n\n\t\ttry {\n\t\t\tconst { stdout } = await this.command.execute('node', {\n\t\t\t\targs,\n\t\t\t})\n\n\t\t\tconst successParts = stdout.split(this.divider)\n\t\t\tconst errParts = stdout.split(this.errorDivider)\n\n\t\t\tif (errParts.length > 1) {\n\t\t\t\tconst proxyError = this.buildErrorFromExecuteResponse(\n\t\t\t\t\terrParts,\n\t\t\t\t\tfile,\n\t\t\t\t\tstdout\n\t\t\t\t)\n\n\t\t\t\tthrow proxyError\n\t\t\t} else {\n\t\t\t\tdefaultImported = JSON.parse(successParts[1])\n\t\t\t}\n\t\t} catch (err: any) {\n\t\t\tif (err instanceof SpruceError) {\n\t\t\t\tthrow err\n\t\t\t} else {\n\t\t\t\tthrow new SpruceError({\n\t\t\t\t\tcode: 'FAILED_TO_IMPORT',\n\t\t\t\t\tfile,\n\t\t\t\t\toriginalError: err,\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\treturn defaultImported as T\n\t}\n\n\tpublic importDefault = async <T extends Record<string, any>>(\n\t\tfile: string\n\t): Promise<T> => {\n\t\tconst imported: any = await this.importAll(file)\n\t\treturn imported.default as T\n\t}\n\n\tprivate buildErrorFromExecuteResponse(\n\t\terrParts: string[],\n\t\tfile: string,\n\t\tstdout: string\n\t) {\n\t\tlet err: Record<string, any> = {}\n\t\ttry {\n\t\t\terr = JSON.parse(errParts[1])\n\t\t\tif (!err.options) {\n\t\t\t\tthrow Error('Capture and reported below')\n\t\t\t}\n\t\t} catch {\n\t\t\terr = {\n\t\t\t\toptions: {\n\t\t\t\t\tcode: 'FAILED_TO_IMPORT',\n\t\t\t\t\tfile,\n\t\t\t\t\tfriendlyMessage: `Unknown error from import, output was: \\n\\n\"${\n\t\t\t\t\t\terrParts[1] ?? stdout\n\t\t\t\t\t}\"`,\n\t\t\t\t},\n\t\t\t}\n\t\t}\n\n\t\tconst proxyError = new SpruceError(err.options)\n\n\t\tif (err.stack) {\n\t\t\tproxyError.stack = err.stack\n\t\t}\n\t\treturn proxyError\n\t}\n\n\tpublic async bulkImport(files: string[]): Promise<any[]> {\n\t\tif (files.length === 0) {\n\t\t\treturn []\n\t\t}\n\t\tconst filepath = diskUtil.resolvePath(this.cwd, '.tmp')\n\t\tconst filename = 'bulk-import-' + new Date().getTime() + '.ts'\n\n\t\tlet imports = ``\n\t\tlet exports = `export default [\\n`\n\n\t\tlet idx = 0\n\t\tfor (const file of files) {\n\t\t\tconst relative = pathUtil\n\t\t\t\t.relative(filepath, file)\n\t\t\t\t.replace(pathUtil.extname(file), '')\n\n\t\t\timports += `import { default as import${idx}} from '${relative}'\\n`\n\t\t\texports += `import${idx},\\n`\n\t\t\tidx++\n\t\t}\n\n\t\texports += ']'\n\n\t\tconst contents = imports + `\\n\\n` + exports\n\t\tconst fullPath = pathUtil.join(filepath, filename)\n\t\tdiskUtil.writeFile(fullPath, contents)\n\n\t\ttry {\n\t\t\tconst results = (await this.importDefault(fullPath)) as any[]\n\n\t\t\treturn results as any\n\t\t} catch (err) {\n\t\t\t// if something failed, lets load one at a time until we find the one that failes\n\t\t\tfor (const file of files) {\n\t\t\t\tconst imported = await this.importDefault(file)\n\t\t\t\tif (!imported) {\n\t\t\t\t\tthrow new SpruceError({\n\t\t\t\t\t\tcode: 'FAILED_TO_IMPORT',\n\t\t\t\t\t\tfile,\n\t\t\t\t\t\tfriendlyMessage: `Looks like ${file} does not export default.`,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthrow err\n\t\t} finally {\n\t\t\tdiskUtil.deleteDir(filepath)\n\t\t}\n\t}\n\n\tpublic static clearCache() {\n\t\tImportService.cachedImports = {}\n\t\tdiskUtil.deleteDir(this.cacheDir())\n\t}\n\n\tpublic static setCacheDir(cacheDir: string) {\n\t\tthis.importCacheDir = cacheDir\n\t}\n\n\tpublic static disableCache() {\n\t\tthis.isCachingEnabled = false\n\t}\n\n\tpublic static enableCaching() {\n\t\tthis.isCachingEnabled = true\n\t}\n\n\tprivate hasFileChanged(hash: string) {\n\t\tconst resolvedFilePath = this.resolveCacheFile(hash)\n\t\treturn !diskUtil.doesFileExist(resolvedFilePath)\n\t}\n\n\tprivate resolveCacheFile(hash: string) {\n\t\treturn diskUtil.resolvePath(ImportService.cacheDir(), hash + '.json')\n\t}\n\n\tprivate static cacheDir(): string {\n\t\treturn this.importCacheDir\n\t}\n\n\tprivate pullHashAndContents(file: string) {\n\t\tconst fileContents = diskUtil.readFile(file)\n\t\tconst hash = md5(fileContents)\n\t\treturn { hash, fileContents }\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"LintService.js","names":["LintService","cwd","commandServiceFactory","pattern","SchemaError","code","parameters","isLintingEnabled","fixedFiles","fixedPaths","script","getCommand","execute","args","stdout","JSON","parse","SpruceError","originalError","i","length","fixedFile","output","fs","writeFile","filePath","push","messages","errorCount","friendlyMessage","map","m","message","join"],"sources":["../../src/services/LintService.ts"],"sourcesContent":["import { SchemaError } from '@sprucelabs/schema'\n// import { ESLint } from 'eslint'\nimport fs from 'fs-extra'\nimport SpruceError from '../errors/SpruceError'\nimport CommandService from './CommandService'\n\nexport default class LintService {\n\tpublic cwd: string\n\tprivate getCommand: () => CommandService\n\n\tprivate static isLintingEnabled = true\n\n\tpublic static disableLinting() {\n\t\tthis.isLintingEnabled = false\n\t}\n\n\tpublic static enableLinting() {\n\t\tthis.isLintingEnabled = true\n\t}\n\n\tpublic constructor(cwd: string, commandServiceFactory: () => CommandService) {\n\t\tthis.cwd = cwd\n\t\tthis.getCommand = commandServiceFactory\n\t}\n\n\tpublic fix = async (pattern: string): Promise<string[]> => {\n\t\tif (!pattern) {\n\t\t\tthrow new SchemaError({\n\t\t\t\tcode: 'MISSING_PARAMETERS',\n\t\t\t\tparameters: ['pattern'],\n\t\t\t})\n\t\t}\n\n\t\tif (!LintService.isLintingEnabled) {\n\t\t\treturn []\n\t\t}\n\n\t\tlet fixedFiles: any = {}\n\t\tconst fixedPaths: string[] = []\n\n\t\ttry {\n\t\t\t// const cli = new ESLint({ fix: true, cwd: this.cwd, cache: true })\n\t\t\t// fixedFiles = await cli.lintFiles([pattern])\n\t\t\tconst script = `\"(async function lint() { try { const { ESLint } = require('eslint'); const cli = new ESLint({ fix: true, cwd: '${this.cwd}', }); const result = await cli.lintFiles(['${pattern}']); console.log(JSON.stringify(result)); } catch (err) { console.log(err.toString()); }})()\"`\n\n\t\t\tconst { stdout } = await this.getCommand().execute('node', {\n\t\t\t\targs: ['-e', script],\n\t\t\t})\n\n\t\t\tfixedFiles = JSON.parse(stdout)\n\t\t} catch (err: any) {\n\t\t\tthrow new SpruceError({\n\t\t\t\tcode: 'LINT_FAILED',\n\t\t\t\tpattern,\n\t\t\t\toriginalError: err,\n\t\t\t})\n\t\t}\n\n\t\tif (fixedFiles) {\n\t\t\tfor (let i = 0; i < fixedFiles.length; i += 1) {\n\t\t\t\tconst fixedFile = fixedFiles[i]\n\n\t\t\t\tif (fixedFile?.output) {\n\t\t\t\t\tawait fs.writeFile(fixedFile.filePath, fixedFile.output)\n\t\t\t\t\tfixedPaths.push(fixedFile.filePath)\n\t\t\t\t} else if (fixedFile?.messages && fixedFile?.errorCount > 0) {\n\t\t\t\t\tthrow new SpruceError({\n\t\t\t\t\t\tcode: 'LINT_FAILED',\n\t\t\t\t\t\tpattern,\n\t\t\t\t\t\tfriendlyMessage: `Lint error with '${\n\t\t\t\t\t\t\tfixedFile.filePath\n\t\t\t\t\t\t}':\\n\\n${fixedFile.messages\n\t\t\t\t\t\t\t.map((m: any) => m?.message)\n\t\t\t\t\t\t\t.join('\\n')}`,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn fixedPaths\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"PkgService.js","names":["PkgService","cwd","commandService","pkg","options","shouldCleanupLockFiles","deleteLockFile","bind","execute","args","totalInstalled","totalSkipped","packages","Array","isArray","toInstall","labsModules","thisPackage","isInstalled","shouldForceInstall","startsWith","push","stripLatest","buildCommandAndArgs","executable","diskUtil","doesDirExist","pathUtil","join","_parsedPkg","undefined","length","install","createRandomTempDir","filter","a","isDev","BasePkgService"],"sources":["../../src/services/PkgService.ts"],"sourcesContent":["import pathUtil from 'path'\nimport {\n\tdiskUtil,\n\tPkgService as BasePkgService,\n} from '@sprucelabs/spruce-skill-utils'\nimport isCi from '../utilities/isCi'\nimport CommandService from './CommandService'\n\nexport interface AddOptions {\n\tisDev?: boolean\n\tshouldForceInstall?: boolean\n\tshouldCleanupLockFiles?: boolean\n}\n\nexport default class PkgService extends BasePkgService {\n\tprivate commandService: CommandService\n\n\tpublic constructor(cwd: string, commandService: CommandService) {\n\t\tsuper(cwd)\n\t\tthis.commandService = commandService\n\t}\n\n\tpublic async install(pkg?: string[] | string, options?: AddOptions) {\n\t\tconst shouldCleanupLockFiles = options?.shouldCleanupLockFiles !== false\n\t\tconst deleteLockFile = shouldCleanupLockFiles\n\t\t\t? this.deleteLockFile.bind(this)\n\t\t\t: () => {}\n\n\t\tif (!pkg) {\n\t\t\tawait this.commandService.execute('yarn', { args: ['install'] })\n\t\t\tdeleteLockFile()\n\t\t\treturn { totalInstalled: -1, totalSkipped: -1 }\n\t\t}\n\n\t\tdeleteLockFile()\n\n\t\tconst packages = Array.isArray(pkg) ? pkg : [pkg]\n\t\tconst toInstall = []\n\t\tconst labsModules: string[] = []\n\n\t\tlet totalInstalled = 0\n\t\tlet totalSkipped = 0\n\n\t\tfor (const thisPackage of packages) {\n\t\t\tconst isInstalled =\n\t\t\t\t!options?.shouldForceInstall && this.isInstalled(thisPackage)\n\t\t\tif (thisPackage.startsWith('@sprucelabs/') || !isInstalled) {\n\t\t\t\ttoInstall.push(this.stripLatest(thisPackage))\n\t\t\t\ttotalInstalled++\n\t\t\t} else {\n\t\t\t\ttotalSkipped++\n\t\t\t}\n\t\t}\n\n\t\tif (totalInstalled > 0) {\n\t\t\tconst { executable, args } = PkgService.buildCommandAndArgs(\n\t\t\t\ttoInstall,\n\t\t\t\toptions\n\t\t\t)\n\n\t\t\tawait this.commandService.execute(executable, {\n\t\t\t\targs,\n\t\t\t})\n\t\t} else if (\n\t\t\t!diskUtil.doesDirExist(pathUtil.join(this.cwd, 'node_modules'))\n\t\t) {\n\t\t\tawait this.commandService.execute('yarn', { args: ['install'] })\n\t\t}\n\n\t\tdeleteLockFile()\n\n\t\tthis._parsedPkg = undefined\n\n\t\treturn { totalInstalled: totalInstalled + labsModules.length, totalSkipped }\n\t}\n\n\tpublic static buildCommandAndArgs(\n\t\ttoInstall: string[],\n\t\toptions: AddOptions | undefined\n\t) {\n\t\tconst args: any[] = [\n\t\t\tisCi() && '--cache-folder',\n\t\t\tisCi() && diskUtil.createRandomTempDir(),\n\t\t\t'add',\n\t\t\t...toInstall,\n\t\t].filter((a) => !!a)\n\n\t\tif (options?.isDev) {\n\t\t\targs.push('-D')\n\t\t}\n\n\t\tconst executable = 'yarn'\n\t\treturn { executable, args }\n\t}\n\n\tpublic async uninstall(pkg: string[] | string) {\n\t\tconst packages = Array.isArray(pkg) ? pkg : [pkg]\n\t\tconst args: string[] = ['uninstall', ...packages]\n\t\tawait this.commandService.execute('npm', {\n\t\t\targs,\n\t\t})\n\n\t\tthis._parsedPkg = undefined\n\n\t\tawait this.install()\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"ServiceFactory.js","names":["ServiceFactory","cwd","type","AuthService","Auth","PkgService","Service","EnvService","VsCodeService","SchemaService","command","CommandService","LintService","RemoteService","TypeCheckerService","buildImportService","SettingsService","DependencyService","commandService","BuildService","EventSettingsService","Error","ImportService"],"sources":["../../src/services/ServiceFactory.ts"],"sourcesContent":["import {\n\tSettingsService,\n\tEnvService,\n\tAuthService,\n} from '@sprucelabs/spruce-skill-utils'\nimport EventSettingsService from '../features/event/services/EventSettingsService'\nimport RemoteService from '../features/event/services/RemoteService'\nimport { FeatureCode } from '../features/features.types'\nimport SchemaService from '../features/schema/services/SchemaService'\nimport VsCodeService from '../features/vscode/services/VsCodeService'\nimport BuildService from './BuildService'\nimport CommandService from './CommandService'\nimport DependencyService from './DependencyService'\nimport ImportService from './ImportService'\nimport LintService from './LintService'\nimport PkgService from './PkgService'\nimport TypeCheckerService from './TypeCheckerService'\n\nexport interface ServiceMap {\n\tpkg: PkgService\n\tvsCode: VsCodeService\n\tschema: SchemaService\n\tlint: LintService\n\tcommand: CommandService\n\ttypeChecker: TypeCheckerService\n\timport: ImportService\n\tbuild: BuildService\n\tsettings: SettingsService\n\tenv: EnvService\n\tauth: AuthService\n\tremote: RemoteService\n\teventSettings: EventSettingsService\n\tdependency: DependencyService\n}\n\nexport type Service = keyof ServiceMap\n\nexport interface ServiceProvider {\n\tService<S extends Service>(type: S, cwd?: string): ServiceMap[S]\n}\nexport default class ServiceFactory {\n\tpublic Service<S extends Service>(cwd: string, type: S): ServiceMap[S] {\n\t\tswitch (type) {\n\t\t\tcase 'auth':\n\t\t\t\treturn AuthService.Auth(cwd) as ServiceMap[S]\n\t\t\tcase 'pkg':\n\t\t\t\treturn new PkgService(\n\t\t\t\t\tcwd,\n\t\t\t\t\tthis.Service(cwd, 'command')\n\t\t\t\t) as ServiceMap[S]\n\t\t\tcase 'env':\n\t\t\t\treturn new EnvService(cwd) as ServiceMap[S]\n\t\t\tcase 'vsCode':\n\t\t\t\treturn new VsCodeService(cwd) as ServiceMap[S]\n\t\t\tcase 'schema':\n\t\t\t\treturn new SchemaService({\n\t\t\t\t\tcwd,\n\t\t\t\t\tcommand: new CommandService(cwd),\n\t\t\t\t}) as ServiceMap[S]\n\t\t\tcase 'lint':\n\t\t\t\treturn new LintService(cwd, () =>\n\t\t\t\t\tthis.Service(cwd, 'command')\n\t\t\t\t) as ServiceMap[S]\n\t\t\tcase 'command': {\n\t\t\t\treturn new CommandService(cwd) as ServiceMap[S]\n\t\t\t}\n\t\t\tcase 'remote':\n\t\t\t\treturn new RemoteService(new EnvService(cwd)) as ServiceMap[S]\n\t\t\tcase 'typeChecker':\n\t\t\t\treturn new TypeCheckerService(\n\t\t\t\t\tthis.buildImportService(cwd)\n\t\t\t\t) as ServiceMap[S]\n\t\t\tcase 'settings':\n\t\t\t\treturn new SettingsService<FeatureCode>(cwd) as ServiceMap[S]\n\t\t\tcase 'dependency':\n\t\t\t\treturn new DependencyService(\n\t\t\t\t\tnew SettingsService<FeatureCode>(cwd)\n\t\t\t\t) as ServiceMap[S]\n\t\t\tcase 'import':\n\t\t\t\treturn this.buildImportService(cwd) as ServiceMap[S]\n\t\t\tcase 'build': {\n\t\t\t\tconst commandService = new CommandService(cwd)\n\t\t\t\treturn new BuildService(\n\t\t\t\t\tcommandService,\n\t\t\t\t\tnew LintService(cwd, () => this.Service(cwd, 'command'))\n\t\t\t\t) as ServiceMap[S]\n\t\t\t}\n\t\t\tcase 'eventSettings':\n\t\t\t\treturn new EventSettingsService(\n\t\t\t\t\tnew SettingsService(cwd)\n\t\t\t\t) as ServiceMap[S]\n\t\t\tdefault:\n\t\t\t\tthrow new Error(`Service \"${type}\" not found`)\n\t\t}\n\t}\n\n\tprivate buildImportService(cwd: string): ImportService {\n\t\treturn new ImportService({\n\t\t\tcwd,\n\t\t\tcommand: new CommandService(cwd),\n\t\t})\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;AAAA;;AAKA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;IAwBqBA,c;;;;;;;;;;;;;;;;;MACpB,UAAkCC,GAAlC,EAA+CC,IAA/C,EAAuE;MAAA;;MACtE,QAAQA,IAAR;QACC,KAAK,MAAL;UACC,OAAOC,8BAAYC,IAAZ,CAAiBH,GAAjB,CAAP;;QACD,KAAK,KAAL;UACC,OAAO,IAAII,sBAAJ,CACNJ,GADM,EAEN,KAAKK,OAAL,CAAaL,GAAb,EAAkB,SAAlB,CAFM,CAAP;;QAID,KAAK,KAAL;UACC,OAAO,IAAIM,4BAAJ,CAAeN,GAAf,CAAP;;QACD,KAAK,QAAL;UACC,OAAO,IAAIO,yBAAJ,CAAkBP,GAAlB,CAAP;;QACD,KAAK,QAAL;UACC,OAAO,IAAIQ,yBAAJ,CAAkB;YACxBR,GAAG,EAAHA,GADwB;YAExBS,OAAO,EAAE,IAAIC,0BAAJ,CAAmBV,GAAnB;UAFe,CAAlB,CAAP;;QAID,KAAK,MAAL;UACC,OAAO,IAAIW,uBAAJ,CAAgBX,GAAhB,EAAqB;YAAA,OAC3B,KAAI,CAACK,OAAL,CAAaL,GAAb,EAAkB,SAAlB,CAD2B;UAAA,CAArB,CAAP;;QAGD,KAAK,SAAL;UAAgB;YACf,OAAO,IAAIU,0BAAJ,CAAmBV,GAAnB,CAAP;UACA;;QACD,KAAK,QAAL;UACC,OAAO,IAAIY,yBAAJ,CAAkB,IAAIN,4BAAJ,CAAeN,GAAf,CAAlB,CAAP;;QACD,KAAK,aAAL;UACC,OAAO,IAAIa,8BAAJ,CACN,KAAKC,kBAAL,CAAwBd,GAAxB,CADM,CAAP;;QAGD,KAAK,UAAL;UACC,OAAO,IAAIe,iCAAJ,CAAiCf,GAAjC,CAAP;;QACD,KAAK,YAAL;UACC,OAAO,IAAIgB,6BAAJ,CACN,IAAID,iCAAJ,CAAiCf,GAAjC,CADM,CAAP;;QAGD,KAAK,QAAL;UACC,OAAO,KAAKc,kBAAL,CAAwBd,GAAxB,CAAP;;QACD,KAAK,OAAL;UAAc;YACb,IAAMiB,cAAc,GAAG,IAAIP,0BAAJ,CAAmBV,GAAnB,CAAvB;YACA,OAAO,IAAIkB,wBAAJ,CACND,cADM,EAEN,IAAIN,uBAAJ,CAAgBX,GAAhB,EAAqB;cAAA,OAAM,KAAI,CAACK,OAAL,CAAaL,GAAb,EAAkB,SAAlB,CAAN;YAAA,CAArB,CAFM,CAAP;UAIA;;QACD,KAAK,eAAL;UACC,OAAO,IAAImB,gCAAJ,CACN,IAAIJ,iCAAJ,CAAoBf,GAApB,CADM,CAAP;;QAGD;UACC,MAAM,IAAIoB,KAAJ,qBAAsBnB,IAAtB,kBAAN;MAlDF;IAoDA,C;;;WAED,4BAA2BD,GAA3B,EAAuD;MACtD,OAAO,IAAIqB,yBAAJ,CAAkB;QACxBrB,GAAG,EAAHA,GADwB;QAExBS,OAAO,EAAE,IAAIC,0BAAJ,CAAmBV,GAAnB;MAFe,CAAlB,CAAP;IAIA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"TypeCheckerService.js","names":["TypeCheckerService","importer","tsFile","importAll"],"sources":["../../src/services/TypeCheckerService.ts"],"sourcesContent":["import ImportService from './ImportService'\n\nexport default class TypeCheckerService {\n\tprivate importer: ImportService\n\tpublic constructor(importer: ImportService) {\n\t\tthis.importer = importer\n\t}\n\tpublic check = async (tsFile: string) => {\n\t\tawait this.importer.importAll(tsFile)\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;IAEqBA,kB,8CAEpB,4BAAmBC,QAAnB,EAA4C;EAAA;;EAAA;EAAA;EAAA;IAAA,yFAG7B,iBAAOC,MAAP;MAAA;QAAA;UAAA;YAAA;cAAA;cAAA,OACR,KAAI,CAACD,QAAL,CAAcE,SAAd,CAAwBD,MAAxB,CADQ;;YAAA;YAAA;cAAA;UAAA;QAAA;MAAA;IAAA,CAH6B;;IAAA;MAAA;IAAA;EAAA;EAC3C,KAAKD,QAAL,GAAgBA,QAAhB;AACA,C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"AbstractLocalStore.js","names":["AbstractLocalStore","options","Service","key","value","writeValues","values","settings","readSettings","set","readValues","get","AbstractStore"],"sources":["../../src/stores/AbstractLocalStore.ts"],"sourcesContent":["import AbstractStore from './AbstractStore'\nimport { StoreOptions } from './AbstractStore'\n\nexport interface LocalStoreSettings {}\n\nexport default abstract class AbstractLocalStore<\n\tSettings extends LocalStoreSettings\n> extends AbstractStore {\n\tpublic constructor(options: StoreOptions) {\n\t\tsuper(options)\n\t}\n\n\tprivate get settings() {\n\t\treturn this.Service('settings')\n\t}\n\n\tprotected writeValue<F extends keyof Settings>(key: F, value: Settings[F]) {\n\t\tthis.writeValues({ [key]: value })\n\t\treturn\n\t}\n\n\tprotected writeValues<T extends Record<string, any>>(values: T) {\n\t\tconst settings = { ...this.readSettings(), ...values }\n\t\tthis.settings.set('stores', settings)\n\n\t\treturn this\n\t}\n\n\tprotected readValue<F extends keyof Settings>(key: F) {\n\t\tconst settings = this.readValues()\n\t\treturn settings[key]\n\t}\n\n\tprotected readValues<T extends Settings>(): Partial<T> {\n\t\tconst values = this.readSettings()\n\t\treturn values\n\t}\n\n\tprivate readSettings() {\n\t\treturn this.settings.get('stores') ?? {}\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;IAK8BA,kB;;;;;EAG7B,4BAAmBC,OAAnB,EAA0C;IAAA;IAAA,yBACnCA,OADmC;EAEzC;;;;SAED,eAAuB;MACtB,OAAO,KAAKC,OAAL,CAAa,UAAb,CAAP;IACA;;;WAED,oBAA+CC,GAA/C,EAAuDC,KAAvD,EAA2E;MAC1E,KAAKC,WAAL,sCAAoBF,GAApB,EAA0BC,KAA1B;MACA;IACA;;;WAED,qBAAqDE,MAArD,EAAgE;MAC/D,IAAMC,QAAQ,mCAAQ,KAAKC,YAAL,EAAR,GAAgCF,MAAhC,CAAd;;MACA,KAAKC,QAAL,CAAcE,GAAd,CAAkB,QAAlB,EAA4BF,QAA5B;MAEA,OAAO,IAAP;IACA;;;WAED,mBAA8CJ,GAA9C,EAAsD;MACrD,IAAMI,QAAQ,GAAG,KAAKG,UAAL,EAAjB;MACA,OAAOH,QAAQ,CAACJ,GAAD,CAAf;IACA;;;WAED,sBAAuD;MACtD,IAAMG,MAAM,GAAG,KAAKE,YAAL,EAAf;MACA,OAAOF,MAAP;IACA;;;WAED,wBAAuB;MAAA;;MACtB,6BAAO,KAAKC,QAAL,CAAcI,GAAd,CAAkB,QAAlB,CAAP,mEAAsC,EAAtC;IACA;;;EAjCQC,0B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"AbstractStore.js","names":["AbstractStore","options","cwd","serviceFactory","homeDir","apiClientFactory","emitter","type","Service"],"sources":["../../src/stores/AbstractStore.ts"],"sourcesContent":["import { GlobalEmitter } from '../GlobalEmitter'\nimport ServiceFactory, {\n\tServiceProvider,\n\tService,\n\tServiceMap,\n} from '../services/ServiceFactory'\nimport {\n\tApiClientFactory,\n\tApiClient,\n\tApiClientFactoryOptions,\n} from '../types/apiClient.types'\n\nexport interface StoreOptions {\n\tserviceFactory: ServiceFactory\n\tcwd: string\n\thomeDir: string\n\tapiClientFactory: ApiClientFactory\n\temitter: GlobalEmitter\n}\n\nexport default abstract class AbstractStore implements ServiceProvider {\n\tprotected cwd: string\n\tprotected homeDir: string\n\tprotected apiClientFactory: ApiClientFactory\n\tprotected emitter: GlobalEmitter\n\n\tpublic abstract name: string\n\n\tprivate serviceFactory: ServiceFactory\n\n\tpublic constructor(options: StoreOptions) {\n\t\tthis.cwd = options.cwd\n\t\tthis.serviceFactory = options.serviceFactory\n\t\tthis.homeDir = options.homeDir\n\t\tthis.apiClientFactory = options.apiClientFactory\n\t\tthis.emitter = options.emitter\n\t}\n\n\tpublic Service<S extends Service>(type: S, cwd?: string): ServiceMap[S] {\n\t\treturn this.serviceFactory.Service(cwd ?? this.cwd, type)\n\t}\n\n\tprotected async connectToApi(\n\t\toptions?: ApiClientFactoryOptions\n\t): Promise<ApiClient> {\n\t\treturn this.apiClientFactory(options)\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;IAoB8BA,a;EAU7B,uBAAmBC,OAAnB,EAA0C;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IACzC,KAAKC,GAAL,GAAWD,OAAO,CAACC,GAAnB;IACA,KAAKC,cAAL,GAAsBF,OAAO,CAACE,cAA9B;IACA,KAAKC,OAAL,GAAeH,OAAO,CAACG,OAAvB;IACA,KAAKC,gBAAL,GAAwBJ,OAAO,CAACI,gBAAhC;IACA,KAAKC,OAAL,GAAeL,OAAO,CAACK,OAAvB;EACA;;;;;;;;;;;;;;MAED,UAAkCC,IAAlC,EAA2CL,GAA3C,EAAwE;MACvE,OAAO,KAAKC,cAAL,CAAoBK,OAApB,CAA4BN,GAA5B,aAA4BA,GAA5B,cAA4BA,GAA5B,GAAmC,KAAKA,GAAxC,EAA6CK,IAA7C,CAAP;IACA,C;;;;wGAED,iBACCN,OADD;QAAA;UAAA;YAAA;cAAA;gBAAA,iCAGQ,KAAKI,gBAAL,CAAsBJ,OAAtB,CAHR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"StoreFactory.js","names":["storeMap","onboarding","OnboardingStore","schema","SchemaStore","event","EventStore","skill","SkillStore","organization","OrganizationStore","conversation","ConversationStore","store","StoreStore","view","ViewStore","listener","ListenerStore","StoreFactory","options","cwd","serviceFactory","homeDir","apiClientFactory","emitter","code","storeOptions","Error"],"sources":["../../src/stores/StoreFactory.ts"],"sourcesContent":["import ConversationStore from '../features/conversation/stores/ConversationStore'\nimport EventStore from '../features/event/stores/EventStore'\nimport ListenerStore from '../features/event/stores/ListenerStore'\nimport OnboardingStore from '../features/onboard/stores/OnboardingStore'\nimport OrganizationStore from '../features/organization/stores/OrganizationStore'\nimport SchemaStore from '../features/schema/stores/SchemaStore'\nimport SkillStore from '../features/skill/stores/SkillStore'\nimport StoreStore from '../features/store/stores/StoreStore'\nimport ViewStore from '../features/view/stores/ViewStore'\nimport { GlobalEmitter } from '../GlobalEmitter'\nimport ServiceFactory from '../services/ServiceFactory'\nimport { ApiClientFactory } from '../types/apiClient.types'\nimport { StoreOptions } from './AbstractStore'\n\nexport interface StoreMap {\n\tonboarding: OnboardingStore\n\tschema: SchemaStore\n\tevent: EventStore\n\tskill: SkillStore\n\torganization: OrganizationStore\n\tconversation: ConversationStore\n\tstore: StoreStore\n\tview: ViewStore\n\tlistener: ListenerStore\n}\n\nexport type StoreCode = keyof StoreMap\n\nconst storeMap = {\n\tonboarding: OnboardingStore,\n\tschema: SchemaStore,\n\tevent: EventStore,\n\tskill: SkillStore,\n\torganization: OrganizationStore,\n\tconversation: ConversationStore,\n\tstore: StoreStore,\n\tview: ViewStore,\n\tlistener: ListenerStore,\n}\n\nexport interface StoreFactoryMethodOptions {\n\tcwd?: string\n\tapiClientFactory?: ApiClientFactory\n}\n\nexport interface StoreFactoryOptions {\n\tcwd: string\n\tserviceFactory: ServiceFactory\n\thomeDir: string\n\tapiClientFactory: ApiClientFactory\n\temitter: GlobalEmitter\n}\n\nexport default class StoreFactory {\n\tprivate serviceFactory: ServiceFactory\n\tprivate cwd: string\n\tprivate homeDir: string\n\tprivate apiClientFactory: ApiClientFactory\n\tprivate emitter: GlobalEmitter\n\n\tpublic constructor(options: StoreFactoryOptions) {\n\t\tconst { cwd, serviceFactory, homeDir, apiClientFactory, emitter } = options\n\n\t\tthis.cwd = cwd\n\t\tthis.serviceFactory = serviceFactory\n\t\tthis.homeDir = homeDir\n\t\tthis.apiClientFactory = apiClientFactory\n\t\tthis.emitter = emitter\n\t}\n\n\tpublic Store<C extends StoreCode>(\n\t\tcode: C,\n\t\toptions?: StoreFactoryMethodOptions\n\t): StoreMap[C] {\n\t\tconst storeOptions: StoreOptions = {\n\t\t\tcwd: options?.cwd ?? this.cwd,\n\t\t\tserviceFactory: this.serviceFactory,\n\t\t\thomeDir: this.homeDir,\n\t\t\tapiClientFactory: options?.apiClientFactory ?? this.apiClientFactory,\n\t\t\temitter: this.emitter,\n\t\t}\n\n\t\tif (!storeMap[code]) {\n\t\t\tthrow new Error(`Could not find store with code '${code}'.`)\n\t\t}\n\n\t\tconst store = new storeMap[code](storeOptions)\n\n\t\treturn store as StoreMap[C]\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAoBA,IAAMA,QAAQ,GAAG;EAChBC,UAAU,EAAEC,2BADI;EAEhBC,MAAM,EAAEC,uBAFQ;EAGhBC,KAAK,EAAEC,sBAHS;EAIhBC,KAAK,EAAEC,sBAJS;EAKhBC,YAAY,EAAEC,6BALE;EAMhBC,YAAY,EAAEC,6BANE;EAOhBC,KAAK,EAAEC,sBAPS;EAQhBC,IAAI,EAAEC,qBARU;EAShBC,QAAQ,EAAEC;AATM,CAAjB;;IAyBqBC,Y;EAOpB,sBAAmBC,OAAnB,EAAiD;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAChD,IAAQC,GAAR,GAAoED,OAApE,CAAQC,GAAR;IAAA,IAAaC,cAAb,GAAoEF,OAApE,CAAaE,cAAb;IAAA,IAA6BC,OAA7B,GAAoEH,OAApE,CAA6BG,OAA7B;IAAA,IAAsCC,gBAAtC,GAAoEJ,OAApE,CAAsCI,gBAAtC;IAAA,IAAwDC,OAAxD,GAAoEL,OAApE,CAAwDK,OAAxD;IAEA,KAAKJ,GAAL,GAAWA,GAAX;IACA,KAAKC,cAAL,GAAsBA,cAAtB;IACA,KAAKC,OAAL,GAAeA,OAAf;IACA,KAAKC,gBAAL,GAAwBA,gBAAxB;IACA,KAAKC,OAAL,GAAeA,OAAf;EACA;;;;WAED,eACCC,IADD,EAECN,OAFD,EAGe;MAAA;;MACd,IAAMO,YAA0B,GAAG;QAClCN,GAAG,kBAAED,OAAF,aAAEA,OAAF,uBAAEA,OAAO,CAAEC,GAAX,uDAAkB,KAAKA,GADQ;QAElCC,cAAc,EAAE,KAAKA,cAFa;QAGlCC,OAAO,EAAE,KAAKA,OAHoB;QAIlCC,gBAAgB,2BAAEJ,OAAF,aAAEA,OAAF,uBAAEA,OAAO,CAAEI,gBAAX,yEAA+B,KAAKA,gBAJlB;QAKlCC,OAAO,EAAE,KAAKA;MALoB,CAAnC;;MAQA,IAAI,CAACzB,QAAQ,CAAC0B,IAAD,CAAb,EAAqB;QACpB,MAAM,IAAIE,KAAJ,2CAA6CF,IAA7C,QAAN;MACA;;MAED,IAAMb,KAAK,GAAG,IAAIb,QAAQ,CAAC0B,IAAD,CAAZ,CAAmBC,YAAnB,CAAd;MAEA,OAAOd,KAAP;IACA"}
|