@intelligentgraphics/ig.gfx.packager 3.0.16 → 3.0.17

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 (32) hide show
  1. package/build/bin.mjs +1 -1
  2. package/build/bin.mjs.map +1 -1
  3. package/build/{cli-1ce4d998.mjs → cli-69a2e2f1.mjs} +32 -32
  4. package/build/cli-69a2e2f1.mjs.map +1 -0
  5. package/build/{dependencies-030fd607.mjs → dependencies-4e6ba0ea.mjs} +15 -15
  6. package/build/dependencies-4e6ba0ea.mjs.map +1 -0
  7. package/build/{generateIndex-80e7628e.mjs → generateIndex-e1304f50.mjs} +11 -11
  8. package/build/generateIndex-e1304f50.mjs.map +1 -0
  9. package/build/{generateParameterType-523072c2.mjs → generateParameterType-a547b489.mjs} +2 -2
  10. package/build/generateParameterType-a547b489.mjs.map +1 -0
  11. package/build/{index-48221d57.mjs → index-aecc36ad.mjs} +6 -6
  12. package/build/index-aecc36ad.mjs.map +1 -0
  13. package/build/{index-0012fcaa.mjs → index-ce491f2d.mjs} +10 -19
  14. package/build/index-ce491f2d.mjs.map +1 -0
  15. package/build/{postinstall-79673f29.mjs → postinstall-6366aa29.mjs} +3 -3
  16. package/build/postinstall-6366aa29.mjs.map +1 -0
  17. package/build/{publishNpm-bfd4eb6a.mjs → publishNpm-7fe8b8ec.mjs} +4 -4
  18. package/build/publishNpm-7fe8b8ec.mjs.map +1 -0
  19. package/build/{versionFile-562e5692.mjs → versionFile-28e7ec79.mjs} +12 -12
  20. package/build/versionFile-28e7ec79.mjs.map +1 -0
  21. package/lib/lib.mjs +54 -63
  22. package/package.json +4 -3
  23. package/readme.md +4 -0
  24. package/build/cli-1ce4d998.mjs.map +0 -1
  25. package/build/dependencies-030fd607.mjs.map +0 -1
  26. package/build/generateIndex-80e7628e.mjs.map +0 -1
  27. package/build/generateParameterType-523072c2.mjs.map +0 -1
  28. package/build/index-0012fcaa.mjs.map +0 -1
  29. package/build/index-48221d57.mjs.map +0 -1
  30. package/build/postinstall-79673f29.mjs.map +0 -1
  31. package/build/publishNpm-bfd4eb6a.mjs.map +0 -1
  32. package/build/versionFile-562e5692.mjs.map +0 -1
@@ -4,7 +4,7 @@ import * as path from 'path';
4
4
  import * as os from 'os';
5
5
  import 'resolve';
6
6
  import 'write-pkg';
7
- import { a as readPackageCreatorIndex, r as readPackageCreatorManifest, l as getCreatorIndexParameterPrimaryJSType } from './cli-1ce4d998.mjs';
7
+ import { a as readPackageCreatorIndex, r as readPackageCreatorManifest, l as getCreatorIndexParameterPrimaryJSType } from './cli-69a2e2f1.mjs';
8
8
  import 'glob';
9
9
  import 'node:path';
10
10
  import 'node:fs';
@@ -72,4 +72,4 @@ const generateParameterType = ({ location , name })=>{
72
72
  };
73
73
 
74
74
  export { generateParameterType };
75
- //# sourceMappingURL=generateParameterType-523072c2.mjs.map
75
+ //# sourceMappingURL=generateParameterType-a547b489.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateParameterType-a547b489.mjs","sources":["../src/commands/generateParameterType.ts"],"sourcesContent":["import ts from \"typescript\";\nimport * as fs from \"fs\";\nimport * as path from \"path\";\nimport * as os from \"os\";\n\nimport {\n\tPackageLocation,\n\tgetCreatorIndexParameterPrimaryJSType,\n\treadPackageCreatorIndex,\n\treadPackageCreatorManifest,\n} from \"@intelligentgraphics/ig.gfx.tools.core\";\n\nexport interface GenerateParameterTypeOptions {\n\tlocation: PackageLocation;\n\tname: string;\n}\n\nexport const generateParameterType = ({\n\tlocation,\n\tname,\n}: GenerateParameterTypeOptions) => {\n\tconst index = readPackageCreatorIndex(location);\n\tconst manifest = readPackageCreatorManifest(location);\n\n\tif (index === undefined) {\n\t\tthrow new Error(`Could not find the _Index.json file`);\n\t}\n\n\tlet qualifiedName = name;\n\tlet className = name;\n\n\tconst scope = manifest.Scope ?? manifest.Package;\n\n\tif (name.startsWith(scope)) {\n\t\tclassName = name.slice(scope.length + 1);\n\t} else {\n\t\tqualifiedName = `${scope}.${name}`;\n\t}\n\n\tconst informations = index.find((item) => item.Name === qualifiedName);\n\n\tif (informations === undefined) {\n\t\tthrow new Error(`Could not find an index entry for ${name}`);\n\t}\n\n\tconst members: ts.TypeElement[] = [];\n\n\tif (informations.Parameters !== undefined) {\n\t\tconst sortedList = informations.Parameters.slice();\n\t\tsortedList.sort((a, b) => a.DisplayIndex - b.DisplayIndex);\n\n\t\tfor (const parameter of sortedList) {\n\t\t\tconst jsType = getCreatorIndexParameterPrimaryJSType(\n\t\t\t\tparameter.Type,\n\t\t\t);\n\n\t\t\tconst type =\n\t\t\t\tjsType === \"string\"\n\t\t\t\t\t? ts.factory.createTypeReferenceNode(\"string\")\n\t\t\t\t\t: ts.factory.createUnionTypeNode([\n\t\t\t\t\t\t\tts.factory.createTypeReferenceNode(jsType),\n\t\t\t\t\t\t\tts.factory.createTypeReferenceNode(\"string\"),\n\t\t\t\t\t ]);\n\n\t\t\tlet propertySignature = ts.factory.createPropertySignature(\n\t\t\t\tundefined,\n\t\t\t\tparameter.Name,\n\t\t\t\tparameter.Required\n\t\t\t\t\t? undefined\n\t\t\t\t\t: ts.factory.createToken(ts.SyntaxKind.QuestionToken),\n\t\t\t\ttype,\n\t\t\t);\n\n\t\t\tconst jsdocParts: string[] = [];\n\n\t\t\tif (parameter.Description !== undefined) {\n\t\t\t\tjsdocParts.push(parameter.Description, \"\");\n\t\t\t}\n\n\t\t\tjsdocParts.push(`@creatorType ${parameter.Type}`);\n\n\t\t\tif (jsType === \"string\") {\n\t\t\t\tjsdocParts.push(`@default \"${parameter.Default}\"`);\n\t\t\t} else {\n\t\t\t\tjsdocParts.push(`@default ${parameter.Default}`);\n\t\t\t}\n\n\t\t\tconst jsdocContent = jsdocParts\n\t\t\t\t.map((part) => `* ${part}`)\n\t\t\t\t.join(\"\\n \");\n\t\t\tpropertySignature = ts.addSyntheticLeadingComment(\n\t\t\t\tpropertySignature,\n\t\t\t\tts.SyntaxKind.MultiLineCommentTrivia,\n\t\t\t\t`*\\n ${jsdocContent}\\n `,\n\t\t\t\ttrue,\n\t\t\t);\n\n\t\t\tmembers.push(propertySignature);\n\t\t}\n\t}\n\n\tconst interfaceName = `${className}Params`;\n\n\tlet interfaceDeclaration = ts.factory.createInterfaceDeclaration(\n\t\tundefined,\n\t\tinterfaceName,\n\t\tundefined,\n\t\tundefined,\n\t\tmembers,\n\t);\n\n\tinterfaceDeclaration = ts.addSyntheticLeadingComment(\n\t\tinterfaceDeclaration,\n\t\tts.SyntaxKind.MultiLineCommentTrivia,\n\t\t`*\\n * Parameters for the ${className} class\\n `,\n\t\ttrue,\n\t);\n\n\tconst printer = ts.createPrinter();\n\tconst content = printer\n\t\t.printNode(\n\t\t\tts.EmitHint.Unspecified,\n\t\t\tinterfaceDeclaration,\n\t\t\tts.createSourceFile(\"index.ts\", \"\", ts.ScriptTarget.Latest),\n\t\t)\n\t\t.replace(/ /g, \"\\t\");\n\n\tconst outFile = path.join(location.scriptsDir, `${interfaceName}.txt`);\n\n\tfs.writeFileSync(\n\t\toutFile,\n\t\t`Generated parameters interface for ${className}. Insert the interface declaration next to the class and use it as the type for the parameters. Afterwards you can delete this file.` +\n\t\t\tos.EOL +\n\t\t\tos.EOL +\n\t\t\tcontent,\n\t);\n};\n"],"names":["generateParameterType","location","name","index","readPackageCreatorIndex","manifest","readPackageCreatorManifest","undefined","Error","qualifiedName","className","scope","Scope","Package","startsWith","slice","length","informations","find","item","Name","members","Parameters","sortedList","sort","a","b","DisplayIndex","parameter","jsType","getCreatorIndexParameterPrimaryJSType","Type","type","ts","factory","createTypeReferenceNode","createUnionTypeNode","propertySignature","createPropertySignature","Required","createToken","SyntaxKind","QuestionToken","jsdocParts","Description","push","Default","jsdocContent","map","part","join","addSyntheticLeadingComment","MultiLineCommentTrivia","interfaceName","interfaceDeclaration","createInterfaceDeclaration","printer","createPrinter","content","printNode","EmitHint","Unspecified","createSourceFile","ScriptTarget","Latest","replace","outFile","path","scriptsDir","fs","writeFileSync","os","EOL"],"mappings":"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"}
@@ -3,7 +3,7 @@ import * as fs from 'fs';
3
3
  import * as terser from 'terser';
4
4
  import 'resolve';
5
5
  import 'write-pkg';
6
- import { r as readPackageCreatorManifest, c as readPackageAnimationList, q as readPackageNpmManifest } from './cli-1ce4d998.mjs';
6
+ import { r as readPackageCreatorManifest, c as readPackageAnimationList, q as readPackageNpmManifest } from './cli-69a2e2f1.mjs';
7
7
  import { g as getPackageTypescriptFiles } from './scripts-7ed8dff6.mjs';
8
8
  import 'node:path';
9
9
  import 'node:fs';
@@ -362,10 +362,10 @@ const createBannerComment = (banner)=>{
362
362
  }
363
363
  const bannerText = bannerParts.join("\n\n");
