@xyo-network/location-certainty-plugin 2.99.5 → 2.99.6
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/browser/Plugin.d.cts +3 -3
- package/dist/browser/Plugin.d.mts +3 -3
- package/dist/browser/Plugin.d.ts +3 -3
- package/dist/browser/index.cjs +31 -48
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.mjs +31 -50
- package/dist/browser/index.mjs.map +1 -1
- package/dist/neutral/Plugin.d.cts +3 -3
- package/dist/neutral/Plugin.d.mts +3 -3
- package/dist/neutral/Plugin.d.ts +3 -3
- package/dist/neutral/index.cjs +31 -48
- package/dist/neutral/index.cjs.map +1 -1
- package/dist/neutral/index.mjs +31 -50
- package/dist/neutral/index.mjs.map +1 -1
- package/dist/node/Plugin.d.cts +3 -3
- package/dist/node/Plugin.d.mts +3 -3
- package/dist/node/Plugin.d.ts +3 -3
- package/dist/node/index.cjs +34 -55
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.mjs +34 -57
- package/dist/node/index.mjs.map +1 -1
- package/package.json +18 -17
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { LocationCertaintySchema } from '@xyo-network/location-certainty-payload-plugin';
|
|
2
2
|
import { LocationCertaintyDiviner } from './Diviner/index.ts';
|
|
3
|
-
export declare const LocationCertaintyPlugin: () => import("@xyo-network/payloadset-plugin").PayloadSetDivinerPlugin<LocationCertaintyDiviner<import("
|
|
4
|
-
account?: import("
|
|
3
|
+
export declare const LocationCertaintyPlugin: () => import("@xyo-network/payloadset-plugin").PayloadSetDivinerPlugin<LocationCertaintyDiviner<import(".store/@xylabs-object-npm-3.6.12-443b813787/package").BaseParamsFields & {
|
|
4
|
+
account?: import(".store/@xyo-network-account-model-virtual-c593258ccf/package").AccountInstance | "random";
|
|
5
5
|
addToResolvers?: boolean;
|
|
6
|
-
additionalSigners?: import("
|
|
6
|
+
additionalSigners?: import(".store/@xyo-network-account-model-virtual-c593258ccf/package").AccountInstance[];
|
|
7
7
|
allowNameResolution?: boolean;
|
|
8
8
|
config: import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & {
|
|
9
9
|
schema: "network.xyo.location.elevation.diviner.config";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { LocationCertaintySchema } from '@xyo-network/location-certainty-payload-plugin';
|
|
2
2
|
import { LocationCertaintyDiviner } from './Diviner/index.ts';
|
|
3
|
-
export declare const LocationCertaintyPlugin: () => import("@xyo-network/payloadset-plugin").PayloadSetDivinerPlugin<LocationCertaintyDiviner<import("
|
|
4
|
-
account?: import("
|
|
3
|
+
export declare const LocationCertaintyPlugin: () => import("@xyo-network/payloadset-plugin").PayloadSetDivinerPlugin<LocationCertaintyDiviner<import(".store/@xylabs-object-npm-3.6.12-443b813787/package").BaseParamsFields & {
|
|
4
|
+
account?: import(".store/@xyo-network-account-model-virtual-c593258ccf/package").AccountInstance | "random";
|
|
5
5
|
addToResolvers?: boolean;
|
|
6
|
-
additionalSigners?: import("
|
|
6
|
+
additionalSigners?: import(".store/@xyo-network-account-model-virtual-c593258ccf/package").AccountInstance[];
|
|
7
7
|
allowNameResolution?: boolean;
|
|
8
8
|
config: import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & {
|
|
9
9
|
schema: "network.xyo.location.elevation.diviner.config";
|
package/dist/browser/Plugin.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { LocationCertaintySchema } from '@xyo-network/location-certainty-payload-plugin';
|
|
2
2
|
import { LocationCertaintyDiviner } from './Diviner/index.ts';
|
|
3
|
-
export declare const LocationCertaintyPlugin: () => import("@xyo-network/payloadset-plugin").PayloadSetDivinerPlugin<LocationCertaintyDiviner<import("
|
|
4
|
-
account?: import("
|
|
3
|
+
export declare const LocationCertaintyPlugin: () => import("@xyo-network/payloadset-plugin").PayloadSetDivinerPlugin<LocationCertaintyDiviner<import(".store/@xylabs-object-npm-3.6.12-443b813787/package").BaseParamsFields & {
|
|
4
|
+
account?: import(".store/@xyo-network-account-model-virtual-c593258ccf/package").AccountInstance | "random";
|
|
5
5
|
addToResolvers?: boolean;
|
|
6
|
-
additionalSigners?: import("
|
|
6
|
+
additionalSigners?: import(".store/@xyo-network-account-model-virtual-c593258ccf/package").AccountInstance[];
|
|
7
7
|
allowNameResolution?: boolean;
|
|
8
8
|
config: import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & {
|
|
9
9
|
schema: "network.xyo.location.elevation.diviner.config";
|
package/dist/browser/index.cjs
CHANGED
|
@@ -3,7 +3,6 @@ var __defProp = Object.defineProperty;
|
|
|
3
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
5
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
7
6
|
var __export = (target, all) => {
|
|
8
7
|
for (var name in all)
|
|
9
8
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -38,13 +37,7 @@ var import_location_certainty_payload_plugin = require("@xyo-network/location-ce
|
|
|
38
37
|
var import_location_payload_plugin = require("@xyo-network/location-payload-plugin");
|
|
39
38
|
var import_payload_builder = require("@xyo-network/payload-builder");
|
|
40
39
|
var LocationCertaintyDiviner = class _LocationCertaintyDiviner extends import_diviner_abstract.AbstractDiviner {
|
|
41
|
-
static
|
|
42
|
-
__name(this, "LocationCertaintyDiviner");
|
|
43
|
-
}
|
|
44
|
-
static configSchemas = [
|
|
45
|
-
...super.configSchemas,
|
|
46
|
-
LocationCertaintyDivinerConfigSchema
|
|
47
|
-
];
|
|
40
|
+
static configSchemas = [...super.configSchemas, LocationCertaintyDivinerConfigSchema];
|
|
48
41
|
static defaultConfigSchema = LocationCertaintyDivinerConfigSchema;
|
|
49
42
|
static targetSchema = import_location_certainty_payload_plugin.LocationCertaintySchema;
|
|
50
43
|
/* Given an array of numbers, find the min/max/mean */
|
|
@@ -55,15 +48,12 @@ var LocationCertaintyDiviner = class _LocationCertaintyDiviner extends import_di
|
|
|
55
48
|
return value === null ? prev : value > prev ? value : prev;
|
|
56
49
|
}, Number.NEGATIVE_INFINITY),
|
|
57
50
|
mean: (() => {
|
|
58
|
-
const values = heuristic.reduce(
|
|
59
|
-
|
|
60
|
-
value + prev[0],
|
|
61
|
-
|
|
62
|
-
]
|
|
63
|
-
|
|
64
|
-
0,
|
|
65
|
-
0
|
|
66
|
-
]);
|
|
51
|
+
const values = heuristic.reduce(
|
|
52
|
+
(prev, value) => {
|
|
53
|
+
return value === null ? prev : [value + prev[0], prev[1] + 1];
|
|
54
|
+
},
|
|
55
|
+
[0, 0]
|
|
56
|
+
);
|
|
67
57
|
return values[0] / values[1];
|
|
68
58
|
})(),
|
|
69
59
|
// eslint-disable-next-line unicorn/no-array-reduce
|
|
@@ -74,21 +64,20 @@ var LocationCertaintyDiviner = class _LocationCertaintyDiviner extends import_di
|
|
|
74
64
|
}
|
|
75
65
|
/* Given elevation and location payloads, generate heuristic arrays */
|
|
76
66
|
static locationsToHeuristics(elevations, locations) {
|
|
77
|
-
const heuristics = elevations.reduce(
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
elevation: [],
|
|
90
|
-
|
|
91
|
-
});
|
|
67
|
+
const heuristics = elevations.reduce(
|
|
68
|
+
(prev, elev, index) => {
|
|
69
|
+
const elevation = elev.elevation;
|
|
70
|
+
if (elevation === void 0 || elevation === null) {
|
|
71
|
+
throw new Error("Invalid Elevation");
|
|
72
|
+
}
|
|
73
|
+
const altitude = locations[index].altitude;
|
|
74
|
+
prev.altitude.push(altitude ?? null);
|
|
75
|
+
prev.elevation.push(elevation);
|
|
76
|
+
prev.variance.push(altitude !== void 0 && altitude !== null ? altitude - elevation : null);
|
|
77
|
+
return prev;
|
|
78
|
+
},
|
|
79
|
+
{ altitude: [], elevation: [], variance: [] }
|
|
80
|
+
);
|
|
92
81
|
return heuristics;
|
|
93
82
|
}
|
|
94
83
|
/** @description Given a set of locations, get the expected elevations (witness if needed), and return score/variance */
|
|
@@ -104,17 +93,13 @@ var LocationCertaintyDiviner = class _LocationCertaintyDiviner extends import_di
|
|
|
104
93
|
});
|
|
105
94
|
const elevations = await elevationWitness.observe();
|
|
106
95
|
const heuristics = _LocationCertaintyDiviner.locationsToHeuristics(elevations, locations);
|
|
107
|
-
const result = await new import_payload_builder.PayloadBuilder({
|
|
108
|
-
schema: import_location_certainty_payload_plugin.LocationCertaintySchema
|
|
109
|
-
}).fields({
|
|
96
|
+
const result = await new import_payload_builder.PayloadBuilder({ schema: import_location_certainty_payload_plugin.LocationCertaintySchema }).fields({
|
|
110
97
|
altitude: _LocationCertaintyDiviner.calcHeuristic(heuristics.altitude),
|
|
111
98
|
elevation: _LocationCertaintyDiviner.calcHeuristic(heuristics.elevation),
|
|
112
99
|
variance: _LocationCertaintyDiviner.calcHeuristic(heuristics.variance)
|
|
113
100
|
}).build();
|
|
114
101
|
this.logger?.log("LocationCertaintyDiviner.Divine: Processed query");
|
|
115
|
-
return [
|
|
116
|
-
result
|
|
117
|
-
];
|
|
102
|
+
return [result];
|
|
118
103
|
}
|
|
119
104
|
return [];
|
|
120
105
|
}
|
|
@@ -124,14 +109,12 @@ var LocationCertaintyDiviner = class _LocationCertaintyDiviner extends import_di
|
|
|
124
109
|
var import_location_certainty_payload_plugin2 = require("@xyo-network/location-certainty-payload-plugin");
|
|
125
110
|
var import_payload_model = require("@xyo-network/payload-model");
|
|
126
111
|
var import_payloadset_plugin = require("@xyo-network/payloadset-plugin");
|
|
127
|
-
var LocationCertaintyPlugin =
|
|
128
|
-
required: {
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
}, "diviner")
|
|
136
|
-
}), "LocationCertaintyPlugin");
|
|
112
|
+
var LocationCertaintyPlugin = () => (0, import_payloadset_plugin.createPayloadSetDivinerPlugin)(
|
|
113
|
+
{ required: { [import_location_certainty_payload_plugin2.LocationCertaintySchema]: 1 }, schema: import_payload_model.PayloadSetSchema },
|
|
114
|
+
{
|
|
115
|
+
diviner: async (params) => {
|
|
116
|
+
return await LocationCertaintyDiviner.create(params);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
);
|
|
137
120
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts","../../src/Diviner/Config.ts","../../src/Diviner/Diviner.ts","../../src/Plugin.ts"],"sourcesContent":["export * from './Diviner/index.ts'\n// eslint-disable-next-line import/no-default-export\nexport { LocationCertaintyPlugin as default, LocationCertaintyPlugin } from './Plugin.ts'\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/diviner-abstract'\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-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload, Schema } from '@xyo-network/payload-model'\n\nimport { LocationCertaintyDivinerConfig, LocationCertaintyDivinerConfigSchema } from './Config.ts'\n\nexport type LocationCertaintyDivinerParams = DivinerParams<AnyConfigSchema<LocationCertaintyDivinerConfig>>\n\nexport class LocationCertaintyDiviner<TParam extends LocationCertaintyDivinerParams = LocationCertaintyDivinerParams>\n extends AbstractDiviner<TParam>\n implements DivinerModule {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, LocationCertaintyDivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = 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 // eslint-disable-next-line unicorn/no-array-reduce\n max: heuristic.reduce<number>((prev, value) => {\n return (\n value === null\n ? prev\n : value > prev\n ? value\n : prev\n )\n }, Number.NEGATIVE_INFINITY),\n mean: (() => {\n // eslint-disable-next-line unicorn/no-array-reduce\n const values = heuristic.reduce<number[]>(\n (prev, value) => {\n return value === null ? prev : [value + prev[0], prev[1] + 1]\n },\n [0, 0],\n )\n return values[0] / values[1]\n })(),\n // eslint-disable-next-line unicorn/no-array-reduce\n min: heuristic.reduce<number>((prev, value) => {\n return (\n value === null\n ? prev\n : value < prev\n ? value\n : prev\n )\n }, Number.POSITIVE_INFINITY),\n }\n }\n\n /* Given elevation and location payloads, generate heuristic arrays */\n private static locationsToHeuristics(elevations: ElevationPayload[], locations: LocationPayload[]) {\n // eslint-disable-next-line unicorn/no-array-reduce\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 new 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 = await 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 { 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/index.ts'\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":"
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts","../../src/Diviner/Config.ts","../../src/Diviner/Diviner.ts","../../src/Plugin.ts"],"sourcesContent":["export * from './Diviner/index.ts'\n// eslint-disable-next-line import/no-default-export\nexport { LocationCertaintyPlugin as default, LocationCertaintyPlugin } from './Plugin.ts'\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/diviner-abstract'\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-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload, Schema } from '@xyo-network/payload-model'\n\nimport { LocationCertaintyDivinerConfig, LocationCertaintyDivinerConfigSchema } from './Config.ts'\n\nexport type LocationCertaintyDivinerParams = DivinerParams<AnyConfigSchema<LocationCertaintyDivinerConfig>>\n\nexport class LocationCertaintyDiviner<TParam extends LocationCertaintyDivinerParams = LocationCertaintyDivinerParams>\n extends AbstractDiviner<TParam>\n implements DivinerModule {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, LocationCertaintyDivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = 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 // eslint-disable-next-line unicorn/no-array-reduce\n max: heuristic.reduce<number>((prev, value) => {\n return (\n value === null\n ? prev\n : value > prev\n ? value\n : prev\n )\n }, Number.NEGATIVE_INFINITY),\n mean: (() => {\n // eslint-disable-next-line unicorn/no-array-reduce\n const values = heuristic.reduce<number[]>(\n (prev, value) => {\n return value === null ? prev : [value + prev[0], prev[1] + 1]\n },\n [0, 0],\n )\n return values[0] / values[1]\n })(),\n // eslint-disable-next-line unicorn/no-array-reduce\n min: heuristic.reduce<number>((prev, value) => {\n return (\n value === null\n ? prev\n : value < prev\n ? value\n : prev\n )\n }, Number.POSITIVE_INFINITY),\n }\n }\n\n /* Given elevation and location payloads, generate heuristic arrays */\n private static locationsToHeuristics(elevations: ElevationPayload[], locations: LocationPayload[]) {\n // eslint-disable-next-line unicorn/no-array-reduce\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 new 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 = await 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 { 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/index.ts'\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":"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","names":["import_location_certainty_payload_plugin"]}
|
package/dist/browser/index.mjs
CHANGED
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
-
|
|
4
1
|
// src/Diviner/Config.ts
|
|
5
2
|
var LocationCertaintyDivinerConfigSchema = "network.xyo.location.elevation.diviner.config";
|
|
6
3
|
|
|
@@ -11,13 +8,7 @@ import { LocationCertaintySchema } from "@xyo-network/location-certainty-payload
|
|
|
11
8
|
import { LocationSchema } from "@xyo-network/location-payload-plugin";
|
|
12
9
|
import { PayloadBuilder } from "@xyo-network/payload-builder";
|
|
13
10
|
var LocationCertaintyDiviner = class _LocationCertaintyDiviner extends AbstractDiviner {
|
|
14
|
-
static
|
|
15
|
-
__name(this, "LocationCertaintyDiviner");
|
|
16
|
-
}
|
|
17
|
-
static configSchemas = [
|
|
18
|
-
...super.configSchemas,
|
|
19
|
-
LocationCertaintyDivinerConfigSchema
|
|
20
|
-
];
|
|
11
|
+
static configSchemas = [...super.configSchemas, LocationCertaintyDivinerConfigSchema];
|
|
21
12
|
static defaultConfigSchema = LocationCertaintyDivinerConfigSchema;
|
|
22
13
|
static targetSchema = LocationCertaintySchema;
|
|
23
14
|
/* Given an array of numbers, find the min/max/mean */
|
|
@@ -28,15 +19,12 @@ var LocationCertaintyDiviner = class _LocationCertaintyDiviner extends AbstractD
|
|
|
28
19
|
return value === null ? prev : value > prev ? value : prev;
|
|
29
20
|
}, Number.NEGATIVE_INFINITY),
|
|
30
21
|
mean: (() => {
|
|
31
|
-
const values = heuristic.reduce(
|
|
32
|
-
|
|
33
|
-
value + prev[0],
|
|
34
|
-
|
|
35
|
-
]
|
|
36
|
-
|
|
37
|
-
0,
|
|
38
|
-
0
|
|
39
|
-
]);
|
|
22
|
+
const values = heuristic.reduce(
|
|
23
|
+
(prev, value) => {
|
|
24
|
+
return value === null ? prev : [value + prev[0], prev[1] + 1];
|
|
25
|
+
},
|
|
26
|
+
[0, 0]
|
|
27
|
+
);
|
|
40
28
|
return values[0] / values[1];
|
|
41
29
|
})(),
|
|
42
30
|
// eslint-disable-next-line unicorn/no-array-reduce
|
|
@@ -47,21 +35,20 @@ var LocationCertaintyDiviner = class _LocationCertaintyDiviner extends AbstractD
|
|
|
47
35
|
}
|
|
48
36
|
/* Given elevation and location payloads, generate heuristic arrays */
|
|
49
37
|
static locationsToHeuristics(elevations, locations) {
|
|
50
|
-
const heuristics = elevations.reduce(
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
elevation: [],
|
|
63
|
-
|
|
64
|
-
});
|
|
38
|
+
const heuristics = elevations.reduce(
|
|
39
|
+
(prev, elev, index) => {
|
|
40
|
+
const elevation = elev.elevation;
|
|
41
|
+
if (elevation === void 0 || elevation === null) {
|
|
42
|
+
throw new Error("Invalid Elevation");
|
|
43
|
+
}
|
|
44
|
+
const altitude = locations[index].altitude;
|
|
45
|
+
prev.altitude.push(altitude ?? null);
|
|
46
|
+
prev.elevation.push(elevation);
|
|
47
|
+
prev.variance.push(altitude !== void 0 && altitude !== null ? altitude - elevation : null);
|
|
48
|
+
return prev;
|
|
49
|
+
},
|
|
50
|
+
{ altitude: [], elevation: [], variance: [] }
|
|
51
|
+
);
|
|
65
52
|
return heuristics;
|
|
66
53
|
}
|
|
67
54
|
/** @description Given a set of locations, get the expected elevations (witness if needed), and return score/variance */
|
|
@@ -77,17 +64,13 @@ var LocationCertaintyDiviner = class _LocationCertaintyDiviner extends AbstractD
|
|
|
77
64
|
});
|
|
78
65
|
const elevations = await elevationWitness.observe();
|
|
79
66
|
const heuristics = _LocationCertaintyDiviner.locationsToHeuristics(elevations, locations);
|
|
80
|
-
const result = await new PayloadBuilder({
|
|
81
|
-
schema: LocationCertaintySchema
|
|
82
|
-
}).fields({
|
|
67
|
+
const result = await new PayloadBuilder({ schema: LocationCertaintySchema }).fields({
|
|
83
68
|
altitude: _LocationCertaintyDiviner.calcHeuristic(heuristics.altitude),
|
|
84
69
|
elevation: _LocationCertaintyDiviner.calcHeuristic(heuristics.elevation),
|
|
85
70
|
variance: _LocationCertaintyDiviner.calcHeuristic(heuristics.variance)
|
|
86
71
|
}).build();
|
|
87
72
|
this.logger?.log("LocationCertaintyDiviner.Divine: Processed query");
|
|
88
|
-
return [
|
|
89
|
-
result
|
|
90
|
-
];
|
|
73
|
+
return [result];
|
|
91
74
|
}
|
|
92
75
|
return [];
|
|
93
76
|
}
|
|
@@ -97,16 +80,14 @@ var LocationCertaintyDiviner = class _LocationCertaintyDiviner extends AbstractD
|
|
|
97
80
|
import { LocationCertaintySchema as LocationCertaintySchema2 } from "@xyo-network/location-certainty-payload-plugin";
|
|
98
81
|
import { PayloadSetSchema } from "@xyo-network/payload-model";
|
|
99
82
|
import { createPayloadSetDivinerPlugin } from "@xyo-network/payloadset-plugin";
|
|
100
|
-
var LocationCertaintyPlugin =
|
|
101
|
-
required: {
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
}, "diviner")
|
|
109
|
-
}), "LocationCertaintyPlugin");
|
|
83
|
+
var LocationCertaintyPlugin = () => createPayloadSetDivinerPlugin(
|
|
84
|
+
{ required: { [LocationCertaintySchema2]: 1 }, schema: PayloadSetSchema },
|
|
85
|
+
{
|
|
86
|
+
diviner: async (params) => {
|
|
87
|
+
return await LocationCertaintyDiviner.create(params);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
);
|
|
110
91
|
export {
|
|
111
92
|
LocationCertaintyDiviner,
|
|
112
93
|
LocationCertaintyDivinerConfigSchema,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Diviner/Config.ts","../../src/Diviner/Diviner.ts","../../src/Plugin.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/diviner-abstract'\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-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload, Schema } from '@xyo-network/payload-model'\n\nimport { LocationCertaintyDivinerConfig, LocationCertaintyDivinerConfigSchema } from './Config.ts'\n\nexport type LocationCertaintyDivinerParams = DivinerParams<AnyConfigSchema<LocationCertaintyDivinerConfig>>\n\nexport class LocationCertaintyDiviner<TParam extends LocationCertaintyDivinerParams = LocationCertaintyDivinerParams>\n extends AbstractDiviner<TParam>\n implements DivinerModule {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, LocationCertaintyDivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = 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 // eslint-disable-next-line unicorn/no-array-reduce\n max: heuristic.reduce<number>((prev, value) => {\n return (\n value === null\n ? prev\n : value > prev\n ? value\n : prev\n )\n }, Number.NEGATIVE_INFINITY),\n mean: (() => {\n // eslint-disable-next-line unicorn/no-array-reduce\n const values = heuristic.reduce<number[]>(\n (prev, value) => {\n return value === null ? prev : [value + prev[0], prev[1] + 1]\n },\n [0, 0],\n )\n return values[0] / values[1]\n })(),\n // eslint-disable-next-line unicorn/no-array-reduce\n min: heuristic.reduce<number>((prev, value) => {\n return (\n value === null\n ? prev\n : value < prev\n ? value\n : prev\n )\n }, Number.POSITIVE_INFINITY),\n }\n }\n\n /* Given elevation and location payloads, generate heuristic arrays */\n private static locationsToHeuristics(elevations: ElevationPayload[], locations: LocationPayload[]) {\n // eslint-disable-next-line unicorn/no-array-reduce\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 new 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 = await 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 { 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/index.ts'\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":"
|
|
1
|
+
{"version":3,"sources":["../../src/Diviner/Config.ts","../../src/Diviner/Diviner.ts","../../src/Plugin.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/diviner-abstract'\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-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload, Schema } from '@xyo-network/payload-model'\n\nimport { LocationCertaintyDivinerConfig, LocationCertaintyDivinerConfigSchema } from './Config.ts'\n\nexport type LocationCertaintyDivinerParams = DivinerParams<AnyConfigSchema<LocationCertaintyDivinerConfig>>\n\nexport class LocationCertaintyDiviner<TParam extends LocationCertaintyDivinerParams = LocationCertaintyDivinerParams>\n extends AbstractDiviner<TParam>\n implements DivinerModule {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, LocationCertaintyDivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = 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 // eslint-disable-next-line unicorn/no-array-reduce\n max: heuristic.reduce<number>((prev, value) => {\n return (\n value === null\n ? prev\n : value > prev\n ? value\n : prev\n )\n }, Number.NEGATIVE_INFINITY),\n mean: (() => {\n // eslint-disable-next-line unicorn/no-array-reduce\n const values = heuristic.reduce<number[]>(\n (prev, value) => {\n return value === null ? prev : [value + prev[0], prev[1] + 1]\n },\n [0, 0],\n )\n return values[0] / values[1]\n })(),\n // eslint-disable-next-line unicorn/no-array-reduce\n min: heuristic.reduce<number>((prev, value) => {\n return (\n value === null\n ? prev\n : value < prev\n ? value\n : prev\n )\n }, Number.POSITIVE_INFINITY),\n }\n }\n\n /* Given elevation and location payloads, generate heuristic arrays */\n private static locationsToHeuristics(elevations: ElevationPayload[], locations: LocationPayload[]) {\n // eslint-disable-next-line unicorn/no-array-reduce\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 new 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 = await 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 { 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/index.ts'\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":"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","names":["LocationCertaintySchema","LocationCertaintySchema"]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { LocationCertaintySchema } from '@xyo-network/location-certainty-payload-plugin';
|
|
2
2
|
import { LocationCertaintyDiviner } from './Diviner/index.ts';
|
|
3
|
-
export declare const LocationCertaintyPlugin: () => import("@xyo-network/payloadset-plugin").PayloadSetDivinerPlugin<LocationCertaintyDiviner<import("
|
|
4
|
-
account?: import("
|
|
3
|
+
export declare const LocationCertaintyPlugin: () => import("@xyo-network/payloadset-plugin").PayloadSetDivinerPlugin<LocationCertaintyDiviner<import(".store/@xylabs-object-npm-3.6.12-443b813787/package").BaseParamsFields & {
|
|
4
|
+
account?: import(".store/@xyo-network-account-model-virtual-c593258ccf/package").AccountInstance | "random";
|
|
5
5
|
addToResolvers?: boolean;
|
|
6
|
-
additionalSigners?: import("
|
|
6
|
+
additionalSigners?: import(".store/@xyo-network-account-model-virtual-c593258ccf/package").AccountInstance[];
|
|
7
7
|
allowNameResolution?: boolean;
|
|
8
8
|
config: import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & {
|
|
9
9
|
schema: "network.xyo.location.elevation.diviner.config";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { LocationCertaintySchema } from '@xyo-network/location-certainty-payload-plugin';
|
|
2
2
|
import { LocationCertaintyDiviner } from './Diviner/index.ts';
|
|
3
|
-
export declare const LocationCertaintyPlugin: () => import("@xyo-network/payloadset-plugin").PayloadSetDivinerPlugin<LocationCertaintyDiviner<import("
|
|
4
|
-
account?: import("
|
|
3
|
+
export declare const LocationCertaintyPlugin: () => import("@xyo-network/payloadset-plugin").PayloadSetDivinerPlugin<LocationCertaintyDiviner<import(".store/@xylabs-object-npm-3.6.12-443b813787/package").BaseParamsFields & {
|
|
4
|
+
account?: import(".store/@xyo-network-account-model-virtual-c593258ccf/package").AccountInstance | "random";
|
|
5
5
|
addToResolvers?: boolean;
|
|
6
|
-
additionalSigners?: import("
|
|
6
|
+
additionalSigners?: import(".store/@xyo-network-account-model-virtual-c593258ccf/package").AccountInstance[];
|
|
7
7
|
allowNameResolution?: boolean;
|
|
8
8
|
config: import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & {
|
|
9
9
|
schema: "network.xyo.location.elevation.diviner.config";
|
package/dist/neutral/Plugin.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { LocationCertaintySchema } from '@xyo-network/location-certainty-payload-plugin';
|
|
2
2
|
import { LocationCertaintyDiviner } from './Diviner/index.ts';
|
|
3
|
-
export declare const LocationCertaintyPlugin: () => import("@xyo-network/payloadset-plugin").PayloadSetDivinerPlugin<LocationCertaintyDiviner<import("
|
|
4
|
-
account?: import("
|
|
3
|
+
export declare const LocationCertaintyPlugin: () => import("@xyo-network/payloadset-plugin").PayloadSetDivinerPlugin<LocationCertaintyDiviner<import(".store/@xylabs-object-npm-3.6.12-443b813787/package").BaseParamsFields & {
|
|
4
|
+
account?: import(".store/@xyo-network-account-model-virtual-c593258ccf/package").AccountInstance | "random";
|
|
5
5
|
addToResolvers?: boolean;
|
|
6
|
-
additionalSigners?: import("
|
|
6
|
+
additionalSigners?: import(".store/@xyo-network-account-model-virtual-c593258ccf/package").AccountInstance[];
|
|
7
7
|
allowNameResolution?: boolean;
|
|
8
8
|
config: import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & {
|
|
9
9
|
schema: "network.xyo.location.elevation.diviner.config";
|
package/dist/neutral/index.cjs
CHANGED
|
@@ -3,7 +3,6 @@ var __defProp = Object.defineProperty;
|
|
|
3
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
5
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
7
6
|
var __export = (target, all) => {
|
|
8
7
|
for (var name in all)
|
|
9
8
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -38,13 +37,7 @@ var import_location_certainty_payload_plugin = require("@xyo-network/location-ce
|
|
|
38
37
|
var import_location_payload_plugin = require("@xyo-network/location-payload-plugin");
|
|
39
38
|
var import_payload_builder = require("@xyo-network/payload-builder");
|
|
40
39
|
var LocationCertaintyDiviner = class _LocationCertaintyDiviner extends import_diviner_abstract.AbstractDiviner {
|
|
41
|
-
static
|
|
42
|
-
__name(this, "LocationCertaintyDiviner");
|
|
43
|
-
}
|
|
44
|
-
static configSchemas = [
|
|
45
|
-
...super.configSchemas,
|
|
46
|
-
LocationCertaintyDivinerConfigSchema
|
|
47
|
-
];
|
|
40
|
+
static configSchemas = [...super.configSchemas, LocationCertaintyDivinerConfigSchema];
|
|
48
41
|
static defaultConfigSchema = LocationCertaintyDivinerConfigSchema;
|
|
49
42
|
static targetSchema = import_location_certainty_payload_plugin.LocationCertaintySchema;
|
|
50
43
|
/* Given an array of numbers, find the min/max/mean */
|
|
@@ -55,15 +48,12 @@ var LocationCertaintyDiviner = class _LocationCertaintyDiviner extends import_di
|
|
|
55
48
|
return value === null ? prev : value > prev ? value : prev;
|
|
56
49
|
}, Number.NEGATIVE_INFINITY),
|
|
57
50
|
mean: (() => {
|
|
58
|
-
const values = heuristic.reduce(
|
|
59
|
-
|
|
60
|
-
value + prev[0],
|
|
61
|
-
|
|
62
|
-
]
|
|
63
|
-
|
|
64
|
-
0,
|
|
65
|
-
0
|
|
66
|
-
]);
|
|
51
|
+
const values = heuristic.reduce(
|
|
52
|
+
(prev, value) => {
|
|
53
|
+
return value === null ? prev : [value + prev[0], prev[1] + 1];
|
|
54
|
+
},
|
|
55
|
+
[0, 0]
|
|
56
|
+
);
|
|
67
57
|
return values[0] / values[1];
|
|
68
58
|
})(),
|
|
69
59
|
// eslint-disable-next-line unicorn/no-array-reduce
|
|
@@ -74,21 +64,20 @@ var LocationCertaintyDiviner = class _LocationCertaintyDiviner extends import_di
|
|
|
74
64
|
}
|
|
75
65
|
/* Given elevation and location payloads, generate heuristic arrays */
|
|
76
66
|
static locationsToHeuristics(elevations, locations) {
|
|
77
|
-
const heuristics = elevations.reduce(
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
elevation: [],
|
|
90
|
-
|
|
91
|
-
});
|
|
67
|
+
const heuristics = elevations.reduce(
|
|
68
|
+
(prev, elev, index) => {
|
|
69
|
+
const elevation = elev.elevation;
|
|
70
|
+
if (elevation === void 0 || elevation === null) {
|
|
71
|
+
throw new Error("Invalid Elevation");
|
|
72
|
+
}
|
|
73
|
+
const altitude = locations[index].altitude;
|
|
74
|
+
prev.altitude.push(altitude ?? null);
|
|
75
|
+
prev.elevation.push(elevation);
|
|
76
|
+
prev.variance.push(altitude !== void 0 && altitude !== null ? altitude - elevation : null);
|
|
77
|
+
return prev;
|
|
78
|
+
},
|
|
79
|
+
{ altitude: [], elevation: [], variance: [] }
|
|
80
|
+
);
|
|
92
81
|
return heuristics;
|
|
93
82
|
}
|
|
94
83
|
/** @description Given a set of locations, get the expected elevations (witness if needed), and return score/variance */
|
|
@@ -104,17 +93,13 @@ var LocationCertaintyDiviner = class _LocationCertaintyDiviner extends import_di
|
|
|
104
93
|
});
|
|
105
94
|
const elevations = await elevationWitness.observe();
|
|
106
95
|
const heuristics = _LocationCertaintyDiviner.locationsToHeuristics(elevations, locations);
|
|
107
|
-
const result = await new import_payload_builder.PayloadBuilder({
|
|
108
|
-
schema: import_location_certainty_payload_plugin.LocationCertaintySchema
|
|
109
|
-
}).fields({
|
|
96
|
+
const result = await new import_payload_builder.PayloadBuilder({ schema: import_location_certainty_payload_plugin.LocationCertaintySchema }).fields({
|
|
110
97
|
altitude: _LocationCertaintyDiviner.calcHeuristic(heuristics.altitude),
|
|
111
98
|
elevation: _LocationCertaintyDiviner.calcHeuristic(heuristics.elevation),
|
|
112
99
|
variance: _LocationCertaintyDiviner.calcHeuristic(heuristics.variance)
|
|
113
100
|
}).build();
|
|
114
101
|
this.logger?.log("LocationCertaintyDiviner.Divine: Processed query");
|
|
115
|
-
return [
|
|
116
|
-
result
|
|
117
|
-
];
|
|
102
|
+
return [result];
|
|
118
103
|
}
|
|
119
104
|
return [];
|
|
120
105
|
}
|
|
@@ -124,14 +109,12 @@ var LocationCertaintyDiviner = class _LocationCertaintyDiviner extends import_di
|
|
|
124
109
|
var import_location_certainty_payload_plugin2 = require("@xyo-network/location-certainty-payload-plugin");
|
|
125
110
|
var import_payload_model = require("@xyo-network/payload-model");
|
|
126
111
|
var import_payloadset_plugin = require("@xyo-network/payloadset-plugin");
|
|
127
|
-
var LocationCertaintyPlugin =
|
|
128
|
-
required: {
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
}, "diviner")
|
|
136
|
-
}), "LocationCertaintyPlugin");
|
|
112
|
+
var LocationCertaintyPlugin = () => (0, import_payloadset_plugin.createPayloadSetDivinerPlugin)(
|
|
113
|
+
{ required: { [import_location_certainty_payload_plugin2.LocationCertaintySchema]: 1 }, schema: import_payload_model.PayloadSetSchema },
|
|
114
|
+
{
|
|
115
|
+
diviner: async (params) => {
|
|
116
|
+
return await LocationCertaintyDiviner.create(params);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
);
|
|
137
120
|
//# sourceMappingURL=index.cjs.map
|