nightingale-slack 11.7.4 → 12.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,28 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [12.0.0](https://github.com/christophehurpeau/nightingale/compare/v11.9.0...v12.0.0) (2021-12-11)
7
+
8
+
9
+ ### Build System
10
+
11
+ * node 14 and remove dev builds ([432ecd1](https://github.com/christophehurpeau/nightingale/commit/432ecd1faafd0419f57dea00fce560e4cccc207f))
12
+
13
+
14
+ ### Features
15
+
16
+ * drop default exports ([8878e49](https://github.com/christophehurpeau/nightingale/commit/8878e492b94852fcb892fd6d12c02c15c31b38b9))
17
+
18
+
19
+ ### BREAKING CHANGES
20
+
21
+ * use named imports instead of default exports
22
+ * requires node 14
23
+
24
+
25
+
26
+
27
+
6
28
  ## [11.7.4](https://github.com/christophehurpeau/nightingale/compare/v11.7.3...v11.7.4) (2021-11-27)
7
29
 
8
30
 
package/README.md CHANGED
@@ -20,7 +20,7 @@ npm install --save nightingale nightingale-slack
20
20
 
21
21
  ```js
22
22
  import { configure, Level } from 'nightingale';
23
- import SlackHandler from 'nightingale-slack';
23
+ import { SlackHandler } from 'nightingale-slack';
24
24
 
25
25
  const slackErrorConfig = {
26
26
  webhookUrl: string,
@@ -62,5 +62,4 @@ class SlackHandler {
62
62
 
63
63
  exports.SlackHandler = SlackHandler;
64
64
  exports.createBody = createBody;
65
- exports["default"] = SlackHandler;
66
- //# sourceMappingURL=index-node12.cjs.js.map
65
+ //# sourceMappingURL=index-node14.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-node14.cjs.js","sources":["../src/createBody.ts","../src/index.ts"],"sourcesContent":["/* eslint-disable camelcase */\nimport { Level } from 'nightingale-levels';\nimport markdownFormatter from 'nightingale-markdown-formatter';\nimport rawFormatter from 'nightingale-raw-formatter';\nimport type { LogRecord, Metadata } from 'nightingale-types';\nimport type SlackConfig from './SlackConfig';\n\nconst levelToSlackColor: Record<number, string> = {\n [Level.TRACE]: '#808080',\n [Level.DEBUG]: '#808080',\n [Level.INFO]: '#808080',\n [Level.WARN]: 'warning',\n [Level.ERROR]: 'danger',\n [Level.CRITICAL]: 'danger',\n [Level.FATAL]: 'danger',\n [Level.EMERGENCY]: 'danger',\n};\n\nexport default function createBody<T extends Metadata>(\n record: LogRecord<T>,\n slackConfig: SlackConfig,\n): Record<string, unknown> {\n const markdown = markdownFormatter(record);\n const raw = rawFormatter(record);\n\n return {\n channel: slackConfig.channel,\n username: slackConfig.username,\n icon_url: slackConfig.iconUrl,\n icon_emoji: slackConfig.iconEmoji,\n attachments: [\n {\n fallback: raw,\n title: record.message,\n color: levelToSlackColor[record.level],\n text: markdown,\n mrkdwn_in: ['text'],\n },\n ],\n };\n}\n","import type {\n LogRecord,\n Handle,\n Metadata,\n Handler,\n Level,\n} from 'nightingale-types';\nimport { post } from 'request';\nimport type SlackConfig from './SlackConfig';\nimport createBody from './createBody';\n\nexport { default as createBody } from './createBody';\n\nconst createHandler =\n (slackConfig: SlackConfig) =>\n <T extends Metadata>(record: LogRecord<T>) => {\n const body = createBody(record, slackConfig);\n\n post({ url: slackConfig.webhookUrl, body, json: true }).on(\n 'error',\n (err2: Error) => {\n console.error(err2.stack);\n },\n );\n };\n\nexport class SlackHandler implements Handler {\n minLevel: Level;\n\n handle: Handle;\n\n constructor(slackConfig: SlackConfig, minLevel: Level) {\n this.minLevel = minLevel;\n this.handle = createHandler(slackConfig);\n }\n}\n"],"names":["levelToSlackColor","Level","TRACE","DEBUG","INFO","WARN","ERROR","CRITICAL","FATAL","EMERGENCY","createBody","record","slackConfig","markdown","markdownFormatter","raw","rawFormatter","channel","username","icon_url","iconUrl","icon_emoji","iconEmoji","attachments","fallback","title","message","color","level","text","mrkdwn_in","createHandler","body","post","url","webhookUrl","json","on","err2","console","error","stack","SlackHandler","constructor","minLevel","handle"],"mappings":";;;;;;;;;;;;;;AAAA;AAOA,MAAMA,iBAAyC,GAAG;AAChD,GAACC,uBAAK,CAACC,KAAP,GAAe,SADiC;AAEhD,GAACD,uBAAK,CAACE,KAAP,GAAe,SAFiC;AAGhD,GAACF,uBAAK,CAACG,IAAP,GAAc,SAHkC;AAIhD,GAACH,uBAAK,CAACI,IAAP,GAAc,SAJkC;AAKhD,GAACJ,uBAAK,CAACK,KAAP,GAAe,QALiC;AAMhD,GAACL,uBAAK,CAACM,QAAP,GAAkB,QAN8B;AAOhD,GAACN,uBAAK,CAACO,KAAP,GAAe,QAPiC;AAQhD,GAACP,uBAAK,CAACQ,SAAP,GAAmB;AAR6B,CAAlD;AAWe,SAASC,UAAT,CACbC,MADa,EAEbC,WAFa,EAGY;AACzB,QAAMC,QAAQ,GAAGC,0BAAiB,CAACH,MAAD,CAAlC;AACA,QAAMI,GAAG,GAAGC,qBAAY,CAACL,MAAD,CAAxB;AAEA,SAAO;AACLM,IAAAA,OAAO,EAAEL,WAAW,CAACK,OADhB;AAELC,IAAAA,QAAQ,EAAEN,WAAW,CAACM,QAFjB;AAGLC,IAAAA,QAAQ,EAAEP,WAAW,CAACQ,OAHjB;AAILC,IAAAA,UAAU,EAAET,WAAW,CAACU,SAJnB;AAKLC,IAAAA,WAAW,EAAE,CACX;AACEC,MAAAA,QAAQ,EAAET,GADZ;AAEEU,MAAAA,KAAK,EAAEd,MAAM,CAACe,OAFhB;AAGEC,MAAAA,KAAK,EAAE3B,iBAAiB,CAACW,MAAM,CAACiB,KAAR,CAH1B;AAIEC,MAAAA,IAAI,EAAEhB,QAJR;AAKEiB,MAAAA,SAAS,EAAE,CAAC,MAAD;AALb,KADW;AALR,GAAP;AAeD;;AC3BD,MAAMC,aAAa,GAChBnB,WAAD,IACqBD,MAArB,IAA8C;AAC5C,QAAMqB,IAAI,GAAGtB,UAAU,CAACC,MAAD,EAASC,WAAT,CAAvB;AAEAqB,EAAAA,YAAI,CAAC;AAAEC,IAAAA,GAAG,EAAEtB,WAAW,CAACuB,UAAnB;AAA+BH,IAAAA,IAA/B;AAAqCI,IAAAA,IAAI,EAAE;AAA3C,GAAD,CAAJ,CAAwDC,EAAxD,CACE,OADF,EAEGC,IAAD,IAAiB;AACfC,IAAAA,OAAO,CAACC,KAAR,CAAcF,IAAI,CAACG,KAAnB;AACD,GAJH;AAMD,CAXH;;AAaO,MAAMC,YAAN,CAAsC;AAK3CC,EAAAA,WAAW,CAAC/B,WAAD,EAA2BgC,QAA3B,EAA4C;AACrD,SAAKA,QAAL,GAAgBA,QAAhB;AACA,SAAKC,MAAL,GAAcd,aAAa,CAACnB,WAAD,CAA3B;AACD;;AAR0C;;;;;"}
@@ -51,5 +51,5 @@ class SlackHandler {
51
51
 
52
52
  }
53
53
 
54
- export { SlackHandler, createBody, SlackHandler as default };
55
- //# sourceMappingURL=index-node12.mjs.map
54
+ export { SlackHandler, createBody };
55
+ //# sourceMappingURL=index-node14.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-node14.mjs","sources":["../src/createBody.ts","../src/index.ts"],"sourcesContent":["/* eslint-disable camelcase */\nimport { Level } from 'nightingale-levels';\nimport markdownFormatter from 'nightingale-markdown-formatter';\nimport rawFormatter from 'nightingale-raw-formatter';\nimport type { LogRecord, Metadata } from 'nightingale-types';\nimport type SlackConfig from './SlackConfig';\n\nconst levelToSlackColor: Record<number, string> = {\n [Level.TRACE]: '#808080',\n [Level.DEBUG]: '#808080',\n [Level.INFO]: '#808080',\n [Level.WARN]: 'warning',\n [Level.ERROR]: 'danger',\n [Level.CRITICAL]: 'danger',\n [Level.FATAL]: 'danger',\n [Level.EMERGENCY]: 'danger',\n};\n\nexport default function createBody<T extends Metadata>(\n record: LogRecord<T>,\n slackConfig: SlackConfig,\n): Record<string, unknown> {\n const markdown = markdownFormatter(record);\n const raw = rawFormatter(record);\n\n return {\n channel: slackConfig.channel,\n username: slackConfig.username,\n icon_url: slackConfig.iconUrl,\n icon_emoji: slackConfig.iconEmoji,\n attachments: [\n {\n fallback: raw,\n title: record.message,\n color: levelToSlackColor[record.level],\n text: markdown,\n mrkdwn_in: ['text'],\n },\n ],\n };\n}\n","import type {\n LogRecord,\n Handle,\n Metadata,\n Handler,\n Level,\n} from 'nightingale-types';\nimport { post } from 'request';\nimport type SlackConfig from './SlackConfig';\nimport createBody from './createBody';\n\nexport { default as createBody } from './createBody';\n\nconst createHandler =\n (slackConfig: SlackConfig) =>\n <T extends Metadata>(record: LogRecord<T>) => {\n const body = createBody(record, slackConfig);\n\n post({ url: slackConfig.webhookUrl, body, json: true }).on(\n 'error',\n (err2: Error) => {\n console.error(err2.stack);\n },\n );\n };\n\nexport class SlackHandler implements Handler {\n minLevel: Level;\n\n handle: Handle;\n\n constructor(slackConfig: SlackConfig, minLevel: Level) {\n this.minLevel = minLevel;\n this.handle = createHandler(slackConfig);\n }\n}\n"],"names":["levelToSlackColor","Level","TRACE","DEBUG","INFO","WARN","ERROR","CRITICAL","FATAL","EMERGENCY","createBody","record","slackConfig","markdown","markdownFormatter","raw","rawFormatter","channel","username","icon_url","iconUrl","icon_emoji","iconEmoji","attachments","fallback","title","message","color","level","text","mrkdwn_in","createHandler","body","post","url","webhookUrl","json","on","err2","console","error","stack","SlackHandler","constructor","minLevel","handle"],"mappings":";;;;;AAAA;AAOA,MAAMA,iBAAyC,GAAG;AAChD,GAACC,KAAK,CAACC,KAAP,GAAe,SADiC;AAEhD,GAACD,KAAK,CAACE,KAAP,GAAe,SAFiC;AAGhD,GAACF,KAAK,CAACG,IAAP,GAAc,SAHkC;AAIhD,GAACH,KAAK,CAACI,IAAP,GAAc,SAJkC;AAKhD,GAACJ,KAAK,CAACK,KAAP,GAAe,QALiC;AAMhD,GAACL,KAAK,CAACM,QAAP,GAAkB,QAN8B;AAOhD,GAACN,KAAK,CAACO,KAAP,GAAe,QAPiC;AAQhD,GAACP,KAAK,CAACQ,SAAP,GAAmB;AAR6B,CAAlD;AAWe,SAASC,UAAT,CACbC,MADa,EAEbC,WAFa,EAGY;AACzB,QAAMC,QAAQ,GAAGC,iBAAiB,CAACH,MAAD,CAAlC;AACA,QAAMI,GAAG,GAAGC,YAAY,CAACL,MAAD,CAAxB;AAEA,SAAO;AACLM,IAAAA,OAAO,EAAEL,WAAW,CAACK,OADhB;AAELC,IAAAA,QAAQ,EAAEN,WAAW,CAACM,QAFjB;AAGLC,IAAAA,QAAQ,EAAEP,WAAW,CAACQ,OAHjB;AAILC,IAAAA,UAAU,EAAET,WAAW,CAACU,SAJnB;AAKLC,IAAAA,WAAW,EAAE,CACX;AACEC,MAAAA,QAAQ,EAAET,GADZ;AAEEU,MAAAA,KAAK,EAAEd,MAAM,CAACe,OAFhB;AAGEC,MAAAA,KAAK,EAAE3B,iBAAiB,CAACW,MAAM,CAACiB,KAAR,CAH1B;AAIEC,MAAAA,IAAI,EAAEhB,QAJR;AAKEiB,MAAAA,SAAS,EAAE,CAAC,MAAD;AALb,KADW;AALR,GAAP;AAeD;;AC3BD,MAAMC,aAAa,GAChBnB,WAAD,IACqBD,MAArB,IAA8C;AAC5C,QAAMqB,IAAI,GAAGtB,UAAU,CAACC,MAAD,EAASC,WAAT,CAAvB;AAEAqB,EAAAA,IAAI,CAAC;AAAEC,IAAAA,GAAG,EAAEtB,WAAW,CAACuB,UAAnB;AAA+BH,IAAAA,IAA/B;AAAqCI,IAAAA,IAAI,EAAE;AAA3C,GAAD,CAAJ,CAAwDC,EAAxD,CACE,OADF,EAEGC,IAAD,IAAiB;AACfC,IAAAA,OAAO,CAACC,KAAR,CAAcF,IAAI,CAACG,KAAnB;AACD,GAJH;AAMD,CAXH;;AAaO,MAAMC,YAAN,CAAsC;AAK3CC,EAAAA,WAAW,CAAC/B,WAAD,EAA2BgC,QAA3B,EAA4C;AACrD,SAAKA,QAAL,GAAgBA,QAAhB;AACA,SAAKC,MAAL,GAAcd,aAAa,CAACnB,WAAD,CAA3B;AACD;;AAR0C;;;;"}
package/dist/index.d.ts CHANGED
@@ -6,6 +6,4 @@ export declare class SlackHandler implements Handler {
6
6
  handle: Handle;
7
7
  constructor(slackConfig: SlackConfig, minLevel: Level);
8
8
  }
9
- /** @deprecated use named export instead */
10
- export default SlackHandler;
11
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,MAAM,EAEN,OAAO,EACP,KAAK,EACN,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,WAAW,MAAM,eAAe,CAAC;AAG7C,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AAerD,qBAAa,YAAa,YAAW,OAAO;IAC1C,QAAQ,EAAE,KAAK,CAAC;IAEhB,MAAM,EAAE,MAAM,CAAC;gBAEH,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK;CAItD;AAED,2CAA2C;AAC3C,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,MAAM,EAEN,OAAO,EACP,KAAK,EACN,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,WAAW,MAAM,eAAe,CAAC;AAG7C,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AAerD,qBAAa,YAAa,YAAW,OAAO;IAC1C,QAAQ,EAAE,KAAK,CAAC;IAEhB,MAAM,EAAE,MAAM,CAAC;gBAEH,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK;CAItD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nightingale-slack",
3
- "version": "11.7.4",
3
+ "version": "12.0.0",
4
4
  "description": "Slack handler for nightingale",
5
5
  "keywords": [
6
6
  "nightingale",
@@ -16,35 +16,27 @@
16
16
  "homepage": "https://github.com/christophehurpeau/nightingale",
17
17
  "type": "commonjs",
18
18
  "engines": {
19
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
19
+ "node": "^14.13.1 || >=16.0.0"
20
20
  },
21
- "main": "./dist/index-node12.cjs.js",
21
+ "main": "./dist/index-node14.cjs.js",
22
22
  "types": "./dist/index.d.ts",
23
23
  "exports": {
24
24
  "./package.json": "./package.json",
25
25
  ".": {
26
26
  "node": {
27
- "development": {
28
- "import": "./dist/index-node12-dev.mjs",
29
- "require": "./dist/index-node12-dev.cjs.js"
30
- },
31
- "import": "./dist/index-node12.mjs",
32
- "require": "./dist/index-node12.cjs.js"
27
+ "import": "./dist/index-node14.mjs",
28
+ "require": "./dist/index-node14.cjs.js"
33
29
  }
34
30
  }
35
31
  },
36
- "module:node": "./dist/index-node12.mjs",
37
- "module:node-dev": "./dist/index-node12-dev.mjs",
32
+ "module:node": "./dist/index-node14.mjs",
38
33
  "sideEffects": false,
39
34
  "scripts": {
40
35
  "build": "pob-build && yarn run build:definitions",
41
36
  "build:definitions": "tsc -p tsconfig.build.json",
42
- "clean": "rm -Rf docs dist test/node6 coverage",
43
- "generate:test-coverage": "rm -Rf docs/coverage/ ; NODE_ENV=production BABEL_ENV=test jest --coverage --coverageReporters=pob-lcov-reporter --coverageDirectory=docs/coverage/",
37
+ "clean": "rm -Rf dist",
44
38
  "lint": "yarn run lint:eslint",
45
39
  "lint:eslint": "cd ../.. && yarn run eslint --report-unused-disable-directives --resolve-plugins-relative-to . --quiet packages/nightingale-slack",
46
- "test": "jest",
47
- "test:watch": "jest --watch",
48
40
  "watch": "pob-watch"
49
41
  },
50
42
  "prettier": {
@@ -52,30 +44,11 @@
52
44
  "singleQuote": true,
53
45
  "arrowParens": "always"
54
46
  },
55
- "jest": {
56
- "cacheDirectory": "./node_modules/.cache/jest",
57
- "testMatch": [
58
- "<rootDir>/src/**/__tests__/**/*.ts",
59
- "<rootDir>/src/**/*.test.ts"
60
- ],
61
- "collectCoverageFrom": [
62
- "src/**/*.ts"
63
- ],
64
- "moduleFileExtensions": [
65
- "ts",
66
- "js",
67
- "json"
68
- ],
69
- "transform": {
70
- "^.+\\.ts$": "babel-jest"
71
- },
72
- "testEnvironment": "node"
73
- },
74
47
  "pob": {
75
48
  "babelEnvs": [
76
49
  {
77
50
  "target": "node",
78
- "version": "12",
51
+ "version": "14",
79
52
  "formats": [
80
53
  "cjs",
81
54
  "es"
@@ -87,24 +60,17 @@
87
60
  ]
88
61
  },
89
62
  "dependencies": {
90
- "nightingale-levels": "^11.7.2",
91
- "nightingale-markdown-formatter": "^11.7.4",
92
- "nightingale-raw-formatter": "^11.7.4",
93
- "nightingale-types": "^11.7.4",
63
+ "nightingale-levels": "^12.0.0",
64
+ "nightingale-markdown-formatter": "^12.0.0",
65
+ "nightingale-raw-formatter": "^12.0.0",
66
+ "nightingale-types": "^12.0.0",
94
67
  "request": "^2.88.0"
95
68
  },
96
69
  "devDependencies": {
97
70
  "@babel/core": "7.16.0",
98
- "@types/jest": "27.0.3",
99
71
  "@types/request": "2.48.7",
100
- "babel-jest": "27.3.1",
101
- "babel-preset-latest-node": "5.5.1",
102
- "jest": "27.3.1",
103
- "pob-babel": "28.5.0",
104
- "pob-lcov-reporter": "5.4.0",
105
- "rollup": "2.60.1",
106
- "typescript": "4.5.2",
107
- "xunit-file": "1.0.0"
72
+ "pob-babel": "29.3.0",
73
+ "typescript": "4.5.3"
108
74
  },
109
- "gitHead": "70f6b4ba634ff778fc94bef7e2455e8b6a7db06a"
75
+ "gitHead": "682f57fa30eaca9732681d16008abb2680b24174"
110
76
  }
package/src/index.ts CHANGED
@@ -34,6 +34,3 @@ export class SlackHandler implements Handler {
34
34
  this.handle = createHandler(slackConfig);
35
35
  }
36
36
  }
37
-
38
- /** @deprecated use named export instead */
39
- export default SlackHandler;
package/babel.config.cjs DELETED
@@ -1,14 +0,0 @@
1
- 'use strict';
2
-
3
- const path = require('path');
4
-
5
- module.exports = function babelConfig(api) {
6
- const isTest = api.env('test');
7
-
8
- if (!isTest) return {};
9
-
10
- return {
11
- only: [path.resolve(__dirname, 'src')],
12
- presets: [require.resolve('pob-babel/preset')],
13
- };
14
- };
@@ -1,66 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- const request = require('request');
6
- const nightingaleLevels = require('nightingale-levels');
7
- const markdownFormatter = require('nightingale-markdown-formatter');
8
- const rawFormatter = require('nightingale-raw-formatter');
9
-
10
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e["default"] : e; }
11
-
12
- const markdownFormatter__default = /*#__PURE__*/_interopDefaultLegacy(markdownFormatter);
13
- const rawFormatter__default = /*#__PURE__*/_interopDefaultLegacy(rawFormatter);
14
-
15
- /* eslint-disable camelcase */
16
- const levelToSlackColor = {
17
- [nightingaleLevels.Level.TRACE]: '#808080',
18
- [nightingaleLevels.Level.DEBUG]: '#808080',
19
- [nightingaleLevels.Level.INFO]: '#808080',
20
- [nightingaleLevels.Level.WARN]: 'warning',
21
- [nightingaleLevels.Level.ERROR]: 'danger',
22
- [nightingaleLevels.Level.CRITICAL]: 'danger',
23
- [nightingaleLevels.Level.FATAL]: 'danger',
24
- [nightingaleLevels.Level.EMERGENCY]: 'danger'
25
- };
26
- function createBody(record, slackConfig) {
27
- const markdown = markdownFormatter__default(record);
28
- const raw = rawFormatter__default(record);
29
- return {
30
- channel: slackConfig.channel,
31
- username: slackConfig.username,
32
- icon_url: slackConfig.iconUrl,
33
- icon_emoji: slackConfig.iconEmoji,
34
- attachments: [{
35
- fallback: raw,
36
- title: record.message,
37
- color: levelToSlackColor[record.level],
38
- text: markdown,
39
- mrkdwn_in: ['text']
40
- }]
41
- };
42
- }
43
-
44
- const createHandler = slackConfig => record => {
45
- const body = createBody(record, slackConfig);
46
- request.post({
47
- url: slackConfig.webhookUrl,
48
- body,
49
- json: true
50
- }).on('error', err2 => {
51
- console.error(err2.stack);
52
- });
53
- };
54
-
55
- class SlackHandler {
56
- constructor(slackConfig, minLevel) {
57
- this.minLevel = minLevel;
58
- this.handle = createHandler(slackConfig);
59
- }
60
-
61
- }
62
-
63
- exports.SlackHandler = SlackHandler;
64
- exports.createBody = createBody;
65
- exports["default"] = SlackHandler;
66
- //# sourceMappingURL=index-node12-dev.cjs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-node12-dev.cjs.js","sources":["../src/createBody.ts","../src/index.ts"],"sourcesContent":["/* eslint-disable camelcase */\nimport { Level } from 'nightingale-levels';\nimport markdownFormatter from 'nightingale-markdown-formatter';\nimport rawFormatter from 'nightingale-raw-formatter';\nimport type { LogRecord, Metadata } from 'nightingale-types';\nimport type SlackConfig from './SlackConfig';\n\nconst levelToSlackColor: Record<number, string> = {\n [Level.TRACE]: '#808080',\n [Level.DEBUG]: '#808080',\n [Level.INFO]: '#808080',\n [Level.WARN]: 'warning',\n [Level.ERROR]: 'danger',\n [Level.CRITICAL]: 'danger',\n [Level.FATAL]: 'danger',\n [Level.EMERGENCY]: 'danger',\n};\n\nexport default function createBody<T extends Metadata>(\n record: LogRecord<T>,\n slackConfig: SlackConfig,\n): Record<string, unknown> {\n const markdown = markdownFormatter(record);\n const raw = rawFormatter(record);\n\n return {\n channel: slackConfig.channel,\n username: slackConfig.username,\n icon_url: slackConfig.iconUrl,\n icon_emoji: slackConfig.iconEmoji,\n attachments: [\n {\n fallback: raw,\n title: record.message,\n color: levelToSlackColor[record.level],\n text: markdown,\n mrkdwn_in: ['text'],\n },\n ],\n };\n}\n","import type {\n LogRecord,\n Handle,\n Metadata,\n Handler,\n Level,\n} from 'nightingale-types';\nimport { post } from 'request';\nimport type SlackConfig from './SlackConfig';\nimport createBody from './createBody';\n\nexport { default as createBody } from './createBody';\n\nconst createHandler =\n (slackConfig: SlackConfig) =>\n <T extends Metadata>(record: LogRecord<T>) => {\n const body = createBody(record, slackConfig);\n\n post({ url: slackConfig.webhookUrl, body, json: true }).on(\n 'error',\n (err2: Error) => {\n console.error(err2.stack);\n },\n );\n };\n\nexport class SlackHandler implements Handler {\n minLevel: Level;\n\n handle: Handle;\n\n constructor(slackConfig: SlackConfig, minLevel: Level) {\n this.minLevel = minLevel;\n this.handle = createHandler(slackConfig);\n }\n}\n\n/** @deprecated use named export instead */\nexport default SlackHandler;\n"],"names":["levelToSlackColor","Level","TRACE","DEBUG","INFO","WARN","ERROR","CRITICAL","FATAL","EMERGENCY","createBody","record","slackConfig","markdown","markdownFormatter","raw","rawFormatter","channel","username","icon_url","iconUrl","icon_emoji","iconEmoji","attachments","fallback","title","message","color","level","text","mrkdwn_in","createHandler","body","post","url","webhookUrl","json","on","err2","console","error","stack","SlackHandler","constructor","minLevel","handle"],"mappings":";;;;;;;;;;;;;;AAAA;AAOA,MAAMA,iBAAyC,GAAG;AAChD,GAACC,uBAAK,CAACC,KAAP,GAAe,SADiC;AAEhD,GAACD,uBAAK,CAACE,KAAP,GAAe,SAFiC;AAGhD,GAACF,uBAAK,CAACG,IAAP,GAAc,SAHkC;AAIhD,GAACH,uBAAK,CAACI,IAAP,GAAc,SAJkC;AAKhD,GAACJ,uBAAK,CAACK,KAAP,GAAe,QALiC;AAMhD,GAACL,uBAAK,CAACM,QAAP,GAAkB,QAN8B;AAOhD,GAACN,uBAAK,CAACO,KAAP,GAAe,QAPiC;AAQhD,GAACP,uBAAK,CAACQ,SAAP,GAAmB;AAR6B,CAAlD;AAWe,SAASC,UAAT,CACbC,MADa,EAEbC,WAFa,EAGY;AACzB,QAAMC,QAAQ,GAAGC,0BAAiB,CAACH,MAAD,CAAlC;AACA,QAAMI,GAAG,GAAGC,qBAAY,CAACL,MAAD,CAAxB;AAEA,SAAO;AACLM,IAAAA,OAAO,EAAEL,WAAW,CAACK,OADhB;AAELC,IAAAA,QAAQ,EAAEN,WAAW,CAACM,QAFjB;AAGLC,IAAAA,QAAQ,EAAEP,WAAW,CAACQ,OAHjB;AAILC,IAAAA,UAAU,EAAET,WAAW,CAACU,SAJnB;AAKLC,IAAAA,WAAW,EAAE,CACX;AACEC,MAAAA,QAAQ,EAAET,GADZ;AAEEU,MAAAA,KAAK,EAAEd,MAAM,CAACe,OAFhB;AAGEC,MAAAA,KAAK,EAAE3B,iBAAiB,CAACW,MAAM,CAACiB,KAAR,CAH1B;AAIEC,MAAAA,IAAI,EAAEhB,QAJR;AAKEiB,MAAAA,SAAS,EAAE,CAAC,MAAD;AALb,KADW;AALR,GAAP;AAeD;;AC3BD,MAAMC,aAAa,GAChBnB,WAAD,IACqBD,MAArB,IAA8C;AAC5C,QAAMqB,IAAI,GAAGtB,UAAU,CAACC,MAAD,EAASC,WAAT,CAAvB;AAEAqB,EAAAA,YAAI,CAAC;AAAEC,IAAAA,GAAG,EAAEtB,WAAW,CAACuB,UAAnB;AAA+BH,IAAAA,IAA/B;AAAqCI,IAAAA,IAAI,EAAE;AAA3C,GAAD,CAAJ,CAAwDC,EAAxD,CACE,OADF,EAEGC,IAAD,IAAiB;AACfC,IAAAA,OAAO,CAACC,KAAR,CAAcF,IAAI,CAACG,KAAnB;AACD,GAJH;AAMD,CAXH;;AAaO,MAAMC,YAAN,CAAsC;AAK3CC,EAAAA,WAAW,CAAC/B,WAAD,EAA2BgC,QAA3B,EAA4C;AACrD,SAAKA,QAAL,GAAgBA,QAAhB;AACA,SAAKC,MAAL,GAAcd,aAAa,CAACnB,WAAD,CAA3B;AACD;;AAR0C;;;;;;"}
@@ -1,55 +0,0 @@
1
- import { post } from 'request';
2
- import { Level } from 'nightingale-levels';
3
- import markdownFormatter from 'nightingale-markdown-formatter';
4
- import rawFormatter from 'nightingale-raw-formatter';
5
-
6
- /* eslint-disable camelcase */
7
- const levelToSlackColor = {
8
- [Level.TRACE]: '#808080',
9
- [Level.DEBUG]: '#808080',
10
- [Level.INFO]: '#808080',
11
- [Level.WARN]: 'warning',
12
- [Level.ERROR]: 'danger',
13
- [Level.CRITICAL]: 'danger',
14
- [Level.FATAL]: 'danger',
15
- [Level.EMERGENCY]: 'danger'
16
- };
17
- function createBody(record, slackConfig) {
18
- const markdown = markdownFormatter(record);
19
- const raw = rawFormatter(record);
20
- return {
21
- channel: slackConfig.channel,
22
- username: slackConfig.username,
23
- icon_url: slackConfig.iconUrl,
24
- icon_emoji: slackConfig.iconEmoji,
25
- attachments: [{
26
- fallback: raw,
27
- title: record.message,
28
- color: levelToSlackColor[record.level],
29
- text: markdown,
30
- mrkdwn_in: ['text']
31
- }]
32
- };
33
- }
34
-
35
- const createHandler = slackConfig => record => {
36
- const body = createBody(record, slackConfig);
37
- post({
38
- url: slackConfig.webhookUrl,
39
- body,
40
- json: true
41
- }).on('error', err2 => {
42
- console.error(err2.stack);
43
- });
44
- };
45
-
46
- class SlackHandler {
47
- constructor(slackConfig, minLevel) {
48
- this.minLevel = minLevel;
49
- this.handle = createHandler(slackConfig);
50
- }
51
-
52
- }
53
-
54
- export { SlackHandler, createBody, SlackHandler as default };
55
- //# sourceMappingURL=index-node12-dev.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-node12-dev.mjs","sources":["../src/createBody.ts","../src/index.ts"],"sourcesContent":["/* eslint-disable camelcase */\nimport { Level } from 'nightingale-levels';\nimport markdownFormatter from 'nightingale-markdown-formatter';\nimport rawFormatter from 'nightingale-raw-formatter';\nimport type { LogRecord, Metadata } from 'nightingale-types';\nimport type SlackConfig from './SlackConfig';\n\nconst levelToSlackColor: Record<number, string> = {\n [Level.TRACE]: '#808080',\n [Level.DEBUG]: '#808080',\n [Level.INFO]: '#808080',\n [Level.WARN]: 'warning',\n [Level.ERROR]: 'danger',\n [Level.CRITICAL]: 'danger',\n [Level.FATAL]: 'danger',\n [Level.EMERGENCY]: 'danger',\n};\n\nexport default function createBody<T extends Metadata>(\n record: LogRecord<T>,\n slackConfig: SlackConfig,\n): Record<string, unknown> {\n const markdown = markdownFormatter(record);\n const raw = rawFormatter(record);\n\n return {\n channel: slackConfig.channel,\n username: slackConfig.username,\n icon_url: slackConfig.iconUrl,\n icon_emoji: slackConfig.iconEmoji,\n attachments: [\n {\n fallback: raw,\n title: record.message,\n color: levelToSlackColor[record.level],\n text: markdown,\n mrkdwn_in: ['text'],\n },\n ],\n };\n}\n","import type {\n LogRecord,\n Handle,\n Metadata,\n Handler,\n Level,\n} from 'nightingale-types';\nimport { post } from 'request';\nimport type SlackConfig from './SlackConfig';\nimport createBody from './createBody';\n\nexport { default as createBody } from './createBody';\n\nconst createHandler =\n (slackConfig: SlackConfig) =>\n <T extends Metadata>(record: LogRecord<T>) => {\n const body = createBody(record, slackConfig);\n\n post({ url: slackConfig.webhookUrl, body, json: true }).on(\n 'error',\n (err2: Error) => {\n console.error(err2.stack);\n },\n );\n };\n\nexport class SlackHandler implements Handler {\n minLevel: Level;\n\n handle: Handle;\n\n constructor(slackConfig: SlackConfig, minLevel: Level) {\n this.minLevel = minLevel;\n this.handle = createHandler(slackConfig);\n }\n}\n\n/** @deprecated use named export instead */\nexport default SlackHandler;\n"],"names":["levelToSlackColor","Level","TRACE","DEBUG","INFO","WARN","ERROR","CRITICAL","FATAL","EMERGENCY","createBody","record","slackConfig","markdown","markdownFormatter","raw","rawFormatter","channel","username","icon_url","iconUrl","icon_emoji","iconEmoji","attachments","fallback","title","message","color","level","text","mrkdwn_in","createHandler","body","post","url","webhookUrl","json","on","err2","console","error","stack","SlackHandler","constructor","minLevel","handle"],"mappings":";;;;;AAAA;AAOA,MAAMA,iBAAyC,GAAG;AAChD,GAACC,KAAK,CAACC,KAAP,GAAe,SADiC;AAEhD,GAACD,KAAK,CAACE,KAAP,GAAe,SAFiC;AAGhD,GAACF,KAAK,CAACG,IAAP,GAAc,SAHkC;AAIhD,GAACH,KAAK,CAACI,IAAP,GAAc,SAJkC;AAKhD,GAACJ,KAAK,CAACK,KAAP,GAAe,QALiC;AAMhD,GAACL,KAAK,CAACM,QAAP,GAAkB,QAN8B;AAOhD,GAACN,KAAK,CAACO,KAAP,GAAe,QAPiC;AAQhD,GAACP,KAAK,CAACQ,SAAP,GAAmB;AAR6B,CAAlD;AAWe,SAASC,UAAT,CACbC,MADa,EAEbC,WAFa,EAGY;AACzB,QAAMC,QAAQ,GAAGC,iBAAiB,CAACH,MAAD,CAAlC;AACA,QAAMI,GAAG,GAAGC,YAAY,CAACL,MAAD,CAAxB;AAEA,SAAO;AACLM,IAAAA,OAAO,EAAEL,WAAW,CAACK,OADhB;AAELC,IAAAA,QAAQ,EAAEN,WAAW,CAACM,QAFjB;AAGLC,IAAAA,QAAQ,EAAEP,WAAW,CAACQ,OAHjB;AAILC,IAAAA,UAAU,EAAET,WAAW,CAACU,SAJnB;AAKLC,IAAAA,WAAW,EAAE,CACX;AACEC,MAAAA,QAAQ,EAAET,GADZ;AAEEU,MAAAA,KAAK,EAAEd,MAAM,CAACe,OAFhB;AAGEC,MAAAA,KAAK,EAAE3B,iBAAiB,CAACW,MAAM,CAACiB,KAAR,CAH1B;AAIEC,MAAAA,IAAI,EAAEhB,QAJR;AAKEiB,MAAAA,SAAS,EAAE,CAAC,MAAD;AALb,KADW;AALR,GAAP;AAeD;;AC3BD,MAAMC,aAAa,GAChBnB,WAAD,IACqBD,MAArB,IAA8C;AAC5C,QAAMqB,IAAI,GAAGtB,UAAU,CAACC,MAAD,EAASC,WAAT,CAAvB;AAEAqB,EAAAA,IAAI,CAAC;AAAEC,IAAAA,GAAG,EAAEtB,WAAW,CAACuB,UAAnB;AAA+BH,IAAAA,IAA/B;AAAqCI,IAAAA,IAAI,EAAE;AAA3C,GAAD,CAAJ,CAAwDC,EAAxD,CACE,OADF,EAEGC,IAAD,IAAiB;AACfC,IAAAA,OAAO,CAACC,KAAR,CAAcF,IAAI,CAACG,KAAnB;AACD,GAJH;AAMD,CAXH;;AAaO,MAAMC,YAAN,CAAsC;AAK3CC,EAAAA,WAAW,CAAC/B,WAAD,EAA2BgC,QAA3B,EAA4C;AACrD,SAAKA,QAAL,GAAgBA,QAAhB;AACA,SAAKC,MAAL,GAAcd,aAAa,CAACnB,WAAD,CAA3B;AACD;;AAR0C;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-node12.cjs.js","sources":["../src/createBody.ts","../src/index.ts"],"sourcesContent":["/* eslint-disable camelcase */\nimport { Level } from 'nightingale-levels';\nimport markdownFormatter from 'nightingale-markdown-formatter';\nimport rawFormatter from 'nightingale-raw-formatter';\nimport type { LogRecord, Metadata } from 'nightingale-types';\nimport type SlackConfig from './SlackConfig';\n\nconst levelToSlackColor: Record<number, string> = {\n [Level.TRACE]: '#808080',\n [Level.DEBUG]: '#808080',\n [Level.INFO]: '#808080',\n [Level.WARN]: 'warning',\n [Level.ERROR]: 'danger',\n [Level.CRITICAL]: 'danger',\n [Level.FATAL]: 'danger',\n [Level.EMERGENCY]: 'danger',\n};\n\nexport default function createBody<T extends Metadata>(\n record: LogRecord<T>,\n slackConfig: SlackConfig,\n): Record<string, unknown> {\n const markdown = markdownFormatter(record);\n const raw = rawFormatter(record);\n\n return {\n channel: slackConfig.channel,\n username: slackConfig.username,\n icon_url: slackConfig.iconUrl,\n icon_emoji: slackConfig.iconEmoji,\n attachments: [\n {\n fallback: raw,\n title: record.message,\n color: levelToSlackColor[record.level],\n text: markdown,\n mrkdwn_in: ['text'],\n },\n ],\n };\n}\n","import type {\n LogRecord,\n Handle,\n Metadata,\n Handler,\n Level,\n} from 'nightingale-types';\nimport { post } from 'request';\nimport type SlackConfig from './SlackConfig';\nimport createBody from './createBody';\n\nexport { default as createBody } from './createBody';\n\nconst createHandler =\n (slackConfig: SlackConfig) =>\n <T extends Metadata>(record: LogRecord<T>) => {\n const body = createBody(record, slackConfig);\n\n post({ url: slackConfig.webhookUrl, body, json: true }).on(\n 'error',\n (err2: Error) => {\n console.error(err2.stack);\n },\n );\n };\n\nexport class SlackHandler implements Handler {\n minLevel: Level;\n\n handle: Handle;\n\n constructor(slackConfig: SlackConfig, minLevel: Level) {\n this.minLevel = minLevel;\n this.handle = createHandler(slackConfig);\n }\n}\n\n/** @deprecated use named export instead */\nexport default SlackHandler;\n"],"names":["levelToSlackColor","Level","TRACE","DEBUG","INFO","WARN","ERROR","CRITICAL","FATAL","EMERGENCY","createBody","record","slackConfig","markdown","markdownFormatter","raw","rawFormatter","channel","username","icon_url","iconUrl","icon_emoji","iconEmoji","attachments","fallback","title","message","color","level","text","mrkdwn_in","createHandler","body","post","url","webhookUrl","json","on","err2","console","error","stack","SlackHandler","constructor","minLevel","handle"],"mappings":";;;;;;;;;;;;;;AAAA;AAOA,MAAMA,iBAAyC,GAAG;AAChD,GAACC,uBAAK,CAACC,KAAP,GAAe,SADiC;AAEhD,GAACD,uBAAK,CAACE,KAAP,GAAe,SAFiC;AAGhD,GAACF,uBAAK,CAACG,IAAP,GAAc,SAHkC;AAIhD,GAACH,uBAAK,CAACI,IAAP,GAAc,SAJkC;AAKhD,GAACJ,uBAAK,CAACK,KAAP,GAAe,QALiC;AAMhD,GAACL,uBAAK,CAACM,QAAP,GAAkB,QAN8B;AAOhD,GAACN,uBAAK,CAACO,KAAP,GAAe,QAPiC;AAQhD,GAACP,uBAAK,CAACQ,SAAP,GAAmB;AAR6B,CAAlD;AAWe,SAASC,UAAT,CACbC,MADa,EAEbC,WAFa,EAGY;AACzB,QAAMC,QAAQ,GAAGC,0BAAiB,CAACH,MAAD,CAAlC;AACA,QAAMI,GAAG,GAAGC,qBAAY,CAACL,MAAD,CAAxB;AAEA,SAAO;AACLM,IAAAA,OAAO,EAAEL,WAAW,CAACK,OADhB;AAELC,IAAAA,QAAQ,EAAEN,WAAW,CAACM,QAFjB;AAGLC,IAAAA,QAAQ,EAAEP,WAAW,CAACQ,OAHjB;AAILC,IAAAA,UAAU,EAAET,WAAW,CAACU,SAJnB;AAKLC,IAAAA,WAAW,EAAE,CACX;AACEC,MAAAA,QAAQ,EAAET,GADZ;AAEEU,MAAAA,KAAK,EAAEd,MAAM,CAACe,OAFhB;AAGEC,MAAAA,KAAK,EAAE3B,iBAAiB,CAACW,MAAM,CAACiB,KAAR,CAH1B;AAIEC,MAAAA,IAAI,EAAEhB,QAJR;AAKEiB,MAAAA,SAAS,EAAE,CAAC,MAAD;AALb,KADW;AALR,GAAP;AAeD;;AC3BD,MAAMC,aAAa,GAChBnB,WAAD,IACqBD,MAArB,IAA8C;AAC5C,QAAMqB,IAAI,GAAGtB,UAAU,CAACC,MAAD,EAASC,WAAT,CAAvB;AAEAqB,EAAAA,YAAI,CAAC;AAAEC,IAAAA,GAAG,EAAEtB,WAAW,CAACuB,UAAnB;AAA+BH,IAAAA,IAA/B;AAAqCI,IAAAA,IAAI,EAAE;AAA3C,GAAD,CAAJ,CAAwDC,EAAxD,CACE,OADF,EAEGC,IAAD,IAAiB;AACfC,IAAAA,OAAO,CAACC,KAAR,CAAcF,IAAI,CAACG,KAAnB;AACD,GAJH;AAMD,CAXH;;AAaO,MAAMC,YAAN,CAAsC;AAK3CC,EAAAA,WAAW,CAAC/B,WAAD,EAA2BgC,QAA3B,EAA4C;AACrD,SAAKA,QAAL,GAAgBA,QAAhB;AACA,SAAKC,MAAL,GAAcd,aAAa,CAACnB,WAAD,CAA3B;AACD;;AAR0C;;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-node12.mjs","sources":["../src/createBody.ts","../src/index.ts"],"sourcesContent":["/* eslint-disable camelcase */\nimport { Level } from 'nightingale-levels';\nimport markdownFormatter from 'nightingale-markdown-formatter';\nimport rawFormatter from 'nightingale-raw-formatter';\nimport type { LogRecord, Metadata } from 'nightingale-types';\nimport type SlackConfig from './SlackConfig';\n\nconst levelToSlackColor: Record<number, string> = {\n [Level.TRACE]: '#808080',\n [Level.DEBUG]: '#808080',\n [Level.INFO]: '#808080',\n [Level.WARN]: 'warning',\n [Level.ERROR]: 'danger',\n [Level.CRITICAL]: 'danger',\n [Level.FATAL]: 'danger',\n [Level.EMERGENCY]: 'danger',\n};\n\nexport default function createBody<T extends Metadata>(\n record: LogRecord<T>,\n slackConfig: SlackConfig,\n): Record<string, unknown> {\n const markdown = markdownFormatter(record);\n const raw = rawFormatter(record);\n\n return {\n channel: slackConfig.channel,\n username: slackConfig.username,\n icon_url: slackConfig.iconUrl,\n icon_emoji: slackConfig.iconEmoji,\n attachments: [\n {\n fallback: raw,\n title: record.message,\n color: levelToSlackColor[record.level],\n text: markdown,\n mrkdwn_in: ['text'],\n },\n ],\n };\n}\n","import type {\n LogRecord,\n Handle,\n Metadata,\n Handler,\n Level,\n} from 'nightingale-types';\nimport { post } from 'request';\nimport type SlackConfig from './SlackConfig';\nimport createBody from './createBody';\n\nexport { default as createBody } from './createBody';\n\nconst createHandler =\n (slackConfig: SlackConfig) =>\n <T extends Metadata>(record: LogRecord<T>) => {\n const body = createBody(record, slackConfig);\n\n post({ url: slackConfig.webhookUrl, body, json: true }).on(\n 'error',\n (err2: Error) => {\n console.error(err2.stack);\n },\n );\n };\n\nexport class SlackHandler implements Handler {\n minLevel: Level;\n\n handle: Handle;\n\n constructor(slackConfig: SlackConfig, minLevel: Level) {\n this.minLevel = minLevel;\n this.handle = createHandler(slackConfig);\n }\n}\n\n/** @deprecated use named export instead */\nexport default SlackHandler;\n"],"names":["levelToSlackColor","Level","TRACE","DEBUG","INFO","WARN","ERROR","CRITICAL","FATAL","EMERGENCY","createBody","record","slackConfig","markdown","markdownFormatter","raw","rawFormatter","channel","username","icon_url","iconUrl","icon_emoji","iconEmoji","attachments","fallback","title","message","color","level","text","mrkdwn_in","createHandler","body","post","url","webhookUrl","json","on","err2","console","error","stack","SlackHandler","constructor","minLevel","handle"],"mappings":";;;;;AAAA;AAOA,MAAMA,iBAAyC,GAAG;AAChD,GAACC,KAAK,CAACC,KAAP,GAAe,SADiC;AAEhD,GAACD,KAAK,CAACE,KAAP,GAAe,SAFiC;AAGhD,GAACF,KAAK,CAACG,IAAP,GAAc,SAHkC;AAIhD,GAACH,KAAK,CAACI,IAAP,GAAc,SAJkC;AAKhD,GAACJ,KAAK,CAACK,KAAP,GAAe,QALiC;AAMhD,GAACL,KAAK,CAACM,QAAP,GAAkB,QAN8B;AAOhD,GAACN,KAAK,CAACO,KAAP,GAAe,QAPiC;AAQhD,GAACP,KAAK,CAACQ,SAAP,GAAmB;AAR6B,CAAlD;AAWe,SAASC,UAAT,CACbC,MADa,EAEbC,WAFa,EAGY;AACzB,QAAMC,QAAQ,GAAGC,iBAAiB,CAACH,MAAD,CAAlC;AACA,QAAMI,GAAG,GAAGC,YAAY,CAACL,MAAD,CAAxB;AAEA,SAAO;AACLM,IAAAA,OAAO,EAAEL,WAAW,CAACK,OADhB;AAELC,IAAAA,QAAQ,EAAEN,WAAW,CAACM,QAFjB;AAGLC,IAAAA,QAAQ,EAAEP,WAAW,CAACQ,OAHjB;AAILC,IAAAA,UAAU,EAAET,WAAW,CAACU,SAJnB;AAKLC,IAAAA,WAAW,EAAE,CACX;AACEC,MAAAA,QAAQ,EAAET,GADZ;AAEEU,MAAAA,KAAK,EAAEd,MAAM,CAACe,OAFhB;AAGEC,MAAAA,KAAK,EAAE3B,iBAAiB,CAACW,MAAM,CAACiB,KAAR,CAH1B;AAIEC,MAAAA,IAAI,EAAEhB,QAJR;AAKEiB,MAAAA,SAAS,EAAE,CAAC,MAAD;AALb,KADW;AALR,GAAP;AAeD;;AC3BD,MAAMC,aAAa,GAChBnB,WAAD,IACqBD,MAArB,IAA8C;AAC5C,QAAMqB,IAAI,GAAGtB,UAAU,CAACC,MAAD,EAASC,WAAT,CAAvB;AAEAqB,EAAAA,IAAI,CAAC;AAAEC,IAAAA,GAAG,EAAEtB,WAAW,CAACuB,UAAnB;AAA+BH,IAAAA,IAA/B;AAAqCI,IAAAA,IAAI,EAAE;AAA3C,GAAD,CAAJ,CAAwDC,EAAxD,CACE,OADF,EAEGC,IAAD,IAAiB;AACfC,IAAAA,OAAO,CAACC,KAAR,CAAcF,IAAI,CAACG,KAAnB;AACD,GAJH;AAMD,CAXH;;AAaO,MAAMC,YAAN,CAAsC;AAK3CC,EAAAA,WAAW,CAAC/B,WAAD,EAA2BgC,QAA3B,EAA4C;AACrD,SAAKA,QAAL,GAAgBA,QAAhB;AACA,SAAKC,MAAL,GAAcd,aAAa,CAACnB,WAAD,CAA3B;AACD;;AAR0C;;;;"}