datagrok-tools 4.13.58 → 4.13.59

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/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Datagrok-tools changelog
2
2
 
3
+ ## 4.13.59 (2025-01-09)
4
+
5
+ ### Features
6
+
7
+ * Benchmark testing fix
8
+ * Updated csv output result(it saves benchmark and stress data now)
9
+
10
+
3
11
  ## 4.13.58 (2025-01-09)
4
12
 
5
13
  ### Features
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.help = void 0;
7
- var HELP = "\nUsage: grok <command>\n\nDatagrok's package management tool\n\nCommands:\n add Add an object template\n api Create wrapper functions\n check Check package content (function signatures, etc.)\n config Create and manage config files\n create Create a package\n init Modify a package template\n link Link `datagrok-api` and libraries for local development\n publish Upload a package\n test Run package tests\n testAll Run packages tests\n\nTo get help on a particular command, use:\n grok <command> --help\n\nRead more about the package development workflow:\nhttps://datagrok.ai/help/develop/develop\n";
7
+ var HELP = "\nUsage: grok <command>\n\nDatagrok's package management tool\n\nCommands:\n add Add an object template\n api Create wrapper functions\n check Check package content (function signatures, etc.)\n config Create and manage config files\n create Create a package\n init Modify a package template\n link Link `datagrok-api` and libraries for local development\n publish Upload a package\n test Run package tests\n testall Run packages tests\n\nTo get help on a particular command, use:\n grok <command> --help\n\nRead more about the package development workflow:\nhttps://datagrok.ai/help/develop/develop\n";
8
8
  var HELP_ADD = "\nUsage: grok add <entity> <name>\n\nAdd an object template to your package:\n\ngrok add app <name>\ngrok add connection <name>\ngrok add detector <semantic-type-name>\ngrok add function [tag] <name>\ngrok add query <name>\ngrok add script [tag] <language> <name>\ngrok add view <name>\ngrok add viewer <name>\ngrok add tests\n\nPlease note that entity names may only include letters and numbers\n\nSupported languages for scripts:\njavascript, julia, node, octave, python, r\n\nAvailable tags:\npanel, init\n";
9
9
  var HELP_INIT = "\nUsage: grok init\n\nModify a package template by adding config files for linters, IDE, etc.\n\nOptions:\n[--eslint] [--ide] [--test] [--ts] [--git]\n\n--eslint Add a configuration for eslint\n--ide Add an IDE-specific configuration for debugging (vscode)\n--test Add tests support (TypeScript packages only)\n--ts Convert a JavaScript package to TypeScript\n--git Configure GIT and install commit linting tools.\n Read more: https://datagrok.ai/help/develop/advanced/git-policy\n";
10
10
  var HELP_API = "\nUsage: grok api\n\nCreate wrapper functions for package scripts and queries\n";
@@ -16,7 +16,6 @@ var utils = _interopRequireWildcard(require("../utils/utils"));
16
16
  var _testUtils = _interopRequireWildcard(require("../utils/test-utils"));
17
17
  var testUtils = _testUtils;
18
18
  var _orderFunctions = require("../utils/order-functions");
19
- var Papa = _interopRequireWildcard(require("papaparse"));
20
19
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
21
20
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
22
21
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
@@ -66,7 +65,7 @@ function testAll(_x) {
66
65
  }
