cdk-common 2.0.28 → 2.0.32

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 (172) hide show
  1. package/.jsii +4 -4
  2. package/lib/main.js +1 -1
  3. package/node_modules/@aws-cdk/assert/LICENSE +1 -1
  4. package/node_modules/@aws-cdk/assert/NOTICE +1 -1
  5. package/node_modules/@aws-cdk/assert/package.json +9 -9
  6. package/node_modules/@aws-cdk/cfnspec/CHANGELOG.md +16 -0
  7. package/node_modules/@aws-cdk/cfnspec/build-tools/build.js +7 -53
  8. package/node_modules/@aws-cdk/cfnspec/build-tools/massage-spec.d.ts +0 -4
  9. package/node_modules/@aws-cdk/cfnspec/build-tools/massage-spec.js +2 -61
  10. package/node_modules/@aws-cdk/cfnspec/build-tools/patch-set.d.ts +25 -0
  11. package/node_modules/@aws-cdk/cfnspec/build-tools/patch-set.js +239 -0
  12. package/node_modules/@aws-cdk/cfnspec/build-tools/report-issues.d.ts +4 -0
  13. package/node_modules/@aws-cdk/cfnspec/build-tools/report-issues.js +44 -0
  14. package/node_modules/@aws-cdk/cfnspec/build-tools/split-spec-by-service.d.ts +1 -0
  15. package/node_modules/@aws-cdk/cfnspec/build-tools/split-spec-by-service.js +86 -0
  16. package/node_modules/@aws-cdk/cfnspec/build-tools/template/LICENSE +1 -1
  17. package/node_modules/@aws-cdk/cfnspec/build-tools/template/NOTICE +1 -1
  18. package/node_modules/@aws-cdk/cfnspec/build-tools/update-metrics.sh +2 -0
  19. package/node_modules/@aws-cdk/cfnspec/build-tools/update.sh +34 -18
  20. package/node_modules/@aws-cdk/cfnspec/build-tools/validate-cfn.d.ts +67 -0
  21. package/node_modules/@aws-cdk/cfnspec/build-tools/validate-cfn.js +285 -0
  22. package/node_modules/@aws-cdk/cfnspec/coverage/build-tools/index.html +49 -20
  23. package/node_modules/@aws-cdk/cfnspec/coverage/build-tools/massage-spec.ts.html +12 -166
  24. package/node_modules/@aws-cdk/cfnspec/coverage/build-tools/patch-set.ts.html +907 -0
  25. package/node_modules/@aws-cdk/cfnspec/coverage/build-tools/scrutiny.ts.html +1 -2
  26. package/node_modules/@aws-cdk/cfnspec/coverage/build-tools/validate-cfn.ts.html +1093 -0
  27. package/node_modules/@aws-cdk/cfnspec/coverage/index.html +34 -35
  28. package/node_modules/@aws-cdk/cfnspec/coverage/junit.xml +6272 -6232
  29. package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/build-tools/index.html +49 -20
  30. package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/build-tools/massage-spec.ts.html +12 -166
  31. package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/build-tools/patch-set.ts.html +907 -0
  32. package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/build-tools/scrutiny.ts.html +1 -2
  33. package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/build-tools/validate-cfn.ts.html +1093 -0
  34. package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/index.html +34 -35
  35. package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/lib/canned-metrics/canned-metrics-schema.ts.html +2 -3
  36. package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/lib/canned-metrics/index.html +1 -2
  37. package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/lib/canned-metrics.ts.html +22 -23
  38. package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/lib/index.html +19 -20
  39. package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/lib/index.ts.html +96 -25
  40. package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/lib/schema/augmentation.ts.html +5 -6
  41. package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/lib/schema/base-types.ts.html +12 -13
  42. package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/lib/schema/index.html +7 -8
  43. package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/lib/schema/index.ts.html +11 -12
  44. package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/lib/schema/property.ts.html +39 -40
  45. package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/lib/schema/resource-type.ts.html +20 -21
  46. package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/lib/schema/specification.ts.html +2 -3
  47. package/node_modules/@aws-cdk/cfnspec/coverage/lcov.info +744 -346
  48. package/node_modules/@aws-cdk/cfnspec/coverage/lib/canned-metrics/canned-metrics-schema.ts.html +2 -3
  49. package/node_modules/@aws-cdk/cfnspec/coverage/lib/canned-metrics/index.html +1 -2
  50. package/node_modules/@aws-cdk/cfnspec/coverage/lib/canned-metrics.ts.html +22 -23
  51. package/node_modules/@aws-cdk/cfnspec/coverage/lib/index.html +19 -20
  52. package/node_modules/@aws-cdk/cfnspec/coverage/lib/index.ts.html +96 -25
  53. package/node_modules/@aws-cdk/cfnspec/coverage/lib/schema/augmentation.ts.html +5 -6
  54. package/node_modules/@aws-cdk/cfnspec/coverage/lib/schema/base-types.ts.html +12 -13
  55. package/node_modules/@aws-cdk/cfnspec/coverage/lib/schema/index.html +7 -8
  56. package/node_modules/@aws-cdk/cfnspec/coverage/lib/schema/index.ts.html +11 -12
  57. package/node_modules/@aws-cdk/cfnspec/coverage/lib/schema/property.ts.html +39 -40
  58. package/node_modules/@aws-cdk/cfnspec/coverage/lib/schema/resource-type.ts.html +20 -21
  59. package/node_modules/@aws-cdk/cfnspec/coverage/lib/schema/specification.ts.html +2 -3
  60. package/node_modules/@aws-cdk/cfnspec/lib/canned-metrics/README.md +6 -1
  61. package/node_modules/@aws-cdk/cfnspec/lib/canned-metrics/services.json +19997 -10215
  62. package/node_modules/@aws-cdk/cfnspec/lib/index.d.ts +8 -0
  63. package/node_modules/@aws-cdk/cfnspec/lib/index.js +25 -2
  64. package/node_modules/@aws-cdk/cfnspec/lib/schema/docs.d.ts +20 -0
  65. package/node_modules/@aws-cdk/cfnspec/lib/schema/docs.js +3 -0
  66. package/node_modules/@aws-cdk/cfnspec/lib/schema/index.d.ts +1 -0
  67. package/node_modules/@aws-cdk/cfnspec/lib/schema/index.js +2 -1
  68. package/node_modules/@aws-cdk/cfnspec/package.json +5 -5
  69. package/node_modules/@aws-cdk/cfnspec/spec/cfn-docs.json +38910 -0
  70. package/node_modules/@aws-cdk/cfnspec/spec/cfn-lint.json +3 -3
  71. package/node_modules/@aws-cdk/cfnspec/spec/specification.json +319 -311
  72. package/node_modules/@aws-cdk/cfnspec/tsconfig.tsbuildinfo +285 -179
  73. package/node_modules/@aws-cdk/cloudformation-diff/LICENSE +1 -1
  74. package/node_modules/@aws-cdk/cloudformation-diff/NOTICE +1 -1
  75. package/node_modules/@aws-cdk/cloudformation-diff/package.json +6 -6
  76. package/node_modules/@types/concat-stream/node_modules/@types/node/README.md +1 -1
  77. package/node_modules/@types/concat-stream/node_modules/@types/node/package.json +2 -2
  78. package/node_modules/@types/concat-stream/node_modules/@types/node/process.d.ts +1 -1
  79. package/node_modules/@types/form-data/node_modules/@types/node/README.md +1 -1
  80. package/node_modules/@types/form-data/node_modules/@types/node/package.json +2 -2
  81. package/node_modules/@types/form-data/node_modules/@types/node/process.d.ts +1 -1
  82. package/node_modules/graceful-fs/package.json +1 -1
  83. package/node_modules/graceful-fs/polyfills.js +4 -2
  84. package/node_modules/table/README.md +79 -1
  85. package/node_modules/table/dist/src/alignSpanningCell.d.ts +7 -0
  86. package/node_modules/table/dist/src/alignSpanningCell.js +44 -0
  87. package/node_modules/table/dist/src/alignSpanningCell.js.map +1 -0
  88. package/node_modules/table/dist/src/alignString.js.map +1 -0
  89. package/node_modules/table/dist/src/alignTableData.js +7 -1
  90. package/node_modules/table/dist/src/alignTableData.js.map +1 -0
  91. package/node_modules/table/dist/src/calculateCellHeight.js.map +1 -0
  92. package/node_modules/table/dist/src/calculateMaximumColumnWidths.d.ts +7 -0
  93. package/node_modules/table/dist/src/calculateMaximumColumnWidths.js +36 -0
  94. package/node_modules/table/dist/src/calculateMaximumColumnWidths.js.map +1 -0
  95. package/node_modules/table/dist/src/calculateOutputColumnWidths.d.ts +2 -0
  96. package/node_modules/table/dist/src/calculateOutputColumnWidths.js +10 -0
  97. package/node_modules/table/dist/src/calculateOutputColumnWidths.js.map +1 -0
  98. package/node_modules/table/dist/src/calculateRowHeights.js +28 -5
  99. package/node_modules/table/dist/src/calculateRowHeights.js.map +1 -0
  100. package/node_modules/table/dist/src/calculateSpanningCellWidth.d.ts +3 -0
  101. package/node_modules/table/dist/src/calculateSpanningCellWidth.js +26 -0
  102. package/node_modules/table/dist/src/calculateSpanningCellWidth.js.map +1 -0
  103. package/node_modules/table/dist/src/createStream.js +2 -1
  104. package/node_modules/table/dist/src/createStream.js.map +1 -0
  105. package/node_modules/table/dist/src/drawBorder.d.ts +27 -19
  106. package/node_modules/table/dist/src/drawBorder.js +164 -63
  107. package/node_modules/table/dist/src/drawBorder.js.map +1 -0
  108. package/node_modules/table/dist/src/drawContent.d.ts +10 -5
  109. package/node_modules/table/dist/src/drawContent.js +31 -7
  110. package/node_modules/table/dist/src/drawContent.js.map +1 -0
  111. package/node_modules/table/dist/src/drawRow.d.ts +6 -2
  112. package/node_modules/table/dist/src/drawRow.js +6 -2
  113. package/node_modules/table/dist/src/drawRow.js.map +1 -0
  114. package/node_modules/table/dist/src/drawTable.d.ts +1 -1
  115. package/node_modules/table/dist/src/drawTable.js +10 -18
  116. package/node_modules/table/dist/src/drawTable.js.map +1 -0
  117. package/node_modules/table/dist/src/generated/validators.d.ts +2 -2
  118. package/node_modules/table/dist/src/generated/validators.js +746 -223
  119. package/node_modules/table/dist/src/generated/validators.js.map +1 -0
  120. package/node_modules/table/dist/src/getBorderCharacters.js +16 -0
  121. package/node_modules/table/dist/src/getBorderCharacters.js.map +1 -0
  122. package/node_modules/table/dist/src/index.js.map +1 -0
  123. package/node_modules/table/dist/src/injectHeaderConfig.d.ts +3 -0
  124. package/node_modules/table/dist/src/injectHeaderConfig.js +29 -0
  125. package/node_modules/table/dist/src/injectHeaderConfig.js.map +1 -0
  126. package/node_modules/table/dist/src/makeRangeConfig.d.ts +3 -0
  127. package/node_modules/table/dist/src/makeRangeConfig.js +18 -0
  128. package/node_modules/table/dist/src/makeRangeConfig.js.map +1 -0
  129. package/node_modules/table/dist/src/makeStreamConfig.js.map +1 -0
  130. package/node_modules/table/dist/src/makeTableConfig.d.ts +2 -2
  131. package/node_modules/table/dist/src/makeTableConfig.js +26 -29
  132. package/node_modules/table/dist/src/makeTableConfig.js.map +1 -0
  133. package/node_modules/table/dist/src/mapDataUsingRowHeights.d.ts +2 -0
  134. package/node_modules/table/dist/src/mapDataUsingRowHeights.js +17 -10
  135. package/node_modules/table/dist/src/mapDataUsingRowHeights.js.map +1 -0
  136. package/node_modules/table/dist/src/padTableData.js +7 -1
  137. package/node_modules/table/dist/src/padTableData.js.map +1 -0
  138. package/node_modules/table/dist/src/schemas/config.json +95 -0
  139. package/node_modules/table/dist/src/schemas/shared.json +139 -0
  140. package/node_modules/table/dist/src/schemas/streamConfig.json +25 -0
  141. package/node_modules/table/dist/src/spanningCellManager.d.ts +21 -0
  142. package/node_modules/table/dist/src/spanningCellManager.js +86 -0
  143. package/node_modules/table/dist/src/spanningCellManager.js.map +1 -0
  144. package/node_modules/table/dist/src/stringifyTableData.js.map +1 -0
  145. package/node_modules/table/dist/src/table.js +9 -5
  146. package/node_modules/table/dist/src/table.js.map +1 -0
  147. package/node_modules/table/dist/src/truncateTableData.d.ts +2 -2
  148. package/node_modules/table/dist/src/truncateTableData.js +2 -2
  149. package/node_modules/table/dist/src/truncateTableData.js.map +1 -0
  150. package/node_modules/table/dist/src/types/api.d.ts +21 -5
  151. package/node_modules/table/dist/src/types/api.js.map +1 -0
  152. package/node_modules/table/dist/src/types/internal.js.map +1 -0
  153. package/node_modules/table/dist/src/utils.d.ts +10 -1
  154. package/node_modules/table/dist/src/utils.js +51 -1
  155. package/node_modules/table/dist/src/utils.js.map +1 -0
  156. package/node_modules/table/dist/src/validateConfig.js.map +1 -0
  157. package/node_modules/table/dist/src/validateSpanningCellConfig.d.ts +3 -0
  158. package/node_modules/table/dist/src/validateSpanningCellConfig.js +46 -0
  159. package/node_modules/table/dist/src/validateSpanningCellConfig.js.map +1 -0
  160. package/node_modules/table/dist/src/validateTableData.js.map +1 -0
  161. package/node_modules/table/dist/src/wrapCell.js.map +1 -0
  162. package/node_modules/table/dist/src/wrapString.js.map +1 -0
  163. package/node_modules/table/dist/src/wrapWord.js +2 -2
  164. package/node_modules/table/dist/src/wrapWord.js.map +1 -0
  165. package/node_modules/table/package.json +2 -3
  166. package/package.json +6 -6
  167. package/node_modules/table/dist/src/calculateCellWidths.d.ts +0 -5
  168. package/node_modules/table/dist/src/calculateCellWidths.js +0 -17
  169. package/node_modules/table/dist/src/calculateColumnWidths.d.ts +0 -6
  170. package/node_modules/table/dist/src/calculateColumnWidths.js +0 -17
  171. package/node_modules/table/dist/src/drawHeader.d.ts +0 -2
  172. package/node_modules/table/dist/src/drawHeader.js +0 -30
