playwright-api-logger 2.1.0 → 2.2.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.
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Global registry for sharing ApiLogger instances across
3
+ * beforeAll / test / afterAll in a Playwright test.describe block.
4
+ *
5
+ * Solves the problem: Playwright creates separate fixture instances
6
+ * for beforeAll, each test(), and afterAll — without a shared store
7
+ * each gets its own logger and writes a separate file.
8
+ *
9
+ * With LoggerRegistry, all phases write to the SAME structured log.
10
+ */
11
+ import { ApiLogger } from './ApiLogger';
12
+ import { LoggerConfig } from './types';
13
+ /**
14
+ * Get or create a shared logger by key.
15
+ * First call creates the logger, subsequent calls return the same instance.
16
+ *
17
+ * @param key - Unique key for the logger (e.g. describe block name)
18
+ * @param config - Logger config (only used on first call when creating)
19
+ * @returns Shared ApiLogger instance
20
+ *
21
+ * @example
22
+ * test.describe('GET /api/v1/employees', () => {
23
+ * const LOG_KEY = 'get-employees';
24
+ *
25
+ * test.beforeAll(async ({ apiClient }) => {
26
+ * const logger = getSharedLogger(LOG_KEY, { testName: 'GET employees' });
27
+ * logger.startPreconditions();
28
+ * // ... apiClient calls logged to preconditions
29
+ * });
30
+ *
31
+ * test('should return 200', async ({ apiClient }) => {
32
+ * const logger = getSharedLogger(LOG_KEY);
33
+ * logger.startTest();
34
+ * // ... apiClient calls logged to steps
35
+ * });
36
+ *
37
+ * test.afterAll(() => {
38
+ * finalizeSharedLogger(LOG_KEY, 'PASSED');
39
+ * });
40
+ * });
41
+ */
42
+ export declare function getSharedLogger(key: string, config?: LoggerConfig): ApiLogger;
43
+ /**
44
+ * Finalize a shared logger: write the structured document and remove from registry.
45
+ *
46
+ * @param key - The logger key used in getSharedLogger()
47
+ * @param result - Test result: 'PASSED' | 'FAILED' | 'SKIPPED'
48
+ * @param additionalInfo - Optional extra info to include
49
+ */
50
+ export declare function finalizeSharedLogger(key: string, result: 'PASSED' | 'FAILED' | 'SKIPPED', additionalInfo?: Record<string, any>): void;
51
+ /**
52
+ * Check if a shared logger exists for the given key.
53
+ */
54
+ export declare function hasSharedLogger(key: string): boolean;
55
+ /**
56
+ * Remove a shared logger without finalizing (cleanup).
57
+ */
58
+ export declare function removeSharedLogger(key: string): void;
59
+ //# sourceMappingURL=LoggerRegistry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LoggerRegistry.d.ts","sourceRoot":"","sources":["../src/LoggerRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAIvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,SAAS,CAK7E;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,EACvC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACnC,IAAI,CAMN;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAEpD"}
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ /**
3
+ * Global registry for sharing ApiLogger instances across
4
+ * beforeAll / test / afterAll in a Playwright test.describe block.
5
+ *
6
+ * Solves the problem: Playwright creates separate fixture instances
7
+ * for beforeAll, each test(), and afterAll — without a shared store
8
+ * each gets its own logger and writes a separate file.
9
+ *
10
+ * With LoggerRegistry, all phases write to the SAME structured log.
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.getSharedLogger = getSharedLogger;
14
+ exports.finalizeSharedLogger = finalizeSharedLogger;
15
+ exports.hasSharedLogger = hasSharedLogger;
16
+ exports.removeSharedLogger = removeSharedLogger;
17
+ const ApiLogger_1 = require("./ApiLogger");
18
+ const registry = new Map();
19
+ /**
20
+ * Get or create a shared logger by key.
21
+ * First call creates the logger, subsequent calls return the same instance.
22
+ *
23
+ * @param key - Unique key for the logger (e.g. describe block name)
24
+ * @param config - Logger config (only used on first call when creating)
25
+ * @returns Shared ApiLogger instance
26
+ *
27
+ * @example
28
+ * test.describe('GET /api/v1/employees', () => {
29
+ * const LOG_KEY = 'get-employees';
30
+ *
31
+ * test.beforeAll(async ({ apiClient }) => {
32
+ * const logger = getSharedLogger(LOG_KEY, { testName: 'GET employees' });
33
+ * logger.startPreconditions();
34
+ * // ... apiClient calls logged to preconditions
35
+ * });
36
+ *
37
+ * test('should return 200', async ({ apiClient }) => {
38
+ * const logger = getSharedLogger(LOG_KEY);
39
+ * logger.startTest();
40
+ * // ... apiClient calls logged to steps
41
+ * });
42
+ *
43
+ * test.afterAll(() => {
44
+ * finalizeSharedLogger(LOG_KEY, 'PASSED');
45
+ * });
46
+ * });
47
+ */
48
+ function getSharedLogger(key, config) {
49
+ if (!registry.has(key)) {
50
+ registry.set(key, new ApiLogger_1.ApiLogger(config));
51
+ }
52
+ return registry.get(key);
53
+ }
54
+ /**
55
+ * Finalize a shared logger: write the structured document and remove from registry.
56
+ *
57
+ * @param key - The logger key used in getSharedLogger()
58
+ * @param result - Test result: 'PASSED' | 'FAILED' | 'SKIPPED'
59
+ * @param additionalInfo - Optional extra info to include
60
+ */
61
+ function finalizeSharedLogger(key, result, additionalInfo) {
62
+ const logger = registry.get(key);
63
+ if (logger) {
64
+ logger.finalize(result, additionalInfo);
65
+ registry.delete(key);
66
+ }
67
+ }
68
+ /**
69
+ * Check if a shared logger exists for the given key.
70
+ */
71
+ function hasSharedLogger(key) {
72
+ return registry.has(key);
73
+ }
74
+ /**
75
+ * Remove a shared logger without finalizing (cleanup).
76
+ */
77
+ function removeSharedLogger(key) {
78
+ registry.delete(key);
79
+ }
80
+ //# sourceMappingURL=LoggerRegistry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LoggerRegistry.js","sourceRoot":"","sources":["../src/LoggerRegistry.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;AAoCH,0CAKC;AASD,oDAUC;AAKD,0CAEC;AAKD,gDAEC;AAxED,2CAAwC;AAGxC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAqB,CAAC;AAE9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,SAAgB,eAAe,CAAC,GAAW,EAAE,MAAqB;IAChE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,qBAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;AAC5B,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,oBAAoB,CAClC,GAAW,EACX,MAAuC,EACvC,cAAoC;IAEpC,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QACxC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe,CAAC,GAAW;IACzC,OAAO,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,SAAgB,kBAAkB,CAAC,GAAW;IAC5C,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACvB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export { ApiLogger, createApiLogger, createSetupLogger, createTeardownLogger } from './ApiLogger';
2
2
  export { CurlGenerator } from './CurlGenerator';
