ng-talkback 21.0.18 → 21.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/browser/README.md +24 -24
- package/browser/fesm2022/ng-talkback-browser.mjs.map +1 -1
- package/browser/package.json +1 -1
- package/browser-prod/README.md +24 -24
- package/browser-prod/fesm2022/ng-talkback-browser.mjs.map +1 -1
- package/browser-prod/package.json +1 -1
- package/lib/build-info._auto-generated_.d.ts +1 -1
- package/lib/build-info._auto-generated_.js +1 -1
- package/lib/package.json +1 -1
- package/lib-prod/build-info._auto-generated_.d.ts +24 -0
- package/lib-prod/build-info._auto-generated_.js +10 -6
- package/lib-prod/build-info._auto-generated_.js.map +1 -0
- package/lib-prod/env/env.angular-node-app.d.ts +64 -0
- package/lib-prod/env/env.angular-node-app.js +69 -64
- package/lib-prod/env/env.angular-node-app.js.map +1 -0
- package/lib-prod/env/env.docs-webapp.d.ts +64 -0
- package/lib-prod/env/env.docs-webapp.js +69 -64
- package/lib-prod/env/env.docs-webapp.js.map +1 -0
- package/lib-prod/env/env.electron-app.d.ts +64 -0
- package/lib-prod/env/env.electron-app.js +69 -64
- package/lib-prod/env/env.electron-app.js.map +1 -0
- package/lib-prod/env/env.mobile-app.d.ts +64 -0
- package/lib-prod/env/env.mobile-app.js +69 -64
- package/lib-prod/env/env.mobile-app.js.map +1 -0
- package/lib-prod/env/env.npm-lib-and-cli-tool.d.ts +64 -0
- package/lib-prod/env/env.npm-lib-and-cli-tool.js +69 -64
- package/lib-prod/env/env.npm-lib-and-cli-tool.js.map +1 -0
- package/lib-prod/env/env.vscode-plugin.d.ts +64 -0
- package/lib-prod/env/env.vscode-plugin.js +69 -64
- package/lib-prod/env/env.vscode-plugin.js.map +1 -0
- package/lib-prod/env/index.d.ts +6 -0
- package/lib-prod/env/index.js +23 -6
- package/lib-prod/env/index.js.map +1 -0
- package/lib-prod/es6.backend.d.ts +2 -0
- package/lib-prod/es6.backend.js +5 -2
- package/lib-prod/es6.backend.js.map +1 -0
- package/lib-prod/features/error-rate.backend.d.ts +9 -0
- package/lib-prod/features/error-rate.backend.js +8 -3
- package/lib-prod/features/error-rate.backend.js.map +1 -0
- package/lib-prod/features/latency.backend.d.ts +8 -0
- package/lib-prod/features/latency.backend.js +8 -3
- package/lib-prod/features/latency.backend.js.map +1 -0
- package/lib-prod/index._auto-generated_.d.ts +0 -0
- package/lib-prod/index._auto-generated_.js +2 -1
- package/lib-prod/index._auto-generated_.js.map +1 -0
- package/lib-prod/index.d.ts +41 -0
- package/lib-prod/index.js +29 -11
- package/lib-prod/index.js.map +1 -0
- package/lib-prod/logger.backend.d.ts +7 -0
- package/lib-prod/logger.backend.js +6 -1
- package/lib-prod/logger.backend.js.map +1 -0
- package/lib-prod/migrations/index.d.ts +1 -0
- package/lib-prod/migrations/index.js +18 -1
- package/lib-prod/migrations/index.js.map +1 -0
- package/lib-prod/migrations/migrations_index._auto-generated_.d.ts +0 -0
- package/lib-prod/migrations/migrations_index._auto-generated_.js +1 -0
- package/lib-prod/migrations/migrations_index._auto-generated_.js.map +1 -0
- package/lib-prod/options.backend.d.ts +52 -0
- package/lib-prod/options.backend.js +21 -15
- package/lib-prod/options.backend.js.map +1 -0
- package/lib-prod/package.json +1 -1
- package/lib-prod/request-handler.backend.d.ts +13 -0
- package/lib-prod/request-handler.backend.js +25 -17
- package/lib-prod/request-handler.backend.js.map +1 -0
- package/lib-prod/server.backend.d.ts +17 -0
- package/lib-prod/server.backend.js +22 -13
- package/lib-prod/server.backend.js.map +1 -0
- package/lib-prod/summary.backend.d.ts +8 -0
- package/lib-prod/summary.backend.js +7 -1
- package/lib-prod/summary.backend.js.map +1 -0
- package/lib-prod/talkback-factory.backend.d.ts +7 -0
- package/lib-prod/talkback-factory.backend.js +14 -10
- package/lib-prod/talkback-factory.backend.js.map +1 -0
- package/lib-prod/tape-matcher.backend.d.ts +12 -0
- package/lib-prod/tape-matcher.backend.js +13 -7
- package/lib-prod/tape-matcher.backend.js.map +1 -0
- package/lib-prod/tape-renderer.backend.d.ts +24 -0
- package/lib-prod/tape-renderer.backend.js +18 -13
- package/lib-prod/tape-renderer.backend.js.map +1 -0
- package/lib-prod/tape-store.backend.d.ts +16 -0
- package/lib-prod/tape-store.backend.js +27 -20
- package/lib-prod/tape-store.backend.js.map +1 -0
- package/lib-prod/tape.backend.d.ts +19 -0
- package/lib-prod/tape.backend.js +24 -13
- package/lib-prod/tape.backend.js.map +1 -0
- package/lib-prod/types.backend.d.ts +43 -0
- package/lib-prod/types.backend.js +3 -1
- package/lib-prod/types.backend.js.map +1 -0
- package/lib-prod/utils/content-encoding.backend.d.ts +10 -0
- package/lib-prod/utils/content-encoding.backend.js +8 -3
- package/lib-prod/utils/content-encoding.backend.js.map +1 -0
- package/lib-prod/utils/headers.backend.d.ts +4 -0
- package/lib-prod/utils/headers.backend.js +5 -1
- package/lib-prod/utils/headers.backend.js.map +1 -0
- package/lib-prod/utils/media-type.backend.d.ts +10 -0
- package/lib-prod/utils/media-type.backend.js +14 -8
- package/lib-prod/utils/media-type.backend.js.map +1 -0
- package/package.json +1 -1
- package/websql/README.md +24 -24
- package/websql/fesm2022/ng-talkback-websql.mjs.map +1 -1
- package/websql/package.json +1 -1
- package/websql-prod/README.md +24 -24
- package/websql-prod/fesm2022/ng-talkback-websql.mjs.map +1 -1
- package/websql-prod/package.json +1 -1
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export type Dummy = 'a';
|
|
2
|
+
export * from './options.backend';
|
|
3
|
+
export * from './tape.backend';
|
|
4
|
+
import Options from './options.backend';
|
|
5
|
+
declare const talkbackFn: {
|
|
6
|
+
(options: Partial<Options>): import("./server.backend").default;
|
|
7
|
+
Options: {
|
|
8
|
+
Default: import("./options.backend").Options;
|
|
9
|
+
FallbackMode: {
|
|
10
|
+
NOT_FOUND: string;
|
|
11
|
+
PROXY: string;
|
|
12
|
+
ALL: string[];
|
|
13
|
+
};
|
|
14
|
+
RecordMode: {
|
|
15
|
+
NEW: string;
|
|
16
|
+
OVERWRITE: string;
|
|
17
|
+
DISABLED: string;
|
|
18
|
+
ALL: string[];
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
requestHandler(options: Partial<Options>): Promise<import("./request-handler.backend").default>;
|
|
22
|
+
};
|
|
23
|
+
export declare const talkback: {
|
|
24
|
+
(options: Partial<Options>): import("./server.backend").default;
|
|
25
|
+
Options: {
|
|
26
|
+
Default: import("./options.backend").Options;
|
|
27
|
+
FallbackMode: {
|
|
28
|
+
NOT_FOUND: string;
|
|
29
|
+
PROXY: string;
|
|
30
|
+
ALL: string[];
|
|
31
|
+
};
|
|
32
|
+
RecordMode: {
|
|
33
|
+
NEW: string;
|
|
34
|
+
OVERWRITE: string;
|
|
35
|
+
DISABLED: string;
|
|
36
|
+
ALL: string[];
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
requestHandler(options: Partial<Options>): Promise<import("./request-handler.backend").default>;
|
|
40
|
+
};
|
|
41
|
+
export default talkbackFn;
|
package/lib-prod/index.js
CHANGED
|
@@ -1,19 +1,37 @@
|
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.talkback = void 0;
|
|
1
18
|
let a = 2;
|
|
2
19
|
a++;
|
|
3
20
|
//#region @backend
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
21
|
+
__exportStar(require("./options.backend"), exports);
|
|
22
|
+
__exportStar(require("./tape.backend"), exports);
|
|
23
|
+
const talkback_factory_backend_1 = require("./talkback-factory.backend");
|
|
24
|
+
const options_backend_1 = require("./options.backend");
|
|
8
25
|
const talkbackFn = (options) => {
|
|
9
|
-
return
|
|
26
|
+
return talkback_factory_backend_1.default.server(options);
|
|
10
27
|
};
|
|
11
28
|
talkbackFn.Options = {
|
|
12
|
-
Default: DefaultOptions,
|
|
13
|
-
FallbackMode,
|
|
14
|
-
RecordMode
|
|
29
|
+
Default: options_backend_1.DefaultOptions,
|
|
30
|
+
FallbackMode: options_backend_1.FallbackMode,
|
|
31
|
+
RecordMode: options_backend_1.RecordMode
|
|
15
32
|
};
|
|
16
|
-
talkbackFn.requestHandler = (options) =>
|
|
17
|
-
|
|
18
|
-
|
|
33
|
+
talkbackFn.requestHandler = (options) => talkback_factory_backend_1.default.requestHandler(options);
|
|
34
|
+
exports.talkback = talkbackFn;
|
|
35
|
+
exports.default = talkbackFn;
|
|
19
36
|
//#endregion
|
|
37
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,IAAI,CAAC,GAAG,CAAC,CAAC;AACV,CAAC,EAAE,CAAC;AACJ,kBAAkB;AAClB,oDAAkC;AAClC,iDAA+B;AAG/B,yEAAwD;AACxD,uDAAqF;AAGrF,MAAM,UAAU,GAAG,CAAC,OAAyB,EAAE,EAAE;IAC/C,OAAO,kCAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;AACxC,CAAC,CAAA;AAED,UAAU,CAAC,OAAO,GAAG;IACnB,OAAO,EAAE,gCAAc;IACvB,YAAY,EAAZ,8BAAY;IACZ,UAAU,EAAV,4BAAU;CACX,CAAA;AAED,UAAU,CAAC,cAAc,GAAG,CAAC,OAAyB,EAAE,EAAE,CAAC,kCAAe,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;AAErF,QAAA,QAAQ,GAAG,UAAU,CAAC;AACnC,kBAAe,UAAU,CAAC;AAC1B,YAAY"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
class Logger {
|
|
4
|
+
options;
|
|
2
5
|
constructor(options) {
|
|
3
6
|
this.options = options;
|
|
4
7
|
if (this.options.debug) {
|
|
@@ -19,3 +22,5 @@ export default class Logger {
|
|
|
19
22
|
console.error(message);
|
|
20
23
|
}
|
|
21
24
|
}
|
|
25
|
+
exports.default = Logger;
|
|
26
|
+
//# sourceMappingURL=logger.backend.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.backend.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;AAAA,MAAqB,MAAM;IACzB,OAAO,CAAM;IAEb,YAAY,OAAY;QACtB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACtB,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAA;QACpC,CAAC;IACH,CAAC;IAED,GAAG,CAAC,OAAY;QACd,IAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YAC9C,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACtB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAY;QAChB,IAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACtB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QACxB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAY;QAChB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IACxB,CAAC;CACF;AAzBD,yBAyBC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './migrations_index._auto-generated_';
|
|
@@ -1,2 +1,19 @@
|
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1
17
|
//@ts-nocheck
|
|
2
|
-
|
|
18
|
+
__exportStar(require("./migrations_index._auto-generated_"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,aAAa;AACb,sEAAoD"}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrations_index._auto-generated_.js","sourceRoot":"","sources":[""],"names":[],"mappings":"AAAA,yCAAyC;AAEzC,yCAAyC;AAEzC,yCAAyC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import Logger from './logger.backend';
|
|
2
|
+
import Tape from './tape.backend';
|
|
3
|
+
import { Req, MatchingContext } from './types.backend';
|
|
4
|
+
export declare const RecordMode: {
|
|
5
|
+
NEW: string;
|
|
6
|
+
OVERWRITE: string;
|
|
7
|
+
DISABLED: string;
|
|
8
|
+
ALL: string[];
|
|
9
|
+
};
|
|
10
|
+
export declare const FallbackMode: {
|
|
11
|
+
NOT_FOUND: string;
|
|
12
|
+
PROXY: string;
|
|
13
|
+
ALL: string[];
|
|
14
|
+
};
|
|
15
|
+
export interface Options {
|
|
16
|
+
host: string;
|
|
17
|
+
port: number;
|
|
18
|
+
path: string;
|
|
19
|
+
record: string | ((req: Req) => string);
|
|
20
|
+
fallbackMode: string | ((req: Req) => string);
|
|
21
|
+
name: string;
|
|
22
|
+
tapeNameGenerator?: (tapeNumber: number, tape: Tape) => string;
|
|
23
|
+
https: {
|
|
24
|
+
enabled: boolean;
|
|
25
|
+
keyPath?: string;
|
|
26
|
+
certPath?: string;
|
|
27
|
+
};
|
|
28
|
+
ignoreHeaders: string[];
|
|
29
|
+
ignoreQueryParams: string[];
|
|
30
|
+
ignoreBody: boolean;
|
|
31
|
+
bodyMatcher?: (tape: Tape, req: Req) => boolean;
|
|
32
|
+
urlMatcher?: (tape: Tape, req: Req) => boolean;
|
|
33
|
+
requestDecorator?: (req: Req, context: MatchingContext) => Req;
|
|
34
|
+
responseDecorator?: (tape: Tape, req: Req, context: MatchingContext) => Tape;
|
|
35
|
+
tapeDecorator?: (tape: Tape, context: MatchingContext) => Tape;
|
|
36
|
+
latency: number | number[] | ((req: Req) => number);
|
|
37
|
+
errorRate: number | ((req: Req) => number);
|
|
38
|
+
silent: boolean;
|
|
39
|
+
summary: boolean;
|
|
40
|
+
debug: boolean;
|
|
41
|
+
logger: Logger;
|
|
42
|
+
}
|
|
43
|
+
export declare const DefaultOptions: Options;
|
|
44
|
+
export default class OptionsFactory {
|
|
45
|
+
private static logger;
|
|
46
|
+
static prepare(usrOpts?: Partial<Options>): Options;
|
|
47
|
+
static validateOptions(opts: Options): void;
|
|
48
|
+
static validateRecord(record: any): void;
|
|
49
|
+
static validateFallbackMode(fallbackMode: any): void;
|
|
50
|
+
static validateLatency(latency: any): void;
|
|
51
|
+
static validateErrorRate(errorRate: any): void;
|
|
52
|
+
}
|
|
@@ -1,23 +1,26 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DefaultOptions = exports.FallbackMode = exports.RecordMode = void 0;
|
|
4
|
+
const logger_backend_1 = require("./logger.backend");
|
|
5
|
+
exports.RecordMode = {
|
|
3
6
|
NEW: "NEW", // If no tape matches the request, proxy it and save the response to a tape
|
|
4
7
|
OVERWRITE: "OVERWRITE", // Always proxy the request and save the response to a tape, overwriting any existing one
|
|
5
8
|
DISABLED: "DISABLED", // If a matching tape exists, return it. Otherwise, don't proxy the request and use `fallbackMode` for the response
|
|
6
9
|
ALL: []
|
|
7
10
|
};
|
|
8
|
-
RecordMode.ALL = [RecordMode.NEW, RecordMode.OVERWRITE, RecordMode.DISABLED];
|
|
9
|
-
|
|
11
|
+
exports.RecordMode.ALL = [exports.RecordMode.NEW, exports.RecordMode.OVERWRITE, exports.RecordMode.DISABLED];
|
|
12
|
+
exports.FallbackMode = {
|
|
10
13
|
NOT_FOUND: "NOT_FOUND",
|
|
11
14
|
PROXY: "PROXY",
|
|
12
15
|
ALL: []
|
|
13
16
|
};
|
|
14
|
-
FallbackMode.ALL = [FallbackMode.NOT_FOUND, FallbackMode.PROXY];
|
|
15
|
-
|
|
17
|
+
exports.FallbackMode.ALL = [exports.FallbackMode.NOT_FOUND, exports.FallbackMode.PROXY];
|
|
18
|
+
exports.DefaultOptions = {
|
|
16
19
|
host: "",
|
|
17
20
|
port: 8080,
|
|
18
21
|
path: "./tapes/",
|
|
19
|
-
record: RecordMode.NEW,
|
|
20
|
-
fallbackMode: FallbackMode.NOT_FOUND,
|
|
22
|
+
record: exports.RecordMode.NEW,
|
|
23
|
+
fallbackMode: exports.FallbackMode.NOT_FOUND,
|
|
21
24
|
name: "unnamed",
|
|
22
25
|
tapeNameGenerator: undefined,
|
|
23
26
|
https: {
|
|
@@ -38,20 +41,21 @@ export const DefaultOptions = {
|
|
|
38
41
|
silent: false,
|
|
39
42
|
summary: true,
|
|
40
43
|
debug: false,
|
|
41
|
-
logger: new
|
|
44
|
+
logger: new logger_backend_1.default({})
|
|
42
45
|
};
|
|
43
|
-
|
|
46
|
+
class OptionsFactory {
|
|
47
|
+
static logger;
|
|
44
48
|
static prepare(usrOpts = {}) {
|
|
45
49
|
const opts = {
|
|
46
|
-
...DefaultOptions,
|
|
50
|
+
...exports.DefaultOptions,
|
|
47
51
|
name: usrOpts.host,
|
|
48
52
|
...usrOpts,
|
|
49
53
|
ignoreHeaders: [
|
|
50
|
-
...DefaultOptions.ignoreHeaders,
|
|
54
|
+
...exports.DefaultOptions.ignoreHeaders,
|
|
51
55
|
...(usrOpts.ignoreHeaders || [])
|
|
52
56
|
]
|
|
53
57
|
};
|
|
54
|
-
this.logger = new
|
|
58
|
+
this.logger = new logger_backend_1.default(opts);
|
|
55
59
|
opts.logger = this.logger;
|
|
56
60
|
this.validateOptions(opts);
|
|
57
61
|
return opts;
|
|
@@ -63,12 +67,12 @@ export default class OptionsFactory {
|
|
|
63
67
|
this.validateErrorRate(opts.errorRate);
|
|
64
68
|
}
|
|
65
69
|
static validateRecord(record) {
|
|
66
|
-
if (typeof (record) === "string" && !RecordMode.ALL.includes(record)) {
|
|
70
|
+
if (typeof (record) === "string" && !exports.RecordMode.ALL.includes(record)) {
|
|
67
71
|
throw `INVALID OPTION: record has an invalid value of '${record}'`;
|
|
68
72
|
}
|
|
69
73
|
}
|
|
70
74
|
static validateFallbackMode(fallbackMode) {
|
|
71
|
-
if (typeof (fallbackMode) === "string" && !FallbackMode.ALL.includes(fallbackMode)) {
|
|
75
|
+
if (typeof (fallbackMode) === "string" && !exports.FallbackMode.ALL.includes(fallbackMode)) {
|
|
72
76
|
throw `INVALID OPTION: fallbackMode has an invalid value of '${fallbackMode}'`;
|
|
73
77
|
}
|
|
74
78
|
}
|
|
@@ -83,3 +87,5 @@ export default class OptionsFactory {
|
|
|
83
87
|
}
|
|
84
88
|
}
|
|
85
89
|
}
|
|
90
|
+
exports.default = OptionsFactory;
|
|
91
|
+
//# sourceMappingURL=options.backend.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.backend.js","sourceRoot":"","sources":[""],"names":[],"mappings":"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"}
|
package/lib-prod/package.json
CHANGED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import TapeStore from './tape-store.backend';
|
|
2
|
+
import { Options } from './options.backend';
|
|
3
|
+
import { HttpRequest, HttpResponse } from './types.backend';
|
|
4
|
+
export default class RequestHandler {
|
|
5
|
+
private readonly tapeStore;
|
|
6
|
+
private readonly options;
|
|
7
|
+
private readonly errorRate;
|
|
8
|
+
private readonly latency;
|
|
9
|
+
constructor(tapeStore: TapeStore, options: Options);
|
|
10
|
+
handle(req: HttpRequest): Promise<HttpResponse>;
|
|
11
|
+
private onNoRecord;
|
|
12
|
+
private makeRealRequest;
|
|
13
|
+
}
|
|
@@ -1,32 +1,38 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const uuid_1 = require("uuid");
|
|
4
|
+
const axios_1 = require("axios");
|
|
5
|
+
const tape_backend_1 = require("./tape.backend");
|
|
6
|
+
const options_backend_1 = require("./options.backend");
|
|
7
|
+
const error_rate_backend_1 = require("./features/error-rate.backend");
|
|
8
|
+
const latency_backend_1 = require("./features/latency.backend");
|
|
9
|
+
class RequestHandler {
|
|
10
|
+
tapeStore;
|
|
11
|
+
options;
|
|
12
|
+
errorRate;
|
|
13
|
+
latency;
|
|
8
14
|
constructor(tapeStore, options) {
|
|
9
15
|
this.tapeStore = tapeStore;
|
|
10
16
|
this.options = options;
|
|
11
|
-
this.errorRate = new
|
|
12
|
-
this.latency = new
|
|
17
|
+
this.errorRate = new error_rate_backend_1.default(this.options);
|
|
18
|
+
this.latency = new latency_backend_1.default(this.options);
|
|
13
19
|
}
|
|
14
20
|
async handle(req) {
|
|
15
21
|
const matchingContext = {
|
|
16
|
-
id:
|
|
22
|
+
id: (0, uuid_1.v4)()
|
|
17
23
|
};
|
|
18
24
|
const recordMode = typeof (this.options.record) === "string" ? this.options.record : this.options.record(req);
|
|
19
|
-
|
|
25
|
+
options_backend_1.default.validateRecord(recordMode);
|
|
20
26
|
if (this.options.requestDecorator) {
|
|
21
27
|
req = this.options.requestDecorator(req, matchingContext);
|
|
22
28
|
if (!req) {
|
|
23
29
|
throw new Error("requestDecorator didn't return a req object");
|
|
24
30
|
}
|
|
25
31
|
}
|
|
26
|
-
let newTape = new
|
|
32
|
+
let newTape = new tape_backend_1.default(req, this.options);
|
|
27
33
|
let matchingTape = this.tapeStore.find(newTape);
|
|
28
34
|
let resObj, responseTape;
|
|
29
|
-
if (recordMode !== RecordMode.OVERWRITE && matchingTape) {
|
|
35
|
+
if (recordMode !== options_backend_1.RecordMode.OVERWRITE && matchingTape) {
|
|
30
36
|
responseTape = matchingTape;
|
|
31
37
|
if (this.errorRate.shouldSimulate(req, matchingTape)) {
|
|
32
38
|
return this.errorRate.simulate(req);
|
|
@@ -40,7 +46,7 @@ export default class RequestHandler {
|
|
|
40
46
|
else {
|
|
41
47
|
responseTape = newTape;
|
|
42
48
|
}
|
|
43
|
-
if (recordMode === RecordMode.NEW || recordMode === RecordMode.OVERWRITE) {
|
|
49
|
+
if (recordMode === options_backend_1.RecordMode.NEW || recordMode === options_backend_1.RecordMode.OVERWRITE) {
|
|
44
50
|
resObj = await this.makeRealRequest(req);
|
|
45
51
|
responseTape.res = { ...resObj };
|
|
46
52
|
if (this.options.tapeDecorator) {
|
|
@@ -72,13 +78,13 @@ export default class RequestHandler {
|
|
|
72
78
|
}
|
|
73
79
|
async onNoRecord(req) {
|
|
74
80
|
const fallbackMode = typeof (this.options.fallbackMode) === "string" ? this.options.fallbackMode : this.options.fallbackMode(req);
|
|
75
|
-
|
|
81
|
+
options_backend_1.default.validateFallbackMode(fallbackMode);
|
|
76
82
|
this.options.logger.log(`Tape for ${req.url} not found and recording is disabled (fallbackMode: ${fallbackMode})`);
|
|
77
83
|
this.options.logger.log({
|
|
78
84
|
url: req.url,
|
|
79
85
|
headers: req.headers
|
|
80
86
|
});
|
|
81
|
-
if (fallbackMode === FallbackMode.PROXY) {
|
|
87
|
+
if (fallbackMode === options_backend_1.FallbackMode.PROXY) {
|
|
82
88
|
if (this.errorRate.shouldSimulate(req, undefined)) {
|
|
83
89
|
return this.errorRate.simulate(req);
|
|
84
90
|
}
|
|
@@ -112,7 +118,7 @@ export default class RequestHandler {
|
|
|
112
118
|
};
|
|
113
119
|
try {
|
|
114
120
|
// console.log(body.toString())
|
|
115
|
-
const r = await
|
|
121
|
+
const r = await (0, axios_1.default)({
|
|
116
122
|
url: urlToGetData,
|
|
117
123
|
method,
|
|
118
124
|
headers,
|
|
@@ -135,3 +141,5 @@ export default class RequestHandler {
|
|
|
135
141
|
return fRes;
|
|
136
142
|
}
|
|
137
143
|
}
|
|
144
|
+
exports.default = RequestHandler;
|
|
145
|
+
//# sourceMappingURL=request-handler.backend.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request-handler.backend.js","sourceRoot":"","sources":[""],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import TapeStore from './tape-store.backend';
|
|
2
|
+
import * as http from 'http';
|
|
3
|
+
import { Options } from './options.backend';
|
|
4
|
+
export default class TalkbackServer {
|
|
5
|
+
private readonly options;
|
|
6
|
+
readonly tapeStore: TapeStore;
|
|
7
|
+
private requestHandler;
|
|
8
|
+
private readonly closeSignalHandler?;
|
|
9
|
+
private server?;
|
|
10
|
+
private closed;
|
|
11
|
+
constructor(options: Options);
|
|
12
|
+
handleRequest(rawReq: http.IncomingMessage, res: http.ServerResponse): void;
|
|
13
|
+
start(callback?: () => void): Promise<http.Server<typeof http.IncomingMessage, typeof http.ServerResponse>>;
|
|
14
|
+
hasTapeBeenUsed(tapeName: string): boolean;
|
|
15
|
+
resetTapeUsage(): void;
|
|
16
|
+
close(callback?: () => void): void;
|
|
17
|
+
}
|
|
@@ -1,14 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const request_handler_backend_1 = require("./request-handler.backend");
|
|
4
|
+
const summary_backend_1 = require("./summary.backend");
|
|
5
|
+
const tape_store_backend_1 = require("./tape-store.backend");
|
|
6
|
+
const http = require("http");
|
|
7
|
+
const lib_prod_1 = require("tnp-core/lib-prod");
|
|
8
|
+
class TalkbackServer {
|
|
9
|
+
options;
|
|
10
|
+
tapeStore;
|
|
11
|
+
requestHandler;
|
|
12
|
+
closeSignalHandler;
|
|
13
|
+
server;
|
|
14
|
+
closed = false;
|
|
7
15
|
constructor(options) {
|
|
8
|
-
this.closed = false;
|
|
9
16
|
this.options = options;
|
|
10
|
-
this.tapeStore = new
|
|
11
|
-
this.requestHandler = new
|
|
17
|
+
this.tapeStore = new tape_store_backend_1.default(this.options);
|
|
18
|
+
this.requestHandler = new request_handler_backend_1.default(this.tapeStore, this.options);
|
|
12
19
|
this.closeSignalHandler = this.close.bind(this);
|
|
13
20
|
}
|
|
14
21
|
handleRequest(rawReq, res) {
|
|
@@ -40,10 +47,10 @@ export default class TalkbackServer {
|
|
|
40
47
|
const handleRequest = this.handleRequest.bind(this);
|
|
41
48
|
const serverFactory = this.options.https.enabled ? () => {
|
|
42
49
|
const httpsOpts = {
|
|
43
|
-
key: fse.readFileSync(this.options.https.keyPath),
|
|
44
|
-
cert: fse.readFileSync(this.options.https.certPath)
|
|
50
|
+
key: lib_prod_1.fse.readFileSync(this.options.https.keyPath),
|
|
51
|
+
cert: lib_prod_1.fse.readFileSync(this.options.https.certPath)
|
|
45
52
|
};
|
|
46
|
-
return https.createServer(httpsOpts, handleRequest);
|
|
53
|
+
return lib_prod_1.https.createServer(httpsOpts, handleRequest);
|
|
47
54
|
} : () => http.createServer(handleRequest);
|
|
48
55
|
this.server = serverFactory();
|
|
49
56
|
console.log(`Starting talkback on ${this.options.port}`);
|
|
@@ -72,8 +79,10 @@ export default class TalkbackServer {
|
|
|
72
79
|
// @ts-ignore
|
|
73
80
|
process.removeListener("SIGTERM", this.closeSignalHandler);
|
|
74
81
|
if (this.options.summary) {
|
|
75
|
-
const summary = new
|
|
82
|
+
const summary = new summary_backend_1.default(this.tapeStore.tapes, this.options);
|
|
76
83
|
summary.print();
|
|
77
84
|
}
|
|
78
85
|
}
|
|
79
86
|
}
|
|
87
|
+
exports.default = TalkbackServer;
|
|
88
|
+
//# sourceMappingURL=server.backend.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.backend.js","sourceRoot":"","sources":[""],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
class Summary {
|
|
4
|
+
tapes;
|
|
5
|
+
opts;
|
|
2
6
|
constructor(tapes, opts) {
|
|
3
7
|
this.tapes = tapes;
|
|
4
8
|
this.opts = opts;
|
|
@@ -17,3 +21,5 @@ export default class Summary {
|
|
|
17
21
|
}
|
|
18
22
|
}
|
|
19
23
|
}
|
|
24
|
+
exports.default = Summary;
|
|
25
|
+
//# sourceMappingURL=summary.backend.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"summary.backend.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;AAGA,MAAqB,OAAO;IAClB,KAAK,CAAQ;IACb,IAAI,CAAS;IAErB,YAAY,KAAa,EAAE,IAAa;QACtC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;IAED,KAAK;QACH,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,CAAA;QACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;QAC9C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;YACzB,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;QACnD,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QACnD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;YAC5B,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;QACtD,CAAC;IACH,CAAC;CACF;AAtBD,0BAsBC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import Options from './options.backend';
|
|
2
|
+
import TalkbackServer from './server.backend';
|
|
3
|
+
import RequestHandler from './request-handler.backend';
|
|
4
|
+
export default class TalkbackFactory {
|
|
5
|
+
static server(options: Partial<Options>): TalkbackServer;
|
|
6
|
+
static requestHandler(options: Partial<Options>): Promise<RequestHandler>;
|
|
7
|
+
}
|
|
@@ -1,16 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
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 {
|
|
6
8
|
static server(options) {
|
|
7
|
-
const fullOptions =
|
|
8
|
-
return new
|
|
9
|
+
const fullOptions = options_backend_1.default.prepare(options);
|
|
10
|
+
return new server_backend_1.default(fullOptions);
|
|
9
11
|
}
|
|
10
12
|
static async requestHandler(options) {
|
|
11
|
-
const fullOptions =
|
|
12
|
-
const tapeStore = new
|
|
13
|
+
const fullOptions = options_backend_1.default.prepare(options);
|
|
14
|
+
const tapeStore = new tape_store_backend_1.default(fullOptions);
|
|
13
15
|
await tapeStore.load();
|
|
14
|
-
return new
|
|
16
|
+
return new request_handler_backend_1.default(tapeStore, fullOptions);
|
|
15
17
|
}
|
|
16
18
|
}
|
|
19
|
+
exports.default = TalkbackFactory;
|
|
20
|
+
//# sourceMappingURL=talkback-factory.backend.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"talkback-factory.backend.js","sourceRoot":"","sources":[""],"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Options } from './options.backend';
|
|
2
|
+
import Tape from './tape.backend';
|
|
3
|
+
export default class TapeMatcher {
|
|
4
|
+
private readonly tape;
|
|
5
|
+
private readonly options;
|
|
6
|
+
constructor(tape: Tape, options: Options);
|
|
7
|
+
sameAs(otherTape: Tape): boolean;
|
|
8
|
+
private isSameBody;
|
|
9
|
+
private isSameHeaders;
|
|
10
|
+
private isSameMethod;
|
|
11
|
+
private isSameUrl;
|
|
12
|
+
}
|