@@ -0,0 +1,139 @@
1
+ {
2
+ "$id": "shared.json",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "definitions": {
5
+ "columns": {
6
+ "oneOf": [
7
+ {
8
+ "type": "object",
9
+ "patternProperties": {
10
+ "^[0-9]+$": {
11
+ "$ref": "#/definitions/column"
12
+ }
13
+ },
14
+ "additionalProperties": false
15
+ },
16
+ {
17
+ "type": "array",
18
+ "items": {
19
+ "$ref": "#/definitions/column"
20
+ }
21
+ }
22
+ ]
23
+ },
24
+ "column": {
25
+ "type": "object",
26
+ "properties": {
27
+ "alignment": {
28
+ "$ref": "#/definitions/alignment"
29
+ },
30
+ "verticalAlignment": {
31
+ "$ref": "#/definitions/verticalAlignment"
32
+ },
33
+ "width": {
34
+ "type": "integer",
35
+ "minimum": 1
36
+ },
37
+ "wrapWord": {
38
+ "type": "boolean"
39
+ },
40
+ "truncate": {
41
+ "type": "integer"
42
+ },
43
+ "paddingLeft": {
44
+ "type": "integer"
45
+ },
46
+ "paddingRight": {
47
+ "type": "integer"
48
+ }
49
+ },
50
+ "additionalProperties": false
51
+ },
52
+ "borders": {
53
+ "type": "object",
54
+ "properties": {
55
+ "topBody": {
56
+ "$ref": "#/definitions/border"
57
+ },
58
+ "topJoin": {
59
+ "$ref": "#/definitions/border"
60
+ },
61
+ "topLeft": {
62
+ "$ref": "#/definitions/border"
63
+ },
64
+ "topRight": {
65
+ "$ref": "#/definitions/border"
66
+ },
67
+ "bottomBody": {
68
+ "$ref": "#/definitions/border"
69
+ },
70
+ "bottomJoin": {
71
+ "$ref": "#/definitions/border"
72
+ },
73
+ "bottomLeft": {
74
+ "$ref": "#/definitions/border"
75
+ },
76
+ "bottomRight": {
77
+ "$ref": "#/definitions/border"
78
+ },
79
+ "bodyLeft": {
80
+ "$ref": "#/definitions/border"
81
+ },
82
+ "bodyRight": {
83
+ "$ref": "#/definitions/border"
84
+ },
85
+ "bodyJoin": {
86
+ "$ref": "#/definitions/border"
87
+ },
88
+ "headerJoin": {
89
+ "$ref": "#/definitions/border"
90
+ },
91
+ "joinBody": {
92
+ "$ref": "#/definitions/border"
93
+ },
94
+ "joinLeft": {
95
+ "$ref": "#/definitions/border"
96
+ },
97
+ "joinRight": {
98
+ "$ref": "#/definitions/border"
99
+ },
100
+ "joinJoin": {
101
+ "$ref": "#/definitions/border"
102
+ },
103
+ "joinMiddleUp": {
104
+ "$ref": "#/definitions/border"
105
+ },
106
+ "joinMiddleDown": {
107
+ "$ref": "#/definitions/border"
108
+ },
109
+ "joinMiddleLeft": {
110
+ "$ref": "#/definitions/border"
111
+ },
112
+ "joinMiddleRight": {
113
+ "$ref": "#/definitions/border"
114
+ }
115
+ },
116
+ "additionalProperties": false
117
+ },
118
+ "border": {
119
+ "type": "string"
120
+ },
121
+ "alignment": {
122
+ "type": "string",
123
+ "enum": [
124
+ "left",
125
+ "right",
126
+ "center",
127
+ "justify"
128
+ ]
129
+ },
130
+ "verticalAlignment": {
131
+ "type": "string",
132
+ "enum": [
133
+ "top",
134
+ "middle",
135
+ "bottom"
136
+ ]
137
+ }
138
+ }
139
+ }
@@ -0,0 +1,25 @@
1
+ {
2
+ "$id": "streamConfig.json",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "type": "object",
5
+ "properties": {
6
+ "border": {
7
+ "$ref": "shared.json#/definitions/borders"
8
+ },
9
+ "columns": {
10
+ "$ref": "shared.json#/definitions/columns"
11
+ },
12
+ "columnDefault": {
13
+ "$ref": "shared.json#/definitions/column"
14
+ },
15
+ "columnCount": {
16
+ "type": "integer",
17
+ "minimum": 1
18
+ },
19
+ "drawVerticalLine": {
20
+ "typeof": "function"
21
+ }
22
+ },
23
+ "required": ["columnDefault", "columnCount"],
24
+ "additionalProperties": false
25
+ }
@@ -0,0 +1,21 @@
1
+ import type { DrawHorizontalLine, DrawVerticalLine, SpanningCellConfig } from './types/api';
2
+ import type { CellCoordinates, ColumnConfig, ResolvedRangeConfig, Row } from './types/internal';
3
+ export declare type SpanningCellManager = {
4
+ getContainingRange: (cell: CellCoordinates, options?: {
5
+ mapped: true;
6
+ }) => ResolvedRangeConfig | undefined;
7
+ inSameRange: (cell1: CellCoordinates, cell2: CellCoordinates) => boolean;
8
+ rowHeights: number[];
9
+ setRowHeights: (rowHeights: number[]) => void;
10
+ };
11
+ export declare type SpanningCellParameters = {
12
+ spanningCellConfigs: SpanningCellConfig[];
13
+ rows: Row[];
14
+ columnsConfig: ColumnConfig[];
15
+ drawVerticalLine: DrawVerticalLine;
16
+ drawHorizontalLine: DrawHorizontalLine;
17
+ };
18
+ export declare type SpanningCellContext = SpanningCellParameters & {
19
+ rowHeights: number[];
20
+ };
21
+ export declare const createSpanningCellManager: (parameters: SpanningCellParameters) => SpanningCellManager;
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createSpanningCellManager = void 0;
4
+ const alignSpanningCell_1 = require("./alignSpanningCell");
5
+ const calculateSpanningCellWidth_1 = require("./calculateSpanningCellWidth");
6
+ const makeRangeConfig_1 = require("./makeRangeConfig");
7
+ const utils_1 = require("./utils");
8
+ const findRangeConfig = (cell, rangeConfigs) => {
9
+ return rangeConfigs.find((rangeCoordinate) => {
10
+ return (0, utils_1.isCellInRange)(cell, rangeCoordinate);
11
+ });
12
+ };
13
+ const getContainingRange = (rangeConfig, context) => {
14
+ const width = (0, calculateSpanningCellWidth_1.calculateSpanningCellWidth)(rangeConfig, context);
15
+ const wrappedContent = (0, alignSpanningCell_1.wrapRangeContent)(rangeConfig, width, context);
16
+ const alignedContent = (0, alignSpanningCell_1.alignVerticalRangeContent)(rangeConfig, wrappedContent, context);
17
+ const getCellContent = (rowIndex) => {
18
+ const { topLeft } = rangeConfig;
19
+ const { drawHorizontalLine, rowHeights } = context;
20
+ const totalWithinHorizontalBorderHeight = rowIndex - topLeft.row;
21
+ const totalHiddenHorizontalBorderHeight = (0, utils_1.sequence)(topLeft.row + 1, rowIndex).filter((index) => {
22
+ /* istanbul ignore next */
23
+ return !(drawHorizontalLine === null || drawHorizontalLine === void 0 ? void 0 : drawHorizontalLine(index, rowHeights.length));
24
+ }).length;
25
+ const offset = (0, utils_1.sumArray)(rowHeights.slice(topLeft.row, rowIndex)) + totalWithinHorizontalBorderHeight - totalHiddenHorizontalBorderHeight;
26
+ return alignedContent.slice(offset, offset + rowHeights[rowIndex]);
27
+ };
28
+ const getBorderContent = (borderIndex) => {
29
+ const { topLeft } = rangeConfig;
30
+ const offset = (0, utils_1.sumArray)(context.rowHeights.slice(topLeft.row, borderIndex)) + (borderIndex - topLeft.row - 1);
31
+ return alignedContent[offset];
32
+ };
33
+ return {
34
+ ...rangeConfig,
35
+ extractBorderContent: getBorderContent,
36
+ extractCellContent: getCellContent,
37
+ height: wrappedContent.length,
38
+ width,
39
+ };
40
+ };
41
+ const inSameRange = (cell1, cell2, ranges) => {
42
+ const range1 = findRangeConfig(cell1, ranges);
43
+ const range2 = findRangeConfig(cell2, ranges);
44
+ if (range1 && range2) {
45
+ return (0, utils_1.areCellEqual)(range1.topLeft, range2.topLeft);
46
+ }
47
+ return false;
48
+ };
49
+ const hashRange = (range) => {
50
+ const { row, col } = range.topLeft;
51
+ return `${row}/${col}`;
52
+ };
53
+ const createSpanningCellManager = (parameters) => {
54
+ const { spanningCellConfigs, columnsConfig } = parameters;
55
+ const ranges = spanningCellConfigs.map((config) => {
56
+ return (0, makeRangeConfig_1.makeRangeConfig)(config, columnsConfig);
57
+ });
58
+ const rangeCache = {};
59
+ let rowHeights = [];
60
+ return { getContainingRange: (cell, options) => {
61
+ var _a;
62
+ const originalRow = (options === null || options === void 0 ? void 0 : options.mapped) ? (0, utils_1.findOriginalRowIndex)(rowHeights, cell.row) : cell.row;
63
+ const range = findRangeConfig({ ...cell,
64
+ row: originalRow }, ranges);
65
+ if (!range) {
66
+ return undefined;
67
+ }
68
+ if (rowHeights.length === 0) {
69
+ return getContainingRange(range, { ...parameters,
70
+ rowHeights });
71
+ }
72
+ const hash = hashRange(range);
73
+ (_a = rangeCache[hash]) !== null && _a !== void 0 ? _a : (rangeCache[hash] = getContainingRange(range, { ...parameters,
74
+ rowHeights }));
75
+ return rangeCache[hash];
76
+ },
77
+ inSameRange: (cell1, cell2) => {
78
+ return inSameRange(cell1, cell2, ranges);
79
+ },
80
+ rowHeights,
81
+ setRowHeights: (_rowHeights) => {
82
+ rowHeights = _rowHeights;
83
+ } };
84
+ };
85
+ exports.createSpanningCellManager = createSpanningCellManager;
86
+ //# sourceMappingURL=spanningCellManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spanningCellManager.js","sourceRoot":"","sources":["../../src/spanningCellManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stringifyTableData.js","sourceRoot":"","sources":["../../src/stringifyTableData.ts"],"names":[],"mappings":";;;AAGA,mCAEiB;AAEV,MAAM,kBAAkB,GAAG,CAAC,IAAiB,EAAS,EAAE;IAC7D,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACxB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACxB,OAAO,IAAA,uBAAe,EAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AANW,QAAA,kBAAkB,sBAM7B"}
@@ -2,26 +2,30 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.table = void 0;
4
4
  const alignTableData_1 = require("./alignTableData");
