@intelligentgraphics/ig.gfx.packager 3.0.22 → 3.0.24

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 (28) hide show
  1. package/build/bin.mjs +1 -1
  2. package/build/{cli-f6586dd5.mjs → cli-Bx92BGrF.mjs} +72 -86
  3. package/build/cli-Bx92BGrF.mjs.map +1 -0
  4. package/build/{dependencies-e2aa1797.mjs → dependencies-CZcyW8ZI.mjs} +2 -2
  5. package/build/{dependencies-e2aa1797.mjs.map → dependencies-CZcyW8ZI.mjs.map} +1 -1
  6. package/build/{generateIndex-019c6946.mjs → generateIndex-DEAi7qDC.mjs} +3 -3
  7. package/build/{generateIndex-019c6946.mjs.map → generateIndex-DEAi7qDC.mjs.map} +1 -1
  8. package/build/{generateParameterType-ae69726a.mjs → generateParameterType-B7iMqOil.mjs} +3 -3
  9. package/build/{generateParameterType-ae69726a.mjs.map → generateParameterType-B7iMqOil.mjs.map} +1 -1
  10. package/build/{index-39c79102.mjs → index-CKKQe2tV.mjs} +179 -172
  11. package/build/index-CKKQe2tV.mjs.map +1 -0
  12. package/build/{index-3d1291e7.mjs → index-CudbcGpI.mjs} +55 -40
  13. package/build/index-CudbcGpI.mjs.map +1 -0
  14. package/build/{postinstall-3328545c.mjs → postinstall-DKsDC4RH.mjs} +3 -3
  15. package/build/{postinstall-3328545c.mjs.map → postinstall-DKsDC4RH.mjs.map} +1 -1
  16. package/build/{publishNpm-532e17a0.mjs → publishNpm-B7MffVws.mjs} +9 -7
  17. package/build/publishNpm-B7MffVws.mjs.map +1 -0
  18. package/build/{scripts-7ed8dff6.mjs → scripts-EvIjiH6G.mjs} +1 -1
  19. package/build/{scripts-7ed8dff6.mjs.map → scripts-EvIjiH6G.mjs.map} +1 -1
  20. package/build/{versionFile-644c7ff8.mjs → versionFile-B5fuIv75.mjs} +3 -3
  21. package/build/{versionFile-644c7ff8.mjs.map → versionFile-B5fuIv75.mjs.map} +1 -1
  22. package/lib/lib.mjs +225 -204
  23. package/package.json +9 -9
  24. package/readme.md +26 -0
  25. package/build/cli-f6586dd5.mjs.map +0 -1
  26. package/build/index-39c79102.mjs.map +0 -1
  27. package/build/index-3d1291e7.mjs.map +0 -1
  28. package/build/publishNpm-532e17a0.mjs.map +0 -1
@@ -5,17 +5,17 @@ import { createWriteStream, createReadStream } from 'fs';
5
5
  import { pipeline } from 'stream/promises';
6
6
  import { exec } from 'child_process';
7
7
  import { promisify } from 'util';
8
- import { r as readPublishedPackageCreatorIndex, d as determineWorkspaceIGLibraries, a as readPublishedPackageNpmManifest, b as readPublishedPackageCreatorManifest } from './dependencies-e2aa1797.mjs';
9
- import { P as PACKAGE_FILE, I as INDEX_FILE, p as parseCreatorPackageName, r as readPackageCreatorManifest, w as writePackageCreatorManifest, i as isErrorENOENT, a as readPackageCreatorIndex, b as readWorkspaceNpmManifest, g as getWorkspaceOutputPath, c as readPackageAnimationList, d as isErrorEACCES, e as isErrorEPERM, u as uploadPackageFromStream, f as getPackageReleasesDirectory, h as getExistingPackages, s as startSession, j as closeSession } from './cli-f6586dd5.mjs';
10
- import { l as logPackageMessage, b as buildFolders } from './index-3d1291e7.mjs';
8
+ import 'resolve';
11
9
  import 'write-pkg';
10
+ import { p as parseCreatorPackageName, r as readPackageCreatorManifest, w as writePackageCreatorManifest, i as isErrorENOENT, P as PACKAGE_FILE, a as readPackageCreatorIndex, I as INDEX_FILE, s as startSession, c as closeSession, g as getExistingPackages, u as uploadPackageFromStream, b as readWorkspaceNpmManifest, d as getWorkspaceOutputPath, e as readPackageAnimationList, f as isErrorEACCES, h as isErrorEPERM, j as getPackageReleasesDirectory } from './cli-Bx92BGrF.mjs';
11
+ import { c as createPackageScopedReporter, a as consoleReporter, b as buildFolders } from './index-CudbcGpI.mjs';
12
12
  import 'glob';
13
13
  import 'node:path';
14
14
  import 'node:fs';
15
15
  import 'axios';
16
- import { g as getVersionFileHandler, p as parseVersionFromString, a as getVersionInformationFromGit, b as getWorkspaceBannerText, c as parseVersionFromNumericVersion, P as PackageVersion } from './versionFile-644c7ff8.mjs';
16
+ import { p as parseVersionFromNumericVersion, P as PackageVersion, g as getVersionFileHandler, a as parseVersionFromString, b as getVersionInformationFromGit, c as getWorkspaceBannerText } from './versionFile-B5fuIv75.mjs';
17
17
  import JSZip from 'jszip';
18
- import 'resolve';
18
+ import { r as readPublishedPackageCreatorIndex, d as determineWorkspaceIGLibraries, a as readPublishedPackageNpmManifest, b as readPublishedPackageCreatorManifest } from './dependencies-CZcyW8ZI.mjs';
19
19
  import 'update-notifier';
20
20
  import 'yargs/yargs';
21
21
  import 'url';
@@ -25,10 +25,11 @@ import 'core-js/modules/es.typed-array.set.js';
25
25
  import 'inquirer';
26
26
  import 'terser';
27
27
  import 'typescript';
28
- import './scripts-7ed8dff6.mjs';
28
+ import './scripts-EvIjiH6G.mjs';
29
29
  import 'typedoc';
30
30
  import 'source-map-js';
31
31
  import 'ajv';
32
+ import 'os';
32
33
  import 'simple-git';
33
34
 
