@xyo-network/diviner-image-thumbnail 3.0.2 → 3.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/dist/neutral/Diviner/Diviner.d.ts +7 -0
  2. package/dist/neutral/Diviner/Diviner.d.ts.map +1 -0
  3. package/dist/neutral/Diviner/ImageThumbnailDivinerLabels.d.ts +10 -0
  4. package/dist/neutral/Diviner/ImageThumbnailDivinerLabels.d.ts.map +1 -0
  5. package/dist/neutral/Diviner/ImageThumbnailDivinerState.d.ts +5 -0
  6. package/dist/neutral/Diviner/ImageThumbnailDivinerState.d.ts.map +1 -0
  7. package/dist/neutral/Diviner/ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner.d.ts +11 -0
  8. package/dist/neutral/Diviner/ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner.d.ts.map +1 -0
  9. package/dist/neutral/Diviner/ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner.d.ts +11 -0
  10. package/dist/neutral/Diviner/ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner.d.ts.map +1 -0
  11. package/dist/neutral/Diviner/ImageThumbnailQueryToImageThumbnailIndexQueryDiviner.d.ts +11 -0
  12. package/dist/neutral/Diviner/ImageThumbnailQueryToImageThumbnailIndexQueryDiviner.d.ts.map +1 -0
  13. package/dist/neutral/Diviner/ImageThumbnailResultQuery.d.ts +6 -0
  14. package/dist/neutral/Diviner/ImageThumbnailResultQuery.d.ts.map +1 -0
  15. package/dist/neutral/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Config.d.ts +11 -0
  16. package/dist/neutral/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Config.d.ts.map +1 -0
  17. package/dist/neutral/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Diviner.d.ts +64 -0
  18. package/dist/neutral/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Diviner.d.ts.map +1 -0
  19. package/dist/neutral/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Params.d.ts +5 -0
  20. package/dist/neutral/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Params.d.ts.map +1 -0
  21. package/dist/neutral/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Schema.d.ts +4 -0
  22. package/dist/neutral/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Schema.d.ts.map +1 -0
  23. package/dist/neutral/Diviner/ImageThumbnailStateToIndexCandidateDiviner/index.d.ts +5 -0
  24. package/dist/neutral/Diviner/ImageThumbnailStateToIndexCandidateDiviner/index.d.ts.map +1 -0
  25. package/dist/neutral/Diviner/index.d.ts +9 -0
  26. package/dist/neutral/Diviner/index.d.ts.map +1 -0
  27. package/dist/neutral/index.d.ts +2 -142
  28. package/dist/neutral/index.d.ts.map +1 -0
  29. package/dist/neutral/index.mjs +28 -10
  30. package/dist/neutral/index.mjs.map +1 -1
  31. package/package.json +52 -52
  32. package/src/Diviner/Diviner.ts +1 -1
  33. package/src/Diviner/ImageThumbnailDivinerLabels.ts +3 -5
  34. package/src/Diviner/ImageThumbnailDivinerState.ts +1 -1
  35. package/src/Diviner/ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner.ts +17 -10
  36. package/src/Diviner/ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner.ts +10 -4
  37. package/src/Diviner/ImageThumbnailQueryToImageThumbnailIndexQueryDiviner.ts +7 -4
  38. package/src/Diviner/ImageThumbnailResultQuery.ts +3 -2
  39. package/src/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Config.ts +4 -3
  40. package/src/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Diviner.ts +21 -11
  41. package/src/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Params.ts +3 -3
  42. package/src/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Schema.ts +2 -1
  43. package/xy.config.ts +2 -4
