@xyo-network/location-payload-plugin 2.23.2 → 2.24.1

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 (58) hide show
  1. package/dist/cjs/Payload.d.ts +18 -0
  2. package/dist/cjs/Payload.d.ts.map +1 -0
  3. package/dist/cjs/Payload.js +3 -0
  4. package/dist/cjs/Payload.js.map +1 -0
  5. package/dist/cjs/Plugin.d.ts +5 -0
  6. package/dist/cjs/Plugin.d.ts.map +1 -0
  7. package/dist/cjs/Plugin.js +17 -0
  8. package/dist/cjs/Plugin.js.map +1 -0
  9. package/dist/cjs/Schema.d.ts +3 -0
  10. package/dist/cjs/Schema.d.ts.map +1 -0
  11. package/dist/cjs/Schema.js +5 -0
  12. package/dist/cjs/Schema.js.map +1 -0
  13. package/dist/cjs/Template.d.ts +3 -0
  14. package/dist/cjs/Template.d.ts.map +1 -0
  15. package/dist/cjs/Template.js +23 -0
  16. package/dist/cjs/Template.js.map +1 -0
  17. package/dist/cjs/Witness.d.ts +11 -0
  18. package/dist/cjs/Witness.d.ts.map +1 -0
  19. package/dist/cjs/Witness.js +52 -0
  20. package/dist/cjs/Witness.js.map +1 -0
  21. package/dist/cjs/index.d.ts +7 -4
  22. package/dist/cjs/index.d.ts.map +1 -1
  23. package/dist/cjs/index.js +9 -10
  24. package/dist/cjs/index.js.map +1 -1
  25. package/dist/docs.json +775 -8
  26. package/dist/esm/Payload.d.ts +18 -0
  27. package/dist/esm/Payload.d.ts.map +1 -0
  28. package/dist/esm/Payload.js +2 -0
  29. package/dist/esm/Payload.js.map +1 -0
  30. package/dist/esm/Plugin.d.ts +5 -0
  31. package/dist/esm/Plugin.d.ts.map +1 -0
  32. package/dist/esm/Plugin.js +13 -0
  33. package/dist/esm/Plugin.js.map +1 -0
  34. package/dist/esm/Schema.d.ts +3 -0
  35. package/dist/esm/Schema.d.ts.map +1 -0
  36. package/dist/esm/Schema.js +2 -0
  37. package/dist/esm/Schema.js.map +1 -0
  38. package/dist/esm/Template.d.ts +3 -0
  39. package/dist/esm/Template.d.ts.map +1 -0
  40. package/dist/esm/Template.js +19 -0
  41. package/dist/esm/Template.js.map +1 -0
  42. package/dist/esm/Witness.d.ts +11 -0
  43. package/dist/esm/Witness.d.ts.map +1 -0
  44. package/dist/esm/Witness.js +42 -0
  45. package/dist/esm/Witness.js.map +1 -0
  46. package/dist/esm/index.d.ts +7 -4
  47. package/dist/esm/index.d.ts.map +1 -1
  48. package/dist/esm/index.js +7 -10
  49. package/dist/esm/index.js.map +1 -1
  50. package/package.json +5 -4
  51. package/src/Payload.ts +19 -0
  52. package/src/Plugin.spec.ts +11 -0
  53. package/src/Plugin.ts +16 -0
  54. package/src/Schema.ts +2 -0
  55. package/src/Template.ts +20 -0
  56. package/src/Witness.ts +50 -0
  57. package/src/index.ts +8 -11
  58. package/src/index.spec.ts +0 -10
