@xyo-network/diviner-image-thumbnail 2.99.4 → 2.99.5

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.
Files changed (135) hide show
  1. package/dist/browser/Diviner/Diviner.d.cts +1 -1
  2. package/dist/browser/Diviner/Diviner.d.mts +1 -1
  3. package/dist/browser/Diviner/Diviner.d.ts +1 -1
  4. package/dist/browser/Diviner/ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner.d.cts +1 -1
  5. package/dist/browser/Diviner/ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner.d.mts +1 -1
  6. package/dist/browser/Diviner/ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner.d.ts +1 -1
  7. package/dist/browser/Diviner/ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner.d.cts +1 -1
  8. package/dist/browser/Diviner/ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner.d.mts +1 -1
  9. package/dist/browser/Diviner/ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner.d.ts +1 -1
  10. package/dist/browser/Diviner/ImageThumbnailQueryToImageThumbnailIndexQueryDiviner.d.cts +2 -2
  11. package/dist/browser/Diviner/ImageThumbnailQueryToImageThumbnailIndexQueryDiviner.d.cts.map +1 -1
  12. package/dist/browser/Diviner/ImageThumbnailQueryToImageThumbnailIndexQueryDiviner.d.mts +2 -2
  13. package/dist/browser/Diviner/ImageThumbnailQueryToImageThumbnailIndexQueryDiviner.d.mts.map +1 -1
  14. package/dist/browser/Diviner/ImageThumbnailQueryToImageThumbnailIndexQueryDiviner.d.ts +2 -2
  15. package/dist/browser/Diviner/ImageThumbnailQueryToImageThumbnailIndexQueryDiviner.d.ts.map +1 -1
  16. package/dist/browser/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Config.d.cts +1 -1
  17. package/dist/browser/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Config.d.mts +1 -1
  18. package/dist/browser/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Config.d.ts +1 -1
  19. package/dist/browser/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Diviner.d.cts +3 -3
  20. package/dist/browser/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Diviner.d.cts.map +1 -1
  21. package/dist/browser/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Diviner.d.mts +3 -3
  22. package/dist/browser/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Diviner.d.mts.map +1 -1
  23. package/dist/browser/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Diviner.d.ts +3 -3
  24. package/dist/browser/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Diviner.d.ts.map +1 -1
  25. package/dist/browser/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Params.d.cts +1 -1
  26. package/dist/browser/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Params.d.mts +1 -1
  27. package/dist/browser/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Params.d.ts +1 -1
  28. package/dist/browser/Diviner/ImageThumbnailStateToIndexCandidateDiviner/index.d.cts +4 -4
  29. package/dist/browser/Diviner/ImageThumbnailStateToIndexCandidateDiviner/index.d.mts +4 -4
  30. package/dist/browser/Diviner/ImageThumbnailStateToIndexCandidateDiviner/index.d.ts +4 -4
  31. package/dist/browser/Diviner/index.d.cts +8 -8
  32. package/dist/browser/Diviner/index.d.mts +8 -8
  33. package/dist/browser/Diviner/index.d.ts +8 -8
  34. package/dist/browser/index.cjs +184 -96
  35. package/dist/browser/index.cjs.map +1 -1
  36. package/dist/browser/index.d.cts +1 -1
  37. package/dist/browser/index.d.mts +1 -1
  38. package/dist/browser/index.d.ts +1 -1
  39. package/dist/browser/{index.js → index.mjs} +189 -107
  40. package/dist/browser/index.mjs.map +1 -0
  41. package/dist/neutral/Diviner/Diviner.d.cts +1 -1
  42. package/dist/neutral/Diviner/Diviner.d.mts +1 -1
  43. package/dist/neutral/Diviner/Diviner.d.ts +1 -1
  44. package/dist/neutral/Diviner/ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner.d.cts +1 -1
  45. package/dist/neutral/Diviner/ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner.d.mts +1 -1
  46. package/dist/neutral/Diviner/ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner.d.ts +1 -1
  47. package/dist/neutral/Diviner/ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner.d.cts +1 -1
  48. package/dist/neutral/Diviner/ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner.d.mts +1 -1
  49. package/dist/neutral/Diviner/ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner.d.ts +1 -1
  50. package/dist/neutral/Diviner/ImageThumbnailQueryToImageThumbnailIndexQueryDiviner.d.cts +2 -2
  51. package/dist/neutral/Diviner/ImageThumbnailQueryToImageThumbnailIndexQueryDiviner.d.cts.map +1 -1
  52. package/dist/neutral/Diviner/ImageThumbnailQueryToImageThumbnailIndexQueryDiviner.d.mts +2 -2
  53. package/dist/neutral/Diviner/ImageThumbnailQueryToImageThumbnailIndexQueryDiviner.d.mts.map +1 -1
  54. package/dist/neutral/Diviner/ImageThumbnailQueryToImageThumbnailIndexQueryDiviner.d.ts +2 -2
  55. package/dist/neutral/Diviner/ImageThumbnailQueryToImageThumbnailIndexQueryDiviner.d.ts.map +1 -1
  56. package/dist/neutral/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Config.d.cts +1 -1
  57. package/dist/neutral/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Config.d.mts +1 -1
  58. package/dist/neutral/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Config.d.ts +1 -1
  59. package/dist/neutral/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Diviner.d.cts +3 -3
  60. package/dist/neutral/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Diviner.d.cts.map +1 -1
  61. package/dist/neutral/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Diviner.d.mts +3 -3
  62. package/dist/neutral/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Diviner.d.mts.map +1 -1
  63. package/dist/neutral/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Diviner.d.ts +3 -3
  64. package/dist/neutral/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Diviner.d.ts.map +1 -1
  65. package/dist/neutral/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Params.d.cts +1 -1
  66. package/dist/neutral/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Params.d.mts +1 -1
  67. package/dist/neutral/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Params.d.ts +1 -1
  68. package/dist/neutral/Diviner/ImageThumbnailStateToIndexCandidateDiviner/index.d.cts +4 -4
  69. package/dist/neutral/Diviner/ImageThumbnailStateToIndexCandidateDiviner/index.d.mts +4 -4
  70. package/dist/neutral/Diviner/ImageThumbnailStateToIndexCandidateDiviner/index.d.ts +4 -4
  71. package/dist/neutral/Diviner/index.d.cts +8 -8
  72. package/dist/neutral/Diviner/index.d.mts +8 -8
  73. package/dist/neutral/Diviner/index.d.ts +8 -8
  74. package/dist/neutral/index.cjs +184 -96
  75. package/dist/neutral/index.cjs.map +1 -1
  76. package/dist/neutral/index.d.cts +1 -1
  77. package/dist/neutral/index.d.mts +1 -1
  78. package/dist/neutral/index.d.ts +1 -1
  79. package/dist/neutral/{index.js → index.mjs} +189 -107
  80. package/dist/neutral/index.mjs.map +1 -0
  81. package/dist/node/Diviner/Diviner.d.cts +1 -1
  82. package/dist/node/Diviner/Diviner.d.mts +1 -1
  83. package/dist/node/Diviner/Diviner.d.ts +1 -1
  84. package/dist/node/Diviner/ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner.d.cts +1 -1
  85. package/dist/node/Diviner/ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner.d.mts +1 -1
  86. package/dist/node/Diviner/ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner.d.ts +1 -1
  87. package/dist/node/Diviner/ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner.d.cts +1 -1
  88. package/dist/node/Diviner/ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner.d.mts +1 -1
  89. package/dist/node/Diviner/ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner.d.ts +1 -1
  90. package/dist/node/Diviner/ImageThumbnailQueryToImageThumbnailIndexQueryDiviner.d.cts +2 -2
  91. package/dist/node/Diviner/ImageThumbnailQueryToImageThumbnailIndexQueryDiviner.d.cts.map +1 -1
  92. package/dist/node/Diviner/ImageThumbnailQueryToImageThumbnailIndexQueryDiviner.d.mts +2 -2
  93. package/dist/node/Diviner/ImageThumbnailQueryToImageThumbnailIndexQueryDiviner.d.mts.map +1 -1
  94. package/dist/node/Diviner/ImageThumbnailQueryToImageThumbnailIndexQueryDiviner.d.ts +2 -2
  95. package/dist/node/Diviner/ImageThumbnailQueryToImageThumbnailIndexQueryDiviner.d.ts.map +1 -1
  96. package/dist/node/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Config.d.cts +1 -1
  97. package/dist/node/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Config.d.mts +1 -1
  98. package/dist/node/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Config.d.ts +1 -1
  99. package/dist/node/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Diviner.d.cts +3 -3
  100. package/dist/node/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Diviner.d.cts.map +1 -1
  101. package/dist/node/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Diviner.d.mts +3 -3
  102. package/dist/node/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Diviner.d.mts.map +1 -1
  103. package/dist/node/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Diviner.d.ts +3 -3
  104. package/dist/node/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Diviner.d.ts.map +1 -1
  105. package/dist/node/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Params.d.cts +1 -1
  106. package/dist/node/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Params.d.mts +1 -1
  107. package/dist/node/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Params.d.ts +1 -1
  108. package/dist/node/Diviner/ImageThumbnailStateToIndexCandidateDiviner/index.d.cts +4 -4
  109. package/dist/node/Diviner/ImageThumbnailStateToIndexCandidateDiviner/index.d.mts +4 -4
  110. package/dist/node/Diviner/ImageThumbnailStateToIndexCandidateDiviner/index.d.ts +4 -4
  111. package/dist/node/Diviner/index.d.cts +8 -8
  112. package/dist/node/Diviner/index.d.mts +8 -8
  113. package/dist/node/Diviner/index.d.ts +8 -8
  114. package/dist/node/index.cjs +214 -126
  115. package/dist/node/index.cjs.map +1 -1
  116. package/dist/node/index.d.cts +1 -1
  117. package/dist/node/index.d.mts +1 -1
  118. package/dist/node/index.d.ts +1 -1
  119. package/dist/node/index.mjs +354 -0
  120. package/dist/node/index.mjs.map +1 -0
  121. package/package.json +35 -35
  122. package/src/Diviner/Diviner.ts +1 -1
  123. package/src/Diviner/ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner.ts +3 -3
  124. package/src/Diviner/ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner.ts +1 -1
  125. package/src/Diviner/ImageThumbnailQueryToImageThumbnailIndexQueryDiviner.ts +3 -2
  126. package/src/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Config.ts +1 -1
  127. package/src/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Diviner.ts +9 -8
  128. package/src/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Params.ts +1 -1
  129. package/src/Diviner/ImageThumbnailStateToIndexCandidateDiviner/index.ts +4 -4
  130. package/src/Diviner/index.ts +8 -8
  131. package/src/index.ts +1 -1
  132. package/dist/browser/index.js.map +0 -1
  133. package/dist/neutral/index.js.map +0 -1
  134. package/dist/node/index.js +0 -272
  135. package/dist/node/index.js.map +0 -1
