@offscript/sdk 0.1.0 → 0.1.2
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 +21 -0
- package/README.md +3 -3
- package/dist/adapters/nuxt.cjs +3 -3
- package/dist/adapters/nuxt.js +2 -2
- package/dist/adapters/vanilla.cjs +5 -5
- package/dist/adapters/vanilla.js +3 -3
- package/dist/adapters/vue.cjs +3 -3
- package/dist/adapters/vue.js +2 -2
- package/dist/{chunk-MBYNQSKA.js → chunk-HECPMGDC.js} +3 -3
- package/dist/{chunk-MBYNQSKA.js.map → chunk-HECPMGDC.js.map} +1 -1
- package/dist/{chunk-3NX2AGXM.cjs → chunk-I6JPZAQA.cjs} +738 -31
- package/dist/chunk-I6JPZAQA.cjs.map +1 -0
- package/dist/{chunk-3OSCH7J2.js → chunk-IBEPWI7S.js} +729 -22
- package/dist/chunk-IBEPWI7S.js.map +1 -0
- package/dist/{chunk-B6GO5FE5.cjs → chunk-KQVK5EJR.cjs} +4 -3
- package/dist/chunk-KQVK5EJR.cjs.map +1 -0
- package/dist/{chunk-HAPNSHFG.cjs → chunk-TBPD2LMI.cjs} +4 -4
- package/dist/{chunk-HAPNSHFG.cjs.map → chunk-TBPD2LMI.cjs.map} +1 -1
- package/dist/{chunk-LFXHB4PN.js → chunk-WUFW7TEL.js} +4 -3
- package/dist/chunk-WUFW7TEL.js.map +1 -0
- package/dist/core/OffscriptSDK.d.ts +19 -0
- package/dist/core/SessionManager.d.ts +1 -0
- package/dist/index.cjs +25 -25
- package/dist/index.js +3 -3
- package/dist/playwright.cjs +13 -13
- package/dist/playwright.js +1 -1
- package/dist/privacy/DataSanitizer.d.ts +1 -0
- package/dist/recorders/ContextRecorder.d.ts +1 -1
- package/dist/types/config.d.ts +11 -0
- package/dist/types/events.d.ts +2 -0
- package/dist/types/session.d.ts +2 -2
- package/dist/ui/RecordingControls.d.ts +60 -0
- package/docs/api-contract.md +1 -1
- package/package.json +5 -4
- package/dist/chunk-3NX2AGXM.cjs.map +0 -1
- package/dist/chunk-3OSCH7J2.js.map +0 -1
- package/dist/chunk-B6GO5FE5.cjs.map +0 -1
- package/dist/chunk-LFXHB4PN.js.map +0 -1
package/dist/types/config.d.ts
CHANGED
|
@@ -55,6 +55,11 @@ export interface PrivacyConfig {
|
|
|
55
55
|
redactHeaders: string[];
|
|
56
56
|
/** Chaves adicionais (query/body/json) a redigir. */
|
|
57
57
|
redactKeys: string[];
|
|
58
|
+
/**
|
|
59
|
+
* Guarda os valores sensíveis por completo: senha, token, cookie, CPF, cartão.
|
|
60
|
+
* Padrão: false. Quando true, nada vira [REDACTED].
|
|
61
|
+
*/
|
|
62
|
+
captureSensitiveValues: boolean;
|
|
58
63
|
/** Tamanho máximo (bytes) de cada body capturado. */
|
|
59
64
|
maxBodyBytes: number;
|
|
60
65
|
/** Content-types capturáveis como texto. */
|
|
@@ -96,6 +101,11 @@ export interface OffscriptConfig {
|
|
|
96
101
|
/** Prefixo de chaves de storage. */
|
|
97
102
|
storagePrefix?: string;
|
|
98
103
|
debug?: boolean;
|
|
104
|
+
/**
|
|
105
|
+
* Mostra a barra de pausar, retomar, retornar, finalizar e nova sessão durante a gravação.
|
|
106
|
+
* Padrão: true. O overlay não entra no filme nem nas ações.
|
|
107
|
+
*/
|
|
108
|
+
controls?: boolean;
|
|
99
109
|
}
|
|
100
110
|
export interface ResolvedConfig {
|
|
101
111
|
apiUrl: string;
|
|
@@ -109,6 +119,7 @@ export interface ResolvedConfig {
|
|
|
109
119
|
heartbeatIntervalMs: number;
|
|
110
120
|
storagePrefix: string;
|
|
111
121
|
debug: boolean;
|
|
122
|
+
controls: boolean;
|
|
112
123
|
}
|
|
113
124
|
export declare const DEFAULT_RECORDING: RecordingConfig;
|
|
114
125
|
export declare const DEFAULT_PRIVACY: PrivacyConfig;
|
package/dist/types/events.d.ts
CHANGED
|
@@ -163,6 +163,8 @@ export interface ContextEventData {
|
|
|
163
163
|
executionId: string;
|
|
164
164
|
sdkVersion: string;
|
|
165
165
|
appVersion?: string;
|
|
166
|
+
/** A gravação guardou senhas, tokens e demais valores sem máscara. */
|
|
167
|
+
captureSensitiveValues?: boolean;
|
|
166
168
|
}
|
|
167
169
|
export interface IframeEventData {
|
|
168
170
|
phase: "present" | "removed" | "focus" | "blur" | "resized";
|
package/dist/types/session.d.ts
CHANGED
|
@@ -2,8 +2,8 @@ export type RecordingStatus = "idle" | "initializing" | "recording" | "paused" |
|
|
|
2
2
|
export interface StartRecordingOptions {
|
|
3
3
|
testCaseId: string;
|
|
4
4
|
executionId: string;
|
|
5
|
-
/** Token de curta duração emitido pelo backend da Offscript. */
|
|
6
|
-
sessionToken
|
|
5
|
+
/** Token de curta duração emitido pelo backend da Offscript. Quando omitido, é lido de `?offscript_token=`. */
|
|
6
|
+
sessionToken?: string;
|
|
7
7
|
}
|
|
8
8
|
/** Estado persistido em sessionStorage (escopo: aba). */
|
|
9
9
|
export interface PersistedSessionState {
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import type { OffscriptState, RecordingStatus, SessionInfo, StopSummary } from "../types/session";
|
|
2
|
+
/**
|
|
3
|
+
* Alvo mínimo para o overlay não importar a classe do SDK.
|
|
4
|
+
*/
|
|
5
|
+
export interface RecordingControlTarget {
|
|
6
|
+
getState(): OffscriptState;
|
|
7
|
+
on(type: "statusChange", fn: (payload: {
|
|
8
|
+
from: RecordingStatus;
|
|
9
|
+
to: RecordingStatus;
|
|
10
|
+
}) => void): () => void;
|
|
11
|
+
pauseRecording(): Promise<void>;
|
|
12
|
+
resumeRecording(): Promise<void>;
|
|
13
|
+
stopRecording(): Promise<StopSummary>;
|
|
14
|
+
startArmedRecording(): Promise<SessionInfo>;
|
|
15
|
+
startNewSession(): Promise<void>;
|
|
16
|
+
capturesSensitiveValues(): boolean;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Controles da gravação. Fechado, só a marca; aberto, a logo e os ícones.
|
|
20
|
+
* O host fica com tamanho zero e a interface mora num shadow fechado.
|
|
21
|
+
*/
|
|
22
|
+
export declare class RecordingControls {
|
|
23
|
+
private readonly sdk;
|
|
24
|
+
private host?;
|
|
25
|
+
private shadow?;
|
|
26
|
+
private note?;
|
|
27
|
+
private observer?;
|
|
28
|
+
private dockWatch?;
|
|
29
|
+
private unsubscribe?;
|
|
30
|
+
private eyeTimer;
|
|
31
|
+
private placeFrame;
|
|
32
|
+
private eyeIndex;
|
|
33
|
+
private busy;
|
|
34
|
+
private expanded;
|
|
35
|
+
private privacyOpen;
|
|
36
|
+
private failure;
|
|
37
|
+
private readonly onVisibility;
|
|
38
|
+
private readonly onViewport;
|
|
39
|
+
constructor(sdk: RecordingControlTarget);
|
|
40
|
+
mount(): void;
|
|
41
|
+
unmount(): void;
|
|
42
|
+
private place;
|
|
43
|
+
private watchDom;
|
|
44
|
+
private watchDock;
|
|
45
|
+
private bind;
|
|
46
|
+
private openConfirm;
|
|
47
|
+
private placeConfirm;
|
|
48
|
+
private closeConfirm;
|
|
49
|
+
private run;
|
|
50
|
+
private render;
|
|
51
|
+
private paintPrivacy;
|
|
52
|
+
private schedulePlacePrivacy;
|
|
53
|
+
private clearPrivacyPlace;
|
|
54
|
+
private placePrivacy;
|
|
55
|
+
private setEnabled;
|
|
56
|
+
private setHidden;
|
|
57
|
+
private startEyes;
|
|
58
|
+
private scheduleEye;
|
|
59
|
+
private applyPose;
|
|
60
|
+
}
|
package/docs/api-contract.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Contrato da API Offscript (SDK ↔ backend)
|
|
2
2
|
|
|
3
|
-
Todos os endpoints exigem `Authorization: Bearer <sessionToken>` (token de curta duração, escopo: plataforma + execução + sessão). Respostas em JSON. CORS: o backend deve permitir os headers `Authorization, Content-Type, Content-Encoding, Idempotency-Key, X-Offscript-Sdk` (um `*` **não** cobre `Authorization`).
|
|
3
|
+
Todos os endpoints exigem `Authorization: Bearer <sessionToken>` (token de curta duração, escopo: plataforma + execução + sessão). A aplicação pode entregar esse token ao SDK em `?offscript_token=` na URL inicial; o SDK o captura, remove o parâmetro da barra de endereço e o reutiliza em todas as chamadas, inclusive `/complete`. Respostas em JSON. CORS: o backend deve permitir os headers `Authorization, Content-Type, Content-Encoding, Idempotency-Key, X-Offscript-Sdk` (um `*` **não** cobre `Authorization`).
|
|
4
4
|
|
|
5
5
|
| Método | Caminho | Finalidade |
|
|
6
6
|
|---|---|---|
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@offscript/sdk",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "Offscript SDK -
|
|
5
|
-
"license": "
|
|
3
|
+
"version": "0.1.2",
|
|
4
|
+
"description": "Offscript SDK - gravação de sessões de teste QA (rrweb, ações, rede, erros)",
|
|
5
|
+
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"sideEffects": false,
|
|
8
8
|
"main": "./dist/index.cjs",
|
|
@@ -36,6 +36,7 @@
|
|
|
36
36
|
}
|
|
37
37
|
},
|
|
38
38
|
"files": [
|
|
39
|
+
"LICENSE",
|
|
39
40
|
"dist",
|
|
40
41
|
"README.md",
|
|
41
42
|
"docs"
|
|
@@ -78,4 +79,4 @@
|
|
|
78
79
|
"url": "https://github.com/soffact/offscript-sdk/issues"
|
|
79
80
|
},
|
|
80
81
|
"homepage": "https://github.com/soffact/offscript-sdk#readme"
|
|
81
|
-
}
|
|
82
|
+
}
|