@sprucelabs/spruce-cli 14.28.8 → 14.29.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -0
- package/build/__tests__/behavioral/SettingLogTransportsInASkill.test.js +13 -9
- package/build/__tests__/behavioral/SettingLogTransportsInASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/SyncingEventsOnlyFromDependencies.test.d.ts +1 -1
- package/build/__tests__/behavioral/SyncingEventsOnlyFromDependencies.test.js +24 -14
- package/build/__tests__/behavioral/SyncingEventsOnlyFromDependencies.test.js.map +1 -1
- package/build/__tests__/behavioral/TestingDataStores.test.js +15 -11
- package/build/__tests__/behavioral/TestingDataStores.test.js.map +1 -1
- package/build/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.js +3 -1
- package/build/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.js.map +1 -1
- package/build/__tests__/behavioral/events/CreatingAListener.test.d.ts +2 -0
- package/build/__tests__/behavioral/events/CreatingAListener.test.js +157 -81
- package/build/__tests__/behavioral/events/CreatingAListener.test.js.map +1 -1
- package/build/__tests__/behavioral/events/KeepingListenersInSync.test.d.ts +7 -0
- package/build/__tests__/behavioral/events/KeepingListenersInSync.test.js +171 -0
- package/build/__tests__/behavioral/events/KeepingListenersInSync.test.js.map +1 -0
- package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.d.ts +1 -0
- package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.js +53 -21
- package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.js.map +1 -1
- package/build/__tests__/behavioral/skill/UpgradingWithListeners.test.d.ts +5 -0
- package/build/__tests__/behavioral/skill/UpgradingWithListeners.test.js +137 -0
- package/build/__tests__/behavioral/skill/UpgradingWithListeners.test.js.map +1 -0
- package/build/__tests__/behavioral/stores/KeepingDataStoresInSync.test.d.ts +3 -0
- package/build/__tests__/behavioral/stores/KeepingDataStoresInSync.test.js +105 -16
- package/build/__tests__/behavioral/stores/KeepingDataStoresInSync.test.js.map +1 -1
- package/build/__tests__/behavioral/tests/CreatingATest.test.js +14 -10
- package/build/__tests__/behavioral/tests/CreatingATest.test.js.map +1 -1
- package/build/__tests__/behavioral/views/TestingViewControllers.test.d.ts +1 -0
- package/build/__tests__/behavioral/views/TestingViewControllers.test.js +67 -35
- package/build/__tests__/behavioral/views/TestingViewControllers.test.js.map +1 -1
- package/build/__tests__/implementation/AuthService.test.d.ts +1 -0
- package/build/__tests__/implementation/AuthService.test.js +8 -0
- package/build/__tests__/implementation/AuthService.test.js.map +1 -1
- package/build/__tests__/implementation/EventStore.test.js +3 -1
- package/build/__tests__/implementation/EventStore.test.js.map +1 -1
- package/build/__tests__/implementation/StoreFeature.test.d.ts +4 -0
- package/build/__tests__/implementation/StoreFeature.test.js +132 -0
- package/build/__tests__/implementation/StoreFeature.test.js.map +1 -0
- package/build/features/event/EventFeature.d.ts +2 -2
- package/build/features/event/EventFeature.js +53 -13
- package/build/features/event/EventFeature.js.map +1 -1
- package/build/features/event/actions/ListenAction.d.ts +1 -0
- package/build/features/event/actions/ListenAction.js +60 -31
- package/build/features/event/actions/ListenAction.js.map +1 -1
- package/build/features/event/actions/SyncListenersAction.d.ts +15 -0
- package/build/features/event/actions/SyncListenersAction.js +115 -0
- package/build/features/event/actions/SyncListenersAction.js.map +1 -0
- package/build/features/event/builders/ListenerTemplateItemBuilder.d.ts +8 -0
- package/build/features/event/builders/ListenerTemplateItemBuilder.js +65 -0
- package/build/features/event/builders/ListenerTemplateItemBuilder.js.map +1 -0
- package/build/features/event/stores/EventStore.js +2 -2
- package/build/features/event/stores/EventStore.js.map +1 -1
- package/build/features/event/stores/ListenerStore.d.ts +9 -0
- package/build/features/event/stores/ListenerStore.js +122 -0
- package/build/features/event/stores/ListenerStore.js.map +1 -0
- package/build/features/event/writers/EventWriter.d.ts +4 -1
- package/build/features/event/writers/EventWriter.js +42 -8
- package/build/features/event/writers/EventWriter.js.map +1 -1
- package/build/features/skill/SkillFeature.js +1 -1
- package/build/features/skill/SkillFeature.js.map +1 -1
- package/build/features/skill/stores/SkillStore.js +4 -8
- package/build/features/skill/stores/SkillStore.js.map +1 -1
- package/build/features/store/StoreFeature.d.ts +1 -1
- package/build/features/store/StoreFeature.js +6 -6
- package/build/features/store/StoreFeature.js.map +1 -1
- package/build/services/AuthService.d.ts +4 -1
- package/build/services/AuthService.js +15 -4
- package/build/services/AuthService.js.map +1 -1
- package/build/services/LintService.d.ts +4 -1
- package/build/services/LintService.js +123 -94
- package/build/services/LintService.js.map +1 -1
- package/build/services/ServiceFactory.js +3 -3
- package/build/services/ServiceFactory.js.map +1 -1
- package/build/stores/StoreFactory.d.ts +2 -0
- package/build/stores/StoreFactory.js +4 -1
- package/build/stores/StoreFactory.js.map +1 -1
- package/build/tests/AbstractCliTest.js +3 -3
- package/build/tests/AbstractCliTest.js.map +1 -1
- package/build/writers/AbstractWriter.d.ts +0 -3
- package/build/writers/AbstractWriter.js +2 -18
- package/build/writers/AbstractWriter.js.map +1 -1
- package/package.json +11 -9
- package/src/__tests__/behavioral/SettingLogTransportsInASkill.test.ts +2 -0
- package/src/__tests__/behavioral/SyncingEventsOnlyFromDependencies.test.ts +10 -5
- package/src/__tests__/behavioral/TestingDataStores.test.ts +2 -0
- package/src/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.ts +1 -0
- package/src/__tests__/behavioral/events/CreatingAListener.test.ts +28 -9
- package/src/__tests__/behavioral/events/KeepingListenersInSync.test.ts +47 -0
- package/src/__tests__/behavioral/events/SkillEmitsBootEvents.test.ts +6 -0
- package/src/__tests__/behavioral/skill/UpgradingWithListeners.test.ts +59 -0
- package/src/__tests__/behavioral/stores/KeepingDataStoresInSync.test.ts +31 -2
- package/src/__tests__/behavioral/tests/CreatingATest.test.ts +2 -0
- package/src/__tests__/behavioral/views/TestingViewControllers.test.ts +6 -0
- package/src/__tests__/implementation/AuthService.test.ts +6 -0
- package/src/__tests__/implementation/EventStore.test.ts +1 -0
- package/src/__tests__/implementation/StoreFeature.test.ts +40 -0
- package/src/features/event/EventFeature.ts +21 -4
- package/src/features/event/actions/ListenAction.ts +9 -3
- package/src/features/event/actions/SyncListenersAction.ts +38 -0
- package/src/features/event/builders/ListenerTemplateItemBuilder.ts +27 -0
- package/src/features/event/stores/EventStore.ts +1 -1
- package/src/features/event/stores/ListenerStore.ts +32 -0
- package/src/features/event/writers/EventWriter.ts +19 -0
- package/src/features/skill/SkillFeature.ts +1 -1
- package/src/features/skill/stores/SkillStore.ts +4 -3
- package/src/features/store/StoreFeature.ts +3 -3
- package/src/services/AuthService.ts +15 -5
- package/src/services/LintService.ts +19 -2
- package/src/services/ServiceFactory.ts +9 -3
- package/src/stores/StoreFactory.ts +3 -0
- package/src/tests/AbstractCliTest.ts +2 -2
- package/src/writers/AbstractWriter.ts +2 -13
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/__tests__/implementation/EventStore.test.ts"],"names":["EVENT_NAME_READABLE","EVENT_NAME","EVENT_CAMEL","EventStoreTest","versionUtil","generateVersion","createAction","Action","assert","isTruthy","Store","isFunction","fetchEventContracts","localNamespace","results","contracts","errors","isTrue","length","contract","isEqual","organizationFixture","getOrganizationFixture","seedDemoOrg","name","org","seedSkillAndInstallAtOrg","eventStore1","eventStore","skill1","skill","eventStore2","registerEventContract","eventContract","eventSignatures","version","constValue","emitPayloadSchema","eventName","targetSchema","eventTargetSchema","emitPermissionContract","id","permissions","defaults","skillContract","sig","eventContractUtil","getSignatureByName","slug","FeatureFixture","installCachedFeatures","getSkillFixture","registerCurrentSkill","execute","nameReadable","nameKebab","nameCamel","isFalsy","match","testUtil","assertFileByNameInGeneratedFiles","files","diskUtil","writeFile","doesThrowAsync","loadLocalContract","RegExp","err","errorAssertUtil","assertError","copyEventBuildersAndPermissions","namespaces","isLength","eventNameUtil","join","eventNamespace","wasFound","fields","target","payload","responsePayloadSchema","listenPermissionContract","installAndRegisterOneGlobalEvent","fqen","totalMatches","reduce","count","eventsPath","resolvePath","deleteDir","unified","unifyContracts","doesThrow","isGlobal","meta","local","boot","kill","EventStore","clearCache","createResults","seedDemoSkill","installSkillAtOrganization","connectToApi","skillId","apiKey","client","apiClientFactory","AbstractEventTest"],"mappings":"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","sourcesContent":["import {\n\tbuildPermissionContract,\n\tvalidateEventContract,\n} from '@sprucelabs/mercury-types'\nimport {\n\tbuildEmitTargetAndPayloadSchema,\n\teventContractUtil,\n\teventNameUtil,\n\teventTargetSchema,\n} from '@sprucelabs/spruce-event-utils'\nimport { diskUtil, versionUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { errorAssertUtil } from '@sprucelabs/test-utils'\nimport CreateAction from '../../features/event/actions/CreateAction'\nimport EventStore from '../../features/event/stores/EventStore'\nimport AbstractEventTest from '../../tests/AbstractEventTest'\nimport testUtil from '../../tests/utilities/test.utility'\n\nconst EVENT_NAME_READABLE = 'my event store amazing event'\nconst EVENT_NAME = 'my-event-store-amazing-event'\nconst EVENT_CAMEL = 'myEventStoreAmazingEvent'\n\nexport default class EventStoreTest extends AbstractEventTest {\n\tprivate static createAction: CreateAction\n\tprotected static get version() {\n\t\treturn versionUtil.generateVersion()\n\t}\n\n\tpublic static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.createAction = this.Action<CreateAction>('event', 'create')\n\t}\n\n\t@test()\n\tprotected static async canInstantiateEventStore() {\n\t\tassert.isTruthy(this.Store('event'))\n\t}\n\n\t@test()\n\tprotected static async hasFetchEventContractsMethod() {\n\t\tassert.isFunction(this.Store('event').fetchEventContracts)\n\t}\n\n\t@test()\n\tprotected static async fetchesCoreEventContracts() {\n\t\tconst results = await this.Store('event').fetchEventContracts({\n\t\t\tlocalNamespace: 'my-skill',\n\t\t})\n\t\tconst { contracts, errors } = results\n\n\t\tassert.isTrue(contracts.length >= 1)\n\n\t\tfor (const contract of contracts) {\n\t\t\tvalidateEventContract(contract)\n\t\t}\n\n\t\tassert.isEqual(errors.length, 0)\n\t}\n\n\t@test()\n\tprotected static async registerEventContract() {\n\t\tconst organizationFixture = this.getOrganizationFixture()\n\t\tconst org = await organizationFixture.seedDemoOrg({\n\t\t\tname: 'my new org',\n\t\t})\n\n\t\tconst { eventStore: eventStore1, skill: skill1 } =\n\t\t\tawait this.seedSkillAndInstallAtOrg(org, 'skill 1')\n\n\t\tconst { eventStore: eventStore2 } = await this.seedSkillAndInstallAtOrg(\n\t\t\torg,\n\t\t\t'skill 2'\n\t\t)\n\n\t\tawait eventStore1.registerEventContract({\n\t\t\teventContract: {\n\t\t\t\teventSignatures: {\n\t\t\t\t\t[`my-fantastic-event::${this.version.constValue}`]: {\n\t\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\t\teventName: `my-fantastic-event::${this.version.constValue}`,\n\t\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t\t}),\n\t\t\t\t\t\temitPermissionContract: buildPermissionContract({\n\t\t\t\t\t\t\tid: 'my-fantastic-event-contract',\n\t\t\t\t\t\t\tname: 'Fanstastic emit perms',\n\t\t\t\t\t\t\tpermissions: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tid: 'can-emit-perms',\n\t\t\t\t\t\t\t\t\tname: 'can emit perm',\n\t\t\t\t\t\t\t\t\tdefaults: {\n\t\t\t\t\t\t\t\t\t\tskill: false,\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\n\t\tconst { contracts } = await eventStore2.fetchEventContracts({\n\t\t\tlocalNamespace: 'my-skill',\n\t\t})\n\n\t\tassert.isTrue(contracts.length > 2)\n\n\t\tconst skillContract = contracts[1]\n\n\t\tconst sig = eventContractUtil.getSignatureByName(\n\t\t\tskillContract,\n\t\t\t`${skill1.slug}.my-fantastic-event::${this.version.constValue}`\n\t\t)\n\n\t\tassert.isEqual(\n\t\t\tsig.emitPermissionContract?.id,\n\t\t\t'my-fantastic-event-contract'\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async badLocalContractThrowsNiceError() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst skill = await this.getSkillFixture().registerCurrentSkill({\n\t\t\tname: 'my new skill',\n\t\t})\n\n\t\tconst results = await this.createAction.execute({\n\t\t\tnameReadable: EVENT_NAME_READABLE,\n\t\t\tnameKebab: EVENT_NAME,\n\t\t\tnameCamel: EVENT_CAMEL,\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`emitPayload.builder.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tdiskUtil.writeFile(match, 'export default {}')\n\n\t\tconst err = await assert.doesThrowAsync(\n\t\t\t() => this.Store('event').loadLocalContract(skill.slug),\n\t\t\tnew RegExp(\n\t\t\t\t`${skill.slug}.${EVENT_NAME}::${\n\t\t\t\t\tversionUtil.generateVersion().constValue\n\t\t\t\t}`\n\t\t\t)\n\t\t)\n\n\t\terrorAssertUtil.assertError(err, 'INVALID_EVENT_CONTRACT')\n\t}\n\n\t@test()\n\tprotected static async badLocalSignature() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst skill = await this.getSkillFixture().registerCurrentSkill({\n\t\t\tname: 'my new skill',\n\t\t})\n\n\t\tconst results = await this.createAction.execute({\n\t\t\tnameReadable: EVENT_NAME_READABLE,\n\t\t\tnameKebab: EVENT_NAME,\n\t\t\tnameCamel: EVENT_CAMEL,\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`event.options.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tdiskUtil.writeFile(match, 'export default {waka: true}')\n\n\t\tconst err = await assert.doesThrowAsync(\n\t\t\t() => this.Store('event').loadLocalContract(skill.slug),\n\t\t\tnew RegExp(\n\t\t\t\t`${skill.slug}.${EVENT_NAME}::${\n\t\t\t\t\tversionUtil.generateVersion().constValue\n\t\t\t\t}`\n\t\t\t)\n\t\t)\n\n\t\terrorAssertUtil.assertError(err, 'INVALID_EVENT_CONTRACT')\n\t}\n\n\t@test()\n\tprotected static async mixesInLocalContracts() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst skill = await this.getSkillFixture().registerCurrentSkill({\n\t\t\tname: 'my new skill',\n\t\t})\n\n\t\tawait this.createAction.execute({\n\t\t\tnameReadable: EVENT_NAME_READABLE,\n\t\t\tnameKebab: EVENT_NAME,\n\t\t\tnameCamel: EVENT_CAMEL,\n\t\t})\n\n\t\tawait this.copyEventBuildersAndPermissions(EVENT_NAME)\n\n\t\tawait this.Action('event', 'sync').execute({})\n\n\t\tconst { contracts } = await this.Store('event').fetchEventContracts({\n\t\t\tlocalNamespace: skill.slug,\n\t\t\tnamespaces: ['core'],\n\t\t})\n\n\t\tassert.isLength(contracts, 2)\n\n\t\tconst name = eventNameUtil.join({\n\t\t\teventName: EVENT_NAME,\n\t\t\teventNamespace: skill.slug,\n\t\t\tversion: this.version.constValue,\n\t\t})\n\n\t\tlet wasFound = false\n\t\tfor (const contract of contracts) {\n\t\t\tif (contract.eventSignatures[name]?.emitPayloadSchema) {\n\t\t\t\twasFound = true\n\t\t\t\tassert.isEqual(\n\t\t\t\t\tcontract.eventSignatures[name].emitPayloadSchema?.id,\n\t\t\t\t\tEVENT_CAMEL + 'EmitTargetAndPayload'\n\t\t\t\t)\n\t\t\t\tassert.isTruthy(\n\t\t\t\t\tcontract.eventSignatures[name].emitPayloadSchema?.fields?.target\n\t\t\t\t)\n\t\t\t\tassert.isTruthy(\n\t\t\t\t\tcontract.eventSignatures[name].emitPayloadSchema?.fields?.payload\n\t\t\t\t)\n\t\t\t\tassert.isTruthy(contract.eventSignatures[name].responsePayloadSchema)\n\t\t\t\tassert.isTruthy(contract.eventSignatures[name].emitPermissionContract)\n\t\t\t\tassert.isTruthy(contract.eventSignatures[name].listenPermissionContract)\n\n\t\t\t\tvalidateEventContract(contract)\n\t\t\t}\n\t\t}\n\n\t\tassert.isTrue(wasFound)\n\t}\n\n\t@test()\n\tprotected static async mixesInLocalContractWithGlobalEventsAndDoesNotReturnContractTwice() {\n\t\tconst { skill, fqen } = await this.installAndRegisterOneGlobalEvent()\n\n\t\tconst { contracts } = await this.Store('event').fetchEventContracts({\n\t\t\tlocalNamespace: skill.slug,\n\t\t})\n\n\t\tconst totalMatches = contracts.reduce((count, contract) => {\n\t\t\tif (contract.eventSignatures[fqen]) {\n\t\t\t\tcount++\n\t\t\t}\n\t\t\treturn count\n\t\t}, 0)\n\n\t\tassert.isEqual(totalMatches, 1)\n\t}\n\n\t@test()\n\tprotected static async doesNotLoadGlobalContractsForSelf() {\n\t\tconst { fqen, skill } = await this.installAndRegisterOneGlobalEvent()\n\n\t\tconst eventsPath = this.resolvePath('src', 'events')\n\t\tdiskUtil.deleteDir(eventsPath)\n\n\t\tconst { contracts } = await this.Store('event').fetchEventContracts({\n\t\t\tlocalNamespace: skill.slug,\n\t\t})\n\n\t\tconst unified = eventContractUtil.unifyContracts(contracts)\n\n\t\tassert.isTruthy(unified)\n\t\tassert.doesThrow(() => eventContractUtil.getSignatureByName(unified, fqen))\n\t}\n\n\tprivate static async installAndRegisterOneGlobalEvent() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst skill = await this.getSkillFixture().registerCurrentSkill({\n\t\t\tname: 'event store test skill',\n\t\t})\n\n\t\tconst results = await this.createAction.execute({\n\t\t\tnameReadable: EVENT_NAME_READABLE,\n\t\t\tnameKebab: EVENT_NAME,\n\t\t\tnameCamel: EVENT_CAMEL,\n\t\t\tisGlobal: true,\n\t\t})\n\n\t\tconst { fqen } = results.meta ?? {}\n\n\t\tassert.isTruthy(fqen)\n\n\t\tconst boot = await this.Action('skill', 'boot').execute({ local: true })\n\n\t\tboot.meta?.kill()\n\n\t\tEventStore.clearCache()\n\n\t\treturn { boot, skill, fqen, createResults: results }\n\t}\n\n\tprivate static async seedSkillAndInstallAtOrg(org: any, name: string) {\n\t\tconst skill = await this.getSkillFixture().seedDemoSkill({\n\t\t\tname,\n\t\t})\n\n\t\tawait this.getOrganizationFixture().installSkillAtOrganization(\n\t\t\tskill.id,\n\t\t\torg.id\n\t\t)\n\n\t\tconst client = await this.connectToApi({\n\t\t\tskillId: skill.id,\n\t\t\tapiKey: skill.apiKey,\n\t\t})\n\n\t\tconst eventStore = this.Store('event', {\n\t\t\tapiClientFactory: async () => {\n\t\t\t\treturn client\n\t\t\t},\n\t\t})\n\n\t\treturn { eventStore, skill }\n\t}\n}\n"],"file":"EventStore.test.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/__tests__/implementation/EventStore.test.ts"],"names":["EVENT_NAME_READABLE","EVENT_NAME","EVENT_CAMEL","EventStoreTest","versionUtil","generateVersion","createAction","Action","diskUtil","writeFile","resolvePath","assert","isTruthy","Store","isFunction","fetchEventContracts","localNamespace","results","contracts","errors","isTrue","length","contract","isEqual","organizationFixture","getOrganizationFixture","seedDemoOrg","name","org","seedSkillAndInstallAtOrg","eventStore1","eventStore","skill1","skill","eventStore2","registerEventContract","eventContract","eventSignatures","version","constValue","emitPayloadSchema","eventName","targetSchema","eventTargetSchema","emitPermissionContract","id","permissions","defaults","skillContract","sig","eventContractUtil","getSignatureByName","slug","FeatureFixture","installCachedFeatures","getSkillFixture","registerCurrentSkill","execute","nameReadable","nameKebab","nameCamel","isFalsy","match","testUtil","assertFileByNameInGeneratedFiles","files","doesThrowAsync","loadLocalContract","RegExp","err","errorAssertUtil","assertError","copyEventBuildersAndPermissions","namespaces","isLength","eventNameUtil","join","eventNamespace","wasFound","fields","target","payload","responsePayloadSchema","listenPermissionContract","installAndRegisterOneGlobalEvent","fqen","totalMatches","reduce","count","eventsPath","deleteDir","unified","unifyContracts","doesThrow","isGlobal","meta","local","boot","kill","EventStore","clearCache","createResults","seedDemoSkill","installSkillAtOrganization","connectToApi","skillId","apiKey","client","apiClientFactory","AbstractEventTest"],"mappings":"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","sourcesContent":["import {\n\tbuildPermissionContract,\n\tvalidateEventContract,\n} from '@sprucelabs/mercury-types'\nimport {\n\tbuildEmitTargetAndPayloadSchema,\n\teventContractUtil,\n\teventNameUtil,\n\teventTargetSchema,\n} from '@sprucelabs/spruce-event-utils'\nimport { diskUtil, versionUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { errorAssertUtil } from '@sprucelabs/test-utils'\nimport CreateAction from '../../features/event/actions/CreateAction'\nimport EventStore from '../../features/event/stores/EventStore'\nimport AbstractEventTest from '../../tests/AbstractEventTest'\nimport testUtil from '../../tests/utilities/test.utility'\n\nconst EVENT_NAME_READABLE = 'my event store amazing event'\nconst EVENT_NAME = 'my-event-store-amazing-event'\nconst EVENT_CAMEL = 'myEventStoreAmazingEvent'\n\nexport default class EventStoreTest extends AbstractEventTest {\n\tprivate static createAction: CreateAction\n\tprotected static get version() {\n\t\treturn versionUtil.generateVersion()\n\t}\n\n\tpublic static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.createAction = this.Action<CreateAction>('event', 'create')\n\t\tdiskUtil.writeFile(this.resolvePath('package.json'), '{}')\n\t}\n\n\t@test()\n\tprotected static async canInstantiateEventStore() {\n\t\tassert.isTruthy(this.Store('event'))\n\t}\n\n\t@test()\n\tprotected static async hasFetchEventContractsMethod() {\n\t\tassert.isFunction(this.Store('event').fetchEventContracts)\n\t}\n\n\t@test()\n\tprotected static async fetchesCoreEventContracts() {\n\t\tconst results = await this.Store('event').fetchEventContracts({\n\t\t\tlocalNamespace: 'my-skill',\n\t\t})\n\t\tconst { contracts, errors } = results\n\n\t\tassert.isTrue(contracts.length >= 1)\n\n\t\tfor (const contract of contracts) {\n\t\t\tvalidateEventContract(contract)\n\t\t}\n\n\t\tassert.isEqual(errors.length, 0)\n\t}\n\n\t@test()\n\tprotected static async registerEventContract() {\n\t\tconst organizationFixture = this.getOrganizationFixture()\n\t\tconst org = await organizationFixture.seedDemoOrg({\n\t\t\tname: 'my new org',\n\t\t})\n\n\t\tconst { eventStore: eventStore1, skill: skill1 } =\n\t\t\tawait this.seedSkillAndInstallAtOrg(org, 'skill 1')\n\n\t\tconst { eventStore: eventStore2 } = await this.seedSkillAndInstallAtOrg(\n\t\t\torg,\n\t\t\t'skill 2'\n\t\t)\n\n\t\tawait eventStore1.registerEventContract({\n\t\t\teventContract: {\n\t\t\t\teventSignatures: {\n\t\t\t\t\t[`my-fantastic-event::${this.version.constValue}`]: {\n\t\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\t\teventName: `my-fantastic-event::${this.version.constValue}`,\n\t\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t\t}),\n\t\t\t\t\t\temitPermissionContract: buildPermissionContract({\n\t\t\t\t\t\t\tid: 'my-fantastic-event-contract',\n\t\t\t\t\t\t\tname: 'Fanstastic emit perms',\n\t\t\t\t\t\t\tpermissions: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tid: 'can-emit-perms',\n\t\t\t\t\t\t\t\t\tname: 'can emit perm',\n\t\t\t\t\t\t\t\t\tdefaults: {\n\t\t\t\t\t\t\t\t\t\tskill: false,\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\n\t\tconst { contracts } = await eventStore2.fetchEventContracts({\n\t\t\tlocalNamespace: 'my-skill',\n\t\t})\n\n\t\tassert.isTrue(contracts.length > 2)\n\n\t\tconst skillContract = contracts[1]\n\n\t\tconst sig = eventContractUtil.getSignatureByName(\n\t\t\tskillContract,\n\t\t\t`${skill1.slug}.my-fantastic-event::${this.version.constValue}`\n\t\t)\n\n\t\tassert.isEqual(\n\t\t\tsig.emitPermissionContract?.id,\n\t\t\t'my-fantastic-event-contract'\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async badLocalContractThrowsNiceError() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst skill = await this.getSkillFixture().registerCurrentSkill({\n\t\t\tname: 'my new skill',\n\t\t})\n\n\t\tconst results = await this.createAction.execute({\n\t\t\tnameReadable: EVENT_NAME_READABLE,\n\t\t\tnameKebab: EVENT_NAME,\n\t\t\tnameCamel: EVENT_CAMEL,\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`emitPayload.builder.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tdiskUtil.writeFile(match, 'export default {}')\n\n\t\tconst err = await assert.doesThrowAsync(\n\t\t\t() => this.Store('event').loadLocalContract(skill.slug),\n\t\t\tnew RegExp(\n\t\t\t\t`${skill.slug}.${EVENT_NAME}::${\n\t\t\t\t\tversionUtil.generateVersion().constValue\n\t\t\t\t}`\n\t\t\t)\n\t\t)\n\n\t\terrorAssertUtil.assertError(err, 'INVALID_EVENT_CONTRACT')\n\t}\n\n\t@test()\n\tprotected static async badLocalSignature() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst skill = await this.getSkillFixture().registerCurrentSkill({\n\t\t\tname: 'my new skill',\n\t\t})\n\n\t\tconst results = await this.createAction.execute({\n\t\t\tnameReadable: EVENT_NAME_READABLE,\n\t\t\tnameKebab: EVENT_NAME,\n\t\t\tnameCamel: EVENT_CAMEL,\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`event.options.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tdiskUtil.writeFile(match, 'export default {waka: true}')\n\n\t\tconst err = await assert.doesThrowAsync(\n\t\t\t() => this.Store('event').loadLocalContract(skill.slug),\n\t\t\tnew RegExp(\n\t\t\t\t`${skill.slug}.${EVENT_NAME}::${\n\t\t\t\t\tversionUtil.generateVersion().constValue\n\t\t\t\t}`\n\t\t\t)\n\t\t)\n\n\t\terrorAssertUtil.assertError(err, 'INVALID_EVENT_CONTRACT')\n\t}\n\n\t@test()\n\tprotected static async mixesInLocalContracts() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst skill = await this.getSkillFixture().registerCurrentSkill({\n\t\t\tname: 'my new skill',\n\t\t})\n\n\t\tawait this.createAction.execute({\n\t\t\tnameReadable: EVENT_NAME_READABLE,\n\t\t\tnameKebab: EVENT_NAME,\n\t\t\tnameCamel: EVENT_CAMEL,\n\t\t})\n\n\t\tawait this.copyEventBuildersAndPermissions(EVENT_NAME)\n\n\t\tawait this.Action('event', 'sync').execute({})\n\n\t\tconst { contracts } = await this.Store('event').fetchEventContracts({\n\t\t\tlocalNamespace: skill.slug,\n\t\t\tnamespaces: ['core'],\n\t\t})\n\n\t\tassert.isLength(contracts, 2)\n\n\t\tconst name = eventNameUtil.join({\n\t\t\teventName: EVENT_NAME,\n\t\t\teventNamespace: skill.slug,\n\t\t\tversion: this.version.constValue,\n\t\t})\n\n\t\tlet wasFound = false\n\t\tfor (const contract of contracts) {\n\t\t\tif (contract.eventSignatures[name]?.emitPayloadSchema) {\n\t\t\t\twasFound = true\n\t\t\t\tassert.isEqual(\n\t\t\t\t\tcontract.eventSignatures[name].emitPayloadSchema?.id,\n\t\t\t\t\tEVENT_CAMEL + 'EmitTargetAndPayload'\n\t\t\t\t)\n\t\t\t\tassert.isTruthy(\n\t\t\t\t\tcontract.eventSignatures[name].emitPayloadSchema?.fields?.target\n\t\t\t\t)\n\t\t\t\tassert.isTruthy(\n\t\t\t\t\tcontract.eventSignatures[name].emitPayloadSchema?.fields?.payload\n\t\t\t\t)\n\t\t\t\tassert.isTruthy(contract.eventSignatures[name].responsePayloadSchema)\n\t\t\t\tassert.isTruthy(contract.eventSignatures[name].emitPermissionContract)\n\t\t\t\tassert.isTruthy(contract.eventSignatures[name].listenPermissionContract)\n\n\t\t\t\tvalidateEventContract(contract)\n\t\t\t}\n\t\t}\n\n\t\tassert.isTrue(wasFound)\n\t}\n\n\t@test()\n\tprotected static async mixesInLocalContractWithGlobalEventsAndDoesNotReturnContractTwice() {\n\t\tconst { skill, fqen } = await this.installAndRegisterOneGlobalEvent()\n\n\t\tconst { contracts } = await this.Store('event').fetchEventContracts({\n\t\t\tlocalNamespace: skill.slug,\n\t\t})\n\n\t\tconst totalMatches = contracts.reduce((count, contract) => {\n\t\t\tif (contract.eventSignatures[fqen]) {\n\t\t\t\tcount++\n\t\t\t}\n\t\t\treturn count\n\t\t}, 0)\n\n\t\tassert.isEqual(totalMatches, 1)\n\t}\n\n\t@test()\n\tprotected static async doesNotLoadGlobalContractsForSelf() {\n\t\tconst { fqen, skill } = await this.installAndRegisterOneGlobalEvent()\n\n\t\tconst eventsPath = this.resolvePath('src', 'events')\n\t\tdiskUtil.deleteDir(eventsPath)\n\n\t\tconst { contracts } = await this.Store('event').fetchEventContracts({\n\t\t\tlocalNamespace: skill.slug,\n\t\t})\n\n\t\tconst unified = eventContractUtil.unifyContracts(contracts)\n\n\t\tassert.isTruthy(unified)\n\t\tassert.doesThrow(() => eventContractUtil.getSignatureByName(unified, fqen))\n\t}\n\n\tprivate static async installAndRegisterOneGlobalEvent() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst skill = await this.getSkillFixture().registerCurrentSkill({\n\t\t\tname: 'event store test skill',\n\t\t})\n\n\t\tconst results = await this.createAction.execute({\n\t\t\tnameReadable: EVENT_NAME_READABLE,\n\t\t\tnameKebab: EVENT_NAME,\n\t\t\tnameCamel: EVENT_CAMEL,\n\t\t\tisGlobal: true,\n\t\t})\n\n\t\tconst { fqen } = results.meta ?? {}\n\n\t\tassert.isTruthy(fqen)\n\n\t\tconst boot = await this.Action('skill', 'boot').execute({ local: true })\n\n\t\tboot.meta?.kill()\n\n\t\tEventStore.clearCache()\n\n\t\treturn { boot, skill, fqen, createResults: results }\n\t}\n\n\tprivate static async seedSkillAndInstallAtOrg(org: any, name: string) {\n\t\tconst skill = await this.getSkillFixture().seedDemoSkill({\n\t\t\tname,\n\t\t})\n\n\t\tawait this.getOrganizationFixture().installSkillAtOrganization(\n\t\t\tskill.id,\n\t\t\torg.id\n\t\t)\n\n\t\tconst client = await this.connectToApi({\n\t\t\tskillId: skill.id,\n\t\t\tapiKey: skill.apiKey,\n\t\t})\n\n\t\tconst eventStore = this.Store('event', {\n\t\t\tapiClientFactory: async () => {\n\t\t\t\treturn client\n\t\t\t},\n\t\t})\n\n\t\treturn { eventStore, skill }\n\t}\n}\n"],"file":"EventStore.test.js"}
|
|
@@ -0,0 +1,132 @@
|
|
|
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 _CommandService = _interopRequireDefault(require("../../services/CommandService"));
|
|
29
|
+
|
|
30
|
+
var _AbstractCliTest2 = _interopRequireDefault(require("../../tests/AbstractCliTest"));
|
|
31
|
+
|
|
32
|
+
var _dec, _class;
|
|
33
|
+
|
|
34
|
+
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); }; }
|
|
35
|
+
|
|
36
|
+
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; } }
|
|
37
|
+
|
|
38
|
+
var StoreFeatureTest = (_dec = (0, _test.test)(), (_class = /*#__PURE__*/function (_AbstractCliTest) {
|
|
39
|
+
(0, _inherits2["default"])(StoreFeatureTest, _AbstractCliTest);
|
|
40
|
+
|
|
41
|
+
var _super = _createSuper(StoreFeatureTest);
|
|
42
|
+
|
|
43
|
+
function StoreFeatureTest() {
|
|
44
|
+
(0, _classCallCheck2["default"])(this, StoreFeatureTest);
|
|
45
|
+
return _super.apply(this, arguments);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
(0, _createClass2["default"])(StoreFeatureTest, null, [{
|
|
49
|
+
key: "syncsOnWillExecute",
|
|
50
|
+
value: function () {
|
|
51
|
+
var _syncsOnWillExecute = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
|
|
52
|
+
var hitCount, emitter;
|
|
53
|
+
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
54
|
+
while (1) {
|
|
55
|
+
switch (_context2.prev = _context2.next) {
|
|
56
|
+
case 0:
|
|
57
|
+
_context2.next = 2;
|
|
58
|
+
return this.FeatureFixture().installCachedFeatures('stores');
|
|
59
|
+
|
|
60
|
+
case 2:
|
|
61
|
+
_CommandService["default"].setMockResponse(/yarn/, {
|
|
62
|
+
code: 0
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
hitCount = 0;
|
|
66
|
+
emitter = this.getEmitter();
|
|
67
|
+
_context2.next = 7;
|
|
68
|
+
return emitter.on('feature.will-execute', /*#__PURE__*/function () {
|
|
69
|
+
var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(_ref) {
|
|
70
|
+
var featureCode, actionCode;
|
|
71
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
72
|
+
while (1) {
|
|
73
|
+
switch (_context.prev = _context.next) {
|
|
74
|
+
case 0:
|
|
75
|
+
featureCode = _ref.featureCode, actionCode = _ref.actionCode;
|
|
76
|
+
|
|
77
|
+
if (featureCode === 'store' && actionCode === 'sync') {
|
|
78
|
+
hitCount++;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
case 2:
|
|
82
|
+
case "end":
|
|
83
|
+
return _context.stop();
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}, _callee);
|
|
87
|
+
}));
|
|
88
|
+
|
|
89
|
+
return function (_x) {
|
|
90
|
+
return _ref2.apply(this, arguments);
|
|
91
|
+
};
|
|
92
|
+
}());
|
|
93
|
+
|
|
94
|
+
case 7:
|
|
95
|
+
_context2.next = 9;
|
|
96
|
+
return emitter.emit('feature.will-execute', {
|
|
97
|
+
featureCode: 'node',
|
|
98
|
+
actionCode: 'upgrade'
|
|
99
|
+
});
|
|
100
|
+
|
|
101
|
+
case 9:
|
|
102
|
+
_test.assert.isEqual(hitCount, 1);
|
|
103
|
+
|
|
104
|
+
_context2.next = 12;
|
|
105
|
+
return emitter.emit('feature.did-execute', {
|
|
106
|
+
featureCode: 'node',
|
|
107
|
+
actionCode: 'upgrade',
|
|
108
|
+
results: {}
|
|
109
|
+
});
|
|
110
|
+
|
|
111
|
+
case 12:
|
|
112
|
+
_test.assert.isEqual(hitCount, 1);
|
|
113
|
+
|
|
114
|
+
case 13:
|
|
115
|
+
case "end":
|
|
116
|
+
return _context2.stop();
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}, _callee2, this);
|
|
120
|
+
}));
|
|
121
|
+
|
|
122
|
+
function syncsOnWillExecute() {
|
|
123
|
+
return _syncsOnWillExecute.apply(this, arguments);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
return syncsOnWillExecute;
|
|
127
|
+
}()
|
|
128
|
+
}]);
|
|
129
|
+
return StoreFeatureTest;
|
|
130
|
+
}(_AbstractCliTest2["default"]), ((0, _applyDecoratedDescriptor2["default"])(_class, "syncsOnWillExecute", [_dec], Object.getOwnPropertyDescriptor(_class, "syncsOnWillExecute"), _class)), _class));
|
|
131
|
+
exports["default"] = StoreFeatureTest;
|
|
132
|
+
//# sourceMappingURL=StoreFeature.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/__tests__/implementation/StoreFeature.test.ts"],"names":["StoreFeatureTest","FeatureFixture","installCachedFeatures","CommandService","setMockResponse","code","hitCount","emitter","getEmitter","on","featureCode","actionCode","emit","assert","isEqual","results","AbstractCliTest"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;;;IAEqBA,gB,WACnB,iB;;;;;;;;;;;;;8GAAD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEO,KAAKC,cAAL,GAAsBC,qBAAtB,CAA4C,QAA5C,CAFP;;AAAA;AAICC,2CAAeC,eAAf,CAA+B,MAA/B,EAAuC;AACtCC,kBAAAA,IAAI,EAAE;AADgC,iBAAvC;;AAIIC,gBAAAA,QARL,GAQgB,CARhB;AASOC,gBAAAA,OATP,GASiB,KAAKC,UAAL,EATjB;AAAA;AAAA,uBAUOD,OAAO,CAACE,EAAR,CACL,sBADK;AAAA,4GAEL;AAAA;AAAA;AAAA;AAAA;AAAA;AAASC,4BAAAA,WAAT,QAASA,WAAT,EAAsBC,UAAtB,QAAsBA,UAAtB;;AACC,gCAAID,WAAW,KAAK,OAAhB,IAA2BC,UAAU,KAAK,MAA9C,EAAsD;AACrDL,8BAAAA,QAAQ;AACR;;AAHF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAFK;;AAAA;AAAA;AAAA;AAAA,oBAVP;;AAAA;AAAA;AAAA,uBAmBOC,OAAO,CAACK,IAAR,CAAa,sBAAb,EAAqC;AAC1CF,kBAAAA,WAAW,EAAE,MAD6B;AAE1CC,kBAAAA,UAAU,EAAE;AAF8B,iBAArC,CAnBP;;AAAA;AAwBCE,6BAAOC,OAAP,CAAeR,QAAf,EAAyB,CAAzB;;AAxBD;AAAA,uBA0BOC,OAAO,CAACK,IAAR,CAAa,qBAAb,EAAoC;AACzCF,kBAAAA,WAAW,EAAE,MAD4B;AAEzCC,kBAAAA,UAAU,EAAE,SAF6B;AAGzCI,kBAAAA,OAAO,EAAE;AAHgC,iBAApC,CA1BP;;AAAA;AAgCCF,6BAAOC,OAAP,CAAeR,QAAf,EAAyB,CAAzB;;AAhCD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;EAD6CU,4B","sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport CommandService from '../../services/CommandService'\nimport AbstractCliTest from '../../tests/AbstractCliTest'\n\nexport default class StoreFeatureTest extends AbstractCliTest {\n\t@test()\n\tprotected static async syncsOnWillExecute() {\n\t\tawait this.FeatureFixture().installCachedFeatures('stores')\n\n\t\tCommandService.setMockResponse(/yarn/, {\n\t\t\tcode: 0,\n\t\t})\n\n\t\tlet hitCount = 0\n\t\tconst emitter = this.getEmitter()\n\t\tawait emitter.on(\n\t\t\t'feature.will-execute',\n\t\t\tasync ({ featureCode, actionCode }) => {\n\t\t\t\tif (featureCode === 'store' && actionCode === 'sync') {\n\t\t\t\t\thitCount++\n\t\t\t\t}\n\t\t\t}\n\t\t)\n\n\t\tawait emitter.emit('feature.will-execute', {\n\t\t\tfeatureCode: 'node',\n\t\t\tactionCode: 'upgrade',\n\t\t})\n\n\t\tassert.isEqual(hitCount, 1)\n\n\t\tawait emitter.emit('feature.did-execute', {\n\t\t\tfeatureCode: 'node',\n\t\t\tactionCode: 'upgrade',\n\t\t\tresults: {},\n\t\t})\n\n\t\tassert.isEqual(hitCount, 1)\n\t}\n}\n"],"file":"StoreFeature.test.js"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { FileDescription } from '../../types/cli.types';
|
|
2
2
|
import AbstractFeature, { FeatureDependency, FeatureOptions } from '../AbstractFeature';
|
|
3
|
-
import { FeatureCode } from '../features.types';
|
|
3
|
+
import { FeatureActionResponse, FeatureCode } from '../features.types';
|
|
4
4
|
import EventContractBuilder from './builders/EventContractBuilder';
|
|
5
5
|
declare module '../../features/features.types' {
|
|
6
6
|
interface FeatureMap {
|
|
@@ -23,7 +23,7 @@ export default class EventFeature extends AbstractFeature {
|
|
|
23
23
|
private contractBuilder?;
|
|
24
24
|
private initiatingAction?;
|
|
25
25
|
constructor(options: FeatureOptions);
|
|
26
|
-
afterPackageInstall(): Promise<
|
|
26
|
+
afterPackageInstall(): Promise<FeatureActionResponse>;
|
|
27
27
|
private handleWillExecute;
|
|
28
28
|
private handleDidExecute;
|
|
29
29
|
private combineCodes;
|
|
@@ -31,6 +31,8 @@ var _syncEventOptions = _interopRequireDefault(require("../../.spruce/schemas/sp
|
|
|
31
31
|
|
|
32
32
|
var _TerminalInterface = _interopRequireDefault(require("../../interfaces/TerminalInterface"));
|
|
33
33
|
|
|
34
|
+
var _action = _interopRequireDefault(require("../../utilities/action.utility"));
|
|
35
|
+
|
|
34
36
|
var _AbstractFeature2 = _interopRequireDefault(require("../AbstractFeature"));
|
|
35
37
|
|
|
36
38
|
var _EventContractBuilder = _interopRequireDefault(require("./builders/EventContractBuilder"));
|
|
@@ -83,15 +85,34 @@ var EventFeature = /*#__PURE__*/function (_AbstractFeature) {
|
|
|
83
85
|
key: "afterPackageInstall",
|
|
84
86
|
value: function () {
|
|
85
87
|
var _afterPackageInstall = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
88
|
+
var isSkillInstalled;
|
|
86
89
|
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
87
90
|
while (1) {
|
|
88
91
|
switch (_context.prev = _context.next) {
|
|
89
92
|
case 0:
|
|
90
93
|
_spruceSkillUtils.diskUtil.createDir(_spruceSkillUtils.diskUtil.resolvePath(this.cwd, 'src', 'events'));
|
|
91
94
|
|
|
95
|
+
_context.next = 3;
|
|
96
|
+
return this.featureInstaller.isInstalled('skill');
|
|
97
|
+
|
|
98
|
+
case 3:
|
|
99
|
+
isSkillInstalled = _context.sent;
|
|
100
|
+
|
|
101
|
+
if (!isSkillInstalled) {
|
|
102
|
+
_context.next = 8;
|
|
103
|
+
break;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
_context.next = 7;
|
|
107
|
+
return this.Action('event', 'sync.listeners').execute({});
|
|
108
|
+
|
|
109
|
+
case 7:
|
|
110
|
+
return _context.abrupt("return", _context.sent);
|
|
111
|
+
|
|
112
|
+
case 8:
|
|
92
113
|
return _context.abrupt("return", {});
|
|
93
114
|
|
|
94
|
-
case
|
|
115
|
+
case 9:
|
|
95
116
|
case "end":
|
|
96
117
|
return _context.stop();
|
|
97
118
|
}
|
|
@@ -109,12 +130,13 @@ var EventFeature = /*#__PURE__*/function (_AbstractFeature) {
|
|
|
109
130
|
key: "handleWillExecute",
|
|
110
131
|
value: function () {
|
|
111
132
|
var _handleWillExecute = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(payload) {
|
|
112
|
-
var featureCode, actionCode, combined, isInstalled,
|
|
133
|
+
var featureCode, actionCode, results, combined, settings, isInstalled, remoteResults, syncResults;
|
|
113
134
|
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
114
135
|
while (1) {
|
|
115
136
|
switch (_context2.prev = _context2.next) {
|
|
116
137
|
case 0:
|
|
117
138
|
featureCode = payload.featureCode, actionCode = payload.actionCode;
|
|
139
|
+
results = {};
|
|
118
140
|
|
|
119
141
|
if (!this.initiatingAction) {
|
|
120
142
|
_EventStore["default"].clearCache();
|
|
@@ -123,28 +145,46 @@ var EventFeature = /*#__PURE__*/function (_AbstractFeature) {
|
|
|
123
145
|
this.initiatingAction = combined;
|
|
124
146
|
}
|
|
125
147
|
|
|
126
|
-
_context2.next = 4;
|
|
127
|
-
return this.featureInstaller.isInstalled('event');
|
|
128
|
-
|
|
129
|
-
case 4:
|
|
130
|
-
isInstalled = _context2.sent;
|
|
131
|
-
|
|
132
148
|
if (featureCode === 'node' || featureCode === 'upgrade') {
|
|
133
149
|
settings = this.Service('eventSettings');
|
|
134
150
|
settings.clearListenerCache();
|
|
135
151
|
}
|
|
136
152
|
|
|
153
|
+
_context2.next = 6;
|
|
154
|
+
return this.featureInstaller.isInstalled('event');
|
|
155
|
+
|
|
156
|
+
case 6:
|
|
157
|
+
isInstalled = _context2.sent;
|
|
158
|
+
|
|
137
159
|
if (!(isInstalled && (featureCode === 'event' || featureCode === 'eventContract' || actionCode === 'login') && actionCode !== 'setRemote')) {
|
|
138
|
-
_context2.next =
|
|
160
|
+
_context2.next = 12;
|
|
139
161
|
break;
|
|
140
162
|
}
|
|
141
163
|
|
|
142
|
-
|
|
164
|
+
_context2.next = 10;
|
|
165
|
+
return this.appendRemoteToResultsOrPrompt();
|
|
143
166
|
|
|
144
|
-
case
|
|
145
|
-
|
|
167
|
+
case 10:
|
|
168
|
+
remoteResults = _context2.sent;
|
|
169
|
+
results = _action["default"].mergeActionResults(results, remoteResults);
|
|
146
170
|
|
|
147
|
-
case
|
|
171
|
+
case 12:
|
|
172
|
+
if (!(featureCode === 'node' && actionCode === 'upgrade' && isInstalled)) {
|
|
173
|
+
_context2.next = 17;
|
|
174
|
+
break;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
_context2.next = 15;
|
|
178
|
+
return this.Action('event', 'sync.listeners').execute({});
|
|
179
|
+
|
|
180
|
+
case 15:
|
|
181
|
+
syncResults = _context2.sent;
|
|
182
|
+
results = _action["default"].mergeActionResults(results, syncResults);
|
|
183
|
+
|
|
184
|
+
case 17:
|
|
185
|
+
return _context2.abrupt("return", results);
|
|
186
|
+
|
|
187
|
+
case 18:
|
|
148
188
|
case "end":
|
|
149
189
|
return _context2.stop();
|
|
150
190
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/features/event/EventFeature.ts"],"names":["EventFeature","options","code","isRequired","name","diskUtil","resolvePath","__dirname","emitter","on","handleDidFetchSchemas","bind","handleWillExecute","handleDidExecute","createDir","cwd","payload","featureCode","actionCode","initiatingAction","EventStore","clearCache","combined","combineCodes","featureInstaller","isInstalled","settings","Service","clearListenerCache","appendRemoteToResultsOrPrompt","results","Action","execute","remote","r","getRemote","TerminalInterface","doesSupportColor","Error","ui","stopLoading","renderLine","summaryLines","getHost","lastSync","getLastSyncOptions","writer","getEventContractBuilder","fetchContractsAndGenerateUniqueSchemas","schemas","shouldSyncOnlyCoreEvents","uniqueSchemas","contractBuilder","EventContractBuilder","optionsSchema","syncEventActionSchema","eventGenerator","Writer","eventStore","Store","skillStore","dependencyService","doesHashSprucePathExist","hasCombinedContractBeenWritten","AbstractFeature"],"mappings":"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","sourcesContent":["import { Schema } from '@sprucelabs/schema'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport syncEventActionSchema from '#spruce/schemas/spruceCli/v2020_07_22/syncEventOptions.schema'\nimport TerminalInterface from '../../interfaces/TerminalInterface'\nimport { FileDescription } from '../../types/cli.types'\nimport AbstractFeature, {\n\tFeatureDependency,\n\tFeatureOptions,\n} from '../AbstractFeature'\nimport { FeatureActionResponse, FeatureCode } from '../features.types'\nimport EventContractBuilder from './builders/EventContractBuilder'\nimport EventStore from './stores/EventStore'\n\ndeclare module '../../features/features.types' {\n\tinterface FeatureMap {\n\t\tevent: EventFeature\n\t}\n\n\tinterface FeatureOptionsMap {\n\t\tevent: undefined\n\t}\n}\n\nexport default class EventFeature extends AbstractFeature {\n\tpublic code: FeatureCode = 'event'\n\tpublic nameReadable = 'Events'\n\tpublic description = 'Connect to the Mercury Event Engine.'\n\tpublic dependencies: FeatureDependency[] = [\n\t\t{ code: 'schema', isRequired: true },\n\t]\n\tpublic packageDependencies = [\n\t\t{\n\t\t\tname: '@sprucelabs/mercury-client',\n\t\t},\n\t\t{\n\t\t\tname: '@sprucelabs/mercury-types',\n\t\t},\n\t\t{\n\t\t\tname: '@sprucelabs/spruce-event-utils',\n\t\t},\n\t\t{\n\t\t\tname: '@sprucelabs/spruce-event-plugin',\n\t\t},\n\t\t{\n\t\t\tname: '@sprucelabs/mercury-core-events',\n\t\t},\n\t]\n\n\tpublic actionsDir = diskUtil.resolvePath(__dirname, 'actions')\n\n\tpublic readonly fileDescriptions: FileDescription[] = []\n\tprivate contractBuilder?: EventContractBuilder\n\tprivate initiatingAction?: string\n\n\tpublic constructor(options: FeatureOptions) {\n\t\tsuper(options)\n\n\t\tvoid this.emitter.on(\n\t\t\t'schema.did-fetch-schemas',\n\t\t\tthis.handleDidFetchSchemas.bind(this)\n\t\t)\n\n\t\tvoid this.emitter.on(\n\t\t\t'feature.will-execute',\n\t\t\tthis.handleWillExecute.bind(this)\n\t\t)\n\n\t\tvoid this.emitter.on(\n\t\t\t'feature.did-execute',\n\t\t\tthis.handleDidExecute.bind(this)\n\t\t)\n\t}\n\n\tpublic async afterPackageInstall() {\n\t\tdiskUtil.createDir(diskUtil.resolvePath(this.cwd, 'src', 'events'))\n\t\treturn {}\n\t}\n\n\tprivate async handleWillExecute(payload: {\n\t\tfeatureCode: string\n\t\tactionCode: string\n\t}): Promise<FeatureActionResponse> {\n\t\tconst { featureCode, actionCode } = payload\n\n\t\tif (!this.initiatingAction) {\n\t\t\tEventStore.clearCache()\n\t\t\tconst combined = this.combineCodes(featureCode, actionCode)\n\t\t\tthis.initiatingAction = combined\n\t\t}\n\n\t\tconst isInstalled = await this.featureInstaller.isInstalled('event')\n\n\t\tif (featureCode === 'node' || featureCode === 'upgrade') {\n\t\t\tconst settings = this.Service('eventSettings')\n\t\t\tsettings.clearListenerCache()\n\t\t}\n\n\t\tif (\n\t\t\tisInstalled &&\n\t\t\t(featureCode === 'event' ||\n\t\t\t\tfeatureCode === 'eventContract' ||\n\t\t\t\tactionCode === 'login') &&\n\t\t\tactionCode !== 'setRemote'\n\t\t) {\n\t\t\treturn this.appendRemoteToResultsOrPrompt()\n\t\t}\n\n\t\treturn {}\n\t}\n\n\tprivate async handleDidExecute(payload: {\n\t\tfeatureCode: string\n\t\tactionCode: string\n\t}) {\n\t\tconst { featureCode, actionCode } = payload\n\t\tconst isInstalled = await this.featureInstaller.isInstalled('event')\n\n\t\tlet results = {}\n\n\t\tif (isInstalled && featureCode === 'node' && actionCode === 'upgrade') {\n\t\t\tresults = this.Action('event', 'sync').execute({})\n\t\t}\n\n\t\tif (this.initiatingAction === this.combineCodes(featureCode, actionCode)) {\n\t\t\tEventStore.clearCache()\n\t\t}\n\n\t\treturn results\n\t}\n\n\tprivate combineCodes(featureCode: string, actionCode: string) {\n\t\treturn `${featureCode}.${actionCode}`\n\t}\n\n\tprivate async appendRemoteToResultsOrPrompt(): Promise<FeatureActionResponse> {\n\t\tconst remote = this.Service('remote')\n\t\tconst r = remote.getRemote()\n\n\t\tif (!r) {\n\t\t\tif (!TerminalInterface.doesSupportColor()) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Dang! I couldn't find env.HOST. Once that is set, lets try again!`\n\t\t\t\t)\n\t\t\t}\n\n\t\t\tthis.ui.stopLoading()\n\t\t\tthis.ui.renderLine(\n\t\t\t\t`Uh oh! It looks like you haven't configured your remote! We gotta do that.`\n\t\t\t)\n\n\t\t\tconst results = await this.Action('event', 'setRemote').execute({})\n\n\t\t\treturn results\n\t\t} else {\n\t\t\treturn {\n\t\t\t\tsummaryLines: [`Remote: ${r}`, `Host: ${remote.getHost()}`],\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate async handleDidFetchSchemas(payload: { schemas?: Schema[] | null }) {\n\t\tconst isInstalled = await this.featureInstaller.isInstalled(this.code)\n\n\t\tconst lastSync = this.Service('eventSettings').getLastSyncOptions()\n\n\t\tif (lastSync && isInstalled) {\n\t\t\tconst writer = this.getEventContractBuilder()\n\n\t\t\tconst uniqueSchemas = await writer.fetchContractsAndGenerateUniqueSchemas(\n\t\t\t\tpayload.schemas ?? [],\n\t\t\t\tlastSync.shouldSyncOnlyCoreEvents\n\t\t\t)\n\n\t\t\treturn {\n\t\t\t\tschemas: uniqueSchemas.schemas ?? [],\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tschemas: [],\n\t\t}\n\t}\n\n\tpublic getEventContractBuilder() {\n\t\tif (!this.contractBuilder) {\n\t\t\tthis.contractBuilder = new EventContractBuilder({\n\t\t\t\tcwd: this.cwd,\n\t\t\t\toptionsSchema: syncEventActionSchema,\n\t\t\t\tui: this.ui,\n\t\t\t\teventGenerator: this.Writer('event'),\n\t\t\t\teventStore: this.Store('event'),\n\t\t\t\tskillStore: this.Store('skill'),\n\t\t\t\tdependencyService: this.Service('dependency'),\n\t\t\t})\n\t\t}\n\n\t\treturn this.contractBuilder\n\t}\n\n\tpublic hasBeenSynced() {\n\t\tif (diskUtil.doesHashSprucePathExist(this.cwd)) {\n\t\t\tconst writer = this.Writer('event')\n\n\t\t\treturn writer.hasCombinedContractBeenWritten(this.cwd)\n\t\t}\n\n\t\treturn false\n\t}\n}\n"],"file":"EventFeature.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/features/event/EventFeature.ts"],"names":["EventFeature","options","code","isRequired","name","diskUtil","resolvePath","__dirname","emitter","on","handleDidFetchSchemas","bind","handleWillExecute","handleDidExecute","createDir","cwd","featureInstaller","isInstalled","isSkillInstalled","Action","execute","payload","featureCode","actionCode","results","initiatingAction","EventStore","clearCache","combined","combineCodes","settings","Service","clearListenerCache","appendRemoteToResultsOrPrompt","remoteResults","actionUtil","mergeActionResults","syncResults","remote","r","getRemote","TerminalInterface","doesSupportColor","Error","ui","stopLoading","renderLine","summaryLines","getHost","lastSync","getLastSyncOptions","writer","getEventContractBuilder","fetchContractsAndGenerateUniqueSchemas","schemas","shouldSyncOnlyCoreEvents","uniqueSchemas","contractBuilder","EventContractBuilder","optionsSchema","syncEventActionSchema","eventGenerator","Writer","eventStore","Store","skillStore","dependencyService","doesHashSprucePathExist","hasCombinedContractBeenWritten","AbstractFeature"],"mappings":"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","sourcesContent":["import { Schema } from '@sprucelabs/schema'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport syncEventActionSchema from '#spruce/schemas/spruceCli/v2020_07_22/syncEventOptions.schema'\nimport TerminalInterface from '../../interfaces/TerminalInterface'\nimport { FileDescription } from '../../types/cli.types'\nimport actionUtil from '../../utilities/action.utility'\nimport AbstractFeature, {\n\tFeatureDependency,\n\tFeatureOptions,\n} from '../AbstractFeature'\nimport { FeatureActionResponse, FeatureCode } from '../features.types'\nimport EventContractBuilder from './builders/EventContractBuilder'\nimport EventStore from './stores/EventStore'\n\ndeclare module '../../features/features.types' {\n\tinterface FeatureMap {\n\t\tevent: EventFeature\n\t}\n\n\tinterface FeatureOptionsMap {\n\t\tevent: undefined\n\t}\n}\n\nexport default class EventFeature extends AbstractFeature {\n\tpublic code: FeatureCode = 'event'\n\tpublic nameReadable = 'Events'\n\tpublic description = 'Connect to the Mercury Event Engine.'\n\tpublic dependencies: FeatureDependency[] = [\n\t\t{ code: 'schema', isRequired: true },\n\t]\n\tpublic packageDependencies = [\n\t\t{\n\t\t\tname: '@sprucelabs/mercury-client',\n\t\t},\n\t\t{\n\t\t\tname: '@sprucelabs/mercury-types',\n\t\t},\n\t\t{\n\t\t\tname: '@sprucelabs/spruce-event-utils',\n\t\t},\n\t\t{\n\t\t\tname: '@sprucelabs/spruce-event-plugin',\n\t\t},\n\t\t{\n\t\t\tname: '@sprucelabs/mercury-core-events',\n\t\t},\n\t]\n\n\tpublic actionsDir = diskUtil.resolvePath(__dirname, 'actions')\n\n\tpublic readonly fileDescriptions: FileDescription[] = []\n\tprivate contractBuilder?: EventContractBuilder\n\tprivate initiatingAction?: string\n\n\tpublic constructor(options: FeatureOptions) {\n\t\tsuper(options)\n\n\t\tvoid this.emitter.on(\n\t\t\t'schema.did-fetch-schemas',\n\t\t\tthis.handleDidFetchSchemas.bind(this)\n\t\t)\n\n\t\tvoid this.emitter.on(\n\t\t\t'feature.will-execute',\n\t\t\tthis.handleWillExecute.bind(this)\n\t\t)\n\n\t\tvoid this.emitter.on(\n\t\t\t'feature.did-execute',\n\t\t\tthis.handleDidExecute.bind(this)\n\t\t)\n\t}\n\n\tpublic async afterPackageInstall() {\n\t\tdiskUtil.createDir(diskUtil.resolvePath(this.cwd, 'src', 'events'))\n\t\tconst isSkillInstalled = await this.featureInstaller.isInstalled('skill')\n\t\tif (isSkillInstalled) {\n\t\t\treturn await this.Action('event', 'sync.listeners').execute({})\n\t\t}\n\n\t\treturn {}\n\t}\n\n\tprivate async handleWillExecute(payload: {\n\t\tfeatureCode: string\n\t\tactionCode: string\n\t}): Promise<FeatureActionResponse> {\n\t\tconst { featureCode, actionCode } = payload\n\n\t\tlet results: FeatureActionResponse = {}\n\n\t\tif (!this.initiatingAction) {\n\t\t\tEventStore.clearCache()\n\t\t\tconst combined = this.combineCodes(featureCode, actionCode)\n\t\t\tthis.initiatingAction = combined\n\t\t}\n\n\t\tif (featureCode === 'node' || featureCode === 'upgrade') {\n\t\t\tconst settings = this.Service('eventSettings')\n\t\t\tsettings.clearListenerCache()\n\t\t}\n\n\t\tconst isInstalled = await this.featureInstaller.isInstalled('event')\n\n\t\tif (\n\t\t\tisInstalled &&\n\t\t\t(featureCode === 'event' ||\n\t\t\t\tfeatureCode === 'eventContract' ||\n\t\t\t\tactionCode === 'login') &&\n\t\t\tactionCode !== 'setRemote'\n\t\t) {\n\t\t\tconst remoteResults = await this.appendRemoteToResultsOrPrompt()\n\n\t\t\tresults = actionUtil.mergeActionResults(results, remoteResults)\n\t\t}\n\n\t\tif (featureCode === 'node' && actionCode === 'upgrade' && isInstalled) {\n\t\t\tconst syncResults = await this.Action('event', 'sync.listeners').execute(\n\t\t\t\t{}\n\t\t\t)\n\t\t\tresults = actionUtil.mergeActionResults(results, syncResults)\n\t\t}\n\n\t\treturn results\n\t}\n\n\tprivate async handleDidExecute(payload: {\n\t\tfeatureCode: string\n\t\tactionCode: string\n\t}) {\n\t\tconst { featureCode, actionCode } = payload\n\t\tconst isInstalled = await this.featureInstaller.isInstalled('event')\n\n\t\tlet results = {}\n\n\t\tif (isInstalled && featureCode === 'node' && actionCode === 'upgrade') {\n\t\t\tresults = this.Action('event', 'sync').execute({})\n\t\t}\n\n\t\tif (this.initiatingAction === this.combineCodes(featureCode, actionCode)) {\n\t\t\tEventStore.clearCache()\n\t\t}\n\n\t\treturn results\n\t}\n\n\tprivate combineCodes(featureCode: string, actionCode: string) {\n\t\treturn `${featureCode}.${actionCode}`\n\t}\n\n\tprivate async appendRemoteToResultsOrPrompt(): Promise<FeatureActionResponse> {\n\t\tconst remote = this.Service('remote')\n\t\tconst r = remote.getRemote()\n\n\t\tif (!r) {\n\t\t\tif (!TerminalInterface.doesSupportColor()) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Dang! I couldn't find env.HOST. Once that is set, lets try again!`\n\t\t\t\t)\n\t\t\t}\n\n\t\t\tthis.ui.stopLoading()\n\t\t\tthis.ui.renderLine(\n\t\t\t\t`Uh oh! It looks like you haven't configured your remote! We gotta do that.`\n\t\t\t)\n\n\t\t\tconst results = await this.Action('event', 'setRemote').execute({})\n\n\t\t\treturn results\n\t\t} else {\n\t\t\treturn {\n\t\t\t\tsummaryLines: [`Remote: ${r}`, `Host: ${remote.getHost()}`],\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate async handleDidFetchSchemas(payload: { schemas?: Schema[] | null }) {\n\t\tconst isInstalled = await this.featureInstaller.isInstalled(this.code)\n\n\t\tconst lastSync = this.Service('eventSettings').getLastSyncOptions()\n\n\t\tif (lastSync && isInstalled) {\n\t\t\tconst writer = this.getEventContractBuilder()\n\n\t\t\tconst uniqueSchemas = await writer.fetchContractsAndGenerateUniqueSchemas(\n\t\t\t\tpayload.schemas ?? [],\n\t\t\t\tlastSync.shouldSyncOnlyCoreEvents\n\t\t\t)\n\n\t\t\treturn {\n\t\t\t\tschemas: uniqueSchemas.schemas ?? [],\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tschemas: [],\n\t\t}\n\t}\n\n\tpublic getEventContractBuilder() {\n\t\tif (!this.contractBuilder) {\n\t\t\tthis.contractBuilder = new EventContractBuilder({\n\t\t\t\tcwd: this.cwd,\n\t\t\t\toptionsSchema: syncEventActionSchema,\n\t\t\t\tui: this.ui,\n\t\t\t\teventGenerator: this.Writer('event'),\n\t\t\t\teventStore: this.Store('event'),\n\t\t\t\tskillStore: this.Store('skill'),\n\t\t\t\tdependencyService: this.Service('dependency'),\n\t\t\t})\n\t\t}\n\n\t\treturn this.contractBuilder\n\t}\n\n\tpublic hasBeenSynced() {\n\t\tif (diskUtil.doesHashSprucePathExist(this.cwd)) {\n\t\t\tconst writer = this.Writer('event')\n\n\t\t\treturn writer.hasCombinedContractBeenWritten(this.cwd)\n\t\t}\n\n\t\treturn false\n\t}\n}\n"],"file":"EventFeature.js"}
|
|
@@ -7,6 +7,7 @@ export default class ListenAction extends AbstractAction<OptionsSchema> {
|
|
|
7
7
|
invocationMessage: string;
|
|
8
8
|
commandAliases: string[];
|
|
9
9
|
execute(options: SpruceSchemas.SpruceCli.v2020_07_22.ListenEventOptions): Promise<FeatureActionResponse>;
|
|
10
|
+
private syncListeners;
|
|
10
11
|
private collectEvent;
|
|
11
12
|
private collectNamespace;
|
|
12
13
|
private mapContractsToSelectChoices;
|
|
@@ -84,7 +84,7 @@ var ListenAction = /*#__PURE__*/function (_AbstractAction) {
|
|
|
84
84
|
var _execute = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(options) {
|
|
85
85
|
var _this2 = this;
|
|
86
86
|
|
|
87
|
-
var normalizedOptions, response, listenerDestinationDir, versionOptions, eventName, namespace, schemaTypesLookupDir, contractDestinationDir, eventStore, skill, namespacesForFetch, _ref, contracts, _this$mapContractsToS, eventChoicesByNamespace, fqen, _eventNameUtil$split, version, isValidEvent, resolvedDestination, resolvedVersion, resolvedSchemaTypesLookupDir, isSkillEvent, emitPayloadSchemaTemplateItem, responsePayloadSchemaTemplateItem, builder, templateItems,
|
|
87
|
+
var normalizedOptions, response, listenerDestinationDir, versionOptions, eventName, namespace, schemaTypesLookupDir, contractDestinationDir, eventStore, skill, namespacesForFetch, _ref, contracts, _this$mapContractsToS, eventChoicesByNamespace, fqen, _eventNameUtil$split, version, isValidEvent, resolvedDestination, resolvedVersion, resolvedSchemaTypesLookupDir, isSkillEvent, emitPayloadSchemaTemplateItem, responsePayloadSchemaTemplateItem, builder, templateItems, writer, syncResults, syncOptions, _syncResults;
|
|
88
88
|
|
|
89
89
|
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
90
90
|
while (1) {
|
|
@@ -221,9 +221,9 @@ var ListenAction = /*#__PURE__*/function (_AbstractAction) {
|
|
|
221
221
|
responsePayloadSchemaTemplateItem = templateItems.responsePayloadSchemaTemplateItem;
|
|
222
222
|
}
|
|
223
223
|
|
|
224
|
-
|
|
224
|
+
writer = this.Writer('event');
|
|
225
225
|
_context.next = 48;
|
|
226
|
-
return
|
|
226
|
+
return writer.writeListener(resolvedDestination, _objectSpread(_objectSpread({}, normalizedOptions), {}, {
|
|
227
227
|
version: resolvedVersion,
|
|
228
228
|
eventName: eventName,
|
|
229
229
|
eventNamespace: namespace,
|
|
@@ -239,38 +239,43 @@ var ListenAction = /*#__PURE__*/function (_AbstractAction) {
|
|
|
239
239
|
}));
|
|
240
240
|
|
|
241
241
|
case 48:
|
|
242
|
-
|
|
243
|
-
|
|
242
|
+
response.files = _context.sent;
|
|
243
|
+
_context.next = 51;
|
|
244
|
+
return this.syncListeners();
|
|
245
|
+
|
|
246
|
+
case 51:
|
|
247
|
+
syncResults = _context.sent;
|
|
248
|
+
response = _action["default"].mergeActionResults(syncResults, response);
|
|
244
249
|
|
|
245
250
|
if (!isSkillEvent) {
|
|
246
|
-
_context.next =
|
|
251
|
+
_context.next = 59;
|
|
247
252
|
break;
|
|
248
253
|
}
|
|
249
254
|
|
|
250
255
|
syncOptions = (0, _schema.normalizeSchemaValues)(_syncEventOptions["default"], options);
|
|
251
|
-
_context.next =
|
|
256
|
+
_context.next = 57;
|
|
252
257
|
return this.Action('event', 'sync').execute(syncOptions);
|
|
253
258
|
|
|
254
|
-
case
|
|
255
|
-
|
|
256
|
-
response = _action["default"].mergeActionResults(
|
|
259
|
+
case 57:
|
|
260
|
+
_syncResults = _context.sent;
|
|
261
|
+
response = _action["default"].mergeActionResults(_syncResults, response);
|
|
257
262
|
|
|
258
|
-
case
|
|
263
|
+
case 59:
|
|
259
264
|
return _context.abrupt("return", response);
|
|
260
265
|
|
|
261
|
-
case
|
|
262
|
-
_context.prev =
|
|
266
|
+
case 62:
|
|
267
|
+
_context.prev = 62;
|
|
263
268
|
_context.t1 = _context["catch"](1);
|
|
264
269
|
return _context.abrupt("return", {
|
|
265
270
|
errors: [_context.t1]
|
|
266
271
|
});
|
|
267
272
|
|
|
268
|
-
case
|
|
273
|
+
case 65:
|
|
269
274
|
case "end":
|
|
270
275
|
return _context.stop();
|
|
271
276
|
}
|
|
272
277
|
}
|
|
273
|
-
}, _callee, this, [[1,
|
|
278
|
+
}, _callee, this, [[1, 62]]);
|
|
274
279
|
}));
|
|
275
280
|
|
|
276
281
|
function execute(_x) {
|
|
@@ -280,16 +285,40 @@ var ListenAction = /*#__PURE__*/function (_AbstractAction) {
|
|
|
280
285
|
return execute;
|
|
281
286
|
}()
|
|
282
287
|
}, {
|
|
283
|
-
key: "
|
|
288
|
+
key: "syncListeners",
|
|
284
289
|
value: function () {
|
|
285
|
-
var
|
|
286
|
-
var eventChoices, eventName;
|
|
290
|
+
var _syncListeners = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
|
|
287
291
|
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
288
292
|
while (1) {
|
|
289
293
|
switch (_context2.prev = _context2.next) {
|
|
294
|
+
case 0:
|
|
295
|
+
return _context2.abrupt("return", this.Action('event', 'sync.listeners').execute({}));
|
|
296
|
+
|
|
297
|
+
case 1:
|
|
298
|
+
case "end":
|
|
299
|
+
return _context2.stop();
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
}, _callee2, this);
|
|
303
|
+
}));
|
|
304
|
+
|
|
305
|
+
function syncListeners() {
|
|
306
|
+
return _syncListeners.apply(this, arguments);
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
return syncListeners;
|
|
310
|
+
}()
|
|
311
|
+
}, {
|
|
312
|
+
key: "collectEvent",
|
|
313
|
+
value: function () {
|
|
314
|
+
var _collectEvent = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(contracts, namespace) {
|
|
315
|
+
var eventChoices, eventName;
|
|
316
|
+
return _regenerator["default"].wrap(function _callee3$(_context3) {
|
|
317
|
+
while (1) {
|
|
318
|
+
switch (_context3.prev = _context3.next) {
|
|
290
319
|
case 0:
|
|
291
320
|
eventChoices = this.mapContractsToSelectChoices(contracts).eventChoicesByNamespace[namespace];
|
|
292
|
-
|
|
321
|
+
_context3.next = 3;
|
|
293
322
|
return this.ui.prompt({
|
|
294
323
|
type: 'select',
|
|
295
324
|
label: 'Select an event',
|
|
@@ -300,15 +329,15 @@ var ListenAction = /*#__PURE__*/function (_AbstractAction) {
|
|
|
300
329
|
});
|
|
301
330
|
|
|
302
331
|
case 3:
|
|
303
|
-
eventName =
|
|
304
|
-
return
|
|
332
|
+
eventName = _context3.sent;
|
|
333
|
+
return _context3.abrupt("return", eventName);
|
|
305
334
|
|
|
306
335
|
case 5:
|
|
307
336
|
case "end":
|
|
308
|
-
return
|
|
337
|
+
return _context3.stop();
|
|
309
338
|
}
|
|
310
339
|
}
|
|
311
|
-
},
|
|
340
|
+
}, _callee3, this);
|
|
312
341
|
}));
|
|
313
342
|
|
|
314
343
|
function collectEvent(_x2, _x3) {
|
|
@@ -320,15 +349,15 @@ var ListenAction = /*#__PURE__*/function (_AbstractAction) {
|
|
|
320
349
|
}, {
|
|
321
350
|
key: "collectNamespace",
|
|
322
351
|
value: function () {
|
|
323
|
-
var _collectNamespace = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function
|
|
352
|
+
var _collectNamespace = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(contracts) {
|
|
324
353
|
var _this$mapContractsToS2, namespaceChoices, namespace;
|
|
325
354
|
|
|
326
|
-
return _regenerator["default"].wrap(function
|
|
355
|
+
return _regenerator["default"].wrap(function _callee4$(_context4) {
|
|
327
356
|
while (1) {
|
|
328
|
-
switch (
|
|
357
|
+
switch (_context4.prev = _context4.next) {
|
|
329
358
|
case 0:
|
|
330
359
|
_this$mapContractsToS2 = this.mapContractsToSelectChoices(contracts), namespaceChoices = _this$mapContractsToS2.namespaceChoices;
|
|
331
|
-
|
|
360
|
+
_context4.next = 3;
|
|
332
361
|
return this.ui.prompt({
|
|
333
362
|
type: 'select',
|
|
334
363
|
label: 'Select an event namespace',
|
|
@@ -339,15 +368,15 @@ var ListenAction = /*#__PURE__*/function (_AbstractAction) {
|
|
|
339
368
|
});
|
|
340
369
|
|
|
341
370
|
case 3:
|
|
342
|
-
namespace =
|
|
343
|
-
return
|
|
371
|
+
namespace = _context4.sent;
|
|
372
|
+
return _context4.abrupt("return", namespace);
|
|
344
373
|
|
|
345
374
|
case 5:
|
|
346
375
|
case "end":
|
|
347
|
-
return
|
|
376
|
+
return _context4.stop();
|
|
348
377
|
}
|
|
349
378
|
}
|
|
350
|
-
},
|
|
379
|
+
}, _callee4, this);
|
|
351
380
|
}));
|
|
352
381
|
|
|
353
382
|
function collectNamespace(_x4) {
|