@prosopo/types-database 4.0.6 → 4.8.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.
Files changed (46) hide show
  1. package/.turbo/turbo-build$colon$cjs.log +16 -12
  2. package/.turbo/turbo-build$colon$tsc.log +44 -0
  3. package/.turbo/turbo-build.log +21 -13
  4. package/CHANGELOG.md +581 -0
  5. package/dist/cjs/index.cjs +6 -7
  6. package/dist/cjs/types/bannedDomain.cjs +8 -0
  7. package/dist/cjs/types/client.cjs +77 -5
  8. package/dist/cjs/types/index.cjs +6 -7
  9. package/dist/cjs/types/provider.cjs +312 -86
  10. package/dist/cjs/types/spamEmailDomain.cjs +8 -0
  11. package/dist/index.d.ts +2 -0
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.js +8 -9
  14. package/dist/index.js.map +1 -0
  15. package/dist/types/bannedDomain.d.ts +15 -0
  16. package/dist/types/bannedDomain.d.ts.map +1 -0
  17. package/dist/types/bannedDomain.js +8 -0
  18. package/dist/types/bannedDomain.js.map +1 -0
  19. package/dist/types/captcha.d.ts +18 -0
  20. package/dist/types/captcha.d.ts.map +1 -0
  21. package/dist/types/captcha.js.map +1 -0
  22. package/dist/types/client.d.ts +370 -0
  23. package/dist/types/client.d.ts.map +1 -0
  24. package/dist/types/client.js +78 -6
  25. package/dist/types/client.js.map +1 -0
  26. package/dist/types/index.d.ts +8 -0
  27. package/dist/types/index.d.ts.map +1 -0
  28. package/dist/types/index.js +8 -9
  29. package/dist/types/index.js.map +1 -0
  30. package/dist/types/mongo.d.ts +13 -0
  31. package/dist/types/mongo.d.ts.map +1 -0
  32. package/dist/types/mongo.js.map +1 -0
  33. package/dist/types/provider.d.ts +298 -0
  34. package/dist/types/provider.d.ts.map +1 -0
  35. package/dist/types/provider.js +314 -88
  36. package/dist/types/provider.js.map +1 -0
  37. package/dist/types/spamEmailDomain.d.ts +15 -0
  38. package/dist/types/spamEmailDomain.d.ts.map +1 -0
  39. package/dist/types/spamEmailDomain.js +8 -0
  40. package/dist/types/spamEmailDomain.js.map +1 -0
  41. package/dist/types/userAgent.d.ts +31 -0
  42. package/dist/types/userAgent.d.ts.map +1 -0
  43. package/dist/types/userAgent.js.map +1 -0
  44. package/package.json +11 -8
  45. package/vite.cjs.config.ts +1 -1
  46. package/vite.esm.config.ts +1 -1
@@ -1,29 +1,18 @@
1
1
  import { TranslationKeysSchema } from "@prosopo/locale";
2
- import { Tier, CaptchaStatus, CaptchaSolutionSchema, ScheduledTaskStatus, ScheduledTaskNames, CaptchaType, ContextType } from "@prosopo/types";
2
+ import { Tier, IpAddressType, CaptchaLabel, CaptchaStatus, ScheduledTaskStatus, ScheduledTaskNames, ModeEnum, CaptchaType, DecisionMachineLanguage, DecisionMachineRuntime, DecisionMachineScope, ContextType } from "@prosopo/types";
3
3
  import { Schema } from "mongoose";
4
- import { object, nativeEnum, bigint, string, array, number, date, boolean, any } from "zod";
4
+ import { object, any, nativeEnum, date } from "zod";
5
5
  import { UserSettingsSchema } from "./client.js";
6
6
  const ONE_HOUR = 60 * 60;
7
7
  const ONE_DAY = ONE_HOUR * 24;
8
8
  const ONE_WEEK = ONE_DAY * 7;
9
9
  const ONE_MONTH = ONE_WEEK * 4;
10
- const TEN_MINUTES = 10 * 60;
11
10
  const ClientRecordSchema = new Schema({
12
11
  account: String,
13
12
  settings: UserSettingsSchema,
14
13
  tier: { type: String, enum: Tier, required: true }
15
14
  });
16
15
  ClientRecordSchema.index({ account: 1 });
