@lionrapid/core 0.1.4-beta.0 → 0.2.0

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.
Files changed (41) hide show
  1. package/dist/base/event-emitter.d.ts.map +1 -1
  2. package/dist/base/event-emitter.js +4 -1
  3. package/dist/base/event-emitter.js.map +1 -1
  4. package/dist/browser/lionrapid.auto.dev.js +45 -10
  5. package/dist/browser/lionrapid.auto.dev.js.map +3 -3
  6. package/dist/browser/lionrapid.auto.js +45 -10
  7. package/dist/browser/lionrapid.auto.js.map +3 -3
  8. package/dist/browser/lionrapid.auto.min.js +3 -3
  9. package/dist/browser/lionrapid.auto.min.js.map +4 -4
  10. package/dist/browser/lionrapid.editor.js +22 -1
  11. package/dist/browser/lionrapid.editor.js.map +3 -3
  12. package/dist/browser/lionrapid.editor.min.js +3 -3
  13. package/dist/browser/lionrapid.editor.min.js.map +4 -4
  14. package/dist/browser/lionrapid.esm.js +45 -10
  15. package/dist/browser/lionrapid.esm.js.map +3 -3
  16. package/dist/browser/lionrapid.esm.min.js +2 -2
  17. package/dist/browser/lionrapid.esm.min.js.map +4 -4
  18. package/dist/browser/lionrapid.iife.dev.js +45 -10
  19. package/dist/browser/lionrapid.iife.dev.js.map +3 -3
  20. package/dist/browser/lionrapid.iife.js +45 -10
  21. package/dist/browser/lionrapid.iife.js.map +3 -3
  22. package/dist/browser/lionrapid.iife.min.js +2 -2
  23. package/dist/browser/lionrapid.iife.min.js.map +4 -4
  24. package/dist/browser/lionrapid.umd.js +45 -10
  25. package/dist/browser/lionrapid.umd.js.map +3 -3
  26. package/dist/browser/lionrapid.umd.min.js +2 -2
  27. package/dist/browser/lionrapid.umd.min.js.map +4 -4
  28. package/dist/content/safe-href.d.ts +22 -0
  29. package/dist/content/safe-href.d.ts.map +1 -0
  30. package/dist/content/safe-href.js +48 -0
  31. package/dist/content/safe-href.js.map +1 -0
  32. package/dist/content/style-mapper/DefaultStyleMapper.d.ts.map +1 -1
  33. package/dist/content/style-mapper/DefaultStyleMapper.js +5 -1
  34. package/dist/content/style-mapper/DefaultStyleMapper.js.map +1 -1
  35. package/dist/utils/logger.d.ts.map +1 -1
  36. package/dist/utils/logger.js +43 -8
  37. package/dist/utils/logger.js.map +1 -1
  38. package/dist/utils/translation-flow.d.ts.map +1 -1
  39. package/dist/utils/translation-flow.js +7 -2
  40. package/dist/utils/translation-flow.js.map +1 -1
  41. package/package.json +1 -1
@@ -80,12 +80,23 @@ var LogLevel = /* @__PURE__ */ ((LogLevel2) => {
80
80
  })(LogLevel || {});
81
81
 
82
82
  // src/utils/logger.ts
83
- var IS_PRODUCTION = true;
84
- var IS_DEVELOPMENT = false;
85
- var IS_CI = false;
86
- var LIONRAPID_DEV = false;
87
- var PERFORMANCE_TRACKING = false;
88
- var LOG_LEVEL_ENV = IS_PRODUCTION ? "ERROR" : "DEBUG";
83
+ var _ENV = typeof process !== "undefined" && process.env ? process.env : {};
84
+ var IS_PRODUCTION = _ENV.NODE_ENV === "production";
85
+ var IS_DEVELOPMENT = _ENV.NODE_ENV === "development";
86
+ var IS_CI = _ENV.CI === "true";
87
+ var LIONRAPID_DEV = _ENV.LIONRAPID_DEV === "true";
88
+ var PERFORMANCE_TRACKING = _ENV.LIONRAPID_PERFORMANCE_TRACKING === "true";
89
+ function readBrowserLogLevel() {
90
+ try {
91
+ if (typeof localStorage !== "undefined") {
92
+ const v = localStorage.getItem("LIONRAPID_LOG_LEVEL");
93
+ if (v && typeof v === "string") return v;
94
+ }
95
+ } catch {
96
+ }
97
+ return null;
98
+ }
99
+ var LOG_LEVEL_ENV = readBrowserLogLevel() || _ENV.LOG_LEVEL || "WARN";
89
100
  var Colors = {
90
101
  // Reset
91
102
  RESET: "\x1B[0m",
@@ -291,7 +302,7 @@ var DevelopmentLogger = class _DevelopmentLogger {
291
302
  case "NONE":
292
303
  return 4 /* NONE */;
293
304
  default:
294
- return 0 /* DEBUG */;
305
+ return 2 /* WARN */;
295
306
  }
296
307
  }
