@sprucelabs/spruce-cli 14.22.10 → 14.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/build/.spruce/events/appointments/didBookAppointments.v2021_06_23.contract.d.ts +10 -0
- package/build/.spruce/events/appointments/didBookAppointments.v2021_06_23.contract.js +24 -0
- package/build/.spruce/events/appointments/didBookAppointments.v2021_06_23.contract.js.map +1 -0
- package/build/.spruce/events/events.contract.d.ts +346 -36
- package/build/.spruce/events/events.contract.js +9 -1
- package/build/.spruce/events/events.contract.js.map +1 -1
- package/build/.spruce/events/forms/convertPdfToForm.v2021_07_02.contract.d.ts +20 -2
- package/build/.spruce/events/forms/convertPdfToForm.v2021_07_02.contract.js +23 -5
- package/build/.spruce/events/forms/convertPdfToForm.v2021_07_02.contract.js.map +1 -1
- package/build/.spruce/events/forms/convertPdfToSchemas.v2021_07_02.contract.d.ts +20 -2
- package/build/.spruce/events/forms/convertPdfToSchemas.v2021_07_02.contract.js +23 -5
- package/build/.spruce/events/forms/convertPdfToSchemas.v2021_07_02.contract.js.map +1 -1
- package/build/.spruce/events/forms/createForm.v2021_07_02.contract.d.ts +20 -2
- package/build/.spruce/events/forms/createForm.v2021_07_02.contract.js +23 -5
- package/build/.spruce/events/forms/createForm.v2021_07_02.contract.js.map +1 -1
- package/build/.spruce/events/forms/deleteCompletedForm.v2021_07_02.contract.d.ts +20 -2
- package/build/.spruce/events/forms/deleteCompletedForm.v2021_07_02.contract.js +23 -5
- package/build/.spruce/events/forms/deleteCompletedForm.v2021_07_02.contract.js.map +1 -1
- package/build/.spruce/events/forms/getCompletedForm.v2021_07_02.contract.d.ts +15 -0
- package/build/.spruce/events/forms/getCompletedForm.v2021_07_02.contract.js +17 -2
- package/build/.spruce/events/forms/getCompletedForm.v2021_07_02.contract.js.map +1 -1
- package/build/.spruce/events/forms/listCompletedForms.v2021_07_02.contract.d.ts +20 -3
- package/build/.spruce/events/forms/listCompletedForms.v2021_07_02.contract.js +23 -6
- package/build/.spruce/events/forms/listCompletedForms.v2021_07_02.contract.js.map +1 -1
- package/build/.spruce/events/forms/listForms.v2021_07_02.contract.d.ts +38 -4
- package/build/.spruce/events/forms/listForms.v2021_07_02.contract.js +45 -11
- package/build/.spruce/events/forms/listForms.v2021_07_02.contract.js.map +1 -1
- package/build/.spruce/events/heartwood/didRegisterSkillViews.v2021_02_11.contract.d.ts +15 -0
- package/build/.spruce/events/heartwood/didRegisterSkillViews.v2021_02_11.contract.js +17 -2
- package/build/.spruce/events/heartwood/didRegisterSkillViews.v2021_02_11.contract.js.map +1 -1
- package/build/.spruce/events/heartwood/generateUrl.v2021_02_11.contract.d.ts +21 -4
- package/build/.spruce/events/heartwood/generateUrl.v2021_02_11.contract.js +24 -7
- package/build/.spruce/events/heartwood/generateUrl.v2021_02_11.contract.js.map +1 -1
- package/build/.spruce/events/heartwood/getSkillViews.v2021_02_11.contract.d.ts +21 -1
- package/build/.spruce/events/heartwood/getSkillViews.v2021_02_11.contract.js +26 -6
- package/build/.spruce/events/heartwood/getSkillViews.v2021_02_11.contract.js.map +1 -1
- package/build/.spruce/events/mySkill163459634973936127/myCoolEvent.v2021_01_22.contract.d.ts +38 -0
- package/build/.spruce/events/mySkill163459634973936127/myCoolEvent.v2021_01_22.contract.js +48 -0
- package/build/.spruce/events/mySkill163459634973936127/myCoolEvent.v2021_01_22.contract.js.map +1 -0
- package/build/.spruce/events/mySkill163493473102035607/myCoolEvent.v2021_01_22.contract.d.ts +38 -0
- package/build/.spruce/events/mySkill163493473102035607/myCoolEvent.v2021_01_22.contract.js +48 -0
- package/build/.spruce/events/mySkill163493473102035607/myCoolEvent.v2021_01_22.contract.js.map +1 -0
- package/build/.spruce/events/mySkill163493479880935941/myCoolEvent.v2021_01_22.contract.d.ts +38 -0
- package/build/.spruce/events/mySkill163493479880935941/myCoolEvent.v2021_01_22.contract.js +48 -0
- package/build/.spruce/events/mySkill163493479880935941/myCoolEvent.v2021_01_22.contract.js.map +1 -0
- package/build/.spruce/schemas/appointments/v2021_06_23/appointments.schema.d.ts +3 -0
- package/build/.spruce/schemas/appointments/v2021_06_23/appointments.schema.js +28 -0
- package/build/.spruce/schemas/appointments/v2021_06_23/appointments.schema.js.map +1 -0
- package/build/.spruce/schemas/appointments/v2021_06_23/didBookAppointmentsEmitPayload.schema.d.ts +3 -0
- package/build/.spruce/schemas/appointments/v2021_06_23/didBookAppointmentsEmitPayload.schema.js +36 -0
- package/build/.spruce/schemas/appointments/v2021_06_23/didBookAppointmentsEmitPayload.schema.js.map +1 -0
- package/build/.spruce/schemas/appointments/v2021_06_23/didBookAppointmentsEmitTarget.schema.d.ts +3 -0
- package/build/.spruce/schemas/appointments/v2021_06_23/didBookAppointmentsEmitTarget.schema.js +28 -0
- package/build/.spruce/schemas/appointments/v2021_06_23/didBookAppointmentsEmitTarget.schema.js.map +1 -0
- package/build/.spruce/schemas/appointments/v2021_06_23/didBookAppointmentsEmitTargetAndPayload.schema.d.ts +3 -0
- package/build/.spruce/schemas/appointments/v2021_06_23/didBookAppointmentsEmitTargetAndPayload.schema.js +56 -0
- package/build/.spruce/schemas/appointments/v2021_06_23/didBookAppointmentsEmitTargetAndPayload.schema.js.map +1 -0
- package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitTargetAndPayload.schema.js +0 -10
- package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitTargetAndPayload.schema.js.map +1 -1
- package/build/.spruce/schemas/schemas.types.d.ts +678 -604
- package/build/.spruce/schemas/schemas.types.js.map +1 -1
- package/build/__tests__/behavioral/AddingADependency.test.d.ts +9 -0
- package/build/__tests__/behavioral/AddingADependency.test.js +273 -0
- package/build/__tests__/behavioral/AddingADependency.test.js.map +1 -0
- package/build/__tests__/behavioral/CreatingADataStore.test.js.map +1 -1
- package/build/__tests__/behavioral/ManagingDependencies.test.d.ts +9 -0
- package/build/__tests__/behavioral/ManagingDependencies.test.js +279 -0
- package/build/__tests__/behavioral/ManagingDependencies.test.js.map +1 -0
- package/build/__tests__/behavioral/SyncingEventsOnlyFromDependencies.test.d.ts +8 -0
- package/build/__tests__/behavioral/SyncingEventsOnlyFromDependencies.test.js +209 -0
- package/build/__tests__/behavioral/SyncingEventsOnlyFromDependencies.test.js.map +1 -0
- package/build/__tests__/behavioral/events/CreatingAListener.test.js +9 -5
- package/build/__tests__/behavioral/events/CreatingAListener.test.js.map +1 -1
- package/build/__tests__/behavioral/events/KeepingEventsInSync.test.js +14 -7
- package/build/__tests__/behavioral/events/KeepingEventsInSync.test.js.map +1 -1
- package/build/__tests__/behavioral/events/KeepingEventsInSync2.test.js +43 -12
- package/build/__tests__/behavioral/events/KeepingEventsInSync2.test.js.map +1 -1
- package/build/__tests__/behavioral/views/CreatingATheme.test.js +8 -2
- package/build/__tests__/behavioral/views/CreatingATheme.test.js.map +1 -1
- package/build/__tests__/behavioral/views/SettingUpViews.test.d.ts +1 -0
- package/build/__tests__/behavioral/views/SettingUpViews.test.js +48 -3
- package/build/__tests__/behavioral/views/SettingUpViews.test.js.map +1 -1
- package/build/__tests__/implementation/EventStore.test.js +4 -3
- package/build/__tests__/implementation/EventStore.test.js.map +1 -1
- package/build/__tests__/implementation/EventTemplateItemBuilder.test.d.ts +1 -0
- package/build/__tests__/implementation/EventTemplateItemBuilder.test.js +21 -3
- package/build/__tests__/implementation/EventTemplateItemBuilder.test.js.map +1 -1
- package/build/errors/SpruceError.js +2 -2
- package/build/errors/SpruceError.js.map +1 -1
- package/build/features/FeatureInstaller.d.ts +1 -1
- package/build/features/FeatureInstallerFactory.js +4 -2
- package/build/features/FeatureInstallerFactory.js.map +1 -1
- package/build/features/dependencies/DependencyFeature.d.ts +16 -0
- package/build/features/dependencies/DependencyFeature.js +92 -0
- package/build/features/dependencies/DependencyFeature.js.map +1 -0
- package/build/features/dependencies/actions/AddAction.d.ts +33 -0
- package/build/features/dependencies/actions/AddAction.js +154 -0
- package/build/features/dependencies/actions/AddAction.js.map +1 -0
- package/build/features/dependencies/actions/ManageAction.d.ts +19 -0
- package/build/features/dependencies/actions/ManageAction.js +161 -0
- package/build/features/dependencies/actions/ManageAction.js.map +1 -0
- package/build/features/event/EventFeature.js +2 -1
- package/build/features/event/EventFeature.js.map +1 -1
- package/build/features/event/builders/EventContractBuilder.d.ts +3 -0
- package/build/features/event/builders/EventContractBuilder.js +12 -8
- package/build/features/event/builders/EventContractBuilder.js.map +1 -1
- package/build/features/event/stores/EventStore.d.ts +2 -1
- package/build/features/event/stores/EventStore.js +33 -25
- package/build/features/event/stores/EventStore.js.map +1 -1
- package/build/features/schema/actions/SyncAction.js +4 -2
- package/build/features/schema/actions/SyncAction.js.map +1 -1
- package/build/features/skill/actions/RebuildAction.js.map +1 -1
- package/build/features/skill/stores/SkillStore.d.ts +4 -0
- package/build/features/skill/stores/SkillStore.js +39 -15
- package/build/features/skill/stores/SkillStore.js.map +1 -1
- package/build/features/view/ViewFeature.js +5 -1
- package/build/features/view/ViewFeature.js.map +1 -1
- package/build/interfaces/SpyInterface.d.ts +2 -1
- package/build/interfaces/SpyInterface.js +67 -7
- package/build/interfaces/SpyInterface.js.map +1 -1
- package/build/services/DependencyService.d.ts +13 -0
- package/build/services/DependencyService.js +49 -0
- package/build/services/DependencyService.js.map +1 -0
- package/build/services/ServiceFactory.d.ts +2 -0
- package/build/services/ServiceFactory.js +5 -0
- package/build/services/ServiceFactory.js.map +1 -1
- package/build/templateItemBuilders/EventTemplateItemBuilder.js +9 -0
- package/build/templateItemBuilders/EventTemplateItemBuilder.js.map +1 -1
- package/build/tests/AbstractCliTest.js +2 -36
- package/build/tests/AbstractCliTest.js.map +1 -1
- package/build/tests/fixtures/SkillFixture.d.ts +2 -0
- package/build/tests/fixtures/SkillFixture.js +8 -8
- package/build/tests/fixtures/SkillFixture.js.map +1 -1
- package/build/utilities/action.utility.js +1 -5
- package/build/utilities/action.utility.js.map +1 -1
- package/package.json +19 -19
- package/src/.spruce/events/appointments/didBookAppointments.v2021_06_23.contract.ts +15 -0
- package/src/.spruce/events/events.contract.ts +32 -8
- package/src/.spruce/events/forms/convertPdfToForm.v2021_07_02.contract.ts +20 -2
- package/src/.spruce/events/forms/convertPdfToSchemas.v2021_07_02.contract.ts +20 -2
- package/src/.spruce/events/forms/createForm.v2021_07_02.contract.ts +20 -2
- package/src/.spruce/events/forms/deleteCompletedForm.v2021_07_02.contract.ts +20 -2
- package/src/.spruce/events/forms/getCompletedForm.v2021_07_02.contract.ts +15 -0
- package/src/.spruce/events/forms/listCompletedForms.v2021_07_02.contract.ts +20 -3
- package/src/.spruce/events/forms/listForms.v2021_07_02.contract.ts +38 -4
- package/src/.spruce/events/heartwood/didRegisterSkillViews.v2021_02_11.contract.ts +15 -0
- package/src/.spruce/events/heartwood/generateUrl.v2021_02_11.contract.ts +21 -4
- package/src/.spruce/events/heartwood/getSkillViews.v2021_02_11.contract.ts +21 -1
- package/src/.spruce/events/mySkill163459634973936127/myCoolEvent.v2021_01_22.contract.ts +45 -0
- package/src/.spruce/events/mySkill163493473102035607/myCoolEvent.v2021_01_22.contract.ts +45 -0
- package/src/.spruce/events/mySkill163493479880935941/myCoolEvent.v2021_01_22.contract.ts +45 -0
- package/src/.spruce/schemas/appointments/v2021_06_23/appointments.schema.ts +22 -0
- package/src/.spruce/schemas/appointments/v2021_06_23/didBookAppointmentsEmitPayload.schema.ts +24 -0
- package/src/.spruce/schemas/appointments/v2021_06_23/didBookAppointmentsEmitTarget.schema.ts +22 -0
- package/src/.spruce/schemas/appointments/v2021_06_23/didBookAppointmentsEmitTargetAndPayload.schema.ts +36 -0
- package/src/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitTargetAndPayload.schema.ts +0 -6
- package/src/.spruce/schemas/schemas.types.ts +815 -720
- package/src/__tests__/behavioral/AddingADependency.test.ts +98 -0
- package/src/__tests__/behavioral/CreatingADataStore.test.ts +2 -0
- package/src/__tests__/behavioral/ManagingDependencies.test.ts +115 -0
- package/src/__tests__/behavioral/SyncingEventsOnlyFromDependencies.test.ts +70 -0
- package/src/__tests__/behavioral/events/CreatingAListener.test.ts +5 -0
- package/src/__tests__/behavioral/events/KeepingEventsInSync.test.ts +6 -0
- package/src/__tests__/behavioral/events/KeepingEventsInSync2.test.ts +27 -0
- package/src/__tests__/behavioral/views/CreatingATheme.test.ts +4 -0
- package/src/__tests__/behavioral/views/SettingUpViews.test.ts +23 -0
- package/src/__tests__/implementation/EventStore.test.ts +5 -2
- package/src/__tests__/implementation/EventTemplateItemBuilder.test.ts +20 -1
- package/src/errors/SpruceError.ts +1 -1
- package/src/features/FeatureInstallerFactory.ts +3 -0
- package/src/features/dependencies/DependencyFeature.ts +27 -0
- package/src/features/dependencies/actions/AddAction.ts +63 -0
- package/src/features/dependencies/actions/ManageAction.ts +84 -0
- package/src/features/event/EventFeature.ts +1 -0
- package/src/features/event/builders/EventContractBuilder.ts +9 -2
- package/src/features/event/stores/EventStore.ts +20 -11
- package/src/features/schema/actions/SyncAction.ts +6 -3
- package/src/features/skill/actions/RebuildAction.ts +2 -0
- package/src/features/skill/stores/SkillStore.ts +8 -1
- package/src/features/view/ViewFeature.ts +5 -0
- package/src/interfaces/SpyInterface.ts +29 -2
- package/src/services/DependencyService.ts +27 -0
- package/src/services/ServiceFactory.ts +6 -0
- package/src/templateItemBuilders/EventTemplateItemBuilder.ts +10 -0
- package/src/tests/AbstractCliTest.ts +1 -21
- package/src/tests/fixtures/SkillFixture.ts +6 -2
- package/src/utilities/action.utility.ts +1 -6
- package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitTarget.schema.d.ts +0 -3
- package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitTarget.schema.js +0 -28
- package/build/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitTarget.schema.js.map +0 -1
- package/src/.spruce/schemas/heartwood/v2021_02_11/registerSkillViewsEmitTarget.schema.ts +0 -22
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/features/dependencies/actions/ManageAction.ts"],"names":["optionsSchema","id","description","fields","DeployAction","Store","fetchMySkills","skills","sort","a","b","name1","name","toLowerCase","name2","dep","Service","dependencies","get","loadCurrentSkill","currentSkill","isRegistered","filter","s","ui","prompt","label","type","isArray","isRequired","value","map","d","options","choices","skill","slug","selected","summary","updatedDependencies","find","push","namespace","set","summaryLines","length","AbstractAction"],"mappings":"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","sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\n\nconst optionsSchema = buildSchema({\n\tid: 'manageDependencies',\n\tdescription: 'Manage the skills you depend on.',\n\tfields: {},\n})\n\ntype OptionsSchema = typeof optionsSchema\n\nexport default class DeployAction extends AbstractAction<OptionsSchema> {\n\tpublic optionsSchema = optionsSchema\n\tpublic commandAliases = [\n\t\t'manage.dependencies',\n\t\t'remove.dependency',\n\t\t'dependencies',\n\t]\n\tpublic invocationMessage = 'Managing dependencies... 🔗'\n\n\tpublic async execute(): Promise<FeatureActionResponse> {\n\t\tlet skills = await this.Store('skill').fetchMySkills()\n\t\tskills.sort((a, b) => {\n\t\t\tconst name1 = a.name.toLowerCase()\n\t\t\tconst name2 = b.name.toLowerCase()\n\n\t\t\tif (name1 < name2) {\n\t\t\t\treturn -1\n\t\t\t} else if (name1 > name2) {\n\t\t\t\treturn 1\n\t\t\t}\n\n\t\t\treturn 0\n\t\t})\n\n\t\tconst dep = this.Service('dependency')\n\t\tconst dependencies = dep.get()\n\n\t\tconst currentSkill = await this.Store('skill').loadCurrentSkill()\n\n\t\tif (currentSkill.isRegistered) {\n\t\t\tskills = skills.filter((s) => s.id !== currentSkill.id)\n\t\t}\n\n\t\tconst selected = await this.ui.prompt({\n\t\t\tlabel: 'Which skills do you depend on?',\n\t\t\ttype: 'select',\n\t\t\tisArray: true,\n\t\t\tisRequired: true,\n\t\t\tvalue: dependencies.map((d: any) => d.id),\n\t\t\toptions: {\n\t\t\t\tchoices: skills.map((skill) => ({\n\t\t\t\t\tvalue: skill.id,\n\t\t\t\t\tlabel: skill.name + ' (' + skill.slug + ')',\n\t\t\t\t})),\n\t\t\t},\n\t\t})\n\n\t\tconst summary: string[] = []\n\n\t\tconst updatedDependencies = selected.map((id) => {\n\t\t\tconst skill = skills.find((s) => s.id === id)\n\n\t\t\tsummary.push(skill?.name + ' (' + skill?.id + ')')\n\n\t\t\treturn {\n\t\t\t\tid,\n\t\t\t\tnamespace: skill?.slug ?? '**missing**',\n\t\t\t}\n\t\t})\n\n\t\tdep.set(updatedDependencies)\n\n\t\treturn {\n\t\t\tsummaryLines: [\n\t\t\t\t`${updatedDependencies.length} dependenc${\n\t\t\t\t\tupdatedDependencies.length === 1 ? 'y' : 'ies'\n\t\t\t\t} added.`,\n\t\t\t\t...summary,\n\t\t\t],\n\t\t}\n\t}\n}\n"],"file":"ManageAction.js"}
|
|
@@ -301,7 +301,8 @@ var EventFeature = /*#__PURE__*/function (_AbstractFeature) {
|
|
|
301
301
|
ui: this.ui,
|
|
302
302
|
eventGenerator: this.Writer('event'),
|
|
303
303
|
eventStore: this.Store('event'),
|
|
304
|
-
skillStore: this.Store('skill')
|
|
304
|
+
skillStore: this.Store('skill'),
|
|
305
|
+
dependencyService: this.Service('dependency')
|
|
305
306
|
});
|
|
306
307
|
}
|
|
307
308
|
|
|
@@ -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","featureInstaller","isInstalled","Action","execute","settings","Service","clearListenerCache","appendRemoteToResultsOrPrompt","remote","r","getRemote","TerminalInterface","doesSupportColor","Error","ui","stopLoading","renderLine","results","summaryLines","getHost","lastSync","getLastSyncOptions","writer","getEventContractBuilder","fetchContractsAndGenerateUniqueSchemas","schemas","shouldSyncOnlyCoreEvents","uniqueSchemas","contractBuilder","EventContractBuilder","optionsSchema","syncEventActionSchema","eventGenerator","Writer","eventStore","Store","skillStore","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'\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\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 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\tif (isInstalled && featureCode === 'node' && actionCode === 'upgrade') {\n\t\t\treturn this.Action('event', 'sync').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\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 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})\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","payload","featureCode","actionCode","featureInstaller","isInstalled","Action","execute","settings","Service","clearListenerCache","appendRemoteToResultsOrPrompt","remote","r","getRemote","TerminalInterface","doesSupportColor","Error","ui","stopLoading","renderLine","results","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'\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\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 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\tif (isInstalled && featureCode === 'node' && actionCode === 'upgrade') {\n\t\t\treturn this.Action('event', 'sync').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\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 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,5 +1,6 @@
|
|
|
1
1
|
import { SpruceSchemas } from '@sprucelabs/mercury-types';
|
|
2
2
|
import { Schema } from '@sprucelabs/schema';
|
|
3
|
+
import DependencyService from '../../../services/DependencyService';
|
|
3
4
|
import { GraphicsInterface } from '../../../types/cli.types';
|
|
4
5
|
import { FeatureActionResponse } from '../../features.types';
|
|
5
6
|
import SkillStore from '../../skill/stores/SkillStore';
|
|
@@ -14,6 +15,7 @@ export default class EventContractBuilder {
|
|
|
14
15
|
private cwd;
|
|
15
16
|
private eventStore;
|
|
16
17
|
private skillStore;
|
|
18
|
+
private dependencyService;
|
|
17
19
|
constructor(options: {
|
|
18
20
|
optionsSchema: OptionsSchema;
|
|
19
21
|
ui: GraphicsInterface;
|
|
@@ -21,6 +23,7 @@ export default class EventContractBuilder {
|
|
|
21
23
|
cwd: string;
|
|
22
24
|
eventStore: EventStore;
|
|
23
25
|
skillStore: SkillStore;
|
|
26
|
+
dependencyService: DependencyService;
|
|
24
27
|
});
|
|
25
28
|
fetchAndWriteContracts(options: Options): Promise<FeatureActionResponse>;
|
|
26
29
|
private deleteOrphanedEventContracts;
|
|
@@ -42,12 +42,14 @@ var EventContractBuilder = /*#__PURE__*/function () {
|
|
|
42
42
|
(0, _defineProperty2["default"])(this, "cwd", void 0);
|
|
43
43
|
(0, _defineProperty2["default"])(this, "eventStore", void 0);
|
|
44
44
|
(0, _defineProperty2["default"])(this, "skillStore", void 0);
|
|
45
|
+
(0, _defineProperty2["default"])(this, "dependencyService", void 0);
|
|
45
46
|
this.optionsSchema = options.optionsSchema;
|
|
46
47
|
this.ui = options.ui;
|
|
47
48
|
this.eventWriter = options.eventGenerator;
|
|
48
49
|
this.cwd = options.cwd;
|
|
49
50
|
this.eventStore = options.eventStore;
|
|
50
51
|
this.skillStore = options.skillStore;
|
|
52
|
+
this.dependencyService = options.dependencyService;
|
|
51
53
|
}
|
|
52
54
|
|
|
53
55
|
(0, _createClass2["default"])(EventContractBuilder, [{
|
|
@@ -227,7 +229,7 @@ var EventContractBuilder = /*#__PURE__*/function () {
|
|
|
227
229
|
var _fetchAndBuildTemplateItems = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(options) {
|
|
228
230
|
var _this = this;
|
|
229
231
|
|
|
230
|
-
var shouldSyncOnlyCoreEvents, eventBuilderFile, namespace, contractResults, itemBuilder, _itemBuilder$buildTem, eventContractTemplateItems, schemaTemplateItems;
|
|
232
|
+
var shouldSyncOnlyCoreEvents, eventBuilderFile, namespace, namespaces, contractResults, itemBuilder, _itemBuilder$buildTem, eventContractTemplateItems, schemaTemplateItems;
|
|
231
233
|
|
|
232
234
|
return _regenerator["default"].wrap(function _callee4$(_context4) {
|
|
233
235
|
while (1) {
|
|
@@ -241,19 +243,23 @@ var EventContractBuilder = /*#__PURE__*/function () {
|
|
|
241
243
|
case 4:
|
|
242
244
|
namespace = _context4.sent;
|
|
243
245
|
this.ui.startLoading('Fetching event contracts...');
|
|
244
|
-
|
|
246
|
+
namespaces = shouldSyncOnlyCoreEvents ? ['core'] : this.dependencyService.get().map(function (d) {
|
|
247
|
+
return d.namespace;
|
|
248
|
+
});
|
|
249
|
+
_context4.next = 9;
|
|
245
250
|
return this.eventStore.fetchEventContracts({
|
|
246
251
|
localNamespace: namespace,
|
|
252
|
+
namespaces: namespaces,
|
|
247
253
|
didUpdateHandler: function didUpdateHandler(msg) {
|
|
248
254
|
_this.ui.startLoading(msg);
|
|
249
255
|
}
|
|
250
256
|
});
|
|
251
257
|
|
|
252
|
-
case
|
|
258
|
+
case 9:
|
|
253
259
|
contractResults = _context4.sent;
|
|
254
260
|
|
|
255
261
|
if (!(contractResults.errors.length > 0)) {
|
|
256
|
-
_context4.next =
|
|
262
|
+
_context4.next = 12;
|
|
257
263
|
break;
|
|
258
264
|
}
|
|
259
265
|
|
|
@@ -263,12 +269,10 @@ var EventContractBuilder = /*#__PURE__*/function () {
|
|
|
263
269
|
schemaTemplateItems: []
|
|
264
270
|
});
|
|
265
271
|
|
|
266
|
-
case
|
|
272
|
+
case 12:
|
|
267
273
|
if (shouldSyncOnlyCoreEvents) {
|
|
268
|
-
contractResults.contracts = [contractResults.contracts[0]];
|
|
269
274
|
namespace = undefined;
|
|
270
275
|
} else {
|
|
271
|
-
contractResults.contracts.shift();
|
|
272
276
|
namespace = _spruceSkillUtils.namesUtil.toKebab(namespace);
|
|
273
277
|
}
|
|
274
278
|
|
|
@@ -285,7 +289,7 @@ var EventContractBuilder = /*#__PURE__*/function () {
|
|
|
285
289
|
errors: []
|
|
286
290
|
});
|
|
287
291
|
|
|
288
|
-
case
|
|
292
|
+
case 17:
|
|
289
293
|
case "end":
|
|
290
294
|
return _context4.stop();
|
|
291
295
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/features/event/builders/EventContractBuilder.ts"],"names":["EventContractBuilder","options","optionsSchema","ui","eventWriter","eventGenerator","cwd","eventStore","skillStore","normalizedOptions","validateAndNormalizeUtil","validateAndNormalize","contractDestinationDir","resolvedDestination","diskUtil","resolvePath","fetchAndBuildTemplateItems","shouldSyncOnlyCoreEvents","eventBuilderFile","errors","schemaTemplateItems","eventContractTemplateItems","length","startLoading","writeContracts","shouldImportCoreEvents","files","deleteOrphanedEventContracts","map","a","path","lookupDir","existingContracts","matches","diff","filter","m","includes","forEach","f","deleteFile","deleteEmptyDirs","existingSchemas","filteredSchemas","filterSchemasBasedOnCallbackPayload","schemas","i","schema","idWithVersion","find","s","loadCurrentSkillsNamespace","namespace","fetchEventContracts","localNamespace","didUpdateHandler","msg","contractResults","contracts","undefined","shift","namesUtil","toKebab","itemBuilder","EventTemplateItemBuilder","buildTemplateItems"],"mappings":"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","sourcesContent":["import { SpruceSchemas } from '@sprucelabs/mercury-types'\nimport {\n\tnormalizeSchemaToIdWithVersion,\n\tSchema,\n\tSchemaTemplateItem,\n} from '@sprucelabs/schema'\nimport { diskUtil, namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport globby from 'globby'\nimport { isEqual } from 'lodash'\nimport EventTemplateItemBuilder from '../../../templateItemBuilders/EventTemplateItemBuilder'\nimport { GraphicsInterface } from '../../../types/cli.types'\nimport { FeatureActionResponse } from '../../features.types'\nimport SkillStore from '../../skill/stores/SkillStore'\nimport validateAndNormalizeUtil from '../../validateAndNormalize.utility'\nimport EventStore from '../stores/EventStore'\nimport EventWriter from '../writers/EventWriter'\n\ntype OptionsSchema = SpruceSchemas.SpruceCli.v2020_07_22.SyncEventOptionsSchema\ntype Options = SpruceSchemas.SpruceCli.v2020_07_22.SyncEventOptions\n\nexport default class EventContractBuilder {\n\tprivate optionsSchema: OptionsSchema\n\tprivate ui: GraphicsInterface\n\tprivate eventWriter: EventWriter\n\tprivate cwd: string\n\tprivate eventStore: EventStore\n\tprivate skillStore: SkillStore\n\n\tpublic constructor(options: {\n\t\toptionsSchema: OptionsSchema\n\t\tui: GraphicsInterface\n\t\teventGenerator: EventWriter\n\t\tcwd: string\n\t\teventStore: EventStore\n\t\tskillStore: SkillStore\n\t}) {\n\t\tthis.optionsSchema = options.optionsSchema\n\t\tthis.ui = options.ui\n\t\tthis.eventWriter = options.eventGenerator\n\t\tthis.cwd = options.cwd\n\t\tthis.eventStore = options.eventStore\n\t\tthis.skillStore = options.skillStore\n\t}\n\n\tpublic async fetchAndWriteContracts(\n\t\toptions: Options\n\t): Promise<FeatureActionResponse> {\n\t\tconst normalizedOptions = validateAndNormalizeUtil.validateAndNormalize(\n\t\t\tthis.optionsSchema,\n\t\t\toptions\n\t\t)\n\n\t\tconst { contractDestinationDir } = normalizedOptions\n\n\t\tconst resolvedDestination = diskUtil.resolvePath(\n\t\t\tthis.cwd,\n\t\t\tcontractDestinationDir\n\t\t)\n\n\t\tconst { errors, schemaTemplateItems, eventContractTemplateItems } =\n\t\t\tawait this.fetchAndBuildTemplateItems({\n\t\t\t\tshouldSyncOnlyCoreEvents: options.shouldSyncOnlyCoreEvents ?? false,\n\t\t\t\teventBuilderFile: normalizedOptions.eventBuilderFile,\n\t\t\t})\n\n\t\tif (errors && errors?.length > 0) {\n\t\t\treturn {\n\t\t\t\terrors,\n\t\t\t}\n\t\t}\n\n\t\tthis.ui.startLoading('Generating contracts...')\n\n\t\tconst files = await this.eventWriter.writeContracts(resolvedDestination, {\n\t\t\t...normalizedOptions,\n\t\t\teventContractTemplateItems,\n\t\t\tschemaTemplateItems,\n\t\t\tshouldImportCoreEvents: !options.shouldSyncOnlyCoreEvents,\n\t\t})\n\n\t\tawait this.deleteOrphanedEventContracts(\n\t\t\tresolvedDestination,\n\t\t\tfiles.map((a) => a.path)\n\t\t)\n\n\t\treturn {\n\t\t\tfiles,\n\t\t}\n\t}\n\n\tprivate async deleteOrphanedEventContracts(\n\t\tlookupDir: string,\n\t\texistingContracts: string[]\n\t) {\n\t\tconst matches = await globby(lookupDir + '/**/*.contract.ts')\n\t\tconst diff = matches.filter((m) => !existingContracts.includes(m))\n\n\t\tdiff.forEach((f) => diskUtil.deleteFile(f))\n\n\t\tdiskUtil.deleteEmptyDirs(lookupDir)\n\t}\n\n\tpublic async fetchContractsAndGenerateUniqueSchemas(\n\t\texistingSchemas: Schema[],\n\t\tshouldSyncOnlyCoreEvents: boolean\n\t): Promise<FeatureActionResponse & { schemas?: Schema[] }> {\n\t\tconst { errors, schemaTemplateItems } =\n\t\t\tawait this.fetchAndBuildTemplateItems({ shouldSyncOnlyCoreEvents })\n\n\t\tif (errors && errors?.length > 0) {\n\t\t\treturn {\n\t\t\t\terrors,\n\t\t\t}\n\t\t}\n\n\t\tconst filteredSchemas = this.filterSchemasBasedOnCallbackPayload(\n\t\t\texistingSchemas,\n\t\t\tschemaTemplateItems\n\t\t)\n\n\t\treturn {\n\t\t\tschemas: filteredSchemas,\n\t\t}\n\t}\n\n\tprivate filterSchemasBasedOnCallbackPayload(\n\t\texistingSchemas: Schema[],\n\t\tschemaTemplateItems: SchemaTemplateItem[]\n\t) {\n\t\tconst schemas = schemaTemplateItems.map((i) => i.schema)\n\t\tconst filteredSchemas = schemas.filter((schema) => {\n\t\t\tconst idWithVersion = normalizeSchemaToIdWithVersion(schema)\n\t\t\treturn !existingSchemas.find((s) =>\n\t\t\t\tisEqual(normalizeSchemaToIdWithVersion(s), idWithVersion)\n\t\t\t)\n\t\t})\n\n\t\treturn filteredSchemas\n\t}\n\n\tprivate async fetchAndBuildTemplateItems(options: {\n\t\tshouldSyncOnlyCoreEvents?: boolean\n\t\teventBuilderFile?: string\n\t}) {\n\t\tconst { shouldSyncOnlyCoreEvents, eventBuilderFile } = options\n\n\t\tthis.ui.startLoading('Loading skill details...')\n\n\t\tlet namespace: string | undefined =\n\t\t\tawait this.skillStore.loadCurrentSkillsNamespace()\n\n\t\tthis.ui.startLoading('Fetching event contracts...')\n\n\t\tconst contractResults = await this.eventStore.fetchEventContracts({\n\t\t\tlocalNamespace: namespace,\n\t\t\tdidUpdateHandler: (msg) => {\n\t\t\t\tthis.ui.startLoading(msg)\n\t\t\t},\n\t\t})\n\n\t\tif (contractResults.errors.length > 0) {\n\t\t\treturn {\n\t\t\t\terrors: contractResults.errors,\n\t\t\t\teventContractTemplateItems: [],\n\t\t\t\tschemaTemplateItems: [],\n\t\t\t}\n\t\t}\n\n\t\tif (shouldSyncOnlyCoreEvents) {\n\t\t\tcontractResults.contracts = [contractResults.contracts[0]]\n\t\t\tnamespace = undefined\n\t\t} else {\n\t\t\tcontractResults.contracts.shift()\n\t\t\tnamespace = namesUtil.toKebab(namespace)\n\t\t}\n\n\t\tthis.ui.startLoading('Building contracts...')\n\n\t\tconst itemBuilder = new EventTemplateItemBuilder()\n\t\tconst { eventContractTemplateItems, schemaTemplateItems } =\n\t\t\titemBuilder.buildTemplateItems({\n\t\t\t\tcontracts: contractResults.contracts,\n\t\t\t\tlocalNamespace: namespace,\n\t\t\t\teventBuilderFile,\n\t\t\t})\n\n\t\treturn {\n\t\t\teventContractTemplateItems,\n\t\t\tschemaTemplateItems,\n\t\t\terrors: [],\n\t\t}\n\t}\n}\n"],"file":"EventContractBuilder.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/features/event/builders/EventContractBuilder.ts"],"names":["EventContractBuilder","options","optionsSchema","ui","eventWriter","eventGenerator","cwd","eventStore","skillStore","dependencyService","normalizedOptions","validateAndNormalizeUtil","validateAndNormalize","contractDestinationDir","resolvedDestination","diskUtil","resolvePath","fetchAndBuildTemplateItems","shouldSyncOnlyCoreEvents","eventBuilderFile","errors","schemaTemplateItems","eventContractTemplateItems","length","startLoading","writeContracts","shouldImportCoreEvents","files","deleteOrphanedEventContracts","map","a","path","lookupDir","existingContracts","matches","diff","filter","m","includes","forEach","f","deleteFile","deleteEmptyDirs","existingSchemas","filteredSchemas","filterSchemasBasedOnCallbackPayload","schemas","i","schema","idWithVersion","find","s","loadCurrentSkillsNamespace","namespace","namespaces","get","d","fetchEventContracts","localNamespace","didUpdateHandler","msg","contractResults","undefined","namesUtil","toKebab","itemBuilder","EventTemplateItemBuilder","buildTemplateItems","contracts"],"mappings":"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","sourcesContent":["import { SpruceSchemas } from '@sprucelabs/mercury-types'\nimport {\n\tnormalizeSchemaToIdWithVersion,\n\tSchema,\n\tSchemaTemplateItem,\n} from '@sprucelabs/schema'\nimport { diskUtil, namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport globby from 'globby'\nimport { isEqual } from 'lodash'\nimport DependencyService from '../../../services/DependencyService'\nimport EventTemplateItemBuilder from '../../../templateItemBuilders/EventTemplateItemBuilder'\nimport { GraphicsInterface } from '../../../types/cli.types'\nimport { FeatureActionResponse } from '../../features.types'\nimport SkillStore from '../../skill/stores/SkillStore'\nimport validateAndNormalizeUtil from '../../validateAndNormalize.utility'\nimport EventStore from '../stores/EventStore'\nimport EventWriter from '../writers/EventWriter'\n\ntype OptionsSchema = SpruceSchemas.SpruceCli.v2020_07_22.SyncEventOptionsSchema\ntype Options = SpruceSchemas.SpruceCli.v2020_07_22.SyncEventOptions\n\nexport default class EventContractBuilder {\n\tprivate optionsSchema: OptionsSchema\n\tprivate ui: GraphicsInterface\n\tprivate eventWriter: EventWriter\n\tprivate cwd: string\n\tprivate eventStore: EventStore\n\tprivate skillStore: SkillStore\n\tprivate dependencyService: DependencyService\n\n\tpublic constructor(options: {\n\t\toptionsSchema: OptionsSchema\n\t\tui: GraphicsInterface\n\t\teventGenerator: EventWriter\n\t\tcwd: string\n\t\teventStore: EventStore\n\t\tskillStore: SkillStore\n\t\tdependencyService: DependencyService\n\t}) {\n\t\tthis.optionsSchema = options.optionsSchema\n\t\tthis.ui = options.ui\n\t\tthis.eventWriter = options.eventGenerator\n\t\tthis.cwd = options.cwd\n\t\tthis.eventStore = options.eventStore\n\t\tthis.skillStore = options.skillStore\n\t\tthis.dependencyService = options.dependencyService\n\t}\n\n\tpublic async fetchAndWriteContracts(\n\t\toptions: Options\n\t): Promise<FeatureActionResponse> {\n\t\tconst normalizedOptions = validateAndNormalizeUtil.validateAndNormalize(\n\t\t\tthis.optionsSchema,\n\t\t\toptions\n\t\t)\n\n\t\tconst { contractDestinationDir } = normalizedOptions\n\n\t\tconst resolvedDestination = diskUtil.resolvePath(\n\t\t\tthis.cwd,\n\t\t\tcontractDestinationDir\n\t\t)\n\n\t\tconst { errors, schemaTemplateItems, eventContractTemplateItems } =\n\t\t\tawait this.fetchAndBuildTemplateItems({\n\t\t\t\tshouldSyncOnlyCoreEvents: options.shouldSyncOnlyCoreEvents ?? false,\n\t\t\t\teventBuilderFile: normalizedOptions.eventBuilderFile,\n\t\t\t})\n\n\t\tif (errors && errors?.length > 0) {\n\t\t\treturn {\n\t\t\t\terrors,\n\t\t\t}\n\t\t}\n\n\t\tthis.ui.startLoading('Generating contracts...')\n\n\t\tconst files = await this.eventWriter.writeContracts(resolvedDestination, {\n\t\t\t...normalizedOptions,\n\t\t\teventContractTemplateItems,\n\t\t\tschemaTemplateItems,\n\t\t\tshouldImportCoreEvents: !options.shouldSyncOnlyCoreEvents,\n\t\t})\n\n\t\tawait this.deleteOrphanedEventContracts(\n\t\t\tresolvedDestination,\n\t\t\tfiles.map((a) => a.path)\n\t\t)\n\n\t\treturn {\n\t\t\tfiles,\n\t\t}\n\t}\n\n\tprivate async deleteOrphanedEventContracts(\n\t\tlookupDir: string,\n\t\texistingContracts: string[]\n\t) {\n\t\tconst matches = await globby(lookupDir + '/**/*.contract.ts')\n\t\tconst diff = matches.filter((m) => !existingContracts.includes(m))\n\n\t\tdiff.forEach((f) => diskUtil.deleteFile(f))\n\n\t\tdiskUtil.deleteEmptyDirs(lookupDir)\n\t}\n\n\tpublic async fetchContractsAndGenerateUniqueSchemas(\n\t\texistingSchemas: Schema[],\n\t\tshouldSyncOnlyCoreEvents: boolean\n\t): Promise<FeatureActionResponse & { schemas?: Schema[] }> {\n\t\tconst { errors, schemaTemplateItems } =\n\t\t\tawait this.fetchAndBuildTemplateItems({ shouldSyncOnlyCoreEvents })\n\n\t\tif (errors && errors?.length > 0) {\n\t\t\treturn {\n\t\t\t\terrors,\n\t\t\t}\n\t\t}\n\n\t\tconst filteredSchemas = this.filterSchemasBasedOnCallbackPayload(\n\t\t\texistingSchemas,\n\t\t\tschemaTemplateItems\n\t\t)\n\n\t\treturn {\n\t\t\tschemas: filteredSchemas,\n\t\t}\n\t}\n\n\tprivate filterSchemasBasedOnCallbackPayload(\n\t\texistingSchemas: Schema[],\n\t\tschemaTemplateItems: SchemaTemplateItem[]\n\t) {\n\t\tconst schemas = schemaTemplateItems.map((i) => i.schema)\n\t\tconst filteredSchemas = schemas.filter((schema) => {\n\t\t\tconst idWithVersion = normalizeSchemaToIdWithVersion(schema)\n\t\t\treturn !existingSchemas.find((s) =>\n\t\t\t\tisEqual(normalizeSchemaToIdWithVersion(s), idWithVersion)\n\t\t\t)\n\t\t})\n\n\t\treturn filteredSchemas\n\t}\n\n\tprivate async fetchAndBuildTemplateItems(options: {\n\t\tshouldSyncOnlyCoreEvents?: boolean\n\t\teventBuilderFile?: string\n\t}) {\n\t\tconst { shouldSyncOnlyCoreEvents, eventBuilderFile } = options\n\n\t\tthis.ui.startLoading('Loading skill details...')\n\n\t\tlet namespace: string | undefined =\n\t\t\tawait this.skillStore.loadCurrentSkillsNamespace()\n\n\t\tthis.ui.startLoading('Fetching event contracts...')\n\n\t\tconst namespaces = shouldSyncOnlyCoreEvents\n\t\t\t? ['core']\n\t\t\t: this.dependencyService.get().map((d) => d.namespace)\n\n\t\tconst contractResults = await this.eventStore.fetchEventContracts({\n\t\t\tlocalNamespace: namespace,\n\t\t\tnamespaces,\n\t\t\tdidUpdateHandler: (msg) => {\n\t\t\t\tthis.ui.startLoading(msg)\n\t\t\t},\n\t\t})\n\n\t\tif (contractResults.errors.length > 0) {\n\t\t\treturn {\n\t\t\t\terrors: contractResults.errors,\n\t\t\t\teventContractTemplateItems: [],\n\t\t\t\tschemaTemplateItems: [],\n\t\t\t}\n\t\t}\n\n\t\tif (shouldSyncOnlyCoreEvents) {\n\t\t\tnamespace = undefined\n\t\t} else {\n\t\t\tnamespace = namesUtil.toKebab(namespace)\n\t\t}\n\n\t\tthis.ui.startLoading('Building contracts...')\n\n\t\tconst itemBuilder = new EventTemplateItemBuilder()\n\t\tconst { eventContractTemplateItems, schemaTemplateItems } =\n\t\t\titemBuilder.buildTemplateItems({\n\t\t\t\tcontracts: contractResults.contracts,\n\t\t\t\tlocalNamespace: namespace,\n\t\t\t\teventBuilderFile,\n\t\t\t})\n\n\t\treturn {\n\t\t\teventContractTemplateItems,\n\t\t\tschemaTemplateItems,\n\t\t\terrors: [],\n\t\t}\n\t}\n}\n"],"file":"EventContractBuilder.js"}
|
|
@@ -8,9 +8,10 @@ export interface EventStoreFetchEventContractsResponse {
|
|
|
8
8
|
}
|
|
9
9
|
export default class EventStore extends AbstractStore {
|
|
10
10
|
name: string;
|
|
11
|
-
protected static contractCache: any
|
|
11
|
+
protected static contractCache: Record<string, any>;
|
|
12
12
|
fetchEventContracts(options?: {
|
|
13
13
|
localNamespace?: string;
|
|
14
|
+
namespaces?: string[];
|
|
14
15
|
didUpdateHandler?: InternalUpdateHandler;
|
|
15
16
|
}): Promise<EventStoreFetchEventContractsResponse>;
|
|
16
17
|
static clearCache(): void;
|
|
@@ -109,16 +109,16 @@ var EventStore = /*#__PURE__*/function (_AbstractStore) {
|
|
|
109
109
|
key: "fetchEventContracts",
|
|
110
110
|
value: function () {
|
|
111
111
|
var _fetchEventContracts = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(options) {
|
|
112
|
-
var _ref, localNamespace, didUpdateHandler, contracts, localContract;
|
|
112
|
+
var _ref, localNamespace, didUpdateHandler, namespaces, contracts, localContract;
|
|
113
113
|
|
|
114
114
|
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
115
115
|
while (1) {
|
|
116
116
|
switch (_context.prev = _context.next) {
|
|
117
117
|
case 0:
|
|
118
|
-
_ref = options !== null && options !== void 0 ? options : {}, localNamespace = _ref.localNamespace, didUpdateHandler = _ref.didUpdateHandler;
|
|
118
|
+
_ref = options !== null && options !== void 0 ? options : {}, localNamespace = _ref.localNamespace, didUpdateHandler = _ref.didUpdateHandler, namespaces = _ref.namespaces;
|
|
119
119
|
didUpdateHandler === null || didUpdateHandler === void 0 ? void 0 : didUpdateHandler('Pulling remote contracts...');
|
|
120
120
|
_context.next = 4;
|
|
121
|
-
return this.fetchRemoteContracts();
|
|
121
|
+
return this.fetchRemoteContracts(namespaces);
|
|
122
122
|
|
|
123
123
|
case 4:
|
|
124
124
|
contracts = _context.sent;
|
|
@@ -168,37 +168,45 @@ var EventStore = /*#__PURE__*/function (_AbstractStore) {
|
|
|
168
168
|
}, {
|
|
169
169
|
key: "fetchRemoteContracts",
|
|
170
170
|
value: function () {
|
|
171
|
-
var _fetchRemoteContracts = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
|
|
172
|
-
var
|
|
171
|
+
var _fetchRemoteContracts = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(namespaces) {
|
|
172
|
+
var _namespaces$join;
|
|
173
|
+
|
|
174
|
+
var key, client, results, _eventResponseUtil$ge, contracts;
|
|
173
175
|
|
|
174
176
|
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
175
177
|
while (1) {
|
|
176
178
|
switch (_context2.prev = _context2.next) {
|
|
177
179
|
case 0:
|
|
178
|
-
|
|
179
|
-
|
|
180
|
+
key = (_namespaces$join = namespaces === null || namespaces === void 0 ? void 0 : namespaces.join('|')) !== null && _namespaces$join !== void 0 ? _namespaces$join : '_';
|
|
181
|
+
|
|
182
|
+
if (EventStore.contractCache[key]) {
|
|
183
|
+
_context2.next = 10;
|
|
180
184
|
break;
|
|
181
185
|
}
|
|
182
186
|
|
|
183
|
-
_context2.next =
|
|
187
|
+
_context2.next = 4;
|
|
184
188
|
return this.connectToApi({
|
|
185
189
|
shouldAuthAsCurrentSkill: true
|
|
186
190
|
});
|
|
187
191
|
|
|
188
|
-
case
|
|
192
|
+
case 4:
|
|
189
193
|
client = _context2.sent;
|
|
190
|
-
_context2.next =
|
|
191
|
-
return client.emit('get-event-contracts::v2020_12_25'
|
|
194
|
+
_context2.next = 7;
|
|
195
|
+
return client.emit('get-event-contracts::v2020_12_25', {
|
|
196
|
+
target: {
|
|
197
|
+
namespaces: namespaces
|
|
198
|
+
}
|
|
199
|
+
});
|
|
192
200
|
|
|
193
|
-
case
|
|
201
|
+
case 7:
|
|
194
202
|
results = _context2.sent;
|
|
195
203
|
_eventResponseUtil$ge = _spruceEventUtils.eventResponseUtil.getFirstResponseOrThrow(results), contracts = _eventResponseUtil$ge.contracts;
|
|
196
|
-
EventStore.contractCache = contracts;
|
|
197
|
-
|
|
198
|
-
case 9:
|
|
199
|
-
return _context2.abrupt("return", (0, _lodash.cloneDeep)(EventStore.contractCache));
|
|
204
|
+
EventStore.contractCache[key] = contracts;
|
|
200
205
|
|
|
201
206
|
case 10:
|
|
207
|
+
return _context2.abrupt("return", (0, _lodash.cloneDeep)(EventStore.contractCache[key]));
|
|
208
|
+
|
|
209
|
+
case 11:
|
|
202
210
|
case "end":
|
|
203
211
|
return _context2.stop();
|
|
204
212
|
}
|
|
@@ -206,7 +214,7 @@ var EventStore = /*#__PURE__*/function (_AbstractStore) {
|
|
|
206
214
|
}, _callee2, this);
|
|
207
215
|
}));
|
|
208
216
|
|
|
209
|
-
function fetchRemoteContracts() {
|
|
217
|
+
function fetchRemoteContracts(_x2) {
|
|
210
218
|
return _fetchRemoteContracts.apply(this, arguments);
|
|
211
219
|
}
|
|
212
220
|
|
|
@@ -319,7 +327,7 @@ var EventStore = /*#__PURE__*/function (_AbstractStore) {
|
|
|
319
327
|
}, _callee3, null, [[0, 8]]);
|
|
320
328
|
}));
|
|
321
329
|
|
|
322
|
-
return function (
|
|
330
|
+
return function (_x5) {
|
|
323
331
|
return _ref2.apply(this, arguments);
|
|
324
332
|
};
|
|
325
333
|
}()));
|
|
@@ -420,7 +428,7 @@ var EventStore = /*#__PURE__*/function (_AbstractStore) {
|
|
|
420
428
|
}, _callee4, this, [[19, 23]]);
|
|
421
429
|
}));
|
|
422
430
|
|
|
423
|
-
function loadLocalContract(
|
|
431
|
+
function loadLocalContract(_x3, _x4) {
|
|
424
432
|
return _loadLocalContract.apply(this, arguments);
|
|
425
433
|
}
|
|
426
434
|
|
|
@@ -454,7 +462,7 @@ var EventStore = /*#__PURE__*/function (_AbstractStore) {
|
|
|
454
462
|
|
|
455
463
|
_spruceEventUtils.eventResponseUtil.getFirstResponseOrThrow(results);
|
|
456
464
|
|
|
457
|
-
EventStore.contractCache =
|
|
465
|
+
EventStore.contractCache = {};
|
|
458
466
|
return _context5.abrupt("return", results);
|
|
459
467
|
|
|
460
468
|
case 9:
|
|
@@ -465,7 +473,7 @@ var EventStore = /*#__PURE__*/function (_AbstractStore) {
|
|
|
465
473
|
}, _callee5, this);
|
|
466
474
|
}));
|
|
467
475
|
|
|
468
|
-
function registerEventContract(
|
|
476
|
+
function registerEventContract(_x6) {
|
|
469
477
|
return _registerEventContract.apply(this, arguments);
|
|
470
478
|
}
|
|
471
479
|
|
|
@@ -497,7 +505,7 @@ var EventStore = /*#__PURE__*/function (_AbstractStore) {
|
|
|
497
505
|
|
|
498
506
|
_spruceEventUtils.eventResponseUtil.getFirstResponseOrThrow(results);
|
|
499
507
|
|
|
500
|
-
EventStore.contractCache =
|
|
508
|
+
EventStore.contractCache = {};
|
|
501
509
|
|
|
502
510
|
case 8:
|
|
503
511
|
case "end":
|
|
@@ -507,7 +515,7 @@ var EventStore = /*#__PURE__*/function (_AbstractStore) {
|
|
|
507
515
|
}, _callee6, this);
|
|
508
516
|
}));
|
|
509
517
|
|
|
510
|
-
function unRegisterEvents(
|
|
518
|
+
function unRegisterEvents(_x7) {
|
|
511
519
|
return _unRegisterEvents.apply(this, arguments);
|
|
512
520
|
}
|
|
513
521
|
|
|
@@ -516,12 +524,12 @@ var EventStore = /*#__PURE__*/function (_AbstractStore) {
|
|
|
516
524
|
}], [{
|
|
517
525
|
key: "clearCache",
|
|
518
526
|
value: function clearCache() {
|
|
519
|
-
EventStore.contractCache =
|
|
527
|
+
EventStore.contractCache = {};
|
|
520
528
|
}
|
|
521
529
|
}]);
|
|
522
530
|
return EventStore;
|
|
523
531
|
}(_AbstractStore2["default"]);
|
|
524
532
|
|
|
525
533
|
exports["default"] = EventStore;
|
|
526
|
-
(0, _defineProperty2["default"])(EventStore, "contractCache",
|
|
534
|
+
(0, _defineProperty2["default"])(EventStore, "contractCache", {});
|
|
527
535
|
//# sourceMappingURL=EventStore.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/features/event/stores/EventStore.ts"],"names":["eventFileNamesImportKeyMap","key","isSchema","EventStore","options","localNamespace","didUpdateHandler","fetchRemoteContracts","contracts","loadLocalContract","localContract","filterOutLocalEventsFromRemoteContractsMutating","push","errors","contractCache","connectToApi","shouldAuthAsCurrentSkill","client","emit","results","eventResponseUtil","getFirstResponseOrThrow","remoteContracts","ns","namesUtil","toKebab","contract","sigs","eventContractUtil","getNamedEventSignatures","sig","eventNamespace","eventSignatures","fullyQualifiedEventName","diskUtil","resolvePath","cwd","localMatches","filesByFqenAndEventKey","length","Promise","all","map","match","eventDiskUtil","splitPathToEvent","eventName","version","fqen","eventNameUtil","join","filename","pathUtil","basename","eventKey","SpruceError","code","brokenProperty","originalError","matches","o","Service","bulkImport","importsInOrder","importsByName","idx","imported","Object","keys","forEach","split","emitPayloadSchema","payloadSchema","emitPayload","targetSchema","emitTarget","responsePayloadSchema","responsePayload","emitPermissionContract","emitPermissions","listenPermissionContract","listenPermissions","cleaned","eventContractCleanerUtil","cleanPayloadsAndPermissions","payload","eventContract","AbstractStore"],"mappings":"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","sourcesContent":["import pathUtil from 'path'\nimport {\n\tEventContract,\n\tEventSignature,\n\tPermissionContract,\n\tSpruceSchemas,\n\tvalidateEventContract,\n} from '@sprucelabs/mercury-types'\nimport { Schema, validateSchema } from '@sprucelabs/schema'\nimport {\n\teventResponseUtil,\n\teventDiskUtil,\n\teventNameUtil,\n\tbuildEmitTargetAndPayloadSchema,\n\teventContractUtil,\n} from '@sprucelabs/spruce-event-utils'\nimport { diskUtil, namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport globby from 'globby'\nimport { cloneDeep } from 'lodash'\nimport SpruceError from '../../../errors/SpruceError'\nimport AbstractStore from '../../../stores/AbstractStore'\nimport { InternalUpdateHandler } from '../../../types/cli.types'\nimport { eventContractCleanerUtil } from '../../../utilities/eventContractCleaner.utility'\n\nexport interface EventStoreFetchEventContractsResponse {\n\terrors: SpruceError[]\n\tcontracts: EventContract[]\n}\n\ntype Options = Omit<\n\tEventSignature,\n\t| 'responsePayloadSchema'\n\t| 'emitPayloadSchema'\n\t| 'listenPermissionContract'\n\t| 'emitPermissionContract'\n>\n\ninterface EventImport {\n\toptions?: Options\n\temitPayload?: Schema\n\temitTarget?: Schema\n\tresponsePayload?: Schema\n\temitPermissions?: PermissionContract\n\tlistenPermissions?: PermissionContract\n}\n\nconst eventFileNamesImportKeyMap = {\n\t'event.options.ts': { key: 'options', isSchema: false },\n\t'emitPayload.builder.ts': { key: 'emitPayload', isSchema: true },\n\t'emitTarget.builder.ts': { key: 'emitTarget', isSchema: true },\n\t'responsePayload.builder.ts': { key: 'responsePayload', isSchema: true },\n\t'emitPermissions.builder.ts': { key: 'emitPermissions', isSchema: false },\n\t'listenPermissions.builder.ts': { key: 'listenPermissions', isSchema: false },\n}\n\nexport default class EventStore extends AbstractStore {\n\tpublic name = 'event'\n\tprotected static contractCache: any\n\n\tpublic async fetchEventContracts(options?: {\n\t\tlocalNamespace?: string\n\t\tdidUpdateHandler?: InternalUpdateHandler\n\t}): Promise<EventStoreFetchEventContractsResponse> {\n\t\tconst { localNamespace, didUpdateHandler } = options ?? {}\n\n\t\tdidUpdateHandler?.('Pulling remote contracts...')\n\n\t\tconst contracts = await this.fetchRemoteContracts()\n\n\t\tconst localContract =\n\t\t\tlocalNamespace &&\n\t\t\t(await this.loadLocalContract(localNamespace, didUpdateHandler))\n\n\t\tif (localNamespace) {\n\t\t\tthis.filterOutLocalEventsFromRemoteContractsMutating(\n\t\t\t\tcontracts,\n\t\t\t\tlocalNamespace\n\t\t\t)\n\t\t}\n\n\t\tif (localContract) {\n\t\t\tcontracts.push(localContract)\n\t\t}\n\n\t\treturn {\n\t\t\tcontracts,\n\t\t\terrors: [],\n\t\t}\n\t}\n\n\tpublic static clearCache() {\n\t\tEventStore.contractCache = null\n\t}\n\n\tprivate async fetchRemoteContracts() {\n\t\tif (!EventStore.contractCache) {\n\t\t\tconst client = await this.connectToApi({ shouldAuthAsCurrentSkill: true })\n\t\t\tconst results = await client.emit('get-event-contracts::v2020_12_25')\n\t\t\tconst { contracts } = eventResponseUtil.getFirstResponseOrThrow(results)\n\n\t\t\tEventStore.contractCache = contracts\n\t\t}\n\n\t\treturn cloneDeep(EventStore.contractCache)\n\t}\n\n\tprivate filterOutLocalEventsFromRemoteContractsMutating(\n\t\tremoteContracts: EventContract[],\n\t\tlocalNamespace: string\n\t) {\n\t\tconst ns = namesUtil.toKebab(localNamespace)\n\n\t\tfor (const contract of remoteContracts) {\n\t\t\tconst sigs = eventContractUtil.getNamedEventSignatures(contract)\n\t\t\tfor (const sig of sigs) {\n\t\t\t\tif (sig.eventNamespace === ns) {\n\t\t\t\t\tdelete contract.eventSignatures[sig.fullyQualifiedEventName]\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic async loadLocalContract(\n\t\tlocalNamespace: string,\n\t\tdidUpdateHandler?: InternalUpdateHandler\n\t): Promise<EventContract | null> {\n\t\tconst localMatches = await globby(\n\t\t\tdiskUtil.resolvePath(\n\t\t\t\tthis.cwd,\n\t\t\t\t'src',\n\t\t\t\t'events',\n\t\t\t\t'**/*.(builder|options).ts'\n\t\t\t)\n\t\t)\n\n\t\tconst ns = namesUtil.toKebab(localNamespace)\n\t\tconst eventSignatures: Record<string, EventSignature> = {}\n\t\tconst filesByFqenAndEventKey: {\n\t\t\tfqen: string\n\t\t\tisSchema: boolean\n\t\t\tmatch: string\n\t\t\teventKey: string\n\t\t}[] = []\n\n\t\tdidUpdateHandler?.(\n\t\t\t`Importing ${localMatches.length} local event signature files...`\n\t\t)\n\n\t\tawait Promise.all(\n\t\t\tlocalMatches.map(async (match) => {\n\t\t\t\tlet fqen: string | undefined\n\t\t\t\tlet eventKey: keyof EventImport | undefined\n\n\t\t\t\ttry {\n\t\t\t\t\tconst { eventName, version } = eventDiskUtil.splitPathToEvent(match)\n\t\t\t\t\tfqen = eventNameUtil.join({\n\t\t\t\t\t\teventName,\n\t\t\t\t\t\tversion,\n\t\t\t\t\t\teventNamespace: ns,\n\t\t\t\t\t})\n\n\t\t\t\t\tconst filename = pathUtil.basename(\n\t\t\t\t\t\tmatch\n\t\t\t\t\t) as keyof typeof eventFileNamesImportKeyMap\n\n\t\t\t\t\tconst map = eventFileNamesImportKeyMap[filename]\n\n\t\t\t\t\tif (map) {\n\t\t\t\t\t\t//@ts-ignore\n\t\t\t\t\t\teventKey = map.key\n\n\t\t\t\t\t\tfilesByFqenAndEventKey.push({\n\t\t\t\t\t\t\tfqen,\n\t\t\t\t\t\t\tisSchema: map.isSchema,\n\t\t\t\t\t\t\tmatch,\n\t\t\t\t\t\t\teventKey: eventKey as string,\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t} catch (err: any) {\n\t\t\t\t\tthrow new SpruceError({\n\t\t\t\t\t\tcode: 'INVALID_EVENT_CONTRACT',\n\t\t\t\t\t\tfullyQualifiedEventName: fqen ?? 'Bad event name',\n\t\t\t\t\t\tbrokenProperty: eventKey ?? '*** major failure ***',\n\t\t\t\t\t\toriginalError: err,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t})\n\t\t)\n\n\t\tconst matches = filesByFqenAndEventKey.map((o) => o.match)\n\t\tconst importsInOrder = (await this.Service('import').bulkImport(\n\t\t\tmatches\n\t\t)) as Record<string, any>[]\n\t\tconst importsByName: Record<string, EventImport> = {}\n\n\t\tfor (let idx = 0; idx < filesByFqenAndEventKey.length; idx++) {\n\t\t\tconst imported = importsInOrder[idx]\n\t\t\tconst { fqen, eventKey, isSchema } = filesByFqenAndEventKey[idx]\n\n\t\t\tif (isSchema) {\n\t\t\t\ttry {\n\t\t\t\t\tvalidateSchema(imported)\n\t\t\t\t} catch (err: any) {\n\t\t\t\t\tthrow new SpruceError({\n\t\t\t\t\t\tcode: 'INVALID_EVENT_CONTRACT',\n\t\t\t\t\t\tfullyQualifiedEventName: fqen,\n\t\t\t\t\t\tbrokenProperty: eventKey,\n\t\t\t\t\t\toriginalError: err,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!importsByName[fqen]) {\n\t\t\t\timportsByName[fqen] = {}\n\t\t\t}\n\n\t\t\t//@ts-ignore\n\t\t\timportsByName[fqen][eventKey] = imported\n\t\t}\n\n\t\tObject.keys(importsByName).forEach((fqen) => {\n\t\t\tconst imported = importsByName[fqen]\n\t\t\tconst { eventName } = eventNameUtil.split(fqen)\n\t\t\teventSignatures[fqen] = {\n\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\teventName,\n\t\t\t\t\tpayloadSchema: imported.emitPayload,\n\t\t\t\t\ttargetSchema: imported.emitTarget,\n\t\t\t\t}),\n\t\t\t\tresponsePayloadSchema: imported.responsePayload,\n\t\t\t\temitPermissionContract: imported.emitPermissions,\n\t\t\t\tlistenPermissionContract: imported.listenPermissions,\n\t\t\t\t...imported.options,\n\t\t\t}\n\t\t})\n\n\t\tdidUpdateHandler?.(\n\t\t\t`Loaded ${Object.keys(eventSignatures).length} local event signatures...`\n\t\t)\n\n\t\tif (Object.keys(eventSignatures).length > 0) {\n\t\t\tconst cleaned = eventContractCleanerUtil.cleanPayloadsAndPermissions({\n\t\t\t\teventSignatures,\n\t\t\t})\n\n\t\t\tvalidateEventContract(cleaned)\n\n\t\t\treturn cleaned\n\t\t}\n\n\t\treturn null\n\t}\n\n\tpublic async registerEventContract(options: {\n\t\teventContract: EventContract\n\t}) {\n\t\tconst client = await this.connectToApi({ shouldAuthAsCurrentSkill: true })\n\n\t\tconst results = await client.emit('register-events::v2020_12_25', {\n\t\t\tpayload: {\n\t\t\t\tcontract: options.eventContract,\n\t\t\t},\n\t\t})\n\n\t\teventResponseUtil.getFirstResponseOrThrow(results)\n\n\t\tEventStore.contractCache = null\n\n\t\treturn results\n\t}\n\n\tpublic async unRegisterEvents(\n\t\toptions: SpruceSchemas.Mercury.v2020_12_25.UnregisterEventsEmitPayload\n\t) {\n\t\tconst client = await this.connectToApi({ shouldAuthAsCurrentSkill: true })\n\n\t\tconst results = await client.emit('unregister-events::v2020_12_25', {\n\t\t\tpayload: options,\n\t\t})\n\n\t\teventResponseUtil.getFirstResponseOrThrow(results)\n\n\t\tEventStore.contractCache = null\n\t}\n}\n"],"file":"EventStore.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/features/event/stores/EventStore.ts"],"names":["eventFileNamesImportKeyMap","key","isSchema","EventStore","options","localNamespace","didUpdateHandler","namespaces","fetchRemoteContracts","contracts","loadLocalContract","localContract","filterOutLocalEventsFromRemoteContractsMutating","push","errors","join","contractCache","connectToApi","shouldAuthAsCurrentSkill","client","emit","target","results","eventResponseUtil","getFirstResponseOrThrow","remoteContracts","ns","namesUtil","toKebab","contract","sigs","eventContractUtil","getNamedEventSignatures","sig","eventNamespace","eventSignatures","fullyQualifiedEventName","diskUtil","resolvePath","cwd","localMatches","filesByFqenAndEventKey","length","Promise","all","map","match","eventDiskUtil","splitPathToEvent","eventName","version","fqen","eventNameUtil","filename","pathUtil","basename","eventKey","SpruceError","code","brokenProperty","originalError","matches","o","Service","bulkImport","importsInOrder","importsByName","idx","imported","Object","keys","forEach","split","emitPayloadSchema","payloadSchema","emitPayload","targetSchema","emitTarget","responsePayloadSchema","responsePayload","emitPermissionContract","emitPermissions","listenPermissionContract","listenPermissions","cleaned","eventContractCleanerUtil","cleanPayloadsAndPermissions","payload","eventContract","AbstractStore"],"mappings":"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","sourcesContent":["import pathUtil from 'path'\nimport {\n\tEventContract,\n\tEventSignature,\n\tPermissionContract,\n\tSpruceSchemas,\n\tvalidateEventContract,\n} from '@sprucelabs/mercury-types'\nimport { Schema, validateSchema } from '@sprucelabs/schema'\nimport {\n\teventResponseUtil,\n\teventDiskUtil,\n\teventNameUtil,\n\tbuildEmitTargetAndPayloadSchema,\n\teventContractUtil,\n} from '@sprucelabs/spruce-event-utils'\nimport { diskUtil, namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport globby from 'globby'\nimport { cloneDeep } from 'lodash'\nimport SpruceError from '../../../errors/SpruceError'\nimport AbstractStore from '../../../stores/AbstractStore'\nimport { InternalUpdateHandler } from '../../../types/cli.types'\nimport { eventContractCleanerUtil } from '../../../utilities/eventContractCleaner.utility'\n\nexport interface EventStoreFetchEventContractsResponse {\n\terrors: SpruceError[]\n\tcontracts: EventContract[]\n}\n\ntype Options = Omit<\n\tEventSignature,\n\t| 'responsePayloadSchema'\n\t| 'emitPayloadSchema'\n\t| 'listenPermissionContract'\n\t| 'emitPermissionContract'\n>\n\ninterface EventImport {\n\toptions?: Options\n\temitPayload?: Schema\n\temitTarget?: Schema\n\tresponsePayload?: Schema\n\temitPermissions?: PermissionContract\n\tlistenPermissions?: PermissionContract\n}\n\nconst eventFileNamesImportKeyMap = {\n\t'event.options.ts': { key: 'options', isSchema: false },\n\t'emitPayload.builder.ts': { key: 'emitPayload', isSchema: true },\n\t'emitTarget.builder.ts': { key: 'emitTarget', isSchema: true },\n\t'responsePayload.builder.ts': { key: 'responsePayload', isSchema: true },\n\t'emitPermissions.builder.ts': { key: 'emitPermissions', isSchema: false },\n\t'listenPermissions.builder.ts': { key: 'listenPermissions', isSchema: false },\n}\n\nexport default class EventStore extends AbstractStore {\n\tpublic name = 'event'\n\tprotected static contractCache: Record<string, any> = {}\n\n\tpublic async fetchEventContracts(options?: {\n\t\tlocalNamespace?: string\n\t\tnamespaces?: string[]\n\t\tdidUpdateHandler?: InternalUpdateHandler\n\t}): Promise<EventStoreFetchEventContractsResponse> {\n\t\tconst { localNamespace, didUpdateHandler, namespaces } = options ?? {}\n\n\t\tdidUpdateHandler?.('Pulling remote contracts...')\n\n\t\tconst contracts = await this.fetchRemoteContracts(namespaces)\n\n\t\tconst localContract =\n\t\t\tlocalNamespace &&\n\t\t\t(await this.loadLocalContract(localNamespace, didUpdateHandler))\n\n\t\tif (localNamespace) {\n\t\t\tthis.filterOutLocalEventsFromRemoteContractsMutating(\n\t\t\t\tcontracts,\n\t\t\t\tlocalNamespace\n\t\t\t)\n\t\t}\n\n\t\tif (localContract) {\n\t\t\tcontracts.push(localContract)\n\t\t}\n\n\t\treturn {\n\t\t\tcontracts,\n\t\t\terrors: [],\n\t\t}\n\t}\n\n\tpublic static clearCache() {\n\t\tEventStore.contractCache = {}\n\t}\n\n\tprivate async fetchRemoteContracts(namespaces?: string[]) {\n\t\tconst key = namespaces?.join('|') ?? '_'\n\n\t\tif (!EventStore.contractCache[key]) {\n\t\t\tconst client = await this.connectToApi({ shouldAuthAsCurrentSkill: true })\n\n\t\t\tconst results = await client.emit('get-event-contracts::v2020_12_25', {\n\t\t\t\ttarget: {\n\t\t\t\t\tnamespaces,\n\t\t\t\t},\n\t\t\t})\n\n\t\t\tconst { contracts } = eventResponseUtil.getFirstResponseOrThrow(results)\n\n\t\t\tEventStore.contractCache[key] = contracts\n\t\t}\n\n\t\treturn cloneDeep(EventStore.contractCache[key])\n\t}\n\n\tprivate filterOutLocalEventsFromRemoteContractsMutating(\n\t\tremoteContracts: EventContract[],\n\t\tlocalNamespace: string\n\t) {\n\t\tconst ns = namesUtil.toKebab(localNamespace)\n\n\t\tfor (const contract of remoteContracts) {\n\t\t\tconst sigs = eventContractUtil.getNamedEventSignatures(contract)\n\t\t\tfor (const sig of sigs) {\n\t\t\t\tif (sig.eventNamespace === ns) {\n\t\t\t\t\tdelete contract.eventSignatures[sig.fullyQualifiedEventName]\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic async loadLocalContract(\n\t\tlocalNamespace: string,\n\t\tdidUpdateHandler?: InternalUpdateHandler\n\t): Promise<EventContract | null> {\n\t\tconst localMatches = await globby(\n\t\t\tdiskUtil.resolvePath(\n\t\t\t\tthis.cwd,\n\t\t\t\t'src',\n\t\t\t\t'events',\n\t\t\t\t'**/*.(builder|options).ts'\n\t\t\t)\n\t\t)\n\n\t\tconst ns = namesUtil.toKebab(localNamespace)\n\t\tconst eventSignatures: Record<string, EventSignature> = {}\n\t\tconst filesByFqenAndEventKey: {\n\t\t\tfqen: string\n\t\t\tisSchema: boolean\n\t\t\tmatch: string\n\t\t\teventKey: string\n\t\t}[] = []\n\n\t\tdidUpdateHandler?.(\n\t\t\t`Importing ${localMatches.length} local event signature files...`\n\t\t)\n\n\t\tawait Promise.all(\n\t\t\tlocalMatches.map(async (match) => {\n\t\t\t\tlet fqen: string | undefined\n\t\t\t\tlet eventKey: keyof EventImport | undefined\n\n\t\t\t\ttry {\n\t\t\t\t\tconst { eventName, version } = eventDiskUtil.splitPathToEvent(match)\n\t\t\t\t\tfqen = eventNameUtil.join({\n\t\t\t\t\t\teventName,\n\t\t\t\t\t\tversion,\n\t\t\t\t\t\teventNamespace: ns,\n\t\t\t\t\t})\n\n\t\t\t\t\tconst filename = pathUtil.basename(\n\t\t\t\t\t\tmatch\n\t\t\t\t\t) as keyof typeof eventFileNamesImportKeyMap\n\n\t\t\t\t\tconst map = eventFileNamesImportKeyMap[filename]\n\n\t\t\t\t\tif (map) {\n\t\t\t\t\t\t//@ts-ignore\n\t\t\t\t\t\teventKey = map.key\n\n\t\t\t\t\t\tfilesByFqenAndEventKey.push({\n\t\t\t\t\t\t\tfqen,\n\t\t\t\t\t\t\tisSchema: map.isSchema,\n\t\t\t\t\t\t\tmatch,\n\t\t\t\t\t\t\teventKey: eventKey as string,\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t} catch (err: any) {\n\t\t\t\t\tthrow new SpruceError({\n\t\t\t\t\t\tcode: 'INVALID_EVENT_CONTRACT',\n\t\t\t\t\t\tfullyQualifiedEventName: fqen ?? 'Bad event name',\n\t\t\t\t\t\tbrokenProperty: eventKey ?? '*** major failure ***',\n\t\t\t\t\t\toriginalError: err,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t})\n\t\t)\n\n\t\tconst matches = filesByFqenAndEventKey.map((o) => o.match)\n\t\tconst importsInOrder = (await this.Service('import').bulkImport(\n\t\t\tmatches\n\t\t)) as Record<string, any>[]\n\t\tconst importsByName: Record<string, EventImport> = {}\n\n\t\tfor (let idx = 0; idx < filesByFqenAndEventKey.length; idx++) {\n\t\t\tconst imported = importsInOrder[idx]\n\t\t\tconst { fqen, eventKey, isSchema } = filesByFqenAndEventKey[idx]\n\n\t\t\tif (isSchema) {\n\t\t\t\ttry {\n\t\t\t\t\tvalidateSchema(imported)\n\t\t\t\t} catch (err: any) {\n\t\t\t\t\tthrow new SpruceError({\n\t\t\t\t\t\tcode: 'INVALID_EVENT_CONTRACT',\n\t\t\t\t\t\tfullyQualifiedEventName: fqen,\n\t\t\t\t\t\tbrokenProperty: eventKey,\n\t\t\t\t\t\toriginalError: err,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!importsByName[fqen]) {\n\t\t\t\timportsByName[fqen] = {}\n\t\t\t}\n\n\t\t\t//@ts-ignore\n\t\t\timportsByName[fqen][eventKey] = imported\n\t\t}\n\n\t\tObject.keys(importsByName).forEach((fqen) => {\n\t\t\tconst imported = importsByName[fqen]\n\t\t\tconst { eventName } = eventNameUtil.split(fqen)\n\t\t\teventSignatures[fqen] = {\n\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\teventName,\n\t\t\t\t\tpayloadSchema: imported.emitPayload,\n\t\t\t\t\ttargetSchema: imported.emitTarget,\n\t\t\t\t}),\n\t\t\t\tresponsePayloadSchema: imported.responsePayload,\n\t\t\t\temitPermissionContract: imported.emitPermissions,\n\t\t\t\tlistenPermissionContract: imported.listenPermissions,\n\t\t\t\t...imported.options,\n\t\t\t}\n\t\t})\n\n\t\tdidUpdateHandler?.(\n\t\t\t`Loaded ${Object.keys(eventSignatures).length} local event signatures...`\n\t\t)\n\n\t\tif (Object.keys(eventSignatures).length > 0) {\n\t\t\tconst cleaned = eventContractCleanerUtil.cleanPayloadsAndPermissions({\n\t\t\t\teventSignatures,\n\t\t\t})\n\n\t\t\tvalidateEventContract(cleaned)\n\n\t\t\treturn cleaned\n\t\t}\n\n\t\treturn null\n\t}\n\n\tpublic async registerEventContract(options: {\n\t\teventContract: EventContract\n\t}) {\n\t\tconst client = await this.connectToApi({ shouldAuthAsCurrentSkill: true })\n\n\t\tconst results = await client.emit('register-events::v2020_12_25', {\n\t\t\tpayload: {\n\t\t\t\tcontract: options.eventContract,\n\t\t\t},\n\t\t})\n\n\t\teventResponseUtil.getFirstResponseOrThrow(results)\n\n\t\tEventStore.contractCache = {}\n\n\t\treturn results\n\t}\n\n\tpublic async unRegisterEvents(\n\t\toptions: SpruceSchemas.Mercury.v2020_12_25.UnregisterEventsEmitPayload\n\t) {\n\t\tconst client = await this.connectToApi({ shouldAuthAsCurrentSkill: true })\n\n\t\tconst results = await client.emit('unregister-events::v2020_12_25', {\n\t\t\tpayload: options,\n\t\t})\n\n\t\teventResponseUtil.getFirstResponseOrThrow(results)\n\n\t\tEventStore.contractCache = {}\n\t}\n}\n"],"file":"EventStore.js"}
|
|
@@ -31,6 +31,8 @@ var _path = _interopRequireDefault(require("path"));
|
|
|
31
31
|
|
|
32
32
|
var _spruceSkillUtils = require("@sprucelabs/spruce-skill-utils");
|
|
33
33
|
|
|
34
|
+
var _uniq = _interopRequireDefault(require("lodash/uniq"));
|
|
35
|
+
|
|
34
36
|
var _syncSchemasOptions = _interopRequireDefault(require("../../../.spruce/schemas/spruceCli/v2020_07_22/syncSchemasOptions.schema"));
|
|
35
37
|
|
|
36
38
|
var _SpruceError = _interopRequireDefault(require("../../../errors/SpruceError"));
|
|
@@ -274,11 +276,11 @@ var SyncAction = /*#__PURE__*/function (_AbstractAction) {
|
|
|
274
276
|
while (1) {
|
|
275
277
|
switch (_context2.prev = _context2.next) {
|
|
276
278
|
case 0:
|
|
277
|
-
modules = schemaTemplateItems.map(function (item) {
|
|
279
|
+
modules = (0, _uniq["default"])(schemaTemplateItems.map(function (item) {
|
|
278
280
|
return item.importFrom;
|
|
279
281
|
}).filter(function (i) {
|
|
280
282
|
return !!i;
|
|
281
|
-
});
|
|
283
|
+
}));
|
|
282
284
|
notInstalled = [];
|
|
283
285
|
pkg = this.Service('pkg');
|
|
284
286
|
_iterator = _createForOfIteratorHelper(modules);
|