17
- var IpAddressType = /* @__PURE__ */ ((IpAddressType2) => {
18
- IpAddressType2["v4"] = "v4";
19
- IpAddressType2["v6"] = "v6";
20
- return IpAddressType2;
21
- })(IpAddressType || {});
22
- const CompositeIpAddressSchema = object({
23
- lower: bigint(),
24
- upper: bigint().optional(),
25
- type: nativeEnum(IpAddressType)
26
- });
27
16
  const CompositeIpAddressRecordSchemaObj = {
28
17
  lower: {
29
18
  // INT64 isn't enough capable - it reserves extra bits for the sign bit, etc, so Decimal128 guarantees no overflow
@@ -41,38 +30,6 @@ const CompositeIpAddressRecordSchemaObj = {
41
30
  },
42
31
  type: { type: String, enum: IpAddressType, required: true }
43
32
  };
44
- const parseMongooseCompositeIpAddress = (ip) => {
45
- return {
46
- lower: BigInt(ip.lower.$numberDecimal ?? ip.lower),
47
- upper: ip.upper ? BigInt(ip.upper?.$numberDecimal ?? ip.upper) : void 0,
48
- type: ip.type
49
- };
50
- };
51
- const CaptchaResultSchema = object({
52
- status: nativeEnum(CaptchaStatus),
53
- reason: TranslationKeysSchema.optional(),
54
- error: string().optional()
55
- });
56
- const UserCommitmentSchema = object({
57
- userAccount: string(),
58
- dappAccount: string(),
59
- datasetId: string(),
60
- providerAccount: string(),
61
- id: string(),
62
- result: CaptchaResultSchema,
63
- userSignature: string(),
64
- ipAddress: CompositeIpAddressSchema,
65
- providedIp: CompositeIpAddressSchema.optional(),
66
- headers: object({}).catchall(string()),
67
- ja4: string(),
68
- userSubmitted: boolean(),
69
- serverChecked: boolean(),
70
- storedAtTimestamp: date().optional(),
71
- requestedAtTimestamp: date(),
72
- lastUpdatedTimestamp: date().optional(),
73
- sessionId: string().optional(),
74
- coords: array(array(array(number()))).optional()
75
- });
76
33
  const CaptchaRecordSchema = new Schema({
77
34
  captchaId: { type: String, required: true },
78
35
  captchaContentId: { type: String, required: true },
@@ -120,26 +77,171 @@ const PoWCaptchaRecordSchema = new Schema({
120
77
  type: new Schema(CompositeIpAddressRecordSchemaObj, { _id: false }),
121
78
  required: false
122
79
  },
80
+ metadata: {
81
+ type: new Schema(
82
+ { email: { type: String, required: false } },
83
+ { _id: false }
84
+ ),
85
+ required: false
86
+ },
87
+ clientMetaData: {
88
+ type: new Schema({ hp: { type: String, required: false } }, { _id: false }),
89
+ required: false
90
+ },
123
91
  headers: { type: Object, required: true },
124
92
  ja4: { type: String, required: true },
125
93
  userSignature: { type: String, required: false },
126
94
  userSubmitted: { type: Boolean, required: true },
127
95
  serverChecked: { type: Boolean, required: true },
128
96
  storedAtTimestamp: { type: Date, required: false, expires: ONE_MONTH },
129
- geolocation: { type: String, required: false },
130
- vpn: { type: Boolean, required: false },
97
+ // See `StoredCaptcha.pendingStage` `true` while the record has
98
+ // unstaged changes. Indexed via a tiny partial index so the
99
+ // StoreCommitmentsExternal sweep scans only pending rows instead of
100
+ // the whole collection.
101
+ pendingStage: { type: Boolean, required: false },
102
+ // Full ipinfo payload. Replaces the flat `vpn`, `countryCode`,
103
+ // `geolocation` and other per-flag fields — consumers narrow on
104
+ // `ipInfo.isValid` and read whichever sub-field they need.
105
+ ipInfo: { type: Object, required: false },
131
106
  parsedUserAgentInfo: { type: Object, required: false },
132
107
  sessionId: {
133
108
  type: String,
134
109
  required: false
135
110
  },
136
- coords: { type: [[[Number]]], required: false }
111
+ coords: { type: [[[Number]]], required: false },
112
+ // Current behavioral data storage format (packed)
113
+ deviceCapability: { type: String, required: false },
114
+ behavioralDataPacked: {
115
+ type: {
116
+ c1: { type: [Schema.Types.Mixed], required: true },
117
+ c2: { type: [Schema.Types.Mixed], required: true },
118
+ c3: { type: [Schema.Types.Mixed], required: true },
119
+ d: { type: String, required: true }
120
+ },
121
+ required: false
122
+ },
123
+ providerSignature: { type: String, required: true },
124
+ // Internal ML labelling applied by superadmins via the audit page.
125
+ label: { type: String, enum: Object.values(CaptchaLabel), required: false },
126
+ labelReason: { type: String, required: false },
127
+ labelledBy: { type: String, required: false },
128
+ labelledAt: { type: Date, required: false }
137
129
  });
138
130
  PoWCaptchaRecordSchema.index({ challenge: 1 });
139
- PoWCaptchaRecordSchema.index({ storedAtTimestamp: 1, lastUpdatedTimestamp: 1 });
131
+ PoWCaptchaRecordSchema.index({ label: 1, dappAccount: 1 });
132
+ PoWCaptchaRecordSchema.index({ lastUpdatedTimestamp: 1 });
140
133
  PoWCaptchaRecordSchema.index({ dappAccount: 1, requestedAtTimestamp: 1 });
141
134
  PoWCaptchaRecordSchema.index({ "ipAddress.lower": 1 });
142
135
  PoWCaptchaRecordSchema.index({ "ipAddress.upper": 1 });
136
+ PoWCaptchaRecordSchema.index({ "result.reason": 1 });
137
+ PoWCaptchaRecordSchema.index({ "ipInfo.countryCode": 1 });
138
+ PoWCaptchaRecordSchema.index({ "ipInfo.isVPN": 1 });
139
+ PoWCaptchaRecordSchema.index({ ipInfo: 1 });
140
+ PoWCaptchaRecordSchema.index({ parsedUserAgentInfo: 1 });
141
+ PoWCaptchaRecordSchema.index(
142
+ { pendingStage: 1 },
143
+ {
144
+ name: "pendingStage_partial",
145
+ partialFilterExpression: { pendingStage: true }
146
+ }
147
+ );
148
+ const PuzzleCaptchaRecordSchema = new Schema({
149
+ challenge: { type: String, required: true },
150
+ dappAccount: { type: String, required: true },
151
+ userAccount: { type: String, required: true },
152
+ requestedAtTimestamp: { type: Date, required: true },
153
+ lastUpdatedTimestamp: { type: Date, required: false },
154
+ result: {
155
+ status: { type: String, enum: CaptchaStatus, required: true },
156
+ reason: {
157
+ type: String,
158
+ enum: TranslationKeysSchema.options,
159
+ required: false
160
+ },
161
+ error: { type: String, required: false }
162
+ },
163
+ targetX: { type: Number, required: true },
164
+ targetY: { type: Number, required: true },
165
+ originX: { type: Number, required: true },
166
+ originY: { type: Number, required: true },
167
+ tolerance: { type: Number, required: true },
168
+ puzzleEvents: {
169
+ type: [
170
+ new Schema(
171
+ {
172
+ x: { type: Number, required: true },
173
+ y: { type: Number, required: true },
174
+ t: { type: Number, required: true }
175
+ },
176
+ { _id: false }
177
+ )
178
+ ],
179
+ required: false
180
+ },
181
+ ipAddress: CompositeIpAddressRecordSchemaObj,
182
+ providedIp: {
183
+ type: new Schema(CompositeIpAddressRecordSchemaObj, { _id: false }),
184
+ required: false
185
+ },
186
+ metadata: {
187
+ type: new Schema(
188
+ { email: { type: String, required: false } },
189
+ { _id: false }
190
+ ),
191
+ required: false
192
+ },
193
+ clientMetaData: {
194
+ type: new Schema({ hp: { type: String, required: false } }, { _id: false }),
195
+ required: false
196
+ },
197
+ headers: { type: Object, required: true },
198
+ ja4: { type: String, required: true },
199
+ userSignature: { type: String, required: false },
200
+ userSubmitted: { type: Boolean, required: true },
201
+ serverChecked: { type: Boolean, required: true },
202
+ storedAtTimestamp: { type: Date, required: false, expires: ONE_MONTH },
203
+ // See `StoredCaptcha.pendingStage`.
204
+ pendingStage: { type: Boolean, required: false },
205
+ // Full ipinfo payload. Replaces the flat `vpn`, `countryCode`,
206
+ // `geolocation` and other per-flag fields — consumers narrow on
207
+ // `ipInfo.isValid` and read whichever sub-field they need.
208
+ ipInfo: { type: Object, required: false },
209
+ parsedUserAgentInfo: { type: Object, required: false },
210
+ sessionId: {
211
+ type: String,
212
+ required: false
213
+ },
214
+ coords: { type: [[[Number]]], required: false },
215
+ // Current behavioral data storage format (packed)
216
+ deviceCapability: { type: String, required: false },
217
+ behavioralDataPacked: {
218
+ type: {
219
+ c1: { type: [Schema.Types.Mixed], required: true },
220
+ c2: { type: [Schema.Types.Mixed], required: true },
221
+ c3: { type: [Schema.Types.Mixed], required: true },
222
+ d: { type: String, required: true }
223
+ },
224
+ required: false
225
+ },
226
+ providerSignature: { type: String, required: true }
227
+ });
228
+ PuzzleCaptchaRecordSchema.index({ challenge: 1 });
229
+ PuzzleCaptchaRecordSchema.index({ lastUpdatedTimestamp: 1 });
230
+ PuzzleCaptchaRecordSchema.index({ dappAccount: 1, requestedAtTimestamp: 1 });
231
+ PuzzleCaptchaRecordSchema.index({ "ipAddress.lower": 1 });
232
+ PuzzleCaptchaRecordSchema.index({ "ipAddress.upper": 1 });
233
+ PuzzleCaptchaRecordSchema.index({ "result.reason": 1 });
234
+ PuzzleCaptchaRecordSchema.index({ "ipInfo.countryCode": 1 });
235
+ PuzzleCaptchaRecordSchema.index({ "ipInfo.isVPN": 1 });
236
+ PuzzleCaptchaRecordSchema.index({ ipInfo: 1 });
237
+ PuzzleCaptchaRecordSchema.index({ parsedUserAgentInfo: 1 });
238
+ PuzzleCaptchaRecordSchema.index(
239
+ { pendingStage: 1 },
240
+ {
241
+ name: "pendingStage_partial",
242
+ partialFilterExpression: { pendingStage: true }
243
+ }
244
+ );
143
245
  const UserCommitmentRecordSchema = new Schema({
144
246
  userAccount: { type: String, required: true },
145
247
  dappAccount: { type: String, required: true },
@@ -160,6 +262,17 @@ const UserCommitmentRecordSchema = new Schema({
160
262
  type: new Schema(CompositeIpAddressRecordSchemaObj, { _id: false }),
161
263
  required: false
162
264
  },
265
+ metadata: {
266
+ type: new Schema(
267
+ { email: { type: String, required: false } },
268
+ { _id: false }
269
+ ),
270
+ required: false
271
+ },
272
+ clientMetaData: {
273
+ type: new Schema({ hp: { type: String, required: false } }, { _id: false }),
274
+ required: false
275
+ },
163
276
  headers: { type: Object, required: true },
164
277
  ja4: { type: String, required: true },
165
278
  userSignature: { type: String, required: true },
@@ -168,23 +281,63 @@ const UserCommitmentRecordSchema = new Schema({
168
281
  storedAtTimestamp: { type: Date, required: false, expires: ONE_MONTH },
169
282
  requestedAtTimestamp: { type: Date, required: true },
170
283
  lastUpdatedTimestamp: { type: Date, required: false },
171
- geolocation: { type: String, required: false },
172
- vpn: { type: Boolean, required: false },
284
+ // See `StoredCaptcha.pendingStage`.
285
+ pendingStage: { type: Boolean, required: false },
286
+ // Full ipinfo payload. Replaces the flat `vpn`, `countryCode`,
287
+ // `geolocation` and other per-flag fields — consumers narrow on
288
+ // `ipInfo.isValid` and read whichever sub-field they need.
289
+ ipInfo: { type: Object, required: false },
173
290
  parsedUserAgentInfo: { type: Object, required: false },
174
291
  sessionId: {
175
292
  type: String,
176
293
  required: false
177
294
  },
178
- coords: { type: [[[Number]]], required: false }
295
+ coords: { type: [[[Number]]], required: false },
296
+ // Pending request fields for image captcha workflow
297
+ pending: { type: Boolean, required: true },
298
+ salt: { type: String, required: true },
299
+ requestHash: { type: String, required: true },
300
+ deadlineTimestamp: { type: Date, required: true },
301
+ threshold: { type: Number, required: true },
302
+ // Current behavioral data storage format (packed)
303
+ deviceCapability: { type: String, required: false },
304
+ behavioralDataPacked: {
305
+ type: {
306
+ c1: { type: [Schema.Types.Mixed], required: true },
307
+ c2: { type: [Schema.Types.Mixed], required: true },
308
+ c3: { type: [Schema.Types.Mixed], required: true },
309
+ d: { type: String, required: true }
310
+ },
311
+ required: false
312
+ },
313
+ // Internal ML labelling applied by superadmins via the audit page.
314
+ label: { type: String, enum: Object.values(CaptchaLabel), required: false },
315
+ labelReason: { type: String, required: false },
316
+ labelledBy: { type: String, required: false },
317
+ labelledAt: { type: Date, required: false }
179
318
  });
180
319
  UserCommitmentRecordSchema.index({ id: -1 });
320
+ UserCommitmentRecordSchema.index({ label: 1, dappAccount: 1 });
181
321
  UserCommitmentRecordSchema.index({
182
- storedAtTimestamp: 1,
183
322
  lastUpdatedTimestamp: 1
184
323
  });
185
324
  UserCommitmentRecordSchema.index({ userAccount: 1, dappAccount: 1 });
186
325
  UserCommitmentRecordSchema.index({ "ipAddress.lower": 1 });
187
326
  UserCommitmentRecordSchema.index({ "ipAddress.upper": 1 });
327
+ UserCommitmentRecordSchema.index({ "result.reason": 1 });
328
+ UserCommitmentRecordSchema.index({ "ipInfo.countryCode": 1 });
329
+ UserCommitmentRecordSchema.index({ "ipInfo.isVPN": 1 });
330
+ UserCommitmentRecordSchema.index({ requestHash: -1 });
331
+ UserCommitmentRecordSchema.index({ pending: 1 });
332
+ UserCommitmentRecordSchema.index({ ipInfo: 1 });
333
+ UserCommitmentRecordSchema.index({ parsedUserAgentInfo: 1 });
334
+ UserCommitmentRecordSchema.index(
335
+ { pendingStage: 1 },
336
+ {
337
+ name: "pendingStage_partial",
338
+ partialFilterExpression: { pendingStage: true }
339
+ }
340
+ );
188
341
  const DatasetRecordSchema = new Schema({
189
342
  contentTree: { type: [[String]], required: true },
190
343
  datasetContentId: { type: String, required: true },
@@ -202,12 +355,6 @@ const SolutionRecordSchema = new Schema({
202
355
  solution: { type: [String], required: true }
203
356
  });
204
357
  SolutionRecordSchema.index({ captchaId: 1 });
205
- const UserSolutionSchema = CaptchaSolutionSchema.extend({
206
- processed: boolean(),
207
- checked: boolean(),
208
- commitmentId: string(),
209
- createdAt: date()
210
- });
211
358
  const UserSolutionRecordSchema = new Schema(
212
359
  {
213
360
  captchaId: { type: String, required: true },
@@ -223,25 +370,6 @@ const UserSolutionRecordSchema = new Schema(
223
370
  );
224
371
  UserSolutionRecordSchema.index({ captchaId: 1 });
225
372
  UserSolutionRecordSchema.index({ commitmentId: -1 });
226
- const UserCommitmentWithSolutionsSchema = UserCommitmentSchema.extend({
227
- captchas: array(UserSolutionSchema)
228
- });
229
- const PendingRecordSchema = new Schema({
230
- accountId: { type: String, required: true },
231
- pending: { type: Boolean, required: true },
232
- salt: { type: String, required: true },
233
- requestHash: { type: String, required: true },
234
- deadlineTimestamp: { type: Number, required: true },
235
- // unix timestamp
236
- requestedAtTimestamp: { type: Date, required: true, expires: ONE_WEEK },
237
- ipAddress: CompositeIpAddressRecordSchemaObj,
238
- sessionId: {
239
- type: String,
240
- required: false
241
- },
242
- threshold: { type: Number, required: true, default: 0.8 }
243
- });
244
- PendingRecordSchema.index({ requestHash: -1 });
245
373
  const ScheduledTaskSchema = object({
246
374
  processName: nativeEnum(ScheduledTaskNames),
247
375
  datetime: date(),
@@ -283,28 +411,98 @@ const SessionRecordSchema = new Schema({
283
411
  timeout: { type: Number, required: false },
284
412
  accessPolicy: { type: Number, required: false },
285
413
  unverifiedHost: { type: Number, required: false },
286
- webView: { type: Number, required: false }
414
+ webView: { type: Number, required: false },
415
+ triggeredDetectors: { type: [Number], required: false }
287
416
  },
288
417
  providerSelectEntropy: { type: Number, required: true },
289
418
  ipAddress: CompositeIpAddressRecordSchemaObj,
290
419
  captchaType: { type: String, enum: CaptchaType, required: true },
420
+ mode: { type: String, enum: ModeEnum, required: false },
291
421
  solvedImagesCount: { type: Number, required: false },
292
422
  powDifficulty: { type: Number, required: false },
293
423
  storedAtTimestamp: { type: Date, required: false, expires: ONE_DAY },
294
424
  lastUpdatedTimestamp: { type: Date, required: false },
425
+ // See `StoredCaptcha.pendingStage` — same semantics on Session records.
426
+ pendingStage: { type: Boolean, required: false },
295
427
  deleted: { type: Boolean, required: false },
296
428
  userSitekeyIpHash: { type: String, required: false },
297
429
  webView: { type: Boolean, required: true, default: false },
298
430
  iFrame: { type: Boolean, required: true, default: false },
299
431
  decryptedHeadHash: { type: String, required: false, default: "" },
300
- reason: { type: String, required: false }
432
+ siteKey: { type: String, required: false },
433
+ reason: { type: String, required: false },
434
+ blocked: { type: Boolean, required: false },
435
+ // Full ipinfo payload — replaces flat `countryCode` / `geolocation`
436
+ // fields. Mirrors the captcha record schemas (PoW / Puzzle /
437
+ // UserCommitment).
438
+ ipInfo: { type: Object, required: false },
439
+ headers: { type: Object, required: false },
440
+ result: {
441
+ type: new Schema(
442
+ {
443
+ status: {
444
+ type: String,
445
+ enum: Object.values(CaptchaStatus),
446
+ required: true
447
+ },
448
+ reason: { type: String, required: false },
449
+ error: { type: String, required: false }
450
+ },
451
+ { _id: false }
452
+ ),
453
+ required: false
454
+ },
455
+ userSubmitted: { type: Boolean, required: false },
456
+ serverChecked: { type: Boolean, required: false },
457
+ // WASM SIMD CPU fingerprint readings collected by the catcher client.
458
+ // Stored as a free-form Mixed sub-document because the shape is a
459
+ // discriminated union and the dataset is still evolving — Zod validates
460
+ // at the boundary, Mongoose just persists it.
461
+ simdReadings: { type: Schema.Types.Mixed, required: false },
462
+ // Stage at which the SIMD readings first arrived on this session
463
+ // (frictionless / challenge / submit). First-hop-wins.
464
+ simdReadingsStage: { type: String, required: false },
465
+ // DNS observation merge target. Populated by
466
+ // POST /v1/prosopo/provider/admin/dns/event from the dns-event
467
+ // sidecar (see types/provider/database.ts → Session.dnsEvent).
468
+ dnsEvent: {
469
+ type: new Schema(
470
+ {
471
+ resolverIp: { type: String, required: false },
472
+ peerIp: { type: String, required: false },
473
+ pathValid: { type: Boolean, required: false },
474
+ receivedAt: { type: Date, required: true }
475
+ },
476
+ { _id: false }
477
+ ),
478
+ required: false
479
+ }
301
480
  });
302
481
  SessionRecordSchema.index({ createdAt: 1 });
303
482
  SessionRecordSchema.index({ deleted: 1 });
483
+ SessionRecordSchema.index({ blocked: 1 });
304
484
  SessionRecordSchema.index({ sessionId: 1 }, { unique: true });
305
485
  SessionRecordSchema.index({ userSitekeyIpHash: 1 });
306
486
  SessionRecordSchema.index({ providerSelectEntropy: 1 });
307
487
  SessionRecordSchema.index({ token: 1 });
488
+ SessionRecordSchema.index({ siteKey: 1 }, { background: true, sparse: true });
489
+ SessionRecordSchema.index({
490
+ createdAt: 1,
491
+ captchaType: 1,
492
+ "scoreComponents.baseScore": 1
493
+ });
494
+ SessionRecordSchema.index({ createdAt: 1, deleted: 1 });
495
+ SessionRecordSchema.index(
496
+ { "result.status": 1 },
497
+ { background: true, sparse: true }
498
+ );
499
+ SessionRecordSchema.index(
500
+ { pendingStage: 1 },
501
+ {
502
+ name: "pendingStage_partial",
503
+ partialFilterExpression: { pendingStage: true }
504
+ }
505
+ );
308
506
  const DetectorRecordSchema = new Schema({
309
507
  createdAt: { type: Date, required: true },
310
508
  detectorKey: { type: String, required: true },
@@ -312,6 +510,39 @@ const DetectorRecordSchema = new Schema({
312
510
  });
313
511
  DetectorRecordSchema.index({ createdAt: 1 }, { unique: true });
314
512
  DetectorRecordSchema.index({ expiresAt: 1 }, { expireAfterSeconds: 0 });
513
+ const DecisionMachineArtifactRecordSchema = new Schema({
514
+ scope: {
515
+ type: String,
516
+ enum: Object.values(DecisionMachineScope),
517
+ required: true
518
+ },
519
+ dappAccount: { type: String, required: false },
520
+ runtime: {
521
+ type: String,
522
+ enum: Object.values(DecisionMachineRuntime),
523
+ required: true
524
+ },
525
+ language: {
526
+ type: String,
527
+ enum: Object.values(DecisionMachineLanguage),
528
+ required: false
529
+ },
530
+ source: { type: String, required: true },
531
+ name: { type: String, required: false },
532
+ version: { type: String, required: false },
533
+ captchaType: {
534
+ type: String,
535
+ enum: [CaptchaType.pow, CaptchaType.image],
536
+ required: false
537
+ },
538
+ createdAt: { type: Date, required: true },
539
+ updatedAt: { type: Date, required: true }
540
+ });
541
+ DecisionMachineArtifactRecordSchema.index(
542
+ { scope: 1, dappAccount: 1 },
543
+ { unique: true }
544
+ );
545
+ DecisionMachineArtifactRecordSchema.index({ updatedAt: -1 });
315
546
  const ClientContextEntropyRecordSchema = new Schema(
316
547
  {
317
548
  account: { type: String, required: true },
@@ -333,20 +564,15 @@ export {
333
564
  ClientContextEntropyRecordSchema,
334
565
  ClientRecordSchema,
335
566
  CompositeIpAddressRecordSchemaObj,
336
- CompositeIpAddressSchema,
337
567
  DatasetRecordSchema,
568
+ DecisionMachineArtifactRecordSchema,
338
569
  DetectorRecordSchema,
339
- IpAddressType,
340
- PendingRecordSchema,
341
570
  PoWCaptchaRecordSchema,
571
+ PuzzleCaptchaRecordSchema,
342
572
  ScheduledTaskRecordSchema,
343
573
  ScheduledTaskSchema,
344
574
  SessionRecordSchema,
345
575
  SolutionRecordSchema,
346
576
  UserCommitmentRecordSchema,
347
- UserCommitmentSchema,
348
- UserCommitmentWithSolutionsSchema,
349
- UserSolutionRecordSchema,
350
- UserSolutionSchema,
351
- parseMongooseCompositeIpAddress
577
+ UserSolutionRecordSchema
352
578
  };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/types/provider.ts"],"names":[],"mappings":"AAeA,OAAO,EAAuB,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EACN,YAAY,EACZ,WAAW,EAGX,WAAW,EAEX,uBAAuB,EACvB,sBAAsB,EACtB,oBAAoB,EAEpB,aAAa,EACb,QAAQ,EAOR,IAAI,GAGJ,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAKN,aAAa,EAWb,kBAAkB,EAElB,mBAAmB,GACnB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAA4C,MAAM,EAAE,MAAM,UAAU,CAAC;AAC5E,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAwB,MAAM,KAAK,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAQjD,MAAM,QAAQ,GAAG,EAAE,GAAG,EAAE,CAAC;AACzB,MAAM,OAAO,GAAG,QAAQ,GAAG,EAAE,CAAC;AAC9B,MAAM,QAAQ,GAAG,OAAO,GAAG,CAAC,CAAC;AAC7B,MAAM,SAAS,GAAG,QAAQ,GAAG,CAAC,CAAC;AAE/B,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,MAAM,CAAe;IAC1D,OAAO,EAAE,MAAM;IACf,QAAQ,EAAE,kBAAkB;IAC5B,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;CAClD,CAAC,CAAC;AAEH,kBAAkB,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;AAEzC,MAAM,CAAC,MAAM,iCAAiC,GAAG;IAChD,KAAK,EAAE;QAEN,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU;QAC7B,QAAQ,EAAE,IAAI;QAEd,GAAG,EAAE,CAAC,KAA+B,EAAE,EAAE,CACxC,QAAQ,KAAK,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK;KACrD;IACD,KAAK,EAAE;QAEN,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU;QAC7B,QAAQ,EAAE,KAAK;QAEf,GAAG,EAAE,CAAC,KAA+B,EAAE,EAAE,CACxC,QAAQ,KAAK,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK;KACrD;IACD,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE;CAC3D,CAAC;AAqBF,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,MAAM,CAAU;IACtD,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC3C,gBAAgB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAClD,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;IAC3C,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC3C,gBAAgB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAClD,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE;IACzC,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACxC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACtC,KAAK,EAAE;QACN,IAAI,EAAE;YACL,IAAI,MAAM,CACT;gBACC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACtC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACtC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;aACtC,EACD,EAAE,GAAG,EAAE,KAAK,EAAE,CACd;SACD;QACD,QAAQ,EAAE,IAAI;KACd;CACD,CAAC,CAAC;AAEH,mBAAmB,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;AAE5C,mBAAmB,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;AAE5C,mBAAmB,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;AAEvD,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,MAAM,CAAmB;IAClE,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC3C,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC7C,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC7C,oBAAoB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;IACpD,oBAAoB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;IACrD,MAAM,EAAE;QACP,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC7D,MAAM,EAAE;YACP,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,qBAAqB,CAAC,OAAO;YACnC,QAAQ,EAAE,KAAK;SACf;QACD,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;KACxC;IACD,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC5C,SAAS,EAAE,iCAAiC;IAC5C,UAAU,EAAE;QACX,IAAI,EAAE,IAAI,MAAM,CAAC,iCAAiC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;QACnE,QAAQ,EAAE,KAAK;KACf;IACD,QAAQ,EAAE;QACT,IAAI,EAAE,IAAI,MAAM,CACf,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAC5C,EAAE,GAAG,EAAE,KAAK,EAAE,CACd;QACD,QAAQ,EAAE,KAAK;KACf;IACD,cAAc,EAAE;QACf,IAAI,EAAE,IAAI,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;QAC3E,QAAQ,EAAE,KAAK;KACf;IACD,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACzC,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACrC,aAAa,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;IAChD,aAAa,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE;IAChD,aAAa,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE;IAChD,iBAAiB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE;IAKtE,YAAY,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE;IAIhD,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;IACzC,mBAAmB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;IACtD,SAAS,EAAE;QACV,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,KAAK;KACf;IACD,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;IAE/C,gBAAgB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;IACnD,oBAAoB,EAAE;QACrB,IAAI,EAAE;YACL,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;YAClD,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;YAClD,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;YAClD,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;SACnC;QACD,QAAQ,EAAE,KAAK;KACf;IACD,iBAAiB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAEnD,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;IAC3E,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;IAC9C,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;IAC7C,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;CAC3C,CAAC,CAAC;AAGH,sBAAsB,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;AAE/C,sBAAsB,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC;AAC3D,sBAAsB,CAAC,KAAK,CAAC,EAAE,oBAAoB,EAAE,CAAC,EAAE,CAAC,CAAC;AAC1D,sBAAsB,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,oBAAoB,EAAE,CAAC,EAAE,CAAC,CAAC;AAC1E,sBAAsB,CAAC,KAAK,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC,CAAC;AACvD,sBAAsB,CAAC,KAAK,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC,CAAC;AACvD,sBAAsB,CAAC,KAAK,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,CAAC,CAAC;AACrD,sBAAsB,CAAC,KAAK,CAAC,EAAE,oBAAoB,EAAE,CAAC,EAAE,CAAC,CAAC;AAC1D,sBAAsB,CAAC,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC,CAAC;AAOpD,sBAAsB,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;AAC5C,sBAAsB,CAAC,KAAK,CAAC,EAAE,mBAAmB,EAAE,CAAC,EAAE,CAAC,CAAC;AAKzD,sBAAsB,CAAC,KAAK,CAC3B,EAAE,YAAY,EAAE,CAAC,EAAE,EACnB;IACC,IAAI,EAAE,sBAAsB;IAC5B,uBAAuB,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;CAC/C,CACD,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,IAAI,MAAM,CAAsB;IACxE,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC3C,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC7C,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC7C,oBAAoB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;IACpD,oBAAoB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;IACrD,MAAM,EAAE;QACP,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC7D,MAAM,EAAE;YACP,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,qBAAqB,CAAC,OAAO;YACnC,QAAQ,EAAE,KAAK;SACf;QACD,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;KACxC;IACD,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACzC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACzC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACzC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACzC,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC3C,YAAY,EAAE;QACb,IAAI,EAAE;YACL,IAAI,MAAM,CACT;gBACC,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACnC,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACnC,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;aACnC,EACD,EAAE,GAAG,EAAE,KAAK,EAAE,CACd;SACD;QACD,QAAQ,EAAE,KAAK;KACf;IACD,SAAS,EAAE,iCAAiC;IAC5C,UAAU,EAAE;QACX,IAAI,EAAE,IAAI,MAAM,CAAC,iCAAiC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;QACnE,QAAQ,EAAE,KAAK;KACf;IACD,QAAQ,EAAE;QACT,IAAI,EAAE,IAAI,MAAM,CACf,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAC5C,EAAE,GAAG,EAAE,KAAK,EAAE,CACd;QACD,QAAQ,EAAE,KAAK;KACf;IACD,cAAc,EAAE;QACf,IAAI,EAAE,IAAI,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;QAC3E,QAAQ,EAAE,KAAK;KACf;IACD,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACzC,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACrC,aAAa,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;IAChD,aAAa,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE;IAChD,aAAa,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE;IAChD,iBAAiB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE;IAEtE,YAAY,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE;IAIhD,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;IACzC,mBAAmB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;IACtD,SAAS,EAAE;QACV,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,KAAK;KACf;IACD,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;IAE/C,gBAAgB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;IACnD,oBAAoB,EAAE;QACrB,IAAI,EAAE;YACL,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;YAClD,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;YAClD,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;YAClD,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;SACnC;QACD,QAAQ,EAAE,KAAK;KACf;IACD,iBAAiB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;CACnD,CAAC,CAAC;AAGH,yBAAyB,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;AAClD,yBAAyB,CAAC,KAAK,CAAC,EAAE,oBAAoB,EAAE,CAAC,EAAE,CAAC,CAAC;AAC7D,yBAAyB,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,oBAAoB,EAAE,CAAC,EAAE,CAAC,CAAC;AAC7E,yBAAyB,CAAC,KAAK,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC,CAAC;AAC1D,yBAAyB,CAAC,KAAK,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC,CAAC;AAC1D,yBAAyB,CAAC,KAAK,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,CAAC,CAAC;AACxD,yBAAyB,CAAC,KAAK,CAAC,EAAE,oBAAoB,EAAE,CAAC,EAAE,CAAC,CAAC;AAC7D,yBAAyB,CAAC,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC,CAAC;AACvD,yBAAyB,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;AAC/C,yBAAyB,CAAC,KAAK,CAAC,EAAE,mBAAmB,EAAE,CAAC,EAAE,CAAC,CAAC;AAC5D,yBAAyB,CAAC,KAAK,CAC9B,EAAE,YAAY,EAAE,CAAC,EAAE,EACnB;IACC,IAAI,EAAE,sBAAsB;IAC5B,uBAAuB,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;CAC/C,CACD,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,MAAM,CAAuB;IAC1E,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC7C,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC7C,eAAe,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACjD,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC3C,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACpC,MAAM,EAAE;QACP,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC7D,MAAM,EAAE;YACP,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,qBAAqB,CAAC,OAAO;YACnC,QAAQ,EAAE,KAAK;SACf;QACD,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;KACxC;IACD,SAAS,EAAE,iCAAiC;IAC5C,UAAU,EAAE;QACX,IAAI,EAAE,IAAI,MAAM,CAAC,iCAAiC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;QACnE,QAAQ,EAAE,KAAK;KACf;IACD,QAAQ,EAAE;QACT,IAAI,EAAE,IAAI,MAAM,CACf,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAC5C,EAAE,GAAG,EAAE,KAAK,EAAE,CACd;QACD,QAAQ,EAAE,KAAK;KACf;IACD,cAAc,EAAE;QACf,IAAI,EAAE,IAAI,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;QAC3E,QAAQ,EAAE,KAAK;KACf;IACD,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACzC,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACrC,aAAa,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC/C,aAAa,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE;IAChD,aAAa,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE;IAChD,iBAAiB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE;IACtE,oBAAoB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;IACpD,oBAAoB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;IAErD,YAAY,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE;IAIhD,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;IACzC,mBAAmB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;IACtD,SAAS,EAAE;QACV,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,KAAK;KACf;IACD,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;IAE/C,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC1C,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACtC,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC7C,iBAAiB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;IACjD,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAE3C,gBAAgB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;IACnD,oBAAoB,EAAE;QACrB,IAAI,EAAE;YACL,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;YAClD,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;YAClD,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;YAClD,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;SACnC;QACD,QAAQ,EAAE,KAAK;KACf;IAED,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;IAC3E,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;IAC9C,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;IAC7C,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;CAC3C,CAAC,CAAC;AAEH,0BAA0B,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AAE7C,0BAA0B,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC;AAC/D,0BAA0B,CAAC,KAAK,CAAC;IAChC,oBAAoB,EAAE,CAAC;CACvB,CAAC,CAAC;AACH,0BAA0B,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC;AACrE,0BAA0B,CAAC,KAAK,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC,CAAC;AAC3D,0BAA0B,CAAC,KAAK,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC,CAAC;AAC3D,0BAA0B,CAAC,KAAK,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,CAAC,CAAC;AACzD,0BAA0B,CAAC,KAAK,CAAC,EAAE,oBAAoB,EAAE,CAAC,EAAE,CAAC,CAAC;AAC9D,0BAA0B,CAAC,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC,CAAC;AACxD,0BAA0B,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AACtD,0BAA0B,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;AACjD,0BAA0B,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;AAChD,0BAA0B,CAAC,KAAK,CAAC,EAAE,mBAAmB,EAAE,CAAC,EAAE,CAAC,CAAC;AAC7D,0BAA0B,CAAC,KAAK,CAC/B,EAAE,YAAY,EAAE,CAAC,EAAE,EACnB;IACC,IAAI,EAAE,sBAAsB;IAC5B,uBAAuB,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;CAC/C,CACD,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,MAAM,CAAiB;IAC7D,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;IACjD,gBAAgB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAClD,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC3C,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACxC,YAAY,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;CAClD,CAAC,CAAC;AAEH,mBAAmB,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;AAE5C,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,MAAM,CAAiB;IAC9D,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC3C,gBAAgB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAClD,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC3C,gBAAgB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAClD,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACtC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;CAC5C,CAAC,CAAC;AAEH,oBAAoB,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;AAI7C,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,MAAM,CACjD;IACC,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC3C,gBAAgB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAClD,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACtC,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC5C,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC5C,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC1C,YAAY,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC9C,SAAS,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE;CAChE,EACD,EAAE,GAAG,EAAE,KAAK,EAAE,CACd,CAAC;AAEF,wBAAwB,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;AAEjD,wBAAwB,CAAC,KAAK,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AAErD,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC;IACzC,WAAW,EAAE,UAAU,CAAC,kBAAkB,CAAC;IAC3C,QAAQ,EAAE,IAAI,EAAE;IAChB,OAAO,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE;IAC1B,MAAM,EAAE,UAAU,CAAC,mBAAmB,CAAC;IACvC,MAAM,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE;QACtB,KAAK,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE;KACvB,CAAC,CAAC,QAAQ,EAAE;CACb,CAAC,CAAC;AAQH,MAAM,CAAC,MAAM,yBAAyB,GAAG,IAAI,MAAM,CAAwB;IAC1E,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,IAAI,EAAE;IACvE,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE;IAC3D,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;IACxC,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,IAAI,EAAE;IACnE,MAAM,EAAE;QACP,IAAI,EAAE,IAAI,MAAM,CACf;YACC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACxC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;SACvC,EACD,EAAE,GAAG,EAAE,KAAK,EAAE,CACd;QACD,QAAQ,EAAE,KAAK;KACf;CACD,CAAC,CAAC;AACH,yBAAyB,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC;AACpD,yBAAyB,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;AAC/D,yBAAyB,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;AAIvD,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,MAAM,CAAgB;IAC5D,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC3C,SAAS,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;IACzC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACvC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACvC,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC3C,eAAe,EAAE;QAChB,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC3C,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;QACzC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;QAC1C,YAAY,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;QAC/C,cAAc,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;QACjD,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;QAC1C,kBAAkB,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;KACvD;IACD,qBAAqB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACvD,SAAS,EAAE,iCAAiC;IAC5C,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE;IAChE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE;IACvD,iBAAiB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;IACpD,aAAa,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;IAChD,iBAAiB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE;IACpE,oBAAoB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;IAErD,YAAY,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE;IAChD,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE;IAC3C,iBAAiB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;IACpD,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE;IAC1D,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE;IACzD,iBAAiB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;IACjE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;IAC1C,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;IACzC,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE;IAI3C,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;IACzC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;IAC1C,MAAM,EAAE;QACP,IAAI,EAAE,IAAI,MAAM,CACf;YACC,MAAM,EAAE;gBACP,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC;gBAClC,QAAQ,EAAE,IAAI;aACd;YACD,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACzC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;SACxC,EACD,EAAE,GAAG,EAAE,KAAK,EAAE,CACd;QACD,QAAQ,EAAE,KAAK;KACf;IACD,aAAa,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE;IACjD,aAAa,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE;IAKjD,YAAY,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;IAG3D,iBAAiB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;IAIpD,QAAQ,EAAE;QACT,IAAI,EAAE,IAAI,MAAM,CACf;YACC,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YAC7C,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACzC,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE;YAC7C,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;SAC1C,EACD,EAAE,GAAG,EAAE,KAAK,EAAE,CACd;QACD,QAAQ,EAAE,KAAK;KACf;CAC0B,CAAC,CAAC;AAE9B,mBAAmB,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;AAC5C,mBAAmB,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;AAC1C,mBAAmB,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;AAC1C,mBAAmB,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,mBAAmB,CAAC,KAAK,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC,CAAC;AACpD,mBAAmB,CAAC,KAAK,CAAC,EAAE,qBAAqB,EAAE,CAAC,EAAE,CAAC,CAAC;AACxD,mBAAmB,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;AACxC,mBAAmB,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AAE9E,mBAAmB,CAAC,KAAK,CAAC;IACzB,SAAS,EAAE,CAAC;IACZ,WAAW,EAAE,CAAC;IACd,2BAA2B,EAAE,CAAC;CAC9B,CAAC,CAAC;AACH,mBAAmB,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;AAExD,mBAAmB,CAAC,KAAK,CACxB,EAAE,eAAe,EAAE,CAAC,EAAE,EACtB,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAClC,CAAC;AAGF,mBAAmB,CAAC,KAAK,CACxB,EAAE,YAAY,EAAE,CAAC,EAAE,EACnB;IACC,IAAI,EAAE,sBAAsB;IAC5B,uBAAuB,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;CAC/C,CACD,CAAC;AAGF,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,MAAM,CAAiB;IAC9D,SAAS,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;IACzC,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC7C,SAAS,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;CAC1C,CAAC,CAAC;AACH,oBAAoB,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AAE/D,oBAAoB,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,kBAAkB,EAAE,CAAC,EAAE,CAAC,CAAC;AAIxE,MAAM,CAAC,MAAM,mCAAmC,GAC/C,IAAI,MAAM,CAAgC;IACzC,KAAK,EAAE;QACN,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC;QACzC,QAAQ,EAAE,IAAI;KACd;IACD,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;IAC9C,OAAO,EAAE;QACR,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC;QAC3C,QAAQ,EAAE,IAAI;KACd;IACD,QAAQ,EAAE;QACT,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,uBAAuB,CAAC;QAC5C,QAAQ,EAAE,KAAK;KACf;IACD,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACxC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;IACvC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;IAC1C,WAAW,EAAE;QACZ,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,WAAW,CAAC,KAAK,CAAC;QAC1C,QAAQ,EAAE,KAAK;KACf;IACD,SAAS,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;IACzC,SAAS,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;CACzC,CAAC,CAAC;AAEJ,mCAAmC,CAAC,KAAK,CACxC,EAAE,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,EAC5B,EAAE,MAAM,EAAE,IAAI,EAAE,CAChB,CAAC;AACF,mCAAmC,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AAI7D,MAAM,CAAC,MAAM,gCAAgC,GAC5C,IAAI,MAAM,CACT;IACC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACzC,WAAW,EAAE;QACZ,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC;QAChC,QAAQ,EAAE,IAAI;KACd;IACD,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;CACzC,EACD,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,CACpD,CAAC;AACH,gCAAgC,CAAC,KAAK,CACrC,EAAE,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,EAC9B,EAAE,MAAM,EAAE,IAAI,EAAE,CAChB,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type mongoose from "mongoose";
2
+ export type SpamEmailDomain = {
3
+ domain: string;
4
+ };
5
+ export type SpamEmailDomainRecord = mongoose.Document & SpamEmailDomain;
6
+ export declare const SpamEmailDomainRecordSchema: mongoose.Schema<SpamEmailDomainRecord, mongoose.Model<SpamEmailDomainRecord, any, any, any, mongoose.Document<unknown, any, SpamEmailDomainRecord> & mongoose.Document<unknown, any, any> & SpamEmailDomain & Required<{
7
+ _id: unknown;
8
+ }> & {
9
+ __v: number;
10
+ }, any>, {}, {}, {}, {}, mongoose.DefaultSchemaOptions, SpamEmailDomainRecord, mongoose.Document<unknown, {}, mongoose.FlatRecord<SpamEmailDomainRecord>> & mongoose.FlatRecord<SpamEmailDomainRecord> & Required<{
11
+ _id: unknown;
12
+ }> & {
13
+ __v: number;
14
+ }>;
15
+ //# sourceMappingURL=spamEmailDomain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spamEmailDomain.d.ts","sourceRoot":"","sources":["../../src/types/spamEmailDomain.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AAGrC,MAAM,MAAM,eAAe,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC,QAAQ,GAAG,eAAe,CAAC;AAExE,eAAO,MAAM,2BAA2B;;;;;;;;EAEtC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { Schema } from "mongoose";
2
+ const SpamEmailDomainRecordSchema = new Schema({
3
+ domain: { type: String, required: true, unique: true }
4
+ });
5
+ SpamEmailDomainRecordSchema.index({ domain: 1 });
6
+ export {
7
+ SpamEmailDomainRecordSchema
8
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spamEmailDomain.js","sourceRoot":"","sources":["../../src/types/spamEmailDomain.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAQlC,MAAM,CAAC,MAAM,2BAA2B,GAAG,IAAI,MAAM,CAAwB;IAC5E,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;CACtD,CAAC,CAAC;AAEH,2BAA2B,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC"}
@@ -0,0 +1,31 @@
1
+ export interface BrowserInfo {
2
+ name: string;
3
+ version?: string;
4
+ major?: string;
5
+ type?: string;
6
+ }
7
+ export interface CPUInfo {
8
+ architecture?: string;
9
+ }
10
+ export interface DeviceInfo {
11
+ vendor?: string;
12
+ model?: string;
13
+ type?: string;
14
+ }
15
+ export interface EngineInfo {
16
+ name?: string;
17
+ version?: string;
18
+ }
19
+ export interface OSInfo {
20
+ name: string;
21
+ version?: string;
22
+ }
23
+ export interface UserAgentInfo {
24
+ ua: string;
25
+ browser: BrowserInfo;
26
+ cpu: CPUInfo;
27
+ device: DeviceInfo;
28
+ engine: EngineInfo;
29
+ os: OSInfo;
30
+ }
31
+ //# sourceMappingURL=userAgent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"userAgent.d.ts","sourceRoot":"","sources":["../../src/types/userAgent.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,WAAW;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,OAAO;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,UAAU;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,MAAM;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,WAAW,CAAC;IACrB,GAAG,EAAE,OAAO,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,UAAU,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;CACX"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"userAgent.js","sourceRoot":"","sources":["../../src/types/userAgent.ts"],"names":[],"mappings":""}