@shware/purchase 1.5.3 → 1.5.4
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.
|
@@ -70,7 +70,9 @@ var GooglePlayConfig = class _GooglePlayConfig {
|
|
|
70
70
|
this.subscriptions.set(subscription.productId, subscription);
|
|
71
71
|
return this;
|
|
72
72
|
};
|
|
73
|
-
getId = (productId, planId) =>
|
|
73
|
+
getId = (productId, planId) => {
|
|
74
|
+
return planId ? `${productId}:${planId}` : productId;
|
|
75
|
+
};
|
|
74
76
|
constructor(options) {
|
|
75
77
|
this.package = options.package;
|
|
76
78
|
this.audience = options.audience;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/google-play/config.ts"],"sourcesContent":["import { invariant } from '@shware/utils';\nimport ms from 'ms';\nimport type { IsUnique, Metadata } from '../types';\n\nconst addMethod = Symbol('addMethod');\n\nclass Subscription<\n NS extends Lowercase<string> = Lowercase<string>,\n PE extends string = string,\n PI extends string = never,\n I extends Lowercase<string> = never,\n> {\n readonly productId: string;\n readonly config: GooglePlayConfig<NS, PE, PI>;\n readonly plans: Map<string, Metadata & { plan?: PE }>;\n readonly defaultPlans: Set<string>;\n\n constructor(config: GooglePlayConfig<NS, PE, PI>, productId: string) {\n this.config = config;\n this.productId = productId;\n this.plans = new Map();\n this.defaultPlans = new Set();\n }\n\n basePlan = <K extends Lowercase<string>>(\n planId: K extends I ? never : K,\n plan: PE,\n metadata: Metadata = { credits: 0, expiresIn: '0' }\n ): Subscription<NS, PE, PI, I | K> => {\n this.plans.set(planId, { ...metadata, plan });\n return this as Subscription<NS, PE, PI, I | K>;\n };\n\n default = <const T extends readonly [I, ...I[]]>(\n planIds: T & (IsUnique<T> extends true ? unknown : never)\n ) => {\n planIds.forEach((planId) => this.defaultPlans.add(planId));\n this.config[addMethod](this as never);\n return this.config;\n };\n}\n\ntype Options = { package: string; audience: string };\n\nexport class GooglePlayConfig<\n NS extends Lowercase<string> = Lowercase<string>,\n PE extends string = string,\n PI extends string = never,\n> {\n readonly package: string;\n readonly audience: string;\n private onetimes: Set<string>;\n private subscriptions: Map<string, Subscription<NS, PE, PI>>;\n private products: Map<string, (Metadata & { plan?: PE }) | null>;\n\n [addMethod] = (subscription: Subscription<NS, PE, PI>) => {\n subscription.plans.forEach((metadata, planId) => {\n this.products.set(this.getId(subscription.productId, planId), metadata);\n });\n this.subscriptions.set(subscription.productId, subscription);\n return this;\n };\n\n private getId = (productId: string, planId
|
|
1
|
+
{"version":3,"sources":["../../src/google-play/config.ts"],"sourcesContent":["import { invariant } from '@shware/utils';\nimport ms from 'ms';\nimport type { IsUnique, Metadata } from '../types';\n\nconst addMethod = Symbol('addMethod');\n\nclass Subscription<\n NS extends Lowercase<string> = Lowercase<string>,\n PE extends string = string,\n PI extends string = never,\n I extends Lowercase<string> = never,\n> {\n readonly productId: string;\n readonly config: GooglePlayConfig<NS, PE, PI>;\n readonly plans: Map<string, Metadata & { plan?: PE }>;\n readonly defaultPlans: Set<string>;\n\n constructor(config: GooglePlayConfig<NS, PE, PI>, productId: string) {\n this.config = config;\n this.productId = productId;\n this.plans = new Map();\n this.defaultPlans = new Set();\n }\n\n basePlan = <K extends Lowercase<string>>(\n planId: K extends I ? never : K,\n plan: PE,\n metadata: Metadata = { credits: 0, expiresIn: '0' }\n ): Subscription<NS, PE, PI, I | K> => {\n this.plans.set(planId, { ...metadata, plan });\n return this as Subscription<NS, PE, PI, I | K>;\n };\n\n default = <const T extends readonly [I, ...I[]]>(\n planIds: T & (IsUnique<T> extends true ? unknown : never)\n ) => {\n planIds.forEach((planId) => this.defaultPlans.add(planId));\n this.config[addMethod](this as never);\n return this.config;\n };\n}\n\ntype Options = { package: string; audience: string };\n\nexport class GooglePlayConfig<\n NS extends Lowercase<string> = Lowercase<string>,\n PE extends string = string,\n PI extends string = never,\n> {\n readonly package: string;\n readonly audience: string;\n private onetimes: Set<string>;\n private subscriptions: Map<string, Subscription<NS, PE, PI>>;\n private products: Map<string, (Metadata & { plan?: PE }) | null>;\n\n [addMethod] = (subscription: Subscription<NS, PE, PI>) => {\n subscription.plans.forEach((metadata, planId) => {\n this.products.set(this.getId(subscription.productId, planId), metadata);\n });\n this.subscriptions.set(subscription.productId, subscription);\n return this;\n };\n\n private getId = (productId: string, planId?: string) => {\n return planId ? `${productId}:${planId}` : productId;\n };\n\n private constructor(options: Options) {\n this.package = options.package;\n this.audience = options.audience;\n this.products = new Map();\n this.onetimes = new Set();\n this.subscriptions = new Map();\n }\n\n static create = <NS extends Lowercase<string>, PE extends string = string>(options: Options) => {\n return new GooglePlayConfig<NS, PE>(options);\n };\n\n subscription = <K extends `${NS}.${Lowercase<string>}`>(productId: K extends PI ? never : K) => {\n return new Subscription<NS, PE, PI | K>(this, productId);\n };\n\n onetime = <K extends `${NS}.${Lowercase<string>}`>(\n productId: K extends PI ? never : K,\n metadata: Metadata = { credits: 0, expiresIn: '0' }\n ) => {\n this.onetimes.add(productId);\n this.products.set(productId, metadata);\n return this as GooglePlayConfig<NS, PE, PI | K>;\n };\n\n getPlan = (productId: string, planId: string): PE => {\n const id = this.getId(productId, planId);\n const metadata = this.products.get(id);\n invariant(metadata, `Product not found for ${id}`);\n invariant(metadata.plan, `Plan not found for ${id}`);\n return metadata.plan;\n };\n\n getMode = (productId: string): 'payment' | 'subscription' => {\n if (this.onetimes.has(productId)) return 'payment';\n if (this.subscriptions.has(productId)) return 'subscription';\n throw new Error(`Mode not found for product ${productId}`);\n };\n\n getCreditAmount = (productId: string, planId?: string): number => {\n const id = this.getId(productId, planId);\n const metadata = this.products.get(id);\n invariant(metadata, `Product not found for ${id}`);\n return metadata.credits;\n };\n\n private getCreditExpiresIn = (productId: string, planId?: string): number => {\n const id = this.getId(productId, planId);\n const metadata = this.products.get(id);\n invariant(metadata, `Product not found for ${id}`);\n return ms(metadata.expiresIn);\n };\n\n getCreditExpiresAt = (productId: string, planId?: string): string => {\n const expiresIn = this.getCreditExpiresIn(productId, planId);\n return new Date(Date.now() + expiresIn).toISOString();\n };\n}\n"],"mappings":"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","names":["ms"]}
|
|
@@ -31,9 +31,9 @@ declare class GooglePlayConfig<NS extends Lowercase<string> = Lowercase<string>,
|
|
|
31
31
|
onetime: <K extends `${NS}.${Lowercase<string>}`>(productId: K extends PI ? never : K, metadata?: Metadata) => GooglePlayConfig<NS, PE, PI | K>;
|
|
32
32
|
getPlan: (productId: string, planId: string) => PE;
|
|
33
33
|
getMode: (productId: string) => "payment" | "subscription";
|
|
34
|
-
getCreditAmount: (productId: string, planId
|
|
34
|
+
getCreditAmount: (productId: string, planId?: string) => number;
|
|
35
35
|
private getCreditExpiresIn;
|
|
36
|
-
getCreditExpiresAt: (productId: string, planId
|
|
36
|
+
getCreditExpiresAt: (productId: string, planId?: string) => string;
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
export { GooglePlayConfig };
|
|
@@ -31,9 +31,9 @@ declare class GooglePlayConfig<NS extends Lowercase<string> = Lowercase<string>,
|
|
|
31
31
|
onetime: <K extends `${NS}.${Lowercase<string>}`>(productId: K extends PI ? never : K, metadata?: Metadata) => GooglePlayConfig<NS, PE, PI | K>;
|
|
32
32
|
getPlan: (productId: string, planId: string) => PE;
|
|
33
33
|
getMode: (productId: string) => "payment" | "subscription";
|
|
34
|
-
getCreditAmount: (productId: string, planId
|
|
34
|
+
getCreditAmount: (productId: string, planId?: string) => number;
|
|
35
35
|
private getCreditExpiresIn;
|
|
36
|
-
getCreditExpiresAt: (productId: string, planId
|
|
36
|
+
getCreditExpiresAt: (productId: string, planId?: string) => string;
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
export { GooglePlayConfig };
|
|
@@ -36,7 +36,9 @@ var GooglePlayConfig = class _GooglePlayConfig {
|
|
|
36
36
|
this.subscriptions.set(subscription.productId, subscription);
|
|
37
37
|
return this;
|
|
38
38
|
};
|
|
39
|
-
getId = (productId, planId) =>
|
|
39
|
+
getId = (productId, planId) => {
|
|
40
|
+
return planId ? `${productId}:${planId}` : productId;
|
|
41
|
+
};
|
|
40
42
|
constructor(options) {
|
|
41
43
|
this.package = options.package;
|
|
42
44
|
this.audience = options.audience;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/google-play/config.ts"],"sourcesContent":["import { invariant } from '@shware/utils';\nimport ms from 'ms';\nimport type { IsUnique, Metadata } from '../types';\n\nconst addMethod = Symbol('addMethod');\n\nclass Subscription<\n NS extends Lowercase<string> = Lowercase<string>,\n PE extends string = string,\n PI extends string = never,\n I extends Lowercase<string> = never,\n> {\n readonly productId: string;\n readonly config: GooglePlayConfig<NS, PE, PI>;\n readonly plans: Map<string, Metadata & { plan?: PE }>;\n readonly defaultPlans: Set<string>;\n\n constructor(config: GooglePlayConfig<NS, PE, PI>, productId: string) {\n this.config = config;\n this.productId = productId;\n this.plans = new Map();\n this.defaultPlans = new Set();\n }\n\n basePlan = <K extends Lowercase<string>>(\n planId: K extends I ? never : K,\n plan: PE,\n metadata: Metadata = { credits: 0, expiresIn: '0' }\n ): Subscription<NS, PE, PI, I | K> => {\n this.plans.set(planId, { ...metadata, plan });\n return this as Subscription<NS, PE, PI, I | K>;\n };\n\n default = <const T extends readonly [I, ...I[]]>(\n planIds: T & (IsUnique<T> extends true ? unknown : never)\n ) => {\n planIds.forEach((planId) => this.defaultPlans.add(planId));\n this.config[addMethod](this as never);\n return this.config;\n };\n}\n\ntype Options = { package: string; audience: string };\n\nexport class GooglePlayConfig<\n NS extends Lowercase<string> = Lowercase<string>,\n PE extends string = string,\n PI extends string = never,\n> {\n readonly package: string;\n readonly audience: string;\n private onetimes: Set<string>;\n private subscriptions: Map<string, Subscription<NS, PE, PI>>;\n private products: Map<string, (Metadata & { plan?: PE }) | null>;\n\n [addMethod] = (subscription: Subscription<NS, PE, PI>) => {\n subscription.plans.forEach((metadata, planId) => {\n this.products.set(this.getId(subscription.productId, planId), metadata);\n });\n this.subscriptions.set(subscription.productId, subscription);\n return this;\n };\n\n private getId = (productId: string, planId
|
|
1
|
+
{"version":3,"sources":["../../src/google-play/config.ts"],"sourcesContent":["import { invariant } from '@shware/utils';\nimport ms from 'ms';\nimport type { IsUnique, Metadata } from '../types';\n\nconst addMethod = Symbol('addMethod');\n\nclass Subscription<\n NS extends Lowercase<string> = Lowercase<string>,\n PE extends string = string,\n PI extends string = never,\n I extends Lowercase<string> = never,\n> {\n readonly productId: string;\n readonly config: GooglePlayConfig<NS, PE, PI>;\n readonly plans: Map<string, Metadata & { plan?: PE }>;\n readonly defaultPlans: Set<string>;\n\n constructor(config: GooglePlayConfig<NS, PE, PI>, productId: string) {\n this.config = config;\n this.productId = productId;\n this.plans = new Map();\n this.defaultPlans = new Set();\n }\n\n basePlan = <K extends Lowercase<string>>(\n planId: K extends I ? never : K,\n plan: PE,\n metadata: Metadata = { credits: 0, expiresIn: '0' }\n ): Subscription<NS, PE, PI, I | K> => {\n this.plans.set(planId, { ...metadata, plan });\n return this as Subscription<NS, PE, PI, I | K>;\n };\n\n default = <const T extends readonly [I, ...I[]]>(\n planIds: T & (IsUnique<T> extends true ? unknown : never)\n ) => {\n planIds.forEach((planId) => this.defaultPlans.add(planId));\n this.config[addMethod](this as never);\n return this.config;\n };\n}\n\ntype Options = { package: string; audience: string };\n\nexport class GooglePlayConfig<\n NS extends Lowercase<string> = Lowercase<string>,\n PE extends string = string,\n PI extends string = never,\n> {\n readonly package: string;\n readonly audience: string;\n private onetimes: Set<string>;\n private subscriptions: Map<string, Subscription<NS, PE, PI>>;\n private products: Map<string, (Metadata & { plan?: PE }) | null>;\n\n [addMethod] = (subscription: Subscription<NS, PE, PI>) => {\n subscription.plans.forEach((metadata, planId) => {\n this.products.set(this.getId(subscription.productId, planId), metadata);\n });\n this.subscriptions.set(subscription.productId, subscription);\n return this;\n };\n\n private getId = (productId: string, planId?: string) => {\n return planId ? `${productId}:${planId}` : productId;\n };\n\n private constructor(options: Options) {\n this.package = options.package;\n this.audience = options.audience;\n this.products = new Map();\n this.onetimes = new Set();\n this.subscriptions = new Map();\n }\n\n static create = <NS extends Lowercase<string>, PE extends string = string>(options: Options) => {\n return new GooglePlayConfig<NS, PE>(options);\n };\n\n subscription = <K extends `${NS}.${Lowercase<string>}`>(productId: K extends PI ? never : K) => {\n return new Subscription<NS, PE, PI | K>(this, productId);\n };\n\n onetime = <K extends `${NS}.${Lowercase<string>}`>(\n productId: K extends PI ? never : K,\n metadata: Metadata = { credits: 0, expiresIn: '0' }\n ) => {\n this.onetimes.add(productId);\n this.products.set(productId, metadata);\n return this as GooglePlayConfig<NS, PE, PI | K>;\n };\n\n getPlan = (productId: string, planId: string): PE => {\n const id = this.getId(productId, planId);\n const metadata = this.products.get(id);\n invariant(metadata, `Product not found for ${id}`);\n invariant(metadata.plan, `Plan not found for ${id}`);\n return metadata.plan;\n };\n\n getMode = (productId: string): 'payment' | 'subscription' => {\n if (this.onetimes.has(productId)) return 'payment';\n if (this.subscriptions.has(productId)) return 'subscription';\n throw new Error(`Mode not found for product ${productId}`);\n };\n\n getCreditAmount = (productId: string, planId?: string): number => {\n const id = this.getId(productId, planId);\n const metadata = this.products.get(id);\n invariant(metadata, `Product not found for ${id}`);\n return metadata.credits;\n };\n\n private getCreditExpiresIn = (productId: string, planId?: string): number => {\n const id = this.getId(productId, planId);\n const metadata = this.products.get(id);\n invariant(metadata, `Product not found for ${id}`);\n return ms(metadata.expiresIn);\n };\n\n getCreditExpiresAt = (productId: string, planId?: string): string => {\n const expiresIn = this.getCreditExpiresIn(productId, planId);\n return new Date(Date.now() + expiresIn).toISOString();\n };\n}\n"],"mappings":"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","names":[]}
|