@sparqjs/plugin-sdk 0.1.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/dist/bridge/index.d.ts +4 -0
- package/dist/bridge/index.d.ts.map +1 -0
- package/dist/bridge/index.js +3 -0
- package/dist/bridge/index.js.map +1 -0
- package/dist/bridge/payload.d.ts +2 -0
- package/dist/bridge/payload.d.ts.map +1 -0
- package/dist/bridge/payload.js +38 -0
- package/dist/bridge/payload.js.map +1 -0
- package/dist/bridge/plugin-path.d.ts +2 -0
- package/dist/bridge/plugin-path.d.ts.map +1 -0
- package/dist/bridge/plugin-path.js +27 -0
- package/dist/bridge/plugin-path.js.map +1 -0
- package/dist/bridge/types.d.ts +81 -0
- package/dist/bridge/types.d.ts.map +1 -0
- package/dist/bridge/types.js +72 -0
- package/dist/bridge/types.js.map +1 -0
- package/dist/client/client.d.ts +3 -0
- package/dist/client/client.d.ts.map +1 -0
- package/dist/client/client.js +317 -0
- package/dist/client/client.js.map +1 -0
- package/dist/client/index.d.ts +3 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +2 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/types.d.ts +183 -0
- package/dist/client/types.d.ts.map +1 -0
- package/dist/client/types.js +2 -0
- package/dist/client/types.js.map +1 -0
- package/dist/host/entry.d.ts +4 -0
- package/dist/host/entry.d.ts.map +1 -0
- package/dist/host/entry.js +102 -0
- package/dist/host/entry.js.map +1 -0
- package/dist/host/host.d.ts +33 -0
- package/dist/host/host.d.ts.map +1 -0
- package/dist/host/host.js +434 -0
- package/dist/host/host.js.map +1 -0
- package/dist/host/index.d.ts +5 -0
- package/dist/host/index.d.ts.map +1 -0
- package/dist/host/index.js +3 -0
- package/dist/host/index.js.map +1 -0
- package/dist/host/types.d.ts +76 -0
- package/dist/host/types.d.ts.map +1 -0
- package/dist/host/types.js +2 -0
- package/dist/host/types.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/runtime/index.d.ts +628 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +30 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/testing/index.d.ts +3 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +50 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/vue/index.d.ts +22 -0
- package/dist/vue/index.d.ts.map +1 -0
- package/dist/vue/index.js +93 -0
- package/dist/vue/index.js.map +1 -0
- package/dist/vue/overlay.d.ts +6 -0
- package/dist/vue/overlay.d.ts.map +1 -0
- package/dist/vue/overlay.js +21 -0
- package/dist/vue/overlay.js.map +1 -0
- package/dist/vue/runtime-state.d.ts +9 -0
- package/dist/vue/runtime-state.d.ts.map +1 -0
- package/dist/vue/runtime-state.js +20 -0
- package/dist/vue/runtime-state.js.map +1 -0
- package/package.json +52 -0
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { SPARQ_BRIDGE_ERROR_CODES, SPARQ_BRIDGE_VERSION, SPARQ_METHODS, SparqPluginBridgeError, createSparqBridgeChannel, isRecord, isSparqJsonRpcNotification, isSparqJsonRpcRequest, isSparqJsonRpcResponse, } from './types.js';
|
|
2
|
+
export { assertSparqPluginHttpPath } from './plugin-path.js';
|
|
3
|
+
export type { SparqBridgeErrorCode, SparqBridgeMethod, SparqBridgeVersion, SparqJsonRpcErrorData, SparqJsonRpcFailure, SparqJsonRpcMessage, SparqJsonRpcNotification, SparqJsonRpcRequest, SparqJsonRpcResponse, SparqJsonRpcSuccess, SparqPluginFeature, } from './types.js';
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/bridge/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,wBAAwB,EACxB,oBAAoB,EACpB,aAAa,EACb,sBAAsB,EACtB,wBAAwB,EACxB,QAAQ,EACR,0BAA0B,EAC1B,qBAAqB,EACrB,sBAAsB,GACzB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAA;AAC5D,YAAY,EACR,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,wBAAwB,EACxB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,GACrB,MAAM,YAAY,CAAA"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { SPARQ_BRIDGE_ERROR_CODES, SPARQ_BRIDGE_VERSION, SPARQ_METHODS, SparqPluginBridgeError, createSparqBridgeChannel, isRecord, isSparqJsonRpcNotification, isSparqJsonRpcRequest, isSparqJsonRpcResponse, } from './types.js';
|
|
2
|
+
export { assertSparqPluginHttpPath } from './plugin-path.js';
|
|
3
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/bridge/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,wBAAwB,EACxB,oBAAoB,EACpB,aAAa,EACb,sBAAsB,EACtB,wBAAwB,EACxB,QAAQ,EACR,0BAA0B,EAC1B,qBAAqB,EACrB,sBAAsB,GACzB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payload.d.ts","sourceRoot":"","sources":["../../src/bridge/payload.ts"],"names":[],"mappings":"AAAA,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAEtD"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export function cloneSparqBridgePayload(value) {
|
|
2
|
+
return cloneSparqBridgeValue(value, new WeakMap());
|
|
3
|
+
}
|
|
4
|
+
function cloneSparqBridgeValue(value, seen) {
|
|
5
|
+
if (Array.isArray(value)) {
|
|
6
|
+
const existing = seen.get(value);
|
|
7
|
+
if (existing !== undefined) {
|
|
8
|
+
return existing;
|
|
9
|
+
}
|
|
10
|
+
const cloned = [];
|
|
11
|
+
seen.set(value, cloned);
|
|
12
|
+
for (const item of value) {
|
|
13
|
+
cloned.push(cloneSparqBridgeValue(item, seen));
|
|
14
|
+
}
|
|
15
|
+
return cloned;
|
|
16
|
+
}
|
|
17
|
+
if (!isPlainRecord(value)) {
|
|
18
|
+
return value;
|
|
19
|
+
}
|
|
20
|
+
const existing = seen.get(value);
|
|
21
|
+
if (existing !== undefined) {
|
|
22
|
+
return existing;
|
|
23
|
+
}
|
|
24
|
+
const cloned = Object.create(null);
|
|
25
|
+
seen.set(value, cloned);
|
|
26
|
+
for (const [key, item] of Object.entries(value)) {
|
|
27
|
+
cloned[key] = cloneSparqBridgeValue(item, seen);
|
|
28
|
+
}
|
|
29
|
+
return cloned;
|
|
30
|
+
}
|
|
31
|
+
function isPlainRecord(value) {
|
|
32
|
+
if (typeof value !== 'object' || value === null) {
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
const prototype = Object.getPrototypeOf(value);
|
|
36
|
+
return prototype === Object.prototype || prototype === null;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=payload.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payload.js","sourceRoot":"","sources":["../../src/bridge/payload.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,uBAAuB,CAAI,KAAQ;IAC/C,OAAO,qBAAqB,CAAC,KAAK,EAAE,IAAI,OAAO,EAAE,CAAM,CAAA;AAC3D,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAc,EAAE,IAA8B;IACzE,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAChC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO,QAAQ,CAAA;QACnB,CAAC;QAED,MAAM,MAAM,GAAc,EAAE,CAAA;QAC5B,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QACvB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;QAClD,CAAC;QACD,OAAO,MAAM,CAAA;IACjB,CAAC;IAED,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,KAAK,CAAA;IAChB,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IAChC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,QAAQ,CAAA;IACnB,CAAC;IAED,MAAM,MAAM,GAA4B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC3D,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IACvB,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9C,MAAM,CAAC,GAAG,CAAC,GAAG,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IACnD,CAAC;IACD,OAAO,MAAM,CAAA;AACjB,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACjC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC9C,OAAO,KAAK,CAAA;IAChB,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;IAC9C,OAAO,SAAS,KAAK,MAAM,CAAC,SAAS,IAAI,SAAS,KAAK,IAAI,CAAA;AAC/D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-path.d.ts","sourceRoot":"","sources":["../../src/bridge/plugin-path.ts"],"names":[],"mappings":"AAIA,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAsB5D"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { SPARQ_BRIDGE_ERROR_CODES, SparqPluginBridgeError } from './types.js';
|
|
2
|
+
const ENCODED_PATH_SEPARATOR_PATTERN = /%(?:2f|5c)/i;
|
|
3
|
+
export function assertSparqPluginHttpPath(path) {
|
|
4
|
+
let decodedPath;
|
|
5
|
+
try {
|
|
6
|
+
decodedPath = decodeURIComponent(path);
|
|
7
|
+
}
|
|
8
|
+
catch {
|
|
9
|
+
throwInvalidPluginPath();
|
|
10
|
+
}
|
|
11
|
+
if (!path.startsWith('/') ||
|
|
12
|
+
path.startsWith('//') ||
|
|
13
|
+
path.includes('\\') ||
|
|
14
|
+
path.includes('?') ||
|
|
15
|
+
path.includes('#') ||
|
|
16
|
+
ENCODED_PATH_SEPARATOR_PATTERN.test(path) ||
|
|
17
|
+
decodedPath.includes('\\') ||
|
|
18
|
+
decodedPath.includes('?') ||
|
|
19
|
+
decodedPath.includes('#') ||
|
|
20
|
+
decodedPath.split('/').some((segment) => segment === '.' || segment === '..')) {
|
|
21
|
+
throwInvalidPluginPath();
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
function throwInvalidPluginPath() {
|
|
25
|
+
throw new SparqPluginBridgeError('Plugin HTTP path must be a plugin-scoped path beginning with / and cannot contain dot segments, query strings, fragments, or encoded separators.', SPARQ_BRIDGE_ERROR_CODES.invalidParams, { code: 'INVALID_PLUGIN_PATH' });
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=plugin-path.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-path.js","sourceRoot":"","sources":["../../src/bridge/plugin-path.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AAE7E,MAAM,8BAA8B,GAAG,aAAa,CAAA;AAEpD,MAAM,UAAU,yBAAyB,CAAC,IAAY;IAClD,IAAI,WAAmB,CAAA;IACvB,IAAI,CAAC;QACD,WAAW,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAA;IAC1C,CAAC;IAAC,MAAM,CAAC;QACL,sBAAsB,EAAE,CAAA;IAC5B,CAAC;IAED,IACI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QACrB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QACnB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAClB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAClB,8BAA8B,CAAC,IAAI,CAAC,IAAI,CAAC;QACzC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC1B,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC;QACzB,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC;QACzB,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,GAAG,IAAI,OAAO,KAAK,IAAI,CAAC,EAC/E,CAAC;QACC,sBAAsB,EAAE,CAAA;IAC5B,CAAC;AACL,CAAC;AAED,SAAS,sBAAsB;IAC3B,MAAM,IAAI,sBAAsB,CAC5B,kJAAkJ,EAClJ,wBAAwB,CAAC,aAAa,EACtC,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAClC,CAAA;AACL,CAAC"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
export declare const SPARQ_BRIDGE_VERSION: "2";
|
|
2
|
+
export declare const SPARQ_METHODS: {
|
|
3
|
+
readonly init: "sparq.v2.init";
|
|
4
|
+
readonly contextGet: "sparq.v2.context.get";
|
|
5
|
+
readonly contextChanged: "sparq.v2.context.changed";
|
|
6
|
+
readonly surfaceActivate: "sparq.v2.surface.activate";
|
|
7
|
+
readonly surfaceDeactivate: "sparq.v2.surface.deactivate";
|
|
8
|
+
readonly surfaceDestroy: "sparq.v2.surface.destroy";
|
|
9
|
+
readonly httpRequest: "sparq.v2.http.request";
|
|
10
|
+
readonly feedbackNotify: "sparq.v2.feedback.notify";
|
|
11
|
+
readonly feedbackConfirm: "sparq.v2.feedback.confirm";
|
|
12
|
+
readonly navigationOpenResource: "sparq.v2.navigation.openResource";
|
|
13
|
+
readonly schemaRuntime: "sparq.v2.schema.runtime";
|
|
14
|
+
readonly schemaOpenPresentation: "sparq.v2.schema.openPresentation";
|
|
15
|
+
readonly surfaceSetTitle: "sparq.v2.surface.setTitle";
|
|
16
|
+
readonly surfaceOpenPopup: "sparq.v2.surface.openPopup";
|
|
17
|
+
readonly surfaceClosePopup: "sparq.v2.surface.closePopup";
|
|
18
|
+
readonly assetsPick: "sparq.v2.assets.pick";
|
|
19
|
+
readonly assetsUpload: "sparq.v2.assets.upload";
|
|
20
|
+
};
|
|
21
|
+
export declare const SPARQ_BRIDGE_ERROR_CODES: {
|
|
22
|
+
readonly invalidRequest: -32600;
|
|
23
|
+
readonly methodNotFound: -32601;
|
|
24
|
+
readonly invalidParams: -32602;
|
|
25
|
+
readonly internalError: -32603;
|
|
26
|
+
readonly notConnected: -32001;
|
|
27
|
+
readonly featureUnavailable: -32002;
|
|
28
|
+
readonly timeout: -32003;
|
|
29
|
+
readonly unsupportedVersion: -32004;
|
|
30
|
+
readonly surfaceInactive: -32005;
|
|
31
|
+
};
|
|
32
|
+
export type SparqBridgeVersion = typeof SPARQ_BRIDGE_VERSION;
|
|
33
|
+
export type SparqBridgeMethod = (typeof SPARQ_METHODS)[keyof typeof SPARQ_METHODS];
|
|
34
|
+
export type SparqBridgeErrorCode = (typeof SPARQ_BRIDGE_ERROR_CODES)[keyof typeof SPARQ_BRIDGE_ERROR_CODES];
|
|
35
|
+
export type SparqPluginFeature = 'context' | 'surface.lifecycle' | 'http.request' | 'feedback.notify' | 'feedback.confirm' | 'navigation.openResource' | 'schema.runtime' | 'schema.openPresentation' | 'surface.setTitle' | 'surface.openPopup' | 'surface.closePopup' | 'assets.pick' | 'assets.upload';
|
|
36
|
+
export interface SparqJsonRpcRequest {
|
|
37
|
+
jsonrpc: '2.0';
|
|
38
|
+
channel: string;
|
|
39
|
+
id: string;
|
|
40
|
+
method: SparqBridgeMethod | string;
|
|
41
|
+
params?: unknown;
|
|
42
|
+
}
|
|
43
|
+
export interface SparqJsonRpcNotification {
|
|
44
|
+
jsonrpc: '2.0';
|
|
45
|
+
channel: string;
|
|
46
|
+
method: SparqBridgeMethod | string;
|
|
47
|
+
params?: unknown;
|
|
48
|
+
}
|
|
49
|
+
export interface SparqJsonRpcSuccess<T = unknown> {
|
|
50
|
+
jsonrpc: '2.0';
|
|
51
|
+
channel: string;
|
|
52
|
+
id: string;
|
|
53
|
+
result: T;
|
|
54
|
+
}
|
|
55
|
+
export interface SparqJsonRpcErrorData {
|
|
56
|
+
code?: string;
|
|
57
|
+
details?: unknown;
|
|
58
|
+
}
|
|
59
|
+
export interface SparqJsonRpcFailure {
|
|
60
|
+
jsonrpc: '2.0';
|
|
61
|
+
channel: string;
|
|
62
|
+
id: string;
|
|
63
|
+
error: {
|
|
64
|
+
code: SparqBridgeErrorCode | number;
|
|
65
|
+
message: string;
|
|
66
|
+
data?: SparqJsonRpcErrorData;
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
export type SparqJsonRpcResponse<T = unknown> = SparqJsonRpcSuccess<T> | SparqJsonRpcFailure;
|
|
70
|
+
export type SparqJsonRpcMessage = SparqJsonRpcRequest | SparqJsonRpcNotification | SparqJsonRpcResponse;
|
|
71
|
+
export declare class SparqPluginBridgeError extends Error {
|
|
72
|
+
readonly code: number;
|
|
73
|
+
readonly data?: SparqJsonRpcErrorData;
|
|
74
|
+
constructor(message: string, code: number, data?: SparqJsonRpcErrorData);
|
|
75
|
+
}
|
|
76
|
+
export declare function createSparqBridgeChannel(): string;
|
|
77
|
+
export declare function isSparqJsonRpcRequest(input: unknown): input is SparqJsonRpcRequest;
|
|
78
|
+
export declare function isSparqJsonRpcNotification(input: unknown): input is SparqJsonRpcNotification;
|
|
79
|
+
export declare function isSparqJsonRpcResponse(input: unknown): input is SparqJsonRpcResponse;
|
|
80
|
+
export declare function isRecord(input: unknown): input is Record<string, unknown>;
|
|
81
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/bridge/types.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,EAAG,GAAY,CAAA;AAChD,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;CAkBhB,CAAA;AAEV,eAAO,MAAM,wBAAwB;;;;;;;;;;CAU3B,CAAA;AAEV,MAAM,MAAM,kBAAkB,GAAG,OAAO,oBAAoB,CAAA;AAC5D,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,OAAO,aAAa,CAAC,CAAA;AAClF,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,OAAO,wBAAwB,CAAC,CAAA;AAC3G,MAAM,MAAM,kBAAkB,GACxB,SAAS,GACT,mBAAmB,GACnB,cAAc,GACd,iBAAiB,GACjB,kBAAkB,GAClB,yBAAyB,GACzB,gBAAgB,GAChB,yBAAyB,GACzB,kBAAkB,GAClB,mBAAmB,GACnB,oBAAoB,GACpB,aAAa,GACb,eAAe,CAAA;AAErB,MAAM,WAAW,mBAAmB;IAChC,OAAO,EAAE,KAAK,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAAA;IAClC,MAAM,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,WAAW,wBAAwB;IACrC,OAAO,EAAE,KAAK,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAAA;IAClC,MAAM,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,WAAW,mBAAmB,CAAC,CAAC,GAAG,OAAO;IAC5C,OAAO,EAAE,KAAK,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,CAAC,CAAA;CACZ;AAED,MAAM,WAAW,qBAAqB;IAClC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,OAAO,CAAA;CACpB;AAED,MAAM,WAAW,mBAAmB;IAChC,OAAO,EAAE,KAAK,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE;QACH,IAAI,EAAE,oBAAoB,GAAG,MAAM,CAAA;QACnC,OAAO,EAAE,MAAM,CAAA;QACf,IAAI,CAAC,EAAE,qBAAqB,CAAA;KAC/B,CAAA;CACJ;AAED,MAAM,MAAM,oBAAoB,CAAC,CAAC,GAAG,OAAO,IAAI,mBAAmB,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAA;AAC5F,MAAM,MAAM,mBAAmB,GAAG,mBAAmB,GAAG,wBAAwB,GAAG,oBAAoB,CAAA;AAEvG,qBAAa,sBAAuB,SAAQ,KAAK;IAC7C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,CAAC,EAAE,qBAAqB,CAAA;gBAEzB,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,qBAAqB;CAM1E;AAED,wBAAgB,wBAAwB,IAAI,MAAM,CAMjD;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,mBAAmB,CAQlF;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,wBAAwB,CAQ5F;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,oBAAoB,CAQpF;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzE"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
export const SPARQ_BRIDGE_VERSION = '2';
|
|
2
|
+
export const SPARQ_METHODS = {
|
|
3
|
+
init: 'sparq.v2.init',
|
|
4
|
+
contextGet: 'sparq.v2.context.get',
|
|
5
|
+
contextChanged: 'sparq.v2.context.changed',
|
|
6
|
+
surfaceActivate: 'sparq.v2.surface.activate',
|
|
7
|
+
surfaceDeactivate: 'sparq.v2.surface.deactivate',
|
|
8
|
+
surfaceDestroy: 'sparq.v2.surface.destroy',
|
|
9
|
+
httpRequest: 'sparq.v2.http.request',
|
|
10
|
+
feedbackNotify: 'sparq.v2.feedback.notify',
|
|
11
|
+
feedbackConfirm: 'sparq.v2.feedback.confirm',
|
|
12
|
+
navigationOpenResource: 'sparq.v2.navigation.openResource',
|
|
13
|
+
schemaRuntime: 'sparq.v2.schema.runtime',
|
|
14
|
+
schemaOpenPresentation: 'sparq.v2.schema.openPresentation',
|
|
15
|
+
surfaceSetTitle: 'sparq.v2.surface.setTitle',
|
|
16
|
+
surfaceOpenPopup: 'sparq.v2.surface.openPopup',
|
|
17
|
+
surfaceClosePopup: 'sparq.v2.surface.closePopup',
|
|
18
|
+
assetsPick: 'sparq.v2.assets.pick',
|
|
19
|
+
assetsUpload: 'sparq.v2.assets.upload',
|
|
20
|
+
};
|
|
21
|
+
export const SPARQ_BRIDGE_ERROR_CODES = {
|
|
22
|
+
invalidRequest: -32600,
|
|
23
|
+
methodNotFound: -32601,
|
|
24
|
+
invalidParams: -32602,
|
|
25
|
+
internalError: -32603,
|
|
26
|
+
notConnected: -32001,
|
|
27
|
+
featureUnavailable: -32002,
|
|
28
|
+
timeout: -32003,
|
|
29
|
+
unsupportedVersion: -32004,
|
|
30
|
+
surfaceInactive: -32005,
|
|
31
|
+
};
|
|
32
|
+
export class SparqPluginBridgeError extends Error {
|
|
33
|
+
code;
|
|
34
|
+
data;
|
|
35
|
+
constructor(message, code, data) {
|
|
36
|
+
super(message);
|
|
37
|
+
this.name = 'SparqPluginBridgeError';
|
|
38
|
+
this.code = code;
|
|
39
|
+
this.data = data;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
export function createSparqBridgeChannel() {
|
|
43
|
+
if (typeof crypto !== 'undefined' && typeof crypto.randomUUID === 'function') {
|
|
44
|
+
return crypto.randomUUID();
|
|
45
|
+
}
|
|
46
|
+
return `sparq_${Date.now()}_${Math.random().toString(16).slice(2)}`;
|
|
47
|
+
}
|
|
48
|
+
export function isSparqJsonRpcRequest(input) {
|
|
49
|
+
return (isRecord(input) &&
|
|
50
|
+
input.jsonrpc === '2.0' &&
|
|
51
|
+
typeof input.channel === 'string' &&
|
|
52
|
+
typeof input.id === 'string' &&
|
|
53
|
+
typeof input.method === 'string');
|
|
54
|
+
}
|
|
55
|
+
export function isSparqJsonRpcNotification(input) {
|
|
56
|
+
return (isRecord(input) &&
|
|
57
|
+
input.jsonrpc === '2.0' &&
|
|
58
|
+
typeof input.channel === 'string' &&
|
|
59
|
+
!('id' in input) &&
|
|
60
|
+
typeof input.method === 'string');
|
|
61
|
+
}
|
|
62
|
+
export function isSparqJsonRpcResponse(input) {
|
|
63
|
+
return (isRecord(input) &&
|
|
64
|
+
input.jsonrpc === '2.0' &&
|
|
65
|
+
typeof input.channel === 'string' &&
|
|
66
|
+
typeof input.id === 'string' &&
|
|
67
|
+
(('result' in input && !('error' in input)) || ('error' in input && isRecord(input.error))));
|
|
68
|
+
}
|
|
69
|
+
export function isRecord(input) {
|
|
70
|
+
return typeof input === 'object' && input !== null && !Array.isArray(input);
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/bridge/types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAY,CAAA;AAChD,MAAM,CAAC,MAAM,aAAa,GAAG;IACzB,IAAI,EAAE,eAAe;IACrB,UAAU,EAAE,sBAAsB;IAClC,cAAc,EAAE,0BAA0B;IAC1C,eAAe,EAAE,2BAA2B;IAC5C,iBAAiB,EAAE,6BAA6B;IAChD,cAAc,EAAE,0BAA0B;IAC1C,WAAW,EAAE,uBAAuB;IACpC,cAAc,EAAE,0BAA0B;IAC1C,eAAe,EAAE,2BAA2B;IAC5C,sBAAsB,EAAE,kCAAkC;IAC1D,aAAa,EAAE,yBAAyB;IACxC,sBAAsB,EAAE,kCAAkC;IAC1D,eAAe,EAAE,2BAA2B;IAC5C,gBAAgB,EAAE,4BAA4B;IAC9C,iBAAiB,EAAE,6BAA6B;IAChD,UAAU,EAAE,sBAAsB;IAClC,YAAY,EAAE,wBAAwB;CAChC,CAAA;AAEV,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACpC,cAAc,EAAE,CAAC,KAAK;IACtB,cAAc,EAAE,CAAC,KAAK;IACtB,aAAa,EAAE,CAAC,KAAK;IACrB,aAAa,EAAE,CAAC,KAAK;IACrB,YAAY,EAAE,CAAC,KAAK;IACpB,kBAAkB,EAAE,CAAC,KAAK;IAC1B,OAAO,EAAE,CAAC,KAAK;IACf,kBAAkB,EAAE,CAAC,KAAK;IAC1B,eAAe,EAAE,CAAC,KAAK;CACjB,CAAA;AA6DV,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IACpC,IAAI,CAAQ;IACZ,IAAI,CAAwB;IAErC,YAAY,OAAe,EAAE,IAAY,EAAE,IAA4B;QACnE,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAA;QACpC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IACpB,CAAC;CACJ;AAED,MAAM,UAAU,wBAAwB;IACpC,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;QAC3E,OAAO,MAAM,CAAC,UAAU,EAAE,CAAA;IAC9B,CAAC;IAED,OAAO,SAAS,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;AACvE,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAc;IAChD,OAAO,CACH,QAAQ,CAAC,KAAK,CAAC;QACf,KAAK,CAAC,OAAO,KAAK,KAAK;QACvB,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;QACjC,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ;QAC5B,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CACnC,CAAA;AACL,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,KAAc;IACrD,OAAO,CACH,QAAQ,CAAC,KAAK,CAAC;QACf,KAAK,CAAC,OAAO,KAAK,KAAK;QACvB,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;QACjC,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC;QAChB,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CACnC,CAAA;AACL,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAAc;IACjD,OAAO,CACH,QAAQ,CAAC,KAAK,CAAC;QACf,KAAK,CAAC,OAAO,KAAK,KAAK;QACvB,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;QACjC,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ;QAC5B,CAAC,CAAC,QAAQ,IAAI,KAAK,IAAI,CAAC,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAC9F,CAAA;AACL,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAc;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;AAC/E,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAIR,iBAAiB,EACjB,wBAAwB,EAY3B,MAAM,YAAY,CAAA;AAenB,wBAAgB,uBAAuB,CAAC,OAAO,GAAE,wBAA6B,GAAG,iBAAiB,CA0YjG"}
|
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
import { SPARQ_BRIDGE_ERROR_CODES, SPARQ_BRIDGE_VERSION, SPARQ_METHODS, SparqPluginBridgeError, assertSparqPluginHttpPath, createSparqBridgeChannel, isRecord, isSparqJsonRpcNotification, isSparqJsonRpcResponse, } from '../bridge/index.js';
|
|
2
|
+
import { cloneSparqBridgePayload } from '../bridge/payload.js';
|
|
3
|
+
const DEFAULT_TIMEOUT_MS = 8000;
|
|
4
|
+
export function createSparqPluginClient(options = {}) {
|
|
5
|
+
const eventWindow = options.eventWindow ?? window;
|
|
6
|
+
const targetWindow = options.targetWindow ?? eventWindow.parent;
|
|
7
|
+
const configuredTargetOrigin = options.targetOrigin ?? '*';
|
|
8
|
+
const timeoutMs = options.timeoutMs ?? DEFAULT_TIMEOUT_MS;
|
|
9
|
+
const pending = new Map();
|
|
10
|
+
const contextListeners = new Set();
|
|
11
|
+
const lifecycleListeners = new Set();
|
|
12
|
+
let channel = '';
|
|
13
|
+
let connectedOrigin = configuredTargetOrigin;
|
|
14
|
+
let context;
|
|
15
|
+
let lifecycleState;
|
|
16
|
+
let connectPromise;
|
|
17
|
+
let initResolve;
|
|
18
|
+
let initReject;
|
|
19
|
+
let initTimer;
|
|
20
|
+
let lifecycleResolve;
|
|
21
|
+
let lifecycleReject;
|
|
22
|
+
let lifecycleTimer;
|
|
23
|
+
let destroyed = false;
|
|
24
|
+
eventWindow.addEventListener('message', handleMessage);
|
|
25
|
+
function handleMessage(event) {
|
|
26
|
+
if (event.source !== targetWindow || !isAcceptedOrigin(event.origin)) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
if (isSparqJsonRpcNotification(event.data) && event.data.method === SPARQ_METHODS.init) {
|
|
30
|
+
handleInit(event);
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
if (!channel || !isAcceptedChannel(event.data)) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
if (isSparqJsonRpcNotification(event.data) && event.data.method === SPARQ_METHODS.contextChanged) {
|
|
37
|
+
const nextContext = normalizeContext(event.data.params);
|
|
38
|
+
if (nextContext) {
|
|
39
|
+
updateContext(nextContext);
|
|
40
|
+
}
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
if (isSparqJsonRpcNotification(event.data)) {
|
|
44
|
+
const nextLifecycleState = resolveSurfaceLifecycleState(event.data.method);
|
|
45
|
+
if (nextLifecycleState) {
|
|
46
|
+
updateLifecycleState(nextLifecycleState);
|
|
47
|
+
}
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
if (!isSparqJsonRpcResponse(event.data)) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
settleRequest(event.data);
|
|
54
|
+
}
|
|
55
|
+
function handleInit(event) {
|
|
56
|
+
const params = normalizeInitParams(event.data.params);
|
|
57
|
+
if (!params || !event.data.channel) {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
if (params.version !== SPARQ_BRIDGE_VERSION) {
|
|
61
|
+
initReject?.(new SparqPluginBridgeError(`Unsupported Sparq plugin bridge version: ${params.version}`, SPARQ_BRIDGE_ERROR_CODES.unsupportedVersion, { code: 'BRIDGE_VERSION_UNSUPPORTED', details: { version: params.version } }));
|
|
62
|
+
clearInitWaiter();
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
channel = event.data.channel;
|
|
66
|
+
if (configuredTargetOrigin === '*' && event.origin !== 'null') {
|
|
67
|
+
connectedOrigin = event.origin;
|
|
68
|
+
}
|
|
69
|
+
initResolve?.(params);
|
|
70
|
+
clearInitWaiter();
|
|
71
|
+
}
|
|
72
|
+
function isAcceptedOrigin(origin) {
|
|
73
|
+
return configuredTargetOrigin === '*' || origin === 'null' || origin === configuredTargetOrigin;
|
|
74
|
+
}
|
|
75
|
+
function isAcceptedChannel(input) {
|
|
76
|
+
return isRecord(input) && input.channel === channel;
|
|
77
|
+
}
|
|
78
|
+
function settleRequest(response) {
|
|
79
|
+
const request = pending.get(response.id);
|
|
80
|
+
if (!request) {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
pending.delete(response.id);
|
|
84
|
+
if (request.timer !== undefined) {
|
|
85
|
+
eventWindow.clearTimeout(request.timer);
|
|
86
|
+
}
|
|
87
|
+
if ('result' in response) {
|
|
88
|
+
request.resolve(response.result);
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
request.reject(new SparqPluginBridgeError(response.error.message, response.error.code, response.error.data));
|
|
92
|
+
}
|
|
93
|
+
async function connect() {
|
|
94
|
+
if (destroyed) {
|
|
95
|
+
throw new SparqPluginBridgeError('Sparq plugin client has been destroyed.', SPARQ_BRIDGE_ERROR_CODES.notConnected);
|
|
96
|
+
}
|
|
97
|
+
if (context) {
|
|
98
|
+
return context;
|
|
99
|
+
}
|
|
100
|
+
if (!connectPromise) {
|
|
101
|
+
connectPromise = waitForInit()
|
|
102
|
+
.then(() => request(SPARQ_METHODS.contextGet))
|
|
103
|
+
.then(async (nextContext) => {
|
|
104
|
+
await waitForLifecycleState();
|
|
105
|
+
if (destroyed) {
|
|
106
|
+
throw new SparqPluginBridgeError('Sparq plugin client has been destroyed.', SPARQ_BRIDGE_ERROR_CODES.notConnected);
|
|
107
|
+
}
|
|
108
|
+
updateContext(nextContext);
|
|
109
|
+
return nextContext;
|
|
110
|
+
})
|
|
111
|
+
.catch((error) => {
|
|
112
|
+
connectPromise = undefined;
|
|
113
|
+
throw error;
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
return connectPromise;
|
|
117
|
+
}
|
|
118
|
+
function waitForLifecycleState() {
|
|
119
|
+
if (lifecycleState) {
|
|
120
|
+
return Promise.resolve(lifecycleState);
|
|
121
|
+
}
|
|
122
|
+
return new Promise((resolve, reject) => {
|
|
123
|
+
lifecycleResolve = resolve;
|
|
124
|
+
lifecycleReject = reject;
|
|
125
|
+
lifecycleTimer = eventWindow.setTimeout(() => {
|
|
126
|
+
clearLifecycleWaiter();
|
|
127
|
+
reject(new SparqPluginBridgeError('Sparq plugin surface lifecycle initialization timed out.', SPARQ_BRIDGE_ERROR_CODES.timeout, { code: 'SURFACE_LIFECYCLE_TIMEOUT' }));
|
|
128
|
+
}, timeoutMs);
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
function clearLifecycleWaiter() {
|
|
132
|
+
if (lifecycleTimer !== undefined) {
|
|
133
|
+
eventWindow.clearTimeout(lifecycleTimer);
|
|
134
|
+
}
|
|
135
|
+
lifecycleResolve = undefined;
|
|
136
|
+
lifecycleReject = undefined;
|
|
137
|
+
lifecycleTimer = undefined;
|
|
138
|
+
}
|
|
139
|
+
function waitForInit() {
|
|
140
|
+
if (channel) {
|
|
141
|
+
return Promise.resolve({ version: SPARQ_BRIDGE_VERSION, surfaceId: '' });
|
|
142
|
+
}
|
|
143
|
+
return new Promise((resolve, reject) => {
|
|
144
|
+
initResolve = resolve;
|
|
145
|
+
initReject = reject;
|
|
146
|
+
initTimer = eventWindow.setTimeout(() => {
|
|
147
|
+
clearInitWaiter();
|
|
148
|
+
reject(new SparqPluginBridgeError('Sparq plugin handshake timed out.', SPARQ_BRIDGE_ERROR_CODES.timeout));
|
|
149
|
+
}, timeoutMs);
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
function clearInitWaiter() {
|
|
153
|
+
if (initTimer !== undefined) {
|
|
154
|
+
eventWindow.clearTimeout(initTimer);
|
|
155
|
+
}
|
|
156
|
+
initResolve = undefined;
|
|
157
|
+
initReject = undefined;
|
|
158
|
+
initTimer = undefined;
|
|
159
|
+
}
|
|
160
|
+
function request(method, params, requestTimeoutMs = timeoutMs) {
|
|
161
|
+
if (destroyed || !channel) {
|
|
162
|
+
return Promise.reject(new SparqPluginBridgeError('Sparq plugin is not connected.', SPARQ_BRIDGE_ERROR_CODES.notConnected));
|
|
163
|
+
}
|
|
164
|
+
const id = createSparqBridgeChannel();
|
|
165
|
+
return new Promise((resolve, reject) => {
|
|
166
|
+
const timer = requestTimeoutMs === null
|
|
167
|
+
? undefined
|
|
168
|
+
: eventWindow.setTimeout(() => {
|
|
169
|
+
pending.delete(id);
|
|
170
|
+
reject(new SparqPluginBridgeError(`Sparq plugin request timed out: ${method}`, SPARQ_BRIDGE_ERROR_CODES.timeout));
|
|
171
|
+
}, requestTimeoutMs);
|
|
172
|
+
pending.set(id, {
|
|
173
|
+
resolve: resolve,
|
|
174
|
+
reject,
|
|
175
|
+
timer,
|
|
176
|
+
});
|
|
177
|
+
targetWindow.postMessage({
|
|
178
|
+
jsonrpc: '2.0',
|
|
179
|
+
channel,
|
|
180
|
+
id,
|
|
181
|
+
method,
|
|
182
|
+
params: cloneSparqBridgePayload(params),
|
|
183
|
+
}, connectedOrigin);
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
async function invoke(feature, method, params, requestTimeoutMs = timeoutMs) {
|
|
187
|
+
const currentContext = await connect();
|
|
188
|
+
if (!currentContext.bridge.features.includes(feature)) {
|
|
189
|
+
throw new SparqPluginBridgeError(`Plugin host feature is unavailable: ${feature}`, SPARQ_BRIDGE_ERROR_CODES.featureUnavailable, { code: 'FEATURE_UNAVAILABLE', details: { feature } });
|
|
190
|
+
}
|
|
191
|
+
return request(method, params, requestTimeoutMs);
|
|
192
|
+
}
|
|
193
|
+
function updateContext(nextContext) {
|
|
194
|
+
context = nextContext;
|
|
195
|
+
for (const listener of contextListeners) {
|
|
196
|
+
listener(nextContext);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
function updateLifecycleState(nextState) {
|
|
200
|
+
if (lifecycleState === nextState || lifecycleState === 'destroyed') {
|
|
201
|
+
return;
|
|
202
|
+
}
|
|
203
|
+
lifecycleState = nextState;
|
|
204
|
+
lifecycleResolve?.(nextState);
|
|
205
|
+
clearLifecycleWaiter();
|
|
206
|
+
const listeners = [...lifecycleListeners];
|
|
207
|
+
if (nextState === 'destroyed') {
|
|
208
|
+
// Host 已撤销这个 Surface 的消息通道;先拒绝 pending 请求,再通知业务完成清理。
|
|
209
|
+
destroyClient();
|
|
210
|
+
}
|
|
211
|
+
for (const listener of listeners) {
|
|
212
|
+
listener(nextState);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
function destroyClient() {
|
|
216
|
+
if (destroyed) {
|
|
217
|
+
return;
|
|
218
|
+
}
|
|
219
|
+
destroyed = true;
|
|
220
|
+
eventWindow.removeEventListener('message', handleMessage);
|
|
221
|
+
initReject?.(new SparqPluginBridgeError('Sparq plugin client has been destroyed.', SPARQ_BRIDGE_ERROR_CODES.notConnected));
|
|
222
|
+
clearInitWaiter();
|
|
223
|
+
lifecycleReject?.(new SparqPluginBridgeError('Sparq plugin client has been destroyed.', SPARQ_BRIDGE_ERROR_CODES.notConnected));
|
|
224
|
+
clearLifecycleWaiter();
|
|
225
|
+
for (const pendingRequest of pending.values()) {
|
|
226
|
+
if (pendingRequest.timer !== undefined) {
|
|
227
|
+
eventWindow.clearTimeout(pendingRequest.timer);
|
|
228
|
+
}
|
|
229
|
+
pendingRequest.reject(new SparqPluginBridgeError('Sparq plugin client has been destroyed.', SPARQ_BRIDGE_ERROR_CODES.notConnected));
|
|
230
|
+
}
|
|
231
|
+
pending.clear();
|
|
232
|
+
contextListeners.clear();
|
|
233
|
+
lifecycleListeners.clear();
|
|
234
|
+
}
|
|
235
|
+
return {
|
|
236
|
+
connect,
|
|
237
|
+
getContext: () => context,
|
|
238
|
+
hasFeature: (feature) => context?.bridge.features.includes(feature) ?? false,
|
|
239
|
+
onContextChange: (listener) => {
|
|
240
|
+
contextListeners.add(listener);
|
|
241
|
+
return () => contextListeners.delete(listener);
|
|
242
|
+
},
|
|
243
|
+
permissions: {
|
|
244
|
+
has: (permission) => context?.permissions.includes(permission) ?? false,
|
|
245
|
+
},
|
|
246
|
+
http: {
|
|
247
|
+
request: (input) => {
|
|
248
|
+
assertSparqPluginHttpPath(input.path);
|
|
249
|
+
return invoke('http.request', SPARQ_METHODS.httpRequest, input);
|
|
250
|
+
},
|
|
251
|
+
},
|
|
252
|
+
feedback: {
|
|
253
|
+
notify: (input) => invoke('feedback.notify', SPARQ_METHODS.feedbackNotify, input),
|
|
254
|
+
confirm: (input) => invoke('feedback.confirm', SPARQ_METHODS.feedbackConfirm, input, null),
|
|
255
|
+
},
|
|
256
|
+
navigation: {
|
|
257
|
+
openResource: (resource, params) => invoke('navigation.openResource', SPARQ_METHODS.navigationOpenResource, {
|
|
258
|
+
resource,
|
|
259
|
+
params,
|
|
260
|
+
}),
|
|
261
|
+
},
|
|
262
|
+
schema: {
|
|
263
|
+
runtime: (input) => invoke('schema.runtime', SPARQ_METHODS.schemaRuntime, input),
|
|
264
|
+
openPresentation: (input) => invoke('schema.openPresentation', SPARQ_METHODS.schemaOpenPresentation, input, null),
|
|
265
|
+
},
|
|
266
|
+
assets: {
|
|
267
|
+
pick: (input = {}) => invoke('assets.pick', SPARQ_METHODS.assetsPick, input),
|
|
268
|
+
upload: (input) => invoke('assets.upload', SPARQ_METHODS.assetsUpload, {
|
|
269
|
+
...input,
|
|
270
|
+
fileName: input.file.name,
|
|
271
|
+
lastModified: input.file.lastModified,
|
|
272
|
+
}, null),
|
|
273
|
+
},
|
|
274
|
+
surface: {
|
|
275
|
+
getLifecycleState: () => lifecycleState,
|
|
276
|
+
onLifecycleChange: (listener) => {
|
|
277
|
+
lifecycleListeners.add(listener);
|
|
278
|
+
if (lifecycleState) {
|
|
279
|
+
listener(lifecycleState);
|
|
280
|
+
}
|
|
281
|
+
return () => lifecycleListeners.delete(listener);
|
|
282
|
+
},
|
|
283
|
+
setTitle: (title) => invoke('surface.setTitle', SPARQ_METHODS.surfaceSetTitle, { title }),
|
|
284
|
+
openPopup: (input) => invoke('surface.openPopup', SPARQ_METHODS.surfaceOpenPopup, input, null),
|
|
285
|
+
closePopup: (input = {}) => invoke('surface.closePopup', SPARQ_METHODS.surfaceClosePopup, input),
|
|
286
|
+
},
|
|
287
|
+
destroy: destroyClient,
|
|
288
|
+
};
|
|
289
|
+
}
|
|
290
|
+
function resolveSurfaceLifecycleState(method) {
|
|
291
|
+
switch (method) {
|
|
292
|
+
case SPARQ_METHODS.surfaceActivate:
|
|
293
|
+
return 'active';
|
|
294
|
+
case SPARQ_METHODS.surfaceDeactivate:
|
|
295
|
+
return 'inactive';
|
|
296
|
+
case SPARQ_METHODS.surfaceDestroy:
|
|
297
|
+
return 'destroyed';
|
|
298
|
+
default:
|
|
299
|
+
return undefined;
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
function normalizeInitParams(input) {
|
|
303
|
+
if (!isRecord(input) || typeof input.version !== 'string' || typeof input.surfaceId !== 'string') {
|
|
304
|
+
return undefined;
|
|
305
|
+
}
|
|
306
|
+
return {
|
|
307
|
+
version: input.version,
|
|
308
|
+
surfaceId: input.surfaceId,
|
|
309
|
+
};
|
|
310
|
+
}
|
|
311
|
+
function normalizeContext(input) {
|
|
312
|
+
if (!isRecord(input) || !isRecord(input.bridge) || !isRecord(input.plugin) || !Array.isArray(input.permissions)) {
|
|
313
|
+
return undefined;
|
|
314
|
+
}
|
|
315
|
+
return input;
|
|
316
|
+
}
|
|
317
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { createSparqPluginClient } from './client.js';
|
|
2
|
+
export type { SparqPluginAsset, SparqPluginAssetPickInput, SparqPluginAssetUploadInput, SparqPluginClient, SparqPluginClientOptions, SparqPluginContext, SparqPluginConfirmInput, SparqPluginHostContext, SparqPluginHttpRequest, SparqPluginNotifyInput, SparqPluginSchemaRuntimeRequest, SparqPluginSchemaPresentationInput, SparqPluginSchemaPresentationResult, SparqPluginSurfaceClosePopupInput, SparqPluginSurfaceLifecycleState, SparqPluginSurfacePopupInput, SparqPluginSurfacePopupResult, SparqPluginUser, } from './types.js';
|
|
3
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAA;AACrD,YAAY,EACR,gBAAgB,EAChB,yBAAyB,EACzB,2BAA2B,EAC3B,iBAAiB,EACjB,wBAAwB,EACxB,kBAAkB,EAClB,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,+BAA+B,EAC/B,kCAAkC,EAClC,mCAAmC,EACnC,iCAAiC,EACjC,gCAAgC,EAChC,4BAA4B,EAC5B,6BAA6B,EAC7B,eAAe,GAClB,MAAM,YAAY,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAA"}
|