@intelligentgraphics/ig.gfx.packager 3.0.0-alpha.9 → 3.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/build/cli.mjs +48 -336
  2. package/build/cli.mjs.map +1 -1
  3. package/build/commands/build/docs.mjs +34 -0
  4. package/build/commands/build/docs.mjs.map +1 -0
  5. package/build/commands/build/index.mjs +169 -0
  6. package/build/commands/build/index.mjs.map +1 -0
  7. package/build/commands/build/tsc.mjs +84 -0
  8. package/build/commands/build/tsc.mjs.map +1 -0
  9. package/build/{generate.mjs → commands/generate.mjs} +6 -16
  10. package/build/commands/generate.mjs.map +1 -0
  11. package/build/{postinstall.mjs → commands/postinstall.mjs} +3 -10
  12. package/build/commands/postinstall.mjs.map +1 -0
  13. package/build/{index3.mjs → commands/publish/index.mjs} +20 -288
  14. package/build/commands/publish/index.mjs.map +1 -0
  15. package/build/commands/publish/zip.mjs +168 -0
  16. package/build/commands/publish/zip.mjs.map +1 -0
  17. package/build/{publishNpm.mjs → commands/publishNpm.mjs} +10 -18
  18. package/build/commands/publishNpm.mjs.map +1 -0
  19. package/build/index.mjs +1 -1
  20. package/build/index.mjs.map +1 -1
  21. package/build/lib/assetService.mjs +111 -0
  22. package/build/lib/assetService.mjs.map +1 -0
  23. package/build/lib/banner.mjs +20 -0
  24. package/build/lib/banner.mjs.map +1 -0
  25. package/build/{dependencies.mjs → lib/dependencies.mjs} +9 -60
  26. package/build/lib/dependencies.mjs.map +1 -0
  27. package/build/lib/error.mjs +15 -0
  28. package/build/lib/error.mjs.map +1 -0
  29. package/build/lib/fs.mjs +19 -0
  30. package/build/lib/fs.mjs.map +1 -0
  31. package/build/lib/git.mjs +37 -0
  32. package/build/lib/git.mjs.map +1 -0
  33. package/build/lib/localization.mjs +16 -0
  34. package/build/lib/localization.mjs.map +1 -0
  35. package/build/lib/log.mjs +9 -0
  36. package/build/lib/log.mjs.map +1 -0
  37. package/build/lib/npmPackage.mjs +19 -0
  38. package/build/lib/npmPackage.mjs.map +1 -0
  39. package/build/lib/package.mjs +129 -0
  40. package/build/lib/package.mjs.map +1 -0
  41. package/build/lib/packageVersion.mjs +174 -0
  42. package/build/lib/packageVersion.mjs.map +1 -0
  43. package/build/lib/parseVersion.mjs +54 -0
  44. package/build/lib/parseVersion.mjs.map +1 -0
  45. package/build/lib/prompter.mjs +31 -0
  46. package/build/lib/prompter.mjs.map +1 -0
  47. package/build/lib/publishedPackage.mjs +66 -0
  48. package/build/lib/publishedPackage.mjs.map +1 -0
  49. package/build/{scripts.mjs → lib/scripts.mjs} +1 -2
  50. package/build/lib/scripts.mjs.map +1 -0
  51. package/build/lib/stripUtf8Bom.mjs +11 -0
  52. package/build/lib/stripUtf8Bom.mjs.map +1 -0
  53. package/build/lib/toposort.mjs +26 -0
  54. package/build/lib/toposort.mjs.map +1 -0
  55. package/build/lib/versionFile.mjs +78 -0
  56. package/build/lib/versionFile.mjs.map +1 -0
  57. package/build/lib/workspace.mjs +51 -0
  58. package/build/lib/workspace.mjs.map +1 -0
  59. package/locales/de.json +18 -18
  60. package/locales/en.json +37 -37
  61. package/package.json +2 -2
  62. package/readme.md +29 -2
  63. package/scripts/postinstall.js +22 -22
  64. package/build/dependencies.mjs.map +0 -1
  65. package/build/generate.mjs.map +0 -1
  66. package/build/index2.mjs +0 -326
  67. package/build/index2.mjs.map +0 -1
  68. package/build/index3.mjs.map +0 -1
  69. package/build/postinstall.mjs.map +0 -1
  70. package/build/publishNpm.mjs.map +0 -1
  71. package/build/scripts.mjs.map +0 -1
  72. package/build/versionFile.mjs +0 -365
  73. package/build/versionFile.mjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"index2.mjs","sources":["../src/lib/log.ts","../src/commands/build/tsc.ts","../src/commands/build/docs.ts","../src/lib/toposort.ts","../src/commands/build/index.ts"],"sourcesContent":["export const logPackageMessage = (\r\n\tname: string,\r\n\tstep: string,\r\n\tindex?: number,\r\n\ttotal?: number,\r\n) => {\r\n\tconst numLength = total === undefined ? undefined : total.toString().length;\r\n\r\n\tconst indexString =\r\n\t\ttotal === undefined || total < 2\r\n\t\t\t? \"\"\r\n\t\t\t: `${index!.toString().padStart(numLength!, \"0\")}/${total} `;\r\n\r\n\tconst identifierString = `${indexString}${name.padEnd(15)}`;\r\n\r\n\tconsole.log(`${identifierString} >> ${step}`);\r\n};\r\n","import ts from \"typescript\";\r\nimport * as path from \"path\";\r\nimport * as fs from \"fs\";\r\n\r\nimport { PackageLocation } from \"../../lib/package\";\r\n\r\nimport { FolderBuilder } from \".\";\r\nimport { getPackageTypescriptFiles } from \"../../lib/scripts\";\r\n\r\nexport const tryReadTsConfig = (location: PackageLocation) => {\r\n\tconst { config } = ts.readConfigFile(\r\n\t\tpath.join(location.scriptsDir, \"tsconfig.json\"),\r\n\t\t(path) => {\r\n\t\t\ttry {\r\n\t\t\t\treturn fs.readFileSync(path, \"utf8\");\r\n\t\t\t} catch {\r\n\t\t\t\treturn undefined;\r\n\t\t\t}\r\n\t\t},\r\n\t);\r\n\r\n\treturn config as {\r\n\t\tcompilerOptions: ts.CompilerOptions;\r\n\t};\r\n};\r\n\r\nexport const build: FolderBuilder = async (\r\n\tlocation: PackageLocation,\r\n\toutputDir: string,\r\n) => {\r\n\tconst config = tryReadTsConfig(location);\r\n\r\n\tconfig.compilerOptions.lib = [\"es5\", \"dom\"];\r\n\r\n\tconst result = ts.convertCompilerOptionsFromJson(\r\n\t\tconfig.compilerOptions,\r\n\t\tlocation.scriptsDir,\r\n\t);\r\n\r\n\tconst compilerOptions: ts.CompilerOptions = {\r\n\t\t...result.options,\r\n\t\tremoveComments: false,\r\n\t\tdeclaration: true,\r\n\t\tsourceMap: false,\r\n\t\t// We don't use tsc to actually emit the files, but we still need to set the correct\r\n\t\t// output directory so the compiler can rewrite the `reference path` directives.\r\n\t\toutFile: path.join(outputDir, \"out.js\"),\r\n\t\ttarget: ts.ScriptTarget.ES5,\r\n\t\tnoEmitOnError: true,\r\n\t};\r\n\r\n\tconst host = ts.createCompilerHost(compilerOptions);\r\n\thost.getCurrentDirectory = () => location.scriptsDir;\r\n\r\n\tlet js: string | undefined;\r\n\tlet definitions: string | undefined;\r\n\r\n\thost.writeFile = (fileName, data, writeByteOrderMark) => {\r\n\t\tif (fileName.endsWith(\".js\")) {\r\n\t\t\tjs = data;\r\n\t\t} else if (fileName.endsWith(\".d.ts\")) {\r\n\t\t\tdefinitions = data;\r\n\t\t}\r\n\t};\r\n\r\n\tconst files = getPackageTypescriptFiles(location);\r\n\r\n\tif (files.length === 0) {\r\n\t\tthrow new Error(\r\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.`,\r\n\t\t);\r\n\t}\r\n\r\n\tconst programOptions: ts.CreateProgramOptions = {\r\n\t\trootNames: files,\r\n\t\toptions: compilerOptions,\r\n\t\thost,\r\n\t};\r\n\r\n\tconst program = ts.createProgram(programOptions);\r\n\tconst emitResult = program.emit();\r\n\tconst allDiagnostics = ts.getPreEmitDiagnostics(program);\r\n\r\n\tif (!emitResult.emitSkipped) {\r\n\t\tif (allDiagnostics.length > 0) {\r\n\t\t\tconsole.log(allDiagnostics.map(createErrorMessage).join(\"\\n\"));\r\n\t\t}\r\n\r\n\t\tif (js === undefined || definitions === undefined) {\r\n\t\t\tthrow new Error(`Unexpected: no js or definitions were created`);\r\n\t\t}\r\n\r\n\t\treturn { js, definitions };\r\n\t}\r\n\r\n\tconst error = allDiagnostics.map(createErrorMessage).join(\"\\n\");\r\n\r\n\tthrow new Error(error);\r\n};\r\n\r\nconst createErrorMessage = (diagnostic: ts.Diagnostic) => {\r\n\tif (!diagnostic.file) {\r\n\t\treturn `${ts.flattenDiagnosticMessageText(\r\n\t\t\tdiagnostic.messageText,\r\n\t\t\t\"\\n\",\r\n\t\t)}`;\r\n\t}\r\n\r\n\tconst { line, character } = diagnostic.file.getLineAndCharacterOfPosition(\r\n\t\tdiagnostic.start!,\r\n\t);\r\n\r\n\tconst message = ts.flattenDiagnosticMessageText(\r\n\t\tdiagnostic.messageText,\r\n\t\t\"\\n\",\r\n\t);\r\n\r\n\treturn `${diagnostic.file.fileName} (${line + 1},${\r\n\t\tcharacter + 1\r\n\t}): ${message}`;\r\n};\r\n","import typedoc from \"typedoc\";\r\nimport glob from \"glob\";\r\nimport ts from \"typescript\";\r\nimport * as path from \"path\";\r\nimport { PackageLocation } from \"../../lib/package\";\r\n\r\nexport const generateDocs = async (\r\n\tlocation: PackageLocation,\r\n\tdeclarationFile: string,\r\n\toutFolder: string,\r\n\tname: string,\r\n) => {\r\n\tconst app = new typedoc.Application();\r\n\r\n\tconst mediaDir = path.join(location.manifestDir, \"Media\");\r\n\r\n\tapp.bootstrap({\r\n\t\tentryPoints: [declarationFile],\r\n\t\tmedia: mediaDir,\r\n\t\tout: outFolder,\r\n\t\ttsconfig: path.join(location.scriptsDir, \"tsconfig.json\"),\r\n\t\tskipErrorChecking: true,\r\n\t});\r\n\r\n\tapp.options.setCompilerOptions(\r\n\t\t[declarationFile],\r\n\t\t{\r\n\t\t\ttarget: ts.ScriptTarget.ES5,\r\n\t\t},\r\n\t\tundefined,\r\n\t);\r\n\r\n\tapp.options.setValue(\"name\", name);\r\n\r\n\tconst [readmePath] = glob.sync(\"**/readme.md\", {\r\n\t\tabsolute: true,\r\n\t\tcwd: location.manifestDir,\r\n\t});\r\n\r\n\tif (readmePath) {\r\n\t\tapp.options.setValue(\"readme\", readmePath);\r\n\t}\r\n\r\n\tconst project = app.convert();\r\n\r\n\tif (project) {\r\n\t\tawait app.generateDocs(project, outFolder);\r\n\t}\r\n};\r\n","// Stolen from ig.tools.core\r\n\r\nexport const toposort = (packages: Record<string, string[]>) => {\r\n\tconst queue = Object.getOwnPropertyNames(packages);\r\n\tconst result: string[] = [];\r\n\r\n\tlet index = 0;\r\n\r\n\twhile (queue.length > 0) {\r\n\t\tif (index >= queue.length) {\r\n\t\t\tthrow new Error(\"Packages can not have cyclic dependencies\");\r\n\t\t}\r\n\r\n\t\tconst queueEntry = queue[index];\r\n\r\n\t\tconst dependencies = packages[queueEntry];\r\n\t\tconst dependencyQueued = dependencies.some((dependency) =>\r\n\t\t\tqueue.includes(dependency),\r\n\t\t);\r\n\r\n\t\tif (dependencyQueued) {\r\n\t\t\tindex++;\r\n\t\t\tcontinue;\r\n\t\t}\r\n\r\n\t\tqueue.splice(index, 1);\r\n\t\tindex = 0;\r\n\t\tresult.push(queueEntry);\r\n\t}\r\n\r\n\treturn result;\r\n};\r\n","import * as path from \"path\";\r\nimport * as fs from \"fs\";\r\nimport glob from \"glob\";\r\nimport * as terser from \"terser\";\r\n\r\nimport { logPackageMessage } from \"../../lib/log\";\r\nimport { translate } from \"../../lib/localization\";\r\nimport { build as tscBuild } from \"./tsc\";\r\nimport { generateDocs } from \"./docs\";\r\nimport {\r\n\tdetectPackage,\r\n\tPackageLocation,\r\n\treadPackageCreatorManifest,\r\n\treadPackageNpmManifest,\r\n} from \"../../lib/package\";\r\nimport { detectWorkspace, WorkspaceLocation } from \"../../lib/workspace\";\r\nimport { getPackageTypescriptFiles } from \"../../lib/scripts\";\r\nimport { toposort } from \"../../lib/toposort\";\r\nimport { PackageJSON } from \"../../lib/packageJSON\";\r\n\r\nexport interface BannerOptions {\r\n\ttext: string | undefined;\r\n\tversion: string | undefined;\r\n\tcommit: string | undefined;\r\n\tcommitDirty: boolean | undefined;\r\n\tdate: Date | undefined;\r\n}\r\n\r\nexport interface BuildFoldersOptions {\r\n\tcwd: string;\r\n\tdirectories: string[];\r\n\toutDir?: string;\r\n\tminimize: boolean;\r\n\tbanner?: BannerOptions;\r\n\tclean?: boolean;\r\n\tdocs?: boolean;\r\n\tskipPackagesWithoutTsFiles?: boolean;\r\n}\r\n\r\nexport interface BuildFolderOptions extends BuildFoldersOptions {\r\n\toutFile: string;\r\n}\r\n\r\nexport interface FolderBuilderResult {\r\n\tjs: string;\r\n\tdefinitions: string;\r\n}\r\n\r\nexport type FolderBuilder = (\r\n\tlocation: PackageLocation,\r\n\toutputDir: string,\r\n) => Promise<FolderBuilderResult>;\r\n\r\ntype FolderData = {\r\n\tlocation: PackageLocation;\r\n\tdata?: PackageJSON;\r\n};\r\n\r\nexport const buildFolders = async (options: BuildFoldersOptions) => {\r\n\tif (options.outDir !== undefined && options.clean) {\r\n\t\tfs.rmSync(options.outDir, { recursive: true });\r\n\t}\r\n\r\n\tconst workspace = detectWorkspace(options.cwd);\r\n\tconst folders = resolvePackagesFromArgs(options.directories, workspace);\r\n\r\n\tif (folders.length === 0) {\r\n\t\treturn console.log(translate(\"messages.buildSkipEmpty\"));\r\n\t}\r\n\r\n\tconst sortedPackages = sortPackagesByBuildOrder(folders);\r\n\r\n\tlet index = 1;\r\n\r\n\tfor (const location of sortedPackages) {\r\n\t\tif (\r\n\t\t\toptions.skipPackagesWithoutTsFiles &&\r\n\t\t\tgetPackageTypescriptFiles(location).length === 0\r\n\t\t) {\r\n\t\t\tcontinue;\r\n\t\t}\r\n\r\n\t\tensureTsConfig(location);\r\n\r\n\t\tconst data = readPackageCreatorManifest(location);\r\n\r\n\t\tconst logStep = (step: string) =>\r\n\t\t\tlogPackageMessage(data.Package, step, index, folders.length);\r\n\r\n\t\tlogStep(translate(\"messages.building\"));\r\n\r\n\t\tconst outputDirectory = options.outDir || location.scriptsDir;\r\n\t\tfs.mkdirSync(outputDirectory, { recursive: true });\r\n\r\n\t\tconst buildResult = await tscBuild(location, outputDirectory);\r\n\t\tconst banner = options.banner\r\n\t\t\t? createBannerComment(options.banner)\r\n\t\t\t: undefined;\r\n\r\n\t\tif (banner) {\r\n\t\t\tbuildResult.js = banner + \"\\n\" + buildResult.js;\r\n\t\t\tbuildResult.definitions = banner + \"\\n\" + buildResult.definitions;\r\n\t\t}\r\n\r\n\t\tfs.writeFileSync(\r\n\t\t\tpath.join(outputDirectory, `${data.Package}.js`),\r\n\t\t\tbuildResult.js,\r\n\t\t\t{ encoding: \"utf8\" },\r\n\t\t);\r\n\t\tfs.writeFileSync(\r\n\t\t\tpath.join(outputDirectory, `${data.Package}.d.ts`),\r\n\t\t\tbuildResult.definitions,\r\n\t\t\t{ encoding: \"utf8\" },\r\n\t\t);\r\n\r\n\t\tif (options.minimize) {\r\n\t\t\tconst minifyResult = await terser.minify(buildResult.js, {\r\n\t\t\t\tecma: 5,\r\n\t\t\t});\r\n\r\n\t\t\tconst minifiedPath = path.join(\r\n\t\t\t\toutputDirectory,\r\n\t\t\t\t`${data.Package}.min.js`,\r\n\t\t\t);\r\n\t\t\tfs.writeFileSync(minifiedPath, minifyResult.code!, {\r\n\t\t\t\tencoding: \"utf8\",\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (location.path.includes(\"Basics\")) {\r\n\t\t\tfs.mkdirSync(path.join(options.cwd, \"lib\"), {\r\n\t\t\t\trecursive: true,\r\n\t\t\t});\r\n\r\n\t\t\tlogStep(translate(\"messages.basicsCopy\"));\r\n\t\t\tfs.writeFileSync(\r\n\t\t\t\tpath.join(options.cwd, \"lib\", `${data.Package}.d.ts`),\r\n\t\t\t\tbuildResult.definitions,\r\n\t\t\t\t{ encoding: \"utf8\" },\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tif (options.docs) {\r\n\t\t\tlogStep(translate(\"messages.docsGeneration\"));\r\n\t\t\tawait generateDocs(\r\n\t\t\t\tlocation,\r\n\t\t\t\tpath.join(outputDirectory, `${data.Package}.d.ts`),\r\n\t\t\t\tpath.join(options.cwd, \"docs\", data.Package),\r\n\t\t\t\tdata.Package,\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\t// logStep(translate(\"messages.built\"));\r\n\r\n\t\tindex++;\r\n\t}\r\n};\r\n\r\nconst resolvePackagesFromArgs = (\r\n\targs: string[] = [],\r\n\tworkspace: WorkspaceLocation,\r\n) => {\r\n\tconst folders = new Map<string, PackageLocation>();\r\n\r\n\tfor (const arg of args) {\r\n\t\tglob.sync(arg, { cwd: workspace.path, absolute: true }).forEach(\r\n\t\t\t(folder) => {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tconst location = detectPackage(workspace, folder);\r\n\t\t\t\t\tfolders.set(folder, location);\r\n\t\t\t\t} catch (err) {}\r\n\t\t\t},\r\n\t\t);\r\n\t}\r\n\r\n\treturn Array.from(folders.values());\r\n};\r\n\r\nconst ensureTsConfig = (location: PackageLocation) => {\r\n\tconst tsconfigPath = path.join(location.scriptsDir, \"tsconfig.json\");\r\n\r\n\tif (!fs.existsSync(tsconfigPath)) {\r\n\t\tconst content = {};\r\n\t\tapplyTsConfigOption(content);\r\n\r\n\t\tfs.writeFileSync(\r\n\t\t\ttsconfigPath,\r\n\t\t\tJSON.stringify(content, undefined, \"\\t\"),\r\n\t\t\t\"utf8\",\r\n\t\t);\r\n\t} else {\r\n\t\tconst content = JSON.parse(fs.readFileSync(tsconfigPath, \"utf8\"));\r\n\t\tapplyTsConfigOption(content);\r\n\t\tfs.writeFileSync(\r\n\t\t\ttsconfigPath,\r\n\t\t\tJSON.stringify(content, undefined, \"\\t\"),\r\n\t\t\t\"utf8\",\r\n\t\t);\r\n\t}\r\n};\r\n\r\nconst applyTsConfigOption = (data: {\r\n\tcompilerOptions?: { target?: string; lib?: string[] };\r\n}) => {\r\n\tdata.compilerOptions = data.compilerOptions ?? {};\r\n\tdata.compilerOptions.target = \"es5\";\r\n\tdata.compilerOptions.lib = [\"es5\", \"dom\"];\r\n};\r\n\r\nconst sortPackagesByBuildOrder = (\r\n\tfolders: PackageLocation[],\r\n): PackageLocation[] => {\r\n\tconst packages = Array.from(folders).reduce(\r\n\t\t(\r\n\t\t\tacc: Record<string, FolderData>,\r\n\t\t\tlocation,\r\n\t\t): Record<string, FolderData> => {\r\n\t\t\tconst data = readPackageNpmManifest(location);\r\n\r\n\t\t\tif (data !== undefined) {\r\n\t\t\t\tacc[data.name] = {\r\n\t\t\t\t\tdata,\r\n\t\t\t\t\tlocation,\r\n\t\t\t\t};\r\n\t\t\t} else {\r\n\t\t\t\tacc[location.path] = {\r\n\t\t\t\t\tdata: undefined,\r\n\t\t\t\t\tlocation,\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn acc;\r\n\t\t},\r\n\t\t{},\r\n\t);\r\n\r\n\tconst packageDependencies = Object.getOwnPropertyNames(packages).reduce(\r\n\t\t(acc, packageName) => {\r\n\t\t\tconst packageData = packages[packageName];\r\n\r\n\t\t\tif (packageData.data === undefined) {\r\n\t\t\t\tacc[packageName] = [];\r\n\t\t\t} else {\r\n\t\t\t\tacc[packageName] = Object.getOwnPropertyNames({\r\n\t\t\t\t\t...packageData.data.devDependencies,\r\n\t\t\t\t\t...packageData.data.dependencies,\r\n\t\t\t\t\t...packageData.data.peerDependencies,\r\n\t\t\t\t}).filter((packageName) => packages[packageName] !== undefined);\r\n\t\t\t}\r\n\r\n\t\t\treturn acc;\r\n\t\t},\r\n\t\t{},\r\n\t);\r\n\r\n\tconst sortedPackages = toposort(packageDependencies);\r\n\tconst result: PackageLocation[] = [];\r\n\r\n\tfor (const packageName of sortedPackages) {\r\n\t\tconst location = packages[packageName].location;\r\n\r\n\t\tif (readPackageCreatorManifest(location).Package.endsWith(\".Basics\")) {\r\n\t\t\tresult.unshift(location);\r\n\t\t} else {\r\n\t\t\tresult.push(location);\r\n\t\t}\r\n\t}\r\n\r\n\treturn result;\r\n};\r\n\r\nconst createBannerComment = (banner: BannerOptions) => {\r\n\tconst bannerParts: string[] = [];\r\n\r\n\tif (banner.text) {\r\n\t\tbannerParts.push(\" * \" + banner.text);\r\n\t}\r\n\r\n\t{\r\n\t\tconst details: string[] = [];\r\n\r\n\t\tif (banner.version) {\r\n\t\t\tdetails.push(`Version: ${banner.version}`);\r\n\t\t}\r\n\t\tif (banner.commit) {\r\n\t\t\tif (banner.commitDirty) {\r\n\t\t\t\tdetails.push(`Commit: ${banner.commit} (dirty)`);\r\n\t\t\t} else {\r\n\t\t\t\tdetails.push(`Commit: ${banner.commit}`);\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (banner.date) {\r\n\t\t\tdetails.push(`Date: ${banner.date.toISOString()}`);\r\n\t\t}\r\n\r\n\t\tconst detailsText = details.map((line) => ` * ${line}`).join(\"\\n\");\r\n\t\tif (detailsText) {\r\n\t\t\tbannerParts.push(detailsText);\r\n\t\t}\r\n\t}\r\n\r\n\tconst bannerText = bannerParts.join(\"\\n\\n\");\r\n\r\n\tif (bannerText) {\r\n\t\treturn `/*\r\n${bannerText}\r\n*\r\n* @preserve\t\t\t\r\n*/`;\r\n\t}\r\n\r\n\treturn undefined;\r\n};\r\n"],"names":["logPackageMessage","name","step","index","total","numLength","undefined","toString","length","indexString","padStart","identifierString","padEnd","console","log","tryReadTsConfig","location","config","ts","readConfigFile","path","join","scriptsDir","fs","readFileSync","build","outputDir","compilerOptions","lib","result","convertCompilerOptionsFromJson","options","removeComments","declaration","sourceMap","outFile","target","ScriptTarget","ES5","noEmitOnError","host","createCompilerHost","getCurrentDirectory","js","definitions","writeFile","fileName","data","writeByteOrderMark","endsWith","files","getPackageTypescriptFiles","Error","programOptions","rootNames","program","createProgram","emitResult","emit","allDiagnostics","getPreEmitDiagnostics","emitSkipped","map","createErrorMessage","error","diagnostic","file","flattenDiagnosticMessageText","messageText","line","character","getLineAndCharacterOfPosition","start","message","generateDocs","declarationFile","outFolder","app","typedoc","Application","mediaDir","manifestDir","bootstrap","entryPoints","media","out","tsconfig","skipErrorChecking","setCompilerOptions","setValue","readmePath","glob","sync","absolute","cwd","project","convert","toposort","packages","queue","Object","getOwnPropertyNames","queueEntry","dependencies","dependencyQueued","some","dependency","includes","splice","push","buildFolders","outDir","clean","rmSync","recursive","workspace","detectWorkspace","folders","resolvePackagesFromArgs","directories","translate","sortedPackages","sortPackagesByBuildOrder","skipPackagesWithoutTsFiles","ensureTsConfig","readPackageCreatorManifest","logStep","Package","outputDirectory","mkdirSync","buildResult","tscBuild","banner","createBannerComment","writeFileSync","encoding","minimize","minifyResult","terser","minify","ecma","minifiedPath","code","docs","args","Map","arg","forEach","folder","detectPackage","set","err","Array","from","values","tsconfigPath","existsSync","content","applyTsConfigOption","JSON","stringify","parse","reduce","acc","readPackageNpmManifest","packageDependencies","packageName","packageData","devDependencies","peerDependencies","filter","unshift","bannerParts","text","details","version","commit","commitDirty","date","toISOString","detailsText","bannerText"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index3.mjs","sources":["../src/lib/assetService.ts","../src/commands/publish/zip.ts","../src/commands/publish/index.ts"],"sourcesContent":["import axios from \"axios\";\r\nimport * as fs from \"fs\";\r\n\r\nimport { Authentication } from \"./authentication\";\r\n\r\nexport interface SessionStartParams\r\n\textends Omit<\r\n\t\tSessionStartPayload,\r\n\t\t\"user\" | \"password\" | \"license\" | \"plugin\"\r\n\t> {\r\n\tauthentication: Authentication;\r\n\turl: string;\r\n}\r\n\r\nexport interface SessionStartPayload {\r\n\tplugin: string;\r\n\taddress: string | undefined;\r\n\tdomain: string;\r\n\tsubDomain: string;\r\n\tuser: string | undefined;\r\n\tpassword: string | undefined;\r\n\tlicense: string | undefined;\r\n}\r\n\r\nexport interface SessionStartResponse {\r\n\tsession: string;\r\n\tstate: string;\r\n}\r\n\r\nconst PLUGIN_ID = \"0feba3a0-b6d1-11e6-9598-0800200c9a66\";\r\n\r\nexport interface Session {\r\n\turl: string;\r\n\tsessionId: string;\r\n\tdomain: string;\r\n\tsubDomain: string;\r\n}\r\n\r\n/**\r\n * Starts an IG.Asset.Server session and returns the sessionId\r\n *\r\n * @param {SessionStartParams} params\r\n * @returns\r\n */\r\nexport const startSession = async ({\r\n\turl,\r\n\tauthentication,\r\n\t...params\r\n}: SessionStartParams): Promise<Session> => {\r\n\tconst payload: SessionStartPayload = {\r\n\t\t...params,\r\n\t\tuser: undefined,\r\n\t\tpassword: undefined,\r\n\t\tlicense: undefined,\r\n\t\tplugin: PLUGIN_ID,\r\n\t};\r\n\r\n\tif (authentication.type === \"credentials\") {\r\n\t\tpayload.user = authentication.username;\r\n\t\tpayload.password = authentication.password;\r\n\t} else if (authentication.type === \"license\") {\r\n\t\tpayload.license = authentication.license;\r\n\t}\r\n\r\n\tconst {\r\n\t\tdata: { session: sessionId, state },\r\n\t} = await axios.post<SessionStartResponse>(\r\n\t\t`Session/Start2`,\r\n\t\tJSON.stringify(payload),\r\n\t\t{\r\n\t\t\tbaseURL: url,\r\n\t\t},\r\n\t);\r\n\r\n\tif (state !== \"SUCCESS\") {\r\n\t\tthrow new Error(\r\n\t\t\t`Could not start session: IG.Asset.Server responded with ${state}`,\r\n\t\t);\r\n\t}\r\n\r\n\treturn {\r\n\t\turl,\r\n\t\tsessionId,\r\n\t\tdomain: params.domain,\r\n\t\tsubDomain: params.subDomain,\r\n\t};\r\n};\r\n\r\nexport const closeSession = async (session: Session) => {\r\n\tawait axios.get(`Session/Close/${session.sessionId}`, {\r\n\t\tbaseURL: session.url,\r\n\t});\r\n};\r\n\r\nexport interface UploadPackageDetails {\r\n\tname: string;\r\n\tversion: string;\r\n}\r\n\r\nexport const uploadPackage = async (\r\n\tsession: Session,\r\n\t{ name, version }: UploadPackageDetails,\r\n\tzipFilePath: string,\r\n) => {\r\n\ttry {\r\n\t\tawait uploadPackageToUrl(\r\n\t\t\tsession.url,\r\n\t\t\t`UploadPackage/${session.sessionId}/${name}_${version}`,\r\n\t\t\tzipFilePath,\r\n\t\t);\r\n\t} catch (err) {\r\n\t\tawait uploadPackageToUrl(\r\n\t\t\tsession.url,\r\n\t\t\t`UploadPackage/${session.sessionId}/${name}_${version}/`,\r\n\t\t\tzipFilePath,\r\n\t\t);\r\n\t}\r\n};\r\n\r\nexport interface ExistingPackage {\r\n\tscope: string;\r\n\tinformalVersion: string;\r\n\tsupport: boolean;\r\n\tnumericVersion: number;\r\n}\r\n\r\nexport const getExistingPackages = async (\r\n\tsession: Session,\r\n): Promise<ExistingPackage[] | undefined> =>\r\n\taxios\r\n\t\t.get(`Script/GetInformation/${session.sessionId}`, {\r\n\t\t\tbaseURL: session.url,\r\n\t\t\tvalidateStatus: (status) => status === 404 || status === 200,\r\n\t\t})\r\n\t\t.then(({ data }) => (Array.isArray(data) ? data : undefined));\r\n\r\nconst uploadPackageToUrl = (url: string, path: string, zipFilePath: string) =>\r\n\taxios\r\n\t\t.post(path, fs.createReadStream(zipFilePath), {\r\n\t\t\tbaseURL: url,\r\n\t\t})\r\n\t\t.then(({ data, status }) => {\r\n\t\t\tlet objectBody: any;\r\n\r\n\t\t\tif (typeof data === \"string\") {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tobjectBody = JSON.parse(data);\r\n\t\t\t\t} catch (err) {}\r\n\t\t\t} else if (typeof data === \"object\") {\r\n\t\t\t\tobjectBody = data;\r\n\t\t\t}\r\n\r\n\t\t\tif (objectBody !== undefined) {\r\n\t\t\t\tif (\"state\" in objectBody && objectBody.state !== \"SUCCESS\") {\r\n\t\t\t\t\tthrow new Error(objectBody.response ?? objectBody.state);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (status >= 400) {\r\n\t\t\t\tif (objectBody !== undefined) {\r\n\t\t\t\t\tlet text = \"\";\r\n\r\n\t\t\t\t\tfor (const key in objectBody) {\r\n\t\t\t\t\t\ttext += key + \": \\n\";\r\n\t\t\t\t\t\tif (typeof objectBody[key] === \"object\") {\r\n\t\t\t\t\t\t\ttext += JSON.stringify(\r\n\t\t\t\t\t\t\t\tobjectBody[key],\r\n\t\t\t\t\t\t\t\tundefined,\r\n\t\t\t\t\t\t\t\t2,\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\ttext += objectBody[key];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\ttext += \"\\n\\n\";\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthrow new Error(text);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthrow new Error(data);\r\n\t\t\t}\r\n\r\n\t\t\treturn data;\r\n\t\t});\r\n","import Ajv, { ValidateFunction } from \"ajv\";\r\nimport axios from \"axios\";\r\nimport JSZip from \"jszip\";\r\nimport * as path from \"path\";\r\nimport * as fs from \"fs\";\r\nimport * as terser from \"terser\";\r\n\r\nimport { isErrorENOENT } from \"../../lib/error\";\r\nimport { logPackageMessage } from \"../../lib/log\";\r\nimport {\r\n\tCreatorPackage,\r\n\treadPackageCreatorManifest,\r\n\twritePackageCreatorManifest,\r\n\treadPackageAnimationList,\r\n\treadPackageCreatorIndex,\r\n\tparseCreatorPackageName,\r\n\tPackageLocation,\r\n\tPackageNpmManifest,\r\n\tINDEX_FILE,\r\n\tPACKAGE_FILE,\r\n} from \"../../lib/package\";\r\nimport { getWorkspaceOutputPath, WorkspaceLocation } from \"../../lib/workspace\";\r\nimport {\r\n\tPublishedPackageLocation,\r\n\treadPublishedPackageCreatorIndex,\r\n} from \"../../lib/publishedPackage\";\r\n\r\nexport const buildArchiveFromPublishedPackage = (\r\n\tlocation: PublishedPackageLocation,\r\n\tmanifest: PackageNpmManifest,\r\n\tcreatorPackage: CreatorPackage,\r\n) => {\r\n\tconst archive = new JSZip();\r\n\r\n\tarchive.file(PACKAGE_FILE, JSON.stringify(creatorPackage, null, 2));\r\n\r\n\tconst index = readPublishedPackageCreatorIndex(location);\r\n\r\n\tif (index !== undefined) {\r\n\t\tarchive.file(INDEX_FILE, JSON.stringify(index, null, 2));\r\n\t}\r\n\r\n\tarchive.file(\r\n\t\tmanifest.main,\r\n\t\tfs.createReadStream(path.join(location.path, manifest.main)),\r\n\t);\r\n\r\n\treturn archive;\r\n};\r\n\r\nlet validateSchema: ValidateFunction | undefined;\r\n\r\nconst runtimeScripts: CreatorPackage[\"Type\"][] = [\r\n\t\"Interactor\",\r\n\t\"Core\",\r\n\t\"Mixed\",\r\n];\r\n\r\nconst notRuntimeScripts: CreatorPackage[\"Type\"][] = [\"Context\", \"Evaluator\"];\r\n\r\nexport const buildArchiveFromPackage = async (\r\n\tworkspaceLocation: WorkspaceLocation,\r\n\tpackageLocation: PackageLocation,\r\n\tdata: CreatorPackage,\r\n) => {\r\n\tconst { domain, subdomain } = parseCreatorPackageName(data);\r\n\r\n\tconst logStep = (step: string) => logPackageMessage(data.Package, step);\r\n\r\n\tif (validateSchema === undefined) {\r\n\t\tvalidateSchema = await axios\r\n\t\t\t.get(\r\n\t\t\t\t\"https://archive.intelligentgraphics.biz/schemas/gfx/animation.json\",\r\n\t\t\t)\r\n\t\t\t.then(({ data }) =>\r\n\t\t\t\tnew Ajv({\r\n\t\t\t\t\tcoerceTypes: true,\r\n\t\t\t\t\tallErrors: true,\r\n\t\t\t\t\tremoveAdditional: true,\r\n\t\t\t\t\tuseDefaults: \"empty\",\r\n\t\t\t\t\tvalidateSchema: \"log\",\r\n\t\t\t\t}).compile(data),\r\n\t\t\t);\r\n\t}\r\n\r\n\tconst libFilePath = path.join(\r\n\t\tgetWorkspaceOutputPath(workspaceLocation),\r\n\t\t`${data.Package}.min.js`,\r\n\t);\r\n\r\n\tconst scriptDirectories: string[] = [\r\n\t\tpackageLocation.path,\r\n\t\tpackageLocation.scriptsDir,\r\n\t];\r\n\r\n\tif (subdomain === \"GFX.Standard\") {\r\n\t\tlogStep(`Including Images folder`);\r\n\t\tscriptDirectories.push(path.join(packageLocation.path, \"Images\"));\r\n\t}\r\n\r\n\tconst manifest = readPackageCreatorManifest(packageLocation);\r\n\r\n\tif (manifest !== undefined) {\r\n\t\tif (manifest.RunTime && notRuntimeScripts.includes(manifest.Type)) {\r\n\t\t\tlogStep(\"Setting script RunTime to false because of script type\");\r\n\t\t\twritePackageCreatorManifest(packageLocation, {\r\n\t\t\t\t...manifest,\r\n\t\t\t\tRunTime: false,\r\n\t\t\t});\r\n\t\t} else if (\r\n\t\t\t!manifest.RunTime &&\r\n\t\t\truntimeScripts.includes(manifest.Type)\r\n\t\t) {\r\n\t\t\tlogStep(\"Setting script RunTime to true because of script type\");\r\n\t\t\twritePackageCreatorManifest(packageLocation, {\r\n\t\t\t\t...manifest,\r\n\t\t\t\tRunTime: true,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\t// if (index === undefined) {\r\n\t// \tthrow new Error(\r\n\t// \t\t`Could not find an \"${INDEX_FILE}\" file in \"${primaryScriptDir}\"`,\r\n\t// \t);\r\n\t// }\r\n\r\n\tconst animations = new Map<string, string>();\r\n\r\n\tfor (const scriptFilePath of readPackageAnimationList(packageLocation)) {\r\n\t\tconst content = fs.readFileSync(scriptFilePath, { encoding: \"utf8\" })!;\r\n\r\n\t\tlet data: { Id: string };\r\n\r\n\t\ttry {\r\n\t\t\tdata = JSON.parse(content);\r\n\t\t} catch (err) {\r\n\t\t\tconst relativePath = path.relative(\r\n\t\t\t\tworkspaceLocation.path,\r\n\t\t\t\tscriptFilePath,\r\n\t\t\t);\r\n\r\n\t\t\tif (err instanceof SyntaxError) {\r\n\t\t\t\tthrow new Error(\r\n\t\t\t\t\t`Encountered invalid syntax in file \"${relativePath}\": ${String(\r\n\t\t\t\t\t\terr,\r\n\t\t\t\t\t)}`,\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t\tthrow new Error(\r\n\t\t\t\t`Encountered an unexpected error while parsing animation json file at path \"${relativePath}\"`,\r\n\t\t\t\t{\r\n\t\t\t\t\tcause: err,\r\n\t\t\t\t},\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tvalidateSchema!(data);\r\n\r\n\t\tanimations.set(data.Id, JSON.stringify(data));\r\n\t}\r\n\r\n\tlet libFile: string | undefined;\r\n\r\n\ttry {\r\n\t\tlibFile = fs.readFileSync(libFilePath, { encoding: \"utf8\" });\r\n\t} catch (err) {\r\n\t\tif (!isErrorENOENT(err)) {\r\n\t\t\tthrow err;\r\n\t\t}\r\n\t}\r\n\r\n\tif (libFile === undefined) {\r\n\t\tif (animations.size === 0) {\r\n\t\t\tthrow new Error(`Could not find a javascript file at \"${libFilePath}\".\r\nPackaging without a javascript file is only allowed when animation json files are available`);\r\n\t\t}\r\n\t}\r\n\r\n\tconst archive = new JSZip();\r\n\r\n\tlet library: string = \"\";\r\n\r\n\tif (libFile) {\r\n\t\tlibrary = libFile;\r\n\t}\r\n\r\n\tif (!library) {\r\n\t\tconst date = new Date(Date.now());\r\n\t\tlibrary = `/* This file is part of the ${domain} Data Packages.\r\n\t\t* Copyright (C) ${date.getFullYear()} intelligentgraphics. All Rights Reserved. */`;\r\n\t}\r\n\r\n\tif (animations.size > 0) {\r\n\t\tconst scopeParts = data.Scope.split(\".\");\r\n\t\tconst scope = data.Scope;\r\n\r\n\t\tlibrary += createNamespace(scopeParts);\r\n\r\n\t\tfor (const [name, data] of animations) {\r\n\t\t\tlibrary += `${scope}.${name} = ` + data + \";\";\r\n\t\t\tlogPackageMessage(\r\n\t\t\t\tmanifest.Package,\r\n\t\t\t\t`Added animation ${scope}.${name}`,\r\n\t\t\t);\r\n\t\t}\r\n\t}\r\n\r\n\tconst minifyResult = await terser.minify(library, { ecma: 5 });\r\n\r\n\tarchive.file(`${data.Package}.js`, minifyResult.code!);\r\n\tarchive.file(PACKAGE_FILE, JSON.stringify(data, null, 2));\r\n\r\n\tconst creatorIndex = readPackageCreatorIndex(packageLocation);\r\n\r\n\tif (creatorIndex !== undefined) {\r\n\t\tarchive.file(INDEX_FILE, JSON.stringify(creatorIndex, null, 2));\r\n\t}\r\n\r\n\tfor (const directory of scriptDirectories) {\r\n\t\ttry {\r\n\t\t\tfor (const file of fs.readdirSync(directory)) {\r\n\t\t\t\tconst { ext } = path.parse(file);\r\n\r\n\t\t\t\tswitch (ext) {\r\n\t\t\t\t\tcase \".png\":\r\n\t\t\t\t\tcase \".jpeg\":\r\n\t\t\t\t\tcase \".jpg\":\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tarchive.file(\r\n\t\t\t\t\tfile,\r\n\t\t\t\t\tfs.createReadStream(path.join(directory, file)),\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t} catch (err) {\r\n\t\t\tconsole.error(`Script directory \"${directory}\" does not exist`);\r\n\t\t}\r\n\t}\r\n\r\n\treturn archive;\r\n};\r\n\r\nconst createNamespace = (parts: string[]) => {\r\n\tlet code = `var ${parts[0]};`;\r\n\r\n\tfor (let index = 0; index < parts.length; index++) {\r\n\t\tconst path = parts.slice(0, index + 1).join(\".\");\r\n\r\n\t\tcode += `\\n(${path} = ${path} || {});`;\r\n\t}\r\n\r\n\treturn code;\r\n};\r\n","import * as path from \"path\";\r\nimport * as fs from \"fs\";\r\nimport { pipeline } from \"stream/promises\";\r\nimport { execSync } from \"child_process\";\r\n\r\nimport { logPackageMessage } from \"../../lib/log\";\r\nimport { translate } from \"../../lib/localization\";\r\nimport { Authentication } from \"../../lib/authentication\";\r\nimport {\r\n\tCreatorPackage,\r\n\tdetectPackage,\r\n\tgetPackageReleasesDirectory,\r\n\tparseCreatorPackageName,\r\n\treadPackageCreatorManifest,\r\n} from \"../../lib/package\";\r\nimport {\r\n\tdetectWorkspace,\r\n\tgetWorkspaceOutputPath,\r\n\treadWorkspaceNpmManifest,\r\n\tWorkspaceLocation,\r\n} from \"../../lib/workspace\";\r\nimport { getVersionInformationFromGit } from \"../../lib/git\";\r\nimport { getWorkspaceBannerText } from \"../../lib/banner\";\r\nimport {\r\n\tparseVersionFromNumericVersion,\r\n\tparseVersionFromString,\r\n} from \"../../lib/parseVersion\";\r\nimport { getVersionFileHandler } from \"../../lib/versionFile\";\r\nimport * as AssetService from \"../../lib/assetService\";\r\nimport { isErrorENOENT } from \"../../lib/error\";\r\nimport { determineWorkspaceIGLibraries } from \"../../lib/dependencies\";\r\nimport {\r\n\treadPublishedPackageCreatorManifest,\r\n\treadPublishedPackageNpmManifest,\r\n} from \"../../lib/publishedPackage\";\r\nimport { Prompter } from \"../../lib/prompter\";\r\nimport { PackageVersion } from \"../../lib/packageVersion\";\r\n\r\nimport { BuildFoldersOptions, buildFolders } from \"../build\";\r\nimport {\r\n\tbuildArchiveFromPackage,\r\n\tbuildArchiveFromPublishedPackage,\r\n} from \"./zip\";\r\n\r\nexport interface ReleaseFolderOptions\r\n\textends Omit<\r\n\t\tBuildFoldersOptions,\r\n\t\t\"skipPackagesWithoutTsFiles\" | \"banner\" | \"directories\"\r\n\t> {\r\n\tdirectory: string;\r\n\tnoUpload: boolean;\r\n\tnewVersion: string;\r\n\tdomain?: string;\r\n\tsubdomain?: string;\r\n\taddress?: string;\r\n\tservice: string;\r\n\tauthentication?: Authentication;\r\n\tpushOnly: boolean;\r\n\tbanner?: boolean;\r\n\tprompter: Prompter;\r\n}\r\n\r\nexport const releaseFolder = async (options: ReleaseFolderOptions) => {\r\n\tconst workspace = detectWorkspace(options.cwd);\r\n\tconst location = detectPackage(workspace, options.directory);\r\n\r\n\tconst { write: writeVersionFile, reset: resetVersionFile } =\r\n\t\tgetVersionFileHandler(location);\r\n\r\n\tconst packageDescription = readPackageCreatorManifest(location);\r\n\tconst fullPackageName = packageDescription.Package;\r\n\tconst { domain, subdomain } = parseCreatorPackageName(packageDescription);\r\n\r\n\tconst publishDomain = options.domain ?? domain;\r\n\tconst publishSubdomain = options.subdomain ?? subdomain;\r\n\r\n\tconst sharedPackageJson = readWorkspaceNpmManifest(workspace);\r\n\r\n\tlet newVersion: PackageVersion;\r\n\ttry {\r\n\t\tnewVersion = parseVersionFromString(options.newVersion);\r\n\t} catch (err) {\r\n\t\tthrow new Error(`Please enter a version in this format 1.0.0.100`);\r\n\t}\r\n\r\n\tif (newVersion.buildNumber < 100) {\r\n\t\tnewVersion.preRelease = {\r\n\t\t\ttype: \"beta\",\r\n\t\t\tversion: newVersion.buildNumber,\r\n\t\t};\r\n\t} else if (newVersion.buildNumber > 100) {\r\n\t\tnewVersion.preRelease = {\r\n\t\t\ttype: \"patch\",\r\n\t\t\tversion: newVersion.buildNumber - 100,\r\n\t\t};\r\n\t}\r\n\r\n\tif (sharedPackageJson !== undefined) {\r\n\t\tlogPackageMessage(\r\n\t\t\tpackageDescription.Package,\r\n\t\t\t`Running npm install to make sure all dependencies are up to date`,\r\n\t\t);\r\n\t\texecSync(`npm install`, { encoding: \"utf-8\", cwd: workspace.path });\r\n\t}\r\n\r\n\tconst binDir = getWorkspaceOutputPath(workspace);\r\n\tfs.mkdirSync(binDir, { recursive: true });\r\n\r\n\tlet assetServerPackageDetails: AssetService.UploadPackageDetails;\r\n\r\n\tlet packageNameWithVersion: string;\r\n\r\n\t{\r\n\t\tconst versionWithoutPrelease = newVersion.clone();\r\n\t\tversionWithoutPrelease.preRelease = undefined;\r\n\t\tconst newVersionString = versionWithoutPrelease.toVersionString({\r\n\t\t\tbuildNumber: true,\r\n\t\t});\r\n\t\tpackageNameWithVersion = `${packageDescription.Package}_${newVersionString}`;\r\n\r\n\t\tassetServerPackageDetails = {\r\n\t\t\tname: packageDescription.Package,\r\n\t\t\tversion: newVersionString,\r\n\t\t};\r\n\t}\r\n\r\n\tconst zipFilePath = path.join(binDir, packageNameWithVersion + \".zip\");\r\n\r\n\ttry {\r\n\t\tif (options.pushOnly) {\r\n\t\t\tif (!fs.existsSync(zipFilePath)) {\r\n\t\t\t\tthrow new Error(\r\n\t\t\t\t\t`Expected a zip file to exist at path ${zipFilePath} since pushOnly is specified`,\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tconst gitVersionInformation = await getVersionInformationFromGit(\r\n\t\t\t\tworkspace,\r\n\t\t\t\tlocation,\r\n\t\t\t);\r\n\r\n\t\t\twriteVersionFile(fullPackageName, newVersion);\r\n\r\n\t\t\tconst bannerText =\r\n\t\t\t\tsharedPackageJson !== undefined\r\n\t\t\t\t\t? getWorkspaceBannerText(sharedPackageJson)\r\n\t\t\t\t\t: undefined;\r\n\r\n\t\t\tawait buildFolders({\r\n\t\t\t\t...options,\r\n\t\t\t\tdirectories: [location.path],\r\n\t\t\t\tskipPackagesWithoutTsFiles: true,\r\n\t\t\t\tbanner: options.banner\r\n\t\t\t\t\t? {\r\n\t\t\t\t\t\t\ttext: bannerText,\r\n\t\t\t\t\t\t\tcommit: gitVersionInformation.commit,\r\n\t\t\t\t\t\t\tcommitDirty: gitVersionInformation.dirty,\r\n\t\t\t\t\t\t\tversion: newVersion.toVersionString({\r\n\t\t\t\t\t\t\t\tbuildNumber: true,\r\n\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t\tdate: new Date(Date.now()),\r\n\t\t\t\t\t\t\t// gitVersionInformation.commitDate\r\n\t\t\t\t\t\t\t// \t? new Date(gitVersionInformation.commitDate)\r\n\t\t\t\t\t\t\t// \t: new Date(Date.now()),\r\n\t\t\t\t\t }\r\n\t\t\t\t\t: undefined,\r\n\t\t\t});\r\n\r\n\t\t\tnewVersion.preRelease = undefined;\r\n\r\n\t\t\ttry {\r\n\t\t\t\tfs.rmSync(zipFilePath);\r\n\t\t\t} catch (err) {\r\n\t\t\t\tif (!isErrorENOENT(err)) {\r\n\t\t\t\t\tthrow err;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tconst archive = await buildArchiveFromPackage(\r\n\t\t\t\tworkspace,\r\n\t\t\t\tlocation,\r\n\t\t\t\tpackageDescription,\r\n\t\t\t);\r\n\r\n\t\t\tconst zipOutputStream = fs.createWriteStream(zipFilePath);\r\n\t\t\tawait pipeline(archive.generateNodeStream(), zipOutputStream);\r\n\t\t}\r\n\r\n\t\tif (!options.noUpload) {\r\n\t\t\tif (!options.authentication) {\r\n\t\t\t\tthrow new Error(`Expected authentication to be available`);\r\n\t\t\t}\r\n\r\n\t\t\tlogPackageMessage(\r\n\t\t\t\tpackageDescription.Package,\r\n\t\t\t\t`Opening connection to IG.Asset.Server`,\r\n\t\t\t);\r\n\r\n\t\t\tconst sessionManager = await createSessionManager({\r\n\t\t\t\turl: options.service,\r\n\t\t\t\taddress: options.address,\r\n\t\t\t\tdomain: publishDomain,\r\n\t\t\t\tsubDomain: publishSubdomain,\r\n\t\t\t\tauthentication: options.authentication,\r\n\t\t\t});\r\n\r\n\t\t\ttry {\r\n\t\t\t\tif (\r\n\t\t\t\t\t!(await ensureRequiredVersions(\r\n\t\t\t\t\t\tworkspace,\r\n\t\t\t\t\t\tpackageDescription,\r\n\t\t\t\t\t\tsessionManager,\r\n\t\t\t\t\t\toptions.prompter,\r\n\t\t\t\t\t))\r\n\t\t\t\t) {\r\n\t\t\t\t\tlogPackageMessage(\r\n\t\t\t\t\t\tpackageDescription.Package,\r\n\t\t\t\t\t\t\"Failed to ensure required dependency versions: IG.Asset.Server does not yet support required apis for dependency check\",\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlogPackageMessage(\r\n\t\t\t\t\tpackageDescription.Package,\r\n\t\t\t\t\t`Uploading package to ${publishDomain}.${publishSubdomain}`,\r\n\t\t\t\t);\r\n\r\n\t\t\t\tawait AssetService.uploadPackage(\r\n\t\t\t\t\tsessionManager.getTargetSession(),\r\n\t\t\t\t\tassetServerPackageDetails,\r\n\t\t\t\t\tzipFilePath,\r\n\t\t\t\t);\r\n\t\t\t} finally {\r\n\t\t\t\tawait sessionManager.destroy().catch((err) => {\r\n\t\t\t\t\tlogPackageMessage(\r\n\t\t\t\t\t\tpackageDescription.Package,\r\n\t\t\t\t\t\t`Failed to close IG.Asset.Server session(s): ${err}`,\r\n\t\t\t\t\t);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t} catch (err) {\r\n\t\tresetVersionFile();\r\n\t\tthrow err;\r\n\t}\r\n\r\n\tif (newVersion.buildNumber >= 100 && !options.pushOnly) {\r\n\t\tlogPackageMessage(\r\n\t\t\tfullPackageName,\r\n\t\t\ttranslate(\"messages.movingReleaseZip\"),\r\n\t\t);\r\n\r\n\t\tconst zipFileName = `${packageNameWithVersion}.zip`;\r\n\t\tconst releasesPath = getPackageReleasesDirectory(location);\r\n\r\n\t\tfs.mkdirSync(releasesPath, { recursive: true });\r\n\t\tfs.copyFileSync(zipFilePath, path.join(releasesPath, zipFileName));\r\n\t}\r\n};\r\n\r\nconst ensureRequiredVersions = async (\r\n\tworkspaceLocation: WorkspaceLocation,\r\n\tcreatorPackage: CreatorPackage,\r\n\tsessionManager: SessionManager,\r\n\tprompter: Prompter,\r\n) => {\r\n\tinterface UploadedPackage\r\n\t\textends Omit<AssetService.ExistingPackage, \"version\"> {\r\n\t\tversion: PackageVersion;\r\n\t}\r\n\r\n\tconst libraries = determineWorkspaceIGLibraries(workspaceLocation);\r\n\r\n\t// If there are no libraries, we don't need to check for required versions\r\n\tif (libraries.length === 0) {\r\n\t\treturn true;\r\n\t}\r\n\r\n\tconst targetSession = sessionManager.getTargetSession();\r\n\r\n\tconst rawUploadedPackages = await AssetService.getExistingPackages(\r\n\t\ttargetSession,\r\n\t);\r\n\r\n\tif (rawUploadedPackages === undefined) {\r\n\t\treturn false;\r\n\t}\r\n\r\n\tconst uploadedPackages = rawUploadedPackages.map(\r\n\t\t(entry): UploadedPackage => {\r\n\t\t\tlet version: PackageVersion;\r\n\r\n\t\t\ttry {\r\n\t\t\t\tversion = parseVersionFromNumericVersion(entry.numericVersion);\r\n\t\t\t} catch (err) {\r\n\t\t\t\tthrow new Error(\r\n\t\t\t\t\t`Encountered invalid format for version ${entry.numericVersion}`,\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\tif (version.buildNumber < 100) {\r\n\t\t\t\tversion.preRelease = {\r\n\t\t\t\t\ttype: \"beta\",\r\n\t\t\t\t\tversion: version.buildNumber,\r\n\t\t\t\t};\r\n\t\t\t} else if (version.buildNumber > 100) {\r\n\t\t\t\tversion.preRelease = {\r\n\t\t\t\t\ttype: \"patch\",\r\n\t\t\t\t\tversion: version.buildNumber - 100,\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\t...entry,\r\n\t\t\t\tversion,\r\n\t\t\t};\r\n\t\t},\r\n\t);\r\n\r\n\tfor (const libraryLocation of libraries) {\r\n\t\tconst libraryManifest =\r\n\t\t\treadPublishedPackageNpmManifest(libraryLocation);\r\n\t\tconst libraryCreatorPackage =\r\n\t\t\treadPublishedPackageCreatorManifest(libraryLocation);\r\n\r\n\t\tif (\r\n\t\t\tlibraryCreatorPackage === undefined ||\r\n\t\t\tlibraryManifest.main === undefined ||\r\n\t\t\tlibraryCreatorPackage.Package === creatorPackage.Package\r\n\t\t) {\r\n\t\t\tcontinue;\r\n\t\t}\r\n\r\n\t\tconst libraryVersion = PackageVersion.extractFromLine(\r\n\t\t\tlibraryManifest.version,\r\n\t\t);\r\n\r\n\t\tif (libraryVersion.preRelease) {\r\n\t\t\tlibraryVersion.buildNumber = libraryVersion.preRelease.version;\r\n\t\t\tlibraryVersion.preRelease = undefined;\r\n\t\t} else {\r\n\t\t\tlibraryVersion.buildNumber = 100;\r\n\t\t}\r\n\r\n\t\tlet uploadedPackageInBasics: UploadedPackage | undefined;\r\n\t\tlet uploadedPackageInTarget: UploadedPackage | undefined;\r\n\r\n\t\tfor (const uploadedPackage of uploadedPackages) {\r\n\t\t\tif (uploadedPackage.scope === libraryCreatorPackage.Package) {\r\n\t\t\t\tif (uploadedPackage.support) {\r\n\t\t\t\t\tuploadedPackageInBasics = uploadedPackage;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tuploadedPackageInTarget = uploadedPackage;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst validInBasics =\r\n\t\t\tuploadedPackageInBasics !== undefined &&\r\n\t\t\t!uploadedPackageInBasics.version.isLesserThan(libraryVersion);\r\n\t\tconst validInTarget =\r\n\t\t\tuploadedPackageInTarget !== undefined &&\r\n\t\t\t!uploadedPackageInTarget.version.isLesserThan(libraryVersion);\r\n\r\n\t\tif (validInBasics || validInTarget) {\r\n\t\t\tif (\r\n\t\t\t\ttargetSession.subDomain !== \"Basics\" &&\r\n\t\t\t\t(uploadedPackageInBasics !== undefined ||\r\n\t\t\t\t\tuploadedPackageInTarget !== undefined)\r\n\t\t\t) {\r\n\t\t\t\tlogPackageMessage(\r\n\t\t\t\t\tcreatorPackage.Package,\r\n\t\t\t\t\t`Package ${libraryCreatorPackage.Package} is uploaded both for Basics and ${targetSession.subDomain}. The package within ${targetSession.subDomain} will be used.`,\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t\tcontinue;\r\n\t\t}\r\n\r\n\t\tlogPackageMessage(\r\n\t\t\tcreatorPackage.Package,\r\n\t\t\t`Requested at least version ${libraryVersion.toVersionString({\r\n\t\t\t\tbuildNumber: true,\r\n\t\t\t})} for package ${libraryCreatorPackage.Package}`,\r\n\t\t);\r\n\r\n\t\tif (targetSession.subDomain !== \"Basics\" && uploadedPackageInTarget) {\r\n\t\t\tconst version = uploadedPackageInTarget.version.toVersionString({\r\n\t\t\t\tbuildNumber: true,\r\n\t\t\t});\r\n\r\n\t\t\tlogPackageMessage(\r\n\t\t\t\tcreatorPackage.Package,\r\n\t\t\t\t`Found invalid version ${version} for package ${libraryCreatorPackage.Package} in ${targetSession.subDomain}`,\r\n\t\t\t);\r\n\t\t}\r\n\t\tif (uploadedPackageInBasics) {\r\n\t\t\tconst version = uploadedPackageInBasics.version.toVersionString({\r\n\t\t\t\tbuildNumber: true,\r\n\t\t\t});\r\n\r\n\t\t\tlet message = `Found invalid version ${version} for package ${libraryCreatorPackage.Package} in Basics`;\r\n\r\n\t\t\tif (\r\n\t\t\t\ttargetSession.subDomain !== \"Basics\" &&\r\n\t\t\t\tuploadedPackageInTarget\r\n\t\t\t) {\r\n\t\t\t\tmessage += `. This version will not be used since the package also exists in ${targetSession.subDomain}`;\r\n\t\t\t}\r\n\r\n\t\t\tlogPackageMessage(creatorPackage.Package, message);\r\n\t\t}\r\n\r\n\t\tconst possibleTargets: string[] = [\"Basics\"];\r\n\r\n\t\tif (targetSession.subDomain !== \"Basics\") {\r\n\t\t\tpossibleTargets.push(targetSession.subDomain);\r\n\t\t}\r\n\r\n\t\tconst uploadTargetScope = await prompter.ask({\r\n\t\t\tmessage: `Select the scope to upload the required version of ${libraryCreatorPackage.Package} to or select \"skip\" to skip the upload.`,\r\n\t\t\toptions: [...possibleTargets, \"Skip\"],\r\n\t\t\tdefault: possibleTargets[0],\r\n\t\t});\r\n\r\n\t\tif (uploadTargetScope === \"Skip\") {\r\n\t\t\tcontinue;\r\n\t\t}\r\n\r\n\t\tconst archive = buildArchiveFromPublishedPackage(\r\n\t\t\tlibraryLocation,\r\n\t\t\tlibraryManifest,\r\n\t\t\tlibraryCreatorPackage,\r\n\t\t);\r\n\r\n\t\tconst newVersionString = libraryVersion.toVersionString({\r\n\t\t\tbuildNumber: true,\r\n\t\t});\r\n\t\tconst packageNameWithVersion = `${libraryCreatorPackage.Package}_${newVersionString}`;\r\n\r\n\t\tconst zipFilePath = path.join(\r\n\t\t\tgetWorkspaceOutputPath(workspaceLocation),\r\n\t\t\t`${packageNameWithVersion}.zip`,\r\n\t\t);\r\n\r\n\t\ttry {\r\n\t\t\tfs.rmSync(zipFilePath);\r\n\t\t} catch (err) {\r\n\t\t\tif (!isErrorENOENT(err)) {\r\n\t\t\t\tthrow err;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst zipOutputStream = fs.createWriteStream(zipFilePath);\r\n\t\tawait pipeline(archive.generateNodeStream(), zipOutputStream);\r\n\r\n\t\tconst session =\r\n\t\t\tuploadTargetScope === \"Basics\"\r\n\t\t\t\t? await sessionManager.getBasicsSession()\r\n\t\t\t\t: targetSession;\r\n\r\n\t\tlogPackageMessage(\r\n\t\t\tcreatorPackage.Package,\r\n\t\t\t`Uploading package ${libraryCreatorPackage.Package} with version ${newVersionString} to ${session.domain}.${session.subDomain}`,\r\n\t\t);\r\n\r\n\t\tawait AssetService.uploadPackage(\r\n\t\t\tsession,\r\n\t\t\t{\r\n\t\t\t\tname: libraryCreatorPackage.Package,\r\n\t\t\t\tversion: newVersionString,\r\n\t\t\t},\r\n\t\t\tzipFilePath,\r\n\t\t);\r\n\t}\r\n\r\n\treturn true;\r\n};\r\n\r\ninterface SessionManager {\r\n\tgetBasicsSession: () => Promise<AssetService.Session>;\r\n\tgetTargetSession: () => AssetService.Session;\r\n\tdestroy: () => Promise<void>;\r\n}\r\n\r\nconst createSessionManager = async (\r\n\tparams: AssetService.SessionStartParams,\r\n): Promise<SessionManager> => {\r\n\tconst targetSession = await AssetService.startSession(params);\r\n\tlet basicsSession: AssetService.Session | undefined;\r\n\r\n\treturn {\r\n\t\tgetBasicsSession: async () => {\r\n\t\t\tif (targetSession.subDomain === \"Basics\") {\r\n\t\t\t\treturn targetSession;\r\n\t\t\t}\r\n\r\n\t\t\tif (basicsSession === undefined) {\r\n\t\t\t\tbasicsSession = await AssetService.startSession({\r\n\t\t\t\t\t...params,\r\n\t\t\t\t\tsubDomain: \"Basics\",\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\treturn basicsSession;\r\n\t\t},\r\n\r\n\t\tgetTargetSession: () => targetSession,\r\n\r\n\t\tdestroy: async () => {\r\n\t\t\tawait AssetService.closeSession(targetSession);\r\n\r\n\t\t\tif (basicsSession !== undefined) {\r\n\t\t\t\tawait AssetService.closeSession(basicsSession);\r\n\t\t\t}\r\n\t\t},\r\n\t};\r\n};\r\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","PACKAGE_FILE","index","readPublishedPackageCreatorIndex","INDEX_FILE","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","minifyResult","terser","minify","ecma","code","creatorIndex","readPackageCreatorIndex","directory","readdirSync","ext","console","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","libraries","determineWorkspaceIGLibraries","targetSession","rawUploadedPackages","uploadedPackages","map","entry","parseVersionFromNumericVersion","numericVersion","libraryLocation","libraryManifest","readPublishedPackageNpmManifest","libraryCreatorPackage","readPublishedPackageCreatorManifest","libraryVersion","PackageVersion","extractFromLine","uploadedPackageInBasics","uploadedPackageInTarget","uploadedPackage","support","validInBasics","isLesserThan","validInTarget","message","possibleTargets","uploadTargetScope","ask","default","getBasicsSession","basicsSession"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"postinstall.mjs","sources":["../src/commands/postinstall.ts"],"sourcesContent":["import * as path from \"path\";\r\nimport * as fs from \"fs\";\r\n\r\nimport {\r\n\tgetWorkspaceLibPath,\r\n\treadWorkspaceNpmManifest,\r\n\tWorkspaceLocation,\r\n} from \"../lib/workspace\";\r\nimport { readPublishedPackageNpmManifest } from \"../lib/publishedPackage\";\r\nimport { determineWorkspaceIGLibraries } from \"../lib/dependencies\";\r\n\r\nconst DEFINITION_FILE_HINT =\r\n\t\"// This file is automatically managed by the ig.gfx.packager.\";\r\n\r\nexport const executePostInstall = (workspace: WorkspaceLocation) => {\r\n\tconst manifest = readWorkspaceNpmManifest(workspace);\r\n\r\n\tif (manifest === undefined) {\r\n\t\tthrow new Error(`Expected an npm manifest to exist.`);\r\n\t}\r\n\r\n\tconst libPath = getWorkspaceLibPath(workspace);\r\n\r\n\tfs.mkdirSync(libPath, { recursive: true });\r\n\r\n\tconst existingDefinitions = fs.readdirSync(libPath);\r\n\r\n\t// delete all existing definition files that are managed by the packager.\r\n\t// we'll recreate all needed definitions in the next step.\r\n\tfor (const existingDefinitionName of existingDefinitions) {\r\n\t\tconst content = fs.readFileSync(\r\n\t\t\tpath.join(libPath, existingDefinitionName),\r\n\t\t\t{ encoding: \"utf-8\" },\r\n\t\t);\r\n\r\n\t\tif (content.startsWith(DEFINITION_FILE_HINT)) {\r\n\t\t\tfs.rmSync(path.join(libPath, existingDefinitionName));\r\n\t\t}\r\n\t}\r\n\r\n\tconst libraryLocations = determineWorkspaceIGLibraries(workspace);\r\n\r\n\tfor (const location of libraryLocations) {\r\n\t\tconst manifest = readPublishedPackageNpmManifest(location);\r\n\r\n\t\t// add a hint to the top of the file so we know it's managed by the packager.\r\n\t\tconst content = `${DEFINITION_FILE_HINT}\r\n// This is a reference to version ${manifest.version}.\r\n// Run \"npm install\" to install the types if they are missing or not up to date.\r\n/// <reference types=\"${manifest.name}\" />`;\r\n\r\n\t\tfs.writeFileSync(\r\n\t\t\tpath.join(getWorkspaceLibPath(workspace), manifest.types),\r\n\t\t\tcontent,\r\n\t\t\t{\r\n\t\t\t\tencoding: \"utf8\",\r\n\t\t\t},\r\n\t\t);\r\n\t}\r\n};\r\n"],"names":["DEFINITION_FILE_HINT","executePostInstall","workspace","manifest","readWorkspaceNpmManifest","undefined","Error","libPath","getWorkspaceLibPath","fs","mkdirSync","recursive","existingDefinitions","readdirSync","existingDefinitionName","content","readFileSync","path","join","encoding","startsWith","rmSync","libraryLocations","determineWorkspaceIGLibraries","location","readPublishedPackageNpmManifest","version","name","writeFileSync","types"],"mappings":";;;;;;;;;;;;;AAWA,MAAMA,oBAAoB,GACzB,+DAA+D,CAAA;AAEnDC,MAAAA,kBAAkB,GAAIC,SAA4B,IAAK;AACnE,EAAA,MAAMC,QAAQ,GAAGC,wBAAwB,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,mBAAmB,CAACN,SAAS,CAAC,CAAA;AAE9CO,EAAAA,EAAE,CAACC,SAAS,CAACH,OAAO,EAAE;AAAEI,IAAAA,SAAS,EAAE,IAAA;AAAK,GAAC,CAAC,CAAA;AAE1C,EAAA,MAAMC,mBAAmB,GAAGH,EAAE,CAACI,WAAW,CAACN,OAAO,CAAC,CAAA;;AAEnD;AACA;AACA,EAAA,KAAK,MAAMO,sBAAsB,IAAIF,mBAAmB,EAAE;AACzD,IAAA,MAAMG,OAAO,GAAGN,EAAE,CAACO,YAAY,CAC9BC,IAAI,CAACC,IAAI,CAACX,OAAO,EAAEO,sBAAsB,CAAC,EAC1C;AAAEK,MAAAA,QAAQ,EAAE,OAAA;AAAQ,KAAC,CACrB,CAAA;AAED,IAAA,IAAIJ,OAAO,CAACK,UAAU,CAACpB,oBAAoB,CAAC,EAAE;MAC7CS,EAAE,CAACY,MAAM,CAACJ,IAAI,CAACC,IAAI,CAACX,OAAO,EAAEO,sBAAsB,CAAC,CAAC,CAAA;AACtD,KAAA;AACD,GAAA;AAEA,EAAA,MAAMQ,gBAAgB,GAAGC,6BAA6B,CAACrB,SAAS,CAAC,CAAA;AAEjE,EAAA,KAAK,MAAMsB,QAAQ,IAAIF,gBAAgB,EAAE;AACxC,IAAA,MAAMnB,QAAQ,GAAGsB,+BAA+B,CAACD,QAAQ,CAAC,CAAA;;AAE1D;IACA,MAAMT,OAAO,GAAI,CAAA,EAAEf,oBAAqB,CAAA;AAC1C,kCAAoCG,EAAAA,QAAQ,CAACuB,OAAQ,CAAA;AACrD;AACA,sBAAwBvB,EAAAA,QAAQ,CAACwB,IAAK,CAAK,IAAA,CAAA,CAAA;AAEzClB,IAAAA,EAAE,CAACmB,aAAa,CACfX,IAAI,CAACC,IAAI,CAACV,mBAAmB,CAACN,SAAS,CAAC,EAAEC,QAAQ,CAAC0B,KAAK,CAAC,EACzDd,OAAO,EACP;AACCI,MAAAA,QAAQ,EAAE,MAAA;AACX,KAAC,CACD,CAAA;AACF,GAAA;AACD;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"publishNpm.mjs","sources":["../src/commands/publishNpm.ts"],"sourcesContent":["import * as path from \"path\";\r\nimport * as fs from \"fs\";\r\nimport { spawnSync } from \"child_process\";\r\n\r\nimport { PackageVersion } from \"../lib/packageVersion\";\r\nimport {\r\n\tINDEX_FILE,\r\n\tPackageLocation,\r\n\tPACKAGE_FILE,\r\n\treadPackageCreatorIndex,\r\n\treadPackageCreatorManifest,\r\n\treadPackageNpmManifest,\r\n\twritePackageNpmManifest,\r\n} from \"../lib/package\";\r\nimport {\r\n\tgetWorkspaceOutputPath,\r\n\titerateWorkspacePackages,\r\n\treadWorkspaceNpmManifest,\r\n\tWorkspaceLocation,\r\n} from \"../lib/workspace\";\r\nimport { getVersionInformationFromGit } from \"../lib/git\";\r\nimport { getWorkspaceBannerText } from \"../lib/banner\";\r\nimport { parseVersionFromString } from \"../lib/parseVersion\";\r\nimport { getVersionFileHandler } from \"../lib/versionFile\";\r\nimport { logPackageMessage } from \"../lib/log\";\r\n\r\nimport { buildFolders } from \"./build\";\r\n\r\nexport interface PublishToNpmSettings {\r\n\tworkspace: WorkspaceLocation;\r\n\tlocation: PackageLocation;\r\n\tversion: string;\r\n\tdryRun?: boolean;\r\n}\r\n\r\nexport const publishToNpm = async ({\r\n\tworkspace,\r\n\tlocation,\r\n\tversion: providedVersion,\r\n\tdryRun,\r\n}: PublishToNpmSettings) => {\r\n\tlet newVersion: PackageVersion;\r\n\ttry {\r\n\t\tnewVersion = parseVersionFromString(providedVersion);\r\n\t} catch (err) {\r\n\t\tthrow new Error(`Please enter a version in this format 1.0.0.100`);\r\n\t}\r\n\r\n\tif (newVersion.buildNumber < 100) {\r\n\t\tnewVersion.preRelease = {\r\n\t\t\ttype: \"beta\",\r\n\t\t\tversion: newVersion.buildNumber,\r\n\t\t};\r\n\t} else if (newVersion.buildNumber === 100) {\r\n\t\tnewVersion.preRelease = undefined;\r\n\t} else {\r\n\t\tthrow new Error(\r\n\t\t\t`Refusing to publish a package with a build version larger than 100.`,\r\n\t\t);\r\n\t}\r\n\r\n\tconst workspaceManifest = readWorkspaceNpmManifest(workspace);\r\n\tconst workspaceOutputPath = getWorkspaceOutputPath(workspace);\r\n\tconst creatorPackage = readPackageCreatorManifest(location);\r\n\tlet packageJson = readPackageNpmManifest(location);\r\n\r\n\tif (packageJson === undefined) {\r\n\t\tpackageJson = {\r\n\t\t\tname:\r\n\t\t\t\t\"@intelligentgraphics/3d\" +\r\n\t\t\t\tcreatorPackage.Package.toLowerCase(),\r\n\t\t\tversion: \"1.0.0\",\r\n\t\t\tdescription: creatorPackage.Package,\r\n\t\t};\r\n\t}\r\n\r\n\tpackageJson.version = newVersion.toVersionString({\r\n\t\tbuildNumber: false,\r\n\t});\r\n\tpackageJson.description = newVersion.toDescriptionString(\r\n\t\tcreatorPackage.Package,\r\n\t);\r\n\tpackageJson.main = `${creatorPackage.Package}.js`;\r\n\tpackageJson.types = `${creatorPackage.Package}.d.ts`;\r\n\tpackageJson.publishConfig ??= {};\r\n\tpackageJson.publishConfig.acccess = \"public\";\r\n\tpackageJson.ig = {\r\n\t\tscriptingLibrary: true,\r\n\t};\r\n\tpackageJson.files = undefined;\r\n\r\n\tconst publishDir = path.join(\r\n\t\tworkspaceOutputPath,\r\n\t\t\"publish\",\r\n\t\tcreatorPackage.Package,\r\n\t);\r\n\tfs.rmSync(publishDir, { recursive: true, force: true });\r\n\tfs.mkdirSync(publishDir, { recursive: true });\r\n\r\n\twritePackageNpmManifest(location, packageJson);\r\n\r\n\tgetVersionFileHandler(location).write(creatorPackage.Package, newVersion);\r\n\r\n\tconst gitVersionInformation = await getVersionInformationFromGit(\r\n\t\tworkspace,\r\n\t\tlocation,\r\n\t);\r\n\r\n\tconst bannerText =\r\n\t\tworkspaceManifest !== undefined\r\n\t\t\t? getWorkspaceBannerText(workspaceManifest)\r\n\t\t\t: undefined;\r\n\r\n\tawait buildFolders({\r\n\t\tcwd: workspace.path,\r\n\t\tdirectories: [location.path],\r\n\t\tminimize: true,\r\n\t\toutDir: getWorkspaceOutputPath(workspace),\r\n\t\tbanner: {\r\n\t\t\ttext: bannerText,\r\n\t\t\tcommit: gitVersionInformation.commit,\r\n\t\t\tcommitDirty: gitVersionInformation.dirty,\r\n\t\t\tversion: newVersion.toVersionString({\r\n\t\t\t\tbuildNumber: true,\r\n\t\t\t}),\r\n\t\t\tdate: new Date(Date.now()),\r\n\t\t},\r\n\t});\r\n\r\n\tfs.copyFileSync(\r\n\t\tpath.join(\r\n\t\t\tgetWorkspaceOutputPath(workspace),\r\n\t\t\t`${creatorPackage.Package}.d.ts`,\r\n\t\t),\r\n\t\tpath.join(publishDir, `${creatorPackage.Package}.d.ts`),\r\n\t);\r\n\tfs.copyFileSync(\r\n\t\tpath.join(\r\n\t\t\tgetWorkspaceOutputPath(workspace),\r\n\t\t\t`${creatorPackage.Package}.min.js`,\r\n\t\t),\r\n\t\tpath.join(publishDir, `${creatorPackage.Package}.js`),\r\n\t);\r\n\r\n\tfs.copyFileSync(\r\n\t\tpath.join(location.manifestDir, \"package.json\"),\r\n\t\tpath.join(publishDir, \"package.json\"),\r\n\t);\r\n\r\n\tfs.writeFileSync(\r\n\t\tpath.join(publishDir, PACKAGE_FILE),\r\n\t\tJSON.stringify(creatorPackage, null, 2),\r\n\t);\r\n\r\n\tconst index = readPackageCreatorIndex(location);\r\n\r\n\tif (index !== undefined) {\r\n\t\tfs.writeFileSync(\r\n\t\t\tpath.join(publishDir, INDEX_FILE),\r\n\t\t\tJSON.stringify(index),\r\n\t\t);\r\n\t}\r\n\r\n\tconst readmeName = fs\r\n\t\t.readdirSync(location.path)\r\n\t\t.find((name) => name.toLowerCase() === \"readme.md\");\r\n\r\n\tif (readmeName !== undefined) {\r\n\t\tfs.copyFileSync(\r\n\t\t\tpath.join(location.path, readmeName),\r\n\t\t\tpath.join(publishDir, readmeName),\r\n\t\t);\r\n\t}\r\n\r\n\tconst npmPublishArgs: string[] = [];\r\n\r\n\tif (dryRun) {\r\n\t\tnpmPublishArgs.push(\"--dry-run\");\r\n\t}\r\n\r\n\tif (newVersion.preRelease) {\r\n\t\tnpmPublishArgs.push(\"--tag\", \"next\");\r\n\t}\r\n\r\n\tlogPackageMessage(\r\n\t\tcreatorPackage.Package,\r\n\t\t`Publishing to npm with version ${packageJson.version} using tag ${\r\n\t\t\tnewVersion.preRelease ? \"next\" : \"latest\"\r\n\t\t}`,\r\n\t);\r\n\r\n\tspawnSync(\"npm\", [\"publish\", ...npmPublishArgs], {\r\n\t\tstdio: \"inherit\",\r\n\t\tencoding: \"utf8\",\r\n\t\tcwd: publishDir,\r\n\t});\r\n\r\n\tfor (const packageLocation of iterateWorkspacePackages(workspace)) {\r\n\t\tconst manifest = readPackageNpmManifest(packageLocation);\r\n\r\n\t\tif (manifest?.dependencies?.[packageJson.name] !== undefined) {\r\n\t\t\tmanifest.dependencies[packageJson.name] = \"^\" + packageJson.version;\r\n\t\t\twritePackageNpmManifest(packageLocation, manifest);\r\n\t\t}\r\n\t}\r\n};\r\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","PACKAGE_FILE","JSON","stringify","index","readPackageCreatorIndex","INDEX_FILE","readmeName","readdirSync","find","npmPublishArgs","push","logPackageMessage","spawnSync","stdio","encoding","packageLocation","iterateWorkspacePackages","manifest","dependencies"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"scripts.mjs","sources":["../src/lib/scripts.ts"],"sourcesContent":["import glob from \"glob\";\r\n\r\nimport { PackageLocation } from \"./package\";\r\n\r\nexport const getPackageTypescriptFiles = (location: PackageLocation) =>\r\n\tglob.sync(\"**/*.ts\", {\r\n\t\tabsolute: true,\r\n\t\tcwd: location.scriptsDir,\r\n\t\tignore: \"node_modules/**/*\",\r\n\t});\r\n"],"names":["getPackageTypescriptFiles","location","glob","sync","absolute","cwd","scriptsDir","ignore"],"mappings":";;;AAIO,MAAMA,yBAAyB,GAAIC,QAAyB,IAClEC,IAAI,CAACC,IAAI,CAAC,SAAS,EAAE;AACpBC,EAAAA,QAAQ,EAAE,IAAI;EACdC,GAAG,EAAEJ,QAAQ,CAACK,UAAU;AACxBC,EAAAA,MAAM,EAAE,mBAAA;AACT,CAAC;;;;"}
