@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
@@ -52,12 +52,23 @@ var LionRapid = (() => {
52
52
  })(LogLevel || {});
53
53
 
54
54
  // src/utils/logger.ts
55
- var IS_PRODUCTION = true;
56
- var IS_DEVELOPMENT = false;
57
- var IS_CI = false;
58
- var LIONRAPID_DEV = false;
59
- var PERFORMANCE_TRACKING = false;
60
- var LOG_LEVEL_ENV = IS_PRODUCTION ? "ERROR" : "DEBUG";
55
+ var _ENV = typeof process !== "undefined" && process.env ? process.env : {};
56
+ var IS_PRODUCTION = _ENV.NODE_ENV === "production";
57
+ var IS_DEVELOPMENT = _ENV.NODE_ENV === "development";
58
+ var IS_CI = _ENV.CI === "true";
59
+ var LIONRAPID_DEV = _ENV.LIONRAPID_DEV === "true";
60
+ var PERFORMANCE_TRACKING = _ENV.LIONRAPID_PERFORMANCE_TRACKING === "true";
61
+ function readBrowserLogLevel() {
62
+ try {
63
+ if (typeof localStorage !== "undefined") {
64
+ const v = localStorage.getItem("LIONRAPID_LOG_LEVEL");
65
+ if (v && typeof v === "string") return v;
66
+ }
67
+ } catch {
68
+ }
69
+ return null;
70
+ }
71
+ var LOG_LEVEL_ENV = readBrowserLogLevel() || _ENV.LOG_LEVEL || "WARN";
61
72
  var Colors = {
62
73
  // Reset
63
74
  RESET: "\x1B[0m",
@@ -263,7 +274,7 @@ var LionRapid = (() => {
263
274
  case "NONE":
264
275
  return 4 /* NONE */;
265
276
  default:
266
- return 0 /* DEBUG */;
277
+ return 2 /* WARN */;
267
278
  }
268
279
  }
269
280
  shouldEnableLogging() {
@@ -329,7 +340,9 @@ var LionRapid = (() => {
329
340
  constructor() {
330
341
  // ✅ Properly typed event listeners without `any`
331
342
  __publicField(this, "eventListeners", /* @__PURE__ */ new Map());
332
- __publicField(this, "debugMode", false);
343
+ // Browser-safe: `process` is undeclared in browsers; guard before reading.
344
+ // Bundlers still substitute `process.env.NODE_ENV` at build time.
345
+ __publicField(this, "debugMode", typeof process !== "undefined" && false);
333
346
  }
334
347
  /**
335
348
  * Subscribe to events (PUBLIC API) - Fully type-safe
@@ -1186,7 +1199,8 @@ var LionRapid = (() => {
1186
1199
  function parseTranslationParams(secondParam, thirdParam) {
1187
1200
  let defaultValue;
1188
1201
  let params;
1189
- if (typeof secondParam === "object" && typeof thirdParam === "object" && false) {
1202
+ const _isNotProd = typeof process === "undefined" || false;
1203
+ if (typeof secondParam === "object" && typeof thirdParam === "object" && _isNotProd) {
1190
1204
  console.warn(
1191
1205
  "[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."
1192
1206
  );
@@ -2124,6 +2138,27 @@ var LionRapid = (() => {
2124
2138
  }
2125
2139
  };
2126
2140
 
2141
+ // src/content/safe-href.ts
2142
+ var SAFE_SCHEME = /^[a-z][a-z0-9+.-]*:/i;
2143
+ var ALLOWED_SCHEMES = /* @__PURE__ */ new Set(["http:", "https:", "mailto:", "tel:", "sms:"]);
2144
+ function safeHref(href) {
2145
+ if (!href) return "#";
2146
+ const trimmed = href.trim();
2147
+ if (!trimmed) return "#";
2148
+ if (trimmed.startsWith("//")) {
2149
+ return "#";
2150
+ }
2151
+ if (trimmed.startsWith("/") || trimmed.startsWith("?") || trimmed.startsWith("#") || trimmed.startsWith("./") || trimmed.startsWith("../")) {
2152
+ return trimmed;
2153
+ }
2154
+ const schemeMatch = SAFE_SCHEME.exec(trimmed);
2155
+ if (schemeMatch) {
2156
+ const scheme = schemeMatch[0].toLowerCase();
2157
+ return ALLOWED_SCHEMES.has(scheme) ? trimmed : "#";
2158
+ }
2159
+ return trimmed;
2160
+ }
2161
+
2127
2162
  // src/content/style-mapper/DefaultStyleMapper.ts
2128
2163
  var DefaultStyleMapper = class {
2129
2164
  constructor() {
@@ -2209,7 +2244,7 @@ var LionRapid = (() => {
2209
2244
  if (style.startsWith("hyperlink:")) {
2210
2245
  return {
2211
2246
  element: "a",
2212
- attrs: { href: style.slice("hyperlink:".length) }
2247
+ attrs: { href: safeHref(style.slice("hyperlink:".length)) }
2213
2248
  };
2214
2249
  }
2215
2250
  }