standard-log-color 3.2.3 → 5.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.
Files changed (302) hide show
  1. package/LICENSE +1 -1
  2. package/{lib → cjs}/ansi/adjustCodes.d.ts +0 -0
  3. package/cjs/ansi/adjustCodes.d.ts.map +1 -0
  4. package/cjs/ansi/adjustCodes.js +24 -0
  5. package/cjs/ansi/adjustCodes.js.map +1 -0
  6. package/cjs/ansi/adjustCodes.spec.d.ts +2 -0
  7. package/cjs/ansi/adjustCodes.spec.d.ts.map +1 -0
  8. package/cjs/ansi/adjustCodes.spec.js +13 -0
  9. package/cjs/ansi/adjustCodes.spec.js.map +1 -0
  10. package/{lib → cjs}/ansi/ansiFormatter.d.ts +0 -0
  11. package/cjs/ansi/ansiFormatter.d.ts.map +1 -0
  12. package/cjs/ansi/ansiFormatter.js +47 -0
  13. package/cjs/ansi/ansiFormatter.js.map +1 -0
  14. package/{lib → cjs}/ansi/constants.d.ts +0 -0
  15. package/cjs/ansi/constants.d.ts.map +1 -0
  16. package/{lib → cjs}/ansi/constants.js +0 -0
  17. package/cjs/ansi/constants.js.map +1 -0
  18. package/{lib → cjs}/ansi/createColorCodes.d.ts +0 -0
  19. package/cjs/ansi/createColorCodes.d.ts.map +1 -0
  20. package/cjs/ansi/createColorCodes.js +49 -0
  21. package/cjs/ansi/createColorCodes.js.map +1 -0
  22. package/cjs/ansi/createColorCodes.spec.d.ts +2 -0
  23. package/cjs/ansi/createColorCodes.spec.d.ts.map +1 -0
  24. package/cjs/ansi/createColorCodes.spec.js +34 -0
  25. package/cjs/ansi/createColorCodes.spec.js.map +1 -0
  26. package/cjs/ansi/index.d.ts +4 -0
  27. package/cjs/ansi/index.d.ts.map +1 -0
  28. package/cjs/ansi/index.js +20 -0
  29. package/cjs/ansi/index.js.map +1 -0
  30. package/{lib → cjs}/ansi/isColor.d.ts +1 -1
  31. package/cjs/ansi/isColor.d.ts.map +1 -0
  32. package/cjs/ansi/isColor.js +13 -0
  33. package/cjs/ansi/isColor.js.map +1 -0
  34. package/cjs/ansi/isColor.spec.d.ts +2 -0
  35. package/cjs/ansi/isColor.spec.d.ts.map +1 -0
  36. package/cjs/ansi/isColor.spec.js +17 -0
  37. package/cjs/ansi/isColor.spec.js.map +1 -0
  38. package/{lib → cjs}/ansi/wrapAnsi.d.ts +0 -0
  39. package/cjs/ansi/wrapAnsi.d.ts.map +1 -0
  40. package/{lib → cjs}/ansi/wrapAnsi.js +2 -2
  41. package/cjs/ansi/wrapAnsi.js.map +1 -0
  42. package/cjs/ansi/wrapAnsi.spec.d.ts +2 -0
  43. package/cjs/ansi/wrapAnsi.spec.d.ts.map +1 -0
  44. package/cjs/ansi/wrapAnsi.spec.js +9 -0
  45. package/cjs/ansi/wrapAnsi.spec.js.map +1 -0
  46. package/{lib → cjs}/createColorLogReporter.browser.d.ts +0 -0
  47. package/cjs/createColorLogReporter.browser.d.ts.map +1 -0
  48. package/{lib → cjs}/createColorLogReporter.browser.js +5 -5
  49. package/cjs/createColorLogReporter.browser.js.map +1 -0
  50. package/{lib → cjs}/createColorLogReporter.d.ts +0 -0
  51. package/cjs/createColorLogReporter.d.ts.map +1 -0
  52. package/{lib → cjs}/createColorLogReporter.js +5 -5
  53. package/cjs/createColorLogReporter.js.map +1 -0
  54. package/cjs/createColorLogReporter.spec.d.ts +2 -0
  55. package/cjs/createColorLogReporter.spec.d.ts.map +1 -0
  56. package/cjs/createColorLogReporter.spec.js +178 -0
  57. package/cjs/createColorLogReporter.spec.js.map +1 -0
  58. package/{lib → cjs}/css/colors.d.ts +0 -0
  59. package/cjs/css/colors.d.ts.map +1 -0
  60. package/{lib → cjs}/css/colors.js +0 -0
  61. package/cjs/css/colors.js.map +1 -0
  62. package/{lib → cjs}/css/cssFormatter.d.ts +0 -0
  63. package/cjs/css/cssFormatter.d.ts.map +1 -0
  64. package/{lib → cjs}/css/cssFormatter.js +22 -14
  65. package/cjs/css/cssFormatter.js.map +1 -0
  66. package/cjs/css/cssFormatter.spec.d.ts +2 -0
  67. package/cjs/css/cssFormatter.spec.d.ts.map +1 -0
  68. package/cjs/css/cssFormatter.spec.js +33 -0
  69. package/cjs/css/cssFormatter.spec.js.map +1 -0
  70. package/cjs/css/index.d.ts +2 -0
  71. package/cjs/css/index.d.ts.map +1 -0
  72. package/cjs/css/index.js +18 -0
  73. package/cjs/css/index.js.map +1 -0
  74. package/cjs/index.d.ts +4 -0
  75. package/cjs/index.d.ts.map +1 -0
  76. package/cjs/index.js +20 -0
  77. package/cjs/index.js.map +1 -0
  78. package/cjs/package.json +3 -0
  79. package/cjs/utils/index.d.ts +2 -0
  80. package/cjs/utils/index.d.ts.map +1 -0
  81. package/cjs/utils/index.js +18 -0
  82. package/cjs/utils/index.js.map +1 -0
  83. package/{lib → cjs}/utils/supportColor.browser.d.ts +0 -0
  84. package/cjs/utils/supportColor.browser.d.ts.map +1 -0
  85. package/{lib → cjs}/utils/supportColor.browser.js +3 -0
  86. package/cjs/utils/supportColor.browser.js.map +1 -0
  87. package/{lib → cjs}/utils/supportColor.d.ts +0 -0
  88. package/cjs/utils/supportColor.d.ts.map +1 -0
  89. package/{lib → cjs}/utils/supportColor.js +0 -0
  90. package/cjs/utils/supportColor.js.map +1 -0
  91. package/dist/standard-log-color.es5.js +2 -0
  92. package/dist/standard-log-color.es5.js.gz +0 -0
  93. package/dist/standard-log-color.es5.js.map +1 -0
  94. package/dist/standard-log-color.es5.js.map.gz +0 -0
  95. package/dist/standard-log-color.esm.js +2 -0
  96. package/dist/standard-log-color.esm.js.gz +0 -0
  97. package/dist/standard-log-color.esm.js.map +1 -0
  98. package/dist/standard-log-color.esm.js.map.gz +0 -0
  99. package/{libm → esm}/ansi/adjustCodes.d.ts +0 -0
  100. package/esm/ansi/adjustCodes.d.ts.map +1 -0
  101. package/{libm → esm}/ansi/adjustCodes.js +1 -1
  102. package/esm/ansi/adjustCodes.js.map +1 -0
  103. package/esm/ansi/adjustCodes.spec.d.ts +2 -0
  104. package/esm/ansi/adjustCodes.spec.d.ts.map +1 -0
  105. package/esm/ansi/adjustCodes.spec.js +11 -0
  106. package/esm/ansi/adjustCodes.spec.js.map +1 -0
  107. package/{libm → esm}/ansi/ansiFormatter.d.ts +0 -0
  108. package/esm/ansi/ansiFormatter.d.ts.map +1 -0
  109. package/{libm → esm}/ansi/ansiFormatter.js +4 -4
  110. package/esm/ansi/ansiFormatter.js.map +1 -0
  111. package/{libm → esm}/ansi/constants.d.ts +0 -0
  112. package/esm/ansi/constants.d.ts.map +1 -0
  113. package/{libm → esm}/ansi/constants.js +0 -0
  114. package/esm/ansi/constants.js.map +1 -0
  115. package/{libm → esm}/ansi/createColorCodes.d.ts +0 -0
  116. package/esm/ansi/createColorCodes.d.ts.map +1 -0
  117. package/{libm → esm}/ansi/createColorCodes.js +2 -2
  118. package/esm/ansi/createColorCodes.js.map +1 -0
  119. package/esm/ansi/createColorCodes.spec.d.ts +2 -0
  120. package/esm/ansi/createColorCodes.spec.d.ts.map +1 -0
  121. package/esm/ansi/createColorCodes.spec.js +32 -0
  122. package/esm/ansi/createColorCodes.spec.js.map +1 -0
  123. package/esm/ansi/index.d.ts +4 -0
  124. package/esm/ansi/index.d.ts.map +1 -0
  125. package/esm/ansi/index.js +4 -0
  126. package/esm/ansi/index.js.map +1 -0
  127. package/{libm → esm}/ansi/isColor.d.ts +1 -1
  128. package/esm/ansi/isColor.d.ts.map +1 -0
  129. package/{libm → esm}/ansi/isColor.js +1 -1
  130. package/esm/ansi/isColor.js.map +1 -0
  131. package/esm/ansi/isColor.spec.d.ts +2 -0
  132. package/esm/ansi/isColor.spec.d.ts.map +1 -0
  133. package/esm/ansi/isColor.spec.js +15 -0
  134. package/esm/ansi/isColor.spec.js.map +1 -0
  135. package/{libm → esm}/ansi/wrapAnsi.d.ts +0 -0
  136. package/esm/ansi/wrapAnsi.d.ts.map +1 -0
  137. package/{libm → esm}/ansi/wrapAnsi.js +0 -0
  138. package/esm/ansi/wrapAnsi.js.map +1 -0
  139. package/esm/ansi/wrapAnsi.spec.d.ts +2 -0
  140. package/esm/ansi/wrapAnsi.spec.d.ts.map +1 -0
  141. package/esm/ansi/wrapAnsi.spec.js +7 -0
  142. package/esm/ansi/wrapAnsi.spec.js.map +1 -0
  143. package/{libm → esm}/createColorLogReporter.browser.d.ts +0 -0
  144. package/esm/createColorLogReporter.browser.d.ts.map +1 -0
  145. package/{libm → esm}/createColorLogReporter.browser.js +2 -2
  146. package/esm/createColorLogReporter.browser.js.map +1 -0
  147. package/{libm → esm}/createColorLogReporter.d.ts +0 -0
  148. package/esm/createColorLogReporter.d.ts.map +1 -0
  149. package/{libm → esm}/createColorLogReporter.js +2 -2
  150. package/esm/createColorLogReporter.js.map +1 -0
  151. package/esm/createColorLogReporter.spec.d.ts +2 -0
  152. package/esm/createColorLogReporter.spec.d.ts.map +1 -0
  153. package/esm/createColorLogReporter.spec.js +152 -0
  154. package/esm/createColorLogReporter.spec.js.map +1 -0
  155. package/{libm → esm}/css/colors.d.ts +0 -0
  156. package/esm/css/colors.d.ts.map +1 -0
  157. package/{libm → esm}/css/colors.js +0 -0
  158. package/esm/css/colors.js.map +1 -0
  159. package/{libm → esm}/css/cssFormatter.d.ts +0 -0
  160. package/esm/css/cssFormatter.d.ts.map +1 -0
  161. package/{libm → esm}/css/cssFormatter.js +1 -1
  162. package/esm/css/cssFormatter.js.map +1 -0
  163. package/esm/css/cssFormatter.spec.d.ts +2 -0
  164. package/esm/css/cssFormatter.spec.d.ts.map +1 -0
  165. package/esm/css/cssFormatter.spec.js +28 -0
  166. package/esm/css/cssFormatter.spec.js.map +1 -0
  167. package/esm/css/index.d.ts +2 -0
  168. package/esm/css/index.d.ts.map +1 -0
  169. package/esm/css/index.js +2 -0
  170. package/esm/css/index.js.map +1 -0
  171. package/esm/index.d.ts +4 -0
  172. package/esm/index.d.ts.map +1 -0
  173. package/esm/index.js +4 -0
  174. package/esm/index.js.map +1 -0
  175. package/esm/utils/index.d.ts +2 -0
  176. package/esm/utils/index.d.ts.map +1 -0
  177. package/esm/utils/index.js +2 -0
  178. package/esm/utils/index.js.map +1 -0
  179. package/{libm → esm}/utils/supportColor.browser.d.ts +0 -0
  180. package/esm/utils/supportColor.browser.d.ts.map +1 -0
  181. package/{libm → esm}/utils/supportColor.browser.js +3 -0
  182. package/esm/utils/supportColor.browser.js.map +1 -0
  183. package/{libm → esm}/utils/supportColor.d.ts +0 -0
  184. package/esm/utils/supportColor.d.ts.map +1 -0
  185. package/{libm → esm}/utils/supportColor.js +0 -0
  186. package/esm/utils/supportColor.js.map +1 -0
  187. package/package.json +81 -35
  188. package/{src → ts}/ansi/adjustCodes.ts +1 -1
  189. package/{src → ts}/ansi/ansiFormatter.ts +5 -5
  190. package/{src → ts}/ansi/constants.ts +0 -0
  191. package/{src → ts}/ansi/createColorCodes.ts +2 -3
  192. package/ts/ansi/index.ts +3 -0
  193. package/{src → ts}/ansi/isColor.ts +1 -1
  194. package/{src → ts}/ansi/wrapAnsi.ts +0 -0
  195. package/{src → ts}/createColorLogReporter.browser.ts +2 -2
  196. package/{src → ts}/createColorLogReporter.ts +2 -2
  197. package/{src → ts}/css/colors.ts +0 -0
  198. package/{src → ts}/css/cssFormatter.ts +1 -1
  199. package/ts/css/index.ts +1 -0
  200. package/ts/index.ts +3 -0
  201. package/ts/utils/index.ts +1 -0
  202. package/{src → ts}/utils/supportColor.browser.ts +6 -3
  203. package/{src → ts}/utils/supportColor.ts +0 -0
  204. package/CHANGELOG.md +0 -631
  205. package/dist/standard-log-color.js +0 -2
  206. package/dist/standard-log-color.js.gz +0 -0
  207. package/dist/standard-log-color.js.map +0 -1
  208. package/dist/standard-log-color.js.map.gz +0 -0
  209. package/lib/ansi/adjustCodes.d.ts.map +0 -1
  210. package/lib/ansi/adjustCodes.js +0 -16
  211. package/lib/ansi/adjustCodes.js.map +0 -1
  212. package/lib/ansi/ansiFormatter.d.ts.map +0 -1
  213. package/lib/ansi/ansiFormatter.js +0 -39
  214. package/lib/ansi/ansiFormatter.js.map +0 -1
  215. package/lib/ansi/constants.d.ts.map +0 -1
  216. package/lib/ansi/constants.js.map +0 -1
  217. package/lib/ansi/createColorCodes.d.ts.map +0 -1
  218. package/lib/ansi/createColorCodes.js +0 -41
  219. package/lib/ansi/createColorCodes.js.map +0 -1
  220. package/lib/ansi/index.d.ts +0 -4
  221. package/lib/ansi/index.d.ts.map +0 -1
  222. package/lib/ansi/index.js +0 -7
  223. package/lib/ansi/index.js.map +0 -1
  224. package/lib/ansi/isColor.d.ts.map +0 -1
  225. package/lib/ansi/isColor.js +0 -13
  226. package/lib/ansi/isColor.js.map +0 -1
  227. package/lib/ansi/wrapAnsi.d.ts.map +0 -1
  228. package/lib/ansi/wrapAnsi.js.map +0 -1
  229. package/lib/createColorLogReporter.browser.d.ts.map +0 -1
  230. package/lib/createColorLogReporter.browser.js.map +0 -1
  231. package/lib/createColorLogReporter.d.ts.map +0 -1
  232. package/lib/createColorLogReporter.js.map +0 -1
  233. package/lib/css/colors.d.ts.map +0 -1
  234. package/lib/css/colors.js.map +0 -1
  235. package/lib/css/cssFormatter.d.ts.map +0 -1
  236. package/lib/css/cssFormatter.js.map +0 -1
  237. package/lib/css/index.d.ts +0 -2
  238. package/lib/css/index.d.ts.map +0 -1
  239. package/lib/css/index.js +0 -5
  240. package/lib/css/index.js.map +0 -1
  241. package/lib/index.d.ts +0 -4
  242. package/lib/index.d.ts.map +0 -1
  243. package/lib/index.js +0 -7
  244. package/lib/index.js.map +0 -1
  245. package/lib/utils/index.d.ts +0 -2
  246. package/lib/utils/index.d.ts.map +0 -1
  247. package/lib/utils/index.js +0 -5
  248. package/lib/utils/index.js.map +0 -1
  249. package/lib/utils/supportColor.browser.d.ts.map +0 -1
  250. package/lib/utils/supportColor.browser.js.map +0 -1
  251. package/lib/utils/supportColor.d.ts.map +0 -1
  252. package/lib/utils/supportColor.js.map +0 -1
  253. package/libm/ansi/adjustCodes.d.ts.map +0 -1
  254. package/libm/ansi/adjustCodes.js.map +0 -1
  255. package/libm/ansi/ansiFormatter.d.ts.map +0 -1
  256. package/libm/ansi/ansiFormatter.js.map +0 -1
  257. package/libm/ansi/constants.d.ts.map +0 -1
  258. package/libm/ansi/constants.js.map +0 -1
  259. package/libm/ansi/createColorCodes.d.ts.map +0 -1
  260. package/libm/ansi/createColorCodes.js.map +0 -1
  261. package/libm/ansi/index.d.ts +0 -4
  262. package/libm/ansi/index.d.ts.map +0 -1
  263. package/libm/ansi/index.js +0 -4
  264. package/libm/ansi/index.js.map +0 -1
  265. package/libm/ansi/isColor.d.ts.map +0 -1
  266. package/libm/ansi/isColor.js.map +0 -1
  267. package/libm/ansi/wrapAnsi.d.ts.map +0 -1
  268. package/libm/ansi/wrapAnsi.js.map +0 -1
  269. package/libm/createColorLogReporter.browser.d.ts.map +0 -1
  270. package/libm/createColorLogReporter.browser.js.map +0 -1
  271. package/libm/createColorLogReporter.d.ts.map +0 -1
  272. package/libm/createColorLogReporter.js.map +0 -1
  273. package/libm/css/colors.d.ts.map +0 -1
  274. package/libm/css/colors.js.map +0 -1
  275. package/libm/css/cssFormatter.d.ts.map +0 -1
  276. package/libm/css/cssFormatter.js.map +0 -1
  277. package/libm/css/index.d.ts +0 -2
  278. package/libm/css/index.d.ts.map +0 -1
  279. package/libm/css/index.js +0 -2
  280. package/libm/css/index.js.map +0 -1
  281. package/libm/index.d.ts +0 -4
  282. package/libm/index.d.ts.map +0 -1
  283. package/libm/index.js +0 -4
  284. package/libm/index.js.map +0 -1
  285. package/libm/utils/index.d.ts +0 -2
  286. package/libm/utils/index.d.ts.map +0 -1
  287. package/libm/utils/index.js +0 -2
  288. package/libm/utils/index.js.map +0 -1
  289. package/libm/utils/supportColor.browser.d.ts.map +0 -1
  290. package/libm/utils/supportColor.browser.js.map +0 -1
  291. package/libm/utils/supportColor.d.ts.map +0 -1
  292. package/libm/utils/supportColor.js.map +0 -1
  293. package/src/ansi/adjustCodes.spec.ts +0 -12
  294. package/src/ansi/createColorCodes.spec.ts +0 -35
  295. package/src/ansi/index.ts +0 -3
  296. package/src/ansi/isColor.spec.ts +0 -18
  297. package/src/ansi/wrapAnsi.spec.ts +0 -7
  298. package/src/createColorLogReporter.spec.ts +0 -193
  299. package/src/css/cssFormatter.spec.ts +0 -30
  300. package/src/css/index.ts +0 -1
  301. package/src/index.ts +0 -3
  302. package/src/utils/index.ts +0 -1