34
35
  const buildArchiveFromPublishedPackage = (location, manifest, creatorPackage)=>{
@@ -68,27 +69,26 @@ const notRuntimeScripts = [
68
69
  "Context",
69
70
  "Evaluator"
70
71
  ];
71
- const buildArchiveFromPackage = async (packageLocation, data, binDir, minified = true)=>{
72
+ const buildArchiveFromPackage = async (reporter, packageLocation, data, binDir, minified = true)=>{
72
73
  const { domain } = parseCreatorPackageName(data);
73
- const logStep = (step)=>logPackageMessage(data.Package, step);
74
74
  const scriptDirectories = [
75
75
  packageLocation.path,
76
76
  packageLocation.scriptsDir
77
77
  ];
78
78
  if (data.Package === "IG.GFX.Standard") {
79
- logStep(`Including Images folder`);
79
+ reporter.log(`Including Images folder`);
80
80
  scriptDirectories.push(path.join(packageLocation.path, "Images"));
81
81
  }
82
82
  const manifest = readPackageCreatorManifest(packageLocation);
83
83
  if (manifest !== undefined) {
84
84
  if (manifest.RunTime && notRuntimeScripts.includes(manifest.Type)) {
85
- logStep("Setting script RunTime to false because of script type");
85
+ reporter.log("Setting script RunTime to false because of script type");
86
86
  writePackageCreatorManifest(packageLocation, {
87
87
  ...manifest,
88
88
  RunTime: false
89
89
  });
90
90
  } else if (!manifest.RunTime && runtimeScripts.includes(manifest.Type)) {
91
- logStep("Setting script RunTime to true because of script type");
91
+ reporter.log("Setting script RunTime to true because of script type");
92
92
  writePackageCreatorManifest(packageLocation, {
93
93
  ...manifest,
94
94
  RunTime: true
@@ -137,12 +137,165 @@ const buildArchiveFromPackage = async (packageLocation, data, binDir, minified =
137
137
  archive.file(file, fs.createReadStream(path.join(directory, file)));
138
138
  }
139
139
  } catch (err) {
140
- console.error(`Script directory "${directory}" does not exist`);
140
+ reporter.error(`Script directory "${directory}" does not exist`);
141
141
  }
142
142
  }
143
143
  return archive;
144
144
  };
145
145
 
146
+ const createAssetServiceSessionManager = async (params)=>{
147
+ const targetSession = await startSession(params);
148
+ let basicsSession;
149
+ return {
150
+ getBasicsSession: async ()=>{
151
+ if (targetSession.subDomain === "Basics") {
152
+ return targetSession;
153
+ }
154
+ if (basicsSession === undefined) {
155
+ basicsSession = await startSession({
156
+ ...params,
157
+ subDomain: "Basics"
158
+ });
159
+ }
160
+ return basicsSession;
161
+ },
162
+ getTargetSession: ()=>targetSession,
163
+ destroy: async ()=>{
164
+ await closeSession(targetSession);
165
+ if (basicsSession !== undefined) {
166
+ await closeSession(basicsSession);
167
+ }
168
+ }
169
+ };
170
+ };
171
+
172
+ const synchronizeDependencies = async (workspaceLocation, creatorPackage, sessionManager, prompter, reporter, logUpToDate = false)=>{
173
+ const libraries = determineWorkspaceIGLibraries(workspaceLocation);
174
+ // If there are no libraries, we don't need to check for required versions
175
+ if (libraries.length === 0) {
176
+ return true;
177
+ }
178
+ const targetSession = sessionManager.getTargetSession();
179
+ const rawUploadedPackages = await getExistingPackages(targetSession);
180
+ const uploadedPackages = rawUploadedPackages.map((entry)=>{
181
+ let version;
182
+ try {
183
+ version = parseVersionFromNumericVersion(entry.numericVersion);
184
+ } catch (err) {
185
+ throw new Error(`Encountered invalid format for version ${entry.numericVersion}`);
186
+ }
187
+ if (version.buildNumber < 100) {
188
+ version.preRelease = {
189
+ type: "beta",
190
+ version: version.buildNumber
191
+ };
192
+ } else if (version.buildNumber > 100) {
193
+ version.preRelease = {
194
+ type: "patch",
195
+ version: version.buildNumber - 100
196
+ };
197
+ }
198
+ return {
199
+ ...entry,
200
+ version
201
+ };
202
+ });
203
+ for (const libraryLocation of libraries){
204
+ const libraryManifest = readPublishedPackageNpmManifest(libraryLocation);
205
+ const libraryCreatorPackage = readPublishedPackageCreatorManifest(libraryLocation);
206
+ if (libraryCreatorPackage === undefined || libraryManifest.main === undefined || libraryCreatorPackage.Package === (creatorPackage == null ? void 0 : creatorPackage.Package)) {
207
+ continue;
208
+ }
209
+ const libraryVersion = PackageVersion.extractFromLine(libraryManifest.version);
210
+ if (libraryVersion.preRelease) {
211
+ libraryVersion.buildNumber = libraryVersion.preRelease.version;
212
+ libraryVersion.preRelease = undefined;
213
+ } else {
214
+ libraryVersion.buildNumber = 100;
215
+ }
216
+ let uploadedPackageInBasics;
217
+ let uploadedPackageInTarget;
218
+ for (const uploadedPackage of uploadedPackages){
219
+ if (uploadedPackage.scope === libraryCreatorPackage.Package) {
220
+ if (uploadedPackage.support) {
221
+ uploadedPackageInBasics = uploadedPackage;
222
+ } else {
223
+ uploadedPackageInTarget = uploadedPackage;
224
+ }
225
+ }
226
+ }
227
+ const validInBasics = uploadedPackageInBasics !== undefined && !uploadedPackageInBasics.version.isLesserThan(libraryVersion);
228
+ const validInTarget = uploadedPackageInTarget !== undefined && !uploadedPackageInTarget.version.isLesserThan(libraryVersion);
229
+ if (validInBasics || validInTarget) {
230
+ if (targetSession.subDomain !== "Basics" && uploadedPackageInBasics !== undefined && uploadedPackageInTarget !== undefined) {
231
+ reporter.log(`Package ${libraryCreatorPackage.Package} is uploaded both for Basics and ${targetSession.subDomain}. The package within ${targetSession.subDomain} will be used.`);
232
+ }
233
+ if (logUpToDate) {
234
+ reporter.log(`Package ${libraryCreatorPackage.Package} is already uploaded with the required version ${libraryVersion.toVersionString({})}`);
235
+ }
236
+ continue;
237
+ }
238
+ const possibleTargets = [];
239
+ if (uploadedPackageInBasics) {
240
+ const version = uploadedPackageInBasics.version.toVersionString({
241
+ buildNumber: true
242
+ });
243
+ possibleTargets.push({
244
+ value: "Basics",
245
+ name: `Basics (Current: ${version})`
246
+ });
247
+ } else {
248
+ possibleTargets.push({
249
+ value: "Basics",
250
+ name: "Basics (Current: None)"
251
+ });
252
+ }
253
+ if (targetSession.subDomain !== "Basics") {
254
+ if (uploadedPackageInTarget) {
255
+ const version = uploadedPackageInTarget.version.toVersionString({
256
+ buildNumber: true
257
+ });
258
+ possibleTargets.push({
259
+ value: targetSession.subDomain,
260
+ name: `${targetSession.subDomain} (Current: ${version})`
261
+ });
262
+ } else {
263
+ possibleTargets.push({
264
+ value: targetSession.subDomain,
265
+ name: `${targetSession.subDomain} (Current: None)`
266
+ });
267
+ }
268
+ }
269
+ const libraryVersionString = libraryVersion.toVersionString({
270
+ buildNumber: true
271
+ });
272
+ const uploadTargetScope = await prompter.ask({
273
+ message: `Version ${libraryVersionString} of dependency ${libraryCreatorPackage.Package} is required but not available. Please select a subdomain to upload the correct dependency version to`,
274
+ options: [
275
+ ...possibleTargets,
276
+ {
277
+ name: "Skip upload",
278
+ value: "Skip"
279
+ }
280
+ ],
281
+ default: possibleTargets[0].value
282
+ });
283
+ if (uploadTargetScope === "Skip") {
284
+ continue;
285
+ }
286
+ const archive = buildArchiveFromPublishedPackage(libraryLocation, libraryManifest, libraryCreatorPackage);
287
+ const newVersionString = libraryVersion.toVersionString({
288
+ buildNumber: true
289
+ });
290
+ const session = uploadTargetScope === "Basics" ? await sessionManager.getBasicsSession() : targetSession;
291
+ reporter.log(`Uploading package ${libraryCreatorPackage.Package} with version ${newVersionString} to ${session.domain}.${session.subDomain}`);
292
+ await uploadPackageFromStream(session, {
293
+ name: libraryCreatorPackage.Package,
294
+ version: newVersionString
295
+ }, archive.generateNodeStream());
296
+ }
297
+ };
298
+
146
299
  const execAsync = promisify(exec);
147
300
  const releaseFolder = async (options)=>{
148
301
  const workspace = options.workspace;
@@ -150,6 +303,7 @@ const releaseFolder = async (options)=>{
150
303
  const { write: writeVersionFile, reset: resetVersionFile } = getVersionFileHandler(location);
151
304
  const packageDescription = readPackageCreatorManifest(location);
152
305
  const fullPackageName = packageDescription.Package;
306
+ const reporter = options.reporter ?? createPackageScopedReporter(consoleReporter, packageDescription.Package);
153
307
  const { domain, subdomain } = parseCreatorPackageName(packageDescription);
154
308
  const publishDomain = options.domain ?? domain;
155
309
  const publishSubdomain = options.subdomain ?? subdomain;
@@ -176,7 +330,7 @@ const releaseFolder = async (options)=>{
176
330
  };
177
331
  }
178
332
  if (sharedPackageJson !== undefined) {
179
- logPackageMessage(packageDescription.Package, `Running npm install to make sure all dependencies are up to date`);
333
+ reporter.log(`Running npm install to make sure all dependencies are up to date`);
180
334
  await execAsync(`npm install`, {
181
335
  encoding: "utf-8",
182
336
  cwd: workspace.path
@@ -232,7 +386,8 @@ const releaseFolder = async (options)=>{
232
386
  buildNumber: true
233
387
  }),
234
388
  date: new Date(Date.now())
235
- } : undefined
389
+ } : undefined,
390
+ preparedReporter: reporter
236
391
  });
237
392
  newVersion.preRelease = undefined;
238
393
  try {
@@ -258,14 +413,14 @@ const releaseFolder = async (options)=>{
258
413
  }
259
414
  }
260
415
  }
261
- logPackageMessage(packageDescription.Package, `Creating zip file`);
262
- const archive = await buildArchiveFromPackage(location, packageDescription, binDir, options.minimize);
416
+ reporter.log(`Creating zip file`);
417
+ const archive = await buildArchiveFromPackage(reporter, location, packageDescription, binDir, options.minimize);
263
418
  try {
264
419
  const zipOutputStream = createWriteStream(zipFilePath);
265
420
  await pipeline(archive.generateNodeStream(), zipOutputStream);
266
421
  } catch (err) {
267
422
  if (isErrorEACCES(err) || isErrorEPERM(err)) {
268
- logPackageMessage(packageDescription.Package, `Could not create zip file in the bin directory because of a permissions error. Only using it in-memory`);
423
+ reporter.log(`Could not create zip file in the bin directory because of a permissions error. Only using it in-memory`);
269
424
  uploadable = {
270
425
  getStream: ()=>archive.generateNodeStream()
271
426
  };
@@ -278,8 +433,8 @@ const releaseFolder = async (options)=>{
278
433
  if (!options.authentication) {
279
434
  throw new Error(`Expected authentication to be available`);
280
435
  }
281
- logPackageMessage(packageDescription.Package, `Opening connection to IG.Asset.Server`);
282
- const sessionManager = await createSessionManager({
436
+ reporter.log(`Opening connection to IG.Asset.Server`);
437
+ const sessionManager = await createAssetServiceSessionManager({
283
438
  url: options.service,
284
439
  address: options.address,
285
440
  domain: publishDomain,
@@ -288,13 +443,13 @@ const releaseFolder = async (options)=>{
288
443
  });
289
444
  try {
290
445
  if (!options.skipDependencies) {
291
- await ensureRequiredVersions(workspace, packageDescription, sessionManager, options.prompter);
446
+ await synchronizeDependencies(workspace, packageDescription, sessionManager, options.prompter, reporter);
292
447
  }
293
- logPackageMessage(packageDescription.Package, `Uploading package to ${publishDomain}.${publishSubdomain}`);
448
+ reporter.log(`Uploading package to ${publishDomain}.${publishSubdomain}`);
294
449
  await uploadPackageFromStream(sessionManager.getTargetSession(), assetServerPackageDetails, uploadable.getStream());
295
450
  } finally{
296
451
  await sessionManager.destroy().catch((err)=>{
297
- logPackageMessage(packageDescription.Package, `Failed to close IG.Asset.Server session(s): ${err}`);
452
+ reporter.error(`Failed to close IG.Asset.Server session(s)`, err);
298
453
  });
299
454
  }
300
455
  }
@@ -303,7 +458,7 @@ const releaseFolder = async (options)=>{
303
458
  throw err;
304
459
  }
305
460
  if (newVersion.buildNumber >= 100 && !options.pushOnly) {
306
- logPackageMessage(fullPackageName, "Copying zip to releases folder");
461
+ reporter.error("Copying zip to releases folder");
307
462
  const zipFileName = `${packageNameWithVersion}.zip`;
308
463
  const releasesPath = getPackageReleasesDirectory(location);
309
464
  await fs$1.mkdir(releasesPath, {
@@ -312,154 +467,6 @@ const releaseFolder = async (options)=>{
312
467
  await pipeline(uploadable.getStream(), createWriteStream(path.join(releasesPath, zipFileName)));
313
468
  }
314
469
  };
315
- const ensureRequiredVersions = async (workspaceLocation, creatorPackage, sessionManager, prompter)=>{
316
- const libraries = determineWorkspaceIGLibraries(workspaceLocation);
317
- // If there are no libraries, we don't need to check for required versions
318
- if (libraries.length === 0) {
319
- return true;
320
- }
321
- const targetSession = sessionManager.getTargetSession();
322
- const rawUploadedPackages = await getExistingPackages(targetSession);
323
- const uploadedPackages = rawUploadedPackages.map((entry)=>{
324
- let version;
325
- try {
326
- version = parseVersionFromNumericVersion(entry.numericVersion);
327
- } catch (err) {
328
- throw new Error(`Encountered invalid format for version ${entry.numericVersion}`);
329
- }
330
- if (version.buildNumber < 100) {
331
- version.preRelease = {
332
- type: "beta",
333
- version: version.buildNumber
334
- };
335
- } else if (version.buildNumber > 100) {
336
- version.preRelease = {
337
- type: "patch",
338
- version: version.buildNumber - 100
339
- };
340
- }
341
- return {
342
- ...entry,
343
- version
344
- };
345
- });
346
- for (const libraryLocation of libraries){
347
- const libraryManifest = readPublishedPackageNpmManifest(libraryLocation);
348
- const libraryCreatorPackage = readPublishedPackageCreatorManifest(libraryLocation);
349
- if (libraryCreatorPackage === undefined || libraryManifest.main === undefined || libraryCreatorPackage.Package === creatorPackage.Package) {
350
- continue;
351
- }
352
- const libraryVersion = PackageVersion.extractFromLine(libraryManifest.version);
353
- if (libraryVersion.preRelease) {
354
- libraryVersion.buildNumber = libraryVersion.preRelease.version;
355
- libraryVersion.preRelease = undefined;
356
- } else {
357
- libraryVersion.buildNumber = 100;
358
- }
359
- let uploadedPackageInBasics;
360
- let uploadedPackageInTarget;
361
- for (const uploadedPackage of uploadedPackages){
362
- if (uploadedPackage.scope === libraryCreatorPackage.Package) {
363
- if (uploadedPackage.support) {
364
- uploadedPackageInBasics = uploadedPackage;
365
- } else {
366
- uploadedPackageInTarget = uploadedPackage;
367
- }
368
- }
369
- }
370
- const validInBasics = uploadedPackageInBasics !== undefined && !uploadedPackageInBasics.version.isLesserThan(libraryVersion);
371
- const validInTarget = uploadedPackageInTarget !== undefined && !uploadedPackageInTarget.version.isLesserThan(libraryVersion);
372
- if (validInBasics || validInTarget) {
373
- if (targetSession.subDomain !== "Basics" && uploadedPackageInBasics !== undefined && uploadedPackageInTarget !== undefined) {
374
- logPackageMessage(creatorPackage.Package, `Package ${libraryCreatorPackage.Package} is uploaded both for Basics and ${targetSession.subDomain}. The package within ${targetSession.subDomain} will be used.`);
375
- }
376
- continue;
377
- }
378
- const possibleTargets = [];
379
- if (uploadedPackageInBasics) {
380
- const version = uploadedPackageInBasics.version.toVersionString({
381
- buildNumber: true
382
- });
383
- possibleTargets.push({
384
- value: "Basics",
385
- name: `Basics (Current: ${version})`
386
- });
387
- } else {
388
- possibleTargets.push({
389
- value: "Basics",
390
- name: "Basics (Current: None)"
391
- });
392
- }
393
- if (targetSession.subDomain !== "Basics") {
394
- if (uploadedPackageInTarget) {
395
- const version = uploadedPackageInTarget.version.toVersionString({
396
- buildNumber: true
397
- });
398
- possibleTargets.push({
399
- value: targetSession.subDomain,
400
- name: `${targetSession.subDomain} (Current: ${version})`
401
- });
402
- } else {
403
- possibleTargets.push({
404
- value: targetSession.subDomain,
405
- name: `${targetSession.subDomain} (Current: None)`
406
- });
407
- }
408
- }
409
- const libraryVersionString = libraryVersion.toVersionString({
410
- buildNumber: true
411
- });
412
- const uploadTargetScope = await prompter.ask({
413
- message: `Version ${libraryVersionString} of dependency ${libraryCreatorPackage.Package} is required but not available. Please select a subdomain to upload the correct dependency version to`,
414
- options: [
415
- ...possibleTargets,
416
- {
417
- name: "Skip upload",
418
- value: "Skip"
419
- }
420
- ],
421
- default: possibleTargets[0].value
422
- });
423
- if (uploadTargetScope === "Skip") {
424
- continue;
425
- }
426
- const archive = buildArchiveFromPublishedPackage(libraryLocation, libraryManifest, libraryCreatorPackage);
427
- const newVersionString = libraryVersion.toVersionString({
428
- buildNumber: true
429
- });
430
- const session = uploadTargetScope === "Basics" ? await sessionManager.getBasicsSession() : targetSession;
431
- logPackageMessage(creatorPackage.Package, `Uploading package ${libraryCreatorPackage.Package} with version ${newVersionString} to ${session.domain}.${session.subDomain}`);
432
- await uploadPackageFromStream(session, {
433
- name: libraryCreatorPackage.Package,
434
- version: newVersionString
435
- }, archive.generateNodeStream());
436
- }
437
- };
438
- const createSessionManager = async (params)=>{
439
- const targetSession = await startSession(params);
440
- let basicsSession;
441
- return {
442
- getBasicsSession: async ()=>{
443
- if (targetSession.subDomain === "Basics") {
444
- return targetSession;
445
- }
446
- if (basicsSession === undefined) {
447
- basicsSession = await startSession({
448
- ...params,
449
- subDomain: "Basics"
450
- });
451
- }
452
- return basicsSession;
453
- },
454
- getTargetSession: ()=>targetSession,
455
- destroy: async ()=>{
456
- await closeSession(targetSession);
457
- if (basicsSession !== undefined) {
458
- await closeSession(basicsSession);
459
- }
460
- }
461
- };
462
- };
463
470
 
464
471
  export { releaseFolder };
465
- //# sourceMappingURL=index-39c79102.mjs.map
472
+ //# sourceMappingURL=index-CKKQe2tV.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-CKKQe2tV.mjs","sources":["../src/commands/publish/zip.ts","../src/lib/assetServiceSessionManager.ts","../src/lib/dependencySync.ts","../src/commands/publish/index.ts"],"sourcesContent":["import JSZip from \"jszip\";\nimport * as path from \"path\";\nimport * as fs from \"fs\";\n\nimport { isErrorENOENT } from \"../../lib/error\";\nimport {\n\tCreatorPackage,\n\treadPackageCreatorManifest,\n\twritePackageCreatorManifest,\n\treadPackageCreatorIndex,\n\tparseCreatorPackageName,\n\tPackageLocation,\n\tPackageNpmManifest,\n\tINDEX_FILE,\n\tPACKAGE_FILE,\n} from \"../../lib/package\";\nimport {\n\tPublishedPackageLocation,\n\treadPublishedPackageCreatorIndex,\n} from \"../../lib/publishedPackage\";\nimport { Reporter } from \"@intelligentgraphics/ig.gfx.tools.core\";\n\nexport const buildArchiveFromPublishedPackage = (\n\tlocation: PublishedPackageLocation,\n\tmanifest: PackageNpmManifest,\n\tcreatorPackage: CreatorPackage,\n) => {\n\tconst archive = new JSZip();\n\n\tarchive.file(PACKAGE_FILE, JSON.stringify(creatorPackage, null, 2));\n\n\tconst index = readPublishedPackageCreatorIndex(location);\n\n\tif (index !== undefined) {\n\t\tarchive.file(INDEX_FILE, JSON.stringify(index, null, 2));\n\t}\n\n\tarchive.file(\n\t\tmanifest.main,\n\t\tfs.createReadStream(path.join(location.path, manifest.main)),\n\t);\n\n\tif (creatorPackage.Package === \"IG.GFX.Standard\") {\n\t\tconst source = path.join(location.path, \"Images\");\n\n\t\tif (fs.existsSync(source)) {\n\t\t\tconst images = fs.readdirSync(source);\n\n\t\t\tfor (const file of images) {\n\t\t\t\tconst { ext } = path.parse(file);\n\n\t\t\t\tswitch (ext) {\n\t\t\t\t\tcase \".png\":\n\t\t\t\t\tcase \".jpeg\":\n\t\t\t\t\tcase \".jpg\":\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tarchive.file(\n\t\t\t\t\tfile,\n\t\t\t\t\tfs.createReadStream(path.join(source, file)),\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn archive;\n};\n\nconst runtimeScripts: CreatorPackage[\"Type\"][] = [\n\t\"Interactor\",\n\t\"Core\",\n\t\"Mixed\",\n];\n\nconst notRuntimeScripts: CreatorPackage[\"Type\"][] = [\"Context\", \"Evaluator\"];\n\nexport const buildArchiveFromPackage = async (\n\treporter: Reporter,\n\tpackageLocation: PackageLocation,\n\tdata: CreatorPackage,\n\tbinDir: string,\n\tminified = true,\n) => {\n\tconst { domain } = parseCreatorPackageName(data);\n\n\tconst scriptDirectories: string[] = [\n\t\tpackageLocation.path,\n\t\tpackageLocation.scriptsDir,\n\t];\n\n\tif (data.Package === \"IG.GFX.Standard\") {\n\t\treporter.log(`Including Images folder`);\n\t\tscriptDirectories.push(path.join(packageLocation.path, \"Images\"));\n\t}\n\n\tconst manifest = readPackageCreatorManifest(packageLocation);\n\n\tif (manifest !== undefined) {\n\t\tif (manifest.RunTime && notRuntimeScripts.includes(manifest.Type)) {\n\t\t\treporter.log(\n\t\t\t\t\"Setting script RunTime to false because of script type\",\n\t\t\t);\n\t\t\twritePackageCreatorManifest(packageLocation, {\n\t\t\t\t...manifest,\n\t\t\t\tRunTime: false,\n\t\t\t});\n\t\t} else if (\n\t\t\t!manifest.RunTime &&\n\t\t\truntimeScripts.includes(manifest.Type)\n\t\t) {\n\t\t\treporter.log(\n\t\t\t\t\"Setting script RunTime to true because of script type\",\n\t\t\t);\n\t\t\twritePackageCreatorManifest(packageLocation, {\n\t\t\t\t...manifest,\n\t\t\t\tRunTime: true,\n\t\t\t});\n\t\t}\n\t}\n\n\tlet libFile: string | undefined;\n\n\ttry {\n\t\tconst libFilePath = minified\n\t\t\t? path.join(binDir, `${data.Package}.min.js`)\n\t\t\t: path.join(binDir, `${data.Package}.js`);\n\n\t\tlibFile = fs.readFileSync(libFilePath, {\n\t\t\tencoding: \"utf8\",\n\t\t});\n\t} catch (err) {\n\t\tif (!isErrorENOENT(err)) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\n\tconst archive = new JSZip();\n\n\tlet library: string = \"\";\n\n\tif (libFile) {\n\t\tlibrary = libFile;\n\t}\n\n\tif (!library) {\n\t\tconst date = new Date(Date.now());\n\t\tlibrary = `/* This file is part of the ${domain} Data Packages.\n\t\t* Copyright (C) ${date.getFullYear()} intelligentgraphics. All Rights Reserved. */`;\n\t}\n\n\tarchive.file(`${data.Package}.js`, library);\n\tarchive.file(PACKAGE_FILE, JSON.stringify(data, null, 2));\n\n\tconst creatorIndex = readPackageCreatorIndex(packageLocation);\n\n\tif (creatorIndex !== undefined) {\n\t\tarchive.file(INDEX_FILE, JSON.stringify(creatorIndex, null, 2));\n\t}\n\n\tfor (const directory of scriptDirectories) {\n\t\ttry {\n\t\t\tfor (const file of fs.readdirSync(directory)) {\n\t\t\t\tconst { ext } = path.parse(file);\n\n\t\t\t\tswitch (ext) {\n\t\t\t\t\tcase \".png\":\n\t\t\t\t\tcase \".jpeg\":\n\t\t\t\t\tcase \".jpg\":\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tarchive.file(\n\t\t\t\t\tfile,\n\t\t\t\t\tfs.createReadStream(path.join(directory, file)),\n\t\t\t\t);\n\t\t\t}\n\t\t} catch (err) {\n\t\t\treporter.error(`Script directory \"${directory}\" does not exist`);\n\t\t}\n\t}\n\n\treturn archive;\n};\n","import { AssetService } from \"@intelligentgraphics/ig.gfx.tools.core\";\n\nexport interface AssetServiceSessionManager {\n\tgetBasicsSession: () => Promise<AssetService.Session>;\n\tgetTargetSession: () => AssetService.Session;\n\tdestroy: () => Promise<void>;\n}\n\nexport const createAssetServiceSessionManager = async (\n\tparams: AssetService.SessionStartParams,\n): Promise<AssetServiceSessionManager> => {\n\tconst targetSession = await AssetService.startSession(params);\n\tlet basicsSession: AssetService.Session | undefined;\n\n\treturn {\n\t\tgetBasicsSession: async () => {\n\t\t\tif (targetSession.subDomain === \"Basics\") {\n\t\t\t\treturn targetSession;\n\t\t\t}\n\n\t\t\tif (basicsSession === undefined) {\n\t\t\t\tbasicsSession = await AssetService.startSession({\n\t\t\t\t\t...params,\n\t\t\t\t\tsubDomain: \"Basics\",\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn basicsSession;\n\t\t},\n\n\t\tgetTargetSession: () => targetSession,\n\n\t\tdestroy: async () => {\n\t\t\tawait AssetService.closeSession(targetSession);\n\n\t\t\tif (basicsSession !== undefined) {\n\t\t\t\tawait AssetService.closeSession(basicsSession);\n\t\t\t}\n\t\t},\n\t};\n};\n","import {\n\tWorkspaceLocation,\n\tCreatorPackage,\n\tAssetService,\n\tdetermineWorkspaceIGLibraries,\n\treadPublishedPackageNpmManifest,\n\treadPublishedPackageCreatorManifest,\n\tReporter,\n} from \"@intelligentgraphics/ig.gfx.tools.core\";\nimport { buildArchiveFromPublishedPackage } from \"../commands/publish/zip\";\nimport { AssetServiceSessionManager } from \"./assetServiceSessionManager\";\nimport { PackageVersion } from \"./packageVersion\";\nimport { parseVersionFromNumericVersion } from \"./parseVersion\";\nimport { Prompter, PrompterOption } from \"./prompter\";\n\nexport const synchronizeDependencies = async (\n\tworkspaceLocation: WorkspaceLocation,\n\tcreatorPackage: CreatorPackage | undefined,\n\tsessionManager: AssetServiceSessionManager,\n\tprompter: Prompter,\n\treporter: Reporter,\n\tlogUpToDate: boolean = false,\n) => {\n\tinterface UploadedPackage\n\t\textends Omit<AssetService.ExistingPackage, \"version\"> {\n\t\tversion: PackageVersion;\n\t}\n\n\tconst libraries = determineWorkspaceIGLibraries(workspaceLocation);\n\n\t// If there are no libraries, we don't need to check for required versions\n\tif (libraries.length === 0) {\n\t\treturn true;\n\t}\n\n\tconst targetSession = sessionManager.getTargetSession();\n\n\tconst rawUploadedPackages = await AssetService.getExistingPackages(\n\t\ttargetSession,\n\t);\n\n\tconst uploadedPackages = rawUploadedPackages.map(\n\t\t(entry): UploadedPackage => {\n\t\t\tlet version: PackageVersion;\n\n\t\t\ttry {\n\t\t\t\tversion = parseVersionFromNumericVersion(entry.numericVersion);\n\t\t\t} catch (err) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Encountered invalid format for version ${entry.numericVersion}`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (version.buildNumber < 100) {\n\t\t\t\tversion.preRelease = {\n\t\t\t\t\ttype: \"beta\",\n\t\t\t\t\tversion: version.buildNumber,\n\t\t\t\t};\n\t\t\t} else if (version.buildNumber > 100) {\n\t\t\t\tversion.preRelease = {\n\t\t\t\t\ttype: \"patch\",\n\t\t\t\t\tversion: version.buildNumber - 100,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...entry,\n\t\t\t\tversion,\n\t\t\t};\n\t\t},\n\t);\n\n\tfor (const libraryLocation of libraries) {\n\t\tconst libraryManifest =\n\t\t\treadPublishedPackageNpmManifest(libraryLocation);\n\t\tconst libraryCreatorPackage =\n\t\t\treadPublishedPackageCreatorManifest(libraryLocation);\n\n\t\tif (\n\t\t\tlibraryCreatorPackage === undefined ||\n\t\t\tlibraryManifest.main === undefined ||\n\t\t\tlibraryCreatorPackage.Package === creatorPackage?.Package\n\t\t) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst libraryVersion = PackageVersion.extractFromLine(\n\t\t\tlibraryManifest.version,\n\t\t);\n\n\t\tif (libraryVersion.preRelease) {\n\t\t\tlibraryVersion.buildNumber = libraryVersion.preRelease.version;\n\t\t\tlibraryVersion.preRelease = undefined;\n\t\t} else {\n\t\t\tlibraryVersion.buildNumber = 100;\n\t\t}\n\n\t\tlet uploadedPackageInBasics: UploadedPackage | undefined;\n\t\tlet uploadedPackageInTarget: UploadedPackage | undefined;\n\n\t\tfor (const uploadedPackage of uploadedPackages) {\n\t\t\tif (uploadedPackage.scope === libraryCreatorPackage.Package) {\n\t\t\t\tif (uploadedPackage.support) {\n\t\t\t\t\tuploadedPackageInBasics = uploadedPackage;\n\t\t\t\t} else {\n\t\t\t\t\tuploadedPackageInTarget = uploadedPackage;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst validInBasics =\n\t\t\tuploadedPackageInBasics !== undefined &&\n\t\t\t!uploadedPackageInBasics.version.isLesserThan(libraryVersion);\n\t\tconst validInTarget =\n\t\t\tuploadedPackageInTarget !== undefined &&\n\t\t\t!uploadedPackageInTarget.version.isLesserThan(libraryVersion);\n\n\t\tif (validInBasics || validInTarget) {\n\t\t\tif (\n\t\t\t\ttargetSession.subDomain !== \"Basics\" &&\n\t\t\t\tuploadedPackageInBasics !== undefined &&\n\t\t\t\tuploadedPackageInTarget !== undefined\n\t\t\t) {\n\t\t\t\treporter.log(\n\t\t\t\t\t`Package ${libraryCreatorPackage.Package} is uploaded both for Basics and ${targetSession.subDomain}. The package within ${targetSession.subDomain} will be used.`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (logUpToDate) {\n\t\t\t\treporter.log(\n\t\t\t\t\t`Package ${\n\t\t\t\t\t\tlibraryCreatorPackage.Package\n\t\t\t\t\t} is already uploaded with the required version ${libraryVersion.toVersionString(\n\t\t\t\t\t\t{},\n\t\t\t\t\t)}`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst possibleTargets: PrompterOption[] = [];\n\n\t\tif (uploadedPackageInBasics) {\n\t\t\tconst version = uploadedPackageInBasics.version.toVersionString({\n\t\t\t\tbuildNumber: true,\n\t\t\t});\n\n\t\t\tpossibleTargets.push({\n\t\t\t\tvalue: \"Basics\",\n\t\t\t\tname: `Basics (Current: ${version})`,\n\t\t\t});\n\t\t} else {\n\t\t\tpossibleTargets.push({\n\t\t\t\tvalue: \"Basics\",\n\t\t\t\tname: \"Basics (Current: None)\",\n\t\t\t});\n\t\t}\n\n\t\tif (targetSession.subDomain !== \"Basics\") {\n\t\t\tif (uploadedPackageInTarget) {\n\t\t\t\tconst version = uploadedPackageInTarget.version.toVersionString(\n\t\t\t\t\t{\n\t\t\t\t\t\tbuildNumber: true,\n\t\t\t\t\t},\n\t\t\t\t);\n\n\t\t\t\tpossibleTargets.push({\n\t\t\t\t\tvalue: targetSession.subDomain,\n\t\t\t\t\tname: `${targetSession.subDomain} (Current: ${version})`,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tpossibleTargets.push({\n\t\t\t\t\tvalue: targetSession.subDomain,\n\t\t\t\t\tname: `${targetSession.subDomain} (Current: None)`,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tconst libraryVersionString = libraryVersion.toVersionString({\n\t\t\tbuildNumber: true,\n\t\t});\n\n\t\tconst uploadTargetScope = await prompter.ask({\n\t\t\tmessage: `Version ${libraryVersionString} of dependency ${libraryCreatorPackage.Package} is required but not available. Please select a subdomain to upload the correct dependency version to`,\n\t\t\toptions: [\n\t\t\t\t...possibleTargets,\n\t\t\t\t{ name: \"Skip upload\", value: \"Skip\" },\n\t\t\t],\n\t\t\tdefault: possibleTargets[0].value,\n\t\t});\n\n\t\tif (uploadTargetScope === \"Skip\") {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst archive = buildArchiveFromPublishedPackage(\n\t\t\tlibraryLocation,\n\t\t\tlibraryManifest,\n\t\t\tlibraryCreatorPackage,\n\t\t);\n\n\t\tconst newVersionString = libraryVersion.toVersionString({\n\t\t\tbuildNumber: true,\n\t\t});\n\n\t\tconst session =\n\t\t\tuploadTargetScope === \"Basics\"\n\t\t\t\t? await sessionManager.getBasicsSession()\n\t\t\t\t: targetSession;\n\n\t\treporter.log(\n\t\t\t`Uploading package ${libraryCreatorPackage.Package} with version ${newVersionString} to ${session.domain}.${session.subDomain}`,\n\t\t);\n\n\t\tawait AssetService.uploadPackageFromStream(\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\tarchive.generateNodeStream(),\n\t\t);\n\t}\n};\n","import * as path from \"path\";\nimport * as fs from \"fs/promises\";\nimport { createReadStream, createWriteStream } from \"fs\";\nimport { pipeline } from \"stream/promises\";\nimport { exec } from \"child_process\";\nimport { promisify } from \"util\";\n\nimport {\n\tAssetService,\n\tconsoleReporter,\n\tcreatePackageScopedReporter,\n\tisErrorEACCES,\n\tisErrorEPERM,\n\tReporter,\n\twritePackageCreatorManifest,\n} from \"@intelligentgraphics/ig.gfx.tools.core\";\n\nimport {\n\tgetPackageReleasesDirectory,\n\tPackageLocation,\n\tparseCreatorPackageName,\n\treadPackageAnimationList,\n\treadPackageCreatorManifest,\n} from \"../../lib/package\";\nimport {\n\tgetWorkspaceOutputPath,\n\treadWorkspaceNpmManifest,\n} from \"../../lib/workspace\";\nimport { getVersionInformationFromGit } from \"../../lib/git\";\nimport { getWorkspaceBannerText } from \"../../lib/banner\";\nimport { parseVersionFromString } from \"../../lib/parseVersion\";\nimport { getVersionFileHandler } from \"../../lib/versionFile\";\nimport { isErrorENOENT } from \"../../lib/error\";\nimport { Prompter } from \"../../lib/prompter\";\nimport { PackageVersion } from \"../../lib/packageVersion\";\nimport { BuildFoldersOptions, buildFolders } from \"../build\";\nimport { buildArchiveFromPackage } from \"./zip\";\nimport { createAssetServiceSessionManager } from \"../../lib/assetServiceSessionManager\";\nimport { synchronizeDependencies } from \"../../lib/dependencySync\";\n\nexport interface ReleaseFolderOptions\n\textends Omit<\n\t\tBuildFoldersOptions,\n\t\t\"skipPackagesWithoutTsFiles\" | \"banner\" | \"packages\"\n\t> {\n\tdirectory: PackageLocation;\n\tnoUpload: boolean;\n\tnewVersion: string;\n\tdomain?: string;\n\tsubdomain?: string;\n\taddress?: string;\n\tservice: string;\n\tauthentication?: AssetService.Authentication;\n\tpushOnly: boolean;\n\tbanner?: boolean;\n\tprompter: Prompter;\n\tskipDependencies?: boolean;\n\treporter?: Reporter;\n}\n\nconst execAsync = promisify(exec);\n\nexport const releaseFolder = async (options: ReleaseFolderOptions) => {\n\tconst workspace = options.workspace;\n\tconst location = options.directory;\n\n\tconst { write: writeVersionFile, reset: resetVersionFile } =\n\t\tgetVersionFileHandler(location);\n\n\tconst packageDescription = readPackageCreatorManifest(location);\n\tconst fullPackageName = packageDescription.Package;\n\n\tconst reporter =\n\t\toptions.reporter ??\n\t\tcreatePackageScopedReporter(\n\t\t\tconsoleReporter,\n\t\t\tpackageDescription.Package,\n\t\t);\n\n\tconst { domain, subdomain } = parseCreatorPackageName(packageDescription);\n\n\tconst publishDomain = options.domain ?? domain;\n\tconst publishSubdomain = options.subdomain ?? subdomain;\n\n\tconst sharedPackageJson = readWorkspaceNpmManifest(workspace);\n\n\tlet newVersion: PackageVersion;\n\ttry {\n\t\tnewVersion = parseVersionFromString(options.newVersion);\n\t} catch (err) {\n\t\tthrow new Error(`Please enter a version in this format 1.0.0.100`);\n\t}\n\n\tpackageDescription.Version = newVersion.toVersionString({\n\t\tbuildNumber: true,\n\t});\n\twritePackageCreatorManifest(location, packageDescription);\n\n\tif (newVersion.buildNumber < 100) {\n\t\tnewVersion.preRelease = {\n\t\t\ttype: \"beta\",\n\t\t\tversion: newVersion.buildNumber,\n\t\t};\n\t} else if (newVersion.buildNumber > 100) {\n\t\tnewVersion.preRelease = {\n\t\t\ttype: \"patch\",\n\t\t\tversion: newVersion.buildNumber - 100,\n\t\t};\n\t}\n\n\tif (sharedPackageJson !== undefined) {\n\t\treporter.log(\n\t\t\t`Running npm install to make sure all dependencies are up to date`,\n\t\t);\n\t\tawait execAsync(`npm install`, {\n\t\t\tencoding: \"utf-8\",\n\t\t\tcwd: workspace.path,\n\t\t});\n\t}\n\n\tconst binDir = options.outDir ?? getWorkspaceOutputPath(workspace);\n\tawait fs.mkdir(binDir, { recursive: true });\n\n\tlet assetServerPackageDetails: AssetService.UploadPackageDetails;\n\n\tlet packageNameWithVersion: string;\n\n\t{\n\t\tconst versionWithoutPrelease = newVersion.clone();\n\t\tversionWithoutPrelease.preRelease = undefined;\n\t\tconst newVersionString = versionWithoutPrelease.toVersionString({\n\t\t\tbuildNumber: true,\n\t\t});\n\t\tpackageNameWithVersion = `${packageDescription.Package}_${newVersionString}`;\n\n\t\tassetServerPackageDetails = {\n\t\t\tname: packageDescription.Package,\n\t\t\tversion: newVersionString,\n\t\t};\n\t}\n\n\tlet zipFilePath = path.join(binDir, packageNameWithVersion + \".zip\");\n\tinterface Uploadable {\n\t\tgetStream: () => NodeJS.ReadableStream;\n\t}\n\n\tlet uploadable: Uploadable = {\n\t\tgetStream: () => createReadStream(zipFilePath),\n\t};\n\n\ttry {\n\t\tif (options.pushOnly) {\n\t\t\tconst zipFileExists = await fs.stat(zipFilePath).catch((err) => {\n\t\t\t\tif (isErrorENOENT(err)) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\treturn Promise.reject(err);\n\t\t\t});\n\n\t\t\tif (zipFileExists) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Expected a zip file to exist at path ${zipFilePath} since pushOnly is specified`,\n\t\t\t\t);\n\t\t\t}\n\t\t} else {\n\t\t\tconst gitVersionInformation = await getVersionInformationFromGit(\n\t\t\t\tworkspace,\n\t\t\t\tlocation,\n\t\t\t);\n\n\t\t\twriteVersionFile(fullPackageName, newVersion);\n\n\t\t\tconst bannerText =\n\t\t\t\tsharedPackageJson !== undefined\n\t\t\t\t\t? getWorkspaceBannerText(sharedPackageJson)\n\t\t\t\t\t: undefined;\n\n\t\t\tawait buildFolders({\n\t\t\t\t...options,\n\t\t\t\tpackages: [location],\n\t\t\t\tbanner: options.banner\n\t\t\t\t\t? {\n\t\t\t\t\t\t\ttext: bannerText,\n\t\t\t\t\t\t\tcommit: gitVersionInformation.commit,\n\t\t\t\t\t\t\tcommitDirty: gitVersionInformation.dirty,\n\t\t\t\t\t\t\tversion: newVersion.toVersionString({\n\t\t\t\t\t\t\t\tbuildNumber: true,\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\tdate: new Date(Date.now()),\n\t\t\t\t\t\t\t// gitVersionInformation.commitDate\n\t\t\t\t\t\t\t// \t? new Date(gitVersionInformation.commitDate)\n\t\t\t\t\t\t\t// \t: new Date(Date.now()),\n\t\t\t\t\t }\n\t\t\t\t\t: undefined,\n\t\t\t\tpreparedReporter: reporter,\n\t\t\t});\n\n\t\t\tnewVersion.preRelease = undefined;\n\n\t\t\ttry {\n\t\t\t\tawait fs.rm(zipFilePath);\n\t\t\t} catch (err) {\n\t\t\t\tif (!isErrorENOENT(err)) {\n\t\t\t\t\tthrow err;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (readPackageAnimationList(location).length > 0) {\n\t\t\t\tconst workspaceManifest = readWorkspaceNpmManifest(workspace);\n\n\t\t\t\tif (\n\t\t\t\t\t!workspaceManifest.dependencies?.[\n\t\t\t\t\t\t\"@intelligentgraphics/3d.ig.gfx.standard\"\n\t\t\t\t\t]\n\t\t\t\t) {\n\t\t\t\t\tconst install = await options.prompter.confirm(\n\t\t\t\t\t\t`The IG.GFX.Standard package should be added as a dependency to provide the 'AnimationInteractor' used to display animations. Do you wish to add it now?`,\n\t\t\t\t\t);\n\n\t\t\t\t\tif (install) {\n\t\t\t\t\t\tawait execAsync(\n\t\t\t\t\t\t\t`npm install @intelligentgraphics/3d.ig.gfx.standard`,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tencoding: \"utf-8\",\n\t\t\t\t\t\t\t\tcwd: workspace.path,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tawait execAsync(`npm run postinstall`, {\n\t\t\t\t\t\t\tcwd: workspace.path,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treporter.log(`Creating zip file`);\n\n\t\t\tconst archive = await buildArchiveFromPackage(\n\t\t\t\treporter,\n\t\t\t\tlocation,\n\t\t\t\tpackageDescription,\n\t\t\t\tbinDir,\n\t\t\t\toptions.minimize,\n\t\t\t);\n\n\t\t\ttry {\n\t\t\t\tconst zipOutputStream = createWriteStream(zipFilePath);\n\t\t\t\tawait pipeline(archive.generateNodeStream(), zipOutputStream);\n\t\t\t} catch (err) {\n\t\t\t\tif (isErrorEACCES(err) || isErrorEPERM(err)) {\n\t\t\t\t\treporter.log(\n\t\t\t\t\t\t`Could not create zip file in the bin directory because of a permissions error. Only using it in-memory`,\n\t\t\t\t\t);\n\t\t\t\t\tuploadable = {\n\t\t\t\t\t\tgetStream: () => archive.generateNodeStream(),\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\tthrow err;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (!options.noUpload) {\n\t\t\tif (!options.authentication) {\n\t\t\t\tthrow new Error(`Expected authentication to be available`);\n\t\t\t}\n\n\t\t\treporter.log(`Opening connection to IG.Asset.Server`);\n\n\t\t\tconst sessionManager = await createAssetServiceSessionManager({\n\t\t\t\turl: options.service,\n\t\t\t\taddress: options.address,\n\t\t\t\tdomain: publishDomain,\n\t\t\t\tsubDomain: publishSubdomain,\n\t\t\t\tauthentication: options.authentication,\n\t\t\t});\n\n\t\t\ttry {\n\t\t\t\tif (!options.skipDependencies) {\n\t\t\t\t\tawait synchronizeDependencies(\n\t\t\t\t\t\tworkspace,\n\t\t\t\t\t\tpackageDescription,\n\t\t\t\t\t\tsessionManager,\n\t\t\t\t\t\toptions.prompter,\n\t\t\t\t\t\treporter,\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treporter.log(\n\t\t\t\t\t`Uploading package to ${publishDomain}.${publishSubdomain}`,\n\t\t\t\t);\n\n\t\t\t\tawait AssetService.uploadPackageFromStream(\n\t\t\t\t\tsessionManager.getTargetSession(),\n\t\t\t\t\tassetServerPackageDetails,\n\t\t\t\t\tuploadable.getStream(),\n\t\t\t\t);\n\t\t\t} finally {\n\t\t\t\tawait sessionManager.destroy().catch((err) => {\n\t\t\t\t\treporter.error(\n\t\t\t\t\t\t`Failed to close IG.Asset.Server session(s)`,\n\t\t\t\t\t\terr,\n\t\t\t\t\t);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t} catch (err) {\n\t\tresetVersionFile();\n\t\tthrow err;\n\t}\n\n\tif (newVersion.buildNumber >= 100 && !options.pushOnly) {\n\t\treporter.error(\"Copying zip to releases folder\");\n\n\t\tconst zipFileName = `${packageNameWithVersion}.zip`;\n\t\tconst releasesPath = getPackageReleasesDirectory(location);\n\n\t\tawait fs.mkdir(releasesPath, { recursive: true });\n\t\tawait pipeline(\n\t\t\tuploadable.getStream(),\n\t\t\tcreateWriteStream(path.join(releasesPath, zipFileName)),\n\t\t);\n\t}\n};\n"],"names":["buildArchiveFromPublishedPackage","location","manifest","creatorPackage","archive","JSZip","file","PACKAGE_FILE","JSON","stringify","index","readPublishedPackageCreatorIndex","undefined","INDEX_FILE","main","fs","createReadStream","path","join","Package","source","existsSync","images","readdirSync","ext","parse","runtimeScripts","notRuntimeScripts","buildArchiveFromPackage","reporter","packageLocation","data","binDir","minified","domain","parseCreatorPackageName","scriptDirectories","scriptsDir","log","push","readPackageCreatorManifest","RunTime","includes","Type","writePackageCreatorManifest","libFile","libFilePath","readFileSync","encoding","err","isErrorENOENT","library","date","Date","now","getFullYear","creatorIndex","readPackageCreatorIndex","directory","error","createAssetServiceSessionManager","params","targetSession","AssetService","basicsSession","getBasicsSession","subDomain","getTargetSession","destroy","synchronizeDependencies","workspaceLocation","sessionManager","prompter","logUpToDate","libraries","determineWorkspaceIGLibraries","length","rawUploadedPackages","uploadedPackages","map","entry","version","parseVersionFromNumericVersion","numericVersion","Error","buildNumber","preRelease","type","libraryLocation","libraryManifest","readPublishedPackageNpmManifest","libraryCreatorPackage","readPublishedPackageCreatorManifest","libraryVersion","PackageVersion","extractFromLine","uploadedPackageInBasics","uploadedPackageInTarget","uploadedPackage","scope","support","validInBasics","isLesserThan","validInTarget","toVersionString","possibleTargets","value","name","libraryVersionString","uploadTargetScope","ask","message","options","default","newVersionString","session","generateNodeStream","execAsync","promisify","exec","releaseFolder","workspace","write","writeVersionFile","reset","resetVersionFile","getVersionFileHandler","packageDescription","fullPackageName","createPackageScopedReporter","consoleReporter","subdomain","publishDomain","publishSubdomain","sharedPackageJson","readWorkspaceNpmManifest","newVersion","parseVersionFromString","Version","cwd","outDir","getWorkspaceOutputPath","mkdir","recursive","assetServerPackageDetails","packageNameWithVersion","versionWithoutPrelease","clone","zipFilePath","uploadable","getStream","pushOnly","zipFileExists","stat","catch","Promise","reject","gitVersionInformation","getVersionInformationFromGit","bannerText","getWorkspaceBannerText","buildFolders","packages","banner","text","commit","commitDirty","dirty","preparedReporter","rm","readPackageAnimationList","workspaceManifest","dependencies","install","confirm","minimize","zipOutputStream","createWriteStream","pipeline","isErrorEACCES","isErrorEPERM","noUpload","authentication","url","service","address","skipDependencies","zipFileName","releasesPath","getPackageReleasesDirectory"],"mappings":"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"}