@@ -1,365 +0,0 @@
1
- #!/usr/bin/env node
2
- import simpleGit from 'simple-git';
3
- import * as path from 'path';
4
- import * as fs from 'fs';
5
- import { i as isErrorENOENT } from './cli.mjs';
6
-
7
- const getVersionInformationFromGit = async (workspaceLocation, packageLocation) => {
8
- try {
9
- var _log$latest, _log$latest2;
10
- const git = simpleGit({
11
- baseDir: workspaceLocation.path
12
- });
13
-
14
- // check wether the files for a folder are changed
15
- // if so, mark as dirty
16
- const diff = await git.diffSummary();
17
- const dirty = diff.files.some(file => {
18
- if (file.file.toLowerCase().includes("releases") || file.file.toLowerCase().endsWith("version.ts") || file.file.toLowerCase().endsWith("package.json")) {
19
- return false;
20
- }
21
- const fullPath = path.resolve(workspaceLocation.path, file.file);
22
- const relativePath = path.relative(packageLocation.path, fullPath);
23
- return !relativePath.startsWith("..");
24
- });
25
- const log = await git.log({
26
- maxCount: 1
27
- });
28
- const commit = !((_log$latest = log.latest) !== null && _log$latest !== void 0 && _log$latest.hash) ? undefined : log.latest.hash.substring(0, 7);
29
- return {
30
- commit,
31
- dirty,
32
- commitDate: (_log$latest2 = log.latest) === null || _log$latest2 === void 0 ? void 0 : _log$latest2.date
33
- };
34
- } catch (err) {
35
- return {};
36
- }
37
- };
38
-
39
- const getWorkspaceBannerText = manifest => {
40
- var _manifest$packager;
41
- let bannerText = manifest === null || manifest === void 0 ? void 0 : (_manifest$packager = manifest.packager) === null || _manifest$packager === void 0 ? void 0 : _manifest$packager.banner;
42
- if (bannerText) {
43
- const match = bannerText.match(/Copyright \(C\) (\d+)( ?- ?(\d+))?/);
44
- if (match !== null) {
45
- const startYear = parseInt(match[1]);
46
- const endYear = new Date().getFullYear();
47
- if (startYear !== endYear) {
48
- bannerText = bannerText.replace(match[0], `Copyright (C) ${startYear} - ${endYear}`);
49
- } else {
50
- bannerText = bannerText.replace(match[0], `Copyright (C) ${startYear}`);
51
- }
52
- }
53
- }
54
- return bannerText;
55
- };
56
-
57
- // Stolen from ig.tools.core
58
-
59
- class PackageVersion {
60
- // https://regex101.com/r/90PEY9/1
61
- static fullTextMatcher = /(\d+)(\.(\d+)(\.(\d+)(\.(\d+))?(-([^\.]+)\.(\d+))?)?)?/;
62
- static lineMatcher = /^(\d+)(\.(\d+)(\.(\d+)(\.(\d+))?(-([^\.]+)\.(\d+))?)?)?$/;
63
- static extractFromText(input, description) {
64
- if (input === undefined) {
65
- throw new Error(`Can not parse version from undefined`);
66
- }
67
- const match = input.match(PackageVersion.fullTextMatcher);
68
- if (!match) {
69
- throw new Error(`Could not extract a version from input: ${input}`);
70
- }
71
- return PackageVersion.fromMatch(match, description);
72
- }
73
- static extractFromLine(input, description) {
74
- if (input === undefined) {
75
- throw new Error(`Can not parse version from undefined`);
76
- }
77
- const match = input.match(PackageVersion.lineMatcher);
78
- if (!match) {
79
- throw new Error(`Could not parse version from input: ${input}`);
80
- }
81
- return PackageVersion.fromMatch(match, description);
82
- }
83
- static equals(a, b, checkPrerelease = false) {
84
- if (a.major !== b.major || a.minor !== b.minor || a.patch !== b.patch) {
85
- return false;
86
- }
87
- if (checkPrerelease === false) {
88
- return true;
89
- }
90
- if (a.preRelease === b.preRelease) {
91
- return true;
92
- }
93
- if (a.preRelease === undefined || b.preRelease === undefined) {
94
- return false;
95
- }
96
- return a.preRelease.type === b.preRelease.type && a.preRelease.version === b.preRelease.version;
97
- }
98
- static fromMatch([, major,, minor = "0",, patch = "0",, build,, preReleaseType, preReleaseNumber], description) {
99
- let preRelease = undefined;
100
- let buildNumber = 100;
101
- if (preReleaseType && preReleaseNumber) {
102
- preRelease = {
103
- type: preReleaseType,
104
- version: parseInt(preReleaseNumber)
105
- };
106
- }
107
- if (build) {
108
- buildNumber = Number(build);
109
- } else if (description) {
110
- const descriptionMatch = description.match(/(\d+)\)$/);
111
- if (descriptionMatch) {
112
- buildNumber = parseInt(descriptionMatch[1]);
113
- }
114
- }
115
- return new PackageVersion(parseInt(major), parseInt(minor), parseInt(patch), preRelease, buildNumber);
116
- }
117
- static sort(a, b, ascending = true) {
118
- const createSortResult = (a, b) => ascending ? a - b : b - a;
119
- if (a.major !== b.major) {
120
- return createSortResult(a.major, b.major);
121
- }
122
- if (a.minor !== b.minor) {
123
- return createSortResult(a.minor, b.minor);
124
- }
125
- if (a.patch !== b.patch) {
126
- return createSortResult(a.patch, b.patch);
127
- }
128
- return createSortResult(a.preRelease ? a.preRelease.version : 0, b.preRelease ? b.preRelease.version : 0);
129
- }
130
- static toNumber(version) {
131
- return ((version.major * 1000 + version.minor) * 1000 + version.patch) * 1000 + version.buildNumber;
132
- }
133
- constructor(major, minor, patch, preRelease, buildNumber) {
134
- this.major = major;
135
- this.minor = minor;
136
- this.patch = patch;
137
- this.preRelease = preRelease;
138
- this.buildNumber = buildNumber;
139
- }
140
- isPreRelease() {
141
- return this.preRelease !== undefined;
142
- }
143
- clone() {
144
- return new PackageVersion(this.major, this.minor, this.patch, this.preRelease ? {
145
- ...this.preRelease
146
- } : undefined, this.buildNumber);
147
- }
148
- incrementMajor() {
149
- this.preRelease = undefined;
150
- this.patch = 0;
151
- this.minor = 0;
152
- this.major++;
153
- }
154
- incrementMinor() {
155
- this.preRelease = undefined;
156
- this.patch = 0;
157
- this.minor++;
158
- }
159
- incrementPatch() {
160
- this.preRelease = undefined;
161
- this.patch++;
162
- }
163
- createPreRelease(type) {
164
- if (!this.preRelease) {
165
- this.buildNumber = 1;
166
- } else {
167
- this.buildNumber++;
168
- }
169
- if (this.preRelease && type === this.preRelease.type) {
170
- this.preRelease.version++;
171
- return;
172
- }
173
- this.preRelease = {
174
- version: 0,
175
- type
176
- };
177
- }
178
- createRelease() {
179
- this.preRelease = undefined;
180
- this.buildNumber = 100;
181
- }
182
- toVersionString({
183
- buildNumber
184
- } = {}) {
185
- let version = [this.major, this.minor, this.patch].join(".");
186
- if (buildNumber) {
187
- version += "." + this.buildNumber;
188
- }
189
- if (this.preRelease) {
190
- version += `-${this.preRelease.type}.${this.preRelease.version}`;
191
- }
192
- return version;
193
- }
194
- toDescriptionString(packageName) {
195
- const base = [this.major, this.minor, this.patch].join(".");
196
- const parts = [packageName, base];
197
- if (this.preRelease) {
198
- parts.push(upperCaseFirst(this.preRelease.type));
199
- parts.push(this.preRelease.version);
200
- }
201
- parts.push(`(${base}.${this.buildNumber})`);
202
- return parts.join(" ");
203
- }
204
-
205
- /**
206
- * Determines wether the version is lesser than the input version
207
- *
208
- * @param {PackageVersion} version
209
- * @returns
210
- */
211
- isLesserThan(version) {
212
- return PackageVersion.toNumber(this) < PackageVersion.toNumber(version);
213
- }
214
-
215
- /**
216
- * Determines wether the version is greater than the input version
217
- *
218
- * @param {PackageVersion} version
219
- * @returns
220
- */
221
- isGreaterThan(version) {
222
- return PackageVersion.toNumber(this) > PackageVersion.toNumber(version);
223
- }
224
- }
225
- const upperCaseFirst = input => {
226
- return input.slice(0, 1).toUpperCase() + input.slice(1);
227
- };
228
-
229
- const parseVersionFromString = input => {
230
- if (input === undefined) {
231
- throw new Error(`Can not parse version from undefined`);
232
- }
233
- let match;
234
- let major;
235
- let minor;
236
- let patch;
237
- let build;
238
- let preReleaseType;
239
- let preReleaseNumber;
240
- if (
241
- // first try to find a full match with build number
242
- (match = input.match(/(\d+)\.(\d+)\.(\d+)\.(\d+)(-([^\.]+)\.(\d+))?/)) !== null) {
243
- [, major, minor, patch, build, preReleaseType, preReleaseNumber] = match;
244
- } else if ((match = input.match(/(\d+)\.(\d+)\.(\d+)(-([^\.]+)\.(\d+))?/)) !== null) {
245
- [, major, minor, patch,, preReleaseType, preReleaseNumber] = match;
246
- }
247
- if (match === null) {
248
- throw new Error(`Could not parse version from input: ${input}`);
249
- }
250
- let preRelease = undefined;
251
- let buildNumber = 100;
252
- if (preReleaseType && preReleaseNumber) {
253
- preRelease = {
254
- type: preReleaseType,
255
- version: parseInt(preReleaseNumber)
256
- };
257
- }
258
- if (build) {
259
- buildNumber = Number(build);
260
- } else if (input) {
261
- const descriptionMatch = input.match(/(\d+)\)$/);
262
- if (descriptionMatch) {
263
- buildNumber = parseInt(descriptionMatch[1]);
264
- }
265
- }
266
- return new PackageVersion(parseInt(major), parseInt(minor), parseInt(patch), preRelease, buildNumber);
267
- };
268
-
269
- // 1000001001 -> 1.0.1.1
270
- // 1002017001 -> 1.2.17.1
271
- const parseVersionFromNumericVersion = version => {
272
- const major = Math.floor(version / 1000000000);
273
- const minor = Math.floor(version % 1000000000 / 1000000);
274
- const patch = Math.floor(version % 1000000 / 1000);
275
- const buildNumber = version % 1000;
276
- return new PackageVersion(major, minor, patch, undefined, buildNumber);
277
- };
278
-
279
- const readStringFromFile = filePath => fs.readFileSync(filePath, {
280
- encoding: "utf8"
281
- });
282
- const readStringFromFileOrUndefined = filePath => {
283
- try {
284
- return readStringFromFile(filePath);
285
- } catch (err) {
286
- if (!isErrorENOENT(err)) {
287
- throw err;
288
- }
289
- return undefined;
290
- }
291
- };
292
-
293
- // https://regex101.com/r/LtGAu5/1
294
- const logRegex = /console\.log\(\s*"([\w\s\.\(\)]+)\ *Copyright[\w\s\(\)\.]+(\d{4}|\d{4} - \d{4})([\w\s\(\)\.]+)?",?\s*\)/i;
295
- const currentYear = new Date(Date.now()).getFullYear();
296
- const getVersionFileHandler = location => {
297
- const filePath = path.join(location.scriptsDir, "Version.ts");
298
- const invalidVersionFile = versionFile => ({
299
- version: undefined,
300
- write: (name, newVersion) => {
301
- const scriptsContent = fs.readdirSync(location.scriptsDir);
302
- const tsFiles = scriptsContent.filter(file => file.endsWith(".ts"));
303
- if (tsFiles.length > 0) {
304
- return createVersionFileWriter([currentYear], "")(name, newVersion);
305
- }
306
- },
307
- reset: () => {
308
- if (versionFile !== undefined) {
309
- fs.writeFileSync(filePath, versionFile, {
310
- encoding: "utf8"
311
- });
312
- } else {
313
- try {
314
- fs.rmSync(filePath);
315
- } catch (err) {
316
- if (!isErrorENOENT(err)) {
317
- throw err;
318
- }
319
- }
320
- }
321
- }
322
- });
323
- const createVersionFileWriter = (copyright = [currentYear], copyrightStuff = "") => (name, newVersion) => {
324
- const descriptionText = newVersion.toDescriptionString(name);
325
- const copyrightText = createYearString(copyright);
326
- const result = `console.log("${descriptionText}. Copyright (C) ${copyrightText}${copyrightStuff}");`;
327
- fs.writeFileSync(filePath, result, {
328
- encoding: "utf-8"
329
- });
330
- };
331
- let rawVersionFile = readStringFromFileOrUndefined(filePath);
332
- if (rawVersionFile === undefined) {
333
- return invalidVersionFile(rawVersionFile);
334
- }
335
- const versionFile = rawVersionFile.replace(/\n/g, "");
336
- const match = versionFile.match(logRegex);
337
- if (!match) {
338
- return invalidVersionFile(versionFile);
339
- }
340
- const [_full, _description, copyright, copyrightStuff] = match;
341
- const copyrightYears = copyright.match(/^(\d+)( ?- ?(\d+))?$/);
342
- let years;
343
- if (copyrightYears === null) {
344
- years = [currentYear];
345
- } else {
346
- years = [Number(copyrightYears[1]), currentYear];
347
- }
348
- return {
349
- write: createVersionFileWriter(years, copyrightStuff),
350
- reset: () => {
351
- fs.writeFileSync(filePath, versionFile, {
352
- encoding: "utf8"
353
- });
354
- }
355
- };
356
- };
357
- const createYearString = years => {
358
- if (years[1] === undefined || years[0] === years[1]) {
359
- return years[0].toString();
360
- }
361
- return `${years[0]} - ${years[1]}`;
362
- };
363
-
364
- export { PackageVersion as P, getVersionInformationFromGit as a, getWorkspaceBannerText as b, parseVersionFromNumericVersion as c, getVersionFileHandler as g, parseVersionFromString as p };
365
- //# sourceMappingURL=versionFile.mjs.map