@intelligentgraphics/ig.gfx.packager 3.0.28 → 3.1.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/build/bin.mjs +1 -1
  2. package/build/{cli-RWjcRDQ7.mjs → cli-CuiqZ39_.mjs} +16 -22
  3. package/build/{cli-RWjcRDQ7.mjs.map → cli-CuiqZ39_.mjs.map} +1 -1
  4. package/build/{dependencies-_6rsdwHk.mjs → dependencies-BiYItaVS.mjs} +2 -2
  5. package/build/{dependencies-_6rsdwHk.mjs.map → dependencies-BiYItaVS.mjs.map} +1 -1
  6. package/build/{generateIndex-Dy12utjI.mjs → generateIndex-hg6jRXQv.mjs} +96 -83
  7. package/build/generateIndex-hg6jRXQv.mjs.map +1 -0
  8. package/build/{generateParameterType-DKwRLh1m.mjs → generateParameterType-CDjqLM4J.mjs} +2 -3
  9. package/build/{generateParameterType-DKwRLh1m.mjs.map → generateParameterType-CDjqLM4J.mjs.map} +1 -1
  10. package/build/{index-B9e-vtmM.mjs → index-B2kXo6K7.mjs} +298 -84
  11. package/build/index-B2kXo6K7.mjs.map +1 -0
  12. package/build/{index-CLoWLYI6.mjs → index-BoGrZubW.mjs} +14 -14
  13. package/build/index-BoGrZubW.mjs.map +1 -0
  14. package/build/{postinstall-DlYP6BrQ.mjs → postinstall-CbMUz2zy.mjs} +3 -4
  15. package/build/{postinstall-DlYP6BrQ.mjs.map → postinstall-CbMUz2zy.mjs.map} +1 -1
  16. package/build/{publishNpm-CEhZI6-O.mjs → publishNpm-CrnuTwss.mjs} +11 -10
  17. package/build/publishNpm-CrnuTwss.mjs.map +1 -0
  18. package/build/rollup-UR3DADp8.mjs +198 -0
  19. package/build/rollup-UR3DADp8.mjs.map +1 -0
  20. package/build/scripts-Bfojy_uD.mjs +48 -0
  21. package/build/scripts-Bfojy_uD.mjs.map +1 -0
  22. package/build/versionFile-DSqOw-XB.mjs +208 -0
  23. package/build/versionFile-DSqOw-XB.mjs.map +1 -0
  24. package/lib/lib.mjs +421 -331
  25. package/package.json +13 -8
  26. package/readme.md +87 -10
  27. package/build/generateIndex-Dy12utjI.mjs.map +0 -1
  28. package/build/index-B9e-vtmM.mjs.map +0 -1
  29. package/build/index-CLoWLYI6.mjs.map +0 -1
  30. package/build/publishNpm-CEhZI6-O.mjs.map +0 -1
  31. package/build/scripts-EvIjiH6G.mjs +0 -10
  32. package/build/scripts-EvIjiH6G.mjs.map +0 -1
  33. package/build/versionFile-C7xf8PjZ.mjs +0 -380
  34. package/build/versionFile-C7xf8PjZ.mjs.map +0 -1
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@intelligentgraphics/ig.gfx.packager",
3
- "version": "3.0.28",
4
- "description": "IG.GFX.Packager 3.0.28 (3.0.28.100)",
3
+ "version": "3.1.0-alpha.0",
4
+ "description": "IG.GFX.Packager 3.1.0 Alpha 0 (3.1.0.1)",
5
5
  "author": "Michael Beier <mb@intelligentgraphics.biz>",
6
6
  "main": "lib/lib.mjs",
7
7
  "types": "lib/lib.d.ts",
@@ -11,7 +11,7 @@
11
11
  "access": "public"
12
12
  },
13
13
  "engines": {
14
- "node": ">=16.19.0"
14
+ "node": ">=20"
15
15
  },
16
16
  "bin": {
17
17
  "packager": "./build/bin.mjs"
@@ -31,18 +31,27 @@
31
31
  "format": "prettier --write \"**/*.{ts,tsx,json}\""
32
32
  },
33
33
  "dependencies": {
34
+ "@babel/preset-env": "^7.28.5",
35
+ "@intelligentgraphics/declarationbundler": "^0.4.0",
36
+ "@rollup/plugin-babel": "^6.1.0",
37
+ "@rollup/plugin-commonjs": "^25.0.7",
38
+ "@rollup/plugin-json": "^6.1.0",
39
+ "@rollup/plugin-node-resolve": "^16.0.3",
40
+ "@rollup/plugin-typescript": "^12.3.0",
34
41
  "ajv": "^8.12.0",
35
42
  "axios": "^1.2.5",
36
- "core-js": "^3.27.2",
43
+ "core-js": "^3.46.0",
37
44
  "glob": "^9.3.0",
38
45
  "inquirer": "^9.1.4",
39
46
  "jszip": "^3.10.1",
40
47
  "lodash": "^4.17.21",
41
48
  "resolve": "^1.22.1",
49
+ "rollup": "^4.53.2",
42
50
  "simple-git": "^3.16.0",
43
51
  "source-map-js": "^1.0.2",
44
52
  "source-map-support": "^0.5.21",
45
53
  "terser": "^5.16.1",
54
+ "tslib": "^2.8.1",
46
55
  "typedoc": "^0.24.8",
47
56
  "typescript": "5.4",
48
57
  "update-notifier": "^6.0.2",
@@ -52,9 +61,6 @@
52
61
  },
53
62
  "devDependencies": {
54
63
  "@intelligentgraphics/ig.gfx.tools.core": "^1.0.0",
55
- "@rollup/plugin-commonjs": "^25.0.7",
56
- "@rollup/plugin-json": "^6.1.0",
57
- "@rollup/plugin-node-resolve": "^15.2.3",
58
64
  "@rollup/plugin-swc": "^0.3.0",
59
65
  "@swc/core": "^1.4.6",
60
66
  "@types/glob": "^8.0.1",
@@ -62,7 +68,6 @@
62
68
  "@types/node": "^22.13.4",
63
69
  "@types/update-notifier": "^6.0.1",
64
70
  "@types/yargs": "^17.0.2",
65
- "rollup": "^4.14.2",
66
71
  "rollup-plugin-dts": "^6.1.0",
67
72
  "vitest": "^1.5.0"
68
73
  }
package/readme.md CHANGED
@@ -75,16 +75,6 @@ The service to which packages should be uploaded to.
75
75
 
76
76
  To use the new license file based authentication, the path to the license file needs to be provided in the `IG_GFX_LICENSE` environment variable. You can download your license file from the creator login page.
77
77
 
78
- Alternatively the legacy username and password based authentication can be configured through the following environment variables:
79
-
80
- **IG_GFX_USER**
81
-
82
- The identifier of the user that will login at the IG_GFX_ASSET_SERVICE.
83
-
84
- **IG_GFX_PWD**
85
-
86
- The password for the user.
87
-
88
78
  ## Usage
89
79
 
90
80
  ### Building a package
@@ -156,6 +146,87 @@ This command also allows the address and service to be overwritten. A list of al
156
146
  npm run upload -- --help
