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

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 (73) hide show
  1. package/build/cli.mjs +48 -336
  2. package/build/cli.mjs.map +1 -1
  3. package/build/commands/build/docs.mjs +34 -0
  4. package/build/commands/build/docs.mjs.map +1 -0
  5. package/build/commands/build/index.mjs +169 -0
  6. package/build/commands/build/index.mjs.map +1 -0
  7. package/build/commands/build/tsc.mjs +84 -0
  8. package/build/commands/build/tsc.mjs.map +1 -0
  9. package/build/{generate.mjs → commands/generate.mjs} +6 -16
  10. package/build/commands/generate.mjs.map +1 -0
  11. package/build/{postinstall.mjs → commands/postinstall.mjs} +3 -10
  12. package/build/commands/postinstall.mjs.map +1 -0
  13. package/build/{index3.mjs → commands/publish/index.mjs} +20 -288
  14. package/build/commands/publish/index.mjs.map +1 -0
  15. package/build/commands/publish/zip.mjs +168 -0
  16. package/build/commands/publish/zip.mjs.map +1 -0
  17. package/build/{publishNpm.mjs → commands/publishNpm.mjs} +10 -18
  18. package/build/commands/publishNpm.mjs.map +1 -0
  19. package/build/index.mjs +1 -1
  20. package/build/index.mjs.map +1 -1
  21. package/build/lib/assetService.mjs +111 -0
  22. package/build/lib/assetService.mjs.map +1 -0
  23. package/build/lib/banner.mjs +20 -0
  24. package/build/lib/banner.mjs.map +1 -0
  25. package/build/{dependencies.mjs → lib/dependencies.mjs} +9 -60
  26. package/build/lib/dependencies.mjs.map +1 -0
  27. package/build/lib/error.mjs +15 -0
  28. package/build/lib/error.mjs.map +1 -0
  29. package/build/lib/fs.mjs +19 -0
  30. package/build/lib/fs.mjs.map +1 -0
  31. package/build/lib/git.mjs +37 -0
  32. package/build/lib/git.mjs.map +1 -0
  33. package/build/lib/localization.mjs +16 -0
  34. package/build/lib/localization.mjs.map +1 -0
  35. package/build/lib/log.mjs +9 -0
  36. package/build/lib/log.mjs.map +1 -0
  37. package/build/lib/npmPackage.mjs +19 -0
  38. package/build/lib/npmPackage.mjs.map +1 -0
  39. package/build/lib/package.mjs +129 -0
  40. package/build/lib/package.mjs.map +1 -0
  41. package/build/lib/packageVersion.mjs +174 -0
  42. package/build/lib/packageVersion.mjs.map +1 -0
  43. package/build/lib/parseVersion.mjs +54 -0
  44. package/build/lib/parseVersion.mjs.map +1 -0
  45. package/build/lib/prompter.mjs +31 -0
  46. package/build/lib/prompter.mjs.map +1 -0
  47. package/build/lib/publishedPackage.mjs +66 -0
  48. package/build/lib/publishedPackage.mjs.map +1 -0
  49. package/build/{scripts.mjs → lib/scripts.mjs} +1 -2
  50. package/build/lib/scripts.mjs.map +1 -0
  51. package/build/lib/stripUtf8Bom.mjs +11 -0
  52. package/build/lib/stripUtf8Bom.mjs.map +1 -0
  53. package/build/lib/toposort.mjs +26 -0
  54. package/build/lib/toposort.mjs.map +1 -0
  55. package/build/lib/versionFile.mjs +78 -0
  56. package/build/lib/versionFile.mjs.map +1 -0
  57. package/build/lib/workspace.mjs +51 -0
  58. package/build/lib/workspace.mjs.map +1 -0
  59. package/locales/de.json +18 -18
  60. package/locales/en.json +37 -37
  61. package/package.json +2 -2
  62. package/readme.md +29 -2
  63. package/scripts/postinstall.js +22 -22
  64. package/build/dependencies.mjs.map +0 -1
  65. package/build/generate.mjs.map +0 -1
  66. package/build/index2.mjs +0 -326
  67. package/build/index2.mjs.map +0 -1
  68. package/build/index3.mjs.map +0 -1
  69. package/build/postinstall.mjs.map +0 -1
  70. package/build/publishNpm.mjs.map +0 -1
  71. package/build/scripts.mjs.map +0 -1
  72. package/build/versionFile.mjs +0 -365
  73. package/build/versionFile.mjs.map +0 -1
@@ -1,288 +1,26 @@
1
- #!/usr/bin/env node
2
1
  import * as path from 'path';
3
2
  import * as fs from 'fs';
4
3
  import { pipeline } from 'stream/promises';
5
4
  import { execSync } from 'child_process';
