@intelligentgraphics/ig.gfx.packager 3.1.0-alpha.5 → 3.1.0-alpha.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/build/bin.mjs +1 -2
  2. package/build/bin.mjs.map +1 -1
  3. package/build/{cli-sBIEQH_m.mjs → cli-IlMWNOvf.mjs} +18 -16
  4. package/build/cli-IlMWNOvf.mjs.map +1 -0
  5. package/build/{dependencies-DHQlbmdd.mjs → dependencies-CPZzEh3z.mjs} +2 -2
  6. package/build/{dependencies-DHQlbmdd.mjs.map → dependencies-CPZzEh3z.mjs.map} +1 -1
  7. package/build/docs-BlCIta3Y.mjs +37 -0
  8. package/build/docs-BlCIta3Y.mjs.map +1 -0
  9. package/build/{generateIndex-C--2euvA.mjs → generateIndex-Cf7p2QcW.mjs} +4 -4
  10. package/build/{generateIndex-C--2euvA.mjs.map → generateIndex-Cf7p2QcW.mjs.map} +1 -1
  11. package/build/{generateParameterType-BHVKwPrn.mjs → generateParameterType-Cdp9a31q.mjs} +3 -3
  12. package/build/{generateParameterType-BHVKwPrn.mjs.map → generateParameterType-Cdp9a31q.mjs.map} +1 -1
  13. package/build/{index-50hVP5ou.mjs → index-Dcu2jMcl.mjs} +7 -8
  14. package/build/{index-50hVP5ou.mjs.map → index-Dcu2jMcl.mjs.map} +1 -1
  15. package/build/{index-BsakORqB.mjs → index-w4ax9Zlz.mjs} +54 -50
  16. package/build/index-w4ax9Zlz.mjs.map +1 -0
  17. package/build/{postinstall-DBSj4Bwh.mjs → postinstall-Cb7g6gsR.mjs} +4 -4
  18. package/build/{postinstall-DBSj4Bwh.mjs.map → postinstall-Cb7g6gsR.mjs.map} +1 -1
  19. package/build/{publishNpm-CBY7sxWk.mjs → publishNpm-29blnfYN.mjs} +6 -7
  20. package/build/{publishNpm-CBY7sxWk.mjs.map → publishNpm-29blnfYN.mjs.map} +1 -1
  21. package/build/{rollup-DakgWejt.mjs → rollup-DoDZFLyJ.mjs} +19 -15
  22. package/build/rollup-DoDZFLyJ.mjs.map +1 -0
  23. package/build/{scripts-BmQnbRem.mjs → scripts-B3noxiX3.mjs} +2 -2
  24. package/build/{scripts-BmQnbRem.mjs.map → scripts-B3noxiX3.mjs.map} +1 -1
  25. package/build/{versionFile-DLMeLtg7.mjs → versionFile-_S1eIMrS.mjs} +4 -4
  26. package/build/{versionFile-DLMeLtg7.mjs.map → versionFile-_S1eIMrS.mjs.map} +1 -1
  27. package/lib/lib.mjs +50 -47
  28. package/package.json +5 -7
  29. package/readme.md +10 -0
  30. package/build/cli-sBIEQH_m.mjs.map +0 -1
  31. package/build/index-BsakORqB.mjs.map +0 -1
  32. package/build/rollup-DakgWejt.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"generateParameterType-BHVKwPrn.mjs","sources":["../src/commands/generateParameterType.ts"],"sourcesContent":["import ts from \"typescript\";\nimport * as fs from \"fs\";\nimport * as path from \"path\";\nimport * as os from \"os\";\n\nimport {\n\tPackageLocation,\n\tgetCreatorIndexParameterPrimaryJSType,\n\treadPackageCreatorIndex,\n\treadPackageCreatorManifest,\n} from \"@intelligentgraphics/ig.gfx.tools.core\";\n\nexport interface GenerateParameterTypeOptions {\n\tlocation: PackageLocation;\n\tname: string;\n}\n\nexport const generateParameterType = ({\n\tlocation,\n\tname,\n}: GenerateParameterTypeOptions) => {\n\tconst index = readPackageCreatorIndex(location);\n\tconst manifest = readPackageCreatorManifest(location);\n\n\tif (index === undefined) {\n\t\tthrow new Error(`Could not find the _Index.json file`);\n\t}\n\n\tlet qualifiedName = name;\n\tlet className = name;\n\n\tconst scope = manifest.Scope ?? manifest.Package;\n\n\tif (name.startsWith(scope)) {\n\t\tclassName = name.slice(scope.length + 1);\n\t} else {\n\t\tqualifiedName = `${scope}.${name}`;\n\t}\n\n\tconst informations = index.find((item) => item.Name === qualifiedName);\n\n\tif (informations === undefined) {\n\t\tthrow new Error(`Could not find an index entry for ${name}`);\n\t}\n\n\tconst members: ts.TypeElement[] = [];\n\n\tif (informations.Parameters !== undefined) {\n\t\tconst sortedList = informations.Parameters.slice();\n\t\tsortedList.sort((a, b) => a.DisplayIndex - b.DisplayIndex);\n\n\t\tfor (const parameter of sortedList) {\n\t\t\tconst jsType = getCreatorIndexParameterPrimaryJSType(\n\t\t\t\tparameter.Type,\n\t\t\t);\n\n\t\t\tconst type =\n\t\t\t\tjsType === \"string\"\n\t\t\t\t\t? ts.factory.createTypeReferenceNode(\"string\")\n\t\t\t\t\t: ts.factory.createUnionTypeNode([\n\t\t\t\t\t\t\tts.factory.createTypeReferenceNode(jsType),\n\t\t\t\t\t\t\tts.factory.createTypeReferenceNode(\"string\"),\n\t\t\t\t\t ]);\n\n\t\t\tlet propertySignature = ts.factory.createPropertySignature(\n\t\t\t\tundefined,\n\t\t\t\tparameter.Name,\n\t\t\t\tparameter.Required\n\t\t\t\t\t? undefined\n\t\t\t\t\t: ts.factory.createToken(ts.SyntaxKind.QuestionToken),\n\t\t\t\ttype,\n\t\t\t);\n\n\t\t\tconst jsdocParts: string[] = [];\n\n\t\t\tif (parameter.Description !== undefined) {\n\t\t\t\tjsdocParts.push(parameter.Description, \"\");\n\t\t\t}\n\n\t\t\tjsdocParts.push(`@creatorType ${parameter.Type}`);\n\n\t\t\tif (jsType === \"string\") {\n\t\t\t\tjsdocParts.push(`@default \"${parameter.Default}\"`);\n\t\t\t} else {\n\t\t\t\tjsdocParts.push(`@default ${parameter.Default}`);\n\t\t\t}\n\n\t\t\tconst jsdocContent = jsdocParts\n\t\t\t\t.map((part) => `* ${part}`)\n\t\t\t\t.join(\"\\n \");\n\t\t\tpropertySignature = ts.addSyntheticLeadingComment(\n\t\t\t\tpropertySignature,\n\t\t\t\tts.SyntaxKind.MultiLineCommentTrivia,\n\t\t\t\t`*\\n ${jsdocContent}\\n `,\n\t\t\t\ttrue,\n\t\t\t);\n\n\t\t\tmembers.push(propertySignature);\n\t\t}\n\t}\n\n\tconst interfaceName = `${className}Params`;\n\n\tlet interfaceDeclaration = ts.factory.createInterfaceDeclaration(\n\t\tundefined,\n\t\tinterfaceName,\n\t\tundefined,\n\t\tundefined,\n\t\tmembers,\n\t);\n\n\tinterfaceDeclaration = ts.addSyntheticLeadingComment(\n\t\tinterfaceDeclaration,\n\t\tts.SyntaxKind.MultiLineCommentTrivia,\n\t\t`*\\n * Parameters for the ${className} class\\n `,\n\t\ttrue,\n\t);\n\n\tconst printer = ts.createPrinter();\n\tconst content = printer\n\t\t.printNode(\n\t\t\tts.EmitHint.Unspecified,\n\t\t\tinterfaceDeclaration,\n\t\t\tts.createSourceFile(\"index.ts\", \"\", ts.ScriptTarget.Latest),\n\t\t)\n\t\t.replace(/ /g, \"\\t\");\n\n\tconst outFile = path.join(location.scriptsDir, `${interfaceName}.txt`);\n\n\tfs.writeFileSync(\n\t\toutFile,\n\t\t`Generated parameters interface for ${className}. Insert the interface declaration next to the class and use it as the type for the parameters. Afterwards you can delete this file.` +\n\t\t\tos.EOL +\n\t\t\tos.EOL +\n\t\t\tcontent,\n\t);\n};\n"],"names":["generateParameterType","location","name","index","readPackageCreatorIndex","manifest","readPackageCreatorManifest","undefined","Error","qualifiedName","className","scope","Scope","Package","startsWith","slice","length","informations","find","item","Name","members","Parameters","sortedList","sort","a","b","DisplayIndex","parameter","jsType","getCreatorIndexParameterPrimaryJSType","Type","type","ts","factory","createTypeReferenceNode","createUnionTypeNode","propertySignature","createPropertySignature","Required","createToken","SyntaxKind","QuestionToken","jsdocParts","Description","push","Default","jsdocContent","map","part","join","addSyntheticLeadingComment","MultiLineCommentTrivia","interfaceName","interfaceDeclaration","createInterfaceDeclaration","printer","createPrinter","content","printNode","EmitHint","Unspecified","createSourceFile","ScriptTarget","Latest","replace","outFile","path","scriptsDir","fs","writeFileSync","os","EOL"],"mappings":";;;;;;;;;;;;;;MAiBaA,qBAAAA,GAAwB,CAAC,EACrCC,QAAQ,EACRC,IAAI,EAC0B,GAAA;AAC9B,IAAA,MAAMC,QAAQC,uBAAAA,CAAwBH,QAAAA,CAAAA;AACtC,IAAA,MAAMI,WAAWC,0BAAAA,CAA2BL,QAAAA,CAAAA;AAE5C,IAAA,IAAIE,UAAUI,SAAAA,EAAW;AACxB,QAAA,MAAM,IAAIC,KAAAA,CAAM,CAAC,mCAAmC,CAAC,CAAA;AACtD,IAAA;AAEA,IAAA,IAAIC,aAAAA,GAAgBP,IAAAA;AACpB,IAAA,IAAIQ,SAAAA,GAAYR,IAAAA;AAEhB,IAAA,MAAMS,KAAAA,GAAQN,QAAAA,CAASO,KAAK,IAAIP,SAASQ,OAAO;IAEhD,IAAIX,IAAAA,CAAKY,UAAU,CAACH,KAAAA,CAAAA,EAAQ;AAC3BD,QAAAA,SAAAA,GAAYR,IAAAA,CAAKa,KAAK,CAACJ,KAAAA,CAAMK,MAAM,GAAG,CAAA,CAAA;IACvC,CAAA,MAAO;AACNP,QAAAA,aAAAA,GAAgB,CAAA,EAAGE,KAAAA,CAAM,CAAC,EAAET,IAAAA,CAAAA,CAAM;AACnC,IAAA;IAEA,MAAMe,YAAAA,GAAed,MAAMe,IAAI,CAAC,CAACC,IAAAA,GAASA,IAAAA,CAAKC,IAAI,KAAKX,aAAAA,CAAAA;AAExD,IAAA,IAAIQ,iBAAiBV,SAAAA,EAAW;AAC/B,QAAA,MAAM,IAAIC,KAAAA,CAAM,CAAC,kCAAkC,EAAEN,IAAAA,CAAAA,CAAM,CAAA;AAC5D,IAAA;AAEA,IAAA,MAAMmB,UAA4B,EAAE;IAEpC,IAAIJ,YAAAA,CAAaK,UAAU,KAAKf,SAAAA,EAAW;AAC1C,QAAA,MAAMgB,UAAAA,GAAaN,YAAAA,CAAaK,UAAU,CAACP,KAAK,EAAA;QAChDQ,UAAAA,CAAWC,IAAI,CAAC,CAACC,CAAAA,EAAGC,IAAMD,CAAAA,CAAEE,YAAY,GAAGD,CAAAA,CAAEC,YAAY,CAAA;QAEzD,KAAK,MAAMC,aAAaL,UAAAA,CAAY;YACnC,MAAMM,MAAAA,GAASC,qCAAAA,CACdF,SAAAA,CAAUG,IAAI,CAAA;AAGf,YAAA,MAAMC,IAAAA,GACLH,MAAAA,KAAW,QAAA,GACRI,EAAAA,CAAGC,OAAO,CAACC,uBAAuB,CAAC,QAAA,CAAA,GACnCF,EAAAA,CAAGC,OAAO,CAACE,mBAAmB,CAAC;gBAC/BH,EAAAA,CAAGC,OAAO,CAACC,uBAAuB,CAACN,MAAAA,CAAAA;gBACnCI,EAAAA,CAAGC,OAAO,CAACC,uBAAuB,CAAC,QAAA;AAClC,aAAA,CAAA;YAEL,IAAIE,iBAAAA,GAAoBJ,GAAGC,OAAO,CAACI,uBAAuB,CACzD/B,SAAAA,EACAqB,SAAAA,CAAUR,IAAI,EACdQ,SAAAA,CAAUW,QAAQ,GACfhC,SAAAA,GACA0B,EAAAA,CAAGC,OAAO,CAACM,WAAW,CAACP,EAAAA,CAAGQ,UAAU,CAACC,aAAa,CAAA,EACrDV,IAAAA,CAAAA;AAGD,YAAA,MAAMW,aAAuB,EAAE;YAE/B,IAAIf,SAAAA,CAAUgB,WAAW,KAAKrC,SAAAA,EAAW;AACxCoC,gBAAAA,UAAAA,CAAWE,IAAI,CAACjB,SAAAA,CAAUgB,WAAW,EAAE,EAAA,CAAA;AACxC,YAAA;AAEAD,YAAAA,UAAAA,CAAWE,IAAI,CAAC,CAAC,aAAa,EAAEjB,SAAAA,CAAUG,IAAI,CAAA,CAAE,CAAA;AAEhD,YAAA,IAAIF,WAAW,QAAA,EAAU;gBACxBc,UAAAA,CAAWE,IAAI,CAAC,CAAC,UAAU,EAAEjB,SAAAA,CAAUkB,OAAO,CAAC,CAAC,CAAC,CAAA;YAClD,CAAA,MAAO;AACNH,gBAAAA,UAAAA,CAAWE,IAAI,CAAC,CAAC,SAAS,EAAEjB,SAAAA,CAAUkB,OAAO,CAAA,CAAE,CAAA;AAChD,YAAA;AAEA,YAAA,MAAMC,YAAAA,GAAeJ,UAAAA,CACnBK,GAAG,CAAC,CAACC,IAAAA,GAAS,CAAC,EAAE,EAAEA,IAAAA,CAAAA,CAAM,CAAA,CACzBC,IAAI,CAAC,KAAA,CAAA;AACPb,YAAAA,iBAAAA,GAAoBJ,EAAAA,CAAGkB,0BAA0B,CAChDd,iBAAAA,EACAJ,GAAGQ,UAAU,CAACW,sBAAsB,EACpC,CAAC,IAAI,EAAEL,YAAAA,CAAa,GAAG,CAAC,EACxB,IAAA,CAAA;AAGD1B,YAAAA,OAAAA,CAAQwB,IAAI,CAACR,iBAAAA,CAAAA;AACd,QAAA;AACD,IAAA;AAEA,IAAA,MAAMgB,aAAAA,GAAgB,CAAA,EAAG3C,SAAAA,CAAU,MAAM,CAAC;IAE1C,IAAI4C,oBAAAA,GAAuBrB,GAAGC,OAAO,CAACqB,0BAA0B,CAC/DhD,SAAAA,EACA8C,aAAAA,EACA9C,SAAAA,EACAA,SAAAA,EACAc,OAAAA,CAAAA;AAGDiC,IAAAA,oBAAAA,GAAuBrB,EAAAA,CAAGkB,0BAA0B,CACnDG,oBAAAA,EACArB,GAAGQ,UAAU,CAACW,sBAAsB,EACpC,CAAC,yBAAyB,EAAE1C,SAAAA,CAAU,SAAS,CAAC,EAChD,IAAA,CAAA;IAGD,MAAM8C,OAAAA,GAAUvB,GAAGwB,aAAa,EAAA;IAChC,MAAMC,OAAAA,GAAUF,QACdG,SAAS,CACT1B,GAAG2B,QAAQ,CAACC,WAAW,EACvBP,oBAAAA,EACArB,EAAAA,CAAG6B,gBAAgB,CAAC,UAAA,EAAY,IAAI7B,EAAAA,CAAG8B,YAAY,CAACC,MAAM,CAAA,CAAA,CAE1DC,OAAO,CAAC,OAAA,EAAS,IAAA,CAAA;IAEnB,MAAMC,OAAAA,GAAUC,IAAAA,CAAKjB,IAAI,CAACjD,QAAAA,CAASmE,UAAU,EAAE,CAAA,EAAGf,aAAAA,CAAc,IAAI,CAAC,CAAA;AAErEgB,IAAAA,EAAAA,CAAGC,aAAa,CACfJ,OAAAA,EACA,CAAC,mCAAmC,EAAExD,SAAAA,CAAU,oIAAoI,CAAC,GACpL6D,EAAAA,CAAGC,GAAG,GACND,EAAAA,CAAGC,GAAG,GACNd,OAAAA,CAAAA;AAEH;;;;"}