@@ -0,0 +1,18 @@
1
+ import { XyoPayload } from '@xyo-network/payload';
2
+ import { XyoLocationPayloadSchema } from './Schema';
3
+ export declare type XyoLocationPayload = XyoPayload<{
4
+ schema: XyoLocationPayloadSchema;
5
+ currentLocation: {
6
+ coords: {
7
+ accuracy?: number;
8
+ altitude?: number;
9
+ altitudeAccuracy?: number;
10
+ heading?: number;
11
+ latitude?: number;
12
+ longitude?: number;
13
+ speed?: number;
14
+ };
15
+ timestamp: number;
16
+ };
17
+ }>;
18
+ //# sourceMappingURL=Payload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Payload.d.ts","sourceRoot":"","sources":["../../src/Payload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAA;AAEnD,oBAAY,kBAAkB,GAAG,UAAU,CAAC;IAC1C,MAAM,EAAE,wBAAwB,CAAA;IAChC,eAAe,EAAE;QACf,MAAM,EAAE;YACN,QAAQ,CAAC,EAAE,MAAM,CAAA;YACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;YACjB,gBAAgB,CAAC,EAAE,MAAM,CAAA;YACzB,OAAO,CAAC,EAAE,MAAM,CAAA;YAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;YACjB,SAAS,CAAC,EAAE,MAAM,CAAA;YAClB,KAAK,CAAC,EAAE,MAAM,CAAA;SACf,CAAA;QACD,SAAS,EAAE,MAAM,CAAA;KAClB,CAAA;CACF,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Payload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Payload.js","sourceRoot":"","sources":["../../src/Payload.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import { XyoPayloadPluginFunc } from '@xyo-network/payload-plugin';
2
+ import { XyoLocationPayload } from './Payload';
3
+ import { XyoLocationPayloadSchema } from './Schema';
4
+ export declare const XyoLocationPayloadPlugin: XyoPayloadPluginFunc<XyoLocationPayloadSchema, XyoLocationPayload>;
5
+ //# sourceMappingURL=Plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Plugin.d.ts","sourceRoot":"","sources":["../../src/Plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAE1F,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAA;AAInD,eAAO,MAAM,wBAAwB,EAAE,oBAAoB,CAAC,wBAAwB,EAAE,kBAAkB,CAQpG,CAAA"}
@@ -0,0 +1,13 @@
1
+ import { createXyoPayloadPlugin } from '@xyo-network/payload-plugin';
2
+ import { XyoLocationPayloadSchema } from './Schema';
3
+ import { XyoLocationPayloadTemplate } from './Template';
4
+ import { XyoLocationWitness } from './Witness';
5
+ export const XyoLocationPayloadPlugin = () => createXyoPayloadPlugin({
6
+ auto: true,
7
+ schema: XyoLocationPayloadSchema,
8
+ template: XyoLocationPayloadTemplate,
9
+ witness: () => {
10
+ return new XyoLocationWitness();
11
+ },
12
+ });
13
+ //# sourceMappingURL=Plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Plugin.js","sourceRoot":"","sources":["../../src/Plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAwB,MAAM,6BAA6B,CAAA;AAG1F,OAAO,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAA;AACnD,OAAO,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAA;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAE9C,MAAM,CAAC,MAAM,wBAAwB,GAAuE,GAAG,EAAE,CAC/G,sBAAsB,CAAC;IACrB,IAAI,EAAE,IAAI;IACV,MAAM,EAAE,wBAAwB;IAChC,QAAQ,EAAE,0BAA0B;IACpC,OAAO,EAAE,GAAuB,EAAE;QAChC,OAAO,IAAI,kBAAkB,EAAE,CAAA;IACjC,CAAC;CACF,CAAC,CAAA"}
@@ -0,0 +1,3 @@
1
+ export declare type XyoLocationPayloadSchema = 'network.xyo.location';
2
+ export declare const XyoLocationPayloadSchema: XyoLocationPayloadSchema;
3
+ //# sourceMappingURL=Schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../src/Schema.ts"],"names":[],"mappings":"AAAA,oBAAY,wBAAwB,GAAG,sBAAsB,CAAA;AAC7D,eAAO,MAAM,wBAAwB,EAAE,wBAAiD,CAAA"}
@@ -0,0 +1,2 @@
1
+ export const XyoLocationPayloadSchema = 'network.xyo.location';
2
+ //# sourceMappingURL=Schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Schema.js","sourceRoot":"","sources":["../../src/Schema.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,wBAAwB,GAA6B,sBAAsB,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { XyoLocationPayload } from './Payload';
2
+ export declare const XyoLocationPayloadTemplate: () => XyoLocationPayload;
3
+ //# sourceMappingURL=Template.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Template.d.ts","sourceRoot":"","sources":["../../src/Template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAG9C,eAAO,MAAM,0BAA0B,QAAO,kBAgB7C,CAAA"}
@@ -0,0 +1,19 @@
1
+ import { XyoLocationPayloadSchema } from './Schema';
2
+ export const XyoLocationPayloadTemplate = () => {
3
+ return {
4
+ currentLocation: {
5
+ coords: {
6
+ accuracy: undefined,
7
+ altitude: undefined,
8
+ altitudeAccuracy: undefined,
9
+ heading: undefined,
10
+ latitude: undefined,
11
+ longitude: undefined,
12
+ speed: undefined,
13
+ },
14
+ timestamp: Date.now(),
15
+ },
16
+ schema: XyoLocationPayloadSchema,
17
+ };
18
+ };
19
+ //# sourceMappingURL=Template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Template.js","sourceRoot":"","sources":["../../src/Template.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAA;AAEnD,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAuB,EAAE;IACjE,OAAO;QACL,eAAe,EAAE;YACf,MAAM,EAAE;gBACN,QAAQ,EAAE,SAAS;gBACnB,QAAQ,EAAE,SAAS;gBACnB,gBAAgB,EAAE,SAAS;gBAC3B,OAAO,EAAE,SAAS;gBAClB,QAAQ,EAAE,SAAS;gBACnB,SAAS,EAAE,SAAS;gBACpB,KAAK,EAAE,SAAS;aACjB;YACD,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB;QACD,MAAM,EAAE,wBAAwB;KACjC,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,11 @@
1
+ import { XyoSimpleWitness } from '@xyo-network/witness';
2
+ import { XyoLocationPayload } from './Payload';
3
+ import { XyoLocationPayloadSchema } from './Schema';
4
+ export declare class XyoLocationWitness extends XyoSimpleWitness<XyoLocationPayload> {
5
+ private geoLocation;
6
+ constructor();
7
+ getCurrentPosition(): Promise<GeolocationPosition>;
8
+ observe(): Promise<XyoLocationPayload>;
9
+ static schema: XyoLocationPayloadSchema;
10
+ }
11
+ //# 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,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAEvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAA;AAGnD,qBAAa,kBAAmB,SAAQ,gBAAgB,CAAC,kBAAkB,CAAC;IAC1E,OAAO,CAAC,WAAW,CAAa;;IAUzB,kBAAkB;IAaV,OAAO;IAkBtB,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAA2B;CACnE"}
@@ -0,0 +1,42 @@
1
+ import { XyoSimpleWitness } from '@xyo-network/witness';
2
+ import { XyoLocationPayloadSchema } from './Schema';
3
+ import { XyoLocationPayloadTemplate } from './Template';
4
+ export class XyoLocationWitness extends XyoSimpleWitness {
5
+ geoLocation;
6
+ constructor() {
7
+ const template = XyoLocationPayloadTemplate();
8
+ super({
9
+ schema: template.schema,
10
+ template,
11
+ });
12
+ this.geoLocation = navigator.geolocation;
13
+ }
14
+ getCurrentPosition() {
15
+ return new Promise((resolve, reject) => {
16
+ this.geoLocation.getCurrentPosition((position) => {
17
+ resolve(position);
18
+ }, (error) => {
19
+ reject(error);
20
+ });
21
+ });
22
+ }
23
+ async observe() {
24
+ const location = await this.getCurrentPosition();
25
+ return await super.observe({
26
+ currentLocation: {
27
+ coords: {
28
+ accuracy: location.coords.accuracy,
29
+ altitude: location.coords.altitude ?? undefined,
30
+ altitudeAccuracy: location.coords.altitudeAccuracy ?? undefined,
31
+ heading: location.coords.heading ?? undefined,
32
+ latitude: location.coords.latitude,
33
+ longitude: location.coords.longitude,
34
+ speed: location.coords.speed ?? undefined,
35
+ },
36
+ timestamp: location.timestamp,
37
+ },
38
+ });
39
+ }
40
+ static schema = XyoLocationPayloadSchema;
41
+ }
42
+ //# sourceMappingURL=Witness.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Witness.js","sourceRoot":"","sources":["../../src/Witness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAGvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAA;AACnD,OAAO,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAA;AAEvD,MAAM,OAAO,kBAAmB,SAAQ,gBAAoC;IAClE,WAAW,CAAa;IAChC;QACE,MAAM,QAAQ,GAAG,0BAA0B,EAAE,CAAA;QAC7C,KAAK,CAAC;YACJ,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,QAAQ;SACT,CAAC,CAAA;QACF,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,WAAW,CAAA;IAC1C,CAAC;IAEM,kBAAkB;QACvB,OAAO,IAAI,OAAO,CAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1D,IAAI,CAAC,WAAW,CAAC,kBAAkB,CACjC,CAAC,QAA6B,EAAE,EAAE;gBAChC,OAAO,CAAC,QAAQ,CAAC,CAAA;YACnB,CAAC,EACD,CAAC,KAA+B,EAAE,EAAE;gBAClC,MAAM,CAAC,KAAK,CAAC,CAAA;YACf,CAAC,CACF,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAEQ,KAAK,CAAC,OAAO;QACpB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAA;QAChD,OAAO,MAAM,KAAK,CAAC,OAAO,CAAC;YACzB,eAAe,EAAE;gBACf,MAAM,EAAE;oBACN,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ;oBAClC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,IAAI,SAAS;oBAC/C,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,gBAAgB,IAAI,SAAS;oBAC/D,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,IAAI,SAAS;oBAC7C,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ;oBAClC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS;oBACpC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,IAAI,SAAS;iBAC1C;gBACD,SAAS,EAAE,QAAQ,CAAC,SAAS;aAC9B;SACF,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,CAAC,MAAM,GAA6B,wBAAwB,CAAA"}
@@ -1,5 +1,8 @@
1
- import { XyoPayloadPluginFunc } from '@xyo-network/payload-plugin';
2
- import { XyoLocationPayload } from '@xyo-network/witnesses';
3
- declare const plugin: XyoPayloadPluginFunc<'network.xyo.location', XyoLocationPayload>;
4
- export default plugin;
1
+ import { XyoLocationPayloadPlugin } from './Plugin';
2
+ export * from './Payload';
3
+ export * from './Schema';
4
+ export * from './Template';
5
+ export * from './Witness';
6
+ export { XyoLocationPayloadPlugin };
7
+ export default XyoLocationPayloadPlugin;
5
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAC1F,OAAO,EAAE,kBAAkB,EAAsB,MAAM,wBAAwB,CAAA;AAE/E,QAAA,MAAM,MAAM,EAAE,oBAAoB,CAAC,sBAAsB,EAAE,kBAAkB,CAOzE,CAAA;AAGJ,eAAe,MAAM,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAA;AAEnD,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AAEzB,OAAO,EAAE,wBAAwB,EAAE,CAAA;AAGnC,eAAe,wBAAwB,CAAA"}
package/dist/esm/index.js CHANGED
@@ -1,12 +1,9 @@
1
- import { createXyoPayloadPlugin } from '@xyo-network/payload-plugin';
2
- import { XyoLocationWitness } from '@xyo-network/witnesses';
3
- const plugin = () => createXyoPayloadPlugin({
4
- auto: true,
5
- schema: 'network.xyo.location',
6
- witness: () => {
7
- return new XyoLocationWitness();
8
- },
9
- });
1
+ import { XyoLocationPayloadPlugin } from './Plugin';
2
+ export * from './Payload';
3
+ export * from './Schema';
4
+ export * from './Template';
5
+ export * from './Witness';
6
+ export { XyoLocationPayloadPlugin };
10
7
  // eslint-disable-next-line import/no-default-export
