@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.
- package/dist/cjs/Payload.d.ts +18 -0
- package/dist/cjs/Payload.d.ts.map +1 -0
- package/dist/cjs/Payload.js +3 -0
- package/dist/cjs/Payload.js.map +1 -0
- package/dist/cjs/Plugin.d.ts +5 -0
- package/dist/cjs/Plugin.d.ts.map +1 -0
- package/dist/cjs/Plugin.js +17 -0
- package/dist/cjs/Plugin.js.map +1 -0
- package/dist/cjs/Schema.d.ts +3 -0
- package/dist/cjs/Schema.d.ts.map +1 -0
- package/dist/cjs/Schema.js +5 -0
- package/dist/cjs/Schema.js.map +1 -0
- package/dist/cjs/Template.d.ts +3 -0
- package/dist/cjs/Template.d.ts.map +1 -0
- package/dist/cjs/Template.js +23 -0
- package/dist/cjs/Template.js.map +1 -0
- package/dist/cjs/Witness.d.ts +11 -0
- package/dist/cjs/Witness.d.ts.map +1 -0
- package/dist/cjs/Witness.js +52 -0
- package/dist/cjs/Witness.js.map +1 -0
- package/dist/cjs/index.d.ts +7 -4
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +9 -10
- package/dist/cjs/index.js.map +1 -1
- package/dist/docs.json +775 -8
- package/dist/esm/Payload.d.ts +18 -0
- package/dist/esm/Payload.d.ts.map +1 -0
- package/dist/esm/Payload.js +2 -0
- package/dist/esm/Payload.js.map +1 -0
- package/dist/esm/Plugin.d.ts +5 -0
- package/dist/esm/Plugin.d.ts.map +1 -0
- package/dist/esm/Plugin.js +13 -0
- package/dist/esm/Plugin.js.map +1 -0
- package/dist/esm/Schema.d.ts +3 -0
- package/dist/esm/Schema.d.ts.map +1 -0
- package/dist/esm/Schema.js +2 -0
- package/dist/esm/Schema.js.map +1 -0
- package/dist/esm/Template.d.ts +3 -0
- package/dist/esm/Template.d.ts.map +1 -0
- package/dist/esm/Template.js +19 -0
- package/dist/esm/Template.js.map +1 -0
- package/dist/esm/Witness.d.ts +11 -0
- package/dist/esm/Witness.d.ts.map +1 -0
- package/dist/esm/Witness.js +42 -0
- package/dist/esm/Witness.js.map +1 -0
- package/dist/esm/index.d.ts +7 -4
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +7 -10
- package/dist/esm/index.js.map +1 -1
- package/package.json +5 -4
- package/src/Payload.ts +19 -0
- package/src/Plugin.spec.ts +11 -0
- package/src/Plugin.ts +16 -0
- package/src/Schema.ts +2 -0
- package/src/Template.ts +20 -0
- package/src/Witness.ts +50 -0
- package/src/index.ts +8 -11
- 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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"Schema.js","sourceRoot":"","sources":["../../src/Schema.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,wBAAwB,GAA6B,sBAAsB,CAAA"}
|
|
@@ -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"}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
export
|
|
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
|
package/dist/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
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 {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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
|
|
8
|
+
export default XyoLocationPayloadPlugin;
|
|
12
9
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
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.
|
|
14
|
-
"@xyo-network/payload-plugin": "^2.
|
|
15
|
-
"@xyo-network/
|
|
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.
|
|
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
package/src/Template.ts
ADDED
|
@@ -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 {
|
|
2
|
-
import { XyoLocationPayload, XyoLocationWitness } from '@xyo-network/witnesses'
|
|
1
|
+
import { XyoLocationPayloadPlugin } from './Plugin'
|
|
3
2
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
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
|
|
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
|
-
})
|