@intelligentgraphics/ig.gfx.packager 3.0.0-alpha.1 → 3.0.0-alpha.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/build/cli.mjs +595 -0
  2. package/build/cli.mjs.map +1 -0
  3. package/build/commands/{build.js → build.mjs} +73 -77
  4. package/build/commands/build.mjs.map +1 -0
  5. package/build/commands/{generate.js → generate.mjs} +31 -58
  6. package/build/commands/generate.mjs.map +1 -0
  7. package/build/commands/postinstall.mjs +49 -0
  8. package/build/commands/postinstall.mjs.map +1 -0
  9. package/build/commands/publishNpm.mjs +129 -0
  10. package/build/commands/publishNpm.mjs.map +1 -0
  11. package/build/commands/{release.js → release.mjs} +101 -124
  12. package/build/commands/release.mjs.map +1 -0
  13. package/build/{dependencies.js → dependencies.mjs} +16 -40
  14. package/build/dependencies.mjs.map +1 -0
  15. package/build/index.mjs +6 -0
  16. package/build/index.mjs.map +1 -0
  17. package/build/scripts.mjs +11 -0
  18. package/build/scripts.mjs.map +1 -0
  19. package/build/versionFile.mjs +365 -0
  20. package/build/versionFile.mjs.map +1 -0
  21. package/package.json +12 -11
  22. package/readme.md +12 -0
  23. package/build/cli.js +0 -8316
  24. package/build/cli.js.map +0 -1
  25. package/build/commands/build.js.map +0 -1
  26. package/build/commands/generate.js.map +0 -1
  27. package/build/commands/postinstall.js +0 -78
  28. package/build/commands/postinstall.js.map +0 -1
  29. package/build/commands/publishNpm.js +0 -157
  30. package/build/commands/publishNpm.js.map +0 -1
  31. package/build/commands/release.js.map +0 -1
  32. package/build/dependencies.js.map +0 -1
  33. package/build/index.js +0 -8
  34. package/build/index.js.map +0 -1
  35. package/build/scripts.js +0 -32
  36. package/build/scripts.js.map +0 -1
  37. package/build/versionFile.js +0 -182
  38. package/build/versionFile.js.map +0 -1
@@ -1,38 +1,12 @@
1
1
  #!/usr/bin/env node
2
- 'use strict';
3
-
4
- var path = require('path');
5
- var fs = require('fs');
6
- var glob = require('glob');
7
- var terser = require('terser');
8
- var cli = require('../cli.js');
9
- var ts = require('typescript');
10
- var scripts = require('../scripts.js');
11
- var typedoc = require('typedoc');
12
-
13
- function _interopNamespaceDefault(e) {
14
- var n = Object.create(null);
15
- if (e) {
16
- Object.keys(e).forEach(function (k) {
17
- if (k !== 'default') {
18
- var d = Object.getOwnPropertyDescriptor(e, k);
19
- Object.defineProperty(n, k, d.get ? d : {
20
- enumerable: true,
21
- get: function () { return e[k]; }
22
- });
23
- }
24
- });
25
- }
26
- n.default = e;
27
- return Object.freeze(n);
28
- }
29
-
30
- var path__namespace = /*#__PURE__*/_interopNamespaceDefault(path);
31
- var fs__namespace = /*#__PURE__*/_interopNamespaceDefault(fs);
32
- var glob__namespace = /*#__PURE__*/_interopNamespaceDefault(glob);
33
- var terser__namespace = /*#__PURE__*/_interopNamespaceDefault(terser);
34
- var ts__namespace = /*#__PURE__*/_interopNamespaceDefault(ts);
35
- var typedoc__namespace = /*#__PURE__*/_interopNamespaceDefault(typedoc);
2
+ import * as path from 'path';
3
+ import * as fs from 'fs';
4
+ import glob from 'glob';
5
+ import terser from 'terser';
6
+ import { d as detectWorkspace, t as translate, r as readPackageCreatorManifest, a as detectPackage, b as readPackageNpmManifest } from '../cli.mjs';
7
+ import ts from 'typescript';
8
+ import { g as getPackageTypescriptFiles } from '../scripts.mjs';
9
+ import typedoc from 'typedoc';
36
10
 
