@xyo-network/diviner-image-thumbnail 3.4.2 → 3.4.3

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 (42) 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 +19 -0
  4. package/dist/neutral/Diviner/ImageThumbnailDivinerLabels.d.ts.map +1 -0
  5. package/dist/neutral/Diviner/ImageThumbnailDivinerState.d.ts +6 -0
  6. package/dist/neutral/Diviner/ImageThumbnailDivinerState.d.ts.map +1 -0
  7. package/dist/neutral/Diviner/ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner.d.ts +14 -0
  8. package/dist/neutral/Diviner/ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner.d.ts.map +1 -0
  9. package/dist/neutral/Diviner/ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner.d.ts +14 -0
  10. package/dist/neutral/Diviner/ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner.d.ts.map +1 -0
  11. package/dist/neutral/Diviner/ImageThumbnailQueryToImageThumbnailIndexQueryDiviner.d.ts +14 -0
  12. package/dist/neutral/Diviner/ImageThumbnailQueryToImageThumbnailIndexQueryDiviner.d.ts.map +1 -0
  13. package/dist/neutral/Diviner/ImageThumbnailResultQuery.d.ts +15 -0
  14. package/dist/neutral/Diviner/ImageThumbnailResultQuery.d.ts.map +1 -0
  15. package/dist/neutral/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Config.d.ts +14 -0
  16. package/dist/neutral/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Config.d.ts.map +1 -0
  17. package/dist/neutral/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Diviner.d.ts +71 -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 -120
  28. package/dist/neutral/index.d.ts.map +1 -0
  29. package/dist/neutral/index.mjs +20 -5
  30. package/dist/neutral/index.mjs.map +1 -1
  31. package/package.json +28 -28
  32. package/src/Diviner/Diviner.ts +1 -1
  33. package/src/Diviner/ImageThumbnailDivinerLabels.ts +2 -2
  34. package/src/Diviner/ImageThumbnailDivinerState.ts +2 -2
  35. package/src/Diviner/ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner.ts +8 -11
  36. package/src/Diviner/ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner.ts +3 -6
  37. package/src/Diviner/ImageThumbnailQueryToImageThumbnailIndexQueryDiviner.ts +3 -4
  38. package/src/Diviner/ImageThumbnailResultQuery.ts +2 -3
  39. package/src/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Config.ts +2 -2
  40. package/src/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Diviner.ts +17 -14
  41. package/src/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Params.ts +3 -3
  42. package/xy.config.ts +1 -1