1
+ {"version":3,"file":"generateParameterType-Cdp9a31q.mjs","sources":["../src/commands/generateParameterType.ts"],"sourcesContent":["import ts from \"typescript\";\nimport * as fs from \"fs\";\nimport * as path from \"path\";\nimport * as os from \"os\";\n\nimport {\n\tPackageLocation,\n\tgetCreatorIndexParameterPrimaryJSType,\n\treadPackageCreatorIndex,\n\treadPackageCreatorManifest,\n} from \"@intelligentgraphics/ig.gfx.tools.core\";\n\nexport interface GenerateParameterTypeOptions {\n\tlocation: PackageLocation;\n\tname: string;\n}\n\nexport const generateParameterType = ({\n\tlocation,\n\tname,\n}: GenerateParameterTypeOptions) => {\n\tconst index = readPackageCreatorIndex(location);\n\tconst manifest = readPackageCreatorManifest(location);\n\n\tif (index === undefined) {\n\t\tthrow new Error(`Could not find the _Index.json file`);\n\t}\n\n\tlet qualifiedName = name;\n\tlet className = name;\n\n\tconst scope = manifest.Scope ?? manifest.Package;\n\n\tif (name.startsWith(scope)) {\n\t\tclassName = name.slice(scope.length + 1);\n\t} else {\n\t\tqualifiedName = `${scope}.${name}`;\n\t}\n\n\tconst informations = index.find((item) => item.Name === qualifiedName);\n\n\tif (informations === undefined) {\n\t\tthrow new Error(`Could not find an index entry for ${name}`);\n\t}\n\n\tconst members: ts.TypeElement[] = [];\n\n\tif (informations.Parameters !== undefined) {\n\t\tconst sortedList = informations.Parameters.slice();\n\t\tsortedList.sort((a, b) => a.DisplayIndex - b.DisplayIndex);\n\n\t\tfor (const parameter of sortedList) {\n\t\t\tconst jsType = getCreatorIndexParameterPrimaryJSType(\n\t\t\t\tparameter.Type,\n\t\t\t);\n\n\t\t\tconst type =\n\t\t\t\tjsType === \"string\"\n\t\t\t\t\t? ts.factory.createTypeReferenceNode(\"string\")\n\t\t\t\t\t: ts.factory.createUnionTypeNode([\n\t\t\t\t\t\t\tts.factory.createTypeReferenceNode(jsType),\n\t\t\t\t\t\t\tts.factory.createTypeReferenceNode(\"string\"),\n\t\t\t\t\t ]);\n\n\t\t\tlet propertySignature = ts.factory.createPropertySignature(\n\t\t\t\tundefined,\n\t\t\t\tparameter.Name,\n\t\t\t\tparameter.Required\n\t\t\t\t\t? undefined\n\t\t\t\t\t: ts.factory.createToken(ts.SyntaxKind.QuestionToken),\n\t\t\t\ttype,\n\t\t\t);\n\n\t\t\tconst jsdocParts: string[] = [];\n\n\t\t\tif (parameter.Description !== undefined) {\n\t\t\t\tjsdocParts.push(parameter.Description, \"\");\n\t\t\t}\n\n\t\t\tjsdocParts.push(`@creatorType ${parameter.Type}`);\n\n\t\t\tif (jsType === \"string\") {\n\t\t\t\tjsdocParts.push(`@default \"${parameter.Default}\"`);\n\t\t\t} else {\n\t\t\t\tjsdocParts.push(`@default ${parameter.Default}`);\n\t\t\t}\n\n\t\t\tconst jsdocContent = jsdocParts\n\t\t\t\t.map((part) => `* ${part}`)\n\t\t\t\t.join(\"\\n \");\n\t\t\tpropertySignature = ts.addSyntheticLeadingComment(\n\t\t\t\tpropertySignature,\n\t\t\t\tts.SyntaxKind.MultiLineCommentTrivia,\n\t\t\t\t`*\\n ${jsdocContent}\\n `,\n\t\t\t\ttrue,\n\t\t\t);\n\n\t\t\tmembers.push(propertySignature);\n\t\t}\n\t}\n\n\tconst interfaceName = `${className}Params`;\n\n\tlet interfaceDeclaration = ts.factory.createInterfaceDeclaration(\n\t\tundefined,\n\t\tinterfaceName,\n\t\tundefined,\n\t\tundefined,\n\t\tmembers,\n\t);\n\n\tinterfaceDeclaration = ts.addSyntheticLeadingComment(\n\t\tinterfaceDeclaration,\n\t\tts.SyntaxKind.MultiLineCommentTrivia,\n\t\t`*\\n * Parameters for the ${className} class\\n `,\n\t\ttrue,\n\t);\n\n\tconst printer = ts.createPrinter();\n\tconst content = printer\n\t\t.printNode(\n\t\t\tts.EmitHint.Unspecified,\n\t\t\tinterfaceDeclaration,\n\t\t\tts.createSourceFile(\"index.ts\", \"\", ts.ScriptTarget.Latest),\n\t\t)\n\t\t.replace(/ /g, \"\\t\");\n\n\tconst outFile = path.join(location.scriptsDir, `${interfaceName}.txt`);\n\n\tfs.writeFileSync(\n\t\toutFile,\n\t\t`Generated parameters interface for ${className}. Insert the interface declaration next to the class and use it as the type for the parameters. Afterwards you can delete this file.` +\n\t\t\tos.EOL +\n\t\t\tos.EOL +\n\t\t\tcontent,\n\t);\n};\n"],"names":["generateParameterType","location","name","index","readPackageCreatorIndex","manifest","readPackageCreatorManifest","undefined","Error","qualifiedName","className","scope","Scope","Package","startsWith","slice","length","informations","find","item","Name","members","Parameters","sortedList","sort","a","b","DisplayIndex","parameter","jsType","getCreatorIndexParameterPrimaryJSType","Type","type","ts","factory","createTypeReferenceNode","createUnionTypeNode","propertySignature","createPropertySignature","Required","createToken","SyntaxKind","QuestionToken","jsdocParts","Description","push","Default","jsdocContent","map","part","join","addSyntheticLeadingComment","MultiLineCommentTrivia","interfaceName","interfaceDeclaration","createInterfaceDeclaration","printer","createPrinter","content","printNode","EmitHint","Unspecified","createSourceFile","ScriptTarget","Latest","replace","outFile","path","scriptsDir","fs","writeFileSync","os","EOL"],"mappings":";;;;;;;;;;;;;;MAiBaA,qBAAAA,GAAwB,CAAC,EACrCC,QAAQ,EACRC,IAAI,EAC0B,GAAA;AAC9B,IAAA,MAAMC,QAAQC,uBAAAA,CAAwBH,QAAAA,CAAAA;AACtC,IAAA,MAAMI,WAAWC,0BAAAA,CAA2BL,QAAAA,CAAAA;AAE5C,IAAA,IAAIE,UAAUI,SAAAA,EAAW;AACxB,QAAA,MAAM,IAAIC,KAAAA,CAAM,CAAC,mCAAmC,CAAC,CAAA;AACtD,IAAA;AAEA,IAAA,IAAIC,aAAAA,GAAgBP,IAAAA;AACpB,IAAA,IAAIQ,SAAAA,GAAYR,IAAAA;AAEhB,IAAA,MAAMS,KAAAA,GAAQN,QAAAA,CAASO,KAAK,IAAIP,SAASQ,OAAO;IAEhD,IAAIX,IAAAA,CAAKY,UAAU,CAACH,KAAAA,CAAAA,EAAQ;AAC3BD,QAAAA,SAAAA,GAAYR,IAAAA,CAAKa,KAAK,CAACJ,KAAAA,CAAMK,MAAM,GAAG,CAAA,CAAA;IACvC,CAAA,MAAO;AACNP,QAAAA,aAAAA,GAAgB,CAAA,EAAGE,KAAAA,CAAM,CAAC,EAAET,IAAAA,CAAAA,CAAM;AACnC,IAAA;IAEA,MAAMe,YAAAA,GAAed,MAAMe,IAAI,CAAC,CAACC,IAAAA,GAASA,IAAAA,CAAKC,IAAI,KAAKX,aAAAA,CAAAA;AAExD,IAAA,IAAIQ,iBAAiBV,SAAAA,EAAW;AAC/B,QAAA,MAAM,IAAIC,KAAAA,CAAM,CAAC,kCAAkC,EAAEN,IAAAA,CAAAA,CAAM,CAAA;AAC5D,IAAA;AAEA,IAAA,MAAMmB,UAA4B,EAAE;IAEpC,IAAIJ,YAAAA,CAAaK,UAAU,KAAKf,SAAAA,EAAW;AAC1C,QAAA,MAAMgB,UAAAA,GAAaN,YAAAA,CAAaK,UAAU,CAACP,KAAK,EAAA;QAChDQ,UAAAA,CAAWC,IAAI,CAAC,CAACC,CAAAA,EAAGC,IAAMD,CAAAA,CAAEE,YAAY,GAAGD,CAAAA,CAAEC,YAAY,CAAA;QAEzD,KAAK,MAAMC,aAAaL,UAAAA,CAAY;YACnC,MAAMM,MAAAA,GAASC,qCAAAA,CACdF,SAAAA,CAAUG,IAAI,CAAA;AAGf,YAAA,MAAMC,IAAAA,GACLH,MAAAA,KAAW,QAAA,GACRI,EAAAA,CAAGC,OAAO,CAACC,uBAAuB,CAAC,QAAA,CAAA,GACnCF,EAAAA,CAAGC,OAAO,CAACE,mBAAmB,CAAC;gBAC/BH,EAAAA,CAAGC,OAAO,CAACC,uBAAuB,CAACN,MAAAA,CAAAA;gBACnCI,EAAAA,CAAGC,OAAO,CAACC,uBAAuB,CAAC,QAAA;AAClC,aAAA,CAAA;YAEL,IAAIE,iBAAAA,GAAoBJ,GAAGC,OAAO,CAACI,uBAAuB,CACzD/B,SAAAA,EACAqB,SAAAA,CAAUR,IAAI,EACdQ,SAAAA,CAAUW,QAAQ,GACfhC,SAAAA,GACA0B,EAAAA,CAAGC,OAAO,CAACM,WAAW,CAACP,EAAAA,CAAGQ,UAAU,CAACC,aAAa,CAAA,EACrDV,IAAAA,CAAAA;AAGD,YAAA,MAAMW,aAAuB,EAAE;YAE/B,IAAIf,SAAAA,CAAUgB,WAAW,KAAKrC,SAAAA,EAAW;AACxCoC,gBAAAA,UAAAA,CAAWE,IAAI,CAACjB,SAAAA,CAAUgB,WAAW,EAAE,EAAA,CAAA;AACxC,YAAA;AAEAD,YAAAA,UAAAA,CAAWE,IAAI,CAAC,CAAC,aAAa,EAAEjB,SAAAA,CAAUG,IAAI,CAAA,CAAE,CAAA;AAEhD,YAAA,IAAIF,WAAW,QAAA,EAAU;gBACxBc,UAAAA,CAAWE,IAAI,CAAC,CAAC,UAAU,EAAEjB,SAAAA,CAAUkB,OAAO,CAAC,CAAC,CAAC,CAAA;YAClD,CAAA,MAAO;AACNH,gBAAAA,UAAAA,CAAWE,IAAI,CAAC,CAAC,SAAS,EAAEjB,SAAAA,CAAUkB,OAAO,CAAA,CAAE,CAAA;AAChD,YAAA;AAEA,YAAA,MAAMC,YAAAA,GAAeJ,UAAAA,CACnBK,GAAG,CAAC,CAACC,IAAAA,GAAS,CAAC,EAAE,EAAEA,IAAAA,CAAAA,CAAM,CAAA,CACzBC,IAAI,CAAC,KAAA,CAAA;AACPb,YAAAA,iBAAAA,GAAoBJ,EAAAA,CAAGkB,0BAA0B,CAChDd,iBAAAA,EACAJ,GAAGQ,UAAU,CAACW,sBAAsB,EACpC,CAAC,IAAI,EAAEL,YAAAA,CAAa,GAAG,CAAC,EACxB,IAAA,CAAA;AAGD1B,YAAAA,OAAAA,CAAQwB,IAAI,CAACR,iBAAAA,CAAAA;AACd,QAAA;AACD,IAAA;AAEA,IAAA,MAAMgB,aAAAA,GAAgB,CAAA,EAAG3C,SAAAA,CAAU,MAAM,CAAC;IAE1C,IAAI4C,oBAAAA,GAAuBrB,GAAGC,OAAO,CAACqB,0BAA0B,CAC/DhD,SAAAA,EACA8C,aAAAA,EACA9C,SAAAA,EACAA,SAAAA,EACAc,OAAAA,CAAAA;AAGDiC,IAAAA,oBAAAA,GAAuBrB,EAAAA,CAAGkB,0BAA0B,CACnDG,oBAAAA,EACArB,GAAGQ,UAAU,CAACW,sBAAsB,EACpC,CAAC,yBAAyB,EAAE1C,SAAAA,CAAU,SAAS,CAAC,EAChD,IAAA,CAAA;IAGD,MAAM8C,OAAAA,GAAUvB,GAAGwB,aAAa,EAAA;IAChC,MAAMC,OAAAA,GAAUF,QACdG,SAAS,CACT1B,GAAG2B,QAAQ,CAACC,WAAW,EACvBP,oBAAAA,EACArB,EAAAA,CAAG6B,gBAAgB,CAAC,UAAA,EAAY,IAAI7B,EAAAA,CAAG8B,YAAY,CAACC,MAAM,CAAA,CAAA,CAE1DC,OAAO,CAAC,OAAA,EAAS,IAAA,CAAA;IAEnB,MAAMC,OAAAA,GAAUC,IAAAA,CAAKjB,IAAI,CAACjD,QAAAA,CAASmE,UAAU,EAAE,CAAA,EAAGf,aAAAA,CAAc,IAAI,CAAC,CAAA;AAErEgB,IAAAA,EAAAA,CAAGC,aAAa,CACfJ,OAAAA,EACA,CAAC,mCAAmC,EAAExD,SAAAA,CAAU,oIAAoI,CAAC,GACpL6D,EAAAA,CAAGC,GAAG,GACND,EAAAA,CAAGC,GAAG,GACNd,OAAAA,CAAAA;AAEH;;;;"}
@@ -6,14 +6,14 @@ import { pipeline } from 'stream/promises';
6
6
  import { exec } from 'child_process';
