@intelligentgraphics/ig.gfx.packager 3.0.0-beta.0 → 3.0.0-beta.2

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 (70) hide show
  1. package/build/cli.mjs +44 -338
  2. package/build/cli.mjs.map +1 -1
  3. package/build/commands/build/docs.mjs +34 -0
  4. package/build/commands/build/docs.mjs.map +1 -0
  5. package/build/commands/build/index.mjs +169 -0
  6. package/build/commands/build/index.mjs.map +1 -0
  7. package/build/commands/build/tsc.mjs +84 -0
  8. package/build/commands/build/tsc.mjs.map +1 -0
  9. package/build/commands/{generate.ts.mjs → generate.mjs} +3 -13
  10. package/build/commands/generate.mjs.map +1 -0
  11. package/build/commands/{postinstall.ts.mjs → postinstall.mjs} +4 -11
  12. package/build/commands/postinstall.mjs.map +1 -0
  13. package/build/commands/{publish.mjs → publish/index.mjs} +20 -288
  14. package/build/commands/publish/index.mjs.map +1 -0
  15. package/build/commands/publish/zip.mjs +168 -0
  16. package/build/commands/publish/zip.mjs.map +1 -0
  17. package/build/commands/{publishNpm.ts.mjs → publishNpm.mjs} +11 -19
  18. package/build/commands/publishNpm.mjs.map +1 -0
  19. package/build/index.mjs +1 -1
  20. package/build/index.mjs.map +1 -1
  21. package/build/lib/assetService.mjs +111 -0
  22. package/build/lib/assetService.mjs.map +1 -0
  23. package/build/lib/banner.mjs +20 -0
  24. package/build/lib/banner.mjs.map +1 -0
  25. package/build/{dependencies.mjs → lib/dependencies.mjs} +4 -64
  26. package/build/lib/dependencies.mjs.map +1 -0
  27. package/build/lib/error.mjs +15 -0
  28. package/build/lib/error.mjs.map +1 -0
  29. package/build/lib/fs.mjs +19 -0
  30. package/build/lib/fs.mjs.map +1 -0
  31. package/build/lib/git.mjs +37 -0
  32. package/build/lib/git.mjs.map +1 -0
  33. package/build/lib/localization.mjs +16 -0
  34. package/build/lib/localization.mjs.map +1 -0
  35. package/build/lib/log.mjs +9 -0
  36. package/build/lib/log.mjs.map +1 -0
  37. package/build/lib/npmPackage.mjs +19 -0
  38. package/build/lib/npmPackage.mjs.map +1 -0
  39. package/build/lib/package.mjs +129 -0
  40. package/build/lib/package.mjs.map +1 -0
  41. package/build/lib/packageVersion.mjs +174 -0
  42. package/build/lib/packageVersion.mjs.map +1 -0
  43. package/build/lib/parseVersion.mjs +54 -0
  44. package/build/lib/parseVersion.mjs.map +1 -0
  45. package/build/lib/prompter.mjs +31 -0
  46. package/build/lib/prompter.mjs.map +1 -0
  47. package/build/lib/publishedPackage.mjs +66 -0
  48. package/build/lib/publishedPackage.mjs.map +1 -0
  49. package/build/{scripts.mjs → lib/scripts.mjs} +1 -2
  50. package/build/lib/scripts.mjs.map +1 -0
  51. package/build/lib/stripUtf8Bom.mjs +11 -0
  52. package/build/lib/stripUtf8Bom.mjs.map +1 -0
  53. package/build/lib/toposort.mjs +26 -0
  54. package/build/lib/toposort.mjs.map +1 -0
  55. package/build/lib/versionFile.mjs +78 -0
  56. package/build/lib/versionFile.mjs.map +1 -0
  57. package/build/lib/workspace.mjs +51 -0
  58. package/build/lib/workspace.mjs.map +1 -0
  59. package/package.json +2 -2
  60. package/readme.md +9 -0
  61. package/build/commands/build.mjs +0 -326
  62. package/build/commands/build.mjs.map +0 -1
  63. package/build/commands/generate.ts.mjs.map +0 -1
  64. package/build/commands/postinstall.ts.mjs.map +0 -1
  65. package/build/commands/publish.mjs.map +0 -1
  66. package/build/commands/publishNpm.ts.mjs.map +0 -1
  67. package/build/dependencies.mjs.map +0 -1
  68. package/build/scripts.mjs.map +0 -1
  69. package/build/versionFile.mjs +0 -365
  70. package/build/versionFile.mjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"publishNpm.ts.mjs","sources":["../../src/commands/publishNpm.ts"],"sourcesContent":["import * as path from \"path\";\nimport * as fs from \"fs\";\nimport { spawnSync } from \"child_process\";\n\nimport { PackageVersion } from \"../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 =\n\t\tworkspaceManifest !== undefined\n\t\t\t? getWorkspaceBannerText(workspaceManifest)\n\t\t\t: undefined;\n\n\tawait buildFolders({\n\t\tcwd: workspace.path,\n\t\tdirectories: [location.path],\n\t\tminimize: true,\n\t\toutDir: getWorkspaceOutputPath(workspace),\n\t\tbanner: {\n\t\t\ttext: bannerText,\n\t\t\tcommit: gitVersionInformation.commit,\n\t\t\tcommitDirty: gitVersionInformation.dirty,\n\t\t\tversion: newVersion.toVersionString({\n\t\t\t\tbuildNumber: true,\n\t\t\t}),\n\t\t\tdate: new Date(Date.now()),\n\t\t},\n\t});\n\n\tfs.copyFileSync(\n\t\tpath.join(\n\t\t\tgetWorkspaceOutputPath(workspace),\n\t\t\t`${creatorPackage.Package}.d.ts`,\n\t\t),\n\t\tpath.join(publishDir, `${creatorPackage.Package}.d.ts`),\n\t);\n\tfs.copyFileSync(\n\t\tpath.join(\n\t\t\tgetWorkspaceOutputPath(workspace),\n\t\t\t`${creatorPackage.Package}.min.js`,\n\t\t),\n\t\tpath.join(publishDir, `${creatorPackage.Package}.js`),\n\t);\n\n\tfs.copyFileSync(\n\t\tpath.join(location.manifestDir, \"package.json\"),\n\t\tpath.join(publishDir, \"package.json\"),\n\t);\n\n\tfs.writeFileSync(\n\t\tpath.join(publishDir, PACKAGE_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\tspawnSync(\"npm\", [\"publish\", ...npmPublishArgs], {\n\t\tstdio: \"inherit\",\n\t\tencoding: \"utf8\",\n\t\tcwd: publishDir,\n\t});\n\n\tfor (const packageLocation of iterateWorkspacePackages(workspace)) {\n\t\tconst manifest = readPackageNpmManifest(packageLocation);\n\n\t\tif (manifest?.dependencies?.[packageJson.name] !== undefined) {\n\t\t\tmanifest.dependencies[packageJson.name] = \"^\" + packageJson.version;\n\t\t\twritePackageNpmManifest(packageLocation, manifest);\n\t\t}\n\t}\n};\n"],"names":["publishToNpm","workspace","location","version","providedVersion","dryRun","newVersion","parseVersionFromString","err","Error","buildNumber","preRelease","type","undefined","workspaceManifest","readWorkspaceNpmManifest","workspaceOutputPath","getWorkspaceOutputPath","creatorPackage","readPackageCreatorManifest","packageJson","readPackageNpmManifest","name","Package","toLowerCase","description","toVersionString","toDescriptionString","main","types","publishConfig","acccess","ig","scriptingLibrary","files","publishDir","path","join","fs","rmSync","recursive","force","mkdirSync","writePackageNpmManifest","getVersionFileHandler","write","gitVersionInformation","getVersionInformationFromGit","bannerText","getWorkspaceBannerText","buildFolders","cwd","directories","minimize","outDir","banner","text","commit","commitDirty","dirty","date","Date","now","copyFileSync","manifestDir","writeFileSync","PACKAGE_FILE","JSON","stringify","index","readPackageCreatorIndex","INDEX_FILE","readmeName","readdirSync","find","npmPublishArgs","push","logPackageMessage","spawnSync","stdio","encoding","packageLocation","iterateWorkspacePackages","manifest","dependencies"],"mappings":";;;;;;;;;;;;;;;;;;;;AAmCO,MAAMA,YAAY,GAAG,OAAO;EAClCC,SAAS;EACTC,QAAQ;AACRC,EAAAA,OAAO,EAAEC,eAAe;AACxBC,EAAAA,MAAAA;AACqB,CAAC,KAAK;AAC3B,EAAA,IAAIC,UAA0B,CAAA;EAC9B,IAAI;AACHA,IAAAA,UAAU,GAAGC,sBAAsB,CAACH,eAAe,CAAC,CAAA;GACpD,CAAC,OAAOI,GAAG,EAAE;AACb,IAAA,MAAM,IAAIC,KAAK,CAAE,CAAA,+CAAA,CAAgD,CAAC,CAAA;AACnE,GAAA;AAEA,EAAA,IAAIH,UAAU,CAACI,WAAW,GAAG,GAAG,EAAE;IACjCJ,UAAU,CAACK,UAAU,GAAG;AACvBC,MAAAA,IAAI,EAAE,MAAM;MACZT,OAAO,EAAEG,UAAU,CAACI,WAAAA;KACpB,CAAA;AACF,GAAC,MAAM,IAAIJ,UAAU,CAACI,WAAW,KAAK,GAAG,EAAE;IAC1CJ,UAAU,CAACK,UAAU,GAAGE,SAAS,CAAA;AAClC,GAAC,MAAM;AACN,IAAA,MAAM,IAAIJ,KAAK,CACb,CAAA,mEAAA,CAAoE,CACrE,CAAA;AACF,GAAA;AAEA,EAAA,MAAMK,iBAAiB,GAAGC,wBAAwB,CAACd,SAAS,CAAC,CAAA;AAC7D,EAAA,MAAMe,mBAAmB,GAAGC,sBAAsB,CAAChB,SAAS,CAAC,CAAA;AAC7D,EAAA,MAAMiB,cAAc,GAAGC,0BAA0B,CAACjB,QAAQ,CAAC,CAAA;AAC3D,EAAA,IAAIkB,WAAW,GAAGC,sBAAsB,CAACnB,QAAQ,CAAC,CAAA;EAElD,IAAIkB,WAAW,KAAKP,SAAS,EAAE;AAC9BO,IAAAA,WAAW,GAAG;MACbE,IAAI,EACH,yBAAyB,GACzBJ,cAAc,CAACK,OAAO,CAACC,WAAW,EAAE;AACrCrB,MAAAA,OAAO,EAAE,OAAO;MAChBsB,WAAW,EAAEP,cAAc,CAACK,OAAAA;KAC5B,CAAA;AACF,GAAA;AAEAH,EAAAA,WAAW,CAACjB,OAAO,GAAGG,UAAU,CAACoB,eAAe,CAAC;AAChDhB,IAAAA,WAAW,EAAE,KAAA;AACd,GAAC,CAAC,CAAA;EACFU,WAAW,CAACK,WAAW,GAAGnB,UAAU,CAACqB,mBAAmB,CACvDT,cAAc,CAACK,OAAO,CACtB,CAAA;AACDH,EAAAA,WAAW,CAACQ,IAAI,GAAI,GAAEV,cAAc,CAACK,OAAQ,CAAI,GAAA,CAAA,CAAA;AACjDH,EAAAA,WAAW,CAACS,KAAK,GAAI,GAAEX,cAAc,CAACK,OAAQ,CAAM,KAAA,CAAA,CAAA;AACpDH,EAAAA,WAAW,CAACU,aAAa,KAAK,EAAE,CAAA;AAChCV,EAAAA,WAAW,CAACU,aAAa,CAACC,OAAO,GAAG,QAAQ,CAAA;EAC5CX,WAAW,CAACY,EAAE,GAAG;AAChBC,IAAAA,gBAAgB,EAAE,IAAA;GAClB,CAAA;EACDb,WAAW,CAACc,KAAK,GAAGrB,SAAS,CAAA;AAE7B,EAAA,MAAMsB,UAAU,GAAGC,IAAI,CAACC,IAAI,CAC3BrB,mBAAmB,EACnB,SAAS,EACTE,cAAc,CAACK,OAAO,CACtB,CAAA;AACDe,EAAAA,EAAE,CAACC,MAAM,CAACJ,UAAU,EAAE;AAAEK,IAAAA,SAAS,EAAE,IAAI;AAAEC,IAAAA,KAAK,EAAE,IAAA;AAAK,GAAC,CAAC,CAAA;AACvDH,EAAAA,EAAE,CAACI,SAAS,CAACP,UAAU,EAAE;AAAEK,IAAAA,SAAS,EAAE,IAAA;AAAK,GAAC,CAAC,CAAA;AAE7CG,EAAAA,uBAAuB,CAACzC,QAAQ,EAAEkB,WAAW,CAAC,CAAA;EAE9CwB,qBAAqB,CAAC1C,QAAQ,CAAC,CAAC2C,KAAK,CAAC3B,cAAc,CAACK,OAAO,EAAEjB,UAAU,CAAC,CAAA;EAEzE,MAAMwC,qBAAqB,GAAG,MAAMC,4BAA4B,CAC/D9C,SAAS,EACTC,QAAQ,CACR,CAAA;EAED,MAAM8C,UAAU,GACflC,iBAAiB,KAAKD,SAAS,GAC5BoC,sBAAsB,CAACnC,iBAAiB,CAAC,GACzCD,SAAS,CAAA;AAEb,EAAA,MAAMqC,YAAY,CAAC;IAClBC,GAAG,EAAElD,SAAS,CAACmC,IAAI;AACnBgB,IAAAA,WAAW,EAAE,CAAClD,QAAQ,CAACkC,IAAI,CAAC;AAC5BiB,IAAAA,QAAQ,EAAE,IAAI;AACdC,IAAAA,MAAM,EAAErC,sBAAsB,CAAChB,SAAS,CAAC;AACzCsD,IAAAA,MAAM,EAAE;AACPC,MAAAA,IAAI,EAAER,UAAU;MAChBS,MAAM,EAAEX,qBAAqB,CAACW,MAAM;MACpCC,WAAW,EAAEZ,qBAAqB,CAACa,KAAK;AACxCxD,MAAAA,OAAO,EAAEG,UAAU,CAACoB,eAAe,CAAC;AACnChB,QAAAA,WAAW,EAAE,IAAA;AACd,OAAC,CAAC;AACFkD,MAAAA,IAAI,EAAE,IAAIC,IAAI,CAACA,IAAI,CAACC,GAAG,EAAE,CAAA;AAC1B,KAAA;AACD,GAAC,CAAC,CAAA;AAEFxB,EAAAA,EAAE,CAACyB,YAAY,CACd3B,IAAI,CAACC,IAAI,CACRpB,sBAAsB,CAAChB,SAAS,CAAC,EAChC,GAAEiB,cAAc,CAACK,OAAQ,CAAA,KAAA,CAAM,CAChC,EACDa,IAAI,CAACC,IAAI,CAACF,UAAU,EAAG,CAAA,EAAEjB,cAAc,CAACK,OAAQ,CAAA,KAAA,CAAM,CAAC,CACvD,CAAA;AACDe,EAAAA,EAAE,CAACyB,YAAY,CACd3B,IAAI,CAACC,IAAI,CACRpB,sBAAsB,CAAChB,SAAS,CAAC,EAChC,GAAEiB,cAAc,CAACK,OAAQ,CAAA,OAAA,CAAQ,CAClC,EACDa,IAAI,CAACC,IAAI,CAACF,UAAU,EAAG,CAAA,EAAEjB,cAAc,CAACK,OAAQ,CAAA,GAAA,CAAI,CAAC,CACrD,CAAA;EAEDe,EAAE,CAACyB,YAAY,CACd3B,IAAI,CAACC,IAAI,CAACnC,QAAQ,CAAC8D,WAAW,EAAE,cAAc,CAAC,EAC/C5B,IAAI,CAACC,IAAI,CAACF,UAAU,EAAE,cAAc,CAAC,CACrC,CAAA;EAEDG,EAAE,CAAC2B,aAAa,CACf7B,IAAI,CAACC,IAAI,CAACF,UAAU,EAAE+B,YAAY,CAAC,EACnCC,IAAI,CAACC,SAAS,CAAClD,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CACvC,CAAA;AAED,EAAA,MAAMmD,KAAK,GAAGC,uBAAuB,CAACpE,QAAQ,CAAC,CAAA;EAE/C,IAAImE,KAAK,KAAKxD,SAAS,EAAE;AACxByB,IAAAA,EAAE,CAAC2B,aAAa,CACf7B,IAAI,CAACC,IAAI,CAACF,UAAU,EAAEoC,UAAU,CAAC,EACjCJ,IAAI,CAACC,SAAS,CAACC,KAAK,CAAC,CACrB,CAAA;AACF,GAAA;EAEA,MAAMG,UAAU,GAAGlC,EAAE,CACnBmC,WAAW,CAACvE,QAAQ,CAACkC,IAAI,CAAC,CAC1BsC,IAAI,CAAEpD,IAAI,IAAKA,IAAI,CAACE,WAAW,EAAE,KAAK,WAAW,CAAC,CAAA;EAEpD,IAAIgD,UAAU,KAAK3D,SAAS,EAAE;IAC7ByB,EAAE,CAACyB,YAAY,CACd3B,IAAI,CAACC,IAAI,CAACnC,QAAQ,CAACkC,IAAI,EAAEoC,UAAU,CAAC,EACpCpC,IAAI,CAACC,IAAI,CAACF,UAAU,EAAEqC,UAAU,CAAC,CACjC,CAAA;AACF,GAAA;EAEA,MAAMG,cAAwB,GAAG,EAAE,CAAA;AAEnC,EAAA,IAAItE,MAAM,EAAE;AACXsE,IAAAA,cAAc,CAACC,IAAI,CAAC,WAAW,CAAC,CAAA;AACjC,GAAA;EAEA,IAAItE,UAAU,CAACK,UAAU,EAAE;AAC1BgE,IAAAA,cAAc,CAACC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;AACrC,GAAA;AAEAC,EAAAA,iBAAiB,CAChB3D,cAAc,CAACK,OAAO,EACrB,CAAA,+BAAA,EAAiCH,WAAW,CAACjB,OAAQ,CACrDG,WAAAA,EAAAA,UAAU,CAACK,UAAU,GAAG,MAAM,GAAG,QACjC,EAAC,CACF,CAAA;EAEDmE,SAAS,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,GAAGH,cAAc,CAAC,EAAE;AAChDI,IAAAA,KAAK,EAAE,SAAS;AAChBC,IAAAA,QAAQ,EAAE,MAAM;AAChB7B,IAAAA,GAAG,EAAEhB,UAAAA;AACN,GAAC,CAAC,CAAA;AAEF,EAAA,KAAK,MAAM8C,eAAe,IAAIC,wBAAwB,CAACjF,SAAS,CAAC,EAAE;AAAA,IAAA,IAAA,qBAAA,CAAA;AAClE,IAAA,MAAMkF,QAAQ,GAAG9D,sBAAsB,CAAC4D,eAAe,CAAC,CAAA;AAExD,IAAA,IAAI,CAAAE,QAAQ,KAAA,IAAA,IAARA,QAAQ,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAA,qBAAA,GAARA,QAAQ,CAAEC,YAAY,MAAtB,IAAA,IAAA,qBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,qBAAA,CAAyBhE,WAAW,CAACE,IAAI,CAAC,MAAKT,SAAS,EAAE;AAC7DsE,MAAAA,QAAQ,CAACC,YAAY,CAAChE,WAAW,CAACE,IAAI,CAAC,GAAG,GAAG,GAAGF,WAAW,CAACjB,OAAO,CAAA;AACnEwC,MAAAA,uBAAuB,CAACsC,eAAe,EAAEE,QAAQ,CAAC,CAAA;AACnD,KAAA;AACD,GAAA;AACD;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"dependencies.mjs","sources":["../src/lib/publishedPackage.ts","../src/lib/dependencies.ts"],"sourcesContent":["import * as path from \"path\";\nimport * as fs from \"fs\";\nimport resolve from \"resolve\";\n\nimport { readNpmManifest } from \"./npmPackage\";\nimport {\n\tCreatorPackage,\n\tINDEX_FILE,\n\tPackageNpmManifest,\n\tPACKAGE_FILE,\n} from \"./package\";\nimport { isErrorENOENT } from \"./error\";\nimport { WorkspaceLocation } from \"./workspace\";\nimport { stripUtf8Bom } from \"./stripUtf8Bom\";\n\n/**\n * Describes the location of a single published package.\n *\n * I.e. node_modules/@intelligentgraphics/3d.ig.gfx.core\n *\n * @export\n * @interface PublishedPackageLocation\n */\nexport interface PublishedPackageLocation {\n\t_kind: \"PublishedPackageLocation\";\n\tpath: string;\n}\n\nexport const detectPublishedPackageByModuleName = (\n\tworkspace: WorkspaceLocation,\n\tname: string,\n) => {\n\tconst manifestPath = resolve.sync(name + \"/package.json\", {\n\t\tbasedir: workspace.path,\n\t});\n\tconst dir = path.dirname(manifestPath);\n\treturn detectPublishedPackage(dir);\n};\n\nexport const detectPublishedPackage = (\n\tpath: string,\n): PublishedPackageLocation => ({\n\t_kind: \"PublishedPackageLocation\",\n\tpath,\n});\n\nexport const readPublishedPackageNpmManifest = (\n\tlocation: PublishedPackageLocation,\n): PackageNpmManifest => {\n\treturn readNpmManifest<PackageNpmManifest>(location.path);\n};\n\nexport const readPublishedPackageCreatorManifest = (\n\tlocation: PublishedPackageLocation,\n): CreatorPackage | undefined => {\n\ttry {\n\t\tconst packageJsonPath = path.join(location.path, PACKAGE_FILE);\n\t\tconst packageJson = stripUtf8Bom(\n\t\t\tfs.readFileSync(packageJsonPath, {\n\t\t\t\tencoding: \"utf8\",\n\t\t\t}),\n\t\t);\n\t\tconst result: Omit<CreatorPackage, \"Scope\"> & { Scope?: string } =\n\t\t\tJSON.parse(packageJson);\n\t\treturn {\n\t\t\t...result,\n\t\t\tScope: result.Scope || result.Package,\n\t\t};\n\t} catch (err) {\n\t\tif (isErrorENOENT(err)) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tthrow err;\n\t}\n};\n\nexport const readPublishedPackageCreatorIndex = (\n\tlocation: PublishedPackageLocation,\n) => {\n\ttry {\n\t\tconst packageJsonPath = path.join(location.path, INDEX_FILE);\n\t\tconst packageJson = stripUtf8Bom(\n\t\t\tfs.readFileSync(packageJsonPath, {\n\t\t\t\tencoding: \"utf8\",\n\t\t\t}),\n\t\t);\n\t\tconst result: object = JSON.parse(packageJson);\n\t\treturn result;\n\t} catch (err) {\n\t\tif (isErrorENOENT(err)) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tthrow err;\n\t}\n};\n","import { CreatorPackage } from \"./package\";\nimport { PackageJSON } from \"./packageJSON\";\nimport {\n\tdetectPublishedPackageByModuleName,\n\tPublishedPackageLocation,\n\treadPublishedPackageCreatorManifest,\n\treadPublishedPackageNpmManifest,\n} from \"./publishedPackage\";\nimport { readWorkspaceNpmManifest, WorkspaceLocation } from \"./workspace\";\n\n// /**\n// * Determines the implicit dependencies of a an actual data workspace package.\n// *\n// * An implicit dependency is a dependency that is installed for the workspace and has the same runtime environment (evaluator, interactor) as the package.\n// *\n// * @param {WorkspaceLocation} workspace\n// * @param {CreatorPackage} creatorPackage\n// * @returns {PublishedPackageLocation[]}\n// */\n// export const determinePackageImplicitDependencies = (\n// \tworkspace: WorkspaceLocation,\n// \tcreatorPackage: CreatorPackage,\n// ): PublishedPackageLocation[] => {\n// \tconst libraries = determineWorkspaceIGLibraries(workspace);\n\n// \tconst results: PublishedPackageLocation[] = [];\n// \tfor (const librarylocation of libraries) {\n// \t\tconst libraryManifest =\n// \t\t\treadPublishedPackageCreatorManifest(librarylocation);\n\n// \t\tif (\n// \t\t\tlibraryManifest !== undefined &&\n// \t\t\t(libraryManifest.Type === \"Mixed\" ||\n// \t\t\t\tlibraryManifest.RunTime === creatorPackage.RunTime)\n// \t\t) {\n// \t\t\tresults.push(librarylocation);\n// \t\t}\n// \t}\n\n// \treturn results;\n// };\n\n/**\n * Recursively determines all installed ig libraries for a workspace.\n *\n * @param {WorkspaceLocation} workspace\n * @returns {PublishedPackageLocation[]}\n */\nexport const determineWorkspaceIGLibraries = (\n\tworkspace: WorkspaceLocation,\n): PublishedPackageLocation[] => {\n\tconst manifest = readWorkspaceNpmManifest(workspace);\n\n\tif (manifest === undefined) {\n\t\treturn [];\n\t}\n\n\tconst libraries = collectIGLibraries(workspace, manifest);\n\tconst results = new Map<string, PublishedPackageLocation>();\n\n\tfor (const location of libraries) {\n\t\tconst manifest = readPublishedPackageNpmManifest(location);\n\t\tif (!results.has(manifest.name)) {\n\t\t\tresults.set(manifest.name, location);\n\t\t}\n\t}\n\n\treturn Array.from(results.values());\n};\n\nconst collectIGLibraries = (\n\tworkspace: WorkspaceLocation,\n\tmanifest: PackageJSON,\n): PublishedPackageLocation[] => {\n\tif (!manifest.dependencies) {\n\t\treturn [];\n\t}\n\n\tconst runtimeDependencies = Object.getOwnPropertyNames(\n\t\tmanifest.dependencies,\n\t);\n\n\tconst result: PublishedPackageLocation[] = [];\n\n\tfor (const runtimeDependency of runtimeDependencies) {\n\t\tconst location = detectPublishedPackageByModuleName(\n\t\t\tworkspace,\n\t\t\truntimeDependency,\n\t\t);\n\n\t\tconst runtimeManifest = readPublishedPackageNpmManifest(location);\n\n\t\t// packages need to explicitly be marked as ig scriptingLibraries\n\t\tif (runtimeManifest.ig?.scriptingLibrary) {\n\t\t\tresult.push(location);\n\t\t\tresult.push(...collectIGLibraries(workspace, runtimeManifest));\n\t\t}\n\t}\n\n\treturn result;\n};\n"],"names":["detectPublishedPackageByModuleName","workspace","name","manifestPath","resolve","sync","basedir","path","dir","dirname","detectPublishedPackage","_kind","readPublishedPackageNpmManifest","location","readNpmManifest","readPublishedPackageCreatorManifest","packageJsonPath","join","PACKAGE_FILE","packageJson","stripUtf8Bom","fs","readFileSync","encoding","result","JSON","parse","Scope","Package","err","isErrorENOENT","undefined","readPublishedPackageCreatorIndex","INDEX_FILE","determineWorkspaceIGLibraries","manifest","readWorkspaceNpmManifest","libraries","collectIGLibraries","results","Map","has","set","Array","from","values","dependencies","runtimeDependencies","Object","getOwnPropertyNames","runtimeDependency","runtimeManifest","ig","scriptingLibrary","push"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"scripts.mjs","sources":["../src/lib/scripts.ts"],"sourcesContent":["import glob from \"glob\";\n\nimport { PackageLocation } from \"./package\";\n\nexport const getPackageTypescriptFiles = (location: PackageLocation) =>\n\tglob.sync(\"**/*.ts\", {\n\t\tabsolute: true,\n\t\tcwd: location.scriptsDir,\n\t\tignore: \"node_modules/**/*\",\n\t});\n"],"names":["getPackageTypescriptFiles","location","glob","sync","absolute","cwd","scriptsDir","ignore"],"mappings":";;;AAIO,MAAMA,yBAAyB,GAAIC,QAAyB,IAClEC,IAAI,CAACC,IAAI,CAAC,SAAS,EAAE;AACpBC,EAAAA,QAAQ,EAAE,IAAI;EACdC,GAAG,EAAEJ,QAAQ,CAACK,UAAU;AACxBC,EAAAA,MAAM,EAAE,mBAAA;AACT,CAAC;;;;"}
