@xyo-network/witness 2.22.20

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.
Files changed (40) hide show
  1. package/LICENSE +165 -0
  2. package/README.md +81 -0
  3. package/dist/cjs/Witness/QueryWitness.d.ts +9 -0
  4. package/dist/cjs/Witness/QueryWitness.js +16 -0
  5. package/dist/cjs/Witness/QueryWitness.js.map +1 -0
  6. package/dist/cjs/Witness/SimpleWitness.d.ts +17 -0
  7. package/dist/cjs/Witness/SimpleWitness.js +28 -0
  8. package/dist/cjs/Witness/SimpleWitness.js.map +1 -0
  9. package/dist/cjs/Witness/Witness.d.ts +17 -0
  10. package/dist/cjs/Witness/Witness.js +17 -0
  11. package/dist/cjs/Witness/Witness.js.map +1 -0
  12. package/dist/cjs/Witness/index.d.ts +3 -0
  13. package/dist/cjs/Witness/index.js +7 -0
  14. package/dist/cjs/Witness/index.js.map +1 -0
  15. package/dist/cjs/index.d.ts +1 -0
  16. package/dist/cjs/index.js +5 -0
  17. package/dist/cjs/index.js.map +1 -0
  18. package/dist/docs.json +4029 -0
  19. package/dist/esm/Witness/QueryWitness.d.ts +9 -0
  20. package/dist/esm/Witness/QueryWitness.js +11 -0
  21. package/dist/esm/Witness/QueryWitness.js.map +1 -0
  22. package/dist/esm/Witness/SimpleWitness.d.ts +17 -0
  23. package/dist/esm/Witness/SimpleWitness.js +18 -0
  24. package/dist/esm/Witness/SimpleWitness.js.map +1 -0
  25. package/dist/esm/Witness/Witness.d.ts +17 -0
  26. package/dist/esm/Witness/Witness.js +11 -0
  27. package/dist/esm/Witness/Witness.js.map +1 -0
  28. package/dist/esm/Witness/index.d.ts +3 -0
  29. package/dist/esm/Witness/index.js +4 -0
  30. package/dist/esm/Witness/index.js.map +1 -0
  31. package/dist/esm/index.d.ts +1 -0
  32. package/dist/esm/index.js +2 -0
  33. package/dist/esm/index.js.map +1 -0
  34. package/package.json +55 -0
  35. package/src/Witness/QueryWitness.ts +21 -0
  36. package/src/Witness/SimpleWitness.ts +37 -0
  37. package/src/Witness/Witness.spec.ts +13 -0
  38. package/src/Witness/Witness.ts +24 -0
  39. package/src/Witness/index.ts +3 -0
  40. package/src/index.ts +1 -0
