@xyo-network/diviner-image-thumbnail 2.84.0 → 2.84.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,39 +1,5 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
-
20
- // src/index.ts
21
- var src_exports = {};
22
- __export(src_exports, {
23
- ImageThumbnailDiviner: () => ImageThumbnailDiviner,
24
- ImageThumbnailDivinerLabels: () => ImageThumbnailDivinerLabels,
25
- ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner: () => ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner,
26
- ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner: () => ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner,
27
- ImageThumbnailQueryToImageThumbnailIndexQueryDiviner: () => ImageThumbnailQueryToImageThumbnailIndexQueryDiviner,
28
- ImageThumbnailStateToIndexCandidateDiviner: () => ImageThumbnailStateToIndexCandidateDiviner,
29
- ImageThumbnailStateToIndexCandidateDivinerConfigSchema: () => ImageThumbnailStateToIndexCandidateDivinerConfigSchema,
30
- ImageThumbnailStateToIndexCandidateDivinerSchema: () => ImageThumbnailStateToIndexCandidateDivinerSchema,
31
- isImageThumbnailResultQuery: () => isImageThumbnailResultQuery
32
- });
33
- module.exports = __toCommonJS(src_exports);
34
-
35
1
  // src/Diviner/Diviner.ts
36
- var import_diviner_indexing = require("@xyo-network/diviner-indexing");
2
+ import { IndexingDiviner } from "@xyo-network/diviner-indexing";
37
3
 
38
4
  // src/Diviner/ImageThumbnailDivinerLabels.ts
39
5
  var ImageThumbnailDivinerLabels = {
@@ -41,40 +7,44 @@ var ImageThumbnailDivinerLabels = {
41
7
  };
42
8
 
43
9
  // src/Diviner/Diviner.ts
44
- var ImageThumbnailDiviner = class extends import_diviner_indexing.IndexingDiviner {
10
+ var ImageThumbnailDiviner = class extends IndexingDiviner {
45
11
  static labels = ImageThumbnailDivinerLabels;
46
12
  };
47
13
 
48
14
  // src/Diviner/ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner.ts
49
- var import_abstract_diviner = require("@xyo-network/abstract-diviner");
50
- var import_boundwitness_model = require("@xyo-network/boundwitness-model");
51
- var import_core = require("@xyo-network/core");
52
- var import_diviner_model = require("@xyo-network/diviner-model");
53
- var import_image_thumbnail_payload_plugin = require("@xyo-network/image-thumbnail-payload-plugin");
54
- var import_payload_builder = require("@xyo-network/payload-builder");
55
- var import_url_payload_plugin = require("@xyo-network/url-payload-plugin");
56
- var import_witness_timestamp = require("@xyo-network/witness-timestamp");
57
- var ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner = class extends import_abstract_diviner.AbstractDiviner {
58
- static configSchemas = [import_diviner_model.DivinerConfigSchema];
15
+ import { AbstractDiviner } from "@xyo-network/abstract-diviner";
16
+ import { isBoundWitness } from "@xyo-network/boundwitness-model";
17
+ import { DivinerConfigSchema } from "@xyo-network/diviner-model";
18
+ import { PayloadHasher } from "@xyo-network/hash";
19
+ import {
20
+ ImageThumbnailResultIndexSchema,
21
+ ImageThumbnailSchema,
22
+ isImageThumbnail
23
+ } from "@xyo-network/image-thumbnail-payload-plugin";
24
+ import { PayloadBuilder } from "@xyo-network/payload-builder";
25
+ import { UrlSchema } from "@xyo-network/url-payload-plugin";
26
+ import { isTimestamp, TimestampSchema } from "@xyo-network/witness-timestamp";
27
+ var ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner = class extends AbstractDiviner {
28
+ static configSchemas = [DivinerConfigSchema];
59
29
  static labels = {
60
30
  ...ImageThumbnailDivinerLabels,
61
31
  "network.xyo.diviner.stage": "indexCandidateToIndexDiviner"
62
32
  };
63
33
  async divineHandler(payloads = []) {
64
- const bws = payloads.filter(import_boundwitness_model.isBoundWitness);
65
- const imageThumbnailPayloads = payloads.filter(import_image_thumbnail_payload_plugin.isImageThumbnail);
66
- const timestampPayloads = payloads.filter(import_witness_timestamp.isTimestamp);
34
+ const bws = payloads.filter(isBoundWitness);
35
+ const imageThumbnailPayloads = payloads.filter(isImageThumbnail);
36
+ const timestampPayloads = payloads.filter(isTimestamp);
67
37
  if (bws.length && imageThumbnailPayloads.length && timestampPayloads.length) {
68
- const payloadDictionary = await import_core.PayloadHasher.toMap(payloads);
38
+ const payloadDictionary = await PayloadHasher.toMap(payloads);
69
39
  const tuples = bws.reduce(
70
40
  (acc, curr) => {
71
41
  var _a, _b, _c, _d;
72
- const imageThumbnailIndex = (_a = curr.payload_schemas) == null ? void 0 : _a.findIndex((schema) => schema === import_image_thumbnail_payload_plugin.ImageThumbnailSchema);
73
- const timestampIndex = (_b = curr.payload_schemas) == null ? void 0 : _b.findIndex((schema) => schema === import_witness_timestamp.TimestampSchema);
42
+ const imageThumbnailIndex = (_a = curr.payload_schemas) == null ? void 0 : _a.findIndex((schema) => schema === ImageThumbnailSchema);
43
+ const timestampIndex = (_b = curr.payload_schemas) == null ? void 0 : _b.findIndex((schema) => schema === TimestampSchema);
74
44
  const imageThumbnailHash = (_c = curr.payload_hashes) == null ? void 0 : _c[imageThumbnailIndex];
75
45
  const timestampHash = (_d = curr.payload_hashes) == null ? void 0 : _d[timestampIndex];
76
- const imageThumbnailPayload = [payloadDictionary[imageThumbnailHash]].find(import_image_thumbnail_payload_plugin.isImageThumbnail);
77
- const timestampPayload = [payloadDictionary[timestampHash]].find(import_witness_timestamp.isTimestamp);
46
+ const imageThumbnailPayload = [payloadDictionary[imageThumbnailHash]].find(isImageThumbnail);
47
+ const timestampPayload = [payloadDictionary[timestampHash]].find(isTimestamp);
78
48
  if (imageThumbnailPayload && timestampPayload)
79
49
  acc.push([curr, imageThumbnailPayload, timestampPayload]);
80
50
  return acc;
@@ -88,13 +58,13 @@ var ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner = class extends imp
88
58
  const { timestamp } = timestampPayload;
89
59
  const status = (_a = imageThumbnailPayload.http) == null ? void 0 : _a.status;
90
60
  const success = !!imageThumbnailPayload.url;
91
- const sources = (await import_core.PayloadHasher.hashPairs([bw, imageThumbnailPayload, timestampPayload])).map(([, hash]) => hash);
92
- const urlPayload = { schema: import_url_payload_plugin.UrlSchema, url };
93
- const key = await import_core.PayloadHasher.hashAsync(urlPayload);
61
+ const sources = (await PayloadHasher.hashPairs([bw, imageThumbnailPayload, timestampPayload])).map(([, hash]) => hash);
62
+ const urlPayload = { schema: UrlSchema, url };
63
+ const key = await PayloadHasher.hashAsync(urlPayload);
94
64
  const fields = { key, sources, success, timestamp };
95
65
  if (status)
96
66
  fields.status = status;
97
- const result = await new import_payload_builder.PayloadBuilder({ schema: import_image_thumbnail_payload_plugin.ImageThumbnailResultIndexSchema }).fields(fields).build();
67
+ const result = await new PayloadBuilder({ schema: ImageThumbnailResultIndexSchema }).fields(fields).build();
98
68
  return [result];
99
69
  })
100
70
  );
@@ -105,29 +75,33 @@ var ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner = class extends imp
105
75
  };
106
76
 
107
77
  // src/Diviner/ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner.ts
108
- var import_exists = require("@xylabs/exists");
109
- var import_abstract_diviner2 = require("@xyo-network/abstract-diviner");
110
- var import_core2 = require("@xyo-network/core");
111
- var import_diviner_model2 = require("@xyo-network/diviner-model");
112
- var import_image_thumbnail_payload_plugin2 = require("@xyo-network/image-thumbnail-payload-plugin");
113
- var import_payload_builder2 = require("@xyo-network/payload-builder");
114
- var import_url_payload_plugin2 = require("@xyo-network/url-payload-plugin");
115
- var ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner = class extends import_abstract_diviner2.AbstractDiviner {
116
- static configSchemas = [import_diviner_model2.DivinerConfigSchema];
78
+ import { exists } from "@xylabs/exists";
79
+ import { AbstractDiviner as AbstractDiviner2 } from "@xyo-network/abstract-diviner";
80
+ import { DivinerConfigSchema as DivinerConfigSchema2 } from "@xyo-network/diviner-model";
81
+ import { PayloadHasher as PayloadHasher2 } from "@xyo-network/hash";
82
+ import {
83
+ ImageThumbnailResultSchema,
84
+ isImageThumbnailDivinerQuery,
85
+ isImageThumbnailResultIndex
86
+ } from "@xyo-network/image-thumbnail-payload-plugin";
87
+ import { PayloadBuilder as PayloadBuilder2 } from "@xyo-network/payload-builder";
88
+ import { UrlSchema as UrlSchema2 } from "@xyo-network/url-payload-plugin";
89
+ var ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner = class extends AbstractDiviner2 {
90
+ static configSchemas = [DivinerConfigSchema2];
117
91
  static labels = {
118
92
  ...ImageThumbnailDivinerLabels,
119
93
  "network.xyo.diviner.stage": "indexQueryResponseToDivinerQueryResponseDiviner"
120
94
  };
121
95
  async divineHandler(payloads = []) {
122
- const imageThumbnailDivinerQueries = payloads.filter(import_image_thumbnail_payload_plugin2.isImageThumbnailDivinerQuery);
123
- const imageThumbnailResultIndexes = payloads.filter(import_image_thumbnail_payload_plugin2.isImageThumbnailResultIndex);
96
+ const imageThumbnailDivinerQueries = payloads.filter(isImageThumbnailDivinerQuery);
97
+ const imageThumbnailResultIndexes = payloads.filter(isImageThumbnailResultIndex);
124
98
  if (imageThumbnailDivinerQueries.length && imageThumbnailResultIndexes.length) {
125
99
  const keyToUrlDictionary = Object.fromEntries(
126
100
  await Promise.all(
127
101
  imageThumbnailDivinerQueries.map(async (imageThumbnailDivinerQuery) => {
128
102
  const { url } = imageThumbnailDivinerQuery;
129
- const urlPayload = await new import_payload_builder2.PayloadBuilder({ schema: import_url_payload_plugin2.UrlSchema }).fields({ url }).build();
130
- const key = await import_core2.PayloadHasher.hashAsync(urlPayload);
103
+ const urlPayload = await new PayloadBuilder2({ schema: UrlSchema2 }).fields({ url }).build();
104
+ const key = await PayloadHasher2.hashAsync(urlPayload);
131
105
  return [key, url];
132
106
  })
133
107
  )
@@ -138,31 +112,31 @@ var ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner = class
138
112
  const url = keyToUrlDictionary == null ? void 0 : keyToUrlDictionary[key];
139
113
  if (url) {
140
114
  const fields = { ...commonFields, url };
141
- return await new import_payload_builder2.PayloadBuilder({ schema: import_image_thumbnail_payload_plugin2.ImageThumbnailResultSchema }).fields(fields).build();
115
+ return await new PayloadBuilder2({ schema: ImageThumbnailResultSchema }).fields(fields).build();
142
116
  }
143
117
  })
144
- )).filter(import_exists.exists);
118
+ )).filter(exists);
145
119
  }
146
120
  return [];
147
121
  }
148
122
  };
