@epoint-testtech/stage-core 0.0.3-alpha.1 → 0.0.4-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -5
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/utils/credentials-util.d.ts +34 -0
- package/dist/utils/credentials-util.d.ts.map +1 -0
- package/dist/utils/credentials-util.js +30 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -0
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
# @epoint/stage-core
|
|
1
|
+
# @epoint-testtech/stage-core
|
|
2
2
|
|
|
3
3
|
> Epoint Stage — Playwright 测试框架核心库
|
|
4
4
|
|
|
5
5
|
## 安装
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
|
-
npm install @epoint/stage-core
|
|
8
|
+
npm install @epoint-testtech/stage-core
|
|
9
9
|
# 或
|
|
10
|
-
pnpm add @epoint/stage-core
|
|
10
|
+
pnpm add @epoint-testtech/stage-core
|
|
11
11
|
```
|
|
12
12
|
|
|
13
13
|
## 使用
|
|
14
14
|
|
|
15
15
|
```typescript
|
|
16
|
-
import { StageContext, StagePath, stageLocator, syncAutoFill } from '@epoint/stage-core';
|
|
17
|
-
import { log } from '@epoint/stage-core/utils';
|
|
16
|
+
import { StageContext, StagePath, stageLocator, syncAutoFill } from '@epoint-testtech/stage-core';
|
|
17
|
+
import { log } from '@epoint-testtech/stage-core/utils';
|
|
18
18
|
|
|
19
19
|
StageContext.init();
|
|
20
20
|
await syncAutoFill(page);
|
package/dist/index.d.ts
CHANGED
|
@@ -8,4 +8,6 @@ export { apiCall, extract } from "./core/stage-api.js";
|
|
|
8
8
|
export type { ApiVia, ApiCallOptions, ApiResponse, } from "./core/stage-api.js";
|
|
9
9
|
export { renderFlowReportHtml, writeFlowReport, loadRunRecords, writeRunRecord, runRecordFile, } from "./core/stage-report.js";
|
|
10
10
|
export type { FlowRunRecord, FlowRunStepResult, StepRunStatus, WriteReportOptions, } from "./core/stage-report.js";
|
|
11
|
+
export { loadCredentials } from "./utils/credentials-util.js";
|
|
12
|
+
export type { Credential } from "./utils/credentials-util.js";
|
|
11
13
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,YAAY,EACV,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACvD,YAAY,EACV,MAAM,EACN,cAAc,EACd,WAAW,GACZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,cAAc,EACd,aAAa,GACd,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,kBAAkB,GACnB,MAAM,wBAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,YAAY,EACV,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACvD,YAAY,EACV,MAAM,EACN,cAAc,EACd,WAAW,GACZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,cAAc,EACd,aAAa,GACd,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,YAAY,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -5,3 +5,4 @@ export { stageLocator } from "./core/stage-locator.js";
|
|
|
5
5
|
export { runStageFlow } from "./core/stage-flow.js";
|
|
6
6
|
export { apiCall, extract } from "./core/stage-api.js";
|
|
7
7
|
export { renderFlowReportHtml, writeFlowReport, loadRunRecords, writeRunRecord, runRecordFile, } from "./core/stage-report.js";
|
|
8
|
+
export { loadCredentials } from "./utils/credentials-util.js";
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @Description: 凭据加载工具 — 读 credentials.json5 数组形态多角色凭据。
|
|
3
|
+
* 供 glue 项目内 Playwright 测试代码登录切换使用(REQ-ENV-02)。
|
|
4
|
+
* @Author: taurus
|
|
5
|
+
* @Date: 2026/06/25
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* 凭据条目(数组形态 credentials.json5 单元素结构)。
|
|
9
|
+
*/
|
|
10
|
+
export type Credential = {
|
|
11
|
+
/** 登录页 URL(必填) */
|
|
12
|
+
url: string;
|
|
13
|
+
/** 登录账号(必填) */
|
|
14
|
+
username: string;
|
|
15
|
+
/** 登录密码(必填) */
|
|
16
|
+
password: string;
|
|
17
|
+
/** 角色名(可选;用于 Playwright 多角色登录切换) */
|
|
18
|
+
role?: string;
|
|
19
|
+
/** 系统名(可选;便于审阅与报告打印) */
|
|
20
|
+
systemName?: string;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* 从 credentials.json5 读取数组形态凭据,按 role 匹配。
|
|
24
|
+
*
|
|
25
|
+
* 适用场景:胶水项目内 Playwright 测试代码登录切换。一个需求可能涉及多系统、
|
|
26
|
+
* 多角色,credentials.json5 数组每项一个角色。
|
|
27
|
+
*
|
|
28
|
+
* @param credentialsPath - credentials.json5 绝对路径。
|
|
29
|
+
* @param role - 可选角色过滤;不传时返回全部条目。
|
|
30
|
+
* @returns 匹配的凭据数组(无 role 过滤时返回所有;传 role 后返回 `role === role` 的子集)。
|
|
31
|
+
* @throws 文件不存在或非数组时抛出可读中文错误。
|
|
32
|
+
*/
|
|
33
|
+
export declare function loadCredentials(credentialsPath: string, role?: string): Credential[];
|
|
34
|
+
//# sourceMappingURL=credentials-util.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credentials-util.d.ts","sourceRoot":"","sources":["../../src/utils/credentials-util.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,kBAAkB;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,eAAe;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,oCAAoC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wBAAwB;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,eAAe,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,EAAE,CAUpF"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @Description: 凭据加载工具 — 读 credentials.json5 数组形态多角色凭据。
|
|
3
|
+
* 供 glue 项目内 Playwright 测试代码登录切换使用(REQ-ENV-02)。
|
|
4
|
+
* @Author: taurus
|
|
5
|
+
* @Date: 2026/06/25
|
|
6
|
+
*/
|
|
7
|
+
import { readFileSync, existsSync } from 'node:fs';
|
|
8
|
+
import JSON5 from 'json5';
|
|
9
|
+
/**
|
|
10
|
+
* 从 credentials.json5 读取数组形态凭据,按 role 匹配。
|
|
11
|
+
*
|
|
12
|
+
* 适用场景:胶水项目内 Playwright 测试代码登录切换。一个需求可能涉及多系统、
|
|
13
|
+
* 多角色,credentials.json5 数组每项一个角色。
|
|
14
|
+
*
|
|
15
|
+
* @param credentialsPath - credentials.json5 绝对路径。
|
|
16
|
+
* @param role - 可选角色过滤;不传时返回全部条目。
|
|
17
|
+
* @returns 匹配的凭据数组(无 role 过滤时返回所有;传 role 后返回 `role === role` 的子集)。
|
|
18
|
+
* @throws 文件不存在或非数组时抛出可读中文错误。
|
|
19
|
+
*/
|
|
20
|
+
export function loadCredentials(credentialsPath, role) {
|
|
21
|
+
if (!existsSync(credentialsPath)) {
|
|
22
|
+
throw new Error(`credentials.json5 不存在: ${credentialsPath}`);
|
|
23
|
+
}
|
|
24
|
+
const raw = JSON5.parse(readFileSync(credentialsPath, 'utf8'));
|
|
25
|
+
if (!Array.isArray(raw)) {
|
|
26
|
+
throw new Error(`credentials.json5 顶层必须是数组形态: ${credentialsPath}`);
|
|
27
|
+
}
|
|
28
|
+
const all = raw;
|
|
29
|
+
return role ? all.filter((c) => c.role === role) : all;
|
|
30
|
+
}
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -6,4 +6,6 @@
|
|
|
6
6
|
export { getRequiredEnvVar, getOptionalEnvVar } from './env-util.js';
|
|
7
7
|
export { log } from './log-util.js';
|
|
8
8
|
export { addTimeStampPrefix, generateTimeStamp } from './time-stamp-util.js';
|
|
9
|
+
export { loadCredentials } from './credentials-util.js';
|
|
10
|
+
export type { Credential } from './credentials-util.js';
|
|
9
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,YAAY,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC"}
|
package/dist/utils/index.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@epoint-testtech/stage-core",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.4-alpha.0",
|
|
4
4
|
"description": "Epoint Stage — Playwright 测试框架核心库",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -32,6 +32,7 @@
|
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
34
|
"dotenv": "^17.2.3",
|
|
35
|
+
"json5": "^2.2.3",
|
|
35
36
|
"winston": "^3.17.0"
|
|
36
37
|
},
|
|
37
38
|
"peerDependencies": {
|