@xyo-network/diviner-jsonpath-memory 2.110.10 → 2.110.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../src/Diviner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAA+B,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAA;AAC5H,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAA;AAEpF,OAAO,EAAE,OAAO,EAAiB,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAI3E,qBAAa,eAAe,CAC1B,OAAO,SAAS,qBAAqB,GAAG,qBAAqB,EAC7D,GAAG,SAAS,OAAO,GAAG,OAAO,EAC7B,IAAI,SAAS,OAAO,GAAG,OAAO,EAC9B,UAAU,SAAS,sBAAsB,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,sBAAsB,CAChH,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EACnC,GAAG,EACH,IAAI,CACL,CACD,SAAQ,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,CAAC;IACvD,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAwD;IACxG,gBAAyB,mBAAmB,EAAE,MAAM,CAA8B;IAElF,SAAS,CAAC,WAAW,EAAE,kBAAkB,EAAE,GAAG,SAAS,CAAA;IAKvD,SAAS,KAAK,iBAAiB,IAAI,MAAM,CAExC;IAKD,SAAS,KAAK,UAAU,IAAI,kBAAkB,EAAE,CAM/C;cAEwB,aAAa,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;CAe1E"}
1
+ {"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../src/Diviner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAA+B,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAA;AAC5H,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAA;AAEpF,OAAO,EAAE,OAAO,EAAiB,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAI3E,qBAAa,eAAe,CAC1B,OAAO,SAAS,qBAAqB,GAAG,qBAAqB,EAC7D,GAAG,SAAS,OAAO,GAAG,OAAO,EAC7B,IAAI,SAAS,OAAO,GAAG,OAAO,EAC9B,UAAU,SAAS,sBAAsB,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,sBAAsB,CAChH,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EACnC,GAAG,EACH,IAAI,CACL,CACD,SAAQ,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,CAAC;IACvD,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAwD;IACxG,gBAAyB,mBAAmB,EAAE,MAAM,CAA8B;IAElF,SAAS,CAAC,WAAW,EAAE,kBAAkB,EAAE,GAAG,SAAS,CAAA;IAKvD,SAAS,KAAK,iBAAiB,IAAI,MAAM,CAExC;IAKD,SAAS,KAAK,UAAU,IAAI,kBAAkB,EAAE,CAM/C;cAEwB,aAAa,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;CAc1E"}
@@ -1 +1 @@
1
- {"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../src/Diviner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAA+B,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAA;AAC5H,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAA;AAEpF,OAAO,EAAE,OAAO,EAAiB,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAI3E,qBAAa,eAAe,CAC1B,OAAO,SAAS,qBAAqB,GAAG,qBAAqB,EAC7D,GAAG,SAAS,OAAO,GAAG,OAAO,EAC7B,IAAI,SAAS,OAAO,GAAG,OAAO,EAC9B,UAAU,SAAS,sBAAsB,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,sBAAsB,CAChH,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EACnC,GAAG,EACH,IAAI,CACL,CACD,SAAQ,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,CAAC;IACvD,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAwD;IACxG,gBAAyB,mBAAmB,EAAE,MAAM,CAA8B;IAElF,SAAS,CAAC,WAAW,EAAE,kBAAkB,EAAE,GAAG,SAAS,CAAA;IAKvD,SAAS,KAAK,iBAAiB,IAAI,MAAM,CAExC;IAKD,SAAS,KAAK,UAAU,IAAI,kBAAkB,EAAE,CAM/C;cAEwB,aAAa,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;CAe1E"}
1
+ {"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../src/Diviner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAA+B,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAA;AAC5H,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAA;AAEpF,OAAO,EAAE,OAAO,EAAiB,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAI3E,qBAAa,eAAe,CAC1B,OAAO,SAAS,qBAAqB,GAAG,qBAAqB,EAC7D,GAAG,SAAS,OAAO,GAAG,OAAO,EAC7B,IAAI,SAAS,OAAO,GAAG,OAAO,EAC9B,UAAU,SAAS,sBAAsB,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,sBAAsB,CAChH,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EACnC,GAAG,EACH,IAAI,CACL,CACD,SAAQ,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,CAAC;IACvD,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAwD;IACxG,gBAAyB,mBAAmB,EAAE,MAAM,CAA8B;IAElF,SAAS,CAAC,WAAW,EAAE,kBAAkB,EAAE,GAAG,SAAS,CAAA;IAKvD,SAAS,KAAK,iBAAiB,IAAI,MAAM,CAExC;IAKD,SAAS,KAAK,UAAU,IAAI,kBAAkB,EAAE,CAM/C;cAEwB,aAAa,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;CAc1E"}
@@ -1 +1 @@
1
- {"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../src/Diviner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAA+B,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAA;AAC5H,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAA;AAEpF,OAAO,EAAE,OAAO,EAAiB,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAI3E,qBAAa,eAAe,CAC1B,OAAO,SAAS,qBAAqB,GAAG,qBAAqB,EAC7D,GAAG,SAAS,OAAO,GAAG,OAAO,EAC7B,IAAI,SAAS,OAAO,GAAG,OAAO,EAC9B,UAAU,SAAS,sBAAsB,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,sBAAsB,CAChH,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EACnC,GAAG,EACH,IAAI,CACL,CACD,SAAQ,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,CAAC;IACvD,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAwD;IACxG,gBAAyB,mBAAmB,EAAE,MAAM,CAA8B;IAElF,SAAS,CAAC,WAAW,EAAE,kBAAkB,EAAE,GAAG,SAAS,CAAA;IAKvD,SAAS,KAAK,iBAAiB,IAAI,MAAM,CAExC;IAKD,SAAS,KAAK,UAAU,IAAI,kBAAkB,EAAE,CAM/C;cAEwB,aAAa,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;CAe1E"}
1
+ {"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../src/Diviner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAA+B,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAA;AAC5H,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAA;AAEpF,OAAO,EAAE,OAAO,EAAiB,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAI3E,qBAAa,eAAe,CAC1B,OAAO,SAAS,qBAAqB,GAAG,qBAAqB,EAC7D,GAAG,SAAS,OAAO,GAAG,OAAO,EAC7B,IAAI,SAAS,OAAO,GAAG,OAAO,EAC9B,UAAU,SAAS,sBAAsB,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,sBAAsB,CAChH,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EACnC,GAAG,EACH,IAAI,CACL,CACD,SAAQ,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,CAAC;IACvD,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAwD;IACxG,gBAAyB,mBAAmB,EAAE,MAAM,CAA8B;IAElF,SAAS,CAAC,WAAW,EAAE,kBAAkB,EAAE,GAAG,SAAS,CAAA;IAKvD,SAAS,KAAK,iBAAiB,IAAI,MAAM,CAExC;IAKD,SAAS,KAAK,UAAU,IAAI,kBAAkB,EAAE,CAM/C;cAEwB,aAAa,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;CAc1E"}
@@ -87,7 +87,7 @@ var JsonPathDiviner = class extends import_diviner_abstract.AbstractDiviner {
87
87
  }