7
7
  import { promisify } from 'util';
8
8
  import 'resolve';
9
- import 'write-pkg';
10
- import { p as parseCreatorPackageName, r as readPackageCreatorManifest, w as writePackageCreatorManifest, i as isErrorENOENT, P as PACKAGE_FILE, a as readPackageCreatorIndex, I as INDEX_FILE, s as startSession, c as closeSession, g as getExistingPackages, u as uploadPackageFromBuffer, b as readWorkspaceNpmManifest, d as getWorkspaceOutputPath, e as readPackageAnimationList, f as isErrorEACCES, h as isErrorEPERM, j as getPackageReleasesDirectory } from './cli-sBIEQH_m.mjs';
11
- import { P as PackageVersion, c as createPackageScopedReporter, a as consoleReporter, b as buildFolders } from './index-BsakORqB.mjs';
9
+ import 'write-package';
10
+ import { p as parseCreatorPackageName, r as readPackageCreatorManifest, w as writePackageCreatorManifest, i as isErrorENOENT, P as PACKAGE_FILE, a as readPackageCreatorIndex, I as INDEX_FILE, s as startSession, c as closeSession, g as getExistingPackages, u as uploadPackageFromBuffer, b as readWorkspaceNpmManifest, d as getWorkspaceOutputPath, e as readPackageAnimationList, f as isErrorEACCES, h as isErrorEPERM, j as getPackageReleasesDirectory } from './cli-IlMWNOvf.mjs';
11
+ import { P as PackageVersion, c as createPackageScopedReporter, a as consoleReporter, b as buildFolders } from './index-w4ax9Zlz.mjs';
12
12
  import 'glob';
13
13
  import 'axios';
14
- import { p as parseVersionFromNumericVersion, g as getVersionFileHandler, a as parseVersionFromString, b as getVersionInformationFromGit, c as getWorkspaceBannerText } from './versionFile-DLMeLtg7.mjs';
14
+ import { p as parseVersionFromNumericVersion, g as getVersionFileHandler, a as parseVersionFromString, b as getVersionInformationFromGit, c as getWorkspaceBannerText } from './versionFile-_S1eIMrS.mjs';
15
15
  import JSZip from 'jszip';
16
- import { r as readPublishedPackageCreatorIndex, d as determineWorkspaceIGLibraries, a as readPublishedPackageNpmManifest, b as readPublishedPackageCreatorManifest } from './dependencies-DHQlbmdd.mjs';
16
+ import { r as readPublishedPackageCreatorIndex, d as determineWorkspaceIGLibraries, a as readPublishedPackageNpmManifest, b as readPublishedPackageCreatorManifest } from './dependencies-CPZzEh3z.mjs';
17
17
  import { buffer } from 'node:stream/consumers';
18
18
  import 'update-notifier';
19
19
  import 'yargs/yargs';
@@ -22,8 +22,7 @@ import 'inquirer';
22
22
  import 'terser';
23
23
  import 'os';
24
24
  import 'typescript';
25
- import './scripts-BmQnbRem.mjs';
26
- import 'typedoc';
25
+ import './scripts-B3noxiX3.mjs';
27
26
  import 'events';
28
27
  import 'source-map-js';
29
28
  import 'ajv';
@@ -475,4 +474,4 @@ const releaseFolder = async (options)=>{
475
474
  };
476
475
 
477
476
  export { releaseFolder };
