@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
@@ -68,12 +68,23 @@ var LionRapid = (() => {
68
68
  })(LogLevel || {});
69
69
 
70
70
  // src/utils/logger.ts
71
- var IS_PRODUCTION = true;
72
- var IS_DEVELOPMENT = false;
73
- var IS_CI = false;
74
- var LIONRAPID_DEV = false;
75
- var PERFORMANCE_TRACKING = false;
76
- var LOG_LEVEL_ENV = IS_PRODUCTION ? "ERROR" : "DEBUG";
71
+ var _ENV = typeof process !== "undefined" && process.env ? process.env : {};
72
+ var IS_PRODUCTION = _ENV.NODE_ENV === "production";
73
+ var IS_DEVELOPMENT = _ENV.NODE_ENV === "development";
74
+ var IS_CI = _ENV.CI === "true";
75
+ var LIONRAPID_DEV = _ENV.LIONRAPID_DEV === "true";
76
+ var PERFORMANCE_TRACKING = _ENV.LIONRAPID_PERFORMANCE_TRACKING === "true";
77
+ function readBrowserLogLevel() {
78
+ try {
79
+ if (typeof localStorage !== "undefined") {
80
+ const v = localStorage.getItem("LIONRAPID_LOG_LEVEL");
81
+ if (v && typeof v === "string") return v;
82
+ }
83
+ } catch {
84
+ }
85
+ return null;
86
+ }
87
+ var LOG_LEVEL_ENV = readBrowserLogLevel() || _ENV.LOG_LEVEL || "WARN";
77
88
  var Colors = {
78
89
  // Reset
79
90
  RESET: "\x1B[0m",
@@ -279,7 +290,7 @@ var LionRapid = (() => {
279
290
  case "NONE":
280
291
  return 4 /* NONE */;
281
292
  default:
282
- return 0 /* DEBUG */;
293
+ return 2 /* WARN */;
283
294
  }
284
295
  }
285
296
  shouldEnableLogging() {
@@ -398,7 +409,9 @@ var LionRapid = (() => {
398
409
  constructor() {
399
410
  // ✅ Properly typed event listeners without `any`
400
411
  __publicField(this, "eventListeners", /* @__PURE__ */ new Map());
401
- __publicField(this, "debugMode", false);
412
+ // Browser-safe: `process` is undeclared in browsers; guard before reading.
413
+ // Bundlers still substitute `process.env.NODE_ENV` at build time.
414
+ __publicField(this, "debugMode", typeof process !== "undefined" && false);
402
415
  }
403
416
  /**
404
417
  * Subscribe to events (PUBLIC API) - Fully type-safe
@@ -1255,7 +1268,8 @@ var LionRapid = (() => {
1255
1268
  function parseTranslationParams(secondParam, thirdParam) {
1256
1269
  let defaultValue;
1257
1270
  let params;
1258
- if (typeof secondParam === "object" && typeof thirdParam === "object" && false) {
1271
+ const _isNotProd = typeof process === "undefined" || false;
1272
+ if (typeof secondParam === "object" && typeof thirdParam === "object" && _isNotProd) {
1259
1273
  console.warn(
1260
1274
  "[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."
1261
1275
  );
@@ -2199,6 +2213,27 @@ var LionRapid = (() => {
2199
2213
  }
2200
2214
  };
2201
2215
 
2216
+ // src/content/safe-href.ts
2217
+ var SAFE_SCHEME = /^[a-z][a-z0-9+.-]*:/i;
2218
+ var ALLOWED_SCHEMES = /* @__PURE__ */ new Set(["http:", "https:", "mailto:", "tel:", "sms:"]);
2219
+ function safeHref(href) {
2220
+ if (!href) return "#";
2221
+ const trimmed = href.trim();
2222
+ if (!trimmed) return "#";
2223
+ if (trimmed.startsWith("//")) {
2224
+ return "#";
2225
+ }
2226
+ if (trimmed.startsWith("/") || trimmed.startsWith("?") || trimmed.startsWith("#") || trimmed.startsWith("./") || trimmed.startsWith("../")) {
2227
+ return trimmed;
2228
+ }
2229
+ const schemeMatch = SAFE_SCHEME.exec(trimmed);
2230
+ if (schemeMatch) {
2231
+ const scheme = schemeMatch[0].toLowerCase();
2232
+ return ALLOWED_SCHEMES.has(scheme) ? trimmed : "#";
2233
+ }
2234
+ return trimmed;
2235
+ }
2236
+
2202
2237
  // src/content/style-mapper/DefaultStyleMapper.ts
2203
2238
  var DefaultStyleMapper = class {
2204
2239
  constructor() {
@@ -2284,7 +2319,7 @@ var LionRapid = (() => {
2284
2319
  if (style.startsWith("hyperlink:")) {
2285
2320
  return {
2286
2321
  element: "a",
2287
- attrs: { href: style.slice("hyperlink:".length) }
2322
+ attrs: { href: safeHref(style.slice("hyperlink:".length)) }
2288
2323
  };
2289
2324
  }
2290
2325
  }