3
3
  export { withApiLogging } from './withApiLogging';
4
+ export { getSharedLogger, finalizeSharedLogger, hasSharedLogger, removeSharedLogger } from './LoggerRegistry';
4
5
  export type { ApiLoggingOptions } from './withApiLogging';
5
6
  export type { LoggerConfig, RequestLogData, ResponseLogData, StepLogEntry, TestLogDocument, LogEntry, LogContext, } from './types';
6
7
  export type { RequestData } from './CurlGenerator';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAClG,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,YAAY,EACV,YAAY,EACZ,cAAc,EACd,eAAe,EACf,YAAY,EACZ,eAAe,EACf,QAAQ,EACR,UAAU,GACX,MAAM,SAAS,CAAC;AACjB,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAClG,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC9G,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,YAAY,EACV,YAAY,EACZ,cAAc,EACd,eAAe,EACf,YAAY,EACZ,eAAe,EACf,QAAQ,EACR,UAAU,GACX,MAAM,SAAS,CAAC;AACjB,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC"}
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.withApiLogging = exports.CurlGenerator = exports.createTeardownLogger = exports.createSetupLogger = exports.createApiLogger = exports.ApiLogger = void 0;
3
+ exports.removeSharedLogger = exports.hasSharedLogger = exports.finalizeSharedLogger = exports.getSharedLogger = exports.withApiLogging = exports.CurlGenerator = exports.createTeardownLogger = exports.createSetupLogger = exports.createApiLogger = exports.ApiLogger = void 0;
4
4
  var ApiLogger_1 = require("./ApiLogger");