5
- const calculateCellWidths_1 = require("./calculateCellWidths");
5
+ const calculateOutputColumnWidths_1 = require("./calculateOutputColumnWidths");
6
6
  const calculateRowHeights_1 = require("./calculateRowHeights");
7
7
  const drawTable_1 = require("./drawTable");
8
+ const injectHeaderConfig_1 = require("./injectHeaderConfig");
8
9
  const makeTableConfig_1 = require("./makeTableConfig");
9
10
  const mapDataUsingRowHeights_1 = require("./mapDataUsingRowHeights");
10
11
  const padTableData_1 = require("./padTableData");
11
12
  const stringifyTableData_1 = require("./stringifyTableData");
12
13
  const truncateTableData_1 = require("./truncateTableData");
14
+ const utils_1 = require("./utils");
13
15
  const validateTableData_1 = require("./validateTableData");
14
16
  const table = (data, userConfig = {}) => {
15
17
  (0, validateTableData_1.validateTableData)(data);
16
18
  let rows = (0, stringifyTableData_1.stringifyTableData)(data);
17
- const config = (0, makeTableConfig_1.makeTableConfig)(rows, userConfig);
18
- rows = (0, truncateTableData_1.truncateTableData)(rows, config);
19
+ const [injectedRows, injectedSpanningCellConfig] = (0, injectHeaderConfig_1.injectHeaderConfig)(rows, userConfig);
20
+ const config = (0, makeTableConfig_1.makeTableConfig)(injectedRows, userConfig, injectedSpanningCellConfig);
21
+ rows = (0, truncateTableData_1.truncateTableData)(injectedRows, (0, utils_1.extractTruncates)(config));
19
22
  const rowHeights = (0, calculateRowHeights_1.calculateRowHeights)(rows, config);
23
+ config.spanningCellManager.setRowHeights(rowHeights);
20
24
  rows = (0, mapDataUsingRowHeights_1.mapDataUsingRowHeights)(rows, rowHeights, config);
21
25
  rows = (0, alignTableData_1.alignTableData)(rows, config);
22
26
  rows = (0, padTableData_1.padTableData)(rows, config);
23
- const cellWidths = (0, calculateCellWidths_1.calculateCellWidths)(rows[0]);
24
- return (0, drawTable_1.drawTable)(rows, cellWidths, rowHeights, config);
27
+ const outputColumnWidths = (0, calculateOutputColumnWidths_1.calculateOutputColumnWidths)(config);
28
+ return (0, drawTable_1.drawTable)(rows, outputColumnWidths, rowHeights, config);
25
29
  };