@@ -0,0 +1,152 @@
1
+ import { addCustomLogLevel, clearCustomLogLevel, configForTest, logLevels, plainLogFormatter } from 'standard-log';
2
+ import { createAnsiFormatter, createColorLogReporter, createCssFormatter } from './index.js';
3
+ beforeAll(() => configForTest());
4
+ describe('rendering tests', () => {
5
+ test('default to color rendering', () => {
6
+ const reporter = createColorLogReporter();
7
+ ['emergency', 'info', 'warn', 'debug'].forEach(level => {
8
+ reporter.write({ id: 'color', level: logLevels[level], args: ['hello', 'world'], timestamp: new Date() });
9
+ });
10
+ });
11
+ test('plain rendering', () => {
12
+ const reporter = createColorLogReporter({ formatter: plainLogFormatter });
13
+ ['emergency', 'info', 'warn', 'debug'].forEach(level => {
14
+ reporter.write({ id: 'plain', level: logLevels[level], args: ['hello', 'world'], timestamp: new Date() });
15
+ });
16
+ });
17
+ test('different timestamp settings', () => {
18
+ const reporter = createColorLogReporter();
19
+ ['none', 'iso', 'elapsed'].forEach((timestamp) => {
20
+ reporter.formatter = createAnsiFormatter({ timestamp });
21
+ reporter.write({ id: timestamp, level: logLevels.info, args: ['hello', 'world'], timestamp: new Date() });
22
+ });
23
+ });
24
+ test('different timestamp settings for css', () => {
25
+ const reporter = createColorLogReporter();
26
+ ['none', 'iso', 'elapsed'].forEach((timestamp) => {
27
+ reporter.formatter = createCssFormatter({ timestamp });
28
+ reporter.write({ id: timestamp, level: logLevels.info, args: ['hello', 'world'], timestamp: new Date() });
29
+ });
30
+ });
31
+ });
32
+ describe('id', () => {
33
+ test('default is "console"', () => {
34
+ const reporter = createColorLogReporter();
35
+ expect(reporter.id).toBe('console');
36
+ });
37
+ test('can be overridden', () => {
38
+ const reporter = createColorLogReporter({ id: 'neo-console' });
39
+ expect(reporter.id).toBe('neo-console');
40
+ });
41
+ });
42
+ describe('log level', () => {
43
+ test('error, alert, critical and emergency logs are written to console.error', () => {
44
+ const id = 'log';
45
+ const reporter = createColorLogReporter();
46
+ const fakeConsole = reporter.console = createFakeConsole();
47
+ reporter.write({ id, level: logLevels.emergency, args: ['emergency'], timestamp: new Date() });
48
+ reporter.write({ id, level: logLevels.critical, args: ['critical'], timestamp: new Date() });
49
+ reporter.write({ id, level: logLevels.alert, args: ['alert'], timestamp: new Date() });
50
+ reporter.write({ id, level: logLevels.error, args: ['error'], timestamp: new Date() });
51
+ expect(fakeConsole.errors.length).toBe(4);
52
+ });
53
+ test('warn logs are written to console.warn', () => {
54
+ const id = 'log';
55
+ const reporter = createColorLogReporter();
56
+ const fakeConsole = reporter.console = createFakeConsole();
57
+ reporter.write({ id, level: logLevels.warn, args: ['warn'], timestamp: new Date() });
58
+ expect(fakeConsole.warns.length).toBe(1);
59
+ });
60
+ test('notice and info logs are written to console.info', () => {
61
+ const id = 'log';
62
+ const reporter = createColorLogReporter();
63
+ const fakeConsole = reporter.console = createFakeConsole();
64
+ reporter.write({ id, level: logLevels.notice, args: ['notice'], timestamp: new Date() });
65
+ reporter.write({ id, level: logLevels.info, args: ['info'], timestamp: new Date() });
66
+ expect(fakeConsole.infos.length).toBe(2);
67
+ });
68
+ test('debug, trace, and planck logs are written to console.debug', () => {
69
+ const id = 'log';
70
+ const reporter = createColorLogReporter();
71
+ const fakeConsole = reporter.console = createFakeConsole();
72
+ reporter.write({ id, level: logLevels.debug, args: ['debug'], timestamp: new Date() });
73
+ reporter.write({ id, level: logLevels.trace, args: ['trace'], timestamp: new Date() });
74
+ reporter.write({ id, level: logLevels.planck, args: ['planck'], timestamp: new Date() });
75
+ expect(fakeConsole.debugs.length).toBe(3);
76
+ });
77
+ });
78
+ describe('custom logs', () => {
79
+ afterEach(() => clearCustomLogLevel());
80
+ test('are written according to their log level value', () => {
81
+ addCustomLogLevel('high', 50);
82
+ addCustomLogLevel('important', 450);
83
+ addCustomLogLevel('interest', 650);
84
+ addCustomLogLevel('silly', 1000);
85
+ const id = 'log';
86
+ const reporter = createColorLogReporter();
87
+ const fakeConsole = reporter.console = createFakeConsole();
88
+ reporter.write({ id, level: 50, args: ['a'], timestamp: new Date() });
89
+ reporter.write({ id, level: 450, args: ['b'], timestamp: new Date() });
90
+ reporter.write({ id, level: 650, args: ['c'], timestamp: new Date() });
91
+ reporter.write({ id, level: 1000, args: ['d'], timestamp: new Date() });
92
+ expect(fakeConsole.errors.length).toBe(1);
93
+ expect(fakeConsole.warns.length).toBe(1);
94
+ expect(fakeConsole.infos.length).toBe(1);
95
+ expect(fakeConsole.debugs.length).toBe(1);
96
+ });
97
+ });
98
+ const idFormatter = (entry) => [entry.id];
99
+ describe('formatter', () => {
100
+ test('use specific formatter', () => {
101
+ const id = 'id-only';
102
+ const reporter = createColorLogReporter({ formatter: idFormatter });
103
+ const fakeConsole = reporter.console = createFakeConsole();
104
+ reporter.write({ id, level: logLevels.emergency, args: ['emergency'], timestamp: new Date() });
105
+ expect(fakeConsole.errors).toEqual([['id-only']]);
106
+ });
107
+ test('formatter can be changed afterward', () => {
108
+ const id = 'id-only';
109
+ const reporter = createColorLogReporter();
110
+ reporter.formatter = idFormatter;
111
+ const fakeConsole = reporter.console = createFakeConsole();
112
+ reporter.write({ id, level: logLevels.emergency, args: ['emergency'], timestamp: new Date() });
113
+ expect(fakeConsole.errors).toEqual([['id-only']]);
114
+ });
115
+ });
116
+ describe('filter', () => {
117
+ const filter = (entry) => entry.id !== 'secret';
118
+ test('use specific filter', () => {
119
+ const reporter = createColorLogReporter({ formatter: idFormatter, filter });
120
+ const fakeConsole = reporter.console = createFakeConsole();
121
+ reporter.write({ id: 'normal', level: logLevels.emergency, args: ['emergency'], timestamp: new Date() });
122
+ reporter.write({ id: 'secret', level: logLevels.emergency, args: ['emergency'], timestamp: new Date() });
123
+ expect(fakeConsole.errors).toEqual([['normal']]);
124
+ });
125
+ });
126
+ test('write log entry with multiple arguments', () => {
127
+ const id = 'log';
128
+ const reporter = createColorLogReporter({ formatter: plainLogFormatter });
129
+ const fakeConsole = reporter.console = createFakeConsole();
130
+ const entry = { id, level: logLevels.info, args: ['a', 'b', 'c'], timestamp: new Date() };
131
+ reporter.write(entry);
132
+ expect(fakeConsole.infos).toEqual([
133
+ [entry.timestamp.toISOString(), 'log', '(INFO)', 'a', 'b', 'c']
134
+ ]);
135
+ });
136
+ function createFakeConsole() {
137
+ const errors = [];
138
+ const infos = [];
139
+ const warns = [];
140
+ const debugs = [];
141
+ return {
142
+ errors,
143
+ infos,
144
+ warns,
145
+ debugs,
146
+ error(...args) { errors.push(args); },
147
+ info(...args) { infos.push(args); },
148
+ warn(...args) { warns.push(args); },
149
+ debug(...args) { debugs.push(args); }
150
+ };
151
+ }
152
+ //# sourceMappingURL=createColorLogReporter.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createColorLogReporter.spec.js","sourceRoot":"","sources":["../ts/createColorLogReporter.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n addCustomLogLevel, clearCustomLogLevel, configForTest,\n ConsoleLogFormatter, LogFilter, logLevels, plainLogFormatter\n} from 'standard-log'\nimport { createAnsiFormatter, createColorLogReporter, createCssFormatter } from './index.js'\n\nbeforeAll(() => configForTest())\n\ndescribe('rendering tests', () => {\n test('default to color rendering', () => {\n const reporter = createColorLogReporter();\n ['emergency', 'info', 'warn', 'debug'].forEach(level => {\n reporter.write({ id: 'color', level: (logLevels as any)[level], args: ['hello', 'world'], timestamp: new Date() })\n })\n })\n test('plain rendering', () => {\n const reporter = createColorLogReporter({ formatter: plainLogFormatter });\n ['emergency', 'info', 'warn', 'debug'].forEach(level => {\n reporter.write({ id: 'plain', level: (logLevels as any)[level], args: ['hello', 'world'], timestamp: new Date() })\n })\n })\n\n test('different timestamp settings', () => {\n const reporter = createColorLogReporter();\n\n ['none', 'iso', 'elapsed'].forEach((timestamp: any) => {\n reporter.formatter = createAnsiFormatter({ timestamp })\n reporter.write({ id: timestamp, level: logLevels.info, args: ['hello', 'world'], timestamp: new Date() })\n })\n })\n test('different timestamp settings for css', () => {\n const reporter = createColorLogReporter();\n\n ['none', 'iso', 'elapsed'].forEach((timestamp: any) => {\n reporter.formatter = createCssFormatter({ timestamp })\n reporter.write({ id: timestamp, level: logLevels.info, args: ['hello', 'world'], timestamp: new Date() })\n })\n })\n})\n\ndescribe('id', () => {\n test('default is \"console\"', () => {\n const reporter = createColorLogReporter()\n expect(reporter.id).toBe('console')\n })\n test('can be overridden', () => {\n const reporter = createColorLogReporter({ id: 'neo-console' })\n expect(reporter.id).toBe('neo-console')\n })\n})\n\ndescribe('log level', () => {\n test('error, alert, critical and emergency logs are written to console.error', () => {\n const id = 'log'\n const reporter = createColorLogReporter()\n const fakeConsole = reporter.console = createFakeConsole()\n\n reporter.write({ id, level: logLevels.emergency, args: ['emergency'], timestamp: new Date() })\n reporter.write({ id, level: logLevels.critical, args: ['critical'], timestamp: new Date() })\n reporter.write({ id, level: logLevels.alert, args: ['alert'], timestamp: new Date() })\n reporter.write({ id, level: logLevels.error, args: ['error'], timestamp: new Date() })\n\n expect(fakeConsole.errors.length).toBe(4)\n })\n\n test('warn logs are written to console.warn', () => {\n const id = 'log'\n const reporter = createColorLogReporter()\n\n const fakeConsole = reporter.console = createFakeConsole()\n\n reporter.write({ id, level: logLevels.warn, args: ['warn'], timestamp: new Date() })\n\n expect(fakeConsole.warns.length).toBe(1)\n })\n\n test('notice and info logs are written to console.info', () => {\n const id = 'log'\n const reporter = createColorLogReporter()\n\n const fakeConsole = reporter.console = createFakeConsole()\n\n reporter.write({ id, level: logLevels.notice, args: ['notice'], timestamp: new Date() })\n reporter.write({ id, level: logLevels.info, args: ['info'], timestamp: new Date() })\n\n expect(fakeConsole.infos.length).toBe(2)\n })\n\n\n test('debug, trace, and planck logs are written to console.debug', () => {\n const id = 'log'\n const reporter = createColorLogReporter()\n const fakeConsole = reporter.console = createFakeConsole()\n\n reporter.write({ id, level: logLevels.debug, args: ['debug'], timestamp: new Date() })\n reporter.write({ id, level: logLevels.trace, args: ['trace'], timestamp: new Date() })\n reporter.write({ id, level: logLevels.planck, args: ['planck'], timestamp: new Date() })\n\n expect(fakeConsole.debugs.length).toBe(3)\n })\n})\n\ndescribe('custom logs', () => {\n afterEach(() => clearCustomLogLevel())\n\n test('are written according to their log level value', () => {\n addCustomLogLevel('high', 50)\n addCustomLogLevel('important', 450)\n addCustomLogLevel('interest', 650)\n addCustomLogLevel('silly', 1000)\n\n const id = 'log'\n const reporter = createColorLogReporter()\n const fakeConsole = reporter.console = createFakeConsole()\n\n reporter.write({ id, level: 50, args: ['a'], timestamp: new Date() })\n reporter.write({ id, level: 450, args: ['b'], timestamp: new Date() })\n reporter.write({ id, level: 650, args: ['c'], timestamp: new Date() })\n reporter.write({ id, level: 1000, args: ['d'], timestamp: new Date() })\n\n expect(fakeConsole.errors.length).toBe(1)\n expect(fakeConsole.warns.length).toBe(1)\n expect(fakeConsole.infos.length).toBe(1)\n expect(fakeConsole.debugs.length).toBe(1)\n })\n})\n\nconst idFormatter: ConsoleLogFormatter = (entry) => [entry.id]\n\ndescribe('formatter', () => {\n test('use specific formatter', () => {\n const id = 'id-only'\n const reporter = createColorLogReporter({ formatter: idFormatter })\n const fakeConsole = reporter.console = createFakeConsole()\n\n reporter.write({ id, level: logLevels.emergency, args: ['emergency'], timestamp: new Date() })\n\n expect(fakeConsole.errors).toEqual([['id-only']])\n })\n\n test('formatter can be changed afterward', () => {\n const id = 'id-only'\n const reporter = createColorLogReporter()\n reporter.formatter = idFormatter\n const fakeConsole = reporter.console = createFakeConsole()\n\n reporter.write({ id, level: logLevels.emergency, args: ['emergency'], timestamp: new Date() })\n\n expect(fakeConsole.errors).toEqual([['id-only']])\n })\n})\n\ndescribe('filter', () => {\n const filter: LogFilter = (entry) => entry.id !== 'secret'\n test('use specific filter', () => {\n const reporter = createColorLogReporter({ formatter: idFormatter, filter })\n const fakeConsole = reporter.console = createFakeConsole()\n\n reporter.write({ id: 'normal', level: logLevels.emergency, args: ['emergency'], timestamp: new Date() })\n reporter.write({ id: 'secret', level: logLevels.emergency, args: ['emergency'], timestamp: new Date() })\n\n expect(fakeConsole.errors).toEqual([['normal']])\n })\n})\n\ntest('write log entry with multiple arguments', () => {\n const id = 'log'\n const reporter = createColorLogReporter({ formatter: plainLogFormatter })\n const fakeConsole = reporter.console = createFakeConsole()\n\n const entry = { id, level: logLevels.info, args: ['a', 'b', 'c'], timestamp: new Date() }\n\n reporter.write(entry)\n\n expect(fakeConsole.infos).toEqual([\n [entry.timestamp.toISOString(), 'log', '(INFO)', 'a', 'b', 'c']\n ])\n})\n\nfunction createFakeConsole() {\n const errors: any[] = []\n const infos: any[] = []\n const warns: any[] = []\n const debugs: any[] = []\n return {\n errors,\n infos,\n warns,\n debugs,\n error(...args: any[]) { errors.push(args) },\n info(...args: any[]) { infos.push(args) },\n warn(...args: any[]) { warns.push(args) },\n debug(...args: any[]) { debugs.push(args) }\n }\n}\n"]}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"colors.d.ts","sourceRoot":"","sources":["../../ts/css/colors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEpC,eAAO,MAAM,OAAO,EAAE,QAUrB,CAAA"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"colors.js","sourceRoot":"","sources":["../../ts/css/colors.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,OAAO,GAAa;IAC/B,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE;IAC/B,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE;IAClC,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE;IAClC,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE;IACpC,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE;IACnC,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE;IACpC,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE;IACnC,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE;IACpC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;CAC/B,CAAA","sourcesContent":["import { ColorMap } from 'color-map'\n\nexport const rainbow: ColorMap = [\n { index: 0, rgb: [150, 0, 90] },\n { index: 0.125, rgb: [0, 0, 200] },\n { index: 0.25, rgb: [0, 25, 255] },\n { index: 0.375, rgb: [0, 152, 255] },\n { index: 0.5, rgb: [44, 255, 150] },\n { index: 0.625, rgb: [151, 255, 0] },\n { index: 0.75, rgb: [255, 234, 0] },\n { index: 0.875, rgb: [255, 111, 0] },\n { index: 1, rgb: [255, 0, 0] }\n]\n"]}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cssFormatter.d.ts","sourceRoot":"","sources":["../../ts/css/cssFormatter.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,QAAQ,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAKlF,oBAAY,mBAAmB,GAAG;IAChC;;;;OAIG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,eAAe,CAAA;CAC3B,CAAA;AAED,wBAAgB,kBAAkB,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,WAQnC,QAAQ,WA+B7C"}
@@ -1,7 +1,7 @@
1
1
  import { createTimestampFormatter } from 'standard-log';
