lucid-package 0.0.127 → 0.0.129

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 (42) hide show
  1. package/package.json +3 -3
  2. package/src/angularframeworkutils.d.ts +2 -1
  3. package/src/angularframeworkutils.js +9 -7
  4. package/src/cors.js +1 -2
  5. package/src/dataconnector.d.ts +2 -1
  6. package/src/dataconnector.js +4 -5
  7. package/src/editorextension.d.ts +6 -5
  8. package/src/editorextension.js +20 -20
  9. package/src/filesystemutil.d.ts +16 -3
  10. package/src/filesystemutil.js +43 -12
  11. package/src/index.js +41 -12
  12. package/src/installationutil.d.ts +16 -3
  13. package/src/installationutil.js +37 -12
  14. package/src/interactibilityutil.js +4 -5
  15. package/src/package.d.ts +5 -3
  16. package/src/package.js +36 -18
  17. package/src/packagemanifest.js +2 -2
  18. package/src/reactframeworkutils.d.ts +2 -1
  19. package/src/reactframeworkutils.js +9 -7
  20. package/src/shapelibrary.js +9 -10
  21. package/src/shellutil.d.ts +1 -2
  22. package/src/shellutil.js +1 -2
  23. package/src/ziputil.d.ts +0 -1
  24. package/src/ziputil.js +1 -2
  25. package/templates/dataconnector/package-lock.json +103 -15
  26. package/templates/dataconnector/pnpm-lock.yaml +1163 -0
  27. package/templates/dataconnector/pnpm-workspace.yaml +1 -0
  28. package/templates/dataconnector/tsconfig.json +1 -0
  29. package/templates/editorextension/angular/skeleton/pnpm-lock.yaml +847 -0
  30. package/templates/editorextension/angular/skeleton/pnpm-workspace.yaml +1 -0
  31. package/templates/editorextension/angular/skeleton/tsconfig.json +1 -0
  32. package/templates/editorextension/angular/skeleton/webpack.config.js +4 -4
  33. package/templates/editorextension/react/skeleton/pnpm-lock.yaml +847 -0
  34. package/templates/editorextension/react/skeleton/pnpm-workspace.yaml +1 -0
  35. package/templates/editorextension/react/skeleton/tsconfig.json +1 -0
  36. package/templates/editorextension/react/skeleton/webpack.config.js +4 -4
  37. package/templates/editorextension/vanilla/pnpm-lock.yaml +847 -0
  38. package/templates/editorextension/vanilla/pnpm-workspace.yaml +1 -0
  39. package/templates/editorextension/vanilla/tsconfig.json +1 -0
  40. package/templates/package/package.json +9 -9
  41. package/templates/package/pnpm-lock.yaml +9 -0
  42. package/templates/package/pnpm-workspace.yaml +1 -0
package/src/package.d.ts CHANGED
@@ -1,11 +1,13 @@
1
+ import { PackageManagerOptions } from './installationutil';
1
2
  import { PackageManifest } from './packagemanifest';
2
- export declare function createEmptyPackage(root: string): Promise<void>;
3
+ export declare function createEmptyPackage(root: string, packageManagerOptions: PackageManagerOptions): Promise<void>;
3
4
  export declare function currentlyInPackage(): boolean;
4
5
  export declare function readJson(path: string): Promise<any>;
5
6
  export declare function modifyManifest(callback: (manifest: PackageManifest) => void | Promise<void>, manifestOverrideEnv?: string): Promise<void>;
6
- export declare function updateAllExtensionSDK(): Promise<void>;
7
+ export declare function updateAllExtensionSDK(packageManagerOptions: PackageManagerOptions): Promise<void>;
7
8
  /**
8
9
  *
10
+ * @param packageManagerOptions Options for which package manager to use (npm or pnpm)
9
11
  * @param manifestOverrideEnv The environment definine what manifest to read from. `manifest.env.json`
10
12
  */
