@xyo-network/location-certainty-plugin 2.75.0 → 2.75.2

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 (52) hide show
  1. package/dist/browser/Diviner/Config.d.cts +10 -0
  2. package/dist/browser/Diviner/Config.d.cts.map +1 -0
  3. package/dist/browser/Diviner/Config.js +1 -2
  4. package/dist/browser/Diviner/Config.js.map +1 -1
  5. package/dist/browser/Diviner/Diviner.d.cts +15 -0
  6. package/dist/browser/Diviner/Diviner.d.cts.map +1 -0
  7. package/dist/browser/Diviner/Diviner.js +7 -12
  8. package/dist/browser/Diviner/Diviner.js.map +1 -1
  9. package/dist/browser/Diviner/index.d.cts +3 -0
  10. package/dist/browser/Diviner/index.d.cts.map +1 -0
  11. package/dist/browser/Diviner/index.js +2 -78
  12. package/dist/browser/Diviner/index.js.map +1 -1
  13. package/dist/browser/Plugin.d.cts +53 -0
  14. package/dist/browser/Plugin.d.cts.map +1 -0
  15. package/dist/browser/Plugin.js +4 -81
  16. package/dist/browser/Plugin.js.map +1 -1
  17. package/dist/browser/index.d.cts +5 -0
  18. package/dist/browser/index.d.cts.map +1 -0
  19. package/dist/browser/index.js +2 -93
  20. package/dist/browser/index.js.map +1 -1
  21. package/dist/docs.json +22683 -0
  22. package/dist/node/Diviner/Config.d.cts +10 -0
  23. package/dist/node/Diviner/Config.d.cts.map +1 -0
  24. package/dist/node/Diviner/Config.js +3 -1
  25. package/dist/node/Diviner/Config.js.map +1 -1
  26. package/dist/node/Diviner/Config.mjs +2 -1
  27. package/dist/node/Diviner/Config.mjs.map +1 -1
  28. package/dist/node/Diviner/Diviner.d.cts +15 -0
  29. package/dist/node/Diviner/Diviner.d.cts.map +1 -0
  30. package/dist/node/Diviner/Diviner.js +18 -11
  31. package/dist/node/Diviner/Diviner.js.map +1 -1
  32. package/dist/node/Diviner/Diviner.mjs +16 -10
  33. package/dist/node/Diviner/Diviner.mjs.map +1 -1
  34. package/dist/node/Diviner/index.d.cts +3 -0
  35. package/dist/node/Diviner/index.d.cts.map +1 -0
  36. package/dist/node/Diviner/index.js +88 -5
  37. package/dist/node/Diviner/index.js.map +1 -1
  38. package/dist/node/Diviner/index.mjs +79 -2
  39. package/dist/node/Diviner/index.mjs.map +1 -1
  40. package/dist/node/Plugin.d.cts +53 -0
  41. package/dist/node/Plugin.d.cts.map +1 -0
  42. package/dist/node/Plugin.js +84 -5
  43. package/dist/node/Plugin.js.map +1 -1
  44. package/dist/node/Plugin.mjs +82 -4
  45. package/dist/node/Plugin.mjs.map +1 -1
  46. package/dist/node/index.d.cts +5 -0
  47. package/dist/node/index.d.cts.map +1 -0
  48. package/dist/node/index.js +102 -7
  49. package/dist/node/index.js.map +1 -1
  50. package/dist/node/index.mjs +94 -2
  51. package/dist/node/index.mjs.map +1 -1
  52. package/package.json +14 -14
@@ -0,0 +1,10 @@
1
+ import { DivinerConfig } from '@xyo-network/diviner-model';
2
+ import { LocationCertaintySchema } from '@xyo-network/location-certainty-payload-plugin';
3
+ import { Payload } from '@xyo-network/payload-model';
4
+ export type LocationCertaintyDivinerConfigSchema = 'network.xyo.location.elevation.diviner.config';
5
+ export declare const LocationCertaintyDivinerConfigSchema: LocationCertaintyDivinerConfigSchema;
6
+ export type LocationCertaintyDivinerConfig<TConfig extends Payload = Payload> = DivinerConfig<TConfig & {
7
+ schema: LocationCertaintyDivinerConfigSchema;
8
+ targetSchema?: LocationCertaintySchema;
9
+ }>;
10
+ //# sourceMappingURL=Config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../../../src/Diviner/Config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,gDAAgD,CAAA;AACxF,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEpD,MAAM,MAAM,oCAAoC,GAAG,+CAA+C,CAAA;AAClG,eAAO,MAAM,oCAAoC,EAAE,oCAAsF,CAAA;AAEzI,MAAM,MAAM,8BAA8B,CAAC,OAAO,SAAS,OAAO,GAAG,OAAO,IAAI,aAAa,CAC3F,OAAO,GAAG;IACR,MAAM,EAAE,oCAAoC,CAAA;IAC5C,YAAY,CAAC,EAAE,uBAAuB,CAAA;CACvC,CACF,CAAA"}
@@ -1,5 +1,4 @@
1
- // src/Diviner/Config.ts
2
- var LocationCertaintyDivinerConfigSchema = "network.xyo.location.elevation.diviner.config";
1
+ const LocationCertaintyDivinerConfigSchema = "network.xyo.location.elevation.diviner.config";
3
2
  export {
4
3
  LocationCertaintyDivinerConfigSchema
5
4
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/Diviner/Config.ts"],"sourcesContent":["import { DivinerConfig } from '@xyo-network/diviner-model'\nimport { LocationCertaintySchema } from '@xyo-network/location-certainty-payload-plugin'\nimport { Payload } from '@xyo-network/payload-model'\n\nexport type LocationCertaintyDivinerConfigSchema = 'network.xyo.location.elevation.diviner.config'\nexport const LocationCertaintyDivinerConfigSchema: LocationCertaintyDivinerConfigSchema = 'network.xyo.location.elevation.diviner.config'\n\nexport type LocationCertaintyDivinerConfig<TConfig extends Payload = Payload> = DivinerConfig<\n TConfig & {\n schema: LocationCertaintyDivinerConfigSchema\n targetSchema?: LocationCertaintySchema\n }\n>\n"],"mappings":";AAKO,IAAM,uCAA6E;","names":[]}
1
+ {"version":3,"sources":["../../../src/Diviner/Config.ts"],"sourcesContent":["import { DivinerConfig } from '@xyo-network/diviner-model'\nimport { LocationCertaintySchema } from '@xyo-network/location-certainty-payload-plugin'\nimport { Payload } from '@xyo-network/payload-model'\n\nexport type LocationCertaintyDivinerConfigSchema = 'network.xyo.location.elevation.diviner.config'\nexport const LocationCertaintyDivinerConfigSchema: LocationCertaintyDivinerConfigSchema = 'network.xyo.location.elevation.diviner.config'\n\nexport type LocationCertaintyDivinerConfig<TConfig extends Payload = Payload> = DivinerConfig<\n TConfig & {\n schema: LocationCertaintyDivinerConfigSchema\n targetSchema?: LocationCertaintySchema\n }\n>\n"],"mappings":"AAKO,MAAM,uCAA6E;","names":[]}
@@ -0,0 +1,15 @@
1
+ import { AbstractDiviner } from '@xyo-network/abstract-diviner';
2
+ import { DivinerModule, DivinerParams } from '@xyo-network/diviner-model';
3
+ import { AnyConfigSchema } from '@xyo-network/module';
4
+ import { Payload } from '@xyo-network/payload-model';
5
+ import { LocationCertaintyDivinerConfig } from './Config';
6
+ export type LocationCertaintyDivinerParams = DivinerParams<AnyConfigSchema<LocationCertaintyDivinerConfig>>;
7
+ export declare class LocationCertaintyDiviner<TParam extends LocationCertaintyDivinerParams = LocationCertaintyDivinerParams> extends AbstractDiviner<TParam> implements DivinerModule {
8
+ static configSchemas: "network.xyo.location.elevation.diviner.config"[];
9
+ static targetSchema: "network.xyo.location.certainty";
10
+ private static calcHeuristic;
11
+ private static locationsToHeuristics;
12
+ /** @description Given a set of locations, get the expected elevations (witness if needed), and return score/variance */
13
+ protected divineHandler(payloads?: Payload[]): Promise<Payload[]>;
14
+ }
15
+ //# sourceMappingURL=Diviner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../../src/Diviner/Diviner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAKzE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAErD,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEpD,OAAO,EAAE,8BAA8B,EAAwC,MAAM,UAAU,CAAA;AAE/F,MAAM,MAAM,8BAA8B,GAAG,aAAa,CAAC,eAAe,CAAC,8BAA8B,CAAC,CAAC,CAAA;AAE3G,qBAAa,wBAAwB,CAAC,MAAM,SAAS,8BAA8B,GAAG,8BAA8B,CAClH,SAAQ,eAAe,CAAC,MAAM,CAC9B,YAAW,aAAa;IAExB,OAAgB,aAAa,oDAAyC;IACtE,OAAgB,YAAY,mCAA0B;IAGtD,OAAO,CAAC,MAAM,CAAC,aAAa;IAqB5B,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAkBpC,wHAAwH;cAC/F,aAAa,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;CA4BjF"}
@@ -1,15 +1,10 @@
1
- // src/Diviner/Diviner.ts
2
1
  import { AbstractDiviner } from "@xyo-network/abstract-diviner";
3
2
  import { ElevationWitness, ElevationWitnessConfigSchema } from "@xyo-network/elevation-plugin";
4
3
  import { LocationCertaintySchema } from "@xyo-network/location-certainty-payload-plugin";
5
4
  import { LocationSchema } from "@xyo-network/location-payload-plugin";
6
5
  import { PayloadBuilder } from "@xyo-network/payload-builder";
7
-
8
- // src/Diviner/Config.ts
9
- var LocationCertaintyDivinerConfigSchema = "network.xyo.location.elevation.diviner.config";
10
-
11
- // src/Diviner/Diviner.ts
12
- var LocationCertaintyDiviner = class _LocationCertaintyDiviner extends AbstractDiviner {
6
+ import { LocationCertaintyDivinerConfigSchema } from "./Config";
7
+ class LocationCertaintyDiviner extends AbstractDiviner {
13
8
  static configSchemas = [LocationCertaintyDivinerConfigSchema];
14
9
  static targetSchema = LocationCertaintySchema;
15
10
  /* Given an array of numbers, find the min/max/mean */
@@ -62,18 +57,18 @@ var LocationCertaintyDiviner = class _LocationCertaintyDiviner extends AbstractD
62
57
  }
63
58
  });
