@queelabs/core 0.0.1 → 0.0.2
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/README.md +5 -0
- package/dist/core.d.ts +75 -15
- package/dist/core.d.ts.map +1 -1
- package/dist/core.js +138 -8
- package/dist/core.js.map +1 -1
- package/dist/payment-adapters.d.ts +2 -72
- package/dist/payment-adapters.d.ts.map +1 -1
- package/dist/payment-adapters.js +1 -1
- package/dist/payment-adapters.js.map +1 -1
- package/package.json +5 -4
package/README.md
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
# `@queelabs/core`
|
|
2
|
+
|
|
3
|
+
**Domain engine:** marketplaces, actors, listings, orders, **MPP** pay-in (challenges + verify), **Tempo** settlement hold/release, ledger, and domain events.
|
|
4
|
+
|
|
5
|
+
**Quee:** [https://quee.one](https://quee.one) · Monorepo docs: [`docs/README.md`](../../docs/README.md) · Connectors: [`../../docs/connectors-http.md`](../../docs/connectors-http.md)
|
package/dist/core.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import type { Db } from "@queelabs/db";
|
|
2
|
-
import type { PaymentRail, QueeCoreDeps } from "./payment-adapters.js";
|
|
2
|
+
import type { MppPaymentAdapter, PaymentRail, QueeCoreDeps } from "./payment-adapters.js";
|
|
3
3
|
export declare const apiKeyScopes: readonly ["admin", "read", "write", "webhooks"];
|
|
4
4
|
export type ApiKeyScope = (typeof apiKeyScopes)[number];
|
|
5
|
+
/** Primary `mpp` orchestrator rail plus per-method rails (tempo, stripe, …). */
|
|
6
|
+
export type MarketplaceRailType = string;
|
|
5
7
|
export declare function encryptConfig(config: Record<string, unknown>): string;
|
|
6
8
|
export declare function decryptConfig(encryptedStr: string): Record<string, unknown>;
|
|
7
9
|
export declare function redactConfig(config: Record<string, unknown>): Record<string, unknown>;
|
|
@@ -41,10 +43,10 @@ export declare class QueeCore {
|
|
|
41
43
|
defaultPayoutDestination?: Record<string, unknown>;
|
|
42
44
|
metadata?: Record<string, unknown>;
|
|
43
45
|
}): Promise<{
|
|
44
|
-
metadata: Record<string, unknown> | null;
|
|
45
46
|
id: string;
|
|
46
47
|
marketplaceId: string;
|
|
47
48
|
type: string;
|
|
49
|
+
metadata: Record<string, unknown> | null;
|
|
48
50
|
createdAt: Date;
|
|
49
51
|
updatedAt: Date;
|
|
50
52
|
externalRef: string | null;
|
|
@@ -52,10 +54,10 @@ export declare class QueeCore {
|
|
|
52
54
|
defaultPayoutDestination: Record<string, unknown> | null;
|
|
53
55
|
}>;
|
|
54
56
|
getActor(id: string): Promise<{
|
|
55
|
-
metadata: Record<string, unknown> | null;
|
|
56
57
|
id: string;
|
|
57
58
|
marketplaceId: string;
|
|
58
59
|
type: string;
|
|
60
|
+
metadata: Record<string, unknown> | null;
|
|
59
61
|
createdAt: Date;
|
|
60
62
|
updatedAt: Date;
|
|
61
63
|
externalRef: string | null;
|
|
@@ -67,10 +69,10 @@ export declare class QueeCore {
|
|
|
67
69
|
actorId: string;
|
|
68
70
|
payoutDestination: Record<string, unknown>;
|
|
69
71
|
}): Promise<{
|
|
70
|
-
metadata: Record<string, unknown> | null;
|
|
71
72
|
id: string;
|
|
72
73
|
marketplaceId: string;
|
|
73
74
|
type: string;
|
|
75
|
+
metadata: Record<string, unknown> | null;
|
|
74
76
|
createdAt: Date;
|
|
75
77
|
updatedAt: Date;
|
|
76
78
|
externalRef: string | null;
|
|
@@ -154,9 +156,9 @@ export declare class QueeCore {
|
|
|
154
156
|
status: string;
|
|
155
157
|
};
|
|
156
158
|
version: {
|
|
157
|
-
metadata: Record<string, unknown> | null;
|
|
158
159
|
id: string;
|
|
159
160
|
description: string | null;
|
|
161
|
+
metadata: Record<string, unknown> | null;
|
|
160
162
|
payoutDestination: Record<string, unknown> | null;
|
|
161
163
|
createdAt: Date;
|
|
162
164
|
listingId: string;
|
|
@@ -186,9 +188,9 @@ export declare class QueeCore {
|
|
|
186
188
|
listingId: string;
|
|
187
189
|
}): Promise<{
|
|
188
190
|
order: {
|
|
189
|
-
metadata: Record<string, unknown> | null;
|
|
190
191
|
id: string;
|
|
191
192
|
marketplaceId: string;
|
|
193
|
+
metadata: Record<string, unknown> | null;
|
|
192
194
|
createdAt: Date;
|
|
193
195
|
updatedAt: Date;
|
|
194
196
|
status: string;
|
|
@@ -230,6 +232,8 @@ export declare class QueeCore {
|
|
|
230
232
|
challengeId: string;
|
|
231
233
|
rail: string;
|
|
232
234
|
proof: Record<string, unknown>;
|
|
235
|
+
}, opts?: {
|
|
236
|
+
mppAdapter?: MppPaymentAdapter;
|
|
233
237
|
}): Promise<{
|
|
234
238
|
orderId: string;
|
|
235
239
|
qtxId: string | null;
|
|
@@ -256,9 +260,9 @@ export declare class QueeCore {
|
|
|
256
260
|
marketplaceId: string;
|
|
257
261
|
orderId: string;
|
|
258
262
|
}): Promise<{
|
|
259
|
-
metadata: Record<string, unknown> | null;
|
|
260
263
|
id: string;
|
|
261
264
|
marketplaceId: string;
|
|
265
|
+
metadata: Record<string, unknown> | null;
|
|
262
266
|
createdAt: Date;
|
|
263
267
|
updatedAt: Date;
|
|
264
268
|
status: string;
|
|
@@ -275,9 +279,9 @@ export declare class QueeCore {
|
|
|
275
279
|
comment?: string;
|
|
276
280
|
}): Promise<string>;
|
|
277
281
|
listOrders(marketplaceId: string): Promise<{
|
|
278
|
-
metadata: Record<string, unknown> | null;
|
|
279
282
|
id: string;
|
|
280
283
|
marketplaceId: string;
|
|
284
|
+
metadata: Record<string, unknown> | null;
|
|
281
285
|
createdAt: Date;
|
|
282
286
|
updatedAt: Date;
|
|
283
287
|
status: string;
|
|
@@ -290,10 +294,10 @@ export declare class QueeCore {
|
|
|
290
294
|
totalCurrency: string;
|
|
291
295
|
}[]>;
|
|
292
296
|
listActors(marketplaceId: string): Promise<{
|
|
293
|
-
metadata: Record<string, unknown> | null;
|
|
294
297
|
id: string;
|
|
295
298
|
marketplaceId: string;
|
|
296
299
|
type: string;
|
|
300
|
+
metadata: Record<string, unknown> | null;
|
|
297
301
|
createdAt: Date;
|
|
298
302
|
updatedAt: Date;
|
|
299
303
|
externalRef: string | null;
|
|
@@ -322,9 +326,9 @@ export declare class QueeCore {
|
|
|
322
326
|
idempotencyKey: string | null;
|
|
323
327
|
}[]>;
|
|
324
328
|
listSettlements(marketplaceId: string): Promise<{
|
|
325
|
-
metadata: Record<string, unknown> | null;
|
|
326
329
|
id: string;
|
|
327
330
|
marketplaceId: string;
|
|
331
|
+
metadata: Record<string, unknown> | null;
|
|
328
332
|
createdAt: Date;
|
|
329
333
|
updatedAt: Date;
|
|
330
334
|
status: string;
|
|
@@ -334,9 +338,9 @@ export declare class QueeCore {
|
|
|
334
338
|
currency: string;
|
|
335
339
|
}[]>;
|
|
336
340
|
listPaymentReceipts(marketplaceId: string): Promise<{
|
|
337
|
-
rail: string;
|
|
338
341
|
id: string;
|
|
339
342
|
marketplaceId: string;
|
|
343
|
+
rail: string;
|
|
340
344
|
createdAt: Date;
|
|
341
345
|
qtxId: string;
|
|
342
346
|
orderId: string;
|
|
@@ -349,9 +353,9 @@ export declare class QueeCore {
|
|
|
349
353
|
marketplaceId: string;
|
|
350
354
|
qhash: string;
|
|
351
355
|
}): Promise<{
|
|
352
|
-
rail: string;
|
|
353
356
|
id: string;
|
|
354
357
|
marketplaceId: string;
|
|
358
|
+
rail: string;
|
|
355
359
|
createdAt: Date;
|
|
356
360
|
qtxId: string;
|
|
357
361
|
orderId: string;
|
|
@@ -362,9 +366,9 @@ export declare class QueeCore {
|
|
|
362
366
|
} | null>;
|
|
363
367
|
/** Lookup by `qhash` only; `qhash` is unique per DB (explorer / public receipt links). */
|
|
364
368
|
getPaymentReceiptByQhashGlobal(qhash: string): Promise<{
|
|
365
|
-
rail: string;
|
|
366
369
|
id: string;
|
|
367
370
|
marketplaceId: string;
|
|
371
|
+
rail: string;
|
|
368
372
|
createdAt: Date;
|
|
369
373
|
qtxId: string;
|
|
370
374
|
orderId: string;
|
|
@@ -375,9 +379,9 @@ export declare class QueeCore {
|
|
|
375
379
|
} | null>;
|
|
376
380
|
/** Settlement row for an order (hold/release metadata, explorer links, balance snapshots). */
|
|
377
381
|
getSettlementForOrder(marketplaceId: string, orderId: string): Promise<{
|
|
378
|
-
metadata: Record<string, unknown> | null;
|
|
379
382
|
id: string;
|
|
380
383
|
marketplaceId: string;
|
|
384
|
+
metadata: Record<string, unknown> | null;
|
|
381
385
|
createdAt: Date;
|
|
382
386
|
updatedAt: Date;
|
|
383
387
|
status: string;
|
|
@@ -528,6 +532,62 @@ export declare class QueeCore {
|
|
|
528
532
|
provider: string;
|
|
529
533
|
}>;
|
|
530
534
|
deleteIntegration(marketplaceId: string, provider: string): Promise<void>;
|
|
535
|
+
upsertMarketplaceRail(input: {
|
|
536
|
+
marketplaceId: string;
|
|
537
|
+
railType: MarketplaceRailType;
|
|
538
|
+
adapter: string;
|
|
539
|
+
config?: Record<string, unknown>;
|
|
540
|
+
}): Promise<{
|
|
541
|
+
marketplaceId: string;
|
|
542
|
+
railType: MarketplaceRailType;
|
|
543
|
+
adapter: string;
|
|
544
|
+
config: Record<string, unknown>;
|
|
545
|
+
updatedAt: Date;
|
|
546
|
+
createdAt: Date;
|
|
547
|
+
}>;
|
|
548
|
+
deleteMarketplaceRail(input: {
|
|
549
|
+
marketplaceId: string;
|
|
550
|
+
railType: string;
|
|
551
|
+
}): Promise<void>;
|
|
552
|
+
/** Redacted for API responses (safe). */
|
|
553
|
+
getMarketplaceRails(marketplaceId: string): Promise<{
|
|
554
|
+
marketplaceId: string;
|
|
555
|
+
railType: string;
|
|
556
|
+
adapter: string;
|
|
557
|
+
config: Record<string, unknown>;
|
|
558
|
+
createdAt: Date;
|
|
559
|
+
updatedAt: Date;
|
|
560
|
+
}[]>;
|
|
561
|
+
/** Raw decrypted config for internal adapter construction. */
|
|
562
|
+
getMarketplaceRailRaw(input: {
|
|
563
|
+
marketplaceId: string;
|
|
564
|
+
railType: MarketplaceRailType;
|
|
565
|
+
}): Promise<{
|
|
566
|
+
adapter: string;
|
|
567
|
+
config: Record<string, unknown>;
|
|
568
|
+
} | null>;
|
|
569
|
+
/**
|
|
570
|
+
* Payment rails available for umbrella MPP checkout (all configured rails except the `mpp` orchestrator).
|
|
571
|
+
*/
|
|
572
|
+
listCheckoutPaymentRailsRaw(marketplaceId: string): Promise<{
|
|
573
|
+
railType: string;
|
|
574
|
+
adapter: string;
|
|
575
|
+
config: Record<string, unknown>;
|
|
576
|
+
}[]>;
|
|
577
|
+
getPaymentChallengeRow(input: {
|
|
578
|
+
marketplaceId: string;
|
|
579
|
+
challengeId: string;
|
|
580
|
+
}): Promise<{
|
|
581
|
+
id: string;
|
|
582
|
+
marketplaceId: string;
|
|
583
|
+
rail: string;
|
|
584
|
+
challengePayload: Record<string, unknown>;
|
|
585
|
+
createdAt: Date;
|
|
586
|
+
updatedAt: Date;
|
|
587
|
+
expiresAt: Date | null;
|
|
588
|
+
status: string;
|
|
589
|
+
orderId: string;
|
|
590
|
+
} | null>;
|
|
531
591
|
findIdempotentResponse(input: {
|
|
532
592
|
marketplaceId: string;
|
|
533
593
|
idempotencyKey: string;
|
|
@@ -599,9 +659,9 @@ export declare class QueeCore {
|
|
|
599
659
|
metadata?: Record<string, unknown>;
|
|
600
660
|
}): Promise<string>;
|
|
601
661
|
listAuditLogs(marketplaceId: string, limit?: number): Promise<{
|
|
602
|
-
metadata: Record<string, unknown> | null;
|
|
603
662
|
id: string;
|
|
604
663
|
marketplaceId: string | null;
|
|
664
|
+
metadata: Record<string, unknown> | null;
|
|
605
665
|
createdAt: Date;
|
|
606
666
|
actorId: string | null;
|
|
607
667
|
action: string;
|
package/dist/core.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AA0BvC,OAAO,KAAK,EACV,iBAAiB,EACjB,WAAW,EAEX,YAAY,EACb,MAAM,uBAAuB,CAAC;AAG/B,eAAO,MAAM,YAAY,iDAAkD,CAAC;AAC5E,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAExD,gFAAgF;AAChF,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC;AAmLzC,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CA2BrE;AAaD,wBAAgB,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA2C3E;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAoCrF;AAqDD,wBAAgB,iCAAiC,CAAC,KAAK,EAAE;IACvD,IAAI,EAAE,WAAW,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC,QA2EA;AAED,qBAAa,QAAQ;IAEjB,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBADJ,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,YAAY;IAG/B,iBAAiB,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;;;;;;;;IAqBvD,cAAc,CAAC,EAAE,EAAE,MAAM;;;;;;;;IAOzB,WAAW,CAAC,KAAK,EAAE;QACvB,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,wBAAwB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACpC;;;;;;;;;;;IAyGK,QAAQ,CAAC,EAAE,EAAE,MAAM;;;;;;;;;;;IAOnB,yBAAyB,CAAC,KAAK,EAAE;QACrC,aAAa,EAAE,MAAM,CAAC;QACtB,OAAO,EAAE,MAAM,CAAC;QAChB,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC5C;;;;;;;;;;;IAoCK,iBAAiB,CAAC,KAAK,EAAE;QAC7B,aAAa,EAAE,MAAM,CAAC;QACtB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAClC;;;;;;;;IAwBK,kBAAkB,CAAC,KAAK,EAAE;QAC9B,aAAa,EAAE,MAAM,CAAC;QACtB,OAAO,EAAE,MAAM,CAAC;QAChB,eAAe,EAAE,MAAM,CAAC;QACxB,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACpC;;;;;;;;;;IAsCK,cAAc,CAAC,SAAS,EAAE,MAAM;;;;;;;;;;IAmBhC,UAAU,CAAC,EAAE,EAAE,MAAM;;;;;;;;;;IAOrB,qBAAqB,CAAC,SAAS,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IASvC,2BAA2B,CAAC,KAAK,EAAE;QACvC,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;QAClB,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC5C;;;;;;;;;;IA0CK,iBAAiB,CAAC,KAAK,EAAE;QAC7B,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC;KACnB;;;;;;;;;;;;;;;;;;;;;;;IA0ID;;;OAGG;IACG,8BAA8B,CAAC,WAAW,EAAE,MAAM;;;;;;;;;;;;;IAwBlD,kBAAkB,CACtB,KAAK,EAAE;QACL,aAAa,EAAE,MAAM,CAAC;QACtB,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAChC,EACD,IAAI,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,iBAAiB,CAAA;KAAE;;;;;;;;;;;;;;;IAmMrC,kBAAkB,CAAC,KAAK,EAAE;QAC9B,aAAa,EAAE,MAAM,CAAC;QACtB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAClC;;;IAwDK,yBAAyB,CAAC,KAAK,EAAE;QACrC,aAAa,EAAE,MAAM,CAAC;QACtB,OAAO,EAAE,MAAM,CAAC;KACjB;;;;;;;;;;;;IA0GK,YAAY,CAAC,KAAK,EAAE;QACxB,aAAa,EAAE,MAAM,CAAC;QACtB,OAAO,EAAE,MAAM,CAAC;QAChB,eAAe,EAAE,MAAM,CAAC;QACxB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB;IAuBK,UAAU,CAAC,aAAa,EAAE,MAAM;;;;;;;;;;;;;;;IAMhC,UAAU,CAAC,aAAa,EAAE,MAAM;;;;;;;;;;;IAMhC,YAAY,CAAC,aAAa,EAAE,MAAM;;;;;;;;;;IAMlC,gBAAgB,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,SAAM;;;;;;;;;;;IASnD,eAAe,CAAC,aAAa,EAAE,MAAM;;;;;;;;;;;;IAOrC,mBAAmB,CAAC,aAAa,EAAE,MAAM;;;;;;;;;;;;IAOzC,wBAAwB,CAAC,KAAK,EAAE;QACpC,aAAa,EAAE,MAAM,CAAC;QACtB,KAAK,EAAE,MAAM,CAAC;KACf;;;;;;;;;;;;IAWD,0FAA0F;IACpF,8BAA8B,CAAC,KAAK,EAAE,MAAM;;;;;;;;;;;;IAQlD,8FAA8F;IACxF,qBAAqB,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;;;;;;;;;;;;IAW5D,YAAY,CAAC,KAAK,EAAE;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;;;;;IAI3D,WAAW,CAAC,KAAK,EAAE;QACvB,aAAa,EAAE,MAAM,CAAC;QACtB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;KACnB;;;;;IAqBK,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS;;;;;IA+BxC,WAAW,CAAC,KAAK,EAAE,MAAM;IAOzB,WAAW,CAAC,aAAa,EAAE,MAAM;;;;;;;;;;;;IAOjC,YAAY,CAAC,KAAK,EAAE;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE;;;;;;;;;;;;IAgB5D,YAAY,CAAC,KAAK,EAAE;QACxB,aAAa,EAAE,MAAM,CAAC;QACtB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;KACnB;;;;;IAmBK,yBAAyB,CAAC,KAAK,EAAE;QACrC,aAAa,EAAE,MAAM,CAAC;QACtB,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;KACvB;;;;;;;;IAgBK,wBAAwB,CAAC,aAAa,EAAE,MAAM;;;;;;;;IAO9C,qBAAqB,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,SAAM;;;;;;;;;;;;;;;IA2BxD,eAAe,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE;;;;;;;IA0B9D,YAAY,CAAC,EAAE,EAAE,MAAM;;;;;;;IAQvB,sBAAsB,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;;;;;;;;IAQ7D,gBAAgB,CAAC,aAAa,EAAE,MAAM;;;;;;;;IAWtC,iBAAiB,CAAC,KAAK,EAAE;QAC7B,aAAa,EAAE,MAAM,CAAC;QACtB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACjC;;;;;;;;IAqCK,iBAAiB,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAWzD,qBAAqB,CAAC,KAAK,EAAE;QACjC,aAAa,EAAE,MAAM,CAAC;QACtB,QAAQ,EAAE,mBAAmB,CAAC;QAC9B,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAClC;;kBA8B6B,mBAAmB;;;;;;IAQ3C,qBAAqB,CAAC,KAAK,EAAE;QACjC,aAAa,EAAE,MAAM,CAAC;QACtB,QAAQ,EAAE,MAAM,CAAC;KAClB;IAWD,yCAAyC;IACnC,mBAAmB,CAAC,aAAa,EAAE,MAAM;;;;;;;;IAmB/C,8DAA8D;IACxD,qBAAqB,CAAC,KAAK,EAAE;QACjC,aAAa,EAAE,MAAM,CAAC;QACtB,QAAQ,EAAE,mBAAmB,CAAC;KAC/B,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAAG,IAAI,CAAC;IAYxE;;OAEG;IACG,2BAA2B,CAAC,aAAa,EAAE,MAAM;;;;;IAejD,sBAAsB,CAAC,KAAK,EAAE;QAClC,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;KACrB;;;;;;;;;;;IAWK,sBAAsB,CAAC,KAAK,EAAE;QAClC,aAAa,EAAE,MAAM,CAAC;QACtB,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,MAAM,CAAC;KACnB;;;;;;;;;;;IAUK,uBAAuB,CAAC,KAAK,EAAE;QACnC,aAAa,EAAE,MAAM,CAAC;QACtB,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACrC,cAAc,EAAE,MAAM,CAAC;QACvB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACvC;;;;;;;;;;;IAqBD,yBAAyB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAIjD,uBAAuB,CAAC,aAAa,EAAE,MAAM;;;;;qBAsBpB,MAAM;kBAAQ,MAAM;oBAAU,MAAM;;;IA0CnE;;;OAGG;IACG,cAAc,CAClB,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,EACf,iBAAiB,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE;;;;IAqEnE,oBAAoB,CAAC,aAAa,EAAE,MAAM;;;;;;;IAe1C,cAAc,CAAC,KAAK,EAAE;QAC1B,aAAa,EAAE,MAAM,CAAC;QACtB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACpC;IAcK,aAAa,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,SAAM;;;;;;;;;CAQvD"}
|
package/dist/core.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createCipheriv, createDecipheriv, createHash, randomBytes } from "node:crypto";
|
|
2
|
-
import { actors, adminUsers, apiKeys, auditLogs, domainEvents, fulfillments, integrations, ledgerEntries, listingTypes, listingVersions, listings, marketplaces, orders, paymentChallenges, paymentReceipts, requestIdempotency, reviews, settlements, webhookSubscriptions, webhookDeliveries, } from "@queelabs/db/schema";
|
|
3
|
-
import { and, desc, eq } from "drizzle-orm";
|
|
2
|
+
import { actors, adminUsers, apiKeys, auditLogs, domainEvents, fulfillments, integrations, marketplaceRails, ledgerEntries, listingTypes, listingVersions, listings, marketplaces, orders, paymentChallenges, paymentReceipts, requestIdempotency, reviews, settlements, webhookSubscriptions, webhookDeliveries, } from "@queelabs/db/schema";
|
|
3
|
+
import { and, asc, desc, eq, ne } from "drizzle-orm";
|
|
4
4
|
import { nanoid } from "nanoid";
|
|
5
5
|
import { recordDomainEvent } from "./event-service.js";
|
|
6
6
|
export const apiKeyScopes = ["admin", "read", "write", "webhooks"];
|
|
@@ -39,6 +39,13 @@ function verifyApiKeyHash(rawKey, storedHash) {
|
|
|
39
39
|
function hashRequestFingerprint(body) {
|
|
40
40
|
return createHash("sha256").update(JSON.stringify(body)).digest("hex");
|
|
41
41
|
}
|
|
42
|
+
function formatCheckoutRailLabel(railType) {
|
|
43
|
+
if (!railType)
|
|
44
|
+
return railType;
|
|
45
|
+
if (railType.length === 1)
|
|
46
|
+
return railType.toUpperCase();
|
|
47
|
+
return railType.charAt(0).toUpperCase() + railType.slice(1);
|
|
48
|
+
}
|
|
42
49
|
function stableStringify(value) {
|
|
43
50
|
if (value === null || typeof value !== "object") {
|
|
44
51
|
return JSON.stringify(value);
|
|
@@ -231,6 +238,18 @@ export function redactConfig(config) {
|
|
|
231
238
|
}
|
|
232
239
|
return redacted;
|
|
233
240
|
}
|
|
241
|
+
function coerceRecord(value) {
|
|
242
|
+
if (!value || typeof value !== "object" || Array.isArray(value))
|
|
243
|
+
return {};
|
|
244
|
+
return value;
|
|
245
|
+
}
|
|
246
|
+
function readAcceptedPaymentRails(challengePayload) {
|
|
247
|
+
const a = challengePayload.acceptedPaymentRails;
|
|
248
|
+
if (!Array.isArray(a))
|
|
249
|
+
return null;
|
|
250
|
+
const out = a.filter((x) => typeof x === "string" && x.length > 0);
|
|
251
|
+
return out.length > 0 ? out : null;
|
|
252
|
+
}
|
|
234
253
|
function normalizeScopes(scopes) {
|
|
235
254
|
if (!scopes || scopes.length === 0)
|
|
236
255
|
return ["admin"];
|
|
@@ -656,6 +675,24 @@ export class QueeCore {
|
|
|
656
675
|
aggregateId: orderId,
|
|
657
676
|
payload: { qtxId },
|
|
658
677
|
});
|
|
678
|
+
const checkoutRailRows = await this.listCheckoutPaymentRailsRaw(input.marketplaceId);
|
|
679
|
+
let checkoutRails;
|
|
680
|
+
if (checkoutRailRows.length > 0) {
|
|
681
|
+
if (checkoutRailRows.length > 1) {
|
|
682
|
+
const mppCfg = await this.getMarketplaceRailRaw({
|
|
683
|
+
marketplaceId: input.marketplaceId,
|
|
684
|
+
railType: "mpp",
|
|
685
|
+
});
|
|
686
|
+
const mode = (mppCfg?.adapter ?? "mock").toLowerCase();
|
|
687
|
+
if (mode !== "mock" && mode !== "http") {
|
|
688
|
+
throw new Error("This marketplace has multiple payment rails; set primary MPP rail adapter to mock or http in marketplace rails, or configure a single rail.");
|
|
689
|
+
}
|
|
690
|
+
}
|
|
691
|
+
checkoutRails = checkoutRailRows.map((row) => ({
|
|
692
|
+
rail: row.railType,
|
|
693
|
+
label: formatCheckoutRailLabel(row.railType),
|
|
694
|
+
}));
|
|
695
|
+
}
|
|
659
696
|
const challenge = await this.deps.mpp.createPurchaseChallenge({
|
|
660
697
|
marketplaceId: input.marketplaceId,
|
|
661
698
|
orderId,
|
|
@@ -665,6 +702,7 @@ export class QueeCore {
|
|
|
665
702
|
amountMinor: version.priceAmountMinor,
|
|
666
703
|
currency: version.priceCurrency,
|
|
667
704
|
payoutDestination: payoutDestination ?? undefined,
|
|
705
|
+
checkoutRails,
|
|
668
706
|
});
|
|
669
707
|
const pcId = challenge.challengeId;
|
|
670
708
|
await this.db.insert(paymentChallenges).values({
|
|
@@ -719,7 +757,8 @@ export class QueeCore {
|
|
|
719
757
|
expiresAt: challengeRow.expiresAt,
|
|
720
758
|
};
|
|
721
759
|
}
|
|
722
|
-
async verifyOrderPayment(input) {
|
|
760
|
+
async verifyOrderPayment(input, opts) {
|
|
761
|
+
const mppAdapter = opts?.mppAdapter ?? this.deps.mpp;
|
|
723
762
|
const existingReceipt = await this.db.query.paymentReceipts.findFirst({
|
|
724
763
|
where: and(eq(paymentReceipts.challengeId, input.challengeId), eq(paymentReceipts.marketplaceId, input.marketplaceId)),
|
|
725
764
|
});
|
|
@@ -745,11 +784,16 @@ export class QueeCore {
|
|
|
745
784
|
if (!orderRow)
|
|
746
785
|
throw new Error("order not found");
|
|
747
786
|
const challengeRow = await this.db.query.paymentChallenges.findFirst({
|
|
748
|
-
where: eq(paymentChallenges.id, input.challengeId),
|
|
787
|
+
where: and(eq(paymentChallenges.id, input.challengeId), eq(paymentChallenges.marketplaceId, input.marketplaceId)),
|
|
749
788
|
});
|
|
750
789
|
if (!challengeRow)
|
|
751
790
|
throw new Error("challenge not found");
|
|
752
|
-
|
|
791
|
+
const challengePayload = challengeRow.challengePayload;
|
|
792
|
+
const acceptedRails = readAcceptedPaymentRails(challengePayload);
|
|
793
|
+
const umbrella = challengeRow.rail === "mpp" &&
|
|
794
|
+
acceptedRails !== null &&
|
|
795
|
+
acceptedRails.includes(input.rail);
|
|
796
|
+
if (challengeRow.rail !== input.rail && !umbrella) {
|
|
753
797
|
throw new Error("rail does not match challenge");
|
|
754
798
|
}
|
|
755
799
|
if (challengeRow.orderId !== input.orderId) {
|
|
@@ -761,14 +805,13 @@ export class QueeCore {
|
|
|
761
805
|
if (challengeRow.status !== "pending") {
|
|
762
806
|
throw new Error("challenge is not pending");
|
|
763
807
|
}
|
|
764
|
-
const verifiedRail = challengeRow.rail;
|
|
765
|
-
const challengePayload = challengeRow.challengePayload;
|
|
808
|
+
const verifiedRail = (umbrella ? input.rail : challengeRow.rail);
|
|
766
809
|
assertProofMatchesStoredChallenge({
|
|
767
810
|
rail: verifiedRail,
|
|
768
811
|
challengePayload,
|
|
769
812
|
proof: input.proof,
|
|
770
813
|
});
|
|
771
|
-
const result = await
|
|
814
|
+
const result = await mppAdapter.verifyPurchase({
|
|
772
815
|
marketplaceId: input.marketplaceId,
|
|
773
816
|
orderId: input.orderId,
|
|
774
817
|
challengeId: input.challengeId,
|
|
@@ -1322,6 +1365,93 @@ export class QueeCore {
|
|
|
1322
1365
|
.delete(integrations)
|
|
1323
1366
|
.where(and(eq(integrations.marketplaceId, marketplaceId), eq(integrations.provider, provider)));
|
|
1324
1367
|
}
|
|
1368
|
+
async upsertMarketplaceRail(input) {
|
|
1369
|
+
const now = new Date();
|
|
1370
|
+
const encryptedConfig = encryptConfig(input.config ?? {});
|
|
1371
|
+
const configValue = JSON.parse(encryptedConfig);
|
|
1372
|
+
await this.db
|
|
1373
|
+
.insert(marketplaceRails)
|
|
1374
|
+
.values({
|
|
1375
|
+
marketplaceId: input.marketplaceId,
|
|
1376
|
+
railType: input.railType,
|
|
1377
|
+
adapter: input.adapter,
|
|
1378
|
+
config: configValue,
|
|
1379
|
+
createdAt: now,
|
|
1380
|
+
updatedAt: now,
|
|
1381
|
+
})
|
|
1382
|
+
.onConflictDoUpdate({
|
|
1383
|
+
target: [marketplaceRails.marketplaceId, marketplaceRails.railType],
|
|
1384
|
+
set: {
|
|
1385
|
+
adapter: input.adapter,
|
|
1386
|
+
config: configValue,
|
|
1387
|
+
updatedAt: now,
|
|
1388
|
+
},
|
|
1389
|
+
});
|
|
1390
|
+
const row = (await this.db.query.marketplaceRails.findFirst({
|
|
1391
|
+
where: and(eq(marketplaceRails.marketplaceId, input.marketplaceId), eq(marketplaceRails.railType, input.railType)),
|
|
1392
|
+
}));
|
|
1393
|
+
return {
|
|
1394
|
+
marketplaceId: row.marketplaceId,
|
|
1395
|
+
railType: row.railType,
|
|
1396
|
+
adapter: row.adapter,
|
|
1397
|
+
config: redactConfig(input.config ?? {}),
|
|
1398
|
+
updatedAt: row.updatedAt,
|
|
1399
|
+
createdAt: row.createdAt,
|
|
1400
|
+
};
|
|
1401
|
+
}
|
|
1402
|
+
async deleteMarketplaceRail(input) {
|
|
1403
|
+
await this.db
|
|
1404
|
+
.delete(marketplaceRails)
|
|
1405
|
+
.where(and(eq(marketplaceRails.marketplaceId, input.marketplaceId), eq(marketplaceRails.railType, input.railType)));
|
|
1406
|
+
}
|
|
1407
|
+
/** Redacted for API responses (safe). */
|
|
1408
|
+
async getMarketplaceRails(marketplaceId) {
|
|
1409
|
+
const rows = await this.db.query.marketplaceRails.findMany({
|
|
1410
|
+
where: eq(marketplaceRails.marketplaceId, marketplaceId),
|
|
1411
|
+
orderBy: asc(marketplaceRails.railType),
|
|
1412
|
+
});
|
|
1413
|
+
return rows.map((row) => {
|
|
1414
|
+
const decrypted = decryptConfig(JSON.stringify(row.config));
|
|
1415
|
+
const redacted = redactConfig(decrypted);
|
|
1416
|
+
return {
|
|
1417
|
+
marketplaceId: row.marketplaceId,
|
|
1418
|
+
railType: row.railType,
|
|
1419
|
+
adapter: row.adapter,
|
|
1420
|
+
config: redacted,
|
|
1421
|
+
createdAt: row.createdAt,
|
|
1422
|
+
updatedAt: row.updatedAt,
|
|
1423
|
+
};
|
|
1424
|
+
});
|
|
1425
|
+
}
|
|
1426
|
+
/** Raw decrypted config for internal adapter construction. */
|
|
1427
|
+
async getMarketplaceRailRaw(input) {
|
|
1428
|
+
const row = await this.db.query.marketplaceRails.findFirst({
|
|
1429
|
+
where: and(eq(marketplaceRails.marketplaceId, input.marketplaceId), eq(marketplaceRails.railType, input.railType)),
|
|
1430
|
+
});
|
|
1431
|
+
if (!row)
|
|
1432
|
+
return null;
|
|
1433
|
+
const decrypted = decryptConfig(JSON.stringify(row.config));
|
|
1434
|
+
return { adapter: row.adapter, config: coerceRecord(decrypted) };
|
|
1435
|
+
}
|
|
1436
|
+
/**
|
|
1437
|
+
* Payment rails available for umbrella MPP checkout (all configured rails except the `mpp` orchestrator).
|
|
1438
|
+
*/
|
|
1439
|
+
async listCheckoutPaymentRailsRaw(marketplaceId) {
|
|
1440
|
+
const rows = await this.db.query.marketplaceRails.findMany({
|
|
1441
|
+
where: and(eq(marketplaceRails.marketplaceId, marketplaceId), ne(marketplaceRails.railType, "mpp")),
|
|
1442
|
+
orderBy: asc(marketplaceRails.railType),
|
|
1443
|
+
});
|
|
1444
|
+
return rows.map((row) => ({
|
|
1445
|
+
railType: row.railType,
|
|
1446
|
+
adapter: row.adapter,
|
|
1447
|
+
config: coerceRecord(decryptConfig(JSON.stringify(row.config))),
|
|
1448
|
+
}));
|
|
1449
|
+
}
|
|
1450
|
+
async getPaymentChallengeRow(input) {
|
|
1451
|
+
return ((await this.db.query.paymentChallenges.findFirst({
|
|
1452
|
+
where: and(eq(paymentChallenges.id, input.challengeId), eq(paymentChallenges.marketplaceId, input.marketplaceId)),
|
|
1453
|
+
})) ?? null);
|
|
1454
|
+
}
|
|
1325
1455
|
async findIdempotentResponse(input) {
|
|
1326
1456
|
return this.db.query.requestIdempotency.findFirst({
|
|
1327
1457
|
where: and(eq(requestIdempotency.marketplaceId, input.marketplaceId), eq(requestIdempotency.idempotencyKey, input.idempotencyKey), eq(requestIdempotency.operation, input.operation)),
|
package/dist/core.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,75 +1,5 @@
|
|
|
1
|
-
export
|
|
2
|
-
|
|
3
|
-
[key: string]: unknown;
|
|
4
|
-
rail?: string;
|
|
5
|
-
accountRef?: string;
|
|
6
|
-
address?: string;
|
|
7
|
-
network?: string;
|
|
8
|
-
asset?: string;
|
|
9
|
-
metadata?: Record<string, unknown>;
|
|
10
|
-
}
|
|
11
|
-
export interface CreateChallengeInput {
|
|
12
|
-
marketplaceId: string;
|
|
13
|
-
orderId: string;
|
|
14
|
-
listingId?: string;
|
|
15
|
-
buyerActorId?: string;
|
|
16
|
-
sellerActorId?: string;
|
|
17
|
-
amountMinor: number;
|
|
18
|
-
currency: string;
|
|
19
|
-
payoutDestination?: PayoutDestination;
|
|
20
|
-
}
|
|
21
|
-
export interface CreateChallengeResult {
|
|
22
|
-
challengeId: string;
|
|
23
|
-
rail: PaymentRail;
|
|
24
|
-
payload: Record<string, unknown>;
|
|
25
|
-
expiresAt?: Date;
|
|
26
|
-
}
|
|
27
|
-
export interface VerifyPaymentInput {
|
|
28
|
-
marketplaceId: string;
|
|
29
|
-
orderId: string;
|
|
30
|
-
challengeId: string;
|
|
31
|
-
rail: PaymentRail;
|
|
32
|
-
challengePayload: Record<string, unknown>;
|
|
33
|
-
expectedAmountMinor: number;
|
|
34
|
-
expectedCurrency: string;
|
|
35
|
-
proof: Record<string, unknown>;
|
|
36
|
-
}
|
|
37
|
-
export interface VerifyPaymentResult {
|
|
38
|
-
receiptPayload: Record<string, unknown>;
|
|
39
|
-
verifiedAt: Date;
|
|
40
|
-
}
|
|
41
|
-
/** MPP-oriented: challenges + receipt verification */
|
|
42
|
-
export interface MppPaymentAdapter {
|
|
43
|
-
createPurchaseChallenge(input: CreateChallengeInput): Promise<CreateChallengeResult>;
|
|
44
|
-
verifyPurchase(input: VerifyPaymentInput): Promise<VerifyPaymentResult>;
|
|
45
|
-
}
|
|
46
|
-
export interface HoldSettlementInput {
|
|
47
|
-
marketplaceId: string;
|
|
48
|
-
orderId: string;
|
|
49
|
-
settlementId: string;
|
|
50
|
-
amountMinor: number;
|
|
51
|
-
currency: string;
|
|
52
|
-
metadata?: Record<string, unknown>;
|
|
53
|
-
}
|
|
54
|
-
export interface HoldSettlementResult {
|
|
55
|
-
metadata?: Record<string, unknown>;
|
|
56
|
-
}
|
|
57
|
-
export interface ReleaseSettlementInput {
|
|
58
|
-
marketplaceId: string;
|
|
59
|
-
orderId: string;
|
|
60
|
-
settlementId: string;
|
|
61
|
-
amountMinor: number;
|
|
62
|
-
currency: string;
|
|
63
|
-
metadata?: Record<string, unknown>;
|
|
64
|
-
}
|
|
65
|
-
export interface ReleaseSettlementResult {
|
|
66
|
-
metadata?: Record<string, unknown>;
|
|
67
|
-
}
|
|
68
|
-
/** Tempo-oriented settlement rail */
|
|
69
|
-
export interface TempoSettlementAdapter {
|
|
70
|
-
holdSettlement(input: HoldSettlementInput): Promise<HoldSettlementResult>;
|
|
71
|
-
releaseSettlement(input: ReleaseSettlementInput): Promise<ReleaseSettlementResult>;
|
|
72
|
-
}
|
|
1
|
+
export * from "@queelabs/connectors-contracts";
|
|
2
|
+
import type { MppPaymentAdapter, TempoSettlementAdapter } from "@queelabs/connectors-contracts";
|
|
73
3
|
export interface QueeCoreDeps {
|
|
74
4
|
mpp: MppPaymentAdapter;
|
|
75
5
|
tempo: TempoSettlementAdapter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payment-adapters.d.ts","sourceRoot":"","sources":["../src/payment-adapters.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"payment-adapters.d.ts","sourceRoot":"","sources":["../src/payment-adapters.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC;AAE/C,OAAO,KAAK,EACV,iBAAiB,EACjB,sBAAsB,EACvB,MAAM,gCAAgC,CAAC;AAExC,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,iBAAiB,CAAC;IACvB,KAAK,EAAE,sBAAsB,CAAC;CAC/B"}
|
package/dist/payment-adapters.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export
|
|
1
|
+
export * from "@queelabs/connectors-contracts";
|
|
2
2
|
//# sourceMappingURL=payment-adapters.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payment-adapters.js","sourceRoot":"","sources":["../src/payment-adapters.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"payment-adapters.js","sourceRoot":"","sources":["../src/payment-adapters.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@queelabs/core",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.2",
|
|
4
4
|
"license": "UNLICENSED",
|
|
5
5
|
"description": "Core transaction lifecycle engine for Quee",
|
|
6
6
|
"type": "module",
|
|
@@ -26,9 +26,10 @@
|
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"drizzle-orm": "^0.38.3",
|
|
28
28
|
"nanoid": "^5.0.9",
|
|
29
|
-
"@queelabs/db": "0.0.
|
|
30
|
-
"@queelabs/
|
|
31
|
-
"@queelabs/
|
|
29
|
+
"@queelabs/db": "0.0.2",
|
|
30
|
+
"@queelabs/protocol": "0.0.2",
|
|
31
|
+
"@queelabs/connectors-contracts": "0.0.2",
|
|
32
|
+
"@queelabs/events": "0.0.2"
|
|
32
33
|
},
|
|
33
34
|
"devDependencies": {
|
|
34
35
|
"@types/node": "^22.10.2",
|