@xyo-network/diviner-jsonpath-memory 2.84.2 → 2.84.4

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.
@@ -44,7 +44,7 @@ var import_payload_builder = require("@xyo-network/payload-builder");
44
44
  var import_payload_model = require("@xyo-network/payload-model");
45
45
 
46
46
  // src/jsonpath/toPayloadTransformer.ts
47
- var import_jsonpath = __toESM(require("jsonpath"));
47
+ var import_jsonpath = __toESM(require("jsonpath"), 1);
48
48
  var toPayloadTransformer = (transformExpression) => {
49
49
  const { defaultValue, destinationField, sourcePathExpression } = transformExpression;
50
50
  const transformer = (x) => {
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // src/index.ts
31
+ var src_exports = {};
32
+ __export(src_exports, {
33
+ JsonPathDiviner: () => JsonPathDiviner,
34
+ toPayloadTransformer: () => toPayloadTransformer
35
+ });
36
+ module.exports = __toCommonJS(src_exports);
37
+
38
+ // src/Diviner.ts
39
+ var import_assert = require("@xylabs/assert");
40
+ var import_abstract_diviner = require("@xyo-network/abstract-diviner");
41
+ var import_diviner_jsonpath_model = require("@xyo-network/diviner-jsonpath-model");
42
+ var import_hash = require("@xyo-network/hash");
43
+ var import_payload_builder = require("@xyo-network/payload-builder");
44
+ var import_payload_model = require("@xyo-network/payload-model");
45
+
46
+ // src/jsonpath/toPayloadTransformer.ts
47
+ var import_jsonpath = __toESM(require("jsonpath"), 1);
48
+ var toPayloadTransformer = (transformExpression) => {
49
+ const { defaultValue, destinationField, sourcePathExpression } = transformExpression;
50
+ const transformer = (x) => {
51
+ const source = import_jsonpath.default.value(x, sourcePathExpression);
52
+ const transformed = {};
53
+ const destinationValue = source === void 0 ? defaultValue : source;
54
+ if (destinationValue !== void 0)
55
+ transformed[destinationField] = destinationValue;
56
+ return transformed;
57
+ };
58
+ return transformer;
59
+ };
60
+
61
+ // src/Diviner.ts
62
+ var JsonPathDiviner = class extends import_abstract_diviner.AbstractDiviner {
63
+ static configSchemas = [import_diviner_jsonpath_model.JsonPathDivinerConfigSchema];
64
+ _transforms;
65
+ /**
66
+ * The schema to use for the destination payloads
67
+ */
68
+ get destinationSchema() {
69
+ return this.config.destinationSchema ?? import_payload_model.PayloadSchema;
70
+ }
71
+ /**
72
+ * Dictionary of schemas to payload transformers for creating indexes
73
+ * from the payloads within a Bound Witness
74
+ */
75
+ get transforms() {
76
+ if (!this._transforms) {
77
+ const transforms = (0, import_assert.assertEx)(this.config.transforms, "config.transforms is not defined");
78
+ this._transforms = transforms.map(toPayloadTransformer);
79
+ }
80
+ return this._transforms;
81
+ }
82
+ async divineHandler(payloads) {
83
+ if (!payloads)
84
+ return [];
85
+ const results = await Promise.all(
86
+ payloads.map(async (payload) => {
87
+ const fields = this.transforms.map((transform) => transform(payload));
88
+ const sources = Object.keys(await import_hash.PayloadHasher.toMap([payload]));
89
+ return await new import_payload_builder.PayloadBuilder({ schema: this.destinationSchema }).fields(Object.assign({ sources }, ...fields)).build();
90
+ })
91
+ );
92
+ return results;
93
+ }
94
+ };
95
+ // Annotate the CommonJS export names for ESM import in node:
96
+ 0 && (module.exports = {
97
+ JsonPathDiviner,
98
+ toPayloadTransformer
99
+ });
100
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/index.ts","../../src/Diviner.ts","../../src/jsonpath/toPayloadTransformer.ts"],"sourcesContent":["export * from './Diviner'\nexport * from './jsonpath'\n","import { assertEx } from '@xylabs/assert'\nimport { AbstractDiviner } from '@xyo-network/abstract-diviner'\nimport { JsonPathDivinerConfigSchema, JsonPathDivinerParams, PayloadTransformer } from '@xyo-network/diviner-jsonpath-model'\nimport { DivinerModule, DivinerModuleEventData } from '@xyo-network/diviner-model'\nimport { PayloadHasher } from '@xyo-network/hash'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload, PayloadFields, PayloadSchema } from '@xyo-network/payload-model'\n\nimport { toPayloadTransformer } from './jsonpath'\n\nexport class JsonPathDiviner<\n TParams extends JsonPathDivinerParams = JsonPathDivinerParams,\n TIn extends Payload = Payload,\n TOut extends Payload = Payload,\n TEventData extends DivinerModuleEventData<DivinerModule<TParams>, TIn, TOut> = DivinerModuleEventData<DivinerModule<TParams>, TIn, TOut>,\n> extends AbstractDiviner<TParams, TIn, TOut, TEventData> {\n static override configSchemas = [JsonPathDivinerConfigSchema]\n\n protected _transforms: PayloadTransformer[] | undefined\n\n /**\n * The schema to use for the destination payloads\n */\n protected get destinationSchema(): string {\n return this.config.destinationSchema ?? PayloadSchema\n }\n /**\n * Dictionary of schemas to payload transformers for creating indexes\n * from the payloads within a Bound Witness\n */\n protected get transforms(): PayloadTransformer[] {\n if (!this._transforms) {\n const transforms = assertEx(this.config.transforms, 'config.transforms is not defined')\n this._transforms = transforms.map(toPayloadTransformer)\n }\n return this._transforms\n }\n\n protected override async divineHandler(payloads?: TIn[]): Promise<TOut[]> {\n if (!payloads) return []\n // Create the indexes from the tuples\n const results = await Promise.all(\n payloads.map<Promise<TOut>>(async (payload) => {\n // Use the payload transformers to convert the fields from the source payloads to the destination fields\n const fields: PayloadFields[] = this.transforms.map((transform) => transform(payload))\n // Include all the sources for reference\n const sources = Object.keys(await PayloadHasher.toMap([payload]))\n // Build and return the index\n return await new PayloadBuilder<TOut>({ schema: this.destinationSchema }).fields(Object.assign({ sources }, ...fields)).build()\n }),\n )\n return results\n }\n}\n","import { JsonPathTransformExpression, PayloadTransformer } from '@xyo-network/diviner-jsonpath-model'\nimport { Payload } from '@xyo-network/payload-model'\nimport jsonpath from 'jsonpath'\n\n/**\n * Converts a JSON Path transform expression to a payload transformer\n * @param transformExpression The transform expression to convert\n * @returns The payload transformer for the JSON Path transform expression\n */\nexport const toPayloadTransformer = (transformExpression: JsonPathTransformExpression) => {\n const { defaultValue, destinationField, sourcePathExpression } = transformExpression\n const transformer: PayloadTransformer = (x: Payload) => {\n // eslint-disable-next-line import/no-named-as-default-member\n const source = jsonpath.value(x, sourcePathExpression)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const transformed = {} as { [key: string]: any }\n // Assign the source value to the destination field or the default value if the source is undefined\n const destinationValue = source === undefined ? defaultValue : source\n if (destinationValue !== undefined) transformed[destinationField] = destinationValue\n return transformed\n }\n return transformer\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,oBAAyB;AACzB,8BAAgC;AAChC,oCAAuF;AAEvF,kBAA8B;AAC9B,6BAA+B;AAC/B,2BAAsD;;;ACJtD,sBAAqB;AAOd,IAAM,uBAAuB,CAAC,wBAAqD;AACxF,QAAM,EAAE,cAAc,kBAAkB,qBAAqB,IAAI;AACjE,QAAM,cAAkC,CAAC,MAAe;AAEtD,UAAM,SAAS,gBAAAA,QAAS,MAAM,GAAG,oBAAoB;AAErD,UAAM,cAAc,CAAC;AAErB,UAAM,mBAAmB,WAAW,SAAY,eAAe;AAC/D,QAAI,qBAAqB;AAAW,kBAAY,gBAAgB,IAAI;AACpE,WAAO;AAAA,EACT;AACA,SAAO;AACT;;;ADZO,IAAM,kBAAN,cAKG,wCAAgD;AAAA,EACxD,OAAgB,gBAAgB,CAAC,yDAA2B;AAAA,EAElD;AAAA;AAAA;AAAA;AAAA,EAKV,IAAc,oBAA4B;AACxC,WAAO,KAAK,OAAO,qBAAqB;AAAA,EAC1C;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,IAAc,aAAmC;AAC/C,QAAI,CAAC,KAAK,aAAa;AACrB,YAAM,iBAAa,wBAAS,KAAK,OAAO,YAAY,kCAAkC;AACtF,WAAK,cAAc,WAAW,IAAI,oBAAoB;AAAA,IACxD;AACA,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,MAAyB,cAAc,UAAmC;AACxE,QAAI,CAAC;AAAU,aAAO,CAAC;AAEvB,UAAM,UAAU,MAAM,QAAQ;AAAA,MAC5B,SAAS,IAAmB,OAAO,YAAY;AAE7C,cAAM,SAA0B,KAAK,WAAW,IAAI,CAAC,cAAc,UAAU,OAAO,CAAC;AAErF,cAAM,UAAU,OAAO,KAAK,MAAM,0BAAc,MAAM,CAAC,OAAO,CAAC,CAAC;AAEhE,eAAO,MAAM,IAAI,sCAAqB,EAAE,QAAQ,KAAK,kBAAkB,CAAC,EAAE,OAAO,OAAO,OAAO,EAAE,QAAQ,GAAG,GAAG,MAAM,CAAC,EAAE,MAAM;AAAA,MAChI,CAAC;AAAA,IACH;AACA,WAAO;AAAA,EACT;AACF;","names":["jsonpath"]}
@@ -1,54 +1,17 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
28
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
-
30
- // src/index.ts
31
- var src_exports = {};
32
- __export(src_exports, {
33
- JsonPathDiviner: () => JsonPathDiviner,
34
- toPayloadTransformer: () => toPayloadTransformer
35
- });
36
- module.exports = __toCommonJS(src_exports);
37
-
38
1
  // src/Diviner.ts
39
- var import_assert = require("@xylabs/assert");
40
- var import_abstract_diviner = require("@xyo-network/abstract-diviner");
41
- var import_diviner_jsonpath_model = require("@xyo-network/diviner-jsonpath-model");
42
- var import_hash = require("@xyo-network/hash");
43
- var import_payload_builder = require("@xyo-network/payload-builder");
44
- var import_payload_model = require("@xyo-network/payload-model");
2
+ import { assertEx } from "@xylabs/assert";
3
+ import { AbstractDiviner } from "@xyo-network/abstract-diviner";
4
+ import { JsonPathDivinerConfigSchema } from "@xyo-network/diviner-jsonpath-model";
5
+ import { PayloadHasher } from "@xyo-network/hash";
6
+ import { PayloadBuilder } from "@xyo-network/payload-builder";
7
+ import { PayloadSchema } from "@xyo-network/payload-model";
45
8
 
46
9
  // src/jsonpath/toPayloadTransformer.ts
47
- var import_jsonpath = __toESM(require("jsonpath"));
10
+ import jsonpath from "jsonpath";
48
11
  var toPayloadTransformer = (transformExpression) => {
49
12
  const { defaultValue, destinationField, sourcePathExpression } = transformExpression;
50
13
  const transformer = (x) => {
51
- const source = import_jsonpath.default.value(x, sourcePathExpression);
14
+ const source = jsonpath.value(x, sourcePathExpression);
52
15
  const transformed = {};
53
16
  const destinationValue = source === void 0 ? defaultValue : source;
54
17
  if (destinationValue !== void 0)
@@ -59,14 +22,14 @@ var toPayloadTransformer = (transformExpression) => {
59
22
  };
60
23
 
61
24
  // src/Diviner.ts
62
- var JsonPathDiviner = class extends import_abstract_diviner.AbstractDiviner {
63
- static configSchemas = [import_diviner_jsonpath_model.JsonPathDivinerConfigSchema];
25
+ var JsonPathDiviner = class extends AbstractDiviner {
26
+ static configSchemas = [JsonPathDivinerConfigSchema];
64
27
  _transforms;
65
28
  /**
66
29
  * The schema to use for the destination payloads
67
30
  */
68
31
  get destinationSchema() {
69
- return this.config.destinationSchema ?? import_payload_model.PayloadSchema;
32
+ return this.config.destinationSchema ?? PayloadSchema;
70
33
  }
71
34
  /**
72
35
  * Dictionary of schemas to payload transformers for creating indexes
@@ -74,7 +37,7 @@ var JsonPathDiviner = class extends import_abstract_diviner.AbstractDiviner {
74
37
  */
75
38
  get transforms() {
76
39
  if (!this._transforms) {
77
- const transforms = (0, import_assert.assertEx)(this.config.transforms, "config.transforms is not defined");
40
+ const transforms = assertEx(this.config.transforms, "config.transforms is not defined");
78
41
  this._transforms = transforms.map(toPayloadTransformer);
79
42
  }
80
43
  return this._transforms;
@@ -85,16 +48,15 @@ var JsonPathDiviner = class extends import_abstract_diviner.AbstractDiviner {
85
48
  const results = await Promise.all(
86
49
  payloads.map(async (payload) => {
87
50
  const fields = this.transforms.map((transform) => transform(payload));
88
- const sources = Object.keys(await import_hash.PayloadHasher.toMap([payload]));
89
- return await new import_payload_builder.PayloadBuilder({ schema: this.destinationSchema }).fields(Object.assign({ sources }, ...fields)).build();
51
+ const sources = Object.keys(await PayloadHasher.toMap([payload]));
52
+ return await new PayloadBuilder({ schema: this.destinationSchema }).fields(Object.assign({ sources }, ...fields)).build();
90
53
  })
91
54
  );
92
55
  return results;
93
56
  }
94
57
  };
95
- // Annotate the CommonJS export names for ESM import in node:
96
- 0 && (module.exports = {
58
+ export {
97
59
  JsonPathDiviner,
98
60
  toPayloadTransformer
99
- });
61
+ };
100
62
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts","../../src/Diviner.ts","../../src/jsonpath/toPayloadTransformer.ts"],"sourcesContent":["export * from './Diviner'\nexport * from './jsonpath'\n","import { assertEx } from '@xylabs/assert'\nimport { AbstractDiviner } from '@xyo-network/abstract-diviner'\nimport { JsonPathDivinerConfigSchema, JsonPathDivinerParams, PayloadTransformer } from '@xyo-network/diviner-jsonpath-model'\nimport { DivinerModule, DivinerModuleEventData } from '@xyo-network/diviner-model'\nimport { PayloadHasher } from '@xyo-network/hash'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload, PayloadFields, PayloadSchema } from '@xyo-network/payload-model'\n\nimport { toPayloadTransformer } from './jsonpath'\n\nexport class JsonPathDiviner<\n TParams extends JsonPathDivinerParams = JsonPathDivinerParams,\n TIn extends Payload = Payload,\n TOut extends Payload = Payload,\n TEventData extends DivinerModuleEventData<DivinerModule<TParams>, TIn, TOut> = DivinerModuleEventData<DivinerModule<TParams>, TIn, TOut>,\n> extends AbstractDiviner<TParams, TIn, TOut, TEventData> {\n static override configSchemas = [JsonPathDivinerConfigSchema]\n\n protected _transforms: PayloadTransformer[] | undefined\n\n /**\n * The schema to use for the destination payloads\n */\n protected get destinationSchema(): string {\n return this.config.destinationSchema ?? PayloadSchema\n }\n /**\n * Dictionary of schemas to payload transformers for creating indexes\n * from the payloads within a Bound Witness\n */\n protected get transforms(): PayloadTransformer[] {\n if (!this._transforms) {\n const transforms = assertEx(this.config.transforms, 'config.transforms is not defined')\n this._transforms = transforms.map(toPayloadTransformer)\n }\n return this._transforms\n }\n\n protected override async divineHandler(payloads?: TIn[]): Promise<TOut[]> {\n if (!payloads) return []\n // Create the indexes from the tuples\n const results = await Promise.all(\n payloads.map<Promise<TOut>>(async (payload) => {\n // Use the payload transformers to convert the fields from the source payloads to the destination fields\n const fields: PayloadFields[] = this.transforms.map((transform) => transform(payload))\n // Include all the sources for reference\n const sources = Object.keys(await PayloadHasher.toMap([payload]))\n // Build and return the index\n return await new PayloadBuilder<TOut>({ schema: this.destinationSchema }).fields(Object.assign({ sources }, ...fields)).build()\n }),\n )\n return results\n }\n}\n","import { JsonPathTransformExpression, PayloadTransformer } from '@xyo-network/diviner-jsonpath-model'\nimport { Payload } from '@xyo-network/payload-model'\nimport jsonpath from 'jsonpath'\n\n/**\n * Converts a JSON Path transform expression to a payload transformer\n * @param transformExpression The transform expression to convert\n * @returns The payload transformer for the JSON Path transform expression\n */\nexport const toPayloadTransformer = (transformExpression: JsonPathTransformExpression) => {\n const { defaultValue, destinationField, sourcePathExpression } = transformExpression\n const transformer: PayloadTransformer = (x: Payload) => {\n // eslint-disable-next-line import/no-named-as-default-member\n const source = jsonpath.value(x, sourcePathExpression)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const transformed = {} as { [key: string]: any }\n // Assign the source value to the destination field or the default value if the source is undefined\n const destinationValue = source === undefined ? defaultValue : source\n if (destinationValue !== undefined) transformed[destinationField] = destinationValue\n return transformed\n }\n return transformer\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,oBAAyB;AACzB,8BAAgC;AAChC,oCAAuF;AAEvF,kBAA8B;AAC9B,6BAA+B;AAC/B,2BAAsD;;;ACJtD,sBAAqB;AAOd,IAAM,uBAAuB,CAAC,wBAAqD;AACxF,QAAM,EAAE,cAAc,kBAAkB,qBAAqB,IAAI;AACjE,QAAM,cAAkC,CAAC,MAAe;AAEtD,UAAM,SAAS,gBAAAA,QAAS,MAAM,GAAG,oBAAoB;AAErD,UAAM,cAAc,CAAC;AAErB,UAAM,mBAAmB,WAAW,SAAY,eAAe;AAC/D,QAAI,qBAAqB;AAAW,kBAAY,gBAAgB,IAAI;AACpE,WAAO;AAAA,EACT;AACA,SAAO;AACT;;;ADZO,IAAM,kBAAN,cAKG,wCAAgD;AAAA,EACxD,OAAgB,gBAAgB,CAAC,yDAA2B;AAAA,EAElD;AAAA;AAAA;AAAA;AAAA,EAKV,IAAc,oBAA4B;AACxC,WAAO,KAAK,OAAO,qBAAqB;AAAA,EAC1C;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,IAAc,aAAmC;AAC/C,QAAI,CAAC,KAAK,aAAa;AACrB,YAAM,iBAAa,wBAAS,KAAK,OAAO,YAAY,kCAAkC;AACtF,WAAK,cAAc,WAAW,IAAI,oBAAoB;AAAA,IACxD;AACA,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,MAAyB,cAAc,UAAmC;AACxE,QAAI,CAAC;AAAU,aAAO,CAAC;AAEvB,UAAM,UAAU,MAAM,QAAQ;AAAA,MAC5B,SAAS,IAAmB,OAAO,YAAY;AAE7C,cAAM,SAA0B,KAAK,WAAW,IAAI,CAAC,cAAc,UAAU,OAAO,CAAC;AAErF,cAAM,UAAU,OAAO,KAAK,MAAM,0BAAc,MAAM,CAAC,OAAO,CAAC,CAAC;AAEhE,eAAO,MAAM,IAAI,sCAAqB,EAAE,QAAQ,KAAK,kBAAkB,CAAC,EAAE,OAAO,OAAO,OAAO,EAAE,QAAQ,GAAG,GAAG,MAAM,CAAC,EAAE,MAAM;AAAA,MAChI,CAAC;AAAA,IACH;AACA,WAAO;AAAA,EACT;AACF;","names":["jsonpath"]}
1
+ {"version":3,"sources":["../../src/Diviner.ts","../../src/jsonpath/toPayloadTransformer.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { AbstractDiviner } from '@xyo-network/abstract-diviner'\nimport { JsonPathDivinerConfigSchema, JsonPathDivinerParams, PayloadTransformer } from '@xyo-network/diviner-jsonpath-model'\nimport { DivinerModule, DivinerModuleEventData } from '@xyo-network/diviner-model'\nimport { PayloadHasher } from '@xyo-network/hash'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload, PayloadFields, PayloadSchema } from '@xyo-network/payload-model'\n\nimport { toPayloadTransformer } from './jsonpath'\n\nexport class JsonPathDiviner<\n TParams extends JsonPathDivinerParams = JsonPathDivinerParams,\n TIn extends Payload = Payload,\n TOut extends Payload = Payload,\n TEventData extends DivinerModuleEventData<DivinerModule<TParams>, TIn, TOut> = DivinerModuleEventData<DivinerModule<TParams>, TIn, TOut>,\n> extends AbstractDiviner<TParams, TIn, TOut, TEventData> {\n static override configSchemas = [JsonPathDivinerConfigSchema]\n\n protected _transforms: PayloadTransformer[] | undefined\n\n /**\n * The schema to use for the destination payloads\n */\n protected get destinationSchema(): string {\n return this.config.destinationSchema ?? PayloadSchema\n }\n /**\n * Dictionary of schemas to payload transformers for creating indexes\n * from the payloads within a Bound Witness\n */\n protected get transforms(): PayloadTransformer[] {\n if (!this._transforms) {\n const transforms = assertEx(this.config.transforms, 'config.transforms is not defined')\n this._transforms = transforms.map(toPayloadTransformer)\n }\n return this._transforms\n }\n\n protected override async divineHandler(payloads?: TIn[]): Promise<TOut[]> {\n if (!payloads) return []\n // Create the indexes from the tuples\n const results = await Promise.all(\n payloads.map<Promise<TOut>>(async (payload) => {\n // Use the payload transformers to convert the fields from the source payloads to the destination fields\n const fields: PayloadFields[] = this.transforms.map((transform) => transform(payload))\n // Include all the sources for reference\n const sources = Object.keys(await PayloadHasher.toMap([payload]))\n // Build and return the index\n return await new PayloadBuilder<TOut>({ schema: this.destinationSchema }).fields(Object.assign({ sources }, ...fields)).build()\n }),\n )\n return results\n }\n}\n","import { JsonPathTransformExpression, PayloadTransformer } from '@xyo-network/diviner-jsonpath-model'\nimport { Payload } from '@xyo-network/payload-model'\nimport jsonpath from 'jsonpath'\n\n/**\n * Converts a JSON Path transform expression to a payload transformer\n * @param transformExpression The transform expression to convert\n * @returns The payload transformer for the JSON Path transform expression\n */\nexport const toPayloadTransformer = (transformExpression: JsonPathTransformExpression) => {\n const { defaultValue, destinationField, sourcePathExpression } = transformExpression\n const transformer: PayloadTransformer = (x: Payload) => {\n // eslint-disable-next-line import/no-named-as-default-member\n const source = jsonpath.value(x, sourcePathExpression)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const transformed = {} as { [key: string]: any }\n // Assign the source value to the destination field or the default value if the source is undefined\n const destinationValue = source === undefined ? defaultValue : source\n if (destinationValue !== undefined) transformed[destinationField] = destinationValue\n return transformed\n }\n return transformer\n}\n"],"mappings":";AAAA,SAAS,gBAAgB;AACzB,SAAS,uBAAuB;AAChC,SAAS,mCAA8E;AAEvF,SAAS,qBAAqB;AAC9B,SAAS,sBAAsB;AAC/B,SAAiC,qBAAqB;;;ACJtD,OAAO,cAAc;AAOd,IAAM,uBAAuB,CAAC,wBAAqD;AACxF,QAAM,EAAE,cAAc,kBAAkB,qBAAqB,IAAI;AACjE,QAAM,cAAkC,CAAC,MAAe;AAEtD,UAAM,SAAS,SAAS,MAAM,GAAG,oBAAoB;AAErD,UAAM,cAAc,CAAC;AAErB,UAAM,mBAAmB,WAAW,SAAY,eAAe;AAC/D,QAAI,qBAAqB;AAAW,kBAAY,gBAAgB,IAAI;AACpE,WAAO;AAAA,EACT;AACA,SAAO;AACT;;;ADZO,IAAM,kBAAN,cAKG,gBAAgD;AAAA,EACxD,OAAgB,gBAAgB,CAAC,2BAA2B;AAAA,EAElD;AAAA;AAAA;AAAA;AAAA,EAKV,IAAc,oBAA4B;AACxC,WAAO,KAAK,OAAO,qBAAqB;AAAA,EAC1C;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,IAAc,aAAmC;AAC/C,QAAI,CAAC,KAAK,aAAa;AACrB,YAAM,aAAa,SAAS,KAAK,OAAO,YAAY,kCAAkC;AACtF,WAAK,cAAc,WAAW,IAAI,oBAAoB;AAAA,IACxD;AACA,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,MAAyB,cAAc,UAAmC;AACxE,QAAI,CAAC;AAAU,aAAO,CAAC;AAEvB,UAAM,UAAU,MAAM,QAAQ;AAAA,MAC5B,SAAS,IAAmB,OAAO,YAAY;AAE7C,cAAM,SAA0B,KAAK,WAAW,IAAI,CAAC,cAAc,UAAU,OAAO,CAAC;AAErF,cAAM,UAAU,OAAO,KAAK,MAAM,cAAc,MAAM,CAAC,OAAO,CAAC,CAAC;AAEhE,eAAO,MAAM,IAAI,eAAqB,EAAE,QAAQ,KAAK,kBAAkB,CAAC,EAAE,OAAO,OAAO,OAAO,EAAE,QAAQ,GAAG,GAAG,MAAM,CAAC,EAAE,MAAM;AAAA,MAChI,CAAC;AAAA,IACH;AACA,WAAO;AAAA,EACT;AACF;","names":[]}
package/package.json CHANGED
@@ -11,23 +11,22 @@
11
11
  },
12
12
  "dependencies": {
13
13
  "@xylabs/assert": "^2.13.20",
14
- "@xyo-network/abstract-diviner": "~2.84.2",
15
- "@xyo-network/diviner-jsonpath-model": "~2.84.2",
16
- "@xyo-network/diviner-model": "~2.84.2",
17
- "@xyo-network/hash": "~2.84.2",
18
- "@xyo-network/payload-builder": "~2.84.2",
19
- "@xyo-network/payload-model": "~2.84.2",
14
+ "@xyo-network/abstract-diviner": "~2.84.4",
15
+ "@xyo-network/diviner-jsonpath-model": "~2.84.4",
16
+ "@xyo-network/diviner-model": "~2.84.4",
17
+ "@xyo-network/hash": "~2.84.4",
18
+ "@xyo-network/payload-builder": "~2.84.4",
19
+ "@xyo-network/payload-model": "~2.84.4",
20
20
  "jsonpath": "^1.1.1"
21
21
  },
22
22
  "devDependencies": {
23
- "@xylabs/ts-scripts-yarn3": "^3.2.10",
24
- "@xylabs/tsconfig": "^3.2.10",
25
- "@xyo-network/account": "~2.84.2",
26
- "@xyo-network/wallet-model": "~2.84.2",
23
+ "@xylabs/ts-scripts-yarn3": "^3.2.19",
24
+ "@xylabs/tsconfig": "^3.2.19",
25
+ "@xyo-network/account": "~2.84.4",
26
+ "@xyo-network/wallet-model": "~2.84.4",
27
27
  "typescript": "^5.3.3"
28
28
  },
29
29
  "description": "Primary SDK for using XYO Protocol 2.0",
30
- "docs": "dist/docs.json",
31
30
  "types": "dist/node/index.d.ts",
32
31
  "exports": {
33
32
  ".": {
@@ -43,19 +42,19 @@
43
42
  },
44
43
  "node": {
45
44
  "require": {
46
- "types": "./dist/node/index.d.ts",
47
- "default": "./dist/node/index.js"
45
+ "types": "./dist/node/index.d.cts",
46
+ "default": "./dist/node/index.cjs"
48
47
  },
49
48
  "import": {
50
49
  "types": "./dist/node/index.d.mts",
51
- "default": "./dist/node/index.mjs"
50
+ "default": "./dist/node/index.js"
52
51
  }
53
52
  }
54
53
  },
55
54
  "./package.json": "./package.json"
56
55
  },
57
- "main": "dist/node/index.js",
58
- "module": "dist/node/index.mjs",
56
+ "main": "dist/node/index.cjs",
57
+ "module": "dist/node/index.js",
59
58
  "homepage": "https://xyo.network",
60
59
  "license": "LGPL-3.0-only",
61
60
  "publishConfig": {
@@ -66,5 +65,6 @@
66
65
  "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js.git"
67
66
  },
68
67
  "sideEffects": false,
69
- "version": "2.84.2"
68
+ "version": "2.84.4",
69
+ "type": "module"
70
70
  }
@@ -1,62 +0,0 @@
1
- // src/Diviner.ts
2
- import { assertEx } from "@xylabs/assert";
3
- import { AbstractDiviner } from "@xyo-network/abstract-diviner";
4
- import { JsonPathDivinerConfigSchema } from "@xyo-network/diviner-jsonpath-model";
5
- import { PayloadHasher } from "@xyo-network/hash";
6
- import { PayloadBuilder } from "@xyo-network/payload-builder";
7
- import { PayloadSchema } from "@xyo-network/payload-model";
8
-
9
- // src/jsonpath/toPayloadTransformer.ts
10
- import jsonpath from "jsonpath";
11
- var toPayloadTransformer = (transformExpression) => {
12
- const { defaultValue, destinationField, sourcePathExpression } = transformExpression;
13
- const transformer = (x) => {
14
- const source = jsonpath.value(x, sourcePathExpression);
15
- const transformed = {};
16
- const destinationValue = source === void 0 ? defaultValue : source;
17
- if (destinationValue !== void 0)
18
- transformed[destinationField] = destinationValue;
19
- return transformed;
20
- };
21
- return transformer;
22
- };
23
-
24
- // src/Diviner.ts
25
- var JsonPathDiviner = class extends AbstractDiviner {
26
- static configSchemas = [JsonPathDivinerConfigSchema];
27
- _transforms;
28
- /**
29
- * The schema to use for the destination payloads
30
- */
31
- get destinationSchema() {
32
- return this.config.destinationSchema ?? PayloadSchema;
33
- }
34
- /**
35
- * Dictionary of schemas to payload transformers for creating indexes
36
- * from the payloads within a Bound Witness
37
- */
38
- get transforms() {
39
- if (!this._transforms) {
40
- const transforms = assertEx(this.config.transforms, "config.transforms is not defined");
41
- this._transforms = transforms.map(toPayloadTransformer);
42
- }
43
- return this._transforms;
44
- }
45
- async divineHandler(payloads) {
46
- if (!payloads)
47
- return [];
48
- const results = await Promise.all(
49
- payloads.map(async (payload) => {
50
- const fields = this.transforms.map((transform) => transform(payload));
51
- const sources = Object.keys(await PayloadHasher.toMap([payload]));
52
- return await new PayloadBuilder({ schema: this.destinationSchema }).fields(Object.assign({ sources }, ...fields)).build();
53
- })
54
- );
55
- return results;
56
- }
57
- };
58
- export {
59
- JsonPathDiviner,
60
- toPayloadTransformer
61
- };
62
- //# sourceMappingURL=index.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/Diviner.ts","../../src/jsonpath/toPayloadTransformer.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { AbstractDiviner } from '@xyo-network/abstract-diviner'\nimport { JsonPathDivinerConfigSchema, JsonPathDivinerParams, PayloadTransformer } from '@xyo-network/diviner-jsonpath-model'\nimport { DivinerModule, DivinerModuleEventData } from '@xyo-network/diviner-model'\nimport { PayloadHasher } from '@xyo-network/hash'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload, PayloadFields, PayloadSchema } from '@xyo-network/payload-model'\n\nimport { toPayloadTransformer } from './jsonpath'\n\nexport class JsonPathDiviner<\n TParams extends JsonPathDivinerParams = JsonPathDivinerParams,\n TIn extends Payload = Payload,\n TOut extends Payload = Payload,\n TEventData extends DivinerModuleEventData<DivinerModule<TParams>, TIn, TOut> = DivinerModuleEventData<DivinerModule<TParams>, TIn, TOut>,\n> extends AbstractDiviner<TParams, TIn, TOut, TEventData> {\n static override configSchemas = [JsonPathDivinerConfigSchema]\n\n protected _transforms: PayloadTransformer[] | undefined\n\n /**\n * The schema to use for the destination payloads\n */\n protected get destinationSchema(): string {\n return this.config.destinationSchema ?? PayloadSchema\n }\n /**\n * Dictionary of schemas to payload transformers for creating indexes\n * from the payloads within a Bound Witness\n */\n protected get transforms(): PayloadTransformer[] {\n if (!this._transforms) {\n const transforms = assertEx(this.config.transforms, 'config.transforms is not defined')\n this._transforms = transforms.map(toPayloadTransformer)\n }\n return this._transforms\n }\n\n protected override async divineHandler(payloads?: TIn[]): Promise<TOut[]> {\n if (!payloads) return []\n // Create the indexes from the tuples\n const results = await Promise.all(\n payloads.map<Promise<TOut>>(async (payload) => {\n // Use the payload transformers to convert the fields from the source payloads to the destination fields\n const fields: PayloadFields[] = this.transforms.map((transform) => transform(payload))\n // Include all the sources for reference\n const sources = Object.keys(await PayloadHasher.toMap([payload]))\n // Build and return the index\n return await new PayloadBuilder<TOut>({ schema: this.destinationSchema }).fields(Object.assign({ sources }, ...fields)).build()\n }),\n )\n return results\n }\n}\n","import { JsonPathTransformExpression, PayloadTransformer } from '@xyo-network/diviner-jsonpath-model'\nimport { Payload } from '@xyo-network/payload-model'\nimport jsonpath from 'jsonpath'\n\n/**\n * Converts a JSON Path transform expression to a payload transformer\n * @param transformExpression The transform expression to convert\n * @returns The payload transformer for the JSON Path transform expression\n */\nexport const toPayloadTransformer = (transformExpression: JsonPathTransformExpression) => {\n const { defaultValue, destinationField, sourcePathExpression } = transformExpression\n const transformer: PayloadTransformer = (x: Payload) => {\n // eslint-disable-next-line import/no-named-as-default-member\n const source = jsonpath.value(x, sourcePathExpression)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const transformed = {} as { [key: string]: any }\n // Assign the source value to the destination field or the default value if the source is undefined\n const destinationValue = source === undefined ? defaultValue : source\n if (destinationValue !== undefined) transformed[destinationField] = destinationValue\n return transformed\n }\n return transformer\n}\n"],"mappings":";AAAA,SAAS,gBAAgB;AACzB,SAAS,uBAAuB;AAChC,SAAS,mCAA8E;AAEvF,SAAS,qBAAqB;AAC9B,SAAS,sBAAsB;AAC/B,SAAiC,qBAAqB;;;ACJtD,OAAO,cAAc;AAOd,IAAM,uBAAuB,CAAC,wBAAqD;AACxF,QAAM,EAAE,cAAc,kBAAkB,qBAAqB,IAAI;AACjE,QAAM,cAAkC,CAAC,MAAe;AAEtD,UAAM,SAAS,SAAS,MAAM,GAAG,oBAAoB;AAErD,UAAM,cAAc,CAAC;AAErB,UAAM,mBAAmB,WAAW,SAAY,eAAe;AAC/D,QAAI,qBAAqB;AAAW,kBAAY,gBAAgB,IAAI;AACpE,WAAO;AAAA,EACT;AACA,SAAO;AACT;;;ADZO,IAAM,kBAAN,cAKG,gBAAgD;AAAA,EACxD,OAAgB,gBAAgB,CAAC,2BAA2B;AAAA,EAElD;AAAA;AAAA;AAAA;AAAA,EAKV,IAAc,oBAA4B;AACxC,WAAO,KAAK,OAAO,qBAAqB;AAAA,EAC1C;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,IAAc,aAAmC;AAC/C,QAAI,CAAC,KAAK,aAAa;AACrB,YAAM,aAAa,SAAS,KAAK,OAAO,YAAY,kCAAkC;AACtF,WAAK,cAAc,WAAW,IAAI,oBAAoB;AAAA,IACxD;AACA,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,MAAyB,cAAc,UAAmC;AACxE,QAAI,CAAC;AAAU,aAAO,CAAC;AAEvB,UAAM,UAAU,MAAM,QAAQ;AAAA,MAC5B,SAAS,IAAmB,OAAO,YAAY;AAE7C,cAAM,SAA0B,KAAK,WAAW,IAAI,CAAC,cAAc,UAAU,OAAO,CAAC;AAErF,cAAM,UAAU,OAAO,KAAK,MAAM,cAAc,MAAM,CAAC,OAAO,CAAC,CAAC;AAEhE,eAAO,MAAM,IAAI,eAAqB,EAAE,QAAQ,KAAK,kBAAkB,CAAC,EAAE,OAAO,OAAO,OAAO,EAAE,QAAQ,GAAG,GAAG,MAAM,CAAC,EAAE,MAAM;AAAA,MAChI,CAAC;AAAA,IACH;AACA,WAAO;AAAA,EACT;AACF;","names":[]}