vis-dev-utils 3.0.4 → 3.0.7

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.
@@ -6,8 +6,8 @@
6
6
  *
7
7
  * Development utilities for the Vis family projects.
8
8
  *
9
- * @version 3.0.4
10
- * @date 2022-03-10T21:24:40.299Z
9
+ * @version 3.0.7
10
+ * @date 2022-03-12T19:51:10.352Z
11
11
  *
12
12
  * @copyright (c) 2011-2017 Almende B.V, http://almende.com
13
13
  * @copyright (c) 2017-2019 visjs contributors, https://github.com/visjs
@@ -63,9 +63,9 @@ var _Object$getOwnPropertyDescriptor = require('@babel/runtime-corejs3/core-js-s
63
63
  var _Object$getOwnPropertyDescriptors = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors');
64
64
  var _Object$defineProperties = require('@babel/runtime-corejs3/core-js-stable/object/define-properties');
65
65
  var _Object$defineProperty = require('@babel/runtime-corejs3/core-js-stable/object/define-property');
66
- var _defineProperty = require('@babel/runtime-corejs3/helpers/defineProperty');
67
66
  var _createClass = require('@babel/runtime-corejs3/helpers/createClass');
68
67
  var _classCallCheck = require('@babel/runtime-corejs3/helpers/classCallCheck');
68
+ var _defineProperty = require('@babel/runtime-corejs3/helpers/defineProperty');
69
69
  var _padStartInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/pad-start');
70
70
  var child_process = require('child_process');
71
71
 
@@ -103,9 +103,9 @@ var _Object$getOwnPropertyDescriptor__default = /*#__PURE__*/_interopDefaultLega
103
103
  var _Object$getOwnPropertyDescriptors__default = /*#__PURE__*/_interopDefaultLegacy(_Object$getOwnPropertyDescriptors);
104
104
  var _Object$defineProperties__default = /*#__PURE__*/_interopDefaultLegacy(_Object$defineProperties);
105
105
  var _Object$defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_Object$defineProperty);
106
- var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
107
106
  var _createClass__default = /*#__PURE__*/_interopDefaultLegacy(_createClass);
108
107
  var _classCallCheck__default = /*#__PURE__*/_interopDefaultLegacy(_classCallCheck);
108
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
109
109
  var _padStartInstanceProperty__default = /*#__PURE__*/_interopDefaultLegacy(_padStartInstanceProperty);
110
110
 
111
111
  var y = yargs__default["default"].strict(true).usage("test-e2e-interop [options]").hide("version").config().help().option("fail-command", {
@@ -128,6 +128,11 @@ var y = yargs__default["default"].strict(true).usage("test-e2e-interop [options]
128
128
  demandOption: false,
129
129
  describe: "The working directory for E2E testing. If omitted a new tmp dir will be created and then disposed of.",
130
130
  type: "string"
131
+ }).option("logs-to-stdout", {
132
+ demandOption: false,
133
+ default: false,
134
+ describe: "Output the logs to the stdout after the tests finished.",
135
+ type: "boolean"
131
136
  });
132
137
  /**
133
138
  *
@@ -142,23 +147,46 @@ function parseArguments() {
142
147
  function ownKeys(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
143
148
 
144
149
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context8, _context9; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context8 = ownKeys(Object(source), !0)).call(_context8, function (key) { _defineProperty__default["default"](target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context9 = ownKeys(Object(source))).call(_context9, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
145
- var ProjectState = /*#__PURE__*/_createClass__default["default"](function ProjectState() {
150
+ var ProjectState = /*#__PURE__*/_createClass__default["default"](
151
+ /**
152
+ * This will be resolved or rejected once all the tasks associated with this
153
+ * project finish.
154
+ */
155
+
156
+ /**
157
+ * Run this to mark the project as successfully finished.
158
+ */
159
+
160
+ /**
161
+ * Run this to mark the project as failed.
162
+ */
163
+
164
+ /**
165
+ * Provide information about current state of the project.
166
+ */
167
+ function ProjectState() {
146
168
  var _this = this;
147
169
 
148
170
  _classCallCheck__default["default"](this, ProjectState);
149
171
 
150
- /**
151
- * Provide information about current state of the project.
152
- */
153
- this.stage = "pending";
172
+ _defineProperty__default["default"](this, "promise", void 0);
173
+
174
+ _defineProperty__default["default"](this, "resolve", void 0);
175
+
176
+ _defineProperty__default["default"](this, "reject", void 0);
177
+
178
+ _defineProperty__default["default"](this, "stage", "pending");
179
+
154
180
  this.promise = new _Promise__default["default"](function (resolve, reject) {
155
181
  _this.resolve = resolve;
156
182
  _this.reject = reject;
157
183
  });
158
184
  });
159
185
  /**
160
- * @param title
161
- * @param details
186
+ * Output formatted error message to stderr.
187
+ *
188
+ * @param title - Some explanatory text as to what's going on.
189
+ * @param details - The error or some other message as to what went wrong.
162
190
  */
163
191
 
164
192
  function logError(title, details) {
@@ -238,7 +266,7 @@ function createSpawner(logDir, getState) {
238
266
  return new _Promise__default["default"](function (resolve, reject) {
239
267
  var _context5;
240
268
 
241
- var commandLogPath = path.join(logDir, _padStartInstanceProperty__default["default"](_context5 = "" + id).call(_context5, 3, "0") + ".log");
269
+ var commandLogPath = path.join(logDir, [path.basename(cwd).replace(/[^a-zA-Z0-9]+/g, "-"), cmd.join("-").replace(/[^a-zA-Z0-9]+/g, "-"), "id-" + _padStartInstanceProperty__default["default"](_context5 = "" + id).call(_context5, 3, "0"), "log"].join("."));
242
270
  var logStream = fsExtra.createWriteStream(commandLogPath, {
243
271
  flags: "a"
244
272
  });
@@ -252,6 +280,20 @@ function createSpawner(logDir, getState) {
252
280
  });
253
281
  child.stdout.pipe(logStream);
254
282
  child.stderr.pipe(logStream);
283
+ /**
284
+ * Add status to the file name just before the .log extension on a best
285
+ * effort basis (no errors reported)..
286
+ *
287
+ * @param code - The code or other kind of status to append.
288
+ */
289
+
290
+ function addStatusCodeToFilename(code) {
291
+ var newPath = _sliceInstanceProperty__default["default"](commandLogPath).call(commandLogPath, 0, -4) + ".status-" + code + ".log";
292
+ fsExtra.rename(commandLogPath, newPath).catch(function (error) {
293
+ console.error("Failed to rename log file to ".concat(newPath, "."), error);
294
+ });
295
+ }
296
+
255
297
  var failed = false;
256
298
  child.on("close", function (code) {
257
299
  if (failed) ; else if (code !== 0) {
@@ -297,9 +339,11 @@ function createSpawner(logDir, getState) {
297
339
  }, _callee, null, [[1, 8]]);
298
340
  }))();
299
341
  });
342
+ addStatusCodeToFilename(code !== null && code !== void 0 ? code : "null");
300
343
  reject(new Error(errorMessage));
301
344
  } else {
302
345
  logInfo("Okay", getLogMessage());
346
+ addStatusCodeToFilename(code);
303
347
  resolve();
304
348
  }
305
349
  });
@@ -307,6 +351,7 @@ function createSpawner(logDir, getState) {
307
351
  failed = true;
308
352
  logError("Fail", getLogMessage());
309
353
  execFail(cwd, failCommand, error);
354
+ addStatusCodeToFilename("error");
310
355
  reject(error);
311
356
  });
312
357
  });