88
88
  async divineHandler(payloads) {
89
89
  if (!payloads) return [];
90
- const results = await Promise.all(payloads.map(async (payload) => {
90
+ return await Promise.all(payloads.map(async (payload) => {
91
91
  const fields = this.transforms.map((transform) => transform(payload));
92
92
  const sources = await import_payload_builder.PayloadBuilder.dataHashes([
93
93
  payload
@@ -98,7 +98,6 @@ var JsonPathDiviner = class extends import_diviner_abstract.AbstractDiviner {
98
98
  sources
99
99
  }, ...fields)).build();
100
100
  }));
101
- return results;
102
101
  }
103
102
  };
104
103
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts","../../src/Diviner.ts","../../src/jsonpath/toPayloadTransformer.ts"],"sourcesContent":["export * from './Diviner.js'\nexport * from './jsonpath/index.js'\n","import { assertEx } from '@xylabs/assert'\nimport { AbstractDiviner } from '@xyo-network/diviner-abstract'\nimport { JsonPathDivinerConfigSchema, JsonPathDivinerParams, PayloadTransformer } from '@xyo-network/diviner-jsonpath-model'\nimport { DivinerInstance, DivinerModuleEventData } from '@xyo-network/diviner-model'\nimport { PayloadBuilder, WithoutSchema } from '@xyo-network/payload-builder'\nimport { Payload, PayloadSchema, Schema } from '@xyo-network/payload-model'\n\nimport { toPayloadTransformer } from './jsonpath/index.js'\n\nexport class JsonPathDiviner<\n TParams extends JsonPathDivinerParams = JsonPathDivinerParams,\n TIn extends Payload = Payload,\n TOut extends Payload = Payload,\n TEventData extends DivinerModuleEventData<DivinerInstance<TParams, TIn, TOut>, TIn, TOut> = DivinerModuleEventData<\n DivinerInstance<TParams, TIn, TOut>,\n TIn,\n TOut\n >,\n> extends AbstractDiviner<TParams, TIn, TOut, TEventData> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, JsonPathDivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = 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 = this.transforms.map((transform) => transform(payload)) as WithoutSchema<TOut>[]\n // Include all the sources for reference\n const sources = await PayloadBuilder.dataHashes([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 const source = jsonpath.value(x, sourcePathExpression)\n // TODO: If the expression should return multiple values, use jsonpath.query\n // instead of jsonpath.value\n // const source =\n // isScalarJsonPathExpression(transformExpression.sourcePathExpression) ?\n // jsonpath.value(x, sourcePathExpression)\n // : jsonpath.query(x, sourcePathExpression)\n const transformed: Record<string, unknown> = {}\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,6BAA8C;AAC9C,2BAA+C;;;ACH/C,sBAAqB;AAOd,IAAMA,uBAAuB,wBAACC,wBAAAA;AACnC,QAAM,EAAEC,cAAcC,kBAAkBC,qBAAoB,IAAKH;AACjE,QAAMI,cAAkC,wBAACC,MAAAA;AACvC,UAAMC,SAASC,gBAAAA,QAASC,MAAMH,GAAGF,oBAAAA;AAOjC,UAAMM,cAAuC,CAAC;AAE9C,UAAMC,mBAAmBJ,WAAWK,SAAYV,eAAeK;AAC/D,QAAII,qBAAqBC,OAAWF,aAAYP,gBAAAA,IAAoBQ;AACpE,WAAOD;EACT,GAbwC;AAcxC,SAAOL;AACT,GAjBoC;;;ADA7B,IAAMQ,kBAAN,cASGC,wCAAAA;EAlBV,OAkBUA;;;EACR,OAAyBC,gBAA0B;OAAI,MAAMA;IAAeC;;EAC5E,OAAyBC,sBAA8BD;EAE7CE;;;;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,MAAM,kCAAA;AAC1D,WAAKJ,cAAcI,WAAWE,IAAIC,oBAAAA;IACpC;AACA,WAAO,KAAKP;EACd;EAEA,MAAyBQ,cAAcC,UAAmC;AACxE,QAAI,CAACA,SAAU,QAAO,CAAA;AAEtB,UAAMC,UAAU,MAAMC,QAAQC,IAC5BH,SAASH,IAAmB,OAAOO,YAAAA;AAEjC,YAAMC,SAAS,KAAKV,WAAWE,IAAI,CAACS,cAAcA,UAAUF,OAAAA,CAAAA;AAE5D,YAAMG,UAAU,MAAMC,sCAAeC,WAAW;QAACL;OAAQ;AAEzD,aAAO,MAAM,IAAII,sCAAqB;QAAEE,QAAQ,KAAKlB;MAAkB,CAAA,EAAGa,OAAOM,OAAOC,OAAO;QAAEL;MAAQ,GAAA,GAAMF,MAAAA,CAAAA,EAASQ,MAAK;IAC/H,CAAA,CAAA;AAEF,WAAOZ;EACT;AACF;","names":["toPayloadTransformer","transformExpression","defaultValue","destinationField","sourcePathExpression","transformer","x","source","jsonpath","value","transformed","destinationValue","undefined","JsonPathDiviner","AbstractDiviner","configSchemas","JsonPathDivinerConfigSchema","defaultConfigSchema","_transforms","destinationSchema","config","PayloadSchema","transforms","assertEx","map","toPayloadTransformer","divineHandler","payloads","results","Promise","all","payload","fields","transform","sources","PayloadBuilder","dataHashes","schema","Object","assign","build"]}
1
+ {"version":3,"sources":["../../src/index.ts","../../src/Diviner.ts","../../src/jsonpath/toPayloadTransformer.ts"],"sourcesContent":["export * from './Diviner.js'\nexport * from './jsonpath/index.js'\n","import { assertEx } from '@xylabs/assert'\nimport { AbstractDiviner } from '@xyo-network/diviner-abstract'\nimport { JsonPathDivinerConfigSchema, JsonPathDivinerParams, PayloadTransformer } from '@xyo-network/diviner-jsonpath-model'\nimport { DivinerInstance, DivinerModuleEventData } from '@xyo-network/diviner-model'\nimport { PayloadBuilder, WithoutSchema } from '@xyo-network/payload-builder'\nimport { Payload, PayloadSchema, Schema } from '@xyo-network/payload-model'\n\nimport { toPayloadTransformer } from './jsonpath/index.js'\n\nexport class JsonPathDiviner<\n TParams extends JsonPathDivinerParams = JsonPathDivinerParams,\n TIn extends Payload = Payload,\n TOut extends Payload = Payload,\n TEventData extends DivinerModuleEventData<DivinerInstance<TParams, TIn, TOut>, TIn, TOut> = DivinerModuleEventData<\n DivinerInstance<TParams, TIn, TOut>,\n TIn,\n TOut\n >,\n> extends AbstractDiviner<TParams, TIn, TOut, TEventData> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, JsonPathDivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = 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 return 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 = this.transforms.map((transform) => transform(payload)) as WithoutSchema<TOut>[]\n // Include all the sources for reference\n const sources = await PayloadBuilder.dataHashes([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 }\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 const source = jsonpath.value(x, sourcePathExpression)\n // TODO: If the expression should return multiple values, use jsonpath.query\n // instead of jsonpath.value\n // const source =\n // isScalarJsonPathExpression(transformExpression.sourcePathExpression) ?\n // jsonpath.value(x, sourcePathExpression)\n // : jsonpath.query(x, sourcePathExpression)\n const transformed: Record<string, unknown> = {}\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,6BAA8C;AAC9C,2BAA+C;;;ACH/C,sBAAqB;AAOd,IAAMA,uBAAuB,wBAACC,wBAAAA;AACnC,QAAM,EAAEC,cAAcC,kBAAkBC,qBAAoB,IAAKH;AACjE,QAAMI,cAAkC,wBAACC,MAAAA;AACvC,UAAMC,SAASC,gBAAAA,QAASC,MAAMH,GAAGF,oBAAAA;AAOjC,UAAMM,cAAuC,CAAC;AAE9C,UAAMC,mBAAmBJ,WAAWK,SAAYV,eAAeK;AAC/D,QAAII,qBAAqBC,OAAWF,aAAYP,gBAAAA,IAAoBQ;AACpE,WAAOD;EACT,GAbwC;AAcxC,SAAOL;AACT,GAjBoC;;;ADA7B,IAAMQ,kBAAN,cASGC,wCAAAA;EAlBV,OAkBUA;;;EACR,OAAyBC,gBAA0B;OAAI,MAAMA;IAAeC;;EAC5E,OAAyBC,sBAA8BD;EAE7CE;;;;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,MAAM,kCAAA;AAC1D,WAAKJ,cAAcI,WAAWE,IAAIC,oBAAAA;IACpC;AACA,WAAO,KAAKP;EACd;EAEA,MAAyBQ,cAAcC,UAAmC;AACxE,QAAI,CAACA,SAAU,QAAO,CAAA;AAEtB,WAAO,MAAMC,QAAQC,IACnBF,SAASH,IAAmB,OAAOM,YAAAA;AAEjC,YAAMC,SAAS,KAAKT,WAAWE,IAAI,CAACQ,cAAcA,UAAUF,OAAAA,CAAAA;AAE5D,YAAMG,UAAU,MAAMC,sCAAeC,WAAW;QAACL;OAAQ;AAEzD,aAAO,MAAM,IAAII,sCAAqB;QAAEE,QAAQ,KAAKjB;MAAkB,CAAA,EAAGY,OAAOM,OAAOC,OAAO;QAAEL;MAAQ,GAAA,GAAMF,MAAAA,CAAAA,EAASQ,MAAK;IAC/H,CAAA,CAAA;EAEJ;AACF;","names":["toPayloadTransformer","transformExpression","defaultValue","destinationField","sourcePathExpression","transformer","x","source","jsonpath","value","transformed","destinationValue","undefined","JsonPathDiviner","AbstractDiviner","configSchemas","JsonPathDivinerConfigSchema","defaultConfigSchema","_transforms","destinationSchema","config","PayloadSchema","transforms","assertEx","map","toPayloadTransformer","divineHandler","payloads","Promise","all","payload","fields","transform","sources","PayloadBuilder","dataHashes","schema","Object","assign","build"]}
@@ -52,7 +52,7 @@ var JsonPathDiviner = class extends AbstractDiviner {
52
52
  }
53
53
  async divineHandler(payloads) {
54
54
  if (!payloads) return [];
55
- const results = await Promise.all(payloads.map(async (payload) => {
55
+ return await Promise.all(payloads.map(async (payload) => {
56
56
  const fields = this.transforms.map((transform) => transform(payload));
57
57
  const sources = await PayloadBuilder.dataHashes([
58
58
  payload
@@ -63,7 +63,6 @@ var JsonPathDiviner = class extends AbstractDiviner {
63
63
  sources
64
64
  }, ...fields)).build();
65
65
  }));
66
- return results;
67
66
  }
68
67
  };
69
68
  export {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Diviner.ts","../../src/jsonpath/toPayloadTransformer.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { AbstractDiviner } from '@xyo-network/diviner-abstract'\nimport { JsonPathDivinerConfigSchema, JsonPathDivinerParams, PayloadTransformer } from '@xyo-network/diviner-jsonpath-model'\nimport { DivinerInstance, DivinerModuleEventData } from '@xyo-network/diviner-model'\nimport { PayloadBuilder, WithoutSchema } from '@xyo-network/payload-builder'\nimport { Payload, PayloadSchema, Schema } from '@xyo-network/payload-model'\n\nimport { toPayloadTransformer } from './jsonpath/index.js'\n\nexport class JsonPathDiviner<\n TParams extends JsonPathDivinerParams = JsonPathDivinerParams,\n TIn extends Payload = Payload,\n TOut extends Payload = Payload,\n TEventData extends DivinerModuleEventData<DivinerInstance<TParams, TIn, TOut>, TIn, TOut> = DivinerModuleEventData<\n DivinerInstance<TParams, TIn, TOut>,\n TIn,\n TOut\n >,\n> extends AbstractDiviner<TParams, TIn, TOut, TEventData> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, JsonPathDivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = 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 = this.transforms.map((transform) => transform(payload)) as WithoutSchema<TOut>[]\n // Include all the sources for reference\n const sources = await PayloadBuilder.dataHashes([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 const source = jsonpath.value(x, sourcePathExpression)\n // TODO: If the expression should return multiple values, use jsonpath.query\n // instead of jsonpath.value\n // const source =\n // isScalarJsonPathExpression(transformExpression.sourcePathExpression) ?\n // jsonpath.value(x, sourcePathExpression)\n // : jsonpath.query(x, sourcePathExpression)\n const transformed: Record<string, unknown> = {}\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,sBAAqC;AAC9C,SAAkBC,qBAA6B;;;ACH/C,OAAOC,cAAc;AAOd,IAAMC,uBAAuB,wBAACC,wBAAAA;AACnC,QAAM,EAAEC,cAAcC,kBAAkBC,qBAAoB,IAAKH;AACjE,QAAMI,cAAkC,wBAACC,MAAAA;AACvC,UAAMC,SAASC,SAASC,MAAMH,GAAGF,oBAAAA;AAOjC,UAAMM,cAAuC,CAAC;AAE9C,UAAMC,mBAAmBJ,WAAWK,SAAYV,eAAeK;AAC/D,QAAII,qBAAqBC,OAAWF,aAAYP,gBAAAA,IAAoBQ;AACpE,WAAOD;EACT,GAbwC;AAcxC,SAAOL;AACT,GAjBoC;;;ADA7B,IAAMQ,kBAAN,cASGC,gBAAAA;EAlBV,OAkBUA;;;EACR,OAAyBC,gBAA0B;OAAI,MAAMA;IAAeC;;EAC5E,OAAyBC,sBAA8BD;EAE7CE;;;;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,MAAM,kCAAA;AAC1D,WAAKJ,cAAcI,WAAWE,IAAIC,oBAAAA;IACpC;AACA,WAAO,KAAKP;EACd;EAEA,MAAyBQ,cAAcC,UAAmC;AACxE,QAAI,CAACA,SAAU,QAAO,CAAA;AAEtB,UAAMC,UAAU,MAAMC,QAAQC,IAC5BH,SAASH,IAAmB,OAAOO,YAAAA;AAEjC,YAAMC,SAAS,KAAKV,WAAWE,IAAI,CAACS,cAAcA,UAAUF,OAAAA,CAAAA;AAE5D,YAAMG,UAAU,MAAMC,eAAeC,WAAW;QAACL;OAAQ;AAEzD,aAAO,MAAM,IAAII,eAAqB;QAAEE,QAAQ,KAAKlB;MAAkB,CAAA,EAAGa,OAAOM,OAAOC,OAAO;QAAEL;MAAQ,GAAA,GAAMF,MAAAA,CAAAA,EAASQ,MAAK;IAC/H,CAAA,CAAA;AAEF,WAAOZ;EACT;AACF;","names":["assertEx","AbstractDiviner","JsonPathDivinerConfigSchema","PayloadBuilder","PayloadSchema","jsonpath","toPayloadTransformer","transformExpression","defaultValue","destinationField","sourcePathExpression","transformer","x","source","jsonpath","value","transformed","destinationValue","undefined","JsonPathDiviner","AbstractDiviner","configSchemas","JsonPathDivinerConfigSchema","defaultConfigSchema","_transforms","destinationSchema","config","PayloadSchema","transforms","assertEx","map","toPayloadTransformer","divineHandler","payloads","results","Promise","all","payload","fields","transform","sources","PayloadBuilder","dataHashes","schema","Object","assign","build"]}
1
+ {"version":3,"sources":["../../src/Diviner.ts","../../src/jsonpath/toPayloadTransformer.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { AbstractDiviner } from '@xyo-network/diviner-abstract'\nimport { JsonPathDivinerConfigSchema, JsonPathDivinerParams, PayloadTransformer } from '@xyo-network/diviner-jsonpath-model'\nimport { DivinerInstance, DivinerModuleEventData } from '@xyo-network/diviner-model'\nimport { PayloadBuilder, WithoutSchema } from '@xyo-network/payload-builder'\nimport { Payload, PayloadSchema, Schema } from '@xyo-network/payload-model'\n\nimport { toPayloadTransformer } from './jsonpath/index.js'\n\nexport class JsonPathDiviner<\n TParams extends JsonPathDivinerParams = JsonPathDivinerParams,\n TIn extends Payload = Payload,\n TOut extends Payload = Payload,\n TEventData extends DivinerModuleEventData<DivinerInstance<TParams, TIn, TOut>, TIn, TOut> = DivinerModuleEventData<\n DivinerInstance<TParams, TIn, TOut>,\n TIn,\n TOut\n >,\n> extends AbstractDiviner<TParams, TIn, TOut, TEventData> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, JsonPathDivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = 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 return 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 = this.transforms.map((transform) => transform(payload)) as WithoutSchema<TOut>[]\n // Include all the sources for reference\n const sources = await PayloadBuilder.dataHashes([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 }\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 const source = jsonpath.value(x, sourcePathExpression)\n // TODO: If the expression should return multiple values, use jsonpath.query\n // instead of jsonpath.value\n // const source =\n // isScalarJsonPathExpression(transformExpression.sourcePathExpression) ?\n // jsonpath.value(x, sourcePathExpression)\n // : jsonpath.query(x, sourcePathExpression)\n const transformed: Record<string, unknown> = {}\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,sBAAqC;AAC9C,SAAkBC,qBAA6B;;;ACH/C,OAAOC,cAAc;AAOd,IAAMC,uBAAuB,wBAACC,wBAAAA;AACnC,QAAM,EAAEC,cAAcC,kBAAkBC,qBAAoB,IAAKH;AACjE,QAAMI,cAAkC,wBAACC,MAAAA;AACvC,UAAMC,SAASC,SAASC,MAAMH,GAAGF,oBAAAA;AAOjC,UAAMM,cAAuC,CAAC;AAE9C,UAAMC,mBAAmBJ,WAAWK,SAAYV,eAAeK;AAC/D,QAAII,qBAAqBC,OAAWF,aAAYP,gBAAAA,IAAoBQ;AACpE,WAAOD;EACT,GAbwC;AAcxC,SAAOL;AACT,GAjBoC;;;ADA7B,IAAMQ,kBAAN,cASGC,gBAAAA;EAlBV,OAkBUA;;;EACR,OAAyBC,gBAA0B;OAAI,MAAMA;IAAeC;;EAC5E,OAAyBC,sBAA8BD;EAE7CE;;;;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,MAAM,kCAAA;AAC1D,WAAKJ,cAAcI,WAAWE,IAAIC,oBAAAA;IACpC;AACA,WAAO,KAAKP;EACd;EAEA,MAAyBQ,cAAcC,UAAmC;AACxE,QAAI,CAACA,SAAU,QAAO,CAAA;AAEtB,WAAO,MAAMC,QAAQC,IACnBF,SAASH,IAAmB,OAAOM,YAAAA;AAEjC,YAAMC,SAAS,KAAKT,WAAWE,IAAI,CAACQ,cAAcA,UAAUF,OAAAA,CAAAA;AAE5D,YAAMG,UAAU,MAAMC,eAAeC,WAAW;QAACL;OAAQ;AAEzD,aAAO,MAAM,IAAII,eAAqB;QAAEE,QAAQ,KAAKjB;MAAkB,CAAA,EAAGY,OAAOM,OAAOC,OAAO;QAAEL;MAAQ,GAAA,GAAMF,MAAAA,CAAAA,EAASQ,MAAK;IAC/H,CAAA,CAAA;EAEJ;AACF;","names":["assertEx","AbstractDiviner","JsonPathDivinerConfigSchema","PayloadBuilder","PayloadSchema","jsonpath","toPayloadTransformer","transformExpression","defaultValue","destinationField","sourcePathExpression","transformer","x","source","jsonpath","value","transformed","destinationValue","undefined","JsonPathDiviner","AbstractDiviner","configSchemas","JsonPathDivinerConfigSchema","defaultConfigSchema","_transforms","destinationSchema","config","PayloadSchema","transforms","assertEx","map","toPayloadTransformer","divineHandler","payloads","Promise","all","payload","fields","transform","sources","PayloadBuilder","dataHashes","schema","Object","assign","build"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../src/Diviner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAA+B,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAA;AAC5H,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAA;AAEpF,OAAO,EAAE,OAAO,EAAiB,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAI3E,qBAAa,eAAe,CAC1B,OAAO,SAAS,qBAAqB,GAAG,qBAAqB,EAC7D,GAAG,SAAS,OAAO,GAAG,OAAO,EAC7B,IAAI,SAAS,OAAO,GAAG,OAAO,EAC9B,UAAU,SAAS,sBAAsB,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,sBAAsB,CAChH,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EACnC,GAAG,EACH,IAAI,CACL,CACD,SAAQ,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,CAAC;IACvD,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAwD;IACxG,gBAAyB,mBAAmB,EAAE,MAAM,CAA8B;IAElF,SAAS,CAAC,WAAW,EAAE,kBAAkB,EAAE,GAAG,SAAS,CAAA;IAKvD,SAAS,KAAK,iBAAiB,IAAI,MAAM,CAExC;IAKD,SAAS,KAAK,UAAU,IAAI,kBAAkB,EAAE,CAM/C;cAEwB,aAAa,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;CAe1E"}
1
+ {"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../src/Diviner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAA+B,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAA;AAC5H,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAA;AAEpF,OAAO,EAAE,OAAO,EAAiB,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAI3E,qBAAa,eAAe,CAC1B,OAAO,SAAS,qBAAqB,GAAG,qBAAqB,EAC7D,GAAG,SAAS,OAAO,GAAG,OAAO,EAC7B,IAAI,SAAS,OAAO,GAAG,OAAO,EAC9B,UAAU,SAAS,sBAAsB,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,sBAAsB,CAChH,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EACnC,GAAG,EACH,IAAI,CACL,CACD,SAAQ,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,CAAC;IACvD,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAwD;IACxG,gBAAyB,mBAAmB,EAAE,MAAM,CAA8B;IAElF,SAAS,CAAC,WAAW,EAAE,kBAAkB,EAAE,GAAG,SAAS,CAAA;IAKvD,SAAS,KAAK,iBAAiB,IAAI,MAAM,CAExC;IAKD,SAAS,KAAK,UAAU,IAAI,kBAAkB,EAAE,CAM/C;cAEwB,aAAa,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;CAc1E"}
@@ -1 +1 @@
1
- {"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../src/Diviner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAA+B,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAA;AAC5H,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAA;AAEpF,OAAO,EAAE,OAAO,EAAiB,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAI3E,qBAAa,eAAe,CAC1B,OAAO,SAAS,qBAAqB,GAAG,qBAAqB,EAC7D,GAAG,SAAS,OAAO,GAAG,OAAO,EAC7B,IAAI,SAAS,OAAO,GAAG,OAAO,EAC9B,UAAU,SAAS,sBAAsB,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,sBAAsB,CAChH,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EACnC,GAAG,EACH,IAAI,CACL,CACD,SAAQ,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,CAAC;IACvD,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAwD;IACxG,gBAAyB,mBAAmB,EAAE,MAAM,CAA8B;IAElF,SAAS,CAAC,WAAW,EAAE,kBAAkB,EAAE,GAAG,SAAS,CAAA;IAKvD,SAAS,KAAK,iBAAiB,IAAI,MAAM,CAExC;IAKD,SAAS,KAAK,UAAU,IAAI,kBAAkB,EAAE,CAM/C;cAEwB,aAAa,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;CAe1E"}
1
+ {"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../src/Diviner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAA+B,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAA;AAC5H,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAA;AAEpF,OAAO,EAAE,OAAO,EAAiB,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAI3E,qBAAa,eAAe,CAC1B,OAAO,SAAS,qBAAqB,GAAG,qBAAqB,EAC7D,GAAG,SAAS,OAAO,GAAG,OAAO,EAC7B,IAAI,SAAS,OAAO,GAAG,OAAO,EAC9B,UAAU,SAAS,sBAAsB,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,sBAAsB,CAChH,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EACnC,GAAG,EACH,IAAI,CACL,CACD,SAAQ,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,CAAC;IACvD,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAwD;IACxG,gBAAyB,mBAAmB,EAAE,MAAM,CAA8B;IAElF,SAAS,CAAC,WAAW,EAAE,kBAAkB,EAAE,GAAG,SAAS,CAAA;IAKvD,SAAS,KAAK,iBAAiB,IAAI,MAAM,CAExC;IAKD,SAAS,KAAK,UAAU,IAAI,kBAAkB,EAAE,CAM/C;cAEwB,aAAa,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;CAc1E"}
@@ -1 +1 @@
1
- {"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../src/Diviner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAA+B,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAA;AAC5H,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAA;AAEpF,OAAO,EAAE,OAAO,EAAiB,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAI3E,qBAAa,eAAe,CAC1B,OAAO,SAAS,qBAAqB,GAAG,qBAAqB,EAC7D,GAAG,SAAS,OAAO,GAAG,OAAO,EAC7B,IAAI,SAAS,OAAO,GAAG,OAAO,EAC9B,UAAU,SAAS,sBAAsB,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,sBAAsB,CAChH,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EACnC,GAAG,EACH,IAAI,CACL,CACD,SAAQ,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,CAAC;IACvD,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAwD;IACxG,gBAAyB,mBAAmB,EAAE,MAAM,CAA8B;IAElF,SAAS,CAAC,WAAW,EAAE,kBAAkB,EAAE,GAAG,SAAS,CAAA;IAKvD,SAAS,KAAK,iBAAiB,IAAI,MAAM,CAExC;IAKD,SAAS,KAAK,UAAU,IAAI,kBAAkB,EAAE,CAM/C;cAEwB,aAAa,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;CAe1E"}
1
+ {"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../src/Diviner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAA+B,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAA;AAC5H,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAA;AAEpF,OAAO,EAAE,OAAO,EAAiB,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAI3E,qBAAa,eAAe,CAC1B,OAAO,SAAS,qBAAqB,GAAG,qBAAqB,EAC7D,GAAG,SAAS,OAAO,GAAG,OAAO,EAC7B,IAAI,SAAS,OAAO,GAAG,OAAO,EAC9B,UAAU,SAAS,sBAAsB,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,sBAAsB,CAChH,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EACnC,GAAG,EACH,IAAI,CACL,CACD,SAAQ,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,CAAC;IACvD,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAwD;IACxG,gBAAyB,mBAAmB,EAAE,MAAM,CAA8B;IAElF,SAAS,CAAC,WAAW,EAAE,kBAAkB,EAAE,GAAG,SAAS,CAAA;IAKvD,SAAS,KAAK,iBAAiB,IAAI,MAAM,CAExC;IAKD,SAAS,KAAK,UAAU,IAAI,kBAAkB,EAAE,CAM/C;cAEwB,aAAa,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;CAc1E"}
@@ -87,7 +87,7 @@ var JsonPathDiviner = class extends import_diviner_abstract.AbstractDiviner {
87
87
  }
88
88
  async divineHandler(payloads) {
89
89
  if (!payloads) return [];
90
- const results = await Promise.all(payloads.map(async (payload) => {
90
+ return await Promise.all(payloads.map(async (payload) => {
91
91
  const fields = this.transforms.map((transform) => transform(payload));
92
92
  const sources = await import_payload_builder.PayloadBuilder.dataHashes([
93
93
  payload
@@ -98,7 +98,6 @@ var JsonPathDiviner = class extends import_diviner_abstract.AbstractDiviner {
98
98
  sources
99
99
  }, ...fields)).build();
100
100
  }));
101
- return results;
102
101
  }
103
102
  };
104
103
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts","../../src/Diviner.ts","../../src/jsonpath/toPayloadTransformer.ts"],"sourcesContent":["export * from './Diviner.js'\nexport * from './jsonpath/index.js'\n","import { assertEx } from '@xylabs/assert'\nimport { AbstractDiviner } from '@xyo-network/diviner-abstract'\nimport { JsonPathDivinerConfigSchema, JsonPathDivinerParams, PayloadTransformer } from '@xyo-network/diviner-jsonpath-model'\nimport { DivinerInstance, DivinerModuleEventData } from '@xyo-network/diviner-model'\nimport { PayloadBuilder, WithoutSchema } from '@xyo-network/payload-builder'\nimport { Payload, PayloadSchema, Schema } from '@xyo-network/payload-model'\n\nimport { toPayloadTransformer } from './jsonpath/index.js'\n\nexport class JsonPathDiviner<\n TParams extends JsonPathDivinerParams = JsonPathDivinerParams,\n TIn extends Payload = Payload,\n TOut extends Payload = Payload,\n TEventData extends DivinerModuleEventData<DivinerInstance<TParams, TIn, TOut>, TIn, TOut> = DivinerModuleEventData<\n DivinerInstance<TParams, TIn, TOut>,\n TIn,\n TOut\n >,\n> extends AbstractDiviner<TParams, TIn, TOut, TEventData> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, JsonPathDivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = 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 = this.transforms.map((transform) => transform(payload)) as WithoutSchema<TOut>[]\n // Include all the sources for reference\n const sources = await PayloadBuilder.dataHashes([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 const source = jsonpath.value(x, sourcePathExpression)\n // TODO: If the expression should return multiple values, use jsonpath.query\n // instead of jsonpath.value\n // const source =\n // isScalarJsonPathExpression(transformExpression.sourcePathExpression) ?\n // jsonpath.value(x, sourcePathExpression)\n // : jsonpath.query(x, sourcePathExpression)\n const transformed: Record<string, unknown> = {}\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,6BAA8C;AAC9C,2BAA+C;;;ACH/C,sBAAqB;AAOd,IAAMA,uBAAuB,wBAACC,wBAAAA;AACnC,QAAM,EAAEC,cAAcC,kBAAkBC,qBAAoB,IAAKH;AACjE,QAAMI,cAAkC,wBAACC,MAAAA;AACvC,UAAMC,SAASC,gBAAAA,QAASC,MAAMH,GAAGF,oBAAAA;AAOjC,UAAMM,cAAuC,CAAC;AAE9C,UAAMC,mBAAmBJ,WAAWK,SAAYV,eAAeK;AAC/D,QAAII,qBAAqBC,OAAWF,aAAYP,gBAAAA,IAAoBQ;AACpE,WAAOD;EACT,GAbwC;AAcxC,SAAOL;AACT,GAjBoC;;;ADA7B,IAAMQ,kBAAN,cASGC,wCAAAA;EAlBV,OAkBUA;;;EACR,OAAyBC,gBAA0B;OAAI,MAAMA;IAAeC;;EAC5E,OAAyBC,sBAA8BD;EAE7CE;;;;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,MAAM,kCAAA;AAC1D,WAAKJ,cAAcI,WAAWE,IAAIC,oBAAAA;IACpC;AACA,WAAO,KAAKP;EACd;EAEA,MAAyBQ,cAAcC,UAAmC;AACxE,QAAI,CAACA,SAAU,QAAO,CAAA;AAEtB,UAAMC,UAAU,MAAMC,QAAQC,IAC5BH,SAASH,IAAmB,OAAOO,YAAAA;AAEjC,YAAMC,SAAS,KAAKV,WAAWE,IAAI,CAACS,cAAcA,UAAUF,OAAAA,CAAAA;AAE5D,YAAMG,UAAU,MAAMC,sCAAeC,WAAW;QAACL;OAAQ;AAEzD,aAAO,MAAM,IAAII,sCAAqB;QAAEE,QAAQ,KAAKlB;MAAkB,CAAA,EAAGa,OAAOM,OAAOC,OAAO;QAAEL;MAAQ,GAAA,GAAMF,MAAAA,CAAAA,EAASQ,MAAK;IAC/H,CAAA,CAAA;AAEF,WAAOZ;EACT;AACF;","names":["toPayloadTransformer","transformExpression","defaultValue","destinationField","sourcePathExpression","transformer","x","source","jsonpath","value","transformed","destinationValue","undefined","JsonPathDiviner","AbstractDiviner","configSchemas","JsonPathDivinerConfigSchema","defaultConfigSchema","_transforms","destinationSchema","config","PayloadSchema","transforms","assertEx","map","toPayloadTransformer","divineHandler","payloads","results","Promise","all","payload","fields","transform","sources","PayloadBuilder","dataHashes","schema","Object","assign","build"]}
1
+ {"version":3,"sources":["../../src/index.ts","../../src/Diviner.ts","../../src/jsonpath/toPayloadTransformer.ts"],"sourcesContent":["export * from './Diviner.js'\nexport * from './jsonpath/index.js'\n","import { assertEx } from '@xylabs/assert'\nimport { AbstractDiviner } from '@xyo-network/diviner-abstract'\nimport { JsonPathDivinerConfigSchema, JsonPathDivinerParams, PayloadTransformer } from '@xyo-network/diviner-jsonpath-model'\nimport { DivinerInstance, DivinerModuleEventData } from '@xyo-network/diviner-model'\nimport { PayloadBuilder, WithoutSchema } from '@xyo-network/payload-builder'\nimport { Payload, PayloadSchema, Schema } from '@xyo-network/payload-model'\n\nimport { toPayloadTransformer } from './jsonpath/index.js'\n\nexport class JsonPathDiviner<\n TParams extends JsonPathDivinerParams = JsonPathDivinerParams,\n TIn extends Payload = Payload,\n TOut extends Payload = Payload,\n TEventData extends DivinerModuleEventData<DivinerInstance<TParams, TIn, TOut>, TIn, TOut> = DivinerModuleEventData<\n DivinerInstance<TParams, TIn, TOut>,\n TIn,\n TOut\n >,\n> extends AbstractDiviner<TParams, TIn, TOut, TEventData> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, JsonPathDivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = 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 return 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 = this.transforms.map((transform) => transform(payload)) as WithoutSchema<TOut>[]\n // Include all the sources for reference\n const sources = await PayloadBuilder.dataHashes([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 }\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 const source = jsonpath.value(x, sourcePathExpression)\n // TODO: If the expression should return multiple values, use jsonpath.query\n // instead of jsonpath.value\n // const source =\n // isScalarJsonPathExpression(transformExpression.sourcePathExpression) ?\n // jsonpath.value(x, sourcePathExpression)\n // : jsonpath.query(x, sourcePathExpression)\n const transformed: Record<string, unknown> = {}\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,6BAA8C;AAC9C,2BAA+C;;;ACH/C,sBAAqB;AAOd,IAAMA,uBAAuB,wBAACC,wBAAAA;AACnC,QAAM,EAAEC,cAAcC,kBAAkBC,qBAAoB,IAAKH;AACjE,QAAMI,cAAkC,wBAACC,MAAAA;AACvC,UAAMC,SAASC,gBAAAA,QAASC,MAAMH,GAAGF,oBAAAA;AAOjC,UAAMM,cAAuC,CAAC;AAE9C,UAAMC,mBAAmBJ,WAAWK,SAAYV,eAAeK;AAC/D,QAAII,qBAAqBC,OAAWF,aAAYP,gBAAAA,IAAoBQ;AACpE,WAAOD;EACT,GAbwC;AAcxC,SAAOL;AACT,GAjBoC;;;ADA7B,IAAMQ,kBAAN,cASGC,wCAAAA;EAlBV,OAkBUA;;;EACR,OAAyBC,gBAA0B;OAAI,MAAMA;IAAeC;;EAC5E,OAAyBC,sBAA8BD;EAE7CE;;;;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,MAAM,kCAAA;AAC1D,WAAKJ,cAAcI,WAAWE,IAAIC,oBAAAA;IACpC;AACA,WAAO,KAAKP;EACd;EAEA,MAAyBQ,cAAcC,UAAmC;AACxE,QAAI,CAACA,SAAU,QAAO,CAAA;AAEtB,WAAO,MAAMC,QAAQC,IACnBF,SAASH,IAAmB,OAAOM,YAAAA;AAEjC,YAAMC,SAAS,KAAKT,WAAWE,IAAI,CAACQ,cAAcA,UAAUF,OAAAA,CAAAA;AAE5D,YAAMG,UAAU,MAAMC,sCAAeC,WAAW;QAACL;OAAQ;AAEzD,aAAO,MAAM,IAAII,sCAAqB;QAAEE,QAAQ,KAAKjB;MAAkB,CAAA,EAAGY,OAAOM,OAAOC,OAAO;QAAEL;MAAQ,GAAA,GAAMF,MAAAA,CAAAA,EAASQ,MAAK;IAC/H,CAAA,CAAA;EAEJ;AACF;","names":["toPayloadTransformer","transformExpression","defaultValue","destinationField","sourcePathExpression","transformer","x","source","jsonpath","value","transformed","destinationValue","undefined","JsonPathDiviner","AbstractDiviner","configSchemas","JsonPathDivinerConfigSchema","defaultConfigSchema","_transforms","destinationSchema","config","PayloadSchema","transforms","assertEx","map","toPayloadTransformer","divineHandler","payloads","Promise","all","payload","fields","transform","sources","PayloadBuilder","dataHashes","schema","Object","assign","build"]}
@@ -52,7 +52,7 @@ var JsonPathDiviner = class extends AbstractDiviner {
52
52
  }
53
53
  async divineHandler(payloads) {
54
54
  if (!payloads) return [];
55
- const results = await Promise.all(payloads.map(async (payload) => {
55
+ return await Promise.all(payloads.map(async (payload) => {
56
56
  const fields = this.transforms.map((transform) => transform(payload));
57
57
  const sources = await PayloadBuilder.dataHashes([
58
58
  payload
@@ -63,7 +63,6 @@ var JsonPathDiviner = class extends AbstractDiviner {
63
63
  sources
64
64
  }, ...fields)).build();
65
65
  }));
66
- return results;
67
66
  }
68
67
  };
69
68
  export {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Diviner.ts","../../src/jsonpath/toPayloadTransformer.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { AbstractDiviner } from '@xyo-network/diviner-abstract'\nimport { JsonPathDivinerConfigSchema, JsonPathDivinerParams, PayloadTransformer } from '@xyo-network/diviner-jsonpath-model'\nimport { DivinerInstance, DivinerModuleEventData } from '@xyo-network/diviner-model'\nimport { PayloadBuilder, WithoutSchema } from '@xyo-network/payload-builder'\nimport { Payload, PayloadSchema, Schema } from '@xyo-network/payload-model'\n\nimport { toPayloadTransformer } from './jsonpath/index.js'\n\nexport class JsonPathDiviner<\n TParams extends JsonPathDivinerParams = JsonPathDivinerParams,\n TIn extends Payload = Payload,\n TOut extends Payload = Payload,\n TEventData extends DivinerModuleEventData<DivinerInstance<TParams, TIn, TOut>, TIn, TOut> = DivinerModuleEventData<\n DivinerInstance<TParams, TIn, TOut>,\n TIn,\n TOut\n >,\n> extends AbstractDiviner<TParams, TIn, TOut, TEventData> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, JsonPathDivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = 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 = this.transforms.map((transform) => transform(payload)) as WithoutSchema<TOut>[]\n // Include all the sources for reference\n const sources = await PayloadBuilder.dataHashes([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 const source = jsonpath.value(x, sourcePathExpression)\n // TODO: If the expression should return multiple values, use jsonpath.query\n // instead of jsonpath.value\n // const source =\n // isScalarJsonPathExpression(transformExpression.sourcePathExpression) ?\n // jsonpath.value(x, sourcePathExpression)\n // : jsonpath.query(x, sourcePathExpression)\n const transformed: Record<string, unknown> = {}\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,sBAAqC;AAC9C,SAAkBC,qBAA6B;;;ACH/C,OAAOC,cAAc;AAOd,IAAMC,uBAAuB,wBAACC,wBAAAA;AACnC,QAAM,EAAEC,cAAcC,kBAAkBC,qBAAoB,IAAKH;AACjE,QAAMI,cAAkC,wBAACC,MAAAA;AACvC,UAAMC,SAASC,SAASC,MAAMH,GAAGF,oBAAAA;AAOjC,UAAMM,cAAuC,CAAC;AAE9C,UAAMC,mBAAmBJ,WAAWK,SAAYV,eAAeK;AAC/D,QAAII,qBAAqBC,OAAWF,aAAYP,gBAAAA,IAAoBQ;AACpE,WAAOD;EACT,GAbwC;AAcxC,SAAOL;AACT,GAjBoC;;;ADA7B,IAAMQ,kBAAN,cASGC,gBAAAA;EAlBV,OAkBUA;;;EACR,OAAyBC,gBAA0B;OAAI,MAAMA;IAAeC;;EAC5E,OAAyBC,sBAA8BD;EAE7CE;;;;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,MAAM,kCAAA;AAC1D,WAAKJ,cAAcI,WAAWE,IAAIC,oBAAAA;IACpC;AACA,WAAO,KAAKP;EACd;EAEA,MAAyBQ,cAAcC,UAAmC;AACxE,QAAI,CAACA,SAAU,QAAO,CAAA;AAEtB,UAAMC,UAAU,MAAMC,QAAQC,IAC5BH,SAASH,IAAmB,OAAOO,YAAAA;AAEjC,YAAMC,SAAS,KAAKV,WAAWE,IAAI,CAACS,cAAcA,UAAUF,OAAAA,CAAAA;AAE5D,YAAMG,UAAU,MAAMC,eAAeC,WAAW;QAACL;OAAQ;AAEzD,aAAO,MAAM,IAAII,eAAqB;QAAEE,QAAQ,KAAKlB;MAAkB,CAAA,EAAGa,OAAOM,OAAOC,OAAO;QAAEL;MAAQ,GAAA,GAAMF,MAAAA,CAAAA,EAASQ,MAAK;IAC/H,CAAA,CAAA;AAEF,WAAOZ;EACT;AACF;","names":["assertEx","AbstractDiviner","JsonPathDivinerConfigSchema","PayloadBuilder","PayloadSchema","jsonpath","toPayloadTransformer","transformExpression","defaultValue","destinationField","sourcePathExpression","transformer","x","source","jsonpath","value","transformed","destinationValue","undefined","JsonPathDiviner","AbstractDiviner","configSchemas","JsonPathDivinerConfigSchema","defaultConfigSchema","_transforms","destinationSchema","config","PayloadSchema","transforms","assertEx","map","toPayloadTransformer","divineHandler","payloads","results","Promise","all","payload","fields","transform","sources","PayloadBuilder","dataHashes","schema","Object","assign","build"]}
1
+ {"version":3,"sources":["../../src/Diviner.ts","../../src/jsonpath/toPayloadTransformer.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { AbstractDiviner } from '@xyo-network/diviner-abstract'\nimport { JsonPathDivinerConfigSchema, JsonPathDivinerParams, PayloadTransformer } from '@xyo-network/diviner-jsonpath-model'\nimport { DivinerInstance, DivinerModuleEventData } from '@xyo-network/diviner-model'\nimport { PayloadBuilder, WithoutSchema } from '@xyo-network/payload-builder'\nimport { Payload, PayloadSchema, Schema } from '@xyo-network/payload-model'\n\nimport { toPayloadTransformer } from './jsonpath/index.js'\n\nexport class JsonPathDiviner<\n TParams extends JsonPathDivinerParams = JsonPathDivinerParams,\n TIn extends Payload = Payload,\n TOut extends Payload = Payload,\n TEventData extends DivinerModuleEventData<DivinerInstance<TParams, TIn, TOut>, TIn, TOut> = DivinerModuleEventData<\n DivinerInstance<TParams, TIn, TOut>,\n TIn,\n TOut\n >,\n> extends AbstractDiviner<TParams, TIn, TOut, TEventData> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, JsonPathDivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = 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 return 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 = this.transforms.map((transform) => transform(payload)) as WithoutSchema<TOut>[]\n // Include all the sources for reference\n const sources = await PayloadBuilder.dataHashes([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 }\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 const source = jsonpath.value(x, sourcePathExpression)\n // TODO: If the expression should return multiple values, use jsonpath.query\n // instead of jsonpath.value\n // const source =\n // isScalarJsonPathExpression(transformExpression.sourcePathExpression) ?\n // jsonpath.value(x, sourcePathExpression)\n // : jsonpath.query(x, sourcePathExpression)\n const transformed: Record<string, unknown> = {}\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,sBAAqC;AAC9C,SAAkBC,qBAA6B;;;ACH/C,OAAOC,cAAc;AAOd,IAAMC,uBAAuB,wBAACC,wBAAAA;AACnC,QAAM,EAAEC,cAAcC,kBAAkBC,qBAAoB,IAAKH;AACjE,QAAMI,cAAkC,wBAACC,MAAAA;AACvC,UAAMC,SAASC,SAASC,MAAMH,GAAGF,oBAAAA;AAOjC,UAAMM,cAAuC,CAAC;AAE9C,UAAMC,mBAAmBJ,WAAWK,SAAYV,eAAeK;AAC/D,QAAII,qBAAqBC,OAAWF,aAAYP,gBAAAA,IAAoBQ;AACpE,WAAOD;EACT,GAbwC;AAcxC,SAAOL;AACT,GAjBoC;;;ADA7B,IAAMQ,kBAAN,cASGC,gBAAAA;EAlBV,OAkBUA;;;EACR,OAAyBC,gBAA0B;OAAI,MAAMA;IAAeC;;EAC5E,OAAyBC,sBAA8BD;EAE7CE;;;;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,MAAM,kCAAA;AAC1D,WAAKJ,cAAcI,WAAWE,IAAIC,oBAAAA;IACpC;AACA,WAAO,KAAKP;EACd;EAEA,MAAyBQ,cAAcC,UAAmC;AACxE,QAAI,CAACA,SAAU,QAAO,CAAA;AAEtB,WAAO,MAAMC,QAAQC,IACnBF,SAASH,IAAmB,OAAOM,YAAAA;AAEjC,YAAMC,SAAS,KAAKT,WAAWE,IAAI,CAACQ,cAAcA,UAAUF,OAAAA,CAAAA;AAE5D,YAAMG,UAAU,MAAMC,eAAeC,WAAW;QAACL;OAAQ;AAEzD,aAAO,MAAM,IAAII,eAAqB;QAAEE,QAAQ,KAAKjB;MAAkB,CAAA,EAAGY,OAAOM,OAAOC,OAAO;QAAEL;MAAQ,GAAA,GAAMF,MAAAA,CAAAA,EAASQ,MAAK;IAC/H,CAAA,CAAA;EAEJ;AACF;","names":["assertEx","AbstractDiviner","JsonPathDivinerConfigSchema","PayloadBuilder","PayloadSchema","jsonpath","toPayloadTransformer","transformExpression","defaultValue","destinationField","sourcePathExpression","transformer","x","source","jsonpath","value","transformed","destinationValue","undefined","JsonPathDiviner","AbstractDiviner","configSchemas","JsonPathDivinerConfigSchema","defaultConfigSchema","_transforms","destinationSchema","config","PayloadSchema","transforms","assertEx","map","toPayloadTransformer","divineHandler","payloads","Promise","all","payload","fields","transform","sources","PayloadBuilder","dataHashes","schema","Object","assign","build"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../src/Diviner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAA+B,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAA;AAC5H,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAA;AAEpF,OAAO,EAAE,OAAO,EAAiB,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAI3E,qBAAa,eAAe,CAC1B,OAAO,SAAS,qBAAqB,GAAG,qBAAqB,EAC7D,GAAG,SAAS,OAAO,GAAG,OAAO,EAC7B,IAAI,SAAS,OAAO,GAAG,OAAO,EAC9B,UAAU,SAAS,sBAAsB,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,sBAAsB,CAChH,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EACnC,GAAG,EACH,IAAI,CACL,CACD,SAAQ,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,CAAC;IACvD,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAwD;IACxG,gBAAyB,mBAAmB,EAAE,MAAM,CAA8B;IAElF,SAAS,CAAC,WAAW,EAAE,kBAAkB,EAAE,GAAG,SAAS,CAAA;IAKvD,SAAS,KAAK,iBAAiB,IAAI,MAAM,CAExC;IAKD,SAAS,KAAK,UAAU,IAAI,kBAAkB,EAAE,CAM/C;cAEwB,aAAa,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;CAe1E"}
1
+ {"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../src/Diviner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAA+B,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAA;AAC5H,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAA;AAEpF,OAAO,EAAE,OAAO,EAAiB,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAI3E,qBAAa,eAAe,CAC1B,OAAO,SAAS,qBAAqB,GAAG,qBAAqB,EAC7D,GAAG,SAAS,OAAO,GAAG,OAAO,EAC7B,IAAI,SAAS,OAAO,GAAG,OAAO,EAC9B,UAAU,SAAS,sBAAsB,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,sBAAsB,CAChH,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EACnC,GAAG,EACH,IAAI,CACL,CACD,SAAQ,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,CAAC;IACvD,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAwD;IACxG,gBAAyB,mBAAmB,EAAE,MAAM,CAA8B;IAElF,SAAS,CAAC,WAAW,EAAE,kBAAkB,EAAE,GAAG,SAAS,CAAA;IAKvD,SAAS,KAAK,iBAAiB,IAAI,MAAM,CAExC;IAKD,SAAS,KAAK,UAAU,IAAI,kBAAkB,EAAE,CAM/C;cAEwB,aAAa,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;CAc1E"}
@@ -1 +1 @@
1
- {"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../src/Diviner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAA+B,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAA;AAC5H,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAA;AAEpF,OAAO,EAAE,OAAO,EAAiB,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAI3E,qBAAa,eAAe,CAC1B,OAAO,SAAS,qBAAqB,GAAG,qBAAqB,EAC7D,GAAG,SAAS,OAAO,GAAG,OAAO,EAC7B,IAAI,SAAS,OAAO,GAAG,OAAO,EAC9B,UAAU,SAAS,sBAAsB,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,sBAAsB,CAChH,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EACnC,GAAG,EACH,IAAI,CACL,CACD,SAAQ,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,CAAC;IACvD,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAwD;IACxG,gBAAyB,mBAAmB,EAAE,MAAM,CAA8B;IAElF,SAAS,CAAC,WAAW,EAAE,kBAAkB,EAAE,GAAG,SAAS,CAAA;IAKvD,SAAS,KAAK,iBAAiB,IAAI,MAAM,CAExC;IAKD,SAAS,KAAK,UAAU,IAAI,kBAAkB,EAAE,CAM/C;cAEwB,aAAa,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;CAe1E"}
1
+ {"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../src/Diviner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAA+B,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAA;AAC5H,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAA;AAEpF,OAAO,EAAE,OAAO,EAAiB,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAI3E,qBAAa,eAAe,CAC1B,OAAO,SAAS,qBAAqB,GAAG,qBAAqB,EAC7D,GAAG,SAAS,OAAO,GAAG,OAAO,EAC7B,IAAI,SAAS,OAAO,GAAG,OAAO,EAC9B,UAAU,SAAS,sBAAsB,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,sBAAsB,CAChH,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EACnC,GAAG,EACH,IAAI,CACL,CACD,SAAQ,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,CAAC;IACvD,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAwD;IACxG,gBAAyB,mBAAmB,EAAE,MAAM,CAA8B;IAElF,SAAS,CAAC,WAAW,EAAE,kBAAkB,EAAE,GAAG,SAAS,CAAA;IAKvD,SAAS,KAAK,iBAAiB,IAAI,MAAM,CAExC;IAKD,SAAS,KAAK,UAAU,IAAI,kBAAkB,EAAE,CAM/C;cAEwB,aAAa,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;CAc1E"}
@@ -1 +1 @@
1
- {"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../src/Diviner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAA+B,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAA;AAC5H,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAA;AAEpF,OAAO,EAAE,OAAO,EAAiB,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAI3E,qBAAa,eAAe,CAC1B,OAAO,SAAS,qBAAqB,GAAG,qBAAqB,EAC7D,GAAG,SAAS,OAAO,GAAG,OAAO,EAC7B,IAAI,SAAS,OAAO,GAAG,OAAO,EAC9B,UAAU,SAAS,sBAAsB,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,sBAAsB,CAChH,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EACnC,GAAG,EACH,IAAI,CACL,CACD,SAAQ,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,CAAC;IACvD,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAwD;IACxG,gBAAyB,mBAAmB,EAAE,MAAM,CAA8B;IAElF,SAAS,CAAC,WAAW,EAAE,kBAAkB,EAAE,GAAG,SAAS,CAAA;IAKvD,SAAS,KAAK,iBAAiB,IAAI,MAAM,CAExC;IAKD,SAAS,KAAK,UAAU,IAAI,kBAAkB,EAAE,CAM/C;cAEwB,aAAa,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;CAe1E"}
1
+ {"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../src/Diviner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAA+B,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAA;AAC5H,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAA;AAEpF,OAAO,EAAE,OAAO,EAAiB,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAI3E,qBAAa,eAAe,CAC1B,OAAO,SAAS,qBAAqB,GAAG,qBAAqB,EAC7D,GAAG,SAAS,OAAO,GAAG,OAAO,EAC7B,IAAI,SAAS,OAAO,GAAG,OAAO,EAC9B,UAAU,SAAS,sBAAsB,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,sBAAsB,CAChH,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,EACnC,GAAG,EACH,IAAI,CACL,CACD,SAAQ,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,CAAC;IACvD,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAwD;IACxG,gBAAyB,mBAAmB,EAAE,MAAM,CAA8B;IAElF,SAAS,CAAC,WAAW,EAAE,kBAAkB,EAAE,GAAG,SAAS,CAAA;IAKvD,SAAS,KAAK,iBAAiB,IAAI,MAAM,CAExC;IAKD,SAAS,KAAK,UAAU,IAAI,kBAAkB,EAAE,CAM/C;cAEwB,aAAa,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;CAc1E"}
@@ -83,7 +83,7 @@ var _JsonPathDiviner = class _JsonPathDiviner extends import_diviner_abstract.Ab
83
83
  }
84
84
  async divineHandler(payloads) {
85
85
  if (!payloads) return [];
86
- const results = await Promise.all(payloads.map(async (payload) => {
86
+ return await Promise.all(payloads.map(async (payload) => {
87
87
  const fields = this.transforms.map((transform) => transform(payload));
88
88
  const sources = await import_payload_builder.PayloadBuilder.dataHashes([
89
89
  payload
@@ -94,7 +94,6 @@ var _JsonPathDiviner = class _JsonPathDiviner extends import_diviner_abstract.Ab
94
94
  sources
95
95
  }, ...fields)).build();
96
96
  }));
97
- return results;
98
97
  }
99
98
  };
100
99
  __name(_JsonPathDiviner, "JsonPathDiviner");
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts","../../src/Diviner.ts","../../src/jsonpath/toPayloadTransformer.ts"],"sourcesContent":["export * from './Diviner.js'\nexport * from './jsonpath/index.js'\n","import { assertEx } from '@xylabs/assert'\nimport { AbstractDiviner } from '@xyo-network/diviner-abstract'\nimport { JsonPathDivinerConfigSchema, JsonPathDivinerParams, PayloadTransformer } from '@xyo-network/diviner-jsonpath-model'\nimport { DivinerInstance, DivinerModuleEventData } from '@xyo-network/diviner-model'\nimport { PayloadBuilder, WithoutSchema } from '@xyo-network/payload-builder'\nimport { Payload, PayloadSchema, Schema } from '@xyo-network/payload-model'\n\nimport { toPayloadTransformer } from './jsonpath/index.js'\n\nexport class JsonPathDiviner<\n TParams extends JsonPathDivinerParams = JsonPathDivinerParams,\n TIn extends Payload = Payload,\n TOut extends Payload = Payload,\n TEventData extends DivinerModuleEventData<DivinerInstance<TParams, TIn, TOut>, TIn, TOut> = DivinerModuleEventData<\n DivinerInstance<TParams, TIn, TOut>,\n TIn,\n TOut\n >,\n> extends AbstractDiviner<TParams, TIn, TOut, TEventData> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, JsonPathDivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = 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 = this.transforms.map((transform) => transform(payload)) as WithoutSchema<TOut>[]\n // Include all the sources for reference\n const sources = await PayloadBuilder.dataHashes([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 const source = jsonpath.value(x, sourcePathExpression)\n // TODO: If the expression should return multiple values, use jsonpath.query\n // instead of jsonpath.value\n // const source =\n // isScalarJsonPathExpression(transformExpression.sourcePathExpression) ?\n // jsonpath.value(x, sourcePathExpression)\n // : jsonpath.query(x, sourcePathExpression)\n const transformed: Record<string, unknown> = {}\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,6BAA8C;AAC9C,2BAA+C;;;ACH/C,sBAAqB;AAOd,IAAMA,uBAAuB,wBAACC,wBAAAA;AACnC,QAAM,EAAEC,cAAcC,kBAAkBC,qBAAoB,IAAKH;AACjE,QAAMI,cAAkC,wBAACC,MAAAA;AACvC,UAAMC,SAASC,gBAAAA,QAASC,MAAMH,GAAGF,oBAAAA;AAOjC,UAAMM,cAAuC,CAAC;AAE9C,UAAMC,mBAAmBJ,WAAWK,SAAYV,eAAeK;AAC/D,QAAII,qBAAqBC,OAAWF,aAAYP,gBAAAA,IAAoBQ;AACpE,WAAOD;EACT,GAbwC;AAcxC,SAAOL;AACT,GAjBoC;;;ADA7B,IAAMQ,mBAAN,MAAMA,yBASHC,wCAAAA;EAIEC;;;;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,MAAM,kCAAA;AAC1D,WAAKJ,cAAcI,WAAWE,IAAIC,oBAAAA;IACpC;AACA,WAAO,KAAKP;EACd;EAEA,MAAyBQ,cAAcC,UAAmC;AACxE,QAAI,CAACA,SAAU,QAAO,CAAA;AAEtB,UAAMC,UAAU,MAAMC,QAAQC,IAC5BH,SAASH,IAAmB,OAAOO,YAAAA;AAEjC,YAAMC,SAAS,KAAKV,WAAWE,IAAI,CAACS,cAAcA,UAAUF,OAAAA,CAAAA;AAE5D,YAAMG,UAAU,MAAMC,sCAAeC,WAAW;QAACL;OAAQ;AAEzD,aAAO,MAAM,IAAII,sCAAqB;QAAEE,QAAQ,KAAKlB;MAAkB,CAAA,EAAGa,OAAOM,OAAOC,OAAO;QAAEL;MAAQ,GAAA,GAAMF,MAAAA,CAAAA,EAASQ,MAAK;IAC/H,CAAA,CAAA;AAEF,WAAOZ;EACT;AACF;AAvCUX;AACR,cAVWD,kBAUcyB,iBAA0B;KAAI,+CAAMA;EAAeC;;AAC5E,cAXW1B,kBAWc2B,uBAA8BD;AAXlD,IAAM1B,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","PayloadBuilder","dataHashes","schema","Object","assign","build","configSchemas","JsonPathDivinerConfigSchema","defaultConfigSchema"]}
1
+ {"version":3,"sources":["../../src/index.ts","../../src/Diviner.ts","../../src/jsonpath/toPayloadTransformer.ts"],"sourcesContent":["export * from './Diviner.js'\nexport * from './jsonpath/index.js'\n","import { assertEx } from '@xylabs/assert'\nimport { AbstractDiviner } from '@xyo-network/diviner-abstract'\nimport { JsonPathDivinerConfigSchema, JsonPathDivinerParams, PayloadTransformer } from '@xyo-network/diviner-jsonpath-model'\nimport { DivinerInstance, DivinerModuleEventData } from '@xyo-network/diviner-model'\nimport { PayloadBuilder, WithoutSchema } from '@xyo-network/payload-builder'\nimport { Payload, PayloadSchema, Schema } from '@xyo-network/payload-model'\n\nimport { toPayloadTransformer } from './jsonpath/index.js'\n\nexport class JsonPathDiviner<\n TParams extends JsonPathDivinerParams = JsonPathDivinerParams,\n TIn extends Payload = Payload,\n TOut extends Payload = Payload,\n TEventData extends DivinerModuleEventData<DivinerInstance<TParams, TIn, TOut>, TIn, TOut> = DivinerModuleEventData<\n DivinerInstance<TParams, TIn, TOut>,\n TIn,\n TOut\n >,\n> extends AbstractDiviner<TParams, TIn, TOut, TEventData> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, JsonPathDivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = 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 return 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 = this.transforms.map((transform) => transform(payload)) as WithoutSchema<TOut>[]\n // Include all the sources for reference\n const sources = await PayloadBuilder.dataHashes([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 }\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 const source = jsonpath.value(x, sourcePathExpression)\n // TODO: If the expression should return multiple values, use jsonpath.query\n // instead of jsonpath.value\n // const source =\n // isScalarJsonPathExpression(transformExpression.sourcePathExpression) ?\n // jsonpath.value(x, sourcePathExpression)\n // : jsonpath.query(x, sourcePathExpression)\n const transformed: Record<string, unknown> = {}\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,6BAA8C;AAC9C,2BAA+C;;;ACH/C,sBAAqB;AAOd,IAAMA,uBAAuB,wBAACC,wBAAAA;AACnC,QAAM,EAAEC,cAAcC,kBAAkBC,qBAAoB,IAAKH;AACjE,QAAMI,cAAkC,wBAACC,MAAAA;AACvC,UAAMC,SAASC,gBAAAA,QAASC,MAAMH,GAAGF,oBAAAA;AAOjC,UAAMM,cAAuC,CAAC;AAE9C,UAAMC,mBAAmBJ,WAAWK,SAAYV,eAAeK;AAC/D,QAAII,qBAAqBC,OAAWF,aAAYP,gBAAAA,IAAoBQ;AACpE,WAAOD;EACT,GAbwC;AAcxC,SAAOL;AACT,GAjBoC;;;ADA7B,IAAMQ,mBAAN,MAAMA,yBASHC,wCAAAA;EAIEC;;;;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,MAAM,kCAAA;AAC1D,WAAKJ,cAAcI,WAAWE,IAAIC,oBAAAA;IACpC;AACA,WAAO,KAAKP;EACd;EAEA,MAAyBQ,cAAcC,UAAmC;AACxE,QAAI,CAACA,SAAU,QAAO,CAAA;AAEtB,WAAO,MAAMC,QAAQC,IACnBF,SAASH,IAAmB,OAAOM,YAAAA;AAEjC,YAAMC,SAAS,KAAKT,WAAWE,IAAI,CAACQ,cAAcA,UAAUF,OAAAA,CAAAA;AAE5D,YAAMG,UAAU,MAAMC,sCAAeC,WAAW;QAACL;OAAQ;AAEzD,aAAO,MAAM,IAAII,sCAAqB;QAAEE,QAAQ,KAAKjB;MAAkB,CAAA,EAAGY,OAAOM,OAAOC,OAAO;QAAEL;MAAQ,GAAA,GAAMF,MAAAA,CAAAA,EAASQ,MAAK;IAC/H,CAAA,CAAA;EAEJ;AACF;AAtCUtB;AACR,cAVWD,kBAUcwB,iBAA0B;KAAI,+CAAMA;EAAeC;;AAC5E,cAXWzB,kBAWc0B,uBAA8BD;AAXlD,IAAMzB,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","Promise","all","payload","fields","transform","sources","PayloadBuilder","dataHashes","schema","Object","assign","build","configSchemas","JsonPathDivinerConfigSchema","defaultConfigSchema"]}
@@ -49,7 +49,7 @@ var _JsonPathDiviner = class _JsonPathDiviner extends AbstractDiviner {
49
49
  }
50
50
  async divineHandler(payloads) {
51
51
  if (!payloads) return [];
52
- const results = await Promise.all(payloads.map(async (payload) => {
52
+ return await Promise.all(payloads.map(async (payload) => {
53
53
  const fields = this.transforms.map((transform) => transform(payload));
54
54
  const sources = await PayloadBuilder.dataHashes([
55
55
  payload
@@ -60,7 +60,6 @@ var _JsonPathDiviner = class _JsonPathDiviner extends AbstractDiviner {
60
60
  sources
61
61
  }, ...fields)).build();
62
62
  }));
63
- return results;
64
63
  }
65
64
  };
66
65
  __name(_JsonPathDiviner, "JsonPathDiviner");
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Diviner.ts","../../src/jsonpath/toPayloadTransformer.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { AbstractDiviner } from '@xyo-network/diviner-abstract'\nimport { JsonPathDivinerConfigSchema, JsonPathDivinerParams, PayloadTransformer } from '@xyo-network/diviner-jsonpath-model'\nimport { DivinerInstance, DivinerModuleEventData } from '@xyo-network/diviner-model'\nimport { PayloadBuilder, WithoutSchema } from '@xyo-network/payload-builder'\nimport { Payload, PayloadSchema, Schema } from '@xyo-network/payload-model'\n\nimport { toPayloadTransformer } from './jsonpath/index.js'\n\nexport class JsonPathDiviner<\n TParams extends JsonPathDivinerParams = JsonPathDivinerParams,\n TIn extends Payload = Payload,\n TOut extends Payload = Payload,\n TEventData extends DivinerModuleEventData<DivinerInstance<TParams, TIn, TOut>, TIn, TOut> = DivinerModuleEventData<\n DivinerInstance<TParams, TIn, TOut>,\n TIn,\n TOut\n >,\n> extends AbstractDiviner<TParams, TIn, TOut, TEventData> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, JsonPathDivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = 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 = this.transforms.map((transform) => transform(payload)) as WithoutSchema<TOut>[]\n // Include all the sources for reference\n const sources = await PayloadBuilder.dataHashes([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 const source = jsonpath.value(x, sourcePathExpression)\n // TODO: If the expression should return multiple values, use jsonpath.query\n // instead of jsonpath.value\n // const source =\n // isScalarJsonPathExpression(transformExpression.sourcePathExpression) ?\n // jsonpath.value(x, sourcePathExpression)\n // : jsonpath.query(x, sourcePathExpression)\n const transformed: Record<string, unknown> = {}\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,sBAAqC;AAC9C,SAAkBC,qBAA6B;;;ACH/C,OAAOC,cAAc;AAOd,IAAMC,uBAAuB,wBAACC,wBAAAA;AACnC,QAAM,EAAEC,cAAcC,kBAAkBC,qBAAoB,IAAKH;AACjE,QAAMI,cAAkC,wBAACC,MAAAA;AACvC,UAAMC,SAASC,SAASC,MAAMH,GAAGF,oBAAAA;AAOjC,UAAMM,cAAuC,CAAC;AAE9C,UAAMC,mBAAmBJ,WAAWK,SAAYV,eAAeK;AAC/D,QAAII,qBAAqBC,OAAWF,aAAYP,gBAAAA,IAAoBQ;AACpE,WAAOD;EACT,GAbwC;AAcxC,SAAOL;AACT,GAjBoC;;;ADA7B,IAAMQ,mBAAN,MAAMA,yBASHC,gBAAAA;EAIEC;;;;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,MAAM,kCAAA;AAC1D,WAAKJ,cAAcI,WAAWE,IAAIC,oBAAAA;IACpC;AACA,WAAO,KAAKP;EACd;EAEA,MAAyBQ,cAAcC,UAAmC;AACxE,QAAI,CAACA,SAAU,QAAO,CAAA;AAEtB,UAAMC,UAAU,MAAMC,QAAQC,IAC5BH,SAASH,IAAmB,OAAOO,YAAAA;AAEjC,YAAMC,SAAS,KAAKV,WAAWE,IAAI,CAACS,cAAcA,UAAUF,OAAAA,CAAAA;AAE5D,YAAMG,UAAU,MAAMC,eAAeC,WAAW;QAACL;OAAQ;AAEzD,aAAO,MAAM,IAAII,eAAqB;QAAEE,QAAQ,KAAKlB;MAAkB,CAAA,EAAGa,OAAOM,OAAOC,OAAO;QAAEL;MAAQ,GAAA,GAAMF,MAAAA,CAAAA,EAASQ,MAAK;IAC/H,CAAA,CAAA;AAEF,WAAOZ;EACT;AACF;AAvCUX;AACR,cAVWD,kBAUcyB,iBAA0B;KAAI,+CAAMA;EAAeC;;AAC5E,cAXW1B,kBAWc2B,uBAA8BD;AAXlD,IAAM1B,kBAAN;","names":["assertEx","AbstractDiviner","JsonPathDivinerConfigSchema","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","PayloadBuilder","dataHashes","schema","Object","assign","build","configSchemas","JsonPathDivinerConfigSchema","defaultConfigSchema"]}
1
+ {"version":3,"sources":["../../src/Diviner.ts","../../src/jsonpath/toPayloadTransformer.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { AbstractDiviner } from '@xyo-network/diviner-abstract'\nimport { JsonPathDivinerConfigSchema, JsonPathDivinerParams, PayloadTransformer } from '@xyo-network/diviner-jsonpath-model'\nimport { DivinerInstance, DivinerModuleEventData } from '@xyo-network/diviner-model'\nimport { PayloadBuilder, WithoutSchema } from '@xyo-network/payload-builder'\nimport { Payload, PayloadSchema, Schema } from '@xyo-network/payload-model'\n\nimport { toPayloadTransformer } from './jsonpath/index.js'\n\nexport class JsonPathDiviner<\n TParams extends JsonPathDivinerParams = JsonPathDivinerParams,\n TIn extends Payload = Payload,\n TOut extends Payload = Payload,\n TEventData extends DivinerModuleEventData<DivinerInstance<TParams, TIn, TOut>, TIn, TOut> = DivinerModuleEventData<\n DivinerInstance<TParams, TIn, TOut>,\n TIn,\n TOut\n >,\n> extends AbstractDiviner<TParams, TIn, TOut, TEventData> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, JsonPathDivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = 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 return 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 = this.transforms.map((transform) => transform(payload)) as WithoutSchema<TOut>[]\n // Include all the sources for reference\n const sources = await PayloadBuilder.dataHashes([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 }\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 const source = jsonpath.value(x, sourcePathExpression)\n // TODO: If the expression should return multiple values, use jsonpath.query\n // instead of jsonpath.value\n // const source =\n // isScalarJsonPathExpression(transformExpression.sourcePathExpression) ?\n // jsonpath.value(x, sourcePathExpression)\n // : jsonpath.query(x, sourcePathExpression)\n const transformed: Record<string, unknown> = {}\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,sBAAqC;AAC9C,SAAkBC,qBAA6B;;;ACH/C,OAAOC,cAAc;AAOd,IAAMC,uBAAuB,wBAACC,wBAAAA;AACnC,QAAM,EAAEC,cAAcC,kBAAkBC,qBAAoB,IAAKH;AACjE,QAAMI,cAAkC,wBAACC,MAAAA;AACvC,UAAMC,SAASC,SAASC,MAAMH,GAAGF,oBAAAA;AAOjC,UAAMM,cAAuC,CAAC;AAE9C,UAAMC,mBAAmBJ,WAAWK,SAAYV,eAAeK;AAC/D,QAAII,qBAAqBC,OAAWF,aAAYP,gBAAAA,IAAoBQ;AACpE,WAAOD;EACT,GAbwC;AAcxC,SAAOL;AACT,GAjBoC;;;ADA7B,IAAMQ,mBAAN,MAAMA,yBASHC,gBAAAA;EAIEC;;;;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,MAAM,kCAAA;AAC1D,WAAKJ,cAAcI,WAAWE,IAAIC,oBAAAA;IACpC;AACA,WAAO,KAAKP;EACd;EAEA,MAAyBQ,cAAcC,UAAmC;AACxE,QAAI,CAACA,SAAU,QAAO,CAAA;AAEtB,WAAO,MAAMC,QAAQC,IACnBF,SAASH,IAAmB,OAAOM,YAAAA;AAEjC,YAAMC,SAAS,KAAKT,WAAWE,IAAI,CAACQ,cAAcA,UAAUF,OAAAA,CAAAA;AAE5D,YAAMG,UAAU,MAAMC,eAAeC,WAAW;QAACL;OAAQ;AAEzD,aAAO,MAAM,IAAII,eAAqB;QAAEE,QAAQ,KAAKjB;MAAkB,CAAA,EAAGY,OAAOM,OAAOC,OAAO;QAAEL;MAAQ,GAAA,GAAMF,MAAAA,CAAAA,EAASQ,MAAK;IAC/H,CAAA,CAAA;EAEJ;AACF;AAtCUtB;AACR,cAVWD,kBAUcwB,iBAA0B;KAAI,+CAAMA;EAAeC;;AAC5E,cAXWzB,kBAWc0B,uBAA8BD;AAXlD,IAAMzB,kBAAN;","names":["assertEx","AbstractDiviner","JsonPathDivinerConfigSchema","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","Promise","all","payload","fields","transform","sources","PayloadBuilder","dataHashes","schema","Object","assign","build","configSchemas","JsonPathDivinerConfigSchema","defaultConfigSchema"]}
package/package.json CHANGED
@@ -10,19 +10,20 @@
10
10
  "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/issues"
11
11
  },
12
12
  "dependencies": {
13
- "@xylabs/assert": "^3.6.4",
14
- "@xyo-network/diviner-abstract": "^2.110.10",
15
- "@xyo-network/diviner-jsonpath-model": "^2.110.10",
16
- "@xyo-network/diviner-model": "^2.110.10",
17
- "@xyo-network/payload-builder": "^2.110.10",
18
- "@xyo-network/payload-model": "^2.110.10",
13
+ "@xylabs/assert": "^3.6.5",
14
+ "@xyo-network/diviner-abstract": "^2.110.12",
15
+ "@xyo-network/diviner-jsonpath-model": "^2.110.12",
16
+ "@xyo-network/diviner-model": "^2.110.12",
17
+ "@xyo-network/payload-builder": "^2.110.12",
18
+ "@xyo-network/payload-model": "^2.110.12",
19
19
  "jsonpath": "^1.1.1"
20
20
  },
21
21
  "devDependencies": {
22
- "@xylabs/ts-scripts-yarn3": "^3.12.4",
23
- "@xylabs/tsconfig": "^3.12.4",
24
- "@xyo-network/account": "^2.110.10",
25
- "@xyo-network/wallet-model": "^2.110.10",
22
+ "@types/jsonpath": "^0.2.4",
23
+ "@xylabs/ts-scripts-yarn3": "^3.13.9",
24
+ "@xylabs/tsconfig": "^3.13.9",
25
+ "@xyo-network/account": "^2.110.12",
26
+ "@xyo-network/wallet-model": "^2.110.12",
26
27
  "typescript": "^5.5.4"
27
28
  },
28
29
  "description": "Primary SDK for using XYO Protocol 2.0",
@@ -64,6 +65,6 @@
64
65
  "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js.git"
65
66
  },
66
67
  "sideEffects": false,
67
- "version": "2.110.10",
68
+ "version": "2.110.12",
68
69
  "type": "module"
69
70
  }
package/src/Diviner.ts CHANGED
@@ -43,7 +43,7 @@ export class JsonPathDiviner<
43
43
  protected override async divineHandler(payloads?: TIn[]): Promise<TOut[]> {
44
44
  if (!payloads) return []
45
45
  // Create the indexes from the tuples
46
- const results = await Promise.all(
46
+ return await Promise.all(
47
47
  payloads.map<Promise<TOut>>(async (payload) => {
48
48
  // Use the payload transformers to convert the fields from the source payloads to the destination fields
49
49
  const fields = this.transforms.map((transform) => transform(payload)) as WithoutSchema<TOut>[]
@@ -53,6 +53,5 @@ export class JsonPathDiviner<
53
53
  return await new PayloadBuilder<TOut>({ schema: this.destinationSchema }).fields(Object.assign({ sources }, ...fields)).build()
54
54
  }),
55
55
  )
56
- return results
57
56
  }
58
57
  }