@capacitor-plus/cli 8.0.0-beta.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.
Files changed (73) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +84 -0
  3. package/assets/android-template.tar.gz +0 -0
  4. package/assets/capacitor-cordova-android-plugins.tar.gz +0 -0
  5. package/assets/capacitor-cordova-ios-plugins.tar.gz +0 -0
  6. package/assets/ios-pods-template.tar.gz +0 -0
  7. package/assets/ios-spm-template.tar.gz +0 -0
  8. package/bin/capacitor +18 -0
  9. package/dist/android/add.js +52 -0
  10. package/dist/android/build.js +104 -0
  11. package/dist/android/common.js +94 -0
  12. package/dist/android/doctor.js +160 -0
  13. package/dist/android/open.js +28 -0
  14. package/dist/android/run.js +42 -0
  15. package/dist/android/update.js +317 -0
  16. package/dist/colors.js +26 -0
  17. package/dist/common.js +435 -0
  18. package/dist/config.js +404 -0
  19. package/dist/cordova.js +801 -0
  20. package/dist/declarations.d.ts +674 -0
  21. package/dist/declarations.js +2 -0
  22. package/dist/definitions.js +13 -0
  23. package/dist/errors.js +27 -0
  24. package/dist/framework-configs.js +109 -0
  25. package/dist/index.js +253 -0
  26. package/dist/ios/add.js +13 -0
  27. package/dist/ios/build.js +96 -0
  28. package/dist/ios/common.js +105 -0
  29. package/dist/ios/doctor.js +45 -0
  30. package/dist/ios/open.js +17 -0
  31. package/dist/ios/run.js +51 -0
  32. package/dist/ios/update.js +449 -0
  33. package/dist/ipc.js +61 -0
  34. package/dist/log.js +39 -0
  35. package/dist/plugin.js +182 -0
  36. package/dist/sysconfig.js +35 -0
  37. package/dist/tasks/add.js +115 -0
  38. package/dist/tasks/build.js +63 -0
  39. package/dist/tasks/config.js +28 -0
  40. package/dist/tasks/copy.js +210 -0
  41. package/dist/tasks/create.js +10 -0
  42. package/dist/tasks/doctor.js +68 -0
  43. package/dist/tasks/init.js +138 -0
  44. package/dist/tasks/list.js +50 -0
  45. package/dist/tasks/migrate-spm.js +19 -0
  46. package/dist/tasks/migrate.js +518 -0
  47. package/dist/tasks/new-plugin.js +10 -0
  48. package/dist/tasks/open.js +62 -0
  49. package/dist/tasks/run.js +118 -0
  50. package/dist/tasks/serve.js +11 -0
  51. package/dist/tasks/sourcemaps.js +39 -0
  52. package/dist/tasks/sync.js +55 -0
  53. package/dist/tasks/telemetry.js +41 -0
  54. package/dist/tasks/update.js +74 -0
  55. package/dist/telemetry.js +119 -0
  56. package/dist/util/cli.js +25 -0
  57. package/dist/util/emoji.js +13 -0
  58. package/dist/util/fn.js +13 -0
  59. package/dist/util/fs.js +43 -0
  60. package/dist/util/iosplugin.js +66 -0
  61. package/dist/util/js.js +21 -0
  62. package/dist/util/livereload.js +148 -0
  63. package/dist/util/monorepotools.js +109 -0
  64. package/dist/util/native-run.js +63 -0
  65. package/dist/util/node.js +54 -0
  66. package/dist/util/promise.js +35 -0
  67. package/dist/util/spm.js +187 -0
  68. package/dist/util/subprocess.js +37 -0
  69. package/dist/util/template.js +11 -0
  70. package/dist/util/term.js +30 -0
  71. package/dist/util/uuid.js +11 -0
  72. package/dist/util/xml.js +55 -0
  73. package/package.json +89 -0
