@intelligentgraphics/ig.gfx.packager 3.0.21 → 3.0.22

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 (26) hide show
  1. package/build/bin.mjs +1 -1
  2. package/build/{cli-91fabb36.mjs → cli-f6586dd5.mjs} +77 -93
  3. package/build/{cli-91fabb36.mjs.map → cli-f6586dd5.mjs.map} +1 -1
  4. package/build/{dependencies-7711a9db.mjs → dependencies-e2aa1797.mjs} +2 -2
  5. package/build/{dependencies-7711a9db.mjs.map → dependencies-e2aa1797.mjs.map} +1 -1
  6. package/build/{generateIndex-47c082d0.mjs → generateIndex-019c6946.mjs} +3 -3
  7. package/build/{generateIndex-47c082d0.mjs.map → generateIndex-019c6946.mjs.map} +1 -1
  8. package/build/{generateParameterType-10d124a6.mjs → generateParameterType-ae69726a.mjs} +4 -4
  9. package/build/{generateParameterType-10d124a6.mjs.map → generateParameterType-ae69726a.mjs.map} +1 -1
  10. package/build/{index-ca04836f.mjs → index-39c79102.mjs} +16 -18
  11. package/build/index-39c79102.mjs.map +1 -0
  12. package/build/{index-e6ead55c.mjs → index-3d1291e7.mjs} +10 -10
  13. package/build/index-3d1291e7.mjs.map +1 -0
  14. package/build/{postinstall-0ea76778.mjs → postinstall-3328545c.mjs} +3 -3
  15. package/build/{postinstall-0ea76778.mjs.map → postinstall-3328545c.mjs.map} +1 -1
  16. package/build/{publishNpm-aadd7dc2.mjs → publishNpm-532e17a0.mjs} +9 -5
  17. package/build/publishNpm-532e17a0.mjs.map +1 -0
  18. package/build/scripts-7ed8dff6.mjs.map +1 -1
  19. package/build/{versionFile-ad981e93.mjs → versionFile-644c7ff8.mjs} +6 -10
  20. package/build/{versionFile-ad981e93.mjs.map → versionFile-644c7ff8.mjs.map} +1 -1
  21. package/lib/lib.mjs +30 -36
  22. package/package.json +6 -6
  23. package/readme.md +6 -0
  24. package/build/index-ca04836f.mjs.map +0 -1
  25. package/build/index-e6ead55c.mjs.map +0 -1
  26. package/build/publishNpm-aadd7dc2.mjs.map +0 -1
package/lib/lib.mjs CHANGED
@@ -73,7 +73,7 @@ const readPackageCreatorManifest = (location)=>{
73
73
  };
74
74
  const writePackageCreatorManifest = (location, creatorPackage)=>{
75
75
  const packageJsonPath = path.join(location.manifestDir, PACKAGE_FILE);
76
- fs.writeFileSync(packageJsonPath, JSON.stringify(creatorPackage, null, "\t") + "\n");
76
+ fs.writeFileSync(packageJsonPath, JSON.stringify(creatorPackage, null, " ") + "\n");
77
77
  };
78
78
  const getPackageCreatorIndexPath = (location)=>path.join(location.manifestDir, INDEX_FILE);
