@prosopo/types-database 3.0.9 → 3.0.10

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.
@@ -1,254 +1,279 @@
1
1
  import { TranslationKeysSchema } from "@prosopo/locale";
2
- import { CaptchaType, Tier } from "@prosopo/types";
3
- import { CaptchaSolutionSchema, CaptchaStatus, ScheduledTaskNames, ScheduledTaskStatus, TimestampSchema, } from "@prosopo/types";
4
- import mongoose from "mongoose";
5
- import { Schema } from "mongoose";
6
- import { any, array, bigint, boolean, nativeEnum, object, string, union, instanceof as zInstanceof, } from "zod";
2
+ import { Tier, CaptchaStatus, TimestampSchema, CaptchaSolutionSchema, ScheduledTaskStatus, ScheduledTaskNames, CaptchaType } from "@prosopo/types";
3
+ import mongoose, { Schema } from "mongoose";
4
+ import { object, string, nativeEnum, union, instanceof as _instanceof, boolean, bigint, array, any } from "zod";
7
5
  import { UserSettingsSchema } from "./client.js";
8
6
  const ONE_HOUR = 60 * 60;
9
7
  const ONE_DAY = ONE_HOUR * 24;
10
8
  const ONE_WEEK = ONE_DAY * 7;
11
9
  const ONE_MONTH = ONE_WEEK * 4;
12
10
  const TEN_MINUTES = 10 * 60;