478
- //# sourceMappingURL=index-50hVP5ou.mjs.map
477
+ //# sourceMappingURL=index-Dcu2jMcl.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-50hVP5ou.mjs","sources":["../src/commands/publish/zip.ts","../src/lib/assetServiceSessionManager.ts","../src/lib/dependencySync.ts","../src/commands/publish/index.ts"],"sourcesContent":["import JSZip from \"jszip\";\nimport * as path from \"path\";\nimport * as fs from \"fs\";\n\nimport { isErrorENOENT } from \"../../lib/error\";\nimport {\n\tCreatorPackage,\n\treadPackageCreatorManifest,\n\twritePackageCreatorManifest,\n\treadPackageCreatorIndex,\n\tparseCreatorPackageName,\n\tPackageLocation,\n\tPackageNpmManifest,\n\tINDEX_FILE,\n\tPACKAGE_FILE,\n} from \"../../lib/package\";\nimport {\n\tPublishedPackageLocation,\n\treadPublishedPackageCreatorIndex,\n} from \"../../lib/publishedPackage\";\nimport { Reporter } from \"@intelligentgraphics/ig.gfx.tools.core\";\n\nexport const buildArchiveFromPublishedPackage = (\n\tlocation: PublishedPackageLocation,\n\tmanifest: PackageNpmManifest,\n\tcreatorPackage: CreatorPackage,\n) => {\n\tconst archive = new JSZip();\n\n\tarchive.file(PACKAGE_FILE, JSON.stringify(creatorPackage, null, 2));\n\n\tconst index = readPublishedPackageCreatorIndex(location);\n\n\tif (index !== undefined) {\n\t\tarchive.file(INDEX_FILE, JSON.stringify(index, null, 2));\n\t}\n\n\tarchive.file(\n\t\tmanifest.main,\n\t\tfs.createReadStream(path.join(location.path, manifest.main)),\n\t);\n\n\tif (creatorPackage.Package === \"IG.GFX.Standard\") {\n\t\tconst source = path.join(location.path, \"Images\");\n\n\t\tif (fs.existsSync(source)) {\n\t\t\tconst images = fs.readdirSync(source);\n\n\t\t\tfor (const file of images) {\n\t\t\t\tconst { ext } = path.parse(file);\n\n\t\t\t\tswitch (ext) {\n\t\t\t\t\tcase \".png\":\n\t\t\t\t\tcase \".jpeg\":\n\t\t\t\t\tcase \".jpg\":\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tarchive.file(\n\t\t\t\t\tfile,\n\t\t\t\t\tfs.createReadStream(path.join(source, file)),\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn archive;\n};\n\nconst runtimeScripts: CreatorPackage[\"Type\"][] = [\n\t\"Interactor\",\n\t\"Core\",\n\t\"Mixed\",\n];\n\nconst notRuntimeScripts: CreatorPackage[\"Type\"][] = [\"Context\", \"Evaluator\"];\n\nexport const buildArchiveFromPackage = async (\n\treporter: Reporter,\n\tpackageLocation: PackageLocation,\n\tdata: CreatorPackage,\n\tbinDir: string,\n\tminified = true,\n) => {\n\tconst { domain } = parseCreatorPackageName(data);\n\n\tconst scriptDirectories: string[] = [\n\t\tpackageLocation.path,\n\t\tpackageLocation.scriptsDir,\n\t];\n\n\tif (data.Package === \"IG.GFX.Standard\") {\n\t\treporter.log(`Including Images folder`);\n\t\tscriptDirectories.push(path.join(packageLocation.path, \"Images\"));\n\t}\n\n\tconst manifest = readPackageCreatorManifest(packageLocation);\n\n\tif (manifest !== undefined) {\n\t\tif (manifest.RunTime && notRuntimeScripts.includes(manifest.Type)) {\n\t\t\treporter.log(\n\t\t\t\t\"Setting script RunTime to false because of script type\",\n\t\t\t);\n\t\t\twritePackageCreatorManifest(packageLocation, {\n\t\t\t\t...manifest,\n\t\t\t\tRunTime: false,\n\t\t\t});\n\t\t} else if (\n\t\t\t!manifest.RunTime &&\n\t\t\truntimeScripts.includes(manifest.Type)\n\t\t) {\n\t\t\treporter.log(\n\t\t\t\t\"Setting script RunTime to true because of script type\",\n\t\t\t);\n\t\t\twritePackageCreatorManifest(packageLocation, {\n\t\t\t\t...manifest,\n\t\t\t\tRunTime: true,\n\t\t\t});\n\t\t}\n\t}\n\n\tlet libFile: string | undefined;\n\n\ttry {\n\t\tconst libFilePath = minified\n\t\t\t? path.join(binDir, `${data.Package}.min.js`)\n\t\t\t: path.join(binDir, `${data.Package}.js`);\n\n\t\tlibFile = fs.readFileSync(libFilePath, {\n\t\t\tencoding: \"utf8\",\n\t\t});\n\t} catch (err) {\n\t\tif (!isErrorENOENT(err)) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\n\tconst archive = new JSZip();\n\n\tlet library: string = \"\";\n\n\tif (libFile) {\n\t\tlibrary = libFile;\n\t}\n\n\tif (!library) {\n\t\tconst date = new Date(Date.now());\n\t\tlibrary = `/* This file is part of the ${domain} Data Packages.\n\t\t* Copyright (C) ${date.getFullYear()} intelligentgraphics. All Rights Reserved. */`;\n\t}\n\n\tarchive.file(`${data.Package}.js`, library);\n\tarchive.file(PACKAGE_FILE, JSON.stringify(data, null, 2));\n\n\tconst creatorIndex = readPackageCreatorIndex(packageLocation);\n\n\tif (creatorIndex !== undefined) {\n\t\tarchive.file(INDEX_FILE, JSON.stringify(creatorIndex, null, 2));\n\t}\n\n\tfor (const directory of scriptDirectories) {\n\t\ttry {\n\t\t\tfor (const file of fs.readdirSync(directory)) {\n\t\t\t\tconst { ext } = path.parse(file);\n\n\t\t\t\tswitch (ext) {\n\t\t\t\t\tcase \".png\":\n\t\t\t\t\tcase \".jpeg\":\n\t\t\t\t\tcase \".jpg\":\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tarchive.file(\n\t\t\t\t\tfile,\n\t\t\t\t\tfs.createReadStream(path.join(directory, file)),\n\t\t\t\t);\n\t\t\t}\n\t\t} catch (err) {\n\t\t\treporter.error(`Script directory \"${directory}\" does not exist`);\n\t\t}\n\t}\n\n\treturn archive;\n};\n","import { AssetService } from \"@intelligentgraphics/ig.gfx.tools.core\";\n\nexport interface AssetServiceSessionManager {\n\tgetBasicsSession: () => Promise<AssetService.Session>;\n\tgetTargetSession: () => AssetService.Session;\n\tdestroy: () => Promise<void>;\n}\n\nexport const createAssetServiceSessionManager = async (\n\tparams: AssetService.SessionStartParams,\n): Promise<AssetServiceSessionManager> => {\n\tconst targetSession = await AssetService.startSession(params);\n\tlet basicsSession: AssetService.Session | undefined;\n\n\treturn {\n\t\tgetBasicsSession: async () => {\n\t\t\tif (targetSession.subDomain === \"Basics\") {\n\t\t\t\treturn targetSession;\n\t\t\t}\n\n\t\t\tif (basicsSession === undefined) {\n\t\t\t\tbasicsSession = await AssetService.startSession({\n\t\t\t\t\t...params,\n\t\t\t\t\tsubDomain: \"Basics\",\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn basicsSession;\n\t\t},\n\n\t\tgetTargetSession: () => targetSession,\n\n\t\tdestroy: async () => {\n\t\t\tawait AssetService.closeSession(targetSession);\n\n\t\t\tif (basicsSession !== undefined) {\n\t\t\t\tawait AssetService.closeSession(basicsSession);\n\t\t\t}\n\t\t},\n\t};\n};\n","import {\n\tWorkspaceLocation,\n\tCreatorPackage,\n\tAssetService,\n\tdetermineWorkspaceIGLibraries,\n\treadPublishedPackageNpmManifest,\n\treadPublishedPackageCreatorManifest,\n\tReporter,\n} from \"@intelligentgraphics/ig.gfx.tools.core\";\nimport { buildArchiveFromPublishedPackage } from \"../commands/publish/zip\";\nimport { AssetServiceSessionManager } from \"./assetServiceSessionManager\";\nimport { PackageVersion } from \"./packageVersion\";\nimport { parseVersionFromNumericVersion } from \"./parseVersion\";\nimport { Prompter, PrompterOption } from \"./prompter\";\nimport { Readable } from \"node:stream\";\n\nexport const synchronizeDependencies = async (\n\tworkspaceLocation: WorkspaceLocation,\n\tcreatorPackage: CreatorPackage | undefined,\n\tsessionManager: AssetServiceSessionManager,\n\tprompter: Prompter,\n\treporter: Reporter,\n\tlogUpToDate: boolean = false,\n) => {\n\tinterface UploadedPackage\n\t\textends Omit<AssetService.ExistingPackage, \"version\"> {\n\t\tversion: PackageVersion;\n\t}\n\n\tconst libraries = determineWorkspaceIGLibraries(workspaceLocation);\n\n\t// If there are no libraries, we don't need to check for required versions\n\tif (libraries.length === 0) {\n\t\treturn true;\n\t}\n\n\tconst targetSession = sessionManager.getTargetSession();\n\n\tconst rawUploadedPackages = await AssetService.getExistingPackages(\n\t\ttargetSession,\n\t);\n\n\tconst uploadedPackages = rawUploadedPackages.map(\n\t\t(entry): UploadedPackage => {\n\t\t\tlet version: PackageVersion;\n\n\t\t\ttry {\n\t\t\t\tversion = parseVersionFromNumericVersion(entry.numericVersion);\n\t\t\t} catch (err) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Encountered invalid format for version ${entry.numericVersion}`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (version.buildNumber < 100) {\n\t\t\t\tversion.preRelease = {\n\t\t\t\t\ttype: \"beta\",\n\t\t\t\t\tversion: version.buildNumber,\n\t\t\t\t};\n\t\t\t} else if (version.buildNumber > 100) {\n\t\t\t\tversion.preRelease = {\n\t\t\t\t\ttype: \"patch\",\n\t\t\t\t\tversion: version.buildNumber - 100,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...entry,\n\t\t\t\tversion,\n\t\t\t};\n\t\t},\n\t);\n\n\tfor (const libraryLocation of libraries) {\n\t\tconst libraryManifest =\n\t\t\treadPublishedPackageNpmManifest(libraryLocation);\n\t\tconst libraryCreatorPackage =\n\t\t\treadPublishedPackageCreatorManifest(libraryLocation);\n\n\t\tif (\n\t\t\tlibraryCreatorPackage === undefined ||\n\t\t\tlibraryManifest.main === undefined ||\n\t\t\tlibraryCreatorPackage.Package === creatorPackage?.Package\n\t\t) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst libraryVersion = PackageVersion.extractFromLine(\n\t\t\tlibraryManifest.version,\n\t\t);\n\n\t\tif (libraryVersion.preRelease) {\n\t\t\tlibraryVersion.buildNumber = libraryVersion.preRelease.version;\n\t\t\tlibraryVersion.preRelease = undefined;\n\t\t} else {\n\t\t\tlibraryVersion.buildNumber = 100;\n\t\t}\n\n\t\tlet uploadedPackageInBasics: UploadedPackage | undefined;\n\t\tlet uploadedPackageInTarget: UploadedPackage | undefined;\n\n\t\tfor (const uploadedPackage of uploadedPackages) {\n\t\t\tif (uploadedPackage.scope === libraryCreatorPackage.Package) {\n\t\t\t\tif (uploadedPackage.support) {\n\t\t\t\t\tuploadedPackageInBasics = uploadedPackage;\n\t\t\t\t} else {\n\t\t\t\t\tuploadedPackageInTarget = uploadedPackage;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst validInBasics =\n\t\t\tuploadedPackageInBasics !== undefined &&\n\t\t\t!uploadedPackageInBasics.version.isLesserThan(libraryVersion);\n\t\tconst validInTarget =\n\t\t\tuploadedPackageInTarget !== undefined &&\n\t\t\t!uploadedPackageInTarget.version.isLesserThan(libraryVersion);\n\n\t\tif (validInBasics || validInTarget) {\n\t\t\tif (\n\t\t\t\ttargetSession.subDomain !== \"Basics\" &&\n\t\t\t\tuploadedPackageInBasics !== undefined &&\n\t\t\t\tuploadedPackageInTarget !== undefined\n\t\t\t) {\n\t\t\t\treporter.log(\n\t\t\t\t\t`Package ${libraryCreatorPackage.Package} is uploaded both for Basics and ${targetSession.subDomain}. The package within ${targetSession.subDomain} will be used.`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (logUpToDate) {\n\t\t\t\treporter.log(\n\t\t\t\t\t`Package ${\n\t\t\t\t\t\tlibraryCreatorPackage.Package\n\t\t\t\t\t} is already uploaded with the required version ${libraryVersion.toVersionString(\n\t\t\t\t\t\t{},\n\t\t\t\t\t)}`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst possibleTargets: PrompterOption[] = [];\n\n\t\tif (uploadedPackageInBasics) {\n\t\t\tconst version = uploadedPackageInBasics.version.toVersionString({\n\t\t\t\tbuildNumber: true,\n\t\t\t});\n\n\t\t\tpossibleTargets.push({\n\t\t\t\tvalue: \"Basics\",\n\t\t\t\tname: `Basics (Current: ${version})`,\n\t\t\t});\n\t\t} else {\n\t\t\tpossibleTargets.push({\n\t\t\t\tvalue: \"Basics\",\n\t\t\t\tname: \"Basics (Current: None)\",\n\t\t\t});\n\t\t}\n\n\t\tif (targetSession.subDomain !== \"Basics\") {\n\t\t\tif (uploadedPackageInTarget) {\n\t\t\t\tconst version = uploadedPackageInTarget.version.toVersionString(\n\t\t\t\t\t{\n\t\t\t\t\t\tbuildNumber: true,\n\t\t\t\t\t},\n\t\t\t\t);\n\n\t\t\t\tpossibleTargets.push({\n\t\t\t\t\tvalue: targetSession.subDomain,\n\t\t\t\t\tname: `${targetSession.subDomain} (Current: ${version})`,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tpossibleTargets.push({\n\t\t\t\t\tvalue: targetSession.subDomain,\n\t\t\t\t\tname: `${targetSession.subDomain} (Current: None)`,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tconst libraryVersionString = libraryVersion.toVersionString({\n\t\t\tbuildNumber: true,\n\t\t});\n\n\t\tconst uploadTargetScope = await prompter.ask({\n\t\t\tmessage: `Version ${libraryVersionString} of dependency ${libraryCreatorPackage.Package} is required but not available. Please select a subdomain to upload the correct dependency version to`,\n\t\t\toptions: [\n\t\t\t\t...possibleTargets,\n\t\t\t\t{ name: \"Skip upload\", value: \"Skip\" },\n\t\t\t],\n\t\t\tdefault: possibleTargets[0].value,\n\t\t});\n\n\t\tif (uploadTargetScope === \"Skip\") {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst archive = buildArchiveFromPublishedPackage(\n\t\t\tlibraryLocation,\n\t\t\tlibraryManifest,\n\t\t\tlibraryCreatorPackage,\n\t\t);\n\n\t\tconst newVersionString = libraryVersion.toVersionString({\n\t\t\tbuildNumber: true,\n\t\t});\n\n\t\tconst session =\n\t\t\tuploadTargetScope === \"Basics\"\n\t\t\t\t? await sessionManager.getBasicsSession()\n\t\t\t\t: targetSession;\n\n\t\treporter.log(\n\t\t\t`Uploading package ${libraryCreatorPackage.Package} with version ${newVersionString} to ${session.domain}.${session.subDomain}`,\n\t\t);\n\n\t\tawait AssetService.uploadPackageFromBuffer(\n\t\t\tsession,\n\t\t\t{\n\t\t\t\tname: libraryCreatorPackage.Package,\n\t\t\t\tversion: newVersionString,\n\t\t\t},\n\t\t\tawait archive.generateAsync({ type: \"nodebuffer\" }),\n\t\t);\n\t}\n};\n","import * as path from \"path\";\nimport * as fs from \"fs/promises\";\nimport { createReadStream, createWriteStream } from \"fs\";\nimport { pipeline } from \"stream/promises\";\nimport { exec } from \"child_process\";\nimport { promisify } from \"util\";\n\nimport {\n\tAssetService,\n\tconsoleReporter,\n\tcreatePackageScopedReporter,\n\tisErrorEACCES,\n\tisErrorEPERM,\n\tReporter,\n\twritePackageCreatorManifest,\n} from \"@intelligentgraphics/ig.gfx.tools.core\";\n\nimport {\n\tgetPackageReleasesDirectory,\n\tPackageLocation,\n\tparseCreatorPackageName,\n\treadPackageAnimationList,\n\treadPackageCreatorManifest,\n} from \"../../lib/package\";\nimport {\n\tgetWorkspaceOutputPath,\n\treadWorkspaceNpmManifest,\n} from \"../../lib/workspace\";\nimport { getVersionInformationFromGit } from \"../../lib/git\";\nimport { getWorkspaceBannerText } from \"../../lib/banner\";\nimport { parseVersionFromString } from \"../../lib/parseVersion\";\nimport { getVersionFileHandler } from \"../../lib/versionFile\";\nimport { isErrorENOENT } from \"../../lib/error\";\nimport { Prompter } from \"../../lib/prompter\";\nimport { PackageVersion } from \"../../lib/packageVersion\";\nimport { BuildFoldersOptions, buildFolders } from \"../build\";\nimport { buildArchiveFromPackage } from \"./zip\";\nimport { createAssetServiceSessionManager } from \"../../lib/assetServiceSessionManager\";\nimport { synchronizeDependencies } from \"../../lib/dependencySync\";\nimport { buffer } from \"node:stream/consumers\";\n\nexport interface ReleaseFolderOptions\n\textends Omit<\n\t\tBuildFoldersOptions,\n\t\t\"skipPackagesWithoutTsFiles\" | \"banner\" | \"packages\"\n\t> {\n\tdirectory: PackageLocation;\n\tnoUpload: boolean;\n\tnewVersion: string;\n\tdomain?: string;\n\tsubdomain?: string;\n\taddress?: string;\n\tservice: string;\n\tauthentication?: AssetService.Authentication;\n\tpushOnly: boolean;\n\tbanner?: boolean;\n\tprompter: Prompter;\n\tskipDependencies?: boolean;\n\treporter?: Reporter;\n}\n\nconst execAsync = promisify(exec);\n\nexport const releaseFolder = async (options: ReleaseFolderOptions) => {\n\tconst workspace = options.workspace;\n\tconst location = options.directory;\n\n\tconst versionFile = getVersionFileHandler(location);\n\n\tconst packageDescription = readPackageCreatorManifest(location);\n\tconst fullPackageName = packageDescription.Package;\n\n\tconst reporter =\n\t\toptions.reporter ??\n\t\tcreatePackageScopedReporter(\n\t\t\tconsoleReporter,\n\t\t\tpackageDescription.Package,\n\t\t);\n\n\tconst { domain, subdomain } = parseCreatorPackageName(packageDescription);\n\n\tconst publishDomain = options.domain ?? domain;\n\tconst publishSubdomain = options.subdomain ?? subdomain;\n\n\tconst sharedPackageJson = readWorkspaceNpmManifest(workspace);\n\n\tlet newVersion: PackageVersion;\n\ttry {\n\t\tnewVersion = parseVersionFromString(options.newVersion);\n\t} catch (err) {\n\t\tthrow new Error(`Please enter a version in this format 1.0.0.100`);\n\t}\n\n\tpackageDescription.Version = newVersion.toVersionString({\n\t\tbuildNumber: true,\n\t});\n\twritePackageCreatorManifest(location, packageDescription);\n\n\tif (newVersion.buildNumber < 100) {\n\t\tnewVersion.preRelease = {\n\t\t\ttype: \"beta\",\n\t\t\tversion: newVersion.buildNumber,\n\t\t};\n\t} else if (newVersion.buildNumber > 100) {\n\t\tnewVersion.preRelease = {\n\t\t\ttype: \"patch\",\n\t\t\tversion: newVersion.buildNumber - 100,\n\t\t};\n\t}\n\n\t// if (sharedPackageJson !== undefined) {\n\t// \treporter.log(\n\t// \t\t`Running npm install to make sure all dependencies are up to date`,\n\t// \t);\n\t// \tawait execAsync(`npm install`, {\n\t// \t\tencoding: \"utf-8\",\n\t// \t\tcwd: workspace.path,\n\t// \t});\n\t// }\n\n\tconst binDir = options.outDir ?? getWorkspaceOutputPath(workspace);\n\tawait fs.mkdir(binDir, { recursive: true });\n\n\tlet assetServerPackageDetails: AssetService.UploadPackageDetails;\n\n\tlet packageNameWithVersion: string;\n\n\t{\n\t\tconst versionWithoutPrelease = newVersion.clone();\n\t\tversionWithoutPrelease.preRelease = undefined;\n\t\tconst newVersionString = versionWithoutPrelease.toVersionString({\n\t\t\tbuildNumber: true,\n\t\t});\n\t\tpackageNameWithVersion = `${packageDescription.Package}_${newVersionString}`;\n\n\t\tassetServerPackageDetails = {\n\t\t\tname: packageDescription.Package,\n\t\t\tversion: newVersionString,\n\t\t};\n\t}\n\n\tlet zipFilePath = path.join(binDir, packageNameWithVersion + \".zip\");\n\tinterface Uploadable {\n\t\tgetStream: () => NodeJS.ReadableStream;\n\t}\n\n\tlet uploadable: Uploadable = {\n\t\tgetStream: () => createReadStream(zipFilePath),\n\t};\n\n\ttry {\n\t\tif (options.pushOnly) {\n\t\t\tconst zipFileExists = await fs.stat(zipFilePath).catch((err) => {\n\t\t\t\tif (isErrorENOENT(err)) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\treturn Promise.reject(err);\n\t\t\t});\n\n\t\t\tif (zipFileExists) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Expected a zip file to exist at path ${zipFilePath} since pushOnly is specified`,\n\t\t\t\t);\n\t\t\t}\n\t\t} else {\n\t\t\tconst gitVersionInformation = await getVersionInformationFromGit(\n\t\t\t\tworkspace,\n\t\t\t\tlocation,\n\t\t\t);\n\n\t\t\tif (versionFile.exists) {\n\t\t\t\tversionFile.write(fullPackageName, newVersion);\n\t\t\t}\n\n\t\t\tconst bannerText =\n\t\t\t\tsharedPackageJson !== undefined\n\t\t\t\t\t? getWorkspaceBannerText(sharedPackageJson)\n\t\t\t\t\t: undefined;\n\n\t\t\tawait buildFolders({\n\t\t\t\t...options,\n\t\t\t\tpackages: [location],\n\t\t\t\tbanner: options.banner\n\t\t\t\t\t? {\n\t\t\t\t\t\t\ttext: bannerText,\n\t\t\t\t\t\t\tcommit: gitVersionInformation.commit,\n\t\t\t\t\t\t\tcommitDirty: gitVersionInformation.dirty,\n\t\t\t\t\t\t\tversion: newVersion.toVersionString({\n\t\t\t\t\t\t\t\tbuildNumber: true,\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\tdate: new Date(Date.now()),\n\t\t\t\t\t\t\t// gitVersionInformation.commitDate\n\t\t\t\t\t\t\t// \t? new Date(gitVersionInformation.commitDate)\n\t\t\t\t\t\t\t// \t: new Date(Date.now()),\n\t\t\t\t\t }\n\t\t\t\t\t: undefined,\n\t\t\t\tpreparedReporter: reporter,\n\t\t\t});\n\n\t\t\tnewVersion.preRelease = undefined;\n\n\t\t\ttry {\n\t\t\t\tawait fs.rm(zipFilePath);\n\t\t\t} catch (err) {\n\t\t\t\tif (!isErrorENOENT(err)) {\n\t\t\t\t\tthrow err;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (readPackageAnimationList(location).length > 0) {\n\t\t\t\tconst workspaceManifest = readWorkspaceNpmManifest(workspace);\n\n\t\t\t\tif (\n\t\t\t\t\t!workspaceManifest.dependencies?.[\n\t\t\t\t\t\t\"@intelligentgraphics/3d.ig.gfx.standard\"\n\t\t\t\t\t]\n\t\t\t\t) {\n\t\t\t\t\tconst install = await options.prompter.confirm(\n\t\t\t\t\t\t`The IG.GFX.Standard package should be added as a dependency to provide the 'AnimationInteractor' used to display animations. Do you wish to add it now?`,\n\t\t\t\t\t);\n\n\t\t\t\t\tif (install) {\n\t\t\t\t\t\tawait execAsync(\n\t\t\t\t\t\t\t`npm install @intelligentgraphics/3d.ig.gfx.standard`,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tencoding: \"utf-8\",\n\t\t\t\t\t\t\t\tcwd: workspace.path,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tawait execAsync(`npm run postinstall`, {\n\t\t\t\t\t\t\tcwd: workspace.path,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treporter.log(`Creating zip file`);\n\n\t\t\tconst archive = await buildArchiveFromPackage(\n\t\t\t\treporter,\n\t\t\t\tlocation,\n\t\t\t\tpackageDescription,\n\t\t\t\tbinDir,\n\t\t\t\toptions.minimize,\n\t\t\t);\n\n\t\t\ttry {\n\t\t\t\tconst zipOutputStream = createWriteStream(zipFilePath);\n\t\t\t\tawait pipeline(archive.generateNodeStream(), zipOutputStream);\n\t\t\t} catch (err) {\n\t\t\t\tif (isErrorEACCES(err) || isErrorEPERM(err)) {\n\t\t\t\t\treporter.log(\n\t\t\t\t\t\t`Could not create zip file in the bin directory because of a permissions error. Only using it in-memory`,\n\t\t\t\t\t);\n\t\t\t\t\tuploadable = {\n\t\t\t\t\t\tgetStream: () => archive.generateNodeStream(),\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\tthrow err;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (!options.noUpload) {\n\t\t\tif (!options.authentication) {\n\t\t\t\tthrow new Error(`Expected authentication to be available`);\n\t\t\t}\n\n\t\t\treporter.log(`Opening connection to IG.Asset.Server`);\n\n\t\t\tconst sessionManager = await createAssetServiceSessionManager({\n\t\t\t\turl: options.service,\n\t\t\t\taddress: options.address,\n\t\t\t\tdomain: publishDomain,\n\t\t\t\tsubDomain: publishSubdomain,\n\t\t\t\tauthentication: options.authentication,\n\t\t\t});\n\n\t\t\ttry {\n\t\t\t\tif (!options.skipDependencies) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait synchronizeDependencies(\n\t\t\t\t\t\t\tworkspace,\n\t\t\t\t\t\t\tpackageDescription,\n\t\t\t\t\t\t\tsessionManager,\n\t\t\t\t\t\t\toptions.prompter,\n\t\t\t\t\t\t\treporter,\n\t\t\t\t\t\t);\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\treporter.error(\n\t\t\t\t\t\t\t`Failed to synchronize dependencies for ${packageDescription.Package}`,\n\t\t\t\t\t\t\terr,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treporter.log(\n\t\t\t\t\t`Uploading package to ${publishDomain}.${publishSubdomain}`,\n\t\t\t\t);\n\n\t\t\t\tawait AssetService.uploadPackageFromBuffer(\n\t\t\t\t\tsessionManager.getTargetSession(),\n\t\t\t\t\tassetServerPackageDetails,\n\t\t\t\t\tawait buffer(uploadable.getStream()),\n\t\t\t\t);\n\t\t\t} finally {\n\t\t\t\tawait sessionManager.destroy().catch((err) => {\n\t\t\t\t\treporter.error(\n\t\t\t\t\t\t`Failed to close IG.Asset.Server session(s)`,\n\t\t\t\t\t\terr,\n\t\t\t\t\t);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t} catch (err) {\n\t\tversionFile.reset();\n\t\tthrow err;\n\t}\n\n\tif (newVersion.buildNumber >= 100 && !options.pushOnly) {\n\t\treporter.error(\"Copying zip to releases folder\");\n\n\t\tconst zipFileName = `${packageNameWithVersion}.zip`;\n\t\tconst releasesPath = getPackageReleasesDirectory(location);\n\n\t\tawait fs.mkdir(releasesPath, { recursive: true });\n\t\tawait pipeline(\n\t\t\tuploadable.getStream(),\n\t\t\tcreateWriteStream(path.join(releasesPath, zipFileName)),\n\t\t);\n\t}\n};\n"],"names":["buildArchiveFromPublishedPackage","location","manifest","creatorPackage","archive","JSZip","file","PACKAGE_FILE","JSON","stringify","index","readPublishedPackageCreatorIndex","undefined","INDEX_FILE","main","fs","createReadStream","path","join","Package","source","existsSync","images","readdirSync","ext","parse","runtimeScripts","notRuntimeScripts","buildArchiveFromPackage","reporter","packageLocation","data","binDir","minified","domain","parseCreatorPackageName","scriptDirectories","scriptsDir","log","push","readPackageCreatorManifest","RunTime","includes","Type","writePackageCreatorManifest","libFile","libFilePath","readFileSync","encoding","err","isErrorENOENT","library","date","Date","now","getFullYear","creatorIndex","readPackageCreatorIndex","directory","error","createAssetServiceSessionManager","params","targetSession","AssetService","basicsSession","getBasicsSession","subDomain","getTargetSession","destroy","synchronizeDependencies","workspaceLocation","sessionManager","prompter","logUpToDate","libraries","determineWorkspaceIGLibraries","length","rawUploadedPackages","uploadedPackages","map","entry","version","parseVersionFromNumericVersion","numericVersion","Error","buildNumber","preRelease","type","libraryLocation","libraryManifest","readPublishedPackageNpmManifest","libraryCreatorPackage","readPublishedPackageCreatorManifest","libraryVersion","PackageVersion","extractFromLine","uploadedPackageInBasics","uploadedPackageInTarget","uploadedPackage","scope","support","validInBasics","isLesserThan","validInTarget","toVersionString","possibleTargets","value","name","libraryVersionString","uploadTargetScope","ask","message","options","default","newVersionString","session","generateAsync","execAsync","promisify","exec","releaseFolder","workspace","versionFile","getVersionFileHandler","packageDescription","fullPackageName","createPackageScopedReporter","consoleReporter","subdomain","publishDomain","publishSubdomain","sharedPackageJson","readWorkspaceNpmManifest","newVersion","parseVersionFromString","Version","outDir","getWorkspaceOutputPath","mkdir","recursive","assetServerPackageDetails","packageNameWithVersion","versionWithoutPrelease","clone","zipFilePath","uploadable","getStream","pushOnly","zipFileExists","stat","catch","Promise","reject","gitVersionInformation","getVersionInformationFromGit","exists","write","bannerText","getWorkspaceBannerText","buildFolders","packages","banner","text","commit","commitDirty","dirty","preparedReporter","rm","readPackageAnimationList","workspaceManifest","dependencies","install","confirm","cwd","minimize","zipOutputStream","createWriteStream","pipeline","generateNodeStream","isErrorEACCES","isErrorEPERM","noUpload","authentication","url","service","address","skipDependencies","buffer","reset","zipFileName","releasesPath","getPackageReleasesDirectory"],"mappings":"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"}
1
+ {"version":3,"file":"index-Dcu2jMcl.mjs","sources":["../src/commands/publish/zip.ts","../src/lib/assetServiceSessionManager.ts","../src/lib/dependencySync.ts","../src/commands/publish/index.ts"],"sourcesContent":["import JSZip from \"jszip\";\nimport * as path from \"path\";\nimport * as fs from \"fs\";\n\nimport { isErrorENOENT } from \"../../lib/error\";\nimport {\n\tCreatorPackage,\n\treadPackageCreatorManifest,\n\twritePackageCreatorManifest,\n\treadPackageCreatorIndex,\n\tparseCreatorPackageName,\n\tPackageLocation,\n\tPackageNpmManifest,\n\tINDEX_FILE,\n\tPACKAGE_FILE,\n} from \"../../lib/package\";\nimport {\n\tPublishedPackageLocation,\n\treadPublishedPackageCreatorIndex,\n} from \"../../lib/publishedPackage\";\nimport { Reporter } from \"@intelligentgraphics/ig.gfx.tools.core\";\n\nexport const buildArchiveFromPublishedPackage = (\n\tlocation: PublishedPackageLocation,\n\tmanifest: PackageNpmManifest,\n\tcreatorPackage: CreatorPackage,\n) => {\n\tconst archive = new JSZip();\n\n\tarchive.file(PACKAGE_FILE, JSON.stringify(creatorPackage, null, 2));\n\n\tconst index = readPublishedPackageCreatorIndex(location);\n\n\tif (index !== undefined) {\n\t\tarchive.file(INDEX_FILE, JSON.stringify(index, null, 2));\n\t}\n\n\tarchive.file(\n\t\tmanifest.main,\n\t\tfs.createReadStream(path.join(location.path, manifest.main)),\n\t);\n\n\tif (creatorPackage.Package === \"IG.GFX.Standard\") {\n\t\tconst source = path.join(location.path, \"Images\");\n\n\t\tif (fs.existsSync(source)) {\n\t\t\tconst images = fs.readdirSync(source);\n\n\t\t\tfor (const file of images) {\n\t\t\t\tconst { ext } = path.parse(file);\n\n\t\t\t\tswitch (ext) {\n\t\t\t\t\tcase \".png\":\n\t\t\t\t\tcase \".jpeg\":\n\t\t\t\t\tcase \".jpg\":\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tarchive.file(\n\t\t\t\t\tfile,\n\t\t\t\t\tfs.createReadStream(path.join(source, file)),\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn archive;\n};\n\nconst runtimeScripts: CreatorPackage[\"Type\"][] = [\n\t\"Interactor\",\n\t\"Core\",\n\t\"Mixed\",\n];\n\nconst notRuntimeScripts: CreatorPackage[\"Type\"][] = [\"Context\", \"Evaluator\"];\n\nexport const buildArchiveFromPackage = async (\n\treporter: Reporter,\n\tpackageLocation: PackageLocation,\n\tdata: CreatorPackage,\n\tbinDir: string,\n\tminified = true,\n) => {\n\tconst { domain } = parseCreatorPackageName(data);\n\n\tconst scriptDirectories: string[] = [\n\t\tpackageLocation.path,\n\t\tpackageLocation.scriptsDir,\n\t];\n\n\tif (data.Package === \"IG.GFX.Standard\") {\n\t\treporter.log(`Including Images folder`);\n\t\tscriptDirectories.push(path.join(packageLocation.path, \"Images\"));\n\t}\n\n\tconst manifest = readPackageCreatorManifest(packageLocation);\n\n\tif (manifest !== undefined) {\n\t\tif (manifest.RunTime && notRuntimeScripts.includes(manifest.Type)) {\n\t\t\treporter.log(\n\t\t\t\t\"Setting script RunTime to false because of script type\",\n\t\t\t);\n\t\t\twritePackageCreatorManifest(packageLocation, {\n\t\t\t\t...manifest,\n\t\t\t\tRunTime: false,\n\t\t\t});\n\t\t} else if (\n\t\t\t!manifest.RunTime &&\n\t\t\truntimeScripts.includes(manifest.Type)\n\t\t) {\n\t\t\treporter.log(\n\t\t\t\t\"Setting script RunTime to true because of script type\",\n\t\t\t);\n\t\t\twritePackageCreatorManifest(packageLocation, {\n\t\t\t\t...manifest,\n\t\t\t\tRunTime: true,\n\t\t\t});\n\t\t}\n\t}\n\n\tlet libFile: string | undefined;\n\n\ttry {\n\t\tconst libFilePath = minified\n\t\t\t? path.join(binDir, `${data.Package}.min.js`)\n\t\t\t: path.join(binDir, `${data.Package}.js`);\n\n\t\tlibFile = fs.readFileSync(libFilePath, {\n\t\t\tencoding: \"utf8\",\n\t\t});\n\t} catch (err) {\n\t\tif (!isErrorENOENT(err)) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\n\tconst archive = new JSZip();\n\n\tlet library: string = \"\";\n\n\tif (libFile) {\n\t\tlibrary = libFile;\n\t}\n\n\tif (!library) {\n\t\tconst date = new Date(Date.now());\n\t\tlibrary = `/* This file is part of the ${domain} Data Packages.\n\t\t* Copyright (C) ${date.getFullYear()} intelligentgraphics. All Rights Reserved. */`;\n\t}\n\n\tarchive.file(`${data.Package}.js`, library);\n\tarchive.file(PACKAGE_FILE, JSON.stringify(data, null, 2));\n\n\tconst creatorIndex = readPackageCreatorIndex(packageLocation);\n\n\tif (creatorIndex !== undefined) {\n\t\tarchive.file(INDEX_FILE, JSON.stringify(creatorIndex, null, 2));\n\t}\n\n\tfor (const directory of scriptDirectories) {\n\t\ttry {\n\t\t\tfor (const file of fs.readdirSync(directory)) {\n\t\t\t\tconst { ext } = path.parse(file);\n\n\t\t\t\tswitch (ext) {\n\t\t\t\t\tcase \".png\":\n\t\t\t\t\tcase \".jpeg\":\n\t\t\t\t\tcase \".jpg\":\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tarchive.file(\n\t\t\t\t\tfile,\n\t\t\t\t\tfs.createReadStream(path.join(directory, file)),\n\t\t\t\t);\n\t\t\t}\n\t\t} catch (err) {\n\t\t\treporter.error(`Script directory \"${directory}\" does not exist`);\n\t\t}\n\t}\n\n\treturn archive;\n};\n","import { AssetService } from \"@intelligentgraphics/ig.gfx.tools.core\";\n\nexport interface AssetServiceSessionManager {\n\tgetBasicsSession: () => Promise<AssetService.Session>;\n\tgetTargetSession: () => AssetService.Session;\n\tdestroy: () => Promise<void>;\n}\n\nexport const createAssetServiceSessionManager = async (\n\tparams: AssetService.SessionStartParams,\n): Promise<AssetServiceSessionManager> => {\n\tconst targetSession = await AssetService.startSession(params);\n\tlet basicsSession: AssetService.Session | undefined;\n\n\treturn {\n\t\tgetBasicsSession: async () => {\n\t\t\tif (targetSession.subDomain === \"Basics\") {\n\t\t\t\treturn targetSession;\n\t\t\t}\n\n\t\t\tif (basicsSession === undefined) {\n\t\t\t\tbasicsSession = await AssetService.startSession({\n\t\t\t\t\t...params,\n\t\t\t\t\tsubDomain: \"Basics\",\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn basicsSession;\n\t\t},\n\n\t\tgetTargetSession: () => targetSession,\n\n\t\tdestroy: async () => {\n\t\t\tawait AssetService.closeSession(targetSession);\n\n\t\t\tif (basicsSession !== undefined) {\n\t\t\t\tawait AssetService.closeSession(basicsSession);\n\t\t\t}\n\t\t},\n\t};\n};\n","import {\n\tWorkspaceLocation,\n\tCreatorPackage,\n\tAssetService,\n\tdetermineWorkspaceIGLibraries,\n\treadPublishedPackageNpmManifest,\n\treadPublishedPackageCreatorManifest,\n\tReporter,\n} from \"@intelligentgraphics/ig.gfx.tools.core\";\nimport { buildArchiveFromPublishedPackage } from \"../commands/publish/zip\";\nimport { AssetServiceSessionManager } from \"./assetServiceSessionManager\";\nimport { PackageVersion } from \"./packageVersion\";\nimport { parseVersionFromNumericVersion } from \"./parseVersion\";\nimport { Prompter, PrompterOption } from \"./prompter\";\nimport { Readable } from \"node:stream\";\n\nexport const synchronizeDependencies = async (\n\tworkspaceLocation: WorkspaceLocation,\n\tcreatorPackage: CreatorPackage | undefined,\n\tsessionManager: AssetServiceSessionManager,\n\tprompter: Prompter,\n\treporter: Reporter,\n\tlogUpToDate: boolean = false,\n) => {\n\tinterface UploadedPackage\n\t\textends Omit<AssetService.ExistingPackage, \"version\"> {\n\t\tversion: PackageVersion;\n\t}\n\n\tconst libraries = determineWorkspaceIGLibraries(workspaceLocation);\n\n\t// If there are no libraries, we don't need to check for required versions\n\tif (libraries.length === 0) {\n\t\treturn true;\n\t}\n\n\tconst targetSession = sessionManager.getTargetSession();\n\n\tconst rawUploadedPackages = await AssetService.getExistingPackages(\n\t\ttargetSession,\n\t);\n\n\tconst uploadedPackages = rawUploadedPackages.map(\n\t\t(entry): UploadedPackage => {\n\t\t\tlet version: PackageVersion;\n\n\t\t\ttry {\n\t\t\t\tversion = parseVersionFromNumericVersion(entry.numericVersion);\n\t\t\t} catch (err) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Encountered invalid format for version ${entry.numericVersion}`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (version.buildNumber < 100) {\n\t\t\t\tversion.preRelease = {\n\t\t\t\t\ttype: \"beta\",\n\t\t\t\t\tversion: version.buildNumber,\n\t\t\t\t};\n\t\t\t} else if (version.buildNumber > 100) {\n\t\t\t\tversion.preRelease = {\n\t\t\t\t\ttype: \"patch\",\n\t\t\t\t\tversion: version.buildNumber - 100,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...entry,\n\t\t\t\tversion,\n\t\t\t};\n\t\t},\n\t);\n\n\tfor (const libraryLocation of libraries) {\n\t\tconst libraryManifest =\n\t\t\treadPublishedPackageNpmManifest(libraryLocation);\n\t\tconst libraryCreatorPackage =\n\t\t\treadPublishedPackageCreatorManifest(libraryLocation);\n\n\t\tif (\n\t\t\tlibraryCreatorPackage === undefined ||\n\t\t\tlibraryManifest.main === undefined ||\n\t\t\tlibraryCreatorPackage.Package === creatorPackage?.Package\n\t\t) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst libraryVersion = PackageVersion.extractFromLine(\n\t\t\tlibraryManifest.version,\n\t\t);\n\n\t\tif (libraryVersion.preRelease) {\n\t\t\tlibraryVersion.buildNumber = libraryVersion.preRelease.version;\n\t\t\tlibraryVersion.preRelease = undefined;\n\t\t} else {\n\t\t\tlibraryVersion.buildNumber = 100;\n\t\t}\n\n\t\tlet uploadedPackageInBasics: UploadedPackage | undefined;\n\t\tlet uploadedPackageInTarget: UploadedPackage | undefined;\n\n\t\tfor (const uploadedPackage of uploadedPackages) {\n\t\t\tif (uploadedPackage.scope === libraryCreatorPackage.Package) {\n\t\t\t\tif (uploadedPackage.support) {\n\t\t\t\t\tuploadedPackageInBasics = uploadedPackage;\n\t\t\t\t} else {\n\t\t\t\t\tuploadedPackageInTarget = uploadedPackage;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst validInBasics =\n\t\t\tuploadedPackageInBasics !== undefined &&\n\t\t\t!uploadedPackageInBasics.version.isLesserThan(libraryVersion);\n\t\tconst validInTarget =\n\t\t\tuploadedPackageInTarget !== undefined &&\n\t\t\t!uploadedPackageInTarget.version.isLesserThan(libraryVersion);\n\n\t\tif (validInBasics || validInTarget) {\n\t\t\tif (\n\t\t\t\ttargetSession.subDomain !== \"Basics\" &&\n\t\t\t\tuploadedPackageInBasics !== undefined &&\n\t\t\t\tuploadedPackageInTarget !== undefined\n\t\t\t) {\n\t\t\t\treporter.log(\n\t\t\t\t\t`Package ${libraryCreatorPackage.Package} is uploaded both for Basics and ${targetSession.subDomain}. The package within ${targetSession.subDomain} will be used.`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (logUpToDate) {\n\t\t\t\treporter.log(\n\t\t\t\t\t`Package ${\n\t\t\t\t\t\tlibraryCreatorPackage.Package\n\t\t\t\t\t} is already uploaded with the required version ${libraryVersion.toVersionString(\n\t\t\t\t\t\t{},\n\t\t\t\t\t)}`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst possibleTargets: PrompterOption[] = [];\n\n\t\tif (uploadedPackageInBasics) {\n\t\t\tconst version = uploadedPackageInBasics.version.toVersionString({\n\t\t\t\tbuildNumber: true,\n\t\t\t});\n\n\t\t\tpossibleTargets.push({\n\t\t\t\tvalue: \"Basics\",\n\t\t\t\tname: `Basics (Current: ${version})`,\n\t\t\t});\n\t\t} else {\n\t\t\tpossibleTargets.push({\n\t\t\t\tvalue: \"Basics\",\n\t\t\t\tname: \"Basics (Current: None)\",\n\t\t\t});\n\t\t}\n\n\t\tif (targetSession.subDomain !== \"Basics\") {\n\t\t\tif (uploadedPackageInTarget) {\n\t\t\t\tconst version = uploadedPackageInTarget.version.toVersionString(\n\t\t\t\t\t{\n\t\t\t\t\t\tbuildNumber: true,\n\t\t\t\t\t},\n\t\t\t\t);\n\n\t\t\t\tpossibleTargets.push({\n\t\t\t\t\tvalue: targetSession.subDomain,\n\t\t\t\t\tname: `${targetSession.subDomain} (Current: ${version})`,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tpossibleTargets.push({\n\t\t\t\t\tvalue: targetSession.subDomain,\n\t\t\t\t\tname: `${targetSession.subDomain} (Current: None)`,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tconst libraryVersionString = libraryVersion.toVersionString({\n\t\t\tbuildNumber: true,\n\t\t});\n\n\t\tconst uploadTargetScope = await prompter.ask({\n\t\t\tmessage: `Version ${libraryVersionString} of dependency ${libraryCreatorPackage.Package} is required but not available. Please select a subdomain to upload the correct dependency version to`,\n\t\t\toptions: [\n\t\t\t\t...possibleTargets,\n\t\t\t\t{ name: \"Skip upload\", value: \"Skip\" },\n\t\t\t],\n\t\t\tdefault: possibleTargets[0].value,\n\t\t});\n\n\t\tif (uploadTargetScope === \"Skip\") {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst archive = buildArchiveFromPublishedPackage(\n\t\t\tlibraryLocation,\n\t\t\tlibraryManifest,\n\t\t\tlibraryCreatorPackage,\n\t\t);\n\n\t\tconst newVersionString = libraryVersion.toVersionString({\n\t\t\tbuildNumber: true,\n\t\t});\n\n\t\tconst session =\n\t\t\tuploadTargetScope === \"Basics\"\n\t\t\t\t? await sessionManager.getBasicsSession()\n\t\t\t\t: targetSession;\n\n\t\treporter.log(\n\t\t\t`Uploading package ${libraryCreatorPackage.Package} with version ${newVersionString} to ${session.domain}.${session.subDomain}`,\n\t\t);\n\n\t\tawait AssetService.uploadPackageFromBuffer(\n\t\t\tsession,\n\t\t\t{\n\t\t\t\tname: libraryCreatorPackage.Package,\n\t\t\t\tversion: newVersionString,\n\t\t\t},\n\t\t\tawait archive.generateAsync({ type: \"nodebuffer\" }),\n\t\t);\n\t}\n};\n","import * as path from \"path\";\nimport * as fs from \"fs/promises\";\nimport { createReadStream, createWriteStream } from \"fs\";\nimport { pipeline } from \"stream/promises\";\nimport { exec } from \"child_process\";\nimport { promisify } from \"util\";\n\nimport {\n\tAssetService,\n\tconsoleReporter,\n\tcreatePackageScopedReporter,\n\tisErrorEACCES,\n\tisErrorEPERM,\n\tReporter,\n\twritePackageCreatorManifest,\n} from \"@intelligentgraphics/ig.gfx.tools.core\";\n\nimport {\n\tgetPackageReleasesDirectory,\n\tPackageLocation,\n\tparseCreatorPackageName,\n\treadPackageAnimationList,\n\treadPackageCreatorManifest,\n} from \"../../lib/package\";\nimport {\n\tgetWorkspaceOutputPath,\n\treadWorkspaceNpmManifest,\n} from \"../../lib/workspace\";\nimport { getVersionInformationFromGit } from \"../../lib/git\";\nimport { getWorkspaceBannerText } from \"../../lib/banner\";\nimport { parseVersionFromString } from \"../../lib/parseVersion\";\nimport { getVersionFileHandler } from \"../../lib/versionFile\";\nimport { isErrorENOENT } from \"../../lib/error\";\nimport { Prompter } from \"../../lib/prompter\";\nimport { PackageVersion } from \"../../lib/packageVersion\";\nimport { BuildFoldersOptions, buildFolders } from \"../build\";\nimport { buildArchiveFromPackage } from \"./zip\";\nimport { createAssetServiceSessionManager } from \"../../lib/assetServiceSessionManager\";\nimport { synchronizeDependencies } from \"../../lib/dependencySync\";\nimport { buffer } from \"node:stream/consumers\";\n\nexport interface ReleaseFolderOptions\n\textends Omit<\n\t\tBuildFoldersOptions,\n\t\t\"skipPackagesWithoutTsFiles\" | \"banner\" | \"packages\"\n\t> {\n\tdirectory: PackageLocation;\n\tnoUpload: boolean;\n\tnewVersion: string;\n\tdomain?: string;\n\tsubdomain?: string;\n\taddress?: string;\n\tservice: string;\n\tauthentication?: AssetService.Authentication;\n\tpushOnly: boolean;\n\tbanner?: boolean;\n\tprompter: Prompter;\n\tskipDependencies?: boolean;\n\treporter?: Reporter;\n}\n\nconst execAsync = promisify(exec);\n\nexport const releaseFolder = async (options: ReleaseFolderOptions) => {\n\tconst workspace = options.workspace;\n\tconst location = options.directory;\n\n\tconst versionFile = getVersionFileHandler(location);\n\n\tconst packageDescription = readPackageCreatorManifest(location);\n\tconst fullPackageName = packageDescription.Package;\n\n\tconst reporter =\n\t\toptions.reporter ??\n\t\tcreatePackageScopedReporter(\n\t\t\tconsoleReporter,\n\t\t\tpackageDescription.Package,\n\t\t);\n\n\tconst { domain, subdomain } = parseCreatorPackageName(packageDescription);\n\n\tconst publishDomain = options.domain ?? domain;\n\tconst publishSubdomain = options.subdomain ?? subdomain;\n\n\tconst sharedPackageJson = readWorkspaceNpmManifest(workspace);\n\n\tlet newVersion: PackageVersion;\n\ttry {\n\t\tnewVersion = parseVersionFromString(options.newVersion);\n\t} catch (err) {\n\t\tthrow new Error(`Please enter a version in this format 1.0.0.100`);\n\t}\n\n\tpackageDescription.Version = newVersion.toVersionString({\n\t\tbuildNumber: true,\n\t});\n\twritePackageCreatorManifest(location, packageDescription);\n\n\tif (newVersion.buildNumber < 100) {\n\t\tnewVersion.preRelease = {\n\t\t\ttype: \"beta\",\n\t\t\tversion: newVersion.buildNumber,\n\t\t};\n\t} else if (newVersion.buildNumber > 100) {\n\t\tnewVersion.preRelease = {\n\t\t\ttype: \"patch\",\n\t\t\tversion: newVersion.buildNumber - 100,\n\t\t};\n\t}\n\n\t// if (sharedPackageJson !== undefined) {\n\t// \treporter.log(\n\t// \t\t`Running npm install to make sure all dependencies are up to date`,\n\t// \t);\n\t// \tawait execAsync(`npm install`, {\n\t// \t\tencoding: \"utf-8\",\n\t// \t\tcwd: workspace.path,\n\t// \t});\n\t// }\n\n\tconst binDir = options.outDir ?? getWorkspaceOutputPath(workspace);\n\tawait fs.mkdir(binDir, { recursive: true });\n\n\tlet assetServerPackageDetails: AssetService.UploadPackageDetails;\n\n\tlet packageNameWithVersion: string;\n\n\t{\n\t\tconst versionWithoutPrelease = newVersion.clone();\n\t\tversionWithoutPrelease.preRelease = undefined;\n\t\tconst newVersionString = versionWithoutPrelease.toVersionString({\n\t\t\tbuildNumber: true,\n\t\t});\n\t\tpackageNameWithVersion = `${packageDescription.Package}_${newVersionString}`;\n\n\t\tassetServerPackageDetails = {\n\t\t\tname: packageDescription.Package,\n\t\t\tversion: newVersionString,\n\t\t};\n\t}\n\n\tlet zipFilePath = path.join(binDir, packageNameWithVersion + \".zip\");\n\tinterface Uploadable {\n\t\tgetStream: () => NodeJS.ReadableStream;\n\t}\n\n\tlet uploadable: Uploadable = {\n\t\tgetStream: () => createReadStream(zipFilePath),\n\t};\n\n\ttry {\n\t\tif (options.pushOnly) {\n\t\t\tconst zipFileExists = await fs.stat(zipFilePath).catch((err) => {\n\t\t\t\tif (isErrorENOENT(err)) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\treturn Promise.reject(err);\n\t\t\t});\n\n\t\t\tif (zipFileExists) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Expected a zip file to exist at path ${zipFilePath} since pushOnly is specified`,\n\t\t\t\t);\n\t\t\t}\n\t\t} else {\n\t\t\tconst gitVersionInformation = await getVersionInformationFromGit(\n\t\t\t\tworkspace,\n\t\t\t\tlocation,\n\t\t\t);\n\n\t\t\tif (versionFile.exists) {\n\t\t\t\tversionFile.write(fullPackageName, newVersion);\n\t\t\t}\n\n\t\t\tconst bannerText =\n\t\t\t\tsharedPackageJson !== undefined\n\t\t\t\t\t? getWorkspaceBannerText(sharedPackageJson)\n\t\t\t\t\t: undefined;\n\n\t\t\tawait buildFolders({\n\t\t\t\t...options,\n\t\t\t\tpackages: [location],\n\t\t\t\tbanner: options.banner\n\t\t\t\t\t? {\n\t\t\t\t\t\t\ttext: bannerText,\n\t\t\t\t\t\t\tcommit: gitVersionInformation.commit,\n\t\t\t\t\t\t\tcommitDirty: gitVersionInformation.dirty,\n\t\t\t\t\t\t\tversion: newVersion.toVersionString({\n\t\t\t\t\t\t\t\tbuildNumber: true,\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\tdate: new Date(Date.now()),\n\t\t\t\t\t\t\t// gitVersionInformation.commitDate\n\t\t\t\t\t\t\t// \t? new Date(gitVersionInformation.commitDate)\n\t\t\t\t\t\t\t// \t: new Date(Date.now()),\n\t\t\t\t\t }\n\t\t\t\t\t: undefined,\n\t\t\t\tpreparedReporter: reporter,\n\t\t\t});\n\n\t\t\tnewVersion.preRelease = undefined;\n\n\t\t\ttry {\n\t\t\t\tawait fs.rm(zipFilePath);\n\t\t\t} catch (err) {\n\t\t\t\tif (!isErrorENOENT(err)) {\n\t\t\t\t\tthrow err;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (readPackageAnimationList(location).length > 0) {\n\t\t\t\tconst workspaceManifest = readWorkspaceNpmManifest(workspace);\n\n\t\t\t\tif (\n\t\t\t\t\t!workspaceManifest.dependencies?.[\n\t\t\t\t\t\t\"@intelligentgraphics/3d.ig.gfx.standard\"\n\t\t\t\t\t]\n\t\t\t\t) {\n\t\t\t\t\tconst install = await options.prompter.confirm(\n\t\t\t\t\t\t`The IG.GFX.Standard package should be added as a dependency to provide the 'AnimationInteractor' used to display animations. Do you wish to add it now?`,\n\t\t\t\t\t);\n\n\t\t\t\t\tif (install) {\n\t\t\t\t\t\tawait execAsync(\n\t\t\t\t\t\t\t`npm install @intelligentgraphics/3d.ig.gfx.standard`,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tencoding: \"utf-8\",\n\t\t\t\t\t\t\t\tcwd: workspace.path,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tawait execAsync(`npm run postinstall`, {\n\t\t\t\t\t\t\tcwd: workspace.path,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treporter.log(`Creating zip file`);\n\n\t\t\tconst archive = await buildArchiveFromPackage(\n\t\t\t\treporter,\n\t\t\t\tlocation,\n\t\t\t\tpackageDescription,\n\t\t\t\tbinDir,\n\t\t\t\toptions.minimize,\n\t\t\t);\n\n\t\t\ttry {\n\t\t\t\tconst zipOutputStream = createWriteStream(zipFilePath);\n\t\t\t\tawait pipeline(archive.generateNodeStream(), zipOutputStream);\n\t\t\t} catch (err) {\n\t\t\t\tif (isErrorEACCES(err) || isErrorEPERM(err)) {\n\t\t\t\t\treporter.log(\n\t\t\t\t\t\t`Could not create zip file in the bin directory because of a permissions error. Only using it in-memory`,\n\t\t\t\t\t);\n\t\t\t\t\tuploadable = {\n\t\t\t\t\t\tgetStream: () => archive.generateNodeStream(),\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\tthrow err;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (!options.noUpload) {\n\t\t\tif (!options.authentication) {\n\t\t\t\tthrow new Error(`Expected authentication to be available`);\n\t\t\t}\n\n\t\t\treporter.log(`Opening connection to IG.Asset.Server`);\n\n\t\t\tconst sessionManager = await createAssetServiceSessionManager({\n\t\t\t\turl: options.service,\n\t\t\t\taddress: options.address,\n\t\t\t\tdomain: publishDomain,\n\t\t\t\tsubDomain: publishSubdomain,\n\t\t\t\tauthentication: options.authentication,\n\t\t\t});\n\n\t\t\ttry {\n\t\t\t\tif (!options.skipDependencies) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait synchronizeDependencies(\n\t\t\t\t\t\t\tworkspace,\n\t\t\t\t\t\t\tpackageDescription,\n\t\t\t\t\t\t\tsessionManager,\n\t\t\t\t\t\t\toptions.prompter,\n\t\t\t\t\t\t\treporter,\n\t\t\t\t\t\t);\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\treporter.error(\n\t\t\t\t\t\t\t`Failed to synchronize dependencies for ${packageDescription.Package}`,\n\t\t\t\t\t\t\terr,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treporter.log(\n\t\t\t\t\t`Uploading package to ${publishDomain}.${publishSubdomain}`,\n\t\t\t\t);\n\n\t\t\t\tawait AssetService.uploadPackageFromBuffer(\n\t\t\t\t\tsessionManager.getTargetSession(),\n\t\t\t\t\tassetServerPackageDetails,\n\t\t\t\t\tawait buffer(uploadable.getStream()),\n\t\t\t\t);\n\t\t\t} finally {\n\t\t\t\tawait sessionManager.destroy().catch((err) => {\n\t\t\t\t\treporter.error(\n\t\t\t\t\t\t`Failed to close IG.Asset.Server session(s)`,\n\t\t\t\t\t\terr,\n\t\t\t\t\t);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t} catch (err) {\n\t\tversionFile.reset();\n\t\tthrow err;\n\t}\n\n\tif (newVersion.buildNumber >= 100 && !options.pushOnly) {\n\t\treporter.error(\"Copying zip to releases folder\");\n\n\t\tconst zipFileName = `${packageNameWithVersion}.zip`;\n\t\tconst releasesPath = getPackageReleasesDirectory(location);\n\n\t\tawait fs.mkdir(releasesPath, { recursive: true });\n\t\tawait pipeline(\n\t\t\tuploadable.getStream(),\n\t\t\tcreateWriteStream(path.join(releasesPath, zipFileName)),\n\t\t);\n\t}\n};\n"],"names":["buildArchiveFromPublishedPackage","location","manifest","creatorPackage","archive","JSZip","file","PACKAGE_FILE","JSON","stringify","index","readPublishedPackageCreatorIndex","undefined","INDEX_FILE","main","fs","createReadStream","path","join","Package","source","existsSync","images","readdirSync","ext","parse","runtimeScripts","notRuntimeScripts","buildArchiveFromPackage","reporter","packageLocation","data","binDir","minified","domain","parseCreatorPackageName","scriptDirectories","scriptsDir","log","push","readPackageCreatorManifest","RunTime","includes","Type","writePackageCreatorManifest","libFile","libFilePath","readFileSync","encoding","err","isErrorENOENT","library","date","Date","now","getFullYear","creatorIndex","readPackageCreatorIndex","directory","error","createAssetServiceSessionManager","params","targetSession","AssetService","basicsSession","getBasicsSession","subDomain","getTargetSession","destroy","synchronizeDependencies","workspaceLocation","sessionManager","prompter","logUpToDate","libraries","determineWorkspaceIGLibraries","length","rawUploadedPackages","uploadedPackages","map","entry","version","parseVersionFromNumericVersion","numericVersion","Error","buildNumber","preRelease","type","libraryLocation","libraryManifest","readPublishedPackageNpmManifest","libraryCreatorPackage","readPublishedPackageCreatorManifest","libraryVersion","PackageVersion","extractFromLine","uploadedPackageInBasics","uploadedPackageInTarget","uploadedPackage","scope","support","validInBasics","isLesserThan","validInTarget","toVersionString","possibleTargets","value","name","libraryVersionString","uploadTargetScope","ask","message","options","default","newVersionString","session","generateAsync","execAsync","promisify","exec","releaseFolder","workspace","versionFile","getVersionFileHandler","packageDescription","fullPackageName","createPackageScopedReporter","consoleReporter","subdomain","publishDomain","publishSubdomain","sharedPackageJson","readWorkspaceNpmManifest","newVersion","parseVersionFromString","Version","outDir","getWorkspaceOutputPath","mkdir","recursive","assetServerPackageDetails","packageNameWithVersion","versionWithoutPrelease","clone","zipFilePath","uploadable","getStream","pushOnly","zipFileExists","stat","catch","Promise","reject","gitVersionInformation","getVersionInformationFromGit","exists","write","bannerText","getWorkspaceBannerText","buildFolders","packages","banner","text","commit","commitDirty","dirty","preparedReporter","rm","readPackageAnimationList","workspaceManifest","dependencies","install","confirm","cwd","minimize","zipOutputStream","createWriteStream","pipeline","generateNodeStream","isErrorEACCES","isErrorEPERM","noUpload","authentication","url","service","address","skipDependencies","buffer","reset","zipFileName","releasesPath","getPackageReleasesDirectory"],"mappings":"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"}
@@ -5,14 +5,13 @@ import { EOL } from 'os';
5
5
  import ts from 'typescript';
