@intelligentgraphics/ig.gfx.packager 3.1.2 → 3.1.4
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-CPzBOjl0.mjs → cli-CTqQeYIu.mjs} +8 -8
- package/build/{cli-CPzBOjl0.mjs.map → cli-CTqQeYIu.mjs.map} +1 -1
- package/build/{dependencies-CYuZmWpt.mjs → dependencies-CCIr5dgH.mjs} +2 -2
- package/build/{dependencies-CYuZmWpt.mjs.map → dependencies-CCIr5dgH.mjs.map} +1 -1
- package/build/{docs-BlCIta3Y.mjs → docs-DvFV9WXA.mjs} +2 -2
- package/build/docs-DvFV9WXA.mjs.map +1 -0
- package/build/{generateIndex-D5rR39-Z.mjs → generateIndex-COnAgsMM.mjs} +2 -2
- package/build/{generateIndex-D5rR39-Z.mjs.map → generateIndex-COnAgsMM.mjs.map} +1 -1
- package/build/{generateParameterType-BDyh-daC.mjs → generateParameterType-BFVUv72F.mjs} +8 -6
- package/build/generateParameterType-BFVUv72F.mjs.map +1 -0
- package/build/{index-Dn5_iPca.mjs → index-Ck4_b8Wk.mjs} +49 -19
- package/build/index-Ck4_b8Wk.mjs.map +1 -0
- package/build/{index-Uwhzx9k9.mjs → index-DHSUlJia.mjs} +5 -5
- package/build/{index-Uwhzx9k9.mjs.map → index-DHSUlJia.mjs.map} +1 -1
- package/build/{postinstall-BkmY43I5.mjs → postinstall-BTuIhY_F.mjs} +3 -3
- package/build/{postinstall-BkmY43I5.mjs.map → postinstall-BTuIhY_F.mjs.map} +1 -1
- package/build/{publishNpm-S60dL_YV.mjs → publishNpm-A02qW1UY.mjs} +4 -4
- package/build/{publishNpm-S60dL_YV.mjs.map → publishNpm-A02qW1UY.mjs.map} +1 -1
- package/build/{versionFile-HrFQXwyU.mjs → versionFile-B9z_qwQL.mjs} +3 -3
- package/build/{versionFile-HrFQXwyU.mjs.map → versionFile-B9z_qwQL.mjs.map} +1 -1
- package/lib/lib.mjs +47 -17
- package/package.json +4 -4
- package/readme.md +10 -0
- package/build/docs-BlCIta3Y.mjs.map +0 -1
- package/build/generateParameterType-BDyh-daC.mjs.map +0 -1
- package/build/index-Dn5_iPca.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateIndex-D5rR39-Z.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\tfindNamespaceByMemberSourceFile,\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,\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\tif (strictOptional === undefined) {\n\t\tstrictOptional =\n\t\t\tcompilerOptions.strict === true ||\n\t\t\tcompilerOptions.strictNullChecks === true;\n\t}\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 rootNamespace: Namespace | undefined;\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\trootNamespace = resolveNamespaces(\n\t\t\tentryFile,\n\t\t\tprogram,\n\t\t\thost,\n\t\t\tprogram.getTypeChecker(),\n\t\t\tmanifest.Scope ?? manifest.Package,\n\t\t);\n\t} else {\n\t\tprogram = ts.createProgram(files, { allowJs: true });\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\n\t\tif (sourceFile === undefined) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst namespace =\n\t\t\trootNamespace === undefined\n\t\t\t\t? undefined\n\t\t\t\t: findNamespaceByMemberSourceFile(rootNamespace, sourceFile);\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\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","undefined","strict","strictNullChecks","files","getPackageTypescriptFiles","filter","path","some","suffix","endsWith","program","rootNamespace","entryFilePath","resolveScriptPackageEntryModule","Error","host","createCompilerHost","createProgram","allowJs","entryFile","getSourceFile","resolveNamespaces","getTypeChecker","Scope","Package","typeChecker","forEach","file","sourceFile","namespace","findNamespaceByMemberSourceFile","scriptingClass","findScriptingClasses","node","name","type","moduleNamespace","resolveNamespaceFullName","text","getFullyQualifiedName","getSymbolAtLocation","parameterDeclaration","getScriptingClassParameterdeclaration","parametersType","getTypeAtLocation","console","log","existingIndexEntry","find","entry","Name","obj","Description","Type","Parameters","rawDocTags","getJSDocTags","dict","getTagDict","summary","comment","symbol","getDocumentationComment","map","join","parseParametersList","getPropertiesOfType","length","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","includes","isInteractor"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"generateIndex-COnAgsMM.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\tfindNamespaceByMemberSourceFile,\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,\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\tif (strictOptional === undefined) {\n\t\tstrictOptional =\n\t\t\tcompilerOptions.strict === true ||\n\t\t\tcompilerOptions.strictNullChecks === true;\n\t}\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 rootNamespace: Namespace | undefined;\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\trootNamespace = resolveNamespaces(\n\t\t\tentryFile,\n\t\t\tprogram,\n\t\t\thost,\n\t\t\tprogram.getTypeChecker(),\n\t\t\tmanifest.Scope ?? manifest.Package,\n\t\t);\n\t} else {\n\t\tprogram = ts.createProgram(files, { allowJs: true });\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\n\t\tif (sourceFile === undefined) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst namespace =\n\t\t\trootNamespace === undefined\n\t\t\t\t? undefined\n\t\t\t\t: findNamespaceByMemberSourceFile(rootNamespace, sourceFile);\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\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","undefined","strict","strictNullChecks","files","getPackageTypescriptFiles","filter","path","some","suffix","endsWith","program","rootNamespace","entryFilePath","resolveScriptPackageEntryModule","Error","host","createCompilerHost","createProgram","allowJs","entryFile","getSourceFile","resolveNamespaces","getTypeChecker","Scope","Package","typeChecker","forEach","file","sourceFile","namespace","findNamespaceByMemberSourceFile","scriptingClass","findScriptingClasses","node","name","type","moduleNamespace","resolveNamespaceFullName","text","getFullyQualifiedName","getSymbolAtLocation","parameterDeclaration","getScriptingClassParameterdeclaration","parametersType","getTypeAtLocation","console","log","existingIndexEntry","find","entry","Name","obj","Description","Type","Parameters","rawDocTags","getJSDocTags","dict","getTagDict","summary","comment","symbol","getDocumentationComment","map","join","parseParametersList","getPropertiesOfType","length","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","includes","isInteractor"],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import * as path from 'path';
|
|
|
4
4
|
import * as os from 'os';
|
|
5
5
|
import 'resolve';
|
|
6
6
|
import 'write-package';
|
|
7
|
-
import { a as readPackageCreatorIndex, r as readPackageCreatorManifest, l as getCreatorIndexParameterPrimaryJSType } from './cli-
|
|
7
|
+
import { a as readPackageCreatorIndex, r as readPackageCreatorManifest, l as getCreatorIndexParameterPrimaryJSType } from './cli-CTqQeYIu.mjs';
|
|
8
8
|
import 'glob';
|
|
9
9
|
import 'axios';
|
|
10
10
|
import 'update-notifier';
|
|
@@ -51,19 +51,21 @@ const generateParameterType = ({ location, name })=>{
|
|
|
51
51
|
} else {
|
|
52
52
|
jsdocParts.push(`@default ${parameter.Default}`);
|
|
53
53
|
}
|
|
54
|
-
const jsdocContent = jsdocParts.map((part)=>`* ${part}`).join("
|
|
55
|
-
propertySignature = ts.addSyntheticLeadingComment(propertySignature, ts.SyntaxKind.MultiLineCommentTrivia,
|
|
54
|
+
const jsdocContent = jsdocParts.map((part)=>`* ${part}`).join(os.EOL + " ");
|
|
55
|
+
propertySignature = ts.addSyntheticLeadingComment(propertySignature, ts.SyntaxKind.MultiLineCommentTrivia, `*${os.EOL} ${jsdocContent}${os.EOL} `, true);
|
|
56
56
|
members.push(propertySignature);
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
59
|
const interfaceName = `${className}Params`;
|
|
60
60
|
let interfaceDeclaration = ts.factory.createInterfaceDeclaration(undefined, interfaceName, undefined, undefined, members);
|
|
61
|
-
interfaceDeclaration = ts.addSyntheticLeadingComment(interfaceDeclaration, ts.SyntaxKind.MultiLineCommentTrivia,
|
|
62
|
-
const printer = ts.createPrinter(
|
|
61
|
+
interfaceDeclaration = ts.addSyntheticLeadingComment(interfaceDeclaration, ts.SyntaxKind.MultiLineCommentTrivia, `*${os.EOL} * Parameters for the ${className} class${os.EOL} `, true);
|
|
62
|
+
const printer = ts.createPrinter({
|
|
63
|
+
newLine: os.EOL === "\n" ? ts.NewLineKind.LineFeed : ts.NewLineKind.CarriageReturnLineFeed
|
|
64
|
+
});
|
|
63
65
|
const content = printer.printNode(ts.EmitHint.Unspecified, interfaceDeclaration, ts.createSourceFile("index.ts", "", ts.ScriptTarget.Latest)).replace(/ /g, "\t");
|
|
64
66
|
const outFile = path.join(location.scriptsDir, `${interfaceName}.txt`);
|
|
65
67
|
fs.writeFileSync(outFile, `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.` + os.EOL + os.EOL + content);
|
|
66
68
|
};
|
|
67
69
|
|
|
68
70
|
export { generateParameterType };
|
|
69
|
-
//# sourceMappingURL=generateParameterType-
|
|
71
|
+
//# sourceMappingURL=generateParameterType-BFVUv72F.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generateParameterType-BFVUv72F.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\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(os.EOL + \" \");\n\t\t\tpropertySignature = ts.addSyntheticLeadingComment(\n\t\t\t\tpropertySignature,\n\t\t\t\tts.SyntaxKind.MultiLineCommentTrivia,\n\t\t\t\t`*${os.EOL} ${jsdocContent}${os.EOL} `,\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`*${os.EOL} * Parameters for the ${className} class${os.EOL} `,\n\t\ttrue,\n\t);\n\n\tconst printer = ts.createPrinter({\n\t\tnewLine:\n\t\t\tos.EOL === \"\\n\"\n\t\t\t\t? ts.NewLineKind.LineFeed\n\t\t\t\t: ts.NewLineKind.CarriageReturnLineFeed,\n\t});\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","os","EOL","addSyntheticLeadingComment","MultiLineCommentTrivia","interfaceName","interfaceDeclaration","createInterfaceDeclaration","printer","createPrinter","newLine","NewLineKind","LineFeed","CarriageReturnLineFeed","content","printNode","EmitHint","Unspecified","createSourceFile","ScriptTarget","Latest","replace","outFile","path","scriptsDir","fs","writeFileSync"],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ import ts from 'typescript';
|
|
|
6
6
|
import * as fs from 'fs';
|
|
7
7
|
import 'resolve';
|
|
8
8
|
import 'write-package';
|
|
9
|
-
import { e as readPackageAnimationList, r as readPackageCreatorManifest, q as readPackageNpmManifest, i as isErrorENOENT } from './cli-
|
|
9
|
+
import { e as readPackageAnimationList, r as readPackageCreatorManifest, q as readPackageNpmManifest, i as isErrorENOENT } from './cli-CTqQeYIu.mjs';
|
|
10
10
|
import { g as getPackageTypescriptFiles, i as isScriptPackageModules } from './scripts-B3noxiX3.mjs';
|
|
11
11
|
import 'axios';
|
|
12
12
|
import EventEmitter from 'events';
|
|
@@ -243,7 +243,11 @@ function getDeclarationFileReferences(location, program, outputDir) {
|
|
|
243
243
|
}
|
|
244
244
|
}
|
|
245
245
|
}
|
|
246
|
-
let referenceString = Array.from(references, (reference)
|
|
246
|
+
let referenceString = Array.from(references, (reference)=>{
|
|
247
|
+
// replace window separators with unix ones for the reference path
|
|
248
|
+
const relativeNormalized = path.relative(outputDir, reference).replaceAll(path.sep, "/");
|
|
249
|
+
return `/// <reference path="${relativeNormalized}" />`;
|
|
250
|
+
}).join(EOL);
|
|
247
251
|
if (referenceString) {
|
|
248
252
|
referenceString += EOL;
|
|
249
253
|
}
|
|
@@ -1251,8 +1255,9 @@ async function ensureTsConfig(location) {
|
|
|
1251
1255
|
const tsconfigPath = path.join(location.scriptsDir, "tsconfig.json");
|
|
1252
1256
|
try {
|
|
1253
1257
|
const content = JSON.parse(await fs$1.readFile(tsconfigPath, "utf8"));
|
|
1254
|
-
applyTsConfigOptions(content)
|
|
1255
|
-
|
|
1258
|
+
if (applyTsConfigOptions(content)) {
|
|
1259
|
+
await fs$1.writeFile(tsconfigPath, JSON.stringify(content, undefined, "\t"), "utf8");
|
|
1260
|
+
}
|
|
1256
1261
|
return ts.parseJsonConfigFileContent(content, ts.sys, location.scriptsDir);
|
|
1257
1262
|
} catch (err) {
|
|
1258
1263
|
if (!isErrorENOENT(err)) {
|
|
@@ -1265,23 +1270,48 @@ async function ensureTsConfig(location) {
|
|
|
1265
1270
|
}
|
|
1266
1271
|
}
|
|
1267
1272
|
function applyTsConfigOptions(data) {
|
|
1273
|
+
let expectedValues;
|
|
1268
1274
|
if (data.compilerOptions?.module?.toLowerCase().startsWith("es")) {
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
|
|
1273
|
-
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1275
|
+
expectedValues = {
|
|
1276
|
+
target: "esnext",
|
|
1277
|
+
lib: [
|
|
1278
|
+
"es2024",
|
|
1279
|
+
"dom"
|
|
1280
|
+
],
|
|
1281
|
+
module: "es2015",
|
|
1282
|
+
moduleResolution: "node"
|
|
1283
|
+
};
|
|
1277
1284
|
} else {
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
1285
|
+
expectedValues = {
|
|
1286
|
+
target: "es5",
|
|
1287
|
+
lib: [
|
|
1288
|
+
"es5",
|
|
1289
|
+
"dom"
|
|
1290
|
+
]
|
|
1291
|
+
};
|
|
1292
|
+
}
|
|
1293
|
+
data.compilerOptions = data.compilerOptions ?? {};
|
|
1294
|
+
let changed = false;
|
|
1295
|
+
for (const [key, value] of Object.entries(expectedValues)){
|
|
1296
|
+
const currentValue = data.compilerOptions[key];
|
|
1297
|
+
switch(typeof value){
|
|
1298
|
+
case "string":
|
|
1299
|
+
case "number":
|
|
1300
|
+
case "boolean":
|
|
1301
|
+
if (value !== currentValue) {
|
|
1302
|
+
changed = true;
|
|
1303
|
+
data.compilerOptions[key] = value;
|
|
1304
|
+
}
|
|
1305
|
+
break;
|
|
1306
|
+
case "object":
|
|
1307
|
+
if (Array.isArray(value) && (!Array.isArray(currentValue) || value.length !== currentValue.length || value.some((item, index)=>item !== currentValue[index]))) {
|
|
1308
|
+
changed = true;
|
|
1309
|
+
data.compilerOptions[key] = value;
|
|
1310
|
+
}
|
|
1311
|
+
break;
|
|
1312
|
+
}
|
|
1284
1313
|
}
|
|
1314
|
+
return changed;
|
|
1285
1315
|
}
|
|
1286
1316
|
function sortPackagesByBuildOrder(folders) {
|
|
1287
1317
|
const packages = Array.from(folders).reduce((acc, location)=>{
|
|
@@ -1367,4 +1397,4 @@ var index = /*#__PURE__*/Object.freeze({
|
|
|
1367
1397
|
});
|
|
1368
1398
|
|
|
1369
1399
|
export { PackageVersion as P, consoleReporter as a, buildFolders as b, createPackageScopedReporter as c, index as i };
|
|
1370
|
-
//# sourceMappingURL=index-
|
|
1400
|
+
//# sourceMappingURL=index-Ck4_b8Wk.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-Ck4_b8Wk.mjs","sources":["../../tools.core/build/log.mjs","../src/commands/build/tsc.ts","../src/lib/toposort.ts","../src/commands/build/manager.ts","../src/commands/build/animation.schema.ts","../src/commands/build/animations.ts","../src/lib/packageVersion.ts","../src/commands/build/index.ts"],"sourcesContent":["const consoleReporter = {\n log (message) {\n console.log(message);\n },\n error (message, _error) {\n console.error(message);\n }\n};\nconst createPackageScopedReporter = (reporter, scope, index, total, maxNameLength = 15)=>{\n const numLength = total === undefined ? undefined : total.toString().length;\n const indexString = total === undefined || total < 2 ? \"\" : `${index.toString().padStart(numLength, \"0\")}/${total} `;\n const identifierString = `${indexString}${scope.padEnd(maxNameLength)}`;\n return {\n log (message) {\n reporter.log(`${identifierString} >> ${message}`);\n },\n error (message, error) {\n reporter.error(`${identifierString} >> ${message}`, error);\n }\n };\n};\n\nexport { consoleReporter, createPackageScopedReporter };\n//# sourceMappingURL=log.mjs.map\n","import ts from \"typescript\";\nimport * as path from \"path\";\nimport * as fs from \"fs\";\nimport { EOL } from \"os\";\n\nimport { PackageLocation } from \"../../lib/package\";\n\nimport { getPackageTypescriptFiles } from \"../../lib/scripts\";\nimport { BuildParticipant, BuilderEnvironment } from \"./types\";\n\nexport const tryReadTsConfig = (location: PackageLocation) => {\n\tconst { config } = ts.readConfigFile(\n\t\tpath.join(location.scriptsDir, \"tsconfig.json\"),\n\t\t(path) => {\n\t\t\ttry {\n\t\t\t\treturn fs.readFileSync(path, \"utf8\");\n\t\t\t} catch {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t},\n\t);\n\n\treturn config as {\n\t\tcompilerOptions: ts.CompilerOptions;\n\t};\n};\n\nexport const createTSCBuildParticipant =\n\t(\n\t\tlocation: PackageLocation,\n\t\toutputDir: string,\n\t\tskipDeclarations: boolean,\n\t): BuildParticipant =>\n\t(env: BuilderEnvironment) => {\n\t\tconst files = getPackageTypescriptFiles(location);\n\n\t\ttry {\n\t\t\tenv.onBuildStart();\n\n\t\t\tenv.log(\"Compiling typescript files\");\n\n\t\t\tconst compilerOptions = getCompilerOptions(\n\t\t\t\tlocation,\n\t\t\t\toutputDir,\n\t\t\t\tskipDeclarations,\n\t\t\t);\n\n\t\t\tconst host = ts.createCompilerHost(compilerOptions);\n\t\t\thost.getCurrentDirectory = () => location.scriptsDir;\n\n\t\t\tlet js: string | undefined;\n\t\t\tlet definitions: string | undefined;\n\t\t\tlet sourceMap: string | undefined;\n\n\t\t\thost.writeFile = (fileName, data, writeByteOrderMark) => {\n\t\t\t\tif (fileName.endsWith(\".js\")) {\n\t\t\t\t\tjs = data;\n\t\t\t\t} else if (fileName.endsWith(\".d.ts\")) {\n\t\t\t\t\tdefinitions = data;\n\t\t\t\t} else if (fileName.endsWith(\".js.map\")) {\n\t\t\t\t\tsourceMap = data;\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tconst programOptions: ts.CreateProgramOptions = {\n\t\t\t\trootNames: files,\n\t\t\t\toptions: compilerOptions,\n\t\t\t\thost,\n\t\t\t};\n\n\t\t\tconst program = ts.createProgram(programOptions);\n\n\t\t\tconst emitResult = program.emit();\n\t\t\tconst allDiagnostics = ts.getPreEmitDiagnostics(program);\n\n\t\t\tif (!emitResult.emitSkipped) {\n\t\t\t\tif (allDiagnostics.length > 0) {\n\t\t\t\t\tconsole.log(ts.formatDiagnostics(allDiagnostics, host));\n\t\t\t\t}\n\n\t\t\t\tif (js === undefined || definitions === undefined) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`Unexpected: no js or definitions were created`,\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tenv.onBuildEnd({\n\t\t\t\t\ttype: \"success\",\n\t\t\t\t\tartefacts: {\n\t\t\t\t\t\tjs: js.replace(`//# sourceMappingURL=out.js.map`, \"\"),\n\t\t\t\t\t\tdeclarations:\n\t\t\t\t\t\t\tgetDeclarationFileReferences(\n\t\t\t\t\t\t\t\tlocation,\n\t\t\t\t\t\t\t\tprogram,\n\t\t\t\t\t\t\t\toutputDir,\n\t\t\t\t\t\t\t) + definitions,\n\t\t\t\t\t\tsourceMap,\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tconst error = ts.formatDiagnostics(allDiagnostics, host);\n\n\t\t\t\tthrow new Error(error);\n\t\t\t}\n\t\t} catch (err) {\n\t\t\tenv.onBuildEnd({\n\t\t\t\ttype: \"error\",\n\t\t\t\terror: err.message,\n\t\t\t});\n\t\t}\n\n\t\treturn {\n\t\t\tdestroy: () => {},\n\t\t};\n\t};\n\nexport const createTSCWatchBuildParticipant = (\n\tlocation: PackageLocation,\n\toutputDir: string,\n\tskipDeclarations: boolean,\n): BuildParticipant => {\n\treturn ({ onBuildStart, onBuildEnd }: BuilderEnvironment) => {\n\t\ttype State = {\n\t\t\tjs: string | undefined;\n\t\t\tdefinitions: string | undefined;\n\t\t\tdiagnostics: ts.Diagnostic[];\n\t\t\tsourceMap: string | undefined;\n\t\t};\n\n\t\tlet state: State = {\n\t\t\tdiagnostics: [],\n\t\t\tjs: undefined,\n\t\t\tdefinitions: undefined,\n\t\t\tsourceMap: undefined,\n\t\t};\n\n\t\tconst customSys: ts.System = {\n\t\t\t...ts.sys,\n\t\t\twriteFile: (fileName, data, writeByteOrderMark) => {\n\t\t\t\tif (fileName.endsWith(\".js\")) {\n\t\t\t\t\tstate.js = data;\n\t\t\t\t} else if (fileName.endsWith(\".d.ts\")) {\n\t\t\t\t\tstate.definitions = data;\n\t\t\t\t} else if (fileName.endsWith(\".js.map\")) {\n\t\t\t\t\tstate.sourceMap = data;\n\t\t\t\t}\n\t\t\t},\n\t\t};\n\n\t\tconst registerDiagnostic = (diagnostic: ts.Diagnostic) => {\n\t\t\tswitch (diagnostic.code) {\n\t\t\t\t// file not found - https://github.com/microsoft/TypeScript/blob/93e6b9da0c4cb164ca90a5a1b07415e81e97f2b1/src/compiler/diagnosticMessages.json#L4640\n\t\t\t\t// probably deleted -> ignore\n\t\t\t\tcase 6053:\n\t\t\t\t\treturn;\n\n\t\t\t\t// no inputs were found - https://github.com/microsoft/TypeScript/blob/93e6b9da0c4cb164ca90a5a1b07415e81e97f2b1/src/compiler/diagnosticMessages.json#L6838\n\t\t\t\t// we don't care about this error. a user might have temporarily deleted the last ts file and will readd one later.\n\t\t\t\tcase 18003:\n\t\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tstate.diagnostics.push(diagnostic);\n\t\t};\n\n\t\tlet currentProgram: Pick<ts.Program, \"getSourceFiles\"> | undefined;\n\n\t\tconst reportWatchStatusChanged = (diagnostic: ts.Diagnostic) => {\n\t\t\tswitch (diagnostic.code) {\n\t\t\t\t// regular watch mode - https://github.com/microsoft/TypeScript/blob/93e6b9da0c4cb164ca90a5a1b07415e81e97f2b1/src/compiler/diagnosticMessages.json#L4567\n\t\t\t\tcase 6031:\n\t\t\t\t// incremental watch mode - https://github.com/microsoft/TypeScript/blob/93e6b9da0c4cb164ca90a5a1b07415e81e97f2b1/src/compiler/diagnosticMessages.json#L4571\n\t\t\t\tcase 6032:\n\t\t\t\t\t// build start\n\t\t\t\t\tonBuildStart();\n\t\t\t\t\tbreak;\n\n\t\t\t\t// found one error - https://github.com/microsoft/TypeScript/blob/93e6b9da0c4cb164ca90a5a1b07415e81e97f2b1/src/compiler/diagnosticMessages.json#L5119\n\t\t\t\tcase 6193:\n\t\t\t\t// found n or 0 errors - https://github.com/microsoft/TypeScript/blob/93e6b9da0c4cb164ca90a5a1b07415e81e97f2b1/src/compiler/diagnosticMessages.json#L5123\n\t\t\t\tcase 6194:\n\t\t\t\t\t// build end\n\t\t\t\t\tconst emitState = state;\n\t\t\t\t\tstate = {\n\t\t\t\t\t\tdiagnostics: [],\n\t\t\t\t\t\tjs: undefined,\n\t\t\t\t\t\tdefinitions: undefined,\n\t\t\t\t\t\tsourceMap: undefined,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (emitState.diagnostics.length > 0) {\n\t\t\t\t\t\tconst message = ts.formatDiagnostics(\n\t\t\t\t\t\t\temitState.diagnostics,\n\t\t\t\t\t\t\tformattingHost,\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tonBuildEnd({\n\t\t\t\t\t\t\ttype: \"error\",\n\t\t\t\t\t\t\terror: new Error(message),\n\t\t\t\t\t\t});\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (emitState.js === undefined) {\n\t\t\t\t\t\tonBuildEnd({\n\t\t\t\t\t\t\ttype: \"success\",\n\t\t\t\t\t\t\tartefacts: {\n\t\t\t\t\t\t\t\tjs: \"\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t});\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!currentProgram) {\n\t\t\t\t\t\tthrow new Error(`Expected a program to exist`);\n\t\t\t\t\t}\n\n\t\t\t\t\tonBuildEnd({\n\t\t\t\t\t\ttype: \"success\",\n\t\t\t\t\t\tartefacts: {\n\t\t\t\t\t\t\tjs: emitState.js.replace(\n\t\t\t\t\t\t\t\t`//# sourceMappingURL=out.js.map`,\n\t\t\t\t\t\t\t\t\"\",\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tdeclarations: emitState.definitions\n\t\t\t\t\t\t\t\t? getDeclarationFileReferences(\n\t\t\t\t\t\t\t\t\t\tlocation,\n\t\t\t\t\t\t\t\t\t\tcurrentProgram,\n\t\t\t\t\t\t\t\t\t\toutputDir,\n\t\t\t\t\t\t\t\t\t) + emitState.definitions\n\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\tsourceMap: emitState.sourceMap,\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\tconst host = ts.createWatchCompilerHost(\n\t\t\tpath.join(location.scriptsDir, \"tsconfig.json\"),\n\t\t\tgetCompilerOptions(location, outputDir, skipDeclarations),\n\t\t\tcustomSys,\n\t\t\tts.createSemanticDiagnosticsBuilderProgram,\n\t\t\tregisterDiagnostic,\n\t\t\treportWatchStatusChanged,\n\t\t);\n\t\tconst originalAfterProgramCreate = host.afterProgramCreate;\n\t\thost.afterProgramCreate = (program) => {\n\t\t\tcurrentProgram = program;\n\t\t\toriginalAfterProgramCreate?.(program);\n\t\t};\n\n\t\tconst formattingHost: ts.FormatDiagnosticsHost = {\n\t\t\tgetCanonicalFileName: (path) => path,\n\t\t\tgetCurrentDirectory: host.getCurrentDirectory,\n\t\t\tgetNewLine: () => ts.sys.newLine,\n\t\t};\n\n\t\tconst watchProgram = ts.createWatchProgram(host);\n\n\t\treturn {\n\t\t\tdestroy: () => {\n\t\t\t\twatchProgram.close();\n\t\t\t},\n\t\t};\n\t};\n};\n\nconst getCompilerOptions = (\n\tlocation: PackageLocation,\n\toutputDir: string,\n\tskipDeclarations: boolean,\n) => {\n\tconst config = tryReadTsConfig(location);\n\n\tconfig.compilerOptions.lib = [\"es5\", \"dom\"];\n\n\tconst result = ts.convertCompilerOptionsFromJson(\n\t\tconfig.compilerOptions,\n\t\tlocation.scriptsDir,\n\t);\n\n\tconst compilerOptions: ts.CompilerOptions = {\n\t\t...result.options,\n\t\tremoveComments: false,\n\t\tdeclaration: !skipDeclarations,\n\t\tsourceMap: true,\n\t\tinlineSources: false,\n\t\t// We don't use tsc to actually emit the files, but we still need to set the correct\n\t\t// output directory so the compiler can rewrite the `reference path` directives.\n\t\toutFile: path.join(outputDir, \"out.js\"),\n\t\ttarget: ts.ScriptTarget.ES5,\n\t\tnoEmitOnError: true,\n\t};\n\n\treturn compilerOptions;\n};\n\nfunction getDeclarationFileReferences(\n\tlocation: PackageLocation,\n\tprogram: Pick<ts.Program, \"getSourceFiles\">,\n\toutputDir: string,\n): string {\n\tconst references = new Set<string>();\n\n\tfor (const file of program.getSourceFiles()) {\n\t\tfor (const reference of file.referencedFiles) {\n\t\t\tif (reference.preserve) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst dir = path.dirname(file.fileName);\n\t\t\tconst absolute = path.resolve(dir, reference.fileName);\n\t\t\tif (!absolute.startsWith(location.scriptsDir)) {\n\t\t\t\treferences.add(absolute);\n\t\t\t}\n\t\t}\n\t}\n\n\tlet referenceString = Array.from(references, (reference) => {\n\t\t// replace window separators with unix ones for the reference path\n\n\t\tconst relativeNormalized = path\n\t\t\t.relative(outputDir, reference)\n\t\t\t.replaceAll(path.sep, \"/\");\n\n\t\treturn `/// <reference path=\"${relativeNormalized}\" />`;\n\t}).join(EOL);\n\n\tif (referenceString) {\n\t\treferenceString += EOL;\n\t}\n\n\treturn referenceString;\n}\n","// Stolen from ig.tools.core\n\nexport const toposort = (packages: Record<string, string[]>) => {\n\tconst queue = Object.getOwnPropertyNames(packages);\n\tconst result: string[] = [];\n\n\tlet index = 0;\n\n\twhile (queue.length > 0) {\n\t\tif (index >= queue.length) {\n\t\t\tthrow new Error(\"Packages can not have cyclic dependencies\");\n\t\t}\n\n\t\tconst queueEntry = queue[index];\n\n\t\tconst dependencies = packages[queueEntry];\n\t\tconst dependencyQueued = dependencies.some((dependency) =>\n\t\t\tqueue.includes(dependency),\n\t\t);\n\n\t\tif (dependencyQueued) {\n\t\t\tindex++;\n\t\t\tcontinue;\n\t\t}\n\n\t\tqueue.splice(index, 1);\n\t\tindex = 0;\n\t\tresult.push(queueEntry);\n\t}\n\n\treturn result;\n};\n","import {\n\tCreatorPackage,\n\tReporter,\n} from \"@intelligentgraphics/ig.gfx.tools.core\";\nimport {\n\tBuildArtefacts,\n\tBuildParticipant,\n\tBuildResult,\n\tBuildSuccessResult,\n} from \"./types\";\nimport EventEmitter from \"events\";\nimport { SourceMapConsumer, SourceMapGenerator } from \"source-map-js\";\n\ntype State =\n\t| {\n\t\t\ttype: \"busy\";\n\t }\n\t| BuildResult;\n\nexport class BuildManager extends EventEmitter {\n\tprivate readonly participants = new Map<string, BuildParticipant>();\n\tprivate readonly states = new Map<string, State>();\n\tprivate readonly participantInstances: { destroy(): void }[] = [];\n\n\tconstructor(\n\t\tprivate readonly manifest: CreatorPackage,\n\t\tprivate readonly writer: (result: BuildArtefacts) => Promise<void>,\n\t\tprivate readonly reporter: Reporter,\n\t) {\n\t\tsuper();\n\t}\n\n\tpublic addParticipant(name: string, participant: BuildParticipant) {\n\t\tthis.participants.set(name, participant);\n\t}\n\n\tpublic run() {\n\t\tfor (const [name] of this.participants) {\n\t\t\tthis.states.set(name, { type: \"busy\" });\n\t\t}\n\n\t\tthis.emit(\"start\");\n\n\t\tfor (const [name, participant] of this.participants) {\n\t\t\tconst instance = participant({\n\t\t\t\tonBuildStart: () => {\n\t\t\t\t\tlet alreadyBusy = false;\n\n\t\t\t\t\tfor (const [name, state] of this.states) {\n\t\t\t\t\t\tif (state.type === \"busy\") {\n\t\t\t\t\t\t\talreadyBusy = true;\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.states.set(name, { type: \"busy\" });\n\n\t\t\t\t\tif (!alreadyBusy) {\n\t\t\t\t\t\tthis.emit(\"start\");\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tonBuildEnd: (result) => {\n\t\t\t\t\tthis.states.set(name, result);\n\n\t\t\t\t\tthis.maybeEmit();\n\t\t\t\t},\n\t\t\t\tlog: (message) => this.reporter.log(message),\n\t\t\t});\n\n\t\t\tthis.participantInstances.push(instance);\n\t\t}\n\t}\n\n\tpublic destroy() {\n\t\tfor (const instance of this.participantInstances) {\n\t\t\tinstance.destroy();\n\t\t}\n\t}\n\n\tprivate maybeEmit() {\n\t\tconst errors: Error[] = [];\n\t\tconst results: BuildSuccessResult[] = [];\n\n\t\tfor (const [_, state] of this.states) {\n\t\t\tif (state.type === \"busy\") {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (state.type === \"success\") {\n\t\t\t\tresults.push(state);\n\t\t\t} else if (state.type === \"error\") {\n\t\t\t\terrors.push(state.error);\n\t\t\t}\n\t\t}\n\n\t\tif (errors.length > 0) {\n\t\t\tthis.emit(\n\t\t\t\t\"error\",\n\t\t\t\terrors.length === 1 ? errors[0] : new AggregateError(errors),\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\n\t\tconst completeResult: BuildArtefacts = {\n\t\t\tjs: \"\",\n\t\t};\n\n\t\tconst sourceMapGenerator = new SourceMapGenerator();\n\n\t\tfor (const result of results) {\n\t\t\tif (result.artefacts.js) {\n\t\t\t\tif (completeResult.js) {\n\t\t\t\t\tcompleteResult.js += \"\\n\";\n\t\t\t\t}\n\n\t\t\t\tif (result.artefacts.sourceMap) {\n\t\t\t\t\tconst lines = completeResult.js.split(\"\\n\").length - 1;\n\t\t\t\t\tconst sourceMap = new SourceMapConsumer(\n\t\t\t\t\t\tJSON.parse(result.artefacts.sourceMap),\n\t\t\t\t\t);\n\n\t\t\t\t\tconst sources = new Set<string>();\n\t\t\t\t\tsourceMap.eachMapping((mapping) => {\n\t\t\t\t\t\tsourceMapGenerator.addMapping({\n\t\t\t\t\t\t\tgenerated: {\n\t\t\t\t\t\t\t\tline: lines + mapping.generatedLine,\n\t\t\t\t\t\t\t\tcolumn: mapping.generatedColumn,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\toriginal:\n\t\t\t\t\t\t\t\tmapping.originalLine !== null &&\n\t\t\t\t\t\t\t\tmapping.originalColumn !== null\n\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\tline: mapping.originalLine,\n\t\t\t\t\t\t\t\t\t\t\tcolumn: mapping.originalColumn,\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\tsource: mapping.source,\n\t\t\t\t\t\t\tname: mapping.name,\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tif (mapping.source !== null) {\n\t\t\t\t\t\t\tsources.add(mapping.source);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tfor (const source of sources) {\n\t\t\t\t\t\tconst content = sourceMap.sourceContentFor(source);\n\n\t\t\t\t\t\tif (content !== null) {\n\t\t\t\t\t\t\tsourceMapGenerator.setSourceContent(\n\t\t\t\t\t\t\t\tsource,\n\t\t\t\t\t\t\t\tcontent,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcompleteResult.js += result.artefacts.js;\n\t\t\t}\n\n\t\t\tif (result.artefacts.declarations) {\n\t\t\t\tif (completeResult.declarations) {\n\t\t\t\t\tcompleteResult.declarations += \"\\n\";\n\t\t\t\t} else {\n\t\t\t\t\tcompleteResult.declarations = \"\";\n\t\t\t\t}\n\n\t\t\t\tcompleteResult.declarations += result.artefacts.declarations;\n\t\t\t}\n\t\t}\n\n\t\tcompleteResult.sourceMap = sourceMapGenerator.toString();\n\n\t\tthis.writer(completeResult).then(() => {\n\t\t\tthis.emit(\"build\");\n\t\t});\n\t}\n}\n","export default {\n\t$schema: \"http://json-schema.org/draft-07/schema\",\n\t$id: \"https://archive.intelligentgraphics.biz/schemas/gfx/animation.json\",\n\t$comment: \"Version 2023-02-17, Source: ig.data.gfx/Specs/animation.json\",\n\ttitle: \"Animation description format\",\n\tadditionalProperties: false,\n\ttype: \"object\",\n\tproperties: {\n\t\t$schema: {\n\t\t\ttype: \"string\",\n\t\t},\n\t\tId: {\n\t\t\ttype: \"string\",\n\t\t\tdescription:\n\t\t\t\t\"Animation id, to be unique in the project scope. Needs to be a valid JavaScript identifier.\",\n\t\t},\n\t\tAnimations: {\n\t\t\ttype: \"array\",\n\t\t\tdescription: \"Declaration of animation states for gfx objects\",\n\t\t\titems: {\n\t\t\t\ttype: \"object\",\n\t\t\t\tadditionalProperties: false,\n\t\t\t\tproperties: {\n\t\t\t\t\t_: {\n\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\tdescription: \"Comment\",\n\t\t\t\t\t},\n\t\t\t\t\tPath: {\n\t\t\t\t\t\t$ref: \"#/definitions/igxcPath\",\n\t\t\t\t\t},\n\t\t\t\t\tStates: {\n\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\tadditionalProperties: {\n\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t\tadditionalProperties: false,\n\t\t\t\t\t\t\tproperties: {\n\t\t\t\t\t\t\t\tPosition: {\n\t\t\t\t\t\t\t\t\t$ref: \"#/definitions/vec3\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tRotation: {\n\t\t\t\t\t\t\t\t\t$ref: \"#/definitions/rotation\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tScaling: {\n\t\t\t\t\t\t\t\t\t$ref: \"#/definitions/vec3\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tVisibility: {\n\t\t\t\t\t\t\t\t\ttype: \"boolean\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tDeformation: {\n\t\t\t\t\t\t\t\t\tanyOf: [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\ttype: \"number\",\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\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\tKinematics: {\n\t\t\toneOf: [\n\t\t\t\t{\n\t\t\t\t\t$ref: \"#/definitions/kinematicChain\",\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttype: \"array\",\n\t\t\t\t\titems: {\n\t\t\t\t\t\t$ref: \"#/definitions/kinematicChain\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t\tLinkedPoints: {\n\t\t\ttype: \"object\",\n\t\t\tadditionalProperties: {\n\t\t\t\ttype: \"array\",\n\t\t\t\titems: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t_: {\n\t\t\ttype: \"string\",\n\t\t\tdescription: \"Comment\",\n\t\t},\n\t},\n\tdefinitions: {\n\t\tvec3: {\n\t\t\ttype: \"object\",\n\t\t\tadditionalProperties: false,\n\t\t\tproperties: {\n\t\t\t\tX: {\n\t\t\t\t\tanyOf: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: \"number\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t\tY: {\n\t\t\t\t\tanyOf: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: \"number\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t\tZ: {\n\t\t\t\t\tanyOf: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: \"number\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t\t_: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tdescription: \"Comment\",\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\trotation: {\n\t\t\ttype: \"object\",\n\t\t\tadditionalProperties: false,\n\t\t\tproperties: {\n\t\t\t\tQ: {\n\t\t\t\t\tdescription:\n\t\t\t\t\t\t\"If true, the rotation is considered to be a Quaternion. Otherwise, it's interpreted as Euler arcs and W will be ignored.\",\n\t\t\t\t\ttype: \"boolean\",\n\t\t\t\t},\n\t\t\t\tX: {\n\t\t\t\t\tanyOf: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: \"number\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t\tY: {\n\t\t\t\t\tanyOf: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: \"number\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t\tZ: {\n\t\t\t\t\tanyOf: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: \"number\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t\tW: {\n\t\t\t\t\tanyOf: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: \"number\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t\t_: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tdescription: \"Comment\",\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tigxcPath: {\n\t\t\ttype: \"string\",\n\t\t\tdescription: \"Relative path of the target object\",\n\t\t\tpattern: \"^((o|e)\\\\d+(\\\\.(o|e)\\\\d+)*|\\\\.)$\",\n\t\t},\n\t\tparam: {\n\t\t\ttype: \"string\",\n\t\t\tpattern: \"^Param\\\\d+$\",\n\t\t},\n\t\tkinematicChain: {\n\t\t\ttype: \"object\",\n\t\t\tadditionalProperties: false,\n\t\t\tproperties: {\n\t\t\t\tGeometryBase: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t},\n\t\t\t\tJoints: {\n\t\t\t\t\ttype: \"array\",\n\t\t\t\t\titems: {\n\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\tadditionalProperties: false,\n\t\t\t\t\t\tproperties: {\n\t\t\t\t\t\t\tName: {\n\t\t\t\t\t\t\t\toneOf: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t$ref: \"#/definitions/param\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tHeadX: {\n\t\t\t\t\t\t\t\toneOf: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t$ref: \"#/definitions/param\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t$ref: \"#/definitions/igxcPath\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tHeadY: {\n\t\t\t\t\t\t\t\toneOf: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t$ref: \"#/definitions/param\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t$ref: \"#/definitions/igxcPath\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tHeadZ: {\n\t\t\t\t\t\t\t\toneOf: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t$ref: \"#/definitions/param\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t$ref: \"#/definitions/igxcPath\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tTail: {\n\t\t\t\t\t\t\t\toneOf: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t$ref: \"#/definitions/param\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t$ref: \"#/definitions/igxcPath\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tLimitLeft: {\n\t\t\t\t\t\t\t\ttype: \"number\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tLimitRight: {\n\t\t\t\t\t\t\t\ttype: \"number\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tLimitUp: {\n\t\t\t\t\t\t\t\ttype: \"number\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tLimitDown: {\n\t\t\t\t\t\t\t\ttype: \"number\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tFollowJointNode: {\n\t\t\t\t\t\t\t\t$ref: \"#/definitions/igxcPath\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t_TargetNodeForFollow: {\n\t\t\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tTarget: {\n\t\t\t\t\toneOf: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t$ref: \"#/definitions/igxcPath\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t$ref: \"#/definitions/param\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\t\tenum: [\"subbase\"],\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t\tParent: {\n\t\t\t\t\toneOf: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t$ref: \"#/definitions/igxcPath\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\t\tenum: [\"root\"],\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t\tTolerance: {\n\t\t\t\t\ttype: \"number\",\n\t\t\t\t},\n\t\t\t\tMaxIterations: {\n\t\t\t\t\ttype: \"integer\",\n\t\t\t\t},\n\t\t\t\t_: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tdescription: \"Comment\",\n\t\t\t\t},\n\t\t\t\t__: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tdescription: \"Super Comment\",\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t},\n};\n","import * as path from \"path\";\nimport * as fs from \"fs/promises\";\n\nimport {\n\tPackageLocation,\n\tCreatorPackage,\n\treadPackageAnimationList,\n} from \"@intelligentgraphics/ig.gfx.tools.core\";\n\nimport { BuildParticipant, BuilderEnvironment } from \"./types\";\nimport Ajv, { ValidateFunction } from \"ajv\";\nimport animationSchema from \"./animation.schema\";\n\nexport const createAnimationBuildParticipant = (\n\tlocation: PackageLocation,\n\tmanifest: CreatorPackage,\n): BuildParticipant => {\n\treturn (env: BuilderEnvironment) => {\n\t\tenv.onBuildStart();\n\n\t\tbundleAnimations(location, manifest, env.log)\n\t\t\t.then((result) => {\n\t\t\t\tenv.onBuildEnd({\n\t\t\t\t\ttype: \"success\",\n\t\t\t\t\tartefacts: {\n\t\t\t\t\t\tjs: result?.js ?? \"\",\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t})\n\t\t\t.catch((err) => {\n\t\t\t\tenv.onBuildEnd({\n\t\t\t\t\ttype: \"error\",\n\t\t\t\t\terror: err.message,\n\t\t\t\t});\n\t\t\t});\n\n\t\treturn {\n\t\t\tdestroy: () => {},\n\t\t};\n\t};\n};\n\nexport const createAnimationWatchBuildParticipant =\n\t(location: PackageLocation, manifest: CreatorPackage): BuildParticipant =>\n\t(env) => {\n\t\tenv.onBuildStart();\n\n\t\tbundleAnimations(location, manifest, env.log)\n\t\t\t.then((result) => {\n\t\t\t\tenv.onBuildEnd({\n\t\t\t\t\ttype: \"success\",\n\t\t\t\t\tartefacts: {\n\t\t\t\t\t\tjs: result?.js ?? \"\",\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t})\n\t\t\t.catch((err) => {\n\t\t\t\tenv.onBuildEnd({\n\t\t\t\t\ttype: \"error\",\n\t\t\t\t\terror: err.message,\n\t\t\t\t});\n\t\t\t});\n\n\t\t(async () => {\n\t\t\tfor await (const event of fs.watch(location.scriptsDir)) {\n\t\t\t\tif (event.filename?.endsWith(\".animation.json\")) {\n\t\t\t\t\tenv.onBuildStart();\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst result = await bundleAnimations(\n\t\t\t\t\t\t\tlocation,\n\t\t\t\t\t\t\tmanifest,\n\t\t\t\t\t\t\tenv.log,\n\t\t\t\t\t\t);\n\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: {\n\t\t\t\t\t\t\t\tjs: result?.js ?? \"\",\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.message,\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\n\t\treturn {\n\t\t\tdestroy: () => {},\n\t\t};\n\t};\n\nconst bundleAnimations = async (\n\tlocation: PackageLocation,\n\tmanifest: CreatorPackage,\n\tlogStep: (message: string) => void,\n) => {\n\tconst animations = new Map<string, string>();\n\n\tfor (const scriptFilePath of readPackageAnimationList(location)) {\n\t\tconst content = await fs.readFile(scriptFilePath, {\n\t\t\tencoding: \"utf8\",\n\t\t})!;\n\n\t\tlet data: { Id: string; $schema?: string };\n\n\t\ttry {\n\t\t\tdata = JSON.parse(content);\n\t\t} catch (err) {\n\t\t\tconst relativePath = path.relative(location.path, scriptFilePath);\n\n\t\t\tif (err instanceof SyntaxError) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Encountered invalid syntax in file \"${relativePath}\": ${String(\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\tthrow new Error(\n\t\t\t\t`Encountered an unexpected error while parsing animation json file at path \"${relativePath}\"`,\n\t\t\t\t{\n\t\t\t\t\tcause: err,\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\n\t\tif (!data.Id) {\n\t\t\tconst fileName = path.basename(scriptFilePath, \".animation.json\");\n\t\t\tdata.Id = fileName;\n\t\t}\n\n\t\t(await getAnimationJsonValidation())(data);\n\t\tdelete data.$schema;\n\t\tanimations.set(data.Id, JSON.stringify(data));\n\t}\n\n\tif (animations.size > 0) {\n\t\tconst scope = manifest.Scope ?? manifest.Package;\n\t\tconst scopeParts = scope.split(\".\");\n\n\t\tlet js = createNamespace(scopeParts);\n\n\t\tfor (const [name, content] of animations) {\n\t\t\tjs += `${scope}[\"${name}\"] = ` + content + \";\";\n\t\t\tlogStep(`Adding animation ${scope}.${name}`);\n\t\t}\n\n\t\treturn {\n\t\t\tjs,\n\t\t};\n\t}\n\n\treturn undefined;\n};\n\nconst createNamespace = (parts: string[]) => {\n\tlet code = `var ${parts[0]};`;\n\n\tfor (let index = 0; index < parts.length; index++) {\n\t\tconst path = parts.slice(0, index + 1).join(\".\");\n\n\t\tcode += `\\n(${path} = ${path} || {});`;\n\t}\n\n\treturn code;\n};\n\nlet validateAnimationJson: ValidateFunction | undefined;\n\nconst getAnimationJsonValidation = async () => {\n\tif (validateAnimationJson === undefined) {\n\t\tvalidateAnimationJson = new Ajv({\n\t\t\tcoerceTypes: true,\n\t\t\tallErrors: true,\n\t\t\tremoveAdditional: true,\n\t\t\tuseDefaults: \"empty\",\n\t\t\tvalidateSchema: \"log\",\n\t\t}).compile(animationSchema);\n\t}\n\n\treturn validateAnimationJson!;\n};\n","// Stolen from ig.tools.core\n\nexport interface PackageVersionToVersionStringParams {\n\tbuildNumber?: boolean;\n}\n\nexport class PackageVersion {\n\t// https://regex101.com/r/90PEY9/1\n\tpublic static fullTextMatcher =\n\t\t/(\\d+)(\\.(\\d+)(\\.(\\d+)(\\.(\\d+))?(-([^\\.]+)\\.(\\d+))?)?)?/;\n\tpublic static lineMatcher =\n\t\t/^(\\d+)(\\.(\\d+)(\\.(\\d+)(\\.(\\d+))?(-([^\\.]+)\\.(\\d+))?)?)?$/;\n\n\tpublic static extractFromText(input: string, description?: string) {\n\t\tif (input === undefined) {\n\t\t\tthrow new Error(`Can not parse version from undefined`);\n\t\t}\n\n\t\tconst match = input.match(PackageVersion.fullTextMatcher);\n\n\t\tif (!match) {\n\t\t\tthrow new Error(`Could not extract a version from input: ${input}`);\n\t\t}\n\n\t\treturn PackageVersion.fromMatch(match, description);\n\t}\n\n\tpublic static extractFromLine(input: string, description?: string) {\n\t\tif (input === undefined) {\n\t\t\tthrow new Error(`Can not parse version from undefined`);\n\t\t}\n\n\t\tconst match = input.match(PackageVersion.lineMatcher);\n\n\t\tif (!match) {\n\t\t\tthrow new Error(`Could not parse version from input: ${input}`);\n\t\t}\n\n\t\treturn PackageVersion.fromMatch(match, description);\n\t}\n\n\tpublic static equals(\n\t\ta: PackageVersion,\n\t\tb: PackageVersion,\n\t\tcheckPrerelease = false,\n\t) {\n\t\tif (a.major !== b.major || a.minor !== b.minor || a.patch !== b.patch) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (checkPrerelease === false) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (a.preRelease === b.preRelease) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (a.preRelease === undefined || b.preRelease === undefined) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn (\n\t\t\ta.preRelease.type === b.preRelease.type &&\n\t\t\ta.preRelease.version === b.preRelease.version\n\t\t);\n\t}\n\n\tprivate static fromMatch(\n\t\t[\n\t\t\t,\n\t\t\tmajor,\n\t\t\t,\n\t\t\tminor = \"0\",\n\t\t\t,\n\t\t\tpatch = \"0\",\n\t\t\t,\n\t\t\tbuild,\n\t\t\t,\n\t\t\tpreReleaseType,\n\t\t\tpreReleaseNumber,\n\t\t]: RegExpMatchArray,\n\t\tdescription?: string,\n\t) {\n\t\tlet preRelease: PackageVersion[\"preRelease\"] = undefined;\n\t\tlet buildNumber = 100;\n\n\t\tif (preReleaseType && preReleaseNumber) {\n\t\t\tpreRelease = {\n\t\t\t\ttype: preReleaseType,\n\t\t\t\tversion: parseInt(preReleaseNumber),\n\t\t\t};\n\t\t}\n\n\t\tif (build) {\n\t\t\tbuildNumber = Number(build);\n\t\t} else if (description) {\n\t\t\tconst descriptionMatch = description.match(/(\\d+)\\)$/);\n\n\t\t\tif (descriptionMatch) {\n\t\t\t\tbuildNumber = parseInt(descriptionMatch[1]);\n\t\t\t}\n\t\t}\n\n\t\treturn new PackageVersion(\n\t\t\tparseInt(major),\n\t\t\tparseInt(minor),\n\t\t\tparseInt(patch),\n\t\t\tpreRelease,\n\t\t\tbuildNumber,\n\t\t);\n\t}\n\n\tpublic static sort(\n\t\ta: PackageVersion,\n\t\tb: PackageVersion,\n\t\tascending: boolean = true,\n\t) {\n\t\tconst createSortResult = (a: number, b: number) =>\n\t\t\tascending ? a - b : b - a;\n\n\t\tif (a.major !== b.major) {\n\t\t\treturn createSortResult(a.major, b.major);\n\t\t}\n\n\t\tif (a.minor !== b.minor) {\n\t\t\treturn createSortResult(a.minor, b.minor);\n\t\t}\n\n\t\tif (a.patch !== b.patch) {\n\t\t\treturn createSortResult(a.patch, b.patch);\n\t\t}\n\n\t\treturn createSortResult(\n\t\t\ta.preRelease ? a.preRelease.version : 0,\n\t\t\tb.preRelease ? b.preRelease.version : 0,\n\t\t);\n\t}\n\n\tprivate static toNumber(version: PackageVersion) {\n\t\treturn (\n\t\t\t((version.major * 1000 + version.minor) * 1000 + version.patch) *\n\t\t\t\t1000 +\n\t\t\tversion.buildNumber\n\t\t);\n\t}\n\n\tconstructor(\n\t\tpublic major: number,\n\t\tpublic minor: number,\n\t\tpublic patch: number,\n\t\tpublic preRelease: { type: string; version: number } | undefined,\n\t\tpublic buildNumber: number,\n\t) {}\n\n\tpublic isPreRelease() {\n\t\treturn this.preRelease !== undefined;\n\t}\n\n\tpublic clone() {\n\t\treturn new PackageVersion(\n\t\t\tthis.major,\n\t\t\tthis.minor,\n\t\t\tthis.patch,\n\t\t\tthis.preRelease ? { ...this.preRelease } : undefined,\n\t\t\tthis.buildNumber,\n\t\t);\n\t}\n\n\tpublic incrementMajor() {\n\t\tthis.preRelease = undefined;\n\t\tthis.patch = 0;\n\t\tthis.minor = 0;\n\t\tthis.major++;\n\t}\n\n\tpublic incrementMinor() {\n\t\tthis.preRelease = undefined;\n\t\tthis.patch = 0;\n\t\tthis.minor++;\n\t}\n\n\tpublic incrementPatch() {\n\t\tthis.preRelease = undefined;\n\t\tthis.patch++;\n\t}\n\n\tpublic createPreRelease(type: string) {\n\t\tif (!this.preRelease) {\n\t\t\tthis.buildNumber = 1;\n\t\t} else {\n\t\t\tthis.buildNumber++;\n\t\t}\n\n\t\tif (this.preRelease && type === this.preRelease.type) {\n\t\t\tthis.preRelease.version++;\n\t\t\treturn;\n\t\t}\n\n\t\tthis.preRelease = {\n\t\t\tversion: 0,\n\t\t\ttype,\n\t\t};\n\t}\n\n\tpublic createRelease() {\n\t\tthis.preRelease = undefined;\n\t\tthis.buildNumber = 100;\n\t}\n\n\tpublic toVersionString({\n\t\tbuildNumber,\n\t}: PackageVersionToVersionStringParams = {}) {\n\t\tlet version = [this.major, this.minor, this.patch].join(\".\");\n\n\t\tif (buildNumber) {\n\t\t\tversion += \".\" + this.buildNumber;\n\t\t}\n\n\t\tif (this.preRelease) {\n\t\t\tversion += `-${this.preRelease.type}.${this.preRelease.version}`;\n\t\t}\n\n\t\treturn version;\n\t}\n\n\tpublic toDescriptionString(packageName: string) {\n\t\tconst base = [this.major, this.minor, this.patch].join(\".\");\n\t\tconst parts: (number | string)[] = [packageName, base];\n\n\t\tif (this.preRelease) {\n\t\t\tparts.push(upperCaseFirst(this.preRelease.type));\n\t\t\tparts.push(this.preRelease.version);\n\t\t}\n\n\t\tparts.push(`(${base}.${this.buildNumber})`);\n\n\t\treturn parts.join(\" \");\n\t}\n\n\t/**\n\t * Determines wether the version is lesser than the input version\n\t *\n\t * @param {PackageVersion} version\n\t * @returns\n\t */\n\tpublic isLesserThan(version: PackageVersion) {\n\t\treturn PackageVersion.toNumber(this) < PackageVersion.toNumber(version);\n\t}\n\n\t/**\n\t * Determines wether the version is greater than the input version\n\t *\n\t * @param {PackageVersion} version\n\t * @returns\n\t */\n\tpublic isGreaterThan(version: PackageVersion) {\n\t\treturn PackageVersion.toNumber(this) > PackageVersion.toNumber(version);\n\t}\n}\n\nconst upperCaseFirst = (input: string) => {\n\treturn input.slice(0, 1).toUpperCase() + input.slice(1);\n};\n","import * as path from \"path\";\nimport * as fs from \"fs/promises\";\nimport * as terser from \"terser\";\nimport { EOL } from \"os\";\nimport ts from \"typescript\";\n\nimport {\n\tconsoleReporter,\n\tcreatePackageScopedReporter,\n\tgetPackageTypescriptFiles,\n\tisErrorENOENT,\n\tReporter,\n} from \"@intelligentgraphics/ig.gfx.tools.core\";\n\nimport {\n\tcreateTSCBuildParticipant,\n\tcreateTSCWatchBuildParticipant,\n} from \"./tsc\";\nimport {\n\tCreatorPackage,\n\tPackageLocation,\n\treadPackageCreatorManifest,\n\treadPackageNpmManifest,\n} from \"../../lib/package\";\nimport { WorkspaceLocation } from \"../../lib/workspace\";\nimport { toposort } from \"../../lib/toposort\";\nimport { PackageJSON } from \"../../lib/packageJSON\";\nimport { BuildArtefacts, BuildParticipant } from \"./types\";\nimport { BuildManager } from \"./manager\";\nimport {\n\tcreateAnimationBuildParticipant,\n\tcreateAnimationWatchBuildParticipant,\n} from \"./animations\";\nimport { isScriptPackageModules } from \"../../lib/scripts\";\nimport { PackageVersion } from \"../../lib/packageVersion\";\n\nexport interface BannerOptions {\n\ttext: string | undefined;\n\tversion: string | undefined;\n\tcommit: string | undefined;\n\tcommitDirty: boolean | undefined;\n\tdate: Date | undefined;\n}\n\nexport interface BuildFoldersOptions {\n\tworkspace: WorkspaceLocation;\n\tpackages: PackageLocation[];\n\toutDir?: string;\n\tminimize: boolean;\n\tbanner?: BannerOptions;\n\tclean?: boolean;\n\tdocs?: boolean;\n\treporter?: Reporter;\n\tpreparedReporter?: Reporter;\n\tdocsHandler?(\n\t\tlocation: PackageLocation,\n\t\tdeclarationFile: string,\n\t\toutFolder: string,\n\t\tname: string,\n\t): Promise<void>;\n}\n\nexport interface BuildFolderOptions extends BuildFoldersOptions {\n\toutFile: string;\n}\n\nexport interface FolderBuilderResult {\n\tjs: string;\n\tdefinitions: string;\n}\n\nexport type FolderBuilder = (\n\tlocation: PackageLocation,\n\toutputDir: string,\n) => Promise<FolderBuilderResult>;\n\ntype FolderData = {\n\tlocation: PackageLocation;\n\tdata?: PackageJSON;\n};\n\nexport async function buildFolders(options: BuildFoldersOptions) {\n\tif (options.outDir !== undefined && options.clean) {\n\t\tawait fs.rm(options.outDir, { recursive: true });\n\t}\n\n\tconst baseReporter = options.reporter ?? consoleReporter;\n\tconst workspace = options.workspace;\n\tconst folders = options.packages;\n\n\tlet sortedPackages = sortPackagesByBuildOrder(folders);\n\n\tlet index = 1;\n\n\tconst manifests = new Map(\n\t\tsortedPackages.map(\n\t\t\t(location) =>\n\t\t\t\t[location, readPackageCreatorManifest(location)] as const,\n\t\t),\n\t);\n\n\tconst maxNameLength = Array.from(\n\t\tmanifests.values(),\n\t\t(manifest) => manifest.Package.length,\n\t).reduce((acc, length) => Math.max(acc, length), 0);\n\n\tconst managers: BuildManager[] = [];\n\n\tfor (const location of sortedPackages) {\n\t\tconst tsConfig = await ensureTsConfig(location);\n\n\t\tconst data = manifests.get(location)!;\n\n\t\tconst reporter =\n\t\t\toptions.preparedReporter ??\n\t\t\tcreatePackageScopedReporter(\n\t\t\t\tbaseReporter,\n\t\t\t\tdata.Package,\n\t\t\t\tindex,\n\t\t\t\tfolders.length,\n\t\t\t\tmaxNameLength,\n\t\t\t);\n\n\t\tconst outputDirectory = options.outDir || location.scriptsDir;\n\t\tawait fs.mkdir(outputDirectory, { recursive: true });\n\n\t\tconst manager = new BuildManager(\n\t\t\tdata,\n\t\t\t(result) =>\n\t\t\t\twriteBuildResult(\n\t\t\t\t\tresult,\n\t\t\t\t\tdata,\n\t\t\t\t\tlocation,\n\t\t\t\t\tworkspace,\n\t\t\t\t\toutputDirectory,\n\t\t\t\t\toptions.minimize,\n\t\t\t\t\treporter,\n\t\t\t\t),\n\t\t\treporter,\n\t\t);\n\n\t\tif (options.banner) {\n\t\t\tmanager.addParticipant(\n\t\t\t\t\"banner\",\n\t\t\t\tcreateBannerCommentBuildParticipant(options.banner),\n\t\t\t);\n\t\t}\n\n\t\tconst typescriptFiles = getPackageTypescriptFiles(location);\n\n\t\tif (\n\t\t\t!typescriptFiles.some(\n\t\t\t\t(file) => path.basename(file).toLowerCase() === \"version.ts\",\n\t\t\t)\n\t\t) {\n\t\t\tmanager.addParticipant(\n\t\t\t\t\"version\",\n\t\t\t\tcreateVersionLogBuildParticipant(data),\n\t\t\t);\n\t\t}\n\n\t\tif (typescriptFiles.length > 0) {\n\t\t\tif (isScriptPackageModules(tsConfig.options)) {\n\t\t\t\tconst { createRollupBuildParticipant } =\n\t\t\t\t\tawait import(\"./rollup\");\n\n\t\t\t\tmanager.addParticipant(\n\t\t\t\t\t\"rollup\",\n\t\t\t\t\tcreateRollupBuildParticipant(\n\t\t\t\t\t\tlocation,\n\t\t\t\t\t\tdata,\n\t\t\t\t\t\toutputDirectory,\n\t\t\t\t\t\t!tsConfig.options.declaration,\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tmanager.addParticipant(\n\t\t\t\t\t\"tsc\",\n\t\t\t\t\tcreateTSCBuildParticipant(\n\t\t\t\t\t\tlocation,\n\t\t\t\t\t\toutputDirectory,\n\t\t\t\t\t\t// in the past we always created declaration files,\n\t\t\t\t\t\t// so we'll use it as the default for legacy modules\n\t\t\t\t\t\ttsConfig.options.declaration === false,\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tmanager.addParticipant(\n\t\t\t\"animation\",\n\t\t\tcreateAnimationBuildParticipant(location, data),\n\t\t);\n\n\t\tawait new Promise<void>((resolve, reject) => {\n\t\t\tmanager.addListener(\"start\", () => {\n\t\t\t\treporter.log(`Build started`);\n\t\t\t});\n\t\t\tmanager.addListener(\"error\", (error: Error) => {\n\t\t\t\treject(error);\n\t\t\t});\n\t\t\tmanager.addListener(\"build\", () => {\n\t\t\t\treporter.log(`Build complete`);\n\t\t\t\tresolve();\n\t\t\t});\n\t\t\tmanager.run();\n\t\t});\n\n\t\tmanagers.push(manager);\n\n\t\tif (options.docs) {\n\t\t\tif (!options.docsHandler) {\n\t\t\t\tthrow new Error(\"Handler for typescript docs not available\");\n\t\t\t}\n\n\t\t\treporter.log(\"Generating typedoc documentation\");\n\t\t\tawait options.docsHandler(\n\t\t\t\tlocation,\n\t\t\t\tpath.join(outputDirectory, `${data.Package}.d.ts`),\n\t\t\t\tpath.join(workspace.path, \"docs\", data.Package),\n\t\t\t\tdata.Package,\n\t\t\t);\n\t\t}\n\n\t\tindex++;\n\t}\n}\n\nexport async function buildFoldersWatch(options: BuildFoldersOptions) {\n\tif (options.outDir !== undefined && options.clean) {\n\t\tawait fs.rm(options.outDir, { recursive: true });\n\t}\n\n\tconst workspace = options.workspace;\n\tconst folders = options.packages;\n\tconst baseReporter = options.reporter ?? consoleReporter;\n\n\tlet sortedPackages = sortPackagesByBuildOrder(folders);\n\n\tlet index = 1;\n\n\tconst manifests = new Map(\n\t\tsortedPackages.map(\n\t\t\t(location) =>\n\t\t\t\t[location, readPackageCreatorManifest(location)] as const,\n\t\t),\n\t);\n\n\tconst maxNameLength = Array.from(\n\t\tmanifests.values(),\n\t\t(manifest) => manifest.Package.length,\n\t).reduce((acc, length) => Math.max(acc, length), 0);\n\n\tconst managers: BuildManager[] = [];\n\n\tfor (const location of sortedPackages) {\n\t\tconst tsConfig = await ensureTsConfig(location);\n\n\t\tconst baseReporter = options.reporter ?? consoleReporter;\n\n\t\tconst data = manifests.get(location)!;\n\n\t\tconst reporter =\n\t\t\toptions.preparedReporter ??\n\t\t\tcreatePackageScopedReporter(\n\t\t\t\tbaseReporter,\n\t\t\t\tdata.Package,\n\t\t\t\tindex,\n\t\t\t\tfolders.length,\n\t\t\t\tmaxNameLength,\n\t\t\t);\n\n\t\tconst outputDirectory = options.outDir || location.scriptsDir;\n\t\tawait fs.mkdir(outputDirectory, { recursive: true });\n\n\t\tconst manager = new BuildManager(\n\t\t\tdata,\n\t\t\t(result) =>\n\t\t\t\twriteBuildResult(\n\t\t\t\t\tresult,\n\t\t\t\t\tdata,\n\t\t\t\t\tlocation,\n\t\t\t\t\tworkspace,\n\t\t\t\t\toutputDirectory,\n\t\t\t\t\toptions.minimize,\n\t\t\t\t\treporter,\n\t\t\t\t),\n\t\t\treporter,\n\t\t);\n\n\t\tif (options.banner) {\n\t\t\tmanager.addParticipant(\n\t\t\t\t\"banner\",\n\t\t\t\tcreateBannerCommentBuildParticipant(options.banner),\n\t\t\t);\n\t\t}\n\n\t\tconst typescriptFiles = getPackageTypescriptFiles(location);\n\n\t\tif (\n\t\t\t!typescriptFiles.some(\n\t\t\t\t(file) => path.basename(file).toLowerCase() === \"version.ts\",\n\t\t\t)\n\t\t) {\n\t\t\tmanager.addParticipant(\n\t\t\t\t\"version\",\n\t\t\t\tcreateVersionLogBuildParticipant(data),\n\t\t\t);\n\t\t}\n\n\t\tif (typescriptFiles.length > 0) {\n\t\t\tif (isScriptPackageModules(tsConfig.options)) {\n\t\t\t\tconst { createRollupWatchBuildParticipant } =\n\t\t\t\t\tawait import(\"./rollup\");\n\n\t\t\t\tmanager.addParticipant(\n\t\t\t\t\t\"rollup\",\n\t\t\t\t\tcreateRollupWatchBuildParticipant(\n\t\t\t\t\t\tlocation,\n\t\t\t\t\t\tdata,\n\t\t\t\t\t\toutputDirectory,\n\t\t\t\t\t\t!tsConfig.options.declaration,\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tmanager.addParticipant(\n\t\t\t\t\t\"tsc\",\n\t\t\t\t\tcreateTSCWatchBuildParticipant(\n\t\t\t\t\t\tlocation,\n\t\t\t\t\t\toutputDirectory,\n\t\t\t\t\t\t// in the past we always created declaration files,\n\t\t\t\t\t\t// so we'll use it as the default for legacy modules\n\t\t\t\t\t\ttsConfig.options.declaration === false,\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tmanager.addParticipant(\n\t\t\t\"animation\",\n\t\t\tcreateAnimationWatchBuildParticipant(location, data),\n\t\t);\n\n\t\tawait new Promise<void>((resolve, reject) => {\n\t\t\tmanager.addListener(\"start\", () => {\n\t\t\t\treporter.log(`Build started`);\n\t\t\t});\n\t\t\tmanager.addListener(\"error\", (error: string) => {\n\t\t\t\treporter.log(`Build failed: ${EOL}${error}`);\n\t\t\t\tresolve();\n\t\t\t});\n\t\t\tmanager.addListener(\"build\", () => {\n\t\t\t\treporter.log(`Build complete`);\n\t\t\t\tresolve();\n\t\t\t});\n\t\t\tmanager.run();\n\t\t});\n\n\t\tmanagers.push(manager);\n\n\t\tindex++;\n\t}\n\n\treturn {\n\t\tdestroy: () => {\n\t\t\tfor (const manager of managers) {\n\t\t\t\tmanager.destroy();\n\t\t\t}\n\t\t},\n\t};\n}\n\nasync function writeBuildResult(\n\tbuildResult: BuildArtefacts,\n\tmanifest: CreatorPackage,\n\tlocation: PackageLocation,\n\tworkspace: WorkspaceLocation,\n\toutputDirectory: string,\n\tminimize: boolean,\n\treporter: Reporter,\n) {\n\tlet js = buildResult.js;\n\n\tif (buildResult.sourceMap) {\n\t\tjs += `\\n//# sourceMappingURL=${manifest.Package}.js.map`;\n\t}\n\n\tawait fs.writeFile(\n\t\tpath.join(outputDirectory, `${manifest.Package}.js`),\n\t\tjs,\n\t\t{ encoding: \"utf8\" },\n\t);\n\tif (buildResult.declarations !== undefined) {\n\t\tawait fs.writeFile(\n\t\t\tpath.join(outputDirectory, `${manifest.Package}.d.ts`),\n\t\t\tbuildResult.declarations,\n\t\t\t{ encoding: \"utf8\" },\n\t\t);\n\t}\n\tif (buildResult.sourceMap !== undefined) {\n\t\tawait fs.writeFile(\n\t\t\tpath.join(outputDirectory, `${manifest.Package}.js.map`),\n\t\t\tbuildResult.sourceMap,\n\t\t\t{ encoding: \"utf8\" },\n\t\t);\n\t}\n\n\tif (minimize) {\n\t\treporter.log(\"Minifying the output\");\n\n\t\tconst minifyResult = await terser.minify(js, {\n\t\t\tecma: 5,\n\t\t\tsourceMap: {\n\t\t\t\tcontent: buildResult.sourceMap,\n\t\t\t\tincludeSources: false,\n\t\t\t},\n\t\t});\n\n\t\tconst minifiedPath = path.join(\n\t\t\toutputDirectory,\n\t\t\t`${manifest.Package}.min.js`,\n\t\t);\n\n\t\tlet code = minifyResult.code!;\n\n\t\tif (minifyResult.map) {\n\t\t\tcode += `\\n//# sourceMappingURL=${manifest.Package}.min.js.map`;\n\t\t}\n\n\t\tawait fs.writeFile(minifiedPath, code, {\n\t\t\tencoding: \"utf8\",\n\t\t});\n\t\tif (minifyResult.map !== undefined) {\n\t\t\tawait fs.writeFile(\n\t\t\t\tminifiedPath + \".map\",\n\t\t\t\ttypeof minifyResult.map === \"string\"\n\t\t\t\t\t? minifyResult.map\n\t\t\t\t\t: JSON.stringify(minifyResult.map),\n\t\t\t\t{ encoding: \"utf8\" },\n\t\t\t);\n\t\t}\n\t}\n\n\tif (\n\t\tlocation.path.includes(\"Basics\") &&\n\t\tbuildResult.declarations !== undefined\n\t) {\n\t\tawait fs.mkdir(path.join(workspace.path, \"lib\"), {\n\t\t\trecursive: true,\n\t\t});\n\n\t\treporter.log(\"Copying basics definition file to the lib folder\");\n\t\tawait fs.writeFile(\n\t\t\tpath.join(workspace.path, \"lib\", `${manifest.Package}.d.ts`),\n\t\t\tbuildResult.declarations,\n\t\t\t{ encoding: \"utf8\" },\n\t\t);\n\t}\n}\n\nfunction createVersionLogBuildParticipant(\n\tmanifest: CreatorPackage,\n): BuildParticipant {\n\treturn (env) => {\n\t\tenv.onBuildStart();\n\n\t\tconst parsedVersion =\n\t\t\tmanifest.Version !== undefined\n\t\t\t\t? PackageVersion.extractFromLine(manifest.Version)\n\t\t\t\t: undefined;\n\n\t\tlet logText: string;\n\n\t\tif (parsedVersion !== undefined) {\n\t\t\tlogText = parsedVersion.toDescriptionString(manifest.Package);\n\t\t} else {\n\t\t\tlogText = manifest.Package;\n\t\t}\n\n\t\tlogText += \".\";\n\n\t\tif (manifest.Copyright !== undefined) {\n\t\t\tlogText += \" \" + manifest.Copyright;\n\t\t}\n\n\t\tenv.onBuildEnd({\n\t\t\ttype: \"success\",\n\t\t\tartefacts: {\n\t\t\t\tjs: `console.log(${JSON.stringify(logText)})`,\n\t\t\t},\n\t\t});\n\n\t\treturn {\n\t\t\tdestroy: () => {},\n\t\t};\n\t};\n}\n\nfunction createBannerCommentBuildParticipant(\n\toptions: BannerOptions,\n): BuildParticipant {\n\treturn (env) => {\n\t\tenv.onBuildStart();\n\n\t\tconst banner = createBannerComment(options);\n\n\t\tenv.onBuildEnd({\n\t\t\ttype: \"success\",\n\t\t\tartefacts: {\n\t\t\t\tjs: banner ?? \"\",\n\t\t\t\tdeclarations: banner ?? \"\",\n\t\t\t},\n\t\t});\n\n\t\treturn {\n\t\t\tdestroy: () => {},\n\t\t};\n\t};\n}\n\nasync function ensureTsConfig(location: PackageLocation) {\n\tconst tsconfigPath = path.join(location.scriptsDir, \"tsconfig.json\");\n\n\ttry {\n\t\tconst content = JSON.parse(await fs.readFile(tsconfigPath, \"utf8\"));\n\n\t\tif (applyTsConfigOptions(content)) {\n\t\t\tawait fs.writeFile(\n\t\t\t\ttsconfigPath,\n\t\t\t\tJSON.stringify(content, undefined, \"\\t\"),\n\t\t\t\t\"utf8\",\n\t\t\t);\n\t\t}\n\n\t\treturn ts.parseJsonConfigFileContent(\n\t\t\tcontent,\n\t\t\tts.sys,\n\t\t\tlocation.scriptsDir,\n\t\t);\n\t} catch (err) {\n\t\tif (!isErrorENOENT(err)) {\n\t\t\tthrow err;\n\t\t}\n\n\t\tconst content = {};\n\n\t\tapplyTsConfigOptions(content);\n\t\tawait fs.writeFile(\n\t\t\ttsconfigPath,\n\t\t\tJSON.stringify(content, undefined, \"\\t\"),\n\t\t\t\"utf8\",\n\t\t);\n\n\t\treturn ts.parseJsonConfigFileContent(\n\t\t\tcontent,\n\t\t\tts.sys,\n\t\t\tlocation.scriptsDir,\n\t\t);\n\t}\n}\n\nfunction applyTsConfigOptions(data: {\n\tcompilerOptions?: {\n\t\ttarget?: string;\n\t\tlib?: string[];\n\t\tmodule?: string;\n\t\tmoduleResolution?: string;\n\t};\n}) {\n\tlet expectedValues: (typeof data)[\"compilerOptions\"];\n\n\tif (data.compilerOptions?.module?.toLowerCase().startsWith(\"es\")) {\n\t\texpectedValues = {\n\t\t\ttarget: \"esnext\",\n\t\t\tlib: [\"es2024\", \"dom\"],\n\t\t\tmodule: \"es2015\",\n\t\t\tmoduleResolution: \"node\",\n\t\t};\n\t} else {\n\t\texpectedValues = {\n\t\t\ttarget: \"es5\",\n\t\t\tlib: [\"es5\", \"dom\"],\n\t\t};\n\t}\n\n\tdata.compilerOptions = data.compilerOptions ?? {};\n\n\tlet changed = false;\n\tfor (const [key, value] of Object.entries(expectedValues)) {\n\t\tconst currentValue: unknown = data.compilerOptions[key];\n\n\t\tswitch (typeof value) {\n\t\t\tcase \"string\":\n\t\t\tcase \"number\":\n\t\t\tcase \"boolean\":\n\t\t\t\tif (value !== currentValue) {\n\t\t\t\t\tchanged = true;\n\t\t\t\t\tdata.compilerOptions[key] = value;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"object\":\n\t\t\t\tif (\n\t\t\t\t\tArray.isArray(value) &&\n\t\t\t\t\t(!Array.isArray(currentValue) ||\n\t\t\t\t\t\tvalue.length !== currentValue.length ||\n\t\t\t\t\t\tvalue.some(\n\t\t\t\t\t\t\t(item, index) => item !== currentValue[index],\n\t\t\t\t\t\t))\n\t\t\t\t) {\n\t\t\t\t\tchanged = true;\n\t\t\t\t\tdata.compilerOptions[key] = value;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn changed;\n}\n\nfunction sortPackagesByBuildOrder(\n\tfolders: PackageLocation[],\n): PackageLocation[] {\n\tconst packages = Array.from(folders).reduce(\n\t\t(\n\t\t\tacc: Record<string, FolderData>,\n\t\t\tlocation,\n\t\t): Record<string, FolderData> => {\n\t\t\tconst data = readPackageNpmManifest(location);\n\n\t\t\tif (data !== undefined) {\n\t\t\t\tacc[data.name] = {\n\t\t\t\t\tdata,\n\t\t\t\t\tlocation,\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tacc[location.path] = {\n\t\t\t\t\tdata: undefined,\n\t\t\t\t\tlocation,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn acc;\n\t\t},\n\t\t{},\n\t);\n\n\tconst packageDependencies = Object.getOwnPropertyNames(packages).reduce(\n\t\t(acc, packageName) => {\n\t\t\tconst packageData = packages[packageName];\n\n\t\t\tif (packageData.data === undefined) {\n\t\t\t\tacc[packageName] = [];\n\t\t\t} else {\n\t\t\t\tacc[packageName] = Object.getOwnPropertyNames({\n\t\t\t\t\t...packageData.data.devDependencies,\n\t\t\t\t\t...packageData.data.dependencies,\n\t\t\t\t\t...packageData.data.peerDependencies,\n\t\t\t\t}).filter((packageName) => packages[packageName] !== undefined);\n\t\t\t}\n\n\t\t\treturn acc;\n\t\t},\n\t\t{},\n\t);\n\n\tconst sortedPackages = toposort(packageDependencies);\n\tconst result: PackageLocation[] = [];\n\n\tfor (const packageName of sortedPackages) {\n\t\tconst location = packages[packageName].location;\n\n\t\tif (readPackageCreatorManifest(location).Package.endsWith(\".Basics\")) {\n\t\t\tresult.unshift(location);\n\t\t} else {\n\t\t\tresult.push(location);\n\t\t}\n\t}\n\n\treturn result;\n}\n\nfunction createBannerComment(banner: BannerOptions) {\n\tconst bannerParts: string[] = [];\n\n\tif (banner.text) {\n\t\tbannerParts.push(\" * \" + banner.text);\n\t}\n\n\t{\n\t\tconst details: string[] = [];\n\n\t\tif (banner.version) {\n\t\t\tdetails.push(`Version: ${banner.version}`);\n\t\t}\n\t\tif (banner.commit) {\n\t\t\tif (banner.commitDirty) {\n\t\t\t\tdetails.push(`Commit: ${banner.commit} (dirty)`);\n\t\t\t} else {\n\t\t\t\tdetails.push(`Commit: ${banner.commit}`);\n\t\t\t}\n\t\t}\n\t\tif (banner.date) {\n\t\t\tdetails.push(`Date: ${banner.date.toISOString()}`);\n\t\t}\n\n\t\tconst detailsText = details.map((line) => ` * ${line}`).join(\"\\n\");\n\t\tif (detailsText) {\n\t\t\tbannerParts.push(detailsText);\n\t\t}\n\t}\n\n\tconst bannerText = bannerParts.join(\"\\n\\n\");\n\n\tif (bannerText) {\n\t\treturn `/*\n${bannerText}\n*\n* @preserve\t\t\t\n*/`;\n\t}\n\n\treturn undefined;\n}\n"],"names":["consoleReporter","log","message","console","error","_error","createPackageScopedReporter","reporter","scope","index","total","maxNameLength","numLength","undefined","toString","length","indexString","padStart","identifierString","padEnd","tryReadTsConfig","location","config","ts","readConfigFile","path","join","scriptsDir","fs","readFileSync","createTSCBuildParticipant","outputDir","skipDeclarations","env","files","getPackageTypescriptFiles","onBuildStart","compilerOptions","getCompilerOptions","host","createCompilerHost","getCurrentDirectory","js","definitions","sourceMap","writeFile","fileName","data","writeByteOrderMark","endsWith","programOptions","rootNames","options","program","createProgram","emitResult","emit","allDiagnostics","getPreEmitDiagnostics","emitSkipped","formatDiagnostics","Error","onBuildEnd","type","artefacts","replace","declarations","getDeclarationFileReferences","err","destroy","createTSCWatchBuildParticipant","state","diagnostics","customSys","sys","registerDiagnostic","diagnostic","code","push","currentProgram","reportWatchStatusChanged","emitState","formattingHost","createWatchCompilerHost","createSemanticDiagnosticsBuilderProgram","originalAfterProgramCreate","afterProgramCreate","getCanonicalFileName","getNewLine","newLine","watchProgram","createWatchProgram","close","lib","result","convertCompilerOptionsFromJson","removeComments","declaration","inlineSources","outFile","target","ScriptTarget","ES5","noEmitOnError","references","Set","file","getSourceFiles","reference","referencedFiles","preserve","dir","dirname","absolute","resolve","startsWith","add","referenceString","Array","from","relativeNormalized","relative","replaceAll","sep","EOL","toposort","packages","queue","Object","getOwnPropertyNames","queueEntry","dependencies","dependencyQueued","some","dependency","includes","splice","BuildManager","EventEmitter","manifest","writer","participants","Map","states","participantInstances","addParticipant","name","participant","set","run","instance","alreadyBusy","maybeEmit","errors","results","_","AggregateError","completeResult","sourceMapGenerator","SourceMapGenerator","lines","split","SourceMapConsumer","JSON","parse","sources","eachMapping","mapping","addMapping","generated","line","generatedLine","column","generatedColumn","original","originalLine","originalColumn","source","content","sourceContentFor","setSourceContent","then","$schema","$id","$comment","title","additionalProperties","properties","Id","description","Animations","items","Path","$ref","States","Position","Rotation","Scaling","Visibility","Deformation","anyOf","Kinematics","oneOf","LinkedPoints","vec3","X","Y","Z","rotation","Q","W","igxcPath","pattern","param","kinematicChain","GeometryBase","Joints","Name","HeadX","HeadY","HeadZ","Tail","LimitLeft","LimitRight","LimitUp","LimitDown","FollowJointNode","_TargetNodeForFollow","Target","enum","Parent","Tolerance","MaxIterations","__","createAnimationBuildParticipant","bundleAnimations","catch","createAnimationWatchBuildParticipant","event","watch","filename","logStep","animations","scriptFilePath","readPackageAnimationList","readFile","encoding","relativePath","SyntaxError","String","cause","basename","getAnimationJsonValidation","stringify","size","Scope","Package","scopeParts","createNamespace","parts","slice","validateAnimationJson","Ajv","coerceTypes","allErrors","removeAdditional","useDefaults","validateSchema","compile","animationSchema","PackageVersion","fullTextMatcher","lineMatcher","extractFromText","input","match","fromMatch","extractFromLine","equals","a","b","checkPrerelease","major","minor","patch","preRelease","version","build","preReleaseType","preReleaseNumber","buildNumber","parseInt","Number","descriptionMatch","sort","ascending","createSortResult","toNumber","isPreRelease","clone","incrementMajor","incrementMinor","incrementPatch","createPreRelease","createRelease","toVersionString","toDescriptionString","packageName","base","upperCaseFirst","isLesserThan","isGreaterThan","toUpperCase","buildFolders","outDir","clean","rm","recursive","baseReporter","workspace","folders","sortedPackages","sortPackagesByBuildOrder","manifests","map","readPackageCreatorManifest","values","reduce","acc","Math","max","tsConfig","ensureTsConfig","get","preparedReporter","outputDirectory","mkdir","manager","writeBuildResult","minimize","banner","createBannerCommentBuildParticipant","typescriptFiles","toLowerCase","createVersionLogBuildParticipant","isScriptPackageModules","createRollupBuildParticipant","Promise","reject","addListener","docs","docsHandler","buildFoldersWatch","managers","createRollupWatchBuildParticipant","buildResult","minifyResult","terser","minify","ecma","includeSources","minifiedPath","parsedVersion","Version","logText","Copyright","createBannerComment","tsconfigPath","applyTsConfigOptions","parseJsonConfigFileContent","isErrorENOENT","expectedValues","module","moduleResolution","changed","key","value","entries","currentValue","isArray","item","readPackageNpmManifest","packageDependencies","packageData","devDependencies","peerDependencies","filter","unshift","bannerParts","text","details","commit","commitDirty","date","toISOString","detailsText","bannerText"],"mappings":"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"}
|
|
@@ -7,13 +7,13 @@ import { exec } from 'child_process';
|
|
|
7
7
|
import { promisify } from 'util';
|
|
8
8
|
import 'resolve';
|
|
9
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-
|
|
11
|
-
import { P as PackageVersion, c as createPackageScopedReporter, a as consoleReporter, b as buildFolders } from './index-
|
|
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-CTqQeYIu.mjs';
|
|
11
|
+
import { P as PackageVersion, c as createPackageScopedReporter, a as consoleReporter, b as buildFolders } from './index-Ck4_b8Wk.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-
|
|
14
|
+
import { p as parseVersionFromNumericVersion, g as getVersionFileHandler, a as parseVersionFromString, b as getVersionInformationFromGit, c as getWorkspaceBannerText } from './versionFile-B9z_qwQL.mjs';
|
|
15
15
|
import JSZip from 'jszip';
|
|
16
|
-
import { r as readPublishedPackageCreatorIndex, d as determineWorkspaceIGLibraries, a as readPublishedPackageNpmManifest, b as readPublishedPackageCreatorManifest } from './dependencies-
|
|
16
|
+
import { r as readPublishedPackageCreatorIndex, d as determineWorkspaceIGLibraries, a as readPublishedPackageNpmManifest, b as readPublishedPackageCreatorManifest } from './dependencies-CCIr5dgH.mjs';
|
|
17
17
|
import { buffer } from 'node:stream/consumers';
|
|
18
18
|
import 'update-notifier';
|
|
19
19
|
import 'yargs/yargs';
|
|
@@ -474,4 +474,4 @@ const releaseFolder = async (options)=>{
|
|
|
474
474
|
};
|
|
475
475
|
|
|
476
476
|
export { releaseFolder };
|
|
477
|
-
//# sourceMappingURL=index-
|
|
477
|
+
//# sourceMappingURL=index-DHSUlJia.mjs.map
|