bkper 4.31.3 → 5.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -5
- package/lib/agent/startup-maintenance.d.ts +7 -4
- package/lib/agent/startup-maintenance.d.ts.map +1 -1
- package/lib/agent/startup-maintenance.js +13 -29
- package/lib/agent/startup-maintenance.js.map +1 -1
- package/lib/cli.js +8 -4
- package/lib/cli.js.map +1 -1
- package/lib/commands/accounts/batch-create.d.ts +1 -1
- package/lib/commands/accounts/batch-create.d.ts.map +1 -1
- package/lib/commands/accounts/batch-create.js +3 -3
- package/lib/commands/accounts/batch-create.js.map +1 -1
- package/lib/commands/accounts/list.d.ts +2 -3
- package/lib/commands/accounts/list.d.ts.map +1 -1
- package/lib/commands/accounts/list.js +2 -12
- package/lib/commands/accounts/list.js.map +1 -1
- package/lib/commands/accounts/register.js +13 -13
- package/lib/commands/accounts/register.js.map +1 -1
- package/lib/commands/action.d.ts +2 -3
- package/lib/commands/action.d.ts.map +1 -1
- package/lib/commands/action.js +2 -3
- package/lib/commands/action.js.map +1 -1
- package/lib/commands/apps/list.d.ts +2 -3
- package/lib/commands/apps/list.d.ts.map +1 -1
- package/lib/commands/apps/list.js +2 -14
- package/lib/commands/apps/list.js.map +1 -1
- package/lib/commands/apps/register.js +10 -10
- package/lib/commands/apps/register.js.map +1 -1
- package/lib/commands/balances/list.d.ts +0 -2
- package/lib/commands/balances/list.d.ts.map +1 -1
- package/lib/commands/balances/list.js +9 -17
- package/lib/commands/balances/list.js.map +1 -1
- package/lib/commands/balances/register.d.ts.map +1 -1
- package/lib/commands/balances/register.js +3 -4
- package/lib/commands/balances/register.js.map +1 -1
- package/lib/commands/books/list.d.ts +2 -4
- package/lib/commands/books/list.d.ts.map +1 -1
- package/lib/commands/books/list.js +2 -30
- package/lib/commands/books/list.js.map +1 -1
- package/lib/commands/books/register.js +12 -12
- package/lib/commands/books/register.js.map +1 -1
- package/lib/commands/cli-helpers.d.ts +9 -4
- package/lib/commands/cli-helpers.d.ts.map +1 -1
- package/lib/commands/cli-helpers.js +18 -12
- package/lib/commands/cli-helpers.js.map +1 -1
- package/lib/commands/collections/list.d.ts +2 -3
- package/lib/commands/collections/list.d.ts.map +1 -1
- package/lib/commands/collections/list.js +2 -14
- package/lib/commands/collections/list.js.map +1 -1
- package/lib/commands/collections/register.d.ts.map +1 -1
- package/lib/commands/collections/register.js +15 -25
- package/lib/commands/collections/register.js.map +1 -1
- package/lib/commands/events/event-json.d.ts +13 -0
- package/lib/commands/events/event-json.d.ts.map +1 -0
- package/lib/commands/events/event-json.js +33 -0
- package/lib/commands/events/event-json.js.map +1 -0
- package/lib/commands/events/list.d.ts +4 -3
- package/lib/commands/events/list.d.ts.map +1 -1
- package/lib/commands/events/list.js +15 -66
- package/lib/commands/events/list.js.map +1 -1
- package/lib/commands/events/register.d.ts.map +1 -1
- package/lib/commands/events/register.js +7 -6
- package/lib/commands/events/register.js.map +1 -1
- package/lib/commands/files/list.d.ts +3 -2
- package/lib/commands/files/list.d.ts.map +1 -1
- package/lib/commands/files/list.js +13 -42
- package/lib/commands/files/list.js.map +1 -1
- package/lib/commands/files/register.d.ts.map +1 -1
- package/lib/commands/files/register.js +13 -10
- package/lib/commands/files/register.js.map +1 -1
- package/lib/commands/groups/list.d.ts +2 -3
- package/lib/commands/groups/list.d.ts.map +1 -1
- package/lib/commands/groups/list.js +2 -12
- package/lib/commands/groups/list.js.map +1 -1
- package/lib/commands/groups/register.js +12 -12
- package/lib/commands/groups/register.js.map +1 -1
- package/lib/commands/transactions/batch-create.d.ts +1 -1
- package/lib/commands/transactions/batch-create.d.ts.map +1 -1
- package/lib/commands/transactions/batch-create.js +4 -3
- package/lib/commands/transactions/batch-create.js.map +1 -1
- package/lib/commands/transactions/batch-update.d.ts +1 -1
- package/lib/commands/transactions/batch-update.d.ts.map +1 -1
- package/lib/commands/transactions/batch-update.js +4 -3
- package/lib/commands/transactions/batch-update.js.map +1 -1
- package/lib/commands/transactions/list.d.ts +4 -7
- package/lib/commands/transactions/list.d.ts.map +1 -1
- package/lib/commands/transactions/list.js +15 -32
- package/lib/commands/transactions/list.js.map +1 -1
- package/lib/commands/transactions/register.d.ts +1 -1
- package/lib/commands/transactions/register.d.ts.map +1 -1
- package/lib/commands/transactions/register.js +27 -26
- package/lib/commands/transactions/register.js.map +1 -1
- package/lib/commands/transactions/transaction-json.d.ts +23 -0
- package/lib/commands/transactions/transaction-json.d.ts.map +1 -0
- package/lib/commands/transactions/transaction-json.js +56 -0
- package/lib/commands/transactions/transaction-json.js.map +1 -0
- package/lib/commands/upgrade.d.ts.map +1 -1
- package/lib/commands/upgrade.js +2 -3
- package/lib/commands/upgrade.js.map +1 -1
- package/lib/docs/apps/ai.md +2 -2
- package/lib/docs/apps/event-handlers.md +12 -0
- package/lib/docs/cli/app-management.md +1 -1
- package/lib/docs/cli/data-management.md +56 -54
- package/lib/docs/index.md +1 -1
- package/lib/docs/sdk/bkper-api-types.md +4 -2
- package/lib/docs/sdk/bkper-js.md +1 -0
- package/lib/docs-compliance/live-readme.d.ts.map +1 -1
- package/lib/docs-compliance/live-readme.js +0 -3
- package/lib/docs-compliance/live-readme.js.map +1 -1
- package/lib/docs-compliance/rules.d.ts.map +1 -1
- package/lib/docs-compliance/rules.js +9 -0
- package/lib/docs-compliance/rules.js.map +1 -1
- package/lib/render/index.d.ts +2 -4
- package/lib/render/index.d.ts.map +1 -1
- package/lib/render/index.js +1 -3
- package/lib/render/index.js.map +1 -1
- package/lib/render/output.d.ts +42 -22
- package/lib/render/output.d.ts.map +1 -1
- package/lib/render/output.js +62 -42
- package/lib/render/output.js.map +1 -1
- package/lib/upgrade/index.d.ts +5 -4
- package/lib/upgrade/index.d.ts.map +1 -1
- package/lib/upgrade/index.js +3 -2
- package/lib/upgrade/index.js.map +1 -1
- package/lib/upgrade/installation.d.ts +54 -20
- package/lib/upgrade/installation.d.ts.map +1 -1
- package/lib/upgrade/installation.js +222 -122
- package/lib/upgrade/installation.js.map +1 -1
- package/lib/upgrade/update-check.d.ts +69 -0
- package/lib/upgrade/update-check.d.ts.map +1 -0
- package/lib/upgrade/update-check.js +253 -0
- package/lib/upgrade/update-check.js.map +1 -0
- package/lib/upgrade/update-worker.d.ts +2 -0
- package/lib/upgrade/update-worker.d.ts.map +1 -0
- package/lib/upgrade/update-worker.js +6 -0
- package/lib/upgrade/update-worker.js.map +1 -0
- package/lib/upgrade/upgrade.d.ts +11 -28
- package/lib/upgrade/upgrade.d.ts.map +1 -1
- package/lib/upgrade/upgrade.js +49 -96
- package/lib/upgrade/upgrade.js.map +1 -1
- package/package.json +1 -1
- package/lib/render/csv-formatter.d.ts +0 -15
- package/lib/render/csv-formatter.d.ts.map +0 -1
- package/lib/render/csv-formatter.js +0 -37
- package/lib/render/csv-formatter.js.map +0 -1
- package/lib/render/table-formatter.d.ts +0 -34
- package/lib/render/table-formatter.d.ts.map +0 -1
- package/lib/render/table-formatter.js +0 -239
- package/lib/render/table-formatter.js.map +0 -1
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Formats a 2D matrix (row 0 = headers) into an aligned, human-readable table string.
|
|
3
|
-
*
|
|
4
|
-
* Output format:
|
|
5
|
-
* Name Type Parent
|
|
6
|
-
* ____________________________
|
|
7
|
-
* Revenue INCOMING
|
|
8
|
-
* Expenses OUTGOING
|
|
9
|
-
*
|
|
10
|
-
* @param matrix - 2D array where row 0 is headers and rows 1+ are data
|
|
11
|
-
* @returns Formatted table string
|
|
12
|
-
*/
|
|
13
|
-
export declare function formatTable(matrix: unknown[][]): string;
|
|
14
|
-
/**
|
|
15
|
-
* Formats a record as vertically aligned key-value pairs with recursive
|
|
16
|
-
* indented rendering for nested objects and arrays.
|
|
17
|
-
*
|
|
18
|
-
* Output format:
|
|
19
|
-
* name: Checking
|
|
20
|
-
* type: ASSET
|
|
21
|
-
* collection:
|
|
22
|
-
* id: col-123
|
|
23
|
-
* name: My Collection
|
|
24
|
-
* properties:
|
|
25
|
-
* key: value
|
|
26
|
-
* tags:
|
|
27
|
-
* - tag1
|
|
28
|
-
* - tag2
|
|
29
|
-
*
|
|
30
|
-
* @param item - Record to format
|
|
31
|
-
* @returns Formatted key-value string
|
|
32
|
-
*/
|
|
33
|
-
export declare function formatItem(item: Record<string, unknown>): string;
|
|
34
|
-
//# sourceMappingURL=table-formatter.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"table-formatter.d.ts","sourceRoot":"","sources":["../../src/render/table-formatter.ts"],"names":[],"mappings":"AAyBA;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,GAAG,MAAM,CAkEvD;AAoID;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAUhE"}
|
|
@@ -1,239 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Maximum width for any single cell value.
|
|
3
|
-
* Values exceeding this width are truncated with an ellipsis (…).
|
|
4
|
-
* Header cells and ID columns are never truncated.
|
|
5
|
-
*/
|
|
6
|
-
const MAX_CELL_WIDTH = 40;
|
|
7
|
-
/**
|
|
8
|
-
* Checks whether a column header indicates an ID column.
|
|
9
|
-
* ID columns should never be truncated so users can copy-paste values into subsequent commands.
|
|
10
|
-
*/
|
|
11
|
-
function isIdColumn(header) {
|
|
12
|
-
return header === 'ID' || header.endsWith(' Id') || header.endsWith('Id');
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Truncates a string to maxWidth, appending '…' if it exceeds the limit.
|
|
16
|
-
*/
|
|
17
|
-
function truncateCell(value, maxWidth) {
|
|
18
|
-
if (value.length <= maxWidth) {
|
|
19
|
-
return value;
|
|
20
|
-
}
|
|
21
|
-
return value.slice(0, maxWidth - 1) + '…';
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Formats a 2D matrix (row 0 = headers) into an aligned, human-readable table string.
|
|
25
|
-
*
|
|
26
|
-
* Output format:
|
|
27
|
-
* Name Type Parent
|
|
28
|
-
* ____________________________
|
|
29
|
-
* Revenue INCOMING
|
|
30
|
-
* Expenses OUTGOING
|
|
31
|
-
*
|
|
32
|
-
* @param matrix - 2D array where row 0 is headers and rows 1+ are data
|
|
33
|
-
* @returns Formatted table string
|
|
34
|
-
*/
|
|
35
|
-
export function formatTable(matrix) {
|
|
36
|
-
if (!matrix || matrix.length === 0) {
|
|
37
|
-
return '';
|
|
38
|
-
}
|
|
39
|
-
const COL_GAP = ' ';
|
|
40
|
-
// Determine which columns are ID columns (never truncated)
|
|
41
|
-
const headerRow = matrix[0];
|
|
42
|
-
const noTruncateCols = new Set();
|
|
43
|
-
for (let i = 0; i < headerRow.length; i++) {
|
|
44
|
-
const header = headerRow[i] == null ? '' : String(headerRow[i]);
|
|
45
|
-
if (isIdColumn(header)) {
|
|
46
|
-
noTruncateCols.add(i);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
// Convert all cells to strings
|
|
50
|
-
const rows = matrix.map((row, rowIndex) => row.map((cell, colIndex) => {
|
|
51
|
-
const str = cell == null ? '' : String(cell);
|
|
52
|
-
// Don't truncate header row or ID columns
|
|
53
|
-
return rowIndex === 0 || noTruncateCols.has(colIndex)
|
|
54
|
-
? str
|
|
55
|
-
: truncateCell(str, MAX_CELL_WIDTH);
|
|
56
|
-
}));
|
|
57
|
-
const headers = rows[0];
|
|
58
|
-
const dataRows = rows.slice(1);
|
|
59
|
-
const colCount = headers.length;
|
|
60
|
-
// Calculate max width per column
|
|
61
|
-
const colWidths = new Array(colCount).fill(0);
|
|
62
|
-
for (const row of rows) {
|
|
63
|
-
for (let i = 0; i < colCount; i++) {
|
|
64
|
-
const cellLen = (row[i] || '').length;
|
|
65
|
-
if (cellLen > colWidths[i]) {
|
|
66
|
-
colWidths[i] = cellLen;
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
// Build a row string
|
|
71
|
-
const formatRow = (row) => {
|
|
72
|
-
return row
|
|
73
|
-
.map((cell, i) => {
|
|
74
|
-
// Don't pad the last column
|
|
75
|
-
if (i === colCount - 1) {
|
|
76
|
-
return cell;
|
|
77
|
-
}
|
|
78
|
-
return cell.padEnd(colWidths[i]);
|
|
79
|
-
})
|
|
80
|
-
.join(COL_GAP)
|
|
81
|
-
.trimEnd();
|
|
82
|
-
};
|
|
83
|
-
const headerLine = formatRow(headers);
|
|
84
|
-
const dividerLine = '_'.repeat(headerLine.length);
|
|
85
|
-
const lines = [headerLine, dividerLine];
|
|
86
|
-
for (const row of dataRows) {
|
|
87
|
-
lines.push(formatRow(row));
|
|
88
|
-
}
|
|
89
|
-
return lines.join('\n');
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
|
-
* Checks whether a value is empty (null, undefined, empty array, or empty object).
|
|
93
|
-
*/
|
|
94
|
-
function isEmpty(value) {
|
|
95
|
-
if (value == null)
|
|
96
|
-
return true;
|
|
97
|
-
if (Array.isArray(value) && value.length === 0)
|
|
98
|
-
return true;
|
|
99
|
-
if (typeof value === 'object' &&
|
|
100
|
-
!Array.isArray(value) &&
|
|
101
|
-
Object.keys(value).length === 0)
|
|
102
|
-
return true;
|
|
103
|
-
return false;
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* Checks whether a value is a primitive (not an object or array, or is null).
|
|
107
|
-
*/
|
|
108
|
-
function isPrimitive(value) {
|
|
109
|
-
return value === null || typeof value !== 'object';
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* Renders key-value pairs of an object as aligned lines at the given indent level.
|
|
113
|
-
*
|
|
114
|
-
* - Primitive values are rendered inline: `key: value`
|
|
115
|
-
* - Nested objects get `key:` on its own line, then recursively indented content
|
|
116
|
-
* - Arrays of primitives get `key:` then each item with `- ` prefix
|
|
117
|
-
* - Arrays of objects get `key:` then each element as `- firstKey: value` block
|
|
118
|
-
*
|
|
119
|
-
* @param entries - Filtered [key, value] pairs to render
|
|
120
|
-
* @param indent - Current indentation string (e.g., '', ' ', ' ')
|
|
121
|
-
* @returns Array of formatted lines
|
|
122
|
-
*/
|
|
123
|
-
function formatEntries(entries, indent) {
|
|
124
|
-
const lines = [];
|
|
125
|
-
// Find max key length for alignment at this indent level
|
|
126
|
-
const maxKeyLen = Math.max(...entries.map(([key]) => key.length));
|
|
127
|
-
for (const [key, value] of entries) {
|
|
128
|
-
if (isPrimitive(value)) {
|
|
129
|
-
const label = `${key}:`.padEnd(maxKeyLen + 2);
|
|
130
|
-
lines.push(`${indent}${label} ${String(value)}`);
|
|
131
|
-
}
|
|
132
|
-
else if (Array.isArray(value)) {
|
|
133
|
-
lines.push(`${indent}${key}:`);
|
|
134
|
-
const childIndent = indent + ' ';
|
|
135
|
-
for (const element of value) {
|
|
136
|
-
if (isPrimitive(element)) {
|
|
137
|
-
lines.push(`${childIndent}- ${String(element)}`);
|
|
138
|
-
}
|
|
139
|
-
else {
|
|
140
|
-
// Object element in array — render with `- ` prefix on first field
|
|
141
|
-
const objEntries = Object.entries(element).filter(([, v]) => !isEmpty(v));
|
|
142
|
-
if (objEntries.length === 0)
|
|
143
|
-
continue;
|
|
144
|
-
// First field gets `- ` prefix
|
|
145
|
-
const [firstKey, firstValue] = objEntries[0];
|
|
146
|
-
const remainingEntries = objEntries.slice(1);
|
|
147
|
-
// Align keys within the array element block
|
|
148
|
-
const elementMaxKeyLen = Math.max(...objEntries.map(([k]) => k.length));
|
|
149
|
-
const firstLabel = `${firstKey}:`.padEnd(elementMaxKeyLen + 2);
|
|
150
|
-
if (isPrimitive(firstValue)) {
|
|
151
|
-
lines.push(`${childIndent}- ${firstLabel} ${String(firstValue)}`);
|
|
152
|
-
}
|
|
153
|
-
else {
|
|
154
|
-
lines.push(`${childIndent}- ${firstKey}:`);
|
|
155
|
-
// Indent nested value under the `- ` block
|
|
156
|
-
const nestedLines = formatNestedValue(firstValue, childIndent + ' ');
|
|
157
|
-
lines.push(...nestedLines);
|
|
158
|
-
}
|
|
159
|
-
// Remaining fields aligned under the `- ` prefix (indented by 2 more to match)
|
|
160
|
-
const fieldIndent = childIndent + ' ';
|
|
161
|
-
for (const [rKey, rValue] of remainingEntries) {
|
|
162
|
-
if (isEmpty(rValue))
|
|
163
|
-
continue;
|
|
164
|
-
if (isPrimitive(rValue)) {
|
|
165
|
-
const rLabel = `${rKey}:`.padEnd(elementMaxKeyLen + 2);
|
|
166
|
-
lines.push(`${fieldIndent}${rLabel} ${String(rValue)}`);
|
|
167
|
-
}
|
|
168
|
-
else {
|
|
169
|
-
lines.push(`${fieldIndent}${rKey}:`);
|
|
170
|
-
const nestedLines = formatNestedValue(rValue, fieldIndent + ' ');
|
|
171
|
-
lines.push(...nestedLines);
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
else {
|
|
178
|
-
// Nested object
|
|
179
|
-
lines.push(`${indent}${key}:`);
|
|
180
|
-
const nestedLines = formatNestedValue(value, indent + ' ');
|
|
181
|
-
lines.push(...nestedLines);
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
return lines;
|
|
185
|
-
}
|
|
186
|
-
/**
|
|
187
|
-
* Renders a nested value (object or array) at the given indent level.
|
|
188
|
-
*/
|
|
189
|
-
function formatNestedValue(value, indent) {
|
|
190
|
-
if (Array.isArray(value)) {
|
|
191
|
-
const lines = [];
|
|
192
|
-
for (const element of value) {
|
|
193
|
-
if (isPrimitive(element)) {
|
|
194
|
-
lines.push(`${indent}- ${String(element)}`);
|
|
195
|
-
}
|
|
196
|
-
else {
|
|
197
|
-
const objEntries = Object.entries(element).filter(([, v]) => !isEmpty(v));
|
|
198
|
-
const nestedLines = formatEntries(objEntries, indent + ' ');
|
|
199
|
-
if (nestedLines.length > 0) {
|
|
200
|
-
// Replace leading spaces of first line with `- ` prefix
|
|
201
|
-
nestedLines[0] = `${indent}- ${nestedLines[0].trimStart()}`;
|
|
202
|
-
lines.push(...nestedLines);
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
return lines;
|
|
207
|
-
}
|
|
208
|
-
const objEntries = Object.entries(value).filter(([, v]) => !isEmpty(v));
|
|
209
|
-
return formatEntries(objEntries, indent);
|
|
210
|
-
}
|
|
211
|
-
/**
|
|
212
|
-
* Formats a record as vertically aligned key-value pairs with recursive
|
|
213
|
-
* indented rendering for nested objects and arrays.
|
|
214
|
-
*
|
|
215
|
-
* Output format:
|
|
216
|
-
* name: Checking
|
|
217
|
-
* type: ASSET
|
|
218
|
-
* collection:
|
|
219
|
-
* id: col-123
|
|
220
|
-
* name: My Collection
|
|
221
|
-
* properties:
|
|
222
|
-
* key: value
|
|
223
|
-
* tags:
|
|
224
|
-
* - tag1
|
|
225
|
-
* - tag2
|
|
226
|
-
*
|
|
227
|
-
* @param item - Record to format
|
|
228
|
-
* @returns Formatted key-value string
|
|
229
|
-
*/
|
|
230
|
-
export function formatItem(item) {
|
|
231
|
-
// Filter out null/undefined and empty values
|
|
232
|
-
const entries = Object.entries(item).filter(([, value]) => !isEmpty(value));
|
|
233
|
-
if (entries.length === 0) {
|
|
234
|
-
return '';
|
|
235
|
-
}
|
|
236
|
-
const lines = formatEntries(entries, '');
|
|
237
|
-
return lines.join('\n');
|
|
238
|
-
}
|
|
239
|
-
//# sourceMappingURL=table-formatter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"table-formatter.js","sourceRoot":"","sources":["../../src/render/table-formatter.ts"],"names":[],"mappings":"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"}
|