vis-dev-utils 2.9.82 → 3.0.1

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.
@@ -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[\"parse\"]> {\n return y.parserConfiguration({ \"camel-case-expansion\": false }).parse();\n}\n","import { execSync, spawn } from \"child_process\";\nimport { join } from \"path\";\nimport { createWriteStream } 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 */\nexport function execFail(cwd: string, failCommand?: string): void {\n if (failCommand) {\n execSync(failCommand, {\n cwd,\n encoding: \"utf8\",\n env: { ...process.env, VIS_INTEROP: \"1\" },\n stdio: \"inherit\",\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 let failed = false;\n\n const logStream = createWriteStream(\n join(logDir, (\"\" + id).padStart(3, \"0\") + \".log\"),\n {\n flags: \"a\",\n }\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 child.on(\"close\", (code): void => {\n if (failed || code !== 0) {\n logError(\"Fail\", getLogMessage());\n\n execFail(cwd, failCommand);\n reject(\n new Error(\n `${cmd\n .map((word): string => `\"${word}\"`)\n .join(\" \")}: exited with ${code}.`\n )\n );\n } else {\n logInfo(\"Okay\", getLogMessage());\n resolve();\n }\n });\n child.on(\"error\", (error): void => {\n logError(\"Fail\", getLogMessage());\n failed = true;\n\n execFail(cwd, failCommand);\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} 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 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 spawn({\n cmd: [\"npm\", \"ci\"],\n cwd,\n failCommand,\n });\n\n await spawn({\n cmd: [\n \"npm\",\n \"install\",\n ...(await getPackageLocalDeps(data, projectName)).map(\n getTarballPath.bind(null, data)\n ),\n ],\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<void> {\n if (process.env.VIS_INTEROP === \"1\") {\n // This would result in infinite loop otherwise.\n logInfo(\"Skipping interop test.\");\n return;\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.allSettled(\n [...projectStatuses].map(\n 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 \", \"\n )})`;\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 } finally {\n // Wait for all the projects to finish.\n await Promise.allSettled(\n [...projectStatuses.values()].map(\n (state): Promise<unknown> => state.promise\n )\n );\n\n // Log the state summary and any 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 // Allow the state to be inspected in debug mode before the data is lost.\n execFail(data.tmpDir.name, failCommand);\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 (await readdir(data.tmpLogsResolve())).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","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 }).catch(\n (reason): void => {\n console.error(reason);\n if (process.exitCode === 0) {\n process.exitCode = 1;\n }\n }\n);\n"],"names":["y","yargs","strict","usage","hide","config","help","option","demandOption","describe","type","array","default","parseArguments","parserConfiguration","parse","ProjectState","promise","resolve","reject","logError","title","details","wrappedDetails","Error","message","process","stderr","write","logInfo","stdout","execFail","cwd","failCommand","execSync","encoding","env","VIS_INTEROP","stdio","createSpawner","logDir","getState","nextId","spawnThrow","cmd","id","getHeaderLines","Date","toISOString","_mapInstanceProperty","word","_JSON$stringify","join","getLogMessage","line","failed","logStream","createWriteStream","_padStartInstanceProperty","flags","child","spawn","_sliceInstanceProperty","pipe","on","code","error","setGracefulCleanup","prepareTmpDir","tmpPath","mkdirp","name","removeCallback","dirSync","unsafeCleanup","getTarballName","projectName","getTarballPath","tmpRootResolve","copyTarball","data","copyFile","tmpReposResolve","getPackageDeps","findUp","packageJSONPath","JSON","readFile","packageJSON","_Object$keys","dependencies","devDependencies","peerDependencies","getPackageLocalDeps","projectPaths","depName","clone","projectPath","test","copy","filter","_src","dest","buildTestPack","packageScripts","_bindInstanceProperty","packageName","scriptName","skipIfMissing","checkTmpPath","tmpDir","readdir","length","getStages","projectStatuses","key","stage","resolvePath","undefined","paths","tmpLogsResolve","visDevUtilsPath","project","_Promise","all","dir","mkdir","allSettled","state","_asyncToGenerator","lstat","stats","isFile","failedDeps","localDeps","localDep","depStatus","get","push","_valuesInstanceProperty","filename","_repeatInstanceProperty","argv","_reduceInstanceProperty","raw","split","path","console","exit","acc","rawPackageScriptArg","_flatMapInstanceProperty","part","mode","catch","reason","exitCode"],"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\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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"}
@@ -87,11 +87,9 @@ export interface GRCOptions {
87
87
  * - `rollup-plugin-postcss`
88
88
  * - `rollup-plugin-terser` (only in minified)
89
89
  * - `rollup-plugin-typescript2` (skipped if the entry is .js)
90
- *
91
90
  * @param options - See {@link GRCOptions}.
92
91
  * @param mode - Whether the code should be processed for production,
93
92
  * development or testing.
94
- *
95
93
  * @returns Ready to use configuration object that can be just exported from
96
94
  * `rollup.config.js` or mutated in any way if necessary.
97
95
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/module/generate-rollup-configuration/index.ts"],"names":[],"mappings":"AAIA,OAAmB,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAkBtE,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAuB1C,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,WAAW,EAAE;QACX;;;WAGG;QACH,MAAM,EAAE,UAAU,EAAE,CAAC;QACrB;;;WAGG;QACH,OAAO,EAAE,UAAU,EAAE,CAAC;KACvB,CAAC;IACF;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAC/B;;;OAGG;IACH,eAAe,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,WAAW,EAAE;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACrC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACxC,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAC1C,CAAC;IACF;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;CAClB;AA+RD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,eAAe,CAAC,UAAU,CAAC,EACpC,IAAI,GAAE,YAAY,GAAG,aAAa,GAAG,MAIrB,GACf,GAAG,CAqVL"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/module/generate-rollup-configuration/index.ts"],"names":[],"mappings":"AAIA,OAAmB,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAkBtE,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAsB1C,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,WAAW,EAAE;QACX;;;WAGG;QACH,MAAM,EAAE,UAAU,EAAE,CAAC;QACrB;;;WAGG;QACH,OAAO,EAAE,UAAU,EAAE,CAAC;KACvB,CAAC;IACF;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAC/B;;;OAGG;IACH,eAAe,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,WAAW,EAAE;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACrC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACxC,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAC1C,CAAC;IACF;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;CAClB;AA0RD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,eAAe,CAAC,UAAU,CAAC,EACpC,IAAI,GAAE,YAAY,GAAG,aAAa,GAAG,MAIrB,GACf,GAAG,CAqVL"}
@@ -2,9 +2,7 @@
2
2
  * Take a string and return a doc block comment.