297
308
  shouldEnableLogging() {
@@ -410,7 +421,9 @@ var EventEmitter = class {
410
421
  constructor() {
411
422
  // ✅ Properly typed event listeners without `any`
412
423
  __publicField(this, "eventListeners", /* @__PURE__ */ new Map());
413
- __publicField(this, "debugMode", false);
424
+ // Browser-safe: `process` is undeclared in browsers; guard before reading.
425
+ // Bundlers still substitute `process.env.NODE_ENV` at build time.
426
+ __publicField(this, "debugMode", typeof process !== "undefined" && false);
414
427
  }
415
428
  /**
416
429
  * Subscribe to events (PUBLIC API) - Fully type-safe
@@ -1267,7 +1280,8 @@ function prepareTranslationRequest(key, currentLocale, defaultValueOrParams, par
1267
1280
  function parseTranslationParams(secondParam, thirdParam) {
1268
1281
  let defaultValue;
1269
1282
  let params;
1270
- if (typeof secondParam === "object" && typeof thirdParam === "object" && false) {
1283
+ const _isNotProd = typeof process === "undefined" || false;
1284
+ if (typeof secondParam === "object" && typeof thirdParam === "object" && _isNotProd) {
1271
1285
  console.warn(
1272
1286
  "[LionRapid] Warning: Both secondParam and thirdParam are objects. Expected pattern: t(key, params, defaultValue) or t(key, defaultValue, params). Second object will be ignored as it cannot be a defaultValue."
1273
1287
  );
@@ -2211,6 +2225,27 @@ var NetworkHandler = class {
2211
2225
  }
2212
2226
  };
2213
2227
 
2228
+ // src/content/safe-href.ts
2229
+ var SAFE_SCHEME = /^[a-z][a-z0-9+.-]*:/i;
2230
+ var ALLOWED_SCHEMES = /* @__PURE__ */ new Set(["http:", "https:", "mailto:", "tel:", "sms:"]);
2231
+ function safeHref(href) {
2232
+ if (!href) return "#";
2233
+ const trimmed = href.trim();
2234
+ if (!trimmed) return "#";
2235
+ if (trimmed.startsWith("//")) {
2236
+ return "#";
2237
+ }
2238
+ if (trimmed.startsWith("/") || trimmed.startsWith("?") || trimmed.startsWith("#") || trimmed.startsWith("./") || trimmed.startsWith("../")) {
2239
+ return trimmed;
2240
+ }
2241
+ const schemeMatch = SAFE_SCHEME.exec(trimmed);
2242
+ if (schemeMatch) {
2243
+ const scheme = schemeMatch[0].toLowerCase();
2244
+ return ALLOWED_SCHEMES.has(scheme) ? trimmed : "#";
2245
+ }
2246
+ return trimmed;
2247
+ }
2248
+
2214
2249
  // src/content/style-mapper/DefaultStyleMapper.ts
2215
2250
  var DefaultStyleMapper = class {
2216
2251
  constructor() {
@@ -2296,7 +2331,7 @@ var DefaultStyleMapper = class {
2296
2331
  if (style.startsWith("hyperlink:")) {
2297
2332
  return {
2298
2333
  element: "a",
2299
- attrs: { href: style.slice("hyperlink:".length) }
2334
+ attrs: { href: safeHref(style.slice("hyperlink:".length)) }
2300
2335
  };
2301
2336
  }
2302
2337
  }