@zuplo/cli 6.69.0 → 6.69.2

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 (82) hide show
  1. package/dist/__tests__/integration/info.integration.test.d.ts +2 -0
  2. package/dist/__tests__/integration/info.integration.test.d.ts.map +1 -0
  3. package/dist/__tests__/integration/info.integration.test.js +246 -0
  4. package/dist/__tests__/integration/info.integration.test.js.map +1 -0
  5. package/dist/__tests__/integration/jest-mocks-setup.js +6 -1
  6. package/dist/__tests__/integration/jest-mocks-setup.js.map +1 -1
  7. package/dist/cli.js +2 -0
  8. package/dist/cli.js.map +1 -1
  9. package/dist/cmds/info.d.ts +9 -0
  10. package/dist/cmds/info.d.ts.map +1 -0
  11. package/dist/cmds/info.js +19 -0
  12. package/dist/cmds/info.js.map +1 -0
  13. package/dist/cmds/project/index.d.ts.map +1 -1
  14. package/dist/cmds/project/index.js +2 -1
  15. package/dist/cmds/project/index.js.map +1 -1
  16. package/dist/cmds/project/info.d.ts +10 -0
  17. package/dist/cmds/project/info.d.ts.map +1 -0
  18. package/dist/cmds/project/info.js +50 -0
  19. package/dist/cmds/project/info.js.map +1 -0
  20. package/dist/common/api/lib.d.ts +6 -1
  21. package/dist/common/api/lib.d.ts.map +1 -1
  22. package/dist/common/api/lib.js.map +1 -1
  23. package/dist/common/middleware/authentication.d.ts +5 -2
  24. package/dist/common/middleware/authentication.d.ts.map +1 -1
  25. package/dist/common/middleware/authentication.js +27 -20
  26. package/dist/common/middleware/authentication.js.map +1 -1
  27. package/dist/common/read-linked-config.d.ts +1 -0
  28. package/dist/common/read-linked-config.d.ts.map +1 -1
  29. package/dist/common/read-linked-config.js +1 -0
  30. package/dist/common/read-linked-config.js.map +1 -1
  31. package/dist/common/read-linked-config.test.js +15 -0
  32. package/dist/common/read-linked-config.test.js.map +1 -1
  33. package/dist/common/utils/pretty-print-environment-prompt.d.ts.map +1 -1
  34. package/dist/common/utils/pretty-print-environment-prompt.js +9 -15
  35. package/dist/common/utils/pretty-print-environment-prompt.js.map +1 -1
  36. package/dist/common/utils/pretty-print-environment-prompt.test.d.ts +2 -0
  37. package/dist/common/utils/pretty-print-environment-prompt.test.d.ts.map +1 -0
  38. package/dist/common/utils/pretty-print-environment-prompt.test.js +44 -0
  39. package/dist/common/utils/pretty-print-environment-prompt.test.js.map +1 -0
  40. package/dist/project/info/handler.d.ts +7 -0
  41. package/dist/project/info/handler.d.ts.map +1 -0
  42. package/dist/project/info/handler.js +109 -0
  43. package/dist/project/info/handler.js.map +1 -0
  44. package/dist/tsconfig.tsbuildinfo +1 -1
  45. package/node_modules/@zuplo/core/package.json +1 -1
  46. package/node_modules/@zuplo/graphql/package.json +1 -1
  47. package/node_modules/@zuplo/openapi-tools/package.json +1 -1
  48. package/node_modules/@zuplo/otel/package.json +1 -1
  49. package/node_modules/@zuplo/runtime/package.json +1 -1
  50. package/node_modules/uuid/dist/cjs/v35.js +3 -0
  51. package/node_modules/uuid/dist/cjs/v6.js +3 -0
  52. package/node_modules/uuid/dist/cjs-browser/v35.js +3 -0
  53. package/node_modules/uuid/dist/cjs-browser/v6.js +3 -0
  54. package/node_modules/uuid/dist/esm/v35.js +3 -0
  55. package/node_modules/uuid/dist/esm/v6.js +3 -0
  56. package/node_modules/uuid/dist/esm-browser/v35.js +3 -0
  57. package/node_modules/uuid/dist/esm-browser/v6.js +3 -0
  58. package/node_modules/uuid/package.json +1 -1
  59. package/package.json +6 -10
  60. package/node_modules/as-table/.babelrc +0 -3
  61. package/node_modules/as-table/.eslintrc +0 -6
  62. package/node_modules/as-table/.travis.yml +0 -24
  63. package/node_modules/as-table/CHANGELOG.md +0 -3
  64. package/node_modules/as-table/LICENSE +0 -21
  65. package/node_modules/as-table/README.md +0 -113
  66. package/node_modules/as-table/as-table.d.ts +0 -32
  67. package/node_modules/as-table/as-table.js +0 -89
  68. package/node_modules/as-table/build/as-table.js +0 -86
  69. package/node_modules/as-table/package.json +0 -67
  70. package/node_modules/as-table/test.js +0 -223
  71. package/node_modules/printable-characters/.babelrc +0 -3
  72. package/node_modules/printable-characters/.eslintrc +0 -6
  73. package/node_modules/printable-characters/.gitattributes +0 -2
  74. package/node_modules/printable-characters/.npmignore +0 -8
  75. package/node_modules/printable-characters/.travis.yml +0 -24
  76. package/node_modules/printable-characters/CHANGELOG.md +0 -1
  77. package/node_modules/printable-characters/LICENSE +0 -24
  78. package/node_modules/printable-characters/README.md +0 -88
  79. package/node_modules/printable-characters/build/printable-characters.js +0 -53
  80. package/node_modules/printable-characters/package.json +0 -72
  81. package/node_modules/printable-characters/printable-characters.js +0 -44
  82. package/node_modules/printable-characters/test.js +0 -77
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@zuplo/otel",
3
3
  "type": "module",