13
- export const ClientRecordSchema = new Schema({
14
- account: String,
15
- settings: UserSettingsSchema,
16
- tier: { type: String, enum: Tier, required: true },
11
+ const ClientRecordSchema = new Schema({
12
+ account: String,
13
+ settings: UserSettingsSchema,
14
+ tier: { type: String, enum: Tier, required: true }
17
15
  });
18
16
  ClientRecordSchema.index({ account: 1 });
19
17
  const CaptchaResultSchema = object({
20
- status: nativeEnum(CaptchaStatus),
21
- reason: TranslationKeysSchema.optional(),
22
- error: string().optional(),
23
- });
24
- export const UserCommitmentSchema = object({
25
- userAccount: string(),
26
- dappAccount: string(),
27
- datasetId: string(),
28
- providerAccount: string(),
29
- id: string(),
30
- result: CaptchaResultSchema,
31
- userSignature: string(),
32
- ipAddress: bigint(),
33
- headers: object({}).catchall(string()),
34
- ja4: string(),
35
- userSubmitted: boolean(),
36
- serverChecked: boolean(),
37
- storedAtTimestamp: TimestampSchema.optional(),
38
- requestedAtTimestamp: TimestampSchema,
39
- lastUpdatedTimestamp: TimestampSchema.optional(),
40
- frictionlessTokenId: union([
41
- string(),
42
- zInstanceof(mongoose.Types.ObjectId),
43
- ]).optional(),
44
- });
45
- export const CaptchaRecordSchema = new Schema({
46
- captchaId: { type: String, required: true },
47
- captchaContentId: { type: String, required: true },
48
- assetURI: { type: String, required: false },
49
- datasetId: { type: String, required: true },
50
- datasetContentId: { type: String, required: true },
51
- solved: { type: Boolean, required: true },
52
- target: { type: String, required: true },
53
- salt: { type: String, required: true },
54
- items: {
55
- type: [
56
- new Schema({
57
- hash: { type: String, required: true },
58
- data: { type: String, required: true },
59
- type: { type: String, required: true },
60
- }, { _id: false }),
61
- ],
62
- required: true,
63
- },
18
+ status: nativeEnum(CaptchaStatus),
19
+ reason: TranslationKeysSchema.optional(),
20
+ error: string().optional()
21
+ });
22
+ const UserCommitmentSchema = object({
23
+ userAccount: string(),
24
+ dappAccount: string(),
25
+ datasetId: string(),
26
+ providerAccount: string(),
27
+ id: string(),
28
+ result: CaptchaResultSchema,
29
+ userSignature: string(),
30
+ ipAddress: bigint(),
31
+ headers: object({}).catchall(string()),
32
+ ja4: string(),
33
+ userSubmitted: boolean(),
34
+ serverChecked: boolean(),
35
+ storedAtTimestamp: TimestampSchema.optional(),
36
+ requestedAtTimestamp: TimestampSchema,
37
+ lastUpdatedTimestamp: TimestampSchema.optional(),
38
+ frictionlessTokenId: union([
39
+ string(),
40
+ _instanceof(mongoose.Types.ObjectId)
41
+ ]).optional()
42
+ });
43
+ const CaptchaRecordSchema = new Schema({
44
+ captchaId: { type: String, required: true },
45
+ captchaContentId: { type: String, required: true },
46
+ assetURI: { type: String, required: false },
47
+ datasetId: { type: String, required: true },
48
+ datasetContentId: { type: String, required: true },
49
+ solved: { type: Boolean, required: true },
50
+ target: { type: String, required: true },
51
+ salt: { type: String, required: true },
52
+ items: {
53
+ type: [
54
+ new Schema(
55
+ {
56
+ hash: { type: String, required: true },
57
+ data: { type: String, required: true },
58
+ type: { type: String, required: true }
59
+ },
60
+ { _id: false }
61
+ )
62
+ ],
63
+ required: true
64
+ }
64
65
  });
65
66
  CaptchaRecordSchema.index({ captchaId: 1 });
66
67
  CaptchaRecordSchema.index({ datasetId: 1 });
67
68
  CaptchaRecordSchema.index({ datasetId: 1, solved: 1 });
68
- export const PoWCaptchaRecordSchema = new Schema({
69
- challenge: { type: String, required: true },
70
- dappAccount: { type: String, required: true },
71
- userAccount: { type: String, required: true },
72
- requestedAtTimestamp: { type: Number, required: true },
73
- lastUpdatedTimestamp: { type: Number, required: false },
74
- result: {
75
- status: { type: String, enum: CaptchaStatus, required: true },
76
- reason: {
77
- type: String,
78
- enum: TranslationKeysSchema.options,
79
- required: false,
80
- },
81
- error: { type: String, required: false },
82
- },
83
- difficulty: { type: Number, required: true },
84
- ipAddress: { type: BigInt, required: true },
85
- headers: { type: Object, required: true },
86
- ja4: { type: String, required: true },
87
- userSignature: { type: String, required: false },
88
- userSubmitted: { type: Boolean, required: true },
89
- serverChecked: { type: Boolean, required: true },
90
- storedAtTimestamp: { type: Date, required: false, expires: ONE_MONTH },
91
- geolocation: { type: String, required: false },
92
- vpn: { type: Boolean, required: false },
93
- frictionlessTokenId: {
94
- type: mongoose.Schema.Types.ObjectId,
95
- required: false,
69
+ const PoWCaptchaRecordSchema = new Schema({
70
+ challenge: { type: String, required: true },
71
+ dappAccount: { type: String, required: true },
72
+ userAccount: { type: String, required: true },
73
+ requestedAtTimestamp: { type: Number, required: true },
74
+ lastUpdatedTimestamp: { type: Number, required: false },
75
+ result: {
76
+ status: { type: String, enum: CaptchaStatus, required: true },
77
+ reason: {
78
+ type: String,
79
+ enum: TranslationKeysSchema.options,
80
+ required: false
96
81
  },
82
+ error: { type: String, required: false }
83
+ },
84
+ difficulty: { type: Number, required: true },
85
+ ipAddress: { type: BigInt, required: true },
86
+ headers: { type: Object, required: true },
87
+ ja4: { type: String, required: true },
88
+ userSignature: { type: String, required: false },
89
+ userSubmitted: { type: Boolean, required: true },
90
+ serverChecked: { type: Boolean, required: true },
91
+ storedAtTimestamp: { type: Date, required: false, expires: ONE_MONTH },
92
+ geolocation: { type: String, required: false },
93
+ vpn: { type: Boolean, required: false },
94
+ frictionlessTokenId: {
95
+ type: mongoose.Schema.Types.ObjectId,
96
+ required: false
97
+ }
97
98
  });
98
99
  PoWCaptchaRecordSchema.index({ challenge: 1 });
99
100
  PoWCaptchaRecordSchema.index({ storedAtTimestamp: 1 });
100
101
  PoWCaptchaRecordSchema.index({ storedAtTimestamp: 1, lastUpdatedTimestamp: 1 });
101
102
  PoWCaptchaRecordSchema.index({ dappAccount: 1, requestedAtTimestamp: 1 });
102
- export const UserCommitmentRecordSchema = new Schema({
103
- userAccount: { type: String, required: true },
104
- dappAccount: { type: String, required: true },
105
- providerAccount: { type: String, required: true },
106
- datasetId: { type: String, required: true },
107
- id: { type: String, required: true },
108
- result: {
109
- status: { type: String, enum: CaptchaStatus, required: true },
110
- reason: {
111
- type: String,
112
- enum: TranslationKeysSchema.options,
113
- required: false,
114
- },
115
- error: { type: String, required: false },
116
- },
117
- ipAddress: { type: BigInt, required: true },
118
- headers: { type: Object, required: true },
119
- ja4: { type: String, required: true },
120
- userSignature: { type: String, required: true },
121
- userSubmitted: { type: Boolean, required: true },
122
- serverChecked: { type: Boolean, required: true },
123
- storedAtTimestamp: { type: Number, required: false },
124
- requestedAtTimestamp: { type: Number, required: true },
125
- lastUpdatedTimestamp: { type: Number, required: false },
126
- geolocation: { type: String, required: false },
127
- vpn: { type: Boolean, required: false },
128
- frictionlessTokenId: {
129
- type: mongoose.Schema.Types.ObjectId,
130
- required: false,
103
+ const UserCommitmentRecordSchema = new Schema({
104
+ userAccount: { type: String, required: true },
105
+ dappAccount: { type: String, required: true },
106
+ providerAccount: { type: String, required: true },
107
+ datasetId: { type: String, required: true },
108
+ id: { type: String, required: true },
109
+ result: {
110
+ status: { type: String, enum: CaptchaStatus, required: true },
111
+ reason: {
112
+ type: String,
113
+ enum: TranslationKeysSchema.options,
114
+ required: false
131
115
  },
116
+ error: { type: String, required: false }
117
+ },
118
+ ipAddress: { type: BigInt, required: true },
119
+ headers: { type: Object, required: true },
120
+ ja4: { type: String, required: true },
121
+ userSignature: { type: String, required: true },
122
+ userSubmitted: { type: Boolean, required: true },
123
+ serverChecked: { type: Boolean, required: true },
124
+ storedAtTimestamp: { type: Number, required: false },
125
+ requestedAtTimestamp: { type: Number, required: true },
126
+ lastUpdatedTimestamp: { type: Number, required: false },
127
+ geolocation: { type: String, required: false },
128
+ vpn: { type: Boolean, required: false },
129
+ frictionlessTokenId: {
130
+ type: mongoose.Schema.Types.ObjectId,
131
+ required: false
132
+ }
132
133
  });
133
134
  UserCommitmentRecordSchema.index({ id: -1 });
134
135
  UserCommitmentRecordSchema.index({ storedAtTimestamp: 1 });
135
136
  UserCommitmentRecordSchema.index({
136
- storedAtTimestamp: 1,
137
- lastUpdatedTimestamp: 1,
137
+ storedAtTimestamp: 1,
138
+ lastUpdatedTimestamp: 1
138
139
  });
139
140
  UserCommitmentRecordSchema.index({ userAccount: 1, dappAccount: 1 });
140
- export const DatasetRecordSchema = new Schema({
141
- contentTree: { type: [[String]], required: true },
142
- datasetContentId: { type: String, required: true },
143
- datasetId: { type: String, required: true },
144
- format: { type: String, required: true },
145
- solutionTree: { type: [[String]], required: true },
141
+ const DatasetRecordSchema = new Schema({
142
+ contentTree: { type: [[String]], required: true },
143
+ datasetContentId: { type: String, required: true },
144
+ datasetId: { type: String, required: true },
145
+ format: { type: String, required: true },
146
+ solutionTree: { type: [[String]], required: true }
146
147
  });
147
148
  DatasetRecordSchema.index({ datasetId: 1 });
148
- export const SolutionRecordSchema = new Schema({
149
- captchaId: { type: String, required: true },
150
- captchaContentId: { type: String, required: true },
151
- datasetId: { type: String, required: true },
152
- datasetContentId: { type: String, required: true },
153
- salt: { type: String, required: true },
154
- solution: { type: [String], required: true },
149
+ const SolutionRecordSchema = new Schema({
150
+ captchaId: { type: String, required: true },
151
+ captchaContentId: { type: String, required: true },
152
+ datasetId: { type: String, required: true },
153
+ datasetContentId: { type: String, required: true },
154
+ salt: { type: String, required: true },
155
+ solution: { type: [String], required: true }
155
156
  });
156
157
  SolutionRecordSchema.index({ captchaId: 1 });
157
- export const UserSolutionSchema = CaptchaSolutionSchema.extend({
158
- processed: boolean(),
159
- checked: boolean(),
160
- commitmentId: string(),
158
+ const UserSolutionSchema = CaptchaSolutionSchema.extend({
159
+ processed: boolean(),
160
+ checked: boolean(),
161
+ commitmentId: string()
161
162
  });
162
- export const UserSolutionRecordSchema = new Schema({
163
+ const UserSolutionRecordSchema = new Schema(
164
+ {
163
165
  captchaId: { type: String, required: true },
164
166
  captchaContentId: { type: String, required: true },
165
167
  salt: { type: String, required: true },
166
168
  solution: [{ type: String, required: true }],
167
169
  processed: { type: Boolean, required: true },
168
170
  checked: { type: Boolean, required: true },
169
- commitmentId: { type: String, required: true },
170
- }, { _id: false });
171
+ commitmentId: { type: String, required: true }
172
+ },
173
+ { _id: false }
174
+ );
171
175
  UserSolutionRecordSchema.index({ captchaId: 1 });
172
176
  UserSolutionRecordSchema.index({ commitmentId: -1 });
173
- export const UserCommitmentWithSolutionsSchema = UserCommitmentSchema.extend({
174
- captchas: array(UserSolutionSchema),
177
+ const UserCommitmentWithSolutionsSchema = UserCommitmentSchema.extend({
178
+ captchas: array(UserSolutionSchema)
175
179
  });
176
- export const PendingRecordSchema = new Schema({
177
- accountId: { type: String, required: true },
178
- pending: { type: Boolean, required: true },
179
- salt: { type: String, required: true },
180
- requestHash: { type: String, required: true },
181
- deadlineTimestamp: { type: Number, required: true },
182
- requestedAtTimestamp: { type: Date, required: true, expires: ONE_WEEK },
183
- ipAddress: { type: BigInt, required: true },
184
- frictionlessTokenId: {
185
- type: mongoose.Schema.Types.ObjectId,
186
- required: false,
187
- },
188
- threshold: { type: Number, required: true, default: 0.8 },
180
+ const PendingRecordSchema = new Schema({
181
+ accountId: { type: String, required: true },
182
+ pending: { type: Boolean, required: true },
183
+ salt: { type: String, required: true },
184
+ requestHash: { type: String, required: true },
185
+ deadlineTimestamp: { type: Number, required: true },
186
+ // unix timestamp
187
+ requestedAtTimestamp: { type: Date, required: true, expires: ONE_WEEK },
188
+ ipAddress: { type: BigInt, required: true },
189
+ frictionlessTokenId: {
190
+ type: mongoose.Schema.Types.ObjectId,
191
+ required: false
192
+ },
193
+ threshold: { type: Number, required: true, default: 0.8 }
189
194
  });
190
195
  PendingRecordSchema.index({ requestHash: -1 });
191
- export const ScheduledTaskSchema = object({
192
- processName: nativeEnum(ScheduledTaskNames),
193
- datetime: TimestampSchema,
194
- updated: TimestampSchema.optional(),
195
- status: nativeEnum(ScheduledTaskStatus),
196
- result: object({
197
- data: any().optional(),
198
- error: any().optional(),
199
- }).optional(),
200
- });
201
- export const ScheduledTaskRecordSchema = new Schema({
202
- processName: { type: String, enum: ScheduledTaskNames, required: true },
203
- datetime: { type: Date, required: true, expires: ONE_WEEK },
204
- updated: { type: Number, required: false },
205
- status: { type: String, enum: ScheduledTaskStatus, required: true },
206
- result: {
207
- type: new Schema({
208
- error: { type: String, required: false },
209
- data: { type: Object, required: false },
210
- }, { _id: false }),
211
- required: false,
212
- },
196
+ const ScheduledTaskSchema = object({
197
+ processName: nativeEnum(ScheduledTaskNames),
198
+ datetime: TimestampSchema,
199
+ updated: TimestampSchema.optional(),
200
+ status: nativeEnum(ScheduledTaskStatus),
201
+ result: object({
202
+ data: any().optional(),
203
+ error: any().optional()
204
+ }).optional()
205
+ });
206
+ const ScheduledTaskRecordSchema = new Schema({
207
+ processName: { type: String, enum: ScheduledTaskNames, required: true },
208
+ datetime: { type: Date, required: true, expires: ONE_WEEK },
209
+ updated: { type: Number, required: false },
210
+ status: { type: String, enum: ScheduledTaskStatus, required: true },
211
+ result: {
212
+ type: new Schema(
213
+ {
214
+ error: { type: String, required: false },
215
+ data: { type: Object, required: false }
216
+ },
217
+ { _id: false }
218
+ ),
219
+ required: false
220
+ }
213
221
  });
214
222
  ScheduledTaskRecordSchema.index({ processName: 1 });
215
223
  ScheduledTaskRecordSchema.index({ processName: 1, status: 1 });
216
224
  ScheduledTaskRecordSchema.index({ _id: 1, status: 1 });
217
- export const FrictionlessTokenRecordSchema = new Schema({
218
- token: { type: String, required: true, unique: true },
219
- score: { type: Number, required: true },
220
- threshold: { type: Number, required: true },
221
- scoreComponents: {
222
- baseScore: { type: Number, required: true },
223
- lScore: { type: Number, required: false },
224
- timeout: { type: Number, required: false },
225
- accessPolicy: { type: Number, required: false },
226
- },
227
- createdAt: { type: Date, default: Date.now, expires: ONE_DAY },
228
- storedAtTimestamp: { type: Date, required: false },
229
- lastUpdatedTimestamp: { type: Date, required: false },
225
+ const FrictionlessTokenRecordSchema = new Schema({
226
+ token: { type: String, required: true, unique: true },
227
+ score: { type: Number, required: true },
228
+ threshold: { type: Number, required: true },
229
+ scoreComponents: {
230
+ baseScore: { type: Number, required: true },
231
+ lScore: { type: Number, required: false },
232
+ timeout: { type: Number, required: false },
233
+ accessPolicy: { type: Number, required: false }
234
+ },
235
+ createdAt: { type: Date, default: Date.now, expires: ONE_DAY },
236
+ storedAtTimestamp: { type: Date, required: false },
237
+ lastUpdatedTimestamp: { type: Date, required: false }
230
238
  });
231
239
  FrictionlessTokenRecordSchema.index({ token: 1 }, { unique: true });
232
240
  FrictionlessTokenRecordSchema.index({ storedAtTimestamp: 1 });
233
- export const SessionRecordSchema = new Schema({
234
- sessionId: { type: String, required: true, unique: true },
235
- createdAt: { type: Date, required: true, expires: ONE_DAY },
236
- tokenId: {
237
- type: mongoose.Schema.Types.ObjectId,
238
- },
239
- captchaType: { type: String, enum: CaptchaType, required: true },
240
- storedAtTimestamp: { type: Date, required: false },
241
- lastUpdatedTimestamp: { type: Date, required: false },
242
- deleted: { type: Boolean, required: false },
241
+ const SessionRecordSchema = new Schema({
242
+ sessionId: { type: String, required: true, unique: true },
243
+ createdAt: { type: Date, required: true, expires: ONE_DAY },
244
+ tokenId: {
245
+ type: mongoose.Schema.Types.ObjectId
246
+ },
247
+ captchaType: { type: String, enum: CaptchaType, required: true },
248
+ storedAtTimestamp: { type: Date, required: false },
249
+ lastUpdatedTimestamp: { type: Date, required: false },
250
+ deleted: { type: Boolean, required: false }
243
251
  });
244
252
  SessionRecordSchema.index({ sessionId: 1 }, { unique: true });
245
253
  SessionRecordSchema.index({ storedAtTimestamp: 1 });
246
254
  SessionRecordSchema.index({ deleted: 1 });
247
- export const DetectorRecordSchema = new Schema({
248
- createdAt: { type: Date, required: true },
249
- detectorKey: { type: String, required: true },
250
- expiresAt: { type: Date, required: false, expires: 0 },
255
+ const DetectorRecordSchema = new Schema({
256
+ createdAt: { type: Date, required: true },
257
+ detectorKey: { type: String, required: true },
258
+ expiresAt: { type: Date, required: false, expires: 0 }
251
259
  });
252
260
  DetectorRecordSchema.index({ createdAt: 1 }, { unique: true });
253
261
  DetectorRecordSchema.index({ expiresAt: 1 }, { expireAfterSeconds: 0 });
254
- //# sourceMappingURL=provider.js.map
262
+ export {
263
+ CaptchaRecordSchema,
264
+ ClientRecordSchema,
265
+ DatasetRecordSchema,
266
+ DetectorRecordSchema,
267
+ FrictionlessTokenRecordSchema,
268
+ PendingRecordSchema,
269
+ PoWCaptchaRecordSchema,
270
+ ScheduledTaskRecordSchema,
271
+ ScheduledTaskSchema,
272
+ SessionRecordSchema,
273
+ SolutionRecordSchema,
274
+ UserCommitmentRecordSchema,
275
+ UserCommitmentSchema,
276
+ UserCommitmentWithSolutionsSchema,
277
+ UserSolutionRecordSchema,
278
+ UserSolutionSchema
279
+ };
package/package.json CHANGED
@@ -1,24 +1,28 @@
1
1
  {
2
2
  "name": "@prosopo/types-database",
3
- "version": "3.0.9",
3
+ "version": "3.0.10",
4
4
  "description": "Types for prosopo database",
5
- "main": "dist/index.js",
6
5
  "type": "module",
7
- "engines": {
8
- "node": "20",
9
- "npm": "10.8.2"
10
- },
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
11
8
  "exports": {
12
9
  ".": {
10
+ "types": "./dist/index.d.ts",
13
11
  "import": "./dist/index.js",
14
12
  "require": "./dist/cjs/index.cjs"
15
13
  }
16
14
  },
15
+ "engines": {
16
+ "node": "20",
17
+ "npm": "10.8.2"
18
+ },
17
19
  "scripts": {
18
- "test": "echo \"No test specified\"",
19
- "clean": "tsc --build --clean",
20
- "build": "tsc --build --verbose",
21
- "build:cjs": "npx vite --config vite.cjs.config.ts build"
20
+ "clean": "del-cli --verbose dist tsconfig.tsbuildinfo",
21
+ "build": "NODE_ENV=${NODE_ENV:-production}; vite build --config vite.esm.config.ts --mode $NODE_ENV",
22
+ "build:tsc": "tsc --build --verbose",
23
+ "build:cjs": "NODE_ENV=${NODE_ENV:-production}; vite build --config vite.cjs.config.ts --mode $NODE_ENV",
24
+ "typecheck": "tsc --build --declaration --emitDeclarationOnly",
25
+ "test": "echo no tests"
22
26
  },
23
27
  "repository": {
24
28
  "type": "git",
@@ -31,21 +35,21 @@
31
35
  },
32
36
  "homepage": "https://github.com/prosopo/captcha#readme",
33
37
  "dependencies": {
34
- "@prosopo/common": "3.0.2",
35
- "@prosopo/types": "3.0.3",
36
- "@prosopo/user-access-policy": "3.3.0",
38
+ "@prosopo/common": "3.1.0",
39
+ "@prosopo/types": "3.0.4",
40
+ "@prosopo/user-access-policy": "3.3.1",
37
41
  "@typegoose/auto-increment": "4.13.0",
38
42
  "axios": "1.10.0",
39
43
  "esbuild": "0.25.6",
40
44
  "express": "4.21.2",
41
45
  "mongodb": "6.9.0",
42
- "mongoose": "8.13.0",
46
+ "mongoose": "8.6.2",
47
+ "zod": "3.23.8",
48
+ "@prosopo/config": "3.1.1",
43
49
  "openpgp": "5.11.3",
44
- "webpack-dev-server": "5.2.2",
45
- "zod": "3.23.8"
50
+ "webpack-dev-server": "5.2.2"
46
51
  },
47
52
  "devDependencies": {
48
- "@prosopo/config": "3.1.0",
49
53
  "@vitest/coverage-v8": "3.0.9",
50
54
  "concurrently": "9.0.1",
51
55
  "del-cli": "6.0.0",
@@ -16,7 +16,7 @@ import { ViteCommonJSConfig } from "@prosopo/config";
16
16
 
17
17
  export default function () {
18
18
  return ViteCommonJSConfig(
19
- "types-database",
20
- path.resolve("./tsconfig.cjs.json"),
19
+ path.basename("."),
20
+ path.resolve("./tsconfig.json"),
21
21
  );
22
22
  }
@@ -0,0 +1,20 @@
1
+ // Copyright 2021-2025 Prosopo (UK) Ltd.
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+
15
+ import path from "node:path";
16
+ import { ViteEsmConfig } from "@prosopo/config";
17
+
18
+ export default function () {
19
+ return ViteEsmConfig(path.basename("."), path.resolve("./tsconfig.json"));
20
+ }
package/dist/index.d.ts DELETED
@@ -1,3 +0,0 @@
1
- export * from "./types/index.js";
2
- export type { PendingCaptchaRequest } from "./provider/pendingCaptchaRequest.js";
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,cAAc,kBAAkB,CAAC;AACjC,YAAY,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC"}
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,cAAc,kBAAkB,CAAC"}
@@ -1,14 +0,0 @@
1
- import { ApiParams } from "@prosopo/types";
2
- import type { FrictionlessTokenId } from "../types/index.js";
3
- export interface PendingCaptchaRequest {
4
- accountId: string;
5
- pending: boolean;
6
- salt: string;
7
- [ApiParams.requestHash]: string;
8
- deadlineTimestamp: number;
9
- requestedAtTimestamp: number;
10
- ipAddress: bigint;
11
- frictionlessTokenId?: FrictionlessTokenId;
12
- threshold: number;
13
- }
14
- //# sourceMappingURL=pendingCaptchaRequest.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pendingCaptchaRequest.d.ts","sourceRoot":"","sources":["../../src/provider/pendingCaptchaRequest.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,SAAS,EAAuB,MAAM,gBAAgB,CAAC;AAChE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,MAAM,WAAW,qBAAqB;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAChC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,SAAS,EAAE,MAAM,CAAC;CAClB"}
@@ -1,2 +0,0 @@
1
- import { ApiParams } from "@prosopo/types";
2
- //# sourceMappingURL=pendingCaptchaRequest.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pendingCaptchaRequest.js","sourceRoot":"","sources":["../../src/provider/pendingCaptchaRequest.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,SAAS,EAAuB,MAAM,gBAAgB,CAAC"}
@@ -1,22 +0,0 @@
1
- import type { PoWCaptcha } from "@prosopo/types";
2
- import { type RootFilterQuery, Schema } from "mongoose";
3
- import type { IDatabase } from "./mongo.js";
4
- import { type PoWCaptchaRecord, type ScoreComponents, type SessionRecord, type UserCommitment, type UserCommitmentRecord } from "./provider.js";
5
- export type StoredSession = Pick<SessionRecord, "_id" | "sessionId" | "createdAt" | "captchaType" | "deleted" | "tokenId"> & {
6
- score: number;
7
- scoreComponents: ScoreComponents;
8
- threshold: number;
9
- };
10
- export declare const StoredSessionRecordSchema: Schema;
11
- export declare const StoredUserCommitmentRecordSchema: Schema;
12
- export declare const StoredPoWCaptchaRecordSchema: Schema;
13
- export interface ICaptchaDatabase extends IDatabase {
14
- saveCaptchas(sessionEvents: StoredSession[], imageCaptchaEvents: UserCommitmentRecord[], powCaptchaEvents: PoWCaptchaRecord[]): Promise<void>;
15
- getCaptchas(filter: RootFilterQuery<CaptchaProperties>, limit: number): Promise<{
16
- userCommitmentRecords: UserCommitmentRecord[];
17
- powCaptchaRecords: PoWCaptchaRecord[];
18
- }>;
19
- }
20
- export interface CaptchaProperties extends Partial<UserCommitment & PoWCaptcha> {
21
- }
22
- //# sourceMappingURL=captcha.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"captcha.d.ts","sourceRoot":"","sources":["../../src/types/captcha.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAEN,KAAK,gBAAgB,EAErB,KAAK,eAAe,EACpB,KAAK,aAAa,EAElB,KAAK,cAAc,EACnB,KAAK,oBAAoB,EAEzB,MAAM,eAAe,CAAC;AAEvB,MAAM,MAAM,aAAa,GAAG,IAAI,CAC/B,aAAa,EACb,KAAK,GAAG,WAAW,GAAG,WAAW,GAAG,aAAa,GAAG,SAAS,GAAG,SAAS,CACzE,GAAG;IACH,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,eAAe,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,MAStC,CAAC;AAEH,eAAO,MAAM,gCAAgC,EAAE,MAE7C,CAAC;AAGH,eAAO,MAAM,4BAA4B,EAAE,MAEzC,CAAC;AAOH,MAAM,WAAW,gBAAiB,SAAQ,SAAS;IAClD,YAAY,CACX,aAAa,EAAE,aAAa,EAAE,EAC9B,kBAAkB,EAAE,oBAAoB,EAAE,EAC1C,gBAAgB,EAAE,gBAAgB,EAAE,GAClC,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,WAAW,CACV,MAAM,EAAE,eAAe,CAAC,iBAAiB,CAAC,EAC1C,KAAK,EAAE,MAAM,GACX,OAAO,CAAC;QACV,qBAAqB,EAAE,oBAAoB,EAAE,CAAC;QAC9C,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;KACtC,CAAC,CAAC;CACH;AAED,MAAM,WAAW,iBAChB,SAAQ,OAAO,CAAC,cAAc,GAAG,UAAU,CAAC;CAAG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"captcha.js","sourceRoot":"","sources":["../../src/types/captcha.ts"],"names":[],"mappings":"AAeA,OAAO,EAAwB,MAAM,EAAE,MAAM,UAAU,CAAC;AAExD,OAAO,EACN,6BAA6B,EAE7B,sBAAsB,EAGtB,mBAAmB,EAGnB,0BAA0B,GAC1B,MAAM,eAAe,CAAC;AAWvB,MAAM,CAAC,MAAM,yBAAyB,GAAW,IAAI,MAAM,CAAC;IAC3D,SAAS,EAAE,mBAAmB,CAAC,GAAG,CAAC,SAAS;IAC5C,SAAS,EAAE,mBAAmB,CAAC,GAAG,CAAC,SAAS;IAC5C,WAAW,EAAE,mBAAmB,CAAC,GAAG,CAAC,WAAW;IAChD,OAAO,EAAE,mBAAmB,CAAC,GAAG,CAAC,OAAO;IACxC,OAAO,EAAE,mBAAmB,CAAC,GAAG,CAAC,OAAO;IACxC,KAAK,EAAE,6BAA6B,CAAC,GAAG,CAAC,KAAK;IAC9C,eAAe,EAAE,6BAA6B,CAAC,GAAG,CAAC,eAAe;IAClE,SAAS,EAAE,6BAA6B,CAAC,GAAG,CAAC,SAAS;CACtD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gCAAgC,GAAW,IAAI,MAAM,CAAC;IAClE,GAAG,0BAA0B,CAAC,GAAG;CACjC,CAAC,CAAC;AACH,gCAAgC,CAAC,KAAK,CAAC,EAAE,mBAAmB,EAAE,CAAC,EAAE,CAAC,CAAC;AAEnE,MAAM,CAAC,MAAM,4BAA4B,GAAW,IAAI,MAAM,CAAC;IAC9D,GAAG,sBAAsB,CAAC,GAAG;CAC7B,CAAC,CAAC;AACH,4BAA4B,CAAC,KAAK,CAAC,EAAE,mBAAmB,EAAE,CAAC,EAAE,CAAC,CAAC;AAG/D,yBAAyB,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;AAClD,yBAAyB,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC"}