6
6
  import * as fs from 'fs';
7
7
  import 'resolve';
8
- import 'write-pkg';
9
- import { e as readPackageAnimationList, r as readPackageCreatorManifest, q as readPackageNpmManifest, i as isErrorENOENT } from './cli-sBIEQH_m.mjs';
10
- import { g as getPackageTypescriptFiles, i as isScriptPackageModules } from './scripts-BmQnbRem.mjs';
8
+ import 'write-package';
9
+ import { e as readPackageAnimationList, r as readPackageCreatorManifest, q as readPackageNpmManifest, i as isErrorENOENT } from './cli-IlMWNOvf.mjs';
10
+ import { g as getPackageTypescriptFiles, i as isScriptPackageModules } from './scripts-B3noxiX3.mjs';
11
11
  import 'axios';
12
- import * as typedoc from 'typedoc';
13
- import * as glob from 'glob';
14
12
  import EventEmitter from 'events';
15
13
  import { SourceMapGenerator, SourceMapConsumer } from 'source-map-js';
14
+ import 'glob';
16
15
  import Ajv from 'ajv';
17
16
 
18
17
  const consoleReporter = {
@@ -137,6 +136,7 @@ const createTSCWatchBuildParticipant = (location, outputDir, skipDeclarations)=>
137
136
  }