@@ -0,0 +1,7 @@
1
+ import { IndexingDiviner } from '@xyo-network/diviner-indexing';
2
+ import type { AttachableDivinerInstance } from '@xyo-network/diviner-model';
3
+ import { ImageThumbnailDivinerLabels } from './ImageThumbnailDivinerLabels.ts';
4
+ export declare class ImageThumbnailDiviner extends IndexingDiviner implements AttachableDivinerInstance {
5
+ static labels: ImageThumbnailDivinerLabels;
6
+ }
7
+ //# sourceMappingURL=Diviner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../../src/Diviner/Diviner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAA;AAE3E,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAA;AAE9E,qBAAa,qBAAsB,SAAQ,eAAgB,YAAW,yBAAyB;IAC7F,OAAgB,MAAM,EAAE,2BAA2B,CAAsD;CAC1G"}
@@ -0,0 +1,10 @@
1
+ import type { DivinerStageSchema, IndexingDivinerStage } from '@xyo-network/diviner-indexing';
2
+ import type { Labels } from '@xyo-network/module-model';
3
+ export interface ImageThumbnailDivinerLabels extends Labels {
4
+ 'network.xyo.image.thumbnail': 'diviner';
5
+ }
6
+ export declare const ImageThumbnailDivinerLabels: ImageThumbnailDivinerLabels;
7
+ export type ImageThumbnailDivinerStageLabels = ImageThumbnailDivinerLabels & {
8
+ [key in DivinerStageSchema]: IndexingDivinerStage;
9
+ };
10
+ //# sourceMappingURL=ImageThumbnailDivinerLabels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImageThumbnailDivinerLabels.d.ts","sourceRoot":"","sources":["../../../src/Diviner/ImageThumbnailDivinerLabels.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AAC7F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAKvD,MAAM,WAAW,2BAA4B,SAAQ,MAAM;IACzD,6BAA6B,EAAE,SAAS,CAAA;CACzC;AAKD,eAAO,MAAM,2BAA2B,EAAE,2BAA0E,CAAA;AAKpH,MAAM,MAAM,gCAAgC,GAAG,2BAA2B,GAAG;KAI1E,GAAG,IAAI,kBAAkB,GAAG,oBAAoB;CAClD,CAAA"}
@@ -0,0 +1,5 @@
1
+ import type { StateDictionary } from '@xyo-network/module-model';
2
+ export type ImageThumbnailDivinerState = StateDictionary & {
3
+ offset: number;
4
+ };
5
+ //# sourceMappingURL=ImageThumbnailDivinerState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImageThumbnailDivinerState.d.ts","sourceRoot":"","sources":["../../../src/Diviner/ImageThumbnailDivinerState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAEhE,MAAM,MAAM,0BAA0B,GAAG,eAAe,GAAG;IACzD,MAAM,EAAE,MAAM,CAAA;CACf,CAAA"}
@@ -0,0 +1,11 @@
1
+ import { AbstractDiviner } from '@xyo-network/diviner-abstract';
2
+ import type { ImageThumbnailResultIndex } from '@xyo-network/image-thumbnail-payload-plugin';
3
+ import type { Payload, Schema, WithSources } from '@xyo-network/payload-model';
4
+ import type { ImageThumbnailDivinerStageLabels } from './ImageThumbnailDivinerLabels.ts';
5
+ export declare class ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner extends AbstractDiviner {
6
+ static readonly configSchemas: Schema[];
7
+ static readonly defaultConfigSchema: Schema;
8
+ static labels: ImageThumbnailDivinerStageLabels;
9
+ protected divineHandler(payloads?: Payload[]): Promise<WithSources<ImageThumbnailResultIndex>[]>;
10
+ }
11
+ //# sourceMappingURL=ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner.d.ts","sourceRoot":"","sources":["../../../src/Diviner/ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAE/D,OAAO,KAAK,EAEV,yBAAyB,EAE1B,MAAM,6CAA6C,CAAA;AAOpD,OAAO,KAAK,EACV,OAAO,EAAE,MAAM,EAAY,WAAW,EACvC,MAAM,4BAA4B,CAAA;AAKnC,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,kCAAkC,CAAA;AAMxF,qBAAa,wDAAyD,SAAQ,eAAe;IAC3F,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAgD;IAChG,gBAAyB,mBAAmB,EAAE,MAAM,CAAsB;IAC1E,OAAgB,MAAM,EAAE,gCAAgC,CAIvD;cAEwB,aAAa,CAAC,QAAQ,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,WAAW,CAAC,yBAAyB,CAAC,EAAE,CAAC;CA2CpH"}
@@ -0,0 +1,11 @@
1
+ import { AbstractDiviner } from '@xyo-network/diviner-abstract';
2
+ import type { ImageThumbnailResult } from '@xyo-network/image-thumbnail-payload-plugin';
3
+ import type { Payload, Schema } from '@xyo-network/payload-model';
4
+ import type { ImageThumbnailDivinerStageLabels } from './ImageThumbnailDivinerLabels.ts';
5
+ export declare class ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner extends AbstractDiviner {
6
+ static readonly configSchemas: Schema[];
7
+ static readonly defaultConfigSchema: Schema;
8
+ static labels: ImageThumbnailDivinerStageLabels;
9
+ protected divineHandler(payloads?: Payload[]): Promise<ImageThumbnailResult[]>;
10
+ }
11
+ //# sourceMappingURL=ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner.d.ts","sourceRoot":"","sources":["../../../src/Diviner/ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAE/D,OAAO,KAAK,EACV,oBAAoB,EAErB,MAAM,6CAA6C,CAAA;AAOpD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAGjE,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,kCAAkC,CAAA;AAMxF,qBAAa,oEAAqE,SAAQ,eAAe;IACvG,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAgD;IAChG,gBAAyB,mBAAmB,EAAE,MAAM,CAAsB;IAC1E,OAAgB,MAAM,EAAE,gCAAgC,CAIvD;cAEwB,aAAa,CAAC,QAAQ,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;CAwClG"}
@@ -0,0 +1,11 @@
1
+ import { AbstractDiviner } from '@xyo-network/diviner-abstract';
2
+ import type { Payload, Schema } from '@xyo-network/payload-model';
3
+ import type { ImageThumbnailDivinerStageLabels } from './ImageThumbnailDivinerLabels.ts';
4
+ import type { ImageThumbnailResultQuery } from './ImageThumbnailResultQuery.ts';
5
+ export declare class ImageThumbnailQueryToImageThumbnailIndexQueryDiviner extends AbstractDiviner {
6
+ static readonly configSchemas: Schema[];
7
+ static readonly defaultConfigSchema: Schema;
8
+ static labels: ImageThumbnailDivinerStageLabels;
9
+ protected divineHandler(payloads?: Payload[]): Promise<Omit<Omit<ImageThumbnailResultQuery, 'timestamp' | 'success'> & Partial<Pick<ImageThumbnailResultQuery, 'success'>>, 'timestamp'>[]>;
10
+ }
11
+ //# sourceMappingURL=ImageThumbnailQueryToImageThumbnailIndexQueryDiviner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImageThumbnailQueryToImageThumbnailIndexQueryDiviner.d.ts","sourceRoot":"","sources":["../../../src/Diviner/ImageThumbnailQueryToImageThumbnailIndexQueryDiviner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAK/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAGjE,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,kCAAkC,CAAA;AAExF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAA;AAK/E,qBAAa,oDAAqD,SAAQ,eAAe;IACvF,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAgD;IAChG,gBAAyB,mBAAmB,EAAE,MAAM,CAAsB;IAC1E,OAAgB,MAAM,EAAE,gCAAgC,CAIvD;cAEwB,aAAa,CACpC,QAAQ,GAAE,OAAO,EAAO,GACvB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE,WAAW,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,yBAAyB,EAAE,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC;CAgChJ"}
@@ -0,0 +1,6 @@
1
+ import type { PayloadDivinerQueryPayload } from '@xyo-network/diviner-payload-model';
2
+ import type { ImageThumbnailResultIndex } from '@xyo-network/image-thumbnail-payload-plugin';
3
+ export type QueryableImageThumbnailResultProperties = Extract<keyof ImageThumbnailResultIndex, 'status' | 'success' | 'timestamp' | 'key'>;
4
+ export type ImageThumbnailResultQuery = PayloadDivinerQueryPayload & Pick<ImageThumbnailResultIndex, QueryableImageThumbnailResultProperties>;
5
+ export declare const isImageThumbnailResultQuery: (x?: unknown | null) => x is ImageThumbnailResultQuery;
6
+ //# sourceMappingURL=ImageThumbnailResultQuery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImageThumbnailResultQuery.d.ts","sourceRoot":"","sources":["../../../src/Diviner/ImageThumbnailResultQuery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAA;AAEpF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,6CAA6C,CAAA;AAM5F,MAAM,MAAM,uCAAuC,GAAG,OAAO,CAAC,MAAM,yBAAyB,EAAE,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,KAAK,CAAC,CAAA;AAK1I,MAAM,MAAM,yBAAyB,GAAG,0BAA0B,GAAG,IAAI,CAAC,yBAAyB,EAAE,uCAAuC,CAAC,CAAA;AAM7I,eAAO,MAAM,2BAA2B,wDAA8E,CAAA"}
@@ -0,0 +1,11 @@
1
+ import type { DivinerConfig } from '@xyo-network/diviner-model';
2
+ import type { SearchableStorage } from '@xyo-network/image-thumbnail-payload-plugin';
3
+ import { ImageThumbnailStateToIndexCandidateDivinerSchema } from './Schema.ts';
4
+ export type ImageThumbnailStateToIndexCandidateDivinerConfigSchema = `${ImageThumbnailStateToIndexCandidateDivinerSchema}.config`;
5
+ export declare const ImageThumbnailStateToIndexCandidateDivinerConfigSchema: ImageThumbnailStateToIndexCandidateDivinerConfigSchema;
6
+ export type ImageThumbnailStateToIndexCandidateDivinerConfig = DivinerConfig<{
7
+ payloadDivinerLimit?: number;
8
+ payloadStore?: SearchableStorage;
9
+ schema: ImageThumbnailStateToIndexCandidateDivinerConfigSchema;
10
+ }>;
11
+ //# sourceMappingURL=Config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../../../../src/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAA;AAEpF,OAAO,EAAE,gDAAgD,EAAE,MAAM,aAAa,CAAA;AAE9E,MAAM,MAAM,sDAAsD,GAAG,GAAG,gDAAgD,SAAS,CAAA;AACjI,eAAO,MAAM,sDAAsD,EAAE,sDACP,CAAA;AAE9D,MAAM,MAAM,gDAAgD,GAAG,aAAa,CAAC;IAC3E,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAI5B,YAAY,CAAC,EAAE,iBAAiB,CAAA;IAChC,MAAM,EAAE,sDAAsD,CAAA;CAC/D,CAAC,CAAA"}
@@ -0,0 +1,64 @@
1
+ import type { ArchivistInstance } from '@xyo-network/archivist-model';
2
+ import { ArchivistWrapper } from '@xyo-network/archivist-wrapper';
3
+ import type { BoundWitness } from '@xyo-network/boundwitness-model';
4
+ import { AbstractDiviner } from '@xyo-network/diviner-abstract';
5
+ import { DivinerWrapper } from '@xyo-network/diviner-wrapper';
6
+ import type { ImageThumbnail } from '@xyo-network/image-thumbnail-payload-plugin';
7
+ import type { ModuleState } from '@xyo-network/module-model';
8
+ import type { Payload, Schema } from '@xyo-network/payload-model';
9
+ import type { TimeStamp } from '@xyo-network/witness-timestamp';
10
+ import type { ImageThumbnailDivinerStageLabels } from '../ImageThumbnailDivinerLabels.ts';
11
+ import type { ImageThumbnailDivinerState } from '../ImageThumbnailDivinerState.ts';
12
+ import type { ImageThumbnailStateToIndexCandidateDivinerParams } from './Params.ts';
13
+ export type IndexCandidate = BoundWitness | ImageThumbnail | TimeStamp;
14
+ export type ImageThumbnailStateToIndexCandidateDivinerResponse = [
15
+ nextState: ModuleState<ImageThumbnailDivinerState>,
16
+ ...IndexCandidate[]
17
+ ];
18
+ export declare class ImageThumbnailStateToIndexCandidateDiviner<TParams extends ImageThumbnailStateToIndexCandidateDivinerParams = ImageThumbnailStateToIndexCandidateDivinerParams> extends AbstractDiviner<TParams> {
19
+ static readonly configSchemas: Schema[];
20
+ static readonly defaultConfigSchema: Schema;
21
+ static labels: ImageThumbnailDivinerStageLabels;
22
+ get payloadDivinerLimit(): number;
23
+ protected static getPayloadsInBoundWitness(bw: BoundWitness, archivist: ArchivistInstance): Promise<IndexCandidate[] | undefined>;
24
+ protected divineHandler(payloads?: Payload[]): Promise<ImageThumbnailStateToIndexCandidateDivinerResponse>;
25
+ protected getArchivistForStore(): Promise<ArchivistWrapper<import("@xyo-network/archivist-model").ArchivistModule<import(".store/@xylabs-object-npm-4.0.4-83706dfe17/package").BaseParamsFields & {
26
+ account?: import(".store/@xyo-network-account-model-virtual-6a37ef4f2d/package").AccountInstance | "random";
27
+ addToResolvers?: boolean;
28
+ additionalSigners?: import(".store/@xyo-network-account-model-virtual-6a37ef4f2d/package").AccountInstance[];
29
+ allowNameResolution?: boolean;
30
+ config: import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & {
31
+ parents?: import("@xyo-network/archivist-model").ArchivistParents;
32
+ requireAllParents?: boolean;
33
+ schema: "network.xyo.archivist.config";
34
+ storage?: import("@xyo-network/archivist-model").ArchivistStorage;
35
+ storeParentReads?: boolean;
36
+ }, "schema"> & {
37
+ schema: "network.xyo.archivist.config";
38
+ }, "schema"> & {
39
+ schema: string;
40
+ };
41
+ ephemeralQueryAccountEnabled?: boolean;
42
+ moduleIdentifierTransformers?: import("@xyo-network/module-model").ModuleIdentifierTransformer[];
43
+ }, import("@xyo-network/archivist-model").ArchivistModuleEventData>>>;
44
+ protected getBoundWitnessDivinerForStore(): Promise<DivinerWrapper<import("@xyo-network/diviner-model").DivinerModule<import(".store/@xylabs-object-npm-4.0.4-83706dfe17/package").BaseParamsFields & {
45
+ account?: import(".store/@xyo-network-account-model-virtual-6a37ef4f2d/package").AccountInstance | "random";
46
+ addToResolvers?: boolean;
47
+ additionalSigners?: import(".store/@xyo-network-account-model-virtual-6a37ef4f2d/package").AccountInstance[];
48
+ allowNameResolution?: boolean;
49
+ config: import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & {
50
+ schema: "network.xyo.diviner.config";
51
+ }, "schema"> & {
52
+ schema: "network.xyo.diviner.config";
53
+ }, "schema"> & {
54
+ schema: string;
55
+ };
56
+ ephemeralQueryAccountEnabled?: boolean;
57
+ moduleIdentifierTransformers?: import("@xyo-network/module-model").ModuleIdentifierTransformer[];
58
+ }, import("@xyo-network/diviner-model").DivinerModuleEventData>, {
59
+ schema: string;
60
+ } & import("@xyo-network/payload-model").PayloadFields, {
61
+ schema: string;
62
+ } & import("@xyo-network/payload-model").PayloadFields>>;
63
+ }
64
+ //# sourceMappingURL=Diviner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../../../src/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Diviner.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAEnE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAG/D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAA;AAEjF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAG5D,OAAO,KAAK,EACV,OAAO,EAAE,MAAM,EAChB,MAAM,4BAA4B,CAAA;AACnC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAG/D,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,mCAAmC,CAAA;AAEzF,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAA;AAElF,OAAO,KAAK,EAAE,gDAAgD,EAAE,MAAM,aAAa,CAAA;AAKnF,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG,cAAc,GAAG,SAAS,CAAA;AAKtE,MAAM,MAAM,kDAAkD,GAAG;IAI/D,SAAS,EAAE,WAAW,CAAC,0BAA0B,CAAC;IAIlD,GAAG,cAAc,EAAE;CACpB,CAAA;AAyBD,qBAAa,0CAA0C,CACrD,OAAO,SAAS,gDAAgD,GAAG,gDAAgD,CACnH,SAAQ,eAAe,CAAC,OAAO,CAAC;IAChC,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAmF;IACnI,gBAAyB,mBAAmB,EAAE,MAAM,CAAyD;IAC7G,OAAgB,MAAM,EAAE,gCAAgC,CAIvD;IAED,IAAI,mBAAmB,WAEtB;qBAEsB,yBAAyB,CAAC,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,iBAAiB,GAAG,OAAO,CAAC,cAAc,EAAE,GAAG,SAAS,CAAC;cAU9G,aAAa,CAAC,QAAQ,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,kDAAkD,CAAC;cAiC7G,oBAAoB;;;;;;;;;;;;;;;;;;;cAUpB,8BAA8B;;;;;;;;;;;;;;;;;;;CAQ/C"}
@@ -0,0 +1,5 @@
1
+ import type { DivinerParams } from '@xyo-network/diviner-model';
2
+ import type { AnyConfigSchema } from '@xyo-network/module-model';
3
+ import type { ImageThumbnailStateToIndexCandidateDivinerConfig } from './Config.ts';
4
+ export type ImageThumbnailStateToIndexCandidateDivinerParams = DivinerParams<AnyConfigSchema<ImageThumbnailStateToIndexCandidateDivinerConfig>>;
5
+ //# sourceMappingURL=Params.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Params.d.ts","sourceRoot":"","sources":["../../../../src/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Params.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAEhE,OAAO,KAAK,EAAE,gDAAgD,EAAE,MAAM,aAAa,CAAA;AAEnF,MAAM,MAAM,gDAAgD,GAAG,aAAa,CAAC,eAAe,CAAC,gDAAgD,CAAC,CAAC,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { ImageThumbnailDivinerSchema } from '@xyo-network/image-thumbnail-payload-plugin';
2
+ export type ImageThumbnailStateToIndexCandidateDivinerSchema = `${ImageThumbnailDivinerSchema}.stage.stateToIndexCandidateDiviner`;
3
+ export declare const ImageThumbnailStateToIndexCandidateDivinerSchema: ImageThumbnailStateToIndexCandidateDivinerSchema;
4
+ //# sourceMappingURL=Schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../../../src/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,6CAA6C,CAAA;AAEzF,MAAM,MAAM,gDAAgD,GAAG,GAAG,2BAA2B,qCAAqC,CAAA;AAClI,eAAO,MAAM,gDAAgD,EAAE,gDACM,CAAA"}
@@ -0,0 +1,5 @@
1
+ export * from './Config.ts';
2
+ export * from './Diviner.ts';
3
+ export * from './Params.ts';
4
+ export * from './Schema.ts';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/Diviner/ImageThumbnailStateToIndexCandidateDiviner/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA"}
@@ -0,0 +1,9 @@
1
+ export * from './Diviner.ts';
2
+ export * from './ImageThumbnailDivinerLabels.ts';
3
+ export * from './ImageThumbnailDivinerState.ts';
4
+ export * from './ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner.ts';
5
+ export * from './ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner.ts';
6
+ export * from './ImageThumbnailQueryToImageThumbnailIndexQueryDiviner.ts';
7
+ export * from './ImageThumbnailResultQuery.ts';
8
+ export * from './ImageThumbnailStateToIndexCandidateDiviner/index.ts';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Diviner/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,kCAAkC,CAAA;AAChD,cAAc,iCAAiC,CAAA;AAC/C,cAAc,+DAA+D,CAAA;AAC7E,cAAc,2EAA2E,CAAA;AACzF,cAAc,2DAA2D,CAAA;AACzE,cAAc,gCAAgC,CAAA;AAC9C,cAAc,uDAAuD,CAAA"}
@@ -1,142 +1,2 @@
1
- import { DivinerStageSchema, IndexingDivinerStage, IndexingDiviner } from '@xyo-network/diviner-indexing';
2
- import * as _xyo_network_diviner_model from '@xyo-network/diviner-model';
3
- import { AttachableDivinerInstance, DivinerConfig, DivinerParams } from '@xyo-network/diviner-model';
4
- import * as _xyo_network_module_model from '@xyo-network/module-model';
5
- import { Labels, StateDictionary, AnyConfigSchema, ModuleState } from '@xyo-network/module-model';
6
- import { AbstractDiviner } from '@xyo-network/diviner-abstract';
7
- import { ImageThumbnailResultIndex, ImageThumbnailResult, ImageThumbnailDivinerSchema, SearchableStorage, ImageThumbnail } from '@xyo-network/image-thumbnail-payload-plugin';
8
- import * as _xyo_network_payload_model from '@xyo-network/payload-model';
9
- import { Schema, Payload, WithSources } from '@xyo-network/payload-model';
10
- import { PayloadDivinerQueryPayload } from '@xyo-network/diviner-payload-model';
11
- import * as _xyo_network_archivist_model from '@xyo-network/archivist-model';
12
- import { ArchivistInstance } from '@xyo-network/archivist-model';
13
- import * as _store__xyo_network_account_model_virtual_96c2d52d44_package from '.store/@xyo-network-account-model-virtual-96c2d52d44/package';
14
- import * as _store__xylabs_object_npm_4_0_1_bb8d73c5f0_package from '.store/@xylabs-object-npm-4.0.1-bb8d73c5f0/package';
15
- import { ArchivistWrapper } from '@xyo-network/archivist-wrapper';
16
- import { BoundWitness } from '@xyo-network/boundwitness-model';
17
- import { DivinerWrapper } from '@xyo-network/diviner-wrapper';
18
- import { TimeStamp } from '@xyo-network/witness-timestamp';
19
-
20
- interface ImageThumbnailDivinerLabels extends Labels {
21
- 'network.xyo.image.thumbnail': 'diviner';
22
- }
23
- declare const ImageThumbnailDivinerLabels: ImageThumbnailDivinerLabels;
24
- type ImageThumbnailDivinerStageLabels = ImageThumbnailDivinerLabels & {
25
- [key in DivinerStageSchema]: IndexingDivinerStage;
26
- };
27
-
28
- declare class ImageThumbnailDiviner extends IndexingDiviner implements AttachableDivinerInstance {
29
- static labels: ImageThumbnailDivinerLabels;
30
- }
31
-
32
- type ImageThumbnailDivinerState = StateDictionary & {
33
- offset: number;
34
- };
35
-
36
- declare class ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner extends AbstractDiviner {
37
- static readonly configSchemas: Schema[];
38
- static readonly defaultConfigSchema: Schema;
39
- static labels: ImageThumbnailDivinerStageLabels;
40
- protected divineHandler(payloads?: Payload[]): Promise<WithSources<ImageThumbnailResultIndex>[]>;
41
- }
42
-
43
- declare class ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner extends AbstractDiviner {
44
- static readonly configSchemas: Schema[];
45
- static readonly defaultConfigSchema: Schema;
46
- static labels: ImageThumbnailDivinerStageLabels;
47
- protected divineHandler(payloads?: Payload[]): Promise<ImageThumbnailResult[]>;
48
- }
49
-
50
- type QueryableImageThumbnailResultProperties = Extract<keyof ImageThumbnailResultIndex, 'status' | 'success' | 'timestamp' | 'key'>;
51
- type ImageThumbnailResultQuery = PayloadDivinerQueryPayload & Pick<ImageThumbnailResultIndex, QueryableImageThumbnailResultProperties>;
52
- declare const isImageThumbnailResultQuery: (x?: unknown | null) => x is ImageThumbnailResultQuery;
53
-
54
- declare class ImageThumbnailQueryToImageThumbnailIndexQueryDiviner extends AbstractDiviner {
55
- static readonly configSchemas: Schema[];
56
- static readonly defaultConfigSchema: Schema;
57
- static labels: ImageThumbnailDivinerStageLabels;
58
- protected divineHandler(payloads?: Payload[]): Promise<Omit<Omit<ImageThumbnailResultQuery, 'timestamp' | 'success'> & Partial<Pick<ImageThumbnailResultQuery, 'success'>>, 'timestamp'>[]>;
59
- }
60
-
61
- type ImageThumbnailStateToIndexCandidateDivinerSchema = `${ImageThumbnailDivinerSchema}.stage.stateToIndexCandidateDiviner`;
62
- declare const ImageThumbnailStateToIndexCandidateDivinerSchema: ImageThumbnailStateToIndexCandidateDivinerSchema;
63
-
64
- type ImageThumbnailStateToIndexCandidateDivinerConfigSchema = `${ImageThumbnailStateToIndexCandidateDivinerSchema}.config`;
65
- declare const ImageThumbnailStateToIndexCandidateDivinerConfigSchema: ImageThumbnailStateToIndexCandidateDivinerConfigSchema;
66
- type ImageThumbnailStateToIndexCandidateDivinerConfig = DivinerConfig<{
67
- payloadDivinerLimit?: number;
68
- payloadStore?: SearchableStorage;
69
- schema: ImageThumbnailStateToIndexCandidateDivinerConfigSchema;
70
- }>;
71
-
72
- type ImageThumbnailStateToIndexCandidateDivinerParams = DivinerParams<AnyConfigSchema<ImageThumbnailStateToIndexCandidateDivinerConfig>>;
73
-
74
- type IndexCandidate = BoundWitness | ImageThumbnail | TimeStamp;
75
- type ImageThumbnailStateToIndexCandidateDivinerResponse = [
76
- nextState: ModuleState<ImageThumbnailDivinerState>,
77
- ...IndexCandidate[]
78
- ];
79
- declare class ImageThumbnailStateToIndexCandidateDiviner<TParams extends ImageThumbnailStateToIndexCandidateDivinerParams = ImageThumbnailStateToIndexCandidateDivinerParams> extends AbstractDiviner<TParams> {
80
- static readonly configSchemas: Schema[];
81
- static readonly defaultConfigSchema: Schema;
82
- static labels: ImageThumbnailDivinerStageLabels;
83
- get payloadDivinerLimit(): number;
84
- protected static getPayloadsInBoundWitness(bw: BoundWitness, archivist: ArchivistInstance): Promise<IndexCandidate[] | undefined>;
85
- protected divineHandler(payloads?: Payload[]): Promise<ImageThumbnailStateToIndexCandidateDivinerResponse>;
86
- protected getArchivistForStore(): Promise<ArchivistWrapper<_xyo_network_archivist_model.ArchivistModule<_store__xylabs_object_npm_4_0_1_bb8d73c5f0_package.BaseParamsFields & {
87
- account?: _store__xyo_network_account_model_virtual_96c2d52d44_package.AccountInstance | "random";
88
- addToResolvers?: boolean;
89
- additionalSigners?: _store__xyo_network_account_model_virtual_96c2d52d44_package.AccountInstance[];
90
- allowNameResolution?: boolean;
91
- config: _xyo_network_payload_model.SchemaFields & _xyo_network_payload_model.PayloadFields & Omit<_xyo_network_module_model.ArchivingModuleConfig & _xyo_network_module_model.ModuleConfigFields & _xyo_network_payload_model.SchemaFields & _xyo_network_payload_model.PayloadFields & Omit<_xyo_network_module_model.ArchivingModuleConfig & _xyo_network_module_model.ModuleConfigFields & {
92
- parents?: _xyo_network_archivist_model.ArchivistParents;
93
- requireAllParents?: boolean;
94
- schema: "network.xyo.archivist.config";
95
- storage?: _xyo_network_archivist_model.ArchivistStorage;
96
- storeParentReads?: boolean;
97
- }, "schema"> & {
98
- schema: "network.xyo.archivist.config";
99
- }, "schema"> & {
100
- schema: string;
101
- };
102
- ephemeralQueryAccountEnabled?: boolean;
103
- moduleIdentifierTransformers?: _xyo_network_module_model.ModuleIdentifierTransformer[];
104
- }, _xyo_network_archivist_model.ArchivistModuleEventData>>>;
105
- protected getBoundWitnessDivinerForStore(): Promise<DivinerWrapper<_xyo_network_diviner_model.DivinerModule<_store__xylabs_object_npm_4_0_1_bb8d73c5f0_package.BaseParamsFields & {
106
- account?: _store__xyo_network_account_model_virtual_96c2d52d44_package.AccountInstance | "random";
107
- addToResolvers?: boolean;
108
- additionalSigners?: _store__xyo_network_account_model_virtual_96c2d52d44_package.AccountInstance[];
109
- allowNameResolution?: boolean;
110
- config: _xyo_network_payload_model.SchemaFields & _xyo_network_payload_model.PayloadFields & Omit<_xyo_network_module_model.ArchivingModuleConfig & _xyo_network_module_model.ModuleConfigFields & _xyo_network_payload_model.SchemaFields & _xyo_network_payload_model.PayloadFields & Omit<_xyo_network_module_model.ArchivingModuleConfig & _xyo_network_module_model.ModuleConfigFields & {
111
- schema: "network.xyo.diviner.config";
112
- }, "schema"> & {
113
- schema: "network.xyo.diviner.config";
114
- }, "schema"> & {
115
- schema: string;
116
- };
117
- ephemeralQueryAccountEnabled?: boolean;
118
- moduleIdentifierTransformers?: _xyo_network_module_model.ModuleIdentifierTransformer[];
119
- }, _xyo_network_diviner_model.DivinerModuleEventData<_xyo_network_module_model.ModuleInstance<_store__xylabs_object_npm_4_0_1_bb8d73c5f0_package.BaseParamsFields & {
120
- account?: _store__xyo_network_account_model_virtual_96c2d52d44_package.AccountInstance | "random";
121
- addToResolvers?: boolean;
122
- additionalSigners?: _store__xyo_network_account_model_virtual_96c2d52d44_package.AccountInstance[];
123
- allowNameResolution?: boolean;
124
- config: _xyo_network_payload_model.SchemaFields & _xyo_network_payload_model.PayloadFields & Omit<_xyo_network_module_model.ArchivingModuleConfig & _xyo_network_module_model.ModuleConfigFields & _xyo_network_payload_model.SchemaFields & _xyo_network_payload_model.PayloadFields & {
125
- schema: "network.xyo.module.config";
126
- }, "schema"> & {
127
- schema: string;
128
- };
129
- ephemeralQueryAccountEnabled?: boolean;
130
- moduleIdentifierTransformers?: _xyo_network_module_model.ModuleIdentifierTransformer[];
131
- }, _xyo_network_module_model.ModuleEventData<object>>, {
132
- schema: string;
133
- } & _xyo_network_payload_model.PayloadFields, {
134
- schema: string;
135
- } & _xyo_network_payload_model.PayloadFields>>, {
136
- schema: string;
137
- } & _xyo_network_payload_model.PayloadFields, {
138
- schema: string;
139
- } & _xyo_network_payload_model.PayloadFields>>;
140
- }
141
-
142
- export { ImageThumbnailDiviner, ImageThumbnailDivinerLabels, type ImageThumbnailDivinerStageLabels, type ImageThumbnailDivinerState, ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner, ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner, ImageThumbnailQueryToImageThumbnailIndexQueryDiviner, type ImageThumbnailResultQuery, ImageThumbnailStateToIndexCandidateDiviner, type ImageThumbnailStateToIndexCandidateDivinerConfig, ImageThumbnailStateToIndexCandidateDivinerConfigSchema, type ImageThumbnailStateToIndexCandidateDivinerParams, type ImageThumbnailStateToIndexCandidateDivinerResponse, ImageThumbnailStateToIndexCandidateDivinerSchema, type IndexCandidate, type QueryableImageThumbnailResultProperties, isImageThumbnailResultQuery };
1
+ export * from './Diviner/index.ts';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA"}
@@ -2,9 +2,7 @@
2
2
  import { IndexingDiviner } from "@xyo-network/diviner-indexing";
