@sprucelabs/spruce-cli 18.4.0 → 19.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/build/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.d.ts +1 -1
  3. package/build/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.js +18 -25
  4. package/build/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.js.map +1 -1
  5. package/build/__tests__/behavioral/upgrading/UpgradingWithListeners.test.d.ts +2 -0
  6. package/build/__tests__/behavioral/upgrading/UpgradingWithListeners.test.js +75 -30
  7. package/build/__tests__/behavioral/upgrading/UpgradingWithListeners.test.js.map +1 -1
  8. package/build/__tests__/implementation/ActionExecuter2.test.js.map +1 -1
  9. package/build/features/event/EventFeature.d.ts +1 -0
  10. package/build/features/event/EventFeature.js +90 -68
  11. package/build/features/event/EventFeature.js.map +1 -1
  12. package/build/features/eventContract/actions/PullAction.js +4 -2
  13. package/build/features/eventContract/actions/PullAction.js.map +1 -1
  14. package/node_modules/@typescript-eslint/parser/LICENSE +5 -5
  15. package/node_modules/@typescript-eslint/parser/package.json +5 -5
  16. package/node_modules/@typescript-eslint/scope-manager/LICENSE +1 -1
  17. package/node_modules/@typescript-eslint/scope-manager/package.json +5 -5
  18. package/node_modules/@typescript-eslint/types/LICENSE +1 -1
  19. package/node_modules/@typescript-eslint/types/_ts3.4/dist/generated/ast-spec.d.ts +0 -6
  20. package/node_modules/@typescript-eslint/types/dist/generated/ast-spec.d.ts +0 -6
  21. package/node_modules/@typescript-eslint/types/dist/generated/ast-spec.d.ts.map +1 -1
  22. package/node_modules/@typescript-eslint/types/package.json +3 -3
  23. package/node_modules/@typescript-eslint/typescript-estree/LICENSE +5 -5
  24. package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.js +1 -1
  25. package/node_modules/@typescript-eslint/typescript-estree/package.json +5 -5
  26. package/node_modules/@typescript-eslint/visitor-keys/LICENSE +1 -1
  27. package/node_modules/@typescript-eslint/visitor-keys/package.json +3 -3
  28. package/package.json +27 -27
  29. package/src/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.ts +6 -13
  30. package/src/__tests__/behavioral/upgrading/UpgradingWithListeners.test.ts +13 -0
  31. package/src/__tests__/implementation/ActionExecuter2.test.ts +0 -2
  32. package/src/features/event/EventFeature.ts +10 -4
  33. package/src/features/eventContract/actions/PullAction.ts +4 -2
package/CHANGELOG.md CHANGED
@@ -3,6 +3,12 @@
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
+ # [19.0.0](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v18.4.0...v19.0.0) (2022-12-21)
7
+
8
+ ### Breaking Changes
9
+
10
+ - pulling contract no longer brings in global ([2354b92](https://github.com/sprucelabsai/spruce-cli-workspace/commit/2354b92))
11
+
6
12
  # [18.4.0](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v18.3.1...v18.4.0) (2022-12-07)
7
13
 
8
14
  ### Features
@@ -7,7 +7,7 @@ export default class GeneratingMercuryEventContractTest extends AbstractCliTest
7
7
  protected static generatesContractAtCwd(): Promise<void>;
8
8
  protected static generatesAtDestination(): Promise<void>;
9
9
  protected static savesContractLocallyAndImportsAsDefault(): Promise<void>;
10
- protected static pullsGlobalContracts(): Promise<void>;
10
+ protected static doesNotPullGlobalContracts(): Promise<void>;
11
11
  protected static contractHasTypes(): Promise<void>;
12
12
  protected static generatingASecondTimeReportsAnUpdate(): Promise<void>;
13
13
  private static installSkillAndPullContracts;
@@ -15,7 +15,6 @@ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime
15
15
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
16
16
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
17
17
  var _applyDecoratedDescriptor2 = _interopRequireDefault(require("@babel/runtime/helpers/applyDecoratedDescriptor"));
18
- var _spruceEventUtils = require("@sprucelabs/spruce-event-utils");
19
18
  var _spruceSkillUtils = require("@sprucelabs/spruce-skill-utils");
20
19
  var _testUtils = require("@sprucelabs/test-utils");
21
20
  var _AbstractCliTest2 = _interopRequireDefault(require("../../../tests/AbstractCliTest"));
@@ -200,10 +199,10 @@ var GeneratingMercuryEventContractTest = (_dec = (0, _testUtils.test)(), _dec2 =
200
199
  return savesContractLocallyAndImportsAsDefault;
201
200
  }()
202
201
  }, {
203
- key: "pullsGlobalContracts",
202
+ key: "doesNotPullGlobalContracts",
204
203
  value: function () {
205
- var _pullsGlobalContracts = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7() {
206
- var skill, events, fqen, contracts;
204
+ var _doesNotPullGlobalContracts = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7() {
205
+ var events, contracts;
207
206
  return _regenerator["default"].wrap(function _callee7$(_context7) {
208
207
  while (1) {
209
208
  switch (_context7.prev = _context7.next) {
@@ -217,12 +216,11 @@ var GeneratingMercuryEventContractTest = (_dec = (0, _testUtils.test)(), _dec2 =
217
216
  name: 'heartwood test'
218
217
  });
219
218
  case 5:
220
- skill = _context7.sent;
221
- _context7.next = 8;
219
+ _context7.next = 7;
222
220
  return this.Store('event');
223
- case 8:
221
+ case 7:
224
222
  events = _context7.sent;
225
- _context7.next = 11;
223
+ _context7.next = 10;
226
224
  return events.registerEventContract({
227
225
  eventContract: {
228
226
  eventSignatures: {
@@ -232,30 +230,25 @@ var GeneratingMercuryEventContractTest = (_dec = (0, _testUtils.test)(), _dec2 =
232
230
  }
233
231
  }
234
232
  });
235
- case 11:
236
- fqen = _spruceEventUtils.eventNameUtil.join({
237
- eventName: 'test-event',
238
- eventNamespace: skill.slug,
239
- version: 'v2020_01_01'
240
- });
241
- _context7.next = 14;
233
+ case 10:
234
+ _context7.next = 12;
242
235
  return this.installSkillAndPullContracts();
243
- case 14:
236
+ case 12:
244
237
  contracts = _context7.sent;
245
- _testUtils.assert.isAbove(contracts.length, 1);
246
- _testUtils.assert.isObject(contracts[1].eventSignatures);
247
- _testUtils.assert.isObject(contracts[1].eventSignatures[fqen]);
248
- case 18:
238
+ _testUtils.assert.isEqual(contracts.length, 1);
239
+ _testUtils.assert.isObject(contracts[0].eventSignatures);
240
+ _testUtils.assert.isObject(contracts[0].eventSignatures['add-role::v2020_12_25']);
241
+ case 16:
249
242
  case "end":
250
243
  return _context7.stop();
251
244
  }
252
245
  }
253
246
  }, _callee7, this);
254
247
  }));
255
- function pullsGlobalContracts() {
256
- return _pullsGlobalContracts.apply(this, arguments);
248
+ function doesNotPullGlobalContracts() {
249
+ return _doesNotPullGlobalContracts.apply(this, arguments);
257
250
  }
258
- return pullsGlobalContracts;
251
+ return doesNotPullGlobalContracts;
259
252
  }()
260
253
  }, {
261
254
  key: "contractHasTypes",
@@ -281,7 +274,7 @@ var GeneratingMercuryEventContractTest = (_dec = (0, _testUtils.test)(), _dec2 =
281
274
  contents = _spruceSkillUtils.diskUtil.readFile(match);
282
275
  _testUtils.assert.doesInclude(contents, 'export default eventContracts');
283
276
  _testUtils.assert.doesInclude(contents, 'as const');
284
- _testUtils.assert.doesInclude(contents, 'export type CoreEventContract = typeof eventContracts[0] & typeof eventContracts[1]');
277
+ _testUtils.assert.doesInclude(contents, 'export type CoreEventContract = typeof eventContracts[0]');
285
278
  case 12:
286
279
  case "end":
287
280
  return _context8.stop();
@@ -393,6 +386,6 @@ var GeneratingMercuryEventContractTest = (_dec = (0, _testUtils.test)(), _dec2 =
393
386
  }()
394
387
  }]);