37
11
  const logPackageMessage = (name, step, index, total) => {
38
12
  const numLength = total === undefined ? undefined : total.toString().length;
@@ -44,9 +18,9 @@ const logPackageMessage = (name, step, index, total) => {
44
18
  const tryReadTsConfig = location => {
45
19
  const {
46
20
  config
47
- } = ts__namespace.readConfigFile(path__namespace.join(location.scriptsDir, "tsconfig.json"), path => {
21
+ } = ts.readConfigFile(path.join(location.scriptsDir, "tsconfig.json"), path => {
48
22
  try {
49
- return fs__namespace.readFileSync(path, "utf8");
23
+ return fs.readFileSync(path, "utf8");
50
24
  } catch {
51
25
  return undefined;
52
26
  }
@@ -56,17 +30,17 @@ const tryReadTsConfig = location => {
56
30
  const build = async location => {
57
31
  const config = tryReadTsConfig(location);
58
32
  config.compilerOptions.lib = ["es5", "dom"];
59
- const result = ts__namespace.convertCompilerOptionsFromJson(config.compilerOptions, location.scriptsDir);
33
+ const result = ts.convertCompilerOptionsFromJson(config.compilerOptions, location.scriptsDir);
60
34
  const compilerOptions = {
61
35
  ...result.options,
62
36
  removeComments: false,
63
37
  declaration: true,
64
38
  sourceMap: false,
65
39
  outFile: "out.js",
66
- target: ts__namespace.ScriptTarget.ES5,
40
+ target: ts.ScriptTarget.ES5,
67
41
  noEmitOnError: true
68
42
  };
69
- const host = ts__namespace.createCompilerHost(compilerOptions);
43
+ const host = ts.createCompilerHost(compilerOptions);
70
44
  host.getCurrentDirectory = () => location.scriptsDir;
71
45
  let js;
72
46
  let definitions;
@@ -77,7 +51,7 @@ const build = async location => {
77
51
  definitions = data;
78
52
  }
79
53
  };
80
- const files = scripts.getPackageTypescriptFiles(location);
54
+ const files = getPackageTypescriptFiles(location);
81
55
  if (files.length === 0) {
82
56
  throw new Error(`Expected typescript files to exist when building a package. Packages only consisting of animation jsons do not need to be built.`);
83
57
  }
@@ -86,9 +60,9 @@ const build = async location => {
86
60
  options: compilerOptions,
87
61
  host
88
62
  };
89
- const program = ts__namespace.createProgram(programOptions);
63
+ const program = ts.createProgram(programOptions);
90
64
  const emitResult = program.emit();
91
- const allDiagnostics = ts__namespace.getPreEmitDiagnostics(program);
65
+ const allDiagnostics = ts.getPreEmitDiagnostics(program);
92
66
  if (!emitResult.emitSkipped) {
93
67
  if (allDiagnostics.length > 0) {
94
68
  console.log(allDiagnostics.map(createErrorMessage).join("\n"));
@@ -106,19 +80,19 @@ const build = async location => {
106
80
  };
107
81
  const createErrorMessage = diagnostic => {
108
82
  if (!diagnostic.file) {
109
- return `${ts__namespace.flattenDiagnosticMessageText(diagnostic.messageText, "\n")}`;
83
+ return `${ts.flattenDiagnosticMessageText(diagnostic.messageText, "\n")}`;
110
84
  }
111
85
  const {
112
86
  line,
113
87
  character
114
88
  } = diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start);
115
- const message = ts__namespace.flattenDiagnosticMessageText(diagnostic.messageText, "\n");
89
+ const message = ts.flattenDiagnosticMessageText(diagnostic.messageText, "\n");
116
90
  return `${diagnostic.file.fileName} (${line + 1},${character + 1}): ${message}`;
117
91
  };
118
92
 
119
93
  const generateDocs = async (folderPath, declarationFile, outFolder, name) => {
120
- const app = new typedoc__namespace.Application();
121
- const mediaDir = path__namespace.join(folderPath, "Media");
94
+ const app = new typedoc.Application();
95
+ const mediaDir = path.join(folderPath, "Media");
122
96
  app.bootstrap({
123
97
  entryPoints: [declarationFile],
124
98
  media: mediaDir,
@@ -128,7 +102,7 @@ const generateDocs = async (folderPath, declarationFile, outFolder, name) => {
128
102
  target: ts.ScriptTarget.ES5
129
103
  }, undefined);
130
104
  app.options.setValue("name", name);
131
- const [readmePath] = glob__namespace.sync("**/readme.md", {
105
+ const [readmePath] = glob.sync("**/readme.md", {
132
106
  absolute: true,
133
107
  cwd: folderPath
134
108
  });
@@ -141,29 +115,53 @@ const generateDocs = async (folderPath, declarationFile, outFolder, name) => {
141
115
  }
142
116
  };
143
117
 
118
+ // Stolen from ig.tools.core
119
+
120
+ const toposort = packages => {
121
+ const queue = Object.getOwnPropertyNames(packages);
122
+ const result = [];
123
+ let index = 0;
124
+ while (queue.length > 0) {
125
+ if (index >= queue.length) {
126
+ throw new Error("Packages can not have cyclic dependencies");
127
+ }
128
+ const queueEntry = queue[index];
129
+ const dependencies = packages[queueEntry];
130
+ const dependencyQueued = dependencies.some(dependency => queue.includes(dependency));
131
+ if (dependencyQueued) {
132
+ index++;
133
+ continue;
134
+ }
135
+ queue.splice(index, 1);
136
+ index = 0;
137
+ result.push(queueEntry);
138
+ }
139
+ return result;
140
+ };
141
+
144
142
  const buildFolders = async options => {
145
143
  if (options.outDir !== undefined && options.clean) {
146
- fs__namespace.rmSync(options.outDir, {
144
+ fs.rmSync(options.outDir, {
147
145
  recursive: true
148
146
  });
149
147
  }
150
- const workspace = cli.detectWorkspace(options.cwd);
148
+ const workspace = detectWorkspace(options.cwd);
151
149
  const folders = resolvePackagesFromArgs(options.directories, workspace);
152
150
  if (folders.length === 0) {
153
- return console.log(cli.translate("messages.buildSkipEmpty"));
151
+ return console.log(translate("messages.buildSkipEmpty"));
154
152
  }
155
153
  const sortedPackages = buildSortedPackageMap(folders);
156
154
  let index = 1;
157
155
  for (const [, {
158
156
  location
159
157
  }] of sortedPackages) {
160
- if (options.skipPackagesWithoutTsFiles && scripts.getPackageTypescriptFiles(location).length === 0) {
158
+ if (options.skipPackagesWithoutTsFiles && getPackageTypescriptFiles(location).length === 0) {
161
159
  continue;
162
160
  }
163
161
  ensureTsConfig(location);
164
- const data = cli.readPackageCreatorManifest(location);
162
+ const data = readPackageCreatorManifest(location);
165
163
  const logStep = step => logPackageMessage(data.Package, step, index, sortedPackages.size);
166
- logStep(cli.translate("messages.building"));
164
+ logStep(translate("messages.building"));
167
165
  const buildResult = await build(location);
168
166
  const banner = options.banner ? createBannerComment(options.banner) : undefined;
169
167
  if (banner) {
@@ -171,39 +169,39 @@ const buildFolders = async options => {
171
169
  buildResult.definitions = banner + "\n" + buildResult.definitions;
172
170
  }
173
171
  const outputDirectory = options.outDir || location.scriptsDir;
174
- fs__namespace.mkdirSync(outputDirectory, {
172
+ fs.mkdirSync(outputDirectory, {
175
173
  recursive: true
176
174
  });
177
- fs__namespace.writeFileSync(path__namespace.join(outputDirectory, `${data.Package}.js`), buildResult.js, {
175
+ fs.writeFileSync(path.join(outputDirectory, `${data.Package}.js`), buildResult.js, {
178
176
  encoding: "utf8"
179
177
  });
180
- fs__namespace.writeFileSync(path__namespace.join(outputDirectory, `${data.Package}.d.ts`), buildResult.definitions, {
178
+ fs.writeFileSync(path.join(outputDirectory, `${data.Package}.d.ts`), buildResult.definitions, {
181
179
  encoding: "utf8"
182
180
  });
183
181
  if (options.minimize) {
184
- const minifyResult = terser__namespace.minify(buildResult.js, {
182
+ const minifyResult = terser.minify(buildResult.js, {
185
183
  ecma: 5
186
184
  });
187
185
  if (minifyResult.error || !minifyResult.code) {
188
186
  console.warn("Not writing minified script version because of error", minifyResult.error);
189
187
  }
190
- const minifiedPath = path__namespace.join(outputDirectory, `${data.Package}.min.js`);
191
- fs__namespace.writeFileSync(minifiedPath, minifyResult.code, {
188
+ const minifiedPath = path.join(outputDirectory, `${data.Package}.min.js`);
189
+ fs.writeFileSync(minifiedPath, minifyResult.code, {
192
190
  encoding: "utf8"
193
191
  });
194
192
  }
195
193
  if (location.path.includes("Basics")) {
196
- fs__namespace.mkdirSync(path__namespace.join(options.cwd, "lib"), {
194
+ fs.mkdirSync(path.join(options.cwd, "lib"), {
197
195
  recursive: true
198
196
  });
199
- logStep(cli.translate("messages.basicsCopy"));
200
- fs__namespace.writeFileSync(path__namespace.join(options.cwd, "lib", `${data.Package}.d.ts`), buildResult.definitions, {
197
+ logStep(translate("messages.basicsCopy"));
198
+ fs.writeFileSync(path.join(options.cwd, "lib", `${data.Package}.d.ts`), buildResult.definitions, {
201
199
  encoding: "utf8"
202
200
  });
203
201
  }
204
202
  if (options.docs) {
205
- logStep(cli.translate("messages.docsGeneration"));
206
- await generateDocs(location.scriptsDir, path__namespace.join(options.outDir || location.scriptsDir, `${data.Package}.d.ts`), path__namespace.join(options.cwd, "docs", data.Package), data.Package);
203
+ logStep(translate("messages.docsGeneration"));
204
+ await generateDocs(location.scriptsDir, path.join(options.outDir || location.scriptsDir, `${data.Package}.d.ts`), path.join(options.cwd, "docs", data.Package), data.Package);
207
205
  }
208
206
 
209
207
  // logStep(translate("messages.built"));
@@ -214,12 +212,12 @@ const buildFolders = async options => {
214
212
  const resolvePackagesFromArgs = (args = [], workspace) => {
215
213
  const folders = new Map();
216
214
  for (const arg of args) {
217
- glob__namespace.sync(arg, {
215
+ glob.sync(arg, {
218
216
  cwd: workspace.path,
219
217
  absolute: true
220
218
  }).forEach(folder => {
221
219
  try {
222
- const location = cli.detectPackage(workspace, folder);
220
+ const location = detectPackage(workspace, folder);
223
221
  folders.set(folder, location);
224
222
  } catch (err) {}
225
223
  });
@@ -227,15 +225,15 @@ const resolvePackagesFromArgs = (args = [], workspace) => {
227
225
  return Array.from(folders.values());
228
226
  };
229
227
  const ensureTsConfig = location => {
230
- const tsconfigPath = path__namespace.join(location.scriptsDir, "tsconfig.json");
231
- if (!fs__namespace.existsSync(tsconfigPath)) {
228
+ const tsconfigPath = path.join(location.scriptsDir, "tsconfig.json");
229
+ if (!fs.existsSync(tsconfigPath)) {
232
230
  const content = {};
233
231
  applyTsConfigOption(content);
234
- fs__namespace.writeFileSync(tsconfigPath, JSON.stringify(content, undefined, "\t"), "utf8");
232
+ fs.writeFileSync(tsconfigPath, JSON.stringify(content, undefined, "\t"), "utf8");
235
233
  } else {
236
- const content = JSON.parse(fs__namespace.readFileSync(tsconfigPath, "utf8"));
234
+ const content = JSON.parse(fs.readFileSync(tsconfigPath, "utf8"));
237
235
  applyTsConfigOption(content);
238
- fs__namespace.writeFileSync(tsconfigPath, JSON.stringify(content, undefined, "\t"), "utf8");
236
+ fs.writeFileSync(tsconfigPath, JSON.stringify(content, undefined, "\t"), "utf8");
239
237
  }
240
238
  };
241
239
  const applyTsConfigOption = data => {
@@ -245,7 +243,7 @@ const applyTsConfigOption = data => {
245
243
  };
246
244
  const buildSortedPackageMap = folders => {
247
245
  const packages = Array.from(folders).reduce((acc, location) => {
248
- const data = cli.readPackageNpmManifest(location);
246
+ const data = readPackageNpmManifest(location);
249
247
  if (data !== undefined) {
250
248
  acc[data.name] = {
251
249
  data,
@@ -272,7 +270,7 @@ const buildSortedPackageMap = folders => {
272
270
  }
273
271
  return acc;
274
272
  }, {});
275
- const sortedPackages = cli.build.toposort(packageDependencies);
273
+ const sortedPackages = toposort(packageDependencies);
276
274
  const result = new Map();
277
275
  for (const packageName of sortedPackages) {
278
276
  result.set(packageName, packages[packageName]);
@@ -320,7 +318,5 @@ var index = /*#__PURE__*/Object.freeze({
320
318
  buildFolders: buildFolders
321
319
  });
322
320
 
323
- exports.buildFolders = buildFolders;
324
- exports.index = index;
325
- exports.logPackageMessage = logPackageMessage;
326
- //# sourceMappingURL=build.js.map
321
+ export { buildFolders as b, index as i, logPackageMessage as l };
322
+ //# sourceMappingURL=build.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.mjs","sources":["../../src/lib/log.ts","../../src/commands/build/tsc.ts","../../src/commands/build/docs.ts","../../src/lib/toposort.ts","../../src/commands/build/index.ts"],"sourcesContent":["export const logPackageMessage = (\n\tname: string,\n\tstep: string,\n\tindex?: number,\n\ttotal?: number,\n) => {\n\tconst numLength = total === undefined ? undefined : total.toString().length;\n\n\tconst indexString =\n\t\ttotal === undefined || total < 2\n\t\t\t? \"\"\n\t\t\t: `${index!.toString().padStart(numLength!, \"0\")}/${total} `;\n\n\tconst identifierString = `${indexString}${name.padEnd(15)}`;\n\n\tconsole.log(`${identifierString} >> ${step}`);\n};\n","import ts from \"typescript\";\nimport * as path from \"path\";\nimport * as fs from \"fs\";\n\nimport { PackageLocation } from \"../../lib/package\";\n\nimport { FolderBuilder } from \".\";\nimport { getPackageTypescriptFiles } from \"../../lib/scripts\";\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 build: FolderBuilder = async (location: PackageLocation) => {\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: false,\n\t\toutFile: \"out.js\",\n\t\ttarget: ts.ScriptTarget.ES5,\n\t\tnoEmitOnError: true,\n\t};\n\n\tconst host = ts.createCompilerHost(compilerOptions);\n\thost.getCurrentDirectory = () => location.scriptsDir;\n\n\tlet js: string | undefined;\n\tlet definitions: string | undefined;\n\n\thost.writeFile = (fileName, data, writeByteOrderMark) => {\n\t\tif (fileName.endsWith(\".js\")) {\n\t\t\tjs = data;\n\t\t} else if (fileName.endsWith(\".d.ts\")) {\n\t\t\tdefinitions = data;\n\t\t}\n\t};\n\n\tconst files = getPackageTypescriptFiles(location);\n\n\tif (files.length === 0) {\n\t\tthrow new Error(\n\t\t\t`Expected typescript files to exist when building a package. Packages only consisting of animation jsons do not need to be built.`,\n\t\t);\n\t}\n\n\tconst programOptions: ts.CreateProgramOptions = {\n\t\trootNames: files,\n\t\toptions: compilerOptions,\n\t\thost,\n\t};\n\n\tconst program = ts.createProgram(programOptions);\n\tconst emitResult = program.emit();\n\tconst allDiagnostics = ts.getPreEmitDiagnostics(program);\n\n\tif (!emitResult.emitSkipped) {\n\t\tif (allDiagnostics.length > 0) {\n\t\t\tconsole.log(allDiagnostics.map(createErrorMessage).join(\"\\n\"));\n\t\t}\n\n\t\tif (js === undefined || definitions === undefined) {\n\t\t\tthrow new Error(`Unexpected: no js or definitions were created`);\n\t\t}\n\n\t\treturn { js, definitions };\n\t}\n\n\tconst error = allDiagnostics.map(createErrorMessage).join(\"\\n\");\n\n\tthrow new Error(error);\n};\n\nconst createErrorMessage = (diagnostic: ts.Diagnostic) => {\n\tif (!diagnostic.file) {\n\t\treturn `${ts.flattenDiagnosticMessageText(\n\t\t\tdiagnostic.messageText,\n\t\t\t\"\\n\",\n\t\t)}`;\n\t}\n\n\tconst { line, character } = diagnostic.file.getLineAndCharacterOfPosition(\n\t\tdiagnostic.start!,\n\t);\n\n\tconst message = ts.flattenDiagnosticMessageText(\n\t\tdiagnostic.messageText,\n\t\t\"\\n\",\n\t);\n\n\treturn `${diagnostic.file.fileName} (${line + 1},${\n\t\tcharacter + 1\n\t}): ${message}`;\n};\n","import typedoc from \"typedoc\";\nimport glob from \"glob\";\nimport ts from \"typescript\";\nimport * as path from \"path\";\n\nexport const generateDocs = async (\n\tfolderPath: string,\n\tdeclarationFile: string,\n\toutFolder: string,\n\tname: string,\n) => {\n\tconst app = new typedoc.Application();\n\n\tconst mediaDir = path.join(folderPath, \"Media\");\n\n\tapp.bootstrap({\n\t\tentryPoints: [declarationFile],\n\t\tmedia: mediaDir,\n\t\tout: outFolder,\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: folderPath,\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 * as path from \"path\";\nimport * as fs from \"fs\";\nimport glob from \"glob\";\nimport terser from \"terser\";\n\nimport { logPackageMessage } from \"../../lib/log\";\nimport { translate } from \"../../lib/localization\";\nimport { build as tscBuild } from \"./tsc\";\nimport { generateDocs } from \"./docs\";\nimport {\n\tdetectPackage,\n\tPackageLocation,\n\treadPackageCreatorManifest,\n\treadPackageNpmManifest,\n} from \"../../lib/package\";\nimport { detectWorkspace, WorkspaceLocation } from \"../../lib/workspace\";\nimport { getPackageTypescriptFiles } from \"../../lib/scripts\";\nimport { toposort } from \"../../lib/toposort\";\nimport { PackageJSON } from \"../../lib/packageJSON\";\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\tcwd: string;\n\tdirectories: string[];\n\toutDir?: string;\n\tminimize: boolean;\n\tbanner?: BannerOptions;\n\tclean?: boolean;\n\tdocs?: boolean;\n\tskipPackagesWithoutTsFiles?: boolean;\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) => 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\tfs.rmSync(options.outDir, { recursive: true });\n\t}\n\n\tconst workspace = detectWorkspace(options.cwd);\n\tconst folders = resolvePackagesFromArgs(options.directories, workspace);\n\n\tif (folders.length === 0) {\n\t\treturn console.log(translate(\"messages.buildSkipEmpty\"));\n\t}\n\n\tconst sortedPackages = buildSortedPackageMap(folders);\n\n\tlet index = 1;\n\n\tfor (const [, { location }] of sortedPackages) {\n\t\tif (\n\t\t\toptions.skipPackagesWithoutTsFiles &&\n\t\t\tgetPackageTypescriptFiles(location).length === 0\n\t\t) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tensureTsConfig(location);\n\n\t\tconst data = readPackageCreatorManifest(location);\n\n\t\tconst logStep = (step: string) =>\n\t\t\tlogPackageMessage(data.Package, step, index, sortedPackages.size);\n\n\t\tlogStep(translate(\"messages.building\"));\n\n\t\tconst buildResult = await tscBuild(location);\n\t\tconst banner = options.banner\n\t\t\t? createBannerComment(options.banner)\n\t\t\t: undefined;\n\n\t\tif (banner) {\n\t\t\tbuildResult.js = banner + \"\\n\" + buildResult.js;\n\t\t\tbuildResult.definitions = banner + \"\\n\" + buildResult.definitions;\n\t\t}\n\n\t\tconst outputDirectory = options.outDir || location.scriptsDir;\n\t\tfs.mkdirSync(outputDirectory, { recursive: true });\n\n\t\tfs.writeFileSync(\n\t\t\tpath.join(outputDirectory, `${data.Package}.js`),\n\t\t\tbuildResult.js,\n\t\t\t{ encoding: \"utf8\" },\n\t\t);\n\t\tfs.writeFileSync(\n\t\t\tpath.join(outputDirectory, `${data.Package}.d.ts`),\n\t\t\tbuildResult.definitions,\n\t\t\t{ encoding: \"utf8\" },\n\t\t);\n\n\t\tif (options.minimize) {\n\t\t\tconst minifyResult = terser.minify(buildResult.js, {\n\t\t\t\tecma: 5,\n\t\t\t});\n\n\t\t\tif (minifyResult.error || !minifyResult.code) {\n\t\t\t\tconsole.warn(\n\t\t\t\t\t\"Not writing minified script version because of error\",\n\t\t\t\t\tminifyResult.error,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst minifiedPath = path.join(\n\t\t\t\toutputDirectory,\n\t\t\t\t`${data.Package}.min.js`,\n\t\t\t);\n\t\t\tfs.writeFileSync(minifiedPath, minifyResult.code!, {\n\t\t\t\tencoding: \"utf8\",\n\t\t\t});\n\t\t}\n\n\t\tif (location.path.includes(\"Basics\")) {\n\t\t\tfs.mkdirSync(path.join(options.cwd, \"lib\"), {\n\t\t\t\trecursive: true,\n\t\t\t});\n\n\t\t\tlogStep(translate(\"messages.basicsCopy\"));\n\t\t\tfs.writeFileSync(\n\t\t\t\tpath.join(options.cwd, \"lib\", `${data.Package}.d.ts`),\n\t\t\t\tbuildResult.definitions,\n\t\t\t\t{ encoding: \"utf8\" },\n\t\t\t);\n\t\t}\n\n\t\tif (options.docs) {\n\t\t\tlogStep(translate(\"messages.docsGeneration\"));\n\t\t\tawait generateDocs(\n\t\t\t\tlocation.scriptsDir,\n\t\t\t\tpath.join(\n\t\t\t\t\toptions.outDir || location.scriptsDir,\n\t\t\t\t\t`${data.Package}.d.ts`,\n\t\t\t\t),\n\t\t\t\tpath.join(options.cwd, \"docs\", data.Package),\n\t\t\t\tdata.Package,\n\t\t\t);\n\t\t}\n\n\t\t// logStep(translate(\"messages.built\"));\n\n\t\tindex++;\n\t}\n};\n\nconst resolvePackagesFromArgs = (\n\targs: string[] = [],\n\tworkspace: WorkspaceLocation,\n) => {\n\tconst folders = new Map<string, PackageLocation>();\n\n\tfor (const arg of args) {\n\t\tglob.sync(arg, { cwd: workspace.path, absolute: true }).forEach(\n\t\t\t(folder) => {\n\t\t\t\ttry {\n\t\t\t\t\tconst location = detectPackage(workspace, folder);\n\t\t\t\t\tfolders.set(folder, location);\n\t\t\t\t} catch (err) {}\n\t\t\t},\n\t\t);\n\t}\n\n\treturn Array.from(folders.values());\n};\n\nconst ensureTsConfig = (location: PackageLocation) => {\n\tconst tsconfigPath = path.join(location.scriptsDir, \"tsconfig.json\");\n\n\tif (!fs.existsSync(tsconfigPath)) {\n\t\tconst content = {};\n\t\tapplyTsConfigOption(content);\n\n\t\tfs.writeFileSync(\n\t\t\ttsconfigPath,\n\t\t\tJSON.stringify(content, undefined, \"\\t\"),\n\t\t\t\"utf8\",\n\t\t);\n\t} else {\n\t\tconst content = JSON.parse(fs.readFileSync(tsconfigPath, \"utf8\"));\n\t\tapplyTsConfigOption(content);\n\t\tfs.writeFileSync(\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 buildSortedPackageMap = (folders: 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 = new Map<string, FolderData>();\n\n\tfor (const packageName of sortedPackages) {\n\t\tresult.set(packageName, packages[packageName]);\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":["logPackageMessage","name","step","index","total","numLength","undefined","toString","length","indexString","padStart","identifierString","padEnd","console","log","tryReadTsConfig","location","config","ts","readConfigFile","path","join","scriptsDir","fs","readFileSync","build","compilerOptions","lib","result","convertCompilerOptionsFromJson","options","removeComments","declaration","sourceMap","outFile","target","ScriptTarget","ES5","noEmitOnError","host","createCompilerHost","getCurrentDirectory","js","definitions","writeFile","fileName","data","writeByteOrderMark","endsWith","files","getPackageTypescriptFiles","Error","programOptions","rootNames","program","createProgram","emitResult","emit","allDiagnostics","getPreEmitDiagnostics","emitSkipped","map","createErrorMessage","error","diagnostic","file","flattenDiagnosticMessageText","messageText","line","character","getLineAndCharacterOfPosition","start","message","generateDocs","folderPath","declarationFile","outFolder","app","typedoc","Application","mediaDir","bootstrap","entryPoints","media","out","setCompilerOptions","setValue","readmePath","glob","sync","absolute","cwd","project","convert","toposort","packages","queue","Object","getOwnPropertyNames","queueEntry","dependencies","dependencyQueued","some","dependency","includes","splice","push","buildFolders","outDir","clean","rmSync","recursive","workspace","detectWorkspace","folders","resolvePackagesFromArgs","directories","translate","sortedPackages","buildSortedPackageMap","skipPackagesWithoutTsFiles","ensureTsConfig","readPackageCreatorManifest","logStep","Package","size","buildResult","tscBuild","banner","createBannerComment","outputDirectory","mkdirSync","writeFileSync","encoding","minimize","minifyResult","terser","minify","ecma","code","warn","minifiedPath","docs","args","Map","arg","forEach","folder","detectPackage","set","err","Array","from","values","tsconfigPath","existsSync","content","applyTsConfigOption","JSON","stringify","parse","reduce","acc","readPackageNpmManifest","packageDependencies","packageName","packageData","devDependencies","peerDependencies","filter","bannerParts","text","details","version","commit","commitDirty","date","toISOString","detailsText","bannerText"],"mappings":"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"}
@@ -1,48 +1,21 @@
1
1
  #!/usr/bin/env node
2
- 'use strict';
3
-
4
- var ts = require('typescript');
5
- require('os');
6
- var cli = require('../cli.js');
7
- var scripts = require('../scripts.js');
8
- require('update-notifier');
9
- require('fs');
10
- require('path');
11
- require('yargs');
12
- require('tslib');
13
- require('child_process');
14
- require('assert');
15
- require('events');
16
- require('buffer');
17
- require('stream');
18
- require('util');
19
- require('constants');
20
- require('write-pkg');
21
- require('inquirer');
22
- require('glob');
23
-
24
- function _interopNamespaceDefault(e) {
25
- var n = Object.create(null);
26
- if (e) {
27
- Object.keys(e).forEach(function (k) {
28
- if (k !== 'default') {
29
- var d = Object.getOwnPropertyDescriptor(e, k);
30
- Object.defineProperty(n, k, d.get ? d : {
31
- enumerable: true,
32
- get: function () { return e[k]; }
33
- });
34
- }
35
- });
36
- }
37
- n.default = e;
38
- return Object.freeze(n);
39
- }
40
-
41
- var ts__namespace = /*#__PURE__*/_interopNamespaceDefault(ts);
2
+ import ts from 'typescript';
3
+ import 'os';
4
+ import { k as writePackageCreatorIndex } from '../cli.mjs';
5
+ import { g as getPackageTypescriptFiles } from '../scripts.mjs';
6
+ import 'update-notifier';
7
+ import 'fs';
8
+ import 'path';
9
+ import 'yargs/yargs';
10
+ import 'url';
11
+ import 'y18n';
12
+ import 'write-pkg';
13
+ import 'inquirer';
14
+ import 'glob';
42
15
 
43
16
  function findTsNode(node, callback) {
44
17
  let result;
45
- ts__namespace.forEachChild(node, child => {
18
+ ts.forEachChild(node, child => {
46
19
  if (callback(child)) {
47
20
  result = child;
48
21
  return true;
@@ -74,14 +47,14 @@ function parseDefault(value, type) {
74
47
  }
75
48
  }
76
49
  function findEvaluatorNode(node) {
77
- if (ts__namespace.isModuleDeclaration(node) && node.body && ts__namespace.isModuleDeclaration(node.body) && node.body.body) {
50
+ if (ts.isModuleDeclaration(node) && node.body && ts.isModuleDeclaration(node.body) && node.body.body) {
78
51
  const classDeclaration = findTsNode(node.body.body, child => {
79
52
  var _child$heritageClause;
80
- if (!ts__namespace.isClassDeclaration(child)) {
53
+ if (!ts.isClassDeclaration(child)) {
81
54
  return false;
82
55
  }
83
56
  const isEvaluator = (_child$heritageClause = child.heritageClauses) === null || _child$heritageClause === void 0 ? void 0 : _child$heritageClause.some(clause => {
84
- if (clause.token !== ts__namespace.SyntaxKind.ExtendsKeyword) {
57
+ if (clause.token !== ts.SyntaxKind.ExtendsKeyword) {
85
58
  return false;
86
59
  }
87
60
  return clause.types.some(type => type.getText().includes("Evaluator"));
@@ -97,23 +70,23 @@ function getParameter(evaluatorNode) {
97
70
  var _member$name;
98
71
  return (member === null || member === void 0 ? void 0 : (_member$name = member.name) === null || _member$name === void 0 ? void 0 : _member$name.getText().toLowerCase()) == "create";
99
72
  });
100
- if (ts__namespace.isMethodDeclaration(memb)) {
73
+ if (ts.isMethodDeclaration(memb)) {
101
74
  return memb.parameters.find(para => para.name.getText().toLowerCase() == "parameters");
102
75
  }
103
76
  }
104
77
  function findParametersInterface(node, interfaceName) {
105
- if (ts__namespace.isModuleDeclaration(node) && node.body && ts__namespace.isModuleDeclaration(node.body) && node.body.body) {
106
- const interfaceDeclaration = findTsNode(node.body.body, child => ts__namespace.isInterfaceDeclaration(child) && child.name.getText() == interfaceName);
78
+ if (ts.isModuleDeclaration(node) && node.body && ts.isModuleDeclaration(node.body) && node.body.body) {
79
+ const interfaceDeclaration = findTsNode(node.body.body, child => ts.isInterfaceDeclaration(child) && child.name.getText() == interfaceName);
107
80
  return interfaceDeclaration;
108
81
  }
109
82
  return undefined;
110
83
  }
111
84
  function getModuleName(sourceFile) {
112
85
  let fullName = "";
113
- if (ts__namespace.isModuleDeclaration(sourceFile)) {
86
+ if (ts.isModuleDeclaration(sourceFile)) {
114
87
  fullName += sourceFile.name.getText();
115
88
  let packageB = sourceFile.body;
116
- if (ts__namespace.isModuleDeclaration(packageB)) {
89
+ if (ts.isModuleDeclaration(packageB)) {
117
90
  fullName += "." + packageB.name.getText();
118
91
  }
119
92
  }
@@ -124,7 +97,7 @@ function genParameters(interfac) {
124
97
  let para = {};
125
98
  para.Name = member.name.getText();
126
99
  if (para.Name.length > 45) throw new Error(`Parameter name length >45 '${para.Name}'`);
127
- let rawDocTags = ts__namespace.getJSDocTags(member);
100
+ let rawDocTags = ts.getJSDocTags(member);
128
101
  if (rawDocTags.length) {
129
102
  let dict = getTagDict(rawDocTags);
130
103
  if (dict.summary) para.Description = dict.summary;
@@ -149,7 +122,7 @@ function findParametersInterfaceInFiles(program, fileList, name) {
149
122
  throw new Error(`Expected a source file to exist for file name "${file}"`);
150
123
  }
151
124
  let interfaceDeclaration;
152
- ts__namespace.forEachChild(sourceFile, node => {
125
+ ts.forEachChild(sourceFile, node => {
153
126
  interfaceDeclaration = findParametersInterface(node, name);
154
127
  return interfaceDeclaration !== undefined;
155
128
  });
@@ -166,12 +139,12 @@ function findParametersInterfaceInFiles(program, fileList, name) {
166
139
  * @param folderPath path to a src folder
167
140
  */
168
141
  function extract(location, ignore = []) {
169
- const files = scripts.getPackageTypescriptFiles(location);
142
+ const files = getPackageTypescriptFiles(location);
170
143
  const filtered = files.filter(path => {
171
144
  return !ignore.some(suffix => path.endsWith(suffix));
172
145
  });
173
146
  let arr = new Array();
174
- let program = ts__namespace.createProgram(filtered, {
147
+ let program = ts.createProgram(filtered, {
175
148
  allowJs: true
176
149
  });
177
150
  program.getTypeChecker();
@@ -181,7 +154,7 @@ function extract(location, ignore = []) {
181
154
  const sourceFile = program.getSourceFile(file);
182
155
 
183
156
  // Loop through the root AST nodes of the file
184
- ts__namespace.forEachChild(sourceFile, node => {
157
+ ts.forEachChild(sourceFile, node => {
185
158
  let obj = {};
186
159
  const evalNode = findEvaluatorNode(node);
187
160
  if (evalNode === undefined) {
@@ -199,7 +172,7 @@ function extract(location, ignore = []) {
199
172
  if (interfac === undefined) {
200
173
  throw new Error(`Failed to find parameters type declaration for evaluator ${evalNode.name.getText()}`);
201
174
  }
202
- let rawDocTags = ts__namespace.getJSDocTags(evalNode);
175
+ let rawDocTags = ts.getJSDocTags(evalNode);
203
176
  if (rawDocTags.length) {
204
177
  let dict = getTagDict(rawDocTags);
205
178
  if (dict.summary) obj.Description = dict.summary;
@@ -209,8 +182,8 @@ function extract(location, ignore = []) {
209
182
  arr.push(obj);
210
183
  });
211
184
  });
212
- cli.writePackageCreatorIndex(location, arr);
185
+ writePackageCreatorIndex(location, arr);
213
186
  }
214
187
 
215
- exports.extract = extract;
216
- //# sourceMappingURL=generate.js.map
188
+ export { extract };
189
+ //# sourceMappingURL=generate.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate.mjs","sources":["../../src/commands/generate.ts"],"sourcesContent":["import ts from \"typescript\";\nimport os from \"os\";\n\nimport { PackageLocation, writePackageCreatorIndex } from \"../lib/package\";\nimport { getPackageTypescriptFiles } from \"../lib/scripts\";\n\ninterface IScript {\n\tName: string;\n\tDescription: string;\n\tType: TScriptType;\n\tParameters: IScriptParameter[];\n}\n\ninterface IScriptParameter {\n\tName: string;\n\tDescription: string;\n\tType: TType;\n\tDefault: string | number | boolean | null;\n\tDisplayIndex: number;\n}\n\ntype TScriptType = \"Evaluator\" | \"Interactor\";\n\ntype TType =\n\t| \"String\"\n\t| \"LengthM\"\n\t| \"Material\"\n\t| \"Boolean\"\n\t| \"Bool\"\n\t| \"ArcDEG\"\n\t| \"Integer\"\n\t| \"Int\"\n\t| \"Float\";\n\ntype TParams = {\n\t[key: string]: string;\n};\n\nfunction findTsNode<T extends ts.Node>(\n\tnode: ts.Node,\n\tcallback: (node: ts.Node) => node is T,\n): T | undefined;\nfunction findTsNode(\n\tnode: ts.Node,\n\tcallback: (node: ts.Node) => boolean,\n): ts.Node | undefined;\nfunction findTsNode(\n\tnode: ts.Node,\n\tcallback: (node: ts.Node) => boolean,\n): ts.Node | undefined {\n\tlet result: ts.Node | undefined;\n\n\tts.forEachChild(node, (child) => {\n\t\tif (callback(child)) {\n\t\t\tresult = child;\n\t\t\treturn true;\n\t\t}\n\t});\n\n\treturn result;\n}\n\nfunction getParamsFromJsDoc(text: string): TParams {\n\tlet lines = text.split(os.EOL);\n\tlet splitLines = lines.map((line) => line.split(\":\").map((s) => s.trim()));\n\tlet params = {};\n\tsplitLines\n\t\t.filter((line) => line.length > 1)\n\t\t.forEach((line) => {\n\t\t\tparams[line[0]] = line[1];\n\t\t});\n\n\treturn params;\n}\n\nfunction getDescFromJsDoc(text: string): string {\n\tlet lines = text.split(os.EOL);\n\tlet splitLines = lines.map((line) => line.split(\":\").map((s) => s.trim()));\n\tlet desc = \"\";\n\tsplitLines\n\t\t.filter((line) => line.length == 1)\n\t\t.forEach((line, i) => {\n\t\t\tdesc += (i == 0 ? \"\" : \" \") + line[0];\n\t\t});\n\n\treturn desc.substring(0, 98);\n}\n\nfunction capitalizeFirstLetter(string) {\n\treturn string?.charAt(0).toUpperCase() + string?.slice(1);\n}\n\nfunction parseDefault(value: string, type: string) {\n\tconst uType: TType = capitalizeFirstLetter(type);\n\tif (value === \"null\") return null;\n\tswitch (uType) {\n\t\tcase \"LengthM\":\n\t\tcase \"ArcDEG\":\n\t\tcase \"Float\":\n\t\t\treturn parseFloat(value);\n\t\tcase \"Integer\":\n\t\tcase \"Int\":\n\t\t\treturn parseInt(value);\n\t\tcase \"Boolean\":\n\t\tcase \"Bool\":\n\t\t\treturn value === \"true\";\n\t\tcase \"Material\":\n\t\tcase \"String\":\n\t\tdefault:\n\t\t\treturn value.replace(/^\"/, \"\").replace(/\"$/, \"\");\n\t}\n}\n\nfunction findEvaluatorNode(node: ts.Node): ts.ClassDeclaration | undefined {\n\tif (\n\t\tts.isModuleDeclaration(node) &&\n\t\tnode.body &&\n\t\tts.isModuleDeclaration(node.body) &&\n\t\tnode.body.body\n\t) {\n\t\tconst classDeclaration = findTsNode(\n\t\t\tnode.body.body,\n\t\t\t(child): child is ts.ClassDeclaration => {\n\t\t\t\tif (!ts.isClassDeclaration(child)) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tconst isEvaluator = child.heritageClauses?.some((clause) => {\n\t\t\t\t\tif (clause.token !== ts.SyntaxKind.ExtendsKeyword) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn clause.types.some((type) =>\n\t\t\t\t\t\ttype.getText().includes(\"Evaluator\"),\n\t\t\t\t\t);\n\t\t\t\t});\n\n\t\t\t\treturn isEvaluator ?? false;\n\t\t\t},\n\t\t);\n\n\t\treturn classDeclaration;\n\t}\n}\n\nfunction getParameter(evaluatorNode: ts.ClassDeclaration) {\n\tlet memb = evaluatorNode.members?.find(\n\t\t(member) => member?.name?.getText().toLowerCase() == \"create\",\n\t);\n\tif (ts.isMethodDeclaration(memb!)) {\n\t\treturn memb.parameters.find(\n\t\t\t(para) => para.name.getText().toLowerCase() == \"parameters\",\n\t\t);\n\t}\n}\n\nfunction findParametersInterface(\n\tnode: ts.Node,\n\tinterfaceName: string,\n): ts.InterfaceDeclaration | undefined {\n\tif (\n\t\tts.isModuleDeclaration(node) &&\n\t\tnode.body &&\n\t\tts.isModuleDeclaration(node.body) &&\n\t\tnode.body.body\n\t) {\n\t\tconst interfaceDeclaration = findTsNode(\n\t\t\tnode.body.body,\n\t\t\t(child): child is ts.InterfaceDeclaration =>\n\t\t\t\tts.isInterfaceDeclaration(child) &&\n\t\t\t\tchild.name.getText() == interfaceName,\n\t\t);\n\n\t\treturn interfaceDeclaration;\n\t}\n\n\treturn undefined;\n}\n\nfunction getModuleName(sourceFile: ts.Node): string {\n\tlet fullName = \"\";\n\tif (ts.isModuleDeclaration(sourceFile)) {\n\t\tfullName += sourceFile.name.getText();\n\n\t\tlet packageB = sourceFile.body!;\n\t\tif (ts.isModuleDeclaration(packageB)) {\n\t\t\tfullName += \".\" + packageB.name.getText();\n\t\t}\n\t}\n\treturn fullName;\n}\n\nfunction genParameters(interfac: ts.InterfaceDeclaration): IScriptParameter[] {\n\treturn interfac.members.map((member, i) => {\n\t\tlet para = {} as IScriptParameter;\n\n\t\tpara.Name = member.name!.getText();\n\t\tif (para.Name.length > 45)\n\t\t\tthrow new Error(`Parameter name length >45 '${para.Name}'`);\n\n\t\tlet rawDocTags = ts.getJSDocTags(member);\n\t\tif (rawDocTags.length) {\n\t\t\tlet dict = getTagDict(rawDocTags);\n\t\t\tif (dict.summary) para.Description = dict.summary;\n\t\t\tif (dict.creatorType) para.Type = dict.creatorType as TType;\n\t\t\tif (dict.default && dict.creatorType)\n\t\t\t\tpara.Default = parseDefault(dict.default, dict.creatorType);\n\t\t\tpara.DisplayIndex = i + 1;\n\t\t}\n\t\treturn para;\n\t});\n}\n\ninterface IDocTags {\n\tdefault?: string;\n\tcreatorType?: string;\n\tsummary?: string;\n}\n\nfunction getTagDict(tags: any): IDocTags {\n\tlet dict = {};\n\ttags.forEach((tag) => {\n\t\tdict[tag.tagName.text] = tag.comment;\n\t});\n\treturn dict;\n}\n\nfunction findParametersInterfaceInFiles(\n\tprogram: ts.Program,\n\tfileList: string[],\n\tname: string,\n): ts.InterfaceDeclaration | undefined {\n\tfor (const file of fileList) {\n\t\tconst sourceFile = program.getSourceFile(file);\n\n\t\tif (sourceFile === undefined) {\n\t\t\tthrow new Error(\n\t\t\t\t`Expected a source file to exist for file name \"${file}\"`,\n\t\t\t);\n\t\t}\n\n\t\tlet interfaceDeclaration: ts.InterfaceDeclaration | undefined;\n\n\t\tts.forEachChild(sourceFile, (node) => {\n\t\t\tinterfaceDeclaration = findParametersInterface(node, name);\n\n\t\t\treturn interfaceDeclaration !== undefined;\n\t\t});\n\n\t\tif (interfaceDeclaration !== undefined) {\n\t\t\treturn interfaceDeclaration;\n\t\t}\n\t}\n\n\treturn undefined;\n}\n\n/**\n * Extracts and returns script array for _Index.json from a src folder\n *\n * @param folderPath path to a src folder\n */\nexport function extract(location: PackageLocation, ignore: string[] = []) {\n\tconst files = getPackageTypescriptFiles(location);\n\tconst filtered = files.filter((path) => {\n\t\treturn !ignore.some((suffix) => path.endsWith(suffix));\n\t});\n\tlet arr = new Array<IScript>();\n\n\tlet program = ts.createProgram(filtered, { allowJs: true });\n\tprogram.getTypeChecker();\n\tfiltered.forEach((file) => {\n\t\t// Create a Program to represent the project, then pull out the\n\t\t// source file to parse its AST.\n\t\tconst sourceFile = program.getSourceFile(file);\n\n\t\t// Loop through the root AST nodes of the file\n\t\tts.forEachChild(sourceFile!, (node) => {\n\t\t\tlet obj = {} as IScript;\n\t\t\tconst evalNode = findEvaluatorNode(node);\n\n\t\t\tif (evalNode === undefined) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet moduleName = getModuleName(node);\n\n\t\t\tif (evalNode.name === undefined) {\n\t\t\t\tthrow new Error(`Expected evaluator class to have a name`);\n\t\t\t}\n\n\t\t\tobj.Name = moduleName + \".\" + evalNode.name.getText();\n\t\t\tif (obj.Name.length > 45)\n\t\t\t\tthrow new Error(`Package name length >45 '${obj.Name}'`);\n\n\t\t\tlet para = getParameter(evalNode);\n\t\t\tlet paraName = (para?.type as any).typeName.getText();\n\t\t\tlet interfac = findParametersInterfaceInFiles(\n\t\t\t\tprogram,\n\t\t\t\tfiltered,\n\t\t\t\tparaName,\n\t\t\t);\n\n\t\t\tif (interfac === undefined) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Failed to find parameters type declaration for evaluator ${evalNode.name.getText()}`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tlet rawDocTags = ts.getJSDocTags(evalNode);\n\t\t\tif (rawDocTags.length) {\n\t\t\t\tlet dict = getTagDict(rawDocTags);\n\t\t\t\tif (dict.summary) obj.Description = dict.summary;\n\t\t\t\tif (dict.creatorType)\n\t\t\t\t\tobj.Type = dict.creatorType as TScriptType;\n\t\t\t}\n\n\t\t\tobj.Parameters = genParameters(interfac);\n\t\t\tarr.push(obj);\n\t\t});\n\t});\n\n\twritePackageCreatorIndex(location, arr);\n}\n"],"names":["findTsNode","node","callback","result","ts","forEachChild","child","capitalizeFirstLetter","string","charAt","toUpperCase","slice","parseDefault","value","type","uType","parseFloat","parseInt","replace","findEvaluatorNode","isModuleDeclaration","body","classDeclaration","isClassDeclaration","isEvaluator","heritageClauses","some","clause","token","SyntaxKind","ExtendsKeyword","types","getText","includes","getParameter","evaluatorNode","memb","members","find","member","name","toLowerCase","isMethodDeclaration","parameters","para","findParametersInterface","interfaceName","interfaceDeclaration","isInterfaceDeclaration","undefined","getModuleName","sourceFile","fullName","packageB","genParameters","interfac","map","i","Name","length","Error","rawDocTags","getJSDocTags","dict","getTagDict","summary","Description","creatorType","Type","default","Default","DisplayIndex","tags","forEach","tag","tagName","text","comment","findParametersInterfaceInFiles","program","fileList","file","getSourceFile","extract","location","ignore","files","getPackageTypescriptFiles","filtered","filter","path","suffix","endsWith","arr","Array","createProgram","allowJs","getTypeChecker","obj","evalNode","moduleName","paraName","typeName","Parameters","push","writePackageCreatorIndex"],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ #!/usr/bin/env node
2
+ import * as path from 'path';
3
+ import * as fs from 'fs';
4
+ import { f as readWorkspaceNpmManifest, l as getWorkspaceLibPath } from '../cli.mjs';
5
+ import { d as determineWorkspaceIGLibraries, a as readPublishedPackageNpmManifest } from '../dependencies.mjs';
6
+ import 'update-notifier';
7
+ import 'yargs/yargs';
8
+ import 'url';
9
+ import 'y18n';
10
+ import 'write-pkg';
11
+ import 'inquirer';
12
+ import 'resolve';
13
+
14
+ const DEFINITION_FILE_HINT = "// This file is automatically managed by the ig.gfx.packager.";
15
+ const executePostInstall = workspace => {
16
+ const manifest = readWorkspaceNpmManifest(workspace);
17
+ if (manifest === undefined) {
18
+ throw new Error(`Expected an npm manifest to exist.`);
19
+ }
20
+ const libPath = getWorkspaceLibPath(workspace);
21
+ fs.mkdirSync(libPath, {
22
+ recursive: true
23
+ });
24
+ const existingDefinitions = fs.readdirSync(libPath);
25
+
26
+ // delete all existing definition files that are managed by the packager.
27
+ // we'll recreate all needed definitions in the next step.
28
+ for (const existingDefinitionName of existingDefinitions) {
29
+ const content = fs.readFileSync(path.join(libPath, existingDefinitionName), {
30
+ encoding: "utf-8"
31
+ });
32
+ if (content.startsWith(DEFINITION_FILE_HINT)) {
33
+ fs.rmSync(path.join(libPath, existingDefinitionName));
34
+ }
35
+ }
36
+ const libraryLocations = determineWorkspaceIGLibraries(workspace);
37
+ for (const location of libraryLocations) {
38
+ const manifest = readPublishedPackageNpmManifest(location);
39
+
40
+ // add a hint to the top of the file so we know it's managed by the packager.
41
+ const content = DEFINITION_FILE_HINT + " \n" + `// This is a reference to version ${manifest.version}\n` + `/// <reference types="${manifest.name}" />`;
42
+ fs.writeFileSync(path.join(getWorkspaceLibPath(workspace), manifest.types), content, {
43
+ encoding: "utf8"
44
+ });
45
+ }
46
+ };
47
+
48
+ export { executePostInstall };
49
+ //# sourceMappingURL=postinstall.mjs.map