6
- import { l as logPackageMessage, b as buildFolders } from './index2.mjs';
7
- import { P as PACKAGE_FILE, I as INDEX_FILE, p as parseCreatorPackageName, g as getWorkspaceOutputPath, r as readPackageCreatorManifest, w as writePackageCreatorManifest, c as readPackageAnimationList, i as isErrorENOENT, e as readPackageCreatorIndex, d as detectWorkspace, a as detectPackage, f as readWorkspaceNpmManifest, t as translate, h as getPackageReleasesDirectory } from './cli.mjs';
8
- import { g as getVersionFileHandler, p as parseVersionFromString, a as getVersionInformationFromGit, b as getWorkspaceBannerText, c as parseVersionFromNumericVersion, P as PackageVersion } from './versionFile.mjs';
9
- import axios from 'axios';
10
- import { r as readPublishedPackageCreatorIndex, d as determineWorkspaceIGLibraries, a as readPublishedPackageNpmManifest, b as readPublishedPackageCreatorManifest } from './dependencies.mjs';
11
- import Ajv from 'ajv';
12
- import JSZip from 'jszip';
13
- import * as terser from 'terser';
14
- import 'glob';
15
- import 'typescript';
16
- import './scripts.mjs';
17
- import 'typedoc';
18
- import 'update-notifier';
19
- import 'yargs/yargs';
20
- import 'url';
21
- import 'y18n';
22
- import 'write-pkg';
23
- import 'inquirer';
24
- import 'simple-git';
25
- import 'resolve';
26
-
27
- const PLUGIN_ID = "0feba3a0-b6d1-11e6-9598-0800200c9a66";
28
- /**
29
- * Starts an IG.Asset.Server session and returns the sessionId
30
- *
31
- * @param {SessionStartParams} params
32
- * @returns
33
- */
34
- const startSession = async ({
35
- url,
36
- authentication,
37
- ...params
38
- }) => {
39
- const payload = {
40
- ...params,
41
- user: undefined,
42
- password: undefined,
43
- license: undefined,
44
- plugin: PLUGIN_ID
45
- };
46
- if (authentication.type === "credentials") {
47
- payload.user = authentication.username;
48
- payload.password = authentication.password;
49
- } else if (authentication.type === "license") {
50
- payload.license = authentication.license;
51
- }
52
- const {
53
- data: {
54
- session: sessionId,
55
- state
56
- }
57
- } = await axios.post(`Session/Start2`, JSON.stringify(payload), {
58
- baseURL: url
59
- });
60
- if (state !== "SUCCESS") {
61
- throw new Error(`Could not start session: IG.Asset.Server responded with ${state}`);
62
- }
63
- return {
64
- url,
65
- sessionId,
66
- domain: params.domain,
67
- subDomain: params.subDomain
68
- };
69
- };
70
- const closeSession = async session => {
71
- await axios.get(`Session/Close/${session.sessionId}`, {
72
- baseURL: session.url
73
- });
74
- };
75
- const uploadPackage = async (session, {
76
- name,
77
- version
78
- }, zipFilePath) => {
79
- try {
80
- await uploadPackageToUrl(session.url, `UploadPackage/${session.sessionId}/${name}_${version}`, zipFilePath);
81
- } catch (err) {
82
- await uploadPackageToUrl(session.url, `UploadPackage/${session.sessionId}/${name}_${version}/`, zipFilePath);
83
- }
84
- };
85
- const getExistingPackages = async session => axios.get(`Script/GetInformation/${session.sessionId}`, {
86
- baseURL: session.url,
87
- validateStatus: status => status === 404 || status === 200
88
- }).then(({
89
- data
90
- }) => Array.isArray(data) ? data : undefined);
91
- const uploadPackageToUrl = (url, path, zipFilePath) => axios.post(path, fs.createReadStream(zipFilePath), {
92
- baseURL: url
93
- }).then(({
94
- data,
95
- status
96
- }) => {
97
- let objectBody;
98
- if (typeof data === "string") {
99
- try {
100
- objectBody = JSON.parse(data);
101
- } catch (err) {}
102
- } else if (typeof data === "object") {
103
- objectBody = data;
104
- }
105
- if (objectBody !== undefined) {
106
- if ("state" in objectBody && objectBody.state !== "SUCCESS") {
107
- throw new Error(objectBody.response ?? objectBody.state);
108
- }
109
- }
110
- if (status >= 400) {
111
- if (objectBody !== undefined) {
112
- let text = "";
113
- for (const key in objectBody) {
114
- text += key + ": \n";
115
- if (typeof objectBody[key] === "object") {
116
- text += JSON.stringify(objectBody[key], undefined, 2);
117
- } else {
118
- text += objectBody[key];
119
- }
120
- text += "\n\n";
121
- }
122
- throw new Error(text);
123
- }
124
- throw new Error(data);
125
- }
126
- return data;
127
- });
128
-
129
- const buildArchiveFromPublishedPackage = (location, manifest, creatorPackage) => {
130
- const archive = new JSZip();
131
- archive.file(PACKAGE_FILE, JSON.stringify(creatorPackage, null, 2));
132
- const index = readPublishedPackageCreatorIndex(location);
133
- if (index !== undefined) {
134
- archive.file(INDEX_FILE, JSON.stringify(index, null, 2));
135
- }
136
- archive.file(manifest.main, fs.createReadStream(path.join(location.path, manifest.main)));
137
- return archive;
138
- };
139
- let validateSchema;
140
- const runtimeScripts = ["Interactor", "Core", "Mixed"];
141
- const notRuntimeScripts = ["Context", "Evaluator"];
142
- const buildArchiveFromPackage = async (workspaceLocation, packageLocation, data) => {
143
- const {
144
- domain,
145
- subdomain
146
- } = parseCreatorPackageName(data);
147
- const logStep = step => logPackageMessage(data.Package, step);
148
- if (validateSchema === undefined) {
149
- validateSchema = await axios.get("https://archive.intelligentgraphics.biz/schemas/gfx/animation.json").then(({
150
- data
151
- }) => new Ajv({
152
- coerceTypes: true,
153
- allErrors: true,
154
- removeAdditional: true,
155
- useDefaults: "empty",
156
- validateSchema: "log"
157
- }).compile(data));
158
- }
159
- const libFilePath = path.join(getWorkspaceOutputPath(workspaceLocation), `${data.Package}.min.js`);
160
- const scriptDirectories = [packageLocation.path, packageLocation.scriptsDir];
161
- if (subdomain === "GFX.Standard") {
162
- logStep(`Including Images folder`);
163
- scriptDirectories.push(path.join(packageLocation.path, "Images"));
164
- }
165
- const manifest = readPackageCreatorManifest(packageLocation);
166
- if (manifest !== undefined) {
167
- if (manifest.RunTime && notRuntimeScripts.includes(manifest.Type)) {
168
- logStep("Setting script RunTime to false because of script type");
169
- writePackageCreatorManifest(packageLocation, {
170
- ...manifest,
171
- RunTime: false
172
- });
173
- } else if (!manifest.RunTime && runtimeScripts.includes(manifest.Type)) {
174
- logStep("Setting script RunTime to true because of script type");
175
- writePackageCreatorManifest(packageLocation, {
176
- ...manifest,
177
- RunTime: true
178
- });
179
- }
180
- }
181
-
182
- // if (index === undefined) {
183
- // throw new Error(
184
- // `Could not find an "${INDEX_FILE}" file in "${primaryScriptDir}"`,
185
- // );
186
- // }
187
-
188
- const animations = new Map();
189
- for (const scriptFilePath of readPackageAnimationList(packageLocation)) {
190
- const content = fs.readFileSync(scriptFilePath, {
191
- encoding: "utf8"
192
- });
193
- let data;
194
- try {
195
- data = JSON.parse(content);
196
- } catch (err) {
197
- const relativePath = path.relative(workspaceLocation.path, scriptFilePath);
198
- if (err instanceof SyntaxError) {
199
- throw new Error(`Encountered invalid syntax in file "${relativePath}": ${String(err)}`);
200
- }
201
- throw new Error(`Encountered an unexpected error while parsing animation json file at path "${relativePath}"`, {
202
- cause: err
203
- });
204
- }
205
- validateSchema(data);
206
- animations.set(data.Id, JSON.stringify(data));
207
- }
208
- let libFile;
209
- try {
210
- libFile = fs.readFileSync(libFilePath, {
211
- encoding: "utf8"
212
- });
213
- } catch (err) {
214
- if (!isErrorENOENT(err)) {
215
- throw err;
216
- }
217
- }
218
- if (libFile === undefined) {
219
- if (animations.size === 0) {
220
- throw new Error(`Could not find a javascript file at "${libFilePath}".
221
- Packaging without a javascript file is only allowed when animation json files are available`);
222
- }
223
- }
224
- const archive = new JSZip();
225
- let library = "";
226
- if (libFile) {
227
- library = libFile;
228
- }
229
- if (!library) {
230
- const date = new Date(Date.now());
231
- library = `/* This file is part of the ${domain} Data Packages.
232
- * Copyright (C) ${date.getFullYear()} intelligentgraphics. All Rights Reserved. */`;
233
- }
234
- if (animations.size > 0) {
235
- const scopeParts = data.Scope.split(".");
236
- const scope = data.Scope;
237
- library += createNamespace(scopeParts);
238
- for (const [name, data] of animations) {
239
- library += `${scope}.${name} = ` + data + ";";
240
- logPackageMessage(manifest.Package, `Added animation ${scope}.${name}`);
241
- }
242
- }
243
- const minifyResult = await terser.minify(library, {
244
- ecma: 5
245
- });
246
- archive.file(`${data.Package}.js`, minifyResult.code);
247
- archive.file(PACKAGE_FILE, JSON.stringify(data, null, 2));
248
- const creatorIndex = readPackageCreatorIndex(packageLocation);
249
- if (creatorIndex !== undefined) {
250
- archive.file(INDEX_FILE, JSON.stringify(creatorIndex, null, 2));
251
- }
252
- for (const directory of scriptDirectories) {
253
- try {
254
- for (const file of fs.readdirSync(directory)) {
255
- const {
256
- ext
257
- } = path.parse(file);
258
- switch (ext) {
259
- case ".png":
260
- case ".jpeg":
261
- case ".jpg":
262
- break;
263
- default:
264
- continue;
265
- }
266
- archive.file(file, fs.createReadStream(path.join(directory, file)));
267
- }
268
- } catch (err) {
269
- console.error(`Script directory "${directory}" does not exist`);
270
- }
271
- }
272
- return archive;
273
- };
274
- const createNamespace = parts => {
275
- let code = `var ${parts[0]};`;
276
- for (let index = 0; index < parts.length; index++) {
277
- const path = parts.slice(0, index + 1).join(".");
278
- code += `\n(${path} = ${path} || {});`;
279
- }
280
- return code;
281
- };
5
+ import { logPackageMessage } from '../../lib/log.mjs';
6
+ import { translate } from '../../lib/localization.mjs';
7
+ import { readPackageCreatorManifest, parseCreatorPackageName, getPackageReleasesDirectory } from '../../lib/package.mjs';
8
+ import { readWorkspaceNpmManifest, getWorkspaceOutputPath } from '../../lib/workspace.mjs';
9
+ import { getVersionInformationFromGit } from '../../lib/git.mjs';
10
+ import { getWorkspaceBannerText } from '../../lib/banner.mjs';
11
+ import { parseVersionFromString, parseVersionFromNumericVersion } from '../../lib/parseVersion.mjs';
12
+ import { getVersionFileHandler } from '../../lib/versionFile.mjs';
13
+ import { uploadPackage, getExistingPackages, startSession, closeSession } from '../../lib/assetService.mjs';
14
+ import { isErrorENOENT } from '../../lib/error.mjs';
15
+ import { determineWorkspaceIGLibraries } from '../../lib/dependencies.mjs';
16
+ import { readPublishedPackageNpmManifest, readPublishedPackageCreatorManifest } from '../../lib/publishedPackage.mjs';
17
+ import { PackageVersion } from '../../lib/packageVersion.mjs';
18
+ import { buildFolders } from '../build/index.mjs';
19
+ import { buildArchiveFromPackage, buildArchiveFromPublishedPackage } from './zip.mjs';
282
20
 
