@sprucelabs/spruce-cli 14.29.4 → 14.29.8
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 +32 -0
- package/build/GlobalEmitter.js +2 -2
- package/build/__tests__/behavioral/InstallingASkillAtAnOrg.test.d.ts +1 -1
- package/build/__tests__/behavioral/InstallingASkillAtAnOrg.test.js +93 -93
- package/build/__tests__/behavioral/InstallingASkillAtAnOrg.test.js.map +1 -1
- package/build/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.js +2 -2
- package/build/__tests__/behavioral/events/CreatingAnEvent.test.js +2 -2
- package/build/__tests__/behavioral/events/KeepingEventsInSync2.test.js +2 -2
- package/build/__tests__/behavioral/views/CreatingASkillView.test.d.ts +1 -0
- package/build/__tests__/behavioral/views/CreatingASkillView.test.js +35 -3
- package/build/__tests__/behavioral/views/CreatingASkillView.test.js.map +1 -1
- package/build/__tests__/implementation/EventContractCleanerUtil.test.js +2 -2
- package/build/__tests__/implementation/EventTemplateItemBuilder.test.js +2 -2
- package/build/__tests__/implementation/PkgService.test.js +3 -6
- package/build/__tests__/implementation/PkgService.test.js.map +1 -1
- package/build/__tests__/implementation/SchemaStore.test.js +2 -2
- package/build/__tests__/implementation/SchemaTemplateItemBuilder.test.js +2 -2
- package/build/cli.js +11 -9
- package/build/cli.js.map +1 -1
- package/build/components/AbstractComponent.js +2 -2
- package/build/components/FormComponent.js +2 -2
- package/build/components/QuizComponent.js +2 -2
- package/build/features/AbstractAction.js +2 -2
- package/build/features/AbstractFeature.js +2 -2
- package/build/features/ActionExecuter.js +2 -2
- package/build/features/ActionFactory.js +2 -2
- package/build/features/ActionQuestionAsker.js +2 -2
- package/build/features/FeatureCommandAttacher.js +2 -2
- package/build/features/FeatureInstaller.js +2 -2
- package/build/features/OverrideActionDecorator.js +2 -2
- package/build/features/deploy/actions/HerokuAction.js.map +1 -1
- package/build/features/error/actions/CreateAction.js +2 -2
- package/build/features/error/actions/SyncAction.js +2 -2
- package/build/features/error/writers/ErrorWriter.js +2 -2
- package/build/features/event/EventFeature.js.map +1 -1
- package/build/features/event/actions/CreateAction.js +2 -2
- package/build/features/event/actions/ListenAction.js +2 -2
- package/build/features/event/builders/EventContractBuilder.js +2 -2
- package/build/features/event/builders/ListenerTemplateItemBuilder.js +2 -2
- package/build/features/event/stores/EventStore.js +2 -2
- package/build/features/event/stores/ListenerStore.js +2 -2
- package/build/features/event/writers/EventWriter.js +2 -2
- package/build/features/eventContract/EventContractFeature.js +3 -1
- package/build/features/eventContract/EventContractFeature.js.map +1 -1
- package/build/features/node/NodeFeature.js +12 -10
- package/build/features/node/NodeFeature.js.map +1 -1
- package/build/features/node/actions/UpgradeAction.js +10 -9
- package/build/features/node/actions/UpgradeAction.js.map +1 -1
- package/build/features/node/writers/NodeWriter.js +2 -2
- package/build/features/organization/OrganizationFeature.js +3 -1
- package/build/features/organization/OrganizationFeature.js.map +1 -1
- package/build/features/person/PersonFeature.js +3 -1
- package/build/features/person/PersonFeature.js.map +1 -1
- package/build/features/person/actions/LoginAction.js +2 -2
- package/build/features/sandbox/SandboxFeature.js +3 -1
- package/build/features/sandbox/SandboxFeature.js.map +1 -1
- package/build/features/schema/actions/CreateAction.js +2 -2
- package/build/features/schema/stores/SchemaStore.js +2 -2
- package/build/features/schema/utilities/schemaDisk.utility.js +2 -2
- package/build/features/schema/writers/SchemaWriter.js +2 -2
- package/build/features/skill/SkillFeature.js +2 -2
- package/build/features/skill/actions/CreateAction.js +2 -2
- package/build/features/skill/actions/RegisterAction.js +1 -0
- package/build/features/skill/actions/RegisterAction.js.map +1 -1
- package/build/features/skill/stores/SkillStore.js +2 -2
- package/build/features/skill/writers/SkillWriter.js +2 -2
- package/build/features/store/actions/CreateAction.js +2 -2
- package/build/features/test/TestFeature.js +2 -2
- package/build/features/test/TestReporter.js +2 -2
- package/build/features/test/TestRunner.js +2 -2
- package/build/features/test/actions/CreateAction.js +2 -2
- package/build/features/validateAndNormalize.utility.js +2 -2
- package/build/features/view/actions/CreateAction.js +2 -2
- package/build/features/view/writers/ViewWriter.js +2 -2
- package/build/features/vscode/VsCodeFeature.js +3 -1
- package/build/features/vscode/VsCodeFeature.js.map +1 -1
- package/build/interfaces/TerminalInterface.js +2 -2
- package/build/schemas/v2020_07_22/createConversationTopicOptions.builder.js +2 -2
- package/build/schemas/v2020_07_22/createErrorOptions.builder.js +2 -2
- package/build/schemas/v2020_07_22/createOrganizationOptions.builder.js +2 -2
- package/build/schemas/v2020_07_22/createSchemaOptions.builder.js +2 -2
- package/build/schemas/v2020_07_22/listenEventOptions.builder.js +2 -2
- package/build/schemas/v2020_07_22/syncErrorOptions.builder.js +2 -2
- package/build/schemas/v2020_07_22/syncSchemasOptions.builder.js +2 -2
- package/build/services/CommandService.js +2 -2
- package/build/services/PkgService.d.ts +4 -16
- package/build/services/PkgService.js +11 -127
- package/build/services/PkgService.js.map +1 -1
- package/build/services/ServiceFactory.d.ts +1 -2
- package/build/services/ServiceFactory.js +2 -4
- package/build/services/ServiceFactory.js.map +1 -1
- package/build/services/TypeCheckerService.js +4 -3
- package/build/services/TypeCheckerService.js.map +1 -1
- package/build/stores/AbstractLocalStore.js +2 -2
- package/build/templateItemBuilders/EventTemplateItemBuilder.js +2 -2
- package/build/templateItemBuilders/SchemaTemplateItemBuilder.js +2 -2
- package/build/tests/AbstractCliTest.js +2 -2
- package/build/tests/AbstractEventTest.js +2 -2
- package/build/tests/AbstractSchemaTest.js +2 -2
- package/build/tests/JestJsonParser.js +2 -2
- package/build/tests/fixtures/FeatureFixture.js +2 -2
- package/build/tests/fixtures/OrganizationFixture.js +2 -2
- package/build/tests/fixtures/PersonFixture.js +2 -2
- package/build/tests/fixtures/SkillFixture.js +2 -2
- package/build/types/cli.types.d.ts +1 -6
- package/build/types/cli.types.js +8 -0
- package/build/types/cli.types.js.map +1 -1
- package/build/updaters/ScriptUpdater.js +2 -2
- package/build/utilities/commander.utility.js +2 -2
- package/build/utilities/eventContractCleaner.utility.js +2 -2
- package/build/widgets/WidgetFactory.js +2 -2
- package/build/widgets/terminalKit/TKButtonWidget.js +2 -2
- package/build/widgets/terminalKit/TkBaseWidget.js +2 -2
- package/build/widgets/terminalKit/TkInputWidget.js +2 -2
- package/build/widgets/terminalKit/TkLayoutCellWidget.js +2 -2
- package/build/widgets/terminalKit/TkLayoutWidget.js +2 -2
- package/build/widgets/terminalKit/TkMenuBarWidget.js +2 -2
- package/build/widgets/terminalKit/TkPopupWidget.js +2 -2
- package/build/widgets/terminalKit/TkProgressBarWidget.js +2 -2
- package/build/widgets/terminalKit/TkTextWidget.js +2 -2
- package/build/widgets/terminalKit/termKit.utility.js +2 -2
- package/build/writers/AbstractWriter.js +2 -2
- package/build/writers/WriterFactory.js +2 -2
- package/package.json +36 -36
- package/src/__tests__/behavioral/InstallingASkillAtAnOrg.test.ts +6 -6
- package/src/__tests__/behavioral/views/CreatingASkillView.test.ts +16 -0
- package/src/__tests__/implementation/PkgService.test.ts +1 -2
- package/src/cli.ts +4 -1
- package/src/features/deploy/actions/HerokuAction.ts +1 -2
- package/src/features/event/EventFeature.ts +0 -1
- package/src/features/node/NodeFeature.ts +3 -0
- package/src/features/node/actions/UpgradeAction.ts +1 -0
- package/src/features/skill/actions/RegisterAction.ts +3 -0
- package/src/services/PkgService.ts +13 -93
- package/src/services/ServiceFactory.ts +10 -7
- package/src/types/cli.types.ts +1 -6
- package/build/__tests__/implementation/AuthService.test.d.ts +0 -14
- package/build/__tests__/implementation/AuthService.test.js +0 -255
- package/build/__tests__/implementation/AuthService.test.js.map +0 -1
- package/build/services/AuthService.d.ts +0 -23
- package/build/services/AuthService.js +0 -109
- package/build/services/AuthService.js.map +0 -1
- package/src/__tests__/implementation/AuthService.test.ts +0 -95
- package/src/services/AuthService.ts +0 -91
|
@@ -29,9 +29,9 @@ var _form = _interopRequireDefault(require("../utilities/form.utility"));
|
|
|
29
29
|
|
|
30
30
|
var _feature = _interopRequireDefault(require("./feature.utilities"));
|
|
31
31
|
|
|
32
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
32
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
33
33
|
|
|
34
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
34
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
35
35
|
|
|
36
36
|
function s(array) {
|
|
37
37
|
return array.length === 1 ? '' : '';
|
|
@@ -29,9 +29,9 @@ var _ui = _interopRequireDefault(require("../utilities/ui.utility"));
|
|
|
29
29
|
|
|
30
30
|
var _feature = _interopRequireDefault(require("./feature.utilities"));
|
|
31
31
|
|
|
32
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
32
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
33
33
|
|
|
34
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
34
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
35
35
|
|
|
36
36
|
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
37
37
|
|
|
@@ -33,9 +33,9 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
|
|
|
33
33
|
|
|
34
34
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
35
35
|
|
|
36
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
36
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
37
37
|
|
|
38
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
38
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
39
39
|
|
|
40
40
|
var FeatureInstaller = /*#__PURE__*/function () {
|
|
41
41
|
function FeatureInstaller(cwd, serviceFactory) {
|
|
@@ -25,9 +25,9 @@ var _SpruceError = _interopRequireDefault(require("../errors/SpruceError"));
|
|
|
25
25
|
|
|
26
26
|
var _feature = _interopRequireDefault(require("./feature.utilities"));
|
|
27
27
|
|
|
28
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
28
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
29
29
|
|
|
30
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
30
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
31
31
|
|
|
32
32
|
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
33
33
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/features/deploy/actions/HerokuAction.ts"],"names":["optionsSchema","id","description","fields","teamName","type","label","isRequired","shouldRunSilently","isPrivate","shouldBuildAndLint","defaultValue","shouldRunTests","DeployAction","options","results","assertRegisteredSkill","assertDependencies","assertLoggedInToHeroku","setupGitRepo","setupGitRemote","setupProcFile","procResults","actionUtil","mergeActionResults","assertNoPendingGitChanges","errors","validateAndNormalizeOptions","buildAndLint","runTests","deploy","ui","clear","skill","Service","getCurrentSkill","summaryLines","name","slug","apiKey","SpruceError","code","stage","friendlyMessage","execute","failed","stdout","toLowerCase","search","command","confirm","pass","pkg","skillName","get","prompt","namesUtil","toKebab","args","env","HOME","process","procFile","diskUtil","resolvePath","cwd","files","doesFileExist","writeFile","push","action","path","inRepo","missing","hint","length","dependencies","featureInstaller","isInstalled","isTestInstalled","startLoading","Action","watchMode","shouldReportWhileRunning","testResults","isSkillInstalled","build","shouldFixLintFirst","buildResults","AbstractAction"],"mappings":"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","sourcesContent":["import { buildSchema, SchemaValues } from '@sprucelabs/schema'\nimport { diskUtil, namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport SpruceError from '../../../errors/SpruceError'\nimport { SkillAuth } from '../../../services/AuthService'\nimport actionUtil from '../../../utilities/action.utility'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\n\nconst optionsSchema = buildSchema({\n\tid: 'deployHeroku',\n\tdescription: 'Deploy your skill to Heroku.',\n\tfields: {\n\t\tteamName: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'team name',\n\t\t\tisRequired: false,\n\t\t},\n\t\tshouldRunSilently: {\n\t\t\ttype: 'boolean',\n\t\t\tisPrivate: true,\n\t\t},\n\t\tshouldBuildAndLint: {\n\t\t\ttype: 'boolean',\n\t\t\tdefaultValue: true,\n\t\t},\n\t\tshouldRunTests: {\n\t\t\ttype: 'boolean',\n\t\t\tdefaultValue: true,\n\t\t},\n\t},\n})\n\ntype OptionsSchema = typeof optionsSchema\ntype Options = SchemaValues<OptionsSchema>\n\nexport default class DeployAction extends AbstractAction<OptionsSchema> {\n\tpublic optionsSchema = optionsSchema\n\tpublic commandAliases = ['deploy.heroku']\n\tpublic invocationMessage = 'Deploying to Heroku... 🚀'\n\n\tpublic async execute(options: Options): Promise<FeatureActionResponse> {\n\t\tlet results: FeatureActionResponse = {}\n\n\t\ttry {\n\t\t\tawait this.assertRegisteredSkill()\n\t\t\tawait this.assertDependencies()\n\t\t\tawait this.assertLoggedInToHeroku()\n\t\t\tawait this.setupGitRepo()\n\t\t\tawait this.setupGitRemote()\n\n\t\t\tconst procResults = await this.setupProcFile()\n\t\t\tresults = actionUtil.mergeActionResults(results, procResults)\n\n\t\t\tawait this.assertNoPendingGitChanges()\n\t\t} catch (err) {\n\t\t\treturn {\n\t\t\t\terrors: [err],\n\t\t\t}\n\t\t}\n\n\t\tconst { shouldBuildAndLint, shouldRunTests } =\n\t\t\tthis.validateAndNormalizeOptions(options)\n\n\t\tif (shouldBuildAndLint) {\n\t\t\tresults = await this.buildAndLint()\n\n\t\t\tif (results.errors) {\n\t\t\t\treturn results\n\t\t\t}\n\t\t}\n\n\t\tif (shouldRunTests) {\n\t\t\tresults = await this.runTests()\n\n\t\t\tif (results.errors) {\n\t\t\t\treturn results\n\t\t\t}\n\t\t}\n\n\t\tawait this.deploy()\n\n\t\tthis.ui.clear()\n\n\t\tconst skill = this.Service('auth').getCurrentSkill() as SkillAuth\n\n\t\tresults.summaryLines = [\n\t\t\t`You are good to go!`,\n\t\t\t\"You gotta make sure that your ENV's are set on Heroku to the following:\\n\",\n\t\t\t`SKILL_NAME=${skill.name}`,\n\t\t\t`SKILL_SLUG=${skill.slug}`,\n\t\t\t`SKILL_ID=${skill.id}`,\n\t\t\t`SKILL_API_KEY=${skill.apiKey}`,\n\t\t]\n\n\t\treturn results\n\t}\n\n\tprivate assertRegisteredSkill() {\n\t\tconst skill = this.Service('auth').getCurrentSkill()\n\t\tif (!skill) {\n\t\t\tthrow new SpruceError({\n\t\t\t\tcode: 'DEPLOY_FAILED',\n\t\t\t\tstage: 'skill',\n\t\t\t\tfriendlyMessage:\n\t\t\t\t\t'You have to register your skill. Try `spruce login && spruce register` to get going!',\n\t\t\t})\n\t\t}\n\t}\n\n\tprivate async deploy() {\n\t\tawait this.Service('command').execute(\n\t\t\t'git push --set-upstream heroku master'\n\t\t)\n\t}\n\n\tprivate async assertNoPendingGitChanges() {\n\t\tconst results = await this.Service('command').execute('git status')\n\n\t\tconst failed =\n\t\t\t(results.stdout ?? '').toLowerCase().search('not staged') > -1 ||\n\t\t\t(results.stdout ?? '').toLowerCase().search('no commits') > -1\n\n\t\tif (failed) {\n\t\t\tthrow new SpruceError({\n\t\t\t\tcode: 'DEPLOY_FAILED',\n\t\t\t\tstage: 'git',\n\t\t\t\tfriendlyMessage: 'You have pending changes. Commit them and try again!',\n\t\t\t})\n\t\t}\n\t}\n\n\tprivate async setupGitRemote() {\n\t\tconst command = this.Service('command')\n\n\t\ttry {\n\t\t\tawait command.execute('git ls-remote heroku')\n\n\t\t\treturn\n\t\t\t// eslint-disable-next-line no-empty\n\t\t} catch {}\n\n\t\tconst confirm = await this.ui.confirm(\n\t\t\t`I didn't find a a remote named \"heroku\", want me to create one?`\n\t\t)\n\n\t\tif (!confirm) {\n\t\t\tthrow new SpruceError({\n\t\t\t\tcode: 'DEPLOY_FAILED',\n\t\t\t\tstage: 'remote',\n\t\t\t\tfriendlyMessage:\n\t\t\t\t\t'You need to setup a remote named \"heroku\" that Heroku will pull from.',\n\t\t\t})\n\t\t}\n\n\t\tlet pass = false\n\t\tlet label =\n\t\t\t'What name do you wanna give your app on heroku (using-kebab-case)?'\n\n\t\tconst pkg = this.Service('pkg')\n\t\tconst skillName = pkg.get('name')\n\n\t\tdo {\n\t\t\tlet name = await this.ui.prompt({\n\t\t\t\ttype: 'text',\n\t\t\t\tlabel,\n\t\t\t\tdefaultValue: skillName,\n\t\t\t\tisRequired: true,\n\t\t\t})\n\n\t\t\tname = namesUtil.toKebab(name)\n\n\t\t\ttry {\n\t\t\t\tawait command.execute('heroku create', {\n\t\t\t\t\targs: [name],\n\t\t\t\t\tenv: { HOME: process.env.HOME },\n\t\t\t\t})\n\n\t\t\t\tpass = true\n\t\t\t} catch {\n\t\t\t\tlabel = `Uh oh, \"${name}\" is taken, try again!`\n\t\t\t}\n\t\t} while (!pass)\n\n\t\ttry {\n\t\t\tawait command.execute('heroku buildpacks:set heroku/nodejs', {\n\t\t\t\tenv: { HOME: process.env.HOME },\n\t\t\t})\n\t\t} catch {\n\t\t\tthrow new SpruceError({ code: 'DEPLOY_FAILED', stage: 'remote' })\n\t\t}\n\t}\n\n\tprivate async setupProcFile(): Promise<FeatureActionResponse> {\n\t\tconst procFile = diskUtil.resolvePath(this.cwd, 'Procfile')\n\t\tconst results: FeatureActionResponse = {\n\t\t\tfiles: [],\n\t\t}\n\t\tif (!diskUtil.doesFileExist(procFile)) {\n\t\t\tconst confirm = await this.ui.confirm(\n\t\t\t\t`I don't see a Procfile, which Heroku needs to know how to run your skill. Want me to create one?`\n\t\t\t)\n\t\t\tif (!confirm) {\n\t\t\t\tthrow new SpruceError({\n\t\t\t\t\tcode: 'DEPLOY_FAILED',\n\t\t\t\t\tstage: 'procfile',\n\t\t\t\t\tfriendlyMessage:\n\t\t\t\t\t\t'You are gonna need to create a Procfile in your project root so heroku knows how to run your skill.',\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tdiskUtil.writeFile(procFile, 'worker: npm run boot')\n\t\t\tresults.files?.push({\n\t\t\t\tname: 'Procfile',\n\t\t\t\taction: 'generated',\n\t\t\t\tpath: procFile,\n\t\t\t\tdescription: 'Used by Heroku to know how to run your skill.',\n\t\t\t})\n\t\t}\n\n\t\treturn results\n\t}\n\n\tprivate async setupGitRepo() {\n\t\tconst command = this.Service('command')\n\n\t\tlet inRepo = true\n\t\ttry {\n\t\t\tawait command.execute('git status')\n\t\t} catch {\n\t\t\tinRepo = false\n\t\t}\n\n\t\tif (!inRepo) {\n\t\t\tconst confirm = await this.ui.confirm(\n\t\t\t\t'You are not in a git repo. Would you like to initialize one now?'\n\t\t\t)\n\n\t\t\ttry {\n\t\t\t\tif (confirm) {\n\t\t\t\t\tawait command.execute('git init')\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\t// eslint-disable-next-line no-empty\n\t\t\t} catch {}\n\n\t\t\tthrow new SpruceError({\n\t\t\t\tcode: 'DEPLOY_FAILED',\n\t\t\t\tstage: 'git',\n\t\t\t\tfriendlyMessage: 'You must be in a git repo to deploy!',\n\t\t\t})\n\t\t}\n\t}\n\n\tpublic async assertLoggedInToHeroku() {\n\t\ttry {\n\t\t\tawait this.Service('command').execute('grep api.heroku.com ~/.netrc')\n\t\t} catch {\n\t\t\tthrow new SpruceError({\n\t\t\t\tcode: 'DEPLOY_FAILED',\n\t\t\t\tstage: 'heroku',\n\t\t\t\tfriendlyMessage: `You gotta be logged in using \\`heroku login\\` before you can deploy.!`,\n\t\t\t})\n\t\t}\n\t}\n\n\tprivate async assertDependencies() {\n\t\tconst command = this.Service('command')\n\t\tconst missing: { name: string; hint: string }[] = []\n\n\t\ttry {\n\t\t\tawait command.execute('which heroku')\n\t\t} catch {\n\t\t\tmissing.push({\n\t\t\t\tname: 'heroku',\n\t\t\t\thint: 'Follow install instructions @ https://devcenter.heroku.com/articles/heroku-cli#download-and-install',\n\t\t\t})\n\t\t}\n\n\t\ttry {\n\t\t\tawait command.execute('which git')\n\t\t} catch {\n\t\t\tmissing.push({\n\t\t\t\tname: 'git',\n\t\t\t\thint: 'Follow install instructions @ https://git-scm.com/downloads',\n\t\t\t})\n\t\t}\n\n\t\tif (missing.length > 0) {\n\t\t\tthrow new SpruceError({\n\t\t\t\tcode: 'MISSING_DEPENDENCIES',\n\t\t\t\tdependencies: missing,\n\t\t\t})\n\t\t}\n\t}\n\n\tprivate async runTests() {\n\t\tlet results: FeatureActionResponse = {}\n\n\t\tconst isTestInstalled = await this.featureInstaller.isInstalled('test')\n\n\t\tif (isTestInstalled) {\n\t\t\ttry {\n\t\t\t\tthis.ui.startLoading('Testing your skill. Hold onto your pants. 👖')\n\n\t\t\t\tconst testResults = await this.Action('test', 'test').execute({\n\t\t\t\t\twatchMode: 'off',\n\t\t\t\t\tshouldReportWhileRunning: false,\n\t\t\t\t})\n\n\t\t\t\tresults = actionUtil.mergeActionResults(results, testResults)\n\t\t\t} catch (err) {\n\t\t\t\tresults = {\n\t\t\t\t\terrors: [\n\t\t\t\t\t\tnew SpruceError({ code: 'DEPLOY_FAILED', stage: 'testing' }),\n\t\t\t\t\t],\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn results\n\t}\n\n\tprivate async buildAndLint() {\n\t\tlet results: FeatureActionResponse = {}\n\n\t\tconst isSkillInstalled = await this.featureInstaller.isInstalled('skill')\n\n\t\tif (isSkillInstalled) {\n\t\t\ttry {\n\t\t\t\tthis.ui.startLoading('Building your skill. This may take a minute...')\n\n\t\t\t\tconst buildResults = await this.Service('build').build({\n\t\t\t\t\tshouldFixLintFirst: true,\n\t\t\t\t})\n\n\t\t\t\tresults = actionUtil.mergeActionResults(results, buildResults)\n\t\t\t} catch (err) {\n\t\t\t\tresults = {\n\t\t\t\t\terrors: [\n\t\t\t\t\t\tnew SpruceError({ code: 'DEPLOY_FAILED', stage: 'building' }),\n\t\t\t\t\t],\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn results\n\t}\n}\n"],"file":"HerokuAction.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/features/deploy/actions/HerokuAction.ts"],"names":["optionsSchema","id","description","fields","teamName","type","label","isRequired","shouldRunSilently","isPrivate","shouldBuildAndLint","defaultValue","shouldRunTests","DeployAction","options","results","assertRegisteredSkill","assertDependencies","assertLoggedInToHeroku","setupGitRepo","setupGitRemote","setupProcFile","procResults","actionUtil","mergeActionResults","assertNoPendingGitChanges","errors","validateAndNormalizeOptions","buildAndLint","runTests","deploy","ui","clear","skill","Service","getCurrentSkill","summaryLines","name","slug","apiKey","SpruceError","code","stage","friendlyMessage","execute","failed","stdout","toLowerCase","search","command","confirm","pass","pkg","skillName","get","prompt","namesUtil","toKebab","args","env","HOME","process","procFile","diskUtil","resolvePath","cwd","files","doesFileExist","writeFile","push","action","path","inRepo","missing","hint","length","dependencies","featureInstaller","isInstalled","isTestInstalled","startLoading","Action","watchMode","shouldReportWhileRunning","testResults","isSkillInstalled","build","shouldFixLintFirst","buildResults","AbstractAction"],"mappings":"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","sourcesContent":["import { buildSchema, SchemaValues } from '@sprucelabs/schema'\nimport { diskUtil, namesUtil, SkillAuth } from '@sprucelabs/spruce-skill-utils'\nimport SpruceError from '../../../errors/SpruceError'\nimport actionUtil from '../../../utilities/action.utility'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\n\nconst optionsSchema = buildSchema({\n\tid: 'deployHeroku',\n\tdescription: 'Deploy your skill to Heroku.',\n\tfields: {\n\t\tteamName: {\n\t\t\ttype: 'text',\n\t\t\tlabel: 'team name',\n\t\t\tisRequired: false,\n\t\t},\n\t\tshouldRunSilently: {\n\t\t\ttype: 'boolean',\n\t\t\tisPrivate: true,\n\t\t},\n\t\tshouldBuildAndLint: {\n\t\t\ttype: 'boolean',\n\t\t\tdefaultValue: true,\n\t\t},\n\t\tshouldRunTests: {\n\t\t\ttype: 'boolean',\n\t\t\tdefaultValue: true,\n\t\t},\n\t},\n})\n\ntype OptionsSchema = typeof optionsSchema\ntype Options = SchemaValues<OptionsSchema>\n\nexport default class DeployAction extends AbstractAction<OptionsSchema> {\n\tpublic optionsSchema = optionsSchema\n\tpublic commandAliases = ['deploy.heroku']\n\tpublic invocationMessage = 'Deploying to Heroku... 🚀'\n\n\tpublic async execute(options: Options): Promise<FeatureActionResponse> {\n\t\tlet results: FeatureActionResponse = {}\n\n\t\ttry {\n\t\t\tawait this.assertRegisteredSkill()\n\t\t\tawait this.assertDependencies()\n\t\t\tawait this.assertLoggedInToHeroku()\n\t\t\tawait this.setupGitRepo()\n\t\t\tawait this.setupGitRemote()\n\n\t\t\tconst procResults = await this.setupProcFile()\n\t\t\tresults = actionUtil.mergeActionResults(results, procResults)\n\n\t\t\tawait this.assertNoPendingGitChanges()\n\t\t} catch (err) {\n\t\t\treturn {\n\t\t\t\terrors: [err],\n\t\t\t}\n\t\t}\n\n\t\tconst { shouldBuildAndLint, shouldRunTests } =\n\t\t\tthis.validateAndNormalizeOptions(options)\n\n\t\tif (shouldBuildAndLint) {\n\t\t\tresults = await this.buildAndLint()\n\n\t\t\tif (results.errors) {\n\t\t\t\treturn results\n\t\t\t}\n\t\t}\n\n\t\tif (shouldRunTests) {\n\t\t\tresults = await this.runTests()\n\n\t\t\tif (results.errors) {\n\t\t\t\treturn results\n\t\t\t}\n\t\t}\n\n\t\tawait this.deploy()\n\n\t\tthis.ui.clear()\n\n\t\tconst skill = this.Service('auth').getCurrentSkill() as SkillAuth\n\n\t\tresults.summaryLines = [\n\t\t\t`You are good to go!`,\n\t\t\t\"You gotta make sure that your ENV's are set on Heroku to the following:\\n\",\n\t\t\t`SKILL_NAME=${skill.name}`,\n\t\t\t`SKILL_SLUG=${skill.slug}`,\n\t\t\t`SKILL_ID=${skill.id}`,\n\t\t\t`SKILL_API_KEY=${skill.apiKey}`,\n\t\t]\n\n\t\treturn results\n\t}\n\n\tprivate assertRegisteredSkill() {\n\t\tconst skill = this.Service('auth').getCurrentSkill()\n\t\tif (!skill) {\n\t\t\tthrow new SpruceError({\n\t\t\t\tcode: 'DEPLOY_FAILED',\n\t\t\t\tstage: 'skill',\n\t\t\t\tfriendlyMessage:\n\t\t\t\t\t'You have to register your skill. Try `spruce login && spruce register` to get going!',\n\t\t\t})\n\t\t}\n\t}\n\n\tprivate async deploy() {\n\t\tawait this.Service('command').execute(\n\t\t\t'git push --set-upstream heroku master'\n\t\t)\n\t}\n\n\tprivate async assertNoPendingGitChanges() {\n\t\tconst results = await this.Service('command').execute('git status')\n\n\t\tconst failed =\n\t\t\t(results.stdout ?? '').toLowerCase().search('not staged') > -1 ||\n\t\t\t(results.stdout ?? '').toLowerCase().search('no commits') > -1\n\n\t\tif (failed) {\n\t\t\tthrow new SpruceError({\n\t\t\t\tcode: 'DEPLOY_FAILED',\n\t\t\t\tstage: 'git',\n\t\t\t\tfriendlyMessage: 'You have pending changes. Commit them and try again!',\n\t\t\t})\n\t\t}\n\t}\n\n\tprivate async setupGitRemote() {\n\t\tconst command = this.Service('command')\n\n\t\ttry {\n\t\t\tawait command.execute('git ls-remote heroku')\n\n\t\t\treturn\n\t\t\t// eslint-disable-next-line no-empty\n\t\t} catch {}\n\n\t\tconst confirm = await this.ui.confirm(\n\t\t\t`I didn't find a a remote named \"heroku\", want me to create one?`\n\t\t)\n\n\t\tif (!confirm) {\n\t\t\tthrow new SpruceError({\n\t\t\t\tcode: 'DEPLOY_FAILED',\n\t\t\t\tstage: 'remote',\n\t\t\t\tfriendlyMessage:\n\t\t\t\t\t'You need to setup a remote named \"heroku\" that Heroku will pull from.',\n\t\t\t})\n\t\t}\n\n\t\tlet pass = false\n\t\tlet label =\n\t\t\t'What name do you wanna give your app on heroku (using-kebab-case)?'\n\n\t\tconst pkg = this.Service('pkg')\n\t\tconst skillName = pkg.get('name')\n\n\t\tdo {\n\t\t\tlet name = await this.ui.prompt({\n\t\t\t\ttype: 'text',\n\t\t\t\tlabel,\n\t\t\t\tdefaultValue: skillName,\n\t\t\t\tisRequired: true,\n\t\t\t})\n\n\t\t\tname = namesUtil.toKebab(name)\n\n\t\t\ttry {\n\t\t\t\tawait command.execute('heroku create', {\n\t\t\t\t\targs: [name],\n\t\t\t\t\tenv: { HOME: process.env.HOME },\n\t\t\t\t})\n\n\t\t\t\tpass = true\n\t\t\t} catch {\n\t\t\t\tlabel = `Uh oh, \"${name}\" is taken, try again!`\n\t\t\t}\n\t\t} while (!pass)\n\n\t\ttry {\n\t\t\tawait command.execute('heroku buildpacks:set heroku/nodejs', {\n\t\t\t\tenv: { HOME: process.env.HOME },\n\t\t\t})\n\t\t} catch {\n\t\t\tthrow new SpruceError({ code: 'DEPLOY_FAILED', stage: 'remote' })\n\t\t}\n\t}\n\n\tprivate async setupProcFile(): Promise<FeatureActionResponse> {\n\t\tconst procFile = diskUtil.resolvePath(this.cwd, 'Procfile')\n\t\tconst results: FeatureActionResponse = {\n\t\t\tfiles: [],\n\t\t}\n\t\tif (!diskUtil.doesFileExist(procFile)) {\n\t\t\tconst confirm = await this.ui.confirm(\n\t\t\t\t`I don't see a Procfile, which Heroku needs to know how to run your skill. Want me to create one?`\n\t\t\t)\n\t\t\tif (!confirm) {\n\t\t\t\tthrow new SpruceError({\n\t\t\t\t\tcode: 'DEPLOY_FAILED',\n\t\t\t\t\tstage: 'procfile',\n\t\t\t\t\tfriendlyMessage:\n\t\t\t\t\t\t'You are gonna need to create a Procfile in your project root so heroku knows how to run your skill.',\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tdiskUtil.writeFile(procFile, 'worker: npm run boot')\n\t\t\tresults.files?.push({\n\t\t\t\tname: 'Procfile',\n\t\t\t\taction: 'generated',\n\t\t\t\tpath: procFile,\n\t\t\t\tdescription: 'Used by Heroku to know how to run your skill.',\n\t\t\t})\n\t\t}\n\n\t\treturn results\n\t}\n\n\tprivate async setupGitRepo() {\n\t\tconst command = this.Service('command')\n\n\t\tlet inRepo = true\n\t\ttry {\n\t\t\tawait command.execute('git status')\n\t\t} catch {\n\t\t\tinRepo = false\n\t\t}\n\n\t\tif (!inRepo) {\n\t\t\tconst confirm = await this.ui.confirm(\n\t\t\t\t'You are not in a git repo. Would you like to initialize one now?'\n\t\t\t)\n\n\t\t\ttry {\n\t\t\t\tif (confirm) {\n\t\t\t\t\tawait command.execute('git init')\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\t// eslint-disable-next-line no-empty\n\t\t\t} catch {}\n\n\t\t\tthrow new SpruceError({\n\t\t\t\tcode: 'DEPLOY_FAILED',\n\t\t\t\tstage: 'git',\n\t\t\t\tfriendlyMessage: 'You must be in a git repo to deploy!',\n\t\t\t})\n\t\t}\n\t}\n\n\tpublic async assertLoggedInToHeroku() {\n\t\ttry {\n\t\t\tawait this.Service('command').execute('grep api.heroku.com ~/.netrc')\n\t\t} catch {\n\t\t\tthrow new SpruceError({\n\t\t\t\tcode: 'DEPLOY_FAILED',\n\t\t\t\tstage: 'heroku',\n\t\t\t\tfriendlyMessage: `You gotta be logged in using \\`heroku login\\` before you can deploy.!`,\n\t\t\t})\n\t\t}\n\t}\n\n\tprivate async assertDependencies() {\n\t\tconst command = this.Service('command')\n\t\tconst missing: { name: string; hint: string }[] = []\n\n\t\ttry {\n\t\t\tawait command.execute('which heroku')\n\t\t} catch {\n\t\t\tmissing.push({\n\t\t\t\tname: 'heroku',\n\t\t\t\thint: 'Follow install instructions @ https://devcenter.heroku.com/articles/heroku-cli#download-and-install',\n\t\t\t})\n\t\t}\n\n\t\ttry {\n\t\t\tawait command.execute('which git')\n\t\t} catch {\n\t\t\tmissing.push({\n\t\t\t\tname: 'git',\n\t\t\t\thint: 'Follow install instructions @ https://git-scm.com/downloads',\n\t\t\t})\n\t\t}\n\n\t\tif (missing.length > 0) {\n\t\t\tthrow new SpruceError({\n\t\t\t\tcode: 'MISSING_DEPENDENCIES',\n\t\t\t\tdependencies: missing,\n\t\t\t})\n\t\t}\n\t}\n\n\tprivate async runTests() {\n\t\tlet results: FeatureActionResponse = {}\n\n\t\tconst isTestInstalled = await this.featureInstaller.isInstalled('test')\n\n\t\tif (isTestInstalled) {\n\t\t\ttry {\n\t\t\t\tthis.ui.startLoading('Testing your skill. Hold onto your pants. 👖')\n\n\t\t\t\tconst testResults = await this.Action('test', 'test').execute({\n\t\t\t\t\twatchMode: 'off',\n\t\t\t\t\tshouldReportWhileRunning: false,\n\t\t\t\t})\n\n\t\t\t\tresults = actionUtil.mergeActionResults(results, testResults)\n\t\t\t} catch (err) {\n\t\t\t\tresults = {\n\t\t\t\t\terrors: [\n\t\t\t\t\t\tnew SpruceError({ code: 'DEPLOY_FAILED', stage: 'testing' }),\n\t\t\t\t\t],\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn results\n\t}\n\n\tprivate async buildAndLint() {\n\t\tlet results: FeatureActionResponse = {}\n\n\t\tconst isSkillInstalled = await this.featureInstaller.isInstalled('skill')\n\n\t\tif (isSkillInstalled) {\n\t\t\ttry {\n\t\t\t\tthis.ui.startLoading('Building your skill. This may take a minute...')\n\n\t\t\t\tconst buildResults = await this.Service('build').build({\n\t\t\t\t\tshouldFixLintFirst: true,\n\t\t\t\t})\n\n\t\t\t\tresults = actionUtil.mergeActionResults(results, buildResults)\n\t\t\t} catch (err) {\n\t\t\t\tresults = {\n\t\t\t\t\terrors: [\n\t\t\t\t\t\tnew SpruceError({ code: 'DEPLOY_FAILED', stage: 'building' }),\n\t\t\t\t\t],\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn results\n\t}\n}\n"],"file":"HerokuAction.js"}
|
|
@@ -37,9 +37,9 @@ var _action = _interopRequireDefault(require("../../../utilities/action.utility"
|
|
|
37
37
|
|
|
38
38
|
var _AbstractAction2 = _interopRequireDefault(require("../../AbstractAction"));
|
|
39
39
|
|
|
40
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
40
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
41
41
|
|
|
42
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
42
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
43
43
|
|
|
44
44
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
45
45
|
|
|
@@ -37,9 +37,9 @@ var _syncSchemasOptions = _interopRequireDefault(require("../../../.spruce/schem
|
|
|
37
37
|
|
|
38
38
|
var _AbstractAction2 = _interopRequireDefault(require("../../AbstractAction"));
|
|
39
39
|
|
|
40
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
40
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
41
41
|
|
|
42
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
42
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
43
43
|
|
|
44
44
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
45
45
|
|
|
@@ -35,9 +35,9 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
|
|
|
35
35
|
|
|
36
36
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
37
37
|
|
|
38
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
38
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
39
39
|
|
|
40
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
40
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
41
41
|
|
|
42
42
|
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); }; }
|
|
43
43
|
|
|
@@ -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","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"}
|
|
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\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"}
|
|
@@ -47,9 +47,9 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
|
|
|
47
47
|
|
|
48
48
|
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; } }
|
|
49
49
|
|
|
50
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
50
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
51
51
|
|
|
52
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
52
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
53
53
|
|
|
54
54
|
var optionsSchema = (0, _schema.buildSchema)({
|
|
55
55
|
id: 'createEventAction',
|
|
@@ -47,9 +47,9 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
|
|
|
47
47
|
|
|
48
48
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
49
49
|
|
|
50
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
50
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
51
51
|
|
|
52
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
52
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
53
53
|
|
|
54
54
|
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); }; }
|
|
55
55
|
|
|
@@ -29,9 +29,9 @@ var _EventTemplateItemBuilder = _interopRequireDefault(require("../../../templat
|
|
|
29
29
|
|
|
30
30
|
var _validateAndNormalize = _interopRequireDefault(require("../../validateAndNormalize.utility"));
|
|
31
31
|
|
|
32
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
32
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
33
33
|
|
|
34
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
34
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
35
35
|
|
|
36
36
|
var EventContractBuilder = /*#__PURE__*/function () {
|
|
37
37
|
function EventContractBuilder(options) {
|
|
@@ -17,9 +17,9 @@ var _path = _interopRequireDefault(require("path"));
|
|
|
17
17
|
|
|
18
18
|
var _spruceSkillUtils = require("@sprucelabs/spruce-skill-utils");
|
|
19
19
|
|
|
20
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
20
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
21
21
|
|
|
22
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
22
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
23
23
|
|
|
24
24
|
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
25
25
|
|
|
@@ -45,9 +45,9 @@ var _AbstractStore2 = _interopRequireDefault(require("../../../stores/AbstractSt
|
|
|
45
45
|
|
|
46
46
|
var _eventContractCleaner = require("../../../utilities/eventContractCleaner.utility");
|
|
47
47
|
|
|
48
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
48
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
49
49
|
|
|
50
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
50
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
51
51
|
|
|
52
52
|
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
53
53
|
|
|
@@ -33,9 +33,9 @@ var _globby = _interopRequireDefault(require("globby"));
|
|
|
33
33
|
|
|
34
34
|
var _AbstractStore2 = _interopRequireDefault(require("../../../stores/AbstractStore"));
|
|
35
35
|
|
|
36
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
36
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
37
37
|
|
|
38
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
38
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
39
39
|
|
|
40
40
|
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
41
41
|
|
|
@@ -32,9 +32,9 @@ var _spruceSkillUtils = require("@sprucelabs/spruce-skill-utils");
|
|
|
32
32
|
|
|
33
33
|
var _AbstractWriter2 = _interopRequireDefault(require("../../../writers/AbstractWriter"));
|
|
34
34
|
|
|
35
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
35
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
36
36
|
|
|
37
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
37
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
38
38
|
|
|
39
39
|
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
40
40
|
|
|
@@ -11,6 +11,8 @@ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"))
|
|
|
11
11
|
|
|
12
12
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
13
13
|
|
|
14
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
15
|
+
|
|
14
16
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
15
17
|
|
|
16
18
|
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
@@ -70,7 +72,7 @@ var EventContractFeature = /*#__PURE__*/function (_AbstractFeature) {
|
|
|
70
72
|
return _this;
|
|
71
73
|
}
|
|
72
74
|
|
|
73
|
-
return EventContractFeature;
|
|
75
|
+
return (0, _createClass2["default"])(EventContractFeature);
|
|
74
76
|
}(_AbstractFeature2["default"]);
|
|
75
77
|
|
|
76
78
|
exports["default"] = EventContractFeature;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/features/eventContract/EventContractFeature.ts"],"names":["EventContractFeature","diskUtil","resolvePath","__dirname","AbstractFeature"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../src/features/eventContract/EventContractFeature.ts"],"names":["EventContractFeature","diskUtil","resolvePath","__dirname","AbstractFeature"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAEA;;;;;;IASqBA,oB;;;;;;;;;;;;;;;6FACO,e;qGACL,gB;oGAErB,wG;qGAC0C,E;4GACd,E;mGAETC,2BAASC,WAAT,CAAqBC,SAArB,EAAgC,SAAhC,C;yGACkC,E;+LAEjC;AAAA;AAAA;AAAA;AAAA;AAAA,+CAAY,IAAZ;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,K;;;;;EAX4BC,4B","sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { FileDescription } from '../../types/cli.types'\nimport AbstractFeature, { FeatureDependency } from '../AbstractFeature'\nimport { FeatureCode } from '../features.types'\n\ndeclare module '../../features/features.types' {\n\tinterface FeatureMap {\n\t\teventContract: EventContractFeature\n\t}\n}\n\nexport default class EventContractFeature extends AbstractFeature {\n\tpublic code: FeatureCode = 'eventContract'\n\tpublic nameReadable = 'Event Contract'\n\tpublic description =\n\t\t'Pull core Mercury events down and write to single, portable, dependency-free, strongly typed contract.'\n\tpublic dependencies: FeatureDependency[] = []\n\tpublic packageDependencies = []\n\n\tpublic actionsDir = diskUtil.resolvePath(__dirname, 'actions')\n\tpublic readonly fileDescriptions: FileDescription[] = []\n\n\tpublic isInstalled = async () => true\n}\n"],"file":"EventContractFeature.js"}
|
|
@@ -41,9 +41,9 @@ var _universalFileDescriptions = _interopRequireDefault(require("../universalFil
|
|
|
41
41
|
|
|
42
42
|
var _universalScripts = _interopRequireDefault(require("../universalScripts"));
|
|
43
43
|
|
|
44
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
44
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
45
45
|
|
|
46
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
46
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
47
47
|
|
|
48
48
|
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); }; }
|
|
49
49
|
|
|
@@ -122,33 +122,35 @@ var NodeFeature = /*#__PURE__*/function (_AbstractFeature) {
|
|
|
122
122
|
switch (_context3.prev = _context3.next) {
|
|
123
123
|
case 0:
|
|
124
124
|
_context3.prev = 0;
|
|
125
|
+
this.ui.clear();
|
|
126
|
+
this.ui.renderHero('Upgrade');
|
|
125
127
|
this.ui.startLoading('Cleaning build...');
|
|
126
|
-
_context3.next =
|
|
128
|
+
_context3.next = 6;
|
|
127
129
|
return this.Service('command').execute('yarn clean.build');
|
|
128
130
|
|
|
129
|
-
case
|
|
131
|
+
case 6:
|
|
130
132
|
this.ui.startLoading('Building for development...');
|
|
131
|
-
_context3.next =
|
|
133
|
+
_context3.next = 9;
|
|
132
134
|
return this.Service('command').execute('yarn build.dev');
|
|
133
135
|
|
|
134
|
-
case
|
|
136
|
+
case 9:
|
|
135
137
|
return _context3.abrupt("return", {
|
|
136
138
|
summaryLines: ['Build cleared.', 'Lint rules applied to source.', 'Code rebuilt successfully.']
|
|
137
139
|
});
|
|
138
140
|
|
|
139
|
-
case
|
|
140
|
-
_context3.prev =
|
|
141
|
+
case 12:
|
|
142
|
+
_context3.prev = 12;
|
|
141
143
|
_context3.t0 = _context3["catch"](0);
|
|
142
144
|
return _context3.abrupt("return", {
|
|
143
145
|
errors: [_context3.t0]
|
|
144
146
|
});
|
|
145
147
|
|
|
146
|
-
case
|
|
148
|
+
case 15:
|
|
147
149
|
case "end":
|
|
148
150
|
return _context3.stop();
|
|
149
151
|
}
|
|
150
152
|
}
|
|
151
|
-
}, _callee3, this, [[0,
|
|
153
|
+
}, _callee3, this, [[0, 12]]);
|
|
152
154
|
}));
|
|
153
155
|
|
|
154
156
|
function handleUpgrade() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/features/node/NodeFeature.ts"],"names":["NodeFeature","options","nodeFeatureOptionsSchema","universalDevDependencies","universalScripts","universalFileDescriptions","diskUtil","resolvePath","__dirname","doesFileExist","cwd","emitter","on","payload","featureCode","actionCode","handleUpgrade","ui","startLoading","Service","execute","summaryLines","errors","destination","resolveDestination","doesDirExist","createDir","files","name","path","action","Writer","writeNodeModule","written","push","installScripts","pkg","set","value","namesUtil","toKebab","description","unset","Store","setCurrentSkillsNamespace","scriptUpdater","ScriptUpdater","FromFeature","update","AbstractFeature"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;;AACA;;AAEA;;AACA;;AAMA;;AACA;;AACA;;;;;;;;;;IAgBqBA,W;;;;;AAoBpB,uBAAmBC,OAAnB,EAA2C;AAAA;;AAAA;AAC1C,8BAAMA,OAAN;AAD0C,6FAjBhB,MAiBgB;AAAA,qGAhBrB,gBAgBqB;AAAA,oGAftB,EAesB;AAAA,qGAdA,EAcA;AAAA,sGAbpBC,8BAaoB;AAAA,gJAZVC,oCAYU;AAAA,kHATvCC,4BASuC;AAAA,6IALvCC,qCAKuC;AAAA,mGAFvBC,2BAASC,WAAT,CAAqBC,SAArB,EAAgC,SAAhC,CAEuB;AAAA,+
|
|
1
|
+
{"version":3,"sources":["../../../src/features/node/NodeFeature.ts"],"names":["NodeFeature","options","nodeFeatureOptionsSchema","universalDevDependencies","universalScripts","universalFileDescriptions","diskUtil","resolvePath","__dirname","doesFileExist","cwd","emitter","on","payload","featureCode","actionCode","handleUpgrade","ui","clear","renderHero","startLoading","Service","execute","summaryLines","errors","destination","resolveDestination","doesDirExist","createDir","files","name","path","action","Writer","writeNodeModule","written","push","installScripts","pkg","set","value","namesUtil","toKebab","description","unset","Store","setCurrentSkillsNamespace","scriptUpdater","ScriptUpdater","FromFeature","update","AbstractFeature"],"mappings":"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","sourcesContent":["import { Schema, SchemaValues } from '@sprucelabs/schema'\nimport { SpruceSchemas } from '@sprucelabs/spruce-core-schemas'\nimport { diskUtil, namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport nodeFeatureOptionsSchema from '#spruce/schemas/spruceCli/v2020_07_22/nodeFeatureOptions.schema'\nimport { FileDescription, GeneratedFile } from '../../types/cli.types'\nimport ScriptUpdater from '../../updaters/ScriptUpdater'\nimport AbstractFeature, { FeatureDependency } from '../AbstractFeature'\nimport {\n\tActionOptions,\n\tFeatureActionResponse,\n\tFeatureCode,\n} from '../features.types'\nimport universalDevDependencies from '../universalDevDependencies'\nimport universalFileDescriptions from '../universalFileDescriptions'\nimport universalScripts from '../universalScripts'\n\ntype OptionsSchema =\n\tSpruceSchemas.SpruceCli.v2020_07_22.NodeFeatureOptionsSchema\ntype Options = SpruceSchemas.SpruceCli.v2020_07_22.NodeFeatureOptions\n\ndeclare module '../../features/features.types' {\n\tinterface FeatureMap {\n\t\tnode: NodeFeature\n\t}\n\n\tinterface FeatureOptionsMap {\n\t\tnode: SchemaValues<OptionsSchema>\n\t}\n}\n\nexport default class NodeFeature<\n\tS extends OptionsSchema = OptionsSchema\n> extends AbstractFeature<S> {\n\tpublic code: FeatureCode = 'node'\n\tpublic nameReadable = 'nodejs support'\n\tpublic description = ''\n\tpublic dependencies: FeatureDependency[] = []\n\tpublic optionsSchema = nodeFeatureOptionsSchema as S\n\tpublic packageDependencies = [...universalDevDependencies]\n\n\tpublic scripts = {\n\t\t...universalScripts,\n\t}\n\n\tpublic readonly fileDescriptions: FileDescription[] = [\n\t\t...universalFileDescriptions,\n\t]\n\n\tpublic actionsDir = diskUtil.resolvePath(__dirname, 'actions')\n\n\tpublic constructor(options: ActionOptions) {\n\t\tsuper(options)\n\n\t\tvoid this.emitter.on('feature.did-execute', async (payload) => {\n\t\t\tif (payload.featureCode === 'node' && payload.actionCode === 'upgrade') {\n\t\t\t\treturn this.handleUpgrade()\n\t\t\t}\n\n\t\t\treturn {}\n\t\t})\n\t}\n\n\tprivate async handleUpgrade(): Promise<FeatureActionResponse> {\n\t\ttry {\n\t\t\tthis.ui.clear()\n\t\t\tthis.ui.renderHero('Upgrade')\n\n\t\t\tthis.ui.startLoading('Cleaning build...')\n\t\t\tawait this.Service('command').execute('yarn clean.build')\n\n\t\t\tthis.ui.startLoading('Building for development...')\n\t\t\tawait this.Service('command').execute('yarn build.dev')\n\n\t\t\treturn {\n\t\t\t\tsummaryLines: [\n\t\t\t\t\t'Build cleared.',\n\t\t\t\t\t'Lint rules applied to source.',\n\t\t\t\t\t'Code rebuilt successfully.',\n\t\t\t\t],\n\t\t\t}\n\t\t} catch (err) {\n\t\t\treturn {\n\t\t\t\terrors: [err],\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic async beforePackageInstall(options: Options) {\n\t\tconst destination = this.resolveDestination(options)\n\n\t\tif (!diskUtil.doesDirExist(destination)) {\n\t\t\tdiskUtil.createDir(destination)\n\t\t}\n\n\t\tconst files: GeneratedFile[] = [\n\t\t\t{\n\t\t\t\tname: 'package.json',\n\t\t\t\tpath: diskUtil.resolvePath(destination, 'package.json'),\n\t\t\t\taction: 'generated',\n\t\t\t},\n\t\t]\n\n\t\tawait this.Service('command', destination).execute('yarn init -y')\n\n\t\tconst written = await this.Writer('node').writeNodeModule(destination)\n\n\t\tfiles.push(...written)\n\n\t\tawait this.installScripts(destination)\n\n\t\treturn { files, cwd: destination }\n\t}\n\n\tprivate resolveDestination(options: Options) {\n\t\treturn diskUtil.resolvePath(this.cwd, options.destination ?? '')\n\t}\n\n\tpublic async afterPackageInstall(\n\t\toptions: S extends Schema ? SchemaValues<S> : undefined\n\t) {\n\t\tconst cwd = this.resolveDestination(options)\n\t\tconst pkg = this.Service('pkg', cwd)\n\n\t\tpkg.set({ path: 'name', value: namesUtil.toKebab(options.name) })\n\t\tpkg.set({ path: 'description', value: options.description })\n\t\tpkg.set({ path: 'version', value: '0.0.1' })\n\n\t\tpkg.unset('main')\n\t\tpkg.unset('license')\n\n\t\tawait this.Store('skill', { cwd }).setCurrentSkillsNamespace(options.name)\n\n\t\treturn {}\n\t}\n\n\tprivate async installScripts(destination = this.cwd) {\n\t\tconst scriptUpdater = ScriptUpdater.FromFeature(this, {\n\t\t\tcwd: destination,\n\t\t})\n\n\t\tawait scriptUpdater.update()\n\t}\n\n\tpublic isInstalled = async (): Promise<boolean> => {\n\t\treturn diskUtil.doesFileExist(\n\t\t\tdiskUtil.resolvePath(this.cwd, 'package.json')\n\t\t)\n\t}\n}\n"],"file":"NodeFeature.js"}
|