ng-talkback 18.0.18 → 18.0.20
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/README.md +3 -3
- package/assets/shared/shared_folder_info.txt +1 -1
- package/browser/README.md +24 -24
- package/client/README.md +24 -24
- package/index.js +15 -2
- package/index.js.map +1 -1
- package/lib/build-info._auto-generated_.js.map +1 -1
- package/lib/es6.backend.js +1 -1
- package/lib/es6.backend.js.map +1 -1
- package/lib/features/error-rate.backend.js +13 -13
- package/lib/features/error-rate.backend.js.map +1 -1
- package/lib/features/latency.backend.js +27 -33
- package/lib/features/latency.backend.js.map +1 -1
- package/lib/index._auto-generated_.d.ts +1 -0
- package/lib/index._auto-generated_.js.map +1 -1
- package/lib/index.js +21 -8
- package/lib/index.js.map +1 -1
- package/lib/logger.backend.js +10 -10
- package/lib/logger.backend.js.map +1 -1
- package/lib/options.backend.js +29 -25
- package/lib/options.backend.js.map +1 -1
- package/lib/request-handler.backend.js +133 -162
- package/lib/request-handler.backend.js.map +1 -1
- package/lib/server.backend.d.ts +1 -1
- package/lib/server.backend.js +60 -77
- package/lib/server.backend.js.map +1 -1
- package/lib/summary.backend.js +12 -11
- package/lib/summary.backend.js.map +1 -1
- package/lib/talkback-factory.backend.js +15 -29
- package/lib/talkback-factory.backend.js.map +1 -1
- package/lib/tape-matcher.backend.js +43 -42
- package/lib/tape-matcher.backend.js.map +1 -1
- package/lib/tape-renderer.backend.js +90 -121
- package/lib/tape-renderer.backend.js.map +1 -1
- package/lib/tape-store.backend.js +76 -115
- package/lib/tape-store.backend.js.map +1 -1
- package/lib/tape.backend.js +43 -50
- package/lib/tape.backend.js.map +1 -1
- package/lib/types.backend.js.map +1 -1
- package/lib/utils/content-encoding.backend.js +29 -40
- package/lib/utils/content-encoding.backend.js.map +1 -1
- package/lib/utils/headers.backend.js +7 -10
- package/lib/utils/headers.backend.js.map +1 -1
- package/lib/utils/media-type.backend.js +27 -27
- package/lib/utils/media-type.backend.js.map +1 -1
- package/migrations/index.js +15 -2
- package/migrations/index.js.map +1 -1
- package/migrations/migrations_index._auto-generated_.d.ts +1 -0
- package/migrations/migrations_index._auto-generated_.js.map +1 -1
- package/package.json +21 -76
- package/src.d.ts +1 -1
- package/tmp-environment.json +8 -409
- package/websql/README.md +24 -24
- package/browser/package.json +0 -25
- package/taon.jsonc +0 -47
- package/websql/package.json +0 -25
|
@@ -1,34 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
}
|
|
11
|
-
TalkbackFactory.server = function (options) {
|
|
12
|
-
var fullOptions = options_backend_1.default.prepare(options);
|
|
3
|
+
const options_backend_1 = require("./options.backend");
|
|
4
|
+
const tape_store_backend_1 = require("./tape-store.backend");
|
|
5
|
+
const server_backend_1 = require("./server.backend");
|
|
6
|
+
const request_handler_backend_1 = require("./request-handler.backend");
|
|
7
|
+
class TalkbackFactory {
|
|
8
|
+
static server(options) {
|
|
9
|
+
const fullOptions = options_backend_1.default.prepare(options);
|
|
13
10
|
return new server_backend_1.default(fullOptions);
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
tapeStore = new tape_store_backend_1.default(fullOptions);
|
|
23
|
-
return [4 /*yield*/, tapeStore.load()];
|
|
24
|
-
case 1:
|
|
25
|
-
_a.sent();
|
|
26
|
-
return [2 /*return*/, new request_handler_backend_1.default(tapeStore, fullOptions)];
|
|
27
|
-
}
|
|
28
|
-
});
|
|
29
|
-
});
|
|
30
|
-
};
|
|
31
|
-
return TalkbackFactory;
|
|
32
|
-
}());
|
|
11
|
+
}
|
|
12
|
+
static async requestHandler(options) {
|
|
13
|
+
const fullOptions = options_backend_1.default.prepare(options);
|
|
14
|
+
const tapeStore = new tape_store_backend_1.default(fullOptions);
|
|
15
|
+
await tapeStore.load();
|
|
16
|
+
return new request_handler_backend_1.default(tapeStore, fullOptions);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
33
19
|
exports.default = TalkbackFactory;
|
|
34
20
|
//# sourceMappingURL=talkback-factory.backend.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"talkback-factory.backend.js","sourceRoot":"","sources":[""],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"talkback-factory.backend.js","sourceRoot":"","sources":["/Users/dfilipiak/projects/npm/taon-dev/ng-talkback/src/lib/talkback-factory.backend.ts"],"names":[],"mappings":";;AAAA,uDAAwC;AACxC,6DAA6C;AAC7C,qDAA8C;AAC9C,uEAAuD;AAEvD,MAAqB,eAAe;IAClC,MAAM,CAAC,MAAM,CAAC,OAAyB;QACrC,MAAM,WAAW,GAAG,yBAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAC5C,OAAO,IAAI,wBAAc,CAAC,WAAW,CAAC,CAAA;IACxC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,OAAyB;QACnD,MAAM,WAAW,GAAG,yBAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAC5C,MAAM,SAAS,GAAG,IAAI,4BAAS,CAAC,WAAW,CAAC,CAAA;QAC5C,MAAM,SAAS,CAAC,IAAI,EAAE,CAAA;QACtB,OAAO,IAAI,iCAAc,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;IACnD,CAAC;CACF;AAZD,kCAYC"}
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
const content_encoding_backend_1 = require("./utils/content-encoding.backend");
|
|
4
|
+
const media_type_backend_1 = require("./utils/media-type.backend");
|
|
5
|
+
const tnp_core_1 = require("tnp-core");
|
|
6
|
+
class TapeMatcher {
|
|
7
|
+
tape;
|
|
8
|
+
options;
|
|
9
|
+
constructor(tape, options) {
|
|
8
10
|
this.tape = tape;
|
|
9
11
|
this.options = options;
|
|
10
12
|
}
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
13
|
+
sameAs(otherTape) {
|
|
14
|
+
const otherReq = otherTape.req;
|
|
15
|
+
const req = this.tape.req;
|
|
14
16
|
if (!this.isSameUrl(req, otherReq)) {
|
|
15
17
|
return false;
|
|
16
18
|
}
|
|
@@ -21,14 +23,14 @@ var TapeMatcher = /** @class */ (function () {
|
|
|
21
23
|
return false;
|
|
22
24
|
}
|
|
23
25
|
return this.options.ignoreBody || this.isSameBody(req, otherReq);
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
26
|
+
}
|
|
27
|
+
isSameBody(req, otherReq) {
|
|
28
|
+
const mediaType = new media_type_backend_1.default(req);
|
|
29
|
+
const contentEncoding = new content_encoding_backend_1.default(req);
|
|
30
|
+
let sameBody;
|
|
29
31
|
if (contentEncoding.isUncompressed() && mediaType.isJSON() && req.body.length > 0 && otherReq.body.length > 0) {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
+
const parsedReqBody = JSON.parse(req.body.toString());
|
|
33
|
+
const parsedOtherReqBody = JSON.parse(otherReq.body.toString());
|
|
32
34
|
sameBody = tnp_core_1._.isEqual(parsedReqBody, parsedOtherReqBody);
|
|
33
35
|
}
|
|
34
36
|
else {
|
|
@@ -36,61 +38,60 @@ var TapeMatcher = /** @class */ (function () {
|
|
|
36
38
|
}
|
|
37
39
|
if (!sameBody) {
|
|
38
40
|
if (!this.options.bodyMatcher) {
|
|
39
|
-
this.options.logger.debug(
|
|
41
|
+
this.options.logger.debug(`Not same BODY ${req.body} vs ${otherReq.body}`);
|
|
40
42
|
return false;
|
|
41
43
|
}
|
|
42
|
-
|
|
44
|
+
const bodyMatches = this.options.bodyMatcher(this.tape, otherReq);
|
|
43
45
|
if (!bodyMatches) {
|
|
44
|
-
this.options.logger.debug(
|
|
46
|
+
this.options.logger.debug(`Not same bodyMatcher ${req.body} vs ${otherReq.body}`);
|
|
45
47
|
return false;
|
|
46
48
|
}
|
|
47
49
|
}
|
|
48
50
|
return true;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
51
|
+
}
|
|
52
|
+
isSameHeaders(req, otherReq) {
|
|
53
|
+
const currentHeadersLength = Object.keys(req.headers).length;
|
|
54
|
+
const otherHeadersLength = Object.keys(otherReq.headers).length;
|
|
55
|
+
const sameNumberOfHeaders = currentHeadersLength === otherHeadersLength;
|
|
54
56
|
if (!sameNumberOfHeaders) {
|
|
55
|
-
this.options.logger.debug(
|
|
57
|
+
this.options.logger.debug(`Not same #HEADERS ${JSON.stringify(req.headers)} vs ${JSON.stringify(otherReq.headers)}`);
|
|
56
58
|
return false;
|
|
57
59
|
}
|
|
58
|
-
|
|
59
|
-
Object.keys(req.headers).forEach(
|
|
60
|
-
|
|
61
|
-
|
|
60
|
+
let headersSame = true;
|
|
61
|
+
Object.keys(req.headers).forEach(k => {
|
|
62
|
+
const entryHeader = req.headers[k];
|
|
63
|
+
const header = otherReq.headers[k];
|
|
62
64
|
headersSame = headersSame && entryHeader === header;
|
|
63
65
|
});
|
|
64
66
|
if (!headersSame) {
|
|
65
|
-
this.options.logger.debug(
|
|
67
|
+
this.options.logger.debug(`Not same HEADERS values ${JSON.stringify(req.headers)} vs ${JSON.stringify(otherReq.headers)}`);
|
|
66
68
|
return false;
|
|
67
69
|
}
|
|
68
70
|
return true;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
|
|
71
|
+
}
|
|
72
|
+
isSameMethod(req, otherReq) {
|
|
73
|
+
const sameMethod = req.method === otherReq.method;
|
|
72
74
|
if (!sameMethod) {
|
|
73
|
-
this.options.logger.debug(
|
|
75
|
+
this.options.logger.debug(`Not same METHOD ${req.method} vs ${otherReq.method}`);
|
|
74
76
|
return false;
|
|
75
77
|
}
|
|
76
78
|
return true;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
|
|
79
|
+
}
|
|
80
|
+
isSameUrl(req, otherReq) {
|
|
81
|
+
const sameURL = req.url === otherReq.url;
|
|
80
82
|
if (!sameURL) {
|
|
81
83
|
if (!this.options.urlMatcher) {
|
|
82
|
-
this.options.logger.debug(
|
|
84
|
+
this.options.logger.debug(`Not same URL ${req.url} vs ${otherReq.url}`);
|
|
83
85
|
return false;
|
|
84
86
|
}
|
|
85
|
-
|
|
87
|
+
const urlMatches = this.options.urlMatcher(this.tape, otherReq);
|
|
86
88
|
if (!urlMatches) {
|
|
87
|
-
this.options.logger.debug(
|
|
89
|
+
this.options.logger.debug(`Not same urlMatcher ${req.url} vs ${otherReq.url}`);
|
|
88
90
|
return false;
|
|
89
91
|
}
|
|
90
92
|
}
|
|
91
93
|
return true;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
}());
|
|
94
|
+
}
|
|
95
|
+
}
|
|
95
96
|
exports.default = TapeMatcher;
|
|
96
97
|
//# sourceMappingURL=tape-matcher.backend.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tape-matcher.backend.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;AAAA
|
|
1
|
+
{"version":3,"file":"tape-matcher.backend.js","sourceRoot":"","sources":["/Users/dfilipiak/projects/npm/taon-dev/ng-talkback/src/lib/tape-matcher.backend.ts"],"names":[],"mappings":";;AAAA,+EAA+D;AAC/D,mEAAmD;AAInD,uCAA6B;AAE7B,MAAqB,WAAW;IACb,IAAI,CAAM;IACV,OAAO,CAAS;IAEjC,YAAY,IAAU,EAAE,OAAgB;QACtC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAED,MAAM,CAAC,SAAe;QACpB,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAA;QAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAA;QACzB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC;YACnC,OAAO,KAAK,CAAA;QACd,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC;YACtC,OAAO,KAAK,CAAA;QACd,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC;YACvC,OAAO,KAAK,CAAA;QACd,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAEnE,CAAC;IAEO,UAAU,CAAC,GAAQ,EAAE,QAAa;QACxC,MAAM,SAAS,GAAG,IAAI,4BAAS,CAAC,GAAG,CAAC,CAAA;QACpC,MAAM,eAAe,GAAG,IAAI,kCAAe,CAAC,GAAG,CAAC,CAAA;QAGhD,IAAI,QAAiB,CAAA;QACrB,IAAI,eAAe,CAAC,cAAc,EAAE,IAAI,SAAS,CAAC,MAAM,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9G,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;YACrD,MAAM,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;YAC/D,QAAQ,GAAG,YAAC,CAAC,OAAO,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAAA;QACzD,CAAC;aAAM,CAAC;YACN,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAC3C,CAAC;QAED,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;gBAC9B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,GAAG,CAAC,IAAI,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;gBAC1E,OAAO,KAAK,CAAA;YACd,CAAC;YAED,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;YACjE,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,GAAG,CAAC,IAAI,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;gBACjF,OAAO,KAAK,CAAA;YACd,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAEO,aAAa,CAAC,GAAQ,EAAE,QAAa;QAC3C,MAAM,oBAAoB,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,CAAA;QAC5D,MAAM,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,CAAA;QAC/D,MAAM,mBAAmB,GAAG,oBAAoB,KAAK,kBAAkB,CAAA;QACvE,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACzB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;YACpH,OAAO,KAAK,CAAA;QACd,CAAC;QAED,IAAI,WAAW,GAAG,IAAI,CAAA;QACtB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACnC,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;YAClC,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;YAElC,WAAW,GAAG,WAAW,IAAI,WAAW,KAAK,MAAM,CAAA;QACrD,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;YAC1H,OAAO,KAAK,CAAA;QACd,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAEO,YAAY,CAAC,GAAQ,EAAE,QAAa;QAC1C,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,CAAA;QACjD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,GAAG,CAAC,MAAM,OAAO,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAA;YAChF,OAAO,KAAK,CAAA;QACd,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAEO,SAAS,CAAC,GAAQ,EAAE,QAAa;QACvC,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,KAAK,QAAQ,CAAC,GAAG,CAAA;QACxC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;gBAC7B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,GAAG,CAAC,GAAG,OAAO,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAA;gBACvE,OAAO,KAAK,CAAA;YACd,CAAC;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;YAC/D,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,GAAG,CAAC,GAAG,OAAO,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAA;gBAC9E,OAAO,KAAK,CAAA;YACd,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AAzGD,8BAyGC"}
|
|
@@ -1,130 +1,99 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
var bufferShim = require("buffer-shims");
|
|
3
|
+
const headers_backend_1 = require("./utils/headers.backend");
|
|
4
|
+
const media_type_backend_1 = require("./utils/media-type.backend");
|
|
5
|
+
const tape_backend_1 = require("./tape.backend");
|
|
6
|
+
const content_encoding_backend_1 = require("./utils/content-encoding.backend");
|
|
7
|
+
const bufferShim = require("buffer-shims");
|
|
9
8
|
// const bufferShim = require('buffer-shims')/
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
class TapeRenderer {
|
|
10
|
+
tape;
|
|
11
|
+
constructor(tape) {
|
|
12
12
|
this.tape = tape;
|
|
13
13
|
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
14
|
+
static async fromStore(raw, options) {
|
|
15
|
+
const req = { ...raw.req };
|
|
16
|
+
req.body = await this.prepareBody(raw, req, req.body, "req");
|
|
17
|
+
const tape = new tape_backend_1.default(req, options);
|
|
18
|
+
tape.meta = { ...raw.meta };
|
|
19
|
+
const baseRes = { ...raw.res };
|
|
20
|
+
const resBody = await this.prepareBody(tape, baseRes, baseRes.body, "res");
|
|
21
|
+
tape.res = {
|
|
22
|
+
...baseRes,
|
|
23
|
+
body: resBody
|
|
24
|
+
};
|
|
25
|
+
return tape;
|
|
26
|
+
}
|
|
27
|
+
static async prepareBody(tape, reqResObj, rawBody, metaPrefix) {
|
|
28
|
+
const contentEncoding = new content_encoding_backend_1.default(reqResObj);
|
|
29
|
+
const isTapeUncompressed = tape.meta[metaPrefix + "Uncompressed"];
|
|
30
|
+
const isTapeHumanReadable = tape.meta[metaPrefix + "HumanReadable"];
|
|
31
|
+
const isTapeInPlainText = isTapeUncompressed || contentEncoding.isUncompressed();
|
|
32
|
+
if (isTapeHumanReadable && isTapeInPlainText) {
|
|
33
|
+
const mediaType = new media_type_backend_1.default(reqResObj);
|
|
34
|
+
let bufferContent = rawBody;
|
|
35
|
+
const isResAnObject = typeof (bufferContent) === "object";
|
|
36
|
+
if (isResAnObject && mediaType.isJSON()) {
|
|
37
|
+
bufferContent = JSON.stringify(bufferContent, null, 2);
|
|
38
|
+
}
|
|
39
|
+
if (headers_backend_1.default.read(reqResObj.headers, "content-length")) {
|
|
40
|
+
headers_backend_1.default.write(reqResObj.headers, "content-length", Buffer.byteLength(bufferContent).toString(), metaPrefix);
|
|
41
|
+
}
|
|
42
|
+
if (isTapeUncompressed) {
|
|
43
|
+
return await contentEncoding.compressedBody(bufferContent);
|
|
44
|
+
}
|
|
45
|
+
return bufferShim.from(bufferContent);
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
return bufferShim.from(rawBody, "base64");
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
async render() {
|
|
52
|
+
const reqBody = await this.bodyFor(this.tape.req, "req");
|
|
53
|
+
const resBody = await this.bodyFor(this.tape.res, "res");
|
|
54
|
+
return {
|
|
55
|
+
meta: this.tape.meta,
|
|
56
|
+
req: {
|
|
57
|
+
...this.tape.req,
|
|
58
|
+
body: reqBody
|
|
59
|
+
},
|
|
60
|
+
res: {
|
|
61
|
+
...this.tape.res,
|
|
62
|
+
body: resBody
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
async bodyFor(reqResObj, metaPrefix) {
|
|
67
|
+
const mediaType = new media_type_backend_1.default(reqResObj);
|
|
68
|
+
const contentEncoding = new content_encoding_backend_1.default(reqResObj);
|
|
69
|
+
const bodyLength = reqResObj.body.length;
|
|
70
|
+
const isUncompressed = contentEncoding.isUncompressed();
|
|
71
|
+
const contentEncodingSupported = isUncompressed || contentEncoding.supportedAlgorithm();
|
|
72
|
+
if (mediaType.isHumanReadable() && contentEncodingSupported && bodyLength > 0) {
|
|
73
|
+
this.tape.meta[metaPrefix + "HumanReadable"] = true;
|
|
74
|
+
let body = reqResObj.body;
|
|
75
|
+
if (!isUncompressed) {
|
|
76
|
+
this.tape.meta[metaPrefix + "Uncompressed"] = true;
|
|
77
|
+
body = await contentEncoding.uncompressedBody(body);
|
|
78
|
+
}
|
|
79
|
+
const rawBody = body.toString("utf8");
|
|
80
|
+
if (mediaType.isJSON()) {
|
|
81
|
+
try { // TODO handle this better in future not based on mediaType.isJSON
|
|
82
|
+
const parsed = JSON.parse(rawBody);
|
|
83
|
+
return parsed;
|
|
82
84
|
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
};
|
|
86
|
-
TapeRenderer.prototype.bodyFor = function (reqResObj, metaPrefix) {
|
|
87
|
-
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
88
|
-
var mediaType, contentEncoding, bodyLength, isUncompressed, contentEncodingSupported, body, rawBody, parsed;
|
|
89
|
-
return tslib_1.__generator(this, function (_a) {
|
|
90
|
-
switch (_a.label) {
|
|
91
|
-
case 0:
|
|
92
|
-
mediaType = new media_type_backend_1.default(reqResObj);
|
|
93
|
-
contentEncoding = new content_encoding_backend_1.default(reqResObj);
|
|
94
|
-
bodyLength = reqResObj.body.length;
|
|
95
|
-
isUncompressed = contentEncoding.isUncompressed();
|
|
96
|
-
contentEncodingSupported = isUncompressed || contentEncoding.supportedAlgorithm();
|
|
97
|
-
if (!(mediaType.isHumanReadable() && contentEncodingSupported && bodyLength > 0)) return [3 /*break*/, 3];
|
|
98
|
-
this.tape.meta[metaPrefix + "HumanReadable"] = true;
|
|
99
|
-
body = reqResObj.body;
|
|
100
|
-
if (!!isUncompressed) return [3 /*break*/, 2];
|
|
101
|
-
this.tape.meta[metaPrefix + "Uncompressed"] = true;
|
|
102
|
-
return [4 /*yield*/, contentEncoding.uncompressedBody(body)];
|
|
103
|
-
case 1:
|
|
104
|
-
body = _a.sent();
|
|
105
|
-
_a.label = 2;
|
|
106
|
-
case 2:
|
|
107
|
-
rawBody = body.toString("utf8");
|
|
108
|
-
if (mediaType.isJSON()) {
|
|
109
|
-
try { // TODO handle this better in future not based on mediaType.isJSON
|
|
110
|
-
parsed = JSON.parse(rawBody);
|
|
111
|
-
return [2 /*return*/, parsed];
|
|
112
|
-
}
|
|
113
|
-
catch (error) {
|
|
114
|
-
return [2 /*return*/, rawBody];
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
else {
|
|
118
|
-
return [2 /*return*/, rawBody];
|
|
119
|
-
}
|
|
120
|
-
return [3 /*break*/, 4];
|
|
121
|
-
case 3: return [2 /*return*/, reqResObj.body.toString("base64")];
|
|
122
|
-
case 4: return [2 /*return*/];
|
|
85
|
+
catch (error) {
|
|
86
|
+
return rawBody;
|
|
123
87
|
}
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
}
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
return rawBody;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
return reqResObj.body.toString("base64");
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
129
98
|
exports.default = TapeRenderer;
|
|
130
99
|
//# sourceMappingURL=tape-renderer.backend.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tape-renderer.backend.js","sourceRoot":"","sources":[""],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tape-renderer.backend.js","sourceRoot":"","sources":["/Users/dfilipiak/projects/npm/taon-dev/ng-talkback/src/lib/tape-renderer.backend.ts"],"names":[],"mappings":"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"}
|