@metriport/shared 0.13.4 → 0.13.5-alpha.0
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/common/__tests__/npi.d.ts +7 -0
- package/dist/common/__tests__/npi.d.ts.map +1 -0
- package/dist/common/__tests__/npi.js +32 -0
- package/dist/common/__tests__/npi.js.map +1 -0
- package/dist/common/__tests__/validate-npi.test.d.ts +2 -0
- package/dist/common/__tests__/validate-npi.test.d.ts.map +1 -0
- package/dist/common/__tests__/validate-npi.test.js +24 -0
- package/dist/common/__tests__/validate-npi.test.js.map +1 -0
- package/dist/domain/address/state.d.ts.map +1 -1
- package/dist/domain/address/state.js +3 -1
- package/dist/domain/address/state.js.map +1 -1
- package/dist/domain/address/territory.d.ts.map +1 -1
- package/dist/domain/address/territory.js +3 -1
- package/dist/domain/address/territory.js.map +1 -1
- package/dist/domain/contact/phone.d.ts +1 -0
- package/dist/domain/contact/phone.d.ts.map +1 -1
- package/dist/domain/contact/phone.js +8 -1
- package/dist/domain/contact/phone.js.map +1 -1
- package/package.json +2 -2
- package/dist/common/__tests__/normalize-zip.test.d.ts +0 -2
- package/dist/common/__tests__/normalize-zip.test.d.ts.map +0 -1
- package/dist/common/__tests__/normalize-zip.test.js +0 -38
- package/dist/common/__tests__/normalize-zip.test.js.map +0 -1
- package/dist/common/normalize-zip.d.ts +0 -10
- package/dist/common/normalize-zip.d.ts.map +0 -1
- package/dist/common/normalize-zip.js +0 -30
- package/dist/common/normalize-zip.js.map +0 -1
- package/dist/net/__tests__/file-downloader.d.ts +0 -2
- package/dist/net/__tests__/file-downloader.d.ts.map +0 -1
- package/dist/net/__tests__/file-downloader.js +0 -66
- package/dist/net/__tests__/file-downloader.js.map +0 -1
- package/dist/net/file-downloader.d.ts +0 -22
- package/dist/net/file-downloader.d.ts.map +0 -1
- package/dist/net/file-downloader.js +0 -67
- package/dist/net/file-downloader.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"npi.d.ts","sourceRoot":"","sources":["../../../src/common/__tests__/npi.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,OAAO,IAAI,MAAM,CAyBhC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.makeNPI = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Generates a valid NPI number that passes the validateNPI() function.
|
|
6
|
+
*
|
|
7
|
+
* @returns A valid 10-digit NPI number as a string.
|
|
8
|
+
*/
|
|
9
|
+
function makeNPI() {
|
|
10
|
+
const digits = [];
|
|
11
|
+
// Generate the first 9 digits
|
|
12
|
+
digits.push(Math.random() < 0.5 ? 1 : 2); // First digit is either 1 or 2
|
|
13
|
+
for (let i = 1; i < 9; i++) {
|
|
14
|
+
digits.push(Math.floor(Math.random() * 10));
|
|
15
|
+
}
|
|
16
|
+
let sum = 24; // Account for NPI prefix (80840)
|
|
17
|
+
let shouldDouble = true;
|
|
18
|
+
digits.forEach(digit => {
|
|
19
|
+
if (shouldDouble) {
|
|
20
|
+
digit *= 2;
|
|
21
|
+
if (digit > 9)
|
|
22
|
+
digit -= 9;
|
|
23
|
+
}
|
|
24
|
+
sum += digit;
|
|
25
|
+
shouldDouble = !shouldDouble;
|
|
26
|
+
});
|
|
27
|
+
const checkDigit = (10 - (sum % 10)) % 10;
|
|
28
|
+
digits.push(checkDigit);
|
|
29
|
+
return digits.join("");
|
|
30
|
+
}
|
|
31
|
+
exports.makeNPI = makeNPI;
|
|
32
|
+
//# sourceMappingURL=npi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"npi.js","sourceRoot":"","sources":["../../../src/common/__tests__/npi.ts"],"names":[],"mappings":";;;AAAA;;;;GAIG;AACH,SAAgB,OAAO;IACrB,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,8BAA8B;IAC9B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,+BAA+B;IACzE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;QAC1B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;KAC7C;IAED,IAAI,GAAG,GAAG,EAAE,CAAC,CAAC,iCAAiC;IAC/C,IAAI,YAAY,GAAG,IAAI,CAAC;IAExB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACrB,IAAI,YAAY,EAAE;YAChB,KAAK,IAAI,CAAC,CAAC;YACX,IAAI,KAAK,GAAG,CAAC;gBAAE,KAAK,IAAI,CAAC,CAAC;SAC3B;QACD,GAAG,IAAI,KAAK,CAAC;QACb,YAAY,GAAG,CAAC,YAAY,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;IAC1C,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAExB,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACzB,CAAC;AAzBD,0BAyBC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-npi.test.d.ts","sourceRoot":"","sources":["../../../src/common/__tests__/validate-npi.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const validate_npi_1 = require("../validate-npi");
|
|
4
|
+
const npi_1 = require("./npi");
|
|
5
|
+
describe("validate-npi", () => {
|
|
6
|
+
describe("returns true when it gets valid NPI number", () => {
|
|
7
|
+
for (let i = 0; i < 10; i++) {
|
|
8
|
+
const npi = (0, npi_1.makeNPI)();
|
|
9
|
+
it(npi, async () => {
|
|
10
|
+
expect((0, validate_npi_1.validateNPI)(npi)).toBeTruthy();
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
it("returns false when it gets empty string", async () => {
|
|
15
|
+
expect((0, validate_npi_1.validateNPI)("")).toBeFalsy();
|
|
16
|
+
});
|
|
17
|
+
it("returns false when it gets undefined", async () => {
|
|
18
|
+
expect((0, validate_npi_1.validateNPI)(undefined)).toBeFalsy();
|
|
19
|
+
});
|
|
20
|
+
it("returns false when it gets invalid 10 digit string", async () => {
|
|
21
|
+
expect((0, validate_npi_1.validateNPI)(String(1123123123))).toBeFalsy();
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
//# sourceMappingURL=validate-npi.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-npi.test.js","sourceRoot":"","sources":["../../../src/common/__tests__/validate-npi.test.ts"],"names":[],"mappings":";;AAAA,kDAA8C;AAC9C,+BAAgC;AAEhC,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,QAAQ,CAAC,4CAA4C,EAAE,GAAG,EAAE;QAC1D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;YAC3B,MAAM,GAAG,GAAG,IAAA,aAAO,GAAE,CAAC;YACtB,EAAE,CAAC,GAAG,EAAE,KAAK,IAAI,EAAE;gBACjB,MAAM,CAAC,IAAA,0BAAW,EAAC,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;YACxC,CAAC,CAAC,CAAC;SACJ;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;QACvD,MAAM,CAAC,IAAA,0BAAW,EAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,CAAC,IAAA,0BAAW,EAAC,SAA8B,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;QAClE,MAAM,CAAC,IAAA,0BAAW,EAAC,MAAM,CAAC,UAAa,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;IACzD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../src/domain/address/state.ts"],"names":[],"mappings":"AAEA,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../src/domain/address/state.ts"],"names":[],"mappings":"AAEA,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAQrE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAIrD;AAED,oBAAY,OAAO;IACjB,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;CACV;AAED,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAoD1C,CAAC"}
|
|
@@ -3,7 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.states = exports.USState = exports.normalizeState = exports.normalizeStateSafe = void 0;
|
|
4
4
|
const bad_request_1 = require("../../error/bad-request");
|
|
5
5
|
function normalizeStateSafe(state) {
|
|
6
|
-
const
|
|
6
|
+
const trimmedState = state.trim();
|
|
7
|
+
const keyFromEntries = Object.entries(exports.states).find(([key, value]) => key.toLowerCase() === trimmedState.toLowerCase() ||
|
|
8
|
+
value.toLowerCase() === trimmedState.toLowerCase());
|
|
7
9
|
return keyFromEntries?.[0];
|
|
8
10
|
}
|
|
9
11
|
exports.normalizeStateSafe = normalizeStateSafe;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/domain/address/state.ts"],"names":[],"mappings":";;;AAAA,yDAA0D;AAE1D,SAAgB,kBAAkB,CAAC,KAAa;IAC9C,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,cAAM,CAAC,CAAC,IAAI,CAChD,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/domain/address/state.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"territory.d.ts","sourceRoot":"","sources":["../../../src/domain/address/territory.ts"],"names":[],"mappings":"AAEA,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"territory.d.ts","sourceRoot":"","sources":["../../../src/domain/address/territory.ts"],"names":[],"mappings":"AAEA,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAQjF;AAED,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,CAKjE;AAED,oBAAY,WAAW;IACrB,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;CACV;AAED,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAKnD,CAAC"}
|
|
@@ -3,7 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.territories = exports.USTerritory = exports.normalizeTerritory = exports.normalizeTerritorySafe = void 0;
|
|
4
4
|
const bad_request_1 = require("../../error/bad-request");
|
|
5
5
|
function normalizeTerritorySafe(territory) {
|
|
6
|
-
const
|
|
6
|
+
const trimmedTerritory = territory.trim();
|
|
7
|
+
const keyFromEntries = Object.entries(exports.territories).find(([key, value]) => key.toLowerCase() === trimmedTerritory.toLowerCase() ||
|
|
8
|
+
value.toLowerCase() === trimmedTerritory.toLowerCase());
|
|
7
9
|
return keyFromEntries?.[0];
|
|
8
10
|
}
|
|
9
11
|
exports.normalizeTerritorySafe = normalizeTerritorySafe;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"territory.js","sourceRoot":"","sources":["../../../src/domain/address/territory.ts"],"names":[],"mappings":";;;AAAA,yDAA0D;AAE1D,SAAgB,sBAAsB,CAAC,SAAiB;IACtD,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,mBAAW,CAAC,CAAC,IAAI,CACrD,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"territory.js","sourceRoot":"","sources":["../../../src/domain/address/territory.ts"],"names":[],"mappings":";;;AAAA,yDAA0D;AAE1D,SAAgB,sBAAsB,CAAC,SAAiB;IACtD,MAAM,gBAAgB,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;IAC1C,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,mBAAW,CAAC,CAAC,IAAI,CACrD,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CACf,GAAG,CAAC,WAAW,EAAE,KAAK,gBAAgB,CAAC,WAAW,EAAE;QACpD,KAAK,CAAC,WAAW,EAAE,KAAK,gBAAgB,CAAC,WAAW,EAAE,CACzD,CAAC;IACF,OAAO,cAAc,EAAE,CAAC,CAAC,CAA4B,CAAC;AACxD,CAAC;AARD,wDAQC;AAED,SAAgB,kBAAkB,CAAC,SAAiB;IAClD,MAAM,oBAAoB,GAAG,sBAAsB,CAAC,SAAS,CAAC,CAAC;IAC/D,IAAI,CAAC,oBAAoB;QACvB,MAAM,IAAI,6BAAe,CAAC,mBAAmB,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;IAC3E,OAAO,oBAAoB,CAAC;AAC9B,CAAC;AALD,gDAKC;AAED,IAAY,WAKX;AALD,WAAY,WAAW;IACrB,wBAAS,CAAA;IACT,wBAAS,CAAA;IACT,wBAAS,CAAA;IACT,wBAAS,CAAA;AACX,CAAC,EALW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAKtB;AAEY,QAAA,WAAW,GAAgC;IACtD,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,gBAAgB;IAClC,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,MAAM;IACxB,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,aAAa;IAC/B,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,gBAAgB;CACnC,CAAC"}
|
|
@@ -18,4 +18,5 @@ export declare function normalizeUsPhoneWithPlusOne(telephone: string): string;
|
|
|
18
18
|
*/
|
|
19
19
|
export declare function normalizePhoneNumber(telephone: string, normalizeBase?: typeof normalizeUsPhoneWithPlusOne): string;
|
|
20
20
|
export declare function normalizePhoneNumberStrict(telephone: string): string;
|
|
21
|
+
export declare function normalizePhoneNumberSafe(telephone: string): string | undefined;
|
|
21
22
|
//# sourceMappingURL=phone.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"phone.d.ts","sourceRoot":"","sources":["../../../src/domain/contact/phone.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW,KAAK,CAAC;AAC9B,eAAO,MAAM,kBAAkB,eAAe,CAAC;AAE/C,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAGpD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAKnD;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAOrE;AACD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,aAAa,qCAA8B,GAC1C,MAAM,CAQR;AAED,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAIpE"}
|
|
1
|
+
{"version":3,"file":"phone.d.ts","sourceRoot":"","sources":["../../../src/domain/contact/phone.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW,KAAK,CAAC;AAC9B,eAAO,MAAM,kBAAkB,eAAe,CAAC;AAE/C,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAGpD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAKnD;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAOrE;AACD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,aAAa,qCAA8B,GAC1C,MAAM,CAQR;AAED,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAIpE;AAED,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAI9E"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.normalizePhoneNumberStrict = exports.normalizePhoneNumber = exports.normalizeUsPhoneWithPlusOne = exports.isPhoneValid = exports.isPhoneNumber = exports.examplePhoneNumber = exports.phoneLength = void 0;
|
|
3
|
+
exports.normalizePhoneNumberSafe = exports.normalizePhoneNumberStrict = exports.normalizePhoneNumber = exports.normalizeUsPhoneWithPlusOne = exports.isPhoneValid = exports.isPhoneNumber = exports.examplePhoneNumber = exports.phoneLength = void 0;
|
|
4
4
|
const string_1 = require("../../common/string");
|
|
5
5
|
exports.phoneLength = 10;
|
|
6
6
|
exports.examplePhoneNumber = "1231231234";
|
|
@@ -58,4 +58,11 @@ function normalizePhoneNumberStrict(telephone) {
|
|
|
58
58
|
return normalPhone;
|
|
59
59
|
}
|
|
60
60
|
exports.normalizePhoneNumberStrict = normalizePhoneNumberStrict;
|
|
61
|
+
function normalizePhoneNumberSafe(telephone) {
|
|
62
|
+
const normalPhone = normalizePhoneNumber(telephone);
|
|
63
|
+
if (!isPhoneValid(normalPhone))
|
|
64
|
+
return undefined;
|
|
65
|
+
return normalPhone;
|
|
66
|
+
}
|
|
67
|
+
exports.normalizePhoneNumberSafe = normalizePhoneNumberSafe;
|
|
61
68
|
//# sourceMappingURL=phone.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"phone.js","sourceRoot":"","sources":["../../../src/domain/contact/phone.ts"],"names":[],"mappings":";;;AAAA,gDAA2D;AAE9C,QAAA,WAAW,GAAG,EAAE,CAAC;AACjB,QAAA,kBAAkB,GAAG,YAAY,CAAC;AAE/C,SAAgB,aAAa,CAAC,KAAa;IACzC,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC9C,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,MAAM,IAAI,EAAE,CAAC;AAC3D,CAAC;AAHD,sCAGC;AAED,SAAgB,YAAY,CAAC,KAAa;IACxC,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,IAAI,KAAK,CAAC,MAAM,KAAK,mBAAW;QAAE,OAAO,KAAK,CAAC;IAC/C,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACpC,OAAO,IAAI,CAAC;AACd,CAAC;AALD,oCAKC;AAED;;;;;GAKG;AACH,SAAgB,2BAA2B,CAAC,SAAiB;IAC3D,MAAM,QAAQ,GAAG,IAAA,6BAAoB,EAAC,SAAS,CAAC,CAAC;IACjD,MAAM,gBAAgB,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;IAC7C,IAAI,gBAAgB,IAAI,QAAQ,CAAC,MAAM,KAAK,mBAAW,GAAG,CAAC,EAAE;QAC3D,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KAC1B;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAPD,kEAOC;AACD;;;;;;GAMG;AACH,SAAgB,oBAAoB,CAClC,SAAiB,EACjB,aAAa,GAAG,2BAA2B;IAE3C,MAAM,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IAC5C,IAAI,UAAU,CAAC,MAAM,GAAG,mBAAW,EAAE;QACnC,MAAM,gBAAgB,GAAG,UAAU,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;QAC/C,MAAM,eAAe,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjD,OAAO,UAAU,CAAC,KAAK,CAAC,eAAe,EAAE,eAAe,GAAG,mBAAW,CAAC,CAAC;KACzE;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAXD,oDAWC;AAED,SAAgB,0BAA0B,CAAC,SAAiB;IAC1D,MAAM,WAAW,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;IACpD,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAClE,OAAO,WAAW,CAAC;AACrB,CAAC;AAJD,gEAIC"}
|
|
1
|
+
{"version":3,"file":"phone.js","sourceRoot":"","sources":["../../../src/domain/contact/phone.ts"],"names":[],"mappings":";;;AAAA,gDAA2D;AAE9C,QAAA,WAAW,GAAG,EAAE,CAAC;AACjB,QAAA,kBAAkB,GAAG,YAAY,CAAC;AAE/C,SAAgB,aAAa,CAAC,KAAa;IACzC,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC9C,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,MAAM,IAAI,EAAE,CAAC;AAC3D,CAAC;AAHD,sCAGC;AAED,SAAgB,YAAY,CAAC,KAAa;IACxC,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,IAAI,KAAK,CAAC,MAAM,KAAK,mBAAW;QAAE,OAAO,KAAK,CAAC;IAC/C,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACpC,OAAO,IAAI,CAAC;AACd,CAAC;AALD,oCAKC;AAED;;;;;GAKG;AACH,SAAgB,2BAA2B,CAAC,SAAiB;IAC3D,MAAM,QAAQ,GAAG,IAAA,6BAAoB,EAAC,SAAS,CAAC,CAAC;IACjD,MAAM,gBAAgB,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;IAC7C,IAAI,gBAAgB,IAAI,QAAQ,CAAC,MAAM,KAAK,mBAAW,GAAG,CAAC,EAAE;QAC3D,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KAC1B;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAPD,kEAOC;AACD;;;;;;GAMG;AACH,SAAgB,oBAAoB,CAClC,SAAiB,EACjB,aAAa,GAAG,2BAA2B;IAE3C,MAAM,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IAC5C,IAAI,UAAU,CAAC,MAAM,GAAG,mBAAW,EAAE;QACnC,MAAM,gBAAgB,GAAG,UAAU,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;QAC/C,MAAM,eAAe,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjD,OAAO,UAAU,CAAC,KAAK,CAAC,eAAe,EAAE,eAAe,GAAG,mBAAW,CAAC,CAAC;KACzE;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAXD,oDAWC;AAED,SAAgB,0BAA0B,CAAC,SAAiB;IAC1D,MAAM,WAAW,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;IACpD,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAClE,OAAO,WAAW,CAAC;AACrB,CAAC;AAJD,gEAIC;AAED,SAAgB,wBAAwB,CAAC,SAAiB;IACxD,MAAM,WAAW,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;IACpD,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC;QAAE,OAAO,SAAS,CAAC;IACjD,OAAO,WAAW,CAAC;AACrB,CAAC;AAJD,4DAIC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@metriport/shared",
|
|
3
|
-
"version": "0.13.
|
|
3
|
+
"version": "0.13.5-alpha.0",
|
|
4
4
|
"description": "Common code shared across packages - by Metriport Inc.",
|
|
5
5
|
"author": "Metriport Inc. <contact@metriport.com>",
|
|
6
6
|
"homepage": "https://metriport.com/",
|
|
@@ -65,5 +65,5 @@
|
|
|
65
65
|
"devDependencies": {
|
|
66
66
|
"@faker-js/faker": "^8.0.2"
|
|
67
67
|
},
|
|
68
|
-
"gitHead": "
|
|
68
|
+
"gitHead": "32681c706f23218103a3d2f76db6414df51bb81e"
|
|
69
69
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"normalize-zip.test.d.ts","sourceRoot":"","sources":["../../../src/common/__tests__/normalize-zip.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const normalize_zip_1 = require("../normalize-zip");
|
|
4
|
-
describe("normalizeZipCode", () => {
|
|
5
|
-
test("should handle short zip codes", () => {
|
|
6
|
-
const input = "1234";
|
|
7
|
-
const expectedOutput = "1234";
|
|
8
|
-
expect((0, normalize_zip_1.normalizeZipCode)(input)).toBe(expectedOutput);
|
|
9
|
-
});
|
|
10
|
-
test("should return first 4 characters when zip code length is 9", () => {
|
|
11
|
-
const input = "1234-6677";
|
|
12
|
-
const expectedOutput = "1234";
|
|
13
|
-
expect((0, normalize_zip_1.normalizeZipCode)(input)).toBe(expectedOutput);
|
|
14
|
-
});
|
|
15
|
-
test("should return first 5 characters when zip code length is 10", () => {
|
|
16
|
-
const input = "12345-6677";
|
|
17
|
-
const expectedOutput = "12345";
|
|
18
|
-
expect((0, normalize_zip_1.normalizeZipCode)(input)).toBe(expectedOutput);
|
|
19
|
-
});
|
|
20
|
-
test("should return first 5 characters when zip code length is 5", () => {
|
|
21
|
-
const input = "54321";
|
|
22
|
-
const expectedOutput = "54321";
|
|
23
|
-
expect((0, normalize_zip_1.normalizeZipCode)(input)).toBe(expectedOutput);
|
|
24
|
-
});
|
|
25
|
-
test("should throw an error if zip contains non-digit and non-dash characters (length 9)", () => {
|
|
26
|
-
const input = "12345-667a";
|
|
27
|
-
expect(() => (0, normalize_zip_1.normalizeZipCode)(input)).toThrow();
|
|
28
|
-
});
|
|
29
|
-
test("should throw an error if zip contains non-digit and non-dash characters (length 5)", () => {
|
|
30
|
-
const input = "1234a";
|
|
31
|
-
expect(() => (0, normalize_zip_1.normalizeZipCode)(input)).toThrow();
|
|
32
|
-
});
|
|
33
|
-
test("should throw an error if zip is an empty string", () => {
|
|
34
|
-
const input = "";
|
|
35
|
-
expect(() => (0, normalize_zip_1.normalizeZipCode)(input)).toThrow();
|
|
36
|
-
});
|
|
37
|
-
});
|
|
38
|
-
//# sourceMappingURL=normalize-zip.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"normalize-zip.test.js","sourceRoot":"","sources":["../../../src/common/__tests__/normalize-zip.test.ts"],"names":[],"mappings":";;AAAA,oDAAoD;AAEpD,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACzC,MAAM,KAAK,GAAG,MAAM,CAAC;QACrB,MAAM,cAAc,GAAG,MAAM,CAAC;QAC9B,MAAM,CAAC,IAAA,gCAAgB,EAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACtE,MAAM,KAAK,GAAG,WAAW,CAAC;QAC1B,MAAM,cAAc,GAAG,MAAM,CAAC;QAC9B,MAAM,CAAC,IAAA,gCAAgB,EAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACvE,MAAM,KAAK,GAAG,YAAY,CAAC;QAC3B,MAAM,cAAc,GAAG,OAAO,CAAC;QAC/B,MAAM,CAAC,IAAA,gCAAgB,EAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACtE,MAAM,KAAK,GAAG,OAAO,CAAC;QACtB,MAAM,cAAc,GAAG,OAAO,CAAC;QAC/B,MAAM,CAAC,IAAA,gCAAgB,EAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,oFAAoF,EAAE,GAAG,EAAE;QAC9F,MAAM,KAAK,GAAG,YAAY,CAAC;QAC3B,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,gCAAgB,EAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,oFAAoF,EAAE,GAAG,EAAE;QAC9F,MAAM,KAAK,GAAG,OAAO,CAAC;QACtB,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,gCAAgB,EAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,iDAAiD,EAAE,GAAG,EAAE;QAC3D,MAAM,KAAK,GAAG,EAAE,CAAC;QACjB,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,gCAAgB,EAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAClD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Normalizes a zip code by taking the first 4-5 characters.
|
|
3
|
-
* @param zipCode - The zip code to be normalized.
|
|
4
|
-
* @returns The normalized zip code as a string.
|
|
5
|
-
*
|
|
6
|
-
* TODO: Refactor, so `normalize` simply returns a zip of a certain format and returns undefined if it cannot,
|
|
7
|
-
* while `validate` would throw an error.
|
|
8
|
-
*/
|
|
9
|
-
export declare function normalizeZipCode(zipCode: string): string;
|
|
10
|
-
//# sourceMappingURL=normalize-zip.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"normalize-zip.d.ts","sourceRoot":"","sources":["../../src/common/normalize-zip.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAQxD"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.normalizeZipCode = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Normalizes a zip code by taking the first 4-5 characters.
|
|
6
|
-
* @param zipCode - The zip code to be normalized.
|
|
7
|
-
* @returns The normalized zip code as a string.
|
|
8
|
-
*
|
|
9
|
-
* TODO: Refactor, so `normalize` simply returns a zip of a certain format and returns undefined if it cannot,
|
|
10
|
-
* while `validate` would throw an error.
|
|
11
|
-
*/
|
|
12
|
-
function normalizeZipCode(zipCode) {
|
|
13
|
-
const trimmedZip = zipCode.trim();
|
|
14
|
-
if (!isValidZipCode(trimmedZip)) {
|
|
15
|
-
throw new Error("Zip codes may only contain numbers (0-9) and a dash (-)");
|
|
16
|
-
}
|
|
17
|
-
if (trimmedZip.includes("-") && trimmedZip.trim().length === 9)
|
|
18
|
-
return trimmedZip.slice(0, 4);
|
|
19
|
-
if (trimmedZip.trim().length === 8)
|
|
20
|
-
return trimmedZip.slice(0, 4);
|
|
21
|
-
return trimmedZip.slice(0, 5);
|
|
22
|
-
}
|
|
23
|
-
exports.normalizeZipCode = normalizeZipCode;
|
|
24
|
-
function isValidZipCode(zipCode) {
|
|
25
|
-
if (zipCode.length === 0)
|
|
26
|
-
return false;
|
|
27
|
-
const regex = /^[0-9-]+$/;
|
|
28
|
-
return regex.test(zipCode);
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=normalize-zip.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"normalize-zip.js","sourceRoot":"","sources":["../../src/common/normalize-zip.ts"],"names":[],"mappings":";;;AAAA;;;;;;;GAOG;AACH,SAAgB,gBAAgB,CAAC,OAAe;IAC9C,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAClC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE;QAC/B,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;KAC5E;IACD,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9F,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAClE,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAChC,CAAC;AARD,4CAQC;AAED,SAAS,cAAc,CAAC,OAAe;IACrC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACvC,MAAM,KAAK,GAAG,WAAW,CAAC;IAC1B,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC7B,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file-downloader.d.ts","sourceRoot":"","sources":["../../../src/net/__tests__/file-downloader.ts"],"names":[],"mappings":""}
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
const fs = __importStar(require("fs"));
|
|
27
|
-
const file_downloader_1 = require("../file-downloader");
|
|
28
|
-
/**
|
|
29
|
-
* - Create a temporary folder with files to download
|
|
30
|
-
* - Create an HTTP server to serve the files:
|
|
31
|
-
* $ python3 -m http.server 8432
|
|
32
|
-
* - Update the `url` and `extension` constants with the name of the file to download
|
|
33
|
-
*/
|
|
34
|
-
const url = "http://localhost:8432/file.png";
|
|
35
|
-
const extension = "png";
|
|
36
|
-
async function main1(fileName) {
|
|
37
|
-
console.log(`Downloading file from: ${url} directly into the filesystem...`);
|
|
38
|
-
const outputStream = fs.createWriteStream(fileName);
|
|
39
|
-
await (0, file_downloader_1.downloadToStream)({
|
|
40
|
-
url,
|
|
41
|
-
outputStream,
|
|
42
|
-
});
|
|
43
|
-
console.log(`Done`);
|
|
44
|
-
}
|
|
45
|
-
async function main2(fileName) {
|
|
46
|
-
console.log(`Downloading file from: ${url}...`);
|
|
47
|
-
const buf = await (0, file_downloader_1.downloadToMemory)({
|
|
48
|
-
url,
|
|
49
|
-
});
|
|
50
|
-
console.log(`Downloaded to buffer, storing on the filesystem...`);
|
|
51
|
-
fs.writeFileSync(fileName, buf);
|
|
52
|
-
console.log(`Done`);
|
|
53
|
-
}
|
|
54
|
-
async function main3(fileName) {
|
|
55
|
-
console.log(`Downloading file from: ${url}...`);
|
|
56
|
-
await (0, file_downloader_1.downloadToFile)({
|
|
57
|
-
url,
|
|
58
|
-
filePath: fileName,
|
|
59
|
-
});
|
|
60
|
-
console.log(`Done`);
|
|
61
|
-
}
|
|
62
|
-
const getFilename = (suffix) => `file_${suffix}.${extension}`;
|
|
63
|
-
main1(getFilename("from_stream"));
|
|
64
|
-
main2(getFilename("from_memory"));
|
|
65
|
-
main3(getFilename("direct"));
|
|
66
|
-
//# sourceMappingURL=file-downloader.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file-downloader.js","sourceRoot":"","sources":["../../../src/net/__tests__/file-downloader.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,wDAAwF;AAExF;;;;;GAKG;AACH,MAAM,GAAG,GAAG,gCAAgC,CAAC;AAC7C,MAAM,SAAS,GAAG,KAAK,CAAC;AAExB,KAAK,UAAU,KAAK,CAAC,QAAgB;IACnC,OAAO,CAAC,GAAG,CAAC,0BAA0B,GAAG,kCAAkC,CAAC,CAAC;IAC7E,MAAM,YAAY,GAAG,EAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACpD,MAAM,IAAA,kCAAgB,EAAC;QACrB,GAAG;QACH,YAAY;KACb,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACtB,CAAC;AAED,KAAK,UAAU,KAAK,CAAC,QAAgB;IACnC,OAAO,CAAC,GAAG,CAAC,0BAA0B,GAAG,KAAK,CAAC,CAAC;IAChD,MAAM,GAAG,GAAG,MAAM,IAAA,kCAAgB,EAAC;QACjC,GAAG;KACJ,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;IAClE,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAEhC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACtB,CAAC;AACD,KAAK,UAAU,KAAK,CAAC,QAAgB;IACnC,OAAO,CAAC,GAAG,CAAC,0BAA0B,GAAG,KAAK,CAAC,CAAC;IAChD,MAAM,IAAA,gCAAc,EAAC;QACnB,GAAG;QACH,QAAQ,EAAE,QAAQ;KACnB,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACtB,CAAC;AAED,MAAM,WAAW,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,QAAQ,MAAM,IAAI,SAAS,EAAE,CAAC;AAEtE,KAAK,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC;AAClC,KAAK,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC;AAClC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
/// <reference types="node" />
|
|
3
|
-
import * as stream from "stream";
|
|
4
|
-
type BaseParams = {
|
|
5
|
-
headers?: {
|
|
6
|
-
[index: string]: string;
|
|
7
|
-
};
|
|
8
|
-
timeout?: number;
|
|
9
|
-
};
|
|
10
|
-
export type DownloadToStreamParams = BaseParams & {
|
|
11
|
-
url: string;
|
|
12
|
-
outputStream: stream.Writable;
|
|
13
|
-
};
|
|
14
|
-
export type DownloadToMemoryParams = Omit<DownloadToStreamParams, "outputStream">;
|
|
15
|
-
export type DownloadToFileParams = Omit<DownloadToStreamParams, "outputStream"> & {
|
|
16
|
-
filePath: string;
|
|
17
|
-
};
|
|
18
|
-
export declare function downloadToStream({ url, outputStream, ...configParams }: DownloadToStreamParams): Promise<boolean>;
|
|
19
|
-
export declare function downloadToMemory({ url, ...configParams }: DownloadToMemoryParams): Promise<Buffer>;
|
|
20
|
-
export declare function downloadToFile(params: DownloadToFileParams): Promise<void>;
|
|
21
|
-
export {};
|
|
22
|
-
//# sourceMappingURL=file-downloader.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file-downloader.d.ts","sourceRoot":"","sources":["../../src/net/file-downloader.ts"],"names":[],"mappings":";;AAEA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAKjC,KAAK,UAAU,GAAG;IAChB,OAAO,CAAC,EAAE;QACR,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;KACzB,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,UAAU,GAAG;IAChD,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,EAAE,cAAc,CAAC,CAAC;AAElF,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,sBAAsB,EAAE,cAAc,CAAC,GAAG;IAChF,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,wBAAsB,gBAAgB,CAAC,EACrC,GAAG,EACH,YAAY,EACZ,GAAG,YAAY,EAChB,EAAE,sBAAsB,GAAG,OAAO,CAAC,OAAO,CAAC,CAK3C;AAED,wBAAsB,gBAAgB,CAAC,EACrC,GAAG,EACH,GAAG,YAAY,EAChB,EAAE,sBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,CAI1C;AAED,wBAAsB,cAAc,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAMhF"}
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
-
};
|
|
28
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.downloadToFile = exports.downloadToMemory = exports.downloadToStream = void 0;
|
|
30
|
-
const axios_1 = __importDefault(require("axios"));
|
|
31
|
-
const fs = __importStar(require("fs"));
|
|
32
|
-
const stream = __importStar(require("stream"));
|
|
33
|
-
const util = __importStar(require("util"));
|
|
34
|
-
const pipeline = util.promisify(stream.pipeline);
|
|
35
|
-
async function downloadToStream({ url, outputStream, ...configParams }) {
|
|
36
|
-
const requestConfig = buildRequestConfig(configParams, "stream");
|
|
37
|
-
const response = await axios_1.default.get(url, requestConfig);
|
|
38
|
-
await pipeline(response.data, outputStream);
|
|
39
|
-
return true;
|
|
40
|
-
}
|
|
41
|
-
exports.downloadToStream = downloadToStream;
|
|
42
|
-
async function downloadToMemory({ url, ...configParams }) {
|
|
43
|
-
const requestConfig = buildRequestConfig(configParams, "arraybuffer");
|
|
44
|
-
const response = await axios_1.default.get(url, requestConfig);
|
|
45
|
-
return await response.data;
|
|
46
|
-
}
|
|
47
|
-
exports.downloadToMemory = downloadToMemory;
|
|
48
|
-
async function downloadToFile(params) {
|
|
49
|
-
const outputStream = fs.createWriteStream(params.filePath);
|
|
50
|
-
await downloadToStream({
|
|
51
|
-
...params,
|
|
52
|
-
outputStream,
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
exports.downloadToFile = downloadToFile;
|
|
56
|
-
function buildRequestConfig({ timeout, headers }, responseType) {
|
|
57
|
-
const requestConfig = {
|
|
58
|
-
responseType,
|
|
59
|
-
...(timeout ? { timeout } : undefined),
|
|
60
|
-
transitional: {
|
|
61
|
-
clarifyTimeoutError: true,
|
|
62
|
-
},
|
|
63
|
-
...(headers && { headers }),
|
|
64
|
-
};
|
|
65
|
-
return requestConfig;
|
|
66
|
-
}
|
|
67
|
-
//# sourceMappingURL=file-downloader.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file-downloader.js","sourceRoot":"","sources":["../../src/net/file-downloader.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAAgE;AAChE,uCAAyB;AACzB,+CAAiC;AACjC,2CAA6B;AAE7B,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAoB1C,KAAK,UAAU,gBAAgB,CAAC,EACrC,GAAG,EACH,YAAY,EACZ,GAAG,YAAY,EACQ;IACvB,MAAM,aAAa,GAAG,kBAAkB,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACjE,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IACrD,MAAM,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAC5C,OAAO,IAAI,CAAC;AACd,CAAC;AATD,4CASC;AAEM,KAAK,UAAU,gBAAgB,CAAC,EACrC,GAAG,EACH,GAAG,YAAY,EACQ;IACvB,MAAM,aAAa,GAAG,kBAAkB,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;IACtE,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IACrD,OAAO,MAAM,QAAQ,CAAC,IAAI,CAAC;AAC7B,CAAC;AAPD,4CAOC;AAEM,KAAK,UAAU,cAAc,CAAC,MAA4B;IAC/D,MAAM,YAAY,GAAG,EAAE,CAAC,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC3D,MAAM,gBAAgB,CAAC;QACrB,GAAG,MAAM;QACT,YAAY;KACb,CAAC,CAAC;AACL,CAAC;AAND,wCAMC;AAED,SAAS,kBAAkB,CACzB,EAAE,OAAO,EAAE,OAAO,EAAc,EAChC,YAA0B;IAE1B,MAAM,aAAa,GAAuB;QACxC,YAAY;QACZ,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACtC,YAAY,EAAE;YACZ,mBAAmB,EAAE,IAAI;SAC1B;QACD,GAAG,CAAC,OAAO,IAAI,EAAE,OAAO,EAAE,CAAC;KAC5B,CAAC;IACF,OAAO,aAAa,CAAC;AACvB,CAAC"}
|