@@ -0,0 +1,9 @@
1
+ import { XyoPayload, XyoQueryPayload } from '@xyo-network/payload';
2
+ import { XyoAbstractWitness } from './Witness';
3
+ export interface XyoQueryWitnessConfig<Q extends XyoQueryPayload = XyoQueryPayload> {
4
+ query: Q;
5
+ }
6
+ export declare class XyoQueryWitness<T extends XyoPayload, Q extends XyoQueryPayload = XyoQueryPayload, C extends XyoQueryWitnessConfig<Q> = XyoQueryWitnessConfig<Q>> extends XyoAbstractWitness<T, C> {
7
+ get targetSchema(): string;
8
+ observe(fields?: Partial<T>): Promise<T>;
9
+ }
@@ -0,0 +1,11 @@
1
+ import { XyoPayloadBuilder } from '@xyo-network/payload';
2
+ import { XyoAbstractWitness } from './Witness';
3
+ export class XyoQueryWitness extends XyoAbstractWitness {
4
+ get targetSchema() {
5
+ return this.config?.query.targetSchema ?? 'network.xyo.payload';
6
+ }
7
+ observe(fields) {
8
+ return Promise.resolve(new XyoPayloadBuilder({ schema: this.targetSchema }).fields(fields).build());
9
+ }
10
+ }
11
+ //# sourceMappingURL=QueryWitness.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryWitness.js","sourceRoot":"","sources":["../../../src/Witness/QueryWitness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,iBAAiB,EAAmB,MAAM,sBAAsB,CAAA;AAErF,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAM9C,MAAM,OAAO,eAIX,SAAQ,kBAAwB;IAChC,IAAa,YAAY;QACvB,OAAO,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,YAAY,IAAI,qBAAqB,CAAA;IACjE,CAAC;IAEM,OAAO,CAAC,MAAmB;QAChC,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,iBAAiB,CAAI,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,CAAA;IACxG,CAAC;CACF"}
@@ -0,0 +1,17 @@
1
+ import { XyoPayload } from '@xyo-network/payload';
2
+ import { XyoAbstractWitness, XyoWitness } from './Witness';
3
+ export interface XyoSimpleWitnessConfig<T extends XyoPayload = XyoPayload> {
4
+ schema: string;
5
+ template?: XyoPayload;
6
+ observer?: () => Promise<T> | T;
7
+ }
8
+ export declare class XyoSimpleWitness<T extends XyoPayload = XyoPayload, C extends XyoSimpleWitnessConfig<T> = XyoSimpleWitnessConfig<T>> extends XyoAbstractWitness<T, C> implements XyoWitness<T> {
9
+ previousHash?: string;
10
+ get targetSchema(): string;
11
+ observe(fields?: Partial<T>): Promise<T>;
12
+ }
13
+ /** @deprecated Use XyoSimpleWitness */
14
+ export declare class XyoLegacyWitness<T extends XyoPayload = XyoPayload, C extends XyoSimpleWitnessConfig<T> = XyoSimpleWitnessConfig<T>> extends XyoSimpleWitness<T, C> {
15
+ }
16
+ /** @deprecated Use XyoSimpleWitnessConfig */
17
+ export declare type XyoWitnessConfig<T extends XyoPayload = XyoPayload> = XyoSimpleWitnessConfig<T>;
@@ -0,0 +1,18 @@
1
+ import { XyoPayloadBuilder } from '@xyo-network/payload';
2
+ import { XyoAbstractWitness } from './Witness';
3
+ export class XyoSimpleWitness extends XyoAbstractWitness {
4
+ get targetSchema() {
5
+ return this.config?.schema ?? 'network.xyo.payload';
6
+ }
7
+ async observe(fields) {
8
+ return new XyoPayloadBuilder({ schema: this.targetSchema })
9
+ .previousHash(this.previousHash)
10
+ .fields(await this.config?.observer?.())
11
+ .fields(fields)
12
+ .build();
13
+ }
14
+ }
15
+ /** @deprecated Use XyoSimpleWitness */
16
+ export class XyoLegacyWitness extends XyoSimpleWitness {
17
+ }
18
+ //# sourceMappingURL=SimpleWitness.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SimpleWitness.js","sourceRoot":"","sources":["../../../src/Witness/SimpleWitness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAEpE,OAAO,EAAE,kBAAkB,EAAc,MAAM,WAAW,CAAA;AAQ1D,MAAM,OAAO,gBACX,SAAQ,kBAAwB;IAKhC,IAAa,YAAY;QACvB,OAAO,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,qBAAqB,CAAA;IACrD,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,MAAmB;QACtC,OAAO,IAAI,iBAAiB,CAAI,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;aAC3D,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC;aAC/B,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC;aACvC,MAAM,CAAC,MAAM,CAAC;aACd,KAAK,EAAE,CAAA;IACZ,CAAC;CACF;AAED,uCAAuC;AACvC,MAAM,OAAO,gBAAqH,SAAQ,gBAGzI;CAAG"}
@@ -0,0 +1,17 @@
1
+ import { EmptyObject } from '@xyo-network/core';
2
+ import { WithTimestamp, XyoPayload } from '@xyo-network/payload';
3
+ export interface XyoWitness<T extends XyoPayload = XyoPayload> {
4
+ targetSchema: string;
5
+ observe(fields?: Partial<T>): Promise<T>;
6
+ }
7
+ export declare abstract class XyoAbstractWitness<T extends XyoPayload = XyoPayload, C extends EmptyObject = EmptyObject> implements XyoWitness<T> {
8
+ readonly config?: C;
9
+ constructor(config?: C);
10
+ abstract observe(fields?: Partial<T>): Promise<T>;
11
+ abstract get targetSchema(): string;
12
+ }
13
+ export declare abstract class XyoAbstractTimestampWitness<TTargetPayload extends WithTimestamp<XyoPayload> = WithTimestamp<XyoPayload>, TConfig extends EmptyObject = EmptyObject> extends XyoAbstractWitness<TTargetPayload, TConfig> {
14
+ }
15
+ /** @deprecated use XyoAbstractWitness instead */
16
+ export declare abstract class XyoWitnessBase<T extends XyoPayload = XyoPayload, C extends EmptyObject = EmptyObject> extends XyoAbstractWitness<T, C> {
17
+ }
@@ -0,0 +1,11 @@
1
+ export class XyoAbstractWitness {
2
+ constructor(config) {
3
+ this.config = config;
4
+ }
5
+ }
6
+ export class XyoAbstractTimestampWitness extends XyoAbstractWitness {
7
+ }
8
+ /** @deprecated use XyoAbstractWitness instead */
9
+ export class XyoWitnessBase extends XyoAbstractWitness {
10
+ }
11
+ //# sourceMappingURL=Witness.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Witness.js","sourceRoot":"","sources":["../../../src/Witness/Witness.ts"],"names":[],"mappings":"AAQA,MAAM,OAAgB,kBAAkB;IAEtC,YAAY,MAAU;QACpB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;CAGF;AAED,MAAM,OAAgB,2BAGpB,SAAQ,kBAA2C;CAAG;AAExD,iDAAiD;AACjD,MAAM,OAAgB,cAAuF,SAAQ,kBAAwB;CAAG"}
@@ -0,0 +1,3 @@
1
+ export * from './QueryWitness';
2
+ export * from './SimpleWitness';
3
+ export * from './Witness';
@@ -0,0 +1,4 @@
1
+ export * from './QueryWitness';
2
+ export * from './SimpleWitness';
3
+ export * from './Witness';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Witness/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA"}
@@ -0,0 +1 @@
1
+ export * from './Witness';
@@ -0,0 +1,2 @@
1
+ export * from './Witness';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA"}
package/package.json ADDED
@@ -0,0 +1,55 @@
1
+ {
2
+ "name": "@xyo-network/witness",
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/core": "^2.22.20",
14
+ "@xyo-network/payload": "^2.22.20"
15
+ },
16
+ "description": "Primary SDK for using XYO Protocol 2.0",
17
+ "devDependencies": {
18
+ "@xylabs/tsconfig": "^2.5.6",
19
+ "tslib": "^2.4.0"
20
+ },
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.22.20",
54
+ "packageManager": "yarn@3.1.1"
55
+ }
@@ -0,0 +1,21 @@
1
+ import { XyoPayload, XyoPayloadBuilder, XyoQueryPayload } from '@xyo-network/payload'
2
+
3
+ import { XyoAbstractWitness } from './Witness'
4
+
5
+ export interface XyoQueryWitnessConfig<Q extends XyoQueryPayload = XyoQueryPayload> {
6
+ query: Q
7
+ }
8
+
9
+ export class XyoQueryWitness<
10
+ T extends XyoPayload,
11
+ Q extends XyoQueryPayload = XyoQueryPayload,
12
+ C extends XyoQueryWitnessConfig<Q> = XyoQueryWitnessConfig<Q>
13
+ > extends XyoAbstractWitness<T, C> {
14
+ override get targetSchema() {
15
+ return this.config?.query.targetSchema ?? 'network.xyo.payload'
16
+ }
17
+
18
+ public observe(fields?: Partial<T>): Promise<T> {
19
+ return Promise.resolve(new XyoPayloadBuilder<T>({ schema: this.targetSchema }).fields(fields).build())
20
+ }
21
+ }
@@ -0,0 +1,37 @@
1
+ import { XyoPayload, XyoPayloadBuilder } from '@xyo-network/payload'
2
+
3
+ import { XyoAbstractWitness, XyoWitness } from './Witness'
4
+
5
+ export interface XyoSimpleWitnessConfig<T extends XyoPayload = XyoPayload> {
6
+ schema: string
7
+ template?: XyoPayload
8
+ observer?: () => Promise<T> | T
9
+ }
10
+
11
+ export class XyoSimpleWitness<T extends XyoPayload = XyoPayload, C extends XyoSimpleWitnessConfig<T> = XyoSimpleWitnessConfig<T>>
12
+ extends XyoAbstractWitness<T, C>
13
+ implements XyoWitness<T>
14
+ {
15
+ public previousHash?: string
16
+
17
+ override get targetSchema() {
18
+ return this.config?.schema ?? 'network.xyo.payload'
19
+ }
20
+
21
+ public async observe(fields?: Partial<T>) {
22
+ return new XyoPayloadBuilder<T>({ schema: this.targetSchema })
23
+ .previousHash(this.previousHash)
24
+ .fields(await this.config?.observer?.())
25
+ .fields(fields)
26
+ .build()
27
+ }
28
+ }
29
+
30
+ /** @deprecated Use XyoSimpleWitness */
31
+ export class XyoLegacyWitness<T extends XyoPayload = XyoPayload, C extends XyoSimpleWitnessConfig<T> = XyoSimpleWitnessConfig<T>> extends XyoSimpleWitness<
32
+ T,
33
+ C
34
+ > {}
35
+
36
+ /** @deprecated Use XyoSimpleWitnessConfig */
37
+ export type XyoWitnessConfig<T extends XyoPayload = XyoPayload> = XyoSimpleWitnessConfig<T>
@@ -0,0 +1,13 @@
1
+ import { XyoSimpleWitness } from './SimpleWitness'
2
+
3
+ describe('XyoWitness', () => {
4
+ test('valid-instantiation', () => {
5
+ const template = {
6
+ schema: 'network.xyo.foo',
7
+ }
8
+ const witness = new XyoSimpleWitness({ schema: 'network.xyo.payload', template })
9
+ expect(witness).toBeTruthy()
10
+ expect(witness.config?.schema).toBe('network.xyo.payload')
11
+ expect(witness.config?.template).toBe(template)
12
+ })
13
+ })
@@ -0,0 +1,24 @@
1
+ import { EmptyObject } from '@xyo-network/core'
2
+ import { WithTimestamp, XyoPayload } from '@xyo-network/payload'
3
+
4
+ export interface XyoWitness<T extends XyoPayload = XyoPayload> {
5
+ targetSchema: string
6
+ observe(fields?: Partial<T>): Promise<T>
7
+ }
8
+
9
+ export abstract class XyoAbstractWitness<T extends XyoPayload = XyoPayload, C extends EmptyObject = EmptyObject> implements XyoWitness<T> {
10
+ public readonly config?: C
11
+ constructor(config?: C) {
12
+ this.config = config
13
+ }
14
+ abstract observe(fields?: Partial<T>): Promise<T>
15
+ abstract get targetSchema(): string
16
+ }
17
+
18
+ export abstract class XyoAbstractTimestampWitness<
19
+ TTargetPayload extends WithTimestamp<XyoPayload> = WithTimestamp<XyoPayload>,
20
+ TConfig extends EmptyObject = EmptyObject
21
+ > extends XyoAbstractWitness<TTargetPayload, TConfig> {}
22
+
23
+ /** @deprecated use XyoAbstractWitness instead */
24
+ export abstract class XyoWitnessBase<T extends XyoPayload = XyoPayload, C extends EmptyObject = EmptyObject> extends XyoAbstractWitness<T, C> {}
@@ -0,0 +1,3 @@
1
+ export * from './QueryWitness'
2
+ export * from './SimpleWitness'
3
+ export * from './Witness'
package/src/index.ts ADDED
@@ -0,0 +1 @@
1
+ export * from './Witness'