@@ -791,6 +836,7 @@ function checkTmpPath(_x15) {
791
836
  /**
792
837
  * @param root0
793
838
  * @param root0.failCommand
839
+ * @param root0.logsToStdout
794
840
  * @param root0.packageScripts
795
841
  * @param root0.projectPaths
796
842
  * @param root0.tmpPath
@@ -836,7 +882,7 @@ function _test() {
836
882
  _test = _asyncToGenerator__default["default"]( /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee11(_ref2) {
837
883
  var _context18;
838
884
 
839
- var failCommand, packageScripts, projectPaths, tmpPath, data, projectStatuses, getStages, _context21, _context22, _context26, _context27, spawn, allSucceeded, _context28, _context29, _context30, _context31, _iterator3, _step3, _step3$value, projectName, promise;
885
+ var failCommand, logsToStdout, packageScripts, projectPaths, tmpPath, data, projectStatuses, getStages, _context21, _context22, _context26, _context27, spawn, allSucceeded, _iterator3, _step3, _step3$value, projectName, promise, _context28, _context29, _context30, _context31;
840
886
 
841
887
  return _regeneratorRuntime__default["default"].wrap(function _callee11$(_context32) {
842
888
  while (1) {
@@ -856,7 +902,7 @@ function _test() {
856
902
  });
857
903
  };
858
904
 
859
- failCommand = _ref2.failCommand, packageScripts = _ref2.packageScripts, projectPaths = _ref2.projectPaths, tmpPath = _ref2.tmpPath;
905
+ failCommand = _ref2.failCommand, logsToStdout = _ref2.logsToStdout, packageScripts = _ref2.packageScripts, projectPaths = _ref2.projectPaths, tmpPath = _ref2.tmpPath;
860
906
 
861
907
  if (!(process.env.VIS_INTEROP === "1")) {
862
908
  _context32.next = 5;
@@ -1096,7 +1142,7 @@ function _test() {
1096
1142
  _context25.prev = 60;
1097
1143
  _context25.t2 = _context25["catch"](1);
1098
1144
  logError(_concatInstanceProperty__default["default"](_context24 = "Fail ".concat(projectName, " (")).call(_context24, state.stage, "):"), getStages().join("\n"));
1099
- state.reject(_context25.t2);
1145
+ state.reject(_context25.t2 instanceof Error ? _context25.t2 : new Error("" + _context25.t2));
1100
1146
 
1101
1147
  case 64:
1102
1148
  case "end":
@@ -1187,7 +1233,11 @@ function _test() {
1187
1233
  return _context32.finish(60);
1188
1234
 
1189
1235
  case 63:
1190
- // Print the detailed logs for inspection (especially in CI).
1236
+ if (!logsToStdout) {
1237
+ _context32.next = 82;
1238
+ break;
1239
+ }
1240
+
1191
1241
  logInfo("Outputs");
1192
1242
  _context32.t14 = process.stdout;
1193
1243
  _context32.t15 = _concatInstanceProperty__default["default"](_context28 = [""]);
@@ -1195,18 +1245,18 @@ function _test() {
1195
1245
  _context32.t17 = _toConsumableArray__default["default"];
1196
1246
  _context32.t18 = _Promise__default["default"];
1197
1247
  _context32.t19 = _mapInstanceProperty__default["default"];
1198
- _context32.next = 72;
1248
+ _context32.next = 73;
1199
1249
  return fsExtra.readdir(data.tmpLogsResolve());
1200
1250
 
1201
- case 72:
1251
+ case 73:
1202
1252
  _context32.t20 = _context29 = _context32.sent;
1203
1253
  _context32.t21 = (0, _context32.t19)(_context32.t20).call(_context29, function (filename) {
1204
1254
  return fsExtra.readFile(data.tmpLogsResolve(filename), "UTF-8");
1205
1255
  });
1206
- _context32.next = 76;
1256
+ _context32.next = 77;
1207
1257
  return _context32.t18.all.call(_context32.t18, _context32.t21);
1208
1258
 
1209
- case 76:
1259
+ case 77:
1210
1260
  _context32.t22 = _context32.sent;
1211
1261
  _context32.t23 = (0, _context32.t17)(_context32.t22);
1212
1262
  _context32.t24 = [""];
@@ -1214,15 +1264,16 @@ function _test() {
1214
1264
 
1215
1265
  _context32.t14.write.call(_context32.t14, _context32.t25);
1216
1266
 
1267
+ case 82:
1217
1268
  execFail(data.tmpDir.name, failCommand, "Allow the state to be inspected in debug mode before the data is lost.");
1218
1269
  return _context32.finish(38);
1219
1270
 
1220
- case 83:
1271
+ case 84:
1221
1272
  case "end":
1222
1273
  return _context32.stop();
1223
1274
  }
1224
1275
  }
1225
- }, _callee11, null, [[19,, 38, 83], [41, 57, 60, 63], [45, 50]]);
1276
+ }, _callee11, null, [[19,, 38, 84], [41, 57, 60, 63], [45, 50]]);
1226
1277
  }));
1227
1278
  return _test.apply(this, arguments);
1228
1279
  }
@@ -1299,8 +1350,10 @@ var packageScripts = _flatMapInstanceProperty__default["default"](rawPackageScri
1299
1350
 
1300
1351
  var tmpPath = argv["tmp-dir"] ? path.resolve(argv["tmp-dir"]) : undefined;
1301
1352
  var failCommand = argv["fail-command"];
1353
+ var logsToStdout = argv["logs-to-stdout"];
1302
1354
  test({
1303
1355
  failCommand: failCommand,
1356
+ logsToStdout: logsToStdout,
1304
1357
  packageScripts: packageScripts,
1305
1358
  projectPaths: projectPaths,
1306
1359
  tmpPath: tmpPath
@@ -1 +1 @@
1
- {"version":3,"file":"test-e2e-interop.js","sources":["../src/test-e2e-interop/cli.ts","../src/test-e2e-interop/util.ts","../src/test-e2e-interop/test.ts","../src/test-e2e-interop/index.ts"],"sourcesContent":["import yargs from \"yargs\";\n\nconst y = yargs\n .strict(true)\n .usage(\"test-e2e-interop [options]\")\n .hide(\"version\")\n .config()\n .help()\n\n .option(\"fail-command\", {\n demandOption: false,\n describe:\n 'This command will be run in a shell (therefore commands like \"$SHELL\" will work) after failure to inspect the state.',\n type: \"string\",\n })\n .option(\"package-script\", {\n array: true,\n default: [\"clean?\", \"build!\", \"test!\", \"generate-examples-index?\"],\n demandOption: false,\n describe:\n 'The package scripts to run with each package, either \"script-name!\" to fail or \"script-name?\" to skip if the script doesn\\'t exist in given package. By default the script is used for all packages, if you want to use it only for one add package name: \"package-name script-name!\". Scripts are invoked sequentially and command line order is preserved.',\n type: \"string\",\n })\n .option(\"project\", {\n array: true,\n default: [] as string[],\n demandOption: false,\n describe:\n 'Projects to clone using Git, copy from directory or install from tarball. The format is \"package-name URL/path\".',\n type: \"string\",\n })\n .option(\"tmp-dir\", {\n demandOption: false,\n describe:\n \"The working directory for E2E testing. If omitted a new tmp dir will be created and then disposed of.\",\n type: \"string\",\n });\n\n/**\n *\n */\nexport function parseArguments(): ReturnType<typeof y[\"parseSync\"]> {\n return y.parserConfiguration({ \"camel-case-expansion\": false }).parseSync();\n}\n","import { execSync, spawn } from \"child_process\";\nimport { join } from \"path\";\nimport { createWriteStream, readFile } from \"fs-extra\";\n\nexport class ProjectState {\n /**\n * This will be resolved or rejected once all the tasks associated with this\n * project finish.\n */\n public promise: Promise<void>;\n /**\n * Run this to mark the project as successfully finished.\n */\n public resolve!: () => void;\n /**\n * Run this to mark the project as failed.\n */\n public reject!: (reason: Error) => void;\n /**\n * Provide information about current state of the project.\n */\n public stage = \"pending\";\n\n public constructor() {\n this.promise = new Promise<void>((resolve, reject): void => {\n this.resolve = resolve;\n this.reject = reject;\n });\n }\n}\n\n/**\n * @param title\n * @param details\n */\nexport function logError(title: string, details?: string | Error): void {\n const wrappedDetails =\n details != null\n ? `\\n${details instanceof Error ? details.message : details}`\n : \"\";\n process.stderr.write(`\\n==> ${title}${wrappedDetails}\\n`);\n}\n/**\n * @param title\n * @param details\n */\nexport function logInfo(title: string, details?: string): void {\n const wrappedDetails = details ? `:\\n${details}` : \"\";\n process.stdout.write(`\\n==> ${title}${wrappedDetails}\\n`);\n}\n\n/**\n * @param cwd\n * @param failCommand\n * @param error\n */\nexport function execFail(\n cwd: string,\n failCommand: string | null | undefined,\n error: Error | string\n): void {\n if (failCommand) {\n console.error(\"\\n\\nReason for debugging:\");\n console.error(error);\n console.error(\"\\n\\nDebuging:\");\n try {\n execSync(failCommand, {\n cwd,\n encoding: \"utf8\",\n env: { ...process.env, VIS_INTEROP: \"1\" },\n stdio: \"inherit\",\n });\n } catch (error) {\n console.error(error);\n console.error(\n \"The error above is the fail command exitting with non-zero status, not an actual failure in the interop test.\"\n );\n }\n }\n}\n\nexport type Spawn = (options: SpawnOrTrhowArgs) => Promise<void>;\n\nexport interface SpawnOrTrhowArgs {\n cmd: readonly string[];\n cwd: string;\n failCommand?: string;\n}\n/**\n * @param logDir\n * @param getState\n */\nexport function createSpawner(logDir: string, getState: () => string[]): Spawn {\n let nextId = 1;\n\n return function spawnThrow({ cmd, cwd, failCommand }): ReturnType<Spawn> {\n const id = nextId++;\n const getHeaderLines = (): string[] => [\n \"time: \" + new Date().toISOString(),\n \"id: \" + id,\n \"cwd: \" + cwd,\n \"cmd: \" + cmd.map((word): string => JSON.stringify(word)).join(\" \"),\n \"states:\",\n ...getState(),\n ];\n const getLogMessage = (): string =>\n getHeaderLines()\n .map((line): string => \" \" + line)\n .join(\"\\n\");\n\n logInfo(\"Start\", getLogMessage());\n\n return new Promise((resolve, reject): void => {\n const commandLogPath = join(logDir, (\"\" + id).padStart(3, \"0\") + \".log\");\n const logStream = createWriteStream(commandLogPath, {\n flags: \"a\",\n });\n\n logStream.write(getHeaderLines().join(\"\\n\") + \"\\n\\n\");\n\n const child = spawn(cmd[0], cmd.slice(1), {\n cwd,\n env: { ...process.env, VIS_INTEROP: \"1\" },\n stdio: \"pipe\",\n });\n\n child.stdout.pipe(logStream);\n child.stderr.pipe(logStream);\n\n let failed = false;\n child.on(\"close\", (code): void => {\n if (failed) {\n // noop\n } else if (code !== 0) {\n logError(\"Fail\", getLogMessage());\n\n const errorMessage = `${cmd\n .map((word): string => `\"${word}\"`)\n .join(\" \")}: exited with ${code}.`;\n\n logStream.end((): void => {\n (async (): Promise<void> => {\n let commandOutput = \"\";\n try {\n commandOutput += await readFile(commandLogPath, \"utf-8\");\n } catch (error) {\n commandOutput += \"Failed to log command output.\";\n }\n execFail(cwd, failCommand, commandOutput + \"\\n\\n\" + errorMessage);\n })();\n });\n\n reject(new Error(errorMessage));\n } else {\n logInfo(\"Okay\", getLogMessage());\n resolve();\n }\n });\n child.on(\"error\", (error): void => {\n failed = true;\n\n logError(\"Fail\", getLogMessage());\n\n execFail(cwd, failCommand, error);\n\n reject(error);\n });\n });\n };\n}\n","import { DirResult, dirSync, setGracefulCleanup } from \"tmp\";\nimport { resolve as resolvePath } from \"path\";\nimport findUp from \"find-up\";\nimport {\n Stats,\n copy,\n copyFile,\n lstat,\n mkdir,\n mkdirp,\n readFile,\n readdir,\n writeFile,\n unlink,\n} from \"fs-extra\";\n\nimport {\n ProjectState,\n Spawn,\n createSpawner,\n execFail,\n logError,\n logInfo,\n} from \"./util\";\n\n// Remove all temporary files on process exit.\nsetGracefulCleanup();\n\ninterface TestData {\n failCommand?: string;\n packageScripts: readonly PackageScript[];\n projectPaths: ProjectPaths;\n tmpDir: DirResult;\n tmpLogsResolve(...paths: string[]): string;\n tmpReposResolve(...paths: string[]): string;\n tmpRootResolve(...paths: string[]): string;\n visDevUtilsPath: string;\n}\n\nexport interface PackageScript {\n packageName: string | null;\n scriptName: string;\n skipIfMissing: boolean;\n}\n\nexport type ProjectPaths = Record<string, string>;\n\n/**\n * @param tmpPath\n */\nasync function prepareTmpDir(tmpPath?: string): Promise<DirResult> {\n if (tmpPath) {\n await mkdirp(tmpPath);\n\n return {\n name: tmpPath,\n removeCallback: (): void => {},\n };\n } else {\n return dirSync({ unsafeCleanup: true });\n }\n}\n\n/**\n * @param projectName\n */\nfunction getTarballName(projectName: string): string {\n return `${projectName}-0.0.0-no-version.tgz`;\n}\n\n/**\n * @param root0\n * @param root0.tmpRootResolve\n * @param projectName\n */\nfunction getTarballPath(\n { tmpRootResolve }: TestData,\n projectName: string\n): string {\n return tmpRootResolve(`${projectName}.tgz`);\n}\n\n/**\n * @param data\n * @param projectName\n */\nasync function copyTarball(data: TestData, projectName: string): Promise<void> {\n await copyFile(\n data.tmpReposResolve(projectName, getTarballName(projectName)),\n getTarballPath(data, projectName)\n );\n}\n\n/**\n * @param cwd\n */\nasync function getPackageDeps(cwd: string): Promise<string[]> {\n const packageJSONPath = await findUp(\"package.json\", { cwd });\n if (packageJSONPath == null) {\n throw new Error(\"Project's package.json file not found.\");\n }\n const packageJSON = JSON.parse(await readFile(packageJSONPath, \"utf8\"));\n\n return [\n ...new Set([\n ...Object.keys(packageJSON.dependencies || {}),\n ...Object.keys(packageJSON.devDependencies || {}),\n ...Object.keys(packageJSON.peerDependencies || {}),\n ]),\n ];\n}\n\n/**\n * @param data\n * @param projectName\n */\nasync function getPackageLocalDeps(\n data: TestData,\n projectName: string\n): Promise<string[]> {\n const { projectPaths, tmpReposResolve } = data;\n const cwd = tmpReposResolve(projectName);\n return (await getPackageDeps(cwd)).filter(\n (depName): boolean => projectPaths[depName] != null\n );\n}\n\n/**\n * @param spawn\n * @param data\n * @param projectName\n */\nasync function clone(\n spawn: Spawn,\n data: TestData,\n projectName: string\n): Promise<void> {\n const { failCommand, projectPaths, tmpReposResolve } = data;\n\n const cwd = tmpReposResolve();\n const projectPath = projectPaths[projectName];\n\n if (/\\.git$/.test(projectPath)) {\n await spawn({\n cmd: [\n \"git\",\n \"clone\",\n projectPath,\n \"--single-branch\",\n \"--branch\",\n \"master\",\n \"--depth\",\n \"1\",\n ],\n cwd,\n failCommand,\n });\n } else {\n await copy(projectPath, tmpReposResolve(projectName), {\n filter(_src, dest): boolean {\n return (\n !/[\\\\/].git[\\\\/]/.test(dest) && !/[\\\\/]node_modules[\\\\/]/.test(dest)\n );\n },\n });\n }\n}\n\n/**\n * @param cwd\n * @param deps\n */\nasync function updatePackageDepVersions(\n cwd: string,\n deps: Record<string, string>\n): Promise<void> {\n const packageJSONPath = await findUp(\"package.json\", { cwd });\n if (packageJSONPath == null) {\n throw new Error(\"Project's package.json file not found.\");\n }\n const packageJSON = JSON.parse(await readFile(packageJSONPath, \"utf8\"));\n\n Object.keys(packageJSON.dependencies ?? {}).forEach((key): void => {\n if (Object.prototype.hasOwnProperty.call(deps, key)) {\n packageJSON.dependencies[key] = \"file:\" + deps[key];\n }\n });\n Object.keys(packageJSON.devDependencies ?? {}).forEach((key): void => {\n if (Object.prototype.hasOwnProperty.call(deps, key)) {\n packageJSON.devDependencies[key] = \"file:\" + deps[key];\n }\n });\n Object.keys(packageJSON.peerDependencies ?? {}).forEach((key): void => {\n if (Object.prototype.hasOwnProperty.call(deps, key)) {\n packageJSON.peerDependencies[key] = \"file:\" + deps[key];\n }\n });\n\n await writeFile(packageJSONPath, JSON.stringify(packageJSON, undefined, 4));\n}\n\n/**\n * @param spawn\n * @param data\n * @param projectName\n */\nasync function buildTestPack(\n spawn: Spawn,\n data: TestData,\n projectName: string\n): Promise<void> {\n const { failCommand, packageScripts, tmpReposResolve } = data;\n const cwd = tmpReposResolve(projectName);\n\n await updatePackageDepVersions(\n cwd,\n (\n await getPackageLocalDeps(data, projectName)\n ).reduce<Record<string, string>>((acc, key): Record<string, string> => {\n acc[key] = getTarballPath(data, key);\n return acc;\n }, Object.create(null))\n );\n const packageLockPath = await findUp(\"package-lock.json\", { cwd });\n if (packageLockPath != null) {\n await unlink(packageLockPath);\n }\n await spawn({\n cmd: [\"npm\", \"install\"],\n cwd,\n failCommand,\n });\n\n for (const { packageName, scriptName, skipIfMissing } of packageScripts) {\n if (packageName != null && packageName !== projectName) {\n continue;\n } else if (skipIfMissing) {\n await spawn({\n cmd: [\"npm\", \"run\", scriptName, \"--if-present\"],\n cwd,\n failCommand,\n });\n } else {\n await spawn({\n cmd: [\"npm\", \"run\", scriptName],\n cwd,\n failCommand,\n });\n }\n }\n\n await spawn({ cmd: [\"npm\", \"pack\"], cwd, failCommand });\n\n await copyTarball(data, projectName);\n}\n\n/**\n * @param data\n */\nasync function checkTmpPath(data: TestData): Promise<void> {\n const tmpDir = data.tmpRootResolve();\n if ((await readdir(tmpDir)).length !== 0) {\n throw new Error(`The tmp dir (\"${tmpDir}\") is not empty.`);\n }\n}\n\nexport interface TestArgs {\n failCommand?: string;\n projectPaths: ProjectPaths;\n packageScripts: readonly PackageScript[];\n tmpPath?: string;\n}\n/**\n * @param root0\n * @param root0.failCommand\n * @param root0.packageScripts\n * @param root0.projectPaths\n * @param root0.tmpPath\n */\nexport async function test({\n failCommand,\n packageScripts,\n projectPaths,\n tmpPath,\n}: TestArgs): Promise<boolean> {\n if (process.env.VIS_INTEROP === \"1\") {\n // This would result in infinite loop otherwise.\n logInfo(\"Skipping interop test.\");\n return true;\n }\n\n const data = Object.freeze<TestData>({\n failCommand,\n packageScripts,\n projectPaths,\n tmpDir: await prepareTmpDir(\n tmpPath ? resolvePath(tmpPath, \"repos\") : undefined\n ),\n tmpLogsResolve: (...paths: string[]): string =>\n resolvePath(data.tmpDir.name, \"logs\", ...paths),\n tmpReposResolve: (...paths: string[]): string =>\n resolvePath(data.tmpDir.name, \"repos\", ...paths),\n tmpRootResolve: (...paths: string[]): string =>\n resolvePath(data.tmpDir.name, ...paths),\n visDevUtilsPath: process.cwd(),\n });\n\n const projectStatuses = new Map<string, ProjectState>(\n Object.keys(data.projectPaths).map((project): [string, ProjectState] => [\n project,\n new ProjectState(),\n ])\n );\n /**\n *\n */\n function getStages(): string[] {\n return [...projectStatuses].map(\n ([key, { stage }]): string => ` ${key}: ${stage}`\n );\n }\n\n try {\n const spawn = createSpawner(data.tmpLogsResolve(), getStages);\n\n await checkTmpPath(data);\n\n // Prepare subdirectories under the root tmp directory.\n await Promise.all(\n [\"repos\", \"logs\"].map(\n (dir): Promise<void> => mkdir(resolvePath(data.tmpDir.name, dir))\n )\n );\n\n logInfo(\"Begin\", getStages().join(\"\\n\"));\n await Promise.all(\n [...projectStatuses].map(async ([projectName, state]): Promise<void> => {\n try {\n state.stage = \"preparing\";\n const projectPath = data.projectPaths[projectName];\n const stats = await (async (): Promise<Stats | null> => {\n try {\n return await lstat(projectPath);\n } catch {\n return null;\n }\n })();\n if (stats?.isFile()) {\n // The path points to a ready to install tarball.\n state.stage = \"copying tarball\";\n await copyFile(projectPath, getTarballPath(data, projectName));\n state.stage = \"tarball copied\";\n } else {\n // The path points to a repo (maybe remote) that has to be built,\n // tested and packed first.\n state.stage = \"cloning\";\n await clone(spawn, data, projectName);\n\n state.stage = \"gathering dependencies\";\n const failedDeps: string[] = [];\n const localDeps = await getPackageLocalDeps(data, projectName);\n state.stage = `waiting for dependencies (${localDeps.join(\", \")})`;\n for (const localDep of localDeps) {\n const depStatus = projectStatuses.get(localDep);\n if (depStatus == null) {\n throw new Error(`Dependency ${localDep} not found.`);\n }\n\n try {\n await depStatus.promise;\n } catch {\n failedDeps.push(localDep);\n }\n }\n if (failedDeps.length > 0) {\n state.stage = `dependencies failed: ${failedDeps.join(\", \")}`;\n throw new Error(state.stage);\n }\n\n state.stage = \"running CI tasks\";\n await buildTestPack(spawn, data, projectName);\n state.stage = \"cloned, built, tested and packed\";\n }\n\n logInfo(`Okay ${projectName}`, getStages().join(\"\\n\"));\n state.resolve();\n } catch (error) {\n logError(\n `Fail ${projectName} (${state.stage}):`,\n getStages().join(\"\\n\")\n );\n state.reject(error);\n }\n })\n );\n\n const allSucceeded = (\n await Promise.allSettled(\n [...projectStatuses.values()].map(\n (status): Promise<void> => status.promise\n )\n )\n ).every(({ status }): boolean => status === \"fulfilled\");\n\n if (allSucceeded) {\n return true;\n } else {\n return false;\n }\n } finally {\n // Wait for all the projects to finish and log the state summary and any\n // errors encountered.\n logInfo(\"End\", getStages().join(\"\\n\"));\n for (const [projectName, { promise }] of projectStatuses) {\n try {\n await promise;\n } catch (error) {\n logError(`${projectName} failed with`, error);\n }\n }\n\n // Print the detailed logs for inspection (especially in CI).\n logInfo(\"Outputs\");\n process.stdout.write(\n [\n \"\",\n ...(await Promise.all(\n (\n await readdir(data.tmpLogsResolve())\n ).map(\n (filename): Promise<string> =>\n readFile(data.tmpLogsResolve(filename), \"UTF-8\")\n )\n )),\n \"\",\n ].join(\"\\n\\n\" + (\"-\".repeat(80) + \"\\n\").repeat(2) + \"\\n\")\n );\n\n execFail(\n data.tmpDir.name,\n failCommand,\n \"Allow the state to be inspected in debug mode before the data is lost.\"\n );\n }\n}\n","import { parseArguments } from \"./cli\";\nimport { resolve } from \"path\";\nimport { ProjectPaths, PackageScript, test } from \"./test\";\n\nconst argv = parseArguments();\n\nconst projectPaths: ProjectPaths = argv[\"project\"]\n .map((raw): [string, string] => {\n const [name, path] = raw.split(\" \", 2);\n\n if (typeof name === \"string\" && typeof path === \"string\") {\n if (/^[a-zA-Z0-9]+:\\/\\//.test(path)) {\n // Remote URL, use as is.\n return [name, path];\n } else {\n // Local path, resolve to prevent CWD issues.\n return [name, resolve(path)];\n }\n } else {\n console.error(\n `--project-path should be in 'project-name ./path' format, got '${raw}'.`\n );\n process.exit(1);\n }\n })\n .reduce<ProjectPaths>((acc, [name, path]): ProjectPaths => {\n acc[name] = path;\n return acc;\n }, {});\n\nconst rawPackageScriptArg = argv[\"package-script\"];\nconst packageScripts: PackageScript[] = rawPackageScriptArg.flatMap(\n (raw): PackageScript[] => {\n const packageScripts: PackageScript[] = [];\n\n let packageName: string | null = null;\n for (const part of raw.split(\" \")) {\n const mode = part.slice(-1);\n\n if (mode === \"?\" || mode === \"!\") {\n packageScripts.push({\n packageName,\n scriptName: part.slice(0, -1),\n skipIfMissing: mode === \"?\",\n });\n } else {\n packageName = part;\n }\n }\n\n return packageScripts;\n }\n);\n\nconst tmpPath = argv[\"tmp-dir\"] ? resolve(argv[\"tmp-dir\"]) : undefined;\n\nconst failCommand = argv[\"fail-command\"];\n\ntest({ failCommand, packageScripts, projectPaths, tmpPath })\n .then((allSucceeded): void => {\n if (!allSucceeded) {\n process.exitCode = 1;\n }\n })\n .catch((reason): void => {\n console.error(reason);\n process.exitCode = 2;\n });\n"],"names":["y","yargs","strict","usage","hide","config","help","option","demandOption","describe","type","array","default","parseArguments","parserConfiguration","parseSync","ProjectState","promise","resolve","reject","logError","title","details","wrappedDetails","Error","message","process","stderr","write","logInfo","stdout","execFail","cwd","failCommand","error","console","execSync","encoding","env","VIS_INTEROP","stdio","createSpawner","logDir","getState","nextId","spawnThrow","cmd","id","getHeaderLines","Date","toISOString","_mapInstanceProperty","word","_JSON$stringify","join","getLogMessage","line","commandLogPath","_padStartInstanceProperty","logStream","createWriteStream","flags","child","spawn","_sliceInstanceProperty","pipe","failed","on","code","errorMessage","end","commandOutput","readFile","setGracefulCleanup","prepareTmpDir","tmpPath","mkdirp","name","removeCallback","dirSync","unsafeCleanup","getTarballName","projectName","getTarballPath","tmpRootResolve","copyTarball","data","copyFile","tmpReposResolve","getPackageDeps","findUp","packageJSONPath","JSON","packageJSON","parse","_Object$keys","dependencies","devDependencies","peerDependencies","getPackageLocalDeps","projectPaths","depName","clone","projectPath","test","copy","filter","_src","dest","updatePackageDepVersions","deps","key","Object","prototype","hasOwnProperty","call","writeFile","undefined","buildTestPack","packageScripts","acc","_Object$create","packageLockPath","unlink","packageName","scriptName","skipIfMissing","checkTmpPath","tmpDir","readdir","length","getStages","projectStatuses","stage","resolvePath","paths","tmpLogsResolve","visDevUtilsPath","project","_Promise","all","dir","mkdir","state","_asyncToGenerator","lstat","stats","isFile","failedDeps","localDeps","localDep","depStatus","get","push","allSettled","_valuesInstanceProperty","status","allSucceeded","filename","_repeatInstanceProperty","argv","_reduceInstanceProperty","raw","split","path","exit","rawPackageScriptArg","_flatMapInstanceProperty","part","mode","then","exitCode","catch","reason"],"mappings":"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"}
1
+ {"version":3,"file":"test-e2e-interop.js","sources":["../src/test-e2e-interop/cli.ts","../src/test-e2e-interop/util.ts","../src/test-e2e-interop/test.ts","../src/test-e2e-interop/index.ts"],"sourcesContent":["import yargs from \"yargs\";\n\nconst y = yargs\n .strict(true)\n .usage(\"test-e2e-interop [options]\")\n .hide(\"version\")\n .config()\n .help()\n\n .option(\"fail-command\", {\n demandOption: false,\n describe:\n 'This command will be run in a shell (therefore commands like \"$SHELL\" will work) after failure to inspect the state.',\n type: \"string\",\n })\n .option(\"package-script\", {\n array: true,\n default: [\"clean?\", \"build!\", \"test!\", \"generate-examples-index?\"],\n demandOption: false,\n describe:\n 'The package scripts to run with each package, either \"script-name!\" to fail or \"script-name?\" to skip if the script doesn\\'t exist in given package. By default the script is used for all packages, if you want to use it only for one add package name: \"package-name script-name!\". Scripts are invoked sequentially and command line order is preserved.',\n type: \"string\",\n })\n .option(\"project\", {\n array: true,\n default: [] as string[],\n demandOption: false,\n describe:\n 'Projects to clone using Git, copy from directory or install from tarball. The format is \"package-name URL/path\".',\n type: \"string\",\n })\n .option(\"tmp-dir\", {\n demandOption: false,\n describe:\n \"The working directory for E2E testing. If omitted a new tmp dir will be created and then disposed of.\",\n type: \"string\",\n })\n .option(\"logs-to-stdout\", {\n demandOption: false,\n default: false,\n describe: \"Output the logs to the stdout after the tests finished.\",\n type: \"boolean\",\n });\n\n/**\n *\n */\nexport function parseArguments(): ReturnType<typeof y[\"parseSync\"]> {\n return y.parserConfiguration({ \"camel-case-expansion\": false }).parseSync();\n}\n","import { execSync, spawn } from \"child_process\";\nimport { basename, join } from \"path\";\nimport { createWriteStream, readFile, rename } from \"fs-extra\";\n\nexport class ProjectState {\n /**\n * This will be resolved or rejected once all the tasks associated with this\n * project finish.\n */\n public promise: Promise<void>;\n /**\n * Run this to mark the project as successfully finished.\n */\n public resolve!: () => void;\n /**\n * Run this to mark the project as failed.\n */\n public reject!: (reason: Error) => void;\n /**\n * Provide information about current state of the project.\n */\n public stage = \"pending\";\n\n public constructor() {\n this.promise = new Promise<void>((resolve, reject): void => {\n this.resolve = resolve;\n this.reject = reject;\n });\n }\n}\n\n/**\n * Output formatted error message to stderr.\n *\n * @param title - Some explanatory text as to what's going on.\n * @param details - The error or some other message as to what went wrong.\n */\nexport function logError(title: string, details?: unknown): void {\n const wrappedDetails =\n details != null\n ? `\\n${details instanceof Error ? details.message : details}`\n : \"\";\n process.stderr.write(`\\n==> ${title}${wrappedDetails}\\n`);\n}\n/**\n * @param title\n * @param details\n */\nexport function logInfo(title: string, details?: string): void {\n const wrappedDetails = details ? `:\\n${details}` : \"\";\n process.stdout.write(`\\n==> ${title}${wrappedDetails}\\n`);\n}\n\n/**\n * @param cwd\n * @param failCommand\n * @param error\n */\nexport function execFail(\n cwd: string,\n failCommand: string | null | undefined,\n error: Error | string\n): void {\n if (failCommand) {\n console.error(\"\\n\\nReason for debugging:\");\n console.error(error);\n console.error(\"\\n\\nDebuging:\");\n try {\n execSync(failCommand, {\n cwd,\n encoding: \"utf8\",\n env: { ...process.env, VIS_INTEROP: \"1\" },\n stdio: \"inherit\",\n });\n } catch (error) {\n console.error(error);\n console.error(\n \"The error above is the fail command exitting with non-zero status, not an actual failure in the interop test.\"\n );\n }\n }\n}\n\nexport type Spawn = (options: SpawnOrTrhowArgs) => Promise<void>;\n\nexport interface SpawnOrTrhowArgs {\n cmd: readonly string[];\n cwd: string;\n failCommand?: string;\n}\n/**\n * @param logDir\n * @param getState\n */\nexport function createSpawner(logDir: string, getState: () => string[]): Spawn {\n let nextId = 1;\n\n return function spawnThrow({ cmd, cwd, failCommand }): ReturnType<Spawn> {\n const id = nextId++;\n const getHeaderLines = (): string[] => [\n \"time: \" + new Date().toISOString(),\n \"id: \" + id,\n \"cwd: \" + cwd,\n \"cmd: \" + cmd.map((word): string => JSON.stringify(word)).join(\" \"),\n \"states:\",\n ...getState(),\n ];\n const getLogMessage = (): string =>\n getHeaderLines()\n .map((line): string => \" \" + line)\n .join(\"\\n\");\n\n logInfo(\"Start\", getLogMessage());\n\n return new Promise((resolve, reject): void => {\n const commandLogPath = join(\n logDir,\n [\n basename(cwd).replace(/[^a-zA-Z0-9]+/g, \"-\"),\n cmd.join(\"-\").replace(/[^a-zA-Z0-9]+/g, \"-\"),\n \"id-\" + (\"\" + id).padStart(3, \"0\"),\n \"log\",\n ].join(\".\")\n );\n const logStream = createWriteStream(commandLogPath, {\n flags: \"a\",\n });\n\n logStream.write(getHeaderLines().join(\"\\n\") + \"\\n\\n\");\n\n const child = spawn(cmd[0], cmd.slice(1), {\n cwd,\n env: { ...process.env, VIS_INTEROP: \"1\" },\n stdio: \"pipe\",\n });\n\n child.stdout.pipe(logStream);\n child.stderr.pipe(logStream);\n\n /**\n * Add status to the file name just before the .log extension on a best\n * effort basis (no errors reported)..\n *\n * @param code - The code or other kind of status to append.\n */\n function addStatusCodeToFilename(code: string | number): void {\n const newPath =\n commandLogPath.slice(0, -4) + \".status-\" + code + \".log\";\n rename(commandLogPath, newPath).catch((error): void => {\n console.error(`Failed to rename log file to ${newPath}.`, error);\n });\n }\n\n let failed = false;\n child.on(\"close\", (code): void => {\n if (failed) {\n // noop\n } else if (code !== 0) {\n logError(\"Fail\", getLogMessage());\n\n const errorMessage = `${cmd\n .map((word): string => `\"${word}\"`)\n .join(\" \")}: exited with ${code}.`;\n\n logStream.end((): void => {\n (async (): Promise<void> => {\n let commandOutput = \"\";\n try {\n commandOutput += await readFile(commandLogPath, \"utf-8\");\n } catch (error) {\n commandOutput += \"Failed to log command output.\";\n }\n execFail(cwd, failCommand, commandOutput + \"\\n\\n\" + errorMessage);\n })();\n });\n\n addStatusCodeToFilename(code ?? \"null\");\n reject(new Error(errorMessage));\n } else {\n logInfo(\"Okay\", getLogMessage());\n addStatusCodeToFilename(code);\n resolve();\n }\n });\n child.on(\"error\", (error): void => {\n failed = true;\n\n logError(\"Fail\", getLogMessage());\n\n execFail(cwd, failCommand, error);\n\n addStatusCodeToFilename(\"error\");\n reject(error);\n });\n });\n };\n}\n","import { DirResult, dirSync, setGracefulCleanup } from \"tmp\";\nimport { resolve as resolvePath } from \"path\";\nimport findUp from \"find-up\";\nimport {\n Stats,\n copy,\n copyFile,\n lstat,\n mkdir,\n mkdirp,\n readFile,\n readdir,\n writeFile,\n unlink,\n} from \"fs-extra\";\n\nimport {\n ProjectState,\n Spawn,\n createSpawner,\n execFail,\n logError,\n logInfo,\n} from \"./util\";\n\n// Remove all temporary files on process exit.\nsetGracefulCleanup();\n\ninterface TestData {\n failCommand?: string;\n packageScripts: readonly PackageScript[];\n projectPaths: ProjectPaths;\n tmpDir: DirResult;\n tmpLogsResolve(...paths: string[]): string;\n tmpReposResolve(...paths: string[]): string;\n tmpRootResolve(...paths: string[]): string;\n visDevUtilsPath: string;\n}\n\nexport interface PackageScript {\n packageName: string | null;\n scriptName: string;\n skipIfMissing: boolean;\n}\n\nexport type ProjectPaths = Record<string, string>;\n\n/**\n * @param tmpPath\n */\nasync function prepareTmpDir(tmpPath?: string): Promise<DirResult> {\n if (tmpPath) {\n await mkdirp(tmpPath);\n\n return {\n name: tmpPath,\n removeCallback: (): void => {},\n };\n } else {\n return dirSync({ unsafeCleanup: true });\n }\n}\n\n/**\n * @param projectName\n */\nfunction getTarballName(projectName: string): string {\n return `${projectName}-0.0.0-no-version.tgz`;\n}\n\n/**\n * @param root0\n * @param root0.tmpRootResolve\n * @param projectName\n */\nfunction getTarballPath(\n { tmpRootResolve }: TestData,\n projectName: string\n): string {\n return tmpRootResolve(`${projectName}.tgz`);\n}\n\n/**\n * @param data\n * @param projectName\n */\nasync function copyTarball(data: TestData, projectName: string): Promise<void> {\n await copyFile(\n data.tmpReposResolve(projectName, getTarballName(projectName)),\n getTarballPath(data, projectName)\n );\n}\n\n/**\n * @param cwd\n */\nasync function getPackageDeps(cwd: string): Promise<string[]> {\n const packageJSONPath = await findUp(\"package.json\", { cwd });\n if (packageJSONPath == null) {\n throw new Error(\"Project's package.json file not found.\");\n }\n const packageJSON = JSON.parse(await readFile(packageJSONPath, \"utf8\"));\n\n return [\n ...new Set([\n ...Object.keys(packageJSON.dependencies || {}),\n ...Object.keys(packageJSON.devDependencies || {}),\n ...Object.keys(packageJSON.peerDependencies || {}),\n ]),\n ];\n}\n\n/**\n * @param data\n * @param projectName\n */\nasync function getPackageLocalDeps(\n data: TestData,\n projectName: string\n): Promise<string[]> {\n const { projectPaths, tmpReposResolve } = data;\n const cwd = tmpReposResolve(projectName);\n return (await getPackageDeps(cwd)).filter(\n (depName): boolean => projectPaths[depName] != null\n );\n}\n\n/**\n * @param spawn\n * @param data\n * @param projectName\n */\nasync function clone(\n spawn: Spawn,\n data: TestData,\n projectName: string\n): Promise<void> {\n const { failCommand, projectPaths, tmpReposResolve } = data;\n\n const cwd = tmpReposResolve();\n const projectPath = projectPaths[projectName];\n\n if (/\\.git$/.test(projectPath)) {\n await spawn({\n cmd: [\n \"git\",\n \"clone\",\n projectPath,\n \"--single-branch\",\n \"--branch\",\n \"master\",\n \"--depth\",\n \"1\",\n ],\n cwd,\n failCommand,\n });\n } else {\n await copy(projectPath, tmpReposResolve(projectName), {\n filter(_src, dest): boolean {\n return (\n !/[\\\\/].git[\\\\/]/.test(dest) && !/[\\\\/]node_modules[\\\\/]/.test(dest)\n );\n },\n });\n }\n}\n\n/**\n * @param cwd\n * @param deps\n */\nasync function updatePackageDepVersions(\n cwd: string,\n deps: Record<string, string>\n): Promise<void> {\n const packageJSONPath = await findUp(\"package.json\", { cwd });\n if (packageJSONPath == null) {\n throw new Error(\"Project's package.json file not found.\");\n }\n const packageJSON = JSON.parse(await readFile(packageJSONPath, \"utf8\"));\n\n Object.keys(packageJSON.dependencies ?? {}).forEach((key): void => {\n if (Object.prototype.hasOwnProperty.call(deps, key)) {\n packageJSON.dependencies[key] = \"file:\" + deps[key];\n }\n });\n Object.keys(packageJSON.devDependencies ?? {}).forEach((key): void => {\n if (Object.prototype.hasOwnProperty.call(deps, key)) {\n packageJSON.devDependencies[key] = \"file:\" + deps[key];\n }\n });\n Object.keys(packageJSON.peerDependencies ?? {}).forEach((key): void => {\n if (Object.prototype.hasOwnProperty.call(deps, key)) {\n packageJSON.peerDependencies[key] = \"file:\" + deps[key];\n }\n });\n\n await writeFile(packageJSONPath, JSON.stringify(packageJSON, undefined, 4));\n}\n\n/**\n * @param spawn\n * @param data\n * @param projectName\n */\nasync function buildTestPack(\n spawn: Spawn,\n data: TestData,\n projectName: string\n): Promise<void> {\n const { failCommand, packageScripts, tmpReposResolve } = data;\n const cwd = tmpReposResolve(projectName);\n\n await updatePackageDepVersions(\n cwd,\n (\n await getPackageLocalDeps(data, projectName)\n ).reduce<Record<string, string>>((acc, key): Record<string, string> => {\n acc[key] = getTarballPath(data, key);\n return acc;\n }, Object.create(null))\n );\n const packageLockPath = await findUp(\"package-lock.json\", { cwd });\n if (packageLockPath != null) {\n await unlink(packageLockPath);\n }\n await spawn({\n cmd: [\"npm\", \"install\"],\n cwd,\n failCommand,\n });\n\n for (const { packageName, scriptName, skipIfMissing } of packageScripts) {\n if (packageName != null && packageName !== projectName) {\n continue;\n } else if (skipIfMissing) {\n await spawn({\n cmd: [\"npm\", \"run\", scriptName, \"--if-present\"],\n cwd,\n failCommand,\n });\n } else {\n await spawn({\n cmd: [\"npm\", \"run\", scriptName],\n cwd,\n failCommand,\n });\n }\n }\n\n await spawn({ cmd: [\"npm\", \"pack\"], cwd, failCommand });\n\n await copyTarball(data, projectName);\n}\n\n/**\n * @param data\n */\nasync function checkTmpPath(data: TestData): Promise<void> {\n const tmpDir = data.tmpRootResolve();\n if ((await readdir(tmpDir)).length !== 0) {\n throw new Error(`The tmp dir (\"${tmpDir}\") is not empty.`);\n }\n}\n\nexport interface TestArgs {\n failCommand?: string;\n logsToStdout?: boolean;\n packageScripts: readonly PackageScript[];\n projectPaths: ProjectPaths;\n tmpPath?: string;\n}\n/**\n * @param root0\n * @param root0.failCommand\n * @param root0.logsToStdout\n * @param root0.packageScripts\n * @param root0.projectPaths\n * @param root0.tmpPath\n */\nexport async function test({\n failCommand,\n logsToStdout,\n packageScripts,\n projectPaths,\n tmpPath,\n}: TestArgs): Promise<boolean> {\n if (process.env.VIS_INTEROP === \"1\") {\n // This would result in infinite loop otherwise.\n logInfo(\"Skipping interop test.\");\n return true;\n }\n\n const data = Object.freeze<TestData>({\n failCommand,\n packageScripts,\n projectPaths,\n tmpDir: await prepareTmpDir(\n tmpPath ? resolvePath(tmpPath, \"repos\") : undefined\n ),\n tmpLogsResolve: (...paths: string[]): string =>\n resolvePath(data.tmpDir.name, \"logs\", ...paths),\n tmpReposResolve: (...paths: string[]): string =>\n resolvePath(data.tmpDir.name, \"repos\", ...paths),\n tmpRootResolve: (...paths: string[]): string =>\n resolvePath(data.tmpDir.name, ...paths),\n visDevUtilsPath: process.cwd(),\n });\n\n const projectStatuses = new Map<string, ProjectState>(\n Object.keys(data.projectPaths).map((project): [string, ProjectState] => [\n project,\n new ProjectState(),\n ])\n );\n /**\n *\n */\n function getStages(): string[] {\n return [...projectStatuses].map(\n ([key, { stage }]): string => ` ${key}: ${stage}`\n );\n }\n\n try {\n const spawn = createSpawner(data.tmpLogsResolve(), getStages);\n\n await checkTmpPath(data);\n\n // Prepare subdirectories under the root tmp directory.\n await Promise.all(\n [\"repos\", \"logs\"].map(\n (dir): Promise<void> => mkdir(resolvePath(data.tmpDir.name, dir))\n )\n );\n\n logInfo(\"Begin\", getStages().join(\"\\n\"));\n await Promise.all(\n [...projectStatuses].map(async ([projectName, state]): Promise<void> => {\n try {\n state.stage = \"preparing\";\n const projectPath = data.projectPaths[projectName];\n const stats = await (async (): Promise<Stats | null> => {\n try {\n return await lstat(projectPath);\n } catch {\n return null;\n }\n })();\n if (stats?.isFile()) {\n // The path points to a ready to install tarball.\n state.stage = \"copying tarball\";\n await copyFile(projectPath, getTarballPath(data, projectName));\n state.stage = \"tarball copied\";\n } else {\n // The path points to a repo (maybe remote) that has to be built,\n // tested and packed first.\n state.stage = \"cloning\";\n await clone(spawn, data, projectName);\n\n state.stage = \"gathering dependencies\";\n const failedDeps: string[] = [];\n const localDeps = await getPackageLocalDeps(data, projectName);\n state.stage = `waiting for dependencies (${localDeps.join(\", \")})`;\n for (const localDep of localDeps) {\n const depStatus = projectStatuses.get(localDep);\n if (depStatus == null) {\n throw new Error(`Dependency ${localDep} not found.`);\n }\n\n try {\n await depStatus.promise;\n } catch {\n failedDeps.push(localDep);\n }\n }\n if (failedDeps.length > 0) {\n state.stage = `dependencies failed: ${failedDeps.join(\", \")}`;\n throw new Error(state.stage);\n }\n\n state.stage = \"running CI tasks\";\n await buildTestPack(spawn, data, projectName);\n state.stage = \"cloned, built, tested and packed\";\n }\n\n logInfo(`Okay ${projectName}`, getStages().join(\"\\n\"));\n state.resolve();\n } catch (error) {\n logError(\n `Fail ${projectName} (${state.stage}):`,\n getStages().join(\"\\n\")\n );\n state.reject(error instanceof Error ? error : new Error(\"\" + error));\n }\n })\n );\n\n const allSucceeded = (\n await Promise.allSettled(\n [...projectStatuses.values()].map(\n (status): Promise<void> => status.promise\n )\n )\n ).every(({ status }): boolean => status === \"fulfilled\");\n\n if (allSucceeded) {\n return true;\n } else {\n return false;\n }\n } finally {\n // Wait for all the projects to finish and log the state summary and any\n // errors encountered.\n logInfo(\"End\", getStages().join(\"\\n\"));\n for (const [projectName, { promise }] of projectStatuses) {\n try {\n await promise;\n } catch (error) {\n logError(`${projectName} failed with`, error);\n }\n }\n\n // Print the detailed logs for inspection (especially in CI).\n if (logsToStdout) {\n logInfo(\"Outputs\");\n process.stdout.write(\n [\n \"\",\n ...(await Promise.all(\n (\n await readdir(data.tmpLogsResolve())\n ).map(\n (filename): Promise<string> =>\n readFile(data.tmpLogsResolve(filename), \"UTF-8\")\n )\n )),\n \"\",\n ].join(\"\\n\\n\" + (\"-\".repeat(80) + \"\\n\").repeat(2) + \"\\n\")\n );\n }\n\n execFail(\n data.tmpDir.name,\n failCommand,\n \"Allow the state to be inspected in debug mode before the data is lost.\"\n );\n }\n}\n","import { parseArguments } from \"./cli\";\nimport { resolve } from \"path\";\nimport { ProjectPaths, PackageScript, test } from \"./test\";\n\nconst argv = parseArguments();\n\nconst projectPaths: ProjectPaths = argv[\"project\"]\n .map((raw): [string, string] => {\n const [name, path] = raw.split(\" \", 2);\n\n if (typeof name === \"string\" && typeof path === \"string\") {\n if (/^[a-zA-Z0-9]+:\\/\\//.test(path)) {\n // Remote URL, use as is.\n return [name, path];\n } else {\n // Local path, resolve to prevent CWD issues.\n return [name, resolve(path)];\n }\n } else {\n console.error(\n `--project-path should be in 'project-name ./path' format, got '${raw}'.`\n );\n process.exit(1);\n }\n })\n .reduce<ProjectPaths>((acc, [name, path]): ProjectPaths => {\n acc[name] = path;\n return acc;\n }, {});\n\nconst rawPackageScriptArg = argv[\"package-script\"];\nconst packageScripts: PackageScript[] = rawPackageScriptArg.flatMap(\n (raw): PackageScript[] => {\n const packageScripts: PackageScript[] = [];\n\n let packageName: string | null = null;\n for (const part of raw.split(\" \")) {\n const mode = part.slice(-1);\n\n if (mode === \"?\" || mode === \"!\") {\n packageScripts.push({\n packageName,\n scriptName: part.slice(0, -1),\n skipIfMissing: mode === \"?\",\n });\n } else {\n packageName = part;\n }\n }\n\n return packageScripts;\n }\n);\n\nconst tmpPath = argv[\"tmp-dir\"] ? resolve(argv[\"tmp-dir\"]) : undefined;\n\nconst failCommand = argv[\"fail-command\"];\n\nconst logsToStdout = argv[\"logs-to-stdout\"];\n\ntest({ failCommand, logsToStdout, packageScripts, projectPaths, tmpPath })\n .then((allSucceeded): void => {\n if (!allSucceeded) {\n process.exitCode = 1;\n }\n })\n .catch((reason): void => {\n console.error(reason);\n process.exitCode = 2;\n });\n"],"names":["y","yargs","strict","usage","hide","config","help","option","demandOption","describe","type","array","default","parseArguments","parserConfiguration","parseSync","ProjectState","_createClass","_classCallCheck","_defineProperty","promise","_Promise","resolve","reject","logError","title","details","wrappedDetails","Error","message","process","stderr","write","logInfo","stdout","execFail","cwd","failCommand","error","console","execSync","encoding","env","VIS_INTEROP","stdio","createSpawner","logDir","getState","nextId","spawnThrow","cmd","id","getHeaderLines","_concatInstanceProperty","Date","toISOString","_mapInstanceProperty","word","_JSON$stringify","join","getLogMessage","line","commandLogPath","basename","replace","_padStartInstanceProperty","logStream","createWriteStream","flags","child","spawn","_sliceInstanceProperty","pipe","addStatusCodeToFilename","code","newPath","rename","catch","failed","on","errorMessage","end","_asyncToGenerator","_regeneratorRuntime","commandOutput","readFile","setGracefulCleanup","prepareTmpDir","tmpPath","mkdirp","name","removeCallback","dirSync","unsafeCleanup","getTarballName","projectName","getTarballPath","tmpRootResolve","copyTarball","data","copyFile","tmpReposResolve","getPackageDeps","findUp","packageJSONPath","JSON","packageJSON","parse","_toConsumableArray","_Set","_Object$keys","dependencies","devDependencies","peerDependencies","getPackageLocalDeps","projectPaths","_filterInstanceProperty","depName","clone","projectPath","test","copy","filter","_src","dest","updatePackageDepVersions","deps","key","Object","prototype","hasOwnProperty","call","writeFile","undefined","buildTestPack","packageScripts","_reduceInstanceProperty","acc","_Object$create","packageLockPath","unlink","_createForOfIteratorHelper","packageName","scriptName","skipIfMissing","checkTmpPath","tmpDir","readdir","length","getStages","projectStatuses","_slicedToArray","stage","logsToStdout","_Object$freeze","resolvePath","paths","tmpLogsResolve","visDevUtilsPath","_Map","project","all","dir","mkdir","state","lstat","stats","isFile","failedDeps","localDeps","localDep","depStatus","get","push","_everyInstanceProperty","allSettled","_valuesInstanceProperty","status","allSucceeded","filename","_repeatInstanceProperty","argv","raw","split","path","exit","rawPackageScriptArg","_flatMapInstanceProperty","part","mode","then","exitCode","reason"],"mappings":"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"}
@@ -4,8 +4,8 @@
4
4
  *
5
5
  * Development utilities for the Vis family projects.
6
6
  *
7
- * @version 3.0.4
8
- * @date 2022-03-10T21:24:40.299Z
7
+ * @version 3.0.7
8
+ * @date 2022-03-12T19:51:10.352Z
9
9
  *
10
10
  * @copyright (c) 2011-2017 Almende B.V, http://almende.com
11
11
  * @copyright (c) 2017-2019 visjs contributors, https://github.com/visjs