11
- export declare function writePackage(quiet?: boolean, manifestOverrideEnv?: string, skipSdkDependency?: boolean): Promise<void>;
13
+ export declare function writePackage(packageManagerOptions: PackageManagerOptions, quiet?: boolean, manifestOverrideEnv?: string, skipSdkDependency?: boolean): Promise<void>;
package/src/package.js CHANGED
@@ -1,6 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.writePackage = exports.updateAllExtensionSDK = exports.modifyManifest = exports.readJson = exports.currentlyInPackage = exports.createEmptyPackage = void 0;
3
+ exports.createEmptyPackage = createEmptyPackage;
4
+ exports.currentlyInPackage = currentlyInPackage;
5
+ exports.readJson = readJson;
6
+ exports.modifyManifest = modifyManifest;
7
+ exports.updateAllExtensionSDK = updateAllExtensionSDK;
8
+ exports.writePackage = writePackage;
4
9
  const fsOld = require("fs");
5
10
  const fs = require("fs/promises");
6
11
  const JSZip = require("jszip");
@@ -8,26 +13,31 @@ const lucid_extension_sdk_1 = require("lucid-extension-sdk");
8
13
  const path = require("path");
9
14
  const editorextension_1 = require("./editorextension");
10
15
  const filesystemutil_1 = require("./filesystemutil");
16
+ const installationutil_1 = require("./installationutil");
11
17
  const packagemanifest_1 = require("./packagemanifest");
12
18
  const shapelibrary_1 = require("./shapelibrary");
13
19
  const shellutil_1 = require("./shellutil");
14
20
  const theme_1 = require("./theme");
15
21
  const ziputil_1 = require("./ziputil");
