@namiml/sdk-core 3.4.0-dev.202604101801 → 3.4.0-dev.202604151444

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/dist/index.cjs CHANGED
@@ -98,7 +98,7 @@ const {
98
98
  // version — stamped by scripts/version.sh
99
99
  NAMI_SDK_VERSION: exports.NAMI_SDK_VERSION = "3.4.0",
100
100
  // full package version including dev suffix — stamped by scripts/version.sh
101
- NAMI_SDK_PACKAGE_VERSION: exports.NAMI_SDK_PACKAGE_VERSION = "3.4.0-dev.202604101801",
101
+ NAMI_SDK_PACKAGE_VERSION: exports.NAMI_SDK_PACKAGE_VERSION = "3.4.0-dev.202604151444",
102
102
  // environments
103
103
  PRODUCTION: exports.PRODUCTION = "production", DEVELOPMENT: exports.DEVELOPMENT = "development",
104
104
  // error messages
@@ -8277,7 +8277,11 @@ class PaywallRepository {
8277
8277
  paywalls = await this.getPaywalls(authDevice.id);
8278
8278
  }
8279
8279
  if (paywalls) {
8280
- storageService.setPaywalls(exports.API_PAYWALLS, paywalls);
8280
+ const valid = this.validatePaywalls(paywalls);
8281
+ if (valid.length > 0) {
8282
+ storageService.setPaywalls(exports.API_PAYWALLS, valid);
8283
+ }
8284
+ return valid;
8281
8285
  }
8282
8286
  return paywalls;
8283
8287
  }
@@ -8327,10 +8331,24 @@ class PaywallRepository {
8327
8331
  }
8328
8332
  }
8329
8333
  if (paywalls.length > 0) {
8330
- storageService.setPaywalls(exports.API_PAYWALLS, paywalls);
8334
+ const valid = this.validatePaywalls(paywalls);
8335
+ if (valid.length > 0) {
8336
+ storageService.setPaywalls(exports.API_PAYWALLS, valid);
8337
+ }
8338
+ return valid;
8331
8339
  }
8332
8340
  return paywalls;
8333
8341
  }
8342
+ validatePaywalls(paywalls) {
8343
+ return paywalls.filter((paywall) => {
8344
+ const pages = paywall.template?.pages;
8345
+ if (!Array.isArray(pages) || pages.length === 0) {
8346
+ logger.warn(`Dropping paywall "${paywall.id}" from cache: template.pages is missing or empty`);
8347
+ return false;
8348
+ }
8349
+ return true;
8350
+ });
8351
+ }
8334
8352
  fallbackData() {
8335
8353
  const storedData = storageService.getPaywalls(exports.API_PAYWALLS)
8336
8354
  || storageService.getPaywalls(exports.INITIAL_PAYWALLS);
package/dist/index.d.ts CHANGED
@@ -2878,6 +2878,7 @@ declare class PaywallRepository {
2878
2878
  private getPaywalls;
2879
2879
  fetchPaywallByUrl(url: string): Promise<IPaywall>;
2880
2880
  fetchPaywallsByUrls(urls: string[]): Promise<IPaywall[]>;
2881
+ private validatePaywalls;
2881
2882
  private fallbackData;
2882
2883
  }
2883
2884
 
package/dist/index.mjs CHANGED
@@ -96,7 +96,7 @@ const {
96
96
  // version — stamped by scripts/version.sh
97
97
  NAMI_SDK_VERSION = "3.4.0",
98
98
  // full package version including dev suffix — stamped by scripts/version.sh
99
- NAMI_SDK_PACKAGE_VERSION = "3.4.0-dev.202604101801",
99
+ NAMI_SDK_PACKAGE_VERSION = "3.4.0-dev.202604151444",
100
100
  // environments
101
101
  PRODUCTION = "production", DEVELOPMENT = "development",
102
102
  // error messages
@@ -8275,7 +8275,11 @@ class PaywallRepository {
8275
8275
  paywalls = await this.getPaywalls(authDevice.id);
8276
8276
  }
8277
8277
  if (paywalls) {
8278
- storageService.setPaywalls(API_PAYWALLS, paywalls);
8278
+ const valid = this.validatePaywalls(paywalls);
8279
+ if (valid.length > 0) {
8280
+ storageService.setPaywalls(API_PAYWALLS, valid);
8281
+ }
8282
+ return valid;
8279
8283
  }
8280
8284
  return paywalls;
8281
8285
  }
@@ -8325,10 +8329,24 @@ class PaywallRepository {
8325
8329
  }
8326
8330
  }
8327
8331
  if (paywalls.length > 0) {
8328
- storageService.setPaywalls(API_PAYWALLS, paywalls);
8332
+ const valid = this.validatePaywalls(paywalls);
8333
+ if (valid.length > 0) {
8334
+ storageService.setPaywalls(API_PAYWALLS, valid);
8335
+ }
8336
+ return valid;
8329
8337
  }
8330
8338
  return paywalls;
8331
8339
  }
8340
+ validatePaywalls(paywalls) {
8341
+ return paywalls.filter((paywall) => {
8342
+ const pages = paywall.template?.pages;
8343
+ if (!Array.isArray(pages) || pages.length === 0) {
8344
+ logger.warn(`Dropping paywall "${paywall.id}" from cache: template.pages is missing or empty`);
8345
+ return false;
8346
+ }
8347
+ return true;
8348
+ });
8349
+ }
8332
8350
  fallbackData() {
8333
8351
  const storedData = storageService.getPaywalls(API_PAYWALLS)
8334
8352
  || storageService.getPaywalls(INITIAL_PAYWALLS);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@namiml/sdk-core",
3
- "version": "3.4.0-dev.202604101801",
3
+ "version": "3.4.0-dev.202604151444",
4
4
  "description": "Platform-agnostic core for the Nami SDK — business logic, API, types, and state management",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",