364
364
  if (bannerText) {
365
- return `/*
366
- ${bannerText}
367
- *
368
- * @preserve
365
+ return `/*
366
+ ${bannerText}
367
+ *
368
+ * @preserve
369
369
  */`;
370
370
  }
371
371
  return undefined;
@@ -377,4 +377,4 @@ var index = /*#__PURE__*/Object.freeze({
377
377
  });
378
378
 
379
379
  export { buildFolders as b, index as i, logPackageMessage as l };
380
- //# sourceMappingURL=index-48221d57.mjs.map
380
+ //# sourceMappingURL=index-aecc36ad.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-aecc36ad.mjs","sources":["../../tools.core/build/log.mjs","../src/commands/build/tsc.ts","../src/commands/build/docs.ts","../src/lib/toposort.ts","../src/commands/build/index.ts"],"sourcesContent":["const logPackageMessage = (name, step, index, total)=>{\n const numLength = total === undefined ? undefined : total.toString().length;\n const indexString = total === undefined || total < 2 ? \"\" : `${index.toString().padStart(numLength, \"0\")}/${total} `;\n const identifierString = `${indexString}${name.padEnd(15)}`;\n console.log(`${identifierString} >> ${step}`);\n};\n\nexport { logPackageMessage };\n//# sourceMappingURL=log.mjs.map\n","import ts from \"typescript\";\nimport * as path from \"path\";\nimport * as fs from \"fs\";\n\nimport { PackageLocation } from \"../../lib/package\";\n\nimport { FolderBuilder } from \".\";\nimport { getPackageTypescriptFiles } from \"../../lib/scripts\";\n\nexport const tryReadTsConfig = (location: PackageLocation) => {\n\tconst { config } = ts.readConfigFile(\n\t\tpath.join(location.scriptsDir, \"tsconfig.json\"),\n\t\t(path) => {\n\t\t\ttry {\n\t\t\t\treturn fs.readFileSync(path, \"utf8\");\n\t\t\t} catch {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t},\n\t);\n\n\treturn config as {\n\t\tcompilerOptions: ts.CompilerOptions;\n\t};\n};\n\nexport const build: FolderBuilder = async (\n\tlocation: PackageLocation,\n\toutputDir: string,\n) => {\n\tconst config = tryReadTsConfig(location);\n\n\tconfig.compilerOptions.lib = [\"es5\", \"dom\"];\n\n\tconst result = ts.convertCompilerOptionsFromJson(\n\t\tconfig.compilerOptions,\n\t\tlocation.scriptsDir,\n\t);\n\n\tconst compilerOptions: ts.CompilerOptions = {\n\t\t...result.options,\n\t\tremoveComments: false,\n\t\tdeclaration: true,\n\t\tsourceMap: false,\n\t\t// We don't use tsc to actually emit the files, but we still need to set the correct\n\t\t// output directory so the compiler can rewrite the `reference path` directives.\n\t\toutFile: path.join(outputDir, \"out.js\"),\n\t\ttarget: ts.ScriptTarget.ES5,\n\t\tnoEmitOnError: true,\n\t};\n\n\tconst host = ts.createCompilerHost(compilerOptions);\n\thost.getCurrentDirectory = () => location.scriptsDir;\n\n\tlet js: string | undefined;\n\tlet definitions: string | undefined;\n\n\thost.writeFile = (fileName, data, writeByteOrderMark) => {\n\t\tif (fileName.endsWith(\".js\")) {\n\t\t\tjs = data;\n\t\t} else if (fileName.endsWith(\".d.ts\")) {\n\t\t\tdefinitions = data;\n\t\t}\n\t};\n\n\tconst files = getPackageTypescriptFiles(location);\n\n\tif (files.length === 0) {\n\t\tthrow new Error(\n\t\t\t`Expected typescript files to exist when building a package. Packages only consisting of animation jsons do not need to be built.`,\n\t\t);\n\t}\n\n\tconst programOptions: ts.CreateProgramOptions = {\n\t\trootNames: files,\n\t\toptions: compilerOptions,\n\t\thost,\n\t};\n\n\tconst program = ts.createProgram(programOptions);\n\tconst emitResult = program.emit();\n\tconst allDiagnostics = ts.getPreEmitDiagnostics(program);\n\n\tif (!emitResult.emitSkipped) {\n\t\tif (allDiagnostics.length > 0) {\n\t\t\tconsole.log(allDiagnostics.map(createErrorMessage).join(\"\\n\"));\n\t\t}\n\n\t\tif (js === undefined || definitions === undefined) {\n\t\t\tthrow new Error(`Unexpected: no js or definitions were created`);\n\t\t}\n\n\t\treturn { js, definitions };\n\t}\n\n\tconst error = allDiagnostics.map(createErrorMessage).join(\"\\n\");\n\n\tthrow new Error(error);\n};\n\nconst createErrorMessage = (diagnostic: ts.Diagnostic) => {\n\tif (!diagnostic.file) {\n\t\treturn `${ts.flattenDiagnosticMessageText(\n\t\t\tdiagnostic.messageText,\n\t\t\t\"\\n\",\n\t\t)}`;\n\t}\n\n\tconst { line, character } = diagnostic.file.getLineAndCharacterOfPosition(\n\t\tdiagnostic.start!,\n\t);\n\n\tconst message = ts.flattenDiagnosticMessageText(\n\t\tdiagnostic.messageText,\n\t\t\"\\n\",\n\t);\n\n\treturn `${diagnostic.file.fileName} (${line + 1},${\n\t\tcharacter + 1\n\t}): ${message}`;\n};\n","import typedoc from \"typedoc\";\nimport glob from \"glob\";\nimport ts from \"typescript\";\nimport * as path from \"path\";\nimport { PackageLocation } from \"../../lib/package\";\n\nexport const generateDocs = async (\n\tlocation: PackageLocation,\n\tdeclarationFile: string,\n\toutFolder: string,\n\tname: string,\n) => {\n\tconst app = new typedoc.Application();\n\n\tconst mediaDir = path.join(location.manifestDir, \"Media\");\n\n\tapp.bootstrap({\n\t\tentryPoints: [declarationFile],\n\t\tmedia: mediaDir,\n\t\tout: outFolder,\n\t\ttsconfig: path.join(location.scriptsDir, \"tsconfig.json\"),\n\t\tskipErrorChecking: true,\n\t});\n\n\tapp.options.setCompilerOptions(\n\t\t[declarationFile],\n\t\t{\n\t\t\ttarget: ts.ScriptTarget.ES5,\n\t\t},\n\t\tundefined,\n\t);\n\n\tapp.options.setValue(\"name\", name);\n\n\tconst [readmePath] = glob.sync(\"**/readme.md\", {\n\t\tabsolute: true,\n\t\tcwd: location.manifestDir,\n\t});\n\n\tif (readmePath) {\n\t\tapp.options.setValue(\"readme\", readmePath);\n\t}\n\n\tconst project = app.convert();\n\n\tif (project) {\n\t\tawait app.generateDocs(project, outFolder);\n\t}\n};\n","// Stolen from ig.tools.core\n\nexport const toposort = (packages: Record<string, string[]>) => {\n\tconst queue = Object.getOwnPropertyNames(packages);\n\tconst result: string[] = [];\n\n\tlet index = 0;\n\n\twhile (queue.length > 0) {\n\t\tif (index >= queue.length) {\n\t\t\tthrow new Error(\"Packages can not have cyclic dependencies\");\n\t\t}\n\n\t\tconst queueEntry = queue[index];\n\n\t\tconst dependencies = packages[queueEntry];\n\t\tconst dependencyQueued = dependencies.some((dependency) =>\n\t\t\tqueue.includes(dependency),\n\t\t);\n\n\t\tif (dependencyQueued) {\n\t\t\tindex++;\n\t\t\tcontinue;\n\t\t}\n\n\t\tqueue.splice(index, 1);\n\t\tindex = 0;\n\t\tresult.push(queueEntry);\n\t}\n\n\treturn result;\n};\n","import * as path from \"path\";\nimport * as fs from \"fs\";\nimport * as terser from \"terser\";\n\nimport { logPackageMessage } from \"../../lib/log\";\nimport { build as tscBuild } from \"./tsc\";\nimport { generateDocs } from \"./docs\";\nimport {\n\tPackageLocation,\n\treadPackageAnimationList,\n\treadPackageCreatorManifest,\n\treadPackageNpmManifest,\n} from \"../../lib/package\";\nimport { WorkspaceLocation } from \"../../lib/workspace\";\nimport { getPackageTypescriptFiles } from \"../../lib/scripts\";\nimport { toposort } from \"../../lib/toposort\";\nimport { PackageJSON } from \"../../lib/packageJSON\";\nimport Ajv, { ValidateFunction } from \"ajv\";\nimport axios from \"axios\";\n\nexport interface BannerOptions {\n\ttext: string | undefined;\n\tversion: string | undefined;\n\tcommit: string | undefined;\n\tcommitDirty: boolean | undefined;\n\tdate: Date | undefined;\n}\n\nexport interface BuildFoldersOptions {\n\tworkspace: WorkspaceLocation;\n\tpackages: PackageLocation[];\n\toutDir?: string;\n\tminimize: boolean;\n\tbanner?: BannerOptions;\n\tclean?: boolean;\n\tdocs?: boolean;\n}\n\nexport interface BuildFolderOptions extends BuildFoldersOptions {\n\toutFile: string;\n}\n\nexport interface FolderBuilderResult {\n\tjs: string;\n\tdefinitions: string;\n}\n\nexport type FolderBuilder = (\n\tlocation: PackageLocation,\n\toutputDir: string,\n) => Promise<FolderBuilderResult>;\n\ntype FolderData = {\n\tlocation: PackageLocation;\n\tdata?: PackageJSON;\n};\n\nlet validateAnimationJson: ValidateFunction | undefined;\n\nconst getAnimationJsonValidation = async () => {\n\tif (validateAnimationJson === undefined) {\n\t\tvalidateAnimationJson = 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\treturn validateAnimationJson!;\n};\n\nexport const buildFolders = async (options: BuildFoldersOptions) => {\n\tif (options.outDir !== undefined && options.clean) {\n\t\tfs.rmSync(options.outDir, { recursive: true });\n\t}\n\n\tconst workspace = options.workspace;\n\tconst folders = options.packages;\n\n\tlet sortedPackages = sortPackagesByBuildOrder(folders);\n\n\tlet index = 1;\n\n\tfor (const location of sortedPackages) {\n\t\tconst hasTypescript = getPackageTypescriptFiles(location).length > 0;\n\n\t\tensureTsConfig(location);\n\n\t\tconst data = readPackageCreatorManifest(location);\n\n\t\tconst logStep = (step: string) =>\n\t\t\tlogPackageMessage(data.Package, step, index, folders.length);\n\n\t\tconst outputDirectory = options.outDir || location.scriptsDir;\n\t\tfs.mkdirSync(outputDirectory, { recursive: true });\n\n\t\tlet buildResult: {\n\t\t\tjs: string;\n\t\t\tdefinitions?: string;\n\t\t};\n\n\t\tif (hasTypescript) {\n\t\t\tlogStep(\"Compiling typescript to javascript\");\n\t\t\tbuildResult = await tscBuild(location, outputDirectory);\n\t\t} else {\n\t\t\tbuildResult = {\n\t\t\t\tjs: \"\",\n\t\t\t};\n\t\t}\n\n\t\tconst banner = options.banner\n\t\t\t? createBannerComment(options.banner)\n\t\t\t: undefined;\n\n\t\tif (banner) {\n\t\t\tbuildResult.js = banner + \"\\n\" + buildResult.js;\n\t\t\tif (buildResult.definitions !== undefined) {\n\t\t\t\tbuildResult.definitions =\n\t\t\t\t\tbanner + \"\\n\" + buildResult.definitions;\n\t\t\t}\n\t\t}\n\n\t\tconst animations = new Map<string, string>();\n\n\t\tfor (const scriptFilePath of readPackageAnimationList(location)) {\n\t\t\tconst content = fs.readFileSync(scriptFilePath, {\n\t\t\t\tencoding: \"utf8\",\n\t\t\t})!;\n\n\t\t\tlet data: { Id: string; $schema?: string };\n\n\t\t\ttry {\n\t\t\t\tdata = JSON.parse(content);\n\t\t\t} catch (err) {\n\t\t\t\tconst relativePath = path.relative(\n\t\t\t\t\toptions.workspace.path,\n\t\t\t\t\tscriptFilePath,\n\t\t\t\t);\n\n\t\t\t\tif (err instanceof SyntaxError) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`Encountered invalid syntax in file \"${relativePath}\": ${String(\n\t\t\t\t\t\t\terr,\n\t\t\t\t\t\t)}`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Encountered an unexpected error while parsing animation json file at path \"${relativePath}\"`,\n\t\t\t\t\t{\n\t\t\t\t\t\tcause: err,\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (!data.Id) {\n\t\t\t\tconst fileName = path.basename(\n\t\t\t\t\tscriptFilePath,\n\t\t\t\t\t\".animation.json\",\n\t\t\t\t);\n\t\t\t\tdata.Id = fileName;\n\t\t\t}\n\n\t\t\t(await getAnimationJsonValidation())(data);\n\t\t\tdelete data.$schema;\n\t\t\tanimations.set(data.Id, JSON.stringify(data));\n\t\t}\n\n\t\tif (animations.size > 0) {\n\t\t\tconst scope = data.Scope ?? data.Package;\n\t\t\tconst scopeParts = scope.split(\".\");\n\n\t\t\tbuildResult.js += createNamespace(scopeParts);\n\n\t\t\tfor (const [name, content] of animations) {\n\t\t\t\tbuildResult.js += `${scope}[\"${name}\"] = ` + content + \";\";\n\t\t\t\tlogPackageMessage(\n\t\t\t\t\tdata.Package,\n\t\t\t\t\t`Adding animation ${scope}.${name}`,\n\t\t\t\t);\n\t\t\t}\n\t\t} else if (!hasTypescript) {\n\t\t\tthrow new Error(\n\t\t\t\t`Expected package to have a least one ts file or one animation.json file`,\n\t\t\t);\n\t\t}\n\n\t\tfs.writeFileSync(\n\t\t\tpath.join(outputDirectory, `${data.Package}.js`),\n\t\t\tbuildResult.js,\n\t\t\t{ encoding: \"utf8\" },\n\t\t);\n\t\tif (buildResult.definitions !== undefined) {\n\t\t\tfs.writeFileSync(\n\t\t\t\tpath.join(outputDirectory, `${data.Package}.d.ts`),\n\t\t\t\tbuildResult.definitions,\n\t\t\t\t{ encoding: \"utf8\" },\n\t\t\t);\n\t\t}\n\n\t\tif (options.minimize) {\n\t\t\tconst minifyResult = await terser.minify(buildResult.js, {\n\t\t\t\tecma: 5,\n\t\t\t});\n\n\t\t\tconst minifiedPath = path.join(\n\t\t\t\toutputDirectory,\n\t\t\t\t`${data.Package}.min.js`,\n\t\t\t);\n\t\t\tfs.writeFileSync(minifiedPath, minifyResult.code!, {\n\t\t\t\tencoding: \"utf8\",\n\t\t\t});\n\t\t}\n\n\t\tif (\n\t\t\tlocation.path.includes(\"Basics\") &&\n\t\t\tbuildResult.definitions !== undefined\n\t\t) {\n\t\t\tfs.mkdirSync(path.join(workspace.path, \"lib\"), {\n\t\t\t\trecursive: true,\n\t\t\t});\n\n\t\t\tlogStep(\"Copying basics definition file to the lib folder\");\n\t\t\tfs.writeFileSync(\n\t\t\t\tpath.join(workspace.path, \"lib\", `${data.Package}.d.ts`),\n\t\t\t\tbuildResult.definitions,\n\t\t\t\t{ encoding: \"utf8\" },\n\t\t\t);\n\t\t}\n\n\t\tif (options.docs) {\n\t\t\tlogStep(\"Generating typedoc documentation\");\n\t\t\tawait generateDocs(\n\t\t\t\tlocation,\n\t\t\t\tpath.join(outputDirectory, `${data.Package}.d.ts`),\n\t\t\t\tpath.join(workspace.path, \"docs\", data.Package),\n\t\t\t\tdata.Package,\n\t\t\t);\n\t\t}\n\n\t\tindex++;\n\t}\n};\n\nconst createNamespace = (parts: string[]) => {\n\tlet code = `var ${parts[0]};`;\n\n\tfor (let index = 0; index < parts.length; index++) {\n\t\tconst path = parts.slice(0, index + 1).join(\".\");\n\n\t\tcode += `\\n(${path} = ${path} || {});`;\n\t}\n\n\treturn code;\n};\n\nconst ensureTsConfig = (location: PackageLocation) => {\n\tconst tsconfigPath = path.join(location.scriptsDir, \"tsconfig.json\");\n\n\tif (!fs.existsSync(tsconfigPath)) {\n\t\tconst content = {};\n\t\tapplyTsConfigOption(content);\n\n\t\tfs.writeFileSync(\n\t\t\ttsconfigPath,\n\t\t\tJSON.stringify(content, undefined, \"\\t\"),\n\t\t\t\"utf8\",\n\t\t);\n\t} else {\n\t\tconst content = JSON.parse(fs.readFileSync(tsconfigPath, \"utf8\"));\n\t\tapplyTsConfigOption(content);\n\t\tfs.writeFileSync(\n\t\t\ttsconfigPath,\n\t\t\tJSON.stringify(content, undefined, \"\\t\"),\n\t\t\t\"utf8\",\n\t\t);\n\t}\n};\n\nconst applyTsConfigOption = (data: {\n\tcompilerOptions?: { target?: string; lib?: string[] };\n}) => {\n\tdata.compilerOptions = data.compilerOptions ?? {};\n\tdata.compilerOptions.target = \"es5\";\n\tdata.compilerOptions.lib = [\"es5\", \"dom\"];\n};\n\nconst sortPackagesByBuildOrder = (\n\tfolders: PackageLocation[],\n): PackageLocation[] => {\n\tconst packages = Array.from(folders).reduce(\n\t\t(\n\t\t\tacc: Record<string, FolderData>,\n\t\t\tlocation,\n\t\t): Record<string, FolderData> => {\n\t\t\tconst data = readPackageNpmManifest(location);\n\n\t\t\tif (data !== undefined) {\n\t\t\t\tacc[data.name] = {\n\t\t\t\t\tdata,\n\t\t\t\t\tlocation,\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tacc[location.path] = {\n\t\t\t\t\tdata: undefined,\n\t\t\t\t\tlocation,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn acc;\n\t\t},\n\t\t{},\n\t);\n\n\tconst packageDependencies = Object.getOwnPropertyNames(packages).reduce(\n\t\t(acc, packageName) => {\n\t\t\tconst packageData = packages[packageName];\n\n\t\t\tif (packageData.data === undefined) {\n\t\t\t\tacc[packageName] = [];\n\t\t\t} else {\n\t\t\t\tacc[packageName] = Object.getOwnPropertyNames({\n\t\t\t\t\t...packageData.data.devDependencies,\n\t\t\t\t\t...packageData.data.dependencies,\n\t\t\t\t\t...packageData.data.peerDependencies,\n\t\t\t\t}).filter((packageName) => packages[packageName] !== undefined);\n\t\t\t}\n\n\t\t\treturn acc;\n\t\t},\n\t\t{},\n\t);\n\n\tconst sortedPackages = toposort(packageDependencies);\n\tconst result: PackageLocation[] = [];\n\n\tfor (const packageName of sortedPackages) {\n\t\tconst location = packages[packageName].location;\n\n\t\tif (readPackageCreatorManifest(location).Package.endsWith(\".Basics\")) {\n\t\t\tresult.unshift(location);\n\t\t} else {\n\t\t\tresult.push(location);\n\t\t}\n\t}\n\n\treturn result;\n};\n\nconst createBannerComment = (banner: BannerOptions) => {\n\tconst bannerParts: string[] = [];\n\n\tif (banner.text) {\n\t\tbannerParts.push(\" * \" + banner.text);\n\t}\n\n\t{\n\t\tconst details: string[] = [];\n\n\t\tif (banner.version) {\n\t\t\tdetails.push(`Version: ${banner.version}`);\n\t\t}\n\t\tif (banner.commit) {\n\t\t\tif (banner.commitDirty) {\n\t\t\t\tdetails.push(`Commit: ${banner.commit} (dirty)`);\n\t\t\t} else {\n\t\t\t\tdetails.push(`Commit: ${banner.commit}`);\n\t\t\t}\n\t\t}\n\t\tif (banner.date) {\n\t\t\tdetails.push(`Date: ${banner.date.toISOString()}`);\n\t\t}\n\n\t\tconst detailsText = details.map((line) => ` * ${line}`).join(\"\\n\");\n\t\tif (detailsText) {\n\t\t\tbannerParts.push(detailsText);\n\t\t}\n\t}\n\n\tconst bannerText = bannerParts.join(\"\\n\\n\");\n\n\tif (bannerText) {\n\t\treturn `/*\n${bannerText}\n*\n* @preserve\t\t\t\n*/`;\n\t}\n\n\treturn undefined;\n};\n"],"names":["logPackageMessage","name","step","index","total","numLength","undefined","toString","length","indexString","padStart","identifierString","padEnd","console","log","tryReadTsConfig","location","config","ts","readConfigFile","path","join","scriptsDir","fs","readFileSync","build","outputDir","compilerOptions","lib","result","convertCompilerOptionsFromJson","options","removeComments","declaration","sourceMap","outFile","target","ScriptTarget","ES5","noEmitOnError","host","createCompilerHost","getCurrentDirectory","js","definitions","writeFile","fileName","data","writeByteOrderMark","endsWith","files","getPackageTypescriptFiles","Error","programOptions","rootNames","program","createProgram","emitResult","emit","allDiagnostics","getPreEmitDiagnostics","emitSkipped","map","createErrorMessage","error","diagnostic","file","flattenDiagnosticMessageText","messageText","line","character","getLineAndCharacterOfPosition","start","message","generateDocs","declarationFile","outFolder","app","typedoc","Application","mediaDir","manifestDir","bootstrap","entryPoints","media","out","tsconfig","skipErrorChecking","setCompilerOptions","setValue","readmePath","glob","sync","absolute","cwd","project","convert","toposort","packages","queue","Object","getOwnPropertyNames","queueEntry","dependencies","dependencyQueued","some","dependency","includes","splice","push","validateAnimationJson","getAnimationJsonValidation","axios","get","then","Ajv","coerceTypes","allErrors","removeAdditional","useDefaults","validateSchema","compile","buildFolders","outDir","clean","rmSync","recursive","workspace","folders","sortedPackages","sortPackagesByBuildOrder","hasTypescript","ensureTsConfig","readPackageCreatorManifest","logStep","Package","outputDirectory","mkdirSync","buildResult","tscBuild","banner","createBannerComment","animations","Map","scriptFilePath","readPackageAnimationList","content","encoding","JSON","parse","err","relativePath","relative","SyntaxError","String","cause","Id","basename","$schema","set","stringify","size","scope","Scope","scopeParts","split","createNamespace","writeFileSync","minimize","minifyResult","terser","minify","ecma","minifiedPath","code","docs","parts","slice","tsconfigPath","existsSync","applyTsConfigOption","Array","from","reduce","acc","readPackageNpmManifest","packageDependencies","packageName","packageData","devDependencies","peerDependencies","filter","unshift","bannerParts","text","details","version","commit","commitDirty","date","toISOString","detailsText","bannerText"],"mappings":"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"}
@@ -5,15 +5,15 @@ import { createWriteStream, createReadStream } from 'fs';
5
5
  import { pipeline } from 'stream/promises';
6
6
  import { exec } from 'child_process';
7
7
  import { promisify } from 'util';
8
- import { r as readPublishedPackageCreatorIndex, d as determineWorkspaceIGLibraries, a as readPublishedPackageNpmManifest, b as readPublishedPackageCreatorManifest } from './dependencies-030fd607.mjs';
9
- import { P as PACKAGE_FILE, I as INDEX_FILE, p as parseCreatorPackageName, g as getWorkspaceOutputPath, r as readPackageCreatorManifest, w as writePackageCreatorManifest, i as isErrorENOENT, a as readPackageCreatorIndex, b as readWorkspaceNpmManifest, c as readPackageAnimationList, d as isErrorEACCES, e as isErrorEPERM, u as uploadPackageFromStream, f as getPackageReleasesDirectory, h as getExistingPackages, s as startSession, j as closeSession } from './cli-1ce4d998.mjs';
10
- import { l as logPackageMessage, b as buildFolders } from './index-48221d57.mjs';
8
+ import { r as readPublishedPackageCreatorIndex, d as determineWorkspaceIGLibraries, a as readPublishedPackageNpmManifest, b as readPublishedPackageCreatorManifest } from './dependencies-4e6ba0ea.mjs';
9
+ import { P as PACKAGE_FILE, I as INDEX_FILE, p as parseCreatorPackageName, r as readPackageCreatorManifest, w as writePackageCreatorManifest, i as isErrorENOENT, a as readPackageCreatorIndex, b as readWorkspaceNpmManifest, g as getWorkspaceOutputPath, c as readPackageAnimationList, d as isErrorEACCES, e as isErrorEPERM, u as uploadPackageFromStream, f as getPackageReleasesDirectory, h as getExistingPackages, s as startSession, j as closeSession } from './cli-69a2e2f1.mjs';
10
+ import { l as logPackageMessage, b as buildFolders } from './index-aecc36ad.mjs';
11
11
  import 'write-pkg';
12
12
  import 'glob';
13
13
  import 'node:path';
14
14
  import 'node:fs';
15
15
  import 'axios';
16
- import { g as getVersionFileHandler, p as parseVersionFromString, a as getVersionInformationFromGit, b as getWorkspaceBannerText, c as parseVersionFromNumericVersion, P as PackageVersion } from './versionFile-562e5692.mjs';
16
+ import { g as getVersionFileHandler, p as parseVersionFromString, a as getVersionInformationFromGit, b as getWorkspaceBannerText, c as parseVersionFromNumericVersion, P as PackageVersion } from './versionFile-28e7ec79.mjs';
17
17
  import JSZip from 'jszip';
18
18
  import * as terser from 'terser';
19
19
  import 'resolve';
@@ -49,10 +49,10 @@ const notRuntimeScripts = [
49
49
  "Context",
50
50
  "Evaluator"
51
51
  ];
52
- const buildArchiveFromPackage = async (workspaceLocation, packageLocation, data)=>{
52
+ const buildArchiveFromPackage = async (packageLocation, data, binDir)=>{
53
53
  const { domain , subdomain } = parseCreatorPackageName(data);
54
54
  const logStep = (step)=>logPackageMessage(data.Package, step);
55
- const libFilePath = path.join(getWorkspaceOutputPath(workspaceLocation), `${data.Package}.min.js`);
55
+ const libFilePath = path.join(binDir, `${data.Package}.min.js`);
56
56
  const scriptDirectories = [
57
57
  packageLocation.path,
58
58
  packageLocation.scriptsDir
@@ -94,7 +94,7 @@ const buildArchiveFromPackage = async (workspaceLocation, packageLocation, data)
94
94
  }
95
95
  if (!library) {
96
96
  const date = new Date(Date.now());
97
- library = `/* This file is part of the ${domain} Data Packages.
97
+ library = `/* This file is part of the ${domain} Data Packages.
98
98
  * Copyright (C) ${date.getFullYear()} intelligentgraphics. All Rights Reserved. */`;
99
99
  }
100
100
  const minifyResult = await terser.minify(library, {
@@ -166,7 +166,7 @@ const releaseFolder = async (options)=>{
166
166
  cwd: workspace.path
167
167
  });
168
168
  }
169
- const binDir = getWorkspaceOutputPath(workspace);
169
+ const binDir = options.outDir ?? getWorkspaceOutputPath(workspace);
170
170
  await fs$1.mkdir(binDir, {
171
171
  recursive: true
172
172
  });
@@ -242,7 +242,7 @@ const releaseFolder = async (options)=>{
242
242
  }
243
243
  }
244
244
  }
245
- const archive = await buildArchiveFromPackage(workspace, location, packageDescription);
245
+ const archive = await buildArchiveFromPackage(location, packageDescription, binDir);
246
246
  try {
247
247
  const zipOutputStream = createWriteStream(zipFilePath);
248
248
  await pipeline(archive.generateNodeStream(), zipOutputStream);
@@ -410,15 +410,6 @@ const ensureRequiredVersions = async (workspaceLocation, creatorPackage, session
410
410
  const newVersionString = libraryVersion.toVersionString({
411
411
  buildNumber: true
412
412
  });
413
- const packageNameWithVersion = `${libraryCreatorPackage.Package}_${newVersionString}`;
414
- const zipFilePath = path.join(getWorkspaceOutputPath(workspaceLocation), `${packageNameWithVersion}.zip`);
415
- try {
416
- await fs$1.rm(zipFilePath);
417
- } catch (err) {
418
- if (!isErrorENOENT(err)) {
419
- throw err;
420
- }
421
- }
422
413
  const session = uploadTargetScope === "Basics" ? await sessionManager.getBasicsSession() : targetSession;
423
414
  logPackageMessage(creatorPackage.Package, `Uploading package ${libraryCreatorPackage.Package} with version ${newVersionString} to ${session.domain}.${session.subDomain}`);
424
415
  await uploadPackageFromStream(session, {
@@ -454,4 +445,4 @@ const createSessionManager = async (params)=>{
454
445
  };
455
446
 
456
447
  export { releaseFolder };
457
- //# sourceMappingURL=index-0012fcaa.mjs.map
448
+ //# sourceMappingURL=index-ce491f2d.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-ce491f2d.mjs","sources":["../src/commands/publish/zip.ts","../src/commands/publish/index.ts"],"sourcesContent":["import JSZip from \"jszip\";\nimport * as path from \"path\";\nimport * as fs from \"fs\";\nimport * as terser from \"terser\";\n\nimport { isErrorENOENT } from \"../../lib/error\";\nimport { logPackageMessage } from \"../../lib/log\";\nimport {\n\tCreatorPackage,\n\treadPackageCreatorManifest,\n\twritePackageCreatorManifest,\n\treadPackageCreatorIndex,\n\tparseCreatorPackageName,\n\tPackageLocation,\n\tPackageNpmManifest,\n\tINDEX_FILE,\n\tPACKAGE_FILE,\n} from \"../../lib/package\";\nimport {\n\tPublishedPackageLocation,\n\treadPublishedPackageCreatorIndex,\n} from \"../../lib/publishedPackage\";\n\nexport const buildArchiveFromPublishedPackage = (\n\tlocation: PublishedPackageLocation,\n\tmanifest: PackageNpmManifest,\n\tcreatorPackage: CreatorPackage,\n) => {\n\tconst archive = new JSZip();\n\n\tarchive.file(PACKAGE_FILE, JSON.stringify(creatorPackage, null, 2));\n\n\tconst index = readPublishedPackageCreatorIndex(location);\n\n\tif (index !== undefined) {\n\t\tarchive.file(INDEX_FILE, JSON.stringify(index, null, 2));\n\t}\n\n\tarchive.file(\n\t\tmanifest.main,\n\t\tfs.createReadStream(path.join(location.path, manifest.main)),\n\t);\n\n\treturn archive;\n};\n\nconst runtimeScripts: CreatorPackage[\"Type\"][] = [\n\t\"Interactor\",\n\t\"Core\",\n\t\"Mixed\",\n];\n\nconst notRuntimeScripts: CreatorPackage[\"Type\"][] = [\"Context\", \"Evaluator\"];\n\nexport const buildArchiveFromPackage = async (\n\tpackageLocation: PackageLocation,\n\tdata: CreatorPackage,\n\tbinDir: string,\n) => {\n\tconst { domain, subdomain } = parseCreatorPackageName(data);\n\n\tconst logStep = (step: string) => logPackageMessage(data.Package, step);\n\n\tconst libFilePath = path.join(binDir, `${data.Package}.min.js`);\n\n\tconst scriptDirectories: string[] = [\n\t\tpackageLocation.path,\n\t\tpackageLocation.scriptsDir,\n\t];\n\n\tif (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\tlet libFile: string | undefined;\n\n\ttry {\n\t\tlibFile = fs.readFileSync(libFilePath, { encoding: \"utf8\" });\n\t} catch (err) {\n\t\tif (!isErrorENOENT(err)) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\n\tconst archive = new JSZip();\n\n\tlet library: string = \"\";\n\n\tif (libFile) {\n\t\tlibrary = libFile;\n\t}\n\n\tif (!library) {\n\t\tconst date = new Date(Date.now());\n\t\tlibrary = `/* This file is part of the ${domain} Data Packages.\n\t\t* Copyright (C) ${date.getFullYear()} intelligentgraphics. All Rights Reserved. */`;\n\t}\n\n\tconst minifyResult = await terser.minify(library, { ecma: 5 });\n\n\tarchive.file(`${data.Package}.js`, minifyResult.code!);\n\tarchive.file(PACKAGE_FILE, JSON.stringify(data, null, 2));\n\n\tconst creatorIndex = readPackageCreatorIndex(packageLocation);\n\n\tif (creatorIndex !== undefined) {\n\t\tarchive.file(INDEX_FILE, JSON.stringify(creatorIndex, null, 2));\n\t}\n\n\tfor (const directory of scriptDirectories) {\n\t\ttry {\n\t\t\tfor (const file of fs.readdirSync(directory)) {\n\t\t\t\tconst { ext } = path.parse(file);\n\n\t\t\t\tswitch (ext) {\n\t\t\t\t\tcase \".png\":\n\t\t\t\t\tcase \".jpeg\":\n\t\t\t\t\tcase \".jpg\":\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tarchive.file(\n\t\t\t\t\tfile,\n\t\t\t\t\tfs.createReadStream(path.join(directory, file)),\n\t\t\t\t);\n\t\t\t}\n\t\t} catch (err) {\n\t\t\tconsole.error(`Script directory \"${directory}\" does not exist`);\n\t\t}\n\t}\n\n\treturn archive;\n};\n","import * as path from \"path\";\nimport * as fs from \"fs/promises\";\nimport { createReadStream, createWriteStream } from \"fs\";\nimport { pipeline } from \"stream/promises\";\nimport { exec } from \"child_process\";\nimport { promisify } from \"util\";\n\nimport {\n\tAssetService,\n\tisErrorEACCES,\n\tisErrorEPERM,\n\twritePackageCreatorManifest,\n} from \"@intelligentgraphics/ig.gfx.tools.core\";\n\nimport { logPackageMessage } from \"../../lib/log\";\nimport {\n\tCreatorPackage,\n\tgetPackageReleasesDirectory,\n\tPackageLocation,\n\tparseCreatorPackageName,\n\treadPackageAnimationList,\n\treadPackageCreatorManifest,\n} from \"../../lib/package\";\nimport {\n\tgetWorkspaceOutputPath,\n\treadWorkspaceNpmManifest,\n\tWorkspaceLocation,\n} from \"../../lib/workspace\";\nimport { getVersionInformationFromGit } from \"../../lib/git\";\nimport { getWorkspaceBannerText } from \"../../lib/banner\";\nimport {\n\tparseVersionFromNumericVersion,\n\tparseVersionFromString,\n} from \"../../lib/parseVersion\";\nimport { getVersionFileHandler } from \"../../lib/versionFile\";\nimport { isErrorENOENT } from \"../../lib/error\";\nimport { determineWorkspaceIGLibraries } from \"../../lib/dependencies\";\nimport {\n\treadPublishedPackageCreatorManifest,\n\treadPublishedPackageNpmManifest,\n} from \"../../lib/publishedPackage\";\nimport { Prompter, PrompterOption } from \"../../lib/prompter\";\nimport { PackageVersion } from \"../../lib/packageVersion\";\n\nimport { BuildFoldersOptions, buildFolders } from \"../build\";\nimport {\n\tbuildArchiveFromPackage,\n\tbuildArchiveFromPublishedPackage,\n} from \"./zip\";\n\nexport interface ReleaseFolderOptions\n\textends Omit<\n\t\tBuildFoldersOptions,\n\t\t\"skipPackagesWithoutTsFiles\" | \"banner\" | \"packages\"\n\t> {\n\tdirectory: PackageLocation;\n\tnoUpload: boolean;\n\tnewVersion: string;\n\tdomain?: string;\n\tsubdomain?: string;\n\taddress?: string;\n\tservice: string;\n\tauthentication?: AssetService.Authentication;\n\tpushOnly: boolean;\n\tbanner?: boolean;\n\tprompter: Prompter;\n\tskipDependencies?: boolean;\n}\n\nconst execAsync = promisify(exec);\n\nexport const releaseFolder = async (options: ReleaseFolderOptions) => {\n\tconst workspace = options.workspace;\n\tconst location = options.directory;\n\n\tconst { write: writeVersionFile, reset: resetVersionFile } =\n\t\tgetVersionFileHandler(location);\n\n\tconst packageDescription = readPackageCreatorManifest(location);\n\tconst fullPackageName = packageDescription.Package;\n\tconst { domain, subdomain } = parseCreatorPackageName(packageDescription);\n\n\tconst publishDomain = options.domain ?? domain;\n\tconst publishSubdomain = options.subdomain ?? subdomain;\n\n\tconst sharedPackageJson = readWorkspaceNpmManifest(workspace);\n\n\tlet newVersion: PackageVersion;\n\ttry {\n\t\tnewVersion = parseVersionFromString(options.newVersion);\n\t} catch (err) {\n\t\tthrow new Error(`Please enter a version in this format 1.0.0.100`);\n\t}\n\n\tpackageDescription.Version = newVersion.toVersionString({\n\t\tbuildNumber: true,\n\t});\n\twritePackageCreatorManifest(location, packageDescription);\n\n\tif (newVersion.buildNumber < 100) {\n\t\tnewVersion.preRelease = {\n\t\t\ttype: \"beta\",\n\t\t\tversion: newVersion.buildNumber,\n\t\t};\n\t} else if (newVersion.buildNumber > 100) {\n\t\tnewVersion.preRelease = {\n\t\t\ttype: \"patch\",\n\t\t\tversion: newVersion.buildNumber - 100,\n\t\t};\n\t}\n\n\tif (sharedPackageJson !== undefined) {\n\t\tlogPackageMessage(\n\t\t\tpackageDescription.Package,\n\t\t\t`Running npm install to make sure all dependencies are up to date`,\n\t\t);\n\t\tawait execAsync(`npm install`, {\n\t\t\tencoding: \"utf-8\",\n\t\t\tcwd: workspace.path,\n\t\t});\n\t}\n\n\tconst binDir = options.outDir ?? getWorkspaceOutputPath(workspace);\n\tawait fs.mkdir(binDir, { recursive: true });\n\n\tlet assetServerPackageDetails: AssetService.UploadPackageDetails;\n\n\tlet packageNameWithVersion: string;\n\n\t{\n\t\tconst versionWithoutPrelease = newVersion.clone();\n\t\tversionWithoutPrelease.preRelease = undefined;\n\t\tconst newVersionString = versionWithoutPrelease.toVersionString({\n\t\t\tbuildNumber: true,\n\t\t});\n\t\tpackageNameWithVersion = `${packageDescription.Package}_${newVersionString}`;\n\n\t\tassetServerPackageDetails = {\n\t\t\tname: packageDescription.Package,\n\t\t\tversion: newVersionString,\n\t\t};\n\t}\n\n\tlet zipFilePath = path.join(binDir, packageNameWithVersion + \".zip\");\n\tinterface Uploadable {\n\t\tgetStream: () => NodeJS.ReadableStream;\n\t}\n\n\tlet uploadable: Uploadable = {\n\t\tgetStream: () => createReadStream(zipFilePath),\n\t};\n\n\ttry {\n\t\tif (options.pushOnly) {\n\t\t\tconst zipFileExists = await fs.stat(zipFilePath).catch((err) => {\n\t\t\t\tif (isErrorENOENT(err)) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\treturn Promise.reject(err);\n\t\t\t});\n\n\t\t\tif (zipFileExists) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Expected a zip file to exist at path ${zipFilePath} since pushOnly is specified`,\n\t\t\t\t);\n\t\t\t}\n\t\t} else {\n\t\t\tconst gitVersionInformation = await getVersionInformationFromGit(\n\t\t\t\tworkspace,\n\t\t\t\tlocation,\n\t\t\t);\n\n\t\t\twriteVersionFile(fullPackageName, newVersion);\n\n\t\t\tconst bannerText =\n\t\t\t\tsharedPackageJson !== undefined\n\t\t\t\t\t? getWorkspaceBannerText(sharedPackageJson)\n\t\t\t\t\t: undefined;\n\n\t\t\tawait buildFolders({\n\t\t\t\t...options,\n\t\t\t\tpackages: [location],\n\t\t\t\tbanner: options.banner\n\t\t\t\t\t? {\n\t\t\t\t\t\t\ttext: bannerText,\n\t\t\t\t\t\t\tcommit: gitVersionInformation.commit,\n\t\t\t\t\t\t\tcommitDirty: gitVersionInformation.dirty,\n\t\t\t\t\t\t\tversion: newVersion.toVersionString({\n\t\t\t\t\t\t\t\tbuildNumber: true,\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\tdate: new Date(Date.now()),\n\t\t\t\t\t\t\t// gitVersionInformation.commitDate\n\t\t\t\t\t\t\t// \t? new Date(gitVersionInformation.commitDate)\n\t\t\t\t\t\t\t// \t: new Date(Date.now()),\n\t\t\t\t\t }\n\t\t\t\t\t: undefined,\n\t\t\t});\n\n\t\t\tnewVersion.preRelease = undefined;\n\n\t\t\ttry {\n\t\t\t\tawait fs.rm(zipFilePath);\n\t\t\t} catch (err) {\n\t\t\t\tif (!isErrorENOENT(err)) {\n\t\t\t\t\tthrow err;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (readPackageAnimationList(location).length > 0) {\n\t\t\t\tconst workspaceManifest = readWorkspaceNpmManifest(workspace);\n\n\t\t\t\tif (\n\t\t\t\t\t!workspaceManifest.dependencies?.[\n\t\t\t\t\t\t\"@intelligentgraphics/3d.ig.gfx.standard\"\n\t\t\t\t\t]\n\t\t\t\t) {\n\t\t\t\t\tconst install = await options.prompter.confirm(\n\t\t\t\t\t\t`The IG.GFX.Standard package should be added as a dependency to provide the 'AnimationInteractor' used to display animations. Do you wish to add it now?`,\n\t\t\t\t\t);\n\n\t\t\t\t\tif (install) {\n\t\t\t\t\t\tawait execAsync(\n\t\t\t\t\t\t\t`npm install @intelligentgraphics/3d.ig.gfx.standard`,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tencoding: \"utf-8\",\n\t\t\t\t\t\t\t\tcwd: workspace.path,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tawait execAsync(`npm run postinstall`, {\n\t\t\t\t\t\t\tcwd: workspace.path,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst archive = await buildArchiveFromPackage(\n\t\t\t\tlocation,\n\t\t\t\tpackageDescription,\n\t\t\t\tbinDir,\n\t\t\t);\n\n\t\t\ttry {\n\t\t\t\tconst zipOutputStream = createWriteStream(zipFilePath);\n\t\t\t\tawait pipeline(archive.generateNodeStream(), zipOutputStream);\n\t\t\t} catch (err) {\n\t\t\t\tif (isErrorEACCES(err) || isErrorEPERM(err)) {\n\t\t\t\t\tlogPackageMessage(\n\t\t\t\t\t\tpackageDescription.Package,\n\t\t\t\t\t\t`Could not create zip file in the bin directory because of a permissions error. Only using it in-memory`,\n\t\t\t\t\t);\n\t\t\t\t\tuploadable = {\n\t\t\t\t\t\tgetStream: () => archive.generateNodeStream(),\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\tthrow err;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (!options.noUpload) {\n\t\t\tif (!options.authentication) {\n\t\t\t\tthrow new Error(`Expected authentication to be available`);\n\t\t\t}\n\n\t\t\tlogPackageMessage(\n\t\t\t\tpackageDescription.Package,\n\t\t\t\t`Opening connection to IG.Asset.Server`,\n\t\t\t);\n\n\t\t\tconst sessionManager = await createSessionManager({\n\t\t\t\turl: options.service,\n\t\t\t\taddress: options.address,\n\t\t\t\tdomain: publishDomain,\n\t\t\t\tsubDomain: publishSubdomain,\n\t\t\t\tauthentication: options.authentication,\n\t\t\t});\n\n\t\t\ttry {\n\t\t\t\tif (!options.skipDependencies) {\n\t\t\t\t\tawait ensureRequiredVersions(\n\t\t\t\t\t\tworkspace,\n\t\t\t\t\t\tpackageDescription,\n\t\t\t\t\t\tsessionManager,\n\t\t\t\t\t\toptions.prompter,\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tlogPackageMessage(\n\t\t\t\t\tpackageDescription.Package,\n\t\t\t\t\t`Uploading package to ${publishDomain}.${publishSubdomain}`,\n\t\t\t\t);\n\n\t\t\t\tawait AssetService.uploadPackageFromStream(\n\t\t\t\t\tsessionManager.getTargetSession(),\n\t\t\t\t\tassetServerPackageDetails,\n\t\t\t\t\tuploadable.getStream(),\n\t\t\t\t);\n\t\t\t} finally {\n\t\t\t\tawait sessionManager.destroy().catch((err) => {\n\t\t\t\t\tlogPackageMessage(\n\t\t\t\t\t\tpackageDescription.Package,\n\t\t\t\t\t\t`Failed to close IG.Asset.Server session(s): ${err}`,\n\t\t\t\t\t);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t} catch (err) {\n\t\tresetVersionFile();\n\t\tthrow err;\n\t}\n\n\tif (newVersion.buildNumber >= 100 && !options.pushOnly) {\n\t\tlogPackageMessage(fullPackageName, \"Copying zip to releases folder\");\n\n\t\tconst zipFileName = `${packageNameWithVersion}.zip`;\n\t\tconst releasesPath = getPackageReleasesDirectory(location);\n\n\t\tawait fs.mkdir(releasesPath, { recursive: true });\n\t\tawait pipeline(\n\t\t\tuploadable.getStream(),\n\t\t\tcreateWriteStream(path.join(releasesPath, zipFileName)),\n\t\t);\n\t}\n};\n\nconst ensureRequiredVersions = async (\n\tworkspaceLocation: WorkspaceLocation,\n\tcreatorPackage: CreatorPackage,\n\tsessionManager: SessionManager,\n\tprompter: Prompter,\n) => {\n\tinterface UploadedPackage\n\t\textends Omit<AssetService.ExistingPackage, \"version\"> {\n\t\tversion: PackageVersion;\n\t}\n\n\tconst libraries = determineWorkspaceIGLibraries(workspaceLocation);\n\n\t// If there are no libraries, we don't need to check for required versions\n\tif (libraries.length === 0) {\n\t\treturn true;\n\t}\n\n\tconst targetSession = sessionManager.getTargetSession();\n\n\tconst rawUploadedPackages = await AssetService.getExistingPackages(\n\t\ttargetSession,\n\t);\n\n\tconst uploadedPackages = rawUploadedPackages.map(\n\t\t(entry): UploadedPackage => {\n\t\t\tlet version: PackageVersion;\n\n\t\t\ttry {\n\t\t\t\tversion = parseVersionFromNumericVersion(entry.numericVersion);\n\t\t\t} catch (err) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Encountered invalid format for version ${entry.numericVersion}`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (version.buildNumber < 100) {\n\t\t\t\tversion.preRelease = {\n\t\t\t\t\ttype: \"beta\",\n\t\t\t\t\tversion: version.buildNumber,\n\t\t\t\t};\n\t\t\t} else if (version.buildNumber > 100) {\n\t\t\t\tversion.preRelease = {\n\t\t\t\t\ttype: \"patch\",\n\t\t\t\t\tversion: version.buildNumber - 100,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...entry,\n\t\t\t\tversion,\n\t\t\t};\n\t\t},\n\t);\n\n\tfor (const libraryLocation of libraries) {\n\t\tconst libraryManifest =\n\t\t\treadPublishedPackageNpmManifest(libraryLocation);\n\t\tconst libraryCreatorPackage =\n\t\t\treadPublishedPackageCreatorManifest(libraryLocation);\n\n\t\tif (\n\t\t\tlibraryCreatorPackage === undefined ||\n\t\t\tlibraryManifest.main === undefined ||\n\t\t\tlibraryCreatorPackage.Package === creatorPackage.Package\n\t\t) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst libraryVersion = PackageVersion.extractFromLine(\n\t\t\tlibraryManifest.version,\n\t\t);\n\n\t\tif (libraryVersion.preRelease) {\n\t\t\tlibraryVersion.buildNumber = libraryVersion.preRelease.version;\n\t\t\tlibraryVersion.preRelease = undefined;\n\t\t} else {\n\t\t\tlibraryVersion.buildNumber = 100;\n\t\t}\n\n\t\tlet uploadedPackageInBasics: UploadedPackage | undefined;\n\t\tlet uploadedPackageInTarget: UploadedPackage | undefined;\n\n\t\tfor (const uploadedPackage of uploadedPackages) {\n\t\t\tif (uploadedPackage.scope === libraryCreatorPackage.Package) {\n\t\t\t\tif (uploadedPackage.support) {\n\t\t\t\t\tuploadedPackageInBasics = uploadedPackage;\n\t\t\t\t} else {\n\t\t\t\t\tuploadedPackageInTarget = uploadedPackage;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst validInBasics =\n\t\t\tuploadedPackageInBasics !== undefined &&\n\t\t\t!uploadedPackageInBasics.version.isLesserThan(libraryVersion);\n\t\tconst validInTarget =\n\t\t\tuploadedPackageInTarget !== undefined &&\n\t\t\t!uploadedPackageInTarget.version.isLesserThan(libraryVersion);\n\n\t\tif (validInBasics || validInTarget) {\n\t\t\tif (\n\t\t\t\ttargetSession.subDomain !== \"Basics\" &&\n\t\t\t\tuploadedPackageInBasics !== undefined &&\n\t\t\t\tuploadedPackageInTarget !== undefined\n\t\t\t) {\n\t\t\t\tlogPackageMessage(\n\t\t\t\t\tcreatorPackage.Package,\n\t\t\t\t\t`Package ${libraryCreatorPackage.Package} is uploaded both for Basics and ${targetSession.subDomain}. The package within ${targetSession.subDomain} will be used.`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst possibleTargets: PrompterOption[] = [];\n\n\t\tif (uploadedPackageInBasics) {\n\t\t\tconst version = uploadedPackageInBasics.version.toVersionString({\n\t\t\t\tbuildNumber: true,\n\t\t\t});\n\n\t\t\tpossibleTargets.push({\n\t\t\t\tvalue: \"Basics\",\n\t\t\t\tname: `Basics (Current: ${version})`,\n\t\t\t});\n\t\t} else {\n\t\t\tpossibleTargets.push({\n\t\t\t\tvalue: \"Basics\",\n\t\t\t\tname: \"Basics (Current: None)\",\n\t\t\t});\n\t\t}\n\n\t\tif (targetSession.subDomain !== \"Basics\") {\n\t\t\tif (uploadedPackageInTarget) {\n\t\t\t\tconst version = uploadedPackageInTarget.version.toVersionString(\n\t\t\t\t\t{\n\t\t\t\t\t\tbuildNumber: true,\n\t\t\t\t\t},\n\t\t\t\t);\n\n\t\t\t\tpossibleTargets.push({\n\t\t\t\t\tvalue: targetSession.subDomain,\n\t\t\t\t\tname: `${targetSession.subDomain} (Current: ${version})`,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tpossibleTargets.push({\n\t\t\t\t\tvalue: targetSession.subDomain,\n\t\t\t\t\tname: `${targetSession.subDomain} (Current: None)`,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tconst libraryVersionString = libraryVersion.toVersionString({\n\t\t\tbuildNumber: true,\n\t\t});\n\n\t\tconst uploadTargetScope = await prompter.ask({\n\t\t\tmessage: `Version ${libraryVersionString} of dependency ${libraryCreatorPackage.Package} is required but not available. Please select a subdomain to upload the correct dependency version to`,\n\t\t\toptions: [\n\t\t\t\t...possibleTargets,\n\t\t\t\t{ name: \"Skip upload\", value: \"Skip\" },\n\t\t\t],\n\t\t\tdefault: possibleTargets[0].value,\n\t\t});\n\n\t\tif (uploadTargetScope === \"Skip\") {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst archive = buildArchiveFromPublishedPackage(\n\t\t\tlibraryLocation,\n\t\t\tlibraryManifest,\n\t\t\tlibraryCreatorPackage,\n\t\t);\n\n\t\tconst newVersionString = libraryVersion.toVersionString({\n\t\t\tbuildNumber: true,\n\t\t});\n\n\t\tconst session =\n\t\t\tuploadTargetScope === \"Basics\"\n\t\t\t\t? await sessionManager.getBasicsSession()\n\t\t\t\t: targetSession;\n\n\t\tlogPackageMessage(\n\t\t\tcreatorPackage.Package,\n\t\t\t`Uploading package ${libraryCreatorPackage.Package} with version ${newVersionString} to ${session.domain}.${session.subDomain}`,\n\t\t);\n\n\t\tawait AssetService.uploadPackageFromStream(\n\t\t\tsession,\n\t\t\t{\n\t\t\t\tname: libraryCreatorPackage.Package,\n\t\t\t\tversion: newVersionString,\n\t\t\t},\n\t\t\tarchive.generateNodeStream(),\n\t\t);\n\t}\n};\n\ninterface SessionManager {\n\tgetBasicsSession: () => Promise<AssetService.Session>;\n\tgetTargetSession: () => AssetService.Session;\n\tdestroy: () => Promise<void>;\n}\n\nconst createSessionManager = async (\n\tparams: AssetService.SessionStartParams,\n): Promise<SessionManager> => {\n\tconst targetSession = await AssetService.startSession(params);\n\tlet basicsSession: AssetService.Session | undefined;\n\n\treturn {\n\t\tgetBasicsSession: async () => {\n\t\t\tif (targetSession.subDomain === \"Basics\") {\n\t\t\t\treturn targetSession;\n\t\t\t}\n\n\t\t\tif (basicsSession === undefined) {\n\t\t\t\tbasicsSession = await AssetService.startSession({\n\t\t\t\t\t...params,\n\t\t\t\t\tsubDomain: \"Basics\",\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn basicsSession;\n\t\t},\n\n\t\tgetTargetSession: () => targetSession,\n\n\t\tdestroy: async () => {\n\t\t\tawait AssetService.closeSession(targetSession);\n\n\t\t\tif (basicsSession !== undefined) {\n\t\t\t\tawait AssetService.closeSession(basicsSession);\n\t\t\t}\n\t\t},\n\t};\n};\n"],"names":["buildArchiveFromPublishedPackage","location","manifest","creatorPackage","archive","JSZip","file","PACKAGE_FILE","JSON","stringify","index","readPublishedPackageCreatorIndex","undefined","INDEX_FILE","main","fs","createReadStream","path","join","runtimeScripts","notRuntimeScripts","buildArchiveFromPackage","packageLocation","data","binDir","domain","subdomain","parseCreatorPackageName","logStep","step","logPackageMessage","Package","libFilePath","scriptDirectories","scriptsDir","push","readPackageCreatorManifest","RunTime","includes","Type","writePackageCreatorManifest","libFile","readFileSync","encoding","err","isErrorENOENT","library","date","Date","now","getFullYear","minifyResult","terser","minify","ecma","code","creatorIndex","readPackageCreatorIndex","directory","readdirSync","ext","parse","console","error","execAsync","promisify","exec","releaseFolder","options","workspace","write","writeVersionFile","reset","resetVersionFile","getVersionFileHandler","packageDescription","fullPackageName","publishDomain","publishSubdomain","sharedPackageJson","readWorkspaceNpmManifest","newVersion","parseVersionFromString","Error","Version","toVersionString","buildNumber","preRelease","type","version","cwd","outDir","getWorkspaceOutputPath","mkdir","recursive","assetServerPackageDetails","packageNameWithVersion","versionWithoutPrelease","clone","newVersionString","name","zipFilePath","uploadable","getStream","pushOnly","zipFileExists","stat","catch","Promise","reject","gitVersionInformation","getVersionInformationFromGit","bannerText","getWorkspaceBannerText","buildFolders","packages","banner","text","commit","commitDirty","dirty","rm","readPackageAnimationList","length","workspaceManifest","dependencies","install","prompter","confirm","zipOutputStream","createWriteStream","pipeline","generateNodeStream","isErrorEACCES","isErrorEPERM","noUpload","authentication","sessionManager","createSessionManager","url","service","address","subDomain","skipDependencies","ensureRequiredVersions","AssetService","getTargetSession","destroy","zipFileName","releasesPath","getPackageReleasesDirectory","workspaceLocation","libraries","determineWorkspaceIGLibraries","targetSession","rawUploadedPackages","uploadedPackages","map","entry","parseVersionFromNumericVersion","numericVersion","libraryLocation","libraryManifest","readPublishedPackageNpmManifest","libraryCreatorPackage","readPublishedPackageCreatorManifest","libraryVersion","PackageVersion","extractFromLine","uploadedPackageInBasics","uploadedPackageInTarget","uploadedPackage","scope","support","validInBasics","isLesserThan","validInTarget","possibleTargets","value","libraryVersionString","uploadTargetScope","ask","message","default","session","getBasicsSession","params","basicsSession"],"mappings":"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"}
@@ -2,9 +2,9 @@ import * as path from 'path';
2
2
  import * as fs from 'fs';
3
3
  import glob from 'glob';
4
4
  import * as os from 'os';
5
- import { d as determineWorkspaceIGLibraries, a as readPublishedPackageNpmManifest } from './dependencies-030fd607.mjs';
5
+ import { d as determineWorkspaceIGLibraries, a as readPublishedPackageNpmManifest } from './dependencies-4e6ba0ea.mjs';
6
6
  import 'write-pkg';
7
- import { b as readWorkspaceNpmManifest, m as getWorkspaceLibPath } from './cli-1ce4d998.mjs';
7
+ import { b as readWorkspaceNpmManifest, m as getWorkspaceLibPath } from './cli-69a2e2f1.mjs';
8
8
  import 'node:path';
9
9
  import 'node:fs';
10
10
  import 'axios';
@@ -64,4 +64,4 @@ const executePostInstall = (workspace)=>{
64
64
  };
65
65
 
66
66
  export { executePostInstall };
67
- //# sourceMappingURL=postinstall-79673f29.mjs.map
67
+ //# sourceMappingURL=postinstall-6366aa29.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postinstall-6366aa29.mjs","sources":["../src/commands/postinstall.ts"],"sourcesContent":["import * as path from \"path\";\nimport * as fs from \"fs\";\nimport glob from \"glob\";\nimport * as os from \"os\";\n\nimport {\n\tgetWorkspaceLibPath,\n\treadWorkspaceNpmManifest,\n\tWorkspaceLocation,\n} from \"../lib/workspace\";\nimport { readPublishedPackageNpmManifest } from \"../lib/publishedPackage\";\nimport { determineWorkspaceIGLibraries } from \"../lib/dependencies\";\n\nconst DEFINITION_FILE_HINT =\n\t\"// This file is automatically managed by the ig.gfx.packager.\";\n\nexport const executePostInstall = (workspace: WorkspaceLocation) => {\n\tconst manifest = readWorkspaceNpmManifest(workspace);\n\n\tconst libPath = getWorkspaceLibPath(workspace);\n\n\tfs.mkdirSync(libPath, { recursive: true });\n\n\tconst existingDefinitions = glob.sync(\"**/*.d.ts\", {\n\t\tcwd: libPath,\n\t\tabsolute: true,\n\t});\n\n\t// delete all existing definition files that are managed by the packager.\n\t// we'll recreate all needed definitions in the next step.\n\tfor (const existingDefinitionPath of existingDefinitions) {\n\t\tconst content = fs.readFileSync(existingDefinitionPath, {\n\t\t\tencoding: \"utf-8\",\n\t\t});\n\n\t\tif (content.startsWith(DEFINITION_FILE_HINT)) {\n\t\t\tfs.rmSync(existingDefinitionPath);\n\t\t}\n\t}\n\n\tconst libraryLocations = determineWorkspaceIGLibraries(workspace);\n\n\tfor (const location of libraryLocations) {\n\t\tconst manifest = readPublishedPackageNpmManifest(location);\n\n\t\tfor (const existingDefinitionPath of existingDefinitions) {\n\t\t\tconst basename = path.basename(existingDefinitionPath);\n\n\t\t\tif (basename === manifest.types) {\n\t\t\t\tfs.rmSync(existingDefinitionPath, { force: true });\n\t\t\t}\n\t\t}\n\n\t\t// add a hint to the top of the file so we know it's managed by the packager.\n\n\t\tconst content = [\n\t\t\tDEFINITION_FILE_HINT,\n\t\t\t`// This is a reference to version ${manifest.version}.`,\n\t\t\t`// Run \"npm install\" to install the types if they are missing or not up to date.`,\n\t\t\t`/// <reference types=\"${manifest.name}\" />`,\n\t\t].join(os.EOL);\n\n\t\tfs.writeFileSync(\n\t\t\tpath.join(getWorkspaceLibPath(workspace), manifest.types),\n\t\t\tcontent,\n\t\t\t{\n\t\t\t\tencoding: \"utf8\",\n\t\t\t},\n\t\t);\n\t}\n};\n"],"names":["DEFINITION_FILE_HINT","executePostInstall","workspace","readWorkspaceNpmManifest","libPath","getWorkspaceLibPath","fs","mkdirSync","recursive","existingDefinitions","glob","sync","cwd","absolute","existingDefinitionPath","content","readFileSync","encoding","startsWith","rmSync","libraryLocations","determineWorkspaceIGLibraries","location","manifest","readPublishedPackageNpmManifest","basename","path","types","force","version","name","join","os","EOL","writeFileSync"],"mappings":";;;;;;;;;;;;;;;;;;;;AAaA,MAAMA,oBACL,GAAA,+DAAA,CAAA;AAEM,MAAMC,kBAAqB,GAAA,CAACC,SAAiC,GAAA;AACnE,IAAiBC,wBAAyBD,CAAAA,SAAAA,EAAAA;AAE1C,IAAA,MAAME,UAAUC,mBAAoBH,CAAAA,SAAAA,CAAAA,CAAAA;IAEpCI,EAAGC,CAAAA,SAAS,CAACH,OAAS,EAAA;AAAEI,QAAAA,SAAAA,EAAW,IAAI;AAAC,KAAA,CAAA,CAAA;AAExC,IAAA,MAAMC,mBAAsBC,GAAAA,IAAAA,CAAKC,IAAI,CAAC,WAAa,EAAA;QAClDC,GAAKR,EAAAA,OAAAA;AACLS,QAAAA,QAAAA,EAAU,IAAI;AACf,KAAA,CAAA,CAAA;;;IAIA,KAAK,MAAMC,0BAA0BL,mBAAqB,CAAA;AACzD,QAAA,MAAMM,OAAUT,GAAAA,EAAAA,CAAGU,YAAY,CAACF,sBAAwB,EAAA;YACvDG,QAAU,EAAA,OAAA;AACX,SAAA,CAAA,CAAA;QAEA,IAAIF,OAAAA,CAAQG,UAAU,CAAClB,oBAAuB,CAAA,EAAA;AAC7CM,YAAAA,EAAAA,CAAGa,MAAM,CAACL,sBAAAA,CAAAA,CAAAA;SACV;AACF,KAAA;AAEA,IAAA,MAAMM,mBAAmBC,6BAA8BnB,CAAAA,SAAAA,CAAAA,CAAAA;IAEvD,KAAK,MAAMoB,YAAYF,gBAAkB,CAAA;AACxC,QAAA,MAAMG,WAAWC,+BAAgCF,CAAAA,QAAAA,CAAAA,CAAAA;QAEjD,KAAK,MAAMR,0BAA0BL,mBAAqB,CAAA;YACzD,MAAMgB,QAAAA,GAAWC,IAAKD,CAAAA,QAAQ,CAACX,sBAAAA,CAAAA,CAAAA;YAE/B,IAAIW,QAAAA,KAAaF,QAASI,CAAAA,KAAK,EAAE;gBAChCrB,EAAGa,CAAAA,MAAM,CAACL,sBAAwB,EAAA;AAAEc,oBAAAA,KAAAA,EAAO,IAAI;AAAC,iBAAA,CAAA,CAAA;aAChD;AACF,SAAA;;AAIA,QAAA,MAAMb,OAAU,GAAA;AACff,YAAAA,oBAAAA;AACA,YAAA,CAAC,kCAAkC,EAAEuB,QAAAA,CAASM,OAAO,CAAC,CAAC,CAAC;AACxD,YAAA,CAAC,gFAAgF,CAAC;AAClF,YAAA,CAAC,sBAAsB,EAAEN,QAAAA,CAASO,IAAI,CAAC,IAAI,CAAC;SAC5C,CAACC,IAAI,CAACC,EAAAA,CAAGC,GAAG,CAAA,CAAA;QAEb3B,EAAG4B,CAAAA,aAAa,CACfR,IAAAA,CAAKK,IAAI,CAAC1B,oBAAoBH,SAAYqB,CAAAA,EAAAA,QAAAA,CAASI,KAAK,CAAA,EACxDZ,OACA,EAAA;YACCE,QAAU,EAAA,MAAA;AACX,SAAA,CAAA,CAAA;AAEF,KAAA;AACD;;;;"}
@@ -3,13 +3,13 @@ import * as fs from 'fs';
3
3
  import { execSync } from 'child_process';
4
4
  import 'resolve';
5
5
  import 'write-pkg';
6
- import { b as readWorkspaceNpmManifest, g as getWorkspaceOutputPath, r as readPackageCreatorManifest, q as readPackageNpmManifest, t as writePackageNpmManifest, P as PACKAGE_FILE, a as readPackageCreatorIndex, I as INDEX_FILE, v as iterateWorkspacePackages } from './cli-1ce4d998.mjs';
7
- import { b as buildFolders, l as logPackageMessage } from './index-48221d57.mjs';
6
+ import { b as readWorkspaceNpmManifest, g as getWorkspaceOutputPath, r as readPackageCreatorManifest, q as readPackageNpmManifest, t as writePackageNpmManifest, P as PACKAGE_FILE, a as readPackageCreatorIndex, I as INDEX_FILE, v as iterateWorkspacePackages } from './cli-69a2e2f1.mjs';
7
+ import { b as buildFolders, l as logPackageMessage } from './index-aecc36ad.mjs';
8
8
  import 'glob';
9
9
  import 'node:path';
10
10
  import 'node:fs';
11
11
  import 'axios';
12
- import { p as parseVersionFromString, g as getVersionFileHandler, a as getVersionInformationFromGit, b as getWorkspaceBannerText } from './versionFile-562e5692.mjs';
12
+ import { p as parseVersionFromString, g as getVersionFileHandler, a as getVersionInformationFromGit, b as getWorkspaceBannerText } from './versionFile-28e7ec79.mjs';
13
13
  import 'update-notifier';
14
14
  import 'yargs/yargs';
15
15
  import 'url';
@@ -134,4 +134,4 @@ const publishToNpm = async ({ workspace , location , version: providedVersion ,
134
134
  };
135
135
 
136
136
  export { publishToNpm };
137
- //# sourceMappingURL=publishNpm-bfd4eb6a.mjs.map
137
+ //# sourceMappingURL=publishNpm-7fe8b8ec.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publishNpm-7fe8b8ec.mjs","sources":["../src/commands/publishNpm.ts"],"sourcesContent":["import * as path from \"path\";\nimport * as fs from \"fs\";\nimport { execSync } from \"child_process\";\n\nimport { PackageVersion } from \"../lib/packageVersion\";\nimport {\n\tINDEX_FILE,\n\tPackageLocation,\n\tPACKAGE_FILE,\n\treadPackageCreatorIndex,\n\treadPackageCreatorManifest,\n\treadPackageNpmManifest,\n\twritePackageNpmManifest,\n} from \"../lib/package\";\nimport {\n\tgetWorkspaceOutputPath,\n\titerateWorkspacePackages,\n\treadWorkspaceNpmManifest,\n\tWorkspaceLocation,\n} from \"../lib/workspace\";\nimport { getVersionInformationFromGit } from \"../lib/git\";\nimport { getWorkspaceBannerText } from \"../lib/banner\";\nimport { parseVersionFromString } from \"../lib/parseVersion\";\nimport { getVersionFileHandler } from \"../lib/versionFile\";\nimport { logPackageMessage } from \"../lib/log\";\n\nimport { buildFolders } from \"./build\";\n\nexport interface PublishToNpmSettings {\n\tworkspace: WorkspaceLocation;\n\tlocation: PackageLocation;\n\tversion: string;\n\tdryRun?: boolean;\n}\n\nexport const publishToNpm = async ({\n\tworkspace,\n\tlocation,\n\tversion: providedVersion,\n\tdryRun,\n}: PublishToNpmSettings) => {\n\tlet newVersion: PackageVersion;\n\ttry {\n\t\tnewVersion = parseVersionFromString(providedVersion);\n\t} catch (err) {\n\t\tthrow new Error(`Please enter a version in this format 1.0.0.100`);\n\t}\n\n\tif (newVersion.buildNumber < 100) {\n\t\tnewVersion.preRelease = {\n\t\t\ttype: \"beta\",\n\t\t\tversion: newVersion.buildNumber,\n\t\t};\n\t} else if (newVersion.buildNumber === 100) {\n\t\tnewVersion.preRelease = undefined;\n\t} else {\n\t\tthrow new Error(\n\t\t\t`Refusing to publish a package with a build version larger than 100.`,\n\t\t);\n\t}\n\n\tconst workspaceManifest = readWorkspaceNpmManifest(workspace);\n\tconst workspaceOutputPath = getWorkspaceOutputPath(workspace);\n\tconst creatorPackage = readPackageCreatorManifest(location);\n\tlet packageJson = readPackageNpmManifest(location);\n\n\tif (packageJson === undefined) {\n\t\tpackageJson = {\n\t\t\tname:\n\t\t\t\t\"@intelligentgraphics/3d\" +\n\t\t\t\tcreatorPackage.Package.toLowerCase(),\n\t\t\tversion: \"1.0.0\",\n\t\t\tdescription: creatorPackage.Package,\n\t\t};\n\t}\n\n\tpackageJson.version = newVersion.toVersionString({\n\t\tbuildNumber: false,\n\t});\n\tpackageJson.description = newVersion.toDescriptionString(\n\t\tcreatorPackage.Package,\n\t);\n\tpackageJson.main = `${creatorPackage.Package}.js`;\n\tpackageJson.types = `${creatorPackage.Package}.d.ts`;\n\tpackageJson.publishConfig ??= {};\n\tpackageJson.publishConfig.acccess = \"public\";\n\tpackageJson.ig = {\n\t\tscriptingLibrary: true,\n\t};\n\tpackageJson.files = undefined;\n\n\tconst publishDir = path.join(\n\t\tworkspaceOutputPath,\n\t\t\"publish\",\n\t\tcreatorPackage.Package,\n\t);\n\tfs.rmSync(publishDir, { recursive: true, force: true });\n\tfs.mkdirSync(publishDir, { recursive: true });\n\n\twritePackageNpmManifest(location, packageJson);\n\n\tgetVersionFileHandler(location).write(creatorPackage.Package, newVersion);\n\n\tconst gitVersionInformation = await getVersionInformationFromGit(\n\t\tworkspace,\n\t\tlocation,\n\t);\n\n\tconst bannerText = getWorkspaceBannerText(workspaceManifest);\n\n\tawait buildFolders({\n\t\tworkspace,\n\t\tpackages: [location],\n\t\tminimize: true,\n\t\toutDir: getWorkspaceOutputPath(workspace),\n\t\tbanner: {\n\t\t\ttext: bannerText,\n\t\t\tcommit: gitVersionInformation.commit,\n\t\t\tcommitDirty: gitVersionInformation.dirty,\n\t\t\tversion: newVersion.toVersionString({\n\t\t\t\tbuildNumber: true,\n\t\t\t}),\n\t\t\tdate: new Date(Date.now()),\n\t\t},\n\t});\n\n\tfs.copyFileSync(\n\t\tpath.join(\n\t\t\tgetWorkspaceOutputPath(workspace),\n\t\t\t`${creatorPackage.Package}.d.ts`,\n\t\t),\n\t\tpath.join(publishDir, `${creatorPackage.Package}.d.ts`),\n\t);\n\tfs.copyFileSync(\n\t\tpath.join(\n\t\t\tgetWorkspaceOutputPath(workspace),\n\t\t\t`${creatorPackage.Package}.min.js`,\n\t\t),\n\t\tpath.join(publishDir, `${creatorPackage.Package}.js`),\n\t);\n\n\tfs.copyFileSync(\n\t\tpath.join(location.manifestDir, \"package.json\"),\n\t\tpath.join(publishDir, \"package.json\"),\n\t);\n\n\tfs.writeFileSync(\n\t\tpath.join(publishDir, PACKAGE_FILE),\n\t\tJSON.stringify(creatorPackage, null, 2),\n\t);\n\n\tconst index = readPackageCreatorIndex(location);\n\n\tif (index !== undefined) {\n\t\tfs.writeFileSync(\n\t\t\tpath.join(publishDir, INDEX_FILE),\n\t\t\tJSON.stringify(index),\n\t\t);\n\t}\n\n\tconst readmeName = fs\n\t\t.readdirSync(location.path)\n\t\t.find((name) => name.toLowerCase() === \"readme.md\");\n\n\tif (readmeName !== undefined) {\n\t\tfs.copyFileSync(\n\t\t\tpath.join(location.path, readmeName),\n\t\t\tpath.join(publishDir, readmeName),\n\t\t);\n\t}\n\n\tconst npmPublishArgs: string[] = [];\n\n\tif (dryRun) {\n\t\tnpmPublishArgs.push(\"--dry-run\");\n\t}\n\n\tif (newVersion.preRelease) {\n\t\tnpmPublishArgs.push(\"--tag\", \"next\");\n\t}\n\n\tlogPackageMessage(\n\t\tcreatorPackage.Package,\n\t\t`Publishing to npm with version ${packageJson.version} using tag ${\n\t\t\tnewVersion.preRelease ? \"next\" : \"latest\"\n\t\t}`,\n\t);\n\n\texecSync([\"npm\", \"publish\", ...npmPublishArgs].join(\" \"), {\n\t\tstdio: \"inherit\",\n\t\tencoding: \"utf8\",\n\t\tcwd: publishDir,\n\t});\n\n\tfor (const packageLocation of iterateWorkspacePackages(workspace)) {\n\t\tconst manifest = readPackageNpmManifest(packageLocation);\n\n\t\tif (manifest?.dependencies?.[packageJson.name] !== undefined) {\n\t\t\tmanifest.dependencies[packageJson.name] = \"^\" + packageJson.version;\n\t\t\twritePackageNpmManifest(packageLocation, manifest);\n\t\t}\n\t}\n};\n"],"names":["publishToNpm","workspace","location","version","providedVersion","dryRun","newVersion","parseVersionFromString","err","Error","buildNumber","preRelease","type","undefined","workspaceManifest","readWorkspaceNpmManifest","workspaceOutputPath","getWorkspaceOutputPath","creatorPackage","readPackageCreatorManifest","packageJson","readPackageNpmManifest","name","Package","toLowerCase","description","toVersionString","toDescriptionString","main","types","publishConfig","acccess","ig","scriptingLibrary","files","publishDir","path","join","fs","rmSync","recursive","force","mkdirSync","writePackageNpmManifest","getVersionFileHandler","write","gitVersionInformation","getVersionInformationFromGit","bannerText","getWorkspaceBannerText","buildFolders","packages","minimize","outDir","banner","text","commit","commitDirty","dirty","date","Date","now","copyFileSync","manifestDir","writeFileSync","PACKAGE_FILE","JSON","stringify","index","readPackageCreatorIndex","INDEX_FILE","readmeName","readdirSync","find","npmPublishArgs","push","logPackageMessage","execSync","stdio","encoding","cwd","packageLocation","iterateWorkspacePackages","manifest","dependencies"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCaA,MAAAA,YAAAA,GAAe,OAAO,EAClCC,SAAS,GACTC,QAAQ,GACRC,OAASC,EAAAA,eAAAA,GACTC,MAAAA,GACsB,GAAK;IAC3B,IAAIC,UAAAA,CAAAA;IACJ,IAAI;AACHA,QAAAA,UAAAA,GAAaC,sBAAuBH,CAAAA,eAAAA,CAAAA,CAAAA;AACrC,KAAA,CAAE,OAAOI,GAAK,EAAA;AACb,QAAA,MAAM,IAAIC,KAAAA,CAAM,CAAC,+CAA+C,CAAC,CAAE,CAAA;AACpE,KAAA;IAEA,IAAIH,UAAAA,CAAWI,WAAW,GAAG,GAAK,EAAA;AACjCJ,QAAAA,UAAAA,CAAWK,UAAU,GAAG;YACvBC,IAAM,EAAA,MAAA;AACNT,YAAAA,OAAAA,EAASG,WAAWI,WAAW;AAChC,SAAA,CAAA;AACD,KAAA,MAAO,IAAIJ,UAAAA,CAAWI,WAAW,KAAK,GAAK,EAAA;AAC1CJ,QAAAA,UAAAA,CAAWK,UAAU,GAAGE,SAAAA,CAAAA;KAClB,MAAA;AACN,QAAA,MAAM,IAAIJ,KAAAA,CACT,CAAC,mEAAmE,CAAC,CACpE,CAAA;KACF;AAED,IAAA,MAAMK,oBAAoBC,wBAAyBd,CAAAA,SAAAA,CAAAA,CAAAA;AACnD,IAAA,MAAMe,sBAAsBC,sBAAuBhB,CAAAA,SAAAA,CAAAA,CAAAA;AACnD,IAAA,MAAMiB,iBAAiBC,0BAA2BjB,CAAAA,QAAAA,CAAAA,CAAAA;AAClD,IAAA,IAAIkB,cAAcC,sBAAuBnB,CAAAA,QAAAA,CAAAA,CAAAA;AAEzC,IAAA,IAAIkB,gBAAgBP,SAAW,EAAA;QAC9BO,WAAc,GAAA;AACbE,YAAAA,IAAAA,EACC,yBACAJ,GAAAA,cAAAA,CAAeK,OAAO,CAACC,WAAW,EAAA;YACnCrB,OAAS,EAAA,OAAA;AACTsB,YAAAA,WAAAA,EAAaP,eAAeK,OAAO;AACpC,SAAA,CAAA;KACA;AAEDH,IAAAA,WAAAA,CAAYjB,OAAO,GAAGG,UAAWoB,CAAAA,eAAe,CAAC;AAChDhB,QAAAA,WAAAA,EAAa,KAAK;AACnB,KAAA,CAAA,CAAA;AACAU,IAAAA,WAAAA,CAAYK,WAAW,GAAGnB,UAAAA,CAAWqB,mBAAmB,CACvDT,eAAeK,OAAO,CAAA,CAAA;IAEvBH,WAAYQ,CAAAA,IAAI,GAAG,CAAC,EAAEV,eAAeK,OAAO,CAAC,GAAG,CAAC,CAAA;IACjDH,WAAYS,CAAAA,KAAK,GAAG,CAAC,EAAEX,eAAeK,OAAO,CAAC,KAAK,CAAC,CAAA;IACpDH,WAAYU,CAAAA,aAAa,KAAK,EAAC,CAAA;IAC/BV,WAAYU,CAAAA,aAAa,CAACC,OAAO,GAAG,QAAA,CAAA;AACpCX,IAAAA,WAAAA,CAAYY,EAAE,GAAG;AAChBC,QAAAA,gBAAAA,EAAkB,IAAI;AACvB,KAAA,CAAA;AACAb,IAAAA,WAAAA,CAAYc,KAAK,GAAGrB,SAAAA,CAAAA;AAEpB,IAAA,MAAMsB,aAAaC,IAAKC,CAAAA,IAAI,CAC3BrB,mBACA,EAAA,SAAA,EACAE,eAAeK,OAAO,CAAA,CAAA;IAEvBe,EAAGC,CAAAA,MAAM,CAACJ,UAAY,EAAA;AAAEK,QAAAA,SAAAA,EAAW,IAAI;AAAEC,QAAAA,KAAAA,EAAO,IAAI;AAAC,KAAA,CAAA,CAAA;IACrDH,EAAGI,CAAAA,SAAS,CAACP,UAAY,EAAA;AAAEK,QAAAA,SAAAA,EAAW,IAAI;AAAC,KAAA,CAAA,CAAA;AAE3CG,IAAAA,uBAAAA,CAAwBzC,QAAUkB,EAAAA,WAAAA,CAAAA,CAAAA;AAElCwB,IAAAA,qBAAAA,CAAsB1C,QAAU2C,CAAAA,CAAAA,KAAK,CAAC3B,cAAAA,CAAeK,OAAO,EAAEjB,UAAAA,CAAAA,CAAAA;IAE9D,MAAMwC,qBAAAA,GAAwB,MAAMC,4BAAAA,CACnC9C,SACAC,EAAAA,QAAAA,CAAAA,CAAAA;AAGD,IAAA,MAAM8C,aAAaC,sBAAuBnC,CAAAA,iBAAAA,CAAAA,CAAAA;AAE1C,IAAA,MAAMoC,YAAa,CAAA;AAClBjD,QAAAA,SAAAA;QACAkD,QAAU,EAAA;AAACjD,YAAAA,QAAAA;AAAS,SAAA;AACpBkD,QAAAA,QAAAA,EAAU,IAAI;AACdC,QAAAA,MAAAA,EAAQpC,sBAAuBhB,CAAAA,SAAAA,CAAAA;QAC/BqD,MAAQ,EAAA;YACPC,IAAMP,EAAAA,UAAAA;AACNQ,YAAAA,MAAAA,EAAQV,sBAAsBU,MAAM;AACpCC,YAAAA,WAAAA,EAAaX,sBAAsBY,KAAK;YACxCvD,OAASG,EAAAA,UAAAA,CAAWoB,eAAe,CAAC;AACnChB,gBAAAA,WAAAA,EAAa,IAAI;AAClB,aAAA,CAAA;YACAiD,IAAM,EAAA,IAAIC,IAAKA,CAAAA,IAAAA,CAAKC,GAAG,EAAA,CAAA;AACxB,SAAA;AACD,KAAA,CAAA,CAAA;IAEAvB,EAAGwB,CAAAA,YAAY,CACd1B,IAAAA,CAAKC,IAAI,CACRpB,uBAAuBhB,SACvB,CAAA,EAAA,CAAC,EAAEiB,cAAAA,CAAeK,OAAO,CAAC,KAAK,CAAC,CAAA,EAEjCa,IAAKC,CAAAA,IAAI,CAACF,UAAAA,EAAY,CAAC,EAAEjB,cAAeK,CAAAA,OAAO,CAAC,KAAK,CAAC,CAAA,CAAA,CAAA;IAEvDe,EAAGwB,CAAAA,YAAY,CACd1B,IAAAA,CAAKC,IAAI,CACRpB,uBAAuBhB,SACvB,CAAA,EAAA,CAAC,EAAEiB,cAAAA,CAAeK,OAAO,CAAC,OAAO,CAAC,CAAA,EAEnCa,IAAKC,CAAAA,IAAI,CAACF,UAAAA,EAAY,CAAC,EAAEjB,cAAeK,CAAAA,OAAO,CAAC,GAAG,CAAC,CAAA,CAAA,CAAA;AAGrDe,IAAAA,EAAAA,CAAGwB,YAAY,CACd1B,IAAKC,CAAAA,IAAI,CAACnC,QAAAA,CAAS6D,WAAW,EAAE,cAChC3B,CAAAA,EAAAA,IAAAA,CAAKC,IAAI,CAACF,UAAY,EAAA,cAAA,CAAA,CAAA,CAAA;AAGvBG,IAAAA,EAAAA,CAAG0B,aAAa,CACf5B,IAAKC,CAAAA,IAAI,CAACF,UAAAA,EAAY8B,YACtBC,CAAAA,EAAAA,IAAAA,CAAKC,SAAS,CAACjD,cAAgB,EAAA,IAAI,EAAE,CAAA,CAAA,CAAA,CAAA;AAGtC,IAAA,MAAMkD,QAAQC,uBAAwBnE,CAAAA,QAAAA,CAAAA,CAAAA;AAEtC,IAAA,IAAIkE,UAAUvD,SAAW,EAAA;QACxByB,EAAG0B,CAAAA,aAAa,CACf5B,IAAKC,CAAAA,IAAI,CAACF,UAAYmC,EAAAA,UAAAA,CAAAA,EACtBJ,IAAKC,CAAAA,SAAS,CAACC,KAAAA,CAAAA,CAAAA,CAAAA;KAEhB;AAED,IAAA,MAAMG,UAAajC,GAAAA,EAAAA,CACjBkC,WAAW,CAACtE,QAASkC,CAAAA,IAAI,CACzBqC,CAAAA,IAAI,CAAC,CAACnD,IAASA,GAAAA,IAAAA,CAAKE,WAAW,EAAO,KAAA,WAAA,CAAA,CAAA;AAExC,IAAA,IAAI+C,eAAe1D,SAAW,EAAA;AAC7ByB,QAAAA,EAAAA,CAAGwB,YAAY,CACd1B,IAAKC,CAAAA,IAAI,CAACnC,QAAAA,CAASkC,IAAI,EAAEmC,UACzBnC,CAAAA,EAAAA,IAAAA,CAAKC,IAAI,CAACF,UAAYoC,EAAAA,UAAAA,CAAAA,CAAAA,CAAAA;KAEvB;AAED,IAAA,MAAMG,iBAA2B,EAAE,CAAA;AAEnC,IAAA,IAAIrE,MAAQ,EAAA;AACXqE,QAAAA,cAAAA,CAAeC,IAAI,CAAC,WAAA,CAAA,CAAA;KACpB;IAED,IAAIrE,UAAAA,CAAWK,UAAU,EAAE;QAC1B+D,cAAeC,CAAAA,IAAI,CAAC,OAAS,EAAA,MAAA,CAAA,CAAA;KAC7B;AAEDC,IAAAA,iBAAAA,CACC1D,eAAeK,OAAO,EACtB,CAAC,+BAA+B,EAAEH,WAAYjB,CAAAA,OAAO,CAAC,WAAW,EAChEG,UAAWK,CAAAA,UAAU,GAAG,MAAS,GAAA,QAAQ,CACzC,CAAC,CAAA,CAAA;IAGHkE,QAAS,CAAA;AAAC,QAAA,KAAA;AAAO,QAAA,SAAA;AAAcH,QAAAA,GAAAA,cAAAA;KAAe,CAACrC,IAAI,CAAC,GAAM,CAAA,EAAA;QACzDyC,KAAO,EAAA,SAAA;QACPC,QAAU,EAAA,MAAA;QACVC,GAAK7C,EAAAA,UAAAA;AACN,KAAA,CAAA,CAAA;IAEA,KAAK,MAAM8C,eAAmBC,IAAAA,wBAAAA,CAAyBjF,SAAY,CAAA,CAAA;AAG9DkF,QAAAA,IAAAA,sBAAAA,CAAAA;AAFJ,QAAA,MAAMA,WAAW9D,sBAAuB4D,CAAAA,eAAAA,CAAAA,CAAAA;AAExC,QAAA,IAAIE,CAAAA,QAAAA,IAAAA,IAAAA,GAAAA,KAAAA,IAAAA,CAAAA,sBAAAA,GAAAA,SAAUC,YAAY,KAAA,IAAA,GAAtBD,KAAAA,CAAAA,GAAAA,sBAAwB,CAAC/D,WAAYE,CAAAA,IAAI,CAApB,MAA0BT,SAAW,EAAA;YAC7DsE,QAASC,CAAAA,YAAY,CAAChE,WAAYE,CAAAA,IAAI,CAAC,GAAG,GAAA,GAAMF,YAAYjB,OAAO,CAAA;AACnEwC,YAAAA,uBAAAA,CAAwBsC,eAAiBE,EAAAA,QAAAA,CAAAA,CAAAA;SACzC;AACF,KAAA;AACD;;;;"}
@@ -3,7 +3,7 @@ import * as path from 'path';
3
3
  import * as fs from 'fs';
4
4
  import 'resolve';
5
5
  import 'write-pkg';
6
- import { i as isErrorENOENT } from './cli-1ce4d998.mjs';
6
+ import { i as isErrorENOENT } from './cli-69a2e2f1.mjs';
7
7
  import 'glob';
8
8
  import 'node:path';
9
9
  import 'node:fs';
@@ -231,19 +231,19 @@ class PackageVersion {
231
231
  parts.push(`(${base}.${this.buildNumber})`);
232
232
  return parts.join(" ");
233
233
  }
234
- /**
235
- * Determines wether the version is lesser than the input version
236
- *
237
- * @param {PackageVersion} version
238
- * @returns
234
+ /**
235
+ * Determines wether the version is lesser than the input version
236
+ *
237
+ * @param {PackageVersion} version
238
+ * @returns
239
239
  */ isLesserThan(version) {
240
240
  return PackageVersion.toNumber(this) < PackageVersion.toNumber(version);
241
241
  }
242
- /**
243
- * Determines wether the version is greater than the input version
244
- *
245
- * @param {PackageVersion} version
246
- * @returns
242
+ /**
243
+ * Determines wether the version is greater than the input version
244
+ *
245
+ * @param {PackageVersion} version
246
+ * @returns
247
247
  */ isGreaterThan(version) {
248
248
  return PackageVersion.toNumber(this) > PackageVersion.toNumber(version);
249
249
  }
@@ -381,4 +381,4 @@ const createYearString = (years)=>{
381
381
  };
382
382
 
383
383
  export { PackageVersion as P, getVersionInformationFromGit as a, getWorkspaceBannerText as b, parseVersionFromNumericVersion as c, getVersionFileHandler as g, parseVersionFromString as p };
384
- //# sourceMappingURL=versionFile-562e5692.mjs.map
384
+ //# sourceMappingURL=versionFile-28e7ec79.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"versionFile-28e7ec79.mjs","sources":["../../tools.core/build/fs.mjs","../src/lib/git.ts","../src/lib/banner.ts","../src/lib/packageVersion.ts","../src/lib/parseVersion.ts","../src/lib/versionFile.ts"],"sourcesContent":["import * as fs from 'fs';\nimport { isErrorENOENT } from './error.mjs';\n\nconst readStringFromFile = (filePath)=>fs.readFileSync(filePath, {\n encoding: \"utf8\"\n });\nconst readStringFromFileOrUndefined = (filePath)=>{\n try {\n return readStringFromFile(filePath);\n } catch (err) {\n if (!isErrorENOENT(err)) {\n throw err;\n }\n return undefined;\n }\n};\n\nexport { readStringFromFile, readStringFromFileOrUndefined };\n//# sourceMappingURL=fs.mjs.map\n","import simpleGit from \"simple-git\";\nimport * as path from \"path\";\n\nimport { WorkspaceLocation } from \"./workspace\";\nimport { PackageLocation } from \"./package\";\n\nexport const getVersionInformationFromGit = async (\n\tworkspaceLocation: WorkspaceLocation,\n\tpackageLocation: PackageLocation,\n) => {\n\ttry {\n\t\tconst git = simpleGit({\n\t\t\tbaseDir: workspaceLocation.path,\n\t\t});\n\n\t\t// check wether the files for a folder are changed\n\t\t// if so, mark as dirty\n\t\tconst diff = await git.diffSummary();\n\n\t\tconst dirty = diff.files.some((file) => {\n\t\t\tif (\n\t\t\t\tfile.file.toLowerCase().includes(\"releases\") ||\n\t\t\t\tfile.file.toLowerCase().endsWith(\"version.ts\") ||\n\t\t\t\tfile.file.toLowerCase().endsWith(\"package.json\")\n\t\t\t) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tconst fullPath = path.resolve(workspaceLocation.path, file.file);\n\t\t\tconst relativePath = path.relative(packageLocation.path, fullPath);\n\n\t\t\treturn !relativePath.startsWith(\"..\");\n\t\t});\n\n\t\tconst log = await git.log({ maxCount: 1 });\n\t\tconst commit = !log.latest?.hash\n\t\t\t? undefined\n\t\t\t: log.latest.hash.substring(0, 7);\n\n\t\treturn {\n\t\t\tcommit,\n\t\t\tdirty,\n\t\t\tcommitDate: log.latest?.date,\n\t\t};\n\t} catch (err) {\n\t\treturn {};\n\t}\n};\n","import { WorkspacePackageJSON } from \"./workspace\";\n\nexport const getWorkspaceBannerText = (manifest: WorkspacePackageJSON) => {\n\tlet bannerText = manifest?.packager?.banner;\n\n\tif (bannerText) {\n\t\tconst match = bannerText.match(/Copyright \\(C\\) (\\d+)( ?- ?(\\d+))?/);\n\n\t\tif (match !== null) {\n\t\t\tconst startYear = parseInt(match[1]);\n\t\t\tconst endYear = new Date().getFullYear();\n\n\t\t\tif (startYear !== endYear) {\n\t\t\t\tbannerText = bannerText.replace(\n\t\t\t\t\tmatch[0],\n\t\t\t\t\t`Copyright (C) ${startYear} - ${endYear}`,\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tbannerText = bannerText.replace(\n\t\t\t\t\tmatch[0],\n\t\t\t\t\t`Copyright (C) ${startYear}`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn bannerText;\n};\n","// Stolen from ig.tools.core\n\nexport interface PackageVersionToVersionStringParams {\n\tbuildNumber?: boolean;\n}\n\nexport class PackageVersion {\n\t// https://regex101.com/r/90PEY9/1\n\tpublic static fullTextMatcher =\n\t\t/(\\d+)(\\.(\\d+)(\\.(\\d+)(\\.(\\d+))?(-([^\\.]+)\\.(\\d+))?)?)?/;\n\tpublic static lineMatcher =\n\t\t/^(\\d+)(\\.(\\d+)(\\.(\\d+)(\\.(\\d+))?(-([^\\.]+)\\.(\\d+))?)?)?$/;\n\n\tpublic static extractFromText(input: string, description?: string) {\n\t\tif (input === undefined) {\n\t\t\tthrow new Error(`Can not parse version from undefined`);\n\t\t}\n\n\t\tconst match = input.match(PackageVersion.fullTextMatcher);\n\n\t\tif (!match) {\n\t\t\tthrow new Error(`Could not extract a version from input: ${input}`);\n\t\t}\n\n\t\treturn PackageVersion.fromMatch(match, description);\n\t}\n\n\tpublic static extractFromLine(input: string, description?: string) {\n\t\tif (input === undefined) {\n\t\t\tthrow new Error(`Can not parse version from undefined`);\n\t\t}\n\n\t\tconst match = input.match(PackageVersion.lineMatcher);\n\n\t\tif (!match) {\n\t\t\tthrow new Error(`Could not parse version from input: ${input}`);\n\t\t}\n\n\t\treturn PackageVersion.fromMatch(match, description);\n\t}\n\n\tpublic static equals(\n\t\ta: PackageVersion,\n\t\tb: PackageVersion,\n\t\tcheckPrerelease = false,\n\t) {\n\t\tif (a.major !== b.major || a.minor !== b.minor || a.patch !== b.patch) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (checkPrerelease === false) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (a.preRelease === b.preRelease) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (a.preRelease === undefined || b.preRelease === undefined) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn (\n\t\t\ta.preRelease.type === b.preRelease.type &&\n\t\t\ta.preRelease.version === b.preRelease.version\n\t\t);\n\t}\n\n\tprivate static fromMatch(\n\t\t[\n\t\t\t,\n\t\t\tmajor,\n\t\t\t,\n\t\t\tminor = \"0\",\n\t\t\t,\n\t\t\tpatch = \"0\",\n\t\t\t,\n\t\t\tbuild,\n\t\t\t,\n\t\t\tpreReleaseType,\n\t\t\tpreReleaseNumber,\n\t\t]: RegExpMatchArray,\n\t\tdescription?: string,\n\t) {\n\t\tlet preRelease: PackageVersion[\"preRelease\"] = undefined;\n\t\tlet buildNumber = 100;\n\n\t\tif (preReleaseType && preReleaseNumber) {\n\t\t\tpreRelease = {\n\t\t\t\ttype: preReleaseType,\n\t\t\t\tversion: parseInt(preReleaseNumber),\n\t\t\t};\n\t\t}\n\n\t\tif (build) {\n\t\t\tbuildNumber = Number(build);\n\t\t} else if (description) {\n\t\t\tconst descriptionMatch = description.match(/(\\d+)\\)$/);\n\n\t\t\tif (descriptionMatch) {\n\t\t\t\tbuildNumber = parseInt(descriptionMatch[1]);\n\t\t\t}\n\t\t}\n\n\t\treturn new PackageVersion(\n\t\t\tparseInt(major),\n\t\t\tparseInt(minor),\n\t\t\tparseInt(patch),\n\t\t\tpreRelease,\n\t\t\tbuildNumber,\n\t\t);\n\t}\n\n\tpublic static sort(\n\t\ta: PackageVersion,\n\t\tb: PackageVersion,\n\t\tascending: boolean = true,\n\t) {\n\t\tconst createSortResult = (a: number, b: number) =>\n\t\t\tascending ? a - b : b - a;\n\n\t\tif (a.major !== b.major) {\n\t\t\treturn createSortResult(a.major, b.major);\n\t\t}\n\n\t\tif (a.minor !== b.minor) {\n\t\t\treturn createSortResult(a.minor, b.minor);\n\t\t}\n\n\t\tif (a.patch !== b.patch) {\n\t\t\treturn createSortResult(a.patch, b.patch);\n\t\t}\n\n\t\treturn createSortResult(\n\t\t\ta.preRelease ? a.preRelease.version : 0,\n\t\t\tb.preRelease ? b.preRelease.version : 0,\n\t\t);\n\t}\n\n\tprivate static toNumber(version: PackageVersion) {\n\t\treturn (\n\t\t\t((version.major * 1000 + version.minor) * 1000 + version.patch) *\n\t\t\t\t1000 +\n\t\t\tversion.buildNumber\n\t\t);\n\t}\n\n\tconstructor(\n\t\tpublic major: number,\n\t\tpublic minor: number,\n\t\tpublic patch: number,\n\t\tpublic preRelease: { type: string; version: number } | undefined,\n\t\tpublic buildNumber: number,\n\t) {}\n\n\tpublic isPreRelease() {\n\t\treturn this.preRelease !== undefined;\n\t}\n\n\tpublic clone() {\n\t\treturn new PackageVersion(\n\t\t\tthis.major,\n\t\t\tthis.minor,\n\t\t\tthis.patch,\n\t\t\tthis.preRelease ? { ...this.preRelease } : undefined,\n\t\t\tthis.buildNumber,\n\t\t);\n\t}\n\n\tpublic incrementMajor() {\n\t\tthis.preRelease = undefined;\n\t\tthis.patch = 0;\n\t\tthis.minor = 0;\n\t\tthis.major++;\n\t}\n\n\tpublic incrementMinor() {\n\t\tthis.preRelease = undefined;\n\t\tthis.patch = 0;\n\t\tthis.minor++;\n\t}\n\n\tpublic incrementPatch() {\n\t\tthis.preRelease = undefined;\n\t\tthis.patch++;\n\t}\n\n\tpublic createPreRelease(type: string) {\n\t\tif (!this.preRelease) {\n\t\t\tthis.buildNumber = 1;\n\t\t} else {\n\t\t\tthis.buildNumber++;\n\t\t}\n\n\t\tif (this.preRelease && type === this.preRelease.type) {\n\t\t\tthis.preRelease.version++;\n\t\t\treturn;\n\t\t}\n\n\t\tthis.preRelease = {\n\t\t\tversion: 0,\n\t\t\ttype,\n\t\t};\n\t}\n\n\tpublic createRelease() {\n\t\tthis.preRelease = undefined;\n\t\tthis.buildNumber = 100;\n\t}\n\n\tpublic toVersionString({\n\t\tbuildNumber,\n\t}: PackageVersionToVersionStringParams = {}) {\n\t\tlet version = [this.major, this.minor, this.patch].join(\".\");\n\n\t\tif (buildNumber) {\n\t\t\tversion += \".\" + this.buildNumber;\n\t\t}\n\n\t\tif (this.preRelease) {\n\t\t\tversion += `-${this.preRelease.type}.${this.preRelease.version}`;\n\t\t}\n\n\t\treturn version;\n\t}\n\n\tpublic toDescriptionString(packageName: string) {\n\t\tconst base = [this.major, this.minor, this.patch].join(\".\");\n\t\tconst parts: (number | string)[] = [packageName, base];\n\n\t\tif (this.preRelease) {\n\t\t\tparts.push(upperCaseFirst(this.preRelease.type));\n\t\t\tparts.push(this.preRelease.version);\n\t\t}\n\n\t\tparts.push(`(${base}.${this.buildNumber})`);\n\n\t\treturn parts.join(\" \");\n\t}\n\n\t/**\n\t * Determines wether the version is lesser than the input version\n\t *\n\t * @param {PackageVersion} version\n\t * @returns\n\t */\n\tpublic isLesserThan(version: PackageVersion) {\n\t\treturn PackageVersion.toNumber(this) < PackageVersion.toNumber(version);\n\t}\n\n\t/**\n\t * Determines wether the version is greater than the input version\n\t *\n\t * @param {PackageVersion} version\n\t * @returns\n\t */\n\tpublic isGreaterThan(version: PackageVersion) {\n\t\treturn PackageVersion.toNumber(this) > PackageVersion.toNumber(version);\n\t}\n}\n\nconst upperCaseFirst = (input: string) => {\n\treturn input.slice(0, 1).toUpperCase() + input.slice(1);\n};\n","import { PackageVersion } from \"./packageVersion\";\n\nexport const parseVersionFromString = (input: string) => {\n\tif (input === undefined) {\n\t\tthrow new Error(`Can not parse version from undefined`);\n\t}\n\n\tlet match: RegExpMatchArray | null;\n\n\tlet major!: string;\n\tlet minor!: string;\n\tlet patch!: string;\n\tlet build: string | undefined;\n\tlet preReleaseType: string | undefined;\n\tlet preReleaseNumber: string | undefined;\n\n\tif (\n\t\t// first try to find a full match with build number\n\t\t(match = input.match(\n\t\t\t/(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)(-([^\\.]+)\\.(\\d+))?/,\n\t\t)) !== null\n\t) {\n\t\t[, major, minor, patch, build, preReleaseType, preReleaseNumber] =\n\t\t\tmatch;\n\t} else if (\n\t\t(match = input.match(/(\\d+)\\.(\\d+)\\.(\\d+)(-([^\\.]+)\\.(\\d+))?/)) !== null\n\t) {\n\t\t[, major, minor, patch, , preReleaseType, preReleaseNumber] = match;\n\t}\n\n\tif (match === null) {\n\t\tthrow new Error(`Could not parse version from input: ${input}`);\n\t}\n\n\tlet preRelease: PackageVersion[\"preRelease\"] = undefined;\n\tlet buildNumber = 100;\n\n\tif (preReleaseType && preReleaseNumber) {\n\t\tpreRelease = {\n\t\t\ttype: preReleaseType,\n\t\t\tversion: parseInt(preReleaseNumber),\n\t\t};\n\t}\n\n\tif (build) {\n\t\tbuildNumber = Number(build);\n\t} else if (input) {\n\t\tconst descriptionMatch = input.match(/(\\d+)\\)$/);\n\n\t\tif (descriptionMatch) {\n\t\t\tbuildNumber = parseInt(descriptionMatch[1]);\n\t\t}\n\t}\n\n\treturn new PackageVersion(\n\t\tparseInt(major),\n\t\tparseInt(minor),\n\t\tparseInt(patch),\n\t\tpreRelease,\n\t\tbuildNumber,\n\t);\n};\n\n// 1000001001 -> 1.0.1.1\n// 1002017001 -> 1.2.17.1\nexport const parseVersionFromNumericVersion = (\n\tversion: number,\n): PackageVersion => {\n\tconst major = Math.floor(version / 1000000000);\n\tconst minor = Math.floor((version % 1000000000) / 1000000);\n\tconst patch = Math.floor((version % 1000000) / 1000);\n\tconst buildNumber = version % 1000;\n\n\treturn new PackageVersion(major, minor, patch, undefined, buildNumber);\n};\n","import * as fs from \"fs\";\nimport * as path from \"path\";\n\nimport { isErrorENOENT } from \"./error\";\nimport { readStringFromFileOrUndefined } from \"./fs\";\nimport { PackageLocation } from \"./package\";\nimport { PackageVersion } from \"./packageVersion\";\n\n// https://regex101.com/r/LtGAu5/1\nconst logRegex =\n\t/console\\.log\\(\\s*\"([\\w\\s\\.\\(\\)]+)\\ *Copyright[\\w\\s\\(\\)\\.]+(\\d{4}|\\d{4} - \\d{4})([\\w\\s\\(\\)\\.]+)?\",?\\s*\\)/i;\nconst currentYear = new Date(Date.now()).getFullYear();\n\nexport const getVersionFileHandler = (location: PackageLocation) => {\n\tconst filePath = path.join(location.scriptsDir, \"Version.ts\");\n\n\tconst invalidVersionFile = (versionFile: string | undefined) => ({\n\t\tversion: undefined,\n\t\twrite: (name: string, newVersion: PackageVersion) => {\n\t\t\tconst scriptsContent = fs.readdirSync(location.scriptsDir);\n\t\t\tconst tsFiles = scriptsContent.filter((file) =>\n\t\t\t\tfile.endsWith(\".ts\"),\n\t\t\t);\n\n\t\t\tif (tsFiles.length > 0) {\n\t\t\t\treturn createVersionFileWriter([currentYear], \"\")(\n\t\t\t\t\tname,\n\t\t\t\t\tnewVersion,\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\treset: () => {\n\t\t\tif (versionFile !== undefined) {\n\t\t\t\tfs.writeFileSync(filePath, versionFile, { encoding: \"utf8\" });\n\t\t\t} else {\n\t\t\t\ttry {\n\t\t\t\t\tfs.rmSync(filePath);\n\t\t\t\t} catch (err) {\n\t\t\t\t\tif (!isErrorENOENT(err)) {\n\t\t\t\t\t\tthrow err;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t});\n\n\ttype CopyrightRange = [number, number?];\n\n\tconst createVersionFileWriter =\n\t\t(\n\t\t\tcopyright: CopyrightRange = [currentYear],\n\t\t\tcopyrightStuff: string = \"\",\n\t\t) =>\n\t\t(name: string, newVersion: PackageVersion) => {\n\t\t\tconst descriptionText = newVersion.toDescriptionString(name);\n\t\t\tconst copyrightText = createYearString(copyright);\n\n\t\t\tconst result = `console.log(\"${descriptionText}. Copyright (C) ${copyrightText}${copyrightStuff}\");`;\n\n\t\t\tfs.writeFileSync(filePath, result, { encoding: \"utf-8\" });\n\t\t};\n\n\tlet rawVersionFile = readStringFromFileOrUndefined(filePath);\n\n\tif (rawVersionFile === undefined) {\n\t\treturn invalidVersionFile(rawVersionFile);\n\t}\n\n\tconst versionFile = rawVersionFile.replace(/\\n/g, \"\");\n\n\tconst match = versionFile.match(logRegex);\n\n\tif (!match) {\n\t\treturn invalidVersionFile(versionFile);\n\t}\n\n\tconst [_full, _description, copyright, copyrightStuff] = match as [\n\t\tstring,\n\t\tstring,\n\t\tstring,\n\t\tstring?,\n\t];\n\n\tconst copyrightYears = copyright.match(/^(\\d+)( ?- ?(\\d+))?$/);\n\n\tlet years: [number, number?];\n\n\tif (copyrightYears === null) {\n\t\tyears = [currentYear];\n\t} else {\n\t\tyears = [Number(copyrightYears[1]), currentYear];\n\t}\n\n\treturn {\n\t\twrite: createVersionFileWriter(years, copyrightStuff),\n\t\treset: () => {\n\t\t\tfs.writeFileSync(filePath, versionFile, { encoding: \"utf8\" });\n\t\t},\n\t};\n};\n\nconst createYearString = (years: [number, number?]) => {\n\tif (years[1] === undefined || years[0] === years[1]) {\n\t\treturn years[0].toString();\n\t}\n\n\treturn `${years[0]} - ${years[1]}`;\n};\n"],"names":["readStringFromFile","filePath","fs","readFileSync","encoding","readStringFromFileOrUndefined","err","isErrorENOENT","undefined","getVersionInformationFromGit","workspaceLocation","packageLocation","log","git","simpleGit","baseDir","path","diff","diffSummary","dirty","files","some","file","toLowerCase","includes","endsWith","fullPath","resolve","relativePath","relative","startsWith","maxCount","commit","latest","hash","substring","commitDate","date","getWorkspaceBannerText","manifest","bannerText","packager","banner","match","startYear","parseInt","endYear","Date","getFullYear","replace","PackageVersion","fullTextMatcher","lineMatcher","extractFromText","input","description","Error","fromMatch","extractFromLine","equals","a","b","checkPrerelease","major","minor","patch","preRelease","type","version","build","preReleaseType","preReleaseNumber","buildNumber","Number","descriptionMatch","sort","ascending","createSortResult","toNumber","constructor","isPreRelease","clone","incrementMajor","incrementMinor","incrementPatch","createPreRelease","createRelease","toVersionString","join","toDescriptionString","packageName","base","parts","push","upperCaseFirst","isLesserThan","isGreaterThan","slice","toUpperCase","parseVersionFromString","parseVersionFromNumericVersion","Math","floor","logRegex","currentYear","now","getVersionFileHandler","location","scriptsDir","invalidVersionFile","versionFile","write","name","newVersion","scriptsContent","readdirSync","tsFiles","filter","length","createVersionFileWriter","reset","writeFileSync","rmSync","copyright","copyrightStuff","descriptionText","copyrightText","createYearString","result","rawVersionFile","_full","_description","copyrightYears","years","toString"],"mappings":"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"}