@sprucelabs/spruce-cli 14.21.7 → 14.21.11

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 CHANGED
@@ -3,6 +3,38 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [14.21.11](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v14.21.10...v14.21.11) (2021-10-08)
7
+
8
+ **Note:** Version bump only for package @sprucelabs/spruce-cli
9
+
10
+
11
+
12
+
13
+
14
+ ## [14.21.10](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v14.21.9...v14.21.10) (2021-10-08)
15
+
16
+ **Note:** Version bump only for package @sprucelabs/spruce-cli
17
+
18
+
19
+
20
+
21
+
22
+ ## [14.21.9](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v14.21.8...v14.21.9) (2021-10-04)
23
+
24
+ **Note:** Version bump only for package @sprucelabs/spruce-cli
25
+
26
+
27
+
28
+
29
+
30
+ ## [14.21.8](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v14.21.7...v14.21.8) (2021-10-03)
31
+
32
+ **Note:** Version bump only for package @sprucelabs/spruce-cli
33
+
34
+
35
+
36
+
37
+
6
38
  ## [14.21.7](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v14.21.6...v14.21.7) (2021-10-02)
7
39
 
8
40
  **Note:** Version bump only for package @sprucelabs/spruce-cli
@@ -3,22 +3,16 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- Object.defineProperty(exports, "FieldDefinitions", {
7
- enumerable: true,
8
- get: function get() {
9
- return _schema.FieldDefinitions;
10
- }
11
- });
12
6
  Object.defineProperty(exports, "FieldDefinitionMap", {
13
7
  enumerable: true,
14
8
  get: function get() {
15
9
  return _schema.FieldDefinitionMap;
16
10
  }
17
11
  });
