@qmuse/cloud-client 1.0.6 → 1.0.7-dev.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/README.md +10 -1
- package/dist/adapters.d.ts +1 -0
- package/dist/adapters.d.ts.map +1 -1
- package/dist/adapters.js +9 -0
- package/dist/adapters.js.map +1 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +70 -37
- package/dist/client.js.map +1 -1
- package/dist/diagnostics.d.ts.map +1 -1
- package/dist/diagnostics.js +10 -2
- package/dist/diagnostics.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/jobs.d.ts +2 -0
- package/dist/jobs.d.ts.map +1 -1
- package/dist/jobs.js +89 -63
- package/dist/jobs.js.map +1 -1
- package/dist/miniapp.d.ts.map +1 -1
- package/dist/miniapp.js +8 -2
- package/dist/miniapp.js.map +1 -1
- package/dist/monitor.d.ts +51 -0
- package/dist/monitor.d.ts.map +1 -0
- package/dist/monitor.js +250 -0
- package/dist/monitor.js.map +1 -0
- package/dist/singleton.d.ts +4 -2
- package/dist/singleton.d.ts.map +1 -1
- package/dist/singleton.js +18 -4
- package/dist/singleton.js.map +1 -1
- package/dist/types.d.ts +5 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/web-monitor.d.ts +6 -0
- package/dist/web-monitor.d.ts.map +1 -0
- package/dist/web-monitor.js +59 -0
- package/dist/web-monitor.js.map +1 -0
- package/dist/web.d.ts.map +1 -1
- package/dist/web.js +4 -2
- package/dist/web.js.map +1 -1
- package/dist/yuyan.d.ts +11 -0
- package/dist/yuyan.d.ts.map +1 -0
- package/dist/yuyan.js +37 -0
- package/dist/yuyan.js.map +1 -0
- package/docs/auth.md +2 -1
- package/docs/monitoring.application.json +42 -0
- package/docs/monitoring.md +127 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# @qmuse/cloud-client
|
|
2
2
|
|
|
3
|
+
云函数调用监控请读 [雨燕监控接入与字段契约](docs/monitoring.md):包含预览/发布环境、请求耗时、成功率、脱敏出入参及版本与链路关联。Web 默认上报到雨燕监控项 `9901`,可通过 `monitoring: false` 关闭;小程序需显式配置 reporter。使用前需确认雨燕监控配置已发布。
|
|
4
|
+
|
|
3
5
|
用户名密码登录请先读 [认证接入契约与完整示例](docs/auth.md):包含输入字段、用户返回值、恢复会话、注册后登录和退出。
|
|
4
6
|
|
|
5
7
|
异步长任务请读 [提交、续查与结果确认契约](docs/jobs.md):包括账号绑定、原业务键重试和回执丢失恢复。使用已发布且包含 `jobs.start/get` 的 SDK 版本,并搭配支持预期账号校验的 Function 认证 helper;现有应用需分别核对安装包和已部署 helper。
|
|
@@ -198,7 +200,7 @@ bundler can remove at build time so native bundles do not include the Web SDK.
|
|
|
198
200
|
|
|
199
201
|
Only `/api` paths and an allowlist of business headers are accepted. The client
|
|
200
202
|
uses synchronous Function execution, reads `responseStatusCode`, `responseBody`,
|
|
201
|
-
and `responseHeaders`, and maps non-2xx responses to `QmuseCloudHttpError`.
|
|
203
|
+
and `responseHeaders`, and maps non-2xx responses to `QmuseCloudHttpError`. Its optional `requestId` preserves the correlation ID from a unified error body. New Hono templates return HTTP 400 for handled errors; use `error.code`, rather than status alone, for business recovery.
|
|
202
204
|
|
|
203
205
|
Ordinary requests capture the method, path, query, allowed headers and JSON body
|
|
204
206
|
when invoked, before Session preparation can yield. Later form edits do not
|
|
@@ -334,3 +336,10 @@ temporarily normalizes the public package name and registry and restores
|
|
|
334
336
|
### Public file uploads
|
|
335
337
|
|
|
336
338
|
For Hono services configured for anonymous public uploads, `files.upload({ resource: 'public-file', file })` can run without an application login. The SDK forwards the upload-specific completion credential internally. A missing credential is a protocol error; it does not trigger login or a guest Session. The file recovery API exposes the original failure through `QmuseCloudUploadError.cause` and retains its upload reference without cancelling. That reference contains a secret and must be stored privately. A lost initial anonymous intent response cannot be recovered from an idempotency key alone. Private files and avatars continue to require application identity. Login, registration, restore and refresh semantics are unchanged. Public direct uploads may be readable before completion; anonymous delete/cancel is not supported.
|
|
339
|
+
|
|
340
|
+
Unified HTTP 400 responses retain diagnostic reporting for reserved system codes:
|
|
341
|
+
`INTERNAL_ERROR`, `HTTP_ERROR`, `AUTH_PROVIDER_ERROR`, `AUTH_PROVIDER_NOT_CONFIGURED`,
|
|
342
|
+
`FUNCTION_CAPABILITY_UNAVAILABLE`, `FILE_STATE_UNAVAILABLE`, `AVATAR_URL_UNAVAILABLE`,
|
|
343
|
+
and `TOO_MANY_REQUESTS`. Other business rejections remain in the application UI.
|
|
344
|
+
Incomplete executions and transport failures retain their existing error semantics;
|
|
345
|
+
HTTP 400 alone never triggers session refresh or a retry.
|
package/dist/adapters.d.ts
CHANGED
|
@@ -61,6 +61,7 @@ export interface PortableAppwriteCapability {
|
|
|
61
61
|
getFunctionExecution?(input: AppBaseExecutionReference): Promise<CloudExecution>;
|
|
62
62
|
}
|
|
63
63
|
export interface HostAdapterOptions<FileSource = never> {
|
|
64
|
+
monitoring?: QmuseCloudClientOptions['monitoring'];
|
|
64
65
|
onRequestFailure?: QmuseCloudClientOptions['onRequestFailure'];
|
|
65
66
|
functionId?: string;
|
|
66
67
|
auth?: CloudAuthOptions;
|
package/dist/adapters.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapters.d.ts","sourceRoot":"","sources":["../src/adapters.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"adapters.d.ts","sourceRoot":"","sources":["../src/adapters.ts"],"names":[],"mappings":"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"}
|
package/dist/adapters.js
CHANGED
|
@@ -35,12 +35,20 @@ function executionInput(input, functionId) {
|
|
|
35
35
|
functionId: functionId?.trim() || input.functionId,
|
|
36
36
|
};
|
|
37
37
|
}
|
|
38
|
+
function hostMonitoring(options, functionId) {
|
|
39
|
+
return options.monitoring ? { monitoring: { ...options.monitoring, context: {
|
|
40
|
+
...options.monitoring.context,
|
|
41
|
+
...(options.fileScope ? { projectId: options.fileScope.projectId } : {}),
|
|
42
|
+
functionId,
|
|
43
|
+
} } } : {};
|
|
44
|
+
}
|
|
38
45
|
export function createAppBaseWebCloudClient(functions, options = {}) {
|
|
39
46
|
if (!functions || typeof functions.createExecution !== 'function') {
|
|
40
47
|
throw new TypeError('An AppBase Functions capability is required');
|
|
41
48
|
}
|
|
42
49
|
const boundFunctionId = options.functionId?.trim() || 'qmuse-cloud-api';
|
|
43
50
|
return createQmuseCloudClient({
|
|
51
|
+
...hostMonitoring(options, boundFunctionId),
|
|
44
52
|
execute: input => functions.createExecution(executionInput(input, boundFunctionId)),
|
|
45
53
|
...(functions.createAsyncExecution && functions.getExecution ? { jobs: {
|
|
46
54
|
start: (input) => functions.createAsyncExecution({ ...input, functionId: boundFunctionId }),
|
|
@@ -58,6 +66,7 @@ export function createPortableCloudClient(appwrite, options = {}) {
|
|
|
58
66
|
}
|
|
59
67
|
const boundFunctionId = options.functionId?.trim() || 'qmuse-cloud-api';
|
|
60
68
|
return createQmuseCloudClient({
|
|
69
|
+
...hostMonitoring(options, boundFunctionId),
|
|
61
70
|
execute: input => {
|
|
62
71
|
const { path, ...portableInput } = executionInput(input, boundFunctionId);
|
|
63
72
|
return appwrite.executeFunction({ ...portableInput, xpath: path });
|
package/dist/adapters.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapters.js","sourceRoot":"","sources":["../src/adapters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAWrD,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAmB5C,MAAM,UAAU,gCAAgC,CAC9C,SAAwC;IAExC,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,CAAC,eAAe,KAAK,UAAU,EAAE,CAAC;QAClE,MAAM,IAAI,SAAS,CAAC,iDAAiD,CAAC,CAAC;IACzE,CAAC;IACD,OAAO;QACL,eAAe,CAAC,KAAK;YACnB,MAAM,EAAE,IAAI,EAAE,GAAG,QAAQ,EAAE,GAAG,KAAK,CAAC;YACpC,OAAO,SAAS,CAAC,eAAe,CAAC,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAW,CAAC,CAAC;QAC1E,CAAC;QACD,oBAAoB,CAAC,KAAK;YACxB,MAAM,EAAE,IAAI,EAAE,GAAG,QAAQ,EAAE,GAAG,KAAK,CAAC;YACpC,OAAO,SAAS,CAAC,eAAe,CAAC,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAW,CAAC,CAAC;QAC1E,CAAC;QACD,GAAG,CAAC,OAAO,SAAS,CAAC,YAAY,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,KAAgC,EAAE,EAAE,CAAC,SAAS,CAAC,YAAa,CAAC,KAAc,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACzJ,CAAC;AACJ,CAAC;AAWD,MAAM,UAAU,8BAA8B,CAAC,OAAoC;IACjF,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,CAAC,aAAa,KAAK,UAAU,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,UAAU,EAAE,CAAC;QACjG,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAC;IACvE,CAAC;IACD,OAAO;QACL,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC;QACpD,cAAc,EAAE,KAAK,IAAI,EAAE,CAAC,eAAe,CAAC,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC;QAChE,iBAAiB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;QACrE,qBAAqB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;QAC5E,oBAAoB,EAAE,KAAK,IAAI,EAAE,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5F,iBAAiB,EAAE,KAAK,IAAI,EAAE,GAAG,MAAM,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;KACnE,CAAC;AACJ,CAAC;
|
|
1
|
+
{"version":3,"file":"adapters.js","sourceRoot":"","sources":["../src/adapters.ts"],"names":[],"mappings":"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"}
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAKV,gBAAgB,EAChB,uBAAuB,EACvB,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAiHpB,wBAAgB,sBAAsB,CAAC,UAAU,GAAG,KAAK,EACvD,OAAO,EAAE,IAAI,CAAC,uBAAuB,EAAE,eAAe,CAAC,GAAG;IAAE,aAAa,CAAC,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAA;CAAE,GAC3G,gBAAgB,CAAC,UAAU,CAAC,CAwG9B"}
|
package/dist/client.js
CHANGED
|
@@ -5,6 +5,7 @@ import { reportRequestFailure } from './diagnostics.js';
|
|
|
5
5
|
import { createCloudJobs } from './jobs.js';
|
|
6
6
|
import { classifyHttpAuthError } from './http-auth-error.js';
|
|
7
7
|
import { readFailedExecutionError } from './execution-error.js';
|
|
8
|
+
import { createCloudRequestMonitor } from './monitor.js';
|
|
8
9
|
const functionId = 'qmuse-cloud-api';
|
|
9
10
|
const allowedHeaders = new Set([
|
|
10
11
|
'accept',
|
|
@@ -73,6 +74,7 @@ function readHttpError(status, payload) {
|
|
|
73
74
|
let code = `HTTP_${status}`;
|
|
74
75
|
let message = `Cloud API request failed with status ${status}`;
|
|
75
76
|
let details;
|
|
77
|
+
let requestId;
|
|
76
78
|
if (payload && typeof payload === 'object' && 'error' in payload) {
|
|
77
79
|
const error = payload.error;
|
|
78
80
|
if (error && typeof error === 'object') {
|
|
@@ -82,9 +84,11 @@ function readHttpError(status, payload) {
|
|
|
82
84
|
if (typeof record.message === 'string' && record.message)
|
|
83
85
|
message = record.message;
|
|
84
86
|
details = record.details;
|
|
87
|
+
if (typeof record.requestId === 'string')
|
|
88
|
+
requestId = record.requestId;
|
|
85
89
|
}
|
|
86
90
|
}
|
|
87
|
-
return new QmuseCloudHttpError({ status, code, message, details });
|
|
91
|
+
return new QmuseCloudHttpError({ status, code, message, details, ...(requestId === undefined ? {} : { requestId }) });
|
|
88
92
|
}
|
|
89
93
|
function isTransportUnauthorized(error) {
|
|
90
94
|
if (error instanceof QmuseCloudHttpError || !error || typeof error !== 'object')
|
|
@@ -115,18 +119,19 @@ export function createQmuseCloudClient(options) {
|
|
|
115
119
|
if (!options || typeof options.execute !== 'function') {
|
|
116
120
|
throw new TypeError('A Cloud API execution capability is required');
|
|
117
121
|
}
|
|
118
|
-
const execute = async (request, expectedOwnerId, prepared) => {
|
|
122
|
+
const execute = async (request, expectedOwnerId, prepared, monitor) => {
|
|
119
123
|
const sessionVersion = auth.getSessionVersion();
|
|
120
124
|
const captured = prepared ?? requestInput(request);
|
|
121
125
|
const descriptor = { method: captured.method, path: captured.path };
|
|
122
126
|
const input = { ...captured, headers: { ...captured.headers }, async: false };
|
|
127
|
+
monitor?.capture(captured);
|
|
123
128
|
// Empty execution headers can be dropped in transit. This marker cannot be
|
|
124
129
|
// a native user ID, and keeps a deliberate anonymous intent constrained.
|
|
125
130
|
if (expectedOwnerId !== undefined)
|
|
126
131
|
input.headers['x-qmuse-expected-user-id'] = expectedOwnerId || '@anonymous';
|
|
127
132
|
let execution;
|
|
128
133
|
try {
|
|
129
|
-
execution = await options.execute(input);
|
|
134
|
+
execution = monitor ? await monitor.attempt(() => options.execute(input)) : await options.execute(input);
|
|
130
135
|
if (execution.status !== 'completed') {
|
|
131
136
|
throw readFailedExecutionError(execution)
|
|
132
137
|
?? new QmuseCloudError('Cloud API Function execution did not complete', 'EXECUTION_NOT_COMPLETED');
|
|
@@ -141,56 +146,84 @@ export function createQmuseCloudClient(options) {
|
|
|
141
146
|
throw error;
|
|
142
147
|
}
|
|
143
148
|
};
|
|
144
|
-
const
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
// the same serialized body if the transport401 policy permits one retry.
|
|
148
|
-
const prepared = requestInput(request);
|
|
149
|
-
const descriptor = { method: prepared.method, path: prepared.path };
|
|
150
|
-
await auth.prepareRequest();
|
|
151
|
-
const identityVersion = auth.getRequestIdentityVersion();
|
|
152
|
-
const unchanged = () => {
|
|
153
|
-
if (identityVersion !== auth.getRequestIdentityVersion()) {
|
|
154
|
-
throw new QmuseCloudError('Authentication changed during the Cloud API request', 'AUTH_STATE_CHANGED');
|
|
155
|
-
}
|
|
156
|
-
};
|
|
157
|
-
const expectedOwnerId = options.auth ? (await auth.getCurrentUser())?.id ?? '' : undefined;
|
|
158
|
-
unchanged();
|
|
159
|
-
const executeCurrent = async () => {
|
|
160
|
-
unchanged();
|
|
161
|
-
const response = await execute(descriptor, expectedOwnerId, prepared);
|
|
162
|
-
unchanged();
|
|
163
|
-
return response;
|
|
164
|
-
};
|
|
149
|
+
const observedExecute = async (request, expectedOwnerId) => {
|
|
150
|
+
const operation = /^\/api\/auth(?:\/|$)/u.test(request.path) ? 'auth' : 'file';
|
|
151
|
+
const monitor = createCloudRequestMonitor(options.monitoring, request, operation);
|
|
165
152
|
try {
|
|
166
|
-
|
|
153
|
+
const response = await execute(request, expectedOwnerId, undefined, monitor);
|
|
154
|
+
monitor.finish(true);
|
|
155
|
+
return response;
|
|
167
156
|
}
|
|
168
157
|
catch (error) {
|
|
169
|
-
|
|
170
|
-
|
|
158
|
+
monitor.finish(false, error);
|
|
159
|
+
throw error;
|
|
160
|
+
}
|
|
161
|
+
};
|
|
162
|
+
const auth = options.auth ? createCloudAuth(options.auth, observedExecute) : createUnavailableCloudAuth();
|
|
163
|
+
const authenticatedExecute = async (request, operation = 'request') => {
|
|
164
|
+
const monitor = createCloudRequestMonitor(options.monitoring, request, operation);
|
|
165
|
+
try {
|
|
166
|
+
// Capture the submitted intent before Session preparation can yield. Reuse
|
|
167
|
+
// the same serialized body if the transport401 policy permits one retry.
|
|
168
|
+
const prepared = requestInput(request);
|
|
169
|
+
const descriptor = { method: prepared.method, path: prepared.path };
|
|
170
|
+
monitor.capture(prepared);
|
|
171
|
+
monitor.stage = 'auth_prepare';
|
|
172
|
+
await auth.prepareRequest();
|
|
173
|
+
const identityVersion = auth.getRequestIdentityVersion();
|
|
174
|
+
const unchanged = () => {
|
|
175
|
+
if (identityVersion !== auth.getRequestIdentityVersion()) {
|
|
176
|
+
throw new QmuseCloudError('Authentication changed during the Cloud API request', 'AUTH_STATE_CHANGED');
|
|
177
|
+
}
|
|
178
|
+
};
|
|
179
|
+
const expectedOwnerId = options.auth ? (await auth.getCurrentUser())?.id ?? '' : undefined;
|
|
171
180
|
unchanged();
|
|
181
|
+
const executeCurrent = async () => {
|
|
182
|
+
unchanged();
|
|
183
|
+
const response = await execute(descriptor, expectedOwnerId, prepared, monitor);
|
|
184
|
+
unchanged();
|
|
185
|
+
return response;
|
|
186
|
+
};
|
|
172
187
|
try {
|
|
173
|
-
await
|
|
188
|
+
const response = await executeCurrent();
|
|
189
|
+
monitor.finish(true);
|
|
190
|
+
return response;
|
|
174
191
|
}
|
|
175
|
-
catch (
|
|
176
|
-
if (
|
|
177
|
-
throw
|
|
178
|
-
|
|
192
|
+
catch (error) {
|
|
193
|
+
if (!options.auth || !isTransportUnauthorized(error))
|
|
194
|
+
throw error;
|
|
195
|
+
unchanged();
|
|
196
|
+
monitor.stage = 'auth_prepare';
|
|
197
|
+
try {
|
|
198
|
+
await auth.refreshSession();
|
|
199
|
+
}
|
|
200
|
+
catch (refreshError) {
|
|
201
|
+
if (refreshError instanceof QmuseCloudError && refreshError.code === 'AUTH_STATE_CHANGED')
|
|
202
|
+
throw refreshError;
|
|
203
|
+
throw error;
|
|
204
|
+
}
|
|
205
|
+
unchanged();
|
|
206
|
+
const response = await executeCurrent();
|
|
207
|
+
monitor.finish(true);
|
|
208
|
+
return response;
|
|
179
209
|
}
|
|
180
|
-
|
|
181
|
-
|
|
210
|
+
}
|
|
211
|
+
catch (error) {
|
|
212
|
+
monitor.finish(false, error);
|
|
213
|
+
throw error;
|
|
182
214
|
}
|
|
183
215
|
};
|
|
184
216
|
return {
|
|
185
217
|
request: (request) => authenticatedExecute(request),
|
|
186
|
-
jobs: createCloudJobs({ capabilities: options.jobs, auth, input: request => ({ ...requestInput(request), async: true }), response: executionResponse
|
|
218
|
+
jobs: createCloudJobs({ capabilities: options.jobs, auth, input: request => ({ ...requestInput(request), async: true }), response: executionResponse,
|
|
219
|
+
...(options.monitoring ? { monitoring: options.monitoring } : {}) }),
|
|
187
220
|
auth,
|
|
188
|
-
files: createCloudFiles(authenticatedExecute, options.fileTransport, {
|
|
221
|
+
files: createCloudFiles((request) => authenticatedExecute(request, 'file'), options.fileTransport, {
|
|
189
222
|
...(options.fileScope ? { scope: options.fileScope } : {}), ...(options.auth ? { auth } : {}),
|
|
190
223
|
execute: async (request, expectedOwnerId) => {
|
|
191
224
|
const version = auth.getSessionVersion();
|
|
192
225
|
try {
|
|
193
|
-
return await
|
|
226
|
+
return await observedExecute(request, expectedOwnerId);
|
|
194
227
|
}
|
|
195
228
|
catch (error) {
|
|
196
229
|
if (isTransportUnauthorized(error))
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAuB,uBAAuB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAuB,uBAAuB,EAAE,MAAM,YAAY,CAAC;AA0B7G,4FAA4F;AAC5F,wBAAgB,oBAAoB,CAAC,KAAK,EAAE;IAC1C,QAAQ,EAAE,uBAAuB,CAAC,kBAAkB,CAAC,CAAC;IACtD,OAAO,EAAE,YAAY,CAAC;IACtB,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,cAAc,GAAG,SAAS,CAAC;CACvC,GAAG,IAAI,CAoCP"}
|
package/dist/diagnostics.js
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
// Reserved codes emitted by the unified HTTP 400 error boundary.
|
|
2
|
+
const actionableCodes = new Set([
|
|
3
|
+
'INTERNAL_ERROR', 'HTTP_ERROR', 'AUTH_PROVIDER_ERROR', 'AUTH_PROVIDER_NOT_CONFIGURED',
|
|
4
|
+
'FUNCTION_CAPABILITY_UNAVAILABLE', 'FILE_STATE_UNAVAILABLE', 'AVATAR_URL_UNAVAILABLE', 'TOO_MANY_REQUESTS',
|
|
5
|
+
]);
|
|
1
6
|
const id = (value) => typeof value === 'string' && /^[\w.-]{1,128}$/.test(value) ? value : undefined;
|
|
2
7
|
function envelopeRequestId(body) {
|
|
3
8
|
// Error envelopes are small. Never scan arbitrary payload text or forward
|
|
@@ -34,7 +39,8 @@ export function reportRequestFailure(input) {
|
|
|
34
39
|
? rawStatus : undefined;
|
|
35
40
|
// Expected validation, login and business rejections remain in the application's UI.
|
|
36
41
|
if (status && status < 500 && ![404, 405, 408, 429].includes(status)
|
|
37
|
-
&& !(execution?.status === 'failed' && record.name !== 'QmuseCloudHttpError')
|
|
42
|
+
&& !(execution?.status === 'failed' && record.name !== 'QmuseCloudHttpError')
|
|
43
|
+
&& !(status === 400 && typeof record.code === 'string' && actionableCodes.has(record.code)))
|
|
38
44
|
return;
|
|
39
45
|
const headers = execution?.responseHeaders;
|
|
40
46
|
const requestId = Array.isArray(headers)
|
|
@@ -42,7 +48,9 @@ export function reportRequestFailure(input) {
|
|
|
42
48
|
: Object.entries(headers ?? {}).find(([key]) => key.toLowerCase() === 'x-request-id')?.[1];
|
|
43
49
|
const executionId = id(execution?.$id);
|
|
44
50
|
const deploymentId = id(execution?.deploymentId);
|
|
45
|
-
const
|
|
51
|
+
const errorRequestId = id(record.requestId);
|
|
52
|
+
const correlationId = id(requestId) ?? envelopeRequestId(execution?.responseBody)
|
|
53
|
+
?? (errorRequestId && !/^[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+$/.test(errorRequestId) ? errorRequestId : undefined);
|
|
46
54
|
const failure = {
|
|
47
55
|
timestamp: Date.now(), method: request.method, path: (request.path.split(/[?#]/)[0] ?? '').slice(0, 256),
|
|
48
56
|
kind: execution ? (execution.status === 'completed' ? 'http' : 'execution') : 'transport',
|
package/dist/diagnostics.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"AAEA,MAAM,EAAE,GAAG,CAAC,KAAc,EAAsB,EAAE,CAChD,OAAO,KAAK,KAAK,QAAQ,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAEjF,SAAS,iBAAiB,CAAC,IAAa;IACtC,0EAA0E;IAC1E,4EAA4E;IAC5E,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM;QAAE,OAAO,SAAS,CAAC;IACvE,IAAI,CAAC;QACH,MAAM,OAAO,GAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YAAE,OAAO,SAAS,CAAC;QACxF,MAAM,KAAK,GAAI,OAAmC,CAAC,KAAK,CAAC;QACzD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAClF,MAAM,KAAK,GAAG,EAAE,CAAE,KAAiC,CAAC,SAAS,CAAC,CAAC;QAC/D,IAAI,CAAC,KAAK,IAAI,kDAAkD,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAC/F,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,SAAS,CAAC;IAAC,CAAC;AAC/B,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,oBAAoB,CAAC,KAKpC;IACC,IAAI,CAAC,KAAK,CAAC,QAAQ;QAAE,OAAO;IAC5B,IAAI,CAAC;QACH,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;QAC5C,MAAM,MAAM,GAAG,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAgC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1F,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY;YAAE,OAAO;QACzC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,EAAE,kBAAkB,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC;QACxF,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,GAAG,IAAI,SAAS,IAAI,GAAG;YAChF,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1B,qFAAqF;QACrF,IAAI,MAAM,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;eAC/D,CAAC,CAAC,SAAS,EAAE,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,KAAK,qBAAqB,CAAC;YAAE,OAAO;
|
|
1
|
+
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"AAEA,iEAAiE;AACjE,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;IAC9B,gBAAgB,EAAE,YAAY,EAAE,qBAAqB,EAAE,8BAA8B;IACrF,iCAAiC,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,mBAAmB;CAC3G,CAAC,CAAC;AAEH,MAAM,EAAE,GAAG,CAAC,KAAc,EAAsB,EAAE,CAChD,OAAO,KAAK,KAAK,QAAQ,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAEjF,SAAS,iBAAiB,CAAC,IAAa;IACtC,0EAA0E;IAC1E,4EAA4E;IAC5E,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM;QAAE,OAAO,SAAS,CAAC;IACvE,IAAI,CAAC;QACH,MAAM,OAAO,GAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YAAE,OAAO,SAAS,CAAC;QACxF,MAAM,KAAK,GAAI,OAAmC,CAAC,KAAK,CAAC;QACzD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAClF,MAAM,KAAK,GAAG,EAAE,CAAE,KAAiC,CAAC,SAAS,CAAC,CAAC;QAC/D,IAAI,CAAC,KAAK,IAAI,kDAAkD,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAC/F,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,SAAS,CAAC;IAAC,CAAC;AAC/B,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,oBAAoB,CAAC,KAKpC;IACC,IAAI,CAAC,KAAK,CAAC,QAAQ;QAAE,OAAO;IAC5B,IAAI,CAAC;QACH,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;QAC5C,MAAM,MAAM,GAAG,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAgC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1F,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY;YAAE,OAAO;QACzC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,EAAE,kBAAkB,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC;QACxF,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,GAAG,IAAI,SAAS,IAAI,GAAG;YAChF,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1B,qFAAqF;QACrF,IAAI,MAAM,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;eAC/D,CAAC,CAAC,SAAS,EAAE,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,KAAK,qBAAqB,CAAC;eAC1E,CAAC,CAAC,MAAM,KAAK,GAAG,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAAE,OAAO;QACtG,MAAM,OAAO,GAAG,SAAS,EAAE,eAAe,CAAC;QAC3C,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YACtC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,cAAc,CAAC,EAAE,KAAK;YAC7E,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7F,MAAM,WAAW,GAAG,EAAE,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QACvC,MAAM,YAAY,GAAG,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QACjD,MAAM,cAAc,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC5C,MAAM,aAAa,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,iBAAiB,CAAC,SAAS,EAAE,YAAY,CAAC;eAC5E,CAAC,cAAc,IAAI,CAAC,kDAAkD,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC/H,MAAM,OAAO,GAAwB;YACnC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;YACxG,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW;YACzF,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7B,IAAI,EAAE,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;gBACjF,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,MAAM,EAAE,CAAC,CAAC,CAAC,kBAAkB;YAChE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACvD,CAAC;QACF,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,+FAA+F;IACjG,CAAC;AACH,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
export { getQMuseClient, isQMuseClientInitialized, } from './singleton.js';
|
|
2
2
|
export { QmuseCloudError, QmuseCloudHttpError, QmuseCloudUploadError } from './errors.js';
|
|
3
|
+
export { CLOUD_MONITOR_YUYAN_ID, CLOUD_MONITOR_CODE } from './monitor.js';
|
|
4
|
+
export type { CloudMonitoringOptions, CloudMonitorContext, CloudMonitorLog } from './monitor.js';
|
|
5
|
+
export { createYuyanCloudReporter } from './yuyan.js';
|
|
6
|
+
export type { YuyanCloudMonitor, YuyanCloudMonitorOptions } from './yuyan.js';
|
|
3
7
|
export type { CloudExecution, CloudExecutionInput, CloudAsyncExecutionInput, CloudJobReference, CloudJobSnapshot, CloudJobFailure, CloudJobCapabilities, QmuseCloudJobs, CloudMethod, CloudQueryValue, CloudRequest, CloudRequestFailure, CloudResponse, ExecutionHeader, QmuseCloudClient, QmuseCloudClientOptions, CloudAccountCapability, CloudAuthOptions, CloudLoginResult, CloudAuthUser, CloudSetAvatarInput, CloudAuthProvider, CloudProviderLoginInput, CloudLoginInput, CloudRegisterInput, CloudSessionToken, QmuseCloudAuth, CloudDisposableUrl, CloudFileAccessInput, CloudFileDescriptor, CloudFilePreviewInput, CloudFileRecord, CloudFileTransport, CloudFileUploadInput, CloudFileScope, CloudFileUploadIntentInput, CloudFileUploadReference, CloudFileUploadPhase, CloudFileUploadState, CloudPreparedFileUpload, CloudReadableUrlInput, CloudUploadProgress, CloudUploadReceipt, CloudUploadTarget, QmuseCloudFiles, } from './types.js';
|
|
4
8
|
export type { QMuseClientConfig, QMuseClientConfigSource, } from './singleton.js';
|
|
5
9
|
//# 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,cAAc,EACd,wBAAwB,GACzB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAC1F,YAAY,EACV,cAAc,EACd,mBAAmB,EACnB,wBAAwB,EACxB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,cAAc,EACd,WAAW,EACX,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,uBAAuB,EACvB,sBAAsB,EACtB,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,uBAAuB,EACvB,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACrB,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,cAAc,EACd,0BAA0B,EAC1B,wBAAwB,EACxB,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,GAChB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,wBAAwB,GACzB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAC1F,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC1E,YAAY,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACjG,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AACtD,YAAY,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAC9E,YAAY,EACV,cAAc,EACd,mBAAmB,EACnB,wBAAwB,EACxB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,cAAc,EACd,WAAW,EACX,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,uBAAuB,EACvB,sBAAsB,EACtB,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,uBAAuB,EACvB,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACrB,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,cAAc,EACd,0BAA0B,EAC1B,wBAAwB,EACxB,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,GAChB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,gBAAgB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
export { getQMuseClient, isQMuseClientInitialized, } from './singleton.js';
|
|
2
2
|
export { QmuseCloudError, QmuseCloudHttpError, QmuseCloudUploadError } from './errors.js';
|
|
3
|
+
export { CLOUD_MONITOR_YUYAN_ID, CLOUD_MONITOR_CODE } from './monitor.js';
|
|
4
|
+
export { createYuyanCloudReporter } from './yuyan.js';
|
|
3
5
|
//# 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,OAAO,EACL,cAAc,EACd,wBAAwB,GACzB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,wBAAwB,GACzB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAC1F,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAE1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/jobs.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import { type CloudMonitoringOptions } from './monitor.js';
|
|
1
2
|
import type { CloudAuthRuntime } from './auth.js';
|
|
2
3
|
import type { CloudAsyncExecutionInput, CloudExecution, CloudJobCapabilities, CloudRequest, CloudResponse, QmuseCloudJobs } from './types.js';
|
|
3
4
|
interface JobsOptions {
|
|
5
|
+
monitoring?: CloudMonitoringOptions;
|
|
4
6
|
capabilities: CloudJobCapabilities | undefined;
|
|
5
7
|
auth: CloudAuthRuntime;
|
|
6
8
|
input(request: CloudRequest): CloudAsyncExecutionInput;
|
package/dist/jobs.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jobs.d.ts","sourceRoot":"","sources":["../src/jobs.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,KAAK,EAAE,wBAAwB,EAAE,cAAc,EAAE,oBAAoB,EAAuC,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEnL,UAAU,WAAW;IACnB,YAAY,EAAE,oBAAoB,GAAG,SAAS,CAAC;IAC/C,IAAI,EAAE,gBAAgB,CAAC;IACvB,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,wBAAwB,CAAC;IACvD,QAAQ,CAAC,CAAC,EAAE,SAAS,EAAE,cAAc,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;CAC1D;AAQD,wBAAgB,eAAe,CAAC,OAAO,EAAE,WAAW,GAAG,cAAc,
|
|
1
|
+
{"version":3,"file":"jobs.d.ts","sourceRoot":"","sources":["../src/jobs.ts"],"names":[],"mappings":"AAGA,OAAO,EAA6B,KAAK,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,KAAK,EAAE,wBAAwB,EAAE,cAAc,EAAE,oBAAoB,EAAuC,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEnL,UAAU,WAAW;IACnB,UAAU,CAAC,EAAE,sBAAsB,CAAC;IACpC,YAAY,EAAE,oBAAoB,GAAG,SAAS,CAAC;IAC/C,IAAI,EAAE,gBAAgB,CAAC;IACvB,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,wBAAwB,CAAC;IACvD,QAAQ,CAAC,CAAC,EAAE,SAAS,EAAE,cAAc,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;CAC1D;AAQD,wBAAgB,eAAe,CAAC,OAAO,EAAE,WAAW,GAAG,cAAc,CA8GpE"}
|
package/dist/jobs.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { QmuseCloudError, QmuseCloudHttpError } from './errors.js';
|
|
2
2
|
import { classifyHttpAuthError } from './http-auth-error.js';
|
|
3
3
|
import { readFailedExecutionError } from './execution-error.js';
|
|
4
|
+
import { createCloudRequestMonitor } from './monitor.js';
|
|
4
5
|
const identifier = /^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$/u;
|
|
5
6
|
function hasStatus(error, status) {
|
|
6
7
|
if (!error || typeof error !== 'object')
|
|
@@ -48,84 +49,109 @@ export function createCloudJobs(options) {
|
|
|
48
49
|
};
|
|
49
50
|
return {
|
|
50
51
|
async start(request) {
|
|
51
|
-
const
|
|
52
|
-
if (/^\/api\/auth(?:\/|$)/u.test(request.path))
|
|
53
|
-
throw new TypeError('Async jobs require an existing authenticated Session');
|
|
54
|
-
const state = await current();
|
|
52
|
+
const monitor = createCloudRequestMonitor(options.monitoring, request, 'job_start');
|
|
55
53
|
try {
|
|
56
|
-
|
|
54
|
+
const transport = capability(), input = options.input(request);
|
|
55
|
+
monitor.capture(input);
|
|
56
|
+
monitor.stage = 'auth_prepare';
|
|
57
|
+
if (/^\/api\/auth(?:\/|$)/u.test(request.path))
|
|
58
|
+
throw new TypeError('Async jobs require an existing authenticated Session');
|
|
59
|
+
const state = await current();
|
|
60
|
+
try {
|
|
61
|
+
await verifyOwner(state.ownerId);
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
if (error instanceof QmuseCloudError && error.code === 'JOB_OWNER_MISMATCH')
|
|
65
|
+
throw error;
|
|
66
|
+
throw new QmuseCloudError('Could not verify the native Session; job was not submitted', 'JOB_NOT_SUBMITTED', { cause: error });
|
|
67
|
+
}
|
|
68
|
+
await unchanged(state);
|
|
69
|
+
// The native Session may change in another tab after verifyOwner returns.
|
|
70
|
+
// The Function must compare this condition with its verified principal
|
|
71
|
+
// before initializing business capabilities; it is never an identity grant.
|
|
72
|
+
const execution = await monitor.attempt(() => transport.start({ ...input, headers: { ...input.headers, 'x-qmuse-expected-user-id': state.ownerId } }));
|
|
73
|
+
await unchanged(state);
|
|
74
|
+
if (!execution || typeof execution.$id !== 'string' || !identifier.test(execution.$id)) {
|
|
75
|
+
throw new QmuseCloudError('Async execution acknowledgement has no valid ID; reconcile before retrying', 'JOB_SUBMISSION_UNCONFIRMED');
|
|
76
|
+
}
|
|
77
|
+
monitor.finish(true, undefined, { jobState: 'submitted', jobExecutionId: execution.$id });
|
|
78
|
+
return { executionId: execution.$id, ownerId: state.ownerId };
|
|
57
79
|
}
|
|
58
80
|
catch (error) {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
throw new QmuseCloudError('Could not verify the native Session; job was not submitted', 'JOB_NOT_SUBMITTED', { cause: error });
|
|
62
|
-
}
|
|
63
|
-
await unchanged(state);
|
|
64
|
-
// The native Session may change in another tab after verifyOwner returns.
|
|
65
|
-
// The Function must compare this condition with its verified principal
|
|
66
|
-
// before initializing business capabilities; it is never an identity grant.
|
|
67
|
-
const execution = await transport.start({ ...input, headers: { ...input.headers, 'x-qmuse-expected-user-id': state.ownerId } }); // Exactly one attempt, including a transport 401.
|
|
68
|
-
await unchanged(state);
|
|
69
|
-
if (!execution || typeof execution.$id !== 'string' || !identifier.test(execution.$id)) {
|
|
70
|
-
throw new QmuseCloudError('Async execution acknowledgement has no valid ID; reconcile before retrying', 'JOB_SUBMISSION_UNCONFIRMED');
|
|
81
|
+
monitor.finish(false, error);
|
|
82
|
+
throw error;
|
|
71
83
|
}
|
|
72
|
-
return { executionId: execution.$id, ownerId: state.ownerId };
|
|
73
84
|
},
|
|
74
85
|
async get(job) {
|
|
75
|
-
const
|
|
76
|
-
if (!job || typeof job.executionId !== 'string' || typeof job.ownerId !== 'string' || !identifier.test(job.executionId) || !identifier.test(job.ownerId))
|
|
77
|
-
throw new TypeError('Invalid async job reference');
|
|
78
|
-
const reference = { executionId: job.executionId, ownerId: job.ownerId };
|
|
79
|
-
let state = await current(reference.ownerId);
|
|
80
|
-
const input = { functionId: 'qmuse-cloud-api', executionId: reference.executionId };
|
|
81
|
-
let execution;
|
|
86
|
+
const monitor = createCloudRequestMonitor(options.monitoring, undefined, 'job_get');
|
|
82
87
|
try {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
88
|
+
const transport = capability();
|
|
89
|
+
if (!job || typeof job.executionId !== 'string' || typeof job.ownerId !== 'string' || !identifier.test(job.executionId) || !identifier.test(job.ownerId))
|
|
90
|
+
throw new TypeError('Invalid async job reference');
|
|
91
|
+
const reference = { executionId: job.executionId, ownerId: job.ownerId };
|
|
92
|
+
monitor.stage = 'auth_prepare';
|
|
93
|
+
let state = await current(reference.ownerId);
|
|
94
|
+
const input = { functionId: 'qmuse-cloud-api', executionId: reference.executionId };
|
|
95
|
+
let execution;
|
|
96
|
+
try {
|
|
97
|
+
execution = await monitor.attempt(() => transport.get(input));
|
|
98
|
+
}
|
|
99
|
+
catch (error) {
|
|
100
|
+
await unchanged(state);
|
|
101
|
+
if (hasStatus(error, 404)) {
|
|
102
|
+
await verifyOwner(reference.ownerId);
|
|
103
|
+
throw error;
|
|
104
|
+
}
|
|
105
|
+
if (!hasStatus(error, 401))
|
|
106
|
+
throw error;
|
|
107
|
+
monitor.stage = 'auth_prepare';
|
|
108
|
+
try {
|
|
109
|
+
await auth.refreshSession();
|
|
110
|
+
}
|
|
111
|
+
catch {
|
|
112
|
+
throw error;
|
|
113
|
+
}
|
|
114
|
+
state = await current(reference.ownerId);
|
|
115
|
+
execution = await monitor.attempt(() => transport.get(input));
|
|
116
|
+
}
|
|
86
117
|
await unchanged(state);
|
|
87
|
-
if (
|
|
88
|
-
|
|
89
|
-
|
|
118
|
+
if (execution.$id !== reference.executionId)
|
|
119
|
+
throw new QmuseCloudError('Async execution response ID does not match', 'EXECUTION_ID_INVALID');
|
|
120
|
+
if (execution.status === 'waiting' || execution.status === 'processing') {
|
|
121
|
+
monitor.finish(true, undefined, { jobState: 'pending', jobExecutionId: reference.executionId });
|
|
122
|
+
return { state: 'pending', job: reference };
|
|
90
123
|
}
|
|
91
|
-
if (
|
|
92
|
-
throw
|
|
124
|
+
if (execution.status !== 'completed' && execution.status !== 'failed')
|
|
125
|
+
throw new QmuseCloudError('Unknown async execution state', 'EXECUTION_STATUS_INVALID');
|
|
93
126
|
try {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
127
|
+
if (execution.status === 'failed') {
|
|
128
|
+
const error = readFailedExecutionError(execution);
|
|
129
|
+
if (error)
|
|
130
|
+
throw error;
|
|
131
|
+
monitor.finish(false, new QmuseCloudError('Cloud execution failed', 'EXECUTION_FAILED'), { jobState: 'failed', jobExecutionId: reference.executionId });
|
|
132
|
+
return { state: 'failed', job: reference, failure: { kind: 'execution', code: 'EXECUTION_FAILED', message: 'Cloud API execution failed; reconcile business state before retrying', ...(Number.isInteger(execution.responseStatusCode) && execution.responseStatusCode >= 100 && execution.responseStatusCode <= 599 ? { status: execution.responseStatusCode } : {}) } };
|
|
133
|
+
}
|
|
134
|
+
const response = options.response(execution);
|
|
135
|
+
monitor.finish(true, undefined, { jobState: 'completed', jobExecutionId: reference.executionId });
|
|
136
|
+
return { state: 'completed', job: reference, response };
|
|
98
137
|
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
}
|
|
102
|
-
await unchanged(state);
|
|
103
|
-
if (execution.$id !== reference.executionId)
|
|
104
|
-
throw new QmuseCloudError('Async execution response ID does not match', 'EXECUTION_ID_INVALID');
|
|
105
|
-
if (execution.status === 'waiting' || execution.status === 'processing')
|
|
106
|
-
return { state: 'pending', job: reference };
|
|
107
|
-
if (execution.status !== 'completed' && execution.status !== 'failed')
|
|
108
|
-
throw new QmuseCloudError('Unknown async execution state', 'EXECUTION_STATUS_INVALID');
|
|
109
|
-
try {
|
|
110
|
-
if (execution.status === 'failed') {
|
|
111
|
-
const error = readFailedExecutionError(execution);
|
|
112
|
-
if (error)
|
|
138
|
+
catch (error) {
|
|
139
|
+
if (!(error instanceof QmuseCloudHttpError))
|
|
113
140
|
throw error;
|
|
114
|
-
|
|
141
|
+
const authentication = classifyHttpAuthError(error);
|
|
142
|
+
if (authentication)
|
|
143
|
+
auth.invalidateSession(state.version, authentication === 'changed');
|
|
144
|
+
if (authentication === 'changed') {
|
|
145
|
+
throw new QmuseCloudError('Native Session no longer matches the initiating user', 'JOB_OWNER_MISMATCH', { cause: error });
|
|
146
|
+
}
|
|
147
|
+
monitor.finish(false, error, { jobState: 'failed', jobExecutionId: reference.executionId });
|
|
148
|
+
return { state: 'failed', job: reference, failure: { kind: execution.status === 'failed' ? 'execution' : 'http', status: error.status, code: error.code, message: error.message,
|
|
149
|
+
...(error.deploymentId ? { deploymentId: error.deploymentId } : {}), ...(error.requestId ? { requestId: error.requestId } : {}) } };
|
|
115
150
|
}
|
|
116
|
-
return { state: 'completed', job: reference, response: options.response(execution) };
|
|
117
151
|
}
|
|
118
152
|
catch (error) {
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
const authentication = classifyHttpAuthError(error);
|
|
122
|
-
if (authentication)
|
|
123
|
-
auth.invalidateSession(state.version, authentication === 'changed');
|
|
124
|
-
if (authentication === 'changed') {
|
|
125
|
-
throw new QmuseCloudError('Native Session no longer matches the initiating user', 'JOB_OWNER_MISMATCH', { cause: error });
|
|
126
|
-
}
|
|
127
|
-
return { state: 'failed', job: reference, failure: { kind: execution.status === 'failed' ? 'execution' : 'http', status: error.status, code: error.code, message: error.message,
|
|
128
|
-
...(error.deploymentId ? { deploymentId: error.deploymentId } : {}), ...(error.requestId ? { requestId: error.requestId } : {}) } };
|
|
153
|
+
monitor.finish(false, error);
|
|
154
|
+
throw error;
|
|
129
155
|
}
|
|
130
156
|
},
|
|
131
157
|
};
|