138
137
  state.diagnostics.push(diagnostic);
139
138
  };
139
+ let currentProgram;
140
140
  const reportWatchStatusChanged = (diagnostic)=>{
141
141
  switch(diagnostic.code){
142
142
  // regular watch mode - https://github.com/microsoft/TypeScript/blob/93e6b9da0c4cb164ca90a5a1b07415e81e97f2b1/src/compiler/diagnosticMessages.json#L4567
@@ -166,7 +166,7 @@ const createTSCWatchBuildParticipant = (location, outputDir, skipDeclarations)=>
166
166
  });
167
167
  return;
168
168
  }
169
- if (emitState.js === undefined || emitState.definitions === undefined) {
169
+ if (emitState.js === undefined) {
170
170
  onBuildEnd({
171
171
  type: "success",
172
172
  artefacts: {
@@ -175,11 +175,14 @@ const createTSCWatchBuildParticipant = (location, outputDir, skipDeclarations)=>
175
175
  });
176
176
  return;
177
177
  }
178
+ if (!currentProgram) {
179
+ throw new Error(`Expected a program to exist`);
180
+ }
178
181
  onBuildEnd({
179
182
  type: "success",
180
183
  artefacts: {
181
184
  js: emitState.js.replace(`//# sourceMappingURL=out.js.map`, ""),
182
- declarations: getDeclarationFileReferences(location, watchProgram.getProgram(), outputDir) + emitState.definitions,
185
+ declarations: emitState.definitions ? getDeclarationFileReferences(location, currentProgram, outputDir) + emitState.definitions : undefined,
183
186
  sourceMap: emitState.sourceMap
184
187
  }
185
188
  });
@@ -187,6 +190,11 @@ const createTSCWatchBuildParticipant = (location, outputDir, skipDeclarations)=>
187
190
  }
188
191
  };