26
30
  exports.table = table;
27
31
  //# sourceMappingURL=table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.js","sourceRoot":"","sources":["../../src/table.ts"],"names":[],"mappings":";;;AAAA,qDAE0B;AAC1B,+EAEuC;AACvC,+DAE+B;AAC/B,2CAEqB;AACrB,6DAE8B;AAC9B,uDAE2B;AAC3B,qEAEkC;AAClC,iDAEwB;AACxB,6DAE8B;AAC9B,2DAE6B;AAI7B,mCAEiB;AACjB,2DAE6B;AAEtB,MAAM,KAAK,GAAG,CAAC,IAAiB,EAAE,aAA8B,EAAE,EAAU,EAAE;IACnF,IAAA,qCAAiB,EAAC,IAAI,CAAC,CAAC;IAExB,IAAI,IAAI,GAAG,IAAA,uCAAkB,EAAC,IAAI,CAAC,CAAC;IAEpC,MAAM,CAAC,YAAY,EAAE,0BAA0B,CAAC,GAAG,IAAA,uCAAkB,EAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAExF,MAAM,MAAM,GAAG,IAAA,iCAAe,EAAC,YAAY,EAAE,UAAU,EAAE,0BAA0B,CAAC,CAAC;IAErF,IAAI,GAAG,IAAA,qCAAiB,EAAC,YAAY,EAAE,IAAA,wBAAgB,EAAC,MAAM,CAAC,CAAC,CAAC;IAEjE,MAAM,UAAU,GAAG,IAAA,yCAAmB,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAErD,MAAM,CAAC,mBAAmB,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IAErD,IAAI,GAAG,IAAA,+CAAsB,EAAC,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IACxD,IAAI,GAAG,IAAA,+BAAc,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACpC,IAAI,GAAG,IAAA,2BAAY,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAElC,MAAM,kBAAkB,GAAG,IAAA,yDAA2B,EAAC,MAAM,CAAC,CAAC;IAE/D,OAAO,IAAA,qBAAS,EAAC,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;AACjE,CAAC,CAAC;AAtBW,QAAA,KAAK,SAsBhB"}
