@tracecode/harness 0.5.1 → 0.6.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.
Files changed (49) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/README.md +30 -3
  3. package/dist/browser.cjs +974 -19
  4. package/dist/browser.cjs.map +1 -1
  5. package/dist/browser.d.cts +3 -2
  6. package/dist/browser.d.ts +3 -2
  7. package/dist/browser.js +974 -19
  8. package/dist/browser.js.map +1 -1
  9. package/dist/cli.cjs +24 -0
  10. package/dist/cli.cjs.map +1 -1
  11. package/dist/cli.js +24 -0
  12. package/dist/cli.js.map +1 -1
  13. package/dist/core.cjs +611 -4
  14. package/dist/core.cjs.map +1 -1
  15. package/dist/core.d.cts +20 -6
  16. package/dist/core.d.ts +20 -6
  17. package/dist/core.js +605 -4
  18. package/dist/core.js.map +1 -1
  19. package/dist/index.cjs +1004 -19
  20. package/dist/index.cjs.map +1 -1
  21. package/dist/index.d.cts +3 -3
  22. package/dist/index.d.ts +3 -3
  23. package/dist/index.js +998 -19
  24. package/dist/index.js.map +1 -1
  25. package/dist/internal/browser.cjs +211 -0
  26. package/dist/internal/browser.cjs.map +1 -1
  27. package/dist/internal/browser.d.cts +62 -6
  28. package/dist/internal/browser.d.ts +62 -6
  29. package/dist/internal/browser.js +210 -0
  30. package/dist/internal/browser.js.map +1 -1
  31. package/dist/javascript.d.cts +2 -2
  32. package/dist/javascript.d.ts +2 -2
  33. package/dist/{runtime-types-DtaaAhHL.d.ts → runtime-types-89nchXlY.d.cts} +8 -4
  34. package/dist/{runtime-types--lBQ6rYu.d.cts → runtime-types-CCQ-ZLc9.d.ts} +8 -4
  35. package/dist/{types-DwIYM3Ku.d.cts → types-zyvpJKCi.d.cts} +1 -0
  36. package/dist/{types-DwIYM3Ku.d.ts → types-zyvpJKCi.d.ts} +1 -0
  37. package/package.json +17 -5
  38. package/workers/java/.build/classes/harness/browser/JavaRewriteLibrary.class +0 -0
  39. package/workers/java/java-worker.js +712 -0
  40. package/workers/java/src/harness/browser/JavaRewriteLibrary.java +54 -0
  41. package/workers/javascript/javascript-worker.js +343 -63
  42. package/workers/python/generated-python-harness-snippets.js +3 -3
  43. package/workers/python/pyodide-worker.js +419 -68
  44. package/workers/python/runtime-core.js +52 -3
  45. package/workers/vendor/java-browser-spike-helper.jar +0 -0
  46. package/workers/vendor/java-practice-rewriter.jar +0 -0
  47. package/workers/vendor/java-rewrite-bridge.jar +0 -0
  48. package/workers/vendor/javaparser-core-3.25.10.jar +0 -0
  49. package/workers/vendor/jdk.compiler-17.jar +0 -0
package/dist/cli.cjs CHANGED
@@ -20,9 +20,33 @@ var ASSET_COPY_PLAN = [
20
20
  source: ["workers", "javascript", "javascript-worker.js"],
21
21
  target: ["javascript-worker.js"]
22
22
  },
23
+ {
24
+ source: ["workers", "java", "java-worker.js"],
25
+ target: ["java-worker.js"]
26
+ },
23
27
  {
24
28
  source: ["workers", "vendor", "typescript.js"],
25
29
  target: ["vendor", "typescript.js"]
30
+ },
31
+ {
32
+ source: ["workers", "vendor", "java-browser-spike-helper.jar"],
33
+ target: ["vendor", "java-browser-spike-helper.jar"]
34
+ },
35
+ {
36
+ source: ["workers", "vendor", "java-practice-rewriter.jar"],
37
+ target: ["vendor", "java-practice-rewriter.jar"]
38
+ },
39
+ {
40
+ source: ["workers", "vendor", "java-rewrite-bridge.jar"],
41
+ target: ["vendor", "java-rewrite-bridge.jar"]
42
+ },
43
+ {
44
+ source: ["workers", "vendor", "javaparser-core-3.25.10.jar"],
45
+ target: ["vendor", "javaparser-core-3.25.10.jar"]
46
+ },
47
+ {
48
+ source: ["workers", "vendor", "jdk.compiler-17.jar"],
49
+ target: ["vendor", "jdk.compiler-17.jar"]
26
50
  }
