@birtalanrobert/commerce 1.0.0 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -1
- package/dist/index.d.ts +8 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +20 -7
- package/dist/index.js.map +1 -1
- package/dist/migrations/1790000000000-AddSavedCardsAndKind.d.ts +30 -0
- package/dist/migrations/1790000000000-AddSavedCardsAndKind.d.ts.map +1 -0
- package/dist/migrations/1790000000000-AddSavedCardsAndKind.js +89 -0
- package/dist/migrations/1790000000000-AddSavedCardsAndKind.js.map +1 -0
- package/dist/nestjs/commerce.service.d.ts +65 -1
- package/dist/nestjs/commerce.service.d.ts.map +1 -1
- package/dist/nestjs/commerce.service.js +98 -2
- package/dist/nestjs/commerce.service.js.map +1 -1
- package/dist/nestjs/index.d.ts +6 -3
- package/dist/nestjs/index.d.ts.map +1 -1
- package/dist/nestjs/index.js +9 -3
- package/dist/nestjs/index.js.map +1 -1
- package/dist/nestjs/payment.entity.d.ts +11 -19
- package/dist/nestjs/payment.entity.d.ts.map +1 -1
- package/dist/nestjs/payment.entity.js +13 -0
- package/dist/nestjs/payment.entity.js.map +1 -1
- package/dist/nestjs/saved-card.entity.d.ts +42 -0
- package/dist/nestjs/saved-card.entity.d.ts.map +1 -0
- package/dist/nestjs/saved-card.entity.js +109 -0
- package/dist/nestjs/saved-card.entity.js.map +1 -0
- package/dist/payments.d.ts +54 -0
- package/dist/payments.d.ts.map +1 -0
- package/dist/payments.js +30 -0
- package/dist/payments.js.map +1 -0
- package/dist/providers/port.d.ts +68 -0
- package/dist/providers/port.d.ts.map +1 -1
- package/dist/providers/stripe.d.ts +12 -1
- package/dist/providers/stripe.d.ts.map +1 -1
- package/dist/providers/stripe.js +71 -1
- package/dist/providers/stripe.js.map +1 -1
- package/package.json +16 -3
- package/src/index.ts +27 -5
- package/src/migrations/1790000000000-AddSavedCardsAndKind.ts +92 -0
- package/src/nestjs/commerce.service.ts +170 -3
- package/src/nestjs/index.ts +15 -3
- package/src/nestjs/payment.entity.ts +17 -25
- package/src/nestjs/saved-card.entity.ts +69 -0
- package/src/payments.ts +67 -0
- package/src/providers/port.ts +74 -0
- package/src/providers/stripe.ts +90 -1
- package/stripe/package.json +5 -0
package/README.md
CHANGED
|
@@ -27,7 +27,7 @@ canTakeMoney('pending'); // false — the provider has not verified them yet
|
|
|
27
27
|
## Using it in a NestJS application
|
|
28
28
|
|
|
29
29
|
```ts
|
|
30
|
-
import { StripeConnect } from '@birtalanrobert/commerce';
|
|
30
|
+
import { StripeConnect } from '@birtalanrobert/commerce/stripe';
|
|
31
31
|
import {
|
|
32
32
|
COMMERCE_PROVIDER,
|
|
33
33
|
CommerceService,
|
|
@@ -55,6 +55,14 @@ export class PaymentsModule {}
|
|
|
55
55
|
Register `commerceEntities` and `commerceMigrations` with the data source, as
|
|
56
56
|
with every other package here.
|
|
57
57
|
|
|
58
|
+
**Three entry points, and the split is deliberate.** The root is pure — what a
|
|
59
|
+
deposit comes to, whether a business may sell yet, whether a payment can still
|
|
60
|
+
be refunded — because a console decides all three while somebody drags a
|
|
61
|
+
slider. `/nestjs` holds the service, the entities and the migrations.
|
|
62
|
+
`/stripe` holds the vendor's client on its own, because importing it pulls in
|
|
63
|
+
the whole SDK, and a barrel that re-exported it once put a payments SDK into a
|
|
64
|
+
booking console's first load.
|
|
65
|
+
|
|
58
66
|
## The parts worth knowing before using it
|
|
59
67
|
|
|
60
68
|
- **A business cannot be charged for until the provider says it may be paid
|
package/dist/index.d.ts
CHANGED
|
@@ -12,12 +12,14 @@
|
|
|
12
12
|
* the mistake that makes both hard to reason about — they differ in who pays
|
|
13
13
|
* whom, in which Stripe account, and in what happens when one fails.
|
|
14
14
|
*
|
|
15
|
-
* **This entry point is pure
|
|
16
|
-
*
|
|
17
|
-
* shows both while somebody drags a
|
|
18
|
-
*
|
|
15
|
+
* **This entry point is pure**, and stays that way by leaving things out. What
|
|
16
|
+
* a deposit comes to and whether a business may sell yet are decided without a
|
|
17
|
+
* database or a provider, because a console shows both while somebody drags a
|
|
18
|
+
* slider. Storage and the container are behind `/nestjs`; the Stripe client is
|
|
19
|
+
* behind `/stripe`, because a barrel that re-exports it puts the vendor's whole
|
|
20
|
+
* SDK into every bundle that wanted to divide a price by three.
|
|
19
21
|
*/
|
|
20
22
|
export { balanceAfter, canTakeMoney, depositFor, payoutBlockReason, type DepositKind, type DepositPolicy, type PayoutStatus, } from './deposits';
|
|
21
|
-
export
|
|
22
|
-
export {
|
|
23
|
+
export { isRefundable, refundableAmount, type PaymentKind, type PaymentMethod, type PaymentState, } from './payments';
|
|
24
|
+
export type { ChargeRequest, ChargeResult, OnboardingLink, PaymentProvider, ProviderAccount, ProviderEvent, RefundRequest, SaveCardRequest, SaveCardResult, StoredCard, } from './providers/port';
|
|
23
25
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,iBAAiB,EACjB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,YAAY,GAClB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,YAAY,GAClB,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,aAAa,EACb,YAAY,EACZ,cAAc,EACd,eAAe,EACf,eAAe,EACf,aAAa,EACb,aAAa,EACb,eAAe,EACf,cAAc,EACd,UAAU,GACX,MAAM,kBAAkB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.refundableAmount = exports.isRefundable = exports.payoutBlockReason = exports.depositFor = exports.canTakeMoney = exports.balanceAfter = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* Taking money on a business's behalf.
|
|
6
6
|
*
|
|
@@ -15,16 +15,29 @@ exports.StripeConnect = exports.payoutBlockReason = exports.depositFor = exports
|
|
|
15
15
|
* the mistake that makes both hard to reason about — they differ in who pays
|
|
16
16
|
* whom, in which Stripe account, and in what happens when one fails.
|
|
17
17
|
*
|
|
18
|
-
* **This entry point is pure
|
|
19
|
-
*
|
|
20
|
-
* shows both while somebody drags a
|
|
21
|
-
*
|
|
18
|
+
* **This entry point is pure**, and stays that way by leaving things out. What
|
|
19
|
+
* a deposit comes to and whether a business may sell yet are decided without a
|
|
20
|
+
* database or a provider, because a console shows both while somebody drags a
|
|
21
|
+
* slider. Storage and the container are behind `/nestjs`; the Stripe client is
|
|
22
|
+
* behind `/stripe`, because a barrel that re-exports it puts the vendor's whole
|
|
23
|
+
* SDK into every bundle that wanted to divide a price by three.
|
|
22
24
|
*/
|
|
23
25
|
var deposits_1 = require("./deposits");
|
|
24
26
|
Object.defineProperty(exports, "balanceAfter", { enumerable: true, get: function () { return deposits_1.balanceAfter; } });
|
|
25
27
|
Object.defineProperty(exports, "canTakeMoney", { enumerable: true, get: function () { return deposits_1.canTakeMoney; } });
|
|
26
28
|
Object.defineProperty(exports, "depositFor", { enumerable: true, get: function () { return deposits_1.depositFor; } });
|
|
27
29
|
Object.defineProperty(exports, "payoutBlockReason", { enumerable: true, get: function () { return deposits_1.payoutBlockReason; } });
|
|
28
|
-
var
|
|
29
|
-
Object.defineProperty(exports, "
|
|
30
|
+
var payments_1 = require("./payments");
|
|
31
|
+
Object.defineProperty(exports, "isRefundable", { enumerable: true, get: function () { return payments_1.isRefundable; } });
|
|
32
|
+
Object.defineProperty(exports, "refundableAmount", { enumerable: true, get: function () { return payments_1.refundableAmount; } });
|
|
33
|
+
/*
|
|
34
|
+
* `StripeConnect` is deliberately NOT re-exported here.
|
|
35
|
+
*
|
|
36
|
+
* It lives at `@birtalanrobert/commerce/stripe`, because importing it pulls in
|
|
37
|
+
* the vendor's whole SDK — and this entry point is imported by browser code
|
|
38
|
+
* that only wants to know what a deposit comes to. Re-exporting it put 30 KB of
|
|
39
|
+
* a payments SDK into a console's first load for a screen that never calls it:
|
|
40
|
+
* a barrel is a bundling decision, and the only way to keep this one pure is to
|
|
41
|
+
* leave the heavy thing out of it.
|
|
42
|
+
*/
|
|
30
43
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,uCAQoB;AAPlB,wGAAA,YAAY,OAAA;AACZ,wGAAA,YAAY,OAAA;AACZ,sGAAA,UAAU,OAAA;AACV,6GAAA,iBAAiB,OAAA;AAMnB,uCAMoB;AALlB,wGAAA,YAAY,OAAA;AACZ,4GAAA,gBAAgB,OAAA;AAmBlB;;;;;;;;;GASG"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { MigrationInterface, QueryRunner } from 'typeorm';
|
|
2
|
+
/**
|
|
3
|
+
* A card kept for later, and what each payment was actually for.
|
|
4
|
+
*
|
|
5
|
+
* ## `mortar_saved_cards`
|
|
6
|
+
*
|
|
7
|
+
* The strongest thing a business can do about people not turning up short of
|
|
8
|
+
* taking their money: nothing leaves the customer's account, and the card is
|
|
9
|
+
* there if a fee is later decided on. A **hold is not a substitute** — providers
|
|
10
|
+
* expire an authorisation within days and an appointment is usually further
|
|
11
|
+
* away than that — which is why this is a table and not a longer-lived hold.
|
|
12
|
+
*
|
|
13
|
+
* The consent is stored as **text with a time**, not as a boolean. A flag says
|
|
14
|
+
* somebody clicked; the sentence says what they were told they were agreeing
|
|
15
|
+
* to, and only the second is worth anything when they say they were not told.
|
|
16
|
+
*
|
|
17
|
+
* ## `kind` on a payment
|
|
18
|
+
*
|
|
19
|
+
* A tip belongs to the person who earned it and a product to neither the
|
|
20
|
+
* service nor the diary. Counting all three as service income tells a business
|
|
21
|
+
* its haircuts are more profitable than they are, and nothing computed
|
|
22
|
+
* afterwards can separate them again — so the distinction goes in the row, with
|
|
23
|
+
* `sale` as the default so every existing payment keeps meaning what it meant.
|
|
24
|
+
*/
|
|
25
|
+
export declare class AddSavedCardsAndKind1790000000000 implements MigrationInterface {
|
|
26
|
+
name: string;
|
|
27
|
+
up(queryRunner: QueryRunner): Promise<void>;
|
|
28
|
+
down(queryRunner: QueryRunner): Promise<void>;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=1790000000000-AddSavedCardsAndKind.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"1790000000000-AddSavedCardsAndKind.d.ts","sourceRoot":"","sources":["../../src/migrations/1790000000000-AddSavedCardsAndKind.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAG/D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,iCAAkC,YAAW,kBAAkB;IAC1E,IAAI,SAAuC;IAE9B,EAAE,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAuD3C,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAO3D"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AddSavedCardsAndKind1790000000000 = void 0;
|
|
4
|
+
const tenancy_1 = require("@birtalanrobert/tenancy");
|
|
5
|
+
/**
|
|
6
|
+
* A card kept for later, and what each payment was actually for.
|
|
7
|
+
*
|
|
8
|
+
* ## `mortar_saved_cards`
|
|
9
|
+
*
|
|
10
|
+
* The strongest thing a business can do about people not turning up short of
|
|
11
|
+
* taking their money: nothing leaves the customer's account, and the card is
|
|
12
|
+
* there if a fee is later decided on. A **hold is not a substitute** — providers
|
|
13
|
+
* expire an authorisation within days and an appointment is usually further
|
|
14
|
+
* away than that — which is why this is a table and not a longer-lived hold.
|
|
15
|
+
*
|
|
16
|
+
* The consent is stored as **text with a time**, not as a boolean. A flag says
|
|
17
|
+
* somebody clicked; the sentence says what they were told they were agreeing
|
|
18
|
+
* to, and only the second is worth anything when they say they were not told.
|
|
19
|
+
*
|
|
20
|
+
* ## `kind` on a payment
|
|
21
|
+
*
|
|
22
|
+
* A tip belongs to the person who earned it and a product to neither the
|
|
23
|
+
* service nor the diary. Counting all three as service income tells a business
|
|
24
|
+
* its haircuts are more profitable than they are, and nothing computed
|
|
25
|
+
* afterwards can separate them again — so the distinction goes in the row, with
|
|
26
|
+
* `sale` as the default so every existing payment keeps meaning what it meant.
|
|
27
|
+
*/
|
|
28
|
+
class AddSavedCardsAndKind1790000000000 {
|
|
29
|
+
name = 'AddSavedCardsAndKind1790000000000';
|
|
30
|
+
async up(queryRunner) {
|
|
31
|
+
await queryRunner.query(`
|
|
32
|
+
ALTER TABLE "mortar_payments"
|
|
33
|
+
ADD COLUMN "kind" varchar(16) NOT NULL DEFAULT 'sale'
|
|
34
|
+
`);
|
|
35
|
+
await queryRunner.query(`
|
|
36
|
+
ALTER TABLE "mortar_payments"
|
|
37
|
+
ADD CONSTRAINT "ck_payments_kind"
|
|
38
|
+
CHECK ("kind" IN ('sale', 'deposit', 'fee', 'tip', 'product'))
|
|
39
|
+
`);
|
|
40
|
+
await queryRunner.query(`
|
|
41
|
+
CREATE TABLE "mortar_saved_cards" (
|
|
42
|
+
"id" uuid NOT NULL DEFAULT gen_random_uuid(),
|
|
43
|
+
"created_at" timestamptz NOT NULL DEFAULT now(),
|
|
44
|
+
"updated_at" timestamptz NOT NULL DEFAULT now(),
|
|
45
|
+
"tenant_id" uuid NOT NULL,
|
|
46
|
+
-- Whose card it is, as the owning product names it. No foreign key, for
|
|
47
|
+
-- the same reason a payment has none: one product hangs a card off a
|
|
48
|
+
-- salon's client, another off a tenant's guest.
|
|
49
|
+
"subject" varchar(160) NOT NULL,
|
|
50
|
+
"provider" varchar(32) NOT NULL DEFAULT 'stripe',
|
|
51
|
+
-- The customer on *our* account. Under a destination charge the money
|
|
52
|
+
-- lands on the business's account while the card stays ours to charge,
|
|
53
|
+
-- and one created on the business's account cannot be used from here.
|
|
54
|
+
"customer_ref" varchar(128) NOT NULL,
|
|
55
|
+
"payment_method_ref" varchar(128) NOT NULL,
|
|
56
|
+
-- Enough to recognise it, and nothing more. We never see the number.
|
|
57
|
+
"brand" varchar(24),
|
|
58
|
+
"last4" varchar(4),
|
|
59
|
+
"expiry_month" int,
|
|
60
|
+
"expiry_year" int,
|
|
61
|
+
-- What they were told they were agreeing to, in the language they read
|
|
62
|
+
-- it in. Required: a card charged on a consent nobody can produce is an
|
|
63
|
+
-- argument the business loses.
|
|
64
|
+
"consent_text" varchar(1000) NOT NULL,
|
|
65
|
+
"consented_at" timestamptz NOT NULL,
|
|
66
|
+
"stored_by" uuid,
|
|
67
|
+
CONSTRAINT "pk_saved_cards" PRIMARY KEY ("id"),
|
|
68
|
+
CONSTRAINT "uq_saved_cards_tenant_id" UNIQUE ("tenant_id", "id"),
|
|
69
|
+
CONSTRAINT "uq_saved_cards_method" UNIQUE ("tenant_id", "payment_method_ref")
|
|
70
|
+
)
|
|
71
|
+
`);
|
|
72
|
+
await queryRunner.query(`
|
|
73
|
+
CREATE INDEX "ix_saved_cards_subject"
|
|
74
|
+
ON "mortar_saved_cards" ("tenant_id", "subject")
|
|
75
|
+
`);
|
|
76
|
+
for (const statement of (0, tenancy_1.enableRlsSql)('mortar_saved_cards')) {
|
|
77
|
+
await queryRunner.query(statement);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
async down(queryRunner) {
|
|
81
|
+
await queryRunner.query(`DROP TABLE IF EXISTS "mortar_saved_cards" CASCADE`);
|
|
82
|
+
await queryRunner.query(`
|
|
83
|
+
ALTER TABLE "mortar_payments" DROP CONSTRAINT IF EXISTS "ck_payments_kind"
|
|
84
|
+
`);
|
|
85
|
+
await queryRunner.query(`ALTER TABLE "mortar_payments" DROP COLUMN IF EXISTS "kind"`);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
exports.AddSavedCardsAndKind1790000000000 = AddSavedCardsAndKind1790000000000;
|
|
89
|
+
//# sourceMappingURL=1790000000000-AddSavedCardsAndKind.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"1790000000000-AddSavedCardsAndKind.js","sourceRoot":"","sources":["../../src/migrations/1790000000000-AddSavedCardsAndKind.ts"],"names":[],"mappings":";;;AACA,qDAAuD;AAEvD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAa,iCAAiC;IAC5C,IAAI,GAAG,mCAAmC,CAAC;IAEpC,KAAK,CAAC,EAAE,CAAC,WAAwB;QACtC,MAAM,WAAW,CAAC,KAAK,CAAC;;;KAGvB,CAAC,CAAC;QAEH,MAAM,WAAW,CAAC,KAAK,CAAC;;;;KAIvB,CAAC,CAAC;QAEH,MAAM,WAAW,CAAC,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA+BvB,CAAC,CAAC;QAEH,MAAM,WAAW,CAAC,KAAK,CAAC;;;KAGvB,CAAC,CAAC;QAEH,KAAK,MAAM,SAAS,IAAI,IAAA,sBAAY,EAAC,oBAAoB,CAAC,EAAE,CAAC;YAC3D,MAAM,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,WAAwB;QACxC,MAAM,WAAW,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;QAC7E,MAAM,WAAW,CAAC,KAAK,CAAC;;KAEvB,CAAC,CAAC;QACH,MAAM,WAAW,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAC;IACxF,CAAC;CACF;AAjED,8EAiEC"}
|
|
@@ -2,7 +2,9 @@ import type { DataSource } from 'typeorm';
|
|
|
2
2
|
import { type PayoutStatus } from '../deposits';
|
|
3
3
|
import type { PaymentProvider, ProviderEvent } from '../providers/port';
|
|
4
4
|
import { PayoutAccount } from './payout-account.entity';
|
|
5
|
+
import { type PaymentKind } from '../payments';
|
|
5
6
|
import { Payment, PaymentRefund, type PaymentMethod } from './payment.entity';
|
|
7
|
+
import { SavedCard } from './saved-card.entity';
|
|
6
8
|
/** The provider this deployment uses, injected so tests can supply their own. */
|
|
7
9
|
export declare const COMMERCE_PROVIDER: unique symbol;
|
|
8
10
|
export interface TakePayment {
|
|
@@ -11,6 +13,15 @@ export interface TakePayment {
|
|
|
11
13
|
readonly currency: string;
|
|
12
14
|
readonly applicationFee?: number;
|
|
13
15
|
readonly description?: string;
|
|
16
|
+
/** What it is for. `sale` unless said otherwise. */
|
|
17
|
+
readonly kind?: PaymentKind;
|
|
18
|
+
/**
|
|
19
|
+
* A stored card to charge without anybody present.
|
|
20
|
+
*
|
|
21
|
+
* The whole reason for keeping one: a fee is decided days after the fact, and
|
|
22
|
+
* the customer is not there to be asked.
|
|
23
|
+
*/
|
|
24
|
+
readonly savedCardId?: string;
|
|
14
25
|
/** False holds the money instead of taking it. See `capture`. */
|
|
15
26
|
readonly capture?: boolean;
|
|
16
27
|
/**
|
|
@@ -26,8 +37,29 @@ export interface RecordPayment {
|
|
|
26
37
|
readonly amount: number;
|
|
27
38
|
readonly currency: string;
|
|
28
39
|
readonly method: Exclude<PaymentMethod, 'card'>;
|
|
40
|
+
readonly kind?: PaymentKind;
|
|
29
41
|
readonly detail?: string;
|
|
30
42
|
}
|
|
43
|
+
/**
|
|
44
|
+
* A charge, and what the browser needs to finish it.
|
|
45
|
+
*
|
|
46
|
+
* The secret is returned rather than stored: a charge created on the server has
|
|
47
|
+
* no card attached to it yet, and the card is entered against the provider's own
|
|
48
|
+
* script so the number never reaches us. Without handing it back, a payment can
|
|
49
|
+
* be created and never paid — which a customer reads as "it took my booking and
|
|
50
|
+
* lost my money".
|
|
51
|
+
*/
|
|
52
|
+
export interface TakenPayment {
|
|
53
|
+
readonly payment: Payment;
|
|
54
|
+
readonly clientSecret?: string;
|
|
55
|
+
}
|
|
56
|
+
/** A card being stored, and what the browser confirms it with. */
|
|
57
|
+
export interface CardToSave {
|
|
58
|
+
readonly subject: string;
|
|
59
|
+
readonly reference: string;
|
|
60
|
+
/** What the customer was told they were agreeing to, in their own language. */
|
|
61
|
+
readonly consentText: string;
|
|
62
|
+
}
|
|
31
63
|
/**
|
|
32
64
|
* Money between a customer and a business, and the record of it.
|
|
33
65
|
*
|
|
@@ -74,7 +106,39 @@ export declare class CommerceService {
|
|
|
74
106
|
* customer debited and the money nowhere anybody can see it, and the first
|
|
75
107
|
* the business hears is asking where it went.
|
|
76
108
|
*/
|
|
77
|
-
take(tenantId: string, input: TakePayment): Promise<
|
|
109
|
+
take(tenantId: string, input: TakePayment): Promise<TakenPayment>;
|
|
110
|
+
/**
|
|
111
|
+
* Starts storing a card without charging it, and records what was agreed.
|
|
112
|
+
*
|
|
113
|
+
* Two steps, because there is a browser in the middle: this creates the
|
|
114
|
+
* intent and hands back a secret, and `confirmCard` writes the row once the
|
|
115
|
+
* provider says a card really is stored. Believing the browser instead would
|
|
116
|
+
* mean a business holding a card reference that charges nothing.
|
|
117
|
+
*/
|
|
118
|
+
saveCard(tenantId: string, input: CardToSave): Promise<{
|
|
119
|
+
externalId: string;
|
|
120
|
+
clientSecret: string;
|
|
121
|
+
}>;
|
|
122
|
+
/**
|
|
123
|
+
* Writes down the card the provider says is now stored.
|
|
124
|
+
*
|
|
125
|
+
* Read back from the provider rather than taken from the browser: what a page
|
|
126
|
+
* reports is what a page was told to report, and this row is what a business
|
|
127
|
+
* will later charge real money against.
|
|
128
|
+
*/
|
|
129
|
+
confirmCard(tenantId: string, externalId: string, input: CardToSave): Promise<SavedCard | null>;
|
|
130
|
+
/** Every card kept for somebody, newest first. */
|
|
131
|
+
savedCards(tenantId: string, subject: string): Promise<SavedCard[]>;
|
|
132
|
+
savedCard(tenantId: string, id: string): Promise<SavedCard | null>;
|
|
133
|
+
/**
|
|
134
|
+
* Forgets a card, at the customer's request or the business's.
|
|
135
|
+
*
|
|
136
|
+
* The provider is told first. A row deleted while the provider still holds
|
|
137
|
+
* the card is a card nobody can see and anybody with the reference can
|
|
138
|
+
* charge; the reverse — a detached card with a row still here — is merely a
|
|
139
|
+
* charge that fails.
|
|
140
|
+
*/
|
|
141
|
+
forgetCard(tenantId: string, id: string): Promise<void>;
|
|
78
142
|
/**
|
|
79
143
|
* Writes down money that arrived some other way.
|
|
80
144
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commerce.service.d.ts","sourceRoot":"","sources":["../../src/nestjs/commerce.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAiB,MAAM,SAAS,CAAC;AAKzD,OAAO,EAAgB,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"commerce.service.d.ts","sourceRoot":"","sources":["../../src/nestjs/commerce.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAiB,MAAM,SAAS,CAAC;AAKzD,OAAO,EAAgB,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAgB,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,iFAAiF;AACjF,eAAO,MAAM,iBAAiB,eAA8B,CAAC;AAE7D,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,oDAAoD;IACpD,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC;IAC5B;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,iEAAiE;IACjE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAChD,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,kEAAkE;AAClE,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,+EAA+E;IAC/E,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;;;;;;;;GAYG;AACH,qBACa,eAAe;IAEJ,OAAO,CAAC,QAAQ,CAAC,UAAU;IACpB,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBADf,UAAU,EAAE,UAAU,EACf,QAAQ,EAAE,eAAe;IAKvE,gFAAgF;IAC1E,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAW9D,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAI3D;;;;;;OAMG;IACG,eAAe,CACnB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,GAClF,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,IAAI,CAAA;KAAE,CAAC;IAc5C,yEAAyE;IACnE,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAYnE;;;;;;;OAOG;IACG,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAwEvE;;;;;;;OAOG;IACG,QAAQ,CACZ,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,UAAU,GAChB,OAAO,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;IAcxD;;;;;;OAMG;IACG,WAAW,CACf,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,UAAU,GAChB,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAsC5B,kDAAkD;IAC5C,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAWnE,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAQxE;;;;;;;OAOG;IACG,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAa7D;;;;;;;;OAQG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IAuCtE;;;;;;OAMG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAiBrF,mDAAmD;IAC7C,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAcpE;;;;;OAKG;IACG,MAAM,CACV,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,OAAO,CAAC;IAmEnB,kEAAkE;IAC5D,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAWvE,kDAAkD;IAC5C,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAa/E;;;;;;;OAOG;IACG,MAAM,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,GAAG,aAAa,GAAG,SAAS,CAAC;YAyClE,IAAI;YAWJ,MAAM;YAcN,WAAW;CAkC1B"}
|
|
@@ -20,7 +20,9 @@ const context_1 = require("@birtalanrobert/context");
|
|
|
20
20
|
const http_1 = require("@birtalanrobert/http");
|
|
21
21
|
const deposits_1 = require("../deposits");
|
|
22
22
|
const payout_account_entity_1 = require("./payout-account.entity");
|
|
23
|
+
const payments_1 = require("../payments");
|
|
23
24
|
const payment_entity_1 = require("./payment.entity");
|
|
25
|
+
const saved_card_entity_1 = require("./saved-card.entity");
|
|
24
26
|
/** The provider this deployment uses, injected so tests can supply their own. */
|
|
25
27
|
exports.COMMERCE_PROVIDER = Symbol('COMMERCE_PROVIDER');
|
|
26
28
|
/**
|
|
@@ -89,6 +91,10 @@ let CommerceService = class CommerceService {
|
|
|
89
91
|
if (!account || !(0, deposits_1.canTakeMoney)(account.status)) {
|
|
90
92
|
throw new http_1.ConflictError('This business cannot take card payments yet.');
|
|
91
93
|
}
|
|
94
|
+
const saved = input.savedCardId ? await this.savedCard(tenantId, input.savedCardId) : null;
|
|
95
|
+
if (input.savedCardId && !saved) {
|
|
96
|
+
throw new http_1.NotFoundError('SavedCard', input.savedCardId);
|
|
97
|
+
}
|
|
92
98
|
if (input.amount <= 0) {
|
|
93
99
|
throw new http_1.ValidationError([{ field: 'amount', message: 'There is nothing to charge.' }], 'There is nothing to charge.');
|
|
94
100
|
}
|
|
@@ -100,14 +106,16 @@ let CommerceService = class CommerceService {
|
|
|
100
106
|
subject: input.subject,
|
|
101
107
|
capture: input.capture ?? true,
|
|
102
108
|
...(input.description ? { description: input.description } : {}),
|
|
109
|
+
...(saved ? { customer: saved.customerRef, paymentMethod: saved.paymentMethodRef } : {}),
|
|
103
110
|
reference: input.reference,
|
|
104
111
|
});
|
|
105
|
-
|
|
112
|
+
const payment = await (0, tenancy_1.runInTenantTransaction)(this.dataSource, async (scoped) => {
|
|
106
113
|
const repository = scoped.getRepository(payment_entity_1.Payment);
|
|
107
114
|
return repository.save(repository.create({
|
|
108
115
|
tenantId,
|
|
109
116
|
subject: input.subject,
|
|
110
117
|
method: 'card',
|
|
118
|
+
kind: input.kind ?? 'sale',
|
|
111
119
|
state: result.state,
|
|
112
120
|
amount: String(input.amount),
|
|
113
121
|
currency: input.currency,
|
|
@@ -123,6 +131,93 @@ let CommerceService = class CommerceService {
|
|
|
123
131
|
recordedBy: (0, context_1.getActor)()?.id ?? null,
|
|
124
132
|
}));
|
|
125
133
|
}, { tenantId });
|
|
134
|
+
/*
|
|
135
|
+
* The secret is handed back and never written down.
|
|
136
|
+
*
|
|
137
|
+
* It authorises whoever holds it to pay this one charge, so it belongs in
|
|
138
|
+
* the response to the person paying and nowhere else — not in a column, not
|
|
139
|
+
* in a log line, and not in an error.
|
|
140
|
+
*/
|
|
141
|
+
return { payment, ...(result.clientSecret ? { clientSecret: result.clientSecret } : {}) };
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Starts storing a card without charging it, and records what was agreed.
|
|
145
|
+
*
|
|
146
|
+
* Two steps, because there is a browser in the middle: this creates the
|
|
147
|
+
* intent and hands back a secret, and `confirmCard` writes the row once the
|
|
148
|
+
* provider says a card really is stored. Believing the browser instead would
|
|
149
|
+
* mean a business holding a card reference that charges nothing.
|
|
150
|
+
*/
|
|
151
|
+
async saveCard(tenantId, input) {
|
|
152
|
+
const existing = await this.savedCards(tenantId, input.subject);
|
|
153
|
+
const result = await this.provider.saveCard({
|
|
154
|
+
subject: input.subject,
|
|
155
|
+
reference: input.reference,
|
|
156
|
+
// Reuse the customer this person already has, so a second card joins the
|
|
157
|
+
// first rather than creating a stranger with the same name.
|
|
158
|
+
...(existing[0] ? { customer: existing[0].customerRef } : {}),
|
|
159
|
+
});
|
|
160
|
+
return { externalId: result.externalId, clientSecret: result.clientSecret };
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Writes down the card the provider says is now stored.
|
|
164
|
+
*
|
|
165
|
+
* Read back from the provider rather than taken from the browser: what a page
|
|
166
|
+
* reports is what a page was told to report, and this row is what a business
|
|
167
|
+
* will later charge real money against.
|
|
168
|
+
*/
|
|
169
|
+
async confirmCard(tenantId, externalId, input) {
|
|
170
|
+
const stored = await this.provider.storedCard(externalId);
|
|
171
|
+
if (!stored)
|
|
172
|
+
return null;
|
|
173
|
+
return (0, tenancy_1.runInTenantTransaction)(this.dataSource, async (scoped) => {
|
|
174
|
+
const repository = scoped.getRepository(saved_card_entity_1.SavedCard);
|
|
175
|
+
const already = await repository.findOne({
|
|
176
|
+
where: { tenantId, paymentMethodRef: stored.paymentMethod },
|
|
177
|
+
});
|
|
178
|
+
// Confirming twice is the ordinary case on a slow connection, not an
|
|
179
|
+
// exotic one, and it must not leave two rows for one card.
|
|
180
|
+
if (already)
|
|
181
|
+
return already;
|
|
182
|
+
return repository.save(repository.create({
|
|
183
|
+
tenantId,
|
|
184
|
+
subject: input.subject,
|
|
185
|
+
provider: this.provider.name,
|
|
186
|
+
customerRef: stored.customer,
|
|
187
|
+
paymentMethodRef: stored.paymentMethod,
|
|
188
|
+
brand: stored.brand ?? null,
|
|
189
|
+
last4: stored.last4 ?? null,
|
|
190
|
+
expiryMonth: stored.expiryMonth ?? null,
|
|
191
|
+
expiryYear: stored.expiryYear ?? null,
|
|
192
|
+
consentText: input.consentText,
|
|
193
|
+
consentedAt: new Date(),
|
|
194
|
+
storedBy: (0, context_1.getActor)()?.id ?? null,
|
|
195
|
+
}));
|
|
196
|
+
}, { tenantId });
|
|
197
|
+
}
|
|
198
|
+
/** Every card kept for somebody, newest first. */
|
|
199
|
+
async savedCards(tenantId, subject) {
|
|
200
|
+
return (0, tenancy_1.runInTenantTransaction)(this.dataSource, (scoped) => scoped
|
|
201
|
+
.getRepository(saved_card_entity_1.SavedCard)
|
|
202
|
+
.find({ where: { tenantId, subject }, order: { createdAt: 'DESC' } }), { tenantId });
|
|
203
|
+
}
|
|
204
|
+
async savedCard(tenantId, id) {
|
|
205
|
+
return (0, tenancy_1.runInTenantTransaction)(this.dataSource, (scoped) => scoped.getRepository(saved_card_entity_1.SavedCard).findOne({ where: { tenantId, id } }), { tenantId });
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Forgets a card, at the customer's request or the business's.
|
|
209
|
+
*
|
|
210
|
+
* The provider is told first. A row deleted while the provider still holds
|
|
211
|
+
* the card is a card nobody can see and anybody with the reference can
|
|
212
|
+
* charge; the reverse — a detached card with a row still here — is merely a
|
|
213
|
+
* charge that fails.
|
|
214
|
+
*/
|
|
215
|
+
async forgetCard(tenantId, id) {
|
|
216
|
+
const card = await this.savedCard(tenantId, id);
|
|
217
|
+
if (!card)
|
|
218
|
+
return;
|
|
219
|
+
await this.provider.forgetCard(card.paymentMethodRef);
|
|
220
|
+
await (0, tenancy_1.runInTenantTransaction)(this.dataSource, (scoped) => scoped.getRepository(saved_card_entity_1.SavedCard).delete({ tenantId, id }), { tenantId });
|
|
126
221
|
}
|
|
127
222
|
/**
|
|
128
223
|
* Writes down money that arrived some other way.
|
|
@@ -143,6 +238,7 @@ let CommerceService = class CommerceService {
|
|
|
143
238
|
tenantId,
|
|
144
239
|
subject: input.subject,
|
|
145
240
|
method: input.method,
|
|
241
|
+
kind: input.kind ?? 'sale',
|
|
146
242
|
// Captured immediately: the money is in the till. There is no
|
|
147
243
|
// provider to wait for and nothing that can fail later.
|
|
148
244
|
state: 'captured',
|
|
@@ -197,7 +293,7 @@ let CommerceService = class CommerceService {
|
|
|
197
293
|
*/
|
|
198
294
|
async refund(tenantId, paymentId, amount, reason) {
|
|
199
295
|
const payment = await this.find(tenantId, paymentId);
|
|
200
|
-
if (
|
|
296
|
+
if (!(0, payments_1.isRefundable)(payment.state)) {
|
|
201
297
|
throw new http_1.ConflictError('That payment cannot be refunded.');
|
|
202
298
|
}
|
|
203
299
|
const already = Number(payment.refunded);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commerce.service.js","sourceRoot":"","sources":["../../src/nestjs/commerce.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"commerce.service.js","sourceRoot":"","sources":["../../src/nestjs/commerce.service.ts"],"names":[],"mappings":"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"}
|
package/dist/nestjs/index.d.ts
CHANGED
|
@@ -6,13 +6,16 @@
|
|
|
6
6
|
* browser bundle.
|
|
7
7
|
*/
|
|
8
8
|
export { PayoutAccount } from './payout-account.entity';
|
|
9
|
-
export { Payment, PaymentRefund, type PaymentMethod, type PaymentState } from './payment.entity';
|
|
10
|
-
export {
|
|
9
|
+
export { Payment, PaymentRefund, type PaymentKind, type PaymentMethod, type PaymentState, } from './payment.entity';
|
|
10
|
+
export { SavedCard } from './saved-card.entity';
|
|
11
|
+
export { COMMERCE_PROVIDER, CommerceService, type CardToSave, type RecordPayment, type TakenPayment, type TakePayment, } from './commerce.service';
|
|
11
12
|
export { CreateCommerce1789800000000 } from '../migrations/1789800000000-CreateCommerce';
|
|
13
|
+
export { AddSavedCardsAndKind1790000000000 } from '../migrations/1790000000000-AddSavedCardsAndKind';
|
|
12
14
|
import { PayoutAccount } from './payout-account.entity';
|
|
13
15
|
import { Payment, PaymentRefund } from './payment.entity';
|
|
16
|
+
import { SavedCard } from './saved-card.entity';
|
|
14
17
|
import { CreateCommerce1789800000000 } from '../migrations/1789800000000-CreateCommerce';
|
|
15
18
|
/** Register with the data source, the way every other mortar package is. */
|
|
16
|
-
export declare const commerceEntities: (typeof PayoutAccount | typeof Payment | typeof PaymentRefund)[];
|
|
19
|
+
export declare const commerceEntities: (typeof PayoutAccount | typeof Payment | typeof PaymentRefund | typeof SavedCard)[];
|
|
17
20
|
export declare const commerceMigrations: (typeof CreateCommerce1789800000000)[];
|
|
18
21
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/nestjs/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/nestjs/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EACL,OAAO,EACP,aAAa,EACb,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,YAAY,GAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,WAAW,GACjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,2BAA2B,EAAE,MAAM,4CAA4C,CAAC;AACzF,OAAO,EAAE,iCAAiC,EAAE,MAAM,kDAAkD,CAAC;AAErG,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,2BAA2B,EAAE,MAAM,4CAA4C,CAAC;AAGzF,4EAA4E;AAC5E,eAAO,MAAM,gBAAgB,qFAAqD,CAAC;AACnF,eAAO,MAAM,kBAAkB,wCAAmE,CAAC"}
|
package/dist/nestjs/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.commerceMigrations = exports.commerceEntities = exports.CreateCommerce1789800000000 = exports.CommerceService = exports.COMMERCE_PROVIDER = exports.PaymentRefund = exports.Payment = exports.PayoutAccount = void 0;
|
|
3
|
+
exports.commerceMigrations = exports.commerceEntities = exports.AddSavedCardsAndKind1790000000000 = exports.CreateCommerce1789800000000 = exports.CommerceService = exports.COMMERCE_PROVIDER = exports.SavedCard = exports.PaymentRefund = exports.Payment = exports.PayoutAccount = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* The parts that need a database and a container.
|
|
6
6
|
*
|
|
@@ -13,15 +13,21 @@ Object.defineProperty(exports, "PayoutAccount", { enumerable: true, get: functio
|
|
|
13
13
|
var payment_entity_1 = require("./payment.entity");
|
|
14
14
|
Object.defineProperty(exports, "Payment", { enumerable: true, get: function () { return payment_entity_1.Payment; } });
|
|
15
15
|
Object.defineProperty(exports, "PaymentRefund", { enumerable: true, get: function () { return payment_entity_1.PaymentRefund; } });
|
|
16
|
+
var saved_card_entity_1 = require("./saved-card.entity");
|
|
17
|
+
Object.defineProperty(exports, "SavedCard", { enumerable: true, get: function () { return saved_card_entity_1.SavedCard; } });
|
|
16
18
|
var commerce_service_1 = require("./commerce.service");
|
|
17
19
|
Object.defineProperty(exports, "COMMERCE_PROVIDER", { enumerable: true, get: function () { return commerce_service_1.COMMERCE_PROVIDER; } });
|
|
18
20
|
Object.defineProperty(exports, "CommerceService", { enumerable: true, get: function () { return commerce_service_1.CommerceService; } });
|
|
19
21
|
var _1789800000000_CreateCommerce_1 = require("../migrations/1789800000000-CreateCommerce");
|
|
20
22
|
Object.defineProperty(exports, "CreateCommerce1789800000000", { enumerable: true, get: function () { return _1789800000000_CreateCommerce_1.CreateCommerce1789800000000; } });
|
|
23
|
+
var _1790000000000_AddSavedCardsAndKind_1 = require("../migrations/1790000000000-AddSavedCardsAndKind");
|
|
24
|
+
Object.defineProperty(exports, "AddSavedCardsAndKind1790000000000", { enumerable: true, get: function () { return _1790000000000_AddSavedCardsAndKind_1.AddSavedCardsAndKind1790000000000; } });
|
|
21
25
|
const payout_account_entity_2 = require("./payout-account.entity");
|
|
22
26
|
const payment_entity_2 = require("./payment.entity");
|
|
27
|
+
const saved_card_entity_2 = require("./saved-card.entity");
|
|
23
28
|
const _1789800000000_CreateCommerce_2 = require("../migrations/1789800000000-CreateCommerce");
|
|
29
|
+
const _1790000000000_AddSavedCardsAndKind_2 = require("../migrations/1790000000000-AddSavedCardsAndKind");
|
|
24
30
|
/** Register with the data source, the way every other mortar package is. */
|
|
25
|
-
exports.commerceEntities = [payout_account_entity_2.PayoutAccount, payment_entity_2.Payment, payment_entity_2.PaymentRefund];
|
|
26
|
-
exports.commerceMigrations = [_1789800000000_CreateCommerce_2.CreateCommerce1789800000000];
|
|
31
|
+
exports.commerceEntities = [payout_account_entity_2.PayoutAccount, payment_entity_2.Payment, payment_entity_2.PaymentRefund, saved_card_entity_2.SavedCard];
|
|
32
|
+
exports.commerceMigrations = [_1789800000000_CreateCommerce_2.CreateCommerce1789800000000, _1790000000000_AddSavedCardsAndKind_2.AddSavedCardsAndKind1790000000000];
|
|
27
33
|
//# sourceMappingURL=index.js.map
|
package/dist/nestjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/nestjs/index.ts"],"names":[],"mappings":";;;AAAA;;;;;;GAMG;AACH,iEAAwD;AAA/C,sHAAA,aAAa,OAAA;AACtB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/nestjs/index.ts"],"names":[],"mappings":";;;AAAA;;;;;;GAMG;AACH,iEAAwD;AAA/C,sHAAA,aAAa,OAAA;AACtB,mDAM0B;AALxB,yGAAA,OAAO,OAAA;AACP,+GAAA,aAAa,OAAA;AAKf,yDAAgD;AAAvC,8GAAA,SAAS,OAAA;AAClB,uDAO4B;AAN1B,qHAAA,iBAAiB,OAAA;AACjB,mHAAA,eAAe,OAAA;AAMjB,4FAAyF;AAAhF,4IAAA,2BAA2B,OAAA;AACpC,wGAAqG;AAA5F,wJAAA,iCAAiC,OAAA;AAE1C,mEAAwD;AACxD,qDAA0D;AAC1D,2DAAgD;AAChD,8FAAyF;AACzF,0GAAqG;AAErG,4EAA4E;AAC/D,QAAA,gBAAgB,GAAG,CAAC,qCAAa,EAAE,wBAAO,EAAE,8BAAa,EAAE,6BAAS,CAAC,CAAC;AACtE,QAAA,kBAAkB,GAAG,CAAC,2DAA2B,EAAE,uEAAiC,CAAC,CAAC"}
|