From bf49ed2d1de48405be30ade9674761a375bb0910 Mon Sep 17 00:00:00 2001 From: HarshaNalluru <10452642+HarshaNalluru@users.noreply.github.com> Date: Mon, 27 May 2019 13:43:34 -0700 Subject: [PATCH 1/6] Create the directories recursively incase they don't exist - for node --- .../storage-queue/test/utils/recorder.ts | 42 +++++++++++-------- 1 file changed, 25 insertions(+), 17 deletions(-) diff --git a/sdk/storage/storage-queue/test/utils/recorder.ts b/sdk/storage/storage-queue/test/utils/recorder.ts index 22f515d8c821..3bdbcdf5e287 100644 --- a/sdk/storage/storage-queue/test/utils/recorder.ts +++ b/sdk/storage/storage-queue/test/utils/recorder.ts @@ -1,4 +1,4 @@ -import fs from "fs"; +import fs from "fs-extra"; import nise from "nise"; import queryString from "query-string"; import { getUniqueName, isBrowser } from "../utils"; @@ -34,18 +34,13 @@ const skip = [ ]; abstract class Recorder { - protected readonly filepath: string; + protected readonly dirPath: string; + protected readonly fileName: string; public uniqueTestInfo: any = {}; constructor(env: string, testHierarchy: string, testTitle: string, ext: string) { - this.filepath = - env + - "/" + - this.formatPath(testHierarchy) + - "/recording_" + - this.formatPath(testTitle) + - "." + - ext; + this.dirPath = env + "/" + this.formatPath(testHierarchy); + this.fileName = "/recording_" + this.formatPath(testTitle) + "." + ext; } protected formatPath(path: string): string { @@ -61,7 +56,7 @@ abstract class Recorder { } public skip(): boolean { - return skip.includes(this.filepath); + return skip.includes(this.dirPath + this.fileName); } public abstract record(): void; @@ -81,16 +76,25 @@ class NockRecorder extends Recorder { } public playback(): void { - this.uniqueTestInfo = require("../recordings/" + this.filepath).testInfo; + this.uniqueTestInfo = require("../recordings/" + this.dirPath + this.fileName).testInfo; } public stop(): void { const importNock = "let nock = require('nock');\n"; const fixtures = nock.recorder.play(); + // Create the directories recursively incase they don't exist + try { + fs.ensureDirSync("./recordings/" + this.dirPath); + } catch (err) { + if (err.code !== "EEXIST") throw err; + } + // It's important to print writing errors because some tests end up catching them - const file = fs.createWriteStream("./recordings/" + this.filepath, { flags: "w" }); - file.on("error", (err) => { + const file = fs.createWriteStream("./recordings/" + this.dirPath + this.fileName, { + flags: "w" + }); + file.on("error", (err: any) => { console.log(err); throw err; }); @@ -202,8 +206,12 @@ class NiseRecorder extends Recorder { const self = this; const xhr = nise.fakeXhr.useFakeXMLHttpRequest(); - this.recordings = (window as any).__json__["recordings/" + this.filepath].recordings; - this.uniqueTestInfo = (window as any).__json__["recordings/" + this.filepath].uniqueTestInfo; + this.recordings = (window as any).__json__[ + "recordings/" + this.dirPath + this.fileName + ].recordings; + this.uniqueTestInfo = (window as any).__json__[ + "recordings/" + this.dirPath + this.fileName + ].uniqueTestInfo; xhr.onCreate = function(req: any) { const reqSend = req.send; @@ -246,7 +254,7 @@ class NiseRecorder extends Recorder { console.log( JSON.stringify({ writeFile: true, - path: "./recordings/" + this.filepath, + path: "./recordings/" + this.dirPath + this.fileName, content: { recordings: this.recordings, uniqueTestInfo: this.uniqueTestInfo } }) ); From 5938f6d701c308386f5ed548309e6d867fd7ffc6 Mon Sep 17 00:00:00 2001 From: HarshaNalluru <10452642+HarshaNalluru@users.noreply.github.com> Date: Mon, 27 May 2019 15:38:05 -0700 Subject: [PATCH 2/6] add fs-extra as a dev dependency --- sdk/storage/storage-queue/package.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sdk/storage/storage-queue/package.json b/sdk/storage/storage-queue/package.json index 24ef18d08cba..44ffb5bcc296 100644 --- a/sdk/storage/storage-queue/package.json +++ b/sdk/storage/storage-queue/package.json @@ -22,6 +22,7 @@ "devDependencies": { "@microsoft/api-extractor": "^7.1.5", "@types/dotenv": "^6.1.0", + "@types/fs-extra": "~7.0.0", "@types/mocha": "^5.2.5", "@types/nise": "^1.4.0", "@types/nock": "^10.0.1", @@ -30,6 +31,7 @@ "cross-env": "^5.2.0", "dotenv": "^7.0.0", "es6-promise": "^4.2.5", + "fs-extra": "~8.0.1", "gulp": "^4.0.0", "gulp-zip": "^4.2.0", "inherits": "^2.0.3", From 1c81bca9fba45deb7139af5352d723b96e5d3aa6 Mon Sep 17 00:00:00 2001 From: HarshaNalluru <10452642+HarshaNalluru@users.noreply.github.com> Date: Mon, 27 May 2019 15:38:31 -0700 Subject: [PATCH 3/6] committing pnpm-lock.yaml --- common/config/rush/pnpm-lock.yaml | 230 +++++++++++++++++------------- 1 file changed, 132 insertions(+), 98 deletions(-) diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index ddf0a94e8bdf..1a918a911894 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -4,7 +4,7 @@ dependencies: '@azure/ms-rest-azure-js': 1.3.5 '@azure/ms-rest-js': 1.8.7 '@azure/ms-rest-nodeauth': 0.9.3 - '@microsoft/api-extractor': 7.1.5 + '@microsoft/api-extractor': 7.1.6 '@rush-temp/amqp-common': 'file:projects/amqp-common.tgz' '@rush-temp/cosmos': 'file:projects/cosmos.tgz' '@rush-temp/event-hubs': 'file:projects/event-hubs.tgz' @@ -22,6 +22,7 @@ dependencies: '@types/chai-string': 1.4.1 '@types/debug': 0.0.31 '@types/dotenv': 6.1.1 + '@types/fs-extra': 7.0.0 '@types/is-buffer': 2.0.0 '@types/jssha': 2.0.0 '@types/long': 4.0.0 @@ -61,6 +62,7 @@ dependencies: eslint-plugin-promise: 4.1.1 events: 3.0.0 execa: 1.0.0 + fs-extra: 8.0.1 gulp: 4.0.2 gulp-zip: 4.2.0 https-proxy-agent: 2.2.1 @@ -101,7 +103,7 @@ dependencies: rhea: 1.0.7 rhea-promise: 0.1.15 rimraf: 2.6.3 - rollup: 1.12.3 + rollup: 1.12.4 rollup-plugin-commonjs: 9.3.4 rollup-plugin-inject: 2.2.0 rollup-plugin-json: 3.1.0 @@ -284,19 +286,19 @@ packages: dev: false resolution: integrity: sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ== - /@microsoft/api-extractor-model/7.1.0: + /@microsoft/api-extractor-model/7.1.1: dependencies: '@microsoft/node-core-library': 3.13.0 '@microsoft/tsdoc': 0.12.9 '@types/node': 8.5.8 dev: false resolution: - integrity: sha512-DvaJ1fEpwega9TVMR4xR0jeNV/9JHNMxN/t8TuBftZHSLZzTczh8HyqyFxKo2IwDDCoZy5FmXZsq/vo5JQvRMQ== - /@microsoft/api-extractor/7.1.5: + integrity: sha512-RiQJA8JpBbRxqUfro8SxZGLjeCFH8HUUJvD5VTUrDrgdt13omx7d0bsGN0lf+AT63yF+RX4R2+Jd2b0SaAO/sQ== + /@microsoft/api-extractor/7.1.6: dependencies: - '@microsoft/api-extractor-model': 7.1.0 + '@microsoft/api-extractor-model': 7.1.1 '@microsoft/node-core-library': 3.13.0 - '@microsoft/ts-command-line': 4.2.4 + '@microsoft/ts-command-line': 4.2.5 '@microsoft/tsdoc': 0.12.9 colors: 1.2.5 lodash: 4.17.11 @@ -306,7 +308,7 @@ packages: dev: false hasBin: true resolution: - integrity: sha512-MalxwkoaIKIc9vHMHFuGnM8egVNKBVI4OUr5Af97KvkO4NsshaHylIBvmxGtqM03G7ch1C3BL2oAF79a6TaFPw== + integrity: sha512-0oXmPnJyc7OXA/+TKHUPW/HWG9qLhjoz5uAvKoI/9csnH5a0mzO+5k1LitPhY/O0rWPz5lghX16JnSm6G4mJ2Q== /@microsoft/node-core-library/3.13.0: dependencies: '@types/fs-extra': 5.0.4 @@ -320,7 +322,7 @@ packages: dev: false resolution: integrity: sha512-mnsL/1ikVWHl8sPNssavaAgtUaIM3hkQ8zeySuApU5dNmsMPzovJPfx9m5JGiMvs1v5QNAIVeiS9jnWwe/7anw== - /@microsoft/ts-command-line/4.2.4: + /@microsoft/ts-command-line/4.2.5: dependencies: '@types/argparse': 1.0.33 '@types/node': 8.5.8 @@ -328,7 +330,7 @@ packages: colors: 1.2.5 dev: false resolution: - integrity: sha512-aRKhg+Tpxx4PSRYzFmv+bMsoMFi2joE6tONlTHB2MER1mivS0qb8uJh1SvrjzeshD6sASlaQxgADRIdHyXBCWw== + integrity: sha512-QyTfbfpx6o+1cnjx5GubqKSRMDxBBMXABSa8wmqRa/A1K99FEBZfLIO6GmaY0s7rNYEchfR1VcVS/hV2VW+6hw== /@microsoft/tsdoc/0.12.9: dev: false resolution: @@ -406,6 +408,12 @@ packages: dev: false resolution: integrity: sha512-DsknoBvD8s+RFfSGjmERJ7ZOP1HI0UZRA3FSI+Zakhrc/Gy26YQsLI+m5V5DHxroHRJqCDLKJp7Hixn8zyaF7g== + /@types/fs-extra/7.0.0: + dependencies: + '@types/node': 8.10.48 + dev: false + resolution: + integrity: sha512-ndoMMbGyuToTy4qB6Lex/inR98nPiNHacsgMPvy+zqMLgSxbt8VtWpDArpGp69h1fEDQHn1KB+9DWD++wgbwYA== /@types/is-buffer/2.0.0: dependencies: '@types/node': 8.10.48 @@ -780,7 +788,7 @@ packages: /adal-node/0.1.28: dependencies: '@types/node': 8.10.48 - async: 3.0.0 + async: 3.0.1 date-utils: 1.2.21 jws: 3.2.2 request: 2.88.0 @@ -1163,10 +1171,10 @@ packages: dev: false resolution: integrity: sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg== - /async/3.0.0: + /async/3.0.1: dev: false resolution: - integrity: sha512-LNZ6JSpKraIia6VZKKbKxmX6nWIdfsG7WqrOvKpCuDjH7BnGyQRFMTSXEe8to2WF/rqoAKgZvj+L5nnxe0suAg== + integrity: sha512-ZswD8vwPtmBZzbn9xyi8XBQWXH3AvOQ43Za1KWYq7JeycrZuUYzx01KvHcVbXltjqH4y0MWrQ33008uLTqXuDw== /asynckit/0.4.0: dev: false resolution: @@ -1295,10 +1303,10 @@ packages: dev: false resolution: integrity: sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig== - /bluebird/3.5.4: + /bluebird/3.5.5: dev: false resolution: - integrity: sha512-FG+nFEZChJrbQ9tIccIfZJBz3J7mLrAhxakAbnrJWn8d7aKOC+LWifa0G+p4ZqKp4y13T7juYvdhq9NzKdsrjw== + integrity: sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w== /bn.js/4.11.8: dev: false resolution: @@ -1489,7 +1497,7 @@ packages: integrity: sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== /cacache/11.3.2: dependencies: - bluebird: 3.5.4 + bluebird: 3.5.5 chownr: 1.1.1 figgy-pudding: 3.5.1 glob: 7.1.4 @@ -1527,7 +1535,7 @@ packages: hasha: 3.0.0 make-dir: 2.1.0 package-hash: 3.0.0 - write-file-atomic: 2.4.2 + write-file-atomic: 2.4.3 dev: false engines: node: '>=6' @@ -1668,14 +1676,14 @@ packages: dev: false resolution: integrity: sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g== - /chrome-trace-event/1.0.0: + /chrome-trace-event/1.0.2: dependencies: tslib: 1.9.3 dev: false engines: node: '>=6.0' resolution: - integrity: sha512-xDbVgyfDTT2piup/h8dK/y4QZfJRSa73bw1WZ8b4XM1o7fsFubUVGYcE+1ANtOzJJELGpYoG2961z0Z6OAld9A== + integrity: sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ== /cipher-base/1.0.4: dependencies: inherits: 2.0.3 @@ -1746,14 +1754,14 @@ packages: node: '>=0.8' resolution: integrity: sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= - /cloneable-readable/1.1.2: + /cloneable-readable/1.1.3: dependencies: inherits: 2.0.3 process-nextick-args: 2.0.0 readable-stream: 2.3.6 dev: false resolution: - integrity: sha512-Bq6+4t+lbM8vhTs/Bef5c5AdEMtapp/iFb6+s4/Hh9MVTt8OLKH7ZOOZSCT+Ys7hsHvqv0GuMPJ1lnQJVHvxpg== + integrity: sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ== /code-point-at/1.1.0: dev: false engines: @@ -1920,10 +1928,10 @@ packages: dev: false resolution: integrity: sha512-7cjuUME+p+S3HZlbllgsn2CDwS+5eCCX16qBgNC4jgSTf49qR1VKy/Zhl400m0IQXl/bPGEVqncgUUMjrr4s8A== - /core-js/2.6.8: + /core-js/2.6.9: dev: false resolution: - integrity: sha512-RWlREFU74TEkdXzyl1bka66O3kYp8jeTXrvJZDzVVMH8AiHUSOFpL1yfhQJ+wHocAm1m+4971W1PPzfLuCv1vg== + integrity: sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A== /core-util-is/1.0.2: dev: false resolution: @@ -2648,10 +2656,10 @@ packages: dev: false resolution: integrity: sha512-XpCnW/AE10ws/kDAs37cngSkvgIR8aN3G0MS85m7dUpuK2EREo9VJ00uvw6Dg/hXEpfsE1I1TvJOJr+Z+TL+ig== - /estree-walker/0.6.0: + /estree-walker/0.6.1: dev: false resolution: - integrity: sha512-peq1RfVAVzr3PU/jL31RaOjUKLoZJpObQWJJ+LgfcxDUifyLZ1RjPQZTl0pzj2uJ45b7A7XpyppXvxdEqzo4rw== + integrity: sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w== /esutils/2.0.2: dev: false engines: @@ -3047,6 +3055,16 @@ packages: node: '>=6 <7 || >=8' resolution: integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== + /fs-extra/8.0.1: + dependencies: + graceful-fs: 4.1.15 + jsonfile: 4.0.0 + universalify: 0.1.2 + dev: false + engines: + node: '>=6 <7 || >=8' + resolution: + integrity: sha512-W+XLrggcDzlle47X/XnS7FXrXu9sDo+Ze9zpndeBxdgv88FHLm1HtmkhEwavruS6koanBjp098rUpHs65EmG7A== /fs-mkdirp-stream/1.0.0: dependencies: graceful-fs: 4.1.15 @@ -4265,13 +4283,13 @@ packages: integrity: sha512-FM5h8eHcHbMMR+2INBUxD+4+wUbkCnobfn5uWprkLyj6Xcm2MRFQOuAJn9h2H13nNso6rk+QoNpHd5xCevlPOw== /karma/4.1.0: dependencies: - bluebird: 3.5.4 + bluebird: 3.5.5 body-parser: 1.19.0 braces: 2.3.2 chokidar: 2.1.6 colors: 1.3.3 connect: 3.7.0 - core-js: 2.6.8 + core-js: 2.6.9 di: 0.0.1 dom-serialize: 2.2.1 flatted: 2.0.0 @@ -5742,10 +5760,10 @@ packages: dev: false resolution: integrity: sha1-8FKijacOYYkX7wqKw0wa5aaChrM= - /psl/1.1.31: + /psl/1.1.32: dev: false resolution: - integrity: sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw== + integrity: sha512-MHACAkHpihU/REGGPLj4sEfc/XKW2bheigvHO1dUqjaKigMp1C8+WLQYRGgeKFMsw5PMfegZcaN8IDXK/cD0+g== /public-encrypt/4.0.3: dependencies: bn.js: 4.11.8 @@ -6225,7 +6243,7 @@ packages: integrity: sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== /rollup-plugin-commonjs/9.3.4: dependencies: - estree-walker: 0.6.0 + estree-walker: 0.6.1 magic-string: 0.25.2 resolve: 1.11.0 rollup-pluginutils: 2.7.1 @@ -6234,12 +6252,12 @@ packages: rollup: '>=0.56.0' resolution: integrity: sha512-DTZOvRoiVIHHLFBCL4pFxOaJt8pagxsVldEXBOn6wl3/V21wVaj17HFfyzTsQUuou3sZL3lEJZVWKPFblJfI6w== - /rollup-plugin-commonjs/9.3.4_rollup@1.12.3: + /rollup-plugin-commonjs/9.3.4_rollup@1.12.4: dependencies: - estree-walker: 0.6.0 + estree-walker: 0.6.1 magic-string: 0.25.2 resolve: 1.11.0 - rollup: 1.12.3 + rollup: 1.12.4 rollup-pluginutils: 2.7.1 dev: false peerDependencies: @@ -6309,9 +6327,9 @@ packages: rollup: '>=0.31.2' resolution: integrity: sha1-YhJaqUCHqt97g+9N+vYptHMTXoc= - /rollup-plugin-sourcemaps/0.4.2_rollup@1.12.3: + /rollup-plugin-sourcemaps/0.4.2_rollup@1.12.4: dependencies: - rollup: 1.12.3 + rollup: 1.12.4 rollup-pluginutils: 2.7.1 source-map-resolve: 0.5.2 dev: false @@ -6333,11 +6351,11 @@ packages: rollup: '>=0.66.0 <2' resolution: integrity: sha512-wPANT5XKVJJ8RDUN0+wIr7UPd0lIXBo4UdJ59VmlPCtlFsE20AM+14pe+tk7YunCsWEiuzkDBY3QIkSCjtrPXg== - /rollup-plugin-terser/4.0.4_rollup@1.12.3: + /rollup-plugin-terser/4.0.4_rollup@1.12.4: dependencies: '@babel/code-frame': 7.0.0 jest-worker: 24.6.0 - rollup: 1.12.3 + rollup: 1.12.4 serialize-javascript: 1.7.0 terser: 3.17.0 dev: false @@ -6356,11 +6374,11 @@ packages: rollup: '>=0.66.0 <2' resolution: integrity: sha512-qwz2Tryspn5QGtPUowq5oumKSxANKdrnfz7C0jm4lKxvRDsNe/hSGsB9FntUul7UeC4TsZEWKErVgE1qWSO0gw== - /rollup-plugin-uglify/6.0.2_rollup@1.12.3: + /rollup-plugin-uglify/6.0.2_rollup@1.12.4: dependencies: '@babel/code-frame': 7.0.0 jest-worker: 24.6.0 - rollup: 1.12.3 + rollup: 1.12.4 serialize-javascript: 1.7.0 uglify-js: 3.5.15 dev: false @@ -6381,11 +6399,11 @@ packages: rollup: '>=0.60.0' resolution: integrity: sha512-7xkSKp+dyJmSC7jg2LXqViaHuOnF1VvIFCnsZEKjrgT5ZVyiLLSbeszxFcQSfNJILphqgAEmWAUz0Z4xYScrRw== - /rollup-plugin-visualizer/1.1.1_rollup@1.12.3: + /rollup-plugin-visualizer/1.1.1_rollup@1.12.4: dependencies: mkdirp: 0.5.1 opn: 5.5.0 - rollup: 1.12.3 + rollup: 1.12.4 source-map: 0.7.3 typeface-oswald: 0.0.54 dev: false @@ -6397,12 +6415,12 @@ packages: integrity: sha512-7xkSKp+dyJmSC7jg2LXqViaHuOnF1VvIFCnsZEKjrgT5ZVyiLLSbeszxFcQSfNJILphqgAEmWAUz0Z4xYScrRw== /rollup-pluginutils/2.7.1: dependencies: - estree-walker: 0.6.0 + estree-walker: 0.6.1 micromatch: 3.1.10 dev: false resolution: integrity: sha512-3nRf3buQGR9qz/IsSzhZAJyoK663kzseps8itkYHr+Z7ESuaffEPfgRinxbCRA0pf0gzLqkNKkSb8aNVTq75NA== - /rollup/1.12.3: + /rollup/1.12.4: dependencies: '@types/estree': 0.0.39 '@types/node': 12.0.2 @@ -6410,7 +6428,7 @@ packages: dev: false hasBin: true resolution: - integrity: sha512-ueWhPijWN+GaPgD3l77hXih/gcDXmYph6sWeQegwBYtaqAE834e8u+MC2wT6FKIUsz1DBOyOXAQXUZB+rjWDoQ== + integrity: sha512-sHg0F05oTMJzM592MWU8irsPx8LIFMKSCnEkcp6vp/gnj+oJ9GJEBW9hl8jUqy2L6Q2uUxFzPgvoExLbfuSODA== /run-async/2.3.0: dependencies: is-promise: 2.1.0 @@ -7020,15 +7038,16 @@ packages: node: '>=6' resolution: integrity: sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== - /terser-webpack-plugin/1.2.4: + /terser-webpack-plugin/1.3.0: dependencies: cacache: 11.3.2 find-cache-dir: 2.1.0 is-wsl: 1.1.0 + loader-utils: 1.2.3 schema-utils: 1.0.0 serialize-javascript: 1.7.0 source-map: 0.6.1 - terser: 3.17.0 + terser: 4.0.0 webpack-sources: 1.3.0 worker-farm: 1.7.0 dev: false @@ -7037,7 +7056,7 @@ packages: peerDependencies: webpack: ^4.0.0 resolution: - integrity: sha512-64IiILNQlACWZLzFlpzNaG0bpQ4ytaB7fwOsbpsdIV70AfLUmIGGeuKL0YV2WmtcrURjE2aOvHD4/lrFV3Rg+Q== + integrity: sha512-W2YWmxPjjkUcOWa4pBEv4OP4er1aeQJlSo2UhtCFQCuRXEHjOFscO8VyWHj9JLlA0RzQb8Y2/Ta78XZvT54uGg== /terser/3.17.0: dependencies: commander: 2.20.0 @@ -7049,6 +7068,17 @@ packages: hasBin: true resolution: integrity: sha512-/FQzzPJmCpjAH9Xvk2paiWrFq+5M6aVOf+2KRbwhByISDX/EujxsK+BAvrhb6H+2rtrLCHK9N01wO014vrIwVQ== + /terser/4.0.0: + dependencies: + commander: 2.20.0 + source-map: 0.6.1 + source-map-support: 0.5.12 + dev: false + engines: + node: '>=6.0.0' + hasBin: true + resolution: + integrity: sha512-dOapGTU0hETFl1tCo4t56FN+2jffoKyER9qBGoUFyZ6y7WLoKT0bF+lAYi6B6YsILcGF3q1C2FBh8QcKSCgkgA== /test-exclude/5.2.3: dependencies: glob: 7.1.4 @@ -7178,7 +7208,7 @@ packages: integrity: sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== /tough-cookie/2.4.3: dependencies: - psl: 1.1.31 + psl: 1.1.32 punycode: 1.4.1 dev: false engines: @@ -7187,7 +7217,7 @@ packages: integrity: sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ== /tough-cookie/2.5.0: dependencies: - psl: 1.1.31 + psl: 1.1.32 punycode: 2.1.1 dev: false engines: @@ -7636,7 +7666,7 @@ packages: clone: 2.1.2 clone-buffer: 1.0.0 clone-stats: 1.0.0 - cloneable-readable: 1.1.2 + cloneable-readable: 1.1.3 remove-trailing-separator: 1.1.0 replace-ext: 1.0.0 dev: false @@ -7730,7 +7760,7 @@ packages: acorn-dynamic-import: 4.0.0_acorn@6.1.1 ajv: 6.10.0 ajv-keywords: 3.4.0_ajv@6.10.0 - chrome-trace-event: 1.0.0 + chrome-trace-event: 1.0.2 enhanced-resolve: 4.1.0 eslint-scope: 4.0.3 json-parse-better-errors: 1.0.2 @@ -7743,7 +7773,7 @@ packages: node-libs-browser: 2.2.0 schema-utils: 1.0.0 tapable: 1.1.3 - terser-webpack-plugin: 1.2.4 + terser-webpack-plugin: 1.3.0 watchpack: 1.6.0 webpack-sources: 1.3.0 dev: false @@ -7806,14 +7836,14 @@ packages: dev: false resolution: integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= - /write-file-atomic/2.4.2: + /write-file-atomic/2.4.3: dependencies: graceful-fs: 4.1.15 imurmurhash: 0.1.4 signal-exit: 3.0.2 dev: false resolution: - integrity: sha512-s0b6vB3xIVRLWywa6X9TOMA7k9zio0TMOsl9ZnDkliA/cfJlpHXAscj0gbHVJiTdIuAYpIyqS5GW91fqm6gG5g== + integrity: sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ== /write/1.0.3: dependencies: mkdirp: 0.5.1 @@ -8069,8 +8099,8 @@ packages: rhea: 1.0.7 rhea-promise: 0.1.15 rimraf: 2.6.3 - rollup: 1.12.3 - rollup-plugin-commonjs: 9.3.4_rollup@1.12.3 + rollup: 1.12.4 + rollup-plugin-commonjs: 9.3.4_rollup@1.12.4 rollup-plugin-inject: 2.2.0 rollup-plugin-json: 3.1.0 rollup-plugin-multi-entry: 2.1.0 @@ -8078,8 +8108,8 @@ packages: rollup-plugin-node-resolve: 4.2.4 rollup-plugin-replace: 2.2.0 rollup-plugin-shim: 1.0.0 - rollup-plugin-sourcemaps: 0.4.2_rollup@1.12.3 - rollup-plugin-uglify: 6.0.2_rollup@1.12.3 + rollup-plugin-sourcemaps: 0.4.2_rollup@1.12.4 + rollup-plugin-uglify: 6.0.2_rollup@1.12.4 sinon: 7.3.2 stream-browserify: 2.0.2 ts-node: 7.0.1 @@ -8134,7 +8164,7 @@ packages: 'file:projects/event-hubs.tgz': dependencies: '@azure/ms-rest-nodeauth': 0.9.3 - '@microsoft/api-extractor': 7.1.5 + '@microsoft/api-extractor': 7.1.6 '@types/async-lock': 1.1.1 '@types/chai': 4.1.7 '@types/chai-as-promised': 7.1.0 @@ -8163,14 +8193,14 @@ packages: prettier: 1.17.1 rhea-promise: 0.1.15 rimraf: 2.6.3 - rollup: 1.12.3 - rollup-plugin-commonjs: 9.3.4_rollup@1.12.3 + rollup: 1.12.4 + rollup-plugin-commonjs: 9.3.4_rollup@1.12.4 rollup-plugin-json: 3.1.0 rollup-plugin-multi-entry: 2.1.0 rollup-plugin-node-resolve: 4.2.4 rollup-plugin-replace: 2.2.0 - rollup-plugin-sourcemaps: 0.4.2_rollup@1.12.3 - rollup-plugin-uglify: 6.0.2_rollup@1.12.3 + rollup-plugin-sourcemaps: 0.4.2_rollup@1.12.4 + rollup-plugin-uglify: 6.0.2_rollup@1.12.4 ts-node: 7.0.1 tslib: 1.9.3 tslint: 5.16.0_typescript@3.4.5 @@ -8186,7 +8216,7 @@ packages: 'file:projects/event-processor-host.tgz': dependencies: '@azure/event-hubs': 1.0.8 - '@microsoft/api-extractor': 7.1.5 + '@microsoft/api-extractor': 7.1.6 '@types/async-lock': 1.1.1 '@types/chai': 4.1.7 '@types/chai-as-promised': 7.1.0 @@ -8212,14 +8242,14 @@ packages: path-browserify: 1.0.0 prettier: 1.17.1 rimraf: 2.6.3 - rollup: 1.12.3 - rollup-plugin-commonjs: 9.3.4_rollup@1.12.3 + rollup: 1.12.4 + rollup-plugin-commonjs: 9.3.4_rollup@1.12.4 rollup-plugin-json: 3.1.0 rollup-plugin-multi-entry: 2.1.0 rollup-plugin-node-resolve: 4.2.4 rollup-plugin-replace: 2.2.0 - rollup-plugin-sourcemaps: 0.4.2_rollup@1.12.3 - rollup-plugin-uglify: 6.0.2_rollup@1.12.3 + rollup-plugin-sourcemaps: 0.4.2_rollup@1.12.4 + rollup-plugin-uglify: 6.0.2_rollup@1.12.4 ts-node: 7.0.1 tslib: 1.9.3 tslint: 5.16.0_typescript@3.4.5 @@ -8240,7 +8270,7 @@ packages: chai: 4.2.0 prettier: 1.17.1 rimraf: 2.6.3 - rollup: 1.12.3 + rollup: 1.12.4 rollup-plugin-node-resolve: 4.2.4 tslib: 1.9.3 typescript: 3.4.5 @@ -8255,7 +8285,7 @@ packages: dependencies: '@azure/arm-servicebus': 0.1.0 '@azure/ms-rest-nodeauth': 0.9.3 - '@microsoft/api-extractor': 7.1.5 + '@microsoft/api-extractor': 7.1.6 '@types/async-lock': 1.1.1 '@types/chai': 4.1.7 '@types/chai-as-promised': 7.1.0 @@ -8305,16 +8335,16 @@ packages: rhea: 1.0.7 rhea-promise: 0.1.15 rimraf: 2.6.3 - rollup: 1.12.3 - rollup-plugin-commonjs: 9.3.4_rollup@1.12.3 + rollup: 1.12.4 + rollup-plugin-commonjs: 9.3.4_rollup@1.12.4 rollup-plugin-inject: 2.2.0 rollup-plugin-json: 3.1.0 rollup-plugin-multi-entry: 2.1.0 rollup-plugin-node-resolve: 4.2.4 rollup-plugin-replace: 2.2.0 rollup-plugin-shim: 1.0.0 - rollup-plugin-sourcemaps: 0.4.2_rollup@1.12.3 - rollup-plugin-terser: 4.0.4_rollup@1.12.3 + rollup-plugin-sourcemaps: 0.4.2_rollup@1.12.4 + rollup-plugin-terser: 4.0.4_rollup@1.12.4 ts-node: 7.0.1 tslib: 1.9.3 tslint: 5.16.0_typescript@3.4.5 @@ -8329,7 +8359,7 @@ packages: 'file:projects/storage-blob.tgz': dependencies: '@azure/ms-rest-js': 1.8.7 - '@microsoft/api-extractor': 7.1.5 + '@microsoft/api-extractor': 7.1.6 '@types/dotenv': 6.1.1 '@types/mocha': 5.2.6 '@types/node': 8.10.48 @@ -8359,15 +8389,15 @@ packages: prettier: 1.17.1 puppeteer: 1.17.0 rimraf: 2.6.3 - rollup: 1.12.3 - rollup-plugin-commonjs: 9.3.4_rollup@1.12.3 + rollup: 1.12.4 + rollup-plugin-commonjs: 9.3.4_rollup@1.12.4 rollup-plugin-multi-entry: 2.1.0 rollup-plugin-node-resolve: 4.2.4 rollup-plugin-replace: 2.2.0 rollup-plugin-shim: 1.0.0 - rollup-plugin-sourcemaps: 0.4.2_rollup@1.12.3 - rollup-plugin-uglify: 6.0.2_rollup@1.12.3 - rollup-plugin-visualizer: 1.1.1_rollup@1.12.3 + rollup-plugin-sourcemaps: 0.4.2_rollup@1.12.4 + rollup-plugin-uglify: 6.0.2_rollup@1.12.4 + rollup-plugin-visualizer: 1.1.1_rollup@1.12.4 source-map-support: 0.5.12 ts-node: 7.0.1 tslib: 1.9.3 @@ -8382,7 +8412,7 @@ packages: 'file:projects/storage-file.tgz': dependencies: '@azure/ms-rest-js': 1.8.7 - '@microsoft/api-extractor': 7.1.5 + '@microsoft/api-extractor': 7.1.6 '@types/dotenv': 6.1.1 '@types/mocha': 5.2.6 '@types/node': 8.10.48 @@ -8412,15 +8442,15 @@ packages: prettier: 1.17.1 puppeteer: 1.17.0 rimraf: 2.6.3 - rollup: 1.12.3 - rollup-plugin-commonjs: 9.3.4_rollup@1.12.3 + rollup: 1.12.4 + rollup-plugin-commonjs: 9.3.4_rollup@1.12.4 rollup-plugin-multi-entry: 2.1.0 rollup-plugin-node-resolve: 4.2.4 rollup-plugin-replace: 2.2.0 rollup-plugin-shim: 1.0.0 - rollup-plugin-sourcemaps: 0.4.2_rollup@1.12.3 - rollup-plugin-uglify: 6.0.2_rollup@1.12.3 - rollup-plugin-visualizer: 1.1.1_rollup@1.12.3 + rollup-plugin-sourcemaps: 0.4.2_rollup@1.12.4 + rollup-plugin-uglify: 6.0.2_rollup@1.12.4 + rollup-plugin-visualizer: 1.1.1_rollup@1.12.4 source-map-support: 0.5.12 ts-node: 7.0.1 tslib: 1.9.3 @@ -8435,8 +8465,9 @@ packages: 'file:projects/storage-queue.tgz': dependencies: '@azure/ms-rest-js': 1.8.7 - '@microsoft/api-extractor': 7.1.5 + '@microsoft/api-extractor': 7.1.6 '@types/dotenv': 6.1.1 + '@types/fs-extra': 7.0.0 '@types/mocha': 5.2.6 '@types/nise': 1.4.0 '@types/nock': 10.0.3 @@ -8445,6 +8476,7 @@ packages: cross-env: 5.2.0 dotenv: 7.0.0 es6-promise: 4.2.6 + fs-extra: 8.0.1 gulp: 4.0.2 gulp-zip: 4.2.0 inherits: 2.0.3 @@ -8471,15 +8503,15 @@ packages: puppeteer: 1.17.0 query-string: 6.5.0 rimraf: 2.6.3 - rollup: 1.12.3 - rollup-plugin-commonjs: 9.3.4_rollup@1.12.3 + rollup: 1.12.4 + rollup-plugin-commonjs: 9.3.4_rollup@1.12.4 rollup-plugin-multi-entry: 2.1.0 rollup-plugin-node-resolve: 4.2.4 rollup-plugin-replace: 2.2.0 rollup-plugin-shim: 1.0.0 - rollup-plugin-sourcemaps: 0.4.2_rollup@1.12.3 - rollup-plugin-uglify: 6.0.2_rollup@1.12.3 - rollup-plugin-visualizer: 1.1.1_rollup@1.12.3 + rollup-plugin-sourcemaps: 0.4.2_rollup@1.12.4 + rollup-plugin-uglify: 6.0.2_rollup@1.12.4 + rollup-plugin-visualizer: 1.1.1_rollup@1.12.4 source-map-support: 0.5.12 ts-node: 7.0.1 tslib: 1.9.3 @@ -8488,7 +8520,7 @@ packages: dev: false name: '@rush-temp/storage-queue' resolution: - integrity: sha512-854E1/uLWyV16hI3FCreugc3vqtJDY4VG2sdLs9/77405NoCzU1gVhnKGbpnz1QDJ1EtsH7/4hv8G25ggLVzNg== + integrity: sha512-WwpLLyojoiww1lZ7IH6LX8Ymkhmhgs4VibedxhLBewAQ2tDx5wdjLNDoCyyxqD+2dKKlvcfoHvwYE88Hzz7wew== tarball: 'file:projects/storage-queue.tgz' version: 0.0.0 'file:projects/template.tgz': @@ -8508,15 +8540,15 @@ packages: mocha-multi: 1.1.0_mocha@5.2.0 prettier: 1.17.1 rimraf: 2.6.3 - rollup: 1.12.3 - rollup-plugin-commonjs: 9.3.4_rollup@1.12.3 + rollup: 1.12.4 + rollup-plugin-commonjs: 9.3.4_rollup@1.12.4 rollup-plugin-json: 3.1.0 rollup-plugin-multi-entry: 2.1.0 rollup-plugin-node-resolve: 4.2.4 rollup-plugin-replace: 2.2.0 - rollup-plugin-sourcemaps: 0.4.2_rollup@1.12.3 - rollup-plugin-uglify: 6.0.2_rollup@1.12.3 - rollup-plugin-visualizer: 1.1.1_rollup@1.12.3 + rollup-plugin-sourcemaps: 0.4.2_rollup@1.12.4 + rollup-plugin-uglify: 6.0.2_rollup@1.12.4 + rollup-plugin-visualizer: 1.1.1_rollup@1.12.4 tslib: 1.9.3 typescript: 3.4.5 util: 0.11.1 @@ -8576,6 +8608,7 @@ specifiers: '@types/chai-string': ^1.4.1 '@types/debug': ^0.0.31 '@types/dotenv': ^6.1.0 + '@types/fs-extra': ~7.0.0 '@types/is-buffer': ^2.0.0 '@types/jssha': ^2.0.0 '@types/long': ^4.0.0 @@ -8615,6 +8648,7 @@ specifiers: eslint-plugin-promise: ^4.1.1 events: ^3.0.0 execa: 1.0.0 + fs-extra: ~8.0.1 gulp: ^4.0.0 gulp-zip: ^4.2.0 https-proxy-agent: ^2.2.1 From 2bb6278ff24b809e4a7f10ed5fa3288b9cec75b8 Mon Sep 17 00:00:00 2001 From: HarshaNalluru <10452642+HarshaNalluru@users.noreply.github.com> Date: Mon, 27 May 2019 15:40:15 -0700 Subject: [PATCH 4/6] Recordings - Update karma.conf to automate `dir`s creation --- sdk/storage/storage-queue/karma.conf.js | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/sdk/storage/storage-queue/karma.conf.js b/sdk/storage/storage-queue/karma.conf.js index 6c257bd4a0f7..9f0b942eab33 100644 --- a/sdk/storage/storage-queue/karma.conf.js +++ b/sdk/storage/storage-queue/karma.conf.js @@ -2,7 +2,7 @@ process.env.CHROME_BIN = require("puppeteer").executablePath(); require("dotenv").config({ path: "../.env" }); -module.exports = function (config) { +module.exports = function(config) { config.set({ // base path that will be used to resolve all patterns (eg. files, exclude) basePath: "./", @@ -85,8 +85,15 @@ module.exports = function (config) { jsonToFileReporter: { filter: function(obj) { if (obj.writeFile) { - const fs = require("fs"); - fs.writeFile(obj.path, JSON.stringify(obj.content, null, " "), err => { + const fs = require("fs-extra"); + // Create the directories recursively incase they don't exist + try { + // Stripping away the filename from the file path and retaining the directory structure + fs.ensureDirSync(obj.path.substring(0, obj.path.lastIndexOf("/") + 1)); + } catch (err) { + if (err.code !== "EEXIST") throw err; + } + fs.writeFile(obj.path, JSON.stringify(obj.content, null, " "), (err) => { if (err) { throw err; } From bb93de21ba5536d7ea307e6ada1d3d67ab900b61 Mon Sep 17 00:00:00 2001 From: HarshaNalluru <10452642+HarshaNalluru@users.noreply.github.com> Date: Mon, 27 May 2019 15:41:16 -0700 Subject: [PATCH 5/6] mark fs-extra as an external dep, won't be bundled --- sdk/storage/storage-queue/rollup.base.config.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sdk/storage/storage-queue/rollup.base.config.js b/sdk/storage/storage-queue/rollup.base.config.js index 7d40f05230e8..d676da37d022 100644 --- a/sdk/storage/storage-queue/rollup.base.config.js +++ b/sdk/storage/storage-queue/rollup.base.config.js @@ -113,6 +113,8 @@ export function browserConfig(test = false, production = false) { baseConfig.input = ["dist-esm/test/*.spec.js", "dist-esm/test/browser/*.spec.js"]; baseConfig.plugins.unshift(multiEntry({ exports: false })); baseConfig.output.file = "dist-test/index.browser.js"; + // mark fs-extra as external + baseConfig.external = ["fs-extra"]; baseConfig.context = "null"; } else if (production) { From b7093792369b27ed827a08e21d1598099bef91e1 Mon Sep 17 00:00:00 2001 From: HarshaNalluru <10452642+HarshaNalluru@users.noreply.github.com> Date: Mon, 27 May 2019 15:48:13 -0700 Subject: [PATCH 6/6] dirpath + filename -> filepath --- .../storage-queue/test/utils/recorder.ts | 34 +++++++++++-------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/sdk/storage/storage-queue/test/utils/recorder.ts b/sdk/storage/storage-queue/test/utils/recorder.ts index 3bdbcdf5e287..2790e8185173 100644 --- a/sdk/storage/storage-queue/test/utils/recorder.ts +++ b/sdk/storage/storage-queue/test/utils/recorder.ts @@ -34,13 +34,18 @@ const skip = [ ]; abstract class Recorder { - protected readonly dirPath: string; - protected readonly fileName: string; + protected readonly filepath: string; public uniqueTestInfo: any = {}; constructor(env: string, testHierarchy: string, testTitle: string, ext: string) { - this.dirPath = env + "/" + this.formatPath(testHierarchy); - this.fileName = "/recording_" + this.formatPath(testTitle) + "." + ext; + this.filepath = + env + + "/" + + this.formatPath(testHierarchy) + + "/recording_" + + this.formatPath(testTitle) + + "." + + ext; } protected formatPath(path: string): string { @@ -56,7 +61,7 @@ abstract class Recorder { } public skip(): boolean { - return skip.includes(this.dirPath + this.fileName); + return skip.includes(this.filepath); } public abstract record(): void; @@ -76,7 +81,7 @@ class NockRecorder extends Recorder { } public playback(): void { - this.uniqueTestInfo = require("../recordings/" + this.dirPath + this.fileName).testInfo; + this.uniqueTestInfo = require("../recordings/" + this.filepath).testInfo; } public stop(): void { @@ -85,13 +90,16 @@ class NockRecorder extends Recorder { // Create the directories recursively incase they don't exist try { - fs.ensureDirSync("./recordings/" + this.dirPath); + // Stripping away the filename from the filepath and retaining the directory structure + fs.ensureDirSync( + "./recordings/" + this.filepath.substring(0, this.filepath.lastIndexOf("/") + 1) + ); } catch (err) { if (err.code !== "EEXIST") throw err; } // It's important to print writing errors because some tests end up catching them - const file = fs.createWriteStream("./recordings/" + this.dirPath + this.fileName, { + const file = fs.createWriteStream("./recordings/" + this.filepath, { flags: "w" }); file.on("error", (err: any) => { @@ -206,12 +214,8 @@ class NiseRecorder extends Recorder { const self = this; const xhr = nise.fakeXhr.useFakeXMLHttpRequest(); - this.recordings = (window as any).__json__[ - "recordings/" + this.dirPath + this.fileName - ].recordings; - this.uniqueTestInfo = (window as any).__json__[ - "recordings/" + this.dirPath + this.fileName - ].uniqueTestInfo; + this.recordings = (window as any).__json__["recordings/" + this.filepath].recordings; + this.uniqueTestInfo = (window as any).__json__["recordings/" + this.filepath].uniqueTestInfo; xhr.onCreate = function(req: any) { const reqSend = req.send; @@ -254,7 +258,7 @@ class NiseRecorder extends Recorder { console.log( JSON.stringify({ writeFile: true, - path: "./recordings/" + this.dirPath + this.fileName, + path: "./recordings/" + this.filepath, content: { recordings: this.recordings, uniqueTestInfo: this.uniqueTestInfo } }) );