@salesforce/plugin-trust 1.0.3 → 1.0.7

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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,29 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ### [1.0.7](https://github.com/salesforcecli/plugin-trust/compare/v1.0.6...v1.0.7) (2021-09-17)
6
+
7
+
8
+ ### Bug Fixes
9
+
10
+ * use tag when getting npm meta ([#165](https://github.com/salesforcecli/plugin-trust/issues/165)) ([e9fe7f2](https://github.com/salesforcecli/plugin-trust/commit/e9fe7f229a716e4685b7cd54ee753c02667bccd8))
11
+
12
+ ### [1.0.6](https://github.com/salesforcecli/plugin-trust/compare/v1.0.5...v1.0.6) (2021-09-10)
13
+
14
+
15
+ ### Bug Fixes
16
+
17
+ * install plugin-trust as an executable ([#164](https://github.com/salesforcecli/plugin-trust/issues/164)) ([34b293c](https://github.com/salesforcecli/plugin-trust/commit/34b293c1e9276e7653aff41a9fc8e17635ee0a92))
18
+
19
+ ### [1.0.5](https://github.com/salesforcecli/plugin-trust/compare/v1.0.4...v1.0.5) (2021-09-07)
20
+
21
+
22
+ ### Bug Fixes
23
+
24
+ * use npm instead of http ([#154](https://github.com/salesforcecli/plugin-trust/issues/154)) ([2bce1f9](https://github.com/salesforcecli/plugin-trust/commit/2bce1f9bd331b75d81f0309bc46962b5c5d19b16))
25
+
26
+ ### [1.0.4](https://github.com/salesforcecli/plugin-template/compare/v1.0.3...v1.0.4) (2021-05-10)
27
+
5
28
  ### [1.0.3](https://github.com/salesforcecli/plugin-template/compare/v1.0.2...v1.0.3) (2021-04-09)
6
29
 
7
30
 
package/README.md CHANGED
@@ -118,5 +118,5 @@ EXAMPLES
118
118
  sfdx plugins:trust:verify --npm @scope/npmName
119
119
  ```
120
120
 
121
- _See code: [src/commands/plugins/trust/verify.ts](https://github.com/salesforcecli/plugin-template/blob/v1.0.2/src/commands/plugins/trust/verify.ts)_
121
+ _See code: [src/commands/plugins/trust/verify.ts](https://github.com/salesforcecli/plugin-trust/blob/v1.0.6/src/commands/plugins/trust/verify.ts)_
122
122
  <!-- commandsstop -->
package/bin/run ADDED
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env node
2
+
3
+ require('@oclif/command').run()
4
+ .catch(require('@oclif/errors/handle'))
package/bin/run.cmd ADDED
@@ -0,0 +1,3 @@
1
+ @echo off
2
+
3
+ node "%~dp0\run" %*
@@ -2,10 +2,11 @@
2
2
  import { Readable } from 'stream';
3
3
  import { URL } from 'url';
4
4
  import * as request from 'request';
5
+ import { NpmMeta } from '../lib/npmCommand';
5
6
  import { NpmName } from './NpmName';
6
7
  export declare const ALLOW_LIST_FILENAME = "unsignedPluginAllowList.json";
7
8
  export declare const DEFAULT_REGISTRY = "https://registry.npmjs.org/";
8
- export declare type IRequest = (url: string, cb?: request.RequestCallback) => Readable;
9
+ export declare type IRequest = (url: string, cb?: request.RequestCallback) => void;
9
10
  export interface ConfigContext {
10
11
  configDir?: string;
11
12
  cacheDir?: string;
@@ -29,16 +30,6 @@ export declare class CodeVerifierInfo {
29
30
  export declare function validSalesforceHostname(url: string | null): boolean;
30
31
  export declare function verify(codeVerifierInfo: CodeVerifierInfo): Promise<boolean>;
31
32
  export declare const getNpmRegistry: () => URL;
32
- /**
33
- * simple data structure representing the discovered meta information needed for signing,
34
- */
35
- export declare class NpmMeta {
36
- tarballUrl: string;
37
- signatureUrl: string;
38
- publicKeyUrl: string;
39
- tarballLocalPath: string;
40
- verified: boolean;
41
- }
42
33
  /**
43
34
  * class for verifying a digital signature pack of an npm
44
35
  */
@@ -6,7 +6,7 @@
6
6
  * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.doInstallationCodeSigningVerification = exports.doPrompt = exports.VerificationConfig = exports.InstallationVerification = exports.NpmMeta = exports.getNpmRegistry = exports.verify = exports.validSalesforceHostname = exports.CodeVerifierInfo = exports.DEFAULT_REGISTRY = exports.ALLOW_LIST_FILENAME = void 0;
9
+ exports.doInstallationCodeSigningVerification = exports.doPrompt = exports.VerificationConfig = exports.InstallationVerification = exports.getNpmRegistry = exports.verify = exports.validSalesforceHostname = exports.CodeVerifierInfo = exports.DEFAULT_REGISTRY = exports.ALLOW_LIST_FILENAME = void 0;
10
10
  /* eslint-disable @typescript-eslint/no-unsafe-assignment */
11
11
  /* eslint-disable @typescript-eslint/no-unsafe-call */
12
12
  /* eslint-disable @typescript-eslint/no-unsafe-member-access */
@@ -17,8 +17,8 @@ const url_1 = require("url");
17
17
  const util_1 = require("util");
18
18
  const crypto = require("crypto");
19
19
  const core_1 = require("@salesforce/core");
20
- const ts_types_1 = require("@salesforce/ts-types");
21
20
  const request = require("request");
21
+ const npmCommand_1 = require("../lib/npmCommand");
22
22
  const CRYPTO_LEVEL = 'RSA-SHA256';
23
23
  exports.ALLOW_LIST_FILENAME = 'unsignedPluginAllowList.json';
24
24
  exports.DEFAULT_REGISTRY = 'https://registry.npmjs.org/';
@@ -109,12 +109,6 @@ const getNpmRegistry = () => {
109
109
  return new url_1.URL(process.env.SFDX_NPM_REGISTRY || exports.DEFAULT_REGISTRY);
110
110
  };
111
111
  exports.getNpmRegistry = getNpmRegistry;
112
- /**
113
- * simple data structure representing the discovered meta information needed for signing,
114
- */
115
- class NpmMeta {
116
- }
117
- exports.NpmMeta = NpmMeta;
118
112
  /**
119
113
  * class for verifying a digital signature pack of an npm
120
114
  */
@@ -242,32 +236,24 @@ class InstallationVerification {
242
236
  const npmMeta = await this.retrieveNpmMeta();
243
237
  const urlObject = new url_1.URL(npmMeta.tarballUrl);
244
238
  const urlPathsAsArray = urlObject.pathname.split('/');
239
+ npmMeta.tarballFilename = npmMeta.moduleName.replace(/@/g, '');
245
240
  logger.debug(`streamTagGz | urlPathsAsArray: ${urlPathsAsArray.join(',')}`);
246
241
  const fileNameStr = urlPathsAsArray[urlPathsAsArray.length - 1];
247
242
  logger.debug(`streamTagGz | fileNameStr: ${fileNameStr}`);
248
243
  // Make sure the cache path exists.
249
244
  try {
250
245
  await core_1.fs.mkdirp(this.getCachePath());
246
+ new npmCommand_1.NpmModule(npmMeta.moduleName, npmMeta.version).pack(exports.getNpmRegistry().href, { cwd: this.getCachePath() });
247
+ const tarBallFile = core_1.fs
248
+ .readdirSync(this.getCachePath(), { withFileTypes: true })
249
+ .find((entry) => entry.isFile() && entry.name.includes(npmMeta.version));
250
+ npmMeta.tarballLocalPath = path.join(this.getCachePath(), tarBallFile.name);
251
251
  }
252
252
  catch (err) {
253
253
  logger.debug(err);
254
+ throw new core_1.SfdxError(err, 'ShellExecError');
254
255
  }
255
- return new Promise((resolve, reject) => {
256
- const cacheFilePath = path.join(this.getCachePath(), fileNameStr);
257
- logger.debug(`streamTagGz | cacheFilePath: ${cacheFilePath}`);
258
- const writeStream = this.fsImpl.createWriteStream(cacheFilePath, { encoding: 'binary' });
259
- this.requestImpl(npmMeta.tarballUrl)
260
- .on('end', () => {
261
- logger.debug('streamTagGz | Finished writing tgz file');
262
- npmMeta.tarballLocalPath = cacheFilePath;
263
- return resolve(npmMeta);
264
- })
265
- .on('error', (err) => {
266
- logger.debug(err);
267
- return reject(err);
268
- })
269
- .pipe(writeStream);
270
- });
256
+ return npmMeta;
271
257
  }
272
258
  // this is generally $HOME/.config/sfdx
273
259
  getConfigPath() {
@@ -282,90 +268,67 @@ class InstallationVerification {
282
268
  */
283
269
  async retrieveNpmMeta() {
284
270
  const logger = await this.getLogger();
285
- return new Promise((resolve, reject) => {
286
- const npmRegistry = exports.getNpmRegistry();
287
- logger.debug(`retrieveNpmMeta | npmRegistry: ${npmRegistry.href}`);
288
- logger.debug(`retrieveNpmMeta | this.pluginNpmName.name: ${this.pluginNpmName.name}`);
289
- logger.debug(`retrieveNpmMeta | this.pluginNpmName.scope: ${this.pluginNpmName.scope}`);
290
- logger.debug(`retrieveNpmMeta | this.pluginNpmName.tag: ${this.pluginNpmName.tag}`);
291
- if (this.pluginNpmName.scope) {
292
- npmRegistry.pathname = path.join(npmRegistry.pathname, `@${this.pluginNpmName.scope}%2f${this.pluginNpmName.name}`);
293
- }
294
- else {
295
- npmRegistry.pathname = path.join(npmRegistry.pathname, this.pluginNpmName.name);
296
- }
297
- logger.debug(`retrieveNpmMeta | npmRegistry.pathname: ${npmRegistry.pathname}`);
298
- this.requestImpl(npmRegistry.href, (err, response, body) => {
299
- if (err) {
300
- return reject(err);
301
- }
302
- if (response && response.statusCode === 200) {
303
- logger.debug('retrieveNpmMeta | Found npm meta information. Parsing.');
304
- const responseObj = JSON.parse(body);
305
- // Make sure the response has a version attribute
306
- if (!responseObj.versions) {
307
- return reject(new core_1.SfdxError(`The npm metadata for plugin ${this.pluginNpmName.name} is missing the versions attribute.`, 'InvalidNpmMetadata'));
308
- }
309
- // Assume the tag is version tag.
310
- let versionObject = responseObj.versions[this.pluginNpmName.tag];
311
- logger.debug(`retrieveNpmMeta | versionObject: ${JSON.stringify(versionObject)}`);
312
- // If the assumption was not correct the tag must be a non-versioned dist-tag or not specified.
313
- if (!versionObject) {
314
- // Assume dist-tag;
315
- const distTags = ts_types_1.get(responseObj, 'dist-tags');
316
- logger.debug(`retrieveNpmMeta | distTags: ${distTags}`);
317
- if (distTags) {
318
- const tagVersionStr = ts_types_1.get(distTags, this.pluginNpmName.tag);
319
- logger.debug(`retrieveNpmMeta | tagVersionStr: ${tagVersionStr}`);
320
- // if we got a dist tag hit look up the version object
321
- if (tagVersionStr && tagVersionStr.length > 0 && tagVersionStr.includes('.')) {
322
- versionObject = responseObj.versions[tagVersionStr];
323
- logger.debug(`retrieveNpmMeta | versionObject: ${JSON.stringify(versionObject)}`);
324
- }
325
- else {
326
- return reject(new core_1.SfdxError(`The dist tag ${this.pluginNpmName.tag} was not found for plugin: ${this.pluginNpmName.name}`, 'NpmTagNotFound'));
327
- }
328
- }
329
- else {
330
- return reject(new core_1.SfdxError('The deployed NPM is missing dist-tags.', 'UnexpectedNpmFormat'));
331
- }
332
- }
333
- if (!(versionObject && versionObject.sfdx)) {
334
- return reject(new core_1.SfdxError('This plugin is not signed by Salesforce.com, Inc.', 'NotSigned'));
335
- }
336
- else {
337
- const meta = new NpmMeta();
338
- if (!validSalesforceHostname(versionObject.sfdx.publicKeyUrl)) {
339
- throw new core_1.SfdxError(`The host is not allowed to provide signing information. [${versionObject.sfdx.publicKeyUrl}]`, 'UnexpectedHost');
340
- }
341
- else {
342
- logger.debug(`retrieveNpmMeta | versionObject.sfdx.publicKeyUrl: ${versionObject.sfdx.publicKeyUrl}`);
343
- meta.publicKeyUrl = versionObject.sfdx.publicKeyUrl;
344
- }
345
- if (!validSalesforceHostname(versionObject.sfdx.signatureUrl)) {
346
- throw new core_1.SfdxError(`The host is not allowed to provide signing information. [${versionObject.sfdx.signatureUrl}]`, 'UnexpectedHost');
347
- }
348
- else {
349
- logger.debug(`retrieveNpmMeta | versionObject.sfdx.signatureUrl: ${versionObject.sfdx.signatureUrl}`);
350
- meta.signatureUrl = versionObject.sfdx.signatureUrl;
351
- }
352
- meta.tarballUrl = versionObject.dist.tarball;
353
- logger.debug(`retrieveNpmMeta | meta.tarballUrl: ${meta.tarballUrl}`);
354
- return resolve(meta);
355
- }
271
+ const npmRegistry = exports.getNpmRegistry();
272
+ logger.debug(`retrieveNpmMeta | npmRegistry: ${npmRegistry.href}`);
273
+ logger.debug(`retrieveNpmMeta | this.pluginNpmName.name: ${this.pluginNpmName.name}`);
274
+ logger.debug(`retrieveNpmMeta | this.pluginNpmName.scope: ${this.pluginNpmName.scope}`);
275
+ logger.debug(`retrieveNpmMeta | this.pluginNpmName.tag: ${this.pluginNpmName.tag}`);
276
+ const npmShowModule = this.pluginNpmName.scope
277
+ ? `@${this.pluginNpmName.scope}/${this.pluginNpmName.name}`
278
+ : this.pluginNpmName.name;
279
+ const npmModule = new npmCommand_1.NpmModule(npmShowModule, this.pluginNpmName.tag);
280
+ const npmMetadata = npmModule.show(npmRegistry.href);
281
+ logger.debug('retrieveNpmMeta | Found npm meta information.');
282
+ if (!npmMetadata.versions) {
283
+ throw new core_1.SfdxError(`The npm metadata for plugin ${this.pluginNpmName.name} is missing the versions attribute.`, 'InvalidNpmMetadata');
284
+ }
285
+ // Assume the tag is version tag.
286
+ let versionNumber = npmMetadata.versions.find((version) => version === this.pluginNpmName.tag);
287
+ logger.debug(`retrieveNpmMeta | versionObject: ${JSON.stringify(versionNumber)}`);
288
+ // If the assumption was not correct the tag must be a non-versioned dist-tag or not specified.
289
+ if (!versionNumber) {
290
+ // Assume dist-tag;
291
+ const distTags = npmMetadata['dist-tags'];
292
+ logger.debug(`retrieveNpmMeta | distTags: ${JSON.stringify(distTags)}`);
293
+ if (distTags) {
294
+ const tagVersionStr = distTags[this.pluginNpmName.tag];
295
+ logger.debug(`retrieveNpmMeta | tagVersionStr: ${tagVersionStr}`);
296
+ // if we got a dist tag hit look up the version object
297
+ if (tagVersionStr && tagVersionStr.length > 0 && tagVersionStr.includes('.')) {
298
+ versionNumber = npmMetadata.versions.find((version) => version === tagVersionStr);
299
+ logger.debug(`retrieveNpmMeta | versionObject: ${versionNumber}`);
356
300
  }
357
301
  else {
358
- switch (response.statusCode) {
359
- case 403:
360
- throw new core_1.SfdxError(`Access to the plugin was denied. url: ${npmRegistry.href}`, 'PluginAccessDenied');
361
- case 404:
362
- throw new core_1.SfdxError(`The plugin requested was not found. url: ${npmRegistry.href}.`, 'PluginNotFound');
363
- default:
364
- throw new core_1.SfdxError(`The url request returned ${response.statusCode} - ${npmRegistry.href}`, 'UrlRetrieve');
365
- }
302
+ throw new core_1.SfdxError(`The dist tag ${this.pluginNpmName.tag} was not found for plugin: ${this.pluginNpmName.name}`, 'NpmTagNotFound');
366
303
  }
367
- });
368
- });
304
+ }
305
+ else {
306
+ throw new core_1.SfdxError('The deployed NPM is missing dist-tags.', 'UnexpectedNpmFormat');
307
+ }
308
+ }
309
+ npmModule.npmMeta.version = versionNumber;
310
+ if (!npmMetadata.sfdx) {
311
+ throw new core_1.SfdxError('This plugin is not signed by Salesforce.com, Inc.', 'NotSigned');
312
+ }
313
+ else {
314
+ if (!validSalesforceHostname(npmMetadata.sfdx.publicKeyUrl)) {
315
+ throw new core_1.SfdxError(`The host is not allowed to provide signing information. [${npmMetadata.sfdx.publicKeyUrl}]`, 'UnexpectedHost');
316
+ }
317
+ else {
318
+ logger.debug(`retrieveNpmMeta | versionObject.sfdx.publicKeyUrl: ${npmMetadata.sfdx.publicKeyUrl}`);
319
+ npmModule.npmMeta.publicKeyUrl = npmMetadata.sfdx.publicKeyUrl;
320
+ }
321
+ if (!validSalesforceHostname(npmMetadata.sfdx.signatureUrl)) {
322
+ throw new core_1.SfdxError(`The host is not allowed to provide signing information. [${npmMetadata.sfdx.signatureUrl}]`, 'UnexpectedHost');
323
+ }
324
+ else {
325
+ logger.debug(`retrieveNpmMeta | versionObject.sfdx.signatureUrl: ${npmMetadata.sfdx.signatureUrl}`);
326
+ npmModule.npmMeta.signatureUrl = npmMetadata.sfdx.signatureUrl;
327
+ }
328
+ npmModule.npmMeta.tarballUrl = npmMetadata.dist.tarball;
329
+ logger.debug(`retrieveNpmMeta | meta.tarballUrl: ${npmModule.npmMeta.tarballUrl}`);
330
+ return npmModule.npmMeta;
331
+ }
369
332
  }
370
333
  async getLogger() {
371
334
  if (!this.logger) {
@@ -1 +1 @@
1
- {"version":3,"file":"installationVerification.js","sourceRoot":"","sources":["../../src/lib/installationVerification.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,4DAA4D;AAC5D,sDAAsD;AACtD,+DAA+D;AAC/D,wDAAwD;AAExD,6BAA6B;AAC7B,mCAAkC;AAClC,6BAAiE;AACjE,+BAAkD;AAClD,iCAAiC;AACjC,2CAAyD;AACzD,mDAA2C;AAC3C,mCAAmC;AAGnC,MAAM,YAAY,GAAG,YAAY,CAAC;AACrB,QAAA,mBAAmB,GAAG,8BAA8B,CAAC;AACrD,QAAA,gBAAgB,GAAG,6BAA6B,CAAC;AAiB9D,MAAa,gBAAgB;IAK3B,IAAW,YAAY;QACrB,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,IAAW,YAAY,CAAC,KAAe;QACrC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;IACpB,CAAC;IAED,IAAW,eAAe;QACxB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,IAAW,eAAe,CAAC,KAAe;QACxC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC;IAED,IAAW,eAAe;QACxB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,IAAW,eAAe,CAAC,KAAe;QACxC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC;CACF;AA5BD,4CA4BC;AAED,SAAgB,uBAAuB,CAAC,GAAkB;IACxD,IAAI,CAAC,GAAG,EAAE;QACR,OAAO,KAAK,CAAC;KACd;IACD,MAAM,SAAS,GAAuB,WAAQ,CAAC,GAAG,CAAC,CAAC;IAEpD,IAAI,OAAO,CAAC,GAAG,CAAC,yCAAyC,KAAK,MAAM,EAAE;QACpE,OAAO,SAAS,CAAC,QAAQ,IAAI,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;KAC9E;SAAM;QACL,OAAO,SAAS,CAAC,QAAQ,KAAK,QAAQ,IAAI,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,QAAQ,KAAK,0BAA0B,CAAC;KACnH;AACH,CAAC;AAXD,0DAWC;AAED,SAAS,WAAW,CAAC,MAAgB;IACnC,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC7C,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,IAAI,MAAM,EAAE;YACV,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC1B,GAAG,IAAI,KAAK,CAAC;YACf,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;gBACpB,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;oBAC/B,OAAO,MAAM,CAAC,IAAI,gBAAS,CAAC,sCAAsC,EAAE,kBAAkB,CAAC,CAAC,CAAC;iBAC1F;gBACD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;YACtB,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACzB,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;YACrB,CAAC,CAAC,CAAC;SACJ;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,MAAM,CAAC,gBAAkC;IAC7D,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC;IACtE,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;IAElD,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC9C,gBAAgB,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAE5C,gBAAgB,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;YAC3C,qDAAqD;YACrD,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAChC,gBAAgB,CAAC,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;gBAC5D,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;YAChD,CAAC,CAAC,CAAC;YAEH,gBAAgB,CAAC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;gBAC9C,IAAI,SAAS,CAAC,UAAU,KAAK,CAAC,EAAE;oBAC9B,OAAO,MAAM,CAAC,IAAI,gBAAS,CAAC,+CAA+C,EAAE,kBAAkB,CAAC,CAAC,CAAC;iBACnG;qBAAM;oBACL,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC;oBACrF,OAAO,OAAO,CAAC,YAAY,CAAC,CAAC;iBAC9B;YACH,CAAC,CAAC,CAAC;YAEH,gBAAgB,CAAC,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACnD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;YACrB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,gBAAgB,CAAC,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YAChD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAhCD,wBAgCC;AAEM,MAAM,cAAc,GAAG,GAAQ,EAAE;IACtC,OAAO,IAAI,SAAG,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,wBAAgB,CAAC,CAAC;AACpE,CAAC,CAAC;AAFW,QAAA,cAAc,kBAEzB;AAEF;;GAEG;AACH,MAAa,OAAO;CAMnB;AAND,0BAMC;AAED;;GAEG;AACH,MAAa,wBAAwB;IAkBnC,YAAmB,WAAsB,EAAE,MAAgB;QACzD,iDAAiD;QACjD,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC;QACvD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAE,CAAC;QACnC,IAAI,CAAC,aAAa,GAAG,gBAAa,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACzD,IAAI,CAAC,WAAW,GAAG,gBAAa,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACvD,CAAC;IAED;;;;OAIG;IACI,SAAS,CAAC,OAAuB;QACtC,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;YACtB,OAAO,IAAI,CAAC;SACb;QACD,MAAM,IAAI,gBAAS,CAAC,sCAAsC,EAAE,cAAc,CAAC,CAAC;IAC9E,CAAC;IAED;;;;OAIG;IACI,gBAAgB,CAAC,WAAiC;QACvD,IAAI,WAAW,EAAE;YACf,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC;YACjC,OAAO,IAAI,CAAC;SACb;QACD,MAAM,IAAI,gBAAS,CAAC,+BAA+B,EAAE,cAAc,CAAC,CAAC;IACvE,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,MAAM;QACjB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QAEtC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACzC,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QAErD,MAAM,CAAC,KAAK,CAAC,wEAAwE,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;QACjH,MAAM,IAAI,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACpC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;QAEnG,MAAM,CAAC,KAAK,CAAC,kCAAkC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;QACvE,MAAM,CAAC,KAAK,CAAC,kCAAkC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;QAEvE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;aAC7G,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACf,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACjC,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACjC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC,CAAC;aACD,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACf,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC;YAC1B,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,gBAAgB,CAAC;iBAC9C,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACb,MAAM,CAAC,KAAK,CAAC,8CAA8C,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;gBACvF,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACpB,CAAC,CAAC;iBACD,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;YACX,IAAI,CAAC,CAAC,IAAI,KAAK,6BAA6B,EAAE;gBAC5C,MAAM,IAAI,gBAAS,CACjB,2FAA2F,EAC3F,gBAAgB,CACjB,CAAC;aACH;YACD,MAAM,CAAC,CAAC;QACV,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,KAAK,CAAC,aAAa;QACxB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACtC,MAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,2BAAmB,CAAC,CAAC;QACjF,MAAM,CAAC,KAAK,CAAC,sCAAsC,mBAAmB,EAAE,CAAC,CAAC;QAC1E,IAAI,WAAmB,CAAC;QACxB,IAAI;YACF,WAAW,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;YAC5D,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;YAC/D,OAAO,cAAc,IAAI,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC;SACjF;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE;gBACzB,OAAO,KAAK,CAAC;aACd;iBAAM;gBACL,MAAM,GAAG,CAAC;aACX;SACF;IACH,CAAC;IAED;;;;OAIG;IACI,iBAAiB,CAAC,GAAW;QAClC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,GAAU,EAAE,QAAiC,EAAE,YAAY,EAAE,EAAE;gBACpF,IAAI,GAAG,EAAE;oBACP,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;iBACpB;qBAAM;oBACL,IAAI,QAAQ,IAAI,QAAQ,CAAC,UAAU,KAAK,GAAG,EAAE;wBAC3C,0CAA0C;wBAC1C,OAAO,OAAO,CACZ,IAAI,iBAAQ,CAAC;4BACX,IAAI;gCACF,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gCACxB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;4BAClB,CAAC;yBACF,CAAC,CACH,CAAC;qBACH;yBAAM;wBACL,OAAO,MAAM,CACX,IAAI,gBAAS,CACX,oBAAoB,GAAG,6BAA6B;wBAClD,4EAA4E;wBAC3E,QAAmC,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,WAC/D,GAAG,EACH,qBAAqB,CACtB,CACF,CAAC;qBACH;iBACF;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,WAAW;QACtB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACtC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC7C,MAAM,SAAS,GAAQ,IAAI,SAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACnD,MAAM,eAAe,GAAG,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACtD,MAAM,CAAC,KAAK,CAAC,kCAAkC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAE5E,MAAM,WAAW,GAAW,eAAe,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACxE,MAAM,CAAC,KAAK,CAAC,8BAA8B,WAAW,EAAE,CAAC,CAAC;QAE1D,mCAAmC;QACnC,IAAI;YACF,MAAM,SAAE,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;SACtC;QAAC,OAAO,GAAG,EAAE;YACZ,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SACnB;QAED,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC9C,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,WAAW,CAAC,CAAC;YAClE,MAAM,CAAC,KAAK,CAAC,gCAAgC,aAAa,EAAE,CAAC,CAAC;YAE9D,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;YACzF,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC;iBACjC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;gBACd,MAAM,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;gBACxD,OAAO,CAAC,gBAAgB,GAAG,aAAa,CAAC;gBACzC,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC;YAC1B,CAAC,CAAC;iBACD,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACnB,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAClB,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;YACrB,CAAC,CAAC;iBACD,IAAI,CAAC,WAAW,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,uCAAuC;IAC/B,aAAa;QACnB,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;IAC/B,CAAC;IAED,qDAAqD;IAC7C,YAAY;QAClB,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;IAC9B,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,eAAe;QAC3B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACtC,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC9C,MAAM,WAAW,GAAG,sBAAc,EAAE,CAAC;YAErC,MAAM,CAAC,KAAK,CAAC,kCAAkC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;YACnE,MAAM,CAAC,KAAK,CAAC,8CAA8C,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC;YACtF,MAAM,CAAC,KAAK,CAAC,+CAA+C,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC;YACxF,MAAM,CAAC,KAAK,CAAC,6CAA6C,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC;YAEpF,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;gBAC5B,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAC9B,WAAW,CAAC,QAAQ,EACpB,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAC5D,CAAC;aACH;iBAAM;gBACL,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;aACjF;YACD,MAAM,CAAC,KAAK,CAAC,2CAA2C,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;YAEhF,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;gBACzD,IAAI,GAAG,EAAE;oBACP,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;iBACpB;gBACD,IAAI,QAAQ,IAAI,QAAQ,CAAC,UAAU,KAAK,GAAG,EAAE;oBAC3C,MAAM,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;oBACvE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAErC,iDAAiD;oBACjD,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;wBACzB,OAAO,MAAM,CACX,IAAI,gBAAS,CACX,+BAA+B,IAAI,CAAC,aAAa,CAAC,IAAI,qCAAqC,EAC3F,oBAAoB,CACrB,CACF,CAAC;qBACH;oBAED,iCAAiC;oBACjC,IAAI,aAAa,GAAY,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;oBAE1E,MAAM,CAAC,KAAK,CAAC,oCAAoC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;oBAElF,+FAA+F;oBAC/F,IAAI,CAAC,aAAa,EAAE;wBAClB,mBAAmB;wBACnB,MAAM,QAAQ,GAAW,cAAG,CAAC,WAAW,EAAE,WAAW,CAAW,CAAC;wBACjE,MAAM,CAAC,KAAK,CAAC,+BAA+B,QAAQ,EAAE,CAAC,CAAC;wBACxD,IAAI,QAAQ,EAAE;4BACZ,MAAM,aAAa,GAAW,cAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAW,CAAC;4BAC9E,MAAM,CAAC,KAAK,CAAC,oCAAoC,aAAa,EAAE,CAAC,CAAC;4BAElE,sDAAsD;4BACtD,IAAI,aAAa,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gCAC5E,aAAa,GAAG,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;gCACpD,MAAM,CAAC,KAAK,CAAC,oCAAoC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;6BACnF;iCAAM;gCACL,OAAO,MAAM,CACX,IAAI,gBAAS,CACX,gBAAgB,IAAI,CAAC,aAAa,CAAC,GAAG,8BAA8B,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,EAC7F,gBAAgB,CACjB,CACF,CAAC;6BACH;yBACF;6BAAM;4BACL,OAAO,MAAM,CAAC,IAAI,gBAAS,CAAC,wCAAwC,EAAE,qBAAqB,CAAC,CAAC,CAAC;yBAC/F;qBACF;oBAED,IAAI,CAAC,CAAC,aAAa,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE;wBAC1C,OAAO,MAAM,CAAC,IAAI,gBAAS,CAAC,mDAAmD,EAAE,WAAW,CAAC,CAAC,CAAC;qBAChG;yBAAM;wBACL,MAAM,IAAI,GAAY,IAAI,OAAO,EAAE,CAAC;wBACpC,IAAI,CAAC,uBAAuB,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;4BAC7D,MAAM,IAAI,gBAAS,CACjB,4DAA4D,aAAa,CAAC,IAAI,CAAC,YAAY,GAAG,EAC9F,gBAAgB,CACjB,CAAC;yBACH;6BAAM;4BACL,MAAM,CAAC,KAAK,CAAC,sDAAsD,aAAa,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;4BACtG,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC;yBACrD;wBAED,IAAI,CAAC,uBAAuB,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;4BAC7D,MAAM,IAAI,gBAAS,CACjB,4DAA4D,aAAa,CAAC,IAAI,CAAC,YAAY,GAAG,EAC9F,gBAAgB,CACjB,CAAC;yBACH;6BAAM;4BACL,MAAM,CAAC,KAAK,CAAC,sDAAsD,aAAa,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;4BACtG,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC;yBACrD;wBAED,IAAI,CAAC,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC;wBAC7C,MAAM,CAAC,KAAK,CAAC,sCAAsC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;wBAEtE,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;qBACtB;iBACF;qBAAM;oBACL,QAAQ,QAAQ,CAAC,UAAU,EAAE;wBAC3B,KAAK,GAAG;4BACN,MAAM,IAAI,gBAAS,CAAC,yCAAyC,WAAW,CAAC,IAAI,EAAE,EAAE,oBAAoB,CAAC,CAAC;wBACzG,KAAK,GAAG;4BACN,MAAM,IAAI,gBAAS,CAAC,4CAA4C,WAAW,CAAC,IAAI,GAAG,EAAE,gBAAgB,CAAC,CAAC;wBACzG;4BACE,MAAM,IAAI,gBAAS,CACjB,4BAA4B,QAAQ,CAAC,UAAoB,MAAM,WAAW,CAAC,IAAI,EAAE,EACjF,aAAa,CACd,CAAC;qBACL;iBACF;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,SAAS;QACrB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,IAAI,CAAC,MAAM,GAAG,MAAM,aAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;SAC9D;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF;AAnUD,4DAmUC;AAED,MAAa,kBAAkB;IAK7B,IAAW,QAAQ;QACjB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,IAAW,QAAQ,CAAC,KAAe;QACjC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;IAC9B,CAAC;IAED,IAAW,GAAG;QACZ,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,IAAW,GAAG,CAAC,KAAgC;QAC7C,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC;IAED,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,IAAW,MAAM,CAAC,KAA2C;QAC3D,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAC5B,CAAC;CACF;AA5BD,gDA4BC;AAEM,KAAK,UAAU,QAAQ,CAAC,OAA2B;IACxD,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,MAAM,CACzC,yGAAyG,CAC1G,CAAC;IACF,QAAQ,cAAc,CAAC,WAAW,EAAE,EAAE;QACpC,KAAK,GAAG;YACN,OAAO;QACT;YACE,MAAM,IAAI,gBAAS,CAAC,4CAA4C,EAAE,2BAA2B,CAAC,CAAC;KAClG;AACH,CAAC;AAVD,4BAUC;AAEM,KAAK,UAAU,qCAAqC,CACzD,MAAqB,EACrB,MAAuC,EACvC,kBAAsC;IAEtC,IAAI;QACF,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACxD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,MAAM,IAAI,gBAAS,CACjB,gGAAgG,EAChG,oCAAoC,CACrC,CAAC;SACH;QACD,kBAAkB,CAAC,GAAG,CAAC,gDAAgD,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;KAC1F;IAAC,OAAO,GAAG,EAAE;QACZ,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,EAAE;YAC5B,IAAI,MAAM,kBAAkB,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE;gBACrD,kBAAkB,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,MAAM,mDAAmD,CAAC,CAAC;gBACxG,OAAO;aACR;iBAAM;gBACL,OAAO,MAAM,QAAQ,CAAC,kBAAkB,CAAC,CAAC;aAC3C;SACF;aAAM,IAAI,GAAG,CAAC,IAAI,KAAK,gBAAgB,IAAI,GAAG,CAAC,IAAI,KAAK,oBAAoB,EAAE;YAC7E,MAAM,IAAI,gBAAS,CAAC,GAAG,CAAC,OAAO,IAAI,4CAA4C,CAAC,CAAC;SAClF;QACD,MAAM,gBAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC3B;AACH,CAAC;AA3BD,sFA2BC"}
1
+ {"version":3,"file":"installationVerification.js","sourceRoot":"","sources":["../../src/lib/installationVerification.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ import * as shelljs from 'shelljs';
2
+ export declare type NpmMeta = {
3
+ tarballUrl?: string;
4
+ signatureUrl?: string;
5
+ publicKeyUrl?: string;
6
+ tarballLocalPath?: string;
7
+ verified?: boolean;
8
+ moduleName?: string;
9
+ version?: string;
10
+ tarballFilename?: string;
11
+ };
12
+ export declare type NpmShowResults = {
13
+ versions: string[];
14
+ 'dist-tags': {
15
+ [name: string]: string;
16
+ };
17
+ sfdx?: {
18
+ publicKeyUrl: string;
19
+ signatureUrl: string;
20
+ };
21
+ dist?: {
22
+ [name: string]: string;
23
+ };
24
+ };
25
+ declare type NpmCommandOptions = shelljs.ExecOptions & {
26
+ json?: boolean;
27
+ registry?: string;
28
+ };
29
+ declare type NpmCommandResult = NpmShowResults & {
30
+ [name: string]: string;
31
+ };
32
+ export declare class NpmCommand {
33
+ private static npmPkgPath;
34
+ static runNpmCmd(cmd: string, options?: NpmCommandOptions): NpmCommandResult;
35
+ private static npmPackagePath;
36
+ private static npmCli;
37
+ }
38
+ export declare class NpmModule {
39
+ private module;
40
+ private version;
41
+ npmMeta: NpmMeta;
42
+ constructor(module: string, version?: string);
43
+ show(registry: string): NpmShowResults;
44
+ pack(registry: string, options?: shelljs.ExecOptions): void;
45
+ }
46
+ export {};
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2020, salesforce.com, inc.
4
+ * All rights reserved.
5
+ * Licensed under the BSD 3-Clause license.
6
+ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
7
+ */
8
+ /* eslint-disable @typescript-eslint/no-unused-vars */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.NpmModule = exports.NpmCommand = void 0;
11
+ const path = require("path");
12
+ const shelljs = require("shelljs");
13
+ const npm_run_path_1 = require("npm-run-path");
14
+ const core_1 = require("@salesforce/core");
15
+ class NpmCommand {
16
+ static runNpmCmd(cmd, options = {}) {
17
+ const npmCli = NpmCommand.npmCli();
18
+ const exec = `${npmCli} ${cmd} --registry=${options.registry} --json`;
19
+ const npmShowResult = shelljs.exec(exec, {
20
+ ...options,
21
+ silent: true,
22
+ fatal: true,
23
+ async: false,
24
+ env: npm_run_path_1.default.env({ env: process.env }),
25
+ });
26
+ if (npmShowResult.code !== 0) {
27
+ throw new core_1.SfdxError(npmShowResult.stderr, 'ShellExecError');
28
+ }
29
+ try {
30
+ return JSON.parse(npmShowResult.stdout);
31
+ }
32
+ catch (error) {
33
+ throw new core_1.SfdxError(error, 'ShellParseError');
34
+ }
35
+ }
36
+ static npmPackagePath() {
37
+ return this.npmPkgPath;
38
+ }
39
+ static npmCli() {
40
+ const pkgPath = NpmCommand.npmPackagePath();
41
+ const pkgJson = core_1.fs.readJsonSync(pkgPath);
42
+ const prjPath = pkgPath.substring(0, pkgPath.lastIndexOf(path.sep));
43
+ return path.join(prjPath, pkgJson.bin['npm']);
44
+ }
45
+ }
46
+ exports.NpmCommand = NpmCommand;
47
+ NpmCommand.npmPkgPath = require.resolve('npm/package.json');
48
+ class NpmModule {
49
+ constructor(module, version = 'latest') {
50
+ this.module = module;
51
+ this.version = version;
52
+ this.npmMeta = {
53
+ moduleName: module,
54
+ };
55
+ }
56
+ show(registry) {
57
+ return NpmCommand.runNpmCmd(`show ${this.module}@${this.version}`, { registry });
58
+ }
59
+ pack(registry, options) {
60
+ NpmCommand.runNpmCmd(`pack ${this.module}@${this.version}`, { ...options, registry });
61
+ return;
62
+ }
63
+ }
64
+ exports.NpmModule = NpmModule;
65
+ //# sourceMappingURL=npmCommand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"npmCommand.js","sourceRoot":"","sources":["../../src/lib/npmCommand.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;AACH,sDAAsD;;;AAEtD,6BAA6B;AAC7B,mCAAmC;AACnC,+CAAsC;AACtC,2CAAiD;AA0CjD,MAAa,UAAU;IAGd,MAAM,CAAC,SAAS,CAAC,GAAW,EAAE,UAAU,EAAuB;QACpE,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,GAAG,MAAM,IAAI,GAAG,eAAe,OAAO,CAAC,QAAQ,SAAS,CAAC;QACtE,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE;YACvC,GAAG,OAAO;YACV,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,KAAK;YACZ,GAAG,EAAE,sBAAU,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;SAC1C,CAAC,CAAC;QACH,IAAI,aAAa,CAAC,IAAI,KAAK,CAAC,EAAE;YAC5B,MAAM,IAAI,gBAAS,CAAC,aAAa,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;SAC7D;QACD,IAAI;YACF,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAqB,CAAC;SAC7D;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,IAAI,gBAAS,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;SAC/C;IACH,CAAC;IAEO,MAAM,CAAC,cAAc;QAC3B,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAEO,MAAM,CAAC,MAAM;QACnB,MAAM,OAAO,GAAG,UAAU,CAAC,cAAc,EAAE,CAAC;QAC5C,MAAM,OAAO,GAAG,SAAE,CAAC,YAAY,CAAC,OAAO,CAAe,CAAC;QACvD,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACpE,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAChD,CAAC;;AAhCH,gCAiCC;AAhCgB,qBAAU,GAAG,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAkClE,MAAa,SAAS;IAEpB,YAA2B,MAAc,EAAU,UAAkB,QAAQ;QAAlD,WAAM,GAAN,MAAM,CAAQ;QAAU,YAAO,GAAP,OAAO,CAAmB;QAC3E,IAAI,CAAC,OAAO,GAAG;YACb,UAAU,EAAE,MAAM;SACnB,CAAC;IACJ,CAAC;IAEM,IAAI,CAAC,QAAgB;QAC1B,OAAO,UAAU,CAAC,SAAS,CAAC,QAAQ,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IACnF,CAAC;IAEM,IAAI,CAAC,QAAgB,EAAE,OAA6B;QACzD,UAAU,CAAC,SAAS,CAAC,QAAQ,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;QACtF,OAAO;IACT,CAAC;CACF;AAhBD,8BAgBC"}
@@ -1 +1 @@
1
- {"version":"1.0.3","commands":{"plugins:trust:verify":{"id":"plugins:trust:verify","description":"validate a digital signature for a npm package","usage":"<%= command.id %> -n <string> [-r <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]","pluginName":"@salesforce/plugin-trust","pluginType":"core","aliases":[],"examples":["sfdx plugins:trust:verify --npm @scope/npmName --registry http://my.repo.org:4874","sfdx plugins:trust:verify --npm @scope/npmName"],"flags":{"json":{"name":"json","type":"boolean","description":"format output as json","allowNo":false},"loglevel":{"name":"loglevel","type":"option","description":"logging level for this command invocation","required":false,"helpValue":"(trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL)","options":["trace","debug","info","warn","error","fatal","TRACE","DEBUG","INFO","WARN","ERROR","FATAL"],"default":"warn"},"npm":{"name":"npm","type":"option","char":"n","description":"Specify the npm name. This can include a tag/version","required":true},"registry":{"name":"registry","type":"option","char":"r","description":"The registry name. the behavior is the same as npm","required":false}},"args":[]}}}
1
+ {"version":"1.0.7","commands":{"plugins:trust:verify":{"id":"plugins:trust:verify","description":"validate a digital signature for a npm package","usage":"<%= command.id %> -n <string> [-r <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]","pluginName":"@salesforce/plugin-trust","pluginType":"core","aliases":[],"examples":["sfdx plugins:trust:verify --npm @scope/npmName --registry http://my.repo.org:4874","sfdx plugins:trust:verify --npm @scope/npmName"],"flags":{"json":{"name":"json","type":"boolean","description":"format output as json","allowNo":false},"loglevel":{"name":"loglevel","type":"option","description":"logging level for this command invocation","required":false,"helpValue":"(trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL)","options":["trace","debug","info","warn","error","fatal","TRACE","DEBUG","INFO","WARN","ERROR","FATAL"],"default":"warn"},"npm":{"name":"npm","type":"option","char":"n","description":"Specify the npm name. This can include a tag/version","required":true},"registry":{"name":"registry","type":"option","char":"r","description":"The registry name. the behavior is the same as npm","required":false}},"args":[]}}}
package/package.json CHANGED
@@ -1,46 +1,53 @@
1
1
  {
2
2
  "name": "@salesforce/plugin-trust",
3
3
  "description": "validate a digital signature for a npm package",
4
- "version": "1.0.3",
4
+ "version": "1.0.7",
5
5
  "author": "Salesforce",
6
+ "bin": {
7
+ "sf-trust": "bin/run"
8
+ },
6
9
  "bugs": "https://github.com/forcedotcom/cli/issues",
7
10
  "dependencies": {
8
11
  "@oclif/config": "^1.17.0",
9
12
  "@salesforce/command": "^3.0.5",
10
- "@salesforce/core": "^2.15.2",
13
+ "@salesforce/core": "^2.23.2",
14
+ "npm": "^7.21.0",
15
+ "npm-run-path": "^4.0.1",
16
+ "shelljs": "^0.8.4",
11
17
  "tslib": "^2"
12
18
  },
13
19
  "devDependencies": {
14
20
  "@oclif/dev-cli": "^1",
15
21
  "@oclif/plugin-command-snapshot": "^2.0.0",
16
- "@salesforce/cli-plugins-testkit": "^0.0.13",
17
- "@salesforce/dev-config": "^2.1.0",
18
- "@salesforce/dev-scripts": "0.9.1",
22
+ "@salesforce/cli-plugins-testkit": "^1.3.0",
23
+ "@salesforce/dev-config": "^2.1.2",
24
+ "@salesforce/dev-scripts": "0.9.18",
19
25
  "@salesforce/plugin-command-reference": "^1.3.0",
20
26
  "@salesforce/prettier-config": "^0.0.2",
21
- "@salesforce/ts-sinon": "1.3.5",
27
+ "@salesforce/ts-sinon": "1.3.21",
28
+ "@types/shelljs": "^0.8.9",
22
29
  "@typescript-eslint/eslint-plugin": "^4.2.0",
23
30
  "@typescript-eslint/parser": "^4.2.0",
24
31
  "chai": "^4.2.0",
25
32
  "cz-conventional-changelog": "^3.2.0",
26
- "eslint": "^6.8.0",
27
- "eslint-config-prettier": "^6.11.0",
28
- "eslint-config-salesforce": "^0.1.0",
29
- "eslint-config-salesforce-license": "^0.1.0",
30
- "eslint-config-salesforce-typescript": "^0.2.0",
31
- "eslint-plugin-header": "^3.0.0",
32
- "eslint-plugin-import": "^2.20.2",
33
- "eslint-plugin-jsdoc": "^27.0.3",
34
- "eslint-plugin-prettier": "^3.1.3",
35
- "husky": "^4.2.5",
36
- "lint-staged": "^10.2.2",
37
- "mocha": "^8.3.0",
33
+ "eslint": "^7.27.0",
34
+ "eslint-config-prettier": "^8.3.0",
35
+ "eslint-config-salesforce": "^0.1.6",
36
+ "eslint-config-salesforce-license": "^0.1.6",
37
+ "eslint-config-salesforce-typescript": "^0.2.7",
38
+ "eslint-plugin-header": "^3.1.1",
39
+ "eslint-plugin-import": "^2.23.4",
40
+ "eslint-plugin-jsdoc": "^35.1.2",
41
+ "eslint-plugin-prettier": "^3.4.0",
42
+ "husky": "^4.3.8",
43
+ "lint-staged": "^11.0.0",
44
+ "mocha": "^8.4.0",
38
45
  "nyc": "^15.1.0",
39
- "prettier": "^2.0.5",
40
- "pretty-quick": "^2.0.1",
46
+ "prettier": "^2.3.0",
47
+ "pretty-quick": "^3.1.0",
41
48
  "shx": "0.3.3",
42
- "sinon": "^9.0.2",
43
- "ts-node": "^8.10.2",
49
+ "sinon": "10.0.0",
50
+ "ts-node": "^10.0.0",
44
51
  "typescript": "^4.1.3"
45
52
  },
46
53
  "config": {
@@ -52,6 +59,7 @@
52
59
  "node": ">=12.0.0"
53
60
  },
54
61
  "files": [
62
+ "bin",
55
63
  "/lib",
56
64
  "/messages",
57
65
  "/oclif.manifest.json"
@@ -88,7 +96,7 @@
88
96
  }
89
97
  }
90
98
  },
91
- "repository": "salesforcecli/plugin-template",
99
+ "repository": "salesforcecli/plugin-trust",
92
100
  "scripts": {
93
101
  "build": "sf-build",
94
102
  "clean": "sf-clean",
@@ -120,7 +128,7 @@
120
128
  "access": "public"
121
129
  },
122
130
  "sfdx": {
123
- "publicKeyUrl": "https://developer.salesforce.com/media/salesforce-cli/sfdx-cli-03032020.crt",
124
- "signatureUrl": "https://developer.salesforce.com/media/salesforce-cli/signatures/salesforce-plugin-trust-1.0.3.sig"
131
+ "publicKeyUrl": "https://developer.salesforce.com/media/salesforce-cli/security/@salesforce/plugin-trust/1.0.7.crt",
132
+ "signatureUrl": "https://developer.salesforce.com/media/salesforce-cli/security/@salesforce/plugin-trust/1.0.7.sig"
125
133
  }
126
134
  }