189
192
  const host = ts.createWatchCompilerHost(path.join(location.scriptsDir, "tsconfig.json"), getCompilerOptions(location, outputDir, skipDeclarations), customSys, ts.createSemanticDiagnosticsBuilderProgram, registerDiagnostic, reportWatchStatusChanged);
193
+ const originalAfterProgramCreate = host.afterProgramCreate;
194
+ host.afterProgramCreate = (program)=>{
195
+ currentProgram = program;
196
+ originalAfterProgramCreate?.(program);
197
+ };
190
198
  const formattingHost = {
191
199
  getCanonicalFileName: (path)=>path,
192
200
  getCurrentDirectory: host.getCurrentDirectory,
@@ -242,36 +250,6 @@ function getDeclarationFileReferences(location, program, outputDir) {
242
250
  return referenceString;
243
251
  }
244
252
 
245
- async function generateDocs(location, declarationFile, outFolder, name) {
246
- const mediaDir = path.join(location.manifestDir, "Media");
247
- const app = await typedoc.Application.bootstrap({
248
- entryPoints: [
249
- declarationFile
250
- ],
251
- out: outFolder,
252
- tsconfig: path.join(location.scriptsDir, "tsconfig.json"),
253
- skipErrorChecking: "true",
254
- basePath: mediaDir
255
- });
256
- app.options.setCompilerOptions([
257
- declarationFile
258
- ], {
259
- target: ts.ScriptTarget.ES5
260
- }, undefined);
261
- app.options.setValue("name", name);
262
- const [readmePath] = glob.sync("**/readme.md", {
263
- absolute: true,
264
- cwd: location.manifestDir
265
- });
266
- if (readmePath) {
267
- app.options.setValue("readme", readmePath);
268
- }
269
- const project = await app.convert();
270
- if (project) {
271
- await app.generateDocs(project, outFolder);
272
- }
273
- }
274
-
275
253
  // Stolen from ig.tools.core
276
254
  const toposort = (packages)=>{
277
255
  const queue = Object.getOwnPropertyNames(packages);
@@ -297,7 +275,7 @@ const toposort = (packages)=>{
297
275
 
298
276
  class BuildManager extends EventEmitter {
299
277
  constructor(manifest, writer, reporter){
300
- super(), this.manifest = manifest, this.writer = writer, this.reporter = reporter, this.participants = new Map(), this.states = new Map();
278
+ super(), this.manifest = manifest, this.writer = writer, this.reporter = reporter, this.participants = new Map(), this.states = new Map(), this.participantInstances = [];
301
279
  }
302
280
  addParticipant(name, participant) {
303
281
  this.participants.set(name, participant);
@@ -310,7 +288,7 @@ class BuildManager extends EventEmitter {
310
288
  }
311
289
  this.emit("start");
312
290
  for (const [name, participant] of this.participants){
313
- participant({
291
+ const instance = participant({
314
292
  onBuildStart: ()=>{
315
293
  let alreadyBusy = false;
316
294
  for (const [name, state] of this.states){
@@ -332,6 +310,12 @@ class BuildManager extends EventEmitter {
332
310
  },
333
311
  log: (message)=>this.reporter.log(message)
334
312
  });
313
+ this.participantInstances.push(instance);
314
+ }
315
+ }
316
+ destroy() {
317
+ for (const instance of this.participantInstances){
318
+ instance.destroy();
335
319
  }
336
320
  }
337
321
  maybeEmit() {
@@ -1069,10 +1053,12 @@ async function buildFolders(options) {
1069
1053
  }
1070
1054
  if (typescriptFiles.length > 0) {
1071
1055
  if (isScriptPackageModules(tsConfig.options)) {
1072
- const { createRollupBuildParticipant } = await import('./rollup-DakgWejt.mjs');
1073
- manager.addParticipant("rollup", createRollupBuildParticipant(location, data, outputDirectory, options.skipDeclarations ?? false));
1056
+ const { createRollupBuildParticipant } = await import('./rollup-DoDZFLyJ.mjs');
1057
+ manager.addParticipant("rollup", createRollupBuildParticipant(location, data, outputDirectory, !tsConfig.options.declaration));
1074
1058
  } else {
1075
- manager.addParticipant("tsc", createTSCBuildParticipant(location, outputDirectory, options.skipDeclarations ?? false));
1059
+ manager.addParticipant("tsc", createTSCBuildParticipant(location, outputDirectory, // in the past we always created declaration files,
1060
+ // so we'll use it as the default for legacy modules
1061
+ tsConfig.options.declaration === false));
1076
1062
  }
1077
1063
  }
1078
1064
  manager.addParticipant("animation", createAnimationBuildParticipant(location, data));
@@ -1090,8 +1076,11 @@ async function buildFolders(options) {
1090
1076
  manager.run();
1091
1077
  });
1092
1078
  if (options.docs) {
1079
+ if (!options.docsHandler) {
1080
+ throw new Error("Handler for typescript docs not available");
1081
+ }
1093
1082
  reporter.log("Generating typedoc documentation");
1094
- await generateDocs(location, path.join(outputDirectory, `${data.Package}.d.ts`), path.join(workspace.path, "docs", data.Package), data.Package);
1083
+ await options.docsHandler(location, path.join(outputDirectory, `${data.Package}.d.ts`), path.join(workspace.path, "docs", data.Package), data.Package);
1095
1084
  }
1096
1085
  index++;
1097
1086
  }
@@ -1104,6 +1093,7 @@ async function buildFoldersWatch(options) {
1104
1093
  }
1105
1094
  const workspace = options.workspace;
1106
1095
  const folders = options.packages;
1096
+ options.reporter ?? consoleReporter;
1107
1097
  let sortedPackages = sortPackagesByBuildOrder(folders);
1108
1098
  let index = 1;
1109
1099
  const manifests = new Map(sortedPackages.map((location)=>[
@@ -1111,11 +1101,12 @@ async function buildFoldersWatch(options) {
1111
1101
  readPackageCreatorManifest(location)
1112
1102
  ]));
1113
1103
  const maxNameLength = Array.from(manifests.values(), (manifest)=>manifest.Package.length).reduce((acc, length)=>Math.max(acc, length), 0);
1104
+ const managers = [];
1114
1105
  for (const location of sortedPackages){
1115
1106
  const tsConfig = await ensureTsConfig(location);
1116
1107
  const baseReporter = options.reporter ?? consoleReporter;
1117
1108
  const data = manifests.get(location);
1118
- const reporter = createPackageScopedReporter(baseReporter, data.Package, index, folders.length, maxNameLength);
1109
+ const reporter = options.preparedReporter ?? createPackageScopedReporter(baseReporter, data.Package, index, folders.length, maxNameLength);
1119
1110
  const outputDirectory = options.outDir || location.scriptsDir;
1120
1111
  await fs$1.mkdir(outputDirectory, {
1121
1112
  recursive: true
@@ -1130,10 +1121,12 @@ async function buildFoldersWatch(options) {
1130
1121
  }
1131
1122
  if (typescriptFiles.length > 0) {
1132
1123
  if (isScriptPackageModules(tsConfig.options)) {
1133
- const { createRollupWatchBuildParticipant } = await import('./rollup-DakgWejt.mjs');
1134
- manager.addParticipant("rollup", createRollupWatchBuildParticipant(location, data, outputDirectory, options.skipDeclarations ?? false));
1124
+ const { createRollupWatchBuildParticipant } = await import('./rollup-DoDZFLyJ.mjs');
1125
+ manager.addParticipant("rollup", createRollupWatchBuildParticipant(location, data, outputDirectory, !tsConfig.options.declaration));
1135
1126
  } else {
1136
- manager.addParticipant("tsc", createTSCWatchBuildParticipant(location, outputDirectory, options.skipDeclarations ?? false));
1127
+ manager.addParticipant("tsc", createTSCWatchBuildParticipant(location, outputDirectory, // in the past we always created declaration files,
1128
+ // so we'll use it as the default for legacy modules
1129
+ tsConfig.options.declaration === false));
1137
1130
  }
1138
1131
  }
1139
1132
  manager.addParticipant("animation", createAnimationWatchBuildParticipant(location, data));
@@ -1151,9 +1144,16 @@ async function buildFoldersWatch(options) {
1151
1144
  });
1152
1145
  manager.run();
1153
1146
  });
1147
+ managers.push(manager);
1154
1148
  index++;
1155
1149
  }
1156
- await new Promise(()=>{});
1150
+ return {
1151
+ destroy: ()=>{
1152
+ for (const manager of managers){
1153
+ manager.destroy();
1154
+ }
1155
+ }
1156
+ };
1157
1157
  }
1158
1158
  async function writeBuildResult(buildResult, manifest, location, workspace, outputDirectory, minimize, reporter) {
1159
1159
  let js = buildResult.js;
@@ -1183,7 +1183,11 @@ async function writeBuildResult(buildResult, manifest, location, workspace, outp
1183
1183
  }
1184
1184
  });
1185
1185
  const minifiedPath = path.join(outputDirectory, `${manifest.Package}.min.js`);
1186
- await fs$1.writeFile(minifiedPath, minifyResult.code, {
1186
+ let code = minifyResult.code;
1187
+ if (minifyResult.map) {
1188
+ code += `\n//# sourceMappingURL=${manifest.Package}.min.js.map`;
1189
+ }
1190
+ await fs$1.writeFile(minifiedPath, code, {
1187
1191
  encoding: "utf8"
1188
1192
  });
1189
1193
  if (minifyResult.map !== undefined) {
@@ -1363,4 +1367,4 @@ var index = /*#__PURE__*/Object.freeze({
1363
1367
  });
1364
1368
 
1365
1369
  export { PackageVersion as P, consoleReporter as a, buildFolders as b, createPackageScopedReporter as c, index as i };
1366
- //# sourceMappingURL=index-BsakORqB.mjs.map
1370
+ //# sourceMappingURL=index-w4ax9Zlz.mjs.map