diff --git a/apps/api-extractor/src/generators/dtsRollup/DtsRollupGenerator.ts b/apps/api-extractor/src/generators/dtsRollup/DtsRollupGenerator.ts index 6e07000c9f8..b788c3b45a0 100644 --- a/apps/api-extractor/src/generators/dtsRollup/DtsRollupGenerator.ts +++ b/apps/api-extractor/src/generators/dtsRollup/DtsRollupGenerator.ts @@ -486,9 +486,33 @@ export class DtsRollupGenerator { // In the near future we will overhaul the AEDoc parser to separate syntactic/semantic analysis, // at which point this will be wired up to the same ApiDocumentation layer used for the API Review files private _getReleaseTagForDeclaration(declaration: ts.Node): ReleaseTag { + let nodeForComment: ts.Node = declaration; + + if (ts.isVariableDeclaration(declaration)) { + // Variable declarations are special because they can be combined into a list. For example: + // + // /** A */ export /** B */ const /** C */ x = 1, /** D **/ [ /** E */ y, z] = [3, 4]; + // + // The compiler will only emit comments A and C in the .d.ts file, so in general there isn't a well-defined + // way to document these parts. API Extractor requires you to break them into separate exports like this: + // + // /** A */ export const x = 1; + // + // But _getReleaseTagForDeclaration() still receives a node corresponding to "x", so we need to walk upwards + // and find the containing statement in order for getJSDocCommentRanges() to read the comment that we expect. + const statement: ts.VariableStatement | undefined = TypeScriptHelpers.findFirstParent(declaration, + ts.SyntaxKind.VariableStatement) as ts.VariableStatement | undefined; + if (statement !== undefined) { + // For a compound declaration, fall back to looking for C instead of A + if (statement.declarationList.declarations.length === 1) { + nodeForComment = statement; + } + } + } + const sourceFileText: string = declaration.getSourceFile().text; - for (const commentRange of TypeScriptHelpers.getJSDocCommentRanges(declaration, sourceFileText) || []) { + for (const commentRange of TypeScriptHelpers.getJSDocCommentRanges(nodeForComment, sourceFileText) || []) { // NOTE: This string includes "/**" const commentTextRange: tsdoc.TextRange = tsdoc.TextRange.fromStringRange( sourceFileText, commentRange.pos, commentRange.end); diff --git a/build-tests/api-extractor-test-01/dist/beta/api-extractor-test-01.d.ts b/build-tests/api-extractor-test-01/dist/beta/api-extractor-test-01.d.ts index 51a8d8c6a94..56ddae0f30c 100644 --- a/build-tests/api-extractor-test-01/dist/beta/api-extractor-test-01.d.ts +++ b/build-tests/api-extractor-test-01/dist/beta/api-extractor-test-01.d.ts @@ -226,6 +226,8 @@ export declare class TypeReferencesInAedoc { declare const unexportedCustomSymbol: unique symbol; +/* Excluded from this release type: VARIABLE */ + /** * Example decorator * @public diff --git a/build-tests/api-extractor-test-01/dist/internal/api-extractor-test-01.d.ts b/build-tests/api-extractor-test-01/dist/internal/api-extractor-test-01.d.ts index 0125204afb3..60a2f94829e 100644 --- a/build-tests/api-extractor-test-01/dist/internal/api-extractor-test-01.d.ts +++ b/build-tests/api-extractor-test-01/dist/internal/api-extractor-test-01.d.ts @@ -246,6 +246,8 @@ export declare class TypeReferencesInAedoc { declare const unexportedCustomSymbol: unique symbol; +export declare const VARIABLE: string; + /** * Example decorator * @public diff --git a/build-tests/api-extractor-test-01/dist/public/api-extractor-test-01.d.ts b/build-tests/api-extractor-test-01/dist/public/api-extractor-test-01.d.ts index 630516775ab..dfd0eae41b8 100644 --- a/build-tests/api-extractor-test-01/dist/public/api-extractor-test-01.d.ts +++ b/build-tests/api-extractor-test-01/dist/public/api-extractor-test-01.d.ts @@ -219,6 +219,8 @@ export declare class TypeReferencesInAedoc { declare const unexportedCustomSymbol: unique symbol; +/* Excluded from this release type: VARIABLE */ + /** * Example decorator * @public diff --git a/build-tests/api-extractor-test-01/etc/api-extractor-test-01.api.ts b/build-tests/api-extractor-test-01/etc/api-extractor-test-01.api.ts index d5be95e2ada..fe5cc101ac6 100644 --- a/build-tests/api-extractor-test-01/etc/api-extractor-test-01.api.ts +++ b/build-tests/api-extractor-test-01/etc/api-extractor-test-01.api.ts @@ -119,3 +119,4 @@ class TypeReferencesInAedoc { export function virtual(target: Object, propertyKey: string | symbol, descriptor: TypedPropertyDescriptor): void; // WARNING: Unsupported export: fullyExportedCustomSymbol +// WARNING: Unsupported export: VARIABLE diff --git a/build-tests/api-extractor-test-01/src/index.ts b/build-tests/api-extractor-test-01/src/index.ts index d0cd8cb97db..ff8c736b751 100644 --- a/build-tests/api-extractor-test-01/src/index.ts +++ b/build-tests/api-extractor-test-01/src/index.ts @@ -107,3 +107,5 @@ export { default as IInterfaceAsDefaultExport } from './IInterfaceAsDefaultExpor export { ReexportedClass3 as ReexportedClass } from './ReexportedClass3/ReexportedClass3'; export { TypeReferencesInAedoc } from './TypeReferencesInAedoc'; + +export { VARIABLE } from './variableDeclarations'; \ No newline at end of file diff --git a/build-tests/api-extractor-test-01/src/variableDeclarations.ts b/build-tests/api-extractor-test-01/src/variableDeclarations.ts new file mode 100644 index 00000000000..8d3fcbb4b83 --- /dev/null +++ b/build-tests/api-extractor-test-01/src/variableDeclarations.ts @@ -0,0 +1,5 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. +// See LICENSE in the project root for license information. + +/** @alpha */ +export const VARIABLE: string = 'hello'; diff --git a/build-tests/api-extractor-test-04/dist/public/api-extractor-test-04.d.ts b/build-tests/api-extractor-test-04/dist/public/api-extractor-test-04.d.ts index 8869004b085..c3b1641966d 100644 --- a/build-tests/api-extractor-test-04/dist/public/api-extractor-test-04.d.ts +++ b/build-tests/api-extractor-test-04/dist/public/api-extractor-test-04.d.ts @@ -50,4 +50,4 @@ export declare class PublicClass { /* Excluded from this release type: RegularEnum */ -export declare const variableDeclaration: string; +/* Excluded from this release type: variableDeclaration */ diff --git a/common/changes/@microsoft/api-extractor/pgonzal-ae-variable-declaraitons_2018-11-15-09-01.json b/common/changes/@microsoft/api-extractor/pgonzal-ae-variable-declaraitons_2018-11-15-09-01.json new file mode 100644 index 00000000000..7f16cc3e789 --- /dev/null +++ b/common/changes/@microsoft/api-extractor/pgonzal-ae-variable-declaraitons_2018-11-15-09-01.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "packageName": "@microsoft/api-extractor", + "comment": "Fix an issue where .d.ts trimming did not work for exported variable declarations (GitHub #936)", + "type": "patch" + } + ], + "packageName": "@microsoft/api-extractor", + "email": "pgonzal@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/config/rush/shrinkwrap.yaml b/common/config/rush/shrinkwrap.yaml index 665e9a10c70..8797ff3d6c5 100644 --- a/common/config/rush/shrinkwrap.yaml +++ b/common/config/rush/shrinkwrap.yaml @@ -89,7 +89,7 @@ dependencies: chai: 3.5.0 clean-css: 4.2.1 colors: 1.2.5 - deasync: 0.1.13 + deasync: 0.1.14 decomment: 0.9.2 del: 2.2.2 end-of-stream: 1.1.0 @@ -151,7 +151,7 @@ dependencies: sinon-chai: 2.8.0 strict-uri-encode: 2.0.0 sudo: 1.0.3 - tar: 4.4.7 + tar: 4.4.8 through2: 2.0.5 ts-jest: 22.4.6 tslint: 5.11.0 @@ -347,7 +347,7 @@ packages: '@pnpm/package-bins': 1.0.0 '@pnpm/types': 1.8.0 '@types/mz': 0.0.32 - '@types/node': 10.12.3 + '@types/node': 10.12.9 '@types/ramda': 0.25.41 '@zkochan/cmd-shim': 2.2.4 arr-flatten: 1.1.0 @@ -371,7 +371,7 @@ packages: '@pnpm/package-bins': 1.0.0 '@pnpm/types': 1.8.0 '@types/mz': 0.0.32 - '@types/node': 10.12.3 + '@types/node': 10.12.9 '@types/ramda': 0.25.41 '@zkochan/cmd-shim': 2.2.4 arr-flatten: 1.1.0 @@ -392,7 +392,7 @@ packages: integrity: sha512-thVgwrQ5rMcPYI6a0IPOt2pnlF1n5zX7BN4CrFeBp0/JCGsZAht/VOPv9bD3cZ+j0vDemEwE23BfhOWxmxq2yQ== /@pnpm/logger/1.0.2: dependencies: - '@types/node': 10.12.3 + '@types/node': 10.12.9 bole: 3.0.2 ndjson: 1.5.0 dev: false @@ -586,10 +586,10 @@ packages: dev: false resolution: integrity: sha1-spbM5xRP+rd7hAkMqtTx5Lvqjgk= - /@types/node/10.12.3: + /@types/node/10.12.9: dev: false resolution: - integrity: sha512-sfGmOtSMSbQ/AKG8V9xD1gmjquC9awIIZ/Kj309pHb2n3bcRAcGMQv5nJ6gCXZVsneGE4+ve8DXKRCsrg3TFzg== + integrity: sha512-eajkMXG812/w3w4a1OcBlaTwsFPO5F7fJ/amy+tieQxEMWBlbV1JGSjkFM+zkHNf81Cad+dfIRA+IBkvmvdAeA== /@types/node/8.5.8: dev: false resolution: @@ -837,16 +837,16 @@ packages: /acorn-globals/4.3.0: dependencies: acorn: 6.0.4 - acorn-walk: 6.1.0 + acorn-walk: 6.1.1 dev: false resolution: integrity: sha512-hMtHj3s5RnuhvHPowpBYvJVj3rAar82JiDQHvGs1zO0l10ocX/xEdBShNHTJaboucJUsScghp74pH3s7EnHHQw== - /acorn-walk/6.1.0: + /acorn-walk/6.1.1: dev: false engines: node: '>=0.4.0' resolution: - integrity: sha512-ugTb7Lq7u4GfWSqqpwE0bGyoBZNMTok/zDBXxfEG0QM50jNlGhIWjRC1pPN7bvV1anhF+bs+/gNcRw+o55Evbg== + integrity: sha512-OtUw6JUTgxA2QoqqmrmQ7F2NYqiBPi/L2jqHyFtllhOUvXYQXf0Z1CYUinIfyT4bTCGmrA7gX9FvHA81uzCoVw== /acorn/4.0.13: dev: false engines: @@ -1234,7 +1234,7 @@ packages: /autoprefixer/9.1.5: dependencies: browserslist: 4.3.4 - caniuse-lite: 1.0.30000906 + caniuse-lite: 1.0.30000907 normalize-range: 0.1.2 num2fraction: 1.2.2 postcss: 7.0.5 @@ -1677,8 +1677,8 @@ packages: integrity: sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== /browserslist/4.3.4: dependencies: - caniuse-lite: 1.0.30000906 - electron-to-chromium: 1.3.83 + caniuse-lite: 1.0.30000907 + electron-to-chromium: 1.3.84 node-releases: 1.0.3 dev: false hasBin: true @@ -1808,10 +1808,10 @@ packages: node: '>=4' resolution: integrity: sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= - /caniuse-lite/1.0.30000906: + /caniuse-lite/1.0.30000907: dev: false resolution: - integrity: sha512-ME7JFX6h0402om/nC/8Lw+q23QvPe2ust9U0ntLmkX9F2zaGwq47fZkjlyHKirFBuq1EM+T/LXBcDdW4bvkCTA== + integrity: sha512-No5sQ/OB2Nmka8MNOOM6nJx+Hxt6MQ6h7t7kgJFu9oTuwjykyKRSBP/+i/QAyFHxeHB+ddE0Da1CG5ihx9oehQ== /capture-exit/1.2.0: dependencies: rsvp: 3.6.2 @@ -2369,16 +2369,16 @@ packages: dev: false resolution: integrity: sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI= - /deasync/0.1.13: + /deasync/0.1.14: dependencies: bindings: 1.2.1 - nan: 2.11.1 + node-addon-api: 1.6.1 dev: false engines: node: '>=0.11.0' requiresBuild: true resolution: - integrity: sha512-/6ngYM7AapueqLtvOzjv9+11N2fHDSrkxeMF1YPE20WIfaaawiBg+HZH1E5lHrcJxlKR42t6XPOEmMmqcAsU1g== + integrity: sha512-wN8sIuEqIwyQh72AG7oY6YQODCxIp1eXzEZlZznBuwDF8Q03Tdy9QNp1BNZXeadXoklNrw+Ip1fch+KXo/+ASw== /debug/2.2.0: dependencies: ms: 0.7.1 @@ -2635,10 +2635,10 @@ packages: dev: false resolution: integrity: sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= - /electron-to-chromium/1.3.83: + /electron-to-chromium/1.3.84: dev: false resolution: - integrity: sha512-DqJoDarxq50dcHsOOlMLNoy+qQitlMNbYb6wwbE0oUw2veHdRkpNrhmngiUYKMErdJ8SJ48rpJsZTQgy5SoEAA== + integrity: sha512-IYhbzJYOopiTaNWMBp7RjbecUBsbnbDneOP86f3qvS0G0xfzwNSvMJpTrvi5/Y1gU7tg2NAgeg8a8rCYvW9Whw== /elliptic/6.4.1: dependencies: bn.js: 4.11.8 @@ -2985,7 +2985,7 @@ packages: /event-stream/3.3.6: dependencies: duplexer: 0.1.1 - flatmap-stream: 0.1.1 + flatmap-stream: 0.1.2 from: 0.1.7 map-stream: 0.0.7 pause-stream: 0.0.11 @@ -3426,10 +3426,10 @@ packages: node: '>= 0.8.0' resolution: integrity: sha1-Tnmumy6zi/hrO7Vr8+ClaqX8q9c= - /flatmap-stream/0.1.1: + /flatmap-stream/0.1.2: dev: false resolution: - integrity: sha512-lAq4tLbm3sidmdCN8G3ExaxH7cUCtP5mgDvrYowsx84dcYkJJ4I28N7gkxA6+YlSXzaGLJYIDEi9WGfXzMiXdw== + integrity: sha512-ucyr6WkLXjyMuHPtOUq4l+nSAxgWi7v4QO508eQ9resnGj+lSup26oIsUI5aH8k4Qfpjsxa8dDf9UCKkS2KHzQ== /follow-redirects/1.5.9: dependencies: debug: 3.1.0 @@ -4084,7 +4084,7 @@ packages: node: '>=4' resolution: integrity: sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0= - /har-validator/5.1.2: + /har-validator/5.1.3: dependencies: ajv: 6.5.5 har-schema: 2.0.0 @@ -4092,7 +4092,7 @@ packages: engines: node: '>=6' resolution: - integrity: sha512-OFxb5MZXCUMx43X7O8LK4FKggEQx6yC5QPmOcBnYbJ9UjxEcMcrMbaR0af5HZpqeFopw2GwQRQi34ZXI7YLM5w== + integrity: sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== /has-ansi/0.1.0: dependencies: ansi-regex: 0.2.1 @@ -5117,7 +5117,7 @@ packages: chalk: 2.4.1 micromatch: 2.3.11 slash: 1.0.0 - stack-utils: 1.0.1 + stack-utils: 1.0.2 dev: false resolution: integrity: sha512-iAMeKxhB3Se5xkSjU0NndLLCHtP4n+GtCqV0bISKA5dmOXQfEbdEmYiu2qpnWBDCQdEafNDDU6Q+l6oBMd/+BA== @@ -6368,6 +6368,10 @@ packages: dev: false resolution: integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== + /node-addon-api/1.6.1: + dev: false + resolution: + integrity: sha512-GcLOYrG5/enbqH4SMsqXt6GQUQGGnDnE3FLDZzXYkCgQHuZV5UDFR+EboeY8kpG0avroyOjpFQ2qLEBosFcRIA== /node-fetch/2.1.2: dev: false engines: @@ -7665,7 +7669,7 @@ packages: extend: 3.0.2 forever-agent: 0.6.1 form-data: 2.3.3 - har-validator: 5.1.2 + har-validator: 5.1.3 http-signature: 1.2.0 is-typedarray: 1.0.0 isstream: 0.1.2 @@ -8278,12 +8282,12 @@ packages: hasBin: true resolution: integrity: sha512-Ra/OXQtuh0/enyl4ETZAfTaeksa6BXks5ZcjpSUNrjBr0DvrJKX+1fsKDPpT9TBXgHAFsa4510aNVgI8g/+SzA== - /stack-utils/1.0.1: + /stack-utils/1.0.2: dev: false engines: node: '>=0.10.0' resolution: - integrity: sha1-1PM6tU6OOHeLDKXP07OvsS22hiA= + integrity: sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA== /static-extend/0.1.2: dependencies: define-property: 0.2.5 @@ -8560,7 +8564,7 @@ packages: dev: false resolution: integrity: sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE= - /tar/4.4.7: + /tar/4.4.8: dependencies: chownr: 1.1.1 fs-minipass: 1.2.5 @@ -8573,7 +8577,7 @@ packages: engines: node: '>=4.5' resolution: - integrity: sha512-mR3MzsCdN0IEWjZRuF/J9gaWHnTwOvzjqPTcvi1xXgfKTDQRp39gRETPQEfPByAdEOGmZfx1HrRsn8estaEvtA== + integrity: sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ== /ternary-stream/2.0.1: dependencies: duplexify: 3.6.1 @@ -9696,7 +9700,7 @@ packages: dev: false name: '@rush-temp/api-documenter' resolution: - integrity: sha512-5+tD20NbV/aEGRNXtlBM1CxiMUz0agaUgJH1qdtWNL1vkfG2XwVBbjFQwWsUHAt/zhEy+TTNUQLT1IUXywpAkw== + integrity: sha512-5DoNi0nQmzxAUXnlKdIsZt0B6VuwbgX9dlqAaATfImlXpphxuuHWE9kumEtzQBLcRSkPLLgG7kuXYyf+4Rqpcg== tarball: 'file:projects/api-documenter.tgz' version: 0.0.0 'file:projects/api-extractor-test-01.tgz': @@ -9708,7 +9712,7 @@ packages: dev: false name: '@rush-temp/api-extractor-test-01' resolution: - integrity: sha512-JABlRwM2iUYnSxIuIN6BKMOMS624F4coCT8QypMlIuKG1w7EV9DxgTYy8fPP/53USmDBM3OOpBRbMCng1ypGmA== + integrity: sha512-xGTllbHMjJ4VRuUiYtUrnF58WVvFPkQI1q3D6bqO9NRLztB8SaifP32Z2n89R37xCB9q/KhWamdXWqSgX82F6w== tarball: 'file:projects/api-extractor-test-01.tgz' version: 0.0.0 'file:projects/api-extractor-test-02.tgz': @@ -9721,7 +9725,7 @@ packages: dev: false name: '@rush-temp/api-extractor-test-02' resolution: - integrity: sha512-nI6J+39ePPdYB7gaHHhuLfMnoXcA1OzLcHI23c8o3jkaKzBO685OSG5FaJWWz4l2wTx9lUbd/qeDC8o2VN7aGg== + integrity: sha512-QrkdBRQ5uDS4X+2nb/KBjQocMsBkkIORuuuxmXHfQqjmzsWeGP3g5e3gn0qn6QDRnDvSuBUl8vv/uSi9pqGVBg== tarball: 'file:projects/api-extractor-test-02.tgz' version: 0.0.0 'file:projects/api-extractor-test-03.tgz': @@ -9743,7 +9747,7 @@ packages: dev: false name: '@rush-temp/api-extractor-test-04' resolution: - integrity: sha512-L231AC1SERYqCSZJK1+lOxgzF9vkomCVHWnB+bT1UpNKAM7wnyY7GlYGdaDLm5qVqOytv39C9Qt5UB7EXM8RVA== + integrity: sha512-ZWqYV/EV10UFo+eMvV7Rq8ibmwmCeCEWlftpZ3Y7Tbc86ZOBuWTIdXQ7qELDZ7jpWGKMvOPqudkQMMpGCXFAcw== tarball: 'file:projects/api-extractor-test-04.tgz' version: 0.0.0 'file:projects/api-extractor-test-05.tgz': @@ -9755,7 +9759,7 @@ packages: dev: false name: '@rush-temp/api-extractor-test-05' resolution: - integrity: sha512-/PLMzm5eFMDOvX85mrmSljcSUwnBSG8LvqQqzHuJ3IU43TZ3s4jSWykZbIopr+Ce1Hj9dDCDrh/V2Z2wYT1Wrw== + integrity: sha512-7bRDSeG3iKGdXjRcawniLg8lIzG3lGtyEfEi8N9SuYFqbOvqrLX48x1/p7WVJB5+WV6bsNAfZtEU9sfjny4BgA== tarball: 'file:projects/api-extractor-test-05.tgz' version: 0.0.0 'file:projects/api-extractor.tgz': @@ -9808,7 +9812,7 @@ packages: dev: false name: '@rush-temp/gulp-core-build-karma' resolution: - integrity: sha512-AlxkuAGbHiSTzLHBJB0KFE2rRkJhqMGRCzifVgTC90+ZvIKVGRik9MfC6elmC70FgTzLgPFR8knLU3HeZ/7VVA== + integrity: sha512-0yRLyUmcCsDBp9K8iRaJpTwSbOjuTLpo51YpfGmjPg4EIFuF6Npca1Qd7H4Js1PLtiwLu5y0+Kh3NyTk2QnelQ== tarball: 'file:projects/gulp-core-build-karma.tgz' version: 0.0.0 'file:projects/gulp-core-build-mocha.tgz': @@ -9829,7 +9833,7 @@ packages: dev: false name: '@rush-temp/gulp-core-build-mocha' resolution: - integrity: sha512-E2mTMYSeh/Kcn0co3Um/tq9AO/gYwnHB5c7z9CJSL/BQaRAMjmyUMxOLbDbN+qhcvCeQMOmHys1z89+w1AQ5kw== + integrity: sha512-ay/6H5qoyOriZ84DnSr0gg2/eIdX+9jdTYPGA7T0H5A4QZdPn7aJFM7nsO+6W1c1+0I6TvADSwO+j86c5LVKtw== tarball: 'file:projects/gulp-core-build-mocha.tgz' version: 0.0.0 'file:projects/gulp-core-build-sass.tgz': @@ -9849,7 +9853,7 @@ packages: dev: false name: '@rush-temp/gulp-core-build-sass' resolution: - integrity: sha512-deevVRd41+wt6nIm6S/n+1PnAOR27X4lv/JgRJtq1UUKbdmaFSeiERYZ1EHn5DHqxGyLjLuzsjAAd/XcEFURSw== + integrity: sha512-QMWPjET9Lb8RZYTXNE6skhazncjxf5hpi+1AfyZlD/vL05yXaUCfx20ltDKa62ChHY1+/U3yhMppZ6ztj+e0Fw== tarball: 'file:projects/gulp-core-build-sass.tgz' version: 0.0.0 'file:projects/gulp-core-build-serve.tgz': @@ -9866,7 +9870,7 @@ packages: '@types/through2': 2.0.32 '@types/vinyl': 1.2.30 colors: 1.2.5 - deasync: 0.1.13 + deasync: 0.1.14 express: 4.16.4 gulp: 3.9.1 gulp-connect: 5.5.0 @@ -9876,7 +9880,7 @@ packages: dev: false name: '@rush-temp/gulp-core-build-serve' resolution: - integrity: sha512-OCLSIJYA/S+CmFh9AS+lDUPZkUcWZStMypmmeGieonMxaZ0yXkulemKE8waunS9W3Nmh62xYiV3G9oRWYGhXLg== + integrity: sha512-DOewLDXWFic+fB312g9MDYLJj0xLMB+q4BukJwNBLczisw0lWzPtQZnZX0+MI/ISXOx8sQmrRz+Z+XdSEt55XA== tarball: 'file:projects/gulp-core-build-serve.tgz' version: 0.0.0 'file:projects/gulp-core-build-typescript.tgz': @@ -9897,7 +9901,7 @@ packages: dev: false name: '@rush-temp/gulp-core-build-typescript' resolution: - integrity: sha512-L8W4evA1LvZgFZb/bquWJjk2tQ8/ruTImrUWt991e6Zf8Kd7FS9XHL83/gKqf8a2Su9U2vVc09sVmpb7jUX3yw== + integrity: sha512-Yk+f9f6+JqrNwhqShmLt7XCYRPdLHn6uS49S/LYCAvf7com8sDSGc9no6ziFv9YscV7dBXHzx+YSJThNyxSlGQ== tarball: 'file:projects/gulp-core-build-typescript.tgz' version: 0.0.0 'file:projects/gulp-core-build-webpack.tgz': @@ -9915,7 +9919,7 @@ packages: dev: false name: '@rush-temp/gulp-core-build-webpack' resolution: - integrity: sha512-vnYpfkr0SMnDY5ik+0xOl97wPhx6Ks09vguY2J3XDtN1tosQGTAqItFq+b1Ttiyqn/he05LyuBPQzh26bIOacw== + integrity: sha512-bgyhkL4XGgU0o9SK5CzlrdcPcL6JwNIlOxFsqmxPSld2JSP4zOKCNGbaQjEONJewWA4I+Rpp1h/sEVMFTQgZEQ== tarball: 'file:projects/gulp-core-build-webpack.tgz' version: 0.0.0 'file:projects/gulp-core-build.tgz': @@ -9964,7 +9968,7 @@ packages: dev: false name: '@rush-temp/gulp-core-build' resolution: - integrity: sha512-RVdbUziGN94HCcdKmEaJ+xKapdx8jh+JqOtS2Exw0yOk+UoS3AMqXTS9MDD4b8VeYw0twOAMfK+3Bbc5S6bbtQ== + integrity: sha512-HtEXrvdKbmblRQiaGtRc4JmiGmO3tf+3Rz4iaCquMvhGQ3Kjn50Op6OrB4XfIPbgmU+r9mxwL48PFgtP8pt8Sg== tarball: 'file:projects/gulp-core-build.tgz' version: 0.0.0 'file:projects/load-themed-styles.tgz': @@ -9977,7 +9981,7 @@ packages: dev: false name: '@rush-temp/load-themed-styles' resolution: - integrity: sha512-hq2UE8lBtJIEijZbtSwzWgGmm2+JLZxODgmbUr12HrupqYvoeOZzCkxxNZvpjnbi9itte+fC8Vn/+S0GNIXSLg== + integrity: sha512-lg8DshZhEEKjy/OCECSWphbD2lCZWBsKIj32/T8TjyvBA0Y0WeSOAhClNaP5TLJEujGsVIvZf9qHqSlRyB7Kwg== tarball: 'file:projects/load-themed-styles.tgz' version: 0.0.0 'file:projects/loader-load-themed-styles.tgz': @@ -9992,7 +9996,7 @@ packages: dev: false name: '@rush-temp/loader-load-themed-styles' resolution: - integrity: sha512-NFzWpkfcaR8b+snEtC6Bn/8FE1HWZyxfHOt+3m8OtYmBJT5h7q1Q+FmpdrUTL9BIWWJn81dyLwqlfe6OEbw9DQ== + integrity: sha512-DhgwBdVg7gvGwH5OfoQbvI6HUUba/a7ltQPicQn97f0tPjV8oHgrpO4jepDp7ZMXUmKIRI/+zKldEzpUHxaEdA== tarball: 'file:projects/loader-load-themed-styles.tgz' version: 0.0.0 'file:projects/loader-raw-script.tgz': @@ -10006,7 +10010,7 @@ packages: dev: false name: '@rush-temp/loader-raw-script' resolution: - integrity: sha512-RtKmjZpA6r/8th84Os2J3NO58emDt3cNUvvjSE9CeT0lJrbHd6A9X7VPD9Gt7fL/V7kz84Twd4+CwbYl9IeXiQ== + integrity: sha512-jFwzaoLid/DQolsSVpadRs4rNEGjnkhXgFwH8eZAzc+eIxwj4TNXGqe6KJxVObns29WI9DSDMFrMo0N5k6DQfA== tarball: 'file:projects/loader-raw-script.tgz' version: 0.0.0 'file:projects/loader-set-webpack-public-path.tgz': @@ -10022,7 +10026,7 @@ packages: dev: false name: '@rush-temp/loader-set-webpack-public-path' resolution: - integrity: sha512-YOm4H/rhIVZ7YYyvBAdBfy9Tuklvz6Q/Z4cVUuuQZNT0ylUE+8PgxEg2FX5Bx4OUq26vim6bknOCGb6r5hwfrw== + integrity: sha512-ic8UI9qMa/IrrX5wBYhn8IqcOJnNhXjvzqc04NWotBHCkCjBqpjqDa3A1RvgJBeDy/dy68LSKCDXh7axA4TT0Q== tarball: 'file:projects/loader-set-webpack-public-path.tgz' version: 0.0.0 'file:projects/node-core-library.tgz': @@ -10055,7 +10059,7 @@ packages: dev: false name: '@rush-temp/node-library-build-test' resolution: - integrity: sha512-Zjb6DhtaZh5Lhi8dxqG+MqoE7ZPFYwZSeUMSE2HVczx95C/+mWNY9GVDQv3Q0blqb5XOh0oF+5uvz8k6Sw2SKQ== + integrity: sha512-Ef/ZAqUmeS/VIYOb4OUWhTfLxCz9pOpcC7hvkjCNE2EWnwreNjPhSlOTYpWaPq1fHhp3yFLhC1Ej+bmpSrOcZg== tarball: 'file:projects/node-library-build-test.tgz' version: 0.0.0 'file:projects/node-library-build.tgz': @@ -10066,7 +10070,7 @@ packages: dev: false name: '@rush-temp/node-library-build' resolution: - integrity: sha512-hZpINrz0uqKCIUEQq7Z9Jxx20G1r2Ya8Jqc2or7Zjo+uP5pocXkg/OApIwBWXdxyk/WP4ODbsStucK6+LSVywg== + integrity: sha512-1XzBuiviSqBE3q30RrYwI0+LdVF1AfmEOC74ChELwucc6OptSB825m4v/l9hsHqYumtHPuxjhp1o+U2QcOVcug== tarball: 'file:projects/node-library-build.tgz' version: 0.0.0 'file:projects/package-deps-hash.tgz': @@ -10079,7 +10083,7 @@ packages: dev: false name: '@rush-temp/package-deps-hash' resolution: - integrity: sha512-EwhcKJ3NxDIe6WXt1drdGXKUB9JpOIpddaf5mLShzwA38cghLIxbPfR5pehT13++vYDyrdnt98cmNeBv4uuIWA== + integrity: sha512-M8CcEqvdmPtoYOcclTbdY9+e3ucbjpYe2iQp9ECk+aCVHKfJQMn97RFWgJLMzOKV0RuUaBNwrw35czeLHv4wWw== tarball: 'file:projects/package-deps-hash.tgz' version: 0.0.0 'file:projects/resolve-chunk-plugin.tgz': @@ -10092,7 +10096,7 @@ packages: dev: false name: '@rush-temp/resolve-chunk-plugin' resolution: - integrity: sha512-wYs5OW3S2TuyrLRg1r1EaYYINXbsEeSs8DswnDavEvikuxTcU72MHGq55YqlTAoW5NMNI4CuIPetJGb1tyTx+g== + integrity: sha512-G0V0T7d4AykYj3xhWoKf6/bwb1J/4vz/864yBwm1jjvtEah7Aj5GJ16fqftRqglsZ/cMFet6qtqEp810qVaiZg== tarball: 'file:projects/resolve-chunk-plugin.tgz' version: 0.0.0 'file:projects/rush-lib.tgz': @@ -10128,13 +10132,13 @@ packages: read-package-tree: 5.1.6 semver: 5.3.0 strict-uri-encode: 2.0.0 - tar: 4.4.7 + tar: 4.4.8 wordwrap: 1.0.0 z-schema: 3.18.4 dev: false name: '@rush-temp/rush-lib' resolution: - integrity: sha512-7nGe5uQasU79veuGjuzNmnnuR+9v4bVv+zLyRGTtMqe//Scj2gEF2YjBWymmS+VRlkEMeiY1xfhaqEZSmALAJg== + integrity: sha512-CoBS7npYOmDTjKHPSQQG72qDCvdDx9jHWaE7KWETjnS8tlPZpJ3v9B6mtM5qVwdaYFgtzwKPh8ZBhoIp2Blf7A== tarball: 'file:projects/rush-lib.tgz' version: 0.0.0 'file:projects/rush-stack-compiler.tgz': @@ -10149,14 +10153,14 @@ packages: dev: false name: '@rush-temp/rush-stack-compiler' resolution: - integrity: sha512-u4gm52qWyVZ4Cu7ltBh/WpWeqdEP5CsDm+VjfiBKgQ+xTsHfeQxQOSOBXLymlBMXsS4g/ugAfk+4taDWEzfU8Q== + integrity: sha512-vQ04nt06VkcVpaGRUJPff5h57WmXSXAcYd4h3kKe7CDvQRmYIw2eYL12IvwHXYkTLpiecVSEQRwGAbny8m2+Tw== tarball: 'file:projects/rush-stack-compiler.tgz' version: 0.0.0 'file:projects/rush-stack-library-test.tgz': dev: false name: '@rush-temp/rush-stack-library-test' resolution: - integrity: sha512-9t5Fb+8RnLivSqbB9E4itxSmfjga9j3QyIEHB2HLvW7CoMoTkvoGvwrNMsY37WKTrlhdkvlM4+ZjhDFJmA7Fvg== + integrity: sha512-JtQNTJ+3C8w2t0wWYkQ3kw0Z+inh+MD52BI6zMnJxoM0306TiUFe4uGka7IW2ZrqECL8YqYJuBGKb+hXse8Ahg== tarball: 'file:projects/rush-stack-library-test.tgz' version: 0.0.0 'file:projects/rush-stack.tgz': @@ -10168,7 +10172,7 @@ packages: dev: false name: '@rush-temp/rush-stack' resolution: - integrity: sha512-dmgJ0rZyqzTHXYOJeZZ8cFKZjAQEEEr6FqK6IDxLQWigR1vfr54fi8RECTj/cpPK5mdswVos+iggmgMULkf/bg== + integrity: sha512-enGJF6aYwPQ8TGCFvMYLftgIWfCGx3vpuRsS4yjBvLWIQz5C/SLCjjM2ZwIPj+gORwFun2dvC5c000qSUZYbxA== tarball: 'file:projects/rush-stack.tgz' version: 0.0.0 'file:projects/rush.tgz': @@ -10186,7 +10190,7 @@ packages: dev: false name: '@rush-temp/rush' resolution: - integrity: sha512-Ku5PtYW3CuLZ4tP2A7ZHt73b6JwF8cUmUVTFt+u0AEUsj6x8LlUDD753ym7YF7VRS4NmFnRMq82OruR5vo95Lw== + integrity: sha512-WWSz7A5wg+IoSM7EuvZ4M+QyAdOthcQb5whmCFs/nRuwA8LyxuHBMondNvlfmkfqo3KUQCQbfoYU89eQn6zciQ== tarball: 'file:projects/rush.tgz' version: 0.0.0 'file:projects/rushell.tgz': @@ -10199,7 +10203,7 @@ packages: dev: false name: '@rush-temp/rushell' resolution: - integrity: sha512-7jCw0eDuwRaTMWGOQT9FvghZD3h/fFhMOAedkKX5Pa02V0iZ004gKG2iGjqqDDV+iDVA/zSq1n9gGffvOXBVtA== + integrity: sha512-4dhaLKToYCMwSa1Bs9he7cRmBKPQHUEDM7wEnF/J0GdTkNRV6ahHBWJBMVw06g2RhzLjS8jI321z6iwhguvAUw== tarball: 'file:projects/rushell.tgz' version: 0.0.0 'file:projects/set-webpack-public-path-plugin.tgz': @@ -10218,7 +10222,7 @@ packages: dev: false name: '@rush-temp/set-webpack-public-path-plugin' resolution: - integrity: sha512-iKD3qyrbX4XUvDDk4gx/seaV5ik9RiztZtFs4GlXRSokhc1eB+ys4p1kwGrorSTzo74rqrvL6rXu3qdTN1+Zvg== + integrity: sha512-u4nuQ6zyRoYBscuZ3aBJ5FFyntcgBnGdKsk9stWp0DcLLcorYq0sk0x8glNfsj/oxh+e3ZSlD/eYjgg9vpayQw== tarball: 'file:projects/set-webpack-public-path-plugin.tgz' version: 0.0.0 'file:projects/stream-collator.tgz': @@ -10233,7 +10237,7 @@ packages: dev: false name: '@rush-temp/stream-collator' resolution: - integrity: sha512-nuzyLGZi8F4KSbjHgNVHOPnud4UTQI2/xv0Ifqd5ZmOW2k6DWkfWQQlYIOG2FgUTODrFyI7SxWcWaf3+goTngA== + integrity: sha512-xJ0J92yOdooP8Hp8MV6jSqHwd3EhgSlR8zQWW2wiJLjFiJ05Y3ROIwg2T0JsNsfFr6cO1YDewcP0UZUCbYo4Cw== tarball: 'file:projects/stream-collator.tgz' version: 0.0.0 'file:projects/ts-command-line.tgz': @@ -10261,7 +10265,7 @@ packages: dev: false name: '@rush-temp/web-library-build-test' resolution: - integrity: sha512-yf1fgFgOPUZ6MhnlWqnyQPA4/6S0PRoAWrifgOa/Z/XGSojDzd9FrrBnPlFMPReOWpQWbwxWSixxG4b/LOdsUg== + integrity: sha512-+/QuHdF7xuWvIK6Of5AJhVHQMMw2rhWk7mM3M+iEha6PxEWzOeH3xBE26H3D/8TXAA04THd3/g5kVDt9QOkUYA== tarball: 'file:projects/web-library-build-test.tgz' version: 0.0.0 'file:projects/web-library-build.tgz': @@ -10273,7 +10277,7 @@ packages: dev: false name: '@rush-temp/web-library-build' resolution: - integrity: sha512-RoAmxMXPIBdlKi1qPZYxtD6yljSJpa7oGIqga+OO3AfdkeSc/mQUPHTJ7BuLe3j+x7iLtn/NLkCn94M+xfDHrQ== + integrity: sha512-LUZ4rr1ECDyOszmegauF0TyKTWAaSWOP6B0I20SIt8hc5U5kpYHN4U7DQ6bj4oxpiK2bl+V3EO1Yi8Jfj+BjAQ== tarball: 'file:projects/web-library-build.tgz' version: 0.0.0 registry: 'https://registry.npmjs.org/'