149
123
 
150
124
  // src/Diviner/ImageThumbnailQueryToImageThumbnailIndexQueryDiviner.ts
151
- var import_abstract_diviner3 = require("@xyo-network/abstract-diviner");
152
- var import_core3 = require("@xyo-network/core");
153
- var import_diviner_model3 = require("@xyo-network/diviner-model");
154
- var import_diviner_payload_model = require("@xyo-network/diviner-payload-model");
155
- var import_image_thumbnail_payload_plugin3 = require("@xyo-network/image-thumbnail-payload-plugin");
156
- var import_payload_builder3 = require("@xyo-network/payload-builder");
157
- var import_url_payload_plugin3 = require("@xyo-network/url-payload-plugin");
158
- var ImageThumbnailQueryToImageThumbnailIndexQueryDiviner = class extends import_abstract_diviner3.AbstractDiviner {
159
- static configSchemas = [import_diviner_model3.DivinerConfigSchema];
125
+ import { AbstractDiviner as AbstractDiviner3 } from "@xyo-network/abstract-diviner";
126
+ import { DivinerConfigSchema as DivinerConfigSchema3 } from "@xyo-network/diviner-model";
127
+ import { PayloadDivinerQuerySchema } from "@xyo-network/diviner-payload-model";
128
+ import { PayloadHasher as PayloadHasher3 } from "@xyo-network/hash";
129
+ import { isImageThumbnailDivinerQuery as isImageThumbnailDivinerQuery2 } from "@xyo-network/image-thumbnail-payload-plugin";
130
+ import { PayloadBuilder as PayloadBuilder3 } from "@xyo-network/payload-builder";
131
+ import { UrlSchema as UrlSchema3 } from "@xyo-network/url-payload-plugin";
132
+ var ImageThumbnailQueryToImageThumbnailIndexQueryDiviner = class extends AbstractDiviner3 {
133
+ static configSchemas = [DivinerConfigSchema3];
160
134
  static labels = {
161
135
  ...ImageThumbnailDivinerLabels,
162
136
  "network.xyo.diviner.stage": "divinerQueryToIndexQueryDiviner"
163
137
  };
164
138
  async divineHandler(payloads = []) {
165
- const queries = payloads.filter(import_image_thumbnail_payload_plugin3.isImageThumbnailDivinerQuery);
139
+ const queries = payloads.filter(isImageThumbnailDivinerQuery2);
166
140
  if (queries.length) {
167
141
  const results = await Promise.all(
168
142
  queries.map(async (query) => {
@@ -170,14 +144,14 @@ var ImageThumbnailQueryToImageThumbnailIndexQueryDiviner = class extends import_
170
144
  const limit = payloadLimit ?? 1;
171
145
  const order2 = payloadOrder ?? "desc";
172
146
  const offset = payloadOffset ?? 0;
173
- const urlPayload = { schema: import_url_payload_plugin3.UrlSchema, url };
174
- const key = await import_core3.PayloadHasher.hashAsync(urlPayload);
147
+ const urlPayload = { schema: UrlSchema3, url };
148
+ const key = await PayloadHasher3.hashAsync(urlPayload);
175
149
  const fields = { key, limit, offset, order: order2 };
176
150
  if (payloadSuccess !== void 0)
177
151
  fields.success = payloadSuccess;
178
152
  if (payloadStatus !== void 0)
179
153
  fields.status = payloadStatus;
180
- return await new import_payload_builder3.PayloadBuilder({ schema: import_diviner_payload_model.PayloadDivinerQuerySchema }).fields(fields).build();
154
+ return await new PayloadBuilder3({ schema: PayloadDivinerQuerySchema }).fields(fields).build();
181
155
  })
182
156
  );
183
157
  return results;
@@ -187,36 +161,36 @@ var ImageThumbnailQueryToImageThumbnailIndexQueryDiviner = class extends import_
187
161
  };
188
162
 
189
163
  // src/Diviner/ImageThumbnailResultQuery.ts
190
- var import_diviner_payload_model2 = require("@xyo-network/diviner-payload-model");
191
- var import_payload_model = require("@xyo-network/payload-model");
192
- var isImageThumbnailResultQuery = (0, import_payload_model.isPayloadOfSchemaType)(import_diviner_payload_model2.PayloadDivinerQuerySchema);
164
+ import { PayloadDivinerQuerySchema as PayloadDivinerQuerySchema2 } from "@xyo-network/diviner-payload-model";
165
+ import { isPayloadOfSchemaType } from "@xyo-network/payload-model";
166
+ var isImageThumbnailResultQuery = isPayloadOfSchemaType(PayloadDivinerQuerySchema2);
193
167
 
194
168
  // src/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Schema.ts
195
- var import_image_thumbnail_payload_plugin4 = require("@xyo-network/image-thumbnail-payload-plugin");
196
- var ImageThumbnailStateToIndexCandidateDivinerSchema = `${import_image_thumbnail_payload_plugin4.ImageThumbnailDivinerSchema}.stage.stateToIndexCandidateDiviner`;
169
+ import { ImageThumbnailDivinerSchema } from "@xyo-network/image-thumbnail-payload-plugin";
170
+ var ImageThumbnailStateToIndexCandidateDivinerSchema = `${ImageThumbnailDivinerSchema}.stage.stateToIndexCandidateDiviner`;
197
171
 
198
172
  // src/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Config.ts
199
173
  var ImageThumbnailStateToIndexCandidateDivinerConfigSchema = `${ImageThumbnailStateToIndexCandidateDivinerSchema}.config`;
200
174
 
201
175
  // src/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Diviner.ts
202
- var import_assert = require("@xylabs/assert");
203
- var import_exists2 = require("@xylabs/exists");
204
- var import_abstract_diviner4 = require("@xyo-network/abstract-diviner");
205
- var import_archivist_wrapper = require("@xyo-network/archivist-wrapper");
206
- var import_boundwitness_model2 = require("@xyo-network/boundwitness-model");
207
- var import_diviner_boundwitness_model = require("@xyo-network/diviner-boundwitness-model");
208
- var import_diviner_model4 = require("@xyo-network/diviner-model");
209
- var import_diviner_wrapper = require("@xyo-network/diviner-wrapper");
210
- var import_image_thumbnail_payload_plugin5 = require("@xyo-network/image-thumbnail-payload-plugin");
211
- var import_module_model = require("@xyo-network/module-model");
212
- var import_payload_builder4 = require("@xyo-network/payload-builder");
213
- var import_witness_timestamp2 = require("@xyo-network/witness-timestamp");
214
- var payload_schemas = [import_image_thumbnail_payload_plugin5.ImageThumbnailSchema, import_witness_timestamp2.TimestampSchema];
215
- var indexCandidateIdentityFunctions = [import_image_thumbnail_payload_plugin5.isImageThumbnail, import_witness_timestamp2.isTimestamp];
176
+ import { assertEx } from "@xylabs/assert";
177
+ import { exists as exists2 } from "@xylabs/exists";
178
+ import { AbstractDiviner as AbstractDiviner4 } from "@xyo-network/abstract-diviner";
179
+ import { ArchivistWrapper } from "@xyo-network/archivist-wrapper";
180
+ import { isBoundWitness as isBoundWitness2 } from "@xyo-network/boundwitness-model";
181
+ import { BoundWitnessDivinerQuerySchema } from "@xyo-network/diviner-boundwitness-model";
182
+ import { DivinerConfigSchema as DivinerConfigSchema4 } from "@xyo-network/diviner-model";
183
+ import { DivinerWrapper } from "@xyo-network/diviner-wrapper";
184
+ import { ImageThumbnailSchema as ImageThumbnailSchema2, isImageThumbnail as isImageThumbnail2 } from "@xyo-network/image-thumbnail-payload-plugin";
185
+ import { isModuleState, ModuleStateSchema } from "@xyo-network/module-model";
186
+ import { PayloadBuilder as PayloadBuilder4 } from "@xyo-network/payload-builder";
187
+ import { isTimestamp as isTimestamp2, TimestampSchema as TimestampSchema2 } from "@xyo-network/witness-timestamp";
188
+ var payload_schemas = [ImageThumbnailSchema2, TimestampSchema2];
189
+ var indexCandidateIdentityFunctions = [isImageThumbnail2, isTimestamp2];
216
190
  var order = "asc";
217
191
  var moduleName = "ImageThumbnailStateToIndexCandidateDiviner";
218
- var ImageThumbnailStateToIndexCandidateDiviner = class _ImageThumbnailStateToIndexCandidateDiviner extends import_abstract_diviner4.AbstractDiviner {
219
- static configSchemas = [import_diviner_model4.DivinerConfigSchema, ImageThumbnailStateToIndexCandidateDivinerConfigSchema];
192
+ var ImageThumbnailStateToIndexCandidateDiviner = class _ImageThumbnailStateToIndexCandidateDiviner extends AbstractDiviner4 {
193
+ static configSchemas = [DivinerConfigSchema4, ImageThumbnailStateToIndexCandidateDivinerConfigSchema];
220
194
  static labels = {
221
195
  ...ImageThumbnailDivinerLabels,
222
196
  "network.xyo.diviner.stage": "stateToIndexCandidateDiviner"
@@ -237,24 +211,24 @@ var ImageThumbnailStateToIndexCandidateDiviner = class _ImageThumbnailStateToInd
237
211
  const filteredResults = indexCandidateIdentityFunctions.map((is) => results.find(is));
238
212
  if (filteredResults.some((f) => f === void 0))
239
213
  return void 0;
240
- const indexCandidates = filteredResults.filter(import_exists2.exists);
214
+ const indexCandidates = filteredResults.filter(exists2);
241
215
  return [bw, ...indexCandidates];
242
216
  }
243
217
  async divineHandler(payloads = []) {
244
- const lastState = payloads.find(import_module_model.isModuleState);
218
+ const lastState = payloads.find(isModuleState);
245
219
  if (!lastState)
246
- return [{ schema: import_module_model.ModuleStateSchema, state: { offset: 0 } }];
220
+ return [{ schema: ModuleStateSchema, state: { offset: 0 } }];
247
221
  const { offset } = lastState.state;
248
222
  const boundWitnessDiviner = await this.getBoundWitnessDivinerForStore();
249
- const query = await new import_payload_builder4.PayloadBuilder({ schema: import_diviner_boundwitness_model.BoundWitnessDivinerQuerySchema }).fields({ limit: this.payloadDivinerLimit, offset, order, payload_schemas }).build();
223
+ const query = await new PayloadBuilder4({ schema: BoundWitnessDivinerQuerySchema }).fields({ limit: this.payloadDivinerLimit, offset, order, payload_schemas }).build();
250
224
  const batch = await boundWitnessDiviner.divine([query]);
251
225
  if (batch.length === 0)
252
226
  return [lastState];
253
227
  const sourceArchivist = await this.getArchivistForStore();
254
228
  const indexCandidates = (await Promise.all(
255
- batch.filter(import_boundwitness_model2.isBoundWitness).map((bw) => _ImageThumbnailStateToIndexCandidateDiviner.getPayloadsInBoundWitness(bw, sourceArchivist))
256
- )).filter(import_exists2.exists).flat();
257
- const nextState = { schema: import_module_model.ModuleStateSchema, state: { ...lastState.state, offset: offset + batch.length } };
229
+ batch.filter(isBoundWitness2).map((bw) => _ImageThumbnailStateToIndexCandidateDiviner.getPayloadsInBoundWitness(bw, sourceArchivist))
230
+ )).filter(exists2).flat();
231
+ const nextState = { schema: ModuleStateSchema, state: { ...lastState.state, offset: offset + batch.length } };
258
232
  return [nextState, ...indexCandidates];
259
233
  }
260
234
  /**
@@ -263,9 +237,9 @@ var ImageThumbnailStateToIndexCandidateDiviner = class _ImageThumbnailStateToInd
263
237
  */
264
238
  async getArchivistForStore() {
265
239
  var _a, _b;
266
- const name = (0, import_assert.assertEx)((_b = (_a = this.config) == null ? void 0 : _a.payloadStore) == null ? void 0 : _b.archivist, () => `${moduleName}: Config for payloadStore.archivist not specified`);
267
- const mod = (0, import_assert.assertEx)(await this.resolve(name), () => `${moduleName}: Failed to resolve payloadStore.archivist`);
268
- return import_archivist_wrapper.ArchivistWrapper.wrap(mod, this.account);
240
+ const name = assertEx((_b = (_a = this.config) == null ? void 0 : _a.payloadStore) == null ? void 0 : _b.archivist, () => `${moduleName}: Config for payloadStore.archivist not specified`);
241
+ const mod = assertEx(await this.resolve(name), () => `${moduleName}: Failed to resolve payloadStore.archivist`);
242
+ return ArchivistWrapper.wrap(mod, this.account);
269
243
  }
270
244
  /**
271
245
  * Retrieves the BoundWitness Diviner for the payloadStore
@@ -273,16 +247,15 @@ var ImageThumbnailStateToIndexCandidateDiviner = class _ImageThumbnailStateToInd
273
247
  */
274
248
  async getBoundWitnessDivinerForStore() {
275
249
  var _a, _b;
276
- const name = (0, import_assert.assertEx)(
250
+ const name = assertEx(
277
251
  (_b = (_a = this.config) == null ? void 0 : _a.payloadStore) == null ? void 0 : _b.boundWitnessDiviner,
278
252
  () => `${moduleName}: Config for payloadStore.boundWitnessDiviner not specified`
279
253
  );
280
- const mod = (0, import_assert.assertEx)(await this.resolve(name), () => `${moduleName}: Failed to resolve payloadStore.boundWitnessDiviner`);
281
- return import_diviner_wrapper.DivinerWrapper.wrap(mod, this.account);
254
+ const mod = assertEx(await this.resolve(name), () => `${moduleName}: Failed to resolve payloadStore.boundWitnessDiviner`);
255
+ return DivinerWrapper.wrap(mod, this.account);
282
256
  }
283
257
  };
284
- // Annotate the CommonJS export names for ESM import in node:
285
- 0 && (module.exports = {
258
+ export {
286
259
  ImageThumbnailDiviner,
287
260
  ImageThumbnailDivinerLabels,
288
261
  ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner,
@@ -292,5 +265,5 @@ var ImageThumbnailStateToIndexCandidateDiviner = class _ImageThumbnailStateToInd
292
265
  ImageThumbnailStateToIndexCandidateDivinerConfigSchema,
293
266
  ImageThumbnailStateToIndexCandidateDivinerSchema,
294
267
  isImageThumbnailResultQuery
295
- });
268
+ };
296
269
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts","../../src/Diviner/Diviner.ts","../../src/Diviner/ImageThumbnailDivinerLabels.ts","../../src/Diviner/ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner.ts","../../src/Diviner/ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner.ts","../../src/Diviner/ImageThumbnailQueryToImageThumbnailIndexQueryDiviner.ts","../../src/Diviner/ImageThumbnailResultQuery.ts","../../src/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Schema.ts","../../src/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Config.ts","../../src/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Diviner.ts"],"sourcesContent":["export * from './Diviner'\n","import { IndexingDiviner } from '@xyo-network/diviner-indexing'\n\nimport { ImageThumbnailDivinerLabels } from './ImageThumbnailDivinerLabels'\n\nexport class ImageThumbnailDiviner extends IndexingDiviner {\n static labels: ImageThumbnailDivinerLabels = ImageThumbnailDivinerLabels\n}\n","import { DivinerStageSchema, IndexingDivinerStage } from '@xyo-network/diviner-indexing'\nimport { Labels } from '@xyo-network/module-model'\n\n/**\n * Labels for Image Thumbnail Diviner components\n */\nexport interface ImageThumbnailDivinerLabels extends Labels {\n 'network.xyo.image.thumbnail': 'diviner'\n}\n\n/**\n * Labels for Image Thumbnail Diviner components\n */\nexport const ImageThumbnailDivinerLabels: ImageThumbnailDivinerLabels = {\n 'network.xyo.image.thumbnail': 'diviner',\n}\n\n/**\n * Labels for Image Thumbnail Diviner Stage Diviners\n */\nexport type ImageThumbnailDivinerStageLabels = ImageThumbnailDivinerLabels & {\n /**\n * Labels for the stage of the Image Thumbnail Diviner Stage Diviner\n */\n [key in DivinerStageSchema]: IndexingDivinerStage\n}\n","import { AbstractDiviner } from '@xyo-network/abstract-diviner'\nimport { BoundWitness, isBoundWitness } from '@xyo-network/boundwitness-model'\nimport { PayloadHasher } from '@xyo-network/core'\nimport { DivinerConfigSchema } from '@xyo-network/diviner-model'\nimport {\n ImageThumbnail,\n ImageThumbnailResultIndex,\n ImageThumbnailResultIndexFields,\n ImageThumbnailResultIndexSchema,\n ImageThumbnailSchema,\n isImageThumbnail,\n} from '@xyo-network/image-thumbnail-payload-plugin'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } from '@xyo-network/payload-model'\nimport { UrlSchema } from '@xyo-network/url-payload-plugin'\nimport { isTimestamp, TimeStamp, TimestampSchema } from '@xyo-network/witness-timestamp'\n\nimport { ImageThumbnailDivinerLabels, ImageThumbnailDivinerStageLabels } from './ImageThumbnailDivinerLabels'\n\n/**\n * Transforms candidates for image thumbnail indexing into their indexed representation\n */\nexport class ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner extends AbstractDiviner {\n static override configSchemas = [DivinerConfigSchema]\n static labels: ImageThumbnailDivinerStageLabels = {\n ...ImageThumbnailDivinerLabels,\n 'network.xyo.diviner.stage': 'indexCandidateToIndexDiviner',\n }\n\n protected override async divineHandler(payloads: Payload[] = []): Promise<ImageThumbnailResultIndex[]> {\n const bws: BoundWitness[] = payloads.filter(isBoundWitness)\n const imageThumbnailPayloads: ImageThumbnail[] = payloads.filter(isImageThumbnail)\n const timestampPayloads: TimeStamp[] = payloads.filter(isTimestamp)\n if (bws.length && imageThumbnailPayloads.length && timestampPayloads.length) {\n const payloadDictionary = await PayloadHasher.toMap(payloads)\n const tuples: [BoundWitness, ImageThumbnail, TimeStamp][] = bws.reduce<[BoundWitness, ImageThumbnail, TimeStamp][]>(\n (acc, curr) => {\n const imageThumbnailIndex = curr.payload_schemas?.findIndex((schema) => schema === ImageThumbnailSchema)\n const timestampIndex = curr.payload_schemas?.findIndex((schema) => schema === TimestampSchema)\n const imageThumbnailHash = curr.payload_hashes?.[imageThumbnailIndex]\n const timestampHash = curr.payload_hashes?.[timestampIndex]\n const imageThumbnailPayload = [payloadDictionary[imageThumbnailHash]].find(isImageThumbnail)\n const timestampPayload = [payloadDictionary[timestampHash]].find(isTimestamp)\n if (imageThumbnailPayload && timestampPayload) acc.push([curr, imageThumbnailPayload, timestampPayload])\n return acc\n },\n [] as [BoundWitness, ImageThumbnail, TimeStamp][],\n )\n const indexes = await Promise.all(\n tuples.map(async ([bw, imageThumbnailPayload, timestampPayload]) => {\n const { sourceUrl: url } = imageThumbnailPayload\n const { timestamp } = timestampPayload\n const status = imageThumbnailPayload.http?.status\n const success = !!imageThumbnailPayload.url // Call anything with a thumbnail url a success\n const sources = (await PayloadHasher.hashPairs([bw, imageThumbnailPayload, timestampPayload])).map(([, hash]) => hash)\n const urlPayload = { schema: UrlSchema, url }\n const key = await PayloadHasher.hashAsync(urlPayload)\n const fields: ImageThumbnailResultIndexFields = { key, sources, success, timestamp }\n if (status) fields.status = status\n const result: ImageThumbnailResultIndex = await new PayloadBuilder<ImageThumbnailResultIndex>({ schema: ImageThumbnailResultIndexSchema })\n .fields(fields)\n .build()\n return [result]\n }),\n )\n return indexes.flat()\n }\n return Promise.resolve([])\n }\n}\n","import { exists } from '@xylabs/exists'\nimport { AbstractDiviner } from '@xyo-network/abstract-diviner'\nimport { PayloadHasher } from '@xyo-network/core'\nimport { DivinerConfigSchema } from '@xyo-network/diviner-model'\nimport {\n ImageThumbnailResult,\n ImageThumbnailResultFields,\n ImageThumbnailResultSchema,\n isImageThumbnailDivinerQuery,\n isImageThumbnailResultIndex,\n} from '@xyo-network/image-thumbnail-payload-plugin'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } from '@xyo-network/payload-model'\nimport { UrlSchema } from '@xyo-network/url-payload-plugin'\n\nimport { ImageThumbnailDivinerLabels, ImageThumbnailDivinerStageLabels } from './ImageThumbnailDivinerLabels'\n\n/**\n * Transforms an ImageThumbnailIndex response into an ImageThumbnailResponse response\n */\nexport class ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner extends AbstractDiviner {\n static override configSchemas = [DivinerConfigSchema]\n static labels: ImageThumbnailDivinerStageLabels = {\n ...ImageThumbnailDivinerLabels,\n 'network.xyo.diviner.stage': 'indexQueryResponseToDivinerQueryResponseDiviner',\n }\n\n protected override async divineHandler(payloads: Payload[] = []): Promise<ImageThumbnailResult[]> {\n // Filter out the two operands\n const imageThumbnailDivinerQueries = payloads.filter(isImageThumbnailDivinerQuery)\n const imageThumbnailResultIndexes = payloads.filter(isImageThumbnailResultIndex)\n\n // If we have operands\n if (imageThumbnailDivinerQueries.length && imageThumbnailResultIndexes.length) {\n // Create a dictionary to translate index keys to the urls that represent them\n const keyToUrlDictionary = Object.fromEntries(\n await Promise.all(\n imageThumbnailDivinerQueries.map(async (imageThumbnailDivinerQuery) => {\n const { url } = imageThumbnailDivinerQuery\n const urlPayload = await new PayloadBuilder<ImageThumbnailResult>({ schema: UrlSchema }).fields({ url }).build()\n const key = await PayloadHasher.hashAsync(urlPayload)\n return [key, url] as const\n }),\n ),\n )\n // Map the indexes to responses using the dictionary\n return (\n await Promise.all(\n imageThumbnailResultIndexes.map(async (imageThumbnailResultIndex) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { key, schema, ...commonFields } = imageThumbnailResultIndex\n const url = keyToUrlDictionary?.[key]\n if (url) {\n const fields: ImageThumbnailResultFields = { ...commonFields, url }\n return await new PayloadBuilder<ImageThumbnailResult>({ schema: ImageThumbnailResultSchema }).fields(fields).build()\n }\n }),\n )\n ).filter(exists)\n }\n return []\n }\n}\n","import { AbstractDiviner } from '@xyo-network/abstract-diviner'\nimport { PayloadHasher } from '@xyo-network/core'\nimport { DivinerConfigSchema } from '@xyo-network/diviner-model'\nimport { PayloadDivinerQuerySchema } from '@xyo-network/diviner-payload-model'\nimport { isImageThumbnailDivinerQuery } from '@xyo-network/image-thumbnail-payload-plugin'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } from '@xyo-network/payload-model'\nimport { UrlSchema } from '@xyo-network/url-payload-plugin'\n\nimport { ImageThumbnailDivinerLabels, ImageThumbnailDivinerStageLabels } from './ImageThumbnailDivinerLabels'\nimport { ImageThumbnailResultQuery } from './ImageThumbnailResultQuery'\n\n/**\n * A diviner that converts ImageThumbnailDivinerQuery to ImageThumbnailResultQuery\n */\nexport class ImageThumbnailQueryToImageThumbnailIndexQueryDiviner extends AbstractDiviner {\n static override configSchemas = [DivinerConfigSchema]\n static labels: ImageThumbnailDivinerStageLabels = {\n ...ImageThumbnailDivinerLabels,\n 'network.xyo.diviner.stage': 'divinerQueryToIndexQueryDiviner',\n }\n protected override async divineHandler(payloads: Payload[] = []): Promise<ImageThumbnailResultQuery[]> {\n const queries = payloads.filter(isImageThumbnailDivinerQuery)\n if (queries.length) {\n const results = await Promise.all(\n queries.map(async (query) => {\n const { limit: payloadLimit, offset: payloadOffset, order: payloadOrder, status: payloadStatus, success: payloadSuccess, url } = query\n const limit = payloadLimit ?? 1\n const order = payloadOrder ?? 'desc'\n const offset = payloadOffset ?? 0\n const urlPayload = { schema: UrlSchema, url }\n const key = await PayloadHasher.hashAsync(urlPayload)\n const fields: Partial<ImageThumbnailResultQuery> = { key, limit, offset, order }\n if (payloadSuccess !== undefined) fields.success = payloadSuccess\n if (payloadStatus !== undefined) fields.status = payloadStatus\n return await new PayloadBuilder<ImageThumbnailResultQuery>({ schema: PayloadDivinerQuerySchema }).fields(fields).build()\n }),\n )\n return results\n }\n return Promise.resolve([])\n }\n}\n","import { PayloadDivinerQueryPayload, PayloadDivinerQuerySchema } from '@xyo-network/diviner-payload-model'\nimport { ImageThumbnailResultIndex } from '@xyo-network/image-thumbnail-payload-plugin'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\n/**\n * The fields that will need to be indexed on in the underlying store\n */\nexport type QueryableImageThumbnailResultProperties = Extract<keyof ImageThumbnailResultIndex, 'status' | 'success' | 'timestamp' | 'key'>\n\n/**\n * The query that will be used to retrieve the results from the underlying store\n */\nexport type ImageThumbnailResultQuery = PayloadDivinerQueryPayload & Pick<ImageThumbnailResultIndex, QueryableImageThumbnailResultProperties>\n\n/**\n * A type guard for ImageThumbnailResultQuery\n */\n// TODO: Use a more derived schema than PayloadDivinerQuerySchema\nexport const isImageThumbnailResultQuery = isPayloadOfSchemaType<ImageThumbnailResultQuery>(PayloadDivinerQuerySchema)\n","import { ImageThumbnailDivinerSchema } from '@xyo-network/image-thumbnail-payload-plugin'\n\nexport type ImageThumbnailStateToIndexCandidateDivinerSchema = `${ImageThumbnailDivinerSchema}.stage.stateToIndexCandidateDiviner`\nexport const ImageThumbnailStateToIndexCandidateDivinerSchema: ImageThumbnailStateToIndexCandidateDivinerSchema = `${ImageThumbnailDivinerSchema}.stage.stateToIndexCandidateDiviner`\n","import { DivinerConfig } from '@xyo-network/diviner-model'\nimport { SearchableStorage } from '@xyo-network/image-thumbnail-payload-plugin'\n\nimport { ImageThumbnailStateToIndexCandidateDivinerSchema } from './Schema'\n\nexport type ImageThumbnailStateToIndexCandidateDivinerConfigSchema = `${ImageThumbnailStateToIndexCandidateDivinerSchema}.config`\nexport const ImageThumbnailStateToIndexCandidateDivinerConfigSchema: ImageThumbnailStateToIndexCandidateDivinerConfigSchema = `${ImageThumbnailStateToIndexCandidateDivinerSchema}.config`\n\nexport type ImageThumbnailStateToIndexCandidateDivinerConfig = DivinerConfig<{\n payloadDivinerLimit?: number\n /**\n * Where the diviner should look for stored thumbnails\n */\n payloadStore?: SearchableStorage\n schema: ImageThumbnailStateToIndexCandidateDivinerConfigSchema\n}>\n","import { assertEx } from '@xylabs/assert'\nimport { exists } from '@xylabs/exists'\nimport { AbstractDiviner } from '@xyo-network/abstract-diviner'\nimport { ArchivistInstance } from '@xyo-network/archivist-model'\nimport { ArchivistWrapper } from '@xyo-network/archivist-wrapper'\nimport { BoundWitness, isBoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessDivinerQueryPayload, BoundWitnessDivinerQuerySchema } from '@xyo-network/diviner-boundwitness-model'\nimport { DivinerConfigSchema } from '@xyo-network/diviner-model'\nimport { DivinerWrapper } from '@xyo-network/diviner-wrapper'\nimport { ImageThumbnail, ImageThumbnailSchema, isImageThumbnail } from '@xyo-network/image-thumbnail-payload-plugin'\nimport { isModuleState, ModuleState, ModuleStateSchema } from '@xyo-network/module-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } from '@xyo-network/payload-model'\nimport { isTimestamp, TimeStamp, TimestampSchema } from '@xyo-network/witness-timestamp'\n\nimport { ImageThumbnailDivinerLabels, ImageThumbnailDivinerStageLabels } from '../ImageThumbnailDivinerLabels'\nimport { ImageThumbnailDivinerState } from '../ImageThumbnailDivinerState'\nimport { ImageThumbnailStateToIndexCandidateDivinerConfigSchema } from './Config'\nimport { ImageThumbnailStateToIndexCandidateDivinerParams } from './Params'\n\n/**\n * All Payload types involved in index candidates for indexing\n */\nexport type IndexCandidate = BoundWitness | ImageThumbnail | TimeStamp\n\n/**\n * The response from the ImageThumbnailStateToIndexCandidateDiviner\n */\nexport type ImageThumbnailStateToIndexCandidateDivinerResponse = [\n /**\n * The next state of the diviner\n */\n nextState: ModuleState<ImageThumbnailDivinerState>,\n /**\n * The index candidates\n */\n ...IndexCandidate[],\n]\n\n/**\n * The required payload_schemas within BoundWitnesses to identify index candidates\n */\nconst payload_schemas = [ImageThumbnailSchema, TimestampSchema]\n\n/**\n * Index candidate identity functions\n */\nconst indexCandidateIdentityFunctions = [isImageThumbnail, isTimestamp] as const\n\n/**\n * The default order to search Bound Witnesses to identify index candidates\n */\nconst order = 'asc'\n\n/**\n * The name of the module (for logging purposes)\n */\nconst moduleName = 'ImageThumbnailStateToIndexCandidateDiviner'\n\n/**\n * Transforms candidates for image thumbnail indexing into their indexed representation\n */\nexport class ImageThumbnailStateToIndexCandidateDiviner<\n TParams extends ImageThumbnailStateToIndexCandidateDivinerParams = ImageThumbnailStateToIndexCandidateDivinerParams,\n> extends AbstractDiviner<TParams> {\n static override configSchemas = [DivinerConfigSchema, ImageThumbnailStateToIndexCandidateDivinerConfigSchema]\n static labels: ImageThumbnailDivinerStageLabels = {\n ...ImageThumbnailDivinerLabels,\n 'network.xyo.diviner.stage': 'stateToIndexCandidateDiviner',\n }\n\n get payloadDivinerLimit() {\n return this.config.payloadDivinerLimit ?? 1_000\n }\n\n protected static async getPayloadsInBoundWitness(bw: BoundWitness, archivist: ArchivistInstance): Promise<IndexCandidate[] | undefined> {\n const indexes = payload_schemas.map((schema) => bw.payload_schemas?.findIndex((s) => s === schema))\n const hashes = indexes.map((index) => bw.payload_hashes?.[index])\n const results = await archivist.get(hashes)\n const filteredResults = indexCandidateIdentityFunctions.map((is) => results.find(is))\n if (filteredResults.some((f) => f === undefined)) return undefined\n const indexCandidates: IndexCandidate[] = filteredResults.filter(exists) as IndexCandidate[]\n return [bw, ...indexCandidates]\n }\n\n protected override async divineHandler(payloads: Payload[] = []): Promise<ImageThumbnailStateToIndexCandidateDivinerResponse> {\n // Retrieve the last state from what was passed in\n const lastState = payloads.find(isModuleState<ImageThumbnailDivinerState>)\n // If there is no last state, start from the beginning\n if (!lastState) return [{ schema: ModuleStateSchema, state: { offset: 0 } }]\n // Otherwise, get the last offset\n const { offset } = lastState.state\n // Get next batch of results starting from the offset\n const boundWitnessDiviner = await this.getBoundWitnessDivinerForStore()\n const query = await new PayloadBuilder<BoundWitnessDivinerQueryPayload>({ schema: BoundWitnessDivinerQuerySchema })\n .fields({ limit: this.payloadDivinerLimit, offset, order, payload_schemas })\n .build()\n const batch = await boundWitnessDiviner.divine([query])\n if (batch.length === 0) return [lastState]\n // Get source data\n const sourceArchivist = await this.getArchivistForStore()\n const indexCandidates: IndexCandidate[] = (\n await Promise.all(\n batch.filter(isBoundWitness).map((bw) => ImageThumbnailStateToIndexCandidateDiviner.getPayloadsInBoundWitness(bw, sourceArchivist)),\n )\n )\n .filter(exists)\n .flat()\n const nextState = { schema: ModuleStateSchema, state: { ...lastState.state, offset: offset + batch.length } }\n return [nextState, ...indexCandidates]\n }\n /**\n * Retrieves the archivist for the payloadStore\n * @returns The archivist for the payloadStore\n */\n protected async getArchivistForStore() {\n const name = assertEx(this.config?.payloadStore?.archivist, () => `${moduleName}: Config for payloadStore.archivist not specified`)\n const mod = assertEx(await this.resolve(name), () => `${moduleName}: Failed to resolve payloadStore.archivist`)\n return ArchivistWrapper.wrap(mod, this.account)\n }\n\n /**\n * Retrieves the BoundWitness Diviner for the payloadStore\n * @returns The BoundWitness Diviner for the payloadStore\n */\n protected async getBoundWitnessDivinerForStore() {\n const name = assertEx(\n this.config?.payloadStore?.boundWitnessDiviner,\n () => `${moduleName}: Config for payloadStore.boundWitnessDiviner not specified`,\n )\n const mod = assertEx(await this.resolve(name), () => `${moduleName}: Failed to resolve payloadStore.boundWitnessDiviner`)\n return DivinerWrapper.wrap(mod, this.account)\n }\n}\n"],"mappings":"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","names":["import_abstract_diviner","import_core","import_diviner_model","import_image_thumbnail_payload_plugin","import_payload_builder","import_url_payload_plugin","import_abstract_diviner","import_core","import_diviner_model","import_image_thumbnail_payload_plugin","import_payload_builder","import_url_payload_plugin","order","import_diviner_payload_model","import_image_thumbnail_payload_plugin","import_exists","import_abstract_diviner","import_boundwitness_model","import_diviner_model","import_image_thumbnail_payload_plugin","import_payload_builder","import_witness_timestamp"]}
1
+ {"version":3,"sources":["../../src/Diviner/Diviner.ts","../../src/Diviner/ImageThumbnailDivinerLabels.ts","../../src/Diviner/ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner.ts","../../src/Diviner/ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner.ts","../../src/Diviner/ImageThumbnailQueryToImageThumbnailIndexQueryDiviner.ts","../../src/Diviner/ImageThumbnailResultQuery.ts","../../src/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Schema.ts","../../src/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Config.ts","../../src/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Diviner.ts"],"sourcesContent":["import { IndexingDiviner } from '@xyo-network/diviner-indexing'\n\nimport { ImageThumbnailDivinerLabels } from './ImageThumbnailDivinerLabels'\n\nexport class ImageThumbnailDiviner extends IndexingDiviner {\n static labels: ImageThumbnailDivinerLabels = ImageThumbnailDivinerLabels\n}\n","import { DivinerStageSchema, IndexingDivinerStage } from '@xyo-network/diviner-indexing'\nimport { Labels } from '@xyo-network/module-model'\n\n/**\n * Labels for Image Thumbnail Diviner components\n */\nexport interface ImageThumbnailDivinerLabels extends Labels {\n 'network.xyo.image.thumbnail': 'diviner'\n}\n\n/**\n * Labels for Image Thumbnail Diviner components\n */\nexport const ImageThumbnailDivinerLabels: ImageThumbnailDivinerLabels = {\n 'network.xyo.image.thumbnail': 'diviner',\n}\n\n/**\n * Labels for Image Thumbnail Diviner Stage Diviners\n */\nexport type ImageThumbnailDivinerStageLabels = ImageThumbnailDivinerLabels & {\n /**\n * Labels for the stage of the Image Thumbnail Diviner Stage Diviner\n */\n [key in DivinerStageSchema]: IndexingDivinerStage\n}\n","import { AbstractDiviner } from '@xyo-network/abstract-diviner'\nimport { BoundWitness, isBoundWitness } from '@xyo-network/boundwitness-model'\nimport { DivinerConfigSchema } from '@xyo-network/diviner-model'\nimport { PayloadHasher } from '@xyo-network/hash'\nimport {\n ImageThumbnail,\n ImageThumbnailResultIndex,\n ImageThumbnailResultIndexFields,\n ImageThumbnailResultIndexSchema,\n ImageThumbnailSchema,\n isImageThumbnail,\n} from '@xyo-network/image-thumbnail-payload-plugin'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } from '@xyo-network/payload-model'\nimport { UrlSchema } from '@xyo-network/url-payload-plugin'\nimport { isTimestamp, TimeStamp, TimestampSchema } from '@xyo-network/witness-timestamp'\n\nimport { ImageThumbnailDivinerLabels, ImageThumbnailDivinerStageLabels } from './ImageThumbnailDivinerLabels'\n\n/**\n * Transforms candidates for image thumbnail indexing into their indexed representation\n */\nexport class ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner extends AbstractDiviner {\n static override configSchemas = [DivinerConfigSchema]\n static labels: ImageThumbnailDivinerStageLabels = {\n ...ImageThumbnailDivinerLabels,\n 'network.xyo.diviner.stage': 'indexCandidateToIndexDiviner',\n }\n\n protected override async divineHandler(payloads: Payload[] = []): Promise<ImageThumbnailResultIndex[]> {\n const bws: BoundWitness[] = payloads.filter(isBoundWitness)\n const imageThumbnailPayloads: ImageThumbnail[] = payloads.filter(isImageThumbnail)\n const timestampPayloads: TimeStamp[] = payloads.filter(isTimestamp)\n if (bws.length && imageThumbnailPayloads.length && timestampPayloads.length) {\n const payloadDictionary = await PayloadHasher.toMap(payloads)\n const tuples: [BoundWitness, ImageThumbnail, TimeStamp][] = bws.reduce<[BoundWitness, ImageThumbnail, TimeStamp][]>(\n (acc, curr) => {\n const imageThumbnailIndex = curr.payload_schemas?.findIndex((schema) => schema === ImageThumbnailSchema)\n const timestampIndex = curr.payload_schemas?.findIndex((schema) => schema === TimestampSchema)\n const imageThumbnailHash = curr.payload_hashes?.[imageThumbnailIndex]\n const timestampHash = curr.payload_hashes?.[timestampIndex]\n const imageThumbnailPayload = [payloadDictionary[imageThumbnailHash]].find(isImageThumbnail)\n const timestampPayload = [payloadDictionary[timestampHash]].find(isTimestamp)\n if (imageThumbnailPayload && timestampPayload) acc.push([curr, imageThumbnailPayload, timestampPayload])\n return acc\n },\n [] as [BoundWitness, ImageThumbnail, TimeStamp][],\n )\n const indexes = await Promise.all(\n tuples.map(async ([bw, imageThumbnailPayload, timestampPayload]) => {\n const { sourceUrl: url } = imageThumbnailPayload\n const { timestamp } = timestampPayload\n const status = imageThumbnailPayload.http?.status\n const success = !!imageThumbnailPayload.url // Call anything with a thumbnail url a success\n const sources = (await PayloadHasher.hashPairs([bw, imageThumbnailPayload, timestampPayload])).map(([, hash]) => hash)\n const urlPayload = { schema: UrlSchema, url }\n const key = await PayloadHasher.hashAsync(urlPayload)\n const fields: ImageThumbnailResultIndexFields = { key, sources, success, timestamp }\n if (status) fields.status = status\n const result: ImageThumbnailResultIndex = await new PayloadBuilder<ImageThumbnailResultIndex>({ schema: ImageThumbnailResultIndexSchema })\n .fields(fields)\n .build()\n return [result]\n }),\n )\n return indexes.flat()\n }\n return Promise.resolve([])\n }\n}\n","import { exists } from '@xylabs/exists'\nimport { AbstractDiviner } from '@xyo-network/abstract-diviner'\nimport { DivinerConfigSchema } from '@xyo-network/diviner-model'\nimport { PayloadHasher } from '@xyo-network/hash'\nimport {\n ImageThumbnailResult,\n ImageThumbnailResultFields,\n ImageThumbnailResultSchema,\n isImageThumbnailDivinerQuery,\n isImageThumbnailResultIndex,\n} from '@xyo-network/image-thumbnail-payload-plugin'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } from '@xyo-network/payload-model'\nimport { UrlSchema } from '@xyo-network/url-payload-plugin'\n\nimport { ImageThumbnailDivinerLabels, ImageThumbnailDivinerStageLabels } from './ImageThumbnailDivinerLabels'\n\n/**\n * Transforms an ImageThumbnailIndex response into an ImageThumbnailResponse response\n */\nexport class ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner extends AbstractDiviner {\n static override configSchemas = [DivinerConfigSchema]\n static labels: ImageThumbnailDivinerStageLabels = {\n ...ImageThumbnailDivinerLabels,\n 'network.xyo.diviner.stage': 'indexQueryResponseToDivinerQueryResponseDiviner',\n }\n\n protected override async divineHandler(payloads: Payload[] = []): Promise<ImageThumbnailResult[]> {\n // Filter out the two operands\n const imageThumbnailDivinerQueries = payloads.filter(isImageThumbnailDivinerQuery)\n const imageThumbnailResultIndexes = payloads.filter(isImageThumbnailResultIndex)\n\n // If we have operands\n if (imageThumbnailDivinerQueries.length && imageThumbnailResultIndexes.length) {\n // Create a dictionary to translate index keys to the urls that represent them\n const keyToUrlDictionary = Object.fromEntries(\n await Promise.all(\n imageThumbnailDivinerQueries.map(async (imageThumbnailDivinerQuery) => {\n const { url } = imageThumbnailDivinerQuery\n const urlPayload = await new PayloadBuilder<ImageThumbnailResult>({ schema: UrlSchema }).fields({ url }).build()\n const key = await PayloadHasher.hashAsync(urlPayload)\n return [key, url] as const\n }),\n ),\n )\n // Map the indexes to responses using the dictionary\n return (\n await Promise.all(\n imageThumbnailResultIndexes.map(async (imageThumbnailResultIndex) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { key, schema, ...commonFields } = imageThumbnailResultIndex\n const url = keyToUrlDictionary?.[key]\n if (url) {\n const fields: ImageThumbnailResultFields = { ...commonFields, url }\n return await new PayloadBuilder<ImageThumbnailResult>({ schema: ImageThumbnailResultSchema }).fields(fields).build()\n }\n }),\n )\n ).filter(exists)\n }\n return []\n }\n}\n","import { AbstractDiviner } from '@xyo-network/abstract-diviner'\nimport { DivinerConfigSchema } from '@xyo-network/diviner-model'\nimport { PayloadDivinerQuerySchema } from '@xyo-network/diviner-payload-model'\nimport { PayloadHasher } from '@xyo-network/hash'\nimport { isImageThumbnailDivinerQuery } from '@xyo-network/image-thumbnail-payload-plugin'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } from '@xyo-network/payload-model'\nimport { UrlSchema } from '@xyo-network/url-payload-plugin'\n\nimport { ImageThumbnailDivinerLabels, ImageThumbnailDivinerStageLabels } from './ImageThumbnailDivinerLabels'\nimport { ImageThumbnailResultQuery } from './ImageThumbnailResultQuery'\n\n/**\n * A diviner that converts ImageThumbnailDivinerQuery to ImageThumbnailResultQuery\n */\nexport class ImageThumbnailQueryToImageThumbnailIndexQueryDiviner extends AbstractDiviner {\n static override configSchemas = [DivinerConfigSchema]\n static labels: ImageThumbnailDivinerStageLabels = {\n ...ImageThumbnailDivinerLabels,\n 'network.xyo.diviner.stage': 'divinerQueryToIndexQueryDiviner',\n }\n protected override async divineHandler(payloads: Payload[] = []): Promise<ImageThumbnailResultQuery[]> {\n const queries = payloads.filter(isImageThumbnailDivinerQuery)\n if (queries.length) {\n const results = await Promise.all(\n queries.map(async (query) => {\n const { limit: payloadLimit, offset: payloadOffset, order: payloadOrder, status: payloadStatus, success: payloadSuccess, url } = query\n const limit = payloadLimit ?? 1\n const order = payloadOrder ?? 'desc'\n const offset = payloadOffset ?? 0\n const urlPayload = { schema: UrlSchema, url }\n const key = await PayloadHasher.hashAsync(urlPayload)\n const fields: Partial<ImageThumbnailResultQuery> = { key, limit, offset, order }\n if (payloadSuccess !== undefined) fields.success = payloadSuccess\n if (payloadStatus !== undefined) fields.status = payloadStatus\n return await new PayloadBuilder<ImageThumbnailResultQuery>({ schema: PayloadDivinerQuerySchema }).fields(fields).build()\n }),\n )\n return results\n }\n return Promise.resolve([])\n }\n}\n","import { PayloadDivinerQueryPayload, PayloadDivinerQuerySchema } from '@xyo-network/diviner-payload-model'\nimport { ImageThumbnailResultIndex } from '@xyo-network/image-thumbnail-payload-plugin'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\n/**\n * The fields that will need to be indexed on in the underlying store\n */\nexport type QueryableImageThumbnailResultProperties = Extract<keyof ImageThumbnailResultIndex, 'status' | 'success' | 'timestamp' | 'key'>\n\n/**\n * The query that will be used to retrieve the results from the underlying store\n */\nexport type ImageThumbnailResultQuery = PayloadDivinerQueryPayload & Pick<ImageThumbnailResultIndex, QueryableImageThumbnailResultProperties>\n\n/**\n * A type guard for ImageThumbnailResultQuery\n */\n// TODO: Use a more derived schema than PayloadDivinerQuerySchema\nexport const isImageThumbnailResultQuery = isPayloadOfSchemaType<ImageThumbnailResultQuery>(PayloadDivinerQuerySchema)\n","import { ImageThumbnailDivinerSchema } from '@xyo-network/image-thumbnail-payload-plugin'\n\nexport type ImageThumbnailStateToIndexCandidateDivinerSchema = `${ImageThumbnailDivinerSchema}.stage.stateToIndexCandidateDiviner`\nexport const ImageThumbnailStateToIndexCandidateDivinerSchema: ImageThumbnailStateToIndexCandidateDivinerSchema = `${ImageThumbnailDivinerSchema}.stage.stateToIndexCandidateDiviner`\n","import { DivinerConfig } from '@xyo-network/diviner-model'\nimport { SearchableStorage } from '@xyo-network/image-thumbnail-payload-plugin'\n\nimport { ImageThumbnailStateToIndexCandidateDivinerSchema } from './Schema'\n\nexport type ImageThumbnailStateToIndexCandidateDivinerConfigSchema = `${ImageThumbnailStateToIndexCandidateDivinerSchema}.config`\nexport const ImageThumbnailStateToIndexCandidateDivinerConfigSchema: ImageThumbnailStateToIndexCandidateDivinerConfigSchema = `${ImageThumbnailStateToIndexCandidateDivinerSchema}.config`\n\nexport type ImageThumbnailStateToIndexCandidateDivinerConfig = DivinerConfig<{\n payloadDivinerLimit?: number\n /**\n * Where the diviner should look for stored thumbnails\n */\n payloadStore?: SearchableStorage\n schema: ImageThumbnailStateToIndexCandidateDivinerConfigSchema\n}>\n","import { assertEx } from '@xylabs/assert'\nimport { exists } from '@xylabs/exists'\nimport { AbstractDiviner } from '@xyo-network/abstract-diviner'\nimport { ArchivistInstance } from '@xyo-network/archivist-model'\nimport { ArchivistWrapper } from '@xyo-network/archivist-wrapper'\nimport { BoundWitness, isBoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessDivinerQueryPayload, BoundWitnessDivinerQuerySchema } from '@xyo-network/diviner-boundwitness-model'\nimport { DivinerConfigSchema } from '@xyo-network/diviner-model'\nimport { DivinerWrapper } from '@xyo-network/diviner-wrapper'\nimport { ImageThumbnail, ImageThumbnailSchema, isImageThumbnail } from '@xyo-network/image-thumbnail-payload-plugin'\nimport { isModuleState, ModuleState, ModuleStateSchema } from '@xyo-network/module-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } from '@xyo-network/payload-model'\nimport { isTimestamp, TimeStamp, TimestampSchema } from '@xyo-network/witness-timestamp'\n\nimport { ImageThumbnailDivinerLabels, ImageThumbnailDivinerStageLabels } from '../ImageThumbnailDivinerLabels'\nimport { ImageThumbnailDivinerState } from '../ImageThumbnailDivinerState'\nimport { ImageThumbnailStateToIndexCandidateDivinerConfigSchema } from './Config'\nimport { ImageThumbnailStateToIndexCandidateDivinerParams } from './Params'\n\n/**\n * All Payload types involved in index candidates for indexing\n */\nexport type IndexCandidate = BoundWitness | ImageThumbnail | TimeStamp\n\n/**\n * The response from the ImageThumbnailStateToIndexCandidateDiviner\n */\nexport type ImageThumbnailStateToIndexCandidateDivinerResponse = [\n /**\n * The next state of the diviner\n */\n nextState: ModuleState<ImageThumbnailDivinerState>,\n /**\n * The index candidates\n */\n ...IndexCandidate[],\n]\n\n/**\n * The required payload_schemas within BoundWitnesses to identify index candidates\n */\nconst payload_schemas = [ImageThumbnailSchema, TimestampSchema]\n\n/**\n * Index candidate identity functions\n */\nconst indexCandidateIdentityFunctions = [isImageThumbnail, isTimestamp] as const\n\n/**\n * The default order to search Bound Witnesses to identify index candidates\n */\nconst order = 'asc'\n\n/**\n * The name of the module (for logging purposes)\n */\nconst moduleName = 'ImageThumbnailStateToIndexCandidateDiviner'\n\n/**\n * Transforms candidates for image thumbnail indexing into their indexed representation\n */\nexport class ImageThumbnailStateToIndexCandidateDiviner<\n TParams extends ImageThumbnailStateToIndexCandidateDivinerParams = ImageThumbnailStateToIndexCandidateDivinerParams,\n> extends AbstractDiviner<TParams> {\n static override configSchemas = [DivinerConfigSchema, ImageThumbnailStateToIndexCandidateDivinerConfigSchema]\n static labels: ImageThumbnailDivinerStageLabels = {\n ...ImageThumbnailDivinerLabels,\n 'network.xyo.diviner.stage': 'stateToIndexCandidateDiviner',\n }\n\n get payloadDivinerLimit() {\n return this.config.payloadDivinerLimit ?? 1_000\n }\n\n protected static async getPayloadsInBoundWitness(bw: BoundWitness, archivist: ArchivistInstance): Promise<IndexCandidate[] | undefined> {\n const indexes = payload_schemas.map((schema) => bw.payload_schemas?.findIndex((s) => s === schema))\n const hashes = indexes.map((index) => bw.payload_hashes?.[index])\n const results = await archivist.get(hashes)\n const filteredResults = indexCandidateIdentityFunctions.map((is) => results.find(is))\n if (filteredResults.some((f) => f === undefined)) return undefined\n const indexCandidates: IndexCandidate[] = filteredResults.filter(exists) as IndexCandidate[]\n return [bw, ...indexCandidates]\n }\n\n protected override async divineHandler(payloads: Payload[] = []): Promise<ImageThumbnailStateToIndexCandidateDivinerResponse> {\n // Retrieve the last state from what was passed in\n const lastState = payloads.find(isModuleState<ImageThumbnailDivinerState>)\n // If there is no last state, start from the beginning\n if (!lastState) return [{ schema: ModuleStateSchema, state: { offset: 0 } }]\n // Otherwise, get the last offset\n const { offset } = lastState.state\n // Get next batch of results starting from the offset\n const boundWitnessDiviner = await this.getBoundWitnessDivinerForStore()\n const query = await new PayloadBuilder<BoundWitnessDivinerQueryPayload>({ schema: BoundWitnessDivinerQuerySchema })\n .fields({ limit: this.payloadDivinerLimit, offset, order, payload_schemas })\n .build()\n const batch = await boundWitnessDiviner.divine([query])\n if (batch.length === 0) return [lastState]\n // Get source data\n const sourceArchivist = await this.getArchivistForStore()\n const indexCandidates: IndexCandidate[] = (\n await Promise.all(\n batch.filter(isBoundWitness).map((bw) => ImageThumbnailStateToIndexCandidateDiviner.getPayloadsInBoundWitness(bw, sourceArchivist)),\n )\n )\n .filter(exists)\n .flat()\n const nextState = { schema: ModuleStateSchema, state: { ...lastState.state, offset: offset + batch.length } }\n return [nextState, ...indexCandidates]\n }\n /**\n * Retrieves the archivist for the payloadStore\n * @returns The archivist for the payloadStore\n */\n protected async getArchivistForStore() {\n const name = assertEx(this.config?.payloadStore?.archivist, () => `${moduleName}: Config for payloadStore.archivist not specified`)\n const mod = assertEx(await this.resolve(name), () => `${moduleName}: Failed to resolve payloadStore.archivist`)\n return ArchivistWrapper.wrap(mod, this.account)\n }\n\n /**\n * Retrieves the BoundWitness Diviner for the payloadStore\n * @returns The BoundWitness Diviner for the payloadStore\n */\n protected async getBoundWitnessDivinerForStore() {\n const name = assertEx(\n this.config?.payloadStore?.boundWitnessDiviner,\n () => `${moduleName}: Config for payloadStore.boundWitnessDiviner not specified`,\n )\n const mod = assertEx(await this.resolve(name), () => `${moduleName}: Failed to resolve payloadStore.boundWitnessDiviner`)\n return DivinerWrapper.wrap(mod, this.account)\n }\n}\n"],"mappings":"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","names":["AbstractDiviner","DivinerConfigSchema","PayloadHasher","PayloadBuilder","UrlSchema","AbstractDiviner","DivinerConfigSchema","PayloadBuilder","UrlSchema","PayloadHasher","AbstractDiviner","DivinerConfigSchema","PayloadHasher","isImageThumbnailDivinerQuery","PayloadBuilder","UrlSchema","AbstractDiviner","DivinerConfigSchema","isImageThumbnailDivinerQuery","order","UrlSchema","PayloadHasher","PayloadBuilder","PayloadDivinerQuerySchema","exists","AbstractDiviner","isBoundWitness","DivinerConfigSchema","ImageThumbnailSchema","isImageThumbnail","PayloadBuilder","isTimestamp","TimestampSchema","ImageThumbnailSchema","TimestampSchema","isImageThumbnail","isTimestamp","AbstractDiviner","DivinerConfigSchema","exists","PayloadBuilder","isBoundWitness"]}
package/package.json CHANGED
@@ -12,38 +12,37 @@
12
12
  "dependencies": {
13
13
  "@xylabs/assert": "^2.13.20",
14
14
  "@xylabs/exists": "^2.13.20",
15
- "@xyo-network/abstract-diviner": "^2.84.0",
16
- "@xyo-network/archivist-model": "^2.84.0",
17
- "@xyo-network/archivist-wrapper": "^2.84.0",
18
- "@xyo-network/boundwitness-model": "^2.84.0",
19
- "@xyo-network/core": "^2.84.0",
20
- "@xyo-network/diviner-boundwitness-model": "^2.84.0",
21
- "@xyo-network/diviner-indexing": "^2.84.0",
22
- "@xyo-network/diviner-model": "^2.84.0",
23
- "@xyo-network/diviner-payload-model": "^2.84.0",
24
- "@xyo-network/diviner-wrapper": "^2.84.0",
25
- "@xyo-network/image-thumbnail-payload-plugin": "~2.84.0",
26
- "@xyo-network/module-model": "^2.84.0",
27
- "@xyo-network/payload-builder": "^2.84.0",
28
- "@xyo-network/payload-model": "^2.84.0",
29
- "@xyo-network/url-payload-plugin": "~2.84.0",
30
- "@xyo-network/witness-timestamp": "^2.84.0"
15
+ "@xyo-network/abstract-diviner": "^2.84.3",
16
+ "@xyo-network/archivist-model": "^2.84.3",
17
+ "@xyo-network/archivist-wrapper": "^2.84.3",
18
+ "@xyo-network/boundwitness-model": "^2.84.3",
19
+ "@xyo-network/diviner-boundwitness-model": "^2.84.3",
20
+ "@xyo-network/diviner-indexing": "^2.84.3",
21
+ "@xyo-network/diviner-model": "^2.84.3",
22
+ "@xyo-network/diviner-payload-model": "^2.84.3",
23
+ "@xyo-network/diviner-wrapper": "^2.84.3",
24
+ "@xyo-network/hash": "^2.84.3",
25
+ "@xyo-network/image-thumbnail-payload-plugin": "~2.84.2",
26
+ "@xyo-network/module-model": "^2.84.3",
27
+ "@xyo-network/payload-builder": "^2.84.3",
28
+ "@xyo-network/payload-model": "^2.84.3",
29
+ "@xyo-network/url-payload-plugin": "~2.84.2",
30
+ "@xyo-network/witness-timestamp": "^2.84.3"
31
31
  },
32
32
  "devDependencies": {
33
33
  "@xylabs/delay": "^2.13.20",
34
- "@xylabs/ts-scripts-yarn3": "^3.2.10",
35
- "@xylabs/tsconfig": "^3.2.10",
36
- "@xyo-network/account": "^2.84.0",
37
- "@xyo-network/boundwitness-builder": "^2.84.0",
38
- "@xyo-network/diviner-boundwitness-memory": "^2.84.0",
39
- "@xyo-network/diviner-payload-memory": "^2.84.0",
40
- "@xyo-network/manifest": "^2.84.0",
41
- "@xyo-network/memory-archivist": "^2.84.0",
42
- "@xyo-network/node-memory": "^2.84.0",
34
+ "@xylabs/ts-scripts-yarn3": "^3.2.19",
35
+ "@xylabs/tsconfig": "^3.2.19",
36
+ "@xyo-network/account": "^2.84.3",
37
+ "@xyo-network/boundwitness-builder": "^2.84.3",
38
+ "@xyo-network/diviner-boundwitness-memory": "^2.84.3",
39
+ "@xyo-network/diviner-payload-memory": "^2.84.3",
40
+ "@xyo-network/manifest": "^2.84.3",
41
+ "@xyo-network/memory-archivist": "^2.84.3",
42
+ "@xyo-network/node-memory": "^2.84.3",
43
43
  "typescript": "^5.3.3"
44
44
  },
45
45
  "description": "Typescript/Javascript Plugins for XYO Platform",
46
- "docs": "dist/docs.json",
47
46
  "types": "dist/node/index.d.ts",
48
47
  "exports": {
49
48
  ".": {
@@ -59,19 +58,19 @@
59
58
  },
60
59
  "node": {
61
60
  "require": {
62
- "types": "./dist/node/index.d.ts",
63
- "default": "./dist/node/index.js"
61
+ "types": "./dist/node/index.d.cts",
62
+ "default": "./dist/node/index.cjs"
64
63
  },
65
64
  "import": {
66
65
  "types": "./dist/node/index.d.mts",
67
- "default": "./dist/node/index.mjs"
66
+ "default": "./dist/node/index.js"
68
67
  }
69
68
  }
70
69
  },
71
70
  "./package.json": "./package.json"
72
71
  },
73
- "main": "dist/node/index.js",
74
- "module": "dist/node/index.mjs",
72
+ "main": "dist/node/index.cjs",
73
+ "module": "dist/node/index.js",
75
74
  "homepage": "https://xyo.network",
76
75
  "license": "LGPL-3.0-only",
77
76
  "publishConfig": {
@@ -82,5 +81,6 @@
82
81
  "url": "https://github.com/XYOracleNetwork/plugins.git"
83
82
  },
84
83
  "sideEffects": false,
85
- "version": "2.84.0"
84
+ "version": "2.84.2",
85
+ "type": "module"
86
86
  }
@@ -1,7 +1,7 @@
1
1
  import { AbstractDiviner } from '@xyo-network/abstract-diviner'
2
2
  import { BoundWitness, isBoundWitness } from '@xyo-network/boundwitness-model'
3
- import { PayloadHasher } from '@xyo-network/core'
4
3
  import { DivinerConfigSchema } from '@xyo-network/diviner-model'
4
+ import { PayloadHasher } from '@xyo-network/hash'
5
5
  import {
6
6
  ImageThumbnail,
7
7
  ImageThumbnailResultIndex,
@@ -1,7 +1,7 @@
1
1
  import { exists } from '@xylabs/exists'
2
2
  import { AbstractDiviner } from '@xyo-network/abstract-diviner'
3
- import { PayloadHasher } from '@xyo-network/core'
4
3
  import { DivinerConfigSchema } from '@xyo-network/diviner-model'
4
+ import { PayloadHasher } from '@xyo-network/hash'
5
5
  import {
6
6
  ImageThumbnailResult,
7
7
  ImageThumbnailResultFields,