157
147
  ```
158
148
 
149
+ ### Using ecmascript modules
150
+
151
+ Traditionally packages were written using the typescript namespace/module constructs. Starting from packager version 3.1 packages may now also be written with ecmascript modules.
152
+
153
+ **Why**
154
+
155
+ Ecmascript modules provide some benefits over the previously used syntax:
156
+
157
+ 1. You no longer need to wrap the code in your files with namespaces. As part of the compilation all your code will automatically be wrapped in the namespace as specified by the Scope/Package of the `_Package.json`.
158
+ 2. All things that are not explicitly exported are private and can be minified better.
159
+ 3. Same syntax as for the factory ts with possible code sharing through shared modules.
160
+ 4. Upgraded javascript language version with new inbuilt methods with automatic polyfills for older environments. The packager will automatically configure the target and lib whenever you first build or upload a package after configuring the module property.
161
+
162
+ **How**
163
+
164
+ To configure a package to use modules, you first need to add a `module` property with the value `es2015` to the compilerOptions of your tsconfig.json:
165
+
166
+ ```json
167
+ {
168
+ "compilerOptions": {
169
+ "target": "es5",
170
+ "lib": ["es5", "dom"],
171
+ "module": "es2015"
172
+ }
173
+ }
174
+ ```
175
+
176
+ The ecmascript module files will be bundled starting from an entry file. Accepted as entry files are the file names index.ts and additionally Context.ts for context packages.
177
+
178
+ **Setup for a context package**
179
+
180
+ Context.ts
181
+
182
+ ```ts
183
+ /// <reference types="@intelligentgraphics/3d.igx.eval" />
184
+
185
+ export class Context {
186
+ public static PostConfigure(
187
+ configuration: IGX.Configuration,
188
+ ): IGX.Configuration {
189
+ // regular PostConfigure content...
190
+ }
191
+ }
192
+ ```
193
+
194
+ **Setup for an evaluator package**
195
+
196
+ index.ts
197
+
198
+ ```ts
199
+ export { MyEvaluator } from "./MyEvaluator";
200
+ ```
201
+
202
+ MyEvaluator.ts
203
+
204
+ ```ts
205
+ /// <reference types="@intelligentgraphics/3d.igx.eval" />
206
+
207
+ export class MyEvaluator {
208
+ static Create(
209
+ productId: string,
210
+ path: string,
211
+ parameters: {},
212
+ ): IGX.EvalResponse {}
213
+ }
214
+ ```
215
+
216
+ Note: for mixed evaluator and context packages, you need to export the context class from the context file.
217
+
218
+ index.ts
219
+
220
+ ```ts
221
+ export { Context } from "./Context";
222
+ ```
223
+
224
+ **Compilation output**
225
+
226
+ There are no runtime differences between the compiled output of a modules package and a legacy namespace package. A user of a package (either as a library or directly in the graphical data) will not be aware of wether a package is written with ecmascript or legacy modules.
227
+
228
+ To achieve this, modules will be combined on compilation and exposed under the package name. Similar logic is also applied to the typescript declaration files generated for a package. When using a package as a library, the type declarations for both, a legacy namespace package and and ecmascript module package, need to be included through typescript references.
229
+
159
230
  ### Using ig libraries
160
231
 
161
232
  **Installation**
@@ -485,6 +556,12 @@ Afterwards you may need to reload your editor in order for the installed files t
485
556
 
486
557
  ## History
487
558
 
559
+ **IG.GFX.Packager 3.1.0**
560
+
561
+ - compile js for node 20+
562
+ - introduce es modules support for script packages
563
+ - automatically generate a console.log statement with the package name, version and copyright string from \_package.json if no version.ts is detected
564
+
488
565
  **IG.GFX.Packager 3.0.28**
489
566
 
490
567
  - drop npm install before upload
@@ -1 +0,0 @@
1
- {"version":3,"file":"generateIndex-Dy12utjI.mjs","sources":["../src/commands/generateIndex.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\nexport interface GenerateIndexOptions {\n\tignore?: string[];\n\tlocation: PackageLocation;\n\n\t/**\n\t * Marks non optional parameter object properties as required in the generated index\n\t *\n\t * @type {boolean}\n\t */\n\tstrictOptional?: boolean;\n}\n\n/**\n * Extracts and returns script array for _Index.json from a src folder\n *\n * @param folderPath path to a src folder\n */\nexport function generateIndex({\n\tlocation,\n\tignore = [],\n\tstrictOptional = false,\n}: GenerateIndexOptions) {\n\tconst files = getPackageTypescriptFiles(location);\n\tconst filtered = files.filter((path) => {\n\t\treturn !ignore.some((suffix) => path.endsWith(suffix));\n\t});\n\tconst arr: CreatorIndexEntry[] = [];\n\n\tconst existingIndex = readPackageCreatorIndex(location) ?? [];\n\n\tconst program = ts.createProgram(filtered, { allowJs: true });\n\tconst typeChecker = program.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\tfor (const scriptingClass of findScriptingClasses(node)) {\n\t\t\t\tif (scriptingClass.node.name === undefined) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`Expected ${scriptingClass.type} class to have a name`,\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tconst name = typeChecker.getFullyQualifiedName(\n\t\t\t\t\ttypeChecker.getSymbolAtLocation(scriptingClass.node.name)!,\n\t\t\t\t);\n\n\t\t\t\tif (name.length > 45) {\n\t\t\t\t\tthrow new Error(`Package name length >45 '${name}'`);\n\t\t\t\t}\n\n\t\t\t\tconst parameterDeclaration =\n\t\t\t\t\tgetScriptingClassParameterdeclaration(scriptingClass);\n\n\t\t\t\tconst parametersType =\n\t\t\t\t\tparameterDeclaration === undefined\n\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t: typeChecker.getTypeAtLocation(parameterDeclaration);\n\n\t\t\t\tif (parametersType === undefined) {\n\t\t\t\t\tconsole.log(\n\t\t\t\t\t\t`Failed to find parameters type declaration for ${scriptingClass.type} ${name}. Skipping parameter list generation`,\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tconst existingIndexEntry = existingIndex.find(\n\t\t\t\t\t(entry) => entry.Name === name,\n\t\t\t\t);\n\n\t\t\t\tconst obj: CreatorIndexEntry = {\n\t\t\t\t\tName: name,\n\t\t\t\t\tDescription: existingIndexEntry?.Description ?? name,\n\t\t\t\t\tType:\n\t\t\t\t\t\tscriptingClass.type === \"evaluator\"\n\t\t\t\t\t\t\t? \"Evaluator\"\n\t\t\t\t\t\t\t: \"Interactor\",\n\t\t\t\t\tParameters: [],\n\t\t\t\t};\n\n\t\t\t\tconst rawDocTags = ts.getJSDocTags(scriptingClass.node);\n\n\t\t\t\tconst dict = getTagDict(rawDocTags);\n\t\t\t\tif (dict.summary) {\n\t\t\t\t\tobj.Description = dict.summary;\n\t\t\t\t} else {\n\t\t\t\t\tconst comment = typeChecker\n\t\t\t\t\t\t.getTypeAtLocation(scriptingClass.node)\n\t\t\t\t\t\t.symbol.getDocumentationComment(typeChecker)\n\t\t\t\t\t\t.map((comment) => comment.text)\n\t\t\t\t\t\t.join(\" \");\n\n\t\t\t\t\tif (comment) {\n\t\t\t\t\t\tobj.Description = comment;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (parametersType !== undefined) {\n\t\t\t\t\tobj.Parameters = parseParametersList(\n\t\t\t\t\t\ttypeChecker.getPropertiesOfType(parametersType),\n\t\t\t\t\t\tstrictOptional,\n\t\t\t\t\t);\n\n\t\t\t\t\tif (\n\t\t\t\t\t\tobj.Parameters.length === 0 &&\n\t\t\t\t\t\tparametersType.getStringIndexType() !== undefined\n\t\t\t\t\t) {\n\t\t\t\t\t\tobj.Parameters = existingIndexEntry?.Parameters ?? [];\n\t\t\t\t\t}\n\t\t\t\t} else if (existingIndexEntry !== undefined) {\n\t\t\t\t\tobj.Parameters = existingIndexEntry.Parameters;\n\t\t\t\t}\n\n\t\t\t\tarr.push(obj);\n\t\t\t}\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 */\nconst findScriptingClasses = (node: ts.Node) => {\n\tlet body: ts.NamespaceBody | ts.JSDocNamespaceBody | undefined;\n\n\tif (ts.isModuleDeclaration(node)) {\n\t\tbody = node.body;\n\t}\n\tif (body !== undefined && ts.isModuleDeclaration(body)) {\n\t\tbody = body.body;\n\t}\n\n\tconst classes: ScriptingClass[] = [];\n\n\tif (body !== undefined) {\n\t\tts.forEachChild(body, (child) => {\n\t\t\tif (!ts.isClassDeclaration(child)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst scriptingClass = detectScriptingClass(child);\n\n\t\t\tif (scriptingClass !== undefined) {\n\t\t\t\tclasses.push(scriptingClass);\n\t\t\t}\n\t\t});\n\t}\n\n\treturn classes;\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","files","getPackageTypescriptFiles","filtered","filter","path","some","suffix","endsWith","arr","existingIndex","readPackageCreatorIndex","program","ts","createProgram","allowJs","typeChecker","getTypeChecker","forEach","file","sourceFile","getSourceFile","forEachChild","node","scriptingClass","findScriptingClasses","name","undefined","Error","type","getFullyQualifiedName","getSymbolAtLocation","length","parameterDeclaration","getScriptingClassParameterdeclaration","parametersType","getTypeAtLocation","console","log","existingIndexEntry","find","entry","Name","obj","Description","Type","Parameters","rawDocTags","getJSDocTags","dict","getTagDict","summary","comment","symbol","getDocumentationComment","map","text","join","parseParametersList","getPropertiesOfType","getStringIndexType","push","sort","a","b","localeCompare","writePackageCreatorIndex","capitalizeFirstLetter","string","charAt","toUpperCase","slice","parseDefault","value","uType","parseFloat","parseInt","replace","parseTypeFromName","parts","split","identifier","properties","i","parameter","Default","DisplayIndex","declaration","getDeclarations","documentationComment","checkLinksSymbol","links","syntheticOrigin","creatorType","propertySignature","parsedType","getText","default","kind","SyntaxKind","PropertySignature","questionToken","Required","tags","tag","tagName","member","members","isMethodDeclaration","index","parameters","isScriptingClassParameterDeclaration","isConstructorDeclaration","memberNode","parameterIndex","Constructor","body","isModuleDeclaration","classes","child","isClassDeclaration","detectScriptingClass","isEvaluator","heritageClauses","clause","token","ExtendsKeyword","ImplementsKeyword","types","includes","isInteractor"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-B9e-vtmM.mjs","sources":["../../tools.core/build/log.mjs","../src/commands/build/tsc.ts","../src/commands/build/docs.ts","../src/lib/toposort.ts","../src/commands/build/manager.ts","../src/commands/build/animation.schema.ts","../src/commands/build/animations.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\";\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(location: PackageLocation, outputDir: string): BuildParticipant =>\n\t(env: BuilderEnvironment) => {\n\t\tconst files = getPackageTypescriptFiles(location);\n\n\t\tif (files.length === 0) {\n\t\t\tenv.onBuildStart();\n\t\t\tenv.onBuildEnd({\n\t\t\t\ttype: \"success\",\n\t\t\t\tartefacts: {\n\t\t\t\t\tjs: \"\",\n\t\t\t\t\tdefinitions: \"\",\n\t\t\t\t},\n\t\t\t});\n\n\t\t\treturn { destroy: () => {} };\n\t\t}\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(location, outputDir);\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\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\tdefinitions,\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): 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\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: 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 (\n\t\t\t\t\t\temitState.js === undefined ||\n\t\t\t\t\t\temitState.definitions === undefined\n\t\t\t\t\t) {\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\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\tdefinitions: emitState.definitions,\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),\n\t\t\tcustomSys,\n\t\t\tts.createSemanticDiagnosticsBuilderProgram,\n\t\t\tregisterDiagnostic,\n\t\t\treportWatchStatusChanged,\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\tconst files = getPackageTypescriptFiles(location);\n\n\t\tif (files.length === 0) {\n\t\t\tonBuildStart();\n\t\t\tonBuildEnd({\n\t\t\t\ttype: \"success\",\n\t\t\t\tartefacts: {\n\t\t\t\t\tjs: \"\",\n\t\t\t\t\tdefinitions: \"\",\n\t\t\t\t},\n\t\t\t});\n\t\t}\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 = (location: PackageLocation, outputDir: string) => {\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: true,\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","import typedoc from \"typedoc\";\nimport glob from \"glob\";\nimport ts from \"typescript\";\nimport * as path from \"path\";\nimport { PackageLocation } from \"../../lib/package\";\n\nexport const generateDocs = async (\n\tlocation: PackageLocation,\n\tdeclarationFile: string,\n\toutFolder: string,\n\tname: string,\n) => {\n\tconst app = new typedoc.Application();\n\n\tconst mediaDir = path.join(location.manifestDir, \"Media\");\n\n\tapp.bootstrap({\n\t\tentryPoints: [declarationFile],\n\t\tmedia: mediaDir,\n\t\tout: outFolder,\n\t\ttsconfig: path.join(location.scriptsDir, \"tsconfig.json\"),\n\t\tskipErrorChecking: true,\n\t});\n\n\tapp.options.setCompilerOptions(\n\t\t[declarationFile],\n\t\t{\n\t\t\ttarget: ts.ScriptTarget.ES5,\n\t\t},\n\t\tundefined,\n\t);\n\n\tapp.options.setValue(\"name\", name);\n\n\tconst [readmePath] = glob.sync(\"**/readme.md\", {\n\t\tabsolute: true,\n\t\tcwd: location.manifestDir,\n\t});\n\n\tif (readmePath) {\n\t\tapp.options.setValue(\"readme\", readmePath);\n\t}\n\n\tconst project = app.convert();\n\n\tif (project) {\n\t\tawait app.generateDocs(project, outFolder);\n\t}\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\";\nimport * as path from \"path\";\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\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\tparticipant({\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\t\t}\n\t}\n\n\tprivate maybeEmit() {\n\t\tconst errors: string[] = [];\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(\"error\", errors.join(\"\\n\"));\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\tline: mapping.originalLine,\n\t\t\t\t\t\t\t\tcolumn: mapping.originalColumn,\n\t\t\t\t\t\t\t},\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\tsources.add(mapping.source);\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.definitions) {\n\t\t\t\tif (completeResult.definitions) {\n\t\t\t\t\tcompleteResult.definitions += \"\\n\";\n\t\t\t\t} else {\n\t\t\t\t\tcompleteResult.definitions = \"\";\n\t\t\t\t}\n\n\t\t\t\tcompleteResult.definitions += result.artefacts.definitions;\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","import * as path from \"path\";\nimport * as fs from \"fs/promises\";\nimport * as terser from \"terser\";\n\nimport {\n\tconsoleReporter,\n\tcreatePackageScopedReporter,\n\tisErrorENOENT,\n\tReporter,\n} from \"@intelligentgraphics/ig.gfx.tools.core\";\n\nimport {\n\tcreateTSCBuildParticipant,\n\tcreateTSCWatchBuildParticipant,\n} from \"./tsc\";\nimport { generateDocs } from \"./docs\";\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 { EOL } from \"os\";\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}\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 const buildFolders = async (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\tawait 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\tmanager.addParticipant(\n\t\t\t\"tsc\",\n\t\t\tcreateTSCBuildParticipant(location, outputDirectory),\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: string) => {\n\t\t\t\treject(new Error(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\treporter.log(\"Generating typedoc documentation\");\n\t\t\tawait generateDocs(\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 const buildFoldersWatch = async (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\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\tawait ensureTsConfig(location);\n\n\t\tconst baseReporter = options.reporter ?? consoleReporter;\n\n\t\tconst data = manifests.get(location)!;\n\n\t\tconst reporter = createPackageScopedReporter(\n\t\t\tbaseReporter,\n\t\t\tdata.Package,\n\t\t\tindex,\n\t\t\tfolders.length,\n\t\t\tmaxNameLength,\n\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\tmanager.addParticipant(\n\t\t\t\"tsc\",\n\t\t\tcreateTSCWatchBuildParticipant(location, outputDirectory),\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\tawait new Promise(() => {});\n};\n\nconst writeBuildResult = async (\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.definitions !== undefined) {\n\t\tawait fs.writeFile(\n\t\t\tpath.join(outputDirectory, `${manifest.Package}.d.ts`),\n\t\t\tbuildResult.definitions,\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\t\tawait fs.writeFile(minifiedPath, minifyResult.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.definitions !== 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.definitions,\n\t\t\t{ encoding: \"utf8\" },\n\t\t);\n\t}\n};\n\nconst createBannerCommentBuildParticipant =\n\t(options: BannerOptions): BuildParticipant =>\n\t(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\tdefinitions: banner ?? \"\",\n\t\t\t},\n\t\t});\n\n\t\treturn {\n\t\t\tdestroy: () => {},\n\t\t};\n\t};\n\nconst ensureTsConfig = async (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\t\tapplyTsConfigOption(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\t} catch (err) {\n\t\tif (!isErrorENOENT(err)) {\n\t\t\tthrow err;\n\t\t}\n\n\t\tconst content = {};\n\t\tapplyTsConfigOption(content);\n\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\t}\n};\n\nconst applyTsConfigOption = (data: {\n\tcompilerOptions?: { target?: string; lib?: string[] };\n}) => {\n\tdata.compilerOptions = data.compilerOptions ?? {};\n\tdata.compilerOptions.target = \"es5\";\n\tdata.compilerOptions.lib = [\"es5\", \"dom\"];\n};\n\nconst 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\nconst 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","env","files","getPackageTypescriptFiles","onBuildStart","onBuildEnd","type","artefacts","js","definitions","destroy","compilerOptions","getCompilerOptions","host","createCompilerHost","getCurrentDirectory","sourceMap","writeFile","fileName","data","writeByteOrderMark","endsWith","programOptions","rootNames","options","program","createProgram","emitResult","emit","allDiagnostics","getPreEmitDiagnostics","emitSkipped","formatDiagnostics","Error","replace","err","createTSCWatchBuildParticipant","state","diagnostics","customSys","sys","registerDiagnostic","diagnostic","code","push","reportWatchStatusChanged","emitState","formattingHost","createWatchCompilerHost","createSemanticDiagnosticsBuilderProgram","getCanonicalFileName","getNewLine","newLine","watchProgram","createWatchProgram","close","lib","result","convertCompilerOptionsFromJson","removeComments","declaration","inlineSources","outFile","target","ScriptTarget","ES5","noEmitOnError","generateDocs","declarationFile","outFolder","name","app","typedoc","Application","mediaDir","manifestDir","bootstrap","entryPoints","media","out","tsconfig","skipErrorChecking","setCompilerOptions","setValue","readmePath","glob","sync","absolute","cwd","project","convert","toposort","packages","queue","Object","getOwnPropertyNames","queueEntry","dependencies","dependencyQueued","some","dependency","includes","splice","BuildManager","EventEmitter","constructor","manifest","writer","participants","Map","states","addParticipant","participant","set","run","alreadyBusy","maybeEmit","errors","results","_","completeResult","sourceMapGenerator","SourceMapGenerator","lines","split","SourceMapConsumer","JSON","parse","sources","Set","eachMapping","mapping","addMapping","generated","line","generatedLine","column","generatedColumn","original","originalLine","originalColumn","source","add","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","relative","SyntaxError","String","cause","basename","getAnimationJsonValidation","stringify","size","Scope","Package","scopeParts","createNamespace","parts","slice","validateAnimationJson","Ajv","coerceTypes","allErrors","removeAdditional","useDefaults","validateSchema","compile","animationSchema","buildFolders","outDir","clean","rm","recursive","baseReporter","workspace","folders","sortedPackages","sortPackagesByBuildOrder","manifests","map","readPackageCreatorManifest","Array","from","values","reduce","acc","Math","max","ensureTsConfig","get","preparedReporter","outputDirectory","mkdir","manager","writeBuildResult","minimize","banner","createBannerCommentBuildParticipant","Promise","resolve","reject","addListener","docs","buildFoldersWatch","EOL","buildResult","minifyResult","terser","minify","ecma","includeSources","minifiedPath","createBannerComment","tsconfigPath","applyTsConfigOption","isErrorENOENT","readPackageNpmManifest","packageDependencies","packageName","packageData","devDependencies","peerDependencies","filter","unshift","bannerParts","text","details","version","commit","commitDirty","date","toISOString","detailsText","bannerText"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-CLoWLYI6.mjs","sources":["../src/commands/publish/zip.ts","../src/lib/assetServiceSessionManager.ts","../src/lib/dependencySync.ts","../src/commands/publish/index.ts"],"sourcesContent":["import JSZip from \"jszip\";\nimport * as path from \"path\";\nimport * as fs from \"fs\";\n\nimport { isErrorENOENT } from \"../../lib/error\";\nimport {\n\tCreatorPackage,\n\treadPackageCreatorManifest,\n\twritePackageCreatorManifest,\n\treadPackageCreatorIndex,\n\tparseCreatorPackageName,\n\tPackageLocation,\n\tPackageNpmManifest,\n\tINDEX_FILE,\n\tPACKAGE_FILE,\n} from \"../../lib/package\";\nimport {\n\tPublishedPackageLocation,\n\treadPublishedPackageCreatorIndex,\n} from \"../../lib/publishedPackage\";\nimport { Reporter } from \"@intelligentgraphics/ig.gfx.tools.core\";\n\nexport const buildArchiveFromPublishedPackage = (\n\tlocation: PublishedPackageLocation,\n\tmanifest: PackageNpmManifest,\n\tcreatorPackage: CreatorPackage,\n) => {\n\tconst archive = new JSZip();\n\n\tarchive.file(PACKAGE_FILE, JSON.stringify(creatorPackage, null, 2));\n\n\tconst index = readPublishedPackageCreatorIndex(location);\n\n\tif (index !== undefined) {\n\t\tarchive.file(INDEX_FILE, JSON.stringify(index, null, 2));\n\t}\n\n\tarchive.file(\n\t\tmanifest.main,\n\t\tfs.createReadStream(path.join(location.path, manifest.main)),\n\t);\n\n\tif (creatorPackage.Package === \"IG.GFX.Standard\") {\n\t\tconst source = path.join(location.path, \"Images\");\n\n\t\tif (fs.existsSync(source)) {\n\t\t\tconst images = fs.readdirSync(source);\n\n\t\t\tfor (const file of images) {\n\t\t\t\tconst { ext } = path.parse(file);\n\n\t\t\t\tswitch (ext) {\n\t\t\t\t\tcase \".png\":\n\t\t\t\t\tcase \".jpeg\":\n\t\t\t\t\tcase \".jpg\":\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tarchive.file(\n\t\t\t\t\tfile,\n\t\t\t\t\tfs.createReadStream(path.join(source, file)),\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn archive;\n};\n\nconst runtimeScripts: CreatorPackage[\"Type\"][] = [\n\t\"Interactor\",\n\t\"Core\",\n\t\"Mixed\",\n];\n\nconst notRuntimeScripts: CreatorPackage[\"Type\"][] = [\"Context\", \"Evaluator\"];\n\nexport const buildArchiveFromPackage = async (\n\treporter: Reporter,\n\tpackageLocation: PackageLocation,\n\tdata: CreatorPackage,\n\tbinDir: string,\n\tminified = true,\n) => {\n\tconst { domain } = parseCreatorPackageName(data);\n\n\tconst scriptDirectories: string[] = [\n\t\tpackageLocation.path,\n\t\tpackageLocation.scriptsDir,\n\t];\n\n\tif (data.Package === \"IG.GFX.Standard\") {\n\t\treporter.log(`Including Images folder`);\n\t\tscriptDirectories.push(path.join(packageLocation.path, \"Images\"));\n\t}\n\n\tconst manifest = readPackageCreatorManifest(packageLocation);\n\n\tif (manifest !== undefined) {\n\t\tif (manifest.RunTime && notRuntimeScripts.includes(manifest.Type)) {\n\t\t\treporter.log(\n\t\t\t\t\"Setting script RunTime to false because of script type\",\n\t\t\t);\n\t\t\twritePackageCreatorManifest(packageLocation, {\n\t\t\t\t...manifest,\n\t\t\t\tRunTime: false,\n\t\t\t});\n\t\t} else if (\n\t\t\t!manifest.RunTime &&\n\t\t\truntimeScripts.includes(manifest.Type)\n\t\t) {\n\t\t\treporter.log(\n\t\t\t\t\"Setting script RunTime to true because of script type\",\n\t\t\t);\n\t\t\twritePackageCreatorManifest(packageLocation, {\n\t\t\t\t...manifest,\n\t\t\t\tRunTime: true,\n\t\t\t});\n\t\t}\n\t}\n\n\tlet libFile: string | undefined;\n\n\ttry {\n\t\tconst libFilePath = minified\n\t\t\t? path.join(binDir, `${data.Package}.min.js`)\n\t\t\t: path.join(binDir, `${data.Package}.js`);\n\n\t\tlibFile = fs.readFileSync(libFilePath, {\n\t\t\tencoding: \"utf8\",\n\t\t});\n\t} catch (err) {\n\t\tif (!isErrorENOENT(err)) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\n\tconst archive = new JSZip();\n\n\tlet library: string = \"\";\n\n\tif (libFile) {\n\t\tlibrary = libFile;\n\t}\n\n\tif (!library) {\n\t\tconst date = new Date(Date.now());\n\t\tlibrary = `/* This file is part of the ${domain} Data Packages.\n\t\t* Copyright (C) ${date.getFullYear()} intelligentgraphics. All Rights Reserved. */`;\n\t}\n\n\tarchive.file(`${data.Package}.js`, library);\n\tarchive.file(PACKAGE_FILE, JSON.stringify(data, null, 2));\n\n\tconst creatorIndex = readPackageCreatorIndex(packageLocation);\n\n\tif (creatorIndex !== undefined) {\n\t\tarchive.file(INDEX_FILE, JSON.stringify(creatorIndex, null, 2));\n\t}\n\n\tfor (const directory of scriptDirectories) {\n\t\ttry {\n\t\t\tfor (const file of fs.readdirSync(directory)) {\n\t\t\t\tconst { ext } = path.parse(file);\n\n\t\t\t\tswitch (ext) {\n\t\t\t\t\tcase \".png\":\n\t\t\t\t\tcase \".jpeg\":\n\t\t\t\t\tcase \".jpg\":\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tarchive.file(\n\t\t\t\t\tfile,\n\t\t\t\t\tfs.createReadStream(path.join(directory, file)),\n\t\t\t\t);\n\t\t\t}\n\t\t} catch (err) {\n\t\t\treporter.error(`Script directory \"${directory}\" does not exist`);\n\t\t}\n\t}\n\n\treturn archive;\n};\n","import { AssetService } from \"@intelligentgraphics/ig.gfx.tools.core\";\n\nexport interface AssetServiceSessionManager {\n\tgetBasicsSession: () => Promise<AssetService.Session>;\n\tgetTargetSession: () => AssetService.Session;\n\tdestroy: () => Promise<void>;\n}\n\nexport const createAssetServiceSessionManager = async (\n\tparams: AssetService.SessionStartParams,\n): Promise<AssetServiceSessionManager> => {\n\tconst targetSession = await AssetService.startSession(params);\n\tlet basicsSession: AssetService.Session | undefined;\n\n\treturn {\n\t\tgetBasicsSession: async () => {\n\t\t\tif (targetSession.subDomain === \"Basics\") {\n\t\t\t\treturn targetSession;\n\t\t\t}\n\n\t\t\tif (basicsSession === undefined) {\n\t\t\t\tbasicsSession = await AssetService.startSession({\n\t\t\t\t\t...params,\n\t\t\t\t\tsubDomain: \"Basics\",\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn basicsSession;\n\t\t},\n\n\t\tgetTargetSession: () => targetSession,\n\n\t\tdestroy: async () => {\n\t\t\tawait AssetService.closeSession(targetSession);\n\n\t\t\tif (basicsSession !== undefined) {\n\t\t\t\tawait AssetService.closeSession(basicsSession);\n\t\t\t}\n\t\t},\n\t};\n};\n","import {\n\tWorkspaceLocation,\n\tCreatorPackage,\n\tAssetService,\n\tdetermineWorkspaceIGLibraries,\n\treadPublishedPackageNpmManifest,\n\treadPublishedPackageCreatorManifest,\n\tReporter,\n} from \"@intelligentgraphics/ig.gfx.tools.core\";\nimport { buildArchiveFromPublishedPackage } from \"../commands/publish/zip\";\nimport { AssetServiceSessionManager } from \"./assetServiceSessionManager\";\nimport { PackageVersion } from \"./packageVersion\";\nimport { parseVersionFromNumericVersion } from \"./parseVersion\";\nimport { Prompter, PrompterOption } from \"./prompter\";\nimport { Readable } from \"node:stream\";\n\nexport const synchronizeDependencies = async (\n\tworkspaceLocation: WorkspaceLocation,\n\tcreatorPackage: CreatorPackage | undefined,\n\tsessionManager: AssetServiceSessionManager,\n\tprompter: Prompter,\n\treporter: Reporter,\n\tlogUpToDate: boolean = false,\n) => {\n\tinterface UploadedPackage\n\t\textends Omit<AssetService.ExistingPackage, \"version\"> {\n\t\tversion: PackageVersion;\n\t}\n\n\tconst libraries = determineWorkspaceIGLibraries(workspaceLocation);\n\n\t// If there are no libraries, we don't need to check for required versions\n\tif (libraries.length === 0) {\n\t\treturn true;\n\t}\n\n\tconst targetSession = sessionManager.getTargetSession();\n\n\tconst rawUploadedPackages = await AssetService.getExistingPackages(\n\t\ttargetSession,\n\t);\n\n\tconst uploadedPackages = rawUploadedPackages.map(\n\t\t(entry): UploadedPackage => {\n\t\t\tlet version: PackageVersion;\n\n\t\t\ttry {\n\t\t\t\tversion = parseVersionFromNumericVersion(entry.numericVersion);\n\t\t\t} catch (err) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Encountered invalid format for version ${entry.numericVersion}`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (version.buildNumber < 100) {\n\t\t\t\tversion.preRelease = {\n\t\t\t\t\ttype: \"beta\",\n\t\t\t\t\tversion: version.buildNumber,\n\t\t\t\t};\n\t\t\t} else if (version.buildNumber > 100) {\n\t\t\t\tversion.preRelease = {\n\t\t\t\t\ttype: \"patch\",\n\t\t\t\t\tversion: version.buildNumber - 100,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...entry,\n\t\t\t\tversion,\n\t\t\t};\n\t\t},\n\t);\n\n\tfor (const libraryLocation of libraries) {\n\t\tconst libraryManifest =\n\t\t\treadPublishedPackageNpmManifest(libraryLocation);\n\t\tconst libraryCreatorPackage =\n\t\t\treadPublishedPackageCreatorManifest(libraryLocation);\n\n\t\tif (\n\t\t\tlibraryCreatorPackage === undefined ||\n\t\t\tlibraryManifest.main === undefined ||\n\t\t\tlibraryCreatorPackage.Package === creatorPackage?.Package\n\t\t) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst libraryVersion = PackageVersion.extractFromLine(\n\t\t\tlibraryManifest.version,\n\t\t);\n\n\t\tif (libraryVersion.preRelease) {\n\t\t\tlibraryVersion.buildNumber = libraryVersion.preRelease.version;\n\t\t\tlibraryVersion.preRelease = undefined;\n\t\t} else {\n\t\t\tlibraryVersion.buildNumber = 100;\n\t\t}\n\n\t\tlet uploadedPackageInBasics: UploadedPackage | undefined;\n\t\tlet uploadedPackageInTarget: UploadedPackage | undefined;\n\n\t\tfor (const uploadedPackage of uploadedPackages) {\n\t\t\tif (uploadedPackage.scope === libraryCreatorPackage.Package) {\n\t\t\t\tif (uploadedPackage.support) {\n\t\t\t\t\tuploadedPackageInBasics = uploadedPackage;\n\t\t\t\t} else {\n\t\t\t\t\tuploadedPackageInTarget = uploadedPackage;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst validInBasics =\n\t\t\tuploadedPackageInBasics !== undefined &&\n\t\t\t!uploadedPackageInBasics.version.isLesserThan(libraryVersion);\n\t\tconst validInTarget =\n\t\t\tuploadedPackageInTarget !== undefined &&\n\t\t\t!uploadedPackageInTarget.version.isLesserThan(libraryVersion);\n\n\t\tif (validInBasics || validInTarget) {\n\t\t\tif (\n\t\t\t\ttargetSession.subDomain !== \"Basics\" &&\n\t\t\t\tuploadedPackageInBasics !== undefined &&\n\t\t\t\tuploadedPackageInTarget !== undefined\n\t\t\t) {\n\t\t\t\treporter.log(\n\t\t\t\t\t`Package ${libraryCreatorPackage.Package} is uploaded both for Basics and ${targetSession.subDomain}. The package within ${targetSession.subDomain} will be used.`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (logUpToDate) {\n\t\t\t\treporter.log(\n\t\t\t\t\t`Package ${\n\t\t\t\t\t\tlibraryCreatorPackage.Package\n\t\t\t\t\t} is already uploaded with the required version ${libraryVersion.toVersionString(\n\t\t\t\t\t\t{},\n\t\t\t\t\t)}`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst possibleTargets: PrompterOption[] = [];\n\n\t\tif (uploadedPackageInBasics) {\n\t\t\tconst version = uploadedPackageInBasics.version.toVersionString({\n\t\t\t\tbuildNumber: true,\n\t\t\t});\n\n\t\t\tpossibleTargets.push({\n\t\t\t\tvalue: \"Basics\",\n\t\t\t\tname: `Basics (Current: ${version})`,\n\t\t\t});\n\t\t} else {\n\t\t\tpossibleTargets.push({\n\t\t\t\tvalue: \"Basics\",\n\t\t\t\tname: \"Basics (Current: None)\",\n\t\t\t});\n\t\t}\n\n\t\tif (targetSession.subDomain !== \"Basics\") {\n\t\t\tif (uploadedPackageInTarget) {\n\t\t\t\tconst version = uploadedPackageInTarget.version.toVersionString(\n\t\t\t\t\t{\n\t\t\t\t\t\tbuildNumber: true,\n\t\t\t\t\t},\n\t\t\t\t);\n\n\t\t\t\tpossibleTargets.push({\n\t\t\t\t\tvalue: targetSession.subDomain,\n\t\t\t\t\tname: `${targetSession.subDomain} (Current: ${version})`,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tpossibleTargets.push({\n\t\t\t\t\tvalue: targetSession.subDomain,\n\t\t\t\t\tname: `${targetSession.subDomain} (Current: None)`,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tconst libraryVersionString = libraryVersion.toVersionString({\n\t\t\tbuildNumber: true,\n\t\t});\n\n\t\tconst uploadTargetScope = await prompter.ask({\n\t\t\tmessage: `Version ${libraryVersionString} of dependency ${libraryCreatorPackage.Package} is required but not available. Please select a subdomain to upload the correct dependency version to`,\n\t\t\toptions: [\n\t\t\t\t...possibleTargets,\n\t\t\t\t{ name: \"Skip upload\", value: \"Skip\" },\n\t\t\t],\n\t\t\tdefault: possibleTargets[0].value,\n\t\t});\n\n\t\tif (uploadTargetScope === \"Skip\") {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst archive = buildArchiveFromPublishedPackage(\n\t\t\tlibraryLocation,\n\t\t\tlibraryManifest,\n\t\t\tlibraryCreatorPackage,\n\t\t);\n\n\t\tconst newVersionString = libraryVersion.toVersionString({\n\t\t\tbuildNumber: true,\n\t\t});\n\n\t\tconst session =\n\t\t\tuploadTargetScope === \"Basics\"\n\t\t\t\t? await sessionManager.getBasicsSession()\n\t\t\t\t: targetSession;\n\n\t\treporter.log(\n\t\t\t`Uploading package ${libraryCreatorPackage.Package} with version ${newVersionString} to ${session.domain}.${session.subDomain}`,\n\t\t);\n\n\t\tawait AssetService.uploadPackageFromBuffer(\n\t\t\tsession,\n\t\t\t{\n\t\t\t\tname: libraryCreatorPackage.Package,\n\t\t\t\tversion: newVersionString,\n\t\t\t},\n\t\t\tawait archive.generateAsync({ type: \"nodebuffer\" }),\n\t\t);\n\t}\n};\n","import * as path from \"path\";\nimport * as fs from \"fs/promises\";\nimport { createReadStream, createWriteStream } from \"fs\";\nimport { pipeline } from \"stream/promises\";\nimport { exec } from \"child_process\";\nimport { promisify } from \"util\";\n\nimport {\n\tAssetService,\n\tconsoleReporter,\n\tcreatePackageScopedReporter,\n\tisErrorEACCES,\n\tisErrorEPERM,\n\tReporter,\n\twritePackageCreatorManifest,\n} from \"@intelligentgraphics/ig.gfx.tools.core\";\n\nimport {\n\tgetPackageReleasesDirectory,\n\tPackageLocation,\n\tparseCreatorPackageName,\n\treadPackageAnimationList,\n\treadPackageCreatorManifest,\n} from \"../../lib/package\";\nimport {\n\tgetWorkspaceOutputPath,\n\treadWorkspaceNpmManifest,\n} from \"../../lib/workspace\";\nimport { getVersionInformationFromGit } from \"../../lib/git\";\nimport { getWorkspaceBannerText } from \"../../lib/banner\";\nimport { parseVersionFromString } from \"../../lib/parseVersion\";\nimport { getVersionFileHandler } from \"../../lib/versionFile\";\nimport { isErrorENOENT } from \"../../lib/error\";\nimport { Prompter } from \"../../lib/prompter\";\nimport { PackageVersion } from \"../../lib/packageVersion\";\nimport { BuildFoldersOptions, buildFolders } from \"../build\";\nimport { buildArchiveFromPackage } from \"./zip\";\nimport { createAssetServiceSessionManager } from \"../../lib/assetServiceSessionManager\";\nimport { synchronizeDependencies } from \"../../lib/dependencySync\";\nimport { buffer } from \"node:stream/consumers\";\n\nexport interface ReleaseFolderOptions\n\textends Omit<\n\t\tBuildFoldersOptions,\n\t\t\"skipPackagesWithoutTsFiles\" | \"banner\" | \"packages\"\n\t> {\n\tdirectory: PackageLocation;\n\tnoUpload: boolean;\n\tnewVersion: string;\n\tdomain?: string;\n\tsubdomain?: string;\n\taddress?: string;\n\tservice: string;\n\tauthentication?: AssetService.Authentication;\n\tpushOnly: boolean;\n\tbanner?: boolean;\n\tprompter: Prompter;\n\tskipDependencies?: boolean;\n\treporter?: Reporter;\n}\n\nconst execAsync = promisify(exec);\n\nexport const releaseFolder = async (options: ReleaseFolderOptions) => {\n\tconst workspace = options.workspace;\n\tconst location = options.directory;\n\n\tconst { write: writeVersionFile, reset: resetVersionFile } =\n\t\tgetVersionFileHandler(location);\n\n\tconst packageDescription = readPackageCreatorManifest(location);\n\tconst fullPackageName = packageDescription.Package;\n\n\tconst reporter =\n\t\toptions.reporter ??\n\t\tcreatePackageScopedReporter(\n\t\t\tconsoleReporter,\n\t\t\tpackageDescription.Package,\n\t\t);\n\n\tconst { domain, subdomain } = parseCreatorPackageName(packageDescription);\n\n\tconst publishDomain = options.domain ?? domain;\n\tconst publishSubdomain = options.subdomain ?? subdomain;\n\n\tconst sharedPackageJson = readWorkspaceNpmManifest(workspace);\n\n\tlet newVersion: PackageVersion;\n\ttry {\n\t\tnewVersion = parseVersionFromString(options.newVersion);\n\t} catch (err) {\n\t\tthrow new Error(`Please enter a version in this format 1.0.0.100`);\n\t}\n\n\tpackageDescription.Version = newVersion.toVersionString({\n\t\tbuildNumber: true,\n\t});\n\twritePackageCreatorManifest(location, packageDescription);\n\n\tif (newVersion.buildNumber < 100) {\n\t\tnewVersion.preRelease = {\n\t\t\ttype: \"beta\",\n\t\t\tversion: newVersion.buildNumber,\n\t\t};\n\t} else if (newVersion.buildNumber > 100) {\n\t\tnewVersion.preRelease = {\n\t\t\ttype: \"patch\",\n\t\t\tversion: newVersion.buildNumber - 100,\n\t\t};\n\t}\n\n\t// if (sharedPackageJson !== undefined) {\n\t// \treporter.log(\n\t// \t\t`Running npm install to make sure all dependencies are up to date`,\n\t// \t);\n\t// \tawait execAsync(`npm install`, {\n\t// \t\tencoding: \"utf-8\",\n\t// \t\tcwd: workspace.path,\n\t// \t});\n\t// }\n\n\tconst binDir = options.outDir ?? getWorkspaceOutputPath(workspace);\n\tawait fs.mkdir(binDir, { recursive: true });\n\n\tlet assetServerPackageDetails: AssetService.UploadPackageDetails;\n\n\tlet packageNameWithVersion: string;\n\n\t{\n\t\tconst versionWithoutPrelease = newVersion.clone();\n\t\tversionWithoutPrelease.preRelease = undefined;\n\t\tconst newVersionString = versionWithoutPrelease.toVersionString({\n\t\t\tbuildNumber: true,\n\t\t});\n\t\tpackageNameWithVersion = `${packageDescription.Package}_${newVersionString}`;\n\n\t\tassetServerPackageDetails = {\n\t\t\tname: packageDescription.Package,\n\t\t\tversion: newVersionString,\n\t\t};\n\t}\n\n\tlet zipFilePath = path.join(binDir, packageNameWithVersion + \".zip\");\n\tinterface Uploadable {\n\t\tgetStream: () => NodeJS.ReadableStream;\n\t}\n\n\tlet uploadable: Uploadable = {\n\t\tgetStream: () => createReadStream(zipFilePath),\n\t};\n\n\ttry {\n\t\tif (options.pushOnly) {\n\t\t\tconst zipFileExists = await fs.stat(zipFilePath).catch((err) => {\n\t\t\t\tif (isErrorENOENT(err)) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\treturn Promise.reject(err);\n\t\t\t});\n\n\t\t\tif (zipFileExists) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Expected a zip file to exist at path ${zipFilePath} since pushOnly is specified`,\n\t\t\t\t);\n\t\t\t}\n\t\t} else {\n\t\t\tconst gitVersionInformation = await getVersionInformationFromGit(\n\t\t\t\tworkspace,\n\t\t\t\tlocation,\n\t\t\t);\n\n\t\t\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\tbanner: options.banner\n\t\t\t\t\t? {\n\t\t\t\t\t\t\ttext: bannerText,\n\t\t\t\t\t\t\tcommit: gitVersionInformation.commit,\n\t\t\t\t\t\t\tcommitDirty: gitVersionInformation.dirty,\n\t\t\t\t\t\t\tversion: newVersion.toVersionString({\n\t\t\t\t\t\t\t\tbuildNumber: true,\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\tdate: new Date(Date.now()),\n\t\t\t\t\t\t\t// gitVersionInformation.commitDate\n\t\t\t\t\t\t\t// \t? new Date(gitVersionInformation.commitDate)\n\t\t\t\t\t\t\t// \t: new Date(Date.now()),\n\t\t\t\t\t }\n\t\t\t\t\t: undefined,\n\t\t\t\tpreparedReporter: reporter,\n\t\t\t});\n\n\t\t\tnewVersion.preRelease = undefined;\n\n\t\t\ttry {\n\t\t\t\tawait fs.rm(zipFilePath);\n\t\t\t} catch (err) {\n\t\t\t\tif (!isErrorENOENT(err)) {\n\t\t\t\t\tthrow err;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (readPackageAnimationList(location).length > 0) {\n\t\t\t\tconst workspaceManifest = readWorkspaceNpmManifest(workspace);\n\n\t\t\t\tif (\n\t\t\t\t\t!workspaceManifest.dependencies?.[\n\t\t\t\t\t\t\"@intelligentgraphics/3d.ig.gfx.standard\"\n\t\t\t\t\t]\n\t\t\t\t) {\n\t\t\t\t\tconst install = await options.prompter.confirm(\n\t\t\t\t\t\t`The IG.GFX.Standard package should be added as a dependency to provide the 'AnimationInteractor' used to display animations. Do you wish to add it now?`,\n\t\t\t\t\t);\n\n\t\t\t\t\tif (install) {\n\t\t\t\t\t\tawait execAsync(\n\t\t\t\t\t\t\t`npm install @intelligentgraphics/3d.ig.gfx.standard`,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tencoding: \"utf-8\",\n\t\t\t\t\t\t\t\tcwd: workspace.path,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tawait execAsync(`npm run postinstall`, {\n\t\t\t\t\t\t\tcwd: workspace.path,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treporter.log(`Creating zip file`);\n\n\t\t\tconst archive = await buildArchiveFromPackage(\n\t\t\t\treporter,\n\t\t\t\tlocation,\n\t\t\t\tpackageDescription,\n\t\t\t\tbinDir,\n\t\t\t\toptions.minimize,\n\t\t\t);\n\n\t\t\ttry {\n\t\t\t\tconst zipOutputStream = createWriteStream(zipFilePath);\n\t\t\t\tawait pipeline(archive.generateNodeStream(), zipOutputStream);\n\t\t\t} catch (err) {\n\t\t\t\tif (isErrorEACCES(err) || isErrorEPERM(err)) {\n\t\t\t\t\treporter.log(\n\t\t\t\t\t\t`Could not create zip file in the bin directory because of a permissions error. Only using it in-memory`,\n\t\t\t\t\t);\n\t\t\t\t\tuploadable = {\n\t\t\t\t\t\tgetStream: () => archive.generateNodeStream(),\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\tthrow err;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (!options.noUpload) {\n\t\t\tif (!options.authentication) {\n\t\t\t\tthrow new Error(`Expected authentication to be available`);\n\t\t\t}\n\n\t\t\treporter.log(`Opening connection to IG.Asset.Server`);\n\n\t\t\tconst sessionManager = await createAssetServiceSessionManager({\n\t\t\t\turl: options.service,\n\t\t\t\taddress: options.address,\n\t\t\t\tdomain: publishDomain,\n\t\t\t\tsubDomain: publishSubdomain,\n\t\t\t\tauthentication: options.authentication,\n\t\t\t});\n\n\t\t\ttry {\n\t\t\t\tif (!options.skipDependencies) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait synchronizeDependencies(\n\t\t\t\t\t\t\tworkspace,\n\t\t\t\t\t\t\tpackageDescription,\n\t\t\t\t\t\t\tsessionManager,\n\t\t\t\t\t\t\toptions.prompter,\n\t\t\t\t\t\t\treporter,\n\t\t\t\t\t\t);\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\treporter.error(\n\t\t\t\t\t\t\t`Failed to synchronize dependencies for ${packageDescription.Package}`,\n\t\t\t\t\t\t\terr,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treporter.log(\n\t\t\t\t\t`Uploading package to ${publishDomain}.${publishSubdomain}`,\n\t\t\t\t);\n\n\t\t\t\tawait AssetService.uploadPackageFromBuffer(\n\t\t\t\t\tsessionManager.getTargetSession(),\n\t\t\t\t\tassetServerPackageDetails,\n\t\t\t\t\tawait buffer(uploadable.getStream()),\n\t\t\t\t);\n\t\t\t} finally {\n\t\t\t\tawait sessionManager.destroy().catch((err) => {\n\t\t\t\t\treporter.error(\n\t\t\t\t\t\t`Failed to close IG.Asset.Server session(s)`,\n\t\t\t\t\t\terr,\n\t\t\t\t\t);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t} catch (err) {\n\t\tresetVersionFile();\n\t\tthrow err;\n\t}\n\n\tif (newVersion.buildNumber >= 100 && !options.pushOnly) {\n\t\treporter.error(\"Copying zip to releases folder\");\n\n\t\tconst zipFileName = `${packageNameWithVersion}.zip`;\n\t\tconst releasesPath = getPackageReleasesDirectory(location);\n\n\t\tawait fs.mkdir(releasesPath, { recursive: true });\n\t\tawait pipeline(\n\t\t\tuploadable.getStream(),\n\t\t\tcreateWriteStream(path.join(releasesPath, zipFileName)),\n\t\t);\n\t}\n};\n"],"names":["buildArchiveFromPublishedPackage","location","manifest","creatorPackage","archive","JSZip","file","PACKAGE_FILE","JSON","stringify","index","readPublishedPackageCreatorIndex","undefined","INDEX_FILE","main","fs","createReadStream","path","join","Package","source","existsSync","images","readdirSync","ext","parse","runtimeScripts","notRuntimeScripts","buildArchiveFromPackage","reporter","packageLocation","data","binDir","minified","domain","parseCreatorPackageName","scriptDirectories","scriptsDir","log","push","readPackageCreatorManifest","RunTime","includes","Type","writePackageCreatorManifest","libFile","libFilePath","readFileSync","encoding","err","isErrorENOENT","library","date","Date","now","getFullYear","creatorIndex","readPackageCreatorIndex","directory","error","createAssetServiceSessionManager","params","targetSession","AssetService","basicsSession","getBasicsSession","subDomain","getTargetSession","destroy","synchronizeDependencies","workspaceLocation","sessionManager","prompter","logUpToDate","libraries","determineWorkspaceIGLibraries","length","rawUploadedPackages","uploadedPackages","map","entry","version","parseVersionFromNumericVersion","numericVersion","Error","buildNumber","preRelease","type","libraryLocation","libraryManifest","readPublishedPackageNpmManifest","libraryCreatorPackage","readPublishedPackageCreatorManifest","libraryVersion","PackageVersion","extractFromLine","uploadedPackageInBasics","uploadedPackageInTarget","uploadedPackage","scope","support","validInBasics","isLesserThan","validInTarget","toVersionString","possibleTargets","value","name","libraryVersionString","uploadTargetScope","ask","message","options","default","newVersionString","session","generateAsync","execAsync","promisify","exec","releaseFolder","workspace","write","writeVersionFile","reset","resetVersionFile","getVersionFileHandler","packageDescription","fullPackageName","createPackageScopedReporter","consoleReporter","subdomain","publishDomain","publishSubdomain","sharedPackageJson","readWorkspaceNpmManifest","newVersion","parseVersionFromString","Version","outDir","getWorkspaceOutputPath","mkdir","recursive","assetServerPackageDetails","packageNameWithVersion","versionWithoutPrelease","clone","zipFilePath","uploadable","getStream","pushOnly","zipFileExists","stat","catch","Promise","reject","gitVersionInformation","getVersionInformationFromGit","bannerText","getWorkspaceBannerText","buildFolders","packages","banner","text","commit","commitDirty","dirty","preparedReporter","rm","readPackageAnimationList","workspaceManifest","dependencies","install","confirm","cwd","minimize","zipOutputStream","createWriteStream","pipeline","generateNodeStream","isErrorEACCES","isErrorEPERM","noUpload","authentication","url","service","address","skipDependencies","buffer","zipFileName","releasesPath","getPackageReleasesDirectory"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"publishNpm-CEhZI6-O.mjs","sources":["../src/commands/publishNpm.ts"],"sourcesContent":["import * as path from \"path\";\nimport * as fs from \"fs\";\nimport { execSync } from \"child_process\";\n\nimport {\n\tconsoleReporter,\n\tcreatePackageScopedReporter,\n\tReporter,\n} from \"@intelligentgraphics/ig.gfx.tools.core\";\n\nimport { PackageVersion } from \"../lib/packageVersion\";\nimport {\n\tINDEX_FILE,\n\tPackageLocation,\n\tPACKAGE_FILE,\n\treadPackageCreatorIndex,\n\treadPackageCreatorManifest,\n\treadPackageNpmManifest,\n\twritePackageNpmManifest,\n\twritePackageCreatorManifest,\n} from \"../lib/package\";\nimport {\n\tgetWorkspaceOutputPath,\n\titerateWorkspacePackages,\n\treadWorkspaceNpmManifest,\n\tWorkspaceLocation,\n} from \"../lib/workspace\";\nimport { getVersionInformationFromGit } from \"../lib/git\";\nimport { getWorkspaceBannerText } from \"../lib/banner\";\nimport { parseVersionFromString } from \"../lib/parseVersion\";\nimport { getVersionFileHandler } from \"../lib/versionFile\";\n\nimport { buildFolders } from \"./build\";\n\nexport interface PublishToNpmSettings {\n\tworkspace: WorkspaceLocation;\n\tlocation: PackageLocation;\n\tversion: string;\n\tdryRun?: boolean;\n\treporter?: Reporter;\n}\n\nexport const publishToNpm = async ({\n\tworkspace,\n\tlocation,\n\tversion: providedVersion,\n\tdryRun,\n\treporter: providedReporter,\n}: PublishToNpmSettings) => {\n\tlet newVersion: PackageVersion;\n\ttry {\n\t\tnewVersion = parseVersionFromString(providedVersion);\n\t} catch (err) {\n\t\tthrow new Error(`Please enter a version in this format 1.0.0.100`);\n\t}\n\n\tif (newVersion.buildNumber < 100) {\n\t\tnewVersion.preRelease = {\n\t\t\ttype: \"beta\",\n\t\t\tversion: newVersion.buildNumber,\n\t\t};\n\t} else if (newVersion.buildNumber === 100) {\n\t\tnewVersion.preRelease = undefined;\n\t} else {\n\t\tthrow new Error(\n\t\t\t`Refusing to publish a package with a build version larger than 100.`,\n\t\t);\n\t}\n\n\tconst workspaceManifest = readWorkspaceNpmManifest(workspace);\n\tconst workspaceOutputPath = getWorkspaceOutputPath(workspace);\n\tconst creatorPackage = readPackageCreatorManifest(location);\n\n\tconst reporter =\n\t\tprovidedReporter ??\n\t\tcreatePackageScopedReporter(consoleReporter, creatorPackage.Package);\n\n\tlet packageJson = readPackageNpmManifest(location);\n\n\tif (packageJson === undefined) {\n\t\tpackageJson = {\n\t\t\tname:\n\t\t\t\t\"@intelligentgraphics/3d\" +\n\t\t\t\tcreatorPackage.Package.toLowerCase(),\n\t\t\tversion: \"1.0.0\",\n\t\t\tdescription: creatorPackage.Package,\n\t\t};\n\t}\n\n\tpackageJson.version = newVersion.toVersionString({\n\t\tbuildNumber: false,\n\t});\n\tpackageJson.description = newVersion.toDescriptionString(\n\t\tcreatorPackage.Package,\n\t);\n\tpackageJson.main = `${creatorPackage.Package}.js`;\n\tpackageJson.types = `${creatorPackage.Package}.d.ts`;\n\tpackageJson.publishConfig ??= {};\n\tpackageJson.publishConfig.acccess = \"public\";\n\tpackageJson.ig = {\n\t\tscriptingLibrary: true,\n\t};\n\tpackageJson.files = undefined;\n\n\tconst publishDir = path.join(\n\t\tworkspaceOutputPath,\n\t\t\"publish\",\n\t\tcreatorPackage.Package,\n\t);\n\tfs.rmSync(publishDir, { recursive: true, force: true });\n\tfs.mkdirSync(publishDir, { recursive: true });\n\n\twritePackageNpmManifest(location, packageJson);\n\tcreatorPackage.Version = newVersion.toVersionString({ buildNumber: true });\n\twritePackageCreatorManifest(location, creatorPackage);\n\n\tgetVersionFileHandler(location).write(creatorPackage.Package, newVersion);\n\n\tconst gitVersionInformation = await getVersionInformationFromGit(\n\t\tworkspace,\n\t\tlocation,\n\t);\n\n\tconst bannerText = getWorkspaceBannerText(workspaceManifest);\n\n\tawait buildFolders({\n\t\tworkspace,\n\t\tpackages: [location],\n\t\tminimize: true,\n\t\toutDir: getWorkspaceOutputPath(workspace),\n\t\tbanner: {\n\t\t\ttext: bannerText,\n\t\t\tcommit: gitVersionInformation.commit,\n\t\t\tcommitDirty: gitVersionInformation.dirty,\n\t\t\tversion: newVersion.toVersionString({\n\t\t\t\tbuildNumber: true,\n\t\t\t}),\n\t\t\tdate: new Date(Date.now()),\n\t\t},\n\t});\n\n\tfs.copyFileSync(\n\t\tpath.join(\n\t\t\tgetWorkspaceOutputPath(workspace),\n\t\t\t`${creatorPackage.Package}.d.ts`,\n\t\t),\n\t\tpath.join(publishDir, `${creatorPackage.Package}.d.ts`),\n\t);\n\tfs.copyFileSync(\n\t\tpath.join(\n\t\t\tgetWorkspaceOutputPath(workspace),\n\t\t\t`${creatorPackage.Package}.min.js`,\n\t\t),\n\t\tpath.join(publishDir, `${creatorPackage.Package}.js`),\n\t);\n\n\tfs.copyFileSync(\n\t\tpath.join(location.manifestDir, \"package.json\"),\n\t\tpath.join(publishDir, \"package.json\"),\n\t);\n\n\tfs.writeFileSync(\n\t\tpath.join(publishDir, PACKAGE_FILE),\n\t\tJSON.stringify(creatorPackage, null, 2),\n\t);\n\n\tconst index = readPackageCreatorIndex(location);\n\n\tif (index !== undefined) {\n\t\tfs.writeFileSync(\n\t\t\tpath.join(publishDir, INDEX_FILE),\n\t\t\tJSON.stringify(index),\n\t\t);\n\t}\n\n\tconst readmeName = fs\n\t\t.readdirSync(location.path)\n\t\t.find((name) => name.toLowerCase() === \"readme.md\");\n\n\tif (readmeName !== undefined) {\n\t\tfs.copyFileSync(\n\t\t\tpath.join(location.path, readmeName),\n\t\t\tpath.join(publishDir, readmeName),\n\t\t);\n\t}\n\n\tif (creatorPackage.Package === \"IG.GFX.Standard\") {\n\t\tconst source = path.join(location.path, \"Images\");\n\t\tconst target = path.join(publishDir, \"Images\");\n\t\tcopyImagesDirectory(source, target);\n\t}\n\n\tconst npmPublishArgs: string[] = [];\n\n\tif (dryRun) {\n\t\tnpmPublishArgs.push(\"--dry-run\");\n\t}\n\n\tif (newVersion.preRelease) {\n\t\tnpmPublishArgs.push(\"--tag\", \"next\");\n\t}\n\n\treporter.log(\n\t\t`Publishing to npm with version ${packageJson.version} using tag ${\n\t\t\tnewVersion.preRelease ? \"next\" : \"latest\"\n\t\t}`,\n\t);\n\n\texecSync([\"npm\", \"publish\", ...npmPublishArgs].join(\" \"), {\n\t\tstdio: \"inherit\",\n\t\tencoding: \"utf8\",\n\t\tcwd: publishDir,\n\t});\n\n\tfor (const packageLocation of iterateWorkspacePackages(workspace)) {\n\t\tconst manifest = readPackageNpmManifest(packageLocation);\n\n\t\tif (manifest?.dependencies?.[packageJson.name] !== undefined) {\n\t\t\tmanifest.dependencies[packageJson.name] = \"^\" + packageJson.version;\n\t\t\twritePackageNpmManifest(packageLocation, manifest);\n\t\t}\n\t}\n};\n\nconst copyImagesDirectory = (source: string, target: string) => {\n\tfs.mkdirSync(target, { recursive: true });\n\n\tfor (const name of fs.readdirSync(source)) {\n\t\tconst sourcePath = path.join(source, name);\n\t\tconst targetPath = path.join(target, name);\n\n\t\tif (fs.statSync(sourcePath).isDirectory()) {\n\t\t\tcopyImagesDirectory(sourcePath, targetPath);\n\t\t} else {\n\t\t\tif (\n\t\t\t\t[\".png\", \".jpg\", \".jpeg\", \".gif\"].includes(path.extname(name))\n\t\t\t) {\n\t\t\t\tfs.copyFileSync(sourcePath, targetPath);\n\t\t\t}\n\t\t}\n\t}\n};\n"],"names":["publishToNpm","workspace","location","version","providedVersion","dryRun","reporter","providedReporter","newVersion","parseVersionFromString","err","Error","buildNumber","preRelease","type","undefined","workspaceManifest","readWorkspaceNpmManifest","workspaceOutputPath","getWorkspaceOutputPath","creatorPackage","readPackageCreatorManifest","createPackageScopedReporter","consoleReporter","Package","packageJson","readPackageNpmManifest","name","toLowerCase","description","toVersionString","toDescriptionString","main","types","publishConfig","acccess","ig","scriptingLibrary","files","publishDir","path","join","fs","rmSync","recursive","force","mkdirSync","writePackageNpmManifest","Version","writePackageCreatorManifest","getVersionFileHandler","write","gitVersionInformation","getVersionInformationFromGit","bannerText","getWorkspaceBannerText","buildFolders","packages","minimize","outDir","banner","text","commit","commitDirty","dirty","date","Date","now","copyFileSync","manifestDir","writeFileSync","PACKAGE_FILE","JSON","stringify","index","readPackageCreatorIndex","INDEX_FILE","readmeName","readdirSync","find","source","target","copyImagesDirectory","npmPublishArgs","push","log","execSync","stdio","encoding","cwd","packageLocation","iterateWorkspacePackages","manifest","dependencies","sourcePath","targetPath","statSync","isDirectory","includes","extname"],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- import glob from 'glob';
2
-
3
- const getPackageTypescriptFiles = (location)=>glob.sync("**/*.ts", {
4
- absolute: true,
5
- cwd: location.scriptsDir,
6
- ignore: "node_modules/**/*"
7
- });
8
-
9
- export { getPackageTypescriptFiles as g };
10
- //# sourceMappingURL=scripts-EvIjiH6G.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scripts-EvIjiH6G.mjs","sources":["../../tools.core/build/scripts.mjs"],"sourcesContent":["import glob from 'glob';\n\nconst getPackageTypescriptFiles = (location)=>glob.sync(\"**/*.ts\", {\n absolute: true,\n cwd: location.scriptsDir,\n ignore: \"node_modules/**/*\"\n });\n\nexport { getPackageTypescriptFiles };\n//# sourceMappingURL=scripts.mjs.map\n"],"names":["getPackageTypescriptFiles","location","glob","sync","absolute","cwd","scriptsDir","ignore"],"mappings":";;AAEA,MAAMA,4BAA4B,CAACC,QAAAA,GAAWC,IAAKC,CAAAA,IAAI,CAAC,SAAW,EAAA;QAC3DC,QAAU,EAAA,IAAA;AACVC,QAAAA,GAAAA,EAAKJ,SAASK,UAAU;QACxBC,MAAQ,EAAA,mBAAA;AACZ,KAAA;;;;"}