395
388
  return GeneratingMercuryEventContractTest;
396
- }(_AbstractCliTest2["default"]), (0, _defineProperty2["default"])(_class2, "cli", void 0), _class2), ((0, _applyDecoratedDescriptor2["default"])(_class, "hasEventContractFeature", [_dec], Object.getOwnPropertyDescriptor(_class, "hasEventContractFeature"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "hasPullFeature", [_dec2], Object.getOwnPropertyDescriptor(_class, "hasPullFeature"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "generatesContractAtCwd", [_dec3], Object.getOwnPropertyDescriptor(_class, "generatesContractAtCwd"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "generatesAtDestination", [_dec4], Object.getOwnPropertyDescriptor(_class, "generatesAtDestination"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "savesContractLocallyAndImportsAsDefault", [_dec5], Object.getOwnPropertyDescriptor(_class, "savesContractLocallyAndImportsAsDefault"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "pullsGlobalContracts", [_dec6], Object.getOwnPropertyDescriptor(_class, "pullsGlobalContracts"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "contractHasTypes", [_dec7], Object.getOwnPropertyDescriptor(_class, "contractHasTypes"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "generatingASecondTimeReportsAnUpdate", [_dec8], Object.getOwnPropertyDescriptor(_class, "generatingASecondTimeReportsAnUpdate"), _class)), _class));
389
+ }(_AbstractCliTest2["default"]), (0, _defineProperty2["default"])(_class2, "cli", void 0), _class2), ((0, _applyDecoratedDescriptor2["default"])(_class, "hasEventContractFeature", [_dec], Object.getOwnPropertyDescriptor(_class, "hasEventContractFeature"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "hasPullFeature", [_dec2], Object.getOwnPropertyDescriptor(_class, "hasPullFeature"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "generatesContractAtCwd", [_dec3], Object.getOwnPropertyDescriptor(_class, "generatesContractAtCwd"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "generatesAtDestination", [_dec4], Object.getOwnPropertyDescriptor(_class, "generatesAtDestination"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "savesContractLocallyAndImportsAsDefault", [_dec5], Object.getOwnPropertyDescriptor(_class, "savesContractLocallyAndImportsAsDefault"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "doesNotPullGlobalContracts", [_dec6], Object.getOwnPropertyDescriptor(_class, "doesNotPullGlobalContracts"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "contractHasTypes", [_dec7], Object.getOwnPropertyDescriptor(_class, "contractHasTypes"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "generatingASecondTimeReportsAnUpdate", [_dec8], Object.getOwnPropertyDescriptor(_class, "generatingASecondTimeReportsAnUpdate"), _class)), _class));
397
390
  exports["default"] = GeneratingMercuryEventContractTest;
398
391
  //# sourceMappingURL=PullingMercuryEventContract.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PullingMercuryEventContract.test.js","names":["GeneratingMercuryEventContractTest","test","Cli","cli","diskUtil","writeFile","resolvePath","assert","isTruthy","getFeature","isFunction","Action","execute","FeatureFixture","installCachedFeatures","results","isFalsy","errors","match","testUtil","assertFileByNameInGeneratedFiles","files","isEqual","doesInclude","name","action","contents","readFile","destination","expected","installSkillAndPullContracts","contracts","isArray","isObject","eventSignatures","getSkillFixture","registerCurrentSkill","skill","Store","events","registerEventContract","eventContract","isGlobal","fqen","eventNameUtil","join","eventName","eventNamespace","slug","version","isAbove","length","promise","shouldAutoHandleDependencies","pullContracts","Service","importDefault","AbstractCliTest"],"sources":["../../../../src/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.ts"],"sourcesContent":["import { EventContract } from '@sprucelabs/mercury-types'\nimport { eventNameUtil } from '@sprucelabs/spruce-event-utils'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test-utils'\nimport { CliInterface } from '../../../cli'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class GeneratingMercuryEventContractTest extends AbstractCliTest {\n\tprivate static cli: CliInterface\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.cli = await this.Cli()\n\t\tdiskUtil.writeFile(this.resolvePath('package.json'), '{}')\n\t}\n\n\t@test()\n\tprotected static async hasEventContractFeature() {\n\t\tassert.isTruthy(this.cli.getFeature('eventContract'))\n\t}\n\n\t@test()\n\tprotected static async hasPullFeature() {\n\t\tassert.isFunction(this.Action('eventContract', 'pull').execute)\n\t}\n\n\t@test()\n\tprotected static async generatesContractAtCwd() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\t\tconst results = await this.Action('eventContract', 'pull').execute({})\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'events.contract.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.isEqual(match, this.resolvePath('events.contract.ts'))\n\n\t\tassert.doesInclude(results.files ?? [], {\n\t\t\tname: 'events.contract.ts',\n\t\t\taction: 'generated',\n\t\t})\n\n\t\tconst contents = diskUtil.readFile(match)\n\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t\"import { buildEventContract } from '@sprucelabs/mercury-types'\"\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async generatesAtDestination() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\t\tconst results = await this.Action('eventContract', 'pull').execute({\n\t\t\tdestination: './src/tests',\n\t\t})\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'events.contract.ts',\n\t\t\tresults.files\n\t\t)\n\t\tconst expected = this.resolvePath('src/tests/events.contract.ts')\n\n\t\tassert.isEqual(expected, match)\n\t}\n\n\t@test()\n\tprotected static async savesContractLocallyAndImportsAsDefault() {\n\t\tconst contracts = await this.installSkillAndPullContracts()\n\n\t\tassert.isArray(contracts)\n\t\tassert.isObject(contracts[0].eventSignatures)\n\t\tassert.isObject(contracts[0].eventSignatures[`did-message::v2020_12_25`])\n\t}\n\n\t@test()\n\tprotected static async pullsGlobalContracts() {\n\t\tthis.cli = await this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst skill = await this.getSkillFixture().registerCurrentSkill({\n\t\t\tname: 'heartwood test',\n\t\t})\n\n\t\tconst events = await this.Store('event')\n\t\tawait events.registerEventContract({\n\t\t\teventContract: {\n\t\t\t\teventSignatures: {\n\t\t\t\t\t'test-event::v2020_01_01': {\n\t\t\t\t\t\tisGlobal: true,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tconst fqen = eventNameUtil.join({\n\t\t\teventName: 'test-event',\n\t\t\teventNamespace: skill.slug,\n\t\t\tversion: 'v2020_01_01',\n\t\t})\n\n\t\tconst contracts = await this.installSkillAndPullContracts()\n\n\t\tassert.isAbove(contracts.length, 1)\n\t\tassert.isObject(contracts[1].eventSignatures)\n\t\tassert.isObject(contracts[1].eventSignatures[fqen])\n\t}\n\n\t@test()\n\tprotected static async contractHasTypes() {\n\t\tthis.cli = await this.FeatureFixture().installCachedFeatures('node')\n\n\t\tconst promise = this.Action('eventContract', 'pull', {\n\t\t\tshouldAutoHandleDependencies: true,\n\t\t}).execute({})\n\n\t\tconst results = await promise\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'events.contract.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst contents = diskUtil.readFile(match)\n\n\t\tassert.doesInclude(contents, 'export default eventContracts')\n\t\tassert.doesInclude(contents, 'as const')\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t'export type CoreEventContract = typeof eventContracts[0] & typeof eventContracts[1]'\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async generatingASecondTimeReportsAnUpdate() {\n\t\tthis.cli = await this.FeatureFixture().installCachedFeatures('events')\n\t\tawait this.Action('eventContract', 'pull').execute({})\n\n\t\tconst results = await this.Action('eventContract', 'pull').execute({})\n\n\t\ttestUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'events.contract.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.doesInclude(results.files ?? [], {\n\t\t\tname: 'events.contract.ts',\n\t\t\taction: 'updated',\n\t\t})\n\t}\n\n\tprivate static async installSkillAndPullContracts() {\n\t\tthis.cli = await this.FeatureFixture().installCachedFeatures('events')\n\t\treturn await this.pullContracts()\n\t}\n\n\tprivate static async pullContracts() {\n\t\tconst results = await this.Action('eventContract', 'pull').execute({})\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'events.contract.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst contracts = await this.Service('import').importDefault(match)\n\t\treturn contracts as EventContract[]\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"PullingMercuryEventContract.test.js","names":["GeneratingMercuryEventContractTest","test","Cli","cli","diskUtil","writeFile","resolvePath","assert","isTruthy","getFeature","isFunction","Action","execute","FeatureFixture","installCachedFeatures","results","isFalsy","errors","match","testUtil","assertFileByNameInGeneratedFiles","files","isEqual","doesInclude","name","action","contents","readFile","destination","expected","installSkillAndPullContracts","contracts","isArray","isObject","eventSignatures","getSkillFixture","registerCurrentSkill","Store","events","registerEventContract","eventContract","isGlobal","length","promise","shouldAutoHandleDependencies","pullContracts","Service","importDefault","AbstractCliTest"],"sources":["../../../../src/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.ts"],"sourcesContent":["import { EventContract } from '@sprucelabs/mercury-types'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test-utils'\nimport { CliInterface } from '../../../cli'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class GeneratingMercuryEventContractTest extends AbstractCliTest {\n\tprivate static cli: CliInterface\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.cli = await this.Cli()\n\t\tdiskUtil.writeFile(this.resolvePath('package.json'), '{}')\n\t}\n\n\t@test()\n\tprotected static async hasEventContractFeature() {\n\t\tassert.isTruthy(this.cli.getFeature('eventContract'))\n\t}\n\n\t@test()\n\tprotected static async hasPullFeature() {\n\t\tassert.isFunction(this.Action('eventContract', 'pull').execute)\n\t}\n\n\t@test()\n\tprotected static async generatesContractAtCwd() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\t\tconst results = await this.Action('eventContract', 'pull').execute({})\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'events.contract.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.isEqual(match, this.resolvePath('events.contract.ts'))\n\n\t\tassert.doesInclude(results.files ?? [], {\n\t\t\tname: 'events.contract.ts',\n\t\t\taction: 'generated',\n\t\t})\n\n\t\tconst contents = diskUtil.readFile(match)\n\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t\"import { buildEventContract } from '@sprucelabs/mercury-types'\"\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async generatesAtDestination() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\t\tconst results = await this.Action('eventContract', 'pull').execute({\n\t\t\tdestination: './src/tests',\n\t\t})\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'events.contract.ts',\n\t\t\tresults.files\n\t\t)\n\t\tconst expected = this.resolvePath('src/tests/events.contract.ts')\n\n\t\tassert.isEqual(expected, match)\n\t}\n\n\t@test()\n\tprotected static async savesContractLocallyAndImportsAsDefault() {\n\t\tconst contracts = await this.installSkillAndPullContracts()\n\n\t\tassert.isArray(contracts)\n\t\tassert.isObject(contracts[0].eventSignatures)\n\t\tassert.isObject(contracts[0].eventSignatures[`did-message::v2020_12_25`])\n\t}\n\n\t@test()\n\tprotected static async doesNotPullGlobalContracts() {\n\t\tthis.cli = await this.FeatureFixture().installCachedFeatures('events')\n\n\t\tawait this.getSkillFixture().registerCurrentSkill({\n\t\t\tname: 'heartwood test',\n\t\t})\n\n\t\tconst events = await this.Store('event')\n\t\tawait events.registerEventContract({\n\t\t\teventContract: {\n\t\t\t\teventSignatures: {\n\t\t\t\t\t'test-event::v2020_01_01': {\n\t\t\t\t\t\tisGlobal: true,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tconst contracts = await this.installSkillAndPullContracts()\n\n\t\tassert.isEqual(contracts.length, 1)\n\t\tassert.isObject(contracts[0].eventSignatures)\n\t\tassert.isObject(contracts[0].eventSignatures['add-role::v2020_12_25'])\n\t}\n\n\t@test()\n\tprotected static async contractHasTypes() {\n\t\tthis.cli = await this.FeatureFixture().installCachedFeatures('node')\n\n\t\tconst promise = this.Action('eventContract', 'pull', {\n\t\t\tshouldAutoHandleDependencies: true,\n\t\t}).execute({})\n\n\t\tconst results = await promise\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'events.contract.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst contents = diskUtil.readFile(match)\n\n\t\tassert.doesInclude(contents, 'export default eventContracts')\n\t\tassert.doesInclude(contents, 'as const')\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t'export type CoreEventContract = typeof eventContracts[0]'\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async generatingASecondTimeReportsAnUpdate() {\n\t\tthis.cli = await this.FeatureFixture().installCachedFeatures('events')\n\t\tawait this.Action('eventContract', 'pull').execute({})\n\n\t\tconst results = await this.Action('eventContract', 'pull').execute({})\n\n\t\ttestUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'events.contract.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.doesInclude(results.files ?? [], {\n\t\t\tname: 'events.contract.ts',\n\t\t\taction: 'updated',\n\t\t})\n\t}\n\n\tprivate static async installSkillAndPullContracts() {\n\t\tthis.cli = await this.FeatureFixture().installCachedFeatures('events')\n\t\treturn await this.pullContracts()\n\t}\n\n\tprivate static async pullContracts() {\n\t\tconst results = await this.Action('eventContract', 'pull').execute({})\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'events.contract.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst contracts = await this.Service('import').importDefault(match)\n\t\treturn contracts as EventContract[]\n\t}\n}\n"],"mappings":"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"}
@@ -2,4 +2,6 @@ import { FeatureCode } from '../../../features/features.types';
2
2
  import AbstractCliTest from '../../../tests/AbstractCliTest';
3
3
  export default class UpgradingWithListeners extends AbstractCliTest {
4
4
  protected static upgradingSyncsListeners(featureCode: FeatureCode, shouldHit: boolean, actionCode?: string): Promise<void>;
5
+ protected static willNotSyncIfSkillNotInstalled(): Promise<void>;
6
+ private static assertListenersSynced;
5
7
  }
@@ -17,10 +17,10 @@ var _spruceEventUtils = require("@sprucelabs/spruce-event-utils");
17
17
  var _testUtils = require("@sprucelabs/test-utils");
18
18
  var _SpruceError = _interopRequireDefault(require("../../../errors/SpruceError"));
19
19
  var _AbstractCliTest2 = _interopRequireDefault(require("../../../tests/AbstractCliTest"));
20
- var _dec, _dec2, _dec3, _dec4, _class;
20
+ var _dec, _dec2, _dec3, _dec4, _dec5, _class;
21
21
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
22
22
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
23
- var UpgradingWithListeners = (_dec = (0, _testUtils.test)('should sync listeners when installed', 'events', true), _dec2 = (0, _testUtils.test)('should not sync listeners when not installed', 'skills', false), _dec3 = (0, _testUtils.test)('should not sync listeners when creating node when not installed', 'testsInNodeModule', false, 'create'), _dec4 = (0, _testUtils.test)('should not sync listeners when creating node when installed', 'events', false, 'create'), (_class = /*#__PURE__*/function (_AbstractCliTest) {
23
+ var UpgradingWithListeners = (_dec = (0, _testUtils.test)('should sync listeners when installed', 'events', true), _dec2 = (0, _testUtils.test)('should not sync listeners when not installed', 'skills', false), _dec3 = (0, _testUtils.test)('should not sync listeners when creating node when not installed', 'testsInNodeModule', false, 'create'), _dec4 = (0, _testUtils.test)('should not sync listeners when creating node when installed', 'events', false, 'create'), _dec5 = (0, _testUtils.test)(), (_class = /*#__PURE__*/function (_AbstractCliTest) {
24
24
  (0, _inherits2["default"])(UpgradingWithListeners, _AbstractCliTest);
25
25
  var _super = _createSuper(UpgradingWithListeners);
26
26
  function UpgradingWithListeners() {
@@ -30,30 +30,75 @@ var UpgradingWithListeners = (_dec = (0, _testUtils.test)('should sync listeners
30
30
  (0, _createClass2["default"])(UpgradingWithListeners, null, [{
31
31
  key: "upgradingSyncsListeners",
32
32
  value: function () {
33
- var _upgradingSyncsListeners = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(featureCode, shouldHit) {
33
+ var _upgradingSyncsListeners = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(featureCode, shouldHit) {
34
34
  var actionCode,
35
- wasHit,
36
- results,
37
- _eventResponseUtil$ge,
38
- errors,
39
- _args2 = arguments;
40
- return _regenerator["default"].wrap(function _callee2$(_context2) {
35
+ _args = arguments;
36
+ return _regenerator["default"].wrap(function _callee$(_context) {
41
37
  while (1) {
42
- switch (_context2.prev = _context2.next) {
38
+ switch (_context.prev = _context.next) {
43
39
  case 0:
44
- actionCode = _args2.length > 2 && _args2[2] !== undefined ? _args2[2] : 'upgrade';
45
- _context2.next = 3;
40
+ actionCode = _args.length > 2 && _args[2] !== undefined ? _args[2] : 'upgrade';
41
+ _context.next = 3;
46
42
  return this.FeatureFixture().installCachedFeatures(featureCode);
47
43
  case 3:
44
+ _context.next = 5;
45
+ return this.assertListenersSynced(actionCode, shouldHit);
46
+ case 5:
47
+ case "end":
48
+ return _context.stop();
49
+ }
50
+ }
51
+ }, _callee, this);
52
+ }));
53
+ function upgradingSyncsListeners(_x, _x2) {
54
+ return _upgradingSyncsListeners.apply(this, arguments);
55
+ }
56
+ return upgradingSyncsListeners;
57
+ }()
58
+ }, {
59
+ key: "willNotSyncIfSkillNotInstalled",
60
+ value: function () {
61
+ var _willNotSyncIfSkillNotInstalled = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
62
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
63
+ while (1) {
64
+ switch (_context2.prev = _context2.next) {
65
+ case 0:
66
+ _context2.next = 2;
67
+ return this.FeatureFixture().installCachedFeatures('events');
68
+ case 2:
69
+ this.featureInstaller.markAsPermanentlySkipped('skill');
70
+ _context2.next = 5;
71
+ return this.assertListenersSynced('upgrade', false);
72
+ case 5:
73
+ case "end":
74
+ return _context2.stop();
75
+ }
76
+ }
77
+ }, _callee2, this);
78
+ }));
79
+ function willNotSyncIfSkillNotInstalled() {
80
+ return _willNotSyncIfSkillNotInstalled.apply(this, arguments);
81
+ }
82
+ return willNotSyncIfSkillNotInstalled;
83
+ }()
84
+ }, {
85
+ key: "assertListenersSynced",
86
+ value: function () {
87
+ var _assertListenersSynced = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(actionCode, shouldHit) {
88
+ var wasHit, results, _eventResponseUtil$ge, errors;
89
+ return _regenerator["default"].wrap(function _callee4$(_context4) {
90
+ while (1) {
91
+ switch (_context4.prev = _context4.next) {
92
+ case 0:
48
93
  this.commandFaker.fakeCommand(new RegExp(/yarn/));
49
94
  wasHit = false;
50
- _context2.next = 7;
95
+ _context4.next = 4;
51
96
  return this.emitter.on('feature.will-execute', /*#__PURE__*/function () {
52
- var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(_ref) {
97
+ var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(_ref) {
53
98
  var featureCode, actionCode;
54
- return _regenerator["default"].wrap(function _callee$(_context) {
99
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
55
100
  while (1) {
56
- switch (_context.prev = _context.next) {
101
+ switch (_context3.prev = _context3.next) {
57
102
  case 0:
58
103
  featureCode = _ref.featureCode, actionCode = _ref.actionCode;
59
104
  if (featureCode === 'event' && actionCode === 'sync.listeners') {
@@ -61,41 +106,41 @@ var UpgradingWithListeners = (_dec = (0, _testUtils.test)('should sync listeners
61
106
  }
62
107
  case 2:
63
108
  case "end":
64
- return _context.stop();
109
+ return _context3.stop();
65
110
  }
66
111
  }
67
- }, _callee);
112
+ }, _callee3);
68
113
  }));
69
- return function (_x3) {
114
+ return function (_x5) {
70
115
  return _ref2.apply(this, arguments);
71
116
  };
72
117
  }());
73
- case 7:
74
- _context2.next = 9;
118
+ case 4:
119
+ _context4.next = 6;
75
120
  return this.emitter.emit('feature.did-execute', {
76
121
  featureCode: 'node',
77
122
  actionCode: actionCode,
78
123
  results: {}
79
124
  });
80
- case 9:
81
- results = _context2.sent;
125
+ case 6:
126
+ results = _context4.sent;
82
127
  _eventResponseUtil$ge = _spruceEventUtils.eventResponseUtil.getAllResponsePayloadsAndErrors(results, _SpruceError["default"]), errors = _eventResponseUtil$ge.errors;
83
128
  _testUtils.assert.isFalsy(errors);
84
129
  _testUtils.assert.isEqual(wasHit, shouldHit);
85
- case 13:
130
+ case 10:
86
131
  case "end":
87
- return _context2.stop();
132
+ return _context4.stop();
88
133
  }
89
134
  }
90
- }, _callee2, this);
135
+ }, _callee4, this);
91
136
  }));
92
- function upgradingSyncsListeners(_x, _x2) {
93
- return _upgradingSyncsListeners.apply(this, arguments);
137
+ function assertListenersSynced(_x3, _x4) {
138
+ return _assertListenersSynced.apply(this, arguments);
94
139
  }
95
- return upgradingSyncsListeners;
140
+ return assertListenersSynced;
96
141
  }()
97
142
  }]);
98
143
  return UpgradingWithListeners;
99
- }(_AbstractCliTest2["default"]), ((0, _applyDecoratedDescriptor2["default"])(_class, "upgradingSyncsListeners", [_dec, _dec2, _dec3, _dec4], Object.getOwnPropertyDescriptor(_class, "upgradingSyncsListeners"), _class)), _class));
144
+ }(_AbstractCliTest2["default"]), ((0, _applyDecoratedDescriptor2["default"])(_class, "upgradingSyncsListeners", [_dec, _dec2, _dec3, _dec4], Object.getOwnPropertyDescriptor(_class, "upgradingSyncsListeners"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "willNotSyncIfSkillNotInstalled", [_dec5], Object.getOwnPropertyDescriptor(_class, "willNotSyncIfSkillNotInstalled"), _class)), _class));
100
145
  exports["default"] = UpgradingWithListeners;
101
146
  //# sourceMappingURL=UpgradingWithListeners.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UpgradingWithListeners.test.js","names":["UpgradingWithListeners","test","featureCode","shouldHit","actionCode","FeatureFixture","installCachedFeatures","commandFaker","fakeCommand","RegExp","wasHit","emitter","on","emit","results","eventResponseUtil","getAllResponsePayloadsAndErrors","SpruceError","errors","assert","isFalsy","isEqual","AbstractCliTest"],"sources":["../../../../src/__tests__/behavioral/upgrading/UpgradingWithListeners.test.ts"],"sourcesContent":["import { eventResponseUtil } from '@sprucelabs/spruce-event-utils'\nimport { test, assert } from '@sprucelabs/test-utils'\nimport SpruceError from '../../../errors/SpruceError'\nimport { FeatureCode } from '../../../features/features.types'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\n\nexport default class UpgradingWithListeners extends AbstractCliTest {\n\t@test('should sync listeners when installed', 'events', true)\n\t@test('should not sync listeners when not installed', 'skills', false)\n\t@test(\n\t\t'should not sync listeners when creating node when not installed',\n\t\t'testsInNodeModule',\n\t\tfalse,\n\t\t'create'\n\t)\n\t@test(\n\t\t'should not sync listeners when creating node when installed',\n\t\t'events',\n\t\tfalse,\n\t\t'create'\n\t)\n\tprotected static async upgradingSyncsListeners(\n\t\tfeatureCode: FeatureCode,\n\t\tshouldHit: boolean,\n\t\tactionCode = 'upgrade'\n\t) {\n\t\tawait this.FeatureFixture().installCachedFeatures(featureCode)\n\n\t\tthis.commandFaker.fakeCommand(new RegExp(/yarn/))\n\n\t\tlet wasHit = false\n\n\t\tawait this.emitter.on(\n\t\t\t'feature.will-execute',\n\t\t\tasync ({ featureCode, actionCode }) => {\n\t\t\t\tif (featureCode === 'event' && actionCode === 'sync.listeners') {\n\t\t\t\t\twasHit = true\n\t\t\t\t}\n\t\t\t}\n\t\t)\n\n\t\tconst results = await this.emitter.emit('feature.did-execute', {\n\t\t\tfeatureCode: 'node',\n\t\t\tactionCode,\n\t\t\tresults: {},\n\t\t})\n\n\t\tconst { errors } = eventResponseUtil.getAllResponsePayloadsAndErrors(\n\t\t\tresults,\n\t\t\tSpruceError\n\t\t)\n\n\t\tassert.isFalsy(errors)\n\n\t\tassert.isEqual(wasHit, shouldHit)\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;AAAA;AACA;AACA;AAEA;AAA4D;AAAA;AAAA;AAAA,IAEvCA,sBAAsB,WACzC,IAAAC,eAAI,EAAC,sCAAsC,EAAE,QAAQ,EAAE,IAAI,CAAC,UAC5D,IAAAA,eAAI,EAAC,8CAA8C,EAAE,QAAQ,EAAE,KAAK,CAAC,UACrE,IAAAA,eAAI,EACJ,iEAAiE,EACjE,mBAAmB,EACnB,KAAK,EACL,QAAQ,CACR,UACA,IAAAA,eAAI,EACJ,6DAA6D,EAC7D,QAAQ,EACR,KAAK,EACL,QAAQ,CACR;EAAA;EAAA;EAAA;IAAA;IAAA;EAAA;EAAA;IAAA;IAAA;MAAA,6GAbD,kBAeCC,WAAwB,EACxBC,SAAkB;QAAA;UAAA;UAAA;UAAA;UAAA;UAAA;QAAA;UAAA;YAAA;cAAA;gBAClBC,UAAU,8DAAG,SAAS;gBAAA;gBAAA,OAEhB,IAAI,CAACC,cAAc,EAAE,CAACC,qBAAqB,CAACJ,WAAW,CAAC;cAAA;gBAE9D,IAAI,CAACK,YAAY,CAACC,WAAW,CAAC,IAAIC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAE7CC,MAAM,GAAG,KAAK;gBAAA;gBAAA,OAEZ,IAAI,CAACC,OAAO,CAACC,EAAE,CACpB,sBAAsB;kBAAA,0FACtB;oBAAA;oBAAA;sBAAA;wBAAA;0BAAA;4BAASV,WAAW,QAAXA,WAAW,EAAEE,UAAU,QAAVA,UAAU;4BAC/B,IAAIF,WAAW,KAAK,OAAO,IAAIE,UAAU,KAAK,gBAAgB,EAAE;8BAC/DM,MAAM,GAAG,IAAI;4BACd;0BAAC;0BAAA;4BAAA;wBAAA;sBAAA;oBAAA;kBAAA,CACD;kBAAA;oBAAA;kBAAA;gBAAA,IACD;cAAA;gBAAA;gBAAA,OAEqB,IAAI,CAACC,OAAO,CAACE,IAAI,CAAC,qBAAqB,EAAE;kBAC9DX,WAAW,EAAE,MAAM;kBACnBE,UAAU,EAAVA,UAAU;kBACVU,OAAO,EAAE,CAAC;gBACX,CAAC,CAAC;cAAA;gBAJIA,OAAO;gBAAA,wBAMMC,mCAAiB,CAACC,+BAA+B,CACnEF,OAAO,EACPG,uBAAW,CACX,EAHOC,MAAM,yBAANA,MAAM;gBAKdC,iBAAM,CAACC,OAAO,CAACF,MAAM,CAAC;gBAEtBC,iBAAM,CAACE,OAAO,CAACX,MAAM,EAAEP,SAAS,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACjC;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;EAAA;AAAA,EAjDkDmB,4BAAe;AAAA"}
1
+ {"version":3,"file":"UpgradingWithListeners.test.js","names":["UpgradingWithListeners","test","featureCode","shouldHit","actionCode","FeatureFixture","installCachedFeatures","assertListenersSynced","featureInstaller","markAsPermanentlySkipped","commandFaker","fakeCommand","RegExp","wasHit","emitter","on","emit","results","eventResponseUtil","getAllResponsePayloadsAndErrors","SpruceError","errors","assert","isFalsy","isEqual","AbstractCliTest"],"sources":["../../../../src/__tests__/behavioral/upgrading/UpgradingWithListeners.test.ts"],"sourcesContent":["import { eventResponseUtil } from '@sprucelabs/spruce-event-utils'\nimport { test, assert } from '@sprucelabs/test-utils'\nimport SpruceError from '../../../errors/SpruceError'\nimport { FeatureCode } from '../../../features/features.types'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\n\nexport default class UpgradingWithListeners extends AbstractCliTest {\n\t@test('should sync listeners when installed', 'events', true)\n\t@test('should not sync listeners when not installed', 'skills', false)\n\t@test(\n\t\t'should not sync listeners when creating node when not installed',\n\t\t'testsInNodeModule',\n\t\tfalse,\n\t\t'create'\n\t)\n\t@test(\n\t\t'should not sync listeners when creating node when installed',\n\t\t'events',\n\t\tfalse,\n\t\t'create'\n\t)\n\tprotected static async upgradingSyncsListeners(\n\t\tfeatureCode: FeatureCode,\n\t\tshouldHit: boolean,\n\t\tactionCode = 'upgrade'\n\t) {\n\t\tawait this.FeatureFixture().installCachedFeatures(featureCode)\n\t\tawait this.assertListenersSynced(actionCode, shouldHit)\n\t}\n\n\t@test()\n\tprotected static async willNotSyncIfSkillNotInstalled() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\t\tthis.featureInstaller.markAsPermanentlySkipped('skill')\n\t\tawait this.assertListenersSynced('upgrade', false)\n\t}\n\n\tprivate static async assertListenersSynced(\n\t\tactionCode: string,\n\t\tshouldHit: boolean\n\t) {\n\t\tthis.commandFaker.fakeCommand(new RegExp(/yarn/))\n\n\t\tlet wasHit = false\n\n\t\tawait this.emitter.on(\n\t\t\t'feature.will-execute',\n\t\t\tasync ({ featureCode, actionCode }) => {\n\t\t\t\tif (featureCode === 'event' && actionCode === 'sync.listeners') {\n\t\t\t\t\twasHit = true\n\t\t\t\t}\n\t\t\t}\n\t\t)\n\n\t\tconst results = await this.emitter.emit('feature.did-execute', {\n\t\t\tfeatureCode: 'node',\n\t\t\tactionCode,\n\t\t\tresults: {},\n\t\t})\n\n\t\tconst { errors } = eventResponseUtil.getAllResponsePayloadsAndErrors(\n\t\t\tresults,\n\t\t\tSpruceError\n\t\t)\n\n\t\tassert.isFalsy(errors)\n\n\t\tassert.isEqual(wasHit, shouldHit)\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;AAAA;AACA;AACA;AAEA;AAA4D;AAAA;AAAA;AAAA,IAEvCA,sBAAsB,WACzC,IAAAC,eAAI,EAAC,sCAAsC,EAAE,QAAQ,EAAE,IAAI,CAAC,UAC5D,IAAAA,eAAI,EAAC,8CAA8C,EAAE,QAAQ,EAAE,KAAK,CAAC,UACrE,IAAAA,eAAI,EACJ,iEAAiE,EACjE,mBAAmB,EACnB,KAAK,EACL,QAAQ,CACR,UACA,IAAAA,eAAI,EACJ,6DAA6D,EAC7D,QAAQ,EACR,KAAK,EACL,QAAQ,CACR,UAUA,IAAAA,eAAI,GAAE;EAAA;EAAA;EAAA;IAAA;IAAA;EAAA;EAAA;IAAA;IAAA;MAAA,6GAvBP,iBAeCC,WAAwB,EACxBC,SAAkB;QAAA;UAAA;QAAA;UAAA;YAAA;cAAA;gBAClBC,UAAU,2DAAG,SAAS;gBAAA;gBAAA,OAEhB,IAAI,CAACC,cAAc,EAAE,CAACC,qBAAqB,CAACJ,WAAW,CAAC;cAAA;gBAAA;gBAAA,OACxD,IAAI,CAACK,qBAAqB,CAACH,UAAU,EAAED,SAAS,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACvD;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,oHAED;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEO,IAAI,CAACE,cAAc,EAAE,CAACC,qBAAqB,CAAC,QAAQ,CAAC;cAAA;gBAC3D,IAAI,CAACE,gBAAgB,CAACC,wBAAwB,CAAC,OAAO,CAAC;gBAAA;gBAAA,OACjD,IAAI,CAACF,qBAAqB,CAAC,SAAS,EAAE,KAAK,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAClD;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,2GAED,kBACCH,UAAkB,EAClBD,SAAkB;QAAA;QAAA;UAAA;YAAA;cAAA;gBAElB,IAAI,CAACO,YAAY,CAACC,WAAW,CAAC,IAAIC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAE7CC,MAAM,GAAG,KAAK;gBAAA;gBAAA,OAEZ,IAAI,CAACC,OAAO,CAACC,EAAE,CACpB,sBAAsB;kBAAA,0FACtB;oBAAA;oBAAA;sBAAA;wBAAA;0BAAA;4BAASb,WAAW,QAAXA,WAAW,EAAEE,UAAU,QAAVA,UAAU;4BAC/B,IAAIF,WAAW,KAAK,OAAO,IAAIE,UAAU,KAAK,gBAAgB,EAAE;8BAC/DS,MAAM,GAAG,IAAI;4BACd;0BAAC;0BAAA;4BAAA;wBAAA;sBAAA;oBAAA;kBAAA,CACD;kBAAA;oBAAA;kBAAA;gBAAA,IACD;cAAA;gBAAA;gBAAA,OAEqB,IAAI,CAACC,OAAO,CAACE,IAAI,CAAC,qBAAqB,EAAE;kBAC9Dd,WAAW,EAAE,MAAM;kBACnBE,UAAU,EAAVA,UAAU;kBACVa,OAAO,EAAE,CAAC;gBACX,CAAC,CAAC;cAAA;gBAJIA,OAAO;gBAAA,wBAMMC,mCAAiB,CAACC,+BAA+B,CACnEF,OAAO,EACPG,uBAAW,CACX,EAHOC,MAAM,yBAANA,MAAM;gBAKdC,iBAAM,CAACC,OAAO,CAACF,MAAM,CAAC;gBAEtBC,iBAAM,CAACE,OAAO,CAACX,MAAM,EAAEV,SAAS,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACjC;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;EAAA;AAAA,EA9DkDsB,4BAAe;AAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"ActionExecuter2.test.js","names":["FeatureCommandExecuterContTest","test","startBuildingNewErrorUntilOptionalDependencies","actionPromise","promise","finishBuildingUpToNamingNewError","results","assert","isTruthy","files","isFalsy","errors","pluginsDir","resolveHashSprucePath","isFalse","diskUtil","doesDirExist","testUtil","assertFileByNameInGeneratedFiles","fakeInstallCommands","executer","Action","shouldAutoHandleDependencies","emittedWillEvent","willEventCommand","emittedDidEvent","didEventCommand","willExecuteHitCount","didExecuteHitCount","emitter","on","payload","featuresUtil","generateCommand","featureCode","actionCode","meta","taco","isEqual","execute","waitForInput","ui","sendInput","doesNotInclude","getLastInvocation","command","options","type","secondTimeResults","name","description","packagesInstalled","isAbove","length","reset","lastQuestion","doesInclude","label","FeatureFixture","installCachedFeatures","version","versionUtil","generateVersion","dirValue","skillFeatureAnswer","message","invocations","choices","value","CommandService","fakeCommand","RegExp","code","AbstractSchemaTest"],"sources":["../../../src/__tests__/implementation/ActionExecuter2.test.ts"],"sourcesContent":["import { diskUtil, versionUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test-utils'\nimport featuresUtil from '../../features/feature.utilities'\nimport {\n\tFeatureActionResponse,\n\tFeatureInstallResponse,\n} from '../../features/features.types'\nimport CommandService from '../../services/CommandService'\nimport AbstractSchemaTest from '../../tests/AbstractSchemaTest'\nimport testUtil from '../../tests/utilities/test.utility'\n\nexport default class FeatureCommandExecuterContTest extends AbstractSchemaTest {\n\t@test()\n\tprotected static async canSkipOptionalDependencies() {\n\t\tconst { promise: actionPromise } =\n\t\t\tawait this.startBuildingNewErrorUntilOptionalDependencies('skip')\n\n\t\tconst results = await this.finishBuildingUpToNamingNewError(actionPromise)\n\n\t\tassert.isTruthy(results.files)\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst pluginsDir = this.resolveHashSprucePath('features')\n\t\tassert.isFalse(diskUtil.doesDirExist(pluginsDir))\n\n\t\ttestUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'myNewError.schema.ts',\n\t\t\tresults.files\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async shouldEmitExecutionEvents() {\n\t\tthis.fakeInstallCommands()\n\n\t\tconst executer = this.Action('skill', 'create', {\n\t\t\tshouldAutoHandleDependencies: true,\n\t\t})\n\n\t\tlet emittedWillEvent = false\n\t\tlet willEventCommand = ''\n\t\tlet emittedDidEvent = false\n\t\tlet didEventCommand = ''\n\t\tlet willExecuteHitCount = 0\n\t\tlet didExecuteHitCount = 0\n\n\t\tconst emitter = this.emitter\n\n\t\tvoid emitter.on('feature.will-execute', (payload) => {\n\t\t\temittedWillEvent = true\n\t\t\twillExecuteHitCount++\n\n\t\t\twillEventCommand = featuresUtil.generateCommand(\n\t\t\t\tpayload.featureCode,\n\t\t\t\tpayload.actionCode\n\t\t\t)\n\t\t\treturn {}\n\t\t})\n\n\t\tvoid emitter.on('feature.did-execute', (payload) => {\n\t\t\temittedDidEvent = true\n\t\t\tdidExecuteHitCount++\n\t\t\tdidEventCommand = featuresUtil.generateCommand(\n\t\t\t\tpayload.featureCode,\n\t\t\t\tpayload.actionCode\n\t\t\t)\n\n\t\t\treturn {\n\t\t\t\tmeta: {\n\t\t\t\t\ttaco: 'bell',\n\t\t\t\t},\n\t\t\t}\n\t\t})\n\n\t\tassert.isFalse(emittedWillEvent)\n\t\tassert.isFalse(emittedDidEvent)\n\t\tassert.isEqual(willExecuteHitCount, 0)\n\t\tassert.isEqual(didExecuteHitCount, 0)\n\n\t\tconst promise = executer.execute({})\n\n\t\tawait this.waitForInput()\n\n\t\tawait this.ui.sendInput('My new skill')\n\t\tawait this.ui.sendInput('So great!')\n\n\t\tconst results = await promise\n\n\t\tassert.isEqual(results.meta?.taco, 'bell')\n\t\tassert.isEqual(willEventCommand, 'create.skill')\n\t\tassert.isEqual(didEventCommand, 'create.skill')\n\t\tassert.isEqual(willExecuteHitCount, 1)\n\t\tassert.isEqual(didExecuteHitCount, 1)\n\t}\n\n\t@test()\n\tprotected static async canPermanentlySkipOptionalDependencies() {\n\t\tconst { promise: actionPromise } =\n\t\t\tawait this.startBuildingNewErrorUntilOptionalDependencies('alwaysSkip')\n\n\t\tawait this.finishBuildingUpToNamingNewError(actionPromise)\n\n\t\tconst executer = this.Action('error', 'create', {\n\t\t\tshouldAutoHandleDependencies: true,\n\t\t})\n\t\tconst promise = executer.execute({})\n\n\t\tawait this.waitForInput()\n\n\t\tassert.doesNotInclude(this.ui.getLastInvocation(), {\n\t\t\tcommand: 'prompt',\n\t\t\toptions: {\n\t\t\t\ttype: 'select',\n\t\t\t},\n\t\t})\n\n\t\tawait this.ui.sendInput('My second error')\n\t\tawait this.ui.sendInput('')\n\n\t\tconst secondTimeResults = await promise\n\n\t\tassert.isTruthy(secondTimeResults.files)\n\n\t\ttestUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'myNewError.schema.ts',\n\t\t\tsecondTimeResults.files\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async shouldReturnProperSummary() {\n\t\tthis.fakeInstallCommands()\n\n\t\tconst executer = this.Action('skill', 'create', {\n\t\t\tshouldAutoHandleDependencies: true,\n\t\t})\n\t\tconst results = await executer.execute({\n\t\t\tname: 'install summary test skill',\n\t\t\tdescription: 'go team!',\n\t\t})\n\n\t\tassert.isTruthy(results.files)\n\t\tassert.isTruthy(results.packagesInstalled)\n\n\t\tassert.isAbove(results.files.length, 0)\n\t\tassert.isAbove(results.packagesInstalled.length, 0)\n\t}\n\n\t@test()\n\tprotected static async shouldAskInstallDependentFeatures() {\n\t\tthis.fakeInstallCommands()\n\n\t\tconst executer = this.Action('schema', 'create', {\n\t\t\tshouldAutoHandleDependencies: true,\n\t\t})\n\t\tvoid executer.execute({})\n\n\t\tawait this.waitForInput()\n\n\t\tthis.ui.reset()\n\t\tconst lastQuestion = this.ui.getLastInvocation()\n\n\t\tassert.isEqual(lastQuestion.command, 'prompt')\n\t\tassert.doesInclude(\n\t\t\tlastQuestion.options.label,\n\t\t\t/install the skill feature/gi\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async shouldAddListenerWithoutBreakingOnSkill() {\n\t\tthis.fakeInstallCommands()\n\n\t\tawait this.FeatureFixture().installCachedFeatures('schemas')\n\n\t\tconst executer = this.Action('event', 'listen', {\n\t\t\tshouldAutoHandleDependencies: true,\n\t\t})\n\t\tconst promise = executer.execute({})\n\n\t\tawait this.waitForInput()\n\n\t\tawait this.ui.sendInput('Y')\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput('\\n')\n\n\t\tawait this.waitForInput()\n\n\t\tawait this.ui.sendInput('skill')\n\n\t\tawait this.ui.sendInput('will-boot')\n\n\t\tconst results = await promise\n\n\t\tconst version = versionUtil.generateVersion().dirValue\n\t\ttestUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`will-boot.${version}.listener.ts`,\n\t\t\tresults.files\n\t\t)\n\t}\n\n\tprivate static async finishBuildingUpToNamingNewError(\n\t\tactionPromise: Promise<FeatureInstallResponse & FeatureActionResponse>\n\t) {\n\t\tawait this.ui.sendInput('')\n\n\t\tawait this.waitForInput()\n\n\t\tawait this.ui.sendInput('')\n\n\t\tawait this.waitForInput()\n\n\t\tawait this.ui.sendInput('My new error')\n\t\tawait this.ui.sendInput('')\n\n\t\tconst results = await actionPromise\n\t\treturn results\n\t}\n\n\tprivate static async startBuildingNewErrorUntilOptionalDependencies(\n\t\tskillFeatureAnswer: 'skip' | 'yes' | 'alwaysSkip'\n\t) {\n\t\tconst executer = this.Action('error', 'create', {\n\t\t\tshouldAutoHandleDependencies: true,\n\t\t})\n\t\tconst promise = executer.execute({})\n\n\t\tawait this.waitForInput()\n\n\t\tconst message =\n\t\t\tthis.ui.invocations[this.ui.invocations.length - 2].options.message\n\t\tassert.isTruthy(message)\n\n\t\tassert.doesInclude(message, /2 required/gi)\n\t\tassert.doesInclude(message, /1 optional/gi)\n\n\t\tassert.doesInclude(this.ui.getLastInvocation(), {\n\t\t\tcommand: 'prompt',\n\t\t\toptions: {\n\t\t\t\ttype: 'select',\n\t\t\t\toptions: {\n\t\t\t\t\tchoices: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvalue: 'yes',\n\t\t\t\t\t\t\tlabel: 'Yes',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvalue: 'skip',\n\t\t\t\t\t\t\tlabel: 'Skip',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvalue: 'alwaysSkip',\n\t\t\t\t\t\t\tlabel: 'Always skip',\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.ui.sendInput(skillFeatureAnswer)\n\n\t\tawait this.ui.sendInput('y')\n\n\t\tawait this.waitForInput()\n\n\t\tawait this.ui.sendInput('My new module')\n\t\tawait this.ui.sendInput('it is for testing')\n\n\t\tawait this.waitForInput()\n\n\t\treturn { promise }\n\t}\n\n\tprivate static fakeInstallCommands() {\n\t\tCommandService.fakeCommand(new RegExp(/yarn|npm/gis), {\n\t\t\tcode: 0,\n\t\t})\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"ActionExecuter2.test.js","names":["FeatureCommandExecuterContTest","test","startBuildingNewErrorUntilOptionalDependencies","actionPromise","promise","finishBuildingUpToNamingNewError","results","assert","isTruthy","files","isFalsy","errors","pluginsDir","resolveHashSprucePath","isFalse","diskUtil","doesDirExist","testUtil","assertFileByNameInGeneratedFiles","fakeInstallCommands","executer","Action","shouldAutoHandleDependencies","emittedWillEvent","willEventCommand","emittedDidEvent","didEventCommand","willExecuteHitCount","didExecuteHitCount","emitter","on","payload","featuresUtil","generateCommand","featureCode","actionCode","meta","taco","isEqual","execute","waitForInput","ui","sendInput","doesNotInclude","getLastInvocation","command","options","type","secondTimeResults","name","description","packagesInstalled","isAbove","length","reset","lastQuestion","doesInclude","label","FeatureFixture","installCachedFeatures","version","versionUtil","generateVersion","dirValue","skillFeatureAnswer","message","invocations","choices","value","CommandService","fakeCommand","RegExp","code","AbstractSchemaTest"],"sources":["../../../src/__tests__/implementation/ActionExecuter2.test.ts"],"sourcesContent":["import { diskUtil, versionUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test-utils'\nimport featuresUtil from '../../features/feature.utilities'\nimport {\n\tFeatureActionResponse,\n\tFeatureInstallResponse,\n} from '../../features/features.types'\nimport CommandService from '../../services/CommandService'\nimport AbstractSchemaTest from '../../tests/AbstractSchemaTest'\nimport testUtil from '../../tests/utilities/test.utility'\n\nexport default class FeatureCommandExecuterContTest extends AbstractSchemaTest {\n\t@test()\n\tprotected static async canSkipOptionalDependencies() {\n\t\tconst { promise: actionPromise } =\n\t\t\tawait this.startBuildingNewErrorUntilOptionalDependencies('skip')\n\n\t\tconst results = await this.finishBuildingUpToNamingNewError(actionPromise)\n\n\t\tassert.isTruthy(results.files)\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst pluginsDir = this.resolveHashSprucePath('features')\n\t\tassert.isFalse(diskUtil.doesDirExist(pluginsDir))\n\n\t\ttestUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'myNewError.schema.ts',\n\t\t\tresults.files\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async shouldEmitExecutionEvents() {\n\t\tthis.fakeInstallCommands()\n\n\t\tconst executer = this.Action('skill', 'create', {\n\t\t\tshouldAutoHandleDependencies: true,\n\t\t})\n\n\t\tlet emittedWillEvent = false\n\t\tlet willEventCommand = ''\n\t\tlet emittedDidEvent = false\n\t\tlet didEventCommand = ''\n\t\tlet willExecuteHitCount = 0\n\t\tlet didExecuteHitCount = 0\n\n\t\tconst emitter = this.emitter\n\n\t\tvoid emitter.on('feature.will-execute', (payload) => {\n\t\t\temittedWillEvent = true\n\t\t\twillExecuteHitCount++\n\n\t\t\twillEventCommand = featuresUtil.generateCommand(\n\t\t\t\tpayload.featureCode,\n\t\t\t\tpayload.actionCode\n\t\t\t)\n\t\t\treturn {}\n\t\t})\n\n\t\tvoid emitter.on('feature.did-execute', (payload) => {\n\t\t\temittedDidEvent = true\n\t\t\tdidExecuteHitCount++\n\t\t\tdidEventCommand = featuresUtil.generateCommand(\n\t\t\t\tpayload.featureCode,\n\t\t\t\tpayload.actionCode\n\t\t\t)\n\n\t\t\treturn {\n\t\t\t\tmeta: {\n\t\t\t\t\ttaco: 'bell',\n\t\t\t\t},\n\t\t\t}\n\t\t})\n\n\t\tassert.isFalse(emittedWillEvent)\n\t\tassert.isFalse(emittedDidEvent)\n\t\tassert.isEqual(willExecuteHitCount, 0)\n\t\tassert.isEqual(didExecuteHitCount, 0)\n\n\t\tconst promise = executer.execute({})\n\n\t\tawait this.waitForInput()\n\n\t\tawait this.ui.sendInput('My new skill')\n\t\tawait this.ui.sendInput('So great!')\n\n\t\tconst results = await promise\n\n\t\tassert.isEqual(results.meta?.taco, 'bell')\n\t\tassert.isEqual(willEventCommand, 'create.skill')\n\t\tassert.isEqual(didEventCommand, 'create.skill')\n\t\tassert.isEqual(willExecuteHitCount, 1)\n\t\tassert.isEqual(didExecuteHitCount, 1)\n\t}\n\n\t@test()\n\tprotected static async canPermanentlySkipOptionalDependencies() {\n\t\tconst { promise: actionPromise } =\n\t\t\tawait this.startBuildingNewErrorUntilOptionalDependencies('alwaysSkip')\n\n\t\tawait this.finishBuildingUpToNamingNewError(actionPromise)\n\n\t\tconst executer = this.Action('error', 'create', {\n\t\t\tshouldAutoHandleDependencies: true,\n\t\t})\n\t\tconst promise = executer.execute({})\n\n\t\tawait this.waitForInput()\n\n\t\tassert.doesNotInclude(this.ui.getLastInvocation(), {\n\t\t\tcommand: 'prompt',\n\t\t\toptions: {\n\t\t\t\ttype: 'select',\n\t\t\t},\n\t\t})\n\n\t\tawait this.ui.sendInput('My second error')\n\t\tawait this.ui.sendInput('')\n\n\t\tconst secondTimeResults = await promise\n\n\t\tassert.isTruthy(secondTimeResults.files)\n\n\t\ttestUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'myNewError.schema.ts',\n\t\t\tsecondTimeResults.files\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async shouldReturnProperSummary() {\n\t\tthis.fakeInstallCommands()\n\n\t\tconst executer = this.Action('skill', 'create', {\n\t\t\tshouldAutoHandleDependencies: true,\n\t\t})\n\t\tconst results = await executer.execute({\n\t\t\tname: 'install summary test skill',\n\t\t\tdescription: 'go team!',\n\t\t})\n\n\t\tassert.isTruthy(results.files)\n\t\tassert.isTruthy(results.packagesInstalled)\n\n\t\tassert.isAbove(results.files.length, 0)\n\t\tassert.isAbove(results.packagesInstalled.length, 0)\n\t}\n\n\t@test()\n\tprotected static async shouldAskInstallDependentFeatures() {\n\t\tthis.fakeInstallCommands()\n\n\t\tconst executer = this.Action('schema', 'create', {\n\t\t\tshouldAutoHandleDependencies: true,\n\t\t})\n\t\tvoid executer.execute({})\n\n\t\tawait this.waitForInput()\n\n\t\tthis.ui.reset()\n\t\tconst lastQuestion = this.ui.getLastInvocation()\n\n\t\tassert.isEqual(lastQuestion.command, 'prompt')\n\t\tassert.doesInclude(\n\t\t\tlastQuestion.options.label,\n\t\t\t/install the skill feature/gi\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async shouldAddListenerWithoutBreakingOnSkill() {\n\t\tthis.fakeInstallCommands()\n\n\t\tawait this.FeatureFixture().installCachedFeatures('schemas')\n\n\t\tconst executer = this.Action('event', 'listen', {\n\t\t\tshouldAutoHandleDependencies: true,\n\t\t})\n\t\tconst promise = executer.execute({})\n\n\t\tawait this.waitForInput()\n\n\t\tawait this.ui.sendInput('Y')\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput('\\n')\n\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput('skill')\n\t\tawait this.ui.sendInput('will-boot')\n\n\t\tconst results = await promise\n\n\t\tconst version = versionUtil.generateVersion().dirValue\n\t\ttestUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`will-boot.${version}.listener.ts`,\n\t\t\tresults.files\n\t\t)\n\t}\n\n\tprivate static async finishBuildingUpToNamingNewError(\n\t\tactionPromise: Promise<FeatureInstallResponse & FeatureActionResponse>\n\t) {\n\t\tawait this.ui.sendInput('')\n\n\t\tawait this.waitForInput()\n\n\t\tawait this.ui.sendInput('')\n\n\t\tawait this.waitForInput()\n\n\t\tawait this.ui.sendInput('My new error')\n\t\tawait this.ui.sendInput('')\n\n\t\tconst results = await actionPromise\n\t\treturn results\n\t}\n\n\tprivate static async startBuildingNewErrorUntilOptionalDependencies(\n\t\tskillFeatureAnswer: 'skip' | 'yes' | 'alwaysSkip'\n\t) {\n\t\tconst executer = this.Action('error', 'create', {\n\t\t\tshouldAutoHandleDependencies: true,\n\t\t})\n\t\tconst promise = executer.execute({})\n\n\t\tawait this.waitForInput()\n\n\t\tconst message =\n\t\t\tthis.ui.invocations[this.ui.invocations.length - 2].options.message\n\t\tassert.isTruthy(message)\n\n\t\tassert.doesInclude(message, /2 required/gi)\n\t\tassert.doesInclude(message, /1 optional/gi)\n\n\t\tassert.doesInclude(this.ui.getLastInvocation(), {\n\t\t\tcommand: 'prompt',\n\t\t\toptions: {\n\t\t\t\ttype: 'select',\n\t\t\t\toptions: {\n\t\t\t\t\tchoices: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvalue: 'yes',\n\t\t\t\t\t\t\tlabel: 'Yes',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvalue: 'skip',\n\t\t\t\t\t\t\tlabel: 'Skip',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvalue: 'alwaysSkip',\n\t\t\t\t\t\t\tlabel: 'Always skip',\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.ui.sendInput(skillFeatureAnswer)\n\n\t\tawait this.ui.sendInput('y')\n\n\t\tawait this.waitForInput()\n\n\t\tawait this.ui.sendInput('My new module')\n\t\tawait this.ui.sendInput('it is for testing')\n\n\t\tawait this.waitForInput()\n\n\t\treturn { promise }\n\t}\n\n\tprivate static fakeInstallCommands() {\n\t\tCommandService.fakeCommand(new RegExp(/yarn|npm/gis), {\n\t\t\tcode: 0,\n\t\t})\n\t}\n}\n"],"mappings":"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"}
@@ -16,6 +16,7 @@ export default class EventFeature extends AbstractFeature {
16
16
  private initiatingAction?;
17
17
  constructor(options: FeatureOptions);
18
18
  afterPackageInstall(): Promise<FeatureActionResponse>;
19
+ private optionallySyncListeners;
19
20
  private handleWillExecute;
20
21
  private syncListenersAndMixinResults;
21
22
  private handleDidExecute;