@sprucelabs/spruce-cli 14.22.10 → 14.24.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +39 -0
- package/build/.spruce/events/appointments/didBookAppointments.v2021_06_23.contract.d.ts +10 -0
- package/build/.spruce/events/appointments/didBookAppointments.v2021_06_23.contract.js +24 -0
- package/build/.spruce/events/appointments/didBookAppointments.v2021_06_23.contract.js.map +1 -0
- package/build/.spruce/events/events.contract.d.ts +346 -36
- package/build/.spruce/events/events.contract.js +9 -1
- package/build/.spruce/events/events.contract.js.map +1 -1
- package/build/.spruce/events/forms/convertPdfToForm.v2021_07_02.contract.d.ts +20 -2
- package/build/.spruce/events/forms/convertPdfToForm.v2021_07_02.contract.js +23 -5
- package/build/.spruce/events/forms/convertPdfToForm.v2021_07_02.contract.js.map +1 -1
- package/build/.spruce/events/forms/convertPdfToSchemas.v2021_07_02.contract.d.ts +20 -2
- package/build/.spruce/events/forms/convertPdfToSchemas.v2021_07_02.contract.js +23 -5
- package/build/.spruce/events/forms/convertPdfToSchemas.v2021_07_02.contract.js.map +1 -1
- package/build/.spruce/events/forms/createForm.v2021_07_02.contract.d.ts +20 -2
- package/build/.spruce/events/forms/createForm.v2021_07_02.contract.js +23 -5
- package/build/.spruce/events/forms/createForm.v2021_07_02.contract.js.map +1 -1
- package/build/.spruce/events/forms/deleteCompletedForm.v2021_07_02.contract.d.ts +20 -2
- package/build/.spruce/events/forms/deleteCompletedForm.v2021_07_02.contract.js +23 -5
- package/build/.spruce/events/forms/deleteCompletedForm.v2021_07_02.contract.js.map +1 -1
- package/build/.spruce/events/forms/getCompletedForm.v2021_07_02.contract.d.ts +15 -0
- package/build/.spruce/events/forms/getCompletedForm.v2021_07_02.contract.js +17 -2
- package/build/.spruce/events/forms/getCompletedForm.v2021_07_02.contract.js.map +1 -1
- package/build/.spruce/events/forms/listCompletedForms.v2021_07_02.contract.d.ts +20 -3
- package/build/.spruce/events/forms/listCompletedForms.v2021_07_02.contract.js +23 -6
- package/build/.spruce/events/forms/listCompletedForms.v2021_07_02.contract.js.map +1 -1
- package/build/.spruce/events/forms/listForms.v2021_07_02.contract.d.ts +38 -4
- package/build/.spruce/events/forms/listForms.v2021_07_02.contract.js +45 -11
- package/build/.spruce/events/forms/listForms.v2021_07_02.contract.js.map +1 -1
- package/build/.spruce/events/heartwood/didRegisterSkillViews.v2021_02_11.contract.d.ts +15 -0
- package/build/.spruce/events/heartwood/didRegisterSkillViews.v2021_02_11.contract.js +17 -2
- package/build/.spruce/events/heartwood/didRegisterSkillViews.v2021_02_11.contract.js.map +1 -1
- package/build/.spruce/events/heartwood/generateUrl.v2021_02_11.contract.d.ts +21 -4
- package/build/.spruce/events/heartwood/generateUrl.v2021_02_11.contract.js +24 -7
- package/build/.spruce/events/heartwood/generateUrl.v2021_02_11.contract.js.map +1 -1
- package/build/.spruce/events/heartwood/getSkillViews.v2021_02_11.contract.d.ts +21 -1
- package/build/.spruce/events/heartwood/getSkillViews.v2021_02_11.contract.js +26 -6
- package/build/.spruce/events/heartwood/getSkillViews.v2021_02_11.contract.js.map +1 -1
- package/build/.spruce/events/mySkill163459634973936127/myCoolEvent.v2021_01_22.contract.d.ts +38 -0
- package/build/.spruce/events/mySkill163459634973936127/myCoolEvent.v2021_01_22.contract.js +48 -0
- package/build/.spruce/events/mySkill163459634973936127/myCoolEvent.v2021_01_22.contract.js.map +1 -0
- package/build/.spruce/events/mySkill163493473102035607/myCoolEvent.v2021_01_22.contract.d.ts +38 -0
- package/build/.spruce/events/mySkill163493473102035607/myCoolEvent.v2021_01_22.contract.js +48 -0
- package/build/.spruce/events/mySkill163493473102035607/myCoolEvent.v2021_01_22.contract.js.map +1 -0
- package/build/.spruce/events/mySkill163493479880935941/myCoolEvent.v2021_01_22.contract.d.ts +38 -0
- package/build/.spruce/events/mySkill163493479880935941/myCoolEvent.v2021_01_22.contract.js +48 -0
- package/build/.spruce/events/mySkill163493479880935941/myCoolEvent.v2021_01_22.contract.js.map +1 -0
- package/build/.spruce/schemas/appointments/v2021_06_23/appointments.schema.d.ts +3 -0
- package/build/.spruce/schemas/appointments/v2021_06_23/appointments.schema.js +28 -0
- package/build/.spruce/schemas/appointments/v2021_06_23/appointments.schema.js.map +1 -0
- package/build/.spruce/schemas/appointments/v2021_06_23/didBookAppointmentsEmitPayload.schema.d.ts +3 -0
- package/build/.spruce/schemas/appointments/v2021_06_23/didBookAppointmentsEmitPayload.schema.js +36 -0
- package/build/.spruce/schemas/appointments/v2021_06_23/didBookAppointmentsEmitPayload.schema.js.map +1 -0
- package/build/.spruce/schemas/appointments/v2021_06_23/didBookAppointmentsEmitTarget.schema.d.ts +3 -0
- package/build/.spruce/schemas/appointments/v2021_06_23/didBookAppointmentsEmitTarget.schema.js +28 -0
- package/build/.spruce/schemas/appointments/v2021_06_23/didBookAppointmentsEmitTarget.schema.js.map +1 -0
- package/build/.spruce/schemas/appointments/v2021_06_23/didBookAppointmentsEmitTargetAndPayload.schema.d.ts +3 -0
- package/build/.spruce/schemas/appointments/v2021_06_23/didBookAppointmentsEmitTargetAndPayload.schema.js +56 -0
- package/build/.spruce/schemas/appointments/v2021_06_23/didBookAppointmentsEmitTargetAndPayload.schema.js.map +1 -0
- package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitTargetAndPayload.schema.js +0 -10
- package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/schemas.types.d.ts +678 -604
- package/build/.spruce/schemas/schemas.types.js.map +1 -1
- package/build/__tests__/behavioral/AddingADependency.test.d.ts +9 -0
- package/build/__tests__/behavioral/AddingADependency.test.js +273 -0
- package/build/__tests__/behavioral/AddingADependency.test.js.map +1 -0
- package/build/__tests__/behavioral/CreatingADataStore.test.js.map +1 -1
- package/build/__tests__/behavioral/ManagingDependencies.test.d.ts +9 -0
- package/build/__tests__/behavioral/ManagingDependencies.test.js +279 -0
- package/build/__tests__/behavioral/ManagingDependencies.test.js.map +1 -0
- package/build/__tests__/behavioral/SyncingEventsOnlyFromDependencies.test.d.ts +8 -0
- package/build/__tests__/behavioral/SyncingEventsOnlyFromDependencies.test.js +209 -0
- package/build/__tests__/behavioral/SyncingEventsOnlyFromDependencies.test.js.map +1 -0
- package/build/__tests__/behavioral/events/CreatingAListener.test.js +9 -5
- package/build/__tests__/behavioral/events/CreatingAListener.test.js.map +1 -1
- package/build/__tests__/behavioral/events/KeepingEventsInSync.test.js +14 -7
- package/build/__tests__/behavioral/events/KeepingEventsInSync.test.js.map +1 -1
- package/build/__tests__/behavioral/events/KeepingEventsInSync2.test.js +43 -12
- package/build/__tests__/behavioral/events/KeepingEventsInSync2.test.js.map +1 -1
- package/build/__tests__/behavioral/views/CreatingATheme.test.js +8 -2
- package/build/__tests__/behavioral/views/CreatingATheme.test.js.map +1 -1
- package/build/__tests__/behavioral/views/SettingUpViews.test.d.ts +1 -0
- package/build/__tests__/behavioral/views/SettingUpViews.test.js +48 -3
- package/build/__tests__/behavioral/views/SettingUpViews.test.js.map +1 -1
- package/build/__tests__/implementation/EventStore.test.js +4 -3
- package/build/__tests__/implementation/EventStore.test.js.map +1 -1
- package/build/__tests__/implementation/EventTemplateItemBuilder.test.d.ts +1 -0
- package/build/__tests__/implementation/EventTemplateItemBuilder.test.js +21 -3
- package/build/__tests__/implementation/EventTemplateItemBuilder.test.js.map +1 -1
- package/build/errors/SpruceError.js +2 -2
- package/build/errors/SpruceError.js.map +1 -1
- package/build/features/FeatureInstaller.d.ts +1 -1
- package/build/features/FeatureInstallerFactory.js +4 -2
- package/build/features/FeatureInstallerFactory.js.map +1 -1
- package/build/features/dependencies/DependencyFeature.d.ts +16 -0
- package/build/features/dependencies/DependencyFeature.js +92 -0
- package/build/features/dependencies/DependencyFeature.js.map +1 -0
- package/build/features/dependencies/actions/AddAction.d.ts +33 -0
- package/build/features/dependencies/actions/AddAction.js +154 -0
- package/build/features/dependencies/actions/AddAction.js.map +1 -0
- package/build/features/dependencies/actions/ManageAction.d.ts +19 -0
- package/build/features/dependencies/actions/ManageAction.js +161 -0
- package/build/features/dependencies/actions/ManageAction.js.map +1 -0
- package/build/features/event/EventFeature.js +2 -1
- package/build/features/event/EventFeature.js.map +1 -1
- package/build/features/event/builders/EventContractBuilder.d.ts +3 -0
- package/build/features/event/builders/EventContractBuilder.js +12 -8
- package/build/features/event/builders/EventContractBuilder.js.map +1 -1
- package/build/features/event/stores/EventStore.d.ts +2 -1
- package/build/features/event/stores/EventStore.js +33 -25
- package/build/features/event/stores/EventStore.js.map +1 -1
- package/build/features/schema/actions/SyncAction.js +4 -2
- package/build/features/schema/actions/SyncAction.js.map +1 -1
- package/build/features/skill/actions/RebuildAction.js.map +1 -1
- package/build/features/skill/stores/SkillStore.d.ts +4 -0
- package/build/features/skill/stores/SkillStore.js +39 -15
- package/build/features/skill/stores/SkillStore.js.map +1 -1
- package/build/features/view/ViewFeature.js +5 -1
- package/build/features/view/ViewFeature.js.map +1 -1
- package/build/interfaces/SpyInterface.d.ts +2 -1
- package/build/interfaces/SpyInterface.js +67 -7
- package/build/interfaces/SpyInterface.js.map +1 -1
- package/build/services/DependencyService.d.ts +13 -0
- package/build/services/DependencyService.js +49 -0
- package/build/services/DependencyService.js.map +1 -0
- package/build/services/ServiceFactory.d.ts +2 -0
- package/build/services/ServiceFactory.js +5 -0
- package/build/services/ServiceFactory.js.map +1 -1
- package/build/templateItemBuilders/EventTemplateItemBuilder.js +9 -0
- package/build/templateItemBuilders/EventTemplateItemBuilder.js.map +1 -1
- package/build/tests/AbstractCliTest.js +2 -36
- package/build/tests/AbstractCliTest.js.map +1 -1
- package/build/tests/fixtures/SkillFixture.d.ts +2 -0
- package/build/tests/fixtures/SkillFixture.js +8 -8
- package/build/tests/fixtures/SkillFixture.js.map +1 -1
- package/build/utilities/action.utility.js +1 -5
- package/build/utilities/action.utility.js.map +1 -1
- package/package.json +26 -26
- package/src/.spruce/events/appointments/didBookAppointments.v2021_06_23.contract.ts +15 -0
- package/src/.spruce/events/events.contract.ts +32 -8
- package/src/.spruce/events/forms/convertPdfToForm.v2021_07_02.contract.ts +20 -2
- package/src/.spruce/events/forms/convertPdfToSchemas.v2021_07_02.contract.ts +20 -2
- package/src/.spruce/events/forms/createForm.v2021_07_02.contract.ts +20 -2
- package/src/.spruce/events/forms/deleteCompletedForm.v2021_07_02.contract.ts +20 -2
- package/src/.spruce/events/forms/getCompletedForm.v2021_07_02.contract.ts +15 -0
- package/src/.spruce/events/forms/listCompletedForms.v2021_07_02.contract.ts +20 -3
- package/src/.spruce/events/forms/listForms.v2021_07_02.contract.ts +38 -4
- package/src/.spruce/events/heartwood/didRegisterSkillViews.v2021_02_11.contract.ts +15 -0
- package/src/.spruce/events/heartwood/generateUrl.v2021_02_11.contract.ts +21 -4
- package/src/.spruce/events/heartwood/getSkillViews.v2021_02_11.contract.ts +21 -1
- package/src/.spruce/events/mySkill163459634973936127/myCoolEvent.v2021_01_22.contract.ts +45 -0
- package/src/.spruce/events/mySkill163493473102035607/myCoolEvent.v2021_01_22.contract.ts +45 -0
- package/src/.spruce/events/mySkill163493479880935941/myCoolEvent.v2021_01_22.contract.ts +45 -0
- package/src/.spruce/schemas/appointments/v2021_06_23/appointments.schema.ts +22 -0
- package/src/.spruce/schemas/appointments/v2021_06_23/didBookAppointmentsEmitPayload.schema.ts +24 -0
- package/src/.spruce/schemas/appointments/v2021_06_23/didBookAppointmentsEmitTarget.schema.ts +22 -0
- package/src/.spruce/schemas/appointments/v2021_06_23/didBookAppointmentsEmitTargetAndPayload.schema.ts +36 -0
- package/src/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitTargetAndPayload.schema.ts +0 -6
- package/src/.spruce/schemas/schemas.types.ts +815 -720
- package/src/__tests__/behavioral/AddingADependency.test.ts +98 -0
- package/src/__tests__/behavioral/CreatingADataStore.test.ts +2 -0
- package/src/__tests__/behavioral/ManagingDependencies.test.ts +115 -0
- package/src/__tests__/behavioral/SyncingEventsOnlyFromDependencies.test.ts +70 -0
- package/src/__tests__/behavioral/events/CreatingAListener.test.ts +5 -0
- package/src/__tests__/behavioral/events/KeepingEventsInSync.test.ts +6 -0
- package/src/__tests__/behavioral/events/KeepingEventsInSync2.test.ts +27 -0
- package/src/__tests__/behavioral/views/CreatingATheme.test.ts +4 -0
- package/src/__tests__/behavioral/views/SettingUpViews.test.ts +23 -0
- package/src/__tests__/implementation/EventStore.test.ts +5 -2
- package/src/__tests__/implementation/EventTemplateItemBuilder.test.ts +20 -1
- package/src/errors/SpruceError.ts +1 -1
- package/src/features/FeatureInstallerFactory.ts +3 -0
- package/src/features/dependencies/DependencyFeature.ts +27 -0
- package/src/features/dependencies/actions/AddAction.ts +63 -0
- package/src/features/dependencies/actions/ManageAction.ts +84 -0
- package/src/features/event/EventFeature.ts +1 -0
- package/src/features/event/builders/EventContractBuilder.ts +9 -2
- package/src/features/event/stores/EventStore.ts +20 -11
- package/src/features/schema/actions/SyncAction.ts +6 -3
- package/src/features/skill/actions/RebuildAction.ts +2 -0
- package/src/features/skill/stores/SkillStore.ts +8 -1
- package/src/features/view/ViewFeature.ts +5 -0
- package/src/interfaces/SpyInterface.ts +29 -2
- package/src/services/DependencyService.ts +27 -0
- package/src/services/ServiceFactory.ts +6 -0
- package/src/templateItemBuilders/EventTemplateItemBuilder.ts +10 -0
- package/src/tests/AbstractCliTest.ts +1 -21
- package/src/tests/fixtures/SkillFixture.ts +6 -2
- package/src/utilities/action.utility.ts +1 -6
- package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitTarget.schema.d.ts +0 -3
- package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitTarget.schema.js +0 -28
- package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitTarget.schema.js.map +0 -1
- package/src/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitTarget.schema.ts +0 -22
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/features/schema/actions/SyncAction.ts"],"names":["SyncAction","syncSchemasActionSchema","Writer","Store","options","normalizedOptions","validateAndNormalizeOptions","isInCoreSchemasModule","Service","get","schemaTypesDestinationDirOrFile","fieldTypesDestinationDir","schemaLookupDir","addonsLookupDir","shouldEnableVersioning","globalSchemaNamespace","shouldFetchRemoteSchemas","shouldGenerateCoreSchemaTypes","shouldFetchLocalSchemas","generateFieldTypes","generateStandaloneTypesFile","deleteDestinationDirIfNoSchemas","shouldFetchCoreSchemas","registerBuiltSchemas","syncingMessage","deleteOrphanedSchemas","moduleToImportFromWhenRemote","shouldInstallMissingDependencies","ui","startLoading","loadCurrentSkillsNamespace","localNamespace","shouldImportCoreSchemas","CORE_NAMESPACE","schemaDiskUtil","resolveTypeFilePaths","cwd","resolvedFieldTypesDestination","resolvedSchemaTypesDestinationDirOrFile","resolvedSchemaTypesDestination","generateFieldTemplateItems","shouldGenerateFieldTypes","fieldTemplateItems","fieldErrors","generateFieldFiles","schemaErrors","typeResults","generateSchemaTemplateItems","templateResults","push","schemaTemplateItems","length","diskUtil","deleteDir","optionallyInstallRemoteModules","generateValueTypes","resolvedDestination","undefined","valueTypes","schemaWriter","writeSchemasAndTypes","typesTemplate","p","deleteEmptyDirs","isDir","pathUtil","dirname","stopLoading","errors","actionUtil","mergeActionResults","coreSyncResults","files","meta","forceInstall","modules","map","item","importFrom","filter","i","notInstalled","pkg","m","isInstalled","indexOf","renderSection","headline","lines","confirm","SpruceError","code","friendlyMessage","install","schemaStore","fetchSchemas","localSchemaLookupDir","didUpdateHandler","message","schemasByNamespace","hashSpruceDestination","replace","resolveHashSprucePath","total","totalNamespaces","Object","keys","namespace","schemaTemplateItemBuilder","SchemaTemplateItemBuilder","buildTemplateItems","action","Action","execute","results","builder","ValueTypeBuilder","AbstractAction"],"mappings":"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","sourcesContent":["import pathUtil from 'path'\nimport { SchemaTemplateItem, FieldTemplateItem } from '@sprucelabs/schema'\nimport { CORE_NAMESPACE, diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { ValueTypes } from '@sprucelabs/spruce-templates'\nimport { SpruceSchemas } from '#spruce/schemas/schemas.types'\nimport syncSchemasActionSchema from '#spruce/schemas/spruceCli/v2020_07_22/syncSchemasOptions.schema'\nimport SpruceError from '../../../errors/SpruceError'\nimport SchemaTemplateItemBuilder from '../../../templateItemBuilders/SchemaTemplateItemBuilder'\nimport { GeneratedFile } from '../../../types/cli.types'\nimport actionUtil from '../../../utilities/action.utility'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\nimport schemaDiskUtil from '../utilities/schemaDisk.utility'\nimport ValueTypeBuilder from '../ValueTypeBuilder'\n\ntype OptionsSchema =\n\tSpruceSchemas.SpruceCli.v2020_07_22.SyncSchemasOptionsSchema\ntype Options = SpruceSchemas.SpruceCli.v2020_07_22.SyncSchemasOptions\nexport default class SyncAction extends AbstractAction<OptionsSchema> {\n\tpublic optionsSchema = syncSchemasActionSchema\n\tpublic commandAliases = ['sync.schemas']\n\tpublic invocationMessage = 'Building schemas and generating types... 📃'\n\n\tprivate readonly schemaWriter = this.Writer('schema')\n\tprivate readonly schemaStore = this.Store('schema')\n\n\tpublic async execute(options: Options): Promise<FeatureActionResponse> {\n\t\tconst normalizedOptions = this.validateAndNormalizeOptions(options)\n\t\tconst isInCoreSchemasModule =\n\t\t\tthis.Service('pkg').get('name') === '@sprucelabs/spruce-core-schemas'\n\n\t\tlet {\n\t\t\tschemaTypesDestinationDirOrFile,\n\t\t\tfieldTypesDestinationDir,\n\t\t\tschemaLookupDir,\n\t\t\taddonsLookupDir,\n\t\t\tshouldEnableVersioning,\n\t\t\tglobalSchemaNamespace,\n\t\t\tshouldFetchRemoteSchemas,\n\t\t\tshouldGenerateCoreSchemaTypes = isInCoreSchemasModule,\n\t\t\tshouldFetchLocalSchemas,\n\t\t\tgenerateFieldTypes,\n\t\t\tgenerateStandaloneTypesFile,\n\t\t\tdeleteDestinationDirIfNoSchemas,\n\t\t\tshouldFetchCoreSchemas,\n\t\t\tregisterBuiltSchemas,\n\t\t\tsyncingMessage,\n\t\t\tdeleteOrphanedSchemas,\n\t\t\tmoduleToImportFromWhenRemote,\n\t\t\tshouldInstallMissingDependencies,\n\t\t} = normalizedOptions\n\n\t\tthis.ui.startLoading('Loading details about your skill... 🧐')\n\n\t\tlet localNamespace = await this.Store('skill').loadCurrentSkillsNamespace()\n\t\tlet shouldImportCoreSchemas = true\n\n\t\tif (shouldGenerateCoreSchemaTypes) {\n\t\t\tshouldFetchRemoteSchemas = false\n\t\t\tshouldFetchLocalSchemas = true\n\t\t\tshouldFetchCoreSchemas = false\n\t\t\tregisterBuiltSchemas = true\n\t\t\tgenerateStandaloneTypesFile = true\n\t\t\tshouldImportCoreSchemas = false\n\t\t\tlocalNamespace = CORE_NAMESPACE\n\t\t}\n\n\t\tlet coreSyncResults: FeatureActionResponse | undefined\n\n\t\tconst {\n\t\t\tresolvedFieldTypesDestination,\n\t\t\tresolvedSchemaTypesDestinationDirOrFile,\n\t\t\tresolvedSchemaTypesDestination,\n\t\t} = schemaDiskUtil.resolveTypeFilePaths({\n\t\t\tcwd: this.cwd,\n\t\t\tgenerateStandaloneTypesFile,\n\t\t\tschemaTypesDestinationDirOrFile,\n\t\t\tfieldTypesDestinationDir,\n\t\t})\n\n\t\tthis.ui.startLoading('Generating field types...')\n\n\t\tconst { fieldTemplateItems, fieldErrors, generateFieldFiles } =\n\t\t\tawait this.generateFieldTemplateItems({\n\t\t\t\taddonsLookupDir,\n\t\t\t\tshouldGenerateFieldTypes: generateFieldTypes,\n\t\t\t\tresolvedFieldTypesDestination,\n\t\t\t})\n\n\t\tthis.ui.startLoading(syncingMessage)\n\n\t\tconst schemaErrors: SpruceError[] = []\n\t\tlet schemaTemplateItems: SchemaTemplateItem[] | undefined\n\t\tlet typeResults: GeneratedFile[] = []\n\n\t\ttry {\n\t\t\tconst templateResults = await this.generateSchemaTemplateItems({\n\t\t\t\tschemaLookupDir,\n\t\t\t\tshouldFetchLocalSchemas,\n\t\t\t\tmoduleToImportFromWhenRemote,\n\t\t\t\tresolvedSchemaTypesDestinationDirOrFile,\n\t\t\t\tshouldEnableVersioning,\n\t\t\t\tshouldFetchRemoteSchemas,\n\t\t\t\tshouldFetchCoreSchemas,\n\t\t\t\tlocalNamespace,\n\t\t\t})\n\n\t\t\tschemaErrors.push(...templateResults.schemaErrors)\n\t\t\tschemaTemplateItems = templateResults.schemaTemplateItems\n\t\t} catch (err: any) {\n\t\t\tschemaErrors.push(err)\n\t\t}\n\n\t\tif (schemaErrors.length === 0 && schemaTemplateItems) {\n\t\t\tif (deleteDestinationDirIfNoSchemas && schemaTemplateItems.length === 0) {\n\t\t\t\tdiskUtil.deleteDir(resolvedSchemaTypesDestinationDirOrFile)\n\t\t\t\treturn {}\n\t\t\t}\n\n\t\t\tif (deleteOrphanedSchemas) {\n\t\t\t\tthis.ui.startLoading('Identifying orphaned schemas...')\n\n\t\t\t\tawait schemaDiskUtil.deleteOrphanedSchemas(\n\t\t\t\t\tresolvedSchemaTypesDestinationDirOrFile,\n\t\t\t\t\tschemaTemplateItems\n\t\t\t\t)\n\t\t\t}\n\n\t\t\tawait this.optionallyInstallRemoteModules(\n\t\t\t\tschemaTemplateItems,\n\t\t\t\tshouldInstallMissingDependencies\n\t\t\t)\n\n\t\t\tlet valueTypes: ValueTypes | undefined\n\n\t\t\ttry {\n\t\t\t\tvalueTypes = await this.generateValueTypes({\n\t\t\t\t\tresolvedDestination: resolvedFieldTypesDestination,\n\t\t\t\t\tfieldTemplateItems,\n\t\t\t\t\tschemaTemplateItems,\n\t\t\t\t\tglobalSchemaNamespace: globalSchemaNamespace ?? undefined,\n\t\t\t\t})\n\t\t\t} catch (err: any) {\n\t\t\t\tschemaErrors.push(err)\n\t\t\t}\n\n\t\t\tif (valueTypes) {\n\t\t\t\ttry {\n\t\t\t\t\tthis.ui.startLoading('Determining what changed... ⚡️')\n\n\t\t\t\t\ttypeResults = await this.schemaWriter.writeSchemasAndTypes(\n\t\t\t\t\t\tresolvedSchemaTypesDestination,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tregisterBuiltSchemas,\n\t\t\t\t\t\t\tfieldTemplateItems,\n\t\t\t\t\t\t\tschemaTemplateItems,\n\t\t\t\t\t\t\tshouldImportCoreSchemas,\n\t\t\t\t\t\t\tvalueTypes,\n\t\t\t\t\t\t\tglobalSchemaNamespace: globalSchemaNamespace ?? undefined,\n\t\t\t\t\t\t\ttypesTemplate: generateStandaloneTypesFile\n\t\t\t\t\t\t\t\t? 'schema/core.schemas.types.ts.hbs'\n\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t}\n\t\t\t\t\t)\n\t\t\t\t} catch (err: any) {\n\t\t\t\t\tschemaErrors.push(err)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst p = resolvedSchemaTypesDestination\n\t\tdiskUtil.deleteEmptyDirs(diskUtil.isDir(p) ? p : pathUtil.dirname(p))\n\n\t\tthis.ui.stopLoading()\n\n\t\tconst errors = [...schemaErrors, ...fieldErrors]\n\n\t\treturn actionUtil.mergeActionResults(coreSyncResults || {}, {\n\t\t\tfiles: [...typeResults, ...generateFieldFiles],\n\t\t\terrors: errors.length > 0 ? errors : undefined,\n\t\t\tmeta: {\n\t\t\t\tschemaTemplateItems,\n\t\t\t\tfieldTemplateItems,\n\t\t\t},\n\t\t})\n\t}\n\n\tprivate async optionallyInstallRemoteModules(\n\t\tschemaTemplateItems: SchemaTemplateItem[],\n\t\tforceInstall?: boolean\n\t) {\n\t\tconst modules = schemaTemplateItems\n\t\t\t.map((item) => item.importFrom)\n\t\t\t.filter((i) => !!i) as string[]\n\t\tconst notInstalled: string[] = []\n\n\t\tconst pkg = this.Service('pkg')\n\t\tfor (const m of modules) {\n\t\t\tif (!pkg.isInstalled(m) && notInstalled.indexOf(m) === -1) {\n\t\t\t\tnotInstalled.push(m)\n\t\t\t}\n\t\t}\n\n\t\tif (notInstalled.length > 0) {\n\t\t\tif (!forceInstall) {\n\t\t\t\tthis.ui.stopLoading()\n\n\t\t\t\tthis.ui.renderSection({\n\t\t\t\t\theadline: `Missing ${notInstalled.length} module${\n\t\t\t\t\t\tnotInstalled.length === 1 ? '' : 's'\n\t\t\t\t\t}`,\n\t\t\t\t\tlines: [\n\t\t\t\t\t\t`Looks like I need to install the following modules to continue to sync schemas:`,\n\t\t\t\t\t\t'',\n\t\t\t\t\t\t...notInstalled,\n\t\t\t\t\t],\n\t\t\t\t})\n\n\t\t\t\tconst confirm = await this.ui.confirm('Should we do that now?')\n\n\t\t\t\tif (!confirm) {\n\t\t\t\t\tthrow new SpruceError({\n\t\t\t\t\t\tcode: 'ACTION_CANCELLED',\n\t\t\t\t\t\tfriendlyMessage: `I can't sync schemas because of the missing modules.`,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.ui.startLoading(\n\t\t\t\t`Installing ${notInstalled.length} missing module${\n\t\t\t\t\tnotInstalled.length === 1 ? '' : 's...'\n\t\t\t\t}`\n\t\t\t)\n\n\t\t\tconst pkg = this.Service('pkg')\n\t\t\tawait pkg.install(notInstalled)\n\n\t\t\tthis.ui.stopLoading()\n\t\t}\n\t}\n\n\tprivate async generateSchemaTemplateItems(options: {\n\t\tschemaLookupDir: string | undefined\n\t\tlocalNamespace: string\n\t\tresolvedSchemaTypesDestinationDirOrFile: string\n\t\tshouldFetchLocalSchemas: boolean\n\t\tmoduleToImportFromWhenRemote?: string\n\t\tshouldEnableVersioning: boolean\n\t\tshouldFetchRemoteSchemas: boolean\n\t\tshouldFetchCoreSchemas: boolean\n\t}) {\n\t\tconst {\n\t\t\tschemaLookupDir,\n\t\t\tresolvedSchemaTypesDestinationDirOrFile,\n\t\t\tshouldEnableVersioning,\n\t\t\tshouldFetchRemoteSchemas,\n\t\t\tshouldFetchCoreSchemas,\n\t\t\tshouldFetchLocalSchemas,\n\t\t\tlocalNamespace,\n\t\t\tmoduleToImportFromWhenRemote,\n\t\t} = options\n\n\t\tthis.ui.startLoading('Loading builders...')\n\n\t\tconst { schemasByNamespace, errors: schemaErrors } =\n\t\t\tawait this.schemaStore.fetchSchemas({\n\t\t\t\tlocalSchemaLookupDir: schemaLookupDir,\n\t\t\t\tshouldFetchLocalSchemas,\n\t\t\t\tshouldFetchRemoteSchemas,\n\t\t\t\tshouldEnableVersioning,\n\t\t\t\tmoduleToImportFromWhenRemote,\n\t\t\t\tlocalNamespace,\n\t\t\t\tshouldFetchCoreSchemas,\n\t\t\t\tdidUpdateHandler: (message) => {\n\t\t\t\t\tthis.ui.startLoading(message)\n\t\t\t\t},\n\t\t\t})\n\n\t\tconst hashSpruceDestination =\n\t\t\tresolvedSchemaTypesDestinationDirOrFile.replace(\n\t\t\t\tdiskUtil.resolveHashSprucePath(this.cwd),\n\t\t\t\t'#spruce'\n\t\t\t)\n\n\t\tlet total = 0\n\t\tlet totalNamespaces = 0\n\t\tfor (const namespace of Object.keys(schemasByNamespace)) {\n\t\t\ttotalNamespaces++\n\t\t\ttotal += schemasByNamespace[namespace].length\n\t\t}\n\n\t\tthis.ui.startLoading(\n\t\t\t`Building ${total} schemas from ${totalNamespaces} namespaces.`\n\t\t)\n\n\t\tconst schemaTemplateItemBuilder = new SchemaTemplateItemBuilder(\n\t\t\tlocalNamespace\n\t\t)\n\n\t\tconst schemaTemplateItems: SchemaTemplateItem[] =\n\t\t\tschemaTemplateItemBuilder.buildTemplateItems(\n\t\t\t\tschemasByNamespace,\n\t\t\t\thashSpruceDestination\n\t\t\t)\n\n\t\treturn { schemaTemplateItems, schemaErrors }\n\t}\n\n\tprivate async generateFieldTemplateItems(options: {\n\t\taddonsLookupDir: string\n\t\tshouldGenerateFieldTypes: boolean\n\t\tresolvedFieldTypesDestination: string\n\t}) {\n\t\tconst {\n\t\t\taddonsLookupDir,\n\t\t\tshouldGenerateFieldTypes: generateFieldTypes,\n\t\t\tresolvedFieldTypesDestination,\n\t\t} = options\n\n\t\tconst action = this.Action('schema', 'syncFields')\n\t\tconst results = await action.execute({\n\t\t\tfieldTypesDestinationDir: resolvedFieldTypesDestination,\n\t\t\taddonsLookupDir,\n\t\t\tgenerateFieldTypes,\n\t\t})\n\n\t\treturn {\n\t\t\tgenerateFieldFiles: results.files ?? [],\n\t\t\tfieldTemplateItems: results.meta?.fieldTemplateItems ?? [],\n\t\t\tfieldErrors: results.errors ?? [],\n\t\t}\n\t}\n\n\tprivate async generateValueTypes(options: {\n\t\tresolvedDestination: string\n\t\tfieldTemplateItems: FieldTemplateItem[]\n\t\tschemaTemplateItems: SchemaTemplateItem[]\n\t\tglobalSchemaNamespace?: string\n\t}) {\n\t\tthis.ui.startLoading('Generating value types...')\n\n\t\tconst builder = new ValueTypeBuilder(\n\t\t\tthis.schemaWriter,\n\t\t\tthis.Service('import')\n\t\t)\n\n\t\treturn builder.generateValueTypes(options)\n\t}\n}\n"],"file":"SyncAction.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/features/schema/actions/SyncAction.ts"],"names":["SyncAction","syncSchemasActionSchema","Writer","Store","options","normalizedOptions","validateAndNormalizeOptions","isInCoreSchemasModule","Service","get","schemaTypesDestinationDirOrFile","fieldTypesDestinationDir","schemaLookupDir","addonsLookupDir","shouldEnableVersioning","globalSchemaNamespace","shouldFetchRemoteSchemas","shouldGenerateCoreSchemaTypes","shouldFetchLocalSchemas","generateFieldTypes","generateStandaloneTypesFile","deleteDestinationDirIfNoSchemas","shouldFetchCoreSchemas","registerBuiltSchemas","syncingMessage","deleteOrphanedSchemas","moduleToImportFromWhenRemote","shouldInstallMissingDependencies","ui","startLoading","loadCurrentSkillsNamespace","localNamespace","shouldImportCoreSchemas","CORE_NAMESPACE","schemaDiskUtil","resolveTypeFilePaths","cwd","resolvedFieldTypesDestination","resolvedSchemaTypesDestinationDirOrFile","resolvedSchemaTypesDestination","generateFieldTemplateItems","shouldGenerateFieldTypes","fieldTemplateItems","fieldErrors","generateFieldFiles","schemaErrors","typeResults","generateSchemaTemplateItems","templateResults","push","schemaTemplateItems","length","diskUtil","deleteDir","optionallyInstallRemoteModules","generateValueTypes","resolvedDestination","undefined","valueTypes","schemaWriter","writeSchemasAndTypes","typesTemplate","p","deleteEmptyDirs","isDir","pathUtil","dirname","stopLoading","errors","actionUtil","mergeActionResults","coreSyncResults","files","meta","forceInstall","modules","map","item","importFrom","filter","i","notInstalled","pkg","m","isInstalled","indexOf","renderSection","headline","lines","confirm","SpruceError","code","friendlyMessage","install","schemaStore","fetchSchemas","localSchemaLookupDir","didUpdateHandler","message","schemasByNamespace","hashSpruceDestination","replace","resolveHashSprucePath","total","totalNamespaces","Object","keys","namespace","schemaTemplateItemBuilder","SchemaTemplateItemBuilder","buildTemplateItems","action","Action","execute","results","builder","ValueTypeBuilder","AbstractAction"],"mappings":"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","sourcesContent":["import pathUtil from 'path'\nimport { SchemaTemplateItem, FieldTemplateItem } from '@sprucelabs/schema'\nimport { CORE_NAMESPACE, diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { ValueTypes } from '@sprucelabs/spruce-templates'\nimport uniq from 'lodash/uniq'\nimport { SpruceSchemas } from '#spruce/schemas/schemas.types'\nimport syncSchemasActionSchema from '#spruce/schemas/spruceCli/v2020_07_22/syncSchemasOptions.schema'\nimport SpruceError from '../../../errors/SpruceError'\nimport SchemaTemplateItemBuilder from '../../../templateItemBuilders/SchemaTemplateItemBuilder'\nimport { GeneratedFile } from '../../../types/cli.types'\nimport actionUtil from '../../../utilities/action.utility'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\nimport schemaDiskUtil from '../utilities/schemaDisk.utility'\nimport ValueTypeBuilder from '../ValueTypeBuilder'\n\ntype OptionsSchema =\n\tSpruceSchemas.SpruceCli.v2020_07_22.SyncSchemasOptionsSchema\ntype Options = SpruceSchemas.SpruceCli.v2020_07_22.SyncSchemasOptions\nexport default class SyncAction extends AbstractAction<OptionsSchema> {\n\tpublic optionsSchema = syncSchemasActionSchema\n\tpublic commandAliases = ['sync.schemas']\n\tpublic invocationMessage = 'Building schemas and generating types... 📃'\n\n\tprivate readonly schemaWriter = this.Writer('schema')\n\tprivate readonly schemaStore = this.Store('schema')\n\n\tpublic async execute(options: Options): Promise<FeatureActionResponse> {\n\t\tconst normalizedOptions = this.validateAndNormalizeOptions(options)\n\t\tconst isInCoreSchemasModule =\n\t\t\tthis.Service('pkg').get('name') === '@sprucelabs/spruce-core-schemas'\n\n\t\tlet {\n\t\t\tschemaTypesDestinationDirOrFile,\n\t\t\tfieldTypesDestinationDir,\n\t\t\tschemaLookupDir,\n\t\t\taddonsLookupDir,\n\t\t\tshouldEnableVersioning,\n\t\t\tglobalSchemaNamespace,\n\t\t\tshouldFetchRemoteSchemas,\n\t\t\tshouldGenerateCoreSchemaTypes = isInCoreSchemasModule,\n\t\t\tshouldFetchLocalSchemas,\n\t\t\tgenerateFieldTypes,\n\t\t\tgenerateStandaloneTypesFile,\n\t\t\tdeleteDestinationDirIfNoSchemas,\n\t\t\tshouldFetchCoreSchemas,\n\t\t\tregisterBuiltSchemas,\n\t\t\tsyncingMessage,\n\t\t\tdeleteOrphanedSchemas,\n\t\t\tmoduleToImportFromWhenRemote,\n\t\t\tshouldInstallMissingDependencies,\n\t\t} = normalizedOptions\n\n\t\tthis.ui.startLoading('Loading details about your skill... 🧐')\n\n\t\tlet localNamespace = await this.Store('skill').loadCurrentSkillsNamespace()\n\t\tlet shouldImportCoreSchemas = true\n\n\t\tif (shouldGenerateCoreSchemaTypes) {\n\t\t\tshouldFetchRemoteSchemas = false\n\t\t\tshouldFetchLocalSchemas = true\n\t\t\tshouldFetchCoreSchemas = false\n\t\t\tregisterBuiltSchemas = true\n\t\t\tgenerateStandaloneTypesFile = true\n\t\t\tshouldImportCoreSchemas = false\n\t\t\tlocalNamespace = CORE_NAMESPACE\n\t\t}\n\n\t\tlet coreSyncResults: FeatureActionResponse | undefined\n\n\t\tconst {\n\t\t\tresolvedFieldTypesDestination,\n\t\t\tresolvedSchemaTypesDestinationDirOrFile,\n\t\t\tresolvedSchemaTypesDestination,\n\t\t} = schemaDiskUtil.resolveTypeFilePaths({\n\t\t\tcwd: this.cwd,\n\t\t\tgenerateStandaloneTypesFile,\n\t\t\tschemaTypesDestinationDirOrFile,\n\t\t\tfieldTypesDestinationDir,\n\t\t})\n\n\t\tthis.ui.startLoading('Generating field types...')\n\n\t\tconst { fieldTemplateItems, fieldErrors, generateFieldFiles } =\n\t\t\tawait this.generateFieldTemplateItems({\n\t\t\t\taddonsLookupDir,\n\t\t\t\tshouldGenerateFieldTypes: generateFieldTypes,\n\t\t\t\tresolvedFieldTypesDestination,\n\t\t\t})\n\n\t\tthis.ui.startLoading(syncingMessage)\n\n\t\tconst schemaErrors: SpruceError[] = []\n\t\tlet schemaTemplateItems: SchemaTemplateItem[] | undefined\n\t\tlet typeResults: GeneratedFile[] = []\n\n\t\ttry {\n\t\t\tconst templateResults = await this.generateSchemaTemplateItems({\n\t\t\t\tschemaLookupDir,\n\t\t\t\tshouldFetchLocalSchemas,\n\t\t\t\tmoduleToImportFromWhenRemote,\n\t\t\t\tresolvedSchemaTypesDestinationDirOrFile,\n\t\t\t\tshouldEnableVersioning,\n\t\t\t\tshouldFetchRemoteSchemas,\n\t\t\t\tshouldFetchCoreSchemas,\n\t\t\t\tlocalNamespace,\n\t\t\t})\n\n\t\t\tschemaErrors.push(...templateResults.schemaErrors)\n\t\t\tschemaTemplateItems = templateResults.schemaTemplateItems\n\t\t} catch (err: any) {\n\t\t\tschemaErrors.push(err)\n\t\t}\n\n\t\tif (schemaErrors.length === 0 && schemaTemplateItems) {\n\t\t\tif (deleteDestinationDirIfNoSchemas && schemaTemplateItems.length === 0) {\n\t\t\t\tdiskUtil.deleteDir(resolvedSchemaTypesDestinationDirOrFile)\n\t\t\t\treturn {}\n\t\t\t}\n\n\t\t\tif (deleteOrphanedSchemas) {\n\t\t\t\tthis.ui.startLoading('Identifying orphaned schemas...')\n\n\t\t\t\tawait schemaDiskUtil.deleteOrphanedSchemas(\n\t\t\t\t\tresolvedSchemaTypesDestinationDirOrFile,\n\t\t\t\t\tschemaTemplateItems\n\t\t\t\t)\n\t\t\t}\n\n\t\t\tawait this.optionallyInstallRemoteModules(\n\t\t\t\tschemaTemplateItems,\n\t\t\t\tshouldInstallMissingDependencies\n\t\t\t)\n\n\t\t\tlet valueTypes: ValueTypes | undefined\n\n\t\t\ttry {\n\t\t\t\tvalueTypes = await this.generateValueTypes({\n\t\t\t\t\tresolvedDestination: resolvedFieldTypesDestination,\n\t\t\t\t\tfieldTemplateItems,\n\t\t\t\t\tschemaTemplateItems,\n\t\t\t\t\tglobalSchemaNamespace: globalSchemaNamespace ?? undefined,\n\t\t\t\t})\n\t\t\t} catch (err: any) {\n\t\t\t\tschemaErrors.push(err)\n\t\t\t}\n\n\t\t\tif (valueTypes) {\n\t\t\t\ttry {\n\t\t\t\t\tthis.ui.startLoading('Determining what changed... ⚡️')\n\n\t\t\t\t\ttypeResults = await this.schemaWriter.writeSchemasAndTypes(\n\t\t\t\t\t\tresolvedSchemaTypesDestination,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tregisterBuiltSchemas,\n\t\t\t\t\t\t\tfieldTemplateItems,\n\t\t\t\t\t\t\tschemaTemplateItems,\n\t\t\t\t\t\t\tshouldImportCoreSchemas,\n\t\t\t\t\t\t\tvalueTypes,\n\t\t\t\t\t\t\tglobalSchemaNamespace: globalSchemaNamespace ?? undefined,\n\t\t\t\t\t\t\ttypesTemplate: generateStandaloneTypesFile\n\t\t\t\t\t\t\t\t? 'schema/core.schemas.types.ts.hbs'\n\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t}\n\t\t\t\t\t)\n\t\t\t\t} catch (err: any) {\n\t\t\t\t\tschemaErrors.push(err)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst p = resolvedSchemaTypesDestination\n\t\tdiskUtil.deleteEmptyDirs(diskUtil.isDir(p) ? p : pathUtil.dirname(p))\n\n\t\tthis.ui.stopLoading()\n\n\t\tconst errors = [...schemaErrors, ...fieldErrors]\n\n\t\treturn actionUtil.mergeActionResults(coreSyncResults || {}, {\n\t\t\tfiles: [...typeResults, ...generateFieldFiles],\n\t\t\terrors: errors.length > 0 ? errors : undefined,\n\t\t\tmeta: {\n\t\t\t\tschemaTemplateItems,\n\t\t\t\tfieldTemplateItems,\n\t\t\t},\n\t\t})\n\t}\n\n\tprivate async optionallyInstallRemoteModules(\n\t\tschemaTemplateItems: SchemaTemplateItem[],\n\t\tforceInstall?: boolean\n\t) {\n\t\tconst modules = uniq(\n\t\t\tschemaTemplateItems.map((item) => item.importFrom).filter((i) => !!i)\n\t\t) as string[]\n\n\t\tconst notInstalled: string[] = []\n\n\t\tconst pkg = this.Service('pkg')\n\n\t\tfor (const m of modules) {\n\t\t\tif (!pkg.isInstalled(m) && notInstalled.indexOf(m) === -1) {\n\t\t\t\tnotInstalled.push(m)\n\t\t\t}\n\t\t}\n\n\t\tif (notInstalled.length > 0) {\n\t\t\tif (!forceInstall) {\n\t\t\t\tthis.ui.stopLoading()\n\n\t\t\t\tthis.ui.renderSection({\n\t\t\t\t\theadline: `Missing ${notInstalled.length} module${\n\t\t\t\t\t\tnotInstalled.length === 1 ? '' : 's'\n\t\t\t\t\t}`,\n\t\t\t\t\tlines: [\n\t\t\t\t\t\t`Looks like I need to install the following modules to continue to sync schemas:`,\n\t\t\t\t\t\t'',\n\t\t\t\t\t\t...notInstalled,\n\t\t\t\t\t],\n\t\t\t\t})\n\n\t\t\t\tconst confirm = await this.ui.confirm('Should we do that now?')\n\n\t\t\t\tif (!confirm) {\n\t\t\t\t\tthrow new SpruceError({\n\t\t\t\t\t\tcode: 'ACTION_CANCELLED',\n\t\t\t\t\t\tfriendlyMessage: `I can't sync schemas because of the missing modules.`,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.ui.startLoading(\n\t\t\t\t`Installing ${notInstalled.length} missing module${\n\t\t\t\t\tnotInstalled.length === 1 ? '' : 's...'\n\t\t\t\t}`\n\t\t\t)\n\n\t\t\tconst pkg = this.Service('pkg')\n\t\t\tawait pkg.install(notInstalled)\n\n\t\t\tthis.ui.stopLoading()\n\t\t}\n\t}\n\n\tprivate async generateSchemaTemplateItems(options: {\n\t\tschemaLookupDir: string | undefined\n\t\tlocalNamespace: string\n\t\tresolvedSchemaTypesDestinationDirOrFile: string\n\t\tshouldFetchLocalSchemas: boolean\n\t\tmoduleToImportFromWhenRemote?: string\n\t\tshouldEnableVersioning: boolean\n\t\tshouldFetchRemoteSchemas: boolean\n\t\tshouldFetchCoreSchemas: boolean\n\t}) {\n\t\tconst {\n\t\t\tschemaLookupDir,\n\t\t\tresolvedSchemaTypesDestinationDirOrFile,\n\t\t\tshouldEnableVersioning,\n\t\t\tshouldFetchRemoteSchemas,\n\t\t\tshouldFetchCoreSchemas,\n\t\t\tshouldFetchLocalSchemas,\n\t\t\tlocalNamespace,\n\t\t\tmoduleToImportFromWhenRemote,\n\t\t} = options\n\n\t\tthis.ui.startLoading('Loading builders...')\n\n\t\tconst { schemasByNamespace, errors: schemaErrors } =\n\t\t\tawait this.schemaStore.fetchSchemas({\n\t\t\t\tlocalSchemaLookupDir: schemaLookupDir,\n\t\t\t\tshouldFetchLocalSchemas,\n\t\t\t\tshouldFetchRemoteSchemas,\n\t\t\t\tshouldEnableVersioning,\n\t\t\t\tmoduleToImportFromWhenRemote,\n\t\t\t\tlocalNamespace,\n\t\t\t\tshouldFetchCoreSchemas,\n\t\t\t\tdidUpdateHandler: (message) => {\n\t\t\t\t\tthis.ui.startLoading(message)\n\t\t\t\t},\n\t\t\t})\n\n\t\tconst hashSpruceDestination =\n\t\t\tresolvedSchemaTypesDestinationDirOrFile.replace(\n\t\t\t\tdiskUtil.resolveHashSprucePath(this.cwd),\n\t\t\t\t'#spruce'\n\t\t\t)\n\n\t\tlet total = 0\n\t\tlet totalNamespaces = 0\n\t\tfor (const namespace of Object.keys(schemasByNamespace)) {\n\t\t\ttotalNamespaces++\n\t\t\ttotal += schemasByNamespace[namespace].length\n\t\t}\n\n\t\tthis.ui.startLoading(\n\t\t\t`Building ${total} schemas from ${totalNamespaces} namespaces.`\n\t\t)\n\n\t\tconst schemaTemplateItemBuilder = new SchemaTemplateItemBuilder(\n\t\t\tlocalNamespace\n\t\t)\n\n\t\tconst schemaTemplateItems: SchemaTemplateItem[] =\n\t\t\tschemaTemplateItemBuilder.buildTemplateItems(\n\t\t\t\tschemasByNamespace,\n\t\t\t\thashSpruceDestination\n\t\t\t)\n\n\t\treturn { schemaTemplateItems, schemaErrors }\n\t}\n\n\tprivate async generateFieldTemplateItems(options: {\n\t\taddonsLookupDir: string\n\t\tshouldGenerateFieldTypes: boolean\n\t\tresolvedFieldTypesDestination: string\n\t}) {\n\t\tconst {\n\t\t\taddonsLookupDir,\n\t\t\tshouldGenerateFieldTypes: generateFieldTypes,\n\t\t\tresolvedFieldTypesDestination,\n\t\t} = options\n\n\t\tconst action = this.Action('schema', 'syncFields')\n\t\tconst results = await action.execute({\n\t\t\tfieldTypesDestinationDir: resolvedFieldTypesDestination,\n\t\t\taddonsLookupDir,\n\t\t\tgenerateFieldTypes,\n\t\t})\n\n\t\treturn {\n\t\t\tgenerateFieldFiles: results.files ?? [],\n\t\t\tfieldTemplateItems: results.meta?.fieldTemplateItems ?? [],\n\t\t\tfieldErrors: results.errors ?? [],\n\t\t}\n\t}\n\n\tprivate async generateValueTypes(options: {\n\t\tresolvedDestination: string\n\t\tfieldTemplateItems: FieldTemplateItem[]\n\t\tschemaTemplateItems: SchemaTemplateItem[]\n\t\tglobalSchemaNamespace?: string\n\t}) {\n\t\tthis.ui.startLoading('Generating value types...')\n\n\t\tconst builder = new ValueTypeBuilder(\n\t\t\tthis.schemaWriter,\n\t\t\tthis.Service('import')\n\t\t)\n\n\t\treturn builder.generateValueTypes(options)\n\t}\n}\n"],"file":"SyncAction.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/features/skill/actions/RebuildAction.ts"],"names":["optionsSchema","id","description","fields","shouldPlayGames","type","label","defaultValue","RebuildAction","options","validateAndNormalizeOptions","command","Service","InFlightEntertainment","start","ui","startLoading","execute","onData","data","writeStatus","resetUi","errors","summaryLines","stop","stopLoading","AbstractAction"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;AAGA,IAAMA,aAAa,GAAG,yBAAY;AACjCC,EAAAA,EAAE,EAAE,gBAD6B;AAEjCC,EAAAA,WAAW,EACV,iEAHgC;AAIjCC,EAAAA,MAAM,EAAE;AACPC,IAAAA,eAAe,EAAE;AAChBC,MAAAA,IAAI,EAAE,SADU;AAEhBC,MAAAA,KAAK,EAAE,YAFS;AAGhBC,MAAAA,YAAY,EAAE;AAHE;AADV;AAJyB,CAAZ,CAAtB;;IAgBqBC,a;;;;;;;;;;;;;;;sGACkBR,a;uGACd,CAAC,SAAD,C;0GACG,6B;;;;;;;mGAE3B,iBAAqBS,OAArB;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA,wCAC6B,KAAKC,2BAAL,CAAiCD,OAAjC,CAD7B,EACSL,eADT,yBACSA,eADT;AAEOO,gBAAAA,OAFP,GAEiB,KAAKC,OAAL,CAAa,SAAb,CAFjB;AAAA;;AAKE,oBAAIR,eAAJ,EAAqB;AACpBS,oDAAsBC,KAAtB,CAA4B,CAC3B,iCAD2B,EAE3B,8CAF2B,CAA5B;AAIA,iBALD,MAKO;AACN,uBAAKC,EAAL,CAAQC,YAAR,CAAqB,gBAArB;AACA;;AAZH;AAAA,
|
|
1
|
+
{"version":3,"sources":["../../../../src/features/skill/actions/RebuildAction.ts"],"names":["optionsSchema","id","description","fields","shouldPlayGames","type","label","defaultValue","RebuildAction","options","validateAndNormalizeOptions","command","Service","InFlightEntertainment","start","ui","startLoading","execute","onData","data","writeStatus","resetUi","errors","summaryLines","stop","stopLoading","AbstractAction"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;AAGA,IAAMA,aAAa,GAAG,yBAAY;AACjCC,EAAAA,EAAE,EAAE,gBAD6B;AAEjCC,EAAAA,WAAW,EACV,iEAHgC;AAIjCC,EAAAA,MAAM,EAAE;AACPC,IAAAA,eAAe,EAAE;AAChBC,MAAAA,IAAI,EAAE,SADU;AAEhBC,MAAAA,KAAK,EAAE,YAFS;AAGhBC,MAAAA,YAAY,EAAE;AAHE;AADV;AAJyB,CAAZ,CAAtB;;IAgBqBC,a;;;;;;;;;;;;;;;sGACkBR,a;uGACd,CAAC,SAAD,C;0GACG,6B;;;;;;;mGAE3B,iBAAqBS,OAArB;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA,wCAC6B,KAAKC,2BAAL,CAAiCD,OAAjC,CAD7B,EACSL,eADT,yBACSA,eADT;AAEOO,gBAAAA,OAFP,GAEiB,KAAKC,OAAL,CAAa,SAAb,CAFjB;AAAA;;AAKE,oBAAIR,eAAJ,EAAqB;AACpBS,oDAAsBC,KAAtB,CAA4B,CAC3B,iCAD2B,EAE3B,8CAF2B,CAA5B;AAIA,iBALD,MAKO;AACN,uBAAKC,EAAL,CAAQC,YAAR,CAAqB,gBAArB;AACA;;AAZH;AAAA,uBAcQL,OAAO,CAACM,OAAR,CAAgB,cAAhB,EAAgC;AACrCC,kBAAAA,MAAM,EAAE,gBAACC,IAAD,EAAkB;AACzBN,4JAAuBO,WAAvB,CAAmCD,IAAnC;AACA;AAHoC,iBAAhC,CAdR;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAoBE,qBAAKE,OAAL;AApBF,iDAsBS;AACNC,kBAAAA,MAAM,EAAE;AADF,iBAtBT;;AAAA;AA2BC,qBAAKD,OAAL;AA3BD,iDA6BQ;AACNE,kBAAAA,YAAY,EAAE,CACb,0BADa,EAEb,4BAFa,EAGb,0BAHa,EAIb,oBAJa;AADR,iBA7BR;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;WAuCA,mBAAkB;AACjBV,wCAAsBW,IAAtB;;AACA,WAAKT,EAAL,CAAQU,WAAR;AACA;;;EA/CyCC,2B","sourcesContent":["import { buildSchema, SchemaValues } from '@sprucelabs/schema'\nimport InFlightEntertainment from '../../../InFlightEntertainment'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\n\nconst optionsSchema = buildSchema({\n\tid: 'rebuildOptions',\n\tdescription:\n\t\t'Clear the build and node_modules folder and start from the top.',\n\tfields: {\n\t\tshouldPlayGames: {\n\t\t\ttype: 'boolean',\n\t\t\tlabel: 'Play games',\n\t\t\tdefaultValue: true,\n\t\t},\n\t},\n})\n\ntype OptionsSchema = typeof optionsSchema\ntype Options = SchemaValues<OptionsSchema>\n\nexport default class RebuildAction extends AbstractAction<OptionsSchema> {\n\tpublic optionsSchema: OptionsSchema = optionsSchema\n\tpublic commandAliases = ['rebuild']\n\tpublic invocationMessage = 'Rebuilding your skill... ⚡️'\n\n\tpublic async execute(options: Options): Promise<FeatureActionResponse> {\n\t\tconst { shouldPlayGames } = this.validateAndNormalizeOptions(options)\n\t\tconst command = this.Service('command')\n\n\t\ttry {\n\t\t\tif (shouldPlayGames) {\n\t\t\t\tInFlightEntertainment.start([\n\t\t\t\t\t'Rebuild sequence initialized...',\n\t\t\t\t\t'The only option is setting a new high score!',\n\t\t\t\t])\n\t\t\t} else {\n\t\t\t\tthis.ui.startLoading('Rebuilding....')\n\t\t\t}\n\n\t\t\tawait command.execute('yarn rebuild', {\n\t\t\t\tonData: (data: string) => {\n\t\t\t\t\tInFlightEntertainment?.writeStatus(data)\n\t\t\t\t},\n\t\t\t})\n\t\t} catch (err) {\n\t\t\tthis.resetUi()\n\n\t\t\treturn {\n\t\t\t\terrors: [err],\n\t\t\t}\n\t\t}\n\n\t\tthis.resetUi()\n\n\t\treturn {\n\t\t\tsummaryLines: [\n\t\t\t\t'☑️ node_modules cleared.',\n\t\t\t\t'☑️ node_modules installed.',\n\t\t\t\t'☑️ Build folder cleared.',\n\t\t\t\t'☑️ Build complete.',\n\t\t\t],\n\t\t}\n\t}\n\n\tprivate resetUi() {\n\t\tInFlightEntertainment.stop()\n\t\tthis.ui.stopLoading()\n\t}\n}\n"],"file":"RebuildAction.js"}
|
|
@@ -23,4 +23,8 @@ export default class SkillStore extends AbstractStore {
|
|
|
23
23
|
private getSkillDescriptionFromPkg;
|
|
24
24
|
unregisterSkill(skillId: string): Promise<void>;
|
|
25
25
|
fetchMySkills(): Promise<import("@sprucelabs/schema").SchemaStaticValues<import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.ListSkillsSkillsResponsePayloadSchema, false, import("@sprucelabs/schema").SchemaOptionalFieldNames<import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.ListSkillsSkillsResponsePayloadSchema>, import("@sprucelabs/schema").StaticSchemaAllValues<import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.ListSkillsSkillsResponsePayloadSchema, false>>[]>;
|
|
26
|
+
fetchAllSkills(query?: {
|
|
27
|
+
showMineOnly?: boolean;
|
|
28
|
+
namespaces?: string[];
|
|
29
|
+
}): Promise<import("@sprucelabs/schema").SchemaStaticValues<import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.ListSkillsSkillsResponsePayloadSchema, false, import("@sprucelabs/schema").SchemaOptionalFieldNames<import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.ListSkillsSkillsResponsePayloadSchema>, import("@sprucelabs/schema").StaticSchemaAllValues<import("@sprucelabs/mercury-types").SpruceSchemas.Mercury.v2020_12_25.ListSkillsSkillsResponsePayloadSchema, false>>[]>;
|
|
26
30
|
}
|
|
@@ -402,42 +402,66 @@ var SkillStore = /*#__PURE__*/function (_AbstractStore) {
|
|
|
402
402
|
key: "fetchMySkills",
|
|
403
403
|
value: function () {
|
|
404
404
|
var _fetchMySkills = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7() {
|
|
405
|
-
var client, response, _eventResponseUtil$ge3, skills;
|
|
406
|
-
|
|
407
405
|
return _regenerator["default"].wrap(function _callee7$(_context7) {
|
|
408
406
|
while (1) {
|
|
409
407
|
switch (_context7.prev = _context7.next) {
|
|
410
408
|
case 0:
|
|
411
|
-
_context7.
|
|
409
|
+
return _context7.abrupt("return", this.fetchAllSkills({
|
|
410
|
+
showMineOnly: true
|
|
411
|
+
}));
|
|
412
|
+
|
|
413
|
+
case 1:
|
|
414
|
+
case "end":
|
|
415
|
+
return _context7.stop();
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
}, _callee7, this);
|
|
419
|
+
}));
|
|
420
|
+
|
|
421
|
+
function fetchMySkills() {
|
|
422
|
+
return _fetchMySkills.apply(this, arguments);
|
|
423
|
+
}
|
|
424
|
+
|
|
425
|
+
return fetchMySkills;
|
|
426
|
+
}()
|
|
427
|
+
}, {
|
|
428
|
+
key: "fetchAllSkills",
|
|
429
|
+
value: function () {
|
|
430
|
+
var _fetchAllSkills = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee8(query) {
|
|
431
|
+
var client, response, _eventResponseUtil$ge3, skills;
|
|
432
|
+
|
|
433
|
+
return _regenerator["default"].wrap(function _callee8$(_context8) {
|
|
434
|
+
while (1) {
|
|
435
|
+
switch (_context8.prev = _context8.next) {
|
|
436
|
+
case 0:
|
|
437
|
+
_context8.next = 2;
|
|
412
438
|
return this.connectToApi();
|
|
413
439
|
|
|
414
440
|
case 2:
|
|
415
|
-
client =
|
|
416
|
-
|
|
441
|
+
client = _context8.sent;
|
|
442
|
+
_context8.next = 5;
|
|
417
443
|
return client.emit('list-skills::v2020_12_25', {
|
|
418
|
-
payload: {
|
|
419
|
-
showMineOnly: true
|
|
420
|
-
}
|
|
444
|
+
payload: _objectSpread({}, query)
|
|
421
445
|
});
|
|
422
446
|
|
|
423
447
|
case 5:
|
|
424
|
-
response =
|
|
448
|
+
response = _context8.sent;
|
|
425
449
|
_eventResponseUtil$ge3 = _spruceEventUtils.eventResponseUtil.getFirstResponseOrThrow(response), skills = _eventResponseUtil$ge3.skills;
|
|
426
|
-
return
|
|
450
|
+
return _context8.abrupt("return", skills);
|
|
427
451
|
|
|
428
452
|
case 8:
|
|
429
453
|
case "end":
|
|
430
|
-
return
|
|
454
|
+
return _context8.stop();
|
|
431
455
|
}
|
|
432
456
|
}
|
|
433
|
-
},
|
|
457
|
+
}, _callee8, this);
|
|
434
458
|
}));
|
|
435
459
|
|
|
436
|
-
function
|
|
437
|
-
return
|
|
460
|
+
function fetchAllSkills(_x5) {
|
|
461
|
+
return _fetchAllSkills.apply(this, arguments);
|
|
438
462
|
}
|
|
439
463
|
|
|
440
|
-
return
|
|
464
|
+
return fetchAllSkills;
|
|
441
465
|
}()
|
|
442
466
|
}], [{
|
|
443
467
|
key: "clearCurrentSkill",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/features/skill/stores/SkillStore.ts"],"names":["SkillStore","values","options","isRegisteringCurrentSkill","assertInSkill","name","slug","description","connectToApi","client","emit","payload","results","eventResponseUtil","getFirstResponseOrThrow","skill","setCurrentSkillsNamespace","Service","updateCurrentSkill","isInstalled","isMarkedAsInstalled","SpruceError","code","currentSkill","getCurrentSkill","shouldAuthAsCurrentSkill","target","skillId","id","response","namespacePascal","namesUtil","toPascal","isRegistered","apiKey","getNamespaceFromPkg","getEventNamespaceForNotRegistered","getSkillDescriptionFromPkg","loadCurrentSkill","pkg","nameFromPackage","get","Error","fallback","current","namespace","isCurrentSkillRegistered","friendlyMessage","set","path","value","toKebab","undefined","logoutCurrentSkill","showMineOnly","skills","AbstractStore"],"mappings":"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","sourcesContent":["import { eventResponseUtil } from '@sprucelabs/spruce-event-utils'\nimport { namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport SpruceError from '../../../errors/SpruceError'\nimport AbstractStore from '../../../stores/AbstractStore'\nimport { CurrentSkill, RegisteredSkill } from '../../../types/cli.types'\n\nexport interface CreateSkill {\n\tname: string\n\tslug: string\n\tdescription?: string\n}\n\nexport interface RegisterSkillOptions {\n\tisRegisteringCurrentSkill?: boolean\n}\n\nexport default class SkillStore extends AbstractStore {\n\tpublic readonly name = 'skill'\n\tprivate static currentSkill?: CurrentSkill\n\n\tpublic static clearCurrentSkill() {\n\t\tthis.currentSkill = undefined\n\t}\n\n\tpublic async register(\n\t\tvalues: CreateSkill,\n\t\toptions?: RegisterSkillOptions\n\t): Promise<RegisteredSkill> {\n\t\tconst isRegisteringCurrentSkill =\n\t\t\toptions?.isRegisteringCurrentSkill !== false\n\n\t\tisRegisteringCurrentSkill && this.assertInSkill()\n\n\t\tconst { name, slug, description } = values\n\t\tconst client = await this.connectToApi()\n\n\t\tconst results = await client.emit('register-skill::v2020_12_25', {\n\t\t\tpayload: {\n\t\t\t\tname,\n\t\t\t\tslug,\n\t\t\t\tdescription,\n\t\t\t},\n\t\t})\n\n\t\tconst { skill } = eventResponseUtil.getFirstResponseOrThrow(results)\n\n\t\tif (isRegisteringCurrentSkill) {\n\t\t\tawait this.setCurrentSkillsNamespace(skill.slug)\n\t\t\tthis.Service('auth').updateCurrentSkill(skill)\n\t\t}\n\n\t\treturn skill\n\t}\n\n\tprivate assertInSkill() {\n\t\tconst isInstalled = this.Service('settings').isMarkedAsInstalled('skill')\n\n\t\tif (!isInstalled) {\n\t\t\tthrow new SpruceError({ code: 'DIRECTORY_NOT_SKILL' })\n\t\t}\n\t}\n\n\tpublic async loadCurrentSkill(): Promise<CurrentSkill> {\n\t\tif (SkillStore.currentSkill) {\n\t\t\treturn SkillStore.currentSkill\n\t\t}\n\n\t\tthis.assertInSkill()\n\n\t\tconst currentSkill = this.Service('auth').getCurrentSkill()\n\n\t\tif (currentSkill) {\n\t\t\tconst client = await this.connectToApi({ shouldAuthAsCurrentSkill: true })\n\t\t\tconst response = await client.emit('get-skill::v2020_12_25', {\n\t\t\t\ttarget: {\n\t\t\t\t\tskillId: currentSkill.id,\n\t\t\t\t},\n\t\t\t})\n\n\t\t\tconst { skill } = eventResponseUtil.getFirstResponseOrThrow(response)\n\n\t\t\tSkillStore.currentSkill = {\n\t\t\t\t...skill,\n\t\t\t\tnamespacePascal: namesUtil.toPascal(skill.slug),\n\t\t\t\tisRegistered: true,\n\t\t\t\tapiKey: currentSkill.apiKey,\n\t\t\t}\n\t\t\treturn SkillStore.currentSkill as CurrentSkill\n\t\t}\n\n\t\treturn {\n\t\t\tname: this.getNamespaceFromPkg(),\n\t\t\tnamespacePascal: this.getEventNamespaceForNotRegistered(),\n\t\t\tdescription: this.getSkillDescriptionFromPkg(),\n\t\t\tisRegistered: false,\n\t\t}\n\t}\n\n\tpublic async isCurrentSkillRegistered() {\n\t\tconst skill = await this.loadCurrentSkill()\n\t\treturn skill.isRegistered\n\t}\n\n\tprivate getNamespaceFromPkg() {\n\t\tconst pkg = this.Service('pkg')\n\t\tconst nameFromPackage = pkg.get('skill.namespace')\n\t\tif (!nameFromPackage) {\n\t\t\tthrow new Error(\n\t\t\t\t'You need need to set skill.namespace in the package.json'\n\t\t\t)\n\t\t}\n\t\treturn nameFromPackage\n\t}\n\n\tpublic async loadCurrentSkillsNamespace() {\n\t\tconst fallback = namesUtil.toPascal(this.getNamespaceFromPkg())\n\n\t\tif (this.Service('auth').getCurrentSkill()) {\n\t\t\tconst current = await this.loadCurrentSkill()\n\t\t\treturn namesUtil.toPascal(current.slug ?? fallback)\n\t\t}\n\n\t\treturn fallback\n\t}\n\n\tpublic async setCurrentSkillsNamespace(namespace: string) {\n\t\tlet isRegistered = false\n\t\ttry {\n\t\t\tisRegistered = await this.isCurrentSkillRegistered()\n\t\t\t// eslint-disable-next-line no-empty\n\t\t} catch {}\n\n\t\tif (isRegistered) {\n\t\t\tthrow new SpruceError({\n\t\t\t\tcode: 'GENERIC',\n\t\t\t\tfriendlyMessage: `You can't change the namespace of a skill that is registered.`,\n\t\t\t})\n\t\t}\n\n\t\tconst pkg = this.Service('pkg')\n\t\tpkg.set({ path: 'skill.namespace', value: namesUtil.toKebab(namespace) })\n\t}\n\n\tprivate getEventNamespaceForNotRegistered() {\n\t\treturn namesUtil.toPascal(this.getNamespaceFromPkg())\n\t}\n\n\tprivate getSkillDescriptionFromPkg() {\n\t\tconst pkg = this.Service('pkg')\n\t\treturn pkg.get('description')\n\t}\n\n\tpublic async unregisterSkill(skillId: string) {\n\t\tconst client = await this.connectToApi()\n\n\t\tconst response = await client.emit('unregister-skill::v2020_12_25', {\n\t\t\ttarget: {\n\t\t\t\tskillId,\n\t\t\t},\n\t\t})\n\n\t\teventResponseUtil.getFirstResponseOrThrow(response)\n\n\t\tif (SkillStore.currentSkill?.id === skillId) {\n\t\t\tSkillStore.currentSkill = undefined\n\t\t\tthis.Service('auth').logoutCurrentSkill()\n\t\t}\n\t}\n\n\tpublic async fetchMySkills() {\n\t\tconst client = await this.connectToApi()\n\n\t\tconst response = await client.emit('list-skills::v2020_12_25', {\n\t\t\tpayload: {\n\t\t\t\tshowMineOnly: true,\n\t\t\t},\n\t\t})\n\n\t\tconst { skills } = eventResponseUtil.getFirstResponseOrThrow(response)\n\n\t\treturn skills\n\t}\n}\n"],"file":"SkillStore.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/features/skill/stores/SkillStore.ts"],"names":["SkillStore","values","options","isRegisteringCurrentSkill","assertInSkill","name","slug","description","connectToApi","client","emit","payload","results","eventResponseUtil","getFirstResponseOrThrow","skill","setCurrentSkillsNamespace","Service","updateCurrentSkill","isInstalled","isMarkedAsInstalled","SpruceError","code","currentSkill","getCurrentSkill","shouldAuthAsCurrentSkill","target","skillId","id","response","namespacePascal","namesUtil","toPascal","isRegistered","apiKey","getNamespaceFromPkg","getEventNamespaceForNotRegistered","getSkillDescriptionFromPkg","loadCurrentSkill","pkg","nameFromPackage","get","Error","fallback","current","namespace","isCurrentSkillRegistered","friendlyMessage","set","path","value","toKebab","undefined","logoutCurrentSkill","fetchAllSkills","showMineOnly","query","skills","AbstractStore"],"mappings":"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","sourcesContent":["import { eventResponseUtil } from '@sprucelabs/spruce-event-utils'\nimport { namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport SpruceError from '../../../errors/SpruceError'\nimport AbstractStore from '../../../stores/AbstractStore'\nimport { CurrentSkill, RegisteredSkill } from '../../../types/cli.types'\n\nexport interface CreateSkill {\n\tname: string\n\tslug: string\n\tdescription?: string\n}\n\nexport interface RegisterSkillOptions {\n\tisRegisteringCurrentSkill?: boolean\n}\n\nexport default class SkillStore extends AbstractStore {\n\tpublic readonly name = 'skill'\n\tprivate static currentSkill?: CurrentSkill\n\n\tpublic static clearCurrentSkill() {\n\t\tthis.currentSkill = undefined\n\t}\n\n\tpublic async register(\n\t\tvalues: CreateSkill,\n\t\toptions?: RegisterSkillOptions\n\t): Promise<RegisteredSkill> {\n\t\tconst isRegisteringCurrentSkill =\n\t\t\toptions?.isRegisteringCurrentSkill !== false\n\n\t\tisRegisteringCurrentSkill && this.assertInSkill()\n\n\t\tconst { name, slug, description } = values\n\t\tconst client = await this.connectToApi()\n\n\t\tconst results = await client.emit('register-skill::v2020_12_25', {\n\t\t\tpayload: {\n\t\t\t\tname,\n\t\t\t\tslug,\n\t\t\t\tdescription,\n\t\t\t},\n\t\t})\n\n\t\tconst { skill } = eventResponseUtil.getFirstResponseOrThrow(results)\n\n\t\tif (isRegisteringCurrentSkill) {\n\t\t\tawait this.setCurrentSkillsNamespace(skill.slug)\n\t\t\tthis.Service('auth').updateCurrentSkill(skill)\n\t\t}\n\n\t\treturn skill\n\t}\n\n\tprivate assertInSkill() {\n\t\tconst isInstalled = this.Service('settings').isMarkedAsInstalled('skill')\n\n\t\tif (!isInstalled) {\n\t\t\tthrow new SpruceError({ code: 'DIRECTORY_NOT_SKILL' })\n\t\t}\n\t}\n\n\tpublic async loadCurrentSkill(): Promise<CurrentSkill> {\n\t\tif (SkillStore.currentSkill) {\n\t\t\treturn SkillStore.currentSkill\n\t\t}\n\n\t\tthis.assertInSkill()\n\n\t\tconst currentSkill = this.Service('auth').getCurrentSkill()\n\n\t\tif (currentSkill) {\n\t\t\tconst client = await this.connectToApi({ shouldAuthAsCurrentSkill: true })\n\t\t\tconst response = await client.emit('get-skill::v2020_12_25', {\n\t\t\t\ttarget: {\n\t\t\t\t\tskillId: currentSkill.id,\n\t\t\t\t},\n\t\t\t})\n\n\t\t\tconst { skill } = eventResponseUtil.getFirstResponseOrThrow(response)\n\n\t\t\tSkillStore.currentSkill = {\n\t\t\t\t...skill,\n\t\t\t\tnamespacePascal: namesUtil.toPascal(skill.slug),\n\t\t\t\tisRegistered: true,\n\t\t\t\tapiKey: currentSkill.apiKey,\n\t\t\t}\n\t\t\treturn SkillStore.currentSkill as CurrentSkill\n\t\t}\n\n\t\treturn {\n\t\t\tname: this.getNamespaceFromPkg(),\n\t\t\tnamespacePascal: this.getEventNamespaceForNotRegistered(),\n\t\t\tdescription: this.getSkillDescriptionFromPkg(),\n\t\t\tisRegistered: false,\n\t\t}\n\t}\n\n\tpublic async isCurrentSkillRegistered() {\n\t\tconst skill = await this.loadCurrentSkill()\n\t\treturn skill.isRegistered\n\t}\n\n\tprivate getNamespaceFromPkg() {\n\t\tconst pkg = this.Service('pkg')\n\t\tconst nameFromPackage = pkg.get('skill.namespace')\n\t\tif (!nameFromPackage) {\n\t\t\tthrow new Error(\n\t\t\t\t'You need need to set skill.namespace in the package.json'\n\t\t\t)\n\t\t}\n\t\treturn nameFromPackage\n\t}\n\n\tpublic async loadCurrentSkillsNamespace() {\n\t\tconst fallback = namesUtil.toPascal(this.getNamespaceFromPkg())\n\n\t\tif (this.Service('auth').getCurrentSkill()) {\n\t\t\tconst current = await this.loadCurrentSkill()\n\t\t\treturn namesUtil.toPascal(current.slug ?? fallback)\n\t\t}\n\n\t\treturn fallback\n\t}\n\n\tpublic async setCurrentSkillsNamespace(namespace: string) {\n\t\tlet isRegistered = false\n\t\ttry {\n\t\t\tisRegistered = await this.isCurrentSkillRegistered()\n\t\t\t// eslint-disable-next-line no-empty\n\t\t} catch {}\n\n\t\tif (isRegistered) {\n\t\t\tthrow new SpruceError({\n\t\t\t\tcode: 'GENERIC',\n\t\t\t\tfriendlyMessage: `You can't change the namespace of a skill that is registered.`,\n\t\t\t})\n\t\t}\n\n\t\tconst pkg = this.Service('pkg')\n\t\tpkg.set({ path: 'skill.namespace', value: namesUtil.toKebab(namespace) })\n\t}\n\n\tprivate getEventNamespaceForNotRegistered() {\n\t\treturn namesUtil.toPascal(this.getNamespaceFromPkg())\n\t}\n\n\tprivate getSkillDescriptionFromPkg() {\n\t\tconst pkg = this.Service('pkg')\n\t\treturn pkg.get('description')\n\t}\n\n\tpublic async unregisterSkill(skillId: string) {\n\t\tconst client = await this.connectToApi()\n\n\t\tconst response = await client.emit('unregister-skill::v2020_12_25', {\n\t\t\ttarget: {\n\t\t\t\tskillId,\n\t\t\t},\n\t\t})\n\n\t\teventResponseUtil.getFirstResponseOrThrow(response)\n\n\t\tif (SkillStore.currentSkill?.id === skillId) {\n\t\t\tSkillStore.currentSkill = undefined\n\t\t\tthis.Service('auth').logoutCurrentSkill()\n\t\t}\n\t}\n\n\tpublic async fetchMySkills() {\n\t\treturn this.fetchAllSkills({ showMineOnly: true })\n\t}\n\n\tpublic async fetchAllSkills(query?: {\n\t\tshowMineOnly?: boolean\n\t\tnamespaces?: string[]\n\t}) {\n\t\tconst client = await this.connectToApi()\n\n\t\tconst response = await client.emit('list-skills::v2020_12_25', {\n\t\t\tpayload: {\n\t\t\t\t...query,\n\t\t\t},\n\t\t})\n\n\t\tconst { skills } = eventResponseUtil.getFirstResponseOrThrow(response)\n\n\t\treturn skills\n\t}\n}\n"],"file":"SkillStore.js"}
|
|
@@ -143,11 +143,15 @@ var ViewFeature = /*#__PURE__*/function (_AbstractFeature) {
|
|
|
143
143
|
|
|
144
144
|
case 2:
|
|
145
145
|
files = _context3.sent;
|
|
146
|
+
this.Service('dependency').add({
|
|
147
|
+
id: '**',
|
|
148
|
+
namespace: 'heartwood'
|
|
149
|
+
});
|
|
146
150
|
return _context3.abrupt("return", {
|
|
147
151
|
files: files
|
|
148
152
|
});
|
|
149
153
|
|
|
150
|
-
case
|
|
154
|
+
case 5:
|
|
151
155
|
case "end":
|
|
152
156
|
return _context3.stop();
|
|
153
157
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/features/view/ViewFeature.ts"],"names":["ViewFeature","options","diskUtil","resolvePath","__dirname","name","code","isRequired","emitter","on","payload","featureCode","actionCode","featureInstaller","isInstalled","Writer","writePlugin","cwd","files","abstractClasses","label","AbstractFeature"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAEA;;;;;;IAaqBA,W;;;;;AA8BpB,uBAAmBC,OAAnB,EAA2C;AAAA;;AAAA;AAC1C,8BAAMA,OAAN;AAD0C,qGA7BrB,OA6BqB;AAAA,oGA5BtB,oDA4BsB;AAAA,6FA3BhB,MA2BgB;AAAA,mGA1BvBC,2BAASC,WAAT,CAAqBC,SAArB,EAAgC,SAAhC,CA0BuB;AAAA,4GAxBS,CACnD;AACCC,MAAAA,IAAI,EAAE;AADP,KADmD,EAInD;AACCA,MAAAA,IAAI,EAAE;AADP,KAJmD,CAwBT;AAAA,qGAfA,CAC1C;AACCC,MAAAA,IAAI,EAAE,OADP;AAECC,MAAAA,UAAU,EAAE;AAFb,KAD0C,EAK1C;AACCD,MAAAA,IAAI,EAAE,QADP;AAECC,MAAAA,UAAU,EAAE;AAFb,KAL0C,EAS1C;AACCD,MAAAA,IAAI,EAAE,OADP;AAECC,MAAAA,UAAU,EAAE;AAFb,KAT0C,CAeA;AAG1C,SAAK,MAAKC,OAAL,CAAaC,EAAb,CAAgB,qBAAhB;AAAA,+FAAuC,iBAAOC,OAAP;AAAA;AAAA;AAAA;AAAA;AAAA;AACnCC,gBAAAA,WADmC,GACPD,OADO,CACnCC,WADmC,EACtBC,UADsB,GACPF,OADO,CACtBE,UADsB;AAAA;AAAA,uBAEjB,MAAKC,gBAAL,CAAsBC,WAAtB,CAAkC,MAAlC,CAFiB;;AAAA;AAErCA,gBAAAA,WAFqC;;AAAA,sBAIvCA,WAAW,IAAIH,WAAW,KAAK,MAA/B,IAAyCC,UAAU,KAAK,SAJjB;AAAA;AAAA;AAAA;;AAAA;AAAA,uBAKtB,MAAKG,MAAL,CAAY,MAAZ,EAAoBC,WAApB,CAAgC,MAAKC,GAArC,CALsB;;AAAA;AAKpCC,gBAAAA,KALoC;AAAA,iDAMnC;AACNA,kBAAAA,KAAK,EAALA;AADM,iBANmC;;AAAA;AAAA,iDAUpC,EAVoC;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAAvC;;AAAA;AAAA;AAAA;AAAA,QAAL;AAaA,SAAK,MAAKV,OAAL,CAAaC,EAAb,CAAgB,qCAAhB,6FAAuD;AAAA;AAAA;AAAA;AAAA;AAAA,gDACpD;AACNU,gBAAAA,eAAe,EAAE,CAChB;AACCd,kBAAAA,IAAI,EAAE,4BADP;AAECe,kBAAAA,KAAK,EAAE,4BAFR;AAGC,4BAAQ,gCAHT;AAICT,kBAAAA,WAAW,EAAE;AAJd,iBADgB;AADX,eADoD;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAAvD,GAAL;AAhB0C;AA4B1C;;;;;+GAED;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBACqB,KAAKI,MAAL,CAAY,MAAZ,EAAoBC,WAApB,CAAgC,KAAKC,GAArC,CADrB;;AAAA;AACOC,gBAAAA,KADP;
|
|
1
|
+
{"version":3,"sources":["../../../src/features/view/ViewFeature.ts"],"names":["ViewFeature","options","diskUtil","resolvePath","__dirname","name","code","isRequired","emitter","on","payload","featureCode","actionCode","featureInstaller","isInstalled","Writer","writePlugin","cwd","files","abstractClasses","label","Service","add","id","namespace","AbstractFeature"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAEA;;;;;;IAaqBA,W;;;;;AA8BpB,uBAAmBC,OAAnB,EAA2C;AAAA;;AAAA;AAC1C,8BAAMA,OAAN;AAD0C,qGA7BrB,OA6BqB;AAAA,oGA5BtB,oDA4BsB;AAAA,6FA3BhB,MA2BgB;AAAA,mGA1BvBC,2BAASC,WAAT,CAAqBC,SAArB,EAAgC,SAAhC,CA0BuB;AAAA,4GAxBS,CACnD;AACCC,MAAAA,IAAI,EAAE;AADP,KADmD,EAInD;AACCA,MAAAA,IAAI,EAAE;AADP,KAJmD,CAwBT;AAAA,qGAfA,CAC1C;AACCC,MAAAA,IAAI,EAAE,OADP;AAECC,MAAAA,UAAU,EAAE;AAFb,KAD0C,EAK1C;AACCD,MAAAA,IAAI,EAAE,QADP;AAECC,MAAAA,UAAU,EAAE;AAFb,KAL0C,EAS1C;AACCD,MAAAA,IAAI,EAAE,OADP;AAECC,MAAAA,UAAU,EAAE;AAFb,KAT0C,CAeA;AAG1C,SAAK,MAAKC,OAAL,CAAaC,EAAb,CAAgB,qBAAhB;AAAA,+FAAuC,iBAAOC,OAAP;AAAA;AAAA;AAAA;AAAA;AAAA;AACnCC,gBAAAA,WADmC,GACPD,OADO,CACnCC,WADmC,EACtBC,UADsB,GACPF,OADO,CACtBE,UADsB;AAAA;AAAA,uBAEjB,MAAKC,gBAAL,CAAsBC,WAAtB,CAAkC,MAAlC,CAFiB;;AAAA;AAErCA,gBAAAA,WAFqC;;AAAA,sBAIvCA,WAAW,IAAIH,WAAW,KAAK,MAA/B,IAAyCC,UAAU,KAAK,SAJjB;AAAA;AAAA;AAAA;;AAAA;AAAA,uBAKtB,MAAKG,MAAL,CAAY,MAAZ,EAAoBC,WAApB,CAAgC,MAAKC,GAArC,CALsB;;AAAA;AAKpCC,gBAAAA,KALoC;AAAA,iDAMnC;AACNA,kBAAAA,KAAK,EAALA;AADM,iBANmC;;AAAA;AAAA,iDAUpC,EAVoC;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAAvC;;AAAA;AAAA;AAAA;AAAA,QAAL;AAaA,SAAK,MAAKV,OAAL,CAAaC,EAAb,CAAgB,qCAAhB,6FAAuD;AAAA;AAAA;AAAA;AAAA;AAAA,gDACpD;AACNU,gBAAAA,eAAe,EAAE,CAChB;AACCd,kBAAAA,IAAI,EAAE,4BADP;AAECe,kBAAAA,KAAK,EAAE,4BAFR;AAGC,4BAAQ,gCAHT;AAICT,kBAAAA,WAAW,EAAE;AAJd,iBADgB;AADX,eADoD;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAAvD,GAAL;AAhB0C;AA4B1C;;;;;+GAED;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBACqB,KAAKI,MAAL,CAAY,MAAZ,EAAoBC,WAApB,CAAgC,KAAKC,GAArC,CADrB;;AAAA;AACOC,gBAAAA,KADP;AAGC,qBAAKG,OAAL,CAAa,YAAb,EAA2BC,GAA3B,CAA+B;AAC9BC,kBAAAA,EAAE,EAAE,IAD0B;AAE9BC,kBAAAA,SAAS,EAAE;AAFmB,iBAA/B;AAHD,kDAQQ;AAAEN,kBAAAA,KAAK,EAALA;AAAF,iBARR;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;EA5DwCO,4B","sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { NpmPackage } from '../../types/cli.types'\nimport AbstractFeature, { FeatureDependency } from '../AbstractFeature'\nimport { ActionOptions, FeatureCode } from '../features.types'\n\ndeclare module '../../features/features.types' {\n\tinterface FeatureMap {\n\t\tview: ViewFeature\n\t}\n\n\tinterface FeatureOptionsMap {\n\t\tview: undefined\n\t}\n}\n\nexport default class ViewFeature extends AbstractFeature {\n\tpublic nameReadable = 'views'\n\tpublic description = 'Views: Create views using the Heartwood framework.'\n\tpublic code: FeatureCode = 'view'\n\tpublic actionsDir = diskUtil.resolvePath(__dirname, 'actions')\n\n\tpublic readonly packageDependencies: NpmPackage[] = [\n\t\t{\n\t\t\tname: '@sprucelabs/heartwood-view-controllers@latest',\n\t\t},\n\t\t{\n\t\t\tname: '@sprucelabs/spruce-view-plugin@latest',\n\t\t},\n\t]\n\n\tpublic dependencies: FeatureDependency[] = [\n\t\t{\n\t\t\tcode: 'skill',\n\t\t\tisRequired: true,\n\t\t},\n\t\t{\n\t\t\tcode: 'schema',\n\t\t\tisRequired: true,\n\t\t},\n\t\t{\n\t\t\tcode: 'event',\n\t\t\tisRequired: true,\n\t\t},\n\t]\n\n\tpublic constructor(options: ActionOptions) {\n\t\tsuper(options)\n\n\t\tvoid this.emitter.on('feature.did-execute', async (payload) => {\n\t\t\tconst { featureCode, actionCode } = payload\n\t\t\tconst isInstalled = await this.featureInstaller.isInstalled('view')\n\n\t\t\tif (isInstalled && featureCode === 'node' && actionCode === 'upgrade') {\n\t\t\t\tconst files = await this.Writer('view').writePlugin(this.cwd)\n\t\t\t\treturn {\n\t\t\t\t\tfiles,\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn {}\n\t\t})\n\n\t\tvoid this.emitter.on('test.register-abstract-test-classes', async () => {\n\t\t\treturn {\n\t\t\t\tabstractClasses: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'AbstractViewControllerTest',\n\t\t\t\t\t\tlabel: 'AbstractViewControllerTest',\n\t\t\t\t\t\timport: '@sprucelabs/spruce-view-plugin',\n\t\t\t\t\t\tfeatureCode: 'view',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t}\n\t\t})\n\t}\n\n\tpublic async afterPackageInstall() {\n\t\tconst files = await this.Writer('view').writePlugin(this.cwd)\n\n\t\tthis.Service('dependency').add({\n\t\t\tid: '**',\n\t\t\tnamespace: 'heartwood',\n\t\t})\n\n\t\treturn { files }\n\t}\n}\n"],"file":"ViewFeature.js"}
|
|
@@ -26,7 +26,7 @@ export default class SpyInterface implements GraphicsInterface {
|
|
|
26
26
|
command: string;
|
|
27
27
|
options?: any;
|
|
28
28
|
};
|
|
29
|
-
sendInput(input: string): Promise<void>;
|
|
29
|
+
sendInput(input: string | string[]): Promise<void>;
|
|
30
30
|
renderSection(options: {
|
|
31
31
|
headline: string;
|
|
32
32
|
lines?: string[] | string[];
|
|
@@ -50,6 +50,7 @@ export default class SpyInterface implements GraphicsInterface {
|
|
|
50
50
|
startLoading(message?: string | undefined): void;
|
|
51
51
|
stopLoading(): void;
|
|
52
52
|
waitForEnter(message?: string | undefined): Promise<void>;
|
|
53
|
+
waitForInput(): Promise<void>;
|
|
53
54
|
confirm(question: string): Promise<boolean>;
|
|
54
55
|
clear(): void;
|
|
55
56
|
renderProgressBar(options: ProgressBarOptions): void;
|
|
@@ -21,6 +21,8 @@ var _spruceSkillUtils = require("@sprucelabs/spruce-skill-utils");
|
|
|
21
21
|
|
|
22
22
|
var _test = require("@sprucelabs/test");
|
|
23
23
|
|
|
24
|
+
var _test2 = _interopRequireDefault(require("../tests/utilities/test.utility"));
|
|
25
|
+
|
|
24
26
|
var _duration = _interopRequireDefault(require("../utilities/duration.utility"));
|
|
25
27
|
|
|
26
28
|
var _TerminalInterface = _interopRequireDefault(require("./TerminalInterface"));
|
|
@@ -154,7 +156,7 @@ var SpyInterface = /*#__PURE__*/function () {
|
|
|
154
156
|
_resolver2 = this.confirmResolver;
|
|
155
157
|
this.confirmResolver = undefined;
|
|
156
158
|
|
|
157
|
-
_resolver2(input === '\n' || input.length === 0 || input.toLowerCase() === 'y');
|
|
159
|
+
_resolver2(input === '\n' || input.length === 0 || typeof input === 'string' && input.toLowerCase() === 'y');
|
|
158
160
|
|
|
159
161
|
_context.next = 21;
|
|
160
162
|
break;
|
|
@@ -421,6 +423,64 @@ var SpyInterface = /*#__PURE__*/function () {
|
|
|
421
423
|
|
|
422
424
|
return waitForEnter;
|
|
423
425
|
}()
|
|
426
|
+
}, {
|
|
427
|
+
key: "waitForInput",
|
|
428
|
+
value: function () {
|
|
429
|
+
var _waitForInput = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5() {
|
|
430
|
+
var ttl, checkInterval, loops, lastWriteCount, hasWritten;
|
|
431
|
+
return _regenerator["default"].wrap(function _callee5$(_context5) {
|
|
432
|
+
while (1) {
|
|
433
|
+
switch (_context5.prev = _context5.next) {
|
|
434
|
+
case 0:
|
|
435
|
+
ttl = 1000 * 60 * 5;
|
|
436
|
+
checkInterval = 100;
|
|
437
|
+
loops = ttl / checkInterval;
|
|
438
|
+
lastWriteCount = this.invocations.length;
|
|
439
|
+
|
|
440
|
+
case 4:
|
|
441
|
+
if (this.isWaitingForInput()) {
|
|
442
|
+
_context5.next = 12;
|
|
443
|
+
break;
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
if (loops-- === 0) {
|
|
447
|
+
_test.assert.fail("Waiting for input timed out.");
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
hasWritten = lastWriteCount != this.invocations.length;
|
|
451
|
+
|
|
452
|
+
if (hasWritten) {
|
|
453
|
+
loops = ttl / checkInterval;
|
|
454
|
+
lastWriteCount = this.invocations.length;
|
|
455
|
+
|
|
456
|
+
if (this.shouldRenderTestLogs()) {
|
|
457
|
+
_test2["default"].log('waitForInput timeout reset because of new output.');
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
|
|
461
|
+
_context5.next = 10;
|
|
462
|
+
return new Promise(function (resolve) {
|
|
463
|
+
return setTimeout(resolve, checkInterval);
|
|
464
|
+
});
|
|
465
|
+
|
|
466
|
+
case 10:
|
|
467
|
+
_context5.next = 4;
|
|
468
|
+
break;
|
|
469
|
+
|
|
470
|
+
case 12:
|
|
471
|
+
case "end":
|
|
472
|
+
return _context5.stop();
|
|
473
|
+
}
|
|
474
|
+
}
|
|
475
|
+
}, _callee5, this);
|
|
476
|
+
}));
|
|
477
|
+
|
|
478
|
+
function waitForInput() {
|
|
479
|
+
return _waitForInput.apply(this, arguments);
|
|
480
|
+
}
|
|
481
|
+
|
|
482
|
+
return waitForInput;
|
|
483
|
+
}()
|
|
424
484
|
}, {
|
|
425
485
|
key: "confirm",
|
|
426
486
|
value: function confirm(question) {
|
|
@@ -457,20 +517,20 @@ var SpyInterface = /*#__PURE__*/function () {
|
|
|
457
517
|
}, {
|
|
458
518
|
key: "getCursorPosition",
|
|
459
519
|
value: function () {
|
|
460
|
-
var _getCursorPosition = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function
|
|
461
|
-
return _regenerator["default"].wrap(function
|
|
520
|
+
var _getCursorPosition = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6() {
|
|
521
|
+
return _regenerator["default"].wrap(function _callee6$(_context6) {
|
|
462
522
|
while (1) {
|
|
463
|
-
switch (
|
|
523
|
+
switch (_context6.prev = _context6.next) {
|
|
464
524
|
case 0:
|
|
465
525
|
this.trackInvocation('getCursorPosition');
|
|
466
|
-
return
|
|
526
|
+
return _context6.abrupt("return", this.cursorPosition);
|
|
467
527
|
|
|
468
528
|
case 2:
|
|
469
529
|
case "end":
|
|
470
|
-
return
|
|
530
|
+
return _context6.stop();
|
|
471
531
|
}
|
|
472
532
|
}
|
|
473
|
-
},
|
|
533
|
+
}, _callee6, this);
|
|
474
534
|
}));
|
|
475
535
|
|
|
476
536
|
function getCursorPosition() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/interfaces/SpyInterface.ts"],"names":["SpyInterface","x","y","startTime","Date","getTime","term","shouldRenderTestLogs","TerminalInterface","process","cwd","strs","optionallyRenderLine","join","undefined","env","SHOULD_RENDER_TEST_LOGS","message","effects","trackInvocation","renderWarning","renderHint","command","options","invocations","push","promptResolver","confirmResolver","waitForEnterResolver","clearTimeout","promptTimeout","length","input","resolver","promptDefaultValue","toLowerCase","Error","Promise","resolve","setTimeout","renderSection","obj","renderObject","err","renderError","code","renderCodeSample","results","renderActionSummary","renderHero","dividerEffects","renderHeadline","renderDivider","duration","friendly","durationUtil","msToFriendly","testLog","info","global","activeTest","test","path","messages","renderLines","definition","msg","namesUtil","toPascal","type","label","choices","forEach","choice","value","reject","reset","assert","fail","defaultValue","question","title","cursorPosition","pos"],"mappings":"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","sourcesContent":["import { FieldDefinitionValueType } from '@sprucelabs/schema'\nimport { namesUtil, testLog } from '@sprucelabs/spruce-skill-utils'\nimport { assert } from '@sprucelabs/test'\nimport { FieldDefinitions } from '#spruce/schemas/fields/fields.types'\nimport { ExecutionResults } from '../types/cli.types'\nimport { GraphicsInterface } from '../types/cli.types'\nimport {\n\tGraphicsTextEffect,\n\tProgressBarOptions,\n\tProgressBarUpdateOptions,\n\tImageDimensions,\n} from '../types/graphicsInterface.types'\nimport durationUtil from '../utilities/duration.utility'\nimport TerminalInterface from './TerminalInterface'\n\nexport default class SpyInterface implements GraphicsInterface {\n\tpublic invocations: { command: string; options?: any }[] = []\n\tprivate cursorPosition = { x: 0, y: 0 }\n\n\tprivate promptResolver?: (\n\t\tinput: FieldDefinitionValueType<FieldDefinitions>\n\t) => void | undefined\n\n\tprivate confirmResolver?: (pass: boolean) => void | undefined\n\tprivate waitForEnterResolver?: () => void | undefined\n\tprivate promptDefaultValue: any\n\tprivate term?: TerminalInterface\n\tprivate startTime: number\n\tprivate promptTimeout?: any\n\n\tpublic constructor() {\n\t\tthis.startTime = new Date().getTime()\n\n\t\tthis.term = this.shouldRenderTestLogs()\n\t\t\t? new TerminalInterface(process.cwd(), true, (...strs: []) => {\n\t\t\t\t\tthis.optionallyRenderLine(strs.join(' '))\n\t\t\t })\n\t\t\t: undefined\n\t}\n\n\tprivate shouldRenderTestLogs() {\n\t\treturn process.env.SHOULD_RENDER_TEST_LOGS === 'true'\n\t}\n\n\tpublic renderWarning(\n\t\tmessage: string,\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderWarning', { message, effects })\n\t\tthis.term?.renderWarning(message)\n\t}\n\n\tpublic renderHint(\n\t\tmessage: string,\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderHint', { message, effects })\n\t\tthis.optionallyRenderLine(`Hint: ${message}`)\n\t\tthis.term?.renderHint(message)\n\t}\n\n\tprivate trackInvocation(command: string, options?: any) {\n\t\t// testUtil.log(command, JSON.stringify(options), '\\n')\n\t\tthis.invocations.push({ command, options })\n\t}\n\n\tpublic isWaitingForInput() {\n\t\treturn !!(\n\t\t\tthis.promptResolver ||\n\t\t\tthis.confirmResolver ||\n\t\t\tthis.waitForEnterResolver\n\t\t)\n\t}\n\n\tpublic reset() {\n\t\tthis.promptResolver = undefined\n\t\tthis.confirmResolver = undefined\n\t\tthis.waitForEnterResolver = undefined\n\t\tclearTimeout(this.promptTimeout)\n\t}\n\n\tpublic lastInvocation() {\n\t\treturn this.invocations[this.invocations.length - 1]\n\t}\n\n\tpublic async sendInput(input: string): Promise<void> {\n\t\tthis.trackInvocation('sendInput', input)\n\n\t\tthis.optionallyRenderLine(\n\t\t\t`Sending input: \"${input.length > 0 ? input : 'ENTER'}\"`\n\t\t)\n\n\t\tif (this.waitForEnterResolver) {\n\t\t\tconst resolver = this.waitForEnterResolver\n\t\t\tthis.waitForEnterResolver = undefined\n\n\t\t\tresolver()\n\t\t} else if (this.promptResolver) {\n\t\t\tconst resolver = this.promptResolver\n\t\t\tthis.promptResolver = undefined\n\n\t\t\tresolver(input !== '\\n' && input !== '' ? input : this.promptDefaultValue)\n\t\t} else if (this.confirmResolver) {\n\t\t\tconst resolver = this.confirmResolver\n\t\t\tthis.confirmResolver = undefined\n\n\t\t\tresolver(\n\t\t\t\tinput === '\\n' || input.length === 0 || input.toLowerCase() === 'y'\n\t\t\t)\n\t\t} else {\n\t\t\tthrow new Error('Sent input before prompted for input')\n\t\t}\n\n\t\treturn new Promise((resolve) => {\n\t\t\tsetTimeout(resolve, 50)\n\t\t})\n\t}\n\n\tpublic renderSection(options: {\n\t\theadline: string\n\t\tlines?: string[] | string[]\n\t\theadlineEffects?: GraphicsTextEffect[]\n\t\tdividerEffects?: GraphicsTextEffect[]\n\t\tbodyEffects?: GraphicsTextEffect[]\n\t\tobject?: any\n\t}): void {\n\t\tthis.trackInvocation('renderSection', options)\n\t\tthis.term?.renderSection(options)\n\t}\n\n\tpublic renderObject(obj: any): void {\n\t\tthis.trackInvocation('renderObject', obj)\n\t\tthis.term?.renderObject(obj)\n\t}\n\n\tpublic renderError(err: Error): void {\n\t\tthis.trackInvocation('renderError', err)\n\t\tthis.term?.renderError(err)\n\t}\n\n\tpublic renderCodeSample(code: string): void {\n\t\tthis.trackInvocation('renderCodeSample', code)\n\t\tthis.term?.renderCodeSample(code)\n\t}\n\n\tpublic renderActionSummary(results: ExecutionResults): void {\n\t\tthis.trackInvocation('renderCommandSummary', results)\n\t\tthis.term?.renderActionSummary(results)\n\t}\n\n\tpublic renderHero(\n\t\tmessage: string,\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderHero', { message, effects })\n\t\tthis.term?.renderHero(message, effects)\n\t}\n\n\tpublic renderHeadline(\n\t\tmessage: string,\n\t\teffects: GraphicsTextEffect[],\n\t\tdividerEffects: GraphicsTextEffect[]\n\t): void {\n\t\tthis.trackInvocation('renderHeadline', { message, effects, dividerEffects })\n\t\tthis.term?.renderHeadline(message, effects, dividerEffects)\n\t}\n\n\tpublic renderDivider(effects?: GraphicsTextEffect[] | undefined): void {\n\t\tthis.trackInvocation('renderDivider', effects)\n\t\tthis.term?.renderDivider(effects)\n\t}\n\n\tpublic renderLine(\n\t\tmessage: string,\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderLine', { message, effects })\n\t\tmessage && message.length > 0 && this.optionallyRenderLine(message)\n\t}\n\n\tprivate optionallyRenderLine(message: string) {\n\t\tif (this.shouldRenderTestLogs()) {\n\t\t\tconst duration = new Date().getTime() - this.startTime\n\t\t\tconst friendly = durationUtil.msToFriendly(duration)\n\n\t\t\ttestLog.info(\n\t\t\t\t`${\n\t\t\t\t\t//@ts-ignore\n\t\t\t\t\tglobal.activeTest?.test ? global.activeTest?.test + ' :: ' : ''\n\t\t\t\t}${friendly} :: ${message}`\n\t\t\t)\n\t\t}\n\t}\n\n\tpublic async renderImage(\n\t\tpath: string,\n\t\toptions?: ImageDimensions\n\t): Promise<void> {\n\t\tthis.trackInvocation('renderImage', { path, options })\n\t}\n\n\tpublic renderLines(\n\t\tmessages: string[],\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderLines', { messages, effects })\n\t\tthis.term?.renderLines(messages, effects)\n\t}\n\n\tpublic async prompt<T extends FieldDefinitions>(definition: T) {\n\t\tthis.trackInvocation('prompt', definition)\n\n\t\tif (this.promptResolver) {\n\t\t\tthrow new Error(\n\t\t\t\t'Tried to double prompt. Try this.term?.sendInput() before calling prompt next.'\n\t\t\t)\n\t\t}\n\n\t\tlet msg = `${namesUtil.toPascal(definition.type)} Prompt: ${\n\t\t\tdefinition.label\n\t\t}`\n\n\t\tif (definition.type === 'select') {\n\t\t\tmsg += '\\n\\nChoices:\\n'\n\t\t\tdefinition.options.choices.forEach((choice) => {\n\t\t\t\tmsg += `\\n${choice.value}: ${choice.label}`\n\t\t\t})\n\n\t\t\tmsg += '\\n'\n\t\t}\n\n\t\tthis.optionallyRenderLine(msg)\n\n\t\treturn new Promise<FieldDefinitionValueType<FieldDefinitions>>(\n\t\t\t(resolve, reject) => {\n\t\t\t\tthis.promptResolver = (...args: any[]) => {\n\t\t\t\t\tclearTimeout(this.promptTimeout)\n\t\t\t\t\t//@ts-ignore\n\t\t\t\t\tresolve(...args)\n\t\t\t\t}\n\t\t\t\tthis.promptTimeout = setTimeout(() => {\n\t\t\t\t\tthis.reset()\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tassert.fail(`Timed out waiting for input: ${definition.label}`)\n\t\t\t\t\t} catch (err: any) {\n\t\t\t\t\t\treject(err)\n\t\t\t\t\t}\n\t\t\t\t}, 10000)\n\t\t\t\tthis.promptDefaultValue = definition.defaultValue\n\t\t\t}\n\t\t)\n\t}\n\n\tpublic startLoading(message?: string | undefined): void {\n\t\tthis.trackInvocation('startLoading', message)\n\t\tthis.optionallyRenderLine(message ? `${message}` : 'Start loading...')\n\t}\n\n\tpublic stopLoading(): void {\n\t\tthis.trackInvocation('stopLoading')\n\t\tthis.optionallyRenderLine('Stop loading...')\n\t}\n\n\tpublic async waitForEnter(message?: string | undefined): Promise<void> {\n\t\tthis.trackInvocation('waitForEnter', message)\n\t\tthis.optionallyRenderLine(\n\t\t\t`${message ? ` ${message}\\n\\n` : ``}Waiting for enter...`\n\t\t)\n\n\t\treturn new Promise((resolve) => {\n\t\t\tthis.waitForEnterResolver = resolve\n\t\t})\n\t}\n\n\tpublic confirm(question: string): Promise<boolean> {\n\t\tthis.trackInvocation('confirm', question)\n\t\tthis.optionallyRenderLine(`${question} :: Y/N...`)\n\n\t\treturn new Promise((resolve) => {\n\t\t\tthis.confirmResolver = resolve\n\t\t})\n\t}\n\n\tpublic clear(): void {\n\t\tthis.trackInvocation('clear')\n\t}\n\n\tpublic renderProgressBar(options: ProgressBarOptions): void {\n\t\tthis.trackInvocation('renderProgressBar', options)\n\t\tthis.optionallyRenderLine(\n\t\t\t`Showing progress${options.title ? ` ${options.title}` : ``}`\n\t\t)\n\t}\n\n\tpublic updateProgressBar(options: ProgressBarUpdateOptions): void {\n\t\tthis.trackInvocation('updateProgressBar', options)\n\t}\n\n\tpublic removeProgressBar(): void {\n\t\tthis.trackInvocation('removeProgressBar')\n\t\tthis.optionallyRenderLine(`Hiding progress`)\n\t}\n\n\tpublic async getCursorPosition(): Promise<{ x: number; y: number } | null> {\n\t\tthis.trackInvocation('getCursorPosition')\n\t\treturn this.cursorPosition\n\t}\n\n\tpublic setCursorPosition(pos: { x: number; y: number }) {\n\t\tthis.cursorPosition = pos\n\t}\n\n\tpublic moveCursorTo(x: number, y: number): void {\n\t\tthis.trackInvocation('moveCursorTo', { x, y })\n\t}\n\n\tpublic clearBelowCursor(): void {\n\t\tthis.trackInvocation('clearBelowCursor')\n\t}\n}\n"],"file":"SpyInterface.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/interfaces/SpyInterface.ts"],"names":["SpyInterface","x","y","startTime","Date","getTime","term","shouldRenderTestLogs","TerminalInterface","process","cwd","strs","optionallyRenderLine","join","undefined","env","SHOULD_RENDER_TEST_LOGS","message","effects","trackInvocation","renderWarning","renderHint","command","options","invocations","push","promptResolver","confirmResolver","waitForEnterResolver","clearTimeout","promptTimeout","length","input","resolver","promptDefaultValue","toLowerCase","Error","Promise","resolve","setTimeout","renderSection","obj","renderObject","err","renderError","code","renderCodeSample","results","renderActionSummary","renderHero","dividerEffects","renderHeadline","renderDivider","duration","friendly","durationUtil","msToFriendly","testLog","info","global","activeTest","test","path","messages","renderLines","definition","msg","namesUtil","toPascal","type","label","choices","forEach","choice","value","reject","reset","assert","fail","defaultValue","ttl","checkInterval","loops","lastWriteCount","isWaitingForInput","hasWritten","testUtil","log","question","title","cursorPosition","pos"],"mappings":";;;;;;;;;;;;;;;;;;;AACA;;AACA;;AAEA;;AASA;;AACA;;IAEqBA,Y;AAepB,0BAAqB;AAAA;;AAAA;AAAA,0DAdsC,EActC;AAAA,6DAbI;AAAEC,MAAAA,CAAC,EAAE,CAAL;AAAQC,MAAAA,CAAC,EAAE;AAAX,KAaJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACpB,SAAKC,SAAL,GAAiB,IAAIC,IAAJ,GAAWC,OAAX,EAAjB;AAEA,SAAKC,IAAL,GAAY,KAAKC,oBAAL,KACT,IAAIC,6BAAJ,CAAsBC,OAAO,CAACC,GAAR,EAAtB,EAAqC,IAArC,EAA2C,YAAiB;AAAA,wCAAbC,IAAa;AAAbA,QAAAA,IAAa;AAAA;;AAC5D,MAAA,KAAI,CAACC,oBAAL,CAA0BD,IAAI,CAACE,IAAL,CAAU,GAAV,CAA1B;AACC,KAFD,CADS,GAITC,SAJH;AAKA;;;;WAED,gCAA+B;AAC9B,aAAOL,OAAO,CAACM,GAAR,CAAYC,uBAAZ,KAAwC,MAA/C;AACA;;;WAED,uBACCC,OADD,EAECC,OAFD,EAGQ;AAAA;;AACP,WAAKC,eAAL,CAAqB,eAArB,EAAsC;AAAEF,QAAAA,OAAO,EAAPA,OAAF;AAAWC,QAAAA,OAAO,EAAPA;AAAX,OAAtC;AACA,yBAAKZ,IAAL,0DAAWc,aAAX,CAAyBH,OAAzB;AACA;;;WAED,oBACCA,OADD,EAECC,OAFD,EAGQ;AAAA;;AACP,WAAKC,eAAL,CAAqB,YAArB,EAAmC;AAAEF,QAAAA,OAAO,EAAPA,OAAF;AAAWC,QAAAA,OAAO,EAAPA;AAAX,OAAnC;AACA,WAAKN,oBAAL,iBAAmCK,OAAnC;AACA,0BAAKX,IAAL,4DAAWe,UAAX,CAAsBJ,OAAtB;AACA;;;WAED,yBAAwBK,OAAxB,EAAyCC,OAAzC,EAAwD;AACvD;AACA,WAAKC,WAAL,CAAiBC,IAAjB,CAAsB;AAAEH,QAAAA,OAAO,EAAPA,OAAF;AAAWC,QAAAA,OAAO,EAAPA;AAAX,OAAtB;AACA;;;WAED,6BAA2B;AAC1B,aAAO,CAAC,EACP,KAAKG,cAAL,IACA,KAAKC,eADL,IAEA,KAAKC,oBAHE,CAAR;AAKA;;;WAED,iBAAe;AACd,WAAKF,cAAL,GAAsBZ,SAAtB;AACA,WAAKa,eAAL,GAAuBb,SAAvB;AACA,WAAKc,oBAAL,GAA4Bd,SAA5B;AACAe,MAAAA,YAAY,CAAC,KAAKC,aAAN,CAAZ;AACA;;;WAED,0BAAwB;AACvB,aAAO,KAAKN,WAAL,CAAiB,KAAKA,WAAL,CAAiBO,MAAjB,GAA0B,CAA3C,CAAP;AACA;;;;qGAED,iBAAuBC,KAAvB;AAAA;;AAAA;AAAA;AAAA;AAAA;AACC,qBAAKb,eAAL,CAAqB,WAArB,EAAkCa,KAAlC;AAEA,qBAAKpB,oBAAL,4BACoBoB,KAAK,CAACD,MAAN,GAAe,CAAf,GAAmBC,KAAnB,GAA2B,OAD/C;;AAHD,qBAOK,KAAKJ,oBAPV;AAAA;AAAA;AAAA;;AAQQK,gBAAAA,QARR,GAQmB,KAAKL,oBARxB;AASE,qBAAKA,oBAAL,GAA4Bd,SAA5B;AAEAmB,gBAAAA,QAAQ;AAXV;AAAA;;AAAA;AAAA,qBAYY,KAAKP,cAZjB;AAAA;AAAA;AAAA;;AAaQO,gBAAAA,SAbR,GAamB,KAAKP,cAbxB;AAcE,qBAAKA,cAAL,GAAsBZ,SAAtB;;AAEAmB,gBAAAA,SAAQ,CAACD,KAAK,KAAK,IAAV,IAAkBA,KAAK,KAAK,EAA5B,GAAiCA,KAAjC,GAAyC,KAAKE,kBAA/C,CAAR;;AAhBF;AAAA;;AAAA;AAAA,qBAiBY,KAAKP,eAjBjB;AAAA;AAAA;AAAA;;AAkBQM,gBAAAA,UAlBR,GAkBmB,KAAKN,eAlBxB;AAmBE,qBAAKA,eAAL,GAAuBb,SAAvB;;AAEAmB,gBAAAA,UAAQ,CACPD,KAAK,KAAK,IAAV,IACCA,KAAK,CAACD,MAAN,KAAiB,CADlB,IAEE,OAAOC,KAAP,KAAiB,QAAjB,IAA6BA,KAAK,CAACG,WAAN,OAAwB,GAHhD,CAAR;;AArBF;AAAA;;AAAA;AAAA,sBA2BQ,IAAIC,KAAJ,CAAU,sCAAV,CA3BR;;AAAA;AAAA,iDA8BQ,IAAIC,OAAJ,CAAY,UAACC,OAAD,EAAa;AAC/BC,kBAAAA,UAAU,CAACD,OAAD,EAAU,EAAV,CAAV;AACA,iBAFM,CA9BR;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;WAmCA,uBAAqBf,OAArB,EAOS;AAAA;;AACR,WAAKJ,eAAL,CAAqB,eAArB,EAAsCI,OAAtC;AACA,0BAAKjB,IAAL,4DAAWkC,aAAX,CAAyBjB,OAAzB;AACA;;;WAED,sBAAoBkB,GAApB,EAAoC;AAAA;;AACnC,WAAKtB,eAAL,CAAqB,cAArB,EAAqCsB,GAArC;AACA,0BAAKnC,IAAL,4DAAWoC,YAAX,CAAwBD,GAAxB;AACA;;;WAED,qBAAmBE,GAAnB,EAAqC;AAAA;;AACpC,WAAKxB,eAAL,CAAqB,aAArB,EAAoCwB,GAApC;AACA,0BAAKrC,IAAL,4DAAWsC,WAAX,CAAuBD,GAAvB;AACA;;;WAED,0BAAwBE,IAAxB,EAA4C;AAAA;;AAC3C,WAAK1B,eAAL,CAAqB,kBAArB,EAAyC0B,IAAzC;AACA,0BAAKvC,IAAL,4DAAWwC,gBAAX,CAA4BD,IAA5B;AACA;;;WAED,6BAA2BE,OAA3B,EAA4D;AAAA;;AAC3D,WAAK5B,eAAL,CAAqB,sBAArB,EAA6C4B,OAA7C;AACA,0BAAKzC,IAAL,4DAAW0C,mBAAX,CAA+BD,OAA/B;AACA;;;WAED,oBACC9B,OADD,EAECC,OAFD,EAGQ;AAAA;;AACP,WAAKC,eAAL,CAAqB,YAArB,EAAmC;AAAEF,QAAAA,OAAO,EAAPA,OAAF;AAAWC,QAAAA,OAAO,EAAPA;AAAX,OAAnC;AACA,0BAAKZ,IAAL,4DAAW2C,UAAX,CAAsBhC,OAAtB,EAA+BC,OAA/B;AACA;;;WAED,wBACCD,OADD,EAECC,OAFD,EAGCgC,cAHD,EAIQ;AAAA;;AACP,WAAK/B,eAAL,CAAqB,gBAArB,EAAuC;AAAEF,QAAAA,OAAO,EAAPA,OAAF;AAAWC,QAAAA,OAAO,EAAPA,OAAX;AAAoBgC,QAAAA,cAAc,EAAdA;AAApB,OAAvC;AACA,0BAAK5C,IAAL,4DAAW6C,cAAX,CAA0BlC,OAA1B,EAAmCC,OAAnC,EAA4CgC,cAA5C;AACA;;;WAED,uBAAqBhC,OAArB,EAAuE;AAAA;;AACtE,WAAKC,eAAL,CAAqB,eAArB,EAAsCD,OAAtC;AACA,2BAAKZ,IAAL,8DAAW8C,aAAX,CAAyBlC,OAAzB;AACA;;;WAED,oBACCD,OADD,EAECC,OAFD,EAGQ;AACP,WAAKC,eAAL,CAAqB,YAArB,EAAmC;AAAEF,QAAAA,OAAO,EAAPA,OAAF;AAAWC,QAAAA,OAAO,EAAPA;AAAX,OAAnC;AACAD,MAAAA,OAAO,IAAIA,OAAO,CAACc,MAAR,GAAiB,CAA5B,IAAiC,KAAKnB,oBAAL,CAA0BK,OAA1B,CAAjC;AACA;;;WAED,8BAA6BA,OAA7B,EAA8C;AAC7C,UAAI,KAAKV,oBAAL,EAAJ,EAAiC;AAAA;;AAChC,YAAM8C,QAAQ,GAAG,IAAIjD,IAAJ,GAAWC,OAAX,KAAuB,KAAKF,SAA7C;;AACA,YAAMmD,QAAQ,GAAGC,qBAAaC,YAAb,CAA0BH,QAA1B,CAAjB;;AAEAI,kCAAQC,IAAR,YAEE;AACA,8BAAAC,MAAM,CAACC,UAAP,kEAAmBC,IAAnB,GAA0B,wBAAAF,MAAM,CAACC,UAAP,4EAAmBC,IAAnB,IAA0B,MAApD,GAA6D,EAH/D,SAIIP,QAJJ,iBAImBrC,OAJnB;AAMA;AACD;;;;uGAED,kBACC6C,IADD,EAECvC,OAFD;AAAA;AAAA;AAAA;AAAA;AAIC,qBAAKJ,eAAL,CAAqB,aAArB,EAAoC;AAAE2C,kBAAAA,IAAI,EAAJA,IAAF;AAAQvC,kBAAAA,OAAO,EAAPA;AAAR,iBAApC;;AAJD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;WAOA,qBACCwC,QADD,EAEC7C,OAFD,EAGQ;AAAA;;AACP,WAAKC,eAAL,CAAqB,aAArB,EAAoC;AAAE4C,QAAAA,QAAQ,EAARA,QAAF;AAAY7C,QAAAA,OAAO,EAAPA;AAAZ,OAApC;AACA,2BAAKZ,IAAL,8DAAW0D,WAAX,CAAuBD,QAAvB,EAAiC7C,OAAjC;AACA;;;;kGAED,kBAAgD+C,UAAhD;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AACC,qBAAK9C,eAAL,CAAqB,QAArB,EAA+B8C,UAA/B;;AADD,qBAGK,KAAKvC,cAHV;AAAA;AAAA;AAAA;;AAAA,sBAIQ,IAAIU,KAAJ,CACL,gFADK,CAJR;;AAAA;AASK8B,gBAAAA,GATL,aAScC,4BAAUC,QAAV,CAAmBH,UAAU,CAACI,IAA9B,CATd,sBAUEJ,UAAU,CAACK,KAVb;;AAaC,oBAAIL,UAAU,CAACI,IAAX,KAAoB,QAAxB,EAAkC;AACjCH,kBAAAA,GAAG,IAAI,gBAAP;AACAD,kBAAAA,UAAU,CAAC1C,OAAX,CAAmBgD,OAAnB,CAA2BC,OAA3B,CAAmC,UAACC,MAAD,EAAY;AAC9CP,oBAAAA,GAAG,gBAASO,MAAM,CAACC,KAAhB,eAA0BD,MAAM,CAACH,KAAjC,CAAH;AACA,mBAFD;AAIAJ,kBAAAA,GAAG,IAAI,IAAP;AACA;;AAED,qBAAKtD,oBAAL,CAA0BsD,GAA1B;AAtBD,kDAwBQ,IAAI7B,OAAJ,CACN,UAACC,OAAD,EAAUqC,MAAV,EAAqB;AACpB,kBAAA,MAAI,CAACjD,cAAL,GAAsB,YAAoB;AACzCG,oBAAAA,YAAY,CAAC,MAAI,CAACC,aAAN,CAAZ,CADyC,CAEzC;;AAAA;AACAQ,oBAAAA,OAAO,MAAP;AACA,mBAJD;;AAKA,kBAAA,MAAI,CAACR,aAAL,GAAqBS,UAAU,CAAC,YAAM;AACrC,oBAAA,MAAI,CAACqC,KAAL;;AAEA,wBAAI;AACHC,mCAAOC,IAAP,wCAA4Cb,UAAU,CAACK,KAAvD;AACA,qBAFD,CAEE,OAAO3B,GAAP,EAAiB;AAClBgC,sBAAAA,MAAM,CAAChC,GAAD,CAAN;AACA;AACD,mBAR8B,EAQ5B,KAR4B,CAA/B;AASA,kBAAA,MAAI,CAACT,kBAAL,GAA0B+B,UAAU,CAACc,YAArC;AACA,iBAjBK,CAxBR;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;WA6CA,sBAAoB9D,OAApB,EAAwD;AACvD,WAAKE,eAAL,CAAqB,cAArB,EAAqCF,OAArC;AACA,WAAKL,oBAAL,CAA0BK,OAAO,aAAMA,OAAN,IAAkB,kBAAnD;AACA;;;WAED,uBAA2B;AAC1B,WAAKE,eAAL,CAAqB,aAArB;AACA,WAAKP,oBAAL,CAA0B,iBAA1B;AACA;;;;wGAED,kBAA0BK,OAA1B;AAAA;;AAAA;AAAA;AAAA;AAAA;AACC,qBAAKE,eAAL,CAAqB,cAArB,EAAqCF,OAArC;AACA,qBAAKL,oBAAL,WACIK,OAAO,cAAOA,OAAP,cADX;AAFD,kDAMQ,IAAIoB,OAAJ,CAAY,UAACC,OAAD,EAAa;AAC/B,kBAAA,MAAI,CAACV,oBAAL,GAA4BU,OAA5B;AACA,iBAFM,CANR;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;wGAWA;AAAA;AAAA;AAAA;AAAA;AAAA;AACO0C,gBAAAA,GADP,GACa,OAAO,EAAP,GAAY,CADzB;AAEOC,gBAAAA,aAFP,GAEuB,GAFvB;AAGKC,gBAAAA,KAHL,GAGaF,GAAG,GAAGC,aAHnB;AAIKE,gBAAAA,cAJL,GAIsB,KAAK3D,WAAL,CAAiBO,MAJvC;;AAAA;AAAA,oBAMS,KAAKqD,iBAAL,EANT;AAAA;AAAA;AAAA;;AAOE,oBAAIF,KAAK,OAAO,CAAhB,EAAmB;AAClBL,+BAAOC,IAAP;AACA;;AAEKO,gBAAAA,UAXR,GAWqBF,cAAc,IAAI,KAAK3D,WAAL,CAAiBO,MAXxD;;AAaE,oBAAIsD,UAAJ,EAAgB;AACfH,kBAAAA,KAAK,GAAGF,GAAG,GAAGC,aAAd;AACAE,kBAAAA,cAAc,GAAG,KAAK3D,WAAL,CAAiBO,MAAlC;;AACA,sBAAI,KAAKxB,oBAAL,EAAJ,EAAiC;AAChC+E,sCAASC,GAAT,CAAa,mDAAb;AACA;AACD;;AAnBH;AAAA,uBAoBQ,IAAIlD,OAAJ,CAAY,UAACC,OAAD;AAAA,yBAAaC,UAAU,CAACD,OAAD,EAAU2C,aAAV,CAAvB;AAAA,iBAAZ,CApBR;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;WAwBA,iBAAeO,QAAf,EAAmD;AAAA;;AAClD,WAAKrE,eAAL,CAAqB,SAArB,EAAgCqE,QAAhC;AACA,WAAK5E,oBAAL,WAA6B4E,QAA7B;AAEA,aAAO,IAAInD,OAAJ,CAAY,UAACC,OAAD,EAAa;AAC/B,QAAA,MAAI,CAACX,eAAL,GAAuBW,OAAvB;AACA,OAFM,CAAP;AAGA;;;WAED,iBAAqB;AACpB,WAAKnB,eAAL,CAAqB,OAArB;AACA;;;WAED,2BAAyBI,OAAzB,EAA4D;AAC3D,WAAKJ,eAAL,CAAqB,mBAArB,EAA0CI,OAA1C;AACA,WAAKX,oBAAL,2BACoBW,OAAO,CAACkE,KAAR,cAAoBlE,OAAO,CAACkE,KAA5B,MADpB;AAGA;;;WAED,2BAAyBlE,OAAzB,EAAkE;AACjE,WAAKJ,eAAL,CAAqB,mBAArB,EAA0CI,OAA1C;AACA;;;WAED,6BAAiC;AAChC,WAAKJ,eAAL,CAAqB,mBAArB;AACA,WAAKP,oBAAL;AACA;;;;6GAED;AAAA;AAAA;AAAA;AAAA;AACC,qBAAKO,eAAL,CAAqB,mBAArB;AADD,kDAEQ,KAAKuE,cAFb;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;WAKA,2BAAyBC,GAAzB,EAAwD;AACvD,WAAKD,cAAL,GAAsBC,GAAtB;AACA;;;WAED,sBAAoB1F,CAApB,EAA+BC,CAA/B,EAAgD;AAC/C,WAAKiB,eAAL,CAAqB,cAArB,EAAqC;AAAElB,QAAAA,CAAC,EAADA,CAAF;AAAKC,QAAAA,CAAC,EAADA;AAAL,OAArC;AACA;;;WAED,4BAAgC;AAC/B,WAAKiB,eAAL,CAAqB,kBAArB;AACA","sourcesContent":["import { FieldDefinitionValueType } from '@sprucelabs/schema'\nimport { namesUtil, testLog } from '@sprucelabs/spruce-skill-utils'\nimport { assert } from '@sprucelabs/test'\nimport { FieldDefinitions } from '#spruce/schemas/fields/fields.types'\nimport testUtil from '../tests/utilities/test.utility'\nimport { ExecutionResults } from '../types/cli.types'\nimport { GraphicsInterface } from '../types/cli.types'\nimport {\n\tGraphicsTextEffect,\n\tProgressBarOptions,\n\tProgressBarUpdateOptions,\n\tImageDimensions,\n} from '../types/graphicsInterface.types'\nimport durationUtil from '../utilities/duration.utility'\nimport TerminalInterface from './TerminalInterface'\n\nexport default class SpyInterface implements GraphicsInterface {\n\tpublic invocations: { command: string; options?: any }[] = []\n\tprivate cursorPosition = { x: 0, y: 0 }\n\n\tprivate promptResolver?: (\n\t\tinput: FieldDefinitionValueType<FieldDefinitions>\n\t) => void | undefined\n\n\tprivate confirmResolver?: (pass: boolean) => void | undefined\n\tprivate waitForEnterResolver?: () => void | undefined\n\tprivate promptDefaultValue: any\n\tprivate term?: TerminalInterface\n\tprivate startTime: number\n\tprivate promptTimeout?: any\n\n\tpublic constructor() {\n\t\tthis.startTime = new Date().getTime()\n\n\t\tthis.term = this.shouldRenderTestLogs()\n\t\t\t? new TerminalInterface(process.cwd(), true, (...strs: []) => {\n\t\t\t\t\tthis.optionallyRenderLine(strs.join(' '))\n\t\t\t })\n\t\t\t: undefined\n\t}\n\n\tprivate shouldRenderTestLogs() {\n\t\treturn process.env.SHOULD_RENDER_TEST_LOGS === 'true'\n\t}\n\n\tpublic renderWarning(\n\t\tmessage: string,\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderWarning', { message, effects })\n\t\tthis.term?.renderWarning(message)\n\t}\n\n\tpublic renderHint(\n\t\tmessage: string,\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderHint', { message, effects })\n\t\tthis.optionallyRenderLine(`Hint: ${message}`)\n\t\tthis.term?.renderHint(message)\n\t}\n\n\tprivate trackInvocation(command: string, options?: any) {\n\t\t// testUtil.log(command, JSON.stringify(options), '\\n')\n\t\tthis.invocations.push({ command, options })\n\t}\n\n\tpublic isWaitingForInput() {\n\t\treturn !!(\n\t\t\tthis.promptResolver ||\n\t\t\tthis.confirmResolver ||\n\t\t\tthis.waitForEnterResolver\n\t\t)\n\t}\n\n\tpublic reset() {\n\t\tthis.promptResolver = undefined\n\t\tthis.confirmResolver = undefined\n\t\tthis.waitForEnterResolver = undefined\n\t\tclearTimeout(this.promptTimeout)\n\t}\n\n\tpublic lastInvocation() {\n\t\treturn this.invocations[this.invocations.length - 1]\n\t}\n\n\tpublic async sendInput(input: string | string[]): Promise<void> {\n\t\tthis.trackInvocation('sendInput', input)\n\n\t\tthis.optionallyRenderLine(\n\t\t\t`Sending input: \"${input.length > 0 ? input : 'ENTER'}\"`\n\t\t)\n\n\t\tif (this.waitForEnterResolver) {\n\t\t\tconst resolver = this.waitForEnterResolver\n\t\t\tthis.waitForEnterResolver = undefined\n\n\t\t\tresolver()\n\t\t} else if (this.promptResolver) {\n\t\t\tconst resolver = this.promptResolver\n\t\t\tthis.promptResolver = undefined\n\n\t\t\tresolver(input !== '\\n' && input !== '' ? input : this.promptDefaultValue)\n\t\t} else if (this.confirmResolver) {\n\t\t\tconst resolver = this.confirmResolver\n\t\t\tthis.confirmResolver = undefined\n\n\t\t\tresolver(\n\t\t\t\tinput === '\\n' ||\n\t\t\t\t\tinput.length === 0 ||\n\t\t\t\t\t(typeof input === 'string' && input.toLowerCase() === 'y')\n\t\t\t)\n\t\t} else {\n\t\t\tthrow new Error('Sent input before prompted for input')\n\t\t}\n\n\t\treturn new Promise((resolve) => {\n\t\t\tsetTimeout(resolve, 50)\n\t\t})\n\t}\n\n\tpublic renderSection(options: {\n\t\theadline: string\n\t\tlines?: string[] | string[]\n\t\theadlineEffects?: GraphicsTextEffect[]\n\t\tdividerEffects?: GraphicsTextEffect[]\n\t\tbodyEffects?: GraphicsTextEffect[]\n\t\tobject?: any\n\t}): void {\n\t\tthis.trackInvocation('renderSection', options)\n\t\tthis.term?.renderSection(options)\n\t}\n\n\tpublic renderObject(obj: any): void {\n\t\tthis.trackInvocation('renderObject', obj)\n\t\tthis.term?.renderObject(obj)\n\t}\n\n\tpublic renderError(err: Error): void {\n\t\tthis.trackInvocation('renderError', err)\n\t\tthis.term?.renderError(err)\n\t}\n\n\tpublic renderCodeSample(code: string): void {\n\t\tthis.trackInvocation('renderCodeSample', code)\n\t\tthis.term?.renderCodeSample(code)\n\t}\n\n\tpublic renderActionSummary(results: ExecutionResults): void {\n\t\tthis.trackInvocation('renderCommandSummary', results)\n\t\tthis.term?.renderActionSummary(results)\n\t}\n\n\tpublic renderHero(\n\t\tmessage: string,\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderHero', { message, effects })\n\t\tthis.term?.renderHero(message, effects)\n\t}\n\n\tpublic renderHeadline(\n\t\tmessage: string,\n\t\teffects: GraphicsTextEffect[],\n\t\tdividerEffects: GraphicsTextEffect[]\n\t): void {\n\t\tthis.trackInvocation('renderHeadline', { message, effects, dividerEffects })\n\t\tthis.term?.renderHeadline(message, effects, dividerEffects)\n\t}\n\n\tpublic renderDivider(effects?: GraphicsTextEffect[] | undefined): void {\n\t\tthis.trackInvocation('renderDivider', effects)\n\t\tthis.term?.renderDivider(effects)\n\t}\n\n\tpublic renderLine(\n\t\tmessage: string,\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderLine', { message, effects })\n\t\tmessage && message.length > 0 && this.optionallyRenderLine(message)\n\t}\n\n\tprivate optionallyRenderLine(message: string) {\n\t\tif (this.shouldRenderTestLogs()) {\n\t\t\tconst duration = new Date().getTime() - this.startTime\n\t\t\tconst friendly = durationUtil.msToFriendly(duration)\n\n\t\t\ttestLog.info(\n\t\t\t\t`${\n\t\t\t\t\t//@ts-ignore\n\t\t\t\t\tglobal.activeTest?.test ? global.activeTest?.test + ' :: ' : ''\n\t\t\t\t}${friendly} :: ${message}`\n\t\t\t)\n\t\t}\n\t}\n\n\tpublic async renderImage(\n\t\tpath: string,\n\t\toptions?: ImageDimensions\n\t): Promise<void> {\n\t\tthis.trackInvocation('renderImage', { path, options })\n\t}\n\n\tpublic renderLines(\n\t\tmessages: string[],\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderLines', { messages, effects })\n\t\tthis.term?.renderLines(messages, effects)\n\t}\n\n\tpublic async prompt<T extends FieldDefinitions>(definition: T) {\n\t\tthis.trackInvocation('prompt', definition)\n\n\t\tif (this.promptResolver) {\n\t\t\tthrow new Error(\n\t\t\t\t'Tried to double prompt. Try this.term?.sendInput() before calling prompt next.'\n\t\t\t)\n\t\t}\n\n\t\tlet msg = `${namesUtil.toPascal(definition.type)} Prompt: ${\n\t\t\tdefinition.label\n\t\t}`\n\n\t\tif (definition.type === 'select') {\n\t\t\tmsg += '\\n\\nChoices:\\n'\n\t\t\tdefinition.options.choices.forEach((choice) => {\n\t\t\t\tmsg += `\\n${choice.value}: ${choice.label}`\n\t\t\t})\n\n\t\t\tmsg += '\\n'\n\t\t}\n\n\t\tthis.optionallyRenderLine(msg)\n\n\t\treturn new Promise<FieldDefinitionValueType<FieldDefinitions>>(\n\t\t\t(resolve, reject) => {\n\t\t\t\tthis.promptResolver = (...args: any[]) => {\n\t\t\t\t\tclearTimeout(this.promptTimeout)\n\t\t\t\t\t//@ts-ignore\n\t\t\t\t\tresolve(...args)\n\t\t\t\t}\n\t\t\t\tthis.promptTimeout = setTimeout(() => {\n\t\t\t\t\tthis.reset()\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tassert.fail(`Timed out waiting for input: ${definition.label}`)\n\t\t\t\t\t} catch (err: any) {\n\t\t\t\t\t\treject(err)\n\t\t\t\t\t}\n\t\t\t\t}, 10000)\n\t\t\t\tthis.promptDefaultValue = definition.defaultValue\n\t\t\t}\n\t\t)\n\t}\n\n\tpublic startLoading(message?: string | undefined): void {\n\t\tthis.trackInvocation('startLoading', message)\n\t\tthis.optionallyRenderLine(message ? `${message}` : 'Start loading...')\n\t}\n\n\tpublic stopLoading(): void {\n\t\tthis.trackInvocation('stopLoading')\n\t\tthis.optionallyRenderLine('Stop loading...')\n\t}\n\n\tpublic async waitForEnter(message?: string | undefined): Promise<void> {\n\t\tthis.trackInvocation('waitForEnter', message)\n\t\tthis.optionallyRenderLine(\n\t\t\t`${message ? ` ${message}\\n\\n` : ``}Waiting for enter...`\n\t\t)\n\n\t\treturn new Promise((resolve) => {\n\t\t\tthis.waitForEnterResolver = resolve\n\t\t})\n\t}\n\n\tpublic async waitForInput() {\n\t\tconst ttl = 1000 * 60 * 5\n\t\tconst checkInterval = 100\n\t\tlet loops = ttl / checkInterval\n\t\tlet lastWriteCount = this.invocations.length\n\n\t\twhile (!this.isWaitingForInput()) {\n\t\t\tif (loops-- === 0) {\n\t\t\t\tassert.fail(`Waiting for input timed out.`)\n\t\t\t}\n\n\t\t\tconst hasWritten = lastWriteCount != this.invocations.length\n\n\t\t\tif (hasWritten) {\n\t\t\t\tloops = ttl / checkInterval\n\t\t\t\tlastWriteCount = this.invocations.length\n\t\t\t\tif (this.shouldRenderTestLogs()) {\n\t\t\t\t\ttestUtil.log('waitForInput timeout reset because of new output.')\n\t\t\t\t}\n\t\t\t}\n\t\t\tawait new Promise((resolve) => setTimeout(resolve, checkInterval))\n\t\t}\n\t}\n\n\tpublic confirm(question: string): Promise<boolean> {\n\t\tthis.trackInvocation('confirm', question)\n\t\tthis.optionallyRenderLine(`${question} :: Y/N...`)\n\n\t\treturn new Promise((resolve) => {\n\t\t\tthis.confirmResolver = resolve\n\t\t})\n\t}\n\n\tpublic clear(): void {\n\t\tthis.trackInvocation('clear')\n\t}\n\n\tpublic renderProgressBar(options: ProgressBarOptions): void {\n\t\tthis.trackInvocation('renderProgressBar', options)\n\t\tthis.optionallyRenderLine(\n\t\t\t`Showing progress${options.title ? ` ${options.title}` : ``}`\n\t\t)\n\t}\n\n\tpublic updateProgressBar(options: ProgressBarUpdateOptions): void {\n\t\tthis.trackInvocation('updateProgressBar', options)\n\t}\n\n\tpublic removeProgressBar(): void {\n\t\tthis.trackInvocation('removeProgressBar')\n\t\tthis.optionallyRenderLine(`Hiding progress`)\n\t}\n\n\tpublic async getCursorPosition(): Promise<{ x: number; y: number } | null> {\n\t\tthis.trackInvocation('getCursorPosition')\n\t\treturn this.cursorPosition\n\t}\n\n\tpublic setCursorPosition(pos: { x: number; y: number }) {\n\t\tthis.cursorPosition = pos\n\t}\n\n\tpublic moveCursorTo(x: number, y: number): void {\n\t\tthis.trackInvocation('moveCursorTo', { x, y })\n\t}\n\n\tpublic clearBelowCursor(): void {\n\t\tthis.trackInvocation('clearBelowCursor')\n\t}\n}\n"],"file":"SpyInterface.js"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { SettingsService } from '@sprucelabs/spruce-skill-utils';
|
|
2
|
+
interface Dependency {
|
|
3
|
+
id: string;
|
|
4
|
+
namespace: string;
|
|
5
|
+
}
|
|
6
|
+
export default class DependencyService {
|
|
7
|
+
private settings;
|
|
8
|
+
constructor(settings: SettingsService);
|
|
9
|
+
set(dependencies: Dependency[]): void;
|
|
10
|
+
add(dependency: Dependency): void;
|
|
11
|
+
get(): Dependency[];
|
|
12
|
+
}
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports["default"] = void 0;
|
|
9
|
+
|
|
10
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
+
|
|
12
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
+
|
|
14
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
15
|
+
|
|
16
|
+
var DependencyService = /*#__PURE__*/function () {
|
|
17
|
+
function DependencyService(settings) {
|
|
18
|
+
(0, _classCallCheck2["default"])(this, DependencyService);
|
|
19
|
+
(0, _defineProperty2["default"])(this, "settings", void 0);
|
|
20
|
+
this.settings = settings;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
(0, _createClass2["default"])(DependencyService, [{
|
|
24
|
+
key: "set",
|
|
25
|
+
value: function set(dependencies) {
|
|
26
|
+
this.settings.set('dependencies', dependencies);
|
|
27
|
+
}
|
|
28
|
+
}, {
|
|
29
|
+
key: "add",
|
|
30
|
+
value: function add(dependency) {
|
|
31
|
+
var _this$settings$get;
|
|
32
|
+
|
|
33
|
+
var dependencies = (_this$settings$get = this.settings.get('dependencies')) !== null && _this$settings$get !== void 0 ? _this$settings$get : [];
|
|
34
|
+
dependencies.push(dependency);
|
|
35
|
+
this.settings.set('dependencies', dependencies);
|
|
36
|
+
}
|
|
37
|
+
}, {
|
|
38
|
+
key: "get",
|
|
39
|
+
value: function get() {
|
|
40
|
+
var _this$settings$get2;
|
|
41
|
+
|
|
42
|
+
return (_this$settings$get2 = this.settings.get('dependencies')) !== null && _this$settings$get2 !== void 0 ? _this$settings$get2 : [];
|
|
43
|
+
}
|
|
44
|
+
}]);
|
|
45
|
+
return DependencyService;
|
|
46
|
+
}();
|
|
47
|
+
|
|
48
|
+
exports["default"] = DependencyService;
|
|
49
|
+
//# sourceMappingURL=DependencyService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/services/DependencyService.ts"],"names":["DependencyService","settings","dependencies","set","dependency","get","push"],"mappings":";;;;;;;;;;;;;;;IAOqBA,iB;AAEpB,6BAAmBC,QAAnB,EAA8C;AAAA;AAAA;AAC7C,SAAKA,QAAL,GAAgBA,QAAhB;AACA;;;;WAED,aAAWC,YAAX,EAAuC;AACtC,WAAKD,QAAL,CAAcE,GAAd,CAAkB,cAAlB,EAAkCD,YAAlC;AACA;;;WAED,aAAWE,UAAX,EAAmC;AAAA;;AAClC,UAAMF,YAAY,yBAAG,KAAKD,QAAL,CAAcI,GAAd,CAAkB,cAAlB,CAAH,mEAAwC,EAA1D;AACAH,MAAAA,YAAY,CAACI,IAAb,CAAkBF,UAAlB;AACA,WAAKH,QAAL,CAAcE,GAAd,CAAkB,cAAlB,EAAkCD,YAAlC;AACA;;;WAED,eAA2B;AAAA;;AAC1B,oCAAO,KAAKD,QAAL,CAAcI,GAAd,CAAkB,cAAlB,CAAP,qEAA4C,EAA5C;AACA","sourcesContent":["import { SettingsService } from '@sprucelabs/spruce-skill-utils'\n\ninterface Dependency {\n\tid: string\n\tnamespace: string\n}\n\nexport default class DependencyService {\n\tprivate settings: SettingsService<string>\n\tpublic constructor(settings: SettingsService) {\n\t\tthis.settings = settings\n\t}\n\n\tpublic set(dependencies: Dependency[]) {\n\t\tthis.settings.set('dependencies', dependencies)\n\t}\n\n\tpublic add(dependency: Dependency) {\n\t\tconst dependencies = this.settings.get('dependencies') ?? []\n\t\tdependencies.push(dependency)\n\t\tthis.settings.set('dependencies', dependencies)\n\t}\n\n\tpublic get(): Dependency[] {\n\t\treturn this.settings.get('dependencies') ?? []\n\t}\n}\n"],"file":"DependencyService.js"}
|