vis-dev-utils 6.0.15 → 6.0.16

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.
Files changed (31) hide show
  1. package/babel-preset/index.cjs +3 -3
  2. package/babel-preset/index.cjs.map +1 -1
  3. package/babel-preset/index.mjs +3 -3
  4. package/babel-preset/index.mjs.map +1 -1
  5. package/bin/ci-utils.js +3 -3
  6. package/bin/ci-utils.js.map +1 -1
  7. package/bin/generate-examples-index.js +121 -118
  8. package/bin/generate-examples-index.js.map +1 -1
  9. package/bin/test-e2e-interop.js +6 -6
  10. package/bin/test-e2e-interop.js.map +1 -1
  11. package/declarations/generate-examples-index/content-builder/builder.d.ts +2 -3
  12. package/declarations/generate-examples-index/content-builder/builder.d.ts.map +1 -1
  13. package/declarations/generate-examples-index/content-builder/format.d.ts.map +1 -1
  14. package/declarations/generate-examples-index/content-builder/html/index.d.ts.map +1 -1
  15. package/declarations/generate-examples-index/content-builder/md/index.d.ts.map +1 -1
  16. package/declarations/generate-examples-index/content-builder/playground/codepen.d.ts.map +1 -1
  17. package/declarations/generate-examples-index/content-builder/playground/data.d.ts.map +1 -1
  18. package/declarations/generate-examples-index/content-builder/playground/jsfiddle.d.ts.map +1 -1
  19. package/declarations/generate-examples-index/content-builder/screenshots/index.d.ts.map +1 -1
  20. package/declarations/generate-examples-index/paths.d.ts.map +1 -1
  21. package/declarations/module/generate-rollup-configuration/index.d.ts +3 -3
  22. package/declarations/module/generate-rollup-configuration/index.d.ts.map +1 -1
  23. package/declarations/module/inspect-npm-pack.d.ts.map +1 -1
  24. package/declarations/module/util.d.ts +1 -1
  25. package/declarations/module/util.d.ts.map +1 -1
  26. package/declarations/test-e2e-interop/test.d.ts.map +1 -1
  27. package/dist/vis-dev-utils.cjs +13 -10
  28. package/dist/vis-dev-utils.cjs.map +1 -1
  29. package/dist/vis-dev-utils.mjs +13 -10
  30. package/dist/vis-dev-utils.mjs.map +1 -1
  31. package/package.json +12 -14