18
- Object.defineProperty(exports, "FieldValueTypeGeneratorMap", {
12
+ Object.defineProperty(exports, "FieldDefinitions", {
19
13
  enumerable: true,
20
14
  get: function get() {
21
- return _schema.FieldValueTypeGeneratorMap;
15
+ return _schema.FieldDefinitions;
22
16
  }
23
17
  });
24
18
  Object.defineProperty(exports, "FieldMap", {
@@ -27,6 +21,12 @@ Object.defineProperty(exports, "FieldMap", {
27
21
  return _schema.FieldMap;
28
22
  }
29
23
  });
24
+ Object.defineProperty(exports, "FieldValueTypeGeneratorMap", {
25
+ enumerable: true,
26
+ get: function get() {
27
+ return _schema.FieldValueTypeGeneratorMap;
28
+ }
29
+ });
30
30
 
31
31
  var _schema = require("@sprucelabs/schema");
32
32
  //# sourceMappingURL=fields.types.js.map
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports["default"] = exports.globalContract = void 0;
8
+ exports.globalContract = exports["default"] = void 0;
9
9
 
10
10
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
11
 
@@ -198,7 +198,9 @@ var CliGlobalEmitter = /*#__PURE__*/function (_AbstractEventEmitter) {
198
198
  (0, _createClass2["default"])(CliGlobalEmitter, null, [{
199
199
  key: "Emitter",
200
200
  value: function Emitter() {
201
- return new CliGlobalEmitter(globalContract);
201
+ return new CliGlobalEmitter(globalContract, {
202
+ shouldEmitSequentally: true
203
+ });
202
204
  }
203
205
  }]);
204
206
  return CliGlobalEmitter;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/GlobalEmitter.ts"],"names":["globalContract","eventSignatures","emitPayloadSchema","watcherDidDetectChangesEmitPayloadSchema","id","fields","schemas","type","isArray","options","valueType","responsePayloadSchema","abstractClasses","isRequired","schema","name","label","featureCode","importsWhenLocal","actionCode","actionResponseSchema","results","reporter","filesToSkip","CliGlobalEmitter","AbstractEventEmitter"],"mappings":"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","sourcesContent":["import { AbstractEventEmitter } from '@sprucelabs/mercury-event-emitter'\nimport {\n\tbuildEventContract,\n\tMercuryEventEmitter,\n} from '@sprucelabs/mercury-types'\nimport { buildSchema } from '@sprucelabs/schema'\nimport watcherDidDetectChangesEmitPayloadSchema from '#spruce/schemas/spruceCli/v2020_07_22/watcherDidDetectChangesEmitPayload.schema'\nimport { actionResponseSchema } from './features/features.types'\n\nexport const globalContract = buildEventContract({\n\teventSignatures: {\n\t\t'watcher.did-detect-change': {\n\t\t\temitPayloadSchema: watcherDidDetectChangesEmitPayloadSchema,\n\t\t},\n\t\t'schema.did-fetch-schemas': {\n\t\t\temitPayloadSchema: buildSchema({\n\t\t\t\tid: 'didFetchSchemasEmitPayload',\n\t\t\t\tfields: {\n\t\t\t\t\tschemas: {\n\t\t\t\t\t\ttype: 'raw',\n\t\t\t\t\t\tisArray: true,\n\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\tvalueType: 'Schema',\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\tresponsePayloadSchema: buildSchema({\n\t\t\t\tid: 'didFetchSchemasResponsePayload',\n\t\t\t\tfields: {\n\t\t\t\t\tschemas: {\n\t\t\t\t\t\ttype: 'raw',\n\t\t\t\t\t\tisArray: true,\n\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\tvalueType: 'Schema',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}),\n\t\t},\n\t\t'skill.register-dashboard-widgets': {},\n\n\t\t'test.register-abstract-test-classes': {\n\t\t\tresponsePayloadSchema: buildSchema({\n\t\t\t\tid: 'registerAbstractTestClassResponsePayload',\n\t\t\t\tfields: {\n\t\t\t\t\tabstractClasses: {\n\t\t\t\t\t\ttype: 'schema',\n\t\t\t\t\t\tisRequired: true,\n\t\t\t\t\t\tisArray: true,\n\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\tschema: buildSchema({\n\t\t\t\t\t\t\t\tid: 'abstractClassRegistration',\n\t\t\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t\t\tname: {\n\t\t\t\t\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\t\t\t\t\tisRequired: true,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tlabel: {\n\t\t\t\t\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\t\t\t\t\tisRequired: true,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\timport: {\n\t\t\t\t\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\t\t\t\t\tisRequired: true,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tfeatureCode: {\n\t\t\t\t\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}),\n\t\t},\n\t\t'feature.will-execute': {\n\t\t\temitPayloadSchema: buildSchema({\n\t\t\t\tid: 'willExecuteEmitPayload',\n\t\t\t\timportsWhenLocal: [\n\t\t\t\t\t'import { FeatureActionResponse } from #spruce/../features/features/features.types',\n\t\t\t\t],\n\t\t\t\tfields: {\n\t\t\t\t\tfeatureCode: {\n\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\tisRequired: true,\n\t\t\t\t\t},\n\t\t\t\t\tactionCode: {\n\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\tisRequired: true,\n\t\t\t\t\t},\n\t\t\t\t\toptions: {\n\t\t\t\t\t\ttype: 'raw',\n\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\tvalueType: 'Record<string, any>',\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\tresponsePayloadSchema: buildSchema({\n\t\t\t\tid: 'willExecuteResponsePayload',\n\t\t\t\tfields: {\n\t\t\t\t\t...actionResponseSchema.fields,\n\t\t\t\t},\n\t\t\t}),\n\t\t},\n\t\t'feature.did-execute': {\n\t\t\temitPayloadSchema: buildSchema({\n\t\t\t\tid: 'didExecuteEmitPayload',\n\t\t\t\timportsWhenLocal: [\n\t\t\t\t\t'import { FeatureActionResponse } from #spruce/../features/features/features.types',\n\t\t\t\t],\n\t\t\t\tfields: {\n\t\t\t\t\tfeatureCode: {\n\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\tisRequired: true,\n\t\t\t\t\t},\n\t\t\t\t\tactionCode: {\n\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\tisRequired: true,\n\t\t\t\t\t},\n\t\t\t\t\tresults: {\n\t\t\t\t\t\ttype: 'raw',\n\t\t\t\t\t\tisRequired: true,\n\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\tvalueType: 'FeatureActionResponse',\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\tresponsePayloadSchema: buildSchema({\n\t\t\t\tid: 'didExecuteResponsePayload',\n\t\t\t\tfields: {\n\t\t\t\t\t...actionResponseSchema.fields,\n\t\t\t\t},\n\t\t\t}),\n\t\t},\n\t\t'test.reporter-did-boot': {\n\t\t\temitPayloadSchema: buildSchema({\n\t\t\t\tid: 'testReporterDidBootEmitPayload',\n\t\t\t\tfields: {\n\t\t\t\t\treporter: {\n\t\t\t\t\t\ttype: 'raw',\n\t\t\t\t\t\tisRequired: true,\n\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\tvalueType: 'TestAction',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}),\n\t\t},\n\t\t'skill.will-write-directory-template': {\n\t\t\tresponsePayloadSchema: buildSchema({\n\t\t\t\tid: 'wilLWriteDirectoryTemplateResponsePayload',\n\t\t\t\tfields: {\n\t\t\t\t\tfilesToSkip: {\n\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\tisArray: true,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}),\n\t\t},\n\t},\n})\n\nexport type GlobalEventContract = typeof globalContract\nexport type GlobalEmitter = MercuryEventEmitter<GlobalEventContract>\n\nexport default class CliGlobalEmitter extends AbstractEventEmitter<GlobalEventContract> {\n\tpublic static Emitter() {\n\t\treturn new CliGlobalEmitter(globalContract) as GlobalEmitter\n\t}\n}\n"],"file":"GlobalEmitter.js"}
1
+ {"version":3,"sources":["../src/GlobalEmitter.ts"],"names":["globalContract","eventSignatures","emitPayloadSchema","watcherDidDetectChangesEmitPayloadSchema","id","fields","schemas","type","isArray","options","valueType","responsePayloadSchema","abstractClasses","isRequired","schema","name","label","featureCode","importsWhenLocal","actionCode","actionResponseSchema","results","reporter","filesToSkip","CliGlobalEmitter","shouldEmitSequentally","AbstractEventEmitter"],"mappings":"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","sourcesContent":["import { AbstractEventEmitter } from '@sprucelabs/mercury-event-emitter'\nimport {\n\tbuildEventContract,\n\tMercuryEventEmitter,\n} from '@sprucelabs/mercury-types'\nimport { buildSchema } from '@sprucelabs/schema'\nimport watcherDidDetectChangesEmitPayloadSchema from '#spruce/schemas/spruceCli/v2020_07_22/watcherDidDetectChangesEmitPayload.schema'\nimport { actionResponseSchema } from './features/features.types'\n\nexport const globalContract = buildEventContract({\n\teventSignatures: {\n\t\t'watcher.did-detect-change': {\n\t\t\temitPayloadSchema: watcherDidDetectChangesEmitPayloadSchema,\n\t\t},\n\t\t'schema.did-fetch-schemas': {\n\t\t\temitPayloadSchema: buildSchema({\n\t\t\t\tid: 'didFetchSchemasEmitPayload',\n\t\t\t\tfields: {\n\t\t\t\t\tschemas: {\n\t\t\t\t\t\ttype: 'raw',\n\t\t\t\t\t\tisArray: true,\n\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\tvalueType: 'Schema',\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\tresponsePayloadSchema: buildSchema({\n\t\t\t\tid: 'didFetchSchemasResponsePayload',\n\t\t\t\tfields: {\n\t\t\t\t\tschemas: {\n\t\t\t\t\t\ttype: 'raw',\n\t\t\t\t\t\tisArray: true,\n\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\tvalueType: 'Schema',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}),\n\t\t},\n\t\t'skill.register-dashboard-widgets': {},\n\n\t\t'test.register-abstract-test-classes': {\n\t\t\tresponsePayloadSchema: buildSchema({\n\t\t\t\tid: 'registerAbstractTestClassResponsePayload',\n\t\t\t\tfields: {\n\t\t\t\t\tabstractClasses: {\n\t\t\t\t\t\ttype: 'schema',\n\t\t\t\t\t\tisRequired: true,\n\t\t\t\t\t\tisArray: true,\n\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\tschema: buildSchema({\n\t\t\t\t\t\t\t\tid: 'abstractClassRegistration',\n\t\t\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t\t\tname: {\n\t\t\t\t\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\t\t\t\t\tisRequired: true,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tlabel: {\n\t\t\t\t\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\t\t\t\t\tisRequired: true,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\timport: {\n\t\t\t\t\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\t\t\t\t\tisRequired: true,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tfeatureCode: {\n\t\t\t\t\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}),\n\t\t},\n\t\t'feature.will-execute': {\n\t\t\temitPayloadSchema: buildSchema({\n\t\t\t\tid: 'willExecuteEmitPayload',\n\t\t\t\timportsWhenLocal: [\n\t\t\t\t\t'import { FeatureActionResponse } from #spruce/../features/features/features.types',\n\t\t\t\t],\n\t\t\t\tfields: {\n\t\t\t\t\tfeatureCode: {\n\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\tisRequired: true,\n\t\t\t\t\t},\n\t\t\t\t\tactionCode: {\n\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\tisRequired: true,\n\t\t\t\t\t},\n\t\t\t\t\toptions: {\n\t\t\t\t\t\ttype: 'raw',\n\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\tvalueType: 'Record<string, any>',\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\tresponsePayloadSchema: buildSchema({\n\t\t\t\tid: 'willExecuteResponsePayload',\n\t\t\t\tfields: {\n\t\t\t\t\t...actionResponseSchema.fields,\n\t\t\t\t},\n\t\t\t}),\n\t\t},\n\t\t'feature.did-execute': {\n\t\t\temitPayloadSchema: buildSchema({\n\t\t\t\tid: 'didExecuteEmitPayload',\n\t\t\t\timportsWhenLocal: [\n\t\t\t\t\t'import { FeatureActionResponse } from #spruce/../features/features/features.types',\n\t\t\t\t],\n\t\t\t\tfields: {\n\t\t\t\t\tfeatureCode: {\n\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\tisRequired: true,\n\t\t\t\t\t},\n\t\t\t\t\tactionCode: {\n\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\tisRequired: true,\n\t\t\t\t\t},\n\t\t\t\t\tresults: {\n\t\t\t\t\t\ttype: 'raw',\n\t\t\t\t\t\tisRequired: true,\n\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\tvalueType: 'FeatureActionResponse',\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\tresponsePayloadSchema: buildSchema({\n\t\t\t\tid: 'didExecuteResponsePayload',\n\t\t\t\tfields: {\n\t\t\t\t\t...actionResponseSchema.fields,\n\t\t\t\t},\n\t\t\t}),\n\t\t},\n\t\t'test.reporter-did-boot': {\n\t\t\temitPayloadSchema: buildSchema({\n\t\t\t\tid: 'testReporterDidBootEmitPayload',\n\t\t\t\tfields: {\n\t\t\t\t\treporter: {\n\t\t\t\t\t\ttype: 'raw',\n\t\t\t\t\t\tisRequired: true,\n\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\tvalueType: 'TestAction',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}),\n\t\t},\n\t\t'skill.will-write-directory-template': {\n\t\t\tresponsePayloadSchema: buildSchema({\n\t\t\t\tid: 'wilLWriteDirectoryTemplateResponsePayload',\n\t\t\t\tfields: {\n\t\t\t\t\tfilesToSkip: {\n\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\tisArray: true,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}),\n\t\t},\n\t},\n})\n\nexport type GlobalEventContract = typeof globalContract\nexport type GlobalEmitter = MercuryEventEmitter<GlobalEventContract>\n\nexport default class CliGlobalEmitter extends AbstractEventEmitter<GlobalEventContract> {\n\tpublic static Emitter() {\n\t\treturn new CliGlobalEmitter(globalContract, {\n\t\t\tshouldEmitSequentally: true,\n\t\t}) as GlobalEmitter\n\t}\n}\n"],"file":"GlobalEmitter.js"}
@@ -351,7 +351,7 @@ var CreatingAListenerTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)()
351
351
  var _emittingEventTriggersListenerAndCrashesWithListenerNotImplemented = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7() {
352
352
  var _boot$meta, _boot$meta$promise, _boot$meta2;
353
353
 
354
- var _yield$this$setupSkil3, currentSkill, skill2, eventContract, org, boot, client, eventName, results, error, responderRef;
354
+ var _yield$this$setupSkil3, currentSkill, skill2, eventContract, org, currentClient, boot, client, eventName, results, error, responderRef;
355
355
 
356
356
  return _regenerator["default"].wrap(function _callee7$(_context7) {
357
357
  while (1) {
@@ -396,39 +396,50 @@ var CreatingAListenerTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)()
396
396
  eventContract = _yield$this$setupSkil3.eventContract;
397
397
  org = _yield$this$setupSkil3.org;
398
398
  _context7.next = 9;
399
+ return this.connectToApi({
400
+ shouldAuthAsCurrentSkill: true
401
+ });
402
+
403
+ case 9:
404
+ currentClient = _context7.sent;
405
+ _context7.next = 12;
406
+ return currentClient.disconnect();
407
+
408
+ case 12:
409
+ _context7.next = 14;
399
410
  return this.Action('skill', 'boot').execute({
400
411
  local: true
401
412
  });
402
413
 
403
- case 9:
414
+ case 14:
404
415
  boot = _context7.sent;
405
416
 
406
417
  _test.assert.isFalsy(boot.errors); //give the skill time to boot
407
418
 
408
419
 
409
- _context7.next = 13;
420
+ _context7.next = 18;
410
421
  return this.wait(20000);
411
422
 
412
- case 13:
413
- _context7.next = 15;
423
+ case 18:
424
+ _context7.next = 20;
414
425
  return this.connectToApi({
415
426
  skillId: skill2.id,
416
427
  apiKey: skill2.apiKey
417
428
  });
418
429
 
419
- case 15:
430
+ case 20:
420
431
  client = _context7.sent;
421
432
  eventName = "".concat(skill2.slug, ".my-new-event::").concat(this.expectedVersion);
422
433
  client.mixinContract({
423
434
  eventSignatures: (0, _defineProperty2["default"])({}, eventName, eventContract.eventSignatures["my-new-event::".concat(this.expectedVersion)])
424
435
  });
425
436
 
426
- case 18:
427
- _context7.next = 20;
437
+ case 23:
438
+ _context7.next = 25;
428
439
  return this.wait(5000);
429
440
 
430
- case 20:
431
- _context7.next = 22;
441
+ case 25:
442
+ _context7.next = 27;
432
443
  return client.emit(eventName, {
433
444
  target: {
434
445
  organizationId: org.id
@@ -438,16 +449,16 @@ var CreatingAListenerTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)()
438
449
  }
439
450
  });
440
451
 
441
- case 22:
452
+ case 27:
442
453
  results = _context7.sent;
443
454
 
444
- case 23:
455
+ case 28:
445
456
  if (results.totalContracts < 1) {
446
- _context7.next = 18;
457
+ _context7.next = 23;
447
458
  break;
448
459
  }
449
460
 
450
- case 24:
461
+ case 29:
451
462
  _test.assert.isEqual(results.totalContracts, 1);
452
463
 
453
464
  _test.assert.isEqual(results.totalErrors, 1);
@@ -457,10 +468,10 @@ var CreatingAListenerTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)()
457
468
  (_boot$meta = boot.meta) === null || _boot$meta === void 0 ? void 0 : (_boot$meta$promise = _boot$meta.promise) === null || _boot$meta$promise === void 0 ? void 0 : _boot$meta$promise["catch"](function (err) {
458
469
  _test.assert.fail(err.stack);
459
470
  });
460
- _context7.next = 30;
471
+ _context7.next = 35;
461
472
  return (_boot$meta2 = boot.meta) === null || _boot$meta2 === void 0 ? void 0 : _boot$meta2.kill();
462
473
 
463
- case 30:
474
+ case 35:
464
475
  error = _test.assert.doesThrow(function () {
465
476
  return _spruceEventUtils.eventResponseUtil.getFirstResponseOrThrow(results);
466
477
  });
@@ -471,7 +482,7 @@ var CreatingAListenerTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)()
471
482
 
472
483
  _test.assert.isEqual(responderRef, "skill:".concat(currentSkill.id, ":").concat(currentSkill.slug));
473
484
 
474
- case 34:
485
+ case 39:
475
486
  case "end":
476
487
  return _context7.stop();
477
488
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/__tests__/behavioral/events/CreatingAListener.test.ts"],"names":["CreatingAListenerTest","installEventFeature","Action","execute","eventNamespace","results","assert","isTruthy","errors","err","errorAssertUtil","assertError","parameters","eventName","cli","version","isFalsy","match","testUtil","assertFileByNameInGeneratedFiles","files","doesInclude","Service","check","checkHealth","health","skill","isUndefined","event","listeners","waitForInput","lastInvocation","ui","isEqual","command","options","label","sendInput","MERCURY_API_NAMESPACE","reset","setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener","isGlobal","contents","emitPayloadSchema","targetSchema","eventTargetSchema","payloadSchema","id","fields","booleanField","type","skill2","slug","expectedVersion","organizationId","isRequired","responsePayloadSchema","currentSkill","eventContract","org","local","boot","wait","connectToApi","skillId","apiKey","client","mixinContract","eventSignatures","emit","target","payload","totalContracts","totalErrors","totalResponses","meta","promise","fail","stack","kill","error","doesThrow","eventResponseUtil","getFirstResponseOrThrow","eventErrorAssertUtil","responderRef","responses","eventSignature","seedDummySkillRegisterCurrentSkillAndInstallToOrg","skillFixture","registerEventContract","listener","diskUtil","readFile","listenerPath","AbstractEventTest","versionUtil","generateVersion","constValue"],"mappings":"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","sourcesContent":["import { EventSignature } from '@sprucelabs/mercury-types'\nimport { buildSchema } from '@sprucelabs/schema'\nimport {\n\tbuildEmitTargetAndPayloadSchema,\n\teventErrorAssertUtil,\n\teventResponseUtil,\n\teventTargetSchema,\n} from '@sprucelabs/spruce-event-utils'\nimport {\n\tdiskUtil,\n\tMERCURY_API_NAMESPACE,\n\tversionUtil,\n} from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { errorAssertUtil } from '@sprucelabs/test-utils'\nimport AbstractEventTest from '../../../tests/AbstractEventTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class CreatingAListenerTest extends AbstractEventTest {\n\tprivate static readonly expectedVersion =\n\t\tversionUtil.generateVersion().constValue\n\n\t@test()\n\tprotected static async throwsWithBadNamespace() {\n\t\tawait this.installEventFeature('events')\n\t\tconst results = await this.Action('event', 'listen').execute({\n\t\t\teventNamespace: 'taco-bell',\n\t\t})\n\n\t\tassert.isTruthy(results.errors)\n\t\tconst err = results.errors[0]\n\n\t\terrorAssertUtil.assertError(err, 'INVALID_PARAMETERS', {\n\t\t\tparameters: ['eventNamespace'],\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async throwsWithBadEventName() {\n\t\tawait this.installEventFeature('events')\n\t\tconst results = await this.Action('event', 'listen').execute({\n\t\t\teventNamespace: 'mercury',\n\t\t\teventName: 'bad-time',\n\t\t})\n\n\t\tassert.isTruthy(results.errors)\n\t\tconst err = results.errors[0]\n\n\t\terrorAssertUtil.assertError(err, 'INVALID_PARAMETERS', {\n\t\t\tparameters: ['eventName'],\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async createsValidListener() {\n\t\tconst cli = await this.installEventFeature('events')\n\n\t\tconst version = 'v2020_01_01'\n\n\t\tconst results = await this.Action('event', 'listen').execute({\n\t\t\teventNamespace: 'skill',\n\t\t\teventName: 'will-boot',\n\t\t\tversion,\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`will-boot.${version}.listener.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.doesInclude(match, version)\n\n\t\tawait this.Service('typeChecker').check(match)\n\n\t\tconst health = await cli.checkHealth()\n\n\t\tassert.isTruthy(health.skill)\n\n\t\tassert.isUndefined(health.skill.errors)\n\t\tassert.isTruthy(health.event)\n\n\t\tassert.doesInclude(health.event.listeners, {\n\t\t\teventName: 'will-boot',\n\t\t\teventNamespace: 'skill',\n\t\t\tversion,\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async creatingANewListenerAsksWhichEventToListenTo() {\n\t\tawait this.installEventFeature('events')\n\n\t\tvoid this.Action('event', 'listen').execute({})\n\n\t\tawait this.waitForInput()\n\n\t\tlet lastInvocation = this.ui.lastInvocation()\n\n\t\tassert.isEqual(lastInvocation.command, 'prompt')\n\t\tassert.doesInclude(lastInvocation.options.label, 'namespace')\n\n\t\tawait this.ui.sendInput(MERCURY_API_NAMESPACE)\n\n\t\tawait this.waitForInput()\n\n\t\tlastInvocation = this.ui.lastInvocation()\n\n\t\tassert.doesInclude(lastInvocation.options.label, 'event')\n\n\t\tthis.ui.reset()\n\t}\n\n\t@test()\n\tprotected static async generatesTypedListenerWithoutPayloads() {\n\t\tconst { contents } =\n\t\t\tawait this.setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener(\n\t\t\t\t{\n\t\t\t\t\tisGlobal: true,\n\t\t\t\t}\n\t\t\t)\n\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t'export default async (event: SpruceEvent): SpruceEventResponse'\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async generatesTypedListenerWithEmitPayload() {\n\t\tconst { contents, skill2 } =\n\t\t\tawait this.setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener(\n\t\t\t\t{\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t\tpayloadSchema: {\n\t\t\t\t\t\t\tid: 'myNewEventEmitPayload',\n\t\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t\tbooleanField: {\n\t\t\t\t\t\t\t\t\ttype: 'boolean',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t}\n\t\t\t)\n\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t'event: SpruceEvent<SkillEventContract, EmitPayload>'\n\t\t)\n\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t`fullyQualifiedEventName: '${skill2.slug}.my-new-event::${this.expectedVersion}'`\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async emittingEventTriggersListenerAndCrashesWithListenerNotImplemented() {\n\t\tconst { currentSkill, skill2, eventContract, org } =\n\t\t\tawait this.setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener(\n\t\t\t\t{\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: {\n\t\t\t\t\t\t\tid: 'myNewEventEmitTarget',\n\t\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t\torganizationId: {\n\t\t\t\t\t\t\t\t\ttype: 'id',\n\t\t\t\t\t\t\t\t\tisRequired: true,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tpayloadSchema: {\n\t\t\t\t\t\t\tid: 'myNewEventEmitPayload',\n\t\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t\tbooleanField: {\n\t\t\t\t\t\t\t\t\ttype: 'boolean',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t\tresponsePayloadSchema: buildSchema({\n\t\t\t\t\t\tid: 'myNewEventResponsePayload',\n\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\tbooleanField: {\n\t\t\t\t\t\t\t\ttype: 'boolean',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t}\n\t\t\t)\n\n\t\tconst boot = await this.Action('skill', 'boot').execute({ local: true })\n\n\t\tassert.isFalsy(boot.errors)\n\n\t\t//give the skill time to boot\n\t\tawait this.wait(20000)\n\n\t\tconst client = (await this.connectToApi({\n\t\t\tskillId: skill2.id,\n\t\t\tapiKey: skill2.apiKey,\n\t\t})) as any\n\n\t\tconst eventName = `${skill2.slug}.my-new-event::${this.expectedVersion}`\n\n\t\tclient.mixinContract({\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]:\n\t\t\t\t\teventContract.eventSignatures[\n\t\t\t\t\t\t`my-new-event::${this.expectedVersion}`\n\t\t\t\t\t],\n\t\t\t},\n\t\t})\n\n\t\tlet results: any\n\n\t\tdo {\n\t\t\tawait this.wait(5000)\n\n\t\t\tresults = await client.emit(eventName, {\n\t\t\t\ttarget: {\n\t\t\t\t\torganizationId: org.id,\n\t\t\t\t},\n\t\t\t\tpayload: {\n\t\t\t\t\tbooleanField: true,\n\t\t\t\t},\n\t\t\t})\n\t\t} while (results.totalContracts < 1)\n\n\t\tassert.isEqual(results.totalContracts, 1)\n\t\tassert.isEqual(results.totalErrors, 1)\n\t\tassert.isEqual(results.totalResponses, 1)\n\n\t\tboot.meta?.promise?.catch((err: Error) => {\n\t\t\tassert.fail(err.stack)\n\t\t})\n\n\t\tawait boot.meta?.kill()\n\n\t\tconst error = assert.doesThrow(() =>\n\t\t\teventResponseUtil.getFirstResponseOrThrow(results)\n\t\t)\n\n\t\teventErrorAssertUtil.assertError(error, 'LISTENER_NOT_IMPLEMENTED')\n\n\t\tconst responderRef = results.responses[0].responderRef\n\t\tassert.isEqual(\n\t\t\tresponderRef,\n\t\t\t`skill:${currentSkill.id}:${currentSkill.slug}`\n\t\t)\n\t}\n\n\tprivate static async setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener(\n\t\teventSignature: EventSignature\n\t) {\n\t\tconst expectedVersion = this.expectedVersion\n\n\t\tconst eventContract = {\n\t\t\teventSignatures: {\n\t\t\t\t[`my-new-event::${expectedVersion}`]: eventSignature,\n\t\t\t},\n\t\t} as const\n\n\t\tconst { skillFixture, skill2, currentSkill, cli, org } =\n\t\t\tawait this.seedDummySkillRegisterCurrentSkillAndInstallToOrg()\n\n\t\tawait skillFixture.registerEventContract(skill2, eventContract)\n\n\t\tconst results = await this.Action('event', 'listen').execute({\n\t\t\teventNamespace: skill2.slug,\n\t\t\teventName: `my-new-event`,\n\t\t\tversion: expectedVersion,\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst listener = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`my-new-event.${expectedVersion}.listener.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(listener)\n\n\t\tconst contents = diskUtil.readFile(listener)\n\n\t\treturn {\n\t\t\tcontents,\n\t\t\tskill2,\n\t\t\tlistenerPath: listener,\n\t\t\tcli,\n\t\t\teventContract,\n\t\t\torg,\n\t\t\tcurrentSkill,\n\t\t}\n\t}\n}\n"],"file":"CreatingAListener.test.js"}
1
+ {"version":3,"sources":["../../../../src/__tests__/behavioral/events/CreatingAListener.test.ts"],"names":["CreatingAListenerTest","installEventFeature","Action","execute","eventNamespace","results","assert","isTruthy","errors","err","errorAssertUtil","assertError","parameters","eventName","cli","version","isFalsy","match","testUtil","assertFileByNameInGeneratedFiles","files","doesInclude","Service","check","checkHealth","health","skill","isUndefined","event","listeners","waitForInput","lastInvocation","ui","isEqual","command","options","label","sendInput","MERCURY_API_NAMESPACE","reset","setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener","isGlobal","contents","emitPayloadSchema","targetSchema","eventTargetSchema","payloadSchema","id","fields","booleanField","type","skill2","slug","expectedVersion","organizationId","isRequired","responsePayloadSchema","currentSkill","eventContract","org","connectToApi","shouldAuthAsCurrentSkill","currentClient","disconnect","local","boot","wait","skillId","apiKey","client","mixinContract","eventSignatures","emit","target","payload","totalContracts","totalErrors","totalResponses","meta","promise","fail","stack","kill","error","doesThrow","eventResponseUtil","getFirstResponseOrThrow","eventErrorAssertUtil","responderRef","responses","eventSignature","seedDummySkillRegisterCurrentSkillAndInstallToOrg","skillFixture","registerEventContract","listener","diskUtil","readFile","listenerPath","AbstractEventTest","versionUtil","generateVersion","constValue"],"mappings":"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","sourcesContent":["import { EventSignature } from '@sprucelabs/mercury-types'\nimport { buildSchema } from '@sprucelabs/schema'\nimport {\n\tbuildEmitTargetAndPayloadSchema,\n\teventErrorAssertUtil,\n\teventResponseUtil,\n\teventTargetSchema,\n} from '@sprucelabs/spruce-event-utils'\nimport {\n\tdiskUtil,\n\tMERCURY_API_NAMESPACE,\n\tversionUtil,\n} from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { errorAssertUtil } from '@sprucelabs/test-utils'\nimport AbstractEventTest from '../../../tests/AbstractEventTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class CreatingAListenerTest extends AbstractEventTest {\n\tprivate static readonly expectedVersion =\n\t\tversionUtil.generateVersion().constValue\n\n\t@test()\n\tprotected static async throwsWithBadNamespace() {\n\t\tawait this.installEventFeature('events')\n\t\tconst results = await this.Action('event', 'listen').execute({\n\t\t\teventNamespace: 'taco-bell',\n\t\t})\n\n\t\tassert.isTruthy(results.errors)\n\t\tconst err = results.errors[0]\n\n\t\terrorAssertUtil.assertError(err, 'INVALID_PARAMETERS', {\n\t\t\tparameters: ['eventNamespace'],\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async throwsWithBadEventName() {\n\t\tawait this.installEventFeature('events')\n\t\tconst results = await this.Action('event', 'listen').execute({\n\t\t\teventNamespace: 'mercury',\n\t\t\teventName: 'bad-time',\n\t\t})\n\n\t\tassert.isTruthy(results.errors)\n\t\tconst err = results.errors[0]\n\n\t\terrorAssertUtil.assertError(err, 'INVALID_PARAMETERS', {\n\t\t\tparameters: ['eventName'],\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async createsValidListener() {\n\t\tconst cli = await this.installEventFeature('events')\n\n\t\tconst version = 'v2020_01_01'\n\n\t\tconst results = await this.Action('event', 'listen').execute({\n\t\t\teventNamespace: 'skill',\n\t\t\teventName: 'will-boot',\n\t\t\tversion,\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`will-boot.${version}.listener.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.doesInclude(match, version)\n\n\t\tawait this.Service('typeChecker').check(match)\n\n\t\tconst health = await cli.checkHealth()\n\n\t\tassert.isTruthy(health.skill)\n\n\t\tassert.isUndefined(health.skill.errors)\n\t\tassert.isTruthy(health.event)\n\n\t\tassert.doesInclude(health.event.listeners, {\n\t\t\teventName: 'will-boot',\n\t\t\teventNamespace: 'skill',\n\t\t\tversion,\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async creatingANewListenerAsksWhichEventToListenTo() {\n\t\tawait this.installEventFeature('events')\n\n\t\tvoid this.Action('event', 'listen').execute({})\n\n\t\tawait this.waitForInput()\n\n\t\tlet lastInvocation = this.ui.lastInvocation()\n\n\t\tassert.isEqual(lastInvocation.command, 'prompt')\n\t\tassert.doesInclude(lastInvocation.options.label, 'namespace')\n\n\t\tawait this.ui.sendInput(MERCURY_API_NAMESPACE)\n\n\t\tawait this.waitForInput()\n\n\t\tlastInvocation = this.ui.lastInvocation()\n\n\t\tassert.doesInclude(lastInvocation.options.label, 'event')\n\n\t\tthis.ui.reset()\n\t}\n\n\t@test()\n\tprotected static async generatesTypedListenerWithoutPayloads() {\n\t\tconst { contents } =\n\t\t\tawait this.setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener(\n\t\t\t\t{\n\t\t\t\t\tisGlobal: true,\n\t\t\t\t}\n\t\t\t)\n\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t'export default async (event: SpruceEvent): SpruceEventResponse'\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async generatesTypedListenerWithEmitPayload() {\n\t\tconst { contents, skill2 } =\n\t\t\tawait this.setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener(\n\t\t\t\t{\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t\tpayloadSchema: {\n\t\t\t\t\t\t\tid: 'myNewEventEmitPayload',\n\t\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t\tbooleanField: {\n\t\t\t\t\t\t\t\t\ttype: 'boolean',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t}\n\t\t\t)\n\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t'event: SpruceEvent<SkillEventContract, EmitPayload>'\n\t\t)\n\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t`fullyQualifiedEventName: '${skill2.slug}.my-new-event::${this.expectedVersion}'`\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async emittingEventTriggersListenerAndCrashesWithListenerNotImplemented() {\n\t\tconst { currentSkill, skill2, eventContract, org } =\n\t\t\tawait this.setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener(\n\t\t\t\t{\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: {\n\t\t\t\t\t\t\tid: 'myNewEventEmitTarget',\n\t\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t\torganizationId: {\n\t\t\t\t\t\t\t\t\ttype: 'id',\n\t\t\t\t\t\t\t\t\tisRequired: true,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tpayloadSchema: {\n\t\t\t\t\t\t\tid: 'myNewEventEmitPayload',\n\t\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t\tbooleanField: {\n\t\t\t\t\t\t\t\t\ttype: 'boolean',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t\tresponsePayloadSchema: buildSchema({\n\t\t\t\t\t\tid: 'myNewEventResponsePayload',\n\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\tbooleanField: {\n\t\t\t\t\t\t\t\ttype: 'boolean',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t}\n\t\t\t)\n\n\t\tconst currentClient = await this.connectToApi({\n\t\t\tshouldAuthAsCurrentSkill: true,\n\t\t})\n\n\t\tawait currentClient.disconnect()\n\n\t\tconst boot = await this.Action('skill', 'boot').execute({ local: true })\n\n\t\tassert.isFalsy(boot.errors)\n\n\t\t//give the skill time to boot\n\t\tawait this.wait(20000)\n\n\t\tconst client = (await this.connectToApi({\n\t\t\tskillId: skill2.id,\n\t\t\tapiKey: skill2.apiKey,\n\t\t})) as any\n\n\t\tconst eventName = `${skill2.slug}.my-new-event::${this.expectedVersion}`\n\n\t\tclient.mixinContract({\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]:\n\t\t\t\t\teventContract.eventSignatures[\n\t\t\t\t\t\t`my-new-event::${this.expectedVersion}`\n\t\t\t\t\t],\n\t\t\t},\n\t\t})\n\n\t\tlet results: any\n\n\t\tdo {\n\t\t\tawait this.wait(5000)\n\n\t\t\tresults = await client.emit(eventName, {\n\t\t\t\ttarget: {\n\t\t\t\t\torganizationId: org.id,\n\t\t\t\t},\n\t\t\t\tpayload: {\n\t\t\t\t\tbooleanField: true,\n\t\t\t\t},\n\t\t\t})\n\t\t} while (results.totalContracts < 1)\n\n\t\tassert.isEqual(results.totalContracts, 1)\n\t\tassert.isEqual(results.totalErrors, 1)\n\t\tassert.isEqual(results.totalResponses, 1)\n\n\t\tboot.meta?.promise?.catch((err: Error) => {\n\t\t\tassert.fail(err.stack)\n\t\t})\n\n\t\tawait boot.meta?.kill()\n\n\t\tconst error = assert.doesThrow(() =>\n\t\t\teventResponseUtil.getFirstResponseOrThrow(results)\n\t\t)\n\n\t\teventErrorAssertUtil.assertError(error, 'LISTENER_NOT_IMPLEMENTED')\n\n\t\tconst responderRef = results.responses[0].responderRef\n\t\tassert.isEqual(\n\t\t\tresponderRef,\n\t\t\t`skill:${currentSkill.id}:${currentSkill.slug}`\n\t\t)\n\t}\n\n\tprivate static async setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener(\n\t\teventSignature: EventSignature\n\t) {\n\t\tconst expectedVersion = this.expectedVersion\n\n\t\tconst eventContract = {\n\t\t\teventSignatures: {\n\t\t\t\t[`my-new-event::${expectedVersion}`]: eventSignature,\n\t\t\t},\n\t\t} as const\n\n\t\tconst { skillFixture, skill2, currentSkill, cli, org } =\n\t\t\tawait this.seedDummySkillRegisterCurrentSkillAndInstallToOrg()\n\n\t\tawait skillFixture.registerEventContract(skill2, eventContract)\n\n\t\tconst results = await this.Action('event', 'listen').execute({\n\t\t\teventNamespace: skill2.slug,\n\t\t\teventName: `my-new-event`,\n\t\t\tversion: expectedVersion,\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst listener = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`my-new-event.${expectedVersion}.listener.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(listener)\n\n\t\tconst contents = diskUtil.readFile(listener)\n\n\t\treturn {\n\t\t\tcontents,\n\t\t\tskill2,\n\t\t\tlistenerPath: listener,\n\t\t\tcli,\n\t\t\teventContract,\n\t\t\torg,\n\t\t\tcurrentSkill,\n\t\t}\n\t}\n}\n"],"file":"CreatingAListener.test.js"}
@@ -0,0 +1,4 @@
1
+ import AbstractCliTest from '../../tests/AbstractCliTest';
2
+ export default class GlobalEmitterTest extends AbstractCliTest {
3
+ protected static willExecuteFiresSequentally(): Promise<void>;
4
+ }
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+
10
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
+
12
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
+
14
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
+
16
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
+
18
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
+
20
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
21
+
22
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
23
+
24
+ var _applyDecoratedDescriptor2 = _interopRequireDefault(require("@babel/runtime/helpers/applyDecoratedDescriptor"));
25
+
26
+ var _test = require("@sprucelabs/test");
27
+
28
+ var _AbstractCliTest2 = _interopRequireDefault(require("../../tests/AbstractCliTest"));
29
+
30
+ var _dec, _class;
31
+
32
+ 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); }; }
33
+
34
+ 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; } }
35
+
36
+ var GlobalEmitterTest = (_dec = (0, _test.test)(), (_class = /*#__PURE__*/function (_AbstractCliTest) {
37
+ (0, _inherits2["default"])(GlobalEmitterTest, _AbstractCliTest);
38
+
39
+ var _super = _createSuper(GlobalEmitterTest);
40
+
41
+ function GlobalEmitterTest() {
42
+ (0, _classCallCheck2["default"])(this, GlobalEmitterTest);
43
+ return _super.apply(this, arguments);
44
+ }
45
+
46
+ (0, _createClass2["default"])(GlobalEmitterTest, null, [{
47
+ key: "willExecuteFiresSequentally",
48
+ value: function () {
49
+ var _willExecuteFiresSequentally = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
50
+ var emitter;
51
+ return _regenerator["default"].wrap(function _callee$(_context) {
52
+ while (1) {
53
+ switch (_context.prev = _context.next) {
54
+ case 0:
55
+ emitter = this.getEmitter(); //@ts-ignore
56
+
57
+ _test.assert.isTrue(emitter.shouldEmitSequentally);
58
+
59
+ case 2:
60
+ case "end":
61
+ return _context.stop();
62
+ }
63
+ }
64
+ }, _callee, this);
65
+ }));
66
+
67
+ function willExecuteFiresSequentally() {
68
+ return _willExecuteFiresSequentally.apply(this, arguments);
69
+ }
70
+
71
+ return willExecuteFiresSequentally;
72
+ }()
73
+ }]);
74
+ return GlobalEmitterTest;
75
+ }(_AbstractCliTest2["default"]), ((0, _applyDecoratedDescriptor2["default"])(_class, "willExecuteFiresSequentally", [_dec], Object.getOwnPropertyDescriptor(_class, "willExecuteFiresSequentally"), _class)), _class));
76
+ exports["default"] = GlobalEmitterTest;
77
+ //# sourceMappingURL=GlobalEmitter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/__tests__/implementation/GlobalEmitter.ts"],"names":["GlobalEmitterTest","emitter","getEmitter","assert","isTrue","shouldEmitSequentally","AbstractCliTest"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;;;;;;;IAEqBA,iB,WACnB,iB;;;;;;;;;;;;;uHAAD;AAAA;AAAA;AAAA;AAAA;AAAA;AAEOC,gBAAAA,OAFP,GAEiB,KAAKC,UAAL,EAFjB,EAIC;;AACAC,6BAAOC,MAAP,CAAcH,OAAO,CAACI,qBAAtB;;AALD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;EAD8CC,4B","sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport AbstractCliTest from '../../tests/AbstractCliTest'\n\nexport default class GlobalEmitterTest extends AbstractCliTest {\n\t@test()\n\tprotected static async willExecuteFiresSequentally() {\n\t\tconst emitter = this.getEmitter()\n\n\t\t//@ts-ignore\n\t\tassert.isTrue(emitter.shouldEmitSequentally)\n\t}\n}\n"],"file":"GlobalEmitter.js"}
package/build/cli.js CHANGED
@@ -5,8 +5,8 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.run = run;
9
8
  exports["default"] = void 0;
9
+ exports.run = run;
10
10
 
11
11
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
12
12
 
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.FILE_ACTION_ALWAYS_SKIP = exports.FILE_ACTION_SKIP = exports.FILE_ACTION_OVERWRITE = exports.CLI_HERO = exports.DEFAULT_HOST = void 0;
6
+ exports.FILE_ACTION_SKIP = exports.FILE_ACTION_OVERWRITE = exports.FILE_ACTION_ALWAYS_SKIP = exports.DEFAULT_HOST = exports.CLI_HERO = void 0;
7
7
  var DEFAULT_HOST = 'https://mercury.spruce.ai';
8
8
  exports.DEFAULT_HOST = DEFAULT_HOST;
9
9
  var CLI_HERO = 'Sprucebot';
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.DISABLE_NPM_CACHE_COMMAND = exports.ENABLE_NPM_CACHE_COMMAND = void 0;
6
+ exports.ENABLE_NPM_CACHE_COMMAND = exports.DISABLE_NPM_CACHE_COMMAND = void 0;
7
7
  var ENABLE_NPM_CACHE_COMMAND = 'npm config set registry http://localhost:28080 && npm config set @sprucelabs:registry https://registry.npmjs.org && docker run --name npm-proxy-redis -d redis && docker run -e REDIS_ADDRESS=redis:6379 -p 28080:8080 -it --link npm-proxy-redis:redis --name npm-proxy -d pkgems/npm-cache-proxy';
8
8
  exports.ENABLE_NPM_CACHE_COMMAND = ENABLE_NPM_CACHE_COMMAND;
9
9
  var DISABLE_NPM_CACHE_COMMAND = 'npm config set registry https://registry.npmjs.org && docker stop npm-proxy-redis ; docker stop npm-proxy ; docker rm npm-proxy-redis ; docker rm npm-proxy';
@@ -5,8 +5,8 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.generateEventContractFileName = generateEventContractFileName;
9
8
  exports["default"] = void 0;
9
+ exports.generateEventContractFileName = generateEventContractFileName;
10
10
 
11
11
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
12
12
 
@@ -5,9 +5,9 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.renderDoors = renderDoors;
9
8
  exports.chooseOnboardingAdventure = chooseOnboardingAdventure;
10
9
  exports["default"] = void 0;
10
+ exports.renderDoors = renderDoors;
11
11
 
12
12
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
13
13
 
@@ -5,9 +5,9 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.renderEnter = renderEnter;
9
- exports.renderCommand = renderCommand;
10
8
  exports["default"] = void 0;
9
+ exports.renderCommand = renderCommand;
10
+ exports.renderEnter = renderEnter;
11
11
 
12
12
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
13
13
 
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports["default"] = exports.optionsSchema = void 0;
8
+ exports.optionsSchema = exports["default"] = void 0;
9
9
 
10
10
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
11
 
@@ -5,8 +5,8 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.generateSkillSummaryLines = generateSkillSummaryLines;
9
8
  exports["default"] = void 0;
9
+ exports.generateSkillSummaryLines = generateSkillSummaryLines;
10
10
 
11
11
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
12
12
 
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports["default"] = exports.optionsSchema = void 0;
8
+ exports.optionsSchema = exports["default"] = void 0;
9
9
 
10
10
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
11
 
@@ -3,6 +3,12 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ Object.defineProperty(exports, "GraphicsInterface", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _spruceSkillUtils.GraphicsInterface;
10
+ }
11
+ });
6
12
  Object.defineProperty(exports, "GraphicsTextEffect", {
7
13
  enumerable: true,
8
14
  get: function get() {
@@ -27,12 +33,6 @@ Object.defineProperty(exports, "ProgressBarUpdateOptions", {
27
33
  return _spruceSkillUtils.ProgressBarUpdateOptions;
28
34
  }
29
35
  });
30
- Object.defineProperty(exports, "GraphicsInterface", {
31
- enumerable: true,
32
- get: function get() {
33
- return _spruceSkillUtils.GraphicsInterface;
34
- }
35
- });
36
36
 
37
37
  var _spruceSkillUtils = require("@sprucelabs/spruce-skill-utils");
38
38
  //# sourceMappingURL=graphicsInterface.types.js.map
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.contractRegistry = exports.widgetRegistry = void 0;
8
+ exports.widgetRegistry = exports.contractRegistry = void 0;
9
9
 
10
10
  var _TKButtonWidget = _interopRequireDefault(require("../terminalKit/TKButtonWidget"));
11
11
 
package/package.json CHANGED
@@ -17,7 +17,7 @@
17
17
  ]
18
18
  },
19
19
  "license": "MIT",
20
- "version": "14.21.7",
20
+ "version": "14.21.11",
21
21
  "bin": {
22
22
  "spruce": "./build/index.js"
23
23
  },
@@ -72,34 +72,34 @@
72
72
  },
73
73
  "dependencies": {
74
74
  "@babel/cli": "^7.15.7",
75
- "@babel/plugin-proposal-decorators": "^7.15.4",
75
+ "@babel/plugin-proposal-decorators": "^7.15.8",
76
76
  "@babel/runtime": "^7.15.4",
77
77
  "@jest/reporters": "^27.2.4",
78
- "@sprucelabs/error": "^5.0.160",
79
- "@sprucelabs/heartwood-view-controllers": "^33.0.430",
80
- "@sprucelabs/jest-json-reporter": "^6.0.140",
81
- "@sprucelabs/mercury-client": "^16.10.149",
82
- "@sprucelabs/mercury-event-emitter": "^16.10.149",
83
- "@sprucelabs/mercury-types": "^26.1.265",
84
- "@sprucelabs/schema": "^25.3.207",
85
- "@sprucelabs/spruce-core-schemas": "^22.5.274",
86
- "@sprucelabs/spruce-event-plugin": "^5.4.120",
87
- "@sprucelabs/spruce-event-utils": "^16.0.300",
88
- "@sprucelabs/spruce-skill-booter": "^5.4.120",
89
- "@sprucelabs/spruce-skill-utils": "^20.6.142",
90
- "@sprucelabs/spruce-templates": "^14.21.7",
78
+ "@sprucelabs/error": "^5.0.211",
79
+ "@sprucelabs/heartwood-view-controllers": "^33.0.520",
80
+ "@sprucelabs/jest-json-reporter": "^6.0.189",
81
+ "@sprucelabs/mercury-client": "^16.11.0",
82
+ "@sprucelabs/mercury-event-emitter": "^16.11.0",
83
+ "@sprucelabs/mercury-types": "^26.1.323",
84
+ "@sprucelabs/schema": "^25.3.261",
85
+ "@sprucelabs/spruce-core-schemas": "^22.5.329",
86
+ "@sprucelabs/spruce-event-plugin": "^5.4.130",
87
+ "@sprucelabs/spruce-event-utils": "^16.0.357",
88
+ "@sprucelabs/spruce-skill-booter": "^5.4.129",
89
+ "@sprucelabs/spruce-skill-utils": "^20.6.198",
90
+ "@sprucelabs/spruce-templates": "^14.21.11",
91
91
  "cfonts": "^2.10.0",
92
92
  "chalk": "^4.1.2",
93
93
  "chokidar": "^3.5.2",
94
94
  "cli-table3": "^0.6.0",
95
95
  "commander": "^7.2.0",
96
- "core-js": "^3.18.1",
96
+ "core-js": "^3.18.2",
97
97
  "emphasize": "^4.2.0",
98
98
  "fs-extra": "^10.0.0",
99
99
  "gifwrap": "SimenB/gifwrap#patch-1",
100
100
  "globby": "^11.0.4",
101
101
  "inflection": "^1.13.1",
102
- "inquirer": "^8.1.5",
102
+ "inquirer": "^8.2.0",
103
103
  "inquirer-file-tree-selection-prompt": "^1.0.12",
104
104
  "js-tetris-cli": "^0.0.3",
105
105
  "jsonwebtoken": "^8.5.1",
@@ -116,16 +116,16 @@
116
116
  "uuid": "^8.3.2"
117
117
  },
118
118
  "devDependencies": {
119
- "@sprucelabs/data-stores": "^6.1.181",
120
- "@sprucelabs/jest-sheets-reporter": "^1.2.157",
121
- "@sprucelabs/mercury-core-events": "^1.2.307",
122
- "@sprucelabs/resolve-path-aliases": "^1.0.163",
123
- "@sprucelabs/spruce-conversation-plugin": "^5.4.120",
124
- "@sprucelabs/spruce-deploy-plugin": "^5.4.120",
125
- "@sprucelabs/spruce-store-plugin": "^5.4.120",
126
- "@sprucelabs/spruce-test-fixtures": "^5.4.120",
127
- "@sprucelabs/test": "^7.7.141",
128
- "@sprucelabs/test-utils": "^3.0.126",
119
+ "@sprucelabs/data-stores": "^6.1.238",
120
+ "@sprucelabs/jest-sheets-reporter": "^1.2.198",
121
+ "@sprucelabs/mercury-core-events": "^1.2.385",
122
+ "@sprucelabs/resolve-path-aliases": "^1.0.208",
123
+ "@sprucelabs/spruce-conversation-plugin": "^5.4.129",
124
+ "@sprucelabs/spruce-deploy-plugin": "^5.4.129",
125
+ "@sprucelabs/spruce-store-plugin": "^5.4.129",
126
+ "@sprucelabs/spruce-test-fixtures": "^5.4.129",
127
+ "@sprucelabs/test": "^7.7.190",
128
+ "@sprucelabs/test-utils": "^3.0.177",
129
129
  "@types/blessed": "^0.1.19",
130
130
  "@types/eslint": "^7.28.0",
131
131
  "@types/fs-extra": "^9.0.13",
@@ -135,7 +135,7 @@
135
135
  "@types/lodash": "^4.14.175",
136
136
  "@types/md5": "^2.3.1",
137
137
  "@types/mkdirp": "^1.0.2",
138
- "@types/node": "^16.10.2",
138
+ "@types/node": "^16.10.3",
139
139
  "@types/promise.allsettled": "^1.0.3",
140
140
  "@types/ps-node": "^0.1.1",
141
141
  "@types/rimraf": "^3.0.2",
@@ -154,7 +154,7 @@
154
154
  "find-process": "^1.4.5",
155
155
  "jest": "^27.2.4",
156
156
  "jest-circus": "^27.2.4",
157
- "jest-junit": "^12.3.0",
157
+ "jest-junit": "^13.0.0",
158
158
  "jest-reporters": "^0.0.2",
159
159
  "prettier": "^2.4.1",
160
160
  "ps-node": "^0.1.6",
@@ -590,5 +590,5 @@
590
590
  "ora"
591
591
  ]
592
592
  },
593
- "gitHead": "4a2222b1d2f73c3d6541979b1909c767fa886525"
593
+ "gitHead": "540f2941b73bb1b3e17ed53410dc73adc84b73cf"
594
594
  }
@@ -168,6 +168,8 @@ export type GlobalEmitter = MercuryEventEmitter<GlobalEventContract>
168
168
 
169
169
  export default class CliGlobalEmitter extends AbstractEventEmitter<GlobalEventContract> {
170
170
  public static Emitter() {
171
- return new CliGlobalEmitter(globalContract) as GlobalEmitter
171
+ return new CliGlobalEmitter(globalContract, {
172
+ shouldEmitSequentally: true,
173
+ }) as GlobalEmitter
172
174
  }
173
175
  }
@@ -194,6 +194,12 @@ export default class CreatingAListenerTest extends AbstractEventTest {
194
194
  }
195
195
  )
196
196
 
197
+ const currentClient = await this.connectToApi({
198
+ shouldAuthAsCurrentSkill: true,
199
+ })
200
+
201
+ await currentClient.disconnect()
202
+
197
203
  const boot = await this.Action('skill', 'boot').execute({ local: true })
198
204
 
199
205
  assert.isFalsy(boot.errors)
@@ -0,0 +1,12 @@
1
+ import { test, assert } from '@sprucelabs/test'
2
+ import AbstractCliTest from '../../tests/AbstractCliTest'
3
+
4
+ export default class GlobalEmitterTest extends AbstractCliTest {
5
+ @test()
6
+ protected static async willExecuteFiresSequentally() {
7
+ const emitter = this.getEmitter()
8
+
9
+ //@ts-ignore
10
+ assert.isTrue(emitter.shouldEmitSequentally)
11
+ }
12
+ }