@intelligentgraphics/ig.gfx.packager 3.0.2 → 3.0.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.
Files changed (68) hide show
  1. package/build/cli-5332deff.js +2486 -0
  2. package/build/cli-5332deff.js.map +1 -0
  3. package/build/{lib/dependencies.mjs → dependencies-227aca50.js} +62 -7
  4. package/build/dependencies-227aca50.js.map +1 -0
  5. package/build/{commands/generate.mjs → generate-a3a16031.js} +17 -3
  6. package/build/generate-a3a16031.js.map +1 -0
  7. package/build/{commands/publish/index.mjs → index-5d595f56.js} +199 -17
  8. package/build/index-5d595f56.js.map +1 -0
  9. package/build/{commands/build/index.mjs → index-92b6ba5c.js} +151 -8
  10. package/build/index-92b6ba5c.js.map +1 -0
  11. package/build/index.mjs +1 -1
  12. package/build/index.mjs.map +1 -1
  13. package/build/{commands/postinstall.mjs → postinstall-7e50da37.js} +19 -12
  14. package/build/postinstall-7e50da37.js.map +1 -0
  15. package/build/{commands/publishNpm.mjs → publishNpm-e2c8347f.js} +22 -10
  16. package/build/publishNpm-e2c8347f.js.map +1 -0
  17. package/build/versionFile-b3a65dc8.js +370 -0
  18. package/build/versionFile-b3a65dc8.js.map +1 -0
  19. package/package.json +8 -7
  20. package/readme.md +23 -3
  21. package/build/cli.mjs +0 -316
  22. package/build/cli.mjs.map +0 -1
  23. package/build/commands/build/docs.mjs +0 -34
  24. package/build/commands/build/docs.mjs.map +0 -1
  25. package/build/commands/build/index.mjs.map +0 -1
  26. package/build/commands/build/tsc.mjs +0 -84
  27. package/build/commands/build/tsc.mjs.map +0 -1
  28. package/build/commands/generate.mjs.map +0 -1
  29. package/build/commands/postinstall.mjs.map +0 -1
  30. package/build/commands/publish/index.mjs.map +0 -1
  31. package/build/commands/publish/zip.mjs +0 -168
  32. package/build/commands/publish/zip.mjs.map +0 -1
  33. package/build/commands/publishNpm.mjs.map +0 -1
  34. package/build/lib/assetService.mjs +0 -111
  35. package/build/lib/assetService.mjs.map +0 -1
  36. package/build/lib/banner.mjs +0 -20
  37. package/build/lib/banner.mjs.map +0 -1
  38. package/build/lib/dependencies.mjs.map +0 -1
  39. package/build/lib/error.mjs +0 -15
  40. package/build/lib/error.mjs.map +0 -1
  41. package/build/lib/fs.mjs +0 -19
  42. package/build/lib/fs.mjs.map +0 -1
  43. package/build/lib/git.mjs +0 -37
  44. package/build/lib/git.mjs.map +0 -1
  45. package/build/lib/log.mjs +0 -9
  46. package/build/lib/log.mjs.map +0 -1
  47. package/build/lib/npmPackage.mjs +0 -19
  48. package/build/lib/npmPackage.mjs.map +0 -1
  49. package/build/lib/package.mjs +0 -129
  50. package/build/lib/package.mjs.map +0 -1
  51. package/build/lib/packageVersion.mjs +0 -174
  52. package/build/lib/packageVersion.mjs.map +0 -1
  53. package/build/lib/parseVersion.mjs +0 -54
  54. package/build/lib/parseVersion.mjs.map +0 -1
  55. package/build/lib/prompter.mjs +0 -31
  56. package/build/lib/prompter.mjs.map +0 -1
  57. package/build/lib/publishedPackage.mjs +0 -66
  58. package/build/lib/publishedPackage.mjs.map +0 -1
  59. package/build/lib/scripts.mjs +0 -10
  60. package/build/lib/scripts.mjs.map +0 -1
  61. package/build/lib/stripUtf8Bom.mjs +0 -11
  62. package/build/lib/stripUtf8Bom.mjs.map +0 -1
  63. package/build/lib/toposort.mjs +0 -26
  64. package/build/lib/toposort.mjs.map +0 -1
  65. package/build/lib/versionFile.mjs +0 -78
  66. package/build/lib/versionFile.mjs.map +0 -1
  67. package/build/lib/workspace.mjs +0 -51
  68. package/build/lib/workspace.mjs.map +0 -1
@@ -1,6 +1,20 @@
1
1
  import ts from 'typescript';
2
- import { writePackageCreatorIndex } from '../lib/package.mjs';
3
- import { getPackageTypescriptFiles } from '../lib/scripts.mjs';
2
+ import 'path';
3
+ import 'fs';
4
+ import 'resolve';
5
+ import 'write-pkg';
6
+ import { h as getPackageTypescriptFiles, j as writePackageCreatorIndex } from './cli-5332deff.js';
7
+ import 'node:path';
8
+ import 'node:fs';
9
+ import 'axios';
10
+ import 'update-notifier';
11
+ import 'yargs/yargs';
12
+ import 'url';
13
+ import 'glob';
14
+ import 'assert';
15
+ import 'events';
16
+ import 'util';
17
+ import 'inquirer';
4
18
 
