web-manager 4.1.39 → 4.1.40

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/CHANGELOG.md CHANGED
@@ -14,6 +14,11 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
14
14
  - `Fixed` for any bug fixes.
15
15
  - `Security` in case of vulnerabilities.
16
16
 
17
+ ---
18
+ ## [4.1.40] - 2026-05-10
19
+ ### Changed
20
+ - **BREAKING (internal)**: `_resolveUsage()` now reads `config.payment.products` instead of `config.payment.plans`. Aligns with OMEGA's canonical shape (the SSOT) — same key name in BEM, UJM, EM. No backwards-compat shim; consumers must use `payment.products`. Default in `_processConfiguration()` updated from `plans: []` to `products: []`. Renamed local vars `plan`/`plans`/`planConfig` → `productId`/`products`/`product`. CLAUDE.md updated.
21
+
17
22
  ---
18
23
  ## [4.1.39] - 2026-04-10
19
24
  ### Changed
package/CLAUDE.md CHANGED
@@ -153,7 +153,7 @@ document.body.addEventListener('click', (e) => {
153
153
  - **Class**: `Auth`
154
154
  - **Key Methods**: `listen(options, callback)`, `isAuthenticated()`, `getUser()`, `signInWithEmailAndPassword()`, `signOut()`, `getIdToken()`, `resolveSubscription(account?)`
155
155
  - **Bindings**: Updates `auth` and `usage` context on auth settle
156
- - **Usage Resolution**: `_resolveUsage(state)` merges `account.usage` (Firestore) with plan limits from `config.payment.plans` to produce the `usage` bindings key (e.g., `{ credits: { monthly: 5, limit: 100 } }`)
156
+ - **Usage Resolution**: `_resolveUsage(state)` merges `account.usage` (Firestore) with product limits from `config.payment.products` (OMEGA-canonical shape — same key name in BEM, UJM, and EM) to produce the `usage` bindings key (e.g., `{ credits: { monthly: 5, limit: 100 } }`)
157
157
 
158
158
  #### resolveSubscription(account?)
159
159
  Derives calculated subscription fields from raw account data. Returns only fields that require derivation logic — raw data (product.id, status, trial, cancellation) lives on `account.subscription` directly.
@@ -269,13 +269,13 @@ Current test coverage is minimal - focuses on configuration and storage.
269
269
 
270
270
  ### Modifying Configuration Defaults
271
271
  1. Edit `_processConfiguration()` in `src/index.js`
272
- 2. Add to `defaults` object (e.g., `payment: { processors: {}, plans: [] }`)
272
+ 2. Add to `defaults` object (e.g., `payment: { processors: {}, products: [] }`)
273
273
  3. Document in README.md Configuration section
274
274
 
275
275
  ### Payment Configuration
276
- Payment config is set in `_config.yml` under `web_manager.payment` and includes:
277
- - `processors`: Stripe, PayPal, etc. (publishable keys)
278
- - `plans`: Array of `{ id, limits: { feature: N } }` used to resolve usage limits on the frontend
276
+ Payment config shape mirrors OMEGA (the SSOT) — same key names used in BEM, UJM, and EM:
277
+ - `processors`: Stripe, PayPal, Chargebee, Coinbase (publishable keys / client IDs)
278
+ - `products`: Array of `{ id, name, type, limits: { feature: N }, prices, trial, paypal, stripe, chargebee }` used to resolve usage limits on the frontend AND drive checkout flows
279
279
 
280
280
  ### Adding a Data Binding Action
281
281
  1. Edit `_executeAction()` in `src/modules/bindings.js`
package/dist/index.js CHANGED
@@ -298,7 +298,7 @@ class Manager {
298
298
  validRedirectHosts: [],
299
299
  payment: {
300
300
  processors: {},
301
- plans: [],
301
+ products: [],
302
302
  },
303
303
 
304
304
  // Non-configurable defaults
@@ -256,14 +256,17 @@ class Auth {
256
256
  };
257
257
  }
258
258
 
259
- // Resolve usage bindings from account data + plan limits from config.
259
+ // Resolve usage bindings from account data + product limits from config.
260
260
  // Returns: { credits: { monthly: 5, limit: 100 }, ... }
261
+ //
262
+ // The product catalog lives at `config.payment.products` (OMEGA canonical
263
+ // shape — matches BEM, UJM, and EM). Each product entry has `{ id, limits: {...} }`.
261
264
  _resolveUsage(state) {
262
265
  const accountUsage = state.account?.usage || {};
263
- const plan = state.resolved?.plan || 'basic';
264
- const plans = this.manager.config.payment?.plans || [];
265
- const planConfig = plans.find(p => p.id === plan) || {};
266
- const limits = planConfig.limits || {};
266
+ const productId = state.resolved?.plan || 'basic';
267
+ const products = this.manager.config.payment?.products || [];
268
+ const product = products.find(p => p.id === productId) || {};
269
+ const limits = product.limits || {};
267
270
 
268
271
  // Merge current usage with limits for each feature
269
272
  const usage = {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "web-manager",
3
- "version": "4.1.39",
3
+ "version": "4.1.40",
4
4
  "description": "Easily access important variables such as the query string, current domain, and current page in a single object.",
5
5
  "main": "dist/index.js",
6
6
  "module": "src/index.js",