3
3
 
4
4
  // src/Diviner/ImageThumbnailDivinerLabels.ts
5
- var ImageThumbnailDivinerLabels = {
6
- "network.xyo.image.thumbnail": "diviner"
7
- };
5
+ var ImageThumbnailDivinerLabels = { "network.xyo.image.thumbnail": "diviner" };
8
6
 
9
7
  // src/Diviner/Diviner.ts
10
8
  var ImageThumbnailDiviner = class extends IndexingDiviner {
@@ -59,11 +57,14 @@ var ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner = class extends Abs
59
57
  const sources = await PayloadBuilder.dataHashes([bw, imageThumbnailPayload, timestampPayload]);
60
58
  const urlPayload = { schema: UrlSchema, url };
61
59
  const key = await PayloadBuilder.dataHash(urlPayload);
62
- const fields = { key, sources, success, timestamp };
60
+ const fields = {
61
+ key,
62
+ sources,
63
+ success,
64
+ timestamp
65
+ };
63
66
  if (status) fields.status = status;
64
- const result = await new PayloadBuilder({
65
- schema: ImageThumbnailResultIndexSchema
66
- }).fields(fields).build();
67
+ const result = await new PayloadBuilder({ schema: ImageThumbnailResultIndexSchema }).fields(fields).build();
67
68
  return [result];
68
69
  })
69
70
  );
@@ -108,7 +109,12 @@ var ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner = class
108
109
  );
