scoundrel-remote-eval 1.0.19 → 1.0.21
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 +136 -11
- package/build/client/index.d.ts +148 -11
- package/build/client/index.d.ts.map +1 -1
- package/build/client/index.js +367 -32
- package/build/client/reference-proxy.d.ts +19 -1
- package/build/client/reference-proxy.d.ts.map +1 -1
- package/build/client/reference-proxy.js +37 -5
- package/build/client/reference.d.ts +27 -14
- package/build/client/reference.d.ts.map +1 -1
- package/build/client/reference.js +34 -18
- package/package.json +2 -2
|
@@ -1,7 +1,25 @@
|
|
|
1
1
|
export default referenceProxy;
|
|
2
|
+
export type ReferenceProxy = Record<string, any> & {
|
|
3
|
+
__serialize: () => Promise<any>;
|
|
4
|
+
};
|
|
5
|
+
export type Proxy = ReferenceProxy;
|
|
6
|
+
export type ProxyPromiseMethods = {
|
|
7
|
+
/**
|
|
8
|
+
* Promise-style then handler
|
|
9
|
+
*/
|
|
10
|
+
then: (onfulfilled?: (value: any) => any, onrejected?: (reason: any) => any) => Promise<any>;
|
|
11
|
+
/**
|
|
12
|
+
* Promise-style catch handler
|
|
13
|
+
*/
|
|
14
|
+
catch: (onrejected?: (reason: any) => any) => Promise<any>;
|
|
15
|
+
/**
|
|
16
|
+
* Promise-style finally handler
|
|
17
|
+
*/
|
|
18
|
+
finally: (onfinally?: () => any) => Promise<any>;
|
|
19
|
+
};
|
|
2
20
|
/**
|
|
3
21
|
* @param {any} wrappedObject Target to wrap in a proxy
|
|
4
22
|
* @returns {Proxy} Proxy that forwards to references
|
|
5
23
|
*/
|
|
6
|
-
declare function referenceProxy(wrappedObject: any):
|
|
24
|
+
declare function referenceProxy(wrappedObject: any): Proxy;
|
|
7
25
|
//# sourceMappingURL=reference-proxy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reference-proxy.d.ts","sourceRoot":"","sources":["../../src/client/reference-proxy.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"reference-proxy.d.ts","sourceRoot":"","sources":["../../src/client/reference-proxy.js"],"names":[],"mappings":";6BAGa,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG;IAAC,WAAW,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,CAAA;CAAC;oBACvD,cAAc;;;;;UAEb,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,EAAE,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC;;;;WACtF,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC;;;;aACnD,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC;;AAmErD;;;GAGG;AACH,+CAHW,GAAG,GACD,KAAK,CAEoE"}
|
|
@@ -1,10 +1,36 @@
|
|
|
1
1
|
// @ts-check
|
|
2
|
+
/**
|
|
3
|
+
* @typedef {Record<string, any> & {__serialize: () => Promise<any>}} ReferenceProxy
|
|
4
|
+
* @typedef {ReferenceProxy} Proxy
|
|
5
|
+
* @typedef {object} ProxyPromiseMethods
|
|
6
|
+
* @property {(onfulfilled?: (value: any) => any, onrejected?: (reason: any) => any) => Promise<any>} then Promise-style then handler
|
|
7
|
+
* @property {(onrejected?: (reason: any) => any) => Promise<any>} catch Promise-style catch handler
|
|
8
|
+
* @property {(onfinally?: () => any) => Promise<any>} finally Promise-style finally handler
|
|
9
|
+
*/
|
|
2
10
|
/**
|
|
3
11
|
* @param {import("./reference.js").default} reference Reference to proxy
|
|
4
|
-
* @param {string} prop Property name to
|
|
5
|
-
* @returns {(...args: any[]) => Promise<any>}
|
|
12
|
+
* @param {string} prop Property name to resolve
|
|
13
|
+
* @returns {((...args: any[]) => Promise<any>) & ProxyPromiseMethods} Callable proxy for method or attribute
|
|
6
14
|
*/
|
|
7
|
-
const
|
|
15
|
+
const proxyPropertySpawner = (reference, prop) => {
|
|
16
|
+
/** @type {((...args: any[]) => Promise<any>) & ProxyPromiseMethods} */
|
|
17
|
+
const methodProxy = /** @type {any} */ ((...args) => reference.callMethod(prop, ...args));
|
|
18
|
+
Object.defineProperties(methodProxy, {
|
|
19
|
+
then: {
|
|
20
|
+
value: (resolve, reject) => reference.readAttributeResult(prop).then(resolve, reject),
|
|
21
|
+
enumerable: false
|
|
22
|
+
},
|
|
23
|
+
catch: {
|
|
24
|
+
value: (reject) => reference.readAttributeResult(prop).catch(reject),
|
|
25
|
+
enumerable: false
|
|
26
|
+
},
|
|
27
|
+
finally: {
|
|
28
|
+
value: (callback) => reference.readAttributeResult(prop).finally(callback),
|
|
29
|
+
enumerable: false
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
return methodProxy;
|
|
33
|
+
};
|
|
8
34
|
const proxyObjectHandler = {
|
|
9
35
|
/**
|
|
10
36
|
* @param {import("./reference.js").default|(() => import("./reference.js").default)} reference Reference instance or factory
|
|
@@ -19,7 +45,13 @@ const proxyObjectHandler = {
|
|
|
19
45
|
const boundMethod = method.bind(reference);
|
|
20
46
|
return boundMethod;
|
|
21
47
|
}
|
|
22
|
-
|
|
48
|
+
if (prop == "then" || prop == "catch" || prop == "finally")
|
|
49
|
+
return undefined;
|
|
50
|
+
if (prop == "asymmetricMatch" || prop == "jasmineToString")
|
|
51
|
+
return undefined;
|
|
52
|
+
if (typeof prop !== "string")
|
|
53
|
+
return undefined;
|
|
54
|
+
return proxyPropertySpawner(reference, prop);
|
|
23
55
|
},
|
|
24
56
|
/**
|
|
25
57
|
* @param {import("./reference.js").default|(() => import("./reference.js").default)} receiver Proxy receiver
|
|
@@ -39,4 +71,4 @@ const proxyObjectHandler = {
|
|
|
39
71
|
*/
|
|
40
72
|
const referenceProxy = (wrappedObject) => new Proxy(wrappedObject, proxyObjectHandler);
|
|
41
73
|
export default referenceProxy;
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmZXJlbmNlLXByb3h5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC9yZWZlcmVuY2UtcHJveHkuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaOzs7Ozs7O0dBT0c7QUFFSDs7OztHQUlHO0FBQ0gsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsRUFBRTtJQUMvQyx1RUFBdUU7SUFDdkUsTUFBTSxXQUFXLEdBQUcsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUE7SUFFekYsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRTtRQUNuQyxJQUFJLEVBQUU7WUFDSixLQUFLLEVBQUUsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUM7WUFDckYsVUFBVSxFQUFFLEtBQUs7U0FDbEI7UUFDRCxLQUFLLEVBQUU7WUFDTCxLQUFLLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQ3BFLFVBQVUsRUFBRSxLQUFLO1NBQ2xCO1FBQ0QsT0FBTyxFQUFFO1lBQ1AsS0FBSyxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztZQUMxRSxVQUFVLEVBQUUsS0FBSztTQUNsQjtLQUNGLENBQUMsQ0FBQTtJQUVGLE9BQU8sV0FBVyxDQUFBO0FBQ3BCLENBQUMsQ0FBQTtBQUVELE1BQU0sa0JBQWtCLEdBQUc7SUFDekI7Ozs7T0FJRztJQUNILEdBQUcsQ0FBQyxTQUFTLEVBQUUsSUFBSTtRQUNqQixJQUFJLE9BQU8sU0FBUyxJQUFJLFVBQVU7WUFBRSxTQUFTLEdBQUcsU0FBUyxFQUFFLENBQUE7UUFFM0QsSUFBSSxJQUFJLElBQUksYUFBYSxFQUFFLENBQUM7WUFDMUIsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQTtZQUNsQyxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1lBRTFDLE9BQU8sV0FBVyxDQUFBO1FBQ3BCLENBQUM7UUFFRCxJQUFJLElBQUksSUFBSSxNQUFNLElBQUksSUFBSSxJQUFJLE9BQU8sSUFBSSxJQUFJLElBQUksU0FBUztZQUFFLE9BQU8sU0FBUyxDQUFBO1FBQzVFLElBQUksSUFBSSxJQUFJLGlCQUFpQixJQUFJLElBQUksSUFBSSxpQkFBaUI7WUFBRSxPQUFPLFNBQVMsQ0FBQTtRQUU1RSxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVE7WUFBRSxPQUFPLFNBQVMsQ0FBQTtRQUU5QyxPQUFPLG9CQUFvQixDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUM5QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEdBQUcsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVE7UUFDMUIsS0FBSyxRQUFRLENBQUE7UUFDYixLQUFLLElBQUksQ0FBQTtRQUNULEtBQUssUUFBUSxDQUFBO1FBQ2IsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFBO0lBQ3JELENBQUM7Q0FDRixDQUFBO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxjQUFjLEdBQUcsQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxDQUFDLGFBQWEsRUFBRSxrQkFBa0IsQ0FBQyxDQUFBO0FBRXRGLGVBQWUsY0FBYyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbi8qKlxuICogQHR5cGVkZWYge1JlY29yZDxzdHJpbmcsIGFueT4gJiB7X19zZXJpYWxpemU6ICgpID0+IFByb21pc2U8YW55Pn19IFJlZmVyZW5jZVByb3h5XG4gKiBAdHlwZWRlZiB7UmVmZXJlbmNlUHJveHl9IFByb3h5XG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBQcm94eVByb21pc2VNZXRob2RzXG4gKiBAcHJvcGVydHkgeyhvbmZ1bGZpbGxlZD86ICh2YWx1ZTogYW55KSA9PiBhbnksIG9ucmVqZWN0ZWQ/OiAocmVhc29uOiBhbnkpID0+IGFueSkgPT4gUHJvbWlzZTxhbnk+fSB0aGVuIFByb21pc2Utc3R5bGUgdGhlbiBoYW5kbGVyXG4gKiBAcHJvcGVydHkgeyhvbnJlamVjdGVkPzogKHJlYXNvbjogYW55KSA9PiBhbnkpID0+IFByb21pc2U8YW55Pn0gY2F0Y2ggUHJvbWlzZS1zdHlsZSBjYXRjaCBoYW5kbGVyXG4gKiBAcHJvcGVydHkgeyhvbmZpbmFsbHk/OiAoKSA9PiBhbnkpID0+IFByb21pc2U8YW55Pn0gZmluYWxseSBQcm9taXNlLXN0eWxlIGZpbmFsbHkgaGFuZGxlclxuICovXG5cbi8qKlxuICogQHBhcmFtIHtpbXBvcnQoXCIuL3JlZmVyZW5jZS5qc1wiKS5kZWZhdWx0fSByZWZlcmVuY2UgUmVmZXJlbmNlIHRvIHByb3h5XG4gKiBAcGFyYW0ge3N0cmluZ30gcHJvcCBQcm9wZXJ0eSBuYW1lIHRvIHJlc29sdmVcbiAqIEByZXR1cm5zIHsoKC4uLmFyZ3M6IGFueVtdKSA9PiBQcm9taXNlPGFueT4pICYgUHJveHlQcm9taXNlTWV0aG9kc30gQ2FsbGFibGUgcHJveHkgZm9yIG1ldGhvZCBvciBhdHRyaWJ1dGVcbiAqL1xuY29uc3QgcHJveHlQcm9wZXJ0eVNwYXduZXIgPSAocmVmZXJlbmNlLCBwcm9wKSA9PiB7XG4gIC8qKiBAdHlwZSB7KCguLi5hcmdzOiBhbnlbXSkgPT4gUHJvbWlzZTxhbnk+KSAmIFByb3h5UHJvbWlzZU1ldGhvZHN9ICovXG4gIGNvbnN0IG1ldGhvZFByb3h5ID0gLyoqIEB0eXBlIHthbnl9ICovICgoLi4uYXJncykgPT4gcmVmZXJlbmNlLmNhbGxNZXRob2QocHJvcCwgLi4uYXJncykpXG5cbiAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMobWV0aG9kUHJveHksIHtcbiAgICB0aGVuOiB7XG4gICAgICB2YWx1ZTogKHJlc29sdmUsIHJlamVjdCkgPT4gcmVmZXJlbmNlLnJlYWRBdHRyaWJ1dGVSZXN1bHQocHJvcCkudGhlbihyZXNvbHZlLCByZWplY3QpLFxuICAgICAgZW51bWVyYWJsZTogZmFsc2VcbiAgICB9LFxuICAgIGNhdGNoOiB7XG4gICAgICB2YWx1ZTogKHJlamVjdCkgPT4gcmVmZXJlbmNlLnJlYWRBdHRyaWJ1dGVSZXN1bHQocHJvcCkuY2F0Y2gocmVqZWN0KSxcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlXG4gICAgfSxcbiAgICBmaW5hbGx5OiB7XG4gICAgICB2YWx1ZTogKGNhbGxiYWNrKSA9PiByZWZlcmVuY2UucmVhZEF0dHJpYnV0ZVJlc3VsdChwcm9wKS5maW5hbGx5KGNhbGxiYWNrKSxcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlXG4gICAgfVxuICB9KVxuXG4gIHJldHVybiBtZXRob2RQcm94eVxufVxuXG5jb25zdCBwcm94eU9iamVjdEhhbmRsZXIgPSB7XG4gIC8qKlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4vcmVmZXJlbmNlLmpzXCIpLmRlZmF1bHR8KCgpID0+IGltcG9ydChcIi4vcmVmZXJlbmNlLmpzXCIpLmRlZmF1bHQpfSByZWZlcmVuY2UgUmVmZXJlbmNlIGluc3RhbmNlIG9yIGZhY3RvcnlcbiAgICogQHBhcmFtIHtzdHJpbmd9IHByb3AgUHJvcGVydHkgbmFtZSB0byByZXNvbHZlXG4gICAqIEByZXR1cm5zIHthbnl9IFByb3h5IHZhbHVlIGZvciB0aGUgcHJvcGVydHlcbiAgICovXG4gIGdldChyZWZlcmVuY2UsIHByb3ApIHtcbiAgICBpZiAodHlwZW9mIHJlZmVyZW5jZSA9PSBcImZ1bmN0aW9uXCIpIHJlZmVyZW5jZSA9IHJlZmVyZW5jZSgpXG5cbiAgICBpZiAocHJvcCA9PSBcIl9fc2VyaWFsaXplXCIpIHtcbiAgICAgIGNvbnN0IG1ldGhvZCA9IHJlZmVyZW5jZS5zZXJpYWxpemVcbiAgICAgIGNvbnN0IGJvdW5kTWV0aG9kID0gbWV0aG9kLmJpbmQocmVmZXJlbmNlKVxuXG4gICAgICByZXR1cm4gYm91bmRNZXRob2RcbiAgICB9XG5cbiAgICBpZiAocHJvcCA9PSBcInRoZW5cIiB8fCBwcm9wID09IFwiY2F0Y2hcIiB8fCBwcm9wID09IFwiZmluYWxseVwiKSByZXR1cm4gdW5kZWZpbmVkXG4gICAgaWYgKHByb3AgPT0gXCJhc3ltbWV0cmljTWF0Y2hcIiB8fCBwcm9wID09IFwiamFzbWluZVRvU3RyaW5nXCIpIHJldHVybiB1bmRlZmluZWRcblxuICAgIGlmICh0eXBlb2YgcHJvcCAhPT0gXCJzdHJpbmdcIikgcmV0dXJuIHVuZGVmaW5lZFxuXG4gICAgcmV0dXJuIHByb3h5UHJvcGVydHlTcGF3bmVyKHJlZmVyZW5jZSwgcHJvcClcbiAgfSxcblxuICAvKipcbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuL3JlZmVyZW5jZS5qc1wiKS5kZWZhdWx0fCgoKSA9PiBpbXBvcnQoXCIuL3JlZmVyZW5jZS5qc1wiKS5kZWZhdWx0KX0gcmVjZWl2ZXIgUHJveHkgcmVjZWl2ZXJcbiAgICogQHBhcmFtIHtzdHJpbmd9IHByb3AgUHJvcGVydHkgbmFtZSBiZWluZyBzZXRcbiAgICogQHBhcmFtIHthbnl9IG5ld1ZhbHVlIE5ldyB2YWx1ZSBmb3IgdGhlIHByb3BlcnR5XG4gICAqL1xuICBzZXQocmVjZWl2ZXIsIHByb3AsIG5ld1ZhbHVlKSB7XG4gICAgdm9pZCByZWNlaXZlclxuICAgIHZvaWQgcHJvcFxuICAgIHZvaWQgbmV3VmFsdWVcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJzZXQgcHJvcGVydHkgaXNuJ3Qgc3VwcG9ydGVkIHlldFwiKVxuICB9XG59XG5cbi8qKlxuICogQHBhcmFtIHthbnl9IHdyYXBwZWRPYmplY3QgVGFyZ2V0IHRvIHdyYXAgaW4gYSBwcm94eVxuICogQHJldHVybnMge1Byb3h5fSBQcm94eSB0aGF0IGZvcndhcmRzIHRvIHJlZmVyZW5jZXNcbiAqL1xuY29uc3QgcmVmZXJlbmNlUHJveHkgPSAod3JhcHBlZE9iamVjdCkgPT4gbmV3IFByb3h5KHdyYXBwZWRPYmplY3QsIHByb3h5T2JqZWN0SGFuZGxlcilcblxuZXhwb3J0IGRlZmF1bHQgcmVmZXJlbmNlUHJveHlcbiJdfQ==
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/** @typedef {import("./reference-proxy.js").Proxy} Proxy */
|
|
1
2
|
export default class Reference {
|
|
2
3
|
/**
|
|
3
4
|
* Creates a new Reference
|
|
@@ -8,37 +9,49 @@ export default class Reference {
|
|
|
8
9
|
client: any;
|
|
9
10
|
id: string;
|
|
10
11
|
/**
|
|
11
|
-
* Calls a method on the reference
|
|
12
|
+
* Calls a method on the reference and returns a proxy
|
|
12
13
|
* @param {string} methodName Method name to invoke
|
|
13
14
|
* @param {...any} args Arguments to pass to the method
|
|
14
|
-
* @returns {Promise<
|
|
15
|
+
* @returns {Promise<Proxy>} Proxy to the return value
|
|
16
|
+
*/
|
|
17
|
+
callMethod(methodName: string, ...args: any[]): Promise<Proxy>;
|
|
18
|
+
/**
|
|
19
|
+
* Calls a method on the reference and returns a reference
|
|
20
|
+
* @param {string} methodName Method name to invoke
|
|
21
|
+
* @param {...any} args Arguments to pass to the method
|
|
22
|
+
* @returns {Promise<Reference>} Reference to the return value
|
|
15
23
|
*/
|
|
16
|
-
|
|
24
|
+
callMethodReference(methodName: string, ...args: any[]): Promise<Reference>;
|
|
17
25
|
/**
|
|
18
|
-
* Calls a method on the reference
|
|
26
|
+
* Calls a method on the reference and returns the result directly
|
|
19
27
|
* @param {string} methodName Method name to invoke
|
|
20
28
|
* @param {...any} args Arguments to pass to the method
|
|
21
29
|
* @returns {Promise<any>} Result from the method call
|
|
22
30
|
*/
|
|
23
|
-
|
|
31
|
+
callMethodResult(methodName: string, ...args: any[]): Promise<any>;
|
|
24
32
|
/**
|
|
25
|
-
* Reads an attribute from the reference
|
|
26
|
-
* @param {string} attributeName Attribute name to read
|
|
27
|
-
* @
|
|
28
|
-
|
|
33
|
+
* Reads an attribute from the reference and returns a proxy
|
|
34
|
+
* @param {string | number} attributeName Attribute name to read
|
|
35
|
+
* @returns {Promise<Proxy>} Proxy to the attribute value
|
|
36
|
+
*/
|
|
37
|
+
readAttribute(attributeName: string | number): Promise<Proxy>;
|
|
38
|
+
/**
|
|
39
|
+
* Reads an attribute from the reference and returns a reference
|
|
40
|
+
* @param {string | number} attributeName Attribute name to read
|
|
41
|
+
* @returns {Promise<Reference>} Reference to the attribute value
|
|
29
42
|
*/
|
|
30
|
-
|
|
43
|
+
readAttributeReference(attributeName: string | number): Promise<Reference>;
|
|
31
44
|
/**
|
|
32
|
-
* Reads an attribute from the reference
|
|
33
|
-
* @param {string} attributeName Attribute name to read
|
|
34
|
-
* @param {...any} args Additional arguments
|
|
45
|
+
* Reads an attribute from the reference and returns the result directly
|
|
46
|
+
* @param {string | number} attributeName Attribute name to read
|
|
35
47
|
* @returns {Promise<any>} Attribute value
|
|
36
48
|
*/
|
|
37
|
-
|
|
49
|
+
readAttributeResult(attributeName: string | number): Promise<any>;
|
|
38
50
|
/**
|
|
39
51
|
* Serializes the reference and returns the result directly
|
|
40
52
|
* @returns {Promise<any>} Parsed JSON representation
|
|
41
53
|
*/
|
|
42
54
|
serialize(): Promise<any>;
|
|
43
55
|
}
|
|
56
|
+
export type Proxy = import("./reference-proxy.js").Proxy;
|
|
44
57
|
//# sourceMappingURL=reference.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reference.d.ts","sourceRoot":"","sources":["../../src/client/reference.js"],"names":[],"mappings":"AAEA;IACE;;;;OAIG;IACH,oBAHW,GAAG,MACH,MAAM,EAOhB;IAJC,YAAoB;IACpB,WAAY;IAKd;;;;;OAKG;IACH,uBAJW,MAAM,WACF,GAAG,EAAA,GACL,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"reference.d.ts","sourceRoot":"","sources":["../../src/client/reference.js"],"names":[],"mappings":"AAEA,4DAA4D;AAE5D;IACE;;;;OAIG;IACH,oBAHW,GAAG,MACH,MAAM,EAOhB;IAJC,YAAoB;IACpB,WAAY;IAKd;;;;;OAKG;IACH,uBAJW,MAAM,WACF,GAAG,EAAA,GACL,OAAO,CAAC,KAAK,CAAC,CAI1B;IAED;;;;;OAKG;IACH,gCAJW,MAAM,WACF,GAAG,EAAA,GACL,OAAO,CAAC,SAAS,CAAC,CAI9B;IAED;;;;;OAKG;IACH,6BAJW,MAAM,WACF,GAAG,EAAA,GACL,OAAO,CAAC,GAAG,CAAC,CAIxB;IAED;;;;OAIG;IACH,6BAHW,MAAM,GAAG,MAAM,GACb,OAAO,CAAC,KAAK,CAAC,CAI1B;IAED;;;;OAIG;IACH,sCAHW,MAAM,GAAG,MAAM,GACb,OAAO,CAAC,SAAS,CAAC,CAI9B;IAED;;;;OAIG;IACH,mCAHW,MAAM,GAAG,MAAM,GACb,OAAO,CAAC,GAAG,CAAC,CAIxB;IAED;;;OAGG;IACH,aAFa,OAAO,CAAC,GAAG,CAAC,CAIxB;CACF;oBA/Ea,OAAO,sBAAsB,EAAE,KAAK"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
// @ts-check
|
|
2
|
+
/** @typedef {import("./reference-proxy.js").Proxy} Proxy */
|
|
2
3
|
export default class Reference {
|
|
3
4
|
/**
|
|
4
5
|
* Creates a new Reference
|
|
@@ -12,40 +13,55 @@ export default class Reference {
|
|
|
12
13
|
throw new Error(`Invalid ID given: ${id}`);
|
|
13
14
|
}
|
|
14
15
|
/**
|
|
15
|
-
* Calls a method on the reference
|
|
16
|
+
* Calls a method on the reference and returns a proxy
|
|
16
17
|
* @param {string} methodName Method name to invoke
|
|
17
18
|
* @param {...any} args Arguments to pass to the method
|
|
18
|
-
* @returns {Promise<
|
|
19
|
+
* @returns {Promise<Proxy>} Proxy to the return value
|
|
19
20
|
*/
|
|
20
21
|
async callMethod(methodName, ...args) {
|
|
21
|
-
return await this.client.callMethodOnReference(this.id, methodName, ...args);
|
|
22
|
+
return await this.client.callMethodOnReference(this.id, methodName, { proxy: true }, ...args);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Calls a method on the reference and returns a reference
|
|
26
|
+
* @param {string} methodName Method name to invoke
|
|
27
|
+
* @param {...any} args Arguments to pass to the method
|
|
28
|
+
* @returns {Promise<Reference>} Reference to the return value
|
|
29
|
+
*/
|
|
30
|
+
async callMethodReference(methodName, ...args) {
|
|
31
|
+
return await this.client.callMethodOnReference(this.id, methodName, { reference: true }, ...args);
|
|
22
32
|
}
|
|
23
33
|
/**
|
|
24
|
-
* Calls a method on the reference
|
|
34
|
+
* Calls a method on the reference and returns the result directly
|
|
25
35
|
* @param {string} methodName Method name to invoke
|
|
26
36
|
* @param {...any} args Arguments to pass to the method
|
|
27
37
|
* @returns {Promise<any>} Result from the method call
|
|
28
38
|
*/
|
|
29
|
-
async
|
|
30
|
-
return await this.client.
|
|
39
|
+
async callMethodResult(methodName, ...args) {
|
|
40
|
+
return await this.client.callMethodOnReference(this.id, methodName, { result: true }, ...args);
|
|
31
41
|
}
|
|
32
42
|
/**
|
|
33
|
-
* Reads an attribute from the reference
|
|
34
|
-
* @param {string} attributeName Attribute name to read
|
|
35
|
-
* @
|
|
36
|
-
|
|
43
|
+
* Reads an attribute from the reference and returns a proxy
|
|
44
|
+
* @param {string | number} attributeName Attribute name to read
|
|
45
|
+
* @returns {Promise<Proxy>} Proxy to the attribute value
|
|
46
|
+
*/
|
|
47
|
+
async readAttribute(attributeName) {
|
|
48
|
+
return await this.client.readAttributeOnReference(this.id, { proxy: true }, attributeName);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Reads an attribute from the reference and returns a reference
|
|
52
|
+
* @param {string | number} attributeName Attribute name to read
|
|
53
|
+
* @returns {Promise<Reference>} Reference to the attribute value
|
|
37
54
|
*/
|
|
38
|
-
async
|
|
39
|
-
return await this.client.readAttributeOnReference(this.id,
|
|
55
|
+
async readAttributeReference(attributeName) {
|
|
56
|
+
return await this.client.readAttributeOnReference(this.id, { reference: true }, attributeName);
|
|
40
57
|
}
|
|
41
58
|
/**
|
|
42
|
-
* Reads an attribute from the reference
|
|
43
|
-
* @param {string} attributeName Attribute name to read
|
|
44
|
-
* @param {...any} args Additional arguments
|
|
59
|
+
* Reads an attribute from the reference and returns the result directly
|
|
60
|
+
* @param {string | number} attributeName Attribute name to read
|
|
45
61
|
* @returns {Promise<any>} Attribute value
|
|
46
62
|
*/
|
|
47
|
-
async
|
|
48
|
-
return await this.client.
|
|
63
|
+
async readAttributeResult(attributeName) {
|
|
64
|
+
return await this.client.readAttributeOnReference(this.id, { result: true }, attributeName);
|
|
49
65
|
}
|
|
50
66
|
/**
|
|
51
67
|
* Serializes the reference and returns the result directly
|
|
@@ -55,4 +71,4 @@ export default class Reference {
|
|
|
55
71
|
return await this.client.serializeReference(this.id);
|
|
56
72
|
}
|
|
57
73
|
}
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmZXJlbmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC9yZWZlcmVuY2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLDREQUE0RDtBQUU1RCxNQUFNLENBQUMsT0FBTyxPQUFPLFNBQVM7SUFDNUI7Ozs7T0FJRztJQUNILFlBQVksTUFBTSxFQUFFLEVBQUU7UUFDcEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUE7UUFDcEIsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUE7UUFFWixJQUFJLENBQUMsRUFBRTtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFDckQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsS0FBSyxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsR0FBRyxJQUFJO1FBQ2xDLE9BQU8sTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsVUFBVSxFQUFFLEVBQUMsS0FBSyxFQUFFLElBQUksRUFBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUE7SUFDN0YsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsS0FBSyxDQUFDLG1CQUFtQixDQUFDLFVBQVUsRUFBRSxHQUFHLElBQUk7UUFDM0MsT0FBTyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxVQUFVLEVBQUUsRUFBQyxTQUFTLEVBQUUsSUFBSSxFQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQTtJQUNqRyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxLQUFLLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxFQUFFLEdBQUcsSUFBSTtRQUN4QyxPQUFPLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLFVBQVUsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFBO0lBQzlGLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLGFBQWEsQ0FBQyxhQUFhO1FBQy9CLE9BQU8sTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBQyxLQUFLLEVBQUUsSUFBSSxFQUFDLEVBQUUsYUFBYSxDQUFDLENBQUE7SUFDMUYsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsc0JBQXNCLENBQUMsYUFBYTtRQUN4QyxPQUFPLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUMsU0FBUyxFQUFFLElBQUksRUFBQyxFQUFFLGFBQWEsQ0FBQyxDQUFBO0lBQzlGLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLG1CQUFtQixDQUFDLGFBQWE7UUFDckMsT0FBTyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQTtJQUMzRixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLFNBQVM7UUFDYixPQUFPLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUE7SUFDdEQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbi8qKiBAdHlwZWRlZiB7aW1wb3J0KFwiLi9yZWZlcmVuY2UtcHJveHkuanNcIikuUHJveHl9IFByb3h5ICovXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJlZmVyZW5jZSB7XG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IFJlZmVyZW5jZVxuICAgKiBAcGFyYW0ge2FueX0gY2xpZW50IFRoZSBjbGllbnQgaW5zdGFuY2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IGlkIFRoZSByZWZlcmVuY2UgSURcbiAgICovXG4gIGNvbnN0cnVjdG9yKGNsaWVudCwgaWQpIHtcbiAgICB0aGlzLmNsaWVudCA9IGNsaWVudFxuICAgIHRoaXMuaWQgPSBpZFxuXG4gICAgaWYgKCFpZCkgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIElEIGdpdmVuOiAke2lkfWApXG4gIH1cblxuICAvKipcbiAgICogQ2FsbHMgYSBtZXRob2Qgb24gdGhlIHJlZmVyZW5jZSBhbmQgcmV0dXJucyBhIHByb3h5XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBtZXRob2ROYW1lIE1ldGhvZCBuYW1lIHRvIGludm9rZVxuICAgKiBAcGFyYW0gIHsuLi5hbnl9IGFyZ3MgQXJndW1lbnRzIHRvIHBhc3MgdG8gdGhlIG1ldGhvZFxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxQcm94eT59IFByb3h5IHRvIHRoZSByZXR1cm4gdmFsdWVcbiAgICovXG4gIGFzeW5jIGNhbGxNZXRob2QobWV0aG9kTmFtZSwgLi4uYXJncykge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmNsaWVudC5jYWxsTWV0aG9kT25SZWZlcmVuY2UodGhpcy5pZCwgbWV0aG9kTmFtZSwge3Byb3h5OiB0cnVlfSwgLi4uYXJncylcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxscyBhIG1ldGhvZCBvbiB0aGUgcmVmZXJlbmNlIGFuZCByZXR1cm5zIGEgcmVmZXJlbmNlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBtZXRob2ROYW1lIE1ldGhvZCBuYW1lIHRvIGludm9rZVxuICAgKiBAcGFyYW0gIHsuLi5hbnl9IGFyZ3MgQXJndW1lbnRzIHRvIHBhc3MgdG8gdGhlIG1ldGhvZFxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxSZWZlcmVuY2U+fSBSZWZlcmVuY2UgdG8gdGhlIHJldHVybiB2YWx1ZVxuICAgKi9cbiAgYXN5bmMgY2FsbE1ldGhvZFJlZmVyZW5jZShtZXRob2ROYW1lLCAuLi5hcmdzKSB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuY2xpZW50LmNhbGxNZXRob2RPblJlZmVyZW5jZSh0aGlzLmlkLCBtZXRob2ROYW1lLCB7cmVmZXJlbmNlOiB0cnVlfSwgLi4uYXJncylcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxscyBhIG1ldGhvZCBvbiB0aGUgcmVmZXJlbmNlIGFuZCByZXR1cm5zIHRoZSByZXN1bHQgZGlyZWN0bHlcbiAgICogQHBhcmFtIHtzdHJpbmd9IG1ldGhvZE5hbWUgTWV0aG9kIG5hbWUgdG8gaW52b2tlXG4gICAqIEBwYXJhbSAgey4uLmFueX0gYXJncyBBcmd1bWVudHMgdG8gcGFzcyB0byB0aGUgbWV0aG9kXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGFueT59IFJlc3VsdCBmcm9tIHRoZSBtZXRob2QgY2FsbFxuICAgKi9cbiAgYXN5bmMgY2FsbE1ldGhvZFJlc3VsdChtZXRob2ROYW1lLCAuLi5hcmdzKSB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuY2xpZW50LmNhbGxNZXRob2RPblJlZmVyZW5jZSh0aGlzLmlkLCBtZXRob2ROYW1lLCB7cmVzdWx0OiB0cnVlfSwgLi4uYXJncylcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWFkcyBhbiBhdHRyaWJ1dGUgZnJvbSB0aGUgcmVmZXJlbmNlIGFuZCByZXR1cm5zIGEgcHJveHlcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudW1iZXJ9IGF0dHJpYnV0ZU5hbWUgQXR0cmlidXRlIG5hbWUgdG8gcmVhZFxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxQcm94eT59IFByb3h5IHRvIHRoZSBhdHRyaWJ1dGUgdmFsdWVcbiAgICovXG4gIGFzeW5jIHJlYWRBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSkge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmNsaWVudC5yZWFkQXR0cmlidXRlT25SZWZlcmVuY2UodGhpcy5pZCwge3Byb3h5OiB0cnVlfSwgYXR0cmlidXRlTmFtZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWFkcyBhbiBhdHRyaWJ1dGUgZnJvbSB0aGUgcmVmZXJlbmNlIGFuZCByZXR1cm5zIGEgcmVmZXJlbmNlXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVtYmVyfSBhdHRyaWJ1dGVOYW1lIEF0dHJpYnV0ZSBuYW1lIHRvIHJlYWRcbiAgICogQHJldHVybnMge1Byb21pc2U8UmVmZXJlbmNlPn0gUmVmZXJlbmNlIHRvIHRoZSBhdHRyaWJ1dGUgdmFsdWVcbiAgICovXG4gIGFzeW5jIHJlYWRBdHRyaWJ1dGVSZWZlcmVuY2UoYXR0cmlidXRlTmFtZSkge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmNsaWVudC5yZWFkQXR0cmlidXRlT25SZWZlcmVuY2UodGhpcy5pZCwge3JlZmVyZW5jZTogdHJ1ZX0sIGF0dHJpYnV0ZU5hbWUpXG4gIH1cblxuICAvKipcbiAgICogUmVhZHMgYW4gYXR0cmlidXRlIGZyb20gdGhlIHJlZmVyZW5jZSBhbmQgcmV0dXJucyB0aGUgcmVzdWx0IGRpcmVjdGx5XG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVtYmVyfSBhdHRyaWJ1dGVOYW1lIEF0dHJpYnV0ZSBuYW1lIHRvIHJlYWRcbiAgICogQHJldHVybnMge1Byb21pc2U8YW55Pn0gQXR0cmlidXRlIHZhbHVlXG4gICAqL1xuICBhc3luYyByZWFkQXR0cmlidXRlUmVzdWx0KGF0dHJpYnV0ZU5hbWUpIHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5jbGllbnQucmVhZEF0dHJpYnV0ZU9uUmVmZXJlbmNlKHRoaXMuaWQsIHtyZXN1bHQ6IHRydWV9LCBhdHRyaWJ1dGVOYW1lKVxuICB9XG5cbiAgLyoqXG4gICAqIFNlcmlhbGl6ZXMgdGhlIHJlZmVyZW5jZSBhbmQgcmV0dXJucyB0aGUgcmVzdWx0IGRpcmVjdGx5XG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGFueT59IFBhcnNlZCBKU09OIHJlcHJlc2VudGF0aW9uXG4gICAqL1xuICBhc3luYyBzZXJpYWxpemUoKSB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuY2xpZW50LnNlcmlhbGl6ZVJlZmVyZW5jZSh0aGlzLmlkKVxuICB9XG59XG4iXX0=
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "scoundrel-remote-eval",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.21",
|
|
5
5
|
"description": "",
|
|
6
6
|
"main": "build/index.js",
|
|
7
7
|
"types": "build/index.d.ts",
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"@types/jasmine": "^5.1.13",
|
|
36
36
|
"@types/node": "^25.0.2",
|
|
37
37
|
"eslint": "^9.39.2",
|
|
38
|
-
"eslint-plugin-jsdoc": "^
|
|
38
|
+
"eslint-plugin-jsdoc": "^61.5.0",
|
|
39
39
|
"globals": "^16.5.0",
|
|
40
40
|
"jasmine": "^5.1.0",
|
|
41
41
|
"typescript": "^5.9.3"
|