@intelligentgraphics/ig.gfx.packager 3.0.0-alpha.0 → 3.0.0-alpha.3

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 (38) hide show
  1. package/build/cli.mjs +593 -0
  2. package/build/cli.mjs.map +1 -0
  3. package/build/commands/{build.js → build.mjs} +74 -77
  4. package/build/commands/build.mjs.map +1 -0
  5. package/build/commands/{generate.js → generate.mjs} +32 -58
  6. package/build/commands/generate.mjs.map +1 -0
  7. package/build/commands/postinstall.mjs +49 -0
  8. package/build/commands/postinstall.mjs.map +1 -0
  9. package/build/commands/publishNpm.mjs +129 -0
  10. package/build/commands/publishNpm.mjs.map +1 -0
  11. package/build/commands/{release.js → release.mjs} +91 -119
  12. package/build/commands/release.mjs.map +1 -0
  13. package/build/{dependencies.js → dependencies.mjs} +16 -40
  14. package/build/dependencies.mjs.map +1 -0
  15. package/build/index.mjs +6 -0
  16. package/build/index.mjs.map +1 -0
  17. package/build/scripts.mjs +11 -0
  18. package/build/scripts.mjs.map +1 -0
  19. package/build/versionFile.mjs +352 -0
  20. package/build/versionFile.mjs.map +1 -0
  21. package/package.json +9 -10
  22. package/readme.md +12 -0
  23. package/build/cli.js +0 -8315
  24. package/build/cli.js.map +0 -1
  25. package/build/commands/build.js.map +0 -1
  26. package/build/commands/generate.js.map +0 -1
  27. package/build/commands/postinstall.js +0 -77
  28. package/build/commands/postinstall.js.map +0 -1
  29. package/build/commands/publishNpm.js +0 -156
  30. package/build/commands/publishNpm.js.map +0 -1
  31. package/build/commands/release.js.map +0 -1
  32. package/build/dependencies.js.map +0 -1
  33. package/build/index.js +0 -7
  34. package/build/index.js.map +0 -1
  35. package/build/scripts.js +0 -31
  36. package/build/scripts.js.map +0 -1
  37. package/build/versionFile.js +0 -181
  38. package/build/versionFile.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"build.js","sources":["../../src/lib/log.ts","../../src/commands/build/tsc.ts","../../src/commands/build/docs.ts","../../src/commands/build/index.ts"],"sourcesContent":["export const logPackageMessage = (\n\tname: string,\n\tstep: string,\n\tindex?: number,\n\ttotal?: number,\n) => {\n\tconst numLength = total === undefined ? undefined : total.toString().length;\n\n\tconst indexString =\n\t\ttotal === undefined || total < 2\n\t\t\t? \"\"\n\t\t\t: `${index!.toString().padStart(numLength!, \"0\")}/${total} `;\n\n\tconst identifierString = `${indexString}${name.padEnd(15)}`;\n\n\tconsole.log(`${identifierString} >> ${step}`);\n};\n","import * as 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 (location: PackageLocation) => {\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\toutFile: \"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 * as typedoc from \"typedoc\";\nimport * as glob from \"glob\";\nimport { ScriptTarget } from \"typescript\";\nimport * as path from \"path\";\n\nexport const generateDocs = async (\n\tfolderPath: string,\n\tdeclarationFile: string,\n\toutFolder: string,\n\tname: string,\n) => {\n\tconst app = new typedoc.Application();\n\n\tconst mediaDir = path.join(folderPath, \"Media\");\n\n\tapp.bootstrap({\n\t\tentryPoints: [declarationFile],\n\t\tmedia: mediaDir,\n\t\tout: outFolder,\n\t});\n\n\tapp.options.setCompilerOptions(\n\t\t[declarationFile],\n\t\t{\n\t\t\ttarget: 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: folderPath,\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","import * as path from \"path\";\nimport * as fs from \"fs\";\nimport * as glob from \"glob\";\nimport * as terser from \"terser\";\n\nimport { PackageJSON, toposort } from \"@intelligentgraphics/ig.tools.core\";\n\nimport { logPackageMessage } from \"../../lib/log\";\nimport { translate } from \"../../localization\";\nimport { build as tscBuild } from \"./tsc\";\nimport { generateDocs } from \"./docs\";\nimport {\n\tdetectPackage,\n\tPackageLocation,\n\treadPackageCreatorManifest,\n\treadPackageNpmManifest,\n} from \"../../lib/package\";\nimport { detectWorkspace, WorkspaceLocation } from \"../../lib/workspace\";\nimport { getPackageTypescriptFiles } from \"../../lib/scripts\";\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\tcwd: string;\n\tdirectories: string[];\n\toutDir?: string;\n\tminimize: boolean;\n\tbanner?: BannerOptions;\n\tclean?: boolean;\n\tdocs?: boolean;\n\tskipPackagesWithoutTsFiles?: 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) => Promise<FolderBuilderResult>;\n\ntype FolderData = {\n\tlocation: PackageLocation;\n\tdata?: PackageJSON;\n};\n\nexport const buildFolders = async (options: BuildFoldersOptions) => {\n\tif (options.outDir !== undefined && options.clean) {\n\t\tfs.rmSync(options.outDir, { recursive: true });\n\t}\n\n\tconst workspace = detectWorkspace(options.cwd);\n\tconst folders = resolvePackagesFromArgs(options.directories, workspace);\n\n\tif (folders.length === 0) {\n\t\treturn console.log(translate(\"messages.buildSkipEmpty\"));\n\t}\n\n\tconst sortedPackages = buildSortedPackageMap(folders);\n\n\tlet index = 1;\n\n\tfor (const [, { location }] of sortedPackages) {\n\t\tif (\n\t\t\toptions.skipPackagesWithoutTsFiles &&\n\t\t\tgetPackageTypescriptFiles(location).length === 0\n\t\t) {\n\t\t\tcontinue;\n\t\t}\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, sortedPackages.size);\n\n\t\tlogStep(translate(\"messages.building\"));\n\n\t\tconst buildResult = await tscBuild(location);\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\tbuildResult.definitions = banner + \"\\n\" + buildResult.definitions;\n\t\t}\n\n\t\tconst outputDirectory = options.outDir || location.scriptsDir;\n\t\tfs.mkdirSync(outputDirectory, { recursive: true });\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\tfs.writeFileSync(\n\t\t\tpath.join(outputDirectory, `${data.Package}.d.ts`),\n\t\t\tbuildResult.definitions,\n\t\t\t{ encoding: \"utf8\" },\n\t\t);\n\n\t\tif (options.minimize) {\n\t\t\tconst minifyResult = terser.minify(buildResult.js, {\n\t\t\t\tecma: 5,\n\t\t\t});\n\n\t\t\tif (minifyResult.error || !minifyResult.code) {\n\t\t\t\tconsole.warn(\n\t\t\t\t\t\"Not writing minified script version because of error\",\n\t\t\t\t\tminifyResult.error,\n\t\t\t\t);\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 (location.path.includes(\"Basics\")) {\n\t\t\tfs.mkdirSync(path.join(options.cwd, \"lib\"), {\n\t\t\t\trecursive: true,\n\t\t\t});\n\n\t\t\tlogStep(translate(\"messages.basicsCopy\"));\n\t\t\tfs.writeFileSync(\n\t\t\t\tpath.join(options.cwd, \"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(translate(\"messages.docsGeneration\"));\n\t\t\tawait generateDocs(\n\t\t\t\tlocation.scriptsDir,\n\t\t\t\tpath.join(\n\t\t\t\t\toptions.outDir || location.scriptsDir,\n\t\t\t\t\t`${data.Package}.d.ts`,\n\t\t\t\t),\n\t\t\t\tpath.join(options.cwd, \"docs\", data.Package),\n\t\t\t\tdata.Package,\n\t\t\t);\n\t\t}\n\n\t\t// logStep(translate(\"messages.built\"));\n\n\t\tindex++;\n\t}\n};\n\nconst resolvePackagesFromArgs = (\n\targs: string[] = [],\n\tworkspace: WorkspaceLocation,\n) => {\n\tconst folders = new Map<string, PackageLocation>();\n\n\tfor (const arg of args) {\n\t\tglob.sync(arg, { cwd: workspace.path, absolute: true }).forEach(\n\t\t\t(folder) => {\n\t\t\t\ttry {\n\t\t\t\t\tconst location = detectPackage(workspace, folder);\n\t\t\t\t\tfolders.set(folder, location);\n\t\t\t\t} catch (err) {}\n\t\t\t},\n\t\t);\n\t}\n\n\treturn Array.from(folders.values());\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 buildSortedPackageMap = (folders: 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 = new Map<string, FolderData>();\n\n\tfor (const packageName of sortedPackages) {\n\t\tresult.set(packageName, packages[packageName]);\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","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","folderPath","declarationFile","outFolder","app","typedoc","Application","mediaDir","bootstrap","entryPoints","media","out","setCompilerOptions","setValue","readmePath","glob","sync","absolute","cwd","project","convert","buildFolders","outDir","clean","rmSync","recursive","workspace","detectWorkspace","folders","resolvePackagesFromArgs","directories","translate","sortedPackages","buildSortedPackageMap","skipPackagesWithoutTsFiles","ensureTsConfig","readPackageCreatorManifest","logStep","Package","size","buildResult","tscBuild","banner","createBannerComment","outputDirectory","mkdirSync","writeFileSync","encoding","minimize","minifyResult","terser","minify","ecma","code","warn","minifiedPath","includes","docs","args","Map","arg","forEach","folder","detectPackage","set","err","Array","from","values","tsconfigPath","existsSync","content","applyTsConfigOption","JSON","stringify","parse","packages","reduce","acc","readPackageNpmManifest","packageDependencies","Object","getOwnPropertyNames","packageName","packageData","devDependencies","dependencies","peerDependencies","filter","toposort","bannerParts","text","push","details","version","commit","commitDirty","date","toISOString","detailsText","bannerText"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate.js","sources":["../../src/commands/generate.ts"],"sourcesContent":["import * as ts from \"typescript\";\nimport os from \"os\";\n\nimport { PackageLocation, writePackageCreatorIndex } from \"../lib/package\";\nimport { getPackageTypescriptFiles } from \"../lib/scripts\";\n\ninterface IScript {\n\tName: string;\n\tDescription: string;\n\tType: TScriptType;\n\tParameters: IScriptParameter[];\n}\n\ninterface IScriptParameter {\n\tName: string;\n\tDescription: string;\n\tType: TType;\n\tDefault: string | number | boolean | null;\n\tDisplayIndex: number;\n}\n\ntype TScriptType = \"Evaluator\" | \"Interactor\";\n\ntype TType =\n\t| \"String\"\n\t| \"LengthM\"\n\t| \"Material\"\n\t| \"Boolean\"\n\t| \"Bool\"\n\t| \"ArcDEG\"\n\t| \"Integer\"\n\t| \"Int\"\n\t| \"Float\";\n\ntype TParams = {\n\t[key: string]: string;\n};\n\nfunction findTsNode<T extends ts.Node>(\n\tnode: ts.Node,\n\tcallback: (node: ts.Node) => node is T,\n): T | undefined;\nfunction findTsNode(\n\tnode: ts.Node,\n\tcallback: (node: ts.Node) => boolean,\n): ts.Node | undefined;\nfunction findTsNode(\n\tnode: ts.Node,\n\tcallback: (node: ts.Node) => boolean,\n): ts.Node | undefined {\n\tlet result: ts.Node | undefined;\n\n\tts.forEachChild(node, (child) => {\n\t\tif (callback(child)) {\n\t\t\tresult = child;\n\t\t\treturn true;\n\t\t}\n\t});\n\n\treturn result;\n}\n\nfunction getParamsFromJsDoc(text: string): TParams {\n\tlet lines = text.split(os.EOL);\n\tlet splitLines = lines.map((line) => line.split(\":\").map((s) => s.trim()));\n\tlet params = {};\n\tsplitLines\n\t\t.filter((line) => line.length > 1)\n\t\t.forEach((line) => {\n\t\t\tparams[line[0]] = line[1];\n\t\t});\n\n\treturn params;\n}\n\nfunction getDescFromJsDoc(text: string): string {\n\tlet lines = text.split(os.EOL);\n\tlet splitLines = lines.map((line) => line.split(\":\").map((s) => s.trim()));\n\tlet desc = \"\";\n\tsplitLines\n\t\t.filter((line) => line.length == 1)\n\t\t.forEach((line, i) => {\n\t\t\tdesc += (i == 0 ? \"\" : \" \") + line[0];\n\t\t});\n\n\treturn desc.substring(0, 98);\n}\n\nfunction capitalizeFirstLetter(string) {\n\treturn string?.charAt(0).toUpperCase() + string?.slice(1);\n}\n\nfunction parseDefault(value: string, type: string) {\n\tconst uType: TType = capitalizeFirstLetter(type);\n\tif (value === \"null\") return null;\n\tswitch (uType) {\n\t\tcase \"LengthM\":\n\t\tcase \"ArcDEG\":\n\t\tcase \"Float\":\n\t\t\treturn parseFloat(value);\n\t\tcase \"Integer\":\n\t\tcase \"Int\":\n\t\t\treturn parseInt(value);\n\t\tcase \"Boolean\":\n\t\tcase \"Bool\":\n\t\t\treturn value === \"true\";\n\t\tcase \"Material\":\n\t\tcase \"String\":\n\t\tdefault:\n\t\t\treturn value.replace(/^\"/, \"\").replace(/\"$/, \"\");\n\t}\n}\n\nfunction findEvaluatorNode(node: ts.Node): ts.ClassDeclaration | undefined {\n\tif (\n\t\tts.isModuleDeclaration(node) &&\n\t\tnode.body &&\n\t\tts.isModuleDeclaration(node.body) &&\n\t\tnode.body.body\n\t) {\n\t\tconst classDeclaration = findTsNode(\n\t\t\tnode.body.body,\n\t\t\t(child): child is ts.ClassDeclaration => {\n\t\t\t\tif (!ts.isClassDeclaration(child)) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tconst isEvaluator = child.heritageClauses?.some((clause) => {\n\t\t\t\t\tif (clause.token !== ts.SyntaxKind.ExtendsKeyword) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn clause.types.some((type) =>\n\t\t\t\t\t\ttype.getText().includes(\"Evaluator\"),\n\t\t\t\t\t);\n\t\t\t\t});\n\n\t\t\t\treturn isEvaluator ?? false;\n\t\t\t},\n\t\t);\n\n\t\treturn classDeclaration;\n\t}\n}\n\nfunction getParameter(evaluatorNode: ts.ClassDeclaration) {\n\tlet memb = evaluatorNode.members?.find(\n\t\t(member) => member?.name?.getText().toLowerCase() == \"create\",\n\t);\n\tif (ts.isMethodDeclaration(memb!)) {\n\t\treturn memb.parameters.find(\n\t\t\t(para) => para.name.getText().toLowerCase() == \"parameters\",\n\t\t);\n\t}\n}\n\nfunction findParametersInterface(\n\tnode: ts.Node,\n\tinterfaceName: string,\n): ts.InterfaceDeclaration | undefined {\n\tif (\n\t\tts.isModuleDeclaration(node) &&\n\t\tnode.body &&\n\t\tts.isModuleDeclaration(node.body) &&\n\t\tnode.body.body\n\t) {\n\t\tconst interfaceDeclaration = findTsNode(\n\t\t\tnode.body.body,\n\t\t\t(child): child is ts.InterfaceDeclaration =>\n\t\t\t\tts.isInterfaceDeclaration(child) &&\n\t\t\t\tchild.name.getText() == interfaceName,\n\t\t);\n\n\t\treturn interfaceDeclaration;\n\t}\n\n\treturn undefined;\n}\n\nfunction getModuleName(sourceFile: ts.Node): string {\n\tlet fullName = \"\";\n\tif (ts.isModuleDeclaration(sourceFile)) {\n\t\tfullName += sourceFile.name.getText();\n\n\t\tlet packageB = sourceFile.body!;\n\t\tif (ts.isModuleDeclaration(packageB)) {\n\t\t\tfullName += \".\" + packageB.name.getText();\n\t\t}\n\t}\n\treturn fullName;\n}\n\nfunction genParameters(interfac: ts.InterfaceDeclaration): IScriptParameter[] {\n\treturn interfac.members.map((member, i) => {\n\t\tlet para = {} as IScriptParameter;\n\n\t\tpara.Name = member.name!.getText();\n\t\tif (para.Name.length > 45)\n\t\t\tthrow new Error(`Parameter name length >45 '${para.Name}'`);\n\n\t\tlet rawDocTags = ts.getJSDocTags(member);\n\t\tif (rawDocTags.length) {\n\t\t\tlet dict = getTagDict(rawDocTags);\n\t\t\tif (dict.summary) para.Description = dict.summary;\n\t\t\tif (dict.creatorType) para.Type = dict.creatorType as TType;\n\t\t\tif (dict.default && dict.creatorType)\n\t\t\t\tpara.Default = parseDefault(dict.default, dict.creatorType);\n\t\t\tpara.DisplayIndex = i + 1;\n\t\t}\n\t\treturn para;\n\t});\n}\n\ninterface IDocTags {\n\tdefault?: string;\n\tcreatorType?: string;\n\tsummary?: string;\n}\n\nfunction getTagDict(tags: any): IDocTags {\n\tlet dict = {};\n\ttags.forEach((tag) => {\n\t\tdict[tag.tagName.text] = tag.comment;\n\t});\n\treturn dict;\n}\n\nfunction findParametersInterfaceInFiles(\n\tprogram: ts.Program,\n\tfileList: string[],\n\tname: string,\n): ts.InterfaceDeclaration | undefined {\n\tfor (const file of fileList) {\n\t\tconst sourceFile = program.getSourceFile(file);\n\n\t\tif (sourceFile === undefined) {\n\t\t\tthrow new Error(\n\t\t\t\t`Expected a source file to exist for file name \"${file}\"`,\n\t\t\t);\n\t\t}\n\n\t\tlet interfaceDeclaration: ts.InterfaceDeclaration | undefined;\n\n\t\tts.forEachChild(sourceFile, (node) => {\n\t\t\tinterfaceDeclaration = findParametersInterface(node, name);\n\n\t\t\treturn interfaceDeclaration !== undefined;\n\t\t});\n\n\t\tif (interfaceDeclaration !== undefined) {\n\t\t\treturn interfaceDeclaration;\n\t\t}\n\t}\n\n\treturn undefined;\n}\n\n/**\n * Extracts and returns script array for _Index.json from a src folder\n *\n * @param folderPath path to a src folder\n */\nexport function extract(location: PackageLocation, ignore: string[] = []) {\n\tconst files = getPackageTypescriptFiles(location);\n\tconst filtered = files.filter((path) => {\n\t\treturn !ignore.some((suffix) => path.endsWith(suffix));\n\t});\n\tlet arr = new Array<IScript>();\n\n\tlet program = ts.createProgram(filtered, { allowJs: true });\n\tprogram.getTypeChecker();\n\tfiltered.forEach((file) => {\n\t\t// Create a Program to represent the project, then pull out the\n\t\t// source file to parse its AST.\n\t\tconst sourceFile = program.getSourceFile(file);\n\n\t\t// Loop through the root AST nodes of the file\n\t\tts.forEachChild(sourceFile!, (node) => {\n\t\t\tlet obj = {} as IScript;\n\t\t\tconst evalNode = findEvaluatorNode(node);\n\n\t\t\tif (evalNode === undefined) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet moduleName = getModuleName(node);\n\n\t\t\tif (evalNode.name === undefined) {\n\t\t\t\tthrow new Error(`Expected evaluator class to have a name`);\n\t\t\t}\n\n\t\t\tobj.Name = moduleName + \".\" + evalNode.name.getText();\n\t\t\tif (obj.Name.length > 45)\n\t\t\t\tthrow new Error(`Package name length >45 '${obj.Name}'`);\n\n\t\t\tlet para = getParameter(evalNode);\n\t\t\tlet paraName = (para?.type as any).typeName.getText();\n\t\t\tlet interfac = findParametersInterfaceInFiles(\n\t\t\t\tprogram,\n\t\t\t\tfiltered,\n\t\t\t\tparaName,\n\t\t\t);\n\n\t\t\tif (interfac === undefined) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Failed to find parameters type declaration for evaluator ${evalNode.name.getText()}`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tlet rawDocTags = ts.getJSDocTags(evalNode);\n\t\t\tif (rawDocTags.length) {\n\t\t\t\tlet dict = getTagDict(rawDocTags);\n\t\t\t\tif (dict.summary) obj.Description = dict.summary;\n\t\t\t\tif (dict.creatorType)\n\t\t\t\t\tobj.Type = dict.creatorType as TScriptType;\n\t\t\t}\n\n\t\t\tobj.Parameters = genParameters(interfac);\n\t\t\tarr.push(obj);\n\t\t});\n\t});\n\n\twritePackageCreatorIndex(location, arr);\n}\n"],"names":["findTsNode","node","callback","result","ts","forEachChild","child","capitalizeFirstLetter","string","charAt","toUpperCase","slice","parseDefault","value","type","uType","parseFloat","parseInt","replace","findEvaluatorNode","isModuleDeclaration","body","classDeclaration","isClassDeclaration","isEvaluator","heritageClauses","some","clause","token","SyntaxKind","ExtendsKeyword","types","getText","includes","getParameter","evaluatorNode","memb","members","find","member","name","toLowerCase","isMethodDeclaration","parameters","para","findParametersInterface","interfaceName","interfaceDeclaration","isInterfaceDeclaration","undefined","getModuleName","sourceFile","fullName","packageB","genParameters","interfac","map","i","Name","length","Error","rawDocTags","getJSDocTags","dict","getTagDict","summary","Description","creatorType","Type","default","Default","DisplayIndex","tags","forEach","tag","tagName","text","comment","findParametersInterfaceInFiles","program","fileList","file","getSourceFile","extract","location","ignore","files","getPackageTypescriptFiles","filtered","filter","path","suffix","endsWith","arr","Array","createProgram","allowJs","getTypeChecker","obj","evalNode","moduleName","paraName","typeName","Parameters","push","writePackageCreatorIndex"],"mappings":"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"}
