ray-logger-report 0.0.1
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/index.d.ts +19 -0
- package/index.d.ts.map +1 -0
- package/index.js +127 -0
- package/index.js.map +1 -0
- package/package.json +18 -0
- package/types.d.ts +18 -0
- package/types.d.ts.map +1 -0
- package/utils.d.ts +17 -0
- package/utils.d.ts.map +1 -0
package/index.d.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { WebLoggerController } from '@ray-web-logger/core';
|
|
2
|
+
import type { UploadEnvironment, UploadLogMetadata, UploadResult, UploadSinceOptions } from './types';
|
|
3
|
+
export type { UploadBusinessLine, UploadEnvironment, UploadLogMetadata, UploadResult, UploadSinceOptions, } from './types';
|
|
4
|
+
export { UploadError } from './types';
|
|
5
|
+
export interface UploadManagerOptions {
|
|
6
|
+
env: UploadEnvironment;
|
|
7
|
+
controller: WebLoggerController;
|
|
8
|
+
fetchImpl?: typeof fetch;
|
|
9
|
+
userAgent?: string;
|
|
10
|
+
baseUrl?: string;
|
|
11
|
+
}
|
|
12
|
+
export declare class UploadManager {
|
|
13
|
+
#private;
|
|
14
|
+
constructor(options: UploadManagerOptions);
|
|
15
|
+
uploadSince(options: UploadSinceOptions): Promise<UploadResult>;
|
|
16
|
+
uploadFull(options: UploadLogMetadata): Promise<UploadResult>;
|
|
17
|
+
get env(): UploadEnvironment;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=index.d.ts.map
|
package/index.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE/E,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAgBtG,YAAY,EACV,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,kBAAkB,GACnB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,iBAAiB,CAAC;IACvB,UAAU,EAAE,mBAAmB,CAAC;IAChC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAOD,qBAAa,aAAa;;gBAOZ,OAAO,EAAE,oBAAoB;IAQnC,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC;IAM/D,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,CAAC;IAgDnE,IAAI,GAAG,IAAI,iBAAiB,CAE3B;CACF"}
|
package/index.js
ADDED
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
class UploadError extends Error {
|
|
2
|
+
status;
|
|
3
|
+
constructor(message, status) {
|
|
4
|
+
super(message);
|
|
5
|
+
this.status = status;
|
|
6
|
+
this.name = 'UploadError';
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const REPORT_PATH = '/api/report/logs';
|
|
11
|
+
const MAX_USER_AGENT_LENGTH = 200;
|
|
12
|
+
function resolveGlobalFetch() {
|
|
13
|
+
if (typeof globalThis.fetch !== 'function') {
|
|
14
|
+
throw new UploadError('No fetch implementation is available. Pass fetchImpl to UploadManager.');
|
|
15
|
+
}
|
|
16
|
+
return globalThis.fetch.bind(globalThis);
|
|
17
|
+
}
|
|
18
|
+
function resolveUserAgent() {
|
|
19
|
+
return globalThis.navigator?.userAgent ?? '';
|
|
20
|
+
}
|
|
21
|
+
function normalizeUserAgent(userAgent) {
|
|
22
|
+
return userAgent.slice(0, MAX_USER_AGENT_LENGTH);
|
|
23
|
+
}
|
|
24
|
+
function normalizeBaseUrl(baseUrl) {
|
|
25
|
+
return baseUrl.replace(/\/+$/u, '');
|
|
26
|
+
}
|
|
27
|
+
function assertFiniteNumber(value, name) {
|
|
28
|
+
if (!Number.isFinite(value)) {
|
|
29
|
+
throw new UploadError(`${name} must be a finite number.`);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
function validateMetadata(metadata) {
|
|
33
|
+
assertFiniteNumber(metadata.userId, 'userId');
|
|
34
|
+
if (!Number.isInteger(metadata.userId)) {
|
|
35
|
+
throw new UploadError('userId must be an integer.');
|
|
36
|
+
}
|
|
37
|
+
if (typeof metadata.remark !== 'string') {
|
|
38
|
+
throw new UploadError('remark must be a string.');
|
|
39
|
+
}
|
|
40
|
+
if (!isUploadBusinessLine(metadata.businessLine)) {
|
|
41
|
+
throw new UploadError('businessLine is invalid.');
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
function isUploadBusinessLine(value) {
|
|
45
|
+
return value === 'renderbus' || value === 'fox' || value === 'pixmax' || value === 'qingjiao';
|
|
46
|
+
}
|
|
47
|
+
async function formatHttpError(response) {
|
|
48
|
+
const text = await response.text().catch(() => '');
|
|
49
|
+
const suffix = text ? `: ${text.slice(0, 500)}` : '';
|
|
50
|
+
return `Upload failed with HTTP ${response.status}${suffix}`;
|
|
51
|
+
}
|
|
52
|
+
function isUploadResult(value) {
|
|
53
|
+
return (typeof value === 'object' &&
|
|
54
|
+
value !== null &&
|
|
55
|
+
'id' in value &&
|
|
56
|
+
typeof value.id === 'number');
|
|
57
|
+
}
|
|
58
|
+
function safeFilePart(value) {
|
|
59
|
+
return value.replace(/[^a-zA-Z0-9_-]/gu, '_') || 'session';
|
|
60
|
+
}
|
|
61
|
+
function createSessionFile(session) {
|
|
62
|
+
return new Blob([JSON.stringify(session)], { type: 'application/json' });
|
|
63
|
+
}
|
|
64
|
+
function createSessionFileName(session, kind) {
|
|
65
|
+
return `web-logger-${kind}-${safeFilePart(session.sessionId)}-${Date.now()}.json`;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
const ENV_BASE_URLS = {
|
|
69
|
+
test: 'https://10.51.154.48:8443',
|
|
70
|
+
prod: 'https://logger.rayvision.com:10443',
|
|
71
|
+
};
|
|
72
|
+
class UploadManager {
|
|
73
|
+
#env;
|
|
74
|
+
#controller;
|
|
75
|
+
#fetchImpl;
|
|
76
|
+
#userAgent;
|
|
77
|
+
#baseUrl;
|
|
78
|
+
constructor(options) {
|
|
79
|
+
this.#env = options.env;
|
|
80
|
+
this.#controller = options.controller;
|
|
81
|
+
this.#fetchImpl = options.fetchImpl ?? resolveGlobalFetch();
|
|
82
|
+
this.#userAgent = normalizeUserAgent(options.userAgent ?? resolveUserAgent());
|
|
83
|
+
this.#baseUrl = normalizeBaseUrl(options.baseUrl ?? ENV_BASE_URLS[options.env]);
|
|
84
|
+
}
|
|
85
|
+
async uploadSince(options) {
|
|
86
|
+
assertFiniteNumber(options.sinceMs, 'sinceMs');
|
|
87
|
+
const session = await this.#controller.exportSince(options.sinceMs);
|
|
88
|
+
return this.#uploadSession(session, 'since', options);
|
|
89
|
+
}
|
|
90
|
+
async uploadFull(options) {
|
|
91
|
+
const session = await this.#controller.exportFull();
|
|
92
|
+
return this.#uploadSession(session, 'full', options);
|
|
93
|
+
}
|
|
94
|
+
async #uploadSession(session, kind, metadata) {
|
|
95
|
+
validateMetadata(metadata);
|
|
96
|
+
const response = await this.#fetchImpl(this.#uploadUrl(), {
|
|
97
|
+
method: 'POST',
|
|
98
|
+
body: this.#createFormData(session, kind, metadata),
|
|
99
|
+
});
|
|
100
|
+
if (!response.ok) {
|
|
101
|
+
throw new UploadError(await formatHttpError(response), response.status);
|
|
102
|
+
}
|
|
103
|
+
const payload = await response.json();
|
|
104
|
+
if (!isUploadResult(payload)) {
|
|
105
|
+
throw new UploadError('Invalid upload response: expected numeric id.');
|
|
106
|
+
}
|
|
107
|
+
return payload;
|
|
108
|
+
}
|
|
109
|
+
#createFormData(session, kind, metadata) {
|
|
110
|
+
const formData = new FormData();
|
|
111
|
+
formData.set('file', createSessionFile(session), createSessionFileName(session, kind));
|
|
112
|
+
formData.set('remark', metadata.remark);
|
|
113
|
+
formData.set('userId', String(metadata.userId));
|
|
114
|
+
formData.set('userAgent', this.#userAgent);
|
|
115
|
+
formData.set('businessLine', metadata.businessLine);
|
|
116
|
+
return formData;
|
|
117
|
+
}
|
|
118
|
+
#uploadUrl() {
|
|
119
|
+
return `${this.#baseUrl}${REPORT_PATH}`;
|
|
120
|
+
}
|
|
121
|
+
get env() {
|
|
122
|
+
return this.#env;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
export { UploadError, UploadManager };
|
|
127
|
+
//# sourceMappingURL=index.js.map
|
package/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/types.ts","../src/utils.ts","../src/index.ts"],"sourcesContent":[null,null,null],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "ray-logger-report",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"description": "web-logger: upload SessionExport JSON to report API",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"sideEffects": false,
|
|
7
|
+
"main": "./index.js",
|
|
8
|
+
"types": "./index.d.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"types": "./index.d.ts",
|
|
12
|
+
"import": "./index.js"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"dependencies": {
|
|
16
|
+
"@ray-web-logger/core": "workspace:*"
|
|
17
|
+
}
|
|
18
|
+
}
|
package/types.d.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export type UploadEnvironment = 'test' | 'prod';
|
|
2
|
+
export type UploadBusinessLine = 'renderbus' | 'fox' | 'pixmax' | 'qingjiao';
|
|
3
|
+
export interface UploadLogMetadata {
|
|
4
|
+
userId: number;
|
|
5
|
+
remark: string;
|
|
6
|
+
businessLine: UploadBusinessLine;
|
|
7
|
+
}
|
|
8
|
+
export interface UploadSinceOptions extends UploadLogMetadata {
|
|
9
|
+
sinceMs: number;
|
|
10
|
+
}
|
|
11
|
+
export interface UploadResult {
|
|
12
|
+
id: number;
|
|
13
|
+
}
|
|
14
|
+
export declare class UploadError extends Error {
|
|
15
|
+
readonly status?: number | undefined;
|
|
16
|
+
constructor(message: string, status?: number | undefined);
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=types.d.ts.map
|
package/types.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,MAAM,CAAC;AAChD,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,KAAK,GAAG,QAAQ,GAAG,UAAU,CAAC;AAE7E,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,kBAAkB,CAAC;CAClC;AAED,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,qBAAa,WAAY,SAAQ,KAAK;IAGlC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM;gBADxB,OAAO,EAAE,MAAM,EACN,MAAM,CAAC,EAAE,MAAM,YAAA;CAK3B"}
|
package/utils.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { SessionExport } from '@ray-web-logger/core';
|
|
2
|
+
import { type UploadBusinessLine, type UploadLogMetadata, type UploadResult } from './types';
|
|
3
|
+
export declare const REPORT_PATH = "/api/report/logs";
|
|
4
|
+
export declare const MAX_USER_AGENT_LENGTH = 200;
|
|
5
|
+
export declare function resolveGlobalFetch(): typeof fetch;
|
|
6
|
+
export declare function resolveUserAgent(): string;
|
|
7
|
+
export declare function normalizeUserAgent(userAgent: string): string;
|
|
8
|
+
export declare function normalizeBaseUrl(baseUrl: string): string;
|
|
9
|
+
export declare function assertFiniteNumber(value: number, name: string): void;
|
|
10
|
+
export declare function validateMetadata(metadata: UploadLogMetadata): void;
|
|
11
|
+
export declare function isUploadBusinessLine(value: string): value is UploadBusinessLine;
|
|
12
|
+
export declare function formatHttpError(response: Response): Promise<string>;
|
|
13
|
+
export declare function isUploadResult(value: unknown): value is UploadResult;
|
|
14
|
+
export declare function safeFilePart(value: string): string;
|
|
15
|
+
export declare function createSessionFile(session: SessionExport): Blob;
|
|
16
|
+
export declare function createSessionFileName(session: SessionExport, kind: 'full' | 'since'): string;
|
|
17
|
+
//# sourceMappingURL=utils.d.ts.map
|
package/utils.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAe,KAAK,kBAAkB,EAAE,KAAK,iBAAiB,EAAE,KAAK,YAAY,EAAE,MAAM,SAAS,CAAC;AAE1G,eAAO,MAAM,WAAW,qBAAqB,CAAC;AAC9C,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAEzC,wBAAgB,kBAAkB,IAAI,OAAO,KAAK,CAMjD;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAIpE;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAclE;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,kBAAkB,CAE/E;AAED,wBAAsB,eAAe,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAIzE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY,CAOpE;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAE9D;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAE5F"}
|