@xyo-network/bowser-system-info-plugin 2.42.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/LICENSE +165 -0
- package/README.md +81 -0
- package/dist/cjs/Config.d.ts +7 -0
- package/dist/cjs/Config.d.ts.map +1 -0
- package/dist/cjs/Config.js +5 -0
- package/dist/cjs/Config.js.map +1 -0
- package/dist/cjs/Plugin.d.ts +15 -0
- package/dist/cjs/Plugin.d.ts.map +1 -0
- package/dist/cjs/Plugin.js +16 -0
- package/dist/cjs/Plugin.js.map +1 -0
- package/dist/cjs/Witness.d.ts +14 -0
- package/dist/cjs/Witness.d.ts.map +1 -0
- package/dist/cjs/Witness.js +30 -0
- package/dist/cjs/Witness.js.map +1 -0
- package/dist/cjs/index.d.ts +6 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +11 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/docs.json +5023 -0
- package/dist/esm/Config.d.ts +7 -0
- package/dist/esm/Config.d.ts.map +1 -0
- package/dist/esm/Config.js +2 -0
- package/dist/esm/Config.js.map +1 -0
- package/dist/esm/Plugin.d.ts +15 -0
- package/dist/esm/Plugin.d.ts.map +1 -0
- package/dist/esm/Plugin.js +11 -0
- package/dist/esm/Plugin.js.map +1 -0
- package/dist/esm/Witness.d.ts +14 -0
- package/dist/esm/Witness.d.ts.map +1 -0
- package/dist/esm/Witness.js +20 -0
- package/dist/esm/Witness.js.map +1 -0
- package/dist/esm/index.d.ts +6 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +7 -0
- package/dist/esm/index.js.map +1 -0
- package/package.json +59 -0
- package/src/Config.ts +8 -0
- package/src/Plugin.spec.ts +13 -0
- package/src/Plugin.ts +18 -0
- package/src/Witness.spec.ts +38 -0
- package/src/Witness.ts +27 -0
- package/src/index.ts +9 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { XyoWitnessConfig } from '@xyo-network/witness';
|
|
2
|
+
export type XyoBowserSystemInfoWitnessConfigSchema = 'network.xyo.system.info.witness.bowser.config';
|
|
3
|
+
export declare const XyoBowserSystemInfoWitnessConfigSchema: XyoBowserSystemInfoWitnessConfigSchema;
|
|
4
|
+
export type XyoBowserSystemInfoWitnessConfig = XyoWitnessConfig<{
|
|
5
|
+
schema: XyoBowserSystemInfoWitnessConfigSchema;
|
|
6
|
+
}>;
|
|
7
|
+
//# sourceMappingURL=Config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../../src/Config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAEvD,MAAM,MAAM,sCAAsC,GAAG,+CAA+C,CAAA;AACpG,eAAO,MAAM,sCAAsC,EAAE,sCAAwF,CAAA;AAE7I,MAAM,MAAM,gCAAgC,GAAG,gBAAgB,CAAC;IAC9D,MAAM,EAAE,sCAAsC,CAAA;CAC/C,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Config.js","sourceRoot":"","sources":["../../src/Config.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,sCAAsC,GAA2C,+CAA+C,CAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { XyoModuleParams } from '@xyo-network/module';
|
|
2
|
+
import { PayloadSetWitnessPlugin } from '@xyo-network/payloadset-plugin';
|
|
3
|
+
export declare const XyoBowserSystemInfoPlugin: () => PayloadSetWitnessPlugin<XyoModuleParams<import("@xyo-network/payload").SchemaFields & import("@xyo-network/payload").PayloadFields & {
|
|
4
|
+
security?: {
|
|
5
|
+
allowed?: Record<string, string[][]> | undefined;
|
|
6
|
+
disallowed?: Record<string, string[]> | undefined;
|
|
7
|
+
} | undefined;
|
|
8
|
+
} & {
|
|
9
|
+
schema: "network.xyo.system.info.witness.bowser.config";
|
|
10
|
+
} & {
|
|
11
|
+
targetSet?: (import("@xyo-network/payload").SchemaFields & import("@xyo-network/payload").PayloadFields & import("@xyo-network/payload").PayloadSet & {
|
|
12
|
+
schema: "network.xyo.payload.set";
|
|
13
|
+
}) | undefined;
|
|
14
|
+
}>>;
|
|
15
|
+
//# sourceMappingURL=Plugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Plugin.d.ts","sourceRoot":"","sources":["../../src/Plugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAErD,OAAO,EAA0B,uBAAuB,EAAE,MAAM,gCAAgC,CAAA;AAKhG,eAAO,MAAM,yBAAyB;;;;;;;;;;;GASnC,CAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { XyoBowserSystemInfoSchema } from '@xyo-network/bowser-system-info-payload-plugin';
|
|
2
|
+
import { PayloadSetSchema } from '@xyo-network/payload';
|
|
3
|
+
import { createPayloadSetPlugin } from '@xyo-network/payloadset-plugin';
|
|
4
|
+
import { XyoBowserSystemInfoWitness } from './Witness';
|
|
5
|
+
export const XyoBowserSystemInfoPlugin = () => createPayloadSetPlugin({ required: { [XyoBowserSystemInfoSchema]: 1 }, schema: PayloadSetSchema }, {
|
|
6
|
+
witness: async (params) => {
|
|
7
|
+
const result = await XyoBowserSystemInfoWitness.create(params);
|
|
8
|
+
return result;
|
|
9
|
+
},
|
|
10
|
+
});
|
|
11
|
+
//# sourceMappingURL=Plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Plugin.js","sourceRoot":"","sources":["../../src/Plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,gDAAgD,CAAA;AAE1F,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,sBAAsB,EAA2B,MAAM,gCAAgC,CAAA;AAGhG,OAAO,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAA;AAEtD,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,EAAE,CAC5C,sBAAsB,CACpB,EAAE,QAAQ,EAAE,EAAE,CAAC,yBAAyB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAC1E;IACE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QACxB,MAAM,MAAM,GAAG,MAAM,0BAA0B,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAC9D,OAAO,MAAM,CAAA;IACf,CAAC;CACF,CACF,CAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { XyoBowserSystemInfoPayload } from '@xyo-network/bowser-system-info-payload-plugin';
|
|
2
|
+
import { XyoModuleParams } from '@xyo-network/module';
|
|
3
|
+
import { AbstractWitness } from '@xyo-network/witness';
|
|
4
|
+
import Bowser from 'bowser';
|
|
5
|
+
import { XyoBowserSystemInfoWitnessConfig } from './Config';
|
|
6
|
+
export declare class XyoBowserSystemInfoWitness<T extends XyoBowserSystemInfoPayload = XyoBowserSystemInfoPayload> extends AbstractWitness<XyoBowserSystemInfoWitnessConfig> {
|
|
7
|
+
static configSchema: "network.xyo.system.info.witness.bowser.config";
|
|
8
|
+
protected get bowser(): Bowser.Parser.ParsedResult;
|
|
9
|
+
static create(params?: XyoModuleParams<XyoBowserSystemInfoWitnessConfig>): Promise<XyoBowserSystemInfoWitness>;
|
|
10
|
+
observe(payloads?: T[]): import("@xyo-network/promise").Promisable<(import("@xyo-network/payload").SchemaFields & import("@xyo-network/payload").PayloadFields & {
|
|
11
|
+
schema: string;
|
|
12
|
+
})[], never>;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=Witness.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Witness.d.ts","sourceRoot":"","sources":["../../src/Witness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAA6B,MAAM,gDAAgD,CAAA;AACtH,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,MAAM,MAAM,QAAQ,CAAA;AAG3B,OAAO,EAAE,gCAAgC,EAA0C,MAAM,UAAU,CAAA;AAEnG,qBAAa,0BAA0B,CACrC,CAAC,SAAS,0BAA0B,GAAG,0BAA0B,CACjE,SAAQ,eAAe,CAAC,gCAAgC,CAAC;IACzD,OAAgB,YAAY,kDAAyC;IAErE,SAAS,KAAK,MAAM,+BAInB;WAEqB,MAAM,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC,gCAAgC,CAAC,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAIpH,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;;;CAGhC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { XyoBowserSystemInfoSchema } from '@xyo-network/bowser-system-info-payload-plugin';
|
|
2
|
+
import { AbstractWitness } from '@xyo-network/witness';
|
|
3
|
+
import Bowser from 'bowser';
|
|
4
|
+
import merge from 'lodash/merge';
|
|
5
|
+
import { XyoBowserSystemInfoWitnessConfigSchema } from './Config';
|
|
6
|
+
export class XyoBowserSystemInfoWitness extends AbstractWitness {
|
|
7
|
+
static configSchema = XyoBowserSystemInfoWitnessConfigSchema;
|
|
8
|
+
get bowser() {
|
|
9
|
+
// we do this to fix importing in node-esm
|
|
10
|
+
// eslint-disable-next-line import/no-named-as-default-member
|
|
11
|
+
return Bowser.parse(window.navigator.userAgent);
|
|
12
|
+
}
|
|
13
|
+
static async create(params) {
|
|
14
|
+
return (await super.create(params));
|
|
15
|
+
}
|
|
16
|
+
observe(payloads) {
|
|
17
|
+
return super.observe([merge({ bowser: this.bowser }, payloads?.[0], { schema: XyoBowserSystemInfoSchema })]);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=Witness.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Witness.js","sourceRoot":"","sources":["../../src/Witness.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,yBAAyB,EAAE,MAAM,gDAAgD,CAAA;AAEtH,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,MAAM,MAAM,QAAQ,CAAA;AAC3B,OAAO,KAAK,MAAM,cAAc,CAAA;AAEhC,OAAO,EAAoC,sCAAsC,EAAE,MAAM,UAAU,CAAA;AAEnG,MAAM,OAAO,0BAEX,SAAQ,eAAiD;IACzD,MAAM,CAAU,YAAY,GAAG,sCAAsC,CAAA;IAErE,IAAc,MAAM;QAClB,0CAA0C;QAC1C,6DAA6D;QAC7D,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;IACjD,CAAC;IAED,MAAM,CAAU,KAAK,CAAC,MAAM,CAAC,MAA0D;QACrF,OAAO,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAA+B,CAAA;IACnE,CAAC;IAEQ,OAAO,CAAC,QAAc;QAC7B,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,yBAAyB,EAAE,CAAC,CAAC,CAAC,CAAA;IAC9G,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAA;AAEpD,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AAEzB,OAAO,EAAE,yBAAyB,EAAE,CAAA;AAGpC,eAAe,yBAAyB,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { XyoBowserSystemInfoPlugin } from './Plugin';
|
|
2
|
+
export * from './Config';
|
|
3
|
+
export * from './Witness';
|
|
4
|
+
export { XyoBowserSystemInfoPlugin };
|
|
5
|
+
// eslint-disable-next-line import/no-default-export
|
|
6
|
+
export default XyoBowserSystemInfoPlugin;
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAA;AAEpD,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AAEzB,OAAO,EAAE,yBAAyB,EAAE,CAAA;AAEpC,oDAAoD;AACpD,eAAe,yBAAyB,CAAA"}
|
package/package.json
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@xyo-network/bowser-system-info-plugin",
|
|
3
|
+
"author": {
|
|
4
|
+
"email": "support@xyo.network",
|
|
5
|
+
"name": "XYO Development Team",
|
|
6
|
+
"url": "https://xyo.network"
|
|
7
|
+
},
|
|
8
|
+
"bugs": {
|
|
9
|
+
"email": "support@xyo.network",
|
|
10
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/issues"
|
|
11
|
+
},
|
|
12
|
+
"dependencies": {
|
|
13
|
+
"@xyo-network/bowser-system-info-payload-plugin": "^2.42.0",
|
|
14
|
+
"@xyo-network/module": "^2.42.0",
|
|
15
|
+
"@xyo-network/payload": "^2.42.0",
|
|
16
|
+
"@xyo-network/payloadset-plugin": "^2.42.0",
|
|
17
|
+
"@xyo-network/witness": "^2.42.0",
|
|
18
|
+
"bowser": "^2.11.0",
|
|
19
|
+
"lodash": "^4.17.21",
|
|
20
|
+
"tslib": "^2.4.1"
|
|
21
|
+
},
|
|
22
|
+
"devDependencies": {
|
|
23
|
+
"@types/lodash": "^4.14.191"
|
|
24
|
+
},
|
|
25
|
+
"description": "Primary SDK for using XYO Protocol 2.0",
|
|
26
|
+
"browser": "dist/esm/index.js",
|
|
27
|
+
"docs": "dist/docs.json",
|
|
28
|
+
"exports": {
|
|
29
|
+
".": {
|
|
30
|
+
"node": {
|
|
31
|
+
"import": "./dist/esm/index.js",
|
|
32
|
+
"require": "./dist/cjs/index.js"
|
|
33
|
+
},
|
|
34
|
+
"browser": {
|
|
35
|
+
"import": "./dist/esm/index.js",
|
|
36
|
+
"require": "./dist/cjs/index.js"
|
|
37
|
+
},
|
|
38
|
+
"default": "./dist/esm/index.js"
|
|
39
|
+
},
|
|
40
|
+
"./dist/docs.json": {
|
|
41
|
+
"default": "./dist/docs.json"
|
|
42
|
+
},
|
|
43
|
+
"./package.json": "./package.json"
|
|
44
|
+
},
|
|
45
|
+
"main": "dist/cjs/index.js",
|
|
46
|
+
"module": "dist/esm/index.js",
|
|
47
|
+
"homepage": "https://xyo.network",
|
|
48
|
+
"license": "LGPL-3.0-only",
|
|
49
|
+
"publishConfig": {
|
|
50
|
+
"access": "public"
|
|
51
|
+
},
|
|
52
|
+
"repository": {
|
|
53
|
+
"type": "git",
|
|
54
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js.git"
|
|
55
|
+
},
|
|
56
|
+
"sideEffects": false,
|
|
57
|
+
"types": "dist/esm/index.d.ts",
|
|
58
|
+
"version": "2.42.0"
|
|
59
|
+
}
|
package/src/Config.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { XyoWitnessConfig } from '@xyo-network/witness'
|
|
2
|
+
|
|
3
|
+
export type XyoBowserSystemInfoWitnessConfigSchema = 'network.xyo.system.info.witness.bowser.config'
|
|
4
|
+
export const XyoBowserSystemInfoWitnessConfigSchema: XyoBowserSystemInfoWitnessConfigSchema = 'network.xyo.system.info.witness.bowser.config'
|
|
5
|
+
|
|
6
|
+
export type XyoBowserSystemInfoWitnessConfig = XyoWitnessConfig<{
|
|
7
|
+
schema: XyoBowserSystemInfoWitnessConfigSchema
|
|
8
|
+
}>
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { XyoBowserSystemInfoSchema } from '@xyo-network/bowser-system-info-payload-plugin'
|
|
2
|
+
import { PayloadSetPluginResolver } from '@xyo-network/payloadset-plugin'
|
|
3
|
+
|
|
4
|
+
import { XyoBowserSystemInfoPlugin } from './Plugin'
|
|
5
|
+
|
|
6
|
+
describe('XyoBowserSystemInfoPlugin', () => {
|
|
7
|
+
test('Add to Resolver', () => {
|
|
8
|
+
const plugin = XyoBowserSystemInfoPlugin()
|
|
9
|
+
const resolver = new PayloadSetPluginResolver().register(plugin)
|
|
10
|
+
expect(resolver.resolve(plugin.set)).toBeObject()
|
|
11
|
+
expect(resolver.witness(XyoBowserSystemInfoSchema)).toBeObject()
|
|
12
|
+
})
|
|
13
|
+
})
|
package/src/Plugin.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { XyoBowserSystemInfoSchema } from '@xyo-network/bowser-system-info-payload-plugin'
|
|
2
|
+
import { XyoModuleParams } from '@xyo-network/module'
|
|
3
|
+
import { PayloadSetSchema } from '@xyo-network/payload'
|
|
4
|
+
import { createPayloadSetPlugin, PayloadSetWitnessPlugin } from '@xyo-network/payloadset-plugin'
|
|
5
|
+
|
|
6
|
+
import { XyoBowserSystemInfoWitnessConfig } from './Config'
|
|
7
|
+
import { XyoBowserSystemInfoWitness } from './Witness'
|
|
8
|
+
|
|
9
|
+
export const XyoBowserSystemInfoPlugin = () =>
|
|
10
|
+
createPayloadSetPlugin<PayloadSetWitnessPlugin<XyoModuleParams<XyoBowserSystemInfoWitnessConfig>>>(
|
|
11
|
+
{ required: { [XyoBowserSystemInfoSchema]: 1 }, schema: PayloadSetSchema },
|
|
12
|
+
{
|
|
13
|
+
witness: async (params) => {
|
|
14
|
+
const result = await XyoBowserSystemInfoWitness.create(params)
|
|
15
|
+
return result
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
)
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @jest-environment jsdom
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import { XyoBowserSystemInfoSchema } from '@xyo-network/bowser-system-info-payload-plugin'
|
|
6
|
+
import { PayloadWrapper } from '@xyo-network/payload'
|
|
7
|
+
import crypto from 'crypto'
|
|
8
|
+
|
|
9
|
+
import { XyoBowserSystemInfoWitnessConfigSchema } from './Config'
|
|
10
|
+
import { XyoBowserSystemInfoWitness } from './Witness'
|
|
11
|
+
|
|
12
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
13
|
+
const cryptoPolyfill = (window: Window & typeof globalThis) => {
|
|
14
|
+
window.crypto = window.crypto ?? {
|
|
15
|
+
getRandomValues: (arr: []) => crypto.randomBytes(arr.length),
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
cryptoPolyfill(window)
|
|
20
|
+
|
|
21
|
+
describe('XyoBowserSystemInfo', () => {
|
|
22
|
+
test('observe', async () => {
|
|
23
|
+
const witness = await XyoBowserSystemInfoWitness.create({
|
|
24
|
+
config: {
|
|
25
|
+
schema: XyoBowserSystemInfoWitnessConfigSchema,
|
|
26
|
+
},
|
|
27
|
+
})
|
|
28
|
+
const [observation] = await witness.observe()
|
|
29
|
+
expect(observation.schema).toBe(XyoBowserSystemInfoSchema)
|
|
30
|
+
expect(new PayloadWrapper(observation).valid).toBe(true)
|
|
31
|
+
})
|
|
32
|
+
test('observe [no config]', async () => {
|
|
33
|
+
const witness = await XyoBowserSystemInfoWitness.create()
|
|
34
|
+
const [observation] = await witness.observe()
|
|
35
|
+
expect(observation.schema).toBe(XyoBowserSystemInfoSchema)
|
|
36
|
+
expect(new PayloadWrapper(observation).valid).toBe(true)
|
|
37
|
+
})
|
|
38
|
+
})
|
package/src/Witness.ts
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { XyoBowserSystemInfoPayload, XyoBowserSystemInfoSchema } from '@xyo-network/bowser-system-info-payload-plugin'
|
|
2
|
+
import { XyoModuleParams } from '@xyo-network/module'
|
|
3
|
+
import { AbstractWitness } from '@xyo-network/witness'
|
|
4
|
+
import Bowser from 'bowser'
|
|
5
|
+
import merge from 'lodash/merge'
|
|
6
|
+
|
|
7
|
+
import { XyoBowserSystemInfoWitnessConfig, XyoBowserSystemInfoWitnessConfigSchema } from './Config'
|
|
8
|
+
|
|
9
|
+
export class XyoBowserSystemInfoWitness<
|
|
10
|
+
T extends XyoBowserSystemInfoPayload = XyoBowserSystemInfoPayload,
|
|
11
|
+
> extends AbstractWitness<XyoBowserSystemInfoWitnessConfig> {
|
|
12
|
+
static override configSchema = XyoBowserSystemInfoWitnessConfigSchema
|
|
13
|
+
|
|
14
|
+
protected get bowser() {
|
|
15
|
+
// we do this to fix importing in node-esm
|
|
16
|
+
// eslint-disable-next-line import/no-named-as-default-member
|
|
17
|
+
return Bowser.parse(window.navigator.userAgent)
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
static override async create(params?: XyoModuleParams<XyoBowserSystemInfoWitnessConfig>): Promise<XyoBowserSystemInfoWitness> {
|
|
21
|
+
return (await super.create(params)) as XyoBowserSystemInfoWitness
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
override observe(payloads?: T[]) {
|
|
25
|
+
return super.observe([merge({ bowser: this.bowser }, payloads?.[0], { schema: XyoBowserSystemInfoSchema })])
|
|
26
|
+
}
|
|
27
|
+
}
|
package/src/index.ts
ADDED