@docusaurus/logger 0.0.0-4297

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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) Facebook, Inc. and its affiliates.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,44 @@
1
+ # `@docusaurus/logger`
2
+
3
+ An encapsulated logger for semantically formatting console messages.
4
+
5
+ ## APIs
6
+
7
+ It exports a single object as default export: `logger`. `logger` has the following properties:
8
+
9
+ - Some useful colors.
10
+ - Formatters. These functions have the same signature as the formatters of `picocolors`. Note that their implementations are not guaranteed. You should only care about their semantics.
11
+ - `path`: formats a file path or URL.
12
+ - `id`: formats an identifier.
13
+ - `code`: formats a code snippet.
14
+ - `subdue`: subdues the text.
15
+ - `num`: formats a number.
16
+ - The `interpolate` function. It is a template literal tag.
17
+ - Logging functions. All logging functions can both be used as functions (in which it has the same usage as `console.log`) or template literal tags.
18
+ - `info`: prints information.
19
+ - `warn`: prints a warning that should be payed attention to.
20
+ - `error`: prints an error (not necessarily halting the program) that signals significant problems.
21
+ - `success`: prints a success message.
22
+
23
+ ### Using the template literal tag
24
+
25
+ The template literal tag evaluates the template and expressions embedded. `interpolate` returns a new string, while other logging functions prints it. Below is a typical usage:
26
+
27
+ ```js
28
+ logger.info`Hello name=${name}! You have number=${money} dollars. Here are the ${
29
+ items.length > 1 ? 'items' : 'item'
30
+ } on the shelf: ${items}
31
+ To buy anything, enter code=${'buy x'} where code=${'x'} is the item's name; to quit, press code=${'Ctrl + C'}.`;
32
+ ```
33
+
34
+ An embedded expression is optionally preceded by a flag in the form `%[a-z]+` (a percentage sign followed by a few lowercase letters). If it's not preceded by any flag, it's printed out as-is. Otherwise, it's formatted with one of the formatters:
35
+
36
+ - `path=`: `path`
37
+ - `name=`: `id`
38
+ - `code=`: `code`
39
+ - `subdue=`: `subdue`
40
+ - `number=`: `num`
41
+
42
+ If the expression is an array, it's formatted by `` `\n- ${array.join('\n- ')}\n` `` (note it automatically gets a leading line end). Each member is formatted by itself and the bullet is not formatted. So you would see the above message printed as:
43
+
44
+ ![demo](./demo.png)
package/demo.png ADDED
Binary file
package/lib/index.d.ts ADDED
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ import chalk from 'chalk';
8
+ declare type InterpolatableValue = string | number | (string | number)[];
9
+ declare function interpolate(msgs: TemplateStringsArray, ...values: InterpolatableValue[]): string;
10
+ declare function info(msg: unknown): void;
11
+ declare function info(msg: TemplateStringsArray, ...values: [InterpolatableValue, ...InterpolatableValue[]]): void;
12
+ declare function warn(msg: unknown): void;
13
+ declare function warn(msg: TemplateStringsArray, ...values: [InterpolatableValue, ...InterpolatableValue[]]): void;
14
+ declare function error(msg: unknown): void;
15
+ declare function error(msg: TemplateStringsArray, ...values: [InterpolatableValue, ...InterpolatableValue[]]): void;
16
+ declare function success(msg: unknown): void;
17
+ declare function success(msg: TemplateStringsArray, ...values: [InterpolatableValue, ...InterpolatableValue[]]): void;
18
+ declare const logger: {
19
+ red: chalk.Chalk;
20
+ yellow: chalk.Chalk;
21
+ green: chalk.Chalk;
22
+ bold: chalk.Chalk;
23
+ dim: chalk.Chalk;
24
+ path: (msg: unknown) => string;
25
+ name: (msg: unknown) => string;
26
+ code: (msg: unknown) => string;
27
+ subdue: chalk.Chalk;
28
+ num: chalk.Chalk;
29
+ interpolate: typeof interpolate;
30
+ info: typeof info;
31
+ warn: typeof warn;
32
+ error: typeof error;
33
+ success: typeof success;
34
+ };
35
+ export default logger;
36
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAc,MAAM,OAAO,CAAC;AAEnC,aAAK,mBAAmB,GAAG,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;AAQjE,iBAAS,WAAW,CAClB,IAAI,EAAE,oBAAoB,EAC1B,GAAG,MAAM,EAAE,mBAAmB,EAAE,GAC/B,MAAM,CAgCR;AAED,iBAAS,IAAI,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAAC;AAClC,iBAAS,IAAI,CACX,GAAG,EAAE,oBAAoB,EACzB,GAAG,MAAM,EAAE,CAAC,mBAAmB,EAAE,GAAG,mBAAmB,EAAE,CAAC,GACzD,IAAI,CAAC;AAUR,iBAAS,IAAI,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAAC;AAClC,iBAAS,IAAI,CACX,GAAG,EAAE,oBAAoB,EACzB,GAAG,MAAM,EAAE,CAAC,mBAAmB,EAAE,GAAG,mBAAmB,EAAE,CAAC,GACzD,IAAI,CAAC;AAYR,iBAAS,KAAK,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAAC;AACnC,iBAAS,KAAK,CACZ,GAAG,EAAE,oBAAoB,EACzB,GAAG,MAAM,EAAE,CAAC,mBAAmB,EAAE,GAAG,mBAAmB,EAAE,CAAC,GACzD,IAAI,CAAC;AAYR,iBAAS,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAAC;AACrC,iBAAS,OAAO,CACd,GAAG,EAAE,oBAAoB,EACzB,GAAG,MAAM,EAAE,CAAC,mBAAmB,EAAE,GAAG,mBAAmB,EAAE,CAAC,GACzD,IAAI,CAAC;AAWR,QAAA,MAAM,MAAM;;;;;;gBAxGO,OAAO,KAAG,MAAM;gBAChB,OAAO,KAAG,MAAM;gBAChB,OAAO,KAAG,MAAM;;;;;;;;CAsHlC,CAAC;AAEF,eAAe,MAAM,CAAC"}
package/lib/index.js ADDED
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright (c) Facebook, Inc. and its affiliates.
4
+ *
5
+ * This source code is licensed under the MIT license found in the
6
+ * LICENSE file in the root directory of this source tree.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ const tslib_1 = require("tslib");
10
+ const chalk_1 = (0, tslib_1.__importDefault)(require("chalk"));
11
+ const path = (msg) => chalk_1.default.cyan(chalk_1.default.underline(msg));
12
+ const name = (msg) => chalk_1.default.blue(chalk_1.default.bold(msg));
13
+ const code = (msg) => chalk_1.default.cyan(`\`${msg}\``);
14
+ const subdue = chalk_1.default.gray;
15
+ const num = chalk_1.default.yellow;
16
+ function interpolate(msgs, ...values) {
17
+ let res = '';
18
+ values.forEach((value, idx) => {
19
+ const flag = msgs[idx].match(/[a-z]+=$/);
20
+ res += msgs[idx].replace(/[a-z]+=$/, '');
21
+ const format = (function () {
22
+ if (!flag) {
23
+ return (a) => a;
24
+ }
25
+ switch (flag[0]) {
26
+ case 'path=':
27
+ return path;
28
+ case 'number=':
29
+ return num;
30
+ case 'name=':
31
+ return name;
32
+ case 'subdue=':
33
+ return subdue;
34
+ case 'code=':
35
+ return code;
36
+ default:
37
+ throw new Error('Bad Docusaurus logging message. This is likely an internal bug, please report it.');
38
+ }
39
+ })();
40
+ res += Array.isArray(value)
41
+ ? `\n- ${value.map((v) => format(v)).join('\n- ')}`
42
+ : format(value);
43
+ });
44
+ res += msgs.slice(-1)[0];
45
+ return res;
46
+ }
47
+ function info(msg, ...values) {
48
+ console.info(`${chalk_1.default.cyan(chalk_1.default.bold('[INFO]'))} ${values.length === 0
49
+ ? msg
50
+ : interpolate(msg, ...values)}`);
51
+ }
52
+ function warn(msg, ...values) {
53
+ console.warn(chalk_1.default.yellow(`${chalk_1.default.bold('[WARNING]')} ${values.length === 0
54
+ ? msg
55
+ : interpolate(msg, ...values)}`));
56
+ }
57
+ function error(msg, ...values) {
58
+ console.error(chalk_1.default.red(`${chalk_1.default.bold('[ERROR]')} ${values.length === 0
59
+ ? msg
60
+ : interpolate(msg, ...values)}`));
61
+ }
62
+ function success(msg, ...values) {
63
+ console.log(`${chalk_1.default.green(chalk_1.default.bold('[SUCCESS]'))} ${values.length === 0
64
+ ? msg
65
+ : interpolate(msg, ...values)}`);
66
+ }
67
+ const logger = {
68
+ red: chalk_1.default.red,
69
+ yellow: chalk_1.default.yellow,
70
+ green: chalk_1.default.green,
71
+ bold: chalk_1.default.bold,
72
+ dim: chalk_1.default.dim,
73
+ path,
74
+ name,
75
+ code,
76
+ subdue,
77
+ num,
78
+ interpolate,
79
+ info,
80
+ warn,
81
+ error,
82
+ success,
83
+ };
84
+ exports.default = logger;
85
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,+DAAmC;AAInC,MAAM,IAAI,GAAG,CAAC,GAAY,EAAU,EAAE,CAAC,eAAK,CAAC,IAAI,CAAC,eAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AACxE,MAAM,IAAI,GAAG,CAAC,GAAY,EAAU,EAAE,CAAC,eAAK,CAAC,IAAI,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACnE,MAAM,IAAI,GAAG,CAAC,GAAY,EAAU,EAAE,CAAC,eAAK,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;AAChE,MAAM,MAAM,GAAU,eAAK,CAAC,IAAI,CAAC;AACjC,MAAM,GAAG,GAAU,eAAK,CAAC,MAAM,CAAC;AAEhC,SAAS,WAAW,CAClB,IAA0B,EAC1B,GAAG,MAA6B;IAEhC,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACzC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,CAAC;YACd,IAAI,CAAC,IAAI,EAAE;gBACT,OAAO,CAAC,CAAkB,EAAE,EAAE,CAAC,CAAC,CAAC;aAClC;YACD,QAAQ,IAAI,CAAC,CAAC,CAAC,EAAE;gBACf,KAAK,OAAO;oBACV,OAAO,IAAI,CAAC;gBACd,KAAK,SAAS;oBACZ,OAAO,GAAG,CAAC;gBACb,KAAK,OAAO;oBACV,OAAO,IAAI,CAAC;gBACd,KAAK,SAAS;oBACZ,OAAO,MAAM,CAAC;gBAChB,KAAK,OAAO;oBACV,OAAO,IAAI,CAAC;gBACd;oBACE,MAAM,IAAI,KAAK,CACb,mFAAmF,CACpF,CAAC;aACL;QACH,CAAC,CAAC,EAAE,CAAC;QACL,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YACzB,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YACnD,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC,CAAC,CAAC;IACH,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzB,OAAO,GAAG,CAAC;AACb,CAAC;AAOD,SAAS,IAAI,CAAC,GAAY,EAAE,GAAG,MAA6B;IAC1D,OAAO,CAAC,IAAI,CACV,GAAG,eAAK,CAAC,IAAI,CAAC,eAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IACjC,MAAM,CAAC,MAAM,KAAK,CAAC;QACjB,CAAC,CAAC,GAAG;QACL,CAAC,CAAC,WAAW,CAAC,GAA2B,EAAE,GAAG,MAAM,CACxD,EAAE,CACH,CAAC;AACJ,CAAC;AAMD,SAAS,IAAI,CAAC,GAAY,EAAE,GAAG,MAA6B;IAC1D,OAAO,CAAC,IAAI,CACV,eAAK,CAAC,MAAM,CACV,GAAG,eAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IACxB,MAAM,CAAC,MAAM,KAAK,CAAC;QACjB,CAAC,CAAC,GAAG;QACL,CAAC,CAAC,WAAW,CAAC,GAA2B,EAAE,GAAG,MAAM,CACxD,EAAE,CACH,CACF,CAAC;AACJ,CAAC;AAMD,SAAS,KAAK,CAAC,GAAY,EAAE,GAAG,MAA6B;IAC3D,OAAO,CAAC,KAAK,CACX,eAAK,CAAC,GAAG,CACP,GAAG,eAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IACtB,MAAM,CAAC,MAAM,KAAK,CAAC;QACjB,CAAC,CAAC,GAAG;QACL,CAAC,CAAC,WAAW,CAAC,GAA2B,EAAE,GAAG,MAAM,CACxD,EAAE,CACH,CACF,CAAC;AACJ,CAAC;AAMD,SAAS,OAAO,CAAC,GAAY,EAAE,GAAG,MAA6B;IAC7D,OAAO,CAAC,GAAG,CACT,GAAG,eAAK,CAAC,KAAK,CAAC,eAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IACrC,MAAM,CAAC,MAAM,KAAK,CAAC;QACjB,CAAC,CAAC,GAAG;QACL,CAAC,CAAC,WAAW,CAAC,GAA2B,EAAE,GAAG,MAAM,CACxD,EAAE,CACH,CAAC;AACJ,CAAC;AAED,MAAM,MAAM,GAAG;IACb,GAAG,EAAE,eAAK,CAAC,GAAG;IACd,MAAM,EAAE,eAAK,CAAC,MAAM;IACpB,KAAK,EAAE,eAAK,CAAC,KAAK;IAClB,IAAI,EAAE,eAAK,CAAC,IAAI;IAChB,GAAG,EAAE,eAAK,CAAC,GAAG;IACd,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,MAAM;IACN,GAAG;IACH,WAAW;IACX,IAAI;IACJ,IAAI;IACJ,KAAK;IACL,OAAO;CACR,CAAC;AAEF,kBAAe,MAAM,CAAC"}
package/package.json ADDED
@@ -0,0 +1,33 @@
1
+ {
2
+ "name": "@docusaurus/logger",
3
+ "version": "0.0.0-4297",
4
+ "description": "An encapsulated logger for semantically formatting console messages.",
5
+ "main": "./lib/index.js",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "https://github.com/facebook/docusaurus.git",
9
+ "directory": "packages/docusaurus-logger"
10
+ },
11
+ "bugs": {
12
+ "url": "https://github.com/facebook/docusaurus/issues"
13
+ },
14
+ "scripts": {
15
+ "build": "tsc",
16
+ "watch": "tsc --watch"
17
+ },
18
+ "publishConfig": {
19
+ "access": "public"
20
+ },
21
+ "license": "MIT",
22
+ "dependencies": {
23
+ "chalk": "^4.1.2",
24
+ "tslib": "^2.3.1"
25
+ },
26
+ "engines": {
27
+ "node": ">=14"
28
+ },
29
+ "devDependencies": {
30
+ "@types/supports-color": "^8.1.1"
31
+ },
32
+ "gitHead": "84ae34c33c664bf856f3a92047919a074e087d77"
33
+ }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ const chalk = require('chalk');
9
+
10
+ // Force coloring the output even in CI
11
+ module.exports = new chalk.Instance({level: 3});
package/src/index.ts ADDED
@@ -0,0 +1,134 @@
1
+ /**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ import chalk, {Chalk} from 'chalk';
9
+
10
+ type InterpolatableValue = string | number | (string | number)[];
11
+
12
+ const path = (msg: unknown): string => chalk.cyan(chalk.underline(msg));
13
+ const name = (msg: unknown): string => chalk.blue(chalk.bold(msg));
14
+ const code = (msg: unknown): string => chalk.cyan(`\`${msg}\``);
15
+ const subdue: Chalk = chalk.gray;
16
+ const num: Chalk = chalk.yellow;
17
+
18
+ function interpolate(
19
+ msgs: TemplateStringsArray,
20
+ ...values: InterpolatableValue[]
21
+ ): string {
22
+ let res = '';
23
+ values.forEach((value, idx) => {
24
+ const flag = msgs[idx].match(/[a-z]+=$/);
25
+ res += msgs[idx].replace(/[a-z]+=$/, '');
26
+ const format = (function () {
27
+ if (!flag) {
28
+ return (a: string | number) => a;
29
+ }
30
+ switch (flag[0]) {
31
+ case 'path=':
32
+ return path;
33
+ case 'number=':
34
+ return num;
35
+ case 'name=':
36
+ return name;
37
+ case 'subdue=':
38
+ return subdue;
39
+ case 'code=':
40
+ return code;
41
+ default:
42
+ throw new Error(
43
+ 'Bad Docusaurus logging message. This is likely an internal bug, please report it.',
44
+ );
45
+ }
46
+ })();
47
+ res += Array.isArray(value)
48
+ ? `\n- ${value.map((v) => format(v)).join('\n- ')}`
49
+ : format(value);
50
+ });
51
+ res += msgs.slice(-1)[0];
52
+ return res;
53
+ }
54
+
55
+ function info(msg: unknown): void;
56
+ function info(
57
+ msg: TemplateStringsArray,
58
+ ...values: [InterpolatableValue, ...InterpolatableValue[]]
59
+ ): void;
60
+ function info(msg: unknown, ...values: InterpolatableValue[]): void {
61
+ console.info(
62
+ `${chalk.cyan(chalk.bold('[INFO]'))} ${
63
+ values.length === 0
64
+ ? msg
65
+ : interpolate(msg as TemplateStringsArray, ...values)
66
+ }`,
67
+ );
68
+ }
69
+ function warn(msg: unknown): void;
70
+ function warn(
71
+ msg: TemplateStringsArray,
72
+ ...values: [InterpolatableValue, ...InterpolatableValue[]]
73
+ ): void;
74
+ function warn(msg: unknown, ...values: InterpolatableValue[]): void {
75
+ console.warn(
76
+ chalk.yellow(
77
+ `${chalk.bold('[WARNING]')} ${
78
+ values.length === 0
79
+ ? msg
80
+ : interpolate(msg as TemplateStringsArray, ...values)
81
+ }`,
82
+ ),
83
+ );
84
+ }
85
+ function error(msg: unknown): void;
86
+ function error(
87
+ msg: TemplateStringsArray,
88
+ ...values: [InterpolatableValue, ...InterpolatableValue[]]
89
+ ): void;
90
+ function error(msg: unknown, ...values: InterpolatableValue[]): void {
91
+ console.error(
92
+ chalk.red(
93
+ `${chalk.bold('[ERROR]')} ${
94
+ values.length === 0
95
+ ? msg
96
+ : interpolate(msg as TemplateStringsArray, ...values)
97
+ }`,
98
+ ),
99
+ );
100
+ }
101
+ function success(msg: unknown): void;
102
+ function success(
103
+ msg: TemplateStringsArray,
104
+ ...values: [InterpolatableValue, ...InterpolatableValue[]]
105
+ ): void;
106
+ function success(msg: unknown, ...values: InterpolatableValue[]): void {
107
+ console.log(
108
+ `${chalk.green(chalk.bold('[SUCCESS]'))} ${
109
+ values.length === 0
110
+ ? msg
111
+ : interpolate(msg as TemplateStringsArray, ...values)
112
+ }`,
113
+ );
114
+ }
115
+
116
+ const logger = {
117
+ red: chalk.red,
118
+ yellow: chalk.yellow,
119
+ green: chalk.green,
120
+ bold: chalk.bold,
121
+ dim: chalk.dim,
122
+ path,
123
+ name,
124
+ code,
125
+ subdue,
126
+ num,
127
+ interpolate,
128
+ info,
129
+ warn,
130
+ error,
131
+ success,
132
+ };
133
+
134
+ export default logger;