5
5
  Object.defineProperty(exports, "ApiLogger", { enumerable: true, get: function () { return ApiLogger_1.ApiLogger; } });
6
6
  Object.defineProperty(exports, "createApiLogger", { enumerable: true, get: function () { return ApiLogger_1.createApiLogger; } });
@@ -10,4 +10,9 @@ var CurlGenerator_1 = require("./CurlGenerator");
10
10
  Object.defineProperty(exports, "CurlGenerator", { enumerable: true, get: function () { return CurlGenerator_1.CurlGenerator; } });
11
11
  var withApiLogging_1 = require("./withApiLogging");
12
12
  Object.defineProperty(exports, "withApiLogging", { enumerable: true, get: function () { return withApiLogging_1.withApiLogging; } });
13
+ var LoggerRegistry_1 = require("./LoggerRegistry");
14
+ Object.defineProperty(exports, "getSharedLogger", { enumerable: true, get: function () { return LoggerRegistry_1.getSharedLogger; } });
15
+ Object.defineProperty(exports, "finalizeSharedLogger", { enumerable: true, get: function () { return LoggerRegistry_1.finalizeSharedLogger; } });
16
+ Object.defineProperty(exports, "hasSharedLogger", { enumerable: true, get: function () { return LoggerRegistry_1.hasSharedLogger; } });
17
+ Object.defineProperty(exports, "removeSharedLogger", { enumerable: true, get: function () { return LoggerRegistry_1.removeSharedLogger; } });
13
18
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,yCAAkG;AAAzF,sGAAA,SAAS,OAAA;AAAE,4GAAA,eAAe,OAAA;AAAE,8GAAA,iBAAiB,OAAA;AAAE,iHAAA,oBAAoB,OAAA;AAC5E,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AACtB,mDAAkD;AAAzC,gHAAA,cAAc,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,yCAAkG;AAAzF,sGAAA,SAAS,OAAA;AAAE,4GAAA,eAAe,OAAA;AAAE,8GAAA,iBAAiB,OAAA;AAAE,iHAAA,oBAAoB,OAAA;AAC5E,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AACtB,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AACvB,mDAA8G;AAArG,iHAAA,eAAe,OAAA;AAAE,sHAAA,oBAAoB,OAAA;AAAE,iHAAA,eAAe,OAAA;AAAE,oHAAA,kBAAkB,OAAA"}
@@ -16,8 +16,10 @@ export interface ApiLoggingOptions {
16
16
  logDirectory?: string;
17
17
  /** Mask Authorization headers (default: true) */
18
18
  maskAuthTokens?: boolean;
19
- /** Existing logger to share across setup/test/teardown phases */
19
+ /** Existing logger instance to reuse */
20
20
  logger?: ApiLogger;
21
+ /** Shared logger key — use same key in beforeAll/test/afterAll to write ONE log file */
22
+ sharedKey?: string;
21
23
  }
22
24
  /**
23
25
  * Wrap Playwright's APIRequestContext with automatic logging.
@@ -33,15 +35,12 @@ export interface ApiLoggingOptions {
33
35
  * const apiClient = new ApiClient(loggedRequest);
34
36
  *
35
37
  * @example
36
- * // With preconditions and test steps:
37
- * const loggedRequest = withApiLogging(request, testInfo);
38
- * loggedRequest.__logger.startPreconditions();
39
- * loggedRequest.__logger.describe('Get employee for test');
40
- * await apiClient.getEmployees();
41
- * loggedRequest.__logger.startTest();
42
- * loggedRequest.__logger.describe('Try to access without token');
43
- * await apiClient.getWithoutAuth();
44
- * loggedRequest.__logger.finalize('PASSED');
38
+ * // Shared logger across beforeAll/test/afterAll:
39
+ * const loggedRequest = withApiLogging(request, {
40
+ * sharedKey: 'my-describe',
41
+ * testName: 'My Test',
42
+ * context: 'preconditions'
43
+ * });
45
44
  */