11
- export default plugin;
8
+ export default XyoLocationPayloadPlugin;
12
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAwB,MAAM,6BAA6B,CAAA;AAC1F,OAAO,EAAsB,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAE/E,MAAM,MAAM,GAAqE,GAAG,EAAE,CACpF,sBAAsB,CAAC;IACrB,IAAI,EAAE,IAAI;IACV,MAAM,EAAE,sBAAsB;IAC9B,OAAO,EAAE,GAAuB,EAAE;QAChC,OAAO,IAAI,kBAAkB,EAAE,CAAA;IACjC,CAAC;CACF,CAAC,CAAA;AAEJ,oDAAoD;AACpD,eAAe,MAAM,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAA;AAEnD,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AAEzB,OAAO,EAAE,wBAAwB,EAAE,CAAA;AAEnC,oDAAoD;AACpD,eAAe,wBAAwB,CAAA"}
package/package.json CHANGED
@@ -10,9 +10,10 @@
10
10
  "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/issues"
11
11
  },
12
12
  "dependencies": {
13
- "@xyo-network/payload": "^2.23.2",
14
- "@xyo-network/payload-plugin": "^2.23.2",
15
- "@xyo-network/schema-witness": "^2.23.2"
13
+ "@xyo-network/payload": "^2.24.1",
14
+ "@xyo-network/payload-plugin": "^2.24.1",
15
+ "@xyo-network/witness": "^2.24.1",
16
+ "tslib": "^2.4.0"
16
17
  },
