@intelligentgraphics/ig.gfx.packager 3.0.20 → 3.0.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. package/build/bin.mjs +1 -1
  2. package/build/{cli-c7da3faf.mjs → cli-f6586dd5.mjs} +91 -93
  3. package/build/cli-f6586dd5.mjs.map +1 -0
  4. package/build/{dependencies-93832b40.mjs → dependencies-e2aa1797.mjs} +2 -2
  5. package/build/{dependencies-93832b40.mjs.map → dependencies-e2aa1797.mjs.map} +1 -1
  6. package/build/{generateIndex-056000f0.mjs → generateIndex-019c6946.mjs} +3 -3
  7. package/build/{generateIndex-056000f0.mjs.map → generateIndex-019c6946.mjs.map} +1 -1
  8. package/build/{generateParameterType-8584bc43.mjs → generateParameterType-ae69726a.mjs} +4 -4
  9. package/build/{generateParameterType-8584bc43.mjs.map → generateParameterType-ae69726a.mjs.map} +1 -1
  10. package/build/{index-41cb0257.mjs → index-39c79102.mjs} +18 -19
  11. package/build/index-39c79102.mjs.map +1 -0
  12. package/build/index-3d1291e7.mjs +1120 -0
  13. package/build/index-3d1291e7.mjs.map +1 -0
  14. package/build/{postinstall-eb863946.mjs → postinstall-3328545c.mjs} +3 -3
  15. package/build/{postinstall-eb863946.mjs.map → postinstall-3328545c.mjs.map} +1 -1
  16. package/build/{publishNpm-0af8ba37.mjs → publishNpm-532e17a0.mjs} +12 -6
  17. package/build/publishNpm-532e17a0.mjs.map +1 -0
  18. package/build/scripts-7ed8dff6.mjs.map +1 -1
  19. package/build/{versionFile-4f3df7f1.mjs → versionFile-644c7ff8.mjs} +6 -10
  20. package/build/{versionFile-4f3df7f1.mjs.map → versionFile-644c7ff8.mjs.map} +1 -1
  21. package/lib/lib.mjs +581 -175
  22. package/package.json +7 -6
  23. package/readme.md +11 -0
  24. package/build/cli-c7da3faf.mjs.map +0 -1
  25. package/build/index-41cb0257.mjs.map +0 -1
  26. package/build/index-7d81fa31.mjs +0 -706
  27. package/build/index-7d81fa31.mjs.map +0 -1
  28. package/build/publishNpm-0af8ba37.mjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-7d81fa31.mjs","sources":["../../tools.core/build/log.mjs","../src/commands/build/tsc.ts","../src/commands/build/docs.ts","../src/lib/toposort.ts","../src/commands/build/animation.schema.ts","../src/commands/build/index.ts"],"sourcesContent":["const logPackageMessage = (name, step, index, total)=>{\n const numLength = total === undefined ? undefined : total.toString().length;\n const indexString = total === undefined || total < 2 ? \"\" : `${index.toString().padStart(numLength, \"0\")}/${total} `;\n const identifierString = `${indexString}${name.padEnd(15)}`;\n console.log(`${identifierString} >> ${step}`);\n};\n\nexport { logPackageMessage };\n//# sourceMappingURL=log.mjs.map\n","import ts from \"typescript\";\nimport * as path from \"path\";\nimport * as fs from \"fs\";\n\nimport { PackageLocation } from \"../../lib/package\";\n\nimport { FolderBuilder } from \".\";\nimport { getPackageTypescriptFiles } from \"../../lib/scripts\";\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 build: FolderBuilder = async (\n\tlocation: PackageLocation,\n\toutputDir: string,\n) => {\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: 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\tconst host = ts.createCompilerHost(compilerOptions);\n\thost.getCurrentDirectory = () => location.scriptsDir;\n\n\tlet js: string | undefined;\n\tlet definitions: string | undefined;\n\n\thost.writeFile = (fileName, data, writeByteOrderMark) => {\n\t\tif (fileName.endsWith(\".js\")) {\n\t\t\tjs = data;\n\t\t} else if (fileName.endsWith(\".d.ts\")) {\n\t\t\tdefinitions = data;\n\t\t}\n\t};\n\n\tconst files = getPackageTypescriptFiles(location);\n\n\tif (files.length === 0) {\n\t\tthrow new Error(\n\t\t\t`Expected typescript files to exist when building a package. Packages only consisting of animation jsons do not need to be built.`,\n\t\t);\n\t}\n\n\tconst programOptions: ts.CreateProgramOptions = {\n\t\trootNames: files,\n\t\toptions: compilerOptions,\n\t\thost,\n\t};\n\n\tconst program = ts.createProgram(programOptions);\n\tconst emitResult = program.emit();\n\tconst allDiagnostics = ts.getPreEmitDiagnostics(program);\n\n\tif (!emitResult.emitSkipped) {\n\t\tif (allDiagnostics.length > 0) {\n\t\t\tconsole.log(allDiagnostics.map(createErrorMessage).join(\"\\n\"));\n\t\t}\n\n\t\tif (js === undefined || definitions === undefined) {\n\t\t\tthrow new Error(`Unexpected: no js or definitions were created`);\n\t\t}\n\n\t\treturn { js, definitions };\n\t}\n\n\tconst error = allDiagnostics.map(createErrorMessage).join(\"\\n\");\n\n\tthrow new Error(error);\n};\n\nconst createErrorMessage = (diagnostic: ts.Diagnostic) => {\n\tif (!diagnostic.file) {\n\t\treturn `${ts.flattenDiagnosticMessageText(\n\t\t\tdiagnostic.messageText,\n\t\t\t\"\\n\",\n\t\t)}`;\n\t}\n\n\tconst { line, character } = diagnostic.file.getLineAndCharacterOfPosition(\n\t\tdiagnostic.start!,\n\t);\n\n\tconst message = ts.flattenDiagnosticMessageText(\n\t\tdiagnostic.messageText,\n\t\t\"\\n\",\n\t);\n\n\treturn `${diagnostic.file.fileName} (${line + 1},${\n\t\tcharacter + 1\n\t}): ${message}`;\n};\n","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","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\";\nimport * as terser from \"terser\";\n\nimport { logPackageMessage } from \"../../lib/log\";\nimport { build as tscBuild } from \"./tsc\";\nimport { generateDocs } from \"./docs\";\nimport {\n\tPackageLocation,\n\treadPackageAnimationList,\n\treadPackageCreatorManifest,\n\treadPackageNpmManifest,\n} from \"../../lib/package\";\nimport { WorkspaceLocation } from \"../../lib/workspace\";\nimport { getPackageTypescriptFiles } from \"../../lib/scripts\";\nimport { toposort } from \"../../lib/toposort\";\nimport { PackageJSON } from \"../../lib/packageJSON\";\nimport Ajv, { ValidateFunction } from \"ajv\";\nimport animationSchema from \"./animation.schema\";\n\nexport interface BannerOptions {\n\ttext: string | undefined;\n\tversion: string | undefined;\n\tcommit: string | undefined;\n\tcommitDirty: boolean | undefined;\n\tdate: Date | undefined;\n}\n\nexport interface BuildFoldersOptions {\n\tworkspace: WorkspaceLocation;\n\tpackages: PackageLocation[];\n\toutDir?: string;\n\tminimize: boolean;\n\tbanner?: BannerOptions;\n\tclean?: boolean;\n\tdocs?: boolean;\n}\n\nexport interface BuildFolderOptions extends BuildFoldersOptions {\n\toutFile: string;\n}\n\nexport interface FolderBuilderResult {\n\tjs: string;\n\tdefinitions: string;\n}\n\nexport type FolderBuilder = (\n\tlocation: PackageLocation,\n\toutputDir: string,\n) => Promise<FolderBuilderResult>;\n\ntype FolderData = {\n\tlocation: PackageLocation;\n\tdata?: PackageJSON;\n};\n\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\nexport const buildFolders = async (options: BuildFoldersOptions) => {\n\tif (options.outDir !== undefined && options.clean) {\n\t\tfs.rmSync(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\tfor (const location of sortedPackages) {\n\t\tconst hasTypescript = getPackageTypescriptFiles(location).length > 0;\n\n\t\tensureTsConfig(location);\n\n\t\tconst data = readPackageCreatorManifest(location);\n\n\t\tconst logStep = (step: string) =>\n\t\t\tlogPackageMessage(data.Package, step, index, folders.length);\n\n\t\tconst outputDirectory = options.outDir || location.scriptsDir;\n\t\tfs.mkdirSync(outputDirectory, { recursive: true });\n\n\t\tlet buildResult: {\n\t\t\tjs: string;\n\t\t\tdefinitions?: string;\n\t\t};\n\n\t\tif (hasTypescript) {\n\t\t\tlogStep(\"Compiling typescript to javascript\");\n\t\t\tbuildResult = await tscBuild(location, outputDirectory);\n\t\t} else {\n\t\t\tbuildResult = {\n\t\t\t\tjs: \"\",\n\t\t\t};\n\t\t}\n\n\t\tconst banner = options.banner\n\t\t\t? createBannerComment(options.banner)\n\t\t\t: undefined;\n\n\t\tif (banner) {\n\t\t\tbuildResult.js = banner + \"\\n\" + buildResult.js;\n\t\t\tif (buildResult.definitions !== undefined) {\n\t\t\t\tbuildResult.definitions =\n\t\t\t\t\tbanner + \"\\n\" + buildResult.definitions;\n\t\t\t}\n\t\t}\n\n\t\tconst animations = new Map<string, string>();\n\n\t\tfor (const scriptFilePath of readPackageAnimationList(location)) {\n\t\t\tconst content = fs.readFileSync(scriptFilePath, {\n\t\t\t\tencoding: \"utf8\",\n\t\t\t})!;\n\n\t\t\tlet data: { Id: string; $schema?: string };\n\n\t\t\ttry {\n\t\t\t\tdata = JSON.parse(content);\n\t\t\t} catch (err) {\n\t\t\t\tconst relativePath = path.relative(\n\t\t\t\t\toptions.workspace.path,\n\t\t\t\t\tscriptFilePath,\n\t\t\t\t);\n\n\t\t\t\tif (err instanceof SyntaxError) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`Encountered invalid syntax in file \"${relativePath}\": ${String(\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\t\t\t\tthrow new Error(\n\t\t\t\t\t`Encountered an unexpected error while parsing animation json file at path \"${relativePath}\"`,\n\t\t\t\t\t{\n\t\t\t\t\t\tcause: err,\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (!data.Id) {\n\t\t\t\tconst fileName = path.basename(\n\t\t\t\t\tscriptFilePath,\n\t\t\t\t\t\".animation.json\",\n\t\t\t\t);\n\t\t\t\tdata.Id = fileName;\n\t\t\t}\n\n\t\t\t(await getAnimationJsonValidation())(data);\n\t\t\tdelete data.$schema;\n\t\t\tanimations.set(data.Id, JSON.stringify(data));\n\t\t}\n\n\t\tif (animations.size > 0) {\n\t\t\tconst scope = data.Scope ?? data.Package;\n\t\t\tconst scopeParts = scope.split(\".\");\n\n\t\t\tbuildResult.js += createNamespace(scopeParts);\n\n\t\t\tfor (const [name, content] of animations) {\n\t\t\t\tbuildResult.js += `${scope}[\"${name}\"] = ` + content + \";\";\n\t\t\t\tlogPackageMessage(\n\t\t\t\t\tdata.Package,\n\t\t\t\t\t`Adding animation ${scope}.${name}`,\n\t\t\t\t);\n\t\t\t}\n\t\t} else if (!hasTypescript) {\n\t\t\tthrow new Error(\n\t\t\t\t`Expected package to have a least one ts file or one animation.json file`,\n\t\t\t);\n\t\t}\n\n\t\tfs.writeFileSync(\n\t\t\tpath.join(outputDirectory, `${data.Package}.js`),\n\t\t\tbuildResult.js,\n\t\t\t{ encoding: \"utf8\" },\n\t\t);\n\t\tif (buildResult.definitions !== undefined) {\n\t\t\tfs.writeFileSync(\n\t\t\t\tpath.join(outputDirectory, `${data.Package}.d.ts`),\n\t\t\t\tbuildResult.definitions,\n\t\t\t\t{ encoding: \"utf8\" },\n\t\t\t);\n\t\t}\n\n\t\tif (options.minimize) {\n\t\t\tconst minifyResult = await terser.minify(buildResult.js, {\n\t\t\t\tecma: 5,\n\t\t\t});\n\n\t\t\tconst minifiedPath = path.join(\n\t\t\t\toutputDirectory,\n\t\t\t\t`${data.Package}.min.js`,\n\t\t\t);\n\t\t\tfs.writeFileSync(minifiedPath, minifyResult.code!, {\n\t\t\t\tencoding: \"utf8\",\n\t\t\t});\n\t\t}\n\n\t\tif (\n\t\t\tlocation.path.includes(\"Basics\") &&\n\t\t\tbuildResult.definitions !== undefined\n\t\t) {\n\t\t\tfs.mkdirSync(path.join(workspace.path, \"lib\"), {\n\t\t\t\trecursive: true,\n\t\t\t});\n\n\t\t\tlogStep(\"Copying basics definition file to the lib folder\");\n\t\t\tfs.writeFileSync(\n\t\t\t\tpath.join(workspace.path, \"lib\", `${data.Package}.d.ts`),\n\t\t\t\tbuildResult.definitions,\n\t\t\t\t{ encoding: \"utf8\" },\n\t\t\t);\n\t\t}\n\n\t\tif (options.docs) {\n\t\t\tlogStep(\"Generating typedoc documentation\");\n\t\t\tawait generateDocs(\n\t\t\t\tlocation,\n\t\t\t\tpath.join(outputDirectory, `${data.Package}.d.ts`),\n\t\t\t\tpath.join(workspace.path, \"docs\", data.Package),\n\t\t\t\tdata.Package,\n\t\t\t);\n\t\t}\n\n\t\tindex++;\n\t}\n};\n\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\nconst ensureTsConfig = (location: PackageLocation) => {\n\tconst tsconfigPath = path.join(location.scriptsDir, \"tsconfig.json\");\n\n\tif (!fs.existsSync(tsconfigPath)) {\n\t\tconst content = {};\n\t\tapplyTsConfigOption(content);\n\n\t\tfs.writeFileSync(\n\t\t\ttsconfigPath,\n\t\t\tJSON.stringify(content, undefined, \"\\t\"),\n\t\t\t\"utf8\",\n\t\t);\n\t} else {\n\t\tconst content = JSON.parse(fs.readFileSync(tsconfigPath, \"utf8\"));\n\t\tapplyTsConfigOption(content);\n\t\tfs.writeFileSync(\n\t\t\ttsconfigPath,\n\t\t\tJSON.stringify(content, undefined, \"\\t\"),\n\t\t\t\"utf8\",\n\t\t);\n\t}\n};\n\nconst applyTsConfigOption = (data: {\n\tcompilerOptions?: { target?: string; lib?: string[] };\n}) => {\n\tdata.compilerOptions = data.compilerOptions ?? {};\n\tdata.compilerOptions.target = \"es5\";\n\tdata.compilerOptions.lib = [\"es5\", \"dom\"];\n};\n\nconst sortPackagesByBuildOrder = (\n\tfolders: PackageLocation[],\n): PackageLocation[] => {\n\tconst packages = Array.from(folders).reduce(\n\t\t(\n\t\t\tacc: Record<string, FolderData>,\n\t\t\tlocation,\n\t\t): Record<string, FolderData> => {\n\t\t\tconst data = readPackageNpmManifest(location);\n\n\t\t\tif (data !== undefined) {\n\t\t\t\tacc[data.name] = {\n\t\t\t\t\tdata,\n\t\t\t\t\tlocation,\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tacc[location.path] = {\n\t\t\t\t\tdata: undefined,\n\t\t\t\t\tlocation,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn acc;\n\t\t},\n\t\t{},\n\t);\n\n\tconst packageDependencies = Object.getOwnPropertyNames(packages).reduce(\n\t\t(acc, packageName) => {\n\t\t\tconst packageData = packages[packageName];\n\n\t\t\tif (packageData.data === undefined) {\n\t\t\t\tacc[packageName] = [];\n\t\t\t} else {\n\t\t\t\tacc[packageName] = Object.getOwnPropertyNames({\n\t\t\t\t\t...packageData.data.devDependencies,\n\t\t\t\t\t...packageData.data.dependencies,\n\t\t\t\t\t...packageData.data.peerDependencies,\n\t\t\t\t}).filter((packageName) => packages[packageName] !== undefined);\n\t\t\t}\n\n\t\t\treturn acc;\n\t\t},\n\t\t{},\n\t);\n\n\tconst sortedPackages = toposort(packageDependencies);\n\tconst result: PackageLocation[] = [];\n\n\tfor (const packageName of sortedPackages) {\n\t\tconst location = packages[packageName].location;\n\n\t\tif (readPackageCreatorManifest(location).Package.endsWith(\".Basics\")) {\n\t\t\tresult.unshift(location);\n\t\t} else {\n\t\t\tresult.push(location);\n\t\t}\n\t}\n\n\treturn result;\n};\n\nconst createBannerComment = (banner: BannerOptions) => {\n\tconst bannerParts: string[] = [];\n\n\tif (banner.text) {\n\t\tbannerParts.push(\" * \" + banner.text);\n\t}\n\n\t{\n\t\tconst details: string[] = [];\n\n\t\tif (banner.version) {\n\t\t\tdetails.push(`Version: ${banner.version}`);\n\t\t}\n\t\tif (banner.commit) {\n\t\t\tif (banner.commitDirty) {\n\t\t\t\tdetails.push(`Commit: ${banner.commit} (dirty)`);\n\t\t\t} else {\n\t\t\t\tdetails.push(`Commit: ${banner.commit}`);\n\t\t\t}\n\t\t}\n\t\tif (banner.date) {\n\t\t\tdetails.push(`Date: ${banner.date.toISOString()}`);\n\t\t}\n\n\t\tconst detailsText = details.map((line) => ` * ${line}`).join(\"\\n\");\n\t\tif (detailsText) {\n\t\t\tbannerParts.push(detailsText);\n\t\t}\n\t}\n\n\tconst bannerText = bannerParts.join(\"\\n\\n\");\n\n\tif (bannerText) {\n\t\treturn `/*\n${bannerText}\n*\n* @preserve\t\t\t\n*/`;\n\t}\n\n\treturn undefined;\n};\n"],"names":["logPackageMessage","name","step","index","total","numLength","undefined","toString","length","indexString","padStart","identifierString","padEnd","console","log","tryReadTsConfig","location","config","ts","readConfigFile","path","join","scriptsDir","fs","readFileSync","build","outputDir","compilerOptions","lib","result","convertCompilerOptionsFromJson","options","removeComments","declaration","sourceMap","outFile","target","ScriptTarget","ES5","noEmitOnError","host","createCompilerHost","getCurrentDirectory","js","definitions","writeFile","fileName","data","writeByteOrderMark","endsWith","files","getPackageTypescriptFiles","Error","programOptions","rootNames","program","createProgram","emitResult","emit","allDiagnostics","getPreEmitDiagnostics","emitSkipped","map","createErrorMessage","error","diagnostic","file","flattenDiagnosticMessageText","messageText","line","character","getLineAndCharacterOfPosition","start","message","generateDocs","declarationFile","outFolder","app","typedoc","Application","mediaDir","manifestDir","bootstrap","entryPoints","media","out","tsconfig","skipErrorChecking","setCompilerOptions","setValue","readmePath","glob","sync","absolute","cwd","project","convert","toposort","packages","queue","Object","getOwnPropertyNames","queueEntry","dependencies","dependencyQueued","some","dependency","includes","splice","push","$schema","$id","$comment","title","additionalProperties","type","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","__","validateAnimationJson","getAnimationJsonValidation","Ajv","coerceTypes","allErrors","removeAdditional","useDefaults","validateSchema","compile","animationSchema","buildFolders","outDir","clean","rmSync","recursive","workspace","folders","sortedPackages","sortPackagesByBuildOrder","hasTypescript","ensureTsConfig","readPackageCreatorManifest","logStep","Package","outputDirectory","mkdirSync","buildResult","tscBuild","banner","createBannerComment","animations","Map","scriptFilePath","readPackageAnimationList","content","encoding","JSON","parse","err","relativePath","relative","SyntaxError","String","cause","basename","set","stringify","size","scope","Scope","scopeParts","split","createNamespace","writeFileSync","minimize","minifyResult","terser","minify","ecma","minifiedPath","code","docs","parts","slice","tsconfigPath","existsSync","applyTsConfigOption","Array","from","reduce","acc","readPackageNpmManifest","packageDependencies","packageName","packageData","devDependencies","peerDependencies","filter","unshift","bannerParts","text","details","version","commit","commitDirty","date","toISOString","detailsText","bannerText"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"publishNpm-0af8ba37.mjs","sources":["../src/commands/publishNpm.ts"],"sourcesContent":["import * as path from \"path\";\nimport * as fs from \"fs\";\nimport { execSync } from \"child_process\";\n\nimport { PackageVersion } from \"../lib/packageVersion\";\nimport {\n\tINDEX_FILE,\n\tPackageLocation,\n\tPACKAGE_FILE,\n\treadPackageCreatorIndex,\n\treadPackageCreatorManifest,\n\treadPackageNpmManifest,\n\twritePackageNpmManifest,\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\";\nimport { logPackageMessage } from \"../lib/log\";\n\nimport { buildFolders } from \"./build\";\n\nexport interface PublishToNpmSettings {\n\tworkspace: WorkspaceLocation;\n\tlocation: PackageLocation;\n\tversion: string;\n\tdryRun?: boolean;\n}\n\nexport const publishToNpm = async ({\n\tworkspace,\n\tlocation,\n\tversion: providedVersion,\n\tdryRun,\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\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\n\tgetVersionFileHandler(location).write(creatorPackage.Package, newVersion);\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\tlogPackageMessage(\n\t\tcreatorPackage.Package,\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","newVersion","parseVersionFromString","err","Error","buildNumber","preRelease","type","undefined","workspaceManifest","readWorkspaceNpmManifest","workspaceOutputPath","getWorkspaceOutputPath","creatorPackage","readPackageCreatorManifest","packageJson","readPackageNpmManifest","name","Package","toLowerCase","description","toVersionString","toDescriptionString","main","types","publishConfig","acccess","ig","scriptingLibrary","files","publishDir","path","join","fs","rmSync","recursive","force","mkdirSync","writePackageNpmManifest","getVersionFileHandler","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","logPackageMessage","execSync","stdio","encoding","cwd","packageLocation","iterateWorkspacePackages","manifest","dependencies","sourcePath","targetPath","statSync","isDirectory","includes","extname"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCaA,MAAAA,YAAAA,GAAe,OAAO,EAClCC,SAAS,GACTC,QAAQ,GACRC,OAASC,EAAAA,eAAAA,GACTC,MAAAA,GACsB,GAAK;IAC3B,IAAIC,UAAAA,CAAAA;IACJ,IAAI;AACHA,QAAAA,UAAAA,GAAaC,sBAAuBH,CAAAA,eAAAA,CAAAA,CAAAA;AACrC,KAAA,CAAE,OAAOI,GAAK,EAAA;AACb,QAAA,MAAM,IAAIC,KAAAA,CAAM,CAAC,+CAA+C,CAAC,CAAE,CAAA;AACpE,KAAA;IAEA,IAAIH,UAAAA,CAAWI,WAAW,GAAG,GAAK,EAAA;AACjCJ,QAAAA,UAAAA,CAAWK,UAAU,GAAG;YACvBC,IAAM,EAAA,MAAA;AACNT,YAAAA,OAAAA,EAASG,WAAWI,WAAW;AAChC,SAAA,CAAA;AACD,KAAA,MAAO,IAAIJ,UAAAA,CAAWI,WAAW,KAAK,GAAK,EAAA;AAC1CJ,QAAAA,UAAAA,CAAWK,UAAU,GAAGE,SAAAA,CAAAA;KAClB,MAAA;AACN,QAAA,MAAM,IAAIJ,KAAAA,CACT,CAAC,mEAAmE,CAAC,CACpE,CAAA;KACF;AAED,IAAA,MAAMK,oBAAoBC,wBAAyBd,CAAAA,SAAAA,CAAAA,CAAAA;AACnD,IAAA,MAAMe,sBAAsBC,sBAAuBhB,CAAAA,SAAAA,CAAAA,CAAAA;AACnD,IAAA,MAAMiB,iBAAiBC,0BAA2BjB,CAAAA,QAAAA,CAAAA,CAAAA;AAClD,IAAA,IAAIkB,cAAcC,sBAAuBnB,CAAAA,QAAAA,CAAAA,CAAAA;AAEzC,IAAA,IAAIkB,gBAAgBP,SAAW,EAAA;QAC9BO,WAAc,GAAA;AACbE,YAAAA,IAAAA,EACC,yBACAJ,GAAAA,cAAAA,CAAeK,OAAO,CAACC,WAAW,EAAA;YACnCrB,OAAS,EAAA,OAAA;AACTsB,YAAAA,WAAAA,EAAaP,eAAeK,OAAO;AACpC,SAAA,CAAA;KACA;AAEDH,IAAAA,WAAAA,CAAYjB,OAAO,GAAGG,UAAWoB,CAAAA,eAAe,CAAC;AAChDhB,QAAAA,WAAAA,EAAa,KAAK;AACnB,KAAA,CAAA,CAAA;AACAU,IAAAA,WAAAA,CAAYK,WAAW,GAAGnB,UAAAA,CAAWqB,mBAAmB,CACvDT,eAAeK,OAAO,CAAA,CAAA;IAEvBH,WAAYQ,CAAAA,IAAI,GAAG,CAAC,EAAEV,eAAeK,OAAO,CAAC,GAAG,CAAC,CAAA;IACjDH,WAAYS,CAAAA,KAAK,GAAG,CAAC,EAAEX,eAAeK,OAAO,CAAC,KAAK,CAAC,CAAA;IACpDH,WAAYU,CAAAA,aAAa,KAAK,EAAC,CAAA;IAC/BV,WAAYU,CAAAA,aAAa,CAACC,OAAO,GAAG,QAAA,CAAA;AACpCX,IAAAA,WAAAA,CAAYY,EAAE,GAAG;AAChBC,QAAAA,gBAAAA,EAAkB,IAAI;AACvB,KAAA,CAAA;AACAb,IAAAA,WAAAA,CAAYc,KAAK,GAAGrB,SAAAA,CAAAA;AAEpB,IAAA,MAAMsB,aAAaC,IAAKC,CAAAA,IAAI,CAC3BrB,mBACA,EAAA,SAAA,EACAE,eAAeK,OAAO,CAAA,CAAA;IAEvBe,EAAGC,CAAAA,MAAM,CAACJ,UAAY,EAAA;AAAEK,QAAAA,SAAAA,EAAW,IAAI;AAAEC,QAAAA,KAAAA,EAAO,IAAI;AAAC,KAAA,CAAA,CAAA;IACrDH,EAAGI,CAAAA,SAAS,CAACP,UAAY,EAAA;AAAEK,QAAAA,SAAAA,EAAW,IAAI;AAAC,KAAA,CAAA,CAAA;AAE3CG,IAAAA,uBAAAA,CAAwBzC,QAAUkB,EAAAA,WAAAA,CAAAA,CAAAA;AAElCwB,IAAAA,qBAAAA,CAAsB1C,QAAU2C,CAAAA,CAAAA,KAAK,CAAC3B,cAAAA,CAAeK,OAAO,EAAEjB,UAAAA,CAAAA,CAAAA;IAE9D,MAAMwC,qBAAAA,GAAwB,MAAMC,4BAAAA,CACnC9C,SACAC,EAAAA,QAAAA,CAAAA,CAAAA;AAGD,IAAA,MAAM8C,aAAaC,sBAAuBnC,CAAAA,iBAAAA,CAAAA,CAAAA;AAE1C,IAAA,MAAMoC,YAAa,CAAA;AAClBjD,QAAAA,SAAAA;QACAkD,QAAU,EAAA;AAACjD,YAAAA,QAAAA;AAAS,SAAA;AACpBkD,QAAAA,QAAAA,EAAU,IAAI;AACdC,QAAAA,MAAAA,EAAQpC,sBAAuBhB,CAAAA,SAAAA,CAAAA;QAC/BqD,MAAQ,EAAA;YACPC,IAAMP,EAAAA,UAAAA;AACNQ,YAAAA,MAAAA,EAAQV,sBAAsBU,MAAM;AACpCC,YAAAA,WAAAA,EAAaX,sBAAsBY,KAAK;YACxCvD,OAASG,EAAAA,UAAAA,CAAWoB,eAAe,CAAC;AACnChB,gBAAAA,WAAAA,EAAa,IAAI;AAClB,aAAA,CAAA;YACAiD,IAAM,EAAA,IAAIC,IAAKA,CAAAA,IAAAA,CAAKC,GAAG,EAAA,CAAA;AACxB,SAAA;AACD,KAAA,CAAA,CAAA;IAEAvB,EAAGwB,CAAAA,YAAY,CACd1B,IAAAA,CAAKC,IAAI,CACRpB,uBAAuBhB,SACvB,CAAA,EAAA,CAAC,EAAEiB,cAAAA,CAAeK,OAAO,CAAC,KAAK,CAAC,CAAA,EAEjCa,IAAKC,CAAAA,IAAI,CAACF,UAAAA,EAAY,CAAC,EAAEjB,cAAeK,CAAAA,OAAO,CAAC,KAAK,CAAC,CAAA,CAAA,CAAA;IAEvDe,EAAGwB,CAAAA,YAAY,CACd1B,IAAAA,CAAKC,IAAI,CACRpB,uBAAuBhB,SACvB,CAAA,EAAA,CAAC,EAAEiB,cAAAA,CAAeK,OAAO,CAAC,OAAO,CAAC,CAAA,EAEnCa,IAAKC,CAAAA,IAAI,CAACF,UAAAA,EAAY,CAAC,EAAEjB,cAAeK,CAAAA,OAAO,CAAC,GAAG,CAAC,CAAA,CAAA,CAAA;AAGrDe,IAAAA,EAAAA,CAAGwB,YAAY,CACd1B,IAAKC,CAAAA,IAAI,CAACnC,QAAAA,CAAS6D,WAAW,EAAE,cAChC3B,CAAAA,EAAAA,IAAAA,CAAKC,IAAI,CAACF,UAAY,EAAA,cAAA,CAAA,CAAA,CAAA;AAGvBG,IAAAA,EAAAA,CAAG0B,aAAa,CACf5B,IAAKC,CAAAA,IAAI,CAACF,UAAAA,EAAY8B,YACtBC,CAAAA,EAAAA,IAAAA,CAAKC,SAAS,CAACjD,cAAgB,EAAA,IAAI,EAAE,CAAA,CAAA,CAAA,CAAA;AAGtC,IAAA,MAAMkD,QAAQC,uBAAwBnE,CAAAA,QAAAA,CAAAA,CAAAA;AAEtC,IAAA,IAAIkE,UAAUvD,SAAW,EAAA;QACxByB,EAAG0B,CAAAA,aAAa,CACf5B,IAAKC,CAAAA,IAAI,CAACF,UAAYmC,EAAAA,UAAAA,CAAAA,EACtBJ,IAAKC,CAAAA,SAAS,CAACC,KAAAA,CAAAA,CAAAA,CAAAA;KAEhB;AAED,IAAA,MAAMG,UAAajC,GAAAA,EAAAA,CACjBkC,WAAW,CAACtE,QAASkC,CAAAA,IAAI,CACzBqC,CAAAA,IAAI,CAAC,CAACnD,IAASA,GAAAA,IAAAA,CAAKE,WAAW,EAAO,KAAA,WAAA,CAAA,CAAA;AAExC,IAAA,IAAI+C,eAAe1D,SAAW,EAAA;AAC7ByB,QAAAA,EAAAA,CAAGwB,YAAY,CACd1B,IAAKC,CAAAA,IAAI,CAACnC,QAAAA,CAASkC,IAAI,EAAEmC,UACzBnC,CAAAA,EAAAA,IAAAA,CAAKC,IAAI,CAACF,UAAYoC,EAAAA,UAAAA,CAAAA,CAAAA,CAAAA;KAEvB;IAED,IAAIrD,cAAAA,CAAeK,OAAO,KAAK,iBAAmB,EAAA;AACjD,QAAA,MAAMmD,SAAStC,IAAKC,CAAAA,IAAI,CAACnC,QAAAA,CAASkC,IAAI,EAAE,QAAA,CAAA,CAAA;AACxC,QAAA,MAAMuC,MAASvC,GAAAA,IAAAA,CAAKC,IAAI,CAACF,UAAY,EAAA,QAAA,CAAA,CAAA;AACrCyC,QAAAA,mBAAAA,CAAoBF,MAAQC,EAAAA,MAAAA,CAAAA,CAAAA;KAC5B;AAED,IAAA,MAAME,iBAA2B,EAAE,CAAA;AAEnC,IAAA,IAAIxE,MAAQ,EAAA;AACXwE,QAAAA,cAAAA,CAAeC,IAAI,CAAC,WAAA,CAAA,CAAA;KACpB;IAED,IAAIxE,UAAAA,CAAWK,UAAU,EAAE;QAC1BkE,cAAeC,CAAAA,IAAI,CAAC,OAAS,EAAA,MAAA,CAAA,CAAA;KAC7B;AAEDC,IAAAA,iBAAAA,CACC7D,eAAeK,OAAO,EACtB,CAAC,+BAA+B,EAAEH,WAAYjB,CAAAA,OAAO,CAAC,WAAW,EAChEG,UAAWK,CAAAA,UAAU,GAAG,MAAS,GAAA,QAAQ,CACzC,CAAC,CAAA,CAAA;IAGHqE,QAAS,CAAA;AAAC,QAAA,KAAA;AAAO,QAAA,SAAA;AAAcH,QAAAA,GAAAA,cAAAA;KAAe,CAACxC,IAAI,CAAC,GAAM,CAAA,EAAA;QACzD4C,KAAO,EAAA,SAAA;QACPC,QAAU,EAAA,MAAA;QACVC,GAAKhD,EAAAA,UAAAA;AACN,KAAA,CAAA,CAAA;IAEA,KAAK,MAAMiD,eAAmBC,IAAAA,wBAAAA,CAAyBpF,SAAY,CAAA,CAAA;AAG9DqF,QAAAA,IAAAA,sBAAAA,CAAAA;AAFJ,QAAA,MAAMA,WAAWjE,sBAAuB+D,CAAAA,eAAAA,CAAAA,CAAAA;AAExC,QAAA,IAAIE,CAAAA,QAAAA,IAAAA,IAAAA,GAAAA,KAAAA,IAAAA,CAAAA,sBAAAA,GAAAA,SAAUC,YAAY,KAAA,IAAA,GAAtBD,KAAAA,CAAAA,GAAAA,sBAAwB,CAAClE,WAAYE,CAAAA,IAAI,CAApB,MAA0BT,SAAW,EAAA;YAC7DyE,QAASC,CAAAA,YAAY,CAACnE,WAAYE,CAAAA,IAAI,CAAC,GAAG,GAAA,GAAMF,YAAYjB,OAAO,CAAA;AACnEwC,YAAAA,uBAAAA,CAAwByC,eAAiBE,EAAAA,QAAAA,CAAAA,CAAAA;SACzC;AACF,KAAA;AACD,EAAE;AAEF,MAAMV,mBAAAA,GAAsB,CAACF,MAAAA,EAAgBC,MAAmB,GAAA;IAC/DrC,EAAGI,CAAAA,SAAS,CAACiC,MAAQ,EAAA;AAAEnC,QAAAA,SAAAA,EAAW,IAAI;AAAC,KAAA,CAAA,CAAA;AAEvC,IAAA,KAAK,MAAMlB,IAAAA,IAAQgB,EAAGkC,CAAAA,WAAW,CAACE,MAAS,CAAA,CAAA;AAC1C,QAAA,MAAMc,UAAapD,GAAAA,IAAAA,CAAKC,IAAI,CAACqC,MAAQpD,EAAAA,IAAAA,CAAAA,CAAAA;AACrC,QAAA,MAAMmE,UAAarD,GAAAA,IAAAA,CAAKC,IAAI,CAACsC,MAAQrD,EAAAA,IAAAA,CAAAA,CAAAA;AAErC,QAAA,IAAIgB,EAAGoD,CAAAA,QAAQ,CAACF,UAAAA,CAAAA,CAAYG,WAAW,EAAI,EAAA;AAC1Cf,YAAAA,mBAAAA,CAAoBY,UAAYC,EAAAA,UAAAA,CAAAA,CAAAA;SAC1B,MAAA;YACN,IACC;AAAC,gBAAA,MAAA;AAAQ,gBAAA,MAAA;AAAQ,gBAAA,OAAA;AAAS,gBAAA,MAAA;AAAO,aAAA,CAACG,QAAQ,CAACxD,IAAKyD,CAAAA,OAAO,CAACvE,IACvD,CAAA,CAAA,EAAA;gBACDgB,EAAGwB,CAAAA,YAAY,CAAC0B,UAAYC,EAAAA,UAAAA,CAAAA,CAAAA;aAC5B;SACD;AACF,KAAA;AACD,CAAA;;;;"}