@intelligentgraphics/ig.gfx.packager 3.0.28 → 3.1.0-alpha.0

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 (34) hide show
  1. package/build/bin.mjs +1 -1
  2. package/build/{cli-RWjcRDQ7.mjs → cli-CuiqZ39_.mjs} +16 -22
  3. package/build/{cli-RWjcRDQ7.mjs.map → cli-CuiqZ39_.mjs.map} +1 -1
  4. package/build/{dependencies-_6rsdwHk.mjs → dependencies-BiYItaVS.mjs} +2 -2
  5. package/build/{dependencies-_6rsdwHk.mjs.map → dependencies-BiYItaVS.mjs.map} +1 -1
  6. package/build/{generateIndex-Dy12utjI.mjs → generateIndex-hg6jRXQv.mjs} +96 -83
  7. package/build/generateIndex-hg6jRXQv.mjs.map +1 -0
  8. package/build/{generateParameterType-DKwRLh1m.mjs → generateParameterType-CDjqLM4J.mjs} +2 -3
  9. package/build/{generateParameterType-DKwRLh1m.mjs.map → generateParameterType-CDjqLM4J.mjs.map} +1 -1
  10. package/build/{index-B9e-vtmM.mjs → index-B2kXo6K7.mjs} +298 -84
  11. package/build/index-B2kXo6K7.mjs.map +1 -0
  12. package/build/{index-CLoWLYI6.mjs → index-BoGrZubW.mjs} +14 -14
  13. package/build/index-BoGrZubW.mjs.map +1 -0
  14. package/build/{postinstall-DlYP6BrQ.mjs → postinstall-CbMUz2zy.mjs} +3 -4
  15. package/build/{postinstall-DlYP6BrQ.mjs.map → postinstall-CbMUz2zy.mjs.map} +1 -1
  16. package/build/{publishNpm-CEhZI6-O.mjs → publishNpm-CrnuTwss.mjs} +11 -10
  17. package/build/publishNpm-CrnuTwss.mjs.map +1 -0
  18. package/build/rollup-UR3DADp8.mjs +198 -0
  19. package/build/rollup-UR3DADp8.mjs.map +1 -0
  20. package/build/scripts-Bfojy_uD.mjs +48 -0
  21. package/build/scripts-Bfojy_uD.mjs.map +1 -0
  22. package/build/versionFile-DSqOw-XB.mjs +208 -0
  23. package/build/versionFile-DSqOw-XB.mjs.map +1 -0
  24. package/lib/lib.mjs +421 -331
  25. package/package.json +13 -8
  26. package/readme.md +87 -10
  27. package/build/generateIndex-Dy12utjI.mjs.map +0 -1
  28. package/build/index-B9e-vtmM.mjs.map +0 -1
  29. package/build/index-CLoWLYI6.mjs.map +0 -1
  30. package/build/publishNpm-CEhZI6-O.mjs.map +0 -1
  31. package/build/scripts-EvIjiH6G.mjs +0 -10
  32. package/build/scripts-EvIjiH6G.mjs.map +0 -1
  33. package/build/versionFile-C7xf8PjZ.mjs +0 -380
  34. package/build/versionFile-C7xf8PjZ.mjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-B2kXo6K7.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/lib/packageVersion.ts","../src/commands/build/index.ts"],"sourcesContent":["const consoleReporter = {\n log (message) {\n console.log(message);\n },\n error (message, _error) {\n console.error(message);\n }\n};\nconst createPackageScopedReporter = (reporter, scope, 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}${scope.padEnd(maxNameLength)}`;\n return {\n log (message) {\n reporter.log(`${identifierString} >> ${message}`);\n },\n error (message, error) {\n reporter.error(`${identifierString} >> ${message}`, error);\n }\n };\n};\n\nexport { consoleReporter, createPackageScopedReporter };\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\ttry {\n\t\t\tenv.onBuildStart();\n\n\t\t\tenv.log(\"Compiling typescript files\");\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(ts.formatDiagnostics(allDiagnostics, host));\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\tdeclarations: definitions,\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 = ts.formatDiagnostics(allDiagnostics, host);\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 registerDiagnostic = (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 = ts.formatDiagnostics(\n\t\t\t\t\t\t\temitState.diagnostics,\n\t\t\t\t\t\t\tformattingHost,\n\t\t\t\t\t\t);\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\tdeclarations: 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\tregisterDiagnostic,\n\t\t\treportWatchStatusChanged,\n\t\t);\n\n\t\tconst formattingHost: ts.FormatDiagnosticsHost = {\n\t\t\tgetCanonicalFileName: (path) => path,\n\t\t\tgetCurrentDirectory: host.getCurrentDirectory,\n\t\t\tgetNewLine: () => ts.sys.newLine,\n\t\t};\n\n\t\tconst watchProgram = ts.createWatchProgram(host);\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 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 {\n\tCreatorPackage,\n\tReporter,\n} 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\";\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 reporter: Reporter,\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: (message) => this.reporter.log(message),\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\tmapping.originalLine !== null &&\n\t\t\t\t\t\t\t\tmapping.originalColumn !== null\n\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\tline: mapping.originalLine,\n\t\t\t\t\t\t\t\t\t\t\tcolumn: mapping.originalColumn,\n\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t: undefined,\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\tif (mapping.source !== null) {\n\t\t\t\t\t\t\tsources.add(mapping.source);\n\t\t\t\t\t\t}\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.declarations) {\n\t\t\t\tif (completeResult.declarations) {\n\t\t\t\t\tcompleteResult.declarations += \"\\n\";\n\t\t\t\t} else {\n\t\t\t\t\tcompleteResult.declarations = \"\";\n\t\t\t\t}\n\n\t\t\t\tcompleteResult.declarations += result.artefacts.declarations;\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} 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","// Stolen from ig.tools.core\n\nexport interface PackageVersionToVersionStringParams {\n\tbuildNumber?: boolean;\n}\n\nexport class PackageVersion {\n\t// https://regex101.com/r/90PEY9/1\n\tpublic static fullTextMatcher =\n\t\t/(\\d+)(\\.(\\d+)(\\.(\\d+)(\\.(\\d+))?(-([^\\.]+)\\.(\\d+))?)?)?/;\n\tpublic static lineMatcher =\n\t\t/^(\\d+)(\\.(\\d+)(\\.(\\d+)(\\.(\\d+))?(-([^\\.]+)\\.(\\d+))?)?)?$/;\n\n\tpublic static extractFromText(input: string, description?: string) {\n\t\tif (input === undefined) {\n\t\t\tthrow new Error(`Can not parse version from undefined`);\n\t\t}\n\n\t\tconst match = input.match(PackageVersion.fullTextMatcher);\n\n\t\tif (!match) {\n\t\t\tthrow new Error(`Could not extract a version from input: ${input}`);\n\t\t}\n\n\t\treturn PackageVersion.fromMatch(match, description);\n\t}\n\n\tpublic static extractFromLine(input: string, description?: string) {\n\t\tif (input === undefined) {\n\t\t\tthrow new Error(`Can not parse version from undefined`);\n\t\t}\n\n\t\tconst match = input.match(PackageVersion.lineMatcher);\n\n\t\tif (!match) {\n\t\t\tthrow new Error(`Could not parse version from input: ${input}`);\n\t\t}\n\n\t\treturn PackageVersion.fromMatch(match, description);\n\t}\n\n\tpublic static equals(\n\t\ta: PackageVersion,\n\t\tb: PackageVersion,\n\t\tcheckPrerelease = false,\n\t) {\n\t\tif (a.major !== b.major || a.minor !== b.minor || a.patch !== b.patch) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (checkPrerelease === false) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (a.preRelease === b.preRelease) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (a.preRelease === undefined || b.preRelease === undefined) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn (\n\t\t\ta.preRelease.type === b.preRelease.type &&\n\t\t\ta.preRelease.version === b.preRelease.version\n\t\t);\n\t}\n\n\tprivate static fromMatch(\n\t\t[\n\t\t\t,\n\t\t\tmajor,\n\t\t\t,\n\t\t\tminor = \"0\",\n\t\t\t,\n\t\t\tpatch = \"0\",\n\t\t\t,\n\t\t\tbuild,\n\t\t\t,\n\t\t\tpreReleaseType,\n\t\t\tpreReleaseNumber,\n\t\t]: RegExpMatchArray,\n\t\tdescription?: string,\n\t) {\n\t\tlet preRelease: PackageVersion[\"preRelease\"] = undefined;\n\t\tlet buildNumber = 100;\n\n\t\tif (preReleaseType && preReleaseNumber) {\n\t\t\tpreRelease = {\n\t\t\t\ttype: preReleaseType,\n\t\t\t\tversion: parseInt(preReleaseNumber),\n\t\t\t};\n\t\t}\n\n\t\tif (build) {\n\t\t\tbuildNumber = Number(build);\n\t\t} else if (description) {\n\t\t\tconst descriptionMatch = description.match(/(\\d+)\\)$/);\n\n\t\t\tif (descriptionMatch) {\n\t\t\t\tbuildNumber = parseInt(descriptionMatch[1]);\n\t\t\t}\n\t\t}\n\n\t\treturn new PackageVersion(\n\t\t\tparseInt(major),\n\t\t\tparseInt(minor),\n\t\t\tparseInt(patch),\n\t\t\tpreRelease,\n\t\t\tbuildNumber,\n\t\t);\n\t}\n\n\tpublic static sort(\n\t\ta: PackageVersion,\n\t\tb: PackageVersion,\n\t\tascending: boolean = true,\n\t) {\n\t\tconst createSortResult = (a: number, b: number) =>\n\t\t\tascending ? a - b : b - a;\n\n\t\tif (a.major !== b.major) {\n\t\t\treturn createSortResult(a.major, b.major);\n\t\t}\n\n\t\tif (a.minor !== b.minor) {\n\t\t\treturn createSortResult(a.minor, b.minor);\n\t\t}\n\n\t\tif (a.patch !== b.patch) {\n\t\t\treturn createSortResult(a.patch, b.patch);\n\t\t}\n\n\t\treturn createSortResult(\n\t\t\ta.preRelease ? a.preRelease.version : 0,\n\t\t\tb.preRelease ? b.preRelease.version : 0,\n\t\t);\n\t}\n\n\tprivate static toNumber(version: PackageVersion) {\n\t\treturn (\n\t\t\t((version.major * 1000 + version.minor) * 1000 + version.patch) *\n\t\t\t\t1000 +\n\t\t\tversion.buildNumber\n\t\t);\n\t}\n\n\tconstructor(\n\t\tpublic major: number,\n\t\tpublic minor: number,\n\t\tpublic patch: number,\n\t\tpublic preRelease: { type: string; version: number } | undefined,\n\t\tpublic buildNumber: number,\n\t) {}\n\n\tpublic isPreRelease() {\n\t\treturn this.preRelease !== undefined;\n\t}\n\n\tpublic clone() {\n\t\treturn new PackageVersion(\n\t\t\tthis.major,\n\t\t\tthis.minor,\n\t\t\tthis.patch,\n\t\t\tthis.preRelease ? { ...this.preRelease } : undefined,\n\t\t\tthis.buildNumber,\n\t\t);\n\t}\n\n\tpublic incrementMajor() {\n\t\tthis.preRelease = undefined;\n\t\tthis.patch = 0;\n\t\tthis.minor = 0;\n\t\tthis.major++;\n\t}\n\n\tpublic incrementMinor() {\n\t\tthis.preRelease = undefined;\n\t\tthis.patch = 0;\n\t\tthis.minor++;\n\t}\n\n\tpublic incrementPatch() {\n\t\tthis.preRelease = undefined;\n\t\tthis.patch++;\n\t}\n\n\tpublic createPreRelease(type: string) {\n\t\tif (!this.preRelease) {\n\t\t\tthis.buildNumber = 1;\n\t\t} else {\n\t\t\tthis.buildNumber++;\n\t\t}\n\n\t\tif (this.preRelease && type === this.preRelease.type) {\n\t\t\tthis.preRelease.version++;\n\t\t\treturn;\n\t\t}\n\n\t\tthis.preRelease = {\n\t\t\tversion: 0,\n\t\t\ttype,\n\t\t};\n\t}\n\n\tpublic createRelease() {\n\t\tthis.preRelease = undefined;\n\t\tthis.buildNumber = 100;\n\t}\n\n\tpublic toVersionString({\n\t\tbuildNumber,\n\t}: PackageVersionToVersionStringParams = {}) {\n\t\tlet version = [this.major, this.minor, this.patch].join(\".\");\n\n\t\tif (buildNumber) {\n\t\t\tversion += \".\" + this.buildNumber;\n\t\t}\n\n\t\tif (this.preRelease) {\n\t\t\tversion += `-${this.preRelease.type}.${this.preRelease.version}`;\n\t\t}\n\n\t\treturn version;\n\t}\n\n\tpublic toDescriptionString(packageName: string) {\n\t\tconst base = [this.major, this.minor, this.patch].join(\".\");\n\t\tconst parts: (number | string)[] = [packageName, base];\n\n\t\tif (this.preRelease) {\n\t\t\tparts.push(upperCaseFirst(this.preRelease.type));\n\t\t\tparts.push(this.preRelease.version);\n\t\t}\n\n\t\tparts.push(`(${base}.${this.buildNumber})`);\n\n\t\treturn parts.join(\" \");\n\t}\n\n\t/**\n\t * Determines wether the version is lesser than the input version\n\t *\n\t * @param {PackageVersion} version\n\t * @returns\n\t */\n\tpublic isLesserThan(version: PackageVersion) {\n\t\treturn PackageVersion.toNumber(this) < PackageVersion.toNumber(version);\n\t}\n\n\t/**\n\t * Determines wether the version is greater than the input version\n\t *\n\t * @param {PackageVersion} version\n\t * @returns\n\t */\n\tpublic isGreaterThan(version: PackageVersion) {\n\t\treturn PackageVersion.toNumber(this) > PackageVersion.toNumber(version);\n\t}\n}\n\nconst upperCaseFirst = (input: string) => {\n\treturn input.slice(0, 1).toUpperCase() + input.slice(1);\n};\n","import * as path from \"path\";\nimport * as fs from \"fs/promises\";\nimport * as terser from \"terser\";\nimport { EOL } from \"os\";\nimport ts from \"typescript\";\n\nimport {\n\tconsoleReporter,\n\tcreatePackageScopedReporter,\n\tgetPackageTypescriptFiles,\n\tisErrorENOENT,\n\tReporter,\n} from \"@intelligentgraphics/ig.gfx.tools.core\";\n\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\";\nimport { isScriptPackageModules } from \"../../lib/scripts\";\nimport { PackageVersion } from \"../../lib/packageVersion\";\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\treporter?: Reporter;\n\tpreparedReporter?: Reporter;\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 async function buildFolders(options: BuildFoldersOptions) {\n\tif (options.outDir !== undefined && options.clean) {\n\t\tawait fs.rm(options.outDir, { recursive: true });\n\t}\n\n\tconst baseReporter = options.reporter ?? consoleReporter;\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\tconst tsConfig = await ensureTsConfig(location);\n\n\t\tconst data = manifests.get(location)!;\n\n\t\tconst reporter =\n\t\t\toptions.preparedReporter ??\n\t\t\tcreatePackageScopedReporter(\n\t\t\t\tbaseReporter,\n\t\t\t\tdata.Package,\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\treporter,\n\t\t\t\t),\n\t\t\treporter,\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\tconst typescriptFiles = getPackageTypescriptFiles(location);\n\n\t\tif (\n\t\t\t!typescriptFiles.some(\n\t\t\t\t(file) => path.basename(file).toLowerCase() === \"version.ts\",\n\t\t\t)\n\t\t) {\n\t\t\tmanager.addParticipant(\n\t\t\t\t\"version\",\n\t\t\t\tcreateVersionLogBuildParticipant(data),\n\t\t\t);\n\t\t}\n\n\t\tif (typescriptFiles.length > 0) {\n\t\t\tif (isScriptPackageModules(tsConfig.options)) {\n\t\t\t\tconst { createRollupBuildParticipant } = await import(\n\t\t\t\t\t\"./rollup\"\n\t\t\t\t);\n\n\t\t\t\tmanager.addParticipant(\n\t\t\t\t\t\"rollup\",\n\t\t\t\t\tcreateRollupBuildParticipant(\n\t\t\t\t\t\tlocation,\n\t\t\t\t\t\tdata,\n\t\t\t\t\t\toutputDirectory,\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tmanager.addParticipant(\n\t\t\t\t\t\"tsc\",\n\t\t\t\t\tcreateTSCBuildParticipant(location, outputDirectory),\n\t\t\t\t);\n\t\t\t}\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\treporter.log(`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\treporter.log(`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\treporter.log(\"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 async function buildFoldersWatch(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\tconst tsConfig = await ensureTsConfig(location);\n\n\t\tconst baseReporter = options.reporter ?? consoleReporter;\n\n\t\tconst data = manifests.get(location)!;\n\n\t\tconst reporter = createPackageScopedReporter(\n\t\t\tbaseReporter,\n\t\t\tdata.Package,\n\t\t\tindex,\n\t\t\tfolders.length,\n\t\t\tmaxNameLength,\n\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\treporter,\n\t\t\t\t),\n\t\t\treporter,\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\tconst typescriptFiles = getPackageTypescriptFiles(location);\n\n\t\tif (\n\t\t\t!typescriptFiles.some(\n\t\t\t\t(file) => path.basename(file).toLowerCase() === \"version.ts\",\n\t\t\t)\n\t\t) {\n\t\t\tmanager.addParticipant(\n\t\t\t\t\"version\",\n\t\t\t\tcreateVersionLogBuildParticipant(data),\n\t\t\t);\n\t\t}\n\n\t\tif (typescriptFiles.length > 0) {\n\t\t\tif (isScriptPackageModules(tsConfig.options)) {\n\t\t\t\tconst { createRollupWatchBuildParticipant } = await import(\n\t\t\t\t\t\"./rollup\"\n\t\t\t\t);\n\n\t\t\t\tmanager.addParticipant(\n\t\t\t\t\t\"rollup\",\n\t\t\t\t\tcreateRollupWatchBuildParticipant(\n\t\t\t\t\t\tlocation,\n\t\t\t\t\t\tdata,\n\t\t\t\t\t\toutputDirectory,\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tmanager.addParticipant(\n\t\t\t\t\t\"tsc\",\n\t\t\t\t\tcreateTSCWatchBuildParticipant(location, outputDirectory),\n\t\t\t\t);\n\t\t\t}\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\treporter.log(`Build started`);\n\t\t\t});\n\t\t\tmanager.addListener(\"error\", (error: string) => {\n\t\t\t\treporter.log(`Build failed: ${EOL}${error}`);\n\t\t\t\tresolve();\n\t\t\t});\n\t\t\tmanager.addListener(\"build\", () => {\n\t\t\t\treporter.log(`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\nasync function writeBuildResult(\n\tbuildResult: BuildArtefacts,\n\tmanifest: CreatorPackage,\n\tlocation: PackageLocation,\n\tworkspace: WorkspaceLocation,\n\toutputDirectory: string,\n\tminimize: boolean,\n\treporter: Reporter,\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.declarations !== undefined) {\n\t\tawait fs.writeFile(\n\t\t\tpath.join(outputDirectory, `${manifest.Package}.d.ts`),\n\t\t\tbuildResult.declarations,\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\treporter.log(\"Minifying the output\");\n\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.declarations !== undefined\n\t) {\n\t\tawait fs.mkdir(path.join(workspace.path, \"lib\"), {\n\t\t\trecursive: true,\n\t\t});\n\n\t\treporter.log(\"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.declarations,\n\t\t\t{ encoding: \"utf8\" },\n\t\t);\n\t}\n}\n\nfunction createVersionLogBuildParticipant(\n\tmanifest: CreatorPackage,\n): BuildParticipant {\n\treturn (env) => {\n\t\tenv.onBuildStart();\n\n\t\tconst parsedVersion =\n\t\t\tmanifest.Version !== undefined\n\t\t\t\t? PackageVersion.extractFromLine(manifest.Version)\n\t\t\t\t: undefined;\n\n\t\tlet logText: string;\n\n\t\tif (parsedVersion !== undefined) {\n\t\t\tlogText = parsedVersion.toDescriptionString(manifest.Package);\n\t\t} else {\n\t\t\tlogText = manifest.Package;\n\t\t}\n\n\t\tlogText += \".\";\n\n\t\tif (manifest.Copyright !== undefined) {\n\t\t\tlogText += \" \" + manifest.Copyright;\n\t\t}\n\n\t\tenv.onBuildEnd({\n\t\t\ttype: \"success\",\n\t\t\tartefacts: {\n\t\t\t\tjs: `console.log(${JSON.stringify(logText)})`,\n\t\t\t},\n\t\t});\n\n\t\treturn {\n\t\t\tdestroy: () => {},\n\t\t};\n\t};\n}\n\nfunction createBannerCommentBuildParticipant(\n\toptions: BannerOptions,\n): BuildParticipant {\n\treturn (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\tdeclarations: banner ?? \"\",\n\t\t\t},\n\t\t});\n\n\t\treturn {\n\t\t\tdestroy: () => {},\n\t\t};\n\t};\n}\n\nasync function ensureTsConfig(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\tapplyTsConfigOptions(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\n\t\treturn ts.parseJsonConfigFileContent(\n\t\t\tcontent,\n\t\t\tts.sys,\n\t\t\tlocation.scriptsDir,\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\tapplyTsConfigOptions(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\n\t\treturn ts.parseJsonConfigFileContent(\n\t\t\tcontent,\n\t\t\tts.sys,\n\t\t\tlocation.scriptsDir,\n\t\t);\n\t}\n}\n\nfunction applyTsConfigOptions(data: {\n\tcompilerOptions?: {\n\t\ttarget?: string;\n\t\tlib?: string[];\n\t\tmodule?: string;\n\t\tmoduleResolution?: string;\n\t};\n}) {\n\tif (data.compilerOptions?.module?.toLowerCase().startsWith(\"es\")) {\n\t\tdata.compilerOptions = data.compilerOptions ?? {};\n\t\tdata.compilerOptions.target = \"esnext\";\n\t\tdata.compilerOptions.lib = [\"esnext\", \"dom\"];\n\t\tdata.compilerOptions.module = \"es2015\";\n\t\tdata.compilerOptions.moduleResolution = \"node\";\n\t} else {\n\t\tdata.compilerOptions = data.compilerOptions ?? {};\n\t\tdata.compilerOptions.target = \"es5\";\n\t\tdata.compilerOptions.lib = [\"es5\", \"dom\"];\n\t}\n}\n\nfunction 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\nfunction 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":["consoleReporter","log","message","console","error","_error","createPackageScopedReporter","reporter","scope","index","total","maxNameLength","numLength","undefined","toString","length","indexString","padStart","identifierString","padEnd","tryReadTsConfig","location","config","ts","readConfigFile","path","join","scriptsDir","fs","readFileSync","createTSCBuildParticipant","outputDir","env","files","getPackageTypescriptFiles","onBuildStart","compilerOptions","getCompilerOptions","host","createCompilerHost","getCurrentDirectory","js","definitions","sourceMap","writeFile","fileName","data","writeByteOrderMark","endsWith","programOptions","rootNames","options","program","createProgram","emitResult","emit","allDiagnostics","getPreEmitDiagnostics","emitSkipped","formatDiagnostics","Error","onBuildEnd","type","artefacts","replace","declarations","err","destroy","createTSCWatchBuildParticipant","state","diagnostics","customSys","sys","registerDiagnostic","diagnostic","code","push","reportWatchStatusChanged","emitState","formattingHost","createWatchCompilerHost","createSemanticDiagnosticsBuilderProgram","getCanonicalFileName","getNewLine","newLine","watchProgram","createWatchProgram","close","lib","result","convertCompilerOptionsFromJson","removeComments","declaration","inlineSources","outFile","target","ScriptTarget","ES5","noEmitOnError","generateDocs","declarationFile","outFolder","name","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","manifest","writer","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","line","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","logStep","animations","scriptFilePath","readPackageAnimationList","readFile","encoding","relativePath","relative","SyntaxError","String","cause","basename","getAnimationJsonValidation","stringify","size","Scope","Package","scopeParts","createNamespace","parts","slice","validateAnimationJson","Ajv","coerceTypes","allErrors","removeAdditional","useDefaults","validateSchema","compile","animationSchema","PackageVersion","fullTextMatcher","lineMatcher","extractFromText","input","match","fromMatch","extractFromLine","equals","a","b","checkPrerelease","major","minor","patch","preRelease","version","build","preReleaseType","preReleaseNumber","buildNumber","parseInt","Number","descriptionMatch","sort","ascending","createSortResult","toNumber","isPreRelease","clone","incrementMajor","incrementMinor","incrementPatch","createPreRelease","createRelease","toVersionString","toDescriptionString","packageName","base","upperCaseFirst","isLesserThan","isGreaterThan","toUpperCase","buildFolders","outDir","clean","rm","recursive","baseReporter","workspace","folders","sortedPackages","sortPackagesByBuildOrder","manifests","map","readPackageCreatorManifest","Array","from","values","reduce","acc","Math","max","tsConfig","ensureTsConfig","get","preparedReporter","outputDirectory","mkdir","manager","writeBuildResult","minimize","banner","createBannerCommentBuildParticipant","typescriptFiles","file","toLowerCase","createVersionLogBuildParticipant","isScriptPackageModules","createRollupBuildParticipant","Promise","resolve","reject","addListener","docs","buildFoldersWatch","createRollupWatchBuildParticipant","EOL","buildResult","minifyResult","terser","minify","ecma","includeSources","minifiedPath","parsedVersion","Version","logText","Copyright","createBannerComment","tsconfigPath","applyTsConfigOptions","parseJsonConfigFileContent","isErrorENOENT","module","startsWith","moduleResolution","readPackageNpmManifest","packageDependencies","packageData","devDependencies","peerDependencies","filter","unshift","bannerParts","text","details","commit","commitDirty","date","toISOString","detailsText","bannerText"],"mappings":"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"}
@@ -7,30 +7,29 @@ import { exec } from 'child_process';
7
7
  import { promisify } from 'util';
8
8
  import 'resolve';
9
9
  import 'write-pkg';
10
- import { p as parseCreatorPackageName, r as readPackageCreatorManifest, w as writePackageCreatorManifest, i as isErrorENOENT, P as PACKAGE_FILE, a as readPackageCreatorIndex, I as INDEX_FILE, s as startSession, c as closeSession, g as getExistingPackages, u as uploadPackageFromBuffer, b as readWorkspaceNpmManifest, d as getWorkspaceOutputPath, e as readPackageAnimationList, f as isErrorEACCES, h as isErrorEPERM, j as getPackageReleasesDirectory } from './cli-RWjcRDQ7.mjs';
11
- import { c as createPackageScopedReporter, a as consoleReporter, b as buildFolders } from './index-B9e-vtmM.mjs';
10
+ import { p as parseCreatorPackageName, r as readPackageCreatorManifest, w as writePackageCreatorManifest, i as isErrorENOENT, P as PACKAGE_FILE, a as readPackageCreatorIndex, I as INDEX_FILE, s as startSession, c as closeSession, g as getExistingPackages, u as uploadPackageFromBuffer, b as readWorkspaceNpmManifest, d as getWorkspaceOutputPath, e as readPackageAnimationList, f as isErrorEACCES, h as isErrorEPERM, j as getPackageReleasesDirectory } from './cli-CuiqZ39_.mjs';
11
+ import { P as PackageVersion, c as createPackageScopedReporter, a as consoleReporter, b as buildFolders } from './index-B2kXo6K7.mjs';
12
12
  import 'glob';
13
13
  import 'node:path';
14
14
  import 'node:fs';
15
15
  import 'axios';
16
- import { p as parseVersionFromNumericVersion, P as PackageVersion, g as getVersionFileHandler, a as parseVersionFromString, b as getVersionInformationFromGit, c as getWorkspaceBannerText } from './versionFile-C7xf8PjZ.mjs';
16
+ import { p as parseVersionFromNumericVersion, g as getVersionFileHandler, a as parseVersionFromString, b as getVersionInformationFromGit, c as getWorkspaceBannerText } from './versionFile-DSqOw-XB.mjs';
17
17
  import JSZip from 'jszip';
18
- import { r as readPublishedPackageCreatorIndex, d as determineWorkspaceIGLibraries, a as readPublishedPackageNpmManifest, b as readPublishedPackageCreatorManifest } from './dependencies-_6rsdwHk.mjs';
18
+ import { r as readPublishedPackageCreatorIndex, d as determineWorkspaceIGLibraries, a as readPublishedPackageNpmManifest, b as readPublishedPackageCreatorManifest } from './dependencies-BiYItaVS.mjs';
19
19
  import { buffer } from 'node:stream/consumers';
20
20
  import 'update-notifier';
21
21
  import 'yargs/yargs';
22
22
  import 'url';
23
23
  import 'assert';
24
24
  import 'events';
25
- import 'core-js/modules/es.typed-array.set.js';
26
25
  import 'inquirer';
27
26
  import 'terser';
27
+ import 'os';
28
28
  import 'typescript';
29
- import './scripts-EvIjiH6G.mjs';
29
+ import './scripts-Bfojy_uD.mjs';
30
30
  import 'typedoc';
31
31
  import 'source-map-js';
32
32
  import 'ajv';
33
- import 'os';
34
33
  import 'simple-git';
35
34
 
36
35
  const buildArchiveFromPublishedPackage = (location, manifest, creatorPackage)=>{
@@ -204,7 +203,7 @@ const synchronizeDependencies = async (workspaceLocation, creatorPackage, sessio
204
203
  for (const libraryLocation of libraries){
205
204
  const libraryManifest = readPublishedPackageNpmManifest(libraryLocation);
206
205
  const libraryCreatorPackage = readPublishedPackageCreatorManifest(libraryLocation);
207
- if (libraryCreatorPackage === undefined || libraryManifest.main === undefined || libraryCreatorPackage.Package === (creatorPackage == null ? void 0 : creatorPackage.Package)) {
206
+ if (libraryCreatorPackage === undefined || libraryManifest.main === undefined || libraryCreatorPackage.Package === creatorPackage?.Package) {
208
207
  continue;
209
208
  }
210
209
  const libraryVersion = PackageVersion.extractFromLine(libraryManifest.version);
@@ -303,7 +302,7 @@ const execAsync = promisify(exec);
303
302
  const releaseFolder = async (options)=>{
304
303
  const workspace = options.workspace;
305
304
  const location = options.directory;
306
- const { write: writeVersionFile, reset: resetVersionFile } = getVersionFileHandler(location);
305
+ const versionFile = getVersionFileHandler(location);
307
306
  const packageDescription = readPackageCreatorManifest(location);
308
307
  const fullPackageName = packageDescription.Package;
309
308
  const reporter = options.reporter ?? createPackageScopedReporter(consoleReporter, packageDescription.Package);
@@ -376,7 +375,9 @@ const releaseFolder = async (options)=>{
376
375
  }
377
376
  } else {
378
377
  const gitVersionInformation = await getVersionInformationFromGit(workspace, location);
379
- writeVersionFile(fullPackageName, newVersion);
378
+ if (versionFile.exists) {
379
+ versionFile.write(fullPackageName, newVersion);
380
+ }
380
381
  const bannerText = sharedPackageJson !== undefined ? getWorkspaceBannerText(sharedPackageJson) : undefined;
381
382
  await buildFolders({
382
383
  ...options,
@@ -403,9 +404,8 @@ const releaseFolder = async (options)=>{
403
404
  }
404
405
  }
405
406
  if (readPackageAnimationList(location).length > 0) {
406
- var _workspaceManifest_dependencies;
407
407
  const workspaceManifest = readWorkspaceNpmManifest(workspace);
408
- if (!((_workspaceManifest_dependencies = workspaceManifest.dependencies) == null ? void 0 : _workspaceManifest_dependencies["@intelligentgraphics/3d.ig.gfx.standard"])) {
408
+ if (!workspaceManifest.dependencies?.["@intelligentgraphics/3d.ig.gfx.standard"]) {
409
409
  const install = await options.prompter.confirm(`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?`);
410
410
  if (install) {
411
411
  await execAsync(`npm install @intelligentgraphics/3d.ig.gfx.standard`, {
@@ -463,7 +463,7 @@ const releaseFolder = async (options)=>{
463
463
  }
464
464
  }
465
465
  } catch (err) {
466
- resetVersionFile();
466
+ versionFile.reset();
467
467
  throw err;
468
468
  }
469
469
  if (newVersion.buildNumber >= 100 && !options.pushOnly) {
@@ -478,4 +478,4 @@ const releaseFolder = async (options)=>{
478
478
  };
479
479
 
480
480
  export { releaseFolder };
481
- //# sourceMappingURL=index-CLoWLYI6.mjs.map
481
+ //# sourceMappingURL=index-BoGrZubW.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-BoGrZubW.mjs","sources":["../src/commands/publish/zip.ts","../src/lib/assetServiceSessionManager.ts","../src/lib/dependencySync.ts","../src/commands/publish/index.ts"],"sourcesContent":["import JSZip from \"jszip\";\nimport * as path from \"path\";\nimport * as fs from \"fs\";\n\nimport { isErrorENOENT } from \"../../lib/error\";\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\";\nimport { Reporter } from \"@intelligentgraphics/ig.gfx.tools.core\";\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\treporter: Reporter,\n\tpackageLocation: PackageLocation,\n\tdata: CreatorPackage,\n\tbinDir: string,\n\tminified = true,\n) => {\n\tconst { domain } = parseCreatorPackageName(data);\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\treporter.log(`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\treporter.log(\n\t\t\t\t\"Setting script RunTime to false because of script type\",\n\t\t\t);\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\treporter.log(\n\t\t\t\t\"Setting script RunTime to true because of script type\",\n\t\t\t);\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\tconst libFilePath = minified\n\t\t\t? path.join(binDir, `${data.Package}.min.js`)\n\t\t\t: path.join(binDir, `${data.Package}.js`);\n\n\t\tlibFile = fs.readFileSync(libFilePath, {\n\t\t\tencoding: \"utf8\",\n\t\t});\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\tarchive.file(`${data.Package}.js`, library);\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\treporter.error(`Script directory \"${directory}\" does not exist`);\n\t\t}\n\t}\n\n\treturn archive;\n};\n","import { AssetService } from \"@intelligentgraphics/ig.gfx.tools.core\";\n\nexport interface AssetServiceSessionManager {\n\tgetBasicsSession: () => Promise<AssetService.Session>;\n\tgetTargetSession: () => AssetService.Session;\n\tdestroy: () => Promise<void>;\n}\n\nexport const createAssetServiceSessionManager = async (\n\tparams: AssetService.SessionStartParams,\n): Promise<AssetServiceSessionManager> => {\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","import {\n\tWorkspaceLocation,\n\tCreatorPackage,\n\tAssetService,\n\tdetermineWorkspaceIGLibraries,\n\treadPublishedPackageNpmManifest,\n\treadPublishedPackageCreatorManifest,\n\tReporter,\n} from \"@intelligentgraphics/ig.gfx.tools.core\";\nimport { buildArchiveFromPublishedPackage } from \"../commands/publish/zip\";\nimport { AssetServiceSessionManager } from \"./assetServiceSessionManager\";\nimport { PackageVersion } from \"./packageVersion\";\nimport { parseVersionFromNumericVersion } from \"./parseVersion\";\nimport { Prompter, PrompterOption } from \"./prompter\";\nimport { Readable } from \"node:stream\";\n\nexport const synchronizeDependencies = async (\n\tworkspaceLocation: WorkspaceLocation,\n\tcreatorPackage: CreatorPackage | undefined,\n\tsessionManager: AssetServiceSessionManager,\n\tprompter: Prompter,\n\treporter: Reporter,\n\tlogUpToDate: boolean = false,\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\treporter.log(\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\n\t\t\tif (logUpToDate) {\n\t\t\t\treporter.log(\n\t\t\t\t\t`Package ${\n\t\t\t\t\t\tlibraryCreatorPackage.Package\n\t\t\t\t\t} is already uploaded with the required version ${libraryVersion.toVersionString(\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\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\treporter.log(\n\t\t\t`Uploading package ${libraryCreatorPackage.Package} with version ${newVersionString} to ${session.domain}.${session.subDomain}`,\n\t\t);\n\n\t\tawait AssetService.uploadPackageFromBuffer(\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\tawait archive.generateAsync({ type: \"nodebuffer\" }),\n\t\t);\n\t}\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\tconsoleReporter,\n\tcreatePackageScopedReporter,\n\tisErrorEACCES,\n\tisErrorEPERM,\n\tReporter,\n\twritePackageCreatorManifest,\n} from \"@intelligentgraphics/ig.gfx.tools.core\";\n\nimport {\n\tgetPackageReleasesDirectory,\n\tPackageLocation,\n\tparseCreatorPackageName,\n\treadPackageAnimationList,\n\treadPackageCreatorManifest,\n} from \"../../lib/package\";\nimport {\n\tgetWorkspaceOutputPath,\n\treadWorkspaceNpmManifest,\n} from \"../../lib/workspace\";\nimport { getVersionInformationFromGit } from \"../../lib/git\";\nimport { getWorkspaceBannerText } from \"../../lib/banner\";\nimport { parseVersionFromString } from \"../../lib/parseVersion\";\nimport { getVersionFileHandler } from \"../../lib/versionFile\";\nimport { isErrorENOENT } from \"../../lib/error\";\nimport { Prompter } from \"../../lib/prompter\";\nimport { PackageVersion } from \"../../lib/packageVersion\";\nimport { BuildFoldersOptions, buildFolders } from \"../build\";\nimport { buildArchiveFromPackage } from \"./zip\";\nimport { createAssetServiceSessionManager } from \"../../lib/assetServiceSessionManager\";\nimport { synchronizeDependencies } from \"../../lib/dependencySync\";\nimport { buffer } from \"node:stream/consumers\";\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\treporter?: Reporter;\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 versionFile = getVersionFileHandler(location);\n\n\tconst packageDescription = readPackageCreatorManifest(location);\n\tconst fullPackageName = packageDescription.Package;\n\n\tconst reporter =\n\t\toptions.reporter ??\n\t\tcreatePackageScopedReporter(\n\t\t\tconsoleReporter,\n\t\t\tpackageDescription.Package,\n\t\t);\n\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\t// if (sharedPackageJson !== undefined) {\n\t// \treporter.log(\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\tif (versionFile.exists) {\n\t\t\t\tversionFile.write(fullPackageName, newVersion);\n\t\t\t}\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\tpreparedReporter: reporter,\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\treporter.log(`Creating zip file`);\n\n\t\t\tconst archive = await buildArchiveFromPackage(\n\t\t\t\treporter,\n\t\t\t\tlocation,\n\t\t\t\tpackageDescription,\n\t\t\t\tbinDir,\n\t\t\t\toptions.minimize,\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\treporter.log(\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\treporter.log(`Opening connection to IG.Asset.Server`);\n\n\t\t\tconst sessionManager = await createAssetServiceSessionManager({\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\ttry {\n\t\t\t\t\t\tawait synchronizeDependencies(\n\t\t\t\t\t\t\tworkspace,\n\t\t\t\t\t\t\tpackageDescription,\n\t\t\t\t\t\t\tsessionManager,\n\t\t\t\t\t\t\toptions.prompter,\n\t\t\t\t\t\t\treporter,\n\t\t\t\t\t\t);\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\treporter.error(\n\t\t\t\t\t\t\t`Failed to synchronize dependencies for ${packageDescription.Package}`,\n\t\t\t\t\t\t\terr,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treporter.log(\n\t\t\t\t\t`Uploading package to ${publishDomain}.${publishSubdomain}`,\n\t\t\t\t);\n\n\t\t\t\tawait AssetService.uploadPackageFromBuffer(\n\t\t\t\t\tsessionManager.getTargetSession(),\n\t\t\t\t\tassetServerPackageDetails,\n\t\t\t\t\tawait buffer(uploadable.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\treporter.error(\n\t\t\t\t\t\t`Failed to close IG.Asset.Server session(s)`,\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}\n\t} catch (err) {\n\t\tversionFile.reset();\n\t\tthrow err;\n\t}\n\n\tif (newVersion.buildNumber >= 100 && !options.pushOnly) {\n\t\treporter.error(\"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"],"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","reporter","packageLocation","data","binDir","minified","domain","parseCreatorPackageName","scriptDirectories","scriptsDir","log","push","readPackageCreatorManifest","RunTime","includes","Type","writePackageCreatorManifest","libFile","libFilePath","readFileSync","encoding","err","isErrorENOENT","library","date","Date","now","getFullYear","creatorIndex","readPackageCreatorIndex","directory","error","createAssetServiceSessionManager","params","targetSession","AssetService","basicsSession","getBasicsSession","subDomain","getTargetSession","destroy","synchronizeDependencies","workspaceLocation","sessionManager","prompter","logUpToDate","libraries","determineWorkspaceIGLibraries","length","rawUploadedPackages","uploadedPackages","map","entry","version","parseVersionFromNumericVersion","numericVersion","Error","buildNumber","preRelease","type","libraryLocation","libraryManifest","readPublishedPackageNpmManifest","libraryCreatorPackage","readPublishedPackageCreatorManifest","libraryVersion","PackageVersion","extractFromLine","uploadedPackageInBasics","uploadedPackageInTarget","uploadedPackage","scope","support","validInBasics","isLesserThan","validInTarget","toVersionString","possibleTargets","value","name","libraryVersionString","uploadTargetScope","ask","message","options","default","newVersionString","session","generateAsync","execAsync","promisify","exec","releaseFolder","workspace","versionFile","getVersionFileHandler","packageDescription","fullPackageName","createPackageScopedReporter","consoleReporter","subdomain","publishDomain","publishSubdomain","sharedPackageJson","readWorkspaceNpmManifest","newVersion","parseVersionFromString","Version","outDir","getWorkspaceOutputPath","mkdir","recursive","assetServerPackageDetails","packageNameWithVersion","versionWithoutPrelease","clone","zipFilePath","uploadable","getStream","pushOnly","zipFileExists","stat","catch","Promise","reject","gitVersionInformation","getVersionInformationFromGit","exists","write","bannerText","getWorkspaceBannerText","buildFolders","packages","banner","text","commit","commitDirty","dirty","preparedReporter","rm","readPackageAnimationList","workspaceManifest","dependencies","install","confirm","cwd","minimize","zipOutputStream","createWriteStream","pipeline","generateNodeStream","isErrorEACCES","isErrorEPERM","noUpload","authentication","url","service","address","skipDependencies","buffer","reset","zipFileName","releasesPath","getPackageReleasesDirectory"],"mappings":"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"}
@@ -2,9 +2,9 @@ import * as path from 'path';
2
2
  import * as fs from 'fs';
3
3
  import glob from 'glob';
4
4
  import * as os from 'os';
5
- import { d as determineWorkspaceIGLibraries, a as readPublishedPackageNpmManifest } from './dependencies-_6rsdwHk.mjs';
5
+ import { d as determineWorkspaceIGLibraries, a as readPublishedPackageNpmManifest } from './dependencies-BiYItaVS.mjs';
6
6
  import 'write-pkg';
7
- import { b as readWorkspaceNpmManifest, m as getWorkspaceLibPath } from './cli-RWjcRDQ7.mjs';
7
+ import { b as readWorkspaceNpmManifest, m as getWorkspaceLibPath } from './cli-CuiqZ39_.mjs';
8
8
  import 'node:path';
9
9
  import 'node:fs';
10
10
  import 'axios';
@@ -14,7 +14,6 @@ import 'yargs/yargs';
14
14
  import 'url';
15
15
  import 'assert';
16
16
  import 'events';
17
- import 'core-js/modules/es.typed-array.set.js';
18
17
  import 'util';
19
18
  import 'inquirer';
20
19
 
@@ -64,4 +63,4 @@ const executePostInstall = (workspace)=>{
64
63
  };
65
64
 
66
65
  export { executePostInstall };
67
- //# sourceMappingURL=postinstall-DlYP6BrQ.mjs.map
66
+ //# sourceMappingURL=postinstall-CbMUz2zy.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"postinstall-DlYP6BrQ.mjs","sources":["../src/commands/postinstall.ts"],"sourcesContent":["import * as path from \"path\";\nimport * as fs from \"fs\";\nimport glob from \"glob\";\nimport * as os from \"os\";\n\nimport {\n\tgetWorkspaceLibPath,\n\treadWorkspaceNpmManifest,\n\tWorkspaceLocation,\n} from \"../lib/workspace\";\nimport { readPublishedPackageNpmManifest } from \"../lib/publishedPackage\";\nimport { determineWorkspaceIGLibraries } from \"../lib/dependencies\";\n\nconst DEFINITION_FILE_HINT =\n\t\"// This file is automatically managed by the ig.gfx.packager.\";\n\nexport const executePostInstall = (workspace: WorkspaceLocation) => {\n\tconst manifest = readWorkspaceNpmManifest(workspace);\n\n\tconst libPath = getWorkspaceLibPath(workspace);\n\n\tfs.mkdirSync(libPath, { recursive: true });\n\n\tconst existingDefinitions = glob.sync(\"**/*.d.ts\", {\n\t\tcwd: libPath,\n\t\tabsolute: true,\n\t});\n\n\t// delete all existing definition files that are managed by the packager.\n\t// we'll recreate all needed definitions in the next step.\n\tfor (const existingDefinitionPath of existingDefinitions) {\n\t\tconst content = fs.readFileSync(existingDefinitionPath, {\n\t\t\tencoding: \"utf-8\",\n\t\t});\n\n\t\tif (content.startsWith(DEFINITION_FILE_HINT)) {\n\t\t\tfs.rmSync(existingDefinitionPath);\n\t\t}\n\t}\n\n\tconst libraryLocations = determineWorkspaceIGLibraries(workspace);\n\n\tfor (const location of libraryLocations) {\n\t\tconst manifest = readPublishedPackageNpmManifest(location);\n\n\t\tfor (const existingDefinitionPath of existingDefinitions) {\n\t\t\tconst basename = path.basename(existingDefinitionPath);\n\n\t\t\tif (basename === manifest.types) {\n\t\t\t\tfs.rmSync(existingDefinitionPath, { force: true });\n\t\t\t}\n\t\t}\n\n\t\t// add a hint to the top of the file so we know it's managed by the packager.\n\n\t\tconst content = [\n\t\t\tDEFINITION_FILE_HINT,\n\t\t\t`// This is a reference to version ${manifest.version}.`,\n\t\t\t`// Run \"npm install\" to install the types if they are missing or not up to date.`,\n\t\t\t`/// <reference types=\"${manifest.name}\" />`,\n\t\t].join(os.EOL);\n\n\t\tfs.writeFileSync(\n\t\t\tpath.join(getWorkspaceLibPath(workspace), manifest.types),\n\t\t\tcontent,\n\t\t\t{\n\t\t\t\tencoding: \"utf8\",\n\t\t\t},\n\t\t);\n\t}\n};\n"],"names":["DEFINITION_FILE_HINT","executePostInstall","workspace","readWorkspaceNpmManifest","libPath","getWorkspaceLibPath","fs","mkdirSync","recursive","existingDefinitions","glob","sync","cwd","absolute","existingDefinitionPath","content","readFileSync","encoding","startsWith","rmSync","libraryLocations","determineWorkspaceIGLibraries","location","manifest","readPublishedPackageNpmManifest","basename","path","types","force","version","name","join","os","EOL","writeFileSync"],"mappings":";;;;;;;;;;;;;;;;;;;;AAaA,MAAMA,oBACL,GAAA,+DAAA,CAAA;AAEM,MAAMC,qBAAqB,CAACC,SAAAA,GAAAA;AAClC,IAAiBC,wBAAyBD,CAAAA,SAAAA,EAAAA;AAE1C,IAAA,MAAME,UAAUC,mBAAoBH,CAAAA,SAAAA,CAAAA,CAAAA;IAEpCI,EAAGC,CAAAA,SAAS,CAACH,OAAS,EAAA;QAAEI,SAAW,EAAA,IAAA;AAAK,KAAA,CAAA,CAAA;AAExC,IAAA,MAAMC,mBAAsBC,GAAAA,IAAAA,CAAKC,IAAI,CAAC,WAAa,EAAA;QAClDC,GAAKR,EAAAA,OAAAA;QACLS,QAAU,EAAA,IAAA;AACX,KAAA,CAAA,CAAA;;;IAIA,KAAK,MAAMC,0BAA0BL,mBAAqB,CAAA;AACzD,QAAA,MAAMM,OAAUT,GAAAA,EAAAA,CAAGU,YAAY,CAACF,sBAAwB,EAAA;YACvDG,QAAU,EAAA,OAAA;AACX,SAAA,CAAA,CAAA;QAEA,IAAIF,OAAAA,CAAQG,UAAU,CAAClB,oBAAuB,CAAA,EAAA;AAC7CM,YAAAA,EAAAA,CAAGa,MAAM,CAACL,sBAAAA,CAAAA,CAAAA;AACX,SAAA;AACD,KAAA;AAEA,IAAA,MAAMM,mBAAmBC,6BAA8BnB,CAAAA,SAAAA,CAAAA,CAAAA;IAEvD,KAAK,MAAMoB,YAAYF,gBAAkB,CAAA;AACxC,QAAA,MAAMG,WAAWC,+BAAgCF,CAAAA,QAAAA,CAAAA,CAAAA;QAEjD,KAAK,MAAMR,0BAA0BL,mBAAqB,CAAA;YACzD,MAAMgB,QAAAA,GAAWC,IAAKD,CAAAA,QAAQ,CAACX,sBAAAA,CAAAA,CAAAA;YAE/B,IAAIW,QAAAA,KAAaF,QAASI,CAAAA,KAAK,EAAE;gBAChCrB,EAAGa,CAAAA,MAAM,CAACL,sBAAwB,EAAA;oBAAEc,KAAO,EAAA,IAAA;AAAK,iBAAA,CAAA,CAAA;AACjD,aAAA;AACD,SAAA;;AAIA,QAAA,MAAMb,OAAU,GAAA;AACff,YAAAA,oBAAAA;AACA,YAAA,CAAC,kCAAkC,EAAEuB,QAAAA,CAASM,OAAO,CAAC,CAAC,CAAC;AACxD,YAAA,CAAC,gFAAgF,CAAC;AAClF,YAAA,CAAC,sBAAsB,EAAEN,QAAAA,CAASO,IAAI,CAAC,IAAI,CAAC;SAC5C,CAACC,IAAI,CAACC,EAAAA,CAAGC,GAAG,CAAA,CAAA;QAEb3B,EAAG4B,CAAAA,aAAa,CACfR,IAAAA,CAAKK,IAAI,CAAC1B,oBAAoBH,SAAYqB,CAAAA,EAAAA,QAAAA,CAASI,KAAK,CAAA,EACxDZ,OACA,EAAA;YACCE,QAAU,EAAA,MAAA;AACX,SAAA,CAAA,CAAA;AAEF,KAAA;AACD;;;;"}
1
+ {"version":3,"file":"postinstall-CbMUz2zy.mjs","sources":["../src/commands/postinstall.ts"],"sourcesContent":["import * as path from \"path\";\nimport * as fs from \"fs\";\nimport glob from \"glob\";\nimport * as os from \"os\";\n\nimport {\n\tgetWorkspaceLibPath,\n\treadWorkspaceNpmManifest,\n\tWorkspaceLocation,\n} from \"../lib/workspace\";\nimport { readPublishedPackageNpmManifest } from \"../lib/publishedPackage\";\nimport { determineWorkspaceIGLibraries } from \"../lib/dependencies\";\n\nconst DEFINITION_FILE_HINT =\n\t\"// This file is automatically managed by the ig.gfx.packager.\";\n\nexport const executePostInstall = (workspace: WorkspaceLocation) => {\n\tconst manifest = readWorkspaceNpmManifest(workspace);\n\n\tconst libPath = getWorkspaceLibPath(workspace);\n\n\tfs.mkdirSync(libPath, { recursive: true });\n\n\tconst existingDefinitions = glob.sync(\"**/*.d.ts\", {\n\t\tcwd: libPath,\n\t\tabsolute: true,\n\t});\n\n\t// delete all existing definition files that are managed by the packager.\n\t// we'll recreate all needed definitions in the next step.\n\tfor (const existingDefinitionPath of existingDefinitions) {\n\t\tconst content = fs.readFileSync(existingDefinitionPath, {\n\t\t\tencoding: \"utf-8\",\n\t\t});\n\n\t\tif (content.startsWith(DEFINITION_FILE_HINT)) {\n\t\t\tfs.rmSync(existingDefinitionPath);\n\t\t}\n\t}\n\n\tconst libraryLocations = determineWorkspaceIGLibraries(workspace);\n\n\tfor (const location of libraryLocations) {\n\t\tconst manifest = readPublishedPackageNpmManifest(location);\n\n\t\tfor (const existingDefinitionPath of existingDefinitions) {\n\t\t\tconst basename = path.basename(existingDefinitionPath);\n\n\t\t\tif (basename === manifest.types) {\n\t\t\t\tfs.rmSync(existingDefinitionPath, { force: true });\n\t\t\t}\n\t\t}\n\n\t\t// add a hint to the top of the file so we know it's managed by the packager.\n\n\t\tconst content = [\n\t\t\tDEFINITION_FILE_HINT,\n\t\t\t`// This is a reference to version ${manifest.version}.`,\n\t\t\t`// Run \"npm install\" to install the types if they are missing or not up to date.`,\n\t\t\t`/// <reference types=\"${manifest.name}\" />`,\n\t\t].join(os.EOL);\n\n\t\tfs.writeFileSync(\n\t\t\tpath.join(getWorkspaceLibPath(workspace), manifest.types),\n\t\t\tcontent,\n\t\t\t{\n\t\t\t\tencoding: \"utf8\",\n\t\t\t},\n\t\t);\n\t}\n};\n"],"names":["DEFINITION_FILE_HINT","executePostInstall","workspace","readWorkspaceNpmManifest","libPath","getWorkspaceLibPath","fs","mkdirSync","recursive","existingDefinitions","glob","sync","cwd","absolute","existingDefinitionPath","content","readFileSync","encoding","startsWith","rmSync","libraryLocations","determineWorkspaceIGLibraries","location","manifest","readPublishedPackageNpmManifest","basename","path","types","force","version","name","join","os","EOL","writeFileSync"],"mappings":";;;;;;;;;;;;;;;;;;;AAaA,MAAMA,oBAAAA,GACL,+DAAA;AAEM,MAAMC,qBAAqB,CAACC,SAAAA,GAAAA;AAClC,IAAiBC,wBAAAA,CAAyBD,SAAAA;AAE1C,IAAA,MAAME,UAAUC,mBAAAA,CAAoBH,SAAAA,CAAAA;IAEpCI,EAAAA,CAAGC,SAAS,CAACH,OAAAA,EAAS;QAAEI,SAAAA,EAAW;AAAK,KAAA,CAAA;AAExC,IAAA,MAAMC,mBAAAA,GAAsBC,IAAAA,CAAKC,IAAI,CAAC,WAAA,EAAa;QAClDC,GAAAA,EAAKR,OAAAA;QACLS,QAAAA,EAAU;AACX,KAAA,CAAA;;;IAIA,KAAK,MAAMC,0BAA0BL,mBAAAA,CAAqB;AACzD,QAAA,MAAMM,OAAAA,GAAUT,EAAAA,CAAGU,YAAY,CAACF,sBAAAA,EAAwB;YACvDG,QAAAA,EAAU;AACX,SAAA,CAAA;QAEA,IAAIF,OAAAA,CAAQG,UAAU,CAAClB,oBAAAA,CAAAA,EAAuB;AAC7CM,YAAAA,EAAAA,CAAGa,MAAM,CAACL,sBAAAA,CAAAA;AACX,QAAA;AACD,IAAA;AAEA,IAAA,MAAMM,mBAAmBC,6BAAAA,CAA8BnB,SAAAA,CAAAA;IAEvD,KAAK,MAAMoB,YAAYF,gBAAAA,CAAkB;AACxC,QAAA,MAAMG,WAAWC,+BAAAA,CAAgCF,QAAAA,CAAAA;QAEjD,KAAK,MAAMR,0BAA0BL,mBAAAA,CAAqB;YACzD,MAAMgB,QAAAA,GAAWC,IAAAA,CAAKD,QAAQ,CAACX,sBAAAA,CAAAA;YAE/B,IAAIW,QAAAA,KAAaF,QAAAA,CAASI,KAAK,EAAE;gBAChCrB,EAAAA,CAAGa,MAAM,CAACL,sBAAAA,EAAwB;oBAAEc,KAAAA,EAAO;AAAK,iBAAA,CAAA;AACjD,YAAA;AACD,QAAA;;AAIA,QAAA,MAAMb,OAAAA,GAAU;AACff,YAAAA,oBAAAA;AACA,YAAA,CAAC,kCAAkC,EAAEuB,QAAAA,CAASM,OAAO,CAAC,CAAC,CAAC;AACxD,YAAA,CAAC,gFAAgF,CAAC;AAClF,YAAA,CAAC,sBAAsB,EAAEN,QAAAA,CAASO,IAAI,CAAC,IAAI;SAC3C,CAACC,IAAI,CAACC,EAAAA,CAAGC,GAAG,CAAA;QAEb3B,EAAAA,CAAG4B,aAAa,CACfR,IAAAA,CAAKK,IAAI,CAAC1B,oBAAoBH,SAAAA,CAAAA,EAAYqB,QAAAA,CAASI,KAAK,CAAA,EACxDZ,OAAAA,EACA;YACCE,QAAAA,EAAU;AACX,SAAA,CAAA;AAEF,IAAA;AACD;;;;"}
@@ -3,29 +3,28 @@ import * as fs from 'fs';
3
3
  import { execSync } from 'child_process';
4
4
  import 'resolve';
5
5
  import 'write-pkg';
6
- import { b as readWorkspaceNpmManifest, d as getWorkspaceOutputPath, r as readPackageCreatorManifest, q as readPackageNpmManifest, t as writePackageNpmManifest, w as writePackageCreatorManifest, P as PACKAGE_FILE, a as readPackageCreatorIndex, I as INDEX_FILE, v as iterateWorkspacePackages } from './cli-RWjcRDQ7.mjs';
7
- import { c as createPackageScopedReporter, a as consoleReporter, b as buildFolders } from './index-B9e-vtmM.mjs';
6
+ import { b as readWorkspaceNpmManifest, d as getWorkspaceOutputPath, r as readPackageCreatorManifest, q as readPackageNpmManifest, t as writePackageNpmManifest, w as writePackageCreatorManifest, P as PACKAGE_FILE, a as readPackageCreatorIndex, I as INDEX_FILE, v as iterateWorkspacePackages } from './cli-CuiqZ39_.mjs';
7
+ import { c as createPackageScopedReporter, a as consoleReporter, b as buildFolders } from './index-B2kXo6K7.mjs';
8
8
  import 'glob';
9
9
  import 'node:path';
10
10
  import 'node:fs';
11
11
  import 'axios';
12
- import { a as parseVersionFromString, g as getVersionFileHandler, b as getVersionInformationFromGit, c as getWorkspaceBannerText } from './versionFile-C7xf8PjZ.mjs';
12
+ import { a as parseVersionFromString, g as getVersionFileHandler, b as getVersionInformationFromGit, c as getWorkspaceBannerText } from './versionFile-DSqOw-XB.mjs';
13
13
  import 'update-notifier';
14
14
  import 'yargs/yargs';
15
15
  import 'url';
16
16
  import 'assert';
17
17
  import 'events';
18
- import 'core-js/modules/es.typed-array.set.js';
19
18
  import 'util';
20
19
  import 'inquirer';
21
20
  import 'fs/promises';
22
21
  import 'terser';
22
+ import 'os';
23
23
  import 'typescript';
24
- import './scripts-EvIjiH6G.mjs';
24
+ import './scripts-Bfojy_uD.mjs';
25
25
  import 'typedoc';
26
26
  import 'source-map-js';
27
27
  import 'ajv';
28
- import 'os';
29
28
  import 'simple-git';
30
29
 
31
30
  const publishToNpm = async ({ workspace, location, version: providedVersion, dryRun, reporter: providedReporter })=>{
@@ -82,7 +81,10 @@ const publishToNpm = async ({ workspace, location, version: providedVersion, dry
82
81
  buildNumber: true
83
82
  });
84
83
  writePackageCreatorManifest(location, creatorPackage);
85
- getVersionFileHandler(location).write(creatorPackage.Package, newVersion);
84
+ const versionFile = getVersionFileHandler(location);
85
+ if (versionFile.exists) {
86
+ versionFile.write(creatorPackage.Package, newVersion);
87
+ }
86
88
  const gitVersionInformation = await getVersionInformationFromGit(workspace, location);
87
89
  const bannerText = getWorkspaceBannerText(workspaceManifest);
88
90
  await buildFolders({
@@ -137,9 +139,8 @@ const publishToNpm = async ({ workspace, location, version: providedVersion, dry
137
139
  cwd: publishDir
138
140
  });
139
141
  for (const packageLocation of iterateWorkspacePackages(workspace)){
140
- var _manifest_dependencies;
141
142
  const manifest = readPackageNpmManifest(packageLocation);
142
- if ((manifest == null ? void 0 : (_manifest_dependencies = manifest.dependencies) == null ? void 0 : _manifest_dependencies[packageJson.name]) !== undefined) {
143
+ if (manifest?.dependencies?.[packageJson.name] !== undefined) {
143
144
  manifest.dependencies[packageJson.name] = "^" + packageJson.version;
144
145
  writePackageNpmManifest(packageLocation, manifest);
145
146
  }
@@ -168,4 +169,4 @@ const copyImagesDirectory = (source, target)=>{
168
169
  };
169
170
 
170
171
  export { publishToNpm };
171
- //# sourceMappingURL=publishNpm-CEhZI6-O.mjs.map
172
+ //# sourceMappingURL=publishNpm-CrnuTwss.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publishNpm-CrnuTwss.mjs","sources":["../src/commands/publishNpm.ts"],"sourcesContent":["import * as path from \"path\";\nimport * as fs from \"fs\";\nimport { execSync } from \"child_process\";\n\nimport {\n\tconsoleReporter,\n\tcreatePackageScopedReporter,\n\tReporter,\n} from \"@intelligentgraphics/ig.gfx.tools.core\";\n\nimport { PackageVersion } from \"../lib/packageVersion\";\nimport {\n\tINDEX_FILE,\n\tPackageLocation,\n\tPACKAGE_FILE,\n\treadPackageCreatorIndex,\n\treadPackageCreatorManifest,\n\treadPackageNpmManifest,\n\twritePackageNpmManifest,\n\twritePackageCreatorManifest,\n} from \"../lib/package\";\nimport {\n\tgetWorkspaceOutputPath,\n\titerateWorkspacePackages,\n\treadWorkspaceNpmManifest,\n\tWorkspaceLocation,\n} from \"../lib/workspace\";\nimport { getVersionInformationFromGit } from \"../lib/git\";\nimport { getWorkspaceBannerText } from \"../lib/banner\";\nimport { parseVersionFromString } from \"../lib/parseVersion\";\nimport { getVersionFileHandler } from \"../lib/versionFile\";\n\nimport { buildFolders } from \"./build\";\n\nexport interface PublishToNpmSettings {\n\tworkspace: WorkspaceLocation;\n\tlocation: PackageLocation;\n\tversion: string;\n\tdryRun?: boolean;\n\treporter?: Reporter;\n}\n\nexport const publishToNpm = async ({\n\tworkspace,\n\tlocation,\n\tversion: providedVersion,\n\tdryRun,\n\treporter: providedReporter,\n}: PublishToNpmSettings) => {\n\tlet newVersion: PackageVersion;\n\ttry {\n\t\tnewVersion = parseVersionFromString(providedVersion);\n\t} catch (err) {\n\t\tthrow new Error(`Please enter a version in this format 1.0.0.100`);\n\t}\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 = undefined;\n\t} else {\n\t\tthrow new Error(\n\t\t\t`Refusing to publish a package with a build version larger than 100.`,\n\t\t);\n\t}\n\n\tconst workspaceManifest = readWorkspaceNpmManifest(workspace);\n\tconst workspaceOutputPath = getWorkspaceOutputPath(workspace);\n\tconst creatorPackage = readPackageCreatorManifest(location);\n\n\tconst reporter =\n\t\tprovidedReporter ??\n\t\tcreatePackageScopedReporter(consoleReporter, creatorPackage.Package);\n\n\tlet packageJson = readPackageNpmManifest(location);\n\n\tif (packageJson === undefined) {\n\t\tpackageJson = {\n\t\t\tname:\n\t\t\t\t\"@intelligentgraphics/3d\" +\n\t\t\t\tcreatorPackage.Package.toLowerCase(),\n\t\t\tversion: \"1.0.0\",\n\t\t\tdescription: creatorPackage.Package,\n\t\t};\n\t}\n\n\tpackageJson.version = newVersion.toVersionString({\n\t\tbuildNumber: false,\n\t});\n\tpackageJson.description = newVersion.toDescriptionString(\n\t\tcreatorPackage.Package,\n\t);\n\tpackageJson.main = `${creatorPackage.Package}.js`;\n\tpackageJson.types = `${creatorPackage.Package}.d.ts`;\n\tpackageJson.publishConfig ??= {};\n\tpackageJson.publishConfig.acccess = \"public\";\n\tpackageJson.ig = {\n\t\tscriptingLibrary: true,\n\t};\n\tpackageJson.files = undefined;\n\n\tconst publishDir = path.join(\n\t\tworkspaceOutputPath,\n\t\t\"publish\",\n\t\tcreatorPackage.Package,\n\t);\n\tfs.rmSync(publishDir, { recursive: true, force: true });\n\tfs.mkdirSync(publishDir, { recursive: true });\n\n\twritePackageNpmManifest(location, packageJson);\n\tcreatorPackage.Version = newVersion.toVersionString({ buildNumber: true });\n\twritePackageCreatorManifest(location, creatorPackage);\n\n\tconst versionFile = getVersionFileHandler(location);\n\tif (versionFile.exists) {\n\t\tversionFile.write(creatorPackage.Package, newVersion);\n\t}\n\n\tconst gitVersionInformation = await getVersionInformationFromGit(\n\t\tworkspace,\n\t\tlocation,\n\t);\n\n\tconst bannerText = getWorkspaceBannerText(workspaceManifest);\n\n\tawait buildFolders({\n\t\tworkspace,\n\t\tpackages: [location],\n\t\tminimize: true,\n\t\toutDir: getWorkspaceOutputPath(workspace),\n\t\tbanner: {\n\t\t\ttext: bannerText,\n\t\t\tcommit: gitVersionInformation.commit,\n\t\t\tcommitDirty: gitVersionInformation.dirty,\n\t\t\tversion: newVersion.toVersionString({\n\t\t\t\tbuildNumber: true,\n\t\t\t}),\n\t\t\tdate: new Date(Date.now()),\n\t\t},\n\t});\n\n\tfs.copyFileSync(\n\t\tpath.join(\n\t\t\tgetWorkspaceOutputPath(workspace),\n\t\t\t`${creatorPackage.Package}.d.ts`,\n\t\t),\n\t\tpath.join(publishDir, `${creatorPackage.Package}.d.ts`),\n\t);\n\tfs.copyFileSync(\n\t\tpath.join(\n\t\t\tgetWorkspaceOutputPath(workspace),\n\t\t\t`${creatorPackage.Package}.min.js`,\n\t\t),\n\t\tpath.join(publishDir, `${creatorPackage.Package}.js`),\n\t);\n\n\tfs.copyFileSync(\n\t\tpath.join(location.manifestDir, \"package.json\"),\n\t\tpath.join(publishDir, \"package.json\"),\n\t);\n\n\tfs.writeFileSync(\n\t\tpath.join(publishDir, PACKAGE_FILE),\n\t\tJSON.stringify(creatorPackage, null, 2),\n\t);\n\n\tconst index = readPackageCreatorIndex(location);\n\n\tif (index !== undefined) {\n\t\tfs.writeFileSync(\n\t\t\tpath.join(publishDir, INDEX_FILE),\n\t\t\tJSON.stringify(index),\n\t\t);\n\t}\n\n\tconst readmeName = fs\n\t\t.readdirSync(location.path)\n\t\t.find((name) => name.toLowerCase() === \"readme.md\");\n\n\tif (readmeName !== undefined) {\n\t\tfs.copyFileSync(\n\t\t\tpath.join(location.path, readmeName),\n\t\t\tpath.join(publishDir, readmeName),\n\t\t);\n\t}\n\n\tif (creatorPackage.Package === \"IG.GFX.Standard\") {\n\t\tconst source = path.join(location.path, \"Images\");\n\t\tconst target = path.join(publishDir, \"Images\");\n\t\tcopyImagesDirectory(source, target);\n\t}\n\n\tconst npmPublishArgs: string[] = [];\n\n\tif (dryRun) {\n\t\tnpmPublishArgs.push(\"--dry-run\");\n\t}\n\n\tif (newVersion.preRelease) {\n\t\tnpmPublishArgs.push(\"--tag\", \"next\");\n\t}\n\n\treporter.log(\n\t\t`Publishing to npm with version ${packageJson.version} using tag ${\n\t\t\tnewVersion.preRelease ? \"next\" : \"latest\"\n\t\t}`,\n\t);\n\n\texecSync([\"npm\", \"publish\", ...npmPublishArgs].join(\" \"), {\n\t\tstdio: \"inherit\",\n\t\tencoding: \"utf8\",\n\t\tcwd: publishDir,\n\t});\n\n\tfor (const packageLocation of iterateWorkspacePackages(workspace)) {\n\t\tconst manifest = readPackageNpmManifest(packageLocation);\n\n\t\tif (manifest?.dependencies?.[packageJson.name] !== undefined) {\n\t\t\tmanifest.dependencies[packageJson.name] = \"^\" + packageJson.version;\n\t\t\twritePackageNpmManifest(packageLocation, manifest);\n\t\t}\n\t}\n};\n\nconst copyImagesDirectory = (source: string, target: string) => {\n\tfs.mkdirSync(target, { recursive: true });\n\n\tfor (const name of fs.readdirSync(source)) {\n\t\tconst sourcePath = path.join(source, name);\n\t\tconst targetPath = path.join(target, name);\n\n\t\tif (fs.statSync(sourcePath).isDirectory()) {\n\t\t\tcopyImagesDirectory(sourcePath, targetPath);\n\t\t} else {\n\t\t\tif (\n\t\t\t\t[\".png\", \".jpg\", \".jpeg\", \".gif\"].includes(path.extname(name))\n\t\t\t) {\n\t\t\t\tfs.copyFileSync(sourcePath, targetPath);\n\t\t\t}\n\t\t}\n\t}\n};\n"],"names":["publishToNpm","workspace","location","version","providedVersion","dryRun","reporter","providedReporter","newVersion","parseVersionFromString","err","Error","buildNumber","preRelease","type","undefined","workspaceManifest","readWorkspaceNpmManifest","workspaceOutputPath","getWorkspaceOutputPath","creatorPackage","readPackageCreatorManifest","createPackageScopedReporter","consoleReporter","Package","packageJson","readPackageNpmManifest","name","toLowerCase","description","toVersionString","toDescriptionString","main","types","publishConfig","acccess","ig","scriptingLibrary","files","publishDir","path","join","fs","rmSync","recursive","force","mkdirSync","writePackageNpmManifest","Version","writePackageCreatorManifest","versionFile","getVersionFileHandler","exists","write","gitVersionInformation","getVersionInformationFromGit","bannerText","getWorkspaceBannerText","buildFolders","packages","minimize","outDir","banner","text","commit","commitDirty","dirty","date","Date","now","copyFileSync","manifestDir","writeFileSync","PACKAGE_FILE","JSON","stringify","index","readPackageCreatorIndex","INDEX_FILE","readmeName","readdirSync","find","source","target","copyImagesDirectory","npmPublishArgs","push","log","execSync","stdio","encoding","cwd","packageLocation","iterateWorkspacePackages","manifest","dependencies","sourcePath","targetPath","statSync","isDirectory","includes","extname"],"mappings":"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"}