@xyo-network/diviner-image-thumbnail 2.83.0 → 2.84.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/Diviner/ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner.d.cts.map +1 -1
- package/dist/browser/Diviner/ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner.d.mts.map +1 -1
- package/dist/browser/Diviner/ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner.d.ts.map +1 -1
- package/dist/browser/index.cjs +22 -20
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.js +17 -15
- package/dist/browser/index.js.map +1 -1
- package/dist/node/Diviner/ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner.d.cts.map +1 -1
- package/dist/node/Diviner/ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner.d.mts.map +1 -1
- package/dist/node/Diviner/ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner.d.ts.map +1 -1
- package/dist/node/index.cjs +296 -0
- package/dist/node/index.cjs.map +1 -0
- package/dist/node/index.js +104 -129
- package/dist/node/index.js.map +1 -1
- package/package.json +32 -32
- package/src/Diviner/ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner.ts +2 -2
- package/src/Diviner/ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner.ts +15 -13
- package/src/Diviner/ImageThumbnailQueryToImageThumbnailIndexQueryDiviner.ts +2 -2
- package/src/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Diviner.ts +1 -1
- package/dist/node/index.mjs +0 -267
- package/dist/node/index.mjs.map +0 -1
package/dist/node/index.js
CHANGED
|
@@ -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
|
-
|
|
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
|
|
10
|
+
var ImageThumbnailDiviner = class extends IndexingDiviner {
|
|
45
11
|
static labels = ImageThumbnailDivinerLabels;
|
|
46
12
|
};
|
|
47
13
|
|
|
48
14
|
// src/Diviner/ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner.ts
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
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(
|
|
65
|
-
const imageThumbnailPayloads = payloads.filter(
|
|
66
|
-
const timestampPayloads = payloads.filter(
|
|
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
|
|
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 ===
|
|
73
|
-
const timestampIndex = (_b = curr.payload_schemas) == null ? void 0 : _b.findIndex((schema) => schema ===
|
|
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(
|
|
77
|
-
const timestampPayload = [payloadDictionary[timestampHash]].find(
|
|
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
|
|
92
|
-
const urlPayload = { schema:
|
|
93
|
-
const key = await
|
|
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 = new
|
|
67
|
+
const result = await new PayloadBuilder({ schema: ImageThumbnailResultIndexSchema }).fields(fields).build();
|
|
98
68
|
return [result];
|
|
99
69
|
})
|
|
100
70
|
);
|
|
@@ -105,62 +75,68 @@ var ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner = class extends imp
|
|
|
105
75
|
};
|
|
106
76
|
|
|
107
77
|
// src/Diviner/ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner.ts
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
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(
|
|
123
|
-
const imageThumbnailResultIndexes = payloads.filter(
|
|
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 = new
|
|
130
|
-
const key = await
|
|
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
|
)
|
|
134
108
|
);
|
|
135
|
-
return
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
109
|
+
return (await Promise.all(
|
|
110
|
+
imageThumbnailResultIndexes.map(async (imageThumbnailResultIndex) => {
|
|
111
|
+
const { key, schema, ...commonFields } = imageThumbnailResultIndex;
|
|
112
|
+
const url = keyToUrlDictionary == null ? void 0 : keyToUrlDictionary[key];
|
|
113
|
+
if (url) {
|
|
114
|
+
const fields = { ...commonFields, url };
|
|
115
|
+
return await new PayloadBuilder2({ schema: ImageThumbnailResultSchema }).fields(fields).build();
|
|
116
|
+
}
|
|
117
|
+
})
|
|
118
|
+
)).filter(exists);
|
|
143
119
|
}
|
|
144
120
|
return [];
|
|
145
121
|
}
|
|
146
122
|
};
|
|
147
123
|
|
|
148
124
|
// src/Diviner/ImageThumbnailQueryToImageThumbnailIndexQueryDiviner.ts
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
var ImageThumbnailQueryToImageThumbnailIndexQueryDiviner = class extends
|
|
157
|
-
static configSchemas = [
|
|
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];
|
|
158
134
|
static labels = {
|
|
159
135
|
...ImageThumbnailDivinerLabels,
|
|
160
136
|
"network.xyo.diviner.stage": "divinerQueryToIndexQueryDiviner"
|
|
161
137
|
};
|
|
162
138
|
async divineHandler(payloads = []) {
|
|
163
|
-
const queries = payloads.filter(
|
|
139
|
+
const queries = payloads.filter(isImageThumbnailDivinerQuery2);
|
|
164
140
|
if (queries.length) {
|
|
165
141
|
const results = await Promise.all(
|
|
166
142
|
queries.map(async (query) => {
|
|
@@ -168,14 +144,14 @@ var ImageThumbnailQueryToImageThumbnailIndexQueryDiviner = class extends import_
|
|
|
168
144
|
const limit = payloadLimit ?? 1;
|
|
169
145
|
const order2 = payloadOrder ?? "desc";
|
|
170
146
|
const offset = payloadOffset ?? 0;
|
|
171
|
-
const urlPayload = { schema:
|
|
172
|
-
const key = await
|
|
147
|
+
const urlPayload = { schema: UrlSchema3, url };
|
|
148
|
+
const key = await PayloadHasher3.hashAsync(urlPayload);
|
|
173
149
|
const fields = { key, limit, offset, order: order2 };
|
|
174
150
|
if (payloadSuccess !== void 0)
|
|
175
151
|
fields.success = payloadSuccess;
|
|
176
152
|
if (payloadStatus !== void 0)
|
|
177
153
|
fields.status = payloadStatus;
|
|
178
|
-
return new
|
|
154
|
+
return await new PayloadBuilder3({ schema: PayloadDivinerQuerySchema }).fields(fields).build();
|
|
179
155
|
})
|
|
180
156
|
);
|
|
181
157
|
return results;
|
|
@@ -185,36 +161,36 @@ var ImageThumbnailQueryToImageThumbnailIndexQueryDiviner = class extends import_
|
|
|
185
161
|
};
|
|
186
162
|
|
|
187
163
|
// src/Diviner/ImageThumbnailResultQuery.ts
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
var isImageThumbnailResultQuery =
|
|
164
|
+
import { PayloadDivinerQuerySchema as PayloadDivinerQuerySchema2 } from "@xyo-network/diviner-payload-model";
|
|
165
|
+
import { isPayloadOfSchemaType } from "@xyo-network/payload-model";
|
|
166
|
+
var isImageThumbnailResultQuery = isPayloadOfSchemaType(PayloadDivinerQuerySchema2);
|
|
191
167
|
|
|
192
168
|
// src/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Schema.ts
|
|
193
|
-
|
|
194
|
-
var ImageThumbnailStateToIndexCandidateDivinerSchema = `${
|
|
169
|
+
import { ImageThumbnailDivinerSchema } from "@xyo-network/image-thumbnail-payload-plugin";
|
|
170
|
+
var ImageThumbnailStateToIndexCandidateDivinerSchema = `${ImageThumbnailDivinerSchema}.stage.stateToIndexCandidateDiviner`;
|
|
195
171
|
|
|
196
172
|
// src/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Config.ts
|
|
197
173
|
var ImageThumbnailStateToIndexCandidateDivinerConfigSchema = `${ImageThumbnailStateToIndexCandidateDivinerSchema}.config`;
|
|
198
174
|
|
|
199
175
|
// src/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Diviner.ts
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
var payload_schemas = [
|
|
213
|
-
var indexCandidateIdentityFunctions = [
|
|
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];
|
|
214
190
|
var order = "asc";
|
|
215
191
|
var moduleName = "ImageThumbnailStateToIndexCandidateDiviner";
|
|
216
|
-
var ImageThumbnailStateToIndexCandidateDiviner = class _ImageThumbnailStateToIndexCandidateDiviner extends
|
|
217
|
-
static configSchemas = [
|
|
192
|
+
var ImageThumbnailStateToIndexCandidateDiviner = class _ImageThumbnailStateToIndexCandidateDiviner extends AbstractDiviner4 {
|
|
193
|
+
static configSchemas = [DivinerConfigSchema4, ImageThumbnailStateToIndexCandidateDivinerConfigSchema];
|
|
218
194
|
static labels = {
|
|
219
195
|
...ImageThumbnailDivinerLabels,
|
|
220
196
|
"network.xyo.diviner.stage": "stateToIndexCandidateDiviner"
|
|
@@ -235,24 +211,24 @@ var ImageThumbnailStateToIndexCandidateDiviner = class _ImageThumbnailStateToInd
|
|
|
235
211
|
const filteredResults = indexCandidateIdentityFunctions.map((is) => results.find(is));
|
|
236
212
|
if (filteredResults.some((f) => f === void 0))
|
|
237
213
|
return void 0;
|
|
238
|
-
const indexCandidates = filteredResults.filter(
|
|
214
|
+
const indexCandidates = filteredResults.filter(exists2);
|
|
239
215
|
return [bw, ...indexCandidates];
|
|
240
216
|
}
|
|
241
217
|
async divineHandler(payloads = []) {
|
|
242
|
-
const lastState = payloads.find(
|
|
218
|
+
const lastState = payloads.find(isModuleState);
|
|
243
219
|
if (!lastState)
|
|
244
|
-
return [{ schema:
|
|
220
|
+
return [{ schema: ModuleStateSchema, state: { offset: 0 } }];
|
|
245
221
|
const { offset } = lastState.state;
|
|
246
222
|
const boundWitnessDiviner = await this.getBoundWitnessDivinerForStore();
|
|
247
|
-
const query = new
|
|
223
|
+
const query = await new PayloadBuilder4({ schema: BoundWitnessDivinerQuerySchema }).fields({ limit: this.payloadDivinerLimit, offset, order, payload_schemas }).build();
|
|
248
224
|
const batch = await boundWitnessDiviner.divine([query]);
|
|
249
225
|
if (batch.length === 0)
|
|
250
226
|
return [lastState];
|
|
251
227
|
const sourceArchivist = await this.getArchivistForStore();
|
|
252
228
|
const indexCandidates = (await Promise.all(
|
|
253
|
-
batch.filter(
|
|
254
|
-
)).filter(
|
|
255
|
-
const nextState = { schema:
|
|
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 } };
|
|
256
232
|
return [nextState, ...indexCandidates];
|
|
257
233
|
}
|
|
258
234
|
/**
|
|
@@ -261,9 +237,9 @@ var ImageThumbnailStateToIndexCandidateDiviner = class _ImageThumbnailStateToInd
|
|
|
261
237
|
*/
|
|
262
238
|
async getArchivistForStore() {
|
|
263
239
|
var _a, _b;
|
|
264
|
-
const name =
|
|
265
|
-
const mod =
|
|
266
|
-
return
|
|
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);
|
|
267
243
|
}
|
|
268
244
|
/**
|
|
269
245
|
* Retrieves the BoundWitness Diviner for the payloadStore
|
|
@@ -271,16 +247,15 @@ var ImageThumbnailStateToIndexCandidateDiviner = class _ImageThumbnailStateToInd
|
|
|
271
247
|
*/
|
|
272
248
|
async getBoundWitnessDivinerForStore() {
|
|
273
249
|
var _a, _b;
|
|
274
|
-
const name =
|
|
250
|
+
const name = assertEx(
|
|
275
251
|
(_b = (_a = this.config) == null ? void 0 : _a.payloadStore) == null ? void 0 : _b.boundWitnessDiviner,
|
|
276
252
|
() => `${moduleName}: Config for payloadStore.boundWitnessDiviner not specified`
|
|
277
253
|
);
|
|
278
|
-
const mod =
|
|
279
|
-
return
|
|
254
|
+
const mod = assertEx(await this.resolve(name), () => `${moduleName}: Failed to resolve payloadStore.boundWitnessDiviner`);
|
|
255
|
+
return DivinerWrapper.wrap(mod, this.account);
|
|
280
256
|
}
|
|
281
257
|
};
|
|
282
|
-
|
|
283
|
-
0 && (module.exports = {
|
|
258
|
+
export {
|
|
284
259
|
ImageThumbnailDiviner,
|
|
285
260
|
ImageThumbnailDivinerLabels,
|
|
286
261
|
ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner,
|
|
@@ -290,5 +265,5 @@ var ImageThumbnailStateToIndexCandidateDiviner = class _ImageThumbnailStateToInd
|
|
|
290
265
|
ImageThumbnailStateToIndexCandidateDivinerConfigSchema,
|
|
291
266
|
ImageThumbnailStateToIndexCandidateDivinerSchema,
|
|
292
267
|
isImageThumbnailResultQuery
|
|
293
|
-
}
|
|
268
|
+
};
|
|
294
269
|
//# sourceMappingURL=index.js.map
|
package/dist/node/index.js.map
CHANGED
|
@@ -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 = 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 = 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 imageThumbnailResultIndexes\n .map((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 new PayloadBuilder<ImageThumbnailResult>({ schema: ImageThumbnailResultSchema }).fields(fields).build()\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 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 = 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.
|
|
16
|
-
"@xyo-network/archivist-model": "^2.
|
|
17
|
-
"@xyo-network/archivist-wrapper": "^2.
|
|
18
|
-
"@xyo-network/boundwitness-model": "^2.
|
|
19
|
-
"@xyo-network/
|
|
20
|
-
"@xyo-network/diviner-
|
|
21
|
-
"@xyo-network/diviner-
|
|
22
|
-
"@xyo-network/diviner-model": "^2.
|
|
23
|
-
"@xyo-network/diviner-
|
|
24
|
-
"@xyo-network/
|
|
25
|
-
"@xyo-network/image-thumbnail-payload-plugin": "~2.
|
|
26
|
-
"@xyo-network/module-model": "^2.
|
|
27
|
-
"@xyo-network/payload-builder": "^2.
|
|
28
|
-
"@xyo-network/payload-model": "^2.
|
|
29
|
-
"@xyo-network/url-payload-plugin": "~2.
|
|
30
|
-
"@xyo-network/witness-timestamp": "^2.
|
|
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.1",
|
|
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.1",
|
|
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.
|
|
35
|
-
"@xylabs/tsconfig": "^3.2.
|
|
36
|
-
"@xyo-network/account": "^2.
|
|
37
|
-
"@xyo-network/boundwitness-builder": "^2.
|
|
38
|
-
"@xyo-network/diviner-boundwitness-memory": "^2.
|
|
39
|
-
"@xyo-network/diviner-payload-memory": "^2.
|
|
40
|
-
"@xyo-network/manifest": "^2.
|
|
41
|
-
"@xyo-network/memory-archivist": "^2.
|
|
42
|
-
"@xyo-network/node-memory": "^2.
|
|
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.
|
|
63
|
-
"default": "./dist/node/index.
|
|
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.
|
|
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.
|
|
74
|
-
"module": "dist/node/index.
|
|
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
|
+
"version": "2.84.1",
|
|
85
|
+
"type": "module"
|
|
86
86
|
}
|