@xyo-network/archivist-mongodb 2.74.4 → 2.75.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/Archivist.cjs +184 -0
- package/dist/browser/Archivist.cjs.map +1 -0
- package/dist/browser/Archivist.d.mts +239 -0
- package/dist/browser/Archivist.d.mts.map +1 -0
- package/dist/browser/Archivist.d.ts +239 -0
- package/dist/browser/Archivist.d.ts.map +1 -0
- package/dist/browser/Archivist.js +165 -0
- package/dist/browser/Archivist.js.map +1 -0
- package/dist/{index.js → browser/index.cjs} +83 -85
- package/dist/browser/index.cjs.map +1 -0
- package/dist/browser/index.d.mts.map +1 -0
- package/dist/browser/index.d.ts.map +1 -0
- package/dist/{index.mjs → browser/index.js} +83 -80
- package/dist/browser/index.js.map +1 -0
- package/dist/browser/lib/index.cjs +92 -0
- package/dist/browser/lib/index.cjs.map +1 -0
- package/dist/browser/lib/index.d.mts +5 -0
- package/dist/browser/lib/index.d.mts.map +1 -0
- package/dist/browser/lib/index.d.ts +5 -0
- package/dist/browser/lib/index.d.ts.map +1 -0
- package/dist/browser/lib/index.js +71 -0
- package/dist/browser/lib/index.js.map +1 -0
- package/dist/browser/lib/toBoundWitnessWithMeta.cjs +35 -0
- package/dist/browser/lib/toBoundWitnessWithMeta.cjs.map +1 -0
- package/dist/browser/lib/toBoundWitnessWithMeta.d.mts +5 -0
- package/dist/browser/lib/toBoundWitnessWithMeta.d.mts.map +1 -0
- package/dist/browser/lib/toBoundWitnessWithMeta.d.ts +5 -0
- package/dist/browser/lib/toBoundWitnessWithMeta.d.ts.map +1 -0
- package/dist/browser/lib/toBoundWitnessWithMeta.js +16 -0
- package/dist/browser/lib/toBoundWitnessWithMeta.js.map +1 -0
- package/dist/browser/lib/toPayloadWithMeta.cjs +34 -0
- package/dist/browser/lib/toPayloadWithMeta.cjs.map +1 -0
- package/dist/browser/lib/toPayloadWithMeta.d.mts +4 -0
- package/dist/browser/lib/toPayloadWithMeta.d.mts.map +1 -0
- package/dist/browser/lib/toPayloadWithMeta.d.ts +4 -0
- package/dist/browser/lib/toPayloadWithMeta.d.ts.map +1 -0
- package/dist/browser/lib/toPayloadWithMeta.js +15 -0
- package/dist/browser/lib/toPayloadWithMeta.js.map +1 -0
- package/dist/browser/lib/toReturnValue.cjs +41 -0
- package/dist/browser/lib/toReturnValue.cjs.map +1 -0
- package/dist/browser/lib/toReturnValue.d.mts +4 -0
- package/dist/browser/lib/toReturnValue.d.mts.map +1 -0
- package/dist/browser/lib/toReturnValue.d.ts +4 -0
- package/dist/browser/lib/toReturnValue.d.ts.map +1 -0
- package/dist/browser/lib/toReturnValue.js +22 -0
- package/dist/browser/lib/toReturnValue.js.map +1 -0
- package/dist/browser/lib/validByType.cjs +52 -0
- package/dist/browser/lib/validByType.cjs.map +1 -0
- package/dist/browser/lib/validByType.d.mts.map +1 -0
- package/dist/browser/lib/validByType.d.ts.map +1 -0
- package/dist/browser/lib/validByType.js +33 -0
- package/dist/browser/lib/validByType.js.map +1 -0
- package/dist/node/Archivist.d.mts +239 -0
- package/dist/node/Archivist.d.mts.map +1 -0
- package/dist/node/Archivist.d.ts +239 -0
- package/dist/node/Archivist.d.ts.map +1 -0
- package/dist/node/Archivist.js +123 -0
- package/dist/node/Archivist.js.map +1 -0
- package/dist/node/Archivist.mjs +100 -0
- package/dist/node/Archivist.mjs.map +1 -0
- package/dist/node/index.d.mts +3 -0
- package/dist/node/index.d.mts.map +1 -0
- package/dist/node/index.d.ts +3 -0
- package/dist/node/index.d.ts.map +1 -0
- package/dist/node/index.js +25 -0
- package/dist/node/index.js.map +1 -0
- package/dist/node/index.mjs +3 -0
- package/dist/node/index.mjs.map +1 -0
- package/dist/node/lib/index.d.mts +5 -0
- package/dist/node/lib/index.d.mts.map +1 -0
- package/dist/node/lib/index.d.ts +5 -0
- package/dist/node/lib/index.d.ts.map +1 -0
- package/dist/node/lib/index.js +29 -0
- package/dist/node/lib/index.js.map +1 -0
- package/dist/node/lib/index.mjs +5 -0
- package/dist/node/lib/index.mjs.map +1 -0
- package/dist/node/lib/toBoundWitnessWithMeta.d.mts +5 -0
- package/dist/node/lib/toBoundWitnessWithMeta.d.mts.map +1 -0
- package/dist/node/lib/toBoundWitnessWithMeta.d.ts +5 -0
- package/dist/node/lib/toBoundWitnessWithMeta.d.ts.map +1 -0
- package/dist/node/lib/toBoundWitnessWithMeta.js +37 -0
- package/dist/node/lib/toBoundWitnessWithMeta.js.map +1 -0
- package/dist/node/lib/toBoundWitnessWithMeta.mjs +14 -0
- package/dist/node/lib/toBoundWitnessWithMeta.mjs.map +1 -0
- package/dist/node/lib/toPayloadWithMeta.d.mts +4 -0
- package/dist/node/lib/toPayloadWithMeta.d.mts.map +1 -0
- package/dist/node/lib/toPayloadWithMeta.d.ts +4 -0
- package/dist/node/lib/toPayloadWithMeta.d.ts.map +1 -0
- package/dist/node/lib/toPayloadWithMeta.js +36 -0
- package/dist/node/lib/toPayloadWithMeta.js.map +1 -0
- package/dist/node/lib/toPayloadWithMeta.mjs +13 -0
- package/dist/node/lib/toPayloadWithMeta.mjs.map +1 -0
- package/dist/node/lib/toReturnValue.d.mts +4 -0
- package/dist/node/lib/toReturnValue.d.mts.map +1 -0
- package/dist/node/lib/toReturnValue.d.ts +4 -0
- package/dist/node/lib/toReturnValue.d.ts.map +1 -0
- package/dist/node/lib/toReturnValue.js +43 -0
- package/dist/node/lib/toReturnValue.js.map +1 -0
- package/dist/node/lib/toReturnValue.mjs +20 -0
- package/dist/node/lib/toReturnValue.mjs.map +1 -0
- package/dist/node/lib/validByType.d.mts +11 -0
- package/dist/node/lib/validByType.d.mts.map +1 -0
- package/dist/node/lib/validByType.d.ts +11 -0
- package/dist/node/lib/validByType.d.ts.map +1 -0
- package/dist/node/lib/validByType.js +54 -0
- package/dist/node/lib/validByType.js.map +1 -0
- package/dist/node/lib/validByType.mjs +31 -0
- package/dist/node/lib/validByType.mjs.map +1 -0
- package/package.json +39 -33
- package/src/Archivist.ts +39 -56
- package/src/lib/index.ts +3 -0
- package/src/lib/toBoundWitnessWithMeta.ts +9 -0
- package/src/lib/toPayloadWithMeta.ts +6 -0
- package/src/lib/toReturnValue.ts +12 -0
- package/dist/Archivist.d.mts +0 -23
- package/dist/Archivist.d.mts.map +0 -1
- package/dist/Archivist.d.ts +0 -23
- package/dist/Archivist.d.ts.map +0 -1
- package/dist/docs.json +0 -23531
- package/dist/index.d.mts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/index.mjs.map +0 -1
- package/dist/lib/index.d.mts +0 -2
- package/dist/lib/index.d.mts.map +0 -1
- package/dist/lib/index.d.ts +0 -2
- package/dist/lib/index.d.ts.map +0 -1
- package/dist/lib/validByType.d.mts.map +0 -1
- package/dist/lib/validByType.d.ts.map +0 -1
- /package/dist/{index.d.mts → browser/index.d.mts} +0 -0
- /package/dist/{index.d.ts → browser/index.d.ts} +0 -0
- /package/dist/{lib → browser/lib}/validByType.d.mts +0 -0
- /package/dist/{lib → browser/lib}/validByType.d.ts +0 -0
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
import { AbstractArchivist } from '@xyo-network/archivist-abstract';
|
|
2
|
+
import { Payload } from '@xyo-network/payload-model';
|
|
3
|
+
declare const MongoDBArchivistBase: (abstract new (...args: any[]) => {
|
|
4
|
+
_boundWitnessSdk: import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdk<import("@xyo-network/node-core-model").BoundWitnessWithMeta> | undefined;
|
|
5
|
+
_payloadSdk: import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdk<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & import("@xyo-network/node-core-model").PayloadMetaBase & {
|
|
6
|
+
schema: string;
|
|
7
|
+
}> | undefined;
|
|
8
|
+
readonly boundWitnessSdkConfig: import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkConfig;
|
|
9
|
+
readonly boundWitnesses: import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdk<import("@xyo-network/node-core-model").BoundWitnessWithMeta>;
|
|
10
|
+
readonly jobQueue: import("@xyo-network/node-core-model").JobQueue;
|
|
11
|
+
readonly payloadSdkConfig: import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkConfig;
|
|
12
|
+
readonly payloads: import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdk<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & import("@xyo-network/node-core-model").PayloadMetaBase & {
|
|
13
|
+
schema: string;
|
|
14
|
+
}>;
|
|
15
|
+
address: string;
|
|
16
|
+
config: import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<{
|
|
17
|
+
accountDerivationPath?: string | undefined;
|
|
18
|
+
readonly archivist?: import("@xyo-network/module-model").ArchivistModuleConfig | undefined;
|
|
19
|
+
readonly labels?: import("@xyo-network/module-model").Labels | undefined;
|
|
20
|
+
readonly name?: string | undefined;
|
|
21
|
+
readonly paging?: Record<string, {
|
|
22
|
+
size?: number | undefined;
|
|
23
|
+
}> | undefined;
|
|
24
|
+
readonly security?: {
|
|
25
|
+
readonly allowAnonymous?: boolean | undefined;
|
|
26
|
+
readonly allowed?: Record<string, (string | import("@xyo-network/module-model").CosigningAddressSet)[]> | undefined;
|
|
27
|
+
readonly disallowed?: Record<string, string[]> | undefined;
|
|
28
|
+
} | undefined;
|
|
29
|
+
readonly sign?: boolean | undefined;
|
|
30
|
+
readonly storeQueries?: boolean | undefined;
|
|
31
|
+
readonly timestamp?: boolean | undefined;
|
|
32
|
+
} & Omit<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<{
|
|
33
|
+
accountDerivationPath?: string | undefined;
|
|
34
|
+
readonly archivist?: import("@xyo-network/module-model").ArchivistModuleConfig | undefined;
|
|
35
|
+
readonly labels?: import("@xyo-network/module-model").Labels | undefined;
|
|
36
|
+
readonly name?: string | undefined;
|
|
37
|
+
readonly paging?: Record<string, {
|
|
38
|
+
size?: number | undefined;
|
|
39
|
+
}> | undefined;
|
|
40
|
+
readonly security?: {
|
|
41
|
+
readonly allowAnonymous?: boolean | undefined;
|
|
42
|
+
readonly allowed?: Record<string, (string | import("@xyo-network/module-model").CosigningAddressSet)[]> | undefined;
|
|
43
|
+
readonly disallowed?: Record<string, string[]> | undefined;
|
|
44
|
+
} | undefined;
|
|
45
|
+
readonly sign?: boolean | undefined;
|
|
46
|
+
readonly storeQueries?: boolean | undefined;
|
|
47
|
+
readonly timestamp?: boolean | undefined;
|
|
48
|
+
} & {
|
|
49
|
+
boundWitnessSdkConfig?: Partial<import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPublicConfig> | undefined;
|
|
50
|
+
payloadSdkConfig?: Partial<import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPublicConfig> | undefined;
|
|
51
|
+
schema: "network.xyo.module.mongodb.config";
|
|
52
|
+
}, "schema"> & {
|
|
53
|
+
schema: "network.xyo.module.mongodb.config";
|
|
54
|
+
}, "schema"> & {
|
|
55
|
+
schema: string;
|
|
56
|
+
}, "schema"> & {
|
|
57
|
+
schema: string;
|
|
58
|
+
};
|
|
59
|
+
params: import("@xyo-network/core").BaseParamsFields & {
|
|
60
|
+
account?: import("@xyo-network/account-model").AccountInstance | "random" | undefined;
|
|
61
|
+
config: import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<{
|
|
62
|
+
accountDerivationPath?: string | undefined;
|
|
63
|
+
readonly archivist?: import("@xyo-network/module-model").ArchivistModuleConfig | undefined;
|
|
64
|
+
readonly labels?: import("@xyo-network/module-model").Labels | undefined;
|
|
65
|
+
readonly name?: string | undefined;
|
|
66
|
+
readonly paging?: Record<string, {
|
|
67
|
+
size?: number | undefined;
|
|
68
|
+
}> | undefined;
|
|
69
|
+
readonly security?: {
|
|
70
|
+
readonly allowAnonymous?: boolean | undefined;
|
|
71
|
+
readonly allowed?: Record<string, (string | import("@xyo-network/module-model").CosigningAddressSet)[]> | undefined;
|
|
72
|
+
readonly disallowed?: Record<string, string[]> | undefined;
|
|
73
|
+
} | undefined;
|
|
74
|
+
readonly sign?: boolean | undefined;
|
|
75
|
+
readonly storeQueries?: boolean | undefined;
|
|
76
|
+
readonly timestamp?: boolean | undefined;
|
|
77
|
+
} & Omit<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<{
|
|
78
|
+
accountDerivationPath?: string | undefined;
|
|
79
|
+
readonly archivist?: import("@xyo-network/module-model").ArchivistModuleConfig | undefined;
|
|
80
|
+
readonly labels?: import("@xyo-network/module-model").Labels | undefined;
|
|
81
|
+
readonly name?: string | undefined;
|
|
82
|
+
readonly paging?: Record<string, {
|
|
83
|
+
size?: number | undefined;
|
|
84
|
+
}> | undefined;
|
|
85
|
+
readonly security?: {
|
|
86
|
+
readonly allowAnonymous?: boolean | undefined;
|
|
87
|
+
readonly allowed?: Record<string, (string | import("@xyo-network/module-model").CosigningAddressSet)[]> | undefined;
|
|
88
|
+
readonly disallowed?: Record<string, string[]> | undefined;
|
|
89
|
+
} | undefined;
|
|
90
|
+
readonly sign?: boolean | undefined;
|
|
91
|
+
readonly storeQueries?: boolean | undefined;
|
|
92
|
+
readonly timestamp?: boolean | undefined;
|
|
93
|
+
} & {
|
|
94
|
+
boundWitnessSdkConfig?: Partial<import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPublicConfig> | undefined;
|
|
95
|
+
payloadSdkConfig?: Partial<import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPublicConfig> | undefined;
|
|
96
|
+
schema: "network.xyo.module.mongodb.config";
|
|
97
|
+
}, "schema"> & {
|
|
98
|
+
schema: "network.xyo.module.mongodb.config";
|
|
99
|
+
}, "schema"> & {
|
|
100
|
+
schema: string;
|
|
101
|
+
}, "schema"> & {
|
|
102
|
+
schema: string;
|
|
103
|
+
};
|
|
104
|
+
ephemeralQueryAccountEnabled?: boolean | undefined;
|
|
105
|
+
wallet?: import("@xyo-network/wallet-model").WalletInstance | undefined;
|
|
106
|
+
} & {
|
|
107
|
+
boundWitnessSdkConfig?: (import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPrivateConfig & Partial<import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPublicConfig>) | undefined;
|
|
108
|
+
jobQueue?: import("@xyo-network/node-core-model").JobQueue | undefined;
|
|
109
|
+
payloadSdkConfig?: (import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPrivateConfig & Partial<import("@xyo-network/sdk-xyo-mongo-js").BaseMongoSdkPublicConfig>) | undefined;
|
|
110
|
+
};
|
|
111
|
+
previousHash: () => import("@xyo-network/promise").Promisable<string | undefined, never>;
|
|
112
|
+
queries: string[];
|
|
113
|
+
query: <T extends import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/boundwitness-model").BoundWitnessFields & {
|
|
114
|
+
query: string;
|
|
115
|
+
resultSet?: string | undefined;
|
|
116
|
+
schema: "network.xyo.boundwitness";
|
|
117
|
+
}, "schema"> & {
|
|
118
|
+
schema: "network.xyo.boundwitness";
|
|
119
|
+
} = import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/boundwitness-model").BoundWitnessFields & {
|
|
120
|
+
query: string;
|
|
121
|
+
resultSet?: string | undefined;
|
|
122
|
+
schema: "network.xyo.boundwitness";
|
|
123
|
+
}, "schema"> & {
|
|
124
|
+
schema: "network.xyo.boundwitness";
|
|
125
|
+
}, TConf extends import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
|
|
126
|
+
accountDerivationPath?: string | undefined;
|
|
127
|
+
readonly archivist?: import("@xyo-network/module-model").ArchivistModuleConfig | undefined;
|
|
128
|
+
readonly labels?: import("@xyo-network/module-model").Labels | undefined;
|
|
129
|
+
readonly name?: string | undefined;
|
|
130
|
+
readonly paging?: Record<string, {
|
|
131
|
+
size?: number | undefined;
|
|
132
|
+
}> | undefined;
|
|
133
|
+
readonly security?: {
|
|
134
|
+
readonly allowAnonymous?: boolean | undefined;
|
|
135
|
+
readonly allowed?: Record<string, (string | import("@xyo-network/module-model").CosigningAddressSet)[]> | undefined;
|
|
136
|
+
readonly disallowed?: Record<string, string[]> | undefined;
|
|
137
|
+
} | undefined;
|
|
138
|
+
readonly sign?: boolean | undefined;
|
|
139
|
+
readonly storeQueries?: boolean | undefined;
|
|
140
|
+
readonly timestamp?: boolean | undefined;
|
|
141
|
+
} & {
|
|
142
|
+
schema: "network.xyo.module.config";
|
|
143
|
+
} = import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
|
|
144
|
+
accountDerivationPath?: string | undefined;
|
|
145
|
+
readonly archivist?: import("@xyo-network/module-model").ArchivistModuleConfig | undefined;
|
|
146
|
+
readonly labels?: import("@xyo-network/module-model").Labels | undefined;
|
|
147
|
+
readonly name?: string | undefined;
|
|
148
|
+
readonly paging?: Record<string, {
|
|
149
|
+
size?: number | undefined;
|
|
150
|
+
}> | undefined;
|
|
151
|
+
readonly security?: {
|
|
152
|
+
readonly allowAnonymous?: boolean | undefined;
|
|
153
|
+
readonly allowed?: Record<string, (string | import("@xyo-network/module-model").CosigningAddressSet)[]> | undefined;
|
|
154
|
+
readonly disallowed?: Record<string, string[]> | undefined;
|
|
155
|
+
} | undefined;
|
|
156
|
+
readonly sign?: boolean | undefined;
|
|
157
|
+
readonly storeQueries?: boolean | undefined;
|
|
158
|
+
readonly timestamp?: boolean | undefined;
|
|
159
|
+
} & {
|
|
160
|
+
schema: "network.xyo.module.config";
|
|
161
|
+
}>(query: T, payloads?: ({
|
|
162
|
+
schema: string;
|
|
163
|
+
} & import("@xyo-network/payload-model").PayloadFields)[] | undefined, queryConfig?: TConf | undefined) => import("@xyo-network/promise").Promisable<import("@xyo-network/module-model").ModuleQueryResult, never>;
|
|
164
|
+
queryable: <T_1 extends import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/boundwitness-model").BoundWitnessFields & {
|
|
165
|
+
query: string;
|
|
166
|
+
resultSet?: string | undefined;
|
|
167
|
+
schema: "network.xyo.boundwitness";
|
|
168
|
+
}, "schema"> & {
|
|
169
|
+
schema: "network.xyo.boundwitness";
|
|
170
|
+
} = import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/boundwitness-model").BoundWitnessFields & {
|
|
171
|
+
query: string;
|
|
172
|
+
resultSet?: string | undefined;
|
|
173
|
+
schema: "network.xyo.boundwitness";
|
|
174
|
+
}, "schema"> & {
|
|
175
|
+
schema: "network.xyo.boundwitness";
|
|
176
|
+
}, TConf_1 extends import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
|
|
177
|
+
accountDerivationPath?: string | undefined;
|
|
178
|
+
readonly archivist?: import("@xyo-network/module-model").ArchivistModuleConfig | undefined;
|
|
179
|
+
readonly labels?: import("@xyo-network/module-model").Labels | undefined;
|
|
180
|
+
readonly name?: string | undefined;
|
|
181
|
+
readonly paging?: Record<string, {
|
|
182
|
+
size?: number | undefined;
|
|
183
|
+
}> | undefined;
|
|
184
|
+
readonly security?: {
|
|
185
|
+
readonly allowAnonymous?: boolean | undefined;
|
|
186
|
+
readonly allowed?: Record<string, (string | import("@xyo-network/module-model").CosigningAddressSet)[]> | undefined;
|
|
187
|
+
readonly disallowed?: Record<string, string[]> | undefined;
|
|
188
|
+
} | undefined;
|
|
189
|
+
readonly sign?: boolean | undefined;
|
|
190
|
+
readonly storeQueries?: boolean | undefined;
|
|
191
|
+
readonly timestamp?: boolean | undefined;
|
|
192
|
+
} & {
|
|
193
|
+
schema: "network.xyo.module.config";
|
|
194
|
+
} = import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
|
|
195
|
+
accountDerivationPath?: string | undefined;
|
|
196
|
+
readonly archivist?: import("@xyo-network/module-model").ArchivistModuleConfig | undefined;
|
|
197
|
+
readonly labels?: import("@xyo-network/module-model").Labels | undefined;
|
|
198
|
+
readonly name?: string | undefined;
|
|
199
|
+
readonly paging?: Record<string, {
|
|
200
|
+
size?: number | undefined;
|
|
201
|
+
}> | undefined;
|
|
202
|
+
readonly security?: {
|
|
203
|
+
readonly allowAnonymous?: boolean | undefined;
|
|
204
|
+
readonly allowed?: Record<string, (string | import("@xyo-network/module-model").CosigningAddressSet)[]> | undefined;
|
|
205
|
+
readonly disallowed?: Record<string, string[]> | undefined;
|
|
206
|
+
} | undefined;
|
|
207
|
+
readonly sign?: boolean | undefined;
|
|
208
|
+
readonly storeQueries?: boolean | undefined;
|
|
209
|
+
readonly timestamp?: boolean | undefined;
|
|
210
|
+
} & {
|
|
211
|
+
schema: "network.xyo.module.config";
|
|
212
|
+
}>(query: T_1, payloads?: ({
|
|
213
|
+
schema: string;
|
|
214
|
+
} & import("@xyo-network/payload-model").PayloadFields)[] | undefined, queryConfig?: TConf_1 | undefined) => import("@xyo-network/promise").Promisable<boolean, never>;
|
|
215
|
+
start?: (() => import("@xyo-network/promise").Promisable<boolean, never>) | undefined;
|
|
216
|
+
stop?: (() => import("@xyo-network/promise").Promisable<boolean, never>) | undefined;
|
|
217
|
+
eventData: import("@xyo-network/module-model").ModuleEventData<object>;
|
|
218
|
+
clearListeners(eventNames: keyof import("@xyo-network/module-model").ModuleEventData<object> | (keyof import("@xyo-network/module-model").ModuleEventData<object>)[]): void;
|
|
219
|
+
emit<TEventName extends keyof import("@xyo-network/module-model").ModuleEventData<object>>(eventName: TEventName, eventArgs: import("@xyo-network/module-model").ModuleEventData<object>[TEventName]): Promise<void>;
|
|
220
|
+
emitSerial<TEventName_1 extends keyof import("@xyo-network/module-model").ModuleEventData<object>>(eventName: TEventName_1, eventArgs: import("@xyo-network/module-model").ModuleEventData<object>[TEventName_1]): Promise<void>;
|
|
221
|
+
listenerCount(eventNames: keyof import("@xyo-network/module-model").ModuleEventData<object> | (keyof import("@xyo-network/module-model").ModuleEventData<object>)[]): number;
|
|
222
|
+
off<TEventName_2 extends keyof import("@xyo-network/module-model").ModuleEventData<object>>(eventNames: TEventName_2 | TEventName_2[], listener: import("@xyo-network/module-events").EventListener<import("@xyo-network/module-model").ModuleEventData<object>[TEventName_2]>): void;
|
|
223
|
+
offAny(listener: Promise<void> | import("@xyo-network/module-events").EventAnyListener<import("@xyo-network/module-events").EventArgs>): void;
|
|
224
|
+
on<TEventName_3 extends keyof import("@xyo-network/module-model").ModuleEventData<object>>(eventNames: TEventName_3 | TEventName_3[], listener: import("@xyo-network/module-events").EventListener<import("@xyo-network/module-model").ModuleEventData<object>[TEventName_3]>): import("@xyo-network/module-events").EventUnsubscribeFunction;
|
|
225
|
+
onAny(listener: import("@xyo-network/module-events").EventAnyListener<import("@xyo-network/module-events").EventArgs>): import("@xyo-network/module-events").EventUnsubscribeFunction;
|
|
226
|
+
once<TEventName_4 extends keyof import("@xyo-network/module-model").ModuleEventData<object>>(eventName: TEventName_4, listener: import("@xyo-network/module-events").EventListener<import("@xyo-network/module-model").ModuleEventData<object>[TEventName_4]>): import("@xyo-network/module-events").EventUnsubscribeFunction;
|
|
227
|
+
}) & {
|
|
228
|
+
labels: import("@xyo-network/module-model-mongodb").MongoDBStorageClassLabels;
|
|
229
|
+
} & typeof AbstractArchivist;
|
|
230
|
+
export declare class MongoDBArchivist extends MongoDBArchivistBase {
|
|
231
|
+
static configSchemas: string[];
|
|
232
|
+
readonly queries: string[];
|
|
233
|
+
head(): Promise<Payload | undefined>;
|
|
234
|
+
protected getHandler(hashes: string[]): Promise<Payload[]>;
|
|
235
|
+
protected insertHandler(payloads?: Payload[]): Promise<Payload[]>;
|
|
236
|
+
protected startHandler(): Promise<boolean>;
|
|
237
|
+
}
|
|
238
|
+
export {};
|
|
239
|
+
//# sourceMappingURL=Archivist.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Archivist.d.ts","sourceRoot":"","sources":["../../src/Archivist.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAKnE,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AA0BpD,QAAA,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAAwC,CAAA;AAElE,qBAAa,gBAAiB,SAAQ,oBAAoB;IACxD,OAAgB,aAAa,WAAwD;IAErF,SAAkB,OAAO,EAAE,MAAM,EAAE,CAAiD;IAErE,IAAI,IAAI,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;cAK1B,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;cAQhD,aAAa,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;cAiBvD,YAAY;CActC"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
20
|
+
var Archivist_exports = {};
|
|
21
|
+
__export(Archivist_exports, {
|
|
22
|
+
MongoDBArchivist: () => MongoDBArchivist
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(Archivist_exports);
|
|
25
|
+
var import_exists = require("@xylabs/exists");
|
|
26
|
+
var import_promise = require("@xylabs/promise");
|
|
27
|
+
var import_archivist_abstract = require("@xyo-network/archivist-abstract");
|
|
28
|
+
var import_archivist_model = require("@xyo-network/archivist-model");
|
|
29
|
+
var import_archivist_model_mongodb = require("@xyo-network/archivist-model-mongodb");
|
|
30
|
+
var import_module_abstract_mongodb = require("@xyo-network/module-abstract-mongodb");
|
|
31
|
+
var import_payload_wrapper = require("@xyo-network/payload-wrapper");
|
|
32
|
+
var import_lib = require("./lib");
|
|
33
|
+
const getBoundWitnessesIndexes = /* @__PURE__ */ __name((collectionName) => {
|
|
34
|
+
return [
|
|
35
|
+
{
|
|
36
|
+
// eslint-disable-next-line sort-keys-fix/sort-keys-fix
|
|
37
|
+
key: {
|
|
38
|
+
_hash: 1
|
|
39
|
+
},
|
|
40
|
+
name: `${collectionName}.IX__hash`
|
|
41
|
+
}
|
|
42
|
+
];
|
|
43
|
+
}, "getBoundWitnessesIndexes");
|
|
44
|
+
const getPayloadsIndexes = /* @__PURE__ */ __name((collectionName) => {
|
|
45
|
+
return [
|
|
46
|
+
{
|
|
47
|
+
// eslint-disable-next-line sort-keys-fix/sort-keys-fix
|
|
48
|
+
key: {
|
|
49
|
+
_hash: 1
|
|
50
|
+
},
|
|
51
|
+
name: `${collectionName}.IX__hash`
|
|
52
|
+
}
|
|
53
|
+
];
|
|
54
|
+
}, "getPayloadsIndexes");
|
|
55
|
+
const MongoDBArchivistBase = (0, import_module_abstract_mongodb.MongoDBModuleMixin)(import_archivist_abstract.AbstractArchivist);
|
|
56
|
+
class MongoDBArchivist extends MongoDBArchivistBase {
|
|
57
|
+
static {
|
|
58
|
+
__name(this, "MongoDBArchivist");
|
|
59
|
+
}
|
|
60
|
+
static configSchemas = [
|
|
61
|
+
import_archivist_model_mongodb.MongoDBArchivistConfigSchema,
|
|
62
|
+
import_archivist_model.ArchivistConfigSchema
|
|
63
|
+
];
|
|
64
|
+
queries = [
|
|
65
|
+
import_archivist_model.ArchivistInsertQuerySchema,
|
|
66
|
+
...super.queries
|
|
67
|
+
];
|
|
68
|
+
async head() {
|
|
69
|
+
const head = await (await this.payloads.find({})).sort({
|
|
70
|
+
_timestamp: -1
|
|
71
|
+
}).limit(1).toArray();
|
|
72
|
+
return head[0] ? import_payload_wrapper.PayloadWrapper.wrap(head[0]).body() : void 0;
|
|
73
|
+
}
|
|
74
|
+
async getHandler(hashes) {
|
|
75
|
+
const payloads = hashes.map((_hash) => this.payloads.findOne({
|
|
76
|
+
_hash
|
|
77
|
+
}));
|
|
78
|
+
const bws = hashes.map((_hash) => this.boundWitnesses.findOne({
|
|
79
|
+
_hash
|
|
80
|
+
}));
|
|
81
|
+
const gets = await Promise.allSettled([
|
|
82
|
+
payloads,
|
|
83
|
+
bws
|
|
84
|
+
].flat());
|
|
85
|
+
const succeeded = gets.reduce(import_promise.fulfilledValues, []);
|
|
86
|
+
return succeeded.filter(import_exists.exists).map(import_lib.toReturnValue);
|
|
87
|
+
}
|
|
88
|
+
async insertHandler(payloads) {
|
|
89
|
+
const [bw, p] = await (0, import_lib.validByType)(payloads);
|
|
90
|
+
const boundWitnesses = await Promise.all(bw.map((x) => (0, import_lib.toBoundWitnessWithMeta)(x)));
|
|
91
|
+
const payloadsWithMeta = await Promise.all(p.map((x) => (0, import_lib.toPayloadWithMeta)(x)));
|
|
92
|
+
if (boundWitnesses.length) {
|
|
93
|
+
const boundWitnessesResult = await this.boundWitnesses.insertMany(boundWitnesses);
|
|
94
|
+
if (!boundWitnessesResult.acknowledged || boundWitnessesResult.insertedCount !== boundWitnesses.length)
|
|
95
|
+
throw new Error("MongoDBDeterministicArchivist: Error inserting BoundWitnesses");
|
|
96
|
+
}
|
|
97
|
+
if (payloadsWithMeta.length) {
|
|
98
|
+
const payloadsResult = await this.payloads.insertMany(payloadsWithMeta);
|
|
99
|
+
if (!payloadsResult.acknowledged || payloadsResult.insertedCount !== payloadsWithMeta.length)
|
|
100
|
+
throw new Error("MongoDBDeterministicArchivist: Error inserting Payloads");
|
|
101
|
+
}
|
|
102
|
+
return payloads ?? [];
|
|
103
|
+
}
|
|
104
|
+
async startHandler() {
|
|
105
|
+
await super.startHandler();
|
|
106
|
+
await this.boundWitnesses.useCollection(async (collection) => {
|
|
107
|
+
const { collectionName } = collection;
|
|
108
|
+
const indexes = getBoundWitnessesIndexes(collectionName);
|
|
109
|
+
await collection.createIndexes(indexes);
|
|
110
|
+
});
|
|
111
|
+
await this.payloads.useCollection(async (collection) => {
|
|
112
|
+
const { collectionName } = collection;
|
|
113
|
+
const indexes = getPayloadsIndexes(collectionName);
|
|
114
|
+
await collection.createIndexes(indexes);
|
|
115
|
+
});
|
|
116
|
+
return true;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
120
|
+
0 && (module.exports = {
|
|
121
|
+
MongoDBArchivist
|
|
122
|
+
});
|
|
123
|
+
//# sourceMappingURL=Archivist.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/Archivist.ts"],"sourcesContent":["import { exists } from '@xylabs/exists'\nimport { fulfilledValues } from '@xylabs/promise'\nimport { AbstractArchivist } from '@xyo-network/archivist-abstract'\nimport { ArchivistConfigSchema, ArchivistInsertQuerySchema } from '@xyo-network/archivist-model'\nimport { MongoDBArchivistConfigSchema } from '@xyo-network/archivist-model-mongodb'\nimport { CollectionIndexFunction, MongoDBModuleMixin } from '@xyo-network/module-abstract-mongodb'\nimport { PayloadWithPartialMeta } from '@xyo-network/node-core-model'\nimport { Payload } from '@xyo-network/payload-model'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\nimport { IndexDescription } from 'mongodb'\n\nimport { toBoundWitnessWithMeta, toPayloadWithMeta, toReturnValue, validByType } from './lib'\n\nconst getBoundWitnessesIndexes: CollectionIndexFunction = (collectionName: string): IndexDescription[] => {\n return [\n {\n // eslint-disable-next-line sort-keys-fix/sort-keys-fix\n key: { _hash: 1 },\n name: `${collectionName}.IX__hash`,\n },\n ]\n}\n\nconst getPayloadsIndexes: CollectionIndexFunction = (collectionName: string): IndexDescription[] => {\n return [\n {\n // eslint-disable-next-line sort-keys-fix/sort-keys-fix\n key: { _hash: 1 },\n name: `${collectionName}.IX__hash`,\n },\n ]\n}\n\nconst MongoDBArchivistBase = MongoDBModuleMixin(AbstractArchivist)\n\nexport class MongoDBArchivist extends MongoDBArchivistBase {\n static override configSchemas = [MongoDBArchivistConfigSchema, ArchivistConfigSchema]\n\n override readonly queries: string[] = [ArchivistInsertQuerySchema, ...super.queries]\n\n override async head(): Promise<Payload | undefined> {\n const head = await (await this.payloads.find({})).sort({ _timestamp: -1 }).limit(1).toArray()\n return head[0] ? PayloadWrapper.wrap(head[0]).body() : undefined\n }\n\n protected override async getHandler(hashes: string[]): Promise<Payload[]> {\n const payloads = hashes.map((_hash) => this.payloads.findOne({ _hash }))\n const bws = hashes.map((_hash) => this.boundWitnesses.findOne({ _hash }))\n const gets = await Promise.allSettled([payloads, bws].flat())\n const succeeded = gets.reduce<(PayloadWithPartialMeta | null)[]>(fulfilledValues, []) as Payload[]\n return succeeded.filter(exists).map(toReturnValue)\n }\n\n protected override async insertHandler(payloads?: Payload[]): Promise<Payload[]> {\n const [bw, p] = await validByType(payloads)\n const boundWitnesses = await Promise.all(bw.map((x) => toBoundWitnessWithMeta(x)))\n const payloadsWithMeta = await Promise.all(p.map((x) => toPayloadWithMeta(x)))\n if (boundWitnesses.length) {\n const boundWitnessesResult = await this.boundWitnesses.insertMany(boundWitnesses)\n if (!boundWitnessesResult.acknowledged || boundWitnessesResult.insertedCount !== boundWitnesses.length)\n throw new Error('MongoDBDeterministicArchivist: Error inserting BoundWitnesses')\n }\n if (payloadsWithMeta.length) {\n const payloadsResult = await this.payloads.insertMany(payloadsWithMeta)\n if (!payloadsResult.acknowledged || payloadsResult.insertedCount !== payloadsWithMeta.length)\n throw new Error('MongoDBDeterministicArchivist: Error inserting Payloads')\n }\n return payloads ?? []\n }\n\n protected override async startHandler() {\n await super.startHandler()\n await this.boundWitnesses.useCollection(async (collection) => {\n const { collectionName } = collection\n const indexes = getBoundWitnessesIndexes(collectionName)\n await collection.createIndexes(indexes)\n })\n await this.payloads.useCollection(async (collection) => {\n const { collectionName } = collection\n const indexes = getPayloadsIndexes(collectionName)\n await collection.createIndexes(indexes)\n })\n return true\n }\n}\n"],"mappings":"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","names":["getBoundWitnessesIndexes","collectionName","key","_hash","name","getPayloadsIndexes","MongoDBArchivistBase","MongoDBModuleMixin","AbstractArchivist","MongoDBArchivist","configSchemas","MongoDBArchivistConfigSchema","ArchivistConfigSchema","queries","ArchivistInsertQuerySchema","head","payloads","find","sort","_timestamp","limit","toArray","PayloadWrapper","wrap","body","undefined","getHandler","hashes","map","findOne","bws","boundWitnesses","gets","Promise","allSettled","flat","succeeded","reduce","fulfilledValues","filter","exists","toReturnValue","insertHandler","bw","p","validByType","all","x","toBoundWitnessWithMeta","payloadsWithMeta","toPayloadWithMeta","length","boundWitnessesResult","insertMany","acknowledged","insertedCount","Error","payloadsResult","startHandler","useCollection","collection","indexes","createIndexes"]}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
+
import { exists } from "@xylabs/exists";
|
|
4
|
+
import { fulfilledValues } from "@xylabs/promise";
|
|
5
|
+
import { AbstractArchivist } from "@xyo-network/archivist-abstract";
|
|
6
|
+
import { ArchivistConfigSchema, ArchivistInsertQuerySchema } from "@xyo-network/archivist-model";
|
|
7
|
+
import { MongoDBArchivistConfigSchema } from "@xyo-network/archivist-model-mongodb";
|
|
8
|
+
import { MongoDBModuleMixin } from "@xyo-network/module-abstract-mongodb";
|
|
9
|
+
import { PayloadWrapper } from "@xyo-network/payload-wrapper";
|
|
10
|
+
import { toBoundWitnessWithMeta, toPayloadWithMeta, toReturnValue, validByType } from "./lib";
|
|
11
|
+
const getBoundWitnessesIndexes = /* @__PURE__ */ __name((collectionName) => {
|
|
12
|
+
return [
|
|
13
|
+
{
|
|
14
|
+
// eslint-disable-next-line sort-keys-fix/sort-keys-fix
|
|
15
|
+
key: {
|
|
16
|
+
_hash: 1
|
|
17
|
+
},
|
|
18
|
+
name: `${collectionName}.IX__hash`
|
|
19
|
+
}
|
|
20
|
+
];
|
|
21
|
+
}, "getBoundWitnessesIndexes");
|
|
22
|
+
const getPayloadsIndexes = /* @__PURE__ */ __name((collectionName) => {
|
|
23
|
+
return [
|
|
24
|
+
{
|
|
25
|
+
// eslint-disable-next-line sort-keys-fix/sort-keys-fix
|
|
26
|
+
key: {
|
|
27
|
+
_hash: 1
|
|
28
|
+
},
|
|
29
|
+
name: `${collectionName}.IX__hash`
|
|
30
|
+
}
|
|
31
|
+
];
|
|
32
|
+
}, "getPayloadsIndexes");
|
|
33
|
+
const MongoDBArchivistBase = MongoDBModuleMixin(AbstractArchivist);
|
|
34
|
+
class MongoDBArchivist extends MongoDBArchivistBase {
|
|
35
|
+
static {
|
|
36
|
+
__name(this, "MongoDBArchivist");
|
|
37
|
+
}
|
|
38
|
+
static configSchemas = [
|
|
39
|
+
MongoDBArchivistConfigSchema,
|
|
40
|
+
ArchivistConfigSchema
|
|
41
|
+
];
|
|
42
|
+
queries = [
|
|
43
|
+
ArchivistInsertQuerySchema,
|
|
44
|
+
...super.queries
|
|
45
|
+
];
|
|
46
|
+
async head() {
|
|
47
|
+
const head = await (await this.payloads.find({})).sort({
|
|
48
|
+
_timestamp: -1
|
|
49
|
+
}).limit(1).toArray();
|
|
50
|
+
return head[0] ? PayloadWrapper.wrap(head[0]).body() : void 0;
|
|
51
|
+
}
|
|
52
|
+
async getHandler(hashes) {
|
|
53
|
+
const payloads = hashes.map((_hash) => this.payloads.findOne({
|
|
54
|
+
_hash
|
|
55
|
+
}));
|
|
56
|
+
const bws = hashes.map((_hash) => this.boundWitnesses.findOne({
|
|
57
|
+
_hash
|
|
58
|
+
}));
|
|
59
|
+
const gets = await Promise.allSettled([
|
|
60
|
+
payloads,
|
|
61
|
+
bws
|
|
62
|
+
].flat());
|
|
63
|
+
const succeeded = gets.reduce(fulfilledValues, []);
|
|
64
|
+
return succeeded.filter(exists).map(toReturnValue);
|
|
65
|
+
}
|
|
66
|
+
async insertHandler(payloads) {
|
|
67
|
+
const [bw, p] = await validByType(payloads);
|
|
68
|
+
const boundWitnesses = await Promise.all(bw.map((x) => toBoundWitnessWithMeta(x)));
|
|
69
|
+
const payloadsWithMeta = await Promise.all(p.map((x) => toPayloadWithMeta(x)));
|
|
70
|
+
if (boundWitnesses.length) {
|
|
71
|
+
const boundWitnessesResult = await this.boundWitnesses.insertMany(boundWitnesses);
|
|
72
|
+
if (!boundWitnessesResult.acknowledged || boundWitnessesResult.insertedCount !== boundWitnesses.length)
|
|
73
|
+
throw new Error("MongoDBDeterministicArchivist: Error inserting BoundWitnesses");
|
|
74
|
+
}
|
|
75
|
+
if (payloadsWithMeta.length) {
|
|
76
|
+
const payloadsResult = await this.payloads.insertMany(payloadsWithMeta);
|
|
77
|
+
if (!payloadsResult.acknowledged || payloadsResult.insertedCount !== payloadsWithMeta.length)
|
|
78
|
+
throw new Error("MongoDBDeterministicArchivist: Error inserting Payloads");
|
|
79
|
+
}
|
|
80
|
+
return payloads ?? [];
|
|
81
|
+
}
|
|
82
|
+
async startHandler() {
|
|
83
|
+
await super.startHandler();
|
|
84
|
+
await this.boundWitnesses.useCollection(async (collection) => {
|
|
85
|
+
const { collectionName } = collection;
|
|
86
|
+
const indexes = getBoundWitnessesIndexes(collectionName);
|
|
87
|
+
await collection.createIndexes(indexes);
|
|
88
|
+
});
|
|
89
|
+
await this.payloads.useCollection(async (collection) => {
|
|
90
|
+
const { collectionName } = collection;
|
|
91
|
+
const indexes = getPayloadsIndexes(collectionName);
|
|
92
|
+
await collection.createIndexes(indexes);
|
|
93
|
+
});
|
|
94
|
+
return true;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
export {
|
|
98
|
+
MongoDBArchivist
|
|
99
|
+
};
|
|
100
|
+
//# sourceMappingURL=Archivist.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/Archivist.ts"],"sourcesContent":["import { exists } from '@xylabs/exists'\nimport { fulfilledValues } from '@xylabs/promise'\nimport { AbstractArchivist } from '@xyo-network/archivist-abstract'\nimport { ArchivistConfigSchema, ArchivistInsertQuerySchema } from '@xyo-network/archivist-model'\nimport { MongoDBArchivistConfigSchema } from '@xyo-network/archivist-model-mongodb'\nimport { CollectionIndexFunction, MongoDBModuleMixin } from '@xyo-network/module-abstract-mongodb'\nimport { PayloadWithPartialMeta } from '@xyo-network/node-core-model'\nimport { Payload } from '@xyo-network/payload-model'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\nimport { IndexDescription } from 'mongodb'\n\nimport { toBoundWitnessWithMeta, toPayloadWithMeta, toReturnValue, validByType } from './lib'\n\nconst getBoundWitnessesIndexes: CollectionIndexFunction = (collectionName: string): IndexDescription[] => {\n return [\n {\n // eslint-disable-next-line sort-keys-fix/sort-keys-fix\n key: { _hash: 1 },\n name: `${collectionName}.IX__hash`,\n },\n ]\n}\n\nconst getPayloadsIndexes: CollectionIndexFunction = (collectionName: string): IndexDescription[] => {\n return [\n {\n // eslint-disable-next-line sort-keys-fix/sort-keys-fix\n key: { _hash: 1 },\n name: `${collectionName}.IX__hash`,\n },\n ]\n}\n\nconst MongoDBArchivistBase = MongoDBModuleMixin(AbstractArchivist)\n\nexport class MongoDBArchivist extends MongoDBArchivistBase {\n static override configSchemas = [MongoDBArchivistConfigSchema, ArchivistConfigSchema]\n\n override readonly queries: string[] = [ArchivistInsertQuerySchema, ...super.queries]\n\n override async head(): Promise<Payload | undefined> {\n const head = await (await this.payloads.find({})).sort({ _timestamp: -1 }).limit(1).toArray()\n return head[0] ? PayloadWrapper.wrap(head[0]).body() : undefined\n }\n\n protected override async getHandler(hashes: string[]): Promise<Payload[]> {\n const payloads = hashes.map((_hash) => this.payloads.findOne({ _hash }))\n const bws = hashes.map((_hash) => this.boundWitnesses.findOne({ _hash }))\n const gets = await Promise.allSettled([payloads, bws].flat())\n const succeeded = gets.reduce<(PayloadWithPartialMeta | null)[]>(fulfilledValues, []) as Payload[]\n return succeeded.filter(exists).map(toReturnValue)\n }\n\n protected override async insertHandler(payloads?: Payload[]): Promise<Payload[]> {\n const [bw, p] = await validByType(payloads)\n const boundWitnesses = await Promise.all(bw.map((x) => toBoundWitnessWithMeta(x)))\n const payloadsWithMeta = await Promise.all(p.map((x) => toPayloadWithMeta(x)))\n if (boundWitnesses.length) {\n const boundWitnessesResult = await this.boundWitnesses.insertMany(boundWitnesses)\n if (!boundWitnessesResult.acknowledged || boundWitnessesResult.insertedCount !== boundWitnesses.length)\n throw new Error('MongoDBDeterministicArchivist: Error inserting BoundWitnesses')\n }\n if (payloadsWithMeta.length) {\n const payloadsResult = await this.payloads.insertMany(payloadsWithMeta)\n if (!payloadsResult.acknowledged || payloadsResult.insertedCount !== payloadsWithMeta.length)\n throw new Error('MongoDBDeterministicArchivist: Error inserting Payloads')\n }\n return payloads ?? []\n }\n\n protected override async startHandler() {\n await super.startHandler()\n await this.boundWitnesses.useCollection(async (collection) => {\n const { collectionName } = collection\n const indexes = getBoundWitnessesIndexes(collectionName)\n await collection.createIndexes(indexes)\n })\n await this.payloads.useCollection(async (collection) => {\n const { collectionName } = collection\n const indexes = getPayloadsIndexes(collectionName)\n await collection.createIndexes(indexes)\n })\n return true\n }\n}\n"],"mappings":"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","names":["exists","fulfilledValues","AbstractArchivist","ArchivistConfigSchema","ArchivistInsertQuerySchema","MongoDBArchivistConfigSchema","MongoDBModuleMixin","PayloadWrapper","toBoundWitnessWithMeta","toPayloadWithMeta","toReturnValue","validByType","getBoundWitnessesIndexes","collectionName","key","_hash","name","getPayloadsIndexes","MongoDBArchivistBase","MongoDBArchivist","configSchemas","queries","head","payloads","find","sort","_timestamp","limit","toArray","wrap","body","undefined","getHandler","hashes","map","findOne","bws","boundWitnesses","gets","Promise","allSettled","flat","succeeded","reduce","filter","insertHandler","bw","p","all","x","payloadsWithMeta","length","boundWitnessesResult","insertMany","acknowledged","insertedCount","Error","payloadsResult","startHandler","useCollection","collection","indexes","createIndexes"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,sCAAsC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,sCAAsC,CAAA"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __copyProps = (to, from, except, desc) => {
|
|
7
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
+
for (let key of __getOwnPropNames(from))
|
|
9
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
+
}
|
|
12
|
+
return to;
|
|
13
|
+
};
|
|
14
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
15
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
16
|
+
var src_exports = {};
|
|
17
|
+
module.exports = __toCommonJS(src_exports);
|
|
18
|
+
__reExport(src_exports, require("./Archivist"), module.exports);
|
|
19
|
+
__reExport(src_exports, require("@xyo-network/archivist-model-mongodb"), module.exports);
|
|
20
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
21
|
+
0 && (module.exports = {
|
|
22
|
+
...require("./Archivist"),
|
|
23
|
+
...require("@xyo-network/archivist-model-mongodb")
|
|
24
|
+
});
|
|
25
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts"],"sourcesContent":["export * from './Archivist'\nexport * from '@xyo-network/archivist-model-mongodb'\n"],"mappings":";;;;;;;;;;;;;;;AAAA;;wBAAc,wBAAd;AACA,wBAAc,iDADd;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts"],"sourcesContent":["export * from './Archivist'\nexport * from '@xyo-network/archivist-model-mongodb'\n"],"mappings":"AAAA,cAAc;AACd,cAAc;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAA;AACxC,cAAc,qBAAqB,CAAA;AACnC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAA;AACxC,cAAc,qBAAqB,CAAA;AACnC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __copyProps = (to, from, except, desc) => {
|
|
7
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
+
for (let key of __getOwnPropNames(from))
|
|
9
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
+
}
|
|
12
|
+
return to;
|
|
13
|
+
};
|
|
14
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
15
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
16
|
+
var lib_exports = {};
|
|
17
|
+
module.exports = __toCommonJS(lib_exports);
|
|
18
|
+
__reExport(lib_exports, require("./toBoundWitnessWithMeta"), module.exports);
|
|
19
|
+
__reExport(lib_exports, require("./toPayloadWithMeta"), module.exports);
|
|
20
|
+
__reExport(lib_exports, require("./toReturnValue"), module.exports);
|
|
21
|
+
__reExport(lib_exports, require("./validByType"), module.exports);
|
|
22
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
23
|
+
0 && (module.exports = {
|
|
24
|
+
...require("./toBoundWitnessWithMeta"),
|
|
25
|
+
...require("./toPayloadWithMeta"),
|
|
26
|
+
...require("./toReturnValue"),
|
|
27
|
+
...require("./validByType")
|
|
28
|
+
});
|
|
29
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/index.ts"],"sourcesContent":["export * from './toBoundWitnessWithMeta'\nexport * from './toPayloadWithMeta'\nexport * from './toReturnValue'\nexport * from './validByType'\n"],"mappings":";;;;;;;;;;;;;;;AAAA;;wBAAc,qCAAd;AACA,wBAAc,gCADd;AAEA,wBAAc,4BAFd;AAGA,wBAAc,0BAHd;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/index.ts"],"sourcesContent":["export * from './toBoundWitnessWithMeta'\nexport * from './toPayloadWithMeta'\nexport * from './toReturnValue'\nexport * from './validByType'\n"],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;","names":[]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { QueryBoundWitnessWrapper } from '@xyo-network/boundwitness-builder';
|
|
2
|
+
import { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper';
|
|
3
|
+
import { BoundWitnessWithMeta } from '@xyo-network/node-core-model';
|
|
4
|
+
export declare const toBoundWitnessWithMeta: (wrapper: BoundWitnessWrapper | QueryBoundWitnessWrapper) => Promise<BoundWitnessWithMeta>;
|
|
5
|
+
//# sourceMappingURL=toBoundWitnessWithMeta.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toBoundWitnessWithMeta.d.ts","sourceRoot":"","sources":["../../../src/lib/toBoundWitnessWithMeta.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAA;AAE5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAEnE,eAAO,MAAM,sBAAsB,YAAmB,mBAAmB,GAAG,wBAAwB,KAAG,QAAQ,oBAAoB,CAGlI,CAAA"}
|