5
19
  function findTsNode(node, callback) {
6
20
  let result;
@@ -179,4 +193,4 @@ function extract(location, ignore = []) {
179
193
  }
180
194
 
181
195
  export { extract };
182
- //# sourceMappingURL=generate.mjs.map
196
+ //# sourceMappingURL=generate-a3a16031.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-a3a16031.js","sources":["../src/commands/generate.ts"],"sourcesContent":["import ts from \"typescript\";\n\nimport {\n\tPackageLocation,\n\twritePackageCreatorIndex,\n\treadPackageCreatorIndex,\n} from \"../lib/package\";\nimport { getPackageTypescriptFiles } from \"../lib/scripts\";\nimport {\n\tCreatorIndexEntry,\n\tCreatorIndexParameter,\n\tCreatorIndexParameterType,\n} from \"../lib/package\";\n\nfunction findTsNode<T extends ts.Node>(\n\tnode: ts.Node,\n\tcallback: (node: ts.Node) => node is T,\n): T | undefined;\nfunction findTsNode(\n\tnode: ts.Node,\n\tcallback: (node: ts.Node) => boolean,\n): ts.Node | undefined;\nfunction findTsNode(\n\tnode: ts.Node,\n\tcallback: (node: ts.Node) => boolean,\n): ts.Node | undefined {\n\tlet result: ts.Node | undefined;\n\n\tts.forEachChild(node, (child) => {\n\t\tif (callback(child)) {\n\t\t\tresult = child;\n\t\t\treturn true;\n\t\t}\n\t});\n\n\treturn result;\n}\n\nfunction capitalizeFirstLetter(string) {\n\treturn string?.charAt(0).toUpperCase() + string?.slice(1);\n}\n\nfunction parseDefault(value: string, type: string) {\n\tconst uType: CreatorIndexParameterType = capitalizeFirstLetter(type);\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\tdefault:\n\t\t\treturn value.replace(/^\"/, \"\").replace(/\"$/, \"\");\n\t}\n}\n\nfunction findEvaluatorNode(node: ts.Node): ts.ClassDeclaration | undefined {\n\tif (\n\t\tts.isModuleDeclaration(node) &&\n\t\tnode.body &&\n\t\tts.isModuleDeclaration(node.body) &&\n\t\tnode.body.body\n\t) {\n\t\tconst classDeclaration = findTsNode(\n\t\t\tnode.body.body,\n\t\t\t(child): child is ts.ClassDeclaration => {\n\t\t\t\tif (!ts.isClassDeclaration(child)) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tconst isEvaluator = child.heritageClauses?.some((clause) => {\n\t\t\t\t\tif (clause.token !== ts.SyntaxKind.ExtendsKeyword) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn clause.types.some((type) =>\n\t\t\t\t\t\ttype.getText().includes(\"Evaluator\"),\n\t\t\t\t\t);\n\t\t\t\t});\n\n\t\t\t\treturn isEvaluator ?? false;\n\t\t\t},\n\t\t);\n\n\t\treturn classDeclaration;\n\t}\n}\n\nfunction getParameter(evaluatorNode: ts.ClassDeclaration) {\n\tlet memb = evaluatorNode.members?.find(\n\t\t(member) => member?.name?.getText().toLowerCase() == \"create\",\n\t);\n\tif (ts.isMethodDeclaration(memb!)) {\n\t\treturn memb.parameters.find(\n\t\t\t(para) => para.name.getText().toLowerCase() == \"parameters\",\n\t\t);\n\t}\n}\n\nfunction findParametersInterface(\n\tnode: ts.Node,\n\tinterfaceName: string,\n): ts.InterfaceDeclaration | undefined {\n\tif (\n\t\tts.isModuleDeclaration(node) &&\n\t\tnode.body &&\n\t\tts.isModuleDeclaration(node.body) &&\n\t\tnode.body.body\n\t) {\n\t\tconst interfaceDeclaration = findTsNode(\n\t\t\tnode.body.body,\n\t\t\t(child): child is ts.InterfaceDeclaration =>\n\t\t\t\tts.isInterfaceDeclaration(child) &&\n\t\t\t\tchild.name.getText() == interfaceName,\n\t\t);\n\n\t\treturn interfaceDeclaration;\n\t}\n\n\treturn undefined;\n}\n\nfunction getModuleName(sourceFile: ts.Node): string {\n\tlet fullName = \"\";\n\tif (ts.isModuleDeclaration(sourceFile)) {\n\t\tfullName += sourceFile.name.getText();\n\n\t\tlet packageB = sourceFile.body!;\n\t\tif (ts.isModuleDeclaration(packageB)) {\n\t\t\tfullName += \".\" + packageB.name.getText();\n\t\t}\n\t}\n\treturn fullName;\n}\n\nfunction genParameters(\n\tinterfac: ts.InterfaceDeclaration,\n): CreatorIndexParameter[] {\n\treturn interfac.members.map((member, i) => {\n\t\tlet para = {} as CreatorIndexParameter;\n\n\t\tpara.Name = member.name!.getText();\n\t\tif (para.Name.length > 45)\n\t\t\tthrow new Error(`Parameter name length >45 '${para.Name}'`);\n\n\t\tlet rawDocTags = ts.getJSDocTags(member);\n\t\tif (rawDocTags.length) {\n\t\t\tlet dict = getTagDict(rawDocTags);\n\t\t\tif (dict.summary) para.Description = dict.summary;\n\t\t\tif (dict.creatorType)\n\t\t\t\tpara.Type = dict.creatorType as CreatorIndexParameterType;\n\t\t\tif (dict.default && dict.creatorType)\n\t\t\t\tpara.Default = parseDefault(dict.default, dict.creatorType);\n\t\t\tpara.DisplayIndex = i + 1;\n\t\t}\n\t\treturn para;\n\t});\n}\n\ninterface IDocTags {\n\tdefault?: string;\n\tcreatorType?: string;\n\tsummary?: string;\n}\n\nfunction getTagDict(tags: any): IDocTags {\n\tlet dict = {};\n\ttags.forEach((tag) => {\n\t\tdict[tag.tagName.text] = tag.comment;\n\t});\n\treturn dict;\n}\n\nfunction findParametersInterfaceInFiles(\n\tprogram: ts.Program,\n\tfileList: string[],\n\tname: string,\n): ts.InterfaceDeclaration | undefined {\n\tfor (const file of fileList) {\n\t\tconst sourceFile = program.getSourceFile(file);\n\n\t\tif (sourceFile === undefined) {\n\t\t\tthrow new Error(\n\t\t\t\t`Expected a source file to exist for file name \"${file}\"`,\n\t\t\t);\n\t\t}\n\n\t\tlet interfaceDeclaration: ts.InterfaceDeclaration | undefined;\n\n\t\tts.forEachChild(sourceFile, (node) => {\n\t\t\tinterfaceDeclaration = findParametersInterface(node, name);\n\n\t\t\treturn interfaceDeclaration !== undefined;\n\t\t});\n\n\t\tif (interfaceDeclaration !== undefined) {\n\t\t\treturn interfaceDeclaration;\n\t\t}\n\t}\n\n\treturn undefined;\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 extract(location: PackageLocation, ignore: string[] = []) {\n\tconst files = getPackageTypescriptFiles(location);\n\tconst filtered = files.filter((path) => {\n\t\treturn !ignore.some((suffix) => path.endsWith(suffix));\n\t});\n\tlet arr = new Array<CreatorIndexEntry>();\n\n\tlet program = ts.createProgram(filtered, { allowJs: true });\n\tprogram.getTypeChecker();\n\tfiltered.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\t// Loop through the root AST nodes of the file\n\t\tts.forEachChild(sourceFile!, (node) => {\n\t\t\tconst evalNode = findEvaluatorNode(node);\n\n\t\t\tif (evalNode === undefined) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet moduleName = getModuleName(node);\n\n\t\t\tif (evalNode.name === undefined) {\n\t\t\t\tthrow new Error(`Expected evaluator class to have a name`);\n\t\t\t}\n\n\t\t\tconst name = moduleName + \".\" + evalNode.name.getText();\n\n\t\t\tif (name.length > 45)\n\t\t\t\tthrow new Error(`Package name length >45 '${name}'`);\n\n\t\t\tlet para = getParameter(evalNode);\n\t\t\tlet paraName = (para?.type as any).typeName.getText();\n\t\t\tlet interfac = findParametersInterfaceInFiles(\n\t\t\t\tprogram,\n\t\t\t\tfiltered,\n\t\t\t\tparaName,\n\t\t\t);\n\n\t\t\tif (interfac === undefined) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Failed to find parameters type declaration for evaluator ${evalNode.name.getText()}`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst obj: CreatorIndexEntry = {\n\t\t\t\tName: name,\n\t\t\t\tParameters: [],\n\t\t\t\tType: \"Evaluator\",\n\t\t\t};\n\n\t\t\tlet rawDocTags = ts.getJSDocTags(evalNode);\n\t\t\tif (rawDocTags.length) {\n\t\t\t\tlet dict = getTagDict(rawDocTags);\n\t\t\t\tif (dict.summary) obj.Description = dict.summary;\n\t\t\t\tif (dict.creatorType)\n\t\t\t\t\tobj.Type = dict.creatorType as \"Interactor\" | \"Evaluator\";\n\t\t\t}\n\n\t\t\tobj.Parameters = genParameters(interfac);\n\n\t\t\tarr.push(obj);\n\t\t});\n\t});\n\n\twritePackageCreatorIndex(location, arr);\n}\n"],"names":["findTsNode","node","callback","result","ts","forEachChild","child","capitalizeFirstLetter","string","charAt","toUpperCase","slice","parseDefault","value","type","uType","parseFloat","parseInt","replace","findEvaluatorNode","isModuleDeclaration","body","classDeclaration","_child$heritageClause","isClassDeclaration","isEvaluator","heritageClauses","some","clause","token","SyntaxKind","ExtendsKeyword","types","getText","includes","getParameter","evaluatorNode","_evaluatorNode$member","memb","members","find","member","_member$name","name","toLowerCase","isMethodDeclaration","parameters","para","findParametersInterface","interfaceName","interfaceDeclaration","isInterfaceDeclaration","undefined","getModuleName","sourceFile","fullName","packageB","genParameters","interfac","map","i","Name","length","Error","rawDocTags","getJSDocTags","dict","getTagDict","summary","Description","creatorType","Type","default","Default","DisplayIndex","tags","forEach","tag","tagName","text","comment","findParametersInterfaceInFiles","program","fileList","file","getSourceFile","extract","location","ignore","files","getPackageTypescriptFiles","filtered","filter","path","suffix","endsWith","arr","Array","createProgram","allowJs","getTypeChecker","evalNode","moduleName","paraName","typeName","obj","Parameters","push","writePackageCreatorIndex"],"mappings":"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"}
@@ -2,20 +2,183 @@ import * as path from 'path';
2
2
  import * as fs from 'fs';
3
3
  import { pipeline } from 'stream/promises';
4
4
  import { execSync } from 'child_process';
5
- import { logPackageMessage } from '../../lib/log.mjs';
6
- import { readPackageCreatorManifest, parseCreatorPackageName, getPackageReleasesDirectory } from '../../lib/package.mjs';
7
- import { readWorkspaceNpmManifest, getWorkspaceOutputPath } from '../../lib/workspace.mjs';
8
- import { getVersionInformationFromGit } from '../../lib/git.mjs';
9
- import { getWorkspaceBannerText } from '../../lib/banner.mjs';
10
- import { parseVersionFromString, parseVersionFromNumericVersion } from '../../lib/parseVersion.mjs';
11
- import { getVersionFileHandler } from '../../lib/versionFile.mjs';
12
- import { uploadPackage, getExistingPackages, startSession, closeSession } from '../../lib/assetService.mjs';
13
- import { isErrorENOENT } from '../../lib/error.mjs';
14
- import { determineWorkspaceIGLibraries } from '../../lib/dependencies.mjs';
15
- import { readPublishedPackageNpmManifest, readPublishedPackageCreatorManifest } from '../../lib/publishedPackage.mjs';
16
- import { PackageVersion } from '../../lib/packageVersion.mjs';
17
- import { buildFolders } from '../build/index.mjs';
18
- import { buildArchiveFromPackage, buildArchiveFromPublishedPackage } from './zip.mjs';
5
+ import { r as readPublishedPackageCreatorIndex, d as determineWorkspaceIGLibraries, a as readPublishedPackageNpmManifest, b as readPublishedPackageCreatorManifest } from './dependencies-227aca50.js';
6
+ import { P as PACKAGE_FILE, I as INDEX_FILE, p as parseCreatorPackageName, g as getWorkspaceOutputPath, r as readPackageCreatorManifest, w as writePackageCreatorManifest, a as readPackageAnimationList, i as isErrorENOENT, b as readPackageCreatorIndex, c as readWorkspaceNpmManifest, u as uploadPackage, d as getPackageReleasesDirectory, e as getExistingPackages, s as startSession, f as closeSession } from './cli-5332deff.js';
7
+ import { l as logPackageMessage, b as buildFolders } from './index-92b6ba5c.js';
8
+ import 'write-pkg';
9
+ import 'glob';
10
+ import 'node:path';
11
+ import 'node:fs';
12
+ import { g as getVersionFileHandler, p as parseVersionFromString, a as getVersionInformationFromGit, b as getWorkspaceBannerText, c as parseVersionFromNumericVersion, P as PackageVersion } from './versionFile-b3a65dc8.js';
13
+ import Ajv from 'ajv';
14
+ import axios from 'axios';
15
+ import JSZip from 'jszip';
16
+ import * as terser from 'terser';
17
+ import 'resolve';
18
+ import 'update-notifier';
19
+ import 'yargs/yargs';
20
+ import 'url';
21
+ import 'assert';
22
+ import 'events';
23
+ import 'util';
24
+ import 'inquirer';
25
+ import 'typescript';
26
+ import 'typedoc';
27
+ import 'simple-git';
28
+
29
+ const buildArchiveFromPublishedPackage = (location, manifest, creatorPackage) => {
30
+ const archive = new JSZip();
31
+ archive.file(PACKAGE_FILE, JSON.stringify(creatorPackage, null, 2));
32
+ const index = readPublishedPackageCreatorIndex(location);
33
+ if (index !== undefined) {
34
+ archive.file(INDEX_FILE, JSON.stringify(index, null, 2));
35
+ }
36
+ archive.file(manifest.main, fs.createReadStream(path.join(location.path, manifest.main)));
37
+ return archive;
38
+ };
39
+ let validateSchema;
40
+ const runtimeScripts = ["Interactor", "Core", "Mixed"];
41
+ const notRuntimeScripts = ["Context", "Evaluator"];
42
+ const buildArchiveFromPackage = async (workspaceLocation, packageLocation, data) => {
43
+ const {
44
+ domain,
45
+ subdomain
46
+ } = parseCreatorPackageName(data);
47
+ const logStep = step => logPackageMessage(data.Package, step);
48
+ if (validateSchema === undefined) {
49
+ validateSchema = await axios.get("https://archive.intelligentgraphics.biz/schemas/gfx/animation.json").then(({
50
+ data
51
+ }) => new Ajv({
52
+ coerceTypes: true,
53
+ allErrors: true,
54
+ removeAdditional: true,
55
+ useDefaults: "empty",
56
+ validateSchema: "log"
57
+ }).compile(data));
58
+ }
59
+ const libFilePath = path.join(getWorkspaceOutputPath(workspaceLocation), `${data.Package}.min.js`);
60
+ const scriptDirectories = [packageLocation.path, packageLocation.scriptsDir];
61
+ if (subdomain === "GFX.Standard") {
62
+ logStep(`Including Images folder`);
63
+ scriptDirectories.push(path.join(packageLocation.path, "Images"));
64
+ }
65
+ const manifest = readPackageCreatorManifest(packageLocation);
66
+ if (manifest !== undefined) {
67
+ if (manifest.RunTime && notRuntimeScripts.includes(manifest.Type)) {
68
+ logStep("Setting script RunTime to false because of script type");
69
+ writePackageCreatorManifest(packageLocation, {
70
+ ...manifest,
71
+ RunTime: false
72
+ });
73
+ } else if (!manifest.RunTime && runtimeScripts.includes(manifest.Type)) {
74
+ logStep("Setting script RunTime to true because of script type");
75
+ writePackageCreatorManifest(packageLocation, {
76
+ ...manifest,
77
+ RunTime: true
78
+ });
79
+ }
80
+ }
81
+
82
+ // if (index === undefined) {
83
+ // throw new Error(
84
+ // `Could not find an "${INDEX_FILE}" file in "${primaryScriptDir}"`,
85
+ // );
86
+ // }
87
+
88
+ const animations = new Map();
89
+ for (const scriptFilePath of readPackageAnimationList(packageLocation)) {
90
+ const content = fs.readFileSync(scriptFilePath, {
91
+ encoding: "utf8"
92
+ });
93
+ let data;
94
+ try {
95
+ data = JSON.parse(content);
96
+ } catch (err) {
97
+ const relativePath = path.relative(workspaceLocation.path, scriptFilePath);
98
+ if (err instanceof SyntaxError) {
99
+ throw new Error(`Encountered invalid syntax in file "${relativePath}": ${String(err)}`);
100
+ }
101
+ throw new Error(`Encountered an unexpected error while parsing animation json file at path "${relativePath}"`, {
102
+ cause: err
103
+ });
104
+ }
105
+ validateSchema(data);
106
+ animations.set(data.Id, JSON.stringify(data));
107
+ }
108
+ let libFile;
109
+ try {
110
+ libFile = fs.readFileSync(libFilePath, {
111
+ encoding: "utf8"
112
+ });
113
+ } catch (err) {
114
+ if (!isErrorENOENT(err)) {
115
+ throw err;
116
+ }
117
+ }
118
+ if (libFile === undefined) {
119
+ if (animations.size === 0) {
120
+ throw new Error(`Could not find a javascript file at "${libFilePath}".
121
+ Packaging without a javascript file is only allowed when animation json files are available`);
122
+ }
123
+ }
124
+ const archive = new JSZip();
125
+ let library = "";
126
+ if (libFile) {
127
+ library = libFile;
128
+ }
129
+ if (!library) {
130
+ const date = new Date(Date.now());
131
+ library = `/* This file is part of the ${domain} Data Packages.
132
+ * Copyright (C) ${date.getFullYear()} intelligentgraphics. All Rights Reserved. */`;
133
+ }
134
+ if (animations.size > 0) {
135
+ const scopeParts = data.Scope.split(".");
136
+ const scope = data.Scope;
137
+ library += createNamespace(scopeParts);
138
+ for (const [name, data] of animations) {
139
+ library += `${scope}.${name} = ` + data + ";";
140
+ logPackageMessage(manifest.Package, `Added animation ${scope}.${name}`);
141
+ }
142
+ }
143
+ const minifyResult = await terser.minify(library, {
144
+ ecma: 5
145
+ });
146
+ archive.file(`${data.Package}.js`, minifyResult.code);
147
+ archive.file(PACKAGE_FILE, JSON.stringify(data, null, 2));
148
+ const creatorIndex = readPackageCreatorIndex(packageLocation);
149
+ if (creatorIndex !== undefined) {
150
+ archive.file(INDEX_FILE, JSON.stringify(creatorIndex, null, 2));
151
+ }
152
+ for (const directory of scriptDirectories) {
153
+ try {
154
+ for (const file of fs.readdirSync(directory)) {
155
+ const {
156
+ ext
157
+ } = path.parse(file);
158
+ switch (ext) {
159
+ case ".png":
160
+ case ".jpeg":
161
+ case ".jpg":
162
+ break;
163
+ default:
164
+ continue;
165
+ }
166
+ archive.file(file, fs.createReadStream(path.join(directory, file)));
167
+ }
168
+ } catch (err) {
169
+ console.error(`Script directory "${directory}" does not exist`);
170
+ }
171
+ }
172
+ return archive;
173
+ };
174
+ const createNamespace = parts => {
175
+ let code = `var ${parts[0]};`;
176
+ for (let index = 0; index < parts.length; index++) {
177
+ const path = parts.slice(0, index + 1).join(".");
178
+ code += `\n(${path} = ${path} || {});`;
179
+ }
180
+ return code;
181
+ };
19
182
 
20
183
  const releaseFolder = async options => {
21
184
  const workspace = options.workspace;
@@ -110,6 +273,23 @@ const releaseFolder = async options => {
110
273
  throw err;
111
274
  }
112
275
  }
276
+ if (readPackageAnimationList(location).length > 0) {
277
+ var _workspaceManifest$de;
278
+ const workspaceManifest = readWorkspaceNpmManifest(workspace);
279
+ if (!((_workspaceManifest$de = workspaceManifest.dependencies) !== null && _workspaceManifest$de !== void 0 && _workspaceManifest$de["@intelligentgraphics/3d.ig.gfx.standard"])) {
280
+ const install = await options.prompter.confirm(`Animation.json files require the library 'IG.GFX.Standard' to be available, but it is not registered as a dependency. Do you want to install it now?`);
281
+ if (install) {
282
+ execSync(`npm install @intelligentgraphics/3d.ig.gfx.standard`, {
283
+ encoding: "utf-8",
284
+ cwd: workspace.path,
285
+ stdio: "inherit"
286
+ });
287
+ execSync(`npm run postinstall`, {
288
+ cwd: workspace.path
289
+ });
290
+ }
291
+ }
292
+ }
113
293
  const archive = await buildArchiveFromPackage(workspace, location, packageDescription);
114
294
  const zipOutputStream = fs.createWriteStream(zipFilePath);
115
295
  await pipeline(archive.generateNodeStream(), zipOutputStream);
@@ -127,7 +307,9 @@ const releaseFolder = async options => {
127
307
  authentication: options.authentication
128
308
  });
