tm1npm 1.2.1 → 1.4.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/lib/services/BulkService.d.ts +383 -0
- package/lib/services/BulkService.d.ts.map +1 -0
- package/lib/services/BulkService.js +614 -0
- package/lib/services/DebuggerService.d.ts +214 -0
- package/lib/services/DebuggerService.d.ts.map +1 -0
- package/lib/services/DebuggerService.js +319 -0
- package/lib/services/ProcessService.d.ts +45 -0
- package/lib/services/ProcessService.d.ts.map +1 -1
- package/lib/services/ProcessService.js +152 -0
- package/lib/services/TM1Service.d.ts +4 -0
- package/lib/services/TM1Service.d.ts.map +1 -1
- package/lib/services/TM1Service.js +4 -0
- package/lib/services/index.d.ts +2 -0
- package/lib/services/index.d.ts.map +1 -1
- package/lib/services/index.js +5 -1
- package/lib/tests/bulkService.test.d.ts +6 -0
- package/lib/tests/bulkService.test.d.ts.map +1 -0
- package/lib/tests/bulkService.test.js +532 -0
- package/lib/tests/debuggerService.test.d.ts +6 -0
- package/lib/tests/debuggerService.test.d.ts.map +1 -0
- package/lib/tests/debuggerService.test.js +279 -0
- package/package.json +1 -1
- package/src/services/BulkService.ts +910 -0
- package/src/services/DebuggerService.ts +399 -0
- package/src/services/ProcessService.ts +162 -0
- package/src/services/TM1Service.ts +6 -0
- package/src/services/index.ts +2 -0
- package/src/tests/bulkService.test.ts +715 -0
- package/src/tests/debuggerService.test.ts +377 -0
|
@@ -0,0 +1,383 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* BulkService - High-performance bulk operations for TM1
|
|
3
|
+
*
|
|
4
|
+
* Provides efficient batch operations, data import/export, and bulk processing
|
|
5
|
+
* capabilities for handling large datasets with optimal performance.
|
|
6
|
+
*/
|
|
7
|
+
import { RestService } from './RestService';
|
|
8
|
+
import { CellService } from './CellService';
|
|
9
|
+
import { ViewService } from './ViewService';
|
|
10
|
+
/**
|
|
11
|
+
* Bulk write operation definition
|
|
12
|
+
*/
|
|
13
|
+
export interface BulkWriteOperation {
|
|
14
|
+
cubeName: string;
|
|
15
|
+
coordinates: string[];
|
|
16
|
+
value: any;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Bulk read query definition
|
|
20
|
+
*/
|
|
21
|
+
export interface BulkReadQuery {
|
|
22
|
+
cubeName: string;
|
|
23
|
+
coordinates: string[];
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Bulk update operation definition
|
|
27
|
+
*/
|
|
28
|
+
export interface BulkUpdateOperation {
|
|
29
|
+
cubeName: string;
|
|
30
|
+
coordinates: string[];
|
|
31
|
+
value: any;
|
|
32
|
+
increment?: boolean;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Bulk delete operation definition
|
|
36
|
+
*/
|
|
37
|
+
export interface BulkDeleteOperation {
|
|
38
|
+
cubeName: string;
|
|
39
|
+
coordinates: string[];
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* CSV import options
|
|
43
|
+
*/
|
|
44
|
+
export interface CSVImportOptions {
|
|
45
|
+
delimiter?: string;
|
|
46
|
+
hasHeader?: boolean;
|
|
47
|
+
encoding?: string;
|
|
48
|
+
batchSize?: number;
|
|
49
|
+
skipErrors?: boolean;
|
|
50
|
+
decimalSeparator?: string;
|
|
51
|
+
thousandSeparator?: string;
|
|
52
|
+
sandbox_name?: string;
|
|
53
|
+
increment?: boolean;
|
|
54
|
+
use_ti?: boolean;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* CSV export options
|
|
58
|
+
*/
|
|
59
|
+
export interface CSVExportOptions {
|
|
60
|
+
delimiter?: string;
|
|
61
|
+
includeHeader?: boolean;
|
|
62
|
+
encoding?: string;
|
|
63
|
+
decimalSeparator?: string;
|
|
64
|
+
thousandSeparator?: string;
|
|
65
|
+
sandbox_name?: string;
|
|
66
|
+
skip_zeros?: boolean;
|
|
67
|
+
skip_consolidated?: boolean;
|
|
68
|
+
skip_rule_derived?: boolean;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* JSON import options
|
|
72
|
+
*/
|
|
73
|
+
export interface JSONImportOptions {
|
|
74
|
+
batchSize?: number;
|
|
75
|
+
skipErrors?: boolean;
|
|
76
|
+
sandbox_name?: string;
|
|
77
|
+
increment?: boolean;
|
|
78
|
+
use_ti?: boolean;
|
|
79
|
+
validate?: boolean;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* JSON export options
|
|
83
|
+
*/
|
|
84
|
+
export interface JSONExportOptions {
|
|
85
|
+
sandbox_name?: string;
|
|
86
|
+
skip_zeros?: boolean;
|
|
87
|
+
skip_consolidated?: boolean;
|
|
88
|
+
skip_rule_derived?: boolean;
|
|
89
|
+
format?: 'compact' | 'full';
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Batch operation types
|
|
93
|
+
*/
|
|
94
|
+
export type BatchOperationType = 'write' | 'read' | 'update' | 'delete';
|
|
95
|
+
/**
|
|
96
|
+
* Batch operation definition
|
|
97
|
+
*/
|
|
98
|
+
export interface BatchOperation {
|
|
99
|
+
type: BatchOperationType;
|
|
100
|
+
cubeName: string;
|
|
101
|
+
coordinates: string[];
|
|
102
|
+
value?: any;
|
|
103
|
+
options?: any;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Batch operation result
|
|
107
|
+
*/
|
|
108
|
+
export interface BatchResult {
|
|
109
|
+
success: boolean;
|
|
110
|
+
operation: BatchOperation;
|
|
111
|
+
result?: any;
|
|
112
|
+
error?: string;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Bulk write options
|
|
116
|
+
*/
|
|
117
|
+
export interface BulkWriteOptions {
|
|
118
|
+
maxWorkers?: number;
|
|
119
|
+
chunkSize?: number;
|
|
120
|
+
maxRetries?: number;
|
|
121
|
+
retryDelay?: number;
|
|
122
|
+
cancelAtFailure?: boolean;
|
|
123
|
+
sandbox_name?: string;
|
|
124
|
+
increment?: boolean;
|
|
125
|
+
use_ti?: boolean;
|
|
126
|
+
use_blob?: boolean;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Bulk read options
|
|
130
|
+
*/
|
|
131
|
+
export interface BulkReadOptions {
|
|
132
|
+
maxWorkers?: number;
|
|
133
|
+
chunkSize?: number;
|
|
134
|
+
sandbox_name?: string;
|
|
135
|
+
use_blob?: boolean;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Transaction state
|
|
139
|
+
*/
|
|
140
|
+
export interface TransactionState {
|
|
141
|
+
id: string;
|
|
142
|
+
operations: BatchOperation[];
|
|
143
|
+
status: 'pending' | 'committed' | 'rolled_back';
|
|
144
|
+
createdAt: Date;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* BulkService - Comprehensive bulk operations service
|
|
148
|
+
*
|
|
149
|
+
* Provides high-performance batch operations for TM1 data manipulation,
|
|
150
|
+
* import/export capabilities, and transaction management.
|
|
151
|
+
*/
|
|
152
|
+
export declare class BulkService {
|
|
153
|
+
private rest;
|
|
154
|
+
private cellService;
|
|
155
|
+
private viewService?;
|
|
156
|
+
private transactions;
|
|
157
|
+
constructor(rest: RestService, cellService: CellService, viewService?: ViewService);
|
|
158
|
+
/**
|
|
159
|
+
* Execute bulk write operations
|
|
160
|
+
*
|
|
161
|
+
* Efficiently writes multiple cells across one or more cubes with optimized batching
|
|
162
|
+
* and parallel processing.
|
|
163
|
+
*
|
|
164
|
+
* @param operations - Array of bulk write operations
|
|
165
|
+
* @param options - Bulk write options for performance tuning
|
|
166
|
+
*
|
|
167
|
+
* @example
|
|
168
|
+
* ```typescript
|
|
169
|
+
* const operations = [
|
|
170
|
+
* { cubeName: 'Sales', coordinates: ['2024', 'Q1', 'Revenue'], value: 100000 },
|
|
171
|
+
* { cubeName: 'Sales', coordinates: ['2024', 'Q2', 'Revenue'], value: 120000 }
|
|
172
|
+
* ];
|
|
173
|
+
* await bulkService.executeBulkWrite(operations, { chunkSize: 1000 });
|
|
174
|
+
* ```
|
|
175
|
+
*/
|
|
176
|
+
executeBulkWrite(operations: BulkWriteOperation[], options?: BulkWriteOptions): Promise<void>;
|
|
177
|
+
/**
|
|
178
|
+
* Execute bulk read operations
|
|
179
|
+
*
|
|
180
|
+
* Efficiently reads multiple cells across one or more cubes with parallel processing.
|
|
181
|
+
*
|
|
182
|
+
* @param queries - Array of bulk read queries
|
|
183
|
+
* @param options - Bulk read options for performance tuning
|
|
184
|
+
* @returns Array of cell values corresponding to queries
|
|
185
|
+
*
|
|
186
|
+
* @example
|
|
187
|
+
* ```typescript
|
|
188
|
+
* const queries = [
|
|
189
|
+
* { cubeName: 'Sales', coordinates: ['2024', 'Q1', 'Revenue'] },
|
|
190
|
+
* { cubeName: 'Sales', coordinates: ['2024', 'Q2', 'Revenue'] }
|
|
191
|
+
* ];
|
|
192
|
+
* const values = await bulkService.executeBulkRead(queries);
|
|
193
|
+
* ```
|
|
194
|
+
*/
|
|
195
|
+
executeBulkRead(queries: BulkReadQuery[], options?: BulkReadOptions): Promise<any[]>;
|
|
196
|
+
/**
|
|
197
|
+
* Execute bulk update operations
|
|
198
|
+
*
|
|
199
|
+
* Updates multiple cells with support for increment operations.
|
|
200
|
+
*
|
|
201
|
+
* @param updates - Array of bulk update operations
|
|
202
|
+
* @param options - Bulk write options
|
|
203
|
+
*
|
|
204
|
+
* @example
|
|
205
|
+
* ```typescript
|
|
206
|
+
* const updates = [
|
|
207
|
+
* { cubeName: 'Sales', coordinates: ['2024', 'Q1', 'Revenue'], value: 10000, increment: true }
|
|
208
|
+
* ];
|
|
209
|
+
* await bulkService.executeBulkUpdate(updates);
|
|
210
|
+
* ```
|
|
211
|
+
*/
|
|
212
|
+
executeBulkUpdate(updates: BulkUpdateOperation[], options?: BulkWriteOptions): Promise<void>;
|
|
213
|
+
/**
|
|
214
|
+
* Execute bulk delete operations
|
|
215
|
+
*
|
|
216
|
+
* Clears values from multiple cells (sets to 0 or empty string).
|
|
217
|
+
*
|
|
218
|
+
* @param deletes - Array of bulk delete operations
|
|
219
|
+
* @param options - Bulk write options
|
|
220
|
+
*
|
|
221
|
+
* @example
|
|
222
|
+
* ```typescript
|
|
223
|
+
* const deletes = [
|
|
224
|
+
* { cubeName: 'Sales', coordinates: ['2024', 'Q1', 'Revenue'] }
|
|
225
|
+
* ];
|
|
226
|
+
* await bulkService.executeBulkDelete(deletes);
|
|
227
|
+
* ```
|
|
228
|
+
*/
|
|
229
|
+
executeBulkDelete(deletes: BulkDeleteOperation[], options?: BulkWriteOptions): Promise<void>;
|
|
230
|
+
/**
|
|
231
|
+
* Import data from CSV
|
|
232
|
+
*
|
|
233
|
+
* Imports data from CSV string into a TM1 cube with configurable parsing options.
|
|
234
|
+
*
|
|
235
|
+
* @param cubeName - Target cube name
|
|
236
|
+
* @param csvData - CSV data as string
|
|
237
|
+
* @param options - CSV import options
|
|
238
|
+
*
|
|
239
|
+
* @example
|
|
240
|
+
* ```typescript
|
|
241
|
+
* const csv = `Year,Quarter,Amount
|
|
242
|
+
* 2024,Q1,100000
|
|
243
|
+
* 2024,Q2,120000`;
|
|
244
|
+
* await bulkService.importDataFromCSV('Sales', csv, { hasHeader: true });
|
|
245
|
+
* ```
|
|
246
|
+
*/
|
|
247
|
+
importDataFromCSV(cubeName: string, csvData: string, options?: CSVImportOptions): Promise<void>;
|
|
248
|
+
/**
|
|
249
|
+
* Export data to CSV
|
|
250
|
+
*
|
|
251
|
+
* Exports cube data to CSV format using an MDX query.
|
|
252
|
+
*
|
|
253
|
+
* @param cubeName - Source cube name
|
|
254
|
+
* @param mdx - MDX query to define data selection
|
|
255
|
+
* @param options - CSV export options
|
|
256
|
+
* @returns CSV data as string
|
|
257
|
+
*
|
|
258
|
+
* @example
|
|
259
|
+
* ```typescript
|
|
260
|
+
* const mdx = `SELECT {[Year].[2024]} ON 0 FROM [Sales]`;
|
|
261
|
+
* const csv = await bulkService.exportDataToCSV('Sales', mdx, { includeHeader: true });
|
|
262
|
+
* ```
|
|
263
|
+
*/
|
|
264
|
+
exportDataToCSV(cubeName: string, mdx: string, options?: CSVExportOptions): Promise<string>;
|
|
265
|
+
/**
|
|
266
|
+
* Import data from JSON
|
|
267
|
+
*
|
|
268
|
+
* Imports data from JSON format into a TM1 cube.
|
|
269
|
+
*
|
|
270
|
+
* @param cubeName - Target cube name
|
|
271
|
+
* @param jsonData - JSON data array
|
|
272
|
+
* @param options - JSON import options
|
|
273
|
+
*
|
|
274
|
+
* @example
|
|
275
|
+
* ```typescript
|
|
276
|
+
* const data = [
|
|
277
|
+
* { coordinates: ['2024', 'Q1', 'Revenue'], value: 100000 },
|
|
278
|
+
* { coordinates: ['2024', 'Q2', 'Revenue'], value: 120000 }
|
|
279
|
+
* ];
|
|
280
|
+
* await bulkService.importDataFromJSON('Sales', data);
|
|
281
|
+
* ```
|
|
282
|
+
*/
|
|
283
|
+
importDataFromJSON(cubeName: string, jsonData: any[], options?: JSONImportOptions): Promise<void>;
|
|
284
|
+
/**
|
|
285
|
+
* Export data to JSON
|
|
286
|
+
*
|
|
287
|
+
* Exports cube data to JSON format using an MDX query.
|
|
288
|
+
*
|
|
289
|
+
* @param cubeName - Source cube name
|
|
290
|
+
* @param mdx - MDX query to define data selection
|
|
291
|
+
* @param options - JSON export options
|
|
292
|
+
* @returns Array of JSON objects with coordinates and values
|
|
293
|
+
*
|
|
294
|
+
* @example
|
|
295
|
+
* ```typescript
|
|
296
|
+
* const mdx = `SELECT {[Year].[2024]} ON 0 FROM [Sales]`;
|
|
297
|
+
* const data = await bulkService.exportDataToJSON('Sales', mdx);
|
|
298
|
+
* ```
|
|
299
|
+
*/
|
|
300
|
+
exportDataToJSON(cubeName: string, mdx: string, options?: JSONExportOptions): Promise<any[]>;
|
|
301
|
+
/**
|
|
302
|
+
* Execute batch operations
|
|
303
|
+
*
|
|
304
|
+
* Executes a mixed batch of operations (read, write, update, delete) in sequence.
|
|
305
|
+
*
|
|
306
|
+
* @param batch - Array of mixed batch operations
|
|
307
|
+
* @returns Array of batch results
|
|
308
|
+
*
|
|
309
|
+
* @example
|
|
310
|
+
* ```typescript
|
|
311
|
+
* const batch = [
|
|
312
|
+
* { type: 'write', cubeName: 'Sales', coordinates: ['2024', 'Q1'], value: 100 },
|
|
313
|
+
* { type: 'read', cubeName: 'Sales', coordinates: ['2024', 'Q1'] }
|
|
314
|
+
* ];
|
|
315
|
+
* const results = await bulkService.executeBatchOperations(batch);
|
|
316
|
+
* ```
|
|
317
|
+
*/
|
|
318
|
+
executeBatchOperations(batch: BatchOperation[]): Promise<BatchResult[]>;
|
|
319
|
+
/**
|
|
320
|
+
* Create batch transaction
|
|
321
|
+
*
|
|
322
|
+
* Creates a transaction that can be committed or rolled back.
|
|
323
|
+
*
|
|
324
|
+
* @param operations - Array of operations for the transaction
|
|
325
|
+
* @returns Transaction ID
|
|
326
|
+
*
|
|
327
|
+
* @example
|
|
328
|
+
* ```typescript
|
|
329
|
+
* const txId = await bulkService.createBatchTransaction(operations);
|
|
330
|
+
* try {
|
|
331
|
+
* await bulkService.commitBatchTransaction(txId);
|
|
332
|
+
* } catch (error) {
|
|
333
|
+
* await bulkService.rollbackBatchTransaction(txId);
|
|
334
|
+
* }
|
|
335
|
+
* ```
|
|
336
|
+
*/
|
|
337
|
+
createBatchTransaction(operations: BatchOperation[]): Promise<string>;
|
|
338
|
+
/**
|
|
339
|
+
* Commit batch transaction
|
|
340
|
+
*
|
|
341
|
+
* Executes and commits a previously created transaction.
|
|
342
|
+
*
|
|
343
|
+
* @param transactionId - Transaction ID to commit
|
|
344
|
+
*/
|
|
345
|
+
commitBatchTransaction(transactionId: string): Promise<void>;
|
|
346
|
+
/**
|
|
347
|
+
* Rollback batch transaction
|
|
348
|
+
*
|
|
349
|
+
* Rolls back a transaction without executing operations.
|
|
350
|
+
*
|
|
351
|
+
* @param transactionId - Transaction ID to rollback
|
|
352
|
+
*/
|
|
353
|
+
rollbackBatchTransaction(transactionId: string): Promise<void>;
|
|
354
|
+
/**
|
|
355
|
+
* Group operations by cube name for batch processing
|
|
356
|
+
*/
|
|
357
|
+
private groupOperationsByCube;
|
|
358
|
+
/**
|
|
359
|
+
* Group queries by cube name for batch processing
|
|
360
|
+
*/
|
|
361
|
+
private groupQueriesByCube;
|
|
362
|
+
/**
|
|
363
|
+
* Split array into chunks
|
|
364
|
+
*/
|
|
365
|
+
private chunkArray;
|
|
366
|
+
/**
|
|
367
|
+
* Parse CSV line with delimiter handling
|
|
368
|
+
*/
|
|
369
|
+
private parseCSVLine;
|
|
370
|
+
/**
|
|
371
|
+
* Parse value from string (handles numbers and strings)
|
|
372
|
+
*/
|
|
373
|
+
private parseValue;
|
|
374
|
+
/**
|
|
375
|
+
* Generate unique transaction ID
|
|
376
|
+
*/
|
|
377
|
+
private generateTransactionId;
|
|
378
|
+
/**
|
|
379
|
+
* Sleep helper for retry delays
|
|
380
|
+
*/
|
|
381
|
+
private sleep;
|
|
382
|
+
}
|
|
383
|
+
//# sourceMappingURL=BulkService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BulkService.d.ts","sourceRoot":"","sources":["../../src/services/BulkService.ts"],"names":[],"mappings":"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"}
|