79
79
  const readPackageCreatorIndex = (location)=>{
@@ -92,7 +92,7 @@ const readPackageCreatorIndex = (location)=>{
92
92
  };
93
93
  const writePackageCreatorIndex = (location, index)=>{
94
94
  const indexPath = getPackageCreatorIndexPath(location);
95
- fs.writeFileSync(indexPath, JSON.stringify(index, null, "\t") + "\n");
95
+ fs.writeFileSync(indexPath, JSON.stringify(index, null, " ") + "\n");
96
96
  };
97
97
  const readPackageNpmManifest = (location)=>{
98
98
  try {
@@ -284,7 +284,7 @@ const PLUGIN_ID = "0feba3a0-b6d1-11e6-9598-0800200c9a66";
284
284
  *
285
285
  * @param {SessionStartParams} params
286
286
  * @returns
287
- */ const startSession = async ({ url , authentication , ...params })=>{
287
+ */ const startSession = async ({ url, authentication, ...params })=>{
288
288
  const payload = {
289
289
  ...params,
290
290
  user: undefined,
@@ -298,7 +298,7 @@ const PLUGIN_ID = "0feba3a0-b6d1-11e6-9598-0800200c9a66";
298
298
  } else if (authentication.type === "license") {
299
299
  payload.license = authentication.license;
300
300
  }
301
- const { data: { session: sessionId , state , response } } = await axios.post(`Session/Start2`, JSON.stringify(payload), {
301
+ const { data: { session: sessionId, state, response } } = await axios.post(`Session/Start2`, JSON.stringify(payload), {
302
302
  baseURL: url
303
303
  });
304
304
  if (state !== "SUCCESS") {
@@ -321,11 +321,11 @@ const closeSession = async (session)=>{
321
321
  baseURL: session.url
322
322
  });
323
323
  };
324
- const uploadPackageFromStream = async (session, { name , version }, stream)=>{
324
+ const uploadPackageFromStream = async (session, { name, version }, stream)=>{
325
325
  await uploadPackageToUrl(session.url, `UploadPackage/${session.sessionId}/${name}_${version}/`, stream);
326
326
  };
327
327
  const uploadPackageToUrl = async (url, path, stream)=>{
328
- const { data , status } = await axios.post(path, stream, {
328
+ const { data, status } = await axios.post(path, stream, {
329
329
  baseURL: url
330
330
  });
331
331
  let objectBody;
@@ -360,7 +360,7 @@ const uploadPackageToUrl = async (url, path, stream)=>{
360
360
  return data;
361
361
  };
362
362
  const getExistingPackages = async (session)=>{
363
- const { data } = await axios.get(`Script/GetInformation/${session.sessionId}`, {
363
+ const { data } = await axios.get(`Script/GetInformation/${session.sessionId}`, {
364
364
  baseURL: session.url,
365
365
  validateStatus: (status)=>status === 404 || status === 200
366
366
  }).catch((err)=>{
@@ -370,7 +370,7 @@ const getExistingPackages = async (session)=>{
370
370
  };
371
371
 
372
372
  const tryReadTsConfig = (location)=>{
373
- const { config } = ts.readConfigFile(path.join(location.scriptsDir, "tsconfig.json"), (path)=>{
373
+ const { config } = ts.readConfigFile(path.join(location.scriptsDir, "tsconfig.json"), (path)=>{
374
374
  try {
375
375
  return fs.readFileSync(path, "utf8");
376
376
  } catch {
@@ -396,6 +396,7 @@ const createTSCBuildParticipant = (location, outputDir)=>(env)=>{
396
396
  }
397
397
  try {
398
398
  env.onBuildStart();
399
+ env.log("Compiling typescript files");
399
400
  const compilerOptions = getCompilerOptions(location, outputDir);
400
401
  const host = ts.createCompilerHost(compilerOptions);
401
402
  host.getCurrentDirectory = ()=>location.scriptsDir;
@@ -449,7 +450,7 @@ const createTSCBuildParticipant = (location, outputDir)=>(env)=>{
449
450
  };
450
451
  };
451
452
  const createTSCWatchBuildParticipant = (location, outputDir)=>{
452
- return ({ onBuildStart , onBuildEnd })=>{
453
+ return ({ onBuildStart, onBuildEnd })=>{
453
454
  let state = {
454
455
  diagnostics: [],
455
456
  js: undefined,
@@ -554,7 +555,7 @@ const createErrorMessage = (diagnostic)=>{
554
555
  if (!diagnostic.file) {
555
556
  return `${ts.flattenDiagnosticMessageText(diagnostic.messageText, "\n")}`;
556
557
  }
557
- const { line , character } = diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start);
558
+ const { line, character } = diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start);
558
559
  const message = ts.flattenDiagnosticMessageText(diagnostic.messageText, "\n");
559
560
  return `${diagnostic.file.fileName} (${line + 1},${character + 1}): ${message}`;
560
561
  };
@@ -1095,8 +1096,7 @@ const createAnimationBuildParticipant = (location, manifest)=>{
1095
1096
  };
1096
1097
  };
1097
1098
  };
1098
- const createAnimationWatchBuildParticipant = (location, manifest)=>{
1099
- return (env)=>{
1099
+ const createAnimationWatchBuildParticipant = (location, manifest)=>(env)=>{
1100
1100
  env.onBuildStart();
1101
1101
  bundleAnimations(location, manifest, env.log).then((result)=>{
1102
1102
  env.onBuildEnd({
@@ -1136,7 +1136,6 @@ const createAnimationWatchBuildParticipant = (location, manifest)=>{
1136
1136
  destroy: ()=>{}
1137
1137
  };
1138
1138
  };
1139
- };
1140
1139
  const bundleAnimations = async (location, manifest, logStep)=>{
1141
1140
  const animations = new Map();
1142
1141
  for (const scriptFilePath of readPackageAnimationList(location)){
@@ -1315,6 +1314,7 @@ const writeBuildResult = async (buildResult, manifest, location, workspace, outp
1315
1314
  });
1316
1315
  }
1317
1316
  if (minimize) {
1317
+ logStep("Minifying the output");
1318
1318
  const minifyResult = await terser.minify(js, {
1319
1319
  ecma: 5,
1320
1320
  sourceMap: {
@@ -1361,14 +1361,14 @@ const ensureTsConfig = async (location)=>{
1361
1361
  try {
1362
1362
  const content = JSON.parse(await fs$1.readFile(tsconfigPath, "utf8"));
1363
1363
  applyTsConfigOption(content);
1364
- await fs$1.writeFile(tsconfigPath, JSON.stringify(content, undefined, "\t"), "utf8");
1364
+ await fs$1.writeFile(tsconfigPath, JSON.stringify(content, undefined, " "), "utf8");
1365
1365
  } catch (err) {
1366
1366
  if (!isErrorENOENT(err)) {
1367
1367
  throw err;
1368
1368
  }
1369
1369
  const content = {};
1370
1370
  applyTsConfigOption(content);
1371
- await fs$1.writeFile(tsconfigPath, JSON.stringify(content, undefined, "\t"), "utf8");
1371
+ await fs$1.writeFile(tsconfigPath, JSON.stringify(content, undefined, " "), "utf8");
1372
1372
  }
1373
1373
  };
1374
1374
  const applyTsConfigOption = (data)=>{
@@ -1507,13 +1507,9 @@ const getWorkspaceBannerText = (manifest)=>{
1507
1507
 
1508
1508
  // Stolen from ig.tools.core
1509
1509
  class PackageVersion {
1510
- static #_ = (()=>{
1511
- // https://regex101.com/r/90PEY9/1
1512
- this.fullTextMatcher = /(\d+)(\.(\d+)(\.(\d+)(\.(\d+))?(-([^\.]+)\.(\d+))?)?)?/;
1513
- })();
1514
- static #_1 = (()=>{
1515
- this.lineMatcher = /^(\d+)(\.(\d+)(\.(\d+)(\.(\d+))?(-([^\.]+)\.(\d+))?)?)?$/;
1516
- })();
1510
+ static #_ = // https://regex101.com/r/90PEY9/1
1511
+ this.fullTextMatcher = /(\d+)(\.(\d+)(\.(\d+)(\.(\d+))?(-([^\.]+)\.(\d+))?)?)?/;
1512
+ static #_2 = this.lineMatcher = /^(\d+)(\.(\d+)(\.(\d+)(\.(\d+))?(-([^\.]+)\.(\d+))?)?)?$/;
1517
1513
  static extractFromText(input, description) {
1518
1514
  if (input === undefined) {
1519
1515
  throw new Error(`Can not parse version from undefined`);
@@ -1633,7 +1629,7 @@ class PackageVersion {
1633
1629
  this.preRelease = undefined;
1634
1630
  this.buildNumber = 100;
1635
1631
  }
1636
- toVersionString({ buildNumber } = {}) {
1632
+ toVersionString({ buildNumber } = {}) {
1637
1633
  let version = [
1638
1634
  this.major,
1639
1635
  this.minor,
@@ -1826,7 +1822,7 @@ const buildArchiveFromPublishedPackage = (location, manifest, creatorPackage)=>{
1826
1822
  if (fs.existsSync(source)) {
1827
1823
  const images = fs.readdirSync(source);
1828
1824
  for (const file of images){
1829
- const { ext } = path.parse(file);
1825
+ const { ext } = path.parse(file);
1830
1826
  switch(ext){
1831
1827
  case ".png":
1832
1828
  case ".jpeg":
@@ -1850,10 +1846,9 @@ const notRuntimeScripts = [
1850
1846
  "Context",
1851
1847
  "Evaluator"
1852
1848
  ];
1853
- const buildArchiveFromPackage = async (packageLocation, data, binDir)=>{
1854
- const { domain } = parseCreatorPackageName(data);
1849
+ const buildArchiveFromPackage = async (packageLocation, data, binDir, minified = true)=>{
1850
+ const { domain } = parseCreatorPackageName(data);
1855
1851
  const logStep = (step)=>logPackageMessage(data.Package, step);
1856
- const libFilePath = path.join(binDir, `${data.Package}.min.js`);
1857
1852
  const scriptDirectories = [
1858
1853
  packageLocation.path,
1859
1854
  packageLocation.scriptsDir
@@ -1880,6 +1875,7 @@ const buildArchiveFromPackage = async (packageLocation, data, binDir)=>{
1880
1875
  }
1881
1876
  let libFile;
1882
1877
  try {
1878
+ const libFilePath = minified ? path.join(binDir, `${data.Package}.min.js`) : path.join(binDir, `${data.Package}.js`);
1883
1879
  libFile = fs.readFileSync(libFilePath, {
1884
1880
  encoding: "utf8"
1885
1881
  });
@@ -1898,10 +1894,7 @@ const buildArchiveFromPackage = async (packageLocation, data, binDir)=>{
1898
1894
  library = `/* This file is part of the ${domain} Data Packages.
1899
1895
  * Copyright (C) ${date.getFullYear()} intelligentgraphics. All Rights Reserved. */`;
1900
1896
  }
1901
- const minifyResult = await terser.minify(library, {
1902
- ecma: 5
1903
- });
1904
- archive.file(`${data.Package}.js`, minifyResult.code);
1897
+ archive.file(`${data.Package}.js`, library);
1905
1898
  archive.file(PACKAGE_FILE, JSON.stringify(data, null, 2));
1906
1899
  const creatorIndex = readPackageCreatorIndex(packageLocation);
1907
1900
  if (creatorIndex !== undefined) {
@@ -1910,7 +1903,7 @@ const buildArchiveFromPackage = async (packageLocation, data, binDir)=>{
1910
1903
  for (const directory of scriptDirectories){
1911
1904
  try {
1912
1905
  for (const file of fs.readdirSync(directory)){
1913
- const { ext } = path.parse(file);
1906
+ const { ext } = path.parse(file);
1914
1907
  switch(ext){
1915
1908
  case ".png":
1916
1909
  case ".jpeg":
@@ -1932,10 +1925,10 @@ const execAsync = promisify(exec);
1932
1925
  const releaseFolder = async (options)=>{
1933
1926
  const workspace = options.workspace;
1934
1927
  const location = options.directory;
1935
- const { write: writeVersionFile , reset: resetVersionFile } = getVersionFileHandler(location);
1928
+ const { write: writeVersionFile, reset: resetVersionFile } = getVersionFileHandler(location);
1936
1929
  const packageDescription = readPackageCreatorManifest(location);
1937
1930
  const fullPackageName = packageDescription.Package;
1938
- const { domain , subdomain } = parseCreatorPackageName(packageDescription);
1931
+ const { domain, subdomain } = parseCreatorPackageName(packageDescription);
1939
1932
  const publishDomain = options.domain ?? domain;
1940
1933
  const publishSubdomain = options.subdomain ?? subdomain;
1941
1934
  const sharedPackageJson = readWorkspaceNpmManifest(workspace);
@@ -2043,7 +2036,8 @@ const releaseFolder = async (options)=>{
2043
2036
  }
2044
2037
  }
2045
2038
  }
2046
- const archive = await buildArchiveFromPackage(location, packageDescription, binDir);
2039
+ logPackageMessage(packageDescription.Package, `Creating zip file`);
2040
+ const archive = await buildArchiveFromPackage(location, packageDescription, binDir, options.minimize);
2047
2041
  try {
2048
2042
  const zipOutputStream = createWriteStream(zipFilePath);
2049
2043
  await pipeline(archive.generateNodeStream(), zipOutputStream);
@@ -2249,7 +2243,7 @@ const createSessionManager = async (params)=>{
2249
2243
  * Extracts and returns script array for _Index.json from a src folder
2250
2244
  *
2251
2245
  * @param folderPath path to a src folder
2252
- */ function generateIndex({ location , ignore =[] , strictOptional =false }) {
2246
+ */ function generateIndex({ location, ignore = [], strictOptional = false }) {
2253
2247
  const files = getPackageTypescriptFiles(location);
2254
2248
  const filtered = files.filter((path)=>{
2255
2249
  return !ignore.some((suffix)=>path.endsWith(suffix));
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@intelligentgraphics/ig.gfx.packager",
3
- "version": "3.0.21",
4
- "description": "IG.GFX.Packager 3.0.21 (3.0.21.100)",
3
+ "version": "3.0.22",
4
+ "description": "IG.GFX.Packager 3.0.22 (3.0.22.100)",
5
5
  "author": "Michael Beier <mb@intelligentgraphics.biz>",
6
6
  "main": "lib/lib.mjs",
7
7
  "types": "lib/lib.d.ts",
@@ -44,7 +44,7 @@
44
44
  "source-map-support": "^0.5.21",
45
45
  "terser": "^5.16.1",
46
46
  "typedoc": "^0.24.8",
47
- "typescript": "^5.1.6",
47
+ "typescript": "^5.4.2",
48
48
  "update-notifier": "^6.0.2",
49
49
  "v8-compile-cache": "^2.3.0",
50
50
  "write-pkg": "^5.1.0",
@@ -55,11 +55,11 @@
55
55
  "@rollup/plugin-commonjs": "^24.0.0",
56
56
  "@rollup/plugin-json": "^6.0.0",
57
57
  "@rollup/plugin-node-resolve": "^15.0.1",
58
- "@rollup/plugin-swc": "^0.1.0",
59
- "@swc/core": "^1.3.56",
58
+ "@rollup/plugin-swc": "^0.3.0",
59
+ "@swc/core": "^1.4.6",
60
60
  "@types/glob": "^8.0.1",
61
61
  "@types/inquirer": "^9.0.3",
62
- "@types/node": "^18.15.3",
62
+ "@types/node": "^20.11.25",
63
63
  "@types/update-notifier": "^6.0.1",
64
64
  "@types/yargs": "^17.0.2",
65
65
  "rollup": "^3.10.0",
package/readme.md CHANGED
@@ -470,6 +470,12 @@ Afterwards you may need to reload your editor in order for the installed files t
470
470
 
471
471
  ## History
472
472
 
473
+ **IG.GFX.Packager 3.0.22**
474
+
475
+ - add some more logs
476
+ - prevent double minify
477
+ - fully support unminified js for release
478
+
473
479
  **IG.GFX.Packager 3.0.21**
474
480
 
475
481
  - write source maps
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-ca04836f.mjs","sources":["../src/commands/publish/zip.ts","../src/commands/publish/index.ts"],"sourcesContent":["import JSZip from \"jszip\";\nimport * as path from \"path\";\nimport * as fs from \"fs\";\nimport * as terser from \"terser\";\n\nimport { isErrorENOENT } from \"../../lib/error\";\nimport { logPackageMessage } from \"../../lib/log\";\nimport {\n\tCreatorPackage,\n\treadPackageCreatorManifest,\n\twritePackageCreatorManifest,\n\treadPackageCreatorIndex,\n\tparseCreatorPackageName,\n\tPackageLocation,\n\tPackageNpmManifest,\n\tINDEX_FILE,\n\tPACKAGE_FILE,\n} from \"../../lib/package\";\nimport {\n\tPublishedPackageLocation,\n\treadPublishedPackageCreatorIndex,\n} from \"../../lib/publishedPackage\";\n\nexport const buildArchiveFromPublishedPackage = (\n\tlocation: PublishedPackageLocation,\n\tmanifest: PackageNpmManifest,\n\tcreatorPackage: CreatorPackage,\n) => {\n\tconst archive = new JSZip();\n\n\tarchive.file(PACKAGE_FILE, JSON.stringify(creatorPackage, null, 2));\n\n\tconst index = readPublishedPackageCreatorIndex(location);\n\n\tif (index !== undefined) {\n\t\tarchive.file(INDEX_FILE, JSON.stringify(index, null, 2));\n\t}\n\n\tarchive.file(\n\t\tmanifest.main,\n\t\tfs.createReadStream(path.join(location.path, manifest.main)),\n\t);\n\n\tif (creatorPackage.Package === \"IG.GFX.Standard\") {\n\t\tconst source = path.join(location.path, \"Images\");\n\n\t\tif (fs.existsSync(source)) {\n\t\t\tconst images = fs.readdirSync(source);\n\n\t\t\tfor (const file of images) {\n\t\t\t\tconst { ext } = path.parse(file);\n\n\t\t\t\tswitch (ext) {\n\t\t\t\t\tcase \".png\":\n\t\t\t\t\tcase \".jpeg\":\n\t\t\t\t\tcase \".jpg\":\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tarchive.file(\n\t\t\t\t\tfile,\n\t\t\t\t\tfs.createReadStream(path.join(source, file)),\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn archive;\n};\n\nconst runtimeScripts: CreatorPackage[\"Type\"][] = [\n\t\"Interactor\",\n\t\"Core\",\n\t\"Mixed\",\n];\n\nconst notRuntimeScripts: CreatorPackage[\"Type\"][] = [\"Context\", \"Evaluator\"];\n\nexport const buildArchiveFromPackage = async (\n\tpackageLocation: PackageLocation,\n\tdata: CreatorPackage,\n\tbinDir: string,\n) => {\n\tconst { domain } = parseCreatorPackageName(data);\n\n\tconst logStep = (step: string) => logPackageMessage(data.Package, step);\n\n\tconst libFilePath = path.join(binDir, `${data.Package}.min.js`);\n\n\tconst scriptDirectories: string[] = [\n\t\tpackageLocation.path,\n\t\tpackageLocation.scriptsDir,\n\t];\n\n\tif (data.Package === \"IG.GFX.Standard\") {\n\t\tlogStep(`Including Images folder`);\n\t\tscriptDirectories.push(path.join(packageLocation.path, \"Images\"));\n\t}\n\n\tconst manifest = readPackageCreatorManifest(packageLocation);\n\n\tif (manifest !== undefined) {\n\t\tif (manifest.RunTime && notRuntimeScripts.includes(manifest.Type)) {\n\t\t\tlogStep(\"Setting script RunTime to false because of script type\");\n\t\t\twritePackageCreatorManifest(packageLocation, {\n\t\t\t\t...manifest,\n\t\t\t\tRunTime: false,\n\t\t\t});\n\t\t} else if (\n\t\t\t!manifest.RunTime &&\n\t\t\truntimeScripts.includes(manifest.Type)\n\t\t) {\n\t\t\tlogStep(\"Setting script RunTime to true because of script type\");\n\t\t\twritePackageCreatorManifest(packageLocation, {\n\t\t\t\t...manifest,\n\t\t\t\tRunTime: true,\n\t\t\t});\n\t\t}\n\t}\n\n\tlet libFile: string | undefined;\n\n\ttry {\n\t\tlibFile = fs.readFileSync(libFilePath, { encoding: \"utf8\" });\n\t} catch (err) {\n\t\tif (!isErrorENOENT(err)) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\n\tconst archive = new JSZip();\n\n\tlet library: string = \"\";\n\n\tif (libFile) {\n\t\tlibrary = libFile;\n\t}\n\n\tif (!library) {\n\t\tconst date = new Date(Date.now());\n\t\tlibrary = `/* This file is part of the ${domain} Data Packages.\n\t\t* Copyright (C) ${date.getFullYear()} intelligentgraphics. All Rights Reserved. */`;\n\t}\n\n\tconst minifyResult = await terser.minify(library, { ecma: 5 });\n\n\tarchive.file(`${data.Package}.js`, minifyResult.code!);\n\tarchive.file(PACKAGE_FILE, JSON.stringify(data, null, 2));\n\n\tconst creatorIndex = readPackageCreatorIndex(packageLocation);\n\n\tif (creatorIndex !== undefined) {\n\t\tarchive.file(INDEX_FILE, JSON.stringify(creatorIndex, null, 2));\n\t}\n\n\tfor (const directory of scriptDirectories) {\n\t\ttry {\n\t\t\tfor (const file of fs.readdirSync(directory)) {\n\t\t\t\tconst { ext } = path.parse(file);\n\n\t\t\t\tswitch (ext) {\n\t\t\t\t\tcase \".png\":\n\t\t\t\t\tcase \".jpeg\":\n\t\t\t\t\tcase \".jpg\":\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tarchive.file(\n\t\t\t\t\tfile,\n\t\t\t\t\tfs.createReadStream(path.join(directory, file)),\n\t\t\t\t);\n\t\t\t}\n\t\t} catch (err) {\n\t\t\tconsole.error(`Script directory \"${directory}\" does not exist`);\n\t\t}\n\t}\n\n\treturn archive;\n};\n","import * as path from \"path\";\nimport * as fs from \"fs/promises\";\nimport { createReadStream, createWriteStream } from \"fs\";\nimport { pipeline } from \"stream/promises\";\nimport { exec } from \"child_process\";\nimport { promisify } from \"util\";\n\nimport {\n\tAssetService,\n\tisErrorEACCES,\n\tisErrorEPERM,\n\twritePackageCreatorManifest,\n} from \"@intelligentgraphics/ig.gfx.tools.core\";\n\nimport { logPackageMessage } from \"../../lib/log\";\nimport {\n\tCreatorPackage,\n\tgetPackageReleasesDirectory,\n\tPackageLocation,\n\tparseCreatorPackageName,\n\treadPackageAnimationList,\n\treadPackageCreatorManifest,\n} from \"../../lib/package\";\nimport {\n\tgetWorkspaceOutputPath,\n\treadWorkspaceNpmManifest,\n\tWorkspaceLocation,\n} from \"../../lib/workspace\";\nimport { getVersionInformationFromGit } from \"../../lib/git\";\nimport { getWorkspaceBannerText } from \"../../lib/banner\";\nimport {\n\tparseVersionFromNumericVersion,\n\tparseVersionFromString,\n} from \"../../lib/parseVersion\";\nimport { getVersionFileHandler } from \"../../lib/versionFile\";\nimport { isErrorENOENT } from \"../../lib/error\";\nimport { determineWorkspaceIGLibraries } from \"../../lib/dependencies\";\nimport {\n\treadPublishedPackageCreatorManifest,\n\treadPublishedPackageNpmManifest,\n} from \"../../lib/publishedPackage\";\nimport { Prompter, PrompterOption } from \"../../lib/prompter\";\nimport { PackageVersion } from \"../../lib/packageVersion\";\n\nimport { BuildFoldersOptions, buildFolders } from \"../build\";\nimport {\n\tbuildArchiveFromPackage,\n\tbuildArchiveFromPublishedPackage,\n} from \"./zip\";\n\nexport interface ReleaseFolderOptions\n\textends Omit<\n\t\tBuildFoldersOptions,\n\t\t\"skipPackagesWithoutTsFiles\" | \"banner\" | \"packages\"\n\t> {\n\tdirectory: PackageLocation;\n\tnoUpload: boolean;\n\tnewVersion: string;\n\tdomain?: string;\n\tsubdomain?: string;\n\taddress?: string;\n\tservice: string;\n\tauthentication?: AssetService.Authentication;\n\tpushOnly: boolean;\n\tbanner?: boolean;\n\tprompter: Prompter;\n\tskipDependencies?: boolean;\n}\n\nconst execAsync = promisify(exec);\n\nexport const releaseFolder = async (options: ReleaseFolderOptions) => {\n\tconst workspace = options.workspace;\n\tconst location = options.directory;\n\n\tconst { write: writeVersionFile, reset: resetVersionFile } =\n\t\tgetVersionFileHandler(location);\n\n\tconst packageDescription = readPackageCreatorManifest(location);\n\tconst fullPackageName = packageDescription.Package;\n\tconst { domain, subdomain } = parseCreatorPackageName(packageDescription);\n\n\tconst publishDomain = options.domain ?? domain;\n\tconst publishSubdomain = options.subdomain ?? subdomain;\n\n\tconst sharedPackageJson = readWorkspaceNpmManifest(workspace);\n\n\tlet newVersion: PackageVersion;\n\ttry {\n\t\tnewVersion = parseVersionFromString(options.newVersion);\n\t} catch (err) {\n\t\tthrow new Error(`Please enter a version in this format 1.0.0.100`);\n\t}\n\n\tpackageDescription.Version = newVersion.toVersionString({\n\t\tbuildNumber: true,\n\t});\n\twritePackageCreatorManifest(location, packageDescription);\n\n\tif (newVersion.buildNumber < 100) {\n\t\tnewVersion.preRelease = {\n\t\t\ttype: \"beta\",\n\t\t\tversion: newVersion.buildNumber,\n\t\t};\n\t} else if (newVersion.buildNumber > 100) {\n\t\tnewVersion.preRelease = {\n\t\t\ttype: \"patch\",\n\t\t\tversion: newVersion.buildNumber - 100,\n\t\t};\n\t}\n\n\tif (sharedPackageJson !== undefined) {\n\t\tlogPackageMessage(\n\t\t\tpackageDescription.Package,\n\t\t\t`Running npm install to make sure all dependencies are up to date`,\n\t\t);\n\t\tawait execAsync(`npm install`, {\n\t\t\tencoding: \"utf-8\",\n\t\t\tcwd: workspace.path,\n\t\t});\n\t}\n\n\tconst binDir = options.outDir ?? getWorkspaceOutputPath(workspace);\n\tawait fs.mkdir(binDir, { recursive: true });\n\n\tlet assetServerPackageDetails: AssetService.UploadPackageDetails;\n\n\tlet packageNameWithVersion: string;\n\n\t{\n\t\tconst versionWithoutPrelease = newVersion.clone();\n\t\tversionWithoutPrelease.preRelease = undefined;\n\t\tconst newVersionString = versionWithoutPrelease.toVersionString({\n\t\t\tbuildNumber: true,\n\t\t});\n\t\tpackageNameWithVersion = `${packageDescription.Package}_${newVersionString}`;\n\n\t\tassetServerPackageDetails = {\n\t\t\tname: packageDescription.Package,\n\t\t\tversion: newVersionString,\n\t\t};\n\t}\n\n\tlet zipFilePath = path.join(binDir, packageNameWithVersion + \".zip\");\n\tinterface Uploadable {\n\t\tgetStream: () => NodeJS.ReadableStream;\n\t}\n\n\tlet uploadable: Uploadable = {\n\t\tgetStream: () => createReadStream(zipFilePath),\n\t};\n\n\ttry {\n\t\tif (options.pushOnly) {\n\t\t\tconst zipFileExists = await fs.stat(zipFilePath).catch((err) => {\n\t\t\t\tif (isErrorENOENT(err)) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\treturn Promise.reject(err);\n\t\t\t});\n\n\t\t\tif (zipFileExists) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Expected a zip file to exist at path ${zipFilePath} since pushOnly is specified`,\n\t\t\t\t);\n\t\t\t}\n\t\t} else {\n\t\t\tconst gitVersionInformation = await getVersionInformationFromGit(\n\t\t\t\tworkspace,\n\t\t\t\tlocation,\n\t\t\t);\n\n\t\t\twriteVersionFile(fullPackageName, newVersion);\n\n\t\t\tconst bannerText =\n\t\t\t\tsharedPackageJson !== undefined\n\t\t\t\t\t? getWorkspaceBannerText(sharedPackageJson)\n\t\t\t\t\t: undefined;\n\n\t\t\tawait buildFolders({\n\t\t\t\t...options,\n\t\t\t\tpackages: [location],\n\t\t\t\tbanner: options.banner\n\t\t\t\t\t? {\n\t\t\t\t\t\t\ttext: bannerText,\n\t\t\t\t\t\t\tcommit: gitVersionInformation.commit,\n\t\t\t\t\t\t\tcommitDirty: gitVersionInformation.dirty,\n\t\t\t\t\t\t\tversion: newVersion.toVersionString({\n\t\t\t\t\t\t\t\tbuildNumber: true,\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\tdate: new Date(Date.now()),\n\t\t\t\t\t\t\t// gitVersionInformation.commitDate\n\t\t\t\t\t\t\t// \t? new Date(gitVersionInformation.commitDate)\n\t\t\t\t\t\t\t// \t: new Date(Date.now()),\n\t\t\t\t\t }\n\t\t\t\t\t: undefined,\n\t\t\t});\n\n\t\t\tnewVersion.preRelease = undefined;\n\n\t\t\ttry {\n\t\t\t\tawait fs.rm(zipFilePath);\n\t\t\t} catch (err) {\n\t\t\t\tif (!isErrorENOENT(err)) {\n\t\t\t\t\tthrow err;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (readPackageAnimationList(location).length > 0) {\n\t\t\t\tconst workspaceManifest = readWorkspaceNpmManifest(workspace);\n\n\t\t\t\tif (\n\t\t\t\t\t!workspaceManifest.dependencies?.[\n\t\t\t\t\t\t\"@intelligentgraphics/3d.ig.gfx.standard\"\n\t\t\t\t\t]\n\t\t\t\t) {\n\t\t\t\t\tconst install = await options.prompter.confirm(\n\t\t\t\t\t\t`The IG.GFX.Standard package should be added as a dependency to provide the 'AnimationInteractor' used to display animations. Do you wish to add it now?`,\n\t\t\t\t\t);\n\n\t\t\t\t\tif (install) {\n\t\t\t\t\t\tawait execAsync(\n\t\t\t\t\t\t\t`npm install @intelligentgraphics/3d.ig.gfx.standard`,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tencoding: \"utf-8\",\n\t\t\t\t\t\t\t\tcwd: workspace.path,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tawait execAsync(`npm run postinstall`, {\n\t\t\t\t\t\t\tcwd: workspace.path,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst archive = await buildArchiveFromPackage(\n\t\t\t\tlocation,\n\t\t\t\tpackageDescription,\n\t\t\t\tbinDir,\n\t\t\t);\n\n\t\t\ttry {\n\t\t\t\tconst zipOutputStream = createWriteStream(zipFilePath);\n\t\t\t\tawait pipeline(archive.generateNodeStream(), zipOutputStream);\n\t\t\t} catch (err) {\n\t\t\t\tif (isErrorEACCES(err) || isErrorEPERM(err)) {\n\t\t\t\t\tlogPackageMessage(\n\t\t\t\t\t\tpackageDescription.Package,\n\t\t\t\t\t\t`Could not create zip file in the bin directory because of a permissions error. Only using it in-memory`,\n\t\t\t\t\t);\n\t\t\t\t\tuploadable = {\n\t\t\t\t\t\tgetStream: () => archive.generateNodeStream(),\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\tthrow err;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (!options.noUpload) {\n\t\t\tif (!options.authentication) {\n\t\t\t\tthrow new Error(`Expected authentication to be available`);\n\t\t\t}\n\n\t\t\tlogPackageMessage(\n\t\t\t\tpackageDescription.Package,\n\t\t\t\t`Opening connection to IG.Asset.Server`,\n\t\t\t);\n\n\t\t\tconst sessionManager = await createSessionManager({\n\t\t\t\turl: options.service,\n\t\t\t\taddress: options.address,\n\t\t\t\tdomain: publishDomain,\n\t\t\t\tsubDomain: publishSubdomain,\n\t\t\t\tauthentication: options.authentication,\n\t\t\t});\n\n\t\t\ttry {\n\t\t\t\tif (!options.skipDependencies) {\n\t\t\t\t\tawait ensureRequiredVersions(\n\t\t\t\t\t\tworkspace,\n\t\t\t\t\t\tpackageDescription,\n\t\t\t\t\t\tsessionManager,\n\t\t\t\t\t\toptions.prompter,\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tlogPackageMessage(\n\t\t\t\t\tpackageDescription.Package,\n\t\t\t\t\t`Uploading package to ${publishDomain}.${publishSubdomain}`,\n\t\t\t\t);\n\n\t\t\t\tawait AssetService.uploadPackageFromStream(\n\t\t\t\t\tsessionManager.getTargetSession(),\n\t\t\t\t\tassetServerPackageDetails,\n\t\t\t\t\tuploadable.getStream(),\n\t\t\t\t);\n\t\t\t} finally {\n\t\t\t\tawait sessionManager.destroy().catch((err) => {\n\t\t\t\t\tlogPackageMessage(\n\t\t\t\t\t\tpackageDescription.Package,\n\t\t\t\t\t\t`Failed to close IG.Asset.Server session(s): ${err}`,\n\t\t\t\t\t);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t} catch (err) {\n\t\tresetVersionFile();\n\t\tthrow err;\n\t}\n\n\tif (newVersion.buildNumber >= 100 && !options.pushOnly) {\n\t\tlogPackageMessage(fullPackageName, \"Copying zip to releases folder\");\n\n\t\tconst zipFileName = `${packageNameWithVersion}.zip`;\n\t\tconst releasesPath = getPackageReleasesDirectory(location);\n\n\t\tawait fs.mkdir(releasesPath, { recursive: true });\n\t\tawait pipeline(\n\t\t\tuploadable.getStream(),\n\t\t\tcreateWriteStream(path.join(releasesPath, zipFileName)),\n\t\t);\n\t}\n};\n\nconst ensureRequiredVersions = async (\n\tworkspaceLocation: WorkspaceLocation,\n\tcreatorPackage: CreatorPackage,\n\tsessionManager: SessionManager,\n\tprompter: Prompter,\n) => {\n\tinterface UploadedPackage\n\t\textends Omit<AssetService.ExistingPackage, \"version\"> {\n\t\tversion: PackageVersion;\n\t}\n\n\tconst libraries = determineWorkspaceIGLibraries(workspaceLocation);\n\n\t// If there are no libraries, we don't need to check for required versions\n\tif (libraries.length === 0) {\n\t\treturn true;\n\t}\n\n\tconst targetSession = sessionManager.getTargetSession();\n\n\tconst rawUploadedPackages = await AssetService.getExistingPackages(\n\t\ttargetSession,\n\t);\n\n\tconst uploadedPackages = rawUploadedPackages.map(\n\t\t(entry): UploadedPackage => {\n\t\t\tlet version: PackageVersion;\n\n\t\t\ttry {\n\t\t\t\tversion = parseVersionFromNumericVersion(entry.numericVersion);\n\t\t\t} catch (err) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Encountered invalid format for version ${entry.numericVersion}`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (version.buildNumber < 100) {\n\t\t\t\tversion.preRelease = {\n\t\t\t\t\ttype: \"beta\",\n\t\t\t\t\tversion: version.buildNumber,\n\t\t\t\t};\n\t\t\t} else if (version.buildNumber > 100) {\n\t\t\t\tversion.preRelease = {\n\t\t\t\t\ttype: \"patch\",\n\t\t\t\t\tversion: version.buildNumber - 100,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...entry,\n\t\t\t\tversion,\n\t\t\t};\n\t\t},\n\t);\n\n\tfor (const libraryLocation of libraries) {\n\t\tconst libraryManifest =\n\t\t\treadPublishedPackageNpmManifest(libraryLocation);\n\t\tconst libraryCreatorPackage =\n\t\t\treadPublishedPackageCreatorManifest(libraryLocation);\n\n\t\tif (\n\t\t\tlibraryCreatorPackage === undefined ||\n\t\t\tlibraryManifest.main === undefined ||\n\t\t\tlibraryCreatorPackage.Package === creatorPackage.Package\n\t\t) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst libraryVersion = PackageVersion.extractFromLine(\n\t\t\tlibraryManifest.version,\n\t\t);\n\n\t\tif (libraryVersion.preRelease) {\n\t\t\tlibraryVersion.buildNumber = libraryVersion.preRelease.version;\n\t\t\tlibraryVersion.preRelease = undefined;\n\t\t} else {\n\t\t\tlibraryVersion.buildNumber = 100;\n\t\t}\n\n\t\tlet uploadedPackageInBasics: UploadedPackage | undefined;\n\t\tlet uploadedPackageInTarget: UploadedPackage | undefined;\n\n\t\tfor (const uploadedPackage of uploadedPackages) {\n\t\t\tif (uploadedPackage.scope === libraryCreatorPackage.Package) {\n\t\t\t\tif (uploadedPackage.support) {\n\t\t\t\t\tuploadedPackageInBasics = uploadedPackage;\n\t\t\t\t} else {\n\t\t\t\t\tuploadedPackageInTarget = uploadedPackage;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst validInBasics =\n\t\t\tuploadedPackageInBasics !== undefined &&\n\t\t\t!uploadedPackageInBasics.version.isLesserThan(libraryVersion);\n\t\tconst validInTarget =\n\t\t\tuploadedPackageInTarget !== undefined &&\n\t\t\t!uploadedPackageInTarget.version.isLesserThan(libraryVersion);\n\n\t\tif (validInBasics || validInTarget) {\n\t\t\tif (\n\t\t\t\ttargetSession.subDomain !== \"Basics\" &&\n\t\t\t\tuploadedPackageInBasics !== undefined &&\n\t\t\t\tuploadedPackageInTarget !== undefined\n\t\t\t) {\n\t\t\t\tlogPackageMessage(\n\t\t\t\t\tcreatorPackage.Package,\n\t\t\t\t\t`Package ${libraryCreatorPackage.Package} is uploaded both for Basics and ${targetSession.subDomain}. The package within ${targetSession.subDomain} will be used.`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst possibleTargets: PrompterOption[] = [];\n\n\t\tif (uploadedPackageInBasics) {\n\t\t\tconst version = uploadedPackageInBasics.version.toVersionString({\n\t\t\t\tbuildNumber: true,\n\t\t\t});\n\n\t\t\tpossibleTargets.push({\n\t\t\t\tvalue: \"Basics\",\n\t\t\t\tname: `Basics (Current: ${version})`,\n\t\t\t});\n\t\t} else {\n\t\t\tpossibleTargets.push({\n\t\t\t\tvalue: \"Basics\",\n\t\t\t\tname: \"Basics (Current: None)\",\n\t\t\t});\n\t\t}\n\n\t\tif (targetSession.subDomain !== \"Basics\") {\n\t\t\tif (uploadedPackageInTarget) {\n\t\t\t\tconst version = uploadedPackageInTarget.version.toVersionString(\n\t\t\t\t\t{\n\t\t\t\t\t\tbuildNumber: true,\n\t\t\t\t\t},\n\t\t\t\t);\n\n\t\t\t\tpossibleTargets.push({\n\t\t\t\t\tvalue: targetSession.subDomain,\n\t\t\t\t\tname: `${targetSession.subDomain} (Current: ${version})`,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tpossibleTargets.push({\n\t\t\t\t\tvalue: targetSession.subDomain,\n\t\t\t\t\tname: `${targetSession.subDomain} (Current: None)`,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tconst libraryVersionString = libraryVersion.toVersionString({\n\t\t\tbuildNumber: true,\n\t\t});\n\n\t\tconst uploadTargetScope = await prompter.ask({\n\t\t\tmessage: `Version ${libraryVersionString} of dependency ${libraryCreatorPackage.Package} is required but not available. Please select a subdomain to upload the correct dependency version to`,\n\t\t\toptions: [\n\t\t\t\t...possibleTargets,\n\t\t\t\t{ name: \"Skip upload\", value: \"Skip\" },\n\t\t\t],\n\t\t\tdefault: possibleTargets[0].value,\n\t\t});\n\n\t\tif (uploadTargetScope === \"Skip\") {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst archive = buildArchiveFromPublishedPackage(\n\t\t\tlibraryLocation,\n\t\t\tlibraryManifest,\n\t\t\tlibraryCreatorPackage,\n\t\t);\n\n\t\tconst newVersionString = libraryVersion.toVersionString({\n\t\t\tbuildNumber: true,\n\t\t});\n\n\t\tconst session =\n\t\t\tuploadTargetScope === \"Basics\"\n\t\t\t\t? await sessionManager.getBasicsSession()\n\t\t\t\t: targetSession;\n\n\t\tlogPackageMessage(\n\t\t\tcreatorPackage.Package,\n\t\t\t`Uploading package ${libraryCreatorPackage.Package} with version ${newVersionString} to ${session.domain}.${session.subDomain}`,\n\t\t);\n\n\t\tawait AssetService.uploadPackageFromStream(\n\t\t\tsession,\n\t\t\t{\n\t\t\t\tname: libraryCreatorPackage.Package,\n\t\t\t\tversion: newVersionString,\n\t\t\t},\n\t\t\tarchive.generateNodeStream(),\n\t\t);\n\t}\n};\n\ninterface SessionManager {\n\tgetBasicsSession: () => Promise<AssetService.Session>;\n\tgetTargetSession: () => AssetService.Session;\n\tdestroy: () => Promise<void>;\n}\n\nconst createSessionManager = async (\n\tparams: AssetService.SessionStartParams,\n): Promise<SessionManager> => {\n\tconst targetSession = await AssetService.startSession(params);\n\tlet basicsSession: AssetService.Session | undefined;\n\n\treturn {\n\t\tgetBasicsSession: async () => {\n\t\t\tif (targetSession.subDomain === \"Basics\") {\n\t\t\t\treturn targetSession;\n\t\t\t}\n\n\t\t\tif (basicsSession === undefined) {\n\t\t\t\tbasicsSession = await AssetService.startSession({\n\t\t\t\t\t...params,\n\t\t\t\t\tsubDomain: \"Basics\",\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn basicsSession;\n\t\t},\n\n\t\tgetTargetSession: () => targetSession,\n\n\t\tdestroy: async () => {\n\t\t\tawait AssetService.closeSession(targetSession);\n\n\t\t\tif (basicsSession !== undefined) {\n\t\t\t\tawait AssetService.closeSession(basicsSession);\n\t\t\t}\n\t\t},\n\t};\n};\n"],"names":["buildArchiveFromPublishedPackage","location","manifest","creatorPackage","archive","JSZip","file","PACKAGE_FILE","JSON","stringify","index","readPublishedPackageCreatorIndex","undefined","INDEX_FILE","main","fs","createReadStream","path","join","Package","source","existsSync","images","readdirSync","ext","parse","runtimeScripts","notRuntimeScripts","buildArchiveFromPackage","packageLocation","data","binDir","domain","parseCreatorPackageName","logStep","step","logPackageMessage","libFilePath","scriptDirectories","scriptsDir","push","readPackageCreatorManifest","RunTime","includes","Type","writePackageCreatorManifest","libFile","readFileSync","encoding","err","isErrorENOENT","library","date","Date","now","getFullYear","minifyResult","terser","minify","ecma","code","creatorIndex","readPackageCreatorIndex","directory","console","error","execAsync","promisify","exec","releaseFolder","options","workspace","write","writeVersionFile","reset","resetVersionFile","getVersionFileHandler","packageDescription","fullPackageName","subdomain","publishDomain","publishSubdomain","sharedPackageJson","readWorkspaceNpmManifest","newVersion","parseVersionFromString","Error","Version","toVersionString","buildNumber","preRelease","type","version","cwd","outDir","getWorkspaceOutputPath","mkdir","recursive","assetServerPackageDetails","packageNameWithVersion","versionWithoutPrelease","clone","newVersionString","name","zipFilePath","uploadable","getStream","pushOnly","zipFileExists","stat","catch","Promise","reject","gitVersionInformation","getVersionInformationFromGit","bannerText","getWorkspaceBannerText","buildFolders","packages","banner","text","commit","commitDirty","dirty","rm","readPackageAnimationList","length","workspaceManifest","dependencies","install","prompter","confirm","zipOutputStream","createWriteStream","pipeline","generateNodeStream","isErrorEACCES","isErrorEPERM","noUpload","authentication","sessionManager","createSessionManager","url","service","address","subDomain","skipDependencies","ensureRequiredVersions","AssetService","getTargetSession","destroy","zipFileName","releasesPath","getPackageReleasesDirectory","workspaceLocation","libraries","determineWorkspaceIGLibraries","targetSession","rawUploadedPackages","uploadedPackages","map","entry","parseVersionFromNumericVersion","numericVersion","libraryLocation","libraryManifest","readPublishedPackageNpmManifest","libraryCreatorPackage","readPublishedPackageCreatorManifest","libraryVersion","PackageVersion","extractFromLine","uploadedPackageInBasics","uploadedPackageInTarget","uploadedPackage","scope","support","validInBasics","isLesserThan","validInTarget","possibleTargets","value","libraryVersionString","uploadTargetScope","ask","message","default","session","getBasicsSession","params","basicsSession"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-e6ead55c.mjs","sources":["../../tools.core/build/log.mjs","../src/commands/build/tsc.ts","../src/commands/build/docs.ts","../src/lib/toposort.ts","../src/commands/build/manager.ts","../src/commands/build/animation.schema.ts","../src/commands/build/animations.ts","../src/commands/build/index.ts"],"sourcesContent":["const logPackageMessage = (name, step, index, total, maxNameLength = 15)=>{\n const numLength = total === undefined ? undefined : total.toString().length;\n const indexString = total === undefined || total < 2 ? \"\" : `${index.toString().padStart(numLength, \"0\")}/${total} `;\n const identifierString = `${indexString}${name.padEnd(maxNameLength)}`;\n console.log(`${identifierString} >> ${step}`);\n};\n\nexport { logPackageMessage };\n//# sourceMappingURL=log.mjs.map\n","import ts from \"typescript\";\nimport * as path from \"path\";\nimport * as fs from \"fs\";\n\nimport { PackageLocation } from \"../../lib/package\";\n\nimport { getPackageTypescriptFiles } from \"../../lib/scripts\";\nimport { BuildParticipant, BuilderEnvironment } from \"./types\";\n\nexport const tryReadTsConfig = (location: PackageLocation) => {\n\tconst { config } = ts.readConfigFile(\n\t\tpath.join(location.scriptsDir, \"tsconfig.json\"),\n\t\t(path) => {\n\t\t\ttry {\n\t\t\t\treturn fs.readFileSync(path, \"utf8\");\n\t\t\t} catch {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t},\n\t);\n\n\treturn config as {\n\t\tcompilerOptions: ts.CompilerOptions;\n\t};\n};\n\nexport const createTSCBuildParticipant =\n\t(location: PackageLocation, outputDir: string): BuildParticipant =>\n\t(env: BuilderEnvironment) => {\n\t\tconst files = getPackageTypescriptFiles(location);\n\n\t\tif (files.length === 0) {\n\t\t\tenv.onBuildStart();\n\t\t\tenv.onBuildEnd({\n\t\t\t\ttype: \"success\",\n\t\t\t\tartefacts: {\n\t\t\t\t\tjs: \"\",\n\t\t\t\t\tdefinitions: \"\",\n\t\t\t\t},\n\t\t\t});\n\n\t\t\treturn { destroy: () => {} };\n\t\t}\n\n\t\ttry {\n\t\t\tenv.onBuildStart();\n\n\t\t\tconst compilerOptions = getCompilerOptions(location, outputDir);\n\n\t\t\tconst host = ts.createCompilerHost(compilerOptions);\n\t\t\thost.getCurrentDirectory = () => location.scriptsDir;\n\n\t\t\tlet js: string | undefined;\n\t\t\tlet definitions: string | undefined;\n\t\t\tlet sourceMap: string | undefined;\n\n\t\t\thost.writeFile = (fileName, data, writeByteOrderMark) => {\n\t\t\t\tif (fileName.endsWith(\".js\")) {\n\t\t\t\t\tjs = data;\n\t\t\t\t} else if (fileName.endsWith(\".d.ts\")) {\n\t\t\t\t\tdefinitions = data;\n\t\t\t\t} else if (fileName.endsWith(\".js.map\")) {\n\t\t\t\t\tsourceMap = data;\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tconst programOptions: ts.CreateProgramOptions = {\n\t\t\t\trootNames: files,\n\t\t\t\toptions: compilerOptions,\n\t\t\t\thost,\n\t\t\t};\n\n\t\t\tconst program = ts.createProgram(programOptions);\n\t\t\tconst emitResult = program.emit();\n\t\t\tconst allDiagnostics = ts.getPreEmitDiagnostics(program);\n\n\t\t\tif (!emitResult.emitSkipped) {\n\t\t\t\tif (allDiagnostics.length > 0) {\n\t\t\t\t\tconsole.log(\n\t\t\t\t\t\tallDiagnostics.map(createErrorMessage).join(\"\\n\"),\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tif (js === undefined || definitions === undefined) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`Unexpected: no js or definitions were created`,\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tenv.onBuildEnd({\n\t\t\t\t\ttype: \"success\",\n\t\t\t\t\tartefacts: {\n\t\t\t\t\t\tjs: js.replace(`//# sourceMappingURL=out.js.map`, \"\"),\n\t\t\t\t\t\tdefinitions,\n\t\t\t\t\t\tsourceMap,\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tconst error = allDiagnostics.map(createErrorMessage).join(\"\\n\");\n\n\t\t\t\tthrow new Error(error);\n\t\t\t}\n\t\t} catch (err) {\n\t\t\tenv.onBuildEnd({\n\t\t\t\ttype: \"error\",\n\t\t\t\terror: err.message,\n\t\t\t});\n\t\t}\n\n\t\treturn {\n\t\t\tdestroy: () => {},\n\t\t};\n\t};\n\nexport const createTSCWatchBuildParticipant = (\n\tlocation: PackageLocation,\n\toutputDir: string,\n): BuildParticipant => {\n\treturn ({ onBuildStart, onBuildEnd }: BuilderEnvironment) => {\n\t\ttype State = {\n\t\t\tjs: string | undefined;\n\t\t\tdefinitions: string | undefined;\n\t\t\tdiagnostics: ts.Diagnostic[];\n\t\t\tsourceMap: string | undefined;\n\t\t};\n\n\t\tlet state: State = {\n\t\t\tdiagnostics: [],\n\t\t\tjs: undefined,\n\t\t\tdefinitions: undefined,\n\t\t\tsourceMap: undefined,\n\t\t};\n\n\t\tconst customSys: ts.System = {\n\t\t\t...ts.sys,\n\t\t\twriteFile: (fileName, data, writeByteOrderMark) => {\n\t\t\t\tif (fileName.endsWith(\".js\")) {\n\t\t\t\t\tstate.js = data;\n\t\t\t\t} else if (fileName.endsWith(\".d.ts\")) {\n\t\t\t\t\tstate.definitions = data;\n\t\t\t\t} else if (fileName.endsWith(\".js.map\")) {\n\t\t\t\t\tstate.sourceMap = data;\n\t\t\t\t}\n\t\t\t},\n\t\t};\n\n\t\tconst reportDiagnostic = (diagnostic: ts.Diagnostic) => {\n\t\t\tswitch (diagnostic.code) {\n\t\t\t\t// file not found - https://github.com/microsoft/TypeScript/blob/93e6b9da0c4cb164ca90a5a1b07415e81e97f2b1/src/compiler/diagnosticMessages.json#L4640\n\t\t\t\t// probably deleted -> ignore\n\t\t\t\tcase 6053:\n\t\t\t\t\treturn;\n\n\t\t\t\t// no inputs were found - https://github.com/microsoft/TypeScript/blob/93e6b9da0c4cb164ca90a5a1b07415e81e97f2b1/src/compiler/diagnosticMessages.json#L6838\n\t\t\t\t// we don't care about this error. a user might have temporarily deleted the last ts file and will readd one later.\n\t\t\t\tcase 18003:\n\t\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tstate.diagnostics.push(diagnostic);\n\t\t};\n\n\t\tconst reportWatchStatusChanged = (diagnostic: ts.Diagnostic) => {\n\t\t\tswitch (diagnostic.code) {\n\t\t\t\t// regular watch mode - https://github.com/microsoft/TypeScript/blob/93e6b9da0c4cb164ca90a5a1b07415e81e97f2b1/src/compiler/diagnosticMessages.json#L4567\n\t\t\t\tcase 6031:\n\t\t\t\t// incremental watch mode - https://github.com/microsoft/TypeScript/blob/93e6b9da0c4cb164ca90a5a1b07415e81e97f2b1/src/compiler/diagnosticMessages.json#L4571\n\t\t\t\tcase 6032:\n\t\t\t\t\t// build start\n\t\t\t\t\tonBuildStart();\n\t\t\t\t\tbreak;\n\n\t\t\t\t// found one error - https://github.com/microsoft/TypeScript/blob/93e6b9da0c4cb164ca90a5a1b07415e81e97f2b1/src/compiler/diagnosticMessages.json#L5119\n\t\t\t\tcase 6193:\n\t\t\t\t// found n or 0 errors - https://github.com/microsoft/TypeScript/blob/93e6b9da0c4cb164ca90a5a1b07415e81e97f2b1/src/compiler/diagnosticMessages.json#L5123\n\t\t\t\tcase 6194:\n\t\t\t\t\t// build end\n\t\t\t\t\tconst emitState = state;\n\t\t\t\t\tstate = {\n\t\t\t\t\t\tdiagnostics: [],\n\t\t\t\t\t\tjs: undefined,\n\t\t\t\t\t\tdefinitions: undefined,\n\t\t\t\t\t\tsourceMap: undefined,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (emitState.diagnostics.length > 0) {\n\t\t\t\t\t\tconst message = emitState.diagnostics\n\t\t\t\t\t\t\t.map(createErrorMessage)\n\t\t\t\t\t\t\t.join(\"\\n\");\n\n\t\t\t\t\t\tonBuildEnd({\n\t\t\t\t\t\t\ttype: \"error\",\n\t\t\t\t\t\t\terror: message,\n\t\t\t\t\t\t});\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (\n\t\t\t\t\t\temitState.js === undefined ||\n\t\t\t\t\t\temitState.definitions === undefined\n\t\t\t\t\t) {\n\t\t\t\t\t\tonBuildEnd({\n\t\t\t\t\t\t\ttype: \"success\",\n\t\t\t\t\t\t\tartefacts: {\n\t\t\t\t\t\t\t\tjs: \"\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t});\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tonBuildEnd({\n\t\t\t\t\t\ttype: \"success\",\n\t\t\t\t\t\tartefacts: {\n\t\t\t\t\t\t\tjs: emitState.js.replace(\n\t\t\t\t\t\t\t\t`//# sourceMappingURL=out.js.map`,\n\t\t\t\t\t\t\t\t\"\",\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tdefinitions: emitState.definitions,\n\t\t\t\t\t\t\tsourceMap: emitState.sourceMap,\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t};\n\n\t\tconst host = ts.createWatchCompilerHost(\n\t\t\tpath.join(location.scriptsDir, \"tsconfig.json\"),\n\t\t\tgetCompilerOptions(location, outputDir),\n\t\t\tcustomSys,\n\t\t\tts.createSemanticDiagnosticsBuilderProgram,\n\t\t\treportDiagnostic,\n\t\t\treportWatchStatusChanged,\n\t\t);\n\n\t\tconst watchProgram = ts.createWatchProgram(host);\n\n\t\tconst files = getPackageTypescriptFiles(location);\n\n\t\tif (files.length === 0) {\n\t\t\tonBuildStart();\n\t\t\tonBuildEnd({\n\t\t\t\ttype: \"success\",\n\t\t\t\tartefacts: {\n\t\t\t\t\tjs: \"\",\n\t\t\t\t\tdefinitions: \"\",\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\n\t\treturn {\n\t\t\tdestroy: () => {\n\t\t\t\twatchProgram.close();\n\t\t\t},\n\t\t};\n\t};\n};\n\nconst createErrorMessage = (diagnostic: ts.Diagnostic) => {\n\tif (!diagnostic.file) {\n\t\treturn `${ts.flattenDiagnosticMessageText(\n\t\t\tdiagnostic.messageText,\n\t\t\t\"\\n\",\n\t\t)}`;\n\t}\n\n\tconst { line, character } = diagnostic.file.getLineAndCharacterOfPosition(\n\t\tdiagnostic.start!,\n\t);\n\n\tconst message = ts.flattenDiagnosticMessageText(\n\t\tdiagnostic.messageText,\n\t\t\"\\n\",\n\t);\n\n\treturn `${diagnostic.file.fileName} (${line + 1},${\n\t\tcharacter + 1\n\t}): ${message}`;\n};\n\nconst getCompilerOptions = (location: PackageLocation, outputDir: string) => {\n\tconst config = tryReadTsConfig(location);\n\n\tconfig.compilerOptions.lib = [\"es5\", \"dom\"];\n\n\tconst result = ts.convertCompilerOptionsFromJson(\n\t\tconfig.compilerOptions,\n\t\tlocation.scriptsDir,\n\t);\n\n\tconst compilerOptions: ts.CompilerOptions = {\n\t\t...result.options,\n\t\tremoveComments: false,\n\t\tdeclaration: true,\n\t\tsourceMap: true,\n\t\tinlineSources: false,\n\t\t// We don't use tsc to actually emit the files, but we still need to set the correct\n\t\t// output directory so the compiler can rewrite the `reference path` directives.\n\t\toutFile: path.join(outputDir, \"out.js\"),\n\t\ttarget: ts.ScriptTarget.ES5,\n\t\tnoEmitOnError: true,\n\t};\n\n\treturn compilerOptions;\n};\n","import typedoc from \"typedoc\";\nimport glob from \"glob\";\nimport ts from \"typescript\";\nimport * as path from \"path\";\nimport { PackageLocation } from \"../../lib/package\";\n\nexport const generateDocs = async (\n\tlocation: PackageLocation,\n\tdeclarationFile: string,\n\toutFolder: string,\n\tname: string,\n) => {\n\tconst app = new typedoc.Application();\n\n\tconst mediaDir = path.join(location.manifestDir, \"Media\");\n\n\tapp.bootstrap({\n\t\tentryPoints: [declarationFile],\n\t\tmedia: mediaDir,\n\t\tout: outFolder,\n\t\ttsconfig: path.join(location.scriptsDir, \"tsconfig.json\"),\n\t\tskipErrorChecking: true,\n\t});\n\n\tapp.options.setCompilerOptions(\n\t\t[declarationFile],\n\t\t{\n\t\t\ttarget: ts.ScriptTarget.ES5,\n\t\t},\n\t\tundefined,\n\t);\n\n\tapp.options.setValue(\"name\", name);\n\n\tconst [readmePath] = glob.sync(\"**/readme.md\", {\n\t\tabsolute: true,\n\t\tcwd: location.manifestDir,\n\t});\n\n\tif (readmePath) {\n\t\tapp.options.setValue(\"readme\", readmePath);\n\t}\n\n\tconst project = app.convert();\n\n\tif (project) {\n\t\tawait app.generateDocs(project, outFolder);\n\t}\n};\n","// Stolen from ig.tools.core\n\nexport const toposort = (packages: Record<string, string[]>) => {\n\tconst queue = Object.getOwnPropertyNames(packages);\n\tconst result: string[] = [];\n\n\tlet index = 0;\n\n\twhile (queue.length > 0) {\n\t\tif (index >= queue.length) {\n\t\t\tthrow new Error(\"Packages can not have cyclic dependencies\");\n\t\t}\n\n\t\tconst queueEntry = queue[index];\n\n\t\tconst dependencies = packages[queueEntry];\n\t\tconst dependencyQueued = dependencies.some((dependency) =>\n\t\t\tqueue.includes(dependency),\n\t\t);\n\n\t\tif (dependencyQueued) {\n\t\t\tindex++;\n\t\t\tcontinue;\n\t\t}\n\n\t\tqueue.splice(index, 1);\n\t\tindex = 0;\n\t\tresult.push(queueEntry);\n\t}\n\n\treturn result;\n};\n","import { CreatorPackage } from \"@intelligentgraphics/ig.gfx.tools.core\";\nimport {\n\tBuildArtefacts,\n\tBuildParticipant,\n\tBuildResult,\n\tBuildSuccessResult,\n} from \"./types\";\nimport EventEmitter from \"events\";\nimport { SourceMapConsumer, SourceMapGenerator } from \"source-map-js\";\nimport * as path from \"path\";\n\ntype State =\n\t| {\n\t\t\ttype: \"busy\";\n\t }\n\t| BuildResult;\n\nexport class BuildManager extends EventEmitter {\n\tprivate readonly participants = new Map<string, BuildParticipant>();\n\tprivate readonly states = new Map<string, State>();\n\n\tconstructor(\n\t\tprivate readonly manifest: CreatorPackage,\n\t\tprivate readonly writer: (result: BuildArtefacts) => Promise<void>,\n\t\tprivate readonly logStep: (message: string) => void,\n\t) {\n\t\tsuper();\n\t}\n\n\tpublic addParticipant(name: string, participant: BuildParticipant) {\n\t\tthis.participants.set(name, participant);\n\t}\n\n\tpublic run() {\n\t\tfor (const [name] of this.participants) {\n\t\t\tthis.states.set(name, { type: \"busy\" });\n\t\t}\n\n\t\tthis.emit(\"start\");\n\n\t\tfor (const [name, participant] of this.participants) {\n\t\t\tparticipant({\n\t\t\t\tonBuildStart: () => {\n\t\t\t\t\tlet alreadyBusy = false;\n\n\t\t\t\t\tfor (const [name, state] of this.states) {\n\t\t\t\t\t\tif (state.type === \"busy\") {\n\t\t\t\t\t\t\talreadyBusy = true;\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.states.set(name, { type: \"busy\" });\n\n\t\t\t\t\tif (!alreadyBusy) {\n\t\t\t\t\t\tthis.emit(\"start\");\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tonBuildEnd: (result) => {\n\t\t\t\t\tthis.states.set(name, result);\n\n\t\t\t\t\tthis.maybeEmit();\n\t\t\t\t},\n\t\t\t\tlog: this.logStep,\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate maybeEmit() {\n\t\tconst errors: string[] = [];\n\t\tconst results: BuildSuccessResult[] = [];\n\n\t\tfor (const [_, state] of this.states) {\n\t\t\tif (state.type === \"busy\") {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (state.type === \"success\") {\n\t\t\t\tresults.push(state);\n\t\t\t} else if (state.type === \"error\") {\n\t\t\t\terrors.push(state.error);\n\t\t\t}\n\t\t}\n\n\t\tif (errors.length > 0) {\n\t\t\tthis.emit(\"error\", errors.join(\"\\n\"));\n\t\t\treturn;\n\t\t}\n\n\t\tconst completeResult: BuildArtefacts = {\n\t\t\tjs: \"\",\n\t\t};\n\n\t\tconst sourceMapGenerator = new SourceMapGenerator();\n\n\t\tfor (const result of results) {\n\t\t\tif (result.artefacts.js) {\n\t\t\t\tif (completeResult.js) {\n\t\t\t\t\tcompleteResult.js += \"\\n\";\n\t\t\t\t}\n\n\t\t\t\tif (result.artefacts.sourceMap) {\n\t\t\t\t\tconst lines = completeResult.js.split(\"\\n\").length - 1;\n\t\t\t\t\tconst sourceMap = new SourceMapConsumer(\n\t\t\t\t\t\tJSON.parse(result.artefacts.sourceMap),\n\t\t\t\t\t);\n\n\t\t\t\t\tconst sources = new Set<string>();\n\t\t\t\t\tsourceMap.eachMapping((mapping) => {\n\t\t\t\t\t\tsourceMapGenerator.addMapping({\n\t\t\t\t\t\t\tgenerated: {\n\t\t\t\t\t\t\t\tline: lines + mapping.generatedLine,\n\t\t\t\t\t\t\t\tcolumn: mapping.generatedColumn,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\toriginal: {\n\t\t\t\t\t\t\t\tline: mapping.originalLine,\n\t\t\t\t\t\t\t\tcolumn: mapping.originalColumn,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tsource: mapping.source,\n\t\t\t\t\t\t\tname: mapping.name,\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tsources.add(mapping.source);\n\t\t\t\t\t});\n\n\t\t\t\t\tfor (const source of sources) {\n\t\t\t\t\t\tconst content = sourceMap.sourceContentFor(source);\n\n\t\t\t\t\t\tif (content !== null) {\n\t\t\t\t\t\t\tsourceMapGenerator.setSourceContent(\n\t\t\t\t\t\t\t\tsource,\n\t\t\t\t\t\t\t\tcontent,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcompleteResult.js += result.artefacts.js;\n\t\t\t}\n\n\t\t\tif (result.artefacts.definitions) {\n\t\t\t\tif (completeResult.definitions) {\n\t\t\t\t\tcompleteResult.definitions += \"\\n\";\n\t\t\t\t} else {\n\t\t\t\t\tcompleteResult.definitions = \"\";\n\t\t\t\t}\n\n\t\t\t\tcompleteResult.definitions += result.artefacts.definitions;\n\t\t\t}\n\t\t}\n\n\t\tcompleteResult.sourceMap = sourceMapGenerator.toString();\n\n\t\tthis.writer(completeResult).then(() => {\n\t\t\tthis.emit(\"build\");\n\t\t});\n\t}\n}\n","export default {\n\t$schema: \"http://json-schema.org/draft-07/schema\",\n\t$id: \"https://archive.intelligentgraphics.biz/schemas/gfx/animation.json\",\n\t$comment: \"Version 2023-02-17, Source: ig.data.gfx/Specs/animation.json\",\n\ttitle: \"Animation description format\",\n\tadditionalProperties: false,\n\ttype: \"object\",\n\tproperties: {\n\t\t$schema: {\n\t\t\ttype: \"string\",\n\t\t},\n\t\tId: {\n\t\t\ttype: \"string\",\n\t\t\tdescription:\n\t\t\t\t\"Animation id, to be unique in the project scope. Needs to be a valid JavaScript identifier.\",\n\t\t},\n\t\tAnimations: {\n\t\t\ttype: \"array\",\n\t\t\tdescription: \"Declaration of animation states for gfx objects\",\n\t\t\titems: {\n\t\t\t\ttype: \"object\",\n\t\t\t\tadditionalProperties: false,\n\t\t\t\tproperties: {\n\t\t\t\t\t_: {\n\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\tdescription: \"Comment\",\n\t\t\t\t\t},\n\t\t\t\t\tPath: {\n\t\t\t\t\t\t$ref: \"#/definitions/igxcPath\",\n\t\t\t\t\t},\n\t\t\t\t\tStates: {\n\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\tadditionalProperties: {\n\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t\tadditionalProperties: false,\n\t\t\t\t\t\t\tproperties: {\n\t\t\t\t\t\t\t\tPosition: {\n\t\t\t\t\t\t\t\t\t$ref: \"#/definitions/vec3\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tRotation: {\n\t\t\t\t\t\t\t\t\t$ref: \"#/definitions/rotation\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tScaling: {\n\t\t\t\t\t\t\t\t\t$ref: \"#/definitions/vec3\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tVisibility: {\n\t\t\t\t\t\t\t\t\ttype: \"boolean\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tDeformation: {\n\t\t\t\t\t\t\t\t\tanyOf: [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\ttype: \"number\",\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tKinematics: {\n\t\t\toneOf: [\n\t\t\t\t{\n\t\t\t\t\t$ref: \"#/definitions/kinematicChain\",\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttype: \"array\",\n\t\t\t\t\titems: {\n\t\t\t\t\t\t$ref: \"#/definitions/kinematicChain\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t\tLinkedPoints: {\n\t\t\ttype: \"object\",\n\t\t\tadditionalProperties: {\n\t\t\t\ttype: \"array\",\n\t\t\t\titems: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t_: {\n\t\t\ttype: \"string\",\n\t\t\tdescription: \"Comment\",\n\t\t},\n\t},\n\tdefinitions: {\n\t\tvec3: {\n\t\t\ttype: \"object\",\n\t\t\tadditionalProperties: false,\n\t\t\tproperties: {\n\t\t\t\tX: {\n\t\t\t\t\tanyOf: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: \"number\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t\tY: {\n\t\t\t\t\tanyOf: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: \"number\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t\tZ: {\n\t\t\t\t\tanyOf: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: \"number\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t\t_: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tdescription: \"Comment\",\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\trotation: {\n\t\t\ttype: \"object\",\n\t\t\tadditionalProperties: false,\n\t\t\tproperties: {\n\t\t\t\tQ: {\n\t\t\t\t\tdescription:\n\t\t\t\t\t\t\"If true, the rotation is considered to be a Quaternion. Otherwise, it's interpreted as Euler arcs and W will be ignored.\",\n\t\t\t\t\ttype: \"boolean\",\n\t\t\t\t},\n\t\t\t\tX: {\n\t\t\t\t\tanyOf: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: \"number\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t\tY: {\n\t\t\t\t\tanyOf: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: \"number\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t\tZ: {\n\t\t\t\t\tanyOf: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: \"number\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t\tW: {\n\t\t\t\t\tanyOf: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: \"number\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t\t_: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tdescription: \"Comment\",\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tigxcPath: {\n\t\t\ttype: \"string\",\n\t\t\tdescription: \"Relative path of the target object\",\n\t\t\tpattern: \"^((o|e)\\\\d+(\\\\.(o|e)\\\\d+)*|\\\\.)$\",\n\t\t},\n\t\tparam: {\n\t\t\ttype: \"string\",\n\t\t\tpattern: \"^Param\\\\d+$\",\n\t\t},\n\t\tkinematicChain: {\n\t\t\ttype: \"object\",\n\t\t\tadditionalProperties: false,\n\t\t\tproperties: {\n\t\t\t\tGeometryBase: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t},\n\t\t\t\tJoints: {\n\t\t\t\t\ttype: \"array\",\n\t\t\t\t\titems: {\n\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\tadditionalProperties: false,\n\t\t\t\t\t\tproperties: {\n\t\t\t\t\t\t\tName: {\n\t\t\t\t\t\t\t\toneOf: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t$ref: \"#/definitions/param\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tHeadX: {\n\t\t\t\t\t\t\t\toneOf: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t$ref: \"#/definitions/param\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t$ref: \"#/definitions/igxcPath\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tHeadY: {\n\t\t\t\t\t\t\t\toneOf: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t$ref: \"#/definitions/param\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t$ref: \"#/definitions/igxcPath\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tHeadZ: {\n\t\t\t\t\t\t\t\toneOf: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t$ref: \"#/definitions/param\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t$ref: \"#/definitions/igxcPath\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tTail: {\n\t\t\t\t\t\t\t\toneOf: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t$ref: \"#/definitions/param\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t$ref: \"#/definitions/igxcPath\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tLimitLeft: {\n\t\t\t\t\t\t\t\ttype: \"number\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tLimitRight: {\n\t\t\t\t\t\t\t\ttype: \"number\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tLimitUp: {\n\t\t\t\t\t\t\t\ttype: \"number\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tLimitDown: {\n\t\t\t\t\t\t\t\ttype: \"number\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tFollowJointNode: {\n\t\t\t\t\t\t\t\t$ref: \"#/definitions/igxcPath\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t_TargetNodeForFollow: {\n\t\t\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tTarget: {\n\t\t\t\t\toneOf: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t$ref: \"#/definitions/igxcPath\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t$ref: \"#/definitions/param\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\t\tenum: [\"subbase\"],\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t\tParent: {\n\t\t\t\t\toneOf: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t$ref: \"#/definitions/igxcPath\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\t\tenum: [\"root\"],\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t\tTolerance: {\n\t\t\t\t\ttype: \"number\",\n\t\t\t\t},\n\t\t\t\tMaxIterations: {\n\t\t\t\t\ttype: \"integer\",\n\t\t\t\t},\n\t\t\t\t_: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tdescription: \"Comment\",\n\t\t\t\t},\n\t\t\t\t__: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tdescription: \"Super Comment\",\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t},\n};\n","import * as path from \"path\";\nimport * as fs from \"fs/promises\";\n\nimport {\n\tPackageLocation,\n\tCreatorPackage,\n\treadPackageAnimationList,\n\tlogPackageMessage,\n} from \"@intelligentgraphics/ig.gfx.tools.core\";\n\nimport { BuildParticipant, BuilderEnvironment } from \"./types\";\nimport Ajv, { ValidateFunction } from \"ajv\";\nimport animationSchema from \"./animation.schema\";\n\nexport const createAnimationBuildParticipant = (\n\tlocation: PackageLocation,\n\tmanifest: CreatorPackage,\n): BuildParticipant => {\n\treturn (env: BuilderEnvironment) => {\n\t\tenv.onBuildStart();\n\n\t\tbundleAnimations(location, manifest, env.log)\n\t\t\t.then((result) => {\n\t\t\t\tenv.onBuildEnd({\n\t\t\t\t\ttype: \"success\",\n\t\t\t\t\tartefacts: {\n\t\t\t\t\t\tjs: result?.js ?? \"\",\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t})\n\t\t\t.catch((err) => {\n\t\t\t\tenv.onBuildEnd({\n\t\t\t\t\ttype: \"error\",\n\t\t\t\t\terror: err.message,\n\t\t\t\t});\n\t\t\t});\n\n\t\treturn {\n\t\t\tdestroy: () => {},\n\t\t};\n\t};\n};\n\nexport const createAnimationWatchBuildParticipant =\n\t(location: PackageLocation, manifest: CreatorPackage): BuildParticipant =>\n\t(env) => {\n\t\tenv.onBuildStart();\n\n\t\tbundleAnimations(location, manifest, env.log)\n\t\t\t.then((result) => {\n\t\t\t\tenv.onBuildEnd({\n\t\t\t\t\ttype: \"success\",\n\t\t\t\t\tartefacts: {\n\t\t\t\t\t\tjs: result?.js ?? \"\",\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t})\n\t\t\t.catch((err) => {\n\t\t\t\tenv.onBuildEnd({\n\t\t\t\t\ttype: \"error\",\n\t\t\t\t\terror: err.message,\n\t\t\t\t});\n\t\t\t});\n\n\t\t(async () => {\n\t\t\tfor await (const event of fs.watch(location.scriptsDir)) {\n\t\t\t\tif (event.filename.endsWith(\".animation.json\")) {\n\t\t\t\t\tenv.onBuildStart();\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst result = await bundleAnimations(\n\t\t\t\t\t\t\tlocation,\n\t\t\t\t\t\t\tmanifest,\n\t\t\t\t\t\t\tenv.log,\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tenv.onBuildEnd({\n\t\t\t\t\t\t\ttype: \"success\",\n\t\t\t\t\t\t\tartefacts: {\n\t\t\t\t\t\t\t\tjs: result?.js ?? \"\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t});\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\tenv.onBuildEnd({\n\t\t\t\t\t\t\ttype: \"error\",\n\t\t\t\t\t\t\terror: err.message,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t})();\n\n\t\treturn {\n\t\t\tdestroy: () => {},\n\t\t};\n\t};\n\nconst bundleAnimations = async (\n\tlocation: PackageLocation,\n\tmanifest: CreatorPackage,\n\tlogStep: (message: string) => void,\n) => {\n\tconst animations = new Map<string, string>();\n\n\tfor (const scriptFilePath of readPackageAnimationList(location)) {\n\t\tconst content = await fs.readFile(scriptFilePath, {\n\t\t\tencoding: \"utf8\",\n\t\t})!;\n\n\t\tlet data: { Id: string; $schema?: string };\n\n\t\ttry {\n\t\t\tdata = JSON.parse(content);\n\t\t} catch (err) {\n\t\t\tconst relativePath = path.relative(location.path, scriptFilePath);\n\n\t\t\tif (err instanceof SyntaxError) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Encountered invalid syntax in file \"${relativePath}\": ${String(\n\t\t\t\t\t\terr,\n\t\t\t\t\t)}`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tthrow new Error(\n\t\t\t\t`Encountered an unexpected error while parsing animation json file at path \"${relativePath}\"`,\n\t\t\t\t{\n\t\t\t\t\tcause: err,\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\n\t\tif (!data.Id) {\n\t\t\tconst fileName = path.basename(scriptFilePath, \".animation.json\");\n\t\t\tdata.Id = fileName;\n\t\t}\n\n\t\t(await getAnimationJsonValidation())(data);\n\t\tdelete data.$schema;\n\t\tanimations.set(data.Id, JSON.stringify(data));\n\t}\n\n\tif (animations.size > 0) {\n\t\tconst scope = manifest.Scope ?? manifest.Package;\n\t\tconst scopeParts = scope.split(\".\");\n\n\t\tlet js = createNamespace(scopeParts);\n\n\t\tfor (const [name, content] of animations) {\n\t\t\tjs += `${scope}[\"${name}\"] = ` + content + \";\";\n\t\t\tlogStep(`Adding animation ${scope}.${name}`);\n\t\t}\n\n\t\treturn {\n\t\t\tjs,\n\t\t};\n\t}\n\n\treturn undefined;\n};\n\nconst createNamespace = (parts: string[]) => {\n\tlet code = `var ${parts[0]};`;\n\n\tfor (let index = 0; index < parts.length; index++) {\n\t\tconst path = parts.slice(0, index + 1).join(\".\");\n\n\t\tcode += `\\n(${path} = ${path} || {});`;\n\t}\n\n\treturn code;\n};\n\nlet validateAnimationJson: ValidateFunction | undefined;\n\nconst getAnimationJsonValidation = async () => {\n\tif (validateAnimationJson === undefined) {\n\t\tvalidateAnimationJson = new Ajv({\n\t\t\tcoerceTypes: true,\n\t\t\tallErrors: true,\n\t\t\tremoveAdditional: true,\n\t\t\tuseDefaults: \"empty\",\n\t\t\tvalidateSchema: \"log\",\n\t\t}).compile(animationSchema);\n\t}\n\n\treturn validateAnimationJson!;\n};\n","import * as path from \"path\";\nimport * as fs from \"fs/promises\";\nimport * as terser from \"terser\";\n\nimport { isErrorENOENT } from \"@intelligentgraphics/ig.gfx.tools.core\";\n\nimport { logPackageMessage } from \"../../lib/log\";\nimport {\n\tcreateTSCBuildParticipant,\n\tcreateTSCWatchBuildParticipant,\n} from \"./tsc\";\nimport { generateDocs } from \"./docs\";\nimport {\n\tCreatorPackage,\n\tPackageLocation,\n\treadPackageCreatorManifest,\n\treadPackageNpmManifest,\n} from \"../../lib/package\";\nimport { WorkspaceLocation } from \"../../lib/workspace\";\nimport { toposort } from \"../../lib/toposort\";\nimport { PackageJSON } from \"../../lib/packageJSON\";\nimport { BuildArtefacts, BuildParticipant } from \"./types\";\nimport { BuildManager } from \"./manager\";\nimport {\n\tcreateAnimationBuildParticipant,\n\tcreateAnimationWatchBuildParticipant,\n} from \"./animations\";\n\nexport interface BannerOptions {\n\ttext: string | undefined;\n\tversion: string | undefined;\n\tcommit: string | undefined;\n\tcommitDirty: boolean | undefined;\n\tdate: Date | undefined;\n}\n\nexport interface BuildFoldersOptions {\n\tworkspace: WorkspaceLocation;\n\tpackages: PackageLocation[];\n\toutDir?: string;\n\tminimize: boolean;\n\tbanner?: BannerOptions;\n\tclean?: boolean;\n\tdocs?: boolean;\n}\n\nexport interface BuildFolderOptions extends BuildFoldersOptions {\n\toutFile: string;\n}\n\nexport interface FolderBuilderResult {\n\tjs: string;\n\tdefinitions: string;\n}\n\nexport type FolderBuilder = (\n\tlocation: PackageLocation,\n\toutputDir: string,\n) => Promise<FolderBuilderResult>;\n\ntype FolderData = {\n\tlocation: PackageLocation;\n\tdata?: PackageJSON;\n};\n\nexport const buildFolders = async (options: BuildFoldersOptions) => {\n\tif (options.outDir !== undefined && options.clean) {\n\t\tawait fs.rm(options.outDir, { recursive: true });\n\t}\n\n\tconst workspace = options.workspace;\n\tconst folders = options.packages;\n\n\tlet sortedPackages = sortPackagesByBuildOrder(folders);\n\n\tlet index = 1;\n\n\tconst manifests = new Map(\n\t\tsortedPackages.map(\n\t\t\t(location) =>\n\t\t\t\t[location, readPackageCreatorManifest(location)] as const,\n\t\t),\n\t);\n\n\tconst maxNameLength = Array.from(\n\t\tmanifests.values(),\n\t\t(manifest) => manifest.Package.length,\n\t).reduce((acc, length) => Math.max(acc, length), 0);\n\n\tconst managers: BuildManager[] = [];\n\n\tfor (const location of sortedPackages) {\n\t\tawait ensureTsConfig(location);\n\n\t\tconst data = manifests.get(location)!;\n\n\t\tconst logStep = (step: string) =>\n\t\t\tlogPackageMessage(\n\t\t\t\tdata.Package,\n\t\t\t\tstep,\n\t\t\t\tindex,\n\t\t\t\tfolders.length,\n\t\t\t\tmaxNameLength,\n\t\t\t);\n\n\t\tconst outputDirectory = options.outDir || location.scriptsDir;\n\t\tawait fs.mkdir(outputDirectory, { recursive: true });\n\n\t\tconst manager = new BuildManager(\n\t\t\tdata,\n\t\t\t(result) =>\n\t\t\t\twriteBuildResult(\n\t\t\t\t\tresult,\n\t\t\t\t\tdata,\n\t\t\t\t\tlocation,\n\t\t\t\t\tworkspace,\n\t\t\t\t\toutputDirectory,\n\t\t\t\t\toptions.minimize,\n\t\t\t\t\tlogStep,\n\t\t\t\t),\n\t\t\tlogStep,\n\t\t);\n\n\t\tif (options.banner) {\n\t\t\tmanager.addParticipant(\n\t\t\t\t\"banner\",\n\t\t\t\tcreateBannerCommentBuildParticipant(options.banner),\n\t\t\t);\n\t\t}\n\n\t\tmanager.addParticipant(\n\t\t\t\"tsc\",\n\t\t\tcreateTSCBuildParticipant(location, outputDirectory),\n\t\t);\n\n\t\tmanager.addParticipant(\n\t\t\t\"animation\",\n\t\t\tcreateAnimationBuildParticipant(location, data),\n\t\t);\n\n\t\tawait new Promise<void>((resolve, reject) => {\n\t\t\tmanager.addListener(\"start\", () => {\n\t\t\t\tlogStep(`Build started`);\n\t\t\t});\n\t\t\tmanager.addListener(\"error\", (error: string) => {\n\t\t\t\treject(new Error(error));\n\t\t\t});\n\t\t\tmanager.addListener(\"build\", () => {\n\t\t\t\tlogStep(`Build complete`);\n\t\t\t\tresolve();\n\t\t\t});\n\t\t\tmanager.run();\n\t\t});\n\n\t\tmanagers.push(manager);\n\n\t\tif (options.docs) {\n\t\t\tlogStep(\"Generating typedoc documentation\");\n\t\t\tawait generateDocs(\n\t\t\t\tlocation,\n\t\t\t\tpath.join(outputDirectory, `${data.Package}.d.ts`),\n\t\t\t\tpath.join(workspace.path, \"docs\", data.Package),\n\t\t\t\tdata.Package,\n\t\t\t);\n\t\t}\n\n\t\tindex++;\n\t}\n};\n\nexport const buildFoldersWatch = async (options: BuildFoldersOptions) => {\n\tif (options.outDir !== undefined && options.clean) {\n\t\tawait fs.rm(options.outDir, { recursive: true });\n\t}\n\n\tconst workspace = options.workspace;\n\tconst folders = options.packages;\n\n\tlet sortedPackages = sortPackagesByBuildOrder(folders);\n\n\tlet index = 1;\n\n\tconst manifests = new Map(\n\t\tsortedPackages.map(\n\t\t\t(location) =>\n\t\t\t\t[location, readPackageCreatorManifest(location)] as const,\n\t\t),\n\t);\n\n\tconst maxNameLength = Array.from(\n\t\tmanifests.values(),\n\t\t(manifest) => manifest.Package.length,\n\t).reduce((acc, length) => Math.max(acc, length), 0);\n\n\tconst managers: BuildManager[] = [];\n\n\tfor (const location of sortedPackages) {\n\t\tawait ensureTsConfig(location);\n\n\t\tconst data = manifests.get(location)!;\n\t\tconst currentIndex = index;\n\n\t\tconst logStep = (step: string) =>\n\t\t\tlogPackageMessage(\n\t\t\t\tdata.Package,\n\t\t\t\tstep,\n\t\t\t\tcurrentIndex,\n\t\t\t\tfolders.length,\n\t\t\t\tmaxNameLength,\n\t\t\t);\n\n\t\tconst outputDirectory = options.outDir || location.scriptsDir;\n\t\tawait fs.mkdir(outputDirectory, { recursive: true });\n\n\t\tconst manager = new BuildManager(\n\t\t\tdata,\n\t\t\t(result) =>\n\t\t\t\twriteBuildResult(\n\t\t\t\t\tresult,\n\t\t\t\t\tdata,\n\t\t\t\t\tlocation,\n\t\t\t\t\tworkspace,\n\t\t\t\t\toutputDirectory,\n\t\t\t\t\toptions.minimize,\n\t\t\t\t\tlogStep,\n\t\t\t\t),\n\t\t\tlogStep,\n\t\t);\n\n\t\tif (options.banner) {\n\t\t\tmanager.addParticipant(\n\t\t\t\t\"banner\",\n\t\t\t\tcreateBannerCommentBuildParticipant(options.banner),\n\t\t\t);\n\t\t}\n\n\t\tmanager.addParticipant(\n\t\t\t\"tsc\",\n\t\t\tcreateTSCWatchBuildParticipant(location, outputDirectory),\n\t\t);\n\n\t\tmanager.addParticipant(\n\t\t\t\"animation\",\n\t\t\tcreateAnimationWatchBuildParticipant(location, data),\n\t\t);\n\n\t\tawait new Promise<void>((resolve, reject) => {\n\t\t\tmanager.addListener(\"start\", () => {\n\t\t\t\tlogStep(`Build started`);\n\t\t\t});\n\t\t\tmanager.addListener(\"error\", (error: string) => {\n\t\t\t\tlogStep(`Build failed: ${error}`);\n\t\t\t\tresolve();\n\t\t\t});\n\t\t\tmanager.addListener(\"build\", () => {\n\t\t\t\tlogStep(`Build complete`);\n\t\t\t\tresolve();\n\t\t\t});\n\t\t\tmanager.run();\n\t\t});\n\n\t\tmanagers.push(manager);\n\n\t\tindex++;\n\t}\n\n\tawait new Promise(() => {});\n};\n\nconst writeBuildResult = async (\n\tbuildResult: BuildArtefacts,\n\tmanifest: CreatorPackage,\n\tlocation: PackageLocation,\n\tworkspace: WorkspaceLocation,\n\toutputDirectory: string,\n\tminimize: boolean,\n\tlogStep: (step: string) => void,\n) => {\n\tlet js = buildResult.js;\n\n\tif (buildResult.sourceMap) {\n\t\tjs += `\\n//# sourceMappingURL=${manifest.Package}.js.map`;\n\t}\n\n\tawait fs.writeFile(\n\t\tpath.join(outputDirectory, `${manifest.Package}.js`),\n\t\tjs,\n\t\t{ encoding: \"utf8\" },\n\t);\n\tif (buildResult.definitions !== undefined) {\n\t\tawait fs.writeFile(\n\t\t\tpath.join(outputDirectory, `${manifest.Package}.d.ts`),\n\t\t\tbuildResult.definitions,\n\t\t\t{ encoding: \"utf8\" },\n\t\t);\n\t}\n\tif (buildResult.sourceMap !== undefined) {\n\t\tawait fs.writeFile(\n\t\t\tpath.join(outputDirectory, `${manifest.Package}.js.map`),\n\t\t\tbuildResult.sourceMap,\n\t\t\t{ encoding: \"utf8\" },\n\t\t);\n\t}\n\n\tif (minimize) {\n\t\tconst minifyResult = await terser.minify(js, {\n\t\t\tecma: 5,\n\t\t\tsourceMap: {\n\t\t\t\tcontent: buildResult.sourceMap,\n\t\t\t\tincludeSources: false,\n\t\t\t},\n\t\t});\n\n\t\tconst minifiedPath = path.join(\n\t\t\toutputDirectory,\n\t\t\t`${manifest.Package}.min.js`,\n\t\t);\n\t\tawait fs.writeFile(minifiedPath, minifyResult.code!, {\n\t\t\tencoding: \"utf8\",\n\t\t});\n\t\tif (minifyResult.map !== undefined) {\n\t\t\tawait fs.writeFile(\n\t\t\t\tminifiedPath + \".map\",\n\t\t\t\ttypeof minifyResult.map === \"string\"\n\t\t\t\t\t? minifyResult.map\n\t\t\t\t\t: JSON.stringify(minifyResult.map),\n\t\t\t\t{ encoding: \"utf8\" },\n\t\t\t);\n\t\t}\n\t}\n\n\tif (\n\t\tlocation.path.includes(\"Basics\") &&\n\t\tbuildResult.definitions !== undefined\n\t) {\n\t\tawait fs.mkdir(path.join(workspace.path, \"lib\"), {\n\t\t\trecursive: true,\n\t\t});\n\n\t\tlogStep(\"Copying basics definition file to the lib folder\");\n\t\tawait fs.writeFile(\n\t\t\tpath.join(workspace.path, \"lib\", `${manifest.Package}.d.ts`),\n\t\t\tbuildResult.definitions,\n\t\t\t{ encoding: \"utf8\" },\n\t\t);\n\t}\n};\n\nconst createBannerCommentBuildParticipant =\n\t(options: BannerOptions): BuildParticipant =>\n\t(env) => {\n\t\tenv.onBuildStart();\n\n\t\tconst banner = createBannerComment(options);\n\n\t\tenv.onBuildEnd({\n\t\t\ttype: \"success\",\n\t\t\tartefacts: {\n\t\t\t\tjs: banner ?? \"\",\n\t\t\t\tdefinitions: banner ?? \"\",\n\t\t\t},\n\t\t});\n\n\t\treturn {\n\t\t\tdestroy: () => {},\n\t\t};\n\t};\n\nconst ensureTsConfig = async (location: PackageLocation) => {\n\tconst tsconfigPath = path.join(location.scriptsDir, \"tsconfig.json\");\n\n\ttry {\n\t\tconst content = JSON.parse(await fs.readFile(tsconfigPath, \"utf8\"));\n\t\tapplyTsConfigOption(content);\n\t\tawait fs.writeFile(\n\t\t\ttsconfigPath,\n\t\t\tJSON.stringify(content, undefined, \"\\t\"),\n\t\t\t\"utf8\",\n\t\t);\n\t} catch (err) {\n\t\tif (!isErrorENOENT(err)) {\n\t\t\tthrow err;\n\t\t}\n\n\t\tconst content = {};\n\t\tapplyTsConfigOption(content);\n\n\t\tawait fs.writeFile(\n\t\t\ttsconfigPath,\n\t\t\tJSON.stringify(content, undefined, \"\\t\"),\n\t\t\t\"utf8\",\n\t\t);\n\t}\n};\n\nconst applyTsConfigOption = (data: {\n\tcompilerOptions?: { target?: string; lib?: string[] };\n}) => {\n\tdata.compilerOptions = data.compilerOptions ?? {};\n\tdata.compilerOptions.target = \"es5\";\n\tdata.compilerOptions.lib = [\"es5\", \"dom\"];\n};\n\nconst sortPackagesByBuildOrder = (\n\tfolders: PackageLocation[],\n): PackageLocation[] => {\n\tconst packages = Array.from(folders).reduce(\n\t\t(\n\t\t\tacc: Record<string, FolderData>,\n\t\t\tlocation,\n\t\t): Record<string, FolderData> => {\n\t\t\tconst data = readPackageNpmManifest(location);\n\n\t\t\tif (data !== undefined) {\n\t\t\t\tacc[data.name] = {\n\t\t\t\t\tdata,\n\t\t\t\t\tlocation,\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tacc[location.path] = {\n\t\t\t\t\tdata: undefined,\n\t\t\t\t\tlocation,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn acc;\n\t\t},\n\t\t{},\n\t);\n\n\tconst packageDependencies = Object.getOwnPropertyNames(packages).reduce(\n\t\t(acc, packageName) => {\n\t\t\tconst packageData = packages[packageName];\n\n\t\t\tif (packageData.data === undefined) {\n\t\t\t\tacc[packageName] = [];\n\t\t\t} else {\n\t\t\t\tacc[packageName] = Object.getOwnPropertyNames({\n\t\t\t\t\t...packageData.data.devDependencies,\n\t\t\t\t\t...packageData.data.dependencies,\n\t\t\t\t\t...packageData.data.peerDependencies,\n\t\t\t\t}).filter((packageName) => packages[packageName] !== undefined);\n\t\t\t}\n\n\t\t\treturn acc;\n\t\t},\n\t\t{},\n\t);\n\n\tconst sortedPackages = toposort(packageDependencies);\n\tconst result: PackageLocation[] = [];\n\n\tfor (const packageName of sortedPackages) {\n\t\tconst location = packages[packageName].location;\n\n\t\tif (readPackageCreatorManifest(location).Package.endsWith(\".Basics\")) {\n\t\t\tresult.unshift(location);\n\t\t} else {\n\t\t\tresult.push(location);\n\t\t}\n\t}\n\n\treturn result;\n};\n\nconst createBannerComment = (banner: BannerOptions) => {\n\tconst bannerParts: string[] = [];\n\n\tif (banner.text) {\n\t\tbannerParts.push(\" * \" + banner.text);\n\t}\n\n\t{\n\t\tconst details: string[] = [];\n\n\t\tif (banner.version) {\n\t\t\tdetails.push(`Version: ${banner.version}`);\n\t\t}\n\t\tif (banner.commit) {\n\t\t\tif (banner.commitDirty) {\n\t\t\t\tdetails.push(`Commit: ${banner.commit} (dirty)`);\n\t\t\t} else {\n\t\t\t\tdetails.push(`Commit: ${banner.commit}`);\n\t\t\t}\n\t\t}\n\t\tif (banner.date) {\n\t\t\tdetails.push(`Date: ${banner.date.toISOString()}`);\n\t\t}\n\n\t\tconst detailsText = details.map((line) => ` * ${line}`).join(\"\\n\");\n\t\tif (detailsText) {\n\t\t\tbannerParts.push(detailsText);\n\t\t}\n\t}\n\n\tconst bannerText = bannerParts.join(\"\\n\\n\");\n\n\tif (bannerText) {\n\t\treturn `/*\n${bannerText}\n*\n* @preserve\t\t\t\n*/`;\n\t}\n\n\treturn undefined;\n};\n"],"names":["logPackageMessage","name","step","index","total","maxNameLength","numLength","undefined","toString","length","indexString","padStart","identifierString","padEnd","console","log","tryReadTsConfig","location","config","ts","readConfigFile","path","join","scriptsDir","fs","readFileSync","createTSCBuildParticipant","outputDir","env","files","getPackageTypescriptFiles","onBuildStart","onBuildEnd","type","artefacts","js","definitions","destroy","compilerOptions","getCompilerOptions","host","createCompilerHost","getCurrentDirectory","sourceMap","writeFile","fileName","data","writeByteOrderMark","endsWith","programOptions","rootNames","options","program","createProgram","emitResult","emit","allDiagnostics","getPreEmitDiagnostics","emitSkipped","map","createErrorMessage","Error","replace","error","err","message","createTSCWatchBuildParticipant","state","diagnostics","customSys","sys","reportDiagnostic","diagnostic","code","push","reportWatchStatusChanged","emitState","createWatchCompilerHost","createSemanticDiagnosticsBuilderProgram","watchProgram","createWatchProgram","close","file","flattenDiagnosticMessageText","messageText","line","character","getLineAndCharacterOfPosition","start","lib","result","convertCompilerOptionsFromJson","removeComments","declaration","inlineSources","outFile","target","ScriptTarget","ES5","noEmitOnError","generateDocs","declarationFile","outFolder","app","typedoc","Application","mediaDir","manifestDir","bootstrap","entryPoints","media","out","tsconfig","skipErrorChecking","setCompilerOptions","setValue","readmePath","glob","sync","absolute","cwd","project","convert","toposort","packages","queue","Object","getOwnPropertyNames","queueEntry","dependencies","dependencyQueued","some","dependency","includes","splice","BuildManager","EventEmitter","constructor","manifest","writer","logStep","participants","Map","states","addParticipant","participant","set","run","alreadyBusy","maybeEmit","errors","results","_","completeResult","sourceMapGenerator","SourceMapGenerator","lines","split","SourceMapConsumer","JSON","parse","sources","Set","eachMapping","mapping","addMapping","generated","generatedLine","column","generatedColumn","original","originalLine","originalColumn","source","add","content","sourceContentFor","setSourceContent","then","$schema","$id","$comment","title","additionalProperties","properties","Id","description","Animations","items","Path","$ref","States","Position","Rotation","Scaling","Visibility","Deformation","anyOf","Kinematics","oneOf","LinkedPoints","vec3","X","Y","Z","rotation","Q","W","igxcPath","pattern","param","kinematicChain","GeometryBase","Joints","Name","HeadX","HeadY","HeadZ","Tail","LimitLeft","LimitRight","LimitUp","LimitDown","FollowJointNode","_TargetNodeForFollow","Target","enum","Parent","Tolerance","MaxIterations","__","createAnimationBuildParticipant","bundleAnimations","catch","createAnimationWatchBuildParticipant","event","watch","filename","animations","scriptFilePath","readPackageAnimationList","readFile","encoding","relativePath","relative","SyntaxError","String","cause","basename","getAnimationJsonValidation","stringify","size","scope","Scope","Package","scopeParts","createNamespace","parts","slice","validateAnimationJson","Ajv","coerceTypes","allErrors","removeAdditional","useDefaults","validateSchema","compile","animationSchema","buildFolders","outDir","clean","rm","recursive","workspace","folders","sortedPackages","sortPackagesByBuildOrder","manifests","readPackageCreatorManifest","Array","from","values","reduce","acc","Math","max","ensureTsConfig","get","outputDirectory","mkdir","manager","writeBuildResult","minimize","banner","createBannerCommentBuildParticipant","Promise","resolve","reject","addListener","docs","buildFoldersWatch","currentIndex","buildResult","minifyResult","terser","minify","ecma","includeSources","minifiedPath","createBannerComment","tsconfigPath","applyTsConfigOption","isErrorENOENT","readPackageNpmManifest","packageDependencies","packageName","packageData","devDependencies","peerDependencies","filter","unshift","bannerParts","text","details","version","commit","commitDirty","date","toISOString","detailsText","bannerText"],"mappings":"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"}