16
- async function createEmptyPackage(root) {
22
+ async function createEmptyPackage(root, packageManagerOptions) {
17
23
  console.log((0, theme_1.success)('Creating Lucid Suite package in ' + root));
18
24
  const source = path.join(__dirname, '..', 'templates', 'package');
19
- (0, filesystemutil_1.copyFolderRecursiveSync)(source, root);
25
+ (0, filesystemutil_1.copyFolderRecursiveSync)(source, root, (0, filesystemutil_1.getPackageManagerExcludePaths)(source, packageManagerOptions.mode));
26
+ // For npm mode, modify package.json to use npm exec instead of pnpm dlx
27
+ if (packageManagerOptions.mode === installationutil_1.PackageManagerMode.Npm) {
28
+ const packageJsonPath = path.join(root, 'package.json');
29
+ let content = fsOld.readFileSync(packageJsonPath, 'utf8');
30
+ content = content.replace(/pnpm dlx/g, 'npm exec --');
31
+ fsOld.writeFileSync(packageJsonPath, content);
32
+ }
20
33
  }
21
- exports.createEmptyPackage = createEmptyPackage;
22
34
  function currentlyInPackage() {
23
35
  return ((fsOld.existsSync('editorextensions') || fsOld.existsSync('shapelibraries')) &&
24
36
  fsOld.existsSync('manifest.json'));
25
37
  }
26
- exports.currentlyInPackage = currentlyInPackage;
27
38
  async function readJson(path) {
28
39
  return JSON.parse(await fs.readFile(path, 'utf8'));
29
40
  }
30
- exports.readJson = readJson;
31
41
  const allScopes = new Set([
32
42
  'DOWNLOAD',
33
43
  'NETWORK',
@@ -45,22 +55,22 @@ async function modifyManifest(callback, manifestOverrideEnv) {
45
55
  await callback(manifest);
46
56
  await fs.writeFile('manifest.json', JSON.stringify(manifest, undefined, 2));
47
57
  }
48
- exports.modifyManifest = modifyManifest;
49
- async function updateAllExtensionSDK() {
58
+ async function updateAllExtensionSDK(packageManagerOptions) {
50
59
  const manifest = await (0, packagemanifest_1.readManifest)();
51
60
  for (const extension of manifest['extensions'] || []) {
52
- const parts = extension['codePath'].split(path.sep);
61
+ const codePath = (0, filesystemutil_1.getNormalizedZipPath)(extension['codePath']);
62
+ const parts = codePath.split(path.posix.sep);
53
63
  if (parts[0] === 'editorextensions') {
54
- await (0, editorextension_1.updateExtensionSDK)(parts[1]);
64
+ await (0, editorextension_1.updateExtensionSDK)(parts[1], packageManagerOptions);
55
65
  }
56
66
  }
57
67
  }
58
- exports.updateAllExtensionSDK = updateAllExtensionSDK;
59
68
  /**
60
69
  *
70
+ * @param packageManagerOptions Options for which package manager to use (npm or pnpm)
61
71
  * @param manifestOverrideEnv The environment definine what manifest to read from. `manifest.env.json`
62
72
  */
63
- async function writePackage(quiet = false, manifestOverrideEnv, skipSdkDependency = false) {
73
+ async function writePackage(packageManagerOptions, quiet = false, manifestOverrideEnv, skipSdkDependency = false) {
64
74
  const zip = new JSZip();
65
75
  const quietableConsoleLog = (...data) => {
66
76
  if (!quiet) {
@@ -86,7 +96,9 @@ async function writePackage(quiet = false, manifestOverrideEnv, skipSdkDependenc
86
96
  .join(', ')}`);
87
97
  process.exit(1);
88
98
  }
89
- const parts = extension['codePath'].split(path.sep);
99
+ const codePath = (0, filesystemutil_1.getNormalizedZipPath)(extension['codePath']);
100
+ extension['codePath'] = codePath;
101
+ const parts = codePath.split(path.posix.sep);
90
102
  if (parts[0] === 'editorextensions') {
91
103
  //Can't just call the method, as the WebpackCLI class does process.exit(2) :facepalm:
92
104
  quietableConsoleLog((0, theme_1.success)(`Compiling editor extension ${parts[1]}`));
@@ -95,7 +107,12 @@ async function writePackage(quiet = false, manifestOverrideEnv, skipSdkDependenc
95
107
  process.argv[0] +
96
108
  '" "' +
97
109
  process.argv[1] +
98
- '" build-editor-extension ' +
110
+ '" ' +
111
+ // --mode and --package-manager-path are global args, so they need to go before
112
+ // build-editor-extension (but after the script path)
113
+ `--mode ${packageManagerOptions.mode} ` +
114
+ `--package-manager-path "${packageManagerOptions.packageManagerPath}" ` +
115
+ 'build-editor-extension ' +
99
116
  (quiet ? '--quiet ' : '') +
100
117
  (skipSdkDependency ? '--skip-sdk ' : '') +
101
118
  '"' +
@@ -104,16 +121,18 @@ async function writePackage(quiet = false, manifestOverrideEnv, skipSdkDependenc
104
121
  quietableConsoleLog(cmd);
105
122
  quietableConsoleLog((0, shellutil_1.execSyncLoggingOutputOnError)(cmd, (quiet = quiet)).toString());
106
123
  }
107
- (0, ziputil_1.jsZipFileDeterministic)(zip, extension['codePath'], await fs.readFile(extension['codePath']));
124
+ (0, ziputil_1.jsZipFileDeterministic)(zip, codePath, await fs.readFile(codePath));
108
125
  }
109
126
  //Do the same for each shape library
110
127
  for (const library of manifest['shapeLibraries'] || []) {
111
- const parts = library['lcszPath'].split(path.sep);
128
+ const lcszPath = (0, filesystemutil_1.getNormalizedZipPath)(library['lcszPath']);
129
+ library['lcszPath'] = lcszPath;
130
+ const parts = lcszPath.split(path.posix.sep);
112
131
  if (parts[0] === 'shapelibraries') {
113
132
  quietableConsoleLog((0, theme_1.success)(`Building shape library ${parts[1]}`));
114
133
  await (0, shapelibrary_1.buildShapeLibrary)(parts[1].replace('.lcsz', ''), quiet);
115
134
  }
116
- (0, ziputil_1.jsZipFileDeterministic)(zip, library['lcszPath'], await fs.readFile(library['lcszPath']));
135
+ (0, ziputil_1.jsZipFileDeterministic)(zip, lcszPath, await fs.readFile(lcszPath));
117
136
  }
118
137
  //Add any static resources
119
138
  const checkDirForResources = async (directory, zipDirectory) => {
@@ -157,4 +176,3 @@ async function writePackage(quiet = false, manifestOverrideEnv, skipSdkDependenc
157
176
  await fs.writeFile(fileName, zipBytes);
158
177
  }, manifestOverrideEnv);
159
178
  }
160
- exports.writePackage = writePackage;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.readManifest = exports.SettingType = void 0;
3
+ exports.SettingType = void 0;
4
+ exports.readManifest = readManifest;
4
5
  const fs = require("fs");
5
6
  const fsPromises = require("fs/promises");
6
7
  const lucid_extension_sdk_1 = require("lucid-extension-sdk");
@@ -258,4 +259,3 @@ async function readManifest(manifestOverrideEnv, basePath = '.') {
258
259
  validateManifestOrThrow(raw);
259
260
  return raw;
260
261
  }
261
- exports.readManifest = readManifest;
@@ -1 +1,2 @@
1
- export declare function createReactEditorExtension(name: string, flavor: string, isInternal: boolean, skipSDKDependency: boolean): Promise<void>;
1
+ import { PackageManagerOptions } from './installationutil';
2
+ export declare function createReactEditorExtension(name: string, flavor: string, isInternal: boolean, packageManagerOptions: PackageManagerOptions, skipSDKDependency: boolean): Promise<void>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createReactEditorExtension = void 0;
3
+ exports.createReactEditorExtension = createReactEditorExtension;
4
4
  const fs = require("fs/promises");
5
5
  const path = require("path");
6
6
  const editorextension_1 = require("./editorextension");
@@ -8,8 +8,8 @@ const installationutil_1 = require("./installationutil");
8
8
  const package_1 = require("./package");
9
9
  const theme_1 = require("./theme");
10
10
  const REACT_PROJECT_NAME = 'react-app';
11
- async function createReactEditorExtension(name, flavor, isInternal, skipSDKDependency) {
12
- await (0, editorextension_1.createEditorExtension)(name, isInternal, skipSDKDependency, path.join('react', 'skeleton'), [
11
+ async function createReactEditorExtension(name, flavor, isInternal, packageManagerOptions, skipSDKDependency) {
12
+ await (0, editorextension_1.createEditorExtension)(name, isInternal, packageManagerOptions, skipSDKDependency, path.join('react', 'skeleton'), [
13
13
  'webpack-shell-plugin-next',
14
14
  ]);
15
15
  let typescript = false;
@@ -26,7 +26,7 @@ async function createReactEditorExtension(name, flavor, isInternal, skipSDKDepen
26
26
  const reactEditorExtensionTargetFolder = path.join(process.cwd(), REACT_PROJECT_NAME);
27
27
  const publicTargetFolder = path.join(process.cwd(), '..', '..', 'public');
28
28
  console.log((0, theme_1.success)('Creating React project in ' + reactEditorExtensionTargetFolder));
29
- (0, installationutil_1.installReactProject)(REACT_PROJECT_NAME, typescript);
29
+ (0, installationutil_1.installReactProject)(REACT_PROJECT_NAME, typescript, packageManagerOptions);
30
30
  await fs.mkdir(path.join(publicTargetFolder, name));
31
31
  await copyFilesTo(path.join(reactEditorExtensionTargetFolder, 'public'), path.join(publicTargetFolder, name), [
32
32
  '.png',
@@ -38,7 +38,10 @@ async function createReactEditorExtension(name, flavor, isInternal, skipSDKDepen
38
38
  '.svg',
39
39
  '.ico',
40
40
  ]);
41
- const webpackConfig = (await fs.readFile('webpack.config.js', 'utf8')).replace('<<dynamicname>>', REACT_PROJECT_NAME);
41
+ const reactBuildCommand = `${packageManagerOptions.packageManagerPath} exec -- react-scripts build`;
42
+ const webpackConfig = (await fs.readFile('webpack.config.js', 'utf8'))
43
+ .replace('<<dynamicname>>', REACT_PROJECT_NAME)
44
+ .replace('<<reactbuildcommand>>', reactBuildCommand);
42
45
  const extensionTemplateCode = (await fs.readFile(path.join('src', 'extension.ts'), 'utf8')).replace('<<dynamicname>>', REACT_PROJECT_NAME);
43
46
  await fs.writeFile(path.join(process.cwd(), 'webpack.config.js'), webpackConfig);
44
47
  await fs.writeFile(path.join('src', 'extension.ts'), extensionTemplateCode);
@@ -56,9 +59,8 @@ async function createReactEditorExtension(name, flavor, isInternal, skipSDKDepen
56
59
  const apptsx = (await fs.readFile(path.join('src', appName), 'utf8')).replace('{logo}', '"logo.svg"');
57
60
  await fs.writeFile(path.join('src', appName), apptsx);
58
61
  console.log('Installing React dependencies');
59
- (0, installationutil_1.installDependenciesIfNeeded)(isInternal, skipSDKDependency);
62
+ (0, installationutil_1.installDependenciesIfNeeded)(isInternal, packageManagerOptions, skipSDKDependency);
60
63
  }
61
- exports.createReactEditorExtension = createReactEditorExtension;
62
64
  async function copyFilesTo(sourceFolder, destFolder, endingWith) {
63
65
  (await fs.readdir(sourceFolder))
64
66
  .filter((filename) => endingWith.some((ext) => filename.endsWith(ext)))
@@ -1,6 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.debugShapeLibraries = exports.buildShapeLibrary = exports.getShapeListJson = exports.createImageShapeLibrary = exports.createEmptyShapeLibrary = void 0;
3
+ exports.createEmptyShapeLibrary = createEmptyShapeLibrary;
4
+ exports.createImageShapeLibrary = createImageShapeLibrary;
5
+ exports.getShapeListJson = getShapeListJson;
6
+ exports.buildShapeLibrary = buildShapeLibrary;
7
+ exports.debugShapeLibraries = debugShapeLibraries;
4
8
  const express = require("express");
5
9
  const fsSync = require("fs");
6
10
  const fs = require("fs/promises");
@@ -28,11 +32,10 @@ async function createEmptyShapeLibrary(name) {
28
32
  manifest['shapeLibraries'].push({
29
33
  'name': name,
30
34
  'product': 'chart',
31
- 'lcszPath': path.join('shapelibraries', `${name}.lcsz`),
35
+ 'lcszPath': path.posix.join('shapelibraries', `${name}.lcsz`),
32
36
  });
33
37
  });
34
38
  }
35
- exports.createEmptyShapeLibrary = createEmptyShapeLibrary;
36
39
  async function createImageShapeLibrary(name, imagePath, config) {
37
40
  console.log((0, theme_1.success)('Creating image shape library in ' + path.join('shapelibraries', name)));
38
41
  if (!fsSync.lstatSync(imagePath).isDirectory()) {
@@ -119,12 +122,11 @@ async function createImageShapeLibrary(name, imagePath, config) {
119
122
  manifest['shapeLibraries'].push({
120
123
  'name': name,
121
124
  'product': 'chart',
122
- 'lcszPath': path.join('shapelibraries', `${name}.lcsz`),
125
+ 'lcszPath': path.posix.join('shapelibraries', `${name}.lcsz`),
123
126
  });
124
127
  }
125
128
  });
126
129
  }
127
- exports.createImageShapeLibrary = createImageShapeLibrary;
128
130
  const defaultNameMap = new Map([
129
131
  ['rounding', 'Rounding'],
130
132
  ['fillColor', 'FillColor'],
@@ -172,7 +174,7 @@ async function getShapeListJson(nameInPackageManifest, packagePath, port = 9901)
172
174
  'Stencil': {
173
175
  'lcszVersion': '1',
174
176
  'name': shapeName,
175
- 'i18n': {},
177
+ 'i18n': {}, //TODO?
176
178
  'locked': shapeData['locked'],
177
179
  'sourcePackage': {
178
180
  'packageId': packageManifest['id'] ?? '__local__',
@@ -219,7 +221,7 @@ async function getShapeListJson(nameInPackageManifest, packagePath, port = 9901)
219
221
  }
220
222
  if (shapeData['locked']?.includes('aspectRatio') && !properties['AspectRatio']) {
221
223
  properties['AspectRatio'] =
222
- shapeManifest['defaults']['width'] / shapeManifest['defaults']['height'] ?? 1;
224
+ shapeManifest['defaults']['width'] / shapeManifest['defaults']['height'];
223
225
  }
224
226
  return {
225
227
  'class': 'CustomBlock',
@@ -232,7 +234,6 @@ async function getShapeListJson(nameInPackageManifest, packagePath, port = 9901)
232
234
  };
233
235
  })));
234
236
  }
235
- exports.getShapeListJson = getShapeListJson;
236
237
  async function buildShapeLibrary(name, quiet) {
237
238
  const zip = new JSZip();
238
239
  const addToZip = async (source) => {
@@ -259,7 +260,6 @@ async function buildShapeLibrary(name, quiet) {
259
260
  }
260
261
  await fs.writeFile(`shapelibraries/${name}.lcsz`, zipBytes);
261
262
  }
262
- exports.buildShapeLibrary = buildShapeLibrary;
263
263
  async function debugShapeLibraries(packagePath = '.', pickAnyPort = false) {
264
264
  let port = 9901;
265
265
  const app = express();
@@ -349,4 +349,3 @@ async function debugShapeLibraries(packagePath = '.', pickAnyPort = false) {
349
349
  };
350
350
  listen();
351
351
  }
352
- exports.debugShapeLibraries = debugShapeLibraries;
@@ -1,2 +1 @@
1
- /// <reference types="node" />
2
- export declare function execSyncLoggingOutputOnError(cmd: string, quiet?: boolean): Buffer;
1
+ export declare function execSyncLoggingOutputOnError(cmd: string, quiet?: boolean): Buffer<ArrayBufferLike>;
package/src/shellutil.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.execSyncLoggingOutputOnError = void 0;
3
+ exports.execSyncLoggingOutputOnError = execSyncLoggingOutputOnError;
4
4
  const child_process = require("child_process");
5
5
  const theme_1 = require("./theme");
6
6
  function execSyncLoggingOutputOnError(cmd, quiet = false) {
@@ -13,4 +13,3 @@ function execSyncLoggingOutputOnError(cmd, quiet = false) {
13
13
  throw e;
14
14
  }
15
15
  }
16
- exports.execSyncLoggingOutputOnError = execSyncLoggingOutputOnError;
package/src/ziputil.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import * as JSZip from 'jszip';
3
2
  import { Buffer } from 'buffer';
4
3
  type JSZipInputType = string | Buffer | Uint8Array | ArrayBuffer | Blob | number[];
package/src/ziputil.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.jsZipFileDeterministic = void 0;
3
+ exports.jsZipFileDeterministic = jsZipFileDeterministic;
4
4
  const filesystemutil_1 = require("./filesystemutil");
5
5
  // Use a fixed date for deterministic files and directories inside the zip
6
6
  const DETERMINISTIC_DATE = new Date('2000-01-01T00:00:00Z');
@@ -38,4 +38,3 @@ function jsZipFileDeterministic(zip, filePath, data, options) {
38
38
  ;
39
39
  return zip.file(normalizedPath, data, { ...options, date: fileDate });
40
40
  }
41
- exports.jsZipFileDeterministic = jsZipFileDeterministic;
@@ -258,6 +258,22 @@
258
258
  "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==",
259
259
  "license": "MIT"
260
260
  },
261
+ "node_modules/asynckit": {
262
+ "version": "0.4.0",
263
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
264
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
265
+ "license": "MIT"
266
+ },
267
+ "node_modules/axios": {
268
+ "version": "0.27.2",
269
+ "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz",
270
+ "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==",
271
+ "license": "MIT",
272
+ "dependencies": {
273
+ "follow-redirects": "^1.14.9",
274
+ "form-data": "^4.0.0"
275
+ }
276
+ },
261
277
  "node_modules/balanced-match": {
262
278
  "version": "1.0.2",
263
279
  "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
@@ -389,6 +405,18 @@
389
405
  "fsevents": "~2.3.2"
390
406
  }
391
407
  },
408
+ "node_modules/combined-stream": {
409
+ "version": "1.0.8",
410
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
411
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
412
+ "license": "MIT",
413
+ "dependencies": {
414
+ "delayed-stream": "~1.0.0"
415
+ },
416
+ "engines": {
417
+ "node": ">= 0.8"
418
+ }
419
+ },
392
420
  "node_modules/concat-map": {
393
421
  "version": "0.0.1",
394
422
  "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
@@ -448,6 +476,15 @@
448
476
  "ms": "2.0.0"
449
477
  }
450
478
  },
479
+ "node_modules/delayed-stream": {
480
+ "version": "1.0.0",
481
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
482
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
483
+ "license": "MIT",
484
+ "engines": {
485
+ "node": ">=0.4.0"
486
+ }
487
+ },
451
488
  "node_modules/depd": {
452
489
  "version": "2.0.0",
453
490
  "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
@@ -536,6 +573,21 @@
536
573
  "node": ">= 0.4"
537
574
  }
538
575
  },
576
+ "node_modules/es-set-tostringtag": {
577
+ "version": "2.1.0",
578
+ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
579
+ "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
580
+ "license": "MIT",
581
+ "dependencies": {
582
+ "es-errors": "^1.3.0",
583
+ "get-intrinsic": "^1.2.6",
584
+ "has-tostringtag": "^1.0.2",
585
+ "hasown": "^2.0.2"
586
+ },
587
+ "engines": {
588
+ "node": ">= 0.4"
589
+ }
590
+ },
539
591
  "node_modules/escape-html": {
540
592
  "version": "1.0.3",
541
593
  "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
@@ -628,6 +680,42 @@
628
680
  "node": ">= 0.8"
629
681
  }
630
682
  },
683
+ "node_modules/follow-redirects": {
684
+ "version": "1.15.11",
685
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz",
686
+ "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==",
687
+ "funding": [
688
+ {
689
+ "type": "individual",
690
+ "url": "https://github.com/sponsors/RubenVerborgh"
691
+ }
692
+ ],
693
+ "license": "MIT",
694
+ "engines": {
695
+ "node": ">=4.0"
696
+ },
697
+ "peerDependenciesMeta": {
698
+ "debug": {
699
+ "optional": true
700
+ }
701
+ }
702
+ },
703
+ "node_modules/form-data": {
704
+ "version": "4.0.5",
705
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz",
706
+ "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==",
707
+ "license": "MIT",
708
+ "dependencies": {
709
+ "asynckit": "^0.4.0",
710
+ "combined-stream": "^1.0.8",
711
+ "es-set-tostringtag": "^2.1.0",
712
+ "hasown": "^2.0.2",
713
+ "mime-types": "^2.1.12"
714
+ },
715
+ "engines": {
716
+ "node": ">= 6"
717
+ }
718
+ },
631
719
  "node_modules/forwarded": {
632
720
  "version": "0.2.0",
633
721
  "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
@@ -646,21 +734,6 @@
646
734
  "node": ">= 0.6"
647
735
  }
648
736
  },
649
- "node_modules/fsevents": {
650
- "version": "2.3.3",
651
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
652
- "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
653
- "dev": true,
654
- "hasInstallScript": true,
655
- "license": "MIT",
656
- "optional": true,
657
- "os": [
658
- "darwin"
659
- ],
660
- "engines": {
661
- "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
662
- }
663
- },
664
737
  "node_modules/function-bind": {
665
738
  "version": "1.1.2",
666
739
  "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
@@ -754,6 +827,21 @@
754
827
  "url": "https://github.com/sponsors/ljharb"
755
828
  }
756
829
  },
830
+ "node_modules/has-tostringtag": {
831
+ "version": "1.0.2",
832
+ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
833
+ "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
834
+ "license": "MIT",
835
+ "dependencies": {
836
+ "has-symbols": "^1.0.3"
837
+ },
838
+ "engines": {
839
+ "node": ">= 0.4"
840
+ },
841
+ "funding": {
842
+ "url": "https://github.com/sponsors/ljharb"
843
+ }
844
+ },
757
845
  "node_modules/hasown": {
758
846
  "version": "2.0.2",
759
847
  "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",