@xyo-network/image-thumbnail-plugin 2.75.8 → 2.75.9
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/docs.json +17132 -7878
- package/dist/node/Plugin.d.cts +4 -4
- package/dist/node/Plugin.d.cts.map +1 -1
- package/dist/node/Plugin.d.mts +4 -4
- package/dist/node/Plugin.d.mts.map +1 -1
- package/dist/node/Plugin.d.ts +4 -4
- package/dist/node/Plugin.d.ts.map +1 -1
- package/dist/node/Plugin.js +27 -256
- package/dist/node/Plugin.js.map +1 -1
- package/dist/node/Plugin.mjs +21 -250
- package/dist/node/Plugin.mjs.map +1 -1
- package/dist/node/Witness/Witness.d.cts +0 -25
- package/dist/node/Witness/Witness.d.cts.map +1 -1
- package/dist/node/Witness/Witness.d.mts +0 -25
- package/dist/node/Witness/Witness.d.mts.map +1 -1
- package/dist/node/Witness/Witness.d.ts +0 -25
- package/dist/node/Witness/Witness.d.ts.map +1 -1
- package/dist/node/Witness/Witness.js +7 -30
- package/dist/node/Witness/Witness.js.map +1 -1
- package/dist/node/Witness/Witness.mjs +7 -30
- package/dist/node/Witness/Witness.mjs.map +1 -1
- package/dist/node/Witness/index.js +7 -30
- package/dist/node/Witness/index.js.map +1 -1
- package/dist/node/Witness/index.mjs +7 -30
- package/dist/node/Witness/index.mjs.map +1 -1
- package/dist/node/index.d.cts +1 -1
- package/dist/node/index.d.cts.map +1 -1
- package/dist/node/index.d.mts +1 -1
- package/dist/node/index.d.mts.map +1 -1
- package/dist/node/index.d.ts +1 -1
- package/dist/node/index.d.ts.map +1 -1
- package/dist/node/index.js +31 -261
- package/dist/node/index.js.map +1 -1
- package/dist/node/index.mjs +22 -252
- package/dist/node/index.mjs.map +1 -1
- package/package.json +19 -24
- package/src/Plugin.ts +1 -1
- package/src/Witness/Witness.ts +5 -30
- package/src/index.ts +1 -1
- package/dist/node/Diviner/Config.d.cts +0 -34
- package/dist/node/Diviner/Config.d.cts.map +0 -1
- package/dist/node/Diviner/Config.d.mts +0 -34
- package/dist/node/Diviner/Config.d.mts.map +0 -1
- package/dist/node/Diviner/Config.d.ts +0 -34
- package/dist/node/Diviner/Config.d.ts.map +0 -1
- package/dist/node/Diviner/Config.js +0 -32
- package/dist/node/Diviner/Config.js.map +0 -1
- package/dist/node/Diviner/Config.mjs +0 -7
- package/dist/node/Diviner/Config.mjs.map +0 -1
- package/dist/node/Diviner/Diviner.d.cts +0 -48
- package/dist/node/Diviner/Diviner.d.cts.map +0 -1
- package/dist/node/Diviner/Diviner.d.mts +0 -48
- package/dist/node/Diviner/Diviner.d.mts.map +0 -1
- package/dist/node/Diviner/Diviner.d.ts +0 -48
- package/dist/node/Diviner/Diviner.d.ts.map +0 -1
- package/dist/node/Diviner/Diviner.js +0 -237
- package/dist/node/Diviner/Diviner.js.map +0 -1
- package/dist/node/Diviner/Diviner.mjs +0 -212
- package/dist/node/Diviner/Diviner.mjs.map +0 -1
- package/dist/node/Diviner/Params.d.cts +0 -5
- package/dist/node/Diviner/Params.d.cts.map +0 -1
- package/dist/node/Diviner/Params.d.mts +0 -5
- package/dist/node/Diviner/Params.d.mts.map +0 -1
- package/dist/node/Diviner/Params.d.ts +0 -5
- package/dist/node/Diviner/Params.d.ts.map +0 -1
- package/dist/node/Diviner/Params.js +0 -19
- package/dist/node/Diviner/Params.js.map +0 -1
- package/dist/node/Diviner/Params.mjs +0 -1
- package/dist/node/Diviner/Params.mjs.map +0 -1
- package/dist/node/Diviner/index.d.cts +0 -4
- package/dist/node/Diviner/index.d.cts.map +0 -1
- package/dist/node/Diviner/index.d.mts +0 -4
- package/dist/node/Diviner/index.d.mts.map +0 -1
- package/dist/node/Diviner/index.d.ts +0 -4
- package/dist/node/Diviner/index.d.ts.map +0 -1
- package/dist/node/Diviner/index.js +0 -239
- package/dist/node/Diviner/index.js.map +0 -1
- package/dist/node/Diviner/index.mjs +0 -211
- package/dist/node/Diviner/index.mjs.map +0 -1
- package/src/Diviner/Config.ts +0 -37
- package/src/Diviner/Diviner.ts +0 -280
- package/src/Diviner/Params.ts +0 -6
- package/src/Diviner/index.ts +0 -3
package/src/Witness/Witness.ts
CHANGED
|
@@ -13,7 +13,6 @@ import FileType from 'file-type'
|
|
|
13
13
|
import graphicsMagick from 'gm'
|
|
14
14
|
import hasbin from 'hasbin'
|
|
15
15
|
import { sha256 } from 'hash-wasm'
|
|
16
|
-
import { LRUCache } from 'lru-cache'
|
|
17
16
|
import shajs from 'sha.js'
|
|
18
17
|
import Url from 'url-parse'
|
|
19
18
|
|
|
@@ -40,21 +39,8 @@ export interface DnsError extends Error {
|
|
|
40
39
|
export class ImageThumbnailWitness<TParams extends ImageThumbnailWitnessParams = ImageThumbnailWitnessParams> extends AbstractWitness<TParams> {
|
|
41
40
|
static override configSchemas = [ImageThumbnailWitnessConfigSchema]
|
|
42
41
|
|
|
43
|
-
private _cache?: LRUCache<string, ImageThumbnail>
|
|
44
42
|
private _semaphore = new Semaphore(this.maxAsyncProcesses)
|
|
45
43
|
|
|
46
|
-
get cache() {
|
|
47
|
-
this._cache =
|
|
48
|
-
this._cache ??
|
|
49
|
-
new LRUCache<string, ImageThumbnail>({
|
|
50
|
-
max: this.maxCacheEntries,
|
|
51
|
-
maxSize: this.maxCacheBytes,
|
|
52
|
-
//just returning the size of the data
|
|
53
|
-
sizeCalculation: (value) => value.url?.length ?? 1,
|
|
54
|
-
})
|
|
55
|
-
return this._cache
|
|
56
|
-
}
|
|
57
|
-
|
|
58
44
|
get encoding() {
|
|
59
45
|
return this.config.encoding ?? 'PNG'
|
|
60
46
|
}
|
|
@@ -71,14 +57,6 @@ export class ImageThumbnailWitness<TParams extends ImageThumbnailWitnessParams =
|
|
|
71
57
|
return this.config.maxAsyncProcesses ?? 2
|
|
72
58
|
}
|
|
73
59
|
|
|
74
|
-
get maxCacheBytes() {
|
|
75
|
-
return this.config.maxCacheBytes ?? 1024 * 1024 * 16 //64MB max size
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
get maxCacheEntries() {
|
|
79
|
-
return this.config.maxCacheEntries ?? 500
|
|
80
|
-
}
|
|
81
|
-
|
|
82
60
|
get quality() {
|
|
83
61
|
return this.config.quality ?? 50
|
|
84
62
|
}
|
|
@@ -149,10 +127,6 @@ export class ImageThumbnailWitness<TParams extends ImageThumbnailWitnessParams =
|
|
|
149
127
|
compact(
|
|
150
128
|
await Promise.all(
|
|
151
129
|
urlPayloads.map<Promise<ImageThumbnail>>(async ({ url }) => {
|
|
152
|
-
const cachedResult = this.cache.get(url)
|
|
153
|
-
if (cachedResult) {
|
|
154
|
-
return cachedResult
|
|
155
|
-
}
|
|
156
130
|
let result: ImageThumbnail
|
|
157
131
|
|
|
158
132
|
//if it is a data URL, return a Buffer
|
|
@@ -170,7 +144,6 @@ export class ImageThumbnailWitness<TParams extends ImageThumbnailWitnessParams =
|
|
|
170
144
|
const mutatedUrl = this.checkIpfsUrl(url)
|
|
171
145
|
result = await this.fromHttp(mutatedUrl, url)
|
|
172
146
|
}
|
|
173
|
-
this.cache.set(url, result)
|
|
174
147
|
return result
|
|
175
148
|
}),
|
|
176
149
|
),
|
|
@@ -205,6 +178,7 @@ export class ImageThumbnailWitness<TParams extends ImageThumbnailWitnessParams =
|
|
|
205
178
|
return this.createThumbnailDataUrl(imageBuffer)
|
|
206
179
|
}
|
|
207
180
|
|
|
181
|
+
// eslint-disable-next-line complexity
|
|
208
182
|
private async fromHttp(url: string, sourceUrl?: string): Promise<ImageThumbnail> {
|
|
209
183
|
let response: AxiosResponse
|
|
210
184
|
let dnsResult: string[]
|
|
@@ -254,8 +228,8 @@ export class ImageThumbnailWitness<TParams extends ImageThumbnailWitnessParams =
|
|
|
254
228
|
}
|
|
255
229
|
|
|
256
230
|
if (response.status >= 200 && response.status < 300) {
|
|
257
|
-
const contentType: string = response.headers['content-type']?.toString()
|
|
258
|
-
const [mediaType, fileType] = contentType
|
|
231
|
+
const contentType: string | undefined = response.headers['content-type']?.toString()
|
|
232
|
+
const [mediaType, fileType] = contentType?.split('/') ?? ['', '']
|
|
259
233
|
result.mime = result.mime ?? {}
|
|
260
234
|
result.mime.returned = mediaType
|
|
261
235
|
const sourceBuffer = Buffer.from(response.data, 'binary')
|
|
@@ -308,7 +282,8 @@ export class ImageThumbnailWitness<TParams extends ImageThumbnailWitnessParams =
|
|
|
308
282
|
break
|
|
309
283
|
}
|
|
310
284
|
default: {
|
|
311
|
-
|
|
285
|
+
const [detectedMediaType] = result.mime.detected?.mime?.split('/') ?? ['', '']
|
|
286
|
+
switch (detectedMediaType) {
|
|
312
287
|
case 'image': {
|
|
313
288
|
await processImage()
|
|
314
289
|
result.mime.type = result.mime.detected?.mime
|
package/src/index.ts
CHANGED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { DivinerConfig } from '@xyo-network/diviner-model';
|
|
2
|
-
export declare const ImageThumbnailDivinerConfigSchema: "network.xyo.image.thumbnail.diviner.config";
|
|
3
|
-
export type ImageThumbnailDivinerConfigSchema = typeof ImageThumbnailDivinerConfigSchema;
|
|
4
|
-
/**
|
|
5
|
-
* Describes an Archivist/Diviner combination
|
|
6
|
-
* that enables searching signed payloads
|
|
7
|
-
*/
|
|
8
|
-
export interface SearchableStorage {
|
|
9
|
-
archivist: string;
|
|
10
|
-
boundWitnessDiviner: string;
|
|
11
|
-
payloadDiviner: string;
|
|
12
|
-
}
|
|
13
|
-
export type ImageThumbnailDivinerConfig = DivinerConfig<{
|
|
14
|
-
/** @deprecated Use appropriate Storage */
|
|
15
|
-
archivist?: string;
|
|
16
|
-
/**
|
|
17
|
-
* Where the diviner should store it's index
|
|
18
|
-
*/
|
|
19
|
-
indexStore?: SearchableStorage;
|
|
20
|
-
/** @deprecated Use appropriate Storage */
|
|
21
|
-
payloadDiviner?: string;
|
|
22
|
-
payloadDivinerLimit?: number;
|
|
23
|
-
pollFrequency?: number;
|
|
24
|
-
schema: ImageThumbnailDivinerConfigSchema;
|
|
25
|
-
/**
|
|
26
|
-
* Where the diviner should persist its internal state
|
|
27
|
-
*/
|
|
28
|
-
stateStore?: SearchableStorage;
|
|
29
|
-
/**
|
|
30
|
-
* Where the diviner should look for stored thumbnails
|
|
31
|
-
*/
|
|
32
|
-
thumbnailStore?: SearchableStorage;
|
|
33
|
-
}>;
|
|
34
|
-
//# sourceMappingURL=Config.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../../../src/Diviner/Config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAG1D,eAAO,MAAM,iCAAiC,8CAAoD,CAAA;AAClG,MAAM,MAAM,iCAAiC,GAAG,OAAO,iCAAiC,CAAA;AAExF;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAA;IACjB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,cAAc,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,MAAM,2BAA2B,GAAG,aAAa,CAAC;IACtD,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;OAEG;IACH,UAAU,CAAC,EAAE,iBAAiB,CAAA;IAC9B,0CAA0C;IAC1C,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,MAAM,EAAE,iCAAiC,CAAA;IACzC;;OAEG;IACH,UAAU,CAAC,EAAE,iBAAiB,CAAA;IAC9B;;OAEG;IACH,cAAc,CAAC,EAAE,iBAAiB,CAAA;CACnC,CAAC,CAAA"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { DivinerConfig } from '@xyo-network/diviner-model';
|
|
2
|
-
export declare const ImageThumbnailDivinerConfigSchema: "network.xyo.image.thumbnail.diviner.config";
|
|
3
|
-
export type ImageThumbnailDivinerConfigSchema = typeof ImageThumbnailDivinerConfigSchema;
|
|
4
|
-
/**
|
|
5
|
-
* Describes an Archivist/Diviner combination
|
|
6
|
-
* that enables searching signed payloads
|
|
7
|
-
*/
|
|
8
|
-
export interface SearchableStorage {
|
|
9
|
-
archivist: string;
|
|
10
|
-
boundWitnessDiviner: string;
|
|
11
|
-
payloadDiviner: string;
|
|
12
|
-
}
|
|
13
|
-
export type ImageThumbnailDivinerConfig = DivinerConfig<{
|
|
14
|
-
/** @deprecated Use appropriate Storage */
|
|
15
|
-
archivist?: string;
|
|
16
|
-
/**
|
|
17
|
-
* Where the diviner should store it's index
|
|
18
|
-
*/
|
|
19
|
-
indexStore?: SearchableStorage;
|
|
20
|
-
/** @deprecated Use appropriate Storage */
|
|
21
|
-
payloadDiviner?: string;
|
|
22
|
-
payloadDivinerLimit?: number;
|
|
23
|
-
pollFrequency?: number;
|
|
24
|
-
schema: ImageThumbnailDivinerConfigSchema;
|
|
25
|
-
/**
|
|
26
|
-
* Where the diviner should persist its internal state
|
|
27
|
-
*/
|
|
28
|
-
stateStore?: SearchableStorage;
|
|
29
|
-
/**
|
|
30
|
-
* Where the diviner should look for stored thumbnails
|
|
31
|
-
*/
|
|
32
|
-
thumbnailStore?: SearchableStorage;
|
|
33
|
-
}>;
|
|
34
|
-
//# sourceMappingURL=Config.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../../../src/Diviner/Config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAG1D,eAAO,MAAM,iCAAiC,8CAAoD,CAAA;AAClG,MAAM,MAAM,iCAAiC,GAAG,OAAO,iCAAiC,CAAA;AAExF;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAA;IACjB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,cAAc,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,MAAM,2BAA2B,GAAG,aAAa,CAAC;IACtD,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;OAEG;IACH,UAAU,CAAC,EAAE,iBAAiB,CAAA;IAC9B,0CAA0C;IAC1C,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,MAAM,EAAE,iCAAiC,CAAA;IACzC;;OAEG;IACH,UAAU,CAAC,EAAE,iBAAiB,CAAA;IAC9B;;OAEG;IACH,cAAc,CAAC,EAAE,iBAAiB,CAAA;CACnC,CAAC,CAAA"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { DivinerConfig } from '@xyo-network/diviner-model';
|
|
2
|
-
export declare const ImageThumbnailDivinerConfigSchema: "network.xyo.image.thumbnail.diviner.config";
|
|
3
|
-
export type ImageThumbnailDivinerConfigSchema = typeof ImageThumbnailDivinerConfigSchema;
|
|
4
|
-
/**
|
|
5
|
-
* Describes an Archivist/Diviner combination
|
|
6
|
-
* that enables searching signed payloads
|
|
7
|
-
*/
|
|
8
|
-
export interface SearchableStorage {
|
|
9
|
-
archivist: string;
|
|
10
|
-
boundWitnessDiviner: string;
|
|
11
|
-
payloadDiviner: string;
|
|
12
|
-
}
|
|
13
|
-
export type ImageThumbnailDivinerConfig = DivinerConfig<{
|
|
14
|
-
/** @deprecated Use appropriate Storage */
|
|
15
|
-
archivist?: string;
|
|
16
|
-
/**
|
|
17
|
-
* Where the diviner should store it's index
|
|
18
|
-
*/
|
|
19
|
-
indexStore?: SearchableStorage;
|
|
20
|
-
/** @deprecated Use appropriate Storage */
|
|
21
|
-
payloadDiviner?: string;
|
|
22
|
-
payloadDivinerLimit?: number;
|
|
23
|
-
pollFrequency?: number;
|
|
24
|
-
schema: ImageThumbnailDivinerConfigSchema;
|
|
25
|
-
/**
|
|
26
|
-
* Where the diviner should persist its internal state
|
|
27
|
-
*/
|
|
28
|
-
stateStore?: SearchableStorage;
|
|
29
|
-
/**
|
|
30
|
-
* Where the diviner should look for stored thumbnails
|
|
31
|
-
*/
|
|
32
|
-
thumbnailStore?: SearchableStorage;
|
|
33
|
-
}>;
|
|
34
|
-
//# sourceMappingURL=Config.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../../../src/Diviner/Config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAG1D,eAAO,MAAM,iCAAiC,8CAAoD,CAAA;AAClG,MAAM,MAAM,iCAAiC,GAAG,OAAO,iCAAiC,CAAA;AAExF;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAA;IACjB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,cAAc,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,MAAM,2BAA2B,GAAG,aAAa,CAAC;IACtD,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;OAEG;IACH,UAAU,CAAC,EAAE,iBAAiB,CAAA;IAC9B,0CAA0C;IAC1C,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,MAAM,EAAE,iCAAiC,CAAA;IACzC;;OAEG;IACH,UAAU,CAAC,EAAE,iBAAiB,CAAA;IAC9B;;OAEG;IACH,cAAc,CAAC,EAAE,iBAAiB,CAAA;CACnC,CAAC,CAAA"}
|
|
@@ -1,32 +0,0 @@
|
|
|
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/Diviner/Config.ts
|
|
21
|
-
var Config_exports = {};
|
|
22
|
-
__export(Config_exports, {
|
|
23
|
-
ImageThumbnailDivinerConfigSchema: () => ImageThumbnailDivinerConfigSchema
|
|
24
|
-
});
|
|
25
|
-
module.exports = __toCommonJS(Config_exports);
|
|
26
|
-
var import_image_thumbnail_payload_plugin = require("@xyo-network/image-thumbnail-payload-plugin");
|
|
27
|
-
var ImageThumbnailDivinerConfigSchema = `${import_image_thumbnail_payload_plugin.ImageThumbnailSchema}.diviner.config`;
|
|
28
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
29
|
-
0 && (module.exports = {
|
|
30
|
-
ImageThumbnailDivinerConfigSchema
|
|
31
|
-
});
|
|
32
|
-
//# sourceMappingURL=Config.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/Diviner/Config.ts"],"sourcesContent":["import { DivinerConfig } from '@xyo-network/diviner-model'\nimport { ImageThumbnailSchema } from '@xyo-network/image-thumbnail-payload-plugin'\n\nexport const ImageThumbnailDivinerConfigSchema = `${ImageThumbnailSchema}.diviner.config` as const\nexport type ImageThumbnailDivinerConfigSchema = typeof ImageThumbnailDivinerConfigSchema\n\n/**\n * Describes an Archivist/Diviner combination\n * that enables searching signed payloads\n */\nexport interface SearchableStorage {\n archivist: string\n boundWitnessDiviner: string\n payloadDiviner: string\n}\n\nexport type ImageThumbnailDivinerConfig = DivinerConfig<{\n /** @deprecated Use appropriate Storage */\n archivist?: string\n /**\n * Where the diviner should store it's index\n */\n indexStore?: SearchableStorage\n /** @deprecated Use appropriate Storage */\n payloadDiviner?: string\n payloadDivinerLimit?: number\n pollFrequency?: number\n schema: ImageThumbnailDivinerConfigSchema\n /**\n * Where the diviner should persist its internal state\n */\n stateStore?: SearchableStorage\n /**\n * Where the diviner should look for stored thumbnails\n */\n thumbnailStore?: SearchableStorage\n}>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,4CAAqC;AAE9B,IAAM,oCAAoC,GAAG,0DAAoB;","names":[]}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
// src/Diviner/Config.ts
|
|
2
|
-
import { ImageThumbnailSchema } from "@xyo-network/image-thumbnail-payload-plugin";
|
|
3
|
-
var ImageThumbnailDivinerConfigSchema = `${ImageThumbnailSchema}.diviner.config`;
|
|
4
|
-
export {
|
|
5
|
-
ImageThumbnailDivinerConfigSchema
|
|
6
|
-
};
|
|
7
|
-
//# sourceMappingURL=Config.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/Diviner/Config.ts"],"sourcesContent":["import { DivinerConfig } from '@xyo-network/diviner-model'\nimport { ImageThumbnailSchema } from '@xyo-network/image-thumbnail-payload-plugin'\n\nexport const ImageThumbnailDivinerConfigSchema = `${ImageThumbnailSchema}.diviner.config` as const\nexport type ImageThumbnailDivinerConfigSchema = typeof ImageThumbnailDivinerConfigSchema\n\n/**\n * Describes an Archivist/Diviner combination\n * that enables searching signed payloads\n */\nexport interface SearchableStorage {\n archivist: string\n boundWitnessDiviner: string\n payloadDiviner: string\n}\n\nexport type ImageThumbnailDivinerConfig = DivinerConfig<{\n /** @deprecated Use appropriate Storage */\n archivist?: string\n /**\n * Where the diviner should store it's index\n */\n indexStore?: SearchableStorage\n /** @deprecated Use appropriate Storage */\n payloadDiviner?: string\n payloadDivinerLimit?: number\n pollFrequency?: number\n schema: ImageThumbnailDivinerConfigSchema\n /**\n * Where the diviner should persist its internal state\n */\n stateStore?: SearchableStorage\n /**\n * Where the diviner should look for stored thumbnails\n */\n thumbnailStore?: SearchableStorage\n}>\n"],"mappings":";AACA,SAAS,4BAA4B;AAE9B,IAAM,oCAAoC,GAAG,oBAAoB;","names":[]}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { AbstractDiviner } from '@xyo-network/abstract-diviner';
|
|
2
|
-
import { ArchivistWrapper } from '@xyo-network/archivist-wrapper';
|
|
3
|
-
import { DivinerWrapper } from '@xyo-network/diviner-wrapper';
|
|
4
|
-
import { Payload } from '@xyo-network/payload-model';
|
|
5
|
-
import { ImageThumbnailDivinerConfig } from './Config';
|
|
6
|
-
import { ImageThumbnailDivinerParams } from './Params';
|
|
7
|
-
interface ImageThumbnailDivinerState {
|
|
8
|
-
offset: number;
|
|
9
|
-
}
|
|
10
|
-
type ConfigStoreKey = 'indexStore' | 'stateStore' | 'thumbnailStore';
|
|
11
|
-
type ConfigStore = Extract<keyof ImageThumbnailDivinerConfig, ConfigStoreKey>;
|
|
12
|
-
declare const ImageThumbnailResultIndexSchema: "network.xyo.image.thumbnail.index";
|
|
13
|
-
type ImageThumbnailResultIndexSchema = typeof ImageThumbnailResultIndexSchema;
|
|
14
|
-
interface ImageThumbnailResultInfo {
|
|
15
|
-
sources: string[];
|
|
16
|
-
status: number;
|
|
17
|
-
timestamp: number;
|
|
18
|
-
url: string;
|
|
19
|
-
}
|
|
20
|
-
type ImageThumbnailResult = Payload<ImageThumbnailResultInfo, ImageThumbnailResultIndexSchema>;
|
|
21
|
-
export declare class ImageThumbnailDiviner<TParams extends ImageThumbnailDivinerParams = ImageThumbnailDivinerParams> extends AbstractDiviner<TParams> {
|
|
22
|
-
static configSchemas: ("network.xyo.image.thumbnail.diviner.config" | "network.xyo.diviner.config")[];
|
|
23
|
-
private _pollId?;
|
|
24
|
-
get payloadDivinerLimit(): number;
|
|
25
|
-
get pollFrequency(): number;
|
|
26
|
-
protected backgroundDivine: () => Promise<void>;
|
|
27
|
-
/**
|
|
28
|
-
* Commit the internal state of the Diviner process. This is similar
|
|
29
|
-
* to a transaction completion in a database and should only be called
|
|
30
|
-
* when results have been successfully persisted to the appropriate
|
|
31
|
-
* external stores.
|
|
32
|
-
*/
|
|
33
|
-
protected commitState(state: ImageThumbnailDivinerState): Promise<void>;
|
|
34
|
-
protected divineHandler(payloads?: Payload[]): Promise<ImageThumbnailResult[]>;
|
|
35
|
-
protected getArchivistForStore(store: ConfigStore, wrap?: boolean): Promise<import("@xyo-network/archivist-model").ArchivistInstance | ArchivistWrapper<import("@xyo-network/archivist-model").ArchivistModule>>;
|
|
36
|
-
protected getBoundWitnessDivinerForStore(store: ConfigStore, wrap?: boolean): Promise<import("@xyo-network/diviner-model").DivinerInstance | DivinerWrapper<import("@xyo-network/diviner-model").DivinerModule>>;
|
|
37
|
-
protected getPayloadDivinerForStore(store: ConfigStore, wrap?: boolean): Promise<import("@xyo-network/diviner-model").DivinerInstance | DivinerWrapper<import("@xyo-network/diviner-model").DivinerModule>>;
|
|
38
|
-
/**
|
|
39
|
-
* Retrieves the last state of the Diviner process. Used to recover state after
|
|
40
|
-
* preemptions, reboots, etc.
|
|
41
|
-
*/
|
|
42
|
-
protected retrieveState(): Promise<ImageThumbnailDivinerState | undefined>;
|
|
43
|
-
protected startHandler(): Promise<boolean>;
|
|
44
|
-
protected stopHandler(_timeout?: number | undefined): Promise<boolean>;
|
|
45
|
-
private poll;
|
|
46
|
-
}
|
|
47
|
-
export {};
|
|
48
|
-
//# sourceMappingURL=Diviner.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../../src/Diviner/Diviner.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAE/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAMjE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAG7D,OAAO,EAAyB,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAI3E,OAAO,EAAE,2BAA2B,EAAqC,MAAM,UAAU,CAAA;AACzF,OAAO,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAA;AAUtD,UAAU,0BAA0B;IAClC,MAAM,EAAE,MAAM,CAAA;CACf;AASD,KAAK,cAAc,GAAG,YAAY,GAAG,YAAY,GAAG,gBAAgB,CAAA;AAEpE,KAAK,WAAW,GAAG,OAAO,CAAC,MAAM,2BAA2B,EAAE,cAAc,CAAC,CAAA;AAE7E,QAAA,MAAM,+BAA+B,qCAA2C,CAAA;AAChF,KAAK,+BAA+B,GAAG,OAAO,+BAA+B,CAAA;AAE7E,UAAU,wBAAwB;IAChC,OAAO,EAAE,MAAM,EAAE,CAAA;IAEjB,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,KAAK,oBAAoB,GAAG,OAAO,CAAC,wBAAwB,EAAE,+BAA+B,CAAC,CAAA;AAmB9F,qBAAa,qBAAqB,CAAC,OAAO,SAAS,2BAA2B,GAAG,2BAA2B,CAAE,SAAQ,eAAe,CAAC,OAAO,CAAC;IAC5I,OAAgB,aAAa,kFAA2D;IAExF,OAAO,CAAC,OAAO,CAAC,CAAkC;IAElD,IAAI,mBAAmB,WAEtB;IAED,IAAI,aAAa,WAEhB;IAED,SAAS,CAAC,gBAAgB,QAAa,QAAQ,IAAI,CAAC,CA2DnD;IAED;;;;;OAKG;cACa,WAAW,CAAC,KAAK,EAAE,0BAA0B;cAUpC,aAAa,CAAC,QAAQ,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;cAmBjF,oBAAoB,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,OAAO;cAMvD,8BAA8B,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,OAAO;cAQjE,yBAAyB,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,OAAO;IAM5E;;;OAGG;cACa,aAAa,IAAI,OAAO,CAAC,0BAA0B,GAAG,SAAS,CAAC;cA8CvD,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC;cAMhC,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;IAQrF,OAAO,CAAC,IAAI;CAab"}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { AbstractDiviner } from '@xyo-network/abstract-diviner';
|
|
2
|
-
import { ArchivistWrapper } from '@xyo-network/archivist-wrapper';
|
|
3
|
-
import { DivinerWrapper } from '@xyo-network/diviner-wrapper';
|
|
4
|
-
import { Payload } from '@xyo-network/payload-model';
|
|
5
|
-
import { ImageThumbnailDivinerConfig } from './Config';
|
|
6
|
-
import { ImageThumbnailDivinerParams } from './Params';
|
|
7
|
-
interface ImageThumbnailDivinerState {
|
|
8
|
-
offset: number;
|
|
9
|
-
}
|
|
10
|
-
type ConfigStoreKey = 'indexStore' | 'stateStore' | 'thumbnailStore';
|
|
11
|
-
type ConfigStore = Extract<keyof ImageThumbnailDivinerConfig, ConfigStoreKey>;
|
|
12
|
-
declare const ImageThumbnailResultIndexSchema: "network.xyo.image.thumbnail.index";
|
|
13
|
-
type ImageThumbnailResultIndexSchema = typeof ImageThumbnailResultIndexSchema;
|
|
14
|
-
interface ImageThumbnailResultInfo {
|
|
15
|
-
sources: string[];
|
|
16
|
-
status: number;
|
|
17
|
-
timestamp: number;
|
|
18
|
-
url: string;
|
|
19
|
-
}
|
|
20
|
-
type ImageThumbnailResult = Payload<ImageThumbnailResultInfo, ImageThumbnailResultIndexSchema>;
|
|
21
|
-
export declare class ImageThumbnailDiviner<TParams extends ImageThumbnailDivinerParams = ImageThumbnailDivinerParams> extends AbstractDiviner<TParams> {
|
|
22
|
-
static configSchemas: ("network.xyo.image.thumbnail.diviner.config" | "network.xyo.diviner.config")[];
|
|
23
|
-
private _pollId?;
|
|
24
|
-
get payloadDivinerLimit(): number;
|
|
25
|
-
get pollFrequency(): number;
|
|
26
|
-
protected backgroundDivine: () => Promise<void>;
|
|
27
|
-
/**
|
|
28
|
-
* Commit the internal state of the Diviner process. This is similar
|
|
29
|
-
* to a transaction completion in a database and should only be called
|
|
30
|
-
* when results have been successfully persisted to the appropriate
|
|
31
|
-
* external stores.
|
|
32
|
-
*/
|
|
33
|
-
protected commitState(state: ImageThumbnailDivinerState): Promise<void>;
|
|
34
|
-
protected divineHandler(payloads?: Payload[]): Promise<ImageThumbnailResult[]>;
|
|
35
|
-
protected getArchivistForStore(store: ConfigStore, wrap?: boolean): Promise<import("@xyo-network/archivist-model").ArchivistInstance | ArchivistWrapper<import("@xyo-network/archivist-model").ArchivistModule>>;
|
|
36
|
-
protected getBoundWitnessDivinerForStore(store: ConfigStore, wrap?: boolean): Promise<import("@xyo-network/diviner-model").DivinerInstance | DivinerWrapper<import("@xyo-network/diviner-model").DivinerModule>>;
|
|
37
|
-
protected getPayloadDivinerForStore(store: ConfigStore, wrap?: boolean): Promise<import("@xyo-network/diviner-model").DivinerInstance | DivinerWrapper<import("@xyo-network/diviner-model").DivinerModule>>;
|
|
38
|
-
/**
|
|
39
|
-
* Retrieves the last state of the Diviner process. Used to recover state after
|
|
40
|
-
* preemptions, reboots, etc.
|
|
41
|
-
*/
|
|
42
|
-
protected retrieveState(): Promise<ImageThumbnailDivinerState | undefined>;
|
|
43
|
-
protected startHandler(): Promise<boolean>;
|
|
44
|
-
protected stopHandler(_timeout?: number | undefined): Promise<boolean>;
|
|
45
|
-
private poll;
|
|
46
|
-
}
|
|
47
|
-
export {};
|
|
48
|
-
//# sourceMappingURL=Diviner.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../../src/Diviner/Diviner.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAE/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAMjE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAG7D,OAAO,EAAyB,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAI3E,OAAO,EAAE,2BAA2B,EAAqC,MAAM,UAAU,CAAA;AACzF,OAAO,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAA;AAUtD,UAAU,0BAA0B;IAClC,MAAM,EAAE,MAAM,CAAA;CACf;AASD,KAAK,cAAc,GAAG,YAAY,GAAG,YAAY,GAAG,gBAAgB,CAAA;AAEpE,KAAK,WAAW,GAAG,OAAO,CAAC,MAAM,2BAA2B,EAAE,cAAc,CAAC,CAAA;AAE7E,QAAA,MAAM,+BAA+B,qCAA2C,CAAA;AAChF,KAAK,+BAA+B,GAAG,OAAO,+BAA+B,CAAA;AAE7E,UAAU,wBAAwB;IAChC,OAAO,EAAE,MAAM,EAAE,CAAA;IAEjB,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,KAAK,oBAAoB,GAAG,OAAO,CAAC,wBAAwB,EAAE,+BAA+B,CAAC,CAAA;AAmB9F,qBAAa,qBAAqB,CAAC,OAAO,SAAS,2BAA2B,GAAG,2BAA2B,CAAE,SAAQ,eAAe,CAAC,OAAO,CAAC;IAC5I,OAAgB,aAAa,kFAA2D;IAExF,OAAO,CAAC,OAAO,CAAC,CAAkC;IAElD,IAAI,mBAAmB,WAEtB;IAED,IAAI,aAAa,WAEhB;IAED,SAAS,CAAC,gBAAgB,QAAa,QAAQ,IAAI,CAAC,CA2DnD;IAED;;;;;OAKG;cACa,WAAW,CAAC,KAAK,EAAE,0BAA0B;cAUpC,aAAa,CAAC,QAAQ,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;cAmBjF,oBAAoB,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,OAAO;cAMvD,8BAA8B,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,OAAO;cAQjE,yBAAyB,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,OAAO;IAM5E;;;OAGG;cACa,aAAa,IAAI,OAAO,CAAC,0BAA0B,GAAG,SAAS,CAAC;cA8CvD,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC;cAMhC,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;IAQrF,OAAO,CAAC,IAAI;CAab"}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { AbstractDiviner } from '@xyo-network/abstract-diviner';
|
|
2
|
-
import { ArchivistWrapper } from '@xyo-network/archivist-wrapper';
|
|
3
|
-
import { DivinerWrapper } from '@xyo-network/diviner-wrapper';
|
|
4
|
-
import { Payload } from '@xyo-network/payload-model';
|
|
5
|
-
import { ImageThumbnailDivinerConfig } from './Config';
|
|
6
|
-
import { ImageThumbnailDivinerParams } from './Params';
|
|
7
|
-
interface ImageThumbnailDivinerState {
|
|
8
|
-
offset: number;
|
|
9
|
-
}
|
|
10
|
-
type ConfigStoreKey = 'indexStore' | 'stateStore' | 'thumbnailStore';
|
|
11
|
-
type ConfigStore = Extract<keyof ImageThumbnailDivinerConfig, ConfigStoreKey>;
|
|
12
|
-
declare const ImageThumbnailResultIndexSchema: "network.xyo.image.thumbnail.index";
|
|
13
|
-
type ImageThumbnailResultIndexSchema = typeof ImageThumbnailResultIndexSchema;
|
|
14
|
-
interface ImageThumbnailResultInfo {
|
|
15
|
-
sources: string[];
|
|
16
|
-
status: number;
|
|
17
|
-
timestamp: number;
|
|
18
|
-
url: string;
|
|
19
|
-
}
|
|
20
|
-
type ImageThumbnailResult = Payload<ImageThumbnailResultInfo, ImageThumbnailResultIndexSchema>;
|
|
21
|
-
export declare class ImageThumbnailDiviner<TParams extends ImageThumbnailDivinerParams = ImageThumbnailDivinerParams> extends AbstractDiviner<TParams> {
|
|
22
|
-
static configSchemas: ("network.xyo.image.thumbnail.diviner.config" | "network.xyo.diviner.config")[];
|
|
23
|
-
private _pollId?;
|
|
24
|
-
get payloadDivinerLimit(): number;
|
|
25
|
-
get pollFrequency(): number;
|
|
26
|
-
protected backgroundDivine: () => Promise<void>;
|
|
27
|
-
/**
|
|
28
|
-
* Commit the internal state of the Diviner process. This is similar
|
|
29
|
-
* to a transaction completion in a database and should only be called
|
|
30
|
-
* when results have been successfully persisted to the appropriate
|
|
31
|
-
* external stores.
|
|
32
|
-
*/
|
|
33
|
-
protected commitState(state: ImageThumbnailDivinerState): Promise<void>;
|
|
34
|
-
protected divineHandler(payloads?: Payload[]): Promise<ImageThumbnailResult[]>;
|
|
35
|
-
protected getArchivistForStore(store: ConfigStore, wrap?: boolean): Promise<import("@xyo-network/archivist-model").ArchivistInstance | ArchivistWrapper<import("@xyo-network/archivist-model").ArchivistModule>>;
|
|
36
|
-
protected getBoundWitnessDivinerForStore(store: ConfigStore, wrap?: boolean): Promise<import("@xyo-network/diviner-model").DivinerInstance | DivinerWrapper<import("@xyo-network/diviner-model").DivinerModule>>;
|
|
37
|
-
protected getPayloadDivinerForStore(store: ConfigStore, wrap?: boolean): Promise<import("@xyo-network/diviner-model").DivinerInstance | DivinerWrapper<import("@xyo-network/diviner-model").DivinerModule>>;
|
|
38
|
-
/**
|
|
39
|
-
* Retrieves the last state of the Diviner process. Used to recover state after
|
|
40
|
-
* preemptions, reboots, etc.
|
|
41
|
-
*/
|
|
42
|
-
protected retrieveState(): Promise<ImageThumbnailDivinerState | undefined>;
|
|
43
|
-
protected startHandler(): Promise<boolean>;
|
|
44
|
-
protected stopHandler(_timeout?: number | undefined): Promise<boolean>;
|
|
45
|
-
private poll;
|
|
46
|
-
}
|
|
47
|
-
export {};
|
|
48
|
-
//# sourceMappingURL=Diviner.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../../src/Diviner/Diviner.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAE/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAMjE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAG7D,OAAO,EAAyB,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAI3E,OAAO,EAAE,2BAA2B,EAAqC,MAAM,UAAU,CAAA;AACzF,OAAO,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAA;AAUtD,UAAU,0BAA0B;IAClC,MAAM,EAAE,MAAM,CAAA;CACf;AASD,KAAK,cAAc,GAAG,YAAY,GAAG,YAAY,GAAG,gBAAgB,CAAA;AAEpE,KAAK,WAAW,GAAG,OAAO,CAAC,MAAM,2BAA2B,EAAE,cAAc,CAAC,CAAA;AAE7E,QAAA,MAAM,+BAA+B,qCAA2C,CAAA;AAChF,KAAK,+BAA+B,GAAG,OAAO,+BAA+B,CAAA;AAE7E,UAAU,wBAAwB;IAChC,OAAO,EAAE,MAAM,EAAE,CAAA;IAEjB,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,KAAK,oBAAoB,GAAG,OAAO,CAAC,wBAAwB,EAAE,+BAA+B,CAAC,CAAA;AAmB9F,qBAAa,qBAAqB,CAAC,OAAO,SAAS,2BAA2B,GAAG,2BAA2B,CAAE,SAAQ,eAAe,CAAC,OAAO,CAAC;IAC5I,OAAgB,aAAa,kFAA2D;IAExF,OAAO,CAAC,OAAO,CAAC,CAAkC;IAElD,IAAI,mBAAmB,WAEtB;IAED,IAAI,aAAa,WAEhB;IAED,SAAS,CAAC,gBAAgB,QAAa,QAAQ,IAAI,CAAC,CA2DnD;IAED;;;;;OAKG;cACa,WAAW,CAAC,KAAK,EAAE,0BAA0B;cAUpC,aAAa,CAAC,QAAQ,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;cAmBjF,oBAAoB,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,OAAO;cAMvD,8BAA8B,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,OAAO;cAQjE,yBAAyB,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,OAAO;IAM5E;;;OAGG;cACa,aAAa,IAAI,OAAO,CAAC,0BAA0B,GAAG,SAAS,CAAC;cA8CvD,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC;cAMhC,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;IAQrF,OAAO,CAAC,IAAI;CAab"}
|