64
59
  const elevations = await elevationWitness.observe();
65
- const heuristics = _LocationCertaintyDiviner.locationsToHeuristics(elevations, locations);
60
+ const heuristics = LocationCertaintyDiviner.locationsToHeuristics(elevations, locations);
66
61
  const result = new PayloadBuilder({ schema: LocationCertaintySchema }).fields({
67
- altitude: _LocationCertaintyDiviner.calcHeuristic(heuristics.altitude),
68
- elevation: _LocationCertaintyDiviner.calcHeuristic(heuristics.elevation),
69
- variance: _LocationCertaintyDiviner.calcHeuristic(heuristics.variance)
62
+ altitude: LocationCertaintyDiviner.calcHeuristic(heuristics.altitude),
63
+ elevation: LocationCertaintyDiviner.calcHeuristic(heuristics.elevation),
64
+ variance: LocationCertaintyDiviner.calcHeuristic(heuristics.variance)
70
65
  }).build();
71
66
  this.logger?.log("LocationCertaintyDiviner.Divine: Processed query");
72
67
  return [result];
73
68
  }
74
69
  return [];
75
70
  }
76
- };
71
+ }
77
72
  export {
78
73
  LocationCertaintyDiviner
79
74
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/Diviner/Diviner.ts","../../../src/Diviner/Config.ts"],"sourcesContent":["import { AbstractDiviner } from '@xyo-network/abstract-diviner'\nimport { DivinerModule, DivinerParams } from '@xyo-network/diviner-model'\nimport { ElevationPayload } from '@xyo-network/elevation-payload-plugin'\nimport { ElevationWitness, ElevationWitnessConfigSchema } from '@xyo-network/elevation-plugin'\nimport { LocationCertaintyHeuristic, LocationCertaintyPayload, LocationCertaintySchema } from '@xyo-network/location-certainty-payload-plugin'\nimport { LocationPayload, LocationSchema } from '@xyo-network/location-payload-plugin'\nimport { AnyConfigSchema } from '@xyo-network/module'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } from '@xyo-network/payload-model'\n\nimport { LocationCertaintyDivinerConfig, LocationCertaintyDivinerConfigSchema } from './Config'\n\nexport type LocationCertaintyDivinerParams = DivinerParams<AnyConfigSchema<LocationCertaintyDivinerConfig>>\n\nexport class LocationCertaintyDiviner<TParam extends LocationCertaintyDivinerParams = LocationCertaintyDivinerParams>\n extends AbstractDiviner<TParam>\n implements DivinerModule\n{\n static override configSchemas = [LocationCertaintyDivinerConfigSchema]\n static override targetSchema = LocationCertaintySchema\n\n /* Given an array of numbers, find the min/max/mean */\n private static calcHeuristic(heuristic: (number | null)[]): LocationCertaintyHeuristic {\n return {\n max: heuristic.reduce<number>((prev, value) => {\n return value !== null ? (value > prev ? value : prev) : prev\n }, -Infinity),\n mean: (() => {\n const values = heuristic.reduce<number[]>(\n (prev, value) => {\n return value !== null ? [value + prev[0], prev[1] + 1] : prev\n },\n [0, 0],\n )\n return values[0] / values[1]\n })(),\n min: heuristic.reduce<number>((prev, value) => {\n return value !== null ? (value < prev ? value : prev) : prev\n }, Infinity),\n }\n }\n\n /* Given elevation and location payloads, generate heuristic arrays */\n private static locationsToHeuristics(elevations: ElevationPayload[], locations: LocationPayload[]) {\n const heuristics = elevations.reduce<{ altitude: (number | null)[]; elevation: number[]; variance: (number | null)[] }>(\n (prev, elev, index) => {\n const elevation = elev.elevation\n if (elevation === undefined || elevation === null) {\n throw Error('Invalid Elevation')\n }\n const altitude = locations[index].altitude\n prev.altitude.push(altitude ?? null)\n prev.elevation.push(elevation)\n prev.variance.push(altitude !== undefined && altitude !== null ? altitude - elevation : null)\n return prev\n },\n { altitude: [], elevation: [], variance: [] },\n )\n return heuristics\n }\n\n /** @description Given a set of locations, get the expected elevations (witness if needed), and return score/variance */\n protected override async divineHandler(payloads?: Payload[]): Promise<Payload[]> {\n const locations = payloads?.filter<LocationPayload>((payload): payload is LocationPayload => payload?.schema === LocationSchema)\n // If this is a query we support\n if (locations && locations?.length > 0) {\n const elevationWitness = await ElevationWitness.create({\n account: this.account,\n config: {\n locations,\n schema: ElevationWitnessConfigSchema,\n },\n })\n const elevations = (await elevationWitness.observe()) as ElevationPayload[]\n\n const heuristics = LocationCertaintyDiviner.locationsToHeuristics(elevations, locations)\n\n const result = new PayloadBuilder<LocationCertaintyPayload>({ schema: LocationCertaintySchema })\n .fields({\n altitude: LocationCertaintyDiviner.calcHeuristic(heuristics.altitude),\n elevation: LocationCertaintyDiviner.calcHeuristic(heuristics.elevation),\n variance: LocationCertaintyDiviner.calcHeuristic(heuristics.variance),\n })\n .build()\n\n this.logger?.log('LocationCertaintyDiviner.Divine: Processed query')\n return [result]\n }\n return []\n }\n}\n","import { DivinerConfig } from '@xyo-network/diviner-model'\nimport { LocationCertaintySchema } from '@xyo-network/location-certainty-payload-plugin'\nimport { Payload } from '@xyo-network/payload-model'\n\nexport type LocationCertaintyDivinerConfigSchema = 'network.xyo.location.elevation.diviner.config'\nexport const LocationCertaintyDivinerConfigSchema: LocationCertaintyDivinerConfigSchema = 'network.xyo.location.elevation.diviner.config'\n\nexport type LocationCertaintyDivinerConfig<TConfig extends Payload = Payload> = DivinerConfig<\n TConfig & {\n schema: LocationCertaintyDivinerConfigSchema\n targetSchema?: LocationCertaintySchema\n }\n>\n"],"mappings":";AAAA,SAAS,uBAAuB;AAGhC,SAAS,kBAAkB,oCAAoC;AAC/D,SAA+D,+BAA+B;AAC9F,SAA0B,sBAAsB;AAEhD,SAAS,sBAAsB;;;ACFxB,IAAM,uCAA6E;;;ADSnF,IAAM,2BAAN,MAAM,kCACH,gBAEV;AAAA,EACE,OAAgB,gBAAgB,CAAC,oCAAoC;AAAA,EACrE,OAAgB,eAAe;AAAA;AAAA,EAG/B,OAAe,cAAc,WAA0D;AACrF,WAAO;AAAA,MACL,KAAK,UAAU,OAAe,CAAC,MAAM,UAAU;AAC7C,eAAO,UAAU,OAAQ,QAAQ,OAAO,QAAQ,OAAQ;AAAA,MAC1D,GAAG,SAAS;AAAA,MACZ,OAAO,MAAM;AACX,cAAM,SAAS,UAAU;AAAA,UACvB,CAAC,MAAM,UAAU;AACf,mBAAO,UAAU,OAAO,CAAC,QAAQ,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI;AAAA,UAC3D;AAAA,UACA,CAAC,GAAG,CAAC;AAAA,QACP;AACA,eAAO,OAAO,CAAC,IAAI,OAAO,CAAC;AAAA,MAC7B,GAAG;AAAA,MACH,KAAK,UAAU,OAAe,CAAC,MAAM,UAAU;AAC7C,eAAO,UAAU,OAAQ,QAAQ,OAAO,QAAQ,OAAQ;AAAA,MAC1D,GAAG,QAAQ;AAAA,IACb;AAAA,EACF;AAAA;AAAA,EAGA,OAAe,sBAAsB,YAAgC,WAA8B;AACjG,UAAM,aAAa,WAAW;AAAA,MAC5B,CAAC,MAAM,MAAM,UAAU;AACrB,cAAM,YAAY,KAAK;AACvB,YAAI,cAAc,UAAa,cAAc,MAAM;AACjD,gBAAM,MAAM,mBAAmB;AAAA,QACjC;AACA,cAAM,WAAW,UAAU,KAAK,EAAE;AAClC,aAAK,SAAS,KAAK,YAAY,IAAI;AACnC,aAAK,UAAU,KAAK,SAAS;AAC7B,aAAK,SAAS,KAAK,aAAa,UAAa,aAAa,OAAO,WAAW,YAAY,IAAI;AAC5F,eAAO;AAAA,MACT;AAAA,MACA,EAAE,UAAU,CAAC,GAAG,WAAW,CAAC,GAAG,UAAU,CAAC,EAAE;AAAA,IAC9C;AACA,WAAO;AAAA,EACT;AAAA;AAAA,EAGA,MAAyB,cAAc,UAA0C;AAC/E,UAAM,YAAY,UAAU,OAAwB,CAAC,YAAwC,SAAS,WAAW,cAAc;AAE/H,QAAI,aAAa,WAAW,SAAS,GAAG;AACtC,YAAM,mBAAmB,MAAM,iBAAiB,OAAO;AAAA,QACrD,SAAS,KAAK;AAAA,QACd,QAAQ;AAAA,UACN;AAAA,UACA,QAAQ;AAAA,QACV;AAAA,MACF,CAAC;AACD,YAAM,aAAc,MAAM,iBAAiB,QAAQ;AAEnD,YAAM,aAAa,0BAAyB,sBAAsB,YAAY,SAAS;AAEvF,YAAM,SAAS,IAAI,eAAyC,EAAE,QAAQ,wBAAwB,CAAC,EAC5F,OAAO;AAAA,QACN,UAAU,0BAAyB,cAAc,WAAW,QAAQ;AAAA,QACpE,WAAW,0BAAyB,cAAc,WAAW,SAAS;AAAA,QACtE,UAAU,0BAAyB,cAAc,WAAW,QAAQ;AAAA,MACtE,CAAC,EACA,MAAM;AAET,WAAK,QAAQ,IAAI,kDAAkD;AACnE,aAAO,CAAC,MAAM;AAAA,IAChB;AACA,WAAO,CAAC;AAAA,EACV;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../src/Diviner/Diviner.ts"],"sourcesContent":["import { AbstractDiviner } from '@xyo-network/abstract-diviner'\nimport { DivinerModule, DivinerParams } from '@xyo-network/diviner-model'\nimport { ElevationPayload } from '@xyo-network/elevation-payload-plugin'\nimport { ElevationWitness, ElevationWitnessConfigSchema } from '@xyo-network/elevation-plugin'\nimport { LocationCertaintyHeuristic, LocationCertaintyPayload, LocationCertaintySchema } from '@xyo-network/location-certainty-payload-plugin'\nimport { LocationPayload, LocationSchema } from '@xyo-network/location-payload-plugin'\nimport { AnyConfigSchema } from '@xyo-network/module'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } from '@xyo-network/payload-model'\n\nimport { LocationCertaintyDivinerConfig, LocationCertaintyDivinerConfigSchema } from './Config'\n\nexport type LocationCertaintyDivinerParams = DivinerParams<AnyConfigSchema<LocationCertaintyDivinerConfig>>\n\nexport class LocationCertaintyDiviner<TParam extends LocationCertaintyDivinerParams = LocationCertaintyDivinerParams>\n extends AbstractDiviner<TParam>\n implements DivinerModule\n{\n static override configSchemas = [LocationCertaintyDivinerConfigSchema]\n static override targetSchema = LocationCertaintySchema\n\n /* Given an array of numbers, find the min/max/mean */\n private static calcHeuristic(heuristic: (number | null)[]): LocationCertaintyHeuristic {\n return {\n max: heuristic.reduce<number>((prev, value) => {\n return value !== null ? (value > prev ? value : prev) : prev\n }, -Infinity),\n mean: (() => {\n const values = heuristic.reduce<number[]>(\n (prev, value) => {\n return value !== null ? [value + prev[0], prev[1] + 1] : prev\n },\n [0, 0],\n )\n return values[0] / values[1]\n })(),\n min: heuristic.reduce<number>((prev, value) => {\n return value !== null ? (value < prev ? value : prev) : prev\n }, Infinity),\n }\n }\n\n /* Given elevation and location payloads, generate heuristic arrays */\n private static locationsToHeuristics(elevations: ElevationPayload[], locations: LocationPayload[]) {\n const heuristics = elevations.reduce<{ altitude: (number | null)[]; elevation: number[]; variance: (number | null)[] }>(\n (prev, elev, index) => {\n const elevation = elev.elevation\n if (elevation === undefined || elevation === null) {\n throw Error('Invalid Elevation')\n }\n const altitude = locations[index].altitude\n prev.altitude.push(altitude ?? null)\n prev.elevation.push(elevation)\n prev.variance.push(altitude !== undefined && altitude !== null ? altitude - elevation : null)\n return prev\n },\n { altitude: [], elevation: [], variance: [] },\n )\n return heuristics\n }\n\n /** @description Given a set of locations, get the expected elevations (witness if needed), and return score/variance */\n protected override async divineHandler(payloads?: Payload[]): Promise<Payload[]> {\n const locations = payloads?.filter<LocationPayload>((payload): payload is LocationPayload => payload?.schema === LocationSchema)\n // If this is a query we support\n if (locations && locations?.length > 0) {\n const elevationWitness = await ElevationWitness.create({\n account: this.account,\n config: {\n locations,\n schema: ElevationWitnessConfigSchema,\n },\n })\n const elevations = (await elevationWitness.observe()) as ElevationPayload[]\n\n const heuristics = LocationCertaintyDiviner.locationsToHeuristics(elevations, locations)\n\n const result = new PayloadBuilder<LocationCertaintyPayload>({ schema: LocationCertaintySchema })\n .fields({\n altitude: LocationCertaintyDiviner.calcHeuristic(heuristics.altitude),\n elevation: LocationCertaintyDiviner.calcHeuristic(heuristics.elevation),\n variance: LocationCertaintyDiviner.calcHeuristic(heuristics.variance),\n })\n .build()\n\n this.logger?.log('LocationCertaintyDiviner.Divine: Processed query')\n return [result]\n }\n return []\n }\n}\n"],"mappings":"AAAA,SAAS,uBAAuB;AAGhC,SAAS,kBAAkB,oCAAoC;AAC/D,SAA+D,+BAA+B;AAC9F,SAA0B,sBAAsB;AAEhD,SAAS,sBAAsB;AAG/B,SAAyC,4CAA4C;AAI9E,MAAM,iCACH,gBAEV;AAAA,EACE,OAAgB,gBAAgB,CAAC,oCAAoC;AAAA,EACrE,OAAgB,eAAe;AAAA;AAAA,EAG/B,OAAe,cAAc,WAA0D;AACrF,WAAO;AAAA,MACL,KAAK,UAAU,OAAe,CAAC,MAAM,UAAU;AAC7C,eAAO,UAAU,OAAQ,QAAQ,OAAO,QAAQ,OAAQ;AAAA,MAC1D,GAAG,SAAS;AAAA,MACZ,OAAO,MAAM;AACX,cAAM,SAAS,UAAU;AAAA,UACvB,CAAC,MAAM,UAAU;AACf,mBAAO,UAAU,OAAO,CAAC,QAAQ,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI;AAAA,UAC3D;AAAA,UACA,CAAC,GAAG,CAAC;AAAA,QACP;AACA,eAAO,OAAO,CAAC,IAAI,OAAO,CAAC;AAAA,MAC7B,GAAG;AAAA,MACH,KAAK,UAAU,OAAe,CAAC,MAAM,UAAU;AAC7C,eAAO,UAAU,OAAQ,QAAQ,OAAO,QAAQ,OAAQ;AAAA,MAC1D,GAAG,QAAQ;AAAA,IACb;AAAA,EACF;AAAA;AAAA,EAGA,OAAe,sBAAsB,YAAgC,WAA8B;AACjG,UAAM,aAAa,WAAW;AAAA,MAC5B,CAAC,MAAM,MAAM,UAAU;AACrB,cAAM,YAAY,KAAK;AACvB,YAAI,cAAc,UAAa,cAAc,MAAM;AACjD,gBAAM,MAAM,mBAAmB;AAAA,QACjC;AACA,cAAM,WAAW,UAAU,KAAK,EAAE;AAClC,aAAK,SAAS,KAAK,YAAY,IAAI;AACnC,aAAK,UAAU,KAAK,SAAS;AAC7B,aAAK,SAAS,KAAK,aAAa,UAAa,aAAa,OAAO,WAAW,YAAY,IAAI;AAC5F,eAAO;AAAA,MACT;AAAA,MACA,EAAE,UAAU,CAAC,GAAG,WAAW,CAAC,GAAG,UAAU,CAAC,EAAE;AAAA,IAC9C;AACA,WAAO;AAAA,EACT;AAAA;AAAA,EAGA,MAAyB,cAAc,UAA0C;AAC/E,UAAM,YAAY,UAAU,OAAwB,CAAC,YAAwC,SAAS,WAAW,cAAc;AAE/H,QAAI,aAAa,WAAW,SAAS,GAAG;AACtC,YAAM,mBAAmB,MAAM,iBAAiB,OAAO;AAAA,QACrD,SAAS,KAAK;AAAA,QACd,QAAQ;AAAA,UACN;AAAA,UACA,QAAQ;AAAA,QACV;AAAA,MACF,CAAC;AACD,YAAM,aAAc,MAAM,iBAAiB,QAAQ;AAEnD,YAAM,aAAa,yBAAyB,sBAAsB,YAAY,SAAS;AAEvF,YAAM,SAAS,IAAI,eAAyC,EAAE,QAAQ,wBAAwB,CAAC,EAC5F,OAAO;AAAA,QACN,UAAU,yBAAyB,cAAc,WAAW,QAAQ;AAAA,QACpE,WAAW,yBAAyB,cAAc,WAAW,SAAS;AAAA,QACtE,UAAU,yBAAyB,cAAc,WAAW,QAAQ;AAAA,MACtE,CAAC,EACA,MAAM;AAET,WAAK,QAAQ,IAAI,kDAAkD;AACnE,aAAO,CAAC,MAAM;AAAA,IAChB;AACA,WAAO,CAAC;AAAA,EACV;AACF;","names":[]}
@@ -0,0 +1,3 @@
1
+ export * from './Config';
2
+ export * from './Diviner';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Diviner/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA"}
@@ -1,79 +1,3 @@
1
- // src/Diviner/Config.ts
2
- var LocationCertaintyDivinerConfigSchema = "network.xyo.location.elevation.diviner.config";
3
-
4
- // src/Diviner/Diviner.ts
5
- import { AbstractDiviner } from "@xyo-network/abstract-diviner";
6
- import { ElevationWitness, ElevationWitnessConfigSchema } from "@xyo-network/elevation-plugin";
7
- import { LocationCertaintySchema } from "@xyo-network/location-certainty-payload-plugin";
8
- import { LocationSchema } from "@xyo-network/location-payload-plugin";
9
- import { PayloadBuilder } from "@xyo-network/payload-builder";
10
- var LocationCertaintyDiviner = class _LocationCertaintyDiviner extends AbstractDiviner {
11
- static configSchemas = [LocationCertaintyDivinerConfigSchema];
12
- static targetSchema = LocationCertaintySchema;
13
- /* Given an array of numbers, find the min/max/mean */
14
- static calcHeuristic(heuristic) {
15
- return {
16
- max: heuristic.reduce((prev, value) => {
17
- return value !== null ? value > prev ? value : prev : prev;
18
- }, -Infinity),
19
- mean: (() => {
20
- const values = heuristic.reduce(
21
- (prev, value) => {
22
- return value !== null ? [value + prev[0], prev[1] + 1] : prev;
23
- },
24
- [0, 0]
25
- );
26
- return values[0] / values[1];
27
- })(),
28
- min: heuristic.reduce((prev, value) => {
29
- return value !== null ? value < prev ? value : prev : prev;
30
- }, Infinity)
31
- };
32
- }
33
- /* Given elevation and location payloads, generate heuristic arrays */
34
- static locationsToHeuristics(elevations, locations) {
35
- const heuristics = elevations.reduce(
36
- (prev, elev, index) => {
37
- const elevation = elev.elevation;
38
- if (elevation === void 0 || elevation === null) {
39
- throw Error("Invalid Elevation");
40
- }
41
- const altitude = locations[index].altitude;
42
- prev.altitude.push(altitude ?? null);
43
- prev.elevation.push(elevation);
44
- prev.variance.push(altitude !== void 0 && altitude !== null ? altitude - elevation : null);
45
- return prev;
46
- },
47
- { altitude: [], elevation: [], variance: [] }
48
- );
49
- return heuristics;
50
- }
51
- /** @description Given a set of locations, get the expected elevations (witness if needed), and return score/variance */
52
- async divineHandler(payloads) {
53
- const locations = payloads?.filter((payload) => payload?.schema === LocationSchema);
54
- if (locations && locations?.length > 0) {
55
- const elevationWitness = await ElevationWitness.create({
56
- account: this.account,
57
- config: {
58
- locations,
59
- schema: ElevationWitnessConfigSchema
60
- }
61
- });
62
- const elevations = await elevationWitness.observe();
63
- const heuristics = _LocationCertaintyDiviner.locationsToHeuristics(elevations, locations);
64
- const result = new PayloadBuilder({ schema: LocationCertaintySchema }).fields({
65
- altitude: _LocationCertaintyDiviner.calcHeuristic(heuristics.altitude),
66
- elevation: _LocationCertaintyDiviner.calcHeuristic(heuristics.elevation),
67
- variance: _LocationCertaintyDiviner.calcHeuristic(heuristics.variance)
68
- }).build();
69
- this.logger?.log("LocationCertaintyDiviner.Divine: Processed query");
70
- return [result];
71
- }
72
- return [];
73
- }
74
- };
75
- export {
76
- LocationCertaintyDiviner,
77
- LocationCertaintyDivinerConfigSchema
78
- };
1
+ export * from "./Config";
2
+ export * from "./Diviner";
79
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/Diviner/Config.ts","../../../src/Diviner/Diviner.ts"],"sourcesContent":["import { DivinerConfig } from '@xyo-network/diviner-model'\nimport { LocationCertaintySchema } from '@xyo-network/location-certainty-payload-plugin'\nimport { Payload } from '@xyo-network/payload-model'\n\nexport type LocationCertaintyDivinerConfigSchema = 'network.xyo.location.elevation.diviner.config'\nexport const LocationCertaintyDivinerConfigSchema: LocationCertaintyDivinerConfigSchema = 'network.xyo.location.elevation.diviner.config'\n\nexport type LocationCertaintyDivinerConfig<TConfig extends Payload = Payload> = DivinerConfig<\n TConfig & {\n schema: LocationCertaintyDivinerConfigSchema\n targetSchema?: LocationCertaintySchema\n }\n>\n","import { AbstractDiviner } from '@xyo-network/abstract-diviner'\nimport { DivinerModule, DivinerParams } from '@xyo-network/diviner-model'\nimport { ElevationPayload } from '@xyo-network/elevation-payload-plugin'\nimport { ElevationWitness, ElevationWitnessConfigSchema } from '@xyo-network/elevation-plugin'\nimport { LocationCertaintyHeuristic, LocationCertaintyPayload, LocationCertaintySchema } from '@xyo-network/location-certainty-payload-plugin'\nimport { LocationPayload, LocationSchema } from '@xyo-network/location-payload-plugin'\nimport { AnyConfigSchema } from '@xyo-network/module'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } from '@xyo-network/payload-model'\n\nimport { LocationCertaintyDivinerConfig, LocationCertaintyDivinerConfigSchema } from './Config'\n\nexport type LocationCertaintyDivinerParams = DivinerParams<AnyConfigSchema<LocationCertaintyDivinerConfig>>\n\nexport class LocationCertaintyDiviner<TParam extends LocationCertaintyDivinerParams = LocationCertaintyDivinerParams>\n extends AbstractDiviner<TParam>\n implements DivinerModule\n{\n static override configSchemas = [LocationCertaintyDivinerConfigSchema]\n static override targetSchema = LocationCertaintySchema\n\n /* Given an array of numbers, find the min/max/mean */\n private static calcHeuristic(heuristic: (number | null)[]): LocationCertaintyHeuristic {\n return {\n max: heuristic.reduce<number>((prev, value) => {\n return value !== null ? (value > prev ? value : prev) : prev\n }, -Infinity),\n mean: (() => {\n const values = heuristic.reduce<number[]>(\n (prev, value) => {\n return value !== null ? [value + prev[0], prev[1] + 1] : prev\n },\n [0, 0],\n )\n return values[0] / values[1]\n })(),\n min: heuristic.reduce<number>((prev, value) => {\n return value !== null ? (value < prev ? value : prev) : prev\n }, Infinity),\n }\n }\n\n /* Given elevation and location payloads, generate heuristic arrays */\n private static locationsToHeuristics(elevations: ElevationPayload[], locations: LocationPayload[]) {\n const heuristics = elevations.reduce<{ altitude: (number | null)[]; elevation: number[]; variance: (number | null)[] }>(\n (prev, elev, index) => {\n const elevation = elev.elevation\n if (elevation === undefined || elevation === null) {\n throw Error('Invalid Elevation')\n }\n const altitude = locations[index].altitude\n prev.altitude.push(altitude ?? null)\n prev.elevation.push(elevation)\n prev.variance.push(altitude !== undefined && altitude !== null ? altitude - elevation : null)\n return prev\n },\n { altitude: [], elevation: [], variance: [] },\n )\n return heuristics\n }\n\n /** @description Given a set of locations, get the expected elevations (witness if needed), and return score/variance */\n protected override async divineHandler(payloads?: Payload[]): Promise<Payload[]> {\n const locations = payloads?.filter<LocationPayload>((payload): payload is LocationPayload => payload?.schema === LocationSchema)\n // If this is a query we support\n if (locations && locations?.length > 0) {\n const elevationWitness = await ElevationWitness.create({\n account: this.account,\n config: {\n locations,\n schema: ElevationWitnessConfigSchema,\n },\n })\n const elevations = (await elevationWitness.observe()) as ElevationPayload[]\n\n const heuristics = LocationCertaintyDiviner.locationsToHeuristics(elevations, locations)\n\n const result = new PayloadBuilder<LocationCertaintyPayload>({ schema: LocationCertaintySchema })\n .fields({\n altitude: LocationCertaintyDiviner.calcHeuristic(heuristics.altitude),\n elevation: LocationCertaintyDiviner.calcHeuristic(heuristics.elevation),\n variance: LocationCertaintyDiviner.calcHeuristic(heuristics.variance),\n })\n .build()\n\n this.logger?.log('LocationCertaintyDiviner.Divine: Processed query')\n return [result]\n }\n return []\n }\n}\n"],"mappings":";AAKO,IAAM,uCAA6E;;;ACL1F,SAAS,uBAAuB;AAGhC,SAAS,kBAAkB,oCAAoC;AAC/D,SAA+D,+BAA+B;AAC9F,SAA0B,sBAAsB;AAEhD,SAAS,sBAAsB;AAOxB,IAAM,2BAAN,MAAM,kCACH,gBAEV;AAAA,EACE,OAAgB,gBAAgB,CAAC,oCAAoC;AAAA,EACrE,OAAgB,eAAe;AAAA;AAAA,EAG/B,OAAe,cAAc,WAA0D;AACrF,WAAO;AAAA,MACL,KAAK,UAAU,OAAe,CAAC,MAAM,UAAU;AAC7C,eAAO,UAAU,OAAQ,QAAQ,OAAO,QAAQ,OAAQ;AAAA,MAC1D,GAAG,SAAS;AAAA,MACZ,OAAO,MAAM;AACX,cAAM,SAAS,UAAU;AAAA,UACvB,CAAC,MAAM,UAAU;AACf,mBAAO,UAAU,OAAO,CAAC,QAAQ,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI;AAAA,UAC3D;AAAA,UACA,CAAC,GAAG,CAAC;AAAA,QACP;AACA,eAAO,OAAO,CAAC,IAAI,OAAO,CAAC;AAAA,MAC7B,GAAG;AAAA,MACH,KAAK,UAAU,OAAe,CAAC,MAAM,UAAU;AAC7C,eAAO,UAAU,OAAQ,QAAQ,OAAO,QAAQ,OAAQ;AAAA,MAC1D,GAAG,QAAQ;AAAA,IACb;AAAA,EACF;AAAA;AAAA,EAGA,OAAe,sBAAsB,YAAgC,WAA8B;AACjG,UAAM,aAAa,WAAW;AAAA,MAC5B,CAAC,MAAM,MAAM,UAAU;AACrB,cAAM,YAAY,KAAK;AACvB,YAAI,cAAc,UAAa,cAAc,MAAM;AACjD,gBAAM,MAAM,mBAAmB;AAAA,QACjC;AACA,cAAM,WAAW,UAAU,KAAK,EAAE;AAClC,aAAK,SAAS,KAAK,YAAY,IAAI;AACnC,aAAK,UAAU,KAAK,SAAS;AAC7B,aAAK,SAAS,KAAK,aAAa,UAAa,aAAa,OAAO,WAAW,YAAY,IAAI;AAC5F,eAAO;AAAA,MACT;AAAA,MACA,EAAE,UAAU,CAAC,GAAG,WAAW,CAAC,GAAG,UAAU,CAAC,EAAE;AAAA,IAC9C;AACA,WAAO;AAAA,EACT;AAAA;AAAA,EAGA,MAAyB,cAAc,UAA0C;AAC/E,UAAM,YAAY,UAAU,OAAwB,CAAC,YAAwC,SAAS,WAAW,cAAc;AAE/H,QAAI,aAAa,WAAW,SAAS,GAAG;AACtC,YAAM,mBAAmB,MAAM,iBAAiB,OAAO;AAAA,QACrD,SAAS,KAAK;AAAA,QACd,QAAQ;AAAA,UACN;AAAA,UACA,QAAQ;AAAA,QACV;AAAA,MACF,CAAC;AACD,YAAM,aAAc,MAAM,iBAAiB,QAAQ;AAEnD,YAAM,aAAa,0BAAyB,sBAAsB,YAAY,SAAS;AAEvF,YAAM,SAAS,IAAI,eAAyC,EAAE,QAAQ,wBAAwB,CAAC,EAC5F,OAAO;AAAA,QACN,UAAU,0BAAyB,cAAc,WAAW,QAAQ;AAAA,QACpE,WAAW,0BAAyB,cAAc,WAAW,SAAS;AAAA,QACtE,UAAU,0BAAyB,cAAc,WAAW,QAAQ;AAAA,MACtE,CAAC,EACA,MAAM;AAET,WAAK,QAAQ,IAAI,kDAAkD;AACnE,aAAO,CAAC,MAAM;AAAA,IAChB;AACA,WAAO,CAAC;AAAA,EACV;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../src/Diviner/index.ts"],"sourcesContent":["export * from './Config'\nexport * from './Diviner'\n"],"mappings":"AAAA,cAAc;AACd,cAAc;","names":[]}
@@ -0,0 +1,53 @@
1
+ import { LocationCertaintyDiviner } from './Diviner';
2
+ export declare const LocationCertaintyPlugin: () => import("@xyo-network/payloadset-plugin").PayloadSetDivinerPlugin<LocationCertaintyDiviner<import("@xyo-network/core").BaseParamsFields & {
3
+ account?: import("@xyo-network/account-model").AccountInstance | "random" | undefined;
4
+ config: import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<{
5
+ accountDerivationPath?: string | undefined;
6
+ readonly archivist?: import("@xyo-network/module-model").ArchivistModuleConfig | undefined;
7
+ readonly labels?: import("@xyo-network/module-model").Labels | undefined;
8
+ readonly name?: string | undefined;
9
+ readonly paging?: Record<string, {
10
+ size?: number | undefined;
11
+ }> | undefined;
12
+ readonly security?: {
13
+ readonly allowAnonymous?: boolean | undefined;
14
+ readonly allowed?: Record<string, (string | import("@xyo-network/module-model").CosigningAddressSet)[]> | undefined;
15
+ readonly disallowed?: Record<string, string[]> | undefined;
16
+ } | undefined;
17
+ readonly sign?: boolean | undefined;
18
+ readonly storeQueries?: boolean | undefined;
19
+ readonly timestamp?: boolean | undefined;
20
+ } & Omit<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<{
21
+ accountDerivationPath?: string | undefined;
22
+ readonly archivist?: import("@xyo-network/module-model").ArchivistModuleConfig | undefined;
23
+ readonly labels?: import("@xyo-network/module-model").Labels | undefined;
24
+ readonly name?: string | undefined;
25
+ readonly paging?: Record<string, {
26
+ size?: number | undefined;
27
+ }> | undefined;
28
+ readonly security?: {
29
+ readonly allowAnonymous?: boolean | undefined;
30
+ readonly allowed?: Record<string, (string | import("@xyo-network/module-model").CosigningAddressSet)[]> | undefined;
31
+ readonly disallowed?: Record<string, string[]> | undefined;
32
+ } | undefined;
33
+ readonly sign?: boolean | undefined;
34
+ readonly storeQueries?: boolean | undefined;
35
+ readonly timestamp?: boolean | undefined;
36
+ } & {
37
+ schema: "network.xyo.location.elevation.diviner.config";
38
+ } & Omit<{
39
+ schema: string;
40
+ } & import("@xyo-network/payload-model").PayloadFields & {
41
+ schema: "network.xyo.location.elevation.diviner.config";
42
+ targetSchema?: "network.xyo.location.certainty" | undefined;
43
+ }, "schema">, "schema"> & {
44
+ schema: "network.xyo.location.elevation.diviner.config";
45
+ }, "schema"> & {
46
+ schema: string;
47
+ }, "schema"> & {
48
+ schema: string;
49
+ };
50
+ ephemeralQueryAccountEnabled?: boolean | undefined;
51
+ wallet?: import("@xyo-network/wallet-model").WalletInstance | undefined;
52
+ }>>;
53
+ //# sourceMappingURL=Plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Plugin.d.ts","sourceRoot":"","sources":["../../src/Plugin.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAA;AAEpD,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAQjC,CAAA"}
@@ -1,86 +1,9 @@
1
- // src/Plugin.ts
2
- import { LocationCertaintySchema as LocationCertaintySchema2 } from "@xyo-network/location-certainty-payload-plugin";
1
+ import { LocationCertaintySchema } from "@xyo-network/location-certainty-payload-plugin";
3
2
  import { PayloadSetSchema } from "@xyo-network/payload-model";
4
3
  import { createPayloadSetDivinerPlugin } from "@xyo-network/payloadset-plugin";
5
-
6
- // src/Diviner/Config.ts
7
- var LocationCertaintyDivinerConfigSchema = "network.xyo.location.elevation.diviner.config";
8
-
9
- // src/Diviner/Diviner.ts
10
- import { AbstractDiviner } from "@xyo-network/abstract-diviner";
11
- import { ElevationWitness, ElevationWitnessConfigSchema } from "@xyo-network/elevation-plugin";
12
- import { LocationCertaintySchema } from "@xyo-network/location-certainty-payload-plugin";
13
- import { LocationSchema } from "@xyo-network/location-payload-plugin";
14
- import { PayloadBuilder } from "@xyo-network/payload-builder";
15
- var LocationCertaintyDiviner = class _LocationCertaintyDiviner extends AbstractDiviner {
16
- static configSchemas = [LocationCertaintyDivinerConfigSchema];
17
- static targetSchema = LocationCertaintySchema;
18
- /* Given an array of numbers, find the min/max/mean */
19
- static calcHeuristic(heuristic) {
20
- return {
21
- max: heuristic.reduce((prev, value) => {
22
- return value !== null ? value > prev ? value : prev : prev;
23
- }, -Infinity),
24
- mean: (() => {
25
- const values = heuristic.reduce(
26
- (prev, value) => {
27
- return value !== null ? [value + prev[0], prev[1] + 1] : prev;
28
- },
29
- [0, 0]
30
- );
31
- return values[0] / values[1];
32
- })(),
33
- min: heuristic.reduce((prev, value) => {
34
- return value !== null ? value < prev ? value : prev : prev;
35
- }, Infinity)
36
- };
37
- }
38
- /* Given elevation and location payloads, generate heuristic arrays */
39
- static locationsToHeuristics(elevations, locations) {
40
- const heuristics = elevations.reduce(
41
- (prev, elev, index) => {
42
- const elevation = elev.elevation;
43
- if (elevation === void 0 || elevation === null) {
44
- throw Error("Invalid Elevation");
45
- }
46
- const altitude = locations[index].altitude;
47
- prev.altitude.push(altitude ?? null);
48
- prev.elevation.push(elevation);
49
- prev.variance.push(altitude !== void 0 && altitude !== null ? altitude - elevation : null);
50
- return prev;
51
- },
52
- { altitude: [], elevation: [], variance: [] }
53
- );
54
- return heuristics;
55
- }
56
- /** @description Given a set of locations, get the expected elevations (witness if needed), and return score/variance */
57
- async divineHandler(payloads) {
58
- const locations = payloads?.filter((payload) => payload?.schema === LocationSchema);
59
- if (locations && locations?.length > 0) {
60
- const elevationWitness = await ElevationWitness.create({
61
- account: this.account,
62
- config: {
63
- locations,
64
- schema: ElevationWitnessConfigSchema
65
- }
66
- });
67
- const elevations = await elevationWitness.observe();
68
- const heuristics = _LocationCertaintyDiviner.locationsToHeuristics(elevations, locations);
69
- const result = new PayloadBuilder({ schema: LocationCertaintySchema }).fields({
70
- altitude: _LocationCertaintyDiviner.calcHeuristic(heuristics.altitude),
71
- elevation: _LocationCertaintyDiviner.calcHeuristic(heuristics.elevation),
72
- variance: _LocationCertaintyDiviner.calcHeuristic(heuristics.variance)
73
- }).build();
74
- this.logger?.log("LocationCertaintyDiviner.Divine: Processed query");
75
- return [result];
76
- }
77
- return [];
78
- }
79
- };
80
-
81
- // src/Plugin.ts
82
- var LocationCertaintyPlugin = () => createPayloadSetDivinerPlugin(
83
- { required: { [LocationCertaintySchema2]: 1 }, schema: PayloadSetSchema },
4
+ import { LocationCertaintyDiviner } from "./Diviner";
5
+ const LocationCertaintyPlugin = () => createPayloadSetDivinerPlugin(
6
+ { required: { [LocationCertaintySchema]: 1 }, schema: PayloadSetSchema },
84
7
  {
85
8
  diviner: async (params) => {
86
9
  return await LocationCertaintyDiviner.create(params);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Plugin.ts","../../src/Diviner/Config.ts","../../src/Diviner/Diviner.ts"],"sourcesContent":["import { LocationCertaintySchema } from '@xyo-network/location-certainty-payload-plugin'\nimport { PayloadSetSchema } from '@xyo-network/payload-model'\nimport { createPayloadSetDivinerPlugin } from '@xyo-network/payloadset-plugin'\n\nimport { LocationCertaintyDiviner } from './Diviner'\n\nexport const LocationCertaintyPlugin = () =>\n createPayloadSetDivinerPlugin<LocationCertaintyDiviner>(\n { required: { [LocationCertaintySchema]: 1 }, schema: PayloadSetSchema },\n {\n diviner: async (params) => {\n return (await LocationCertaintyDiviner.create(params)) as LocationCertaintyDiviner\n },\n },\n )\n","import { DivinerConfig } from '@xyo-network/diviner-model'\nimport { LocationCertaintySchema } from '@xyo-network/location-certainty-payload-plugin'\nimport { Payload } from '@xyo-network/payload-model'\n\nexport type LocationCertaintyDivinerConfigSchema = 'network.xyo.location.elevation.diviner.config'\nexport const LocationCertaintyDivinerConfigSchema: LocationCertaintyDivinerConfigSchema = 'network.xyo.location.elevation.diviner.config'\n\nexport type LocationCertaintyDivinerConfig<TConfig extends Payload = Payload> = DivinerConfig<\n TConfig & {\n schema: LocationCertaintyDivinerConfigSchema\n targetSchema?: LocationCertaintySchema\n }\n>\n","import { AbstractDiviner } from '@xyo-network/abstract-diviner'\nimport { DivinerModule, DivinerParams } from '@xyo-network/diviner-model'\nimport { ElevationPayload } from '@xyo-network/elevation-payload-plugin'\nimport { ElevationWitness, ElevationWitnessConfigSchema } from '@xyo-network/elevation-plugin'\nimport { LocationCertaintyHeuristic, LocationCertaintyPayload, LocationCertaintySchema } from '@xyo-network/location-certainty-payload-plugin'\nimport { LocationPayload, LocationSchema } from '@xyo-network/location-payload-plugin'\nimport { AnyConfigSchema } from '@xyo-network/module'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } from '@xyo-network/payload-model'\n\nimport { LocationCertaintyDivinerConfig, LocationCertaintyDivinerConfigSchema } from './Config'\n\nexport type LocationCertaintyDivinerParams = DivinerParams<AnyConfigSchema<LocationCertaintyDivinerConfig>>\n\nexport class LocationCertaintyDiviner<TParam extends LocationCertaintyDivinerParams = LocationCertaintyDivinerParams>\n extends AbstractDiviner<TParam>\n implements DivinerModule\n{\n static override configSchemas = [LocationCertaintyDivinerConfigSchema]\n static override targetSchema = LocationCertaintySchema\n\n /* Given an array of numbers, find the min/max/mean */\n private static calcHeuristic(heuristic: (number | null)[]): LocationCertaintyHeuristic {\n return {\n max: heuristic.reduce<number>((prev, value) => {\n return value !== null ? (value > prev ? value : prev) : prev\n }, -Infinity),\n mean: (() => {\n const values = heuristic.reduce<number[]>(\n (prev, value) => {\n return value !== null ? [value + prev[0], prev[1] + 1] : prev\n },\n [0, 0],\n )\n return values[0] / values[1]\n })(),\n min: heuristic.reduce<number>((prev, value) => {\n return value !== null ? (value < prev ? value : prev) : prev\n }, Infinity),\n }\n }\n\n /* Given elevation and location payloads, generate heuristic arrays */\n private static locationsToHeuristics(elevations: ElevationPayload[], locations: LocationPayload[]) {\n const heuristics = elevations.reduce<{ altitude: (number | null)[]; elevation: number[]; variance: (number | null)[] }>(\n (prev, elev, index) => {\n const elevation = elev.elevation\n if (elevation === undefined || elevation === null) {\n throw Error('Invalid Elevation')\n }\n const altitude = locations[index].altitude\n prev.altitude.push(altitude ?? null)\n prev.elevation.push(elevation)\n prev.variance.push(altitude !== undefined && altitude !== null ? altitude - elevation : null)\n return prev\n },\n { altitude: [], elevation: [], variance: [] },\n )\n return heuristics\n }\n\n /** @description Given a set of locations, get the expected elevations (witness if needed), and return score/variance */\n protected override async divineHandler(payloads?: Payload[]): Promise<Payload[]> {\n const locations = payloads?.filter<LocationPayload>((payload): payload is LocationPayload => payload?.schema === LocationSchema)\n // If this is a query we support\n if (locations && locations?.length > 0) {\n const elevationWitness = await ElevationWitness.create({\n account: this.account,\n config: {\n locations,\n schema: ElevationWitnessConfigSchema,\n },\n })\n const elevations = (await elevationWitness.observe()) as ElevationPayload[]\n\n const heuristics = LocationCertaintyDiviner.locationsToHeuristics(elevations, locations)\n\n const result = new PayloadBuilder<LocationCertaintyPayload>({ schema: LocationCertaintySchema })\n .fields({\n altitude: LocationCertaintyDiviner.calcHeuristic(heuristics.altitude),\n elevation: LocationCertaintyDiviner.calcHeuristic(heuristics.elevation),\n variance: LocationCertaintyDiviner.calcHeuristic(heuristics.variance),\n })\n .build()\n\n this.logger?.log('LocationCertaintyDiviner.Divine: Processed query')\n return [result]\n }\n return []\n }\n}\n"],"mappings":";AAAA,SAAS,2BAAAA,gCAA+B;AACxC,SAAS,wBAAwB;AACjC,SAAS,qCAAqC;;;ACGvC,IAAM,uCAA6E;;;ACL1F,SAAS,uBAAuB;AAGhC,SAAS,kBAAkB,oCAAoC;AAC/D,SAA+D,+BAA+B;AAC9F,SAA0B,sBAAsB;AAEhD,SAAS,sBAAsB;AAOxB,IAAM,2BAAN,MAAM,kCACH,gBAEV;AAAA,EACE,OAAgB,gBAAgB,CAAC,oCAAoC;AAAA,EACrE,OAAgB,eAAe;AAAA;AAAA,EAG/B,OAAe,cAAc,WAA0D;AACrF,WAAO;AAAA,MACL,KAAK,UAAU,OAAe,CAAC,MAAM,UAAU;AAC7C,eAAO,UAAU,OAAQ,QAAQ,OAAO,QAAQ,OAAQ;AAAA,MAC1D,GAAG,SAAS;AAAA,MACZ,OAAO,MAAM;AACX,cAAM,SAAS,UAAU;AAAA,UACvB,CAAC,MAAM,UAAU;AACf,mBAAO,UAAU,OAAO,CAAC,QAAQ,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI;AAAA,UAC3D;AAAA,UACA,CAAC,GAAG,CAAC;AAAA,QACP;AACA,eAAO,OAAO,CAAC,IAAI,OAAO,CAAC;AAAA,MAC7B,GAAG;AAAA,MACH,KAAK,UAAU,OAAe,CAAC,MAAM,UAAU;AAC7C,eAAO,UAAU,OAAQ,QAAQ,OAAO,QAAQ,OAAQ;AAAA,MAC1D,GAAG,QAAQ;AAAA,IACb;AAAA,EACF;AAAA;AAAA,EAGA,OAAe,sBAAsB,YAAgC,WAA8B;AACjG,UAAM,aAAa,WAAW;AAAA,MAC5B,CAAC,MAAM,MAAM,UAAU;AACrB,cAAM,YAAY,KAAK;AACvB,YAAI,cAAc,UAAa,cAAc,MAAM;AACjD,gBAAM,MAAM,mBAAmB;AAAA,QACjC;AACA,cAAM,WAAW,UAAU,KAAK,EAAE;AAClC,aAAK,SAAS,KAAK,YAAY,IAAI;AACnC,aAAK,UAAU,KAAK,SAAS;AAC7B,aAAK,SAAS,KAAK,aAAa,UAAa,aAAa,OAAO,WAAW,YAAY,IAAI;AAC5F,eAAO;AAAA,MACT;AAAA,MACA,EAAE,UAAU,CAAC,GAAG,WAAW,CAAC,GAAG,UAAU,CAAC,EAAE;AAAA,IAC9C;AACA,WAAO;AAAA,EACT;AAAA;AAAA,EAGA,MAAyB,cAAc,UAA0C;AAC/E,UAAM,YAAY,UAAU,OAAwB,CAAC,YAAwC,SAAS,WAAW,cAAc;AAE/H,QAAI,aAAa,WAAW,SAAS,GAAG;AACtC,YAAM,mBAAmB,MAAM,iBAAiB,OAAO;AAAA,QACrD,SAAS,KAAK;AAAA,QACd,QAAQ;AAAA,UACN;AAAA,UACA,QAAQ;AAAA,QACV;AAAA,MACF,CAAC;AACD,YAAM,aAAc,MAAM,iBAAiB,QAAQ;AAEnD,YAAM,aAAa,0BAAyB,sBAAsB,YAAY,SAAS;AAEvF,YAAM,SAAS,IAAI,eAAyC,EAAE,QAAQ,wBAAwB,CAAC,EAC5F,OAAO;AAAA,QACN,UAAU,0BAAyB,cAAc,WAAW,QAAQ;AAAA,QACpE,WAAW,0BAAyB,cAAc,WAAW,SAAS;AAAA,QACtE,UAAU,0BAAyB,cAAc,WAAW,QAAQ;AAAA,MACtE,CAAC,EACA,MAAM;AAET,WAAK,QAAQ,IAAI,kDAAkD;AACnE,aAAO,CAAC,MAAM;AAAA,IAChB;AACA,WAAO,CAAC;AAAA,EACV;AACF;;;AFpFO,IAAM,0BAA0B,MACrC;AAAA,EACE,EAAE,UAAU,EAAE,CAACC,wBAAuB,GAAG,EAAE,GAAG,QAAQ,iBAAiB;AAAA,EACvE;AAAA,IACE,SAAS,OAAO,WAAW;AACzB,aAAQ,MAAM,yBAAyB,OAAO,MAAM;AAAA,IACtD;AAAA,EACF;AACF;","names":["LocationCertaintySchema","LocationCertaintySchema"]}
1
+ {"version":3,"sources":["../../src/Plugin.ts"],"sourcesContent":["import { LocationCertaintySchema } from '@xyo-network/location-certainty-payload-plugin'\nimport { PayloadSetSchema } from '@xyo-network/payload-model'\nimport { createPayloadSetDivinerPlugin } from '@xyo-network/payloadset-plugin'\n\nimport { LocationCertaintyDiviner } from './Diviner'\n\nexport const LocationCertaintyPlugin = () =>\n createPayloadSetDivinerPlugin<LocationCertaintyDiviner>(\n { required: { [LocationCertaintySchema]: 1 }, schema: PayloadSetSchema },\n {\n diviner: async (params) => {\n return (await LocationCertaintyDiviner.create(params)) as LocationCertaintyDiviner\n },\n },\n )\n"],"mappings":"AAAA,SAAS,+BAA+B;AACxC,SAAS,wBAAwB;AACjC,SAAS,qCAAqC;AAE9C,SAAS,gCAAgC;AAElC,MAAM,0BAA0B,MACrC;AAAA,EACE,EAAE,UAAU,EAAE,CAAC,uBAAuB,GAAG,EAAE,GAAG,QAAQ,iBAAiB;AAAA,EACvE;AAAA,IACE,SAAS,OAAO,WAAW;AACzB,aAAQ,MAAM,yBAAyB,OAAO,MAAM;AAAA,IACtD;AAAA,EACF;AACF;","names":[]}
@@ -0,0 +1,5 @@
1
+ import { LocationCertaintyPlugin } from './Plugin';
2
+ export * from './Diviner';
3
+ export { LocationCertaintyPlugin };
4
+ export default LocationCertaintyPlugin;
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,uBAAuB,EAAE,MAAM,UAAU,CAAA;AAElD,cAAc,WAAW,CAAA;AAEzB,OAAO,EAAE,uBAAuB,EAAE,CAAA;AAGlC,eAAe,uBAAuB,CAAA"}
@@ -1,98 +1,7 @@
1
- // src/Plugin.ts
2
- import { LocationCertaintySchema as LocationCertaintySchema2 } from "@xyo-network/location-certainty-payload-plugin";
3
- import { PayloadSetSchema } from "@xyo-network/payload-model";
4
- import { createPayloadSetDivinerPlugin } from "@xyo-network/payloadset-plugin";
5
-
6
- // src/Diviner/Config.ts
7
- var LocationCertaintyDivinerConfigSchema = "network.xyo.location.elevation.diviner.config";
8
-
9
- // src/Diviner/Diviner.ts
10
- import { AbstractDiviner } from "@xyo-network/abstract-diviner";
11
- import { ElevationWitness, ElevationWitnessConfigSchema } from "@xyo-network/elevation-plugin";
12
- import { LocationCertaintySchema } from "@xyo-network/location-certainty-payload-plugin";
13
- import { LocationSchema } from "@xyo-network/location-payload-plugin";
14
- import { PayloadBuilder } from "@xyo-network/payload-builder";
15
- var LocationCertaintyDiviner = class _LocationCertaintyDiviner extends AbstractDiviner {
16
- static configSchemas = [LocationCertaintyDivinerConfigSchema];
17
- static targetSchema = LocationCertaintySchema;
18
- /* Given an array of numbers, find the min/max/mean */
19
- static calcHeuristic(heuristic) {
20
- return {
21
- max: heuristic.reduce((prev, value) => {
22
- return value !== null ? value > prev ? value : prev : prev;
23
- }, -Infinity),
24
- mean: (() => {
25
- const values = heuristic.reduce(
26
- (prev, value) => {
27
- return value !== null ? [value + prev[0], prev[1] + 1] : prev;
28
- },
29
- [0, 0]
30
- );
31
- return values[0] / values[1];
32
- })(),
33
- min: heuristic.reduce((prev, value) => {
34
- return value !== null ? value < prev ? value : prev : prev;
35
- }, Infinity)
36
- };
37
- }
38
- /* Given elevation and location payloads, generate heuristic arrays */
39
- static locationsToHeuristics(elevations, locations) {
40
- const heuristics = elevations.reduce(
41
- (prev, elev, index) => {
42
- const elevation = elev.elevation;
43
- if (elevation === void 0 || elevation === null) {
44
- throw Error("Invalid Elevation");
45
- }
46
- const altitude = locations[index].altitude;
47
- prev.altitude.push(altitude ?? null);
48
- prev.elevation.push(elevation);
49
- prev.variance.push(altitude !== void 0 && altitude !== null ? altitude - elevation : null);
50
- return prev;
51
- },
52
- { altitude: [], elevation: [], variance: [] }
53
- );
54
- return heuristics;
55
- }
56
- /** @description Given a set of locations, get the expected elevations (witness if needed), and return score/variance */
57
- async divineHandler(payloads) {
58
- const locations = payloads?.filter((payload) => payload?.schema === LocationSchema);
59
- if (locations && locations?.length > 0) {
60
- const elevationWitness = await ElevationWitness.create({
61
- account: this.account,
62
- config: {
63
- locations,
64
- schema: ElevationWitnessConfigSchema
65
- }
66
- });
67
- const elevations = await elevationWitness.observe();
68
- const heuristics = _LocationCertaintyDiviner.locationsToHeuristics(elevations, locations);
69
- const result = new PayloadBuilder({ schema: LocationCertaintySchema }).fields({
70
- altitude: _LocationCertaintyDiviner.calcHeuristic(heuristics.altitude),
71
- elevation: _LocationCertaintyDiviner.calcHeuristic(heuristics.elevation),
72
- variance: _LocationCertaintyDiviner.calcHeuristic(heuristics.variance)
73
- }).build();
74
- this.logger?.log("LocationCertaintyDiviner.Divine: Processed query");
75
- return [result];
76
- }
77
- return [];
78
- }
79
- };
80
-
81
- // src/Plugin.ts
82
- var LocationCertaintyPlugin = () => createPayloadSetDivinerPlugin(
83
- { required: { [LocationCertaintySchema2]: 1 }, schema: PayloadSetSchema },
84
- {
85
- diviner: async (params) => {
86
- return await LocationCertaintyDiviner.create(params);
87
- }
88
- }
89
- );
90
-
91
- // src/index.ts
1
+ import { LocationCertaintyPlugin } from "./Plugin";
2
+ export * from "./Diviner";
92
3
  var src_default = LocationCertaintyPlugin;
93
4
  export {
94
- LocationCertaintyDiviner,
95
- LocationCertaintyDivinerConfigSchema,
96
5
  LocationCertaintyPlugin,
97
6
  src_default as default
98
7
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Plugin.ts","../../src/Diviner/Config.ts","../../src/Diviner/Diviner.ts","../../src/index.ts"],"sourcesContent":["import { LocationCertaintySchema } from '@xyo-network/location-certainty-payload-plugin'\nimport { PayloadSetSchema } from '@xyo-network/payload-model'\nimport { createPayloadSetDivinerPlugin } from '@xyo-network/payloadset-plugin'\n\nimport { LocationCertaintyDiviner } from './Diviner'\n\nexport const LocationCertaintyPlugin = () =>\n createPayloadSetDivinerPlugin<LocationCertaintyDiviner>(\n { required: { [LocationCertaintySchema]: 1 }, schema: PayloadSetSchema },\n {\n diviner: async (params) => {\n return (await LocationCertaintyDiviner.create(params)) as LocationCertaintyDiviner\n },\n },\n )\n","import { DivinerConfig } from '@xyo-network/diviner-model'\nimport { LocationCertaintySchema } from '@xyo-network/location-certainty-payload-plugin'\nimport { Payload } from '@xyo-network/payload-model'\n\nexport type LocationCertaintyDivinerConfigSchema = 'network.xyo.location.elevation.diviner.config'\nexport const LocationCertaintyDivinerConfigSchema: LocationCertaintyDivinerConfigSchema = 'network.xyo.location.elevation.diviner.config'\n\nexport type LocationCertaintyDivinerConfig<TConfig extends Payload = Payload> = DivinerConfig<\n TConfig & {\n schema: LocationCertaintyDivinerConfigSchema\n targetSchema?: LocationCertaintySchema\n }\n>\n","import { AbstractDiviner } from '@xyo-network/abstract-diviner'\nimport { DivinerModule, DivinerParams } from '@xyo-network/diviner-model'\nimport { ElevationPayload } from '@xyo-network/elevation-payload-plugin'\nimport { ElevationWitness, ElevationWitnessConfigSchema } from '@xyo-network/elevation-plugin'\nimport { LocationCertaintyHeuristic, LocationCertaintyPayload, LocationCertaintySchema } from '@xyo-network/location-certainty-payload-plugin'\nimport { LocationPayload, LocationSchema } from '@xyo-network/location-payload-plugin'\nimport { AnyConfigSchema } from '@xyo-network/module'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } from '@xyo-network/payload-model'\n\nimport { LocationCertaintyDivinerConfig, LocationCertaintyDivinerConfigSchema } from './Config'\n\nexport type LocationCertaintyDivinerParams = DivinerParams<AnyConfigSchema<LocationCertaintyDivinerConfig>>\n\nexport class LocationCertaintyDiviner<TParam extends LocationCertaintyDivinerParams = LocationCertaintyDivinerParams>\n extends AbstractDiviner<TParam>\n implements DivinerModule\n{\n static override configSchemas = [LocationCertaintyDivinerConfigSchema]\n static override targetSchema = LocationCertaintySchema\n\n /* Given an array of numbers, find the min/max/mean */\n private static calcHeuristic(heuristic: (number | null)[]): LocationCertaintyHeuristic {\n return {\n max: heuristic.reduce<number>((prev, value) => {\n return value !== null ? (value > prev ? value : prev) : prev\n }, -Infinity),\n mean: (() => {\n const values = heuristic.reduce<number[]>(\n (prev, value) => {\n return value !== null ? [value + prev[0], prev[1] + 1] : prev\n },\n [0, 0],\n )\n return values[0] / values[1]\n })(),\n min: heuristic.reduce<number>((prev, value) => {\n return value !== null ? (value < prev ? value : prev) : prev\n }, Infinity),\n }\n }\n\n /* Given elevation and location payloads, generate heuristic arrays */\n private static locationsToHeuristics(elevations: ElevationPayload[], locations: LocationPayload[]) {\n const heuristics = elevations.reduce<{ altitude: (number | null)[]; elevation: number[]; variance: (number | null)[] }>(\n (prev, elev, index) => {\n const elevation = elev.elevation\n if (elevation === undefined || elevation === null) {\n throw Error('Invalid Elevation')\n }\n const altitude = locations[index].altitude\n prev.altitude.push(altitude ?? null)\n prev.elevation.push(elevation)\n prev.variance.push(altitude !== undefined && altitude !== null ? altitude - elevation : null)\n return prev\n },\n { altitude: [], elevation: [], variance: [] },\n )\n return heuristics\n }\n\n /** @description Given a set of locations, get the expected elevations (witness if needed), and return score/variance */\n protected override async divineHandler(payloads?: Payload[]): Promise<Payload[]> {\n const locations = payloads?.filter<LocationPayload>((payload): payload is LocationPayload => payload?.schema === LocationSchema)\n // If this is a query we support\n if (locations && locations?.length > 0) {\n const elevationWitness = await ElevationWitness.create({\n account: this.account,\n config: {\n locations,\n schema: ElevationWitnessConfigSchema,\n },\n })\n const elevations = (await elevationWitness.observe()) as ElevationPayload[]\n\n const heuristics = LocationCertaintyDiviner.locationsToHeuristics(elevations, locations)\n\n const result = new PayloadBuilder<LocationCertaintyPayload>({ schema: LocationCertaintySchema })\n .fields({\n altitude: LocationCertaintyDiviner.calcHeuristic(heuristics.altitude),\n elevation: LocationCertaintyDiviner.calcHeuristic(heuristics.elevation),\n variance: LocationCertaintyDiviner.calcHeuristic(heuristics.variance),\n })\n .build()\n\n this.logger?.log('LocationCertaintyDiviner.Divine: Processed query')\n return [result]\n }\n return []\n }\n}\n","import { LocationCertaintyPlugin } from './Plugin'\n\nexport * from './Diviner'\n\nexport { LocationCertaintyPlugin }\n\n// eslint-disable-next-line import/no-default-export\nexport default LocationCertaintyPlugin\n"],"mappings":";AAAA,SAAS,2BAAAA,gCAA+B;AACxC,SAAS,wBAAwB;AACjC,SAAS,qCAAqC;;;ACGvC,IAAM,uCAA6E;;;ACL1F,SAAS,uBAAuB;AAGhC,SAAS,kBAAkB,oCAAoC;AAC/D,SAA+D,+BAA+B;AAC9F,SAA0B,sBAAsB;AAEhD,SAAS,sBAAsB;AAOxB,IAAM,2BAAN,MAAM,kCACH,gBAEV;AAAA,EACE,OAAgB,gBAAgB,CAAC,oCAAoC;AAAA,EACrE,OAAgB,eAAe;AAAA;AAAA,EAG/B,OAAe,cAAc,WAA0D;AACrF,WAAO;AAAA,MACL,KAAK,UAAU,OAAe,CAAC,MAAM,UAAU;AAC7C,eAAO,UAAU,OAAQ,QAAQ,OAAO,QAAQ,OAAQ;AAAA,MAC1D,GAAG,SAAS;AAAA,MACZ,OAAO,MAAM;AACX,cAAM,SAAS,UAAU;AAAA,UACvB,CAAC,MAAM,UAAU;AACf,mBAAO,UAAU,OAAO,CAAC,QAAQ,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI;AAAA,UAC3D;AAAA,UACA,CAAC,GAAG,CAAC;AAAA,QACP;AACA,eAAO,OAAO,CAAC,IAAI,OAAO,CAAC;AAAA,MAC7B,GAAG;AAAA,MACH,KAAK,UAAU,OAAe,CAAC,MAAM,UAAU;AAC7C,eAAO,UAAU,OAAQ,QAAQ,OAAO,QAAQ,OAAQ;AAAA,MAC1D,GAAG,QAAQ;AAAA,IACb;AAAA,EACF;AAAA;AAAA,EAGA,OAAe,sBAAsB,YAAgC,WAA8B;AACjG,UAAM,aAAa,WAAW;AAAA,MAC5B,CAAC,MAAM,MAAM,UAAU;AACrB,cAAM,YAAY,KAAK;AACvB,YAAI,cAAc,UAAa,cAAc,MAAM;AACjD,gBAAM,MAAM,mBAAmB;AAAA,QACjC;AACA,cAAM,WAAW,UAAU,KAAK,EAAE;AAClC,aAAK,SAAS,KAAK,YAAY,IAAI;AACnC,aAAK,UAAU,KAAK,SAAS;AAC7B,aAAK,SAAS,KAAK,aAAa,UAAa,aAAa,OAAO,WAAW,YAAY,IAAI;AAC5F,eAAO;AAAA,MACT;AAAA,MACA,EAAE,UAAU,CAAC,GAAG,WAAW,CAAC,GAAG,UAAU,CAAC,EAAE;AAAA,IAC9C;AACA,WAAO;AAAA,EACT;AAAA;AAAA,EAGA,MAAyB,cAAc,UAA0C;AAC/E,UAAM,YAAY,UAAU,OAAwB,CAAC,YAAwC,SAAS,WAAW,cAAc;AAE/H,QAAI,aAAa,WAAW,SAAS,GAAG;AACtC,YAAM,mBAAmB,MAAM,iBAAiB,OAAO;AAAA,QACrD,SAAS,KAAK;AAAA,QACd,QAAQ;AAAA,UACN;AAAA,UACA,QAAQ;AAAA,QACV;AAAA,MACF,CAAC;AACD,YAAM,aAAc,MAAM,iBAAiB,QAAQ;AAEnD,YAAM,aAAa,0BAAyB,sBAAsB,YAAY,SAAS;AAEvF,YAAM,SAAS,IAAI,eAAyC,EAAE,QAAQ,wBAAwB,CAAC,EAC5F,OAAO;AAAA,QACN,UAAU,0BAAyB,cAAc,WAAW,QAAQ;AAAA,QACpE,WAAW,0BAAyB,cAAc,WAAW,SAAS;AAAA,QACtE,UAAU,0BAAyB,cAAc,WAAW,QAAQ;AAAA,MACtE,CAAC,EACA,MAAM;AAET,WAAK,QAAQ,IAAI,kDAAkD;AACnE,aAAO,CAAC,MAAM;AAAA,IAChB;AACA,WAAO,CAAC;AAAA,EACV;AACF;;;AFpFO,IAAM,0BAA0B,MACrC;AAAA,EACE,EAAE,UAAU,EAAE,CAACC,wBAAuB,GAAG,EAAE,GAAG,QAAQ,iBAAiB;AAAA,EACvE;AAAA,IACE,SAAS,OAAO,WAAW;AACzB,aAAQ,MAAM,yBAAyB,OAAO,MAAM;AAAA,IACtD;AAAA,EACF;AACF;;;AGPF,IAAO,cAAQ;","names":["LocationCertaintySchema","LocationCertaintySchema"]}
1
+ {"version":3,"sources":["../../src/index.ts"],"sourcesContent":["import { LocationCertaintyPlugin } from './Plugin'\n\nexport * from './Diviner'\n\nexport { LocationCertaintyPlugin }\n\n// eslint-disable-next-line import/no-default-export\nexport default LocationCertaintyPlugin\n"],"mappings":"AAAA,SAAS,+BAA+B;AAExC,cAAc;AAKd,IAAO,cAAQ;","names":[]}