* handle billingInfo / account discrepancies
* fix rate limiting behaviour of fetchRecurlyActiveSubscription
* make force-invalid-tax aware of stripe tax validation errors
* clear taxInfoPending if vatNumber is now valid or not present on second runs
* re-instate pre-validation of tax ids in dry-run mode
* handle tax exemption
* fix tax pre-validation tests
* fix comment typos
* remove redundant hadConflict
* re-use normalizeName function
* throw if more than 1 active recurly subscription when resolving conflict
---------
Co-authored-by: Simon Gardner <simon.gardner@overleaf.com>
GitOrigin-RevId: a88cad87887bd9e043fb457091e999c1d555f546
* [web] extract card comparison function
* [web] throw if more than 1 duplicate customer account
* [web] attempt to pick the pre-existing account
* [web] overwrite email of duplicate account
* Update services/web/scripts/helpers/migrate_recurly_customers_to_stripe.helpers.mjs
* [web] handle setting being undefined
* [web] allow other account to be reused if migrating account is using paypal
* [web] allow matching for customers with no payment method
GitOrigin-RevId: 7d8eeb4734a20c09ce3e0d73095e28696e212549
* support Paypal for migration
* remove sensitive payment info in logging
* add `resolveStripeCustomer`
GitOrigin-RevId: a8fc7de4a4bf3971c5221a0dec3fc279d8d2f67d
* make warnings more eye catching in clean up dry run
* only increment processedCount after processing
* always rm recurlyAccountCode
* check if existing Stripe customer already has a subscription
* ensure no other customer accounts share the user id
* set recurly_to_stripe_migration_status to cancelled in cancel script
* add script for updating metadata of canceled migrations
GitOrigin-RevId: 3331de480e99774679ff2649b90d41e981a8fdef
* check and log unexpected end states before terminating Recurly subscriptions
* update finalize and rollback scripts to only postpone active subscriptions
GitOrigin-RevId: 7fe6ffa56cb8ddf19133eb0cb59e39fd783430b7
* remap customer.metadata.recurlyAccountCode to customer.metadata.userId
* verify recurlyAccountCode is what we expect it to be before setting
GitOrigin-RevId: 8ab1d5e311dba34bb8c15d01096f6c31273a7506
* update recurly change prices script
* write to /tmp/ and add an option to write to stdout
* add analytics events
* default script to renewal
GitOrigin-RevId: 5ebb17ee2c1ad70128391745a994ea6c74c739f9
* update generate recurly prices script to skip stripe-only prices
* add script for creating new Stripe prices from a CSV
* add script to archive Stripe prices by version key
* add script for exporting Stripe products and prices
* add script to import Stripe products
GitOrigin-RevId: 3c9cf8037d956b9532c3efed5fe8d63f8be53a93
* [web] reduce noise from CollectPayPalPastDueInvoiceTest
* [web] reduce noise for frontend tests that use Range.getClientRects
* [web] avoid nesting <li> elements in ProjectToolsMoreDropdownButton
RenameProjectMenuItem/CopyProjectMenuItem will return <li> elements.
* [web] avoid clicking on links that navigate away in JSDom
* [web] add mock for location change in JSDom
* [web] add fallback stripe subscription data for test
3.8k lines of log noise!
GitOrigin-RevId: 7adab182487a6c07ac9809c60802e498a0edb0ec
* Add some JSDoc types to `@overleaf/logger`
* Update `logger.error` calls
* Fixup `logger.err` JSDoc
* Update `logger.err` calls
* Fix `args` type
* Remove "Error message" description
* Replace `arguments` by actual arguments of the method
* Fix: "ESLint: Unnecessary '.apply()'.(no-useless-call)"
* Add JSDoc params to `debug` `info` `warn`
* Remove extra `args` param in JSDoc so developers aren't invited to use it
Not sure if this is the best thing to do because it creates a warning in the IDE: "Parameter args is not described in JSDoc"
* Add comment about serialization of `err` `req` `res`
* Allow strings as first param in `debug` `info` `warn`
* Fix syntax for optional parameters in JSDoc
* Add 2 signatures, to avoid "string, string" params
* Fix `@signature` names copy-pastes
Co-authored-by: Jakob Ackermann <jakob.ackermann@overleaf.com>
* Revert the double `@param attributes`. It doesn't work
---------
Co-authored-by: Jakob Ackermann <jakob.ackermann@overleaf.com>
GitOrigin-RevId: 086dee8bbf30d577c5e1f844a9df5e518c46aca7