@xyo-network/id-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.
@@ -0,0 +1,16 @@
1
+ import { XyoModuleParams } from '@xyo-network/module';
2
+ import { PayloadSetWitnessPlugin } from '@xyo-network/payloadset-plugin';
3
+ export declare const IdPlugin: () => 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
+ salt: string;
10
+ schema: "network.xyo.id.witness.config";
11
+ } & {
12
+ targetSet?: (import("@xyo-network/payload").SchemaFields & import("@xyo-network/payload").PayloadFields & import("@xyo-network/payload").PayloadSet & {
13
+ schema: "network.xyo.payload.set";
14
+ }) | undefined;
15
+ }>>;
16
+ //# 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;AAIhG,eAAO,MAAM,QAAQ;;;;;;;;;;;;GASlB,CAAA"}
@@ -0,0 +1,11 @@
1
+ import { IdSchema } from '@xyo-network/id-payload-plugin';
2
+ import { PayloadSetSchema } from '@xyo-network/payload';
3
+ import { createPayloadSetPlugin } from '@xyo-network/payloadset-plugin';
4
+ import { IdWitness } from './Witness';
5
+ export const IdPlugin = () => createPayloadSetPlugin({ required: { [IdSchema]: 1 }, schema: PayloadSetSchema }, {
6
+ witness: async (params) => {
7
+ const result = await IdWitness.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,QAAQ,EAAE,MAAM,gCAAgC,CAAA;AAEzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,sBAAsB,EAA2B,MAAM,gCAAgC,CAAA;AAEhG,OAAO,EAAE,SAAS,EAAmB,MAAM,WAAW,CAAA;AAEtD,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,EAAE,CAC3B,sBAAsB,CACpB,EAAE,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,EACzD;IACE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QACxB,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAC7C,OAAO,MAAM,CAAA;IACf,CAAC;CACF,CACF,CAAA"}
@@ -0,0 +1,17 @@
1
+ import { IdPayload } from '@xyo-network/id-payload-plugin';
2
+ import { XyoModuleParams } from '@xyo-network/module';
3
+ import { XyoPayload } from '@xyo-network/payload';
4
+ import { AbstractWitness, XyoWitnessConfig } from '@xyo-network/witness';
5
+ export type IdWitnessConfigSchema = 'network.xyo.id.witness.config';
6
+ export declare const IdWitnessConfigSchema: IdWitnessConfigSchema;
7
+ export type IdWitnessConfig = XyoWitnessConfig<{
8
+ salt: string;
9
+ schema: IdWitnessConfigSchema;
10
+ }>;
11
+ export declare class IdWitness extends AbstractWitness<IdWitnessConfig> {
12
+ static configSchema: "network.xyo.id.witness.config";
13
+ get salt(): string;
14
+ static create(params?: XyoModuleParams<IdWitnessConfig>): Promise<IdWitness>;
15
+ observe(payloads?: IdPayload[]): Promise<XyoPayload[]>;
16
+ }
17
+ //# 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,SAAS,EAAY,MAAM,gCAAgC,CAAA;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAExE,MAAM,MAAM,qBAAqB,GAAG,+BAA+B,CAAA;AACnE,eAAO,MAAM,qBAAqB,EAAE,qBAAuD,CAAA;AAE3F,MAAM,MAAM,eAAe,GAAG,gBAAgB,CAAC;IAC7C,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,qBAAqB,CAAA;CAC9B,CAAC,CAAA;AAEF,qBAAa,SAAU,SAAQ,eAAe,CAAC,eAAe,CAAC;IAC7D,OAAgB,YAAY,kCAAwB;IAEpD,IAAW,IAAI,WAEd;WAEqB,MAAM,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;IAI5E,OAAO,CAAC,QAAQ,GAAE,SAAS,EAAO,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;CAiB1E"}
@@ -0,0 +1,28 @@
1
+ import { IdSchema } from '@xyo-network/id-payload-plugin';
2
+ import { AbstractWitness } from '@xyo-network/witness';
3
+ export const IdWitnessConfigSchema = 'network.xyo.id.witness.config';
4
+ export class IdWitness extends AbstractWitness {
5
+ static configSchema = IdWitnessConfigSchema;
6
+ get salt() {
7
+ return this.config?.salt ?? `${Math.floor(Math.random() * 9999999)}`;
8
+ }
9
+ static async create(params) {
10
+ return (await super.create(params));
11
+ }
12
+ async observe(payloads = []) {
13
+ return await super.observe(payloads.length > 0
14
+ ? payloads.map((fieldItems) => {
15
+ return {
16
+ salt: fieldItems?.salt ?? this.salt,
17
+ schema: IdSchema,
18
+ };
19
+ })
20
+ : [
21
+ {
22
+ salt: this.salt,
23
+ schema: IdSchema,
24
+ },
25
+ ]);
26
+ }
27
+ }
28
+ //# sourceMappingURL=Witness.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Witness.js","sourceRoot":"","sources":["../../src/Witness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,QAAQ,EAAE,MAAM,gCAAgC,CAAA;AAGpE,OAAO,EAAE,eAAe,EAAoB,MAAM,sBAAsB,CAAA;AAGxE,MAAM,CAAC,MAAM,qBAAqB,GAA0B,+BAA+B,CAAA;AAO3F,MAAM,OAAO,SAAU,SAAQ,eAAgC;IAC7D,MAAM,CAAU,YAAY,GAAG,qBAAqB,CAAA;IAEpD,IAAW,IAAI;QACb,OAAO,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE,CAAA;IACtE,CAAC;IAED,MAAM,CAAU,KAAK,CAAC,MAAM,CAAC,MAAyC;QACpE,OAAO,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAc,CAAA;IAClD,CAAC;IAEQ,KAAK,CAAC,OAAO,CAAC,WAAwB,EAAE;QAC/C,OAAO,MAAM,KAAK,CAAC,OAAO,CACxB,QAAQ,CAAC,MAAM,GAAG,CAAC;YACjB,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;gBAC1B,OAAO;oBACL,IAAI,EAAE,UAAU,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI;oBACnC,MAAM,EAAE,QAAQ;iBACjB,CAAA;YACH,CAAC,CAAC;YACJ,CAAC,CAAC;gBACE;oBACE,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,MAAM,EAAE,QAAQ;iBACjB;aACF,CACN,CAAA;IACH,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { IdPlugin } from './Plugin';
2
+ export * from './Witness';
3
+ export { IdPlugin };
4
+ export default IdPlugin;
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAEnC,cAAc,WAAW,CAAA;AAEzB,OAAO,EAAE,QAAQ,EAAE,CAAA;AAGnB,eAAe,QAAQ,CAAA"}
@@ -0,0 +1,6 @@
1
+ import { IdPlugin } from './Plugin';
2
+ export * from './Witness';
3
+ export { IdPlugin };
4
+ // eslint-disable-next-line import/no-default-export
5
+ export default IdPlugin;
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAEnC,cAAc,WAAW,CAAA;AAEzB,OAAO,EAAE,QAAQ,EAAE,CAAA;AAEnB,oDAAoD;AACpD,eAAe,QAAQ,CAAA"}
package/package.json ADDED
@@ -0,0 +1,54 @@
1
+ {
2
+ "name": "@xyo-network/id-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/id-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
+ "tslib": "^2.4.1"
19
+ },
20
+ "description": "Primary SDK for using XYO Protocol 2.0",
21
+ "browser": "dist/esm/index.js",
22
+ "docs": "dist/docs.json",
23
+ "exports": {
24
+ ".": {
25
+ "node": {
26
+ "import": "./dist/esm/index.js",
27
+ "require": "./dist/cjs/index.js"
28
+ },
29
+ "browser": {
30
+ "import": "./dist/esm/index.js",
31
+ "require": "./dist/cjs/index.js"
32
+ },
33
+ "default": "./dist/esm/index.js"
34
+ },
35
+ "./dist/docs.json": {
36
+ "default": "./dist/docs.json"
37
+ },
38
+ "./package.json": "./package.json"
39
+ },
40
+ "main": "dist/cjs/index.js",
41
+ "module": "dist/esm/index.js",
42
+ "homepage": "https://xyo.network",
43
+ "license": "LGPL-3.0-only",
44
+ "publishConfig": {
45
+ "access": "public"
46
+ },
47
+ "repository": {
48
+ "type": "git",
49
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js.git"
50
+ },
51
+ "sideEffects": false,
52
+ "types": "dist/esm/index.d.ts",
53
+ "version": "2.42.0"
54
+ }
@@ -0,0 +1,13 @@
1
+ import { IdSchema } from '@xyo-network/id-payload-plugin'
2
+ import { PayloadSetPluginResolver } from '@xyo-network/payloadset-plugin'
3
+
4
+ import { IdPlugin } from './Plugin'
5
+
6
+ describe('IdPlugin', () => {
7
+ test('Add to Resolver', () => {
8
+ const plugin = IdPlugin()
9
+ const resolver = new PayloadSetPluginResolver().register(plugin)
10
+ expect(resolver.resolve(plugin.set)).toBeObject()
11
+ expect(resolver.witness(IdSchema)).toBeObject()
12
+ })
13
+ })
package/src/Plugin.ts ADDED
@@ -0,0 +1,17 @@
1
+ import { IdSchema } from '@xyo-network/id-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 { IdWitness, IdWitnessConfig } from './Witness'
7
+
8
+ export const IdPlugin = () =>
9
+ createPayloadSetPlugin<PayloadSetWitnessPlugin<XyoModuleParams<IdWitnessConfig>>>(
10
+ { required: { [IdSchema]: 1 }, schema: PayloadSetSchema },
11
+ {
12
+ witness: async (params) => {
13
+ const result = await IdWitness.create(params)
14
+ return result
15
+ },
16
+ },
17
+ )
@@ -0,0 +1,26 @@
1
+ /**
2
+ * @jest-environment jsdom
3
+ */
4
+
5
+ import { IdSchema } from '@xyo-network/id-payload-plugin'
6
+ import { PayloadWrapper } from '@xyo-network/payload'
7
+
8
+ import { IdWitness, IdWitnessConfigSchema } from './Witness'
9
+
10
+ describe('IdWitness [Browser]', () => {
11
+ test('observe', async () => {
12
+ const witness = await IdWitness.create({
13
+ config: { salt: 'test', schema: IdWitnessConfigSchema },
14
+ })
15
+ const [observation] = await witness.observe([{ salt: 'test', schema: IdSchema }])
16
+ expect(observation.schema).toBe(IdSchema)
17
+ expect(new PayloadWrapper(observation).valid).toBe(true)
18
+ })
19
+
20
+ test('observe [no config]', async () => {
21
+ const witness = await IdWitness.create()
22
+ const [observation] = await witness.observe([{ salt: 'test', schema: IdSchema }])
23
+ expect(observation.schema).toBe(IdSchema)
24
+ expect(new PayloadWrapper(observation).valid).toBe(true)
25
+ })
26
+ })
@@ -0,0 +1,78 @@
1
+ import { IdPayload, IdSchema } from '@xyo-network/id-payload-plugin'
2
+ import { PayloadWrapper } from '@xyo-network/payload'
3
+
4
+ import { IdWitness, IdWitnessConfigSchema } from './Witness'
5
+
6
+ describe('IdWitness', () => {
7
+ describe('observe', () => {
8
+ const payloadSalt = 'payload salt'
9
+ describe('with config', () => {
10
+ const configSalt = 'config salt'
11
+ const config = {
12
+ salt: configSalt,
13
+ schema: IdWitnessConfigSchema,
14
+ targetSchema: IdSchema,
15
+ }
16
+ describe('with payloads supplied to observe', () => {
17
+ it('without salt uses config salt', async () => {
18
+ const witness = await IdWitness.create({ config })
19
+ const observations = (await witness.observe()) as IdPayload[]
20
+ validateObservationShape(observations)
21
+ const [observation] = observations
22
+ expect(observation.salt).toBe(witness.config.salt)
23
+ })
24
+ it('with salt uses payload salt', async () => {
25
+ const witness = await IdWitness.create({ config })
26
+ const observations = (await witness.observe([{ salt: payloadSalt, schema: IdSchema }])) as IdPayload[]
27
+ validateObservationShape(observations)
28
+ const [observation] = observations
29
+ expect(observation.salt).toBe(payloadSalt)
30
+ })
31
+ })
32
+ describe('with no payloads supplied to observe', () => {
33
+ it('uses config salt', async () => {
34
+ const witness = await IdWitness.create({ config })
35
+ const observations = (await witness.observe()) as IdPayload[]
36
+ validateObservationShape(observations)
37
+ const [observation] = observations
38
+ expect(observation.salt).toBe(witness.config.salt)
39
+ })
40
+ })
41
+ })
42
+ describe('with no config', () => {
43
+ describe('with payloads supplied to observe', () => {
44
+ it('without salt uses random numeric string', async () => {
45
+ const witness = await IdWitness.create()
46
+ const observations = (await witness.observe()) as IdPayload[]
47
+ validateObservationShape(observations)
48
+ const [observation] = observations
49
+ expect(parseInt(observation.salt)).toBeInteger()
50
+ })
51
+ it('with salt uses payload salt', async () => {
52
+ const witness = await IdWitness.create()
53
+ const observations = (await witness.observe([{ salt: payloadSalt, schema: IdSchema }])) as IdPayload[]
54
+ validateObservationShape(observations)
55
+ const [observation] = observations
56
+ expect(observation.salt).toBe(payloadSalt)
57
+ })
58
+ })
59
+ describe('with no payloads supplied to observe', () => {
60
+ it('uses random numeric string', async () => {
61
+ const witness = await IdWitness.create()
62
+ const observations = (await witness.observe()) as IdPayload[]
63
+ validateObservationShape(observations)
64
+ const [observation] = observations
65
+ expect(parseInt(observation.salt)).toBeInteger()
66
+ })
67
+ })
68
+ })
69
+ })
70
+ })
71
+
72
+ const validateObservationShape = (observations: IdPayload[]) => {
73
+ expect(observations).toBeArrayOfSize(1)
74
+ const [observation] = observations
75
+ expect(observation.salt).toBeString()
76
+ expect(observation.schema).toBe(IdSchema)
77
+ expect(new PayloadWrapper(observation).valid).toBe(true)
78
+ }
package/src/Witness.ts ADDED
@@ -0,0 +1,42 @@
1
+ import { IdPayload, IdSchema } from '@xyo-network/id-payload-plugin'
2
+ import { XyoModuleParams } from '@xyo-network/module'
3
+ import { XyoPayload } from '@xyo-network/payload'
4
+ import { AbstractWitness, XyoWitnessConfig } from '@xyo-network/witness'
5
+
6
+ export type IdWitnessConfigSchema = 'network.xyo.id.witness.config'
7
+ export const IdWitnessConfigSchema: IdWitnessConfigSchema = 'network.xyo.id.witness.config'
8
+
9
+ export type IdWitnessConfig = XyoWitnessConfig<{
10
+ salt: string
11
+ schema: IdWitnessConfigSchema
12
+ }>
13
+
14
+ export class IdWitness extends AbstractWitness<IdWitnessConfig> {
15
+ static override configSchema = IdWitnessConfigSchema
16
+
17
+ public get salt() {
18
+ return this.config?.salt ?? `${Math.floor(Math.random() * 9999999)}`
19
+ }
20
+
21
+ static override async create(params?: XyoModuleParams<IdWitnessConfig>): Promise<IdWitness> {
22
+ return (await super.create(params)) as IdWitness
23
+ }
24
+
25
+ override async observe(payloads: IdPayload[] = []): Promise<XyoPayload[]> {
26
+ return await super.observe(
27
+ payloads.length > 0
28
+ ? payloads.map((fieldItems) => {
29
+ return {
30
+ salt: fieldItems?.salt ?? this.salt,
31
+ schema: IdSchema,
32
+ }
33
+ })
34
+ : [
35
+ {
36
+ salt: this.salt,
37
+ schema: IdSchema,
38
+ },
39
+ ],
40
+ )
41
+ }
42
+ }
package/src/index.ts ADDED
@@ -0,0 +1,8 @@
1
+ import { IdPlugin } from './Plugin'
2
+
3
+ export * from './Witness'
4
+
5
+ export { IdPlugin }
6
+
7
+ // eslint-disable-next-line import/no-default-export
8
+ export default IdPlugin