@@ -0,0 +1,7 @@
1
+ import { IndexingDiviner } from '@xyo-network/diviner-indexing';
2
+ import { AttachableDivinerInstance } from '@xyo-network/diviner-model';
3
+ import { ImageThumbnailDivinerLabels } from './ImageThumbnailDivinerLabels.ts';
4
+ export declare class ImageThumbnailDiviner extends IndexingDiviner implements AttachableDivinerInstance {
5
+ static readonly 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,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAA;AAEtE,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAA;AAE9E,qBAAa,qBAAsB,SAAQ,eAAgB,YAAW,yBAAyB;IAC7F,gBAAyB,MAAM,EAAE,2BAA2B,CAAsD;CACnH"}
@@ -0,0 +1,19 @@
1
+ import { DivinerStageSchema, IndexingDivinerStage } from '@xyo-network/diviner-indexing';
2
+ import { Labels } from '@xyo-network/module-model';
3
+ /**
4
+ * Labels for Image Thumbnail Diviner components
5
+ */
6
+ export interface ImageThumbnailDivinerLabels extends Labels {
7
+ 'network.xyo.image.thumbnail': 'diviner';
8
+ }
9
+ /**
10
+ * Labels for Image Thumbnail Diviner components
11
+ */
12
+ export declare const ImageThumbnailDivinerLabels: ImageThumbnailDivinerLabels;
13
+ /**
14
+ * Labels for Image Thumbnail Diviner Stage Diviners
15
+ */
16
+ export type ImageThumbnailDivinerStageLabels = ImageThumbnailDivinerLabels & {
17
+ [key in DivinerStageSchema]: IndexingDivinerStage;
18
+ };
19
+ //# 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,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AACxF,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAElD;;GAEG;AACH,MAAM,WAAW,2BAA4B,SAAQ,MAAM;IACzD,6BAA6B,EAAE,SAAS,CAAA;CACzC;AAED;;GAEG;AACH,eAAO,MAAM,2BAA2B,EAAE,2BAA0E,CAAA;AAEpH;;GAEG;AACH,MAAM,MAAM,gCAAgC,GAAG,2BAA2B,GAAG;KAI1E,GAAG,IAAI,kBAAkB,GAAG,oBAAoB;CAClD,CAAA"}
@@ -0,0 +1,6 @@
1
+ import { Hex } from '@xylabs/hex';
2
+ import { StateDictionary } from '@xyo-network/module-model';
3
+ export type ImageThumbnailDivinerState = StateDictionary & {
4
+ cursor: Hex;
5
+ };
6
+ //# 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,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAE3D,MAAM,MAAM,0BAA0B,GAAG,eAAe,GAAG;IACzD,MAAM,EAAE,GAAG,CAAA;CACZ,CAAA"}
@@ -0,0 +1,14 @@
1
+ import { AbstractDiviner } from '@xyo-network/diviner-abstract';
2
+ import { ImageThumbnailResultIndex } from '@xyo-network/image-thumbnail-payload-plugin';
3
+ import { Payload, Schema, WithSources } from '@xyo-network/payload-model';
4
+ import { ImageThumbnailDivinerStageLabels } from './ImageThumbnailDivinerLabels.ts';
5
+ /**
6
+ * Transforms candidates for image thumbnail indexing into their indexed representation
7
+ */
8
+ export declare class ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner extends AbstractDiviner {
9
+ static readonly configSchemas: Schema[];
10
+ static readonly defaultConfigSchema: Schema;
11
+ static readonly labels: ImageThumbnailDivinerStageLabels;
12
+ protected divineHandler(payloads?: Payload[]): Promise<WithSources<ImageThumbnailResultIndex>[]>;
13
+ }
14
+ //# sourceMappingURL=ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner.d.ts","sourceRoot":"","sources":["../../../src/Diviner/ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAE/D,OAAO,EAEL,yBAAyB,EAK1B,MAAM,6CAA6C,CAAA;AAEpD,OAAO,EACL,OAAO,EAAE,MAAM,EAAE,WAAW,EAC7B,MAAM,4BAA4B,CAAA;AAMnC,OAAO,EAA+B,gCAAgC,EAAE,MAAM,kCAAkC,CAAA;AAEhH;;GAEG;AACH,qBAAa,wDAAyD,SAAQ,eAAe;IAC3F,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAgD;IAChG,gBAAyB,mBAAmB,EAAE,MAAM,CAAsB;IAC1E,gBAAyB,MAAM,EAAE,gCAAgC,CAIhE;cAEwB,aAAa,CAAC,QAAQ,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,WAAW,CAAC,yBAAyB,CAAC,EAAE,CAAC;CA4CpH"}
@@ -0,0 +1,14 @@
1
+ import { AbstractDiviner } from '@xyo-network/diviner-abstract';
2
+ import { ImageThumbnailResult } from '@xyo-network/image-thumbnail-payload-plugin';
3
+ import { Payload, Schema } from '@xyo-network/payload-model';
4
+ import { ImageThumbnailDivinerStageLabels } from './ImageThumbnailDivinerLabels.ts';
5
+ /**
6
+ * Transforms an ImageThumbnailIndex response into an ImageThumbnailResponse response
7
+ */
8
+ export declare class ImageThumbnailIndexQueryResponseToImageThumbnailQueryResponseDiviner extends AbstractDiviner {
9
+ static readonly configSchemas: Schema[];
10
+ static readonly defaultConfigSchema: Schema;
11
+ static readonly labels: ImageThumbnailDivinerStageLabels;
12
+ protected divineHandler(payloads?: Payload[]): Promise<ImageThumbnailResult[]>;
13
+ }
14
+ //# 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,EACL,oBAAoB,EAKrB,MAAM,6CAA6C,CAAA;AAEpD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAG5D,OAAO,EAA+B,gCAAgC,EAAE,MAAM,kCAAkC,CAAA;AAEhH;;GAEG;AACH,qBAAa,oEAAqE,SAAQ,eAAe;IACvG,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAgD;IAChG,gBAAyB,mBAAmB,EAAE,MAAM,CAAsB;IAC1E,gBAAyB,MAAM,EAAE,gCAAgC,CAIhE;cAEwB,aAAa,CAAC,QAAQ,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;CAmClG"}
@@ -0,0 +1,14 @@
1
+ import { AbstractDiviner } from '@xyo-network/diviner-abstract';
2
+ import { Payload, Schema } from '@xyo-network/payload-model';
3
+ import { ImageThumbnailDivinerStageLabels } from './ImageThumbnailDivinerLabels.ts';
4
+ import { ImageThumbnailResultQuery } from './ImageThumbnailResultQuery.ts';
5
+ /**
6
+ * A diviner that converts ImageThumbnailDivinerQuery to ImageThumbnailResultQuery
7
+ */
8
+ export declare class ImageThumbnailQueryToImageThumbnailIndexQueryDiviner extends AbstractDiviner {
9
+ static readonly configSchemas: Schema[];
10
+ static readonly defaultConfigSchema: Schema;
11
+ static readonly labels: ImageThumbnailDivinerStageLabels;
12
+ protected divineHandler(payloads?: Payload[]): Promise<Omit<Omit<ImageThumbnailResultQuery, 'timestamp' | 'success'> & Partial<Pick<ImageThumbnailResultQuery, 'success'>>, 'timestamp'>[]>;
13
+ }
14
+ //# 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,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAG5D,OAAO,EAA+B,gCAAgC,EAAE,MAAM,kCAAkC,CAAA;AAChH,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAA;AAE1E;;GAEG;AACH,qBAAa,oDAAqD,SAAQ,eAAe;IACvF,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAgD;IAChG,gBAAyB,mBAAmB,EAAE,MAAM,CAAsB;IAC1E,gBAAyB,MAAM,EAAE,gCAAgC,CAIhE;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;CA8BhJ"}
@@ -0,0 +1,15 @@
1
+ import { PayloadDivinerQueryPayload } from '@xyo-network/diviner-payload-model';
2
+ import { ImageThumbnailResultIndex } from '@xyo-network/image-thumbnail-payload-plugin';
3
+ /**
4
+ * The fields that will need to be indexed on in the underlying store
5
+ */
6
+ export type QueryableImageThumbnailResultProperties = Extract<keyof ImageThumbnailResultIndex, 'status' | 'success' | 'timestamp' | 'key'>;
7
+ /**
8
+ * The query that will be used to retrieve the results from the underlying store
9
+ */
10
+ export type ImageThumbnailResultQuery = PayloadDivinerQueryPayload & Pick<ImageThumbnailResultIndex, QueryableImageThumbnailResultProperties>;
11
+ /**
12
+ * A type guard for ImageThumbnailResultQuery
13
+ */
14
+ export declare const isImageThumbnailResultQuery: (x?: unknown | null) => x is ImageThumbnailResultQuery;
15
+ //# 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,EAAE,0BAA0B,EAA6B,MAAM,oCAAoC,CAAA;AAC1G,OAAO,EAAE,yBAAyB,EAAE,MAAM,6CAA6C,CAAA;AAGvF;;GAEG;AACH,MAAM,MAAM,uCAAuC,GAAG,OAAO,CAAC,MAAM,yBAAyB,EAAE,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,KAAK,CAAC,CAAA;AAE1I;;GAEG;AACH,MAAM,MAAM,yBAAyB,GAAG,0BAA0B,GAAG,IAAI,CAAC,yBAAyB,EAAE,uCAAuC,CAAC,CAAA;AAE7I;;GAEG;AAEH,eAAO,MAAM,2BAA2B,wDAA8E,CAAA"}
@@ -0,0 +1,14 @@
1
+ import { DivinerConfig } from '@xyo-network/diviner-model';
2
+ import { 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
+ /**
9
+ * Where the diviner should look for stored thumbnails
10
+ */
11
+ payloadStore?: SearchableStorage;
12
+ schema: ImageThumbnailStateToIndexCandidateDivinerConfigSchema;
13
+ }>;
14
+ //# 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,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAA;AAE/E,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;IAC5B;;OAEG;IACH,YAAY,CAAC,EAAE,iBAAiB,CAAA;IAChC,MAAM,EAAE,sDAAsD,CAAA;CAC/D,CAAC,CAAA"}
@@ -0,0 +1,71 @@
1
+ import { ArchivistInstance } from '@xyo-network/archivist-model';
2
+ import { ArchivistWrapper } from '@xyo-network/archivist-wrapper';
3
+ import { BoundWitness } from '@xyo-network/boundwitness-model';
4
+ import { AbstractDiviner } from '@xyo-network/diviner-abstract';
5
+ import { DivinerWrapper } from '@xyo-network/diviner-wrapper';
6
+ import { ImageThumbnail } from '@xyo-network/image-thumbnail-payload-plugin';
7
+ import { ModuleState } from '@xyo-network/module-model';
8
+ import { Payload, Schema } from '@xyo-network/payload-model';
9
+ import { TimeStamp } from '@xyo-network/witness-timestamp';
10
+ import { ImageThumbnailDivinerStageLabels } from '../ImageThumbnailDivinerLabels.ts';
11
+ import { ImageThumbnailDivinerState } from '../ImageThumbnailDivinerState.ts';
12
+ import { ImageThumbnailStateToIndexCandidateDivinerParams } from './Params.ts';
13
+ /**
14
+ * All Payload types involved in index candidates for indexing
15
+ */
16
+ export type IndexCandidate = BoundWitness | ImageThumbnail | TimeStamp;
17
+ /**
18
+ * The response from the ImageThumbnailStateToIndexCandidateDiviner
19
+ */
20
+ export type ImageThumbnailStateToIndexCandidateDivinerResponse = [
21
+ /**
22
+ * The next state of the diviner
23
+ */
24
+ nextState: ModuleState<ImageThumbnailDivinerState>,
25
+ /**
26
+ * The index candidates
27
+ */
28
+ ...IndexCandidate[]
29
+ ];
30
+ /**
31
+ * Transforms candidates for image thumbnail indexing into their indexed representation
32
+ */
33
+ export declare class ImageThumbnailStateToIndexCandidateDiviner<TParams extends ImageThumbnailStateToIndexCandidateDivinerParams = ImageThumbnailStateToIndexCandidateDivinerParams> extends AbstractDiviner<TParams> {
34
+ static readonly configSchemas: Schema[];
35
+ static readonly defaultConfigSchema: Schema;
36
+ static readonly labels: ImageThumbnailDivinerStageLabels;
37
+ get payloadDivinerLimit(): number;
38
+ protected static getPayloadsInBoundWitness(bw: BoundWitness, archivist: ArchivistInstance): Promise<IndexCandidate[] | undefined>;
39
+ protected divineHandler(payloads?: Payload[]): Promise<ImageThumbnailStateToIndexCandidateDivinerResponse>;
40
+ /**
41
+ * Retrieves the archivist for the payloadStore
42
+ * @returns The archivist for the payloadStore
43
+ */
44
+ protected getArchivistForStore(): Promise<ArchivistWrapper<import("@xyo-network/archivist-model").ArchivistModuleInstance<import("@xylabs/object").BaseParamsFields & {
45
+ account?: import(".store/@xyo-network-account-model-virtual-26592e0d6e/package").AccountInstance | "random";
46
+ addToResolvers?: boolean;
47
+ additionalSigners?: import(".store/@xyo-network-account-model-virtual-26592e0d6e/package").AccountInstance[];
48
+ allowNameResolution?: boolean;
49
+ config: import("@xyo-network/module-model").AnyConfigSchema<import("@xyo-network/archivist-model").ArchivistConfig>;
50
+ ephemeralQueryAccountEnabled?: boolean;
51
+ moduleIdentifierTransformers?: import("@xyo-network/module-model").ModuleIdentifierTransformer[];
52
+ privateChildren?: import("@xyo-network/module-model").ModuleInstance[];
53
+ publicChildren?: import("@xyo-network/module-model").ModuleInstance[];
54
+ }, import("@xyo-network/archivist-model").ArchivistModuleEventData>>>;
55
+ /**
56
+ * Retrieves the BoundWitness Diviner for the payloadStore
57
+ * @returns The BoundWitness Diviner for the payloadStore
58
+ */
59
+ protected getBoundWitnessDivinerForStore(): Promise<DivinerWrapper<import("@xyo-network/diviner-model").DivinerModule<import("@xylabs/object").BaseParamsFields & {
60
+ account?: import(".store/@xyo-network-account-model-virtual-26592e0d6e/package").AccountInstance | "random";
61
+ addToResolvers?: boolean;
62
+ additionalSigners?: import(".store/@xyo-network-account-model-virtual-26592e0d6e/package").AccountInstance[];
63
+ allowNameResolution?: boolean;
64
+ config: import("@xyo-network/module-model").AnyConfigSchema<import("@xyo-network/diviner-model").DivinerConfig>;
65
+ ephemeralQueryAccountEnabled?: boolean;
66
+ moduleIdentifierTransformers?: import("@xyo-network/module-model").ModuleIdentifierTransformer[];
67
+ privateChildren?: import("@xyo-network/module-model").ModuleInstance[];
68
+ publicChildren?: import("@xyo-network/module-model").ModuleInstance[];
69
+ }, import("@xyo-network/diviner-model").DivinerModuleEventData>, Payload, Payload>>;
70
+ }
71
+ //# sourceMappingURL=Diviner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../../../src/Diviner/ImageThumbnailStateToIndexCandidateDiviner/Diviner.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAwB,MAAM,8BAA8B,CAAA;AACtF,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,EACW,YAAY,EAC7B,MAAM,iCAAiC,CAAA;AAExC,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,EACL,cAAc,EACf,MAAM,6CAA6C,CAAA;AACpD,OAAO,EACU,WAAW,EAC3B,MAAM,2BAA2B,CAAA;AAClC,OAAO,EACL,OAAO,EAAE,MAAM,EAChB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EACQ,SAAS,EACvB,MAAM,gCAAgC,CAAA;AAEvC,OAAO,EAA+B,gCAAgC,EAAE,MAAM,mCAAmC,CAAA;AACjH,OAAO,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAA;AAE7E,OAAO,EAAE,gDAAgD,EAAE,MAAM,aAAa,CAAA;AAE9E;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG,cAAc,GAAG,SAAS,CAAA;AAEtE;;GAEG;AACH,MAAM,MAAM,kDAAkD,GAAG;IAC/D;;OAEG;IACH,SAAS,EAAE,WAAW,CAAC,0BAA0B,CAAC;IAClD;;OAEG;IACH,GAAG,cAAc,EAAE;CACpB,CAAA;AA0BD;;GAEG;AACH,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,gBAAyB,MAAM,EAAE,gCAAgC,CAIhE;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;IAoC7H;;;OAGG;cACa,oBAAoB;;;;;;;;;;;IAMpC;;;OAGG;cACa,8BAA8B;;;;;;;;;;;CAQ/C"}
@@ -0,0 +1,5 @@
1
+ import { DivinerParams } from '@xyo-network/diviner-model';
2
+ import { AnyConfigSchema } from '@xyo-network/module-model';
3
+ import { 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,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAE3D,OAAO,EAAE,gDAAgD,EAAE,MAAM,aAAa,CAAA;AAE9E,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,120 +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 { Hex } from '@xylabs/hex';
7
- import { AbstractDiviner } from '@xyo-network/diviner-abstract';
8
- import { ImageThumbnailResultIndex, ImageThumbnailResult, ImageThumbnailDivinerSchema, SearchableStorage, ImageThumbnail } from '@xyo-network/image-thumbnail-payload-plugin';
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_8ffda77307_package from '.store/@xyo-network-account-model-virtual-8ffda77307/package';
14
- import * as _xylabs_object from '@xylabs/object';
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 readonly labels: ImageThumbnailDivinerLabels;
30
- }
31
-
32
- type ImageThumbnailDivinerState = StateDictionary & {
33
- cursor: Hex;
34
- };
35
-
36
- declare class ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner extends AbstractDiviner {
37
- static readonly configSchemas: Schema[];
38
- static readonly defaultConfigSchema: Schema;
39
- static readonly 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 readonly 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 readonly 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 readonly 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.ArchivistModuleInstance<_xylabs_object.BaseParamsFields & {
87
- account?: _store__xyo_network_account_model_virtual_8ffda77307_package.AccountInstance | "random";
88
- addToResolvers?: boolean;
89
- additionalSigners?: _store__xyo_network_account_model_virtual_8ffda77307_package.AccountInstance[];
90
- allowNameResolution?: boolean;
91
- config: _xyo_network_module_model.AnyConfigSchema<_xyo_network_archivist_model.ArchivistConfig<void, void>>;
92
- ephemeralQueryAccountEnabled?: boolean;
93
- moduleIdentifierTransformers?: _xyo_network_module_model.ModuleIdentifierTransformer[];
94
- privateChildren?: _xyo_network_module_model.ModuleInstance[];
95
- publicChildren?: _xyo_network_module_model.ModuleInstance[];
96
- }, _xyo_network_archivist_model.ArchivistModuleEventData>>>;
97
- protected getBoundWitnessDivinerForStore(): Promise<DivinerWrapper<_xyo_network_diviner_model.DivinerModule<_xylabs_object.BaseParamsFields & {
98
- account?: _store__xyo_network_account_model_virtual_8ffda77307_package.AccountInstance | "random";
99
- addToResolvers?: boolean;
100
- additionalSigners?: _store__xyo_network_account_model_virtual_8ffda77307_package.AccountInstance[];
101
- allowNameResolution?: boolean;
102
- config: _xyo_network_module_model.AnyConfigSchema<_xyo_network_diviner_model.DivinerConfig<void, void>>;
103
- ephemeralQueryAccountEnabled?: boolean;
104
- moduleIdentifierTransformers?: _xyo_network_module_model.ModuleIdentifierTransformer[];
105
- privateChildren?: _xyo_network_module_model.ModuleInstance[];
106
- publicChildren?: _xyo_network_module_model.ModuleInstance[];
107
- }, _xyo_network_diviner_model.DivinerModuleEventData<_xyo_network_module_model.ModuleInstance<_xylabs_object.BaseParamsFields & {
108
- account?: _store__xyo_network_account_model_virtual_8ffda77307_package.AccountInstance | "random";
109
- addToResolvers?: boolean;
110
- additionalSigners?: _store__xyo_network_account_model_virtual_8ffda77307_package.AccountInstance[];
111
- allowNameResolution?: boolean;
112
- config: _xyo_network_module_model.AnyConfigSchema<_xyo_network_module_model.ModuleConfig<void, void>>;
113
- ephemeralQueryAccountEnabled?: boolean;
114
- moduleIdentifierTransformers?: _xyo_network_module_model.ModuleIdentifierTransformer[];
115
- privateChildren?: _xyo_network_module_model.ModuleInstance[];
116
- publicChildren?: _xyo_network_module_model.ModuleInstance[];
117
- }, _xyo_network_module_model.ModuleEventData<object>>, Payload, Payload>>, Payload, Payload>>;
118
- }
119
-
120
- 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"}
@@ -20,7 +20,10 @@ import {
20
20
  } from "@xyo-network/image-thumbnail-payload-plugin";
21
21
  import { PayloadBuilder } from "@xyo-network/payload-builder";
22
22
  import { UrlSchema } from "@xyo-network/url-payload-plugin";
23
- import { isTimestamp, TimestampSchema } from "@xyo-network/witness-timestamp";
23
+ import {
24
+ isTimestamp,
25
+ TimestampSchema
26
+ } from "@xyo-network/witness-timestamp";
24
27
  var ImageThumbnailIndexCandidateToImageThumbnailIndexDiviner = class extends AbstractDiviner {
25
28
  static configSchemas = [...super.configSchemas, DivinerConfigSchema];
26
29
  static defaultConfigSchema = DivinerConfigSchema;
@@ -190,16 +193,28 @@ import { assertEx } from "@xylabs/assert";
190
193
  import { exists as exists2 } from "@xylabs/exists";
191
194
  import { AsObjectFactory } from "@xylabs/object";
192
195
  import { ArchivistWrapper } from "@xyo-network/archivist-wrapper";
193
- import { asBoundWitness, isBoundWitness as isBoundWitness2 } from "@xyo-network/boundwitness-model";
196
+ import {
197
+ asBoundWitness,
198
+ isBoundWitness as isBoundWitness2
199
+ } from "@xyo-network/boundwitness-model";
194
200
  import { payloadSchemasContainsAll } from "@xyo-network/boundwitness-validator";
195
201
  import { AbstractDiviner as AbstractDiviner4 } from "@xyo-network/diviner-abstract";
196
202
  import { DivinerWrapper } from "@xyo-network/diviner-wrapper";
197
- import { ImageThumbnailSchema as ImageThumbnailSchema2, isImageThumbnail as isImageThumbnail2 } from "@xyo-network/image-thumbnail-payload-plugin";
198
- import { isModuleState, ModuleStateSchema } from "@xyo-network/module-model";
203
+ import {
204
+ ImageThumbnailSchema as ImageThumbnailSchema2,
205
+ isImageThumbnail as isImageThumbnail2
206
+ } from "@xyo-network/image-thumbnail-payload-plugin";
207
+ import {
208
+ isModuleState,
209
+ ModuleStateSchema
210
+ } from "@xyo-network/module-model";
199
211
  import {
200
212
  SequenceConstants
201
213
  } from "@xyo-network/payload-model";
202
- import { isTimestamp as isTimestamp2, TimestampSchema as TimestampSchema2 } from "@xyo-network/witness-timestamp";
214
+ import {
215
+ isTimestamp as isTimestamp2,
216
+ TimestampSchema as TimestampSchema2
217
+ } from "@xyo-network/witness-timestamp";
203
218
  var payload_schemas = [ImageThumbnailSchema2, TimestampSchema2];
204
219
  var indexCandidateIdentityFunctions = [isImageThumbnail2, isTimestamp2];
205
220
  var isIndexCandidate = (x) => {
@@ -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 type { AttachableDivinerInstance } from '@xyo-network/diviner-model'\n\nimport { ImageThumbnailDivinerLabels } from './ImageThumbnailDivinerLabels.ts'\n\nexport class ImageThumbnailDiviner extends IndexingDiviner implements AttachableDivinerInstance {\n static override readonly 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, 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 readonly 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 ImageThumbnail | undefined\n const timestampPayload = [payloadDictionary[timestampHash]].find(isTimestamp) as 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, success, timestamp,\n }\n if (status) fields.status = status\n const result = new PayloadBuilder<WithSources<ImageThumbnailResultIndex>>({ schema: ImageThumbnailResultIndexSchema })\n .meta({ $sources })\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 isImageThumbnailResultIndexWithSources,\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 readonly 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(isImageThumbnailResultIndexWithSources)\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 = 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 imageThumbnailResultIndexes.map((imageThumbnailResultIndex) => {\n const {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n key, schema, $sources, ...commonFields\n } = imageThumbnailResultIndex\n const url = keyToUrlDictionary?.[key]\n if (url) {\n const fields: ImageThumbnailResultFields = { ...commonFields, url }\n return new PayloadBuilder<ImageThumbnailResult>({ schema: ImageThumbnailResultSchema }).fields(fields).meta({ $sources }).build()\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 readonly 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, order: payloadOrder, status: payloadStatus, success: payloadSuccess, url,\n } = query\n const limit = payloadLimit ?? 1\n const order = payloadOrder ?? 'desc'\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 order,\n }\n if (payloadSuccess !== undefined) fields.success = payloadSuccess\n if (payloadStatus !== undefined) fields.status = payloadStatus\n return 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 { filterAs } from '@xylabs/array'\nimport { assertEx } from '@xylabs/assert'\nimport { exists } from '@xylabs/exists'\nimport { AsObjectFactory } from '@xylabs/object'\nimport type { ArchivistInstance, ArchivistNextOptions } from '@xyo-network/archivist-model'\nimport { ArchivistWrapper } from '@xyo-network/archivist-wrapper'\nimport type { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { asBoundWitness, isBoundWitness } from '@xyo-network/boundwitness-model'\nimport { payloadSchemasContainsAll } from '@xyo-network/boundwitness-validator'\nimport { AbstractDiviner } from '@xyo-network/diviner-abstract'\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 {\n type Payload, type Schema, SequenceConstants,\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\nconst isIndexCandidate = (x?: unknown | null): x is IndexCandidate => {\n return indexCandidateIdentityFunctions.map(is => is(x)).some(Boolean)\n}\nconst asIndexCandidate = AsObjectFactory.create(isIndexCandidate)\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 readonly 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[] = filterAs(filteredResults, asIndexCandidate)\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 ?? { schema: ModuleStateSchema, state: { cursor: SequenceConstants.minLocalSequence } }\n\n // Get the last cursor\n const cursor = lastState?.state?.cursor\n // Get the archivist for the store\n const sourceArchivist = await this.getArchivistForStore()\n if (!sourceArchivist) return [lastState]\n\n // Get the next batch of results\n const nextOffset: ArchivistNextOptions = { limit: this.payloadDivinerLimit, order }\n // Only use the cursor if it's a valid offset\n if (cursor !== SequenceConstants.minLocalSequence) nextOffset.cursor = cursor\n // Get next batch of results starting from the offset\n const next = await sourceArchivist.next(nextOffset)\n if (next.length === 0) return [lastState]\n\n const batch = filterAs(next, asBoundWitness)\n .filter(exists)\n .filter(bw => payloadSchemasContainsAll(bw, payload_schemas))\n // Get source data\n const indexCandidates: IndexCandidate[] = (await Promise.all(\n batch\n .filter(isBoundWitness)\n .map(bw => ImageThumbnailStateToIndexCandidateDiviner.getPayloadsInBoundWitness(bw, sourceArchivist)),\n ))\n .filter(exists)\n .flat()\n const nextCursor = assertEx(next.at(-1)?._sequence, () => `${moduleName}: Expected next to have a sequence`)\n const nextState: ModuleState<ImageThumbnailDivinerState> = { schema: ModuleStateSchema, state: { ...lastState.state, cursor: nextCursor } }\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","isBoundWitness","AbstractDiviner","ImageThumbnailSchema","isImageThumbnail","isTimestamp","TimestampSchema","ImageThumbnailSchema","TimestampSchema","isImageThumbnail","isTimestamp","AbstractDiviner","exists","isBoundWitness"]}
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 readonly 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 = { '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 { 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 {\n Payload, Schema, WithSources,\n} from '@xyo-network/payload-model'\nimport { UrlSchema } from '@xyo-network/url-payload-plugin'\nimport {\n isTimestamp, TimeStamp, TimestampSchema,\n} 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 readonly 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 ImageThumbnail | undefined\n const timestampPayload = [payloadDictionary[timestampHash]].find(isTimestamp) as 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, success, timestamp,\n }\n if (status) fields.status = status\n const result = new PayloadBuilder<WithSources<ImageThumbnailResultIndex>>({ schema: ImageThumbnailResultIndexSchema })\n .meta({ $sources })\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 isImageThumbnailResultIndexWithSources,\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 readonly 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(isImageThumbnailResultIndexWithSources)\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 = 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 imageThumbnailResultIndexes.map((imageThumbnailResultIndex) => {\n const {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n key, schema, $sources, ...commonFields\n } = imageThumbnailResultIndex\n const url = keyToUrlDictionary?.[key]\n if (url) {\n const fields: ImageThumbnailResultFields = { ...commonFields, url }\n return new PayloadBuilder<ImageThumbnailResult>({ schema: ImageThumbnailResultSchema }).fields(fields).meta({ $sources }).build()\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 readonly 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, order: payloadOrder, status: payloadStatus, success: payloadSuccess, url,\n } = query\n const limit = payloadLimit ?? 1\n const order = payloadOrder ?? 'desc'\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 order,\n }\n if (payloadSuccess !== undefined) fields.success = payloadSuccess\n if (payloadStatus !== undefined) fields.status = payloadStatus\n return 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\n= `${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\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 { filterAs } from '@xylabs/array'\nimport { assertEx } from '@xylabs/assert'\nimport { exists } from '@xylabs/exists'\nimport { AsObjectFactory } from '@xylabs/object'\nimport { ArchivistInstance, ArchivistNextOptions } from '@xyo-network/archivist-model'\nimport { ArchivistWrapper } from '@xyo-network/archivist-wrapper'\nimport {\n asBoundWitness, BoundWitness, isBoundWitness,\n} from '@xyo-network/boundwitness-model'\nimport { payloadSchemasContainsAll } from '@xyo-network/boundwitness-validator'\nimport { AbstractDiviner } from '@xyo-network/diviner-abstract'\nimport { DivinerWrapper } from '@xyo-network/diviner-wrapper'\nimport {\n ImageThumbnail, ImageThumbnailSchema, isImageThumbnail,\n} from '@xyo-network/image-thumbnail-payload-plugin'\nimport {\n isModuleState, ModuleState, ModuleStateSchema,\n} from '@xyo-network/module-model'\nimport {\n Payload, Schema, SequenceConstants,\n} from '@xyo-network/payload-model'\nimport {\n isTimestamp, TimeStamp, TimestampSchema,\n} 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\nconst isIndexCandidate = (x?: unknown | null): x is IndexCandidate => {\n return indexCandidateIdentityFunctions.map(is => is(x)).some(Boolean)\n}\nconst asIndexCandidate = AsObjectFactory.create(isIndexCandidate)\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 readonly 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[] = filterAs(filteredResults, asIndexCandidate)\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 ?? { schema: ModuleStateSchema, state: { cursor: SequenceConstants.minLocalSequence } }\n\n // Get the last cursor\n const cursor = lastState?.state?.cursor\n // Get the archivist for the store\n const sourceArchivist = await this.getArchivistForStore()\n if (!sourceArchivist) return [lastState]\n\n // Get the next batch of results\n const nextOffset: ArchivistNextOptions = { limit: this.payloadDivinerLimit, order }\n // Only use the cursor if it's a valid offset\n if (cursor !== SequenceConstants.minLocalSequence) nextOffset.cursor = cursor\n // Get next batch of results starting from the offset\n const next = await sourceArchivist.next(nextOffset)\n if (next.length === 0) return [lastState]\n\n const batch = filterAs(next, asBoundWitness)\n .filter(exists)\n .filter(bw => payloadSchemasContainsAll(bw, payload_schemas))\n // Get source data\n const indexCandidates: IndexCandidate[] = (await Promise.all(\n batch\n .filter(isBoundWitness)\n .map(bw => ImageThumbnailStateToIndexCandidateDiviner.getPayloadsInBoundWitness(bw, sourceArchivist)),\n ))\n .filter(exists)\n .flat()\n const nextCursor = assertEx(next.at(-1)?._sequence, () => `${moduleName}: Expected next to have a sequence`)\n const nextState: ModuleState<ImageThumbnailDivinerState> = { schema: ModuleStateSchema, state: { ...lastState.state, cursor: nextCursor } }\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","isBoundWitness","AbstractDiviner","ImageThumbnailSchema","isImageThumbnail","isTimestamp","TimestampSchema","ImageThumbnailSchema","TimestampSchema","isImageThumbnail","isTimestamp","AbstractDiviner","exists","isBoundWitness"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xyo-network/diviner-image-thumbnail",
3
- "version": "3.4.2",
3
+ "version": "3.4.3",
4
4
  "description": "Typescript/Javascript Plugins for XYO Platform",
5
5
  "homepage": "https://xyo.network",
6
6
  "bugs": {
@@ -34,38 +34,38 @@
34
34
  "@xylabs/exists": "^4.5.1",
35
35
  "@xylabs/hex": "^4.5.1",
36
36
  "@xylabs/object": "^4.5.1",
37
- "@xyo-network/archivist-model": "^3.9.16",
38
- "@xyo-network/archivist-wrapper": "^3.9.16",
39
- "@xyo-network/boundwitness-model": "^3.9.16",
40
- "@xyo-network/boundwitness-validator": "^3.9.16",
41
- "@xyo-network/diviner-abstract": "^3.9.16",
42
- "@xyo-network/diviner-indexing": "^3.9.16",
43
- "@xyo-network/diviner-model": "^3.9.16",
44
- "@xyo-network/diviner-payload-model": "^3.9.16",
45
- "@xyo-network/diviner-wrapper": "^3.9.16",
46
- "@xyo-network/image-thumbnail-payload-plugin": "^3.4.2",
47
- "@xyo-network/module-model": "^3.9.16",
48
- "@xyo-network/payload-builder": "^3.9.16",
49
- "@xyo-network/payload-model": "^3.9.16",
50
- "@xyo-network/url-payload-plugin": "^3.4.2",
51
- "@xyo-network/witness-timestamp": "^3.9.16"
37
+ "@xyo-network/archivist-model": "^3.9.23",
38
+ "@xyo-network/archivist-wrapper": "^3.9.23",
39
+ "@xyo-network/boundwitness-model": "^3.9.23",
40
+ "@xyo-network/boundwitness-validator": "^3.9.23",
41
+ "@xyo-network/diviner-abstract": "^3.9.23",
42
+ "@xyo-network/diviner-indexing": "^3.9.23",
43
+ "@xyo-network/diviner-model": "^3.9.23",
44
+ "@xyo-network/diviner-payload-model": "^3.9.23",
45
+ "@xyo-network/diviner-wrapper": "^3.9.23",
46
+ "@xyo-network/image-thumbnail-payload-plugin": "^3.4.3",
47
+ "@xyo-network/module-model": "^3.9.23",
48
+ "@xyo-network/payload-builder": "^3.9.23",
49
+ "@xyo-network/payload-model": "^3.9.23",
50
+ "@xyo-network/url-payload-plugin": "^3.4.3",
51
+ "@xyo-network/witness-timestamp": "^3.9.23"
52
52
  },
53
53
  "devDependencies": {
54
54
  "@xylabs/delay": "^4.5.1",
55
55
  "@xylabs/hex": "^4.5.1",
56
- "@xylabs/ts-scripts-yarn3": "^5.0.24",
57
- "@xylabs/tsconfig": "^5.0.24",
56
+ "@xylabs/ts-scripts-yarn3": "^5.0.39",
57
+ "@xylabs/tsconfig": "^5.0.39",
58
58
  "@xylabs/vitest-extended": "^4.5.1",
59
- "@xyo-network/account": "^3.9.16",
60
- "@xyo-network/archivist-memory": "^3.9.16",
61
- "@xyo-network/boundwitness-builder": "^3.9.16",
62
- "@xyo-network/diviner-boundwitness-memory": "^3.9.16",
63
- "@xyo-network/diviner-payload-memory": "^3.9.16",
64
- "@xyo-network/manifest": "^3.9.16",
65
- "@xyo-network/module-factory-locator": "^3.9.16",
66
- "@xyo-network/node-memory": "^3.9.16",
67
- "typescript": "^5.7.3",
68
- "vitest": "^3.0.6"
59
+ "@xyo-network/account": "^3.9.23",
60
+ "@xyo-network/archivist-memory": "^3.9.23",
61
+ "@xyo-network/boundwitness-builder": "^3.9.23",
62
+ "@xyo-network/diviner-boundwitness-memory": "^3.9.23",
63
+ "@xyo-network/diviner-payload-memory": "^3.9.23",
64
+ "@xyo-network/manifest": "^3.9.23",
65
+ "@xyo-network/module-factory-locator": "^3.9.23",
66
+ "@xyo-network/node-memory": "^3.9.23",
67
+ "typescript": "^5.8.2",
68
+ "vitest": "^3.0.7"
69
69
  },
70
70
  "publishConfig": {
71
71
  "access": "public"
@@ -1,5 +1,5 @@
1
1
  import { IndexingDiviner } from '@xyo-network/diviner-indexing'
2
- import type { AttachableDivinerInstance } from '@xyo-network/diviner-model'
2
+ import { AttachableDivinerInstance } from '@xyo-network/diviner-model'
3
3
 
4
4
  import { ImageThumbnailDivinerLabels } from './ImageThumbnailDivinerLabels.ts'
5
5
 
@@ -1,5 +1,5 @@
1
- import type { DivinerStageSchema, IndexingDivinerStage } from '@xyo-network/diviner-indexing'
2
- import type { Labels } from '@xyo-network/module-model'
1
+ import { DivinerStageSchema, IndexingDivinerStage } from '@xyo-network/diviner-indexing'
2
+ import { Labels } from '@xyo-network/module-model'
3
3
 
4
4
  /**
5
5
  * Labels for Image Thumbnail Diviner components
@@ -1,5 +1,5 @@
1
- import type { Hex } from '@xylabs/hex'
2
- import type { StateDictionary } from '@xyo-network/module-model'
1
+ import { Hex } from '@xylabs/hex'
2
+ import { StateDictionary } from '@xyo-network/module-model'
3
3
 
4
4
  export type ImageThumbnailDivinerState = StateDictionary & {
5
5
  cursor: Hex
@@ -1,28 +1,25 @@
1
- import type { Hash } from '@xylabs/hex'
2
- import type { BoundWitness } from '@xyo-network/boundwitness-model'
3
- import { isBoundWitness } from '@xyo-network/boundwitness-model'
1
+ import { Hash } from '@xylabs/hex'
2
+ import { BoundWitness, isBoundWitness } from '@xyo-network/boundwitness-model'
4
3
  import { AbstractDiviner } from '@xyo-network/diviner-abstract'
5
4
  import { DivinerConfigSchema } from '@xyo-network/diviner-model'
6
- import type {
5
+ import {
7
6
  ImageThumbnail,
8
7
  ImageThumbnailResultIndex,
9
8
  ImageThumbnailResultIndexFields,
10
- } from '@xyo-network/image-thumbnail-payload-plugin'
11
- import {
12
9
  ImageThumbnailResultIndexSchema,
13
10
  ImageThumbnailSchema,
14
11
  isImageThumbnail,
15
12
  } from '@xyo-network/image-thumbnail-payload-plugin'
16
13
  import { PayloadBuilder } from '@xyo-network/payload-builder'
17
- import type {
14
+ import {
18
15
  Payload, Schema, WithSources,
19
16
  } from '@xyo-network/payload-model'
20
17
  import { UrlSchema } from '@xyo-network/url-payload-plugin'
21
- import type { TimeStamp } from '@xyo-network/witness-timestamp'
22
- import { isTimestamp, TimestampSchema } from '@xyo-network/witness-timestamp'
18
+ import {
19
+ isTimestamp, TimeStamp, TimestampSchema,
20
+ } from '@xyo-network/witness-timestamp'
23
21
 
24
- import type { ImageThumbnailDivinerStageLabels } from './ImageThumbnailDivinerLabels.ts'
25
- import { ImageThumbnailDivinerLabels } from './ImageThumbnailDivinerLabels.ts'
22
+ import { ImageThumbnailDivinerLabels, ImageThumbnailDivinerStageLabels } from './ImageThumbnailDivinerLabels.ts'
26
23
 
27
24
  /**
28
25
  * Transforms candidates for image thumbnail indexing into their indexed representation
@@ -1,21 +1,18 @@
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 type {
4
+ import {
5
5
  ImageThumbnailResult,
6
6
  ImageThumbnailResultFields,
7
- } from '@xyo-network/image-thumbnail-payload-plugin'
8
- import {
9
7
  ImageThumbnailResultSchema,
10
8
  isImageThumbnailDivinerQuery,
11
9
  isImageThumbnailResultIndexWithSources,
12
10
  } from '@xyo-network/image-thumbnail-payload-plugin'
13
11
  import { PayloadBuilder } from '@xyo-network/payload-builder'
14
- import type { Payload, Schema } from '@xyo-network/payload-model'
12
+ import { Payload, Schema } from '@xyo-network/payload-model'
15
13
  import { UrlSchema } from '@xyo-network/url-payload-plugin'
16
14
 
17
- import type { ImageThumbnailDivinerStageLabels } from './ImageThumbnailDivinerLabels.ts'
18
- import { ImageThumbnailDivinerLabels } from './ImageThumbnailDivinerLabels.ts'
15
+ import { ImageThumbnailDivinerLabels, ImageThumbnailDivinerStageLabels } from './ImageThumbnailDivinerLabels.ts'
19
16
 
20
17
  /**
21
18
  * Transforms an ImageThumbnailIndex response into an ImageThumbnailResponse response
@@ -3,12 +3,11 @@ 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 type { Payload, Schema } from '@xyo-network/payload-model'
6
+ import { Payload, Schema } from '@xyo-network/payload-model'
7
7
  import { UrlSchema } from '@xyo-network/url-payload-plugin'
8
8
 
9
- import type { ImageThumbnailDivinerStageLabels } from './ImageThumbnailDivinerLabels.ts'
10
- import { ImageThumbnailDivinerLabels } from './ImageThumbnailDivinerLabels.ts'
11
- import type { ImageThumbnailResultQuery } from './ImageThumbnailResultQuery.ts'
9
+ import { ImageThumbnailDivinerLabels, ImageThumbnailDivinerStageLabels } from './ImageThumbnailDivinerLabels.ts'
10
+ import { ImageThumbnailResultQuery } from './ImageThumbnailResultQuery.ts'
12
11
 
13
12
  /**
14
13
  * A diviner that converts ImageThumbnailDivinerQuery to ImageThumbnailResultQuery
@@ -1,6 +1,5 @@
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'
1
+ import { PayloadDivinerQueryPayload, PayloadDivinerQuerySchema } from '@xyo-network/diviner-payload-model'
2
+ import { ImageThumbnailResultIndex } from '@xyo-network/image-thumbnail-payload-plugin'
4
3
  import { isPayloadOfSchemaType } from '@xyo-network/payload-model'
5
4
 
6
5
  /**
@@ -1,5 +1,5 @@
1
- import type { DivinerConfig } from '@xyo-network/diviner-model'
2
- import type { SearchableStorage } from '@xyo-network/image-thumbnail-payload-plugin'
1
+ import { DivinerConfig } from '@xyo-network/diviner-model'
2
+ import { SearchableStorage } from '@xyo-network/image-thumbnail-payload-plugin'
3
3
 
4
4
  import { ImageThumbnailStateToIndexCandidateDivinerSchema } from './Schema.ts'
5
5
 
@@ -2,28 +2,31 @@ import { filterAs } from '@xylabs/array'
2
2
  import { assertEx } from '@xylabs/assert'
3
3
  import { exists } from '@xylabs/exists'
4
4
  import { AsObjectFactory } from '@xylabs/object'
5
- import type { ArchivistInstance, ArchivistNextOptions } from '@xyo-network/archivist-model'
5
+ import { ArchivistInstance, ArchivistNextOptions } from '@xyo-network/archivist-model'
6
6
  import { ArchivistWrapper } from '@xyo-network/archivist-wrapper'
7
- import type { BoundWitness } from '@xyo-network/boundwitness-model'
8
- import { asBoundWitness, isBoundWitness } from '@xyo-network/boundwitness-model'
7
+ import {
8
+ asBoundWitness, BoundWitness, isBoundWitness,
9
+ } from '@xyo-network/boundwitness-model'
9
10
  import { payloadSchemasContainsAll } from '@xyo-network/boundwitness-validator'
10
11
  import { AbstractDiviner } from '@xyo-network/diviner-abstract'
11
12
  import { DivinerWrapper } from '@xyo-network/diviner-wrapper'
12
- import type { ImageThumbnail } from '@xyo-network/image-thumbnail-payload-plugin'
13
- import { ImageThumbnailSchema, isImageThumbnail } from '@xyo-network/image-thumbnail-payload-plugin'
14
- import type { ModuleState } from '@xyo-network/module-model'
15
- import { isModuleState, ModuleStateSchema } from '@xyo-network/module-model'
16
13
  import {
17
- type Payload, type Schema, SequenceConstants,
14
+ ImageThumbnail, ImageThumbnailSchema, isImageThumbnail,
15
+ } from '@xyo-network/image-thumbnail-payload-plugin'
16
+ import {
17
+ isModuleState, ModuleState, ModuleStateSchema,
18
+ } from '@xyo-network/module-model'
19
+ import {
20
+ Payload, Schema, SequenceConstants,
18
21
  } from '@xyo-network/payload-model'
19
- import type { TimeStamp } from '@xyo-network/witness-timestamp'
20
- import { isTimestamp, TimestampSchema } from '@xyo-network/witness-timestamp'
22
+ import {
23
+ isTimestamp, TimeStamp, TimestampSchema,
24
+ } from '@xyo-network/witness-timestamp'
21
25
 
22
- import type { ImageThumbnailDivinerStageLabels } from '../ImageThumbnailDivinerLabels.ts'
23
- import { ImageThumbnailDivinerLabels } from '../ImageThumbnailDivinerLabels.ts'
24
- import type { ImageThumbnailDivinerState } from '../ImageThumbnailDivinerState.ts'
26
+ import { ImageThumbnailDivinerLabels, ImageThumbnailDivinerStageLabels } from '../ImageThumbnailDivinerLabels.ts'
27
+ import { ImageThumbnailDivinerState } from '../ImageThumbnailDivinerState.ts'
25
28
  import { ImageThumbnailStateToIndexCandidateDivinerConfigSchema } from './Config.ts'
26
- import type { ImageThumbnailStateToIndexCandidateDivinerParams } from './Params.ts'
29
+ import { ImageThumbnailStateToIndexCandidateDivinerParams } from './Params.ts'
27
30
 
28
31
  /**
29
32
  * All Payload types involved in index candidates for indexing
@@ -1,6 +1,6 @@
1
- import type { DivinerParams } from '@xyo-network/diviner-model'
2
- import type { AnyConfigSchema } from '@xyo-network/module-model'
1
+ import { DivinerParams } from '@xyo-network/diviner-model'
2
+ import { AnyConfigSchema } from '@xyo-network/module-model'
3
3
 
4
- import type { ImageThumbnailStateToIndexCandidateDivinerConfig } from './Config.ts'
4
+ import { ImageThumbnailStateToIndexCandidateDivinerConfig } from './Config.ts'
5
5
 
6
6
  export type ImageThumbnailStateToIndexCandidateDivinerParams = DivinerParams<AnyConfigSchema<ImageThumbnailStateToIndexCandidateDivinerConfig>>
package/xy.config.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { XyTsupConfig } from '@xylabs/ts-scripts-yarn3'
1
+ import { XyTsupConfig } from '@xylabs/ts-scripts-yarn3'
2
2
  const config: XyTsupConfig = {
3
3
  compile: {
4
4
  browser: {},