@intelligentgraphics/ig.gfx.packager 3.1.0-alpha.7 → 3.1.0
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.
- package/build/bin.mjs +1 -1
- package/build/{cli-IlMWNOvf.mjs → cli-DIedP7qK.mjs} +7 -8
- package/build/{cli-IlMWNOvf.mjs.map → cli-DIedP7qK.mjs.map} +1 -1
- package/build/{dependencies-CPZzEh3z.mjs → dependencies-COlDsLND.mjs} +2 -2
- package/build/{dependencies-CPZzEh3z.mjs.map → dependencies-COlDsLND.mjs.map} +1 -1
- package/build/{generateIndex-Cf7p2QcW.mjs → generateIndex-C3QM6b_P.mjs} +13 -11
- package/build/generateIndex-C3QM6b_P.mjs.map +1 -0
- package/build/{generateParameterType-Cdp9a31q.mjs → generateParameterType-BQWvx09Q.mjs} +2 -2
- package/build/{generateParameterType-Cdp9a31q.mjs.map → generateParameterType-BQWvx09Q.mjs.map} +1 -1
- package/build/{index-Dcu2jMcl.mjs → index-DwMieljj.mjs} +5 -5
- package/build/{index-Dcu2jMcl.mjs.map → index-DwMieljj.mjs.map} +1 -1
- package/build/{index-w4ax9Zlz.mjs → index-DzhYnNye.mjs} +5 -5
- package/build/{index-w4ax9Zlz.mjs.map → index-DzhYnNye.mjs.map} +1 -1
- package/build/{postinstall-Cb7g6gsR.mjs → postinstall-C--lHX5F.mjs} +3 -3
- package/build/{postinstall-Cb7g6gsR.mjs.map → postinstall-C--lHX5F.mjs.map} +1 -1
- package/build/{publishNpm-29blnfYN.mjs → publishNpm-XfGrMd4N.mjs} +4 -4
- package/build/{publishNpm-29blnfYN.mjs.map → publishNpm-XfGrMd4N.mjs.map} +1 -1
- package/build/{rollup-DoDZFLyJ.mjs → rollup-C1CqoDDv.mjs} +2 -2
- package/build/rollup-C1CqoDDv.mjs.map +1 -0
- package/build/{versionFile-_S1eIMrS.mjs → versionFile-DfWPXq6d.mjs} +3 -3
- package/build/{versionFile-_S1eIMrS.mjs.map → versionFile-DfWPXq6d.mjs.map} +1 -1
- package/lib/lib.mjs +14 -12
- package/package.json +3 -3
- package/readme.md +81 -49
- package/build/generateIndex-Cf7p2QcW.mjs.map +0 -1
- package/build/rollup-DoDZFLyJ.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publishNpm-29blnfYN.mjs","sources":["../src/commands/publishNpm.ts"],"sourcesContent":["import * as path from \"path\";\nimport * as fs from \"fs\";\nimport { execSync } from \"child_process\";\n\nimport {\n\tconsoleReporter,\n\tcreatePackageScopedReporter,\n\tReporter,\n} from \"@intelligentgraphics/ig.gfx.tools.core\";\n\nimport { PackageVersion } from \"../lib/packageVersion\";\nimport {\n\tINDEX_FILE,\n\tPackageLocation,\n\tPACKAGE_FILE,\n\treadPackageCreatorIndex,\n\treadPackageCreatorManifest,\n\treadPackageNpmManifest,\n\twritePackageNpmManifest,\n\twritePackageCreatorManifest,\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\";\n\nimport { buildFolders } from \"./build\";\n\nexport interface PublishToNpmSettings {\n\tworkspace: WorkspaceLocation;\n\tlocation: PackageLocation;\n\tversion: string;\n\tdryRun?: boolean;\n\treporter?: Reporter;\n}\n\nexport const publishToNpm = async ({\n\tworkspace,\n\tlocation,\n\tversion: providedVersion,\n\tdryRun,\n\treporter: providedReporter,\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\n\tconst reporter =\n\t\tprovidedReporter ??\n\t\tcreatePackageScopedReporter(consoleReporter, creatorPackage.Package);\n\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\tcreatorPackage.Version = newVersion.toVersionString({ buildNumber: true });\n\twritePackageCreatorManifest(location, creatorPackage);\n\n\tconst versionFile = getVersionFileHandler(location);\n\tif (versionFile.exists) {\n\t\tversionFile.write(creatorPackage.Package, newVersion);\n\t}\n\n\tconst gitVersionInformation = await getVersionInformationFromGit(\n\t\tworkspace,\n\t\tlocation,\n\t);\n\n\tconst bannerText = getWorkspaceBannerText(workspaceManifest);\n\n\tawait buildFolders({\n\t\tworkspace,\n\t\tpackages: [location],\n\t\tminimize: true,\n\t\toutDir: getWorkspaceOutputPath(workspace),\n\t\tbanner: {\n\t\t\ttext: bannerText,\n\t\t\tcommit: gitVersionInformation.commit,\n\t\t\tcommitDirty: gitVersionInformation.dirty,\n\t\t\tversion: newVersion.toVersionString({\n\t\t\t\tbuildNumber: true,\n\t\t\t}),\n\t\t\tdate: new Date(Date.now()),\n\t\t},\n\t});\n\n\tfs.copyFileSync(\n\t\tpath.join(\n\t\t\tgetWorkspaceOutputPath(workspace),\n\t\t\t`${creatorPackage.Package}.d.ts`,\n\t\t),\n\t\tpath.join(publishDir, `${creatorPackage.Package}.d.ts`),\n\t);\n\tfs.copyFileSync(\n\t\tpath.join(\n\t\t\tgetWorkspaceOutputPath(workspace),\n\t\t\t`${creatorPackage.Package}.min.js`,\n\t\t),\n\t\tpath.join(publishDir, `${creatorPackage.Package}.js`),\n\t);\n\n\tfs.copyFileSync(\n\t\tpath.join(location.manifestDir, \"package.json\"),\n\t\tpath.join(publishDir, \"package.json\"),\n\t);\n\n\tfs.writeFileSync(\n\t\tpath.join(publishDir, PACKAGE_FILE),\n\t\tJSON.stringify(creatorPackage, null, 2),\n\t);\n\n\tconst index = readPackageCreatorIndex(location);\n\n\tif (index !== undefined) {\n\t\tfs.writeFileSync(\n\t\t\tpath.join(publishDir, INDEX_FILE),\n\t\t\tJSON.stringify(index),\n\t\t);\n\t}\n\n\tconst readmeName = fs\n\t\t.readdirSync(location.path)\n\t\t.find((name) => name.toLowerCase() === \"readme.md\");\n\n\tif (readmeName !== undefined) {\n\t\tfs.copyFileSync(\n\t\t\tpath.join(location.path, readmeName),\n\t\t\tpath.join(publishDir, readmeName),\n\t\t);\n\t}\n\n\tif (creatorPackage.Package === \"IG.GFX.Standard\") {\n\t\tconst source = path.join(location.path, \"Images\");\n\t\tconst target = path.join(publishDir, \"Images\");\n\t\tcopyImagesDirectory(source, target);\n\t}\n\n\tconst npmPublishArgs: string[] = [];\n\n\tif (dryRun) {\n\t\tnpmPublishArgs.push(\"--dry-run\");\n\t}\n\n\tif (newVersion.preRelease) {\n\t\tnpmPublishArgs.push(\"--tag\", \"next\");\n\t}\n\n\treporter.log(\n\t\t`Publishing to npm with version ${packageJson.version} using tag ${\n\t\t\tnewVersion.preRelease ? \"next\" : \"latest\"\n\t\t}`,\n\t);\n\n\texecSync([\"npm\", \"publish\", ...npmPublishArgs].join(\" \"), {\n\t\tstdio: \"inherit\",\n\t\tencoding: \"utf8\",\n\t\tcwd: publishDir,\n\t});\n\n\tfor (const packageLocation of iterateWorkspacePackages(workspace)) {\n\t\tconst manifest = readPackageNpmManifest(packageLocation);\n\n\t\tif (manifest?.dependencies?.[packageJson.name] !== undefined) {\n\t\t\tmanifest.dependencies[packageJson.name] = \"^\" + packageJson.version;\n\t\t\twritePackageNpmManifest(packageLocation, manifest);\n\t\t}\n\t}\n};\n\nconst copyImagesDirectory = (source: string, target: string) => {\n\tfs.mkdirSync(target, { recursive: true });\n\n\tfor (const name of fs.readdirSync(source)) {\n\t\tconst sourcePath = path.join(source, name);\n\t\tconst targetPath = path.join(target, name);\n\n\t\tif (fs.statSync(sourcePath).isDirectory()) {\n\t\t\tcopyImagesDirectory(sourcePath, targetPath);\n\t\t} else {\n\t\t\tif (\n\t\t\t\t[\".png\", \".jpg\", \".jpeg\", \".gif\"].includes(path.extname(name))\n\t\t\t) {\n\t\t\t\tfs.copyFileSync(sourcePath, targetPath);\n\t\t\t}\n\t\t}\n\t}\n};\n"],"names":["publishToNpm","workspace","location","version","providedVersion","dryRun","reporter","providedReporter","newVersion","parseVersionFromString","err","Error","buildNumber","preRelease","type","undefined","workspaceManifest","readWorkspaceNpmManifest","workspaceOutputPath","getWorkspaceOutputPath","creatorPackage","readPackageCreatorManifest","createPackageScopedReporter","consoleReporter","Package","packageJson","readPackageNpmManifest","name","toLowerCase","description","toVersionString","toDescriptionString","main","types","publishConfig","acccess","ig","scriptingLibrary","files","publishDir","path","join","fs","rmSync","recursive","force","mkdirSync","writePackageNpmManifest","Version","writePackageCreatorManifest","versionFile","getVersionFileHandler","exists","write","gitVersionInformation","getVersionInformationFromGit","bannerText","getWorkspaceBannerText","buildFolders","packages","minimize","outDir","banner","text","commit","commitDirty","dirty","date","Date","now","copyFileSync","manifestDir","writeFileSync","PACKAGE_FILE","JSON","stringify","index","readPackageCreatorIndex","INDEX_FILE","readmeName","readdirSync","find","source","target","copyImagesDirectory","npmPublishArgs","push","log","execSync","stdio","encoding","cwd","packageLocation","iterateWorkspacePackages","manifest","dependencies","sourcePath","targetPath","statSync","isDirectory","includes","extname"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AA0CO,MAAMA,YAAAA,GAAe,OAAO,EAClCC,SAAS,EACTC,QAAQ,EACRC,OAAAA,EAASC,eAAe,EACxBC,MAAM,EACNC,QAAAA,EAAUC,gBAAgB,EACJ,GAAA;IACtB,IAAIC,UAAAA;IACJ,IAAI;AACHA,QAAAA,UAAAA,GAAaC,sBAAAA,CAAuBL,eAAAA,CAAAA;AACrC,IAAA,CAAA,CAAE,OAAOM,GAAAA,EAAK;AACb,QAAA,MAAM,IAAIC,KAAAA,CAAM,CAAC,+CAA+C,CAAC,CAAA;AAClE,IAAA;IAEA,IAAIH,UAAAA,CAAWI,WAAW,GAAG,GAAA,EAAK;AACjCJ,QAAAA,UAAAA,CAAWK,UAAU,GAAG;YACvBC,IAAAA,EAAM,MAAA;AACNX,YAAAA,OAAAA,EAASK,WAAWI;AACrB,SAAA;AACD,IAAA,CAAA,MAAO,IAAIJ,UAAAA,CAAWI,WAAW,KAAK,GAAA,EAAK;AAC1CJ,QAAAA,UAAAA,CAAWK,UAAU,GAAGE,SAAAA;IACzB,CAAA,MAAO;AACN,QAAA,MAAM,IAAIJ,KAAAA,CACT,CAAC,mEAAmE,CAAC,CAAA;AAEvE,IAAA;AAEA,IAAA,MAAMK,oBAAoBC,wBAAAA,CAAyBhB,SAAAA,CAAAA;AACnD,IAAA,MAAMiB,sBAAsBC,sBAAAA,CAAuBlB,SAAAA,CAAAA;AACnD,IAAA,MAAMmB,iBAAiBC,0BAAAA,CAA2BnB,QAAAA,CAAAA;AAElD,IAAA,MAAMI,QAAAA,GACLC,gBAAAA,IACAe,2BAAAA,CAA4BC,eAAAA,EAAiBH,eAAeI,OAAO,CAAA;AAEpE,IAAA,IAAIC,cAAcC,sBAAAA,CAAuBxB,QAAAA,CAAAA;AAEzC,IAAA,IAAIuB,gBAAgBV,SAAAA,EAAW;QAC9BU,WAAAA,GAAc;AACbE,YAAAA,IAAAA,EACC,yBAAA,GACAP,cAAAA,CAAeI,OAAO,CAACI,WAAW,EAAA;YACnCzB,OAAAA,EAAS,OAAA;AACT0B,YAAAA,WAAAA,EAAaT,eAAeI;AAC7B,SAAA;AACD,IAAA;AAEAC,IAAAA,WAAAA,CAAYtB,OAAO,GAAGK,UAAAA,CAAWsB,eAAe,CAAC;QAChDlB,WAAAA,EAAa;AACd,KAAA,CAAA;AACAa,IAAAA,WAAAA,CAAYI,WAAW,GAAGrB,UAAAA,CAAWuB,mBAAmB,CACvDX,eAAeI,OAAO,CAAA;AAEvBC,IAAAA,WAAAA,CAAYO,IAAI,GAAG,CAAA,EAAGZ,eAAeI,OAAO,CAAC,GAAG,CAAC;AACjDC,IAAAA,WAAAA,CAAYQ,KAAK,GAAG,CAAA,EAAGb,eAAeI,OAAO,CAAC,KAAK,CAAC;IACpDC,WAAAA,CAAYS,aAAa,KAAK,EAAC;IAC/BT,WAAAA,CAAYS,aAAa,CAACC,OAAO,GAAG,QAAA;AACpCV,IAAAA,WAAAA,CAAYW,EAAE,GAAG;QAChBC,gBAAAA,EAAkB;AACnB,KAAA;AACAZ,IAAAA,WAAAA,CAAYa,KAAK,GAAGvB,SAAAA;AAEpB,IAAA,MAAMwB,aAAaC,IAAAA,CAAKC,IAAI,CAC3BvB,mBAAAA,EACA,SAAA,EACAE,eAAeI,OAAO,CAAA;IAEvBkB,EAAAA,CAAGC,MAAM,CAACJ,UAAAA,EAAY;QAAEK,SAAAA,EAAW,IAAA;QAAMC,KAAAA,EAAO;AAAK,KAAA,CAAA;IACrDH,EAAAA,CAAGI,SAAS,CAACP,UAAAA,EAAY;QAAEK,SAAAA,EAAW;AAAK,KAAA,CAAA;AAE3CG,IAAAA,uBAAAA,CAAwB7C,QAAAA,EAAUuB,WAAAA,CAAAA;AAClCL,IAAAA,cAAAA,CAAe4B,OAAO,GAAGxC,UAAAA,CAAWsB,eAAe,CAAC;QAAElB,WAAAA,EAAa;AAAK,KAAA,CAAA;AACxEqC,IAAAA,2BAAAA,CAA4B/C,QAAAA,EAAUkB,cAAAA,CAAAA;AAEtC,IAAA,MAAM8B,cAAcC,qBAAAA,CAAsBjD,QAAAA,CAAAA;IAC1C,IAAIgD,WAAAA,CAAYE,MAAM,EAAE;AACvBF,QAAAA,WAAAA,CAAYG,KAAK,CAACjC,cAAAA,CAAeI,OAAO,EAAEhB,UAAAA,CAAAA;AAC3C,IAAA;IAEA,MAAM8C,qBAAAA,GAAwB,MAAMC,4BAAAA,CACnCtD,SAAAA,EACAC,QAAAA,CAAAA;AAGD,IAAA,MAAMsD,aAAaC,sBAAAA,CAAuBzC,iBAAAA,CAAAA;AAE1C,IAAA,MAAM0C,YAAAA,CAAa;AAClBzD,QAAAA,SAAAA;QACA0D,QAAAA,EAAU;AAACzD,YAAAA;AAAS,SAAA;QACpB0D,QAAAA,EAAU,IAAA;AACVC,QAAAA,MAAAA,EAAQ1C,sBAAAA,CAAuBlB,SAAAA,CAAAA;QAC/B6D,MAAAA,EAAQ;YACPC,IAAAA,EAAMP,UAAAA;AACNQ,YAAAA,MAAAA,EAAQV,sBAAsBU,MAAM;AACpCC,YAAAA,WAAAA,EAAaX,sBAAsBY,KAAK;YACxC/D,OAAAA,EAASK,UAAAA,CAAWsB,eAAe,CAAC;gBACnClB,WAAAA,EAAa;AACd,aAAA,CAAA;YACAuD,IAAAA,EAAM,IAAIC,IAAAA,CAAKA,IAAAA,CAAKC,GAAG,EAAA;AACxB;AACD,KAAA,CAAA;IAEA3B,EAAAA,CAAG4B,YAAY,CACd9B,IAAAA,CAAKC,IAAI,CACRtB,sBAAAA,CAAuBlB,SAAAA,CAAAA,EACvB,CAAA,EAAGmB,cAAAA,CAAeI,OAAO,CAAC,KAAK,CAAC,CAAA,EAEjCgB,IAAAA,CAAKC,IAAI,CAACF,UAAAA,EAAY,GAAGnB,cAAAA,CAAeI,OAAO,CAAC,KAAK,CAAC,CAAA,CAAA;IAEvDkB,EAAAA,CAAG4B,YAAY,CACd9B,IAAAA,CAAKC,IAAI,CACRtB,sBAAAA,CAAuBlB,SAAAA,CAAAA,EACvB,CAAA,EAAGmB,cAAAA,CAAeI,OAAO,CAAC,OAAO,CAAC,CAAA,EAEnCgB,IAAAA,CAAKC,IAAI,CAACF,UAAAA,EAAY,GAAGnB,cAAAA,CAAeI,OAAO,CAAC,GAAG,CAAC,CAAA,CAAA;AAGrDkB,IAAAA,EAAAA,CAAG4B,YAAY,CACd9B,IAAAA,CAAKC,IAAI,CAACvC,QAAAA,CAASqE,WAAW,EAAE,cAAA,CAAA,EAChC/B,IAAAA,CAAKC,IAAI,CAACF,UAAAA,EAAY,cAAA,CAAA,CAAA;IAGvBG,EAAAA,CAAG8B,aAAa,CACfhC,IAAAA,CAAKC,IAAI,CAACF,UAAAA,EAAYkC,YAAAA,CAAAA,EACtBC,IAAAA,CAAKC,SAAS,CAACvD,cAAAA,EAAgB,IAAA,EAAM,CAAA,CAAA,CAAA;AAGtC,IAAA,MAAMwD,QAAQC,uBAAAA,CAAwB3E,QAAAA,CAAAA;AAEtC,IAAA,IAAI0E,UAAU7D,SAAAA,EAAW;QACxB2B,EAAAA,CAAG8B,aAAa,CACfhC,IAAAA,CAAKC,IAAI,CAACF,UAAAA,EAAYuC,UAAAA,CAAAA,EACtBJ,IAAAA,CAAKC,SAAS,CAACC,KAAAA,CAAAA,CAAAA;AAEjB,IAAA;AAEA,IAAA,MAAMG,UAAAA,GAAarC,EAAAA,CACjBsC,WAAW,CAAC9E,QAAAA,CAASsC,IAAI,CAAA,CACzByC,IAAI,CAAC,CAACtD,IAAAA,GAASA,IAAAA,CAAKC,WAAW,EAAA,KAAO,WAAA,CAAA;AAExC,IAAA,IAAImD,eAAehE,SAAAA,EAAW;AAC7B2B,QAAAA,EAAAA,CAAG4B,YAAY,CACd9B,IAAAA,CAAKC,IAAI,CAACvC,QAAAA,CAASsC,IAAI,EAAEuC,UAAAA,CAAAA,EACzBvC,IAAAA,CAAKC,IAAI,CAACF,UAAAA,EAAYwC,UAAAA,CAAAA,CAAAA;AAExB,IAAA;IAEA,IAAI3D,cAAAA,CAAeI,OAAO,KAAK,iBAAA,EAAmB;AACjD,QAAA,MAAM0D,SAAS1C,IAAAA,CAAKC,IAAI,CAACvC,QAAAA,CAASsC,IAAI,EAAE,QAAA,CAAA;AACxC,QAAA,MAAM2C,MAAAA,GAAS3C,IAAAA,CAAKC,IAAI,CAACF,UAAAA,EAAY,QAAA,CAAA;AACrC6C,QAAAA,mBAAAA,CAAoBF,MAAAA,EAAQC,MAAAA,CAAAA;AAC7B,IAAA;AAEA,IAAA,MAAME,iBAA2B,EAAE;AAEnC,IAAA,IAAIhF,MAAAA,EAAQ;AACXgF,QAAAA,cAAAA,CAAeC,IAAI,CAAC,WAAA,CAAA;AACrB,IAAA;IAEA,IAAI9E,UAAAA,CAAWK,UAAU,EAAE;QAC1BwE,cAAAA,CAAeC,IAAI,CAAC,OAAA,EAAS,MAAA,CAAA;AAC9B,IAAA;AAEAhF,IAAAA,QAAAA,CAASiF,GAAG,CACX,CAAC,+BAA+B,EAAE9D,WAAAA,CAAYtB,OAAO,CAAC,WAAW,EAChEK,UAAAA,CAAWK,UAAU,GAAG,SAAS,QAAA,CAAA,CAChC,CAAA;IAGH2E,QAAAA,CAAS;AAAC,QAAA,KAAA;AAAO,QAAA,SAAA;AAAcH,QAAAA,GAAAA;KAAe,CAAC5C,IAAI,CAAC,GAAA,CAAA,EAAM;QACzDgD,KAAAA,EAAO,SAAA;QACPC,QAAAA,EAAU,MAAA;QACVC,GAAAA,EAAKpD;AACN,KAAA,CAAA;IAEA,KAAK,MAAMqD,eAAAA,IAAmBC,wBAAAA,CAAyB5F,SAAAA,CAAAA,CAAY;AAClE,QAAA,MAAM6F,WAAWpE,sBAAAA,CAAuBkE,eAAAA,CAAAA;AAExC,QAAA,IAAIE,UAAUC,YAAAA,GAAetE,YAAYE,IAAI,CAAC,KAAKZ,SAAAA,EAAW;YAC7D+E,QAAAA,CAASC,YAAY,CAACtE,WAAAA,CAAYE,IAAI,CAAC,GAAG,GAAA,GAAMF,YAAYtB,OAAO;AACnE4C,YAAAA,uBAAAA,CAAwB6C,eAAAA,EAAiBE,QAAAA,CAAAA;AAC1C,QAAA;AACD,IAAA;AACD;AAEA,MAAMV,mBAAAA,GAAsB,CAACF,MAAAA,EAAgBC,MAAAA,GAAAA;IAC5CzC,EAAAA,CAAGI,SAAS,CAACqC,MAAAA,EAAQ;QAAEvC,SAAAA,EAAW;AAAK,KAAA,CAAA;AAEvC,IAAA,KAAK,MAAMjB,IAAAA,IAAQe,EAAAA,CAAGsC,WAAW,CAACE,MAAAA,CAAAA,CAAS;AAC1C,QAAA,MAAMc,UAAAA,GAAaxD,IAAAA,CAAKC,IAAI,CAACyC,MAAAA,EAAQvD,IAAAA,CAAAA;AACrC,QAAA,MAAMsE,UAAAA,GAAazD,IAAAA,CAAKC,IAAI,CAAC0C,MAAAA,EAAQxD,IAAAA,CAAAA;AAErC,QAAA,IAAIe,EAAAA,CAAGwD,QAAQ,CAACF,UAAAA,CAAAA,CAAYG,WAAW,EAAA,EAAI;AAC1Cf,YAAAA,mBAAAA,CAAoBY,UAAAA,EAAYC,UAAAA,CAAAA;QACjC,CAAA,MAAO;YACN,IACC;AAAC,gBAAA,MAAA;AAAQ,gBAAA,MAAA;AAAQ,gBAAA,OAAA;AAAS,gBAAA;AAAO,aAAA,CAACG,QAAQ,CAAC5D,IAAAA,CAAK6D,OAAO,CAAC1E,IAAAA,CAAAA,CAAAA,EACvD;gBACDe,EAAAA,CAAG4B,YAAY,CAAC0B,UAAAA,EAAYC,UAAAA,CAAAA;AAC7B,YAAA;AACD,QAAA;AACD,IAAA;AACD,CAAA;;;;"}
|
|
1
|
+
{"version":3,"file":"publishNpm-XfGrMd4N.mjs","sources":["../src/commands/publishNpm.ts"],"sourcesContent":["import * as path from \"path\";\nimport * as fs from \"fs\";\nimport { execSync } from \"child_process\";\n\nimport {\n\tconsoleReporter,\n\tcreatePackageScopedReporter,\n\tReporter,\n} from \"@intelligentgraphics/ig.gfx.tools.core\";\n\nimport { PackageVersion } from \"../lib/packageVersion\";\nimport {\n\tINDEX_FILE,\n\tPackageLocation,\n\tPACKAGE_FILE,\n\treadPackageCreatorIndex,\n\treadPackageCreatorManifest,\n\treadPackageNpmManifest,\n\twritePackageNpmManifest,\n\twritePackageCreatorManifest,\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\";\n\nimport { buildFolders } from \"./build\";\n\nexport interface PublishToNpmSettings {\n\tworkspace: WorkspaceLocation;\n\tlocation: PackageLocation;\n\tversion: string;\n\tdryRun?: boolean;\n\treporter?: Reporter;\n}\n\nexport const publishToNpm = async ({\n\tworkspace,\n\tlocation,\n\tversion: providedVersion,\n\tdryRun,\n\treporter: providedReporter,\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\n\tconst reporter =\n\t\tprovidedReporter ??\n\t\tcreatePackageScopedReporter(consoleReporter, creatorPackage.Package);\n\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\tcreatorPackage.Version = newVersion.toVersionString({ buildNumber: true });\n\twritePackageCreatorManifest(location, creatorPackage);\n\n\tconst versionFile = getVersionFileHandler(location);\n\tif (versionFile.exists) {\n\t\tversionFile.write(creatorPackage.Package, newVersion);\n\t}\n\n\tconst gitVersionInformation = await getVersionInformationFromGit(\n\t\tworkspace,\n\t\tlocation,\n\t);\n\n\tconst bannerText = getWorkspaceBannerText(workspaceManifest);\n\n\tawait buildFolders({\n\t\tworkspace,\n\t\tpackages: [location],\n\t\tminimize: true,\n\t\toutDir: getWorkspaceOutputPath(workspace),\n\t\tbanner: {\n\t\t\ttext: bannerText,\n\t\t\tcommit: gitVersionInformation.commit,\n\t\t\tcommitDirty: gitVersionInformation.dirty,\n\t\t\tversion: newVersion.toVersionString({\n\t\t\t\tbuildNumber: true,\n\t\t\t}),\n\t\t\tdate: new Date(Date.now()),\n\t\t},\n\t});\n\n\tfs.copyFileSync(\n\t\tpath.join(\n\t\t\tgetWorkspaceOutputPath(workspace),\n\t\t\t`${creatorPackage.Package}.d.ts`,\n\t\t),\n\t\tpath.join(publishDir, `${creatorPackage.Package}.d.ts`),\n\t);\n\tfs.copyFileSync(\n\t\tpath.join(\n\t\t\tgetWorkspaceOutputPath(workspace),\n\t\t\t`${creatorPackage.Package}.min.js`,\n\t\t),\n\t\tpath.join(publishDir, `${creatorPackage.Package}.js`),\n\t);\n\n\tfs.copyFileSync(\n\t\tpath.join(location.manifestDir, \"package.json\"),\n\t\tpath.join(publishDir, \"package.json\"),\n\t);\n\n\tfs.writeFileSync(\n\t\tpath.join(publishDir, PACKAGE_FILE),\n\t\tJSON.stringify(creatorPackage, null, 2),\n\t);\n\n\tconst index = readPackageCreatorIndex(location);\n\n\tif (index !== undefined) {\n\t\tfs.writeFileSync(\n\t\t\tpath.join(publishDir, INDEX_FILE),\n\t\t\tJSON.stringify(index),\n\t\t);\n\t}\n\n\tconst readmeName = fs\n\t\t.readdirSync(location.path)\n\t\t.find((name) => name.toLowerCase() === \"readme.md\");\n\n\tif (readmeName !== undefined) {\n\t\tfs.copyFileSync(\n\t\t\tpath.join(location.path, readmeName),\n\t\t\tpath.join(publishDir, readmeName),\n\t\t);\n\t}\n\n\tif (creatorPackage.Package === \"IG.GFX.Standard\") {\n\t\tconst source = path.join(location.path, \"Images\");\n\t\tconst target = path.join(publishDir, \"Images\");\n\t\tcopyImagesDirectory(source, target);\n\t}\n\n\tconst npmPublishArgs: string[] = [];\n\n\tif (dryRun) {\n\t\tnpmPublishArgs.push(\"--dry-run\");\n\t}\n\n\tif (newVersion.preRelease) {\n\t\tnpmPublishArgs.push(\"--tag\", \"next\");\n\t}\n\n\treporter.log(\n\t\t`Publishing to npm with version ${packageJson.version} using tag ${\n\t\t\tnewVersion.preRelease ? \"next\" : \"latest\"\n\t\t}`,\n\t);\n\n\texecSync([\"npm\", \"publish\", ...npmPublishArgs].join(\" \"), {\n\t\tstdio: \"inherit\",\n\t\tencoding: \"utf8\",\n\t\tcwd: publishDir,\n\t});\n\n\tfor (const packageLocation of iterateWorkspacePackages(workspace)) {\n\t\tconst manifest = readPackageNpmManifest(packageLocation);\n\n\t\tif (manifest?.dependencies?.[packageJson.name] !== undefined) {\n\t\t\tmanifest.dependencies[packageJson.name] = \"^\" + packageJson.version;\n\t\t\twritePackageNpmManifest(packageLocation, manifest);\n\t\t}\n\t}\n};\n\nconst copyImagesDirectory = (source: string, target: string) => {\n\tfs.mkdirSync(target, { recursive: true });\n\n\tfor (const name of fs.readdirSync(source)) {\n\t\tconst sourcePath = path.join(source, name);\n\t\tconst targetPath = path.join(target, name);\n\n\t\tif (fs.statSync(sourcePath).isDirectory()) {\n\t\t\tcopyImagesDirectory(sourcePath, targetPath);\n\t\t} else {\n\t\t\tif (\n\t\t\t\t[\".png\", \".jpg\", \".jpeg\", \".gif\"].includes(path.extname(name))\n\t\t\t) {\n\t\t\t\tfs.copyFileSync(sourcePath, targetPath);\n\t\t\t}\n\t\t}\n\t}\n};\n"],"names":["publishToNpm","workspace","location","version","providedVersion","dryRun","reporter","providedReporter","newVersion","parseVersionFromString","err","Error","buildNumber","preRelease","type","undefined","workspaceManifest","readWorkspaceNpmManifest","workspaceOutputPath","getWorkspaceOutputPath","creatorPackage","readPackageCreatorManifest","createPackageScopedReporter","consoleReporter","Package","packageJson","readPackageNpmManifest","name","toLowerCase","description","toVersionString","toDescriptionString","main","types","publishConfig","acccess","ig","scriptingLibrary","files","publishDir","path","join","fs","rmSync","recursive","force","mkdirSync","writePackageNpmManifest","Version","writePackageCreatorManifest","versionFile","getVersionFileHandler","exists","write","gitVersionInformation","getVersionInformationFromGit","bannerText","getWorkspaceBannerText","buildFolders","packages","minimize","outDir","banner","text","commit","commitDirty","dirty","date","Date","now","copyFileSync","manifestDir","writeFileSync","PACKAGE_FILE","JSON","stringify","index","readPackageCreatorIndex","INDEX_FILE","readmeName","readdirSync","find","source","target","copyImagesDirectory","npmPublishArgs","push","log","execSync","stdio","encoding","cwd","packageLocation","iterateWorkspacePackages","manifest","dependencies","sourcePath","targetPath","statSync","isDirectory","includes","extname"],"mappings":"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"}
|
|
@@ -209,7 +209,7 @@ function bundleTSDeclarations(files, entryFileName, namespace) {
|
|
|
209
209
|
if (mainFile === undefined) {
|
|
210
210
|
throw new Error(`Unexpected: Failed to find compiled declaration entry module`);
|
|
211
211
|
}
|
|
212
|
-
const result = bundleFromEntryFile(namespace, mainFile, program, host, compilerOptions);
|
|
212
|
+
const result = bundleFromEntryFile(namespace, mainFile, program, host, program.getTypeChecker(), compilerOptions);
|
|
213
213
|
return [
|
|
214
214
|
...references,
|
|
215
215
|
result
|
|
@@ -217,4 +217,4 @@ function bundleTSDeclarations(files, entryFileName, namespace) {
|
|
|
217
217
|
}
|
|
218
218
|
|
|
219
219
|
export { createRollupBuildParticipant, createRollupWatchBuildParticipant };
|
|
220
|
-
//# sourceMappingURL=rollup-
|
|
220
|
+
//# sourceMappingURL=rollup-C1CqoDDv.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rollup-C1CqoDDv.mjs","sources":["../src/commands/build/rollup.ts"],"sourcesContent":["import * as path from \"path\";\nimport ts from \"typescript\";\nimport * as os from \"os\";\nimport resolve from \"resolve\";\nimport { rollup, watch, RollupOutput, RollupOptions } from \"rollup\";\nimport rollupPluginNodeResolve from \"@rollup/plugin-node-resolve\";\nimport rollupPluginTypescript from \"@rollup/plugin-typescript\";\nimport rollupPluginBabel from \"@rollup/plugin-babel\";\nimport rollupPluginCommonJs from \"@rollup/plugin-commonjs\";\nimport rollupPluginJson from \"@rollup/plugin-json\";\nimport rollupPluginAlias from \"@rollup/plugin-alias\";\nimport babelPresetEs5 from \"@intelligentgraphics/ig.gfx.packager-babel-preset-es5\";\n\nimport { bundleFromEntryFile } from \"@intelligentgraphics/declarationbundler\";\n\nimport { CreatorPackage, PackageLocation } from \"../../lib/package\";\nimport { BuildArtefacts, BuilderEnvironment, BuildParticipant } from \"./types\";\nimport { resolveScriptPackageEntryModule } from \"../../lib/scripts\";\n\nexport function createRollupBuildParticipant(\n\tlocation: PackageLocation,\n\tmanifest: CreatorPackage,\n\toutDir: string,\n\tskipDeclarations: boolean,\n): BuildParticipant {\n\treturn (env: BuilderEnvironment) => {\n\t\tenv.onBuildStart();\n\n\t\t(async () => {\n\t\t\ttry {\n\t\t\t\tconst rollupConfig = getRollupConfig(\n\t\t\t\t\tlocation,\n\t\t\t\t\tmanifest,\n\t\t\t\t\toutDir,\n\t\t\t\t\tskipDeclarations,\n\t\t\t\t\tenv,\n\t\t\t\t);\n\n\t\t\t\tconst build = await rollup(rollupConfig);\n\n\t\t\t\tconst output = await build.generate(rollupConfig.output);\n\n\t\t\t\tenv.onBuildEnd({\n\t\t\t\t\ttype: \"success\",\n\t\t\t\t\tartefacts: processRollupOutput(\n\t\t\t\t\t\toutput,\n\t\t\t\t\t\tlocation,\n\t\t\t\t\t\tmanifest,\n\t\t\t\t\t\trollupConfig.input,\n\t\t\t\t\t\tskipDeclarations,\n\t\t\t\t\t),\n\t\t\t\t});\n\t\t\t} catch (err) {\n\t\t\t\tenv.onBuildEnd({ type: \"error\", error: err });\n\t\t\t}\n\t\t})();\n\n\t\treturn {\n\t\t\tdestroy: () => {},\n\t\t};\n\t};\n}\n\nexport function createRollupWatchBuildParticipant(\n\tlocation: PackageLocation,\n\tmanifest: CreatorPackage,\n\toutDir: string,\n\tskipDeclarations: boolean,\n): BuildParticipant {\n\treturn (env: BuilderEnvironment) => {\n\t\tenv.onBuildStart();\n\n\t\tconst rollupConfig = getRollupConfig(\n\t\t\tlocation,\n\t\t\tmanifest,\n\t\t\toutDir,\n\t\t\tskipDeclarations,\n\t\t\tenv,\n\t\t);\n\n\t\tconst watcher = watch({\n\t\t\t...rollupConfig,\n\t\t\twatch: {\n\t\t\t\tskipWrite: true,\n\t\t\t},\n\t\t});\n\n\t\twatcher.on(\"event\", async (event) => {\n\t\t\tswitch (event.code) {\n\t\t\t\tcase \"BUNDLE_START\":\n\t\t\t\t\tenv.onBuildStart();\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"BUNDLE_END\":\n\t\t\t\t\tconst output = await event.result.generate(\n\t\t\t\t\t\trollupConfig.output!,\n\t\t\t\t\t);\n\t\t\t\t\ttry {\n\t\t\t\t\t\tenv.onBuildEnd({\n\t\t\t\t\t\t\ttype: \"success\",\n\t\t\t\t\t\t\tartefacts: processRollupOutput(\n\t\t\t\t\t\t\t\toutput,\n\t\t\t\t\t\t\t\tlocation,\n\t\t\t\t\t\t\t\tmanifest,\n\t\t\t\t\t\t\t\trollupConfig.input,\n\t\t\t\t\t\t\t\tskipDeclarations,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t});\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\tenv.onBuildEnd({\n\t\t\t\t\t\t\ttype: \"error\",\n\t\t\t\t\t\t\terror: err,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\tevent.result.close();\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"ERROR\":\n\t\t\t\t\tenv.onBuildEnd({\n\t\t\t\t\t\ttype: \"error\",\n\t\t\t\t\t\terror: Object.assign(\n\t\t\t\t\t\t\tnew Error(event.error.message),\n\t\t\t\t\t\t\tevent.error,\n\t\t\t\t\t\t),\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t});\n\n\t\treturn {\n\t\t\tdestroy: () => watcher.close(),\n\t\t};\n\t};\n}\n\nfunction getRollupConfig(\n\tlocation: PackageLocation,\n\tmanifest: CreatorPackage,\n\toutDir: string,\n\tskipDeclarations: boolean,\n\tenv: BuilderEnvironment,\n) {\n\tconst entryModule = resolveScriptPackageEntryModule(location, manifest);\n\n\tif (entryModule === undefined) {\n\t\tthrow new Error(`Could not find an entry module`);\n\t}\n\n\treturn {\n\t\tinput: entryModule,\n\t\tplugins: [\n\t\t\trollupPluginNodeResolve(),\n\t\t\trollupPluginCommonJs(),\n\t\t\trollupPluginJson(),\n\t\t\trollupPluginAlias({\n\t\t\t\tentries: [\n\t\t\t\t\t{\n\t\t\t\t\t\tfind: /^core-js(.*)/,\n\t\t\t\t\t\treplacement: path.join(\n\t\t\t\t\t\t\tpath.dirname(\n\t\t\t\t\t\t\t\tresolve.sync(\"core-js\", {\n\t\t\t\t\t\t\t\t\tbasedir: import.meta.dirname,\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\"/$1\",\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t}),\n\t\t\trollupPluginTypescript({\n\t\t\t\tcompilerOptions: {\n\t\t\t\t\trootDir: skipDeclarations ? undefined : location.scriptsDir,\n\t\t\t\t\tdeclaration: !skipDeclarations,\n\t\t\t\t\tdeclarationDir: skipDeclarations ? undefined : outDir,\n\t\t\t\t\tmodule: \"esnext\",\n\t\t\t\t\ttarget: \"esnext\",\n\t\t\t\t},\n\t\t\t\ttsconfig: path.join(location.scriptsDir, \"tsconfig.json\"),\n\t\t\t\tremoveComments: false,\n\t\t\t\tfilterRoot: skipDeclarations ? false : undefined,\n\t\t\t\tincremental: false,\n\t\t\t\tnoEmitOnError: false,\n\t\t\t}),\n\t\t\trollupPluginBabel({\n\t\t\t\tpresets: [[babelPresetEs5, {}]],\n\t\t\t\ttargets: {\n\t\t\t\t\tie: \"11\",\n\t\t\t\t},\n\t\t\t\tbabelHelpers: \"bundled\",\n\t\t\t\textensions: [\".ts\", \".js\"],\n\t\t\t\tsourceMaps: true,\n\t\t\t\texclude: /core-js/,\n\t\t\t}),\n\t\t],\n\t\toutput: {\n\t\t\tformat: \"iife\",\n\t\t\tname: manifest.Scope ?? manifest.Package,\n\t\t\tdir: outDir,\n\t\t\tsourcemap: \"hidden\",\n\t\t},\n\t\tonLog: createLogger(env),\n\t} satisfies RollupOptions;\n}\n\nfunction createLogger(env: BuilderEnvironment): RollupOptions[\"onLog\"] {\n\treturn (level, log, _handler) => {\n\t\tenv.log(log.message);\n\t};\n}\n\nfunction processRollupOutput(\n\toutput: RollupOutput,\n\tlocation: PackageLocation,\n\tmanifest: CreatorPackage,\n\tentryModulePath: string,\n\tskipDeclarations: boolean,\n): BuildArtefacts {\n\tconst [primaryChunk, ...otherOutputs] = output.output;\n\n\tconst assets = otherOutputs.filter((chunk) => chunk.type === \"asset\");\n\n\tconst sourceMap = assets.find((asset) =>\n\t\tasset.fileName.endsWith(\".js.map\"),\n\t);\n\n\tlet declarations: string | undefined;\n\n\tif (!skipDeclarations) {\n\t\tconst declarationFileMap = new Map(\n\t\t\tassets\n\t\t\t\t.filter((asset) => asset.fileName.endsWith(\".d.ts\"))\n\t\t\t\t.map((asset) => {\n\t\t\t\t\treturn [\n\t\t\t\t\t\tpath\n\t\t\t\t\t\t\t.resolve(location.scriptsDir, asset.fileName)\n\t\t\t\t\t\t\t.replaceAll(\"\\\\\", \"/\"),\n\t\t\t\t\t\tasset.source as string,\n\t\t\t\t\t];\n\t\t\t\t}),\n\t\t);\n\n\t\tconst entryModulePathWithDts = path.join(\n\t\t\tpath.dirname(entryModulePath),\n\t\t\tpath.basename(entryModulePath, path.extname(entryModulePath)) +\n\t\t\t\t\".d.ts\",\n\t\t);\n\n\t\tdeclarations = bundleTSDeclarations(\n\t\t\tdeclarationFileMap,\n\t\t\tentryModulePathWithDts,\n\t\t\tmanifest.Scope ?? manifest.Package,\n\t\t);\n\t}\n\n\treturn {\n\t\tjs: primaryChunk.code,\n\t\tdeclarations,\n\t\tsourceMap: sourceMap?.source as string,\n\t};\n}\n\nconst referenceRegex = /(\\/\\/\\/ ?<reference .+\\/>$)/;\n\nfunction bundleTSDeclarations(\n\tfiles: Map<string, string>,\n\tentryFileName: string,\n\tnamespace: string,\n) {\n\tconst references: string[] = [];\n\n\tfor (const [_fileName, content] of files) {\n\t\tif (content.indexOf(\"reference\") === -1) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst lines = content.split(os.EOL);\n\n\t\tfor (let index = 0; index < lines.length; index++) {\n\t\t\tconst line = lines[index];\n\t\t\tconst match = line.match(referenceRegex);\n\n\t\t\tif (match === null) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (!references.includes(match[1])) {\n\t\t\t\treferences.push(match[1]);\n\t\t\t}\n\t\t}\n\t}\n\n\tconst compilerOptions: ts.CompilerOptions = {\n\t\tremoveComments: false,\n\t};\n\n\tconst host = ts.createCompilerHost(compilerOptions, true);\n\thost.fileExists = (fileName) => files.has(fileName);\n\thost.readFile = (fileName) => files.get(fileName);\n\n\tconst program = ts.createProgram({\n\t\thost,\n\t\toptions: compilerOptions,\n\t\trootNames: [entryFileName],\n\t});\n\n\tconst mainFile = program.getSourceFile(entryFileName);\n\n\tif (mainFile === undefined) {\n\t\tthrow new Error(\n\t\t\t`Unexpected: Failed to find compiled declaration entry module`,\n\t\t);\n\t}\n\n\tconst result = bundleFromEntryFile(\n\t\tnamespace,\n\t\tmainFile,\n\t\tprogram,\n\t\thost,\n\t\tprogram.getTypeChecker(),\n\t\tcompilerOptions,\n\t);\n\treturn [...references, result].join(os.EOL);\n}\n"],"names":["createRollupBuildParticipant","location","manifest","outDir","skipDeclarations","env","onBuildStart","rollupConfig","getRollupConfig","build","rollup","output","generate","onBuildEnd","type","artefacts","processRollupOutput","input","err","error","destroy","createRollupWatchBuildParticipant","watcher","watch","skipWrite","on","event","code","result","close","Object","assign","Error","message","entryModule","resolveScriptPackageEntryModule","undefined","plugins","rollupPluginNodeResolve","rollupPluginCommonJs","rollupPluginJson","rollupPluginAlias","entries","find","replacement","path","join","dirname","resolve","sync","basedir","rollupPluginTypescript","compilerOptions","rootDir","scriptsDir","declaration","declarationDir","module","target","tsconfig","removeComments","filterRoot","incremental","noEmitOnError","rollupPluginBabel","presets","babelPresetEs5","targets","ie","babelHelpers","extensions","sourceMaps","exclude","format","name","Scope","Package","dir","sourcemap","onLog","createLogger","level","log","_handler","entryModulePath","primaryChunk","otherOutputs","assets","filter","chunk","sourceMap","asset","fileName","endsWith","declarations","declarationFileMap","Map","map","replaceAll","source","entryModulePathWithDts","basename","extname","bundleTSDeclarations","js","referenceRegex","files","entryFileName","namespace","references","_fileName","content","indexOf","lines","split","os","EOL","index","length","line","match","includes","push","host","ts","createCompilerHost","fileExists","has","readFile","get","program","createProgram","options","rootNames","mainFile","getSourceFile","bundleFromEntryFile","getTypeChecker"],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import simpleGit from 'simple-git';
|
|
2
2
|
import * as path from 'path';
|
|
3
|
-
import { P as PackageVersion } from './index-
|
|
3
|
+
import { P as PackageVersion } from './index-DzhYnNye.mjs';
|
|
4
4
|
import * as fs from 'fs';
|
|
5
5
|
import 'resolve';
|
|
6
6
|
import 'write-package';
|
|
7
|
-
import { i as isErrorENOENT } from './cli-
|
|
7
|
+
import { i as isErrorENOENT } from './cli-DIedP7qK.mjs';
|
|
8
8
|
import 'glob';
|
|
9
9
|
import 'axios';
|
|
10
10
|
|
|
@@ -203,4 +203,4 @@ const createYearString = (years)=>{
|
|
|
203
203
|
};
|
|
204
204
|
|
|
205
205
|
export { parseVersionFromString as a, getVersionInformationFromGit as b, getWorkspaceBannerText as c, getVersionFileHandler as g, parseVersionFromNumericVersion as p };
|
|
206
|
-
//# sourceMappingURL=versionFile-
|
|
206
|
+
//# sourceMappingURL=versionFile-DfWPXq6d.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"versionFile-_S1eIMrS.mjs","sources":["../../tools.core/build/fs.mjs","../src/lib/git.ts","../src/lib/banner.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","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 function getVersionFileHandler(location: PackageLocation) {\n\tconst filePath = path.join(location.scriptsDir, \"Version.ts\");\n\n\tfunction invalidVersionFile(\n\t\tversionFile: string | undefined,\n\t\texists: boolean,\n\t) {\n\t\treturn {\n\t\t\texists,\n\t\t\twrite: (name: string, newVersion: PackageVersion) => {\n\t\t\t\tconst scriptsContent = fs.readdirSync(location.scriptsDir);\n\t\t\t\tconst tsFiles = scriptsContent.filter((file) =>\n\t\t\t\t\tfile.endsWith(\".ts\"),\n\t\t\t\t);\n\n\t\t\t\tif (tsFiles.length > 0) {\n\t\t\t\t\treturn createVersionFileWriter([currentYear], \"\")(\n\t\t\t\t\t\tname,\n\t\t\t\t\t\tnewVersion,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t},\n\t\t\treset: () => {\n\t\t\t\tif (versionFile !== undefined) {\n\t\t\t\t\tfs.writeFileSync(filePath, versionFile, {\n\t\t\t\t\t\tencoding: \"utf8\",\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tfs.rmSync(filePath);\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\tif (!isErrorENOENT(err)) {\n\t\t\t\t\t\t\tthrow err;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t};\n\t}\n\n\ttype CopyrightRange = [number, number?];\n\n\tfunction createVersionFileWriter(\n\t\tcopyright: CopyrightRange = [currentYear],\n\t\tcopyrightStuff: string = \"\",\n\t) {\n\t\treturn (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\t}\n\n\tlet rawVersionFile = readStringFromFileOrUndefined(filePath);\n\n\tif (rawVersionFile === undefined) {\n\t\treturn invalidVersionFile(rawVersionFile, false);\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, true);\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\texists: true,\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","git","simpleGit","baseDir","path","diff","diffSummary","dirty","files","some","file","toLowerCase","includes","endsWith","fullPath","resolve","relativePath","relative","startsWith","log","maxCount","commit","latest","hash","substring","commitDate","date","getWorkspaceBannerText","manifest","bannerText","packager","banner","match","startYear","parseInt","endYear","Date","getFullYear","replace","parseVersionFromString","input","Error","major","minor","patch","build","preReleaseType","preReleaseNumber","preRelease","buildNumber","type","version","Number","descriptionMatch","PackageVersion","parseVersionFromNumericVersion","Math","floor","logRegex","currentYear","now","getVersionFileHandler","location","join","scriptsDir","invalidVersionFile","versionFile","exists","write","name","newVersion","scriptsContent","readdirSync","tsFiles","filter","length","createVersionFileWriter","reset","writeFileSync","rmSync","copyright","copyrightStuff","descriptionText","toDescriptionString","copyrightText","createYearString","result","rawVersionFile","_full","_description","copyrightYears","years","toString"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"versionFile-DfWPXq6d.mjs","sources":["../../tools.core/build/fs.mjs","../src/lib/git.ts","../src/lib/banner.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","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 function getVersionFileHandler(location: PackageLocation) {\n\tconst filePath = path.join(location.scriptsDir, \"Version.ts\");\n\n\tfunction invalidVersionFile(\n\t\tversionFile: string | undefined,\n\t\texists: boolean,\n\t) {\n\t\treturn {\n\t\t\texists,\n\t\t\twrite: (name: string, newVersion: PackageVersion) => {\n\t\t\t\tconst scriptsContent = fs.readdirSync(location.scriptsDir);\n\t\t\t\tconst tsFiles = scriptsContent.filter((file) =>\n\t\t\t\t\tfile.endsWith(\".ts\"),\n\t\t\t\t);\n\n\t\t\t\tif (tsFiles.length > 0) {\n\t\t\t\t\treturn createVersionFileWriter([currentYear], \"\")(\n\t\t\t\t\t\tname,\n\t\t\t\t\t\tnewVersion,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t},\n\t\t\treset: () => {\n\t\t\t\tif (versionFile !== undefined) {\n\t\t\t\t\tfs.writeFileSync(filePath, versionFile, {\n\t\t\t\t\t\tencoding: \"utf8\",\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tfs.rmSync(filePath);\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\tif (!isErrorENOENT(err)) {\n\t\t\t\t\t\t\tthrow err;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t};\n\t}\n\n\ttype CopyrightRange = [number, number?];\n\n\tfunction createVersionFileWriter(\n\t\tcopyright: CopyrightRange = [currentYear],\n\t\tcopyrightStuff: string = \"\",\n\t) {\n\t\treturn (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\t}\n\n\tlet rawVersionFile = readStringFromFileOrUndefined(filePath);\n\n\tif (rawVersionFile === undefined) {\n\t\treturn invalidVersionFile(rawVersionFile, false);\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, true);\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\texists: true,\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","git","simpleGit","baseDir","path","diff","diffSummary","dirty","files","some","file","toLowerCase","includes","endsWith","fullPath","resolve","relativePath","relative","startsWith","log","maxCount","commit","latest","hash","substring","commitDate","date","getWorkspaceBannerText","manifest","bannerText","packager","banner","match","startYear","parseInt","endYear","Date","getFullYear","replace","parseVersionFromString","input","Error","major","minor","patch","build","preReleaseType","preReleaseNumber","preRelease","buildNumber","type","version","Number","descriptionMatch","PackageVersion","parseVersionFromNumericVersion","Math","floor","logRegex","currentYear","now","getVersionFileHandler","location","join","scriptsDir","invalidVersionFile","versionFile","exists","write","name","newVersion","scriptsContent","readdirSync","tsFiles","filter","length","createVersionFileWriter","reset","writeFileSync","rmSync","copyright","copyrightStuff","descriptionText","toDescriptionString","copyrightText","createYearString","result","rawVersionFile","_full","_description","copyrightYears","years","toString"],"mappings":";;;;;;;;;;MAIaA,kBAAAA,GAAqB,CAACC,QAAAA,GAClCC,EAAAA,CAAGC,YAAY,CAACF,QAAAA,EAAU;AAAEG,QAAAA,QAAAA,EAAU;AAAO,KAAA,CAAA;AAEvC,MAAMC,6BAAAA,GAAgC,CAC5CJ,QAAAA,GAAAA;IAEA,IAAI;QACH,OAAOD,kBAAAA,CAAmBC,QAAAA,CAAAA;IAC3B,CAAA,CAAE,OAAOK,GAAAA,EAAK;AACb,QAAA,IAAI,CAACC,aAAAA,CAAcD,GAAAA,CAAAA,EAAM;AACxB,YAAA,MAAMA,GAAAA;AACP,QAAA;AACA,QAAA,OAAOE,SAAAA;AACR,IAAA;AACD,CAAA;;ACZO,MAAMC,4BAAAA,GAA+B,OAC3CC,iBAAAA,EACAC,eAAAA,GAAAA;IAEA,IAAI;AACH,QAAA,MAAMC,MAAMC,SAAAA,CAAU;AACrBC,YAAAA,OAAAA,EAASJ,kBAAkBK;AAC5B,SAAA,CAAA;;;QAIA,MAAMC,IAAAA,GAAO,MAAMJ,GAAAA,CAAIK,WAAW,EAAA;AAElC,QAAA,MAAMC,QAAQF,IAAAA,CAAKG,KAAK,CAACC,IAAI,CAAC,CAACC,IAAAA,GAAAA;YAC9B,IACCA,IAAAA,CAAKA,IAAI,CAACC,WAAW,GAAGC,QAAQ,CAAC,UAAA,CAAA,IACjCF,IAAAA,CAAKA,IAAI,CAACC,WAAW,EAAA,CAAGE,QAAQ,CAAC,YAAA,CAAA,IACjCH,IAAAA,CAAKA,IAAI,CAACC,WAAW,EAAA,CAAGE,QAAQ,CAAC,cAAA,CAAA,EAChC;gBACD,OAAO,KAAA;AACR,YAAA;YAEA,MAAMC,QAAAA,GAAWV,KAAKW,OAAO,CAAChB,kBAAkBK,IAAI,EAAEM,KAAKA,IAAI,CAAA;AAC/D,YAAA,MAAMM,eAAeZ,IAAAA,CAAKa,QAAQ,CAACjB,eAAAA,CAAgBI,IAAI,EAAEU,QAAAA,CAAAA;YAEzD,OAAO,CAACE,YAAAA,CAAaE,UAAU,CAAC,IAAA,CAAA;AACjC,QAAA,CAAA,CAAA;AAEA,QAAA,MAAMC,GAAAA,GAAM,MAAMlB,GAAAA,CAAIkB,GAAG,CAAC;YAAEC,QAAAA,EAAU;AAAE,SAAA,CAAA;AACxC,QAAA,MAAMC,MAAAA,GAAS,CAACF,GAAAA,CAAIG,MAAM,EAAEC,IAAAA,GACzB1B,SAAAA,GACAsB,GAAAA,CAAIG,MAAM,CAACC,IAAI,CAACC,SAAS,CAAC,CAAA,EAAG,CAAA,CAAA;QAEhC,OAAO;AACNH,YAAAA,MAAAA;AACAd,YAAAA,KAAAA;YACAkB,UAAAA,EAAYN,GAAAA,CAAIG,MAAM,EAAEI;AACzB,SAAA;AACD,IAAA,CAAA,CAAE,OAAO/B,GAAAA,EAAK;AACb,QAAA,OAAO,EAAC;AACT,IAAA;AACD;;AC7CO,MAAMgC,yBAAyB,CAACC,QAAAA,GAAAA;IACtC,IAAIC,UAAAA,GAAaD,UAAUE,QAAAA,EAAUC,MAAAA;AAErC,IAAA,IAAIF,UAAAA,EAAY;QACf,MAAMG,KAAAA,GAAQH,UAAAA,CAAWG,KAAK,CAAC,oCAAA,CAAA;AAE/B,QAAA,IAAIA,UAAU,IAAA,EAAM;AACnB,YAAA,MAAMC,SAAAA,GAAYC,QAAAA,CAASF,KAAK,CAAC,CAAA,CAAE,CAAA;YACnC,MAAMG,OAAAA,GAAU,IAAIC,IAAAA,EAAAA,CAAOC,WAAW,EAAA;AAEtC,YAAA,IAAIJ,cAAcE,OAAAA,EAAS;AAC1BN,gBAAAA,UAAAA,GAAaA,UAAAA,CAAWS,OAAO,CAC9BN,KAAK,CAAC,CAAA,CAAE,EACR,CAAC,cAAc,EAAEC,SAAAA,CAAU,GAAG,EAAEE,OAAAA,CAAAA,CAAS,CAAA;YAE3C,CAAA,MAAO;gBACNN,UAAAA,GAAaA,UAAAA,CAAWS,OAAO,CAC9BN,KAAK,CAAC,EAAE,EACR,CAAC,cAAc,EAAEC,SAAAA,CAAAA,CAAW,CAAA;AAE9B,YAAA;AACD,QAAA;AACD,IAAA;IAEA,OAAOJ,UAAAA;AACR;;ACzBO,MAAMU,yBAAyB,CAACC,KAAAA,GAAAA;AACtC,IAAA,IAAIA,UAAU3C,SAAAA,EAAW;AACxB,QAAA,MAAM,IAAI4C,KAAAA,CAAM,CAAC,oCAAoC,CAAC,CAAA;AACvD,IAAA;IAEA,IAAIT,KAAAA;IAEJ,IAAIU,KAAAA;IACJ,IAAIC,KAAAA;IACJ,IAAIC,KAAAA;IACJ,IAAIC,KAAAA;IACJ,IAAIC,cAAAA;IACJ,IAAIC,gBAAAA;AAEJ,IAAA;AAEEf,IAAAA,CAAAA,QAAQQ,KAAAA,CAAMR,KAAK,CACnB,+CAAA,CACD,MAAO,IAAA,EACN;AACD,QAAA,GAAGU,OAAOC,KAAAA,EAAOC,KAAAA,EAAOC,KAAAA,EAAOC,cAAAA,EAAgBC,iBAAiB,GAC/Df,KAAAA;IACF,CAAA,MAAO,IACN,CAACA,KAAAA,GAAQQ,MAAMR,KAAK,CAAC,wCAAA,CAAwC,MAAO,IAAA,EACnE;AACD,QAAA,GAAGU,KAAAA,EAAOC,KAAAA,EAAOC,KAAAA,IAASE,cAAAA,EAAgBC,iBAAiB,GAAGf,KAAAA;AAC/D,IAAA;AAEA,IAAA,IAAIA,UAAU,IAAA,EAAM;AACnB,QAAA,MAAM,IAAIS,KAAAA,CAAM,CAAC,oCAAoC,EAAED,KAAAA,CAAAA,CAAO,CAAA;AAC/D,IAAA;AAEA,IAAA,IAAIQ,UAAAA,GAA2CnD,SAAAA;AAC/C,IAAA,IAAIoD,WAAAA,GAAc,GAAA;AAElB,IAAA,IAAIH,kBAAkBC,gBAAAA,EAAkB;QACvCC,UAAAA,GAAa;YACZE,IAAAA,EAAMJ,cAAAA;AACNK,YAAAA,OAAAA,EAASjB,QAAAA,CAASa,gBAAAA;AACnB,SAAA;AACD,IAAA;AAEA,IAAA,IAAIF,KAAAA,EAAO;AACVI,QAAAA,WAAAA,GAAcG,MAAAA,CAAOP,KAAAA,CAAAA;AACtB,IAAA,CAAA,MAAO,IAAIL,KAAAA,EAAO;QACjB,MAAMa,gBAAAA,GAAmBb,KAAAA,CAAMR,KAAK,CAAC,UAAA,CAAA;AAErC,QAAA,IAAIqB,gBAAAA,EAAkB;YACrBJ,WAAAA,GAAcf,QAAAA,CAASmB,gBAAgB,CAAC,CAAA,CAAE,CAAA;AAC3C,QAAA;AACD,IAAA;IAEA,OAAO,IAAIC,eACVpB,QAAAA,CAASQ,KAAAA,CAAAA,EACTR,SAASS,KAAAA,CAAAA,EACTT,QAAAA,CAASU,QACTI,UAAAA,EACAC,WAAAA,CAAAA;AAEF;AAEA;AACA;AACO,MAAMM,iCAAiC,CAC7CJ,OAAAA,GAAAA;AAEA,IAAA,MAAMT,KAAAA,GAAQc,IAAAA,CAAKC,KAAK,CAACN,OAAAA,GAAU,UAAA,CAAA;AACnC,IAAA,MAAMR,QAAQa,IAAAA,CAAKC,KAAK,CAAEN,UAAU,UAAA,GAAc,OAAA,CAAA;AAClD,IAAA,MAAMP,QAAQY,IAAAA,CAAKC,KAAK,CAAEN,UAAU,OAAA,GAAW,IAAA,CAAA;AAC/C,IAAA,MAAMF,cAAcE,OAAAA,GAAU,IAAA;AAE9B,IAAA,OAAO,IAAIG,cAAAA,CAAeZ,KAAAA,EAAOC,KAAAA,EAAOC,OAAO/C,SAAAA,EAAWoD,WAAAA,CAAAA;AAC3D;;AClEA;AACA,MAAMS,QAAAA,GACL,0GAAA;AACD,MAAMC,cAAc,IAAIvB,IAAAA,CAAKA,IAAAA,CAAKwB,GAAG,IAAIvB,WAAW,EAAA;AAE7C,SAASwB,sBAAsBC,QAAyB,EAAA;AAC9D,IAAA,MAAMxE,WAAWc,IAAAA,CAAK2D,IAAI,CAACD,QAAAA,CAASE,UAAU,EAAE,YAAA,CAAA;IAEhD,SAASC,kBAAAA,CACRC,WAA+B,EAC/BC,MAAe,EAAA;QAEf,OAAO;AACNA,YAAAA,MAAAA;AACAC,YAAAA,KAAAA,EAAO,CAACC,IAAAA,EAAcC,UAAAA,GAAAA;AACrB,gBAAA,MAAMC,cAAAA,GAAiBhF,EAAAA,CAAGiF,WAAW,CAACV,SAASE,UAAU,CAAA;gBACzD,MAAMS,OAAAA,GAAUF,eAAeG,MAAM,CAAC,CAAChE,IAAAA,GACtCA,IAAAA,CAAKG,QAAQ,CAAC,KAAA,CAAA,CAAA;gBAGf,IAAI4D,OAAAA,CAAQE,MAAM,GAAG,CAAA,EAAG;AACvB,oBAAA,OAAOC,uBAAAA,CAAwB;AAACjB,wBAAAA;AAAY,qBAAA,EAAE,IAC7CU,IAAAA,EACAC,UAAAA,CAAAA;AAEF,gBAAA;AACD,YAAA,CAAA;YACAO,KAAAA,EAAO,IAAA;AACN,gBAAA,IAAIX,gBAAgBrE,SAAAA,EAAW;oBAC9BN,EAAAA,CAAGuF,aAAa,CAACxF,QAAAA,EAAU4E,WAAAA,EAAa;wBACvCzE,QAAAA,EAAU;AACX,qBAAA,CAAA;gBACD,CAAA,MAAO;oBACN,IAAI;AACHF,wBAAAA,EAAAA,CAAGwF,MAAM,CAACzF,QAAAA,CAAAA;AACX,oBAAA,CAAA,CAAE,OAAOK,GAAAA,EAAK;wBACb,IAAI,CAACC,cAAcD,GAAAA,CAAAA,EAAM;4BACxB,MAAMA,GAAAA;AACP,wBAAA;AACD,oBAAA;AACD,gBAAA;AACD,YAAA;AACD,SAAA;AACD,IAAA;AAIA,IAAA,SAASiF,wBACRI,SAAAA,GAA4B;AAACrB,QAAAA;AAAY,KAAA,EACzCsB,iBAAyB,EAAE,EAAA;AAE3B,QAAA,OAAO,CAACZ,IAAAA,EAAcC,UAAAA,GAAAA;YACrB,MAAMY,eAAAA,GAAkBZ,UAAAA,CAAWa,mBAAmB,CAACd,IAAAA,CAAAA;AACvD,YAAA,MAAMe,gBAAgBC,gBAAAA,CAAiBL,SAAAA,CAAAA;YAEvC,MAAMM,MAAAA,GAAS,CAAC,aAAa,EAAEJ,eAAAA,CAAgB,gBAAgB,EAAEE,aAAAA,CAAAA,EAAgBH,cAAAA,CAAe,GAAG,CAAC;YAEpG1F,EAAAA,CAAGuF,aAAa,CAACxF,QAAAA,EAAUgG,MAAAA,EAAQ;gBAAE7F,QAAAA,EAAU;AAAQ,aAAA,CAAA;AACxD,QAAA,CAAA;AACD,IAAA;AAEA,IAAA,IAAI8F,iBAAiB7F,6BAAAA,CAA8BJ,QAAAA,CAAAA;AAEnD,IAAA,IAAIiG,mBAAmB1F,SAAAA,EAAW;AACjC,QAAA,OAAOoE,mBAAmBsB,cAAAA,EAAgB,KAAA,CAAA;AAC3C,IAAA;AAEA,IAAA,MAAMrB,WAAAA,GAAcqB,cAAAA,CAAejD,OAAO,CAAC,KAAA,EAAO,EAAA,CAAA;IAElD,MAAMN,KAAAA,GAAQkC,WAAAA,CAAYlC,KAAK,CAAC0B,QAAAA,CAAAA;AAEhC,IAAA,IAAI,CAAC1B,KAAAA,EAAO;AACX,QAAA,OAAOiC,mBAAmBC,WAAAA,EAAa,IAAA,CAAA;AACxC,IAAA;AAEA,IAAA,MAAM,CAACsB,KAAAA,EAAOC,YAAAA,EAAcT,SAAAA,EAAWC,eAAe,GAAGjD,KAAAA;IAOzD,MAAM0D,cAAAA,GAAiBV,SAAAA,CAAUhD,KAAK,CAAC,sBAAA,CAAA;IAEvC,IAAI2D,KAAAA;AAEJ,IAAA,IAAID,mBAAmB,IAAA,EAAM;QAC5BC,KAAAA,GAAQ;AAAChC,YAAAA;AAAY,SAAA;IACtB,CAAA,MAAO;QACNgC,KAAAA,GAAQ;YAACvC,MAAAA,CAAOsC,cAAc,CAAC,CAAA,CAAE,CAAA;AAAG/B,YAAAA;AAAY,SAAA;AACjD,IAAA;IAEA,OAAO;QACNQ,MAAAA,EAAQ,IAAA;AACRC,QAAAA,KAAAA,EAAOQ,wBAAwBe,KAAAA,EAAOV,cAAAA,CAAAA;QACtCJ,KAAAA,EAAO,IAAA;YACNtF,EAAAA,CAAGuF,aAAa,CAACxF,QAAAA,EAAU4E,WAAAA,EAAa;gBAAEzE,QAAAA,EAAU;AAAO,aAAA,CAAA;AAC5D,QAAA;AACD,KAAA;AACD;AAEA,MAAM4F,mBAAmB,CAACM,KAAAA,GAAAA;AACzB,IAAA,IAAIA,KAAK,CAAC,CAAA,CAAE,KAAK9F,SAAAA,IAAa8F,KAAK,CAAC,CAAA,CAAE,KAAKA,KAAK,CAAC,CAAA,CAAE,EAAE;AACpD,QAAA,OAAOA,KAAK,CAAC,CAAA,CAAE,CAACC,QAAQ,EAAA;AACzB,IAAA;IAEA,OAAO,CAAA,EAAGD,KAAK,CAAC,CAAA,CAAE,CAAC,GAAG,EAAEA,KAAK,CAAC,CAAA,CAAE,CAAA,CAAE;AACnC,CAAA;;;;"}
|
package/lib/lib.mjs
CHANGED
|
@@ -18,7 +18,7 @@ import { promisify } from 'util';
|
|
|
18
18
|
import simpleGit from 'simple-git';
|
|
19
19
|
import JSZip from 'jszip';
|
|
20
20
|
import { buffer } from 'node:stream/consumers';
|
|
21
|
-
import { resolveNamespaces, resolveNamespaceFullName } from '@intelligentgraphics/declarationbundler';
|
|
21
|
+
import { resolveNamespaces, findNamespaceByMemberSourceFile, resolveNamespaceFullName } from '@intelligentgraphics/declarationbundler';
|
|
22
22
|
|
|
23
23
|
const stripUtf8Bom = (text)=>{
|
|
24
24
|
// Catches EFBBBF (UTF-8 BOM) because the buffer-to-string
|
|
@@ -1443,7 +1443,7 @@ async function buildFolders(options) {
|
|
|
1443
1443
|
}
|
|
1444
1444
|
if (typescriptFiles.length > 0) {
|
|
1445
1445
|
if (isScriptPackageModules(tsConfig.options)) {
|
|
1446
|
-
const { createRollupBuildParticipant } = await import('./rollup-
|
|
1446
|
+
const { createRollupBuildParticipant } = await import('./rollup-CTNi9TK_.mjs');
|
|
1447
1447
|
manager.addParticipant("rollup", createRollupBuildParticipant(location, data, outputDirectory, !tsConfig.options.declaration));
|
|
1448
1448
|
} else {
|
|
1449
1449
|
manager.addParticipant("tsc", createTSCBuildParticipant(location, outputDirectory, // in the past we always created declaration files,
|
|
@@ -1511,7 +1511,7 @@ async function buildFoldersWatch(options) {
|
|
|
1511
1511
|
}
|
|
1512
1512
|
if (typescriptFiles.length > 0) {
|
|
1513
1513
|
if (isScriptPackageModules(tsConfig.options)) {
|
|
1514
|
-
const { createRollupWatchBuildParticipant } = await import('./rollup-
|
|
1514
|
+
const { createRollupWatchBuildParticipant } = await import('./rollup-CTNi9TK_.mjs');
|
|
1515
1515
|
manager.addParticipant("rollup", createRollupWatchBuildParticipant(location, data, outputDirectory, !tsConfig.options.declaration));
|
|
1516
1516
|
} else {
|
|
1517
1517
|
manager.addParticipant("tsc", createTSCWatchBuildParticipant(location, outputDirectory, // in the past we always created declaration files,
|
|
@@ -1660,7 +1660,7 @@ function applyTsConfigOptions(data) {
|
|
|
1660
1660
|
data.compilerOptions = data.compilerOptions ?? {};
|
|
1661
1661
|
data.compilerOptions.target = "esnext";
|
|
1662
1662
|
data.compilerOptions.lib = [
|
|
1663
|
-
"
|
|
1663
|
+
"es2024",
|
|
1664
1664
|
"dom"
|
|
1665
1665
|
];
|
|
1666
1666
|
data.compilerOptions.module = "es2015";
|
|
@@ -2383,15 +2383,18 @@ const releaseFolder = async (options)=>{
|
|
|
2383
2383
|
* Extracts and returns script array for _Index.json from a src folder
|
|
2384
2384
|
*
|
|
2385
2385
|
* @param folderPath path to a src folder
|
|
2386
|
-
*/ function generateIndex({ location, ignore = [], strictOptional
|
|
2386
|
+
*/ function generateIndex({ location, ignore = [], strictOptional }) {
|
|
2387
2387
|
const arr = [];
|
|
2388
2388
|
const existingIndex = readPackageCreatorIndex(location) ?? [];
|
|
2389
2389
|
const manifest = readPackageCreatorManifest(location);
|
|
2390
2390
|
const compilerOptions = readScriptPackageTSConfig(location).options;
|
|
2391
2391
|
const isModule = compilerOptions.module === ts.ModuleKind.ES2015 || compilerOptions.module === ts.ModuleKind.ESNext;
|
|
2392
|
+
if (strictOptional === undefined) {
|
|
2393
|
+
strictOptional = compilerOptions.strict === true || compilerOptions.strictNullChecks === true;
|
|
2394
|
+
}
|
|
2392
2395
|
const files = getPackageTypescriptFiles(location).filter((path)=>!ignore.some((suffix)=>path.endsWith(suffix)));
|
|
2393
2396
|
let program;
|
|
2394
|
-
let
|
|
2397
|
+
let rootNamespace;
|
|
2395
2398
|
if (isModule) {
|
|
2396
2399
|
const entryFilePath = resolveScriptPackageEntryModule(location, manifest);
|
|
2397
2400
|
if (entryFilePath === undefined) {
|
|
@@ -2408,19 +2411,21 @@ const releaseFolder = async (options)=>{
|
|
|
2408
2411
|
if (entryFile === undefined) {
|
|
2409
2412
|
throw new Error(`Failed to find entry module`);
|
|
2410
2413
|
}
|
|
2411
|
-
|
|
2414
|
+
rootNamespace = resolveNamespaces(entryFile, program, host, program.getTypeChecker(), manifest.Scope ?? manifest.Package);
|
|
2412
2415
|
} else {
|
|
2413
2416
|
program = ts.createProgram(files, {
|
|
2414
2417
|
allowJs: true
|
|
2415
2418
|
});
|
|
2416
|
-
namespaces = [];
|
|
2417
2419
|
}
|
|
2418
2420
|
const typeChecker = program.getTypeChecker();
|
|
2419
2421
|
files.forEach((file)=>{
|
|
2420
2422
|
// Create a Program to represent the project, then pull out the
|
|
2421
2423
|
// source file to parse its AST.
|
|
2422
2424
|
const sourceFile = program.getSourceFile(file);
|
|
2423
|
-
|
|
2425
|
+
if (sourceFile === undefined) {
|
|
2426
|
+
return;
|
|
2427
|
+
}
|
|
2428
|
+
const namespace = rootNamespace === undefined ? undefined : findNamespaceByMemberSourceFile(rootNamespace, sourceFile);
|
|
2424
2429
|
// Loop through the root AST nodes of the file
|
|
2425
2430
|
for (const scriptingClass of findScriptingClasses(sourceFile)){
|
|
2426
2431
|
if (scriptingClass.node.name === undefined) {
|
|
@@ -2433,9 +2438,6 @@ const releaseFolder = async (options)=>{
|
|
|
2433
2438
|
} else {
|
|
2434
2439
|
name = typeChecker.getFullyQualifiedName(typeChecker.getSymbolAtLocation(scriptingClass.node.name));
|
|
2435
2440
|
}
|
|
2436
|
-
if (name.length > 45) {
|
|
2437
|
-
throw new Error(`Package name length >45 '${name}'`);
|
|
2438
|
-
}
|
|
2439
2441
|
const parameterDeclaration = getScriptingClassParameterdeclaration(scriptingClass);
|
|
2440
2442
|
const parametersType = parameterDeclaration === undefined ? undefined : typeChecker.getTypeAtLocation(parameterDeclaration);
|
|
2441
2443
|
if (parametersType === undefined) {
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@intelligentgraphics/ig.gfx.packager",
|
|
3
|
-
"version": "3.1.0
|
|
4
|
-
"description": "IG.GFX.Packager 3.1.0
|
|
3
|
+
"version": "3.1.0",
|
|
4
|
+
"description": "IG.GFX.Packager 3.1.0 (3.1.0.100)",
|
|
5
5
|
"author": "Michael Beier <mb@intelligentgraphics.biz>",
|
|
6
6
|
"main": "lib/lib.mjs",
|
|
7
7
|
"types": "lib/lib.d.ts",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
33
|
"@intelligentgraphics/declarationbundler": "^0.4.4",
|
|
34
|
-
"@intelligentgraphics/ig.gfx.packager-babel-preset-es5": "^3.1.0
|
|
34
|
+
"@intelligentgraphics/ig.gfx.packager-babel-preset-es5": "^3.1.0",
|
|
35
35
|
"@rollup/plugin-alias": "^6.0.0",
|
|
36
36
|
"@rollup/plugin-babel": "^6.1.0",
|
|
37
37
|
"@rollup/plugin-commonjs": "^29.0.0",
|
package/readme.md
CHANGED
|
@@ -146,18 +146,69 @@ This command also allows the address and service to be overwritten. A list of al
|
|
|
146
146
|
npm run upload -- --help
|
|
147
147
|
```
|
|
148
148
|
|
|
149
|
-
### Using
|
|
149
|
+
### Using ecma script modules
|
|
150
150
|
|
|
151
|
-
|
|
151
|
+
Using ecma script modules is the modern and standard way of writing typescript and javascript code. Instead of the content of all files existing in a shared global space, each file can have it's own private variables and functions, that no other module can access. Using exports and imports, modules can explicitly use code from other files.
|
|
152
152
|
|
|
153
|
-
|
|
153
|
+
firstModule.ts
|
|
154
154
|
|
|
155
|
-
|
|
155
|
+
```ts
|
|
156
|
+
const a = 2;
|
|
157
|
+
export const b = 3;
|
|
158
|
+
|
|
159
|
+
export function calculate() {
|
|
160
|
+
return a + b;
|
|
161
|
+
}
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
secondModule.ts
|
|
165
|
+
|
|
166
|
+
```ts
|
|
167
|
+
import { b, calculate } from "./firstModule";
|
|
168
|
+
|
|
169
|
+
console.log(b); // 3
|
|
170
|
+
console.log(calculate()); // 5
|
|
171
|
+
|
|
172
|
+
export function calculateMore() {
|
|
173
|
+
return calculate() + b;
|
|
174
|
+
}
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
To decide which of the variables and functions of the modules of a package should be available to consumers of a package, an entry module is used that exports all the public variables and functions that should be available to users of the package.
|
|
178
|
+
|
|
179
|
+
index.ts
|
|
180
|
+
|
|
181
|
+
```ts
|
|
182
|
+
// Expose calculate to the consumers of the package
|
|
183
|
+
export { calculate } from "./firstModule";
|
|
184
|
+
// Expose all exports (just calculateMore in this case) of secondModule to the consumers of the package
|
|
185
|
+
export * from "./secondModule";
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
Ecma script modules are currently only supported for writing script packages, but not within the gfx engine when executing javascript. To allow them to be executed within the gfx engine, the modules are compiled to an output similar to the namespaces and modules used in the past. The value of the Scope, if available, or the Package fields of the \_Package.json files are used to automatically create a namespace for the code of your package.
|
|
189
|
+
|
|
190
|
+
\_Package.json
|
|
191
|
+
|
|
192
|
+
```json
|
|
193
|
+
{
|
|
194
|
+
"Package": "IG.Test"
|
|
195
|
+
}
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
IG.Test.js
|
|
199
|
+
|
|
200
|
+
```js
|
|
201
|
+
this.IG = this.IG || {};
|
|
202
|
+
this.IG.Test = {
|
|
203
|
+
calculate: function() {...},
|
|
204
|
+
calculateMore: function() {...}
|
|
205
|
+
}
|
|
206
|
+
```
|
|
156
207
|
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
208
|
+
**Benefits**
|
|
209
|
+
|
|
210
|
+
- automatic scoping of the code / no more manual creation of the namespaces
|
|
211
|
+
- support for javascript apis included in newer javascript language versions with automatic polyfills for older environments
|
|
161
212
|
|
|
162
213
|
**How**
|
|
163
214
|
|
|
@@ -166,18 +217,29 @@ To configure a package to use modules, you first need to add a `module` property
|
|
|
166
217
|
```json
|
|
167
218
|
{
|
|
168
219
|
"compilerOptions": {
|
|
169
|
-
"target": "
|
|
170
|
-
"lib": ["
|
|
220
|
+
"target": "esnext",
|
|
221
|
+
"lib": ["es2024", "dom"],
|
|
171
222
|
"module": "es2015"
|
|
172
223
|
}
|
|
173
224
|
}
|
|
174
225
|
```
|
|
175
226
|
|
|
176
|
-
|
|
227
|
+
Note: For module based packages typescript declaration files are not created by default. You can enable the creation of these files, by setting declaration to true in the compiler options of the tsconfig.json.
|
|
228
|
+
|
|
229
|
+
```json
|
|
230
|
+
{
|
|
231
|
+
"compilerOptions": {
|
|
232
|
+
"target": "esnext",
|
|
233
|
+
"lib": ["es2024", "dom"],
|
|
234
|
+
"module": "es2015",
|
|
235
|
+
"declaration": true
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
```
|
|
177
239
|
|
|
178
240
|
**Setup for a context package**
|
|
179
241
|
|
|
180
|
-
Context.ts
|
|
242
|
+
Scripts/Context.ts
|
|
181
243
|
|
|
182
244
|
```ts
|
|
183
245
|
/// <reference types="@intelligentgraphics/3d.igx.eval" />
|
|
@@ -193,13 +255,13 @@ export class Context {
|
|
|
193
255
|
|
|
194
256
|
**Setup for an evaluator package**
|
|
195
257
|
|
|
196
|
-
index.ts
|
|
258
|
+
Scripts/index.ts
|
|
197
259
|
|
|
198
260
|
```ts
|
|
199
261
|
export { MyEvaluator } from "./MyEvaluator";
|
|
200
262
|
```
|
|
201
263
|
|
|
202
|
-
MyEvaluator.ts
|
|
264
|
+
Scripts/MyEvaluator.ts
|
|
203
265
|
|
|
204
266
|
```ts
|
|
205
267
|
/// <reference types="@intelligentgraphics/3d.igx.eval" />
|
|
@@ -215,18 +277,12 @@ export class MyEvaluator {
|
|
|
215
277
|
|
|
216
278
|
Note: for mixed evaluator and context packages, you need to export the context class from the context file.
|
|
217
279
|
|
|
218
|
-
index.ts
|
|
280
|
+
Script/index.ts
|
|
219
281
|
|
|
220
282
|
```ts
|
|
221
283
|
export { Context } from "./Context";
|
|
222
284
|
```
|
|
223
285
|
|
|
224
|
-
**Compilation output**
|
|
225
|
-
|
|
226
|
-
There are no runtime differences between the compiled output of a modules package and a legacy namespace package. A user of a package (either as a library or directly in the graphical data) will not be aware of wether a package is written with ecmascript or legacy modules.
|
|
227
|
-
|
|
228
|
-
To achieve this, modules will be combined on compilation and exposed under the package name. Similar logic is also applied to the typescript declaration files generated for a package. When using a package as a library, the type declarations for both, a legacy namespace package and and ecmascript module package, need to be included through typescript references.
|
|
229
|
-
|
|
230
286
|
### Using ig libraries
|
|
231
287
|
|
|
232
288
|
**Installation**
|
|
@@ -371,12 +427,12 @@ An asset can be referenced using the following syntax:
|
|
|
371
427
|
```ts
|
|
372
428
|
class Test {
|
|
373
429
|
/**
|
|
374
|
-
* <img src="
|
|
430
|
+
* <img src="image.png" alt="a png image"/>
|
|
375
431
|
*/
|
|
376
432
|
}
|
|
377
433
|
```
|
|
378
434
|
|
|
379
|
-
The
|
|
435
|
+
The specified path will be resolved within a directory called `Media` next to the \_Package.json file.
|
|
380
436
|
|
|
381
437
|
### \_Index.json generation
|
|
382
438
|
|
|
@@ -466,7 +522,7 @@ The code snippet above will generate the following \_Index.json output:
|
|
|
466
522
|
]
|
|
467
523
|
```
|
|
468
524
|
|
|
469
|
-
Additionally when using the `--strictOptional
|
|
525
|
+
Additionally when using the `--strictOptional` or when strict/strictNullChecks is configured in the tsconfig.json, this command will also mark non optional parameters as required.
|
|
470
526
|
|
|
471
527
|
**Example for non optional parameters**
|
|
472
528
|
|
|
@@ -556,35 +612,11 @@ Afterwards you may need to reload your editor in order for the installed files t
|
|
|
556
612
|
|
|
557
613
|
## History
|
|
558
614
|
|
|
559
|
-
**IG.GFX.Packager 3.1.0-alpha.7**
|
|
560
|
-
|
|
561
|
-
- use write-package rather dependencies write-pkg
|
|
562
|
-
- drop skipDeclarations options, instead use tsconfig declarations field
|
|
563
|
-
- drop v8-compile-cache
|
|
564
|
-
|
|
565
|
-
**IG.GFX.Packager 3.1.0-alpha.6**
|
|
566
|
-
|
|
567
|
-
- update typescript
|
|
568
|
-
|
|
569
|
-
**IG.GFX.Packager 3.1.0-alpha.5**
|
|
570
|
-
|
|
571
|
-
- drop lodash dependency
|
|
572
|
-
- update dependencies
|
|
573
|
-
|
|
574
|
-
**IG.GFX.Packager 3.1.0-alpha.4**
|
|
575
|
-
|
|
576
|
-
- skip rollup write for watch build
|
|
577
|
-
|
|
578
|
-
**IG.GFX.Packager 3.1.0-alpha.3**
|
|
579
|
-
|
|
580
|
-
- add support for skipping declaration file creation
|
|
581
|
-
- fix entry point for declaration bundling
|
|
582
|
-
|
|
583
615
|
**IG.GFX.Packager 3.1.0**
|
|
584
616
|
|
|
585
|
-
- compile js for node 20+
|
|
586
617
|
- introduce es modules support for script packages
|
|
587
618
|
- automatically generate a console.log statement with the package name, version and copyright string from \_package.json if no version.ts is detected
|
|
619
|
+
- upgrade to typescript 5.9
|
|
588
620
|
|
|
589
621
|
**IG.GFX.Packager 3.0.28**
|
|
590
622
|
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generateIndex-Cf7p2QcW.mjs","sources":["../src/commands/generateIndex.ts"],"sourcesContent":["import ts from \"typescript\";\nimport * as fs from \"fs\";\nimport * as path from \"path\";\n\nimport {\n\tresolveNamespaceFullName,\n\tresolveNamespaces,\n\tNamespace,\n} from \"@intelligentgraphics/declarationbundler\";\n\nimport {\n\tPackageLocation,\n\twritePackageCreatorIndex,\n\treadPackageCreatorIndex,\n\treadPackageCreatorManifest,\n} from \"../lib/package\";\nimport {\n\tgetPackageTypescriptFiles,\n\treadScriptPackageTSConfig,\n\tresolveScriptPackageEntryModule,\n} from \"../lib/scripts\";\nimport {\n\tCreatorIndexEntry,\n\tCreatorIndexParameter,\n\tCreatorIndexParameterType,\n} from \"../lib/package\";\n\nexport interface GenerateIndexOptions {\n\tignore?: string[];\n\tlocation: PackageLocation;\n\n\t/**\n\t * Marks non optional parameter object properties as required in the generated index\n\t *\n\t * @type {boolean}\n\t */\n\tstrictOptional?: boolean;\n}\n\n/**\n * Extracts and returns script array for _Index.json from a src folder\n *\n * @param folderPath path to a src folder\n */\nexport function generateIndex({\n\tlocation,\n\tignore = [],\n\tstrictOptional = false,\n}: GenerateIndexOptions) {\n\tconst arr: CreatorIndexEntry[] = [];\n\n\tconst existingIndex = readPackageCreatorIndex(location) ?? [];\n\tconst manifest = readPackageCreatorManifest(location);\n\n\tconst compilerOptions = readScriptPackageTSConfig(location).options;\n\n\tconst isModule =\n\t\tcompilerOptions.module === ts.ModuleKind.ES2015 ||\n\t\tcompilerOptions.module === ts.ModuleKind.ESNext;\n\n\tconst files = getPackageTypescriptFiles(location).filter(\n\t\t(path) => !ignore.some((suffix) => path.endsWith(suffix)),\n\t);\n\n\tlet program: ts.Program;\n\tlet namespaces: Namespace[];\n\n\tif (isModule) {\n\t\tconst entryFilePath = resolveScriptPackageEntryModule(\n\t\t\tlocation,\n\t\t\tmanifest,\n\t\t);\n\n\t\tif (entryFilePath === undefined) {\n\t\t\tthrow new Error(`Could not resolve entry module`);\n\t\t}\n\n\t\tconst host = ts.createCompilerHost({}, true);\n\t\tprogram = ts.createProgram(\n\t\t\t[entryFilePath],\n\t\t\t{ allowJs: true, ...compilerOptions },\n\t\t\thost,\n\t\t);\n\n\t\tconst entryFile = program.getSourceFile(entryFilePath);\n\n\t\tif (entryFile === undefined) {\n\t\t\tthrow new Error(`Failed to find entry module`);\n\t\t}\n\n\t\tnamespaces = resolveNamespaces(\n\t\t\tentryFile,\n\t\t\tprogram,\n\t\t\thost,\n\t\t\tmanifest.Scope ?? manifest.Package,\n\t\t);\n\t} else {\n\t\tprogram = ts.createProgram(files, { allowJs: true });\n\t\tnamespaces = [];\n\t}\n\n\tconst typeChecker = program.getTypeChecker();\n\n\tfiles.forEach((file) => {\n\t\t// Create a Program to represent the project, then pull out the\n\t\t// source file to parse its AST.\n\t\tconst sourceFile = program.getSourceFile(file)!;\n\t\tconst namespace = namespaces.find((namespace) =>\n\t\t\tnamespace.files.includes(sourceFile),\n\t\t);\n\n\t\t// Loop through the root AST nodes of the file\n\n\t\tfor (const scriptingClass of findScriptingClasses(sourceFile)) {\n\t\t\tif (scriptingClass.node.name === undefined) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Expected ${scriptingClass.type} class to have a name`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tlet name: string;\n\n\t\t\tif (isModule && namespace !== undefined) {\n\t\t\t\tconst moduleNamespace = resolveNamespaceFullName(namespace);\n\t\t\t\tname = `${moduleNamespace}.${scriptingClass.node.name.text}`;\n\t\t\t} else {\n\t\t\t\tname = typeChecker.getFullyQualifiedName(\n\t\t\t\t\ttypeChecker.getSymbolAtLocation(scriptingClass.node.name)!,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (name.length > 45) {\n\t\t\t\tthrow new Error(`Package name length >45 '${name}'`);\n\t\t\t}\n\n\t\t\tconst parameterDeclaration =\n\t\t\t\tgetScriptingClassParameterdeclaration(scriptingClass);\n\n\t\t\tconst parametersType =\n\t\t\t\tparameterDeclaration === undefined\n\t\t\t\t\t? undefined\n\t\t\t\t\t: typeChecker.getTypeAtLocation(parameterDeclaration);\n\n\t\t\tif (parametersType === undefined) {\n\t\t\t\tconsole.log(\n\t\t\t\t\t`Failed to find parameters type declaration for ${scriptingClass.type} ${name}. Skipping parameter list generation`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst existingIndexEntry = existingIndex.find(\n\t\t\t\t(entry) => entry.Name === name,\n\t\t\t);\n\n\t\t\tconst obj: CreatorIndexEntry = {\n\t\t\t\tName: name,\n\t\t\t\tDescription: existingIndexEntry?.Description ?? name,\n\t\t\t\tType:\n\t\t\t\t\tscriptingClass.type === \"evaluator\"\n\t\t\t\t\t\t? \"Evaluator\"\n\t\t\t\t\t\t: \"Interactor\",\n\t\t\t\tParameters: [],\n\t\t\t};\n\n\t\t\tconst rawDocTags = ts.getJSDocTags(scriptingClass.node);\n\n\t\t\tconst dict = getTagDict(rawDocTags);\n\t\t\tif (dict.summary) {\n\t\t\t\tobj.Description = dict.summary;\n\t\t\t} else {\n\t\t\t\tconst comment = typeChecker\n\t\t\t\t\t.getTypeAtLocation(scriptingClass.node)\n\t\t\t\t\t.symbol.getDocumentationComment(typeChecker)\n\t\t\t\t\t.map((comment) => comment.text)\n\t\t\t\t\t.join(\" \");\n\n\t\t\t\tif (comment) {\n\t\t\t\t\tobj.Description = comment;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (parametersType !== undefined) {\n\t\t\t\tobj.Parameters = parseParametersList(\n\t\t\t\t\ttypeChecker.getPropertiesOfType(parametersType),\n\t\t\t\t\tstrictOptional,\n\t\t\t\t);\n\n\t\t\t\tif (\n\t\t\t\t\tobj.Parameters.length === 0 &&\n\t\t\t\t\tparametersType.getStringIndexType() !== undefined\n\t\t\t\t) {\n\t\t\t\t\tobj.Parameters = existingIndexEntry?.Parameters ?? [];\n\t\t\t\t}\n\t\t\t} else if (existingIndexEntry !== undefined) {\n\t\t\t\tobj.Parameters = existingIndexEntry.Parameters;\n\t\t\t}\n\n\t\t\tarr.push(obj);\n\t\t}\n\t});\n\n\tarr.sort((a, b) => a.Name.localeCompare(b.Name));\n\n\twritePackageCreatorIndex(location, arr);\n}\n\nfunction capitalizeFirstLetter(string: string) {\n\treturn string?.charAt(0).toUpperCase() + string?.slice(1);\n}\n\nconst parseDefault = (value: string, type: string) => {\n\tconst uType: CreatorIndexParameterType = capitalizeFirstLetter(\n\t\ttype,\n\t) as CreatorIndexParameterType;\n\tif (value === \"null\") return null;\n\tswitch (uType) {\n\t\tcase \"LengthM\":\n\t\tcase \"ArcDEG\":\n\t\tcase \"Float\":\n\t\t\treturn parseFloat(value);\n\t\tcase \"Integer\":\n\t\tcase \"Int\":\n\t\t\treturn parseInt(value);\n\t\tcase \"Boolean\":\n\t\tcase \"Bool\":\n\t\t\treturn value === \"true\";\n\t\tcase \"Material\":\n\t\tcase \"String\":\n\t\tcase \"Geometry\":\n\t\tdefault:\n\t\t\treturn value.replace(/^\"/, \"\").replace(/\"$/, \"\");\n\t}\n};\n\nconst parseTypeFromName = (\n\tname: string,\n): CreatorIndexParameterType | undefined => {\n\tconst parts = name.split(\".\");\n\tconst identifier = parts[parts.length - 1];\n\n\tswitch (identifier) {\n\t\tcase \"LengthM\":\n\t\tcase \"ArcDEG\":\n\t\tcase \"Float\":\n\t\tcase \"Integer\":\n\t\t\treturn identifier;\n\t\tcase \"GeometryReference\":\n\t\t\treturn \"Geometry\";\n\t\tcase \"MaterialReference\":\n\t\t\treturn \"Material\";\n\t\tcase \"AnimationReference\":\n\t\t\treturn \"Animation\";\n\t\tcase \"InteractorReference\":\n\t\t\treturn \"Interactor\";\n\t\tcase \"EvaluatorReference\":\n\t\t\treturn \"Evaluator\";\n\t\tcase \"String\":\n\t\tcase \"string\":\n\t\t\treturn \"String\";\n\t\tcase \"number\":\n\t\tcase \"Number\":\n\t\t\treturn \"Float\";\n\t\tcase \"boolean\":\n\t\tcase \"Boolean\":\n\t\t\treturn \"Boolean\";\n\t}\n};\n\nconst parseParametersList = (\n\tproperties: ts.Symbol[],\n\tstrictOptional: boolean,\n): CreatorIndexParameter[] => {\n\treturn properties.map((symbol, i) => {\n\t\tconst parameter: CreatorIndexParameter = {\n\t\t\tName: symbol.name,\n\t\t\tDescription: undefined,\n\t\t\tType: \"String\",\n\t\t\tDefault: undefined,\n\t\t\tDisplayIndex: i + 1,\n\t\t};\n\n\t\tif (parameter.Name.length > 45) {\n\t\t\tthrow new Error(`Parameter name length >45 '${parameter.Name}'`);\n\t\t}\n\n\t\tlet declaration: ts.Declaration | undefined =\n\t\t\tsymbol.getDeclarations()?.[0];\n\t\tlet documentationComment = symbol.getDocumentationComment(undefined);\n\n\t\tlet checkLinksSymbol: ts.Symbol | undefined = symbol;\n\n\t\twhile (checkLinksSymbol !== undefined && declaration === undefined) {\n\t\t\tconst links = (\n\t\t\t\tcheckLinksSymbol as {\n\t\t\t\t\tlinks?: {\n\t\t\t\t\t\tmappedType?: ts.Type;\n\t\t\t\t\t\tsyntheticOrigin?: ts.Symbol;\n\t\t\t\t\t};\n\t\t\t\t} & ts.Symbol\n\t\t\t).links;\n\n\t\t\tif (links?.syntheticOrigin) {\n\t\t\t\tdeclaration = links.syntheticOrigin.getDeclarations()?.[0];\n\n\t\t\t\tif (documentationComment.length === 0) {\n\t\t\t\t\tdocumentationComment =\n\t\t\t\t\t\tlinks.syntheticOrigin.getDocumentationComment(\n\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tcheckLinksSymbol = links.syntheticOrigin;\n\t\t\t}\n\t\t}\n\n\t\tif (declaration !== undefined) {\n\t\t\tconst rawDocTags = ts.getJSDocTags(declaration);\n\n\t\t\tconst dict = getTagDict(rawDocTags);\n\n\t\t\tif (dict.summary) {\n\t\t\t\tparameter.Description = dict.summary;\n\t\t\t} else {\n\t\t\t\tconst comment = documentationComment\n\t\t\t\t\t.map((comment) => comment.text)\n\t\t\t\t\t.join(\" \");\n\n\t\t\t\tif (comment) {\n\t\t\t\t\tparameter.Description = comment;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (dict.creatorType) {\n\t\t\t\tparameter.Type = dict.creatorType as CreatorIndexParameterType;\n\t\t\t} else {\n\t\t\t\tconst propertySignature = declaration as ts.PropertySignature;\n\t\t\t\tif (propertySignature.type !== undefined) {\n\t\t\t\t\tconst parsedType = parseTypeFromName(\n\t\t\t\t\t\tpropertySignature.type.getText(),\n\t\t\t\t\t);\n\n\t\t\t\t\tif (parsedType !== undefined) {\n\t\t\t\t\t\tparameter.Type = parsedType;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (dict.default) {\n\t\t\t\tparameter.Default = parseDefault(dict.default, parameter.Type);\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tstrictOptional &&\n\t\t\t\tdeclaration.kind === ts.SyntaxKind.PropertySignature\n\t\t\t) {\n\t\t\t\tconst propertySignature = declaration as ts.PropertySignature;\n\t\t\t\tif (propertySignature.questionToken === undefined) {\n\t\t\t\t\tparameter.Required = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn parameter;\n\t});\n};\n\ninterface IDocTags {\n\tdefault?: string;\n\tcreatorType?: string;\n\tsummary?: string;\n}\n\nfunction getTagDict(tags: readonly ts.JSDocTag[]): IDocTags {\n\tconst dict: IDocTags = {};\n\n\tfor (const tag of tags) {\n\t\tdict[tag.tagName.text] = tag.comment;\n\t}\n\n\treturn dict;\n}\n\nconst getScriptingClassParameterdeclaration = (\n\tscriptingClass: ScriptingClass,\n) => {\n\tfor (const member of scriptingClass.node.members) {\n\t\tif (ts.isMethodDeclaration(member)) {\n\t\t\tfor (let index = 0; index < member.parameters.length; index++) {\n\t\t\t\tconst parameter = member.parameters[index];\n\t\t\t\tif (\n\t\t\t\t\tisScriptingClassParameterDeclaration(\n\t\t\t\t\t\tscriptingClass,\n\t\t\t\t\t\tmember,\n\t\t\t\t\t\tindex,\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\treturn parameter;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (ts.isConstructorDeclaration(member)) {\n\t\t\tfor (let index = 0; index < member.parameters.length; index++) {\n\t\t\t\tconst parameter = member.parameters[index];\n\t\t\t\tif (\n\t\t\t\t\tisScriptingClassParameterDeclaration(\n\t\t\t\t\t\tscriptingClass,\n\t\t\t\t\t\tmember,\n\t\t\t\t\t\tindex,\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\treturn parameter;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\nconst isScriptingClassParameterDeclaration = (\n\tscriptingClass: ScriptingClass,\n\tmemberNode: ts.ClassElement,\n\tparameterIndex: number,\n) => {\n\tif (scriptingClass.type === \"evaluator\") {\n\t\treturn memberNode?.name?.getText() == \"Create\" && parameterIndex === 2;\n\t}\n\tif (scriptingClass.type === \"interactor\") {\n\t\treturn (\n\t\t\tmemberNode.kind === ts.SyntaxKind.Constructor &&\n\t\t\tparameterIndex === 0\n\t\t);\n\t}\n\treturn false;\n};\n\ninterface ScriptingClass {\n\tnode: ts.ClassDeclaration;\n\ttype: \"interactor\" | \"evaluator\";\n}\n\n/**\n * Finds interactors and evaluators within a script file\n *\n * @param {ts.Node} node\n * @return {*}\n */\nfunction* findScriptingClasses(\n\tnode: ts.Node,\n): Generator<ScriptingClass, void, void> {\n\tfor (const child of node.getChildren()) {\n\t\tif (!ts.isClassDeclaration(child)) {\n\t\t\tyield* findScriptingClasses(child);\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst scriptingClass = detectScriptingClass(child);\n\n\t\tif (scriptingClass !== undefined) {\n\t\t\tyield scriptingClass;\n\t\t}\n\t}\n}\n\nconst detectScriptingClass = (\n\tnode: ts.ClassDeclaration,\n): ScriptingClass | undefined => {\n\tconst isEvaluator = node.heritageClauses?.some((clause) => {\n\t\tif (\n\t\t\tclause.token !== ts.SyntaxKind.ExtendsKeyword &&\n\t\t\tclause.token !== ts.SyntaxKind.ImplementsKeyword\n\t\t) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn clause.types.some((type) =>\n\t\t\ttype.getText().includes(\"Evaluator\"),\n\t\t);\n\t});\n\n\tif (isEvaluator) {\n\t\treturn {\n\t\t\tnode,\n\t\t\ttype: \"evaluator\",\n\t\t};\n\t}\n\n\tconst isInteractor = node.heritageClauses?.some((clause) => {\n\t\tif (clause.token !== ts.SyntaxKind.ExtendsKeyword) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn clause.types.some((type) =>\n\t\t\ttype.getText().includes(\"Interactor\"),\n\t\t);\n\t});\n\n\tif (isInteractor) {\n\t\treturn {\n\t\t\tnode,\n\t\t\ttype: \"interactor\",\n\t\t};\n\t}\n};\n"],"names":["generateIndex","location","ignore","strictOptional","arr","existingIndex","readPackageCreatorIndex","manifest","readPackageCreatorManifest","compilerOptions","readScriptPackageTSConfig","options","isModule","module","ts","ModuleKind","ES2015","ESNext","files","getPackageTypescriptFiles","filter","path","some","suffix","endsWith","program","namespaces","entryFilePath","resolveScriptPackageEntryModule","undefined","Error","host","createCompilerHost","createProgram","allowJs","entryFile","getSourceFile","resolveNamespaces","Scope","Package","typeChecker","getTypeChecker","forEach","file","sourceFile","namespace","find","includes","scriptingClass","findScriptingClasses","node","name","type","moduleNamespace","resolveNamespaceFullName","text","getFullyQualifiedName","getSymbolAtLocation","length","parameterDeclaration","getScriptingClassParameterdeclaration","parametersType","getTypeAtLocation","console","log","existingIndexEntry","entry","Name","obj","Description","Type","Parameters","rawDocTags","getJSDocTags","dict","getTagDict","summary","comment","symbol","getDocumentationComment","map","join","parseParametersList","getPropertiesOfType","getStringIndexType","push","sort","a","b","localeCompare","writePackageCreatorIndex","capitalizeFirstLetter","string","charAt","toUpperCase","slice","parseDefault","value","uType","parseFloat","parseInt","replace","parseTypeFromName","parts","split","identifier","properties","i","parameter","Default","DisplayIndex","declaration","getDeclarations","documentationComment","checkLinksSymbol","links","syntheticOrigin","creatorType","propertySignature","parsedType","getText","default","kind","SyntaxKind","PropertySignature","questionToken","Required","tags","tag","tagName","member","members","isMethodDeclaration","index","parameters","isScriptingClassParameterDeclaration","isConstructorDeclaration","memberNode","parameterIndex","Constructor","child","getChildren","isClassDeclaration","detectScriptingClass","isEvaluator","heritageClauses","clause","token","ExtendsKeyword","ImplementsKeyword","types","isInteractor"],"mappings":"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"}
|