in ClassyTaxiServer/src/play-billing/internal/purchases_impl.ts [141:162]
static fromApiResponse(apiResponse: any, packageName: string, purchaseToken: string, sku: string, verifiedAt:number): SubscriptionPurchaseImpl {
// Intentionally hide developerPayload as the field was deprecated
apiResponse.developerPayload = null;
const purchase = new SubscriptionPurchaseImpl();
Object.assign(purchase, apiResponse);
purchase.purchaseToken = purchaseToken;
purchase.sku = sku;
purchase.verifiedAt = verifiedAt;
purchase.replacedByAnotherPurchase = false;
purchase.packageName = packageName;
purchase.isMutable = purchase.autoRenewing || (verifiedAt < purchase.expiryTimeMillis);
// Play Developer API subscriptions:get returns some properties as string instead of number as documented. We do some type correction here to fix that
if (purchase.startTimeMillis) purchase.startTimeMillis = Number(purchase.startTimeMillis);
if (purchase.expiryTimeMillis) purchase.expiryTimeMillis = Number(purchase.expiryTimeMillis);
if (purchase.autoResumeTimeMillis) purchase.autoResumeTimeMillis = Number(purchase.autoResumeTimeMillis);
if (purchase.priceAmountMicros) purchase.priceAmountMicros = Number(purchase.priceAmountMicros);
if (purchase.userCancellationTimeMillis) purchase.userCancellationTimeMillis = Number(purchase.userCancellationTimeMillis);
return purchase;
}