@@ -1,6 +1,6 @@
1
- import type { BaseConfig, Row } from './types/internal';
1
+ import type { Row } from './types/internal';
2
2
  export declare const truncateString: (input: string, length: number) => string;
3
3
  /**
4
4
  * @todo Make it work with ASCII content.
5
5
  */
6
- export declare const truncateTableData: (rows: Row[], config: BaseConfig) => Row[];
6
+ export declare const truncateTableData: (rows: Row[], truncates: number[]) => Row[];
@@ -13,10 +13,10 @@ exports.truncateString = truncateString;
13
13
  /**
14
14
  * @todo Make it work with ASCII content.
15
15
  */
16
- const truncateTableData = (rows, config) => {
16
+ const truncateTableData = (rows, truncates) => {
17
17
  return rows.map((cells) => {
18
18
  return cells.map((cell, cellIndex) => {
19
- return (0, exports.truncateString)(cell, config.columns[cellIndex].truncate);
19
+ return (0, exports.truncateString)(cell, truncates[cellIndex]);
20
20
  });
21
21
  });
22
22
  };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"truncateTableData.js","sourceRoot":"","sources":["../../src/truncateTableData.ts"],"names":[],"mappings":";;;;;;AAAA,sEAAuC;AAKhC,MAAM,cAAc,GAAG,CAAC,KAAa,EAAE,MAAc,EAAU,EAAE;IACtE,OAAO,IAAA,yBAAQ,EAAC,KAAK,EAAE,EAAC,MAAM;QAC5B,QAAQ,EAAE,GAAG,EAAC,CAAC,CAAC;AACpB,CAAC,CAAC;AAHW,QAAA,cAAc,kBAGzB;AAEF;;GAEG;AACI,MAAM,iBAAiB,GAAG,CAAC,IAAW,EAAE,SAAmB,EAAS,EAAE;IAC3E,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACxB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE;YACnC,OAAO,IAAA,sBAAc,EAAC,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AANW,QAAA,iBAAiB,qBAM5B"}