17
18
  "devDependencies": {
18
19
  "@xylabs/tsconfig": "^2.5.13"
@@ -50,6 +51,6 @@
50
51
  },
51
52
  "sideEffects": false,
52
53
  "types": "dist/esm/index.d.ts",
53
- "version": "2.23.2",
54
+ "version": "2.24.1",
54
55
  "packageManager": "yarn@3.1.1"
55
56
  }
package/src/Payload.ts ADDED
@@ -0,0 +1,19 @@
1
+ import { XyoPayload } from '@xyo-network/payload'
2
+
3
+ import { XyoLocationPayloadSchema } from './Schema'
4
+
5
+ export type XyoLocationPayload = XyoPayload<{
6
+ schema: XyoLocationPayloadSchema
7
+ currentLocation: {
8
+ coords: {
9
+ accuracy?: number
10
+ altitude?: number
11
+ altitudeAccuracy?: number
12
+ heading?: number
13
+ latitude?: number
14
+ longitude?: number
15
+ speed?: number
16
+ }
17
+ timestamp: number
18
+ }
19
+ }>
@@ -0,0 +1,11 @@
1
+ import { XyoPayloadPluginResolver } from '@xyo-network/payload-plugin'
2
+
3
+ import { XyoLocationPayloadPlugin } from './Plugin'
4
+ import { XyoLocationPayloadSchema } from './Schema'
5
+
6
+ describe('XyoLocationPayloadPlugin', () => {
7
+ test('Add to Resolver', () => {
8
+ const resolver = new XyoPayloadPluginResolver().register(XyoLocationPayloadPlugin())
9
+ expect(resolver.resolve({ schema: XyoLocationPayloadSchema })).toBeDefined()
10
+ })
11
+ })
package/src/Plugin.ts ADDED
@@ -0,0 +1,16 @@
1
+ import { createXyoPayloadPlugin, XyoPayloadPluginFunc } from '@xyo-network/payload-plugin'
2
+
3
+ import { XyoLocationPayload } from './Payload'
4
+ import { XyoLocationPayloadSchema } from './Schema'
5
+ import { XyoLocationPayloadTemplate } from './Template'
6
+ import { XyoLocationWitness } from './Witness'
7
+
8
+ export const XyoLocationPayloadPlugin: XyoPayloadPluginFunc<XyoLocationPayloadSchema, XyoLocationPayload> = () =>
9
+ createXyoPayloadPlugin({
10
+ auto: true,
11
+ schema: XyoLocationPayloadSchema,
12
+ template: XyoLocationPayloadTemplate,
13
+ witness: (): XyoLocationWitness => {
14
+ return new XyoLocationWitness()
15
+ },
16
+ })
package/src/Schema.ts ADDED
@@ -0,0 +1,2 @@
1
+ export type XyoLocationPayloadSchema = 'network.xyo.location'
2
+ export const XyoLocationPayloadSchema: XyoLocationPayloadSchema = 'network.xyo.location'
@@ -0,0 +1,20 @@
1
+ import { XyoLocationPayload } from './Payload'
2
+ import { XyoLocationPayloadSchema } from './Schema'
3
+
4
+ export const XyoLocationPayloadTemplate = (): XyoLocationPayload => {
5
+ return {
6
+ currentLocation: {
7
+ coords: {
8
+ accuracy: undefined,
9
+ altitude: undefined,
10
+ altitudeAccuracy: undefined,
11
+ heading: undefined,
12
+ latitude: undefined,
13
+ longitude: undefined,
14
+ speed: undefined,
15
+ },
16
+ timestamp: Date.now(),
17
+ },
18
+ schema: XyoLocationPayloadSchema,
19
+ }
20
+ }
package/src/Witness.ts ADDED
@@ -0,0 +1,50 @@
1
+ import { XyoSimpleWitness } from '@xyo-network/witness'
2
+
3
+ import { XyoLocationPayload } from './Payload'
4
+ import { XyoLocationPayloadSchema } from './Schema'
5
+ import { XyoLocationPayloadTemplate } from './Template'
6
+
7
+ export class XyoLocationWitness extends XyoSimpleWitness<XyoLocationPayload> {
8
+ private geoLocation: Geolocation
9
+ constructor() {
10
+ const template = XyoLocationPayloadTemplate()
11
+ super({
12
+ schema: template.schema,
13
+ template,
14
+ })
15
+ this.geoLocation = navigator.geolocation
16
+ }
17
+
18
+ public getCurrentPosition() {
19
+ return new Promise<GeolocationPosition>((resolve, reject) => {
20
+ this.geoLocation.getCurrentPosition(
21
+ (position: GeolocationPosition) => {
22
+ resolve(position)
23
+ },
24
+ (error: GeolocationPositionError) => {
25
+ reject(error)
26
+ }
27
+ )
28
+ })
29
+ }
30
+
31
+ override async observe() {
32
+ const location = await this.getCurrentPosition()
33
+ return await super.observe({
34
+ currentLocation: {
35
+ coords: {
36
+ accuracy: location.coords.accuracy,
37
+ altitude: location.coords.altitude ?? undefined,
38
+ altitudeAccuracy: location.coords.altitudeAccuracy ?? undefined,
39
+ heading: location.coords.heading ?? undefined,
40
+ latitude: location.coords.latitude,
41
+ longitude: location.coords.longitude,
42
+ speed: location.coords.speed ?? undefined,
43
+ },
44
+ timestamp: location.timestamp,
45
+ },
46
+ })
47
+ }
48
+
49
+ static schema: XyoLocationPayloadSchema = XyoLocationPayloadSchema
50
+ }
package/src/index.ts CHANGED
@@ -1,14 +1,11 @@
1
- import { createXyoPayloadPlugin, XyoPayloadPluginFunc } from '@xyo-network/payload-plugin'
2
- import { XyoLocationPayload, XyoLocationWitness } from '@xyo-network/witnesses'
1
+ import { XyoLocationPayloadPlugin } from './Plugin'
3
2
 
4
- const plugin: XyoPayloadPluginFunc<'network.xyo.location', XyoLocationPayload> = () =>
5
- createXyoPayloadPlugin({
6
- auto: true,
7
- schema: 'network.xyo.location',
8
- witness: (): XyoLocationWitness => {
9
- return new XyoLocationWitness()
10
- },
11
- })
3
+ export * from './Payload'
4
+ export * from './Schema'
5
+ export * from './Template'
6
+ export * from './Witness'
7
+
8
+ export { XyoLocationPayloadPlugin }
12
9
 
13
10
  // eslint-disable-next-line import/no-default-export
14
- export default plugin
11
+ export default XyoLocationPayloadPlugin
package/src/index.spec.ts DELETED
@@ -1,10 +0,0 @@
1
- import { XyoPayloadPluginResolver } from '@xyo-network/payload-plugin'
2
-
3
- import Plugin from './index'
4
-
5
- describe('XyoLocationPayloadPlugin', () => {
6
- test('Add to Resolver', () => {
7
- const resolver = new XyoPayloadPluginResolver().register(Plugin())
8
- expect(resolver.resolve({ schema: 'network.xyo.location' })).toBeDefined()
9
- })
10
- })