46
45
  export declare function withApiLogging(request: APIRequestContext, testInfoOrOptions?: TestInfo | ApiLoggingOptions): APIRequestContext & {
47
46
  __logger: ApiLogger;
@@ -1 +1 @@
1
- {"version":3,"file":"withApiLogging.d.ts","sourceRoot":"","sources":["../src/withApiLogging.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAe,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjF,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,UAAU,EAAgB,MAAM,SAAS,CAAC;AAEnD,MAAM,WAAW,iBAAiB;IAChC,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2EAA2E;IAC3E,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,8CAA8C;IAC9C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iDAAiD;IACjD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,iEAAiE;IACjE,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,iBAAiB,EAC1B,iBAAiB,CAAC,EAAE,QAAQ,GAAG,iBAAiB,GAC/C,iBAAiB,GAAG;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,CAmG7C"}
1
+ {"version":3,"file":"withApiLogging.d.ts","sourceRoot":"","sources":["../src/withApiLogging.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAe,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjF,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,UAAU,EAAgB,MAAM,SAAS,CAAC;AAGnD,MAAM,WAAW,iBAAiB;IAChC,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2EAA2E;IAC3E,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,8CAA8C;IAC9C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iDAAiD;IACjD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,wCAAwC;IACxC,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,wFAAwF;IACxF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,iBAAiB,EAC1B,iBAAiB,CAAC,EAAE,QAAQ,GAAG,iBAAiB,GAC/C,iBAAiB,GAAG;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,CAiH7C"}
@@ -6,6 +6,7 @@
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.withApiLogging = withApiLogging;
8
8
  const ApiLogger_1 = require("./ApiLogger");
9
+ const LoggerRegistry_1 = require("./LoggerRegistry");
9
10
  /**
10
11
  * Wrap Playwright's APIRequestContext with automatic logging.
11
12
  * All HTTP calls (get, post, put, patch, delete, head, fetch) are intercepted and logged.
@@ -20,15 +21,12 @@ const ApiLogger_1 = require("./ApiLogger");
20
21
  * const apiClient = new ApiClient(loggedRequest);
21
22
  *
22
23
  * @example
23
- * // With preconditions and test steps:
24
- * const loggedRequest = withApiLogging(request, testInfo);
25
- * loggedRequest.__logger.startPreconditions();
26
- * loggedRequest.__logger.describe('Get employee for test');
27
- * await apiClient.getEmployees();
28
- * loggedRequest.__logger.startTest();
29
- * loggedRequest.__logger.describe('Try to access without token');
30
- * await apiClient.getWithoutAuth();
31
- * loggedRequest.__logger.finalize('PASSED');
24
+ * // Shared logger across beforeAll/test/afterAll:
25
+ * const loggedRequest = withApiLogging(request, {
26
+ * sharedKey: 'my-describe',
27
+ * testName: 'My Test',
28
+ * context: 'preconditions'
29
+ * });
32
30
  */
33
31
  function withApiLogging(request, testInfoOrOptions) {
34
32
  let options;
@@ -43,9 +41,24 @@ function withApiLogging(request, testInfoOrOptions) {
43
41
  else {
44
42
  options = testInfoOrOptions || {};
45
43
  }
46
- // Use shared logger or create new
44
+ // Resolve logger: shared existing new
47
45
  let logger;
48
- if (options.logger) {
46
+ if (options.sharedKey) {
47
+ // Shared logger by key — same instance across beforeAll/test/afterAll
48
+ const config = {
49
+ testName: options.testName,
50
+ testFile: options.testFile,
51
+ context: options.context || 'test',
52
+ logDirectory: options.logDirectory,
53
+ maskAuthTokens: options.maskAuthTokens,
54
+ };
55
+ logger = (0, LoggerRegistry_1.getSharedLogger)(options.sharedKey, config);
56
+ // Switch context for this phase
57
+ if (options.context) {
58
+ logger.setContext(options.context);
59
+ }
60
+ }
61
+ else if (options.logger) {
49
62
  logger = options.logger;
50
63
  if (options.context) {
51
64
  logger.setContext(options.context);
@@ -1 +1 @@
1
- {"version":3,"file":"withApiLogging.js","sourceRoot":"","sources":["../src/withApiLogging.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"withApiLogging.js","sourceRoot":"","sources":["../src/withApiLogging.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "playwright-api-logger",
3
- "version": "2.1.0",
3
+ "version": "2.2.0",
4
4
  "description": "Comprehensive API request/response logger with curl export for Playwright tests",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",