3
3
  *
4
4
  * @param string - The raw text to be included in the comment.
5
- *
6
5
  * @throws If the string already contains a comment.
7
- *
8
6
  * @returns A block doc comment string that can be for example prepended to a
9
7
  * bundled JavaScript file.
10
8
  */
@@ -33,9 +31,7 @@ export interface HeaderOptions {
33
31
  * text will be appended, the date will be the time when this module was
34
32
  * imported (most likely the start of the build process) and the rest will be
35
33
  * read from package.json.
36
- *
37
34
  * @throws If the string already contains a comment.
38
- *
39
35
  * @returns Ready to use banner text.
40
36
  */
41
37
  export declare function generateHeader(options?: Partial<HeaderOptions>): string;
@@ -1 +1 @@
1
- {"version":3,"file":"header.d.ts","sourceRoot":"","sources":["../src/module/header.ts"],"names":[],"mappings":"AAGA;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAwBpD;AAwCD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,sDAAsD;IACtD,UAAU,EAAE,MAAM,CAAC;IACnB,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,oCAAoC;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,OAAO,EAAE,MAAM,CAAC;CACjB;AAQD;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,MAAM,CAkBvE"}
1
+ {"version":3,"file":"header.d.ts","sourceRoot":"","sources":["../src/module/header.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAwBpD;AAwCD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,sDAAsD;IACtD,UAAU,EAAE,MAAM,CAAC;IACnB,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,oCAAoC;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,OAAO,EAAE,MAAM,CAAC;CACjB;AAQD;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,MAAM,CAkBvE"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "package-script": [
3
- "vis-charts clean! build! test! generate-examples-index!",
3
+ "vis-charts clean! build! test? generate-examples-index!",
4
4
  "vis-data clean! lint! build! test!",
5
5
  "vis-dev-utils clean! lint! build! test!",
6
6
  "vis-graph3d clean! lint! build! test! generate-examples-index!",
@@ -4,8 +4,8 @@
4
4
  *
5
5
  * Development utilities for the Vis family projects.
6
6
  *
7
- * @version 2.9.82
8
- * @date 2021-08-16T19:13:30.626Z
7
+ * @version 3.0.1
8
+ * @date 2022-03-07T20:39:45.311Z
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
@@ -127,9 +127,7 @@ var BABEL_IGNORE_RE = _Object$freeze__default['default'](/[\\/]node_modules[\\/]
127
127
  * Take a string and return a doc block comment.
128
128
  *
129
129
  * @param string - The raw text to be included in the comment.
130
- *
131
130
  * @throws If the string already contains a comment.
132
- *
133
131
  * @returns A block doc comment string that can be for example prepended to a
134
132
  * bundled JavaScript file.
135
133
  */
@@ -179,9 +177,7 @@ var defaultVersion = packageJSON.version;
179
177
  * text will be appended, the date will be the time when this module was
180
178
  * imported (most likely the start of the build process) and the rest will be
181
179
  * read from package.json.
182
- *
183
180
  * @throws If the string already contains a comment.
184
- *
185
181
  * @returns Ready to use banner text.
186
182
  */
187
183
 
@@ -214,9 +210,9 @@ var _excluded = ["dependencies", "devDependencies", "peerDependencies"];
214
210
 
215
211
  var _context, _context2;
216
212
 
217
- function ownKeys$1(object, enumerableOnly) { var keys = _Object$keys__default['default'](object); if (_Object$getOwnPropertySymbols__default['default']) { var symbols = _Object$getOwnPropertySymbols__default['default'](object); if (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; }
213
+ function ownKeys$1(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; }
218
214
 
219
- function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context22; _forEachInstanceProperty__default['default'](_context22 = ownKeys$1(Object(source), true)).call(_context22, function (key) { _defineProperty__default['default'](target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors__default['default']) { _Object$defineProperties__default['default'](target, _Object$getOwnPropertyDescriptors__default['default'](source)); } else { var _context23; _forEachInstanceProperty__default['default'](_context23 = ownKeys$1(Object(source))).call(_context23, function (key) { _Object$defineProperty__default['default'](target, key, _Object$getOwnPropertyDescriptor__default['default'](source, key)); }); } } return target; }
215
+ function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var _context22, _context23; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default['default'](_context22 = ownKeys$1(Object(source), !0)).call(_context22, 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'](_context23 = ownKeys$1(Object(source))).call(_context23, function (key) { _Object$defineProperty__default['default'](target, key, _Object$getOwnPropertyDescriptor__default['default'](source, key)); }); } return target; }
220
216
  chai.config.truncateThreshold = _Number$MAX_SAFE_INTEGER__default['default'];
221
217
  chai.use(chaiFs__default['default']);
222
218
 
@@ -227,7 +223,6 @@ var VIS_TEST = _includesInstanceProperty__default['default'](_context2 = ["1", "
227
223
  * Simple glob with workaround for non-posix paths.
228
224
  *
229
225
  * @param pattern - Single glob pattern.
230
- *
231
226
  * @returns Globbed paths.
232
227
  */
233
228
 
@@ -246,7 +241,6 @@ var dependenciesWithVisExportStructure = ["vis-data", "vis-graph3d", "vis-networ
246
241
  * This ensures that dependencies on Vis projects point to ESNext builds.
247
242
  *
248
243
  * @param deps - The original dependencies as listed in package.json.
249
- *
250
244
  * @returns An array of dependencies for Rollup.
251
245
  */
252
246
 
@@ -262,7 +256,6 @@ function processDependencies(deps) {
262
256
  * will log warnings during build process and won't work at all.
263
257
  *
264
258
  * @param globals - The original globals.
265
- *
266
259
  * @returns Globals forcing the use of ESNext builds for Vis projects.
267
260
  */
268
261
 
@@ -308,7 +301,6 @@ var validate = VIS_DEBUG ? function (callback) {
308
301
  * @param buildVariant - ESNext or peer build. This is not available for
309
302
  * standalone as only peer and ESNext have imports.
310
303
  * @param moduleFormat - What kind of module system to use.
311
- *
312
304
  * @returns Path overrides for Rollup.
313
305
  */
314
306
 
@@ -328,7 +320,6 @@ function getPaths(buildVariant, moduleFormat) {
328
320
  * Change target's dest so that it's relative to given dir(s).
329
321
  *
330
322
  * @param dirs - The directories there targets should be relative to.
331
- *
332
323
  * @returns A function that can be directly supplied to Array.map().
333
324
  */
334
325
 
@@ -480,11 +471,9 @@ var generateRollupPluginArray = function generateRollupPluginArray(libraryFilena
480
471
  * - `rollup-plugin-postcss`
481
472
  * - `rollup-plugin-terser` (only in minified)
482
473
  * - `rollup-plugin-typescript2` (skipped if the entry is .js)
483
- *
484
474
  * @param options - See {@link GRCOptions}.
485
475
  * @param mode - Whether the code should be processed for production,
486
476
  * development or testing.
487
- *
488
477
  * @returns Ready to use configuration object that can be just exported from
489
478
  * `rollup.config.js` or mutated in any way if necessary.
490
479
  */
@@ -715,9 +704,9 @@ function generateRollupConfiguration(options) {
715
704
  }];
716
705
  }
717
706
 
718
- function ownKeys(object, enumerableOnly) { var keys = _Object$keys__default['default'](object); if (_Object$getOwnPropertySymbols__default['default']) { var symbols = _Object$getOwnPropertySymbols__default['default'](object); if (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; }
707
+ 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; }
719
708
 
720
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context8; _forEachInstanceProperty__default['default'](_context8 = ownKeys(Object(source), true)).call(_context8, function (key) { _defineProperty__default['default'](target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors__default['default']) { _Object$defineProperties__default['default'](target, _Object$getOwnPropertyDescriptors__default['default'](source)); } else { var _context9; _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; }
709
+ 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; }
721
710
  tmpPromise.setGracefulCleanup();
722
711
  var PACK_CMD = ["npm", "pack", "--dry-run"];
723
712
  /**