@sprucelabs/spruce-cli 15.4.12 → 16.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -0
- package/build/.spruce/errors/spruceCli/actionCancelled.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/bootError.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/buildFailed.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/cacheNotEnabled.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/commandAborted.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/commandBlocked.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/commandNotImplemented.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/createAutoloaderFailed.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/dependencyExists.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/deployFailed.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/directoryEmpty.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/directoryNotSkill.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/dockerNotStarted.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/executingCommandFailed.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/failedToImport.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/featureNotInstalled.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/fileExists.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/generic.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/invalidCommand.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/invalidEventContract.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/invalidFeatureCode.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/invalidTestDirectory.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/lintFailed.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/mercuryResponseError.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/missingDependencies.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/missingDependenciesDependency.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/noOrganizationsFound.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/noSkillsRegistered.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/notImplemented.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/notLoggedIn.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/schemaExists.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/schemaFailedToImport.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/schemaTemplateItemBuildingFailed.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/skillNotFound.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/skillNotRegistered.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/skillViewExists.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/storeExists.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/testFailed.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/themeExists.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/transportAlreadyExists.schema.js.map +1 -1
- package/build/.spruce/errors/spruceCli/vscodeNotInstalled.schema.js.map +1 -1
- package/build/.spruce/events/heartwood/didRegisterSkillViews.v2021_02_11.contract.js.map +1 -1
- package/build/.spruce/events/heartwood/generateUrl.v2021_02_11.contract.js.map +1 -1
- package/build/.spruce/events/heartwood/getSkillViews.v2021_02_11.contract.js.map +1 -1
- package/build/.spruce/events/heartwood/listViews.v2021_02_11.contract.js.map +1 -1
- package/build/.spruce/events/heartwood/registerSkillViews.v2021_02_11.contract.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitTarget.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/didRegisterSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitTarget.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlEmitTargetAndPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/generateUrlResponsePayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/getSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/getSkillViewsResponsePayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/getViewControllersEmitTarget.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/listViewsResponsePayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/listViewsResult.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsResponsePayload.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/bootSkillOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/createConversationTopicOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/createErrorOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/createOrganizationOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/createSchemaOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/createTestOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/generatedDir.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/generatedFile.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/installSkillAtOrganizationOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/listenEventOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/namedTemplateItem.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/nodeFeatureOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/onboardOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/onboarding.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/personWithToken.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/registerDashboardWidgetsEmitPayloadSchema.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/setupTestsOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/setupVscodeOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/skillFeature.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/syncErrorOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/syncEventOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/syncSchemaFieldsOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/syncSchemasOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/testOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/upgradeSkillOptions.schema.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/watcherDidDetectChangesEmitPayload.schema.js.map +1 -1
- package/build/GlobalEmitter.js.map +1 -1
- package/build/__tests__/behavioral/AddingADependency.test.js.map +1 -1
- package/build/__tests__/behavioral/BlockingCommands.test.js.map +1 -1
- package/build/__tests__/behavioral/BootingTheCli.test.js.map +1 -1
- package/build/__tests__/behavioral/BootingWithBadFiles.test.js.map +1 -1
- package/build/__tests__/behavioral/CreatingAConversationTopic.test.js.map +1 -1
- package/build/__tests__/behavioral/CreatingSchemasWithGenerics.test.js.map +1 -1
- package/build/__tests__/behavioral/DeployingASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/DeployingToSandbox.test.js.map +1 -1
- package/build/__tests__/behavioral/EnablingAndDisablingCache.test.js.map +1 -1
- package/build/__tests__/behavioral/GettingCliVersion.test.js.map +1 -1
- package/build/__tests__/behavioral/InstallingASkillAtAnOrg.test.js.map +1 -1
- package/build/__tests__/behavioral/ListeningToCoreEvents.test.js.map +1 -1
- package/build/__tests__/behavioral/LoggingInAsASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/ManagingDependencies.test.js.map +1 -1
- package/build/__tests__/behavioral/OverridingCommandsInPackageJson.test.js.map +1 -1
- package/build/__tests__/behavioral/RebuildingASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/RegisteringConversationsOnBoot.test.js.map +1 -1
- package/build/__tests__/behavioral/RegisteringEventsOnBoot.test.js.map +1 -1
- package/build/__tests__/behavioral/RegisteringGlobalEvents.test.js.map +1 -1
- package/build/__tests__/behavioral/RegisteringSkillViewOnBoot.test.js.map +1 -1
- package/build/__tests__/behavioral/RememberingUpgradeSelections.test.js.map +1 -1
- package/build/__tests__/behavioral/SettingLogTransportsInASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/SettingRemote.test.js.map +1 -1
- package/build/__tests__/behavioral/SettingUpASkillForTesting.test.js.map +1 -1
- package/build/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.js.map +1 -1
- package/build/__tests__/behavioral/SettingUpVscode.test.js.map +1 -1
- package/build/__tests__/behavioral/SyncingEventsOnlyFromDependencies.test.js.map +1 -1
- package/build/__tests__/behavioral/TestReporterSettingsRemembered.test.js.map +1 -1
- package/build/__tests__/behavioral/TestingAConversation.test.js.map +1 -1
- package/build/__tests__/behavioral/TestingDataStores.test.js.map +1 -1
- package/build/__tests__/behavioral/WatchingSkillViews.test.js.map +1 -1
- package/build/__tests__/behavioral/errors/CreatingANewErrorBuilder.test.js.map +1 -1
- package/build/__tests__/behavioral/errors/KeepingErrorClassInSync.test.js.map +1 -1
- package/build/__tests__/behavioral/errors/KeepingErrorsInSync.test.js.map +1 -1
- package/build/__tests__/behavioral/errors/SettingUpErrors.test.js.map +1 -1
- package/build/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.js.map +1 -1
- package/build/__tests__/behavioral/events/CreatingAListener.test.js.map +1 -1
- package/build/__tests__/behavioral/events/CreatingAnEvent.test.js.map +1 -1
- package/build/__tests__/behavioral/events/KeepingEventsInSync.test.js.map +1 -1
- package/build/__tests__/behavioral/events/KeepingEventsInSync2.test.js.map +1 -1
- package/build/__tests__/behavioral/events/KeepingListenersInSync.test.js.map +1 -1
- package/build/__tests__/behavioral/events/ListeningToAnEventYouCreate.test.js.map +1 -1
- package/build/__tests__/behavioral/events/SettingUpEvents.test.js.map +1 -1
- package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.js.map +1 -1
- package/build/__tests__/behavioral/node/CreatingANodeModule.test.js.map +1 -1
- package/build/__tests__/behavioral/onboard/StartingOnboarding.test.js.map +1 -1
- package/build/__tests__/behavioral/organization/CreatingAnOrg.test.js.map +1 -1
- package/build/__tests__/behavioral/person/LoggingInAsPerson.test.js.map +1 -1
- package/build/__tests__/behavioral/person/SeeWhoIsLoggedIn.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/CreatingANewSchemaBuilder.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/GeneratingFieldTypesOnly.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/HandlesRelatedSchemas.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/ImportingSchemaImports.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/KeepingSchemasInSync.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/SettingUpSchemas.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/SyncingBadSchemasProvidesHelpfulErrorMessages.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/UsingSchemasInCli.test.js.map +1 -1
- package/build/__tests__/behavioral/skill/BootingASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/skill/CreatingASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/skill/RegisteringASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/skill/SettingUpASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/stores/CreatingADataStore.test.js.map +1 -1
- package/build/__tests__/behavioral/stores/KeepingDataStoresInSync.test.js.map +1 -1
- package/build/__tests__/behavioral/tests/CreatingATest.test.js +3 -3
- package/build/__tests__/behavioral/tests/CreatingATest.test.js.map +1 -1
- package/build/__tests__/behavioral/tests/RunningTests.test.js.map +1 -1
- package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js.map +1 -1
- package/build/__tests__/behavioral/tests/SettingUpTests.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpdatingDependencies.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpdatingDependencies2.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingANodeModule.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingASkill2.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingASkill3.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingASkill4.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingASkill5.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingWithListeners.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingWithSandboxFeatureInstalled.test.js.map +1 -1
- package/build/__tests__/behavioral/views/CreatingASkillView.test.js +1 -1
- package/build/__tests__/behavioral/views/CreatingASkillView.test.js.map +1 -1
- package/build/__tests__/behavioral/views/CreatingATheme.test.js.map +1 -1
- package/build/__tests__/behavioral/views/KeepingViewsInSync.test.js.map +1 -1
- package/build/__tests__/behavioral/views/SettingUpViews.test.js.map +1 -1
- package/build/__tests__/behavioral/views/TestingViewControllers.test.js.map +1 -1
- package/build/__tests__/behavioral/watchers/WatchingForChanges.test.js.map +1 -1
- package/build/__tests__/implementation/ActionExecuter.test.js.map +1 -1
- package/build/__tests__/implementation/ActionExecuter2.test.js.map +1 -1
- package/build/__tests__/implementation/ActionExecuter3.test.js.map +1 -1
- package/build/__tests__/implementation/ActionExecuter4.test.js.map +1 -1
- package/build/__tests__/implementation/ArgParser.test.js.map +1 -1
- package/build/__tests__/implementation/BuildService.test.js.map +1 -1
- package/build/__tests__/implementation/BulkImporting.test.js.map +1 -1
- package/build/__tests__/implementation/CachingImports.test.js.map +1 -1
- package/build/__tests__/implementation/CommandOptionBuilder.test.js.map +1 -1
- package/build/__tests__/implementation/CommanderCommandResultMapper.test.js.map +1 -1
- package/build/__tests__/implementation/DataStoreStore.test.js.map +1 -1
- package/build/__tests__/implementation/DeletingOrphanedSchemaDefinitions.test.js.map +1 -1
- package/build/__tests__/implementation/EventContractCleanerUtil.test.js.map +1 -1
- package/build/__tests__/implementation/EventStore.test.js.map +1 -1
- package/build/__tests__/implementation/EventTemplateItemBuilder.test.js.map +1 -1
- package/build/__tests__/implementation/FeatureCommandAttacher.test.js.map +1 -1
- package/build/__tests__/implementation/FeatureFixture.test.js.map +1 -1
- package/build/__tests__/implementation/FeatureInstaller.test.js.map +1 -1
- package/build/__tests__/implementation/FeaturesUtil.test.js.map +1 -1
- package/build/__tests__/implementation/FieldTemplateItemBuilder.test.js.map +1 -1
- package/build/__tests__/implementation/GlobalEmitter.js.map +1 -1
- package/build/__tests__/implementation/Introspection.test.js.map +1 -1
- package/build/__tests__/implementation/JestJsonParser.test.js.map +1 -1
- package/build/__tests__/implementation/LintService.test.js.map +1 -1
- package/build/__tests__/implementation/ListenerStore.test.js.map +1 -1
- package/build/__tests__/implementation/OnboardingScriptLoader.test.js.map +1 -1
- package/build/__tests__/implementation/OnboardingScriptPlayer.test.js.map +1 -1
- package/build/__tests__/implementation/OnboardingStore.test.js.map +1 -1
- package/build/__tests__/implementation/OrganizationStore.test.js.map +1 -1
- package/build/__tests__/implementation/ParentTestFinder.test.js.map +1 -1
- package/build/__tests__/implementation/PkgService.test.js.map +1 -1
- package/build/__tests__/implementation/SchemaStore.test.js.map +1 -1
- package/build/__tests__/implementation/SchemaTemplateItemBuilder.test.js.map +1 -1
- package/build/__tests__/implementation/SchemaValueTypeWriter.test.js.map +1 -1
- package/build/__tests__/implementation/ServiceFactory.test.js.map +1 -1
- package/build/__tests__/implementation/SettingUpANodeModule.test.js.map +1 -1
- package/build/__tests__/implementation/SkillStore.test.js.map +1 -1
- package/build/__tests__/implementation/StoreFeature.test.js.map +1 -1
- package/build/__tests__/implementation/TestReporter.test.js.map +1 -1
- package/build/__tests__/implementation/TestRunner.test.js.map +1 -1
- package/build/__tests__/implementation/ValueTypeMapping.test.js.map +1 -1
- package/build/__tests__/implementation/Widgets.test.js.map +1 -1
- package/build/__tests__/support/scripts/first.script.js.map +1 -1
- package/build/addons/filePrompt.addon.js.map +1 -1
- package/build/cli.js.map +1 -1
- package/build/components/FormComponent.js.map +1 -1
- package/build/components/QuizComponent.js.map +1 -1
- package/build/errors/SpruceError.js.map +1 -1
- package/build/errors/actionCancelled.builder.js.map +1 -1
- package/build/errors/bootError.builder.js.map +1 -1
- package/build/errors/buildFailed.builder.js.map +1 -1
- package/build/errors/cacheNotEnabled.builder.js.map +1 -1
- package/build/errors/commandAborted.builder.js.map +1 -1
- package/build/errors/commandBlocked.builder.js.map +1 -1
- package/build/errors/commandNotImplemented.builder.js.map +1 -1
- package/build/errors/createAutoloaderFailed.builder.js.map +1 -1
- package/build/errors/dependencyExists.builder.js.map +1 -1
- package/build/errors/deployFailed.builder.js.map +1 -1
- package/build/errors/directoryEmpty.builder.js.map +1 -1
- package/build/errors/directoryNotSkill.builder.js.map +1 -1
- package/build/errors/dockerNotStarted.builder.js.map +1 -1
- package/build/errors/executingCommandFailed.builder.js.map +1 -1
- package/build/errors/failedToImport.builder.js.map +1 -1
- package/build/errors/featureNotInstalled.builder.js.map +1 -1
- package/build/errors/fileExists.builder.js.map +1 -1
- package/build/errors/generic.builder.js.map +1 -1
- package/build/errors/invalidCommand.builder.js.map +1 -1
- package/build/errors/invalidEventContract.builder.js.map +1 -1
- package/build/errors/invalidFeatureCode.builder.js.map +1 -1
- package/build/errors/invalidTestDirectory.builder.js.map +1 -1
- package/build/errors/lintFailed.builder.js.map +1 -1
- package/build/errors/mercuryResponseError.builder.js.map +1 -1
- package/build/errors/missingDependencies.builder.js.map +1 -1
- package/build/errors/noOrganizationsFound.builder.js.map +1 -1
- package/build/errors/noSkillsRegistered.builder.js.map +1 -1
- package/build/errors/notImplemented.builder.js.map +1 -1
- package/build/errors/notLoggedIn.builder.js.map +1 -1
- package/build/errors/schemaExists.builder.js.map +1 -1
- package/build/errors/schemaFailedToImport.builder.js.map +1 -1
- package/build/errors/schemaTemplateItemBuildingFailed.builder.js.map +1 -1
- package/build/errors/skillNotFound.builder.js.map +1 -1
- package/build/errors/skillNotRegistered.builder.js.map +1 -1
- package/build/errors/skillViewExists.builder.js.map +1 -1
- package/build/errors/storeExists.builder.js.map +1 -1
- package/build/errors/testFailed.builder.js.map +1 -1
- package/build/errors/themeExists.builder.js.map +1 -1
- package/build/errors/transportAlreadyExists.builder.js.map +1 -1
- package/build/errors/vscodeNotInstalled.builder.js.map +1 -1
- package/build/features/AbstractAction.js.map +1 -1
- package/build/features/AbstractFeature.js.map +1 -1
- package/build/features/ActionExecuter.js.map +1 -1
- package/build/features/ActionFactory.js.map +1 -1
- package/build/features/ActionQuestionAsker.js.map +1 -1
- package/build/features/FeatureCommandAttacher.js.map +1 -1
- package/build/features/FeatureInstaller.js.map +1 -1
- package/build/features/OverrideActionDecorator.js.map +1 -1
- package/build/features/cache/CacheFeature.js.map +1 -1
- package/build/features/cache/actions/DisableAction.js.map +1 -1
- package/build/features/cache/actions/EnableAction.js.map +1 -1
- package/build/features/conversation/ConversationFeature.js.map +1 -1
- package/build/features/conversation/actions/TestAction.js.map +1 -1
- package/build/features/conversation/stores/ConversationStore.js.map +1 -1
- package/build/features/conversation/writers/ConversationWriter.js.map +1 -1
- package/build/features/dependencies/DependencyFeature.js.map +1 -1
- package/build/features/dependencies/actions/AddAction.js.map +1 -1
- package/build/features/dependencies/actions/ManageAction.js.map +1 -1
- package/build/features/deploy/DeployFeature.js.map +1 -1
- package/build/features/deploy/actions/HerokuAction.js.map +1 -1
- package/build/features/deploy/writers/DeployWriter.js.map +1 -1
- package/build/features/error/ErrorFeature.js.map +1 -1
- package/build/features/error/ParentTestFinder.js.map +1 -1
- package/build/features/error/actions/CreateAction.js.map +1 -1
- package/build/features/error/actions/SyncAction.js.map +1 -1
- package/build/features/error/writers/ErrorWriter.js.map +1 -1
- package/build/features/event/EventFeature.js.map +1 -1
- package/build/features/event/actions/CreateAction.js.map +1 -1
- package/build/features/event/actions/ListenAction.js.map +1 -1
- package/build/features/event/actions/SetRemoteAction.js.map +1 -1
- package/build/features/event/actions/SyncAction.js.map +1 -1
- package/build/features/event/actions/SyncListenersAction.js.map +1 -1
- package/build/features/event/builders/EventContractBuilder.js.map +1 -1
- package/build/features/event/builders/ListenerTemplateItemBuilder.js.map +1 -1
- package/build/features/event/stores/EventStore.js.map +1 -1
- package/build/features/event/stores/ListenerStore.js.map +1 -1
- package/build/features/event/writers/EventWriter.js.map +1 -1
- package/build/features/eventContract/EventContractFeature.js.map +1 -1
- package/build/features/eventContract/actions/PullAction.js.map +1 -1
- package/build/features/feature.utilities.js.map +1 -1
- package/build/features/features.types.js.map +1 -1
- package/build/features/log/LogFeature.js.map +1 -1
- package/build/features/log/actions/CreateTransportAction.js.map +1 -1
- package/build/features/log/writers/LogWriter.js.map +1 -1
- package/build/features/node/NodeFeature.js.map +1 -1
- package/build/features/node/actions/UpdateDependenciesAction.js.map +1 -1
- package/build/features/node/actions/UpgradeAction.js.map +1 -1
- package/build/features/node/writers/NodeWriter.js.map +1 -1
- package/build/features/onboard/OnboardFeature.js.map +1 -1
- package/build/features/onboard/ScriptLoader.js.map +1 -1
- package/build/features/onboard/scripts/onboarding.first.script.js.map +1 -1
- package/build/features/onboard/scripts/onboarding.immersive.script.js.map +1 -1
- package/build/features/onboard/scripts/onboarding.returning.script.js.map +1 -1
- package/build/features/onboard/scripts/onboarding.short.script.js.map +1 -1
- package/build/features/onboard/scripts/wrongCommand.script.js.map +1 -1
- package/build/features/onboard/stores/OnboardingStore.js.map +1 -1
- package/build/features/organization/OrganizationFeature.js.map +1 -1
- package/build/features/organization/stores/OrganizationStore.js.map +1 -1
- package/build/features/person/PersonFeature.js.map +1 -1
- package/build/features/person/actions/LoginAction.js.map +1 -1
- package/build/features/person/actions/LogoutAction.js.map +1 -1
- package/build/features/person/actions/WhoamiAction.js.map +1 -1
- package/build/features/sandbox/SandboxFeature.js.map +1 -1
- package/build/features/sandbox/actions/SetupAction.js.map +1 -1
- package/build/features/sandbox/writers/SandboxWriter.js.map +1 -1
- package/build/features/schema/SchemaFeature.js.map +1 -1
- package/build/features/schema/ValueTypeBuilder.js.map +1 -1
- package/build/features/schema/actions/CreateAction.js.map +1 -1
- package/build/features/schema/actions/SyncAction.js.map +1 -1
- package/build/features/schema/actions/SyncFieldsAction.js.map +1 -1
- package/build/features/schema/services/SchemaService.js.map +1 -1
- package/build/features/schema/stores/SchemaStore.d.ts +2 -1
- package/build/features/schema/stores/SchemaStore.js +2 -1
- package/build/features/schema/stores/SchemaStore.js.map +1 -1
- package/build/features/schema/utilities/schema.utility.js.map +1 -1
- package/build/features/schema/utilities/schemaDisk.utility.js.map +1 -1
- package/build/features/schema/utilities/schemaGenerator.utility.js.map +1 -1
- package/build/features/schema/writers/SchemaWriter.js.map +1 -1
- package/build/features/skill/SkillFeature.js.map +1 -1
- package/build/features/skill/actions/BootAction.js.map +1 -1
- package/build/features/skill/actions/CreateAction.js.map +1 -1
- package/build/features/skill/actions/DashboardAction.js.map +1 -1
- package/build/features/skill/actions/LoginAction.js.map +1 -1
- package/build/features/skill/actions/RebuildAction.js.map +1 -1
- package/build/features/skill/actions/RegisterAction.js.map +1 -1
- package/build/features/skill/stores/SkillStore.js.map +1 -1
- package/build/features/skill/updaters/Updater.js.map +1 -1
- package/build/features/skill/writers/SkillWriter.js.map +1 -1
- package/build/features/store/StoreFeature.js.map +1 -1
- package/build/features/store/actions/CreateAction.js.map +1 -1
- package/build/features/store/actions/SyncAction.js.map +1 -1
- package/build/features/store/stores/StoreStore.js.map +1 -1
- package/build/features/store/templateItemBuilders/StoreTemplateItemBuilder.js.map +1 -1
- package/build/features/store/writers/StoreWriter.js.map +1 -1
- package/build/features/test/TestFeature.js.map +1 -1
- package/build/features/test/TestLogItemGenerator.js.map +1 -1
- package/build/features/test/TestReporter.js.map +1 -1
- package/build/features/test/TestRunner.js.map +1 -1
- package/build/features/test/actions/CreateAction.js.map +1 -1
- package/build/features/test/actions/SetupAction.js.map +1 -1
- package/build/features/test/actions/TestAction.js.map +1 -1
- package/build/features/test/writers/TestWriter.js.map +1 -1
- package/build/features/validateAndNormalize.utility.js.map +1 -1
- package/build/features/view/ViewFeature.js.map +1 -1
- package/build/features/view/actions/CreateAction.js.map +1 -1
- package/build/features/view/actions/CreateThemeAction.js.map +1 -1
- package/build/features/view/actions/SyncAction.js.map +1 -1
- package/build/features/view/actions/WatchAction.js.map +1 -1
- package/build/features/view/stores/ViewStore.js.map +1 -1
- package/build/features/view/writers/ViewWriter.js.map +1 -1
- package/build/features/vscode/VsCodeFeature.js.map +1 -1
- package/build/features/vscode/services/VsCodeService.js.map +1 -1
- package/build/features/vscode/writers/VsCodeWriter.js.map +1 -1
- package/build/features/watch/WatchFeature.js.map +1 -1
- package/build/index.js.map +1 -1
- package/build/interfaces/SpyInterface.js +0 -1
- package/build/interfaces/SpyInterface.js.map +1 -1
- package/build/interfaces/TerminalInterface.js.map +1 -1
- package/build/schemas/v2020_07_22/bootSkillOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/createConversationTopicOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/createErrorOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/createOrganizationOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/createSchemaOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/createTestOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/installSkillAtOrganizationOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/listenEventOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/namedTemplateItem.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/nodeFeatureOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/onboardOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/onboarding.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/personWithToken.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/registerDashboardWidgetsEmitPayloadSchema.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/setupTestsOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/setupVscodeOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/skillFeature.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/syncErrorOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/syncEventOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/syncSchemaFieldsOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/syncSchemasOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/testOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/upgradeSkillOptions.builder.js.map +1 -1
- package/build/schemas/v2020_07_22/watcherDidDetectChangesEmitPayload.builder.js.map +1 -1
- package/build/services/CommandService.js.map +1 -1
- package/build/services/GameService.js.map +1 -1
- package/build/services/ImportService.js.map +1 -1
- package/build/services/LintService.js.map +1 -1
- package/build/services/PkgService.js.map +1 -1
- package/build/services/ServiceFactory.js.map +1 -1
- package/build/templateItemBuilders/EventTemplateItemBuilder.js.map +1 -1
- package/build/templateItemBuilders/FieldTemplateItemBuilder.js.map +1 -1
- package/build/templateItemBuilders/SchemaTemplateItemBuilder.js.map +1 -1
- package/build/tests/AbstractCliTest.js.map +1 -1
- package/build/tests/AbstractEventTest.js.map +1 -1
- package/build/tests/AbstractSchemaTest.js.map +1 -1
- package/build/tests/AbstractTestTest.js.map +1 -1
- package/build/tests/CommandFaker.js.map +1 -1
- package/build/tests/JestJsonParser.js.map +1 -1
- package/build/tests/buildTestCache.js.map +1 -1
- package/build/tests/cleanTestCache.js.map +1 -1
- package/build/tests/cleanTestData.js.map +1 -1
- package/build/tests/fixtures/FeatureFixture.js.map +1 -1
- package/build/tests/fixtures/MercuryFixture.js.map +1 -1
- package/build/tests/fixtures/PersonFixture.js.map +1 -1
- package/build/tests/fixtures/SkillFixture.js.map +1 -1
- package/build/tests/utilities/test.utility.js.map +1 -1
- package/build/tests/utilities/uiAssert.utility.js.map +1 -1
- package/build/utilities/action.utility.js.map +1 -1
- package/build/utilities/commander.utility.js.map +1 -1
- package/build/utilities/eventContractCleaner.utility.js.map +1 -1
- package/build/utilities/form.utility.js.map +1 -1
- package/build/utilities/introspection.utility.js.map +1 -1
- package/build/utilities/tsConfig.utility.js.map +1 -1
- package/build/widgets/Theme.js.map +1 -1
- package/build/widgets/WidgetFactory.js.map +1 -1
- package/build/widgets/terminalKit/TKButtonWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkInputWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkLayoutWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkMenuBarWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkPopupWidget.js.map +1 -1
- package/build/widgets/terminalKit/TkTextWidget.js.map +1 -1
- package/build/widgets/terminalKit/termKit.utility.js.map +1 -1
- package/build/widgets/types/input.types.js.map +1 -1
- package/build/widgets/types/menuBar.types.js.map +1 -1
- package/build/widgets/types/text.types.js.map +1 -1
- package/build/widgets/types/window.types.js.map +1 -1
- package/build/writers/AbstractWriter.js.map +1 -1
- package/package.json +34 -34
- package/src/__tests__/behavioral/views/CreatingASkillView.test.ts +3 -2
- package/src/features/schema/stores/SchemaStore.ts +4 -2
- package/build/.spruce/schemas/spruce/v2020_07_22/fullMessageChoices.schema.d.ts +0 -1
- package/build/.spruce/schemas/spruce/v2020_07_22/fullMessageChoices.schema.js +0 -14
- package/build/.spruce/schemas/spruce/v2020_07_22/fullMessageChoices.schema.js.map +0 -1
- package/src/.spruce/schemas/spruce/v2020_07_22/fullMessageChoices.schema.ts +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form.utility.js","names":["formUtil","onWillAskQuestionHandler","fieldName","fieldDefinition","values","nameCamel","defaultValue","namesUtil","toCamel","nameReadable","nameCamelPlural","toPlural","namePascal","toPascal","namePascalPlural","nameReadablePlural","nameConst","toConst","nameKebab","toKebab","nameSnake","toSnake"],"sources":["../../src/utilities/form.utility.ts"],"sourcesContent":["import { Optional } from '@sprucelabs/schema'\nimport { namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport { FieldDefinitions } from '#spruce/schemas/fields/fields.types'\nimport { SpruceSchemas } from '#spruce/schemas/schemas.types'\n\nconst formUtil = {\n\t/** Help guess on answers */\n\tonWillAskQuestionHandler<\n\t\tK extends keyof SpruceSchemas.SpruceCli.v2020_07_22.NamedTemplateItem = keyof SpruceSchemas.SpruceCli.v2020_07_22.NamedTemplateItem,\n\t\tV extends Optional<SpruceSchemas.SpruceCli.v2020_07_22.NamedTemplateItem> = Optional<SpruceSchemas.SpruceCli.v2020_07_22.NamedTemplateItem>\n\t>(fieldName: K, fieldDefinition: FieldDefinitions, values: V) {\n\t\tswitch (fieldName) {\n\t\t\tcase 'nameCamel':\n\t\t\t\tif (!values.nameCamel) {\n\t\t\t\t\tfieldDefinition.defaultValue = namesUtil.toCamel(\n\t\t\t\t\t\tvalues.nameReadable || ''\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\tcase 'nameCamelPlural':\n\t\t\t\tif (!values.nameCamelPlural) {\n\t\t\t\t\tfieldDefinition.defaultValue = namesUtil.toPlural(\n\t\t\t\t\t\tnamesUtil.toCamel(values.nameReadable || '')\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\tcase 'namePascal':\n\t\t\t\tif (!values.namePascal) {\n\t\t\t\t\tfieldDefinition.defaultValue = namesUtil.toPascal(\n\t\t\t\t\t\tvalues.nameCamel ?? values.nameReadable ?? ''\n\t\t\t\t\t)\n\t\t\t\t}\n\n\t\t\t\tbreak\n\t\t\tcase 'namePascalPlural':\n\t\t\t\tif (!values.namePascalPlural) {\n\t\t\t\t\tif (values.nameCamelPlural || values.nameReadablePlural) {\n\t\t\t\t\t\tfieldDefinition.defaultValue = namesUtil.toPascal(\n\t\t\t\t\t\t\tvalues.nameCamelPlural ?? values.nameReadablePlural ?? ''\n\t\t\t\t\t\t)\n\t\t\t\t\t} else if (values.nameCamel || values.nameReadable) {\n\t\t\t\t\t\tfieldDefinition.defaultValue = namesUtil.toPlural(\n\t\t\t\t\t\t\tnamesUtil.toPascal(values.nameCamel ?? values.nameReadable ?? '')\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\tcase 'nameConst':\n\t\t\t\tif (!values.nameConst) {\n\t\t\t\t\tfieldDefinition.defaultValue = namesUtil.toConst(\n\t\t\t\t\t\tvalues.nameCamel ?? values.namePascal ?? values.nameReadable ?? ''\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\tcase 'nameKebab':\n\t\t\t\tif (!values.nameKebab) {\n\t\t\t\t\tfieldDefinition.defaultValue = namesUtil.toKebab(\n\t\t\t\t\t\tvalues.nameCamel ?? values.namePascal ?? values.nameReadable ?? ''\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\tcase 'nameSnake':\n\t\t\t\tif (!values.nameSnake) {\n\t\t\t\t\tfieldDefinition.defaultValue = namesUtil.toSnake(\n\t\t\t\t\t\tvalues.nameCamel ?? values.namePascal ?? values.nameReadable ?? ''\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\tcase 'nameSnakePlural':\n\t\t\t\tif (!values.nameSnake) {\n\t\t\t\t\tfieldDefinition.defaultValue = namesUtil.toSnake(\n\t\t\t\t\t\tvalues.nameCamelPlural ??\n\t\t\t\t\t\t\tvalues.namePascalPlural ??\n\t\t\t\t\t\t\tvalues.nameReadablePlural ??\n\t\t\t\t\t\t\t''\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t}\n\t\treturn fieldDefinition\n\t},\n}\n\nexport default formUtil\n"],"mappings":";;;;;;;AACA;;AAIA,IAAMA,QAAQ,GAAG;EAChB;EACAC,wBAFgB,oCAKdC,SALc,EAKAC,eALA,EAKmCC,MALnC,EAK8C;IAC7D,QAAQF,SAAR;MACC,KAAK,WAAL;QACC,IAAI,CAACE,MAAM,CAACC,SAAZ,EAAuB;UACtBF,eAAe,CAACG,YAAhB,GAA+BC,
|
|
1
|
+
{"version":3,"file":"form.utility.js","names":["formUtil","onWillAskQuestionHandler","fieldName","fieldDefinition","values","nameCamel","defaultValue","namesUtil","toCamel","nameReadable","nameCamelPlural","toPlural","namePascal","toPascal","namePascalPlural","nameReadablePlural","nameConst","toConst","nameKebab","toKebab","nameSnake","toSnake"],"sources":["../../src/utilities/form.utility.ts"],"sourcesContent":["import { Optional } from '@sprucelabs/schema'\nimport { namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport { FieldDefinitions } from '#spruce/schemas/fields/fields.types'\nimport { SpruceSchemas } from '#spruce/schemas/schemas.types'\n\nconst formUtil = {\n\t/** Help guess on answers */\n\tonWillAskQuestionHandler<\n\t\tK extends keyof SpruceSchemas.SpruceCli.v2020_07_22.NamedTemplateItem = keyof SpruceSchemas.SpruceCli.v2020_07_22.NamedTemplateItem,\n\t\tV extends Optional<SpruceSchemas.SpruceCli.v2020_07_22.NamedTemplateItem> = Optional<SpruceSchemas.SpruceCli.v2020_07_22.NamedTemplateItem>\n\t>(fieldName: K, fieldDefinition: FieldDefinitions, values: V) {\n\t\tswitch (fieldName) {\n\t\t\tcase 'nameCamel':\n\t\t\t\tif (!values.nameCamel) {\n\t\t\t\t\tfieldDefinition.defaultValue = namesUtil.toCamel(\n\t\t\t\t\t\tvalues.nameReadable || ''\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\tcase 'nameCamelPlural':\n\t\t\t\tif (!values.nameCamelPlural) {\n\t\t\t\t\tfieldDefinition.defaultValue = namesUtil.toPlural(\n\t\t\t\t\t\tnamesUtil.toCamel(values.nameReadable || '')\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\tcase 'namePascal':\n\t\t\t\tif (!values.namePascal) {\n\t\t\t\t\tfieldDefinition.defaultValue = namesUtil.toPascal(\n\t\t\t\t\t\tvalues.nameCamel ?? values.nameReadable ?? ''\n\t\t\t\t\t)\n\t\t\t\t}\n\n\t\t\t\tbreak\n\t\t\tcase 'namePascalPlural':\n\t\t\t\tif (!values.namePascalPlural) {\n\t\t\t\t\tif (values.nameCamelPlural || values.nameReadablePlural) {\n\t\t\t\t\t\tfieldDefinition.defaultValue = namesUtil.toPascal(\n\t\t\t\t\t\t\tvalues.nameCamelPlural ?? values.nameReadablePlural ?? ''\n\t\t\t\t\t\t)\n\t\t\t\t\t} else if (values.nameCamel || values.nameReadable) {\n\t\t\t\t\t\tfieldDefinition.defaultValue = namesUtil.toPlural(\n\t\t\t\t\t\t\tnamesUtil.toPascal(values.nameCamel ?? values.nameReadable ?? '')\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\tcase 'nameConst':\n\t\t\t\tif (!values.nameConst) {\n\t\t\t\t\tfieldDefinition.defaultValue = namesUtil.toConst(\n\t\t\t\t\t\tvalues.nameCamel ?? values.namePascal ?? values.nameReadable ?? ''\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\tcase 'nameKebab':\n\t\t\t\tif (!values.nameKebab) {\n\t\t\t\t\tfieldDefinition.defaultValue = namesUtil.toKebab(\n\t\t\t\t\t\tvalues.nameCamel ?? values.namePascal ?? values.nameReadable ?? ''\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\tcase 'nameSnake':\n\t\t\t\tif (!values.nameSnake) {\n\t\t\t\t\tfieldDefinition.defaultValue = namesUtil.toSnake(\n\t\t\t\t\t\tvalues.nameCamel ?? values.namePascal ?? values.nameReadable ?? ''\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\tcase 'nameSnakePlural':\n\t\t\t\tif (!values.nameSnake) {\n\t\t\t\t\tfieldDefinition.defaultValue = namesUtil.toSnake(\n\t\t\t\t\t\tvalues.nameCamelPlural ??\n\t\t\t\t\t\t\tvalues.namePascalPlural ??\n\t\t\t\t\t\t\tvalues.nameReadablePlural ??\n\t\t\t\t\t\t\t''\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t}\n\t\treturn fieldDefinition\n\t},\n}\n\nexport default formUtil\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"introspection.utility.js","names":["serializeSymbol","options","checker","symbol","doc","name","getName","documentation","ts","displayPartsToString","getDocumentationComment","valueDeclaration","type","typeToString","getTypeOfSymbolAtLocation","serializeSignature","signature","parameters","map","p","returnType","getReturnType","introspectionUtil","introspect","tsFiles","filePaths","program","createProgram","getTypeChecker","introspects","i","tsFile","sourceFile","getSourceFile","results","classes","interfaces","_","includes","fileName","forEachChild","node","isClassDeclaration","getSymbolAtLocation","details","constructorType","parentClassSymbol","heritageClauses","getTypeAtLocation","types","getSymbol","parentClassName","text","parentClassPath","parent","replace","isAbstractClass","tsutils","isModifierFlagSet","ModifierFlags","Abstract","constructors","getConstructSignatures","s","push","className","classPath","staticProperties","pluckStaticProperties","optionsInterfaceName","isAbstract","isInterfaceDeclaration","interfaceName","length","staticProps","members","member","escapedText","value","initializer"],"sources":["../../src/utilities/introspection.utility.ts"],"sourcesContent":["import _ from 'lodash'\nimport * as tsutils from 'tsutils'\nimport * as ts from 'typescript'\n\nexport interface IntrospectionClass {\n\tclassName: string\n\tclassPath: string\n\tparentClassName: string | undefined\n\tparentClassPath: string | undefined\n\toptionsInterfaceName: string | undefined\n\tisAbstract: boolean\n\tstaticProperties: StaticProperties\n}\n\ntype StaticProperties = Record<string, any>\n\ninterface IntrospectionInterface {\n\tinterfaceName: string\n}\n\nexport interface Introspection {\n\tclasses: IntrospectionClass[]\n\tinterfaces: IntrospectionInterface[]\n}\n\ninterface DocEntry {\n\tname?: string\n\tfileName?: string\n\tdocumentation?: string\n\ttype?: string\n\tconstructors?: DocEntry[]\n\tparameters?: DocEntry[]\n\treturnType?: string\n}\n\nconst serializeSymbol = (options: {\n\tchecker: ts.TypeChecker\n\tsymbol: ts.Symbol\n}): DocEntry => {\n\tconst { checker, symbol } = options\n\tconst doc: DocEntry = {\n\t\tname: symbol.getName(),\n\t\tdocumentation: ts.displayPartsToString(\n\t\t\tsymbol.getDocumentationComment(checker)\n\t\t),\n\t}\n\n\tif (symbol.valueDeclaration) {\n\t\tdoc.type = checker.typeToString(\n\t\t\tchecker.getTypeOfSymbolAtLocation(symbol, symbol.valueDeclaration)\n\t\t)\n\t}\n\n\treturn doc\n}\n\nconst serializeSignature = (options: {\n\tchecker: ts.TypeChecker\n\tsignature: ts.Signature\n}) => {\n\tconst { checker, signature } = options\n\treturn {\n\t\tparameters: signature.parameters.map((p) =>\n\t\t\tserializeSymbol({ symbol: p, checker })\n\t\t),\n\t\treturnType: checker.typeToString(signature.getReturnType()),\n\t\tdocumentation: ts.displayPartsToString(\n\t\t\tsignature.getDocumentationComment(checker)\n\t\t),\n\t}\n}\n\nconst introspectionUtil = {\n\tintrospect(tsFiles: string[]): Introspection[] {\n\t\tconst filePaths = tsFiles\n\t\tconst program = ts.createProgram(filePaths, {})\n\t\tconst checker = program.getTypeChecker()\n\n\t\t// for building results\n\t\tconst introspects: Introspection[] = []\n\n\t\tfor (let i = 0; i < filePaths.length; i += 1) {\n\t\t\tconst tsFile = filePaths[i]\n\t\t\tconst sourceFile = program.getSourceFile(tsFile)\n\t\t\tconst results: Introspection = { classes: [], interfaces: [] }\n\t\t\tif (sourceFile && _.includes(filePaths, sourceFile.fileName)) {\n\t\t\t\tts.forEachChild(sourceFile, (node) => {\n\t\t\t\t\t// if this is a class declaration\n\t\t\t\t\tif (ts.isClassDeclaration(node) && node.name) {\n\t\t\t\t\t\tconst symbol = checker.getSymbolAtLocation(node.name)\n\n\t\t\t\t\t\tif (symbol?.valueDeclaration) {\n\t\t\t\t\t\t\tconst details = serializeSymbol({ checker, symbol })\n\t\t\t\t\t\t\t// Get the construct signatures\n\t\t\t\t\t\t\tconst constructorType = checker.getTypeOfSymbolAtLocation(\n\t\t\t\t\t\t\t\tsymbol,\n\t\t\t\t\t\t\t\tsymbol.valueDeclaration\n\t\t\t\t\t\t\t)\n\n\t\t\t\t\t\t\tlet parentClassSymbol: ts.Symbol | undefined\n\t\t\t\t\t\t\tif (node.heritageClauses && node.heritageClauses[0]) {\n\t\t\t\t\t\t\t\tparentClassSymbol = checker\n\t\t\t\t\t\t\t\t\t.getTypeAtLocation(node.heritageClauses[0].types[0])\n\t\t\t\t\t\t\t\t\t.getSymbol()\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst parentClassName =\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\tparentClassSymbol?.valueDeclaration?.name?.text\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tconst parentClassPath = parentClassSymbol?.parent\n\t\t\t\t\t\t\t\t?.getName()\n\t\t\t\t\t\t\t\t.replace('\"', '')\n\n\t\t\t\t\t\t\tconst isAbstractClass = tsutils.isModifierFlagSet(\n\t\t\t\t\t\t\t\tnode,\n\t\t\t\t\t\t\t\tts.ModifierFlags.Abstract\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\tdetails.constructors = constructorType\n\t\t\t\t\t\t\t\t.getConstructSignatures()\n\t\t\t\t\t\t\t\t.map((s) => serializeSignature({ signature: s, checker }))\n\n\t\t\t\t\t\t\tresults.classes.push({\n\t\t\t\t\t\t\t\tclassName: node.name.text,\n\t\t\t\t\t\t\t\tclassPath: sourceFile.fileName,\n\t\t\t\t\t\t\t\tparentClassName,\n\t\t\t\t\t\t\t\tparentClassPath,\n\t\t\t\t\t\t\t\tstaticProperties: pluckStaticProperties(node),\n\t\t\t\t\t\t\t\toptionsInterfaceName:\n\t\t\t\t\t\t\t\t\tdetails.constructors?.[0].parameters?.[0]?.type,\n\t\t\t\t\t\t\t\tisAbstract: isAbstractClass,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (ts.isInterfaceDeclaration(node)) {\n\t\t\t\t\t\tresults.interfaces.push({\n\t\t\t\t\t\t\tinterfaceName: node.name.text,\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tintrospects.push(results)\n\t\t}\n\n\t\treturn introspects\n\t},\n}\n\nexport default introspectionUtil\n\nfunction pluckStaticProperties(node: ts.ClassDeclaration): StaticProperties {\n\tconst staticProps: StaticProperties = {}\n\n\tfor (const member of node.members) {\n\t\t//@ts-ignore\n\t\tconst name = member.name?.escapedText\n\t\t//@ts-ignore\n\t\tconst value = member.initializer?.text\n\n\t\tif (name && value) {\n\t\t\tstaticProps[name] = value\n\t\t}\n\t}\n\n\treturn staticProps\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"introspection.utility.js","names":["serializeSymbol","options","checker","symbol","doc","name","getName","documentation","ts","displayPartsToString","getDocumentationComment","valueDeclaration","type","typeToString","getTypeOfSymbolAtLocation","serializeSignature","signature","parameters","map","p","returnType","getReturnType","introspectionUtil","introspect","tsFiles","filePaths","program","createProgram","getTypeChecker","introspects","i","tsFile","sourceFile","getSourceFile","results","classes","interfaces","_","includes","fileName","forEachChild","node","isClassDeclaration","getSymbolAtLocation","details","constructorType","parentClassSymbol","heritageClauses","getTypeAtLocation","types","getSymbol","parentClassName","text","parentClassPath","parent","replace","isAbstractClass","tsutils","isModifierFlagSet","ModifierFlags","Abstract","constructors","getConstructSignatures","s","push","className","classPath","staticProperties","pluckStaticProperties","optionsInterfaceName","isAbstract","isInterfaceDeclaration","interfaceName","length","staticProps","members","member","escapedText","value","initializer"],"sources":["../../src/utilities/introspection.utility.ts"],"sourcesContent":["import _ from 'lodash'\nimport * as tsutils from 'tsutils'\nimport * as ts from 'typescript'\n\nexport interface IntrospectionClass {\n\tclassName: string\n\tclassPath: string\n\tparentClassName: string | undefined\n\tparentClassPath: string | undefined\n\toptionsInterfaceName: string | undefined\n\tisAbstract: boolean\n\tstaticProperties: StaticProperties\n}\n\ntype StaticProperties = Record<string, any>\n\ninterface IntrospectionInterface {\n\tinterfaceName: string\n}\n\nexport interface Introspection {\n\tclasses: IntrospectionClass[]\n\tinterfaces: IntrospectionInterface[]\n}\n\ninterface DocEntry {\n\tname?: string\n\tfileName?: string\n\tdocumentation?: string\n\ttype?: string\n\tconstructors?: DocEntry[]\n\tparameters?: DocEntry[]\n\treturnType?: string\n}\n\nconst serializeSymbol = (options: {\n\tchecker: ts.TypeChecker\n\tsymbol: ts.Symbol\n}): DocEntry => {\n\tconst { checker, symbol } = options\n\tconst doc: DocEntry = {\n\t\tname: symbol.getName(),\n\t\tdocumentation: ts.displayPartsToString(\n\t\t\tsymbol.getDocumentationComment(checker)\n\t\t),\n\t}\n\n\tif (symbol.valueDeclaration) {\n\t\tdoc.type = checker.typeToString(\n\t\t\tchecker.getTypeOfSymbolAtLocation(symbol, symbol.valueDeclaration)\n\t\t)\n\t}\n\n\treturn doc\n}\n\nconst serializeSignature = (options: {\n\tchecker: ts.TypeChecker\n\tsignature: ts.Signature\n}) => {\n\tconst { checker, signature } = options\n\treturn {\n\t\tparameters: signature.parameters.map((p) =>\n\t\t\tserializeSymbol({ symbol: p, checker })\n\t\t),\n\t\treturnType: checker.typeToString(signature.getReturnType()),\n\t\tdocumentation: ts.displayPartsToString(\n\t\t\tsignature.getDocumentationComment(checker)\n\t\t),\n\t}\n}\n\nconst introspectionUtil = {\n\tintrospect(tsFiles: string[]): Introspection[] {\n\t\tconst filePaths = tsFiles\n\t\tconst program = ts.createProgram(filePaths, {})\n\t\tconst checker = program.getTypeChecker()\n\n\t\t// for building results\n\t\tconst introspects: Introspection[] = []\n\n\t\tfor (let i = 0; i < filePaths.length; i += 1) {\n\t\t\tconst tsFile = filePaths[i]\n\t\t\tconst sourceFile = program.getSourceFile(tsFile)\n\t\t\tconst results: Introspection = { classes: [], interfaces: [] }\n\t\t\tif (sourceFile && _.includes(filePaths, sourceFile.fileName)) {\n\t\t\t\tts.forEachChild(sourceFile, (node) => {\n\t\t\t\t\t// if this is a class declaration\n\t\t\t\t\tif (ts.isClassDeclaration(node) && node.name) {\n\t\t\t\t\t\tconst symbol = checker.getSymbolAtLocation(node.name)\n\n\t\t\t\t\t\tif (symbol?.valueDeclaration) {\n\t\t\t\t\t\t\tconst details = serializeSymbol({ checker, symbol })\n\t\t\t\t\t\t\t// Get the construct signatures\n\t\t\t\t\t\t\tconst constructorType = checker.getTypeOfSymbolAtLocation(\n\t\t\t\t\t\t\t\tsymbol,\n\t\t\t\t\t\t\t\tsymbol.valueDeclaration\n\t\t\t\t\t\t\t)\n\n\t\t\t\t\t\t\tlet parentClassSymbol: ts.Symbol | undefined\n\t\t\t\t\t\t\tif (node.heritageClauses && node.heritageClauses[0]) {\n\t\t\t\t\t\t\t\tparentClassSymbol = checker\n\t\t\t\t\t\t\t\t\t.getTypeAtLocation(node.heritageClauses[0].types[0])\n\t\t\t\t\t\t\t\t\t.getSymbol()\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst parentClassName =\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\tparentClassSymbol?.valueDeclaration?.name?.text\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tconst parentClassPath = parentClassSymbol?.parent\n\t\t\t\t\t\t\t\t?.getName()\n\t\t\t\t\t\t\t\t.replace('\"', '')\n\n\t\t\t\t\t\t\tconst isAbstractClass = tsutils.isModifierFlagSet(\n\t\t\t\t\t\t\t\tnode,\n\t\t\t\t\t\t\t\tts.ModifierFlags.Abstract\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\tdetails.constructors = constructorType\n\t\t\t\t\t\t\t\t.getConstructSignatures()\n\t\t\t\t\t\t\t\t.map((s) => serializeSignature({ signature: s, checker }))\n\n\t\t\t\t\t\t\tresults.classes.push({\n\t\t\t\t\t\t\t\tclassName: node.name.text,\n\t\t\t\t\t\t\t\tclassPath: sourceFile.fileName,\n\t\t\t\t\t\t\t\tparentClassName,\n\t\t\t\t\t\t\t\tparentClassPath,\n\t\t\t\t\t\t\t\tstaticProperties: pluckStaticProperties(node),\n\t\t\t\t\t\t\t\toptionsInterfaceName:\n\t\t\t\t\t\t\t\t\tdetails.constructors?.[0].parameters?.[0]?.type,\n\t\t\t\t\t\t\t\tisAbstract: isAbstractClass,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (ts.isInterfaceDeclaration(node)) {\n\t\t\t\t\t\tresults.interfaces.push({\n\t\t\t\t\t\t\tinterfaceName: node.name.text,\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tintrospects.push(results)\n\t\t}\n\n\t\treturn introspects\n\t},\n}\n\nexport default introspectionUtil\n\nfunction pluckStaticProperties(node: ts.ClassDeclaration): StaticProperties {\n\tconst staticProps: StaticProperties = {}\n\n\tfor (const member of node.members) {\n\t\t//@ts-ignore\n\t\tconst name = member.name?.escapedText\n\t\t//@ts-ignore\n\t\tconst value = member.initializer?.text\n\n\t\tif (name && value) {\n\t\t\tstaticProps[name] = value\n\t\t}\n\t}\n\n\treturn staticProps\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tsConfig.utility.js","names":["tsConfigUtil","readConfig","dir","source","packagePath","pathUtil","join","contents","fs","readFileSync","toString","parsed","JSON","parse","err","SpruceError","code","file","originalError","setPathAlias","alias","patterns","paths","compilerOptions","writeConfig","destination","outputFileSync","stringify","setCompilerOption","key","value","isPathAliasSet","path"],"sources":["../../src/utilities/tsConfig.utility.ts"],"sourcesContent":["import pathUtil from 'path'\nimport fs from 'fs-extra'\nimport SpruceError from '../errors/SpruceError'\nconst tsConfigUtil = {\n\treadConfig(dir: string): Record<string, any | undefined> {\n\t\tconst source = dir\n\t\tconst packagePath = pathUtil.join(source, 'tsconfig.json')\n\t\tconst contents = fs.readFileSync(packagePath).toString()\n\t\ttry {\n\t\t\tconst parsed = JSON.parse(contents)\n\t\t\treturn parsed\n\t\t} catch (err: any) {\n\t\t\tthrow new SpruceError({\n\t\t\t\tcode: 'FAILED_TO_IMPORT',\n\t\t\t\tfile: packagePath,\n\t\t\t\toriginalError: err,\n\t\t\t})\n\t\t}\n\t},\n\n\tsetPathAlias(dir: string, alias: string, patterns: string[]) {\n\t\tconst contents = this.readConfig(dir)\n\t\tconst paths = contents.compilerOptions?.paths ?? {}\n\n\t\t// Set new path\n\t\tpaths[alias] = patterns\n\n\t\t// Pass back to contents\n\t\tif (!contents.compilerOptions) {\n\t\t\tcontents.compilerOptions = {}\n\t\t}\n\n\t\tcontents.compilerOptions.paths = paths\n\n\t\tthis.writeConfig(dir, contents)\n\t},\n\n\twriteConfig(dir: string, contents: Record<string, any>) {\n\t\tconst destination = pathUtil.join(dir, 'tsconfig.json')\n\t\tfs.outputFileSync(destination, JSON.stringify(contents, null, 2))\n\t},\n\n\tsetCompilerOption(\n\t\tdir: string,\n\t\tkey: string,\n\t\tvalue: boolean | string | number\n\t) {\n\t\tconst contents = this.readConfig(dir)\n\t\tif (!contents.compilerOptions) {\n\t\t\tcontents.compilerOptions = {}\n\t\t}\n\n\t\tcontents.compilerOptions[key] = value\n\n\t\tthis.writeConfig(dir, contents)\n\t},\n\n\tisPathAliasSet(dir: string, path: string) {\n\t\treturn !!this.readConfig(dir).compilerOptions?.paths?.[path]\n\t},\n}\n\nexport default tsConfigUtil\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA,IAAMA,YAAY,GAAG;EACpBC,UADoB,sBACTC,GADS,EACqC;IACxD,IAAMC,MAAM,GAAGD,GAAf;;IACA,IAAME,WAAW,GAAGC,
|
|
1
|
+
{"version":3,"file":"tsConfig.utility.js","names":["tsConfigUtil","readConfig","dir","source","packagePath","pathUtil","join","contents","fs","readFileSync","toString","parsed","JSON","parse","err","SpruceError","code","file","originalError","setPathAlias","alias","patterns","paths","compilerOptions","writeConfig","destination","outputFileSync","stringify","setCompilerOption","key","value","isPathAliasSet","path"],"sources":["../../src/utilities/tsConfig.utility.ts"],"sourcesContent":["import pathUtil from 'path'\nimport fs from 'fs-extra'\nimport SpruceError from '../errors/SpruceError'\nconst tsConfigUtil = {\n\treadConfig(dir: string): Record<string, any | undefined> {\n\t\tconst source = dir\n\t\tconst packagePath = pathUtil.join(source, 'tsconfig.json')\n\t\tconst contents = fs.readFileSync(packagePath).toString()\n\t\ttry {\n\t\t\tconst parsed = JSON.parse(contents)\n\t\t\treturn parsed\n\t\t} catch (err: any) {\n\t\t\tthrow new SpruceError({\n\t\t\t\tcode: 'FAILED_TO_IMPORT',\n\t\t\t\tfile: packagePath,\n\t\t\t\toriginalError: err,\n\t\t\t})\n\t\t}\n\t},\n\n\tsetPathAlias(dir: string, alias: string, patterns: string[]) {\n\t\tconst contents = this.readConfig(dir)\n\t\tconst paths = contents.compilerOptions?.paths ?? {}\n\n\t\t// Set new path\n\t\tpaths[alias] = patterns\n\n\t\t// Pass back to contents\n\t\tif (!contents.compilerOptions) {\n\t\t\tcontents.compilerOptions = {}\n\t\t}\n\n\t\tcontents.compilerOptions.paths = paths\n\n\t\tthis.writeConfig(dir, contents)\n\t},\n\n\twriteConfig(dir: string, contents: Record<string, any>) {\n\t\tconst destination = pathUtil.join(dir, 'tsconfig.json')\n\t\tfs.outputFileSync(destination, JSON.stringify(contents, null, 2))\n\t},\n\n\tsetCompilerOption(\n\t\tdir: string,\n\t\tkey: string,\n\t\tvalue: boolean | string | number\n\t) {\n\t\tconst contents = this.readConfig(dir)\n\t\tif (!contents.compilerOptions) {\n\t\t\tcontents.compilerOptions = {}\n\t\t}\n\n\t\tcontents.compilerOptions[key] = value\n\n\t\tthis.writeConfig(dir, contents)\n\t},\n\n\tisPathAliasSet(dir: string, path: string) {\n\t\treturn !!this.readConfig(dir).compilerOptions?.paths?.[path]\n\t},\n}\n\nexport default tsConfigUtil\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA,IAAMA,YAAY,GAAG;EACpBC,UADoB,sBACTC,GADS,EACqC;IACxD,IAAMC,MAAM,GAAGD,GAAf;;IACA,IAAME,WAAW,GAAGC,gBAAA,CAASC,IAAT,CAAcH,MAAd,EAAsB,eAAtB,CAApB;;IACA,IAAMI,QAAQ,GAAGC,mBAAA,CAAGC,YAAH,CAAgBL,WAAhB,EAA6BM,QAA7B,EAAjB;;IACA,IAAI;MACH,IAAMC,MAAM,GAAGC,IAAI,CAACC,KAAL,CAAWN,QAAX,CAAf;MACA,OAAOI,MAAP;IACA,CAHD,CAGE,OAAOG,GAAP,EAAiB;MAClB,MAAM,IAAIC,uBAAJ,CAAgB;QACrBC,IAAI,EAAE,kBADe;QAErBC,IAAI,EAAEb,WAFe;QAGrBc,aAAa,EAAEJ;MAHM,CAAhB,CAAN;IAKA;EACD,CAfmB;EAiBpBK,YAjBoB,wBAiBPjB,GAjBO,EAiBMkB,KAjBN,EAiBqBC,QAjBrB,EAiByC;IAAA;;IAC5D,IAAMd,QAAQ,GAAG,KAAKN,UAAL,CAAgBC,GAAhB,CAAjB;IACA,IAAMoB,KAAK,sDAAGf,QAAQ,CAACgB,eAAZ,2DAAG,uBAA0BD,KAA7B,yEAAsC,EAAjD,CAF4D,CAI5D;;IACAA,KAAK,CAACF,KAAD,CAAL,GAAeC,QAAf,CAL4D,CAO5D;;IACA,IAAI,CAACd,QAAQ,CAACgB,eAAd,EAA+B;MAC9BhB,QAAQ,CAACgB,eAAT,GAA2B,EAA3B;IACA;;IAEDhB,QAAQ,CAACgB,eAAT,CAAyBD,KAAzB,GAAiCA,KAAjC;IAEA,KAAKE,WAAL,CAAiBtB,GAAjB,EAAsBK,QAAtB;EACA,CAhCmB;EAkCpBiB,WAlCoB,uBAkCRtB,GAlCQ,EAkCKK,QAlCL,EAkCoC;IACvD,IAAMkB,WAAW,GAAGpB,gBAAA,CAASC,IAAT,CAAcJ,GAAd,EAAmB,eAAnB,CAApB;;IACAM,mBAAA,CAAGkB,cAAH,CAAkBD,WAAlB,EAA+Bb,IAAI,CAACe,SAAL,CAAepB,QAAf,EAAyB,IAAzB,EAA+B,CAA/B,CAA/B;EACA,CArCmB;EAuCpBqB,iBAvCoB,6BAwCnB1B,GAxCmB,EAyCnB2B,GAzCmB,EA0CnBC,KA1CmB,EA2ClB;IACD,IAAMvB,QAAQ,GAAG,KAAKN,UAAL,CAAgBC,GAAhB,CAAjB;;IACA,IAAI,CAACK,QAAQ,CAACgB,eAAd,EAA+B;MAC9BhB,QAAQ,CAACgB,eAAT,GAA2B,EAA3B;IACA;;IAEDhB,QAAQ,CAACgB,eAAT,CAAyBM,GAAzB,IAAgCC,KAAhC;IAEA,KAAKN,WAAL,CAAiBtB,GAAjB,EAAsBK,QAAtB;EACA,CApDmB;EAsDpBwB,cAtDoB,0BAsDL7B,GAtDK,EAsDQ8B,IAtDR,EAsDsB;IAAA;;IACzC,OAAO,CAAC,2BAAC,KAAK/B,UAAL,CAAgBC,GAAhB,EAAqBqB,eAAtB,4EAAC,sBAAsCD,KAAvC,mDAAC,uBAA8CU,IAA9C,CAAD,CAAR;EACA;AAxDmB,CAArB;eA2DehC,Y"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Theme.js","names":["mint","yellow","orange","blue","colors","Theme","primaryColor","length","backgroundColor"],"sources":["../../src/widgets/Theme.ts"],"sourcesContent":["import random from 'lodash/random'\nconst mint = '#24FE91'\nconst yellow = '#fdfd2d'\nconst orange = '#ff8100'\nconst blue = '#63caf3'\n\nconst colors = [mint, yellow, orange, blue]\n\nconst Theme = {\n\tprimaryColor: colors[random(0, colors.length - 1)],\n\tbackgroundColor: '#000000',\n}\n\nexport default Theme\n"],"mappings":";;;;;;;;;AAAA;;AACA,IAAMA,IAAI,GAAG,SAAb;AACA,IAAMC,MAAM,GAAG,SAAf;AACA,IAAMC,MAAM,GAAG,SAAf;AACA,IAAMC,IAAI,GAAG,SAAb;AAEA,IAAMC,MAAM,GAAG,CAACJ,IAAD,EAAOC,MAAP,EAAeC,MAAf,EAAuBC,IAAvB,CAAf;AAEA,IAAME,KAAK,GAAG;EACbC,YAAY,EAAEF,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"Theme.js","names":["mint","yellow","orange","blue","colors","Theme","primaryColor","random","length","backgroundColor"],"sources":["../../src/widgets/Theme.ts"],"sourcesContent":["import random from 'lodash/random'\nconst mint = '#24FE91'\nconst yellow = '#fdfd2d'\nconst orange = '#ff8100'\nconst blue = '#63caf3'\n\nconst colors = [mint, yellow, orange, blue]\n\nconst Theme = {\n\tprimaryColor: colors[random(0, colors.length - 1)],\n\tbackgroundColor: '#000000',\n}\n\nexport default Theme\n"],"mappings":";;;;;;;;;AAAA;;AACA,IAAMA,IAAI,GAAG,SAAb;AACA,IAAMC,MAAM,GAAG,SAAf;AACA,IAAMC,MAAM,GAAG,SAAf;AACA,IAAMC,IAAI,GAAG,SAAb;AAEA,IAAMC,MAAM,GAAG,CAACJ,IAAD,EAAOC,MAAP,EAAeC,MAAf,EAAuBC,IAAvB,CAAf;AAEA,IAAME,KAAK,GAAG;EACbC,YAAY,EAAEF,MAAM,CAAC,IAAAG,kBAAA,EAAO,CAAP,EAAUH,MAAM,CAACI,MAAP,GAAgB,CAA1B,CAAD,CADP;EAEbC,eAAe,EAAE;AAFJ,CAAd;eAKeJ,K"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WidgetFactory.js","names":["termKit","terminal_kit","WidgetFactory","term","terminal","type","options","Class","widgetRegistry","instance","eventContract","contractRegistry"],"sources":["../../src/widgets/WidgetFactory.ts"],"sourcesContent":["import terminal_kit, { Terminal } from 'terminal-kit'\nimport {\n\tcontractRegistry,\n\tFactoryOptions,\n\twidgetRegistry,\n\tWidgetRegistry,\n\tWidgetType,\n} from './types/factory.types'\nconst termKit = terminal_kit as any\n\nexport default class WidgetFactory {\n\tprivate term: Terminal\n\tpublic constructor() {\n\t\tthis.term = termKit.terminal\n\t}\n\n\tpublic Widget<T extends WidgetType>(\n\t\ttype: T,\n\t\toptions: FactoryOptions<T>\n\t): WidgetRegistry[T] {\n\t\tconst Class = widgetRegistry[type]\n\n\t\t//@ts-ignore\n\t\tconst instance = new Class({\n\t\t\t...options,\n\t\t\tterm: this.term,\n\t\t\teventContract: contractRegistry[type],\n\t\t})\n\n\t\t//@ts-ignore\n\t\treturn instance\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;AAAA;;AACA;;;;;;AAOA,IAAMA,OAAO,GAAGC,uBAAhB;;IAEqBC,a;EAEpB,yBAAqB;IAAA;IAAA;IACpB,KAAKC,IAAL,GAAYH,OAAO,CAACI,QAApB;EACA;;;;WAED,gBACCC,IADD,EAECC,OAFD,EAGqB;MACpB,IAAMC,KAAK,GAAGC,
|
|
1
|
+
{"version":3,"file":"WidgetFactory.js","names":["termKit","terminal_kit","WidgetFactory","term","terminal","type","options","Class","widgetRegistry","instance","eventContract","contractRegistry"],"sources":["../../src/widgets/WidgetFactory.ts"],"sourcesContent":["import terminal_kit, { Terminal } from 'terminal-kit'\nimport {\n\tcontractRegistry,\n\tFactoryOptions,\n\twidgetRegistry,\n\tWidgetRegistry,\n\tWidgetType,\n} from './types/factory.types'\nconst termKit = terminal_kit as any\n\nexport default class WidgetFactory {\n\tprivate term: Terminal\n\tpublic constructor() {\n\t\tthis.term = termKit.terminal\n\t}\n\n\tpublic Widget<T extends WidgetType>(\n\t\ttype: T,\n\t\toptions: FactoryOptions<T>\n\t): WidgetRegistry[T] {\n\t\tconst Class = widgetRegistry[type]\n\n\t\t//@ts-ignore\n\t\tconst instance = new Class({\n\t\t\t...options,\n\t\t\tterm: this.term,\n\t\t\teventContract: contractRegistry[type],\n\t\t})\n\n\t\t//@ts-ignore\n\t\treturn instance\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;AAAA;;AACA;;;;;;AAOA,IAAMA,OAAO,GAAGC,uBAAhB;;IAEqBC,a;EAEpB,yBAAqB;IAAA;IAAA;IACpB,KAAKC,IAAL,GAAYH,OAAO,CAACI,QAApB;EACA;;;;WAED,gBACCC,IADD,EAECC,OAFD,EAGqB;MACpB,IAAMC,KAAK,GAAGC,uBAAA,CAAeH,IAAf,CAAd,CADoB,CAGpB;;MACA,IAAMI,QAAQ,GAAG,IAAIF,KAAJ,iCACbD,OADa;QAEhBH,IAAI,EAAE,KAAKA,IAFK;QAGhBO,aAAa,EAAEC,yBAAA,CAAiBN,IAAjB;MAHC,GAAjB,CAJoB,CAUpB;;MACA,OAAOI,QAAP;IACA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TKButtonWidget.js","names":["termKit","terminal_kit","TKButtonWidget","options","parent","text","rest","frame","termKitUtil","buildFrame","button","Button","getTermKitElement","undefined","content","on","handleClick","bind","__widget","calculateSizeLockDeltas","emit","Error","setContent","TkBaseWidget"],"sources":["../../../src/widgets/terminalKit/TKButtonWidget.ts"],"sourcesContent":["import terminal_kit from 'terminal-kit'\nimport { ButtonWidget, ButtonWidgetOptions } from '../types/button.types'\nimport termKitUtil from './termKit.utility'\nimport TkBaseWidget, { TkWidgetOptions } from './TkBaseWidget'\nconst termKit = terminal_kit as any\n\nexport default class TKButtonWidget\n\textends TkBaseWidget\n\timplements ButtonWidget\n{\n\tprivate button: any\n\n\tpublic readonly type = 'button'\n\n\tpublic constructor(\n\t\toptions: TkWidgetOptions & ButtonWidgetOptions & { termKitElement: any }\n\t) {\n\t\tsuper({\n\t\t\t// shouldLockHeightWithParent: true,\n\t\t\t// shouldLockWidthWithParent: true,\n\t\t\t...options,\n\t\t})\n\n\t\tconst { parent, text, ...rest } = options\n\n\t\tconst frame = termKitUtil.buildFrame(options, parent)\n\n\t\tthis.button = new termKit.Button({\n\t\t\tparent: parent ? parent.getTermKitElement() : undefined,\n\t\t\tcontent: text,\n\t\t\t...rest,\n\t\t\t...frame,\n\t\t})\n\n\t\tthis.button.on('submit', this.handleClick.bind(this))\n\t\tthis.button.__widget = this\n\n\t\tthis.calculateSizeLockDeltas()\n\t}\n\n\tprivate handleClick() {\n\t\tvoid (this as ButtonWidget).emit('click')\n\t}\n\n\tpublic getText(): string {\n\t\tthrow new Error('Method not implemented.')\n\t}\n\n\tpublic setText(text: string): void {\n\t\tthis.button.setContent(text)\n\t}\n\n\tpublic getTermKitElement() {\n\t\treturn this.button\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAEA;;AACA;;;;;;;;;;;;AACA,IAAMA,OAAO,GAAGC,uBAAhB;;IAEqBC,c;;;;;EAQpB,wBACCC,OADD,EAEE;IAAA;;IAAA;IACD,4CAGIA,OAHJ;IADC;IAAA,yFAJqB,QAIrB;IAOD,IAAQC,MAAR,GAAkCD,OAAlC,CAAQC,MAAR;IAAA,IAAgBC,IAAhB,GAAkCF,OAAlC,CAAgBE,IAAhB;IAAA,IAAyBC,IAAzB,6CAAkCH,OAAlC;;IAEA,IAAMI,KAAK,GAAGC,
|
|
1
|
+
{"version":3,"file":"TKButtonWidget.js","names":["termKit","terminal_kit","TKButtonWidget","options","parent","text","rest","frame","termKitUtil","buildFrame","button","Button","getTermKitElement","undefined","content","on","handleClick","bind","__widget","calculateSizeLockDeltas","emit","Error","setContent","TkBaseWidget"],"sources":["../../../src/widgets/terminalKit/TKButtonWidget.ts"],"sourcesContent":["import terminal_kit from 'terminal-kit'\nimport { ButtonWidget, ButtonWidgetOptions } from '../types/button.types'\nimport termKitUtil from './termKit.utility'\nimport TkBaseWidget, { TkWidgetOptions } from './TkBaseWidget'\nconst termKit = terminal_kit as any\n\nexport default class TKButtonWidget\n\textends TkBaseWidget\n\timplements ButtonWidget\n{\n\tprivate button: any\n\n\tpublic readonly type = 'button'\n\n\tpublic constructor(\n\t\toptions: TkWidgetOptions & ButtonWidgetOptions & { termKitElement: any }\n\t) {\n\t\tsuper({\n\t\t\t// shouldLockHeightWithParent: true,\n\t\t\t// shouldLockWidthWithParent: true,\n\t\t\t...options,\n\t\t})\n\n\t\tconst { parent, text, ...rest } = options\n\n\t\tconst frame = termKitUtil.buildFrame(options, parent)\n\n\t\tthis.button = new termKit.Button({\n\t\t\tparent: parent ? parent.getTermKitElement() : undefined,\n\t\t\tcontent: text,\n\t\t\t...rest,\n\t\t\t...frame,\n\t\t})\n\n\t\tthis.button.on('submit', this.handleClick.bind(this))\n\t\tthis.button.__widget = this\n\n\t\tthis.calculateSizeLockDeltas()\n\t}\n\n\tprivate handleClick() {\n\t\tvoid (this as ButtonWidget).emit('click')\n\t}\n\n\tpublic getText(): string {\n\t\tthrow new Error('Method not implemented.')\n\t}\n\n\tpublic setText(text: string): void {\n\t\tthis.button.setContent(text)\n\t}\n\n\tpublic getTermKitElement() {\n\t\treturn this.button\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAEA;;AACA;;;;;;;;;;;;AACA,IAAMA,OAAO,GAAGC,uBAAhB;;IAEqBC,c;;;;;EAQpB,wBACCC,OADD,EAEE;IAAA;;IAAA;IACD,4CAGIA,OAHJ;IADC;IAAA,yFAJqB,QAIrB;IAOD,IAAQC,MAAR,GAAkCD,OAAlC,CAAQC,MAAR;IAAA,IAAgBC,IAAhB,GAAkCF,OAAlC,CAAgBE,IAAhB;IAAA,IAAyBC,IAAzB,6CAAkCH,OAAlC;;IAEA,IAAMI,KAAK,GAAGC,mBAAA,CAAYC,UAAZ,CAAuBN,OAAvB,EAAgCC,MAAhC,CAAd;;IAEA,MAAKM,MAAL,GAAc,IAAIV,OAAO,CAACW,MAAZ;MACbP,MAAM,EAAEA,MAAM,GAAGA,MAAM,CAACQ,iBAAP,EAAH,GAAgCC,SADjC;MAEbC,OAAO,EAAET;IAFI,GAGVC,IAHU,GAIVC,KAJU,EAAd;;IAOA,MAAKG,MAAL,CAAYK,EAAZ,CAAe,QAAf,EAAyB,MAAKC,WAAL,CAAiBC,IAAjB,gDAAzB;;IACA,MAAKP,MAAL,CAAYQ,QAAZ;;IAEA,MAAKC,uBAAL;;IArBC;EAsBD;;;;WAED,uBAAsB;MACrB,KAAM,IAAD,CAAuBC,IAAvB,CAA4B,OAA5B,CAAL;IACA;;;WAED,mBAAyB;MACxB,MAAM,IAAIC,KAAJ,CAAU,yBAAV,CAAN;IACA;;;WAED,iBAAehB,IAAf,EAAmC;MAClC,KAAKK,MAAL,CAAYY,UAAZ,CAAuBjB,IAAvB;IACA;;;WAED,6BAA2B;MAC1B,OAAO,KAAKK,MAAZ;IACA;;;EA/COa,yB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TkInputWidget.js","names":["termKit","terminal_kit","TkInputWidget","options","frame","termKitUtil","buildFrame","parent","rest","input","InlineInput","getTermKitElement","undefined","textAttr","bgColor","color","voidAttr","placeholder","chalk","italic","black","placeholderHasMarkup","prompt","content","label","contentHasMarkup","cancelable","__widget","on","handleSubmit","bind","handleCancel","calculateSizeLockDeltas","oldFrame","getFrame","newFrame","widgetUtil","setSizeAndPosition","x","left","y","top","width","height","draw","emit","value","getValue","setContent","TkBaseWidget"],"sources":["../../../src/widgets/terminalKit/TkInputWidget.ts"],"sourcesContent":["import chalk from 'chalk'\nimport terminal_kit from 'terminal-kit'\nimport { InputWidget, InputWidgetOptions } from '../types/input.types'\nimport { WidgetFrame } from '../types/widgets.types'\nimport widgetUtil from '../widget.utilities'\nimport termKitUtil from './termKit.utility'\nimport TkBaseWidget, { TkWidgetOptions } from './TkBaseWidget'\nconst termKit = terminal_kit as any\n\nexport default class TkInputWidget extends TkBaseWidget implements InputWidget {\n\tpublic readonly type = 'input'\n\n\tprivate input: any\n\n\tpublic constructor(\n\t\toptions: TkWidgetOptions & InputWidgetOptions & { termKitElement: any }\n\t) {\n\t\tsuper(options)\n\n\t\tconst frame = termKitUtil.buildFrame(options, options.parent)\n\n\t\tconst { parent, ...rest } = options\n\n\t\tthis.input = new termKit.InlineInput({\n\t\t\tparent: parent ? parent.getTermKitElement() : undefined,\n\t\t\ttextAttr: { bgColor: 'black', color: 'yellow' },\n\t\t\tvoidAttr: { bgColor: 'black', color: 'yellow' },\n\t\t\tplaceholder: options.placeholder\n\t\t\t\t? chalk.italic.black(options.placeholder)\n\t\t\t\t: undefined,\n\t\t\tplaceholderHasMarkup: true,\n\t\t\tprompt: {\n\t\t\t\tcontent: options.label ? `${options.label} > ` : undefined,\n\t\t\t\tcontentHasMarkup: true,\n\t\t\t},\n\t\t\tcancelable: true,\n\t\t\t...rest,\n\t\t\t...frame,\n\t\t})\n\n\t\tthis.input.__widget = this\n\t\tthis.input.on('submit', this.handleSubmit.bind(this))\n\t\tthis.input.on('cancel', this.handleCancel.bind(this))\n\n\t\tthis.calculateSizeLockDeltas()\n\t}\n\n\tpublic setFrame(frame: WidgetFrame) {\n\t\tconst oldFrame = this.getFrame()\n\t\tconst newFrame = widgetUtil.buildFrame(frame, this.parent)\n\n\t\tthis.input.setSizeAndPosition({\n\t\t\tx: newFrame.left ?? oldFrame.left,\n\t\t\ty: newFrame.top ?? oldFrame.top,\n\t\t\twidth: newFrame.width ?? oldFrame.width,\n\t\t\theight: newFrame.height ?? oldFrame.height,\n\t\t})\n\n\t\tthis.input.draw()\n\t}\n\n\tprivate async handleCancel() {\n\t\tawait (this as InputWidget).emit('cancel')\n\t}\n\n\tprivate async handleSubmit() {\n\t\tawait (this as InputWidget).emit('submit', {\n\t\t\tvalue: this.getValue(),\n\t\t})\n\t}\n\n\tpublic getValue(): string | undefined {\n\t\treturn this.input.getValue()\n\t}\n\n\tpublic setValue(value: string): void {\n\t\tthis.input.setContent(value)\n\t}\n\n\tpublic getTermKitElement() {\n\t\treturn this.input\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAGA;;AACA;;AACA;;;;;;;;;;;;AACA,IAAMA,OAAO,GAAGC,uBAAhB;;IAEqBC,a;;;;;EAKpB,uBACCC,OADD,EAEE;IAAA;;IAAA;IACD,0BAAMA,OAAN;IADC,yFANqB,OAMrB;IAAA;;IAGD,IAAMC,KAAK,GAAGC,
|
|
1
|
+
{"version":3,"file":"TkInputWidget.js","names":["termKit","terminal_kit","TkInputWidget","options","frame","termKitUtil","buildFrame","parent","rest","input","InlineInput","getTermKitElement","undefined","textAttr","bgColor","color","voidAttr","placeholder","chalk","italic","black","placeholderHasMarkup","prompt","content","label","contentHasMarkup","cancelable","__widget","on","handleSubmit","bind","handleCancel","calculateSizeLockDeltas","oldFrame","getFrame","newFrame","widgetUtil","setSizeAndPosition","x","left","y","top","width","height","draw","emit","value","getValue","setContent","TkBaseWidget"],"sources":["../../../src/widgets/terminalKit/TkInputWidget.ts"],"sourcesContent":["import chalk from 'chalk'\nimport terminal_kit from 'terminal-kit'\nimport { InputWidget, InputWidgetOptions } from '../types/input.types'\nimport { WidgetFrame } from '../types/widgets.types'\nimport widgetUtil from '../widget.utilities'\nimport termKitUtil from './termKit.utility'\nimport TkBaseWidget, { TkWidgetOptions } from './TkBaseWidget'\nconst termKit = terminal_kit as any\n\nexport default class TkInputWidget extends TkBaseWidget implements InputWidget {\n\tpublic readonly type = 'input'\n\n\tprivate input: any\n\n\tpublic constructor(\n\t\toptions: TkWidgetOptions & InputWidgetOptions & { termKitElement: any }\n\t) {\n\t\tsuper(options)\n\n\t\tconst frame = termKitUtil.buildFrame(options, options.parent)\n\n\t\tconst { parent, ...rest } = options\n\n\t\tthis.input = new termKit.InlineInput({\n\t\t\tparent: parent ? parent.getTermKitElement() : undefined,\n\t\t\ttextAttr: { bgColor: 'black', color: 'yellow' },\n\t\t\tvoidAttr: { bgColor: 'black', color: 'yellow' },\n\t\t\tplaceholder: options.placeholder\n\t\t\t\t? chalk.italic.black(options.placeholder)\n\t\t\t\t: undefined,\n\t\t\tplaceholderHasMarkup: true,\n\t\t\tprompt: {\n\t\t\t\tcontent: options.label ? `${options.label} > ` : undefined,\n\t\t\t\tcontentHasMarkup: true,\n\t\t\t},\n\t\t\tcancelable: true,\n\t\t\t...rest,\n\t\t\t...frame,\n\t\t})\n\n\t\tthis.input.__widget = this\n\t\tthis.input.on('submit', this.handleSubmit.bind(this))\n\t\tthis.input.on('cancel', this.handleCancel.bind(this))\n\n\t\tthis.calculateSizeLockDeltas()\n\t}\n\n\tpublic setFrame(frame: WidgetFrame) {\n\t\tconst oldFrame = this.getFrame()\n\t\tconst newFrame = widgetUtil.buildFrame(frame, this.parent)\n\n\t\tthis.input.setSizeAndPosition({\n\t\t\tx: newFrame.left ?? oldFrame.left,\n\t\t\ty: newFrame.top ?? oldFrame.top,\n\t\t\twidth: newFrame.width ?? oldFrame.width,\n\t\t\theight: newFrame.height ?? oldFrame.height,\n\t\t})\n\n\t\tthis.input.draw()\n\t}\n\n\tprivate async handleCancel() {\n\t\tawait (this as InputWidget).emit('cancel')\n\t}\n\n\tprivate async handleSubmit() {\n\t\tawait (this as InputWidget).emit('submit', {\n\t\t\tvalue: this.getValue(),\n\t\t})\n\t}\n\n\tpublic getValue(): string | undefined {\n\t\treturn this.input.getValue()\n\t}\n\n\tpublic setValue(value: string): void {\n\t\tthis.input.setContent(value)\n\t}\n\n\tpublic getTermKitElement() {\n\t\treturn this.input\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TkLayoutWidget.js","names":["termKit","terminal_kit","TkLayoutWidget","options","mappedOptions","termKitUtil","mapWidgetOptionsToTermKitOptions","parent","layout","SchemaError","code","parameters","Layout","__widget","off","onParentResize","calculateSizeLockDeltas","zChildren","map","child","TkLayoutCellWidget","term","termKitElement","left","computed","xmin","top","ymin","width","height","destroy","frame","calculated","buildFrame","def","layoutDef","heightPercent","handleResize","computeBoundingBoxes","draw","sizeLockedChildren","rows","layoutRows","termKitRowsToLayoutRows","row","mapTermKitOptionsToWidgetOptions","columns","termKitColumnsToLayoutColumns","col","push","widgetColumnsToTermKitColumns","rowIdx","splice","columnIdx","Error","column","TkBaseWidget"],"sources":["../../../src/widgets/terminalKit/TkLayoutWidget.ts"],"sourcesContent":["import { SchemaError } from '@sprucelabs/schema'\nimport terminal_kit from 'terminal-kit'\nimport {\n\tLayoutColumn,\n\tLayoutRow,\n\tLayoutWidget,\n\tLayoutWidgetOptions,\n} from '../types/layout.types'\nimport { WidgetFrameAttribute, WidgetFrame } from '../types/widgets.types'\nimport termKitUtil from './termKit.utility'\nimport TkBaseWidget, { TkWidgetOptions } from './TkBaseWidget'\nimport TkLayoutCellWidget from './TkLayoutCellWidget'\nconst termKit = terminal_kit as any\n\nexport default class TkLayoutWidget\n\textends TkBaseWidget\n\timplements LayoutWidget\n{\n\tpublic readonly type = 'layout'\n\n\tprivate layout: any\n\n\tpublic constructor(options: TkWidgetOptions & LayoutWidgetOptions) {\n\t\tsuper(options)\n\n\t\tconst mappedOptions = termKitUtil.mapWidgetOptionsToTermKitOptions(options)\n\n\t\tconst { parent, ...layout } = mappedOptions\n\n\t\tif (!parent) {\n\t\t\tthrow new SchemaError({\n\t\t\t\tcode: 'MISSING_PARAMETERS',\n\t\t\t\tparameters: ['parent'],\n\t\t\t})\n\t\t}\n\n\t\tthis.layout = new termKit.Layout({\n\t\t\tparent,\n\t\t\tlayout,\n\t\t})\n\n\t\tthis.layout.__widget = this\n\t\tthis.layout.off('parentResize', this.layout.onParentResize)\n\n\t\tthis.calculateSizeLockDeltas()\n\t}\n\n\tpublic getChildren() {\n\t\treturn this.layout.zChildren.map((child: any) => {\n\t\t\treturn new TkLayoutCellWidget({\n\t\t\t\tterm: this.term,\n\t\t\t\ttermKitElement: child,\n\t\t\t\tparent: this,\n\t\t\t})\n\t\t})\n\t}\n\n\tpublic getTermKitElement() {\n\t\treturn this.layout\n\t}\n\n\tpublic getFrame() {\n\t\treturn {\n\t\t\tleft: this.layout.computed.xmin,\n\t\t\ttop: this.layout.computed.ymin,\n\t\t\twidth: this.layout.computed.width,\n\t\t\theight: this.layout.computed.height,\n\t\t}\n\t}\n\n\tpublic async destroy() {\n\t\tthis.layout.destroy()\n\t}\n\n\tpublic setFrame(frame: Partial<WidgetFrame>) {\n\t\tconst calculated = termKitUtil.buildFrame(frame, this.parent)\n\t\tconst def = this.layout.layoutDef\n\n\t\tdelete def.height\n\t\tdelete def.heightPercent\n\n\t\tthis.layout.layoutDef.height = calculated.height\n\n\t\tthis.handleResize()\n\t}\n\n\tprivate handleResize() {\n\t\tthis.layout.computeBoundingBoxes()\n\t\tthis.layout.draw()\n\n\t\tthis.sizeLockedChildren()\n\t}\n\n\tpublic getRows(): LayoutRow[] {\n\t\tconst rows = this.layout.layoutDef.rows\n\t\tconst layoutRows = this.termKitRowsToLayoutRows(rows)\n\n\t\treturn layoutRows\n\t}\n\n\tprivate termKitRowsToLayoutRows(rows: any): LayoutRow[] {\n\t\treturn rows.map((row: any) => ({\n\t\t\t...termKitUtil.mapTermKitOptionsToWidgetOptions(row),\n\t\t\tcolumns: this.termKitColumnsToLayoutColumns(row.columns),\n\t\t}))\n\t}\n\n\tprivate termKitColumnsToLayoutColumns(columns: any) {\n\t\treturn columns.map((col: any) =>\n\t\t\ttermKitUtil.mapTermKitOptionsToWidgetOptions(col)\n\t\t)\n\t}\n\n\tpublic addRow(row: LayoutRow): void {\n\t\tthis.layout.layoutDef.rows.push({\n\t\t\t...termKitUtil.mapWidgetOptionsToTermKitOptions(row),\n\t\t\tcolumns: this.widgetColumnsToTermKitColumns(row.columns),\n\t\t})\n\t}\n\n\tpublic removeRow(rowIdx: number): void {\n\t\tthis.layout.layoutDef.rows.splice(rowIdx, 1)\n\t}\n\n\tpublic removeColumn(rowIdx: number, columnIdx: number): void {\n\t\tconst row = this.layout.layoutDef.rows[rowIdx]\n\t\tif (row) {\n\t\t\trow.columns.splice(columnIdx, 1)\n\t\t} else {\n\t\t\tthrow new Error(\n\t\t\t\t`Can't add remove column because row at index ${rowIdx} does not exist.`\n\t\t\t)\n\t\t}\n\t}\n\n\tpublic addColumn(rowIdx: number, column: LayoutColumn): void {\n\t\tif (this.layout.layoutDef.rows[rowIdx]) {\n\t\t\tthis.layout.layoutDef.rows[rowIdx].columns.push({\n\t\t\t\t...termKitUtil.mapWidgetOptionsToTermKitOptions(column),\n\t\t\t})\n\t\t} else {\n\t\t\tthrow new Error(\n\t\t\t\t`Can't add column because row at index ${rowIdx} does not exist.`\n\t\t\t)\n\t\t}\n\t}\n\n\tpublic setColumnWidth(options: {\n\t\trowIdx: number\n\t\tcolumnIdx: number\n\t\twidth: WidgetFrameAttribute\n\t}): void {\n\t\tconst { rowIdx, columnIdx, width } = options\n\n\t\tconst col = this.layout.layoutDef.rows[rowIdx]?.columns[columnIdx]\n\t\tif (col) {\n\t\t\tthis.layout.layoutDef.rows[rowIdx].columns[columnIdx] = {\n\t\t\t\t...col,\n\t\t\t\t...termKitUtil.mapWidgetOptionsToTermKitOptions({ width }),\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new Error(\n\t\t\t\t`Can't add set column width because column ${columnIdx} at row ${rowIdx} does not exist.`\n\t\t\t)\n\t\t}\n\t}\n\n\tprivate widgetColumnsToTermKitColumns(columns: LayoutColumn[]) {\n\t\treturn columns.map((column) => ({\n\t\t\t...termKitUtil.mapWidgetOptionsToTermKitOptions(column),\n\t\t}))\n\t}\n\n\tpublic setRowHeight(rowIdx: number, height: WidgetFrameAttribute): void {\n\t\tthis.layout.layoutDef.rows[rowIdx] = {\n\t\t\t...this.layout.layoutDef.rows[rowIdx],\n\t\t\t...termKitUtil.mapWidgetOptionsToTermKitOptions({ height }),\n\t\t}\n\t}\n\n\tpublic updateLayout() {\n\t\tthis.handleResize()\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAQA;;AACA;;AACA;;;;;;;;;;;;AACA,IAAMA,OAAO,GAAGC,uBAAhB;;IAEqBC,c;;;;;EAQpB,wBAAmBC,OAAnB,EAAmE;IAAA;;IAAA;IAClE,0BAAMA,OAAN;IADkE,yFAJ5C,QAI4C;IAAA;;IAGlE,IAAMC,aAAa,GAAGC,
|
|
1
|
+
{"version":3,"file":"TkLayoutWidget.js","names":["termKit","terminal_kit","TkLayoutWidget","options","mappedOptions","termKitUtil","mapWidgetOptionsToTermKitOptions","parent","layout","SchemaError","code","parameters","Layout","__widget","off","onParentResize","calculateSizeLockDeltas","zChildren","map","child","TkLayoutCellWidget","term","termKitElement","left","computed","xmin","top","ymin","width","height","destroy","frame","calculated","buildFrame","def","layoutDef","heightPercent","handleResize","computeBoundingBoxes","draw","sizeLockedChildren","rows","layoutRows","termKitRowsToLayoutRows","row","mapTermKitOptionsToWidgetOptions","columns","termKitColumnsToLayoutColumns","col","push","widgetColumnsToTermKitColumns","rowIdx","splice","columnIdx","Error","column","TkBaseWidget"],"sources":["../../../src/widgets/terminalKit/TkLayoutWidget.ts"],"sourcesContent":["import { SchemaError } from '@sprucelabs/schema'\nimport terminal_kit from 'terminal-kit'\nimport {\n\tLayoutColumn,\n\tLayoutRow,\n\tLayoutWidget,\n\tLayoutWidgetOptions,\n} from '../types/layout.types'\nimport { WidgetFrameAttribute, WidgetFrame } from '../types/widgets.types'\nimport termKitUtil from './termKit.utility'\nimport TkBaseWidget, { TkWidgetOptions } from './TkBaseWidget'\nimport TkLayoutCellWidget from './TkLayoutCellWidget'\nconst termKit = terminal_kit as any\n\nexport default class TkLayoutWidget\n\textends TkBaseWidget\n\timplements LayoutWidget\n{\n\tpublic readonly type = 'layout'\n\n\tprivate layout: any\n\n\tpublic constructor(options: TkWidgetOptions & LayoutWidgetOptions) {\n\t\tsuper(options)\n\n\t\tconst mappedOptions = termKitUtil.mapWidgetOptionsToTermKitOptions(options)\n\n\t\tconst { parent, ...layout } = mappedOptions\n\n\t\tif (!parent) {\n\t\t\tthrow new SchemaError({\n\t\t\t\tcode: 'MISSING_PARAMETERS',\n\t\t\t\tparameters: ['parent'],\n\t\t\t})\n\t\t}\n\n\t\tthis.layout = new termKit.Layout({\n\t\t\tparent,\n\t\t\tlayout,\n\t\t})\n\n\t\tthis.layout.__widget = this\n\t\tthis.layout.off('parentResize', this.layout.onParentResize)\n\n\t\tthis.calculateSizeLockDeltas()\n\t}\n\n\tpublic getChildren() {\n\t\treturn this.layout.zChildren.map((child: any) => {\n\t\t\treturn new TkLayoutCellWidget({\n\t\t\t\tterm: this.term,\n\t\t\t\ttermKitElement: child,\n\t\t\t\tparent: this,\n\t\t\t})\n\t\t})\n\t}\n\n\tpublic getTermKitElement() {\n\t\treturn this.layout\n\t}\n\n\tpublic getFrame() {\n\t\treturn {\n\t\t\tleft: this.layout.computed.xmin,\n\t\t\ttop: this.layout.computed.ymin,\n\t\t\twidth: this.layout.computed.width,\n\t\t\theight: this.layout.computed.height,\n\t\t}\n\t}\n\n\tpublic async destroy() {\n\t\tthis.layout.destroy()\n\t}\n\n\tpublic setFrame(frame: Partial<WidgetFrame>) {\n\t\tconst calculated = termKitUtil.buildFrame(frame, this.parent)\n\t\tconst def = this.layout.layoutDef\n\n\t\tdelete def.height\n\t\tdelete def.heightPercent\n\n\t\tthis.layout.layoutDef.height = calculated.height\n\n\t\tthis.handleResize()\n\t}\n\n\tprivate handleResize() {\n\t\tthis.layout.computeBoundingBoxes()\n\t\tthis.layout.draw()\n\n\t\tthis.sizeLockedChildren()\n\t}\n\n\tpublic getRows(): LayoutRow[] {\n\t\tconst rows = this.layout.layoutDef.rows\n\t\tconst layoutRows = this.termKitRowsToLayoutRows(rows)\n\n\t\treturn layoutRows\n\t}\n\n\tprivate termKitRowsToLayoutRows(rows: any): LayoutRow[] {\n\t\treturn rows.map((row: any) => ({\n\t\t\t...termKitUtil.mapTermKitOptionsToWidgetOptions(row),\n\t\t\tcolumns: this.termKitColumnsToLayoutColumns(row.columns),\n\t\t}))\n\t}\n\n\tprivate termKitColumnsToLayoutColumns(columns: any) {\n\t\treturn columns.map((col: any) =>\n\t\t\ttermKitUtil.mapTermKitOptionsToWidgetOptions(col)\n\t\t)\n\t}\n\n\tpublic addRow(row: LayoutRow): void {\n\t\tthis.layout.layoutDef.rows.push({\n\t\t\t...termKitUtil.mapWidgetOptionsToTermKitOptions(row),\n\t\t\tcolumns: this.widgetColumnsToTermKitColumns(row.columns),\n\t\t})\n\t}\n\n\tpublic removeRow(rowIdx: number): void {\n\t\tthis.layout.layoutDef.rows.splice(rowIdx, 1)\n\t}\n\n\tpublic removeColumn(rowIdx: number, columnIdx: number): void {\n\t\tconst row = this.layout.layoutDef.rows[rowIdx]\n\t\tif (row) {\n\t\t\trow.columns.splice(columnIdx, 1)\n\t\t} else {\n\t\t\tthrow new Error(\n\t\t\t\t`Can't add remove column because row at index ${rowIdx} does not exist.`\n\t\t\t)\n\t\t}\n\t}\n\n\tpublic addColumn(rowIdx: number, column: LayoutColumn): void {\n\t\tif (this.layout.layoutDef.rows[rowIdx]) {\n\t\t\tthis.layout.layoutDef.rows[rowIdx].columns.push({\n\t\t\t\t...termKitUtil.mapWidgetOptionsToTermKitOptions(column),\n\t\t\t})\n\t\t} else {\n\t\t\tthrow new Error(\n\t\t\t\t`Can't add column because row at index ${rowIdx} does not exist.`\n\t\t\t)\n\t\t}\n\t}\n\n\tpublic setColumnWidth(options: {\n\t\trowIdx: number\n\t\tcolumnIdx: number\n\t\twidth: WidgetFrameAttribute\n\t}): void {\n\t\tconst { rowIdx, columnIdx, width } = options\n\n\t\tconst col = this.layout.layoutDef.rows[rowIdx]?.columns[columnIdx]\n\t\tif (col) {\n\t\t\tthis.layout.layoutDef.rows[rowIdx].columns[columnIdx] = {\n\t\t\t\t...col,\n\t\t\t\t...termKitUtil.mapWidgetOptionsToTermKitOptions({ width }),\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new Error(\n\t\t\t\t`Can't add set column width because column ${columnIdx} at row ${rowIdx} does not exist.`\n\t\t\t)\n\t\t}\n\t}\n\n\tprivate widgetColumnsToTermKitColumns(columns: LayoutColumn[]) {\n\t\treturn columns.map((column) => ({\n\t\t\t...termKitUtil.mapWidgetOptionsToTermKitOptions(column),\n\t\t}))\n\t}\n\n\tpublic setRowHeight(rowIdx: number, height: WidgetFrameAttribute): void {\n\t\tthis.layout.layoutDef.rows[rowIdx] = {\n\t\t\t...this.layout.layoutDef.rows[rowIdx],\n\t\t\t...termKitUtil.mapWidgetOptionsToTermKitOptions({ height }),\n\t\t}\n\t}\n\n\tpublic updateLayout() {\n\t\tthis.handleResize()\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TkMenuBarWidget.js","names":["termKit","terminal_kit","TkMenuBarWidget","options","frame","termKitUtil","buildFrame","parent","items","mapItemsToTkItems","menu","DropDownMenu","getTermKitElement","separator","backgroundAttr","bgColor","color","buttonBlurAttr","buttonFocusAttr","separatorAttr","calculateSizeLockDeltas","__widget","on","handleMenuSubmit","bind","value","text","buttonItem","getButtonByValue","buttons","itemsDef","item","subItem","content","buildItemText","Error","setContent","button","def","clearColumnMenu","emit","map","label","topSubmit","length","undefined","TkBaseWidget"],"sources":["../../../src/widgets/terminalKit/TkMenuBarWidget.ts"],"sourcesContent":["import terminal_kit from 'terminal-kit'\nconst termKit = terminal_kit as any\nimport {\n\tMenuBarWidget,\n\tMenuBarWidgetItem,\n\tMenuBarWidgetOptions,\n} from '../types/menuBar.types'\nimport termKitUtil from './termKit.utility'\nimport TkBaseWidget, { TkWidgetOptions } from './TkBaseWidget'\n\nexport default class TkMenuBarWidget\n\textends TkBaseWidget\n\timplements MenuBarWidget\n{\n\tpublic readonly type = 'menuBar'\n\n\tprivate menu: any\n\n\tpublic constructor(options: TkWidgetOptions & MenuBarWidgetOptions) {\n\t\tsuper(options)\n\n\t\tconst frame = termKitUtil.buildFrame(options, options.parent)\n\t\tconst items = this.mapItemsToTkItems(options.items)\n\n\t\tthis.menu = new termKit.DropDownMenu({\n\t\t\tparent: options.parent.getTermKitElement(),\n\t\t\tseparator: '|',\n\t\t\titems,\n\t\t\tbackgroundAttr: { bgColor: 'black', color: 'white' },\n\t\t\tbuttonBlurAttr: { bgColor: 'black', color: 'yellow' },\n\t\t\tbuttonFocusAttr: { bgColor: 'yellow', color: 'black' },\n\t\t\tseparatorAttr: { bgColor: 'black', color: 'yellow' },\n\t\t\t...frame,\n\t\t})\n\n\t\tthis.calculateSizeLockDeltas()\n\n\t\tthis.menu.__widget = this\n\t\tthis.menu.on('submit', this.handleMenuSubmit.bind(this))\n\t}\n\n\tpublic setTextForItem(value: string, text: string): void {\n\t\tlet buttonItem = this.getButtonByValue(value, this.menu.buttons)\n\n\t\tif (!buttonItem) {\n\t\t\tfor (const item of this.menu.itemsDef) {\n\t\t\t\tfor (const subItem of item.items ?? []) {\n\t\t\t\t\tif (subItem.value === value) {\n\t\t\t\t\t\tsubItem.content = this.buildItemText(text)\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (!buttonItem) {\n\t\t\tthrow new Error(`No menu item with value of ${value}`)\n\t\t}\n\n\t\tbuttonItem.setContent(this.buildItemText(text), true)\n\t}\n\n\tprivate getButtonByValue(value: string, buttons: any[]) {\n\t\tlet button: any\n\t\tfor (const button of buttons) {\n\t\t\tif (button.def.value === value) {\n\t\t\t\treturn button\n\t\t\t}\n\t\t}\n\n\t\treturn button\n\t}\n\n\tprivate handleMenuSubmit(value: string) {\n\t\tthis.menu.clearColumnMenu()\n\t\tvoid (this as MenuBarWidget).emit('select', { value })\n\t}\n\n\tpublic getTermKitElement() {\n\t\treturn this.menu\n\t}\n\n\tprivate mapItemsToTkItems(items: MenuBarWidgetItem[]): any {\n\t\treturn items.map((item) => ({\n\t\t\tvalue: item.value,\n\t\t\tcontent: this.buildItemText(item.label),\n\t\t\ttopSubmit: !item.items || item.items.length === 0,\n\t\t\titems: item.items ? this.mapItemsToTkItems(item.items) : undefined,\n\t\t}))\n\t}\n\n\tprivate buildItemText(text: string): string {\n\t\treturn ` ${text} `\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAOA;;AACA;;;;;;;;;;;;;;;;AAPA,IAAMA,OAAO,GAAGC,uBAAhB;;IASqBC,e;;;;;EAQpB,yBAAmBC,OAAnB,EAAoE;IAAA;;IAAA;IACnE,0BAAMA,OAAN;IADmE,yFAJ7C,SAI6C;IAAA;;IAGnE,IAAMC,KAAK,GAAGC,
|
|
1
|
+
{"version":3,"file":"TkMenuBarWidget.js","names":["termKit","terminal_kit","TkMenuBarWidget","options","frame","termKitUtil","buildFrame","parent","items","mapItemsToTkItems","menu","DropDownMenu","getTermKitElement","separator","backgroundAttr","bgColor","color","buttonBlurAttr","buttonFocusAttr","separatorAttr","calculateSizeLockDeltas","__widget","on","handleMenuSubmit","bind","value","text","buttonItem","getButtonByValue","buttons","itemsDef","item","subItem","content","buildItemText","Error","setContent","button","def","clearColumnMenu","emit","map","label","topSubmit","length","undefined","TkBaseWidget"],"sources":["../../../src/widgets/terminalKit/TkMenuBarWidget.ts"],"sourcesContent":["import terminal_kit from 'terminal-kit'\nconst termKit = terminal_kit as any\nimport {\n\tMenuBarWidget,\n\tMenuBarWidgetItem,\n\tMenuBarWidgetOptions,\n} from '../types/menuBar.types'\nimport termKitUtil from './termKit.utility'\nimport TkBaseWidget, { TkWidgetOptions } from './TkBaseWidget'\n\nexport default class TkMenuBarWidget\n\textends TkBaseWidget\n\timplements MenuBarWidget\n{\n\tpublic readonly type = 'menuBar'\n\n\tprivate menu: any\n\n\tpublic constructor(options: TkWidgetOptions & MenuBarWidgetOptions) {\n\t\tsuper(options)\n\n\t\tconst frame = termKitUtil.buildFrame(options, options.parent)\n\t\tconst items = this.mapItemsToTkItems(options.items)\n\n\t\tthis.menu = new termKit.DropDownMenu({\n\t\t\tparent: options.parent.getTermKitElement(),\n\t\t\tseparator: '|',\n\t\t\titems,\n\t\t\tbackgroundAttr: { bgColor: 'black', color: 'white' },\n\t\t\tbuttonBlurAttr: { bgColor: 'black', color: 'yellow' },\n\t\t\tbuttonFocusAttr: { bgColor: 'yellow', color: 'black' },\n\t\t\tseparatorAttr: { bgColor: 'black', color: 'yellow' },\n\t\t\t...frame,\n\t\t})\n\n\t\tthis.calculateSizeLockDeltas()\n\n\t\tthis.menu.__widget = this\n\t\tthis.menu.on('submit', this.handleMenuSubmit.bind(this))\n\t}\n\n\tpublic setTextForItem(value: string, text: string): void {\n\t\tlet buttonItem = this.getButtonByValue(value, this.menu.buttons)\n\n\t\tif (!buttonItem) {\n\t\t\tfor (const item of this.menu.itemsDef) {\n\t\t\t\tfor (const subItem of item.items ?? []) {\n\t\t\t\t\tif (subItem.value === value) {\n\t\t\t\t\t\tsubItem.content = this.buildItemText(text)\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (!buttonItem) {\n\t\t\tthrow new Error(`No menu item with value of ${value}`)\n\t\t}\n\n\t\tbuttonItem.setContent(this.buildItemText(text), true)\n\t}\n\n\tprivate getButtonByValue(value: string, buttons: any[]) {\n\t\tlet button: any\n\t\tfor (const button of buttons) {\n\t\t\tif (button.def.value === value) {\n\t\t\t\treturn button\n\t\t\t}\n\t\t}\n\n\t\treturn button\n\t}\n\n\tprivate handleMenuSubmit(value: string) {\n\t\tthis.menu.clearColumnMenu()\n\t\tvoid (this as MenuBarWidget).emit('select', { value })\n\t}\n\n\tpublic getTermKitElement() {\n\t\treturn this.menu\n\t}\n\n\tprivate mapItemsToTkItems(items: MenuBarWidgetItem[]): any {\n\t\treturn items.map((item) => ({\n\t\t\tvalue: item.value,\n\t\t\tcontent: this.buildItemText(item.label),\n\t\t\ttopSubmit: !item.items || item.items.length === 0,\n\t\t\titems: item.items ? this.mapItemsToTkItems(item.items) : undefined,\n\t\t}))\n\t}\n\n\tprivate buildItemText(text: string): string {\n\t\treturn ` ${text} `\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TkPopupWidget.js","names":["termKit","terminal_kit","TkPopupWidget","options","shouldLockHeightWithParent","shouldLockWidthWithParent","parent","rest","frame","termKitUtil","buildFrame","popup","Window","getTermKitElement","undefined","movable","__widget","left","outputDst","x","top","y","width","inputWidth","height","inputHeight","TkBaseWidget"],"sources":["../../../src/widgets/terminalKit/TkPopupWidget.ts"],"sourcesContent":["import terminal_kit from 'terminal-kit'\nimport { PopupWidget, PopupWidgetOptions } from '../types/popup.types'\nimport termKitUtil from './termKit.utility'\nimport TkBaseWidget, { TkWidgetOptions } from './TkBaseWidget'\nconst termKit = terminal_kit as any\n\nexport default class TkPopupWidget extends TkBaseWidget implements PopupWidget {\n\tprivate popup: any\n\n\tpublic readonly type = 'popup'\n\n\tpublic constructor(\n\t\toptions: TkWidgetOptions & PopupWidgetOptions & { termKitElement: any }\n\t) {\n\t\tsuper({\n\t\t\tshouldLockHeightWithParent: true,\n\t\t\tshouldLockWidthWithParent: true,\n\t\t\t...options,\n\t\t})\n\n\t\tconst { parent, ...rest } = options\n\n\t\tconst frame = termKitUtil.buildFrame(options, parent)\n\n\t\tthis.popup = new termKit.Window({\n\t\t\tparent: parent ? parent.getTermKitElement() : undefined,\n\t\t\tmovable: true,\n\t\t\t...rest,\n\t\t\t...frame,\n\t\t})\n\n\t\tthis.popup.__widget = this\n\t}\n\n\tpublic getTermKitElement() {\n\t\treturn this.popup\n\t}\n\n\tpublic getFrame() {\n\t\treturn {\n\t\t\tleft: this.popup.outputDst.x,\n\t\t\ttop: this.popup.outputDst.y,\n\t\t\twidth: this.popup.inputWidth,\n\t\t\theight: this.popup.inputHeight,\n\t\t}\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAEA;;AACA;;;;;;;;;;;;AACA,IAAMA,OAAO,GAAGC,uBAAhB;;IAEqBC,a;;;;;EAKpB,uBACCC,OADD,EAEE;IAAA;;IAAA;IACD;MACCC,0BAA0B,EAAE,IAD7B;MAECC,yBAAyB,EAAE;IAF5B,GAGIF,OAHJ;IADC;IAAA,yFAJqB,OAIrB;IAOD,IAAQG,MAAR,GAA4BH,OAA5B,CAAQG,MAAR;IAAA,IAAmBC,IAAnB,6CAA4BJ,OAA5B;;IAEA,IAAMK,KAAK,GAAGC,
|
|
1
|
+
{"version":3,"file":"TkPopupWidget.js","names":["termKit","terminal_kit","TkPopupWidget","options","shouldLockHeightWithParent","shouldLockWidthWithParent","parent","rest","frame","termKitUtil","buildFrame","popup","Window","getTermKitElement","undefined","movable","__widget","left","outputDst","x","top","y","width","inputWidth","height","inputHeight","TkBaseWidget"],"sources":["../../../src/widgets/terminalKit/TkPopupWidget.ts"],"sourcesContent":["import terminal_kit from 'terminal-kit'\nimport { PopupWidget, PopupWidgetOptions } from '../types/popup.types'\nimport termKitUtil from './termKit.utility'\nimport TkBaseWidget, { TkWidgetOptions } from './TkBaseWidget'\nconst termKit = terminal_kit as any\n\nexport default class TkPopupWidget extends TkBaseWidget implements PopupWidget {\n\tprivate popup: any\n\n\tpublic readonly type = 'popup'\n\n\tpublic constructor(\n\t\toptions: TkWidgetOptions & PopupWidgetOptions & { termKitElement: any }\n\t) {\n\t\tsuper({\n\t\t\tshouldLockHeightWithParent: true,\n\t\t\tshouldLockWidthWithParent: true,\n\t\t\t...options,\n\t\t})\n\n\t\tconst { parent, ...rest } = options\n\n\t\tconst frame = termKitUtil.buildFrame(options, parent)\n\n\t\tthis.popup = new termKit.Window({\n\t\t\tparent: parent ? parent.getTermKitElement() : undefined,\n\t\t\tmovable: true,\n\t\t\t...rest,\n\t\t\t...frame,\n\t\t})\n\n\t\tthis.popup.__widget = this\n\t}\n\n\tpublic getTermKitElement() {\n\t\treturn this.popup\n\t}\n\n\tpublic getFrame() {\n\t\treturn {\n\t\t\tleft: this.popup.outputDst.x,\n\t\t\ttop: this.popup.outputDst.y,\n\t\t\twidth: this.popup.inputWidth,\n\t\t\theight: this.popup.inputHeight,\n\t\t}\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAEA;;AACA;;;;;;;;;;;;AACA,IAAMA,OAAO,GAAGC,uBAAhB;;IAEqBC,a;;;;;EAKpB,uBACCC,OADD,EAEE;IAAA;;IAAA;IACD;MACCC,0BAA0B,EAAE,IAD7B;MAECC,yBAAyB,EAAE;IAF5B,GAGIF,OAHJ;IADC;IAAA,yFAJqB,OAIrB;IAOD,IAAQG,MAAR,GAA4BH,OAA5B,CAAQG,MAAR;IAAA,IAAmBC,IAAnB,6CAA4BJ,OAA5B;;IAEA,IAAMK,KAAK,GAAGC,mBAAA,CAAYC,UAAZ,CAAuBP,OAAvB,EAAgCG,MAAhC,CAAd;;IAEA,MAAKK,KAAL,GAAa,IAAIX,OAAO,CAACY,MAAZ;MACZN,MAAM,EAAEA,MAAM,GAAGA,MAAM,CAACO,iBAAP,EAAH,GAAgCC,SADlC;MAEZC,OAAO,EAAE;IAFG,GAGTR,IAHS,GAITC,KAJS,EAAb;IAOA,MAAKG,KAAL,CAAWK,QAAX;IAlBC;EAmBD;;;;WAED,6BAA2B;MAC1B,OAAO,KAAKL,KAAZ;IACA;;;WAED,oBAAkB;MACjB,OAAO;QACNM,IAAI,EAAE,KAAKN,KAAL,CAAWO,SAAX,CAAqBC,CADrB;QAENC,GAAG,EAAE,KAAKT,KAAL,CAAWO,SAAX,CAAqBG,CAFpB;QAGNC,KAAK,EAAE,KAAKX,KAAL,CAAWY,UAHZ;QAINC,MAAM,EAAE,KAAKb,KAAL,CAAWc;MAJb,CAAP;IAMA;;;EAvCyCC,yB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TkTextWidget.js","names":["termKit","terminal_kit","TkTextWidget","options","parent","text","isScrollEnabled","enableScroll","shouldAutoScrollWhenAppendingContent","rest","frame","termKitUtil","buildFrame","TextBox","getTermKitElement","undefined","scrollable","vScrollBar","hScrollBar","wordWrap","content","mapWidgetOptionsToTermKitOptions","calculateSizeLockDeltas","__widget","on","handleMouseDown","bind","position","x","y","line","split","emit","row","column","oldFrame","getFrame","newFrame","widgetUtil","setSizeAndPosition","left","top","width","height","draw","scrollDistance","getScrollY","contentHeight","textBuffer","cy","visibleHeight","textAreaHeight","maxScrollDistance","Math","max","isScrolledAllTheWay","scrollY","scrollX","getText","isLogScrolledAllTheWay","logSelection","selectionRegion","markupType","setContent","setSelectionRegion","scrollToBottom","match","exec","TkBaseWidget"],"sources":["../../../src/widgets/terminalKit/TkTextWidget.ts"],"sourcesContent":["import terminal_kit from 'terminal-kit'\nimport { TextWidget, TextWidgetOptions } from '../types/text.types'\nimport { WidgetFrame } from '../types/widgets.types'\nimport widgetUtil from '../widget.utilities'\nimport termKitUtil from './termKit.utility'\nimport TkBaseWidget, { TkWidgetOptions } from './TkBaseWidget'\nconst termKit = terminal_kit as any\n\nexport default class TkTextWidget extends TkBaseWidget implements TextWidget {\n\tpublic readonly type = 'text'\n\n\tprivate text: any\n\tprivate shouldAutoScrollWhenAppendingContent: boolean\n\n\tpublic constructor(options: TkWidgetOptions & TextWidgetOptions) {\n\t\tsuper(options)\n\n\t\tconst {\n\t\t\tparent,\n\t\t\ttext,\n\t\t\tisScrollEnabled: enableScroll = false,\n\t\t\tshouldAutoScrollWhenAppendingContent = true,\n\t\t\t...rest\n\t\t} = options\n\n\t\tthis.shouldAutoScrollWhenAppendingContent =\n\t\t\tshouldAutoScrollWhenAppendingContent\n\n\t\tconst frame = termKitUtil.buildFrame(options, parent)\n\n\t\tthis.text = new termKit.TextBox({\n\t\t\tparent: parent ? parent.getTermKitElement() : undefined,\n\t\t\tscrollable: enableScroll,\n\t\t\tvScrollBar: enableScroll,\n\t\t\thScrollBar: enableScroll && !rest.wordWrap,\n\t\t\tcontent: text,\n\t\t\twordWrap: true,\n\t\t\t...termKitUtil.mapWidgetOptionsToTermKitOptions(rest),\n\t\t\t...frame,\n\t\t})\n\n\t\tthis.calculateSizeLockDeltas()\n\n\t\tthis.text.__widget = this\n\t\tthis.text.on('click', this.handleMouseDown.bind(this))\n\t}\n\n\tprivate async handleMouseDown(position: { x: number; y: number }) {\n\t\tconst { x, y } = position\n\n\t\tconst line = this.text.content.split('\\n')[y]\n\n\t\tawait (this as TextWidget).emit('click', {\n\t\t\ttext: line,\n\t\t\trow: y,\n\t\t\tcolumn: x,\n\t\t})\n\t}\n\n\tpublic getTermKitElement() {\n\t\treturn this.text\n\t}\n\n\tpublic setFrame(frame: WidgetFrame) {\n\t\tconst oldFrame = this.getFrame()\n\t\tconst newFrame = widgetUtil.buildFrame(frame, this.parent)\n\n\t\tthis.text.setSizeAndPosition({\n\t\t\tx: newFrame.left ?? oldFrame.left,\n\t\t\ty: newFrame.top ?? oldFrame.top,\n\t\t\twidth: newFrame.width ?? oldFrame.width,\n\t\t\theight: newFrame.height ?? oldFrame.height,\n\t\t})\n\t\tthis.text.draw()\n\t}\n\n\tpublic getText(): string {\n\t\treturn this.text.content\n\t}\n\n\tprivate isLogScrolledAllTheWay() {\n\t\tconst scrollDistance = this.getScrollY() * -1\n\t\tconst contentHeight = this.text.textBuffer.cy\n\t\tconst visibleHeight = this.text.textAreaHeight\n\t\tconst maxScrollDistance =\n\t\t\tMath.max(contentHeight, visibleHeight) - visibleHeight\n\t\tconst isScrolledAllTheWay = scrollDistance >= maxScrollDistance\n\n\t\treturn isScrolledAllTheWay\n\t}\n\n\tpublic getScrollY() {\n\t\treturn this.text.scrollY\n\t}\n\n\tpublic getScrollX() {\n\t\treturn this.text.scrollX\n\t}\n\n\tpublic setText(content: string): void {\n\t\tif (this.getText() === content) {\n\t\t\treturn\n\t\t}\n\n\t\tconst isScrolledAllTheWay = this.isLogScrolledAllTheWay()\n\t\tconst logSelection = this.text.textBuffer.selectionRegion\n\t\tconst markupType = this.markupType(content)\n\n\t\tthis.text.setContent(content, markupType)\n\n\t\tif (logSelection) {\n\t\t\tthis.text.textBuffer.setSelectionRegion(logSelection)\n\t\t}\n\n\t\tif (this.shouldAutoScrollWhenAppendingContent && isScrolledAllTheWay) {\n\t\t\tthis.text.scrollToBottom()\n\t\t}\n\t}\n\n\tprivate markupType(content: string) {\n\t\t// eslint-disable-next-line no-control-regex\n\t\tconst match = /\\x1b\\[([0-9;]+)m|(.[^\\x1b]+)/g.exec(content)\n\t\tconst markupType = match && match[1] ? 'ansi' : true\n\t\treturn markupType\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAGA;;AACA;;AACA;;;;;;;;;;;;AACA,IAAMA,OAAO,GAAGC,uBAAhB;;IAEqBC,Y;;;;;EAMpB,sBAAmBC,OAAnB,EAAiE;IAAA;;IAAA;IAChE,0BAAMA,OAAN;IADgE,yFAL1C,MAK0C;IAAA;IAAA;IAGhE,IACCC,MADD,GAMID,OANJ,CACCC,MADD;IAAA,IAECC,IAFD,GAMIF,OANJ,CAECE,IAFD;IAAA,4BAMIF,OANJ,CAGCG,eAHD;IAAA,IAGkBC,YAHlB,sCAGiC,KAHjC;IAAA,4BAMIJ,OANJ,CAICK,oCAJD;IAAA,IAICA,oCAJD,sCAIwC,IAJxC;IAAA,IAKIC,IALJ,6CAMIN,OANJ;IAQA,MAAKK,oCAAL,GACCA,oCADD;;IAGA,IAAME,KAAK,GAAGC,
|
|
1
|
+
{"version":3,"file":"TkTextWidget.js","names":["termKit","terminal_kit","TkTextWidget","options","parent","text","isScrollEnabled","enableScroll","shouldAutoScrollWhenAppendingContent","rest","frame","termKitUtil","buildFrame","TextBox","getTermKitElement","undefined","scrollable","vScrollBar","hScrollBar","wordWrap","content","mapWidgetOptionsToTermKitOptions","calculateSizeLockDeltas","__widget","on","handleMouseDown","bind","position","x","y","line","split","emit","row","column","oldFrame","getFrame","newFrame","widgetUtil","setSizeAndPosition","left","top","width","height","draw","scrollDistance","getScrollY","contentHeight","textBuffer","cy","visibleHeight","textAreaHeight","maxScrollDistance","Math","max","isScrolledAllTheWay","scrollY","scrollX","getText","isLogScrolledAllTheWay","logSelection","selectionRegion","markupType","setContent","setSelectionRegion","scrollToBottom","match","exec","TkBaseWidget"],"sources":["../../../src/widgets/terminalKit/TkTextWidget.ts"],"sourcesContent":["import terminal_kit from 'terminal-kit'\nimport { TextWidget, TextWidgetOptions } from '../types/text.types'\nimport { WidgetFrame } from '../types/widgets.types'\nimport widgetUtil from '../widget.utilities'\nimport termKitUtil from './termKit.utility'\nimport TkBaseWidget, { TkWidgetOptions } from './TkBaseWidget'\nconst termKit = terminal_kit as any\n\nexport default class TkTextWidget extends TkBaseWidget implements TextWidget {\n\tpublic readonly type = 'text'\n\n\tprivate text: any\n\tprivate shouldAutoScrollWhenAppendingContent: boolean\n\n\tpublic constructor(options: TkWidgetOptions & TextWidgetOptions) {\n\t\tsuper(options)\n\n\t\tconst {\n\t\t\tparent,\n\t\t\ttext,\n\t\t\tisScrollEnabled: enableScroll = false,\n\t\t\tshouldAutoScrollWhenAppendingContent = true,\n\t\t\t...rest\n\t\t} = options\n\n\t\tthis.shouldAutoScrollWhenAppendingContent =\n\t\t\tshouldAutoScrollWhenAppendingContent\n\n\t\tconst frame = termKitUtil.buildFrame(options, parent)\n\n\t\tthis.text = new termKit.TextBox({\n\t\t\tparent: parent ? parent.getTermKitElement() : undefined,\n\t\t\tscrollable: enableScroll,\n\t\t\tvScrollBar: enableScroll,\n\t\t\thScrollBar: enableScroll && !rest.wordWrap,\n\t\t\tcontent: text,\n\t\t\twordWrap: true,\n\t\t\t...termKitUtil.mapWidgetOptionsToTermKitOptions(rest),\n\t\t\t...frame,\n\t\t})\n\n\t\tthis.calculateSizeLockDeltas()\n\n\t\tthis.text.__widget = this\n\t\tthis.text.on('click', this.handleMouseDown.bind(this))\n\t}\n\n\tprivate async handleMouseDown(position: { x: number; y: number }) {\n\t\tconst { x, y } = position\n\n\t\tconst line = this.text.content.split('\\n')[y]\n\n\t\tawait (this as TextWidget).emit('click', {\n\t\t\ttext: line,\n\t\t\trow: y,\n\t\t\tcolumn: x,\n\t\t})\n\t}\n\n\tpublic getTermKitElement() {\n\t\treturn this.text\n\t}\n\n\tpublic setFrame(frame: WidgetFrame) {\n\t\tconst oldFrame = this.getFrame()\n\t\tconst newFrame = widgetUtil.buildFrame(frame, this.parent)\n\n\t\tthis.text.setSizeAndPosition({\n\t\t\tx: newFrame.left ?? oldFrame.left,\n\t\t\ty: newFrame.top ?? oldFrame.top,\n\t\t\twidth: newFrame.width ?? oldFrame.width,\n\t\t\theight: newFrame.height ?? oldFrame.height,\n\t\t})\n\t\tthis.text.draw()\n\t}\n\n\tpublic getText(): string {\n\t\treturn this.text.content\n\t}\n\n\tprivate isLogScrolledAllTheWay() {\n\t\tconst scrollDistance = this.getScrollY() * -1\n\t\tconst contentHeight = this.text.textBuffer.cy\n\t\tconst visibleHeight = this.text.textAreaHeight\n\t\tconst maxScrollDistance =\n\t\t\tMath.max(contentHeight, visibleHeight) - visibleHeight\n\t\tconst isScrolledAllTheWay = scrollDistance >= maxScrollDistance\n\n\t\treturn isScrolledAllTheWay\n\t}\n\n\tpublic getScrollY() {\n\t\treturn this.text.scrollY\n\t}\n\n\tpublic getScrollX() {\n\t\treturn this.text.scrollX\n\t}\n\n\tpublic setText(content: string): void {\n\t\tif (this.getText() === content) {\n\t\t\treturn\n\t\t}\n\n\t\tconst isScrolledAllTheWay = this.isLogScrolledAllTheWay()\n\t\tconst logSelection = this.text.textBuffer.selectionRegion\n\t\tconst markupType = this.markupType(content)\n\n\t\tthis.text.setContent(content, markupType)\n\n\t\tif (logSelection) {\n\t\t\tthis.text.textBuffer.setSelectionRegion(logSelection)\n\t\t}\n\n\t\tif (this.shouldAutoScrollWhenAppendingContent && isScrolledAllTheWay) {\n\t\t\tthis.text.scrollToBottom()\n\t\t}\n\t}\n\n\tprivate markupType(content: string) {\n\t\t// eslint-disable-next-line no-control-regex\n\t\tconst match = /\\x1b\\[([0-9;]+)m|(.[^\\x1b]+)/g.exec(content)\n\t\tconst markupType = match && match[1] ? 'ansi' : true\n\t\treturn markupType\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"termKit.utility.js","names":["termKitUtil","buildFrame","frame","parent","calculated","widgetUtil","x","left","y","top","width","height","mapWidgetOptionsToTermKitOptions","options","mapped","keys","Object","ignores","backgroundColor","attr","bgColor","foregroundColor","color","key","item","Array","isArray","i","push","widthPercent","parseInt","heightPercent","getTermKitElement","indexOf","mapTermKitOptionsToWidgetOptions"],"sources":["../../../src/widgets/terminalKit/termKit.utility.ts"],"sourcesContent":["import { isObject } from 'lodash'\nimport { BaseWidget, WidgetFrame } from '../types/widgets.types'\nimport widgetUtil from '../widget.utilities'\n\nconst termKitUtil = {\n\tbuildFrame(frame: Partial<WidgetFrame>, parent?: BaseWidget | null) {\n\t\tconst calculated = widgetUtil.buildFrame(frame, parent)\n\t\treturn {\n\t\t\tx: calculated.left,\n\t\t\ty: calculated.top,\n\t\t\twidth: calculated.width,\n\t\t\theight: calculated.height,\n\t\t}\n\t},\n\n\tmapWidgetOptionsToTermKitOptions(options: Record<string, any>) {\n\t\tconst mapped: Record<string, any> = {}\n\t\tconst keys = Object.keys(options)\n\t\tconst ignores = [\n\t\t\t'shouldLockHeightWithParent',\n\t\t\t'shouldLockWidthWithParent',\n\t\t\t'shouldLockBottomWithParent',\n\t\t\t'term',\n\t\t]\n\n\t\tif (options.backgroundColor) {\n\t\t\tmapped.attr = {\n\t\t\t\t...mapped.attr,\n\t\t\t\tbgColor: options.backgroundColor,\n\t\t\t}\n\t\t}\n\n\t\tif (options.foregroundColor) {\n\t\t\tmapped.attr = {\n\t\t\t\t...mapped.attr,\n\t\t\t\tcolor: options.foregroundColor,\n\t\t\t}\n\t\t}\n\n\t\tfor (const key of keys) {\n\t\t\tconst item = options[key]\n\t\t\tif (Array.isArray(item)) {\n\t\t\t\tmapped[key] = []\n\t\t\t\tfor (const i of item) {\n\t\t\t\t\tmapped[key].push(this.mapWidgetOptionsToTermKitOptions(i))\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tswitch (key) {\n\t\t\t\t\tcase 'left':\n\t\t\t\t\t\tmapped.x = item\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase 'top':\n\t\t\t\t\t\tmapped.y = item\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase 'width':\n\t\t\t\t\t\tif (typeof item === 'string') {\n\t\t\t\t\t\t\tmapped.widthPercent = parseInt(item)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tmapped.width = item\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase 'height':\n\t\t\t\t\t\tif (typeof item === 'string') {\n\t\t\t\t\t\t\tmapped.heightPercent = parseInt(item)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tmapped.height = item\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase 'parent':\n\t\t\t\t\t\tmapped.parent = item.getTermKitElement()\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tif (ignores.indexOf(key) > -1) {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (typeof item !== 'function' && isObject(item)) {\n\t\t\t\t\t\t\tmapped[key] = this.mapWidgetOptionsToTermKitOptions(item)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tmapped[key] = item\n\t\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn mapped\n\t},\n\n\tmapTermKitOptionsToWidgetOptions(options: Record<string, any>) {\n\t\tconst mapped: Record<string, any> = {}\n\t\tconst keys = Object.keys(options)\n\n\t\tfor (const key of keys) {\n\t\t\tconst item = options[key]\n\t\t\tif (Array.isArray(item)) {\n\t\t\t\tmapped[key] = []\n\t\t\t\tfor (const i of item) {\n\t\t\t\t\tmapped[key].push(this.mapTermKitOptionsToWidgetOptions(i))\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tswitch (key) {\n\t\t\t\t\tcase 'left':\n\t\t\t\t\t\tmapped.x = item\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase 'top':\n\t\t\t\t\t\tmapped.y = item\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase 'widthPercent':\n\t\t\t\t\t\tmapped.width = `${item}%`\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase 'heightPercent':\n\t\t\t\t\t\tmapped.height = `${item}%`\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase 'parent':\n\t\t\t\t\t\tmapped.parent = item.getTermKitElement()\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tif (typeof item !== 'function' && isObject(item)) {\n\t\t\t\t\t\t\tmapped[key] = this.mapTermKitOptionsToWidgetOptions(item)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tmapped[key] = item\n\t\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn mapped\n\t},\n}\n\nexport default termKitUtil\n"],"mappings":";;;;;;;;;;;AAAA;;AAEA;;;;;;;;;;;;AAEA,IAAMA,WAAW,GAAG;EACnBC,UADmB,sBACRC,KADQ,EACqBC,MADrB,EACiD;IACnE,IAAMC,UAAU,GAAGC,
|
|
1
|
+
{"version":3,"file":"termKit.utility.js","names":["termKitUtil","buildFrame","frame","parent","calculated","widgetUtil","x","left","y","top","width","height","mapWidgetOptionsToTermKitOptions","options","mapped","keys","Object","ignores","backgroundColor","attr","bgColor","foregroundColor","color","key","item","Array","isArray","i","push","widthPercent","parseInt","heightPercent","getTermKitElement","indexOf","isObject","mapTermKitOptionsToWidgetOptions"],"sources":["../../../src/widgets/terminalKit/termKit.utility.ts"],"sourcesContent":["import { isObject } from 'lodash'\nimport { BaseWidget, WidgetFrame } from '../types/widgets.types'\nimport widgetUtil from '../widget.utilities'\n\nconst termKitUtil = {\n\tbuildFrame(frame: Partial<WidgetFrame>, parent?: BaseWidget | null) {\n\t\tconst calculated = widgetUtil.buildFrame(frame, parent)\n\t\treturn {\n\t\t\tx: calculated.left,\n\t\t\ty: calculated.top,\n\t\t\twidth: calculated.width,\n\t\t\theight: calculated.height,\n\t\t}\n\t},\n\n\tmapWidgetOptionsToTermKitOptions(options: Record<string, any>) {\n\t\tconst mapped: Record<string, any> = {}\n\t\tconst keys = Object.keys(options)\n\t\tconst ignores = [\n\t\t\t'shouldLockHeightWithParent',\n\t\t\t'shouldLockWidthWithParent',\n\t\t\t'shouldLockBottomWithParent',\n\t\t\t'term',\n\t\t]\n\n\t\tif (options.backgroundColor) {\n\t\t\tmapped.attr = {\n\t\t\t\t...mapped.attr,\n\t\t\t\tbgColor: options.backgroundColor,\n\t\t\t}\n\t\t}\n\n\t\tif (options.foregroundColor) {\n\t\t\tmapped.attr = {\n\t\t\t\t...mapped.attr,\n\t\t\t\tcolor: options.foregroundColor,\n\t\t\t}\n\t\t}\n\n\t\tfor (const key of keys) {\n\t\t\tconst item = options[key]\n\t\t\tif (Array.isArray(item)) {\n\t\t\t\tmapped[key] = []\n\t\t\t\tfor (const i of item) {\n\t\t\t\t\tmapped[key].push(this.mapWidgetOptionsToTermKitOptions(i))\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tswitch (key) {\n\t\t\t\t\tcase 'left':\n\t\t\t\t\t\tmapped.x = item\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase 'top':\n\t\t\t\t\t\tmapped.y = item\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase 'width':\n\t\t\t\t\t\tif (typeof item === 'string') {\n\t\t\t\t\t\t\tmapped.widthPercent = parseInt(item)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tmapped.width = item\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase 'height':\n\t\t\t\t\t\tif (typeof item === 'string') {\n\t\t\t\t\t\t\tmapped.heightPercent = parseInt(item)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tmapped.height = item\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase 'parent':\n\t\t\t\t\t\tmapped.parent = item.getTermKitElement()\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tif (ignores.indexOf(key) > -1) {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (typeof item !== 'function' && isObject(item)) {\n\t\t\t\t\t\t\tmapped[key] = this.mapWidgetOptionsToTermKitOptions(item)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tmapped[key] = item\n\t\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn mapped\n\t},\n\n\tmapTermKitOptionsToWidgetOptions(options: Record<string, any>) {\n\t\tconst mapped: Record<string, any> = {}\n\t\tconst keys = Object.keys(options)\n\n\t\tfor (const key of keys) {\n\t\t\tconst item = options[key]\n\t\t\tif (Array.isArray(item)) {\n\t\t\t\tmapped[key] = []\n\t\t\t\tfor (const i of item) {\n\t\t\t\t\tmapped[key].push(this.mapTermKitOptionsToWidgetOptions(i))\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tswitch (key) {\n\t\t\t\t\tcase 'left':\n\t\t\t\t\t\tmapped.x = item\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase 'top':\n\t\t\t\t\t\tmapped.y = item\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase 'widthPercent':\n\t\t\t\t\t\tmapped.width = `${item}%`\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase 'heightPercent':\n\t\t\t\t\t\tmapped.height = `${item}%`\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase 'parent':\n\t\t\t\t\t\tmapped.parent = item.getTermKitElement()\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tif (typeof item !== 'function' && isObject(item)) {\n\t\t\t\t\t\t\tmapped[key] = this.mapTermKitOptionsToWidgetOptions(item)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tmapped[key] = item\n\t\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn mapped\n\t},\n}\n\nexport default termKitUtil\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input.types.js","names":["inputEventContract","eventSignatures","submit","emitPayloadSchema","id","fields","value","type","isRequired","options","valueType","cancel"],"sources":["../../../src/widgets/types/input.types.ts"],"sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\nimport { BaseWidget } from './widgets.types'\n\nexport const inputEventContract = {\n\teventSignatures: {\n\t\tsubmit: {\n\t\t\temitPayloadSchema: buildSchema({\n\t\t\t\tid: 'inputSubmitEmitPayload',\n\t\t\t\tfields: {\n\t\t\t\t\tvalue: {\n\t\t\t\t\t\ttype: 'raw',\n\t\t\t\t\t\tisRequired: true,\n\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\tvalueType: 'string | undefined',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}),\n\t\t},\n\t\tcancel: {},\n\t},\n}\n\nexport type InputEventContract = typeof inputEventContract\n\nexport interface InputWidgetOptions {\n\tvalue?: string\n\tlabel?: string\n\tplaceholder?: string\n}\n\nexport interface InputWidget extends BaseWidget<InputEventContract> {\n\treadonly type: 'input'\n\tgetValue(): string | undefined\n\tsetValue(value: string): void\n}\n"],"mappings":";;;;;;;AAAA;;AAGO,IAAMA,kBAAkB,GAAG;EACjCC,eAAe,EAAE;IAChBC,MAAM,EAAE;MACPC,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"input.types.js","names":["inputEventContract","eventSignatures","submit","emitPayloadSchema","buildSchema","id","fields","value","type","isRequired","options","valueType","cancel"],"sources":["../../../src/widgets/types/input.types.ts"],"sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\nimport { BaseWidget } from './widgets.types'\n\nexport const inputEventContract = {\n\teventSignatures: {\n\t\tsubmit: {\n\t\t\temitPayloadSchema: buildSchema({\n\t\t\t\tid: 'inputSubmitEmitPayload',\n\t\t\t\tfields: {\n\t\t\t\t\tvalue: {\n\t\t\t\t\t\ttype: 'raw',\n\t\t\t\t\t\tisRequired: true,\n\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\tvalueType: 'string | undefined',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}),\n\t\t},\n\t\tcancel: {},\n\t},\n}\n\nexport type InputEventContract = typeof inputEventContract\n\nexport interface InputWidgetOptions {\n\tvalue?: string\n\tlabel?: string\n\tplaceholder?: string\n}\n\nexport interface InputWidget extends BaseWidget<InputEventContract> {\n\treadonly type: 'input'\n\tgetValue(): string | undefined\n\tsetValue(value: string): void\n}\n"],"mappings":";;;;;;;AAAA;;AAGO,IAAMA,kBAAkB,GAAG;EACjCC,eAAe,EAAE;IAChBC,MAAM,EAAE;MACPC,iBAAiB,EAAE,IAAAC,mBAAA,EAAY;QAC9BC,EAAE,EAAE,wBAD0B;QAE9BC,MAAM,EAAE;UACPC,KAAK,EAAE;YACNC,IAAI,EAAE,KADA;YAENC,UAAU,EAAE,IAFN;YAGNC,OAAO,EAAE;cACRC,SAAS,EAAE;YADH;UAHH;QADA;MAFsB,CAAZ;IADZ,CADQ;IAehBC,MAAM,EAAE;EAfQ;AADgB,CAA3B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menuBar.types.js","names":["menuBarEventContract","eventSignatures","select","emitPayloadSchema","id","fields","value","type","isRequired"],"sources":["../../../src/widgets/types/menuBar.types.ts"],"sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\nimport { BaseWidget } from './widgets.types'\n\n// **** //\n// ** Menu Bar **/\n\nexport const menuBarEventContract = {\n\teventSignatures: {\n\t\tselect: {\n\t\t\temitPayloadSchema: buildSchema({\n\t\t\t\tid: 'menuBarSelectEmitPayload',\n\t\t\t\tfields: {\n\t\t\t\t\tvalue: {\n\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\tisRequired: true,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}),\n\t\t},\n\t},\n}\n\nexport type MenuBarEventContract = typeof menuBarEventContract\n\nexport interface MenuBarWidgetOptions {\n\titems: MenuBarWidgetItem[]\n}\n\nexport interface MenuBarWidgetItem {\n\tlabel: string\n\tvalue: string\n\titems?: MenuBarWidgetItem[]\n}\n\nexport interface MenuBarWidget extends BaseWidget<MenuBarEventContract> {\n\tsetTextForItem(value: string, text: string): void\n\treadonly type: 'menuBar'\n}\n"],"mappings":";;;;;;;AAAA;;AAGA;AACA;AAEO,IAAMA,oBAAoB,GAAG;EACnCC,eAAe,EAAE;IAChBC,MAAM,EAAE;MACPC,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"menuBar.types.js","names":["menuBarEventContract","eventSignatures","select","emitPayloadSchema","buildSchema","id","fields","value","type","isRequired"],"sources":["../../../src/widgets/types/menuBar.types.ts"],"sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\nimport { BaseWidget } from './widgets.types'\n\n// **** //\n// ** Menu Bar **/\n\nexport const menuBarEventContract = {\n\teventSignatures: {\n\t\tselect: {\n\t\t\temitPayloadSchema: buildSchema({\n\t\t\t\tid: 'menuBarSelectEmitPayload',\n\t\t\t\tfields: {\n\t\t\t\t\tvalue: {\n\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\tisRequired: true,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}),\n\t\t},\n\t},\n}\n\nexport type MenuBarEventContract = typeof menuBarEventContract\n\nexport interface MenuBarWidgetOptions {\n\titems: MenuBarWidgetItem[]\n}\n\nexport interface MenuBarWidgetItem {\n\tlabel: string\n\tvalue: string\n\titems?: MenuBarWidgetItem[]\n}\n\nexport interface MenuBarWidget extends BaseWidget<MenuBarEventContract> {\n\tsetTextForItem(value: string, text: string): void\n\treadonly type: 'menuBar'\n}\n"],"mappings":";;;;;;;AAAA;;AAGA;AACA;AAEO,IAAMA,oBAAoB,GAAG;EACnCC,eAAe,EAAE;IAChBC,MAAM,EAAE;MACPC,iBAAiB,EAAE,IAAAC,mBAAA,EAAY;QAC9BC,EAAE,EAAE,0BAD0B;QAE9BC,MAAM,EAAE;UACPC,KAAK,EAAE;YACNC,IAAI,EAAE,MADA;YAENC,UAAU,EAAE;UAFN;QADA;MAFsB,CAAZ;IADZ;EADQ;AADkB,CAA7B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text.types.js","names":["textEventContract","eventSignatures","click","emitPayloadSchema","id","fields","column","type","isRequired","row","text"],"sources":["../../../src/widgets/types/text.types.ts"],"sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\nimport { BaseWidget } from './widgets.types'\n\n// ** Text Widget ** //\n\nexport const textEventContract = {\n\teventSignatures: {\n\t\tclick: {\n\t\t\temitPayloadSchema: buildSchema({\n\t\t\t\tid: 'textClickEmitPayload',\n\t\t\t\tfields: {\n\t\t\t\t\tcolumn: {\n\t\t\t\t\t\ttype: 'number',\n\t\t\t\t\t\tisRequired: true,\n\t\t\t\t\t},\n\t\t\t\t\trow: {\n\t\t\t\t\t\ttype: 'number',\n\t\t\t\t\t\tisRequired: true,\n\t\t\t\t\t},\n\t\t\t\t\ttext: {\n\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}),\n\t\t},\n\t},\n}\n\nexport type TextEventContract = typeof textEventContract\n\nexport interface TextWidgetOptions {\n\tisScrollEnabled?: boolean\n\tshouldAutoScrollWhenAppendingContent?: boolean\n\twordWrap?: boolean\n\ttext?: string\n}\n\nexport interface TextWidget extends BaseWidget<TextEventContract> {\n\treadonly type: 'text'\n\tgetText(): string\n\tsetText(content: string): void\n\tgetScrollX(): number\n\tgetScrollY(): number\n}\n"],"mappings":";;;;;;;AAAA;;AAGA;AAEO,IAAMA,iBAAiB,GAAG;EAChCC,eAAe,EAAE;IAChBC,KAAK,EAAE;MACNC,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"text.types.js","names":["textEventContract","eventSignatures","click","emitPayloadSchema","buildSchema","id","fields","column","type","isRequired","row","text"],"sources":["../../../src/widgets/types/text.types.ts"],"sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\nimport { BaseWidget } from './widgets.types'\n\n// ** Text Widget ** //\n\nexport const textEventContract = {\n\teventSignatures: {\n\t\tclick: {\n\t\t\temitPayloadSchema: buildSchema({\n\t\t\t\tid: 'textClickEmitPayload',\n\t\t\t\tfields: {\n\t\t\t\t\tcolumn: {\n\t\t\t\t\t\ttype: 'number',\n\t\t\t\t\t\tisRequired: true,\n\t\t\t\t\t},\n\t\t\t\t\trow: {\n\t\t\t\t\t\ttype: 'number',\n\t\t\t\t\t\tisRequired: true,\n\t\t\t\t\t},\n\t\t\t\t\ttext: {\n\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}),\n\t\t},\n\t},\n}\n\nexport type TextEventContract = typeof textEventContract\n\nexport interface TextWidgetOptions {\n\tisScrollEnabled?: boolean\n\tshouldAutoScrollWhenAppendingContent?: boolean\n\twordWrap?: boolean\n\ttext?: string\n}\n\nexport interface TextWidget extends BaseWidget<TextEventContract> {\n\treadonly type: 'text'\n\tgetText(): string\n\tsetText(content: string): void\n\tgetScrollX(): number\n\tgetScrollY(): number\n}\n"],"mappings":";;;;;;;AAAA;;AAGA;AAEO,IAAMA,iBAAiB,GAAG;EAChCC,eAAe,EAAE;IAChBC,KAAK,EAAE;MACNC,iBAAiB,EAAE,IAAAC,mBAAA,EAAY;QAC9BC,EAAE,EAAE,sBAD0B;QAE9BC,MAAM,EAAE;UACPC,MAAM,EAAE;YACPC,IAAI,EAAE,QADC;YAEPC,UAAU,EAAE;UAFL,CADD;UAKPC,GAAG,EAAE;YACJF,IAAI,EAAE,QADF;YAEJC,UAAU,EAAE;UAFR,CALE;UASPE,IAAI,EAAE;YACLH,IAAI,EAAE;UADD;QATC;MAFsB,CAAZ;IADb;EADS;AADe,CAA1B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"window.types.js","names":["windowEventContract","eventSignatures","key","emitPayloadSchema","id","fields","type","isRequired","kill","code","resize","width","height"],"sources":["../../../src/widgets/types/window.types.ts"],"sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\n// import keySelectChoices from '../keySelectChoices'\nimport { BaseWidget } from './widgets.types'\n\n// ** Window Widget ** //\nexport const windowEventContract = {\n\teventSignatures: {\n\t\tkey: {\n\t\t\temitPayloadSchema: buildSchema({\n\t\t\t\tid: 'windowKeyEmitPayload',\n\t\t\t\tfields: {\n\t\t\t\t\tkey: {\n\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\tisRequired: true,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}),\n\t\t},\n\t\tkill: {\n\t\t\temitPayloadSchema: buildSchema({\n\t\t\t\tid: 'killEmitPayload',\n\t\t\t\tfields: {\n\t\t\t\t\tcode: {\n\t\t\t\t\t\ttype: 'number',\n\t\t\t\t\t\tisRequired: true,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}),\n\t\t},\n\t\tresize: {\n\t\t\temitPayloadSchema: buildSchema({\n\t\t\t\tid: 'resizeEmitPayload',\n\t\t\t\tfields: {\n\t\t\t\t\twidth: {\n\t\t\t\t\t\ttype: 'number',\n\t\t\t\t\t\tisRequired: true,\n\t\t\t\t\t},\n\t\t\t\t\theight: {\n\t\t\t\t\t\ttype: 'number',\n\t\t\t\t\t\tisRequired: true,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}),\n\t\t},\n\t},\n}\n\nexport type WindowEventContract = typeof windowEventContract\n\nexport interface WindowWidgetOptions {}\n\nexport interface WindowWidget extends BaseWidget<WindowEventContract> {\n\treadonly type: 'window'\n\thideCursor: () => void\n\tshowCursor: () => void\n\tsetTitle: (title: string) => void\n\tgetFocusedWidget(): BaseWidget | null\n}\n"],"mappings":";;;;;;;AAAA;;AAIA;AACO,IAAMA,mBAAmB,GAAG;EAClCC,eAAe,EAAE;IAChBC,GAAG,EAAE;MACJC,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"window.types.js","names":["windowEventContract","eventSignatures","key","emitPayloadSchema","buildSchema","id","fields","type","isRequired","kill","code","resize","width","height"],"sources":["../../../src/widgets/types/window.types.ts"],"sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\n// import keySelectChoices from '../keySelectChoices'\nimport { BaseWidget } from './widgets.types'\n\n// ** Window Widget ** //\nexport const windowEventContract = {\n\teventSignatures: {\n\t\tkey: {\n\t\t\temitPayloadSchema: buildSchema({\n\t\t\t\tid: 'windowKeyEmitPayload',\n\t\t\t\tfields: {\n\t\t\t\t\tkey: {\n\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\tisRequired: true,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}),\n\t\t},\n\t\tkill: {\n\t\t\temitPayloadSchema: buildSchema({\n\t\t\t\tid: 'killEmitPayload',\n\t\t\t\tfields: {\n\t\t\t\t\tcode: {\n\t\t\t\t\t\ttype: 'number',\n\t\t\t\t\t\tisRequired: true,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}),\n\t\t},\n\t\tresize: {\n\t\t\temitPayloadSchema: buildSchema({\n\t\t\t\tid: 'resizeEmitPayload',\n\t\t\t\tfields: {\n\t\t\t\t\twidth: {\n\t\t\t\t\t\ttype: 'number',\n\t\t\t\t\t\tisRequired: true,\n\t\t\t\t\t},\n\t\t\t\t\theight: {\n\t\t\t\t\t\ttype: 'number',\n\t\t\t\t\t\tisRequired: true,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}),\n\t\t},\n\t},\n}\n\nexport type WindowEventContract = typeof windowEventContract\n\nexport interface WindowWidgetOptions {}\n\nexport interface WindowWidget extends BaseWidget<WindowEventContract> {\n\treadonly type: 'window'\n\thideCursor: () => void\n\tshowCursor: () => void\n\tsetTitle: (title: string) => void\n\tgetFocusedWidget(): BaseWidget | null\n}\n"],"mappings":";;;;;;;AAAA;;AAIA;AACO,IAAMA,mBAAmB,GAAG;EAClCC,eAAe,EAAE;IAChBC,GAAG,EAAE;MACJC,iBAAiB,EAAE,IAAAC,mBAAA,EAAY;QAC9BC,EAAE,EAAE,sBAD0B;QAE9BC,MAAM,EAAE;UACPJ,GAAG,EAAE;YACJK,IAAI,EAAE,MADF;YAEJC,UAAU,EAAE;UAFR;QADE;MAFsB,CAAZ;IADf,CADW;IAYhBC,IAAI,EAAE;MACLN,iBAAiB,EAAE,IAAAC,mBAAA,EAAY;QAC9BC,EAAE,EAAE,iBAD0B;QAE9BC,MAAM,EAAE;UACPI,IAAI,EAAE;YACLH,IAAI,EAAE,QADD;YAELC,UAAU,EAAE;UAFP;QADC;MAFsB,CAAZ;IADd,CAZU;IAuBhBG,MAAM,EAAE;MACPR,iBAAiB,EAAE,IAAAC,mBAAA,EAAY;QAC9BC,EAAE,EAAE,mBAD0B;QAE9BC,MAAM,EAAE;UACPM,KAAK,EAAE;YACNL,IAAI,EAAE,QADA;YAENC,UAAU,EAAE;UAFN,CADA;UAKPK,MAAM,EAAE;YACPN,IAAI,EAAE,QADC;YAEPC,UAAU,EAAE;UAFL;QALD;MAFsB,CAAZ;IADZ;EAvBQ;AADiB,CAA5B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractWriter.js","names":["AbstractWriter","options","templates","ui","term","upgradeMode","fileDescriptions","linter","settings","file","startLoading","pathUtil","basename","fix","context","destinationDir","filesToWrite","filesToSkip","shouldConfirmBeforeWriting","firstFileWriteMessage","hasShownFirstWriteMessage","directoryTemplate","kind","code","files","results","generated","shouldWrite","indexOf","filename","shouldSkip","writeFileIfChangedMixinResults","join","relativePath","contents","destination","description","cwd","myResults","desc","name","action","diskUtil","isDir","Error","fileDescription","getFileDescription","doesFileExist","write","confirmPromptOnFirstWrite","stopLoading","confirm","writeFile","isFileDifferent","shouldOverwriteIfChanged","cleanedName","cleanFilename","skipped","get","isAlwaysSkipped","shouldAskForOverwrite","renderLine","prompt","type","label","choices","value","FILE_ACTION_OVERWRITE","FILE_ACTION_SKIP","FILE_ACTION_ALWAYS_SKIP","answer","push","set","replace","path","relativeFile","sep","substr","shouldOverwriteWhenChanged","lower","toLowerCase","d","search","undefined","dirOrFile","fallbackFileName","doesDirExist","fs","lstatSync","isDirectory","extname","length","resolvePath"],"sources":["../../src/writers/AbstractWriter.ts"],"sourcesContent":["import fs from 'fs'\nimport pathUtil from 'path'\nimport { diskUtil, SettingsService } from '@sprucelabs/spruce-skill-utils'\nimport { DirectoryTemplateCode, Templates } from '@sprucelabs/spruce-templates'\nimport {\n\tFILE_ACTION_ALWAYS_SKIP,\n\tFILE_ACTION_OVERWRITE,\n\tFILE_ACTION_SKIP,\n} from '../constants'\nimport LintService from '../services/LintService'\nimport { FileDescription, GeneratedFile, UpgradeMode } from '../types/cli.types'\nimport { GraphicsInterface } from '../types/cli.types'\n\nexport type WriteResults = GeneratedFile[]\n\nexport interface WriterOptions {\n\ttemplates: Templates\n\tterm: GraphicsInterface\n\tupgradeMode?: UpgradeMode\n\tfileDescriptions: FileDescription[]\n\tlinter?: LintService\n\tsettings: SettingsService\n}\n\nexport interface WriteDirectoryTemplateOptions {\n\tdestinationDir: string\n\tcode: DirectoryTemplateCode\n\tfilesToWrite?: string[]\n\tfilesToSkip?: string[]\n\tcontext: any\n\tshouldConfirmBeforeWriting?: boolean\n\tfirstFileWriteMessage?: string\n}\n\nexport default abstract class AbstractWriter {\n\tprotected templates: Templates\n\tprotected ui: GraphicsInterface\n\tprivate linter?: LintService\n\tprivate upgradeMode: UpgradeMode\n\tprivate fileDescriptions: FileDescription[] = []\n\tprivate shouldConfirmBeforeWriting = true\n\tprivate firstFileWriteMessage?: string\n\tprivate hasShownFirstWriteMessage = false\n\tprivate settings: SettingsService<string>\n\n\tpublic constructor(options: WriterOptions) {\n\t\tthis.templates = options.templates\n\t\tthis.ui = options.term\n\t\tthis.upgradeMode = options.upgradeMode\n\t\tthis.fileDescriptions = options.fileDescriptions\n\t\tthis.linter = options.linter\n\t\tthis.settings = options.settings\n\t}\n\n\tprotected async lint(file: string) {\n\t\tthis.ui.startLoading(`Linting ${pathUtil.basename(file)}...`)\n\t\tawait this.linter?.fix(file).catch(() => {})\n\t}\n\n\tprotected async writeDirectoryTemplate(\n\t\toptions: WriteDirectoryTemplateOptions\n\t) {\n\t\tconst {\n\t\t\tcontext,\n\t\t\tdestinationDir,\n\t\t\tfilesToWrite,\n\t\t\tfilesToSkip,\n\t\t\tshouldConfirmBeforeWriting = true,\n\t\t\tfirstFileWriteMessage,\n\t\t} = options\n\n\t\tthis.shouldConfirmBeforeWriting = shouldConfirmBeforeWriting\n\t\tthis.firstFileWriteMessage = firstFileWriteMessage\n\t\tthis.hasShownFirstWriteMessage = false\n\n\t\tconst files = await this.templates.directoryTemplate({\n\t\t\tkind: options.code,\n\t\t\tcontext: context ?? {},\n\t\t})\n\n\t\tlet results: WriteResults = []\n\n\t\tfor (const generated of files) {\n\t\t\tconst shouldWrite =\n\t\t\t\t!filesToWrite || filesToWrite.indexOf(generated.filename) > -1\n\t\t\tconst shouldSkip =\n\t\t\t\tfilesToSkip && filesToSkip.indexOf(generated.filename) > -1\n\n\t\t\tif (shouldWrite && !shouldSkip) {\n\t\t\t\tresults = await this.writeFileIfChangedMixinResults(\n\t\t\t\t\tpathUtil.join(destinationDir, generated.relativePath),\n\t\t\t\t\tgenerated.contents,\n\t\t\t\t\t'',\n\t\t\t\t\tresults,\n\t\t\t\t\tdestinationDir\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\n\t\treturn results\n\t}\n\n\tprotected async writeFileIfChangedMixinResults(\n\t\tdestination: string,\n\t\tcontents: string,\n\t\tdescription: string,\n\t\tresults?: WriteResults,\n\t\tcwd = ''\n\t): Promise<WriteResults> {\n\t\tconst myResults: WriteResults = results ?? []\n\t\tlet desc: string | undefined = description\n\n\t\tconst name = pathUtil.basename(destination)\n\t\tlet action: GeneratedFile['action'] = 'skipped'\n\n\t\tif (diskUtil.isDir(destination)) {\n\t\t\tthrow new Error(`Can't write to a directory ${destination}.`)\n\t\t}\n\n\t\tconst fileDescription = this.getFileDescription(destination)\n\n\t\tif (!diskUtil.doesFileExist(destination)) {\n\t\t\tlet write = true\n\n\t\t\tif (\n\t\t\t\tthis.shouldConfirmBeforeWriting &&\n\t\t\t\tfileDescription?.confirmPromptOnFirstWrite\n\t\t\t) {\n\t\t\t\tthis.ui.stopLoading()\n\t\t\t\twrite = await this.ui.confirm(fileDescription.confirmPromptOnFirstWrite)\n\t\t\t}\n\n\t\t\tif (write) {\n\t\t\t\tdiskUtil.writeFile(destination, contents)\n\t\t\t\taction = 'generated'\n\t\t\t}\n\t\t} else if (\n\t\t\tthis.isFileDifferent(destination, contents) &&\n\t\t\tthis.shouldOverwriteIfChanged(destination)\n\t\t) {\n\t\t\tconst cleanedName = this.cleanFilename(destination, cwd)\n\t\t\tconst settings = { skipped: [], ...this.settings.get('writer') }\n\t\t\tconst isAlwaysSkipped = settings.skipped.indexOf(cleanedName) > -1\n\t\t\tlet write = !isAlwaysSkipped\n\n\t\t\tif (!isAlwaysSkipped && this.shouldAskForOverwrite()) {\n\t\t\t\tif (!this.hasShownFirstWriteMessage && this.firstFileWriteMessage) {\n\t\t\t\t\tthis.hasShownFirstWriteMessage = true\n\t\t\t\t\tthis.ui.renderLine(this.firstFileWriteMessage)\n\t\t\t\t\tthis.ui.renderLine('')\n\t\t\t\t}\n\n\t\t\t\tconst answer = await this.ui.prompt({\n\t\t\t\t\ttype: 'select',\n\t\t\t\t\tlabel: `${cleanedName}`,\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tchoices: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvalue: FILE_ACTION_OVERWRITE,\n\t\t\t\t\t\t\t\tlabel: 'Overwrite',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvalue: FILE_ACTION_SKIP,\n\t\t\t\t\t\t\t\tlabel: 'Skip',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvalue: FILE_ACTION_ALWAYS_SKIP,\n\t\t\t\t\t\t\t\tlabel: 'Always skip',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t})\n\n\t\t\t\tif (answer === FILE_ACTION_ALWAYS_SKIP) {\n\t\t\t\t\tsettings.skipped.push(cleanedName)\n\t\t\t\t\tthis.settings.set('writer', settings)\n\t\t\t\t}\n\n\t\t\t\twrite = answer === FILE_ACTION_OVERWRITE\n\t\t\t}\n\n\t\t\tif (write) {\n\t\t\t\tdiskUtil.writeFile(destination, contents)\n\t\t\t\taction = 'updated'\n\t\t\t}\n\t\t}\n\n\t\tif (!desc) {\n\t\t\tdesc = fileDescription?.description\n\t\t}\n\n\t\tif (!desc) {\n\t\t\tthrow new Error(\n\t\t\t\t`No FileDescription provided for ${destination.replace(\n\t\t\t\t\tcwd,\n\t\t\t\t\t''\n\t\t\t\t)}. Check your feature's fileDescriptions property.`\n\t\t\t)\n\t\t}\n\n\t\tmyResults.push({ name, description: desc, path: destination, action })\n\n\t\treturn myResults\n\t}\n\n\tprivate isFileDifferent(destination: string, contents: string) {\n\t\treturn diskUtil.isFileDifferent(destination, contents)\n\t}\n\n\tprivate cleanFilename(destination: string, cwd: string) {\n\t\tlet relativeFile = destination.replace(cwd, '')\n\t\tif (relativeFile[0] === pathUtil.sep) {\n\t\t\trelativeFile = relativeFile.substr(1)\n\t\t}\n\t\treturn relativeFile\n\t}\n\n\tprivate shouldOverwriteIfChanged(destination: string): boolean {\n\t\tif (!this.upgradeMode) {\n\t\t\treturn true\n\t\t}\n\n\t\tif (this.upgradeMode === 'forceEverything') {\n\t\t\treturn true\n\t\t}\n\n\t\tlet description: FileDescription | undefined =\n\t\t\tthis.getFileDescription(destination)\n\n\t\treturn description?.shouldOverwriteWhenChanged ?? false\n\t}\n\n\tprivate getFileDescription(destination: string): FileDescription | undefined {\n\t\tconst lower = destination.toLowerCase()\n\t\tfor (const d of this.fileDescriptions ?? []) {\n\t\t\tif (lower.search(d.path.toLowerCase()) > -1) {\n\t\t\t\treturn d\n\t\t\t}\n\t\t}\n\n\t\treturn undefined\n\t}\n\n\tprivate shouldAskForOverwrite() {\n\t\tif (\n\t\t\tthis.shouldConfirmBeforeWriting &&\n\t\t\tthis.upgradeMode === 'askForChanged'\n\t\t) {\n\t\t\treturn true\n\t\t}\n\n\t\treturn false\n\t}\n\n\tprotected resolveFilenameWithFallback(\n\t\tdirOrFile: string,\n\t\tfallbackFileName: string\n\t) {\n\t\tconst isDir =\n\t\t\tdiskUtil.doesDirExist(dirOrFile) &&\n\t\t\tfs.lstatSync(dirOrFile).isDirectory() &&\n\t\t\tpathUtil.extname(dirOrFile).length === 0\n\t\treturn isDir ? diskUtil.resolvePath(dirOrFile, fallbackFileName) : dirOrFile\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;;;;;;;;;;;IA8B8BA,c;EAW7B,wBAAmBC,OAAnB,EAA2C;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA,2DANG,EAMH;IAAA,qEALN,IAKM;IAAA;IAAA,oEAHP,KAGO;IAAA;IAC1C,KAAKC,SAAL,GAAiBD,OAAO,CAACC,SAAzB;IACA,KAAKC,EAAL,GAAUF,OAAO,CAACG,IAAlB;IACA,KAAKC,WAAL,GAAmBJ,OAAO,CAACI,WAA3B;IACA,KAAKC,gBAAL,GAAwBL,OAAO,CAACK,gBAAhC;IACA,KAAKC,MAAL,GAAcN,OAAO,CAACM,MAAtB;IACA,KAAKC,QAAL,GAAgBP,OAAO,CAACO,QAAxB;EACA;;;;;gGAED,iBAAqBC,IAArB;QAAA;;QAAA;UAAA;YAAA;cAAA;gBACC,KAAKN,EAAL,CAAQO,YAAR,mBAAgCC,iBAASC,QAAT,CAAkBH,IAAlB,CAAhC;gBADD;gBAAA,uBAEO,KAAKF,MAFZ,iDAEO,aAAaM,GAAb,CAAiBJ,IAAjB,WAA6B,YAAM,CAAE,CAArC,CAFP;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;kHAKA,kBACCR,OADD;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAIEa,OAJF,GAUKb,OAVL,CAIEa,OAJF,EAKEC,cALF,GAUKd,OAVL,CAKEc,cALF,EAMEC,YANF,GAUKf,OAVL,CAMEe,YANF,EAOEC,WAPF,GAUKhB,OAVL,CAOEgB,WAPF,0BAUKhB,OAVL,CAQEiB,0BARF,EAQEA,0BARF,sCAQ+B,IAR/B,0BASEC,qBATF,GAUKlB,OAVL,CASEkB,qBATF;gBAYC,KAAKD,0BAAL,GAAkCA,0BAAlC;gBACA,KAAKC,qBAAL,GAA6BA,qBAA7B;gBACA,KAAKC,yBAAL,GAAiC,KAAjC;gBAdD;gBAAA,OAgBqB,KAAKlB,SAAL,CAAemB,iBAAf,CAAiC;kBACpDC,IAAI,EAAErB,OAAO,CAACsB,IADsC;kBAEpDT,OAAO,EAAEA,OAAF,aAAEA,OAAF,cAAEA,OAAF,GAAa;gBAFgC,CAAjC,CAhBrB;;cAAA;gBAgBOU,KAhBP;gBAqBKC,OArBL,GAqB6B,EArB7B;gBAAA,uCAuByBD,KAvBzB;gBAAA;;gBAAA;;cAAA;gBAAA;kBAAA;kBAAA;gBAAA;;gBAuBYE,SAvBZ;gBAwBQC,WAxBR,GAyBG,CAACX,YAAD,IAAiBA,YAAY,CAACY,OAAb,CAAqBF,SAAS,CAACG,QAA/B,IAA2C,CAAC,CAzBhE;gBA0BQC,UA1BR,GA2BGb,WAAW,IAAIA,WAAW,CAACW,OAAZ,CAAoBF,SAAS,CAACG,QAA9B,IAA0C,CAAC,CA3B7D;;gBAAA,MA6BMF,WAAW,IAAI,CAACG,UA7BtB;kBAAA;kBAAA;gBAAA;;gBAAA;gBAAA,OA8BmB,KAAKC,8BAAL,CACfpB,iBAASqB,IAAT,CAAcjB,cAAd,EAA8BW,SAAS,CAACO,YAAxC,CADe,EAEfP,SAAS,CAACQ,QAFK,EAGf,EAHe,EAIfT,OAJe,EAKfV,cALe,CA9BnB;;cAAA;gBA8BGU,OA9BH;;cAAA;gBAAA;gBAAA;;cAAA;gBAAA;gBAAA;;cAAA;gBAAA;gBAAA;;gBAAA;;cAAA;gBAAA;;gBAAA;;gBAAA;;cAAA;gBAAA,kCAwCQA,OAxCR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;;0HA2CA,kBACCU,WADD,EAECD,QAFD,EAGCE,WAHD,EAICX,OAJD;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAKCY,GALD,8DAKO,EALP;gBAOOC,SAPP,GAOiCb,OAPjC,aAOiCA,OAPjC,cAOiCA,OAPjC,GAO4C,EAP5C;gBAQKc,IARL,GAQgCH,WARhC;gBAUOI,IAVP,GAUc7B,iBAASC,QAAT,CAAkBuB,WAAlB,CAVd;gBAWKM,MAXL,GAWuC,SAXvC;;gBAAA,KAaKC,2BAASC,KAAT,CAAeR,WAAf,CAbL;kBAAA;kBAAA;gBAAA;;gBAAA,MAcQ,IAAIS,KAAJ,sCAAwCT,WAAxC,OAdR;;cAAA;gBAiBOU,eAjBP,GAiByB,KAAKC,kBAAL,CAAwBX,WAAxB,CAjBzB;;gBAAA,IAmBMO,2BAASK,aAAT,CAAuBZ,WAAvB,CAnBN;kBAAA;kBAAA;gBAAA;;gBAoBMa,KApBN,GAoBc,IApBd;;gBAAA,MAuBG,KAAK9B,0BAAL,IACA2B,eADA,aACAA,eADA,eACAA,eAAe,CAAEI,yBAxBpB;kBAAA;kBAAA;gBAAA;;gBA0BG,KAAK9C,EAAL,CAAQ+C,WAAR;gBA1BH;gBAAA,OA2BiB,KAAK/C,EAAL,CAAQgD,OAAR,CAAgBN,eAAe,CAACI,yBAAhC,CA3BjB;;cAAA;gBA2BGD,KA3BH;;cAAA;gBA8BE,IAAIA,KAAJ,EAAW;kBACVN,2BAASU,SAAT,CAAmBjB,WAAnB,EAAgCD,QAAhC;;kBACAO,MAAM,GAAG,WAAT;gBACA;;gBAjCH;gBAAA;;cAAA;gBAAA,MAmCE,KAAKY,eAAL,CAAqBlB,WAArB,EAAkCD,QAAlC,KACA,KAAKoB,wBAAL,CAA8BnB,WAA9B,CApCF;kBAAA;kBAAA;gBAAA;;gBAsCQoB,WAtCR,GAsCsB,KAAKC,aAAL,CAAmBrB,WAAnB,EAAgCE,GAAhC,CAtCtB;gBAuCQ7B,QAvCR;kBAuCqBiD,OAAO,EAAE;gBAvC9B,GAuCqC,KAAKjD,QAAL,CAAckD,GAAd,CAAkB,QAAlB,CAvCrC;gBAwCQC,eAxCR,GAwC0BnD,QAAQ,CAACiD,OAAT,CAAiB7B,OAAjB,CAAyB2B,WAAzB,IAAwC,CAAC,CAxCnE;gBAyCMP,MAzCN,GAyCc,CAACW,eAzCf;;gBAAA,MA2CM,CAACA,eAAD,IAAoB,KAAKC,qBAAL,EA3C1B;kBAAA;kBAAA;gBAAA;;gBA4CG,IAAI,CAAC,KAAKxC,yBAAN,IAAmC,KAAKD,qBAA5C,EAAmE;kBAClE,KAAKC,yBAAL,GAAiC,IAAjC;kBACA,KAAKjB,EAAL,CAAQ0D,UAAR,CAAmB,KAAK1C,qBAAxB;kBACA,KAAKhB,EAAL,CAAQ0D,UAAR,CAAmB,EAAnB;gBACA;;gBAhDJ;gBAAA,OAkDwB,KAAK1D,EAAL,CAAQ2D,MAAR,CAAe;kBACnCC,IAAI,EAAE,QAD6B;kBAEnCC,KAAK,YAAKT,WAAL,CAF8B;kBAGnCtD,OAAO,EAAE;oBACRgE,OAAO,EAAE,CACR;sBACCC,KAAK,EAAEC,gCADR;sBAECH,KAAK,EAAE;oBAFR,CADQ,EAKR;sBACCE,KAAK,EAAEE,2BADR;sBAECJ,KAAK,EAAE;oBAFR,CALQ,EASR;sBACCE,KAAK,EAAEG,kCADR;sBAECL,KAAK,EAAE;oBAFR,CATQ;kBADD;gBAH0B,CAAf,CAlDxB;;cAAA;gBAkDSM,MAlDT;;gBAuEG,IAAIA,MAAM,KAAKD,kCAAf,EAAwC;kBACvC7D,QAAQ,CAACiD,OAAT,CAAiBc,IAAjB,CAAsBhB,WAAtB;kBACA,KAAK/C,QAAL,CAAcgE,GAAd,CAAkB,QAAlB,EAA4BhE,QAA5B;gBACA;;gBAEDwC,MAAK,GAAGsB,MAAM,KAAKH,gCAAnB;;cA5EH;gBA+EE,IAAInB,MAAJ,EAAW;kBACVN,2BAASU,SAAT,CAAmBjB,WAAnB,EAAgCD,QAAhC;;kBACAO,MAAM,GAAG,SAAT;gBACA;;cAlFH;gBAqFC,IAAI,CAACF,IAAL,EAAW;kBACVA,IAAI,GAAGM,eAAH,aAAGA,eAAH,uBAAGA,eAAe,CAAET,WAAxB;gBACA;;gBAvFF,IAyFMG,IAzFN;kBAAA;kBAAA;gBAAA;;gBAAA,MA0FQ,IAAIK,KAAJ,2CAC8BT,WAAW,CAACsC,OAAZ,CAClCpC,GADkC,EAElC,EAFkC,CAD9B,uDA1FR;;cAAA;gBAkGCC,SAAS,CAACiC,IAAV,CAAe;kBAAE/B,IAAI,EAAJA,IAAF;kBAAQJ,WAAW,EAAEG,IAArB;kBAA2BmC,IAAI,EAAEvC,WAAjC;kBAA8CM,MAAM,EAANA;gBAA9C,CAAf;gBAlGD,kCAoGQH,SApGR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;WAuGA,yBAAwBH,WAAxB,EAA6CD,QAA7C,EAA+D;MAC9D,OAAOQ,2BAASW,eAAT,CAAyBlB,WAAzB,EAAsCD,QAAtC,CAAP;IACA;;;WAED,uBAAsBC,WAAtB,EAA2CE,GAA3C,EAAwD;MACvD,IAAIsC,YAAY,GAAGxC,WAAW,CAACsC,OAAZ,CAAoBpC,GAApB,EAAyB,EAAzB,CAAnB;;MACA,IAAIsC,YAAY,CAAC,CAAD,CAAZ,KAAoBhE,iBAASiE,GAAjC,EAAsC;QACrCD,YAAY,GAAGA,YAAY,CAACE,MAAb,CAAoB,CAApB,CAAf;MACA;;MACD,OAAOF,YAAP;IACA;;;WAED,kCAAiCxC,WAAjC,EAA+D;MAAA;;MAC9D,IAAI,CAAC,KAAK9B,WAAV,EAAuB;QACtB,OAAO,IAAP;MACA;;MAED,IAAI,KAAKA,WAAL,KAAqB,iBAAzB,EAA4C;QAC3C,OAAO,IAAP;MACA;;MAED,IAAI+B,WAAwC,GAC3C,KAAKU,kBAAL,CAAwBX,WAAxB,CADD;MAGA,gCAAOC,WAAP,aAAOA,WAAP,uBAAOA,WAAW,CAAE0C,0BAApB,yEAAkD,KAAlD;IACA;;;WAED,4BAA2B3C,WAA3B,EAA6E;MAAA;;MAC5E,IAAM4C,KAAK,GAAG5C,WAAW,CAAC6C,WAAZ,EAAd;;MAD4E,qEAE5D,KAAK1E,gBAFuD,yEAEnC,EAFmC;MAAA;;MAAA;QAE5E,uDAA6C;UAAA,IAAlC2E,CAAkC;;UAC5C,IAAIF,KAAK,CAACG,MAAN,CAAaD,CAAC,CAACP,IAAF,CAAOM,WAAP,EAAb,IAAqC,CAAC,CAA1C,EAA6C;YAC5C,OAAOC,CAAP;UACA;QACD;MAN2E;QAAA;MAAA;QAAA;MAAA;;MAQ5E,OAAOE,SAAP;IACA;;;WAED,iCAAgC;MAC/B,IACC,KAAKjE,0BAAL,IACA,KAAKb,WAAL,KAAqB,eAFtB,EAGE;QACD,OAAO,IAAP;MACA;;MAED,OAAO,KAAP;IACA;;;WAED,qCACC+E,SADD,EAECC,gBAFD,EAGE;MACD,IAAM1C,KAAK,GACVD,2BAAS4C,YAAT,CAAsBF,SAAtB,KACAG,eAAGC,SAAH,CAAaJ,SAAb,EAAwBK,WAAxB,EADA,IAEA9E,iBAAS+E,OAAT,CAAiBN,SAAjB,EAA4BO,MAA5B,KAAuC,CAHxC;MAIA,OAAOhD,KAAK,GAAGD,2BAASkD,WAAT,CAAqBR,SAArB,EAAgCC,gBAAhC,CAAH,GAAuDD,SAAnE;IACA"}
|
|
1
|
+
{"version":3,"file":"AbstractWriter.js","names":["AbstractWriter","options","templates","ui","term","upgradeMode","fileDescriptions","linter","settings","file","startLoading","pathUtil","basename","fix","context","destinationDir","filesToWrite","filesToSkip","shouldConfirmBeforeWriting","firstFileWriteMessage","hasShownFirstWriteMessage","directoryTemplate","kind","code","files","results","generated","shouldWrite","indexOf","filename","shouldSkip","writeFileIfChangedMixinResults","join","relativePath","contents","destination","description","cwd","myResults","desc","name","action","diskUtil","isDir","Error","fileDescription","getFileDescription","doesFileExist","write","confirmPromptOnFirstWrite","stopLoading","confirm","writeFile","isFileDifferent","shouldOverwriteIfChanged","cleanedName","cleanFilename","skipped","get","isAlwaysSkipped","shouldAskForOverwrite","renderLine","prompt","type","label","choices","value","FILE_ACTION_OVERWRITE","FILE_ACTION_SKIP","FILE_ACTION_ALWAYS_SKIP","answer","push","set","replace","path","relativeFile","sep","substr","shouldOverwriteWhenChanged","lower","toLowerCase","d","search","undefined","dirOrFile","fallbackFileName","doesDirExist","fs","lstatSync","isDirectory","extname","length","resolvePath"],"sources":["../../src/writers/AbstractWriter.ts"],"sourcesContent":["import fs from 'fs'\nimport pathUtil from 'path'\nimport { diskUtil, SettingsService } from '@sprucelabs/spruce-skill-utils'\nimport { DirectoryTemplateCode, Templates } from '@sprucelabs/spruce-templates'\nimport {\n\tFILE_ACTION_ALWAYS_SKIP,\n\tFILE_ACTION_OVERWRITE,\n\tFILE_ACTION_SKIP,\n} from '../constants'\nimport LintService from '../services/LintService'\nimport { FileDescription, GeneratedFile, UpgradeMode } from '../types/cli.types'\nimport { GraphicsInterface } from '../types/cli.types'\n\nexport type WriteResults = GeneratedFile[]\n\nexport interface WriterOptions {\n\ttemplates: Templates\n\tterm: GraphicsInterface\n\tupgradeMode?: UpgradeMode\n\tfileDescriptions: FileDescription[]\n\tlinter?: LintService\n\tsettings: SettingsService\n}\n\nexport interface WriteDirectoryTemplateOptions {\n\tdestinationDir: string\n\tcode: DirectoryTemplateCode\n\tfilesToWrite?: string[]\n\tfilesToSkip?: string[]\n\tcontext: any\n\tshouldConfirmBeforeWriting?: boolean\n\tfirstFileWriteMessage?: string\n}\n\nexport default abstract class AbstractWriter {\n\tprotected templates: Templates\n\tprotected ui: GraphicsInterface\n\tprivate linter?: LintService\n\tprivate upgradeMode: UpgradeMode\n\tprivate fileDescriptions: FileDescription[] = []\n\tprivate shouldConfirmBeforeWriting = true\n\tprivate firstFileWriteMessage?: string\n\tprivate hasShownFirstWriteMessage = false\n\tprivate settings: SettingsService<string>\n\n\tpublic constructor(options: WriterOptions) {\n\t\tthis.templates = options.templates\n\t\tthis.ui = options.term\n\t\tthis.upgradeMode = options.upgradeMode\n\t\tthis.fileDescriptions = options.fileDescriptions\n\t\tthis.linter = options.linter\n\t\tthis.settings = options.settings\n\t}\n\n\tprotected async lint(file: string) {\n\t\tthis.ui.startLoading(`Linting ${pathUtil.basename(file)}...`)\n\t\tawait this.linter?.fix(file).catch(() => {})\n\t}\n\n\tprotected async writeDirectoryTemplate(\n\t\toptions: WriteDirectoryTemplateOptions\n\t) {\n\t\tconst {\n\t\t\tcontext,\n\t\t\tdestinationDir,\n\t\t\tfilesToWrite,\n\t\t\tfilesToSkip,\n\t\t\tshouldConfirmBeforeWriting = true,\n\t\t\tfirstFileWriteMessage,\n\t\t} = options\n\n\t\tthis.shouldConfirmBeforeWriting = shouldConfirmBeforeWriting\n\t\tthis.firstFileWriteMessage = firstFileWriteMessage\n\t\tthis.hasShownFirstWriteMessage = false\n\n\t\tconst files = await this.templates.directoryTemplate({\n\t\t\tkind: options.code,\n\t\t\tcontext: context ?? {},\n\t\t})\n\n\t\tlet results: WriteResults = []\n\n\t\tfor (const generated of files) {\n\t\t\tconst shouldWrite =\n\t\t\t\t!filesToWrite || filesToWrite.indexOf(generated.filename) > -1\n\t\t\tconst shouldSkip =\n\t\t\t\tfilesToSkip && filesToSkip.indexOf(generated.filename) > -1\n\n\t\t\tif (shouldWrite && !shouldSkip) {\n\t\t\t\tresults = await this.writeFileIfChangedMixinResults(\n\t\t\t\t\tpathUtil.join(destinationDir, generated.relativePath),\n\t\t\t\t\tgenerated.contents,\n\t\t\t\t\t'',\n\t\t\t\t\tresults,\n\t\t\t\t\tdestinationDir\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\n\t\treturn results\n\t}\n\n\tprotected async writeFileIfChangedMixinResults(\n\t\tdestination: string,\n\t\tcontents: string,\n\t\tdescription: string,\n\t\tresults?: WriteResults,\n\t\tcwd = ''\n\t): Promise<WriteResults> {\n\t\tconst myResults: WriteResults = results ?? []\n\t\tlet desc: string | undefined = description\n\n\t\tconst name = pathUtil.basename(destination)\n\t\tlet action: GeneratedFile['action'] = 'skipped'\n\n\t\tif (diskUtil.isDir(destination)) {\n\t\t\tthrow new Error(`Can't write to a directory ${destination}.`)\n\t\t}\n\n\t\tconst fileDescription = this.getFileDescription(destination)\n\n\t\tif (!diskUtil.doesFileExist(destination)) {\n\t\t\tlet write = true\n\n\t\t\tif (\n\t\t\t\tthis.shouldConfirmBeforeWriting &&\n\t\t\t\tfileDescription?.confirmPromptOnFirstWrite\n\t\t\t) {\n\t\t\t\tthis.ui.stopLoading()\n\t\t\t\twrite = await this.ui.confirm(fileDescription.confirmPromptOnFirstWrite)\n\t\t\t}\n\n\t\t\tif (write) {\n\t\t\t\tdiskUtil.writeFile(destination, contents)\n\t\t\t\taction = 'generated'\n\t\t\t}\n\t\t} else if (\n\t\t\tthis.isFileDifferent(destination, contents) &&\n\t\t\tthis.shouldOverwriteIfChanged(destination)\n\t\t) {\n\t\t\tconst cleanedName = this.cleanFilename(destination, cwd)\n\t\t\tconst settings = { skipped: [], ...this.settings.get('writer') }\n\t\t\tconst isAlwaysSkipped = settings.skipped.indexOf(cleanedName) > -1\n\t\t\tlet write = !isAlwaysSkipped\n\n\t\t\tif (!isAlwaysSkipped && this.shouldAskForOverwrite()) {\n\t\t\t\tif (!this.hasShownFirstWriteMessage && this.firstFileWriteMessage) {\n\t\t\t\t\tthis.hasShownFirstWriteMessage = true\n\t\t\t\t\tthis.ui.renderLine(this.firstFileWriteMessage)\n\t\t\t\t\tthis.ui.renderLine('')\n\t\t\t\t}\n\n\t\t\t\tconst answer = await this.ui.prompt({\n\t\t\t\t\ttype: 'select',\n\t\t\t\t\tlabel: `${cleanedName}`,\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tchoices: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvalue: FILE_ACTION_OVERWRITE,\n\t\t\t\t\t\t\t\tlabel: 'Overwrite',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvalue: FILE_ACTION_SKIP,\n\t\t\t\t\t\t\t\tlabel: 'Skip',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvalue: FILE_ACTION_ALWAYS_SKIP,\n\t\t\t\t\t\t\t\tlabel: 'Always skip',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t})\n\n\t\t\t\tif (answer === FILE_ACTION_ALWAYS_SKIP) {\n\t\t\t\t\tsettings.skipped.push(cleanedName)\n\t\t\t\t\tthis.settings.set('writer', settings)\n\t\t\t\t}\n\n\t\t\t\twrite = answer === FILE_ACTION_OVERWRITE\n\t\t\t}\n\n\t\t\tif (write) {\n\t\t\t\tdiskUtil.writeFile(destination, contents)\n\t\t\t\taction = 'updated'\n\t\t\t}\n\t\t}\n\n\t\tif (!desc) {\n\t\t\tdesc = fileDescription?.description\n\t\t}\n\n\t\tif (!desc) {\n\t\t\tthrow new Error(\n\t\t\t\t`No FileDescription provided for ${destination.replace(\n\t\t\t\t\tcwd,\n\t\t\t\t\t''\n\t\t\t\t)}. Check your feature's fileDescriptions property.`\n\t\t\t)\n\t\t}\n\n\t\tmyResults.push({ name, description: desc, path: destination, action })\n\n\t\treturn myResults\n\t}\n\n\tprivate isFileDifferent(destination: string, contents: string) {\n\t\treturn diskUtil.isFileDifferent(destination, contents)\n\t}\n\n\tprivate cleanFilename(destination: string, cwd: string) {\n\t\tlet relativeFile = destination.replace(cwd, '')\n\t\tif (relativeFile[0] === pathUtil.sep) {\n\t\t\trelativeFile = relativeFile.substr(1)\n\t\t}\n\t\treturn relativeFile\n\t}\n\n\tprivate shouldOverwriteIfChanged(destination: string): boolean {\n\t\tif (!this.upgradeMode) {\n\t\t\treturn true\n\t\t}\n\n\t\tif (this.upgradeMode === 'forceEverything') {\n\t\t\treturn true\n\t\t}\n\n\t\tlet description: FileDescription | undefined =\n\t\t\tthis.getFileDescription(destination)\n\n\t\treturn description?.shouldOverwriteWhenChanged ?? false\n\t}\n\n\tprivate getFileDescription(destination: string): FileDescription | undefined {\n\t\tconst lower = destination.toLowerCase()\n\t\tfor (const d of this.fileDescriptions ?? []) {\n\t\t\tif (lower.search(d.path.toLowerCase()) > -1) {\n\t\t\t\treturn d\n\t\t\t}\n\t\t}\n\n\t\treturn undefined\n\t}\n\n\tprivate shouldAskForOverwrite() {\n\t\tif (\n\t\t\tthis.shouldConfirmBeforeWriting &&\n\t\t\tthis.upgradeMode === 'askForChanged'\n\t\t) {\n\t\t\treturn true\n\t\t}\n\n\t\treturn false\n\t}\n\n\tprotected resolveFilenameWithFallback(\n\t\tdirOrFile: string,\n\t\tfallbackFileName: string\n\t) {\n\t\tconst isDir =\n\t\t\tdiskUtil.doesDirExist(dirOrFile) &&\n\t\t\tfs.lstatSync(dirOrFile).isDirectory() &&\n\t\t\tpathUtil.extname(dirOrFile).length === 0\n\t\treturn isDir ? diskUtil.resolvePath(dirOrFile, fallbackFileName) : dirOrFile\n\t}\n}\n"],"mappings":"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"}
|