dotcom-tool-kit 2.3.5 → 2.4.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/lib/config.d.ts +2 -2
- package/lib/config.d.ts.map +1 -1
- package/lib/install.d.ts.map +1 -1
- package/lib/install.js +44 -9
- package/lib/messages.d.ts +2 -2
- package/lib/messages.d.ts.map +1 -1
- package/lib/plugin.js +2 -2
- package/lib/postInstall.d.ts.map +1 -1
- package/lib/postInstall.js +7 -4
- package/package.json +20 -18
package/lib/config.d.ts
CHANGED
|
@@ -23,7 +23,7 @@ export interface RawConfig {
|
|
|
23
23
|
[id: string]: PluginOptions | Conflict<PluginOptions> | undefined;
|
|
24
24
|
};
|
|
25
25
|
hooks: {
|
|
26
|
-
[id: string]: Hook | Conflict<Hook
|
|
26
|
+
[id: string]: Hook<unknown> | Conflict<Hook<unknown>>;
|
|
27
27
|
};
|
|
28
28
|
}
|
|
29
29
|
export declare type ValidPluginsConfig = Omit<RawConfig, 'plugins'> & {
|
|
@@ -42,7 +42,7 @@ export interface ValidConfig extends ValidPluginsConfig {
|
|
|
42
42
|
[id: string]: PluginOptions;
|
|
43
43
|
};
|
|
44
44
|
hooks: {
|
|
45
|
-
[id: string]: Hook
|
|
45
|
+
[id: string]: Hook<unknown>;
|
|
46
46
|
};
|
|
47
47
|
}
|
|
48
48
|
export declare const createConfig: () => RawConfig;
|
package/lib/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAErC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAEtC,OAAO,EAAE,QAAQ,EAA+C,MAAM,YAAY,CAAA;AAElF,OAAO,EAAE,SAAS,EAAE,IAAI,EAAgB,MAAM,EAAmB,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAY1G,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE;QAAE,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAA;KAAE,CAAA;IAC5C,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC5B,KAAK,EAAE;QAAE,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAA;KAAE,CAAA;IACxD,SAAS,EAAE;QAAE,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAA;KAAE,CAAA;IAC1D,OAAO,EAAE;QAAE,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,SAAS,CAAA;KAAE,CAAA;IAC9E,KAAK,EAAE;QAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;KAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAErC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAEtC,OAAO,EAAE,QAAQ,EAA+C,MAAM,YAAY,CAAA;AAElF,OAAO,EAAE,SAAS,EAAE,IAAI,EAAgB,MAAM,EAAmB,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAY1G,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE;QAAE,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAA;KAAE,CAAA;IAC5C,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC5B,KAAK,EAAE;QAAE,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAA;KAAE,CAAA;IACxD,SAAS,EAAE;QAAE,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAA;KAAE,CAAA;IAC1D,OAAO,EAAE;QAAE,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,SAAS,CAAA;KAAE,CAAA;IAC9E,KAAK,EAAE;QAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;KAAE,CAAA;CACjE;AAED,oBAAY,kBAAkB,GAAG,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,GAAG;IAC5D,OAAO,EAAE;QAAE,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAA;CAClC,CAAA;AAED,MAAM,WAAW,WAAY,SAAQ,kBAAkB;IACrD,KAAK,EAAE;QAAE,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAA;IAClC,SAAS,EAAE;QAAE,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,CAAA;KAAE,CAAA;IACrC,OAAO,EAAE;QAAE,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,CAAA;KAAE,CAAA;IACxC,KAAK,EAAE;QAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,CAAA;KAAE,CAAA;CACvC;AAID,eAAO,MAAM,YAAY,QAAO,SAQ9B,CAAA;AAQF,wBAAgB,cAAc,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,IAAI,WAAW,CAuFxF;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,CAAC,kBAAkB,CAAC,CAKhF;AAED,wBAAsB,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAWrE;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,IAAI,CAAA;CAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;AAC/F,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,KAAK,CAAA;CAAE,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA"}
|
package/lib/install.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AACrC,OAAO,EAAc,WAAW,EAAE,MAAM,UAAU,CAAA;AAalD,wBAA8B,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CA2D/E"}
|
package/lib/install.js
CHANGED
|
@@ -1,25 +1,59 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
3
4
|
const error_1 = require("@dotcom-tool-kit/error");
|
|
4
5
|
const options_1 = require("@dotcom-tool-kit/options");
|
|
6
|
+
const groupBy_1 = (0, tslib_1.__importDefault)(require("lodash/groupBy"));
|
|
5
7
|
const config_1 = require("./config");
|
|
6
8
|
const postInstall_1 = require("./postInstall");
|
|
9
|
+
// implementation of the Array.some method that supports asynchronous predicates
|
|
10
|
+
async function asyncSome(arr, pred) {
|
|
11
|
+
for (const val of arr) {
|
|
12
|
+
if (await pred(val)) {
|
|
13
|
+
return true;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
7
18
|
async function installHooks(logger) {
|
|
8
19
|
const config = await (0, config_1.loadConfig)(logger);
|
|
9
|
-
const tasks = Object.values(config.hooks).map((hook) => async () => {
|
|
10
|
-
if (!(await hook.check())) {
|
|
11
|
-
await hook.install();
|
|
12
|
-
}
|
|
13
|
-
});
|
|
14
20
|
for (const pluginOptions of Object.values(config.options)) {
|
|
15
21
|
if (pluginOptions.forPlugin) {
|
|
16
22
|
(0, options_1.setOptions)(pluginOptions.forPlugin.id, pluginOptions.options);
|
|
17
23
|
}
|
|
18
24
|
}
|
|
19
25
|
const errors = [];
|
|
20
|
-
|
|
26
|
+
// HACK: achieve backwards compatibility with older versions of the circleci
|
|
27
|
+
// plugin that required a postinstall function to run instead of the new
|
|
28
|
+
// commitInstall method. remove in major update of cli.
|
|
29
|
+
let usesNewCircleCIGroup = false;
|
|
30
|
+
// group hooks without an installGroup separately so that their check()
|
|
31
|
+
// method runs independently
|
|
32
|
+
const groups = (0, groupBy_1.default)(config.hooks, (hook) => { var _a; return (_a = hook.installGroup) !== null && _a !== void 0 ? _a : '__' + hook.id; });
|
|
33
|
+
for (const [groupId, group] of Object.entries(groups)) {
|
|
21
34
|
try {
|
|
22
|
-
await
|
|
35
|
+
if (await asyncSome(group, async (hook) => !(await hook.check()))) {
|
|
36
|
+
let state = undefined;
|
|
37
|
+
for (const hook of group) {
|
|
38
|
+
state = await hook.install(state);
|
|
39
|
+
}
|
|
40
|
+
if (state) {
|
|
41
|
+
if (groupId === 'circleci') {
|
|
42
|
+
usesNewCircleCIGroup = true;
|
|
43
|
+
}
|
|
44
|
+
try {
|
|
45
|
+
await group[0].commitInstall(state);
|
|
46
|
+
}
|
|
47
|
+
catch (err) {
|
|
48
|
+
if (err instanceof Error) {
|
|
49
|
+
errors.push(err);
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
throw err;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
23
57
|
}
|
|
24
58
|
catch (err) {
|
|
25
59
|
if (err instanceof Error) {
|
|
@@ -30,8 +64,9 @@ async function installHooks(logger) {
|
|
|
30
64
|
}
|
|
31
65
|
}
|
|
32
66
|
}
|
|
33
|
-
|
|
34
|
-
|
|
67
|
+
if (!usesNewCircleCIGroup) {
|
|
68
|
+
await (0, postInstall_1.postInstall)(logger);
|
|
69
|
+
}
|
|
35
70
|
if (errors.length) {
|
|
36
71
|
const error = new error_1.ToolKitError('could not automatically install hooks:');
|
|
37
72
|
error.details = errors.map((error) => `- ${error.message}`).join('\n');
|
package/lib/messages.d.ts
CHANGED
|
@@ -3,12 +3,12 @@ import type { Conflict } from './conflict';
|
|
|
3
3
|
import type { HookTask } from './hook';
|
|
4
4
|
import type { Plugin, Hook, TaskClass } from '@dotcom-tool-kit/types';
|
|
5
5
|
export declare const formatTaskConflicts: (conflicts: Conflict<TaskClass>[]) => string;
|
|
6
|
-
export declare const formatHookConflicts: (conflicts: Conflict<Hook
|
|
6
|
+
export declare const formatHookConflicts: (conflicts: Conflict<Hook<unknown>>[]) => string;
|
|
7
7
|
export declare const formatHookTaskConflicts: (conflicts: Conflict<HookTask>[]) => string;
|
|
8
8
|
export declare const formatOptionConflicts: (conflicts: Conflict<PluginOptions>[]) => string;
|
|
9
9
|
export declare const formatUndefinedHookTasks: (undefinedHooks: HookTask[], definedHooks: string[]) => string;
|
|
10
10
|
export declare const formatUnusedOptions: (unusedOptions: string[], definedPlugins: string[]) => string;
|
|
11
|
-
export declare const formatUninstalledHooks: (uninstalledHooks: Hook[]) => string;
|
|
11
|
+
export declare const formatUninstalledHooks: (uninstalledHooks: Hook<unknown>[]) => string;
|
|
12
12
|
declare type Missing = {
|
|
13
13
|
hook: HookTask;
|
|
14
14
|
tasks: string[];
|
package/lib/messages.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../src/messages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAC7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAEtC,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AASrE,eAAO,MAAM,mBAAmB,cAAe,SAAS,SAAS,CAAC,EAAE,KAAG,MAKE,CAAA;AASzE,eAAO,MAAM,mBAAmB,cAAe,SAAS,
|
|
1
|
+
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../src/messages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAC7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAEtC,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AASrE,eAAO,MAAM,mBAAmB,cAAe,SAAS,SAAS,CAAC,EAAE,KAAG,MAKE,CAAA;AASzE,eAAO,MAAM,mBAAmB,cAAe,SAAS,KAAK,OAAO,CAAC,CAAC,EAAE,KAAG,MAKF,CAAA;AAazE,eAAO,MAAM,uBAAuB,cAAe,SAAS,QAAQ,CAAC,EAAE,KAAG,MAQzE,CAAA;AAOD,eAAO,MAAM,qBAAqB,cAAe,SAAS,aAAa,CAAC,EAAE,KAAG,MAU5E,CAAA;AAMD,eAAO,MAAM,wBAAwB,mBACnB,QAAQ,EAAE,gBACZ,MAAM,EAAE,KACrB,MAWF,CAAA;AAED,eAAO,MAAM,mBAAmB,kBACf,MAAM,EAAE,kBACP,MAAM,EAAE,KACvB,MAWF,CAAA;AAED,eAAO,MAAM,sBAAsB,qBACf,KAAK,OAAO,CAAC,EAAE,KAChC,MAKF,CAAA;AAED,aAAK,OAAO,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,CAAA;AAOlD,eAAO,MAAM,kBAAkB,iBACf,OAAO,EAAE,SAChB,MAAM,EAAE,KACd,MAOF,CAAA;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAezD"}
|
package/lib/plugin.js
CHANGED
|
@@ -4,7 +4,7 @@ exports.resolvePlugin = exports.loadPlugin = exports.validatePlugin = void 0;
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const logger_1 = require("@dotcom-tool-kit/logger");
|
|
6
6
|
const types_1 = require("@dotcom-tool-kit/types");
|
|
7
|
-
const
|
|
7
|
+
const isPlainObject_1 = (0, tslib_1.__importDefault)(require("lodash/isPlainObject"));
|
|
8
8
|
const resolve_from_1 = (0, tslib_1.__importDefault)(require("resolve-from"));
|
|
9
9
|
const conflict_1 = require("./conflict");
|
|
10
10
|
const rc_file_1 = require("./rc-file");
|
|
@@ -38,7 +38,7 @@ function validatePlugin(plugin) {
|
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
if (rawPlugin.hooks) {
|
|
41
|
-
if (!(0,
|
|
41
|
+
if (!(0, isPlainObject_1.default)(rawPlugin.hooks)) {
|
|
42
42
|
errors.push(`the exported ${logger_1.styles.code('hooks')} value from this plugin is not an object`);
|
|
43
43
|
}
|
|
44
44
|
else {
|
package/lib/postInstall.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postInstall.d.ts","sourceRoot":"","sources":["../src/postInstall.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAGrC;;;GAGG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"postInstall.d.ts","sourceRoot":"","sources":["../src/postInstall.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAGrC;;;GAGG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAuC/D"}
|
package/lib/postInstall.js
CHANGED
|
@@ -6,7 +6,7 @@ const path_1 = (0, tslib_1.__importDefault)(require("path"));
|
|
|
6
6
|
const fs_1 = require("fs");
|
|
7
7
|
const npm_1 = require("@dotcom-tool-kit/types/lib/npm");
|
|
8
8
|
const YAML = (0, tslib_1.__importStar)(require("yaml"));
|
|
9
|
-
const
|
|
9
|
+
const merge_1 = (0, tslib_1.__importDefault)(require("lodash/merge"));
|
|
10
10
|
const circleci_1 = require("@dotcom-tool-kit/types/lib/circleci");
|
|
11
11
|
/**
|
|
12
12
|
* This step adds the tags only filter to rest of the jobs in the workflow if there is a job that contains the semverRegex.
|
|
@@ -16,7 +16,9 @@ async function postInstall(logger) {
|
|
|
16
16
|
const circleConfigPath = path_1.default.resolve(process.cwd(), '.circleci/config.yml');
|
|
17
17
|
try {
|
|
18
18
|
const rawCircleConfig = await fs_1.promises.readFile(circleConfigPath, 'utf8');
|
|
19
|
-
if (rawCircleConfig &&
|
|
19
|
+
if (rawCircleConfig &&
|
|
20
|
+
rawCircleConfig.includes(npm_1.semVerRegex.source) &&
|
|
21
|
+
rawCircleConfig.startsWith(circleci_1.automatedComment)) {
|
|
20
22
|
logger.verbose('running postInstall step');
|
|
21
23
|
const yml = YAML.parseDocument(rawCircleConfig);
|
|
22
24
|
const workflows = yml.get('workflows');
|
|
@@ -24,14 +26,15 @@ async function postInstall(logger) {
|
|
|
24
26
|
const jobs = toolkitWorkflow.get('jobs');
|
|
25
27
|
jobs === null || jobs === void 0 ? void 0 : jobs.items.forEach((jobItem, index) => {
|
|
26
28
|
const tagsFilterConfig = { filters: { tags: { only: `${npm_1.semVerRegex}` } } };
|
|
27
|
-
if (jobItem.type === 'PLAIN') {
|
|
29
|
+
if (jobItem.type === 'PLAIN') {
|
|
30
|
+
// eg. - checkout
|
|
28
31
|
const node = YAML.createNode({ [jobItem.value]: tagsFilterConfig });
|
|
29
32
|
jobs.items[index] = node;
|
|
30
33
|
}
|
|
31
34
|
else {
|
|
32
35
|
const job = jobItem.items[0];
|
|
33
36
|
const existingFilter = job.value.items.filter((item) => item.key.value === 'filters')[0];
|
|
34
|
-
const merged = existingFilter ? (0,
|
|
37
|
+
const merged = existingFilter ? (0, merge_1.default)(existingFilter.toJSON(), tagsFilterConfig) : tagsFilterConfig;
|
|
35
38
|
const node = YAML.createNode(merged['filters']);
|
|
36
39
|
job.value.set('filters', node);
|
|
37
40
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dotcom-tool-kit",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.4.0",
|
|
4
4
|
"description": "modern, maintainable, modular developer tooling for FT.com projects",
|
|
5
5
|
"author": "FT.com Platforms Team <platforms-team.customer-products@ft.com>",
|
|
6
6
|
"license": "MIT",
|
|
@@ -21,35 +21,37 @@
|
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
23
23
|
"@jest/globals": "^27.4.6",
|
|
24
|
+
"@types/lodash.groupby": "^4.6.7",
|
|
24
25
|
"@types/lodash.merge": "^4.6.6",
|
|
25
26
|
"@types/node": "^12.20.24",
|
|
26
|
-
"@dotcom-tool-kit/backend-app": "^2.0.
|
|
27
|
-
"@dotcom-tool-kit/heroku": "^2.
|
|
28
|
-
"@dotcom-tool-kit/webpack": "^2.1.
|
|
29
|
-
"@dotcom-tool-kit/babel": "^2.0.
|
|
30
|
-
"@dotcom-tool-kit/circleci": "^
|
|
31
|
-
"@dotcom-tool-kit/npm": "^2.0.
|
|
32
|
-
"@dotcom-tool-kit/circleci-heroku": "^2.0
|
|
33
|
-
"@dotcom-tool-kit/frontend-app": "^2.1.
|
|
34
|
-
"@dotcom-tool-kit/eslint": "^2.2.
|
|
35
|
-
"@dotcom-tool-kit/mocha": "^2.1.
|
|
36
|
-
"@dotcom-tool-kit/n-test": "^2.1.
|
|
27
|
+
"@dotcom-tool-kit/backend-app": "^2.0.13",
|
|
28
|
+
"@dotcom-tool-kit/heroku": "^2.1.1",
|
|
29
|
+
"@dotcom-tool-kit/webpack": "^2.1.9",
|
|
30
|
+
"@dotcom-tool-kit/babel": "^2.0.10",
|
|
31
|
+
"@dotcom-tool-kit/circleci": "^3.0.0",
|
|
32
|
+
"@dotcom-tool-kit/npm": "^2.0.11",
|
|
33
|
+
"@dotcom-tool-kit/circleci-heroku": "^2.1.0",
|
|
34
|
+
"@dotcom-tool-kit/frontend-app": "^2.1.11",
|
|
35
|
+
"@dotcom-tool-kit/eslint": "^2.2.3",
|
|
36
|
+
"@dotcom-tool-kit/mocha": "^2.1.7",
|
|
37
|
+
"@dotcom-tool-kit/n-test": "^2.1.5",
|
|
37
38
|
"chai": "^4.3.4",
|
|
38
39
|
"globby": "^10.0.2",
|
|
39
40
|
"ts-node": "^8.10.2",
|
|
40
41
|
"winston": "^3.5.1"
|
|
41
42
|
},
|
|
42
43
|
"dependencies": {
|
|
43
|
-
"@dotcom-tool-kit/error": "^2.0.
|
|
44
|
-
"@dotcom-tool-kit/logger": "^2.1.
|
|
45
|
-
"@dotcom-tool-kit/options": "^2.0.
|
|
46
|
-
"@dotcom-tool-kit/types": "^2.
|
|
47
|
-
"@dotcom-tool-kit/wait-for-ok": "^2.0.
|
|
44
|
+
"@dotcom-tool-kit/error": "^2.0.1",
|
|
45
|
+
"@dotcom-tool-kit/logger": "^2.1.2",
|
|
46
|
+
"@dotcom-tool-kit/options": "^2.0.10",
|
|
47
|
+
"@dotcom-tool-kit/types": "^2.7.0",
|
|
48
|
+
"@dotcom-tool-kit/wait-for-ok": "^2.0.1",
|
|
48
49
|
"cosmiconfig": "^7.0.0",
|
|
50
|
+
"lodash.groupby": "^4.6.0",
|
|
49
51
|
"lodash.merge": "^4.6.2",
|
|
50
52
|
"minimist": "^1.2.5",
|
|
51
53
|
"resolve-from": "^5.0.0",
|
|
52
|
-
"tslib": "^
|
|
54
|
+
"tslib": "^2.3.1",
|
|
53
55
|
"yaml": "^1.10.2"
|
|
54
56
|
},
|
|
55
57
|
"engines": {
|