@@ -14,6 +14,10 @@ export declare type BorderUserConfig = {
14
14
  readonly joinRight?: string;
15
15
  readonly joinBody?: string;
16
16
  readonly joinJoin?: string;
17
+ readonly joinMiddleUp?: string;
18
+ readonly joinMiddleDown?: string;
19
+ readonly joinMiddleLeft?: string;
20
+ readonly joinMiddleRight?: string;
17
21
  readonly headerJoin?: string;
18
22
  readonly bodyRight?: string;
19
23
  readonly bodyLeft?: string;
@@ -22,7 +26,7 @@ export declare type BorderUserConfig = {
22
26
  export declare type BorderConfig = Required<BorderUserConfig>;
23
27
  export declare type Alignment = 'center' | 'justify' | 'left' | 'right';
24
28
  export declare type VerticalAlignment = 'bottom' | 'middle' | 'top';
25
- export declare type ColumnUserConfig = {
29
+ export declare type CellUserConfig = {
26
30
  /**
27
31
  * Cell content horizontal alignment (default: left)
28
32
  */
@@ -31,10 +35,6 @@ export declare type ColumnUserConfig = {
31
35
  * Cell content vertical alignment (default: top)
32
36
  */
33
37
  readonly verticalAlignment?: VerticalAlignment;
34
- /**
35
- * Column width (default: auto calculation based on the cell content)
36
- */
37
- readonly width?: number;
38
38
  /**
39
39
  * Number of characters are which the content will be truncated (default: Infinity)
40
40
  */
@@ -52,6 +52,15 @@ export declare type ColumnUserConfig = {
52
52
  */
53
53
  readonly wrapWord?: boolean;
54
54
  };
55
+ export declare type ColumnUserConfig = CellUserConfig & {
56
+ /**
57
+ * Column width (default: auto calculation based on the cell content)
58
+ */
59
+ readonly width?: number;
60
+ };
61
+ /**
62
+ * @deprecated Use spanning cell API instead
63
+ */
55
64
  export declare type HeaderUserConfig = Omit<ColumnUserConfig, 'verticalAlignment' | 'width'> & {
56
65
  readonly content: string;
57
66
  };
@@ -90,6 +99,13 @@ export declare type TableUserConfig = BaseUserConfig & {
90
99
  * Horizontal lines inside the table are not drawn.
91
100
  */
92
101
  readonly singleLine?: boolean;
102
+ readonly spanningCells?: SpanningCellConfig[];
103
+ };
104
+ export declare type SpanningCellConfig = CellUserConfig & {
105
+ readonly row: number;
106
+ readonly col: number;
107
+ readonly rowSpan?: number;
108
+ readonly colSpan?: number;
93
109
  };
94
110
  export declare type StreamUserConfig = BaseUserConfig & {
95
111
  /**
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/types/api.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/types/internal.ts"],"names":[],"mappings":""}
@@ -1 +1,10 @@
1
- export {};
1
+ import type { SpanningCellConfig } from './types/api';
2
+ import type { BaseConfig, CellCoordinates, RangeCoordinate } from './types/internal';
3
+ export declare const sequence: (start: number, end: number) => number[];
4
+ export declare const sumArray: (array: number[]) => number;
5
+ export declare const extractTruncates: (config: BaseConfig) => number[];
6
+ export declare const flatten: <T>(array: T[][]) => T[];
7
+ export declare const findOriginalRowIndex: (mappedRowHeights: number[], mappedRowIndex: number) => number;
8
+ export declare const calculateRangeCoordinate: (spanningCellConfig: SpanningCellConfig) => RangeCoordinate;
9
+ export declare const areCellEqual: (cell1: CellCoordinates, cell2: CellCoordinates) => boolean;
10
+ export declare const isCellInRange: (cell: CellCoordinates, { topLeft, bottomRight }: RangeCoordinate) => boolean;
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.distributeUnevenly = exports.countSpaceSequence = exports.groupBySizes = exports.makeBorderConfig = exports.splitAnsi = exports.normalizeString = void 0;
6
+ exports.isCellInRange = exports.areCellEqual = exports.calculateRangeCoordinate = exports.findOriginalRowIndex = exports.flatten = exports.extractTruncates = exports.sumArray = exports.sequence = exports.distributeUnevenly = exports.countSpaceSequence = exports.groupBySizes = exports.makeBorderConfig = exports.splitAnsi = exports.normalizeString = void 0;
7
7
  const slice_ansi_1 = __importDefault(require("slice-ansi"));
8
8
  const string_width_1 = __importDefault(require("string-width"));
9
9
  const strip_ansi_1 = __importDefault(require("strip-ansi"));
@@ -90,4 +90,54 @@ const distributeUnevenly = (sum, length) => {
90
90
  });
91
91
  };
92
92
  exports.distributeUnevenly = distributeUnevenly;
93
+ const sequence = (start, end) => {
94
+ return Array.from({ length: end - start + 1 }, (_, index) => {
95
+ return index + start;
96
+ });
97
+ };
98
+ exports.sequence = sequence;
99
+ const sumArray = (array) => {
100
+ return array.reduce((accumulator, element) => {
101
+ return accumulator + element;
102
+ }, 0);
103
+ };
104
+ exports.sumArray = sumArray;
105
+ const extractTruncates = (config) => {
106
+ return config.columns.map(({ truncate }) => {
107
+ return truncate;
108
+ });
109
+ };
110
+ exports.extractTruncates = extractTruncates;
111
+ const flatten = (array) => {
112
+ return [].concat(...array);
113
+ };
114
+ exports.flatten = flatten;
115
+ const findOriginalRowIndex = (mappedRowHeights, mappedRowIndex) => {
116
+ const rowIndexMapping = (0, exports.flatten)(mappedRowHeights.map((height, index) => {
117
+ return Array.from({ length: height }, () => {
118
+ return index;
119
+ });
120
+ }));
121
+ return rowIndexMapping[mappedRowIndex];
122
+ };
123
+ exports.findOriginalRowIndex = findOriginalRowIndex;
124
+ const calculateRangeCoordinate = (spanningCellConfig) => {
125
+ const { row, col, colSpan = 1, rowSpan = 1 } = spanningCellConfig;
126
+ return { bottomRight: { col: col + colSpan - 1,
127
+ row: row + rowSpan - 1 },
128
+ topLeft: { col,
129
+ row } };
130
+ };
131
+ exports.calculateRangeCoordinate = calculateRangeCoordinate;
132
+ const areCellEqual = (cell1, cell2) => {
133
+ return cell1.row === cell2.row && cell1.col === cell2.col;
134
+ };
135
+ exports.areCellEqual = areCellEqual;
136
+ const isCellInRange = (cell, { topLeft, bottomRight }) => {
137
+ return (topLeft.row <= cell.row &&
138
+ cell.row <= bottomRight.row &&
139
+ topLeft.col <= cell.col &&
140
+ cell.col <= bottomRight.col);
141
+ };
142
+ exports.isCellInRange = isCellInRange;
93
143
  //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateConfig.js","sourceRoot":"","sources":["../../src/validateConfig.ts"],"names":[],"mappings":";;;;;;AAIA,wEAAgD;AAKzC,MAAM,cAAc,GAAG,CAAC,QAA6C,EAAE,MAAuB,EAAQ,EAAE;IAC7G,MAAM,QAAQ,GAAG,oBAAU,CAAC,QAAQ,CAAqB,CAAC;IAC1D,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,MAAM,EAAE;QACxC,6DAA6D;QAC7D,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAkB,EAAE,EAAE;YACxD,OAAO;gBACL,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,UAAU,EAAE,KAAK,CAAC,UAAU;aAC7B,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,+BAA+B;QAC/B,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC9B,8BAA8B;QAE9B,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;KACpC;AACH,CAAC,CAAC;AAnBW,QAAA,cAAc,kBAmBzB"}
@@ -0,0 +1,3 @@
1
+ import type { SpanningCellConfig } from './types/api';
2
+ import type { Row } from './types/internal';
3
+ export declare const validateSpanningCellConfig: (rows: Row[], configs: SpanningCellConfig[]) => void;
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateSpanningCellConfig = void 0;
4
+ const utils_1 = require("./utils");
5
+ const inRange = (start, end, value) => {
6
+ return start <= value && value <= end;
7
+ };
8
+ const validateSpanningCellConfig = (rows, configs) => {
9
+ const [nRow, nCol] = [rows.length, rows[0].length];
10
+ configs.forEach((config, configIndex) => {
11
+ const { colSpan, rowSpan } = config;
12
+ if (colSpan === undefined && rowSpan === undefined) {
13
+ throw new Error(`Expect at least colSpan or rowSpan is provided in config.spanningCells[${configIndex}]`);
14
+ }
15
+ if (colSpan !== undefined && colSpan < 1) {
16
+ throw new Error(`Expect colSpan is not equal zero, instead got: ${colSpan} in config.spanningCells[${configIndex}]`);
17
+ }
18
+ if (rowSpan !== undefined && rowSpan < 1) {
19
+ throw new Error(`Expect rowSpan is not equal zero, instead got: ${rowSpan} in config.spanningCells[${configIndex}]`);
20
+ }
21
+ });
22
+ const rangeCoordinates = configs.map(utils_1.calculateRangeCoordinate);
23
+ rangeCoordinates.forEach(({ topLeft, bottomRight }, rangeIndex) => {
24
+ if (!inRange(0, nCol - 1, topLeft.col) ||
25
+ !inRange(0, nRow - 1, topLeft.row) ||
26
+ !inRange(0, nCol - 1, bottomRight.col) ||
27
+ !inRange(0, nRow - 1, bottomRight.row)) {
28
+ throw new Error(`Some cells in config.spanningCells[${rangeIndex}] are out of the table`);
29
+ }
30
+ });
31
+ const configOccupy = Array.from({ length: nRow }, () => {
32
+ return Array.from({ length: nCol });
33
+ });
34
+ rangeCoordinates.forEach(({ topLeft, bottomRight }, rangeIndex) => {
35
+ (0, utils_1.sequence)(topLeft.row, bottomRight.row).forEach((row) => {
36
+ (0, utils_1.sequence)(topLeft.col, bottomRight.col).forEach((col) => {
37
+ if (configOccupy[row][col] !== undefined) {
38
+ throw new Error(`Spanning cells in config.spanningCells[${configOccupy[row][col]}] and config.spanningCells[${rangeIndex}] are overlap each other`);
39
+ }
40
+ configOccupy[row][col] = rangeIndex;
41
+ });
42
+ });
43
+ });
44
+ };
45
+ exports.validateSpanningCellConfig = validateSpanningCellConfig;
46
+ //# sourceMappingURL=validateSpanningCellConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateSpanningCellConfig.js","sourceRoot":"","sources":["../../src/validateSpanningCellConfig.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateTableData.js","sourceRoot":"","sources":["../../src/validateTableData.ts"],"names":[],"mappings":";;;AAAA,mCAEiB;AAEV,MAAM,iBAAiB,GAAG,CAAC,IAAiB,EAAQ,EAAE;IAC3D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACxB,MAAM,IAAI,SAAS,CAAC,8BAA8B,CAAC,CAAC;KACrD;IAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QACrB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;KACxD;IAED,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;QACxB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;KAC3D;IAED,MAAM,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAEpC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;QACtB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACvB,MAAM,IAAI,SAAS,CAAC,kCAAkC,CAAC,CAAC;SACzD;QAED,IAAI,GAAG,CAAC,MAAM,KAAK,YAAY,EAAE;YAC/B,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;SAClE;QAED,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE;YACtB,4CAA4C;YAC5C,IAAI,0CAA0C,CAAC,IAAI,CAAC,IAAA,uBAAe,EAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;gBAClF,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;aACpE;SACF;KACF;AACH,CAAC,CAAC;AA/BW,QAAA,iBAAiB,qBA+B5B"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wrapCell.js","sourceRoot":"","sources":["../../src/wrapCell.ts"],"names":[],"mappings":";;;AAAA,mCAEiB;AACjB,6CAEsB;AACtB,yCAEoB;AAEpB;;;;;;GAMG;AACI,MAAM,QAAQ,GAAG,CAAC,SAAiB,EAAE,SAAiB,EAAE,WAAoB,EAAY,EAAE;IAC/F,kCAAkC;IAClC,MAAM,SAAS,GAAG,IAAA,iBAAS,EAAC,SAAS,CAAC,CAAC;IAEvC,8EAA8E;IAC9E,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,MAAM,GAAG;QAC/C,IAAI,UAAU,CAAC;QAEf,IAAI,WAAW,EAAE;YACf,UAAU,GAAG,IAAA,mBAAQ,EAAC,SAAS,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC;SACrD;aAAM;YACL,UAAU,GAAG,IAAA,uBAAU,EAAC,SAAS,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC;SACvD;QAED,yEAAyE;QACzE,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC;QAC3C,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC;KAC7B;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AApBW,QAAA,QAAQ,YAoBnB"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wrapString.js","sourceRoot":"","sources":["../../src/wrapString.ts"],"names":[],"mappings":";;;;;;AAAA,4DAA+B;AAC/B,gEAAuC;AAEvC;;;;;;;GAOG;AACI,MAAM,UAAU,GAAG,CAAC,OAAe,EAAE,IAAY,EAAY,EAAE;IACpE,IAAI,YAAY,GAAG,OAAO,CAAC;IAE3B,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,GAAG;QACD,MAAM,CAAC,IAAI,CAAC,IAAA,oBAAK,EAAC,YAAY,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QAE1C,YAAY,GAAG,IAAA,oBAAK,EAAC,YAAY,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;KACjD,QAAQ,IAAA,sBAAW,EAAC,YAAY,CAAC,EAAE;IAEpC,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAZW,QAAA,UAAU,cAYrB"}
@@ -10,7 +10,7 @@ const calculateStringLengths = (input, size) => {
10
10
  let subject = (0, strip_ansi_1.default)(input);
11
11
  const chunks = [];
12
12
  // https://regex101.com/r/gY5kZ1/1
13
- const re = new RegExp('(^.{1,' + String(Math.max(size, 1)) + '}(\\s+|$))|(^.{1,' + String(Math.max(2, size - 1) - 1) + '}(\\\\|/|_|\\.|,|;|-))');
13
+ const re = new RegExp('(^.{1,' + String(Math.max(size, 1)) + '}(\\s+|$))|(^.{1,' + String(Math.max(size - 1, 1)) + '}(\\\\|/|_|\\.|,|;|-))');
14
14
  do {
15
15
  let chunk;
16
16
  const match = re.exec(subject);
@@ -32,7 +32,7 @@ const calculateStringLengths = (input, size) => {
32
32
  const wrapWord = (input, size) => {
33
33
  const result = [];
34
34
  let startIndex = 0;
35
- calculateStringLengths(input, Math.max(size, 1)).forEach(([length, offset]) => {
35
+ calculateStringLengths(input, size).forEach(([length, offset]) => {
36
36
  result.push((0, slice_ansi_1.default)(input, startIndex, startIndex + length));
37
37
  startIndex += length + offset;
38
38
  });
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wrapWord.js","sourceRoot":"","sources":["../../src/wrapWord.ts"],"names":[],"mappings":";;;;;;AAAA,4DAA+B;AAC/B,4DAAmC;AAEnC,MAAM,sBAAsB,GAAG,CAAC,KAAa,EAAE,IAAY,EAA0C,EAAE;IACrG,IAAI,OAAO,GAAG,IAAA,oBAAS,EAAC,KAAK,CAAC,CAAC;IAE/B,MAAM,MAAM,GAA4B,EAAE,CAAC;IAE3C,kCAAkC;IAClC,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,mBAAmB,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,wBAAwB,CAAC,CAAC;IAE7I,GAAG;QACD,IAAI,KAAa,CAAC;QAElB,MAAM,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAE/B,IAAI,KAAK,EAAE;YACT,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAEjB,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAEtC,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC;YAC1C,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,aAAa,CAAC;YAE5C,MAAM,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC;SACtC;aAAM;YACL,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAC/B,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAE9B,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;SAChC;KACF,QAAQ,OAAO,CAAC,MAAM,EAAE;IAEzB,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEK,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAE,IAAY,EAAY,EAAE;IAChE,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,sBAAsB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE;QAC/D,MAAM,CAAC,IAAI,CAAC,IAAA,oBAAK,EAAC,KAAK,EAAE,UAAU,EAAE,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC;QAE3D,UAAU,IAAI,MAAM,GAAG,MAAM,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAXW,QAAA,QAAQ,YAWnB"}
@@ -58,8 +58,7 @@
58
58
  "license": "BSD-3-Clause",
59
59
  "main": "./dist/src/index.js",
60
60
  "files": [
61
- "dist/src/**/*.js",
62
- "dist/src/**/*.d.ts"
61
+ "dist/src/"
63
62
  ],
64
63
  "name": "table",
65
64
  "repository": {
@@ -74,5 +73,5 @@
74
73
  "lint": "eslint ./src ./test",
75
74
  "test": "nyc mocha && nyc check-coverage --lines 95"
76
75
  },
77
- "version": "6.7.5"
76
+ "version": "6.8.0"
78
77
  }