@@ -0,0 +1,317 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.handleCordovaPluginsGradle = exports.installGradlePlugins = exports.updateAndroid = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const debug_1 = tslib_1.__importDefault(require("debug"));
6
+ const fs_extra_1 = require("fs-extra");
7
+ const path_1 = require("path");
8
+ const colors_1 = tslib_1.__importDefault(require("../colors"));
9
+ const common_1 = require("../common");
10
+ const cordova_1 = require("../cordova");
11
+ const errors_1 = require("../errors");
12
+ const plugin_1 = require("../plugin");
13
+ const copy_1 = require("../tasks/copy");
14
+ const fs_1 = require("../util/fs");
15
+ const node_1 = require("../util/node");
16
+ const template_1 = require("../util/template");
17
+ const common_2 = require("./common");
18
+ const platform = 'android';
19
+ const debug = (0, debug_1.default)('capacitor:android:update');
20
+ async function updateAndroid(config) {
21
+ var _a;
22
+ const plugins = await getPluginsTask(config);
23
+ const capacitorPlugins = plugins.filter((p) => (0, plugin_1.getPluginType)(p, platform) === 0 /* PluginType.Core */);
24
+ (0, plugin_1.printPlugins)(capacitorPlugins, 'android');
25
+ await writePluginsJson(config, capacitorPlugins);
26
+ await removePluginsNativeFiles(config);
27
+ const cordovaPlugins = plugins.filter((p) => (0, plugin_1.getPluginType)(p, platform) === 1 /* PluginType.Cordova */);
28
+ if (cordovaPlugins.length > 0) {
29
+ await copyPluginsNativeFiles(config, cordovaPlugins);
30
+ }
31
+ if (!(await (0, fs_extra_1.pathExists)(config.android.webDirAbs))) {
32
+ await (0, copy_1.copy)(config, platform);
33
+ }
34
+ await (0, cordova_1.handleCordovaPluginsJS)(cordovaPlugins, config, platform);
35
+ await (0, cordova_1.checkPluginDependencies)(plugins, platform, (_a = config.app.extConfig.cordova) === null || _a === void 0 ? void 0 : _a.failOnUninstalledPlugins);
36
+ await installGradlePlugins(config, capacitorPlugins, cordovaPlugins);
37
+ await handleCordovaPluginsGradle(config, cordovaPlugins);
38
+ await (0, cordova_1.writeCordovaAndroidManifest)(cordovaPlugins, config, platform);
39
+ const incompatibleCordovaPlugins = plugins.filter((p) => (0, plugin_1.getPluginType)(p, platform) === 2 /* PluginType.Incompatible */);
40
+ (0, plugin_1.printPlugins)(incompatibleCordovaPlugins, platform, 'incompatible');
41
+ await (0, common_1.checkPlatformVersions)(config, platform);
42
+ }
43
+ exports.updateAndroid = updateAndroid;
44
+ function getGradlePackageName(id) {
45
+ return id.replace('@', '').replace('/', '-');
46
+ }
47
+ async function writePluginsJson(config, plugins) {
48
+ const classes = await findAndroidPluginClasses(plugins);
49
+ const pluginsJsonPath = (0, path_1.resolve)(config.android.assetsDirAbs, 'capacitor.plugins.json');
50
+ await (0, fs_extra_1.writeJSON)(pluginsJsonPath, classes, { spaces: '\t' });
51
+ }
52
+ async function findAndroidPluginClasses(plugins) {
53
+ const entries = [];
54
+ for (const plugin of plugins) {
55
+ entries.push(...(await findAndroidPluginClassesInPlugin(plugin)));
56
+ }
57
+ return entries;
58
+ }
59
+ async function findAndroidPluginClassesInPlugin(plugin) {
60
+ if (!plugin.android || (0, plugin_1.getPluginType)(plugin, platform) !== 0 /* PluginType.Core */) {
61
+ return [];
62
+ }
63
+ const srcPath = (0, path_1.resolve)(plugin.rootPath, plugin.android.path, 'src/main');
64
+ const srcFiles = await (0, fs_1.readdirp)(srcPath, {
65
+ filter: (entry) => !entry.stats.isDirectory() && ['.java', '.kt'].includes((0, path_1.extname)(entry.path)),
66
+ });
67
+ const classRegex = /^@(?:CapacitorPlugin|NativePlugin)[\s\S]+?class ([\w]+)/gm;
68
+ const packageRegex = /^package ([\w.]+);?$/gm;
69
+ debug('Searching %O source files in %O by %O regex', srcFiles.length, srcPath, classRegex);
70
+ const entries = await Promise.all(srcFiles.map(async (srcFile) => {
71
+ const srcFileContents = await (0, fs_extra_1.readFile)(srcFile, { encoding: 'utf-8' });
72
+ classRegex.lastIndex = 0;
73
+ const classMatch = classRegex.exec(srcFileContents);
74
+ if (classMatch) {
75
+ const className = classMatch[1];
76
+ debug('Searching %O for package by %O regex', srcFile, packageRegex);
77
+ packageRegex.lastIndex = 0;
78
+ const packageMatch = packageRegex.exec(srcFileContents.substring(0, classMatch.index));
79
+ if (!packageMatch) {
80
+ (0, errors_1.fatal)(`Package could not be parsed from Android plugin.\n` + `Location: ${colors_1.default.strong(srcFile)}`);
81
+ }
82
+ const packageName = packageMatch[1];
83
+ const classpath = `${packageName}.${className}`;
84
+ debug('%O is a suitable plugin class', classpath);
85
+ return {
86
+ pkg: plugin.id,
87
+ classpath,
88
+ };
89
+ }
90
+ }));
91
+ return entries.filter((entry) => !!entry);
92
+ }
93
+ async function installGradlePlugins(config, capacitorPlugins, cordovaPlugins) {
94
+ const capacitorAndroidPackagePath = (0, node_1.resolveNode)(config.app.rootDir, '@capacitor/android', 'package.json');
95
+ if (!capacitorAndroidPackagePath) {
96
+ (0, errors_1.fatal)(`Unable to find ${colors_1.default.strong('node_modules/@capacitor/android')}.\n` +
97
+ `Are you sure ${colors_1.default.strong('@capacitor/android')} is installed?`);
98
+ }
99
+ const capacitorAndroidPath = (0, path_1.resolve)((0, path_1.dirname)(capacitorAndroidPackagePath), 'capacitor');
100
+ const settingsPath = config.android.platformDirAbs;
101
+ const dependencyPath = config.android.appDirAbs;
102
+ const relativeCapcitorAndroidPath = (0, fs_1.convertToUnixPath)((0, path_1.relative)(settingsPath, capacitorAndroidPath));
103
+ const settingsLines = `// DO NOT EDIT THIS FILE! IT IS GENERATED EACH TIME "capacitor update" IS RUN
104
+ include ':capacitor-android'
105
+ project(':capacitor-android').projectDir = new File('${relativeCapcitorAndroidPath}')
106
+ ${capacitorPlugins
107
+ .map((p) => {
108
+ if (!p.android) {
109
+ return '';
110
+ }
111
+ const relativePluginPath = (0, fs_1.convertToUnixPath)((0, path_1.relative)(settingsPath, p.rootPath));
112
+ return `
113
+ include ':${getGradlePackageName(p.id)}'
114
+ project(':${getGradlePackageName(p.id)}').projectDir = new File('${relativePluginPath}/${p.android.path}')
115
+ `;
116
+ })
117
+ .join('')}`;
118
+ const applyArray = [];
119
+ const frameworksArray = [];
120
+ let prefsArray = [];
121
+ cordovaPlugins.map((p) => {
122
+ const relativePluginPath = (0, fs_1.convertToUnixPath)((0, path_1.relative)(dependencyPath, p.rootPath));
123
+ const frameworks = (0, plugin_1.getPlatformElement)(p, platform, 'framework');
124
+ frameworks.map((framework) => {
125
+ if (framework.$.custom &&
126
+ framework.$.custom === 'true' &&
127
+ framework.$.type &&
128
+ framework.$.type === 'gradleReference') {
129
+ applyArray.push(`apply from: "${relativePluginPath}/${framework.$.src}"`);
130
+ }
131
+ else if (!framework.$.type && !framework.$.custom) {
132
+ if (framework.$.src.startsWith('platform(')) {
133
+ frameworksArray.push(` implementation ${framework.$.src}`);
134
+ }
135
+ else {
136
+ frameworksArray.push(` implementation "${framework.$.src}"`);
137
+ }
138
+ }
139
+ });
140
+ prefsArray = prefsArray.concat((0, plugin_1.getAllElements)(p, platform, 'preference'));
141
+ });
142
+ let frameworkString = frameworksArray.join('\n');
143
+ frameworkString = await replaceFrameworkVariables(config, prefsArray, frameworkString);
144
+ const dependencyLines = `// DO NOT EDIT THIS FILE! IT IS GENERATED EACH TIME "capacitor update" IS RUN
145
+
146
+ android {
147
+ compileOptions {
148
+ sourceCompatibility JavaVersion.VERSION_21
149
+ targetCompatibility JavaVersion.VERSION_21
150
+ }
151
+ }
152
+
153
+ apply from: "../capacitor-cordova-android-plugins/cordova.variables.gradle"
154
+ dependencies {
155
+ ${capacitorPlugins
156
+ .map((p) => {
157
+ return ` implementation project(':${getGradlePackageName(p.id)}')`;
158
+ })
159
+ .join('\n')}
160
+ ${frameworkString}
161
+ }
162
+ ${applyArray.join('\n')}
163
+
164
+ if (hasProperty('postBuildExtras')) {
165
+ postBuildExtras()
166
+ }
167
+ `;
168
+ await (0, fs_extra_1.writeFile)((0, path_1.join)(settingsPath, 'capacitor.settings.gradle'), settingsLines);
169
+ await (0, fs_extra_1.writeFile)((0, path_1.join)(dependencyPath, 'capacitor.build.gradle'), dependencyLines);
170
+ }
171
+ exports.installGradlePlugins = installGradlePlugins;
172
+ async function handleCordovaPluginsGradle(config, cordovaPlugins) {
173
+ var _a, _b, _c;
174
+ const pluginsGradlePath = (0, path_1.join)(config.android.cordovaPluginsDirAbs, 'build.gradle');
175
+ const kotlinNeeded = await kotlinNeededCheck(config, cordovaPlugins);
176
+ const kotlinVersionString = (_c = (_b = (_a = config.app.extConfig.cordova) === null || _a === void 0 ? void 0 : _a.preferences) === null || _b === void 0 ? void 0 : _b.GradlePluginKotlinVersion) !== null && _c !== void 0 ? _c : '2.2.20';
177
+ const frameworksArray = [];
178
+ let prefsArray = [];
179
+ const applyArray = [];
180
+ applyArray.push(`apply from: "cordova.variables.gradle"`);
181
+ cordovaPlugins.map((p) => {
182
+ const relativePluginPath = (0, fs_1.convertToUnixPath)((0, path_1.relative)(config.android.cordovaPluginsDirAbs, p.rootPath));
183
+ const frameworks = (0, plugin_1.getPlatformElement)(p, platform, 'framework');
184
+ frameworks.map((framework) => {
185
+ if (!framework.$.type && !framework.$.custom) {
186
+ frameworksArray.push(framework.$.src);
187
+ }
188
+ else if (framework.$.custom &&
189
+ framework.$.custom === 'true' &&
190
+ framework.$.type &&
191
+ framework.$.type === 'gradleReference') {
192
+ applyArray.push(`apply from: "${relativePluginPath}/${framework.$.src}"`);
193
+ }
194
+ });
195
+ prefsArray = prefsArray.concat((0, plugin_1.getAllElements)(p, platform, 'preference'));
196
+ });
197
+ let frameworkString = frameworksArray
198
+ .map((f) => {
199
+ if (f.startsWith('platform(')) {
200
+ return ` implementation ${f}`;
201
+ }
202
+ else {
203
+ return ` implementation "${f}"`;
204
+ }
205
+ })
206
+ .join('\n');
207
+ frameworkString = await replaceFrameworkVariables(config, prefsArray, frameworkString);
208
+ if (kotlinNeeded) {
209
+ frameworkString += `\n implementation "androidx.core:core-ktx:$androidxCoreKTXVersion"`;
210
+ frameworkString += `\n implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"`;
211
+ }
212
+ const applyString = applyArray.join('\n');
213
+ let buildGradle = await (0, fs_extra_1.readFile)(pluginsGradlePath, { encoding: 'utf-8' });
214
+ buildGradle = buildGradle.replace(/(SUB-PROJECT DEPENDENCIES START)[\s\S]*(\/\/ SUB-PROJECT DEPENDENCIES END)/, '$1\n' + frameworkString.concat('\n') + ' $2');
215
+ buildGradle = buildGradle.replace(/(PLUGIN GRADLE EXTENSIONS START)[\s\S]*(\/\/ PLUGIN GRADLE EXTENSIONS END)/, '$1\n' + applyString.concat('\n') + '$2');
216
+ if (kotlinNeeded) {
217
+ buildGradle = buildGradle.replace(/(buildscript\s{\n(\t|\s{4})repositories\s{\n((\t{2}|\s{8}).+\n)+(\t|\s{4})}\n(\t|\s{4})dependencies\s{\n(\t{2}|\s{8}).+)\n((\t|\s{4})}\n}\n)/, `$1\n classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"\n$8`);
218
+ buildGradle = buildGradle.replace(/(ext\s{)/, `$1\n androidxCoreKTXVersion = project.hasProperty('androidxCoreKTXVersion') ? rootProject.ext.androidxCoreKTXVersion : '1.8.0'`);
219
+ buildGradle = buildGradle.replace(/(buildscript\s{)/, `$1\n ext.kotlin_version = project.hasProperty('kotlin_version') ? rootProject.ext.kotlin_version : '${kotlinVersionString}'`);
220
+ buildGradle = buildGradle.replace(/(apply\splugin:\s'com\.android\.library')/, `$1\napply plugin: 'kotlin-android'`);
221
+ buildGradle = buildGradle.replace(/(compileOptions\s{\n((\t{2}|\s{8}).+\n)+(\t|\s{4})})\n(})/, `$1\n sourceSets {\n main.java.srcDirs += 'src/main/kotlin'\n }\n$5`);
222
+ }
223
+ await (0, fs_extra_1.writeFile)(pluginsGradlePath, buildGradle);
224
+ const cordovaVariables = `// DO NOT EDIT THIS FILE! IT IS GENERATED EACH TIME "capacitor update" IS RUN
225
+ ext {
226
+ cdvMinSdkVersion = project.hasProperty('minSdkVersion') ? rootProject.ext.minSdkVersion : ${config.android.minVersion}
227
+ // Plugin gradle extensions can append to this to have code run at the end.
228
+ cdvPluginPostBuildExtras = []
229
+ cordovaConfig = [:]
230
+ }`;
231
+ await (0, fs_extra_1.writeFile)((0, path_1.join)(config.android.cordovaPluginsDirAbs, 'cordova.variables.gradle'), cordovaVariables);
232
+ }
233
+ exports.handleCordovaPluginsGradle = handleCordovaPluginsGradle;
234
+ async function kotlinNeededCheck(config, cordovaPlugins) {
235
+ var _a, _b;
236
+ if (((_b = (_a = config.app.extConfig.cordova) === null || _a === void 0 ? void 0 : _a.preferences) === null || _b === void 0 ? void 0 : _b.GradlePluginKotlinEnabled) !== 'true') {
237
+ for (const plugin of cordovaPlugins) {
238
+ const androidPlatform = (0, plugin_1.getPluginPlatform)(plugin, platform);
239
+ const sourceFiles = androidPlatform['source-file'];
240
+ if (sourceFiles) {
241
+ for (const srcFile of sourceFiles) {
242
+ if (/^.*\.kt$/.test(srcFile['$'].src)) {
243
+ return true;
244
+ }
245
+ }
246
+ }
247
+ }
248
+ return false;
249
+ }
250
+ else {
251
+ return true;
252
+ }
253
+ }
254
+ async function copyPluginsNativeFiles(config, cordovaPlugins) {
255
+ const pluginsPath = (0, path_1.join)(config.android.cordovaPluginsDirAbs, 'src', 'main');
256
+ for (const p of cordovaPlugins) {
257
+ const androidPlatform = (0, plugin_1.getPluginPlatform)(p, platform);
258
+ if (androidPlatform) {
259
+ const sourceFiles = androidPlatform['source-file'];
260
+ if (sourceFiles) {
261
+ for (const sourceFile of sourceFiles) {
262
+ const fileName = sourceFile.$.src.split('/').pop();
263
+ let baseFolder = 'java/';
264
+ if (fileName.split('.').pop() === 'aidl') {
265
+ baseFolder = 'aidl/';
266
+ }
267
+ const target = sourceFile.$['target-dir'].replace('app/src/main/', '').replace('src/', baseFolder);
268
+ await (0, fs_extra_1.copy)((0, plugin_1.getFilePath)(config, p, sourceFile.$.src), (0, path_1.join)(pluginsPath, target, fileName));
269
+ }
270
+ }
271
+ const resourceFiles = androidPlatform['resource-file'];
272
+ if (resourceFiles) {
273
+ for (const resourceFile of resourceFiles) {
274
+ const target = resourceFile.$['target'];
275
+ if (resourceFile.$.src.split('.').pop() === 'aar') {
276
+ await (0, fs_extra_1.copy)((0, plugin_1.getFilePath)(config, p, resourceFile.$.src), (0, path_1.join)(pluginsPath, 'libs', target.split('/').pop()));
277
+ }
278
+ else if (target !== '.') {
279
+ await (0, fs_extra_1.copy)((0, plugin_1.getFilePath)(config, p, resourceFile.$.src), (0, path_1.join)(pluginsPath, target));
280
+ }
281
+ }
282
+ }
283
+ const libFiles = (0, plugin_1.getPlatformElement)(p, platform, 'lib-file');
284
+ for (const libFile of libFiles) {
285
+ await (0, fs_extra_1.copy)((0, plugin_1.getFilePath)(config, p, libFile.$.src), (0, path_1.join)(pluginsPath, 'libs', libFile.$.src.split('/').pop()));
286
+ }
287
+ }
288
+ }
289
+ }
290
+ async function removePluginsNativeFiles(config) {
291
+ await (0, fs_extra_1.remove)(config.android.cordovaPluginsDirAbs);
292
+ await (0, template_1.extractTemplate)(config.cli.assets.android.cordovaPluginsTemplateArchiveAbs, config.android.cordovaPluginsDirAbs);
293
+ }
294
+ async function getPluginsTask(config) {
295
+ return await (0, common_1.runTask)('Updating Android plugins', async () => {
296
+ const allPlugins = await (0, plugin_1.getPlugins)(config, 'android');
297
+ const androidPlugins = await (0, common_2.getAndroidPlugins)(allPlugins);
298
+ return androidPlugins;
299
+ });
300
+ }
301
+ async function getVariablesGradleFile(config) {
302
+ const variablesFile = (0, path_1.resolve)(config.android.platformDirAbs, 'variables.gradle');
303
+ let variablesGradle = '';
304
+ if (await (0, fs_extra_1.pathExists)(variablesFile)) {
305
+ variablesGradle = await (0, fs_extra_1.readFile)(variablesFile, { encoding: 'utf-8' });
306
+ }
307
+ return variablesGradle;
308
+ }
309
+ async function replaceFrameworkVariables(config, prefsArray, frameworkString) {
310
+ const variablesGradle = await getVariablesGradleFile(config);
311
+ prefsArray.map((preference) => {
312
+ if (!variablesGradle.includes(preference.$.name)) {
313
+ frameworkString = frameworkString.replace(new RegExp(('$' + preference.$.name).replace('$', '\\$&'), 'g'), preference.$.default);
314
+ }
315
+ });
316
+ return frameworkString;
317
+ }
package/dist/colors.js ADDED
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ancillary = exports.failure = exports.success = exports.input = exports.weak = exports.strong = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const kleur_1 = tslib_1.__importDefault(require("kleur"));
6
+ exports.strong = kleur_1.default.bold;
7
+ exports.weak = kleur_1.default.dim;
8
+ exports.input = kleur_1.default.cyan;
9
+ exports.success = kleur_1.default.green;
10
+ exports.failure = kleur_1.default.red;
11
+ exports.ancillary = kleur_1.default.cyan;
12
+ const COLORS = {
13
+ strong: exports.strong,
14
+ weak: exports.weak,
15
+ input: exports.input,
16
+ success: exports.success,
17
+ failure: exports.failure,
18
+ ancillary: exports.ancillary,
19
+ log: {
20
+ DEBUG: kleur_1.default.magenta,
21
+ INFO: kleur_1.default.cyan,
22
+ WARN: kleur_1.default.yellow,
23
+ ERROR: kleur_1.default.red,
24
+ },
25
+ };
26
+ exports.default = COLORS;