67
66
  function _testAll() {
68
67
  _testAll = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(args) {
69
- var _args$tags, _args$order, _args$benchmark, _args$catchUnhandled, _args$gui, _args$record, _args$report, _args$verbose;
68
+ var _args$tags, _args$order, _args$benchmark, _args$stressTest, _args$catchUnhandled, _args$gui, _args$record, _args$report, _args$verbose;
70
69
  var config, packagesToRun, testsObj, filteredTests, browsersOrder, testsResults, i, _iterator, _step, result;
71
70
  return _regenerator["default"].wrap(function _callee$(_context) {
72
71
  while (1) switch (_context.prev = _context.next) {
@@ -94,6 +93,7 @@ function _testAll() {
94
93
  _context.next = 16;
95
94
  return runTests(browsersOrder, {
96
95
  benchmark: (_args$benchmark = args.benchmark) !== null && _args$benchmark !== void 0 ? _args$benchmark : false,
96
+ stressTest: (_args$stressTest = args['stress-test']) !== null && _args$stressTest !== void 0 ? _args$stressTest : false,
97
97
  catchUnhandled: (_args$catchUnhandled = args.catchUnhandled) !== null && _args$catchUnhandled !== void 0 ? _args$catchUnhandled : false,
98
98
  gui: (_args$gui = args.gui) !== null && _args$gui !== void 0 ? _args$gui : false,
99
99
  record: (_args$record = args.record) !== null && _args$record !== void 0 ? _args$record : false,
@@ -272,7 +272,7 @@ function runTests(_x5, _x6) {
272
272
  }
273
273
  function _runTests() {
274
274
  _runTests = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(browsersOrder, browserOptions) {
275
- var browsersCommands, _iterator3, _step3, browserOrder, browsersPromises, _i, _browsersCommands, browserCommands, resultObjects, i;
275
+ var browsersCommands, _iterator3, _step3, browserOrder, browsersPromises, _i, _browsersCommands, browserCommands, resultObjects, i, _browserOptions$stres, _browserOptions$bench;
276
276
  return _regenerator["default"].wrap(function _callee4$(_context5) {
277
277
  while (1) switch (_context5.prev = _context5.next) {
278
278
  case 0:
@@ -312,56 +312,32 @@ function _runTests() {
312
312
  i = 0;
313
313
  case 9:
314
314
  if (!(i < resultObjects.length)) {
315
- _context5.next = 16;
315
+ _context5.next = 22;
316
316
  break;
317
317
  }
318
318
  _context5.next = 12;
319
- return addBrowserColumn(resultObjects[i].csv, i);
319
+ return (0, _testUtils.addColumnToCsv)(resultObjects[i].csv, "browser", i);
320
320
  case 12:
321
321
  resultObjects[i].csv = _context5.sent;
322
- case 13:
322
+ _context5.next = 15;
323
+ return (0, _testUtils.addColumnToCsv)(resultObjects[i].csv, "stress_test", (_browserOptions$stres = browserOptions.stressTest) !== null && _browserOptions$stres !== void 0 ? _browserOptions$stres : false);
324
+ case 15:
325
+ resultObjects[i].csv = _context5.sent;
326
+ _context5.next = 18;
327
+ return (0, _testUtils.addColumnToCsv)(resultObjects[i].csv, "benchmark", (_browserOptions$bench = browserOptions.benchmark) !== null && _browserOptions$bench !== void 0 ? _browserOptions$bench : false);
328
+ case 18:
329
+ resultObjects[i].csv = _context5.sent;
330
+ case 19:
323
331
  i++;
324
332
  _context5.next = 9;
325
333
  break;
326
- case 16:
334
+ case 22:
327
335
  return _context5.abrupt("return", resultObjects);
328
- case 17:
336
+ case 23:
329
337
  case "end":
330
338
  return _context5.stop();
331
339
  }
332
340
  }, _callee4);
333
341
  }));
334
342
  return _runTests.apply(this, arguments);
335
- }
336
- function addBrowserColumn(_x7, _x8) {
337
- return _addBrowserColumn.apply(this, arguments);
338
- }
339
- function _addBrowserColumn() {
340
- _addBrowserColumn = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5(csv, workerNumber) {
341
- var result;
342
- return _regenerator["default"].wrap(function _callee5$(_context6) {
343
- while (1) switch (_context6.prev = _context6.next) {
344
- case 0:
345
- result = "";
346
- Papa.parse(csv, {
347
- header: true,
348
- skipEmptyLines: true,
349
- complete: function complete(results) {
350
- var dataWithDefaultColumn = results.data.map(function (row) {
351
- row["browser"] = workerNumber;
352
- return row;
353
- });
354
- result = Papa.unparse(dataWithDefaultColumn, {
355
- header: true
356
- });
357
- }
358
- });
359
- return _context6.abrupt("return", result);
360
- case 3:
361
- case "end":
362
- return _context6.stop();
363
- }
364
- }, _callee5);
365
- }));
366
- return _addBrowserColumn.apply(this, arguments);
367
343
  }
@@ -91,7 +91,7 @@ function runTesting(_x2) {
91
91
  function _runTesting() {
92
92
  _runTesting = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(args) {
93
93
  var _process$env$TARGET_P, _args$category;
94
- var testsObj, parsed, organized, filtered, categoryRegex, _iterator, _step, element, testsResults, r, browserId;
94
+ var loadedTests, testsObj, _iterator, _step, element, parsed, organized, filtered, categoryRegex, _iterator2, _step2, _element, testsResults, r, browserId;
95
95
  return _regenerator["default"].wrap(function _callee3$(_context3) {
96
96
  while (1) switch (_context3.prev = _context3.next) {
97
97
  case 0:
@@ -99,10 +99,51 @@ function _runTesting() {
99
99
  _context3.next = 3;
100
100
  return (0, _testUtils.loadTestsList)([(_process$env$TARGET_P = process.env.TARGET_PACKAGE) !== null && _process$env$TARGET_P !== void 0 ? _process$env$TARGET_P : ''], args.core);
101
101
  case 3:
102
- testsObj = _context3.sent;
102
+ loadedTests = _context3.sent;
103
+ testsObj = [];
104
+ if (!(args['stress-test'] || args.benchmark)) {
105
+ _context3.next = 26;
106
+ break;
107
+ }
108
+ _iterator = _createForOfIteratorHelper(loadedTests);
109
+ _context3.prev = 7;
110
+ _iterator.s();
111
+ case 9:
112
+ if ((_step = _iterator.n()).done) {
113
+ _context3.next = 16;
114
+ break;
115
+ }
116
+ element = _step.value;
117
+ if (!(args.benchmark && !element.options.benchmark || args['stress-test'] && !element.options.stressTest)) {
118
+ _context3.next = 13;
119
+ break;
120
+ }
121
+ return _context3.abrupt("continue", 14);
122
+ case 13:
123
+ testsObj.push(element);
124
+ case 14:
125
+ _context3.next = 9;
126
+ break;
127
+ case 16:
128
+ _context3.next = 21;
129
+ break;
130
+ case 18:
131
+ _context3.prev = 18;
132
+ _context3.t0 = _context3["catch"](7);
133
+ _iterator.e(_context3.t0);
134
+ case 21:
135
+ _context3.prev = 21;
136
+ _iterator.f();
137
+ return _context3.finish(21);
138
+ case 24:
139
+ _context3.next = 27;
140
+ break;
141
+ case 26:
142
+ testsObj = loadedTests;
143
+ case 27:
103
144
  parsed = (0, _orderFunctions.setAlphabeticalOrder)(testsObj, 1, 1);
104
145
  if (!(parsed.length == 0)) {
105
- _context3.next = 7;
146
+ _context3.next = 30;
106
147
  break;
107
148
  }
108
149
  return _context3.abrupt("return", {
@@ -115,7 +156,7 @@ function _runTesting() {
115
156
  failedAmount: 0,
116
157
  csv: ''
117
158
  });
118
- case 7:
159
+ case 30:
119
160
  organized = parsed[0].map(function (testObj) {
120
161
  return {
121
162
  "package": testObj.packageName,
@@ -132,18 +173,18 @@ function _runTesting() {
132
173
  filtered = [];
133
174
  categoryRegex = new RegExp("".concat((_args$category = args.category) === null || _args$category === void 0 ? void 0 : _args$category.replaceAll(' ', ''), ".*"));
134
175
  if (args.category) {
135
- _iterator = _createForOfIteratorHelper(organized);
176
+ _iterator2 = _createForOfIteratorHelper(organized);
136
177
  try {
137
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
138
- element = _step.value;
139
- if (categoryRegex.test(element.params.category.replaceAll(' ', ''))) {
140
- if (element.params.test === args.test || !args.test) filtered.push(element);
178
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
179
+ _element = _step2.value;
180
+ if (categoryRegex.test(_element.params.category.replaceAll(' ', ''))) {
181
+ if (_element.params.test === args.test || !args.test) filtered.push(_element);
141
182
  }
142
183
  }
143
184
  } catch (err) {
144
- _iterator.e(err);
185
+ _iterator2.e(err);
145
186
  } finally {
146
- _iterator.f();
187
+ _iterator2.f();
147
188
  }
148
189
  organized = filtered;
149
190
  }
@@ -154,15 +195,16 @@ function _runTesting() {
154
195
  color.info('Starting tests...');
155
196
  testsResults = [];
156
197
  browserId = 1;
157
- _context3.next = 17;
198
+ _context3.next = 40;
158
199
  return (0, _testUtils.timeout)( /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
159
- var _args$benchmark, _args$catchUnhandled, _args$gui, _args$record, _args$report, _args$verbose, _args$ciCd, testsLeft, testsToReproduce, _iterator2, _step2, testData, reproduced, _iterator3, _step3, _test2, _reproducedTest2;
200
+ var _args$benchmark, _args$stressTest, _args$catchUnhandled, _args$gui, _args$record, _args$report, _args$verbose, _args$ciCd, _args$stressTest2, _args$benchmark2, testsLeft, testsToReproduce, _iterator3, _step3, testData, reproduced, _iterator4, _step4, _test2, _reproducedTest2;
160
201
  return _regenerator["default"].wrap(function _callee2$(_context2) {
161
202
  while (1) switch (_context2.prev = _context2.next) {
162
203
  case 0:
163
204
  _context2.next = 2;
164
205
  return (0, _testUtils.runBrowser)(organized, {
165
206
  benchmark: (_args$benchmark = args.benchmark) !== null && _args$benchmark !== void 0 ? _args$benchmark : false,
207
+ stressTest: (_args$stressTest = args['stress-test']) !== null && _args$stressTest !== void 0 ? _args$stressTest : false,
166
208
  catchUnhandled: (_args$catchUnhandled = args.catchUnhandled) !== null && _args$catchUnhandled !== void 0 ? _args$catchUnhandled : false,
167
209
  gui: (_args$gui = args.gui) !== null && _args$gui !== void 0 ? _args$gui : false,
168
210
  record: (_args$record = args.record) !== null && _args$record !== void 0 ? _args$record : false,
@@ -175,19 +217,19 @@ function _runTesting() {
175
217
  r = _context2.sent;
176
218
  testsLeft = [];
177
219
  testsToReproduce = [];
178
- _iterator2 = _createForOfIteratorHelper(organized);
220
+ _iterator3 = _createForOfIteratorHelper(organized);
179
221
  try {
180
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
181
- testData = _step2.value;
222
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
223
+ testData = _step3.value;
182
224
  if (!r.verbosePassed.includes("".concat(testData.params.category, ": ").concat(testData.params.test)) && !r.verboseSkipped.includes("".concat(testData.params.category, ": ").concat(testData.params.test)) && !r.verboseFailed.includes("".concat(testData.params.category, ": ").concat(testData.params.test)) && !new RegExp("".concat(testData.params.category.trim(), "[^\\n]*: (before|after)")).test(r.verboseFailed)) testsLeft.push(testData);
183
225
  if (r.verboseFailed.includes("".concat(testData.params.category, ": ").concat(testData.params.test, " : Error:"))) {
184
226
  testsToReproduce.push(testData);
185
227
  }
186
228
  }
187
229
  } catch (err) {
188
- _iterator2.e(err);
230
+ _iterator3.e(err);
189
231
  } finally {
190
- _iterator2.f();
232
+ _iterator3.f();
191
233
  }
192
234
  if (!(testsToReproduce.length > 0)) {
193
235
  _context2.next = 31;
@@ -197,15 +239,15 @@ function _runTesting() {
197
239
  return reproducedTest(args, testsToReproduce);
198
240
  case 10:
199
241
  reproduced = _context2.sent;
200
- _iterator3 = _createForOfIteratorHelper(testsToReproduce);
242
+ _iterator4 = _createForOfIteratorHelper(testsToReproduce);
201
243
  _context2.prev = 12;
202
- _iterator3.s();
244
+ _iterator4.s();
203
245
  case 14:
204
- if ((_step3 = _iterator3.n()).done) {
246
+ if ((_step4 = _iterator4.n()).done) {
205
247
  _context2.next = 23;
206
248
  break;
207
249
  }
208
- _test2 = _step3.value;
250
+ _test2 = _step4.value;
209
251
  _reproducedTest2 = reproduced.get(_test2);
210
252
  if (!(_reproducedTest2 && !_reproducedTest2.failed)) {
211
253
  _context2.next = 21;
@@ -224,36 +266,49 @@ function _runTesting() {
224
266
  case 25:
225
267
  _context2.prev = 25;
226
268
  _context2.t0 = _context2["catch"](12);
227
- _iterator3.e(_context2.t0);
269
+ _iterator4.e(_context2.t0);
228
270
  case 28:
229
271
  _context2.prev = 28;
230
- _iterator3.f();
272
+ _iterator4.f();
231
273
  return _context2.finish(28);
232
274
  case 31:
275
+ _context2.next = 33;
276
+ return (0, _testUtils.addColumnToCsv)(r.csv, "stress_test", (_args$stressTest2 = args['stress-test']) !== null && _args$stressTest2 !== void 0 ? _args$stressTest2 : false);
277
+ case 33:
278
+ r.csv = _context2.sent;
279
+ _context2.next = 36;
280
+ return (0, _testUtils.addColumnToCsv)(r.csv, "benchmark", (_args$benchmark2 = args.benchmark) !== null && _args$benchmark2 !== void 0 ? _args$benchmark2 : false);
281
+ case 36:
282
+ r.csv = _context2.sent;
233
283
  testsResults.push(r);
234
284
  organized = testsLeft;
235
285
  browserId++;
236
- case 34:
286
+ if (!(r.verboseFailed === 'Tests execution failed')) {
287
+ _context2.next = 42;
288
+ break;
289
+ }
290
+ return _context2.abrupt("break", 43);
291
+ case 42:
237
292
  if (r.failed) {
238
293
  _context2.next = 0;
239
294
  break;
240
295
  }
241
- case 35:
296
+ case 43:
242
297
  case "end":
243
298
  return _context2.stop();
244
299
  }
245
300
  }, _callee2, null, [[12, 25, 28, 31]]);
246
301
  })), testInvocationTimeout);
247
- case 17:
248
- _context3.next = 19;
302
+ case 40:
303
+ _context3.next = 42;
249
304
  return (0, _testUtils.mergeBrowsersResults)(testsResults);
250
- case 19:
305
+ case 42:
251
306
  return _context3.abrupt("return", _context3.sent);
252
- case 20:
307
+ case 43:
253
308
  case "end":
254
309
  return _context3.stop();
255
310
  }
256
- }, _callee3);
311
+ }, _callee3, null, [[7, 18, 21, 24]]);
257
312
  }));
258
313
  return _runTesting.apply(this, arguments);
259
314
  }
@@ -262,23 +317,23 @@ function reproducedTest(_x3, _x4) {
262
317
  }
263
318
  function _reproducedTest() {
264
319
  _reproducedTest = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(args, testsToReproduce) {
265
- var res, _iterator4, _step4, _args$benchmark2, _args$ciCd2, _test3, r;
320
+ var res, _iterator5, _step5, _args$benchmark3, _args$ciCd2, _test3, r;
266
321
  return _regenerator["default"].wrap(function _callee4$(_context4) {
267
322
  while (1) switch (_context4.prev = _context4.next) {
268
323
  case 0:
269
324
  res = new Map();
270
- _iterator4 = _createForOfIteratorHelper(testsToReproduce);
325
+ _iterator5 = _createForOfIteratorHelper(testsToReproduce);
271
326
  _context4.prev = 2;
272
- _iterator4.s();
327
+ _iterator5.s();
273
328
  case 4:
274
- if ((_step4 = _iterator4.n()).done) {
329
+ if ((_step5 = _iterator5.n()).done) {
275
330
  _context4.next = 12;
276
331
  break;
277
332
  }
278
- _test3 = _step4.value;
333
+ _test3 = _step5.value;
279
334
  _context4.next = 8;
280
335
  return (0, _testUtils.runBrowser)([_test3], {
281
- benchmark: (_args$benchmark2 = args.benchmark) !== null && _args$benchmark2 !== void 0 ? _args$benchmark2 : false,
336
+ benchmark: (_args$benchmark3 = args.benchmark) !== null && _args$benchmark3 !== void 0 ? _args$benchmark3 : false,
282
337
  catchUnhandled: false,
283
338
  gui: false,
284
339
  record: false,
@@ -300,10 +355,10 @@ function _reproducedTest() {
300
355
  case 14:
301
356
  _context4.prev = 14;
302
357
  _context4.t0 = _context4["catch"](2);
303
- _iterator4.e(_context4.t0);
358
+ _iterator5.e(_context4.t0);
304
359
  case 17:
305
360
  _context4.prev = 17;
306
- _iterator4.f();
361
+ _iterator5.f();
307
362
  return _context4.finish(17);
308
363
  case 20:
309
364
  return _context4.abrupt("return", res);
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.TestContext = void 0;
9
+ exports.addColumnToCsv = addColumnToCsv;
9
10
  exports.addLogsToFile = addLogsToFile;
10
11
  exports.defaultLaunchParameters = void 0;
11
12
  exports.exitWithCode = exitWithCode;
@@ -38,6 +39,7 @@ var utils = _utils;
38
39
  var _puppeteerScreenRecorder = require("puppeteer-screen-recorder");
39
40
  var _puppeteer = _interopRequireDefault(require("puppeteer"));
40
41
  var color = _interopRequireWildcard(require("../utils/color-utils"));
42
+ var _papaparse = _interopRequireDefault(require("papaparse"));
41
43
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
42
44
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
43
45
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
@@ -791,4 +793,36 @@ var TestContext = exports.TestContext = /*#__PURE__*/(0, _createClass2["default"
791
793
  (0, _defineProperty2["default"])(this, "report", false);
792
794
  if (catchUnhandled !== undefined) this.catchUnhandled = catchUnhandled;
793
795
  if (report !== undefined) this.report = report;
794
- });
796
+ });
797
+ function addColumnToCsv(_x22, _x23, _x24) {
798
+ return _addColumnToCsv.apply(this, arguments);
799
+ }
800
+ function _addColumnToCsv() {
801
+ _addColumnToCsv = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee12(csv, columnName, defaultValue) {
802
+ var result;
803
+ return _regenerator["default"].wrap(function _callee12$(_context12) {
804
+ while (1) switch (_context12.prev = _context12.next) {
805
+ case 0:
806
+ result = csv;
807
+ _papaparse["default"].parse(csv, {
808
+ header: true,
809
+ skipEmptyLines: true,
810
+ complete: function complete(results) {
811
+ var dataWithDefaultColumn = results.data.map(function (row) {
812
+ row[columnName] = defaultValue;
813
+ return row;
814
+ });
815
+ result = _papaparse["default"].unparse(dataWithDefaultColumn, {
816
+ header: true
817
+ });
818
+ }
819
+ });
820
+ return _context12.abrupt("return", result);
821
+ case 3:
822
+ case "end":
823
+ return _context12.stop();
824
+ }
825
+ }, _callee12);
826
+ }));
827
+ return _addColumnToCsv.apply(this, arguments);
828
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "datagrok-tools",
3
- "version": "4.13.58",
3
+ "version": "4.13.59",
4
4
  "description": "Utility to upload and publish packages to Datagrok",
5
5
  "homepage": "https://github.com/datagrok-ai/public/tree/master/tools#readme",
6
6
  "dependencies": {