@@ -1,365 +0,0 @@
1
- #!/usr/bin/env node
2
- import simpleGit from 'simple-git';
3
- import * as path from 'path';
4
- import * as fs from 'fs';
5
- import { i as isErrorENOENT } from './cli.mjs';
6
-
7
- const getVersionInformationFromGit = async (workspaceLocation, packageLocation) => {
8
- try {
9
- var _log$latest, _log$latest2;
10
- const git = simpleGit({
11
- baseDir: workspaceLocation.path
12
- });
13
-
14
- // check wether the files for a folder are changed
15
- // if so, mark as dirty
16
- const diff = await git.diffSummary();
17
- const dirty = diff.files.some(file => {
18
- if (file.file.toLowerCase().includes("releases") || file.file.toLowerCase().endsWith("version.ts") || file.file.toLowerCase().endsWith("package.json")) {
19
- return false;
20
- }
21
- const fullPath = path.resolve(workspaceLocation.path, file.file);
22
- const relativePath = path.relative(packageLocation.path, fullPath);
23
- return !relativePath.startsWith("..");
24
- });
25
- const log = await git.log({
26
- maxCount: 1
27
- });
28
- const commit = !((_log$latest = log.latest) !== null && _log$latest !== void 0 && _log$latest.hash) ? undefined : log.latest.hash.substring(0, 7);
29
- return {
30
- commit,
31
- dirty,
32
- commitDate: (_log$latest2 = log.latest) === null || _log$latest2 === void 0 ? void 0 : _log$latest2.date
33
- };
34
- } catch (err) {
35
- return {};
36
- }
37
- };
38
-
39
- const getWorkspaceBannerText = manifest => {
40
- var _manifest$packager;
41
- let bannerText = manifest === null || manifest === void 0 ? void 0 : (_manifest$packager = manifest.packager) === null || _manifest$packager === void 0 ? void 0 : _manifest$packager.banner;
42
- if (bannerText) {
43
- const match = bannerText.match(/Copyright \(C\) (\d+)( ?- ?(\d+))?/);
44
- if (match !== null) {
45
- const startYear = parseInt(match[1]);
46
- const endYear = new Date().getFullYear();
47
- if (startYear !== endYear) {
48
- bannerText = bannerText.replace(match[0], `Copyright (C) ${startYear} - ${endYear}`);
49
- } else {
50
- bannerText = bannerText.replace(match[0], `Copyright (C) ${startYear}`);
51
- }
52
- }
53
- }
54
- return bannerText;
55
- };
56
-
57
- // Stolen from ig.tools.core
58
-
59
- class PackageVersion {
60
- // https://regex101.com/r/90PEY9/1
61
- static fullTextMatcher = /(\d+)(\.(\d+)(\.(\d+)(\.(\d+))?(-([^\.]+)\.(\d+))?)?)?/;
62
- static lineMatcher = /^(\d+)(\.(\d+)(\.(\d+)(\.(\d+))?(-([^\.]+)\.(\d+))?)?)?$/;
63
- static extractFromText(input, description) {
64
- if (input === undefined) {
65
- throw new Error(`Can not parse version from undefined`);
66
- }
67
- const match = input.match(PackageVersion.fullTextMatcher);
68
- if (!match) {
69
- throw new Error(`Could not extract a version from input: ${input}`);
70
- }
71
- return PackageVersion.fromMatch(match, description);
72
- }
73
- static extractFromLine(input, description) {
74
- if (input === undefined) {
75
- throw new Error(`Can not parse version from undefined`);
76
- }
77
- const match = input.match(PackageVersion.lineMatcher);
78
- if (!match) {
79
- throw new Error(`Could not parse version from input: ${input}`);
80
- }
81
- return PackageVersion.fromMatch(match, description);
82
- }
83
- static equals(a, b, checkPrerelease = false) {
84
- if (a.major !== b.major || a.minor !== b.minor || a.patch !== b.patch) {
85
- return false;
86
- }
87
- if (checkPrerelease === false) {
88
- return true;
89
- }
90
- if (a.preRelease === b.preRelease) {
91
- return true;
92
- }
93
- if (a.preRelease === undefined || b.preRelease === undefined) {
94
- return false;
95
- }
96
- return a.preRelease.type === b.preRelease.type && a.preRelease.version === b.preRelease.version;
97
- }
98
- static fromMatch([, major,, minor = "0",, patch = "0",, build,, preReleaseType, preReleaseNumber], description) {
99
- let preRelease = undefined;
100
- let buildNumber = 100;
101
- if (preReleaseType && preReleaseNumber) {
102
- preRelease = {
103
- type: preReleaseType,
104
- version: parseInt(preReleaseNumber)
105
- };
106
- }
107
- if (build) {
108
- buildNumber = Number(build);
109
- } else if (description) {
110
- const descriptionMatch = description.match(/(\d+)\)$/);
111
- if (descriptionMatch) {
112
- buildNumber = parseInt(descriptionMatch[1]);
113
- }
114
- }
115
- return new PackageVersion(parseInt(major), parseInt(minor), parseInt(patch), preRelease, buildNumber);
116
- }
117
- static sort(a, b, ascending = true) {
118
- const createSortResult = (a, b) => ascending ? a - b : b - a;
119
- if (a.major !== b.major) {
120
- return createSortResult(a.major, b.major);
121
- }
122
- if (a.minor !== b.minor) {
123
- return createSortResult(a.minor, b.minor);
124
- }
125
- if (a.patch !== b.patch) {
126
- return createSortResult(a.patch, b.patch);
127
- }
128
- return createSortResult(a.preRelease ? a.preRelease.version : 0, b.preRelease ? b.preRelease.version : 0);
129
- }
130
- static toNumber(version) {
131
- return ((version.major * 1000 + version.minor) * 1000 + version.patch) * 1000 + version.buildNumber;
132
- }
133
- constructor(major, minor, patch, preRelease, buildNumber) {
134
- this.major = major;
135
- this.minor = minor;
136
- this.patch = patch;
137
- this.preRelease = preRelease;
138
- this.buildNumber = buildNumber;
139
- }
140
- isPreRelease() {
141
- return this.preRelease !== undefined;
142
- }
143
- clone() {
144
- return new PackageVersion(this.major, this.minor, this.patch, this.preRelease ? {
145
- ...this.preRelease
146
- } : undefined, this.buildNumber);
147
- }
148
- incrementMajor() {
149
- this.preRelease = undefined;
150
- this.patch = 0;
151
- this.minor = 0;
152
- this.major++;
153
- }
154
- incrementMinor() {
155
- this.preRelease = undefined;
156
- this.patch = 0;
157
- this.minor++;
158
- }
159
- incrementPatch() {
160
- this.preRelease = undefined;
161
- this.patch++;
162
- }
163
- createPreRelease(type) {
164
- if (!this.preRelease) {
165
- this.buildNumber = 1;
166
- } else {
167
- this.buildNumber++;
168
- }
169
- if (this.preRelease && type === this.preRelease.type) {
170
- this.preRelease.version++;
171
- return;
172
- }
173
- this.preRelease = {
174
- version: 0,
175
- type
176
- };
177
- }
178
- createRelease() {
179
- this.preRelease = undefined;
180
- this.buildNumber = 100;
181
- }
182
- toVersionString({
183
- buildNumber
184
- } = {}) {
185
- let version = [this.major, this.minor, this.patch].join(".");
186
- if (buildNumber) {
187
- version += "." + this.buildNumber;
188
- }
189
- if (this.preRelease) {
190
- version += `-${this.preRelease.type}.${this.preRelease.version}`;
191
- }
192
- return version;
193
- }
194
- toDescriptionString(packageName) {
195
- const base = [this.major, this.minor, this.patch].join(".");
196
- const parts = [packageName, base];
197
- if (this.preRelease) {
198
- parts.push(upperCaseFirst(this.preRelease.type));
199
- parts.push(this.preRelease.version);
200
- }
201
- parts.push(`(${base}.${this.buildNumber})`);
202
- return parts.join(" ");
203
- }
204
-
205
- /**
206
- * Determines wether the version is lesser than the input version
207
- *
208
- * @param {PackageVersion} version
209
- * @returns
210
- */
211
- isLesserThan(version) {
212
- return PackageVersion.toNumber(this) < PackageVersion.toNumber(version);
213
- }
214
-
215
- /**
216
- * Determines wether the version is greater than the input version
217
- *
218
- * @param {PackageVersion} version
219
- * @returns
220
- */
221
- isGreaterThan(version) {
222
- return PackageVersion.toNumber(this) > PackageVersion.toNumber(version);
223
- }
224
- }
225
- const upperCaseFirst = input => {
226
- return input.slice(0, 1).toUpperCase() + input.slice(1);
227
- };
228
-
229
- const parseVersionFromString = input => {
230
- if (input === undefined) {
231
- throw new Error(`Can not parse version from undefined`);
232
- }
233
- let match;
234
- let major;
235
- let minor;
236
- let patch;
237
- let build;
238
- let preReleaseType;
239
- let preReleaseNumber;
240
- if (
241
- // first try to find a full match with build number
242
- (match = input.match(/(\d+)\.(\d+)\.(\d+)\.(\d+)(-([^\.]+)\.(\d+))?/)) !== null) {
243
- [, major, minor, patch, build, preReleaseType, preReleaseNumber] = match;
244
- } else if ((match = input.match(/(\d+)\.(\d+)\.(\d+)(-([^\.]+)\.(\d+))?/)) !== null) {
245
- [, major, minor, patch,, preReleaseType, preReleaseNumber] = match;
246
- }
247
- if (match === null) {
248
- throw new Error(`Could not parse version from input: ${input}`);
249
- }
250
- let preRelease = undefined;
251
- let buildNumber = 100;
252
- if (preReleaseType && preReleaseNumber) {
253
- preRelease = {
254
- type: preReleaseType,
255
- version: parseInt(preReleaseNumber)
256
- };
257
- }
258
- if (build) {
259
- buildNumber = Number(build);
260
- } else if (input) {
261
- const descriptionMatch = input.match(/(\d+)\)$/);
262
- if (descriptionMatch) {
263
- buildNumber = parseInt(descriptionMatch[1]);
264
- }
265
- }
266
- return new PackageVersion(parseInt(major), parseInt(minor), parseInt(patch), preRelease, buildNumber);
267
- };
268
-
269
- // 1000001001 -> 1.0.1.1
270
- // 1002017001 -> 1.2.17.1
271
- const parseVersionFromNumericVersion = version => {
272
- const major = Math.floor(version / 1000000000);
273
- const minor = Math.floor(version % 1000000000 / 1000000);
274
- const patch = Math.floor(version % 1000000 / 1000);
275
- const buildNumber = version % 1000;
276
- return new PackageVersion(major, minor, patch, undefined, buildNumber);
277
- };
278
-
279
- const readStringFromFile = filePath => fs.readFileSync(filePath, {
280
- encoding: "utf8"
281
- });
282
- const readStringFromFileOrUndefined = filePath => {
283
- try {
284
- return readStringFromFile(filePath);
285
- } catch (err) {
286
- if (!isErrorENOENT(err)) {
287
- throw err;
288
- }
289
- return undefined;
290
- }
291
- };
292
-
293
- // https://regex101.com/r/LtGAu5/1
294
- const logRegex = /console\.log\(\s*"([\w\s\.\(\)]+)\ *Copyright[\w\s\(\)\.]+(\d{4}|\d{4} - \d{4})([\w\s\(\)\.]+)?",?\s*\)/i;
295
- const currentYear = new Date(Date.now()).getFullYear();
296
- const getVersionFileHandler = location => {
297
- const filePath = path.join(location.scriptsDir, "Version.ts");
298
- const invalidVersionFile = versionFile => ({
299
- version: undefined,
300
- write: (name, newVersion) => {
301
- const scriptsContent = fs.readdirSync(location.scriptsDir);
302
- const tsFiles = scriptsContent.filter(file => file.endsWith(".ts"));
303
- if (tsFiles.length > 0) {
304
- return createVersionFileWriter([currentYear], "")(name, newVersion);
305
- }
306
- },
307
- reset: () => {
308
- if (versionFile !== undefined) {
309
- fs.writeFileSync(filePath, versionFile, {
310
- encoding: "utf8"
311
- });
312
- } else {
313
- try {
314
- fs.rmSync(filePath);
315
- } catch (err) {
316
- if (!isErrorENOENT(err)) {
317
- throw err;
318
- }
319
- }
320
- }
321
- }
322
- });
323
- const createVersionFileWriter = (copyright = [currentYear], copyrightStuff = "") => (name, newVersion) => {
324
- const descriptionText = newVersion.toDescriptionString(name);
325
- const copyrightText = createYearString(copyright);
326
- const result = `console.log("${descriptionText}. Copyright (C) ${copyrightText}${copyrightStuff}");`;
327
- fs.writeFileSync(filePath, result, {
328
- encoding: "utf-8"
329
- });
330
- };
331
- let rawVersionFile = readStringFromFileOrUndefined(filePath);
332
- if (rawVersionFile === undefined) {
333
- return invalidVersionFile(rawVersionFile);
334
- }
335
- const versionFile = rawVersionFile.replace(/\n/g, "");
336
- const match = versionFile.match(logRegex);
337
- if (!match) {
338
- return invalidVersionFile(versionFile);
339
- }
340
- const [_full, _description, copyright, copyrightStuff] = match;
341
- const copyrightYears = copyright.match(/^(\d+)( ?- ?(\d+))?$/);
342
- let years;
343
- if (copyrightYears === null) {
344
- years = [currentYear];
345
- } else {
346
- years = [Number(copyrightYears[1]), currentYear];
347
- }
348
- return {
349
- write: createVersionFileWriter(years, copyrightStuff),
350
- reset: () => {
351
- fs.writeFileSync(filePath, versionFile, {
352
- encoding: "utf8"
353
- });
354
- }
355
- };
356
- };
357
- const createYearString = years => {
358
- if (years[1] === undefined || years[0] === years[1]) {
359
- return years[0].toString();
360
- }
361
- return `${years[0]} - ${years[1]}`;
362
- };
363
-
364
- export { PackageVersion as P, getVersionInformationFromGit as a, getWorkspaceBannerText as b, parseVersionFromNumericVersion as c, getVersionFileHandler as g, parseVersionFromString as p };
365
- //# sourceMappingURL=versionFile.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"versionFile.mjs","sources":["../src/lib/git.ts","../src/lib/banner.ts","../src/lib/packageVersion.ts","../src/lib/parseVersion.ts","../src/lib/fs.ts","../src/lib/versionFile.ts"],"sourcesContent":["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\";\n\nimport { isErrorENOENT } from \"./error\";\n\nexport const readStringFromFile = (filePath: string): string =>\n\tfs.readFileSync(filePath, { encoding: \"utf8\" });\n\nexport const readStringFromFileOrUndefined = (\n\tfilePath: string,\n): string | undefined => {\n\ttry {\n\t\treturn readStringFromFile(filePath);\n\t} catch (err) {\n\t\tif (!isErrorENOENT(err)) {\n\t\t\tthrow err;\n\t\t}\n\t\treturn undefined;\n\t}\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":["getVersionInformationFromGit","workspaceLocation","packageLocation","git","simpleGit","baseDir","path","diff","diffSummary","dirty","files","some","file","toLowerCase","includes","endsWith","fullPath","resolve","relativePath","relative","startsWith","log","maxCount","commit","latest","hash","undefined","substring","commitDate","date","err","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","readStringFromFile","filePath","fs","readFileSync","encoding","readStringFromFileOrUndefined","isErrorENOENT","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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"}