4
- "version": "6.69.0",
4
+ "version": "6.69.2",
5
5
  "repository": "https://github.com/zuplo/zuplo",
6
6
  "author": "Zuplo, Inc.",
7
7
  "exports": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@zuplo/runtime",
3
3
  "type": "module",
4
- "version": "6.69.0",
4
+ "version": "6.69.2",
5
5
  "repository": "https://github.com/zuplo/zuplo",
6
6
  "author": "Zuplo, Inc.",
7
7
  "exports": {
@@ -31,6 +31,9 @@ function v35(version, hash, value, namespace, buf, offset) {
31
31
  bytes[8] = (bytes[8] & 0x3f) | 0x80;
32
32
  if (buf) {
33
33
  offset = offset || 0;
34
+ if (offset < 0 || offset + 16 > buf.length) {
35
+ throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);
36
+ }
34
37
  for (let i = 0; i < 16; ++i) {
35
38
  buf[offset + i] = bytes[i];
36
39
  }
@@ -9,6 +9,9 @@ function v6(options, buf, offset) {
9
9
  let bytes = (0, v1_js_1.default)({ ...options, _v6: true }, new Uint8Array(16));
10
10
  bytes = (0, v1ToV6_js_1.default)(bytes);
11
11
  if (buf) {
12
+ if (offset < 0 || offset + 16 > buf.length) {
13
+ throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);
14
+ }
12
15
  for (let i = 0; i < 16; i++) {
13
16
  buf[offset + i] = bytes[i];
14
17
  }
@@ -31,6 +31,9 @@ function v35(version, hash, value, namespace, buf, offset) {
31
31
  bytes[8] = (bytes[8] & 0x3f) | 0x80;
32
32
  if (buf) {
33
33
  offset = offset || 0;
34
+ if (offset < 0 || offset + 16 > buf.length) {
35
+ throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);
36
+ }
34
37
  for (let i = 0; i < 16; ++i) {
35
38
  buf[offset + i] = bytes[i];
36
39
  }
@@ -9,6 +9,9 @@ function v6(options, buf, offset) {
9
9
  let bytes = (0, v1_js_1.default)({ ...options, _v6: true }, new Uint8Array(16));
10
10
  bytes = (0, v1ToV6_js_1.default)(bytes);
11
11
  if (buf) {
12
+ if (offset < 0 || offset + 16 > buf.length) {
13
+ throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);
14
+ }
12
15
  for (let i = 0; i < 16; i++) {
13
16
  buf[offset + i] = bytes[i];
14
17
  }
@@ -27,6 +27,9 @@ export default function v35(version, hash, value, namespace, buf, offset) {
27
27
  bytes[8] = (bytes[8] & 0x3f) | 0x80;
28
28
  if (buf) {
29
29
  offset = offset || 0;
30
+ if (offset < 0 || offset + 16 > buf.length) {
31
+ throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);
32
+ }
30
33
  for (let i = 0; i < 16; ++i) {
31
34
  buf[offset + i] = bytes[i];
32
35
  }
@@ -7,6 +7,9 @@ function v6(options, buf, offset) {
7
7
  let bytes = v1({ ...options, _v6: true }, new Uint8Array(16));
8
8
  bytes = v1ToV6(bytes);
9
9
  if (buf) {
10
+ if (offset < 0 || offset + 16 > buf.length) {
11
+ throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);
12
+ }
10
13
  for (let i = 0; i < 16; i++) {
11
14
  buf[offset + i] = bytes[i];
12
15
  }
@@ -27,6 +27,9 @@ export default function v35(version, hash, value, namespace, buf, offset) {
27
27
  bytes[8] = (bytes[8] & 0x3f) | 0x80;
28
28
  if (buf) {
29
29
  offset = offset || 0;
30
+ if (offset < 0 || offset + 16 > buf.length) {
31
+ throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);
32
+ }
30
33
  for (let i = 0; i < 16; ++i) {
31
34
  buf[offset + i] = bytes[i];
32
35
  }
@@ -7,6 +7,9 @@ function v6(options, buf, offset) {
7
7
  let bytes = v1({ ...options, _v6: true }, new Uint8Array(16));
8
8
  bytes = v1ToV6(bytes);
9
9
  if (buf) {
10
+ if (offset < 0 || offset + 16 > buf.length) {
11
+ throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);
12
+ }
10
13
  for (let i = 0; i < 16; i++) {
11
14
  buf[offset + i] = bytes[i];
12
15
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "uuid",
3
- "version": "11.1.0",
3
+ "version": "11.1.1",
4
4
  "description": "RFC9562 UUIDs",
5
5
  "type": "module",
6
6
  "funding": [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zuplo/cli",
3
- "version": "6.69.0",
3
+ "version": "6.69.2",
4
4
  "repository": "https://github.com/zuplo/zuplo",
5
5
  "author": "Zuplo, Inc.",
6
6
  "type": "module",
@@ -29,11 +29,10 @@
29
29
  "@opentelemetry/api": "1.9.0",
30
30
  "@sentry/node": "9.22.0",
31
31
  "@swc/core": "1.10.18",
32
- "@zuplo/core": "6.69.0",
32
+ "@zuplo/core": "6.69.2",
33
33
  "@zuplo/editor": "1.0.20821740935",
34
- "@zuplo/openapi-tools": "6.69.0",
35
- "@zuplo/runtime": "6.69.0",
36
- "as-table": "1.0.55",
34
+ "@zuplo/openapi-tools": "6.69.2",
35
+ "@zuplo/runtime": "6.69.2",
37
36
  "chalk": "5.4.1",
38
37
  "chokidar": "3.5.3",
39
38
  "cookie": "1.0.2",
@@ -64,12 +63,11 @@
64
63
  "strip-ansi": "7.1.0",
65
64
  "tar": "7.5.11",
66
65
  "undici": "6.24.1",
67
- "uuid": "^11.1.0",
68
66
  "workerd": "1.20241230.0",
69
67
  "yargs": "17.7.2",
70
68
  "zod": "^3.24.1",
71
- "@zuplo/graphql": "6.69.0",
72
- "@zuplo/otel": "6.69.0"
69
+ "@zuplo/graphql": "6.69.2",
70
+ "@zuplo/otel": "6.69.2"
73
71
  },
74
72
  "bundleDependencies": [
75
73
  "@fastify/cors",
@@ -81,7 +79,6 @@
81
79
  "@zuplo/editor",
82
80
  "@zuplo/openapi-tools",
83
81
  "@zuplo/runtime",
84
- "as-table",
85
82
  "chalk",
86
83
  "chokidar",
87
84
  "cookie",
@@ -110,7 +107,6 @@
110
107
  "strip-ansi",
111
108
  "tar",
112
109
  "undici",
113
- "uuid",
114
110
  "yargs",
115
111
  "zod",
116
112
  "@zuplo/graphql",
@@ -1,3 +0,0 @@
1
- {
2
- "plugins": ["transform-es2015-destructuring", "transform-es2015-spread"]
3
- }
@@ -1,6 +0,0 @@
1
- {
2
- "parserOptions": {
3
- "ecmaVersion": 6,
4
- "sourceType": "script"
5
- }
6
- }
@@ -1,24 +0,0 @@
1
- language: node_js
2
- node_js:
3
- - '8'
4
- script:
5
- - set -e
6
- - npm run test
7
- - npm run coveralls
8
- after_success:
9
- - git config --global user.email "travis@travis-ci.org"
10
- - git config --global user.name "Travis CI"
11
- - npm config set git-tag-version=false
12
- - NPM_VERSION=$(npm version patch)
13
- - git commit -a -m "${NPM_VERSION:1}" -m "[ci skip]"
14
- - git remote remove origin
15
- - git remote add origin https://${GITHUB_TOKEN}@github.com/xpl/as-table.git
16
- - git push origin HEAD:master
17
- deploy:
18
- provider: npm
19
- email: rocket.mind@gmail.com
20
- api_key:
21
- secure: AVxwMF+0BKyQqTvA/9Va+G+1kgsVUKQ08LgzVhqfUv2yGgh5jWY0P5/IFLQocTuC+uef066KqTlvnWR3SWqB+am5EsqiZeFPzOHmtCgxrML2aZK8crjPoY4W/3ZfPy9H00nU9YPNVguXJY7K7MwEFXZ/SVOM1aQvr+omeqMpbnP6Cl4nQ6Hzbc/uAdUHIQG1qzoEbsnkT1EuQ39v1IQLBEoiBDkUj45bmEdETZXd9Nr42BOviFMYjba0vAn8gsuUgMj+bYXeb0XXedmRwBGjtgcNx76RwwmOXPtiC2IQs6FiDmCzZtCcoYuvrWSOFYhfEgptDeeZ080x38uhBxusYq3p0iRF+XyjWlr3w1A5JaHL8FkUfmdBxKAzKhiPTS5yDqteWL8znqGKSPjR+FJNQo5pbS5+C8I67xkcDHvigMWy30lnnjvCV7tPW4FdJ85kx+F1qNmHU0vYqVfDNet4KZofgWoS0cHMYskzl1BwWC+vofwI9/sKatDtFR25ffFg8f17nW+6vTX/n9uSqIFURUI8DhfFlxqG2giDd73KCB0uZ4Fqd0dqnmcp5qg2hQt0sIftDBOmOaX7xKbVdLbGBTAQ82KZmbQCnj0In10gJQf5O/mKD7rr2dMLHi6fvbBE/cEsWy4u/o50UQ7bDzGfXT3tJ+tktxmx1HfSf6eXilA=
22
- env:
23
- global:
24
- secure: KbUFKSmSkbuRb0mQ1kcKL5dA8TdI2SlnZAzyXwRXF/RpK5LDGI31gmPODl7DOKHPzEUTQaIeA/8dI0p8DKM9eTfHyM+pl0kZE+e6wSTdawVlI9FoxLgyBi8hz3UWnA39/YN65uFNvFX+kSYPPeOeV5zJNUaC8CT7Y3HYKR3tGrBaKrQbCnOlXIBsmyFryUHqdapBDmrqrU69Ab1uQca/djS2ztsjYvaP61aEIAKAsUZQRtDk8mP8sUQ5o15CwcpaWp/K1efeb3AuxHjcYOHH0Ci0SZmWpO9ky+wLCPeDqEeV4ZDN4Wfp9yx5dNkV0+ifevSRR5FNS9LHREPML8jz53KzOQQOXK5Fup/SsHPHU0XT6vB2TlG0YwatMSVGY4QIRCMftMkokjFwWsP8oPbuTuVCWhHQouMxRQDPQ/z3Dn/+blASG1lw16S92ksRLc8CCGA8gUZ6CrKh82gFAfyzwAUgLhoFIPEEu2e49W/VdAzeQ1VfAb/TbjwdgX9OR8F8TR48jM3Xpk8BdPANso7t9Rk9vvIw0JxR0Ir+7ufHV1dqCPsGa5KdZjaKrHHs6P/JI+Xl+w4o/6wmn3FhORSKqGuxDJqoQ8cw49Hh5OM0uf9tKfiyUyuFdsApom4vwrOTL+ZRbbD037JH/fzp24C33oaGwOCdyY0Eb/n0LI5ufRg=
@@ -1,3 +0,0 @@
1
- # Recent Updates
2
-
3
- - Now layouts ANSI-colored strings correctly, thanks to the [`printable-characters`](https://github.com/xpl/printable-characters) module.
@@ -1,21 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2016 Vitaly Gordon (https://github.com/xpl)
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.
@@ -1,113 +0,0 @@
1
- # as-table
2
-
3
- [![Build Status](https://travis-ci.org/xpl/as-table.svg?branch=master)](https://travis-ci.org/xpl/as-table) [![Coverage Status](https://coveralls.io/repos/github/xpl/as-table/badge.svg)](https://coveralls.io/github/xpl/as-table) [![npm](https://img.shields.io/npm/v/as-table.svg)](https://npmjs.com/package/as-table) [![dependencies Status](https://david-dm.org/xpl/as-table/status.svg)](https://david-dm.org/xpl/as-table) [![Scrutinizer Code Quality](https://img.shields.io/scrutinizer/g/xpl/as-table.svg)](https://scrutinizer-ci.com/g/xpl/as-table/?branch=master)
4
-
5
- A simple function that print objects and arrays as ASCII tables. Supports ANSI styling and weird 💩 Unicode emoji symbols (they won't break the layout), thanks to [`printable-characters`](https://github.com/xpl/printable-characters).
6
-
7
- ```bash
8
- npm install as-table
9
- ```
10
-
11
- ## Printing objects
12
-
13
- ```javascript
14
- asTable = require ('as-table')
15
-
16
- asTable ([ { foo: true, string: 'abcde', num: 42 },
17
- { foo: false, string: 'qwertyuiop', num: 43 },
18
- { string: null, num: 44 } ])
19
- ```
20
- ```
21
- foo string num
22
- ----------------------
23
- true abcde 42
24
- false qwertyuiop 43
25
- null 44
26
- ```
27
-
28
- ## Printing arrays
29
-
30
- ```javascript
31
- asTable ([['qwe', '123456789', 'zxcvbnm'],
32
- ['qwerty', '12', 'zxcvb'],
33
- ['qwertyiop', '1234567', 'z']])
34
- ```
35
- ```
36
- qwe 123456789 zxcvbnm
37
- qwerty 12 zxcvb
38
- qwertyiop 1234567 z
39
- ```
40
-
41
- ## Limiting total width by proportionally trimming cells + setting columns delimiter
42
-
43
- ```javascript
44
- asTable.configure ({ maxTotalWidth: 22, delimiter: ' | ' }) (data)
45
- ```
46
- ```
47
- qwe | 1234… | zxc…
48
- qwer… | 12 | zxc…
49
- qwer… | 1234… | z
50
- ```
51
-
52
- ## Right align
53
-
54
- ```javascript
55
- asTable.configure ({ right: true }) (data)
56
- ```
57
- ```
58
- foo bar baz
59
- -----------------------------
60
- qwe 123456789 zxcvbnm
61
- qwerty 12 zxcvb
62
- qwertyiop 1234567 z
63
- ```
64
-
65
- ## Providing a custom object printer
66
-
67
- ```javascript
68
- asTable.configure ({ print: x => (typeof x === 'boolean') ? (x ? 'yes' : 'no') : String (x) }) (data)
69
- ```
70
- ```
71
- foo string num
72
- --------------------
73
- yes abcde 42
74
- no qwertyuiop 43
75
- null 44
76
- ```
77
-
78
- The callback also receives a field name (in case of objects) or a column index (in case of arrays):
79
-
80
- ```javascript
81
- asTable = require ('as-table').configure ({
82
- print (x, k) {
83
- if (k === 'timestamp') return new Date (x).toGMTString()
84
- return String (x)
85
- }
86
- })
87
-
88
- asTable ([ { name: 'A', timestamp: 1561202591572 },
89
- { name: 'B', timestamp: 1558524240034 } ])
90
- ```
91
-
92
- ## Obtaining a pre-configured function
93
-
94
- ```javascript
95
- asTable = require ('as-table').configure ({ maxTotalWidth: 25, delimiter: ' | ' })
96
-
97
- asTable (data)
98
- ```
99
-
100
- ## Customizing the title rendering and the header separator
101
-
102
- With string coloring by [`ansicolor`](https://github.com/xpl/ansicolor) (just for the demo purposes, any library will fit):
103
-
104
- ```javascript
105
- asTable = require ('as-table').configure ({ title: x => x.bright, delimiter: ' | '.dim.cyan, dash: '-'.bright.cyan })
106
-
107
- console.log (
108
- asTable ([ { foo: true, string: 'abcde', num: 42 },
109
- { foo: false, string: 'qwertyuiop'.bgMagenta.green.bright, num: 43 } ])
110
- ```
111
-
112
- <img width="179" alt="screen shot 2017-07-21 at 23 46 14" src="https://user-images.githubusercontent.com/1707/28481945-dcb0f8d6-6e6e-11e7-896e-dfad40662daf.png">
113
-
@@ -1,32 +0,0 @@
1
-
2
- declare function asTable(rows: any[][]): string
3
- declare function asTable(objects: {[column: string]: any}[]): string
4
- declare namespace asTable {
5
- interface Config<T> {
6
- maxTotalWidth: number
7
- minColumnWidths?: number[]
8
- delimiter?: string
9
- dash: string
10
- right: boolean
11
- print(value: T, key?: string | number): string
12
- title(value: string): string
13
- }
14
- type OmitPrint<T> = Pick<T, Exclude<keyof T, 'print'>> & {print: undefined}
15
- type ValidValueType<O, T> = {
16
- [P in keyof O]: T;
17
- }
18
- interface Formatter<T> extends Readonly<Config<T>> {
19
- (rows: T[][]): string
20
- <O extends ValidValueType<O, T>>(objects: O[]): string
21
- configure(cfg: Partial<OmitPrint<Config<any>>>): Formatter<T>
22
- configure<T>(cfg: Partial<Config<T>>): Formatter<T>
23
- }
24
- function configure<T = any>(cfg: Partial<Config<T>>): Formatter<T>
25
- const maxTotalWidth: number
26
- const print: StringConstructor
27
- const title: StringConstructor
28
- const dash: '-'
29
- const right: false
30
- }
31
-
32
- export = asTable
@@ -1,89 +0,0 @@
1
- "use strict";
2
-
3
- const O = Object
4
- , { first, strlen } = require ('printable-characters') // handles ANSI codes and invisible characters
5
- , limit = (s, n) => (first (s, n - 1) + '…')
6
-
7
- const asColumns = (rows, cfg_) => {
8
-
9
- const
10
-
11
- zip = (arrs, f) => arrs.reduce ((a, b) => b.map ((b, i) => [...a[i] || [], b]), []).map (args => f (...args)),
12
-
13
- /* Convert cell data to string (converting multiline text to singleline) */
14
-
15
- cells = rows.map (r => r.map (c => c.replace (/\n/g, '\\n'))),
16
-
17
- /* Compute column widths (per row) and max widths (per column) */
18
-
19
- cellWidths = cells.map (r => r.map (strlen)),
20
- maxWidths = zip (cellWidths, Math.max),
21
-
22
- /* Default config */
23
-
24
- cfg = O.assign ({
25
- delimiter: ' ',
26
- minColumnWidths: maxWidths.map (x => 0),
27
- maxTotalWidth: 0 }, cfg_),
28
-
29
- delimiterLength = strlen (cfg.delimiter),
30
-
31
- /* Project desired column widths, taking maxTotalWidth and minColumnWidths in account. */
32
-
33
- totalWidth = maxWidths.reduce ((a, b) => a + b, 0),
34
- relativeWidths = maxWidths.map (w => w / totalWidth),
35
- maxTotalWidth = cfg.maxTotalWidth - (delimiterLength * (maxWidths.length - 1)),
36
- excessWidth = Math.max (0, totalWidth - maxTotalWidth),
37
- computedWidths = zip ([cfg.minColumnWidths, maxWidths, relativeWidths],
38
- (min, max, relative) => Math.max (min, Math.floor (max - excessWidth * relative))),
39
-
40
- /* This is how many symbols we should pad or cut (per column). */
41
-
42
- restCellWidths = cellWidths.map (widths => zip ([computedWidths, widths], (a, b) => a - b))
43
-
44
- /* Perform final composition. */
45
-
46
- return zip ([cells, restCellWidths], (a, b) =>
47
- zip ([a, b], (str, w) => (w >= 0)
48
- ? (cfg.right ? (' '.repeat (w) + str) : (str + ' '.repeat (w)))
49
- : (limit (str, strlen (str) + w))).join (cfg.delimiter))
50
- }
51
-
52
- const asTable = cfg => O.assign (arr => {
53
-
54
- /* Print arrays */
55
-
56
- if (arr[0] && Array.isArray (arr[0])) {
57
- return asColumns (arr.map (r => r.map (
58
- (c, i) => (c === undefined) ? '' : cfg.print (c, i)
59
- )
60
- ),
61
- cfg).join ('\n')
62
- }
63
-
64
- /* Print objects */
65
-
66
- const colNames = [...new Set ([].concat (...arr.map (O.keys)))],
67
- columns = [colNames.map (cfg.title),
68
- ...arr.map (o => colNames.map (
69
- key => (o[key] === undefined) ? '' : cfg.print (o[key], key)
70
- )
71
- )
72
- ],
73
- lines = asColumns (columns, cfg)
74
-
75
- return (cfg.dash ? [lines[0], cfg.dash.repeat (strlen (lines[0])), ...lines.slice (1)] : lines).join ('\n')
76
-
77
- }, cfg, {
78
-
79
- configure: newConfig => asTable (O.assign ({}, cfg, newConfig)),
80
- })
81
-
82
- module.exports = asTable ({
83
-
84
- maxTotalWidth: Number.MAX_SAFE_INTEGER,
85
- print: String,
86
- title: String,
87
- dash: '-',
88
- right: false
89
- })
@@ -1,86 +0,0 @@
1
- "use strict";
2
-
3
- function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i]; return arr2; } else { return Array.from(arr); } }
4
-
5
- const O = Object;
6
-
7
- var _require = require('printable-characters');
8
-
9
- const first = _require.first,
10
- strlen = _require.strlen,
11
- limit = (s, n) => first(s, n - 1) + '…';
12
-
13
- const asColumns = (rows, cfg_) => {
14
-
15
- const zip = (arrs, f) => arrs.reduce((a, b) => b.map((b, i) => [].concat(_toConsumableArray(a[i] || []), [b])), []).map(args => f.apply(undefined, _toConsumableArray(args))),
16
-
17
-
18
- /* Convert cell data to string (converting multiline text to singleline) */
19
-
20
- cells = rows.map(r => r.map(c => c.replace(/\n/g, '\\n'))),
21
-
22
-
23
- /* Compute column widths (per row) and max widths (per column) */
24
-
25
- cellWidths = cells.map(r => r.map(strlen)),
26
- maxWidths = zip(cellWidths, Math.max),
27
-
28
-
29
- /* Default config */
30
-
31
- cfg = O.assign({
32
- delimiter: ' ',
33
- minColumnWidths: maxWidths.map(x => 0),
34
- maxTotalWidth: 0 }, cfg_),
35
- delimiterLength = strlen(cfg.delimiter),
36
-
37
-
38
- /* Project desired column widths, taking maxTotalWidth and minColumnWidths in account. */
39
-
40
- totalWidth = maxWidths.reduce((a, b) => a + b, 0),
41
- relativeWidths = maxWidths.map(w => w / totalWidth),
42
- maxTotalWidth = cfg.maxTotalWidth - delimiterLength * (maxWidths.length - 1),
43
- excessWidth = Math.max(0, totalWidth - maxTotalWidth),
44
- computedWidths = zip([cfg.minColumnWidths, maxWidths, relativeWidths], (min, max, relative) => Math.max(min, Math.floor(max - excessWidth * relative))),
45
-
46
-
47
- /* This is how many symbols we should pad or cut (per column). */
48
-
49
- restCellWidths = cellWidths.map(widths => zip([computedWidths, widths], (a, b) => a - b));
50
-
51
- /* Perform final composition. */
52
-
53
- return zip([cells, restCellWidths], (a, b) => zip([a, b], (str, w) => w >= 0 ? cfg.right ? ' '.repeat(w) + str : str + ' '.repeat(w) : limit(str, strlen(str) + w)).join(cfg.delimiter));
54
- };
55
-
56
- const asTable = cfg => O.assign(arr => {
57
- var _ref;
58
-
59
- /* Print arrays */
60
-
61
- if (arr[0] && Array.isArray(arr[0])) {
62
- return asColumns(arr.map(r => r.map((c, i) => c === undefined ? '' : cfg.print(c, i))), cfg).join('\n');
63
- }
64
-
65
- /* Print objects */
66
-
67
- const colNames = [].concat(_toConsumableArray(new Set((_ref = []).concat.apply(_ref, _toConsumableArray(arr.map(O.keys)))))),
68
- columns = [colNames.map(cfg.title)].concat(_toConsumableArray(arr.map(o => colNames.map(key => o[key] === undefined ? '' : cfg.print(o[key], key))))),
69
- lines = asColumns(columns, cfg);
70
-
71
- return (cfg.dash ? [lines[0], cfg.dash.repeat(strlen(lines[0]))].concat(_toConsumableArray(lines.slice(1))) : lines).join('\n');
72
- }, cfg, {
73
-
74
- configure: newConfig => asTable(O.assign({}, cfg, newConfig))
75
- });
76
-
77
- module.exports = asTable({
78
-
79
- maxTotalWidth: Number.MAX_SAFE_INTEGER,
80
- print: String,
81
- title: String,
82
- dash: '-',
83
- right: false
84
- });
85
-
86
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,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QVUsRUFBVixFQUFjLEdBQWQsRUFBbUIsU0FBbkIsQ0FBVDtBQUZwQixDQXpCZSxDQUF2Qjs7QUE4QkEsT0FBTyxPQUFQLEdBQWlCLFFBQVM7O0FBRXRCLG1CQUFlLE9BQU8sZ0JBRkE7QUFHdEIsV0FBTyxNQUhlO0FBSXRCLFdBQU8sTUFKZTtBQUt0QixVQUFNLEdBTGdCO0FBTXRCLFdBQU87QUFOZSxDQUFULENBQWpCIiwiZmlsZSI6ImFzLXRhYmxlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmNvbnN0IE8gPSBPYmplY3RcbiAgICAsIHsgZmlyc3QsIHN0cmxlbiB9ID0gcmVxdWlyZSAoJ3ByaW50YWJsZS1jaGFyYWN0ZXJzJykgLy8gaGFuZGxlcyBBTlNJIGNvZGVzIGFuZCBpbnZpc2libGUgY2hhcmFjdGVyc1xuICAgICwgbGltaXQgPSAocywgbikgPT4gKGZpcnN0IChzLCBuIC0gMSkgKyAn4oCmJylcblxuY29uc3QgYXNDb2x1bW5zID0gKHJvd3MsIGNmZ18pID0+IHtcbiAgICBcbiAgICBjb25zdFxuXG4gICAgICAgIHppcCA9IChhcnJzLCBmKSA9PiBhcnJzLnJlZHVjZSAoKGEsIGIpID0+IGIubWFwICgoYiwgaSkgPT4gWy4uLmFbaV0gfHwgW10sIGJdKSwgW10pLm1hcCAoYXJncyA9PiBmICguLi5hcmdzKSksXG5cbiAgICAvKiAgQ29udmVydCBjZWxsIGRhdGEgdG8gc3RyaW5nIChjb252ZXJ0aW5nIG11bHRpbGluZSB0ZXh0IHRvIHNpbmdsZWxpbmUpICovXG5cbiAgICAgICAgY2VsbHMgICAgICAgICAgID0gcm93cy5tYXAgKHIgPT4gci5tYXAgKGMgPT4gYy5yZXBsYWNlICgvXFxuL2csICdcXFxcbicpKSksXG5cbiAgICAvKiAgQ29tcHV0ZSBjb2x1bW4gd2lkdGhzIChwZXIgcm93KSBhbmQgbWF4IHdpZHRocyAocGVyIGNvbHVtbikgICAgICovXG5cbiAgICAgICAgY2VsbFdpZHRocyAgICAgID0gY2VsbHMubWFwIChyID0+IHIubWFwIChzdHJsZW4pKSxcbiAgICAgICAgbWF4V2lkdGhzICAgICAgID0gemlwIChjZWxsV2lkdGhzLCBNYXRoLm1heCksXG5cbiAgICAvKiAgRGVmYXVsdCBjb25maWcgICAgICovXG5cbiAgICAgICAgY2ZnICAgICAgICAgICAgID0gTy5hc3NpZ24gKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxpbWl0ZXI6ICcgICcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluQ29sdW1uV2lkdGhzOiBtYXhXaWR0aHMubWFwICh4ID0+IDApLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heFRvdGFsV2lkdGg6IDAgfSwgY2ZnXyksXG5cbiAgICAgICAgZGVsaW1pdGVyTGVuZ3RoID0gc3RybGVuIChjZmcuZGVsaW1pdGVyKSxcblxuICAgIC8qICBQcm9qZWN0IGRlc2lyZWQgY29sdW1uIHdpZHRocywgdGFraW5nIG1heFRvdGFsV2lkdGggYW5kIG1pbkNvbHVtbldpZHRocyBpbiBhY2NvdW50LiAgICAgKi9cblxuICAgICAgICB0b3RhbFdpZHRoICAgICAgPSBtYXhXaWR0aHMucmVkdWNlICgoYSwgYikgPT4gYSArIGIsIDApLFxuICAgICAgICByZWxhdGl2ZVdpZHRocyAgPSBtYXhXaWR0aHMubWFwICh3ID0+IHcgLyB0b3RhbFdpZHRoKSxcbiAgICAgICAgbWF4VG90YWxXaWR0aCAgID0gY2ZnLm1heFRvdGFsV2lkdGggLSAoZGVsaW1pdGVyTGVuZ3RoICogKG1heFdpZHRocy5sZW5ndGggLSAxKSksXG4gICAgICAgIGV4Y2Vzc1dpZHRoICAgICA9IE1hdGgubWF4ICgwLCB0b3RhbFdpZHRoIC0gbWF4VG90YWxXaWR0aCksXG4gICAgICAgIGNvbXB1dGVkV2lkdGhzICA9IHppcCAoW2NmZy5taW5Db2x1bW5XaWR0aHMsIG1heFdpZHRocywgcmVsYXRpdmVXaWR0aHNdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtaW4sIG1heCwgcmVsYXRpdmUpID0+IE1hdGgubWF4IChtaW4sIE1hdGguZmxvb3IgKG1heCAtIGV4Y2Vzc1dpZHRoICogcmVsYXRpdmUpKSksXG5cbiAgICAvKiAgVGhpcyBpcyBob3cgbWFueSBzeW1ib2xzIHdlIHNob3VsZCBwYWQgb3IgY3V0IChwZXIgY29sdW1uKS4gICovXG5cbiAgICAgICAgcmVzdENlbGxXaWR0aHMgID0gY2VsbFdpZHRocy5tYXAgKHdpZHRocyA9PiB6aXAgKFtjb21wdXRlZFdpZHRocywgd2lkdGhzXSwgKGEsIGIpID0+IGEgLSBiKSlcblxuICAgIC8qICBQZXJmb3JtIGZpbmFsIGNvbXBvc2l0aW9uLiAgICovXG5cbiAgICAgICAgcmV0dXJuIHppcCAoW2NlbGxzLCByZXN0Q2VsbFdpZHRoc10sIChhLCBiKSA9PlxuICAgICAgICAgICAgICAgIHppcCAoW2EsIGJdLCAoc3RyLCB3KSA9PiAodyA+PSAwKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IChjZmcucmlnaHQgPyAoJyAnLnJlcGVhdCAodykgKyBzdHIpIDogKHN0ciArICcgJy5yZXBlYXQgKHcpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAobGltaXQgKHN0ciwgc3RybGVuIChzdHIpICsgdykpKS5qb2luIChjZmcuZGVsaW1pdGVyKSlcbn1cblxuY29uc3QgYXNUYWJsZSA9IGNmZyA9PiBPLmFzc2lnbiAoYXJyID0+IHtcblxuLyogIFByaW50IGFycmF5cyAgKi9cblxuICAgIGlmIChhcnJbMF0gJiYgQXJyYXkuaXNBcnJheSAoYXJyWzBdKSkge1xuICAgICAgICByZXR1cm4gYXNDb2x1bW5zIChhcnIubWFwIChyID0+IHIubWFwIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjLCBpKSA9PiAoYyA9PT0gdW5kZWZpbmVkKSA/ICcnIDogY2ZnLnByaW50IChjLCBpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBjZmcpLmpvaW4gKCdcXG4nKVxuICAgIH1cblxuLyogIFByaW50IG9iamVjdHMgICAqL1xuXG4gICAgY29uc3QgY29sTmFtZXMgPSBbLi4ubmV3IFNldCAoW10uY29uY2F0ICguLi5hcnIubWFwIChPLmtleXMpKSldLFxuICAgICAgICAgIGNvbHVtbnMgID0gW2NvbE5hbWVzLm1hcCAoY2ZnLnRpdGxlKSxcbiAgICAgICAgICAgICAgICAgICAgICAuLi5hcnIubWFwIChvID0+IGNvbE5hbWVzLm1hcCAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5ID0+IChvW2tleV0gPT09IHVuZGVmaW5lZCkgPyAnJyA6IGNmZy5wcmludCAob1trZXldLCBrZXkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgIGxpbmVzICAgID0gYXNDb2x1bW5zIChjb2x1bW5zLCBjZmcpXG5cbiAgICByZXR1cm4gKGNmZy5kYXNoID8gW2xpbmVzWzBdLCBjZmcuZGFzaC5yZXBlYXQgKHN0cmxlbiAobGluZXNbMF0pKSwgLi4ubGluZXMuc2xpY2UgKDEpXSA6IGxpbmVzKS5qb2luICgnXFxuJylcblxufSwgY2ZnLCB7XG5cbiAgICBjb25maWd1cmU6IG5ld0NvbmZpZyA9PiBhc1RhYmxlIChPLmFzc2lnbiAoe30sIGNmZywgbmV3Q29uZmlnKSksXG59KVxuXG5tb2R1bGUuZXhwb3J0cyA9IGFzVGFibGUgKHtcblxuICAgIG1heFRvdGFsV2lkdGg6IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSLFxuICAgIHByaW50OiBTdHJpbmcsXG4gICAgdGl0bGU6IFN0cmluZyxcbiAgICBkYXNoOiAnLScsXG4gICAgcmlnaHQ6IGZhbHNlXG59KVxuIl19
@@ -1,67 +0,0 @@
1
- {
2
- "name": "as-table",
3
- "version": "1.0.55",
4
- "description": "A simple function that print objects / arrays as ASCII tables. Handles ANSI styling and weird 💩 Unicode emoji symbols – they won't break the layout.",
5
- "main": "build/as-table.js",
6
- "typings": "./as-table.d.ts",
7
- "scripts": {
8
- "lint": "eslint as-table.js",
9
- "lint-test": "eslint test.js",
10
- "babel": "babel as-table.js --source-maps inline --out-file ./build/as-table.js",
11
- "build": "npm run lint && npm run lint-test && npm run babel",
12
- "coveralls": "nyc report --reporter=text-lcov | coveralls",
13
- "test": "npm run build && env AS_TABLE_TEST_FILE='./build/as-table' nyc --reporter=html --reporter=text mocha --reporter spec",
14
- "autotest": "env AS_TABLE_TEST_FILE='./as-table' mocha --reporter spec --watch"
15
- },
16
- "repository": {
17
- "type": "git",
18
- "url": "https://github.com/xpl/as-table.git"
19
- },
20
- "keywords": [
21
- "ASCII",
22
- "table",
23
- "sheet",
24
- "grid",
25
- "print",
26
- "log",
27
- "print table",
28
- "object as table",
29
- "array as table",
30
- "text table",
31
- "array table",
32
- "object table",
33
- "array format",
34
- "columns",
35
- "as table",
36
- "tablefy",
37
- "columns",
38
- "stringify",
39
- "print object",
40
- "grid",
41
- "tty",
42
- "terminal",
43
- "console",
44
- "text",
45
- "layout"
46
- ],
47
- "author": "Vitaly Gordon <rocket.mind@gmail.com>",
48
- "license": "MIT",
49
- "bugs": {
50
- "url": "https://github.com/xpl/as-table/issues"
51
- },
52
- "homepage": "https://github.com/xpl/as-table",
53
- "devDependencies": {
54
- "ansicolor": "^1.1.81",
55
- "babel-cli": "^6.26.0",
56
- "babel-plugin-transform-es2015-destructuring": "^6.23.0",
57
- "babel-plugin-transform-es2015-spread": "^6.22.0",
58
- "coveralls": "^3.0.3",
59
- "eslint": "^4.19.1",
60
- "istanbul": "^0.4.5",
61
- "mocha": "^6.0.2",
62
- "nyc": "^13.3.0"
63
- },
64
- "dependencies": {
65
- "printable-characters": "^1.0.42"
66
- }
67
- }