@sprucelabs/spruce-cli 14.29.26 → 14.29.30
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 +32 -0
- package/build/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.js +3 -3
- package/build/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.js.map +1 -1
- package/build/__tests__/implementation/PkgService.test.js +2 -2
- package/build/__tests__/implementation/PkgService.test.js.map +1 -1
- package/build/cli.d.ts +1 -0
- package/build/cli.js +132 -105
- package/build/cli.js.map +1 -1
- package/package.json +27 -27
- package/src/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.ts +3 -3
- package/src/__tests__/implementation/PkgService.test.ts +2 -2
- package/src/cli.ts +5 -0
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,38 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [14.29.30](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v14.29.29...v14.29.30) (2022-01-12)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @sprucelabs/spruce-cli
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## [14.29.29](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v14.29.28...v14.29.29) (2022-01-12)
|
|
15
|
+
|
|
16
|
+
**Note:** Version bump only for package @sprucelabs/spruce-cli
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
## [14.29.28](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v14.29.27...v14.29.28) (2022-01-10)
|
|
23
|
+
|
|
24
|
+
**Note:** Version bump only for package @sprucelabs/spruce-cli
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
## [14.29.27](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v14.29.26...v14.29.27) (2022-01-08)
|
|
31
|
+
|
|
32
|
+
**Note:** Version bump only for package @sprucelabs/spruce-cli
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
6
38
|
## [14.29.26](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v14.29.25...v14.29.26) (2022-01-06)
|
|
7
39
|
|
|
8
40
|
**Note:** Version bump only for package @sprucelabs/spruce-cli
|
|
@@ -55,7 +55,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re
|
|
|
55
55
|
|
|
56
56
|
var LOCAL_NAMESPACE = 'TestingSchemas';
|
|
57
57
|
var REMOTE_NAMESPACE = 'RemoteSchemas';
|
|
58
|
-
var REMOTE_MODULE = '@sprucelabs/
|
|
58
|
+
var REMOTE_MODULE = '@sprucelabs/calendar-utils';
|
|
59
59
|
var REMOTE_MODULE2 = '@sprucelabs/spruce-templates';
|
|
60
60
|
var SettingUpSchemasForModuleDistributionTest = (_dec = (0, _test.test)('can specify importFromModuleWhenRemote 1', 'CalendarEvent', REMOTE_MODULE, '1'), _dec2 = (0, _test.test)('can specify importFromModuleWhenRemote 2', 'CalendarEvent2', REMOTE_MODULE2, '2'), _dec3 = (0, _test.test)(), _dec4 = (0, _test.test)(), _dec5 = (0, _test.test)('should ask about missing module and cancel install', ['schema1'], [REMOTE_MODULE], false), _dec6 = (0, _test.test)('should ask about missing module and do install', ['schema1'], [REMOTE_MODULE], true), _dec7 = (0, _test.test)('should ask about missing module and do install', ['schema1', 'schema2'], [REMOTE_MODULE, REMOTE_MODULE2], true), _dec8 = (0, _test.test)('does not return the same module twice', ['schema1', 'schema1b', 'schema2'], [REMOTE_MODULE, REMOTE_MODULE2], true), _dec9 = (0, _test.test)('schemas are imported from one module', ['schema1']), _dec10 = (0, _test.test)('schemas are imported from two modules', ['schema1', 'schema2']), _dec11 = (0, _test.test)('can reference impored from another module', ["import * as HeartwoodTypesLocal from '@sprucelabs/heartwood-view-controllers'"]), _dec12 = (0, _test.test)('can reference impored from another module with two importsWhenLocal', ["import * as HeartwoodTypesLocal from '@sprucelabs/heartwood-view-controllers'", "import * as HeartwoodTypesLocal2 from '@sprucelabs/heartwood-view-controllers'"]), _dec13 = (0, _test.test)(), _dec14 = (0, _test.test)(), _dec15 = (0, _test.test)(), (_class = (_temp = _class2 = /*#__PURE__*/function (_AbstractSkillTest) {
|
|
61
61
|
(0, _inherits2["default"])(SettingUpSchemasForModuleDistributionTest, _AbstractSkillTest);
|
|
@@ -797,7 +797,7 @@ var SettingUpSchemasForModuleDistributionTest = (_dec = (0, _test.test)('can spe
|
|
|
797
797
|
imported = _test2["default"].assertFileByNameInGeneratedFiles('calendarEvent.schema.ts', results.files);
|
|
798
798
|
calendarEventContents = _spruceSkillUtils.diskUtil.readFile(imported);
|
|
799
799
|
|
|
800
|
-
_test.assert.isEqual(calendarEventContents.trim(), "export { calendarEventSchema as default } from '@sprucelabs/
|
|
800
|
+
_test.assert.isEqual(calendarEventContents.trim(), "export { calendarEventSchema as default } from '@sprucelabs/calendar-utils'");
|
|
801
801
|
|
|
802
802
|
case 4:
|
|
803
803
|
case "end":
|
|
@@ -874,7 +874,7 @@ var SettingUpSchemasForModuleDistributionTest = (_dec = (0, _test.test)('can spe
|
|
|
874
874
|
version: 'v2021_09_20',
|
|
875
875
|
namespace: 'TestingSchemas',
|
|
876
876
|
name: 'Schema imported as module',
|
|
877
|
-
moduleToImportFromWhenRemote: '@sprucelabs/
|
|
877
|
+
moduleToImportFromWhenRemote: '@sprucelabs/calendar-utils',
|
|
878
878
|
fields: {
|
|
879
879
|
fieldName1: {
|
|
880
880
|
label: 'First Field',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.ts"],"names":["LOCAL_NAMESPACE","REMOTE_NAMESPACE","REMOTE_MODULE","REMOTE_MODULE2","SettingUpSchemasForModuleDistributionTest","namePascal","remoteModule","count","nameCamel","namesUtil","toCamel","promise","Action","execute","nameReadable","moduleToImportFromWhenRemote","wait","ui","isWaitingForInput","sendInput","versionUtil","generateVersion","constValue","results","assert","isFalsy","errors","builderFile","testUtil","assertFileByNameInGeneratedFiles","files","Service","importDefault","builder","isEqual","schemaFile","schema","id","templateItems","generateTemplateItems","templateItem","importFrom","isFalse","schemaNames","expectedModules","shouldConfirmInstall","reInstallSkill","Store","setCurrentSkillsNamespace","schemas","map","name","getEmitter","on","SyncAction","waitForInput","secondToLast","invocations","length","options","headline","expected","doesInclude","lines","pkg","isTrue","isInstalled","isTruthy","errorAssertUtil","assertError","push","shouldInstallMissingDependencies","assertCalendarEventSchemaIsImported","doesThrow","importsWhenRemote","mySchema","fields","calendarEvent","type","schema1","namespace","version","localSchemaFile","localSchema","isEqualDeep","assertValidTypesFileWhenAddingRemoteImport","importGeneratedFile","completedFormBuilder","isRequired","personId","values","isArray","valueType","builderForm","dateDeleted","schemaId","itemBuilder","SchemaTemplateItemBuilder","buildTemplateItems","TestSkill","find","r","schemaIds","dirValue","schema2","schemaTypesFile","check","optionOverrides","fileName","imported","calendarEventContents","diskUtil","readFile","trim","builder1","nestedSchema","firstName","resolveHashSprucePath","typesContent","writeFile","AbstractSkillTest","fieldName1","label","fieldName2","hint"],"mappings":"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","sourcesContent":["import { Schema, SchemaTemplateItem } from '@sprucelabs/schema'\nimport {\n\tdiskUtil,\n\tnamesUtil,\n\tversionUtil,\n} from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { errorAssertUtil } from '@sprucelabs/test-utils'\nimport { FeatureActionResponse } from '../../features/features.types'\nimport SchemaTemplateItemBuilder from '../../templateItemBuilders/SchemaTemplateItemBuilder'\nimport AbstractSkillTest from '../../tests/AbstractSkillTest'\nimport testUtil from '../../tests/utilities/test.utility'\n\nconst LOCAL_NAMESPACE = 'TestingSchemas'\nconst REMOTE_NAMESPACE = 'RemoteSchemas'\n\nconst REMOTE_MODULE = '@sprucelabs/spruce-calendar-utils'\nconst REMOTE_MODULE2 = '@sprucelabs/spruce-templates'\n\nexport default class SettingUpSchemasForModuleDistributionTest extends AbstractSkillTest {\n\tprotected static skillCacheKey = 'schemas'\n\tprivate static builder1: Schema\n\tprivate static schema1: Schema = {\n\t\tid: 'calendarEvent',\n\t\tversion: 'v2021_09_20',\n\t\tnamespace: 'TestingSchemas',\n\t\tname: 'Schema imported as module',\n\t\tmoduleToImportFromWhenRemote: '@sprucelabs/spruce-calendar-utils',\n\t\tfields: {\n\t\t\tfieldName1: { label: 'First Field', type: 'text', isRequired: true },\n\t\t\tfieldName2: {\n\t\t\t\tlabel: 'Second Field',\n\t\t\t\ttype: 'number',\n\t\t\t\tisRequired: true,\n\t\t\t\thint: 'A hint',\n\t\t\t},\n\t\t},\n\t}\n\t//@ts-ignore\n\tprivate static schema1b: Schema\n\tprivate static schema2: Schema = {\n\t\tid: 'calendarEvent2',\n\t\tversion: 'v2021_09_20',\n\t\tnamespace: 'TestingSchemas',\n\t\tname: 'Schema imported as module',\n\t\tmoduleToImportFromWhenRemote: '@sprucelabs/spruce-templates',\n\t\tfields: {\n\t\t\tfieldName1: { label: 'First Field', type: 'text', isRequired: true },\n\t\t\tfieldName2: {\n\t\t\t\tlabel: 'Second Field',\n\t\t\t\ttype: 'number',\n\t\t\t\tisRequired: true,\n\t\t\t\thint: 'A hint',\n\t\t\t},\n\t\t},\n\t}\n\n\t@test(\n\t\t'can specify importFromModuleWhenRemote 1',\n\t\t'CalendarEvent',\n\t\tREMOTE_MODULE,\n\t\t'1'\n\t)\n\t@test(\n\t\t'can specify importFromModuleWhenRemote 2',\n\t\t'CalendarEvent2',\n\t\tREMOTE_MODULE2,\n\t\t'2'\n\t)\n\tprotected static async canSpecifyModuleToImportFromWhenRemote(\n\t\tnamePascal: string,\n\t\tremoteModule: string,\n\t\tcount: '1' | '2'\n\t) {\n\t\tconst nameCamel = namesUtil.toCamel(namePascal)\n\t\tconst promise = this.Action('schema', 'create').execute({\n\t\t\tnameReadable: 'Schema imported as module',\n\t\t\tnamePascal,\n\t\t\tnameCamel,\n\t\t\tmoduleToImportFromWhenRemote: remoteModule,\n\t\t})\n\n\t\tawait this.wait(10)\n\n\t\tif (this.ui.isWaitingForInput()) {\n\t\t\tawait this.ui.sendInput(versionUtil.generateVersion().constValue)\n\t\t}\n\n\t\tconst results = await promise\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst builderFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`${nameCamel}.builder.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tconst builder = await this.Service('import').importDefault(builderFile)\n\t\tassert.isEqual(builder.moduleToImportFromWhenRemote, remoteModule)\n\n\t\t//@ts-ignore\n\t\tthis[`builder${count}`] = builder\n\n\t\tconst schemaFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`${nameCamel}.schema.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tconst schema = await this.Service('import').importDefault(schemaFile)\n\t\tassert.isEqual(schema.moduleToImportFromWhenRemote, remoteModule)\n\n\t\t//@ts-ignore\n\t\tthis[`schema${count}`] = schema\n\t\t//@ts-ignore\n\t\tthis[`schema${count}b`] = { ...schema, id: `schema${count}B` }\n\t}\n\n\t@test()\n\tprotected static async templateItemGeneratorHonorsModuleToImportWhenRemoteWhenInRemoteNamespace() {\n\t\tconst templateItems = this.generateTemplateItems(REMOTE_NAMESPACE)\n\n\t\tfor (const templateItem of templateItems) {\n\t\t\tassert.isEqual(\n\t\t\t\ttemplateItem.schema.moduleToImportFromWhenRemote,\n\t\t\t\tREMOTE_MODULE\n\t\t\t)\n\t\t\tassert.isEqual(templateItem.importFrom, REMOTE_MODULE)\n\t\t}\n\t}\n\n\t@test()\n\tprotected static async moduleToImportWhenRemoteIgnoredWhenInSameNamespace() {\n\t\tconst templateItems = this.generateTemplateItems(LOCAL_NAMESPACE)\n\t\tfor (const templateItem of templateItems) {\n\t\t\tassert.isEqual(\n\t\t\t\ttemplateItem.schema.moduleToImportFromWhenRemote,\n\t\t\t\tREMOTE_MODULE\n\t\t\t)\n\t\t\tassert.isFalse('importFrom' in templateItem)\n\t\t}\n\t}\n\n\t@test(\n\t\t'should ask about missing module and cancel install',\n\t\t['schema1'],\n\t\t[REMOTE_MODULE],\n\t\tfalse\n\t)\n\t@test(\n\t\t'should ask about missing module and do install',\n\t\t['schema1'],\n\t\t[REMOTE_MODULE],\n\t\ttrue\n\t)\n\t@test(\n\t\t'should ask about missing module and do install',\n\t\t['schema1', 'schema2'],\n\t\t[REMOTE_MODULE, REMOTE_MODULE2],\n\t\ttrue\n\t)\n\t@test(\n\t\t'does not return the same module twice',\n\t\t['schema1', 'schema1b', 'schema2'],\n\t\t[REMOTE_MODULE, REMOTE_MODULE2],\n\t\ttrue\n\t)\n\tprotected static async asksIfModuleShouldBeInstalled(\n\t\tschemaNames: ('schema1' | 'schema2')[],\n\t\texpectedModules: string[],\n\t\tshouldConfirmInstall: boolean\n\t) {\n\t\tawait this.reInstallSkill()\n\n\t\tawait this.Store('skill').setCurrentSkillsNamespace('TestingTwo')\n\n\t\tconst schemas = schemaNames.map((name) => this[name])\n\n\t\tawait this.getEmitter().on('schema.did-fetch-schemas', async () => {\n\t\t\treturn {\n\t\t\t\tschemas,\n\t\t\t}\n\t\t})\n\n\t\tconst promise = this.SyncAction().execute({})\n\n\t\tawait this.waitForInput()\n\n\t\tconst secondToLast = this.ui.invocations[this.ui.invocations.length - 2]\n\n\t\tassert.isEqual(\n\t\t\tsecondToLast.options.headline,\n\t\t\t`Missing ${expectedModules.length} module${\n\t\t\t\texpectedModules.length === 1 ? '' : 's'\n\t\t\t}`\n\t\t)\n\n\t\tfor (const expected of expectedModules) {\n\t\t\tassert.doesInclude(secondToLast.options.lines, expected)\n\t\t}\n\n\t\tawait this.ui.sendInput(shouldConfirmInstall ? 'y' : 'n')\n\n\t\tconst results = await promise\n\n\t\tif (shouldConfirmInstall) {\n\t\t\tassert.isFalsy(results.errors)\n\t\t\tconst pkg = this.Service('pkg')\n\t\t\tfor (const expected of expectedModules) {\n\t\t\t\tassert.isTrue(pkg.isInstalled(expected))\n\t\t\t}\n\t\t} else {\n\t\t\tassert.isTruthy(results.errors)\n\t\t\terrorAssertUtil.assertError(results.errors[0], 'ACTION_CANCELLED')\n\t\t}\n\t}\n\n\t@test('schemas are imported from one module', ['schema1'])\n\t@test('schemas are imported from two modules', ['schema1', 'schema2'])\n\tprotected static async schemasAreImportedFromModuleWhenSyncedFromDifferentNamespace(\n\t\tschemaNames: ('schema1' | 'schema2')[]\n\t) {\n\t\tawait this.reInstallSkill()\n\t\tawait this.Store('skill').setCurrentSkillsNamespace('TestingTwo')\n\n\t\tconst schemas: Schema[] = []\n\n\t\tfor (const name of schemaNames) {\n\t\t\tschemas.push(this[name])\n\t\t}\n\n\t\tawait this.getEmitter().on('schema.did-fetch-schemas', async () => {\n\t\t\treturn {\n\t\t\t\tschemas,\n\t\t\t}\n\t\t})\n\n\t\tconst results = await this.SyncAction().execute({\n\t\t\tshouldInstallMissingDependencies: true,\n\t\t})\n\n\t\tawait this.assertCalendarEventSchemaIsImported(results)\n\n\t\tassert.doesThrow(() =>\n\t\t\ttestUtil.assertFileByNameInGeneratedFiles(\n\t\t\t\t'schemas.types.ts',\n\t\t\t\tresults.files\n\t\t\t)\n\t\t)\n\t}\n\n\t@test('can reference impored from another module', [\n\t\t`import * as HeartwoodTypesLocal from '@sprucelabs/heartwood-view-controllers'`,\n\t])\n\t@test('can reference impored from another module with two importsWhenLocal', [\n\t\t`import * as HeartwoodTypesLocal from '@sprucelabs/heartwood-view-controllers'`,\n\t\t`import * as HeartwoodTypesLocal2 from '@sprucelabs/heartwood-view-controllers'`,\n\t])\n\tprotected static async canReferenceSchemaImportedFromAnotherModule(\n\t\timportsWhenRemote: string[]\n\t) {\n\t\tawait this.reInstallSkill()\n\t\tawait this.Store('skill').setCurrentSkillsNamespace('TestingTwo')\n\n\t\tconst mySchema = {\n\t\t\tid: 'localSchema',\n\t\t\timportsWhenRemote,\n\t\t\tfields: {\n\t\t\t\tcalendarEvent: {\n\t\t\t\t\ttype: 'schema',\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tschema: {\n\t\t\t\t\t\t\t...this.schema1,\n\t\t\t\t\t\t\tnamespace: 'CalendarUtils',\n\t\t\t\t\t\t\tversion: 'v2021_05_19',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\n\t\tawait this.getEmitter().on('schema.did-fetch-schemas', async () => {\n\t\t\treturn {\n\t\t\t\tschemas: [mySchema],\n\t\t\t}\n\t\t})\n\n\t\tconst results = await this.SyncAction().execute({\n\t\t\tshouldInstallMissingDependencies: true,\n\t\t})\n\n\t\tconst localSchemaFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'localSchema.schema.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst localSchema = await this.Service('import').importDefault(\n\t\t\tlocalSchemaFile\n\t\t)\n\n\t\tassert.isEqualDeep(localSchema.importsWhenRemote, importsWhenRemote)\n\n\t\tawait this.assertCalendarEventSchemaIsImported(results)\n\t\tawait this.assertValidTypesFileWhenAddingRemoteImport(results)\n\t}\n\n\t@test()\n\tprotected static async canSetImportFromModuleWithNestedSchemasWhenRemoteWhenSyncing() {\n\t\tawait this.reInstallSkill()\n\n\t\tawait this.Action('schema', 'create').execute({\n\t\t\tnameReadable: 'Schema imported as module',\n\t\t\tnamePascal: 'CalandarEvent',\n\t\t\tnameCamel: 'calendarEvent',\n\t\t})\n\n\t\tconst results = await this.SyncAction().execute({\n\t\t\tmoduleToImportFromWhenRemote: REMOTE_MODULE,\n\t\t})\n\n\t\tthis.schema1 = (await this.importGeneratedFile(\n\t\t\tresults,\n\t\t\t`calendarEvent.schema.ts`\n\t\t)) as Schema\n\n\t\tassert.isEqual(this.schema1.moduleToImportFromWhenRemote, REMOTE_MODULE)\n\t}\n\n\t@test()\n\tprotected static async canHandleFormBuilderImportExportObject() {\n\t\tconst version = versionUtil.generateVersion().constValue\n\n\t\tconst completedFormBuilder = {\n\t\t\tid: 'fullCompletedForm',\n\t\t\tversion,\n\t\t\tmoduleToImportFromWhenRemote: '@sprucelabs/heartwood-view-controllers',\n\t\t\tfields: {\n\t\t\t\tid: {\n\t\t\t\t\ttype: 'id',\n\t\t\t\t\tisRequired: true,\n\t\t\t\t},\n\t\t\t\tpersonId: {\n\t\t\t\t\ttype: 'id',\n\t\t\t\t\tisRequired: true,\n\t\t\t\t},\n\t\t\t\tvalues: {\n\t\t\t\t\ttype: 'raw',\n\t\t\t\t\tisArray: true,\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tvalueType: 'Record<string, any>',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\n\t\tconst builderForm = {\n\t\t\tid: 'builtForm',\n\t\t\tversion,\n\t\t\tmoduleToImportFromWhenRemote: '@sprucelabs/heartwood-view-controllers',\n\t\t\tfields: {\n\t\t\t\tid: {\n\t\t\t\t\ttype: 'id',\n\t\t\t\t\tisRequired: true,\n\t\t\t\t},\n\t\t\t\tdateDeleted: {\n\t\t\t\t\ttype: 'number',\n\t\t\t\t},\n\t\t\t\tcompletedFormBuilder: {\n\t\t\t\t\ttype: 'schema',\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tschemaId: {\n\t\t\t\t\t\t\tversion,\n\t\t\t\t\t\t\tid: 'fullCompletedForm',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\n\t\tconst itemBuilder = new SchemaTemplateItemBuilder('TestSkill')\n\n\t\tconst results = itemBuilder.buildTemplateItems({\n\t\t\t//@ts-ignore\n\t\t\tTestSkill: [completedFormBuilder, builderForm],\n\t\t})\n\n\t\tassert.isFalsy(\n\t\t\t(\n\t\t\t\tresults.find((r) => r.id === 'builtForm')?.schema.fields\n\t\t\t\t\t?.completedFormBuilder?.options as any\n\t\t\t)?.schemaIds?.[0]?.moduleToImportFromWhenRemote\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async importedSchemasDoNotShowUpInSchemaTypes() {\n\t\t// await this.reInstallSkill()\n\t\tawait this.Store('skill').setCurrentSkillsNamespace('TestingTwo')\n\n\t\tconst schema1 = {\n\t\t\tid: 'fullCompletedForm',\n\t\t\tnamespace: 'Heartwood',\n\t\t\tversion: versionUtil.generateVersion().dirValue,\n\t\t\tmoduleToImportFromWhenRemote: '@sprucelabs/heartwood-view-controllers',\n\t\t\timportsWhenRemote: ['import * from bananarama'],\n\t\t\tfields: {\n\t\t\t\tid: {\n\t\t\t\t\ttype: 'id',\n\t\t\t\t\tisRequired: true,\n\t\t\t\t},\n\t\t\t\tpersonId: {\n\t\t\t\t\ttype: 'id',\n\t\t\t\t\tisRequired: true,\n\t\t\t\t},\n\t\t\t\tvalues: {\n\t\t\t\t\ttype: 'raw',\n\t\t\t\t\tisArray: true,\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tvalueType: 'Record<string, any>',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\n\t\tconst schema2 = {\n\t\t\tid: 'localCompleted',\n\t\t\tversion: versionUtil.generateVersion().dirValue,\n\t\t\tfields: {\n\t\t\t\tid: {\n\t\t\t\t\ttype: 'id',\n\t\t\t\t\tisRequired: true,\n\t\t\t\t},\n\t\t\t\tpersonId: {\n\t\t\t\t\ttype: 'id',\n\t\t\t\t\tisRequired: true,\n\t\t\t\t},\n\t\t\t\tvalues: {\n\t\t\t\t\ttype: 'raw',\n\t\t\t\t\tisArray: true,\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tvalueType: 'Record<string, any>',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\n\t\tawait this.getEmitter().on('schema.did-fetch-schemas', async () => {\n\t\t\treturn {\n\t\t\t\tschemas: [schema1, schema2],\n\t\t\t}\n\t\t})\n\n\t\tconst results = await this.SyncAction().execute({\n\t\t\tshouldInstallMissingDependencies: true,\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst schemaTypesFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'schemas.types.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(schemaTypesFile)\n\t}\n\n\tprivate static SyncAction() {\n\t\treturn this.Action('schema', 'sync', {\n\t\t\toptionOverrides: {\n\t\t\t\t'sync.schemas': {},\n\t\t\t},\n\t\t})\n\t}\n\n\tprivate static async importGeneratedFile(\n\t\tresults: FeatureActionResponse,\n\t\tfileName: string\n\t) {\n\t\tconst schemaFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\tfileName,\n\t\t\tresults.files\n\t\t)\n\n\t\treturn await this.Service('import').importDefault(schemaFile)\n\t}\n\n\tprivate static async assertCalendarEventSchemaIsImported(\n\t\tresults: FeatureActionResponse\n\t) {\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst imported = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'calendarEvent.schema.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst calendarEventContents = diskUtil.readFile(imported)\n\n\t\tassert.isEqual(\n\t\t\tcalendarEventContents.trim(),\n\t\t\t`export { calendarEventSchema as default } from '@sprucelabs/spruce-calendar-utils'`\n\t\t)\n\t}\n\n\tprivate static generateTemplateItems(namespace: string) {\n\t\tconst itemBuilder = new SchemaTemplateItemBuilder(namespace)\n\t\tconst templateItems = itemBuilder.buildTemplateItems(\n\t\t\t{\n\t\t\t\t[LOCAL_NAMESPACE]: [\n\t\t\t\t\t{\n\t\t\t\t\t\t...this.builder1,\n\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t...this.builder1.fields,\n\t\t\t\t\t\t\tnestedSchema: {\n\t\t\t\t\t\t\t\ttype: 'schema',\n\t\t\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\t\t\tschema: {\n\t\t\t\t\t\t\t\t\t\tid: 'nested',\n\t\t\t\t\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t\t\t\t\tfirstName: {\n\t\t\t\t\t\t\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\tthis.resolveHashSprucePath('schemas')\n\t\t)\n\t\treturn templateItems as SchemaTemplateItem[]\n\t}\n\n\tprivate static async assertValidTypesFileWhenAddingRemoteImport(\n\t\tresults: FeatureActionResponse\n\t) {\n\t\tconst schemaTypesFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'schemas.types.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst typesContent = `import '${REMOTE_MODULE}'\\n\\n${diskUtil.readFile(\n\t\t\tschemaTypesFile\n\t\t)}`\n\t\tdiskUtil.writeFile(schemaTypesFile, typesContent)\n\n\t\tawait this.Service('typeChecker').check(schemaTypesFile)\n\t}\n}\n"],"file":"SettingUpSchemasForModuleDistribution.test.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.ts"],"names":["LOCAL_NAMESPACE","REMOTE_NAMESPACE","REMOTE_MODULE","REMOTE_MODULE2","SettingUpSchemasForModuleDistributionTest","namePascal","remoteModule","count","nameCamel","namesUtil","toCamel","promise","Action","execute","nameReadable","moduleToImportFromWhenRemote","wait","ui","isWaitingForInput","sendInput","versionUtil","generateVersion","constValue","results","assert","isFalsy","errors","builderFile","testUtil","assertFileByNameInGeneratedFiles","files","Service","importDefault","builder","isEqual","schemaFile","schema","id","templateItems","generateTemplateItems","templateItem","importFrom","isFalse","schemaNames","expectedModules","shouldConfirmInstall","reInstallSkill","Store","setCurrentSkillsNamespace","schemas","map","name","getEmitter","on","SyncAction","waitForInput","secondToLast","invocations","length","options","headline","expected","doesInclude","lines","pkg","isTrue","isInstalled","isTruthy","errorAssertUtil","assertError","push","shouldInstallMissingDependencies","assertCalendarEventSchemaIsImported","doesThrow","importsWhenRemote","mySchema","fields","calendarEvent","type","schema1","namespace","version","localSchemaFile","localSchema","isEqualDeep","assertValidTypesFileWhenAddingRemoteImport","importGeneratedFile","completedFormBuilder","isRequired","personId","values","isArray","valueType","builderForm","dateDeleted","schemaId","itemBuilder","SchemaTemplateItemBuilder","buildTemplateItems","TestSkill","find","r","schemaIds","dirValue","schema2","schemaTypesFile","check","optionOverrides","fileName","imported","calendarEventContents","diskUtil","readFile","trim","builder1","nestedSchema","firstName","resolveHashSprucePath","typesContent","writeFile","AbstractSkillTest","fieldName1","label","fieldName2","hint"],"mappings":"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","sourcesContent":["import { Schema, SchemaTemplateItem } from '@sprucelabs/schema'\nimport {\n\tdiskUtil,\n\tnamesUtil,\n\tversionUtil,\n} from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { errorAssertUtil } from '@sprucelabs/test-utils'\nimport { FeatureActionResponse } from '../../features/features.types'\nimport SchemaTemplateItemBuilder from '../../templateItemBuilders/SchemaTemplateItemBuilder'\nimport AbstractSkillTest from '../../tests/AbstractSkillTest'\nimport testUtil from '../../tests/utilities/test.utility'\n\nconst LOCAL_NAMESPACE = 'TestingSchemas'\nconst REMOTE_NAMESPACE = 'RemoteSchemas'\n\nconst REMOTE_MODULE = '@sprucelabs/calendar-utils'\nconst REMOTE_MODULE2 = '@sprucelabs/spruce-templates'\n\nexport default class SettingUpSchemasForModuleDistributionTest extends AbstractSkillTest {\n\tprotected static skillCacheKey = 'schemas'\n\tprivate static builder1: Schema\n\tprivate static schema1: Schema = {\n\t\tid: 'calendarEvent',\n\t\tversion: 'v2021_09_20',\n\t\tnamespace: 'TestingSchemas',\n\t\tname: 'Schema imported as module',\n\t\tmoduleToImportFromWhenRemote: '@sprucelabs/calendar-utils',\n\t\tfields: {\n\t\t\tfieldName1: { label: 'First Field', type: 'text', isRequired: true },\n\t\t\tfieldName2: {\n\t\t\t\tlabel: 'Second Field',\n\t\t\t\ttype: 'number',\n\t\t\t\tisRequired: true,\n\t\t\t\thint: 'A hint',\n\t\t\t},\n\t\t},\n\t}\n\t//@ts-ignore\n\tprivate static schema1b: Schema\n\tprivate static schema2: Schema = {\n\t\tid: 'calendarEvent2',\n\t\tversion: 'v2021_09_20',\n\t\tnamespace: 'TestingSchemas',\n\t\tname: 'Schema imported as module',\n\t\tmoduleToImportFromWhenRemote: '@sprucelabs/spruce-templates',\n\t\tfields: {\n\t\t\tfieldName1: { label: 'First Field', type: 'text', isRequired: true },\n\t\t\tfieldName2: {\n\t\t\t\tlabel: 'Second Field',\n\t\t\t\ttype: 'number',\n\t\t\t\tisRequired: true,\n\t\t\t\thint: 'A hint',\n\t\t\t},\n\t\t},\n\t}\n\n\t@test(\n\t\t'can specify importFromModuleWhenRemote 1',\n\t\t'CalendarEvent',\n\t\tREMOTE_MODULE,\n\t\t'1'\n\t)\n\t@test(\n\t\t'can specify importFromModuleWhenRemote 2',\n\t\t'CalendarEvent2',\n\t\tREMOTE_MODULE2,\n\t\t'2'\n\t)\n\tprotected static async canSpecifyModuleToImportFromWhenRemote(\n\t\tnamePascal: string,\n\t\tremoteModule: string,\n\t\tcount: '1' | '2'\n\t) {\n\t\tconst nameCamel = namesUtil.toCamel(namePascal)\n\t\tconst promise = this.Action('schema', 'create').execute({\n\t\t\tnameReadable: 'Schema imported as module',\n\t\t\tnamePascal,\n\t\t\tnameCamel,\n\t\t\tmoduleToImportFromWhenRemote: remoteModule,\n\t\t})\n\n\t\tawait this.wait(10)\n\n\t\tif (this.ui.isWaitingForInput()) {\n\t\t\tawait this.ui.sendInput(versionUtil.generateVersion().constValue)\n\t\t}\n\n\t\tconst results = await promise\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst builderFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`${nameCamel}.builder.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tconst builder = await this.Service('import').importDefault(builderFile)\n\t\tassert.isEqual(builder.moduleToImportFromWhenRemote, remoteModule)\n\n\t\t//@ts-ignore\n\t\tthis[`builder${count}`] = builder\n\n\t\tconst schemaFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`${nameCamel}.schema.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tconst schema = await this.Service('import').importDefault(schemaFile)\n\t\tassert.isEqual(schema.moduleToImportFromWhenRemote, remoteModule)\n\n\t\t//@ts-ignore\n\t\tthis[`schema${count}`] = schema\n\t\t//@ts-ignore\n\t\tthis[`schema${count}b`] = { ...schema, id: `schema${count}B` }\n\t}\n\n\t@test()\n\tprotected static async templateItemGeneratorHonorsModuleToImportWhenRemoteWhenInRemoteNamespace() {\n\t\tconst templateItems = this.generateTemplateItems(REMOTE_NAMESPACE)\n\n\t\tfor (const templateItem of templateItems) {\n\t\t\tassert.isEqual(\n\t\t\t\ttemplateItem.schema.moduleToImportFromWhenRemote,\n\t\t\t\tREMOTE_MODULE\n\t\t\t)\n\t\t\tassert.isEqual(templateItem.importFrom, REMOTE_MODULE)\n\t\t}\n\t}\n\n\t@test()\n\tprotected static async moduleToImportWhenRemoteIgnoredWhenInSameNamespace() {\n\t\tconst templateItems = this.generateTemplateItems(LOCAL_NAMESPACE)\n\t\tfor (const templateItem of templateItems) {\n\t\t\tassert.isEqual(\n\t\t\t\ttemplateItem.schema.moduleToImportFromWhenRemote,\n\t\t\t\tREMOTE_MODULE\n\t\t\t)\n\t\t\tassert.isFalse('importFrom' in templateItem)\n\t\t}\n\t}\n\n\t@test(\n\t\t'should ask about missing module and cancel install',\n\t\t['schema1'],\n\t\t[REMOTE_MODULE],\n\t\tfalse\n\t)\n\t@test(\n\t\t'should ask about missing module and do install',\n\t\t['schema1'],\n\t\t[REMOTE_MODULE],\n\t\ttrue\n\t)\n\t@test(\n\t\t'should ask about missing module and do install',\n\t\t['schema1', 'schema2'],\n\t\t[REMOTE_MODULE, REMOTE_MODULE2],\n\t\ttrue\n\t)\n\t@test(\n\t\t'does not return the same module twice',\n\t\t['schema1', 'schema1b', 'schema2'],\n\t\t[REMOTE_MODULE, REMOTE_MODULE2],\n\t\ttrue\n\t)\n\tprotected static async asksIfModuleShouldBeInstalled(\n\t\tschemaNames: ('schema1' | 'schema2')[],\n\t\texpectedModules: string[],\n\t\tshouldConfirmInstall: boolean\n\t) {\n\t\tawait this.reInstallSkill()\n\n\t\tawait this.Store('skill').setCurrentSkillsNamespace('TestingTwo')\n\n\t\tconst schemas = schemaNames.map((name) => this[name])\n\n\t\tawait this.getEmitter().on('schema.did-fetch-schemas', async () => {\n\t\t\treturn {\n\t\t\t\tschemas,\n\t\t\t}\n\t\t})\n\n\t\tconst promise = this.SyncAction().execute({})\n\n\t\tawait this.waitForInput()\n\n\t\tconst secondToLast = this.ui.invocations[this.ui.invocations.length - 2]\n\n\t\tassert.isEqual(\n\t\t\tsecondToLast.options.headline,\n\t\t\t`Missing ${expectedModules.length} module${\n\t\t\t\texpectedModules.length === 1 ? '' : 's'\n\t\t\t}`\n\t\t)\n\n\t\tfor (const expected of expectedModules) {\n\t\t\tassert.doesInclude(secondToLast.options.lines, expected)\n\t\t}\n\n\t\tawait this.ui.sendInput(shouldConfirmInstall ? 'y' : 'n')\n\n\t\tconst results = await promise\n\n\t\tif (shouldConfirmInstall) {\n\t\t\tassert.isFalsy(results.errors)\n\t\t\tconst pkg = this.Service('pkg')\n\t\t\tfor (const expected of expectedModules) {\n\t\t\t\tassert.isTrue(pkg.isInstalled(expected))\n\t\t\t}\n\t\t} else {\n\t\t\tassert.isTruthy(results.errors)\n\t\t\terrorAssertUtil.assertError(results.errors[0], 'ACTION_CANCELLED')\n\t\t}\n\t}\n\n\t@test('schemas are imported from one module', ['schema1'])\n\t@test('schemas are imported from two modules', ['schema1', 'schema2'])\n\tprotected static async schemasAreImportedFromModuleWhenSyncedFromDifferentNamespace(\n\t\tschemaNames: ('schema1' | 'schema2')[]\n\t) {\n\t\tawait this.reInstallSkill()\n\t\tawait this.Store('skill').setCurrentSkillsNamespace('TestingTwo')\n\n\t\tconst schemas: Schema[] = []\n\n\t\tfor (const name of schemaNames) {\n\t\t\tschemas.push(this[name])\n\t\t}\n\n\t\tawait this.getEmitter().on('schema.did-fetch-schemas', async () => {\n\t\t\treturn {\n\t\t\t\tschemas,\n\t\t\t}\n\t\t})\n\n\t\tconst results = await this.SyncAction().execute({\n\t\t\tshouldInstallMissingDependencies: true,\n\t\t})\n\n\t\tawait this.assertCalendarEventSchemaIsImported(results)\n\n\t\tassert.doesThrow(() =>\n\t\t\ttestUtil.assertFileByNameInGeneratedFiles(\n\t\t\t\t'schemas.types.ts',\n\t\t\t\tresults.files\n\t\t\t)\n\t\t)\n\t}\n\n\t@test('can reference impored from another module', [\n\t\t`import * as HeartwoodTypesLocal from '@sprucelabs/heartwood-view-controllers'`,\n\t])\n\t@test('can reference impored from another module with two importsWhenLocal', [\n\t\t`import * as HeartwoodTypesLocal from '@sprucelabs/heartwood-view-controllers'`,\n\t\t`import * as HeartwoodTypesLocal2 from '@sprucelabs/heartwood-view-controllers'`,\n\t])\n\tprotected static async canReferenceSchemaImportedFromAnotherModule(\n\t\timportsWhenRemote: string[]\n\t) {\n\t\tawait this.reInstallSkill()\n\t\tawait this.Store('skill').setCurrentSkillsNamespace('TestingTwo')\n\n\t\tconst mySchema = {\n\t\t\tid: 'localSchema',\n\t\t\timportsWhenRemote,\n\t\t\tfields: {\n\t\t\t\tcalendarEvent: {\n\t\t\t\t\ttype: 'schema',\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tschema: {\n\t\t\t\t\t\t\t...this.schema1,\n\t\t\t\t\t\t\tnamespace: 'CalendarUtils',\n\t\t\t\t\t\t\tversion: 'v2021_05_19',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\n\t\tawait this.getEmitter().on('schema.did-fetch-schemas', async () => {\n\t\t\treturn {\n\t\t\t\tschemas: [mySchema],\n\t\t\t}\n\t\t})\n\n\t\tconst results = await this.SyncAction().execute({\n\t\t\tshouldInstallMissingDependencies: true,\n\t\t})\n\n\t\tconst localSchemaFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'localSchema.schema.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst localSchema = await this.Service('import').importDefault(\n\t\t\tlocalSchemaFile\n\t\t)\n\n\t\tassert.isEqualDeep(localSchema.importsWhenRemote, importsWhenRemote)\n\n\t\tawait this.assertCalendarEventSchemaIsImported(results)\n\t\tawait this.assertValidTypesFileWhenAddingRemoteImport(results)\n\t}\n\n\t@test()\n\tprotected static async canSetImportFromModuleWithNestedSchemasWhenRemoteWhenSyncing() {\n\t\tawait this.reInstallSkill()\n\n\t\tawait this.Action('schema', 'create').execute({\n\t\t\tnameReadable: 'Schema imported as module',\n\t\t\tnamePascal: 'CalandarEvent',\n\t\t\tnameCamel: 'calendarEvent',\n\t\t})\n\n\t\tconst results = await this.SyncAction().execute({\n\t\t\tmoduleToImportFromWhenRemote: REMOTE_MODULE,\n\t\t})\n\n\t\tthis.schema1 = (await this.importGeneratedFile(\n\t\t\tresults,\n\t\t\t`calendarEvent.schema.ts`\n\t\t)) as Schema\n\n\t\tassert.isEqual(this.schema1.moduleToImportFromWhenRemote, REMOTE_MODULE)\n\t}\n\n\t@test()\n\tprotected static async canHandleFormBuilderImportExportObject() {\n\t\tconst version = versionUtil.generateVersion().constValue\n\n\t\tconst completedFormBuilder = {\n\t\t\tid: 'fullCompletedForm',\n\t\t\tversion,\n\t\t\tmoduleToImportFromWhenRemote: '@sprucelabs/heartwood-view-controllers',\n\t\t\tfields: {\n\t\t\t\tid: {\n\t\t\t\t\ttype: 'id',\n\t\t\t\t\tisRequired: true,\n\t\t\t\t},\n\t\t\t\tpersonId: {\n\t\t\t\t\ttype: 'id',\n\t\t\t\t\tisRequired: true,\n\t\t\t\t},\n\t\t\t\tvalues: {\n\t\t\t\t\ttype: 'raw',\n\t\t\t\t\tisArray: true,\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tvalueType: 'Record<string, any>',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\n\t\tconst builderForm = {\n\t\t\tid: 'builtForm',\n\t\t\tversion,\n\t\t\tmoduleToImportFromWhenRemote: '@sprucelabs/heartwood-view-controllers',\n\t\t\tfields: {\n\t\t\t\tid: {\n\t\t\t\t\ttype: 'id',\n\t\t\t\t\tisRequired: true,\n\t\t\t\t},\n\t\t\t\tdateDeleted: {\n\t\t\t\t\ttype: 'number',\n\t\t\t\t},\n\t\t\t\tcompletedFormBuilder: {\n\t\t\t\t\ttype: 'schema',\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tschemaId: {\n\t\t\t\t\t\t\tversion,\n\t\t\t\t\t\t\tid: 'fullCompletedForm',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\n\t\tconst itemBuilder = new SchemaTemplateItemBuilder('TestSkill')\n\n\t\tconst results = itemBuilder.buildTemplateItems({\n\t\t\t//@ts-ignore\n\t\t\tTestSkill: [completedFormBuilder, builderForm],\n\t\t})\n\n\t\tassert.isFalsy(\n\t\t\t(\n\t\t\t\tresults.find((r) => r.id === 'builtForm')?.schema.fields\n\t\t\t\t\t?.completedFormBuilder?.options as any\n\t\t\t)?.schemaIds?.[0]?.moduleToImportFromWhenRemote\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async importedSchemasDoNotShowUpInSchemaTypes() {\n\t\t// await this.reInstallSkill()\n\t\tawait this.Store('skill').setCurrentSkillsNamespace('TestingTwo')\n\n\t\tconst schema1 = {\n\t\t\tid: 'fullCompletedForm',\n\t\t\tnamespace: 'Heartwood',\n\t\t\tversion: versionUtil.generateVersion().dirValue,\n\t\t\tmoduleToImportFromWhenRemote: '@sprucelabs/heartwood-view-controllers',\n\t\t\timportsWhenRemote: ['import * from bananarama'],\n\t\t\tfields: {\n\t\t\t\tid: {\n\t\t\t\t\ttype: 'id',\n\t\t\t\t\tisRequired: true,\n\t\t\t\t},\n\t\t\t\tpersonId: {\n\t\t\t\t\ttype: 'id',\n\t\t\t\t\tisRequired: true,\n\t\t\t\t},\n\t\t\t\tvalues: {\n\t\t\t\t\ttype: 'raw',\n\t\t\t\t\tisArray: true,\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tvalueType: 'Record<string, any>',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\n\t\tconst schema2 = {\n\t\t\tid: 'localCompleted',\n\t\t\tversion: versionUtil.generateVersion().dirValue,\n\t\t\tfields: {\n\t\t\t\tid: {\n\t\t\t\t\ttype: 'id',\n\t\t\t\t\tisRequired: true,\n\t\t\t\t},\n\t\t\t\tpersonId: {\n\t\t\t\t\ttype: 'id',\n\t\t\t\t\tisRequired: true,\n\t\t\t\t},\n\t\t\t\tvalues: {\n\t\t\t\t\ttype: 'raw',\n\t\t\t\t\tisArray: true,\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tvalueType: 'Record<string, any>',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\n\t\tawait this.getEmitter().on('schema.did-fetch-schemas', async () => {\n\t\t\treturn {\n\t\t\t\tschemas: [schema1, schema2],\n\t\t\t}\n\t\t})\n\n\t\tconst results = await this.SyncAction().execute({\n\t\t\tshouldInstallMissingDependencies: true,\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst schemaTypesFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'schemas.types.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(schemaTypesFile)\n\t}\n\n\tprivate static SyncAction() {\n\t\treturn this.Action('schema', 'sync', {\n\t\t\toptionOverrides: {\n\t\t\t\t'sync.schemas': {},\n\t\t\t},\n\t\t})\n\t}\n\n\tprivate static async importGeneratedFile(\n\t\tresults: FeatureActionResponse,\n\t\tfileName: string\n\t) {\n\t\tconst schemaFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\tfileName,\n\t\t\tresults.files\n\t\t)\n\n\t\treturn await this.Service('import').importDefault(schemaFile)\n\t}\n\n\tprivate static async assertCalendarEventSchemaIsImported(\n\t\tresults: FeatureActionResponse\n\t) {\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst imported = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'calendarEvent.schema.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst calendarEventContents = diskUtil.readFile(imported)\n\n\t\tassert.isEqual(\n\t\t\tcalendarEventContents.trim(),\n\t\t\t`export { calendarEventSchema as default } from '@sprucelabs/calendar-utils'`\n\t\t)\n\t}\n\n\tprivate static generateTemplateItems(namespace: string) {\n\t\tconst itemBuilder = new SchemaTemplateItemBuilder(namespace)\n\t\tconst templateItems = itemBuilder.buildTemplateItems(\n\t\t\t{\n\t\t\t\t[LOCAL_NAMESPACE]: [\n\t\t\t\t\t{\n\t\t\t\t\t\t...this.builder1,\n\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t...this.builder1.fields,\n\t\t\t\t\t\t\tnestedSchema: {\n\t\t\t\t\t\t\t\ttype: 'schema',\n\t\t\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\t\t\tschema: {\n\t\t\t\t\t\t\t\t\t\tid: 'nested',\n\t\t\t\t\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t\t\t\t\tfirstName: {\n\t\t\t\t\t\t\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\tthis.resolveHashSprucePath('schemas')\n\t\t)\n\t\treturn templateItems as SchemaTemplateItem[]\n\t}\n\n\tprivate static async assertValidTypesFileWhenAddingRemoteImport(\n\t\tresults: FeatureActionResponse\n\t) {\n\t\tconst schemaTypesFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'schemas.types.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst typesContent = `import '${REMOTE_MODULE}'\\n\\n${diskUtil.readFile(\n\t\t\tschemaTypesFile\n\t\t)}`\n\t\tdiskUtil.writeFile(schemaTypesFile, typesContent)\n\n\t\tawait this.Service('typeChecker').check(schemaTypesFile)\n\t}\n}\n"],"file":"SettingUpSchemasForModuleDistribution.test.js"}
|
|
@@ -214,7 +214,7 @@ var PkgServiceTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(), _dec3
|
|
|
214
214
|
switch (_context6.prev = _context6.next) {
|
|
215
215
|
case 0:
|
|
216
216
|
_context6.next = 2;
|
|
217
|
-
return this.pkg.install(['moment', '@sprucelabs/
|
|
217
|
+
return this.pkg.install(['moment', '@sprucelabs/calendar-utils']);
|
|
218
218
|
|
|
219
219
|
case 2:
|
|
220
220
|
_yield$this$pkg$insta2 = _context6.sent;
|
|
@@ -222,7 +222,7 @@ var PkgServiceTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(), _dec3
|
|
|
222
222
|
|
|
223
223
|
_test.assert.isEqual(totalInstalled, 2);
|
|
224
224
|
|
|
225
|
-
expectedPath = this.resolvePath('node_modules', '@sprucelabs', '
|
|
225
|
+
expectedPath = this.resolvePath('node_modules', '@sprucelabs', 'calendar-utils');
|
|
226
226
|
|
|
227
227
|
_test.assert.isTrue(_spruceSkillUtils.diskUtil.doesFileExist(expectedPath), "No module installed at ".concat(expectedPath, "."));
|
|
228
228
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/__tests__/implementation/PkgService.test.ts"],"names":["PkgServiceTest","pkg","Service","assert","isTruthy","version","get","isNotEqual","CommandService","setMockResponse","RegExp","code","install","isInstalled","totalInstalled","isEqual","expectedPath","resolvePath","isTrue","diskUtil","doesFileExist","AbstractSkillTest"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;;;;;;;IAEqBA,c,WASnB,iB,UAKA,iB,UAMA,iB,UAWA,iB,UA2BA,iB;;;;;;;;;;;;;sGAtDD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAEC,qBAAKC,GAAL,GAAW,KAAKC,OAAL,CAAa,KAAb,CAAX;;AAFD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;+GAKA;AAAA;AAAA;AAAA;AAAA;AAECC,6BAAOC,QAAP,CAAgB,KAAKH,GAArB;;AAFD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;qJAKA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEOI,gBAAAA,OAFP,GAEiB,KAAKJ,GAAL,CAASK,GAAT,CAAa,qBAAb,CAFjB;;AAGCH,6BAAOI,UAAP,CAAkBF,OAAlB,EAA2B,QAA3B;;AAHD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;iHAMA;AAAA;AAAA;AAAA;AAAA;AAECG,2CAAeC,eAAf,CAA+B,IAAIC,MAAJ,CAAW,QAAX,CAA/B,EAAsD;AACrDC,kBAAAA,IAAI,EAAE;AAD+C,iBAAtD;;AAFD;AAAA,uBAMO,KAAKV,GAAL,CAASW,OAAT,CAAiB,+CAAjB,CANP;;AAAA;AAQC,qBAAKX,GAAL,CAASY,WAAT,CAAqB,wCAArB;;AARD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;2IAWA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAECL,2CAAeC,eAAf,CACC,IAAIC,MAAJ,CAAW,oDAAX,CADD,EAEC;AACCC,kBAAAA,IAAI,EAAE;AADP,iBAFD;;AAFD;AAAA,uBASkC,KAAKV,GAAL,CAASW,OAAT,CAChC,gCADgC,CATlC;;AAAA;AAAA;AASSE,gBAAAA,cATT,yBASSA,cATT;;AAaCX,6BAAOY,OAAP,CAAeD,cAAf,EAA+B,CAA/B;;AAEME,gBAAAA,YAfP,GAesB,KAAKC,WAAL,CACpB,cADoB,EAEpB,aAFoB,EAGpB,oBAHoB,CAftB;;AAqBCd,6BAAOe,MAAP,CACCC,2BAASC,aAAT,CAAuBJ,YAAvB,CADD,mCAE2BA,YAF3B;;AArBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;mJA2BA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEkC,KAAKf,GAAL,CAASW,OAAT,CAAiB,CACjD,QADiD,EAEjD,
|
|
1
|
+
{"version":3,"sources":["../../../src/__tests__/implementation/PkgService.test.ts"],"names":["PkgServiceTest","pkg","Service","assert","isTruthy","version","get","isNotEqual","CommandService","setMockResponse","RegExp","code","install","isInstalled","totalInstalled","isEqual","expectedPath","resolvePath","isTrue","diskUtil","doesFileExist","AbstractSkillTest"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;;;;;;;IAEqBA,c,WASnB,iB,UAKA,iB,UAMA,iB,UAWA,iB,UA2BA,iB;;;;;;;;;;;;;sGAtDD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAEC,qBAAKC,GAAL,GAAW,KAAKC,OAAL,CAAa,KAAb,CAAX;;AAFD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;+GAKA;AAAA;AAAA;AAAA;AAAA;AAECC,6BAAOC,QAAP,CAAgB,KAAKH,GAArB;;AAFD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;qJAKA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEOI,gBAAAA,OAFP,GAEiB,KAAKJ,GAAL,CAASK,GAAT,CAAa,qBAAb,CAFjB;;AAGCH,6BAAOI,UAAP,CAAkBF,OAAlB,EAA2B,QAA3B;;AAHD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;iHAMA;AAAA;AAAA;AAAA;AAAA;AAECG,2CAAeC,eAAf,CAA+B,IAAIC,MAAJ,CAAW,QAAX,CAA/B,EAAsD;AACrDC,kBAAAA,IAAI,EAAE;AAD+C,iBAAtD;;AAFD;AAAA,uBAMO,KAAKV,GAAL,CAASW,OAAT,CAAiB,+CAAjB,CANP;;AAAA;AAQC,qBAAKX,GAAL,CAASY,WAAT,CAAqB,wCAArB;;AARD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;2IAWA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAECL,2CAAeC,eAAf,CACC,IAAIC,MAAJ,CAAW,oDAAX,CADD,EAEC;AACCC,kBAAAA,IAAI,EAAE;AADP,iBAFD;;AAFD;AAAA,uBASkC,KAAKV,GAAL,CAASW,OAAT,CAChC,gCADgC,CATlC;;AAAA;AAAA;AASSE,gBAAAA,cATT,yBASSA,cATT;;AAaCX,6BAAOY,OAAP,CAAeD,cAAf,EAA+B,CAA/B;;AAEME,gBAAAA,YAfP,GAesB,KAAKC,WAAL,CACpB,cADoB,EAEpB,aAFoB,EAGpB,oBAHoB,CAftB;;AAqBCd,6BAAOe,MAAP,CACCC,2BAASC,aAAT,CAAuBJ,YAAvB,CADD,mCAE2BA,YAF3B;;AArBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;mJA2BA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEkC,KAAKf,GAAL,CAASW,OAAT,CAAiB,CACjD,QADiD,EAEjD,4BAFiD,CAAjB,CAFlC;;AAAA;AAAA;AAESE,gBAAAA,cAFT,0BAESA,cAFT;;AAOCX,6BAAOY,OAAP,CAAeD,cAAf,EAA+B,CAA/B;;AAEME,gBAAAA,YATP,GASsB,KAAKC,WAAL,CACpB,cADoB,EAEpB,aAFoB,EAGpB,gBAHoB,CATtB;;AAeCd,6BAAOe,MAAP,CACCC,2BAASC,aAAT,CAAuBJ,YAAvB,CADD,mCAE2BA,YAF3B;;AAfD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;EA1D2CK,8B,8DACV,Q","sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport CommandService from '../../services/CommandService'\nimport PkgService from '../../services/PkgService'\nimport AbstractSkillTest from '../../tests/AbstractSkillTest'\n\nexport default class PkgServiceTest extends AbstractSkillTest {\n\tprotected static skillCacheKey = 'skills'\n\tprivate static pkg: PkgService\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.pkg = this.Service('pkg')\n\t}\n\n\t@test()\n\tprotected static async canCreatePkgService() {\n\t\tassert.isTruthy(this.pkg)\n\t}\n\n\t@test()\n\tprotected static async installANonSpruceLabsModuleMakesItsVersionAnActualVersion() {\n\t\tconst version = this.pkg.get('dependencies.dotenv')\n\t\tassert.isNotEqual(version, 'latest')\n\t}\n\n\t@test()\n\tprotected static async handlesAtLatestInName() {\n\t\tCommandService.setMockResponse(new RegExp(/yarn/gis), {\n\t\t\tcode: 0,\n\t\t})\n\n\t\tawait this.pkg.install('@sprucelabs/heartwood-view-controllers@latest')\n\n\t\tthis.pkg.isInstalled('@sprucelabs/heartwood-view-controllers')\n\t}\n\n\t@test()\n\tprotected static async ifInstallingOnlySpruceModulesShouldNotRunNPMAdd() {\n\t\tCommandService.setMockResponse(\n\t\t\tnew RegExp(/npm.*?install.*?--no-progress/gis),\n\t\t\t{\n\t\t\t\tcode: 1,\n\t\t\t}\n\t\t)\n\n\t\tconst { totalInstalled } = await this.pkg.install(\n\t\t\t'@sprucelabs/jest-json-reporter'\n\t\t)\n\n\t\tassert.isEqual(totalInstalled, 1)\n\n\t\tconst expectedPath = this.resolvePath(\n\t\t\t'node_modules',\n\t\t\t'@sprucelabs',\n\t\t\t'jest-json-reporter'\n\t\t)\n\n\t\tassert.isTrue(\n\t\t\tdiskUtil.doesFileExist(expectedPath),\n\t\t\t`No module installed at ${expectedPath}.`\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async installingSpruceAndOtherModulesDoesntRemoveSpruceModule() {\n\t\tconst { totalInstalled } = await this.pkg.install([\n\t\t\t'moment',\n\t\t\t'@sprucelabs/calendar-utils',\n\t\t])\n\n\t\tassert.isEqual(totalInstalled, 2)\n\n\t\tconst expectedPath = this.resolvePath(\n\t\t\t'node_modules',\n\t\t\t'@sprucelabs',\n\t\t\t'calendar-utils'\n\t\t)\n\n\t\tassert.isTrue(\n\t\t\tdiskUtil.doesFileExist(expectedPath),\n\t\t\t`No module installed at ${expectedPath}.`\n\t\t)\n\t}\n}\n"],"file":"PkgService.test.js"}
|
package/build/cli.d.ts
CHANGED
|
@@ -44,6 +44,7 @@ export default class Cli implements CliInterface {
|
|
|
44
44
|
on(...args: any[]): Promise<void>;
|
|
45
45
|
off(...args: any[]): Promise<number>;
|
|
46
46
|
emit(...args: any[]): Promise<import("@sprucelabs/mercury-types").MercuryAggregateResponse<import("@sprucelabs/schema").SchemaStaticValues<any, false, string, import("@sprucelabs/schema").StaticSchemaAllValues<any, false>>>>;
|
|
47
|
+
emitAndFlattenResponses(...args: any[]): Promise<import("@sprucelabs/schema").SchemaStaticValues<any, false, string, import("@sprucelabs/schema").StaticSchemaAllValues<any, false>>[]>;
|
|
47
48
|
installFeatures(options: InstallFeatureOptions): Promise<import("./features/features.types").FeatureInstallResponse>;
|
|
48
49
|
getFeature<C extends FeatureCode>(code: C): import("./features/features.types").FeatureMap[C];
|
|
49
50
|
checkHealth(options?: HealthOptions): Promise<HealthCheckResults>;
|
package/build/cli.js
CHANGED
|
@@ -183,14 +183,17 @@ var Cli = /*#__PURE__*/function () {
|
|
|
183
183
|
return emit;
|
|
184
184
|
}()
|
|
185
185
|
}, {
|
|
186
|
-
key: "
|
|
186
|
+
key: "emitAndFlattenResponses",
|
|
187
187
|
value: function () {
|
|
188
|
-
var
|
|
188
|
+
var _emitAndFlattenResponses = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
|
|
189
|
+
var _this$emitter4;
|
|
190
|
+
|
|
191
|
+
var _args4 = arguments;
|
|
189
192
|
return _regenerator["default"].wrap(function _callee4$(_context4) {
|
|
190
193
|
while (1) {
|
|
191
194
|
switch (_context4.prev = _context4.next) {
|
|
192
195
|
case 0:
|
|
193
|
-
return _context4.abrupt("return", this.
|
|
196
|
+
return _context4.abrupt("return", (_this$emitter4 = this.emitter).emitAndFlattenResponses.apply(_this$emitter4, _args4));
|
|
194
197
|
|
|
195
198
|
case 1:
|
|
196
199
|
case "end":
|
|
@@ -200,6 +203,30 @@ var Cli = /*#__PURE__*/function () {
|
|
|
200
203
|
}, _callee4, this);
|
|
201
204
|
}));
|
|
202
205
|
|
|
206
|
+
function emitAndFlattenResponses() {
|
|
207
|
+
return _emitAndFlattenResponses.apply(this, arguments);
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
return emitAndFlattenResponses;
|
|
211
|
+
}()
|
|
212
|
+
}, {
|
|
213
|
+
key: "installFeatures",
|
|
214
|
+
value: function () {
|
|
215
|
+
var _installFeatures = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5(options) {
|
|
216
|
+
return _regenerator["default"].wrap(function _callee5$(_context5) {
|
|
217
|
+
while (1) {
|
|
218
|
+
switch (_context5.prev = _context5.next) {
|
|
219
|
+
case 0:
|
|
220
|
+
return _context5.abrupt("return", this.featureInstaller.install(options));
|
|
221
|
+
|
|
222
|
+
case 1:
|
|
223
|
+
case "end":
|
|
224
|
+
return _context5.stop();
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
}, _callee5, this);
|
|
228
|
+
}));
|
|
229
|
+
|
|
203
230
|
function installFeatures(_x) {
|
|
204
231
|
return _installFeatures.apply(this, arguments);
|
|
205
232
|
}
|
|
@@ -214,24 +241,24 @@ var Cli = /*#__PURE__*/function () {
|
|
|
214
241
|
}, {
|
|
215
242
|
key: "checkHealth",
|
|
216
243
|
value: function () {
|
|
217
|
-
var _checkHealth = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function
|
|
244
|
+
var _checkHealth = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6(options) {
|
|
218
245
|
var isInstalled, commandService, command, results, resultParts, error;
|
|
219
|
-
return _regenerator["default"].wrap(function
|
|
246
|
+
return _regenerator["default"].wrap(function _callee6$(_context6) {
|
|
220
247
|
while (1) {
|
|
221
|
-
switch (
|
|
248
|
+
switch (_context6.prev = _context6.next) {
|
|
222
249
|
case 0:
|
|
223
|
-
|
|
250
|
+
_context6.next = 2;
|
|
224
251
|
return this.featureInstaller.isInstalled('skill');
|
|
225
252
|
|
|
226
253
|
case 2:
|
|
227
|
-
isInstalled =
|
|
254
|
+
isInstalled = _context6.sent;
|
|
228
255
|
|
|
229
256
|
if (isInstalled) {
|
|
230
|
-
|
|
257
|
+
_context6.next = 5;
|
|
231
258
|
break;
|
|
232
259
|
}
|
|
233
260
|
|
|
234
|
-
return
|
|
261
|
+
return _context6.abrupt("return", {
|
|
235
262
|
skill: {
|
|
236
263
|
status: 'failed',
|
|
237
264
|
errors: [new _SpruceError["default"]({
|
|
@@ -242,25 +269,25 @@ var Cli = /*#__PURE__*/function () {
|
|
|
242
269
|
});
|
|
243
270
|
|
|
244
271
|
case 5:
|
|
245
|
-
|
|
272
|
+
_context6.prev = 5;
|
|
246
273
|
commandService = this.serviceFactory.Service(this.cwd, 'command');
|
|
247
274
|
command = (options === null || options === void 0 ? void 0 : options.shouldRunOnSourceFiles) === false ? 'yarn health' : 'yarn health.local';
|
|
248
|
-
|
|
275
|
+
_context6.next = 10;
|
|
249
276
|
return commandService.execute(command);
|
|
250
277
|
|
|
251
278
|
case 10:
|
|
252
|
-
results =
|
|
279
|
+
results = _context6.sent;
|
|
253
280
|
resultParts = results.stdout.split(_spruceSkillUtils.HEALTH_DIVIDER);
|
|
254
|
-
return
|
|
281
|
+
return _context6.abrupt("return", JSON.parse(resultParts[1]));
|
|
255
282
|
|
|
256
283
|
case 15:
|
|
257
|
-
|
|
258
|
-
|
|
284
|
+
_context6.prev = 15;
|
|
285
|
+
_context6.t0 = _context6["catch"](5);
|
|
259
286
|
error = new _SpruceError["default"]({
|
|
260
287
|
code: 'BOOT_ERROR',
|
|
261
|
-
originalError:
|
|
288
|
+
originalError: _context6.t0
|
|
262
289
|
});
|
|
263
|
-
return
|
|
290
|
+
return _context6.abrupt("return", {
|
|
264
291
|
skill: {
|
|
265
292
|
status: 'failed',
|
|
266
293
|
errors: [error]
|
|
@@ -269,10 +296,10 @@ var Cli = /*#__PURE__*/function () {
|
|
|
269
296
|
|
|
270
297
|
case 19:
|
|
271
298
|
case "end":
|
|
272
|
-
return
|
|
299
|
+
return _context6.stop();
|
|
273
300
|
}
|
|
274
301
|
}
|
|
275
|
-
},
|
|
302
|
+
}, _callee6, this, [[5, 15]]);
|
|
276
303
|
}));
|
|
277
304
|
|
|
278
305
|
function checkHealth(_x2) {
|
|
@@ -284,30 +311,30 @@ var Cli = /*#__PURE__*/function () {
|
|
|
284
311
|
}], [{
|
|
285
312
|
key: "resetApiClients",
|
|
286
313
|
value: function () {
|
|
287
|
-
var _resetApiClients = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function
|
|
314
|
+
var _resetApiClients = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7() {
|
|
288
315
|
var key;
|
|
289
|
-
return _regenerator["default"].wrap(function
|
|
316
|
+
return _regenerator["default"].wrap(function _callee7$(_context7) {
|
|
290
317
|
while (1) {
|
|
291
|
-
switch (
|
|
318
|
+
switch (_context7.prev = _context7.next) {
|
|
292
319
|
case 0:
|
|
293
|
-
|
|
320
|
+
_context7.t0 = _regenerator["default"].keys(this.apiClients);
|
|
294
321
|
|
|
295
322
|
case 1:
|
|
296
|
-
if ((
|
|
297
|
-
|
|
323
|
+
if ((_context7.t1 = _context7.t0()).done) {
|
|
324
|
+
_context7.next = 9;
|
|
298
325
|
break;
|
|
299
326
|
}
|
|
300
327
|
|
|
301
|
-
key =
|
|
302
|
-
|
|
328
|
+
key = _context7.t1.value;
|
|
329
|
+
_context7.next = 5;
|
|
303
330
|
return this.apiClients[key];
|
|
304
331
|
|
|
305
332
|
case 5:
|
|
306
|
-
|
|
307
|
-
return
|
|
333
|
+
_context7.next = 7;
|
|
334
|
+
return _context7.sent.disconnect();
|
|
308
335
|
|
|
309
336
|
case 7:
|
|
310
|
-
|
|
337
|
+
_context7.next = 1;
|
|
311
338
|
break;
|
|
312
339
|
|
|
313
340
|
case 9:
|
|
@@ -315,10 +342,10 @@ var Cli = /*#__PURE__*/function () {
|
|
|
315
342
|
|
|
316
343
|
case 10:
|
|
317
344
|
case "end":
|
|
318
|
-
return
|
|
345
|
+
return _context7.stop();
|
|
319
346
|
}
|
|
320
347
|
}
|
|
321
|
-
},
|
|
348
|
+
}, _callee7, this);
|
|
322
349
|
}));
|
|
323
350
|
|
|
324
351
|
function resetApiClients() {
|
|
@@ -330,14 +357,14 @@ var Cli = /*#__PURE__*/function () {
|
|
|
330
357
|
}, {
|
|
331
358
|
key: "Boot",
|
|
332
359
|
value: function () {
|
|
333
|
-
var _Boot = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function
|
|
360
|
+
var _Boot = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee8(options) {
|
|
334
361
|
var _options$emitter, _options$cwd, _options$apiClientFac, _options$homeDir, _options$graphicsInte, _options$featureInsta;
|
|
335
362
|
|
|
336
363
|
var program, emitter, cwd, serviceFactory, apiClientFactory, storeFactory, ui, featureInstaller, writerFactory, optionOverrides, blockedCommands, actionFactory, actionExecuter, attacher, codes, _iterator, _step, code, feature, cli;
|
|
337
364
|
|
|
338
|
-
return _regenerator["default"].wrap(function
|
|
365
|
+
return _regenerator["default"].wrap(function _callee8$(_context8) {
|
|
339
366
|
while (1) {
|
|
340
|
-
switch (
|
|
367
|
+
switch (_context8.prev = _context8.next) {
|
|
341
368
|
case 0:
|
|
342
369
|
program = options === null || options === void 0 ? void 0 : options.program;
|
|
343
370
|
emitter = (_options$emitter = options === null || options === void 0 ? void 0 : options.emitter) !== null && _options$emitter !== void 0 ? _options$emitter : _GlobalEmitter["default"].Emitter();
|
|
@@ -395,7 +422,7 @@ var Cli = /*#__PURE__*/function () {
|
|
|
395
422
|
});
|
|
396
423
|
|
|
397
424
|
if (!program) {
|
|
398
|
-
|
|
425
|
+
_context8.next = 37;
|
|
399
426
|
break;
|
|
400
427
|
}
|
|
401
428
|
|
|
@@ -406,41 +433,41 @@ var Cli = /*#__PURE__*/function () {
|
|
|
406
433
|
});
|
|
407
434
|
codes = _FeatureInstallerFactory["default"].featureCodes;
|
|
408
435
|
_iterator = _createForOfIteratorHelper(codes);
|
|
409
|
-
|
|
436
|
+
_context8.prev = 18;
|
|
410
437
|
|
|
411
438
|
_iterator.s();
|
|
412
439
|
|
|
413
440
|
case 20:
|
|
414
441
|
if ((_step = _iterator.n()).done) {
|
|
415
|
-
|
|
442
|
+
_context8.next = 27;
|
|
416
443
|
break;
|
|
417
444
|
}
|
|
418
445
|
|
|
419
446
|
code = _step.value;
|
|
420
447
|
feature = featureInstaller.getFeature(code);
|
|
421
|
-
|
|
448
|
+
_context8.next = 25;
|
|
422
449
|
return attacher.attachFeature(feature);
|
|
423
450
|
|
|
424
451
|
case 25:
|
|
425
|
-
|
|
452
|
+
_context8.next = 20;
|
|
426
453
|
break;
|
|
427
454
|
|
|
428
455
|
case 27:
|
|
429
|
-
|
|
456
|
+
_context8.next = 32;
|
|
430
457
|
break;
|
|
431
458
|
|
|
432
459
|
case 29:
|
|
433
|
-
|
|
434
|
-
|
|
460
|
+
_context8.prev = 29;
|
|
461
|
+
_context8.t0 = _context8["catch"](18);
|
|
435
462
|
|
|
436
|
-
_iterator.e(
|
|
463
|
+
_iterator.e(_context8.t0);
|
|
437
464
|
|
|
438
465
|
case 32:
|
|
439
|
-
|
|
466
|
+
_context8.prev = 32;
|
|
440
467
|
|
|
441
468
|
_iterator.f();
|
|
442
469
|
|
|
443
|
-
return
|
|
470
|
+
return _context8.finish(32);
|
|
444
471
|
|
|
445
472
|
case 35:
|
|
446
473
|
program.commands.sort(function (a, b) {
|
|
@@ -455,14 +482,14 @@ var Cli = /*#__PURE__*/function () {
|
|
|
455
482
|
|
|
456
483
|
case 37:
|
|
457
484
|
cli = new Cli(cwd, featureInstaller, serviceFactory, emitter, attacher, actionExecuter);
|
|
458
|
-
return
|
|
485
|
+
return _context8.abrupt("return", cli);
|
|
459
486
|
|
|
460
487
|
case 39:
|
|
461
488
|
case "end":
|
|
462
|
-
return
|
|
489
|
+
return _context8.stop();
|
|
463
490
|
}
|
|
464
491
|
}
|
|
465
|
-
},
|
|
492
|
+
}, _callee8, this, [[18, 29, 32, 35]]);
|
|
466
493
|
}));
|
|
467
494
|
|
|
468
495
|
function Boot(_x3) {
|
|
@@ -504,11 +531,11 @@ var Cli = /*#__PURE__*/function () {
|
|
|
504
531
|
key: "buildApiClientFactory",
|
|
505
532
|
value: function buildApiClientFactory(cwd, serviceFactory, bootOptions) {
|
|
506
533
|
var apiClientFactory = /*#__PURE__*/function () {
|
|
507
|
-
var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function
|
|
534
|
+
var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee9(options) {
|
|
508
535
|
var key;
|
|
509
|
-
return _regenerator["default"].wrap(function
|
|
536
|
+
return _regenerator["default"].wrap(function _callee9$(_context9) {
|
|
510
537
|
while (1) {
|
|
511
|
-
switch (
|
|
538
|
+
switch (_context9.prev = _context9.next) {
|
|
512
539
|
case 0:
|
|
513
540
|
key = _apiClient["default"].generateClientCacheKey(options);
|
|
514
541
|
|
|
@@ -516,14 +543,14 @@ var Cli = /*#__PURE__*/function () {
|
|
|
516
543
|
Cli.apiClients[key] = Cli.connectToApi(cwd, serviceFactory, options, bootOptions);
|
|
517
544
|
}
|
|
518
545
|
|
|
519
|
-
return
|
|
546
|
+
return _context9.abrupt("return", Cli.apiClients[key]);
|
|
520
547
|
|
|
521
548
|
case 3:
|
|
522
549
|
case "end":
|
|
523
|
-
return
|
|
550
|
+
return _context9.stop();
|
|
524
551
|
}
|
|
525
552
|
}
|
|
526
|
-
},
|
|
553
|
+
}, _callee9);
|
|
527
554
|
}));
|
|
528
555
|
|
|
529
556
|
return function apiClientFactory(_x4) {
|
|
@@ -536,23 +563,23 @@ var Cli = /*#__PURE__*/function () {
|
|
|
536
563
|
}, {
|
|
537
564
|
key: "connectToApi",
|
|
538
565
|
value: function () {
|
|
539
|
-
var _connectToApi = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function
|
|
566
|
+
var _connectToApi = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee11(cwd, serviceFactory, options, bootOptions) {
|
|
540
567
|
var connect, _ref3, _ref3$shouldAuthAsCur, shouldAuthAsCurrentSkill, _ref3$shouldAuthAsLog, shouldAuthAsLoggedInPerson, client, auth, pkg, doesPkgExist, skill, person;
|
|
541
568
|
|
|
542
|
-
return _regenerator["default"].wrap(function
|
|
569
|
+
return _regenerator["default"].wrap(function _callee11$(_context11) {
|
|
543
570
|
while (1) {
|
|
544
|
-
switch (
|
|
571
|
+
switch (_context11.prev = _context11.next) {
|
|
545
572
|
case 0:
|
|
546
|
-
connect = bootOptions !== null && bootOptions !== void 0 && bootOptions.apiClientFactory ? bootOptions.apiClientFactory : /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function
|
|
573
|
+
connect = bootOptions !== null && bootOptions !== void 0 && bootOptions.apiClientFactory ? bootOptions.apiClientFactory : /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee10() {
|
|
547
574
|
var _bootOptions$host;
|
|
548
575
|
|
|
549
576
|
var eventsContracts, client;
|
|
550
|
-
return _regenerator["default"].wrap(function
|
|
577
|
+
return _regenerator["default"].wrap(function _callee10$(_context10) {
|
|
551
578
|
while (1) {
|
|
552
|
-
switch (
|
|
579
|
+
switch (_context10.prev = _context10.next) {
|
|
553
580
|
case 0:
|
|
554
581
|
eventsContracts = require("./.spruce/events/events.contract")["default"];
|
|
555
|
-
|
|
582
|
+
_context10.next = 3;
|
|
556
583
|
return _mercuryClient.MercuryClientFactory.Client(_objectSpread({
|
|
557
584
|
contracts: eventsContracts,
|
|
558
585
|
host: (_bootOptions$host = bootOptions === null || bootOptions === void 0 ? void 0 : bootOptions.host) !== null && _bootOptions$host !== void 0 ? _bootOptions$host : _constants.DEFAULT_HOST,
|
|
@@ -560,22 +587,22 @@ var Cli = /*#__PURE__*/function () {
|
|
|
560
587
|
}, bootOptions));
|
|
561
588
|
|
|
562
589
|
case 3:
|
|
563
|
-
client =
|
|
564
|
-
return
|
|
590
|
+
client = _context10.sent;
|
|
591
|
+
return _context10.abrupt("return", client);
|
|
565
592
|
|
|
566
593
|
case 5:
|
|
567
594
|
case "end":
|
|
568
|
-
return
|
|
595
|
+
return _context10.stop();
|
|
569
596
|
}
|
|
570
597
|
}
|
|
571
|
-
},
|
|
598
|
+
}, _callee10);
|
|
572
599
|
}));
|
|
573
600
|
_ref3 = options !== null && options !== void 0 ? options : {}, _ref3$shouldAuthAsCur = _ref3.shouldAuthAsCurrentSkill, shouldAuthAsCurrentSkill = _ref3$shouldAuthAsCur === void 0 ? false : _ref3$shouldAuthAsCur, _ref3$shouldAuthAsLog = _ref3.shouldAuthAsLoggedInPerson, shouldAuthAsLoggedInPerson = _ref3$shouldAuthAsLog === void 0 ? true : _ref3$shouldAuthAsLog;
|
|
574
|
-
|
|
601
|
+
_context11.next = 4;
|
|
575
602
|
return connect();
|
|
576
603
|
|
|
577
604
|
case 4:
|
|
578
|
-
client =
|
|
605
|
+
client = _context11.sent;
|
|
579
606
|
auth = {};
|
|
580
607
|
pkg = serviceFactory.Service(cwd, 'pkg');
|
|
581
608
|
doesPkgExist = pkg.doesExist();
|
|
@@ -603,11 +630,11 @@ var Cli = /*#__PURE__*/function () {
|
|
|
603
630
|
}
|
|
604
631
|
|
|
605
632
|
if (!(Object.keys(auth).length > 0)) {
|
|
606
|
-
|
|
633
|
+
_context11.next = 13;
|
|
607
634
|
break;
|
|
608
635
|
}
|
|
609
636
|
|
|
610
|
-
|
|
637
|
+
_context11.next = 12;
|
|
611
638
|
return client.authenticate(_objectSpread({}, auth));
|
|
612
639
|
|
|
613
640
|
case 12:
|
|
@@ -615,14 +642,14 @@ var Cli = /*#__PURE__*/function () {
|
|
|
615
642
|
client.auth = auth;
|
|
616
643
|
|
|
617
644
|
case 13:
|
|
618
|
-
return
|
|
645
|
+
return _context11.abrupt("return", client);
|
|
619
646
|
|
|
620
647
|
case 14:
|
|
621
648
|
case "end":
|
|
622
|
-
return
|
|
649
|
+
return _context11.stop();
|
|
623
650
|
}
|
|
624
651
|
}
|
|
625
|
-
},
|
|
652
|
+
}, _callee11);
|
|
626
653
|
}));
|
|
627
654
|
|
|
628
655
|
function connectToApi(_x5, _x6, _x7, _x8) {
|
|
@@ -643,7 +670,7 @@ function run() {
|
|
|
643
670
|
}
|
|
644
671
|
|
|
645
672
|
function _run() {
|
|
646
|
-
_run = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function
|
|
673
|
+
_run = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee12() {
|
|
647
674
|
var argv,
|
|
648
675
|
program,
|
|
649
676
|
cwd,
|
|
@@ -658,13 +685,13 @@ function _run() {
|
|
|
658
685
|
_iterator2,
|
|
659
686
|
_step2,
|
|
660
687
|
client,
|
|
661
|
-
|
|
688
|
+
_args12 = arguments;
|
|
662
689
|
|
|
663
|
-
return _regenerator["default"].wrap(function
|
|
690
|
+
return _regenerator["default"].wrap(function _callee12$(_context12) {
|
|
664
691
|
while (1) {
|
|
665
|
-
switch (
|
|
692
|
+
switch (_context12.prev = _context12.next) {
|
|
666
693
|
case 0:
|
|
667
|
-
argv =
|
|
694
|
+
argv = _args12.length > 0 && _args12[0] !== undefined ? _args12[0] : [];
|
|
668
695
|
program = new _commander.Command();
|
|
669
696
|
cwd = process.cwd();
|
|
670
697
|
program.storeOptionsAsProperties(false);
|
|
@@ -689,16 +716,16 @@ function _run() {
|
|
|
689
716
|
}) > -1;
|
|
690
717
|
|
|
691
718
|
if (!isAskingForVersion) {
|
|
692
|
-
|
|
719
|
+
_context12.next = 17;
|
|
693
720
|
break;
|
|
694
721
|
}
|
|
695
722
|
|
|
696
723
|
json = require("../package.json");
|
|
697
724
|
terminal.renderHeadline("Version ".concat(json.version));
|
|
698
|
-
return
|
|
725
|
+
return _context12.abrupt("return");
|
|
699
726
|
|
|
700
727
|
case 17:
|
|
701
|
-
|
|
728
|
+
_context12.next = 19;
|
|
702
729
|
return Cli.Boot({
|
|
703
730
|
program: program,
|
|
704
731
|
cwd: cwd,
|
|
@@ -707,65 +734,65 @@ function _run() {
|
|
|
707
734
|
});
|
|
708
735
|
|
|
709
736
|
case 19:
|
|
710
|
-
|
|
737
|
+
_context12.next = 21;
|
|
711
738
|
return setupInFlightEntertainment(terminal);
|
|
712
739
|
|
|
713
740
|
case 21:
|
|
714
|
-
|
|
741
|
+
_context12.next = 23;
|
|
715
742
|
return program.parseAsync(argv);
|
|
716
743
|
|
|
717
744
|
case 23:
|
|
718
|
-
command =
|
|
719
|
-
|
|
745
|
+
command = _context12.sent;
|
|
746
|
+
_context12.next = 26;
|
|
720
747
|
return command._actionResults[0];
|
|
721
748
|
|
|
722
749
|
case 26:
|
|
723
|
-
results =
|
|
750
|
+
results = _context12.sent;
|
|
724
751
|
_iterator2 = _createForOfIteratorHelper(_mercuryClient.MercuryClientFactory.getClients());
|
|
725
|
-
|
|
752
|
+
_context12.prev = 28;
|
|
726
753
|
|
|
727
754
|
_iterator2.s();
|
|
728
755
|
|
|
729
756
|
case 30:
|
|
730
757
|
if ((_step2 = _iterator2.n()).done) {
|
|
731
|
-
|
|
758
|
+
_context12.next = 36;
|
|
732
759
|
break;
|
|
733
760
|
}
|
|
734
761
|
|
|
735
762
|
client = _step2.value;
|
|
736
|
-
|
|
763
|
+
_context12.next = 34;
|
|
737
764
|
return client.disconnect();
|
|
738
765
|
|
|
739
766
|
case 34:
|
|
740
|
-
|
|
767
|
+
_context12.next = 30;
|
|
741
768
|
break;
|
|
742
769
|
|
|
743
770
|
case 36:
|
|
744
|
-
|
|
771
|
+
_context12.next = 41;
|
|
745
772
|
break;
|
|
746
773
|
|
|
747
774
|
case 38:
|
|
748
|
-
|
|
749
|
-
|
|
775
|
+
_context12.prev = 38;
|
|
776
|
+
_context12.t0 = _context12["catch"](28);
|
|
750
777
|
|
|
751
|
-
_iterator2.e(
|
|
778
|
+
_iterator2.e(_context12.t0);
|
|
752
779
|
|
|
753
780
|
case 41:
|
|
754
|
-
|
|
781
|
+
_context12.prev = 41;
|
|
755
782
|
|
|
756
783
|
_iterator2.f();
|
|
757
784
|
|
|
758
|
-
return
|
|
785
|
+
return _context12.finish(41);
|
|
759
786
|
|
|
760
787
|
case 44:
|
|
761
|
-
return
|
|
788
|
+
return _context12.abrupt("return", results);
|
|
762
789
|
|
|
763
790
|
case 45:
|
|
764
791
|
case "end":
|
|
765
|
-
return
|
|
792
|
+
return _context12.stop();
|
|
766
793
|
}
|
|
767
794
|
}
|
|
768
|
-
},
|
|
795
|
+
}, _callee12, null, [[28, 38, 41, 44]]);
|
|
769
796
|
}));
|
|
770
797
|
return _run.apply(this, arguments);
|
|
771
798
|
}
|
|
@@ -775,11 +802,11 @@ function setupInFlightEntertainment(_x9) {
|
|
|
775
802
|
}
|
|
776
803
|
|
|
777
804
|
function _setupInFlightEntertainment() {
|
|
778
|
-
_setupInFlightEntertainment = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function
|
|
805
|
+
_setupInFlightEntertainment = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee13(ui) {
|
|
779
806
|
var command;
|
|
780
|
-
return _regenerator["default"].wrap(function
|
|
807
|
+
return _regenerator["default"].wrap(function _callee13$(_context13) {
|
|
781
808
|
while (1) {
|
|
782
|
-
switch (
|
|
809
|
+
switch (_context13.prev = _context13.next) {
|
|
783
810
|
case 0:
|
|
784
811
|
if (_TerminalInterface["default"].doesSupportColor() && process.env.ENABLE_INSTALL_INTERTAINMENT !== 'false') {
|
|
785
812
|
command = new _CommandService["default"](_spruceSkillUtils.diskUtil.resolvePath(__dirname, '../'));
|
|
@@ -804,10 +831,10 @@ function _setupInFlightEntertainment() {
|
|
|
804
831
|
|
|
805
832
|
case 1:
|
|
806
833
|
case "end":
|
|
807
|
-
return
|
|
834
|
+
return _context13.stop();
|
|
808
835
|
}
|
|
809
836
|
}
|
|
810
|
-
},
|
|
837
|
+
}, _callee13);
|
|
811
838
|
}));
|
|
812
839
|
return _setupInFlightEntertainment.apply(this, arguments);
|
|
813
840
|
}
|
package/build/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/cli.ts"],"names":["Cli","cwd","featureInstaller","serviceFactory","emitter","attacher","actionExecuter","on","off","emit","options","install","code","getFeature","isInstalled","skill","status","errors","SpruceError","commandService","Service","command","shouldRunOnSourceFiles","execute","results","resultParts","stdout","split","HEALTH_DIVIDER","JSON","parse","error","originalError","apiClients","key","disconnect","program","CliGlobalEmitter","Emitter","process","ImportService","enableCaching","ServiceFactory","apiClientFactory","buildApiClientFactory","storeFactory","StoreFactory","homeDir","osUtil","homedir","ui","graphicsInterface","TerminalInterface","writerFactory","WriterFactory","templates","settings","linter","optionOverrides","loadOptionOverrides","blockedCommands","loadCommandBlocks","actionFactory","ActionFactory","ActionExecuter","featureInstallerFactory","FeatureInstallerFactory","WithAllFeatures","FeatureCommandAttacher","codes","featureCodes","feature","attachFeature","commands","sort","a","b","_name","localeCompare","action","_","args","cli","pkg","blocks","doesExist","get","mapped","overrides","Object","keys","forEach","argParserUtil","bootOptions","apiClientUtil","generateClientCacheKey","connectToApi","connect","eventsContracts","require","MercuryClientFactory","Client","contracts","host","DEFAULT_HOST","allowSelfSignedCrt","client","shouldAuthAsCurrentSkill","shouldAuthAsLoggedInPerson","auth","doesPkgExist","skillId","apiKey","getCurrentSkill","id","person","getLoggedInPerson","token","length","authenticate","run","argv","Command","storeOptionsAsProperties","option","dirIdx","findIndex","v","dir","newCwd","diskUtil","resolvePath","terminal","env","CLI_RENDER_STACK_TRACES","clear","renderHero","CLI_HERO","isAskingForVersion","json","renderHeadline","version","Boot","HOST","setupInFlightEntertainment","parseAsync","_actionResults","getClients","doesSupportColor","ENABLE_INSTALL_INTERTAINMENT","CommandService","__dirname","InFlightEntertainment","setup","FeatureInstaller","startInFlightIntertainmentHandler","didUpdateHandler","start","message","writeStatus","stopInFlightIntertainmentHandler","stop"],"mappings":"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","sourcesContent":["import osUtil from 'os'\nimport {\n\tConnectionOptions,\n\tMercuryClientFactory,\n} from '@sprucelabs/mercury-client'\nimport { MercuryEventEmitter, SpruceSchemas } from '@sprucelabs/mercury-types'\nimport {\n\tdiskUtil,\n\tHealthCheckResults,\n\tHEALTH_DIVIDER,\n} from '@sprucelabs/spruce-skill-utils'\nimport { templates } from '@sprucelabs/spruce-templates'\nimport { Command, CommanderStatic } from 'commander'\nimport './addons/filePrompt.addon'\nimport { CLI_HERO, DEFAULT_HOST } from './constants'\nimport SpruceError from './errors/SpruceError'\nimport ActionExecuter from './features/ActionExecuter'\nimport ActionFactory from './features/ActionFactory'\nimport FeatureCommandAttacher, {\n\tBlockedCommands,\n\tOptionOverrides,\n} from './features/FeatureCommandAttacher'\nimport FeatureInstaller from './features/FeatureInstaller'\nimport FeatureInstallerFactory from './features/FeatureInstallerFactory'\nimport { FeatureCode, InstallFeatureOptions } from './features/features.types'\nimport CliGlobalEmitter, {\n\tGlobalEmitter,\n\tGlobalEventContract,\n} from './GlobalEmitter'\nimport InFlightEntertainment from './InFlightEntertainment'\nimport TerminalInterface from './interfaces/TerminalInterface'\nimport CommandService from './services/CommandService'\nimport ImportService from './services/ImportService'\nimport PkgService from './services/PkgService'\nimport ServiceFactory from './services/ServiceFactory'\nimport StoreFactory from './stores/StoreFactory'\nimport {\n\tApiClient,\n\tApiClientFactory,\n\tApiClientFactoryOptions,\n} from './types/apiClient.types'\nimport { GraphicsInterface } from './types/cli.types'\nimport apiClientUtil from './utilities/apiClient.utility'\nimport { argParserUtil } from './utilities/argParser.utility'\nimport WriterFactory from './writers/WriterFactory'\n\ninterface HealthOptions {\n\tshouldRunOnSourceFiles?: boolean\n}\n\nexport interface CliInterface extends MercuryEventEmitter<GlobalEventContract> {\n\tinstallFeatures: FeatureInstaller['install']\n\tgetFeature: FeatureInstaller['getFeature']\n\tcheckHealth(options?: HealthOptions): Promise<HealthCheckResults>\n}\n\nexport interface CliBootOptions {\n\tcwd?: string\n\thomeDir?: string\n\tprogram?: CommanderStatic['program']\n\tgraphicsInterface?: GraphicsInterface\n\temitter?: GlobalEmitter\n\tapiClientFactory?: ApiClientFactory\n\tfeatureInstaller?: FeatureInstaller\n\thost?: string\n}\n\ntype PromiseCache = Record<string, Promise<ApiClient>>\n\nexport default class Cli implements CliInterface {\n\tprivate cwd: string\n\tprivate featureInstaller: FeatureInstaller\n\tprivate serviceFactory: ServiceFactory\n\tpublic readonly emitter: GlobalEmitter\n\tprivate static apiClients: PromiseCache = {}\n\tprivate attacher?: FeatureCommandAttacher\n\tprivate actionExecuter?: ActionExecuter\n\n\tprivate constructor(\n\t\tcwd: string,\n\t\tfeatureInstaller: FeatureInstaller,\n\t\tserviceFactory: ServiceFactory,\n\t\temitter: GlobalEmitter,\n\t\tattacher?: FeatureCommandAttacher,\n\t\tactionExecuter?: ActionExecuter\n\t) {\n\t\tthis.cwd = cwd\n\t\tthis.featureInstaller = featureInstaller\n\t\tthis.serviceFactory = serviceFactory\n\t\tthis.emitter = emitter\n\t\tthis.attacher = attacher\n\t\tthis.actionExecuter = actionExecuter\n\t}\n\n\tpublic static async resetApiClients() {\n\t\tfor (const key in this.apiClients) {\n\t\t\tawait (await this.apiClients[key]).disconnect()\n\t\t}\n\n\t\tthis.apiClients = {}\n\t}\n\n\tpublic getAttacher() {\n\t\treturn this.attacher\n\t}\n\n\tpublic getActionExecuter() {\n\t\treturn this.actionExecuter\n\t}\n\n\tpublic async on(...args: any[]) {\n\t\t//@ts-ignore\n\t\treturn this.emitter.on(...args)\n\t}\n\n\tpublic async off(...args: any[]) {\n\t\t//@ts-ignore\n\t\treturn this.emitter.off(...args)\n\t}\n\n\tpublic async emit(...args: any[]) {\n\t\t//@ts-ignore\n\t\treturn this.emitter.emit(...args)\n\t}\n\n\tpublic async installFeatures(options: InstallFeatureOptions) {\n\t\treturn this.featureInstaller.install(options)\n\t}\n\n\tpublic getFeature<C extends FeatureCode>(code: C) {\n\t\treturn this.featureInstaller.getFeature(code)\n\t}\n\n\tpublic async checkHealth(\n\t\toptions?: HealthOptions\n\t): Promise<HealthCheckResults> {\n\t\tconst isInstalled = await this.featureInstaller.isInstalled('skill')\n\n\t\tif (!isInstalled) {\n\t\t\treturn {\n\t\t\t\tskill: {\n\t\t\t\t\tstatus: 'failed',\n\t\t\t\t\terrors: [\n\t\t\t\t\t\tnew SpruceError({\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tcode: 'SKILL_NOT_INSTALLED',\n\t\t\t\t\t\t}),\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t}\n\t\t}\n\n\t\ttry {\n\t\t\tconst commandService = this.serviceFactory.Service(this.cwd, 'command')\n\t\t\tconst command =\n\t\t\t\toptions?.shouldRunOnSourceFiles === false\n\t\t\t\t\t? 'yarn health'\n\t\t\t\t\t: 'yarn health.local'\n\t\t\tconst results = await commandService.execute(command)\n\t\t\tconst resultParts = results.stdout.split(HEALTH_DIVIDER)\n\n\t\t\treturn JSON.parse(resultParts[1]) as HealthCheckResults\n\t\t} catch (originalError: any) {\n\t\t\tconst error = new SpruceError({\n\t\t\t\tcode: 'BOOT_ERROR',\n\t\t\t\toriginalError,\n\t\t\t})\n\n\t\t\treturn {\n\t\t\t\tskill: {\n\t\t\t\t\tstatus: 'failed',\n\t\t\t\t\terrors: [error],\n\t\t\t\t},\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic static async Boot(options?: CliBootOptions): Promise<CliInterface> {\n\t\tconst program = options?.program\n\t\tconst emitter = options?.emitter ?? CliGlobalEmitter.Emitter()\n\n\t\tlet cwd = options?.cwd ?? process.cwd()\n\n\t\tImportService.enableCaching()\n\n\t\tconst serviceFactory = new ServiceFactory()\n\t\tconst apiClientFactory =\n\t\t\toptions?.apiClientFactory ??\n\t\t\tCli.buildApiClientFactory(cwd, serviceFactory, options)\n\n\t\tconst storeFactory = new StoreFactory({\n\t\t\tcwd,\n\t\t\tserviceFactory,\n\t\t\thomeDir: options?.homeDir ?? osUtil.homedir(),\n\t\t\temitter,\n\t\t\tapiClientFactory,\n\t\t})\n\n\t\tconst ui = options?.graphicsInterface ?? new TerminalInterface(cwd)\n\t\tlet featureInstaller: FeatureInstaller | undefined\n\n\t\tconst writerFactory = new WriterFactory({\n\t\t\ttemplates,\n\t\t\tui,\n\t\t\tsettings: serviceFactory.Service(cwd, 'settings'),\n\t\t\tlinter: serviceFactory.Service(cwd, 'lint'),\n\t\t})\n\n\t\tconst optionOverrides = this.loadOptionOverrides(\n\t\t\tserviceFactory.Service(cwd, 'pkg')\n\t\t)\n\n\t\tconst blockedCommands = this.loadCommandBlocks(\n\t\t\tserviceFactory.Service(cwd, 'pkg')\n\t\t)\n\n\t\tconst actionFactory = new ActionFactory({\n\t\t\tui,\n\t\t\temitter,\n\t\t\tapiClientFactory,\n\t\t\tcwd,\n\t\t\tserviceFactory,\n\t\t\tstoreFactory,\n\t\t\ttemplates,\n\t\t\twriterFactory,\n\t\t\tblockedCommands,\n\t\t\toptionOverrides,\n\t\t})\n\n\t\tconst actionExecuter = new ActionExecuter({\n\t\t\tactionFactory,\n\t\t\tui,\n\t\t\temitter,\n\t\t\t//@ts-ignore\n\t\t\tfeatureInstallerFactory: () => featureInstaller,\n\t\t})\n\n\t\tfeatureInstaller =\n\t\t\toptions?.featureInstaller ??\n\t\t\tFeatureInstallerFactory.WithAllFeatures({\n\t\t\t\tcwd,\n\t\t\t\tserviceFactory,\n\t\t\t\tstoreFactory,\n\t\t\t\tui,\n\t\t\t\temitter,\n\t\t\t\tapiClientFactory,\n\t\t\t\tactionExecuter,\n\t\t\t})\n\n\t\tlet attacher: FeatureCommandAttacher | undefined\n\n\t\tif (program) {\n\t\t\tattacher = new FeatureCommandAttacher({\n\t\t\t\tprogram,\n\t\t\t\tui,\n\t\t\t\tactionExecuter,\n\t\t\t})\n\n\t\t\tconst codes = FeatureInstallerFactory.featureCodes\n\n\t\t\tfor (const code of codes) {\n\t\t\t\tconst feature = featureInstaller.getFeature(code)\n\t\t\t\tawait attacher.attachFeature(feature)\n\t\t\t}\n\n\t\t\tprogram.commands.sort((a: any, b: any) => a._name.localeCompare(b._name))\n\n\t\t\tprogram.action((_, command) => {\n\t\t\t\tthrow new SpruceError({\n\t\t\t\t\tcode: 'INVALID_COMMAND',\n\t\t\t\t\targs: command.args || [],\n\t\t\t\t})\n\t\t\t})\n\t\t}\n\n\t\tconst cli = new Cli(\n\t\t\tcwd,\n\t\t\tfeatureInstaller,\n\t\t\tserviceFactory,\n\t\t\temitter,\n\t\t\tattacher,\n\t\t\tactionExecuter\n\t\t)\n\n\t\treturn cli as CliInterface\n\t}\n\n\tprivate static loadCommandBlocks(pkg: PkgService): BlockedCommands {\n\t\tlet blocks: BlockedCommands = {}\n\t\tif (pkg.doesExist()) {\n\t\t\tblocks = pkg.get('skill.blockedCommands') ?? {}\n\t\t}\n\t\treturn blocks\n\t}\n\n\tprivate static loadOptionOverrides(pkg: PkgService): OptionOverrides {\n\t\tconst mapped: OptionOverrides = {}\n\n\t\tif (pkg.doesExist()) {\n\t\t\tconst overrides = pkg.get('skill.commandOverrides')\n\n\t\t\tObject.keys(overrides ?? {}).forEach((command) => {\n\t\t\t\tconst options = argParserUtil.parse(overrides[command])\n\t\t\t\tmapped[command] = options\n\t\t\t})\n\t\t}\n\t\treturn mapped\n\t}\n\n\tpublic static buildApiClientFactory(\n\t\tcwd: string,\n\t\tserviceFactory: ServiceFactory,\n\t\tbootOptions?: CliBootOptions & ConnectionOptions\n\t): ApiClientFactory {\n\t\tconst apiClientFactory = async (options?: ApiClientFactoryOptions) => {\n\t\t\tconst key = apiClientUtil.generateClientCacheKey(options)\n\n\t\t\tif (!Cli.apiClients[key]) {\n\t\t\t\tCli.apiClients[key] = Cli.connectToApi(\n\t\t\t\t\tcwd,\n\t\t\t\t\tserviceFactory,\n\t\t\t\t\toptions,\n\t\t\t\t\tbootOptions\n\t\t\t\t)\n\t\t\t}\n\n\t\t\treturn Cli.apiClients[key]\n\t\t}\n\n\t\treturn apiClientFactory\n\t}\n\n\tprivate static async connectToApi(\n\t\tcwd: string,\n\t\tserviceFactory: ServiceFactory,\n\t\toptions?: ApiClientFactoryOptions,\n\t\tbootOptions?: CliBootOptions & ConnectionOptions\n\t): Promise<ApiClient> {\n\t\tconst connect = bootOptions?.apiClientFactory\n\t\t\t? bootOptions.apiClientFactory\n\t\t\t: async () => {\n\t\t\t\t\tconst eventsContracts =\n\t\t\t\t\t\trequire('#spruce/events/events.contract').default\n\n\t\t\t\t\tconst client: ApiClient = await MercuryClientFactory.Client({\n\t\t\t\t\t\tcontracts: eventsContracts as any,\n\t\t\t\t\t\thost: bootOptions?.host ?? DEFAULT_HOST,\n\t\t\t\t\t\tallowSelfSignedCrt: true,\n\t\t\t\t\t\t...bootOptions,\n\t\t\t\t\t})\n\n\t\t\t\t\treturn client\n\t\t\t }\n\n\t\tconst {\n\t\t\tshouldAuthAsCurrentSkill = false,\n\t\t\tshouldAuthAsLoggedInPerson = true,\n\t\t} = options ?? {}\n\n\t\tconst client = await connect()\n\n\t\tlet auth: SpruceSchemas.Mercury.v2020_12_25.AuthenticateEmitPayload = {}\n\n\t\tconst pkg = serviceFactory.Service(cwd, 'pkg')\n\t\tconst doesPkgExist = pkg.doesExist()\n\n\t\tif (options?.skillId && options?.apiKey) {\n\t\t\tauth = {\n\t\t\t\tskillId: options.skillId,\n\t\t\t\tapiKey: options.apiKey,\n\t\t\t}\n\t\t} else if (shouldAuthAsCurrentSkill) {\n\t\t\tconst skill = serviceFactory.Service(cwd, 'auth').getCurrentSkill()\n\n\t\t\tif (skill) {\n\t\t\t\tauth = {\n\t\t\t\t\tskillId: skill.id,\n\t\t\t\t\tapiKey: skill.apiKey,\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (doesPkgExist && shouldAuthAsLoggedInPerson) {\n\t\t\tconst person = serviceFactory.Service(cwd, 'auth').getLoggedInPerson()\n\n\t\t\tif (person) {\n\t\t\t\tauth.token = person.token\n\t\t\t}\n\t\t}\n\n\t\tif (Object.keys(auth).length > 0) {\n\t\t\tawait client.authenticate({\n\t\t\t\t...(auth as any),\n\t\t\t})\n\n\t\t\t//@ts-ignore\n\t\t\tclient.auth = auth\n\t\t}\n\n\t\treturn client\n\t}\n}\n\nexport async function run(argv: string[] = []): Promise<void> {\n\tconst program = new Command()\n\tlet cwd = process.cwd()\n\n\tprogram.storeOptionsAsProperties(false)\n\tprogram.option('--no-color', 'Disable color output in the console')\n\tprogram.option(\n\t\t'-d, --directory <path>',\n\t\t'The working directory to execute the command'\n\t)\n\tprogram.option('-v, --version', 'The version of the cli')\n\n\tconst dirIdx = process.argv.findIndex(\n\t\t(v) => v === '--directory' || v === '-d'\n\t)\n\n\tif (dirIdx > -1) {\n\t\tconst dir = process.argv[dirIdx + 1]\n\t\tconst newCwd = diskUtil.resolvePath(cwd, dir)\n\t\tcwd = newCwd\n\t}\n\n\tconst terminal = new TerminalInterface(\n\t\tcwd,\n\t\tprocess.env.CLI_RENDER_STACK_TRACES !== 'false'\n\t)\n\tterminal.clear()\n\tterminal.renderHero(CLI_HERO)\n\n\tconst isAskingForVersion =\n\t\tprocess.argv.findIndex((v) => v === '--version' || v === '-v') > -1\n\n\tif (isAskingForVersion) {\n\t\tconst json = require('../package.json')\n\t\tterminal.renderHeadline(`Version ${json.version}`)\n\t\treturn\n\t}\n\n\tawait Cli.Boot({\n\t\tprogram,\n\t\tcwd,\n\t\thost: process.env.HOST,\n\t\tgraphicsInterface: terminal,\n\t})\n\n\tawait setupInFlightEntertainment(terminal)\n\n\tconst command = await program.parseAsync(argv)\n\n\t//@ts-ignore\n\tconst results = await command._actionResults[0]\n\n\tfor (const client of MercuryClientFactory.getClients()) {\n\t\tawait client.disconnect()\n\t}\n\n\treturn results\n}\n\nasync function setupInFlightEntertainment(ui: TerminalInterface) {\n\tif (\n\t\tTerminalInterface.doesSupportColor() &&\n\t\tprocess.env.ENABLE_INSTALL_INTERTAINMENT !== 'false'\n\t) {\n\t\tconst command = new CommandService(diskUtil.resolvePath(__dirname, '../'))\n\t\tInFlightEntertainment.setup({ command, ui })\n\n\t\tFeatureInstaller.startInFlightIntertainmentHandler = (didUpdateHandler) => {\n\t\t\tInFlightEntertainment.start()\n\t\t\tdidUpdateHandler((message) => {\n\t\t\t\tInFlightEntertainment.writeStatus(message)\n\t\t\t})\n\t\t}\n\n\t\tFeatureInstaller.stopInFlightIntertainmentHandler = () => {\n\t\t\tInFlightEntertainment.stop()\n\t\t}\n\t}\n}\n"],"file":"cli.js"}
|
|
1
|
+
{"version":3,"sources":["../src/cli.ts"],"names":["Cli","cwd","featureInstaller","serviceFactory","emitter","attacher","actionExecuter","on","off","emit","emitAndFlattenResponses","options","install","code","getFeature","isInstalled","skill","status","errors","SpruceError","commandService","Service","command","shouldRunOnSourceFiles","execute","results","resultParts","stdout","split","HEALTH_DIVIDER","JSON","parse","error","originalError","apiClients","key","disconnect","program","CliGlobalEmitter","Emitter","process","ImportService","enableCaching","ServiceFactory","apiClientFactory","buildApiClientFactory","storeFactory","StoreFactory","homeDir","osUtil","homedir","ui","graphicsInterface","TerminalInterface","writerFactory","WriterFactory","templates","settings","linter","optionOverrides","loadOptionOverrides","blockedCommands","loadCommandBlocks","actionFactory","ActionFactory","ActionExecuter","featureInstallerFactory","FeatureInstallerFactory","WithAllFeatures","FeatureCommandAttacher","codes","featureCodes","feature","attachFeature","commands","sort","a","b","_name","localeCompare","action","_","args","cli","pkg","blocks","doesExist","get","mapped","overrides","Object","keys","forEach","argParserUtil","bootOptions","apiClientUtil","generateClientCacheKey","connectToApi","connect","eventsContracts","require","MercuryClientFactory","Client","contracts","host","DEFAULT_HOST","allowSelfSignedCrt","client","shouldAuthAsCurrentSkill","shouldAuthAsLoggedInPerson","auth","doesPkgExist","skillId","apiKey","getCurrentSkill","id","person","getLoggedInPerson","token","length","authenticate","run","argv","Command","storeOptionsAsProperties","option","dirIdx","findIndex","v","dir","newCwd","diskUtil","resolvePath","terminal","env","CLI_RENDER_STACK_TRACES","clear","renderHero","CLI_HERO","isAskingForVersion","json","renderHeadline","version","Boot","HOST","setupInFlightEntertainment","parseAsync","_actionResults","getClients","doesSupportColor","ENABLE_INSTALL_INTERTAINMENT","CommandService","__dirname","InFlightEntertainment","setup","FeatureInstaller","startInFlightIntertainmentHandler","didUpdateHandler","start","message","writeStatus","stopInFlightIntertainmentHandler","stop"],"mappings":"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","sourcesContent":["import osUtil from 'os'\nimport {\n\tConnectionOptions,\n\tMercuryClientFactory,\n} from '@sprucelabs/mercury-client'\nimport { MercuryEventEmitter, SpruceSchemas } from '@sprucelabs/mercury-types'\nimport {\n\tdiskUtil,\n\tHealthCheckResults,\n\tHEALTH_DIVIDER,\n} from '@sprucelabs/spruce-skill-utils'\nimport { templates } from '@sprucelabs/spruce-templates'\nimport { Command, CommanderStatic } from 'commander'\nimport './addons/filePrompt.addon'\nimport { CLI_HERO, DEFAULT_HOST } from './constants'\nimport SpruceError from './errors/SpruceError'\nimport ActionExecuter from './features/ActionExecuter'\nimport ActionFactory from './features/ActionFactory'\nimport FeatureCommandAttacher, {\n\tBlockedCommands,\n\tOptionOverrides,\n} from './features/FeatureCommandAttacher'\nimport FeatureInstaller from './features/FeatureInstaller'\nimport FeatureInstallerFactory from './features/FeatureInstallerFactory'\nimport { FeatureCode, InstallFeatureOptions } from './features/features.types'\nimport CliGlobalEmitter, {\n\tGlobalEmitter,\n\tGlobalEventContract,\n} from './GlobalEmitter'\nimport InFlightEntertainment from './InFlightEntertainment'\nimport TerminalInterface from './interfaces/TerminalInterface'\nimport CommandService from './services/CommandService'\nimport ImportService from './services/ImportService'\nimport PkgService from './services/PkgService'\nimport ServiceFactory from './services/ServiceFactory'\nimport StoreFactory from './stores/StoreFactory'\nimport {\n\tApiClient,\n\tApiClientFactory,\n\tApiClientFactoryOptions,\n} from './types/apiClient.types'\nimport { GraphicsInterface } from './types/cli.types'\nimport apiClientUtil from './utilities/apiClient.utility'\nimport { argParserUtil } from './utilities/argParser.utility'\nimport WriterFactory from './writers/WriterFactory'\n\ninterface HealthOptions {\n\tshouldRunOnSourceFiles?: boolean\n}\n\nexport interface CliInterface extends MercuryEventEmitter<GlobalEventContract> {\n\tinstallFeatures: FeatureInstaller['install']\n\tgetFeature: FeatureInstaller['getFeature']\n\tcheckHealth(options?: HealthOptions): Promise<HealthCheckResults>\n}\n\nexport interface CliBootOptions {\n\tcwd?: string\n\thomeDir?: string\n\tprogram?: CommanderStatic['program']\n\tgraphicsInterface?: GraphicsInterface\n\temitter?: GlobalEmitter\n\tapiClientFactory?: ApiClientFactory\n\tfeatureInstaller?: FeatureInstaller\n\thost?: string\n}\n\ntype PromiseCache = Record<string, Promise<ApiClient>>\n\nexport default class Cli implements CliInterface {\n\tprivate cwd: string\n\tprivate featureInstaller: FeatureInstaller\n\tprivate serviceFactory: ServiceFactory\n\tpublic readonly emitter: GlobalEmitter\n\tprivate static apiClients: PromiseCache = {}\n\tprivate attacher?: FeatureCommandAttacher\n\tprivate actionExecuter?: ActionExecuter\n\n\tprivate constructor(\n\t\tcwd: string,\n\t\tfeatureInstaller: FeatureInstaller,\n\t\tserviceFactory: ServiceFactory,\n\t\temitter: GlobalEmitter,\n\t\tattacher?: FeatureCommandAttacher,\n\t\tactionExecuter?: ActionExecuter\n\t) {\n\t\tthis.cwd = cwd\n\t\tthis.featureInstaller = featureInstaller\n\t\tthis.serviceFactory = serviceFactory\n\t\tthis.emitter = emitter\n\t\tthis.attacher = attacher\n\t\tthis.actionExecuter = actionExecuter\n\t}\n\n\tpublic static async resetApiClients() {\n\t\tfor (const key in this.apiClients) {\n\t\t\tawait (await this.apiClients[key]).disconnect()\n\t\t}\n\n\t\tthis.apiClients = {}\n\t}\n\n\tpublic getAttacher() {\n\t\treturn this.attacher\n\t}\n\n\tpublic getActionExecuter() {\n\t\treturn this.actionExecuter\n\t}\n\n\tpublic async on(...args: any[]) {\n\t\t//@ts-ignore\n\t\treturn this.emitter.on(...args)\n\t}\n\n\tpublic async off(...args: any[]) {\n\t\t//@ts-ignore\n\t\treturn this.emitter.off(...args)\n\t}\n\n\tpublic async emit(...args: any[]) {\n\t\t//@ts-ignore\n\t\treturn this.emitter.emit(...args)\n\t}\n\n\tpublic async emitAndFlattenResponses(...args: any[]) {\n\t\t//@ts-ignore\n\t\treturn this.emitter.emitAndFlattenResponses(...args)\n\t}\n\n\tpublic async installFeatures(options: InstallFeatureOptions) {\n\t\treturn this.featureInstaller.install(options)\n\t}\n\n\tpublic getFeature<C extends FeatureCode>(code: C) {\n\t\treturn this.featureInstaller.getFeature(code)\n\t}\n\n\tpublic async checkHealth(\n\t\toptions?: HealthOptions\n\t): Promise<HealthCheckResults> {\n\t\tconst isInstalled = await this.featureInstaller.isInstalled('skill')\n\n\t\tif (!isInstalled) {\n\t\t\treturn {\n\t\t\t\tskill: {\n\t\t\t\t\tstatus: 'failed',\n\t\t\t\t\terrors: [\n\t\t\t\t\t\tnew SpruceError({\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tcode: 'SKILL_NOT_INSTALLED',\n\t\t\t\t\t\t}),\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t}\n\t\t}\n\n\t\ttry {\n\t\t\tconst commandService = this.serviceFactory.Service(this.cwd, 'command')\n\t\t\tconst command =\n\t\t\t\toptions?.shouldRunOnSourceFiles === false\n\t\t\t\t\t? 'yarn health'\n\t\t\t\t\t: 'yarn health.local'\n\t\t\tconst results = await commandService.execute(command)\n\t\t\tconst resultParts = results.stdout.split(HEALTH_DIVIDER)\n\n\t\t\treturn JSON.parse(resultParts[1]) as HealthCheckResults\n\t\t} catch (originalError: any) {\n\t\t\tconst error = new SpruceError({\n\t\t\t\tcode: 'BOOT_ERROR',\n\t\t\t\toriginalError,\n\t\t\t})\n\n\t\t\treturn {\n\t\t\t\tskill: {\n\t\t\t\t\tstatus: 'failed',\n\t\t\t\t\terrors: [error],\n\t\t\t\t},\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic static async Boot(options?: CliBootOptions): Promise<CliInterface> {\n\t\tconst program = options?.program\n\t\tconst emitter = options?.emitter ?? CliGlobalEmitter.Emitter()\n\n\t\tlet cwd = options?.cwd ?? process.cwd()\n\n\t\tImportService.enableCaching()\n\n\t\tconst serviceFactory = new ServiceFactory()\n\t\tconst apiClientFactory =\n\t\t\toptions?.apiClientFactory ??\n\t\t\tCli.buildApiClientFactory(cwd, serviceFactory, options)\n\n\t\tconst storeFactory = new StoreFactory({\n\t\t\tcwd,\n\t\t\tserviceFactory,\n\t\t\thomeDir: options?.homeDir ?? osUtil.homedir(),\n\t\t\temitter,\n\t\t\tapiClientFactory,\n\t\t})\n\n\t\tconst ui = options?.graphicsInterface ?? new TerminalInterface(cwd)\n\t\tlet featureInstaller: FeatureInstaller | undefined\n\n\t\tconst writerFactory = new WriterFactory({\n\t\t\ttemplates,\n\t\t\tui,\n\t\t\tsettings: serviceFactory.Service(cwd, 'settings'),\n\t\t\tlinter: serviceFactory.Service(cwd, 'lint'),\n\t\t})\n\n\t\tconst optionOverrides = this.loadOptionOverrides(\n\t\t\tserviceFactory.Service(cwd, 'pkg')\n\t\t)\n\n\t\tconst blockedCommands = this.loadCommandBlocks(\n\t\t\tserviceFactory.Service(cwd, 'pkg')\n\t\t)\n\n\t\tconst actionFactory = new ActionFactory({\n\t\t\tui,\n\t\t\temitter,\n\t\t\tapiClientFactory,\n\t\t\tcwd,\n\t\t\tserviceFactory,\n\t\t\tstoreFactory,\n\t\t\ttemplates,\n\t\t\twriterFactory,\n\t\t\tblockedCommands,\n\t\t\toptionOverrides,\n\t\t})\n\n\t\tconst actionExecuter = new ActionExecuter({\n\t\t\tactionFactory,\n\t\t\tui,\n\t\t\temitter,\n\t\t\t//@ts-ignore\n\t\t\tfeatureInstallerFactory: () => featureInstaller,\n\t\t})\n\n\t\tfeatureInstaller =\n\t\t\toptions?.featureInstaller ??\n\t\t\tFeatureInstallerFactory.WithAllFeatures({\n\t\t\t\tcwd,\n\t\t\t\tserviceFactory,\n\t\t\t\tstoreFactory,\n\t\t\t\tui,\n\t\t\t\temitter,\n\t\t\t\tapiClientFactory,\n\t\t\t\tactionExecuter,\n\t\t\t})\n\n\t\tlet attacher: FeatureCommandAttacher | undefined\n\n\t\tif (program) {\n\t\t\tattacher = new FeatureCommandAttacher({\n\t\t\t\tprogram,\n\t\t\t\tui,\n\t\t\t\tactionExecuter,\n\t\t\t})\n\n\t\t\tconst codes = FeatureInstallerFactory.featureCodes\n\n\t\t\tfor (const code of codes) {\n\t\t\t\tconst feature = featureInstaller.getFeature(code)\n\t\t\t\tawait attacher.attachFeature(feature)\n\t\t\t}\n\n\t\t\tprogram.commands.sort((a: any, b: any) => a._name.localeCompare(b._name))\n\n\t\t\tprogram.action((_, command) => {\n\t\t\t\tthrow new SpruceError({\n\t\t\t\t\tcode: 'INVALID_COMMAND',\n\t\t\t\t\targs: command.args || [],\n\t\t\t\t})\n\t\t\t})\n\t\t}\n\n\t\tconst cli = new Cli(\n\t\t\tcwd,\n\t\t\tfeatureInstaller,\n\t\t\tserviceFactory,\n\t\t\temitter,\n\t\t\tattacher,\n\t\t\tactionExecuter\n\t\t)\n\n\t\treturn cli as CliInterface\n\t}\n\n\tprivate static loadCommandBlocks(pkg: PkgService): BlockedCommands {\n\t\tlet blocks: BlockedCommands = {}\n\t\tif (pkg.doesExist()) {\n\t\t\tblocks = pkg.get('skill.blockedCommands') ?? {}\n\t\t}\n\t\treturn blocks\n\t}\n\n\tprivate static loadOptionOverrides(pkg: PkgService): OptionOverrides {\n\t\tconst mapped: OptionOverrides = {}\n\n\t\tif (pkg.doesExist()) {\n\t\t\tconst overrides = pkg.get('skill.commandOverrides')\n\n\t\t\tObject.keys(overrides ?? {}).forEach((command) => {\n\t\t\t\tconst options = argParserUtil.parse(overrides[command])\n\t\t\t\tmapped[command] = options\n\t\t\t})\n\t\t}\n\t\treturn mapped\n\t}\n\n\tpublic static buildApiClientFactory(\n\t\tcwd: string,\n\t\tserviceFactory: ServiceFactory,\n\t\tbootOptions?: CliBootOptions & ConnectionOptions\n\t): ApiClientFactory {\n\t\tconst apiClientFactory = async (options?: ApiClientFactoryOptions) => {\n\t\t\tconst key = apiClientUtil.generateClientCacheKey(options)\n\n\t\t\tif (!Cli.apiClients[key]) {\n\t\t\t\tCli.apiClients[key] = Cli.connectToApi(\n\t\t\t\t\tcwd,\n\t\t\t\t\tserviceFactory,\n\t\t\t\t\toptions,\n\t\t\t\t\tbootOptions\n\t\t\t\t)\n\t\t\t}\n\n\t\t\treturn Cli.apiClients[key]\n\t\t}\n\n\t\treturn apiClientFactory\n\t}\n\n\tprivate static async connectToApi(\n\t\tcwd: string,\n\t\tserviceFactory: ServiceFactory,\n\t\toptions?: ApiClientFactoryOptions,\n\t\tbootOptions?: CliBootOptions & ConnectionOptions\n\t): Promise<ApiClient> {\n\t\tconst connect = bootOptions?.apiClientFactory\n\t\t\t? bootOptions.apiClientFactory\n\t\t\t: async () => {\n\t\t\t\t\tconst eventsContracts =\n\t\t\t\t\t\trequire('#spruce/events/events.contract').default\n\n\t\t\t\t\tconst client: ApiClient = await MercuryClientFactory.Client({\n\t\t\t\t\t\tcontracts: eventsContracts as any,\n\t\t\t\t\t\thost: bootOptions?.host ?? DEFAULT_HOST,\n\t\t\t\t\t\tallowSelfSignedCrt: true,\n\t\t\t\t\t\t...bootOptions,\n\t\t\t\t\t})\n\n\t\t\t\t\treturn client\n\t\t\t }\n\n\t\tconst {\n\t\t\tshouldAuthAsCurrentSkill = false,\n\t\t\tshouldAuthAsLoggedInPerson = true,\n\t\t} = options ?? {}\n\n\t\tconst client = await connect()\n\n\t\tlet auth: SpruceSchemas.Mercury.v2020_12_25.AuthenticateEmitPayload = {}\n\n\t\tconst pkg = serviceFactory.Service(cwd, 'pkg')\n\t\tconst doesPkgExist = pkg.doesExist()\n\n\t\tif (options?.skillId && options?.apiKey) {\n\t\t\tauth = {\n\t\t\t\tskillId: options.skillId,\n\t\t\t\tapiKey: options.apiKey,\n\t\t\t}\n\t\t} else if (shouldAuthAsCurrentSkill) {\n\t\t\tconst skill = serviceFactory.Service(cwd, 'auth').getCurrentSkill()\n\n\t\t\tif (skill) {\n\t\t\t\tauth = {\n\t\t\t\t\tskillId: skill.id,\n\t\t\t\t\tapiKey: skill.apiKey,\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (doesPkgExist && shouldAuthAsLoggedInPerson) {\n\t\t\tconst person = serviceFactory.Service(cwd, 'auth').getLoggedInPerson()\n\n\t\t\tif (person) {\n\t\t\t\tauth.token = person.token\n\t\t\t}\n\t\t}\n\n\t\tif (Object.keys(auth).length > 0) {\n\t\t\tawait client.authenticate({\n\t\t\t\t...(auth as any),\n\t\t\t})\n\n\t\t\t//@ts-ignore\n\t\t\tclient.auth = auth\n\t\t}\n\n\t\treturn client\n\t}\n}\n\nexport async function run(argv: string[] = []): Promise<void> {\n\tconst program = new Command()\n\tlet cwd = process.cwd()\n\n\tprogram.storeOptionsAsProperties(false)\n\tprogram.option('--no-color', 'Disable color output in the console')\n\tprogram.option(\n\t\t'-d, --directory <path>',\n\t\t'The working directory to execute the command'\n\t)\n\tprogram.option('-v, --version', 'The version of the cli')\n\n\tconst dirIdx = process.argv.findIndex(\n\t\t(v) => v === '--directory' || v === '-d'\n\t)\n\n\tif (dirIdx > -1) {\n\t\tconst dir = process.argv[dirIdx + 1]\n\t\tconst newCwd = diskUtil.resolvePath(cwd, dir)\n\t\tcwd = newCwd\n\t}\n\n\tconst terminal = new TerminalInterface(\n\t\tcwd,\n\t\tprocess.env.CLI_RENDER_STACK_TRACES !== 'false'\n\t)\n\tterminal.clear()\n\tterminal.renderHero(CLI_HERO)\n\n\tconst isAskingForVersion =\n\t\tprocess.argv.findIndex((v) => v === '--version' || v === '-v') > -1\n\n\tif (isAskingForVersion) {\n\t\tconst json = require('../package.json')\n\t\tterminal.renderHeadline(`Version ${json.version}`)\n\t\treturn\n\t}\n\n\tawait Cli.Boot({\n\t\tprogram,\n\t\tcwd,\n\t\thost: process.env.HOST,\n\t\tgraphicsInterface: terminal,\n\t})\n\n\tawait setupInFlightEntertainment(terminal)\n\n\tconst command = await program.parseAsync(argv)\n\n\t//@ts-ignore\n\tconst results = await command._actionResults[0]\n\n\tfor (const client of MercuryClientFactory.getClients()) {\n\t\tawait client.disconnect()\n\t}\n\n\treturn results\n}\n\nasync function setupInFlightEntertainment(ui: TerminalInterface) {\n\tif (\n\t\tTerminalInterface.doesSupportColor() &&\n\t\tprocess.env.ENABLE_INSTALL_INTERTAINMENT !== 'false'\n\t) {\n\t\tconst command = new CommandService(diskUtil.resolvePath(__dirname, '../'))\n\t\tInFlightEntertainment.setup({ command, ui })\n\n\t\tFeatureInstaller.startInFlightIntertainmentHandler = (didUpdateHandler) => {\n\t\t\tInFlightEntertainment.start()\n\t\t\tdidUpdateHandler((message) => {\n\t\t\t\tInFlightEntertainment.writeStatus(message)\n\t\t\t})\n\t\t}\n\n\t\tFeatureInstaller.stopInFlightIntertainmentHandler = () => {\n\t\t\tInFlightEntertainment.stop()\n\t\t}\n\t}\n}\n"],"file":"cli.js"}
|
package/package.json
CHANGED
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
]
|
|
19
19
|
},
|
|
20
20
|
"license": "MIT",
|
|
21
|
-
"version": "14.29.
|
|
21
|
+
"version": "14.29.30",
|
|
22
22
|
"bin": {
|
|
23
23
|
"spruce": "./build/index.js"
|
|
24
24
|
},
|
|
@@ -72,29 +72,29 @@
|
|
|
72
72
|
"watch.tsc": "tsc -w --sourceMap"
|
|
73
73
|
},
|
|
74
74
|
"dependencies": {
|
|
75
|
-
"@babel/cli": "^7.16.
|
|
75
|
+
"@babel/cli": "^7.16.8",
|
|
76
76
|
"@babel/plugin-proposal-decorators": "^7.16.7",
|
|
77
77
|
"@babel/runtime": "^7.16.7",
|
|
78
78
|
"@jest/reporters": "^27.4.6",
|
|
79
79
|
"@sprucelabs/error": "^5.0.370",
|
|
80
|
-
"@sprucelabs/heartwood-view-controllers": "^55.
|
|
80
|
+
"@sprucelabs/heartwood-view-controllers": "^55.10.21",
|
|
81
81
|
"@sprucelabs/jest-json-reporter": "^6.0.305",
|
|
82
|
-
"@sprucelabs/mercury-client": "^19.
|
|
83
|
-
"@sprucelabs/mercury-event-emitter": "^19.
|
|
84
|
-
"@sprucelabs/mercury-types": "^26.
|
|
85
|
-
"@sprucelabs/schema": "^25.6.
|
|
86
|
-
"@sprucelabs/spruce-core-schemas": "^22.
|
|
87
|
-
"@sprucelabs/spruce-event-plugin": "^
|
|
88
|
-
"@sprucelabs/spruce-event-utils": "^17.1.
|
|
89
|
-
"@sprucelabs/spruce-skill-booter": "^
|
|
90
|
-
"@sprucelabs/spruce-skill-utils": "^22.2.
|
|
91
|
-
"@sprucelabs/spruce-templates": "^14.29.
|
|
92
|
-
"@typescript-eslint/eslint-plugin": "^5.9.
|
|
93
|
-
"@typescript-eslint/parser": "^5.9.
|
|
82
|
+
"@sprucelabs/mercury-client": "^19.3.24",
|
|
83
|
+
"@sprucelabs/mercury-event-emitter": "^19.3.24",
|
|
84
|
+
"@sprucelabs/mercury-types": "^26.2.40",
|
|
85
|
+
"@sprucelabs/schema": "^25.6.41",
|
|
86
|
+
"@sprucelabs/spruce-core-schemas": "^22.8.6",
|
|
87
|
+
"@sprucelabs/spruce-event-plugin": "^22.0.14",
|
|
88
|
+
"@sprucelabs/spruce-event-utils": "^17.1.506",
|
|
89
|
+
"@sprucelabs/spruce-skill-booter": "^22.0.14",
|
|
90
|
+
"@sprucelabs/spruce-skill-utils": "^22.2.166",
|
|
91
|
+
"@sprucelabs/spruce-templates": "^14.29.30",
|
|
92
|
+
"@typescript-eslint/eslint-plugin": "^5.9.1",
|
|
93
|
+
"@typescript-eslint/parser": "^5.9.1",
|
|
94
94
|
"cfonts": "^2.10.0",
|
|
95
95
|
"chalk": "^4.1.2",
|
|
96
96
|
"chokidar": "^3.5.2",
|
|
97
|
-
"cli-table3": "^0.6.
|
|
97
|
+
"cli-table3": "^0.6.1",
|
|
98
98
|
"commander": "^7.2.0",
|
|
99
99
|
"core-js": "^3.20.2",
|
|
100
100
|
"emphasize": "^4.2.0",
|
|
@@ -119,22 +119,22 @@
|
|
|
119
119
|
"uuid": "^8.3.2"
|
|
120
120
|
},
|
|
121
121
|
"devDependencies": {
|
|
122
|
-
"@sprucelabs/data-stores": "^7.2.
|
|
123
|
-
"@sprucelabs/jest-sheets-reporter": "^1.2.
|
|
124
|
-
"@sprucelabs/mercury-core-events": "^1.7.
|
|
122
|
+
"@sprucelabs/data-stores": "^7.2.170",
|
|
123
|
+
"@sprucelabs/jest-sheets-reporter": "^1.2.302",
|
|
124
|
+
"@sprucelabs/mercury-core-events": "^1.7.95",
|
|
125
125
|
"@sprucelabs/resolve-path-aliases": "^1.0.251",
|
|
126
|
-
"@sprucelabs/spruce-conversation-plugin": "^
|
|
127
|
-
"@sprucelabs/spruce-deploy-plugin": "^
|
|
128
|
-
"@sprucelabs/spruce-store-plugin": "^
|
|
129
|
-
"@sprucelabs/spruce-test-fixtures": "^
|
|
126
|
+
"@sprucelabs/spruce-conversation-plugin": "^22.0.14",
|
|
127
|
+
"@sprucelabs/spruce-deploy-plugin": "^22.0.14",
|
|
128
|
+
"@sprucelabs/spruce-store-plugin": "^22.0.14",
|
|
129
|
+
"@sprucelabs/spruce-test-fixtures": "^22.0.14",
|
|
130
130
|
"@sprucelabs/test": "^7.7.271",
|
|
131
131
|
"@sprucelabs/test-utils": "^3.0.372",
|
|
132
132
|
"@types/blessed": "^0.1.19",
|
|
133
|
-
"@types/eslint": "^8.2.
|
|
133
|
+
"@types/eslint": "^8.2.2",
|
|
134
134
|
"@types/fs-extra": "^9.0.13",
|
|
135
135
|
"@types/inflection": "^1.13.0",
|
|
136
136
|
"@types/inquirer": "^8.1.3",
|
|
137
|
-
"@types/jsonwebtoken": "^8.5.
|
|
137
|
+
"@types/jsonwebtoken": "^8.5.7",
|
|
138
138
|
"@types/lodash": "^4.14.178",
|
|
139
139
|
"@types/md5": "^2.3.1",
|
|
140
140
|
"@types/mkdirp": "^1.0.2",
|
|
@@ -151,7 +151,7 @@
|
|
|
151
151
|
"chokidar-cli": "^3.0.0",
|
|
152
152
|
"concurrently": "^7.0.0",
|
|
153
153
|
"conventional-changelog-sprucelabs": "^1.1.2",
|
|
154
|
-
"dotenv": "^
|
|
154
|
+
"dotenv": "^11.0.0",
|
|
155
155
|
"eslint": "^8.6.0",
|
|
156
156
|
"eslint-config-spruce": "^10.11.0",
|
|
157
157
|
"find-process": "^1.4.7",
|
|
@@ -597,5 +597,5 @@
|
|
|
597
597
|
"ora"
|
|
598
598
|
]
|
|
599
599
|
},
|
|
600
|
-
"gitHead": "
|
|
600
|
+
"gitHead": "1f63712ade1a9c44ea371d6f7dfc1f89485e19c3"
|
|
601
601
|
}
|
|
@@ -14,7 +14,7 @@ import testUtil from '../../tests/utilities/test.utility'
|
|
|
14
14
|
const LOCAL_NAMESPACE = 'TestingSchemas'
|
|
15
15
|
const REMOTE_NAMESPACE = 'RemoteSchemas'
|
|
16
16
|
|
|
17
|
-
const REMOTE_MODULE = '@sprucelabs/
|
|
17
|
+
const REMOTE_MODULE = '@sprucelabs/calendar-utils'
|
|
18
18
|
const REMOTE_MODULE2 = '@sprucelabs/spruce-templates'
|
|
19
19
|
|
|
20
20
|
export default class SettingUpSchemasForModuleDistributionTest extends AbstractSkillTest {
|
|
@@ -25,7 +25,7 @@ export default class SettingUpSchemasForModuleDistributionTest extends AbstractS
|
|
|
25
25
|
version: 'v2021_09_20',
|
|
26
26
|
namespace: 'TestingSchemas',
|
|
27
27
|
name: 'Schema imported as module',
|
|
28
|
-
moduleToImportFromWhenRemote: '@sprucelabs/
|
|
28
|
+
moduleToImportFromWhenRemote: '@sprucelabs/calendar-utils',
|
|
29
29
|
fields: {
|
|
30
30
|
fieldName1: { label: 'First Field', type: 'text', isRequired: true },
|
|
31
31
|
fieldName2: {
|
|
@@ -497,7 +497,7 @@ export default class SettingUpSchemasForModuleDistributionTest extends AbstractS
|
|
|
497
497
|
|
|
498
498
|
assert.isEqual(
|
|
499
499
|
calendarEventContents.trim(),
|
|
500
|
-
`export { calendarEventSchema as default } from '@sprucelabs/
|
|
500
|
+
`export { calendarEventSchema as default } from '@sprucelabs/calendar-utils'`
|
|
501
501
|
)
|
|
502
502
|
}
|
|
503
503
|
|
|
@@ -66,7 +66,7 @@ export default class PkgServiceTest extends AbstractSkillTest {
|
|
|
66
66
|
protected static async installingSpruceAndOtherModulesDoesntRemoveSpruceModule() {
|
|
67
67
|
const { totalInstalled } = await this.pkg.install([
|
|
68
68
|
'moment',
|
|
69
|
-
'@sprucelabs/
|
|
69
|
+
'@sprucelabs/calendar-utils',
|
|
70
70
|
])
|
|
71
71
|
|
|
72
72
|
assert.isEqual(totalInstalled, 2)
|
|
@@ -74,7 +74,7 @@ export default class PkgServiceTest extends AbstractSkillTest {
|
|
|
74
74
|
const expectedPath = this.resolvePath(
|
|
75
75
|
'node_modules',
|
|
76
76
|
'@sprucelabs',
|
|
77
|
-
'
|
|
77
|
+
'calendar-utils'
|
|
78
78
|
)
|
|
79
79
|
|
|
80
80
|
assert.isTrue(
|
package/src/cli.ts
CHANGED
|
@@ -123,6 +123,11 @@ export default class Cli implements CliInterface {
|
|
|
123
123
|
return this.emitter.emit(...args)
|
|
124
124
|
}
|
|
125
125
|
|
|
126
|
+
public async emitAndFlattenResponses(...args: any[]) {
|
|
127
|
+
//@ts-ignore
|
|
128
|
+
return this.emitter.emitAndFlattenResponses(...args)
|
|
129
|
+
}
|
|
130
|
+
|
|
126
131
|
public async installFeatures(options: InstallFeatureOptions) {
|
|
127
132
|
return this.featureInstaller.install(options)
|
|
128
133
|
}
|