@@ -1,77 +0,0 @@
1
- 'use strict';
2
-
3
- var path = require('path');
4
- var fs = require('fs');
5
- var cli = require('../cli.js');
6
- var dependencies = require('../dependencies.js');
7
- require('update-notifier');
8
- require('yargs');
9
- require('tslib');
10
- require('os');
11
- require('child_process');
12
- require('assert');
13
- require('events');
14
- require('buffer');
15
- require('stream');
16
- require('util');
17
- require('constants');
18
- require('write-pkg');
19
- require('inquirer');
20
- require('resolve');
21
-
22
- function _interopNamespaceDefault(e) {
23
- var n = Object.create(null);
24
- if (e) {
25
- Object.keys(e).forEach(function (k) {
26
- if (k !== 'default') {
27
- var d = Object.getOwnPropertyDescriptor(e, k);
28
- Object.defineProperty(n, k, d.get ? d : {
29
- enumerable: true,
30
- get: function () { return e[k]; }
31
- });
32
- }
33
- });
34
- }
35
- n.default = e;
36
- return Object.freeze(n);
37
- }
38
-
39
- var path__namespace = /*#__PURE__*/_interopNamespaceDefault(path);
40
- var fs__namespace = /*#__PURE__*/_interopNamespaceDefault(fs);
41
-
42
- const DEFINITION_FILE_HINT = "// This file is automatically managed by the ig.gfx.packager.";
43
- const executePostInstall = workspace => {
44
- const manifest = cli.readWorkspaceNpmManifest(workspace);
45
- if (manifest === undefined) {
46
- throw new Error(`Expected an npm manifest to exist.`);
47
- }
48
- const libPath = cli.getWorkspaceLibPath(workspace);
49
- const existingDefinitions = fs__namespace.readdirSync(libPath);
50
-
51
- // delete all existing definition files that are managed by the packager.
52
- // we'll recreate all needed definitions in the next step.
53
- for (const existingDefinitionName of existingDefinitions) {
54
- const content = fs__namespace.readFileSync(path__namespace.join(libPath, existingDefinitionName), {
55
- encoding: "utf-8"
56
- });
57
- if (content.startsWith(DEFINITION_FILE_HINT)) {
58
- fs__namespace.rmSync(path__namespace.join(libPath, existingDefinitionName));
59
- }
60
- }
61
- fs__namespace.mkdirSync(libPath, {
62
- recursive: true
63
- });
64
- const libraryLocations = dependencies.determineWorkspaceIGLibraries(workspace);
65
- for (const location of libraryLocations) {
66
- const manifest = dependencies.readPublishedPackageNpmManifest(location);
67
-
68
- // add a hint to the top of the file so we know it's managed by the packager.
69
- const content = DEFINITION_FILE_HINT + " \n" + `// This is a reference to version ${manifest.version}\n` + `/// <reference types="${manifest.name}" />`;
70
- fs__namespace.writeFileSync(path__namespace.join(cli.getWorkspaceLibPath(workspace), manifest.types), content, {
71
- encoding: "utf8"
72
- });
73
- }
74
- };
75
-
76
- exports.executePostInstall = executePostInstall;
77
- //# sourceMappingURL=postinstall.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"postinstall.js","sources":["../../src/commands/postinstall.ts"],"sourcesContent":["import * as path from \"path\";\nimport * as fs from \"fs\";\n\nimport {\n\tgetWorkspaceLibPath,\n\treadWorkspaceNpmManifest,\n\tWorkspaceLocation,\n} from \"../lib/workspace\";\nimport {\n\treadPublishedPackageCreatorManifest,\n\treadPublishedPackageNpmManifest,\n} 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\tif (manifest === undefined) {\n\t\tthrow new Error(`Expected an npm manifest to exist.`);\n\t}\n\n\tconst libPath = getWorkspaceLibPath(workspace);\n\tconst existingDefinitions = fs.readdirSync(libPath);\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 existingDefinitionName of existingDefinitions) {\n\t\tconst content = fs.readFileSync(\n\t\t\tpath.join(libPath, existingDefinitionName),\n\t\t\t{ encoding: \"utf-8\" },\n\t\t);\n\n\t\tif (content.startsWith(DEFINITION_FILE_HINT)) {\n\t\t\tfs.rmSync(path.join(libPath, existingDefinitionName));\n\t\t}\n\t}\n\n\tfs.mkdirSync(libPath, { recursive: true });\n\n\tconst libraryLocations = determineWorkspaceIGLibraries(workspace);\n\n\tfor (const location of libraryLocations) {\n\t\tconst manifest = readPublishedPackageNpmManifest(location);\n\n\t\t// add a hint to the top of the file so we know it's managed by the packager.\n\t\tconst content =\n\t\t\tDEFINITION_FILE_HINT +\n\t\t\t\" \\n\" +\n\t\t\t`// This is a reference to version ${manifest.version}\\n` +\n\t\t\t`/// <reference types=\"${manifest.name}\" />`;\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","manifest","readWorkspaceNpmManifest","undefined","Error","libPath","getWorkspaceLibPath","existingDefinitions","fs","readdirSync","existingDefinitionName","content","readFileSync","path","join","encoding","startsWith","rmSync","mkdirSync","recursive","libraryLocations","determineWorkspaceIGLibraries","location","readPublishedPackageNpmManifest","version","name","writeFileSync","types"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcA,MAAMA,oBAAoB,GACzB,+DAA+D,CAAA;AAEnDC,MAAAA,kBAAkB,GAAIC,SAA4B,IAAK;AACnE,EAAA,MAAMC,QAAQ,GAAGC,4BAAwB,CAACF,SAAS,CAAC,CAAA;EAEpD,IAAIC,QAAQ,KAAKE,SAAS,EAAE;AAC3B,IAAA,MAAM,IAAIC,KAAK,CAAE,CAAA,kCAAA,CAAmC,CAAC,CAAA;AACtD,GAAA;AAEA,EAAA,MAAMC,OAAO,GAAGC,uBAAmB,CAACN,SAAS,CAAC,CAAA;AAC9C,EAAA,MAAMO,mBAAmB,GAAGC,aAAE,CAACC,WAAW,CAACJ,OAAO,CAAC,CAAA;;AAEnD;AACA;AACA,EAAA,KAAK,MAAMK,sBAAsB,IAAIH,mBAAmB,EAAE;AACzD,IAAA,MAAMI,OAAO,GAAGH,aAAE,CAACI,YAAY,CAC9BC,eAAI,CAACC,IAAI,CAACT,OAAO,EAAEK,sBAAsB,CAAC,EAC1C;AAAEK,MAAAA,QAAQ,EAAE,OAAA;AAAQ,KAAC,CACrB,CAAA;AAED,IAAA,IAAIJ,OAAO,CAACK,UAAU,CAAClB,oBAAoB,CAAC,EAAE;MAC7CU,aAAE,CAACS,MAAM,CAACJ,eAAI,CAACC,IAAI,CAACT,OAAO,EAAEK,sBAAsB,CAAC,CAAC,CAAA;AACtD,KAAA;AACD,GAAA;AAEAF,EAAAA,aAAE,CAACU,SAAS,CAACb,OAAO,EAAE;AAAEc,IAAAA,SAAS,EAAE,IAAA;AAAK,GAAC,CAAC,CAAA;AAE1C,EAAA,MAAMC,gBAAgB,GAAGC,0CAA6B,CAACrB,SAAS,CAAC,CAAA;AAEjE,EAAA,KAAK,MAAMsB,QAAQ,IAAIF,gBAAgB,EAAE;AACxC,IAAA,MAAMnB,QAAQ,GAAGsB,4CAA+B,CAACD,QAAQ,CAAC,CAAA;;AAE1D;AACA,IAAA,MAAMX,OAAO,GACZb,oBAAoB,GACpB,KAAK,GACJ,CAAoCG,kCAAAA,EAAAA,QAAQ,CAACuB,OAAQ,IAAG,GACxD,CAAA,sBAAA,EAAwBvB,QAAQ,CAACwB,IAAK,CAAK,IAAA,CAAA,CAAA;AAE7CjB,IAAAA,aAAE,CAACkB,aAAa,CACfb,eAAI,CAACC,IAAI,CAACR,uBAAmB,CAACN,SAAS,CAAC,EAAEC,QAAQ,CAAC0B,KAAK,CAAC,EACzDhB,OAAO,EACP;AACCI,MAAAA,QAAQ,EAAE,MAAA;AACX,KAAC,CACD,CAAA;AACF,GAAA;AACD;;;;"}
@@ -1,156 +0,0 @@
1
- 'use strict';
2
-
3
- var path = require('path');
4
- var fs = require('fs');
5
- var require$$1 = require('child_process');
6
- var cli = require('../cli.js');
7
- var versionFile = require('../versionFile.js');
8
- var index = require('./build.js');
9
- require('update-notifier');
10
- require('yargs');
11
- require('tslib');
12
- require('os');
13
- require('assert');
14
- require('events');
15
- require('buffer');
16
- require('stream');
17
- require('util');
18
- require('constants');
19
- require('write-pkg');
20
- require('inquirer');
21
- require('simple-git');
22
- require('glob');
23
- require('terser');
24
- require('typescript');
25
- require('../scripts.js');
26
- require('typedoc');
27
-
28
- function _interopNamespaceDefault(e) {
29
- var n = Object.create(null);
30
- if (e) {
31
- Object.keys(e).forEach(function (k) {
32
- if (k !== 'default') {
33
- var d = Object.getOwnPropertyDescriptor(e, k);
34
- Object.defineProperty(n, k, d.get ? d : {
35
- enumerable: true,
36
- get: function () { return e[k]; }
37
- });
38
- }
39
- });
40
- }
41
- n.default = e;
42
- return Object.freeze(n);
43
- }
44
-
45
- var path__namespace = /*#__PURE__*/_interopNamespaceDefault(path);
46
- var fs__namespace = /*#__PURE__*/_interopNamespaceDefault(fs);
47
-
48
- const publishToNpm = async ({
49
- workspace,
50
- location,
51
- version: providedVersion,
52
- dryRun
53
- }) => {
54
- let newVersion;
55
- try {
56
- newVersion = versionFile.parseVersionFromString(providedVersion);
57
- } catch (err) {
58
- throw new Error(`Please enter a version in this format 1.0.0.100`);
59
- }
60
- if (newVersion.buildNumber < 100) {
61
- newVersion.preRelease = {
62
- type: "beta",
63
- version: newVersion.buildNumber
64
- };
65
- } else if (newVersion.buildNumber === 100) {
66
- newVersion.preRelease = undefined;
67
- } else {
68
- throw new Error(`Refusing to publish a package with a build version larger than 100.`);
69
- }
70
- const workspaceManifest = cli.readWorkspaceNpmManifest(workspace);
71
- const workspaceOutputPath = cli.getWorkspaceOutputPath(workspace);
72
- const creatorPackage = cli.readPackageCreatorManifest(location);
73
- let packageJson = cli.readPackageNpmManifest(location);
74
- if (packageJson === undefined) {
75
- packageJson = {
76
- name: "@intelligentgraphics/3d" + creatorPackage.Package.toLowerCase(),
77
- version: "1.0.0",
78
- description: creatorPackage.Package
79
- };
80
- }
81
- packageJson.version = newVersion.toVersionString({
82
- buildNumber: false
83
- });
84
- packageJson.description = newVersion.toDescriptionString(creatorPackage.Package);
85
- packageJson.main = `${creatorPackage.Package}.js`;
86
- packageJson.types = `${creatorPackage.Package}.d.ts`;
87
- packageJson.publishConfig ??= {};
88
- packageJson.publishConfig.acccess = "public";
89
- packageJson.ig = {
90
- scriptingLibrary: true
91
- };
92
- packageJson.files = undefined;
93
- const publishDir = path__namespace.join(workspaceOutputPath, "publish", creatorPackage.Package);
94
- fs__namespace.rmSync(publishDir, {
95
- recursive: true,
96
- force: true
97
- });
98
- fs__namespace.mkdirSync(publishDir, {
99
- recursive: true
100
- });
101
- cli.writePackageNpmManifest(location, packageJson);
102
- versionFile.getVersionFileHandler(location).write(creatorPackage.Package, newVersion);
103
- const gitVersionInformation = await versionFile.getVersionInformationFromGit(workspace, location);
104
- const bannerText = workspaceManifest !== undefined ? versionFile.getWorkspaceBannerText(workspaceManifest) : undefined;
105
- await index.buildFolders({
106
- cwd: workspace.path,
107
- directories: [location.path],
108
- minimize: true,
109
- outDir: cli.getWorkspaceOutputPath(workspace),
110
- banner: {
111
- text: bannerText,
112
- commit: gitVersionInformation.commit,
113
- commitDirty: gitVersionInformation.dirty,
114
- version: newVersion.toVersionString({
115
- buildNumber: true
116
- }),
117
- date: new Date(Date.now())
118
- }
119
- });
120
- fs__namespace.copyFileSync(path__namespace.join(cli.getWorkspaceOutputPath(workspace), `${creatorPackage.Package}.d.ts`), path__namespace.join(publishDir, `${creatorPackage.Package}.d.ts`));
121
- fs__namespace.copyFileSync(path__namespace.join(cli.getWorkspaceOutputPath(workspace), `${creatorPackage.Package}.min.js`), path__namespace.join(publishDir, `${creatorPackage.Package}.js`));
122
- fs__namespace.copyFileSync(path__namespace.join(location.manifestDir, "package.json"), path__namespace.join(publishDir, "package.json"));
123
- fs__namespace.writeFileSync(path__namespace.join(publishDir, "_Package.json"), JSON.stringify(creatorPackage, null, 2));
124
- const index$1 = cli.readPackageCreatorIndex(location);
125
- if (index$1 !== undefined) {
126
- fs__namespace.writeFileSync(path__namespace.join(publishDir, "_Index.json"), JSON.stringify(index$1));
127
- }
128
- const readmeName = fs__namespace.readdirSync(location.path).find(name => name.toLowerCase() === "readme.md");
129
- if (readmeName !== undefined) {
130
- fs__namespace.copyFileSync(path__namespace.join(location.path, readmeName), path__namespace.join(publishDir, readmeName));
131
- }
132
- const npmPublishArgs = [];
133
- if (dryRun) {
134
- npmPublishArgs.push("--dry-run");
135
- }
136
- if (newVersion.preRelease) {
137
- npmPublishArgs.push("--tag", "next");
138
- }
139
- index.logPackageMessage(creatorPackage.Package, `Publishing to npm with version ${packageJson.version} using tag ${newVersion.preRelease ? "next" : "latest"}`);
140
- require$$1.spawnSync("npm", ["publish", ...npmPublishArgs], {
141
- stdio: "inherit",
142
- encoding: "utf8",
143
- cwd: publishDir
144
- });
145
- for (const packageLocation of cli.iterateWorkspacePackages(workspace)) {
146
- var _manifest$dependencie;
147
- const manifest = cli.readPackageNpmManifest(packageLocation);
148
- if ((manifest === null || manifest === void 0 ? void 0 : (_manifest$dependencie = manifest.dependencies) === null || _manifest$dependencie === void 0 ? void 0 : _manifest$dependencie[packageJson.name]) !== undefined) {
149
- manifest.dependencies[packageJson.name] = "^" + packageJson.version;
150
- cli.writePackageNpmManifest(packageLocation, manifest);
151
- }
152
- }
153
- };
154
-
155
- exports.publishToNpm = publishToNpm;
156
- //# sourceMappingURL=publishNpm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"publishNpm.js","sources":["../../src/commands/publishNpm.ts"],"sourcesContent":["import * as path from \"path\";\nimport * as fs from \"fs\";\nimport { spawnSync } from \"child_process\";\n\nimport { PackageVersion } from \"@intelligentgraphics/ig.tools.core\";\n\nimport {\n\tPackageLocation,\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 =\n\t\tworkspaceManifest !== undefined\n\t\t\t? getWorkspaceBannerText(workspaceManifest)\n\t\t\t: undefined;\n\n\tawait buildFolders({\n\t\tcwd: workspace.path,\n\t\tdirectories: [location.path],\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.json\"),\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.json\"),\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\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\tspawnSync(\"npm\", [\"publish\", ...npmPublishArgs], {\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"],"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","cwd","directories","minimize","outDir","banner","text","commit","commitDirty","dirty","date","Date","now","copyFileSync","manifestDir","writeFileSync","JSON","stringify","index","readPackageCreatorIndex","readmeName","readdirSync","find","npmPublishArgs","push","logPackageMessage","spawnSync","stdio","encoding","packageLocation","iterateWorkspacePackages","manifest","dependencies"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCO,MAAMA,YAAY,GAAG,OAAO;EAClCC,SAAS;EACTC,QAAQ;AACRC,EAAAA,OAAO,EAAEC,eAAe;AACxBC,EAAAA,MAAAA;AACqB,CAAC,KAAK;AAC3B,EAAA,IAAIC,UAA0B,CAAA;EAC9B,IAAI;AACHA,IAAAA,UAAU,GAAGC,kCAAsB,CAACH,eAAe,CAAC,CAAA;GACpD,CAAC,OAAOI,GAAG,EAAE;AACb,IAAA,MAAM,IAAIC,KAAK,CAAE,CAAA,+CAAA,CAAgD,CAAC,CAAA;AACnE,GAAA;AAEA,EAAA,IAAIH,UAAU,CAACI,WAAW,GAAG,GAAG,EAAE;IACjCJ,UAAU,CAACK,UAAU,GAAG;AACvBC,MAAAA,IAAI,EAAE,MAAM;MACZT,OAAO,EAAEG,UAAU,CAACI,WAAAA;KACpB,CAAA;AACF,GAAC,MAAM,IAAIJ,UAAU,CAACI,WAAW,KAAK,GAAG,EAAE;IAC1CJ,UAAU,CAACK,UAAU,GAAGE,SAAS,CAAA;AAClC,GAAC,MAAM;AACN,IAAA,MAAM,IAAIJ,KAAK,CACb,CAAA,mEAAA,CAAoE,CACrE,CAAA;AACF,GAAA;AAEA,EAAA,MAAMK,iBAAiB,GAAGC,4BAAwB,CAACd,SAAS,CAAC,CAAA;AAC7D,EAAA,MAAMe,mBAAmB,GAAGC,0BAAsB,CAAChB,SAAS,CAAC,CAAA;AAC7D,EAAA,MAAMiB,cAAc,GAAGC,8BAA0B,CAACjB,QAAQ,CAAC,CAAA;AAC3D,EAAA,IAAIkB,WAAW,GAAGC,0BAAsB,CAACnB,QAAQ,CAAC,CAAA;EAElD,IAAIkB,WAAW,KAAKP,SAAS,EAAE;AAC9BO,IAAAA,WAAW,GAAG;MACbE,IAAI,EACH,yBAAyB,GACzBJ,cAAc,CAACK,OAAO,CAACC,WAAW,EAAE;AACrCrB,MAAAA,OAAO,EAAE,OAAO;MAChBsB,WAAW,EAAEP,cAAc,CAACK,OAAAA;KAC5B,CAAA;AACF,GAAA;AAEAH,EAAAA,WAAW,CAACjB,OAAO,GAAGG,UAAU,CAACoB,eAAe,CAAC;AAChDhB,IAAAA,WAAW,EAAE,KAAA;AACd,GAAC,CAAC,CAAA;EACFU,WAAW,CAACK,WAAW,GAAGnB,UAAU,CAACqB,mBAAmB,CACvDT,cAAc,CAACK,OAAO,CACtB,CAAA;AACDH,EAAAA,WAAW,CAACQ,IAAI,GAAI,GAAEV,cAAc,CAACK,OAAQ,CAAI,GAAA,CAAA,CAAA;AACjDH,EAAAA,WAAW,CAACS,KAAK,GAAI,GAAEX,cAAc,CAACK,OAAQ,CAAM,KAAA,CAAA,CAAA;AACpDH,EAAAA,WAAW,CAACU,aAAa,KAAK,EAAE,CAAA;AAChCV,EAAAA,WAAW,CAACU,aAAa,CAACC,OAAO,GAAG,QAAQ,CAAA;EAC5CX,WAAW,CAACY,EAAE,GAAG;AAChBC,IAAAA,gBAAgB,EAAE,IAAA;GAClB,CAAA;EACDb,WAAW,CAACc,KAAK,GAAGrB,SAAS,CAAA;AAE7B,EAAA,MAAMsB,UAAU,GAAGC,eAAI,CAACC,IAAI,CAC3BrB,mBAAmB,EACnB,SAAS,EACTE,cAAc,CAACK,OAAO,CACtB,CAAA;AACDe,EAAAA,aAAE,CAACC,MAAM,CAACJ,UAAU,EAAE;AAAEK,IAAAA,SAAS,EAAE,IAAI;AAAEC,IAAAA,KAAK,EAAE,IAAA;AAAK,GAAC,CAAC,CAAA;AACvDH,EAAAA,aAAE,CAACI,SAAS,CAACP,UAAU,EAAE;AAAEK,IAAAA,SAAS,EAAE,IAAA;AAAK,GAAC,CAAC,CAAA;AAE7CG,EAAAA,2BAAuB,CAACzC,QAAQ,EAAEkB,WAAW,CAAC,CAAA;EAE9CwB,iCAAqB,CAAC1C,QAAQ,CAAC,CAAC2C,KAAK,CAAC3B,cAAc,CAACK,OAAO,EAAEjB,UAAU,CAAC,CAAA;EAEzE,MAAMwC,qBAAqB,GAAG,MAAMC,wCAA4B,CAC/D9C,SAAS,EACTC,QAAQ,CACR,CAAA;EAED,MAAM8C,UAAU,GACflC,iBAAiB,KAAKD,SAAS,GAC5BoC,kCAAsB,CAACnC,iBAAiB,CAAC,GACzCD,SAAS,CAAA;AAEb,EAAA,MAAMqC,kBAAY,CAAC;IAClBC,GAAG,EAAElD,SAAS,CAACmC,IAAI;AACnBgB,IAAAA,WAAW,EAAE,CAAClD,QAAQ,CAACkC,IAAI,CAAC;AAC5BiB,IAAAA,QAAQ,EAAE,IAAI;AACdC,IAAAA,MAAM,EAAErC,0BAAsB,CAAChB,SAAS,CAAC;AACzCsD,IAAAA,MAAM,EAAE;AACPC,MAAAA,IAAI,EAAER,UAAU;MAChBS,MAAM,EAAEX,qBAAqB,CAACW,MAAM;MACpCC,WAAW,EAAEZ,qBAAqB,CAACa,KAAK;AACxCxD,MAAAA,OAAO,EAAEG,UAAU,CAACoB,eAAe,CAAC;AACnChB,QAAAA,WAAW,EAAE,IAAA;AACd,OAAC,CAAC;AACFkD,MAAAA,IAAI,EAAE,IAAIC,IAAI,CAACA,IAAI,CAACC,GAAG,EAAE,CAAA;AAC1B,KAAA;AACD,GAAC,CAAC,CAAA;AAEFxB,EAAAA,aAAE,CAACyB,YAAY,CACd3B,eAAI,CAACC,IAAI,CACRpB,0BAAsB,CAAChB,SAAS,CAAC,EAChC,GAAEiB,cAAc,CAACK,OAAQ,CAAA,KAAA,CAAM,CAChC,EACDa,eAAI,CAACC,IAAI,CAACF,UAAU,EAAG,CAAA,EAAEjB,cAAc,CAACK,OAAQ,CAAA,KAAA,CAAM,CAAC,CACvD,CAAA;AACDe,EAAAA,aAAE,CAACyB,YAAY,CACd3B,eAAI,CAACC,IAAI,CACRpB,0BAAsB,CAAChB,SAAS,CAAC,EAChC,GAAEiB,cAAc,CAACK,OAAQ,CAAA,OAAA,CAAQ,CAClC,EACDa,eAAI,CAACC,IAAI,CAACF,UAAU,EAAG,CAAA,EAAEjB,cAAc,CAACK,OAAQ,CAAA,GAAA,CAAI,CAAC,CACrD,CAAA;EAEDe,aAAE,CAACyB,YAAY,CACd3B,eAAI,CAACC,IAAI,CAACnC,QAAQ,CAAC8D,WAAW,EAAE,cAAc,CAAC,EAC/C5B,eAAI,CAACC,IAAI,CAACF,UAAU,EAAE,cAAc,CAAC,CACrC,CAAA;EAEDG,aAAE,CAAC2B,aAAa,CACf7B,eAAI,CAACC,IAAI,CAACF,UAAU,EAAE,eAAe,CAAC,EACtC+B,IAAI,CAACC,SAAS,CAACjD,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CACvC,CAAA;AAED,EAAA,MAAMkD,OAAK,GAAGC,2BAAuB,CAACnE,QAAQ,CAAC,CAAA;EAE/C,IAAIkE,OAAK,KAAKvD,SAAS,EAAE;AACxByB,IAAAA,aAAE,CAAC2B,aAAa,CACf7B,eAAI,CAACC,IAAI,CAACF,UAAU,EAAE,aAAa,CAAC,EACpC+B,IAAI,CAACC,SAAS,CAACC,OAAK,CAAC,CACrB,CAAA;AACF,GAAA;EAEA,MAAME,UAAU,GAAGhC,aAAE,CACnBiC,WAAW,CAACrE,QAAQ,CAACkC,IAAI,CAAC,CAC1BoC,IAAI,CAAElD,IAAI,IAAKA,IAAI,CAACE,WAAW,EAAE,KAAK,WAAW,CAAC,CAAA;EAEpD,IAAI8C,UAAU,KAAKzD,SAAS,EAAE;IAC7ByB,aAAE,CAACyB,YAAY,CACd3B,eAAI,CAACC,IAAI,CAACnC,QAAQ,CAACkC,IAAI,EAAEkC,UAAU,CAAC,EACpClC,eAAI,CAACC,IAAI,CAACF,UAAU,EAAEmC,UAAU,CAAC,CACjC,CAAA;AACF,GAAA;EAEA,MAAMG,cAAwB,GAAG,EAAE,CAAA;AAEnC,EAAA,IAAIpE,MAAM,EAAE;AACXoE,IAAAA,cAAc,CAACC,IAAI,CAAC,WAAW,CAAC,CAAA;AACjC,GAAA;EAEA,IAAIpE,UAAU,CAACK,UAAU,EAAE;AAC1B8D,IAAAA,cAAc,CAACC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;AACrC,GAAA;AAEAC,EAAAA,uBAAiB,CAChBzD,cAAc,CAACK,OAAO,EACrB,CAAA,+BAAA,EAAiCH,WAAW,CAACjB,OAAQ,CACrDG,WAAAA,EAAAA,UAAU,CAACK,UAAU,GAAG,MAAM,GAAG,QACjC,EAAC,CACF,CAAA;EAEDiE,oBAAS,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,GAAGH,cAAc,CAAC,EAAE;AAChDI,IAAAA,KAAK,EAAE,SAAS;AAChBC,IAAAA,QAAQ,EAAE,MAAM;AAChB3B,IAAAA,GAAG,EAAEhB,UAAAA;AACN,GAAC,CAAC,CAAA;AAEF,EAAA,KAAK,MAAM4C,eAAe,IAAIC,4BAAwB,CAAC/E,SAAS,CAAC,EAAE;AAAA,IAAA,IAAA,qBAAA,CAAA;AAClE,IAAA,MAAMgF,QAAQ,GAAG5D,0BAAsB,CAAC0D,eAAe,CAAC,CAAA;AAExD,IAAA,IAAI,CAAAE,QAAQ,KAAA,IAAA,IAARA,QAAQ,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAA,qBAAA,GAARA,QAAQ,CAAEC,YAAY,MAAtB,IAAA,IAAA,qBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,qBAAA,CAAyB9D,WAAW,CAACE,IAAI,CAAC,MAAKT,SAAS,EAAE;AAC7DoE,MAAAA,QAAQ,CAACC,YAAY,CAAC9D,WAAW,CAACE,IAAI,CAAC,GAAG,GAAG,GAAGF,WAAW,CAACjB,OAAO,CAAA;AACnEwC,MAAAA,2BAAuB,CAACoC,eAAe,EAAEE,QAAQ,CAAC,CAAA;AACnD,KAAA;AACD,GAAA;AACD;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"release.js","sources":["../../src/lib/assetService.ts","../../src/commands/release/zip.ts","../../src/commands/release/index.ts"],"sourcesContent":["import axios from \"axios\";\nimport * as fs from \"fs\";\n\nimport { Authentication } from \"./authentication\";\n\nexport interface SessionStartParams\n\textends Omit<\n\t\tSessionStartPayload,\n\t\t\"user\" | \"password\" | \"license\" | \"plugin\"\n\t> {\n\tauthentication: Authentication;\n\turl: string;\n}\n\nexport interface SessionStartPayload {\n\tplugin: string;\n\taddress: string | undefined;\n\tdomain: string;\n\tsubDomain: string;\n\tuser: string | undefined;\n\tpassword: string | undefined;\n\tlicense: string | undefined;\n}\n\nexport interface SessionStartResponse {\n\tsession: string;\n\tstate: string;\n}\n\nconst PLUGIN_ID = \"0feba3a0-b6d1-11e6-9598-0800200c9a66\";\n\nexport interface Session {\n\turl: string;\n\tsessionId: string;\n\tdomain: string;\n\tsubDomain: string;\n}\n\n/**\n * Starts an asset service session and returns the sessionId\n *\n * @param {SessionStartParams} params\n * @returns\n */\nexport const startSession = async ({\n\turl,\n\tauthentication,\n\t...params\n}: SessionStartParams): Promise<Session> => {\n\tconst payload: SessionStartPayload = {\n\t\t...params,\n\t\tuser: undefined,\n\t\tpassword: undefined,\n\t\tlicense: undefined,\n\t\tplugin: PLUGIN_ID,\n\t};\n\n\tif (authentication.type === \"credentials\") {\n\t\tpayload.user = authentication.username;\n\t\tpayload.password = authentication.password;\n\t} else if (authentication.type === \"license\") {\n\t\tpayload.license = authentication.license;\n\t}\n\n\tconst {\n\t\tdata: { session: sessionId, state },\n\t} = await axios.post<SessionStartResponse>(\n\t\t`Session/Start2`,\n\t\tJSON.stringify(payload),\n\t\t{\n\t\t\tbaseURL: url,\n\t\t},\n\t);\n\n\tif (state !== \"SUCCESS\") {\n\t\tthrow new Error(\n\t\t\t`Could not start session: Asset server responded with ${state}`,\n\t\t);\n\t}\n\n\treturn {\n\t\turl,\n\t\tsessionId,\n\t\tdomain: params.domain,\n\t\tsubDomain: params.subDomain,\n\t};\n};\n\nexport const closeSession = async (session: Session) => {\n\tawait axios.get(`Session/Close/${session.sessionId}`, {\n\t\tbaseURL: session.url,\n\t});\n};\n\nexport interface UploadPackageDetails {\n\tname: string;\n\tversion: string;\n}\n\nexport const uploadPackage = async (\n\tsession: Session,\n\t{ name, version }: UploadPackageDetails,\n\tzipFilePath: string,\n) => {\n\ttry {\n\t\tawait uploadPackageToUrl(\n\t\t\tsession.url,\n\t\t\t`UploadPackage/${session.sessionId}/${name}_${version}`,\n\t\t\tzipFilePath,\n\t\t);\n\t} catch (err) {\n\t\tawait uploadPackageToUrl(\n\t\t\tsession.url,\n\t\t\t`UploadPackage/${session.sessionId}/${name}_${version}/`,\n\t\t\tzipFilePath,\n\t\t);\n\t}\n};\n\nexport interface ExistingPackage {\n\tscope: string;\n\tinformalVersion: string;\n\tsupport: boolean;\n}\n\nexport const getExistingPackages = async (\n\tsession: Session,\n): Promise<ExistingPackage[] | undefined> =>\n\taxios\n\t\t.get(`Script/GetInformation/${session.sessionId}`, {\n\t\t\tbaseURL: session.url,\n\t\t\tvalidateStatus: (status) => status === 404 || status === 200,\n\t\t})\n\t\t.then(({ data }) => (Array.isArray(data) ? data : undefined));\n\nconst uploadPackageToUrl = (url: string, path: string, zipFilePath: string) =>\n\taxios\n\t\t.post(path, fs.createReadStream(zipFilePath), {\n\t\t\tbaseURL: url,\n\t\t})\n\t\t.then(({ data, status }) => {\n\t\t\tlet objectBody: any;\n\n\t\t\tif (typeof data === \"string\") {\n\t\t\t\ttry {\n\t\t\t\t\tobjectBody = JSON.parse(data);\n\t\t\t\t} catch (err) {}\n\t\t\t} else if (typeof data === \"object\") {\n\t\t\t\tobjectBody = data;\n\t\t\t}\n\n\t\t\tif (objectBody !== undefined) {\n\t\t\t\tif (\"state\" in objectBody && objectBody.state !== \"SUCCESS\") {\n\t\t\t\t\tthrow new Error(objectBody.response ?? objectBody.state);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (status >= 400) {\n\t\t\t\tif (objectBody !== undefined) {\n\t\t\t\t\tlet text = \"\";\n\n\t\t\t\t\tfor (const key in objectBody) {\n\t\t\t\t\t\ttext += key + \": \\n\";\n\t\t\t\t\t\tif (typeof objectBody[key] === \"object\") {\n\t\t\t\t\t\t\ttext += JSON.stringify(\n\t\t\t\t\t\t\t\tobjectBody[key],\n\t\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttext += objectBody[key];\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttext += \"\\n\\n\";\n\t\t\t\t\t}\n\n\t\t\t\t\tthrow new Error(text);\n\t\t\t\t}\n\n\t\t\t\tthrow new Error(data);\n\t\t\t}\n\n\t\t\treturn data;\n\t\t});\n","import Ajv, { ValidateFunction } from \"ajv\";\nimport axios from \"axios\";\nimport JSZip from \"jszip\";\nimport * as path from \"path\";\nimport * as fs from \"fs\";\nimport * as terser from \"terser\";\n\nimport { isErrorENOENT } from \"../../lib/error\";\nimport { logPackageMessage } from \"../../lib/log\";\nimport {\n\tCreatorPackage,\n\treadPackageCreatorManifest,\n\twritePackageCreatorManifest,\n\treadPackageAnimationList,\n\treadPackageCreatorIndex,\n\tparseCreatorPackageName,\n\tPackageLocation,\n\tPackageNpmManifest,\n} from \"../../lib/package\";\nimport { getWorkspaceOutputPath, WorkspaceLocation } from \"../../lib/workspace\";\nimport {\n\tPublishedPackageLocation,\n\treadPublishedPackageCreatorIndex,\n} from \"../../lib/publishedPackage\";\n\nexport const buildArchiveFromPublishedPackage = (\n\tlocation: PublishedPackageLocation,\n\tmanifest: PackageNpmManifest,\n\tcreatorPackage: CreatorPackage,\n) => {\n\tconst archive = new JSZip();\n\n\tarchive.file(\"_Package.json\", JSON.stringify(creatorPackage, null, 2));\n\n\tconst index = readPublishedPackageCreatorIndex(location);\n\n\tif (index !== undefined) {\n\t\tarchive.file(\"_Index.json\", 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\treturn archive;\n};\n\nlet validateSchema: ValidateFunction | undefined;\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\tworkspaceLocation: WorkspaceLocation,\n\tpackageLocation: PackageLocation,\n\tdata: CreatorPackage,\n) => {\n\tconst { domain, subdomain } = parseCreatorPackageName(data);\n\n\tconst logStep = (step: string) => logPackageMessage(data.Package, step);\n\n\tif (validateSchema === undefined) {\n\t\tvalidateSchema = await axios\n\t\t\t.get(\n\t\t\t\t\"https://archive.intelligentgraphics.biz/schemas/gfx/animation.json\",\n\t\t\t)\n\t\t\t.then(({ data }) =>\n\t\t\t\tnew Ajv({\n\t\t\t\t\tcoerceTypes: true,\n\t\t\t\t\tallErrors: true,\n\t\t\t\t\tremoveAdditional: true,\n\t\t\t\t\tuseDefaults: \"empty\",\n\t\t\t\t\tvalidateSchema: \"log\",\n\t\t\t\t}).compile(data),\n\t\t\t);\n\t}\n\n\tconst libFilePath = path.join(\n\t\tgetWorkspaceOutputPath(workspaceLocation),\n\t\t`${data.Package}.min.js`,\n\t);\n\n\tconst scriptDirectories: string[] = [\n\t\tpackageLocation.path,\n\t\tpackageLocation.scriptsDir,\n\t];\n\n\tif (subdomain === \"GFX.Standard\") {\n\t\tlogStep(`Including Images folder`);\n\t\tscriptDirectories.push(path.join(packageLocation.path, \"Images\"));\n\t}\n\n\tconst manifest = readPackageCreatorManifest(packageLocation);\n\n\tif (manifest !== undefined) {\n\t\tif (manifest.RunTime && notRuntimeScripts.includes(manifest.Type)) {\n\t\t\tlogStep(\"Setting script RunTime to false because of script type\");\n\t\t\twritePackageCreatorManifest(packageLocation, {\n\t\t\t\t...manifest,\n\t\t\t\tRunTime: false,\n\t\t\t});\n\t\t} else if (\n\t\t\t!manifest.RunTime &&\n\t\t\truntimeScripts.includes(manifest.Type)\n\t\t) {\n\t\t\tlogStep(\"Setting script RunTime to true because of script type\");\n\t\t\twritePackageCreatorManifest(packageLocation, {\n\t\t\t\t...manifest,\n\t\t\t\tRunTime: true,\n\t\t\t});\n\t\t}\n\t}\n\n\t// if (index === undefined) {\n\t// \tthrow new Error(\n\t// \t\t`Could not find an \"${INDEX_FILE}\" file in \"${primaryScriptDir}\"`,\n\t// \t);\n\t// }\n\n\tconst animations = new Map<string, string>();\n\n\tfor (const scriptFilePath of readPackageAnimationList(packageLocation)) {\n\t\tconst content = fs.readFileSync(scriptFilePath, { encoding: \"utf8\" })!;\n\n\t\tlet data: { Id: string };\n\n\t\ttry {\n\t\t\tdata = JSON.parse(content);\n\t\t} catch (err) {\n\t\t\tconst relativePath = path.relative(\n\t\t\t\tworkspaceLocation.path,\n\t\t\t\tscriptFilePath,\n\t\t\t);\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\tvalidateSchema!(data);\n\n\t\tanimations.set(data.Id, JSON.stringify(data));\n\t}\n\n\tlet libFile: string | undefined;\n\n\ttry {\n\t\tlibFile = fs.readFileSync(libFilePath, { encoding: \"utf8\" });\n\t} catch (err) {\n\t\tif (!isErrorENOENT(err)) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\n\tif (libFile === undefined) {\n\t\tif (animations.size === 0) {\n\t\t\tthrow new Error(`Could not find a javascript file at \"${libFilePath}\".\nPackaging without a javascript file is only allowed when animation json files are available`);\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\tif (animations.size > 0) {\n\t\tconst scopeParts = data.Scope.split(\".\");\n\t\tconst scope = data.Scope;\n\n\t\tlibrary += createNamespace(scopeParts);\n\n\t\tfor (const [name, data] of animations) {\n\t\t\tlibrary += `${scope}.${name} = ` + data + \";\";\n\t\t\tconsole.log(`${name}: Added animation ${scope}.${name}`);\n\t\t}\n\t}\n\n\tconst minifyResult = terser.minify(library, { ecma: 5 });\n\n\tarchive.file(`${data.Package}.js`, minifyResult.code!);\n\tarchive.file(`_Package.json`, JSON.stringify(data, null, 2));\n\n\tconst creatorIndex = readPackageCreatorIndex(packageLocation);\n\n\tif (creatorIndex !== undefined) {\n\t\tarchive.file(`_Index.json`, JSON.stringify(creatorIndex, null, 2));\n\t}\n\n\tfor (const directory of scriptDirectories) {\n\t\ttry {\n\t\t\tfor (const file of fs.readdirSync(directory)) {\n\t\t\t\tconst { ext } = path.parse(file);\n\n\t\t\t\tswitch (ext) {\n\t\t\t\t\tcase \".png\":\n\t\t\t\t\tcase \".jpeg\":\n\t\t\t\t\tcase \".jpg\":\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tarchive.file(\n\t\t\t\t\tfile,\n\t\t\t\t\tfs.createReadStream(path.join(directory, file)),\n\t\t\t\t);\n\t\t\t}\n\t\t} catch (err) {\n\t\t\tconsole.error(`Script directory \"${directory}\" does not exist`);\n\t\t}\n\t}\n\n\treturn archive;\n};\n\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","import * as path from \"path\";\nimport * as fs from \"fs\";\nimport { pipeline } from \"stream/promises\";\nimport { execSync } from \"child_process\";\n\nimport { PackageVersion } from \"@intelligentgraphics/ig.tools.core\";\n\nimport { logPackageMessage } from \"../../lib/log\";\nimport { translate } from \"../../localization\";\nimport { Authentication } from \"../../lib/authentication\";\nimport {\n\tCreatorPackage,\n\tdetectPackage,\n\tgetPackageReleasesDirectory,\n\tparseCreatorPackageName,\n\treadPackageCreatorManifest,\n} from \"../../lib/package\";\nimport {\n\tdetectWorkspace,\n\tgetWorkspaceOutputPath,\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 * as AssetService from \"../../lib/assetService\";\nimport { isErrorENOENT } from \"../../lib/error\";\n\nimport { BuildFoldersOptions, buildFolders } from \"../build\";\nimport {\n\tbuildArchiveFromPackage,\n\tbuildArchiveFromPublishedPackage,\n} from \"./zip\";\nimport { determineWorkspaceIGLibraries } from \"../../lib/dependencies\";\nimport {\n\treadPublishedPackageCreatorManifest,\n\treadPublishedPackageNpmManifest,\n} from \"../../lib/publishedPackage\";\nimport { Prompter } from \"../../lib/prompter\";\n\nexport interface ReleaseFolderOptions\n\textends Omit<\n\t\tBuildFoldersOptions,\n\t\t\"skipPackagesWithoutTsFiles\" | \"banner\" | \"directories\"\n\t> {\n\tdirectory: string;\n\tnoUpload: boolean;\n\tnewVersion: string;\n\tdomain?: string;\n\tsubdomain?: string;\n\taddress?: string;\n\tservice: string;\n\tauthentication?: Authentication;\n\tpushOnly: boolean;\n\tbanner?: boolean;\n\tprompter: Prompter;\n}\n\nexport const releaseFolder = async (options: ReleaseFolderOptions) => {\n\tconst workspace = detectWorkspace(options.cwd);\n\tconst location = detectPackage(workspace, options.directory);\n\n\tconst { write: writeVersionFile, reset: resetVersionFile } =\n\t\tgetVersionFileHandler(location);\n\n\tconst packageDescription = readPackageCreatorManifest(location);\n\tconst fullPackageName = packageDescription.Package;\n\tconst { domain, subdomain } = parseCreatorPackageName(packageDescription);\n\n\tconst publishDomain = options.domain ?? domain;\n\tconst publishSubdomain = options.subdomain ?? subdomain;\n\n\tconst sharedPackageJson = readWorkspaceNpmManifest(workspace);\n\n\tlet newVersion: PackageVersion;\n\ttry {\n\t\tnewVersion = parseVersionFromString(options.newVersion);\n\t} catch (err) {\n\t\tthrow new Error(`Please enter a version in this format 1.0.0.100`);\n\t}\n\n\tif (newVersion.buildNumber < 100) {\n\t\tnewVersion.preRelease = {\n\t\t\ttype: \"beta\",\n\t\t\tversion: newVersion.buildNumber,\n\t\t};\n\t} else if (newVersion.buildNumber > 100) {\n\t\tnewVersion.preRelease = {\n\t\t\ttype: \"patch\",\n\t\t\tversion: newVersion.buildNumber - 100,\n\t\t};\n\t}\n\n\tif (sharedPackageJson !== undefined) {\n\t\tlogPackageMessage(\n\t\t\tpackageDescription.Package,\n\t\t\t`Running npm install to make sure all dependencies are up to date`,\n\t\t);\n\t\texecSync(`npm install`, { encoding: \"utf-8\", cwd: workspace.path });\n\t}\n\n\tconst binDir = getWorkspaceOutputPath(workspace);\n\tfs.mkdirSync(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\tconst zipFilePath = path.join(binDir, packageNameWithVersion + \".zip\");\n\n\ttry {\n\t\tif (options.pushOnly) {\n\t\t\tif (!fs.existsSync(zipFilePath)) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Expected a zip file to exist at path ${zipFilePath} since pushOnly is specified`,\n\t\t\t\t);\n\t\t\t}\n\t\t} else {\n\t\t\tconst gitVersionInformation = await getVersionInformationFromGit(\n\t\t\t\tworkspace,\n\t\t\t\tlocation,\n\t\t\t);\n\n\t\t\twriteVersionFile(fullPackageName, newVersion);\n\n\t\t\tconst bannerText =\n\t\t\t\tsharedPackageJson !== undefined\n\t\t\t\t\t? getWorkspaceBannerText(sharedPackageJson)\n\t\t\t\t\t: undefined;\n\n\t\t\tawait buildFolders({\n\t\t\t\t...options,\n\t\t\t\tdirectories: [location.path],\n\t\t\t\tskipPackagesWithoutTsFiles: true,\n\t\t\t\tbanner: options.banner\n\t\t\t\t\t? {\n\t\t\t\t\t\t\ttext: bannerText,\n\t\t\t\t\t\t\tcommit: gitVersionInformation.commit,\n\t\t\t\t\t\t\tcommitDirty: gitVersionInformation.dirty,\n\t\t\t\t\t\t\tversion: newVersion.toVersionString({\n\t\t\t\t\t\t\t\tbuildNumber: true,\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\tdate: new Date(Date.now()),\n\t\t\t\t\t\t\t// gitVersionInformation.commitDate\n\t\t\t\t\t\t\t// \t? new Date(gitVersionInformation.commitDate)\n\t\t\t\t\t\t\t// \t: new Date(Date.now()),\n\t\t\t\t\t }\n\t\t\t\t\t: undefined,\n\t\t\t});\n\n\t\t\tnewVersion.preRelease = undefined;\n\n\t\t\ttry {\n\t\t\t\tfs.rmSync(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\tconst archive = await buildArchiveFromPackage(\n\t\t\t\tworkspace,\n\t\t\t\tlocation,\n\t\t\t\tpackageDescription,\n\t\t\t);\n\n\t\t\tconst zipOutputStream = fs.createWriteStream(zipFilePath);\n\t\t\tawait pipeline(archive.generateNodeStream(), zipOutputStream);\n\t\t}\n\n\t\tif (!options.noUpload) {\n\t\t\tif (!options.authentication) {\n\t\t\t\tthrow new Error(`Expected authentication to be available`);\n\t\t\t}\n\n\t\t\tlogPackageMessage(\n\t\t\t\tpackageDescription.Package,\n\t\t\t\t`Opening connection to asset server`,\n\t\t\t);\n\n\t\t\tconst sessionManager = await createSessionManager({\n\t\t\t\turl: options.service,\n\t\t\t\taddress: options.address,\n\t\t\t\tdomain: publishDomain,\n\t\t\t\tsubDomain: publishSubdomain,\n\t\t\t\tauthentication: options.authentication,\n\t\t\t});\n\n\t\t\tlogPackageMessage(\n\t\t\t\tpackageDescription.Package,\n\t\t\t\t`Making sure all dependencies are available with an acceptable version`,\n\t\t\t);\n\n\t\t\tif (\n\t\t\t\t!(await ensureRequiredVersions(\n\t\t\t\t\tworkspace,\n\t\t\t\t\tpackageDescription,\n\t\t\t\t\tsessionManager,\n\t\t\t\t\toptions.prompter,\n\t\t\t\t))\n\t\t\t) {\n\t\t\t\tlogPackageMessage(\n\t\t\t\t\tpackageDescription.Package,\n\t\t\t\t\t\"AssetService does not yet support required apis for dependency check\",\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tlogPackageMessage(\n\t\t\t\tpackageDescription.Package,\n\t\t\t\t`Uploading package to ${publishDomain}.${publishSubdomain}`,\n\t\t\t);\n\n\t\t\tawait AssetService.uploadPackage(\n\t\t\t\tsessionManager.getTargetSession(),\n\t\t\t\tassetServerPackageDetails,\n\t\t\t\tzipFilePath,\n\t\t\t);\n\n\t\t\tawait sessionManager.destroy().catch((err) => {\n\t\t\t\tlogPackageMessage(\n\t\t\t\t\tpackageDescription.Package,\n\t\t\t\t\t`Failed to close asset service session(s): ${err}`,\n\t\t\t\t);\n\t\t\t});\n\t\t}\n\t} catch (err) {\n\t\tresetVersionFile();\n\t\tthrow err;\n\t}\n\n\tif (newVersion.buildNumber >= 100 && !options.pushOnly) {\n\t\tlogPackageMessage(\n\t\t\tfullPackageName,\n\t\t\ttranslate(\"messages.movingReleaseZip\"),\n\t\t);\n\n\t\tconst zipFileName = `${packageNameWithVersion}.zip`;\n\t\tconst releasesPath = getPackageReleasesDirectory(location);\n\n\t\tfs.mkdirSync(releasesPath, { recursive: true });\n\t\tfs.copyFileSync(zipFilePath, path.join(releasesPath, zipFileName));\n\t}\n};\n\nconst ensureRequiredVersions = async (\n\tworkspaceLocation: WorkspaceLocation,\n\tcreatorPackage: CreatorPackage,\n\tsessionManager: SessionManager,\n\tprompter: Prompter,\n) => {\n\tinterface UploadedPackage\n\t\textends Omit<AssetService.ExistingPackage, \"version\"> {\n\t\tversion: PackageVersion;\n\t}\n\n\tconst targetSession = sessionManager.getTargetSession();\n\n\tconst rawUploadedPackages = await AssetService.getExistingPackages(\n\t\ttargetSession,\n\t);\n\n\tif (rawUploadedPackages === undefined) {\n\t\treturn false;\n\t}\n\n\tconst uploadedPackages = rawUploadedPackages.map(\n\t\t(entry): UploadedPackage => {\n\t\t\tlet version: PackageVersion;\n\t\t\ttry {\n\t\t\t\tversion = parseVersionFromString(entry.informalVersion);\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.informalVersion}`,\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\tconst libraries = determineWorkspaceIGLibraries(workspaceLocation);\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\tif (\n\t\t\ttargetSession.subDomain !== \"Basics\" &&\n\t\t\t(uploadedPackageInBasics !== undefined ||\n\t\t\t\tuploadedPackageInTarget !== undefined)\n\t\t) {\n\t\t\tlogPackageMessage(\n\t\t\t\tcreatorPackage.Package,\n\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);\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\tlogPackageMessage(\n\t\t\t\tcreatorPackage.Package,\n\t\t\t\t`Skipping upload for package ${libraryCreatorPackage.Package} as it is already uploaded and up to date.`,\n\t\t\t);\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (uploadedPackageInBasics) {\n\t\t\tlogPackageMessage(\n\t\t\t\tcreatorPackage.Package,\n\t\t\t\t`Found invalid version for package ${libraryCreatorPackage.Package} in Basics.`,\n\t\t\t);\n\t\t}\n\t\tif (targetSession.subDomain !== \"Basics\" && uploadedPackageInTarget) {\n\t\t\tlogPackageMessage(\n\t\t\t\tcreatorPackage.Package,\n\t\t\t\t`Found invalid version for package ${libraryCreatorPackage.Package} in ${targetSession.subDomain}.`,\n\t\t\t);\n\t\t}\n\n\t\tconst possibleTargets: string[] = [\"Basics\"];\n\n\t\tif (targetSession.subDomain !== \"Basics\") {\n\t\t\tpossibleTargets.push(targetSession.subDomain);\n\t\t}\n\n\t\tconst uploadTargetScope = await prompter.ask({\n\t\t\tmessage: `${libraryCreatorPackage.Package} is not available at all or has an invalid version. Select the scope to upload it to`,\n\t\t\toptions: [...possibleTargets, \"Skip\"],\n\t\t\tdefault: possibleTargets[0],\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\t\tconst packageNameWithVersion = `${libraryCreatorPackage.Package}_${newVersionString}`;\n\n\t\tconst zipFilePath = path.join(\n\t\t\tgetWorkspaceOutputPath(workspaceLocation),\n\t\t\t`${packageNameWithVersion}.zip`,\n\t\t);\n\n\t\ttry {\n\t\t\tfs.rmSync(zipFilePath);\n\t\t} catch (err) {\n\t\t\tif (!isErrorENOENT(err)) {\n\t\t\t\tthrow err;\n\t\t\t}\n\t\t}\n\n\t\tconst zipOutputStream = fs.createWriteStream(zipFilePath);\n\t\tawait pipeline(archive.generateNodeStream(), zipOutputStream);\n\n\t\tconst session =\n\t\t\tuploadTargetScope === \"Basics\"\n\t\t\t\t? await sessionManager.getBasicsSession()\n\t\t\t\t: targetSession;\n\n\t\tlogPackageMessage(\n\t\t\tcreatorPackage.Package,\n\t\t\t`Uploading package ${libraryCreatorPackage.Package} with version ${newVersionString} to ${session.domain}.${session.subDomain}`,\n\t\t);\n\n\t\tawait AssetService.uploadPackage(\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\tzipFilePath,\n\t\t);\n\t}\n\n\treturn true;\n};\n\ninterface SessionManager {\n\tgetBasicsSession: () => Promise<AssetService.Session>;\n\tgetTargetSession: () => AssetService.Session;\n\tdestroy: () => Promise<void>;\n}\n\nconst createSessionManager = async (\n\tparams: AssetService.SessionStartParams,\n): Promise<SessionManager> => {\n\tconst targetSession = await AssetService.startSession(params);\n\tlet basicsSession: AssetService.Session | undefined;\n\n\treturn {\n\t\tgetBasicsSession: async () => {\n\t\t\tif (targetSession.subDomain === \"Basics\") {\n\t\t\t\treturn targetSession;\n\t\t\t}\n\n\t\t\tif (basicsSession === undefined) {\n\t\t\t\tbasicsSession = await AssetService.startSession({\n\t\t\t\t\t...params,\n\t\t\t\t\tsubDomain: \"Basics\",\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn basicsSession;\n\t\t},\n\n\t\tgetTargetSession: () => targetSession,\n\n\t\tdestroy: async () => {\n\t\t\tawait AssetService.closeSession(targetSession);\n\n\t\t\tif (basicsSession !== undefined) {\n\t\t\t\tawait AssetService.closeSession(basicsSession);\n\t\t\t}\n\t\t},\n\t};\n};\n"],"names":["PLUGIN_ID","startSession","url","authentication","params","payload","user","undefined","password","license","plugin","type","username","data","session","sessionId","state","axios","post","JSON","stringify","baseURL","Error","domain","subDomain","closeSession","get","uploadPackage","name","version","zipFilePath","uploadPackageToUrl","err","getExistingPackages","validateStatus","status","then","Array","isArray","path","fs","createReadStream","objectBody","parse","response","text","key","buildArchiveFromPublishedPackage","location","manifest","creatorPackage","archive","JSZip","file","index","readPublishedPackageCreatorIndex","main","join","validateSchema","runtimeScripts","notRuntimeScripts","buildArchiveFromPackage","workspaceLocation","packageLocation","subdomain","parseCreatorPackageName","logStep","step","logPackageMessage","Package","Ajv","coerceTypes","allErrors","removeAdditional","useDefaults","compile","libFilePath","getWorkspaceOutputPath","scriptDirectories","scriptsDir","push","readPackageCreatorManifest","RunTime","includes","Type","writePackageCreatorManifest","animations","Map","scriptFilePath","readPackageAnimationList","content","readFileSync","encoding","relativePath","relative","SyntaxError","String","cause","set","Id","libFile","isErrorENOENT","size","library","date","Date","now","getFullYear","scopeParts","Scope","split","scope","createNamespace","console","log","minifyResult","terser","minify","ecma","code","creatorIndex","readPackageCreatorIndex","directory","readdirSync","ext","error","parts","length","slice","releaseFolder","options","workspace","detectWorkspace","cwd","detectPackage","write","writeVersionFile","reset","resetVersionFile","getVersionFileHandler","packageDescription","fullPackageName","publishDomain","publishSubdomain","sharedPackageJson","readWorkspaceNpmManifest","newVersion","parseVersionFromString","buildNumber","preRelease","execSync","binDir","mkdirSync","recursive","assetServerPackageDetails","packageNameWithVersion","versionWithoutPrelease","clone","newVersionString","toVersionString","pushOnly","existsSync","gitVersionInformation","getVersionInformationFromGit","bannerText","getWorkspaceBannerText","buildFolders","directories","skipPackagesWithoutTsFiles","banner","commit","commitDirty","dirty","rmSync","zipOutputStream","createWriteStream","pipeline","generateNodeStream","noUpload","sessionManager","createSessionManager","service","address","ensureRequiredVersions","prompter","AssetService","getTargetSession","destroy","catch","translate","zipFileName","releasesPath","getPackageReleasesDirectory","copyFileSync","targetSession","rawUploadedPackages","uploadedPackages","map","entry","informalVersion","libraries","determineWorkspaceIGLibraries","libraryLocation","libraryManifest","readPublishedPackageNpmManifest","libraryCreatorPackage","readPublishedPackageCreatorManifest","libraryVersion","PackageVersion","extractFromLine","uploadedPackageInBasics","uploadedPackageInTarget","uploadedPackage","support","validInBasics","isLesserThan","validInTarget","possibleTargets","uploadTargetScope","ask","message","default","getBasicsSession","basicsSession"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BA,MAAMA,SAAS,GAAG,sCAAsC,CAAA;AASxD;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,YAAY,GAAG,OAAO;EAClCC,GAAG;EACHC,cAAc;EACd,GAAGC,MAAAA;AACgB,CAAC,KAAuB;AAC3C,EAAA,MAAMC,OAA4B,GAAG;AACpC,IAAA,GAAGD,MAAM;AACTE,IAAAA,IAAI,EAAEC,SAAS;AACfC,IAAAA,QAAQ,EAAED,SAAS;AACnBE,IAAAA,OAAO,EAAEF,SAAS;AAClBG,IAAAA,MAAM,EAAEV,SAAAA;GACR,CAAA;AAED,EAAA,IAAIG,cAAc,CAACQ,IAAI,KAAK,aAAa,EAAE;AAC1CN,IAAAA,OAAO,CAACC,IAAI,GAAGH,cAAc,CAACS,QAAQ,CAAA;AACtCP,IAAAA,OAAO,CAACG,QAAQ,GAAGL,cAAc,CAACK,QAAQ,CAAA;AAC3C,GAAC,MAAM,IAAIL,cAAc,CAACQ,IAAI,KAAK,SAAS,EAAE;AAC7CN,IAAAA,OAAO,CAACI,OAAO,GAAGN,cAAc,CAACM,OAAO,CAAA;AACzC,GAAA;EAEA,MAAM;AACLI,IAAAA,IAAI,EAAE;AAAEC,MAAAA,OAAO,EAAEC,SAAS;AAAEC,MAAAA,KAAAA;AAAM,KAAA;AACnC,GAAC,GAAG,MAAMC,KAAK,CAACC,IAAI,CAClB,CAAA,cAAA,CAAe,EAChBC,IAAI,CAACC,SAAS,CAACf,OAAO,CAAC,EACvB;AACCgB,IAAAA,OAAO,EAAEnB,GAAAA;AACV,GAAC,CACD,CAAA;EAED,IAAIc,KAAK,KAAK,SAAS,EAAE;AACxB,IAAA,MAAM,IAAIM,KAAK,CACb,CAAuDN,qDAAAA,EAAAA,KAAM,EAAC,CAC/D,CAAA;AACF,GAAA;EAEA,OAAO;IACNd,GAAG;IACHa,SAAS;IACTQ,MAAM,EAAEnB,MAAM,CAACmB,MAAM;IACrBC,SAAS,EAAEpB,MAAM,CAACoB,SAAAA;GAClB,CAAA;AACF,CAAC,CAAA;AAEM,MAAMC,YAAY,GAAG,MAAOX,OAAgB,IAAK;EACvD,MAAMG,KAAK,CAACS,GAAG,CAAE,iBAAgBZ,OAAO,CAACC,SAAU,CAAA,CAAC,EAAE;IACrDM,OAAO,EAAEP,OAAO,CAACZ,GAAAA;AAClB,GAAC,CAAC,CAAA;AACH,CAAC,CAAA;AAOM,MAAMyB,aAAa,GAAG,OAC5Bb,OAAgB,EAChB;EAAEc,IAAI;AAAEC,EAAAA,OAAAA;AAA8B,CAAC,EACvCC,WAAmB,KACf;EACJ,IAAI;AACH,IAAA,MAAMC,kBAAkB,CACvBjB,OAAO,CAACZ,GAAG,EACV,CAAgBY,cAAAA,EAAAA,OAAO,CAACC,SAAU,IAAGa,IAAK,CAAA,CAAA,EAAGC,OAAQ,CAAC,CAAA,EACvDC,WAAW,CACX,CAAA;GACD,CAAC,OAAOE,GAAG,EAAE;AACb,IAAA,MAAMD,kBAAkB,CACvBjB,OAAO,CAACZ,GAAG,EACV,CAAgBY,cAAAA,EAAAA,OAAO,CAACC,SAAU,IAAGa,IAAK,CAAA,CAAA,EAAGC,OAAQ,CAAE,CAAA,CAAA,EACxDC,WAAW,CACX,CAAA;AACF,GAAA;AACD,CAAC,CAAA;AAQM,MAAMG,mBAAmB,GAAG,MAClCnB,OAAgB,IAEhBG,KAAK,CACHS,GAAG,CAAE,CAAwBZ,sBAAAA,EAAAA,OAAO,CAACC,SAAU,EAAC,EAAE;EAClDM,OAAO,EAAEP,OAAO,CAACZ,GAAG;EACpBgC,cAAc,EAAGC,MAAM,IAAKA,MAAM,KAAK,GAAG,IAAIA,MAAM,KAAK,GAAA;AAC1D,CAAC,CAAC,CACDC,IAAI,CAAC,CAAC;AAAEvB,EAAAA,IAAAA;AAAK,CAAC,KAAMwB,KAAK,CAACC,OAAO,CAACzB,IAAI,CAAC,GAAGA,IAAI,GAAGN,SAAU,CAAC,CAAA;AAE/D,MAAMwB,kBAAkB,GAAG,CAAC7B,GAAW,EAAEqC,IAAY,EAAET,WAAmB,KACzEb,KAAK,CACHC,IAAI,CAACqB,IAAI,EAAEC,aAAE,CAACC,gBAAgB,CAACX,WAAW,CAAC,EAAE;AAC7CT,EAAAA,OAAO,EAAEnB,GAAAA;AACV,CAAC,CAAC,CACDkC,IAAI,CAAC,CAAC;EAAEvB,IAAI;AAAEsB,EAAAA,MAAAA;AAAO,CAAC,KAAK;AAC3B,EAAA,IAAIO,UAAe,CAAA;AAEnB,EAAA,IAAI,OAAO7B,IAAI,KAAK,QAAQ,EAAE;IAC7B,IAAI;AACH6B,MAAAA,UAAU,GAAGvB,IAAI,CAACwB,KAAK,CAAC9B,IAAI,CAAC,CAAA;AAC9B,KAAC,CAAC,OAAOmB,GAAG,EAAE,EAAC;AAChB,GAAC,MAAM,IAAI,OAAOnB,IAAI,KAAK,QAAQ,EAAE;AACpC6B,IAAAA,UAAU,GAAG7B,IAAI,CAAA;AAClB,GAAA;EAEA,IAAI6B,UAAU,KAAKnC,SAAS,EAAE;IAC7B,IAAI,OAAO,IAAImC,UAAU,IAAIA,UAAU,CAAC1B,KAAK,KAAK,SAAS,EAAE;MAC5D,MAAM,IAAIM,KAAK,CAACoB,UAAU,CAACE,QAAQ,IAAIF,UAAU,CAAC1B,KAAK,CAAC,CAAA;AACzD,KAAA;AACD,GAAA;EAEA,IAAImB,MAAM,IAAI,GAAG,EAAE;IAClB,IAAIO,UAAU,KAAKnC,SAAS,EAAE;MAC7B,IAAIsC,IAAI,GAAG,EAAE,CAAA;AAEb,MAAA,KAAK,MAAMC,GAAG,IAAIJ,UAAU,EAAE;QAC7BG,IAAI,IAAIC,GAAG,GAAG,MAAM,CAAA;AACpB,QAAA,IAAI,OAAOJ,UAAU,CAACI,GAAG,CAAC,KAAK,QAAQ,EAAE;AACxCD,UAAAA,IAAI,IAAI1B,IAAI,CAACC,SAAS,CACrBsB,UAAU,CAACI,GAAG,CAAC,EACfvC,SAAS,EACT,CAAC,CACD,CAAA;AACF,SAAC,MAAM;AACNsC,UAAAA,IAAI,IAAIH,UAAU,CAACI,GAAG,CAAC,CAAA;AACxB,SAAA;AACAD,QAAAA,IAAI,IAAI,MAAM,CAAA;AACf,OAAA;AAEA,MAAA,MAAM,IAAIvB,KAAK,CAACuB,IAAI,CAAC,CAAA;AACtB,KAAA;AAEA,IAAA,MAAM,IAAIvB,KAAK,CAACT,IAAI,CAAC,CAAA;AACtB,GAAA;AAEA,EAAA,OAAOA,IAAI,CAAA;AACZ,CAAC,CAAC;;AC7JG,MAAMkC,gCAAgC,GAAG,CAC/CC,QAAkC,EAClCC,QAA4B,EAC5BC,cAA8B,KAC1B;AACJ,EAAA,MAAMC,OAAO,GAAG,IAAIC,KAAK,EAAE,CAAA;AAE3BD,EAAAA,OAAO,CAACE,IAAI,CAAC,eAAe,EAAElC,IAAI,CAACC,SAAS,CAAC8B,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;AAEtE,EAAA,MAAMI,KAAK,GAAGC,6CAAgC,CAACP,QAAQ,CAAC,CAAA;EAExD,IAAIM,KAAK,KAAK/C,SAAS,EAAE;AACxB4C,IAAAA,OAAO,CAACE,IAAI,CAAC,aAAa,EAAElC,IAAI,CAACC,SAAS,CAACkC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;AAC5D,GAAA;EAEAH,OAAO,CAACE,IAAI,CACXJ,QAAQ,CAACO,IAAI,EACbhB,aAAE,CAACC,gBAAgB,CAACF,eAAI,CAACkB,IAAI,CAACT,QAAQ,CAACT,IAAI,EAAEU,QAAQ,CAACO,IAAI,CAAC,CAAC,CAC5D,CAAA;AAED,EAAA,OAAOL,OAAO,CAAA;AACf,CAAC,CAAA;AAED,IAAIO,cAA4C,CAAA;AAEhD,MAAMC,cAAwC,GAAG,CAChD,YAAY,EACZ,MAAM,EACN,OAAO,CACP,CAAA;AAED,MAAMC,iBAA2C,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;AAErE,MAAMC,uBAAuB,GAAG,OACtCC,iBAAoC,EACpCC,eAAgC,EAChClD,IAAoB,KAChB;EACJ,MAAM;IAAEU,MAAM;AAAEyC,IAAAA,SAAAA;AAAU,GAAC,GAAGC,2BAAuB,CAACpD,IAAI,CAAC,CAAA;EAE3D,MAAMqD,OAAO,GAAIC,IAAY,IAAKC,uBAAiB,CAACvD,IAAI,CAACwD,OAAO,EAAEF,IAAI,CAAC,CAAA;EAEvE,IAAIT,cAAc,KAAKnD,SAAS,EAAE;IACjCmD,cAAc,GAAG,MAAMzC,KAAK,CAC1BS,GAAG,CACH,oEAAoE,CACpE,CACAU,IAAI,CAAC,CAAC;AAAEvB,MAAAA,IAAAA;KAAM,KACd,IAAIyD,GAAG,CAAC;AACPC,MAAAA,WAAW,EAAE,IAAI;AACjBC,MAAAA,SAAS,EAAE,IAAI;AACfC,MAAAA,gBAAgB,EAAE,IAAI;AACtBC,MAAAA,WAAW,EAAE,OAAO;AACpBhB,MAAAA,cAAc,EAAE,KAAA;AACjB,KAAC,CAAC,CAACiB,OAAO,CAAC9D,IAAI,CAAC,CAChB,CAAA;AACH,GAAA;AAEA,EAAA,MAAM+D,WAAW,GAAGrC,eAAI,CAACkB,IAAI,CAC5BoB,0BAAsB,CAACf,iBAAiB,CAAC,EACxC,CAAEjD,EAAAA,IAAI,CAACwD,OAAQ,SAAQ,CACxB,CAAA;EAED,MAAMS,iBAA2B,GAAG,CACnCf,eAAe,CAACxB,IAAI,EACpBwB,eAAe,CAACgB,UAAU,CAC1B,CAAA;EAED,IAAIf,SAAS,KAAK,cAAc,EAAE;IACjCE,OAAO,CAAE,yBAAwB,CAAC,CAAA;AAClCY,IAAAA,iBAAiB,CAACE,IAAI,CAACzC,eAAI,CAACkB,IAAI,CAACM,eAAe,CAACxB,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAA;AAClE,GAAA;AAEA,EAAA,MAAMU,QAAQ,GAAGgC,8BAA0B,CAAClB,eAAe,CAAC,CAAA;EAE5D,IAAId,QAAQ,KAAK1C,SAAS,EAAE;AAC3B,IAAA,IAAI0C,QAAQ,CAACiC,OAAO,IAAItB,iBAAiB,CAACuB,QAAQ,CAAClC,QAAQ,CAACmC,IAAI,CAAC,EAAE;MAClElB,OAAO,CAAC,wDAAwD,CAAC,CAAA;MACjEmB,+BAA2B,CAACtB,eAAe,EAAE;AAC5C,QAAA,GAAGd,QAAQ;AACXiC,QAAAA,OAAO,EAAE,KAAA;AACV,OAAC,CAAC,CAAA;AACH,KAAC,MAAM,IACN,CAACjC,QAAQ,CAACiC,OAAO,IACjBvB,cAAc,CAACwB,QAAQ,CAAClC,QAAQ,CAACmC,IAAI,CAAC,EACrC;MACDlB,OAAO,CAAC,uDAAuD,CAAC,CAAA;MAChEmB,+BAA2B,CAACtB,eAAe,EAAE;AAC5C,QAAA,GAAGd,QAAQ;AACXiC,QAAAA,OAAO,EAAE,IAAA;AACV,OAAC,CAAC,CAAA;AACH,KAAA;AACD,GAAA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,EAAA,MAAMI,UAAU,GAAG,IAAIC,GAAG,EAAkB,CAAA;AAE5C,EAAA,KAAK,MAAMC,cAAc,IAAIC,4BAAwB,CAAC1B,eAAe,CAAC,EAAE;AACvE,IAAA,MAAM2B,OAAO,GAAGlD,aAAE,CAACmD,YAAY,CAACH,cAAc,EAAE;AAAEI,MAAAA,QAAQ,EAAE,MAAA;AAAO,KAAC,CAAE,CAAA;AAEtE,IAAA,IAAI/E,IAAoB,CAAA;IAExB,IAAI;AACHA,MAAAA,IAAI,GAAGM,IAAI,CAACwB,KAAK,CAAC+C,OAAO,CAAC,CAAA;KAC1B,CAAC,OAAO1D,GAAG,EAAE;MACb,MAAM6D,YAAY,GAAGtD,eAAI,CAACuD,QAAQ,CACjChC,iBAAiB,CAACvB,IAAI,EACtBiD,cAAc,CACd,CAAA;MAED,IAAIxD,GAAG,YAAY+D,WAAW,EAAE;QAC/B,MAAM,IAAIzE,KAAK,CACb,CAAsCuE,oCAAAA,EAAAA,YAAa,CAAKG,GAAAA,EAAAA,MAAM,CAC9DhE,GAAG,CACF,CAAA,CAAC,CACH,CAAA;AACF,OAAA;AACA,MAAA,MAAM,IAAIV,KAAK,CACb,CAA6EuE,2EAAAA,EAAAA,YAAa,GAAE,EAC7F;AACCI,QAAAA,KAAK,EAAEjE,GAAAA;AACR,OAAC,CACD,CAAA;AACF,KAAA;IAEA0B,cAAc,CAAE7C,IAAI,CAAC,CAAA;AAErByE,IAAAA,UAAU,CAACY,GAAG,CAACrF,IAAI,CAACsF,EAAE,EAAEhF,IAAI,CAACC,SAAS,CAACP,IAAI,CAAC,CAAC,CAAA;AAC9C,GAAA;AAEA,EAAA,IAAIuF,OAA2B,CAAA;EAE/B,IAAI;AACHA,IAAAA,OAAO,GAAG5D,aAAE,CAACmD,YAAY,CAACf,WAAW,EAAE;AAAEgB,MAAAA,QAAQ,EAAE,MAAA;AAAO,KAAC,CAAC,CAAA;GAC5D,CAAC,OAAO5D,GAAG,EAAE;AACb,IAAA,IAAI,CAACqE,iBAAa,CAACrE,GAAG,CAAC,EAAE;AACxB,MAAA,MAAMA,GAAG,CAAA;AACV,KAAA;AACD,GAAA;EAEA,IAAIoE,OAAO,KAAK7F,SAAS,EAAE;AAC1B,IAAA,IAAI+E,UAAU,CAACgB,IAAI,KAAK,CAAC,EAAE;AAC1B,MAAA,MAAM,IAAIhF,KAAK,CAAE,CAAA,qCAAA,EAAuCsD,WAAY,CAAA;AACvE,2FAAA,CAA4F,CAAC,CAAA;AAC3F,KAAA;AACD,GAAA;AAEA,EAAA,MAAMzB,OAAO,GAAG,IAAIC,KAAK,EAAE,CAAA;EAE3B,IAAImD,OAAe,GAAG,EAAE,CAAA;AAExB,EAAA,IAAIH,OAAO,EAAE;AACZG,IAAAA,OAAO,GAAGH,OAAO,CAAA;AAClB,GAAA;EAEA,IAAI,CAACG,OAAO,EAAE;IACb,MAAMC,IAAI,GAAG,IAAIC,IAAI,CAACA,IAAI,CAACC,GAAG,EAAE,CAAC,CAAA;IACjCH,OAAO,GAAI,+BAA8BhF,MAAO,CAAA;AAClD,kBAAA,EAAoBiF,IAAI,CAACG,WAAW,EAAG,CAA8C,6CAAA,CAAA,CAAA;AACpF,GAAA;AAEA,EAAA,IAAIrB,UAAU,CAACgB,IAAI,GAAG,CAAC,EAAE;IACxB,MAAMM,UAAU,GAAG/F,IAAI,CAACgG,KAAK,CAACC,KAAK,CAAC,GAAG,CAAC,CAAA;AACxC,IAAA,MAAMC,KAAK,GAAGlG,IAAI,CAACgG,KAAK,CAAA;AAExBN,IAAAA,OAAO,IAAIS,eAAe,CAACJ,UAAU,CAAC,CAAA;IAEtC,KAAK,MAAM,CAAChF,IAAI,EAAEf,IAAI,CAAC,IAAIyE,UAAU,EAAE;MACtCiB,OAAO,IAAK,GAAEQ,KAAM,CAAA,CAAA,EAAGnF,IAAK,CAAI,GAAA,CAAA,GAAGf,IAAI,GAAG,GAAG,CAAA;MAC7CoG,OAAO,CAACC,GAAG,CAAE,CAAEtF,EAAAA,IAAK,qBAAoBmF,KAAM,CAAA,CAAA,EAAGnF,IAAK,CAAA,CAAC,CAAC,CAAA;AACzD,KAAA;AACD,GAAA;AAEA,EAAA,MAAMuF,YAAY,GAAGC,iBAAM,CAACC,MAAM,CAACd,OAAO,EAAE;AAAEe,IAAAA,IAAI,EAAE,CAAA;AAAE,GAAC,CAAC,CAAA;AAExDnE,EAAAA,OAAO,CAACE,IAAI,CAAE,CAAA,EAAExC,IAAI,CAACwD,OAAQ,CAAA,GAAA,CAAI,EAAE8C,YAAY,CAACI,IAAI,CAAE,CAAA;AACtDpE,EAAAA,OAAO,CAACE,IAAI,CAAE,CAAA,aAAA,CAAc,EAAElC,IAAI,CAACC,SAAS,CAACP,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;AAE5D,EAAA,MAAM2G,YAAY,GAAGC,2BAAuB,CAAC1D,eAAe,CAAC,CAAA;EAE7D,IAAIyD,YAAY,KAAKjH,SAAS,EAAE;AAC/B4C,IAAAA,OAAO,CAACE,IAAI,CAAE,CAAA,WAAA,CAAY,EAAElC,IAAI,CAACC,SAAS,CAACoG,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;AACnE,GAAA;AAEA,EAAA,KAAK,MAAME,SAAS,IAAI5C,iBAAiB,EAAE;IAC1C,IAAI;MACH,KAAK,MAAMzB,IAAI,IAAIb,aAAE,CAACmF,WAAW,CAACD,SAAS,CAAC,EAAE;QAC7C,MAAM;AAAEE,UAAAA,GAAAA;AAAI,SAAC,GAAGrF,eAAI,CAACI,KAAK,CAACU,IAAI,CAAC,CAAA;AAEhC,QAAA,QAAQuE,GAAG;AACV,UAAA,KAAK,MAAM,CAAA;AACX,UAAA,KAAK,OAAO,CAAA;AACZ,UAAA,KAAK,MAAM;AACV,YAAA,MAAA;AACD,UAAA;AACC,YAAA,SAAA;AAAS,SAAA;AAGXzE,QAAAA,OAAO,CAACE,IAAI,CACXA,IAAI,EACJb,aAAE,CAACC,gBAAgB,CAACF,eAAI,CAACkB,IAAI,CAACiE,SAAS,EAAErE,IAAI,CAAC,CAAC,CAC/C,CAAA;AACF,OAAA;KACA,CAAC,OAAOrB,GAAG,EAAE;AACbiF,MAAAA,OAAO,CAACY,KAAK,CAAE,CAAoBH,kBAAAA,EAAAA,SAAU,kBAAiB,CAAC,CAAA;AAChE,KAAA;AACD,GAAA;AAEA,EAAA,OAAOvE,OAAO,CAAA;AACf,CAAC,CAAA;AAED,MAAM6D,eAAe,GAAIc,KAAe,IAAK;AAC5C,EAAA,IAAIP,IAAI,GAAI,CAAA,IAAA,EAAMO,KAAK,CAAC,CAAC,CAAE,CAAE,CAAA,CAAA,CAAA;AAE7B,EAAA,KAAK,IAAIxE,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAGwE,KAAK,CAACC,MAAM,EAAEzE,KAAK,EAAE,EAAE;AAClD,IAAA,MAAMf,IAAI,GAAGuF,KAAK,CAACE,KAAK,CAAC,CAAC,EAAE1E,KAAK,GAAG,CAAC,CAAC,CAACG,IAAI,CAAC,GAAG,CAAC,CAAA;AAEhD8D,IAAAA,IAAI,IAAK,CAAA,GAAA,EAAKhF,IAAK,CAAA,GAAA,EAAKA,IAAK,CAAS,QAAA,CAAA,CAAA;AACvC,GAAA;AAEA,EAAA,OAAOgF,IAAI,CAAA;AACZ,CAAC;;AC/LYU,MAAAA,aAAa,GAAG,MAAOC,OAA6B,IAAK;AACrE,EAAA,MAAMC,SAAS,GAAGC,mBAAe,CAACF,OAAO,CAACG,GAAG,CAAC,CAAA;EAC9C,MAAMrF,QAAQ,GAAGsF,iBAAa,CAACH,SAAS,EAAED,OAAO,CAACR,SAAS,CAAC,CAAA;EAE5D,MAAM;AAAEa,IAAAA,KAAK,EAAEC,gBAAgB;AAAEC,IAAAA,KAAK,EAAEC,gBAAAA;AAAiB,GAAC,GACzDC,iCAAqB,CAAC3F,QAAQ,CAAC,CAAA;AAEhC,EAAA,MAAM4F,kBAAkB,GAAG3D,8BAA0B,CAACjC,QAAQ,CAAC,CAAA;AAC/D,EAAA,MAAM6F,eAAe,GAAGD,kBAAkB,CAACvE,OAAO,CAAA;EAClD,MAAM;IAAE9C,MAAM;AAAEyC,IAAAA,SAAAA;AAAU,GAAC,GAAGC,2BAAuB,CAAC2E,kBAAkB,CAAC,CAAA;AAEzE,EAAA,MAAME,aAAa,GAAGZ,OAAO,CAAC3G,MAAM,IAAIA,MAAM,CAAA;AAC9C,EAAA,MAAMwH,gBAAgB,GAAGb,OAAO,CAAClE,SAAS,IAAIA,SAAS,CAAA;AAEvD,EAAA,MAAMgF,iBAAiB,GAAGC,4BAAwB,CAACd,SAAS,CAAC,CAAA;AAE7D,EAAA,IAAIe,UAA0B,CAAA;EAC9B,IAAI;AACHA,IAAAA,UAAU,GAAGC,kCAAsB,CAACjB,OAAO,CAACgB,UAAU,CAAC,CAAA;GACvD,CAAC,OAAOlH,GAAG,EAAE;AACb,IAAA,MAAM,IAAIV,KAAK,CAAE,CAAA,+CAAA,CAAgD,CAAC,CAAA;AACnE,GAAA;AAEA,EAAA,IAAI4H,UAAU,CAACE,WAAW,GAAG,GAAG,EAAE;IACjCF,UAAU,CAACG,UAAU,GAAG;AACvB1I,MAAAA,IAAI,EAAE,MAAM;MACZkB,OAAO,EAAEqH,UAAU,CAACE,WAAAA;KACpB,CAAA;AACF,GAAC,MAAM,IAAIF,UAAU,CAACE,WAAW,GAAG,GAAG,EAAE;IACxCF,UAAU,CAACG,UAAU,GAAG;AACvB1I,MAAAA,IAAI,EAAE,OAAO;AACbkB,MAAAA,OAAO,EAAEqH,UAAU,CAACE,WAAW,GAAG,GAAA;KAClC,CAAA;AACF,GAAA;EAEA,IAAIJ,iBAAiB,KAAKzI,SAAS,EAAE;AACpC6D,IAAAA,uBAAiB,CAChBwE,kBAAkB,CAACvE,OAAO,EACzB,kEAAiE,CAClE,CAAA;IACDiF,mBAAQ,CAAE,aAAY,EAAE;AAAE1D,MAAAA,QAAQ,EAAE,OAAO;MAAEyC,GAAG,EAAEF,SAAS,CAAC5F,IAAAA;AAAK,KAAC,CAAC,CAAA;AACpE,GAAA;AAEA,EAAA,MAAMgH,MAAM,GAAG1E,0BAAsB,CAACsD,SAAS,CAAC,CAAA;AAChD3F,EAAAA,aAAE,CAACgH,SAAS,CAACD,MAAM,EAAE;AAAEE,IAAAA,SAAS,EAAE,IAAA;AAAK,GAAC,CAAC,CAAA;AAEzC,EAAA,IAAIC,yBAA4D,CAAA;AAEhE,EAAA,IAAIC,sBAA8B,CAAA;AAElC,EAAA;AACC,IAAA,MAAMC,sBAAsB,GAAGV,UAAU,CAACW,KAAK,EAAE,CAAA;IACjDD,sBAAsB,CAACP,UAAU,GAAG9I,SAAS,CAAA;AAC7C,IAAA,MAAMuJ,gBAAgB,GAAGF,sBAAsB,CAACG,eAAe,CAAC;AAC/DX,MAAAA,WAAW,EAAE,IAAA;AACd,KAAC,CAAC,CAAA;AACFO,IAAAA,sBAAsB,GAAI,CAAEf,EAAAA,kBAAkB,CAACvE,OAAQ,CAAA,CAAA,EAAGyF,gBAAiB,CAAC,CAAA,CAAA;AAE5EJ,IAAAA,yBAAyB,GAAG;MAC3B9H,IAAI,EAAEgH,kBAAkB,CAACvE,OAAO;AAChCxC,MAAAA,OAAO,EAAEiI,gBAAAA;KACT,CAAA;AACF,GAAA;EAEA,MAAMhI,WAAW,GAAGS,eAAI,CAACkB,IAAI,CAAC8F,MAAM,EAAEI,sBAAsB,GAAG,MAAM,CAAC,CAAA;EAEtE,IAAI;IACH,IAAIzB,OAAO,CAAC8B,QAAQ,EAAE;AACrB,MAAA,IAAI,CAACxH,aAAE,CAACyH,UAAU,CAACnI,WAAW,CAAC,EAAE;AAChC,QAAA,MAAM,IAAIR,KAAK,CACb,CAAuCQ,qCAAAA,EAAAA,WAAY,8BAA6B,CACjF,CAAA;AACF,OAAA;AACD,KAAC,MAAM;MACN,MAAMoI,qBAAqB,GAAG,MAAMC,wCAA4B,CAC/DhC,SAAS,EACTnF,QAAQ,CACR,CAAA;AAEDwF,MAAAA,gBAAgB,CAACK,eAAe,EAAEK,UAAU,CAAC,CAAA;MAE7C,MAAMkB,UAAU,GACfpB,iBAAiB,KAAKzI,SAAS,GAC5B8J,kCAAsB,CAACrB,iBAAiB,CAAC,GACzCzI,SAAS,CAAA;AAEb,MAAA,MAAM+J,kBAAY,CAAC;AAClB,QAAA,GAAGpC,OAAO;AACVqC,QAAAA,WAAW,EAAE,CAACvH,QAAQ,CAACT,IAAI,CAAC;AAC5BiI,QAAAA,0BAA0B,EAAE,IAAI;AAChCC,QAAAA,MAAM,EAAEvC,OAAO,CAACuC,MAAM,GACnB;AACA5H,UAAAA,IAAI,EAAEuH,UAAU;UAChBM,MAAM,EAAER,qBAAqB,CAACQ,MAAM;UACpCC,WAAW,EAAET,qBAAqB,CAACU,KAAK;AACxC/I,UAAAA,OAAO,EAAEqH,UAAU,CAACa,eAAe,CAAC;AACnCX,YAAAA,WAAW,EAAE,IAAA;AACd,WAAC,CAAC;AACF5C,UAAAA,IAAI,EAAE,IAAIC,IAAI,CAACA,IAAI,CAACC,GAAG,EAAE,CAAA;AACzB;AACA;AACA;AACA,SAAC,GACDnG,SAAAA;AACJ,OAAC,CAAC,CAAA;MAEF2I,UAAU,CAACG,UAAU,GAAG9I,SAAS,CAAA;MAEjC,IAAI;AACHiC,QAAAA,aAAE,CAACqI,MAAM,CAAC/I,WAAW,CAAC,CAAA;OACtB,CAAC,OAAOE,GAAG,EAAE;AACb,QAAA,IAAI,CAACqE,iBAAa,CAACrE,GAAG,CAAC,EAAE;AACxB,UAAA,MAAMA,GAAG,CAAA;AACV,SAAA;AACD,OAAA;MAEA,MAAMmB,OAAO,GAAG,MAAMU,uBAAuB,CAC5CsE,SAAS,EACTnF,QAAQ,EACR4F,kBAAkB,CAClB,CAAA;AAED,MAAA,MAAMkC,eAAe,GAAGtI,aAAE,CAACuI,iBAAiB,CAACjJ,WAAW,CAAC,CAAA;MACzD,MAAMkJ,iBAAQ,CAAC7H,OAAO,CAAC8H,kBAAkB,EAAE,EAAEH,eAAe,CAAC,CAAA;AAC9D,KAAA;AAEA,IAAA,IAAI,CAAC5C,OAAO,CAACgD,QAAQ,EAAE;AACtB,MAAA,IAAI,CAAChD,OAAO,CAAC/H,cAAc,EAAE;AAC5B,QAAA,MAAM,IAAImB,KAAK,CAAE,CAAA,uCAAA,CAAwC,CAAC,CAAA;AAC3D,OAAA;AAEA8C,MAAAA,uBAAiB,CAChBwE,kBAAkB,CAACvE,OAAO,EACzB,oCAAmC,CACpC,CAAA;AAED,MAAA,MAAM8G,cAAc,GAAG,MAAMC,oBAAoB,CAAC;QACjDlL,GAAG,EAAEgI,OAAO,CAACmD,OAAO;QACpBC,OAAO,EAAEpD,OAAO,CAACoD,OAAO;AACxB/J,QAAAA,MAAM,EAAEuH,aAAa;AACrBtH,QAAAA,SAAS,EAAEuH,gBAAgB;QAC3B5I,cAAc,EAAE+H,OAAO,CAAC/H,cAAAA;AACzB,OAAC,CAAC,CAAA;AAEFiE,MAAAA,uBAAiB,CAChBwE,kBAAkB,CAACvE,OAAO,EACzB,uEAAsE,CACvE,CAAA;AAED,MAAA,IACC,EAAE,MAAMkH,sBAAsB,CAC7BpD,SAAS,EACTS,kBAAkB,EAClBuC,cAAc,EACdjD,OAAO,CAACsD,QAAQ,CAChB,CAAC,EACD;AACDpH,QAAAA,uBAAiB,CAChBwE,kBAAkB,CAACvE,OAAO,EAC1B,sEAAsE,CACtE,CAAA;AACF,OAAA;MAEAD,uBAAiB,CAChBwE,kBAAkB,CAACvE,OAAO,EACzB,wBAAuByE,aAAc,CAAA,CAAA,EAAGC,gBAAiB,CAAA,CAAC,CAC3D,CAAA;AAED,MAAA,MAAM0C,aAA0B,CAC/BN,cAAc,CAACO,gBAAgB,EAAE,EACjChC,yBAAyB,EACzB5H,WAAW,CACX,CAAA;MAED,MAAMqJ,cAAc,CAACQ,OAAO,EAAE,CAACC,KAAK,CAAE5J,GAAG,IAAK;QAC7CoC,uBAAiB,CAChBwE,kBAAkB,CAACvE,OAAO,EACzB,CAA4CrC,0CAAAA,EAAAA,GAAI,EAAC,CAClD,CAAA;AACF,OAAC,CAAC,CAAA;AACH,KAAA;GACA,CAAC,OAAOA,GAAG,EAAE;AACb0G,IAAAA,gBAAgB,EAAE,CAAA;AAClB,IAAA,MAAM1G,GAAG,CAAA;AACV,GAAA;EAEA,IAAIkH,UAAU,CAACE,WAAW,IAAI,GAAG,IAAI,CAAClB,OAAO,CAAC8B,QAAQ,EAAE;AACvD5F,IAAAA,uBAAiB,CAChByE,eAAe,EACfgD,aAAS,CAAC,2BAA2B,CAAC,CACtC,CAAA;AAED,IAAA,MAAMC,WAAW,GAAI,CAAEnC,EAAAA,sBAAuB,CAAK,IAAA,CAAA,CAAA;AACnD,IAAA,MAAMoC,YAAY,GAAGC,+BAA2B,CAAChJ,QAAQ,CAAC,CAAA;AAE1DR,IAAAA,aAAE,CAACgH,SAAS,CAACuC,YAAY,EAAE;AAAEtC,MAAAA,SAAS,EAAE,IAAA;AAAK,KAAC,CAAC,CAAA;AAC/CjH,IAAAA,aAAE,CAACyJ,YAAY,CAACnK,WAAW,EAAES,eAAI,CAACkB,IAAI,CAACsI,YAAY,EAAED,WAAW,CAAC,CAAC,CAAA;AACnE,GAAA;AACD,EAAC;AAED,MAAMP,sBAAsB,GAAG,OAC9BzH,iBAAoC,EACpCZ,cAA8B,EAC9BiI,cAA8B,EAC9BK,QAAkB,KACd;AAMJ,EAAA,MAAMU,aAAa,GAAGf,cAAc,CAACO,gBAAgB,EAAE,CAAA;EAEvD,MAAMS,mBAAmB,GAAG,MAAMV,mBAAgC,CACjES,aAAa,CACb,CAAA;EAED,IAAIC,mBAAmB,KAAK5L,SAAS,EAAE;AACtC,IAAA,OAAO,KAAK,CAAA;AACb,GAAA;AAEA,EAAA,MAAM6L,gBAAgB,GAAGD,mBAAmB,CAACE,GAAG,CAC9CC,KAAK,IAAsB;AAC3B,IAAA,IAAIzK,OAAuB,CAAA;IAC3B,IAAI;AACHA,MAAAA,OAAO,GAAGsH,kCAAsB,CAACmD,KAAK,CAACC,eAAe,CAAC,CAAA;KACvD,CAAC,OAAOvK,GAAG,EAAE;MACb,MAAM,IAAIV,KAAK,CACb,CAAA,uCAAA,EAAyCgL,KAAK,CAACC,eAAgB,EAAC,CACjE,CAAA;AACF,KAAA;AAEA,IAAA,IAAI1K,OAAO,CAACuH,WAAW,GAAG,GAAG,EAAE;MAC9BvH,OAAO,CAACwH,UAAU,GAAG;AACpB1I,QAAAA,IAAI,EAAE,MAAM;QACZkB,OAAO,EAAEA,OAAO,CAACuH,WAAAA;OACjB,CAAA;AACF,KAAC,MAAM,IAAIvH,OAAO,CAACuH,WAAW,GAAG,GAAG,EAAE;MACrCvH,OAAO,CAACwH,UAAU,GAAG;AACpB1I,QAAAA,IAAI,EAAE,OAAO;AACbkB,QAAAA,OAAO,EAAEA,OAAO,CAACuH,WAAW,GAAG,GAAA;OAC/B,CAAA;AACF,KAAA;IAEA,OAAO;AACN,MAAA,GAAGkD,KAAK;AACRzK,MAAAA,OAAAA;KACA,CAAA;AACF,GAAC,CACD,CAAA;AAED,EAAA,MAAM2K,SAAS,GAAGC,0CAA6B,CAAC3I,iBAAiB,CAAC,CAAA;AAElE,EAAA,KAAK,MAAM4I,eAAe,IAAIF,SAAS,EAAE;AACxC,IAAA,MAAMG,eAAe,GACpBC,4CAA+B,CAACF,eAAe,CAAC,CAAA;AACjD,IAAA,MAAMG,qBAAqB,GAC1BC,gDAAmC,CAACJ,eAAe,CAAC,CAAA;AAErD,IAAA,IACCG,qBAAqB,KAAKtM,SAAS,IACnCoM,eAAe,CAACnJ,IAAI,KAAKjD,SAAS,IAClCsM,qBAAqB,CAACxI,OAAO,KAAKnB,cAAc,CAACmB,OAAO,EACvD;AACD,MAAA,SAAA;AACD,KAAA;IAEA,MAAM0I,cAAc,GAAGC,wBAAc,CAACC,eAAe,CACpDN,eAAe,CAAC9K,OAAO,CACvB,CAAA;IAED,IAAIkL,cAAc,CAAC1D,UAAU,EAAE;AAC9B0D,MAAAA,cAAc,CAAC3D,WAAW,GAAG2D,cAAc,CAAC1D,UAAU,CAACxH,OAAO,CAAA;MAC9DkL,cAAc,CAAC1D,UAAU,GAAG9I,SAAS,CAAA;AACtC,KAAC,MAAM;MACNwM,cAAc,CAAC3D,WAAW,GAAG,GAAG,CAAA;AACjC,KAAA;AAEA,IAAA,IAAI8D,uBAAoD,CAAA;AACxD,IAAA,IAAIC,uBAAoD,CAAA;AAExD,IAAA,KAAK,MAAMC,eAAe,IAAIhB,gBAAgB,EAAE;AAC/C,MAAA,IAAIgB,eAAe,CAACrG,KAAK,KAAK8F,qBAAqB,CAACxI,OAAO,EAAE;QAC5D,IAAI+I,eAAe,CAACC,OAAO,EAAE;AAC5BH,UAAAA,uBAAuB,GAAGE,eAAe,CAAA;AAC1C,SAAC,MAAM;AACND,UAAAA,uBAAuB,GAAGC,eAAe,CAAA;AAC1C,SAAA;AACD,OAAA;AACD,KAAA;AAEA,IAAA,IACClB,aAAa,CAAC1K,SAAS,KAAK,QAAQ,KACnC0L,uBAAuB,KAAK3M,SAAS,IACrC4M,uBAAuB,KAAK5M,SAAS,CAAC,EACtC;AACD6D,MAAAA,uBAAiB,CAChBlB,cAAc,CAACmB,OAAO,EACrB,CAAA,QAAA,EAAUwI,qBAAqB,CAACxI,OAAQ,CAAmC6H,iCAAAA,EAAAA,aAAa,CAAC1K,SAAU,CAAA,qBAAA,EAAuB0K,aAAa,CAAC1K,SAAU,gBAAe,CAClK,CAAA;AACF,KAAA;AAEA,IAAA,MAAM8L,aAAa,GAClBJ,uBAAuB,KAAK3M,SAAS,IACrC,CAAC2M,uBAAuB,CAACrL,OAAO,CAAC0L,YAAY,CAACR,cAAc,CAAC,CAAA;AAC9D,IAAA,MAAMS,aAAa,GAClBL,uBAAuB,KAAK5M,SAAS,IACrC,CAAC4M,uBAAuB,CAACtL,OAAO,CAAC0L,YAAY,CAACR,cAAc,CAAC,CAAA;IAE9D,IAAIO,aAAa,IAAIE,aAAa,EAAE;MACnCpJ,uBAAiB,CAChBlB,cAAc,CAACmB,OAAO,EACrB,+BAA8BwI,qBAAqB,CAACxI,OAAQ,CAAA,0CAAA,CAA2C,CACxG,CAAA;AACD,MAAA,SAAA;AACD,KAAA;AAEA,IAAA,IAAI6I,uBAAuB,EAAE;MAC5B9I,uBAAiB,CAChBlB,cAAc,CAACmB,OAAO,EACrB,qCAAoCwI,qBAAqB,CAACxI,OAAQ,CAAA,WAAA,CAAY,CAC/E,CAAA;AACF,KAAA;AACA,IAAA,IAAI6H,aAAa,CAAC1K,SAAS,KAAK,QAAQ,IAAI2L,uBAAuB,EAAE;AACpE/I,MAAAA,uBAAiB,CAChBlB,cAAc,CAACmB,OAAO,EACrB,CAAoCwI,kCAAAA,EAAAA,qBAAqB,CAACxI,OAAQ,CAAM6H,IAAAA,EAAAA,aAAa,CAAC1K,SAAU,GAAE,CACnG,CAAA;AACF,KAAA;AAEA,IAAA,MAAMiM,eAAyB,GAAG,CAAC,QAAQ,CAAC,CAAA;AAE5C,IAAA,IAAIvB,aAAa,CAAC1K,SAAS,KAAK,QAAQ,EAAE;AACzCiM,MAAAA,eAAe,CAACzI,IAAI,CAACkH,aAAa,CAAC1K,SAAS,CAAC,CAAA;AAC9C,KAAA;AAEA,IAAA,MAAMkM,iBAAiB,GAAG,MAAMlC,QAAQ,CAACmC,GAAG,CAAC;AAC5CC,MAAAA,OAAO,EAAG,CAAA,EAAEf,qBAAqB,CAACxI,OAAQ,CAAqF,oFAAA,CAAA;AAC/H6D,MAAAA,OAAO,EAAE,CAAC,GAAGuF,eAAe,EAAE,MAAM,CAAC;MACrCI,OAAO,EAAEJ,eAAe,CAAC,CAAC,CAAA;AAC3B,KAAC,CAAC,CAAA;IAEF,IAAIC,iBAAiB,KAAK,MAAM,EAAE;AACjC,MAAA,SAAA;AACD,KAAA;IAEA,MAAMvK,OAAO,GAAGJ,gCAAgC,CAC/C2J,eAAe,EACfC,eAAe,EACfE,qBAAqB,CACrB,CAAA;AAED,IAAA,MAAM/C,gBAAgB,GAAGiD,cAAc,CAAChD,eAAe,CAAC;AACvDX,MAAAA,WAAW,EAAE,IAAA;AACd,KAAC,CAAC,CAAA;IACF,MAAMO,sBAAsB,GAAI,CAAEkD,EAAAA,qBAAqB,CAACxI,OAAQ,CAAA,CAAA,EAAGyF,gBAAiB,CAAC,CAAA,CAAA;AAErF,IAAA,MAAMhI,WAAW,GAAGS,eAAI,CAACkB,IAAI,CAC5BoB,0BAAsB,CAACf,iBAAiB,CAAC,EACxC,CAAE6F,EAAAA,sBAAuB,MAAK,CAC/B,CAAA;IAED,IAAI;AACHnH,MAAAA,aAAE,CAACqI,MAAM,CAAC/I,WAAW,CAAC,CAAA;KACtB,CAAC,OAAOE,GAAG,EAAE;AACb,MAAA,IAAI,CAACqE,iBAAa,CAACrE,GAAG,CAAC,EAAE;AACxB,QAAA,MAAMA,GAAG,CAAA;AACV,OAAA;AACD,KAAA;AAEA,IAAA,MAAM8I,eAAe,GAAGtI,aAAE,CAACuI,iBAAiB,CAACjJ,WAAW,CAAC,CAAA;IACzD,MAAMkJ,iBAAQ,CAAC7H,OAAO,CAAC8H,kBAAkB,EAAE,EAAEH,eAAe,CAAC,CAAA;AAE7D,IAAA,MAAMhK,OAAO,GACZ4M,iBAAiB,KAAK,QAAQ,GAC3B,MAAMvC,cAAc,CAAC2C,gBAAgB,EAAE,GACvC5B,aAAa,CAAA;IAEjB9H,uBAAiB,CAChBlB,cAAc,CAACmB,OAAO,EACrB,CAAoBwI,kBAAAA,EAAAA,qBAAqB,CAACxI,OAAQ,CAAA,cAAA,EAAgByF,gBAAiB,CAAMhJ,IAAAA,EAAAA,OAAO,CAACS,MAAO,CAAA,CAAA,EAAGT,OAAO,CAACU,SAAU,EAAC,CAC/H,CAAA;AAED,IAAA,MAAMiK,aAA0B,CAC/B3K,OAAO,EACP;MACCc,IAAI,EAAEiL,qBAAqB,CAACxI,OAAO;AACnCxC,MAAAA,OAAO,EAAEiI,gBAAAA;KACT,EACDhI,WAAW,CACX,CAAA;AACF,GAAA;AAEA,EAAA,OAAO,IAAI,CAAA;AACZ,CAAC,CAAA;AAQD,MAAMsJ,oBAAoB,GAAG,MAC5BhL,MAAuC,IACV;EAC7B,MAAM8L,aAAa,GAAG,MAAMT,YAAyB,CAACrL,MAAM,CAAC,CAAA;AAC7D,EAAA,IAAI2N,aAA+C,CAAA;EAEnD,OAAO;AACND,IAAAA,gBAAgB,EAAE,YAAY;AAC7B,MAAA,IAAI5B,aAAa,CAAC1K,SAAS,KAAK,QAAQ,EAAE;AACzC,QAAA,OAAO0K,aAAa,CAAA;AACrB,OAAA;MAEA,IAAI6B,aAAa,KAAKxN,SAAS,EAAE;AAChCwN,QAAAA,aAAa,GAAG,MAAMtC,YAAyB,CAAC;AAC/C,UAAA,GAAGrL,MAAM;AACToB,UAAAA,SAAS,EAAE,QAAA;AACZ,SAAC,CAAC,CAAA;AACH,OAAA;AAEA,MAAA,OAAOuM,aAAa,CAAA;KACpB;IAEDrC,gBAAgB,EAAE,MAAMQ,aAAa;AAErCP,IAAAA,OAAO,EAAE,YAAY;AACpB,MAAA,MAAMF,YAAyB,CAACS,aAAa,CAAC,CAAA;MAE9C,IAAI6B,aAAa,KAAKxN,SAAS,EAAE;AAChC,QAAA,MAAMkL,YAAyB,CAACsC,aAAa,CAAC,CAAA;AAC/C,OAAA;AACD,KAAA;GACA,CAAA;AACF,CAAC;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"dependencies.js","sources":["../src/lib/publishedPackage.ts","../src/lib/dependencies.ts"],"sourcesContent":["import * as path from \"path\";\nimport * as fs from \"fs\";\nimport resolve from \"resolve\";\n\nimport { readNpmManifest } from \"./npmPackage\";\nimport { CreatorPackage, PackageNpmManifest } from \"./package\";\nimport { isErrorENOENT } from \"./error\";\nimport { WorkspaceLocation } from \"./workspace\";\n\nconst PACKAGE_FILE = \"_Package.json\";\n\n/**\n * Describes the location of a single published package.\n *\n * I.e. node_modules/@intelligentgraphics/3d.ig.gfx.core\n *\n * @export\n * @interface PublishedPackageLocation\n */\nexport interface PublishedPackageLocation {\n\t_kind: \"PublishedPackageLocation\";\n\tpath: string;\n}\n\nexport const detectPublishedPackageByModuleName = (\n\tworkspace: WorkspaceLocation,\n\tname: string,\n) => {\n\tconst manifestPath = resolve.sync(name + \"/package.json\", {\n\t\tbasedir: workspace.path,\n\t});\n\tconst dir = path.dirname(manifestPath);\n\treturn detectPublishedPackage(dir);\n};\n\nexport const detectPublishedPackage = (\n\tpath: string,\n): PublishedPackageLocation => ({\n\t_kind: \"PublishedPackageLocation\",\n\tpath,\n});\n\nexport const readPublishedPackageNpmManifest = (\n\tlocation: PublishedPackageLocation,\n): PackageNpmManifest => {\n\treturn readNpmManifest<PackageNpmManifest>(location.path);\n};\n\nexport const readPublishedPackageCreatorManifest = (\n\tlocation: PublishedPackageLocation,\n): CreatorPackage | undefined => {\n\ttry {\n\t\tconst packageJsonPath = path.join(location.path, PACKAGE_FILE);\n\t\tconst packageJson = fs.readFileSync(packageJsonPath, {\n\t\t\tencoding: \"utf8\",\n\t\t});\n\t\tconst result: Omit<CreatorPackage, \"Scope\"> & { Scope?: string } =\n\t\t\tJSON.parse(packageJson);\n\t\treturn {\n\t\t\t...result,\n\t\t\tScope: result.Scope || result.Package,\n\t\t};\n\t} catch (err) {\n\t\tif (isErrorENOENT(err)) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tthrow err;\n\t}\n};\n\nexport const readPublishedPackageCreatorIndex = (\n\tlocation: PublishedPackageLocation,\n) => {\n\ttry {\n\t\tconst packageJsonPath = path.join(location.path, PACKAGE_FILE);\n\t\tconst packageJson = fs.readFileSync(packageJsonPath, {\n\t\t\tencoding: \"utf8\",\n\t\t});\n\t\tconst result: object = JSON.parse(packageJson);\n\t\treturn result;\n\t} catch (err) {\n\t\tif (isErrorENOENT(err)) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tthrow err;\n\t}\n};\n","import { PackageJSON } from \"@intelligentgraphics/ig.tools.core\";\n\nimport { CreatorPackage } from \"./package\";\nimport {\n\tdetectPublishedPackageByModuleName,\n\tPublishedPackageLocation,\n\treadPublishedPackageCreatorManifest,\n\treadPublishedPackageNpmManifest,\n} from \"./publishedPackage\";\nimport { readWorkspaceNpmManifest, WorkspaceLocation } from \"./workspace\";\n\n// /**\n// * Determines the implicit dependencies of a an actual data workspace package.\n// *\n// * An implicit dependency is a dependency that is installed for the workspace and has the same runtime environment (evaluator, interactor) as the package.\n// *\n// * @param {WorkspaceLocation} workspace\n// * @param {CreatorPackage} creatorPackage\n// * @returns {PublishedPackageLocation[]}\n// */\n// export const determinePackageImplicitDependencies = (\n// \tworkspace: WorkspaceLocation,\n// \tcreatorPackage: CreatorPackage,\n// ): PublishedPackageLocation[] => {\n// \tconst libraries = determineWorkspaceIGLibraries(workspace);\n\n// \tconst results: PublishedPackageLocation[] = [];\n// \tfor (const librarylocation of libraries) {\n// \t\tconst libraryManifest =\n// \t\t\treadPublishedPackageCreatorManifest(librarylocation);\n\n// \t\tif (\n// \t\t\tlibraryManifest !== undefined &&\n// \t\t\t(libraryManifest.Type === \"Mixed\" ||\n// \t\t\t\tlibraryManifest.RunTime === creatorPackage.RunTime)\n// \t\t) {\n// \t\t\tresults.push(librarylocation);\n// \t\t}\n// \t}\n\n// \treturn results;\n// };\n\n/**\n * Recursively determines all installed ig libraries for a workspace.\n *\n * @param {WorkspaceLocation} workspace\n * @returns {PublishedPackageLocation[]}\n */\nexport const determineWorkspaceIGLibraries = (\n\tworkspace: WorkspaceLocation,\n): PublishedPackageLocation[] => {\n\tconst manifest = readWorkspaceNpmManifest(workspace);\n\n\tif (manifest === undefined) {\n\t\treturn [];\n\t}\n\n\tconst libraries = collectIGLibraries(workspace, manifest);\n\tconst results = new Map<string, PublishedPackageLocation>();\n\n\tfor (const location of libraries) {\n\t\tconst manifest = readPublishedPackageNpmManifest(location);\n\t\tif (!results.has(manifest.name)) {\n\t\t\tresults.set(manifest.name, location);\n\t\t}\n\t}\n\n\treturn Array.from(results.values());\n};\n\nconst collectIGLibraries = (\n\tworkspace: WorkspaceLocation,\n\tmanifest: PackageJSON,\n): PublishedPackageLocation[] => {\n\tif (!manifest.dependencies) {\n\t\treturn [];\n\t}\n\n\tconst runtimeDependencies = Object.getOwnPropertyNames(\n\t\tmanifest.dependencies,\n\t);\n\n\tconst result: PublishedPackageLocation[] = [];\n\n\tfor (const runtimeDependency of runtimeDependencies) {\n\t\tconst location = detectPublishedPackageByModuleName(\n\t\t\tworkspace,\n\t\t\truntimeDependency,\n\t\t);\n\n\t\tconst runtimeManifest = readPublishedPackageNpmManifest(location);\n\n\t\t// packages need to explicitly be marked as ig scriptingLibraries\n\t\tif (runtimeManifest.ig?.scriptingLibrary) {\n\t\t\tresult.push(location);\n\t\t\tresult.push(...collectIGLibraries(workspace, runtimeManifest));\n\t\t}\n\t}\n\n\treturn result;\n};\n"],"names":["PACKAGE_FILE","detectPublishedPackageByModuleName","workspace","name","manifestPath","resolve","sync","basedir","path","dir","dirname","detectPublishedPackage","_kind","readPublishedPackageNpmManifest","location","readNpmManifest","readPublishedPackageCreatorManifest","packageJsonPath","join","packageJson","fs","readFileSync","encoding","result","JSON","parse","Scope","Package","err","isErrorENOENT","undefined","readPublishedPackageCreatorIndex","determineWorkspaceIGLibraries","manifest","readWorkspaceNpmManifest","libraries","collectIGLibraries","results","Map","has","set","Array","from","values","dependencies","runtimeDependencies","Object","getOwnPropertyNames","runtimeDependency","runtimeManifest","ig","scriptingLibrary","push"],"mappings":"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"}
package/build/index.js DELETED
@@ -1,7 +0,0 @@
1
- 'use strict';
2
-
3
- require('v8-compile-cache');
4
-
5
- require("source-map-support").install();
6
- Promise.resolve().then(function () { return require('./cli.js'); }).then(function (n) { return n.cli; });
7
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["require(\"source-map-support\").install();\nimport \"v8-compile-cache\";\n\nimport(\"./cli\");\n"],"names":["require","install"],"mappings":";;;;AAAAA,OAAO,CAAC,oBAAoB,CAAC,CAACC,OAAO,EAAE,CAAA;AAGvC,oDAAO,UAAO,0CAAC;;"}
package/build/scripts.js DELETED
@@ -1,31 +0,0 @@
1
- 'use strict';
2
-
3
- var glob = require('glob');
4
-
5
- function _interopNamespaceDefault(e) {
6
- var n = Object.create(null);
7
- if (e) {
8
- Object.keys(e).forEach(function (k) {
9
- if (k !== 'default') {
10
- var d = Object.getOwnPropertyDescriptor(e, k);
11
- Object.defineProperty(n, k, d.get ? d : {
12
- enumerable: true,
13
- get: function () { return e[k]; }
14
- });
15
- }
16
- });
17
- }
18
- n.default = e;
19
- return Object.freeze(n);
20
- }
21
-
22
- var glob__namespace = /*#__PURE__*/_interopNamespaceDefault(glob);
23
-
24
- const getPackageTypescriptFiles = location => glob__namespace.sync("**/*.ts", {
25
- absolute: true,
26
- cwd: location.scriptsDir,
27
- ignore: "node_modules/**/*"
28
- });
29
-
30
- exports.getPackageTypescriptFiles = getPackageTypescriptFiles;
31
- //# sourceMappingURL=scripts.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scripts.js","sources":["../src/lib/scripts.ts"],"sourcesContent":["import * as glob from \"glob\";\n\nimport { PackageLocation } from \"./package\";\n\nexport const getPackageTypescriptFiles = (location: PackageLocation) =>\n\tglob.sync(\"**/*.ts\", {\n\t\tabsolute: true,\n\t\tcwd: location.scriptsDir,\n\t\tignore: \"node_modules/**/*\",\n\t});\n"],"names":["getPackageTypescriptFiles","location","glob","sync","absolute","cwd","scriptsDir","ignore"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAIO,MAAMA,yBAAyB,GAAIC,QAAyB,IAClEC,eAAI,CAACC,IAAI,CAAC,SAAS,EAAE;AACpBC,EAAAA,QAAQ,EAAE,IAAI;EACdC,GAAG,EAAEJ,QAAQ,CAACK,UAAU;AACxBC,EAAAA,MAAM,EAAE,mBAAA;AACT,CAAC;;;;"}