27
51
  ];
28
52
  function usage() {
package/dist/cli.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/cli.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport { copyFile, mkdir } from 'node:fs/promises';\nimport { dirname, join, resolve } from 'node:path';\n\nconst ASSET_COPY_PLAN = [\n {\n source: ['workers', 'python', 'pyodide-worker.js'],\n target: ['pyodide-worker.js'],\n },\n {\n source: ['workers', 'python', 'generated-python-harness-snippets.js'],\n target: ['generated-python-harness-snippets.js'],\n },\n {\n source: ['workers', 'python', 'runtime-core.js'],\n target: ['pyodide', 'runtime-core.js'],\n },\n {\n source: ['workers', 'javascript', 'javascript-worker.js'],\n target: ['javascript-worker.js'],\n },\n {\n source: ['workers', 'vendor', 'typescript.js'],\n target: ['vendor', 'typescript.js'],\n },\n] as const;\n\nfunction usage(): string {\n return [\n 'Usage:',\n ' tracecode-harness sync-assets <target-dir>',\n '',\n 'Example:',\n ' tracecode-harness sync-assets public/workers',\n ].join('\\n');\n}\n\nasync function ensureParentDir(pathname: string): Promise<void> {\n await mkdir(dirname(pathname), { recursive: true });\n}\n\nfunction getPackageRoot(): string {\n const cliEntrypoint = process.argv[1];\n if (!cliEntrypoint) {\n throw new Error('Unable to resolve tracecode-harness CLI entrypoint');\n }\n\n return resolve(dirname(cliEntrypoint), '..');\n}\n\nasync function syncAssets(targetDir: string): Promise<void> {\n const packageRoot = getPackageRoot();\n const resolvedTargetDir = resolve(process.cwd(), targetDir);\n\n for (const asset of ASSET_COPY_PLAN) {\n const sourcePath = join(packageRoot, ...asset.source);\n const targetPath = join(resolvedTargetDir, ...asset.target);\n await ensureParentDir(targetPath);\n await copyFile(sourcePath, targetPath);\n }\n\n console.log(`Synced harness assets to ${resolvedTargetDir}`);\n}\n\nasync function main(): Promise<void> {\n const [command, targetDir] = process.argv.slice(2);\n\n if (command !== 'sync-assets' || !targetDir) {\n console.error(usage());\n process.exit(1);\n }\n\n await syncAssets(targetDir);\n}\n\nmain().catch((error) => {\n console.error(error instanceof Error ? error.message : String(error));\n process.exit(1);\n});\n"],"mappings":";;;AAEA,sBAAgC;AAChC,uBAAuC;AAEvC,IAAM,kBAAkB;AAAA,EACtB;AAAA,IACE,QAAQ,CAAC,WAAW,UAAU,mBAAmB;AAAA,IACjD,QAAQ,CAAC,mBAAmB;AAAA,EAC9B;AAAA,EACA;AAAA,IACE,QAAQ,CAAC,WAAW,UAAU,sCAAsC;AAAA,IACpE,QAAQ,CAAC,sCAAsC;AAAA,EACjD;AAAA,EACA;AAAA,IACE,QAAQ,CAAC,WAAW,UAAU,iBAAiB;AAAA,IAC/C,QAAQ,CAAC,WAAW,iBAAiB;AAAA,EACvC;AAAA,EACA;AAAA,IACE,QAAQ,CAAC,WAAW,cAAc,sBAAsB;AAAA,IACxD,QAAQ,CAAC,sBAAsB;AAAA,EACjC;AAAA,EACA;AAAA,IACE,QAAQ,CAAC,WAAW,UAAU,eAAe;AAAA,IAC7C,QAAQ,CAAC,UAAU,eAAe;AAAA,EACpC;AACF;AAEA,SAAS,QAAgB;AACvB,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,EAAE,KAAK,IAAI;AACb;AAEA,eAAe,gBAAgB,UAAiC;AAC9D,YAAM,2BAAM,0BAAQ,QAAQ,GAAG,EAAE,WAAW,KAAK,CAAC;AACpD;AAEA,SAAS,iBAAyB;AAChC,QAAM,gBAAgB,QAAQ,KAAK,CAAC;AACpC,MAAI,CAAC,eAAe;AAClB,UAAM,IAAI,MAAM,oDAAoD;AAAA,EACtE;AAEA,aAAO,8BAAQ,0BAAQ,aAAa,GAAG,IAAI;AAC7C;AAEA,eAAe,WAAW,WAAkC;AAC1D,QAAM,cAAc,eAAe;AACnC,QAAM,wBAAoB,0BAAQ,QAAQ,IAAI,GAAG,SAAS;AAE1D,aAAW,SAAS,iBAAiB;AACnC,UAAM,iBAAa,uBAAK,aAAa,GAAG,MAAM,MAAM;AACpD,UAAM,iBAAa,uBAAK,mBAAmB,GAAG,MAAM,MAAM;AAC1D,UAAM,gBAAgB,UAAU;AAChC,cAAM,0BAAS,YAAY,UAAU;AAAA,EACvC;AAEA,UAAQ,IAAI,4BAA4B,iBAAiB,EAAE;AAC7D;AAEA,eAAe,OAAsB;AACnC,QAAM,CAAC,SAAS,SAAS,IAAI,QAAQ,KAAK,MAAM,CAAC;AAEjD,MAAI,YAAY,iBAAiB,CAAC,WAAW;AAC3C,YAAQ,MAAM,MAAM,CAAC;AACrB,YAAQ,KAAK,CAAC;AAAA,EAChB;AAEA,QAAM,WAAW,SAAS;AAC5B;AAEA,KAAK,EAAE,MAAM,CAAC,UAAU;AACtB,UAAQ,MAAM,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,CAAC;AACpE,UAAQ,KAAK,CAAC;AAChB,CAAC;","names":[]}
1
+ {"version":3,"sources":["../src/cli.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport { copyFile, mkdir } from 'node:fs/promises';\nimport { dirname, join, resolve } from 'node:path';\n\nconst ASSET_COPY_PLAN = [\n {\n source: ['workers', 'python', 'pyodide-worker.js'],\n target: ['pyodide-worker.js'],\n },\n {\n source: ['workers', 'python', 'generated-python-harness-snippets.js'],\n target: ['generated-python-harness-snippets.js'],\n },\n {\n source: ['workers', 'python', 'runtime-core.js'],\n target: ['pyodide', 'runtime-core.js'],\n },\n {\n source: ['workers', 'javascript', 'javascript-worker.js'],\n target: ['javascript-worker.js'],\n },\n {\n source: ['workers', 'java', 'java-worker.js'],\n target: ['java-worker.js'],\n },\n {\n source: ['workers', 'vendor', 'typescript.js'],\n target: ['vendor', 'typescript.js'],\n },\n {\n source: ['workers', 'vendor', 'java-browser-spike-helper.jar'],\n target: ['vendor', 'java-browser-spike-helper.jar'],\n },\n {\n source: ['workers', 'vendor', 'java-practice-rewriter.jar'],\n target: ['vendor', 'java-practice-rewriter.jar'],\n },\n {\n source: ['workers', 'vendor', 'java-rewrite-bridge.jar'],\n target: ['vendor', 'java-rewrite-bridge.jar'],\n },\n {\n source: ['workers', 'vendor', 'javaparser-core-3.25.10.jar'],\n target: ['vendor', 'javaparser-core-3.25.10.jar'],\n },\n {\n source: ['workers', 'vendor', 'jdk.compiler-17.jar'],\n target: ['vendor', 'jdk.compiler-17.jar'],\n },\n] as const;\n\nfunction usage(): string {\n return [\n 'Usage:',\n ' tracecode-harness sync-assets <target-dir>',\n '',\n 'Example:',\n ' tracecode-harness sync-assets public/workers',\n ].join('\\n');\n}\n\nasync function ensureParentDir(pathname: string): Promise<void> {\n await mkdir(dirname(pathname), { recursive: true });\n}\n\nfunction getPackageRoot(): string {\n const cliEntrypoint = process.argv[1];\n if (!cliEntrypoint) {\n throw new Error('Unable to resolve tracecode-harness CLI entrypoint');\n }\n\n return resolve(dirname(cliEntrypoint), '..');\n}\n\nasync function syncAssets(targetDir: string): Promise<void> {\n const packageRoot = getPackageRoot();\n const resolvedTargetDir = resolve(process.cwd(), targetDir);\n\n for (const asset of ASSET_COPY_PLAN) {\n const sourcePath = join(packageRoot, ...asset.source);\n const targetPath = join(resolvedTargetDir, ...asset.target);\n await ensureParentDir(targetPath);\n await copyFile(sourcePath, targetPath);\n }\n\n console.log(`Synced harness assets to ${resolvedTargetDir}`);\n}\n\nasync function main(): Promise<void> {\n const [command, targetDir] = process.argv.slice(2);\n\n if (command !== 'sync-assets' || !targetDir) {\n console.error(usage());\n process.exit(1);\n }\n\n await syncAssets(targetDir);\n}\n\nmain().catch((error) => {\n console.error(error instanceof Error ? error.message : String(error));\n process.exit(1);\n});\n"],"mappings":";;;AAEA,sBAAgC;AAChC,uBAAuC;AAEvC,IAAM,kBAAkB;AAAA,EACtB;AAAA,IACE,QAAQ,CAAC,WAAW,UAAU,mBAAmB;AAAA,IACjD,QAAQ,CAAC,mBAAmB;AAAA,EAC9B;AAAA,EACA;AAAA,IACE,QAAQ,CAAC,WAAW,UAAU,sCAAsC;AAAA,IACpE,QAAQ,CAAC,sCAAsC;AAAA,EACjD;AAAA,EACA;AAAA,IACE,QAAQ,CAAC,WAAW,UAAU,iBAAiB;AAAA,IAC/C,QAAQ,CAAC,WAAW,iBAAiB;AAAA,EACvC;AAAA,EACA;AAAA,IACE,QAAQ,CAAC,WAAW,cAAc,sBAAsB;AAAA,IACxD,QAAQ,CAAC,sBAAsB;AAAA,EACjC;AAAA,EACA;AAAA,IACE,QAAQ,CAAC,WAAW,QAAQ,gBAAgB;AAAA,IAC5C,QAAQ,CAAC,gBAAgB;AAAA,EAC3B;AAAA,EACA;AAAA,IACE,QAAQ,CAAC,WAAW,UAAU,eAAe;AAAA,IAC7C,QAAQ,CAAC,UAAU,eAAe;AAAA,EACpC;AAAA,EACA;AAAA,IACE,QAAQ,CAAC,WAAW,UAAU,+BAA+B;AAAA,IAC7D,QAAQ,CAAC,UAAU,+BAA+B;AAAA,EACpD;AAAA,EACA;AAAA,IACE,QAAQ,CAAC,WAAW,UAAU,4BAA4B;AAAA,IAC1D,QAAQ,CAAC,UAAU,4BAA4B;AAAA,EACjD;AAAA,EACA;AAAA,IACE,QAAQ,CAAC,WAAW,UAAU,yBAAyB;AAAA,IACvD,QAAQ,CAAC,UAAU,yBAAyB;AAAA,EAC9C;AAAA,EACA;AAAA,IACE,QAAQ,CAAC,WAAW,UAAU,6BAA6B;AAAA,IAC3D,QAAQ,CAAC,UAAU,6BAA6B;AAAA,EAClD;AAAA,EACA;AAAA,IACE,QAAQ,CAAC,WAAW,UAAU,qBAAqB;AAAA,IACnD,QAAQ,CAAC,UAAU,qBAAqB;AAAA,EAC1C;AACF;AAEA,SAAS,QAAgB;AACvB,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,EAAE,KAAK,IAAI;AACb;AAEA,eAAe,gBAAgB,UAAiC;AAC9D,YAAM,2BAAM,0BAAQ,QAAQ,GAAG,EAAE,WAAW,KAAK,CAAC;AACpD;AAEA,SAAS,iBAAyB;AAChC,QAAM,gBAAgB,QAAQ,KAAK,CAAC;AACpC,MAAI,CAAC,eAAe;AAClB,UAAM,IAAI,MAAM,oDAAoD;AAAA,EACtE;AAEA,aAAO,8BAAQ,0BAAQ,aAAa,GAAG,IAAI;AAC7C;AAEA,eAAe,WAAW,WAAkC;AAC1D,QAAM,cAAc,eAAe;AACnC,QAAM,wBAAoB,0BAAQ,QAAQ,IAAI,GAAG,SAAS;AAE1D,aAAW,SAAS,iBAAiB;AACnC,UAAM,iBAAa,uBAAK,aAAa,GAAG,MAAM,MAAM;AACpD,UAAM,iBAAa,uBAAK,mBAAmB,GAAG,MAAM,MAAM;AAC1D,UAAM,gBAAgB,UAAU;AAChC,cAAM,0BAAS,YAAY,UAAU;AAAA,EACvC;AAEA,UAAQ,IAAI,4BAA4B,iBAAiB,EAAE;AAC7D;AAEA,eAAe,OAAsB;AACnC,QAAM,CAAC,SAAS,SAAS,IAAI,QAAQ,KAAK,MAAM,CAAC;AAEjD,MAAI,YAAY,iBAAiB,CAAC,WAAW;AAC3C,YAAQ,MAAM,MAAM,CAAC;AACrB,YAAQ,KAAK,CAAC;AAAA,EAChB;AAEA,QAAM,WAAW,SAAS;AAC5B;AAEA,KAAK,EAAE,MAAM,CAAC,UAAU;AACtB,UAAQ,MAAM,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,CAAC;AACpE,UAAQ,KAAK,CAAC;AAChB,CAAC;","names":[]}
package/dist/cli.js CHANGED
@@ -20,9 +20,33 @@ var ASSET_COPY_PLAN = [
20
20
  source: ["workers", "javascript", "javascript-worker.js"],
21
21
  target: ["javascript-worker.js"]
22
22
  },
23
+ {
24
+ source: ["workers", "java", "java-worker.js"],
25
+ target: ["java-worker.js"]
26
+ },
23
27
  {
24
28
  source: ["workers", "vendor", "typescript.js"],
25
29
  target: ["vendor", "typescript.js"]
30
+ },
31
+ {
32
+ source: ["workers", "vendor", "java-browser-spike-helper.jar"],
33
+ target: ["vendor", "java-browser-spike-helper.jar"]
34
+ },
35
+ {
36
+ source: ["workers", "vendor", "java-practice-rewriter.jar"],
37
+ target: ["vendor", "java-practice-rewriter.jar"]
38
+ },
39
+ {
40
+ source: ["workers", "vendor", "java-rewrite-bridge.jar"],
41
+ target: ["vendor", "java-rewrite-bridge.jar"]
42
+ },
43
+ {
44
+ source: ["workers", "vendor", "javaparser-core-3.25.10.jar"],
45
+ target: ["vendor", "javaparser-core-3.25.10.jar"]
46
+ },
47
+ {
48
+ source: ["workers", "vendor", "jdk.compiler-17.jar"],
49
+ target: ["vendor", "jdk.compiler-17.jar"]
26
50
  }
27
51
  ];