2
2
  import { createColorsFromMap, rgbHex } from 'color-map';
3
3
  import { required } from 'unpartial';
4
- import { rainbow } from './colors';
4
+ import { rainbow } from './colors.js';
5
5
  export function createCssFormatter(options) {
6
6
  const { maxColor, timestamp } = required({ maxColor: 20, timestamp: 'none' }, options);
7
7
  const loggerMap = {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cssFormatter.js","sourceRoot":"","sources":["../../ts/css/cssFormatter.ts"],"names":[],"mappings":"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","sourcesContent":["import { createTimestampFormatter, LogEntry, TimestampFormat } from 'standard-log'\nimport { createColorsFromMap, RGB, RGBA, rgbHex } from 'color-map'\nimport { required } from 'unpartial'\nimport { rainbow } from './colors.js'\n\nexport type CssFormatterOptions = {\n /**\n * How many colors available.\n * Recommend at least 10.\n * Default to 20.\n */\n maxColor: number,\n timestamp: TimestampFormat\n}\n\nexport function createCssFormatter(options?: Partial<CssFormatterOptions>) {\n const { maxColor, timestamp } = required({ maxColor: 20, timestamp: 'none' }, options)\n const loggerMap: Record<string, RGB> = {}\n const colorMap: RGBA[] = createColorsFromMap(rainbow, maxColor)\n let count = 0\n\n const timestampFormatter = createTimestampFormatter(timestamp)\n\n return function cssFormatter(entry: LogEntry) {\n let idStr = `%c ${entry.id} `\n let args: any[]\n if (firstArgIsColorTemplate(entry.args)) {\n idStr += entry.args[0]\n args = [...entry.args.slice(1)]\n }\n else {\n args = [...entry.args]\n }\n const rgb = getRgb(entry.id)\n const background = rgbHex(rgb)\n const border = rgbHex(rgb.map(x => Math.max(0, x - 32)) as RGB)\n const color = getForegroundColor(rgb)\n const result = [\n idStr,\n `padding: 2px; margin: 2px; line-height: 1.8em;background: ${background};border: 1px solid ${border};color: ${color};`,\n ...args\n ]\n const t = timestampFormatter(entry.timestamp)\n if (t !== undefined) result.push(t)\n return result\n }\n\n function firstArgIsColorTemplate(args: any[]) {\n return typeof args[0] === 'string' && args[0].indexOf('%c') !== -1\n }\n\n function getRgb(id: string) {\n return loggerMap[id] = loggerMap[id] || colorMap[count++ & maxColor]\n }\n}\n\nconst gammaMap = {\n rc: 0.2126,\n gc: 0.7152,\n bc: 0.0722,\n lowc: 1 / 12.92\n}\n\nfunction getForegroundColor(background: RGB) {\n // Setting the contrasting color as default\n let color = getComplementary(background)\n const bgLuminance = getRelativeLuminance(background)\n const fgLuminance = (color === '#ffffff') ?\n getRelativeLuminance([255, 255, 255]) :\n getRelativeLuminance([0, 0, 0])\n const relativeL = bgLuminance > fgLuminance ? (bgLuminance + 0.05) / (fgLuminance + 0.05) : (fgLuminance + 0.05) / (bgLuminance + 0.05)\n\n // Can set the contrast ratio based on text size later.\n if (relativeL < 4.5) {\n const avgLuminance = background[0] * gammaMap['rc'] + background[1] * gammaMap['gc'] + background[2] * gammaMap['bc']\n\n // If the relative contrast is lower than standard, we switch color to black/white\n color = (avgLuminance < 220) ? '#ffffff' : '#000000'\n }\n return color\n}\n\nfunction getRelativeLuminance(rgb: RGB) {\n // https://www.w3.org/TR/WCAG/#relativeluminancedef\n const rsrgb = rgb[0] / 255\n const gsrgb = rgb[1] / 255\n const bsrgb = rgb[2] / 255\n\n const r = rsrgb <= 0.03928 ? rsrgb * gammaMap['lowc'] : Math.pow((rsrgb + 0.055) / 1.055, 2.4)\n const g = gsrgb <= 0.03928 ? gsrgb * gammaMap['lowc'] : Math.pow((gsrgb + 0.055) / 1.055, 2.4)\n const b = bsrgb <= 0.03928 ? bsrgb * gammaMap['lowc'] : Math.pow((bsrgb + 0.055) / 1.055, 2.4)\n\n return r * gammaMap['rc'] + g * gammaMap['gc'] + b * gammaMap['bc']\n}\n\nfunction getComplementary(rgb: RGB) {\n const r = 255 - rgb[0]\n const g = 255 - rgb[1]\n const b = 255 - rgb[2]\n return rgbHex([r, g, b])\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cssFormatter.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cssFormatter.spec.d.ts","sourceRoot":"","sources":["../../ts/css/cssFormatter.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,28 @@
1
+ import { logLevels } from 'standard-log';
2
+ import a from 'assertron';
3
+ import { anything } from 'satisfier';
4
+ import { createCssFormatter } from './cssFormatter.js';
5
+ const cssFormatter = createCssFormatter();
6
+ test('same logger will get the same color', () => {
7
+ const a = cssFormatter({ id: 'log', level: logLevels.critical, args: ['a'], timestamp: new Date() });
8
+ const b = cssFormatter({ id: 'log', level: logLevels.critical, args: ['a'], timestamp: new Date() });
9
+ expect(a[1]).toEqual('padding: 2px; margin: 2px; line-height: 1.8em;background: #96005a;border: 1px solid #76003a;color: #ffffff;');
10
+ expect(a[1]).toEqual(b[1]);
11
+ });
12
+ test('support color template', () => {
13
+ const actual = cssFormatter({
14
+ id: 'color-template',
15
+ level: logLevels.critical,
16
+ args: ['%c SomeColored Text %c AnotherColor', 'color:blue;', 'color:red;', 'not colored'],
17
+ timestamp: new Date()
18
+ });
19
+ a.satisfies(actual, [
20
+ '%c color-template %c SomeColored Text %c AnotherColor',
21
+ 'padding: 2px; margin: 2px; line-height: 1.8em;background: #96005a;border: 1px solid #76003a;color: #ffffff;',
22
+ 'color:blue;',
23
+ 'color:red;',
24
+ 'not colored',
25
+ anything
26
+ ]);
27
+ });
28
+ //# sourceMappingURL=cssFormatter.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cssFormatter.spec.js","sourceRoot":"","sources":["../../ts/css/cssFormatter.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,CAAC,MAAM,WAAW,CAAA;AACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAEtD,MAAM,YAAY,GAAG,kBAAkB,EAAE,CAAA;AAEzC,IAAI,CAAC,qCAAqC,EAAE,GAAG,EAAE;IAC/C,MAAM,CAAC,GAAG,YAAY,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC,CAAA;IACpG,MAAM,CAAC,GAAG,YAAY,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC,CAAA;IACpG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,6GAA6G,CAAC,CAAA;IACnI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAC5B,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,wBAAwB,EAAE,GAAG,EAAE;IAClC,MAAM,MAAM,GAAG,YAAY,CAAC;QAC1B,EAAE,EAAE,gBAAgB;QACpB,KAAK,EAAE,SAAS,CAAC,QAAQ;QACzB,IAAI,EAAE,CAAC,qCAAqC,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,CAAC;QACzF,SAAS,EAAE,IAAI,IAAI,EAAE;KACtB,CAAC,CAAA;IACF,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE;QAClB,uDAAuD;QACvD,6GAA6G;QAC7G,aAAa;QACb,YAAY;QACZ,aAAa;QACb,QAAQ;KACT,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA","sourcesContent":["import { logLevels } from 'standard-log'\nimport a from 'assertron'\nimport { anything } from 'satisfier'\nimport { createCssFormatter } from './cssFormatter.js'\n\nconst cssFormatter = createCssFormatter()\n\ntest('same logger will get the same color', () => {\n const a = cssFormatter({ id: 'log', level: logLevels.critical, args: ['a'], timestamp: new Date() })\n const b = cssFormatter({ id: 'log', level: logLevels.critical, args: ['a'], timestamp: new Date() })\n expect(a[1]).toEqual('padding: 2px; margin: 2px; line-height: 1.8em;background: #96005a;border: 1px solid #76003a;color: #ffffff;')\n expect(a[1]).toEqual(b[1])\n})\n\ntest('support color template', () => {\n const actual = cssFormatter({\n id: 'color-template',\n level: logLevels.critical,\n args: ['%c SomeColored Text %c AnotherColor', 'color:blue;', 'color:red;', 'not colored'],\n timestamp: new Date()\n })\n a.satisfies(actual, [\n '%c color-template %c SomeColored Text %c AnotherColor',\n 'padding: 2px; margin: 2px; line-height: 1.8em;background: #96005a;border: 1px solid #76003a;color: #ffffff;',\n 'color:blue;',\n 'color:red;',\n 'not colored',\n anything\n ])\n})\n"]}
@@ -0,0 +1,2 @@
1
+ export * from './cssFormatter.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../ts/css/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from './cssFormatter.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../ts/css/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA","sourcesContent":["export * from './cssFormatter.js'\n"]}
package/esm/index.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ export * from './ansi/index.js';
2
+ export * from './createColorLogReporter.js';
3
+ export * from './css/index.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../ts/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,cAAc,6BAA6B,CAAA;AAC3C,cAAc,gBAAgB,CAAA"}
package/esm/index.js ADDED
@@ -0,0 +1,4 @@
1
+ export * from './ansi/index.js';
2
+ export * from './createColorLogReporter.js';
3
+ export * from './css/index.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../ts/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,cAAc,6BAA6B,CAAA;AAC3C,cAAc,gBAAgB,CAAA","sourcesContent":["export * from './ansi/index.js'\nexport * from './createColorLogReporter.js'\nexport * from './css/index.js'\n"]}
@@ -0,0 +1,2 @@
1
+ export * from './supportColor.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../ts/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from './supportColor.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../ts/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA","sourcesContent":["export * from './supportColor.js'\n"]}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"supportColor.browser.d.ts","sourceRoot":"","sources":["../../ts/utils/supportColor.browser.ts"],"names":[],"mappings":"AAAA,wBAAgB,YAAY,IAAI,OAAO,CAEtC"}
@@ -6,6 +6,7 @@ function doesBrowserSupportColor() {
6
6
  // NB: In an Electron preload script, document will be defined but not fully
7
7
  // initialized. Since we know we're in Chrome, we'll just detect this case
8
8
  // explicitly
9
+ // @ts-ignore
9
10
  if (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {
10
11
  return true;
11
12
  }
@@ -15,8 +16,10 @@ function doesBrowserSupportColor() {
15
16
  }
16
17
  // Is webkit? http://stackoverflow.com/a/16459606/376773
17
18
  // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632
19
+ // @ts-ignore
18
20
  return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||
19
21
  // Is firebug? http://stackoverflow.com/a/398120/376773
22
+ // @ts-ignore
20
23
  (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||
21
24
  // Is firefox >= v31?
22
25
  // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
@@ -0,0 +1 @@
1
+ {"version":3,"file":"supportColor.browser.js","sourceRoot":"","sources":["../../ts/utils/supportColor.browser.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,YAAY;IAC1B,OAAO,uBAAuB,EAAE,CAAA;AAClC,CAAC;AAED,uBAAuB;AACvB,SAAS,uBAAuB;IAC9B,4EAA4E;IAC5E,0EAA0E;IAC1E,aAAa;IACb,aAAa;IACb,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,UAAU,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QACpH,OAAO,IAAI,CAAA;KACZ;IAED,oDAAoD;IACpD,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,uBAAuB,CAAC,EAAE;QAC/H,OAAO,KAAK,CAAA;KACb;IAED,wDAAwD;IACxD,4FAA4F;IAC5F,aAAa;IACb,OAAO,CAAC,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,CAAC,eAAe,IAAI,QAAQ,CAAC,eAAe,CAAC,KAAK,IAAI,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,gBAAgB,CAAC;QACvJ,uDAAuD;QACvD,aAAa;QACb,CAAC,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QACnI,qBAAqB;QACrB,8EAA8E;QAC9E,CAAC,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;QACvJ,mEAAmE;QACnE,CAAC,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAA;AAC9H,CAAC","sourcesContent":["export function supportColor(): boolean {\n return doesBrowserSupportColor()\n}\n\n// istanbul ignore next\nfunction doesBrowserSupportColor() {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n // @ts-ignore\n if (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n return true\n }\n\n // Internet Explorer and Edge do not support colors.\n if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n return false\n }\n\n // Is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n // @ts-ignore\n return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n // Is firebug? http://stackoverflow.com/a/398120/376773\n // @ts-ignore\n (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n // Is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n // Double check webkit in userAgent just in case we are in a worker\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/))\n}\n"]}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"supportColor.d.ts","sourceRoot":"","sources":["../../ts/utils/supportColor.ts"],"names":[],"mappings":"AAAA,wBAAgB,YAAY,IAAI,OAAO,CAEtC"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"supportColor.js","sourceRoot":"","sources":["../../ts/utils/supportColor.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,YAAY;IAC1B,OAAO,IAAI,CAAA;AACb,CAAC","sourcesContent":["export function supportColor(): boolean {\n return true\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "standard-log-color",
3
- "version": "3.2.3",
3
+ "version": "5.0.0",
4
4
  "description": "Color console reporter for `standard-log`",
5
5
  "homepage": "https://github.com/unional/standard-log/tree/master/packages/color",
6
6
  "bugs": {
@@ -15,52 +15,98 @@
15
15
  "name": "Homa Wong",
16
16
  "email": "homawong@gmail.com"
17
17
  },
18
+ "sideEffects": false,
19
+ "type": "module",
20
+ "exports": {
21
+ "import": "./esm/index.js",
22
+ "require": "./cjs/index.js"
23
+ },
24
+ "main": "./cjs/index.js",
25
+ "browser": {
26
+ "./cjs/createColorLogReporter.d.ts": "./cjs/createColorLogReporter.browser.d.ts",
27
+ "./cjs/createColorLogReporter.js": "./cjs/createColorLogReporter.browser.js",
28
+ "./cjs/createColorLogReporter.js.map": "./cjs/createColorLogReporter.browser.js.map",
29
+ "./cjs/utils/supportColor.d.ts": "./cjs/utils/supportColor.browser.d.ts",
30
+ "./cjs/utils/supportColor.js": "./cjs/utils/supportColor.browser.js",
31
+ "./cjs/utils/supportColor.js.map": "./cjs/utils/supportColor.browser.js.map",
32
+ "./esm/createColorLogReporter.d.ts": "./esm/createColorLogReporter.browser.d.ts",
33
+ "./esm/createColorLogReporter.js": "./esm/createColorLogReporter.browser.js",
34
+ "./esm/createColorLogReporter.js.map": "./esm/createColorLogReporter.browser.js.map",
35
+ "./esm/utils/supportColor.d.ts": "./esm/utils/supportColor.browser.d.ts",
36
+ "./esm/utils/supportColor.js": "./esm/utils/supportColor.browser.js",
37
+ "./esm/utils/supportColor.js.map": "./esm/utils/supportColor.browser.js.map",
38
+ "./ts/createColorLogReporter.ts": "./ts/createColorLogReporter.browser.ts",
39
+ "./ts/utils/supportColor.ts": "./ts/utils/supportColor.browser.ts"
40
+ },
41
+ "types": "./cjs/index.d.ts",
18
42
  "files": [
19
43
  "dist",
20
- "lib",
21
- "libm",
22
- "src"
44
+ "cjs",
45
+ "esm",
46
+ "ts",
47
+ "!ts/**/*.spec.ts"
23
48
  ],
24
- "main": "lib/index.js",
25
- "module": "libm/index.js",
26
- "jsnext:main": "libm/index.js",
27
- "typings": "lib/index.d.ts",
28
- "browser": {
29
- "./lib/utils/supportColor.js": "./lib/utils/supportColor.browser.js",
30
- "./lib/utils/supportColor.d.ts": "./lib/utils/supportColor.browser.d.ts",
31
- "./lib/utils/supportColor.js.map": "./lib/utils/supportColor.browser.js.map",
32
- "./libm/utils/supportColor.js": "./libm/utils/supportColor.browser.js",
33
- "./libm/utils/supportColor.d.ts": "./libm/utils/supportColor.browser.d.ts",
34
- "./libm/utils/supportColor.js.map": "./libm/utils/supportColor.browser.js.map",
35
- "./src/utils/supportColor.ts": "./src/utils/supportColor.browser.ts",
36
- "./lib/createColorLogReporter.js": "./lib/createColorLogReporter.browser.js",
37
- "./lib/createColorLogReporter.d.ts": "./lib/createColorLogReporter.browser.d.ts",
38
- "./lib/createColorLogReporter.js.map": "./lib/createColorLogReporter.browser.js.map",
39
- "./libm/createColorLogReporter.js": "./libm/createColorLogReporter.browser.js",
40
- "./libm/createColorLogReporter.d.ts": "./libm/createColorLogReporter.browser.d.ts",
41
- "./libm/createColorLogReporter.js.map": "./libm/createColorLogReporter.browser.js.map",
42
- "./src/createColorLogReporter.ts": "./src/createColorLogReporter.browser.ts"
43
- },
44
- "sideEffects": false,
45
49
  "scripts": {
46
- "build": "tsc -p tsconfig.lib.json && tsc -p tsconfig.libm.json",
47
- "bundle": "webpack",
48
- "clean": "rimraf dist lib libm",
50
+ "build": "npm-run-all build:clean -p build:cjs build:esm build:tslib bundle:es5 bundle:esm",
51
+ "build:clean": "rimraf .tsbuildinfo || true",
52
+ "build:cjs": "tsc -p ./tsconfig.cjs.json",
53
+ "build:esm": "tsc -p ./tsconfig.esm.json",
54
+ "build:tslib": "tsc -p ./tsconfig.tslib.json",
55
+ "bundle": "run-p bundle:es5 bundle:esm",
56
+ "bundle:es5": "webpack -c ./webpack.es5.cjs",
57
+ "bundle:esm": "webpack -c ./webpack.esm.cjs",
58
+ "clean": "rimraf dist lib libm csj esm tslib coverage || true",
49
59
  "coverage": "jest --coverage",
50
- "depcheck": "dependency-check . --unused --no-dev && dependency-check . --missing --no-dev",
60
+ "depcheck": "depcheck",
61
+ "lint": "cross-env TIMING=1 eslint --ext=ts,js,cjs,mjs .",
51
62
  "prepublishOnly": "yarn build && yarn bundle",
63
+ "size": "size-limit",
52
64
  "test": "jest",
53
65
  "test:watch": "jest --watch",
54
- "verify": "yarn lint && yarn depcheck && yarn coverage",
66
+ "verify": "npm-run-all clean -p build depcheck lint coverage -p size",
55
67
  "watch": "jest --watch"
56
68
  },
57
69
  "dependencies": {
58
- "color-map": "^1.1.0",
59
- "tslib": "^2.2.0",
60
- "unpartial": "^0.6.3"
70
+ "color-map": "^1.1.4",
71
+ "unpartial": "^0.7.4"
72
+ },
73
+ "devDependencies": {
74
+ "@size-limit/preset-small-lib": "^7.0.8",
75
+ "assertron": "^9.2.3",
76
+ "compression-webpack-plugin": "^10.0.0",
77
+ "cross-env": "^7.0.3",
78
+ "depcheck": "^1.4.3",
79
+ "eslint": "^8.17.0",
80
+ "jest": "^28.1.0",
81
+ "npm-run-all": "^4.1.5",
82
+ "param-case": "^3.0.4",
83
+ "pascal-case": "^3.1.2",
84
+ "rimraf": "^3.0.2",
85
+ "satisfier": "^5.2.0",
86
+ "size-limit": "^7.0.8",
87
+ "standard-log": "workspace:*",
88
+ "ts-jest": "^28.0.4",
89
+ "ts-loader": "^9.3.0",
90
+ "tslib": "^2.4.0",
91
+ "typescript": "^4.7.3",
92
+ "webpack": "^5.73.0",
93
+ "webpack-cli": "^4.9.2"
61
94
  },
62
95
  "peerDependencies": {
63
- "standard-log": ">=4.0.2"
96
+ "standard-log": ">=8.0.0"
64
97
  },
65
- "gitHead": "9be670ecd2cdae445f615327f16b33de5f7b670a"
98
+ "size-limit": [
99
+ {
100
+ "path": "./cjs/index.js",
101
+ "limit": "10 kB"
102
+ },
103
+ {
104
+ "path": "./esm/index.js",
105
+ "limit": "10 kB"
106
+ },
107
+ {
108
+ "path": "./tslib/index.js",
109
+ "limit": "10 kB"
110
+ }
111
+ ]
66
112
  }
@@ -1,4 +1,4 @@
1
- import { ANSI_RED, ANSI_BACKGROUND, ANSI_YELLOW, ANSI_BLACK, ANSI_FOREGROUND } from './constants';
1
+ import { ANSI_RED, ANSI_BACKGROUND, ANSI_YELLOW, ANSI_BLACK, ANSI_FOREGROUND } from './constants.js'
2
2
 
3
3
  export function adjustCodes(codes: number[], consoleMethod: string) {
4
4
  if (
@@ -1,8 +1,8 @@
1
- import { createTimestampFormatter, LogEntry, TimestampFormat, toConsoleMethod } from 'standard-log';
2
- import { adjustCodes } from './adjustCodes';
3
- import { ANSI_FOREGROUND, ANSI_RED, ANSI_YELLOW } from './constants';
4
- import { createColorCodes } from './createColorCodes';
5
- import { wrapAnsi, wrapAnsiId } from './wrapAnsi';
1
+ import { createTimestampFormatter, LogEntry, TimestampFormat, toConsoleMethod } from 'standard-log'
2
+ import { adjustCodes } from './adjustCodes.js'
3
+ import { ANSI_FOREGROUND, ANSI_RED, ANSI_YELLOW } from './constants.js'
4
+ import { createColorCodes } from './createColorCodes.js'
5
+ import { wrapAnsi, wrapAnsiId } from './wrapAnsi.js'
6
6
 
7
7
  type Context = {
8
8
  colorMap: number[][],
File without changes
@@ -1,6 +1,5 @@
1
- import { ANSI_BACKGROUND, ANSI_BLUE, ANSI_BRIGHT, ANSI_CYAN, ANSI_FOREGROUND, ANSI_GREEN, ANSI_MAGENTA, ANSI_RED, ANSI_UNDERSCORE, ANSI_WHITE, ANSI_YELLOW } from './constants';
2
- import { isColor } from './isColor';
3
-
1
+ import { ANSI_BACKGROUND, ANSI_BLUE, ANSI_BRIGHT, ANSI_CYAN, ANSI_FOREGROUND, ANSI_GREEN, ANSI_MAGENTA, ANSI_RED, ANSI_UNDERSCORE, ANSI_WHITE, ANSI_YELLOW } from './constants.js'
2
+ import { isColor } from './isColor.js'
4
3
 
5
4
  export function createColorCodes() {
6
5
  const baseColors = [ANSI_RED, ANSI_GREEN, ANSI_YELLOW, ANSI_BLUE, ANSI_MAGENTA, ANSI_CYAN]
@@ -0,0 +1,3 @@
1
+ export * from './ansiFormatter.js'
2
+ export * from './constants.js'
3
+ export * from './wrapAnsi.js'
@@ -1,4 +1,4 @@
1
- import { AnsiColor, AnsiStyle, ANSI_BACKGROUND, ANSI_FOREGROUND, ANSI_WHITE } from './constants';
1
+ import { AnsiColor, AnsiStyle, ANSI_BACKGROUND, ANSI_FOREGROUND, ANSI_WHITE } from './constants.js'
2
2
 
3
3
  export function isColor(color: number[], foreground: AnsiColor, background: AnsiColor, style?: AnsiStyle) {
4
4
  if (color.length === 1) {
File without changes
@@ -1,7 +1,7 @@
1
1
  import { ConsoleLogReporterOptions, createConsoleLogReporter, plainLogFormatter } from 'standard-log'
2
2
  import { required } from 'unpartial'
3
- import { createCssFormatter } from './css'
4
- import { supportColor } from './utils'
3
+ import { createCssFormatter } from './css/index.js'
4
+ import { supportColor } from './utils/index.js'
5
5
 
6
6
  export function createColorLogReporter(options?: ConsoleLogReporterOptions) {
7
7
  return createConsoleLogReporter(required({ formatter: getFormatter() }, options))
@@ -1,7 +1,7 @@
1
1
  import { ConsoleLogReporterOptions, createConsoleLogReporter, plainLogFormatter } from 'standard-log'
2
2
  import { required } from 'unpartial'
3
- import { createAnsiFormatter } from './ansi'
4
- import { supportColor } from './utils'
3
+ import { createAnsiFormatter } from './ansi/index.js'
4
+ import { supportColor } from './utils/index.js'
5
5
 
6
6
  export function createColorLogReporter(options?: ConsoleLogReporterOptions) {
7
7
  return createConsoleLogReporter(required({ formatter: getFormatter() }, options))
File without changes
@@ -1,7 +1,7 @@
1
1
  import { createTimestampFormatter, LogEntry, TimestampFormat } from 'standard-log'
2
2
  import { createColorsFromMap, RGB, RGBA, rgbHex } from 'color-map'
3
3
  import { required } from 'unpartial'
4
- import { rainbow } from './colors'
4
+ import { rainbow } from './colors.js'
5
5
 
6
6
  export type CssFormatterOptions = {
7
7
  /**