@owlmeans/payment 0.1.0 → 0.1.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/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2024 OwlMeans Common — Fullstack typescript framework
3
+ Copyright (c) 2026 OwlMeans Common — Fullstack typescript framework
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/build/consts.d.ts CHANGED
@@ -1,7 +1,8 @@
1
1
  import type { JSONSchemaType } from 'ajv';
2
2
  export declare enum ProductType {
3
3
  Simple = "simple",
4
- Service = "service"
4
+ Service = "service",
5
+ Consumable = "consumable"
5
6
  }
6
7
  export declare enum PaymentEntityType {
7
8
  Product = "product",
@@ -36,7 +37,8 @@ export declare enum SubscriptionStatus {
36
37
  Blocked = "blocked",
37
38
  Ended = "ended",
38
39
  Free = "free",
39
- Active = "active"
40
+ Active = "active",
41
+ Consumable = "consumable"
40
42
  }
41
43
  export declare const ProductTypeSchema: JSONSchemaType<ProductType>;
42
44
  export declare const PaymentEntityTypeSchema: JSONSchemaType<PaymentEntityType>;
@@ -53,10 +55,28 @@ export declare const PLAN_RECORD_PREFIX = "plan";
53
55
  export declare const L10N_RECORD_TYPE = "l10n";
54
56
  export declare const L10N_RECORD_PREFIX = "l10n";
55
57
  export declare const DEFAULT_ALIAS = "payment";
58
+ export declare const PAYMENT_SERVICE = "payment";
56
59
  export declare const paymentApi: {
57
60
  subscription: {
58
61
  base: string;
62
+ /**
63
+ * @deprecated Use propagate instead
64
+ */
59
65
  propogate: string;
66
+ propagate: string;
67
+ };
68
+ service: {
69
+ base: string;
70
+ checkout: {
71
+ base: string;
72
+ session: {
73
+ base: string;
74
+ external: {
75
+ base: string;
76
+ create: string;
77
+ };
78
+ };
79
+ };
60
80
  };
61
81
  };
62
82
  //# sourceMappingURL=consts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,KAAK,CAAA;AAEzC,oBAAY,WAAW;IACrB,MAAM,WAAW;IACjB,OAAO,YAAY;CACpB;AAED,oBAAY,iBAAiB;IAC3B,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,aAAa,mBAAmB;CACjC;AAED,oBAAY,UAAU;IACpB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,UAAU,eAAe;IACzB,SAAS,cAAc;CACxB;AAED,oBAAY,YAAY;IACtB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB;;;OAGG;IACH,UAAU,eAAe;CAC1B;AAED,oBAAY,kBAAkB;IAC5B,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,MAAM,WAAW;CAClB;AAED,eAAO,MAAM,iBAAiB,EAAE,cAAc,CAAC,WAAW,CAGzD,CAAA;AAED,eAAO,MAAM,uBAAuB,EAAE,cAAc,CAAC,iBAAiB,CAGrE,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,cAAc,CAAC,UAAU,CAGvD,CAAA;AAED,eAAO,MAAM,kBAAkB,EAAE,cAAc,CAAC,YAAY,CAG3D,CAAA;AAED,eAAO,MAAM,wBAAwB,EAAE,cAAc,CAAC,kBAAkB,CAGvE,CAAA;AAED,eAAO,MAAM,kBAAkB,EAAE,cAAc,CAAC,MAAM,CAErD,CAAA;AAED,eAAO,MAAM,wBAAwB,EAAE,cAAc,CAAC,MAAM,CAE3D,CAAA;AAED,eAAO,MAAM,qBAAqB,EAAE,cAAc,CAAC,MAAM,CAExD,CAAA;AAED,eAAO,MAAM,mBAAmB,YAAY,CAAA;AAC5C,eAAO,MAAM,qBAAqB,YAAsB,CAAA;AAExD,eAAO,MAAM,gBAAgB,SAAS,CAAA;AACtC,eAAO,MAAM,kBAAkB,SAAmB,CAAA;AAElD,eAAO,MAAM,gBAAgB,SAAS,CAAA;AACtC,eAAO,MAAM,kBAAkB,SAAmB,CAAA;AAElD,eAAO,MAAM,aAAa,YAAY,CAAA;AAEtC,eAAO,MAAM,UAAU;;;;;CAKtB,CAAA"}
1
+ {"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,KAAK,CAAA;AAEzC,oBAAY,WAAW;IACrB,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,UAAU,eAAe;CAC1B;AAED,oBAAY,iBAAiB;IAC3B,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,aAAa,mBAAmB;CACjC;AAED,oBAAY,UAAU;IACpB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,UAAU,eAAe;IACzB,SAAS,cAAc;CACxB;AAED,oBAAY,YAAY;IACtB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB;;;OAGG;IACH,UAAU,eAAe;CAC1B;AAED,oBAAY,kBAAkB;IAC5B,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,UAAU,eAAe;CAC1B;AAED,eAAO,MAAM,iBAAiB,EAAE,cAAc,CAAC,WAAW,CAGzD,CAAA;AAED,eAAO,MAAM,uBAAuB,EAAE,cAAc,CAAC,iBAAiB,CAGrE,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,cAAc,CAAC,UAAU,CAGvD,CAAA;AAED,eAAO,MAAM,kBAAkB,EAAE,cAAc,CAAC,YAAY,CAG3D,CAAA;AAED,eAAO,MAAM,wBAAwB,EAAE,cAAc,CAAC,kBAAkB,CAGvE,CAAA;AAED,eAAO,MAAM,kBAAkB,EAAE,cAAc,CAAC,MAAM,CAErD,CAAA;AAED,eAAO,MAAM,wBAAwB,EAAE,cAAc,CAAC,MAAM,CAE3D,CAAA;AAED,eAAO,MAAM,qBAAqB,EAAE,cAAc,CAAC,MAAM,CAExD,CAAA;AAED,eAAO,MAAM,mBAAmB,YAAY,CAAA;AAC5C,eAAO,MAAM,qBAAqB,YAAsB,CAAA;AAExD,eAAO,MAAM,gBAAgB,SAAS,CAAA;AACtC,eAAO,MAAM,kBAAkB,SAAmB,CAAA;AAElD,eAAO,MAAM,gBAAgB,SAAS,CAAA;AACtC,eAAO,MAAM,kBAAkB,SAAmB,CAAA;AAElD,eAAO,MAAM,aAAa,YAAY,CAAA;AAEtC,eAAO,MAAM,eAAe,YAAgB,CAAA;AAE5C,eAAO,MAAM,UAAU;;;QAGnB;;WAEG;;;;;;;;;;;;;;;;;CAiBN,CAAA"}
package/build/consts.js CHANGED
@@ -2,6 +2,7 @@ export var ProductType;
2
2
  (function (ProductType) {
3
3
  ProductType["Simple"] = "simple";
4
4
  ProductType["Service"] = "service";
5
+ ProductType["Consumable"] = "consumable";
5
6
  })(ProductType || (ProductType = {}));
6
7
  export var PaymentEntityType;
7
8
  (function (PaymentEntityType) {
@@ -41,6 +42,7 @@ export var SubscriptionStatus;
41
42
  SubscriptionStatus["Ended"] = "ended";
42
43
  SubscriptionStatus["Free"] = "free";
43
44
  SubscriptionStatus["Active"] = "active";
45
+ SubscriptionStatus["Consumable"] = "consumable";
44
46
  })(SubscriptionStatus || (SubscriptionStatus = {}));
45
47
  export const ProductTypeSchema = {
46
48
  type: 'string',
@@ -78,10 +80,28 @@ export const PLAN_RECORD_PREFIX = PLAN_RECORD_TYPE;
78
80
  export const L10N_RECORD_TYPE = 'l10n';
79
81
  export const L10N_RECORD_PREFIX = L10N_RECORD_TYPE;
80
82
  export const DEFAULT_ALIAS = 'payment';
83
+ export const PAYMENT_SERVICE = DEFAULT_ALIAS;
81
84
  export const paymentApi = {
82
85
  subscription: {
83
86
  base: 'payment-api:subscription',
87
+ /**
88
+ * @deprecated Use propagate instead
89
+ */
84
90
  propogate: 'payment-api:subscription:propogate',
91
+ propagate: 'payment-api:subscription:propagate',
92
+ },
93
+ service: {
94
+ base: 'payment-service:base',
95
+ checkout: {
96
+ base: 'payment-service:checkout',
97
+ session: {
98
+ base: 'payment-service:checkout:session',
99
+ external: {
100
+ base: 'payment-service:checkout:session:external',
101
+ create: 'payment-service:checkout:session:external:create',
102
+ }
103
+ }
104
+ }
85
105
  }
86
106
  };
87
107
  //# sourceMappingURL=consts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"consts.js","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AAEA,MAAM,CAAN,IAAY,WAGX;AAHD,WAAY,WAAW;IACrB,gCAAiB,CAAA;IACjB,kCAAmB,CAAA;AACrB,CAAC,EAHW,WAAW,KAAX,WAAW,QAGtB;AAED,MAAM,CAAN,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IAC3B,wCAAmB,CAAA;IACnB,kCAAa,CAAA;IACb,qDAAgC,CAAA;AAClC,CAAC,EAJW,iBAAiB,KAAjB,iBAAiB,QAI5B;AAED,MAAM,CAAN,IAAY,UAOX;AAPD,WAAY,UAAU;IACpB,+BAAiB,CAAA;IACjB,+BAAiB,CAAA;IACjB,+BAAiB,CAAA;IACjB,mCAAqB,CAAA;IACrB,uCAAyB,CAAA;IACzB,qCAAuB,CAAA;AACzB,CAAC,EAPW,UAAU,KAAV,UAAU,QAOrB;AAED,MAAM,CAAN,IAAY,YAUX;AAVD,WAAY,YAAY;IACtB,mCAAmB,CAAA;IACnB,iCAAiB,CAAA;IACjB,qCAAqB,CAAA;IACrB,qCAAqB,CAAA;IACrB;;;OAGG;IACH,yCAAyB,CAAA;AAC3B,CAAC,EAVW,YAAY,KAAZ,YAAY,QAUvB;AAED,MAAM,CAAN,IAAY,kBAUX;AAVD,WAAY,kBAAkB;IAC5B,yCAAmB,CAAA;IACnB,qCAAe,CAAA;IACf,2CAAqB,CAAA;IACrB,yCAAmB,CAAA;IACnB,6CAAuB,CAAA;IACvB,yCAAmB,CAAA;IACnB,qCAAe,CAAA;IACf,mCAAa,CAAA;IACb,uCAAiB,CAAA;AACnB,CAAC,EAVW,kBAAkB,KAAlB,kBAAkB,QAU7B;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAgC;IAC5D,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC;CACjC,CAAA;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAsC;IACxE,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC;CACvC,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAA+B;IAC1D,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;CAChC,CAAA;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAiC;IAC9D,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;CAClC,CAAA;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAuC;IAC1E,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC;CACxC,CAAA;AAED,MAAM,CAAC,MAAM,kBAAkB,GAA2B;IACxD,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG;CAC7C,CAAA;AAED,MAAM,CAAC,MAAM,wBAAwB,GAA2B;IAC9D,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI;CAC9D,CAAA;AAED,MAAM,CAAC,MAAM,qBAAqB,GAA2B;IAC3D,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC;CAC3C,CAAA;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,SAAS,CAAA;AAC5C,MAAM,CAAC,MAAM,qBAAqB,GAAG,mBAAmB,CAAA;AAExD,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAA;AACtC,MAAM,CAAC,MAAM,kBAAkB,GAAG,gBAAgB,CAAA;AAElD,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAA;AACtC,MAAM,CAAC,MAAM,kBAAkB,GAAG,gBAAgB,CAAA;AAElD,MAAM,CAAC,MAAM,aAAa,GAAG,SAAS,CAAA;AAEtC,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,YAAY,EAAE;QACZ,IAAI,EAAE,0BAA0B;QAChC,SAAS,EAAE,oCAAoC;KAChD;CACF,CAAA"}
1
+ {"version":3,"file":"consts.js","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"helper.d.ts","sourceRoot":"","sources":["../src/helper.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE9C,eAAO,MAAM,QAAQ,SAAU,YAAY,WAAW,OAAO,KAAG,MACiB,CAAA"}
1
+ {"version":3,"file":"helper.d.ts","sourceRoot":"","sources":["../src/helper.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE9C,eAAO,MAAM,QAAQ,GAAI,MAAM,YAAY,EAAE,SAAS,OAAO,KAAG,MACiB,CAAA"}
@@ -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"}
@@ -3,4 +3,5 @@ export * from './localization.js';
3
3
  export * from './subscription.js';
4
4
  export * from './plan.js';
5
5
  export * from './utils.js';
6
+ export * from './checkout.js';
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -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"}
@@ -3,4 +3,5 @@ export * from './localization.js';
3
3
  export * from './subscription.js';
4
4
  export * from './plan.js';
5
5
  export * from './utils.js';
6
+ export * from './checkout.js';
6
7
  //# sourceMappingURL=index.js.map
@@ -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,CAajD,CAAA"}
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"}
@@ -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, SubscriptionPropogateBody } from '../types.js';
2
+ import type { PlanSubscription, SubscriptionPropagateBody } from '../types.js';
3
3
  export declare const PlanSubscriptionSchema: JSONSchemaType<PlanSubscription>;
4
- export declare const SubscriptionPropogateBodySchema: JSONSchemaType<SubscriptionPropogateBody>;
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"}
@@ -1,2 +1,3 @@
1
1
  export declare const modules: import("@owlmeans/module").CommonModule[];
2
+ export declare const serviceModules: import("@owlmeans/module").CommonModule[];
2
3
  //# sourceMappingURL=modules.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"modules.d.ts","sourceRoot":"","sources":["../src/modules.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,OAAO,2CASnB,CAAA"}
1
+ {"version":3,"file":"modules.d.ts","sourceRoot":"","sources":["../src/modules.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,OAAO,2CAgBnB,CAAA;AAED,eAAO,MAAM,cAAc,2CAkB1B,CAAA"}
package/build/modules.js CHANGED
@@ -1,9 +1,18 @@
1
1
  import { body, filter, module } from '@owlmeans/module';
2
2
  import { route, backend, RouteMethod } from '@owlmeans/route';
3
3
  import { paymentApi } from './consts.js';
4
- import { SubscriptionPropogateBodySchema } from './model/subscription.js';
4
+ import { SubscriptionPropagateBodySchema } from './model/subscription.js';
5
+ import { CreateCheckoutBodySchema } from './model/checkout.js';
5
6
  export const modules = [
6
7
  module(route(paymentApi.subscription.base, '/subscription', backend())),
7
- module(route(paymentApi.subscription.propogate, '/propogate', backend(paymentApi.subscription.base, RouteMethod.POST)), filter(body(SubscriptionPropogateBodySchema)))
8
+ module(route(paymentApi.subscription.propogate, '/propogate', backend(paymentApi.subscription.base, RouteMethod.POST)), filter(body(SubscriptionPropagateBodySchema))),
9
+ module(route(paymentApi.subscription.propagate, '/propagate', backend(paymentApi.subscription.base, RouteMethod.POST)), filter(body(SubscriptionPropagateBodySchema)))
10
+ ];
11
+ export const serviceModules = [
12
+ module(route(paymentApi.service.base, '/payment-service', backend())),
13
+ module(route(paymentApi.service.checkout.base, '/checkout', backend(paymentApi.service.base))),
14
+ module(route(paymentApi.service.checkout.session.base, '/session', backend(paymentApi.service.checkout.base))),
15
+ module(route(paymentApi.service.checkout.session.external.base, '/external', backend(paymentApi.service.checkout.session.base))),
16
+ module(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
@@ -1 +1 @@
1
- {"version":3,"file":"modules.js","sourceRoot":"","sources":["../src/modules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACvD,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;AAEzE,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,CAAC;IACvE,MAAM,CACJ,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"}
1
+ {"version":3,"file":"modules.js","sourceRoot":"","sources":["../src/modules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACvD,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,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,CAAC;IACvE,MAAM,CACJ,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,MAAM,CACJ,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,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,CAAC,CAAC;IACrE,MAAM,CACJ,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CACvF;IACD,MAAM,CACJ,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,MAAM,CACJ,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,MAAM,CACJ,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"}
@@ -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,WAAW,MAAM,KAAmB,cA2ElE,CAAA;AAED,eAAO,MAAM,oBAAoB,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC,WAChE,CAAC,UAAS,MAAM,KACxB,CAAuD,CAAA"}
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, assertContext } from '@owlmeans/context';
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 = assertContext(service.ctx);
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 = assertContext(service.ctx);
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 = assertContext(service.ctx);
52
+ const context = service.assertCtx();
30
53
  const configRes = context.getConfigResource();
31
54
  const idsToCheck = [];
32
55
  if ("productSku" in entity) {
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
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 SubscriptionPropogateBody extends PlanSubscription {
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
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "@owlmeans/payment",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
+ "license": "MIT",
4
5
  "type": "module",
5
6
  "scripts": {
6
7
  "build": "tsc -b",
@@ -30,23 +31,22 @@
30
31
  "ajv": "*"
31
32
  },
32
33
  "dependencies": {
33
- "@owlmeans/auth": "^0.1.0",
34
- "@owlmeans/basic-envelope": "^0.1.0",
35
- "@owlmeans/config": "^0.1.0",
36
- "@owlmeans/context": "^0.1.0",
37
- "@owlmeans/error": "^0.1.0",
38
- "@owlmeans/i18n": "^0.1.0",
39
- "@owlmeans/module": "^0.1.0",
40
- "@owlmeans/resource": "^0.1.0",
41
- "@owlmeans/route": "^0.1.0"
34
+ "@owlmeans/auth": "^0.1.2",
35
+ "@owlmeans/basic-envelope": "^0.1.2",
36
+ "@owlmeans/config": "^0.1.2",
37
+ "@owlmeans/context": "^0.1.2",
38
+ "@owlmeans/error": "^0.1.2",
39
+ "@owlmeans/i18n": "^0.1.2",
40
+ "@owlmeans/module": "^0.1.2",
41
+ "@owlmeans/resource": "^0.1.2",
42
+ "@owlmeans/route": "^0.1.2"
42
43
  },
43
44
  "devDependencies": {
44
- "nodemon": "^3.1.7",
45
+ "nodemon": "^3.1.11",
45
46
  "npm-check": "^6.0.1",
46
- "typescript": "^5.6.3"
47
+ "typescript": "^5.8.3"
47
48
  },
48
- "private": false,
49
49
  "publishConfig": {
50
50
  "access": "public"
51
51
  }
52
- }
52
+ }
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
+ }
@@ -4,3 +4,4 @@ export * from './localization.js'
4
4
  export * from './subscription.js'
5
5
  export * from './plan.js'
6
6
  export * from './utils.js'
7
+ export * from './checkout.js'
@@ -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, SubscriptionPropogateBody } from '../types.js'
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 SubscriptionPropogateBodySchema: JSONSchemaType<SubscriptionPropogateBody> = {
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,7 +1,8 @@
1
1
  import { body, filter, module } from '@owlmeans/module'
2
2
  import { route, backend, RouteMethod } from '@owlmeans/route'
3
3
  import { paymentApi } from './consts.js'
4
- import { SubscriptionPropogateBodySchema } from './model/subscription.js'
4
+ import { SubscriptionPropagateBodySchema } from './model/subscription.js'
5
+ import { CreateCheckoutBodySchema } from './model/checkout.js'
5
6
 
6
7
  export const modules = [
7
8
  module(route(paymentApi.subscription.base, '/subscription', backend())),
@@ -10,6 +11,33 @@ export const modules = [
10
11
  paymentApi.subscription.base,
11
12
  RouteMethod.POST
12
13
  )),
13
- filter(body(SubscriptionPropogateBodySchema))
14
+ filter(body(SubscriptionPropagateBodySchema))
15
+ ),
16
+ module(
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
+ module(route(paymentApi.service.base, '/payment-service', backend())),
27
+ module(
28
+ route(paymentApi.service.checkout.base, '/checkout', backend(paymentApi.service.base)),
29
+ ),
30
+ module(
31
+ route(paymentApi.service.checkout.session.base, '/session', backend(paymentApi.service.checkout.base)),
32
+ ),
33
+ module(
34
+ route(paymentApi.service.checkout.session.external.base, '/external', backend(paymentApi.service.checkout.session.base)),
35
+ ),
36
+ module(
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
+ ]
package/src/service.ts CHANGED
@@ -1,10 +1,10 @@
1
- import { createService, assertContext } from '@owlmeans/context'
1
+ import { createService } from '@owlmeans/context'
2
2
  import type { ConfigRecord } from '@owlmeans/context'
3
- import { DEFAULT_ALIAS, PaymentEntityType } from './consts.js'
3
+ import { DEFAULT_ALIAS, PaymentEntityType, PLAN_RECORD_PREFIX, PRODUCT_RECORD_TYPE } from './consts.js'
4
4
  import type { Localization, PaymentService } from './types.js'
5
5
  import type { Config, Context } from './utils/types.js'
6
6
  import { PLAN_RECORD_TYPE, PRODUCT_RECORD_PREFIX } from './consts.js'
7
- import { PaymentIdentificationError, UnknownProduct } from './errors.js'
7
+ import { PaymentIdentificationError, UnknownPlan, UnknownProduct } from './errors.js'
8
8
  import type { Product, ProductPlan } from './types.js'
9
9
  import { fromConfigRecord } from '@owlmeans/config'
10
10
  import type { ResourceRecord } from '@owlmeans/resource'
@@ -16,11 +16,12 @@ import type { AuthCredentials } from '@owlmeans/auth'
16
16
  export const makePaymentService = (alias: string = DEFAULT_ALIAS): PaymentService => {
17
17
  const service: PaymentService = createService<PaymentService>(alias, {
18
18
  product: async sku => {
19
- const context = assertContext(service.ctx) as Context
20
-
19
+ const context = service.assertCtx() as Context
21
20
  const configRes = context.getConfigResource()
22
21
 
23
- const result = fromConfigRecord<ConfigRecord, Product & ResourceRecord>(await configRes.get(`${PRODUCT_RECORD_PREFIX}:${sku}`))
22
+ const result = fromConfigRecord<ConfigRecord, Product & ResourceRecord>(
23
+ await configRes.get(`${PRODUCT_RECORD_PREFIX}:${sku}`)
24
+ )
24
25
 
25
26
  if (result == null) {
26
27
  throw new UnknownProduct(sku)
@@ -29,8 +30,17 @@ export const makePaymentService = (alias: string = DEFAULT_ALIAS): PaymentServic
29
30
  return result as Product
30
31
  },
31
32
 
33
+ products: async () => {
34
+ const context = service.assertCtx() as Context
35
+ const configRes = context.getConfigResource()
36
+
37
+ const { items } = await configRes.list({ recordType: PRODUCT_RECORD_TYPE })
38
+
39
+ return items.map(i => fromConfigRecord<ConfigRecord, Product & ResourceRecord>(i))
40
+ },
41
+
32
42
  plans: async (productSku, duration) => {
33
- const context = assertContext(service.ctx) as Context
43
+ const context = service.assertCtx() as Context
34
44
  const configRes = context.getConfigResource()
35
45
 
36
46
  const result = await configRes.list({
@@ -39,11 +49,37 @@ export const makePaymentService = (alias: string = DEFAULT_ALIAS): PaymentServic
39
49
 
40
50
  return result.items.map(
41
51
  item => fromConfigRecord<ConfigRecord, ProductPlan & ResourceRecord>(item)
42
- ) as ProductPlan[]
52
+ )
53
+ },
54
+
55
+ plan: async planSku => {
56
+ const context = service.assertCtx() as Context
57
+ const configRes = context.getConfigResource()
58
+
59
+ const result = await configRes.get(`${PLAN_RECORD_PREFIX}:${planSku}`)
60
+
61
+ if (result == null) {
62
+ throw new UnknownPlan(planSku)
63
+ }
64
+
65
+ return fromConfigRecord<ConfigRecord, ProductPlan & ResourceRecord>(result)
66
+ },
67
+
68
+ allPlans: async productSku => {
69
+ const context = service.assertCtx() as Context
70
+ const configRes = context.getConfigResource()
71
+
72
+ const { items } = await configRes.list({
73
+ productSku, recordType: PLAN_RECORD_TYPE
74
+ })
75
+
76
+ return items.map(
77
+ item => fromConfigRecord<ConfigRecord, ProductPlan & ResourceRecord>(item)
78
+ )
43
79
  },
44
80
 
45
81
  localize: async (lng, entity) => {
46
- const context = assertContext(service.ctx) as Context
82
+ const context = service.assertCtx() as Context
47
83
  const configRes = context.getConfigResource()
48
84
 
49
85
  const idsToCheck: string[] = []
package/src/types.ts CHANGED
@@ -15,6 +15,7 @@ export interface Product {
15
15
  * software services.
16
16
  */
17
17
  services?: string[]
18
+ gateways?: string[]
18
19
  capabilities?: PermissionSet[]
19
20
  }
20
21
 
@@ -32,7 +33,7 @@ export interface ProductPlan {
32
33
  sku: string
33
34
  status: PlanStatus
34
35
  payagateAliases?: {
35
- [paygate: string]: string
36
+ [paygate: string]: string | null
36
37
  }
37
38
  duration: PlanDuration
38
39
  trial?: number
@@ -87,11 +88,30 @@ export interface PlanSubscription {
87
88
  consumptions?: { [key: string]: CapabilityUsage }
88
89
  }
89
90
 
90
- export interface SubscriptionPropogateBody extends PlanSubscription {
91
+ export interface CreateCheckoutBody {
92
+ productSku: string
93
+ sku?: string
94
+ entityId: string
95
+ service: string
96
+ subscriptionId?: string
97
+ successUrl?: string
98
+ cancelUrl?: string
99
+ }
100
+
101
+ export interface CreateCheckoutResponse {
102
+ url: string
103
+ }
104
+
105
+ export interface SubscriptionPropagateBody extends PlanSubscription {
91
106
  service: string
92
107
  externalId: string
93
108
  }
94
109
 
110
+ /**
111
+ * @deprecated Use SubscriptionPropagateBody instead
112
+ */
113
+ export type SubscriptionPropogateBody = SubscriptionPropagateBody
114
+
95
115
  export interface LimitConfig {
96
116
  interval: PlanDuration
97
117
  limit: number
@@ -111,8 +131,14 @@ type PaymentEntity = Product | ProductPlan | PermissionSet
111
131
  export interface PaymentService extends InitializedService {
112
132
  product: (sku: string) => Promise<Product>
113
133
 
134
+ products: () => Promise<Product[]>
135
+
114
136
  plans: (productSku: string, duration: PlanDuration) => Promise<ProductPlan[]>
115
137
 
138
+ plan: (planSku: string) => Promise<ProductPlan>
139
+
140
+ allPlans: (productSku: string) => Promise<ProductPlan[]>
141
+
116
142
  localize: (lng: string, entity: PaymentEntity) => Promise<Localization | null>
117
143
 
118
144
  shallowAuthentication: (token: string | null) => Promise<string>
@@ -1 +0,0 @@
1
- {"root":["./src/consts.ts","./src/errors.ts","./src/helper.ts","./src/i18n.ts","./src/index.ts","./src/modules.ts","./src/service.ts","./src/types.ts","./src/model/index.ts","./src/model/localization.ts","./src/model/plan.ts","./src/model/product.ts","./src/model/subscription.ts","./src/model/utils.ts","./src/utils/index.ts","./src/utils/types.ts"],"version":"5.6.3"}