@@ -2,7 +2,11 @@
2
2
  var __defProp = Object.defineProperty;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
5
6
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __reflectGet = Reflect.get;
8
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
9
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
6
10
  var __export = (target, all) => {
7
11
  for (var name in all)
8
12
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -16,6 +20,8 @@ var __copyProps = (to, from, except, desc) => {
16
20
  return to;
17
21
  };
18
22
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
23
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
24
+ var __superGet = (cls, obj, key) => __reflectGet(__getProtoOf(cls), key, obj);
19
25
 
20
26
  // src/index.ts
21
27
  var src_exports = {};
@@ -41,9 +47,14 @@ var ImageThumbnailDivinerLabels = {
41
47
  };
42
48
 
43
49
  // src/Diviner/Diviner.ts
44
- var ImageThumbnailDiviner = class extends import_diviner_indexing.IndexingDiviner {
45
- static labels = { ...super.labels, ...ImageThumbnailDivinerLabels };
50
+ var _ImageThumbnailDiviner = class _ImageThumbnailDiviner extends import_diviner_indexing.IndexingDiviner {
46
51
  };
52
+ __name(_ImageThumbnailDiviner, "ImageThumbnailDiviner");
53
+ __publicField(_ImageThumbnailDiviner, "labels", {
54
+ ...__superGet(_ImageThumbnailDiviner, _ImageThumbnailDiviner, "labels"),
55
+ ...ImageThumbnailDivinerLabels
56
+ });
57
+ var ImageThumbnailDiviner = _ImageThumbnailDiviner;
47
58
 
48
59
  // src/Diviner/ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner.ts
49
60
  var import_boundwitness_model = require("@xyo-network/boundwitness-model");
@@ -53,56 +64,78 @@ var import_image_thumbnail_payload_plugin = require("@xyo-network/image-thumbnai
53
64
  var import_payload_builder = require("@xyo-network/payload-builder");
54
65
  var import_url_payload_plugin = require("@xyo-network/url-payload-plugin");
55
66
  var import_witness_timestamp = require("@xyo-network/witness-timestamp");
56
- var ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner = class extends import_diviner_abstract.AbstractDiviner {
57
- static configSchemas = [...super.configSchemas, import_diviner_model.DivinerConfigSchema];
58
- static defaultConfigSchema = import_diviner_model.DivinerConfigSchema;
59
- static labels = {
60
- ...super.labels,
61
- ...ImageThumbnailDivinerLabels,
62
- "network.xyo.diviner.stage": "indexCandidateToIndexDiviner"
63
- };
67
+ var _ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner = class _ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner extends import_diviner_abstract.AbstractDiviner {
64
68
  async divineHandler(payloads = []) {
65
69
  const bws = payloads.filter(import_boundwitness_model.isBoundWitness);
66
70
  const imageThumbnailPayloads = payloads.filter(import_image_thumbnail_payload_plugin.isImageThumbnail);
67
71
  const timestampPayloads = payloads.filter(import_witness_timestamp.isTimestamp);
68
72
  if (bws.length > 0 && imageThumbnailPayloads.length > 0 && timestampPayloads.length > 0) {
69
73
  const payloadDictionary = await import_payload_builder.PayloadBuilder.toDataHashMap(payloads);
70
- const tuples = bws.reduce(
71
- (acc, curr) => {
72
- var _a, _b, _c, _d;
73
- const imageThumbnailIndex = (_a = curr.payload_schemas) == null ? void 0 : _a.findIndex((schema) => schema === import_image_thumbnail_payload_plugin.ImageThumbnailSchema);
74
- const timestampIndex = (_b = curr.payload_schemas) == null ? void 0 : _b.findIndex((schema) => schema === import_witness_timestamp.TimestampSchema);
75
- const imageThumbnailHash = (_c = curr.payload_hashes) == null ? void 0 : _c[imageThumbnailIndex];
76
- const timestampHash = (_d = curr.payload_hashes) == null ? void 0 : _d[timestampIndex];
77
- const imageThumbnailPayload = [payloadDictionary[imageThumbnailHash]].find(import_image_thumbnail_payload_plugin.isImageThumbnail);
78
- const timestampPayload = [payloadDictionary[timestampHash]].find(import_witness_timestamp.isTimestamp);
79
- if (imageThumbnailPayload && timestampPayload) acc.push([curr, imageThumbnailPayload, timestampPayload]);
80
- return acc;
81
- },
82
- []
83
- );
84
- const indexes = await Promise.all(
85
- tuples.map(async ([bw, imageThumbnailPayload, timestampPayload]) => {
86
- const { sourceUrl: url, http } = imageThumbnailPayload;
87
- const { timestamp } = timestampPayload;
88
- const { status } = http ?? {};
89
- const success = !!imageThumbnailPayload.url;
90
- const sources = await import_payload_builder.PayloadBuilder.dataHashes([bw, imageThumbnailPayload, timestampPayload]);
91
- const urlPayload = { schema: import_url_payload_plugin.UrlSchema, url };
92
- const key = await import_payload_builder.PayloadBuilder.dataHash(urlPayload);
93
- const fields = { key, sources, success, timestamp };
94
- if (status) fields.status = status;
95
- const result = await new import_payload_builder.PayloadBuilder({
96
- schema: import_image_thumbnail_payload_plugin.ImageThumbnailResultIndexSchema
97
- }).fields(fields).build();
98
- return [result];
99
- })
100
- );
74
+ const tuples = bws.reduce((acc, curr) => {
75
+ var _a, _b, _c, _d;
76
+ const imageThumbnailIndex = (_a = curr.payload_schemas) == null ? void 0 : _a.findIndex((schema) => schema === import_image_thumbnail_payload_plugin.ImageThumbnailSchema);
77
+ const timestampIndex = (_b = curr.payload_schemas) == null ? void 0 : _b.findIndex((schema) => schema === import_witness_timestamp.TimestampSchema);
78
+ const imageThumbnailHash = (_c = curr.payload_hashes) == null ? void 0 : _c[imageThumbnailIndex];
79
+ const timestampHash = (_d = curr.payload_hashes) == null ? void 0 : _d[timestampIndex];
80
+ const imageThumbnailPayload = [
81
+ payloadDictionary[imageThumbnailHash]
82
+ ].find(import_image_thumbnail_payload_plugin.isImageThumbnail);
83
+ const timestampPayload = [
84
+ payloadDictionary[timestampHash]
85
+ ].find(import_witness_timestamp.isTimestamp);
86
+ if (imageThumbnailPayload && timestampPayload) acc.push([
87
+ curr,
88
+ imageThumbnailPayload,
89
+ timestampPayload
90
+ ]);
91
+ return acc;
92
+ }, []);
93
+ const indexes = await Promise.all(tuples.map(async ([bw, imageThumbnailPayload, timestampPayload]) => {
94
+ const { sourceUrl: url, http } = imageThumbnailPayload;
95
+ const { timestamp } = timestampPayload;
96
+ const { status } = http ?? {};
97
+ const success = !!imageThumbnailPayload.url;
98
+ const sources = await import_payload_builder.PayloadBuilder.dataHashes([
99
+ bw,
100
+ imageThumbnailPayload,
101
+ timestampPayload
102
+ ]);
103
+ const urlPayload = {
104
+ schema: import_url_payload_plugin.UrlSchema,
105
+ url
106
+ };
107
+ const key = await import_payload_builder.PayloadBuilder.dataHash(urlPayload);
108
+ const fields = {
109
+ key,
110
+ sources,
111
+ success,
112
+ timestamp
113
+ };
114
+ if (status) fields.status = status;
115
+ const result = await new import_payload_builder.PayloadBuilder({
116
+ schema: import_image_thumbnail_payload_plugin.ImageThumbnailResultIndexSchema
117
+ }).fields(fields).build();
118
+ return [
119
+ result
120
+ ];
121
+ }));
101
122
  return indexes.flat();
102
123
  }
103
124
  return [];
104
125
  }
105
126
  };
127
+ __name(_ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner, "ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner");
128
+ __publicField(_ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner, "configSchemas", [
129
+ ...__superGet(_ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner, _ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner, "configSchemas"),
130
+ import_diviner_model.DivinerConfigSchema
131
+ ]);
132
+ __publicField(_ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner, "defaultConfigSchema", import_diviner_model.DivinerConfigSchema);
133
+ __publicField(_ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner, "labels", {
134
+ ...__superGet(_ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner, _ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner, "labels"),
135
+ ...ImageThumbnailDivinerLabels,
136
+ "network.xyo.diviner.stage": "indexCandidateToIndexDiviner"
137
+ });
138
+ var ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner = _ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner;
106
139
 
107
140
  // src/Diviner/ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner.ts
108
141
  var import_exists = require("@xylabs/exists");
@@ -111,42 +144,53 @@ var import_diviner_model2 = require("@xyo-network/diviner-model");
111
144
  var import_image_thumbnail_payload_plugin2 = require("@xyo-network/image-thumbnail-payload-plugin");
112
145
  var import_payload_builder2 = require("@xyo-network/payload-builder");
113
146
  var import_url_payload_plugin2 = require("@xyo-network/url-payload-plugin");
114
- var ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner = class extends import_diviner_abstract2.AbstractDiviner {
115
- static configSchemas = [...super.configSchemas, import_diviner_model2.DivinerConfigSchema];
116
- static defaultConfigSchema = import_diviner_model2.DivinerConfigSchema;
117
- static labels = {
118
- ...super.labels,
119
- ...ImageThumbnailDivinerLabels,
120
- "network.xyo.diviner.stage": "indexQueryResponseToDivinerQueryResponseDiviner"
121
- };
147
+ var _ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner = class _ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner extends import_diviner_abstract2.AbstractDiviner {
122
148
  async divineHandler(payloads = []) {
123
149
  const imageThumbnailDivinerQueries = payloads.filter(import_image_thumbnail_payload_plugin2.isImageThumbnailDivinerQuery);
124
150
  const imageThumbnailResultIndexes = payloads.filter(import_image_thumbnail_payload_plugin2.isImageThumbnailResultIndex);
125
151
  if (imageThumbnailDivinerQueries.length > 0 && imageThumbnailResultIndexes.length > 0) {
126
- const keyToUrlDictionary = Object.fromEntries(
127
- await Promise.all(
128
- imageThumbnailDivinerQueries.map(async (imageThumbnailDivinerQuery) => {
129
- const { url } = imageThumbnailDivinerQuery;
130
- const urlPayload = await new import_payload_builder2.PayloadBuilder({ schema: import_url_payload_plugin2.UrlSchema }).fields({ url }).build();
131
- const key = await import_payload_builder2.PayloadBuilder.dataHash(urlPayload);
132
- return [key, url];
133
- })
134
- )
135
- );
136
- return (await Promise.all(
137
- imageThumbnailResultIndexes.map(async (imageThumbnailResultIndex) => {
138
- const { key, schema, ...commonFields } = imageThumbnailResultIndex;
139
- const url = keyToUrlDictionary == null ? void 0 : keyToUrlDictionary[key];
140
- if (url) {
141
- const fields = { ...commonFields, url };
142
- return await new import_payload_builder2.PayloadBuilder({ schema: import_image_thumbnail_payload_plugin2.ImageThumbnailResultSchema }).fields(fields).build();
143
- }
144
- })
145
- )).filter(import_exists.exists);
152
+ const keyToUrlDictionary = Object.fromEntries(await Promise.all(imageThumbnailDivinerQueries.map(async (imageThumbnailDivinerQuery) => {
153
+ const { url } = imageThumbnailDivinerQuery;
154
+ const urlPayload = await new import_payload_builder2.PayloadBuilder({
155
+ schema: import_url_payload_plugin2.UrlSchema
156
+ }).fields({
157
+ url
158
+ }).build();
159
+ const key = await import_payload_builder2.PayloadBuilder.dataHash(urlPayload);
160
+ return [
161
+ key,
162
+ url
163
+ ];
164
+ })));
165
+ return (await Promise.all(imageThumbnailResultIndexes.map(async (imageThumbnailResultIndex) => {
166
+ const { key, schema, ...commonFields } = imageThumbnailResultIndex;
167
+ const url = keyToUrlDictionary == null ? void 0 : keyToUrlDictionary[key];
168
+ if (url) {
169
+ const fields = {
170
+ ...commonFields,
171
+ url
172
+ };
173
+ return await new import_payload_builder2.PayloadBuilder({
174
+ schema: import_image_thumbnail_payload_plugin2.ImageThumbnailResultSchema
175
+ }).fields(fields).build();
176
+ }
177
+ }))).filter(import_exists.exists);
146
178
  }
147
179
  return [];
148
180
  }
149
181
  };
182
+ __name(_ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner, "ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner");
183
+ __publicField(_ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner, "configSchemas", [
184
+ ...__superGet(_ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner, _ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner, "configSchemas"),
185
+ import_diviner_model2.DivinerConfigSchema
186
+ ]);
187
+ __publicField(_ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner, "defaultConfigSchema", import_diviner_model2.DivinerConfigSchema);
188
+ __publicField(_ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner, "labels", {
189
+ ...__superGet(_ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner, _ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner, "labels"),
190
+ ...ImageThumbnailDivinerLabels,
191
+ "network.xyo.diviner.stage": "indexQueryResponseToDivinerQueryResponseDiviner"
192
+ });
193
+ var ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner = _ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner;
150
194
 
151
195
  // src/Diviner/ImageThumbnailQueryToImageThumbnailIndexQueryDiviner.ts
152
196
  var import_diviner_abstract3 = require("@xyo-network/diviner-abstract");
@@ -155,41 +199,49 @@ var import_diviner_payload_model = require("@xyo-network/diviner-payload-model")
155
199
  var import_image_thumbnail_payload_plugin3 = require("@xyo-network/image-thumbnail-payload-plugin");
156
200
  var import_payload_builder3 = require("@xyo-network/payload-builder");
157
201
  var import_url_payload_plugin3 = require("@xyo-network/url-payload-plugin");
158
- var ImageThumbnailQueryToImageThumbnailIndexQueryDiviner = class extends import_diviner_abstract3.AbstractDiviner {
159
- static configSchemas = [...super.configSchemas, import_diviner_model3.DivinerConfigSchema];
160
- static defaultConfigSchema = import_diviner_model3.DivinerConfigSchema;
161
- static labels = {
162
- ...super.labels,
163
- ...ImageThumbnailDivinerLabels,
164
- "network.xyo.diviner.stage": "divinerQueryToIndexQueryDiviner"
165
- };
202
+ var _ImageThumbnailQueryToImageThumbnailIndexQueryDiviner = class _ImageThumbnailQueryToImageThumbnailIndexQueryDiviner extends import_diviner_abstract3.AbstractDiviner {
166
203
  async divineHandler(payloads = []) {
167
204
  const queries = payloads.filter(import_image_thumbnail_payload_plugin3.isImageThumbnailDivinerQuery);
168
205
  if (queries.length > 0) {
169
- const results = await Promise.all(
170
- queries.map(async (query) => {
171
- const { limit: payloadLimit, offset: payloadOffset, order: payloadOrder, status: payloadStatus, success: payloadSuccess, url } = query;
172
- const limit = payloadLimit ?? 1;
173
- const order2 = payloadOrder ?? "desc";
174
- const offset = payloadOffset ?? 0;
175
- const urlPayload = { schema: import_url_payload_plugin3.UrlSchema, url };
176
- const key = await import_payload_builder3.PayloadBuilder.dataHash(urlPayload);
177
- const fields = {
178
- key,
179
- limit,
180
- offset,
181
- order: order2
182
- };
183
- if (payloadSuccess !== void 0) fields.success = payloadSuccess;
184
- if (payloadStatus !== void 0) fields.status = payloadStatus;
185
- return await new import_payload_builder3.PayloadBuilder({ schema: import_diviner_payload_model.PayloadDivinerQuerySchema }).fields(fields).build();
186
- })
187
- );
206
+ const results = await Promise.all(queries.map(async (query) => {
207
+ const { limit: payloadLimit, offset: payloadOffset, order: payloadOrder, status: payloadStatus, success: payloadSuccess, url } = query;
208
+ const limit = payloadLimit ?? 1;
209
+ const order2 = payloadOrder ?? "desc";
210
+ const offset = payloadOffset ?? 0;
211
+ const urlPayload = {
212
+ schema: import_url_payload_plugin3.UrlSchema,
213
+ url
214
+ };
215
+ const key = await import_payload_builder3.PayloadBuilder.dataHash(urlPayload);
216
+ const fields = {
217
+ key,
218
+ limit,
219
+ offset,
220
+ order: order2
221
+ };
222
+ if (payloadSuccess !== void 0) fields.success = payloadSuccess;
223
+ if (payloadStatus !== void 0) fields.status = payloadStatus;
224
+ return await new import_payload_builder3.PayloadBuilder({
225
+ schema: import_diviner_payload_model.PayloadDivinerQuerySchema
226
+ }).fields(fields).build();
227
+ }));
188
228
  return results;
189
229
  }
190
230
  return [];
191
231
  }
192
232
  };
233
+ __name(_ImageThumbnailQueryToImageThumbnailIndexQueryDiviner, "ImageThumbnailQueryToImageThumbnailIndexQueryDiviner");
234
+ __publicField(_ImageThumbnailQueryToImageThumbnailIndexQueryDiviner, "configSchemas", [
235
+ ...__superGet(_ImageThumbnailQueryToImageThumbnailIndexQueryDiviner, _ImageThumbnailQueryToImageThumbnailIndexQueryDiviner, "configSchemas"),
236
+ import_diviner_model3.DivinerConfigSchema
237
+ ]);
238
+ __publicField(_ImageThumbnailQueryToImageThumbnailIndexQueryDiviner, "defaultConfigSchema", import_diviner_model3.DivinerConfigSchema);
239
+ __publicField(_ImageThumbnailQueryToImageThumbnailIndexQueryDiviner, "labels", {
240
+ ...__superGet(_ImageThumbnailQueryToImageThumbnailIndexQueryDiviner, _ImageThumbnailQueryToImageThumbnailIndexQueryDiviner, "labels"),
241
+ ...ImageThumbnailDivinerLabels,
242
+ "network.xyo.diviner.stage": "divinerQueryToIndexQueryDiviner"
243
+ });
244
+ var ImageThumbnailQueryToImageThumbnailIndexQueryDiviner = _ImageThumbnailQueryToImageThumbnailIndexQueryDiviner;
193
245
 
194
246
  // src/Diviner/ImageThumbnailResultQuery.ts
195
247
  var import_diviner_payload_model2 = require("@xyo-network/diviner-payload-model");
@@ -215,18 +267,17 @@ var import_image_thumbnail_payload_plugin5 = require("@xyo-network/image-thumbna
215
267
  var import_module_model = require("@xyo-network/module-model");
216
268
  var import_payload_builder4 = require("@xyo-network/payload-builder");
217
269
  var import_witness_timestamp2 = require("@xyo-network/witness-timestamp");
218
- var payload_schemas = [import_image_thumbnail_payload_plugin5.ImageThumbnailSchema, import_witness_timestamp2.TimestampSchema];
219
- var indexCandidateIdentityFunctions = [import_image_thumbnail_payload_plugin5.isImageThumbnail, import_witness_timestamp2.isTimestamp];
270
+ var payload_schemas = [
271
+ import_image_thumbnail_payload_plugin5.ImageThumbnailSchema,
272
+ import_witness_timestamp2.TimestampSchema
273
+ ];
274
+ var indexCandidateIdentityFunctions = [
275
+ import_image_thumbnail_payload_plugin5.isImageThumbnail,
276
+ import_witness_timestamp2.isTimestamp
277
+ ];
220
278
  var order = "asc";
221
279
  var moduleName = "ImageThumbnailStateToIndexCandidateDiviner";
222
- var ImageThumbnailStateToIndexCandidateDiviner = class _ImageThumbnailStateToIndexCandidateDiviner extends import_diviner_abstract4.AbstractDiviner {
223
- static configSchemas = [...super.configSchemas, ImageThumbnailStateToIndexCandidateDivinerConfigSchema];
224
- static defaultConfigSchema = ImageThumbnailStateToIndexCandidateDivinerConfigSchema;
225
- static labels = {
226
- ...super.labels,
227
- ...ImageThumbnailDivinerLabels,
228
- "network.xyo.diviner.stage": "stateToIndexCandidateDiviner"
229
- };
280
+ var _ImageThumbnailStateToIndexCandidateDiviner = class _ImageThumbnailStateToIndexCandidateDiviner extends import_diviner_abstract4.AbstractDiviner {
230
281
  get payloadDivinerLimit() {
231
282
  return this.config.payloadDivinerLimit ?? 1e3;
232
283
  }
@@ -243,27 +294,55 @@ var ImageThumbnailStateToIndexCandidateDiviner = class _ImageThumbnailStateToInd
243
294
  const filteredResults = indexCandidateIdentityFunctions.map((is) => results.find(is));
244
295
  if (filteredResults.includes(void 0)) return void 0;
245
296
  const indexCandidates = filteredResults.filter(import_exists2.exists);
246
- return [bw, ...indexCandidates];
297
+ return [
298
+ bw,
299
+ ...indexCandidates
300
+ ];
247
301
  }
248
302
  async divineHandler(payloads = []) {
249
303
  const lastState = payloads.find(import_module_model.isModuleState);
250
- if (!lastState) return [{ schema: import_module_model.ModuleStateSchema, state: { offset: 0 } }];
304
+ if (!lastState) return [
305
+ {
306
+ schema: import_module_model.ModuleStateSchema,
307
+ state: {
308
+ offset: 0
309
+ }
310
+ }
311
+ ];
251
312
  const { offset } = lastState.state;
252
313
  const boundWitnessDiviner = await this.getBoundWitnessDivinerForStore();
253
- const query = await new import_payload_builder4.PayloadBuilder({ schema: import_diviner_boundwitness_model.BoundWitnessDivinerQuerySchema }).fields({ limit: this.payloadDivinerLimit, offset, order, payload_schemas }).build();
254
- const batch = await boundWitnessDiviner.divine([query]);
255
- if (batch.length === 0) return [lastState];
314
+ const query = await new import_payload_builder4.PayloadBuilder({
315
+ schema: import_diviner_boundwitness_model.BoundWitnessDivinerQuerySchema
316
+ }).fields({
317
+ limit: this.payloadDivinerLimit,
318
+ offset,
319
+ order,
320
+ payload_schemas
321
+ }).build();
322
+ const batch = await boundWitnessDiviner.divine([
323
+ query
324
+ ]);
325
+ if (batch.length === 0) return [
326
+ lastState
327
+ ];
256
328
  const sourceArchivist = await this.getArchivistForStore();
257
- const indexCandidates = (await Promise.all(
258
- batch.filter(import_boundwitness_model2.isBoundWitnessWithMeta).map((bw) => _ImageThumbnailStateToIndexCandidateDiviner.getPayloadsInBoundWitness(bw, sourceArchivist))
259
- )).filter(import_exists2.exists).flat();
260
- const nextState = { schema: import_module_model.ModuleStateSchema, state: { ...lastState.state, offset: offset + batch.length } };
261
- return [nextState, ...indexCandidates];
329
+ const indexCandidates = (await Promise.all(batch.filter(import_boundwitness_model2.isBoundWitnessWithMeta).map((bw) => _ImageThumbnailStateToIndexCandidateDiviner.getPayloadsInBoundWitness(bw, sourceArchivist)))).filter(import_exists2.exists).flat();
330
+ const nextState = {
331
+ schema: import_module_model.ModuleStateSchema,
332
+ state: {
333
+ ...lastState.state,
334
+ offset: offset + batch.length
335
+ }
336
+ };
337
+ return [
338
+ nextState,
339
+ ...indexCandidates
340
+ ];
262
341
  }
263
342
  /**
264
- * Retrieves the archivist for the payloadStore
265
- * @returns The archivist for the payloadStore
266
- */
343
+ * Retrieves the archivist for the payloadStore
344
+ * @returns The archivist for the payloadStore
345
+ */
267
346
  async getArchivistForStore() {
268
347
  var _a, _b;
269
348
  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`);
@@ -271,19 +350,28 @@ var ImageThumbnailStateToIndexCandidateDiviner = class _ImageThumbnailStateToInd
271
350
  return import_archivist_wrapper.ArchivistWrapper.wrap(mod, this.account);
272
351
  }
273
352
  /**
274
- * Retrieves the BoundWitness Diviner for the payloadStore
275
- * @returns The BoundWitness Diviner for the payloadStore
276
- */
353
+ * Retrieves the BoundWitness Diviner for the payloadStore
354
+ * @returns The BoundWitness Diviner for the payloadStore
355
+ */
277
356
  async getBoundWitnessDivinerForStore() {
278
357
  var _a, _b;
279
- const name = (0, import_assert.assertEx)(
280
- (_b = (_a = this.config) == null ? void 0 : _a.payloadStore) == null ? void 0 : _b.boundWitnessDiviner,
281
- () => `${moduleName}: Config for payloadStore.boundWitnessDiviner not specified`
282
- );
358
+ const name = (0, import_assert.assertEx)((_b = (_a = this.config) == null ? void 0 : _a.payloadStore) == null ? void 0 : _b.boundWitnessDiviner, () => `${moduleName}: Config for payloadStore.boundWitnessDiviner not specified`);
283
359
  const mod = (0, import_assert.assertEx)(await this.resolve(name), () => `${moduleName}: Failed to resolve payloadStore.boundWitnessDiviner`);
284
360
  return import_diviner_wrapper.DivinerWrapper.wrap(mod, this.account);
285
361
  }
286
362
  };
363
+ __name(_ImageThumbnailStateToIndexCandidateDiviner, "ImageThumbnailStateToIndexCandidateDiviner");
364
+ __publicField(_ImageThumbnailStateToIndexCandidateDiviner, "configSchemas", [
365
+ ...__superGet(_ImageThumbnailStateToIndexCandidateDiviner, _ImageThumbnailStateToIndexCandidateDiviner, "configSchemas"),
366
+ ImageThumbnailStateToIndexCandidateDivinerConfigSchema
367
+ ]);
368
+ __publicField(_ImageThumbnailStateToIndexCandidateDiviner, "defaultConfigSchema", ImageThumbnailStateToIndexCandidateDivinerConfigSchema);
369
+ __publicField(_ImageThumbnailStateToIndexCandidateDiviner, "labels", {
370
+ ...__superGet(_ImageThumbnailStateToIndexCandidateDiviner, _ImageThumbnailStateToIndexCandidateDiviner, "labels"),
371
+ ...ImageThumbnailDivinerLabels,
372
+ "network.xyo.diviner.stage": "stateToIndexCandidateDiviner"
373
+ });
374
+ var ImageThumbnailStateToIndexCandidateDiviner = _ImageThumbnailStateToIndexCandidateDiviner;
287
375
  // Annotate the CommonJS export names for ESM import in node:
288
376
  0 && (module.exports = {
289
377
  ImageThumbnailDiviner,
@@ -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/index.js'\n","import { IndexingDiviner } from '@xyo-network/diviner-indexing'\nimport { AttachableDivinerInstance } from '@xyo-network/diviner-model'\n\nimport { ImageThumbnailDivinerLabels } from './ImageThumbnailDivinerLabels.js'\n\nexport class ImageThumbnailDiviner extends IndexingDiviner implements AttachableDivinerInstance {\n static override labels: ImageThumbnailDivinerLabels = { ...super.labels, ...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 { Hash } from '@xylabs/hex'\nimport { BoundWitness, isBoundWitness } from '@xyo-network/boundwitness-model'\nimport { AbstractDiviner } from '@xyo-network/diviner-abstract'\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, Schema, WithMeta, WithSources } 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.js'\n\n/**\n * Transforms candidates for image thumbnail indexing into their indexed representation\n */\nexport class ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner extends AbstractDiviner {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, DivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = DivinerConfigSchema\n static override labels: ImageThumbnailDivinerStageLabels = {\n ...super.labels,\n ...ImageThumbnailDivinerLabels,\n 'network.xyo.diviner.stage': 'indexCandidateToIndexDiviner',\n }\n\n protected override async divineHandler(payloads: Payload[] = []): Promise<WithSources<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 > 0 && imageThumbnailPayloads.length > 0 && timestampPayloads.length > 0) {\n const payloadDictionary = await PayloadBuilder.toDataHashMap(payloads)\n // eslint-disable-next-line unicorn/no-array-reduce\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) as WithMeta<ImageThumbnail> | undefined\n const timestampPayload = [payloadDictionary[timestampHash]].find(isTimestamp) as WithMeta<TimeStamp>\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, http } = imageThumbnailPayload\n const { timestamp } = timestampPayload\n const { status } = http ?? {}\n const success = !!imageThumbnailPayload.url // Call anything with a thumbnail url a success\n const sources: Hash[] = await PayloadBuilder.dataHashes([bw, imageThumbnailPayload, timestampPayload])\n const urlPayload = { schema: UrlSchema, url }\n const key: Hash = await PayloadBuilder.dataHash(urlPayload)\n const fields: ImageThumbnailResultIndexFields = { key, sources, success, timestamp }\n if (status) fields.status = status\n const result = await new PayloadBuilder<WithSources<ImageThumbnailResultIndex>>({\n schema: ImageThumbnailResultIndexSchema,\n })\n .fields(fields)\n .build()\n return [result]\n }),\n )\n return indexes.flat()\n }\n return []\n }\n}\n","import { exists } from '@xylabs/exists'\nimport { AbstractDiviner } from '@xyo-network/diviner-abstract'\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, Schema } from '@xyo-network/payload-model'\nimport { UrlSchema } from '@xyo-network/url-payload-plugin'\n\nimport { ImageThumbnailDivinerLabels, ImageThumbnailDivinerStageLabels } from './ImageThumbnailDivinerLabels.js'\n\n/**\n * Transforms an ImageThumbnailIndex response into an ImageThumbnailResponse response\n */\nexport class ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner extends AbstractDiviner {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, DivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = DivinerConfigSchema\n static override labels: ImageThumbnailDivinerStageLabels = {\n ...super.labels,\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 > 0 && imageThumbnailResultIndexes.length > 0) {\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<Omit<ImageThumbnailResult, 'timestamp' | 'success' | 'sources'>>({ schema: UrlSchema })\n .fields({ url })\n .build()\n const key = await PayloadBuilder.dataHash(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/diviner-abstract'\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, Schema } from '@xyo-network/payload-model'\nimport { UrlSchema } from '@xyo-network/url-payload-plugin'\n\nimport { ImageThumbnailDivinerLabels, ImageThumbnailDivinerStageLabels } from './ImageThumbnailDivinerLabels.js'\nimport { ImageThumbnailResultQuery } from './ImageThumbnailResultQuery.js'\n\n/**\n * A diviner that converts ImageThumbnailDivinerQuery to ImageThumbnailResultQuery\n */\nexport class ImageThumbnailQueryToImageThumbnailIndexQueryDiviner extends AbstractDiviner {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, DivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = DivinerConfigSchema\n static override labels: ImageThumbnailDivinerStageLabels = {\n ...super.labels,\n ...ImageThumbnailDivinerLabels,\n 'network.xyo.diviner.stage': 'divinerQueryToIndexQueryDiviner',\n }\n protected override async divineHandler(\n payloads: Payload[] = [],\n ): Promise<Omit<Omit<ImageThumbnailResultQuery, 'timestamp' | 'success'> & Partial<Pick<ImageThumbnailResultQuery, 'success'>>, 'timestamp'>[]> {\n const queries = payloads.filter(isImageThumbnailDivinerQuery)\n if (queries.length > 0) {\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 PayloadBuilder.dataHash(urlPayload)\n const fields: Omit<ImageThumbnailResultQuery, 'schema' | 'timestamp' | 'success'> & Partial<Pick<ImageThumbnailResultQuery, 'success'>> = {\n key,\n limit,\n offset,\n order,\n }\n if (payloadSuccess !== undefined) fields.success = payloadSuccess\n if (payloadStatus !== undefined) fields.status = payloadStatus\n return await new PayloadBuilder<\n Omit<ImageThumbnailResultQuery, 'timestamp' | 'success'> & Partial<Pick<ImageThumbnailResultQuery, 'success'>>\n >({ schema: PayloadDivinerQuerySchema })\n .fields(fields)\n .build()\n }),\n )\n return results\n }\n return []\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.js'\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 { ArchivistInstance } from '@xyo-network/archivist-model'\nimport { ArchivistWrapper } from '@xyo-network/archivist-wrapper'\nimport { BoundWitness, isBoundWitnessWithMeta } from '@xyo-network/boundwitness-model'\nimport { AbstractDiviner } from '@xyo-network/diviner-abstract'\nimport { BoundWitnessDivinerQueryPayload, BoundWitnessDivinerQuerySchema } from '@xyo-network/diviner-boundwitness-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, Schema, WithMeta, WithSources } from '@xyo-network/payload-model'\nimport { isTimestamp, TimeStamp, TimestampSchema } from '@xyo-network/witness-timestamp'\n\nimport { ImageThumbnailDivinerLabels, ImageThumbnailDivinerStageLabels } from '../ImageThumbnailDivinerLabels.js'\nimport { ImageThumbnailDivinerState } from '../ImageThumbnailDivinerState.js'\nimport { ImageThumbnailStateToIndexCandidateDivinerConfigSchema } from './Config.js'\nimport { ImageThumbnailStateToIndexCandidateDivinerParams } from './Params.js'\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 readonly configSchemas: Schema[] = [...super.configSchemas, ImageThumbnailStateToIndexCandidateDivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = ImageThumbnailStateToIndexCandidateDivinerConfigSchema\n static override labels: ImageThumbnailDivinerStageLabels = {\n ...super.labels,\n ...ImageThumbnailDivinerLabels,\n 'network.xyo.diviner.stage': 'stateToIndexCandidateDiviner',\n }\n\n get payloadDivinerLimit() {\n return this.config.payloadDivinerLimit ?? 1000\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.includes(undefined)) return undefined\n const indexCandidates: IndexCandidate[] = filteredResults.filter(exists) as WithMeta<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])) as WithSources<WithMeta<BoundWitness>>[]\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(isBoundWitnessWithMeta).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_diviner_abstract","import_diviner_model","import_image_thumbnail_payload_plugin","import_payload_builder","import_url_payload_plugin","import_diviner_abstract","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_boundwitness_model","import_diviner_abstract","import_image_thumbnail_payload_plugin","import_payload_builder","import_witness_timestamp"]}
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/index.ts'\n","import { IndexingDiviner } from '@xyo-network/diviner-indexing'\nimport { AttachableDivinerInstance } from '@xyo-network/diviner-model'\n\nimport { ImageThumbnailDivinerLabels } from './ImageThumbnailDivinerLabels.ts'\n\nexport class ImageThumbnailDiviner extends IndexingDiviner implements AttachableDivinerInstance {\n static override labels: ImageThumbnailDivinerLabels = { ...super.labels, ...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 { Hash } from '@xylabs/hex'\nimport { BoundWitness, isBoundWitness } from '@xyo-network/boundwitness-model'\nimport { AbstractDiviner } from '@xyo-network/diviner-abstract'\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, Schema, WithMeta, WithSources } 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.ts'\n\n/**\n * Transforms candidates for image thumbnail indexing into their indexed representation\n */\nexport class ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner extends AbstractDiviner {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, DivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = DivinerConfigSchema\n static override labels: ImageThumbnailDivinerStageLabels = {\n ...super.labels,\n ...ImageThumbnailDivinerLabels,\n 'network.xyo.diviner.stage': 'indexCandidateToIndexDiviner',\n }\n\n protected override async divineHandler(payloads: Payload[] = []): Promise<WithSources<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 > 0 && imageThumbnailPayloads.length > 0 && timestampPayloads.length > 0) {\n const payloadDictionary = await PayloadBuilder.toDataHashMap(payloads)\n // eslint-disable-next-line unicorn/no-array-reduce\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) as WithMeta<ImageThumbnail> | undefined\n const timestampPayload = [payloadDictionary[timestampHash]].find(isTimestamp) as WithMeta<TimeStamp>\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, http } = imageThumbnailPayload\n const { timestamp } = timestampPayload\n const { status } = http ?? {}\n const success = !!imageThumbnailPayload.url // Call anything with a thumbnail url a success\n const sources: Hash[] = await PayloadBuilder.dataHashes([bw, imageThumbnailPayload, timestampPayload])\n const urlPayload = { schema: UrlSchema, url }\n const key: Hash = await PayloadBuilder.dataHash(urlPayload)\n const fields: ImageThumbnailResultIndexFields = { key, sources, success, timestamp }\n if (status) fields.status = status\n const result = await new PayloadBuilder<WithSources<ImageThumbnailResultIndex>>({\n schema: ImageThumbnailResultIndexSchema,\n })\n .fields(fields)\n .build()\n return [result]\n }),\n )\n return indexes.flat()\n }\n return []\n }\n}\n","import { exists } from '@xylabs/exists'\nimport { AbstractDiviner } from '@xyo-network/diviner-abstract'\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, Schema } from '@xyo-network/payload-model'\nimport { UrlSchema } from '@xyo-network/url-payload-plugin'\n\nimport { ImageThumbnailDivinerLabels, ImageThumbnailDivinerStageLabels } from './ImageThumbnailDivinerLabels.ts'\n\n/**\n * Transforms an ImageThumbnailIndex response into an ImageThumbnailResponse response\n */\nexport class ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner extends AbstractDiviner {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, DivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = DivinerConfigSchema\n static override labels: ImageThumbnailDivinerStageLabels = {\n ...super.labels,\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 > 0 && imageThumbnailResultIndexes.length > 0) {\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<Omit<ImageThumbnailResult, 'timestamp' | 'success' | 'sources'>>({ schema: UrlSchema })\n .fields({ url })\n .build()\n const key = await PayloadBuilder.dataHash(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/diviner-abstract'\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, Schema } from '@xyo-network/payload-model'\nimport { UrlSchema } from '@xyo-network/url-payload-plugin'\n\nimport { ImageThumbnailDivinerLabels, ImageThumbnailDivinerStageLabels } from './ImageThumbnailDivinerLabels.ts'\nimport { ImageThumbnailResultQuery } from './ImageThumbnailResultQuery.ts'\n\n/**\n * A diviner that converts ImageThumbnailDivinerQuery to ImageThumbnailResultQuery\n */\nexport class ImageThumbnailQueryToImageThumbnailIndexQueryDiviner extends AbstractDiviner {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, DivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = DivinerConfigSchema\n static override labels: ImageThumbnailDivinerStageLabels = {\n ...super.labels,\n ...ImageThumbnailDivinerLabels,\n 'network.xyo.diviner.stage': 'divinerQueryToIndexQueryDiviner',\n }\n\n protected override async divineHandler(\n payloads: Payload[] = [],\n ): Promise<Omit<Omit<ImageThumbnailResultQuery, 'timestamp' | 'success'> & Partial<Pick<ImageThumbnailResultQuery, 'success'>>, 'timestamp'>[]> {\n const queries = payloads.filter(isImageThumbnailDivinerQuery)\n if (queries.length > 0) {\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 PayloadBuilder.dataHash(urlPayload)\n const fields: Omit<ImageThumbnailResultQuery, 'schema' | 'timestamp' | 'success'> & Partial<Pick<ImageThumbnailResultQuery, 'success'>> = {\n key,\n limit,\n offset,\n order,\n }\n if (payloadSuccess !== undefined) fields.success = payloadSuccess\n if (payloadStatus !== undefined) fields.status = payloadStatus\n return await new PayloadBuilder<\n Omit<ImageThumbnailResultQuery, 'timestamp' | 'success'> & Partial<Pick<ImageThumbnailResultQuery, 'success'>>\n >({ schema: PayloadDivinerQuerySchema })\n .fields(fields)\n .build()\n }),\n )\n return results\n }\n return []\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.ts'\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 { ArchivistInstance } from '@xyo-network/archivist-model'\nimport { ArchivistWrapper } from '@xyo-network/archivist-wrapper'\nimport { BoundWitness, isBoundWitnessWithMeta } from '@xyo-network/boundwitness-model'\nimport { AbstractDiviner } from '@xyo-network/diviner-abstract'\nimport { BoundWitnessDivinerQueryPayload, BoundWitnessDivinerQuerySchema } from '@xyo-network/diviner-boundwitness-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, Schema, WithMeta, WithSources } from '@xyo-network/payload-model'\nimport { isTimestamp, TimeStamp, TimestampSchema } from '@xyo-network/witness-timestamp'\n\nimport { ImageThumbnailDivinerLabels, ImageThumbnailDivinerStageLabels } from '../ImageThumbnailDivinerLabels.ts'\nimport { ImageThumbnailDivinerState } from '../ImageThumbnailDivinerState.ts'\nimport { ImageThumbnailStateToIndexCandidateDivinerConfigSchema } from './Config.ts'\nimport { ImageThumbnailStateToIndexCandidateDivinerParams } from './Params.ts'\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 readonly configSchemas: Schema[] = [...super.configSchemas, ImageThumbnailStateToIndexCandidateDivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = ImageThumbnailStateToIndexCandidateDivinerConfigSchema\n static override labels: ImageThumbnailDivinerStageLabels = {\n ...super.labels,\n ...ImageThumbnailDivinerLabels,\n 'network.xyo.diviner.stage': 'stateToIndexCandidateDiviner',\n }\n\n get payloadDivinerLimit() {\n return this.config.payloadDivinerLimit ?? 1000\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.includes(undefined)) return undefined\n const indexCandidates: IndexCandidate[] = filteredResults.filter(exists) as WithMeta<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])) as WithSources<WithMeta<BoundWitness>>[]\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(isBoundWitnessWithMeta).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 /**\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":["ImageThumbnailDivinerLabels","ImageThumbnailDiviner","IndexingDiviner","labels","ImageThumbnailDivinerLabels","ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner","AbstractDiviner","divineHandler","payloads","bws","filter","isBoundWitness","imageThumbnailPayloads","isImageThumbnail","timestampPayloads","isTimestamp","length","payloadDictionary","PayloadBuilder","toDataHashMap","tuples","reduce","acc","curr","imageThumbnailIndex","payload_schemas","findIndex","schema","ImageThumbnailSchema","timestampIndex","TimestampSchema","imageThumbnailHash","payload_hashes","timestampHash","imageThumbnailPayload","find","timestampPayload","push","indexes","Promise","all","map","bw","sourceUrl","url","http","timestamp","status","success","sources","dataHashes","urlPayload","UrlSchema","key","dataHash","fields","result","ImageThumbnailResultIndexSchema","build","flat","configSchemas","DivinerConfigSchema","defaultConfigSchema","labels","ImageThumbnailDivinerLabels","import_diviner_abstract","import_diviner_model","import_image_thumbnail_payload_plugin","import_payload_builder","import_url_payload_plugin","ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner","AbstractDiviner","divineHandler","payloads","imageThumbnailDivinerQueries","filter","isImageThumbnailDivinerQuery","imageThumbnailResultIndexes","isImageThumbnailResultIndex","length","keyToUrlDictionary","Object","fromEntries","Promise","all","map","imageThumbnailDivinerQuery","url","urlPayload","PayloadBuilder","schema","UrlSchema","fields","build","key","dataHash","imageThumbnailResultIndex","commonFields","ImageThumbnailResultSchema","exists","configSchemas","DivinerConfigSchema","defaultConfigSchema","labels","ImageThumbnailDivinerLabels","import_diviner_abstract","import_diviner_model","import_image_thumbnail_payload_plugin","import_payload_builder","import_url_payload_plugin","ImageThumbnailQueryToImageThumbnailIndexQueryDiviner","AbstractDiviner","divineHandler","payloads","queries","filter","isImageThumbnailDivinerQuery","length","results","Promise","all","map","query","limit","payloadLimit","offset","payloadOffset","order","payloadOrder","status","payloadStatus","success","payloadSuccess","url","urlPayload","schema","UrlSchema","key","PayloadBuilder","dataHash","fields","undefined","PayloadDivinerQuerySchema","build","configSchemas","DivinerConfigSchema","defaultConfigSchema","labels","ImageThumbnailDivinerLabels","import_diviner_payload_model","isImageThumbnailResultQuery","isPayloadOfSchemaType","PayloadDivinerQuerySchema","import_image_thumbnail_payload_plugin","ImageThumbnailStateToIndexCandidateDivinerSchema","ImageThumbnailDivinerSchema","ImageThumbnailStateToIndexCandidateDivinerConfigSchema","ImageThumbnailStateToIndexCandidateDivinerSchema","import_exists","import_boundwitness_model","import_diviner_abstract","import_image_thumbnail_payload_plugin","import_payload_builder","import_witness_timestamp","payload_schemas","ImageThumbnailSchema","TimestampSchema","indexCandidateIdentityFunctions","isImageThumbnail","isTimestamp","order","moduleName","ImageThumbnailStateToIndexCandidateDiviner","AbstractDiviner","payloadDivinerLimit","config","getPayloadsInBoundWitness","bw","archivist","indexes","map","schema","findIndex","s","hashes","index","payload_hashes","results","get","filteredResults","is","find","includes","undefined","indexCandidates","filter","exists","divineHandler","payloads","lastState","isModuleState","ModuleStateSchema","state","offset","boundWitnessDiviner","getBoundWitnessDivinerForStore","query","PayloadBuilder","BoundWitnessDivinerQuerySchema","fields","limit","build","batch","divine","length","sourceArchivist","getArchivistForStore","Promise","all","isBoundWitnessWithMeta","flat","nextState","name","assertEx","payloadStore","mod","resolve","ArchivistWrapper","wrap","account","DivinerWrapper","configSchemas","ImageThumbnailStateToIndexCandidateDivinerConfigSchema","defaultConfigSchema","labels","ImageThumbnailDivinerLabels"]}
@@ -1,2 +1,2 @@
1
- export * from './Diviner/index.js';
1
+ export * from './Diviner/index.ts';
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -1,2 +1,2 @@
1
- export * from './Diviner/index.js';
1
+ export * from './Diviner/index.ts';
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -1,2 +1,2 @@
1
- export * from './Diviner/index.js';
1
+ export * from './Diviner/index.ts';
2
2
  //# sourceMappingURL=index.d.ts.map