wabe 0.5.1 → 0.5.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/generated/wabe.d.ts +394 -1
- package/dist/index.d.ts +261 -33
- package/dist/index.js +625 -554
- package/generated/schema.graphql +396 -4
- package/generated/wabe.ts +463 -2
- package/package.json +8 -3
package/dist/index.d.ts
CHANGED
|
@@ -65,6 +65,10 @@ declare enum AuthenticationProvider {
|
|
|
65
65
|
declare enum SecondaryFactor {
|
|
66
66
|
EmailOtp = "EmailOTP"
|
|
67
67
|
}
|
|
68
|
+
declare enum Currency {
|
|
69
|
+
Eur = "eur",
|
|
70
|
+
Usd = "usd"
|
|
71
|
+
}
|
|
68
72
|
/** User class */
|
|
69
73
|
export type User = {
|
|
70
74
|
__typename?: "User";
|
|
@@ -218,6 +222,34 @@ export type RoleAclObjectRolesAcl = {
|
|
|
218
222
|
read: Scalars["Boolean"]["output"];
|
|
219
223
|
write: Scalars["Boolean"]["output"];
|
|
220
224
|
};
|
|
225
|
+
export type Payment = {
|
|
226
|
+
__typename?: "Payment";
|
|
227
|
+
id: Scalars["ID"]["output"];
|
|
228
|
+
user?: Maybe<User>;
|
|
229
|
+
amount: Scalars["Int"]["output"];
|
|
230
|
+
currency: Currency;
|
|
231
|
+
acl?: Maybe<PaymentAclObject>;
|
|
232
|
+
createdAt?: Maybe<Scalars["Date"]["output"]>;
|
|
233
|
+
updatedAt?: Maybe<Scalars["Date"]["output"]>;
|
|
234
|
+
search?: Maybe<Array<Maybe<Scalars["String"]["output"]>>>;
|
|
235
|
+
};
|
|
236
|
+
export type PaymentAclObject = {
|
|
237
|
+
__typename?: "PaymentACLObject";
|
|
238
|
+
users?: Maybe<Array<Maybe<PaymentAclObjectUsersAcl>>>;
|
|
239
|
+
roles?: Maybe<Array<Maybe<PaymentAclObjectRolesAcl>>>;
|
|
240
|
+
};
|
|
241
|
+
export type PaymentAclObjectUsersAcl = {
|
|
242
|
+
__typename?: "PaymentACLObjectUsersACL";
|
|
243
|
+
userId: Scalars["String"]["output"];
|
|
244
|
+
read: Scalars["Boolean"]["output"];
|
|
245
|
+
write: Scalars["Boolean"]["output"];
|
|
246
|
+
};
|
|
247
|
+
export type PaymentAclObjectRolesAcl = {
|
|
248
|
+
__typename?: "PaymentACLObjectRolesACL";
|
|
249
|
+
roleId: Scalars["String"]["output"];
|
|
250
|
+
read: Scalars["Boolean"]["output"];
|
|
251
|
+
write: Scalars["Boolean"]["output"];
|
|
252
|
+
};
|
|
221
253
|
export type SignInWithInput = {
|
|
222
254
|
authentication?: InputMaybe<SignInWithAuthenticationInput>;
|
|
223
255
|
};
|
|
@@ -259,12 +291,13 @@ export type SignUpWithAuthenticationOtpInput = {
|
|
|
259
291
|
code?: InputMaybe<Scalars["String"]["input"]>;
|
|
260
292
|
};
|
|
261
293
|
export type WabeSchemaScalars = "Phone";
|
|
262
|
-
export type WabeSchemaEnums = "AuthenticationProvider" | "SecondaryFactor";
|
|
294
|
+
export type WabeSchemaEnums = "RoleEnum" | "AuthenticationProvider" | "SecondaryFactor" | "PaymentMode" | "PaymentReccuringInterval" | "Currency";
|
|
263
295
|
export type WabeSchemaTypes = {
|
|
264
296
|
User: User;
|
|
265
297
|
Post: Post;
|
|
266
298
|
_Session: _Session;
|
|
267
299
|
Role: Role;
|
|
300
|
+
Payment: Payment;
|
|
268
301
|
};
|
|
269
302
|
export interface WabeContext<T extends WabeTypes> {
|
|
270
303
|
response?: WobeResponse;
|
|
@@ -290,6 +323,7 @@ export type WhereConditional<T extends keyof WabeTypes["types"], K extends keyof
|
|
|
290
323
|
AND?: Array<WhereType<T, K>>;
|
|
291
324
|
};
|
|
292
325
|
export type WhereType<T extends keyof WabeTypes["types"], K extends keyof WabeTypes["types"][T]> = Partial<WhereAggregation<T, K>> & WhereConditional<T, K>;
|
|
326
|
+
export type OrderType<T extends keyof WabeTypes["types"], K extends keyof WabeTypes["types"][T]> = Record<K, "ASC" | "DESC">;
|
|
293
327
|
export interface AdapterOptions {
|
|
294
328
|
databaseUrl: string;
|
|
295
329
|
databaseName: string;
|
|
@@ -308,9 +342,10 @@ export interface GetObjectOptions<T extends keyof WabeTypes["types"], K extends
|
|
|
308
342
|
context: WabeContext<any>;
|
|
309
343
|
skipHooks?: boolean;
|
|
310
344
|
}
|
|
311
|
-
export interface GetObjectsOptions<T extends keyof WabeTypes["types"], K extends keyof WabeTypes["types"][T], W extends keyof WabeTypes["types"][T]> {
|
|
345
|
+
export interface GetObjectsOptions<T extends keyof WabeTypes["types"], K extends keyof WabeTypes["types"][T], W extends keyof WabeTypes["types"][T], X extends keyof WabeTypes["types"][T]> {
|
|
312
346
|
className: T;
|
|
313
347
|
where?: WhereType<T, W>;
|
|
348
|
+
order?: OrderType<T, X>;
|
|
314
349
|
fields: Array<K | "*">;
|
|
315
350
|
offset?: number;
|
|
316
351
|
first?: number;
|
|
@@ -323,12 +358,13 @@ export interface CreateObjectOptions<T extends keyof WabeTypes["types"], K exten
|
|
|
323
358
|
fields: Array<K | "*">;
|
|
324
359
|
context: WabeContext<any>;
|
|
325
360
|
}
|
|
326
|
-
export interface CreateObjectsOptions<T extends keyof WabeTypes["types"], K extends keyof WabeTypes["types"][T], W extends keyof WabeTypes["types"][T]> {
|
|
361
|
+
export interface CreateObjectsOptions<T extends keyof WabeTypes["types"], K extends keyof WabeTypes["types"][T], W extends keyof WabeTypes["types"][T], X extends keyof WabeTypes["types"][T]> {
|
|
327
362
|
className: T;
|
|
328
363
|
data: Array<MutationData<W>>;
|
|
329
364
|
fields: Array<K | "*">;
|
|
330
365
|
offset?: number;
|
|
331
366
|
first?: number;
|
|
367
|
+
order?: OrderType<T, X>;
|
|
332
368
|
context: WabeContext<any>;
|
|
333
369
|
}
|
|
334
370
|
export interface UpdateObjectOptions<T extends keyof WabeTypes["types"], K extends keyof WabeTypes["types"][T], W extends keyof WabeTypes["types"][T]> {
|
|
@@ -339,9 +375,10 @@ export interface UpdateObjectOptions<T extends keyof WabeTypes["types"], K exten
|
|
|
339
375
|
fields: Array<K | "*">;
|
|
340
376
|
context: WabeContext<any>;
|
|
341
377
|
}
|
|
342
|
-
export interface UpdateObjectsOptions<T extends keyof WabeTypes["types"], K extends keyof WabeTypes["types"][T], W extends keyof WabeTypes["types"][T]> {
|
|
378
|
+
export interface UpdateObjectsOptions<T extends keyof WabeTypes["types"], K extends keyof WabeTypes["types"][T], W extends keyof WabeTypes["types"][T], X extends keyof WabeTypes["types"][T]> {
|
|
343
379
|
className: T;
|
|
344
380
|
where: WhereType<T, W>;
|
|
381
|
+
order?: OrderType<T, X>;
|
|
345
382
|
data: MutationData<W>;
|
|
346
383
|
fields: Array<K | "*">;
|
|
347
384
|
offset?: number;
|
|
@@ -355,9 +392,10 @@ export interface DeleteObjectOptions<T extends keyof WabeTypes["types"], K exten
|
|
|
355
392
|
fields: Array<K | "*">;
|
|
356
393
|
context: WabeContext<any>;
|
|
357
394
|
}
|
|
358
|
-
export interface DeleteObjectsOptions<T extends keyof WabeTypes["types"], K extends keyof WabeTypes["types"][T], W extends keyof WabeTypes["types"][T]> {
|
|
395
|
+
export interface DeleteObjectsOptions<T extends keyof WabeTypes["types"], K extends keyof WabeTypes["types"][T], W extends keyof WabeTypes["types"][T], X extends keyof WabeTypes["types"][T]> {
|
|
359
396
|
className: T;
|
|
360
397
|
where: WhereType<T, W>;
|
|
398
|
+
order?: OrderType<T, X>;
|
|
361
399
|
fields: Array<K | "*">;
|
|
362
400
|
offset?: number;
|
|
363
401
|
first?: number;
|
|
@@ -373,14 +411,15 @@ export interface DatabaseAdapter {
|
|
|
373
411
|
clearDatabase(): Promise<void>;
|
|
374
412
|
count<T extends keyof WabeTypes["types"], K extends keyof WabeTypes["types"][T]>(params: CountOptions<T, K>): Promise<number>;
|
|
375
413
|
getObject<T extends keyof WabeTypes["types"], K extends keyof WabeTypes["types"][T]>(params: GetObjectOptions<T, K>): Promise<OutputType<T, K>>;
|
|
376
|
-
getObjects<T extends keyof WabeTypes["types"], K extends keyof WabeTypes["types"][T], W extends keyof WabeTypes["types"][T]>(params: GetObjectsOptions<T, K, W>): Promise<OutputType<T, K>[]>;
|
|
414
|
+
getObjects<T extends keyof WabeTypes["types"], K extends keyof WabeTypes["types"][T], W extends keyof WabeTypes["types"][T], X extends keyof WabeTypes["types"][T]>(params: GetObjectsOptions<T, K, W, X>): Promise<OutputType<T, K>[]>;
|
|
377
415
|
createObject<T extends keyof WabeTypes["types"], K extends keyof WabeTypes["types"][T], W extends keyof WabeTypes["types"][T]>(params: CreateObjectOptions<T, K, W>): Promise<OutputType<T, K>>;
|
|
378
|
-
createObjects<T extends keyof WabeTypes["types"], K extends keyof WabeTypes["types"][T], W extends keyof WabeTypes["types"][T]>(params: CreateObjectsOptions<T, K, W>): Promise<OutputType<T, K>[]>;
|
|
416
|
+
createObjects<T extends keyof WabeTypes["types"], K extends keyof WabeTypes["types"][T], W extends keyof WabeTypes["types"][T], X extends keyof WabeTypes["types"][T]>(params: CreateObjectsOptions<T, K, W, X>): Promise<OutputType<T, K>[]>;
|
|
379
417
|
updateObject<T extends keyof WabeTypes["types"], K extends keyof WabeTypes["types"][T], W extends keyof WabeTypes["types"][T]>(params: UpdateObjectOptions<T, K, W>): Promise<OutputType<T, K>>;
|
|
380
|
-
updateObjects<T extends keyof WabeTypes["types"], K extends keyof WabeTypes["types"][T], W extends keyof WabeTypes["types"][T]>(params: UpdateObjectsOptions<T, K, W>): Promise<OutputType<T, K>[]>;
|
|
418
|
+
updateObjects<T extends keyof WabeTypes["types"], K extends keyof WabeTypes["types"][T], W extends keyof WabeTypes["types"][T], X extends keyof WabeTypes["types"][T]>(params: UpdateObjectsOptions<T, K, W, X>): Promise<OutputType<T, K>[]>;
|
|
381
419
|
deleteObject<T extends keyof WabeTypes["types"], K extends keyof WabeTypes["types"][T], W extends keyof WabeTypes["types"][T]>(params: DeleteObjectOptions<T, K, W>): Promise<void>;
|
|
382
|
-
deleteObjects<T extends keyof WabeTypes["types"], K extends keyof WabeTypes["types"][T], W extends keyof WabeTypes["types"][T]>(params: DeleteObjectsOptions<T, K, W>): Promise<void>;
|
|
420
|
+
deleteObjects<T extends keyof WabeTypes["types"], K extends keyof WabeTypes["types"][T], W extends keyof WabeTypes["types"][T], X extends keyof WabeTypes["types"][T]>(params: DeleteObjectsOptions<T, K, W, X>): Promise<void>;
|
|
383
421
|
}
|
|
422
|
+
export declare const buildMongoOrderQuery: <T extends unknown, K extends keyof Record<any, any>[T]>(order?: OrderType<T, K>) => Record<string, any>;
|
|
384
423
|
export declare const buildMongoWhereQuery: <T extends unknown, K extends keyof Record<any, any>[T]>(where?: WhereType<T, K>) => Record<string, any>;
|
|
385
424
|
export declare class MongoAdapter<T extends WabeTypes> implements DatabaseAdapter {
|
|
386
425
|
options: AdapterOptions;
|
|
@@ -393,13 +432,13 @@ export declare class MongoAdapter<T extends WabeTypes> implements DatabaseAdapte
|
|
|
393
432
|
count<U extends keyof T["types"], K extends keyof T["types"][U]>(params: CountOptions<U, K>): Promise<number>;
|
|
394
433
|
clearDatabase(): Promise<void>;
|
|
395
434
|
getObject<U extends keyof T["types"], K extends keyof T["types"][U]>(params: GetObjectOptions<U, K>): Promise<OutputType<U, K>>;
|
|
396
|
-
getObjects<U extends keyof T["types"], K extends keyof T["types"][U], W extends keyof T["types"][U]>(params: GetObjectsOptions<U, K, W>): Promise<OutputType<U, K>[]>;
|
|
435
|
+
getObjects<U extends keyof T["types"], K extends keyof T["types"][U], W extends keyof T["types"][U], X extends keyof T["types"][U]>(params: GetObjectsOptions<U, K, W, X>): Promise<OutputType<U, K>[]>;
|
|
397
436
|
createObject<U extends keyof T["types"], K extends keyof T["types"][U], W extends keyof T["types"][U]>(params: CreateObjectOptions<U, K, W>): Promise<OutputType<U, K>>;
|
|
398
|
-
createObjects<U extends keyof T["types"], K extends keyof T["types"][U], W extends keyof T["types"][U]>(params: CreateObjectsOptions<U, K, W>): Promise<OutputType<U, K>[]>;
|
|
437
|
+
createObjects<U extends keyof T["types"], K extends keyof T["types"][U], W extends keyof T["types"][U], X extends keyof T["types"][U]>(params: CreateObjectsOptions<U, K, W, X>): Promise<OutputType<U, K>[]>;
|
|
399
438
|
updateObject<U extends keyof T["types"], K extends keyof T["types"][U], W extends keyof T["types"][U]>(params: UpdateObjectOptions<U, K, W>): Promise<OutputType<U, K>>;
|
|
400
|
-
updateObjects<U extends keyof T["types"], K extends keyof T["types"][U], W extends keyof T["types"][U]>(params: UpdateObjectsOptions<U, K, W>): Promise<OutputType<U, K>[]>;
|
|
439
|
+
updateObjects<U extends keyof T["types"], K extends keyof T["types"][U], W extends keyof T["types"][U], X extends keyof T["types"][U]>(params: UpdateObjectsOptions<U, K, W, X>): Promise<OutputType<U, K>[]>;
|
|
401
440
|
deleteObject<U extends keyof T["types"], K extends keyof T["types"][U], W extends keyof T["types"][U]>(params: DeleteObjectOptions<U, K, W>): Promise<void>;
|
|
402
|
-
deleteObjects<U extends keyof T["types"], K extends keyof T["types"][U], W extends keyof T["types"][U]>(params: DeleteObjectsOptions<U, K, W>): Promise<void>;
|
|
441
|
+
deleteObjects<U extends keyof T["types"], K extends keyof T["types"][U], W extends keyof T["types"][U], X extends keyof T["types"][U]>(params: DeleteObjectsOptions<U, K, W, X>): Promise<void>;
|
|
403
442
|
}
|
|
404
443
|
export interface InMemoryCacheOptions {
|
|
405
444
|
/**
|
|
@@ -459,13 +498,13 @@ export declare class DatabaseController<T extends WabeTypes> {
|
|
|
459
498
|
count<U extends keyof T["types"], K extends keyof T["types"][U]>(params: CountOptions<U, K>): Promise<number>;
|
|
460
499
|
clearDatabase(): Promise<void>;
|
|
461
500
|
getObject<U extends keyof T["types"], K extends keyof T["types"][U]>({ fields, className, context, skipHooks, id, where, }: GetObjectOptions<U, K>): Promise<OutputType<U, K>>;
|
|
462
|
-
getObjects<U extends keyof T["types"], K extends keyof T["types"][U], W extends keyof T["types"][U]>({ className, fields, context, where, skipHooks, first, offset, }: GetObjectsOptions<U, K, W>): Promise<OutputType<U, K>[]>;
|
|
501
|
+
getObjects<U extends keyof T["types"], K extends keyof T["types"][U], W extends keyof T["types"][U], X extends keyof T["types"][U]>({ className, fields, context, where, skipHooks, first, offset, order, }: GetObjectsOptions<U, K, W, X>): Promise<OutputType<U, K>[]>;
|
|
463
502
|
createObject<U extends keyof T["types"], K extends keyof T["types"][U], W extends keyof T["types"][U]>({ className, context, data, fields }: CreateObjectOptions<U, K, W>): Promise<OutputType<U, K>>;
|
|
464
|
-
createObjects<U extends keyof T["types"], K extends keyof T["types"][U], W extends keyof T["types"][U]>({ data, fields, className, context, first, offset, }: CreateObjectsOptions<U, K, W>): Promise<OutputType<U, K>[]>;
|
|
503
|
+
createObjects<U extends keyof T["types"], K extends keyof T["types"][U], W extends keyof T["types"][U], X extends keyof T["types"][U]>({ data, fields, className, context, first, offset, order, }: CreateObjectsOptions<U, K, W, X>): Promise<OutputType<U, K>[]>;
|
|
465
504
|
updateObject<U extends keyof T["types"], K extends keyof T["types"][U], W extends keyof T["types"][U]>({ id, className, context, data, fields }: UpdateObjectOptions<U, K, W>): Promise<OutputType<keyof T["types"], K>>;
|
|
466
|
-
updateObjects<U extends keyof T["types"], K extends keyof T["types"][U], W extends keyof T["types"][U]>({ className, where, context, fields, data, first, offset, }: UpdateObjectsOptions<U, K, W>): Promise<OutputType<U, K>[]>;
|
|
505
|
+
updateObjects<U extends keyof T["types"], K extends keyof T["types"][U], W extends keyof T["types"][U], X extends keyof T["types"][U]>({ className, where, context, fields, data, first, offset, order, }: UpdateObjectsOptions<U, K, W, X>): Promise<OutputType<U, K>[]>;
|
|
467
506
|
deleteObject<U extends keyof T["types"], K extends keyof T["types"][U], W extends keyof T["types"][U]>({ context, className, id, fields }: DeleteObjectOptions<U, K, W>): Promise<OutputType<U, K>>;
|
|
468
|
-
deleteObjects<U extends keyof T["types"], K extends keyof T["types"][U], W extends keyof T["types"][U]>({ className, context, fields, where, first, offset, }: DeleteObjectsOptions<U, K, W>): Promise<OutputType<U, K>[]>;
|
|
507
|
+
deleteObjects<U extends keyof T["types"], K extends keyof T["types"][U], W extends keyof T["types"][U], X extends keyof T["types"][U]>({ className, context, fields, where, first, offset, order, }: DeleteObjectsOptions<U, K, W, X>): Promise<OutputType<U, K>[]>;
|
|
469
508
|
}
|
|
470
509
|
export declare enum DatabaseEnum {
|
|
471
510
|
Mongo = "mongo"
|
|
@@ -541,36 +580,33 @@ export type TypeFieldCustomEnums<T extends WabeTypes> = {
|
|
|
541
580
|
};
|
|
542
581
|
export type TypeField<T extends WabeTypes> = TypeFieldBase<string, "String"> | TypeFieldBase<number, "Int"> | TypeFieldBase<number, "Float"> | TypeFieldBase<boolean, "Boolean"> | TypeFieldBase<Date, "Date"> | TypeFieldBase<string, "Email"> | TypeFieldArray<T> | TypeFieldObject<T> | TypeFieldPointer<T> | TypeFieldRelation<T> | TypeFieldFile | TypeFieldCustomScalars<T> | TypeFieldCustomEnums<T>;
|
|
543
582
|
export type SchemaFields<T extends WabeTypes> = Record<string, TypeField<T>>;
|
|
544
|
-
export type
|
|
583
|
+
export type ResolverType<T extends WabeTypes> = {
|
|
545
584
|
required?: boolean;
|
|
546
585
|
description?: string;
|
|
547
|
-
args?: SchemaFields<T>;
|
|
548
586
|
resolve: (...args: any) => any;
|
|
549
587
|
} & ({
|
|
550
|
-
type: WabePrimaryTypes;
|
|
588
|
+
type: WabePrimaryTypes | T["enums"] | T["scalars"];
|
|
551
589
|
} | {
|
|
552
590
|
type: "Object";
|
|
553
591
|
outputObject: ClassInterface<T>;
|
|
554
592
|
} | {
|
|
555
593
|
type: "Array";
|
|
556
594
|
typeValue: WabePrimaryTypes;
|
|
595
|
+
typeValueRequired?: boolean;
|
|
596
|
+
} | {
|
|
597
|
+
type: "Array";
|
|
598
|
+
typeValue: "Object";
|
|
599
|
+
outputObject: ClassInterface<T>;
|
|
600
|
+
typeValueRequired?: boolean;
|
|
557
601
|
});
|
|
602
|
+
export type QueryResolver<T extends WabeTypes> = {
|
|
603
|
+
args?: SchemaFields<T>;
|
|
604
|
+
} & ResolverType<T>;
|
|
558
605
|
export type MutationResolver<T extends WabeTypes> = {
|
|
559
|
-
required?: boolean;
|
|
560
|
-
description?: string;
|
|
561
606
|
args?: {
|
|
562
607
|
input: SchemaFields<T>;
|
|
563
608
|
};
|
|
564
|
-
|
|
565
|
-
} & ({
|
|
566
|
-
type: WabePrimaryTypes;
|
|
567
|
-
} | {
|
|
568
|
-
type: "Object";
|
|
569
|
-
outputObject: ClassInterface<T>;
|
|
570
|
-
} | {
|
|
571
|
-
type: "Array";
|
|
572
|
-
typeValue: WabePrimaryTypes;
|
|
573
|
-
});
|
|
609
|
+
} & ResolverType<T>;
|
|
574
610
|
export type TypeResolver<T extends WabeTypes> = {
|
|
575
611
|
queries?: {
|
|
576
612
|
[key: string]: QueryResolver<T>;
|
|
@@ -628,6 +664,7 @@ export declare class Schema<T extends WabeTypes> {
|
|
|
628
664
|
mergeResolvers(defaultResolvers: TypeResolver<T>): TypeResolver<T>;
|
|
629
665
|
defaultResolvers(): TypeResolver<T>;
|
|
630
666
|
sessionClass(): ClassInterface<T>;
|
|
667
|
+
paymentClass(): ClassInterface<T>;
|
|
631
668
|
roleClass(): ClassInterface<T>;
|
|
632
669
|
userClass(): ClassInterface<T>;
|
|
633
670
|
defaultFields(): SchemaFields<T>;
|
|
@@ -825,8 +862,195 @@ declare class EmailController implements EmailAdapter {
|
|
|
825
862
|
constructor(adapter: EmailAdapter);
|
|
826
863
|
send(options: EmailSendOptions): Promise<string>;
|
|
827
864
|
}
|
|
865
|
+
declare enum Currency$1 {
|
|
866
|
+
EUR = "eur",
|
|
867
|
+
USD = "usd"
|
|
868
|
+
}
|
|
869
|
+
export type Address = {
|
|
870
|
+
city: string;
|
|
871
|
+
country: string;
|
|
872
|
+
line1: string;
|
|
873
|
+
line2: string;
|
|
874
|
+
postalCode: string;
|
|
875
|
+
state: string;
|
|
876
|
+
};
|
|
877
|
+
export declare enum PaymentMode {
|
|
878
|
+
Payment = "payment",
|
|
879
|
+
Subscription = "subscription"
|
|
880
|
+
}
|
|
881
|
+
export type PaymentMethod = "card" | "paypal" | "link" | "sepa_debit" | "revolut_pay" | "us_bank_account";
|
|
882
|
+
export declare enum PaymentReccuringInterval {
|
|
883
|
+
Month = "month",
|
|
884
|
+
Year = "year"
|
|
885
|
+
}
|
|
886
|
+
export type Product = {
|
|
887
|
+
name: string;
|
|
888
|
+
unitAmount: number;
|
|
889
|
+
quantity: number;
|
|
890
|
+
};
|
|
891
|
+
export interface OnPaymentSucceedOptions {
|
|
892
|
+
created: string;
|
|
893
|
+
amount: number;
|
|
894
|
+
customerEmail: string | null;
|
|
895
|
+
billingDetails: {
|
|
896
|
+
address: {
|
|
897
|
+
city: string | null;
|
|
898
|
+
country: string | null;
|
|
899
|
+
line1: string | null;
|
|
900
|
+
line2: string | null;
|
|
901
|
+
postalCode: string | null;
|
|
902
|
+
state: string | null;
|
|
903
|
+
};
|
|
904
|
+
name: string | null;
|
|
905
|
+
phone: string | null;
|
|
906
|
+
};
|
|
907
|
+
currency: string;
|
|
908
|
+
paymentMethodTypes: Array<string>;
|
|
909
|
+
}
|
|
910
|
+
export interface OnPaymentFailedOptions {
|
|
911
|
+
created: string;
|
|
912
|
+
amount: number;
|
|
913
|
+
messageError: string;
|
|
914
|
+
paymentMethodTypes: Array<string>;
|
|
915
|
+
}
|
|
916
|
+
export interface PaymentConfig {
|
|
917
|
+
adapter: PaymentAdapter;
|
|
918
|
+
supportedPaymentMethods: Array<PaymentMethod>;
|
|
919
|
+
currency: Currency$1;
|
|
920
|
+
onPaymentSucceed?: (options: OnPaymentSucceedOptions) => Promise<void>;
|
|
921
|
+
onPaymentFailed?: (options: OnPaymentFailedOptions) => Promise<void>;
|
|
922
|
+
}
|
|
923
|
+
export type Invoice = {
|
|
924
|
+
amountDue: number;
|
|
925
|
+
amountPaid: number;
|
|
926
|
+
currency: Currency$1;
|
|
927
|
+
id: string;
|
|
928
|
+
created: number;
|
|
929
|
+
invoiceUrl: string;
|
|
930
|
+
isPaid: boolean;
|
|
931
|
+
};
|
|
932
|
+
export type Transaction = {
|
|
933
|
+
customerEmail: string;
|
|
934
|
+
amount: number;
|
|
935
|
+
currency: Currency$1;
|
|
936
|
+
created: number;
|
|
937
|
+
isSubscription: boolean;
|
|
938
|
+
reccuringInterval?: "month" | "year";
|
|
939
|
+
};
|
|
940
|
+
export type CreateCustomerOptions = {
|
|
941
|
+
customerName?: string;
|
|
942
|
+
customerEmail: string;
|
|
943
|
+
customerPhone?: string;
|
|
944
|
+
address: Address;
|
|
945
|
+
paymentMethod: PaymentMethod;
|
|
946
|
+
};
|
|
947
|
+
export type CreatePaymentOptions = {
|
|
948
|
+
currency: Currency$1;
|
|
949
|
+
customerEmail: string;
|
|
950
|
+
products: Array<Product>;
|
|
951
|
+
paymentMethod: Array<PaymentMethod>;
|
|
952
|
+
paymentMode: PaymentMode;
|
|
953
|
+
successUrl: string;
|
|
954
|
+
cancelUrl: string;
|
|
955
|
+
automaticTax?: boolean;
|
|
956
|
+
recurringInterval?: "month" | "year";
|
|
957
|
+
};
|
|
958
|
+
export type InitWebhookOptions = {
|
|
959
|
+
webhookUrl: string;
|
|
960
|
+
};
|
|
961
|
+
export type CancelSubscriptionOptions = {
|
|
962
|
+
email: string;
|
|
963
|
+
};
|
|
964
|
+
export type GetInvoicesOptions = {
|
|
965
|
+
email: string;
|
|
966
|
+
};
|
|
967
|
+
export type GetTotalRevenueOptions = {
|
|
968
|
+
startRangeTimestamp?: number;
|
|
969
|
+
endRangeTimestamp?: number;
|
|
970
|
+
charge: "net" | "gross";
|
|
971
|
+
};
|
|
972
|
+
export type GetAllTransactionsOptions = {
|
|
973
|
+
startRangeTimestamp?: number;
|
|
974
|
+
endRangeTimestamp?: number;
|
|
975
|
+
first?: number;
|
|
976
|
+
};
|
|
977
|
+
export type GetCustomerByIdOptions = {
|
|
978
|
+
id: string;
|
|
979
|
+
};
|
|
980
|
+
export interface PaymentAdapter {
|
|
981
|
+
/**
|
|
982
|
+
* Get a customer by id
|
|
983
|
+
* @param id The customer id
|
|
984
|
+
* @returns The customer
|
|
985
|
+
*/
|
|
986
|
+
getCustomerById: (options: GetCustomerByIdOptions) => Promise<{
|
|
987
|
+
email: string | null;
|
|
988
|
+
}>;
|
|
989
|
+
/**
|
|
990
|
+
* Create a customer
|
|
991
|
+
* @param options CreateCustomerOptions
|
|
992
|
+
* @returns The customer email
|
|
993
|
+
*/
|
|
994
|
+
createCustomer: (options: CreateCustomerOptions) => Promise<string>;
|
|
995
|
+
/**
|
|
996
|
+
* Create a payment
|
|
997
|
+
* @param options CreatePaymentOptions
|
|
998
|
+
* @returns The payment url
|
|
999
|
+
*/
|
|
1000
|
+
createPayment: (options: CreatePaymentOptions) => Promise<string>;
|
|
1001
|
+
/**
|
|
1002
|
+
* Cancel a subscription
|
|
1003
|
+
* @param options The customer email to cancel the subscription
|
|
1004
|
+
*/
|
|
1005
|
+
cancelSubscription: (options: CancelSubscriptionOptions) => Promise<void>;
|
|
1006
|
+
/**
|
|
1007
|
+
* Get invoices
|
|
1008
|
+
* @param options The customer email to get the invoices
|
|
1009
|
+
* @returns The invoices of a customer
|
|
1010
|
+
*/
|
|
1011
|
+
getInvoices: (options: GetInvoicesOptions) => Promise<Invoice[]>;
|
|
1012
|
+
/**
|
|
1013
|
+
* Get total revenue
|
|
1014
|
+
* @param options The type of charge (net or gross) and the start and end range timestamps to get the total revenue
|
|
1015
|
+
* @returns The total amount
|
|
1016
|
+
*/
|
|
1017
|
+
getTotalRevenue: (options: GetTotalRevenueOptions) => Promise<number>;
|
|
1018
|
+
/**
|
|
1019
|
+
* Get the list of all transactions
|
|
1020
|
+
* @param options The start and end range timestamps to get the transactions
|
|
1021
|
+
* @returns The list of transactions
|
|
1022
|
+
*/
|
|
1023
|
+
getAllTransactions: (options: GetAllTransactionsOptions) => Promise<Transaction[]>;
|
|
1024
|
+
/**
|
|
1025
|
+
* Get the hypothetical revenue of subscriptions
|
|
1026
|
+
* @returns The hypothetical revenue of subscriptions
|
|
1027
|
+
*/
|
|
1028
|
+
getHypotheticalSubscriptionRevenue: () => Promise<number>;
|
|
1029
|
+
/**
|
|
1030
|
+
* Init the webhook for succeed and failed payments
|
|
1031
|
+
* @param options The webhook url
|
|
1032
|
+
*/
|
|
1033
|
+
initWebhook: (options: InitWebhookOptions) => Promise<void>;
|
|
1034
|
+
}
|
|
1035
|
+
declare class PaymentController implements PaymentAdapter {
|
|
1036
|
+
private adapter;
|
|
1037
|
+
private config;
|
|
1038
|
+
constructor(paymentConfig: PaymentConfig);
|
|
1039
|
+
getCustomerById(options: GetCustomerByIdOptions): Promise<{
|
|
1040
|
+
email: string | null;
|
|
1041
|
+
}>;
|
|
1042
|
+
initWebhook({ webhookUrl }: InitWebhookOptions): Promise<void>;
|
|
1043
|
+
createCustomer(options: CreateCustomerOptions): Promise<string>;
|
|
1044
|
+
createPayment(options: Omit<CreatePaymentOptions, "currency" | "paymentMethod">): Promise<string>;
|
|
1045
|
+
cancelSubscription(options: CancelSubscriptionOptions): Promise<void>;
|
|
1046
|
+
getInvoices(options: GetInvoicesOptions): Promise<Invoice[]>;
|
|
1047
|
+
getTotalRevenue(options: GetTotalRevenueOptions): Promise<number>;
|
|
1048
|
+
getAllTransactions(options: GetAllTransactionsOptions): Promise<Transaction[]>;
|
|
1049
|
+
getHypotheticalSubscriptionRevenue(): Promise<number>;
|
|
1050
|
+
}
|
|
828
1051
|
export interface WabeConfig<T extends WabeTypes> {
|
|
829
1052
|
port: number;
|
|
1053
|
+
publicUrl?: string;
|
|
830
1054
|
schema?: SchemaInterface<T>;
|
|
831
1055
|
database: DatabaseConfig;
|
|
832
1056
|
codegen?: {
|
|
@@ -840,6 +1064,7 @@ export interface WabeConfig<T extends WabeTypes> {
|
|
|
840
1064
|
rootKey: string;
|
|
841
1065
|
hooks?: Hook<any>[];
|
|
842
1066
|
email?: EmailConfig;
|
|
1067
|
+
payment?: PaymentConfig;
|
|
843
1068
|
file?: FileConfig;
|
|
844
1069
|
}
|
|
845
1070
|
export type WabeTypes = {
|
|
@@ -853,12 +1078,14 @@ export type WobeCustomContext<T extends WabeTypes> = {
|
|
|
853
1078
|
export type WabeControllers<T extends WabeTypes> = {
|
|
854
1079
|
database: DatabaseController<T>;
|
|
855
1080
|
email?: EmailController;
|
|
1081
|
+
payment?: PaymentController;
|
|
856
1082
|
};
|
|
857
1083
|
export declare class Wabe<T extends WabeTypes> {
|
|
858
1084
|
server: Wobe<WobeCustomContext<T>>;
|
|
859
1085
|
config: WabeConfig<T>;
|
|
860
1086
|
controllers: WabeControllers<T>;
|
|
861
|
-
constructor({ port, schema, database, authentication, rootKey, codegen, hooks, file, email, routes, }: WabeConfig<T>);
|
|
1087
|
+
constructor({ port, schema, database, authentication, rootKey, codegen, hooks, file, email, payment, routes, publicUrl, }: WabeConfig<T>);
|
|
1088
|
+
loadRoleEnum(): void;
|
|
862
1089
|
loadAuthenticationMethods(): void;
|
|
863
1090
|
loadHooks(): void;
|
|
864
1091
|
loadDefaultRoutes(): void;
|
|
@@ -945,6 +1172,7 @@ export declare class Google implements OAuth2ProviderWithPKCE {
|
|
|
945
1172
|
|
|
946
1173
|
export {
|
|
947
1174
|
AuthenticationProvider$1 as AuthenticationProvider,
|
|
1175
|
+
Currency$1 as Currency,
|
|
948
1176
|
};
|
|
949
1177
|
|
|
950
1178
|
export {};
|