28
52
  function usage() {
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/cli.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport { copyFile, mkdir } from 'node:fs/promises';\nimport { dirname, join, resolve } from 'node:path';\n\nconst ASSET_COPY_PLAN = [\n {\n source: ['workers', 'python', 'pyodide-worker.js'],\n target: ['pyodide-worker.js'],\n },\n {\n source: ['workers', 'python', 'generated-python-harness-snippets.js'],\n target: ['generated-python-harness-snippets.js'],\n },\n {\n source: ['workers', 'python', 'runtime-core.js'],\n target: ['pyodide', 'runtime-core.js'],\n },\n {\n source: ['workers', 'javascript', 'javascript-worker.js'],\n target: ['javascript-worker.js'],\n },\n {\n source: ['workers', 'vendor', 'typescript.js'],\n target: ['vendor', 'typescript.js'],\n },\n] as const;\n\nfunction usage(): string {\n return [\n 'Usage:',\n ' tracecode-harness sync-assets <target-dir>',\n '',\n 'Example:',\n ' tracecode-harness sync-assets public/workers',\n ].join('\\n');\n}\n\nasync function ensureParentDir(pathname: string): Promise<void> {\n await mkdir(dirname(pathname), { recursive: true });\n}\n\nfunction getPackageRoot(): string {\n const cliEntrypoint = process.argv[1];\n if (!cliEntrypoint) {\n throw new Error('Unable to resolve tracecode-harness CLI entrypoint');\n }\n\n return resolve(dirname(cliEntrypoint), '..');\n}\n\nasync function syncAssets(targetDir: string): Promise<void> {\n const packageRoot = getPackageRoot();\n const resolvedTargetDir = resolve(process.cwd(), targetDir);\n\n for (const asset of ASSET_COPY_PLAN) {\n const sourcePath = join(packageRoot, ...asset.source);\n const targetPath = join(resolvedTargetDir, ...asset.target);\n await ensureParentDir(targetPath);\n await copyFile(sourcePath, targetPath);\n }\n\n console.log(`Synced harness assets to ${resolvedTargetDir}`);\n}\n\nasync function main(): Promise<void> {\n const [command, targetDir] = process.argv.slice(2);\n\n if (command !== 'sync-assets' || !targetDir) {\n console.error(usage());\n process.exit(1);\n }\n\n await syncAssets(targetDir);\n}\n\nmain().catch((error) => {\n console.error(error instanceof Error ? error.message : String(error));\n process.exit(1);\n});\n"],"mappings":";;;AAEA,SAAS,UAAU,aAAa;AAChC,SAAS,SAAS,MAAM,eAAe;AAEvC,IAAM,kBAAkB;AAAA,EACtB;AAAA,IACE,QAAQ,CAAC,WAAW,UAAU,mBAAmB;AAAA,IACjD,QAAQ,CAAC,mBAAmB;AAAA,EAC9B;AAAA,EACA;AAAA,IACE,QAAQ,CAAC,WAAW,UAAU,sCAAsC;AAAA,IACpE,QAAQ,CAAC,sCAAsC;AAAA,EACjD;AAAA,EACA;AAAA,IACE,QAAQ,CAAC,WAAW,UAAU,iBAAiB;AAAA,IAC/C,QAAQ,CAAC,WAAW,iBAAiB;AAAA,EACvC;AAAA,EACA;AAAA,IACE,QAAQ,CAAC,WAAW,cAAc,sBAAsB;AAAA,IACxD,QAAQ,CAAC,sBAAsB;AAAA,EACjC;AAAA,EACA;AAAA,IACE,QAAQ,CAAC,WAAW,UAAU,eAAe;AAAA,IAC7C,QAAQ,CAAC,UAAU,eAAe;AAAA,EACpC;AACF;AAEA,SAAS,QAAgB;AACvB,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,EAAE,KAAK,IAAI;AACb;AAEA,eAAe,gBAAgB,UAAiC;AAC9D,QAAM,MAAM,QAAQ,QAAQ,GAAG,EAAE,WAAW,KAAK,CAAC;AACpD;AAEA,SAAS,iBAAyB;AAChC,QAAM,gBAAgB,QAAQ,KAAK,CAAC;AACpC,MAAI,CAAC,eAAe;AAClB,UAAM,IAAI,MAAM,oDAAoD;AAAA,EACtE;AAEA,SAAO,QAAQ,QAAQ,aAAa,GAAG,IAAI;AAC7C;AAEA,eAAe,WAAW,WAAkC;AAC1D,QAAM,cAAc,eAAe;AACnC,QAAM,oBAAoB,QAAQ,QAAQ,IAAI,GAAG,SAAS;AAE1D,aAAW,SAAS,iBAAiB;AACnC,UAAM,aAAa,KAAK,aAAa,GAAG,MAAM,MAAM;AACpD,UAAM,aAAa,KAAK,mBAAmB,GAAG,MAAM,MAAM;AAC1D,UAAM,gBAAgB,UAAU;AAChC,UAAM,SAAS,YAAY,UAAU;AAAA,EACvC;AAEA,UAAQ,IAAI,4BAA4B,iBAAiB,EAAE;AAC7D;AAEA,eAAe,OAAsB;AACnC,QAAM,CAAC,SAAS,SAAS,IAAI,QAAQ,KAAK,MAAM,CAAC;AAEjD,MAAI,YAAY,iBAAiB,CAAC,WAAW;AAC3C,YAAQ,MAAM,MAAM,CAAC;AACrB,YAAQ,KAAK,CAAC;AAAA,EAChB;AAEA,QAAM,WAAW,SAAS;AAC5B;AAEA,KAAK,EAAE,MAAM,CAAC,UAAU;AACtB,UAAQ,MAAM,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,CAAC;AACpE,UAAQ,KAAK,CAAC;AAChB,CAAC;","names":[]}
1
+ {"version":3,"sources":["../src/cli.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport { copyFile, mkdir } from 'node:fs/promises';\nimport { dirname, join, resolve } from 'node:path';\n\nconst ASSET_COPY_PLAN = [\n {\n source: ['workers', 'python', 'pyodide-worker.js'],\n target: ['pyodide-worker.js'],\n },\n {\n source: ['workers', 'python', 'generated-python-harness-snippets.js'],\n target: ['generated-python-harness-snippets.js'],\n },\n {\n source: ['workers', 'python', 'runtime-core.js'],\n target: ['pyodide', 'runtime-core.js'],\n },\n {\n source: ['workers', 'javascript', 'javascript-worker.js'],\n target: ['javascript-worker.js'],\n },\n {\n source: ['workers', 'java', 'java-worker.js'],\n target: ['java-worker.js'],\n },\n {\n source: ['workers', 'vendor', 'typescript.js'],\n target: ['vendor', 'typescript.js'],\n },\n {\n source: ['workers', 'vendor', 'java-browser-spike-helper.jar'],\n target: ['vendor', 'java-browser-spike-helper.jar'],\n },\n {\n source: ['workers', 'vendor', 'java-practice-rewriter.jar'],\n target: ['vendor', 'java-practice-rewriter.jar'],\n },\n {\n source: ['workers', 'vendor', 'java-rewrite-bridge.jar'],\n target: ['vendor', 'java-rewrite-bridge.jar'],\n },\n {\n source: ['workers', 'vendor', 'javaparser-core-3.25.10.jar'],\n target: ['vendor', 'javaparser-core-3.25.10.jar'],\n },\n {\n source: ['workers', 'vendor', 'jdk.compiler-17.jar'],\n target: ['vendor', 'jdk.compiler-17.jar'],\n },\n] as const;\n\nfunction usage(): string {\n return [\n 'Usage:',\n ' tracecode-harness sync-assets <target-dir>',\n '',\n 'Example:',\n ' tracecode-harness sync-assets public/workers',\n ].join('\\n');\n}\n\nasync function ensureParentDir(pathname: string): Promise<void> {\n await mkdir(dirname(pathname), { recursive: true });\n}\n\nfunction getPackageRoot(): string {\n const cliEntrypoint = process.argv[1];\n if (!cliEntrypoint) {\n throw new Error('Unable to resolve tracecode-harness CLI entrypoint');\n }\n\n return resolve(dirname(cliEntrypoint), '..');\n}\n\nasync function syncAssets(targetDir: string): Promise<void> {\n const packageRoot = getPackageRoot();\n const resolvedTargetDir = resolve(process.cwd(), targetDir);\n\n for (const asset of ASSET_COPY_PLAN) {\n const sourcePath = join(packageRoot, ...asset.source);\n const targetPath = join(resolvedTargetDir, ...asset.target);\n await ensureParentDir(targetPath);\n await copyFile(sourcePath, targetPath);\n }\n\n console.log(`Synced harness assets to ${resolvedTargetDir}`);\n}\n\nasync function main(): Promise<void> {\n const [command, targetDir] = process.argv.slice(2);\n\n if (command !== 'sync-assets' || !targetDir) {\n console.error(usage());\n process.exit(1);\n }\n\n await syncAssets(targetDir);\n}\n\nmain().catch((error) => {\n console.error(error instanceof Error ? error.message : String(error));\n process.exit(1);\n});\n"],"mappings":";;;AAEA,SAAS,UAAU,aAAa;AAChC,SAAS,SAAS,MAAM,eAAe;AAEvC,IAAM,kBAAkB;AAAA,EACtB;AAAA,IACE,QAAQ,CAAC,WAAW,UAAU,mBAAmB;AAAA,IACjD,QAAQ,CAAC,mBAAmB;AAAA,EAC9B;AAAA,EACA;AAAA,IACE,QAAQ,CAAC,WAAW,UAAU,sCAAsC;AAAA,IACpE,QAAQ,CAAC,sCAAsC;AAAA,EACjD;AAAA,EACA;AAAA,IACE,QAAQ,CAAC,WAAW,UAAU,iBAAiB;AAAA,IAC/C,QAAQ,CAAC,WAAW,iBAAiB;AAAA,EACvC;AAAA,EACA;AAAA,IACE,QAAQ,CAAC,WAAW,cAAc,sBAAsB;AAAA,IACxD,QAAQ,CAAC,sBAAsB;AAAA,EACjC;AAAA,EACA;AAAA,IACE,QAAQ,CAAC,WAAW,QAAQ,gBAAgB;AAAA,IAC5C,QAAQ,CAAC,gBAAgB;AAAA,EAC3B;AAAA,EACA;AAAA,IACE,QAAQ,CAAC,WAAW,UAAU,eAAe;AAAA,IAC7C,QAAQ,CAAC,UAAU,eAAe;AAAA,EACpC;AAAA,EACA;AAAA,IACE,QAAQ,CAAC,WAAW,UAAU,+BAA+B;AAAA,IAC7D,QAAQ,CAAC,UAAU,+BAA+B;AAAA,EACpD;AAAA,EACA;AAAA,IACE,QAAQ,CAAC,WAAW,UAAU,4BAA4B;AAAA,IAC1D,QAAQ,CAAC,UAAU,4BAA4B;AAAA,EACjD;AAAA,EACA;AAAA,IACE,QAAQ,CAAC,WAAW,UAAU,yBAAyB;AAAA,IACvD,QAAQ,CAAC,UAAU,yBAAyB;AAAA,EAC9C;AAAA,EACA;AAAA,IACE,QAAQ,CAAC,WAAW,UAAU,6BAA6B;AAAA,IAC3D,QAAQ,CAAC,UAAU,6BAA6B;AAAA,EAClD;AAAA,EACA;AAAA,IACE,QAAQ,CAAC,WAAW,UAAU,qBAAqB;AAAA,IACnD,QAAQ,CAAC,UAAU,qBAAqB;AAAA,EAC1C;AACF;AAEA,SAAS,QAAgB;AACvB,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,EAAE,KAAK,IAAI;AACb;AAEA,eAAe,gBAAgB,UAAiC;AAC9D,QAAM,MAAM,QAAQ,QAAQ,GAAG,EAAE,WAAW,KAAK,CAAC;AACpD;AAEA,SAAS,iBAAyB;AAChC,QAAM,gBAAgB,QAAQ,KAAK,CAAC;AACpC,MAAI,CAAC,eAAe;AAClB,UAAM,IAAI,MAAM,oDAAoD;AAAA,EACtE;AAEA,SAAO,QAAQ,QAAQ,aAAa,GAAG,IAAI;AAC7C;AAEA,eAAe,WAAW,WAAkC;AAC1D,QAAM,cAAc,eAAe;AACnC,QAAM,oBAAoB,QAAQ,QAAQ,IAAI,GAAG,SAAS;AAE1D,aAAW,SAAS,iBAAiB;AACnC,UAAM,aAAa,KAAK,aAAa,GAAG,MAAM,MAAM;AACpD,UAAM,aAAa,KAAK,mBAAmB,GAAG,MAAM,MAAM;AAC1D,UAAM,gBAAgB,UAAU;AAChC,UAAM,SAAS,YAAY,UAAU;AAAA,EACvC;AAEA,UAAQ,IAAI,4BAA4B,iBAAiB,EAAE;AAC7D;AAEA,eAAe,OAAsB;AACnC,QAAM,CAAC,SAAS,SAAS,IAAI,QAAQ,KAAK,MAAM,CAAC;AAEjD,MAAI,YAAY,iBAAiB,CAAC,WAAW;AAC3C,YAAQ,MAAM,MAAM,CAAC;AACrB,YAAQ,KAAK,CAAC;AAAA,EAChB;AAEA,QAAM,WAAW,SAAS;AAC5B;AAEA,KAAK,EAAE,MAAM,CAAC,UAAU;AACtB,UAAQ,MAAM,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,CAAC;AACpE,UAAQ,KAAK,CAAC;AAChB,CAAC;","names":[]}