@juzi/file-box 1.7.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/LICENSE +201 -0
- package/README.md +613 -0
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/src/config.d.ts +4 -0
- package/dist/cjs/src/config.d.ts.map +1 -0
- package/dist/cjs/src/config.js +9 -0
- package/dist/cjs/src/config.js.map +1 -0
- package/dist/cjs/src/file-box.d.ts +209 -0
- package/dist/cjs/src/file-box.d.ts.map +1 -0
- package/dist/cjs/src/file-box.js +804 -0
- package/dist/cjs/src/file-box.js.map +1 -0
- package/dist/cjs/src/file-box.spec.d.ts +14 -0
- package/dist/cjs/src/file-box.spec.d.ts.map +1 -0
- package/dist/cjs/src/file-box.spec.js +393 -0
- package/dist/cjs/src/file-box.spec.js.map +1 -0
- package/dist/cjs/src/file-box.type.d.ts +103 -0
- package/dist/cjs/src/file-box.type.d.ts.map +1 -0
- package/dist/cjs/src/file-box.type.js +34 -0
- package/dist/cjs/src/file-box.type.js.map +1 -0
- package/dist/cjs/src/interface.d.ts +25 -0
- package/dist/cjs/src/interface.d.ts.map +1 -0
- package/dist/cjs/src/interface.js +3 -0
- package/dist/cjs/src/interface.js.map +1 -0
- package/dist/cjs/src/interface.spec.d.ts +3 -0
- package/dist/cjs/src/interface.spec.d.ts.map +1 -0
- package/dist/cjs/src/interface.spec.js +11 -0
- package/dist/cjs/src/interface.spec.js.map +1 -0
- package/dist/cjs/src/misc.d.ts +17 -0
- package/dist/cjs/src/misc.d.ts.map +1 -0
- package/dist/cjs/src/misc.js +137 -0
- package/dist/cjs/src/misc.js.map +1 -0
- package/dist/cjs/src/misc.spec.d.ts +3 -0
- package/dist/cjs/src/misc.spec.d.ts.map +1 -0
- package/dist/cjs/src/misc.spec.js +51 -0
- package/dist/cjs/src/misc.spec.js.map +1 -0
- package/dist/cjs/src/mod.d.ts +9 -0
- package/dist/cjs/src/mod.d.ts.map +1 -0
- package/dist/cjs/src/mod.js +12 -0
- package/dist/cjs/src/mod.js.map +1 -0
- package/dist/cjs/src/pure-functions/sized-chunk-transformer.d.ts +13 -0
- package/dist/cjs/src/pure-functions/sized-chunk-transformer.d.ts.map +1 -0
- package/dist/cjs/src/pure-functions/sized-chunk-transformer.js +45 -0
- package/dist/cjs/src/pure-functions/sized-chunk-transformer.js.map +1 -0
- package/dist/cjs/src/pure-functions/sized-chunk-transformer.spec.d.ts +3 -0
- package/dist/cjs/src/pure-functions/sized-chunk-transformer.spec.d.ts.map +1 -0
- package/dist/cjs/src/pure-functions/sized-chunk-transformer.spec.js +39 -0
- package/dist/cjs/src/pure-functions/sized-chunk-transformer.spec.js.map +1 -0
- package/dist/cjs/src/qrcode.d.ts +6 -0
- package/dist/cjs/src/qrcode.d.ts.map +1 -0
- package/dist/cjs/src/qrcode.js +35 -0
- package/dist/cjs/src/qrcode.js.map +1 -0
- package/dist/cjs/src/qrcode.spec.d.ts +3 -0
- package/dist/cjs/src/qrcode.spec.d.ts.map +1 -0
- package/dist/cjs/src/qrcode.spec.js +47 -0
- package/dist/cjs/src/qrcode.spec.js.map +1 -0
- package/dist/cjs/src/urn-registry/mod.d.ts +3 -0
- package/dist/cjs/src/urn-registry/mod.d.ts.map +1 -0
- package/dist/cjs/src/urn-registry/mod.js +6 -0
- package/dist/cjs/src/urn-registry/mod.js.map +1 -0
- package/dist/cjs/src/urn-registry/random-uuid.d.ts +4 -0
- package/dist/cjs/src/urn-registry/random-uuid.d.ts.map +1 -0
- package/dist/cjs/src/urn-registry/random-uuid.js +30 -0
- package/dist/cjs/src/urn-registry/random-uuid.js.map +1 -0
- package/dist/cjs/src/urn-registry/uniform-resource-name-registry.d.ts +76 -0
- package/dist/cjs/src/urn-registry/uniform-resource-name-registry.d.ts.map +1 -0
- package/dist/cjs/src/urn-registry/uniform-resource-name-registry.js +259 -0
- package/dist/cjs/src/urn-registry/uniform-resource-name-registry.js.map +1 -0
- package/dist/cjs/src/urn-registry/uniform-resource-name-registry.spec.d.ts +3 -0
- package/dist/cjs/src/urn-registry/uniform-resource-name-registry.spec.d.ts.map +1 -0
- package/dist/cjs/src/urn-registry/uniform-resource-name-registry.spec.js +81 -0
- package/dist/cjs/src/urn-registry/uniform-resource-name-registry.spec.js.map +1 -0
- package/dist/cjs/src/urn-registry/uuid-to-big-int.d.ts +8 -0
- package/dist/cjs/src/urn-registry/uuid-to-big-int.d.ts.map +1 -0
- package/dist/cjs/src/urn-registry/uuid-to-big-int.js +16 -0
- package/dist/cjs/src/urn-registry/uuid-to-big-int.js.map +1 -0
- package/dist/cjs/src/urn-registry/uuid-to-big-int.spec.d.ts +3 -0
- package/dist/cjs/src/urn-registry/uuid-to-big-int.spec.d.ts.map +1 -0
- package/dist/cjs/src/urn-registry/uuid-to-big-int.spec.js +17 -0
- package/dist/cjs/src/urn-registry/uuid-to-big-int.spec.js.map +1 -0
- package/dist/cjs/src/version.d.ts +5 -0
- package/dist/cjs/src/version.d.ts.map +1 -0
- package/dist/cjs/src/version.js +8 -0
- package/dist/cjs/src/version.js.map +1 -0
- package/dist/cjs/src/version.spec.d.ts +3 -0
- package/dist/cjs/src/version.spec.d.ts.map +1 -0
- package/dist/cjs/src/version.spec.js +9 -0
- package/dist/cjs/src/version.spec.js.map +1 -0
- package/dist/cjs/tests/integration.spec.d.ts +3 -0
- package/dist/cjs/tests/integration.spec.d.ts.map +1 -0
- package/dist/cjs/tests/integration.spec.js +8 -0
- package/dist/cjs/tests/integration.spec.js.map +1 -0
- package/dist/cjs/tests/network-timeout.spec.d.ts +3 -0
- package/dist/cjs/tests/network-timeout.spec.d.ts.map +1 -0
- package/dist/cjs/tests/network-timeout.spec.js +121 -0
- package/dist/cjs/tests/network-timeout.spec.js.map +1 -0
- package/dist/esm/src/config.d.ts +4 -0
- package/dist/esm/src/config.d.ts.map +1 -0
- package/dist/esm/src/config.js +5 -0
- package/dist/esm/src/config.js.map +1 -0
- package/dist/esm/src/file-box.d.ts +209 -0
- package/dist/esm/src/file-box.d.ts.map +1 -0
- package/dist/esm/src/file-box.js +775 -0
- package/dist/esm/src/file-box.js.map +1 -0
- package/dist/esm/src/file-box.spec.d.ts +14 -0
- package/dist/esm/src/file-box.spec.d.ts.map +1 -0
- package/dist/esm/src/file-box.spec.js +386 -0
- package/dist/esm/src/file-box.spec.js.map +1 -0
- package/dist/esm/src/file-box.type.d.ts +103 -0
- package/dist/esm/src/file-box.type.d.ts.map +1 -0
- package/dist/esm/src/file-box.type.js +31 -0
- package/dist/esm/src/file-box.type.js.map +1 -0
- package/dist/esm/src/interface.d.ts +25 -0
- package/dist/esm/src/interface.d.ts.map +1 -0
- package/dist/esm/src/interface.js +2 -0
- package/dist/esm/src/interface.js.map +1 -0
- package/dist/esm/src/interface.spec.d.ts +3 -0
- package/dist/esm/src/interface.spec.d.ts.map +1 -0
- package/dist/esm/src/interface.spec.js +9 -0
- package/dist/esm/src/interface.spec.js.map +1 -0
- package/dist/esm/src/misc.d.ts +17 -0
- package/dist/esm/src/misc.d.ts.map +1 -0
- package/dist/esm/src/misc.js +126 -0
- package/dist/esm/src/misc.js.map +1 -0
- package/dist/esm/src/misc.spec.d.ts +3 -0
- package/dist/esm/src/misc.spec.d.ts.map +1 -0
- package/dist/esm/src/misc.spec.js +49 -0
- package/dist/esm/src/misc.spec.js.map +1 -0
- package/dist/esm/src/mod.d.ts +9 -0
- package/dist/esm/src/mod.d.ts.map +1 -0
- package/dist/esm/src/mod.js +6 -0
- package/dist/esm/src/mod.js.map +1 -0
- package/dist/esm/src/pure-functions/sized-chunk-transformer.d.ts +13 -0
- package/dist/esm/src/pure-functions/sized-chunk-transformer.d.ts.map +1 -0
- package/dist/esm/src/pure-functions/sized-chunk-transformer.js +39 -0
- package/dist/esm/src/pure-functions/sized-chunk-transformer.js.map +1 -0
- package/dist/esm/src/pure-functions/sized-chunk-transformer.spec.d.ts +3 -0
- package/dist/esm/src/pure-functions/sized-chunk-transformer.spec.d.ts.map +1 -0
- package/dist/esm/src/pure-functions/sized-chunk-transformer.spec.js +37 -0
- package/dist/esm/src/pure-functions/sized-chunk-transformer.spec.js.map +1 -0
- package/dist/esm/src/qrcode.d.ts +6 -0
- package/dist/esm/src/qrcode.d.ts.map +1 -0
- package/dist/esm/src/qrcode.js +27 -0
- package/dist/esm/src/qrcode.js.map +1 -0
- package/dist/esm/src/qrcode.spec.d.ts +3 -0
- package/dist/esm/src/qrcode.spec.d.ts.map +1 -0
- package/dist/esm/src/qrcode.spec.js +45 -0
- package/dist/esm/src/qrcode.spec.js.map +1 -0
- package/dist/esm/src/urn-registry/mod.d.ts +3 -0
- package/dist/esm/src/urn-registry/mod.d.ts.map +1 -0
- package/dist/esm/src/urn-registry/mod.js +3 -0
- package/dist/esm/src/urn-registry/mod.js.map +1 -0
- package/dist/esm/src/urn-registry/random-uuid.d.ts +4 -0
- package/dist/esm/src/urn-registry/random-uuid.d.ts.map +1 -0
- package/dist/esm/src/urn-registry/random-uuid.js +4 -0
- package/dist/esm/src/urn-registry/random-uuid.js.map +1 -0
- package/dist/esm/src/urn-registry/uniform-resource-name-registry.d.ts +76 -0
- package/dist/esm/src/urn-registry/uniform-resource-name-registry.d.ts.map +1 -0
- package/dist/esm/src/urn-registry/uniform-resource-name-registry.js +253 -0
- package/dist/esm/src/urn-registry/uniform-resource-name-registry.js.map +1 -0
- package/dist/esm/src/urn-registry/uniform-resource-name-registry.spec.d.ts +3 -0
- package/dist/esm/src/urn-registry/uniform-resource-name-registry.spec.d.ts.map +1 -0
- package/dist/esm/src/urn-registry/uniform-resource-name-registry.spec.js +79 -0
- package/dist/esm/src/urn-registry/uniform-resource-name-registry.spec.js.map +1 -0
- package/dist/esm/src/urn-registry/uuid-to-big-int.d.ts +8 -0
- package/dist/esm/src/urn-registry/uuid-to-big-int.d.ts.map +1 -0
- package/dist/esm/src/urn-registry/uuid-to-big-int.js +13 -0
- package/dist/esm/src/urn-registry/uuid-to-big-int.js.map +1 -0
- package/dist/esm/src/urn-registry/uuid-to-big-int.spec.d.ts +3 -0
- package/dist/esm/src/urn-registry/uuid-to-big-int.spec.d.ts.map +1 -0
- package/dist/esm/src/urn-registry/uuid-to-big-int.spec.js +15 -0
- package/dist/esm/src/urn-registry/uuid-to-big-int.spec.js.map +1 -0
- package/dist/esm/src/version.d.ts +5 -0
- package/dist/esm/src/version.d.ts.map +1 -0
- package/dist/esm/src/version.js +5 -0
- package/dist/esm/src/version.js.map +1 -0
- package/dist/esm/src/version.spec.d.ts +3 -0
- package/dist/esm/src/version.spec.d.ts.map +1 -0
- package/dist/esm/src/version.spec.js +7 -0
- package/dist/esm/src/version.spec.js.map +1 -0
- package/dist/esm/tests/integration.spec.d.ts +3 -0
- package/dist/esm/tests/integration.spec.d.ts.map +1 -0
- package/dist/esm/tests/integration.spec.js +6 -0
- package/dist/esm/tests/integration.spec.js.map +1 -0
- package/dist/esm/tests/network-timeout.spec.d.ts +3 -0
- package/dist/esm/tests/network-timeout.spec.d.ts.map +1 -0
- package/dist/esm/tests/network-timeout.spec.js +119 -0
- package/dist/esm/tests/network-timeout.spec.js.map +1 -0
- package/package.json +85 -0
- package/src/config.ts +5 -0
- package/src/file-box.spec.ts +480 -0
- package/src/file-box.ts +1042 -0
- package/src/file-box.type.ts +145 -0
- package/src/interface.spec.ts +17 -0
- package/src/interface.ts +47 -0
- package/src/misc.spec.ts +70 -0
- package/src/misc.ts +157 -0
- package/src/mod.ts +33 -0
- package/src/pure-functions/sized-chunk-transformer.spec.ts +52 -0
- package/src/pure-functions/sized-chunk-transformer.ts +49 -0
- package/src/qrcode.spec.ts +55 -0
- package/src/qrcode.ts +38 -0
- package/src/typings.d.ts +1 -0
- package/src/urn-registry/mod.ts +7 -0
- package/src/urn-registry/random-uuid.ts +7 -0
- package/src/urn-registry/uniform-resource-name-registry.spec.ts +109 -0
- package/src/urn-registry/uniform-resource-name-registry.ts +342 -0
- package/src/urn-registry/uuid-to-big-int.spec.ts +19 -0
- package/src/urn-registry/uuid-to-big-int.ts +16 -0
- package/src/version.spec.ts +9 -0
- package/src/version.ts +4 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../../src/interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACZ,MAA4B,aAAa,CAAA;AAC1C,OAAO,KAAK,EACV,OAAO,EACR,MAA4B,eAAe,CAAA;AAE5C,UAAU,gBAAgB;IACxB,IAAI,EAAQ,OAAO,CAAC,MAAM,CAAC,CAAA;IAE3B,IAAI,EAAQ,OAAO,CAAC,MAAM,CAAC,CAAA;IAC3B,IAAI,EAAQ,OAAO,CAAC,MAAM,CAAC,CAAA;IAC3B,GAAG,EAAS,OAAO,CAAC,KAAK,CAAC,CAAA;IAC1B,SAAS,EAAG,OAAO,CAAC,WAAW,CAAC,CAAA;IAChC,QAAQ,EAAI,OAAO,CAAC,UAAU,CAAC,CAAA;IAY/B,QAAQ,EAAI,OAAO,CAAC,UAAU,CAAC,CAAA;IAC/B,QAAQ,EAAI,OAAO,CAAC,UAAU,CAAC,CAAA;IAC/B,SAAS,EAAG,OAAO,CAAC,WAAW,CAAC,CAAA;IAChC,MAAM,EAAM,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC7B,MAAM,EAAM,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC7B,QAAQ,EAAI,OAAO,CAAC,UAAU,CAAC,CAAA;IAC/B,QAAQ,EAAI,OAAO,CAAC,UAAU,CAAC,CAAA;IAC/B,MAAM,EAAM,OAAO,CAAC,QAAQ,CAAC,CAAA;IAE7B,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;CACtB;AAED;;GAEG;AACH,KAAK,kBAAkB,GAAG,WAAW,CAAC,gBAAgB,CAAC,CAAA;AAEvD,YAAY,EACV,gBAAgB,EAChB,kBAAkB,GACnB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interface.js","sourceRoot":"","sources":["../../../src/interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interface.spec.d.ts","sourceRoot":"","sources":["../../../src/interface.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
#!/usr/bin/env -S node --no-warnings --loader ts-node/esm
|
|
2
|
+
"use strict";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
// tslint:disable:no-shadowed-variable
|
|
5
|
+
const tstest_1 = require("tstest");
|
|
6
|
+
const file_box_js_1 = require("./file-box.js");
|
|
7
|
+
(0, tstest_1.test)('FileBoxInterface', async (t) => {
|
|
8
|
+
const fileBox = file_box_js_1.FileBox.fromQRCode('test');
|
|
9
|
+
t.ok(fileBox, 'should be ok with interface');
|
|
10
|
+
});
|
|
11
|
+
//# sourceMappingURL=interface.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interface.spec.js","sourceRoot":"","sources":["../../../src/interface.spec.ts"],"names":[],"mappings":";;;AAEA,sCAAsC;AACtC,mCAA8B;AAM9B,+CAEgC;AAEhC,IAAA,aAAI,EAAC,kBAAkB,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IACjC,MAAM,OAAO,GAAqB,qBAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;IAC5D,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,6BAA6B,CAAC,CAAA;AAC9C,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
3
|
+
/// <reference types="node" />
|
|
4
|
+
import http from 'http';
|
|
5
|
+
import type stream from 'stream';
|
|
6
|
+
export declare function dataUrlToBase64(dataUrl: string): string;
|
|
7
|
+
/**
|
|
8
|
+
* Get http headers for specific `url`
|
|
9
|
+
* follow 302 redirection for max `REDIRECT_TTL` times.
|
|
10
|
+
*
|
|
11
|
+
* @credit https://stackoverflow.com/a/43632171/1123955
|
|
12
|
+
*/
|
|
13
|
+
export declare function httpHeadHeader(url: string): Promise<http.IncomingHttpHeaders>;
|
|
14
|
+
export declare function httpHeaderToFileName(headers: http.IncomingHttpHeaders): null | string;
|
|
15
|
+
export declare function httpStream(url: string, headers?: http.OutgoingHttpHeaders): Promise<http.IncomingMessage>;
|
|
16
|
+
export declare function streamToBuffer(stream: stream.Readable): Promise<Buffer>;
|
|
17
|
+
//# sourceMappingURL=misc.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"misc.d.ts","sourceRoot":"","sources":["../../../src/misc.ts"],"names":[],"mappings":";;;AAAA,OAAO,IAAI,MAAS,MAAM,CAAA;AAG1B,OAAO,KAAK,MAAM,MAAQ,QAAQ,CAAA;AAIlC,wBAAgB,eAAe,CAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAGxD;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAwDpF;AAED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,IAAI,CAAC,mBAAmB,GAChC,IAAI,GAAG,MAAM,CAef;AAED,wBAAsB,UAAU,CAC9B,GAAG,EAAO,MAAM,EAChB,OAAO,GAAG,IAAI,CAAC,mBAAwB,GACtC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CA4C/B;AAED,wBAAsB,cAAc,CAClC,MAAM,EAAE,MAAM,CAAC,QAAQ,GACtB,OAAO,CAAC,MAAM,CAAC,CAUjB"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.streamToBuffer = exports.httpStream = exports.httpHeaderToFileName = exports.httpHeadHeader = exports.dataUrlToBase64 = void 0;
|
|
7
|
+
const http_1 = __importDefault(require("http"));
|
|
8
|
+
const https_1 = __importDefault(require("https"));
|
|
9
|
+
const url_1 = require("url");
|
|
10
|
+
const config_js_1 = require("./config.js");
|
|
11
|
+
function dataUrlToBase64(dataUrl) {
|
|
12
|
+
const dataList = dataUrl.split(',');
|
|
13
|
+
return dataList[dataList.length - 1];
|
|
14
|
+
}
|
|
15
|
+
exports.dataUrlToBase64 = dataUrlToBase64;
|
|
16
|
+
/**
|
|
17
|
+
* Get http headers for specific `url`
|
|
18
|
+
* follow 302 redirection for max `REDIRECT_TTL` times.
|
|
19
|
+
*
|
|
20
|
+
* @credit https://stackoverflow.com/a/43632171/1123955
|
|
21
|
+
*/
|
|
22
|
+
async function httpHeadHeader(url) {
|
|
23
|
+
let REDIRECT_TTL = 7;
|
|
24
|
+
while (true) {
|
|
25
|
+
if (REDIRECT_TTL-- <= 0) {
|
|
26
|
+
throw new Error(`ttl expired! too many(>${REDIRECT_TTL}) 302 redirection.`);
|
|
27
|
+
}
|
|
28
|
+
const res = await _headHeader(url);
|
|
29
|
+
if (!/^3/.test(String(res.statusCode))) {
|
|
30
|
+
return res.headers;
|
|
31
|
+
}
|
|
32
|
+
// console.log('302 found for ' + url)
|
|
33
|
+
if (!res.headers.location) {
|
|
34
|
+
throw new Error('302 found but no location!');
|
|
35
|
+
}
|
|
36
|
+
url = res.headers.location;
|
|
37
|
+
}
|
|
38
|
+
async function _headHeader(destUrl) {
|
|
39
|
+
const parsedUrl = new url_1.URL(destUrl);
|
|
40
|
+
const options = {
|
|
41
|
+
method: 'HEAD',
|
|
42
|
+
// method : 'GET',
|
|
43
|
+
};
|
|
44
|
+
let request;
|
|
45
|
+
if (parsedUrl.protocol === 'https:') {
|
|
46
|
+
request = https_1.default.request;
|
|
47
|
+
}
|
|
48
|
+
else if (parsedUrl.protocol === 'http:') {
|
|
49
|
+
request = http_1.default.request;
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
throw new Error('unknown protocol: ' + parsedUrl.protocol);
|
|
53
|
+
}
|
|
54
|
+
return new Promise((resolve, reject) => {
|
|
55
|
+
let res;
|
|
56
|
+
const req = request(parsedUrl, options, (response) => {
|
|
57
|
+
res = response;
|
|
58
|
+
resolve(res);
|
|
59
|
+
})
|
|
60
|
+
.on('error', reject)
|
|
61
|
+
.setTimeout(config_js_1.HTTP_TIMEOUT, () => {
|
|
62
|
+
const e = new Error(`FileBox: Http request timeout (${config_js_1.HTTP_TIMEOUT})!`);
|
|
63
|
+
req.emit('error', e);
|
|
64
|
+
req.destroy();
|
|
65
|
+
})
|
|
66
|
+
.end();
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
exports.httpHeadHeader = httpHeadHeader;
|
|
71
|
+
function httpHeaderToFileName(headers) {
|
|
72
|
+
const contentDisposition = headers['content-disposition'];
|
|
73
|
+
if (!contentDisposition) {
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
// 'content-disposition': 'attachment; filename=db-0.0.19.zip'
|
|
77
|
+
const matches = contentDisposition.match(/attachment; filename="?(.+[^"])"?$/i);
|
|
78
|
+
if (matches && matches[1]) {
|
|
79
|
+
return matches[1];
|
|
80
|
+
}
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
83
|
+
exports.httpHeaderToFileName = httpHeaderToFileName;
|
|
84
|
+
async function httpStream(url, headers = {}) {
|
|
85
|
+
const parsedUrl = new url_1.URL(url);
|
|
86
|
+
const protocol = parsedUrl.protocol;
|
|
87
|
+
const options = {};
|
|
88
|
+
let get;
|
|
89
|
+
if (!protocol) {
|
|
90
|
+
throw new Error('protocol is empty');
|
|
91
|
+
}
|
|
92
|
+
if (protocol.match(/^https:/i)) {
|
|
93
|
+
get = https_1.default.get;
|
|
94
|
+
options.agent = https_1.default.globalAgent;
|
|
95
|
+
}
|
|
96
|
+
else if (protocol.match(/^http:/i)) {
|
|
97
|
+
get = http_1.default.get;
|
|
98
|
+
options.agent = http_1.default.globalAgent;
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
throw new Error('protocol unknown: ' + protocol);
|
|
102
|
+
}
|
|
103
|
+
options.headers = {
|
|
104
|
+
...headers,
|
|
105
|
+
};
|
|
106
|
+
return new Promise((resolve, reject) => {
|
|
107
|
+
let res = null;
|
|
108
|
+
const req = get(parsedUrl, options, (response) => {
|
|
109
|
+
res = response;
|
|
110
|
+
resolve(res);
|
|
111
|
+
})
|
|
112
|
+
.on('error', reject)
|
|
113
|
+
.setTimeout(config_js_1.HTTP_TIMEOUT, () => {
|
|
114
|
+
const e = new Error(`FileBox: Http request timeout (${config_js_1.HTTP_TIMEOUT})!`);
|
|
115
|
+
if (res) {
|
|
116
|
+
res.emit('error', e);
|
|
117
|
+
}
|
|
118
|
+
req.emit('error', e);
|
|
119
|
+
req.destroy();
|
|
120
|
+
})
|
|
121
|
+
.end();
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
exports.httpStream = httpStream;
|
|
125
|
+
async function streamToBuffer(stream) {
|
|
126
|
+
return new Promise((resolve, reject) => {
|
|
127
|
+
const bufferList = [];
|
|
128
|
+
stream.once('error', reject);
|
|
129
|
+
stream.once('end', () => {
|
|
130
|
+
const fullBuffer = Buffer.concat(bufferList);
|
|
131
|
+
resolve(fullBuffer);
|
|
132
|
+
});
|
|
133
|
+
stream.on('data', buffer => bufferList.push(buffer));
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
exports.streamToBuffer = streamToBuffer;
|
|
137
|
+
//# sourceMappingURL=misc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"misc.js","sourceRoot":"","sources":["../../../src/misc.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"misc.spec.d.ts","sourceRoot":"","sources":["../../../src/misc.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
#!/usr/bin/env -S node --no-warnings --loader ts-node/esm
|
|
2
|
+
"use strict";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
// tslint:disable:no-shadowed-variable
|
|
5
|
+
const tstest_1 = require("tstest");
|
|
6
|
+
const misc_js_1 = require("./misc.js");
|
|
7
|
+
(0, tstest_1.test)('dataUrl to base64', async (t) => {
|
|
8
|
+
const base64 = [
|
|
9
|
+
'R0lGODlhEAAQAMQAAORHHOVSKudfOulrSOp3WOyDZu6QdvCchPGolfO0o/XBs/fNwfjZ0frl',
|
|
10
|
+
'3/zy7////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA',
|
|
11
|
+
'ACH5BAkAABAALAAAAAAQABAAAAVVICSOZGlCQAosJ6mu7fiyZeKqNKToQGDsM8hBADgUXoGA',
|
|
12
|
+
'iqhSvp5QAnQKGIgUhwFUYLCVDFCrKUE1lBavAViFIDlTImbKC5Gm2hB0SlBCBMQiB0UjIQA7',
|
|
13
|
+
].join('');
|
|
14
|
+
const dataUrl = [
|
|
15
|
+
'data:image/png;base64,',
|
|
16
|
+
base64,
|
|
17
|
+
].join('');
|
|
18
|
+
t.equal(base64, (0, misc_js_1.dataUrlToBase64)(dataUrl), 'should get base64 from dataUrl');
|
|
19
|
+
});
|
|
20
|
+
(0, tstest_1.test)('httpHeadHeader', async (t) => {
|
|
21
|
+
const URL = 'https://github.com/huan/file-box/archive/v0.6.tar.gz';
|
|
22
|
+
const EXPECTED_HEADERS_KEY = 'content-disposition';
|
|
23
|
+
const EXPECTED_HEADERS_VALUE = 'attachment; filename=file-box-0.6.tar.gz';
|
|
24
|
+
const headers = await (0, misc_js_1.httpHeadHeader)(URL);
|
|
25
|
+
t.equal(headers[EXPECTED_HEADERS_KEY], EXPECTED_HEADERS_VALUE, 'should get the headers right');
|
|
26
|
+
});
|
|
27
|
+
(0, tstest_1.test)('httpHeaderToFileName', async (t) => {
|
|
28
|
+
const HEADERS_QUOTATION_MARK = {
|
|
29
|
+
'content-disposition': 'attachment; filename="db-0.0.19.zip"',
|
|
30
|
+
};
|
|
31
|
+
const HEADERS_NO_QUOTATION_MARK = {
|
|
32
|
+
'content-disposition': 'attachment; filename=db-0.0.19.zip',
|
|
33
|
+
};
|
|
34
|
+
const EXPECTED_FILE_NAME = 'db-0.0.19.zip';
|
|
35
|
+
let filename = (0, misc_js_1.httpHeaderToFileName)(HEADERS_QUOTATION_MARK);
|
|
36
|
+
t.equal(filename, EXPECTED_FILE_NAME, 'should get filename with quotation mark');
|
|
37
|
+
filename = (0, misc_js_1.httpHeaderToFileName)(HEADERS_NO_QUOTATION_MARK);
|
|
38
|
+
t.equal(filename, EXPECTED_FILE_NAME, 'should get filename with no quotation mark');
|
|
39
|
+
});
|
|
40
|
+
(0, tstest_1.test)('httpStream', async (t) => {
|
|
41
|
+
const URL = 'https://httpbin.org/headers';
|
|
42
|
+
const MOL_KEY = 'Mol';
|
|
43
|
+
const MOL_VAL = '42';
|
|
44
|
+
const headers = {};
|
|
45
|
+
headers[MOL_KEY] = MOL_VAL;
|
|
46
|
+
const res = await (0, misc_js_1.httpStream)(URL, headers);
|
|
47
|
+
const buffer = await (0, misc_js_1.streamToBuffer)(res);
|
|
48
|
+
const obj = JSON.parse(buffer.toString());
|
|
49
|
+
t.equal(obj.headers[MOL_KEY], MOL_VAL, 'should send the header right');
|
|
50
|
+
});
|
|
51
|
+
//# sourceMappingURL=misc.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"misc.spec.js","sourceRoot":"","sources":["../../../src/misc.spec.ts"],"names":[],"mappings":";;;AAEA,sCAAsC;AACtC,mCAA8B;AAE9B,uCAM0C;AAE1C,IAAA,aAAI,EAAC,mBAAmB,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IAClC,MAAM,MAAM,GAAG;QACb,0EAA0E;QAC1E,0EAA0E;QAC1E,0EAA0E;QAC1E,0EAA0E;KAC3E,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACV,MAAM,OAAO,GAAG;QACd,wBAAwB;QACxB,MAAM;KACP,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAEV,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,IAAA,yBAAe,EAAC,OAAO,CAAC,EAAE,gCAAgC,CAAC,CAAA;AAC7E,CAAC,CAAC,CAAA;AAEF,IAAA,aAAI,EAAC,gBAAgB,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IAC/B,MAAM,GAAG,GAAG,sDAAsD,CAAA;IAElE,MAAM,oBAAoB,GAAK,qBAAqB,CAAA;IACpD,MAAM,sBAAsB,GAAG,0CAA0C,CAAA;IAEzE,MAAM,OAAO,GAAG,MAAM,IAAA,wBAAc,EAAC,GAAG,CAAC,CAAA;IAEzC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,sBAAsB,EAAE,8BAA8B,CAAC,CAAA;AAChG,CAAC,CAAC,CAAA;AAEF,IAAA,aAAI,EAAC,sBAAsB,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IACrC,MAAM,sBAAsB,GAAQ;QAClC,qBAAqB,EAAE,sCAAsC;KAC9D,CAAA;IACD,MAAM,yBAAyB,GAAQ;QACrC,qBAAqB,EAAE,oCAAoC;KAC5D,CAAA;IACD,MAAM,kBAAkB,GAAG,eAAe,CAAA;IAE1C,IAAI,QAAQ,GAAG,IAAA,8BAAoB,EAAC,sBAAsB,CAAC,CAAA;IAC3D,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,kBAAkB,EAAE,yCAAyC,CAAC,CAAA;IAEhF,QAAQ,GAAG,IAAA,8BAAoB,EAAC,yBAAyB,CAAC,CAAA;IAC1D,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,kBAAkB,EAAE,4CAA4C,CAAC,CAAA;AACrF,CAAC,CAAC,CAAA;AAEF,IAAA,aAAI,EAAC,YAAY,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IAC3B,MAAM,GAAG,GAAG,6BAA6B,CAAA;IAEzC,MAAM,OAAO,GAAG,KAAK,CAAA;IACrB,MAAM,OAAO,GAAG,IAAI,CAAA;IAEpB,MAAM,OAAO,GAAG,EAA+B,CAAA;IAC/C,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAA;IAE1B,MAAM,GAAG,GAAG,MAAM,IAAA,oBAAU,EAAC,GAAG,EAAE,OAAO,CAAC,CAAA;IAE1C,MAAM,MAAM,GAAG,MAAM,IAAA,wBAAc,EAAC,GAAG,CAAC,CAAA;IACxC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAA;IACzC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,8BAA8B,CAAC,CAAA;AACxE,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { FileBoxType } from './file-box.type.js';
|
|
2
|
+
import { VERSION } from './config.js';
|
|
3
|
+
import { FileBox } from './file-box.js';
|
|
4
|
+
import type { FileBoxInterface, FileBoxConstructor } from './interface.js';
|
|
5
|
+
import type { UuidSaver, UuidLoader } from './file-box.type.js';
|
|
6
|
+
import { UniformResourceNameRegistry } from './urn-registry/uniform-resource-name-registry.js';
|
|
7
|
+
export type { UuidSaver, UuidLoader, FileBoxInterface, FileBoxConstructor, };
|
|
8
|
+
export { FileBox, FileBoxType, UniformResourceNameRegistry, VERSION, };
|
|
9
|
+
//# sourceMappingURL=mod.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../../src/mod.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACZ,MAA4B,oBAAoB,CAAA;AACjD,OAAO,EACL,OAAO,EACR,MAA4B,aAAa,CAAA;AAC1C,OAAO,EACL,OAAO,EACR,MAA4B,eAAe,CAAA;AAC5C,OAAO,KAAK,EACV,gBAAgB,EAChB,kBAAkB,EACnB,MAA4B,gBAAgB,CAAA;AAC7C,OAAO,KAAK,EACV,SAAS,EACT,UAAU,EACX,MAA4B,oBAAoB,CAAA;AACjD,OAAO,EACL,2BAA2B,EAC5B,MAAkC,kDAAkD,CAAA;AAErF,YAAY,EACV,SAAS,EACT,UAAU,EACV,gBAAgB,EAChB,kBAAkB,GACnB,CAAA;AACD,OAAO,EACL,OAAO,EACP,WAAW,EACX,2BAA2B,EAC3B,OAAO,GACR,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.VERSION = exports.UniformResourceNameRegistry = exports.FileBoxType = exports.FileBox = void 0;
|
|
4
|
+
const file_box_type_js_1 = require("./file-box.type.js");
|
|
5
|
+
Object.defineProperty(exports, "FileBoxType", { enumerable: true, get: function () { return file_box_type_js_1.FileBoxType; } });
|
|
6
|
+
const config_js_1 = require("./config.js");
|
|
7
|
+
Object.defineProperty(exports, "VERSION", { enumerable: true, get: function () { return config_js_1.VERSION; } });
|
|
8
|
+
const file_box_js_1 = require("./file-box.js");
|
|
9
|
+
Object.defineProperty(exports, "FileBox", { enumerable: true, get: function () { return file_box_js_1.FileBox; } });
|
|
10
|
+
const uniform_resource_name_registry_js_1 = require("./urn-registry/uniform-resource-name-registry.js");
|
|
11
|
+
Object.defineProperty(exports, "UniformResourceNameRegistry", { enumerable: true, get: function () { return uniform_resource_name_registry_js_1.UniformResourceNameRegistry; } });
|
|
12
|
+
//# sourceMappingURL=mod.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mod.js","sourceRoot":"","sources":["../../../src/mod.ts"],"names":[],"mappings":";;;AAAA,yDAEiD;AA2B/C,4FA5BA,8BAAW,OA4BA;AA1Bb,2CAE0C;AA0BxC,wFA3BA,mBAAO,OA2BA;AAzBT,+CAE4C;AAoB1C,wFArBA,qBAAO,OAqBA;AAXT,wGAEqF;AAWnF,4GAZA,+DAA2B,OAYA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
/**
|
|
3
|
+
* ChunkerTransformStream, a transform stream to take arbitrary chunk sizes and make them consistent
|
|
4
|
+
* https://codereview.stackexchange.com/q/57492/185709
|
|
5
|
+
*/
|
|
6
|
+
import stream from 'stream';
|
|
7
|
+
/**
|
|
8
|
+
* @param chunkByte The size of the chunks to be created
|
|
9
|
+
* @returns
|
|
10
|
+
*/
|
|
11
|
+
declare function sizedChunkTransformer(chunkByte?: number): stream.Transform;
|
|
12
|
+
export { sizedChunkTransformer, };
|
|
13
|
+
//# sourceMappingURL=sized-chunk-transformer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sized-chunk-transformer.d.ts","sourceRoot":"","sources":["../../../../src/pure-functions/sized-chunk-transformer.ts"],"names":[],"mappings":";AAAA;;;GAGG;AACH,OAAO,MAAM,MAAM,QAAQ,CAAA;AAQ3B;;;GAGG;AACH,iBAAS,qBAAqB,CAAE,SAAS,SAAqB,oBA4B7D;AAED,OAAO,EACL,qBAAqB,GACtB,CAAA"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.sizedChunkTransformer = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* ChunkerTransformStream, a transform stream to take arbitrary chunk sizes and make them consistent
|
|
9
|
+
* https://codereview.stackexchange.com/q/57492/185709
|
|
10
|
+
*/
|
|
11
|
+
const stream_1 = __importDefault(require("stream"));
|
|
12
|
+
/**
|
|
13
|
+
* TCP streaming workload tuning
|
|
14
|
+
* https://www.ibm.com/docs/en/aix/7.2?topic=tuning-tcp-streaming-workload
|
|
15
|
+
*/
|
|
16
|
+
const DEFAULT_CHUNK_BYTE = 256 * 1024; // 256 KB
|
|
17
|
+
/**
|
|
18
|
+
* @param chunkByte The size of the chunks to be created
|
|
19
|
+
* @returns
|
|
20
|
+
*/
|
|
21
|
+
function sizedChunkTransformer(chunkByte = DEFAULT_CHUNK_BYTE) {
|
|
22
|
+
let buffer = Buffer.from([]);
|
|
23
|
+
const transform = function (chunk, _, done) {
|
|
24
|
+
buffer = Buffer.concat([buffer, chunk]);
|
|
25
|
+
while (buffer.length >= chunkByte) {
|
|
26
|
+
this.push(buffer.slice(0, chunkByte));
|
|
27
|
+
buffer = buffer.slice(chunkByte);
|
|
28
|
+
}
|
|
29
|
+
done();
|
|
30
|
+
};
|
|
31
|
+
const flush = function (done) {
|
|
32
|
+
if (buffer.length) {
|
|
33
|
+
this.push(buffer);
|
|
34
|
+
}
|
|
35
|
+
done();
|
|
36
|
+
};
|
|
37
|
+
const chunker = new stream_1.default.Transform({
|
|
38
|
+
flush,
|
|
39
|
+
objectMode: true,
|
|
40
|
+
transform,
|
|
41
|
+
});
|
|
42
|
+
return chunker;
|
|
43
|
+
}
|
|
44
|
+
exports.sizedChunkTransformer = sizedChunkTransformer;
|
|
45
|
+
//# sourceMappingURL=sized-chunk-transformer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sized-chunk-transformer.js","sourceRoot":"","sources":["../../../../src/pure-functions/sized-chunk-transformer.ts"],"names":[],"mappings":";;;;;;AAAA;;;GAGG;AACH,oDAA2B;AAE3B;;;GAGG;AACH,MAAM,kBAAkB,GAAG,GAAG,GAAG,IAAI,CAAA,CAAC,SAAS;AAE/C;;;GAGG;AACH,SAAS,qBAAqB,CAAE,SAAS,GAAG,kBAAkB;IAC5D,IAAI,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAE5B,MAAM,SAAS,GAAyC,UAAU,KAAK,EAAE,CAAC,EAAE,IAAI;QAC9E,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAE,MAAM,EAAE,KAAK,CAAE,CAAC,CAAA;QAEzC,OAAO,MAAM,CAAC,MAAM,IAAI,SAAS,EAAE;YACjC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAA;YACrC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;SACjC;QAED,IAAI,EAAE,CAAA;IACR,CAAC,CAAA;IAED,MAAM,KAAK,GAAqC,UAAU,IAAI;QAC5D,IAAI,MAAM,CAAC,MAAM,EAAE;YACjB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;SAClB;QACD,IAAI,EAAE,CAAA;IACR,CAAC,CAAA;IAED,MAAM,OAAO,GAAG,IAAI,gBAAM,CAAC,SAAS,CAAC;QACnC,KAAK;QACL,UAAU,EAAE,IAAI;QAChB,SAAS;KACV,CAAC,CAAA;IAEF,OAAO,OAAO,CAAA;AAChB,CAAC;AAGC,sDAAqB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sized-chunk-transformer.spec.d.ts","sourceRoot":"","sources":["../../../../src/pure-functions/sized-chunk-transformer.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
#!/usr/bin/env -S node --no-warnings --loader ts-node/esm
|
|
2
|
+
"use strict";
|
|
3
|
+
/* eslint @typescript-eslint/no-unused-vars:off */
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
const tstest_1 = require("tstest");
|
|
6
|
+
const stream_1 = require("stream");
|
|
7
|
+
const sized_chunk_transformer_js_1 = require("./sized-chunk-transformer.js");
|
|
8
|
+
(0, tstest_1.test)('chunkerTransformStream()', async (t) => {
|
|
9
|
+
const DATA_LIST = [
|
|
10
|
+
'a',
|
|
11
|
+
'b',
|
|
12
|
+
];
|
|
13
|
+
const DATA = DATA_LIST.join('');
|
|
14
|
+
const createStream = () => {
|
|
15
|
+
const stream = new stream_1.PassThrough();
|
|
16
|
+
stream.end(DATA);
|
|
17
|
+
return stream;
|
|
18
|
+
};
|
|
19
|
+
const getDataList = (stream) => {
|
|
20
|
+
return new Promise(resolve => {
|
|
21
|
+
const list = [];
|
|
22
|
+
stream.on('end', () => resolve(list));
|
|
23
|
+
stream.on('data', chunk => list.push(chunk));
|
|
24
|
+
});
|
|
25
|
+
};
|
|
26
|
+
const newStream0 = createStream();
|
|
27
|
+
const dataList0 = await getDataList(newStream0);
|
|
28
|
+
t.equal(dataList0.length, 1, 'should get 1 chunks');
|
|
29
|
+
t.equal(dataList0[0].toString(), DATA, 'should get data');
|
|
30
|
+
const newStream1 = createStream().pipe((0, sized_chunk_transformer_js_1.sizedChunkTransformer)(2));
|
|
31
|
+
const dataList1 = await getDataList(newStream1);
|
|
32
|
+
t.equal(dataList1.length, 1, 'should get 1 chunks');
|
|
33
|
+
t.equal(dataList1[0].toString(), DATA, 'should get data');
|
|
34
|
+
const newStream2 = createStream().pipe((0, sized_chunk_transformer_js_1.sizedChunkTransformer)(1));
|
|
35
|
+
const dataList2 = await getDataList(newStream2);
|
|
36
|
+
t.equal(dataList2.length, 2, 'should get 2 chunks');
|
|
37
|
+
t.equal(dataList2.join(''), DATA, 'should get data');
|
|
38
|
+
});
|
|
39
|
+
//# sourceMappingURL=sized-chunk-transformer.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sized-chunk-transformer.spec.js","sourceRoot":"","sources":["../../../../src/pure-functions/sized-chunk-transformer.spec.ts"],"names":[],"mappings":";;AAEA,kDAAkD;;AAElD,mCAA6B;AAE7B,mCAGmC;AAEnC,6EAAoE;AAEpE,IAAA,aAAI,EAAC,0BAA0B,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IACzC,MAAM,SAAS,GAAG;QAChB,GAAG;QACH,GAAG;KACJ,CAAA;IACD,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAE/B,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,MAAM,MAAM,GAAG,IAAI,oBAAW,EAAE,CAAA;QAChC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAChB,OAAO,MAAM,CAAA;IACf,CAAC,CAAA;IAED,MAAM,WAAW,GAAG,CAAC,MAAgB,EAAE,EAAE;QACvC,OAAO,IAAI,OAAO,CAAQ,OAAO,CAAC,EAAE;YAClC,MAAM,IAAI,GAAG,EAAW,CAAA;YACxB,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;YACrC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;QAC9C,CAAC,CAAC,CAAA;IACJ,CAAC,CAAA;IAED,MAAM,UAAU,GAAG,YAAY,EAAE,CAAA;IACjC,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,CAAA;IAE/C,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,qBAAqB,CAAC,CAAA;IACnD,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAA;IAEzD,MAAM,UAAU,GAAG,YAAY,EAAE,CAAC,IAAI,CAAC,IAAA,kDAAqB,EAAC,CAAC,CAAC,CAAC,CAAA;IAChE,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,CAAA;IAE/C,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,qBAAqB,CAAC,CAAA;IACnD,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAA;IAEzD,MAAM,UAAU,GAAG,YAAY,EAAE,CAAC,IAAI,CAAC,IAAA,kDAAqB,EAAC,CAAC,CAAC,CAAC,CAAA;IAChE,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,CAAA;IAE/C,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,qBAAqB,CAAC,CAAA;IACnD,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAA;AACtD,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
3
|
+
import { Readable } from 'stream';
|
|
4
|
+
export declare function bufferToQrValue(buf: Buffer): Promise<string>;
|
|
5
|
+
export declare function qrValueToStream(value: string): Promise<Readable>;
|
|
6
|
+
//# sourceMappingURL=qrcode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qrcode.d.ts","sourceRoot":"","sources":["../../../src/qrcode.ts"],"names":[],"mappings":";;AAAA,OAAO,EAEL,QAAQ,EACT,MAAoB,QAAQ,CAAA;AAa7B,wBAAsB,eAAe,CAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAenE;AAED,wBAAsB,eAAe,CAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAIvE"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.qrValueToStream = exports.bufferToQrValue = void 0;
|
|
7
|
+
const stream_1 = require("stream");
|
|
8
|
+
// The npm package of my best choice for QR code decoding on Angular SPA
|
|
9
|
+
// https://dev.to/j_sakamoto/the-npm-package-of-my-best-choice-for-qr-code-decoding-on-angular-spa-4747?returning-user=true
|
|
10
|
+
const jimp_1 = __importDefault(require("jimp"));
|
|
11
|
+
const jsqr_1 = __importDefault(require("jsqr"));
|
|
12
|
+
/**
|
|
13
|
+
* https://www.npmjs.com/package/qrcode
|
|
14
|
+
* Huan(202002): This module is encode only.
|
|
15
|
+
*/
|
|
16
|
+
const qrcode_1 = require("qrcode");
|
|
17
|
+
async function bufferToQrValue(buf) {
|
|
18
|
+
const image = await jimp_1.default.read(buf);
|
|
19
|
+
const qrCodeImageArray = new Uint8ClampedArray(image.bitmap.data.buffer);
|
|
20
|
+
const qrCodeResult = (0, jsqr_1.default)(qrCodeImageArray, image.bitmap.width, image.bitmap.height);
|
|
21
|
+
if (qrCodeResult) {
|
|
22
|
+
return qrCodeResult.data;
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
throw new Error('bufferToQrcode(buf) fail!');
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
exports.bufferToQrValue = bufferToQrValue;
|
|
29
|
+
async function qrValueToStream(value) {
|
|
30
|
+
const stream = new stream_1.PassThrough();
|
|
31
|
+
await (0, qrcode_1.toFileStream)(stream, value); // only support .png for now
|
|
32
|
+
return stream;
|
|
33
|
+
}
|
|
34
|
+
exports.qrValueToStream = qrValueToStream;
|
|
35
|
+
//# sourceMappingURL=qrcode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qrcode.js","sourceRoot":"","sources":["../../../src/qrcode.ts"],"names":[],"mappings":";;;;;;AAAA,mCAG6B;AAE7B,wEAAwE;AACxE,2HAA2H;AAC3H,gDAAmC;AACnC,gDAAmC;AAEnC;;;GAGG;AACH,mCAAqC;AAE9B,KAAK,UAAU,eAAe,CAAE,GAAW;IAChD,MAAM,KAAK,GAAG,MAAM,cAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAClC,MAAM,gBAAgB,GAAG,IAAI,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAExE,MAAM,YAAY,GAAG,IAAA,cAAI,EACvB,gBAAgB,EAChB,KAAK,CAAC,MAAM,CAAC,KAAK,EAClB,KAAK,CAAC,MAAM,CAAC,MAAM,CACpB,CAAA;IAED,IAAI,YAAY,EAAE;QAChB,OAAO,YAAY,CAAC,IAAI,CAAA;KACzB;SAAM;QACL,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;KAC7C;AACH,CAAC;AAfD,0CAeC;AAEM,KAAK,UAAU,eAAe,CAAE,KAAa;IAClD,MAAM,MAAM,GAAG,IAAI,oBAAW,EAAE,CAAA;IAChC,MAAM,IAAA,qBAAY,EAAC,MAAM,EAAE,KAAK,CAAC,CAAA,CAAC,4BAA4B;IAC9D,OAAO,MAAM,CAAA;AACf,CAAC;AAJD,0CAIC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qrcode.spec.d.ts","sourceRoot":"","sources":["../../../src/qrcode.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
#!/usr/bin/env -S node --no-warnings --loader ts-node/esm
|
|
2
|
+
"use strict";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
const tstest_1 = require("tstest");
|
|
5
|
+
const qrcode_js_1 = require("./qrcode.js");
|
|
6
|
+
(0, tstest_1.test)('imageBase64ToQrCode()', async (t) => {
|
|
7
|
+
const QRCODE_IMAGE_BASE64 = [
|
|
8
|
+
'iVBORw0KGgoAAAANSUhEUgAAAMgAAADIAQMAAACXljzdAAAABlBMVEX///8AAABVwtN+AAAA',
|
|
9
|
+
'CXBIWXMAAA7EAAAOxAGVKw4bAAAA7klEQVRYw+2WsQ3EIAxFjShSMgKjZLRktIzCCJQpIv7Z',
|
|
10
|
+
'hCiXO/qzT/wCWXo0X3wbEw0NWVaEKM187KHW2QLZ+AhpXovfQ+J6skEWHELqBa5NEeCwR7iS',
|
|
11
|
+
'V7BDzuzAiZ9eqn5IWjfWXHf7VCO5tPAM6U9AjSRideyHFn4FiuvDqV5CM9rZXuF2pZmIAjZy',
|
|
12
|
+
'x4S0MDdBxEmu3TrliPf7iglPvuLlRydfU3P70UweCSK+ZYK0mUg1O4AVcv0/8itGkC7SdiTH',
|
|
13
|
+
'0+Mz19oJZ4NkhhSPbIhQkQGI8u1HJzmzs7p7pzNAru2pJb6z8ykkQ0P/pheK6vjurjf7+wAA',
|
|
14
|
+
'AABJRU5ErkJggg==',
|
|
15
|
+
].join('');
|
|
16
|
+
const EXPECTED_QRCODE_TEXT = 'hello, world!';
|
|
17
|
+
const buf = Buffer.from(QRCODE_IMAGE_BASE64, 'base64');
|
|
18
|
+
const text = await (0, qrcode_js_1.bufferToQrValue)(buf);
|
|
19
|
+
t.equal(text, EXPECTED_QRCODE_TEXT, 'should decode qrcode image base64');
|
|
20
|
+
});
|
|
21
|
+
(0, tstest_1.test)('qrValueToStream()', async (t) => {
|
|
22
|
+
const QRCODE_VALUE = 'hello, world!';
|
|
23
|
+
const EXPECTED_QRCODE_IMAGE_BASE64 = [
|
|
24
|
+
'iVBORw0KGgoAAAANSUhEUgAAAHQAAAB0CAYAAABUmhYnAAAAAklEQVR4AewaftIAAAKcSURBVO3BQY7',
|
|
25
|
+
'cQAwEwSxC//9yeo88NSBIsx7TjIg/WGMUa5RijVKsUYo1SrFGKdYoxRqlWKMUa5RijVKsUYo1SrFGKd',
|
|
26
|
+
'YoxRrl4qEk/CaVkyTcoXKShN+k8kSxRinWKMUa5eJlKm9Kwh0qn6TypiS8qVijFGuUYo1y8WFJuEPlj',
|
|
27
|
+
'iR0Kl0SOpUuCZ3KHUm4Q+WTijVKsUYp1igXw6n8T4o1SrFGKdYoF8MloVOZrFijFGuUYo1y8WEq3yQJ',
|
|
28
|
+
'ncoTKt+kWKMUa5RijXLxsiR8M5UuCZ3KSRK+WbFGKdYoxRrl4iGVf5nKicq/pFijFGuUYo0Sf/BAEjq',
|
|
29
|
+
'VLglvUnkiCZ3KSRLepPJJxRqlWKMUa5SLlyXhROU3JaFT6ZJwonKShCeS0Kk8UaxRijVKsUaJP3hREj',
|
|
30
|
+
'qVO5JwotIloVO5Iwl3qJwk4Q6VNxVrlGKNUqxRLv6yJJyodEl4Igl3qHRJ6FTuUPmkYo1SrFGKNcrFQ',
|
|
31
|
+
'0k4ScITSehUuiScJKFT6ZLQqXRJuEPljiR0Kk8Ua5RijVKsUS4eUvkmSbhDpUvCHUk4UflNxRqlWKMU',
|
|
32
|
+
'a5SLh5Lwm1Q6lS4JdyThCZWTJJyovKlYoxRrlGKNcvEylTcl4SQJnUqXhCdUuiScJOFvKtYoxRqlWKN',
|
|
33
|
+
'cfFgS7lB5k0qXhDuS0Kl0SehUTpLQJaFTeaJYoxRrlGKNcjFcEjqVJ5JwkoROpVP5pGKNUqxRijXKxX',
|
|
34
|
+
'8mCScqXRJOVE6S0Kl8UrFGKdYoxRrl4sNUPknlDpUuCV0SOpWTJHyTYo1SrFGKNcrFy5Lwm5LQqXQqX',
|
|
35
|
+
'RI6lZMkdConKidJ6FTeVKxRijVKsUaJP1hjFGuUYo1SrFGKNUqxRinWKMUapVijFGuUYo1SrFGKNUqx',
|
|
36
|
+
'RinWKMUa5Q8Ztu740xD9iQAAAABJRU5ErkJggg==',
|
|
37
|
+
].join('');
|
|
38
|
+
const stream = await (0, qrcode_js_1.qrValueToStream)(QRCODE_VALUE);
|
|
39
|
+
const chunks = [];
|
|
40
|
+
for await (const chunk of stream) {
|
|
41
|
+
chunks.push(chunk);
|
|
42
|
+
}
|
|
43
|
+
const buf = Buffer.concat(chunks);
|
|
44
|
+
const base64Text = buf.toString('base64');
|
|
45
|
+
t.equal(base64Text, EXPECTED_QRCODE_IMAGE_BASE64, 'should encode QR Code value to expected image');
|
|
46
|
+
});
|
|
47
|
+
//# sourceMappingURL=qrcode.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qrcode.spec.js","sourceRoot":"","sources":["../../../src/qrcode.spec.ts"],"names":[],"mappings":";;;AAEA,mCAA6B;AAE7B,2CAGwC;AAExC,IAAA,aAAI,EAAC,uBAAuB,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IACtC,MAAM,mBAAmB,GAAG;QAC1B,0EAA0E;QAC1E,0EAA0E;QAC1E,0EAA0E;QAC1E,0EAA0E;QAC1E,0EAA0E;QAC1E,0EAA0E;QAC1E,kBAAkB;KACnB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACV,MAAM,oBAAoB,GAAG,eAAe,CAAA;IAE5C,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAA;IACtD,MAAM,IAAI,GAAG,MAAM,IAAA,2BAAe,EAAC,GAAG,CAAC,CAAA;IACvC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,oBAAoB,EAAE,mCAAmC,CAAC,CAAA;AAC1E,CAAC,CAAC,CAAA;AAEF,IAAA,aAAI,EAAC,mBAAmB,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IAClC,MAAM,YAAY,GAAG,eAAe,CAAA;IACpC,MAAM,4BAA4B,GAAG;QACnC,iFAAiF;QACjF,iFAAiF;QACjF,iFAAiF;QACjF,iFAAiF;QACjF,iFAAiF;QACjF,iFAAiF;QACjF,iFAAiF;QACjF,iFAAiF;QACjF,iFAAiF;QACjF,iFAAiF;QACjF,iFAAiF;QACjF,iFAAiF;QACjF,0CAA0C;KAC3C,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAEV,MAAM,MAAM,GAAG,MAAM,IAAA,2BAAe,EAAC,YAAY,CAAC,CAAA;IAElD,MAAM,MAAM,GAAG,EAAc,CAAA;IAC7B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE;QAChC,MAAM,CAAC,IAAI,CAAC,KAAe,CAAC,CAAA;KAC7B;IACD,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACjC,MAAM,UAAU,GAAG,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAEzC,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,4BAA4B,EAAE,+CAA+C,CAAC,CAAA;AACpG,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../../../src/urn-registry/mod.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAC5B,MAAsC,qCAAqC,CAAA;AAE5E,OAAO,EACL,2BAA2B,GAC5B,CAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UniformResourceNameRegistry = void 0;
|
|
4
|
+
const uniform_resource_name_registry_js_1 = require("./uniform-resource-name-registry.js");
|
|
5
|
+
Object.defineProperty(exports, "UniformResourceNameRegistry", { enumerable: true, get: function () { return uniform_resource_name_registry_js_1.UniformResourceNameRegistry; } });
|
|
6
|
+
//# sourceMappingURL=mod.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mod.js","sourceRoot":"","sources":["../../../../src/urn-registry/mod.ts"],"names":[],"mappings":";;;AAAA,2FAE4E;AAG1E,4GAJA,+DAA2B,OAIA"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import * as uuid from 'uuid';
|
|
2
|
+
declare const randomUuid: (<T extends ArrayLike<number>>(options: uuid.V4Options | null | undefined, buffer: T, offset?: number | undefined) => T) & ((options?: uuid.V4Options | undefined) => string);
|
|
3
|
+
export { randomUuid, };
|
|
4
|
+
//# sourceMappingURL=random-uuid.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"random-uuid.d.ts","sourceRoot":"","sources":["../../../../src/urn-registry/random-uuid.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAE5B,QAAA,MAAM,UAAU,+KAAU,CAAA;AAE1B,OAAO,EACL,UAAU,GACX,CAAA"}
|
|
@@ -0,0 +1,30 @@
|
|
|
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
|
+
exports.randomUuid = void 0;
|
|
27
|
+
const uuid = __importStar(require("uuid"));
|
|
28
|
+
const randomUuid = uuid.v4;
|
|
29
|
+
exports.randomUuid = randomUuid;
|
|
30
|
+
//# sourceMappingURL=random-uuid.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"random-uuid.js","sourceRoot":"","sources":["../../../../src/urn-registry/random-uuid.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA4B;AAE5B,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAA;AAGxB,gCAAU"}
|