@sprucelabs/spruce-cli 17.1.55 → 18.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/build/__tests__/behavioral/EnablingAndDisablingCache.test.js +1 -1
- package/build/__tests__/behavioral/EnablingAndDisablingCache.test.js.map +1 -1
- package/build/__tests__/behavioral/RememberingUpgradeSelections.test.js +1 -1
- package/build/__tests__/behavioral/RememberingUpgradeSelections.test.js.map +1 -1
- package/build/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.js +4 -4
- package/build/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.js.map +1 -1
- package/build/__tests__/behavioral/WatchingSkillViews.test.js +3 -3
- package/build/__tests__/behavioral/WatchingSkillViews.test.js.map +1 -1
- package/build/__tests__/behavioral/errors/SettingUpErrors.test.js +1 -1
- package/build/__tests__/behavioral/errors/SettingUpErrors.test.js.map +1 -1
- package/build/__tests__/behavioral/events/CreatingAListener.test.d.ts +2 -0
- package/build/__tests__/behavioral/events/CreatingAListener.test.js +118 -59
- package/build/__tests__/behavioral/events/CreatingAListener.test.js.map +1 -1
- package/build/__tests__/behavioral/events/EverythingInstalledInstaller.d.ts +17 -0
- package/build/__tests__/behavioral/events/EverythingInstalledInstaller.js +137 -0
- package/build/__tests__/behavioral/events/EverythingInstalledInstaller.js.map +1 -0
- package/build/__tests__/behavioral/onboard/StartingOnboarding.test.js +46 -45
- package/build/__tests__/behavioral/onboard/StartingOnboarding.test.js.map +1 -1
- package/build/__tests__/behavioral/tests/CreatingATest.test.js +1 -1
- package/build/__tests__/behavioral/tests/CreatingATest.test.js.map +1 -1
- package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js +4 -4
- package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpdatingDependencies2.test.js +2 -2
- package/build/__tests__/behavioral/upgrading/UpdatingDependencies2.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingANodeModule.test.js +2 -2
- package/build/__tests__/behavioral/upgrading/UpgradingANodeModule.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingASkill5.test.js +2 -2
- package/build/__tests__/behavioral/upgrading/UpgradingASkill5.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingWithListeners.test.js +2 -2
- package/build/__tests__/behavioral/upgrading/UpgradingWithListeners.test.js.map +1 -1
- package/build/__tests__/behavioral/views/CreatingASkillView.test.js +1 -1
- package/build/__tests__/behavioral/views/CreatingASkillView.test.js.map +1 -1
- package/build/__tests__/behavioral/views/CreatingATheme.test.js +1 -1
- package/build/__tests__/behavioral/views/CreatingATheme.test.js.map +1 -1
- package/build/__tests__/behavioral/watchers/WatchingForChanges.test.d.ts +3 -3
- package/build/__tests__/behavioral/watchers/WatchingForChanges.test.js +153 -156
- package/build/__tests__/behavioral/watchers/WatchingForChanges.test.js.map +1 -1
- package/build/__tests__/implementation/ActionExecuter.test.js +2 -2
- package/build/__tests__/implementation/ActionExecuter.test.js.map +1 -1
- package/build/__tests__/implementation/ActionExecuter2.test.js +1 -1
- package/build/__tests__/implementation/ActionExecuter2.test.js.map +1 -1
- package/build/__tests__/implementation/ActionExecuter4.test.js +1 -1
- package/build/__tests__/implementation/ActionExecuter4.test.js.map +1 -1
- package/build/__tests__/implementation/FeatureInstaller.test.js +8 -4
- package/build/__tests__/implementation/FeatureInstaller.test.js.map +1 -1
- package/build/__tests__/implementation/GlobalEmitter.d.ts +1 -1
- package/build/__tests__/implementation/GlobalEmitter.js +9 -10
- package/build/__tests__/implementation/GlobalEmitter.js.map +1 -1
- package/build/__tests__/implementation/SettingUpANodeModule.test.js +1 -1
- package/build/__tests__/implementation/SettingUpANodeModule.test.js.map +1 -1
- package/build/__tests__/implementation/SkillStore.test.d.ts +3 -1
- package/build/__tests__/implementation/SkillStore.test.js +67 -50
- package/build/__tests__/implementation/SkillStore.test.js.map +1 -1
- package/build/__tests__/implementation/StoreFeature.test.js +1 -1
- package/build/__tests__/implementation/StoreFeature.test.js.map +1 -1
- package/build/cli.js +3 -3
- package/build/cli.js.map +1 -1
- package/build/features/AbstractAction.d.ts +2 -2
- package/build/features/AbstractAction.js.map +1 -1
- package/build/features/AbstractFeature.d.ts +22 -22
- package/build/features/AbstractFeature.js.map +1 -1
- package/build/features/ActionExecuter.d.ts +8 -8
- package/build/features/ActionExecuter.js.map +1 -1
- package/build/features/FeatureInstaller.d.ts +15 -2
- package/build/features/FeatureInstaller.js +36 -36
- package/build/features/FeatureInstaller.js.map +1 -1
- package/build/features/FeatureInstallerFactory.d.ts +12 -10
- package/build/features/FeatureInstallerFactory.js +2 -2
- package/build/features/FeatureInstallerFactory.js.map +1 -1
- package/build/features/OverrideActionDecorator.js +4 -5
- package/build/features/OverrideActionDecorator.js.map +1 -1
- package/build/features/event/actions/ListenAction.js.map +1 -1
- package/build/features/event/actions/SetRemoteAction.d.ts +1 -0
- package/build/features/event/actions/SetRemoteAction.js +2 -1
- package/build/features/event/actions/SetRemoteAction.js.map +1 -1
- package/build/features/event/actions/SyncListenersAction.js.map +1 -1
- package/build/features/node/NodeFeature.js.map +1 -1
- package/build/features/skill/SkillFeature.js.map +1 -1
- package/build/features/skill/stores/SkillStore.d.ts +4 -1
- package/build/features/skill/stores/SkillStore.js +127 -100
- package/build/features/skill/stores/SkillStore.js.map +1 -1
- package/build/features/watch/WatchFeature.js +1 -1
- package/build/features/watch/WatchFeature.js.map +1 -1
- package/build/interfaces/SpyInterface.d.ts +2 -0
- package/build/interfaces/SpyInterface.js +16 -4
- package/build/interfaces/SpyInterface.js.map +1 -1
- package/build/stores/AbstractStore.d.ts +9 -7
- package/build/stores/AbstractStore.js.map +1 -1
- package/build/stores/StoreFactory.d.ts +19 -13
- package/build/stores/StoreFactory.js +15 -13
- package/build/stores/StoreFactory.js.map +1 -1
- package/build/tests/AbstractCliTest.d.ts +9 -6
- package/build/tests/AbstractCliTest.js +53 -45
- package/build/tests/AbstractCliTest.js.map +1 -1
- package/build/tests/AbstractSchemaTest.js +18 -20
- package/build/tests/AbstractSchemaTest.js.map +1 -1
- package/build/utilities/action.utility.js +3 -1
- package/build/utilities/action.utility.js.map +1 -1
- package/node_modules/@typescript-eslint/parser/package.json +5 -5
- package/node_modules/@typescript-eslint/scope-manager/package.json +5 -5
- package/node_modules/@typescript-eslint/types/package.json +2 -2
- package/node_modules/@typescript-eslint/typescript-estree/package.json +5 -5
- package/node_modules/@typescript-eslint/visitor-keys/package.json +3 -3
- package/package.json +28 -86
- package/src/__tests__/behavioral/EnablingAndDisablingCache.test.ts +1 -1
- package/src/__tests__/behavioral/RememberingUpgradeSelections.test.ts +1 -1
- package/src/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.ts +4 -4
- package/src/__tests__/behavioral/WatchingSkillViews.test.ts +3 -3
- package/src/__tests__/behavioral/errors/SettingUpErrors.test.ts +1 -1
- package/src/__tests__/behavioral/events/CreatingAListener.test.ts +41 -14
- package/src/__tests__/behavioral/events/EverythingInstalledInstaller.ts +46 -0
- package/src/__tests__/behavioral/onboard/StartingOnboarding.test.ts +10 -5
- package/src/__tests__/behavioral/tests/CreatingATest.test.ts +1 -1
- package/src/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.ts +4 -4
- package/src/__tests__/behavioral/upgrading/UpdatingDependencies2.test.ts +2 -2
- package/src/__tests__/behavioral/upgrading/UpgradingANodeModule.test.ts +2 -2
- package/src/__tests__/behavioral/upgrading/UpgradingASkill5.test.ts +2 -2
- package/src/__tests__/behavioral/upgrading/UpgradingWithListeners.test.ts +2 -2
- package/src/__tests__/behavioral/views/CreatingASkillView.test.ts +1 -1
- package/src/__tests__/behavioral/views/CreatingATheme.test.ts +1 -1
- package/src/__tests__/behavioral/watchers/WatchingForChanges.test.ts +35 -35
- package/src/__tests__/implementation/ActionExecuter.test.ts +2 -2
- package/src/__tests__/implementation/ActionExecuter2.test.ts +1 -1
- package/src/__tests__/implementation/ActionExecuter4.test.ts +1 -1
- package/src/__tests__/implementation/FeatureInstaller.test.ts +8 -1
- package/src/__tests__/implementation/GlobalEmitter.ts +2 -4
- package/src/__tests__/implementation/SettingUpANodeModule.test.ts +1 -1
- package/src/__tests__/implementation/SkillStore.test.ts +23 -24
- package/src/__tests__/implementation/StoreFeature.test.ts +1 -1
- package/src/cli.ts +7 -3
- package/src/features/AbstractAction.ts +3 -3
- package/src/features/AbstractFeature.ts +26 -26
- package/src/features/ActionExecuter.ts +9 -9
- package/src/features/FeatureInstaller.ts +32 -12
- package/src/features/FeatureInstallerFactory.ts +17 -13
- package/src/features/OverrideActionDecorator.ts +2 -5
- package/src/features/event/actions/ListenAction.ts +1 -0
- package/src/features/event/actions/SetRemoteAction.ts +2 -1
- package/src/features/event/actions/SyncListenersAction.ts +0 -1
- package/src/features/node/NodeFeature.ts +3 -1
- package/src/features/skill/SkillFeature.ts +3 -3
- package/src/features/skill/stores/SkillStore.ts +18 -11
- package/src/features/watch/WatchFeature.ts +1 -1
- package/src/interfaces/SpyInterface.ts +10 -0
- package/src/stores/AbstractStore.ts +14 -8
- package/src/stores/StoreFactory.ts +56 -44
- package/src/tests/AbstractCliTest.ts +53 -45
- package/src/tests/AbstractSchemaTest.ts +1 -3
- package/src/utilities/action.utility.ts +3 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FeatureInstallerFactory.js","names":["FeatureInstallerFactory","options","cwd","serviceFactory","storeFactory","ui","emitter","actionExecuter","featureInstaller","
|
|
1
|
+
{"version":3,"file":"FeatureInstallerFactory.js","names":["FeatureInstallerFactory","options","cwd","serviceFactory","storeFactory","ui","emitter","actionExecuter","featureInstaller","FeatureInstallerImpl","featureOptions","templates","apiClientFactory","features","forEach","Feature","feature","mapFeature","code","ErrorFeature","SchemaFeature","SkillFeature","TestFeature","VsCodeFeature","EventFeature","WatchFeature","NodeFeature","OnboardFeature","PersonFeature","OrganizationFeature","ConversationFeature","EventContractFeature","DeployFeature","SandboxFeature","StoreFeature","ViewFeature","CacheFeature","LogFeature","DependencyFeature","PolishFeature","PermissionFeature"],"sources":["../../src/features/FeatureInstallerFactory.ts"],"sourcesContent":["import { templates } from '@sprucelabs/spruce-templates'\nimport { GlobalEmitter } from '../GlobalEmitter'\nimport ServiceFactory from '../services/ServiceFactory'\nimport StoreFactory from '../stores/StoreFactory'\nimport { ApiClientFactory } from '../types/apiClient.types'\nimport { GraphicsInterface } from '../types/cli.types'\nimport { FeatureOptions } from './AbstractFeature'\nimport ActionExecuter from './ActionExecuter'\nimport CacheFeature from './cache/CacheFeature'\nimport ConversationFeature from './conversation/ConversationFeature'\nimport DependencyFeature from './dependencies/DependencyFeature'\nimport DeployFeature from './deploy/DeployFeature'\nimport ErrorFeature from './error/ErrorFeature'\nimport EventFeature from './event/EventFeature'\nimport EventContractFeature from './eventContract/EventContractFeature'\nimport FeatureInstaller, { FeatureInstallerImpl } from './FeatureInstaller'\nimport { FeatureCode } from './features.types'\nimport LogFeature from './log/LogFeature'\nimport NodeFeature from './node/NodeFeature'\nimport OnboardFeature from './onboard/OnboardFeature'\nimport OrganizationFeature from './organization/OrganizationFeature'\nimport PermissionFeature from './permission/PermissionFeature'\nimport PersonFeature from './person/PersonFeature'\nimport PolishFeature from './polish/PolishFeature'\nimport SandboxFeature from './sandbox/SandboxFeature'\nimport SchemaFeature from './schema/SchemaFeature'\nimport SkillFeature from './skill/SkillFeature'\nimport StoreFeature from './store/StoreFeature'\nimport TestFeature from './test/TestFeature'\nimport ViewFeature from './view/ViewFeature'\nimport VsCodeFeature from './vscode/VsCodeFeature'\nimport WatchFeature from './watch/WatchFeature'\n\nexport default class FeatureInstallerFactory {\n\tprivate static readonly features: any[] = [\n\t\tErrorFeature,\n\t\tSchemaFeature,\n\t\tSkillFeature,\n\t\tTestFeature,\n\t\tVsCodeFeature,\n\t\tEventFeature,\n\t\tWatchFeature,\n\t\tNodeFeature,\n\t\tOnboardFeature,\n\t\tPersonFeature,\n\t\tOrganizationFeature,\n\t\tConversationFeature,\n\t\tEventContractFeature,\n\t\tDeployFeature,\n\t\tSandboxFeature,\n\t\tStoreFeature,\n\t\tViewFeature,\n\t\tCacheFeature,\n\t\tLogFeature,\n\t\tDependencyFeature,\n\t\tPolishFeature,\n\t\tPermissionFeature,\n\t]\n\n\tpublic static readonly featureCodes: FeatureCode[] = [\n\t\t'error',\n\t\t'schema',\n\t\t'skill',\n\t\t'test',\n\t\t'vscode',\n\t\t'event',\n\t\t'watch',\n\t\t'node',\n\t\t'onboard',\n\t\t'person',\n\t\t'organization',\n\t\t'conversation',\n\t\t'eventContract',\n\t\t'deploy',\n\t\t'sandbox',\n\t\t'store',\n\t\t'view',\n\t\t'cache',\n\t\t'log',\n\t\t'dependency',\n\t\t'polish',\n\t\t'permission',\n\t]\n\n\tpublic static WithAllFeatures(\n\t\toptions: InstallerWithAllFeaturesOptions\n\t): FeatureInstaller {\n\t\tconst { cwd, serviceFactory, storeFactory, ui, emitter, actionExecuter } =\n\t\t\toptions\n\n\t\tconst featureInstaller =\n\t\t\toptions.featureInstaller ?? new FeatureInstallerImpl(cwd, serviceFactory)\n\n\t\tconst featureOptions: FeatureOptions = {\n\t\t\tcwd,\n\t\t\tserviceFactory,\n\t\t\ttemplates,\n\t\t\tstoreFactory,\n\t\t\tfeatureInstaller,\n\t\t\tui,\n\t\t\temitter,\n\t\t\tactionExecuter,\n\t\t\tapiClientFactory: options.apiClientFactory,\n\t\t}\n\n\t\tthis.features.forEach((Feature) => {\n\t\t\tconst feature = new Feature(featureOptions)\n\t\t\tfeatureInstaller.mapFeature(feature.code, feature)\n\t\t})\n\n\t\treturn featureInstaller\n\t}\n}\n\ninterface InstallerWithAllFeaturesOptions {\n\tcwd: string\n\tserviceFactory: ServiceFactory\n\tstoreFactory: StoreFactory\n\tfeatureInstaller?: FeatureInstaller\n\tui: GraphicsInterface\n\temitter: GlobalEmitter\n\tapiClientFactory: ApiClientFactory\n\tactionExecuter: ActionExecuter\n}\n"],"mappings":";;;;;;;;;;AAAA;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAA+C,IAE1BA,uBAAuB;EAAA;IAAA;EAAA;EAAA;IAAA;IAAA,OAmD3C,yBACCC,OAAwC,EACrB;MAAA;MACnB,IAAQC,GAAG,GACVD,OAAO,CADAC,GAAG;QAAEC,cAAc,GAC1BF,OAAO,CADKE,cAAc;QAAEC,YAAY,GACxCH,OAAO,CADqBG,YAAY;QAAEC,EAAE,GAC5CJ,OAAO,CADmCI,EAAE;QAAEC,OAAO,GACrDL,OAAO,CADuCK,OAAO;QAAEC,cAAc,GACrEN,OAAO,CADgDM,cAAc;MAGtE,IAAMC,gBAAgB,4BACrBP,OAAO,CAACO,gBAAgB,yEAAI,IAAIC,sCAAoB,CAACP,GAAG,EAAEC,cAAc,CAAC;MAE1E,IAAMO,cAA8B,GAAG;QACtCR,GAAG,EAAHA,GAAG;QACHC,cAAc,EAAdA,cAAc;QACdQ,SAAS,EAATA,0BAAS;QACTP,YAAY,EAAZA,YAAY;QACZI,gBAAgB,EAAhBA,gBAAgB;QAChBH,EAAE,EAAFA,EAAE;QACFC,OAAO,EAAPA,OAAO;QACPC,cAAc,EAAdA,cAAc;QACdK,gBAAgB,EAAEX,OAAO,CAACW;MAC3B,CAAC;MAED,IAAI,CAACC,QAAQ,CAACC,OAAO,CAAC,UAACC,OAAO,EAAK;QAClC,IAAMC,OAAO,GAAG,IAAID,OAAO,CAACL,cAAc,CAAC;QAC3CF,gBAAgB,CAACS,UAAU,CAACD,OAAO,CAACE,IAAI,EAAEF,OAAO,CAAC;MACnD,CAAC,CAAC;MAEF,OAAOR,gBAAgB;IACxB;EAAC;EAAA;AAAA;AAAA;AAAA,iCA9EmBR,uBAAuB,cACD,CACzCmB,wBAAY,EACZC,yBAAa,EACbC,wBAAY,EACZC,uBAAW,EACXC,yBAAa,EACbC,wBAAY,EACZC,wBAAY,EACZC,uBAAW,EACXC,0BAAc,EACdC,yBAAa,EACbC,+BAAmB,EACnBC,+BAAmB,EACnBC,gCAAoB,EACpBC,yBAAa,EACbC,0BAAc,EACdC,wBAAY,EACZC,uBAAW,EACXC,wBAAY,EACZC,sBAAU,EACVC,6BAAiB,EACjBC,yBAAa,EACbC,6BAAiB,CACjB;AAAA,iCAxBmBxC,uBAAuB,kBA0BU,CACpD,OAAO,EACP,QAAQ,EACR,OAAO,EACP,MAAM,EACN,QAAQ,EACR,OAAO,EACP,OAAO,EACP,MAAM,EACN,SAAS,EACT,QAAQ,EACR,cAAc,EACd,cAAc,EACd,eAAe,EACf,QAAQ,EACR,SAAS,EACT,OAAO,EACP,MAAM,EACN,OAAO,EACP,KAAK,EACL,YAAY,EACZ,QAAQ,EACR,YAAY,CACZ"}
|
|
@@ -75,14 +75,13 @@ var OverrideActionDecorator = /*#__PURE__*/function () {
|
|
|
75
75
|
switch (_context.prev = _context.next) {
|
|
76
76
|
case 0:
|
|
77
77
|
_this.assertCommandIsNotBlocked();
|
|
78
|
-
options = (
|
|
79
|
-
|
|
80
|
-
_context.next = 5;
|
|
78
|
+
options = _this.mixinOptionOverrides(optionsArg);
|
|
79
|
+
_context.next = 4;
|
|
81
80
|
return _this.childAction.execute(options);
|
|
82
|
-
case
|
|
81
|
+
case 4:
|
|
83
82
|
response = _context.sent;
|
|
84
83
|
return _context.abrupt("return", response);
|
|
85
|
-
case
|
|
84
|
+
case 6:
|
|
86
85
|
case "end":
|
|
87
86
|
return _context.stop();
|
|
88
87
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OverrideActionDecorator.js","names":["methodDelegator","getAllFuncs","toCheck","props","obj","push","Object","getOwnPropertyNames","getPrototypeOf","sort","filter","e","i","arr","delegateFunctionCalls","from","to","prop","OverrideActionDecorator","options","optionsArg","assertCommandIsNotBlocked","mixinOptionOverrides","childAction","execute","response","action","feature","ui","blockedCommands","optionOverrides","actionCode","SpruceError","code","friendlyMessage","nameReadable","parent","invocationMessage","commandAliases","optionsSchema","commands","getCommands","commandStr","command","hint","featuresUtil","generateCommandsIncludingAliases","optionsArgs","overrides","renderLine","renderObject"],"sources":["../../src/features/OverrideActionDecorator.ts"],"sourcesContent":["import { GraphicsInterface } from '@sprucelabs/spruce-skill-utils'\nimport SpruceError from '../errors/SpruceError'\nimport { FeatureAction } from '../features/features.types'\nimport { BlockedCommands, OptionOverrides } from '../types/cli.types'\nimport AbstractFeature from './AbstractFeature'\nimport featuresUtil from './feature.utilities'\n\nconst methodDelegator = {\n\tgetAllFuncs(toCheck: any) {\n\t\tconst props = []\n\t\tlet obj = toCheck\n\t\tdo {\n\t\t\tprops.push(...Object.getOwnPropertyNames(obj))\n\t\t} while ((obj = Object.getPrototypeOf(obj)))\n\n\t\treturn props.sort().filter((e: any, i: any, arr: any) => {\n\t\t\treturn e != arr[i + 1] && typeof toCheck[e] == 'function'\n\t\t})\n\t},\n\n\tdelegateFunctionCalls(from: any, to: any) {\n\t\tconst props = this.getAllFuncs(to)\n\t\tfor (const prop of props) {\n\t\t\t//@ts-ignore\n\t\t\tif (!from[prop]) {\n\t\t\t\t//@ts-ignore\n\t\t\t\tfrom[prop] = (...args: []) => {\n\t\t\t\t\t//@ts-ignore\n\t\t\t\t\treturn to[prop](...args)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n}\n\nexport default class OverrideActionDecorator implements FeatureAction {\n\tprivate blockedCommands?: BlockedCommands\n\tprivate optionOverrides?: OptionOverrides\n\tprivate ui?: GraphicsInterface\n\tprivate actionCode: string\n\n\tpublic get invocationMessage() {\n\t\treturn this.childAction.invocationMessage\n\t}\n\n\tpublic get commandAliases() {\n\t\treturn this.childAction.commandAliases\n\t}\n\n\tprivate childAction: FeatureAction\n\tprivate parent: AbstractFeature\n\n\tpublic get optionsSchema() {\n\t\treturn this.childAction.optionsSchema\n\t}\n\n\tpublic getChild() {\n\t\treturn this.childAction\n\t}\n\n\tpublic constructor(options: {\n\t\taction: FeatureAction\n\t\tfeature: AbstractFeature\n\t\tui?: GraphicsInterface\n\t\tblockedCommands?: BlockedCommands\n\t\toptionOverrides?: OptionOverrides\n\t\tactionCode: string\n\t}) {\n\t\tconst {\n\t\t\taction,\n\t\t\tfeature,\n\t\t\tui,\n\t\t\tblockedCommands,\n\t\t\toptionOverrides,\n\t\t\tactionCode,\n\t\t} = options\n\n\t\tif (!action || !action.execute) {\n\t\t\tthrow new SpruceError({\n\t\t\t\tcode: 'GENERIC',\n\t\t\t\tfriendlyMessage: `${feature.nameReadable} failed to load action.`,\n\t\t\t})\n\t\t}\n\n\t\tthis.childAction = action\n\t\tthis.parent = feature\n\t\tthis.blockedCommands = blockedCommands\n\t\tthis.optionOverrides = optionOverrides\n\t\tthis.ui = ui\n\t\tthis.actionCode = actionCode\n\n\t\tmethodDelegator.delegateFunctionCalls(this, action)\n\t}\n\n\tprivate assertCommandIsNotBlocked() {\n\t\tconst commands = this.getCommands()\n\n\t\tfor (const commandStr of commands) {\n\t\t\tif (this.blockedCommands?.[commandStr]) {\n\t\t\t\tthrow new SpruceError({\n\t\t\t\t\tcode: 'COMMAND_BLOCKED',\n\t\t\t\t\tcommand: commandStr,\n\t\t\t\t\thint: this.blockedCommands[commandStr],\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic execute = async (optionsArg: any) => {\n\t\tthis.assertCommandIsNotBlocked()\n\n\t\
|
|
1
|
+
{"version":3,"file":"OverrideActionDecorator.js","names":["methodDelegator","getAllFuncs","toCheck","props","obj","push","Object","getOwnPropertyNames","getPrototypeOf","sort","filter","e","i","arr","delegateFunctionCalls","from","to","prop","OverrideActionDecorator","options","optionsArg","assertCommandIsNotBlocked","mixinOptionOverrides","childAction","execute","response","action","feature","ui","blockedCommands","optionOverrides","actionCode","SpruceError","code","friendlyMessage","nameReadable","parent","invocationMessage","commandAliases","optionsSchema","commands","getCommands","commandStr","command","hint","featuresUtil","generateCommandsIncludingAliases","optionsArgs","overrides","renderLine","renderObject"],"sources":["../../src/features/OverrideActionDecorator.ts"],"sourcesContent":["import { GraphicsInterface } from '@sprucelabs/spruce-skill-utils'\nimport SpruceError from '../errors/SpruceError'\nimport { FeatureAction } from '../features/features.types'\nimport { BlockedCommands, OptionOverrides } from '../types/cli.types'\nimport AbstractFeature from './AbstractFeature'\nimport featuresUtil from './feature.utilities'\n\nconst methodDelegator = {\n\tgetAllFuncs(toCheck: any) {\n\t\tconst props = []\n\t\tlet obj = toCheck\n\t\tdo {\n\t\t\tprops.push(...Object.getOwnPropertyNames(obj))\n\t\t} while ((obj = Object.getPrototypeOf(obj)))\n\n\t\treturn props.sort().filter((e: any, i: any, arr: any) => {\n\t\t\treturn e != arr[i + 1] && typeof toCheck[e] == 'function'\n\t\t})\n\t},\n\n\tdelegateFunctionCalls(from: any, to: any) {\n\t\tconst props = this.getAllFuncs(to)\n\t\tfor (const prop of props) {\n\t\t\t//@ts-ignore\n\t\t\tif (!from[prop]) {\n\t\t\t\t//@ts-ignore\n\t\t\t\tfrom[prop] = (...args: []) => {\n\t\t\t\t\t//@ts-ignore\n\t\t\t\t\treturn to[prop](...args)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n}\n\nexport default class OverrideActionDecorator implements FeatureAction {\n\tprivate blockedCommands?: BlockedCommands\n\tprivate optionOverrides?: OptionOverrides\n\tprivate ui?: GraphicsInterface\n\tprivate actionCode: string\n\n\tpublic get invocationMessage() {\n\t\treturn this.childAction.invocationMessage\n\t}\n\n\tpublic get commandAliases() {\n\t\treturn this.childAction.commandAliases\n\t}\n\n\tprivate childAction: FeatureAction\n\tprivate parent: AbstractFeature\n\n\tpublic get optionsSchema() {\n\t\treturn this.childAction.optionsSchema\n\t}\n\n\tpublic getChild() {\n\t\treturn this.childAction\n\t}\n\n\tpublic constructor(options: {\n\t\taction: FeatureAction\n\t\tfeature: AbstractFeature\n\t\tui?: GraphicsInterface\n\t\tblockedCommands?: BlockedCommands\n\t\toptionOverrides?: OptionOverrides\n\t\tactionCode: string\n\t}) {\n\t\tconst {\n\t\t\taction,\n\t\t\tfeature,\n\t\t\tui,\n\t\t\tblockedCommands,\n\t\t\toptionOverrides,\n\t\t\tactionCode,\n\t\t} = options\n\n\t\tif (!action || !action.execute) {\n\t\t\tthrow new SpruceError({\n\t\t\t\tcode: 'GENERIC',\n\t\t\t\tfriendlyMessage: `${feature.nameReadable} failed to load action.`,\n\t\t\t})\n\t\t}\n\n\t\tthis.childAction = action\n\t\tthis.parent = feature\n\t\tthis.blockedCommands = blockedCommands\n\t\tthis.optionOverrides = optionOverrides\n\t\tthis.ui = ui\n\t\tthis.actionCode = actionCode\n\n\t\tmethodDelegator.delegateFunctionCalls(this, action)\n\t}\n\n\tprivate assertCommandIsNotBlocked() {\n\t\tconst commands = this.getCommands()\n\n\t\tfor (const commandStr of commands) {\n\t\t\tif (this.blockedCommands?.[commandStr]) {\n\t\t\t\tthrow new SpruceError({\n\t\t\t\t\tcode: 'COMMAND_BLOCKED',\n\t\t\t\t\tcommand: commandStr,\n\t\t\t\t\thint: this.blockedCommands[commandStr],\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic execute = async (optionsArg: any) => {\n\t\tthis.assertCommandIsNotBlocked()\n\n\t\tconst options = this.mixinOptionOverrides(optionsArg)\n\t\tconst response = await this.childAction.execute(options)\n\n\t\treturn response\n\t}\n\n\tprivate getCommands() {\n\t\treturn featuresUtil.generateCommandsIncludingAliases(\n\t\t\tthis.parent.code,\n\t\t\tthis.actionCode,\n\t\t\tthis\n\t\t)\n\t}\n\n\tprivate mixinOptionOverrides(optionsArgs: any) {\n\t\tlet { ...options } = optionsArgs\n\n\t\tconst commands = this.getCommands()\n\n\t\tfor (const commandStr of commands) {\n\t\t\tconst overrides = this.optionOverrides?.[commandStr]\n\t\t\tif (overrides) {\n\t\t\t\tthis.ui?.renderLine(`Overrides found in package.json`)\n\t\t\t\tthis.ui?.renderObject(overrides)\n\t\t\t\toptions = {\n\t\t\t\t\t...options,\n\t\t\t\t\t...overrides,\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn options\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListenAction.js","names":["SKILL_EVENT_NAMESPACE","CORE_EVENT_NAMESPACE","MERCURY_API_NAMESPACE","ListenAction","eventListenActionSchema","options","normalizedOptions","validateAndNormalizeOptions","response","listenerDestinationDir","versionOptions","version","eventName","namespace","schemaTypesLookupDir","ui","startLoading","fetchEventContracts","contracts","stopLoading","collectNamespace","mapContractsToSelectChoices","eventChoicesByNamespace","SchemaError","code","friendlyMessage","Object","keys","join","parameters","collectEvent","isCoreEvent","undefined","fqen","eventNameUtil","eventNamespace","split","assertIsValidChoice","resolvedDestination","diskUtil","resolvePath","cwd","resolveVersion","resolvedVersion","isSkillEvent","builder","EventTemplateItemBuilder","templateItems","buildEventTemplateItemForName","emitPayloadSchemaTemplateItem","responsePayloadSchemaTemplateItem","writeListener","files","syncListeners","syncResults","actionUtil","mergeActionResults","syncEvents","errors","eventStore","Store","loadCurrentSkill","skill","namespacesForFetch","getDependencyNamespaces","didUpdateHandler","msg","slug","localNamespace","length","namespaces","Service","get","map","d","syncOptions","normalizeSchemaValues","syncEventActionSchema","Action","execute","resolvedSchemaTypesLookupDir","writer","Writer","fullyQualifiedEventName","isValidEvent","find","e","value","i","eventChoices","prompt","type","label","isRequired","choices","namespaceChoices","forEach","contract","namedSignatures","eventContractUtil","getNamedEventSignatures","namedSig","o","push","namesUtil","toPascal","AbstractAction"],"sources":["../../../../src/features/event/actions/ListenAction.ts"],"sourcesContent":["import { EventContract } from '@sprucelabs/mercury-types'\nimport {\n\tnormalizeSchemaValues,\n\tSchemaError,\n\tSchemaTemplateItem,\n\tSelectChoice,\n} from '@sprucelabs/schema'\nimport {\n\teventContractUtil,\n\teventNameUtil,\n} from '@sprucelabs/spruce-event-utils'\nimport {\n\tdiskUtil,\n\tnamesUtil,\n\tMERCURY_API_NAMESPACE,\n} from '@sprucelabs/spruce-skill-utils'\nimport { SpruceSchemas } from '#spruce/schemas/schemas.types'\nimport eventListenActionSchema from '#spruce/schemas/spruceCli/v2020_07_22/listenEventOptions.schema'\nimport syncEventActionSchema from '#spruce/schemas/spruceCli/v2020_07_22/syncEventOptions.schema'\nimport EventTemplateItemBuilder from '../../../templateItemBuilders/EventTemplateItemBuilder'\nimport actionUtil from '../../../utilities/action.utility'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\nimport { FetchContractsOptions } from '../stores/EventStore'\n\nconst SKILL_EVENT_NAMESPACE = 'skill'\nexport const CORE_EVENT_NAMESPACE = MERCURY_API_NAMESPACE\n\ntype OptionsSchema =\n\tSpruceSchemas.SpruceCli.v2020_07_22.ListenEventOptionsSchema\nexport default class ListenAction extends AbstractAction<OptionsSchema> {\n\tpublic optionsSchema: OptionsSchema = eventListenActionSchema\n\tpublic invocationMessage = 'Creating event listener... 🜒'\n\tpublic commandAliases = ['listen.event', 'create.listener']\n\n\tpublic async execute(\n\t\toptions: SpruceSchemas.SpruceCli.v2020_07_22.ListenEventOptions\n\t): Promise<FeatureActionResponse> {\n\t\tconst normalizedOptions = this.validateAndNormalizeOptions(options)\n\n\t\ttry {\n\t\t\tlet response: FeatureActionResponse = {}\n\n\t\t\tlet {\n\t\t\t\tlistenerDestinationDir,\n\t\t\t\tversion: versionOptions,\n\t\t\t\teventName,\n\t\t\t\tnamespace,\n\t\t\t\tschemaTypesLookupDir,\n\t\t\t} = normalizedOptions\n\n\t\t\tthis.ui.startLoading('Loading event contracts...')\n\n\t\t\tconst contracts = await this.fetchEventContracts(namespace)\n\n\t\t\tthis.ui.stopLoading()\n\n\t\t\tif (!namespace) {\n\t\t\t\tnamespace = await this.collectNamespace(contracts)\n\t\t\t}\n\n\t\t\tconst { eventChoicesByNamespace } =\n\t\t\t\tthis.mapContractsToSelectChoices(contracts)\n\n\t\t\tif (!eventChoicesByNamespace[namespace]) {\n\t\t\t\tthrow new SchemaError({\n\t\t\t\t\tcode: 'INVALID_PARAMETERS',\n\t\t\t\t\tfriendlyMessage: `${namespace} is not a valid event namespace. Try: \\n\\n${Object.keys(\n\t\t\t\t\t\teventChoicesByNamespace\n\t\t\t\t\t).join('\\n')}`,\n\t\t\t\t\tparameters: ['namespace'],\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tif (!eventName) {\n\t\t\t\teventName = await this.collectEvent(contracts, namespace)\n\t\t\t}\n\n\t\t\tconst isCoreEvent = namespace === CORE_EVENT_NAMESPACE\n\t\t\tif (isCoreEvent) {\n\t\t\t\tnamespace = undefined\n\t\t\t}\n\n\t\t\tconst fqen = eventNameUtil.join({\n\t\t\t\teventName,\n\t\t\t\teventNamespace: namespace,\n\t\t\t\tversion: versionOptions,\n\t\t\t})\n\n\t\t\tlet { version } = eventNameUtil.split(fqen)\n\n\t\t\tthis.assertIsValidChoice(\n\t\t\t\teventChoicesByNamespace,\n\t\t\t\tnamespace ?? 'mercury',\n\t\t\t\teventName,\n\t\t\t\tfqen\n\t\t\t)\n\n\t\t\tconst resolvedDestination = diskUtil.resolvePath(\n\t\t\t\tthis.cwd,\n\t\t\t\tlistenerDestinationDir\n\t\t\t)\n\n\t\t\tconst resolvedVersion = await this.resolveVersion(\n\t\t\t\tversion,\n\t\t\t\tresolvedDestination\n\t\t\t)\n\n\t\t\tconst isSkillEvent = namespace !== SKILL_EVENT_NAMESPACE\n\n\t\t\tlet emitPayloadSchemaTemplateItem: SchemaTemplateItem | undefined\n\t\t\tlet responsePayloadSchemaTemplateItem: SchemaTemplateItem | undefined\n\n\t\t\tif (isSkillEvent) {\n\t\t\t\tconst builder = new EventTemplateItemBuilder()\n\t\t\t\tconst templateItems = builder.buildEventTemplateItemForName(\n\t\t\t\t\tcontracts,\n\t\t\t\t\teventNameUtil.join({\n\t\t\t\t\t\teventNamespace: !isCoreEvent ? namespace : undefined,\n\t\t\t\t\t\teventName,\n\t\t\t\t\t\tversion: resolvedVersion,\n\t\t\t\t\t})\n\t\t\t\t)\n\n\t\t\t\temitPayloadSchemaTemplateItem =\n\t\t\t\t\ttemplateItems.emitPayloadSchemaTemplateItem\n\t\t\t\tresponsePayloadSchemaTemplateItem =\n\t\t\t\t\ttemplateItems.responsePayloadSchemaTemplateItem\n\t\t\t}\n\n\t\t\tresponse.files = await this.writeListener({\n\t\t\t\tschemaTypesLookupDir,\n\t\t\t\tresolvedDestination,\n\t\t\t\tversion: resolvedVersion,\n\t\t\t\teventName,\n\t\t\t\tnamespace,\n\t\t\t\temitPayloadSchemaTemplateItem,\n\t\t\t\tresponsePayloadSchemaTemplateItem,\n\t\t\t})\n\n\t\t\tconst syncResults = await this.syncListeners()\n\n\t\t\tresponse = actionUtil.mergeActionResults(syncResults, response)\n\n\t\t\tif (isSkillEvent) {\n\t\t\t\tconst syncResults = await this.syncEvents(options)\n\t\t\t\tresponse = actionUtil.mergeActionResults(syncResults, response)\n\t\t\t}\n\n\t\t\treturn response\n\t\t} catch (err) {\n\t\t\treturn {\n\t\t\t\terrors: [err],\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate async fetchEventContracts(namespace?: string) {\n\t\tconst eventStore = this.Store('event')\n\t\tconst skill = await this.Store('skill').loadCurrentSkill()\n\n\t\tconst namespacesForFetch =\n\t\t\tnamespace &&\n\t\t\tnamespace !== SKILL_EVENT_NAMESPACE &&\n\t\t\tnamespace !== CORE_EVENT_NAMESPACE\n\t\t\t\t? [namespace]\n\t\t\t\t: [...this.getDependencyNamespaces(), 'mercury']\n\n\t\tconst options: FetchContractsOptions = {\n\t\t\tdidUpdateHandler: (msg: string) => this.ui.startLoading(msg),\n\t\t}\n\n\t\tif (skill.slug) {\n\t\t\toptions.localNamespace = skill.slug\n\t\t}\n\n\t\tif (namespacesForFetch.length > 0) {\n\t\t\toptions.namespaces = namespacesForFetch\n\t\t}\n\n\t\tconst { contracts } = await eventStore.fetchEventContracts(options)\n\n\t\treturn contracts\n\t}\n\n\tprivate getDependencyNamespaces() {\n\t\treturn this.Service('dependency')\n\t\t\t.get()\n\t\t\t.map((d) => d.namespace)\n\t}\n\n\tprivate async syncEvents(\n\t\toptions: SpruceSchemas.SpruceCli.v2020_07_22.ListenEventOptions\n\t) {\n\t\tconst syncOptions = normalizeSchemaValues(syncEventActionSchema, options)\n\n\t\tconst syncResults = await this.Action('event', 'sync').execute(syncOptions)\n\t\treturn syncResults\n\t}\n\n\tprivate async writeListener(options: {\n\t\tresolvedDestination: string\n\t\tschemaTypesLookupDir: string\n\t\tnamespace?: string | undefined\n\t\teventName: string\n\t\temitPayloadSchemaTemplateItem: SchemaTemplateItem | undefined\n\t\tversion: string\n\t\tresponsePayloadSchemaTemplateItem: SchemaTemplateItem | undefined\n\t}) {\n\t\tconst {\n\t\t\tresolvedDestination,\n\t\t\tschemaTypesLookupDir,\n\t\t\tnamespace,\n\t\t\teventName,\n\t\t\tversion,\n\t\t} = options\n\n\t\tconst resolvedSchemaTypesLookupDir = diskUtil.resolvePath(\n\t\t\tthis.cwd,\n\t\t\tschemaTypesLookupDir\n\t\t)\n\t\tconst writer = this.Writer('event')\n\t\tconst files = await writer.writeListener(resolvedDestination, {\n\t\t\t...options,\n\t\t\tfullyQualifiedEventName: eventNameUtil.join({\n\t\t\t\teventName,\n\t\t\t\teventNamespace: namespace,\n\t\t\t\tversion,\n\t\t\t}),\n\t\t\tschemaTypesLookupDir: resolvedSchemaTypesLookupDir,\n\t\t})\n\n\t\treturn files\n\t}\n\n\tprivate assertIsValidChoice(\n\t\teventChoicesByNamespace: Record<string, SelectChoice[]>,\n\t\tnamespace: string,\n\t\teventName: string | undefined,\n\t\tfqen: string\n\t) {\n\t\tconst isValidEvent = !!eventChoicesByNamespace[namespace].find(\n\t\t\t(e) => e.value === eventName || e.value === fqen\n\t\t)\n\n\t\tif (!isValidEvent) {\n\t\t\tthrow new SchemaError({\n\t\t\t\tcode: 'INVALID_PARAMETERS',\n\t\t\t\tfriendlyMessage: `${eventName} is not a valid event . Try: \\n\\n${eventChoicesByNamespace[\n\t\t\t\t\tnamespace\n\t\t\t\t]\n\t\t\t\t\t.map((i) => i.value)\n\t\t\t\t\t.join('\\n')}`,\n\t\t\t\tparameters: ['eventName'],\n\t\t\t})\n\t\t}\n\t}\n\n\tprivate async syncListeners() {\n\t\treturn this.Action('event', 'sync.listeners').execute({})\n\t}\n\n\tprivate async collectEvent(\n\t\tcontracts: EventContract[],\n\t\tnamespace: string\n\t): Promise<string> {\n\t\tconst eventChoices: SelectChoice[] =\n\t\t\tthis.mapContractsToSelectChoices(contracts).eventChoicesByNamespace[\n\t\t\t\tnamespace\n\t\t\t]\n\n\t\tconst eventName = await this.ui.prompt({\n\t\t\ttype: 'select',\n\t\t\tlabel: 'Select an event',\n\t\t\tisRequired: true,\n\t\t\toptions: {\n\t\t\t\tchoices: eventChoices,\n\t\t\t},\n\t\t})\n\n\t\treturn eventName\n\t}\n\n\tprivate async collectNamespace(contracts: EventContract[]): Promise<string> {\n\t\tconst { namespaceChoices } = this.mapContractsToSelectChoices(contracts)\n\n\t\tconst namespace = await this.ui.prompt({\n\t\t\ttype: 'select',\n\t\t\tlabel: 'Select an event namespace',\n\t\t\tisRequired: true,\n\t\t\toptions: {\n\t\t\t\tchoices: namespaceChoices,\n\t\t\t},\n\t\t})\n\n\t\treturn namespace\n\t}\n\n\tprivate mapContractsToSelectChoices(contracts: EventContract[]) {\n\t\tconst namespaceChoices: SelectChoice[] = [\n\t\t\t{\n\t\t\t\tlabel: 'Skill',\n\t\t\t\tvalue: SKILL_EVENT_NAMESPACE,\n\t\t\t},\n\t\t]\n\n\t\tconst eventChoicesByNamespace: Record<string, SelectChoice[]> = {\n\t\t\tskill: [\n\t\t\t\t{\n\t\t\t\t\tlabel: 'will-boot',\n\t\t\t\t\tvalue: 'will-boot',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'did-boot',\n\t\t\t\t\tvalue: 'did-boot',\n\t\t\t\t},\n\t\t\t],\n\t\t}\n\n\t\tcontracts.forEach((contract) => {\n\t\t\tconst namedSignatures =\n\t\t\t\teventContractUtil.getNamedEventSignatures(contract)\n\n\t\t\tfor (const namedSig of namedSignatures) {\n\t\t\t\tconst namespace = namedSig.eventNamespace ?? MERCURY_API_NAMESPACE\n\n\t\t\t\tif (!namespaceChoices.find((o) => o.value === namespace)) {\n\t\t\t\t\tnamespaceChoices.push({\n\t\t\t\t\t\tlabel: namesUtil.toPascal(namespace),\n\t\t\t\t\t\tvalue: namespace,\n\t\t\t\t\t})\n\t\t\t\t}\n\n\t\t\t\tif (!eventChoicesByNamespace[namespace]) {\n\t\t\t\t\teventChoicesByNamespace[namespace] = []\n\t\t\t\t}\n\n\t\t\t\teventChoicesByNamespace[namespace].push({\n\t\t\t\t\tvalue: namedSig.fullyQualifiedEventName,\n\t\t\t\t\tlabel: namedSig.fullyQualifiedEventName,\n\t\t\t\t})\n\t\t\t}\n\t\t})\n\n\t\treturn { eventChoicesByNamespace, namespaceChoices }\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AACA;AAMA;AAIA;AAMA;AACA;AACA;AACA;AACA;AAAiD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIjD,IAAMA,qBAAqB,GAAG,OAAO;AAC9B,IAAMC,oBAAoB,GAAGC,uCAAqB;AAAA;AAAA,IAIpCC,YAAY;EAAA;EAAA;EAAA;IAAA;IAAA;IAAA;MAAA;IAAA;IAAA;IAAA,kGACMC,8BAAuB;IAAA,sGAClC,+BAA+B;IAAA,mGAClC,CAAC,cAAc,EAAE,iBAAiB,CAAC;IAAA;EAAA;EAAA;IAAA;IAAA;MAAA,6FAE3D,iBACCC,OAA+D;QAAA;QAAA;UAAA;YAAA;cAAA;gBAEzDC,iBAAiB,GAAG,IAAI,CAACC,2BAA2B,CAACF,OAAO,CAAC;gBAAA;gBAG9DG,QAA+B,GAAG,CAAC,CAAC;gBAGvCC,sBAAsB,GAKnBH,iBAAiB,CALpBG,sBAAsB,EACbC,cAAc,GAIpBJ,iBAAiB,CAJpBK,OAAO,EACPC,SAAS,GAGNN,iBAAiB,CAHpBM,SAAS,EACTC,SAAS,GAENP,iBAAiB,CAFpBO,SAAS,EACTC,oBAAoB,GACjBR,iBAAiB,CADpBQ,oBAAoB;gBAGrB,IAAI,CAACC,EAAE,CAACC,YAAY,CAAC,4BAA4B,CAAC;gBAAA;gBAAA,OAE1B,IAAI,CAACC,mBAAmB,CAACJ,SAAS,CAAC;cAAA;gBAArDK,SAAS;gBAEf,IAAI,CAACH,EAAE,CAACI,WAAW,EAAE;gBAAA,IAEhBN,SAAS;kBAAA;kBAAA;gBAAA;gBAAA;gBAAA,OACK,IAAI,CAACO,gBAAgB,CAACF,SAAS,CAAC;cAAA;gBAAlDL,SAAS;cAAA;gBAAA,wBAIT,IAAI,CAACQ,2BAA2B,CAACH,SAAS,CAAC,EADpCI,uBAAuB,yBAAvBA,uBAAuB;gBAAA,IAG1BA,uBAAuB,CAACT,SAAS,CAAC;kBAAA;kBAAA;gBAAA;gBAAA,MAChC,IAAIU,mBAAW,CAAC;kBACrBC,IAAI,EAAE,oBAAoB;kBAC1BC,eAAe,YAAKZ,SAAS,uDAA6Ca,MAAM,CAACC,IAAI,CACpFL,uBAAuB,CACvB,CAACM,IAAI,CAAC,IAAI,CAAC,CAAE;kBACdC,UAAU,EAAE,CAAC,WAAW;gBACzB,CAAC,CAAC;cAAA;gBAAA,IAGEjB,SAAS;kBAAA;kBAAA;gBAAA;gBAAA;gBAAA,OACK,IAAI,CAACkB,YAAY,CAACZ,SAAS,EAAEL,SAAS,CAAC;cAAA;gBAAzDD,SAAS;cAAA;gBAGJmB,WAAW,GAAGlB,SAAS,KAAKZ,oBAAoB;gBACtD,IAAI8B,WAAW,EAAE;kBAChBlB,SAAS,GAAGmB,SAAS;gBACtB;gBAEMC,IAAI,GAAGC,+BAAa,CAACN,IAAI,CAAC;kBAC/BhB,SAAS,EAATA,SAAS;kBACTuB,cAAc,EAAEtB,SAAS;kBACzBF,OAAO,EAAED;gBACV,CAAC,CAAC;gBAAA,uBAEgBwB,+BAAa,CAACE,KAAK,CAACH,IAAI,CAAC,EAArCtB,OAAO,wBAAPA,OAAO;gBAEb,IAAI,CAAC0B,mBAAmB,CACvBf,uBAAuB,gBACvBT,SAAS,mDAAI,SAAS,EACtBD,SAAS,EACTqB,IAAI,CACJ;gBAEKK,mBAAmB,GAAGC,0BAAQ,CAACC,WAAW,CAC/C,IAAI,CAACC,GAAG,EACRhC,sBAAsB,CACtB;gBAAA;gBAAA,OAE6B,IAAI,CAACiC,cAAc,CAChD/B,OAAO,EACP2B,mBAAmB,CACnB;cAAA;gBAHKK,eAAe;gBAKfC,YAAY,GAAG/B,SAAS,KAAKb,qBAAqB;gBAKxD,IAAI4C,YAAY,EAAE;kBACXC,OAAO,GAAG,IAAIC,oCAAwB,EAAE;kBACxCC,aAAa,GAAGF,OAAO,CAACG,6BAA6B,CAC1D9B,SAAS,EACTgB,+BAAa,CAACN,IAAI,CAAC;oBAClBO,cAAc,EAAE,CAACJ,WAAW,GAAGlB,SAAS,GAAGmB,SAAS;oBACpDpB,SAAS,EAATA,SAAS;oBACTD,OAAO,EAAEgC;kBACV,CAAC,CAAC,CACF;kBAEDM,6BAA6B,GAC5BF,aAAa,CAACE,6BAA6B;kBAC5CC,iCAAiC,GAChCH,aAAa,CAACG,iCAAiC;gBACjD;gBAAC;gBAAA,OAEsB,IAAI,CAACC,aAAa,CAAC;kBACzCrC,oBAAoB,EAApBA,oBAAoB;kBACpBwB,mBAAmB,EAAnBA,mBAAmB;kBACnB3B,OAAO,EAAEgC,eAAe;kBACxB/B,SAAS,EAATA,SAAS;kBACTC,SAAS,EAATA,SAAS;kBACToC,6BAA6B,EAA7BA,6BAA6B;kBAC7BC,iCAAiC,EAAjCA;gBACD,CAAC,CAAC;cAAA;gBARF1C,QAAQ,CAAC4C,KAAK;gBAAA;gBAAA,OAUY,IAAI,CAACC,aAAa,EAAE;cAAA;gBAAxCC,WAAW;gBAEjB9C,QAAQ,GAAG+C,kBAAU,CAACC,kBAAkB,CAACF,WAAW,EAAE9C,QAAQ,CAAC;gBAAA,KAE3DoC,YAAY;kBAAA;kBAAA;gBAAA;gBAAA;gBAAA,OACW,IAAI,CAACa,UAAU,CAACpD,OAAO,CAAC;cAAA;gBAA5CiD,YAAW;gBACjB9C,QAAQ,GAAG+C,kBAAU,CAACC,kBAAkB,CAACF,YAAW,EAAE9C,QAAQ,CAAC;cAAA;gBAAA,iCAGzDA,QAAQ;cAAA;gBAAA;gBAAA;gBAAA,iCAER;kBACNkD,MAAM,EAAE;gBACT,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAEF;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,yGAED,kBAAkC7C,SAAkB;QAAA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAC7C8C,UAAU,GAAG,IAAI,CAACC,KAAK,CAAC,OAAO,CAAC;gBAAA;gBAAA,OAClB,IAAI,CAACA,KAAK,CAAC,OAAO,CAAC,CAACC,gBAAgB,EAAE;cAAA;gBAApDC,KAAK;gBAELC,kBAAkB,GACvBlD,SAAS,IACTA,SAAS,KAAKb,qBAAqB,IACnCa,SAAS,KAAKZ,oBAAoB,GAC/B,CAACY,SAAS,CAAC,iDACP,IAAI,CAACmD,uBAAuB,EAAE,IAAE,SAAS,EAAC;gBAE5C3D,OAA8B,GAAG;kBACtC4D,gBAAgB,EAAE,0BAACC,GAAW;oBAAA,OAAK,MAAI,CAACnD,EAAE,CAACC,YAAY,CAACkD,GAAG,CAAC;kBAAA;gBAC7D,CAAC;gBAED,IAAIJ,KAAK,CAACK,IAAI,EAAE;kBACf9D,OAAO,CAAC+D,cAAc,GAAGN,KAAK,CAACK,IAAI;gBACpC;gBAEA,IAAIJ,kBAAkB,CAACM,MAAM,GAAG,CAAC,EAAE;kBAClChE,OAAO,CAACiE,UAAU,GAAGP,kBAAkB;gBACxC;gBAAC;gBAAA,OAE2BJ,UAAU,CAAC1C,mBAAmB,CAACZ,OAAO,CAAC;cAAA;gBAAA;gBAA3Da,SAAS,yBAATA,SAAS;gBAAA,kCAEVA,SAAS;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAChB;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA,OAED,mCAAkC;MACjC,OAAO,IAAI,CAACqD,OAAO,CAAC,YAAY,CAAC,CAC/BC,GAAG,EAAE,CACLC,GAAG,CAAC,UAACC,CAAC;QAAA,OAAKA,CAAC,CAAC7D,SAAS;MAAA,EAAC;IAC1B;EAAC;IAAA;IAAA;MAAA,gGAED,kBACCR,OAA+D;QAAA;QAAA;UAAA;YAAA;cAAA;gBAEzDsE,WAAW,GAAG,IAAAC,6BAAqB,EAACC,4BAAqB,EAAExE,OAAO,CAAC;gBAAA;gBAAA,OAE/C,IAAI,CAACyE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAACC,OAAO,CAACJ,WAAW,CAAC;cAAA;gBAArErB,WAAW;gBAAA,kCACVA,WAAW;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAClB;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,mGAED,kBAA4BjD,OAQ3B;QAAA;QAAA;UAAA;YAAA;cAAA;gBAECiC,mBAAmB,GAKhBjC,OAAO,CALViC,mBAAmB,EACnBxB,oBAAoB,GAIjBT,OAAO,CAJVS,oBAAoB,EACpBD,SAAS,GAGNR,OAAO,CAHVQ,SAAS,EACTD,SAAS,GAENP,OAAO,CAFVO,SAAS,EACTD,OAAO,GACJN,OAAO,CADVM,OAAO;gBAGFqE,4BAA4B,GAAGzC,0BAAQ,CAACC,WAAW,CACxD,IAAI,CAACC,GAAG,EACR3B,oBAAoB,CACpB;gBACKmE,MAAM,GAAG,IAAI,CAACC,MAAM,CAAC,OAAO,CAAC;gBAAA;gBAAA,OACfD,MAAM,CAAC9B,aAAa,CAACb,mBAAmB,kCACxDjC,OAAO;kBACV8E,uBAAuB,EAAEjD,+BAAa,CAACN,IAAI,CAAC;oBAC3ChB,SAAS,EAATA,SAAS;oBACTuB,cAAc,EAAEtB,SAAS;oBACzBF,OAAO,EAAPA;kBACD,CAAC,CAAC;kBACFG,oBAAoB,EAAEkE;gBAA4B,GACjD;cAAA;gBARI5B,KAAK;gBAAA,kCAUJA,KAAK;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACZ;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA,OAED,6BACC9B,uBAAuD,EACvDT,SAAiB,EACjBD,SAA6B,EAC7BqB,IAAY,EACX;MACD,IAAMmD,YAAY,GAAG,CAAC,CAAC9D,uBAAuB,CAACT,SAAS,CAAC,CAACwE,IAAI,CAC7D,UAACC,CAAC;QAAA,OAAKA,CAAC,CAACC,KAAK,KAAK3E,SAAS,IAAI0E,CAAC,CAACC,KAAK,KAAKtD,IAAI;MAAA,EAChD;MAED,IAAI,CAACmD,YAAY,EAAE;QAClB,MAAM,IAAI7D,mBAAW,CAAC;UACrBC,IAAI,EAAE,oBAAoB;UAC1BC,eAAe,YAAKb,SAAS,8CAAoCU,uBAAuB,CACvFT,SAAS,CACT,CACC4D,GAAG,CAAC,UAACe,CAAC;YAAA,OAAKA,CAAC,CAACD,KAAK;UAAA,EAAC,CACnB3D,IAAI,CAAC,IAAI,CAAC,CAAE;UACdC,UAAU,EAAE,CAAC,WAAW;QACzB,CAAC,CAAC;MACH;IACD;EAAC;IAAA;IAAA;MAAA,mGAED;QAAA;UAAA;YAAA;cAAA;gBAAA,kCACQ,IAAI,CAACiD,MAAM,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAACC,OAAO,CAAC,CAAC,CAAC,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACzD;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,kGAED,kBACC7D,SAA0B,EAC1BL,SAAiB;QAAA;QAAA;UAAA;YAAA;cAAA;gBAEX4E,YAA4B,GACjC,IAAI,CAACpE,2BAA2B,CAACH,SAAS,CAAC,CAACI,uBAAuB,CAClET,SAAS,CACT;gBAAA;gBAAA,OAEsB,IAAI,CAACE,EAAE,CAAC2E,MAAM,CAAC;kBACtCC,IAAI,EAAE,QAAQ;kBACdC,KAAK,EAAE,iBAAiB;kBACxBC,UAAU,EAAE,IAAI;kBAChBxF,OAAO,EAAE;oBACRyF,OAAO,EAAEL;kBACV;gBACD,CAAC,CAAC;cAAA;gBAPI7E,SAAS;gBAAA,kCASRA,SAAS;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAChB;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,sGAED,kBAA+BM,SAA0B;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA,yBAC3B,IAAI,CAACG,2BAA2B,CAACH,SAAS,CAAC,EAAhE6E,gBAAgB,0BAAhBA,gBAAgB;gBAAA;gBAAA,OAEA,IAAI,CAAChF,EAAE,CAAC2E,MAAM,CAAC;kBACtCC,IAAI,EAAE,QAAQ;kBACdC,KAAK,EAAE,2BAA2B;kBAClCC,UAAU,EAAE,IAAI;kBAChBxF,OAAO,EAAE;oBACRyF,OAAO,EAAEC;kBACV;gBACD,CAAC,CAAC;cAAA;gBAPIlF,SAAS;gBAAA,kCASRA,SAAS;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAChB;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA,OAED,qCAAoCK,SAA0B,EAAE;MAC/D,IAAM6E,gBAAgC,GAAG,CACxC;QACCH,KAAK,EAAE,OAAO;QACdL,KAAK,EAAEvF;MACR,CAAC,CACD;MAED,IAAMsB,uBAAuD,GAAG;QAC/DwC,KAAK,EAAE,CACN;UACC8B,KAAK,EAAE,WAAW;UAClBL,KAAK,EAAE;QACR,CAAC,EACD;UACCK,KAAK,EAAE,UAAU;UACjBL,KAAK,EAAE;QACR,CAAC;MAEH,CAAC;MAEDrE,SAAS,CAAC8E,OAAO,CAAC,UAACC,QAAQ,EAAK;QAC/B,IAAMC,eAAe,GACpBC,mCAAiB,CAACC,uBAAuB,CAACH,QAAQ,CAAC;QAAA,2CAE7BC,eAAe;UAAA;QAAA;UAAA;YAAA;YAAA,IAA3BG,QAAQ;YAClB,IAAMxF,SAAS,4BAAGwF,QAAQ,CAAClE,cAAc,yEAAIjC,uCAAqB;YAElE,IAAI,CAAC6F,gBAAgB,CAACV,IAAI,CAAC,UAACiB,CAAC;cAAA,OAAKA,CAAC,CAACf,KAAK,KAAK1E,SAAS;YAAA,EAAC,EAAE;cACzDkF,gBAAgB,CAACQ,IAAI,CAAC;gBACrBX,KAAK,EAAEY,2BAAS,CAACC,QAAQ,CAAC5F,SAAS,CAAC;gBACpC0E,KAAK,EAAE1E;cACR,CAAC,CAAC;YACH;YAEA,IAAI,CAACS,uBAAuB,CAACT,SAAS,CAAC,EAAE;cACxCS,uBAAuB,CAACT,SAAS,CAAC,GAAG,EAAE;YACxC;YAEAS,uBAAuB,CAACT,SAAS,CAAC,CAAC0F,IAAI,CAAC;cACvChB,KAAK,EAAEc,QAAQ,CAAClB,uBAAuB;cACvCS,KAAK,EAAES,QAAQ,CAAClB;YACjB,CAAC,CAAC;UAAA;UAjBH,oDAAwC;YAAA;UAkBxC;QAAC;UAAA;QAAA;UAAA;QAAA;MACF,CAAC,CAAC;MAEF,OAAO;QAAE7D,uBAAuB,EAAvBA,uBAAuB;QAAEyE,gBAAgB,EAAhBA;MAAiB,CAAC;IACrD;EAAC;EAAA;AAAA,EA3TwCW,2BAAc;AAAA"}
|
|
1
|
+
{"version":3,"file":"ListenAction.js","names":["SKILL_EVENT_NAMESPACE","CORE_EVENT_NAMESPACE","MERCURY_API_NAMESPACE","ListenAction","eventListenActionSchema","options","normalizedOptions","validateAndNormalizeOptions","response","listenerDestinationDir","versionOptions","version","eventName","namespace","schemaTypesLookupDir","ui","startLoading","fetchEventContracts","contracts","stopLoading","collectNamespace","mapContractsToSelectChoices","eventChoicesByNamespace","SchemaError","code","friendlyMessage","Object","keys","join","parameters","collectEvent","isCoreEvent","undefined","fqen","eventNameUtil","eventNamespace","split","assertIsValidChoice","resolvedDestination","diskUtil","resolvePath","cwd","resolveVersion","resolvedVersion","isSkillEvent","builder","EventTemplateItemBuilder","templateItems","buildEventTemplateItemForName","emitPayloadSchemaTemplateItem","responsePayloadSchemaTemplateItem","writeListener","files","syncListeners","syncResults","actionUtil","mergeActionResults","syncEvents","errors","eventStore","Store","loadCurrentSkill","skill","namespacesForFetch","getDependencyNamespaces","didUpdateHandler","msg","slug","localNamespace","length","namespaces","Service","get","map","d","syncOptions","normalizeSchemaValues","syncEventActionSchema","Action","execute","resolvedSchemaTypesLookupDir","writer","Writer","fullyQualifiedEventName","isValidEvent","find","e","value","i","eventChoices","prompt","type","label","isRequired","choices","namespaceChoices","forEach","contract","namedSignatures","eventContractUtil","getNamedEventSignatures","namedSig","o","push","namesUtil","toPascal","AbstractAction"],"sources":["../../../../src/features/event/actions/ListenAction.ts"],"sourcesContent":["import { EventContract } from '@sprucelabs/mercury-types'\nimport {\n\tnormalizeSchemaValues,\n\tSchemaError,\n\tSchemaTemplateItem,\n\tSelectChoice,\n} from '@sprucelabs/schema'\nimport {\n\teventContractUtil,\n\teventNameUtil,\n} from '@sprucelabs/spruce-event-utils'\nimport {\n\tdiskUtil,\n\tnamesUtil,\n\tMERCURY_API_NAMESPACE,\n} from '@sprucelabs/spruce-skill-utils'\nimport { SpruceSchemas } from '#spruce/schemas/schemas.types'\nimport eventListenActionSchema from '#spruce/schemas/spruceCli/v2020_07_22/listenEventOptions.schema'\nimport syncEventActionSchema from '#spruce/schemas/spruceCli/v2020_07_22/syncEventOptions.schema'\nimport EventTemplateItemBuilder from '../../../templateItemBuilders/EventTemplateItemBuilder'\nimport actionUtil from '../../../utilities/action.utility'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\nimport { FetchContractsOptions } from '../stores/EventStore'\n\nconst SKILL_EVENT_NAMESPACE = 'skill'\nexport const CORE_EVENT_NAMESPACE = MERCURY_API_NAMESPACE\n\ntype OptionsSchema =\n\tSpruceSchemas.SpruceCli.v2020_07_22.ListenEventOptionsSchema\nexport default class ListenAction extends AbstractAction<OptionsSchema> {\n\tpublic optionsSchema: OptionsSchema = eventListenActionSchema\n\tpublic invocationMessage = 'Creating event listener... 🜒'\n\tpublic commandAliases = ['listen.event', 'create.listener']\n\n\tpublic async execute(\n\t\toptions: SpruceSchemas.SpruceCli.v2020_07_22.ListenEventOptions\n\t): Promise<FeatureActionResponse> {\n\t\tconst normalizedOptions = this.validateAndNormalizeOptions(options)\n\n\t\ttry {\n\t\t\tlet response: FeatureActionResponse = {}\n\n\t\t\tlet {\n\t\t\t\tlistenerDestinationDir,\n\t\t\t\tversion: versionOptions,\n\t\t\t\teventName,\n\t\t\t\tnamespace,\n\t\t\t\tschemaTypesLookupDir,\n\t\t\t} = normalizedOptions\n\n\t\t\tthis.ui.startLoading('Loading event contracts...')\n\n\t\t\tconst contracts = await this.fetchEventContracts(namespace)\n\n\t\t\tthis.ui.stopLoading()\n\n\t\t\tif (!namespace) {\n\t\t\t\tnamespace = await this.collectNamespace(contracts)\n\t\t\t}\n\n\t\t\tconst { eventChoicesByNamespace } =\n\t\t\t\tthis.mapContractsToSelectChoices(contracts)\n\n\t\t\tif (!eventChoicesByNamespace[namespace]) {\n\t\t\t\tthrow new SchemaError({\n\t\t\t\t\tcode: 'INVALID_PARAMETERS',\n\t\t\t\t\tfriendlyMessage: `${namespace} is not a valid event namespace. Try: \\n\\n${Object.keys(\n\t\t\t\t\t\teventChoicesByNamespace\n\t\t\t\t\t).join('\\n')}`,\n\t\t\t\t\tparameters: ['namespace'],\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tif (!eventName) {\n\t\t\t\teventName = await this.collectEvent(contracts, namespace)\n\t\t\t}\n\n\t\t\tconst isCoreEvent = namespace === CORE_EVENT_NAMESPACE\n\t\t\tif (isCoreEvent) {\n\t\t\t\tnamespace = undefined\n\t\t\t}\n\n\t\t\tconst fqen = eventNameUtil.join({\n\t\t\t\teventName,\n\t\t\t\teventNamespace: namespace,\n\t\t\t\tversion: versionOptions,\n\t\t\t})\n\n\t\t\tlet { version } = eventNameUtil.split(fqen)\n\n\t\t\tthis.assertIsValidChoice(\n\t\t\t\teventChoicesByNamespace,\n\t\t\t\tnamespace ?? 'mercury',\n\t\t\t\teventName,\n\t\t\t\tfqen\n\t\t\t)\n\n\t\t\tconst resolvedDestination = diskUtil.resolvePath(\n\t\t\t\tthis.cwd,\n\t\t\t\tlistenerDestinationDir\n\t\t\t)\n\n\t\t\tconst resolvedVersion = await this.resolveVersion(\n\t\t\t\tversion,\n\t\t\t\tresolvedDestination\n\t\t\t)\n\n\t\t\tconst isSkillEvent = namespace !== SKILL_EVENT_NAMESPACE\n\n\t\t\tlet emitPayloadSchemaTemplateItem: SchemaTemplateItem | undefined\n\t\t\tlet responsePayloadSchemaTemplateItem: SchemaTemplateItem | undefined\n\n\t\t\tif (isSkillEvent) {\n\t\t\t\tconst builder = new EventTemplateItemBuilder()\n\t\t\t\tconst templateItems = builder.buildEventTemplateItemForName(\n\t\t\t\t\tcontracts,\n\t\t\t\t\teventNameUtil.join({\n\t\t\t\t\t\teventNamespace: !isCoreEvent ? namespace : undefined,\n\t\t\t\t\t\teventName,\n\t\t\t\t\t\tversion: resolvedVersion,\n\t\t\t\t\t})\n\t\t\t\t)\n\n\t\t\t\temitPayloadSchemaTemplateItem =\n\t\t\t\t\ttemplateItems.emitPayloadSchemaTemplateItem\n\t\t\t\tresponsePayloadSchemaTemplateItem =\n\t\t\t\t\ttemplateItems.responsePayloadSchemaTemplateItem\n\t\t\t}\n\n\t\t\tresponse.files = await this.writeListener({\n\t\t\t\tschemaTypesLookupDir,\n\t\t\t\tresolvedDestination,\n\t\t\t\tversion: resolvedVersion,\n\t\t\t\teventName,\n\t\t\t\tnamespace,\n\t\t\t\temitPayloadSchemaTemplateItem,\n\t\t\t\tresponsePayloadSchemaTemplateItem,\n\t\t\t})\n\n\t\t\tconst syncResults = await this.syncListeners()\n\n\t\t\tresponse = actionUtil.mergeActionResults(syncResults, response)\n\n\t\t\tif (isSkillEvent) {\n\t\t\t\tconst syncResults = await this.syncEvents(options)\n\t\t\t\tresponse = actionUtil.mergeActionResults(syncResults, response)\n\t\t\t}\n\n\t\t\treturn response\n\t\t} catch (err) {\n\t\t\treturn {\n\t\t\t\terrors: [err],\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate async fetchEventContracts(namespace?: string) {\n\t\tconst eventStore = this.Store('event')\n\n\t\tconst skill = await this.Store('skill').loadCurrentSkill()\n\n\t\tconst namespacesForFetch =\n\t\t\tnamespace &&\n\t\t\tnamespace !== SKILL_EVENT_NAMESPACE &&\n\t\t\tnamespace !== CORE_EVENT_NAMESPACE\n\t\t\t\t? [namespace]\n\t\t\t\t: [...this.getDependencyNamespaces(), 'mercury']\n\n\t\tconst options: FetchContractsOptions = {\n\t\t\tdidUpdateHandler: (msg: string) => this.ui.startLoading(msg),\n\t\t}\n\n\t\tif (skill.slug) {\n\t\t\toptions.localNamespace = skill.slug\n\t\t}\n\n\t\tif (namespacesForFetch.length > 0) {\n\t\t\toptions.namespaces = namespacesForFetch\n\t\t}\n\n\t\tconst { contracts } = await eventStore.fetchEventContracts(options)\n\n\t\treturn contracts\n\t}\n\n\tprivate getDependencyNamespaces() {\n\t\treturn this.Service('dependency')\n\t\t\t.get()\n\t\t\t.map((d) => d.namespace)\n\t}\n\n\tprivate async syncEvents(\n\t\toptions: SpruceSchemas.SpruceCli.v2020_07_22.ListenEventOptions\n\t) {\n\t\tconst syncOptions = normalizeSchemaValues(syncEventActionSchema, options)\n\n\t\tconst syncResults = await this.Action('event', 'sync').execute(syncOptions)\n\t\treturn syncResults\n\t}\n\n\tprivate async writeListener(options: {\n\t\tresolvedDestination: string\n\t\tschemaTypesLookupDir: string\n\t\tnamespace?: string | undefined\n\t\teventName: string\n\t\temitPayloadSchemaTemplateItem: SchemaTemplateItem | undefined\n\t\tversion: string\n\t\tresponsePayloadSchemaTemplateItem: SchemaTemplateItem | undefined\n\t}) {\n\t\tconst {\n\t\t\tresolvedDestination,\n\t\t\tschemaTypesLookupDir,\n\t\t\tnamespace,\n\t\t\teventName,\n\t\t\tversion,\n\t\t} = options\n\n\t\tconst resolvedSchemaTypesLookupDir = diskUtil.resolvePath(\n\t\t\tthis.cwd,\n\t\t\tschemaTypesLookupDir\n\t\t)\n\t\tconst writer = this.Writer('event')\n\t\tconst files = await writer.writeListener(resolvedDestination, {\n\t\t\t...options,\n\t\t\tfullyQualifiedEventName: eventNameUtil.join({\n\t\t\t\teventName,\n\t\t\t\teventNamespace: namespace,\n\t\t\t\tversion,\n\t\t\t}),\n\t\t\tschemaTypesLookupDir: resolvedSchemaTypesLookupDir,\n\t\t})\n\n\t\treturn files\n\t}\n\n\tprivate assertIsValidChoice(\n\t\teventChoicesByNamespace: Record<string, SelectChoice[]>,\n\t\tnamespace: string,\n\t\teventName: string | undefined,\n\t\tfqen: string\n\t) {\n\t\tconst isValidEvent = !!eventChoicesByNamespace[namespace].find(\n\t\t\t(e) => e.value === eventName || e.value === fqen\n\t\t)\n\n\t\tif (!isValidEvent) {\n\t\t\tthrow new SchemaError({\n\t\t\t\tcode: 'INVALID_PARAMETERS',\n\t\t\t\tfriendlyMessage: `${eventName} is not a valid event . Try: \\n\\n${eventChoicesByNamespace[\n\t\t\t\t\tnamespace\n\t\t\t\t]\n\t\t\t\t\t.map((i) => i.value)\n\t\t\t\t\t.join('\\n')}`,\n\t\t\t\tparameters: ['eventName'],\n\t\t\t})\n\t\t}\n\t}\n\n\tprivate async syncListeners() {\n\t\treturn this.Action('event', 'sync.listeners').execute({})\n\t}\n\n\tprivate async collectEvent(\n\t\tcontracts: EventContract[],\n\t\tnamespace: string\n\t): Promise<string> {\n\t\tconst eventChoices: SelectChoice[] =\n\t\t\tthis.mapContractsToSelectChoices(contracts).eventChoicesByNamespace[\n\t\t\t\tnamespace\n\t\t\t]\n\n\t\tconst eventName = await this.ui.prompt({\n\t\t\ttype: 'select',\n\t\t\tlabel: 'Select an event',\n\t\t\tisRequired: true,\n\t\t\toptions: {\n\t\t\t\tchoices: eventChoices,\n\t\t\t},\n\t\t})\n\n\t\treturn eventName\n\t}\n\n\tprivate async collectNamespace(contracts: EventContract[]): Promise<string> {\n\t\tconst { namespaceChoices } = this.mapContractsToSelectChoices(contracts)\n\n\t\tconst namespace = await this.ui.prompt({\n\t\t\ttype: 'select',\n\t\t\tlabel: 'Select an event namespace',\n\t\t\tisRequired: true,\n\t\t\toptions: {\n\t\t\t\tchoices: namespaceChoices,\n\t\t\t},\n\t\t})\n\n\t\treturn namespace\n\t}\n\n\tprivate mapContractsToSelectChoices(contracts: EventContract[]) {\n\t\tconst namespaceChoices: SelectChoice[] = [\n\t\t\t{\n\t\t\t\tlabel: 'Skill',\n\t\t\t\tvalue: SKILL_EVENT_NAMESPACE,\n\t\t\t},\n\t\t]\n\n\t\tconst eventChoicesByNamespace: Record<string, SelectChoice[]> = {\n\t\t\tskill: [\n\t\t\t\t{\n\t\t\t\t\tlabel: 'will-boot',\n\t\t\t\t\tvalue: 'will-boot',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'did-boot',\n\t\t\t\t\tvalue: 'did-boot',\n\t\t\t\t},\n\t\t\t],\n\t\t}\n\n\t\tcontracts.forEach((contract) => {\n\t\t\tconst namedSignatures =\n\t\t\t\teventContractUtil.getNamedEventSignatures(contract)\n\n\t\t\tfor (const namedSig of namedSignatures) {\n\t\t\t\tconst namespace = namedSig.eventNamespace ?? MERCURY_API_NAMESPACE\n\n\t\t\t\tif (!namespaceChoices.find((o) => o.value === namespace)) {\n\t\t\t\t\tnamespaceChoices.push({\n\t\t\t\t\t\tlabel: namesUtil.toPascal(namespace),\n\t\t\t\t\t\tvalue: namespace,\n\t\t\t\t\t})\n\t\t\t\t}\n\n\t\t\t\tif (!eventChoicesByNamespace[namespace]) {\n\t\t\t\t\teventChoicesByNamespace[namespace] = []\n\t\t\t\t}\n\n\t\t\t\teventChoicesByNamespace[namespace].push({\n\t\t\t\t\tvalue: namedSig.fullyQualifiedEventName,\n\t\t\t\t\tlabel: namedSig.fullyQualifiedEventName,\n\t\t\t\t})\n\t\t\t}\n\t\t})\n\n\t\treturn { eventChoicesByNamespace, namespaceChoices }\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -23,7 +23,8 @@ var optionsSchema = (0, _schema.buildSchema)({
|
|
|
23
23
|
description: 'Point your skill to different Mercury environments.',
|
|
24
24
|
fields: {
|
|
25
25
|
remote: {
|
|
26
|
-
label: '
|
|
26
|
+
label: 'Set remote',
|
|
27
|
+
hint: 'Start with developer and read more here: https://developer.spruce.bot/#/skills/index',
|
|
27
28
|
type: 'select',
|
|
28
29
|
isRequired: true,
|
|
29
30
|
options: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SetRemoteAction.js","names":["optionsSchema","buildSchema","id","description","fields","remote","label","type","isRequired","options","choices","value","SyncAction","validateAndNormalizeOptions","r","Service","set","summaryLines","getHost","AbstractAction"],"sources":["../../../../src/features/event/actions/SetRemoteAction.ts"],"sourcesContent":["import { buildSchema, SchemaValues } from '@sprucelabs/schema'\nimport { Remote } from '@sprucelabs/spruce-event-utils'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\n\nconst optionsSchema = buildSchema({\n\tid: 'setRemoteOptions',\n\tdescription: 'Point your skill to different Mercury environments.',\n\tfields: {\n\t\tremote: {\n\t\t\tlabel: '
|
|
1
|
+
{"version":3,"file":"SetRemoteAction.js","names":["optionsSchema","buildSchema","id","description","fields","remote","label","hint","type","isRequired","options","choices","value","SyncAction","validateAndNormalizeOptions","r","Service","set","summaryLines","getHost","AbstractAction"],"sources":["../../../../src/features/event/actions/SetRemoteAction.ts"],"sourcesContent":["import { buildSchema, SchemaValues } from '@sprucelabs/schema'\nimport { Remote } from '@sprucelabs/spruce-event-utils'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\n\nconst optionsSchema = buildSchema({\n\tid: 'setRemoteOptions',\n\tdescription: 'Point your skill to different Mercury environments.',\n\tfields: {\n\t\tremote: {\n\t\t\tlabel: 'Set remote',\n\t\t\thint: 'Start with developer and read more here: https://developer.spruce.bot/#/skills/index',\n\t\t\ttype: 'select',\n\t\t\tisRequired: true,\n\t\t\toptions: {\n\t\t\t\tchoices: [\n\t\t\t\t\t{\n\t\t\t\t\t\tvalue: 'local',\n\t\t\t\t\t\tlabel: 'Local',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tvalue: 'demo',\n\t\t\t\t\t\tlabel: 'Demo',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tvalue: 'developer',\n\t\t\t\t\t\tlabel: 'Development',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tvalue: 'sandbox',\n\t\t\t\t\t\tlabel: 'Sandbox',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tvalue: 'polish',\n\t\t\t\t\t\tlabel: 'Polish',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tvalue: 'production',\n\t\t\t\t\t\tlabel: 'Production',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t},\n\t},\n})\n\ntype OptionsSchema = typeof optionsSchema\ntype Options = SchemaValues<OptionsSchema>\n\nexport default class SyncAction extends AbstractAction<OptionsSchema> {\n\tpublic commandAliases = ['set.remote [remote]']\n\tpublic optionsSchema: OptionsSchema = optionsSchema\n\tpublic invocationMessage = 'Set remote... 🜒'\n\n\tpublic async execute(options: Options): Promise<FeatureActionResponse> {\n\t\tconst { remote } = this.validateAndNormalizeOptions(options)\n\n\t\tconst r = this.Service('remote')\n\t\tr.set(remote as Remote)\n\n\t\treturn {\n\t\t\tsummaryLines: [`Remote: ${remote}`, `Host: ${r.getHost()}`],\n\t\t}\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAEA;AAAiD;AAAA;AAGjD,IAAMA,aAAa,GAAG,IAAAC,mBAAW,EAAC;EACjCC,EAAE,EAAE,kBAAkB;EACtBC,WAAW,EAAE,qDAAqD;EAClEC,MAAM,EAAE;IACPC,MAAM,EAAE;MACPC,KAAK,EAAE,YAAY;MACnBC,IAAI,EAAE,sFAAsF;MAC5FC,IAAI,EAAE,QAAQ;MACdC,UAAU,EAAE,IAAI;MAChBC,OAAO,EAAE;QACRC,OAAO,EAAE,CACR;UACCC,KAAK,EAAE,OAAO;UACdN,KAAK,EAAE;QACR,CAAC,EACD;UACCM,KAAK,EAAE,MAAM;UACbN,KAAK,EAAE;QACR,CAAC,EACD;UACCM,KAAK,EAAE,WAAW;UAClBN,KAAK,EAAE;QACR,CAAC,EACD;UACCM,KAAK,EAAE,SAAS;UAChBN,KAAK,EAAE;QACR,CAAC,EACD;UACCM,KAAK,EAAE,QAAQ;UACfN,KAAK,EAAE;QACR,CAAC,EACD;UACCM,KAAK,EAAE,YAAY;UACnBN,KAAK,EAAE;QACR,CAAC;MAEH;IACD;EACD;AACD,CAAC,CAAC;AAAA,IAKmBO,UAAU;EAAA;EAAA;EAAA;IAAA;IAAA;IAAA;MAAA;IAAA;IAAA;IAAA,mGACN,CAAC,qBAAqB,CAAC;IAAA,kGACTb,aAAa;IAAA,sGACxB,kBAAkB;IAAA;EAAA;EAAA;IAAA;IAAA;MAAA,6FAE7C,iBAAqBU,OAAgB;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA,wBACjB,IAAI,CAACI,2BAA2B,CAACJ,OAAO,CAAC,EAApDL,MAAM,yBAANA,MAAM;gBAERU,CAAC,GAAG,IAAI,CAACC,OAAO,CAAC,QAAQ,CAAC;gBAChCD,CAAC,CAACE,GAAG,CAACZ,MAAM,CAAW;gBAAA,iCAEhB;kBACNa,YAAY,EAAE,mBAAYb,MAAM,mBAAaU,CAAC,CAACI,OAAO,EAAE;gBACzD,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACD;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;EAAA;AAAA,EAdsCC,2BAAc;AAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SyncListenersAction.js","names":["syncListenersOptionScheam","buildSchema","id","fields","SyncListenerAction","Store","loadListeners","listeners","builder","ListenerTemplateItemBuilder","templateItems","buildTemplateItems","cwd","Writer","writeListenerMap","diskUtil","resolveHashSprucePath","files","AbstractAction"],"sources":["../../../../src/features/event/actions/SyncListenersAction.ts"],"sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport AbstractAction from '../../AbstractAction'\nimport ListenerTemplateItemBuilder from '../builders/ListenerTemplateItemBuilder'\n\nconst syncListenersOptionScheam = buildSchema({\n\tid: 'syncListenersOptions',\n\tfields: {},\n})\n\ntype OptionsSchema = typeof syncListenersOptionScheam\n\nexport default class SyncListenerAction extends AbstractAction<OptionsSchema> {\n\tpublic optionsSchema: OptionsSchema = syncListenersOptionScheam\n\tpublic invocationMessage = 'Syncing listeners... 🎧'\n\tpublic commandAliases = ['sync.listeners']\n\n\tpublic async execute() {\n\t\tconst listeners = await this.Store('listener').loadListeners()\n\t\tconst builder = new ListenerTemplateItemBuilder()\n\
|
|
1
|
+
{"version":3,"file":"SyncListenersAction.js","names":["syncListenersOptionScheam","buildSchema","id","fields","SyncListenerAction","Store","loadListeners","listeners","builder","ListenerTemplateItemBuilder","templateItems","buildTemplateItems","cwd","Writer","writeListenerMap","diskUtil","resolveHashSprucePath","files","AbstractAction"],"sources":["../../../../src/features/event/actions/SyncListenersAction.ts"],"sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport AbstractAction from '../../AbstractAction'\nimport ListenerTemplateItemBuilder from '../builders/ListenerTemplateItemBuilder'\n\nconst syncListenersOptionScheam = buildSchema({\n\tid: 'syncListenersOptions',\n\tfields: {},\n})\n\ntype OptionsSchema = typeof syncListenersOptionScheam\n\nexport default class SyncListenerAction extends AbstractAction<OptionsSchema> {\n\tpublic optionsSchema: OptionsSchema = syncListenersOptionScheam\n\tpublic invocationMessage = 'Syncing listeners... 🎧'\n\tpublic commandAliases = ['sync.listeners']\n\n\tpublic async execute() {\n\t\tconst listeners = await this.Store('listener').loadListeners()\n\t\tconst builder = new ListenerTemplateItemBuilder()\n\t\tconst templateItems = builder.buildTemplateItems({\n\t\t\tlisteners,\n\t\t\tcwd: this.cwd,\n\t\t})\n\n\t\tconst files = await this.Writer('event').writeListenerMap(\n\t\t\tdiskUtil.resolveHashSprucePath(this.cwd, 'events'),\n\t\t\t{\n\t\t\t\tlisteners: templateItems,\n\t\t\t}\n\t\t)\n\n\t\treturn {\n\t\t\tfiles,\n\t\t}\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AAAiF;AAAA;AAEjF,IAAMA,yBAAyB,GAAG,IAAAC,mBAAW,EAAC;EAC7CC,EAAE,EAAE,sBAAsB;EAC1BC,MAAM,EAAE,CAAC;AACV,CAAC,CAAC;AAAA,IAImBC,kBAAkB;EAAA;EAAA;EAAA;IAAA;IAAA;IAAA;MAAA;IAAA;IAAA;IAAA,kGACAJ,yBAAyB;IAAA,sGACpC,yBAAyB;IAAA,mGAC5B,CAAC,gBAAgB,CAAC;IAAA;EAAA;EAAA;IAAA;IAAA;MAAA,6FAE1C;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACyB,IAAI,CAACK,KAAK,CAAC,UAAU,CAAC,CAACC,aAAa,EAAE;cAAA;gBAAxDC,SAAS;gBACTC,OAAO,GAAG,IAAIC,uCAA2B,EAAE;gBAC3CC,aAAa,GAAGF,OAAO,CAACG,kBAAkB,CAAC;kBAChDJ,SAAS,EAATA,SAAS;kBACTK,GAAG,EAAE,IAAI,CAACA;gBACX,CAAC,CAAC;gBAAA;gBAAA,OAEkB,IAAI,CAACC,MAAM,CAAC,OAAO,CAAC,CAACC,gBAAgB,CACxDC,0BAAQ,CAACC,qBAAqB,CAAC,IAAI,CAACJ,GAAG,EAAE,QAAQ,CAAC,EAClD;kBACCL,SAAS,EAAEG;gBACZ,CAAC,CACD;cAAA;gBALKO,KAAK;gBAAA,iCAOJ;kBACNA,KAAK,EAALA;gBACD,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACD;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;EAAA;AAAA,EAvB8CC,2BAAc;AAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeFeature.js","names":["NodeFeature","options","nodeFeatureOptionsSchema","universalDevDependencies","universalScripts","universalFileDescriptions","diskUtil","resolvePath","__dirname","doesFileExist","cwd","emitter","on","payload","featureCode","actionCode","handleUpgrade","ui","clear","renderHero","startLoading","Service","execute","summaryLines","errors","destination","resolveDestination","doesDirExist","createDir","files","name","path","action","Writer","writeNodeModule","written","push","installScripts","pkg","set","value","namesUtil","toKebab","description","unset","Store","setCurrentSkillsNamespace","scriptUpdater","ScriptUpdater","FromFeature","update","AbstractFeature"],"sources":["../../../src/features/node/NodeFeature.ts"],"sourcesContent":["import { Schema, SchemaValues } from '@sprucelabs/schema'\nimport { SpruceSchemas } from '@sprucelabs/spruce-core-schemas'\nimport { diskUtil, namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport nodeFeatureOptionsSchema from '#spruce/schemas/spruceCli/v2020_07_22/nodeFeatureOptions.schema'\nimport { FileDescription, GeneratedFile } from '../../types/cli.types'\nimport ScriptUpdater from '../../updaters/ScriptUpdater'\nimport AbstractFeature, { FeatureDependency } from '../AbstractFeature'\nimport {\n\tActionOptions,\n\tFeatureActionResponse,\n\tFeatureCode,\n} from '../features.types'\nimport universalDevDependencies from '../universalDevDependencies'\nimport universalFileDescriptions from '../universalFileDescriptions'\nimport universalScripts from '../universalScripts'\n\ntype OptionsSchema =\n\tSpruceSchemas.SpruceCli.v2020_07_22.NodeFeatureOptionsSchema\ntype Options = SpruceSchemas.SpruceCli.v2020_07_22.NodeFeatureOptions\n\ndeclare module '../../features/features.types' {\n\tinterface FeatureMap {\n\t\tnode: NodeFeature\n\t}\n\n\tinterface FeatureOptionsMap {\n\t\tnode: SchemaValues<OptionsSchema>\n\t}\n}\n\nexport default class NodeFeature<\n\tS extends OptionsSchema = OptionsSchema\n> extends AbstractFeature<S> {\n\tpublic code: FeatureCode = 'node'\n\tpublic nameReadable = 'nodejs support'\n\tpublic description = ''\n\tpublic dependencies: FeatureDependency[] = []\n\tpublic optionsSchema = nodeFeatureOptionsSchema as S\n\tpublic packageDependencies = [...universalDevDependencies]\n\n\tpublic scripts = {\n\t\t...universalScripts,\n\t}\n\n\tpublic readonly fileDescriptions: FileDescription[] = [\n\t\t...universalFileDescriptions,\n\t]\n\n\tpublic actionsDir = diskUtil.resolvePath(__dirname, 'actions')\n\n\tpublic constructor(options: ActionOptions) {\n\t\tsuper(options)\n\n\t\tvoid this.emitter.on('feature.did-execute', async (payload) => {\n\t\t\tif (payload.featureCode === 'node' && payload.actionCode === 'upgrade') {\n\t\t\t\treturn this.handleUpgrade()\n\t\t\t}\n\n\t\t\treturn {}\n\t\t})\n\t}\n\n\tprivate async handleUpgrade(): Promise<FeatureActionResponse> {\n\t\ttry {\n\t\t\tthis.ui.clear()\n\t\t\tthis.ui.renderHero('Upgrade')\n\n\t\t\tthis.ui.startLoading('Cleaning build...')\n\t\t\tawait this.Service('command').execute('yarn clean.build')\n\n\t\t\tthis.ui.startLoading('Building for development...')\n\t\t\tawait this.Service('command').execute('yarn build.dev')\n\n\t\t\treturn {\n\t\t\t\tsummaryLines: [\n\t\t\t\t\t'Build cleared.',\n\t\t\t\t\t'Lint rules applied to source.',\n\t\t\t\t\t'Code rebuilt successfully.',\n\t\t\t\t],\n\t\t\t}\n\t\t} catch (err) {\n\t\t\treturn {\n\t\t\t\terrors: [err],\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic async beforePackageInstall(options: Options) {\n\t\tconst destination = this.resolveDestination(options)\n\n\t\tif (!diskUtil.doesDirExist(destination)) {\n\t\t\tdiskUtil.createDir(destination)\n\t\t}\n\n\t\tconst files: GeneratedFile[] = [\n\t\t\t{\n\t\t\t\tname: 'package.json',\n\t\t\t\tpath: diskUtil.resolvePath(destination, 'package.json'),\n\t\t\t\taction: 'generated',\n\t\t\t},\n\t\t]\n\n\t\tawait this.Service('command', destination).execute('yarn init -y')\n\n\t\tconst written = await this.Writer('node').writeNodeModule(destination)\n\n\t\tfiles.push(...written)\n\n\t\tawait this.installScripts(destination)\n\n\t\treturn { files, cwd: destination }\n\t}\n\n\tprivate resolveDestination(options: Options) {\n\t\treturn diskUtil.resolvePath(this.cwd, options.destination ?? '')\n\t}\n\n\tpublic async afterPackageInstall(\n\t\toptions: S extends Schema ? SchemaValues<S> : undefined\n\t) {\n\t\tconst cwd = this.resolveDestination(options)\n\t\tconst pkg = this.Service('pkg', cwd)\n\n\t\tpkg.set({ path: 'name', value: namesUtil.toKebab(options.name) })\n\t\tpkg.set({ path: 'description', value: options.description })\n\t\tpkg.set({ path: 'version', value: '0.0.1' })\n\n\t\tpkg.unset('main')\n\t\tpkg.unset('license')\n\n\t\tawait this.Store('skill', {
|
|
1
|
+
{"version":3,"file":"NodeFeature.js","names":["NodeFeature","options","nodeFeatureOptionsSchema","universalDevDependencies","universalScripts","universalFileDescriptions","diskUtil","resolvePath","__dirname","doesFileExist","cwd","emitter","on","payload","featureCode","actionCode","handleUpgrade","ui","clear","renderHero","startLoading","Service","execute","summaryLines","errors","destination","resolveDestination","doesDirExist","createDir","files","name","path","action","Writer","writeNodeModule","written","push","installScripts","pkg","set","value","namesUtil","toKebab","description","unset","Store","setCurrentSkillsNamespace","scriptUpdater","ScriptUpdater","FromFeature","update","AbstractFeature"],"sources":["../../../src/features/node/NodeFeature.ts"],"sourcesContent":["import { Schema, SchemaValues } from '@sprucelabs/schema'\nimport { SpruceSchemas } from '@sprucelabs/spruce-core-schemas'\nimport { diskUtil, namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport nodeFeatureOptionsSchema from '#spruce/schemas/spruceCli/v2020_07_22/nodeFeatureOptions.schema'\nimport { FileDescription, GeneratedFile } from '../../types/cli.types'\nimport ScriptUpdater from '../../updaters/ScriptUpdater'\nimport AbstractFeature, { FeatureDependency } from '../AbstractFeature'\nimport {\n\tActionOptions,\n\tFeatureActionResponse,\n\tFeatureCode,\n} from '../features.types'\nimport universalDevDependencies from '../universalDevDependencies'\nimport universalFileDescriptions from '../universalFileDescriptions'\nimport universalScripts from '../universalScripts'\n\ntype OptionsSchema =\n\tSpruceSchemas.SpruceCli.v2020_07_22.NodeFeatureOptionsSchema\ntype Options = SpruceSchemas.SpruceCli.v2020_07_22.NodeFeatureOptions\n\ndeclare module '../../features/features.types' {\n\tinterface FeatureMap {\n\t\tnode: NodeFeature\n\t}\n\n\tinterface FeatureOptionsMap {\n\t\tnode: SchemaValues<OptionsSchema>\n\t}\n}\n\nexport default class NodeFeature<\n\tS extends OptionsSchema = OptionsSchema\n> extends AbstractFeature<S> {\n\tpublic code: FeatureCode = 'node'\n\tpublic nameReadable = 'nodejs support'\n\tpublic description = ''\n\tpublic dependencies: FeatureDependency[] = []\n\tpublic optionsSchema = nodeFeatureOptionsSchema as S\n\tpublic packageDependencies = [...universalDevDependencies]\n\n\tpublic scripts = {\n\t\t...universalScripts,\n\t}\n\n\tpublic readonly fileDescriptions: FileDescription[] = [\n\t\t...universalFileDescriptions,\n\t]\n\n\tpublic actionsDir = diskUtil.resolvePath(__dirname, 'actions')\n\n\tpublic constructor(options: ActionOptions) {\n\t\tsuper(options)\n\n\t\tvoid this.emitter.on('feature.did-execute', async (payload) => {\n\t\t\tif (payload.featureCode === 'node' && payload.actionCode === 'upgrade') {\n\t\t\t\treturn this.handleUpgrade()\n\t\t\t}\n\n\t\t\treturn {}\n\t\t})\n\t}\n\n\tprivate async handleUpgrade(): Promise<FeatureActionResponse> {\n\t\ttry {\n\t\t\tthis.ui.clear()\n\t\t\tthis.ui.renderHero('Upgrade')\n\n\t\t\tthis.ui.startLoading('Cleaning build...')\n\t\t\tawait this.Service('command').execute('yarn clean.build')\n\n\t\t\tthis.ui.startLoading('Building for development...')\n\t\t\tawait this.Service('command').execute('yarn build.dev')\n\n\t\t\treturn {\n\t\t\t\tsummaryLines: [\n\t\t\t\t\t'Build cleared.',\n\t\t\t\t\t'Lint rules applied to source.',\n\t\t\t\t\t'Code rebuilt successfully.',\n\t\t\t\t],\n\t\t\t}\n\t\t} catch (err) {\n\t\t\treturn {\n\t\t\t\terrors: [err],\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic async beforePackageInstall(options: Options) {\n\t\tconst destination = this.resolveDestination(options)\n\n\t\tif (!diskUtil.doesDirExist(destination)) {\n\t\t\tdiskUtil.createDir(destination)\n\t\t}\n\n\t\tconst files: GeneratedFile[] = [\n\t\t\t{\n\t\t\t\tname: 'package.json',\n\t\t\t\tpath: diskUtil.resolvePath(destination, 'package.json'),\n\t\t\t\taction: 'generated',\n\t\t\t},\n\t\t]\n\n\t\tawait this.Service('command', destination).execute('yarn init -y')\n\n\t\tconst written = await this.Writer('node').writeNodeModule(destination)\n\n\t\tfiles.push(...written)\n\n\t\tawait this.installScripts(destination)\n\n\t\treturn { files, cwd: destination }\n\t}\n\n\tprivate resolveDestination(options: Options) {\n\t\treturn diskUtil.resolvePath(this.cwd, options.destination ?? '')\n\t}\n\n\tpublic async afterPackageInstall(\n\t\toptions: S extends Schema ? SchemaValues<S> : undefined\n\t) {\n\t\tconst cwd = this.resolveDestination(options)\n\t\tconst pkg = this.Service('pkg', cwd)\n\n\t\tpkg.set({ path: 'name', value: namesUtil.toKebab(options.name) })\n\t\tpkg.set({ path: 'description', value: options.description })\n\t\tpkg.set({ path: 'version', value: '0.0.1' })\n\n\t\tpkg.unset('main')\n\t\tpkg.unset('license')\n\n\t\tawait this.Store('skill', {\n\t\t\tcwd,\n\t\t}).setCurrentSkillsNamespace(options.name)\n\n\t\treturn {}\n\t}\n\n\tprivate async installScripts(destination = this.cwd) {\n\t\tconst scriptUpdater = ScriptUpdater.FromFeature(this, {\n\t\t\tcwd: destination,\n\t\t})\n\n\t\tawait scriptUpdater.update()\n\t}\n\n\tpublic isInstalled = async (): Promise<boolean> => {\n\t\treturn diskUtil.doesFileExist(\n\t\t\tdiskUtil.resolvePath(this.cwd, 'package.json')\n\t\t)\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SkillFeature.js","names":["SkillFeature","options","name","version","isDev","universalDevDependencies","skillFeatureSchema","diskUtil","resolvePath","__dirname","node","yarn","boot","health","universalScripts","universalFileDescriptions","path","description","shouldOverwriteWhenChanged","emitter","on","handleRegisterAbstractTestClasses","bind","handleWillExecute","abstractClasses","label","featureCode","install","files","cwd","resolveDestination","destination","Store","setCurrentSkillsNamespace","validateSchemaValues","doesDirExist","createDir","skillGenerator","Writer","writeSkill","installScripts","setEngines","env","Service","set","scriptUpdater","ScriptUpdater","FromFeature","update","pkg","engines","get","all","value","actionCode","upgradeOptions","featureInstaller","isInstalled","updater","Updater","updateFiles","AbstractFeature"],"sources":["../../../src/features/skill/SkillFeature.ts"],"sourcesContent":["import { SchemaValues, validateSchemaValues } from '@sprucelabs/schema'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { SpruceSchemas } from '#spruce/schemas/schemas.types'\nimport skillFeatureSchema from '#spruce/schemas/spruceCli/v2020_07_22/skillFeature.schema'\nimport { FileDescription, NpmPackage } from '../../types/cli.types'\nimport ScriptUpdater from '../../updaters/ScriptUpdater'\nimport AbstractFeature, { FeatureOptions } from '../AbstractFeature'\nimport { FeatureCode } from '../features.types'\nimport universalDevDependencies from '../universalDevDependencies'\nimport universalFileDescriptions from '../universalFileDescriptions'\nimport universalScripts from '../universalScripts'\nimport Updater from './updaters/Updater'\n\ntype SkillFeatureOptionsSchema =\n\tSpruceSchemas.SpruceCli.v2020_07_22.SkillFeatureSchema\ntype SkillFeatureOptions = SpruceSchemas.SpruceCli.v2020_07_22.SkillFeature\n\ndeclare module '../../features/features.types' {\n\tinterface FeatureMap {\n\t\tskill: SkillFeature\n\t}\n\n\tinterface FeatureOptionsMap {\n\t\tskill: SchemaValues<SkillFeatureOptionsSchema>\n\t}\n}\n\ntype UpgradeOptions = SpruceSchemas.SpruceCli.v2020_07_22.UpgradeSkillOptions\n\nexport default class SkillFeature<\n\tS extends SkillFeatureOptionsSchema = SkillFeatureOptionsSchema\n> extends AbstractFeature<S> {\n\tpublic nameReadable = 'Skill'\n\tpublic code: FeatureCode = 'skill'\n\tpublic description = 'The scaffolding needed to run a Skill'\n\tpublic readonly installOrderWeight = 100\n\n\tpublic packageDependencies: NpmPackage[] = [\n\t\t{ name: '@sprucelabs/error' },\n\t\t{ name: '@sprucelabs/spruce-skill-utils' },\n\t\t{ name: '@sprucelabs/spruce-skill-booter' },\n\t\t{ name: '@sprucelabs/spruce-event-utils' },\n\t\t{ name: '@sprucelabs/spruce-event-plugin' },\n\t\t{ name: '@sprucelabs/spruce-core-schemas' },\n\t\t{ name: 'dotenv' },\n\t\t{ name: 'globby', version: '^11.0.4' },\n\t\t{\n\t\t\tname: '@sprucelabs/mercury-types',\n\t\t},\n\t\t{ name: 'tsconfig-paths', isDev: true },\n\t\t{ name: 'ts-node', isDev: true },\n\t\t...universalDevDependencies,\n\t]\n\n\tpublic optionsSchema = skillFeatureSchema as S\n\tpublic actionsDir = diskUtil.resolvePath(__dirname, 'actions')\n\tprivate engines = {\n\t\tnode: '16.x',\n\t\tyarn: '1.x',\n\t}\n\tpublic scripts = {\n\t\tboot: 'node build/index',\n\t\t'boot.local':\n\t\t\t'node -r ts-node/register -r tsconfig-paths/register ./src/index',\n\n\t\thealth: 'yarn boot --health',\n\t\t'health.local': 'yarn boot.local --health',\n\n\t\t...universalScripts,\n\t}\n\n\tpublic readonly fileDescriptions: FileDescription[] = [\n\t\t...universalFileDescriptions,\n\t\t{\n\t\t\tpath: 'src/index.ts',\n\t\t\tdescription: 'The file that \"boots\" the skill.',\n\t\t\tshouldOverwriteWhenChanged: true,\n\t\t},\n\t\t{\n\t\t\tpath: 'errors/SpruceError.ts',\n\t\t\tdescription: 'Starting error class that you can edit.',\n\t\t\tshouldOverwriteWhenChanged: false,\n\t\t},\n\t\t{\n\t\t\tpath: '.spruce/skill.ts',\n\t\t\tdescription: 'Used to support booting the skill.',\n\t\t\tshouldOverwriteWhenChanged: true,\n\t\t},\n\t\t{\n\t\t\tpath: '.spruce/errors/options.types.ts',\n\t\t\tdescription:\n\t\t\t\t'Holds all possible error codes and options. Will be updated as you create more errors (spruce create.error).',\n\t\t\tshouldOverwriteWhenChanged: true,\n\t\t},\n\t\t{\n\t\t\tpath: 'src/.spruce/features/event.plugin.ts',\n\t\t\tdescription:\n\t\t\t\t'Gives your skill event support through local boot events and optionall Mercury (spruce event.listen).',\n\t\t\tshouldOverwriteWhenChanged: true,\n\t\t},\n\t]\n\n\tpublic constructor(options: FeatureOptions) {\n\t\tsuper(options)\n\n\t\tvoid this.emitter.on(\n\t\t\t`test.register-abstract-test-classes`,\n\t\t\tthis.handleRegisterAbstractTestClasses.bind(this)\n\t\t)\n\n\t\tvoid this.emitter.on(\n\t\t\t'feature.will-execute',\n\t\t\tthis.handleWillExecute.bind(this)\n\t\t)\n\t}\n\n\tprivate async handleRegisterAbstractTestClasses() {\n\t\treturn {\n\t\t\tabstractClasses: [\n\t\t\t\t{\n\t\t\t\t\tname: 'AbstractSpruceFixtureTest',\n\t\t\t\t\tlabel: 'AbstractSpruceFixtureTest',\n\t\t\t\t\timport: '@sprucelabs/spruce-test-fixtures',\n\t\t\t\t\tfeatureCode: 'skill',\n\t\t\t\t},\n\t\t\t],\n\t\t}\n\t}\n\n\tpublic async beforePackageInstall(options: SkillFeatureOptions) {\n\t\tconst { files } = await this.install(options)\n\t\treturn { files, cwd: this.resolveDestination(options) }\n\t}\n\n\tpublic async afterPackageInstall(options: SkillFeatureOptions) {\n\t\tconst destination = this.resolveDestination(options)\n\t\tawait this.Store('skill', { cwd: destination }).setCurrentSkillsNamespace(\n\t\t\toptions.name\n\t\t)\n\t\treturn {}\n\t}\n\n\tprivate async install(options: SkillFeatureOptions) {\n\t\tvalidateSchemaValues(skillFeatureSchema, options)\n\n\t\tconst destination = this.resolveDestination(options)\n\t\tif (!diskUtil.doesDirExist(destination)) {\n\t\t\tdiskUtil.createDir(destination)\n\t\t}\n\n\t\tconst skillGenerator = this.Writer('skill')\n\n\t\tconst files = await skillGenerator.writeSkill(destination, options)\n\n\t\tawait this.installScripts(destination)\n\n\t\tthis.setEngines(destination)\n\n\t\tconst env = this.Service('env', destination)\n\t\tenv.set('SKILL_NAME', options.name)\n\n\t\treturn { files }\n\t}\n\n\tprivate resolveDestination(options: SkillFeatureOptions) {\n\t\treturn diskUtil.resolvePath(this.cwd, options.destination ?? '')\n\t}\n\n\tpublic async installScripts(destination = this.cwd) {\n\t\tconst scriptUpdater = ScriptUpdater.FromFeature(this, {\n\t\t\tcwd: destination,\n\t\t})\n\n\t\tawait scriptUpdater.update()\n\t}\n\n\tpublic setEngines(destination: string) {\n\t\tconst pkg = this.Service('pkg', destination)\n\t\tconst engines = (pkg.get('engines') as Record<string, string>) || {}\n\n\t\tfor (const name in this.engines) {\n\t\t\tconst all = this.engines\n\t\t\tengines[name] = this.engines[name as keyof typeof all]\n\t\t}\n\n\t\tpkg.set({ path: 'engines', value: engines })\n\t}\n\n\tpublic async handleWillExecute(options: {\n\t\tfeatureCode: string\n\t\tactionCode: string\n\t\toptions?: UpgradeOptions\n\t}) {\n\t\tconst { featureCode, actionCode, options: upgradeOptions } = options\n\t\tconst isInstalled = await this.featureInstaller.isInstalled('skill')\n\n\t\tif (isInstalled && featureCode === 'node' && actionCode === 'upgrade') {\n\t\t\tconst updater = new Updater(this, this.emitter)\n\t\t\tconst files = await updater.updateFiles(upgradeOptions ?? {})\n\t\t\treturn {\n\t\t\t\tfiles,\n\t\t\t}\n\t\t}\n\n\t\treturn {}\n\t}\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SkillFeature.js","names":["SkillFeature","options","name","version","isDev","universalDevDependencies","skillFeatureSchema","diskUtil","resolvePath","__dirname","node","yarn","boot","health","universalScripts","universalFileDescriptions","path","description","shouldOverwriteWhenChanged","emitter","on","handleRegisterAbstractTestClasses","bind","handleWillExecute","abstractClasses","label","featureCode","install","files","cwd","resolveDestination","destination","Store","setCurrentSkillsNamespace","validateSchemaValues","doesDirExist","createDir","skillGenerator","Writer","writeSkill","installScripts","setEngines","env","Service","set","scriptUpdater","ScriptUpdater","FromFeature","update","pkg","engines","get","all","value","actionCode","upgradeOptions","featureInstaller","isInstalled","updater","Updater","updateFiles","AbstractFeature"],"sources":["../../../src/features/skill/SkillFeature.ts"],"sourcesContent":["import { SchemaValues, validateSchemaValues } from '@sprucelabs/schema'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { SpruceSchemas } from '#spruce/schemas/schemas.types'\nimport skillFeatureSchema from '#spruce/schemas/spruceCli/v2020_07_22/skillFeature.schema'\nimport { FileDescription, NpmPackage } from '../../types/cli.types'\nimport ScriptUpdater from '../../updaters/ScriptUpdater'\nimport AbstractFeature, { FeatureOptions } from '../AbstractFeature'\nimport { FeatureCode } from '../features.types'\nimport universalDevDependencies from '../universalDevDependencies'\nimport universalFileDescriptions from '../universalFileDescriptions'\nimport universalScripts from '../universalScripts'\nimport Updater from './updaters/Updater'\n\ntype SkillFeatureOptionsSchema =\n\tSpruceSchemas.SpruceCli.v2020_07_22.SkillFeatureSchema\ntype SkillFeatureOptions = SpruceSchemas.SpruceCli.v2020_07_22.SkillFeature\n\ndeclare module '../../features/features.types' {\n\tinterface FeatureMap {\n\t\tskill: SkillFeature\n\t}\n\n\tinterface FeatureOptionsMap {\n\t\tskill: SchemaValues<SkillFeatureOptionsSchema>\n\t}\n}\n\ntype UpgradeOptions = SpruceSchemas.SpruceCli.v2020_07_22.UpgradeSkillOptions\n\nexport default class SkillFeature<\n\tS extends SkillFeatureOptionsSchema = SkillFeatureOptionsSchema\n> extends AbstractFeature<S> {\n\tpublic nameReadable = 'Skill'\n\tpublic code: FeatureCode = 'skill'\n\tpublic description = 'The scaffolding needed to run a Skill'\n\tpublic readonly installOrderWeight = 100\n\n\tpublic packageDependencies: NpmPackage[] = [\n\t\t{ name: '@sprucelabs/error' },\n\t\t{ name: '@sprucelabs/spruce-skill-utils' },\n\t\t{ name: '@sprucelabs/spruce-skill-booter' },\n\t\t{ name: '@sprucelabs/spruce-event-utils' },\n\t\t{ name: '@sprucelabs/spruce-event-plugin' },\n\t\t{ name: '@sprucelabs/spruce-core-schemas' },\n\t\t{ name: 'dotenv' },\n\t\t{ name: 'globby', version: '^11.0.4' },\n\t\t{\n\t\t\tname: '@sprucelabs/mercury-types',\n\t\t},\n\t\t{ name: 'tsconfig-paths', isDev: true },\n\t\t{ name: 'ts-node', isDev: true },\n\t\t...universalDevDependencies,\n\t]\n\n\tpublic optionsSchema = skillFeatureSchema as S\n\tpublic actionsDir = diskUtil.resolvePath(__dirname, 'actions')\n\tprivate engines = {\n\t\tnode: '16.x',\n\t\tyarn: '1.x',\n\t}\n\tpublic scripts = {\n\t\tboot: 'node build/index',\n\t\t'boot.local':\n\t\t\t'node -r ts-node/register -r tsconfig-paths/register ./src/index',\n\n\t\thealth: 'yarn boot --health',\n\t\t'health.local': 'yarn boot.local --health',\n\n\t\t...universalScripts,\n\t}\n\n\tpublic readonly fileDescriptions: FileDescription[] = [\n\t\t...universalFileDescriptions,\n\t\t{\n\t\t\tpath: 'src/index.ts',\n\t\t\tdescription: 'The file that \"boots\" the skill.',\n\t\t\tshouldOverwriteWhenChanged: true,\n\t\t},\n\t\t{\n\t\t\tpath: 'errors/SpruceError.ts',\n\t\t\tdescription: 'Starting error class that you can edit.',\n\t\t\tshouldOverwriteWhenChanged: false,\n\t\t},\n\t\t{\n\t\t\tpath: '.spruce/skill.ts',\n\t\t\tdescription: 'Used to support booting the skill.',\n\t\t\tshouldOverwriteWhenChanged: true,\n\t\t},\n\t\t{\n\t\t\tpath: '.spruce/errors/options.types.ts',\n\t\t\tdescription:\n\t\t\t\t'Holds all possible error codes and options. Will be updated as you create more errors (spruce create.error).',\n\t\t\tshouldOverwriteWhenChanged: true,\n\t\t},\n\t\t{\n\t\t\tpath: 'src/.spruce/features/event.plugin.ts',\n\t\t\tdescription:\n\t\t\t\t'Gives your skill event support through local boot events and optionall Mercury (spruce event.listen).',\n\t\t\tshouldOverwriteWhenChanged: true,\n\t\t},\n\t]\n\n\tpublic constructor(options: FeatureOptions) {\n\t\tsuper(options)\n\n\t\tvoid this.emitter.on(\n\t\t\t`test.register-abstract-test-classes`,\n\t\t\tthis.handleRegisterAbstractTestClasses.bind(this)\n\t\t)\n\n\t\tvoid this.emitter.on(\n\t\t\t'feature.will-execute',\n\t\t\tthis.handleWillExecute.bind(this)\n\t\t)\n\t}\n\n\tprivate async handleRegisterAbstractTestClasses() {\n\t\treturn {\n\t\t\tabstractClasses: [\n\t\t\t\t{\n\t\t\t\t\tname: 'AbstractSpruceFixtureTest',\n\t\t\t\t\tlabel: 'AbstractSpruceFixtureTest',\n\t\t\t\t\timport: '@sprucelabs/spruce-test-fixtures',\n\t\t\t\t\tfeatureCode: 'skill',\n\t\t\t\t},\n\t\t\t],\n\t\t}\n\t}\n\n\tpublic async beforePackageInstall(options: SkillFeatureOptions) {\n\t\tconst { files } = await this.install(options)\n\t\treturn { files, cwd: this.resolveDestination(options) }\n\t}\n\n\tpublic async afterPackageInstall(options: SkillFeatureOptions) {\n\t\tconst destination = this.resolveDestination(options)\n\t\tawait this.Store('skill', {\n\t\t\tcwd: destination,\n\t\t}).setCurrentSkillsNamespace(options.name)\n\t\treturn {}\n\t}\n\n\tprivate async install(options: SkillFeatureOptions) {\n\t\tvalidateSchemaValues(skillFeatureSchema, options)\n\n\t\tconst destination = this.resolveDestination(options)\n\t\tif (!diskUtil.doesDirExist(destination)) {\n\t\t\tdiskUtil.createDir(destination)\n\t\t}\n\n\t\tconst skillGenerator = this.Writer('skill')\n\n\t\tconst files = await skillGenerator.writeSkill(destination, options)\n\n\t\tawait this.installScripts(destination)\n\n\t\tthis.setEngines(destination)\n\n\t\tconst env = this.Service('env', destination)\n\t\tenv.set('SKILL_NAME', options.name)\n\n\t\treturn { files }\n\t}\n\n\tprivate resolveDestination(options: SkillFeatureOptions) {\n\t\treturn diskUtil.resolvePath(this.cwd, options.destination ?? '')\n\t}\n\n\tpublic async installScripts(destination = this.cwd) {\n\t\tconst scriptUpdater = ScriptUpdater.FromFeature(this, {\n\t\t\tcwd: destination,\n\t\t})\n\n\t\tawait scriptUpdater.update()\n\t}\n\n\tpublic setEngines(destination: string) {\n\t\tconst pkg = this.Service('pkg', destination)\n\t\tconst engines = (pkg.get('engines') as Record<string, string>) || {}\n\n\t\tfor (const name in this.engines) {\n\t\t\tconst all = this.engines\n\t\t\tengines[name] = this.engines[name as keyof typeof all]\n\t\t}\n\n\t\tpkg.set({ path: 'engines', value: engines })\n\t}\n\n\tpublic async handleWillExecute(options: {\n\t\tfeatureCode: string\n\t\tactionCode: string\n\t\toptions?: UpgradeOptions\n\t}) {\n\t\tconst { featureCode, actionCode, options: upgradeOptions } = options\n\t\tconst isInstalled = await this.featureInstaller.isInstalled('skill')\n\n\t\tif (isInstalled && featureCode === 'node' && actionCode === 'upgrade') {\n\t\t\tconst updater = new Updater(this, this.emitter)\n\t\t\tconst files = await updater.updateFiles(upgradeOptions ?? {})\n\t\t\treturn {\n\t\t\t\tfiles,\n\t\t\t}\n\t\t}\n\n\t\treturn {}\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import AbstractStore from '../../../stores/AbstractStore';
|
|
1
|
+
import AbstractStore, { StoreOptions } from '../../../stores/AbstractStore';
|
|
2
2
|
import { CurrentSkill, RegisteredSkill } from '../../../types/cli.types';
|
|
3
3
|
export default class SkillStore extends AbstractStore {
|
|
4
4
|
readonly name = "skill";
|
|
5
5
|
private static currentSkill?;
|
|
6
|
+
constructor(options: StoreOptions<SkillStoreOptions>);
|
|
6
7
|
static clearCurrentSkill(): void;
|
|
7
8
|
register(values: CreateSkill, options?: RegisterSkillOptions): Promise<RegisteredSkill>;
|
|
8
9
|
private assertInSkill;
|
|
@@ -29,3 +30,5 @@ export interface CreateSkill {
|
|
|
29
30
|
export interface RegisterSkillOptions {
|
|
30
31
|
isRegisteringCurrentSkill?: boolean;
|
|
31
32
|
}
|
|
33
|
+
export interface SkillStoreOptions {
|
|
34
|
+
}
|