@@ -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\";\nimport { hideBin } from \"yargs/helpers\";\n\nconst y = yargs(hideBin(process.argv))\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 \"node:child_process\";\nimport { basename, join } from \"node:path\";\nimport { readFile, rename } from \"node:fs/promises\";\nimport { createWriteStream } from \"node:fs\";\n\nconst INTEROP_ENV = Object.freeze<NodeJS.ProcessEnv>({\n ...process.env,\n // Prevent Husky from erroring out on shallow cloned repositories.\n HUSKY: \"0\",\n // Prevent interop tests from going into infinite recursions.\n VIS_INTEROP: \"1\",\n});\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 * @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: INTEROP_ENV,\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: INTEROP_ENV,\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 * @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 { resolve as resolvePath } from \"node:path\";\nimport {\n copyFile,\n lstat,\n mkdir,\n readFile,\n readdir,\n writeFile,\n unlink,\n} from \"node:fs/promises\";\nimport { Stats } from \"node:fs\";\n\nimport { DirResult, dirSync, setGracefulCleanup } from \"tmp\";\nimport { findUp } from \"find-up\";\nimport fsExtra from \"fs-extra\";\n\nimport {\n ProjectState,\n Spawn,\n createSpawner,\n execFail,\n logError,\n logInfo,\n} from \"./util\";\n\n// This is needed because the ESM export fs-extra/esm has no types and the typed\n// fs-extra export is CJS.\nconst { copy, mkdirp } = fsExtra;\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 (await getPackageLocalDeps(data, projectName)).reduce<\n Record<string, string>\n >((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 (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 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\ntry {\n const allSucceeded = await test({\n failCommand,\n logsToStdout,\n packageScripts,\n projectPaths,\n tmpPath,\n });\n\n if (!allSucceeded) {\n process.exitCode = 1;\n }\n} catch (reason) {\n console.error(reason);\n process.exitCode = 2;\n}\n"],"names":["error","resolvePath","packageScripts"],"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\";\nimport { hideBin } from \"yargs/helpers\";\n\nconst y = yargs(hideBin(process.argv))\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 \"node:child_process\";\nimport { createWriteStream } from \"node:fs\";\nimport { readFile, rename } from \"node:fs/promises\";\nimport { basename, join } from \"node:path\";\n\nconst INTEROP_ENV = Object.freeze<NodeJS.ProcessEnv>({\n ...process.env,\n // Prevent Husky from erroring out on shallow cloned repositories.\n HUSKY: \"0\",\n // Prevent interop tests from going into infinite recursions.\n VIS_INTEROP: \"1\",\n});\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 * @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: INTEROP_ENV,\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: INTEROP_ENV,\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 * @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 {\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 { Stats } from \"node:fs\";\nimport {\n copyFile,\n lstat,\n mkdir,\n readFile,\n readdir,\n unlink,\n writeFile,\n} from \"node:fs/promises\";\nimport { resolve as resolvePath } from \"node:path\";\n\nimport { findUp } from \"find-up\";\nimport fsExtra from \"fs-extra\";\nimport { DirResult, dirSync, setGracefulCleanup } from \"tmp\";\n\nimport {\n ProjectState,\n Spawn,\n createSpawner,\n execFail,\n logError,\n logInfo,\n} from \"./util\";\n\n// This is needed because the ESM export fs-extra/esm has no types and the typed\n// fs-extra export is CJS.\nconst { copy, mkdirp } = fsExtra;\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 (projectPath.endsWith(\".git\")) {\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 (await getPackageLocalDeps(data, projectName)).reduce<\n Record<string, string>\n >((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 { resolve } from \"node:path\";\n\nimport { parseArguments } from \"./cli\";\nimport { PackageScript, ProjectPaths, 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\ntry {\n const allSucceeded = await test({\n failCommand,\n logsToStdout,\n packageScripts,\n projectPaths,\n tmpPath,\n });\n\n if (!allSucceeded) {\n process.exitCode = 1;\n }\n} catch (reason) {\n console.error(reason);\n process.exitCode = 2;\n}\n"],"names":["error","resolvePath","packageScripts"],"mappings":"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"}
@@ -33,8 +33,8 @@ export interface ContentBuilderRet {
33
33
  screenshots: Promise<ExampleReport[]>;
34
34
  }
