@xyo-network/diviner-jsonpath-memory 2.84.19 → 2.85.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,6 +5,7 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
6
  var __getProtoOf = Object.getPrototypeOf;
7
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
8
9
  var __export = (target, all) => {
9
10
  for (var name in all)
10
11
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -45,33 +46,38 @@ var import_payload_model = require("@xyo-network/payload-model");
45
46
 
46
47
  // src/jsonpath/toPayloadTransformer.ts
47
48
  var import_jsonpath = __toESM(require("jsonpath"), 1);
48
- var toPayloadTransformer = (transformExpression) => {
49
+ var toPayloadTransformer = /* @__PURE__ */ __name((transformExpression) => {
49
50
  const { defaultValue, destinationField, sourcePathExpression } = transformExpression;
50
- const transformer = (x) => {
51
+ const transformer = /* @__PURE__ */ __name((x) => {
51
52
  const source = import_jsonpath.default.value(x, sourcePathExpression);
52
53
  const transformed = {};
53
54
  const destinationValue = source === void 0 ? defaultValue : source;
54
55
  if (destinationValue !== void 0)
55
56
  transformed[destinationField] = destinationValue;
56
57
  return transformed;
57
- };
58
+ }, "transformer");
58
59
  return transformer;
59
- };
60
+ }, "toPayloadTransformer");
60
61
 
61
62
  // src/Diviner.ts
62
63
  var JsonPathDiviner = class extends import_abstract_diviner.AbstractDiviner {
63
- static configSchemas = [import_diviner_jsonpath_model.JsonPathDivinerConfigSchema];
64
+ static {
65
+ __name(this, "JsonPathDiviner");
66
+ }
67
+ static configSchemas = [
68
+ import_diviner_jsonpath_model.JsonPathDivinerConfigSchema
69
+ ];
64
70
  _transforms;
65
71
  /**
66
- * The schema to use for the destination payloads
67
- */
72
+ * The schema to use for the destination payloads
73
+ */
68
74
  get destinationSchema() {
69
75
  return this.config.destinationSchema ?? import_payload_model.PayloadSchema;
70
76
  }
71
77
  /**
72
- * Dictionary of schemas to payload transformers for creating indexes
73
- * from the payloads within a Bound Witness
74
- */
78
+ * Dictionary of schemas to payload transformers for creating indexes
79
+ * from the payloads within a Bound Witness
80
+ */
75
81
  get transforms() {
76
82
  if (!this._transforms) {
77
83
  const transforms = (0, import_assert.assertEx)(this.config.transforms, "config.transforms is not defined");
@@ -82,13 +88,17 @@ var JsonPathDiviner = class extends import_abstract_diviner.AbstractDiviner {
82
88
  async divineHandler(payloads) {
83
89
  if (!payloads)
84
90
  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
- );
91
+ const results = await Promise.all(payloads.map(async (payload) => {
92
+ const fields = this.transforms.map((transform) => transform(payload));
93
+ const sources = Object.keys(await import_hash.PayloadHasher.toMap([
94
+ payload
95
+ ]));
96
+ return await new import_payload_builder.PayloadBuilder({
97
+ schema: this.destinationSchema
98
+ }).fields(Object.assign({
99
+ sources
100
+ }, ...fields)).build();
101
+ }));
92
102
  return results;
93
103
  }
94
104
  };
@@ -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/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;;;;;;;;ACAA,oBAAyB;AACzB,8BAAgC;AAChC,oCAAuF;AAEvF,kBAA8B;AAC9B,6BAA+B;AAC/B,2BAAsD;;;ACJtD,sBAAqB;AAOd,IAAMA,uBAAuB,wBAACC,wBAAAA;AACnC,QAAM,EAAEC,cAAcC,kBAAkBC,qBAAoB,IAAKH;AACjE,QAAMI,cAAkC,wBAACC,MAAAA;AAEvC,UAAMC,SAASC,gBAAAA,QAASC,MAAMH,GAAGF,oBAAAA;AAEjC,UAAMM,cAAc,CAAC;AAErB,UAAMC,mBAAmBJ,WAAWK,SAAYV,eAAeK;AAC/D,QAAII,qBAAqBC;AAAWF,kBAAYP,gBAAAA,IAAoBQ;AACpE,WAAOD;EACT,GATwC;AAUxC,SAAOL;AACT,GAboC;;;ADC7B,IAAMQ,kBAAN,cAKGC,wCAAAA;EAfV,OAeUA;;;EACR,OAAgBC,gBAAgB;IAACC;;EAEvBC;;;;EAKV,IAAcC,oBAA4B;AACxC,WAAO,KAAKC,OAAOD,qBAAqBE;EAC1C;;;;;EAKA,IAAcC,aAAmC;AAC/C,QAAI,CAAC,KAAKJ,aAAa;AACrB,YAAMI,iBAAaC,wBAAS,KAAKH,OAAOE,YAAY,kCAAA;AACpD,WAAKJ,cAAcI,WAAWE,IAAIC,oBAAAA;IACpC;AACA,WAAO,KAAKP;EACd;EAEA,MAAyBQ,cAAcC,UAAmC;AACxE,QAAI,CAACA;AAAU,aAAO,CAAA;AAEtB,UAAMC,UAAU,MAAMC,QAAQC,IAC5BH,SAASH,IAAmB,OAAOO,YAAAA;AAEjC,YAAMC,SAA0B,KAAKV,WAAWE,IAAI,CAACS,cAAcA,UAAUF,OAAAA,CAAAA;AAE7E,YAAMG,UAAUC,OAAOC,KAAK,MAAMC,0BAAcC,MAAM;QAACP;OAAQ,CAAA;AAE/D,aAAO,MAAM,IAAIQ,sCAAqB;QAAEC,QAAQ,KAAKrB;MAAkB,CAAA,EAAGa,OAAOG,OAAOM,OAAO;QAAEP;MAAQ,GAAA,GAAMF,MAAAA,CAAAA,EAASU,MAAK;IAC/H,CAAA,CAAA;AAEF,WAAOd;EACT;AACF;","names":["toPayloadTransformer","transformExpression","defaultValue","destinationField","sourcePathExpression","transformer","x","source","jsonpath","value","transformed","destinationValue","undefined","JsonPathDiviner","AbstractDiviner","configSchemas","JsonPathDivinerConfigSchema","_transforms","destinationSchema","config","PayloadSchema","transforms","assertEx","map","toPayloadTransformer","divineHandler","payloads","results","Promise","all","payload","fields","transform","sources","Object","keys","PayloadHasher","toMap","PayloadBuilder","schema","assign","build"]}
@@ -1,3 +1,6 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+
1
4
  // src/Diviner.ts
2
5
  import { assertEx } from "@xylabs/assert";
3
6
  import { AbstractDiviner } from "@xyo-network/abstract-diviner";
@@ -8,33 +11,38 @@ import { PayloadSchema } from "@xyo-network/payload-model";
8
11
 
9
12
  // src/jsonpath/toPayloadTransformer.ts
10
13
  import jsonpath from "jsonpath";
11
- var toPayloadTransformer = (transformExpression) => {
14
+ var toPayloadTransformer = /* @__PURE__ */ __name((transformExpression) => {
12
15
  const { defaultValue, destinationField, sourcePathExpression } = transformExpression;
13
- const transformer = (x) => {
16
+ const transformer = /* @__PURE__ */ __name((x) => {
14
17
  const source = jsonpath.value(x, sourcePathExpression);
15
18
  const transformed = {};
16
19
  const destinationValue = source === void 0 ? defaultValue : source;
17
20
  if (destinationValue !== void 0)
18
21
  transformed[destinationField] = destinationValue;
19
22
  return transformed;
20
- };
23
+ }, "transformer");
21
24
  return transformer;
22
- };
25
+ }, "toPayloadTransformer");
23
26
 
24
27
  // src/Diviner.ts
25
28
  var JsonPathDiviner = class extends AbstractDiviner {
26
- static configSchemas = [JsonPathDivinerConfigSchema];
29
+ static {
30
+ __name(this, "JsonPathDiviner");
31
+ }
32
+ static configSchemas = [
33
+ JsonPathDivinerConfigSchema
34
+ ];
27
35
  _transforms;
28
36
  /**
29
- * The schema to use for the destination payloads
30
- */
37
+ * The schema to use for the destination payloads
38
+ */
31
39
  get destinationSchema() {
32
40
  return this.config.destinationSchema ?? PayloadSchema;
33
41
  }
34
42
  /**
35
- * Dictionary of schemas to payload transformers for creating indexes
36
- * from the payloads within a Bound Witness
37
- */
43
+ * Dictionary of schemas to payload transformers for creating indexes
44
+ * from the payloads within a Bound Witness
45
+ */
38
46
  get transforms() {
39
47
  if (!this._transforms) {
40
48
  const transforms = assertEx(this.config.transforms, "config.transforms is not defined");
@@ -45,13 +53,17 @@ var JsonPathDiviner = class extends AbstractDiviner {
45
53
  async divineHandler(payloads) {
46
54
  if (!payloads)
47
55
  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
- );
56
+ const results = await Promise.all(payloads.map(async (payload) => {
57
+ const fields = this.transforms.map((transform) => transform(payload));
58
+ const sources = Object.keys(await PayloadHasher.toMap([
59
+ payload
60
+ ]));
61
+ return await new PayloadBuilder({
62
+ schema: this.destinationSchema
63
+ }).fields(Object.assign({
64
+ sources
65
+ }, ...fields)).build();
66
+ }));
55
67
  return results;
56
68
  }
57
69
  };
@@ -1 +1 @@
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":[]}
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,SAASA,gBAAgB;AACzB,SAASC,uBAAuB;AAChC,SAASC,mCAA8E;AAEvF,SAASC,qBAAqB;AAC9B,SAASC,sBAAsB;AAC/B,SAAiCC,qBAAqB;;;ACJtD,OAAOC,cAAc;AAOd,IAAMC,uBAAuB,wBAACC,wBAAAA;AACnC,QAAM,EAAEC,cAAcC,kBAAkBC,qBAAoB,IAAKH;AACjE,QAAMI,cAAkC,wBAACC,MAAAA;AAEvC,UAAMC,SAASC,SAASC,MAAMH,GAAGF,oBAAAA;AAEjC,UAAMM,cAAc,CAAC;AAErB,UAAMC,mBAAmBJ,WAAWK,SAAYV,eAAeK;AAC/D,QAAII,qBAAqBC;AAAWF,kBAAYP,gBAAAA,IAAoBQ;AACpE,WAAOD;EACT,GATwC;AAUxC,SAAOL;AACT,GAboC;;;ADC7B,IAAMQ,kBAAN,cAKGC,gBAAAA;EAfV,OAeUA;;;EACR,OAAgBC,gBAAgB;IAACC;;EAEvBC;;;;EAKV,IAAcC,oBAA4B;AACxC,WAAO,KAAKC,OAAOD,qBAAqBE;EAC1C;;;;;EAKA,IAAcC,aAAmC;AAC/C,QAAI,CAAC,KAAKJ,aAAa;AACrB,YAAMI,aAAaC,SAAS,KAAKH,OAAOE,YAAY,kCAAA;AACpD,WAAKJ,cAAcI,WAAWE,IAAIC,oBAAAA;IACpC;AACA,WAAO,KAAKP;EACd;EAEA,MAAyBQ,cAAcC,UAAmC;AACxE,QAAI,CAACA;AAAU,aAAO,CAAA;AAEtB,UAAMC,UAAU,MAAMC,QAAQC,IAC5BH,SAASH,IAAmB,OAAOO,YAAAA;AAEjC,YAAMC,SAA0B,KAAKV,WAAWE,IAAI,CAACS,cAAcA,UAAUF,OAAAA,CAAAA;AAE7E,YAAMG,UAAUC,OAAOC,KAAK,MAAMC,cAAcC,MAAM;QAACP;OAAQ,CAAA;AAE/D,aAAO,MAAM,IAAIQ,eAAqB;QAAEC,QAAQ,KAAKrB;MAAkB,CAAA,EAAGa,OAAOG,OAAOM,OAAO;QAAEP;MAAQ,GAAA,GAAMF,MAAAA,CAAAA,EAASU,MAAK;IAC/H,CAAA,CAAA;AAEF,WAAOd;EACT;AACF;","names":["assertEx","AbstractDiviner","JsonPathDivinerConfigSchema","PayloadHasher","PayloadBuilder","PayloadSchema","jsonpath","toPayloadTransformer","transformExpression","defaultValue","destinationField","sourcePathExpression","transformer","x","source","jsonpath","value","transformed","destinationValue","undefined","JsonPathDiviner","AbstractDiviner","configSchemas","JsonPathDivinerConfigSchema","_transforms","destinationSchema","config","PayloadSchema","transforms","assertEx","map","toPayloadTransformer","divineHandler","payloads","results","Promise","all","payload","fields","transform","sources","Object","keys","PayloadHasher","toMap","PayloadBuilder","schema","assign","build"]}
@@ -5,6 +5,8 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
6
  var __getProtoOf = Object.getPrototypeOf;
7
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
9
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
8
10
  var __export = (target, all) => {
9
11
  for (var name in all)
10
12
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -26,6 +28,10 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
26
28
  mod
27
29
  ));
28
30
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
31
+ var __publicField = (obj, key, value) => {
32
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
33
+ return value;
34
+ };
29
35
 
30
36
  // src/index.ts
31
37
  var src_exports = {};
@@ -45,33 +51,32 @@ var import_payload_model = require("@xyo-network/payload-model");
45
51
 
46
52
  // src/jsonpath/toPayloadTransformer.ts
47
53
  var import_jsonpath = __toESM(require("jsonpath"), 1);
48
- var toPayloadTransformer = (transformExpression) => {
54
+ var toPayloadTransformer = /* @__PURE__ */ __name((transformExpression) => {
49
55
  const { defaultValue, destinationField, sourcePathExpression } = transformExpression;
50
- const transformer = (x) => {
56
+ const transformer = /* @__PURE__ */ __name((x) => {
51
57
  const source = import_jsonpath.default.value(x, sourcePathExpression);
52
58
  const transformed = {};
53
59
  const destinationValue = source === void 0 ? defaultValue : source;
54
60
  if (destinationValue !== void 0)
55
61
  transformed[destinationField] = destinationValue;
56
62
  return transformed;
57
- };
63
+ }, "transformer");
58
64
  return transformer;
59
- };
65
+ }, "toPayloadTransformer");
60
66
 
61
67
  // src/Diviner.ts
62
- var JsonPathDiviner = class extends import_abstract_diviner.AbstractDiviner {
63
- static configSchemas = [import_diviner_jsonpath_model.JsonPathDivinerConfigSchema];
68
+ var _JsonPathDiviner = class _JsonPathDiviner extends import_abstract_diviner.AbstractDiviner {
64
69
  _transforms;
65
70
  /**
66
- * The schema to use for the destination payloads
67
- */
71
+ * The schema to use for the destination payloads
72
+ */
68
73
  get destinationSchema() {
69
74
  return this.config.destinationSchema ?? import_payload_model.PayloadSchema;
70
75
  }
71
76
  /**
72
- * Dictionary of schemas to payload transformers for creating indexes
73
- * from the payloads within a Bound Witness
74
- */
77
+ * Dictionary of schemas to payload transformers for creating indexes
78
+ * from the payloads within a Bound Witness
79
+ */
75
80
  get transforms() {
76
81
  if (!this._transforms) {
77
82
  const transforms = (0, import_assert.assertEx)(this.config.transforms, "config.transforms is not defined");
@@ -82,16 +87,25 @@ var JsonPathDiviner = class extends import_abstract_diviner.AbstractDiviner {
82
87
  async divineHandler(payloads) {
83
88
  if (!payloads)
84
89
  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
- );
90
+ const results = await Promise.all(payloads.map(async (payload) => {
91
+ const fields = this.transforms.map((transform) => transform(payload));
92
+ const sources = Object.keys(await import_hash.PayloadHasher.toMap([
93
+ payload
94
+ ]));
95
+ return await new import_payload_builder.PayloadBuilder({
96
+ schema: this.destinationSchema
97
+ }).fields(Object.assign({
98
+ sources
99
+ }, ...fields)).build();
100
+ }));
92
101
  return results;
93
102
  }
94
103
  };
104
+ __name(_JsonPathDiviner, "JsonPathDiviner");
105
+ __publicField(_JsonPathDiviner, "configSchemas", [
106
+ import_diviner_jsonpath_model.JsonPathDivinerConfigSchema
107
+ ]);
108
+ var JsonPathDiviner = _JsonPathDiviner;
95
109
  // Annotate the CommonJS export names for ESM import in node:
96
110
  0 && (module.exports = {
97
111
  JsonPathDiviner,
@@ -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/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;;;;;;;;ACAA,oBAAyB;AACzB,8BAAgC;AAChC,oCAAuF;AAEvF,kBAA8B;AAC9B,6BAA+B;AAC/B,2BAAsD;;;ACJtD,sBAAqB;AAOd,IAAMA,uBAAuB,wBAACC,wBAAAA;AACnC,QAAM,EAAEC,cAAcC,kBAAkBC,qBAAoB,IAAKH;AACjE,QAAMI,cAAkC,wBAACC,MAAAA;AAEvC,UAAMC,SAASC,gBAAAA,QAASC,MAAMH,GAAGF,oBAAAA;AAEjC,UAAMM,cAAc,CAAC;AAErB,UAAMC,mBAAmBJ,WAAWK,SAAYV,eAAeK;AAC/D,QAAII,qBAAqBC;AAAWF,kBAAYP,gBAAAA,IAAoBQ;AACpE,WAAOD;EACT,GATwC;AAUxC,SAAOL;AACT,GAboC;;;ADC7B,IAAMQ,mBAAN,MAAMA,yBAKHC,wCAAAA;EAGEC;;;;EAKV,IAAcC,oBAA4B;AACxC,WAAO,KAAKC,OAAOD,qBAAqBE;EAC1C;;;;;EAKA,IAAcC,aAAmC;AAC/C,QAAI,CAAC,KAAKJ,aAAa;AACrB,YAAMI,iBAAaC,wBAAS,KAAKH,OAAOE,YAAY,kCAAA;AACpD,WAAKJ,cAAcI,WAAWE,IAAIC,oBAAAA;IACpC;AACA,WAAO,KAAKP;EACd;EAEA,MAAyBQ,cAAcC,UAAmC;AACxE,QAAI,CAACA;AAAU,aAAO,CAAA;AAEtB,UAAMC,UAAU,MAAMC,QAAQC,IAC5BH,SAASH,IAAmB,OAAOO,YAAAA;AAEjC,YAAMC,SAA0B,KAAKV,WAAWE,IAAI,CAACS,cAAcA,UAAUF,OAAAA,CAAAA;AAE7E,YAAMG,UAAUC,OAAOC,KAAK,MAAMC,0BAAcC,MAAM;QAACP;OAAQ,CAAA;AAE/D,aAAO,MAAM,IAAIQ,sCAAqB;QAAEC,QAAQ,KAAKrB;MAAkB,CAAA,EAAGa,OAAOG,OAAOM,OAAO;QAAEP;MAAQ,GAAA,GAAMF,MAAAA,CAAAA,EAASU,MAAK;IAC/H,CAAA,CAAA;AAEF,WAAOd;EACT;AACF;AAtCUX;AACR,cANWD,kBAMK2B,iBAAgB;EAACC;;AAN5B,IAAM5B,kBAAN;","names":["toPayloadTransformer","transformExpression","defaultValue","destinationField","sourcePathExpression","transformer","x","source","jsonpath","value","transformed","destinationValue","undefined","JsonPathDiviner","AbstractDiviner","_transforms","destinationSchema","config","PayloadSchema","transforms","assertEx","map","toPayloadTransformer","divineHandler","payloads","results","Promise","all","payload","fields","transform","sources","Object","keys","PayloadHasher","toMap","PayloadBuilder","schema","assign","build","configSchemas","JsonPathDivinerConfigSchema"]}
@@ -1,3 +1,11 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
4
+ var __publicField = (obj, key, value) => {
5
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
6
+ return value;
7
+ };
8
+
1
9
  // src/Diviner.ts
2
10
  import { assertEx } from "@xylabs/assert";
3
11
  import { AbstractDiviner } from "@xyo-network/abstract-diviner";
@@ -8,33 +16,32 @@ import { PayloadSchema } from "@xyo-network/payload-model";
8
16
 
9
17
  // src/jsonpath/toPayloadTransformer.ts
10
18
  import jsonpath from "jsonpath";
11
- var toPayloadTransformer = (transformExpression) => {
19
+ var toPayloadTransformer = /* @__PURE__ */ __name((transformExpression) => {
12
20
  const { defaultValue, destinationField, sourcePathExpression } = transformExpression;
13
- const transformer = (x) => {
21
+ const transformer = /* @__PURE__ */ __name((x) => {
14
22
  const source = jsonpath.value(x, sourcePathExpression);
15
23
  const transformed = {};
16
24
  const destinationValue = source === void 0 ? defaultValue : source;
17
25
  if (destinationValue !== void 0)
18
26
  transformed[destinationField] = destinationValue;
19
27
  return transformed;
20
- };
28
+ }, "transformer");
21
29
  return transformer;
22
- };
30
+ }, "toPayloadTransformer");
23
31
 
24
32
  // src/Diviner.ts
25
- var JsonPathDiviner = class extends AbstractDiviner {
26
- static configSchemas = [JsonPathDivinerConfigSchema];
33
+ var _JsonPathDiviner = class _JsonPathDiviner extends AbstractDiviner {
27
34
  _transforms;
28
35
  /**
29
- * The schema to use for the destination payloads
30
- */
36
+ * The schema to use for the destination payloads
37
+ */
31
38
  get destinationSchema() {
32
39
  return this.config.destinationSchema ?? PayloadSchema;
33
40
  }
34
41
  /**
35
- * Dictionary of schemas to payload transformers for creating indexes
36
- * from the payloads within a Bound Witness
37
- */
42
+ * Dictionary of schemas to payload transformers for creating indexes
43
+ * from the payloads within a Bound Witness
44
+ */
38
45
  get transforms() {
39
46
  if (!this._transforms) {
40
47
  const transforms = assertEx(this.config.transforms, "config.transforms is not defined");
@@ -45,16 +52,25 @@ var JsonPathDiviner = class extends AbstractDiviner {
45
52
  async divineHandler(payloads) {
46
53
  if (!payloads)
47
54
  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
+ const results = await Promise.all(payloads.map(async (payload) => {
56
+ const fields = this.transforms.map((transform) => transform(payload));
57
+ const sources = Object.keys(await PayloadHasher.toMap([
58
+ payload
59
+ ]));
60
+ return await new PayloadBuilder({
61
+ schema: this.destinationSchema
62
+ }).fields(Object.assign({
63
+ sources
64
+ }, ...fields)).build();
65
+ }));
55
66
  return results;
56
67
  }
57
68
  };
69
+ __name(_JsonPathDiviner, "JsonPathDiviner");
70
+ __publicField(_JsonPathDiviner, "configSchemas", [
71
+ JsonPathDivinerConfigSchema
72
+ ]);
73
+ var JsonPathDiviner = _JsonPathDiviner;
58
74
  export {
59
75
  JsonPathDiviner,
60
76
  toPayloadTransformer
@@ -1 +1 @@
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":[]}
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,SAASA,gBAAgB;AACzB,SAASC,uBAAuB;AAChC,SAASC,mCAA8E;AAEvF,SAASC,qBAAqB;AAC9B,SAASC,sBAAsB;AAC/B,SAAiCC,qBAAqB;;;ACJtD,OAAOC,cAAc;AAOd,IAAMC,uBAAuB,wBAACC,wBAAAA;AACnC,QAAM,EAAEC,cAAcC,kBAAkBC,qBAAoB,IAAKH;AACjE,QAAMI,cAAkC,wBAACC,MAAAA;AAEvC,UAAMC,SAASC,SAASC,MAAMH,GAAGF,oBAAAA;AAEjC,UAAMM,cAAc,CAAC;AAErB,UAAMC,mBAAmBJ,WAAWK,SAAYV,eAAeK;AAC/D,QAAII,qBAAqBC;AAAWF,kBAAYP,gBAAAA,IAAoBQ;AACpE,WAAOD;EACT,GATwC;AAUxC,SAAOL;AACT,GAboC;;;ADC7B,IAAMQ,mBAAN,MAAMA,yBAKHC,gBAAAA;EAGEC;;;;EAKV,IAAcC,oBAA4B;AACxC,WAAO,KAAKC,OAAOD,qBAAqBE;EAC1C;;;;;EAKA,IAAcC,aAAmC;AAC/C,QAAI,CAAC,KAAKJ,aAAa;AACrB,YAAMI,aAAaC,SAAS,KAAKH,OAAOE,YAAY,kCAAA;AACpD,WAAKJ,cAAcI,WAAWE,IAAIC,oBAAAA;IACpC;AACA,WAAO,KAAKP;EACd;EAEA,MAAyBQ,cAAcC,UAAmC;AACxE,QAAI,CAACA;AAAU,aAAO,CAAA;AAEtB,UAAMC,UAAU,MAAMC,QAAQC,IAC5BH,SAASH,IAAmB,OAAOO,YAAAA;AAEjC,YAAMC,SAA0B,KAAKV,WAAWE,IAAI,CAACS,cAAcA,UAAUF,OAAAA,CAAAA;AAE7E,YAAMG,UAAUC,OAAOC,KAAK,MAAMC,cAAcC,MAAM;QAACP;OAAQ,CAAA;AAE/D,aAAO,MAAM,IAAIQ,eAAqB;QAAEC,QAAQ,KAAKrB;MAAkB,CAAA,EAAGa,OAAOG,OAAOM,OAAO;QAAEP;MAAQ,GAAA,GAAMF,MAAAA,CAAAA,EAASU,MAAK;IAC/H,CAAA,CAAA;AAEF,WAAOd;EACT;AACF;AAtCUX;AACR,cANWD,kBAMK2B,iBAAgB;EAACC;;AAN5B,IAAM5B,kBAAN;","names":["assertEx","AbstractDiviner","JsonPathDivinerConfigSchema","PayloadHasher","PayloadBuilder","PayloadSchema","jsonpath","toPayloadTransformer","transformExpression","defaultValue","destinationField","sourcePathExpression","transformer","x","source","jsonpath","value","transformed","destinationValue","undefined","JsonPathDiviner","AbstractDiviner","_transforms","destinationSchema","config","PayloadSchema","transforms","assertEx","map","toPayloadTransformer","divineHandler","payloads","results","Promise","all","payload","fields","transform","sources","Object","keys","PayloadHasher","toMap","PayloadBuilder","schema","assign","build","configSchemas","JsonPathDivinerConfigSchema"]}
package/package.json CHANGED
@@ -11,19 +11,19 @@
11
11
  },
12
12
  "dependencies": {
13
13
  "@xylabs/assert": "^2.13.20",
14
- "@xyo-network/abstract-diviner": "~2.84.19",
15
- "@xyo-network/diviner-jsonpath-model": "~2.84.19",
16
- "@xyo-network/diviner-model": "~2.84.19",
17
- "@xyo-network/hash": "~2.84.19",
18
- "@xyo-network/payload-builder": "~2.84.19",
19
- "@xyo-network/payload-model": "~2.84.19",
14
+ "@xyo-network/abstract-diviner": "~2.85.1",
15
+ "@xyo-network/diviner-jsonpath-model": "~2.85.1",
16
+ "@xyo-network/diviner-model": "~2.85.1",
17
+ "@xyo-network/hash": "~2.85.1",
18
+ "@xyo-network/payload-builder": "~2.85.1",
19
+ "@xyo-network/payload-model": "~2.85.1",
20
20
  "jsonpath": "^1.1.1"
21
21
  },
22
22
  "devDependencies": {
23
23
  "@xylabs/ts-scripts-yarn3": "^3.2.25",
24
24
  "@xylabs/tsconfig": "^3.2.25",
25
- "@xyo-network/account": "~2.84.19",
26
- "@xyo-network/wallet-model": "~2.84.19",
25
+ "@xyo-network/account": "~2.85.1",
26
+ "@xyo-network/wallet-model": "~2.85.1",
27
27
  "typescript": "^5.3.3"
28
28
  },
29
29
  "description": "Primary SDK for using XYO Protocol 2.0",
@@ -65,6 +65,6 @@
65
65
  "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js.git"
66
66
  },
67
67
  "sideEffects": false,
68
- "version": "2.84.19",
68
+ "version": "2.85.1",
69
69
  "type": "module"
70
70
  }