109
110
  return (await Promise.all(
110
111
  imageThumbnailResultIndexes.map(async (imageThumbnailResultIndex) => {
111
- const { key, schema, ...commonFields } = imageThumbnailResultIndex;
112
+ const {
113
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
114
+ key,
115
+ schema,
116
+ ...commonFields
117
+ } = imageThumbnailResultIndex;
112
118
  const url = keyToUrlDictionary?.[key];
113
119
  if (url) {
114
120
  const fields = { ...commonFields, url };
@@ -141,7 +147,14 @@ var ImageThumbnailQueryToImageThumbnailIndexQueryDiviner = class extends Abstrac
141
147
  if (queries.length > 0) {
142
148
  const results = await Promise.all(
143
149
  queries.map(async (query) => {
144
- const { limit: payloadLimit, offset: payloadOffset, order: payloadOrder, status: payloadStatus, success: payloadSuccess, url } = query;
150
+ const {
151
+ limit: payloadLimit,
152
+ offset: payloadOffset,
153
+ order: payloadOrder,
154
+ status: payloadStatus,
155
+ success: payloadSuccess,
156
+ url
157
+ } = query;
145
158
  const limit = payloadLimit ?? 1;
146
159
  const order2 = payloadOrder ?? "desc";
147
160
  const offset = payloadOffset ?? 0;
@@ -217,7 +230,12 @@ var ImageThumbnailStateToIndexCandidateDiviner = class _ImageThumbnailStateToInd
217
230
  if (!lastState) return [{ schema: ModuleStateSchema, state: { offset: 0 } }];
218
231
  const { offset } = lastState.state;
219
232
  const boundWitnessDiviner = await this.getBoundWitnessDivinerForStore();
220
- const query = await new PayloadBuilder4({ schema: BoundWitnessDivinerQuerySchema }).fields({ limit: this.payloadDivinerLimit, offset, order, payload_schemas }).build();
233
+ const query = await new PayloadBuilder4({ schema: BoundWitnessDivinerQuerySchema }).fields({
234
+ limit: this.payloadDivinerLimit,
235
+ offset,
236
+ order,
237
+ payload_schemas
238
+ }).build();
221
239
  const batch = await boundWitnessDiviner.divine([query]);
222
240
  if (batch.length === 0) return [lastState];
223
241
  const sourceArchivist = await this.getArchivistForStore();
@@ -1 +1 @@
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'\nimport { AttachableDivinerInstance } from '@xyo-network/diviner-model'\n\nimport { ImageThumbnailDivinerLabels } from './ImageThumbnailDivinerLabels.ts'\n\nexport class ImageThumbnailDiviner extends IndexingDiviner implements AttachableDivinerInstance {\n static override labels: ImageThumbnailDivinerLabels = { ...super.labels, ...ImageThumbnailDivinerLabels }\n}\n","import { DivinerStageSchema, IndexingDivinerStage } from '@xyo-network/diviner-indexing'\nimport { Labels } from '@xyo-network/module-model'\n\n/**\n * Labels for Image Thumbnail Diviner components\n */\nexport interface ImageThumbnailDivinerLabels extends Labels {\n 'network.xyo.image.thumbnail': 'diviner'\n}\n\n/**\n * Labels for Image Thumbnail Diviner components\n */\nexport const ImageThumbnailDivinerLabels: ImageThumbnailDivinerLabels = {\n 'network.xyo.image.thumbnail': 'diviner',\n}\n\n/**\n * Labels for Image Thumbnail Diviner Stage Diviners\n */\nexport type ImageThumbnailDivinerStageLabels = ImageThumbnailDivinerLabels & {\n /**\n * Labels for the stage of the Image Thumbnail Diviner Stage Diviner\n */\n [key in DivinerStageSchema]: IndexingDivinerStage\n}\n","import { Hash } from '@xylabs/hex'\nimport { BoundWitness, isBoundWitness } from '@xyo-network/boundwitness-model'\nimport { AbstractDiviner } from '@xyo-network/diviner-abstract'\nimport { DivinerConfigSchema } from '@xyo-network/diviner-model'\nimport {\n ImageThumbnail,\n ImageThumbnailResultIndex,\n ImageThumbnailResultIndexFields,\n ImageThumbnailResultIndexSchema,\n ImageThumbnailSchema,\n isImageThumbnail,\n} from '@xyo-network/image-thumbnail-payload-plugin'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload, Schema, WithMeta, WithSources } from '@xyo-network/payload-model'\nimport { UrlSchema } from '@xyo-network/url-payload-plugin'\nimport { isTimestamp, TimeStamp, TimestampSchema } from '@xyo-network/witness-timestamp'\n\nimport { ImageThumbnailDivinerLabels, ImageThumbnailDivinerStageLabels } from './ImageThumbnailDivinerLabels.ts'\n\n/**\n * Transforms candidates for image thumbnail indexing into their indexed representation\n */\nexport class ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner extends AbstractDiviner {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, DivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = DivinerConfigSchema\n static override labels: ImageThumbnailDivinerStageLabels = {\n ...super.labels,\n ...ImageThumbnailDivinerLabels,\n 'network.xyo.diviner.stage': 'indexCandidateToIndexDiviner',\n }\n\n protected override async divineHandler(payloads: Payload[] = []): Promise<WithSources<ImageThumbnailResultIndex>[]> {\n const bws: BoundWitness[] = payloads.filter(isBoundWitness)\n const imageThumbnailPayloads: ImageThumbnail[] = payloads.filter(isImageThumbnail)\n const timestampPayloads: TimeStamp[] = payloads.filter(isTimestamp)\n if (bws.length > 0 && imageThumbnailPayloads.length > 0 && timestampPayloads.length > 0) {\n const payloadDictionary = await PayloadBuilder.toDataHashMap(payloads)\n // eslint-disable-next-line unicorn/no-array-reduce\n const tuples: [BoundWitness, ImageThumbnail, TimeStamp][] = bws.reduce<[BoundWitness, ImageThumbnail, TimeStamp][]>(\n (acc, curr) => {\n const imageThumbnailIndex = curr.payload_schemas?.findIndex(schema => schema === ImageThumbnailSchema)\n const timestampIndex = curr.payload_schemas?.findIndex(schema => schema === TimestampSchema)\n const imageThumbnailHash = curr.payload_hashes?.[imageThumbnailIndex]\n const timestampHash = curr.payload_hashes?.[timestampIndex]\n const imageThumbnailPayload = [payloadDictionary[imageThumbnailHash]].find(isImageThumbnail) as WithMeta<ImageThumbnail> | undefined\n const timestampPayload = [payloadDictionary[timestampHash]].find(isTimestamp) as WithMeta<TimeStamp>\n if (imageThumbnailPayload && timestampPayload) acc.push([curr, imageThumbnailPayload, timestampPayload])\n return acc\n },\n [] as [BoundWitness, ImageThumbnail, TimeStamp][],\n )\n const indexes = await Promise.all(\n tuples.map(async ([bw, imageThumbnailPayload, timestampPayload]) => {\n const { sourceUrl: url, http } = imageThumbnailPayload\n const { timestamp } = timestampPayload\n const { status } = http ?? {}\n const success = !!imageThumbnailPayload.url // Call anything with a thumbnail url a success\n const sources: Hash[] = await PayloadBuilder.dataHashes([bw, imageThumbnailPayload, timestampPayload])\n const urlPayload = { schema: UrlSchema, url }\n const key: Hash = await PayloadBuilder.dataHash(urlPayload)\n const fields: ImageThumbnailResultIndexFields = { key, sources, success, timestamp }\n if (status) fields.status = status\n const result = await new PayloadBuilder<WithSources<ImageThumbnailResultIndex>>({\n schema: ImageThumbnailResultIndexSchema,\n })\n .fields(fields)\n .build()\n return [result]\n }),\n )\n return indexes.flat()\n }\n return []\n }\n}\n","import { exists } from '@xylabs/exists'\nimport { AbstractDiviner } from '@xyo-network/diviner-abstract'\nimport { DivinerConfigSchema } from '@xyo-network/diviner-model'\nimport {\n ImageThumbnailResult,\n ImageThumbnailResultFields,\n ImageThumbnailResultSchema,\n isImageThumbnailDivinerQuery,\n isImageThumbnailResultIndex,\n} from '@xyo-network/image-thumbnail-payload-plugin'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload, Schema } from '@xyo-network/payload-model'\nimport { UrlSchema } from '@xyo-network/url-payload-plugin'\n\nimport { ImageThumbnailDivinerLabels, ImageThumbnailDivinerStageLabels } from './ImageThumbnailDivinerLabels.ts'\n\n/**\n * Transforms an ImageThumbnailIndex response into an ImageThumbnailResponse response\n */\nexport class ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner extends AbstractDiviner {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, DivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = DivinerConfigSchema\n static override labels: ImageThumbnailDivinerStageLabels = {\n ...super.labels,\n ...ImageThumbnailDivinerLabels,\n 'network.xyo.diviner.stage': 'indexQueryResponseToDivinerQueryResponseDiviner',\n }\n\n protected override async divineHandler(payloads: Payload[] = []): Promise<ImageThumbnailResult[]> {\n // Filter out the two operands\n const imageThumbnailDivinerQueries = payloads.filter(isImageThumbnailDivinerQuery)\n const imageThumbnailResultIndexes = payloads.filter(isImageThumbnailResultIndex)\n\n // If we have operands\n if (imageThumbnailDivinerQueries.length > 0 && imageThumbnailResultIndexes.length > 0) {\n // Create a dictionary to translate index keys to the urls that represent them\n const keyToUrlDictionary = Object.fromEntries(\n await Promise.all(\n imageThumbnailDivinerQueries.map(async (imageThumbnailDivinerQuery) => {\n const { url } = imageThumbnailDivinerQuery\n const urlPayload = await new PayloadBuilder<Omit<ImageThumbnailResult, 'timestamp' | 'success' | 'sources'>>({ schema: UrlSchema })\n .fields({ url })\n .build()\n const key = await PayloadBuilder.dataHash(urlPayload)\n return [key, url] as const\n }),\n ),\n )\n // Map the indexes to responses using the dictionary\n return (\n await Promise.all(\n imageThumbnailResultIndexes.map(async (imageThumbnailResultIndex) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { key, schema, ...commonFields } = imageThumbnailResultIndex\n const url = keyToUrlDictionary?.[key]\n if (url) {\n const fields: ImageThumbnailResultFields = { ...commonFields, url }\n return await new PayloadBuilder<ImageThumbnailResult>({ schema: ImageThumbnailResultSchema }).fields(fields).build()\n }\n }),\n )\n ).filter(exists)\n }\n return []\n }\n}\n","import { AbstractDiviner } from '@xyo-network/diviner-abstract'\nimport { DivinerConfigSchema } from '@xyo-network/diviner-model'\nimport { PayloadDivinerQuerySchema } from '@xyo-network/diviner-payload-model'\nimport { isImageThumbnailDivinerQuery } from '@xyo-network/image-thumbnail-payload-plugin'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload, Schema } from '@xyo-network/payload-model'\nimport { UrlSchema } from '@xyo-network/url-payload-plugin'\n\nimport { ImageThumbnailDivinerLabels, ImageThumbnailDivinerStageLabels } from './ImageThumbnailDivinerLabels.ts'\nimport { ImageThumbnailResultQuery } from './ImageThumbnailResultQuery.ts'\n\n/**\n * A diviner that converts ImageThumbnailDivinerQuery to ImageThumbnailResultQuery\n */\nexport class ImageThumbnailQueryToImageThumbnailIndexQueryDiviner extends AbstractDiviner {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, DivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = DivinerConfigSchema\n static override labels: ImageThumbnailDivinerStageLabels = {\n ...super.labels,\n ...ImageThumbnailDivinerLabels,\n 'network.xyo.diviner.stage': 'divinerQueryToIndexQueryDiviner',\n }\n\n protected override async divineHandler(\n payloads: Payload[] = [],\n ): Promise<Omit<Omit<ImageThumbnailResultQuery, 'timestamp' | 'success'> & Partial<Pick<ImageThumbnailResultQuery, 'success'>>, 'timestamp'>[]> {\n const queries = payloads.filter(isImageThumbnailDivinerQuery)\n if (queries.length > 0) {\n const results = await Promise.all(\n queries.map(async (query) => {\n const { limit: payloadLimit, offset: payloadOffset, order: payloadOrder, status: payloadStatus, success: payloadSuccess, url } = query\n const limit = payloadLimit ?? 1\n const order = payloadOrder ?? 'desc'\n const offset = payloadOffset ?? 0\n const urlPayload = { schema: UrlSchema, url }\n const key = await PayloadBuilder.dataHash(urlPayload)\n const fields: Omit<ImageThumbnailResultQuery, 'schema' | 'timestamp' | 'success'> & Partial<Pick<ImageThumbnailResultQuery, 'success'>> = {\n key,\n limit,\n offset,\n order,\n }\n if (payloadSuccess !== undefined) fields.success = payloadSuccess\n if (payloadStatus !== undefined) fields.status = payloadStatus\n return await new PayloadBuilder<\n Omit<ImageThumbnailResultQuery, 'timestamp' | 'success'> & Partial<Pick<ImageThumbnailResultQuery, 'success'>>\n >({ schema: PayloadDivinerQuerySchema })\n .fields(fields)\n .build()\n }),\n )\n return results\n }\n return []\n }\n}\n","import { PayloadDivinerQueryPayload, PayloadDivinerQuerySchema } from '@xyo-network/diviner-payload-model'\nimport { ImageThumbnailResultIndex } from '@xyo-network/image-thumbnail-payload-plugin'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\n/**\n * The fields that will need to be indexed on in the underlying store\n */\nexport type QueryableImageThumbnailResultProperties = Extract<keyof ImageThumbnailResultIndex, 'status' | 'success' | 'timestamp' | 'key'>\n\n/**\n * The query that will be used to retrieve the results from the underlying store\n */\nexport type ImageThumbnailResultQuery = PayloadDivinerQueryPayload & Pick<ImageThumbnailResultIndex, QueryableImageThumbnailResultProperties>\n\n/**\n * A type guard for ImageThumbnailResultQuery\n */\n// TODO: Use a more derived schema than PayloadDivinerQuerySchema\nexport const isImageThumbnailResultQuery = isPayloadOfSchemaType<ImageThumbnailResultQuery>(PayloadDivinerQuerySchema)\n","import { ImageThumbnailDivinerSchema } from '@xyo-network/image-thumbnail-payload-plugin'\n\nexport type ImageThumbnailStateToIndexCandidateDivinerSchema = `${ImageThumbnailDivinerSchema}.stage.stateToIndexCandidateDiviner`\nexport const ImageThumbnailStateToIndexCandidateDivinerSchema: ImageThumbnailStateToIndexCandidateDivinerSchema = `${ImageThumbnailDivinerSchema}.stage.stateToIndexCandidateDiviner`\n","import { DivinerConfig } from '@xyo-network/diviner-model'\nimport { SearchableStorage } from '@xyo-network/image-thumbnail-payload-plugin'\n\nimport { ImageThumbnailStateToIndexCandidateDivinerSchema } from './Schema.ts'\n\nexport type ImageThumbnailStateToIndexCandidateDivinerConfigSchema = `${ImageThumbnailStateToIndexCandidateDivinerSchema}.config`\nexport const ImageThumbnailStateToIndexCandidateDivinerConfigSchema: ImageThumbnailStateToIndexCandidateDivinerConfigSchema = `${ImageThumbnailStateToIndexCandidateDivinerSchema}.config`\n\nexport type ImageThumbnailStateToIndexCandidateDivinerConfig = DivinerConfig<{\n payloadDivinerLimit?: number\n /**\n * Where the diviner should look for stored thumbnails\n */\n payloadStore?: SearchableStorage\n schema: ImageThumbnailStateToIndexCandidateDivinerConfigSchema\n}>\n","import { assertEx } from '@xylabs/assert'\nimport { exists } from '@xylabs/exists'\nimport { ArchivistInstance } from '@xyo-network/archivist-model'\nimport { ArchivistWrapper } from '@xyo-network/archivist-wrapper'\nimport { BoundWitness, isBoundWitnessWithMeta } from '@xyo-network/boundwitness-model'\nimport { AbstractDiviner } from '@xyo-network/diviner-abstract'\nimport { BoundWitnessDivinerQueryPayload, BoundWitnessDivinerQuerySchema } from '@xyo-network/diviner-boundwitness-model'\nimport { DivinerWrapper } from '@xyo-network/diviner-wrapper'\nimport { ImageThumbnail, ImageThumbnailSchema, isImageThumbnail } from '@xyo-network/image-thumbnail-payload-plugin'\nimport { isModuleState, ModuleState, ModuleStateSchema } from '@xyo-network/module-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload, Schema, WithMeta, WithSources } from '@xyo-network/payload-model'\nimport { isTimestamp, TimeStamp, TimestampSchema } from '@xyo-network/witness-timestamp'\n\nimport { ImageThumbnailDivinerLabels, ImageThumbnailDivinerStageLabels } from '../ImageThumbnailDivinerLabels.ts'\nimport { ImageThumbnailDivinerState } from '../ImageThumbnailDivinerState.ts'\nimport { ImageThumbnailStateToIndexCandidateDivinerConfigSchema } from './Config.ts'\nimport { ImageThumbnailStateToIndexCandidateDivinerParams } from './Params.ts'\n\n/**\n * All Payload types involved in index candidates for indexing\n */\nexport type IndexCandidate = BoundWitness | ImageThumbnail | TimeStamp\n\n/**\n * The response from the ImageThumbnailStateToIndexCandidateDiviner\n */\nexport type ImageThumbnailStateToIndexCandidateDivinerResponse = [\n /**\n * The next state of the diviner\n */\n nextState: ModuleState<ImageThumbnailDivinerState>,\n /**\n * The index candidates\n */\n ...IndexCandidate[],\n]\n\n/**\n * The required payload_schemas within BoundWitnesses to identify index candidates\n */\nconst payload_schemas = [ImageThumbnailSchema, TimestampSchema]\n\n/**\n * Index candidate identity functions\n */\nconst indexCandidateIdentityFunctions = [isImageThumbnail, isTimestamp] as const\n\n/**\n * The default order to search Bound Witnesses to identify index candidates\n */\nconst order = 'asc'\n\n/**\n * The name of the module (for logging purposes)\n */\nconst moduleName = 'ImageThumbnailStateToIndexCandidateDiviner'\n\n/**\n * Transforms candidates for image thumbnail indexing into their indexed representation\n */\nexport class ImageThumbnailStateToIndexCandidateDiviner<\n TParams extends ImageThumbnailStateToIndexCandidateDivinerParams = ImageThumbnailStateToIndexCandidateDivinerParams,\n> extends AbstractDiviner<TParams> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, ImageThumbnailStateToIndexCandidateDivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = ImageThumbnailStateToIndexCandidateDivinerConfigSchema\n static override labels: ImageThumbnailDivinerStageLabels = {\n ...super.labels,\n ...ImageThumbnailDivinerLabels,\n 'network.xyo.diviner.stage': 'stateToIndexCandidateDiviner',\n }\n\n get payloadDivinerLimit() {\n return this.config.payloadDivinerLimit ?? 1000\n }\n\n protected static async getPayloadsInBoundWitness(bw: BoundWitness, archivist: ArchivistInstance): Promise<IndexCandidate[] | undefined> {\n const indexes = payload_schemas.map(schema => bw.payload_schemas?.findIndex(s => s === schema))\n const hashes = indexes.map(index => bw.payload_hashes?.[index])\n const results = await archivist.get(hashes)\n const filteredResults = indexCandidateIdentityFunctions.map(is => results.find(is))\n if (filteredResults.includes(undefined)) return undefined\n const indexCandidates: IndexCandidate[] = filteredResults.filter(exists) as WithMeta<IndexCandidate>[]\n return [bw, ...indexCandidates]\n }\n\n protected override async divineHandler(payloads: Payload[] = []): Promise<ImageThumbnailStateToIndexCandidateDivinerResponse> {\n // Retrieve the last state from what was passed in\n const lastState = payloads.find(isModuleState<ImageThumbnailDivinerState>)\n // If there is no last state, start from the beginning\n if (!lastState) return [{ schema: ModuleStateSchema, state: { offset: 0 } }]\n // Otherwise, get the last offset\n const { offset } = lastState.state\n // Get next batch of results starting from the offset\n const boundWitnessDiviner = await this.getBoundWitnessDivinerForStore()\n const query = await new PayloadBuilder<BoundWitnessDivinerQueryPayload>({ schema: BoundWitnessDivinerQuerySchema })\n .fields({ limit: this.payloadDivinerLimit, offset, order, payload_schemas })\n .build()\n const batch = (await boundWitnessDiviner.divine([query])) as WithSources<WithMeta<BoundWitness>>[]\n if (batch.length === 0) return [lastState]\n // Get source data\n const sourceArchivist = await this.getArchivistForStore()\n const indexCandidates: IndexCandidate[] = (\n await Promise.all(\n batch.filter(isBoundWitnessWithMeta).map(bw => ImageThumbnailStateToIndexCandidateDiviner.getPayloadsInBoundWitness(bw, sourceArchivist)),\n )\n )\n .filter(exists)\n .flat()\n const nextState = { schema: ModuleStateSchema, state: { ...lastState.state, offset: offset + batch.length } }\n return [nextState, ...indexCandidates]\n }\n\n /**\n * Retrieves the archivist for the payloadStore\n * @returns The archivist for the payloadStore\n */\n protected async getArchivistForStore() {\n const name = assertEx(this.config?.payloadStore?.archivist, () => `${moduleName}: Config for payloadStore.archivist not specified`)\n const mod = assertEx(await this.resolve(name), () => `${moduleName}: Failed to resolve payloadStore.archivist`)\n return ArchivistWrapper.wrap(mod, this.account)\n }\n\n /**\n * Retrieves the BoundWitness Diviner for the payloadStore\n * @returns The BoundWitness Diviner for the payloadStore\n */\n protected async getBoundWitnessDivinerForStore() {\n const name = assertEx(\n this.config?.payloadStore?.boundWitnessDiviner,\n () => `${moduleName}: Config for payloadStore.boundWitnessDiviner not specified`,\n )\n const mod = assertEx(await this.resolve(name), () => `${moduleName}: Failed to resolve payloadStore.boundWitnessDiviner`)\n return DivinerWrapper.wrap(mod, this.account)\n }\n}\n"],"mappings":"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","names":["AbstractDiviner","DivinerConfigSchema","PayloadBuilder","UrlSchema","AbstractDiviner","DivinerConfigSchema","PayloadBuilder","UrlSchema","AbstractDiviner","DivinerConfigSchema","isImageThumbnailDivinerQuery","PayloadBuilder","UrlSchema","AbstractDiviner","DivinerConfigSchema","isImageThumbnailDivinerQuery","order","UrlSchema","PayloadBuilder","PayloadDivinerQuerySchema","exists","AbstractDiviner","ImageThumbnailSchema","isImageThumbnail","PayloadBuilder","isTimestamp","TimestampSchema","ImageThumbnailSchema","TimestampSchema","isImageThumbnail","isTimestamp","AbstractDiviner","exists","PayloadBuilder"]}
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'\nimport type { AttachableDivinerInstance } from '@xyo-network/diviner-model'\n\nimport { ImageThumbnailDivinerLabels } from './ImageThumbnailDivinerLabels.ts'\n\nexport class ImageThumbnailDiviner extends IndexingDiviner implements AttachableDivinerInstance {\n static override labels: ImageThumbnailDivinerLabels = { ...super.labels, ...ImageThumbnailDivinerLabels }\n}\n","import type { DivinerStageSchema, IndexingDivinerStage } from '@xyo-network/diviner-indexing'\nimport type { 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 = { 'network.xyo.image.thumbnail': 'diviner' }\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 type { Hash } from '@xylabs/hex'\nimport type { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { isBoundWitness } from '@xyo-network/boundwitness-model'\nimport { AbstractDiviner } from '@xyo-network/diviner-abstract'\nimport { DivinerConfigSchema } from '@xyo-network/diviner-model'\nimport type {\n ImageThumbnail,\n ImageThumbnailResultIndex,\n ImageThumbnailResultIndexFields,\n} from '@xyo-network/image-thumbnail-payload-plugin'\nimport {\n ImageThumbnailResultIndexSchema,\n ImageThumbnailSchema,\n isImageThumbnail,\n} from '@xyo-network/image-thumbnail-payload-plugin'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type {\n Payload, Schema, WithMeta, WithSources,\n} from '@xyo-network/payload-model'\nimport { UrlSchema } from '@xyo-network/url-payload-plugin'\nimport type { TimeStamp } from '@xyo-network/witness-timestamp'\nimport { isTimestamp, TimestampSchema } from '@xyo-network/witness-timestamp'\n\nimport type { ImageThumbnailDivinerStageLabels } from './ImageThumbnailDivinerLabels.ts'\nimport { ImageThumbnailDivinerLabels } from './ImageThumbnailDivinerLabels.ts'\n\n/**\n * Transforms candidates for image thumbnail indexing into their indexed representation\n */\nexport class ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner extends AbstractDiviner {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, DivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = DivinerConfigSchema\n static override labels: ImageThumbnailDivinerStageLabels = {\n ...super.labels,\n ...ImageThumbnailDivinerLabels,\n 'network.xyo.diviner.stage': 'indexCandidateToIndexDiviner',\n }\n\n protected override async divineHandler(payloads: Payload[] = []): Promise<WithSources<ImageThumbnailResultIndex>[]> {\n const bws: BoundWitness[] = payloads.filter(isBoundWitness)\n const imageThumbnailPayloads: ImageThumbnail[] = payloads.filter(isImageThumbnail)\n const timestampPayloads: TimeStamp[] = payloads.filter(isTimestamp)\n if (bws.length > 0 && imageThumbnailPayloads.length > 0 && timestampPayloads.length > 0) {\n const payloadDictionary = await PayloadBuilder.toDataHashMap(payloads)\n // eslint-disable-next-line unicorn/no-array-reduce\n const tuples: [BoundWitness, ImageThumbnail, TimeStamp][] = bws.reduce<[BoundWitness, ImageThumbnail, TimeStamp][]>(\n (acc, curr) => {\n const imageThumbnailIndex = curr.payload_schemas?.findIndex(schema => schema === ImageThumbnailSchema)\n const timestampIndex = curr.payload_schemas?.findIndex(schema => schema === TimestampSchema)\n const imageThumbnailHash = curr.payload_hashes?.[imageThumbnailIndex]\n const timestampHash = curr.payload_hashes?.[timestampIndex]\n const imageThumbnailPayload = [payloadDictionary[imageThumbnailHash]].find(isImageThumbnail) as WithMeta<ImageThumbnail> | undefined\n const timestampPayload = [payloadDictionary[timestampHash]].find(isTimestamp) as WithMeta<TimeStamp>\n if (imageThumbnailPayload && timestampPayload) acc.push([curr, imageThumbnailPayload, timestampPayload])\n return acc\n },\n [] as [BoundWitness, ImageThumbnail, TimeStamp][],\n )\n const indexes = await Promise.all(\n tuples.map(async ([bw, imageThumbnailPayload, timestampPayload]) => {\n const { sourceUrl: url, http } = imageThumbnailPayload\n const { timestamp } = timestampPayload\n const { status } = http ?? {}\n const success = !!imageThumbnailPayload.url // Call anything with a thumbnail url a success\n const sources: Hash[] = await PayloadBuilder.dataHashes([bw, imageThumbnailPayload, timestampPayload])\n const urlPayload = { schema: UrlSchema, url }\n const key: Hash = await PayloadBuilder.dataHash(urlPayload)\n const fields: ImageThumbnailResultIndexFields = {\n key, sources, success, timestamp,\n }\n if (status) fields.status = status\n const result = await new PayloadBuilder<WithSources<ImageThumbnailResultIndex>>({ schema: ImageThumbnailResultIndexSchema })\n .fields(fields)\n .build()\n return [result]\n }),\n )\n return indexes.flat()\n }\n return []\n }\n}\n","import { exists } from '@xylabs/exists'\nimport { AbstractDiviner } from '@xyo-network/diviner-abstract'\nimport { DivinerConfigSchema } from '@xyo-network/diviner-model'\nimport type {\n ImageThumbnailResult,\n ImageThumbnailResultFields,\n} from '@xyo-network/image-thumbnail-payload-plugin'\nimport {\n ImageThumbnailResultSchema,\n isImageThumbnailDivinerQuery,\n isImageThumbnailResultIndex,\n} from '@xyo-network/image-thumbnail-payload-plugin'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type { Payload, Schema } from '@xyo-network/payload-model'\nimport { UrlSchema } from '@xyo-network/url-payload-plugin'\n\nimport type { ImageThumbnailDivinerStageLabels } from './ImageThumbnailDivinerLabels.ts'\nimport { ImageThumbnailDivinerLabels } from './ImageThumbnailDivinerLabels.ts'\n\n/**\n * Transforms an ImageThumbnailIndex response into an ImageThumbnailResponse response\n */\nexport class ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner extends AbstractDiviner {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, DivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = DivinerConfigSchema\n static override labels: ImageThumbnailDivinerStageLabels = {\n ...super.labels,\n ...ImageThumbnailDivinerLabels,\n 'network.xyo.diviner.stage': 'indexQueryResponseToDivinerQueryResponseDiviner',\n }\n\n protected override async divineHandler(payloads: Payload[] = []): Promise<ImageThumbnailResult[]> {\n // Filter out the two operands\n const imageThumbnailDivinerQueries = payloads.filter(isImageThumbnailDivinerQuery)\n const imageThumbnailResultIndexes = payloads.filter(isImageThumbnailResultIndex)\n\n // If we have operands\n if (imageThumbnailDivinerQueries.length > 0 && imageThumbnailResultIndexes.length > 0) {\n // Create a dictionary to translate index keys to the urls that represent them\n const keyToUrlDictionary = Object.fromEntries(\n await Promise.all(\n imageThumbnailDivinerQueries.map(async (imageThumbnailDivinerQuery) => {\n const { url } = imageThumbnailDivinerQuery\n const urlPayload = await new PayloadBuilder<Omit<ImageThumbnailResult, 'timestamp' | 'success' | 'sources'>>({ schema: UrlSchema })\n .fields({ url })\n .build()\n const key = await PayloadBuilder.dataHash(urlPayload)\n return [key, url] as const\n }),\n ),\n )\n // Map the indexes to responses using the dictionary\n return (\n await Promise.all(\n imageThumbnailResultIndexes.map(async (imageThumbnailResultIndex) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n key, schema, ...commonFields\n } = imageThumbnailResultIndex\n const url = keyToUrlDictionary?.[key]\n if (url) {\n const fields: ImageThumbnailResultFields = { ...commonFields, url }\n return await new PayloadBuilder<ImageThumbnailResult>({ schema: ImageThumbnailResultSchema }).fields(fields).build()\n }\n }),\n )\n ).filter(exists)\n }\n return []\n }\n}\n","import { AbstractDiviner } from '@xyo-network/diviner-abstract'\nimport { DivinerConfigSchema } from '@xyo-network/diviner-model'\nimport { PayloadDivinerQuerySchema } from '@xyo-network/diviner-payload-model'\nimport { isImageThumbnailDivinerQuery } from '@xyo-network/image-thumbnail-payload-plugin'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type { Payload, Schema } from '@xyo-network/payload-model'\nimport { UrlSchema } from '@xyo-network/url-payload-plugin'\n\nimport type { ImageThumbnailDivinerStageLabels } from './ImageThumbnailDivinerLabels.ts'\nimport { ImageThumbnailDivinerLabels } from './ImageThumbnailDivinerLabels.ts'\nimport type { ImageThumbnailResultQuery } from './ImageThumbnailResultQuery.ts'\n\n/**\n * A diviner that converts ImageThumbnailDivinerQuery to ImageThumbnailResultQuery\n */\nexport class ImageThumbnailQueryToImageThumbnailIndexQueryDiviner extends AbstractDiviner {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, DivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = DivinerConfigSchema\n static override labels: ImageThumbnailDivinerStageLabels = {\n ...super.labels,\n ...ImageThumbnailDivinerLabels,\n 'network.xyo.diviner.stage': 'divinerQueryToIndexQueryDiviner',\n }\n\n protected override async divineHandler(\n payloads: Payload[] = [],\n ): Promise<Omit<Omit<ImageThumbnailResultQuery, 'timestamp' | 'success'> & Partial<Pick<ImageThumbnailResultQuery, 'success'>>, 'timestamp'>[]> {\n const queries = payloads.filter(isImageThumbnailDivinerQuery)\n if (queries.length > 0) {\n const results = await Promise.all(\n queries.map(async (query) => {\n const {\n limit: payloadLimit, offset: payloadOffset, order: payloadOrder, status: payloadStatus, success: payloadSuccess, url,\n } = query\n const limit = payloadLimit ?? 1\n const order = payloadOrder ?? 'desc'\n const offset = payloadOffset ?? 0\n const urlPayload = { schema: UrlSchema, url }\n const key = await PayloadBuilder.dataHash(urlPayload)\n const fields: Omit<ImageThumbnailResultQuery, 'schema' | 'timestamp' | 'success'> & Partial<Pick<ImageThumbnailResultQuery, 'success'>> = {\n key,\n limit,\n offset,\n order,\n }\n if (payloadSuccess !== undefined) fields.success = payloadSuccess\n if (payloadStatus !== undefined) fields.status = payloadStatus\n return await new PayloadBuilder<\n Omit<ImageThumbnailResultQuery, 'timestamp' | 'success'> & Partial<Pick<ImageThumbnailResultQuery, 'success'>>\n >({ schema: PayloadDivinerQuerySchema })\n .fields(fields)\n .build()\n }),\n )\n return results\n }\n return []\n }\n}\n","import type { PayloadDivinerQueryPayload } from '@xyo-network/diviner-payload-model'\nimport { PayloadDivinerQuerySchema } from '@xyo-network/diviner-payload-model'\nimport type { 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\n= `${ImageThumbnailDivinerSchema}.stage.stateToIndexCandidateDiviner`\n","import type { DivinerConfig } from '@xyo-network/diviner-model'\nimport type { SearchableStorage } from '@xyo-network/image-thumbnail-payload-plugin'\n\nimport { ImageThumbnailStateToIndexCandidateDivinerSchema } from './Schema.ts'\n\nexport type ImageThumbnailStateToIndexCandidateDivinerConfigSchema = `${ImageThumbnailStateToIndexCandidateDivinerSchema}.config`\nexport const ImageThumbnailStateToIndexCandidateDivinerConfigSchema: ImageThumbnailStateToIndexCandidateDivinerConfigSchema\n= `${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 type { ArchivistInstance } from '@xyo-network/archivist-model'\nimport { ArchivistWrapper } from '@xyo-network/archivist-wrapper'\nimport type { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { isBoundWitnessWithMeta } from '@xyo-network/boundwitness-model'\nimport { AbstractDiviner } from '@xyo-network/diviner-abstract'\nimport type { BoundWitnessDivinerQueryPayload } from '@xyo-network/diviner-boundwitness-model'\nimport { BoundWitnessDivinerQuerySchema } from '@xyo-network/diviner-boundwitness-model'\nimport { DivinerWrapper } from '@xyo-network/diviner-wrapper'\nimport type { ImageThumbnail } from '@xyo-network/image-thumbnail-payload-plugin'\nimport { ImageThumbnailSchema, isImageThumbnail } from '@xyo-network/image-thumbnail-payload-plugin'\nimport type { ModuleState } from '@xyo-network/module-model'\nimport { isModuleState, ModuleStateSchema } from '@xyo-network/module-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type {\n Payload, Schema, WithMeta, WithSources,\n} from '@xyo-network/payload-model'\nimport type { TimeStamp } from '@xyo-network/witness-timestamp'\nimport { isTimestamp, TimestampSchema } from '@xyo-network/witness-timestamp'\n\nimport type { ImageThumbnailDivinerStageLabels } from '../ImageThumbnailDivinerLabels.ts'\nimport { ImageThumbnailDivinerLabels } from '../ImageThumbnailDivinerLabels.ts'\nimport type { ImageThumbnailDivinerState } from '../ImageThumbnailDivinerState.ts'\nimport { ImageThumbnailStateToIndexCandidateDivinerConfigSchema } from './Config.ts'\nimport type { ImageThumbnailStateToIndexCandidateDivinerParams } from './Params.ts'\n\n/**\n * All Payload types involved in index candidates for indexing\n */\nexport type IndexCandidate = BoundWitness | ImageThumbnail | TimeStamp\n\n/**\n * The response from the ImageThumbnailStateToIndexCandidateDiviner\n */\nexport type ImageThumbnailStateToIndexCandidateDivinerResponse = [\n /**\n * The next state of the diviner\n */\n nextState: ModuleState<ImageThumbnailDivinerState>,\n /**\n * The index candidates\n */\n ...IndexCandidate[],\n]\n\n/**\n * The required payload_schemas within BoundWitnesses to identify index candidates\n */\nconst payload_schemas = [ImageThumbnailSchema, TimestampSchema]\n\n/**\n * Index candidate identity functions\n */\nconst indexCandidateIdentityFunctions = [isImageThumbnail, isTimestamp] as const\n\n/**\n * The default order to search Bound Witnesses to identify index candidates\n */\nconst order = 'asc'\n\n/**\n * The name of the module (for logging purposes)\n */\nconst moduleName = 'ImageThumbnailStateToIndexCandidateDiviner'\n\n/**\n * Transforms candidates for image thumbnail indexing into their indexed representation\n */\nexport class ImageThumbnailStateToIndexCandidateDiviner<\n TParams extends ImageThumbnailStateToIndexCandidateDivinerParams = ImageThumbnailStateToIndexCandidateDivinerParams,\n> extends AbstractDiviner<TParams> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, ImageThumbnailStateToIndexCandidateDivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = ImageThumbnailStateToIndexCandidateDivinerConfigSchema\n static override labels: ImageThumbnailDivinerStageLabels = {\n ...super.labels,\n ...ImageThumbnailDivinerLabels,\n 'network.xyo.diviner.stage': 'stateToIndexCandidateDiviner',\n }\n\n get payloadDivinerLimit() {\n return this.config.payloadDivinerLimit ?? 1000\n }\n\n protected static async getPayloadsInBoundWitness(bw: BoundWitness, archivist: ArchivistInstance): Promise<IndexCandidate[] | undefined> {\n const indexes = payload_schemas.map(schema => bw.payload_schemas?.findIndex(s => s === schema))\n const hashes = indexes.map(index => bw.payload_hashes?.[index])\n const results = await archivist.get(hashes)\n const filteredResults = indexCandidateIdentityFunctions.map(is => results.find(is))\n if (filteredResults.includes(undefined)) return undefined\n const indexCandidates: IndexCandidate[] = filteredResults.filter(exists) as WithMeta<IndexCandidate>[]\n return [bw, ...indexCandidates]\n }\n\n protected override async divineHandler(payloads: Payload[] = []): Promise<ImageThumbnailStateToIndexCandidateDivinerResponse> {\n // Retrieve the last state from what was passed in\n const lastState = payloads.find(isModuleState<ImageThumbnailDivinerState>)\n // If there is no last state, start from the beginning\n if (!lastState) return [{ schema: ModuleStateSchema, state: { offset: 0 } }]\n // Otherwise, get the last offset\n const { offset } = lastState.state\n // Get next batch of results starting from the offset\n const boundWitnessDiviner = await this.getBoundWitnessDivinerForStore()\n const query = await new PayloadBuilder<BoundWitnessDivinerQueryPayload>({ schema: BoundWitnessDivinerQuerySchema })\n .fields({\n limit: this.payloadDivinerLimit, offset, order, payload_schemas,\n })\n .build()\n const batch = (await boundWitnessDiviner.divine([query])) as WithSources<WithMeta<BoundWitness>>[]\n if (batch.length === 0) return [lastState]\n // Get source data\n const sourceArchivist = await this.getArchivistForStore()\n const indexCandidates: IndexCandidate[] = (\n await Promise.all(\n batch.filter(isBoundWitnessWithMeta).map(bw => ImageThumbnailStateToIndexCandidateDiviner.getPayloadsInBoundWitness(bw, sourceArchivist)),\n )\n )\n .filter(exists)\n .flat()\n const nextState = { schema: ModuleStateSchema, state: { ...lastState.state, offset: offset + batch.length } }\n return [nextState, ...indexCandidates]\n }\n\n /**\n * Retrieves the archivist for the payloadStore\n * @returns The archivist for the payloadStore\n */\n protected async getArchivistForStore() {\n const name = assertEx(this.config?.payloadStore?.archivist, () => `${moduleName}: Config for payloadStore.archivist not specified`)\n const mod = assertEx(await this.resolve(name), () => `${moduleName}: Failed to resolve payloadStore.archivist`)\n return ArchivistWrapper.wrap(mod, this.account)\n }\n\n /**\n * Retrieves the BoundWitness Diviner for the payloadStore\n * @returns The BoundWitness Diviner for the payloadStore\n */\n protected async getBoundWitnessDivinerForStore() {\n const name = assertEx(\n this.config?.payloadStore?.boundWitnessDiviner,\n () => `${moduleName}: Config for payloadStore.boundWitnessDiviner not specified`,\n )\n const mod = assertEx(await this.resolve(name), () => `${moduleName}: Failed to resolve payloadStore.boundWitnessDiviner`)\n return DivinerWrapper.wrap(mod, this.account)\n }\n}\n"],"mappings":"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","names":["AbstractDiviner","DivinerConfigSchema","PayloadBuilder","UrlSchema","AbstractDiviner","DivinerConfigSchema","PayloadBuilder","UrlSchema","AbstractDiviner","DivinerConfigSchema","isImageThumbnailDivinerQuery","PayloadBuilder","UrlSchema","AbstractDiviner","DivinerConfigSchema","isImageThumbnailDivinerQuery","order","UrlSchema","PayloadBuilder","PayloadDivinerQuerySchema","exists","AbstractDiviner","ImageThumbnailSchema","isImageThumbnail","PayloadBuilder","isTimestamp","TimestampSchema","ImageThumbnailSchema","TimestampSchema","isImageThumbnail","isTimestamp","AbstractDiviner","exists","PayloadBuilder"]}
package/package.json CHANGED
@@ -1,51 +1,24 @@
1
1
  {
2
2
  "name": "@xyo-network/diviner-image-thumbnail",
3
- "author": {
4
- "email": "support@xyo.network",
5
- "name": "XYO Development Team",
6
- "url": "https://xyo.network"
7
- },
3
+ "version": "3.0.4",
4
+ "description": "Typescript/Javascript Plugins for XYO Platform",
5
+ "homepage": "https://xyo.network",
8
6
  "bugs": {
9
- "email": "support@xyo.network",
10
- "url": "https://github.com/XYOracleNetwork/plugins/issues"
7
+ "url": "git+https://github.com/XYOracleNetwork/plugins/issues",
8
+ "email": "support@xyo.network"
11
9
  },
12
- "dependencies": {
13
- "@xylabs/assert": "^4.0.1",
14
- "@xylabs/exists": "^4.0.1",
15
- "@xylabs/hex": "^4.0.1",
16
- "@xyo-network/archivist-model": "^3.0.2",
17
- "@xyo-network/archivist-wrapper": "^3.0.2",
18
- "@xyo-network/boundwitness-model": "^3.0.2",
19
- "@xyo-network/diviner-abstract": "^3.0.2",
20
- "@xyo-network/diviner-boundwitness-model": "^3.0.2",
21
- "@xyo-network/diviner-indexing": "^3.0.2",
22
- "@xyo-network/diviner-model": "^3.0.2",
23
- "@xyo-network/diviner-payload-model": "^3.0.2",
24
- "@xyo-network/diviner-wrapper": "^3.0.2",
25
- "@xyo-network/image-thumbnail-payload-plugin": "^3.0.2",
26
- "@xyo-network/module-model": "^3.0.2",
27
- "@xyo-network/payload-builder": "^3.0.2",
28
- "@xyo-network/payload-model": "^3.0.2",
29
- "@xyo-network/url-payload-plugin": "^3.0.2",
30
- "@xyo-network/witness-timestamp": "^3.0.2"
10
+ "repository": {
11
+ "type": "git",
12
+ "url": "git+https://github.com/XYOracleNetwork/plugins.git"
31
13
  },
32
- "devDependencies": {
33
- "@xylabs/delay": "^4.0.1",
34
- "@xylabs/hex": "^4.0.1",
35
- "@xylabs/ts-scripts-yarn3": "^4.0.0-rc.15",
36
- "@xylabs/tsconfig": "^4.0.0-rc.15",
37
- "@xyo-network/account": "^3.0.2",
38
- "@xyo-network/archivist-memory": "^3.0.2",
39
- "@xyo-network/boundwitness-builder": "^3.0.2",
40
- "@xyo-network/diviner-boundwitness-memory": "^3.0.2",
41
- "@xyo-network/diviner-payload-memory": "^3.0.2",
42
- "@xyo-network/manifest": "^3.0.2",
43
- "@xyo-network/module-factory-locator": "^3.0.2",
44
- "@xyo-network/node-memory": "^3.0.2",
45
- "typescript": "^5.5.4"
14
+ "license": "LGPL-3.0-only",
15
+ "author": {
16
+ "name": "XYO Development Team",
17
+ "email": "support@xyo.network",
18
+ "url": "https://xyo.network"
46
19
  },
47
- "description": "Typescript/Javascript Plugins for XYO Platform",
48
- "types": "dist/neutral/index.d.ts",
20
+ "sideEffects": false,
21
+ "type": "module",
49
22
  "exports": {
50
23
  ".": {
51
24
  "types": "./dist/neutral/index.d.ts",
@@ -54,16 +27,43 @@
54
27
  "./package.json": "./package.json"
55
28
  },
56
29
  "module": "dist/neutral/index.mjs",
57
- "homepage": "https://xyo.network",
58
- "license": "LGPL-3.0-only",
59
- "publishConfig": {
60
- "access": "public"
30
+ "types": "dist/neutral/index.d.ts",
31
+ "dependencies": {
32
+ "@xylabs/assert": "^4.0.4",
33
+ "@xylabs/exists": "^4.0.4",
34
+ "@xylabs/hex": "^4.0.4",
35
+ "@xyo-network/archivist-model": "^3.0.10",
36
+ "@xyo-network/archivist-wrapper": "^3.0.10",
37
+ "@xyo-network/boundwitness-model": "^3.0.10",
38
+ "@xyo-network/diviner-abstract": "^3.0.10",
39
+ "@xyo-network/diviner-boundwitness-model": "^3.0.10",
40
+ "@xyo-network/diviner-indexing": "^3.0.10",
41
+ "@xyo-network/diviner-model": "^3.0.10",
42
+ "@xyo-network/diviner-payload-model": "^3.0.10",
43
+ "@xyo-network/diviner-wrapper": "^3.0.10",
44
+ "@xyo-network/image-thumbnail-payload-plugin": "^3.0.4",
45
+ "@xyo-network/module-model": "^3.0.10",
46
+ "@xyo-network/payload-builder": "^3.0.10",
47
+ "@xyo-network/payload-model": "^3.0.10",
48
+ "@xyo-network/url-payload-plugin": "^3.0.4",
49
+ "@xyo-network/witness-timestamp": "^3.0.10"
61
50
  },
62
- "repository": {
63
- "type": "git",
64
- "url": "https://github.com/XYOracleNetwork/plugins.git"
51
+ "devDependencies": {
52
+ "@xylabs/delay": "^4.0.4",
53
+ "@xylabs/hex": "^4.0.4",
54
+ "@xylabs/ts-scripts-yarn3": "^4.0.7",
55
+ "@xylabs/tsconfig": "^4.0.7",
56
+ "@xyo-network/account": "^3.0.10",
57
+ "@xyo-network/archivist-memory": "^3.0.10",
58
+ "@xyo-network/boundwitness-builder": "^3.0.10",
59
+ "@xyo-network/diviner-boundwitness-memory": "^3.0.10",
60
+ "@xyo-network/diviner-payload-memory": "^3.0.10",
61
+ "@xyo-network/manifest": "^3.0.10",
62
+ "@xyo-network/module-factory-locator": "^3.0.10",
63
+ "@xyo-network/node-memory": "^3.0.10",
64
+ "typescript": "^5.5.4"
65
65
  },
66
- "sideEffects": false,
67
- "version": "3.0.2",
68
- "type": "module"
66
+ "publishConfig": {
67
+ "access": "public"
68
+ }
69
69
  }
@@ -1,5 +1,5 @@
1
1
  import { IndexingDiviner } from '@xyo-network/diviner-indexing'
2
- import { AttachableDivinerInstance } from '@xyo-network/diviner-model'
2
+ import type { AttachableDivinerInstance } from '@xyo-network/diviner-model'
3
3
 
4
4
  import { ImageThumbnailDivinerLabels } from './ImageThumbnailDivinerLabels.ts'
5
5
 
@@ -1,5 +1,5 @@
1
- import { DivinerStageSchema, IndexingDivinerStage } from '@xyo-network/diviner-indexing'
2
- import { Labels } from '@xyo-network/module-model'
1
+ import type { DivinerStageSchema, IndexingDivinerStage } from '@xyo-network/diviner-indexing'
2
+ import type { Labels } from '@xyo-network/module-model'
3
3
 
4
4
  /**
5
5
  * Labels for Image Thumbnail Diviner components
@@ -11,9 +11,7 @@ export interface ImageThumbnailDivinerLabels extends Labels {
11
11
  /**
12
12
  * Labels for Image Thumbnail Diviner components
13
13
  */
14
- export const ImageThumbnailDivinerLabels: ImageThumbnailDivinerLabels = {
15
- 'network.xyo.image.thumbnail': 'diviner',
16
- }
14
+ export const ImageThumbnailDivinerLabels: ImageThumbnailDivinerLabels = { 'network.xyo.image.thumbnail': 'diviner' }
17
15
 
18
16
  /**
19
17
  * Labels for Image Thumbnail Diviner Stage Diviners
@@ -1,4 +1,4 @@
1
- import { StateDictionary } from '@xyo-network/module-model'
1
+ import type { StateDictionary } from '@xyo-network/module-model'
2
2
 
3
3
  export type ImageThumbnailDivinerState = StateDictionary & {
4
4
  offset: number
@@ -1,21 +1,28 @@
1
- import { Hash } from '@xylabs/hex'
2
- import { BoundWitness, isBoundWitness } from '@xyo-network/boundwitness-model'
1
+ import type { Hash } from '@xylabs/hex'
2
+ import type { BoundWitness } from '@xyo-network/boundwitness-model'
3
+ import { isBoundWitness } from '@xyo-network/boundwitness-model'
3
4
  import { AbstractDiviner } from '@xyo-network/diviner-abstract'
4
5
  import { DivinerConfigSchema } from '@xyo-network/diviner-model'
5
- import {
6
+ import type {
6
7
  ImageThumbnail,
7
8
  ImageThumbnailResultIndex,
8
9
  ImageThumbnailResultIndexFields,
10
+ } from '@xyo-network/image-thumbnail-payload-plugin'
11
+ import {
9
12
  ImageThumbnailResultIndexSchema,
10
13
  ImageThumbnailSchema,
11
14
  isImageThumbnail,
12
15
  } from '@xyo-network/image-thumbnail-payload-plugin'
13
16
  import { PayloadBuilder } from '@xyo-network/payload-builder'
14
- import { Payload, Schema, WithMeta, WithSources } from '@xyo-network/payload-model'
17
+ import type {
18
+ Payload, Schema, WithMeta, WithSources,
19
+ } from '@xyo-network/payload-model'
15
20
  import { UrlSchema } from '@xyo-network/url-payload-plugin'
16
- import { isTimestamp, TimeStamp, TimestampSchema } from '@xyo-network/witness-timestamp'
21
+ import type { TimeStamp } from '@xyo-network/witness-timestamp'
22
+ import { isTimestamp, TimestampSchema } from '@xyo-network/witness-timestamp'
17
23
 
18
- import { ImageThumbnailDivinerLabels, ImageThumbnailDivinerStageLabels } from './ImageThumbnailDivinerLabels.ts'
24
+ import type { ImageThumbnailDivinerStageLabels } from './ImageThumbnailDivinerLabels.ts'
25
+ import { ImageThumbnailDivinerLabels } from './ImageThumbnailDivinerLabels.ts'
19
26
 
20
27
  /**
21
28
  * Transforms candidates for image thumbnail indexing into their indexed representation
@@ -58,11 +65,11 @@ export class ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner extends Ab
58
65
  const sources: Hash[] = await PayloadBuilder.dataHashes([bw, imageThumbnailPayload, timestampPayload])
59
66
  const urlPayload = { schema: UrlSchema, url }
60
67
  const key: Hash = await PayloadBuilder.dataHash(urlPayload)
61
- const fields: ImageThumbnailResultIndexFields = { key, sources, success, timestamp }
68
+ const fields: ImageThumbnailResultIndexFields = {
69
+ key, sources, success, timestamp,
70
+ }
62
71
  if (status) fields.status = status
63
- const result = await new PayloadBuilder<WithSources<ImageThumbnailResultIndex>>({
64
- schema: ImageThumbnailResultIndexSchema,
65
- })
72
+ const result = await new PayloadBuilder<WithSources<ImageThumbnailResultIndex>>({ schema: ImageThumbnailResultIndexSchema })
66
73
  .fields(fields)
67
74
  .build()
68
75
  return [result]
@@ -1,18 +1,21 @@
1
1
  import { exists } from '@xylabs/exists'
2
2
  import { AbstractDiviner } from '@xyo-network/diviner-abstract'
3
3
  import { DivinerConfigSchema } from '@xyo-network/diviner-model'
4
- import {
4
+ import type {
5
5
  ImageThumbnailResult,
6
6
  ImageThumbnailResultFields,
7
+ } from '@xyo-network/image-thumbnail-payload-plugin'
8
+ import {
7
9
  ImageThumbnailResultSchema,
8
10
  isImageThumbnailDivinerQuery,
9
11
  isImageThumbnailResultIndex,
10
12
  } from '@xyo-network/image-thumbnail-payload-plugin'
11
13
  import { PayloadBuilder } from '@xyo-network/payload-builder'
12
- import { Payload, Schema } from '@xyo-network/payload-model'
14
+ import type { Payload, Schema } from '@xyo-network/payload-model'
13
15
  import { UrlSchema } from '@xyo-network/url-payload-plugin'
14
16
 
15
- import { ImageThumbnailDivinerLabels, ImageThumbnailDivinerStageLabels } from './ImageThumbnailDivinerLabels.ts'
17
+ import type { ImageThumbnailDivinerStageLabels } from './ImageThumbnailDivinerLabels.ts'
18
+ import { ImageThumbnailDivinerLabels } from './ImageThumbnailDivinerLabels.ts'
16
19
 
17
20
  /**
18
21
  * Transforms an ImageThumbnailIndex response into an ImageThumbnailResponse response
@@ -51,7 +54,10 @@ export class ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDivine
51
54
  await Promise.all(
52
55
  imageThumbnailResultIndexes.map(async (imageThumbnailResultIndex) => {
53
56
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
54
- const { key, schema, ...commonFields } = imageThumbnailResultIndex
57
+ const {
58
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
59
+ key, schema, ...commonFields
60
+ } = imageThumbnailResultIndex
55
61
  const url = keyToUrlDictionary?.[key]
56
62
  if (url) {
57
63
  const fields: ImageThumbnailResultFields = { ...commonFields, url }
@@ -3,11 +3,12 @@ import { DivinerConfigSchema } from '@xyo-network/diviner-model'
3
3
  import { PayloadDivinerQuerySchema } from '@xyo-network/diviner-payload-model'
4
4
  import { isImageThumbnailDivinerQuery } from '@xyo-network/image-thumbnail-payload-plugin'
5
5
  import { PayloadBuilder } from '@xyo-network/payload-builder'
6
- import { Payload, Schema } from '@xyo-network/payload-model'
6
+ import type { Payload, Schema } from '@xyo-network/payload-model'
7
7
  import { UrlSchema } from '@xyo-network/url-payload-plugin'
8
8
 
9
- import { ImageThumbnailDivinerLabels, ImageThumbnailDivinerStageLabels } from './ImageThumbnailDivinerLabels.ts'
10
- import { ImageThumbnailResultQuery } from './ImageThumbnailResultQuery.ts'
9
+ import type { ImageThumbnailDivinerStageLabels } from './ImageThumbnailDivinerLabels.ts'
10
+ import { ImageThumbnailDivinerLabels } from './ImageThumbnailDivinerLabels.ts'
11
+ import type { ImageThumbnailResultQuery } from './ImageThumbnailResultQuery.ts'
11
12
 
12
13
  /**
13
14
  * A diviner that converts ImageThumbnailDivinerQuery to ImageThumbnailResultQuery
@@ -28,7 +29,9 @@ export class ImageThumbnailQueryToImageThumbnailIndexQueryDiviner extends Abstra
28
29
  if (queries.length > 0) {
29
30
  const results = await Promise.all(
30
31
  queries.map(async (query) => {
31
- const { limit: payloadLimit, offset: payloadOffset, order: payloadOrder, status: payloadStatus, success: payloadSuccess, url } = query
32
+ const {
33
+ limit: payloadLimit, offset: payloadOffset, order: payloadOrder, status: payloadStatus, success: payloadSuccess, url,
34
+ } = query
32
35
  const limit = payloadLimit ?? 1
33
36
  const order = payloadOrder ?? 'desc'
34
37
  const offset = payloadOffset ?? 0
@@ -1,5 +1,6 @@
1
- import { PayloadDivinerQueryPayload, PayloadDivinerQuerySchema } from '@xyo-network/diviner-payload-model'
2
- import { ImageThumbnailResultIndex } from '@xyo-network/image-thumbnail-payload-plugin'
1
+ import type { PayloadDivinerQueryPayload } from '@xyo-network/diviner-payload-model'
2
+ import { PayloadDivinerQuerySchema } from '@xyo-network/diviner-payload-model'
3
+ import type { ImageThumbnailResultIndex } from '@xyo-network/image-thumbnail-payload-plugin'
3
4
  import { isPayloadOfSchemaType } from '@xyo-network/payload-model'
4
5
 
5
6
  /**
@@ -1,10 +1,11 @@
1
- import { DivinerConfig } from '@xyo-network/diviner-model'
2
- import { SearchableStorage } from '@xyo-network/image-thumbnail-payload-plugin'
1
+ import type { DivinerConfig } from '@xyo-network/diviner-model'
2
+ import type { SearchableStorage } from '@xyo-network/image-thumbnail-payload-plugin'
3
3
 
4
4
  import { ImageThumbnailStateToIndexCandidateDivinerSchema } from './Schema.ts'
5
5
 
6
6
  export type ImageThumbnailStateToIndexCandidateDivinerConfigSchema = `${ImageThumbnailStateToIndexCandidateDivinerSchema}.config`
7
- export const ImageThumbnailStateToIndexCandidateDivinerConfigSchema: ImageThumbnailStateToIndexCandidateDivinerConfigSchema = `${ImageThumbnailStateToIndexCandidateDivinerSchema}.config`
7
+ export const ImageThumbnailStateToIndexCandidateDivinerConfigSchema: ImageThumbnailStateToIndexCandidateDivinerConfigSchema
8
+ = `${ImageThumbnailStateToIndexCandidateDivinerSchema}.config`
8
9
 
9
10
  export type ImageThumbnailStateToIndexCandidateDivinerConfig = DivinerConfig<{
10
11
  payloadDivinerLimit?: number
@@ -1,21 +1,29 @@
1
1
  import { assertEx } from '@xylabs/assert'
2
2
  import { exists } from '@xylabs/exists'
3
- import { ArchivistInstance } from '@xyo-network/archivist-model'
3
+ import type { ArchivistInstance } from '@xyo-network/archivist-model'
4
4
  import { ArchivistWrapper } from '@xyo-network/archivist-wrapper'
5
- import { BoundWitness, isBoundWitnessWithMeta } from '@xyo-network/boundwitness-model'
5
+ import type { BoundWitness } from '@xyo-network/boundwitness-model'
6
+ import { isBoundWitnessWithMeta } from '@xyo-network/boundwitness-model'
6
7
  import { AbstractDiviner } from '@xyo-network/diviner-abstract'
7
- import { BoundWitnessDivinerQueryPayload, BoundWitnessDivinerQuerySchema } from '@xyo-network/diviner-boundwitness-model'
8
+ import type { BoundWitnessDivinerQueryPayload } from '@xyo-network/diviner-boundwitness-model'
9
+ import { BoundWitnessDivinerQuerySchema } from '@xyo-network/diviner-boundwitness-model'
8
10
  import { DivinerWrapper } from '@xyo-network/diviner-wrapper'
9
- import { ImageThumbnail, ImageThumbnailSchema, isImageThumbnail } from '@xyo-network/image-thumbnail-payload-plugin'
10
- import { isModuleState, ModuleState, ModuleStateSchema } from '@xyo-network/module-model'
11
+ import type { ImageThumbnail } from '@xyo-network/image-thumbnail-payload-plugin'
12
+ import { ImageThumbnailSchema, isImageThumbnail } from '@xyo-network/image-thumbnail-payload-plugin'
13
+ import type { ModuleState } from '@xyo-network/module-model'
14
+ import { isModuleState, ModuleStateSchema } from '@xyo-network/module-model'
11
15
  import { PayloadBuilder } from '@xyo-network/payload-builder'
12
- import { Payload, Schema, WithMeta, WithSources } from '@xyo-network/payload-model'
13
- import { isTimestamp, TimeStamp, TimestampSchema } from '@xyo-network/witness-timestamp'
16
+ import type {
17
+ Payload, Schema, WithMeta, WithSources,
18
+ } from '@xyo-network/payload-model'
19
+ import type { TimeStamp } from '@xyo-network/witness-timestamp'
20
+ import { isTimestamp, TimestampSchema } from '@xyo-network/witness-timestamp'
14
21
 
15
- import { ImageThumbnailDivinerLabels, ImageThumbnailDivinerStageLabels } from '../ImageThumbnailDivinerLabels.ts'
16
- import { ImageThumbnailDivinerState } from '../ImageThumbnailDivinerState.ts'
22
+ import type { ImageThumbnailDivinerStageLabels } from '../ImageThumbnailDivinerLabels.ts'
23
+ import { ImageThumbnailDivinerLabels } from '../ImageThumbnailDivinerLabels.ts'
24
+ import type { ImageThumbnailDivinerState } from '../ImageThumbnailDivinerState.ts'
17
25
  import { ImageThumbnailStateToIndexCandidateDivinerConfigSchema } from './Config.ts'
18
- import { ImageThumbnailStateToIndexCandidateDivinerParams } from './Params.ts'
26
+ import type { ImageThumbnailStateToIndexCandidateDivinerParams } from './Params.ts'
19
27
 
20
28
  /**
21
29
  * All Payload types involved in index candidates for indexing
@@ -94,7 +102,9 @@ export class ImageThumbnailStateToIndexCandidateDiviner<
94
102
  // Get next batch of results starting from the offset
95
103
  const boundWitnessDiviner = await this.getBoundWitnessDivinerForStore()
96
104
  const query = await new PayloadBuilder<BoundWitnessDivinerQueryPayload>({ schema: BoundWitnessDivinerQuerySchema })
97
- .fields({ limit: this.payloadDivinerLimit, offset, order, payload_schemas })
105
+ .fields({
106
+ limit: this.payloadDivinerLimit, offset, order, payload_schemas,
107
+ })
98
108
  .build()
99
109
  const batch = (await boundWitnessDiviner.divine([query])) as WithSources<WithMeta<BoundWitness>>[]
100
110
  if (batch.length === 0) return [lastState]
@@ -1,6 +1,6 @@
1
- import { DivinerParams } from '@xyo-network/diviner-model'
2
- import { AnyConfigSchema } from '@xyo-network/module-model'
1
+ import type { DivinerParams } from '@xyo-network/diviner-model'
2
+ import type { AnyConfigSchema } from '@xyo-network/module-model'
3
3
 
4
- import { ImageThumbnailStateToIndexCandidateDivinerConfig } from './Config.ts'
4
+ import type { ImageThumbnailStateToIndexCandidateDivinerConfig } from './Config.ts'
5
5
 
6
6
  export type ImageThumbnailStateToIndexCandidateDivinerParams = DivinerParams<AnyConfigSchema<ImageThumbnailStateToIndexCandidateDivinerConfig>>
@@ -1,4 +1,5 @@
1
1
  import { ImageThumbnailDivinerSchema } from '@xyo-network/image-thumbnail-payload-plugin'
2
2
 
3
3
  export type ImageThumbnailStateToIndexCandidateDivinerSchema = `${ImageThumbnailDivinerSchema}.stage.stateToIndexCandidateDiviner`
4
- export const ImageThumbnailStateToIndexCandidateDivinerSchema: ImageThumbnailStateToIndexCandidateDivinerSchema = `${ImageThumbnailDivinerSchema}.stage.stateToIndexCandidateDiviner`
4
+ export const ImageThumbnailStateToIndexCandidateDivinerSchema: ImageThumbnailStateToIndexCandidateDivinerSchema
5
+ = `${ImageThumbnailDivinerSchema}.stage.stateToIndexCandidateDiviner`
package/xy.config.ts CHANGED
@@ -1,11 +1,9 @@
1
- import { XyTsupConfig } from '@xylabs/ts-scripts-yarn3'
1
+ import type { XyTsupConfig } from '@xylabs/ts-scripts-yarn3'
2
2
  const config: XyTsupConfig = {
3
3
  compile: {
4
4
  browser: {},
5
5
  node: {},
6
- neutral: {
7
- src: true,
8
- },
6
+ neutral: { src: true },
9
7
  },
10
8
  }
11
9