35
35
  export declare class ContentBuilder {
36
- private readonly _config;
37
- constructor(_config: ContentBuilderConfig);
36
+ #private;
37
+ constructor(config: ContentBuilderConfig);
38
38
  /**
39
39
  * Build the files and write them to the disk.
40
40
  * @param emit - Which types of files to emit.
@@ -48,6 +48,5 @@ export declare class ContentBuilder {
48
48
  playgrounds?: boolean;
49
49
  screenshots?: boolean;
50
50
  }): ContentBuilderRet;
51
- private _processGroup;
52
51
  }
53
52
  //# sourceMappingURL=builder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../../src/generate-examples-index/content-builder/builder.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAY,YAAY,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,EACL,QAAQ,EACR,MAAM,EAIP,MAAM,UAAU,CAAC;AAQlB,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC;AACjC,MAAM,WAAW,aAAc,SAAQ,MAAM;IAC3C,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,uDAAuD;IACvD,QAAQ,EAAE,YAAY,CAAC;IACvB,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,QAAQ,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,QAAQ,EAAE,QAAQ,CAAC;IACnB,4DAA4D;IAC5D,gBAAgB,EAAE,MAAM,CAAC;IACzB,mDAAmD;IACnD,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACxB,KAAK,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAC9B,WAAW,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IACtC,WAAW,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;CACvC;AAED,qBAAa,cAAc;IACN,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,oBAAoB;IAEjE;;;;;;;OAOG;IACI,KAAK,CACV,IAAI,GAAE;QACJ,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,WAAW,CAAC,EAAE,OAAO,CAAC;KAClB,GACL,iBAAiB;IAgMpB,OAAO,CAAC,aAAa;CAatB"}
1
+ {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../../src/generate-examples-index/content-builder/builder.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAY,YAAY,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,EACL,QAAQ,EACR,MAAM,EAIP,MAAM,UAAU,CAAC;AAQlB,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC;AACjC,MAAM,WAAW,aAAc,SAAQ,MAAM;IAC3C,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,uDAAuD;IACvD,QAAQ,EAAE,YAAY,CAAC;IACvB,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,QAAQ,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,QAAQ,EAAE,QAAQ,CAAC;IACnB,4DAA4D;IAC5D,gBAAgB,EAAE,MAAM,CAAC;IACzB,mDAAmD;IACnD,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACxB,KAAK,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAC9B,WAAW,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IACtC,WAAW,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;CACvC;AAED,qBAAa,cAAc;;gBAGN,MAAM,EAAE,oBAAoB;IAI/C;;;;;;;OAOG;IACI,KAAK,CACV,IAAI,GAAE;QACJ,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,WAAW,CAAC,EAAE,OAAO,CAAC;KAClB,GACL,iBAAiB;CA6MrB"}
@@ -1 +1 @@
1
- {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../src/generate-examples-index/content-builder/format.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,GAAI,KAAK,MAAM,GAAG,IAAI,GAAG,SAAS,KAAG,OAAO,CAAC,MAAM,CAClB,CAAC;AACxD,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,GAAG,IAAI,GAAG,SAAS,KAAG,OAAO,CAAC,MAAM,CAClB,CAAC;AAC1D,eAAO,MAAM,QAAQ,GAAI,IAAI,MAAM,GAAG,IAAI,GAAG,SAAS,KAAG,OAAO,CAAC,MAAM,CACjB,CAAC;AACvD,eAAO,MAAM,QAAQ,GAAI,IAAI,MAAM,GAAG,IAAI,GAAG,SAAS,KAAG,OAAO,CAAC,MAAM,CACjB,CAAC"}
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../src/generate-examples-index/content-builder/format.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,GACpB,KAAK,MAAM,GAAG,IAAI,GAAG,SAAS,KAC7B,OAAO,CAAC,MAAM,CAAgD,CAAC;AAClE,eAAO,MAAM,UAAU,GACrB,MAAM,MAAM,GAAG,IAAI,GAAG,SAAS,KAC9B,OAAO,CAAC,MAAM,CAAkD,CAAC;AACpE,eAAO,MAAM,QAAQ,GACnB,IAAI,MAAM,GAAG,IAAI,GAAG,SAAS,KAC5B,OAAO,CAAC,MAAM,CAA+C,CAAC;AACjE,eAAO,MAAM,QAAQ,GACnB,IAAI,MAAM,GAAG,IAAI,GAAG,SAAS,KAC5B,OAAO,CAAC,MAAM,CAA+C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/generate-examples-index/content-builder/html/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAe,QAAQ,EAAa,MAAM,WAAW,CAAC;AAyF7D,eAAO,MAAM,YAAY,EAAE,QAkC1B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/generate-examples-index/content-builder/html/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAe,QAAQ,EAAa,MAAM,WAAW,CAAC;AA0F7D,eAAO,MAAM,YAAY,EAAE,QAkC1B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/generate-examples-index/content-builder/md/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,QAAQ,EAAa,MAAM,WAAW,CAAC;AAmG7D,eAAO,MAAM,UAAU,EAAE,QAmCxB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/generate-examples-index/content-builder/md/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAe,QAAQ,EAAa,MAAM,WAAW,CAAC;AAiG7D,eAAO,MAAM,UAAU,EAAE,QAmCxB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"codepen.d.ts","sourceRoot":"","sources":["../../../../src/generate-examples-index/content-builder/playground/codepen.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAqB5D"}
1
+ {"version":3,"file":"codepen.d.ts","sourceRoot":"","sources":["../../../../src/generate-examples-index/content-builder/playground/codepen.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAqB5D"}
@@ -1 +1 @@
1
- {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../../src/generate-examples-index/content-builder/playground/data.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGtD;;;;GAIG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,EACtB,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,GAC3B,OAAO,CAAC,cAAc,CAAC,CA6EzB"}
1
+ {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../../src/generate-examples-index/content-builder/playground/data.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGtD;;;;GAIG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,EACtB,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,GAC3B,OAAO,CAAC,cAAc,CAAC,CA6EzB"}
@@ -1 +1 @@
1
- {"version":3,"file":"jsfiddle.d.ts","sourceRoot":"","sources":["../../../../src/generate-examples-index/content-builder/playground/jsfiddle.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAoB7D"}
1
+ {"version":3,"file":"jsfiddle.d.ts","sourceRoot":"","sources":["../../../../src/generate-examples-index/content-builder/playground/jsfiddle.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAoB7D"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/generate-examples-index/content-builder/screenshots/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AA4BtC,MAAM,WAAW,wBAAwB;IACvC;;;OAGG;IACH,KAAK,EAAE,OAAO,CAAC;IACf,8DAA8D;IAC9D,OAAO,EAAE,OAAO,CAAC;IACjB,yCAAyC;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,gBAAgB,EAAE,MAAM,CAAC;IACzB,wCAAwC;IACxC,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,wBAAwB,GAC/B,OAAO,CAAC,OAAO,CAAC,CAwHlB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/generate-examples-index/content-builder/screenshots/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AA6BtC,MAAM,WAAW,wBAAwB;IACvC;;;OAGG;IACH,KAAK,EAAE,OAAO,CAAC;IACf,8DAA8D;IAC9D,OAAO,EAAE,OAAO,CAAC;IACjB,yCAAyC;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,gBAAgB,EAAE,MAAM,CAAC;IACzB,wCAAwC;IACxC,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,wBAAwB,GAC/B,OAAO,CAAC,OAAO,CAAC,CAwHlB"}
@@ -1 +1 @@
1
- {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/generate-examples-index/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAe,YAAY,EAAE,MAAM,SAAS,CAAC;AAI7D;;GAEG;AACH,wBAAgB,QAAQ,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAOlD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAMxE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,YAAY,EACpB,mBAAmB,EAAE,OAAO,CAAC,MAAM,CAAC,GACnC,YAAY,CAkCd"}
1
+ {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/generate-examples-index/paths.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAe,YAAY,EAAE,MAAM,SAAS,CAAC;AAE7D;;GAEG;AACH,wBAAgB,QAAQ,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAOlD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAMxE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,YAAY,EACpB,mBAAmB,EAAE,OAAO,CAAC,MAAM,CAAC,GACnC,YAAY,CAkCd"}
@@ -1,7 +1,7 @@
1
- import { type RollupOptions } from "rollup";
1
+ import type { RollupOptions } from "rollup";
2
2
  import { Target as CopyTarget } from "rollup-plugin-copy";
3
- import { type HeaderOptions } from "../header";
4
- import { type OptionalOptions } from "../util";
3
+ import type { HeaderOptions } from "../header";
4
+ import type { OptionalOptions } from "../util";
5
5
  export interface GRCOptions {
6
6
  /**
7
7
  * Where to look for files when inlining assets into CSS.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/module/generate-rollup-configuration/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAe,MAAM,QAAQ,CAAC;AAIzD,OAAmB,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAatE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,SAAS,CAAC;AA2B/C,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,OAAO,CAAC;QACnB,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,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC;QACxE,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;QACzC,KAAK,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;IACH;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;CAClB;AA8RD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,eAAe,CAAC,UAAU,CAAC,EACpC,IAAI,GAAE,YAAY,GAAG,aAAa,GAAG,MAInB,GACjB,OAAO,CAAC,aAAa,EAAE,CAAC,CA6f1B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/module/generate-rollup-configuration/index.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAU,aAAa,EAAE,MAAM,QAAQ,CAAC;AAEpD,OAAmB,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAMtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AA0B/C,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,OAAO,CAAC;QACnB,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,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC;QACxE,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;QACzC,KAAK,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;IACH;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;CAClB;AA8RD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,eAAe,CAAC,UAAU,CAAC,EACpC,IAAI,GAAE,YAAY,GAAG,aAAa,GAAG,MAInB,GACjB,OAAO,CAAC,aAAa,EAAE,CAAC,CAggB1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"inspect-npm-pack.d.ts","sourceRoot":"","sources":["../../src/module/inspect-npm-pack.ts"],"names":[],"mappings":"AAqHA;;GAEG;AACH,wBAAgB,cAAc,IAAI;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAChD,CAwBA"}
1
+ {"version":3,"file":"inspect-npm-pack.d.ts","sourceRoot":"","sources":["../../src/module/inspect-npm-pack.ts"],"names":[],"mappings":"AAsHA;;GAEG;AACH,wBAAgB,cAAc,IAAI;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAChD,CAwBA"}
@@ -1,4 +1,4 @@
1
1
  export type OptionalOptions<Options> = {
2
- [Key in keyof Options]?: undefined | (Options[Key] extends Array<infer Member> ? Array<OptionalOptions<Member>> : Options[Key] extends ReadonlyArray<infer Member> ? ReadonlyArray<OptionalOptions<Member>> : OptionalOptions<Options[Key]>);
2
+ [Key in keyof Options]?: undefined | (Options[Key] extends (infer Member)[] ? OptionalOptions<Member>[] : Options[Key] extends readonly (infer Member)[] ? readonly OptionalOptions<Member>[] : OptionalOptions<Options[Key]>);
3
3
  };
4
4
  //# sourceMappingURL=util.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/module/util.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,CAAC,OAAO,IAAI;KACpC,GAAG,IAAI,MAAM,OAAO,CAAC,CAAC,EACnB,SAAS,GACT,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,KAAK,CAAC,MAAM,MAAM,CAAC,GACrC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,GAC9B,OAAO,CAAC,GAAG,CAAC,SAAS,aAAa,CAAC,MAAM,MAAM,CAAC,GAC9C,aAAa,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,GACtC,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;CACzC,CAAC"}
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/module/util.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,CAAC,OAAO,IAAI;KACpC,GAAG,IAAI,MAAM,OAAO,CAAC,CAAC,EACnB,SAAS,GACT,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,MAAM,CAAC,EAAE,GAClC,eAAe,CAAC,MAAM,CAAC,EAAE,GACzB,OAAO,CAAC,GAAG,CAAC,SAAS,SAAS,CAAC,MAAM,MAAM,CAAC,EAAE,GAC5C,SAAS,eAAe,CAAC,MAAM,CAAC,EAAE,GAClC,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;CACzC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../src/test-e2e-interop/test.ts"],"names":[],"mappings":"AA2CA,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AA6NlD,MAAM,WAAW,QAAQ;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,SAAS,aAAa,EAAE,CAAC;IACzC,YAAY,EAAE,YAAY,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AACD;;;;;;;GAOG;AACH,wBAAsB,IAAI,CAAC,EACzB,WAAW,EACX,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,OAAO,GACR,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAgK7B"}
1
+ {"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../src/test-e2e-interop/test.ts"],"names":[],"mappings":"AA2CA,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AA6NlD,MAAM,WAAW,QAAQ;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,SAAS,aAAa,EAAE,CAAC;IACzC,YAAY,EAAE,YAAY,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AACD;;;;;;;GAOG;AACH,wBAAsB,IAAI,CAAC,EACzB,WAAW,EACX,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,OAAO,GACR,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAkK7B"}
@@ -4,8 +4,8 @@
4
4
  *
5
5
  * Development utilities for the Vis family projects.
6
6
  *
7
- * @version 6.0.15
8
- * @date 2026-07-19T14:08:17.967Z
7
+ * @version 6.0.16
8
+ * @date 2026-07-23T18:20:31.879Z
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
@@ -27,20 +27,20 @@
27
27
  'use strict';
28
28
 
29
29
  var fs = require('node:fs/promises');
30
+ var node_path = require('node:path');
30
31
  var node_url = require('node:url');
31
- var analyzerPlugin = require('rollup-plugin-analyzer');
32
32
  var babelPlugin = require('@rollup/plugin-babel');
33
33
  var commonjsPlugin = require('@rollup/plugin-commonjs');
34
- var copyPlugin = require('rollup-plugin-copy');
35
34
  var jsonPlugin = require('@rollup/plugin-json');
36
35
  var nodeResolvePlugin = require('@rollup/plugin-node-resolve');
37
- var postcssAssetsPlugin = require('postcss-assets');
38
- var postcssPlugin = require('rollup-plugin-postcss');
39
36
  var terserPlugin = require('@rollup/plugin-terser');
40
37
  var typescriptPlugin = require('@rollup/plugin-typescript');
41
- var node_path = require('node:path');
42
- var rollupPluginString = require('rollup-plugin-string');
43
38
  var chai = require('chai');
39
+ var postcssAssetsPlugin = require('postcss-assets');
40
+ var analyzerPlugin = require('rollup-plugin-analyzer');
41
+ var copyPlugin = require('rollup-plugin-copy');
42
+ var postcssPlugin = require('rollup-plugin-postcss');
43
+ var rollupPluginString = require('rollup-plugin-string');
44
44
  var node_child_process = require('node:child_process');
45
45
  var node_fs = require('node:fs');
46
46
  var tmpPromise = require('tmp-promise');
@@ -354,9 +354,12 @@ async function generateRollupConfiguration(options, mode = VIS_TEST ? "test" : V
354
354
  });
355
355
  validate((expect) => {
356
356
  expect(
357
- [...Object.keys(dependencies), ...Object.keys(peerDependencies)].sort(),
357
+ [
358
+ ...Object.keys(dependencies),
359
+ ...Object.keys(peerDependencies)
360
+ ].toSorted(),
358
361
  "Globals have to be provided for all runtime and peer dependencies but nothing else"
359
- ).to.be.an("array").that.deep.equals(Object.keys(globals).sort());
362
+ ).to.be.an("array").that.deep.equals(Object.keys(globals).toSorted());
360
363
  });
361
364
  validate(async (expect) => {
362
365
  expect(node_path.resolve(assets), "Assets have to be a directory").to.be.a("string");