@owlmeans/payment 0.1.1 → 0.1.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/LICENSE +1 -1
- package/README.md +51 -491
- package/build/consts.d.ts +22 -2
- package/build/consts.d.ts.map +1 -1
- package/build/consts.js +20 -0
- package/build/consts.js.map +1 -1
- package/build/model/checkout.d.ts +5 -0
- package/build/model/checkout.d.ts.map +1 -0
- package/build/model/checkout.js +24 -0
- package/build/model/checkout.js.map +1 -0
- package/build/model/index.d.ts +1 -0
- package/build/model/index.d.ts.map +1 -1
- package/build/model/index.js +1 -0
- package/build/model/index.js.map +1 -1
- package/build/model/product.d.ts.map +1 -1
- package/build/model/product.js +1 -0
- package/build/model/product.js.map +1 -1
- package/build/model/subscription.d.ts +6 -2
- package/build/model/subscription.d.ts.map +1 -1
- package/build/model/subscription.js +13 -0
- package/build/model/subscription.js.map +1 -1
- package/build/modules.d.ts +2 -1
- package/build/modules.d.ts.map +1 -1
- package/build/modules.js +13 -4
- package/build/modules.js.map +1 -1
- package/build/service.d.ts.map +1 -1
- package/build/service.js +29 -6
- package/build/service.js.map +1 -1
- package/build/types.d.ts +22 -2
- package/build/types.d.ts.map +1 -1
- package/package.json +13 -11
- package/src/consts.ts +23 -2
- package/src/model/checkout.ts +27 -0
- package/src/model/index.ts +1 -0
- package/src/model/product.ts +1 -0
- package/src/model/subscription.ts +16 -2
- package/src/modules.ts +33 -5
- package/src/service.ts +45 -9
- package/src/types.ts +28 -2
- package/tsconfig.json +5 -10
package/build/consts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consts.js","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AAEA,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"consts.js","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { JSONSchemaType } from 'ajv';
|
|
2
|
+
import type { CreateCheckoutBody, CreateCheckoutResponse } from '../types.js';
|
|
3
|
+
export declare const CreateCheckoutBodySchema: JSONSchemaType<CreateCheckoutBody>;
|
|
4
|
+
export declare const CreateCheckoutResponseSchema: JSONSchemaType<CreateCheckoutResponse>;
|
|
5
|
+
//# sourceMappingURL=checkout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkout.d.ts","sourceRoot":"","sources":["../../src/model/checkout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,KAAK,CAAA;AACzC,OAAO,KAAK,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAG7E,eAAO,MAAM,wBAAwB,EAAE,cAAc,CAAC,kBAAkB,CAavE,CAAA;AAED,eAAO,MAAM,4BAA4B,EAAE,cAAc,CAAC,sBAAsB,CAO/E,CAAA"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ResourceValueSchema, EntityValueSchema, IdValueSchema } from '@owlmeans/auth';
|
|
2
|
+
export const CreateCheckoutBodySchema = {
|
|
3
|
+
type: 'object',
|
|
4
|
+
properties: {
|
|
5
|
+
productSku: ResourceValueSchema,
|
|
6
|
+
sku: { ...ResourceValueSchema, nullable: true },
|
|
7
|
+
entityId: EntityValueSchema,
|
|
8
|
+
service: { ...ResourceValueSchema, minLength: 2 },
|
|
9
|
+
subscriptionId: { ...IdValueSchema, nullable: true },
|
|
10
|
+
successUrl: { ...ResourceValueSchema, minLength: 1, nullable: true },
|
|
11
|
+
cancelUrl: { ...ResourceValueSchema, minLength: 1, nullable: true },
|
|
12
|
+
},
|
|
13
|
+
required: ['productSku', 'entityId', 'service'],
|
|
14
|
+
additionalProperties: false,
|
|
15
|
+
};
|
|
16
|
+
export const CreateCheckoutResponseSchema = {
|
|
17
|
+
type: 'object',
|
|
18
|
+
properties: {
|
|
19
|
+
url: { type: 'string', minLength: 1 },
|
|
20
|
+
},
|
|
21
|
+
required: ['url'],
|
|
22
|
+
additionalProperties: false,
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=checkout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkout.js","sourceRoot":"","sources":["../../src/model/checkout.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAEtF,MAAM,CAAC,MAAM,wBAAwB,GAAuC;IAC1E,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,UAAU,EAAE,mBAAmB;QAC/B,GAAG,EAAE,EAAE,GAAG,mBAAmB,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC/C,QAAQ,EAAE,iBAAiB;QAC3B,OAAO,EAAE,EAAE,GAAG,mBAAmB,EAAE,SAAS,EAAE,CAAC,EAAE;QACjD,cAAc,EAAE,EAAE,GAAG,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE;QACpD,UAAU,EAAE,EAAE,GAAG,mBAAmB,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;QACpE,SAAS,EAAE,EAAE,GAAG,mBAAmB,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;KACpE;IACD,QAAQ,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,SAAS,CAAC;IAC/C,oBAAoB,EAAE,KAAK;CAC5B,CAAA;AAED,MAAM,CAAC,MAAM,4BAA4B,GAA2C;IAClF,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;KACtC;IACD,QAAQ,EAAE,CAAC,KAAK,CAAC;IACjB,oBAAoB,EAAE,KAAK;CAC5B,CAAA"}
|
package/build/model/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":"AACA,cAAc,cAAc,CAAA;AAC5B,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":"AACA,cAAc,cAAc,CAAA;AAC5B,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA"}
|
package/build/model/index.js
CHANGED
package/build/model/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":"AACA,cAAc,cAAc,CAAA;AAC5B,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":"AACA,cAAc,cAAc,CAAA;AAC5B,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"product.d.ts","sourceRoot":"","sources":["../../src/model/product.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,KAAK,CAAA;AACzC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAM1C,eAAO,MAAM,aAAa,EAAE,cAAc,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"product.d.ts","sourceRoot":"","sources":["../../src/model/product.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,KAAK,CAAA;AACzC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAM1C,eAAO,MAAM,aAAa,EAAE,cAAc,CAAC,OAAO,CAcjD,CAAA"}
|
package/build/model/product.js
CHANGED
|
@@ -9,6 +9,7 @@ export const ProductSchema = {
|
|
|
9
9
|
description: { ...ProductDescriptionSchema, nullable: true },
|
|
10
10
|
defaultLng: { ...LocalizationLngSchema, nullable: true },
|
|
11
11
|
services: { type: 'array', items: ResourceValueSchema, nullable: true },
|
|
12
|
+
gateways: { type: 'array', items: ResourceValueSchema, nullable: true },
|
|
12
13
|
capabilities: { type: 'array', items: PermissionSetSchema, nullable: true }
|
|
13
14
|
},
|
|
14
15
|
required: ['type', 'sku', 'title'],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"product.js","sourceRoot":"","sources":["../../src/model/product.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,qBAAqB,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,iBAAiB,EACvF,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AAEzE,MAAM,CAAC,MAAM,aAAa,GAA4B;IACpD,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,IAAI,EAAE,iBAAiB;QACvB,GAAG,EAAE,mBAAmB;QACxB,KAAK,EAAE,kBAAkB;QACzB,WAAW,EAAE,EAAE,GAAG,wBAAwB,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC5D,UAAU,EAAE,EAAE,GAAG,qBAAqB,EAAE,QAAQ,EAAE,IAAI,EAAE;QACxD,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,IAAI,EAAE;QACvE,YAAY,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,IAAI,EAAE;KAC5E;IACD,QAAQ,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC;IAClC,oBAAoB,EAAE,KAAK;CAC5B,CAAA"}
|
|
1
|
+
{"version":3,"file":"product.js","sourceRoot":"","sources":["../../src/model/product.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,qBAAqB,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,iBAAiB,EACvF,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AAEzE,MAAM,CAAC,MAAM,aAAa,GAA4B;IACpD,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,IAAI,EAAE,iBAAiB;QACvB,GAAG,EAAE,mBAAmB;QACxB,KAAK,EAAE,kBAAkB;QACzB,WAAW,EAAE,EAAE,GAAG,wBAAwB,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC5D,UAAU,EAAE,EAAE,GAAG,qBAAqB,EAAE,QAAQ,EAAE,IAAI,EAAE;QACxD,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,IAAI,EAAE;QACvE,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,IAAI,EAAE;QACvE,YAAY,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,IAAI,EAAE;KAC5E;IACD,QAAQ,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC;IAClC,oBAAoB,EAAE,KAAK;CAC5B,CAAA"}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import type { JSONSchemaType } from 'ajv';
|
|
2
|
-
import type { PlanSubscription,
|
|
2
|
+
import type { PlanSubscription, SubscriptionPropagateBody } from '../types.js';
|
|
3
3
|
export declare const PlanSubscriptionSchema: JSONSchemaType<PlanSubscription>;
|
|
4
|
-
export declare const
|
|
4
|
+
export declare const SubscriptionPropagateBodySchema: JSONSchemaType<SubscriptionPropagateBody>;
|
|
5
|
+
/**
|
|
6
|
+
* @deprecated Use SubscriptionPropogateBodySchema instead
|
|
7
|
+
*/
|
|
8
|
+
export declare const SubscriptionPropogateBodySchema: JSONSchemaType<SubscriptionPropagateBody>;
|
|
5
9
|
//# sourceMappingURL=subscription.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscription.d.ts","sourceRoot":"","sources":["../../src/model/subscription.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,KAAK,CAAA;AACzC,OAAO,KAAK,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAA;AAK9E,eAAO,MAAM,sBAAsB,EAAE,cAAc,CAAC,gBAAgB,CA+BnE,CAAA;AAED,eAAO,MAAM,+BAA+B,EAAE,cAAc,CAAC,yBAAyB,CASrF,CAAA"}
|
|
1
|
+
{"version":3,"file":"subscription.d.ts","sourceRoot":"","sources":["../../src/model/subscription.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,KAAK,CAAA;AACzC,OAAO,KAAK,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAA;AAK9E,eAAO,MAAM,sBAAsB,EAAE,cAAc,CAAC,gBAAgB,CA+BnE,CAAA;AAED,eAAO,MAAM,+BAA+B,EAAE,cAAc,CAAC,yBAAyB,CASrF,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,+BAA+B,EAAE,cAAc,CAAC,yBAAyB,CASrF,CAAA"}
|
|
@@ -33,6 +33,19 @@ export const PlanSubscriptionSchema = {
|
|
|
33
33
|
required: ['sku', 'entityId', 'createdAt', 'startsdAt', 'status'],
|
|
34
34
|
additionalProperties: false,
|
|
35
35
|
};
|
|
36
|
+
export const SubscriptionPropagateBodySchema = {
|
|
37
|
+
type: 'object',
|
|
38
|
+
properties: {
|
|
39
|
+
...PlanSubscriptionSchema.properties,
|
|
40
|
+
service: { ...ResourceValueSchema, minLength: 2 },
|
|
41
|
+
externalId: IdValueSchema,
|
|
42
|
+
}, // @TODO Figure out why it doesn't work (probably different version of ajv)
|
|
43
|
+
required: ['externalId', 'service', ...PlanSubscriptionSchema.required],
|
|
44
|
+
additionalProperties: false,
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* @deprecated Use SubscriptionPropogateBodySchema instead
|
|
48
|
+
*/
|
|
36
49
|
export const SubscriptionPropogateBodySchema = {
|
|
37
50
|
type: 'object',
|
|
38
51
|
properties: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscription.js","sourceRoot":"","sources":["../../src/model/subscription.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,UAAU,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AACvH,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAA;AACvD,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAErE,MAAM,CAAC,MAAM,sBAAsB,GAAqC;IACtE,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,GAAG,EAAE,mBAAmB;QACxB,QAAQ,EAAE,iBAAiB;QAC3B,aAAa,EAAE,EAAE,GAAG,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE;QACnD,UAAU,EAAE,EAAE,GAAG,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE;QAChD,SAAS,EAAE,UAAU;QACrB,aAAa,EAAE,EAAE,GAAG,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;QAChD,UAAU,EAAE,EAAE,GAAG,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC7C,SAAS,EAAE,UAAU;QACrB,YAAY,EAAE,EAAE,GAAG,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC/C,MAAM,EAAE,EAAE,GAAG,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;QACzC,SAAS,EAAE,EAAE,GAAG,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC5C,WAAW,EAAE,EAAE,GAAG,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC9C,UAAU,EAAE,EAAE,GAAG,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC7C,SAAS,EAAE,EAAE,GAAG,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC5C,cAAc,EAAE,EAAE,GAAG,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;QACjD,MAAM,EAAE,wBAAwB;QAChC,YAAY,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC3E,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI;YAC5C,oBAAoB,EAAE,iBAAiB;SACxC;QACD,YAAY,EAAE;YACZ,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI;YAC5C,oBAAoB,EAAE,qBAAqB;SAC5C;KACF;IACD,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,CAAC;IACjE,oBAAoB,EAAE,KAAK;CAC5B,CAAA;AAED,MAAM,CAAC,MAAM,+BAA+B,GAA8C;IACxF,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,GAAG,sBAAsB,CAAC,UAAU;QACpC,OAAO,EAAE,EAAE,GAAG,mBAAmB,EAAE,SAAS,EAAE,CAAC,EAAE;QACjD,UAAU,EAAE,aAAa;KACnB,EAAE,2EAA2E;IACrF,QAAQ,EAAE,CAAC,YAAY,EAAE,SAAS,EAAE,GAAG,sBAAsB,CAAC,QAAQ,CAAC;IACvE,oBAAoB,EAAE,KAAK;CAC5B,CAAA"}
|
|
1
|
+
{"version":3,"file":"subscription.js","sourceRoot":"","sources":["../../src/model/subscription.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,UAAU,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AACvH,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAA;AACvD,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAErE,MAAM,CAAC,MAAM,sBAAsB,GAAqC;IACtE,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,GAAG,EAAE,mBAAmB;QACxB,QAAQ,EAAE,iBAAiB;QAC3B,aAAa,EAAE,EAAE,GAAG,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE;QACnD,UAAU,EAAE,EAAE,GAAG,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE;QAChD,SAAS,EAAE,UAAU;QACrB,aAAa,EAAE,EAAE,GAAG,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;QAChD,UAAU,EAAE,EAAE,GAAG,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC7C,SAAS,EAAE,UAAU;QACrB,YAAY,EAAE,EAAE,GAAG,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC/C,MAAM,EAAE,EAAE,GAAG,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;QACzC,SAAS,EAAE,EAAE,GAAG,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC5C,WAAW,EAAE,EAAE,GAAG,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC9C,UAAU,EAAE,EAAE,GAAG,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC7C,SAAS,EAAE,EAAE,GAAG,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC5C,cAAc,EAAE,EAAE,GAAG,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;QACjD,MAAM,EAAE,wBAAwB;QAChC,YAAY,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC3E,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI;YAC5C,oBAAoB,EAAE,iBAAiB;SACxC;QACD,YAAY,EAAE;YACZ,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI;YAC5C,oBAAoB,EAAE,qBAAqB;SAC5C;KACF;IACD,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,CAAC;IACjE,oBAAoB,EAAE,KAAK;CAC5B,CAAA;AAED,MAAM,CAAC,MAAM,+BAA+B,GAA8C;IACxF,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,GAAG,sBAAsB,CAAC,UAAU;QACpC,OAAO,EAAE,EAAE,GAAG,mBAAmB,EAAE,SAAS,EAAE,CAAC,EAAE;QACjD,UAAU,EAAE,aAAa;KACnB,EAAE,2EAA2E;IACrF,QAAQ,EAAE,CAAC,YAAY,EAAE,SAAS,EAAE,GAAG,sBAAsB,CAAC,QAAQ,CAAC;IACvE,oBAAoB,EAAE,KAAK;CAC5B,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAA8C;IACxF,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,GAAG,sBAAsB,CAAC,UAAU;QACpC,OAAO,EAAE,EAAE,GAAG,mBAAmB,EAAE,SAAS,EAAE,CAAC,EAAE;QACjD,UAAU,EAAE,aAAa;KACnB,EAAE,2EAA2E;IACrF,QAAQ,EAAE,CAAC,YAAY,EAAE,SAAS,EAAE,GAAG,sBAAsB,CAAC,QAAQ,CAAC;IACvE,oBAAoB,EAAE,KAAK;CAC5B,CAAA"}
|
package/build/modules.d.ts
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
export declare const modules: import("@owlmeans/
|
|
1
|
+
export declare const modules: import("@owlmeans/entrypoint").CommonEntrypoint[];
|
|
2
|
+
export declare const serviceModules: import("@owlmeans/entrypoint").CommonEntrypoint[];
|
|
2
3
|
//# sourceMappingURL=modules.d.ts.map
|
package/build/modules.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modules.d.ts","sourceRoot":"","sources":["../src/modules.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"modules.d.ts","sourceRoot":"","sources":["../src/modules.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,OAAO,mDAgBnB,CAAA;AAED,eAAO,MAAM,cAAc,mDAkB1B,CAAA"}
|
package/build/modules.js
CHANGED
|
@@ -1,9 +1,18 @@
|
|
|
1
|
-
import { body, filter,
|
|
1
|
+
import { body, filter, entrypoint } from '@owlmeans/entrypoint';
|
|
2
2
|
import { route, backend, RouteMethod } from '@owlmeans/route';
|
|
3
3
|
import { paymentApi } from './consts.js';
|
|
4
|
-
import {
|
|
4
|
+
import { SubscriptionPropagateBodySchema } from './model/subscription.js';
|
|
5
|
+
import { CreateCheckoutBodySchema } from './model/checkout.js';
|
|
5
6
|
export const modules = [
|
|
6
|
-
|
|
7
|
-
|
|
7
|
+
entrypoint(route(paymentApi.subscription.base, '/subscription', backend())),
|
|
8
|
+
entrypoint(route(paymentApi.subscription.propogate, '/propogate', backend(paymentApi.subscription.base, RouteMethod.POST)), filter(body(SubscriptionPropagateBodySchema))),
|
|
9
|
+
entrypoint(route(paymentApi.subscription.propagate, '/propagate', backend(paymentApi.subscription.base, RouteMethod.POST)), filter(body(SubscriptionPropagateBodySchema)))
|
|
10
|
+
];
|
|
11
|
+
export const serviceModules = [
|
|
12
|
+
entrypoint(route(paymentApi.service.base, '/payment-service', backend())),
|
|
13
|
+
entrypoint(route(paymentApi.service.checkout.base, '/checkout', backend(paymentApi.service.base))),
|
|
14
|
+
entrypoint(route(paymentApi.service.checkout.session.base, '/session', backend(paymentApi.service.checkout.base))),
|
|
15
|
+
entrypoint(route(paymentApi.service.checkout.session.external.base, '/external', backend(paymentApi.service.checkout.session.base))),
|
|
16
|
+
entrypoint(route(paymentApi.service.checkout.session.external.create, '/create', backend(paymentApi.service.checkout.session.external.base, RouteMethod.POST)), filter(body(CreateCheckoutBodySchema)))
|
|
8
17
|
];
|
|
9
18
|
//# sourceMappingURL=modules.js.map
|
package/build/modules.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modules.js","sourceRoot":"","sources":["../src/modules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"modules.js","sourceRoot":"","sources":["../src/modules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAC/D,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAA;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAA;AAE9D,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,CAAC;IAC3E,UAAU,CACR,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,CAC5D,UAAU,CAAC,YAAY,CAAC,IAAI,EAC5B,WAAW,CAAC,IAAI,CACjB,CAAC,EACF,MAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC,CAC9C;IACD,UAAU,CACR,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,CAC5D,UAAU,CAAC,YAAY,CAAC,IAAI,EAC5B,WAAW,CAAC,IAAI,CACjB,CAAC,EACF,MAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC,CAC9C;CACF,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,CAAC,CAAC;IACzE,UAAU,CACR,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CACvF;IACD,UAAU,CACR,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CACvG;IACD,UAAU,CACR,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CACzH;IACD,UAAU,CACR,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAC3E,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EACjD,WAAW,CAAC,IAAI,CACjB,CAAC,EACF,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CACvC;CACF,CAAA"}
|
package/build/service.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAgB,cAAc,EAAE,MAAM,YAAY,CAAA;AAC9D,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAWvD,eAAO,MAAM,kBAAkB,GAAI,QAAO,MAAsB,KAAG,
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAgB,cAAc,EAAE,MAAM,YAAY,CAAA;AAC9D,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAWvD,eAAO,MAAM,kBAAkB,GAAI,QAAO,MAAsB,KAAG,cA+GlE,CAAA;AAED,eAAO,MAAM,oBAAoB,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC,EACzE,SAAS,CAAC,EAAE,QAAO,MAAsB,KACxC,CAAuD,CAAA"}
|
package/build/service.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { createService
|
|
2
|
-
import { DEFAULT_ALIAS, PaymentEntityType } from './consts.js';
|
|
1
|
+
import { createService } from '@owlmeans/context';
|
|
2
|
+
import { DEFAULT_ALIAS, PaymentEntityType, PLAN_RECORD_PREFIX, PRODUCT_RECORD_TYPE } from './consts.js';
|
|
3
3
|
import { PLAN_RECORD_TYPE, PRODUCT_RECORD_PREFIX } from './consts.js';
|
|
4
|
-
import { PaymentIdentificationError, UnknownProduct } from './errors.js';
|
|
4
|
+
import { PaymentIdentificationError, UnknownPlan, UnknownProduct } from './errors.js';
|
|
5
5
|
import { fromConfigRecord } from '@owlmeans/config';
|
|
6
6
|
import { l10nToId } from './helper.js';
|
|
7
7
|
import { DEFAULT_LNG } from '@owlmeans/i18n';
|
|
@@ -9,7 +9,7 @@ import { EnvelopeKind, makeEnvelopeModel } from '@owlmeans/basic-envelope';
|
|
|
9
9
|
export const makePaymentService = (alias = DEFAULT_ALIAS) => {
|
|
10
10
|
const service = createService(alias, {
|
|
11
11
|
product: async (sku) => {
|
|
12
|
-
const context =
|
|
12
|
+
const context = service.assertCtx();
|
|
13
13
|
const configRes = context.getConfigResource();
|
|
14
14
|
const result = fromConfigRecord(await configRes.get(`${PRODUCT_RECORD_PREFIX}:${sku}`));
|
|
15
15
|
if (result == null) {
|
|
@@ -17,16 +17,39 @@ export const makePaymentService = (alias = DEFAULT_ALIAS) => {
|
|
|
17
17
|
}
|
|
18
18
|
return result;
|
|
19
19
|
},
|
|
20
|
+
products: async () => {
|
|
21
|
+
const context = service.assertCtx();
|
|
22
|
+
const configRes = context.getConfigResource();
|
|
23
|
+
const { items } = await configRes.list({ recordType: PRODUCT_RECORD_TYPE });
|
|
24
|
+
return items.map(i => fromConfigRecord(i));
|
|
25
|
+
},
|
|
20
26
|
plans: async (productSku, duration) => {
|
|
21
|
-
const context =
|
|
27
|
+
const context = service.assertCtx();
|
|
22
28
|
const configRes = context.getConfigResource();
|
|
23
29
|
const result = await configRes.list({
|
|
24
30
|
productSku, duration, recordType: PLAN_RECORD_TYPE
|
|
25
31
|
});
|
|
26
32
|
return result.items.map(item => fromConfigRecord(item));
|
|
27
33
|
},
|
|
34
|
+
plan: async (planSku) => {
|
|
35
|
+
const context = service.assertCtx();
|
|
36
|
+
const configRes = context.getConfigResource();
|
|
37
|
+
const result = await configRes.get(`${PLAN_RECORD_PREFIX}:${planSku}`);
|
|
38
|
+
if (result == null) {
|
|
39
|
+
throw new UnknownPlan(planSku);
|
|
40
|
+
}
|
|
41
|
+
return fromConfigRecord(result);
|
|
42
|
+
},
|
|
43
|
+
allPlans: async (productSku) => {
|
|
44
|
+
const context = service.assertCtx();
|
|
45
|
+
const configRes = context.getConfigResource();
|
|
46
|
+
const { items } = await configRes.list({
|
|
47
|
+
productSku, recordType: PLAN_RECORD_TYPE
|
|
48
|
+
});
|
|
49
|
+
return items.map(item => fromConfigRecord(item));
|
|
50
|
+
},
|
|
28
51
|
localize: async (lng, entity) => {
|
|
29
|
-
const context =
|
|
52
|
+
const context = service.assertCtx();
|
|
30
53
|
const configRes = context.getConfigResource();
|
|
31
54
|
const idsToCheck = [];
|
|
32
55
|
if ("productSku" in entity) {
|
package/build/service.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
|
package/build/types.d.ts
CHANGED
|
@@ -13,6 +13,7 @@ export interface Product {
|
|
|
13
13
|
* software services.
|
|
14
14
|
*/
|
|
15
15
|
services?: string[];
|
|
16
|
+
gateways?: string[];
|
|
16
17
|
capabilities?: PermissionSet[];
|
|
17
18
|
}
|
|
18
19
|
export interface Localization {
|
|
@@ -30,7 +31,7 @@ export interface ProductPlan {
|
|
|
30
31
|
sku: string;
|
|
31
32
|
status: PlanStatus;
|
|
32
33
|
payagateAliases?: {
|
|
33
|
-
[paygate: string]: string;
|
|
34
|
+
[paygate: string]: string | null;
|
|
34
35
|
};
|
|
35
36
|
duration: PlanDuration;
|
|
36
37
|
trial?: number;
|
|
@@ -89,10 +90,26 @@ export interface PlanSubscription {
|
|
|
89
90
|
[key: string]: CapabilityUsage;
|
|
90
91
|
};
|
|
91
92
|
}
|
|
92
|
-
export interface
|
|
93
|
+
export interface CreateCheckoutBody {
|
|
94
|
+
productSku: string;
|
|
95
|
+
sku?: string;
|
|
96
|
+
entityId: string;
|
|
97
|
+
service: string;
|
|
98
|
+
subscriptionId?: string;
|
|
99
|
+
successUrl?: string;
|
|
100
|
+
cancelUrl?: string;
|
|
101
|
+
}
|
|
102
|
+
export interface CreateCheckoutResponse {
|
|
103
|
+
url: string;
|
|
104
|
+
}
|
|
105
|
+
export interface SubscriptionPropagateBody extends PlanSubscription {
|
|
93
106
|
service: string;
|
|
94
107
|
externalId: string;
|
|
95
108
|
}
|
|
109
|
+
/**
|
|
110
|
+
* @deprecated Use SubscriptionPropagateBody instead
|
|
111
|
+
*/
|
|
112
|
+
export type SubscriptionPropogateBody = SubscriptionPropagateBody;
|
|
96
113
|
export interface LimitConfig {
|
|
97
114
|
interval: PlanDuration;
|
|
98
115
|
limit: number;
|
|
@@ -108,7 +125,10 @@ export interface CapabilityUsage extends LimitConfig {
|
|
|
108
125
|
type PaymentEntity = Product | ProductPlan | PermissionSet;
|
|
109
126
|
export interface PaymentService extends InitializedService {
|
|
110
127
|
product: (sku: string) => Promise<Product>;
|
|
128
|
+
products: () => Promise<Product[]>;
|
|
111
129
|
plans: (productSku: string, duration: PlanDuration) => Promise<ProductPlan[]>;
|
|
130
|
+
plan: (planSku: string) => Promise<ProductPlan>;
|
|
131
|
+
allPlans: (productSku: string) => Promise<ProductPlan[]>;
|
|
112
132
|
localize: (lng: string, entity: PaymentEntity) => Promise<Localization | null>;
|
|
113
133
|
shallowAuthentication: (token: string | null) => Promise<string>;
|
|
114
134
|
}
|
package/build/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAE3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAC/G,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAEnD,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,WAAW,CAAA;IACjB,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,YAAY,CAAC,EAAE,aAAa,EAAE,CAAA;CAC/B;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,iBAAiB,CAAA;IACvB,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAA;CACrC;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAA;IAClB,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,UAAU,CAAA;IAClB,eAAe,CAAC,EAAE;QAChB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAE3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAC/G,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAEnD,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,WAAW,CAAA;IACjB,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,YAAY,CAAC,EAAE,aAAa,EAAE,CAAA;CAC/B;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,iBAAiB,CAAA;IACvB,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAA;CACrC;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAA;IAClB,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,UAAU,CAAA;IAClB,eAAe,CAAC,EAAE;QAChB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;KACjC,CAAA;IACD,QAAQ,EAAE,YAAY,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,IAAI,CAAA;IAChB,UAAU,CAAC,EAAE,IAAI,CAAA;IACjB;;;OAGG;IACH,YAAY,CAAC,EAAE,IAAI,CAAA;IACnB,WAAW,CAAC,EAAE,IAAI,CAAA;IAClB,YAAY,CAAC,EAAE,aAAa,EAAE,CAAA;IAC9B,MAAM,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAA;KAAE,CAAA;CACxC;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,IAAI,CAAA;IACf,aAAa,CAAC,EAAE,IAAI,CAAA;IACpB,UAAU,CAAC,EAAE,IAAI,CAAA;IACjB,SAAS,EAAE,IAAI,CAAA;IACf,YAAY,CAAC,EAAE,IAAI,CAAA;IACnB,MAAM,CAAC,EAAE,IAAI,CAAA;IACb,SAAS,CAAC,EAAE,IAAI,CAAA;IAChB,WAAW,CAAC,EAAE,IAAI,CAAA;IAClB,UAAU,CAAC,EAAE,IAAI,CAAA;IACjB,SAAS,CAAC,EAAE,IAAI,CAAA;IAChB,cAAc,CAAC,EAAE,IAAI,CAAA;IACrB,MAAM,EAAE,kBAAkB,CAAA;IAC1B;;OAEG;IACH,YAAY,CAAC,EAAE,aAAa,EAAE,CAAA;IAC9B;;OAEG;IACH,MAAM,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAA;KAAE,CAAA;IACvC,YAAY,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAAA;KAAE,CAAA;CAClD;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAA;IAClB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,MAAM,WAAW,yBAA0B,SAAQ,gBAAgB;IACjE,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;CACnB;AAED;;GAEG;AACH,MAAM,MAAM,yBAAyB,GAAG,yBAAyB,CAAA;AAEjE,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,YAAY,CAAA;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAClD,SAAS,EAAE,IAAI,CAAA;IACf,WAAW,CAAC,EAAE,IAAI,CAAA;IAClB,SAAS,CAAC,EAAE,IAAI,CAAA;IAChB,cAAc,CAAC,EAAE,IAAI,CAAA;IACrB,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,KAAK,aAAa,GAAG,OAAO,GAAG,WAAW,GAAG,aAAa,CAAA;AAE1D,MAAM,WAAW,cAAe,SAAQ,kBAAkB;IACxD,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IAE1C,QAAQ,EAAE,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;IAElC,KAAK,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;IAE7E,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,CAAC,CAAA;IAE/C,QAAQ,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;IAExD,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,KAAK,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAA;IAE9E,qBAAqB,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;CACjE"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@owlmeans/payment",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
|
+
"license": "MIT",
|
|
4
5
|
"type": "module",
|
|
5
6
|
"scripts": {
|
|
6
7
|
"build": "tsc -b",
|
|
@@ -30,20 +31,21 @@
|
|
|
30
31
|
"ajv": "*"
|
|
31
32
|
},
|
|
32
33
|
"dependencies": {
|
|
33
|
-
"@owlmeans/auth": "^0.1.
|
|
34
|
-
"@owlmeans/basic-envelope": "^0.1.
|
|
35
|
-
"@owlmeans/config": "^0.1.
|
|
36
|
-
"@owlmeans/context": "^0.1.
|
|
37
|
-
"@owlmeans/error": "^0.1.
|
|
38
|
-
"@owlmeans/i18n": "^0.1.
|
|
39
|
-
"@owlmeans/
|
|
40
|
-
"@owlmeans/resource": "^0.1.
|
|
41
|
-
"@owlmeans/route": "^0.1.
|
|
34
|
+
"@owlmeans/auth": "^0.1.3",
|
|
35
|
+
"@owlmeans/basic-envelope": "^0.1.3",
|
|
36
|
+
"@owlmeans/config": "^0.1.3",
|
|
37
|
+
"@owlmeans/context": "^0.1.3",
|
|
38
|
+
"@owlmeans/error": "^0.1.3",
|
|
39
|
+
"@owlmeans/i18n": "^0.1.3",
|
|
40
|
+
"@owlmeans/entrypoint": "^0.1.3",
|
|
41
|
+
"@owlmeans/resource": "^0.1.3",
|
|
42
|
+
"@owlmeans/route": "^0.1.3"
|
|
42
43
|
},
|
|
43
44
|
"devDependencies": {
|
|
45
|
+
"@owlmeans/dep-config": "workspace:*",
|
|
44
46
|
"nodemon": "^3.1.11",
|
|
45
47
|
"npm-check": "^6.0.1",
|
|
46
|
-
"typescript": "^
|
|
48
|
+
"typescript": "^6.0.2"
|
|
47
49
|
},
|
|
48
50
|
"publishConfig": {
|
|
49
51
|
"access": "public"
|
package/src/consts.ts
CHANGED
|
@@ -2,7 +2,8 @@ import type { JSONSchemaType } from 'ajv'
|
|
|
2
2
|
|
|
3
3
|
export enum ProductType {
|
|
4
4
|
Simple = 'simple',
|
|
5
|
-
Service = 'service'
|
|
5
|
+
Service = 'service',
|
|
6
|
+
Consumable = 'consumable'
|
|
6
7
|
}
|
|
7
8
|
|
|
8
9
|
export enum PaymentEntityType {
|
|
@@ -41,7 +42,8 @@ export enum SubscriptionStatus {
|
|
|
41
42
|
Blocked = 'blocked',
|
|
42
43
|
Ended = 'ended',
|
|
43
44
|
Free = 'free',
|
|
44
|
-
Active = 'active'
|
|
45
|
+
Active = 'active',
|
|
46
|
+
Consumable = 'consumable'
|
|
45
47
|
}
|
|
46
48
|
|
|
47
49
|
export const ProductTypeSchema: JSONSchemaType<ProductType> = {
|
|
@@ -92,9 +94,28 @@ export const L10N_RECORD_PREFIX = L10N_RECORD_TYPE
|
|
|
92
94
|
|
|
93
95
|
export const DEFAULT_ALIAS = 'payment'
|
|
94
96
|
|
|
97
|
+
export const PAYMENT_SERVICE = DEFAULT_ALIAS
|
|
98
|
+
|
|
95
99
|
export const paymentApi = {
|
|
96
100
|
subscription: {
|
|
97
101
|
base: 'payment-api:subscription',
|
|
102
|
+
/**
|
|
103
|
+
* @deprecated Use propagate instead
|
|
104
|
+
*/
|
|
98
105
|
propogate: 'payment-api:subscription:propogate',
|
|
106
|
+
propagate: 'payment-api:subscription:propagate',
|
|
107
|
+
},
|
|
108
|
+
service: {
|
|
109
|
+
base: 'payment-service:base',
|
|
110
|
+
checkout: {
|
|
111
|
+
base: 'payment-service:checkout',
|
|
112
|
+
session: {
|
|
113
|
+
base: 'payment-service:checkout:session',
|
|
114
|
+
external: {
|
|
115
|
+
base: 'payment-service:checkout:session:external',
|
|
116
|
+
create: 'payment-service:checkout:session:external:create',
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
99
120
|
}
|
|
100
121
|
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { JSONSchemaType } from 'ajv'
|
|
2
|
+
import type { CreateCheckoutBody, CreateCheckoutResponse } from '../types.js'
|
|
3
|
+
import { ResourceValueSchema, EntityValueSchema, IdValueSchema } from '@owlmeans/auth'
|
|
4
|
+
|
|
5
|
+
export const CreateCheckoutBodySchema: JSONSchemaType<CreateCheckoutBody> = {
|
|
6
|
+
type: 'object',
|
|
7
|
+
properties: {
|
|
8
|
+
productSku: ResourceValueSchema,
|
|
9
|
+
sku: { ...ResourceValueSchema, nullable: true },
|
|
10
|
+
entityId: EntityValueSchema,
|
|
11
|
+
service: { ...ResourceValueSchema, minLength: 2 },
|
|
12
|
+
subscriptionId: { ...IdValueSchema, nullable: true },
|
|
13
|
+
successUrl: { ...ResourceValueSchema, minLength: 1, nullable: true },
|
|
14
|
+
cancelUrl: { ...ResourceValueSchema, minLength: 1, nullable: true },
|
|
15
|
+
},
|
|
16
|
+
required: ['productSku', 'entityId', 'service'],
|
|
17
|
+
additionalProperties: false,
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export const CreateCheckoutResponseSchema: JSONSchemaType<CreateCheckoutResponse> = {
|
|
21
|
+
type: 'object',
|
|
22
|
+
properties: {
|
|
23
|
+
url: { type: 'string', minLength: 1 },
|
|
24
|
+
},
|
|
25
|
+
required: ['url'],
|
|
26
|
+
additionalProperties: false,
|
|
27
|
+
}
|
package/src/model/index.ts
CHANGED
package/src/model/product.ts
CHANGED
|
@@ -14,6 +14,7 @@ export const ProductSchema: JSONSchemaType<Product> = {
|
|
|
14
14
|
description: { ...ProductDescriptionSchema, nullable: true },
|
|
15
15
|
defaultLng: { ...LocalizationLngSchema, nullable: true },
|
|
16
16
|
services: { type: 'array', items: ResourceValueSchema, nullable: true },
|
|
17
|
+
gateways: { type: 'array', items: ResourceValueSchema, nullable: true },
|
|
17
18
|
capabilities: { type: 'array', items: PermissionSetSchema, nullable: true }
|
|
18
19
|
},
|
|
19
20
|
required: ['type', 'sku', 'title'],
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { JSONSchemaType } from 'ajv'
|
|
2
|
-
import type { PlanSubscription,
|
|
2
|
+
import type { PlanSubscription, SubscriptionPropagateBody } from '../types.js'
|
|
3
3
|
import { ResourceValueSchema, PermissionSetSchema, DateSchema, EntityValueSchema, IdValueSchema } from '@owlmeans/auth'
|
|
4
4
|
import { SubscriptionStatusSchema } from '../consts.js'
|
|
5
5
|
import { CapabilityUsageSchema, LimitConfigSchema } from './utils.js'
|
|
@@ -37,7 +37,7 @@ export const PlanSubscriptionSchema: JSONSchemaType<PlanSubscription> = {
|
|
|
37
37
|
additionalProperties: false,
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
-
export const
|
|
40
|
+
export const SubscriptionPropagateBodySchema: JSONSchemaType<SubscriptionPropagateBody> = {
|
|
41
41
|
type: 'object',
|
|
42
42
|
properties: {
|
|
43
43
|
...PlanSubscriptionSchema.properties,
|
|
@@ -47,3 +47,17 @@ export const SubscriptionPropogateBodySchema: JSONSchemaType<SubscriptionPropoga
|
|
|
47
47
|
required: ['externalId', 'service', ...PlanSubscriptionSchema.required],
|
|
48
48
|
additionalProperties: false,
|
|
49
49
|
}
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* @deprecated Use SubscriptionPropogateBodySchema instead
|
|
53
|
+
*/
|
|
54
|
+
export const SubscriptionPropogateBodySchema: JSONSchemaType<SubscriptionPropagateBody> = {
|
|
55
|
+
type: 'object',
|
|
56
|
+
properties: {
|
|
57
|
+
...PlanSubscriptionSchema.properties,
|
|
58
|
+
service: { ...ResourceValueSchema, minLength: 2 },
|
|
59
|
+
externalId: IdValueSchema,
|
|
60
|
+
} as any, // @TODO Figure out why it doesn't work (probably different version of ajv)
|
|
61
|
+
required: ['externalId', 'service', ...PlanSubscriptionSchema.required],
|
|
62
|
+
additionalProperties: false,
|
|
63
|
+
}
|
package/src/modules.ts
CHANGED
|
@@ -1,15 +1,43 @@
|
|
|
1
|
-
import { body, filter,
|
|
1
|
+
import { body, filter, entrypoint } from '@owlmeans/entrypoint'
|
|
2
2
|
import { route, backend, RouteMethod } from '@owlmeans/route'
|
|
3
3
|
import { paymentApi } from './consts.js'
|
|
4
|
-
import {
|
|
4
|
+
import { SubscriptionPropagateBodySchema } from './model/subscription.js'
|
|
5
|
+
import { CreateCheckoutBodySchema } from './model/checkout.js'
|
|
5
6
|
|
|
6
7
|
export const modules = [
|
|
7
|
-
|
|
8
|
-
|
|
8
|
+
entrypoint(route(paymentApi.subscription.base, '/subscription', backend())),
|
|
9
|
+
entrypoint(
|
|
9
10
|
route(paymentApi.subscription.propogate, '/propogate', backend(
|
|
10
11
|
paymentApi.subscription.base,
|
|
11
12
|
RouteMethod.POST
|
|
12
13
|
)),
|
|
13
|
-
filter(body(
|
|
14
|
+
filter(body(SubscriptionPropagateBodySchema))
|
|
15
|
+
),
|
|
16
|
+
entrypoint(
|
|
17
|
+
route(paymentApi.subscription.propagate, '/propagate', backend(
|
|
18
|
+
paymentApi.subscription.base,
|
|
19
|
+
RouteMethod.POST
|
|
20
|
+
)),
|
|
21
|
+
filter(body(SubscriptionPropagateBodySchema))
|
|
14
22
|
)
|
|
15
23
|
]
|
|
24
|
+
|
|
25
|
+
export const serviceModules = [
|
|
26
|
+
entrypoint(route(paymentApi.service.base, '/payment-service', backend())),
|
|
27
|
+
entrypoint(
|
|
28
|
+
route(paymentApi.service.checkout.base, '/checkout', backend(paymentApi.service.base)),
|
|
29
|
+
),
|
|
30
|
+
entrypoint(
|
|
31
|
+
route(paymentApi.service.checkout.session.base, '/session', backend(paymentApi.service.checkout.base)),
|
|
32
|
+
),
|
|
33
|
+
entrypoint(
|
|
34
|
+
route(paymentApi.service.checkout.session.external.base, '/external', backend(paymentApi.service.checkout.session.base)),
|
|
35
|
+
),
|
|
36
|
+
entrypoint(
|
|
37
|
+
route(paymentApi.service.checkout.session.external.create, '/create', backend(
|
|
38
|
+
paymentApi.service.checkout.session.external.base,
|
|
39
|
+
RouteMethod.POST
|
|
40
|
+
)),
|
|
41
|
+
filter(body(CreateCheckoutBodySchema))
|
|
42
|
+
)
|
|
43
|
+
]
|