@webex/test-helper-file 2.37.0 → 2.37.2
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/dist/file.js +7 -38
- package/dist/file.js.map +1 -1
- package/dist/file.shim.js +7 -30
- package/dist/file.shim.js.map +1 -1
- package/dist/index.js +0 -3
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
- package/src/file.js +2 -2
- package/src/file.shim.js +35 -37
- package/src/index.js +0 -1
package/dist/file.js
CHANGED
|
@@ -1,43 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _Object$keys = require("@babel/runtime-corejs2/core-js/object/keys");
|
|
4
|
-
|
|
5
4
|
var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs2/core-js/object/get-own-property-symbols");
|
|
6
|
-
|
|
7
5
|
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
|
|
8
|
-
|
|
9
6
|
var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptors");
|
|
10
|
-
|
|
11
7
|
var _Object$defineProperties = require("@babel/runtime-corejs2/core-js/object/define-properties");
|
|
12
|
-
|
|
13
8
|
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
14
|
-
|
|
15
9
|
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
16
|
-
|
|
17
10
|
_Object$defineProperty(exports, "__esModule", {
|
|
18
11
|
value: true
|
|
19
12
|
});
|
|
20
|
-
|
|
21
13
|
exports.isMatchingFile = exports.isBufferLike = exports.isBlobLike = exports.fetchWithoutMagic = exports.fetch = void 0;
|
|
22
|
-
|
|
23
14
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/slicedToArray"));
|
|
24
|
-
|
|
25
15
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
|
|
26
|
-
|
|
27
16
|
var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
|
|
28
|
-
|
|
29
17
|
var _fs = require("fs");
|
|
30
|
-
|
|
31
18
|
var _path = require("path");
|
|
32
|
-
|
|
33
19
|
var _fileType = require("file-type");
|
|
34
|
-
|
|
35
20
|
var _common = require("@webex/common");
|
|
36
|
-
|
|
37
21
|
function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
38
|
-
|
|
39
22
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
40
|
-
|
|
41
23
|
var fetchWithoutMagic = function fetchWithoutMagic(filename) {
|
|
42
24
|
return new _promise.default(function (resolve, reject) {
|
|
43
25
|
var filepath = (0, _path.join)(__dirname, '../../../@webex/test-helper-server/static', filename);
|
|
@@ -46,74 +28,61 @@ var fetchWithoutMagic = function fetchWithoutMagic(filename) {
|
|
|
46
28
|
reject(err);
|
|
47
29
|
return;
|
|
48
30
|
}
|
|
49
|
-
|
|
50
31
|
resolve(_objectSpread(_objectSpread({}, data), {}, {
|
|
51
32
|
name: filename
|
|
52
33
|
}));
|
|
53
34
|
});
|
|
54
35
|
});
|
|
55
36
|
};
|
|
56
|
-
|
|
57
37
|
exports.fetchWithoutMagic = fetchWithoutMagic;
|
|
58
|
-
|
|
59
38
|
var fetch = function fetch(filename) {
|
|
60
39
|
return fetchWithoutMagic(filename).then(function (data) {
|
|
61
40
|
return _promise.default.all([(0, _fileType.fromFile)(data), data]);
|
|
62
|
-
})
|
|
41
|
+
})
|
|
42
|
+
// .then(([{mime: type}, data]) => {
|
|
63
43
|
// console.error(data, type);
|
|
44
|
+
|
|
64
45
|
// return {...data, type};
|
|
65
46
|
// });
|
|
66
47
|
.then(function (_ref) {
|
|
67
48
|
var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
49
|
+
type = _ref2[0].mime,
|
|
50
|
+
data = _ref2[1];
|
|
71
51
|
return type ? _objectSpread(_objectSpread({}, data), {}, {
|
|
72
52
|
type: type
|
|
73
53
|
}) : _promise.default.reject(new Error('Invalid Media Type'));
|
|
74
54
|
});
|
|
75
55
|
};
|
|
76
|
-
|
|
77
56
|
exports.fetch = fetch;
|
|
78
|
-
|
|
79
57
|
var isBufferLike = function isBufferLike(file) {
|
|
80
58
|
return (0, _common.isBuffer)(file);
|
|
81
59
|
};
|
|
82
|
-
|
|
83
60
|
exports.isBufferLike = isBufferLike;
|
|
84
|
-
|
|
85
61
|
var isBlobLike = function isBlobLike(file) {
|
|
86
62
|
return (0, _common.isBuffer)(file);
|
|
87
63
|
};
|
|
88
|
-
|
|
89
64
|
exports.isBlobLike = isBlobLike;
|
|
90
|
-
|
|
91
65
|
var isMatchingFile = function isMatchingFile(left, right) {
|
|
92
66
|
if (!isBufferLike(left)) {
|
|
93
67
|
throw new Error('`left` must be a `Buffer`');
|
|
94
68
|
}
|
|
95
|
-
|
|
96
69
|
if (!isBufferLike(right)) {
|
|
97
70
|
throw new Error('`right` must be a `Buffer`');
|
|
98
|
-
}
|
|
99
|
-
|
|
71
|
+
}
|
|
100
72
|
|
|
73
|
+
// Node 10 doesn't have Buffer#equals()
|
|
101
74
|
if (left.equals) {
|
|
102
75
|
return _promise.default.resolve(left.equals(right));
|
|
103
76
|
}
|
|
104
|
-
|
|
105
77
|
if (left.length !== right.length) {
|
|
106
78
|
return _promise.default.resolve(false);
|
|
107
79
|
}
|
|
108
|
-
|
|
109
80
|
for (var i = 0; i < left.length; i += 1) {
|
|
110
81
|
if (left[i] !== right[i]) {
|
|
111
82
|
return _promise.default.resolve(false);
|
|
112
83
|
}
|
|
113
84
|
}
|
|
114
|
-
|
|
115
85
|
return _promise.default.resolve(true);
|
|
116
86
|
};
|
|
117
|
-
|
|
118
87
|
exports.isMatchingFile = isMatchingFile;
|
|
119
88
|
//# sourceMappingURL=file.js.map
|
package/dist/file.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["fetchWithoutMagic","filename","resolve","reject","filepath","join","__dirname","readFile","err","data","name","fetch","then","all","fromFile","type","mime","Error","isBufferLike","file","isBuffer","isBlobLike","isMatchingFile","left","right","equals","length","i"],"sources":["file.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {readFile} from 'fs';\nimport {join} from 'path';\n\nimport {fromFile} from 'file-type';\nimport {isBuffer} from '@webex/common';\n\nexport const fetchWithoutMagic = (filename) =>\n new Promise((resolve, reject) => {\n const filepath = join(__dirname, '../../../@webex/test-helper-server/static', filename);\n\n readFile(filepath, (err, data) => {\n if (err) {\n reject(err);\n\n return;\n }\n resolve({...data, name: filename});\n });\n });\n\nexport const fetch = (filename) =>\n fetchWithoutMagic(filename)\n .then((data) => Promise.all([fromFile(data), data]))\n // .then(([{mime: type}, data]) => {\n // console.error(data, type);\n\n // return {...data, type};\n // });\n .then(([{mime: type}, data]) =>\n
|
|
1
|
+
{"version":3,"names":["fetchWithoutMagic","filename","resolve","reject","filepath","join","__dirname","readFile","err","data","name","fetch","then","all","fromFile","type","mime","Error","isBufferLike","file","isBuffer","isBlobLike","isMatchingFile","left","right","equals","length","i"],"sources":["file.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {readFile} from 'fs';\nimport {join} from 'path';\n\nimport {fromFile} from 'file-type';\nimport {isBuffer} from '@webex/common';\n\nexport const fetchWithoutMagic = (filename) =>\n new Promise((resolve, reject) => {\n const filepath = join(__dirname, '../../../@webex/test-helper-server/static', filename);\n\n readFile(filepath, (err, data) => {\n if (err) {\n reject(err);\n\n return;\n }\n resolve({...data, name: filename});\n });\n });\n\nexport const fetch = (filename) =>\n fetchWithoutMagic(filename)\n .then((data) => Promise.all([fromFile(data), data]))\n // .then(([{mime: type}, data]) => {\n // console.error(data, type);\n\n // return {...data, type};\n // });\n .then(([{mime: type}, data]) =>\n type ? {...data, type} : Promise.reject(new Error('Invalid Media Type'))\n );\n\nexport const isBufferLike = (file) => isBuffer(file);\n\nexport const isBlobLike = (file) => isBuffer(file);\n\nexport const isMatchingFile = (left, right) => {\n if (!isBufferLike(left)) {\n throw new Error('`left` must be a `Buffer`');\n }\n\n if (!isBufferLike(right)) {\n throw new Error('`right` must be a `Buffer`');\n }\n\n // Node 10 doesn't have Buffer#equals()\n if (left.equals) {\n return Promise.resolve(left.equals(right));\n }\n\n if (left.length !== right.length) {\n return Promise.resolve(false);\n }\n\n for (let i = 0; i < left.length; i += 1) {\n if (left[i] !== right[i]) {\n return Promise.resolve(false);\n }\n }\n\n return Promise.resolve(true);\n};\n"],"mappings":";;;;;;;;;;;;;;;;AAIA;AACA;AAEA;AACA;AAAuC;AAAA;AAEhC,IAAMA,iBAAiB,GAAG,SAApBA,iBAAiB,CAAIC,QAAQ;EAAA,OACxC,qBAAY,UAACC,OAAO,EAAEC,MAAM,EAAK;IAC/B,IAAMC,QAAQ,GAAG,IAAAC,UAAI,EAACC,SAAS,EAAE,2CAA2C,EAAEL,QAAQ,CAAC;IAEvF,IAAAM,YAAQ,EAACH,QAAQ,EAAE,UAACI,GAAG,EAAEC,IAAI,EAAK;MAChC,IAAID,GAAG,EAAE;QACPL,MAAM,CAACK,GAAG,CAAC;QAEX;MACF;MACAN,OAAO,iCAAKO,IAAI;QAAEC,IAAI,EAAET;MAAQ,GAAE;IACpC,CAAC,CAAC;EACJ,CAAC,CAAC;AAAA;AAAC;AAEE,IAAMU,KAAK,GAAG,SAARA,KAAK,CAAIV,QAAQ;EAAA,OAC5BD,iBAAiB,CAACC,QAAQ,CAAC,CACxBW,IAAI,CAAC,UAACH,IAAI;IAAA,OAAK,iBAAQI,GAAG,CAAC,CAAC,IAAAC,kBAAQ,EAACL,IAAI,CAAC,EAAEA,IAAI,CAAC,CAAC;EAAA;EACnD;EACA;;EAEA;EACA;EAAA,CACCG,IAAI,CAAC;IAAA;MAASG,IAAI,YAAVC,IAAI;MAASP,IAAI;IAAA,OACxBM,IAAI,mCAAON,IAAI;MAAEM,IAAI,EAAJA;IAAI,KAAI,iBAAQZ,MAAM,CAAC,IAAIc,KAAK,CAAC,oBAAoB,CAAC,CAAC;EAAA,EACzE;AAAA;AAAC;AAEC,IAAMC,YAAY,GAAG,SAAfA,YAAY,CAAIC,IAAI;EAAA,OAAK,IAAAC,gBAAQ,EAACD,IAAI,CAAC;AAAA;AAAC;AAE9C,IAAME,UAAU,GAAG,SAAbA,UAAU,CAAIF,IAAI;EAAA,OAAK,IAAAC,gBAAQ,EAACD,IAAI,CAAC;AAAA;AAAC;AAE5C,IAAMG,cAAc,GAAG,SAAjBA,cAAc,CAAIC,IAAI,EAAEC,KAAK,EAAK;EAC7C,IAAI,CAACN,YAAY,CAACK,IAAI,CAAC,EAAE;IACvB,MAAM,IAAIN,KAAK,CAAC,2BAA2B,CAAC;EAC9C;EAEA,IAAI,CAACC,YAAY,CAACM,KAAK,CAAC,EAAE;IACxB,MAAM,IAAIP,KAAK,CAAC,4BAA4B,CAAC;EAC/C;;EAEA;EACA,IAAIM,IAAI,CAACE,MAAM,EAAE;IACf,OAAO,iBAAQvB,OAAO,CAACqB,IAAI,CAACE,MAAM,CAACD,KAAK,CAAC,CAAC;EAC5C;EAEA,IAAID,IAAI,CAACG,MAAM,KAAKF,KAAK,CAACE,MAAM,EAAE;IAChC,OAAO,iBAAQxB,OAAO,CAAC,KAAK,CAAC;EAC/B;EAEA,KAAK,IAAIyB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGJ,IAAI,CAACG,MAAM,EAAEC,CAAC,IAAI,CAAC,EAAE;IACvC,IAAIJ,IAAI,CAACI,CAAC,CAAC,KAAKH,KAAK,CAACG,CAAC,CAAC,EAAE;MACxB,OAAO,iBAAQzB,OAAO,CAAC,KAAK,CAAC;IAC/B;EACF;EAEA,OAAO,iBAAQA,OAAO,CAAC,IAAI,CAAC;AAC9B,CAAC;AAAC"}
|
package/dist/file.shim.js
CHANGED
|
@@ -1,101 +1,86 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
|
|
6
|
-
|
|
7
5
|
/*!
|
|
8
6
|
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
9
7
|
*/
|
|
10
8
|
|
|
11
9
|
/* eslint-env browser */
|
|
12
|
-
var makeLocalUrl = require('@webex/test-helper-make-local-url');
|
|
13
10
|
|
|
11
|
+
var makeLocalUrl = require('@webex/test-helper-make-local-url');
|
|
14
12
|
var xhr = require('xhr');
|
|
13
|
+
|
|
15
14
|
/**
|
|
16
15
|
* @param {Blob} blob
|
|
17
16
|
* @private
|
|
18
17
|
* @returns {Promise}
|
|
19
18
|
*/
|
|
20
|
-
|
|
21
|
-
|
|
22
19
|
function convertBlobToArrayBuffer(blob) {
|
|
23
20
|
if (!(blob instanceof Blob)) {
|
|
24
21
|
throw new Error('`blob` must be a `Blob`');
|
|
25
22
|
}
|
|
26
|
-
|
|
27
23
|
return new _promise.default(function (resolve, reject) {
|
|
28
24
|
var reader = new FileReader();
|
|
29
25
|
reader.onerror = reject;
|
|
30
|
-
|
|
31
26
|
reader.onload = function onload() {
|
|
32
27
|
resolve(reader.result);
|
|
33
28
|
};
|
|
34
|
-
|
|
35
29
|
reader.readAsArrayBuffer(blob);
|
|
36
30
|
});
|
|
37
31
|
}
|
|
32
|
+
|
|
38
33
|
/**
|
|
39
34
|
* @param {Uint8Array} array
|
|
40
35
|
* @private
|
|
41
36
|
* @returns {ArrayBuffer}
|
|
42
37
|
*/
|
|
43
|
-
|
|
44
|
-
|
|
45
38
|
function convertUint8ArrayToArrayBuffer(array) {
|
|
46
39
|
if (!(array instanceof Uint8Array)) {
|
|
47
40
|
throw new Error('`array` must be a `Uint8Array`');
|
|
48
41
|
}
|
|
49
|
-
|
|
50
42
|
return array.buffer;
|
|
51
43
|
}
|
|
44
|
+
|
|
52
45
|
/**
|
|
53
46
|
* @param {mixed} file
|
|
54
47
|
* @returns {Boolean}
|
|
55
48
|
*/
|
|
56
|
-
|
|
57
|
-
|
|
58
49
|
function isBlobLike(file) {
|
|
59
50
|
return file instanceof Blob && 'size' in file && 'type' in file;
|
|
60
51
|
}
|
|
52
|
+
|
|
61
53
|
/**
|
|
62
54
|
* @param {mixed} file
|
|
63
55
|
* @returns {Boolean}
|
|
64
56
|
*/
|
|
65
|
-
|
|
66
|
-
|
|
67
57
|
function isBufferLike(file) {
|
|
68
58
|
return file instanceof ArrayBuffer;
|
|
69
59
|
}
|
|
60
|
+
|
|
70
61
|
/**
|
|
71
62
|
* @param {mixed} file
|
|
72
63
|
* @private
|
|
73
64
|
* @returns {Promise}
|
|
74
65
|
*/
|
|
75
|
-
|
|
76
|
-
|
|
77
66
|
function ensureArrayBuffer(file) {
|
|
78
67
|
if (isBufferLike(file)) {
|
|
79
68
|
return file;
|
|
80
69
|
}
|
|
81
|
-
|
|
82
70
|
if (isBlobLike(file)) {
|
|
83
71
|
return convertBlobToArrayBuffer(file);
|
|
84
72
|
}
|
|
85
|
-
|
|
86
73
|
if (file instanceof Uint8Array) {
|
|
87
74
|
return convertUint8ArrayToArrayBuffer(file);
|
|
88
75
|
}
|
|
89
|
-
|
|
90
76
|
throw new Error('Could not determine type of `file`');
|
|
91
77
|
}
|
|
78
|
+
|
|
92
79
|
/**
|
|
93
80
|
* Fetches a file
|
|
94
81
|
* @param {string} filename
|
|
95
82
|
* @returns {Promise<File>}
|
|
96
83
|
*/
|
|
97
|
-
|
|
98
|
-
|
|
99
84
|
function fetch(filename) {
|
|
100
85
|
return new _promise.default(function (resolve, reject) {
|
|
101
86
|
xhr({
|
|
@@ -111,7 +96,6 @@ function fetch(filename) {
|
|
|
111
96
|
});
|
|
112
97
|
});
|
|
113
98
|
}
|
|
114
|
-
|
|
115
99
|
var FileShim = {
|
|
116
100
|
/**
|
|
117
101
|
* @param {string} filename
|
|
@@ -121,7 +105,6 @@ var FileShim = {
|
|
|
121
105
|
fetchWithoutMagic: fetch,
|
|
122
106
|
isBufferLike: isBufferLike,
|
|
123
107
|
isBlobLike: isBlobLike,
|
|
124
|
-
|
|
125
108
|
/**
|
|
126
109
|
* @param {ArrayBuffer|Blob|Uint8Array} left
|
|
127
110
|
* @param {ArrayBuffer|Blob|Uint8Array} right
|
|
@@ -131,28 +114,22 @@ var FileShim = {
|
|
|
131
114
|
return _promise.default.all([ensureArrayBuffer(left), ensureArrayBuffer(right)]).then(function (buffers) {
|
|
132
115
|
var innerLeft = buffers[0];
|
|
133
116
|
var innerRight = buffers[1];
|
|
134
|
-
|
|
135
117
|
if (!FileShim.isBufferLike(innerLeft)) {
|
|
136
118
|
throw new Error('`innerLeft` must be a `Buffer`');
|
|
137
119
|
}
|
|
138
|
-
|
|
139
120
|
if (!FileShim.isBufferLike(innerRight)) {
|
|
140
121
|
throw new Error('`innerRight` must be a `Buffer`');
|
|
141
122
|
}
|
|
142
|
-
|
|
143
123
|
if (innerLeft.byteLength !== innerRight.byteLength) {
|
|
144
124
|
return false;
|
|
145
125
|
}
|
|
146
|
-
|
|
147
126
|
var l = new Uint8Array(innerLeft);
|
|
148
127
|
var r = new Uint8Array(innerRight);
|
|
149
|
-
|
|
150
128
|
for (var i = 0; i < l.length; i += 1) {
|
|
151
129
|
if (l[i] !== r[i]) {
|
|
152
130
|
return false;
|
|
153
131
|
}
|
|
154
132
|
}
|
|
155
|
-
|
|
156
133
|
return true;
|
|
157
134
|
});
|
|
158
135
|
}
|
package/dist/file.shim.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["makeLocalUrl","require","xhr","convertBlobToArrayBuffer","blob","Blob","Error","resolve","reject","reader","FileReader","onerror","onload","result","readAsArrayBuffer","convertUint8ArrayToArrayBuffer","array","Uint8Array","buffer","isBlobLike","file","isBufferLike","ArrayBuffer","ensureArrayBuffer","fetch","filename","uri","responseType","err","res","body","name","FileShim","fetchWithoutMagic","isMatchingFile","left","right","all","then","buffers","innerLeft","innerRight","byteLength","l","r","i","length","module","exports"],"sources":["file.shim.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\n/* eslint-env browser */\n\nconst makeLocalUrl = require('@webex/test-helper-make-local-url');\nconst xhr = require('xhr');\n\n/**\n * @param {Blob} blob\n * @private\n * @returns {Promise}\n */\nfunction convertBlobToArrayBuffer(blob) {\n if (!(blob instanceof Blob)) {\n throw new Error('`blob` must be a `Blob`');\n }\n\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n\n reader.onerror = reject;\n reader.onload = function onload() {\n resolve(reader.result);\n };\n\n reader.readAsArrayBuffer(blob);\n });\n}\n\n/**\n * @param {Uint8Array} array\n * @private\n * @returns {ArrayBuffer}\n */\nfunction convertUint8ArrayToArrayBuffer(array) {\n if (!(array instanceof Uint8Array)) {\n throw new Error('`array` must be a `Uint8Array`');\n }\n\n return array.buffer;\n}\n\n/**\n * @param {mixed} file\n * @returns {Boolean}\n */\nfunction isBlobLike(file) {\n return file instanceof Blob && 'size' in file && 'type' in file;\n}\n\n/**\n * @param {mixed} file\n * @returns {Boolean}\n */\nfunction isBufferLike(file) {\n return file instanceof ArrayBuffer;\n}\n\n/**\n * @param {mixed} file\n * @private\n * @returns {Promise}\n */\nfunction ensureArrayBuffer(file) {\n if (isBufferLike(file)) {\n return file;\n }\n\n if (isBlobLike(file)) {\n return convertBlobToArrayBuffer(file);\n }\n\n if (file instanceof Uint8Array) {\n return convertUint8ArrayToArrayBuffer(file);\n }\n\n throw new Error('Could not determine type of `file`');\n}\n\n/**\n * Fetches a file\n * @param {string} filename\n * @returns {Promise<File>}\n */\nfunction fetch(filename) {\n return new Promise((resolve, reject) => {\n xhr({\n
|
|
1
|
+
{"version":3,"names":["makeLocalUrl","require","xhr","convertBlobToArrayBuffer","blob","Blob","Error","resolve","reject","reader","FileReader","onerror","onload","result","readAsArrayBuffer","convertUint8ArrayToArrayBuffer","array","Uint8Array","buffer","isBlobLike","file","isBufferLike","ArrayBuffer","ensureArrayBuffer","fetch","filename","uri","responseType","err","res","body","name","FileShim","fetchWithoutMagic","isMatchingFile","left","right","all","then","buffers","innerLeft","innerRight","byteLength","l","r","i","length","module","exports"],"sources":["file.shim.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\n/* eslint-env browser */\n\nconst makeLocalUrl = require('@webex/test-helper-make-local-url');\nconst xhr = require('xhr');\n\n/**\n * @param {Blob} blob\n * @private\n * @returns {Promise}\n */\nfunction convertBlobToArrayBuffer(blob) {\n if (!(blob instanceof Blob)) {\n throw new Error('`blob` must be a `Blob`');\n }\n\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n\n reader.onerror = reject;\n reader.onload = function onload() {\n resolve(reader.result);\n };\n\n reader.readAsArrayBuffer(blob);\n });\n}\n\n/**\n * @param {Uint8Array} array\n * @private\n * @returns {ArrayBuffer}\n */\nfunction convertUint8ArrayToArrayBuffer(array) {\n if (!(array instanceof Uint8Array)) {\n throw new Error('`array` must be a `Uint8Array`');\n }\n\n return array.buffer;\n}\n\n/**\n * @param {mixed} file\n * @returns {Boolean}\n */\nfunction isBlobLike(file) {\n return file instanceof Blob && 'size' in file && 'type' in file;\n}\n\n/**\n * @param {mixed} file\n * @returns {Boolean}\n */\nfunction isBufferLike(file) {\n return file instanceof ArrayBuffer;\n}\n\n/**\n * @param {mixed} file\n * @private\n * @returns {Promise}\n */\nfunction ensureArrayBuffer(file) {\n if (isBufferLike(file)) {\n return file;\n }\n\n if (isBlobLike(file)) {\n return convertBlobToArrayBuffer(file);\n }\n\n if (file instanceof Uint8Array) {\n return convertUint8ArrayToArrayBuffer(file);\n }\n\n throw new Error('Could not determine type of `file`');\n}\n\n/**\n * Fetches a file\n * @param {string} filename\n * @returns {Promise<File>}\n */\nfunction fetch(filename) {\n return new Promise((resolve, reject) => {\n xhr(\n {\n uri: makeLocalUrl(`/${filename}`),\n responseType: 'blob',\n },\n (err, res, body) => {\n if (err) {\n reject(err);\n } else {\n body.name = body.name || filename;\n resolve(body);\n }\n }\n );\n });\n}\n\nconst FileShim = {\n /**\n * @param {string} filename\n * @returns {Promise}\n */\n fetch,\n\n fetchWithoutMagic: fetch,\n\n isBufferLike,\n\n isBlobLike,\n\n /**\n * @param {ArrayBuffer|Blob|Uint8Array} left\n * @param {ArrayBuffer|Blob|Uint8Array} right\n * @returns {Boolean}\n */\n isMatchingFile: function isMatchingFile(left, right) {\n return Promise.all([ensureArrayBuffer(left), ensureArrayBuffer(right)]).then((buffers) => {\n const innerLeft = buffers[0];\n const innerRight = buffers[1];\n\n if (!FileShim.isBufferLike(innerLeft)) {\n throw new Error('`innerLeft` must be a `Buffer`');\n }\n\n if (!FileShim.isBufferLike(innerRight)) {\n throw new Error('`innerRight` must be a `Buffer`');\n }\n\n if (innerLeft.byteLength !== innerRight.byteLength) {\n return false;\n }\n\n const l = new Uint8Array(innerLeft);\n const r = new Uint8Array(innerRight);\n\n for (let i = 0; i < l.length; i += 1) {\n if (l[i] !== r[i]) {\n return false;\n }\n }\n\n return true;\n });\n },\n};\n\nmodule.exports = FileShim;\n"],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
|
|
6
|
-
|
|
7
5
|
/*!
|
|
8
6
|
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
9
7
|
*/
|
|
@@ -13,6 +11,5 @@ if (typeof _promise.default === 'undefined') {
|
|
|
13
11
|
// eslint-disable-next-line global-require
|
|
14
12
|
require('es6-promise').polyfill();
|
|
15
13
|
}
|
|
16
|
-
|
|
17
14
|
module.exports = require('./file');
|
|
18
15
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["require","polyfill","module","exports"],"sources":["index.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\n
|
|
1
|
+
{"version":3,"names":["require","polyfill","module","exports"],"sources":["index.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\n/* istanbul ignore next */\nif (typeof Promise === 'undefined') {\n // eslint-disable-next-line global-require\n require('es6-promise').polyfill();\n}\n\nmodule.exports = require('./file');\n"],"mappings":";;;;AAAA;AACA;AACA;;AAEA;AACA,IAAI,uBAAc,KAAK,WAAW,EAAE;EAClC;EACAA,OAAO,CAAC,aAAa,CAAC,CAACC,QAAQ,EAAE;AACnC;AAEAC,MAAM,CAACC,OAAO,GAAGH,OAAO,CAAC,QAAQ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webex/test-helper-file",
|
|
3
|
-
"version": "2.37.
|
|
3
|
+
"version": "2.37.2",
|
|
4
4
|
"description": "File helpers for writing isomorphicish mocha tests",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -17,8 +17,8 @@
|
|
|
17
17
|
"./src/file.js": "./src/file.shim.js"
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@webex/common": "2.37.
|
|
21
|
-
"@webex/test-helper-make-local-url": "2.37.
|
|
20
|
+
"@webex/common": "2.37.2",
|
|
21
|
+
"@webex/test-helper-make-local-url": "2.37.2",
|
|
22
22
|
"es6-promise": "^4.2.8",
|
|
23
23
|
"file-type": "^16.0.1",
|
|
24
24
|
"xhr": "^2.5.0"
|
package/src/file.js
CHANGED
|
@@ -31,8 +31,8 @@ export const fetch = (filename) =>
|
|
|
31
31
|
// return {...data, type};
|
|
32
32
|
// });
|
|
33
33
|
.then(([{mime: type}, data]) =>
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
type ? {...data, type} : Promise.reject(new Error('Invalid Media Type'))
|
|
35
|
+
);
|
|
36
36
|
|
|
37
37
|
export const isBufferLike = (file) => isBuffer(file);
|
|
38
38
|
|
package/src/file.shim.js
CHANGED
|
@@ -86,18 +86,20 @@ function ensureArrayBuffer(file) {
|
|
|
86
86
|
*/
|
|
87
87
|
function fetch(filename) {
|
|
88
88
|
return new Promise((resolve, reject) => {
|
|
89
|
-
xhr(
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
89
|
+
xhr(
|
|
90
|
+
{
|
|
91
|
+
uri: makeLocalUrl(`/${filename}`),
|
|
92
|
+
responseType: 'blob',
|
|
93
|
+
},
|
|
94
|
+
(err, res, body) => {
|
|
95
|
+
if (err) {
|
|
96
|
+
reject(err);
|
|
97
|
+
} else {
|
|
98
|
+
body.name = body.name || filename;
|
|
99
|
+
resolve(body);
|
|
100
|
+
}
|
|
99
101
|
}
|
|
100
|
-
|
|
102
|
+
);
|
|
101
103
|
});
|
|
102
104
|
}
|
|
103
105
|
|
|
@@ -120,38 +122,34 @@ const FileShim = {
|
|
|
120
122
|
* @returns {Boolean}
|
|
121
123
|
*/
|
|
122
124
|
isMatchingFile: function isMatchingFile(left, right) {
|
|
123
|
-
return Promise.all([
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
])
|
|
127
|
-
.then((buffers) => {
|
|
128
|
-
const innerLeft = buffers[0];
|
|
129
|
-
const innerRight = buffers[1];
|
|
130
|
-
|
|
131
|
-
if (!FileShim.isBufferLike(innerLeft)) {
|
|
132
|
-
throw new Error('`innerLeft` must be a `Buffer`');
|
|
133
|
-
}
|
|
125
|
+
return Promise.all([ensureArrayBuffer(left), ensureArrayBuffer(right)]).then((buffers) => {
|
|
126
|
+
const innerLeft = buffers[0];
|
|
127
|
+
const innerRight = buffers[1];
|
|
134
128
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
129
|
+
if (!FileShim.isBufferLike(innerLeft)) {
|
|
130
|
+
throw new Error('`innerLeft` must be a `Buffer`');
|
|
131
|
+
}
|
|
138
132
|
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
133
|
+
if (!FileShim.isBufferLike(innerRight)) {
|
|
134
|
+
throw new Error('`innerRight` must be a `Buffer`');
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
if (innerLeft.byteLength !== innerRight.byteLength) {
|
|
138
|
+
return false;
|
|
139
|
+
}
|
|
142
140
|
|
|
143
|
-
|
|
144
|
-
|
|
141
|
+
const l = new Uint8Array(innerLeft);
|
|
142
|
+
const r = new Uint8Array(innerRight);
|
|
145
143
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
}
|
|
144
|
+
for (let i = 0; i < l.length; i += 1) {
|
|
145
|
+
if (l[i] !== r[i]) {
|
|
146
|
+
return false;
|
|
150
147
|
}
|
|
148
|
+
}
|
|
151
149
|
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
}
|
|
150
|
+
return true;
|
|
151
|
+
});
|
|
152
|
+
},
|
|
155
153
|
};
|
|
156
154
|
|
|
157
155
|
module.exports = FileShim;
|