129
309
  try {
130
- await ensureRequiredVersions(workspace, packageDescription, sessionManager, options.prompter);
310
+ if (!options.skipDependencies) {
311
+ await ensureRequiredVersions(workspace, packageDescription, sessionManager, options.prompter);
312
+ }
131
313
  logPackageMessage(packageDescription.Package, `Uploading package to ${publishDomain}.${publishSubdomain}`);
132
314
  await uploadPackage(sessionManager.getTargetSession(), assetServerPackageDetails, zipFilePath);
133
315
  } finally {
@@ -209,7 +391,7 @@ const ensureRequiredVersions = async (workspaceLocation, creatorPackage, session
209
391
  const validInBasics = uploadedPackageInBasics !== undefined && !uploadedPackageInBasics.version.isLesserThan(libraryVersion);
210
392
  const validInTarget = uploadedPackageInTarget !== undefined && !uploadedPackageInTarget.version.isLesserThan(libraryVersion);
211
393
  if (validInBasics || validInTarget) {
212
- if (targetSession.subDomain !== "Basics" && (uploadedPackageInBasics !== undefined || uploadedPackageInTarget !== undefined)) {
394
+ if (targetSession.subDomain !== "Basics" && uploadedPackageInBasics !== undefined && uploadedPackageInTarget !== undefined) {
213
395
  logPackageMessage(creatorPackage.Package, `Package ${libraryCreatorPackage.Package} is uploaded both for Basics and ${targetSession.subDomain}. The package within ${targetSession.subDomain} will be used.`);
214
396
  }
215
397
  continue;
@@ -295,4 +477,4 @@ const createSessionManager = async params => {
295
477
  };
296
478
 
297
479
  export { releaseFolder };
298
- //# sourceMappingURL=index.mjs.map
480
+ //# sourceMappingURL=index-5d595f56.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-5d595f56.js","sources":["../src/commands/publish/zip.ts","../src/commands/publish/index.ts"],"sourcesContent":["import Ajv, { ValidateFunction } from \"ajv\";\nimport axios from \"axios\";\nimport JSZip from \"jszip\";\nimport * as path from \"path\";\nimport * as fs from \"fs\";\nimport * as terser from \"terser\";\n\nimport { isErrorENOENT } from \"../../lib/error\";\nimport { logPackageMessage } from \"../../lib/log\";\nimport {\n\tCreatorPackage,\n\treadPackageCreatorManifest,\n\twritePackageCreatorManifest,\n\treadPackageAnimationList,\n\treadPackageCreatorIndex,\n\tparseCreatorPackageName,\n\tPackageLocation,\n\tPackageNpmManifest,\n\tINDEX_FILE,\n\tPACKAGE_FILE,\n} from \"../../lib/package\";\nimport { getWorkspaceOutputPath, WorkspaceLocation } from \"../../lib/workspace\";\nimport {\n\tPublishedPackageLocation,\n\treadPublishedPackageCreatorIndex,\n} from \"../../lib/publishedPackage\";\n\nexport const buildArchiveFromPublishedPackage = (\n\tlocation: PublishedPackageLocation,\n\tmanifest: PackageNpmManifest,\n\tcreatorPackage: CreatorPackage,\n) => {\n\tconst archive = new JSZip();\n\n\tarchive.file(PACKAGE_FILE, JSON.stringify(creatorPackage, null, 2));\n\n\tconst index = readPublishedPackageCreatorIndex(location);\n\n\tif (index !== undefined) {\n\t\tarchive.file(INDEX_FILE, JSON.stringify(index, null, 2));\n\t}\n\n\tarchive.file(\n\t\tmanifest.main,\n\t\tfs.createReadStream(path.join(location.path, manifest.main)),\n\t);\n\n\treturn archive;\n};\n\nlet validateSchema: ValidateFunction | undefined;\n\nconst runtimeScripts: CreatorPackage[\"Type\"][] = [\n\t\"Interactor\",\n\t\"Core\",\n\t\"Mixed\",\n];\n\nconst notRuntimeScripts: CreatorPackage[\"Type\"][] = [\"Context\", \"Evaluator\"];\n\nexport const buildArchiveFromPackage = async (\n\tworkspaceLocation: WorkspaceLocation,\n\tpackageLocation: PackageLocation,\n\tdata: CreatorPackage,\n) => {\n\tconst { domain, subdomain } = parseCreatorPackageName(data);\n\n\tconst logStep = (step: string) => logPackageMessage(data.Package, step);\n\n\tif (validateSchema === undefined) {\n\t\tvalidateSchema = await axios\n\t\t\t.get(\n\t\t\t\t\"https://archive.intelligentgraphics.biz/schemas/gfx/animation.json\",\n\t\t\t)\n\t\t\t.then(({ data }) =>\n\t\t\t\tnew Ajv({\n\t\t\t\t\tcoerceTypes: true,\n\t\t\t\t\tallErrors: true,\n\t\t\t\t\tremoveAdditional: true,\n\t\t\t\t\tuseDefaults: \"empty\",\n\t\t\t\t\tvalidateSchema: \"log\",\n\t\t\t\t}).compile(data),\n\t\t\t);\n\t}\n\n\tconst libFilePath = path.join(\n\t\tgetWorkspaceOutputPath(workspaceLocation),\n\t\t`${data.Package}.min.js`,\n\t);\n\n\tconst scriptDirectories: string[] = [\n\t\tpackageLocation.path,\n\t\tpackageLocation.scriptsDir,\n\t];\n\n\tif (subdomain === \"GFX.Standard\") {\n\t\tlogStep(`Including Images folder`);\n\t\tscriptDirectories.push(path.join(packageLocation.path, \"Images\"));\n\t}\n\n\tconst manifest = readPackageCreatorManifest(packageLocation);\n\n\tif (manifest !== undefined) {\n\t\tif (manifest.RunTime && notRuntimeScripts.includes(manifest.Type)) {\n\t\t\tlogStep(\"Setting script RunTime to false because of script type\");\n\t\t\twritePackageCreatorManifest(packageLocation, {\n\t\t\t\t...manifest,\n\t\t\t\tRunTime: false,\n\t\t\t});\n\t\t} else if (\n\t\t\t!manifest.RunTime &&\n\t\t\truntimeScripts.includes(manifest.Type)\n\t\t) {\n\t\t\tlogStep(\"Setting script RunTime to true because of script type\");\n\t\t\twritePackageCreatorManifest(packageLocation, {\n\t\t\t\t...manifest,\n\t\t\t\tRunTime: true,\n\t\t\t});\n\t\t}\n\t}\n\n\t// if (index === undefined) {\n\t// \tthrow new Error(\n\t// \t\t`Could not find an \"${INDEX_FILE}\" file in \"${primaryScriptDir}\"`,\n\t// \t);\n\t// }\n\n\tconst animations = new Map<string, string>();\n\n\tfor (const scriptFilePath of readPackageAnimationList(packageLocation)) {\n\t\tconst content = fs.readFileSync(scriptFilePath, { encoding: \"utf8\" })!;\n\n\t\tlet data: { Id: string };\n\n\t\ttry {\n\t\t\tdata = JSON.parse(content);\n\t\t} catch (err) {\n\t\t\tconst relativePath = path.relative(\n\t\t\t\tworkspaceLocation.path,\n\t\t\t\tscriptFilePath,\n\t\t\t);\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\tvalidateSchema!(data);\n\n\t\tanimations.set(data.Id, JSON.stringify(data));\n\t}\n\n\tlet libFile: string | undefined;\n\n\ttry {\n\t\tlibFile = fs.readFileSync(libFilePath, { encoding: \"utf8\" });\n\t} catch (err) {\n\t\tif (!isErrorENOENT(err)) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\n\tif (libFile === undefined) {\n\t\tif (animations.size === 0) {\n\t\t\tthrow new Error(`Could not find a javascript file at \"${libFilePath}\".\nPackaging without a javascript file is only allowed when animation json files are available`);\n\t\t}\n\t}\n\n\tconst archive = new JSZip();\n\n\tlet library: string = \"\";\n\n\tif (libFile) {\n\t\tlibrary = libFile;\n\t}\n\n\tif (!library) {\n\t\tconst date = new Date(Date.now());\n\t\tlibrary = `/* This file is part of the ${domain} Data Packages.\n\t\t* Copyright (C) ${date.getFullYear()} intelligentgraphics. All Rights Reserved. */`;\n\t}\n\n\tif (animations.size > 0) {\n\t\tconst scopeParts = data.Scope.split(\".\");\n\t\tconst scope = data.Scope;\n\n\t\tlibrary += createNamespace(scopeParts);\n\n\t\tfor (const [name, data] of animations) {\n\t\t\tlibrary += `${scope}.${name} = ` + data + \";\";\n\t\t\tlogPackageMessage(\n\t\t\t\tmanifest.Package,\n\t\t\t\t`Added animation ${scope}.${name}`,\n\t\t\t);\n\t\t}\n\t}\n\n\tconst minifyResult = await terser.minify(library, { ecma: 5 });\n\n\tarchive.file(`${data.Package}.js`, minifyResult.code!);\n\tarchive.file(PACKAGE_FILE, JSON.stringify(data, null, 2));\n\n\tconst creatorIndex = readPackageCreatorIndex(packageLocation);\n\n\tif (creatorIndex !== undefined) {\n\t\tarchive.file(INDEX_FILE, JSON.stringify(creatorIndex, null, 2));\n\t}\n\n\tfor (const directory of scriptDirectories) {\n\t\ttry {\n\t\t\tfor (const file of fs.readdirSync(directory)) {\n\t\t\t\tconst { ext } = path.parse(file);\n\n\t\t\t\tswitch (ext) {\n\t\t\t\t\tcase \".png\":\n\t\t\t\t\tcase \".jpeg\":\n\t\t\t\t\tcase \".jpg\":\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tarchive.file(\n\t\t\t\t\tfile,\n\t\t\t\t\tfs.createReadStream(path.join(directory, file)),\n\t\t\t\t);\n\t\t\t}\n\t\t} catch (err) {\n\t\t\tconsole.error(`Script directory \"${directory}\" does not exist`);\n\t\t}\n\t}\n\n\treturn archive;\n};\n\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","import * as path from \"path\";\nimport * as fs from \"fs\";\nimport { pipeline } from \"stream/promises\";\nimport { execSync } from \"child_process\";\n\nimport { AssetService } from \"@intelligentgraphics/ig.gfx.tools.core\";\n\nimport { logPackageMessage } from \"../../lib/log\";\nimport {\n\tCreatorPackage,\n\tgetPackageReleasesDirectory,\n\tPackageLocation,\n\tparseCreatorPackageName,\n\treadPackageAnimationList,\n\treadPackageCreatorManifest,\n} from \"../../lib/package\";\nimport {\n\tgetWorkspaceOutputPath,\n\treadWorkspaceNpmManifest,\n\tWorkspaceLocation,\n\twriteWorkspaceNpmManifest,\n} from \"../../lib/workspace\";\nimport { getVersionInformationFromGit } from \"../../lib/git\";\nimport { getWorkspaceBannerText } from \"../../lib/banner\";\nimport {\n\tparseVersionFromNumericVersion,\n\tparseVersionFromString,\n} from \"../../lib/parseVersion\";\nimport { getVersionFileHandler } from \"../../lib/versionFile\";\nimport { isErrorENOENT } from \"../../lib/error\";\nimport { determineWorkspaceIGLibraries } from \"../../lib/dependencies\";\nimport {\n\treadPublishedPackageCreatorManifest,\n\treadPublishedPackageNpmManifest,\n} from \"../../lib/publishedPackage\";\nimport { Prompter } from \"../../lib/prompter\";\nimport { PackageVersion } from \"../../lib/packageVersion\";\n\nimport { BuildFoldersOptions, buildFolders } from \"../build\";\nimport {\n\tbuildArchiveFromPackage,\n\tbuildArchiveFromPublishedPackage,\n} from \"./zip\";\n\nexport interface ReleaseFolderOptions\n\textends Omit<\n\t\tBuildFoldersOptions,\n\t\t\"skipPackagesWithoutTsFiles\" | \"banner\" | \"packages\"\n\t> {\n\tdirectory: PackageLocation;\n\tnoUpload: boolean;\n\tnewVersion: string;\n\tdomain?: string;\n\tsubdomain?: string;\n\taddress?: string;\n\tservice: string;\n\tauthentication?: AssetService.Authentication;\n\tpushOnly: boolean;\n\tbanner?: boolean;\n\tprompter: Prompter;\n\tskipDependencies?: boolean;\n}\n\nexport const releaseFolder = async (options: ReleaseFolderOptions) => {\n\tconst workspace = options.workspace;\n\tconst location = options.directory;\n\n\tconst { write: writeVersionFile, reset: resetVersionFile } =\n\t\tgetVersionFileHandler(location);\n\n\tconst packageDescription = readPackageCreatorManifest(location);\n\tconst fullPackageName = packageDescription.Package;\n\tconst { domain, subdomain } = parseCreatorPackageName(packageDescription);\n\n\tconst publishDomain = options.domain ?? domain;\n\tconst publishSubdomain = options.subdomain ?? subdomain;\n\n\tconst sharedPackageJson = readWorkspaceNpmManifest(workspace);\n\n\tlet newVersion: PackageVersion;\n\ttry {\n\t\tnewVersion = parseVersionFromString(options.newVersion);\n\t} catch (err) {\n\t\tthrow new Error(`Please enter a version in this format 1.0.0.100`);\n\t}\n\n\tif (newVersion.buildNumber < 100) {\n\t\tnewVersion.preRelease = {\n\t\t\ttype: \"beta\",\n\t\t\tversion: newVersion.buildNumber,\n\t\t};\n\t} else if (newVersion.buildNumber > 100) {\n\t\tnewVersion.preRelease = {\n\t\t\ttype: \"patch\",\n\t\t\tversion: newVersion.buildNumber - 100,\n\t\t};\n\t}\n\n\tif (sharedPackageJson !== undefined) {\n\t\tlogPackageMessage(\n\t\t\tpackageDescription.Package,\n\t\t\t`Running npm install to make sure all dependencies are up to date`,\n\t\t);\n\t\texecSync(`npm install`, { encoding: \"utf-8\", cwd: workspace.path });\n\t}\n\n\tconst binDir = getWorkspaceOutputPath(workspace);\n\tfs.mkdirSync(binDir, { recursive: true });\n\n\tlet assetServerPackageDetails: AssetService.UploadPackageDetails;\n\n\tlet packageNameWithVersion: string;\n\n\t{\n\t\tconst versionWithoutPrelease = newVersion.clone();\n\t\tversionWithoutPrelease.preRelease = undefined;\n\t\tconst newVersionString = versionWithoutPrelease.toVersionString({\n\t\t\tbuildNumber: true,\n\t\t});\n\t\tpackageNameWithVersion = `${packageDescription.Package}_${newVersionString}`;\n\n\t\tassetServerPackageDetails = {\n\t\t\tname: packageDescription.Package,\n\t\t\tversion: newVersionString,\n\t\t};\n\t}\n\n\tconst zipFilePath = path.join(binDir, packageNameWithVersion + \".zip\");\n\n\ttry {\n\t\tif (options.pushOnly) {\n\t\t\tif (!fs.existsSync(zipFilePath)) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Expected a zip file to exist at path ${zipFilePath} since pushOnly is specified`,\n\t\t\t\t);\n\t\t\t}\n\t\t} else {\n\t\t\tconst gitVersionInformation = await getVersionInformationFromGit(\n\t\t\t\tworkspace,\n\t\t\t\tlocation,\n\t\t\t);\n\n\t\t\twriteVersionFile(fullPackageName, newVersion);\n\n\t\t\tconst bannerText =\n\t\t\t\tsharedPackageJson !== undefined\n\t\t\t\t\t? getWorkspaceBannerText(sharedPackageJson)\n\t\t\t\t\t: undefined;\n\n\t\t\tawait buildFolders({\n\t\t\t\t...options,\n\t\t\t\tpackages: [location],\n\t\t\t\tskipPackagesWithoutTsFiles: true,\n\t\t\t\tbanner: options.banner\n\t\t\t\t\t? {\n\t\t\t\t\t\t\ttext: bannerText,\n\t\t\t\t\t\t\tcommit: gitVersionInformation.commit,\n\t\t\t\t\t\t\tcommitDirty: gitVersionInformation.dirty,\n\t\t\t\t\t\t\tversion: newVersion.toVersionString({\n\t\t\t\t\t\t\t\tbuildNumber: true,\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\tdate: new Date(Date.now()),\n\t\t\t\t\t\t\t// gitVersionInformation.commitDate\n\t\t\t\t\t\t\t// \t? new Date(gitVersionInformation.commitDate)\n\t\t\t\t\t\t\t// \t: new Date(Date.now()),\n\t\t\t\t\t }\n\t\t\t\t\t: undefined,\n\t\t\t});\n\n\t\t\tnewVersion.preRelease = undefined;\n\n\t\t\ttry {\n\t\t\t\tfs.rmSync(zipFilePath);\n\t\t\t} catch (err) {\n\t\t\t\tif (!isErrorENOENT(err)) {\n\t\t\t\t\tthrow err;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (readPackageAnimationList(location).length > 0) {\n\t\t\t\tconst workspaceManifest = readWorkspaceNpmManifest(workspace);\n\n\t\t\t\tif (\n\t\t\t\t\t!workspaceManifest.dependencies?.[\n\t\t\t\t\t\t\"@intelligentgraphics/3d.ig.gfx.standard\"\n\t\t\t\t\t]\n\t\t\t\t) {\n\t\t\t\t\tconst install = await options.prompter.confirm(\n\t\t\t\t\t\t`Animation.json files require the library 'IG.GFX.Standard' to be available, but it is not registered as a dependency. Do you want to install it now?`,\n\t\t\t\t\t);\n\n\t\t\t\t\tif (install) {\n\t\t\t\t\t\texecSync(\n\t\t\t\t\t\t\t`npm install @intelligentgraphics/3d.ig.gfx.standard`,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tencoding: \"utf-8\",\n\t\t\t\t\t\t\t\tcwd: workspace.path,\n\t\t\t\t\t\t\t\tstdio: \"inherit\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\texecSync(`npm run postinstall`, {\n\t\t\t\t\t\t\tcwd: workspace.path,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst archive = await buildArchiveFromPackage(\n\t\t\t\tworkspace,\n\t\t\t\tlocation,\n\t\t\t\tpackageDescription,\n\t\t\t);\n\n\t\t\tconst zipOutputStream = fs.createWriteStream(zipFilePath);\n\t\t\tawait pipeline(archive.generateNodeStream(), zipOutputStream);\n\t\t}\n\n\t\tif (!options.noUpload) {\n\t\t\tif (!options.authentication) {\n\t\t\t\tthrow new Error(`Expected authentication to be available`);\n\t\t\t}\n\n\t\t\tlogPackageMessage(\n\t\t\t\tpackageDescription.Package,\n\t\t\t\t`Opening connection to IG.Asset.Server`,\n\t\t\t);\n\n\t\t\tconst sessionManager = await createSessionManager({\n\t\t\t\turl: options.service,\n\t\t\t\taddress: options.address,\n\t\t\t\tdomain: publishDomain,\n\t\t\t\tsubDomain: publishSubdomain,\n\t\t\t\tauthentication: options.authentication,\n\t\t\t});\n\n\t\t\ttry {\n\t\t\t\tif (!options.skipDependencies) {\n\t\t\t\t\tawait ensureRequiredVersions(\n\t\t\t\t\t\tworkspace,\n\t\t\t\t\t\tpackageDescription,\n\t\t\t\t\t\tsessionManager,\n\t\t\t\t\t\toptions.prompter,\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tlogPackageMessage(\n\t\t\t\t\tpackageDescription.Package,\n\t\t\t\t\t`Uploading package to ${publishDomain}.${publishSubdomain}`,\n\t\t\t\t);\n\n\t\t\t\tawait AssetService.uploadPackage(\n\t\t\t\t\tsessionManager.getTargetSession(),\n\t\t\t\t\tassetServerPackageDetails,\n\t\t\t\t\tzipFilePath,\n\t\t\t\t);\n\t\t\t} finally {\n\t\t\t\tawait sessionManager.destroy().catch((err) => {\n\t\t\t\t\tlogPackageMessage(\n\t\t\t\t\t\tpackageDescription.Package,\n\t\t\t\t\t\t`Failed to close IG.Asset.Server session(s): ${err}`,\n\t\t\t\t\t);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t} catch (err) {\n\t\tresetVersionFile();\n\t\tthrow err;\n\t}\n\n\tif (newVersion.buildNumber >= 100 && !options.pushOnly) {\n\t\tlogPackageMessage(fullPackageName, \"Copying zip to releases folder\");\n\n\t\tconst zipFileName = `${packageNameWithVersion}.zip`;\n\t\tconst releasesPath = getPackageReleasesDirectory(location);\n\n\t\tfs.mkdirSync(releasesPath, { recursive: true });\n\t\tfs.copyFileSync(zipFilePath, path.join(releasesPath, zipFileName));\n\t}\n};\n\nconst ensureRequiredVersions = async (\n\tworkspaceLocation: WorkspaceLocation,\n\tcreatorPackage: CreatorPackage,\n\tsessionManager: SessionManager,\n\tprompter: Prompter,\n) => {\n\tinterface UploadedPackage\n\t\textends Omit<AssetService.ExistingPackage, \"version\"> {\n\t\tversion: PackageVersion;\n\t}\n\n\tconst libraries = determineWorkspaceIGLibraries(workspaceLocation);\n\n\t// If there are no libraries, we don't need to check for required versions\n\tif (libraries.length === 0) {\n\t\treturn true;\n\t}\n\n\tconst targetSession = sessionManager.getTargetSession();\n\n\tconst rawUploadedPackages = await AssetService.getExistingPackages(\n\t\ttargetSession,\n\t);\n\n\tconst uploadedPackages = rawUploadedPackages.map(\n\t\t(entry): UploadedPackage => {\n\t\t\tlet version: PackageVersion;\n\n\t\t\ttry {\n\t\t\t\tversion = parseVersionFromNumericVersion(entry.numericVersion);\n\t\t\t} catch (err) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Encountered invalid format for version ${entry.numericVersion}`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (version.buildNumber < 100) {\n\t\t\t\tversion.preRelease = {\n\t\t\t\t\ttype: \"beta\",\n\t\t\t\t\tversion: version.buildNumber,\n\t\t\t\t};\n\t\t\t} else if (version.buildNumber > 100) {\n\t\t\t\tversion.preRelease = {\n\t\t\t\t\ttype: \"patch\",\n\t\t\t\t\tversion: version.buildNumber - 100,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...entry,\n\t\t\t\tversion,\n\t\t\t};\n\t\t},\n\t);\n\n\tfor (const libraryLocation of libraries) {\n\t\tconst libraryManifest =\n\t\t\treadPublishedPackageNpmManifest(libraryLocation);\n\t\tconst libraryCreatorPackage =\n\t\t\treadPublishedPackageCreatorManifest(libraryLocation);\n\n\t\tif (\n\t\t\tlibraryCreatorPackage === undefined ||\n\t\t\tlibraryManifest.main === undefined ||\n\t\t\tlibraryCreatorPackage.Package === creatorPackage.Package\n\t\t) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst libraryVersion = PackageVersion.extractFromLine(\n\t\t\tlibraryManifest.version,\n\t\t);\n\n\t\tif (libraryVersion.preRelease) {\n\t\t\tlibraryVersion.buildNumber = libraryVersion.preRelease.version;\n\t\t\tlibraryVersion.preRelease = undefined;\n\t\t} else {\n\t\t\tlibraryVersion.buildNumber = 100;\n\t\t}\n\n\t\tlet uploadedPackageInBasics: UploadedPackage | undefined;\n\t\tlet uploadedPackageInTarget: UploadedPackage | undefined;\n\n\t\tfor (const uploadedPackage of uploadedPackages) {\n\t\t\tif (uploadedPackage.scope === libraryCreatorPackage.Package) {\n\t\t\t\tif (uploadedPackage.support) {\n\t\t\t\t\tuploadedPackageInBasics = uploadedPackage;\n\t\t\t\t} else {\n\t\t\t\t\tuploadedPackageInTarget = uploadedPackage;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst validInBasics =\n\t\t\tuploadedPackageInBasics !== undefined &&\n\t\t\t!uploadedPackageInBasics.version.isLesserThan(libraryVersion);\n\t\tconst validInTarget =\n\t\t\tuploadedPackageInTarget !== undefined &&\n\t\t\t!uploadedPackageInTarget.version.isLesserThan(libraryVersion);\n\n\t\tif (validInBasics || validInTarget) {\n\t\t\tif (\n\t\t\t\ttargetSession.subDomain !== \"Basics\" &&\n\t\t\t\tuploadedPackageInBasics !== undefined &&\n\t\t\t\tuploadedPackageInTarget !== undefined\n\t\t\t) {\n\t\t\t\tlogPackageMessage(\n\t\t\t\t\tcreatorPackage.Package,\n\t\t\t\t\t`Package ${libraryCreatorPackage.Package} is uploaded both for Basics and ${targetSession.subDomain}. The package within ${targetSession.subDomain} will be used.`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tlogPackageMessage(\n\t\t\tcreatorPackage.Package,\n\t\t\t`Requested at least version ${libraryVersion.toVersionString({\n\t\t\t\tbuildNumber: true,\n\t\t\t})} for package ${libraryCreatorPackage.Package}`,\n\t\t);\n\n\t\tif (targetSession.subDomain !== \"Basics\" && uploadedPackageInTarget) {\n\t\t\tconst version = uploadedPackageInTarget.version.toVersionString({\n\t\t\t\tbuildNumber: true,\n\t\t\t});\n\n\t\t\tlogPackageMessage(\n\t\t\t\tcreatorPackage.Package,\n\t\t\t\t`Found invalid version ${version} for package ${libraryCreatorPackage.Package} in ${targetSession.subDomain}`,\n\t\t\t);\n\t\t}\n\t\tif (uploadedPackageInBasics) {\n\t\t\tconst version = uploadedPackageInBasics.version.toVersionString({\n\t\t\t\tbuildNumber: true,\n\t\t\t});\n\n\t\t\tlet message = `Found invalid version ${version} for package ${libraryCreatorPackage.Package} in Basics`;\n\n\t\t\tif (\n\t\t\t\ttargetSession.subDomain !== \"Basics\" &&\n\t\t\t\tuploadedPackageInTarget\n\t\t\t) {\n\t\t\t\tmessage += `. This version will not be used since the package also exists in ${targetSession.subDomain}`;\n\t\t\t}\n\n\t\t\tlogPackageMessage(creatorPackage.Package, message);\n\t\t}\n\n\t\tconst possibleTargets: string[] = [\"Basics\"];\n\n\t\tif (targetSession.subDomain !== \"Basics\") {\n\t\t\tpossibleTargets.push(targetSession.subDomain);\n\t\t}\n\n\t\tconst uploadTargetScope = await prompter.ask({\n\t\t\tmessage: `Select the scope to upload the required version of ${libraryCreatorPackage.Package} to or select \"skip\" to skip the upload.`,\n\t\t\toptions: [...possibleTargets, \"Skip\"],\n\t\t\tdefault: possibleTargets[0],\n\t\t});\n\n\t\tif (uploadTargetScope === \"Skip\") {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst archive = buildArchiveFromPublishedPackage(\n\t\t\tlibraryLocation,\n\t\t\tlibraryManifest,\n\t\t\tlibraryCreatorPackage,\n\t\t);\n\n\t\tconst newVersionString = libraryVersion.toVersionString({\n\t\t\tbuildNumber: true,\n\t\t});\n\t\tconst packageNameWithVersion = `${libraryCreatorPackage.Package}_${newVersionString}`;\n\n\t\tconst zipFilePath = path.join(\n\t\t\tgetWorkspaceOutputPath(workspaceLocation),\n\t\t\t`${packageNameWithVersion}.zip`,\n\t\t);\n\n\t\ttry {\n\t\t\tfs.rmSync(zipFilePath);\n\t\t} catch (err) {\n\t\t\tif (!isErrorENOENT(err)) {\n\t\t\t\tthrow err;\n\t\t\t}\n\t\t}\n\n\t\tconst zipOutputStream = fs.createWriteStream(zipFilePath);\n\t\tawait pipeline(archive.generateNodeStream(), zipOutputStream);\n\n\t\tconst session =\n\t\t\tuploadTargetScope === \"Basics\"\n\t\t\t\t? await sessionManager.getBasicsSession()\n\t\t\t\t: targetSession;\n\n\t\tlogPackageMessage(\n\t\t\tcreatorPackage.Package,\n\t\t\t`Uploading package ${libraryCreatorPackage.Package} with version ${newVersionString} to ${session.domain}.${session.subDomain}`,\n\t\t);\n\n\t\tawait AssetService.uploadPackage(\n\t\t\tsession,\n\t\t\t{\n\t\t\t\tname: libraryCreatorPackage.Package,\n\t\t\t\tversion: newVersionString,\n\t\t\t},\n\t\t\tzipFilePath,\n\t\t);\n\t}\n};\n\ninterface SessionManager {\n\tgetBasicsSession: () => Promise<AssetService.Session>;\n\tgetTargetSession: () => AssetService.Session;\n\tdestroy: () => Promise<void>;\n}\n\nconst createSessionManager = async (\n\tparams: AssetService.SessionStartParams,\n): Promise<SessionManager> => {\n\tconst targetSession = await AssetService.startSession(params);\n\tlet basicsSession: AssetService.Session | undefined;\n\n\treturn {\n\t\tgetBasicsSession: async () => {\n\t\t\tif (targetSession.subDomain === \"Basics\") {\n\t\t\t\treturn targetSession;\n\t\t\t}\n\n\t\t\tif (basicsSession === undefined) {\n\t\t\t\tbasicsSession = await AssetService.startSession({\n\t\t\t\t\t...params,\n\t\t\t\t\tsubDomain: \"Basics\",\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn basicsSession;\n\t\t},\n\n\t\tgetTargetSession: () => targetSession,\n\n\t\tdestroy: async () => {\n\t\t\tawait AssetService.closeSession(targetSession);\n\n\t\t\tif (basicsSession !== undefined) {\n\t\t\t\tawait AssetService.closeSession(basicsSession);\n\t\t\t}\n\t\t},\n\t};\n};\n"],"names":["buildArchiveFromPublishedPackage","location","manifest","creatorPackage","archive","JSZip","file","PACKAGE_FILE","JSON","stringify","index","readPublishedPackageCreatorIndex","undefined","INDEX_FILE","main","fs","createReadStream","path","join","validateSchema","runtimeScripts","notRuntimeScripts","buildArchiveFromPackage","workspaceLocation","packageLocation","data","domain","subdomain","parseCreatorPackageName","logStep","step","logPackageMessage","Package","axios","get","then","Ajv","coerceTypes","allErrors","removeAdditional","useDefaults","compile","libFilePath","getWorkspaceOutputPath","scriptDirectories","scriptsDir","push","readPackageCreatorManifest","RunTime","includes","Type","writePackageCreatorManifest","animations","Map","scriptFilePath","readPackageAnimationList","content","readFileSync","encoding","parse","err","relativePath","relative","SyntaxError","Error","String","cause","set","Id","libFile","isErrorENOENT","size","library","date","Date","now","getFullYear","scopeParts","Scope","split","scope","createNamespace","name","minifyResult","terser","minify","ecma","code","creatorIndex","readPackageCreatorIndex","directory","readdirSync","ext","console","error","parts","length","slice","releaseFolder","options","workspace","write","writeVersionFile","reset","resetVersionFile","getVersionFileHandler","packageDescription","fullPackageName","publishDomain","publishSubdomain","sharedPackageJson","readWorkspaceNpmManifest","newVersion","parseVersionFromString","buildNumber","preRelease","type","version","execSync","cwd","binDir","mkdirSync","recursive","assetServerPackageDetails","packageNameWithVersion","versionWithoutPrelease","clone","newVersionString","toVersionString","zipFilePath","pushOnly","existsSync","gitVersionInformation","getVersionInformationFromGit","bannerText","getWorkspaceBannerText","buildFolders","packages","skipPackagesWithoutTsFiles","banner","text","commit","commitDirty","dirty","rmSync","_workspaceManifest$de","workspaceManifest","dependencies","install","prompter","confirm","stdio","zipOutputStream","createWriteStream","pipeline","generateNodeStream","noUpload","authentication","sessionManager","createSessionManager","url","service","address","subDomain","skipDependencies","ensureRequiredVersions","AssetService","getTargetSession","destroy","catch","zipFileName","releasesPath","getPackageReleasesDirectory","copyFileSync","libraries","determineWorkspaceIGLibraries","targetSession","rawUploadedPackages","uploadedPackages","map","entry","parseVersionFromNumericVersion","numericVersion","libraryLocation","libraryManifest","readPublishedPackageNpmManifest","libraryCreatorPackage","readPublishedPackageCreatorManifest","libraryVersion","PackageVersion","extractFromLine","uploadedPackageInBasics","uploadedPackageInTarget","uploadedPackage","support","validInBasics","isLesserThan","validInTarget","message","possibleTargets","uploadTargetScope","ask","default","session","getBasicsSession","params","basicsSession"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BO,MAAMA,gCAAgC,GAAGA,CAC/CC,QAAkC,EAClCC,QAA4B,EAC5BC,cAA8B,KAC1B;AACJ,EAAA,MAAMC,OAAO,GAAG,IAAIC,KAAK,EAAE,CAAA;AAE3BD,EAAAA,OAAO,CAACE,IAAI,CAACC,YAAY,EAAEC,IAAI,CAACC,SAAS,CAACN,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;AAEnE,EAAA,MAAMO,KAAK,GAAGC,gCAAgC,CAACV,QAAQ,CAAC,CAAA;EAExD,IAAIS,KAAK,KAAKE,SAAS,EAAE;AACxBR,IAAAA,OAAO,CAACE,IAAI,CAACO,UAAU,EAAEL,IAAI,CAACC,SAAS,CAACC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;AACzD,GAAA;EAEAN,OAAO,CAACE,IAAI,CACXJ,QAAQ,CAACY,IAAI,EACbC,EAAE,CAACC,gBAAgB,CAACC,IAAI,CAACC,IAAI,CAACjB,QAAQ,CAACgB,IAAI,EAAEf,QAAQ,CAACY,IAAI,CAAC,CAAC,CAC5D,CAAA;AAED,EAAA,OAAOV,OAAO,CAAA;AACf,CAAC,CAAA;AAED,IAAIe,cAA4C,CAAA;AAEhD,MAAMC,cAAwC,GAAG,CAChD,YAAY,EACZ,MAAM,EACN,OAAO,CACP,CAAA;AAED,MAAMC,iBAA2C,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;AAErE,MAAMC,uBAAuB,GAAG,OACtCC,iBAAoC,EACpCC,eAAgC,EAChCC,IAAoB,KAChB;EACJ,MAAM;IAAEC,MAAM;AAAEC,IAAAA,SAAAA;AAAU,GAAC,GAAGC,uBAAuB,CAACH,IAAI,CAAC,CAAA;EAE3D,MAAMI,OAAO,GAAIC,IAAY,IAAKC,iBAAiB,CAACN,IAAI,CAACO,OAAO,EAAEF,IAAI,CAAC,CAAA;EAEvE,IAAIX,cAAc,KAAKP,SAAS,EAAE;IACjCO,cAAc,GAAG,MAAMc,KAAK,CAC1BC,GAAG,CACH,oEAAoE,CACpE,CACAC,IAAI,CAAC,CAAC;AAAEV,MAAAA,IAAAA;KAAM,KACd,IAAIW,GAAG,CAAC;AACPC,MAAAA,WAAW,EAAE,IAAI;AACjBC,MAAAA,SAAS,EAAE,IAAI;AACfC,MAAAA,gBAAgB,EAAE,IAAI;AACtBC,MAAAA,WAAW,EAAE,OAAO;AACpBrB,MAAAA,cAAc,EAAE,KAAA;AACjB,KAAC,CAAC,CAACsB,OAAO,CAAChB,IAAI,CAAC,CAChB,CAAA;AACH,GAAA;AAEA,EAAA,MAAMiB,WAAW,GAAGzB,IAAI,CAACC,IAAI,CAC5ByB,sBAAsB,CAACpB,iBAAiB,CAAC,EACxC,CAAEE,EAAAA,IAAI,CAACO,OAAQ,SAAQ,CACxB,CAAA;EAED,MAAMY,iBAA2B,GAAG,CACnCpB,eAAe,CAACP,IAAI,EACpBO,eAAe,CAACqB,UAAU,CAC1B,CAAA;EAED,IAAIlB,SAAS,KAAK,cAAc,EAAE;IACjCE,OAAO,CAAE,yBAAwB,CAAC,CAAA;AAClCe,IAAAA,iBAAiB,CAACE,IAAI,CAAC7B,IAAI,CAACC,IAAI,CAACM,eAAe,CAACP,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAA;AAClE,GAAA;AAEA,EAAA,MAAMf,QAAQ,GAAG6C,0BAA0B,CAACvB,eAAe,CAAC,CAAA;EAE5D,IAAItB,QAAQ,KAAKU,SAAS,EAAE;AAC3B,IAAA,IAAIV,QAAQ,CAAC8C,OAAO,IAAI3B,iBAAiB,CAAC4B,QAAQ,CAAC/C,QAAQ,CAACgD,IAAI,CAAC,EAAE;MAClErB,OAAO,CAAC,wDAAwD,CAAC,CAAA;MACjEsB,2BAA2B,CAAC3B,eAAe,EAAE;AAC5C,QAAA,GAAGtB,QAAQ;AACX8C,QAAAA,OAAO,EAAE,KAAA;AACV,OAAC,CAAC,CAAA;AACH,KAAC,MAAM,IACN,CAAC9C,QAAQ,CAAC8C,OAAO,IACjB5B,cAAc,CAAC6B,QAAQ,CAAC/C,QAAQ,CAACgD,IAAI,CAAC,EACrC;MACDrB,OAAO,CAAC,uDAAuD,CAAC,CAAA;MAChEsB,2BAA2B,CAAC3B,eAAe,EAAE;AAC5C,QAAA,GAAGtB,QAAQ;AACX8C,QAAAA,OAAO,EAAE,IAAA;AACV,OAAC,CAAC,CAAA;AACH,KAAA;AACD,GAAA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,EAAA,MAAMI,UAAU,GAAG,IAAIC,GAAG,EAAkB,CAAA;AAE5C,EAAA,KAAK,MAAMC,cAAc,IAAIC,wBAAwB,CAAC/B,eAAe,CAAC,EAAE;AACvE,IAAA,MAAMgC,OAAO,GAAGzC,EAAE,CAAC0C,YAAY,CAACH,cAAc,EAAE;AAAEI,MAAAA,QAAQ,EAAE,MAAA;AAAO,KAAC,CAAE,CAAA;AAEtE,IAAA,IAAIjC,IAAoB,CAAA;IAExB,IAAI;AACHA,MAAAA,IAAI,GAAGjB,IAAI,CAACmD,KAAK,CAACH,OAAO,CAAC,CAAA;KAC1B,CAAC,OAAOI,GAAG,EAAE;MACb,MAAMC,YAAY,GAAG5C,IAAI,CAAC6C,QAAQ,CACjCvC,iBAAiB,CAACN,IAAI,EACtBqC,cAAc,CACd,CAAA;MAED,IAAIM,GAAG,YAAYG,WAAW,EAAE;QAC/B,MAAM,IAAIC,KAAK,CACb,CAAsCH,oCAAAA,EAAAA,YAAa,CAAKI,GAAAA,EAAAA,MAAM,CAC9DL,GAAG,CACF,CAAA,CAAC,CACH,CAAA;AACF,OAAA;AACA,MAAA,MAAM,IAAII,KAAK,CACb,CAA6EH,2EAAAA,EAAAA,YAAa,GAAE,EAC7F;AACCK,QAAAA,KAAK,EAAEN,GAAAA;AACR,OAAC,CACD,CAAA;AACF,KAAA;IAEAzC,cAAc,CAAEM,IAAI,CAAC,CAAA;AAErB2B,IAAAA,UAAU,CAACe,GAAG,CAAC1C,IAAI,CAAC2C,EAAE,EAAE5D,IAAI,CAACC,SAAS,CAACgB,IAAI,CAAC,CAAC,CAAA;AAC9C,GAAA;AAEA,EAAA,IAAI4C,OAA2B,CAAA;EAE/B,IAAI;AACHA,IAAAA,OAAO,GAAGtD,EAAE,CAAC0C,YAAY,CAACf,WAAW,EAAE;AAAEgB,MAAAA,QAAQ,EAAE,MAAA;AAAO,KAAC,CAAC,CAAA;GAC5D,CAAC,OAAOE,GAAG,EAAE;AACb,IAAA,IAAI,CAACU,aAAa,CAACV,GAAG,CAAC,EAAE;AACxB,MAAA,MAAMA,GAAG,CAAA;AACV,KAAA;AACD,GAAA;EAEA,IAAIS,OAAO,KAAKzD,SAAS,EAAE;AAC1B,IAAA,IAAIwC,UAAU,CAACmB,IAAI,KAAK,CAAC,EAAE;AAC1B,MAAA,MAAM,IAAIP,KAAK,CAAE,CAAA,qCAAA,EAAuCtB,WAAY,CAAA;AACvE,2FAAA,CAA4F,CAAC,CAAA;AAC3F,KAAA;AACD,GAAA;AAEA,EAAA,MAAMtC,OAAO,GAAG,IAAIC,KAAK,EAAE,CAAA;EAE3B,IAAImE,OAAe,GAAG,EAAE,CAAA;AAExB,EAAA,IAAIH,OAAO,EAAE;AACZG,IAAAA,OAAO,GAAGH,OAAO,CAAA;AAClB,GAAA;EAEA,IAAI,CAACG,OAAO,EAAE;IACb,MAAMC,IAAI,GAAG,IAAIC,IAAI,CAACA,IAAI,CAACC,GAAG,EAAE,CAAC,CAAA;IACjCH,OAAO,GAAI,+BAA8B9C,MAAO,CAAA;AAClD,kBAAA,EAAoB+C,IAAI,CAACG,WAAW,EAAG,CAA8C,6CAAA,CAAA,CAAA;AACpF,GAAA;AAEA,EAAA,IAAIxB,UAAU,CAACmB,IAAI,GAAG,CAAC,EAAE;IACxB,MAAMM,UAAU,GAAGpD,IAAI,CAACqD,KAAK,CAACC,KAAK,CAAC,GAAG,CAAC,CAAA;AACxC,IAAA,MAAMC,KAAK,GAAGvD,IAAI,CAACqD,KAAK,CAAA;AAExBN,IAAAA,OAAO,IAAIS,eAAe,CAACJ,UAAU,CAAC,CAAA;IAEtC,KAAK,MAAM,CAACK,IAAI,EAAEzD,IAAI,CAAC,IAAI2B,UAAU,EAAE;MACtCoB,OAAO,IAAK,GAAEQ,KAAM,CAAA,CAAA,EAAGE,IAAK,CAAI,GAAA,CAAA,GAAGzD,IAAI,GAAG,GAAG,CAAA;MAC7CM,iBAAiB,CAChB7B,QAAQ,CAAC8B,OAAO,EACf,mBAAkBgD,KAAM,CAAA,CAAA,EAAGE,IAAK,CAAA,CAAC,CAClC,CAAA;AACF,KAAA;AACD,GAAA;EAEA,MAAMC,YAAY,GAAG,MAAMC,MAAM,CAACC,MAAM,CAACb,OAAO,EAAE;AAAEc,IAAAA,IAAI,EAAE,CAAA;AAAE,GAAC,CAAC,CAAA;AAE9DlF,EAAAA,OAAO,CAACE,IAAI,CAAE,CAAA,EAAEmB,IAAI,CAACO,OAAQ,CAAA,GAAA,CAAI,EAAEmD,YAAY,CAACI,IAAI,CAAE,CAAA;AACtDnF,EAAAA,OAAO,CAACE,IAAI,CAACC,YAAY,EAAEC,IAAI,CAACC,SAAS,CAACgB,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;AAEzD,EAAA,MAAM+D,YAAY,GAAGC,uBAAuB,CAACjE,eAAe,CAAC,CAAA;EAE7D,IAAIgE,YAAY,KAAK5E,SAAS,EAAE;AAC/BR,IAAAA,OAAO,CAACE,IAAI,CAACO,UAAU,EAAEL,IAAI,CAACC,SAAS,CAAC+E,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;AAChE,GAAA;AAEA,EAAA,KAAK,MAAME,SAAS,IAAI9C,iBAAiB,EAAE;IAC1C,IAAI;MACH,KAAK,MAAMtC,IAAI,IAAIS,EAAE,CAAC4E,WAAW,CAACD,SAAS,CAAC,EAAE;QAC7C,MAAM;AAAEE,UAAAA,GAAAA;AAAI,SAAC,GAAG3E,IAAI,CAAC0C,KAAK,CAACrD,IAAI,CAAC,CAAA;AAEhC,QAAA,QAAQsF,GAAG;AACV,UAAA,KAAK,MAAM,CAAA;AACX,UAAA,KAAK,OAAO,CAAA;AACZ,UAAA,KAAK,MAAM;AACV,YAAA,MAAA;AACD,UAAA;AACC,YAAA,SAAA;AAAS,SAAA;AAGXxF,QAAAA,OAAO,CAACE,IAAI,CACXA,IAAI,EACJS,EAAE,CAACC,gBAAgB,CAACC,IAAI,CAACC,IAAI,CAACwE,SAAS,EAAEpF,IAAI,CAAC,CAAC,CAC/C,CAAA;AACF,OAAA;KACA,CAAC,OAAOsD,GAAG,EAAE;AACbiC,MAAAA,OAAO,CAACC,KAAK,CAAE,CAAoBJ,kBAAAA,EAAAA,SAAU,kBAAiB,CAAC,CAAA;AAChE,KAAA;AACD,GAAA;AAEA,EAAA,OAAOtF,OAAO,CAAA;AACf,CAAC,CAAA;AAED,MAAM6E,eAAe,GAAIc,KAAe,IAAK;AAC5C,EAAA,IAAIR,IAAI,GAAI,CAAA,IAAA,EAAMQ,KAAK,CAAC,CAAC,CAAE,CAAE,CAAA,CAAA,CAAA;AAE7B,EAAA,KAAK,IAAIrF,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAGqF,KAAK,CAACC,MAAM,EAAEtF,KAAK,EAAE,EAAE;AAClD,IAAA,MAAMO,IAAI,GAAG8E,KAAK,CAACE,KAAK,CAAC,CAAC,EAAEvF,KAAK,GAAG,CAAC,CAAC,CAACQ,IAAI,CAAC,GAAG,CAAC,CAAA;AAEhDqE,IAAAA,IAAI,IAAK,CAAA,GAAA,EAAKtE,IAAK,CAAA,GAAA,EAAKA,IAAK,CAAS,QAAA,CAAA,CAAA;AACvC,GAAA;AAEA,EAAA,OAAOsE,IAAI,CAAA;AACZ,CAAC;;ACjMYW,MAAAA,aAAa,GAAG,MAAOC,OAA6B,IAAK;AACrE,EAAA,MAAMC,SAAS,GAAGD,OAAO,CAACC,SAAS,CAAA;AACnC,EAAA,MAAMnG,QAAQ,GAAGkG,OAAO,CAACT,SAAS,CAAA;EAElC,MAAM;AAAEW,IAAAA,KAAK,EAAEC,gBAAgB;AAAEC,IAAAA,KAAK,EAAEC,gBAAAA;AAAiB,GAAC,GACzDC,qBAAqB,CAACxG,QAAQ,CAAC,CAAA;AAEhC,EAAA,MAAMyG,kBAAkB,GAAG3D,0BAA0B,CAAC9C,QAAQ,CAAC,CAAA;AAC/D,EAAA,MAAM0G,eAAe,GAAGD,kBAAkB,CAAC1E,OAAO,CAAA;EAClD,MAAM;IAAEN,MAAM;AAAEC,IAAAA,SAAAA;AAAU,GAAC,GAAGC,uBAAuB,CAAC8E,kBAAkB,CAAC,CAAA;AAEzE,EAAA,MAAME,aAAa,GAAGT,OAAO,CAACzE,MAAM,IAAIA,MAAM,CAAA;AAC9C,EAAA,MAAMmF,gBAAgB,GAAGV,OAAO,CAACxE,SAAS,IAAIA,SAAS,CAAA;AAEvD,EAAA,MAAMmF,iBAAiB,GAAGC,wBAAwB,CAACX,SAAS,CAAC,CAAA;AAE7D,EAAA,IAAIY,UAA0B,CAAA;EAC9B,IAAI;AACHA,IAAAA,UAAU,GAAGC,sBAAsB,CAACd,OAAO,CAACa,UAAU,CAAC,CAAA;GACvD,CAAC,OAAOpD,GAAG,EAAE;AACb,IAAA,MAAM,IAAII,KAAK,CAAE,CAAA,+CAAA,CAAgD,CAAC,CAAA;AACnE,GAAA;AAEA,EAAA,IAAIgD,UAAU,CAACE,WAAW,GAAG,GAAG,EAAE;IACjCF,UAAU,CAACG,UAAU,GAAG;AACvBC,MAAAA,IAAI,EAAE,MAAM;MACZC,OAAO,EAAEL,UAAU,CAACE,WAAAA;KACpB,CAAA;AACF,GAAC,MAAM,IAAIF,UAAU,CAACE,WAAW,GAAG,GAAG,EAAE;IACxCF,UAAU,CAACG,UAAU,GAAG;AACvBC,MAAAA,IAAI,EAAE,OAAO;AACbC,MAAAA,OAAO,EAAEL,UAAU,CAACE,WAAW,GAAG,GAAA;KAClC,CAAA;AACF,GAAA;EAEA,IAAIJ,iBAAiB,KAAKlG,SAAS,EAAE;AACpCmB,IAAAA,iBAAiB,CAChB2E,kBAAkB,CAAC1E,OAAO,EACzB,kEAAiE,CAClE,CAAA;IACDsF,QAAQ,CAAE,aAAY,EAAE;AAAE5D,MAAAA,QAAQ,EAAE,OAAO;MAAE6D,GAAG,EAAEnB,SAAS,CAACnF,IAAAA;AAAK,KAAC,CAAC,CAAA;AACpE,GAAA;AAEA,EAAA,MAAMuG,MAAM,GAAG7E,sBAAsB,CAACyD,SAAS,CAAC,CAAA;AAChDrF,EAAAA,EAAE,CAAC0G,SAAS,CAACD,MAAM,EAAE;AAAEE,IAAAA,SAAS,EAAE,IAAA;AAAK,GAAC,CAAC,CAAA;AAEzC,EAAA,IAAIC,yBAA4D,CAAA;AAEhE,EAAA,IAAIC,sBAA8B,CAAA;AAElC,EAAA;AACC,IAAA,MAAMC,sBAAsB,GAAGb,UAAU,CAACc,KAAK,EAAE,CAAA;IACjDD,sBAAsB,CAACV,UAAU,GAAGvG,SAAS,CAAA;AAC7C,IAAA,MAAMmH,gBAAgB,GAAGF,sBAAsB,CAACG,eAAe,CAAC;AAC/Dd,MAAAA,WAAW,EAAE,IAAA;AACd,KAAC,CAAC,CAAA;AACFU,IAAAA,sBAAsB,GAAI,CAAElB,EAAAA,kBAAkB,CAAC1E,OAAQ,CAAA,CAAA,EAAG+F,gBAAiB,CAAC,CAAA,CAAA;AAE5EJ,IAAAA,yBAAyB,GAAG;MAC3BzC,IAAI,EAAEwB,kBAAkB,CAAC1E,OAAO;AAChCqF,MAAAA,OAAO,EAAEU,gBAAAA;KACT,CAAA;AACF,GAAA;EAEA,MAAME,WAAW,GAAGhH,IAAI,CAACC,IAAI,CAACsG,MAAM,EAAEI,sBAAsB,GAAG,MAAM,CAAC,CAAA;EAEtE,IAAI;IACH,IAAIzB,OAAO,CAAC+B,QAAQ,EAAE;AACrB,MAAA,IAAI,CAACnH,EAAE,CAACoH,UAAU,CAACF,WAAW,CAAC,EAAE;AAChC,QAAA,MAAM,IAAIjE,KAAK,CACb,CAAuCiE,qCAAAA,EAAAA,WAAY,8BAA6B,CACjF,CAAA;AACF,OAAA;AACD,KAAC,MAAM;MACN,MAAMG,qBAAqB,GAAG,MAAMC,4BAA4B,CAC/DjC,SAAS,EACTnG,QAAQ,CACR,CAAA;AAEDqG,MAAAA,gBAAgB,CAACK,eAAe,EAAEK,UAAU,CAAC,CAAA;MAE7C,MAAMsB,UAAU,GACfxB,iBAAiB,KAAKlG,SAAS,GAC5B2H,sBAAsB,CAACzB,iBAAiB,CAAC,GACzClG,SAAS,CAAA;AAEb,MAAA,MAAM4H,YAAY,CAAC;AAClB,QAAA,GAAGrC,OAAO;QACVsC,QAAQ,EAAE,CAACxI,QAAQ,CAAC;AACpByI,QAAAA,0BAA0B,EAAE,IAAI;AAChCC,QAAAA,MAAM,EAAExC,OAAO,CAACwC,MAAM,GACnB;AACAC,UAAAA,IAAI,EAAEN,UAAU;UAChBO,MAAM,EAAET,qBAAqB,CAACS,MAAM;UACpCC,WAAW,EAAEV,qBAAqB,CAACW,KAAK;AACxC1B,UAAAA,OAAO,EAAEL,UAAU,CAACgB,eAAe,CAAC;AACnCd,YAAAA,WAAW,EAAE,IAAA;AACd,WAAC,CAAC;AACFzC,UAAAA,IAAI,EAAE,IAAIC,IAAI,CAACA,IAAI,CAACC,GAAG,EAAE,CAAA;AACzB;AACA;AACA;AACA,SAAC,GACD/D,SAAAA;AACJ,OAAC,CAAC,CAAA;MAEFoG,UAAU,CAACG,UAAU,GAAGvG,SAAS,CAAA;MAEjC,IAAI;AACHG,QAAAA,EAAE,CAACiI,MAAM,CAACf,WAAW,CAAC,CAAA;OACtB,CAAC,OAAOrE,GAAG,EAAE;AACb,QAAA,IAAI,CAACU,aAAa,CAACV,GAAG,CAAC,EAAE;AACxB,UAAA,MAAMA,GAAG,CAAA;AACV,SAAA;AACD,OAAA;MAEA,IAAIL,wBAAwB,CAACtD,QAAQ,CAAC,CAAC+F,MAAM,GAAG,CAAC,EAAE;AAAA,QAAA,IAAAiD,qBAAA,CAAA;AAClD,QAAA,MAAMC,iBAAiB,GAAGnC,wBAAwB,CAACX,SAAS,CAAC,CAAA;AAE7D,QAAA,IACC,EAAA6C,CAAAA,qBAAA,GAACC,iBAAiB,CAACC,YAAY,MAAAF,IAAAA,IAAAA,qBAAA,KAA9BA,KAAAA,CAAAA,IAAAA,qBAAA,CACA,yCAAyC,CACzC,CACA,EAAA;UACD,MAAMG,OAAO,GAAG,MAAMjD,OAAO,CAACkD,QAAQ,CAACC,OAAO,CAC5C,CAAA,oJAAA,CAAqJ,CACtJ,CAAA;AAED,UAAA,IAAIF,OAAO,EAAE;YACZ9B,QAAQ,CACN,qDAAoD,EACrD;AACC5D,cAAAA,QAAQ,EAAE,OAAO;cACjB6D,GAAG,EAAEnB,SAAS,CAACnF,IAAI;AACnBsI,cAAAA,KAAK,EAAE,SAAA;AACR,aAAC,CACD,CAAA;YAEDjC,QAAQ,CAAE,qBAAoB,EAAE;cAC/BC,GAAG,EAAEnB,SAAS,CAACnF,IAAAA;AAChB,aAAC,CAAC,CAAA;AACH,WAAA;AACD,SAAA;AACD,OAAA;MAEA,MAAMb,OAAO,GAAG,MAAMkB,uBAAuB,CAC5C8E,SAAS,EACTnG,QAAQ,EACRyG,kBAAkB,CAClB,CAAA;AAED,MAAA,MAAM8C,eAAe,GAAGzI,EAAE,CAAC0I,iBAAiB,CAACxB,WAAW,CAAC,CAAA;MACzD,MAAMyB,QAAQ,CAACtJ,OAAO,CAACuJ,kBAAkB,EAAE,EAAEH,eAAe,CAAC,CAAA;AAC9D,KAAA;AAEA,IAAA,IAAI,CAACrD,OAAO,CAACyD,QAAQ,EAAE;AACtB,MAAA,IAAI,CAACzD,OAAO,CAAC0D,cAAc,EAAE;AAC5B,QAAA,MAAM,IAAI7F,KAAK,CAAE,CAAA,uCAAA,CAAwC,CAAC,CAAA;AAC3D,OAAA;AAEAjC,MAAAA,iBAAiB,CAChB2E,kBAAkB,CAAC1E,OAAO,EACzB,uCAAsC,CACvC,CAAA;AAED,MAAA,MAAM8H,cAAc,GAAG,MAAMC,oBAAoB,CAAC;QACjDC,GAAG,EAAE7D,OAAO,CAAC8D,OAAO;QACpBC,OAAO,EAAE/D,OAAO,CAAC+D,OAAO;AACxBxI,QAAAA,MAAM,EAAEkF,aAAa;AACrBuD,QAAAA,SAAS,EAAEtD,gBAAgB;QAC3BgD,cAAc,EAAE1D,OAAO,CAAC0D,cAAAA;AACzB,OAAC,CAAC,CAAA;MAEF,IAAI;AACH,QAAA,IAAI,CAAC1D,OAAO,CAACiE,gBAAgB,EAAE;UAC9B,MAAMC,sBAAsB,CAC3BjE,SAAS,EACTM,kBAAkB,EAClBoD,cAAc,EACd3D,OAAO,CAACkD,QAAQ,CAChB,CAAA;AACF,SAAA;QAEAtH,iBAAiB,CAChB2E,kBAAkB,CAAC1E,OAAO,EACzB,wBAAuB4E,aAAc,CAAA,CAAA,EAAGC,gBAAiB,CAAA,CAAC,CAC3D,CAAA;AAED,QAAA,MAAMyD,aAA0B,CAC/BR,cAAc,CAACS,gBAAgB,EAAE,EACjC5C,yBAAyB,EACzBM,WAAW,CACX,CAAA;AACF,OAAC,SAAS;QACT,MAAM6B,cAAc,CAACU,OAAO,EAAE,CAACC,KAAK,CAAE7G,GAAG,IAAK;UAC7C7B,iBAAiB,CAChB2E,kBAAkB,CAAC1E,OAAO,EACzB,CAA8C4B,4CAAAA,EAAAA,GAAI,EAAC,CACpD,CAAA;AACF,SAAC,CAAC,CAAA;AACH,OAAA;AACD,KAAA;GACA,CAAC,OAAOA,GAAG,EAAE;AACb4C,IAAAA,gBAAgB,EAAE,CAAA;AAClB,IAAA,MAAM5C,GAAG,CAAA;AACV,GAAA;EAEA,IAAIoD,UAAU,CAACE,WAAW,IAAI,GAAG,IAAI,CAACf,OAAO,CAAC+B,QAAQ,EAAE;AACvDnG,IAAAA,iBAAiB,CAAC4E,eAAe,EAAE,gCAAgC,CAAC,CAAA;AAEpE,IAAA,MAAM+D,WAAW,GAAI,CAAE9C,EAAAA,sBAAuB,CAAK,IAAA,CAAA,CAAA;AACnD,IAAA,MAAM+C,YAAY,GAAGC,2BAA2B,CAAC3K,QAAQ,CAAC,CAAA;AAE1Dc,IAAAA,EAAE,CAAC0G,SAAS,CAACkD,YAAY,EAAE;AAAEjD,MAAAA,SAAS,EAAE,IAAA;AAAK,KAAC,CAAC,CAAA;AAC/C3G,IAAAA,EAAE,CAAC8J,YAAY,CAAC5C,WAAW,EAAEhH,IAAI,CAACC,IAAI,CAACyJ,YAAY,EAAED,WAAW,CAAC,CAAC,CAAA;AACnE,GAAA;AACD,EAAC;AAED,MAAML,sBAAsB,GAAG,OAC9B9I,iBAAoC,EACpCpB,cAA8B,EAC9B2J,cAA8B,EAC9BT,QAAkB,KACd;AAMJ,EAAA,MAAMyB,SAAS,GAAGC,6BAA6B,CAACxJ,iBAAiB,CAAC,CAAA;;AAElE;AACA,EAAA,IAAIuJ,SAAS,CAAC9E,MAAM,KAAK,CAAC,EAAE;AAC3B,IAAA,OAAO,IAAI,CAAA;AACZ,GAAA;AAEA,EAAA,MAAMgF,aAAa,GAAGlB,cAAc,CAACS,gBAAgB,EAAE,CAAA;EAEvD,MAAMU,mBAAmB,GAAG,MAAMX,mBAAgC,CACjEU,aAAa,CACb,CAAA;AAED,EAAA,MAAME,gBAAgB,GAAGD,mBAAmB,CAACE,GAAG,CAC9CC,KAAK,IAAsB;AAC3B,IAAA,IAAI/D,OAAuB,CAAA;IAE3B,IAAI;AACHA,MAAAA,OAAO,GAAGgE,8BAA8B,CAACD,KAAK,CAACE,cAAc,CAAC,CAAA;KAC9D,CAAC,OAAO1H,GAAG,EAAE;MACb,MAAM,IAAII,KAAK,CACb,CAAA,uCAAA,EAAyCoH,KAAK,CAACE,cAAe,EAAC,CAChE,CAAA;AACF,KAAA;AAEA,IAAA,IAAIjE,OAAO,CAACH,WAAW,GAAG,GAAG,EAAE;MAC9BG,OAAO,CAACF,UAAU,GAAG;AACpBC,QAAAA,IAAI,EAAE,MAAM;QACZC,OAAO,EAAEA,OAAO,CAACH,WAAAA;OACjB,CAAA;AACF,KAAC,MAAM,IAAIG,OAAO,CAACH,WAAW,GAAG,GAAG,EAAE;MACrCG,OAAO,CAACF,UAAU,GAAG;AACpBC,QAAAA,IAAI,EAAE,OAAO;AACbC,QAAAA,OAAO,EAAEA,OAAO,CAACH,WAAW,GAAG,GAAA;OAC/B,CAAA;AACF,KAAA;IAEA,OAAO;AACN,MAAA,GAAGkE,KAAK;AACR/D,MAAAA,OAAAA;KACA,CAAA;AACF,GAAC,CACD,CAAA;AAED,EAAA,KAAK,MAAMkE,eAAe,IAAIT,SAAS,EAAE;AACxC,IAAA,MAAMU,eAAe,GACpBC,+BAA+B,CAACF,eAAe,CAAC,CAAA;AACjD,IAAA,MAAMG,qBAAqB,GAC1BC,mCAAmC,CAACJ,eAAe,CAAC,CAAA;AAErD,IAAA,IACCG,qBAAqB,KAAK9K,SAAS,IACnC4K,eAAe,CAAC1K,IAAI,KAAKF,SAAS,IAClC8K,qBAAqB,CAAC1J,OAAO,KAAK7B,cAAc,CAAC6B,OAAO,EACvD;AACD,MAAA,SAAA;AACD,KAAA;IAEA,MAAM4J,cAAc,GAAGC,cAAc,CAACC,eAAe,CACpDN,eAAe,CAACnE,OAAO,CACvB,CAAA;IAED,IAAIuE,cAAc,CAACzE,UAAU,EAAE;AAC9ByE,MAAAA,cAAc,CAAC1E,WAAW,GAAG0E,cAAc,CAACzE,UAAU,CAACE,OAAO,CAAA;MAC9DuE,cAAc,CAACzE,UAAU,GAAGvG,SAAS,CAAA;AACtC,KAAC,MAAM;MACNgL,cAAc,CAAC1E,WAAW,GAAG,GAAG,CAAA;AACjC,KAAA;AAEA,IAAA,IAAI6E,uBAAoD,CAAA;AACxD,IAAA,IAAIC,uBAAoD,CAAA;AAExD,IAAA,KAAK,MAAMC,eAAe,IAAIf,gBAAgB,EAAE;AAC/C,MAAA,IAAIe,eAAe,CAACjH,KAAK,KAAK0G,qBAAqB,CAAC1J,OAAO,EAAE;QAC5D,IAAIiK,eAAe,CAACC,OAAO,EAAE;AAC5BH,UAAAA,uBAAuB,GAAGE,eAAe,CAAA;AAC1C,SAAC,MAAM;AACND,UAAAA,uBAAuB,GAAGC,eAAe,CAAA;AAC1C,SAAA;AACD,OAAA;AACD,KAAA;AAEA,IAAA,MAAME,aAAa,GAClBJ,uBAAuB,KAAKnL,SAAS,IACrC,CAACmL,uBAAuB,CAAC1E,OAAO,CAAC+E,YAAY,CAACR,cAAc,CAAC,CAAA;AAC9D,IAAA,MAAMS,aAAa,GAClBL,uBAAuB,KAAKpL,SAAS,IACrC,CAACoL,uBAAuB,CAAC3E,OAAO,CAAC+E,YAAY,CAACR,cAAc,CAAC,CAAA;IAE9D,IAAIO,aAAa,IAAIE,aAAa,EAAE;AACnC,MAAA,IACCrB,aAAa,CAACb,SAAS,KAAK,QAAQ,IACpC4B,uBAAuB,KAAKnL,SAAS,IACrCoL,uBAAuB,KAAKpL,SAAS,EACpC;AACDmB,QAAAA,iBAAiB,CAChB5B,cAAc,CAAC6B,OAAO,EACrB,CAAA,QAAA,EAAU0J,qBAAqB,CAAC1J,OAAQ,CAAmCgJ,iCAAAA,EAAAA,aAAa,CAACb,SAAU,CAAA,qBAAA,EAAuBa,aAAa,CAACb,SAAU,gBAAe,CAClK,CAAA;AACF,OAAA;AACA,MAAA,SAAA;AACD,KAAA;IAEApI,iBAAiB,CAChB5B,cAAc,CAAC6B,OAAO,EACrB,CAA6B4J,2BAAAA,EAAAA,cAAc,CAAC5D,eAAe,CAAC;AAC5Dd,MAAAA,WAAW,EAAE,IAAA;AACd,KAAC,CAAE,CAAewE,aAAAA,EAAAA,qBAAqB,CAAC1J,OAAQ,EAAC,CACjD,CAAA;AAED,IAAA,IAAIgJ,aAAa,CAACb,SAAS,KAAK,QAAQ,IAAI6B,uBAAuB,EAAE;AACpE,MAAA,MAAM3E,OAAO,GAAG2E,uBAAuB,CAAC3E,OAAO,CAACW,eAAe,CAAC;AAC/Dd,QAAAA,WAAW,EAAE,IAAA;AACd,OAAC,CAAC,CAAA;AAEFnF,MAAAA,iBAAiB,CAChB5B,cAAc,CAAC6B,OAAO,EACrB,yBAAwBqF,OAAQ,CAAA,aAAA,EAAeqE,qBAAqB,CAAC1J,OAAQ,CAAMgJ,IAAAA,EAAAA,aAAa,CAACb,SAAU,EAAC,CAC7G,CAAA;AACF,KAAA;AACA,IAAA,IAAI4B,uBAAuB,EAAE;AAC5B,MAAA,MAAM1E,OAAO,GAAG0E,uBAAuB,CAAC1E,OAAO,CAACW,eAAe,CAAC;AAC/Dd,QAAAA,WAAW,EAAE,IAAA;AACd,OAAC,CAAC,CAAA;MAEF,IAAIoF,OAAO,GAAI,CAAwBjF,sBAAAA,EAAAA,OAAQ,gBAAeqE,qBAAqB,CAAC1J,OAAQ,CAAW,UAAA,CAAA,CAAA;AAEvG,MAAA,IACCgJ,aAAa,CAACb,SAAS,KAAK,QAAQ,IACpC6B,uBAAuB,EACtB;AACDM,QAAAA,OAAO,IAAK,CAAA,iEAAA,EAAmEtB,aAAa,CAACb,SAAU,CAAC,CAAA,CAAA;AACzG,OAAA;AAEApI,MAAAA,iBAAiB,CAAC5B,cAAc,CAAC6B,OAAO,EAAEsK,OAAO,CAAC,CAAA;AACnD,KAAA;AAEA,IAAA,MAAMC,eAAyB,GAAG,CAAC,QAAQ,CAAC,CAAA;AAE5C,IAAA,IAAIvB,aAAa,CAACb,SAAS,KAAK,QAAQ,EAAE;AACzCoC,MAAAA,eAAe,CAACzJ,IAAI,CAACkI,aAAa,CAACb,SAAS,CAAC,CAAA;AAC9C,KAAA;AAEA,IAAA,MAAMqC,iBAAiB,GAAG,MAAMnD,QAAQ,CAACoD,GAAG,CAAC;AAC5CH,MAAAA,OAAO,EAAG,CAAA,mDAAA,EAAqDZ,qBAAqB,CAAC1J,OAAQ,CAAyC,wCAAA,CAAA;AACtImE,MAAAA,OAAO,EAAE,CAAC,GAAGoG,eAAe,EAAE,MAAM,CAAC;MACrCG,OAAO,EAAEH,eAAe,CAAC,CAAC,CAAA;AAC3B,KAAC,CAAC,CAAA;IAEF,IAAIC,iBAAiB,KAAK,MAAM,EAAE;AACjC,MAAA,SAAA;AACD,KAAA;IAEA,MAAMpM,OAAO,GAAGJ,gCAAgC,CAC/CuL,eAAe,EACfC,eAAe,EACfE,qBAAqB,CACrB,CAAA;AAED,IAAA,MAAM3D,gBAAgB,GAAG6D,cAAc,CAAC5D,eAAe,CAAC;AACvDd,MAAAA,WAAW,EAAE,IAAA;AACd,KAAC,CAAC,CAAA;IACF,MAAMU,sBAAsB,GAAI,CAAE8D,EAAAA,qBAAqB,CAAC1J,OAAQ,CAAA,CAAA,EAAG+F,gBAAiB,CAAC,CAAA,CAAA;AAErF,IAAA,MAAME,WAAW,GAAGhH,IAAI,CAACC,IAAI,CAC5ByB,sBAAsB,CAACpB,iBAAiB,CAAC,EACxC,CAAEqG,EAAAA,sBAAuB,MAAK,CAC/B,CAAA;IAED,IAAI;AACH7G,MAAAA,EAAE,CAACiI,MAAM,CAACf,WAAW,CAAC,CAAA;KACtB,CAAC,OAAOrE,GAAG,EAAE;AACb,MAAA,IAAI,CAACU,aAAa,CAACV,GAAG,CAAC,EAAE;AACxB,QAAA,MAAMA,GAAG,CAAA;AACV,OAAA;AACD,KAAA;AAEA,IAAA,MAAM4F,eAAe,GAAGzI,EAAE,CAAC0I,iBAAiB,CAACxB,WAAW,CAAC,CAAA;IACzD,MAAMyB,QAAQ,CAACtJ,OAAO,CAACuJ,kBAAkB,EAAE,EAAEH,eAAe,CAAC,CAAA;AAE7D,IAAA,MAAMmD,OAAO,GACZH,iBAAiB,KAAK,QAAQ,GAC3B,MAAM1C,cAAc,CAAC8C,gBAAgB,EAAE,GACvC5B,aAAa,CAAA;IAEjBjJ,iBAAiB,CAChB5B,cAAc,CAAC6B,OAAO,EACrB,CAAoB0J,kBAAAA,EAAAA,qBAAqB,CAAC1J,OAAQ,CAAA,cAAA,EAAgB+F,gBAAiB,CAAM4E,IAAAA,EAAAA,OAAO,CAACjL,MAAO,CAAA,CAAA,EAAGiL,OAAO,CAACxC,SAAU,EAAC,CAC/H,CAAA;AAED,IAAA,MAAMG,aAA0B,CAC/BqC,OAAO,EACP;MACCzH,IAAI,EAAEwG,qBAAqB,CAAC1J,OAAO;AACnCqF,MAAAA,OAAO,EAAEU,gBAAAA;KACT,EACDE,WAAW,CACX,CAAA;AACF,GAAA;AACD,CAAC,CAAA;AAQD,MAAM8B,oBAAoB,GAAG,MAC5B8C,MAAuC,IACV;EAC7B,MAAM7B,aAAa,GAAG,MAAMV,YAAyB,CAACuC,MAAM,CAAC,CAAA;AAC7D,EAAA,IAAIC,aAA+C,CAAA;EAEnD,OAAO;IACNF,gBAAgB,EAAE,YAAY;AAC7B,MAAA,IAAI5B,aAAa,CAACb,SAAS,KAAK,QAAQ,EAAE;AACzC,QAAA,OAAOa,aAAa,CAAA;AACrB,OAAA;MAEA,IAAI8B,aAAa,KAAKlM,SAAS,EAAE;AAChCkM,QAAAA,aAAa,GAAG,MAAMxC,YAAyB,CAAC;AAC/C,UAAA,GAAGuC,MAAM;AACT1C,UAAAA,SAAS,EAAE,QAAA;AACZ,SAAC,CAAC,CAAA;AACH,OAAA;AAEA,MAAA,OAAO2C,aAAa,CAAA;KACpB;IAEDvC,gBAAgB,EAAEA,MAAMS,aAAa;IAErCR,OAAO,EAAE,YAAY;AACpB,MAAA,MAAMF,YAAyB,CAACU,aAAa,CAAC,CAAA;MAE9C,IAAI8B,aAAa,KAAKlM,SAAS,EAAE;AAChC,QAAA,MAAM0J,YAAyB,CAACwC,aAAa,CAAC,CAAA;AAC/C,OAAA;AACD,KAAA;GACA,CAAA;AACF,CAAC;;;;"}
@@ -1,12 +1,150 @@
1
1
  import * as path from 'path';
2
2
  import * as fs from 'fs';
3
3
  import * as terser from 'terser';
4
- import { logPackageMessage } from '../../lib/log.mjs';
5
- import { build } from './tsc.mjs';
6
- import { generateDocs } from './docs.mjs';
7
- import { readPackageCreatorManifest, readPackageNpmManifest } from '../../lib/package.mjs';
8
- import { getPackageTypescriptFiles } from '../../lib/scripts.mjs';
9
- import { toposort } from '../../lib/toposort.mjs';
4
+ import 'resolve';
5
+ import 'write-pkg';
6
+ import { h as getPackageTypescriptFiles, r as readPackageCreatorManifest, n as readPackageNpmManifest } from './cli-5332deff.js';
7
+ import 'node:path';
8
+ import 'node:fs';
9
+ import 'axios';
10
+ import ts from 'typescript';
11
+ import typedoc from 'typedoc';
12
+ import glob from 'glob';
13
+
14
+ const logPackageMessage = (name, step, index, total) => {
15
+ const numLength = total === undefined ? undefined : total.toString().length;
16
+ const indexString = total === undefined || total < 2 ? "" : `${index.toString().padStart(numLength, "0")}/${total} `;
17
+ const identifierString = `${indexString}${name.padEnd(15)}`;
18
+ console.log(`${identifierString} >> ${step}`);
19
+ };
20
+
21
+ const tryReadTsConfig = location => {
22
+ const {
23
+ config
24
+ } = ts.readConfigFile(path.join(location.scriptsDir, "tsconfig.json"), path => {
25
+ try {
26
+ return fs.readFileSync(path, "utf8");
27
+ } catch {
28
+ return undefined;
29
+ }
30
+ });
31
+ return config;
32
+ };
33
+ const build = async (location, outputDir) => {
34
+ const config = tryReadTsConfig(location);
35
+ config.compilerOptions.lib = ["es5", "dom"];
36
+ const result = ts.convertCompilerOptionsFromJson(config.compilerOptions, location.scriptsDir);
37
+ const compilerOptions = {
38
+ ...result.options,
39
+ removeComments: false,
40
+ declaration: true,
41
+ sourceMap: false,
42
+ // We don't use tsc to actually emit the files, but we still need to set the correct
43
+ // output directory so the compiler can rewrite the `reference path` directives.
44
+ outFile: path.join(outputDir, "out.js"),
45
+ target: ts.ScriptTarget.ES5,
46
+ noEmitOnError: true
47
+ };
48
+ const host = ts.createCompilerHost(compilerOptions);
49
+ host.getCurrentDirectory = () => location.scriptsDir;
50
+ let js;
51
+ let definitions;
52
+ host.writeFile = (fileName, data, writeByteOrderMark) => {
53
+ if (fileName.endsWith(".js")) {
54
+ js = data;
55
+ } else if (fileName.endsWith(".d.ts")) {
56
+ definitions = data;
57
+ }
58
+ };
59
+ const files = getPackageTypescriptFiles(location);
60
+ if (files.length === 0) {
61
+ throw new Error(`Expected typescript files to exist when building a package. Packages only consisting of animation jsons do not need to be built.`);
62
+ }
63
+ const programOptions = {
64
+ rootNames: files,
65
+ options: compilerOptions,
66
+ host
67
+ };
68
+ const program = ts.createProgram(programOptions);
69
+ const emitResult = program.emit();
70
+ const allDiagnostics = ts.getPreEmitDiagnostics(program);
71
+ if (!emitResult.emitSkipped) {
72
+ if (allDiagnostics.length > 0) {
73
+ console.log(allDiagnostics.map(createErrorMessage).join("\n"));
74
+ }
75
+ if (js === undefined || definitions === undefined) {
76
+ throw new Error(`Unexpected: no js or definitions were created`);
77
+ }
78
+ return {
79
+ js,
80
+ definitions
81
+ };
82
+ }
83
+ const error = allDiagnostics.map(createErrorMessage).join("\n");
84
+ throw new Error(error);
85
+ };
86
+ const createErrorMessage = diagnostic => {
87
+ if (!diagnostic.file) {
88
+ return `${ts.flattenDiagnosticMessageText(diagnostic.messageText, "\n")}`;
89
+ }
90
+ const {
91
+ line,
92
+ character
93
+ } = diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start);
94
+ const message = ts.flattenDiagnosticMessageText(diagnostic.messageText, "\n");
95
+ return `${diagnostic.file.fileName} (${line + 1},${character + 1}): ${message}`;
96
+ };
97
+
98
+ const generateDocs = async (location, declarationFile, outFolder, name) => {
99
+ const app = new typedoc.Application();
100
+ const mediaDir = path.join(location.manifestDir, "Media");
101
+ app.bootstrap({
102
+ entryPoints: [declarationFile],
103
+ media: mediaDir,
104
+ out: outFolder,
105
+ tsconfig: path.join(location.scriptsDir, "tsconfig.json"),
106
+ skipErrorChecking: true
107
+ });
108
+ app.options.setCompilerOptions([declarationFile], {
109
+ target: ts.ScriptTarget.ES5
110
+ }, undefined);
111
+ app.options.setValue("name", name);
112
+ const [readmePath] = glob.sync("**/readme.md", {
113
+ absolute: true,
114
+ cwd: location.manifestDir
115
+ });
116
+ if (readmePath) {
117
+ app.options.setValue("readme", readmePath);
118
+ }
119
+ const project = app.convert();
120
+ if (project) {
121
+ await app.generateDocs(project, outFolder);
122
+ }
123
+ };
124
+
125
+ // Stolen from ig.tools.core
126
+
127
+ const toposort = packages => {
128
+ const queue = Object.getOwnPropertyNames(packages);
129
+ const result = [];
130
+ let index = 0;
131
+ while (queue.length > 0) {
132
+ if (index >= queue.length) {
133
+ throw new Error("Packages can not have cyclic dependencies");
134
+ }
135
+ const queueEntry = queue[index];
136
+ const dependencies = packages[queueEntry];
137
+ const dependencyQueued = dependencies.some(dependency => queue.includes(dependency));
138
+ if (dependencyQueued) {
139
+ index++;
140
+ continue;
141
+ }
142
+ queue.splice(index, 1);
143
+ index = 0;
144
+ result.push(queueEntry);
145
+ }
146
+ return result;
147
+ };
10
148
 
11
149
  const buildFolders = async options => {
12
150
  if (options.outDir !== undefined && options.clean) {
@@ -161,5 +299,10 @@ ${bannerText}
161
299
  return undefined;
162
300
  };
163
301
 
164
- export { buildFolders };
165
- //# sourceMappingURL=index.mjs.map
302
+ var index = /*#__PURE__*/Object.freeze({
303
+ __proto__: null,
304
+ buildFolders: buildFolders
305
+ });
306
+
307
+ export { buildFolders as b, index as i, logPackageMessage as l };
308
+ //# sourceMappingURL=index-92b6ba5c.js.map