@xyo-network/location-payload-plugin 2.41.11 → 2.41.12
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/CurrentLocationPayloadSet.d.ts +3 -0
- package/dist/cjs/CurrentLocationPayloadSet.d.ts.map +1 -0
- package/dist/cjs/CurrentLocationPayloadSet.js +16 -0
- package/dist/cjs/CurrentLocationPayloadSet.js.map +1 -0
- package/dist/cjs/CurrentLocationWitness.d.ts +21 -0
- package/dist/cjs/CurrentLocationWitness.d.ts.map +1 -0
- package/dist/cjs/{Witness.js → CurrentLocationWitness.js} +20 -18
- package/dist/cjs/CurrentLocationWitness.js.map +1 -0
- package/dist/cjs/GeographicCoordinateSystemLocationPayload.d.ts +19 -0
- package/dist/cjs/GeographicCoordinateSystemLocationPayload.d.ts.map +1 -0
- package/dist/cjs/GeographicCoordinateSystemLocationPayload.js +3 -0
- package/dist/cjs/GeographicCoordinateSystemLocationPayload.js.map +1 -0
- package/dist/cjs/GeographicCoordinateSystemLocationSchema.d.ts +7 -0
- package/dist/cjs/GeographicCoordinateSystemLocationSchema.d.ts.map +1 -0
- package/dist/cjs/GeographicCoordinateSystemLocationSchema.js +7 -0
- package/dist/cjs/GeographicCoordinateSystemLocationSchema.js.map +1 -0
- package/dist/cjs/HeadingPayload.d.ts +16 -0
- package/dist/cjs/HeadingPayload.d.ts.map +1 -0
- package/dist/cjs/{Payload.js → HeadingPayload.js} +1 -1
- package/dist/cjs/HeadingPayload.js.map +1 -0
- package/dist/cjs/HeadingSchema.d.ts +3 -0
- package/dist/cjs/HeadingSchema.d.ts.map +1 -0
- package/dist/cjs/HeadingSchema.js +5 -0
- package/dist/cjs/HeadingSchema.js.map +1 -0
- package/dist/cjs/Plugin.d.ts +6 -13
- package/dist/cjs/Plugin.d.ts.map +1 -1
- package/dist/cjs/Plugin.js +9 -11
- package/dist/cjs/Plugin.js.map +1 -1
- package/dist/cjs/Schema.d.ts +2 -2
- package/dist/cjs/Schema.d.ts.map +1 -1
- package/dist/cjs/Schema.js +2 -2
- package/dist/cjs/Schema.js.map +1 -1
- package/dist/cjs/index.d.ts +9 -6
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +9 -6
- package/dist/cjs/index.js.map +1 -1
- package/dist/docs.json +1655 -1165
- package/dist/esm/CurrentLocationPayloadSet.d.ts +3 -0
- package/dist/esm/CurrentLocationPayloadSet.d.ts.map +1 -0
- package/dist/esm/CurrentLocationPayloadSet.js +13 -0
- package/dist/esm/CurrentLocationPayloadSet.js.map +1 -0
- package/dist/esm/CurrentLocationWitness.d.ts +21 -0
- package/dist/esm/CurrentLocationWitness.d.ts.map +1 -0
- package/dist/esm/{Witness.js → CurrentLocationWitness.js} +18 -16
- package/dist/esm/CurrentLocationWitness.js.map +1 -0
- package/dist/esm/GeographicCoordinateSystemLocationPayload.d.ts +19 -0
- package/dist/esm/GeographicCoordinateSystemLocationPayload.d.ts.map +1 -0
- package/dist/esm/GeographicCoordinateSystemLocationPayload.js +2 -0
- package/dist/esm/GeographicCoordinateSystemLocationPayload.js.map +1 -0
- package/dist/esm/GeographicCoordinateSystemLocationSchema.d.ts +7 -0
- package/dist/esm/GeographicCoordinateSystemLocationSchema.d.ts.map +1 -0
- package/dist/esm/GeographicCoordinateSystemLocationSchema.js +4 -0
- package/dist/esm/GeographicCoordinateSystemLocationSchema.js.map +1 -0
- package/dist/esm/HeadingPayload.d.ts +16 -0
- package/dist/esm/HeadingPayload.d.ts.map +1 -0
- package/dist/esm/HeadingPayload.js +2 -0
- package/dist/esm/HeadingPayload.js.map +1 -0
- package/dist/esm/HeadingSchema.d.ts +3 -0
- package/dist/esm/HeadingSchema.d.ts.map +1 -0
- package/dist/esm/HeadingSchema.js +2 -0
- package/dist/esm/HeadingSchema.js.map +1 -0
- package/dist/esm/Plugin.d.ts +6 -13
- package/dist/esm/Plugin.d.ts.map +1 -1
- package/dist/esm/Plugin.js +7 -9
- package/dist/esm/Plugin.js.map +1 -1
- package/dist/esm/Schema.d.ts +2 -2
- package/dist/esm/Schema.d.ts.map +1 -1
- package/dist/esm/Schema.js +1 -1
- package/dist/esm/Schema.js.map +1 -1
- package/dist/esm/index.d.ts +9 -6
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +9 -6
- package/dist/esm/index.js.map +1 -1
- package/package.json +5 -6
- package/src/CurrentLocationPayloadSet.ts +14 -0
- package/src/CurrentLocationWitness.ts +71 -0
- package/src/GeographicCoordinateSystemLocationPayload.ts +26 -0
- package/src/GeographicCoordinateSystemLocationSchema.ts +8 -0
- package/src/HeadingPayload.ts +23 -0
- package/src/HeadingSchema.ts +2 -0
- package/src/Plugin.spec.ts +10 -10
- package/src/Plugin.ts +13 -13
- package/src/Schema.ts +2 -2
- package/src/index.ts +9 -6
- package/dist/cjs/Payload.d.ts +0 -27
- package/dist/cjs/Payload.d.ts.map +0 -1
- package/dist/cjs/Payload.js.map +0 -1
- package/dist/cjs/Template.d.ts +0 -3
- package/dist/cjs/Template.d.ts.map +0 -1
- package/dist/cjs/Template.js +0 -20
- package/dist/cjs/Template.js.map +0 -1
- package/dist/cjs/Witness.d.ts +0 -22
- package/dist/cjs/Witness.d.ts.map +0 -1
- package/dist/cjs/Witness.js.map +0 -1
- package/dist/esm/Payload.d.ts +0 -27
- package/dist/esm/Payload.d.ts.map +0 -1
- package/dist/esm/Payload.js +0 -2
- package/dist/esm/Payload.js.map +0 -1
- package/dist/esm/Template.d.ts +0 -3
- package/dist/esm/Template.d.ts.map +0 -1
- package/dist/esm/Template.js +0 -16
- package/dist/esm/Template.js.map +0 -1
- package/dist/esm/Witness.d.ts +0 -22
- package/dist/esm/Witness.d.ts.map +0 -1
- package/dist/esm/Witness.js.map +0 -1
- package/src/Payload.ts +0 -33
- package/src/Template.ts +0 -17
- package/src/Witness.ts +0 -70
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CurrentLocationPayloadSet.d.ts","sourceRoot":"","sources":["../../src/CurrentLocationPayloadSet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAoB,MAAM,sBAAsB,CAAA;AAK1E,eAAO,MAAM,yBAAyB,EAAE,iBAQvC,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { PayloadSetSchema } from '@xyo-network/payload';
|
|
2
|
+
import { LocationSchema } from './GeographicCoordinateSystemLocationSchema';
|
|
3
|
+
import { LocationHeadingSchema } from './HeadingSchema';
|
|
4
|
+
export const CurrentLocationPayloadSet = {
|
|
5
|
+
optional: {
|
|
6
|
+
[LocationHeadingSchema]: 1,
|
|
7
|
+
},
|
|
8
|
+
required: {
|
|
9
|
+
[LocationSchema]: 1,
|
|
10
|
+
},
|
|
11
|
+
schema: PayloadSetSchema,
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=CurrentLocationPayloadSet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CurrentLocationPayloadSet.js","sourceRoot":"","sources":["../../src/CurrentLocationPayloadSet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAE1E,OAAO,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAA;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AAEvD,MAAM,CAAC,MAAM,yBAAyB,GAAsB;IAC1D,QAAQ,EAAE;QACR,CAAC,qBAAqB,CAAC,EAAE,CAAC;KAC3B;IACD,QAAQ,EAAE;QACR,CAAC,cAAc,CAAC,EAAE,CAAC;KACpB;IACD,MAAM,EAAE,gBAAgB;CACzB,CAAA"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { XyoModuleParams } from '@xyo-network/module';
|
|
2
|
+
import { XyoPayload } from '@xyo-network/payload';
|
|
3
|
+
import { AbstractWitness, XyoWitnessConfig } from '@xyo-network/witness';
|
|
4
|
+
export type CurrentLocationWitnessConfigSchema = 'network.xyo.location.current.config';
|
|
5
|
+
export declare const CurrentLocationWitnessConfigSchema: CurrentLocationWitnessConfigSchema;
|
|
6
|
+
export type CurrentLocationWitnessConfig = XyoWitnessConfig<{
|
|
7
|
+
schema: CurrentLocationWitnessConfigSchema;
|
|
8
|
+
}>;
|
|
9
|
+
export type CurrentLocationWitnessParams = XyoModuleParams<CurrentLocationWitnessConfig> & {
|
|
10
|
+
geolocation: Geolocation;
|
|
11
|
+
};
|
|
12
|
+
export declare class CurrentLocationWitness extends AbstractWitness<CurrentLocationWitnessConfig> {
|
|
13
|
+
static configSchema: "network.xyo.location.current.config";
|
|
14
|
+
private _geolocation;
|
|
15
|
+
constructor(params: CurrentLocationWitnessParams);
|
|
16
|
+
get geolocation(): Geolocation;
|
|
17
|
+
static create(params?: XyoModuleParams<CurrentLocationWitnessConfig>): Promise<CurrentLocationWitness>;
|
|
18
|
+
getCurrentPosition(): Promise<GeolocationPosition>;
|
|
19
|
+
observe(_fields: XyoPayload[]): Promise<XyoPayload[]>;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=CurrentLocationWitness.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CurrentLocationWitness.d.ts","sourceRoot":"","sources":["../../src/CurrentLocationWitness.ts"],"names":[],"mappings":"AACA,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;AAOxE,MAAM,MAAM,kCAAkC,GAAG,qCAAqC,CAAA;AACtF,eAAO,MAAM,kCAAkC,EAAE,kCAA0E,CAAA;AAE3H,MAAM,MAAM,4BAA4B,GAAG,gBAAgB,CAAC;IAC1D,MAAM,EAAE,kCAAkC,CAAA;CAC3C,CAAC,CAAA;AAEF,MAAM,MAAM,4BAA4B,GAAG,eAAe,CAAC,4BAA4B,CAAC,GAAG;IAAE,WAAW,EAAE,WAAW,CAAA;CAAE,CAAA;AAEvH,qBAAa,sBAAuB,SAAQ,eAAe,CAAC,4BAA4B,CAAC;IACvF,OAAgB,YAAY,wCAAqC;IAEjE,OAAO,CAAC,YAAY,CAAa;gBAErB,MAAM,EAAE,4BAA4B;IAKhD,IAAW,WAAW,IAAI,WAAW,CAEpC;WAEqB,MAAM,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC,4BAA4B,CAAC,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAI9G,kBAAkB;IAaV,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;CAoBrE"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { assertEx } from '@xylabs/assert';
|
|
2
|
-
import { Quadkey } from '@xyo-network/quadkey';
|
|
3
2
|
import { AbstractWitness } from '@xyo-network/witness';
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
export
|
|
7
|
-
|
|
8
|
-
static
|
|
3
|
+
import { LocationSchema } from './GeographicCoordinateSystemLocationSchema';
|
|
4
|
+
import { LocationHeadingSchema } from './HeadingSchema';
|
|
5
|
+
export const CurrentLocationWitnessConfigSchema = 'network.xyo.location.current.config';
|
|
6
|
+
export class CurrentLocationWitness extends AbstractWitness {
|
|
7
|
+
static configSchema = CurrentLocationWitnessConfigSchema;
|
|
9
8
|
_geolocation;
|
|
10
9
|
constructor(params) {
|
|
11
10
|
super(params);
|
|
@@ -28,20 +27,23 @@ export class XyoLocationWitness extends AbstractWitness {
|
|
|
28
27
|
}
|
|
29
28
|
async observe(_fields) {
|
|
30
29
|
const location = await this.getCurrentPosition();
|
|
31
|
-
const
|
|
32
|
-
const payload = {
|
|
33
|
-
accuracy: location.coords.accuracy,
|
|
30
|
+
const locationPayload = {
|
|
34
31
|
altitude: location.coords.altitude ?? undefined,
|
|
35
32
|
altitudeAccuracy: location.coords.altitudeAccuracy ?? undefined,
|
|
36
|
-
heading: location.coords.heading ?? undefined,
|
|
37
33
|
latitude: location.coords.latitude,
|
|
38
34
|
longitude: location.coords.longitude,
|
|
39
|
-
|
|
40
|
-
schema: XyoLocationSchema,
|
|
41
|
-
speed: location.coords.speed ?? undefined,
|
|
42
|
-
time: Date.now(),
|
|
35
|
+
schema: LocationSchema,
|
|
43
36
|
};
|
|
44
|
-
|
|
37
|
+
const heading = location.coords.heading
|
|
38
|
+
? [
|
|
39
|
+
{
|
|
40
|
+
heading: location.coords.heading ?? undefined,
|
|
41
|
+
schema: LocationHeadingSchema,
|
|
42
|
+
speed: location.coords.speed ?? undefined,
|
|
43
|
+
},
|
|
44
|
+
]
|
|
45
|
+
: [];
|
|
46
|
+
return super.observe([locationPayload, ...heading]);
|
|
45
47
|
}
|
|
46
48
|
}
|
|
47
|
-
//# sourceMappingURL=
|
|
49
|
+
//# sourceMappingURL=CurrentLocationWitness.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CurrentLocationWitness.js","sourceRoot":"","sources":["../../src/CurrentLocationWitness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAGzC,OAAO,EAAE,eAAe,EAAoB,MAAM,sBAAsB,CAAA;AAGxE,OAAO,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAA;AAE3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AAGvD,MAAM,CAAC,MAAM,kCAAkC,GAAuC,qCAAqC,CAAA;AAQ3H,MAAM,OAAO,sBAAuB,SAAQ,eAA6C;IACvF,MAAM,CAAU,YAAY,GAAG,kCAAkC,CAAA;IAEzD,YAAY,CAAa;IAEjC,YAAY,MAAoC;QAC9C,KAAK,CAAC,MAAM,CAAC,CAAA;QACb,IAAI,CAAC,YAAY,GAAG,MAAM,EAAE,WAAW,CAAA;IACzC,CAAC;IAED,IAAW,WAAW;QACpB,OAAO,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,yBAAyB,CAAC,CAAA;IAC/D,CAAC;IAED,MAAM,CAAU,KAAK,CAAC,MAAM,CAAC,MAAsD;QACjF,OAAO,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAA2B,CAAA;IAC/D,CAAC;IAEM,kBAAkB;QACvB,OAAO,IAAI,OAAO,CAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1D,IAAI,CAAC,WAAW,EAAE,kBAAkB,CAClC,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,CAAC,OAAqB;QAC1C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAA;QAChD,MAAM,eAAe,GAAoB;YACvC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,IAAI,SAAS;YAC/C,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,gBAAgB,IAAI,SAAS;YAC/D,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ;YAClC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS;YACpC,MAAM,EAAE,cAAc;SACvB,CAAA;QACD,MAAM,OAAO,GAA6B,QAAQ,CAAC,MAAM,CAAC,OAAO;YAC/D,CAAC,CAAC;gBACE;oBACE,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,IAAI,SAAS;oBAC7C,MAAM,EAAE,qBAAqB;oBAC7B,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,IAAI,SAAS;iBAC1C;aACF;YACH,CAAC,CAAC,EAAE,CAAA;QACN,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,eAAe,EAAE,GAAG,OAAO,CAAC,CAAC,CAAA;IACrD,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { XyoPayload } from '@xyo-network/payload';
|
|
2
|
+
import { GeographicCoordinateSystemLocationSchema, QuadkeyLocationSchema } from './GeographicCoordinateSystemLocationSchema';
|
|
3
|
+
export interface GeographicCoordinateSystemLocation {
|
|
4
|
+
accuracy?: number;
|
|
5
|
+
altitude?: number;
|
|
6
|
+
altitudeAccuracy?: number;
|
|
7
|
+
latitude: number;
|
|
8
|
+
longitude: number;
|
|
9
|
+
}
|
|
10
|
+
export interface QuadkeyLocation {
|
|
11
|
+
altitude?: number;
|
|
12
|
+
altitudeAccuracy?: number;
|
|
13
|
+
quadkey: string;
|
|
14
|
+
}
|
|
15
|
+
export type Location = GeographicCoordinateSystemLocation | QuadkeyLocation;
|
|
16
|
+
export type GeographicCoordinateSystemLocationPayload = XyoPayload<GeographicCoordinateSystemLocation, GeographicCoordinateSystemLocationSchema>;
|
|
17
|
+
export type QuadkeyLocationPayload = XyoPayload<QuadkeyLocation, QuadkeyLocationSchema>;
|
|
18
|
+
export type LocationPayload = XyoPayload<Location>;
|
|
19
|
+
//# sourceMappingURL=GeographicCoordinateSystemLocationPayload.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GeographicCoordinateSystemLocationPayload.d.ts","sourceRoot":"","sources":["../../src/GeographicCoordinateSystemLocationPayload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,OAAO,EAAE,wCAAwC,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAA;AAG5H,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,MAAM,QAAQ,GAAG,kCAAkC,GAAG,eAAe,CAAA;AAE3E,MAAM,MAAM,yCAAyC,GAAG,UAAU,CAAC,kCAAkC,EAAE,wCAAwC,CAAC,CAAA;AAEhJ,MAAM,MAAM,sBAAsB,GAAG,UAAU,CAAC,eAAe,EAAE,qBAAqB,CAAC,CAAA;AAEvF,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GeographicCoordinateSystemLocationPayload.js","sourceRoot":"","sources":["../../src/GeographicCoordinateSystemLocationPayload.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export type GeographicCoordinateSystemLocationSchema = 'network.xyo.location.gcs';
|
|
2
|
+
export declare const GeographicCoordinateSystemLocationSchema: GeographicCoordinateSystemLocationSchema;
|
|
3
|
+
export type QuadkeyLocationSchema = 'network.xyo.location.quadkey';
|
|
4
|
+
export declare const QuadkeyLocationSchema: QuadkeyLocationSchema;
|
|
5
|
+
export type LocationSchema = 'network.xyo.location';
|
|
6
|
+
export declare const LocationSchema: LocationSchema;
|
|
7
|
+
//# sourceMappingURL=GeographicCoordinateSystemLocationSchema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GeographicCoordinateSystemLocationSchema.d.ts","sourceRoot":"","sources":["../../src/GeographicCoordinateSystemLocationSchema.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,wCAAwC,GAAG,0BAA0B,CAAA;AACjF,eAAO,MAAM,wCAAwC,EAAE,wCAAqE,CAAA;AAE5H,MAAM,MAAM,qBAAqB,GAAG,8BAA8B,CAAA;AAClE,eAAO,MAAM,qBAAqB,EAAE,qBAAsD,CAAA;AAE1F,MAAM,MAAM,cAAc,GAAG,sBAAsB,CAAA;AACnD,eAAO,MAAM,cAAc,EAAE,cAAuC,CAAA"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export const GeographicCoordinateSystemLocationSchema = 'network.xyo.location.gcs';
|
|
2
|
+
export const QuadkeyLocationSchema = 'network.xyo.location.quadkey';
|
|
3
|
+
export const LocationSchema = 'network.xyo.location';
|
|
4
|
+
//# sourceMappingURL=GeographicCoordinateSystemLocationSchema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GeographicCoordinateSystemLocationSchema.js","sourceRoot":"","sources":["../../src/GeographicCoordinateSystemLocationSchema.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,wCAAwC,GAA6C,0BAA0B,CAAA;AAG5H,MAAM,CAAC,MAAM,qBAAqB,GAA0B,8BAA8B,CAAA;AAG1F,MAAM,CAAC,MAAM,cAAc,GAAmB,sBAAsB,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { XyoPayload } from '@xyo-network/payload';
|
|
2
|
+
import { LocationHeadingSchema } from './HeadingSchema';
|
|
3
|
+
export type Acceleration = {
|
|
4
|
+
acceleration: number;
|
|
5
|
+
};
|
|
6
|
+
export type Heading = {
|
|
7
|
+
heading: number;
|
|
8
|
+
};
|
|
9
|
+
export type Speed = {
|
|
10
|
+
speed: number;
|
|
11
|
+
};
|
|
12
|
+
export type Velocity = Heading & Speed;
|
|
13
|
+
export type Motion = Velocity & Partial<Acceleration>;
|
|
14
|
+
export type LocationHeading = Motion | Heading;
|
|
15
|
+
export type LocationHeadingPayload = XyoPayload<LocationHeading, LocationHeadingSchema>;
|
|
16
|
+
//# sourceMappingURL=HeadingPayload.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HeadingPayload.d.ts","sourceRoot":"","sources":["../../src/HeadingPayload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AAEvD,MAAM,MAAM,YAAY,GAAG;IACzB,YAAY,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,OAAO,GAAG;IACpB,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,KAAK,GAAG;IAClB,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,KAAK,CAAA;AAEtC,MAAM,MAAM,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;AAErD,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,OAAO,CAAA;AAE9C,MAAM,MAAM,sBAAsB,GAAG,UAAU,CAAC,eAAe,EAAE,qBAAqB,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HeadingPayload.js","sourceRoot":"","sources":["../../src/HeadingPayload.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HeadingSchema.d.ts","sourceRoot":"","sources":["../../src/HeadingSchema.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,qBAAqB,GAAG,8BAA8B,CAAA;AAClE,eAAO,MAAM,qBAAqB,EAAE,qBAAsD,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HeadingSchema.js","sourceRoot":"","sources":["../../src/HeadingSchema.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,qBAAqB,GAA0B,8BAA8B,CAAA"}
|
package/dist/esm/Plugin.d.ts
CHANGED
|
@@ -1,22 +1,15 @@
|
|
|
1
1
|
import { XyoModuleParams } from '@xyo-network/module';
|
|
2
|
-
import {
|
|
3
|
-
export declare const
|
|
2
|
+
import { PayloadSetWitnessPlugin } from '@xyo-network/payloadset-plugin';
|
|
3
|
+
export declare const LocationPlugin: () => PayloadSetWitnessPlugin<XyoModuleParams<import("@xyo-network/payload").SchemaFields & import("@xyo-network/payload").PayloadFields & {
|
|
4
4
|
security?: {
|
|
5
5
|
allowed?: Record<string, string[][]> | undefined;
|
|
6
6
|
disallowed?: Record<string, string[]> | undefined;
|
|
7
7
|
} | undefined;
|
|
8
8
|
} & {
|
|
9
|
-
schema: "network.xyo.location.config";
|
|
9
|
+
schema: "network.xyo.location.current.config";
|
|
10
10
|
} & {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
allowed?: Record<string, string[][]> | undefined;
|
|
15
|
-
disallowed?: Record<string, string[]> | undefined;
|
|
16
|
-
} | undefined;
|
|
17
|
-
} & {
|
|
18
|
-
targetSchema?: string | undefined;
|
|
19
|
-
} & {
|
|
20
|
-
schema: string;
|
|
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;
|
|
21
14
|
}>>;
|
|
22
15
|
//# sourceMappingURL=Plugin.d.ts.map
|
package/dist/esm/Plugin.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Plugin.d.ts","sourceRoot":"","sources":["../../src/Plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"Plugin.d.ts","sourceRoot":"","sources":["../../src/Plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAErD,OAAO,EAA0B,uBAAuB,EAAE,MAAM,gCAAgC,CAAA;AAKhG,eAAO,MAAM,cAAc;;;;;;;;;;;GASxB,CAAA"}
|
package/dist/esm/Plugin.js
CHANGED
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
export const
|
|
6
|
-
auto: true,
|
|
7
|
-
schema: XyoLocationSchema,
|
|
8
|
-
template: XyoLocationPayloadTemplate,
|
|
1
|
+
import { PayloadSetSchema } from '@xyo-network/payload';
|
|
2
|
+
import { createPayloadSetPlugin } from '@xyo-network/payloadset-plugin';
|
|
3
|
+
import { CurrentLocationWitness } from './CurrentLocationWitness';
|
|
4
|
+
import { LocationSchema } from './GeographicCoordinateSystemLocationSchema';
|
|
5
|
+
export const LocationPlugin = () => createPayloadSetPlugin({ required: { [LocationSchema]: 1 }, schema: PayloadSetSchema }, {
|
|
9
6
|
witness: async (params) => {
|
|
10
|
-
|
|
7
|
+
const result = await CurrentLocationWitness.create(params);
|
|
8
|
+
return result;
|
|
11
9
|
},
|
|
12
10
|
});
|
|
13
11
|
//# sourceMappingURL=Plugin.js.map
|
package/dist/esm/Plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Plugin.js","sourceRoot":"","sources":["../../src/Plugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"Plugin.js","sourceRoot":"","sources":["../../src/Plugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,sBAAsB,EAA2B,MAAM,gCAAgC,CAAA;AAEhG,OAAO,EAAE,sBAAsB,EAAgC,MAAM,0BAA0B,CAAA;AAC/F,OAAO,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAA;AAE3E,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,EAAE,CACjC,sBAAsB,CACpB,EAAE,QAAQ,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAC/D;IACE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QACxB,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAC1D,OAAO,MAAM,CAAA;IACf,CAAC;CACF,CACF,CAAA"}
|
package/dist/esm/Schema.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export type
|
|
2
|
-
export declare const
|
|
1
|
+
export type CurrentLocationSchema = 'network.xyo.location.current';
|
|
2
|
+
export declare const CurrentLocationSchema: CurrentLocationSchema;
|
|
3
3
|
//# sourceMappingURL=Schema.d.ts.map
|
package/dist/esm/Schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../src/Schema.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../src/Schema.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,qBAAqB,GAAG,8BAA8B,CAAA;AAClE,eAAO,MAAM,qBAAqB,EAAE,qBAAsD,CAAA"}
|
package/dist/esm/Schema.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const
|
|
1
|
+
export const CurrentLocationSchema = 'network.xyo.location.current';
|
|
2
2
|
//# sourceMappingURL=Schema.js.map
|
package/dist/esm/Schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Schema.js","sourceRoot":"","sources":["../../src/Schema.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"Schema.js","sourceRoot":"","sources":["../../src/Schema.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,qBAAqB,GAA0B,8BAA8B,CAAA"}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export * from './
|
|
1
|
+
import { LocationPlugin } from './Plugin';
|
|
2
|
+
export * from './CurrentLocationPayloadSet';
|
|
3
|
+
export * from './CurrentLocationWitness';
|
|
4
|
+
export * from './GeographicCoordinateSystemLocationPayload';
|
|
5
|
+
export * from './GeographicCoordinateSystemLocationSchema';
|
|
6
|
+
export * from './HeadingPayload';
|
|
7
|
+
export * from './HeadingSchema';
|
|
3
8
|
export * from './Schema';
|
|
4
|
-
export
|
|
5
|
-
export
|
|
6
|
-
export { XyoLocationPayloadPlugin };
|
|
7
|
-
export default XyoLocationPayloadPlugin;
|
|
9
|
+
export { LocationPlugin };
|
|
10
|
+
export default LocationPlugin;
|
|
8
11
|
//# 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,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAEzC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,0BAA0B,CAAA;AACxC,cAAc,6CAA6C,CAAA;AAC3D,cAAc,4CAA4C,CAAA;AAC1D,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,UAAU,CAAA;AAExB,OAAO,EAAE,cAAc,EAAE,CAAA;AAGzB,eAAe,cAAc,CAAA"}
|
package/dist/esm/index.js
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export * from './
|
|
1
|
+
import { LocationPlugin } from './Plugin';
|
|
2
|
+
export * from './CurrentLocationPayloadSet';
|
|
3
|
+
export * from './CurrentLocationWitness';
|
|
4
|
+
export * from './GeographicCoordinateSystemLocationPayload';
|
|
5
|
+
export * from './GeographicCoordinateSystemLocationSchema';
|
|
6
|
+
export * from './HeadingPayload';
|
|
7
|
+
export * from './HeadingSchema';
|
|
3
8
|
export * from './Schema';
|
|
4
|
-
export
|
|
5
|
-
export * from './Witness';
|
|
6
|
-
export { XyoLocationPayloadPlugin };
|
|
9
|
+
export { LocationPlugin };
|
|
7
10
|
// eslint-disable-next-line import/no-default-export
|
|
8
|
-
export default
|
|
11
|
+
export default LocationPlugin;
|
|
9
12
|
//# 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,cAAc,EAAE,MAAM,UAAU,CAAA;AAEzC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,0BAA0B,CAAA;AACxC,cAAc,6CAA6C,CAAA;AAC3D,cAAc,4CAA4C,CAAA;AAC1D,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,UAAU,CAAA;AAExB,OAAO,EAAE,cAAc,EAAE,CAAA;AAEzB,oDAAoD;AACpD,eAAe,cAAc,CAAA"}
|
package/package.json
CHANGED
|
@@ -11,11 +11,10 @@
|
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@xylabs/assert": "^2.6.9",
|
|
14
|
-
"@xyo-network/module": "^2.41.
|
|
15
|
-
"@xyo-network/payload": "^2.41.
|
|
16
|
-
"@xyo-network/
|
|
17
|
-
"@xyo-network/
|
|
18
|
-
"@xyo-network/witness": "^2.41.11",
|
|
14
|
+
"@xyo-network/module": "^2.41.12",
|
|
15
|
+
"@xyo-network/payload": "^2.41.12",
|
|
16
|
+
"@xyo-network/payloadset-plugin": "^2.41.12",
|
|
17
|
+
"@xyo-network/witness": "^2.41.12",
|
|
19
18
|
"tslib": "^2.4.1"
|
|
20
19
|
},
|
|
21
20
|
"description": "Primary SDK for using XYO Protocol 2.0",
|
|
@@ -51,5 +50,5 @@
|
|
|
51
50
|
},
|
|
52
51
|
"sideEffects": false,
|
|
53
52
|
"types": "dist/esm/index.d.ts",
|
|
54
|
-
"version": "2.41.
|
|
53
|
+
"version": "2.41.12"
|
|
55
54
|
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { PayloadSetPayload, PayloadSetSchema } from '@xyo-network/payload'
|
|
2
|
+
|
|
3
|
+
import { LocationSchema } from './GeographicCoordinateSystemLocationSchema'
|
|
4
|
+
import { LocationHeadingSchema } from './HeadingSchema'
|
|
5
|
+
|
|
6
|
+
export const CurrentLocationPayloadSet: PayloadSetPayload = {
|
|
7
|
+
optional: {
|
|
8
|
+
[LocationHeadingSchema]: 1,
|
|
9
|
+
},
|
|
10
|
+
required: {
|
|
11
|
+
[LocationSchema]: 1,
|
|
12
|
+
},
|
|
13
|
+
schema: PayloadSetSchema,
|
|
14
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { assertEx } from '@xylabs/assert'
|
|
2
|
+
import { XyoModuleParams } from '@xyo-network/module'
|
|
3
|
+
import { XyoPayload } from '@xyo-network/payload'
|
|
4
|
+
import { AbstractWitness, XyoWitnessConfig } from '@xyo-network/witness'
|
|
5
|
+
|
|
6
|
+
import { LocationPayload } from './GeographicCoordinateSystemLocationPayload'
|
|
7
|
+
import { LocationSchema } from './GeographicCoordinateSystemLocationSchema'
|
|
8
|
+
import { LocationHeadingPayload } from './HeadingPayload'
|
|
9
|
+
import { LocationHeadingSchema } from './HeadingSchema'
|
|
10
|
+
|
|
11
|
+
export type CurrentLocationWitnessConfigSchema = 'network.xyo.location.current.config'
|
|
12
|
+
export const CurrentLocationWitnessConfigSchema: CurrentLocationWitnessConfigSchema = 'network.xyo.location.current.config'
|
|
13
|
+
|
|
14
|
+
export type CurrentLocationWitnessConfig = XyoWitnessConfig<{
|
|
15
|
+
schema: CurrentLocationWitnessConfigSchema
|
|
16
|
+
}>
|
|
17
|
+
|
|
18
|
+
export type CurrentLocationWitnessParams = XyoModuleParams<CurrentLocationWitnessConfig> & { geolocation: Geolocation }
|
|
19
|
+
|
|
20
|
+
export class CurrentLocationWitness extends AbstractWitness<CurrentLocationWitnessConfig> {
|
|
21
|
+
static override configSchema = CurrentLocationWitnessConfigSchema
|
|
22
|
+
|
|
23
|
+
private _geolocation: Geolocation
|
|
24
|
+
|
|
25
|
+
constructor(params: CurrentLocationWitnessParams) {
|
|
26
|
+
super(params)
|
|
27
|
+
this._geolocation = params?.geolocation
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
public get geolocation(): Geolocation {
|
|
31
|
+
return assertEx(this._geolocation, 'No geolocation provided')
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
static override async create(params?: XyoModuleParams<CurrentLocationWitnessConfig>): Promise<CurrentLocationWitness> {
|
|
35
|
+
return (await super.create(params)) as CurrentLocationWitness
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
public getCurrentPosition() {
|
|
39
|
+
return new Promise<GeolocationPosition>((resolve, reject) => {
|
|
40
|
+
this.geolocation?.getCurrentPosition(
|
|
41
|
+
(position: GeolocationPosition) => {
|
|
42
|
+
resolve(position)
|
|
43
|
+
},
|
|
44
|
+
(error: GeolocationPositionError) => {
|
|
45
|
+
reject(error)
|
|
46
|
+
},
|
|
47
|
+
)
|
|
48
|
+
})
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
override async observe(_fields: XyoPayload[]): Promise<XyoPayload[]> {
|
|
52
|
+
const location = await this.getCurrentPosition()
|
|
53
|
+
const locationPayload: LocationPayload = {
|
|
54
|
+
altitude: location.coords.altitude ?? undefined,
|
|
55
|
+
altitudeAccuracy: location.coords.altitudeAccuracy ?? undefined,
|
|
56
|
+
latitude: location.coords.latitude,
|
|
57
|
+
longitude: location.coords.longitude,
|
|
58
|
+
schema: LocationSchema,
|
|
59
|
+
}
|
|
60
|
+
const heading: LocationHeadingPayload[] = location.coords.heading
|
|
61
|
+
? [
|
|
62
|
+
{
|
|
63
|
+
heading: location.coords.heading ?? undefined,
|
|
64
|
+
schema: LocationHeadingSchema,
|
|
65
|
+
speed: location.coords.speed ?? undefined,
|
|
66
|
+
},
|
|
67
|
+
]
|
|
68
|
+
: []
|
|
69
|
+
return super.observe([locationPayload, ...heading])
|
|
70
|
+
}
|
|
71
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { XyoPayload } from '@xyo-network/payload'
|
|
2
|
+
|
|
3
|
+
import { GeographicCoordinateSystemLocationSchema, QuadkeyLocationSchema } from './GeographicCoordinateSystemLocationSchema'
|
|
4
|
+
|
|
5
|
+
// Geographic Coordinate system (GCS) is the official name of lng/lat system
|
|
6
|
+
export interface GeographicCoordinateSystemLocation {
|
|
7
|
+
accuracy?: number
|
|
8
|
+
altitude?: number
|
|
9
|
+
altitudeAccuracy?: number
|
|
10
|
+
latitude: number
|
|
11
|
+
longitude: number
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export interface QuadkeyLocation {
|
|
15
|
+
altitude?: number
|
|
16
|
+
altitudeAccuracy?: number
|
|
17
|
+
quadkey: string
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export type Location = GeographicCoordinateSystemLocation | QuadkeyLocation
|
|
21
|
+
|
|
22
|
+
export type GeographicCoordinateSystemLocationPayload = XyoPayload<GeographicCoordinateSystemLocation, GeographicCoordinateSystemLocationSchema>
|
|
23
|
+
|
|
24
|
+
export type QuadkeyLocationPayload = XyoPayload<QuadkeyLocation, QuadkeyLocationSchema>
|
|
25
|
+
|
|
26
|
+
export type LocationPayload = XyoPayload<Location>
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export type GeographicCoordinateSystemLocationSchema = 'network.xyo.location.gcs'
|
|
2
|
+
export const GeographicCoordinateSystemLocationSchema: GeographicCoordinateSystemLocationSchema = 'network.xyo.location.gcs'
|
|
3
|
+
|
|
4
|
+
export type QuadkeyLocationSchema = 'network.xyo.location.quadkey'
|
|
5
|
+
export const QuadkeyLocationSchema: QuadkeyLocationSchema = 'network.xyo.location.quadkey'
|
|
6
|
+
|
|
7
|
+
export type LocationSchema = 'network.xyo.location'
|
|
8
|
+
export const LocationSchema: LocationSchema = 'network.xyo.location'
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { XyoPayload } from '@xyo-network/payload'
|
|
2
|
+
|
|
3
|
+
import { LocationHeadingSchema } from './HeadingSchema'
|
|
4
|
+
|
|
5
|
+
export type Acceleration = {
|
|
6
|
+
acceleration: number
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export type Heading = {
|
|
10
|
+
heading: number
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export type Speed = {
|
|
14
|
+
speed: number
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export type Velocity = Heading & Speed
|
|
18
|
+
|
|
19
|
+
export type Motion = Velocity & Partial<Acceleration>
|
|
20
|
+
|
|
21
|
+
export type LocationHeading = Motion | Heading
|
|
22
|
+
|
|
23
|
+
export type LocationHeadingPayload = XyoPayload<LocationHeading, LocationHeadingSchema>
|
package/src/Plugin.spec.ts
CHANGED
|
@@ -2,24 +2,24 @@
|
|
|
2
2
|
* @jest-environment jsdom
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
import {
|
|
5
|
+
import { PayloadSetPluginResolver } from '@xyo-network/payloadset-plugin'
|
|
6
6
|
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
7
|
+
import { CurrentLocationWitnessConfigSchema } from './CurrentLocationWitness'
|
|
8
|
+
import { LocationPlugin } from './Plugin'
|
|
9
|
+
import { CurrentLocationSchema } from './Schema'
|
|
10
10
|
|
|
11
|
-
describe('
|
|
11
|
+
describe('LocationPlugin', () => {
|
|
12
12
|
test('Add to Resolver', () => {
|
|
13
|
-
const
|
|
13
|
+
const plugin = LocationPlugin()
|
|
14
|
+
const resolver = new PayloadSetPluginResolver().register(plugin, {
|
|
14
15
|
witness: {
|
|
15
16
|
config: {
|
|
16
|
-
schema:
|
|
17
|
-
targetSchema: XyoLocationSchema,
|
|
17
|
+
schema: CurrentLocationWitnessConfigSchema,
|
|
18
18
|
},
|
|
19
19
|
geolocation: navigator.geolocation,
|
|
20
20
|
},
|
|
21
21
|
})
|
|
22
|
-
expect(resolver.resolve(
|
|
23
|
-
expect(resolver.witness(
|
|
22
|
+
expect(resolver.resolve(plugin.set)).toBeObject()
|
|
23
|
+
expect(resolver.witness(CurrentLocationSchema)).toBeObject()
|
|
24
24
|
})
|
|
25
25
|
})
|
package/src/Plugin.ts
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { XyoModuleParams } from '@xyo-network/module'
|
|
2
|
-
import {
|
|
2
|
+
import { PayloadSetSchema } from '@xyo-network/payload'
|
|
3
|
+
import { createPayloadSetPlugin, PayloadSetWitnessPlugin } from '@xyo-network/payloadset-plugin'
|
|
3
4
|
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { XyoLocationPayloadTemplate } from './Template'
|
|
7
|
-
import { XyoLocationWitness, XyoLocationWitnessConfig } from './Witness'
|
|
5
|
+
import { CurrentLocationWitness, CurrentLocationWitnessConfig } from './CurrentLocationWitness'
|
|
6
|
+
import { LocationSchema } from './GeographicCoordinateSystemLocationSchema'
|
|
8
7
|
|
|
9
|
-
export const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
8
|
+
export const LocationPlugin = () =>
|
|
9
|
+
createPayloadSetPlugin<PayloadSetWitnessPlugin<XyoModuleParams<CurrentLocationWitnessConfig>>>(
|
|
10
|
+
{ required: { [LocationSchema]: 1 }, schema: PayloadSetSchema },
|
|
11
|
+
{
|
|
12
|
+
witness: async (params) => {
|
|
13
|
+
const result = await CurrentLocationWitness.create(params)
|
|
14
|
+
return result
|
|
15
|
+
},
|
|
16
16
|
},
|
|
17
|
-
|
|
17
|
+
)
|
package/src/Schema.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export type
|
|
2
|
-
export const
|
|
1
|
+
export type CurrentLocationSchema = 'network.xyo.location.current'
|
|
2
|
+
export const CurrentLocationSchema: CurrentLocationSchema = 'network.xyo.location.current'
|