283
21
  const releaseFolder = async options => {
284
- const workspace = detectWorkspace(options.cwd);
285
- const location = detectPackage(workspace, options.directory);
22
+ const workspace = options.workspace;
23
+ const location = options.directory;
286
24
  const {
287
25
  write: writeVersionFile,
288
26
  reset: resetVersionFile
@@ -350,7 +88,7 @@ const releaseFolder = async options => {
350
88
  const bannerText = sharedPackageJson !== undefined ? getWorkspaceBannerText(sharedPackageJson) : undefined;
351
89
  await buildFolders({
352
90
  ...options,
353
- directories: [location.path],
91
+ packages: [location],
354
92
  skipPackagesWithoutTsFiles: true,
355
93
  banner: options.banner ? {
356
94
  text: bannerText,
@@ -390,9 +128,7 @@ const releaseFolder = async options => {
390
128
  authentication: options.authentication
391
129
  });
392
130
  try {
393
- if (!(await ensureRequiredVersions(workspace, packageDescription, sessionManager, options.prompter))) {
394
- logPackageMessage(packageDescription.Package, "Failed to ensure required dependency versions: IG.Asset.Server does not yet support required apis for dependency check");
395
- }
131
+ await ensureRequiredVersions(workspace, packageDescription, sessionManager, options.prompter);
396
132
  logPackageMessage(packageDescription.Package, `Uploading package to ${publishDomain}.${publishSubdomain}`);
397
133
  await uploadPackage(sessionManager.getTargetSession(), assetServerPackageDetails, zipFilePath);
398
134
  } finally {
@@ -424,9 +160,6 @@ const ensureRequiredVersions = async (workspaceLocation, creatorPackage, session
424
160
  }
425
161
  const targetSession = sessionManager.getTargetSession();
426
162
  const rawUploadedPackages = await getExistingPackages(targetSession);
427
- if (rawUploadedPackages === undefined) {
428
- return false;
429
- }
430
163
  const uploadedPackages = rawUploadedPackages.map(entry => {
431
164
  let version;
432
165
  try {
@@ -535,7 +268,6 @@ const ensureRequiredVersions = async (workspaceLocation, creatorPackage, session
535
268
  version: newVersionString
536
269
  }, zipFilePath);
537
270
  }
538
- return true;
539
271
  };
540
272
  const createSessionManager = async params => {
541
273
  const targetSession = await startSession(params);
@@ -564,4 +296,4 @@ const createSessionManager = async params => {
564
296
  };
565
297
 
566
298
  export { releaseFolder };
567
- //# sourceMappingURL=index3.mjs.map
299
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../../src/commands/publish/index.ts"],"sourcesContent":["import * as path from \"path\";\nimport * as fs from \"fs\";\nimport { pipeline } from \"stream/promises\";\nimport { execSync } from \"child_process\";\n\nimport { logPackageMessage } from \"../../lib/log\";\nimport { translate } from \"../../lib/localization\";\nimport { Authentication } from \"../../lib/authentication\";\nimport {\n\tCreatorPackage,\n\tdetectPackage,\n\tgetPackageReleasesDirectory,\n\tPackageLocation,\n\tparseCreatorPackageName,\n\treadPackageCreatorManifest,\n} from \"../../lib/package\";\nimport {\n\tdetectWorkspace,\n\tgetWorkspaceOutputPath,\n\treadWorkspaceNpmManifest,\n\tWorkspaceLocation,\n} from \"../../lib/workspace\";\nimport { getVersionInformationFromGit } from \"../../lib/git\";\nimport { getWorkspaceBannerText } from \"../../lib/banner\";\nimport {\n\tparseVersionFromNumericVersion,\n\tparseVersionFromString,\n} from \"../../lib/parseVersion\";\nimport { getVersionFileHandler } from \"../../lib/versionFile\";\nimport * as AssetService from \"../../lib/assetService\";\nimport { isErrorENOENT } from \"../../lib/error\";\nimport { determineWorkspaceIGLibraries } from \"../../lib/dependencies\";\nimport {\n\treadPublishedPackageCreatorManifest,\n\treadPublishedPackageNpmManifest,\n} from \"../../lib/publishedPackage\";\nimport { Prompter } from \"../../lib/prompter\";\nimport { PackageVersion } from \"../../lib/packageVersion\";\n\nimport { BuildFoldersOptions, buildFolders } from \"../build\";\nimport {\n\tbuildArchiveFromPackage,\n\tbuildArchiveFromPublishedPackage,\n} from \"./zip\";\n\nexport interface ReleaseFolderOptions\n\textends Omit<\n\t\tBuildFoldersOptions,\n\t\t\"skipPackagesWithoutTsFiles\" | \"banner\" | \"packages\"\n\t> {\n\tdirectory: PackageLocation;\n\tnoUpload: boolean;\n\tnewVersion: string;\n\tdomain?: string;\n\tsubdomain?: string;\n\taddress?: string;\n\tservice: string;\n\tauthentication?: Authentication;\n\tpushOnly: boolean;\n\tbanner?: boolean;\n\tprompter: Prompter;\n}\n\nexport const releaseFolder = async (options: ReleaseFolderOptions) => {\n\tconst workspace = options.workspace;\n\tconst location = options.directory;\n\n\tconst { write: writeVersionFile, reset: resetVersionFile } =\n\t\tgetVersionFileHandler(location);\n\n\tconst packageDescription = readPackageCreatorManifest(location);\n\tconst fullPackageName = packageDescription.Package;\n\tconst { domain, subdomain } = parseCreatorPackageName(packageDescription);\n\n\tconst publishDomain = options.domain ?? domain;\n\tconst publishSubdomain = options.subdomain ?? subdomain;\n\n\tconst sharedPackageJson = readWorkspaceNpmManifest(workspace);\n\n\tlet newVersion: PackageVersion;\n\ttry {\n\t\tnewVersion = parseVersionFromString(options.newVersion);\n\t} catch (err) {\n\t\tthrow new Error(`Please enter a version in this format 1.0.0.100`);\n\t}\n\n\tif (newVersion.buildNumber < 100) {\n\t\tnewVersion.preRelease = {\n\t\t\ttype: \"beta\",\n\t\t\tversion: newVersion.buildNumber,\n\t\t};\n\t} else if (newVersion.buildNumber > 100) {\n\t\tnewVersion.preRelease = {\n\t\t\ttype: \"patch\",\n\t\t\tversion: newVersion.buildNumber - 100,\n\t\t};\n\t}\n\n\tif (sharedPackageJson !== undefined) {\n\t\tlogPackageMessage(\n\t\t\tpackageDescription.Package,\n\t\t\t`Running npm install to make sure all dependencies are up to date`,\n\t\t);\n\t\texecSync(`npm install`, { encoding: \"utf-8\", cwd: workspace.path });\n\t}\n\n\tconst binDir = getWorkspaceOutputPath(workspace);\n\tfs.mkdirSync(binDir, { recursive: true });\n\n\tlet assetServerPackageDetails: AssetService.UploadPackageDetails;\n\n\tlet packageNameWithVersion: string;\n\n\t{\n\t\tconst versionWithoutPrelease = newVersion.clone();\n\t\tversionWithoutPrelease.preRelease = undefined;\n\t\tconst newVersionString = versionWithoutPrelease.toVersionString({\n\t\t\tbuildNumber: true,\n\t\t});\n\t\tpackageNameWithVersion = `${packageDescription.Package}_${newVersionString}`;\n\n\t\tassetServerPackageDetails = {\n\t\t\tname: packageDescription.Package,\n\t\t\tversion: newVersionString,\n\t\t};\n\t}\n\n\tconst zipFilePath = path.join(binDir, packageNameWithVersion + \".zip\");\n\n\ttry {\n\t\tif (options.pushOnly) {\n\t\t\tif (!fs.existsSync(zipFilePath)) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Expected a zip file to exist at path ${zipFilePath} since pushOnly is specified`,\n\t\t\t\t);\n\t\t\t}\n\t\t} else {\n\t\t\tconst gitVersionInformation = await getVersionInformationFromGit(\n\t\t\t\tworkspace,\n\t\t\t\tlocation,\n\t\t\t);\n\n\t\t\twriteVersionFile(fullPackageName, newVersion);\n\n\t\t\tconst bannerText =\n\t\t\t\tsharedPackageJson !== undefined\n\t\t\t\t\t? getWorkspaceBannerText(sharedPackageJson)\n\t\t\t\t\t: undefined;\n\n\t\t\tawait buildFolders({\n\t\t\t\t...options,\n\t\t\t\tpackages: [location],\n\t\t\t\tskipPackagesWithoutTsFiles: true,\n\t\t\t\tbanner: options.banner\n\t\t\t\t\t? {\n\t\t\t\t\t\t\ttext: bannerText,\n\t\t\t\t\t\t\tcommit: gitVersionInformation.commit,\n\t\t\t\t\t\t\tcommitDirty: gitVersionInformation.dirty,\n\t\t\t\t\t\t\tversion: newVersion.toVersionString({\n\t\t\t\t\t\t\t\tbuildNumber: true,\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\tdate: new Date(Date.now()),\n\t\t\t\t\t\t\t// gitVersionInformation.commitDate\n\t\t\t\t\t\t\t// \t? new Date(gitVersionInformation.commitDate)\n\t\t\t\t\t\t\t// \t: new Date(Date.now()),\n\t\t\t\t\t }\n\t\t\t\t\t: undefined,\n\t\t\t});\n\n\t\t\tnewVersion.preRelease = undefined;\n\n\t\t\ttry {\n\t\t\t\tfs.rmSync(zipFilePath);\n\t\t\t} catch (err) {\n\t\t\t\tif (!isErrorENOENT(err)) {\n\t\t\t\t\tthrow err;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst archive = await buildArchiveFromPackage(\n\t\t\t\tworkspace,\n\t\t\t\tlocation,\n\t\t\t\tpackageDescription,\n\t\t\t);\n\n\t\t\tconst zipOutputStream = fs.createWriteStream(zipFilePath);\n\t\t\tawait pipeline(archive.generateNodeStream(), zipOutputStream);\n\t\t}\n\n\t\tif (!options.noUpload) {\n\t\t\tif (!options.authentication) {\n\t\t\t\tthrow new Error(`Expected authentication to be available`);\n\t\t\t}\n\n\t\t\tlogPackageMessage(\n\t\t\t\tpackageDescription.Package,\n\t\t\t\t`Opening connection to IG.Asset.Server`,\n\t\t\t);\n\n\t\t\tconst sessionManager = await createSessionManager({\n\t\t\t\turl: options.service,\n\t\t\t\taddress: options.address,\n\t\t\t\tdomain: publishDomain,\n\t\t\t\tsubDomain: publishSubdomain,\n\t\t\t\tauthentication: options.authentication,\n\t\t\t});\n\n\t\t\ttry {\n\t\t\t\tawait ensureRequiredVersions(\n\t\t\t\t\tworkspace,\n\t\t\t\t\tpackageDescription,\n\t\t\t\t\tsessionManager,\n\t\t\t\t\toptions.prompter,\n\t\t\t\t);\n\n\t\t\t\tlogPackageMessage(\n\t\t\t\t\tpackageDescription.Package,\n\t\t\t\t\t`Uploading package to ${publishDomain}.${publishSubdomain}`,\n\t\t\t\t);\n\n\t\t\t\tawait AssetService.uploadPackage(\n\t\t\t\t\tsessionManager.getTargetSession(),\n\t\t\t\t\tassetServerPackageDetails,\n\t\t\t\t\tzipFilePath,\n\t\t\t\t);\n\t\t\t} finally {\n\t\t\t\tawait sessionManager.destroy().catch((err) => {\n\t\t\t\t\tlogPackageMessage(\n\t\t\t\t\t\tpackageDescription.Package,\n\t\t\t\t\t\t`Failed to close IG.Asset.Server session(s): ${err}`,\n\t\t\t\t\t);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t} catch (err) {\n\t\tresetVersionFile();\n\t\tthrow err;\n\t}\n\n\tif (newVersion.buildNumber >= 100 && !options.pushOnly) {\n\t\tlogPackageMessage(\n\t\t\tfullPackageName,\n\t\t\ttranslate(\"messages.movingReleaseZip\"),\n\t\t);\n\n\t\tconst zipFileName = `${packageNameWithVersion}.zip`;\n\t\tconst releasesPath = getPackageReleasesDirectory(location);\n\n\t\tfs.mkdirSync(releasesPath, { recursive: true });\n\t\tfs.copyFileSync(zipFilePath, path.join(releasesPath, zipFileName));\n\t}\n};\n\nconst ensureRequiredVersions = async (\n\tworkspaceLocation: WorkspaceLocation,\n\tcreatorPackage: CreatorPackage,\n\tsessionManager: SessionManager,\n\tprompter: Prompter,\n) => {\n\tinterface UploadedPackage\n\t\textends Omit<AssetService.ExistingPackage, \"version\"> {\n\t\tversion: PackageVersion;\n\t}\n\n\tconst libraries = determineWorkspaceIGLibraries(workspaceLocation);\n\n\t// If there are no libraries, we don't need to check for required versions\n\tif (libraries.length === 0) {\n\t\treturn true;\n\t}\n\n\tconst targetSession = sessionManager.getTargetSession();\n\n\tconst rawUploadedPackages = await AssetService.getExistingPackages(\n\t\ttargetSession,\n\t);\n\n\tconst uploadedPackages = rawUploadedPackages.map(\n\t\t(entry): UploadedPackage => {\n\t\t\tlet version: PackageVersion;\n\n\t\t\ttry {\n\t\t\t\tversion = parseVersionFromNumericVersion(entry.numericVersion);\n\t\t\t} catch (err) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Encountered invalid format for version ${entry.numericVersion}`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (version.buildNumber < 100) {\n\t\t\t\tversion.preRelease = {\n\t\t\t\t\ttype: \"beta\",\n\t\t\t\t\tversion: version.buildNumber,\n\t\t\t\t};\n\t\t\t} else if (version.buildNumber > 100) {\n\t\t\t\tversion.preRelease = {\n\t\t\t\t\ttype: \"patch\",\n\t\t\t\t\tversion: version.buildNumber - 100,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...entry,\n\t\t\t\tversion,\n\t\t\t};\n\t\t},\n\t);\n\n\tfor (const libraryLocation of libraries) {\n\t\tconst libraryManifest =\n\t\t\treadPublishedPackageNpmManifest(libraryLocation);\n\t\tconst libraryCreatorPackage =\n\t\t\treadPublishedPackageCreatorManifest(libraryLocation);\n\n\t\tif (\n\t\t\tlibraryCreatorPackage === undefined ||\n\t\t\tlibraryManifest.main === undefined ||\n\t\t\tlibraryCreatorPackage.Package === creatorPackage.Package\n\t\t) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst libraryVersion = PackageVersion.extractFromLine(\n\t\t\tlibraryManifest.version,\n\t\t);\n\n\t\tif (libraryVersion.preRelease) {\n\t\t\tlibraryVersion.buildNumber = libraryVersion.preRelease.version;\n\t\t\tlibraryVersion.preRelease = undefined;\n\t\t} else {\n\t\t\tlibraryVersion.buildNumber = 100;\n\t\t}\n\n\t\tlet uploadedPackageInBasics: UploadedPackage | undefined;\n\t\tlet uploadedPackageInTarget: UploadedPackage | undefined;\n\n\t\tfor (const uploadedPackage of uploadedPackages) {\n\t\t\tif (uploadedPackage.scope === libraryCreatorPackage.Package) {\n\t\t\t\tif (uploadedPackage.support) {\n\t\t\t\t\tuploadedPackageInBasics = uploadedPackage;\n\t\t\t\t} else {\n\t\t\t\t\tuploadedPackageInTarget = uploadedPackage;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst validInBasics =\n\t\t\tuploadedPackageInBasics !== undefined &&\n\t\t\t!uploadedPackageInBasics.version.isLesserThan(libraryVersion);\n\t\tconst validInTarget =\n\t\t\tuploadedPackageInTarget !== undefined &&\n\t\t\t!uploadedPackageInTarget.version.isLesserThan(libraryVersion);\n\n\t\tif (validInBasics || validInTarget) {\n\t\t\tif (\n\t\t\t\ttargetSession.subDomain !== \"Basics\" &&\n\t\t\t\t(uploadedPackageInBasics !== undefined ||\n\t\t\t\t\tuploadedPackageInTarget !== undefined)\n\t\t\t) {\n\t\t\t\tlogPackageMessage(\n\t\t\t\t\tcreatorPackage.Package,\n\t\t\t\t\t`Package ${libraryCreatorPackage.Package} is uploaded both for Basics and ${targetSession.subDomain}. The package within ${targetSession.subDomain} will be used.`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tlogPackageMessage(\n\t\t\tcreatorPackage.Package,\n\t\t\t`Requested at least version ${libraryVersion.toVersionString({\n\t\t\t\tbuildNumber: true,\n\t\t\t})} for package ${libraryCreatorPackage.Package}`,\n\t\t);\n\n\t\tif (targetSession.subDomain !== \"Basics\" && uploadedPackageInTarget) {\n\t\t\tconst version = uploadedPackageInTarget.version.toVersionString({\n\t\t\t\tbuildNumber: true,\n\t\t\t});\n\n\t\t\tlogPackageMessage(\n\t\t\t\tcreatorPackage.Package,\n\t\t\t\t`Found invalid version ${version} for package ${libraryCreatorPackage.Package} in ${targetSession.subDomain}`,\n\t\t\t);\n\t\t}\n\t\tif (uploadedPackageInBasics) {\n\t\t\tconst version = uploadedPackageInBasics.version.toVersionString({\n\t\t\t\tbuildNumber: true,\n\t\t\t});\n\n\t\t\tlet message = `Found invalid version ${version} for package ${libraryCreatorPackage.Package} in Basics`;\n\n\t\t\tif (\n\t\t\t\ttargetSession.subDomain !== \"Basics\" &&\n\t\t\t\tuploadedPackageInTarget\n\t\t\t) {\n\t\t\t\tmessage += `. This version will not be used since the package also exists in ${targetSession.subDomain}`;\n\t\t\t}\n\n\t\t\tlogPackageMessage(creatorPackage.Package, message);\n\t\t}\n\n\t\tconst possibleTargets: string[] = [\"Basics\"];\n\n\t\tif (targetSession.subDomain !== \"Basics\") {\n\t\t\tpossibleTargets.push(targetSession.subDomain);\n\t\t}\n\n\t\tconst uploadTargetScope = await prompter.ask({\n\t\t\tmessage: `Select the scope to upload the required version of ${libraryCreatorPackage.Package} to or select \"skip\" to skip the upload.`,\n\t\t\toptions: [...possibleTargets, \"Skip\"],\n\t\t\tdefault: possibleTargets[0],\n\t\t});\n\n\t\tif (uploadTargetScope === \"Skip\") {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst archive = buildArchiveFromPublishedPackage(\n\t\t\tlibraryLocation,\n\t\t\tlibraryManifest,\n\t\t\tlibraryCreatorPackage,\n\t\t);\n\n\t\tconst newVersionString = libraryVersion.toVersionString({\n\t\t\tbuildNumber: true,\n\t\t});\n\t\tconst packageNameWithVersion = `${libraryCreatorPackage.Package}_${newVersionString}`;\n\n\t\tconst zipFilePath = path.join(\n\t\t\tgetWorkspaceOutputPath(workspaceLocation),\n\t\t\t`${packageNameWithVersion}.zip`,\n\t\t);\n\n\t\ttry {\n\t\t\tfs.rmSync(zipFilePath);\n\t\t} catch (err) {\n\t\t\tif (!isErrorENOENT(err)) {\n\t\t\t\tthrow err;\n\t\t\t}\n\t\t}\n\n\t\tconst zipOutputStream = fs.createWriteStream(zipFilePath);\n\t\tawait pipeline(archive.generateNodeStream(), zipOutputStream);\n\n\t\tconst session =\n\t\t\tuploadTargetScope === \"Basics\"\n\t\t\t\t? await sessionManager.getBasicsSession()\n\t\t\t\t: targetSession;\n\n\t\tlogPackageMessage(\n\t\t\tcreatorPackage.Package,\n\t\t\t`Uploading package ${libraryCreatorPackage.Package} with version ${newVersionString} to ${session.domain}.${session.subDomain}`,\n\t\t);\n\n\t\tawait AssetService.uploadPackage(\n\t\t\tsession,\n\t\t\t{\n\t\t\t\tname: libraryCreatorPackage.Package,\n\t\t\t\tversion: newVersionString,\n\t\t\t},\n\t\t\tzipFilePath,\n\t\t);\n\t}\n};\n\ninterface SessionManager {\n\tgetBasicsSession: () => Promise<AssetService.Session>;\n\tgetTargetSession: () => AssetService.Session;\n\tdestroy: () => Promise<void>;\n}\n\nconst createSessionManager = async (\n\tparams: AssetService.SessionStartParams,\n): Promise<SessionManager> => {\n\tconst targetSession = await AssetService.startSession(params);\n\tlet basicsSession: AssetService.Session | undefined;\n\n\treturn {\n\t\tgetBasicsSession: async () => {\n\t\t\tif (targetSession.subDomain === \"Basics\") {\n\t\t\t\treturn targetSession;\n\t\t\t}\n\n\t\t\tif (basicsSession === undefined) {\n\t\t\t\tbasicsSession = await AssetService.startSession({\n\t\t\t\t\t...params,\n\t\t\t\t\tsubDomain: \"Basics\",\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn basicsSession;\n\t\t},\n\n\t\tgetTargetSession: () => targetSession,\n\n\t\tdestroy: async () => {\n\t\t\tawait AssetService.closeSession(targetSession);\n\n\t\t\tif (basicsSession !== undefined) {\n\t\t\t\tawait AssetService.closeSession(basicsSession);\n\t\t\t}\n\t\t},\n\t};\n};\n"],"names":["releaseFolder","options","workspace","location","directory","write","writeVersionFile","reset","resetVersionFile","getVersionFileHandler","packageDescription","readPackageCreatorManifest","fullPackageName","Package","domain","subdomain","parseCreatorPackageName","publishDomain","publishSubdomain","sharedPackageJson","readWorkspaceNpmManifest","newVersion","parseVersionFromString","err","Error","buildNumber","preRelease","type","version","undefined","logPackageMessage","execSync","encoding","cwd","path","binDir","getWorkspaceOutputPath","fs","mkdirSync","recursive","assetServerPackageDetails","packageNameWithVersion","versionWithoutPrelease","clone","newVersionString","toVersionString","name","zipFilePath","join","pushOnly","existsSync","gitVersionInformation","getVersionInformationFromGit","bannerText","getWorkspaceBannerText","buildFolders","packages","skipPackagesWithoutTsFiles","banner","text","commit","commitDirty","dirty","date","Date","now","rmSync","isErrorENOENT","archive","buildArchiveFromPackage","zipOutputStream","createWriteStream","pipeline","generateNodeStream","noUpload","authentication","sessionManager","createSessionManager","url","service","address","subDomain","ensureRequiredVersions","prompter","AssetService","getTargetSession","destroy","catch","translate","zipFileName","releasesPath","getPackageReleasesDirectory","copyFileSync","workspaceLocation","creatorPackage","libraries","determineWorkspaceIGLibraries","length","targetSession","rawUploadedPackages","uploadedPackages","map","entry","parseVersionFromNumericVersion","numericVersion","libraryLocation","libraryManifest","readPublishedPackageNpmManifest","libraryCreatorPackage","readPublishedPackageCreatorManifest","main","libraryVersion","PackageVersion","extractFromLine","uploadedPackageInBasics","uploadedPackageInTarget","uploadedPackage","scope","support","validInBasics","isLesserThan","validInTarget","message","possibleTargets","push","uploadTargetScope","ask","default","buildArchiveFromPublishedPackage","session","getBasicsSession","params","basicsSession"],"mappings":"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"}
@@ -0,0 +1,168 @@
1
+ import Ajv from 'ajv';
2
+ import axios from 'axios';
3
+ import JSZip from 'jszip';
4
+ import * as path from 'path';
5
+ import * as fs from 'fs';
6
+ import * as terser from 'terser';
7
+ import { isErrorENOENT } from '../../lib/error.mjs';
8
+ import { logPackageMessage } from '../../lib/log.mjs';
9
+ import { PACKAGE_FILE, INDEX_FILE, parseCreatorPackageName, readPackageCreatorManifest, writePackageCreatorManifest, readPackageAnimationList, readPackageCreatorIndex } from '../../lib/package.mjs';
10
+ import { getWorkspaceOutputPath } from '../../lib/workspace.mjs';
11
+ import { readPublishedPackageCreatorIndex } from '../../lib/publishedPackage.mjs';
12
+
13
+ const buildArchiveFromPublishedPackage = (location, manifest, creatorPackage) => {
14
+ const archive = new JSZip();
15
+ archive.file(PACKAGE_FILE, JSON.stringify(creatorPackage, null, 2));
16
+ const index = readPublishedPackageCreatorIndex(location);
17
+ if (index !== undefined) {
18
+ archive.file(INDEX_FILE, JSON.stringify(index, null, 2));
19
+ }
20
+ archive.file(manifest.main, fs.createReadStream(path.join(location.path, manifest.main)));
21
+ return archive;
22
+ };
23
+ let validateSchema;
24
+ const runtimeScripts = ["Interactor", "Core", "Mixed"];
25
+ const notRuntimeScripts = ["Context", "Evaluator"];
26
+ const buildArchiveFromPackage = async (workspaceLocation, packageLocation, data) => {
27
+ const {
28
+ domain,
29
+ subdomain
30
+ } = parseCreatorPackageName(data);
31
+ const logStep = step => logPackageMessage(data.Package, step);
32
+ if (validateSchema === undefined) {
33
+ validateSchema = await axios.get("https://archive.intelligentgraphics.biz/schemas/gfx/animation.json").then(({
34
+ data
35
+ }) => new Ajv({
36
+ coerceTypes: true,
37
+ allErrors: true,
38
+ removeAdditional: true,
39
+ useDefaults: "empty",
40
+ validateSchema: "log"
41
+ }).compile(data));
42
+ }
43
+ const libFilePath = path.join(getWorkspaceOutputPath(workspaceLocation), `${data.Package}.min.js`);
44
+ const scriptDirectories = [packageLocation.path, packageLocation.scriptsDir];
45
+ if (subdomain === "GFX.Standard") {
46
+ logStep(`Including Images folder`);
47
+ scriptDirectories.push(path.join(packageLocation.path, "Images"));
48
+ }
49
+ const manifest = readPackageCreatorManifest(packageLocation);
50
+ if (manifest !== undefined) {
51
+ if (manifest.RunTime && notRuntimeScripts.includes(manifest.Type)) {
52
+ logStep("Setting script RunTime to false because of script type");
53
+ writePackageCreatorManifest(packageLocation, {
54
+ ...manifest,
55
+ RunTime: false
56
+ });
57
+ } else if (!manifest.RunTime && runtimeScripts.includes(manifest.Type)) {
58
+ logStep("Setting script RunTime to true because of script type");
59
+ writePackageCreatorManifest(packageLocation, {
60
+ ...manifest,
61
+ RunTime: true
62
+ });
63
+ }
64
+ }
65
+
66
+ // if (index === undefined) {
67
+ // throw new Error(
68
+ // `Could not find an "${INDEX_FILE}" file in "${primaryScriptDir}"`,
69
+ // );
70
+ // }
71
+
72
+ const animations = new Map();
73
+ for (const scriptFilePath of readPackageAnimationList(packageLocation)) {
74
+ const content = fs.readFileSync(scriptFilePath, {
75
+ encoding: "utf8"
76
+ });
77
+ let data;
78
+ try {
79
+ data = JSON.parse(content);
80
+ } catch (err) {
81
+ const relativePath = path.relative(workspaceLocation.path, scriptFilePath);
82
+ if (err instanceof SyntaxError) {
83
+ throw new Error(`Encountered invalid syntax in file "${relativePath}": ${String(err)}`);
84
+ }
85
+ throw new Error(`Encountered an unexpected error while parsing animation json file at path "${relativePath}"`, {
86
+ cause: err
87
+ });
88
+ }
89
+ validateSchema(data);
90
+ animations.set(data.Id, JSON.stringify(data));
91
+ }
92
+ let libFile;
93
+ try {
94
+ libFile = fs.readFileSync(libFilePath, {
95
+ encoding: "utf8"
96
+ });
97
+ } catch (err) {
98
+ if (!isErrorENOENT(err)) {
99
+ throw err;
100
+ }
101
+ }
102
+ if (libFile === undefined) {
103
+ if (animations.size === 0) {
104
+ throw new Error(`Could not find a javascript file at "${libFilePath}".
105
+ Packaging without a javascript file is only allowed when animation json files are available`);
106
+ }
107
+ }
108
+ const archive = new JSZip();
109
+ let library = "";
110
+ if (libFile) {
111
+ library = libFile;
112
+ }
113
+ if (!library) {
114
+ const date = new Date(Date.now());
115
+ library = `/* This file is part of the ${domain} Data Packages.
116
+ * Copyright (C) ${date.getFullYear()} intelligentgraphics. All Rights Reserved. */`;
117
+ }
118
+ if (animations.size > 0) {
119
+ const scopeParts = data.Scope.split(".");
120
+ const scope = data.Scope;
121
+ library += createNamespace(scopeParts);
122
+ for (const [name, data] of animations) {
123
+ library += `${scope}.${name} = ` + data + ";";
124
+ logPackageMessage(manifest.Package, `Added animation ${scope}.${name}`);
125
+ }
126
+ }
127
+ const minifyResult = await terser.minify(library, {
128
+ ecma: 5
129
+ });
130
+ archive.file(`${data.Package}.js`, minifyResult.code);
131
+ archive.file(PACKAGE_FILE, JSON.stringify(data, null, 2));
132
+ const creatorIndex = readPackageCreatorIndex(packageLocation);
133
+ if (creatorIndex !== undefined) {
134
+ archive.file(INDEX_FILE, JSON.stringify(creatorIndex, null, 2));
135
+ }
136
+ for (const directory of scriptDirectories) {
137
+ try {
138
+ for (const file of fs.readdirSync(directory)) {
139
+ const {
140
+ ext
141
+ } = path.parse(file);
142
+ switch (ext) {
143
+ case ".png":
144
+ case ".jpeg":
145
+ case ".jpg":
146
+ break;
147
+ default:
148
+ continue;
149
+ }
150
+ archive.file(file, fs.createReadStream(path.join(directory, file)));
151
+ }
152
+ } catch (err) {
153
+ console.error(`Script directory "${directory}" does not exist`);
154
+ }
155
+ }
156
+ return archive;
157
+ };
158
+ const createNamespace = parts => {
159
+ let code = `var ${parts[0]};`;
160
+ for (let index = 0; index < parts.length; index++) {
161
+ const path = parts.slice(0, index + 1).join(".");
162
+ code += `\n(${path} = ${path} || {});`;
163
+ }
164
+ return code;
165
+ };
166
+
167
+ export { buildArchiveFromPackage, buildArchiveFromPublishedPackage };
168
+ //# sourceMappingURL=zip.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zip.mjs","sources":["../../../src/commands/publish/zip.ts"],"sourcesContent":["import Ajv, { ValidateFunction } from \"ajv\";\nimport axios from \"axios\";\nimport JSZip from \"jszip\";\nimport * as path from \"path\";\nimport * as fs from \"fs\";\nimport * as terser from \"terser\";\n\nimport { isErrorENOENT } from \"../../lib/error\";\nimport { logPackageMessage } from \"../../lib/log\";\nimport {\n\tCreatorPackage,\n\treadPackageCreatorManifest,\n\twritePackageCreatorManifest,\n\treadPackageAnimationList,\n\treadPackageCreatorIndex,\n\tparseCreatorPackageName,\n\tPackageLocation,\n\tPackageNpmManifest,\n\tINDEX_FILE,\n\tPACKAGE_FILE,\n} from \"../../lib/package\";\nimport { getWorkspaceOutputPath, WorkspaceLocation } from \"../../lib/workspace\";\nimport {\n\tPublishedPackageLocation,\n\treadPublishedPackageCreatorIndex,\n} from \"../../lib/publishedPackage\";\n\nexport const buildArchiveFromPublishedPackage = (\n\tlocation: PublishedPackageLocation,\n\tmanifest: PackageNpmManifest,\n\tcreatorPackage: CreatorPackage,\n) => {\n\tconst archive = new JSZip();\n\n\tarchive.file(PACKAGE_FILE, JSON.stringify(creatorPackage, null, 2));\n\n\tconst index = readPublishedPackageCreatorIndex(location);\n\n\tif (index !== undefined) {\n\t\tarchive.file(INDEX_FILE, JSON.stringify(index, null, 2));\n\t}\n\n\tarchive.file(\n\t\tmanifest.main,\n\t\tfs.createReadStream(path.join(location.path, manifest.main)),\n\t);\n\n\treturn archive;\n};\n\nlet validateSchema: ValidateFunction | undefined;\n\nconst runtimeScripts: CreatorPackage[\"Type\"][] = [\n\t\"Interactor\",\n\t\"Core\",\n\t\"Mixed\",\n];\n\nconst notRuntimeScripts: CreatorPackage[\"Type\"][] = [\"Context\", \"Evaluator\"];\n\nexport const buildArchiveFromPackage = async (\n\tworkspaceLocation: WorkspaceLocation,\n\tpackageLocation: PackageLocation,\n\tdata: CreatorPackage,\n) => {\n\tconst { domain, subdomain } = parseCreatorPackageName(data);\n\n\tconst logStep = (step: string) => logPackageMessage(data.Package, step);\n\n\tif (validateSchema === undefined) {\n\t\tvalidateSchema = await axios\n\t\t\t.get(\n\t\t\t\t\"https://archive.intelligentgraphics.biz/schemas/gfx/animation.json\",\n\t\t\t)\n\t\t\t.then(({ data }) =>\n\t\t\t\tnew Ajv({\n\t\t\t\t\tcoerceTypes: true,\n\t\t\t\t\tallErrors: true,\n\t\t\t\t\tremoveAdditional: true,\n\t\t\t\t\tuseDefaults: \"empty\",\n\t\t\t\t\tvalidateSchema: \"log\",\n\t\t\t\t}).compile(data),\n\t\t\t);\n\t}\n\n\tconst libFilePath = path.join(\n\t\tgetWorkspaceOutputPath(workspaceLocation),\n\t\t`${data.Package}.min.js`,\n\t);\n\n\tconst scriptDirectories: string[] = [\n\t\tpackageLocation.path,\n\t\tpackageLocation.scriptsDir,\n\t];\n\n\tif (subdomain === \"GFX.Standard\") {\n\t\tlogStep(`Including Images folder`);\n\t\tscriptDirectories.push(path.join(packageLocation.path, \"Images\"));\n\t}\n\n\tconst manifest = readPackageCreatorManifest(packageLocation);\n\n\tif (manifest !== undefined) {\n\t\tif (manifest.RunTime && notRuntimeScripts.includes(manifest.Type)) {\n\t\t\tlogStep(\"Setting script RunTime to false because of script type\");\n\t\t\twritePackageCreatorManifest(packageLocation, {\n\t\t\t\t...manifest,\n\t\t\t\tRunTime: false,\n\t\t\t});\n\t\t} else if (\n\t\t\t!manifest.RunTime &&\n\t\t\truntimeScripts.includes(manifest.Type)\n\t\t) {\n\t\t\tlogStep(\"Setting script RunTime to true because of script type\");\n\t\t\twritePackageCreatorManifest(packageLocation, {\n\t\t\t\t...manifest,\n\t\t\t\tRunTime: true,\n\t\t\t});\n\t\t}\n\t}\n\n\t// if (index === undefined) {\n\t// \tthrow new Error(\n\t// \t\t`Could not find an \"${INDEX_FILE}\" file in \"${primaryScriptDir}\"`,\n\t// \t);\n\t// }\n\n\tconst animations = new Map<string, string>();\n\n\tfor (const scriptFilePath of readPackageAnimationList(packageLocation)) {\n\t\tconst content = fs.readFileSync(scriptFilePath, { encoding: \"utf8\" })!;\n\n\t\tlet data: { Id: string };\n\n\t\ttry {\n\t\t\tdata = JSON.parse(content);\n\t\t} catch (err) {\n\t\t\tconst relativePath = path.relative(\n\t\t\t\tworkspaceLocation.path,\n\t\t\t\tscriptFilePath,\n\t\t\t);\n\n\t\t\tif (err instanceof SyntaxError) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Encountered invalid syntax in file \"${relativePath}\": ${String(\n\t\t\t\t\t\terr,\n\t\t\t\t\t)}`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tthrow new Error(\n\t\t\t\t`Encountered an unexpected error while parsing animation json file at path \"${relativePath}\"`,\n\t\t\t\t{\n\t\t\t\t\tcause: err,\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\n\t\tvalidateSchema!(data);\n\n\t\tanimations.set(data.Id, JSON.stringify(data));\n\t}\n\n\tlet libFile: string | undefined;\n\n\ttry {\n\t\tlibFile = fs.readFileSync(libFilePath, { encoding: \"utf8\" });\n\t} catch (err) {\n\t\tif (!isErrorENOENT(err)) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\n\tif (libFile === undefined) {\n\t\tif (animations.size === 0) {\n\t\t\tthrow new Error(`Could not find a javascript file at \"${libFilePath}\".\nPackaging without a javascript file is only allowed when animation json files are available`);\n\t\t}\n\t}\n\n\tconst archive = new JSZip();\n\n\tlet library: string = \"\";\n\n\tif (libFile) {\n\t\tlibrary = libFile;\n\t}\n\n\tif (!library) {\n\t\tconst date = new Date(Date.now());\n\t\tlibrary = `/* This file is part of the ${domain} Data Packages.\n\t\t* Copyright (C) ${date.getFullYear()} intelligentgraphics. All Rights Reserved. */`;\n\t}\n\n\tif (animations.size > 0) {\n\t\tconst scopeParts = data.Scope.split(\".\");\n\t\tconst scope = data.Scope;\n\n\t\tlibrary += createNamespace(scopeParts);\n\n\t\tfor (const [name, data] of animations) {\n\t\t\tlibrary += `${scope}.${name} = ` + data + \";\";\n\t\t\tlogPackageMessage(\n\t\t\t\tmanifest.Package,\n\t\t\t\t`Added animation ${scope}.${name}`,\n\t\t\t);\n\t\t}\n\t}\n\n\tconst minifyResult = await terser.minify(library, { ecma: 5 });\n\n\tarchive.file(`${data.Package}.js`, minifyResult.code!);\n\tarchive.file(PACKAGE_FILE, JSON.stringify(data, null, 2));\n\n\tconst creatorIndex = readPackageCreatorIndex(packageLocation);\n\n\tif (creatorIndex !== undefined) {\n\t\tarchive.file(INDEX_FILE, JSON.stringify(creatorIndex, null, 2));\n\t}\n\n\tfor (const directory of scriptDirectories) {\n\t\ttry {\n\t\t\tfor (const file of fs.readdirSync(directory)) {\n\t\t\t\tconst { ext } = path.parse(file);\n\n\t\t\t\tswitch (ext) {\n\t\t\t\t\tcase \".png\":\n\t\t\t\t\tcase \".jpeg\":\n\t\t\t\t\tcase \".jpg\":\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tarchive.file(\n\t\t\t\t\tfile,\n\t\t\t\t\tfs.createReadStream(path.join(directory, file)),\n\t\t\t\t);\n\t\t\t}\n\t\t} catch (err) {\n\t\t\tconsole.error(`Script directory \"${directory}\" does not exist`);\n\t\t}\n\t}\n\n\treturn archive;\n};\n\nconst createNamespace = (parts: string[]) => {\n\tlet code = `var ${parts[0]};`;\n\n\tfor (let index = 0; index < parts.length; index++) {\n\t\tconst path = parts.slice(0, index + 1).join(\".\");\n\n\t\tcode += `\\n(${path} = ${path} || {});`;\n\t}\n\n\treturn code;\n};\n"],"names":["buildArchiveFromPublishedPackage","location","manifest","creatorPackage","archive","JSZip","file","PACKAGE_FILE","JSON","stringify","index","readPublishedPackageCreatorIndex","undefined","INDEX_FILE","main","fs","createReadStream","path","join","validateSchema","runtimeScripts","notRuntimeScripts","buildArchiveFromPackage","workspaceLocation","packageLocation","data","domain","subdomain","parseCreatorPackageName","logStep","step","logPackageMessage","Package","axios","get","then","Ajv","coerceTypes","allErrors","removeAdditional","useDefaults","compile","libFilePath","getWorkspaceOutputPath","scriptDirectories","scriptsDir","push","readPackageCreatorManifest","RunTime","includes","Type","writePackageCreatorManifest","animations","Map","scriptFilePath","readPackageAnimationList","content","readFileSync","encoding","parse","err","relativePath","relative","SyntaxError","Error","String","cause","set","Id","libFile","isErrorENOENT","size","library","date","Date","now","getFullYear","scopeParts","Scope","split","scope","createNamespace","name","minifyResult","terser","minify","ecma","code","creatorIndex","readPackageCreatorIndex","directory","readdirSync","ext","console","error","parts","length","slice"],"mappings":"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"}
@@ -1,22 +1,14 @@
1
- #!/usr/bin/env node
2
1
  import * as path from 'path';
3
2
  import * as fs from 'fs';
4
3
  import { spawnSync } from 'child_process';
5
- import { f as readWorkspaceNpmManifest, g as getWorkspaceOutputPath, r as readPackageCreatorManifest, b as readPackageNpmManifest, m as writePackageNpmManifest, P as PACKAGE_FILE, e as readPackageCreatorIndex, I as INDEX_FILE, n as iterateWorkspacePackages } from './cli.mjs';
6
- import { p as parseVersionFromString, g as getVersionFileHandler, a as getVersionInformationFromGit, b as getWorkspaceBannerText } from './versionFile.mjs';
7
- import { b as buildFolders, l as logPackageMessage } from './index2.mjs';
8
- import 'update-notifier';
9
- import 'yargs/yargs';
10
- import 'url';
11
- import 'y18n';
12
- import 'write-pkg';
13
- import 'inquirer';
14
- import 'simple-git';
15
- import 'glob';
16
- import 'terser';
17
- import 'typescript';
18
- import './scripts.mjs';
19
- import 'typedoc';
4
+ import { readPackageCreatorManifest, readPackageNpmManifest, writePackageNpmManifest, PACKAGE_FILE, readPackageCreatorIndex, INDEX_FILE } from '../lib/package.mjs';
5
+ import { readWorkspaceNpmManifest, getWorkspaceOutputPath, iterateWorkspacePackages } from '../lib/workspace.mjs';
6
+ import { getVersionInformationFromGit } from '../lib/git.mjs';
7
+ import { getWorkspaceBannerText } from '../lib/banner.mjs';
8
+ import { parseVersionFromString } from '../lib/parseVersion.mjs';
9
+ import { getVersionFileHandler } from '../lib/versionFile.mjs';
10
+ import { logPackageMessage } from '../lib/log.mjs';
11
+ import { buildFolders } from './build/index.mjs';
20
12
 
21
13
  const publishToNpm = async ({
22
14
  workspace,
@@ -76,8 +68,8 @@ const publishToNpm = async ({
76
68
  const gitVersionInformation = await getVersionInformationFromGit(workspace, location);
77
69
  const bannerText = workspaceManifest !== undefined ? getWorkspaceBannerText(workspaceManifest) : undefined;
78
70
  await buildFolders({
79
- cwd: workspace.path,
80
- directories: [location.path],
71
+ workspace,
72
+ packages: [location],
81
73
  minimize: true,
82
74
  outDir: getWorkspaceOutputPath(workspace),
83
75
  banner: {