@sprucelabs/spruce-cli 15.2.14 → 15.2.17
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 +24 -0
- package/build/__tests__/implementation/EventTemplateItemBuilder.test.d.ts +1 -0
- package/build/__tests__/implementation/EventTemplateItemBuilder.test.js +105 -11
- package/build/__tests__/implementation/EventTemplateItemBuilder.test.js.map +1 -1
- package/build/templateItemBuilders/EventTemplateItemBuilder.js +2 -2
- package/build/templateItemBuilders/EventTemplateItemBuilder.js.map +1 -1
- package/package.json +33 -33
- package/src/__tests__/implementation/EventTemplateItemBuilder.test.ts +124 -9
- package/src/templateItemBuilders/EventTemplateItemBuilder.ts +8 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,30 @@
|
|
|
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
|
+
## [15.2.17](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v15.2.16...v15.2.17) (2022-03-20)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @sprucelabs/spruce-cli
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## [15.2.16](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v15.2.15...v15.2.16) (2022-03-19)
|
|
15
|
+
|
|
16
|
+
**Note:** Version bump only for package @sprucelabs/spruce-cli
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
## [15.2.15](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v15.2.14...v15.2.15) (2022-03-13)
|
|
23
|
+
|
|
24
|
+
**Note:** Version bump only for package @sprucelabs/spruce-cli
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
6
30
|
## [15.2.14](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v15.2.13...v15.2.14) (2022-03-10)
|
|
7
31
|
|
|
8
32
|
**Note:** Version bump only for package @sprucelabs/spruce-cli
|
|
@@ -11,4 +11,5 @@ export default class EventTemplateItemBuilderTest extends AbstractCliTest {
|
|
|
11
11
|
protected static generateItems(contracts: EventContract[], expectedEventContractTemplateItems: EventContractTemplateItem[], expectedSchemaTemplateItems?: SchemaTemplateItem[]): void;
|
|
12
12
|
protected static canPullEventContractSchemaFromCoreEventContract(): void;
|
|
13
13
|
protected static sortsEventsAlphabetically(): void;
|
|
14
|
+
protected static eventContractTemplateItemsHaveProperNamespacesImports(): void;
|
|
14
15
|
}
|
|
@@ -39,7 +39,7 @@ var _EventTemplateItemBuilder = _interopRequireDefault(require("../../templateIt
|
|
|
39
39
|
|
|
40
40
|
var _AbstractCliTest2 = _interopRequireDefault(require("../../tests/AbstractCliTest"));
|
|
41
41
|
|
|
42
|
-
var _eventSignatures2, _eventSignatures3, _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _class, _class2;
|
|
42
|
+
var _eventSignatures2, _eventSignatures3, _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _class, _class2;
|
|
43
43
|
|
|
44
44
|
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); }; }
|
|
45
45
|
|
|
@@ -126,13 +126,13 @@ var relatedToRelatedToProximitySchema = (0, _schema.buildSchema)({
|
|
|
126
126
|
}
|
|
127
127
|
});
|
|
128
128
|
var relatedToRelatedToProximitySchemaTemplateItem = {
|
|
129
|
-
namespace: '
|
|
129
|
+
namespace: 'proximity',
|
|
130
130
|
id: relatedToRelatedToProximitySchema.id,
|
|
131
131
|
nameCamel: 'relatedToRelatedToProximitySchema',
|
|
132
132
|
namePascal: 'RelatedToRelatedToProximitySchema',
|
|
133
133
|
nameReadable: 'relatedToRelatedToProximitySchema',
|
|
134
134
|
schema: _objectSpread(_objectSpread({}, relatedToRelatedToProximitySchema), {}, {
|
|
135
|
-
namespace: '
|
|
135
|
+
namespace: 'proximity'
|
|
136
136
|
}),
|
|
137
137
|
isNested: true,
|
|
138
138
|
destinationDir: '#spruce/events'
|
|
@@ -153,14 +153,14 @@ var relatedToProximitySchema = (0, _schema.buildSchema)({
|
|
|
153
153
|
}
|
|
154
154
|
});
|
|
155
155
|
var relatedToProximitySchemaTemplateItem = {
|
|
156
|
-
namespace: '
|
|
156
|
+
namespace: 'proximity',
|
|
157
157
|
id: relatedToProximitySchema.id,
|
|
158
158
|
nameCamel: 'relatedToProximitySchema',
|
|
159
159
|
namePascal: 'RelatedToProximitySchema',
|
|
160
160
|
nameReadable: 'relatedToProximitySchema',
|
|
161
161
|
schema: {
|
|
162
162
|
id: 'relatedToProximitySchema',
|
|
163
|
-
namespace: '
|
|
163
|
+
namespace: 'proximity',
|
|
164
164
|
version: expectedVersion,
|
|
165
165
|
fields: {
|
|
166
166
|
boolField: {
|
|
@@ -171,7 +171,7 @@ var relatedToProximitySchemaTemplateItem = {
|
|
|
171
171
|
options: {
|
|
172
172
|
schemaIds: [{
|
|
173
173
|
id: 'relatedToRelatedToProximitySchema',
|
|
174
|
-
namespace: '
|
|
174
|
+
namespace: 'proximity',
|
|
175
175
|
version: expectedVersion
|
|
176
176
|
}]
|
|
177
177
|
}
|
|
@@ -184,6 +184,7 @@ var relatedToProximitySchemaTemplateItem = {
|
|
|
184
184
|
var proximityEmitPayloadSchema = (0, _schema.buildSchema)({
|
|
185
185
|
version: expectedVersion,
|
|
186
186
|
id: 'proximityEmitPayload',
|
|
187
|
+
namespace: 'proximity',
|
|
187
188
|
fields: {
|
|
188
189
|
textField: {
|
|
189
190
|
type: 'text'
|
|
@@ -197,14 +198,14 @@ var proximityEmitPayloadSchema = (0, _schema.buildSchema)({
|
|
|
197
198
|
}
|
|
198
199
|
});
|
|
199
200
|
var proximityEmitPayloadTemplateItem = {
|
|
200
|
-
namespace: '
|
|
201
|
+
namespace: 'proximity',
|
|
201
202
|
id: proximityEmitPayloadSchema.id,
|
|
202
203
|
nameCamel: 'proximityEmitPayload',
|
|
203
204
|
namePascal: 'ProximityEmitPayload',
|
|
204
205
|
nameReadable: 'proximityEmitPayload',
|
|
205
206
|
schema: {
|
|
206
207
|
id: 'proximityEmitPayload',
|
|
207
|
-
namespace: '
|
|
208
|
+
namespace: 'proximity',
|
|
208
209
|
version: expectedVersion,
|
|
209
210
|
fields: {
|
|
210
211
|
textField: {
|
|
@@ -215,7 +216,7 @@ var proximityEmitPayloadTemplateItem = {
|
|
|
215
216
|
options: {
|
|
216
217
|
schemaIds: [{
|
|
217
218
|
id: 'relatedToProximitySchema',
|
|
218
|
-
namespace: '
|
|
219
|
+
namespace: 'proximity',
|
|
219
220
|
version: expectedVersion
|
|
220
221
|
}]
|
|
221
222
|
}
|
|
@@ -249,7 +250,7 @@ var expectedContractWithEmitPayloadTemplateItem = {
|
|
|
249
250
|
emitPayloadSchema: _objectSpread({}, proximityEmitPayloadTemplateItem)
|
|
250
251
|
})
|
|
251
252
|
};
|
|
252
|
-
var EventTemplateItemBuilderTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(), _dec3 = (0, _test.test)(), _dec4 = (0, _test.test)('builds emit payload schema into a template item', [contractWithEmitPayload], [expectedContractWithEmitPayloadTemplateItem], [relatedToRelatedToProximitySchemaTemplateItem, relatedToProximitySchemaTemplateItem, proximityEmitPayloadTemplateItem]), _dec5 = (0, _test.test)('turns 1 contract with 2 event signature into 2 template items', [contractWith2Signatures], [didBookTemplateItem, willBookTemplateItem]), _dec6 = (0, _test.test)('turns 2 contract with 2 event signature into 4 template items', [contractWith2Signatures, contractWith2Signatures], [didBookTemplateItem, didBookTemplateItem, willBookTemplateItem, willBookTemplateItem]), _dec7 = (0, _test.test)('turns 1 contract with 2 namespaced event signatures to 2 template items', [contractWith2NamespacedSignatures], [didBookWithNamespaceTemplateItem, willBookWithNamespaceTemplateItem]), _dec8 = (0, _test.test)(), _dec9 = (0, _test.test)(), (_class = (_class2 = /*#__PURE__*/function (_AbstractCliTest) {
|
|
253
|
+
var EventTemplateItemBuilderTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(), _dec3 = (0, _test.test)(), _dec4 = (0, _test.test)('builds emit payload schema into a template item', [contractWithEmitPayload], [expectedContractWithEmitPayloadTemplateItem], [relatedToRelatedToProximitySchemaTemplateItem, relatedToProximitySchemaTemplateItem, proximityEmitPayloadTemplateItem]), _dec5 = (0, _test.test)('turns 1 contract with 2 event signature into 2 template items', [contractWith2Signatures], [didBookTemplateItem, willBookTemplateItem]), _dec6 = (0, _test.test)('turns 2 contract with 2 event signature into 4 template items', [contractWith2Signatures, contractWith2Signatures], [didBookTemplateItem, didBookTemplateItem, willBookTemplateItem, willBookTemplateItem]), _dec7 = (0, _test.test)('turns 1 contract with 2 namespaced event signatures to 2 template items', [contractWith2NamespacedSignatures], [didBookWithNamespaceTemplateItem, willBookWithNamespaceTemplateItem]), _dec8 = (0, _test.test)(), _dec9 = (0, _test.test)(), _dec10 = (0, _test.test)(), (_class = (_class2 = /*#__PURE__*/function (_AbstractCliTest) {
|
|
253
254
|
(0, _inherits2["default"])(EventTemplateItemBuilderTest, _AbstractCliTest);
|
|
254
255
|
|
|
255
256
|
var _super = _createSuper(EventTemplateItemBuilderTest);
|
|
@@ -401,8 +402,101 @@ var EventTemplateItemBuilderTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.
|
|
|
401
402
|
|
|
402
403
|
_test.assert.isEqual(eventContractTemplateItems[1].nameCamel, 'zebraCheeta');
|
|
403
404
|
}
|
|
405
|
+
}, {
|
|
406
|
+
key: "eventContractTemplateItemsHaveProperNamespacesImports",
|
|
407
|
+
value: function eventContractTemplateItemsHaveProperNamespacesImports() {
|
|
408
|
+
var groupsExpectedImports = [{
|
|
409
|
+
"package": '#spruce/schemas/groups/v2021_12_01/listEmitTargetAndPayload.schema',
|
|
410
|
+
importAs: 'listEmitTargetAndPayloadSchema'
|
|
411
|
+
}, {
|
|
412
|
+
"package": '#spruce/schemas/groups/v2021_12_01/listResponsePayload.schema',
|
|
413
|
+
importAs: 'listResponsePayloadSchema'
|
|
414
|
+
}, {
|
|
415
|
+
importAs: '{ buildEventContract }',
|
|
416
|
+
"package": '@sprucelabs/mercury-types'
|
|
417
|
+
}, {
|
|
418
|
+
importAs: '{ buildPermissionContract }',
|
|
419
|
+
"package": '@sprucelabs/mercury-types'
|
|
420
|
+
}];
|
|
421
|
+
var appointmentsExpectedImports = [{
|
|
422
|
+
"package": '#spruce/schemas/appointments/v2021_06_23/listEmitTargetAndPayload.schema',
|
|
423
|
+
importAs: 'listEmitTargetAndPayloadSchema'
|
|
424
|
+
}, {
|
|
425
|
+
"package": '#spruce/schemas/appointments/v2021_06_23/listResponsePayload.schema',
|
|
426
|
+
importAs: 'listResponsePayloadSchema'
|
|
427
|
+
}, {
|
|
428
|
+
importAs: '{ buildEventContract }',
|
|
429
|
+
"package": '@sprucelabs/mercury-types'
|
|
430
|
+
}, {
|
|
431
|
+
importAs: '{ buildPermissionContract }',
|
|
432
|
+
"package": '@sprucelabs/mercury-types'
|
|
433
|
+
}];
|
|
434
|
+
|
|
435
|
+
var _this$itemBuilder$bui5 = this.itemBuilder.buildTemplateItems({
|
|
436
|
+
contracts: [{
|
|
437
|
+
eventSignatures: {
|
|
438
|
+
'groups.list::v2021_12_01': {
|
|
439
|
+
emitPayloadSchema: {
|
|
440
|
+
id: 'listEmitTargetAndPayload',
|
|
441
|
+
version: 'v2021_12_01',
|
|
442
|
+
namespace: 'Groups',
|
|
443
|
+
name: '',
|
|
444
|
+
fields: {}
|
|
445
|
+
},
|
|
446
|
+
responsePayloadSchema: {
|
|
447
|
+
id: 'listResponsePayload',
|
|
448
|
+
version: 'v2021_12_01',
|
|
449
|
+
namespace: 'Groups',
|
|
450
|
+
name: '',
|
|
451
|
+
fields: {}
|
|
452
|
+
},
|
|
453
|
+
emitPermissionContract: {
|
|
454
|
+
id: 'listEmitPermissions',
|
|
455
|
+
name: 'list',
|
|
456
|
+
requireAllPermissions: false,
|
|
457
|
+
permissions: []
|
|
458
|
+
}
|
|
459
|
+
},
|
|
460
|
+
'appointments.list::v2021_06_23': {
|
|
461
|
+
emitPayloadSchema: {
|
|
462
|
+
id: 'listEmitTargetAndPayload',
|
|
463
|
+
version: 'v2021_06_23',
|
|
464
|
+
namespace: 'Appointments',
|
|
465
|
+
name: '',
|
|
466
|
+
fields: {}
|
|
467
|
+
},
|
|
468
|
+
responsePayloadSchema: {
|
|
469
|
+
id: 'listResponsePayload',
|
|
470
|
+
version: 'v2021_06_23',
|
|
471
|
+
namespace: 'Appointments',
|
|
472
|
+
name: '',
|
|
473
|
+
fields: {}
|
|
474
|
+
},
|
|
475
|
+
emitPermissionContract: {
|
|
476
|
+
id: 'listEmitPermissions',
|
|
477
|
+
name: 'list appointments',
|
|
478
|
+
requireAllPermissions: false,
|
|
479
|
+
permissions: []
|
|
480
|
+
},
|
|
481
|
+
listenPermissionContract: {
|
|
482
|
+
id: 'listListenPermissions',
|
|
483
|
+
name: 'list appointments',
|
|
484
|
+
requireAllPermissions: false,
|
|
485
|
+
permissions: []
|
|
486
|
+
}
|
|
487
|
+
}
|
|
488
|
+
}
|
|
489
|
+
}],
|
|
490
|
+
localNamespace: 'testing'
|
|
491
|
+
}),
|
|
492
|
+
eventContractTemplateItems = _this$itemBuilder$bui5.eventContractTemplateItems;
|
|
493
|
+
|
|
494
|
+
_test.assert.isEqualDeep(eventContractTemplateItems[0].imports, groupsExpectedImports);
|
|
495
|
+
|
|
496
|
+
_test.assert.isEqualDeep(eventContractTemplateItems[1].imports, appointmentsExpectedImports);
|
|
497
|
+
}
|
|
404
498
|
}]);
|
|
405
499
|
return EventTemplateItemBuilderTest;
|
|
406
|
-
}(_AbstractCliTest2["default"]), (0, _defineProperty2["default"])(_class2, "itemBuilder", void 0), _class2), ((0, _applyDecoratedDescriptor2["default"])(_class, "canCreateNewItemBuilder", [_dec], Object.getOwnPropertyDescriptor(_class, "canCreateNewItemBuilder"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "hasGenerateFunction", [_dec2], Object.getOwnPropertyDescriptor(_class, "hasGenerateFunction"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "turnsSingleContractIntoTemplateItem", [_dec3], Object.getOwnPropertyDescriptor(_class, "turnsSingleContractIntoTemplateItem"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "generateItems", [_dec4, _dec5, _dec6, _dec7], Object.getOwnPropertyDescriptor(_class, "generateItems"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "canPullEventContractSchemaFromCoreEventContract", [_dec8], Object.getOwnPropertyDescriptor(_class, "canPullEventContractSchemaFromCoreEventContract"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "sortsEventsAlphabetically", [_dec9], Object.getOwnPropertyDescriptor(_class, "sortsEventsAlphabetically"), _class)), _class));
|
|
500
|
+
}(_AbstractCliTest2["default"]), (0, _defineProperty2["default"])(_class2, "itemBuilder", void 0), _class2), ((0, _applyDecoratedDescriptor2["default"])(_class, "canCreateNewItemBuilder", [_dec], Object.getOwnPropertyDescriptor(_class, "canCreateNewItemBuilder"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "hasGenerateFunction", [_dec2], Object.getOwnPropertyDescriptor(_class, "hasGenerateFunction"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "turnsSingleContractIntoTemplateItem", [_dec3], Object.getOwnPropertyDescriptor(_class, "turnsSingleContractIntoTemplateItem"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "generateItems", [_dec4, _dec5, _dec6, _dec7], Object.getOwnPropertyDescriptor(_class, "generateItems"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "canPullEventContractSchemaFromCoreEventContract", [_dec8], Object.getOwnPropertyDescriptor(_class, "canPullEventContractSchemaFromCoreEventContract"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "sortsEventsAlphabetically", [_dec9], Object.getOwnPropertyDescriptor(_class, "sortsEventsAlphabetically"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "eventContractTemplateItemsHaveProperNamespacesImports", [_dec10], Object.getOwnPropertyDescriptor(_class, "eventContractTemplateItemsHaveProperNamespacesImports"), _class)), _class));
|
|
407
501
|
exports["default"] = EventTemplateItemBuilderTest;
|
|
408
502
|
//# sourceMappingURL=EventTemplateItemBuilder.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/__tests__/implementation/EventTemplateItemBuilder.test.ts"],"names":["expectedVersion","versionUtil","generateVersion","dirValue","bookContract","eventSignatures","contractWith2Signatures","contractWith2NamespacedSignatures","didBookTemplateItem","version","namePascal","nameCamel","isLocal","namespace","namesUtil","toKebab","MERCURY_API_NAMESPACE","namespaceCamel","toCamel","namespacePascal","toPascal","imports","importAs","willBookTemplateItem","didBookWithNamespaceTemplateItem","willBookWithNamespaceTemplateItem","relatedToRelatedToProximitySchema","id","fields","onlyField","type","relatedToRelatedToProximitySchemaTemplateItem","nameReadable","schema","isNested","destinationDir","relatedToProximitySchema","boolField","relatedToRelatedSchema","options","relatedToProximitySchemaTemplateItem","schemaIds","proximityEmitPayloadSchema","textField","relatedSchema","proximityEmitPayloadTemplateItem","contractWithEmitPayload","emitPayloadSchema","expectedContractWithEmitPayloadTemplateItem","EventTemplateItemBuilderTest","itemBuilder","EventTemplateItemBuilder","assert","isTruthy","isFunction","buildTemplateItems","contracts","localNamespace","eventContractTemplateItems","actual","isEqualDeep","expectedEventContractTemplateItems","expectedSchemaTemplateItems","schemaTemplateItems","coreEventContracts","match","find","item","isEqual","AbstractCliTest"],"mappings":"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","sourcesContent":["import { coreEventContracts } from '@sprucelabs/mercury-core-events'\nimport { EventContract } from '@sprucelabs/mercury-types'\nimport { buildSchema, SchemaTemplateItem } from '@sprucelabs/schema'\nimport {\n\tMERCURY_API_NAMESPACE,\n\tnamesUtil,\n\tversionUtil,\n} from '@sprucelabs/spruce-skill-utils'\nimport { EventContractTemplateItem } from '@sprucelabs/spruce-templates'\nimport { test, assert } from '@sprucelabs/test'\nimport EventTemplateItemBuilder from '../../templateItemBuilders/EventTemplateItemBuilder'\nimport AbstractCliTest from '../../tests/AbstractCliTest'\n\nconst expectedVersion = versionUtil.generateVersion().dirValue\n\nconst bookContract: EventContract = {\n\teventSignatures: {\n\t\t[`did-book::${expectedVersion}`]: {},\n\t},\n}\n\nconst contractWith2Signatures: EventContract = {\n\teventSignatures: {\n\t\t[`did-book::${expectedVersion}`]: {},\n\t\t[`will-book::${expectedVersion}`]: {},\n\t},\n}\n\nconst contractWith2NamespacedSignatures: EventContract = {\n\teventSignatures: {\n\t\t[`appointments.did-book::${expectedVersion}`]: {},\n\t\t[`appointments.will-book::${expectedVersion}`]: {},\n\t},\n}\n\nconst didBookTemplateItem: EventContractTemplateItem = {\n\tversion: expectedVersion,\n\tnamePascal: 'DidBook',\n\tnameCamel: 'didBook',\n\tisLocal: false,\n\tnamespace: namesUtil.toKebab(MERCURY_API_NAMESPACE),\n\tnamespaceCamel: namesUtil.toCamel(MERCURY_API_NAMESPACE),\n\tnamespacePascal: namesUtil.toPascal(MERCURY_API_NAMESPACE),\n\timports: [\n\t\t{\n\t\t\timportAs: '{ buildEventContract }',\n\t\t\tpackage: '@sprucelabs/mercury-types',\n\t\t},\n\t],\n\teventSignatures: {\n\t\t[`did-book::${expectedVersion}`]: {},\n\t},\n}\n\nconst willBookTemplateItem: EventContractTemplateItem = {\n\tversion: expectedVersion,\n\tnamePascal: 'WillBook',\n\tnameCamel: 'willBook',\n\tisLocal: false,\n\tnamespace: namesUtil.toKebab(MERCURY_API_NAMESPACE),\n\timports: [\n\t\t{\n\t\t\timportAs: '{ buildEventContract }',\n\t\t\tpackage: '@sprucelabs/mercury-types',\n\t\t},\n\t],\n\tnamespaceCamel: namesUtil.toCamel(MERCURY_API_NAMESPACE),\n\tnamespacePascal: namesUtil.toPascal(MERCURY_API_NAMESPACE),\n\teventSignatures: {\n\t\t[`will-book::${expectedVersion}`]: {},\n\t},\n}\n\nconst didBookWithNamespaceTemplateItem: EventContractTemplateItem = {\n\tversion: expectedVersion,\n\tnamePascal: 'DidBook',\n\tnameCamel: 'didBook',\n\tisLocal: true,\n\tnamespace: 'appointments',\n\tnamespaceCamel: 'appointments',\n\tnamespacePascal: 'Appointments',\n\timports: [\n\t\t{\n\t\t\timportAs: '{ buildEventContract }',\n\t\t\tpackage: '@sprucelabs/mercury-types',\n\t\t},\n\t],\n\teventSignatures: {\n\t\t[`appointments.did-book::${expectedVersion}`]: {},\n\t},\n}\n\nconst willBookWithNamespaceTemplateItem: EventContractTemplateItem = {\n\tversion: expectedVersion,\n\tnamePascal: 'WillBook',\n\tnameCamel: 'willBook',\n\tisLocal: true,\n\tnamespace: 'appointments',\n\tnamespaceCamel: 'appointments',\n\tnamespacePascal: 'Appointments',\n\timports: [\n\t\t{\n\t\t\timportAs: '{ buildEventContract }',\n\t\t\tpackage: '@sprucelabs/mercury-types',\n\t\t},\n\t],\n\teventSignatures: {\n\t\t[`appointments.will-book::${expectedVersion}`]: {},\n\t},\n}\n\nconst relatedToRelatedToProximitySchema = buildSchema({\n\tid: 'relatedToRelatedToProximitySchema',\n\tversion: expectedVersion,\n\tfields: {\n\t\tonlyField: {\n\t\t\ttype: 'text',\n\t\t},\n\t},\n})\n\nconst relatedToRelatedToProximitySchemaTemplateItem: SchemaTemplateItem = {\n\tnamespace: 'Proximity',\n\tid: relatedToRelatedToProximitySchema.id,\n\tnameCamel: 'relatedToRelatedToProximitySchema',\n\tnamePascal: 'RelatedToRelatedToProximitySchema',\n\tnameReadable: 'relatedToRelatedToProximitySchema',\n\tschema: {\n\t\t...relatedToRelatedToProximitySchema,\n\t\tnamespace: 'Proximity',\n\t},\n\tisNested: true,\n\tdestinationDir: '#spruce/events',\n}\n\nconst relatedToProximitySchema = buildSchema({\n\tversion: expectedVersion,\n\tid: 'relatedToProximitySchema',\n\tfields: {\n\t\tboolField: {\n\t\t\ttype: 'boolean',\n\t\t},\n\t\trelatedToRelatedSchema: {\n\t\t\ttype: 'schema',\n\t\t\toptions: {\n\t\t\t\tschema: relatedToRelatedToProximitySchema,\n\t\t\t},\n\t\t},\n\t},\n})\n\nconst relatedToProximitySchemaTemplateItem: SchemaTemplateItem = {\n\tnamespace: 'Proximity',\n\tid: relatedToProximitySchema.id,\n\tnameCamel: 'relatedToProximitySchema',\n\tnamePascal: 'RelatedToProximitySchema',\n\tnameReadable: 'relatedToProximitySchema',\n\tschema: {\n\t\tid: 'relatedToProximitySchema',\n\t\tnamespace: 'Proximity',\n\t\tversion: expectedVersion,\n\t\tfields: {\n\t\t\tboolField: {\n\t\t\t\ttype: 'boolean',\n\t\t\t},\n\t\t\trelatedToRelatedSchema: {\n\t\t\t\ttype: 'schema',\n\t\t\t\toptions: {\n\t\t\t\t\tschemaIds: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: 'relatedToRelatedToProximitySchema',\n\t\t\t\t\t\t\tnamespace: 'Proximity',\n\t\t\t\t\t\t\tversion: expectedVersion,\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},\n\tisNested: true,\n\tdestinationDir: '#spruce/events',\n}\n\nconst proximityEmitPayloadSchema = buildSchema({\n\tversion: expectedVersion,\n\tid: 'proximityEmitPayload',\n\tfields: {\n\t\ttextField: {\n\t\t\ttype: 'text',\n\t\t},\n\t\trelatedSchema: {\n\t\t\ttype: 'schema',\n\t\t\toptions: {\n\t\t\t\tschema: relatedToProximitySchema,\n\t\t\t},\n\t\t},\n\t},\n})\n\nconst proximityEmitPayloadTemplateItem: SchemaTemplateItem = {\n\tnamespace: 'Proximity',\n\tid: proximityEmitPayloadSchema.id,\n\tnameCamel: 'proximityEmitPayload',\n\tnamePascal: 'ProximityEmitPayload',\n\tnameReadable: 'proximityEmitPayload',\n\tschema: {\n\t\tid: 'proximityEmitPayload',\n\t\tnamespace: 'Proximity',\n\t\tversion: expectedVersion,\n\t\tfields: {\n\t\t\ttextField: {\n\t\t\t\ttype: 'text',\n\t\t\t},\n\t\t\trelatedSchema: {\n\t\t\t\ttype: 'schema',\n\t\t\t\toptions: {\n\t\t\t\t\tschemaIds: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: 'relatedToProximitySchema',\n\t\t\t\t\t\t\tnamespace: 'Proximity',\n\t\t\t\t\t\t\tversion: expectedVersion,\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},\n\tisNested: false,\n\tdestinationDir: '#spruce/events',\n}\n\nconst contractWithEmitPayload: EventContract = {\n\teventSignatures: {\n\t\t[`proximity.did-enter::${expectedVersion}`]: {\n\t\t\temitPayloadSchema: proximityEmitPayloadSchema,\n\t\t},\n\t},\n}\n\nconst expectedContractWithEmitPayloadTemplateItem: EventContractTemplateItem = {\n\tnamePascal: 'DidEnter',\n\tnameCamel: 'didEnter',\n\tnamespace: 'proximity',\n\tisLocal: false,\n\tversion: expectedVersion,\n\tnamespaceCamel: 'proximity',\n\tnamespacePascal: 'Proximity',\n\timports: [\n\t\t{\n\t\t\tpackage: `#spruce/schemas/proximity/${expectedVersion}/proximityEmitPayload.schema`,\n\t\t\timportAs: 'proximityEmitPayloadSchema',\n\t\t},\n\t\t{\n\t\t\timportAs: '{ buildEventContract }',\n\t\t\tpackage: '@sprucelabs/mercury-types',\n\t\t},\n\t],\n\teventSignatures: {\n\t\t[`proximity.did-enter::${expectedVersion}`]: {\n\t\t\temitPayloadSchema: {\n\t\t\t\t...proximityEmitPayloadTemplateItem,\n\t\t\t},\n\t\t},\n\t},\n}\n\nexport default class EventTemplateItemBuilderTest extends AbstractCliTest {\n\tprivate static itemBuilder: EventTemplateItemBuilder\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.itemBuilder = new EventTemplateItemBuilder()\n\t}\n\n\t@test()\n\tprotected static async canCreateNewItemBuilder() {\n\t\tassert.isTruthy(this.itemBuilder)\n\t}\n\n\t@test()\n\tprotected static async hasGenerateFunction() {\n\t\tassert.isFunction(this.itemBuilder.buildTemplateItems)\n\t}\n\n\t@test()\n\tprotected static turnsSingleContractIntoTemplateItem() {\n\t\tconst { eventContractTemplateItems } = this.itemBuilder.buildTemplateItems({\n\t\t\tcontracts: [bookContract],\n\t\t\tlocalNamespace: 'test-namespace',\n\t\t})\n\n\t\tconst actual = eventContractTemplateItems[0]\n\n\t\tassert.isEqualDeep(actual, didBookTemplateItem)\n\t}\n\n\t@test(\n\t\t'builds emit payload schema into a template item',\n\t\t[contractWithEmitPayload],\n\t\t[expectedContractWithEmitPayloadTemplateItem],\n\t\t[\n\t\t\trelatedToRelatedToProximitySchemaTemplateItem,\n\t\t\trelatedToProximitySchemaTemplateItem,\n\t\t\tproximityEmitPayloadTemplateItem,\n\t\t]\n\t)\n\t@test(\n\t\t'turns 1 contract with 2 event signature into 2 template items',\n\t\t[contractWith2Signatures],\n\t\t[didBookTemplateItem, willBookTemplateItem]\n\t)\n\t@test(\n\t\t'turns 2 contract with 2 event signature into 4 template items',\n\t\t[contractWith2Signatures, contractWith2Signatures],\n\t\t[\n\t\t\tdidBookTemplateItem,\n\t\t\tdidBookTemplateItem,\n\t\t\twillBookTemplateItem,\n\t\t\twillBookTemplateItem,\n\t\t]\n\t)\n\t@test(\n\t\t'turns 1 contract with 2 namespaced event signatures to 2 template items',\n\t\t[contractWith2NamespacedSignatures],\n\t\t[didBookWithNamespaceTemplateItem, willBookWithNamespaceTemplateItem]\n\t)\n\tprotected static generateItems(\n\t\tcontracts: EventContract[],\n\t\texpectedEventContractTemplateItems: EventContractTemplateItem[],\n\t\texpectedSchemaTemplateItems: SchemaTemplateItem[] = []\n\t) {\n\t\tconst { eventContractTemplateItems, schemaTemplateItems } =\n\t\t\tthis.itemBuilder.buildTemplateItems({\n\t\t\t\tcontracts,\n\t\t\t\tlocalNamespace: 'appointments',\n\t\t\t})\n\n\t\tassert.isEqualDeep(\n\t\t\teventContractTemplateItems,\n\t\t\texpectedEventContractTemplateItems\n\t\t)\n\n\t\tassert.isEqualDeep(schemaTemplateItems, expectedSchemaTemplateItems)\n\t}\n\n\t@test()\n\tprotected static canPullEventContractSchemaFromCoreEventContract() {\n\t\tconst { schemaTemplateItems } = this.itemBuilder.buildTemplateItems({\n\t\t\tcontracts: [\n\t\t\t\t{\n\t\t\t\t\teventSignatures: {\n\t\t\t\t\t\t'register-events':\n\t\t\t\t\t\t\tcoreEventContracts[0].eventSignatures['can-listen::v2020_12_25'],\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t\tlocalNamespace: 'testing',\n\t\t})\n\n\t\tconst match = schemaTemplateItems.find((item) => item.id === 'eventSource')\n\t\tassert.isTruthy(match)\n\t}\n\n\t@test()\n\tprotected static sortsEventsAlphabetically() {\n\t\tconst { eventContractTemplateItems } = this.itemBuilder.buildTemplateItems({\n\t\t\tcontracts: [\n\t\t\t\t{\n\t\t\t\t\teventSignatures: {\n\t\t\t\t\t\t'zebra-cheeta': {},\n\t\t\t\t\t\t'register-events':\n\t\t\t\t\t\t\tcoreEventContracts[0].eventSignatures['can-listen::v2020_12_25'],\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t\tlocalNamespace: 'testing',\n\t\t})\n\n\t\tassert.isEqual(eventContractTemplateItems[0].nameCamel, 'registerEvents')\n\t\tassert.isEqual(eventContractTemplateItems[1].nameCamel, 'zebraCheeta')\n\t}\n}\n"],"file":"EventTemplateItemBuilder.test.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/__tests__/implementation/EventTemplateItemBuilder.test.ts"],"names":["expectedVersion","versionUtil","generateVersion","dirValue","bookContract","eventSignatures","contractWith2Signatures","contractWith2NamespacedSignatures","didBookTemplateItem","version","namePascal","nameCamel","isLocal","namespace","namesUtil","toKebab","MERCURY_API_NAMESPACE","namespaceCamel","toCamel","namespacePascal","toPascal","imports","importAs","willBookTemplateItem","didBookWithNamespaceTemplateItem","willBookWithNamespaceTemplateItem","relatedToRelatedToProximitySchema","id","fields","onlyField","type","relatedToRelatedToProximitySchemaTemplateItem","nameReadable","schema","isNested","destinationDir","relatedToProximitySchema","boolField","relatedToRelatedSchema","options","relatedToProximitySchemaTemplateItem","schemaIds","proximityEmitPayloadSchema","textField","relatedSchema","proximityEmitPayloadTemplateItem","contractWithEmitPayload","emitPayloadSchema","expectedContractWithEmitPayloadTemplateItem","EventTemplateItemBuilderTest","itemBuilder","EventTemplateItemBuilder","assert","isTruthy","isFunction","buildTemplateItems","contracts","localNamespace","eventContractTemplateItems","actual","isEqualDeep","expectedEventContractTemplateItems","expectedSchemaTemplateItems","schemaTemplateItems","coreEventContracts","match","find","item","isEqual","groupsExpectedImports","appointmentsExpectedImports","name","responsePayloadSchema","emitPermissionContract","requireAllPermissions","permissions","listenPermissionContract","AbstractCliTest"],"mappings":"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","sourcesContent":["import { coreEventContracts } from '@sprucelabs/mercury-core-events'\nimport { EventContract } from '@sprucelabs/mercury-types'\nimport { buildSchema, SchemaTemplateItem } from '@sprucelabs/schema'\nimport {\n\tMERCURY_API_NAMESPACE,\n\tnamesUtil,\n\tversionUtil,\n} from '@sprucelabs/spruce-skill-utils'\nimport { EventContractTemplateItem } from '@sprucelabs/spruce-templates'\nimport { test, assert } from '@sprucelabs/test'\nimport EventTemplateItemBuilder from '../../templateItemBuilders/EventTemplateItemBuilder'\nimport AbstractCliTest from '../../tests/AbstractCliTest'\n\nconst expectedVersion = versionUtil.generateVersion().dirValue\n\nconst bookContract: EventContract = {\n\teventSignatures: {\n\t\t[`did-book::${expectedVersion}`]: {},\n\t},\n}\n\nconst contractWith2Signatures: EventContract = {\n\teventSignatures: {\n\t\t[`did-book::${expectedVersion}`]: {},\n\t\t[`will-book::${expectedVersion}`]: {},\n\t},\n}\n\nconst contractWith2NamespacedSignatures: EventContract = {\n\teventSignatures: {\n\t\t[`appointments.did-book::${expectedVersion}`]: {},\n\t\t[`appointments.will-book::${expectedVersion}`]: {},\n\t},\n}\n\nconst didBookTemplateItem: EventContractTemplateItem = {\n\tversion: expectedVersion,\n\tnamePascal: 'DidBook',\n\tnameCamel: 'didBook',\n\tisLocal: false,\n\tnamespace: namesUtil.toKebab(MERCURY_API_NAMESPACE),\n\tnamespaceCamel: namesUtil.toCamel(MERCURY_API_NAMESPACE),\n\tnamespacePascal: namesUtil.toPascal(MERCURY_API_NAMESPACE),\n\timports: [\n\t\t{\n\t\t\timportAs: '{ buildEventContract }',\n\t\t\tpackage: '@sprucelabs/mercury-types',\n\t\t},\n\t],\n\teventSignatures: {\n\t\t[`did-book::${expectedVersion}`]: {},\n\t},\n}\n\nconst willBookTemplateItem: EventContractTemplateItem = {\n\tversion: expectedVersion,\n\tnamePascal: 'WillBook',\n\tnameCamel: 'willBook',\n\tisLocal: false,\n\tnamespace: namesUtil.toKebab(MERCURY_API_NAMESPACE),\n\timports: [\n\t\t{\n\t\t\timportAs: '{ buildEventContract }',\n\t\t\tpackage: '@sprucelabs/mercury-types',\n\t\t},\n\t],\n\tnamespaceCamel: namesUtil.toCamel(MERCURY_API_NAMESPACE),\n\tnamespacePascal: namesUtil.toPascal(MERCURY_API_NAMESPACE),\n\teventSignatures: {\n\t\t[`will-book::${expectedVersion}`]: {},\n\t},\n}\n\nconst didBookWithNamespaceTemplateItem: EventContractTemplateItem = {\n\tversion: expectedVersion,\n\tnamePascal: 'DidBook',\n\tnameCamel: 'didBook',\n\tisLocal: true,\n\tnamespace: 'appointments',\n\tnamespaceCamel: 'appointments',\n\tnamespacePascal: 'Appointments',\n\timports: [\n\t\t{\n\t\t\timportAs: '{ buildEventContract }',\n\t\t\tpackage: '@sprucelabs/mercury-types',\n\t\t},\n\t],\n\teventSignatures: {\n\t\t[`appointments.did-book::${expectedVersion}`]: {},\n\t},\n}\n\nconst willBookWithNamespaceTemplateItem: EventContractTemplateItem = {\n\tversion: expectedVersion,\n\tnamePascal: 'WillBook',\n\tnameCamel: 'willBook',\n\tisLocal: true,\n\tnamespace: 'appointments',\n\tnamespaceCamel: 'appointments',\n\tnamespacePascal: 'Appointments',\n\timports: [\n\t\t{\n\t\t\timportAs: '{ buildEventContract }',\n\t\t\tpackage: '@sprucelabs/mercury-types',\n\t\t},\n\t],\n\teventSignatures: {\n\t\t[`appointments.will-book::${expectedVersion}`]: {},\n\t},\n}\n\nconst relatedToRelatedToProximitySchema = buildSchema({\n\tid: 'relatedToRelatedToProximitySchema',\n\tversion: expectedVersion,\n\tfields: {\n\t\tonlyField: {\n\t\t\ttype: 'text',\n\t\t},\n\t},\n})\n\nconst relatedToRelatedToProximitySchemaTemplateItem: SchemaTemplateItem = {\n\tnamespace: 'proximity',\n\tid: relatedToRelatedToProximitySchema.id,\n\tnameCamel: 'relatedToRelatedToProximitySchema',\n\tnamePascal: 'RelatedToRelatedToProximitySchema',\n\tnameReadable: 'relatedToRelatedToProximitySchema',\n\tschema: {\n\t\t...relatedToRelatedToProximitySchema,\n\t\tnamespace: 'proximity',\n\t},\n\tisNested: true,\n\tdestinationDir: '#spruce/events',\n}\n\nconst relatedToProximitySchema = buildSchema({\n\tversion: expectedVersion,\n\tid: 'relatedToProximitySchema',\n\tfields: {\n\t\tboolField: {\n\t\t\ttype: 'boolean',\n\t\t},\n\t\trelatedToRelatedSchema: {\n\t\t\ttype: 'schema',\n\t\t\toptions: {\n\t\t\t\tschema: relatedToRelatedToProximitySchema,\n\t\t\t},\n\t\t},\n\t},\n})\n\nconst relatedToProximitySchemaTemplateItem: SchemaTemplateItem = {\n\tnamespace: 'proximity',\n\tid: relatedToProximitySchema.id,\n\tnameCamel: 'relatedToProximitySchema',\n\tnamePascal: 'RelatedToProximitySchema',\n\tnameReadable: 'relatedToProximitySchema',\n\tschema: {\n\t\tid: 'relatedToProximitySchema',\n\t\tnamespace: 'proximity',\n\t\tversion: expectedVersion,\n\t\tfields: {\n\t\t\tboolField: {\n\t\t\t\ttype: 'boolean',\n\t\t\t},\n\t\t\trelatedToRelatedSchema: {\n\t\t\t\ttype: 'schema',\n\t\t\t\toptions: {\n\t\t\t\t\tschemaIds: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: 'relatedToRelatedToProximitySchema',\n\t\t\t\t\t\t\tnamespace: 'proximity',\n\t\t\t\t\t\t\tversion: expectedVersion,\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},\n\tisNested: true,\n\tdestinationDir: '#spruce/events',\n}\n\nconst proximityEmitPayloadSchema = buildSchema({\n\tversion: expectedVersion,\n\tid: 'proximityEmitPayload',\n\tnamespace: 'proximity',\n\tfields: {\n\t\ttextField: {\n\t\t\ttype: 'text',\n\t\t},\n\t\trelatedSchema: {\n\t\t\ttype: 'schema',\n\t\t\toptions: {\n\t\t\t\tschema: relatedToProximitySchema,\n\t\t\t},\n\t\t},\n\t},\n})\n\nconst proximityEmitPayloadTemplateItem: SchemaTemplateItem = {\n\tnamespace: 'proximity',\n\tid: proximityEmitPayloadSchema.id,\n\tnameCamel: 'proximityEmitPayload',\n\tnamePascal: 'ProximityEmitPayload',\n\tnameReadable: 'proximityEmitPayload',\n\tschema: {\n\t\tid: 'proximityEmitPayload',\n\t\tnamespace: 'proximity',\n\t\tversion: expectedVersion,\n\t\tfields: {\n\t\t\ttextField: {\n\t\t\t\ttype: 'text',\n\t\t\t},\n\t\t\trelatedSchema: {\n\t\t\t\ttype: 'schema',\n\t\t\t\toptions: {\n\t\t\t\t\tschemaIds: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: 'relatedToProximitySchema',\n\t\t\t\t\t\t\tnamespace: 'proximity',\n\t\t\t\t\t\t\tversion: expectedVersion,\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},\n\tisNested: false,\n\tdestinationDir: '#spruce/events',\n}\n\nconst contractWithEmitPayload: EventContract = {\n\teventSignatures: {\n\t\t[`proximity.did-enter::${expectedVersion}`]: {\n\t\t\temitPayloadSchema: proximityEmitPayloadSchema,\n\t\t},\n\t},\n}\n\nconst expectedContractWithEmitPayloadTemplateItem: EventContractTemplateItem = {\n\tnamePascal: 'DidEnter',\n\tnameCamel: 'didEnter',\n\tnamespace: 'proximity',\n\tisLocal: false,\n\tversion: expectedVersion,\n\tnamespaceCamel: 'proximity',\n\tnamespacePascal: 'Proximity',\n\timports: [\n\t\t{\n\t\t\tpackage: `#spruce/schemas/proximity/${expectedVersion}/proximityEmitPayload.schema`,\n\t\t\timportAs: 'proximityEmitPayloadSchema',\n\t\t},\n\t\t{\n\t\t\timportAs: '{ buildEventContract }',\n\t\t\tpackage: '@sprucelabs/mercury-types',\n\t\t},\n\t],\n\teventSignatures: {\n\t\t[`proximity.did-enter::${expectedVersion}`]: {\n\t\t\temitPayloadSchema: {\n\t\t\t\t...proximityEmitPayloadTemplateItem,\n\t\t\t},\n\t\t},\n\t},\n}\n\nexport default class EventTemplateItemBuilderTest extends AbstractCliTest {\n\tprivate static itemBuilder: EventTemplateItemBuilder\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.itemBuilder = new EventTemplateItemBuilder()\n\t}\n\n\t@test()\n\tprotected static async canCreateNewItemBuilder() {\n\t\tassert.isTruthy(this.itemBuilder)\n\t}\n\n\t@test()\n\tprotected static async hasGenerateFunction() {\n\t\tassert.isFunction(this.itemBuilder.buildTemplateItems)\n\t}\n\n\t@test()\n\tprotected static turnsSingleContractIntoTemplateItem() {\n\t\tconst { eventContractTemplateItems } = this.itemBuilder.buildTemplateItems({\n\t\t\tcontracts: [bookContract],\n\t\t\tlocalNamespace: 'test-namespace',\n\t\t})\n\n\t\tconst actual = eventContractTemplateItems[0]\n\n\t\tassert.isEqualDeep(actual, didBookTemplateItem)\n\t}\n\n\t@test(\n\t\t'builds emit payload schema into a template item',\n\t\t[contractWithEmitPayload],\n\t\t[expectedContractWithEmitPayloadTemplateItem],\n\t\t[\n\t\t\trelatedToRelatedToProximitySchemaTemplateItem,\n\t\t\trelatedToProximitySchemaTemplateItem,\n\t\t\tproximityEmitPayloadTemplateItem,\n\t\t]\n\t)\n\t@test(\n\t\t'turns 1 contract with 2 event signature into 2 template items',\n\t\t[contractWith2Signatures],\n\t\t[didBookTemplateItem, willBookTemplateItem]\n\t)\n\t@test(\n\t\t'turns 2 contract with 2 event signature into 4 template items',\n\t\t[contractWith2Signatures, contractWith2Signatures],\n\t\t[\n\t\t\tdidBookTemplateItem,\n\t\t\tdidBookTemplateItem,\n\t\t\twillBookTemplateItem,\n\t\t\twillBookTemplateItem,\n\t\t]\n\t)\n\t@test(\n\t\t'turns 1 contract with 2 namespaced event signatures to 2 template items',\n\t\t[contractWith2NamespacedSignatures],\n\t\t[didBookWithNamespaceTemplateItem, willBookWithNamespaceTemplateItem]\n\t)\n\tprotected static generateItems(\n\t\tcontracts: EventContract[],\n\t\texpectedEventContractTemplateItems: EventContractTemplateItem[],\n\t\texpectedSchemaTemplateItems: SchemaTemplateItem[] = []\n\t) {\n\t\tconst { eventContractTemplateItems, schemaTemplateItems } =\n\t\t\tthis.itemBuilder.buildTemplateItems({\n\t\t\t\tcontracts,\n\t\t\t\tlocalNamespace: 'appointments',\n\t\t\t})\n\n\t\tassert.isEqualDeep(\n\t\t\teventContractTemplateItems,\n\t\t\texpectedEventContractTemplateItems\n\t\t)\n\t\tassert.isEqualDeep(schemaTemplateItems, expectedSchemaTemplateItems)\n\t}\n\n\t@test()\n\tprotected static canPullEventContractSchemaFromCoreEventContract() {\n\t\tconst { schemaTemplateItems } = this.itemBuilder.buildTemplateItems({\n\t\t\tcontracts: [\n\t\t\t\t{\n\t\t\t\t\teventSignatures: {\n\t\t\t\t\t\t'register-events':\n\t\t\t\t\t\t\tcoreEventContracts[0].eventSignatures['can-listen::v2020_12_25'],\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t\tlocalNamespace: 'testing',\n\t\t})\n\n\t\tconst match = schemaTemplateItems.find((item) => item.id === 'eventSource')\n\t\tassert.isTruthy(match)\n\t}\n\n\t@test()\n\tprotected static sortsEventsAlphabetically() {\n\t\tconst { eventContractTemplateItems } = this.itemBuilder.buildTemplateItems({\n\t\t\tcontracts: [\n\t\t\t\t{\n\t\t\t\t\teventSignatures: {\n\t\t\t\t\t\t'zebra-cheeta': {},\n\t\t\t\t\t\t'register-events':\n\t\t\t\t\t\t\tcoreEventContracts[0].eventSignatures['can-listen::v2020_12_25'],\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t\tlocalNamespace: 'testing',\n\t\t})\n\n\t\tassert.isEqual(eventContractTemplateItems[0].nameCamel, 'registerEvents')\n\t\tassert.isEqual(eventContractTemplateItems[1].nameCamel, 'zebraCheeta')\n\t}\n\n\t@test()\n\tprotected static eventContractTemplateItemsHaveProperNamespacesImports() {\n\t\tconst groupsExpectedImports = [\n\t\t\t{\n\t\t\t\tpackage:\n\t\t\t\t\t'#spruce/schemas/groups/v2021_12_01/listEmitTargetAndPayload.schema',\n\t\t\t\timportAs: 'listEmitTargetAndPayloadSchema',\n\t\t\t},\n\t\t\t{\n\t\t\t\tpackage:\n\t\t\t\t\t'#spruce/schemas/groups/v2021_12_01/listResponsePayload.schema',\n\t\t\t\timportAs: 'listResponsePayloadSchema',\n\t\t\t},\n\t\t\t{\n\t\t\t\timportAs: '{ buildEventContract }',\n\t\t\t\tpackage: '@sprucelabs/mercury-types',\n\t\t\t},\n\t\t\t{\n\t\t\t\timportAs: '{ buildPermissionContract }',\n\t\t\t\tpackage: '@sprucelabs/mercury-types',\n\t\t\t},\n\t\t]\n\n\t\tconst appointmentsExpectedImports = [\n\t\t\t{\n\t\t\t\tpackage:\n\t\t\t\t\t'#spruce/schemas/appointments/v2021_06_23/listEmitTargetAndPayload.schema',\n\t\t\t\timportAs: 'listEmitTargetAndPayloadSchema',\n\t\t\t},\n\t\t\t{\n\t\t\t\tpackage:\n\t\t\t\t\t'#spruce/schemas/appointments/v2021_06_23/listResponsePayload.schema',\n\t\t\t\timportAs: 'listResponsePayloadSchema',\n\t\t\t},\n\t\t\t{\n\t\t\t\timportAs: '{ buildEventContract }',\n\t\t\t\tpackage: '@sprucelabs/mercury-types',\n\t\t\t},\n\t\t\t{\n\t\t\t\timportAs: '{ buildPermissionContract }',\n\t\t\t\tpackage: '@sprucelabs/mercury-types',\n\t\t\t},\n\t\t]\n\n\t\tconst { eventContractTemplateItems } = this.itemBuilder.buildTemplateItems({\n\t\t\tcontracts: [\n\t\t\t\t{\n\t\t\t\t\teventSignatures: {\n\t\t\t\t\t\t'groups.list::v2021_12_01': {\n\t\t\t\t\t\t\temitPayloadSchema: {\n\t\t\t\t\t\t\t\tid: 'listEmitTargetAndPayload',\n\t\t\t\t\t\t\t\tversion: 'v2021_12_01',\n\t\t\t\t\t\t\t\tnamespace: 'Groups',\n\t\t\t\t\t\t\t\tname: '',\n\t\t\t\t\t\t\t\tfields: {},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tresponsePayloadSchema: {\n\t\t\t\t\t\t\t\tid: 'listResponsePayload',\n\t\t\t\t\t\t\t\tversion: 'v2021_12_01',\n\t\t\t\t\t\t\t\tnamespace: 'Groups',\n\t\t\t\t\t\t\t\tname: '',\n\t\t\t\t\t\t\t\tfields: {},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\temitPermissionContract: {\n\t\t\t\t\t\t\t\tid: 'listEmitPermissions',\n\t\t\t\t\t\t\t\tname: 'list',\n\t\t\t\t\t\t\t\trequireAllPermissions: false,\n\t\t\t\t\t\t\t\tpermissions: [],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\n\t\t\t\t\t\t'appointments.list::v2021_06_23': {\n\t\t\t\t\t\t\temitPayloadSchema: {\n\t\t\t\t\t\t\t\tid: 'listEmitTargetAndPayload',\n\t\t\t\t\t\t\t\tversion: 'v2021_06_23',\n\t\t\t\t\t\t\t\tnamespace: 'Appointments',\n\t\t\t\t\t\t\t\tname: '',\n\t\t\t\t\t\t\t\tfields: {},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tresponsePayloadSchema: {\n\t\t\t\t\t\t\t\tid: 'listResponsePayload',\n\t\t\t\t\t\t\t\tversion: 'v2021_06_23',\n\t\t\t\t\t\t\t\tnamespace: 'Appointments',\n\t\t\t\t\t\t\t\tname: '',\n\t\t\t\t\t\t\t\tfields: {},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\temitPermissionContract: {\n\t\t\t\t\t\t\t\tid: 'listEmitPermissions',\n\t\t\t\t\t\t\t\tname: 'list appointments',\n\t\t\t\t\t\t\t\trequireAllPermissions: false,\n\t\t\t\t\t\t\t\tpermissions: [],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tlistenPermissionContract: {\n\t\t\t\t\t\t\t\tid: 'listListenPermissions',\n\t\t\t\t\t\t\t\tname: 'list appointments',\n\t\t\t\t\t\t\t\trequireAllPermissions: false,\n\t\t\t\t\t\t\t\tpermissions: [],\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\tlocalNamespace: 'testing',\n\t\t})\n\n\t\tassert.isEqualDeep(\n\t\t\teventContractTemplateItems[0].imports,\n\t\t\tgroupsExpectedImports\n\t\t)\n\t\tassert.isEqualDeep(\n\t\t\teventContractTemplateItems[1].imports,\n\t\t\tappointmentsExpectedImports\n\t\t)\n\t}\n}\n"],"file":"EventTemplateItemBuilder.test.js"}
|
|
@@ -216,13 +216,13 @@ var EventTemplateItemBuilder = /*#__PURE__*/function () {
|
|
|
216
216
|
|
|
217
217
|
if (emitPayloadSchema) {
|
|
218
218
|
signatureTemplateItem.emitPayloadSchema = schemaItems.find(function (i) {
|
|
219
|
-
return i.id === emitPayloadSchema.id;
|
|
219
|
+
return i.id === emitPayloadSchema.id && (!emitPayloadSchema.namespace || i.namespace === emitPayloadSchema.namespace);
|
|
220
220
|
});
|
|
221
221
|
}
|
|
222
222
|
|
|
223
223
|
if (responsePayloadSchema) {
|
|
224
224
|
signatureTemplateItem.responsePayloadSchema = schemaItems.find(function (i) {
|
|
225
|
-
return i.id === responsePayloadSchema.id;
|
|
225
|
+
return i.id === responsePayloadSchema.id && (!responsePayloadSchema.namespace || i.namespace === responsePayloadSchema.namespace);
|
|
226
226
|
});
|
|
227
227
|
}
|
|
228
228
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/templateItemBuilders/EventTemplateItemBuilder.ts"],"names":["EventTemplateItemBuilder","options","contracts","localNamespace","eventBuilderFile","eventContractTemplateItems","schemaTemplateItems","contract","buildTemplateItemsForContract","schemaItems","contractItems","push","sort","a","b","nameCamel","fullyQualifiedEventName","namedSignatures","eventContractUtil","getNamedEventSignatures","namedSig","mapEventSigsToSchemaTemplateItems","signatureTemplateItem","buildEventSigTemplateItem","emitPayloadSchemaTemplateItem","emitPayloadSchema","responsePayloadSchemaTemplateItem","responsePayloadSchema","SchemaError","code","parameters","friendlyMessages","item","buildTemplateItemForEventSignature","eventNamespace","isLocal","namespacePascal","sigToNamespacePascal","namesUtil","toCamel","eventName","namePascal","toPascal","version","namespace","toKebab","MERCURY_API_NAMESPACE","namespaceCamel","imports","filter","i","map","schemaDiskUtil","resolvePath","destination","schema","shouldIncludeFileExtension","importAs","eventSignatures","signature","listenPermissionContract","emitPermissionContract","find","id","schemasByNamespace","mapEventSigsToSchemasByNamepace","schemaTemplateItemBuilder","SchemaTemplateItemBuilder","buildTemplateItems"],"mappings":";;;;;;;;;;;;;;;;;;;AACA;;AACA;;AAIA;;AAQA;;AACA;;;;;;;;;;;;;;IAEqBA,wB;;;;;;;WACpB,4BAA0BC,OAA1B,EAOE;AACD,UAAQC,SAAR,GAAwDD,OAAxD,CAAQC,SAAR;AAAA,UAAmBC,cAAnB,GAAwDF,OAAxD,CAAmBE,cAAnB;AAAA,UAAmCC,gBAAnC,GAAwDH,OAAxD,CAAmCG,gBAAnC;AAEA,UAAMC,0BAAuD,GAAG,EAAhE;AACA,UAAMC,mBAAyC,GAAG,EAAlD;;AAJC,iDAMsBJ,SANtB;AAAA;;AAAA;AAMD,4DAAkC;AAAA,cAAvBK,QAAuB;;AACjC,sCAGI,KAAKC,6BAAL,CACHD,QADG,EAEHJ,cAFG,EAGHC,gBAHG,CAHJ;AAAA,cACsBK,WADtB,yBACCH,mBADD;AAAA,cAE6BI,aAF7B,yBAECL,0BAFD;;AASAA,UAAAA,0BAA0B,CAACM,IAA3B,OAAAN,0BAA0B,sCAASK,aAAT,EAA1B;AACAJ,UAAAA,mBAAmB,CAACK,IAApB,OAAAL,mBAAmB,sCAASG,WAAT,EAAnB;AACA;AAlBA;AAAA;AAAA;AAAA;AAAA;;AAoBDJ,MAAAA,0BAA0B,CAACO,IAA3B,CAAgC,UAACC,CAAD,EAAIC,CAAJ,EAAU;AACzC,YAAID,CAAC,CAACE,SAAF,GAAcD,CAAC,CAACC,SAApB,EAA+B;AAC9B,iBAAO,CAAP;AACA,SAFD,MAEO,IAAIF,CAAC,CAACE,SAAF,GAAcD,CAAC,CAACC,SAApB,EAA+B;AACrC,iBAAO,CAAC,CAAR;AACA;;AAED,eAAO,CAAP;AACA,OARD;AAUA,aAAO;AAAEV,QAAAA,0BAA0B,EAA1BA,0BAAF;AAA8BC,QAAAA,mBAAmB,EAAnBA;AAA9B,OAAP;AACA;;;WAED,uCACCJ,SADD,EAECc,uBAFD,EAME;AAAA,kDACsBd,SADtB;AAAA;;AAAA;AACD,+DAAkC;AAAA,cAAvBK,QAAuB;;AACjC,cAAMU,eAAe,GACpBC,oCAAkBC,uBAAlB,CAA0CZ,QAA1C,CADD;;AADiC,sDAIVU,eAJU;AAAA;;AAAA;AAIjC,mEAAwC;AAAA,kBAA7BG,QAA6B;;AACvC,kBAAIA,QAAQ,CAACJ,uBAAT,KAAqCA,uBAAzC,EAAkE;AACjE,oBAAMV,mBAAyC,GAC9C,KAAKe,iCAAL,CAAuCJ,eAAvC,CADD;AAGA,oBAAMK,qBAAiD,GACtD,KAAKC,yBAAL,CAA+BH,QAA/B,EAAyCd,mBAAzC,CADD;AAGA,uBAAO;AACNkB,kBAAAA,6BAA6B,EAC5BF,qBAAqB,CAACG,iBAFjB;AAGNC,kBAAAA,iCAAiC,EAChCJ,qBAAqB,CAACK;AAJjB,iBAAP;AAMA;AACD;AAnBgC;AAAA;AAAA;AAAA;AAAA;AAoBjC;AArBA;AAAA;AAAA;AAAA;AAAA;;AAuBD,YAAM,IAAIC,mBAAJ,CAAgB;AACrBC,QAAAA,IAAI,EAAE,oBADe;AAErBC,QAAAA,UAAU,EAAE,CAAC,yBAAD,CAFS;AAGrBC,QAAAA,gBAAgB,EAAE,kDACyBf,uBADzB;AAHG,OAAhB,CAAN;AAOA;;;WAED,uCACCT,QADD,EAECJ,cAFD,EAGCC,gBAHD,EAOE;AACD,UAAMa,eAAe,GAAGC,oCAAkBC,uBAAlB,CAA0CZ,QAA1C,CAAxB;;AAEA,UAAMD,mBAAyC,GAC9C,KAAKe,iCAAL,CAAuCJ,eAAvC,CADD;AAGA,UAAMZ,0BAAuD,GAAG,EAAhE;;AANC,kDAQsBY,eARtB;AAAA;;AAAA;AAQD,+DAAwC;AAAA,cAA7BG,QAA6B;AACvC,cAAMY,IAA+B,GACpC,KAAKC,kCAAL,CACCb,QADD,EAECd,mBAFD,EAGCc,QAAQ,CAACc,cAAT,KAA4B/B,cAH7B,EAICC,gBAJD,CADD;AAQAC,UAAAA,0BAA0B,CAACM,IAA3B,CAAgCqB,IAAhC;AACA;AAlBA;AAAA;AAAA;AAAA;AAAA;;AAoBD,aAAO;AACN3B,QAAAA,0BAA0B,EAA1BA,0BADM;AAENC,QAAAA,mBAAmB,EAAnBA;AAFM,OAAP;AAIA;;;WAED,4CACCc,QADD,EAECd,mBAFD,EAGC6B,OAHD,EAIC/B,gBAJD,EAKE;AAAA;;AACD,UAAMgC,eAAe,GAAG,KAAKC,oBAAL,CAA0BjB,QAA1B,CAAxB;AAEA,UAAME,qBAAiD,GACtD,KAAKC,yBAAL,CAA+BH,QAA/B,EAAyCd,mBAAzC,CADD;AAGA,UAAM0B,IAA+B,GAAG;AACvCjB,QAAAA,SAAS,EAAEuB,4BAAUC,OAAV,CAAkBnB,QAAQ,CAACoB,SAA3B,CAD4B;AAEvCC,QAAAA,UAAU,EAAEH,4BAAUI,QAAV,CAAmBtB,QAAQ,CAACoB,SAA5B,CAF2B;AAGvCG,QAAAA,OAAO,uBAAEvB,QAAQ,CAACuB,OAAX,iEAAsB,eAHU;AAIvCR,QAAAA,OAAO,EAAPA,OAJuC;AAKvCS,QAAAA,SAAS,EAAEN,4BAAUO,OAAV,0BACVzB,QAAQ,CAACc,cADC,yEACiBY,uCADjB,CAL4B;AAQvCC,QAAAA,cAAc,EAAET,4BAAUC,OAAV,2BACfnB,QAAQ,CAACc,cADM,2EACYY,uCADZ,CARuB;AAWvCE,QAAAA,OAAO,EAAE,CACR1B,qBAAqB,CAACG,iBADd,EAERH,qBAAqB,CAACK,qBAFd,EAIPsB,MAJO,CAIA,UAACC,CAAD;AAAA,iBAAO,CAAC,CAACA,CAAT;AAAA,SAJA,EAKPC,GALO,CAKH,UAACnB,IAAD;AAAA,iBAA+B;AACnC,uBAASoB,uBAAeC,WAAf,CAA2B;AACnCC,cAAAA,WAAW,EAAE,iBADsB;AAEnCC,cAAAA,MAAM,EAAEvB,IAAI,CAACuB,MAFsB;AAGnCC,cAAAA,0BAA0B,EAAE;AAHO,aAA3B,CAD0B;AAMnCC,YAAAA,QAAQ,YAAKzB,IAAI,CAACjB,SAAV;AAN2B,WAA/B;AAAA,SALG,CAX8B;AAwBvCqB,QAAAA,eAAe,EAAfA,eAxBuC;AAyBvCsB,QAAAA,eAAe,uCACbtC,QAAQ,CAACJ,uBADI,EACsBM,qBADtB;AAzBwB,OAAxC;AA8BAU,MAAAA,IAAI,CAACgB,OAAL,CAAarC,IAAb,CAAkB;AACjB8C,QAAAA,QAAQ,EAAE,wBADO;AAEjB,mBAASrD,gBAAT,aAASA,gBAAT,cAASA,gBAAT,GAA6B;AAFZ,OAAlB;;AAKA,UACCgB,QAAQ,CAACuC,SAAT,CAAmBC,wBAAnB,IACAxC,QAAQ,CAACuC,SAAT,CAAmBE,sBAFpB,EAGE;AACD7B,QAAAA,IAAI,CAACgB,OAAL,CAAarC,IAAb,CAAkB;AACjB8C,UAAAA,QAAQ,EAAE,6BADO;AAEjB,qBAASrD,gBAAT,aAASA,gBAAT,cAASA,gBAAT,GAA6B;AAFZ,SAAlB;AAIA;;AAED,aAAO4B,IAAP;AACA;;;WAED,mCACCZ,QADD,EAECX,WAFD,EAGE;AACD,gCACCW,QAAQ,CAACuC,SADV;AAAA,UAAQlC,iBAAR,uBAAQA,iBAAR;AAAA,UAA2BE,qBAA3B,uBAA2BA,qBAA3B;AAAA,UAAqDgC,SAArD;;AAGA,UAAMrC,qBAAiD,qBAAQqC,SAAR,CAAvD;;AAEA,UAAIlC,iBAAJ,EAAuB;AACtBH,QAAAA,qBAAqB,CAACG,iBAAtB,GAA0ChB,WAAW,CAACqD,IAAZ,CACzC,UAACZ,CAAD;AAAA,iBAAOA,CAAC,CAACa,EAAF,KAAStC,iBAAiB,CAACsC,EAAlC;AAAA,SADyC,CAA1C;AAGA;;AAED,UAAIpC,qBAAJ,EAA2B;AAC1BL,QAAAA,qBAAqB,CAACK,qBAAtB,GAA8ClB,WAAW,CAACqD,IAAZ,CAC7C,UAACZ,CAAD;AAAA,iBAAOA,CAAC,CAACa,EAAF,KAASpC,qBAAqB,CAACoC,EAAtC;AAAA,SAD6C,CAA9C;AAGA;;AACD,aAAOzC,qBAAP;AACA;;;WAED,2CACCL,eADD,EAEE;AACD,UAAM+C,kBAA4C,GACjD,KAAKC,+BAAL,CAAqChD,eAArC,CADD;AAGA,UAAMiD,yBAAyB,GAAG,IAAIC,qCAAJ,CAA8B,KAA9B,CAAlC;AACA,UAAM1D,WAAiC,GACtCyD,yBAAyB,CAACE,kBAA1B,CACCJ,kBADD,EAEC,gBAFD,CADD;AAMA,aAAOvD,WAAP;AACA;;;WAED,yCACCQ,eADD,EAEE;AACD,UAAM+C,kBAA4C,GAAG,EAArD;;AADC,kDAGsB/C,eAHtB;AAAA;;AAAA;AAGD,+DAAwC;AAAA,cAA7BG,QAA6B;AACvC,cAAMgB,eAAe,GAAG,KAAKC,oBAAL,CAA0BjB,QAA1B,CAAxB;AACA,qCAAqDA,QAAQ,CAACuC,SAA9D;AAAA,cAAQlC,iBAAR,wBAAQA,iBAAR;AAAA,cAA2BE,qBAA3B,wBAA2BA,qBAA3B;;AAEA,cAAI,CAACqC,kBAAkB,CAAC5B,eAAD,CAAvB,EAA0C;AACzC4B,YAAAA,kBAAkB,CAAC5B,eAAD,CAAlB,GAAsC,EAAtC;AACA;;AAED,cAAIX,iBAAJ,EAAuB;AACtBuC,YAAAA,kBAAkB,CAAC5B,eAAD,CAAlB,CAAoCzB,IAApC;AACCgC,cAAAA,OAAO,EAAEvB,QAAQ,CAACuB;AADnB,eAEIlB,iBAFJ;AAIA;;AAED,cAAIE,qBAAJ,EAA2B;AAC1BqC,YAAAA,kBAAkB,CAAC5B,eAAD,CAAlB,CAAoCzB,IAApC;AACCgC,cAAAA,OAAO,EAAEvB,QAAQ,CAACuB;AADnB,eAEIhB,qBAFJ;AAIA;AACD;AAxBA;AAAA;AAAA;AAAA;AAAA;;AA0BD,aAAOqC,kBAAP;AACA;;;WAED,8BAA6B5C,QAA7B,EAA4D;AAAA;;AAC3D,aAAOkB,4BAAUI,QAAV,2BAAmBtB,QAAQ,CAACc,cAA5B,2EAA8CY,uCAA9C,CAAP;AACA","sourcesContent":["import { EventContract } from '@sprucelabs/mercury-types'\nimport { Schema, SchemaError, SchemaTemplateItem } from '@sprucelabs/schema'\nimport {\n\teventContractUtil,\n\tNamedEventSignature,\n} from '@sprucelabs/spruce-event-utils'\nimport {\n\tMERCURY_API_NAMESPACE,\n\tnamesUtil,\n} from '@sprucelabs/spruce-skill-utils'\nimport {\n\tEventContractTemplateItem,\n\tEventSignatureTemplateItem,\n} from '@sprucelabs/spruce-templates'\nimport schemaDiskUtil from '../features/schema/utilities/schemaDisk.utility'\nimport SchemaTemplateItemBuilder from './SchemaTemplateItemBuilder'\n\nexport default class EventTemplateItemBuilder {\n\tpublic buildTemplateItems(options: {\n\t\tcontracts: EventContract[]\n\t\tlocalNamespace?: string\n\t\teventBuilderFile?: string\n\t}): {\n\t\teventContractTemplateItems: EventContractTemplateItem[]\n\t\tschemaTemplateItems: SchemaTemplateItem[]\n\t} {\n\t\tconst { contracts, localNamespace, eventBuilderFile } = options\n\n\t\tconst eventContractTemplateItems: EventContractTemplateItem[] = []\n\t\tconst schemaTemplateItems: SchemaTemplateItem[] = []\n\n\t\tfor (const contract of contracts) {\n\t\t\tconst {\n\t\t\t\tschemaTemplateItems: schemaItems,\n\t\t\t\teventContractTemplateItems: contractItems,\n\t\t\t} = this.buildTemplateItemsForContract(\n\t\t\t\tcontract,\n\t\t\t\tlocalNamespace,\n\t\t\t\teventBuilderFile\n\t\t\t)\n\n\t\t\teventContractTemplateItems.push(...contractItems)\n\t\t\tschemaTemplateItems.push(...schemaItems)\n\t\t}\n\n\t\teventContractTemplateItems.sort((a, b) => {\n\t\t\tif (a.nameCamel > b.nameCamel) {\n\t\t\t\treturn 1\n\t\t\t} else if (a.nameCamel < b.nameCamel) {\n\t\t\t\treturn -1\n\t\t\t}\n\n\t\t\treturn 0\n\t\t})\n\n\t\treturn { eventContractTemplateItems, schemaTemplateItems }\n\t}\n\n\tpublic buildEventTemplateItemForName(\n\t\tcontracts: EventContract[],\n\t\tfullyQualifiedEventName: string\n\t): {\n\t\tresponsePayloadSchemaTemplateItem: SchemaTemplateItem | undefined\n\t\temitPayloadSchemaTemplateItem: SchemaTemplateItem | undefined\n\t} {\n\t\tfor (const contract of contracts) {\n\t\t\tconst namedSignatures =\n\t\t\t\teventContractUtil.getNamedEventSignatures(contract)\n\n\t\t\tfor (const namedSig of namedSignatures) {\n\t\t\t\tif (namedSig.fullyQualifiedEventName === fullyQualifiedEventName) {\n\t\t\t\t\tconst schemaTemplateItems: SchemaTemplateItem[] =\n\t\t\t\t\t\tthis.mapEventSigsToSchemaTemplateItems(namedSignatures)\n\n\t\t\t\t\tconst signatureTemplateItem: EventSignatureTemplateItem =\n\t\t\t\t\t\tthis.buildEventSigTemplateItem(namedSig, schemaTemplateItems)\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\temitPayloadSchemaTemplateItem:\n\t\t\t\t\t\t\tsignatureTemplateItem.emitPayloadSchema,\n\t\t\t\t\t\tresponsePayloadSchemaTemplateItem:\n\t\t\t\t\t\t\tsignatureTemplateItem.responsePayloadSchema,\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthrow new SchemaError({\n\t\t\tcode: 'INVALID_PARAMETERS',\n\t\t\tparameters: ['fullyQualifiedEventName'],\n\t\t\tfriendlyMessages: [\n\t\t\t\t`I could not find any events that match ${fullyQualifiedEventName}.`,\n\t\t\t],\n\t\t})\n\t}\n\n\tprivate buildTemplateItemsForContract(\n\t\tcontract: EventContract,\n\t\tlocalNamespace?: string,\n\t\teventBuilderFile?: string\n\t): {\n\t\teventContractTemplateItems: EventContractTemplateItem[]\n\t\tschemaTemplateItems: SchemaTemplateItem[]\n\t} {\n\t\tconst namedSignatures = eventContractUtil.getNamedEventSignatures(contract)\n\n\t\tconst schemaTemplateItems: SchemaTemplateItem[] =\n\t\t\tthis.mapEventSigsToSchemaTemplateItems(namedSignatures)\n\n\t\tconst eventContractTemplateItems: EventContractTemplateItem[] = []\n\n\t\tfor (const namedSig of namedSignatures) {\n\t\t\tconst item: EventContractTemplateItem =\n\t\t\t\tthis.buildTemplateItemForEventSignature(\n\t\t\t\t\tnamedSig,\n\t\t\t\t\tschemaTemplateItems,\n\t\t\t\t\tnamedSig.eventNamespace === localNamespace,\n\t\t\t\t\teventBuilderFile\n\t\t\t\t)\n\n\t\t\teventContractTemplateItems.push(item)\n\t\t}\n\n\t\treturn {\n\t\t\teventContractTemplateItems,\n\t\t\tschemaTemplateItems,\n\t\t}\n\t}\n\n\tprivate buildTemplateItemForEventSignature(\n\t\tnamedSig: NamedEventSignature,\n\t\tschemaTemplateItems: SchemaTemplateItem[],\n\t\tisLocal: boolean,\n\t\teventBuilderFile?: string\n\t) {\n\t\tconst namespacePascal = this.sigToNamespacePascal(namedSig)\n\n\t\tconst signatureTemplateItem: EventSignatureTemplateItem =\n\t\t\tthis.buildEventSigTemplateItem(namedSig, schemaTemplateItems)\n\n\t\tconst item: EventContractTemplateItem = {\n\t\t\tnameCamel: namesUtil.toCamel(namedSig.eventName),\n\t\t\tnamePascal: namesUtil.toPascal(namedSig.eventName),\n\t\t\tversion: namedSig.version ?? '***MISSING***',\n\t\t\tisLocal,\n\t\t\tnamespace: namesUtil.toKebab(\n\t\t\t\tnamedSig.eventNamespace ?? MERCURY_API_NAMESPACE\n\t\t\t),\n\t\t\tnamespaceCamel: namesUtil.toCamel(\n\t\t\t\tnamedSig.eventNamespace ?? MERCURY_API_NAMESPACE\n\t\t\t),\n\t\t\timports: [\n\t\t\t\tsignatureTemplateItem.emitPayloadSchema as SchemaTemplateItem,\n\t\t\t\tsignatureTemplateItem.responsePayloadSchema as SchemaTemplateItem,\n\t\t\t]\n\t\t\t\t.filter((i) => !!i)\n\t\t\t\t.map((item: SchemaTemplateItem) => ({\n\t\t\t\t\tpackage: schemaDiskUtil.resolvePath({\n\t\t\t\t\t\tdestination: '#spruce/schemas',\n\t\t\t\t\t\tschema: item.schema,\n\t\t\t\t\t\tshouldIncludeFileExtension: false,\n\t\t\t\t\t}),\n\t\t\t\t\timportAs: `${item.nameCamel}Schema`,\n\t\t\t\t})),\n\t\t\tnamespacePascal,\n\t\t\teventSignatures: {\n\t\t\t\t[namedSig.fullyQualifiedEventName]: signatureTemplateItem,\n\t\t\t},\n\t\t}\n\n\t\titem.imports.push({\n\t\t\timportAs: '{ buildEventContract }',\n\t\t\tpackage: eventBuilderFile ?? '@sprucelabs/mercury-types',\n\t\t})\n\n\t\tif (\n\t\t\tnamedSig.signature.listenPermissionContract ||\n\t\t\tnamedSig.signature.emitPermissionContract\n\t\t) {\n\t\t\titem.imports.push({\n\t\t\t\timportAs: '{ buildPermissionContract }',\n\t\t\t\tpackage: eventBuilderFile ?? '@sprucelabs/mercury-types',\n\t\t\t})\n\t\t}\n\n\t\treturn item\n\t}\n\n\tprivate buildEventSigTemplateItem(\n\t\tnamedSig: NamedEventSignature,\n\t\tschemaItems: SchemaTemplateItem[]\n\t) {\n\t\tconst { emitPayloadSchema, responsePayloadSchema, ...signature } =\n\t\t\tnamedSig.signature\n\n\t\tconst signatureTemplateItem: EventSignatureTemplateItem = { ...signature }\n\n\t\tif (emitPayloadSchema) {\n\t\t\tsignatureTemplateItem.emitPayloadSchema = schemaItems.find(\n\t\t\t\t(i) => i.id === emitPayloadSchema.id\n\t\t\t)\n\t\t}\n\n\t\tif (responsePayloadSchema) {\n\t\t\tsignatureTemplateItem.responsePayloadSchema = schemaItems.find(\n\t\t\t\t(i) => i.id === responsePayloadSchema.id\n\t\t\t)\n\t\t}\n\t\treturn signatureTemplateItem\n\t}\n\n\tprivate mapEventSigsToSchemaTemplateItems(\n\t\tnamedSignatures: NamedEventSignature[]\n\t) {\n\t\tconst schemasByNamespace: Record<string, Schema[]> =\n\t\t\tthis.mapEventSigsToSchemasByNamepace(namedSignatures)\n\n\t\tconst schemaTemplateItemBuilder = new SchemaTemplateItemBuilder('Cli')\n\t\tconst schemaItems: SchemaTemplateItem[] =\n\t\t\tschemaTemplateItemBuilder.buildTemplateItems(\n\t\t\t\tschemasByNamespace,\n\t\t\t\t'#spruce/events'\n\t\t\t)\n\n\t\treturn schemaItems\n\t}\n\n\tprivate mapEventSigsToSchemasByNamepace(\n\t\tnamedSignatures: NamedEventSignature[]\n\t) {\n\t\tconst schemasByNamespace: Record<string, Schema[]> = {}\n\n\t\tfor (const namedSig of namedSignatures) {\n\t\t\tconst namespacePascal = this.sigToNamespacePascal(namedSig)\n\t\t\tconst { emitPayloadSchema, responsePayloadSchema } = namedSig.signature\n\n\t\t\tif (!schemasByNamespace[namespacePascal]) {\n\t\t\t\tschemasByNamespace[namespacePascal] = []\n\t\t\t}\n\n\t\t\tif (emitPayloadSchema) {\n\t\t\t\tschemasByNamespace[namespacePascal].push({\n\t\t\t\t\tversion: namedSig.version,\n\t\t\t\t\t...emitPayloadSchema,\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tif (responsePayloadSchema) {\n\t\t\t\tschemasByNamespace[namespacePascal].push({\n\t\t\t\t\tversion: namedSig.version,\n\t\t\t\t\t...responsePayloadSchema,\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\treturn schemasByNamespace\n\t}\n\n\tprivate sigToNamespacePascal(namedSig: NamedEventSignature) {\n\t\treturn namesUtil.toPascal(namedSig.eventNamespace ?? MERCURY_API_NAMESPACE)\n\t}\n}\n"],"file":"EventTemplateItemBuilder.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/templateItemBuilders/EventTemplateItemBuilder.ts"],"names":["EventTemplateItemBuilder","options","contracts","localNamespace","eventBuilderFile","eventContractTemplateItems","schemaTemplateItems","contract","buildTemplateItemsForContract","schemaItems","contractItems","push","sort","a","b","nameCamel","fullyQualifiedEventName","namedSignatures","eventContractUtil","getNamedEventSignatures","namedSig","mapEventSigsToSchemaTemplateItems","signatureTemplateItem","buildEventSigTemplateItem","emitPayloadSchemaTemplateItem","emitPayloadSchema","responsePayloadSchemaTemplateItem","responsePayloadSchema","SchemaError","code","parameters","friendlyMessages","item","buildTemplateItemForEventSignature","eventNamespace","isLocal","namespacePascal","sigToNamespacePascal","namesUtil","toCamel","eventName","namePascal","toPascal","version","namespace","toKebab","MERCURY_API_NAMESPACE","namespaceCamel","imports","filter","i","map","schemaDiskUtil","resolvePath","destination","schema","shouldIncludeFileExtension","importAs","eventSignatures","signature","listenPermissionContract","emitPermissionContract","find","id","schemasByNamespace","mapEventSigsToSchemasByNamepace","schemaTemplateItemBuilder","SchemaTemplateItemBuilder","buildTemplateItems"],"mappings":"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","sourcesContent":["import { EventContract } from '@sprucelabs/mercury-types'\nimport { Schema, SchemaError, SchemaTemplateItem } from '@sprucelabs/schema'\nimport {\n\teventContractUtil,\n\tNamedEventSignature,\n} from '@sprucelabs/spruce-event-utils'\nimport {\n\tMERCURY_API_NAMESPACE,\n\tnamesUtil,\n} from '@sprucelabs/spruce-skill-utils'\nimport {\n\tEventContractTemplateItem,\n\tEventSignatureTemplateItem,\n} from '@sprucelabs/spruce-templates'\nimport schemaDiskUtil from '../features/schema/utilities/schemaDisk.utility'\nimport SchemaTemplateItemBuilder from './SchemaTemplateItemBuilder'\n\nexport default class EventTemplateItemBuilder {\n\tpublic buildTemplateItems(options: {\n\t\tcontracts: EventContract[]\n\t\tlocalNamespace?: string\n\t\teventBuilderFile?: string\n\t}): {\n\t\teventContractTemplateItems: EventContractTemplateItem[]\n\t\tschemaTemplateItems: SchemaTemplateItem[]\n\t} {\n\t\tconst { contracts, localNamespace, eventBuilderFile } = options\n\n\t\tconst eventContractTemplateItems: EventContractTemplateItem[] = []\n\t\tconst schemaTemplateItems: SchemaTemplateItem[] = []\n\n\t\tfor (const contract of contracts) {\n\t\t\tconst {\n\t\t\t\tschemaTemplateItems: schemaItems,\n\t\t\t\teventContractTemplateItems: contractItems,\n\t\t\t} = this.buildTemplateItemsForContract(\n\t\t\t\tcontract,\n\t\t\t\tlocalNamespace,\n\t\t\t\teventBuilderFile\n\t\t\t)\n\n\t\t\teventContractTemplateItems.push(...contractItems)\n\t\t\tschemaTemplateItems.push(...schemaItems)\n\t\t}\n\n\t\teventContractTemplateItems.sort((a, b) => {\n\t\t\tif (a.nameCamel > b.nameCamel) {\n\t\t\t\treturn 1\n\t\t\t} else if (a.nameCamel < b.nameCamel) {\n\t\t\t\treturn -1\n\t\t\t}\n\n\t\t\treturn 0\n\t\t})\n\n\t\treturn { eventContractTemplateItems, schemaTemplateItems }\n\t}\n\n\tpublic buildEventTemplateItemForName(\n\t\tcontracts: EventContract[],\n\t\tfullyQualifiedEventName: string\n\t): {\n\t\tresponsePayloadSchemaTemplateItem: SchemaTemplateItem | undefined\n\t\temitPayloadSchemaTemplateItem: SchemaTemplateItem | undefined\n\t} {\n\t\tfor (const contract of contracts) {\n\t\t\tconst namedSignatures =\n\t\t\t\teventContractUtil.getNamedEventSignatures(contract)\n\n\t\t\tfor (const namedSig of namedSignatures) {\n\t\t\t\tif (namedSig.fullyQualifiedEventName === fullyQualifiedEventName) {\n\t\t\t\t\tconst schemaTemplateItems: SchemaTemplateItem[] =\n\t\t\t\t\t\tthis.mapEventSigsToSchemaTemplateItems(namedSignatures)\n\n\t\t\t\t\tconst signatureTemplateItem: EventSignatureTemplateItem =\n\t\t\t\t\t\tthis.buildEventSigTemplateItem(namedSig, schemaTemplateItems)\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\temitPayloadSchemaTemplateItem:\n\t\t\t\t\t\t\tsignatureTemplateItem.emitPayloadSchema,\n\t\t\t\t\t\tresponsePayloadSchemaTemplateItem:\n\t\t\t\t\t\t\tsignatureTemplateItem.responsePayloadSchema,\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthrow new SchemaError({\n\t\t\tcode: 'INVALID_PARAMETERS',\n\t\t\tparameters: ['fullyQualifiedEventName'],\n\t\t\tfriendlyMessages: [\n\t\t\t\t`I could not find any events that match ${fullyQualifiedEventName}.`,\n\t\t\t],\n\t\t})\n\t}\n\n\tprivate buildTemplateItemsForContract(\n\t\tcontract: EventContract,\n\t\tlocalNamespace?: string,\n\t\teventBuilderFile?: string\n\t): {\n\t\teventContractTemplateItems: EventContractTemplateItem[]\n\t\tschemaTemplateItems: SchemaTemplateItem[]\n\t} {\n\t\tconst namedSignatures = eventContractUtil.getNamedEventSignatures(contract)\n\n\t\tconst schemaTemplateItems: SchemaTemplateItem[] =\n\t\t\tthis.mapEventSigsToSchemaTemplateItems(namedSignatures)\n\n\t\tconst eventContractTemplateItems: EventContractTemplateItem[] = []\n\n\t\tfor (const namedSig of namedSignatures) {\n\t\t\tconst item: EventContractTemplateItem =\n\t\t\t\tthis.buildTemplateItemForEventSignature(\n\t\t\t\t\tnamedSig,\n\t\t\t\t\tschemaTemplateItems,\n\t\t\t\t\tnamedSig.eventNamespace === localNamespace,\n\t\t\t\t\teventBuilderFile\n\t\t\t\t)\n\n\t\t\teventContractTemplateItems.push(item)\n\t\t}\n\n\t\treturn {\n\t\t\teventContractTemplateItems,\n\t\t\tschemaTemplateItems,\n\t\t}\n\t}\n\n\tprivate buildTemplateItemForEventSignature(\n\t\tnamedSig: NamedEventSignature,\n\t\tschemaTemplateItems: SchemaTemplateItem[],\n\t\tisLocal: boolean,\n\t\teventBuilderFile?: string\n\t) {\n\t\tconst namespacePascal = this.sigToNamespacePascal(namedSig)\n\n\t\tconst signatureTemplateItem: EventSignatureTemplateItem =\n\t\t\tthis.buildEventSigTemplateItem(namedSig, schemaTemplateItems)\n\n\t\tconst item: EventContractTemplateItem = {\n\t\t\tnameCamel: namesUtil.toCamel(namedSig.eventName),\n\t\t\tnamePascal: namesUtil.toPascal(namedSig.eventName),\n\t\t\tversion: namedSig.version ?? '***MISSING***',\n\t\t\tisLocal,\n\t\t\tnamespace: namesUtil.toKebab(\n\t\t\t\tnamedSig.eventNamespace ?? MERCURY_API_NAMESPACE\n\t\t\t),\n\t\t\tnamespaceCamel: namesUtil.toCamel(\n\t\t\t\tnamedSig.eventNamespace ?? MERCURY_API_NAMESPACE\n\t\t\t),\n\t\t\timports: [\n\t\t\t\tsignatureTemplateItem.emitPayloadSchema as SchemaTemplateItem,\n\t\t\t\tsignatureTemplateItem.responsePayloadSchema as SchemaTemplateItem,\n\t\t\t]\n\t\t\t\t.filter((i) => !!i)\n\t\t\t\t.map((item: SchemaTemplateItem) => ({\n\t\t\t\t\tpackage: schemaDiskUtil.resolvePath({\n\t\t\t\t\t\tdestination: '#spruce/schemas',\n\t\t\t\t\t\tschema: item.schema,\n\t\t\t\t\t\tshouldIncludeFileExtension: false,\n\t\t\t\t\t}),\n\t\t\t\t\timportAs: `${item.nameCamel}Schema`,\n\t\t\t\t})),\n\t\t\tnamespacePascal,\n\t\t\teventSignatures: {\n\t\t\t\t[namedSig.fullyQualifiedEventName]: signatureTemplateItem,\n\t\t\t},\n\t\t}\n\n\t\titem.imports.push({\n\t\t\timportAs: '{ buildEventContract }',\n\t\t\tpackage: eventBuilderFile ?? '@sprucelabs/mercury-types',\n\t\t})\n\n\t\tif (\n\t\t\tnamedSig.signature.listenPermissionContract ||\n\t\t\tnamedSig.signature.emitPermissionContract\n\t\t) {\n\t\t\titem.imports.push({\n\t\t\t\timportAs: '{ buildPermissionContract }',\n\t\t\t\tpackage: eventBuilderFile ?? '@sprucelabs/mercury-types',\n\t\t\t})\n\t\t}\n\n\t\treturn item\n\t}\n\n\tprivate buildEventSigTemplateItem(\n\t\tnamedSig: NamedEventSignature,\n\t\tschemaItems: SchemaTemplateItem[]\n\t) {\n\t\tconst { emitPayloadSchema, responsePayloadSchema, ...signature } =\n\t\t\tnamedSig.signature\n\n\t\tconst signatureTemplateItem: EventSignatureTemplateItem = { ...signature }\n\n\t\tif (emitPayloadSchema) {\n\t\t\tsignatureTemplateItem.emitPayloadSchema = schemaItems.find(\n\t\t\t\t(i) =>\n\t\t\t\t\ti.id === emitPayloadSchema.id &&\n\t\t\t\t\t(!emitPayloadSchema.namespace ||\n\t\t\t\t\t\ti.namespace === emitPayloadSchema.namespace)\n\t\t\t)\n\t\t}\n\n\t\tif (responsePayloadSchema) {\n\t\t\tsignatureTemplateItem.responsePayloadSchema = schemaItems.find(\n\t\t\t\t(i) =>\n\t\t\t\t\ti.id === responsePayloadSchema.id &&\n\t\t\t\t\t(!responsePayloadSchema.namespace ||\n\t\t\t\t\t\ti.namespace === responsePayloadSchema.namespace)\n\t\t\t)\n\t\t}\n\t\treturn signatureTemplateItem\n\t}\n\n\tprivate mapEventSigsToSchemaTemplateItems(\n\t\tnamedSignatures: NamedEventSignature[]\n\t) {\n\t\tconst schemasByNamespace: Record<string, Schema[]> =\n\t\t\tthis.mapEventSigsToSchemasByNamepace(namedSignatures)\n\n\t\tconst schemaTemplateItemBuilder = new SchemaTemplateItemBuilder('Cli')\n\t\tconst schemaItems: SchemaTemplateItem[] =\n\t\t\tschemaTemplateItemBuilder.buildTemplateItems(\n\t\t\t\tschemasByNamespace,\n\t\t\t\t'#spruce/events'\n\t\t\t)\n\n\t\treturn schemaItems\n\t}\n\n\tprivate mapEventSigsToSchemasByNamepace(\n\t\tnamedSignatures: NamedEventSignature[]\n\t) {\n\t\tconst schemasByNamespace: Record<string, Schema[]> = {}\n\n\t\tfor (const namedSig of namedSignatures) {\n\t\t\tconst namespacePascal = this.sigToNamespacePascal(namedSig)\n\t\t\tconst { emitPayloadSchema, responsePayloadSchema } = namedSig.signature\n\n\t\t\tif (!schemasByNamespace[namespacePascal]) {\n\t\t\t\tschemasByNamespace[namespacePascal] = []\n\t\t\t}\n\n\t\t\tif (emitPayloadSchema) {\n\t\t\t\tschemasByNamespace[namespacePascal].push({\n\t\t\t\t\tversion: namedSig.version,\n\t\t\t\t\t...emitPayloadSchema,\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tif (responsePayloadSchema) {\n\t\t\t\tschemasByNamespace[namespacePascal].push({\n\t\t\t\t\tversion: namedSig.version,\n\t\t\t\t\t...responsePayloadSchema,\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\treturn schemasByNamespace\n\t}\n\n\tprivate sigToNamespacePascal(namedSig: NamedEventSignature) {\n\t\treturn namesUtil.toPascal(namedSig.eventNamespace ?? MERCURY_API_NAMESPACE)\n\t}\n}\n"],"file":"EventTemplateItemBuilder.js"}
|
package/package.json
CHANGED
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
]
|
|
20
20
|
},
|
|
21
21
|
"license": "MIT",
|
|
22
|
-
"version": "15.2.
|
|
22
|
+
"version": "15.2.17",
|
|
23
23
|
"bin": {
|
|
24
24
|
"spruce": "./build/index.js"
|
|
25
25
|
},
|
|
@@ -74,22 +74,22 @@
|
|
|
74
74
|
},
|
|
75
75
|
"dependencies": {
|
|
76
76
|
"@babel/cli": "7.17.6",
|
|
77
|
-
"@babel/plugin-proposal-decorators": "7.17.
|
|
78
|
-
"@babel/runtime": "7.17.
|
|
77
|
+
"@babel/plugin-proposal-decorators": "7.17.8",
|
|
78
|
+
"@babel/runtime": "7.17.8",
|
|
79
79
|
"@jest/reporters": "27.5.1",
|
|
80
|
-
"@sprucelabs/error": "5.0.
|
|
81
|
-
"@sprucelabs/heartwood-view-controllers": "
|
|
82
|
-
"@sprucelabs/jest-json-reporter": "6.0.
|
|
83
|
-
"@sprucelabs/mercury-client": "22.0.
|
|
84
|
-
"@sprucelabs/mercury-event-emitter": "22.0.
|
|
85
|
-
"@sprucelabs/mercury-types": "27.0.
|
|
86
|
-
"@sprucelabs/schema": "27.1.
|
|
87
|
-
"@sprucelabs/spruce-core-schemas": "25.0.
|
|
88
|
-
"@sprucelabs/spruce-event-plugin": "
|
|
89
|
-
"@sprucelabs/spruce-event-utils": "19.1.
|
|
90
|
-
"@sprucelabs/spruce-skill-booter": "
|
|
91
|
-
"@sprucelabs/spruce-skill-utils": "25.0.
|
|
92
|
-
"@sprucelabs/spruce-templates": "^15.2.
|
|
80
|
+
"@sprucelabs/error": "5.0.424",
|
|
81
|
+
"@sprucelabs/heartwood-view-controllers": "70.6.4",
|
|
82
|
+
"@sprucelabs/jest-json-reporter": "6.0.342",
|
|
83
|
+
"@sprucelabs/mercury-client": "22.0.29",
|
|
84
|
+
"@sprucelabs/mercury-event-emitter": "22.0.29",
|
|
85
|
+
"@sprucelabs/mercury-types": "27.0.176",
|
|
86
|
+
"@sprucelabs/schema": "27.1.24",
|
|
87
|
+
"@sprucelabs/spruce-core-schemas": "25.0.41",
|
|
88
|
+
"@sprucelabs/spruce-event-plugin": "30.0.7",
|
|
89
|
+
"@sprucelabs/spruce-event-utils": "19.1.29",
|
|
90
|
+
"@sprucelabs/spruce-skill-booter": "30.0.7",
|
|
91
|
+
"@sprucelabs/spruce-skill-utils": "25.0.36",
|
|
92
|
+
"@sprucelabs/spruce-templates": "^15.2.17",
|
|
93
93
|
"@typescript-eslint/eslint-plugin": "5.14.0",
|
|
94
94
|
"@typescript-eslint/parser": "5.14.0",
|
|
95
95
|
"cfonts": "2.10.0",
|
|
@@ -100,7 +100,7 @@
|
|
|
100
100
|
"core-js": "3.21.1",
|
|
101
101
|
"emphasize": "4.2.0",
|
|
102
102
|
"fs-extra": "10.0.1",
|
|
103
|
-
"gifwrap": "
|
|
103
|
+
"gifwrap": "0.10.1",
|
|
104
104
|
"globby": "11.0.4",
|
|
105
105
|
"inflection": "1.13.2",
|
|
106
106
|
"inquirer": "8.2.1",
|
|
@@ -120,23 +120,23 @@
|
|
|
120
120
|
"uuid": "8.3.2"
|
|
121
121
|
},
|
|
122
122
|
"devDependencies": {
|
|
123
|
-
"@sprucelabs/data-stores": "9.0.
|
|
124
|
-
"@sprucelabs/jest-sheets-reporter": "1.3.
|
|
125
|
-
"@sprucelabs/mercury-core-events": "3.1.
|
|
126
|
-
"@sprucelabs/resolve-path-aliases": "1.1.
|
|
127
|
-
"@sprucelabs/spruce-conversation-plugin": "
|
|
128
|
-
"@sprucelabs/spruce-deploy-plugin": "
|
|
129
|
-
"@sprucelabs/spruce-store-plugin": "
|
|
130
|
-
"@sprucelabs/spruce-test-fixtures": "
|
|
131
|
-
"@sprucelabs/test": "7.7.
|
|
132
|
-
"@sprucelabs/test-utils": "3.0.
|
|
123
|
+
"@sprucelabs/data-stores": "9.0.42",
|
|
124
|
+
"@sprucelabs/jest-sheets-reporter": "1.3.26",
|
|
125
|
+
"@sprucelabs/mercury-core-events": "3.1.28",
|
|
126
|
+
"@sprucelabs/resolve-path-aliases": "1.1.13",
|
|
127
|
+
"@sprucelabs/spruce-conversation-plugin": "30.0.7",
|
|
128
|
+
"@sprucelabs/spruce-deploy-plugin": "30.0.7",
|
|
129
|
+
"@sprucelabs/spruce-store-plugin": "30.0.7",
|
|
130
|
+
"@sprucelabs/spruce-test-fixtures": "30.0.7",
|
|
131
|
+
"@sprucelabs/test": "7.7.291",
|
|
132
|
+
"@sprucelabs/test-utils": "3.0.500",
|
|
133
133
|
"@types/blessed": "0.1.19",
|
|
134
134
|
"@types/eslint": "8.4.1",
|
|
135
135
|
"@types/fs-extra": "9.0.13",
|
|
136
136
|
"@types/inflection": "1.13.0",
|
|
137
137
|
"@types/inquirer": "8.2.0",
|
|
138
138
|
"@types/jsonwebtoken": "8.5.8",
|
|
139
|
-
"@types/lodash": "4.14.
|
|
139
|
+
"@types/lodash": "4.14.180",
|
|
140
140
|
"@types/md5": "2.3.2",
|
|
141
141
|
"@types/mkdirp": "1.0.2",
|
|
142
142
|
"@types/node": "17.0.21",
|
|
@@ -153,20 +153,20 @@
|
|
|
153
153
|
"concurrently": "7.0.0",
|
|
154
154
|
"conventional-changelog-sprucelabs": "1.1.2",
|
|
155
155
|
"dotenv": "16.0.0",
|
|
156
|
-
"eslint": "8.
|
|
156
|
+
"eslint": "8.11.0",
|
|
157
157
|
"eslint-config-spruce": "10.11.2",
|
|
158
158
|
"find-process": "1.4.7",
|
|
159
159
|
"jest": "27.5.1",
|
|
160
160
|
"jest-circus": "27.5.1",
|
|
161
161
|
"jest-junit": "13.0.0",
|
|
162
162
|
"jest-reporters": "0.0.2",
|
|
163
|
-
"prettier": "2.
|
|
163
|
+
"prettier": "2.6.0",
|
|
164
164
|
"ps-node": "0.1.6",
|
|
165
165
|
"rimraf": "3.0.2",
|
|
166
166
|
"ts-jest": "27.1.3",
|
|
167
167
|
"ts-node": "10.7.0",
|
|
168
|
-
"tsc-watch": "4.6.
|
|
169
|
-
"tsconfig-paths": "3.
|
|
168
|
+
"tsc-watch": "4.6.2",
|
|
169
|
+
"tsconfig-paths": "3.14.0",
|
|
170
170
|
"typescript": "4.6.2"
|
|
171
171
|
},
|
|
172
172
|
"testSkillCache": {
|
|
@@ -598,5 +598,5 @@
|
|
|
598
598
|
"ora"
|
|
599
599
|
]
|
|
600
600
|
},
|
|
601
|
-
"gitHead": "
|
|
601
|
+
"gitHead": "7be0333126048ce4d3318525f0fb818a7538c625"
|
|
602
602
|
}
|
|
@@ -120,14 +120,14 @@ const relatedToRelatedToProximitySchema = buildSchema({
|
|
|
120
120
|
})
|
|
121
121
|
|
|
122
122
|
const relatedToRelatedToProximitySchemaTemplateItem: SchemaTemplateItem = {
|
|
123
|
-
namespace: '
|
|
123
|
+
namespace: 'proximity',
|
|
124
124
|
id: relatedToRelatedToProximitySchema.id,
|
|
125
125
|
nameCamel: 'relatedToRelatedToProximitySchema',
|
|
126
126
|
namePascal: 'RelatedToRelatedToProximitySchema',
|
|
127
127
|
nameReadable: 'relatedToRelatedToProximitySchema',
|
|
128
128
|
schema: {
|
|
129
129
|
...relatedToRelatedToProximitySchema,
|
|
130
|
-
namespace: '
|
|
130
|
+
namespace: 'proximity',
|
|
131
131
|
},
|
|
132
132
|
isNested: true,
|
|
133
133
|
destinationDir: '#spruce/events',
|
|
@@ -150,14 +150,14 @@ const relatedToProximitySchema = buildSchema({
|
|
|
150
150
|
})
|
|
151
151
|
|
|
152
152
|
const relatedToProximitySchemaTemplateItem: SchemaTemplateItem = {
|
|
153
|
-
namespace: '
|
|
153
|
+
namespace: 'proximity',
|
|
154
154
|
id: relatedToProximitySchema.id,
|
|
155
155
|
nameCamel: 'relatedToProximitySchema',
|
|
156
156
|
namePascal: 'RelatedToProximitySchema',
|
|
157
157
|
nameReadable: 'relatedToProximitySchema',
|
|
158
158
|
schema: {
|
|
159
159
|
id: 'relatedToProximitySchema',
|
|
160
|
-
namespace: '
|
|
160
|
+
namespace: 'proximity',
|
|
161
161
|
version: expectedVersion,
|
|
162
162
|
fields: {
|
|
163
163
|
boolField: {
|
|
@@ -169,7 +169,7 @@ const relatedToProximitySchemaTemplateItem: SchemaTemplateItem = {
|
|
|
169
169
|
schemaIds: [
|
|
170
170
|
{
|
|
171
171
|
id: 'relatedToRelatedToProximitySchema',
|
|
172
|
-
namespace: '
|
|
172
|
+
namespace: 'proximity',
|
|
173
173
|
version: expectedVersion,
|
|
174
174
|
},
|
|
175
175
|
],
|
|
@@ -184,6 +184,7 @@ const relatedToProximitySchemaTemplateItem: SchemaTemplateItem = {
|
|
|
184
184
|
const proximityEmitPayloadSchema = buildSchema({
|
|
185
185
|
version: expectedVersion,
|
|
186
186
|
id: 'proximityEmitPayload',
|
|
187
|
+
namespace: 'proximity',
|
|
187
188
|
fields: {
|
|
188
189
|
textField: {
|
|
189
190
|
type: 'text',
|
|
@@ -198,14 +199,14 @@ const proximityEmitPayloadSchema = buildSchema({
|
|
|
198
199
|
})
|
|
199
200
|
|
|
200
201
|
const proximityEmitPayloadTemplateItem: SchemaTemplateItem = {
|
|
201
|
-
namespace: '
|
|
202
|
+
namespace: 'proximity',
|
|
202
203
|
id: proximityEmitPayloadSchema.id,
|
|
203
204
|
nameCamel: 'proximityEmitPayload',
|
|
204
205
|
namePascal: 'ProximityEmitPayload',
|
|
205
206
|
nameReadable: 'proximityEmitPayload',
|
|
206
207
|
schema: {
|
|
207
208
|
id: 'proximityEmitPayload',
|
|
208
|
-
namespace: '
|
|
209
|
+
namespace: 'proximity',
|
|
209
210
|
version: expectedVersion,
|
|
210
211
|
fields: {
|
|
211
212
|
textField: {
|
|
@@ -217,7 +218,7 @@ const proximityEmitPayloadTemplateItem: SchemaTemplateItem = {
|
|
|
217
218
|
schemaIds: [
|
|
218
219
|
{
|
|
219
220
|
id: 'relatedToProximitySchema',
|
|
220
|
-
namespace: '
|
|
221
|
+
namespace: 'proximity',
|
|
221
222
|
version: expectedVersion,
|
|
222
223
|
},
|
|
223
224
|
],
|
|
@@ -339,7 +340,6 @@ export default class EventTemplateItemBuilderTest extends AbstractCliTest {
|
|
|
339
340
|
eventContractTemplateItems,
|
|
340
341
|
expectedEventContractTemplateItems
|
|
341
342
|
)
|
|
342
|
-
|
|
343
343
|
assert.isEqualDeep(schemaTemplateItems, expectedSchemaTemplateItems)
|
|
344
344
|
}
|
|
345
345
|
|
|
@@ -379,4 +379,119 @@ export default class EventTemplateItemBuilderTest extends AbstractCliTest {
|
|
|
379
379
|
assert.isEqual(eventContractTemplateItems[0].nameCamel, 'registerEvents')
|
|
380
380
|
assert.isEqual(eventContractTemplateItems[1].nameCamel, 'zebraCheeta')
|
|
381
381
|
}
|
|
382
|
+
|
|
383
|
+
@test()
|
|
384
|
+
protected static eventContractTemplateItemsHaveProperNamespacesImports() {
|
|
385
|
+
const groupsExpectedImports = [
|
|
386
|
+
{
|
|
387
|
+
package:
|
|
388
|
+
'#spruce/schemas/groups/v2021_12_01/listEmitTargetAndPayload.schema',
|
|
389
|
+
importAs: 'listEmitTargetAndPayloadSchema',
|
|
390
|
+
},
|
|
391
|
+
{
|
|
392
|
+
package:
|
|
393
|
+
'#spruce/schemas/groups/v2021_12_01/listResponsePayload.schema',
|
|
394
|
+
importAs: 'listResponsePayloadSchema',
|
|
395
|
+
},
|
|
396
|
+
{
|
|
397
|
+
importAs: '{ buildEventContract }',
|
|
398
|
+
package: '@sprucelabs/mercury-types',
|
|
399
|
+
},
|
|
400
|
+
{
|
|
401
|
+
importAs: '{ buildPermissionContract }',
|
|
402
|
+
package: '@sprucelabs/mercury-types',
|
|
403
|
+
},
|
|
404
|
+
]
|
|
405
|
+
|
|
406
|
+
const appointmentsExpectedImports = [
|
|
407
|
+
{
|
|
408
|
+
package:
|
|
409
|
+
'#spruce/schemas/appointments/v2021_06_23/listEmitTargetAndPayload.schema',
|
|
410
|
+
importAs: 'listEmitTargetAndPayloadSchema',
|
|
411
|
+
},
|
|
412
|
+
{
|
|
413
|
+
package:
|
|
414
|
+
'#spruce/schemas/appointments/v2021_06_23/listResponsePayload.schema',
|
|
415
|
+
importAs: 'listResponsePayloadSchema',
|
|
416
|
+
},
|
|
417
|
+
{
|
|
418
|
+
importAs: '{ buildEventContract }',
|
|
419
|
+
package: '@sprucelabs/mercury-types',
|
|
420
|
+
},
|
|
421
|
+
{
|
|
422
|
+
importAs: '{ buildPermissionContract }',
|
|
423
|
+
package: '@sprucelabs/mercury-types',
|
|
424
|
+
},
|
|
425
|
+
]
|
|
426
|
+
|
|
427
|
+
const { eventContractTemplateItems } = this.itemBuilder.buildTemplateItems({
|
|
428
|
+
contracts: [
|
|
429
|
+
{
|
|
430
|
+
eventSignatures: {
|
|
431
|
+
'groups.list::v2021_12_01': {
|
|
432
|
+
emitPayloadSchema: {
|
|
433
|
+
id: 'listEmitTargetAndPayload',
|
|
434
|
+
version: 'v2021_12_01',
|
|
435
|
+
namespace: 'Groups',
|
|
436
|
+
name: '',
|
|
437
|
+
fields: {},
|
|
438
|
+
},
|
|
439
|
+
responsePayloadSchema: {
|
|
440
|
+
id: 'listResponsePayload',
|
|
441
|
+
version: 'v2021_12_01',
|
|
442
|
+
namespace: 'Groups',
|
|
443
|
+
name: '',
|
|
444
|
+
fields: {},
|
|
445
|
+
},
|
|
446
|
+
emitPermissionContract: {
|
|
447
|
+
id: 'listEmitPermissions',
|
|
448
|
+
name: 'list',
|
|
449
|
+
requireAllPermissions: false,
|
|
450
|
+
permissions: [],
|
|
451
|
+
},
|
|
452
|
+
},
|
|
453
|
+
|
|
454
|
+
'appointments.list::v2021_06_23': {
|
|
455
|
+
emitPayloadSchema: {
|
|
456
|
+
id: 'listEmitTargetAndPayload',
|
|
457
|
+
version: 'v2021_06_23',
|
|
458
|
+
namespace: 'Appointments',
|
|
459
|
+
name: '',
|
|
460
|
+
fields: {},
|
|
461
|
+
},
|
|
462
|
+
responsePayloadSchema: {
|
|
463
|
+
id: 'listResponsePayload',
|
|
464
|
+
version: 'v2021_06_23',
|
|
465
|
+
namespace: 'Appointments',
|
|
466
|
+
name: '',
|
|
467
|
+
fields: {},
|
|
468
|
+
},
|
|
469
|
+
emitPermissionContract: {
|
|
470
|
+
id: 'listEmitPermissions',
|
|
471
|
+
name: 'list appointments',
|
|
472
|
+
requireAllPermissions: false,
|
|
473
|
+
permissions: [],
|
|
474
|
+
},
|
|
475
|
+
listenPermissionContract: {
|
|
476
|
+
id: 'listListenPermissions',
|
|
477
|
+
name: 'list appointments',
|
|
478
|
+
requireAllPermissions: false,
|
|
479
|
+
permissions: [],
|
|
480
|
+
},
|
|
481
|
+
},
|
|
482
|
+
},
|
|
483
|
+
},
|
|
484
|
+
],
|
|
485
|
+
localNamespace: 'testing',
|
|
486
|
+
})
|
|
487
|
+
|
|
488
|
+
assert.isEqualDeep(
|
|
489
|
+
eventContractTemplateItems[0].imports,
|
|
490
|
+
groupsExpectedImports
|
|
491
|
+
)
|
|
492
|
+
assert.isEqualDeep(
|
|
493
|
+
eventContractTemplateItems[1].imports,
|
|
494
|
+
appointmentsExpectedImports
|
|
495
|
+
)
|
|
496
|
+
}
|
|
382
497
|
}
|
|
@@ -197,13 +197,19 @@ export default class EventTemplateItemBuilder {
|
|
|
197
197
|
|
|
198
198
|
if (emitPayloadSchema) {
|
|
199
199
|
signatureTemplateItem.emitPayloadSchema = schemaItems.find(
|
|
200
|
-
(i) =>
|
|
200
|
+
(i) =>
|
|
201
|
+
i.id === emitPayloadSchema.id &&
|
|
202
|
+
(!emitPayloadSchema.namespace ||
|
|
203
|
+
i.namespace === emitPayloadSchema.namespace)
|
|
201
204
|
)
|
|
202
205
|
}
|
|
203
206
|
|
|
204
207
|
if (responsePayloadSchema) {
|
|
205
208
|
signatureTemplateItem.responsePayloadSchema = schemaItems.find(
|
|
206
|
-
(i) =>
|
|
209
|
+
(i) =>
|
|
210
|
+
i.id === responsePayloadSchema.id &&
|
|
211
|
+
(!responsePayloadSchema.namespace ||
|
|
212
|
+
i.namespace === responsePayloadSchema.namespace)
|
|
207
213
|
)
|
|
208
214
|
}
|
|
209
215
|
return signatureTemplateItem
|