@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
@@ -13,12 +13,23 @@ var LogLevel = /* @__PURE__ */ ((LogLevel2) => {
13
13
  })(LogLevel || {});
14
14
 
15
15
  // src/utils/logger.ts
16
- var IS_PRODUCTION = true;
17
- var IS_DEVELOPMENT = false;
18
- var IS_CI = false;
19
- var LIONRAPID_DEV = false;
20
- var PERFORMANCE_TRACKING = false;
21
- var LOG_LEVEL_ENV = IS_PRODUCTION ? "ERROR" : "DEBUG";
16
+ var _ENV = typeof process !== "undefined" && process.env ? process.env : {};
17
+ var IS_PRODUCTION = _ENV.NODE_ENV === "production";
18
+ var IS_DEVELOPMENT = _ENV.NODE_ENV === "development";
19
+ var IS_CI = _ENV.CI === "true";
20
+ var LIONRAPID_DEV = _ENV.LIONRAPID_DEV === "true";
21
+ var PERFORMANCE_TRACKING = _ENV.LIONRAPID_PERFORMANCE_TRACKING === "true";
22
+ function readBrowserLogLevel() {
23
+ try {
24
+ if (typeof localStorage !== "undefined") {
25
+ const v = localStorage.getItem("LIONRAPID_LOG_LEVEL");
26
+ if (v && typeof v === "string") return v;
27
+ }
28
+ } catch {
29
+ }
30
+ return null;
31
+ }
32
+ var LOG_LEVEL_ENV = readBrowserLogLevel() || _ENV.LOG_LEVEL || "WARN";
22
33
  var Colors = {
23
34
  // Reset
24
35
  RESET: "\x1B[0m",
@@ -224,7 +235,7 @@ var DevelopmentLogger = class _DevelopmentLogger {
224
235
  case "NONE":
225
236
  return 4 /* NONE */;
226
237
  default:
227
- return 0 /* DEBUG */;
238
+ return 2 /* WARN */;
228
239
  }
229
240
  }
230
241
  shouldEnableLogging() {
@@ -343,7 +354,9 @@ var EventEmitter = class {
343
354
  constructor() {
344
355
  // ✅ Properly typed event listeners without `any`
345
356
  __publicField(this, "eventListeners", /* @__PURE__ */ new Map());
346
- __publicField(this, "debugMode", false);
357
+ // Browser-safe: `process` is undeclared in browsers; guard before reading.
358
+ // Bundlers still substitute `process.env.NODE_ENV` at build time.
359
+ __publicField(this, "debugMode", typeof process !== "undefined" && false);
347
360
  }
348
361
  /**
349
362
  * Subscribe to events (PUBLIC API) - Fully type-safe
@@ -1200,7 +1213,8 @@ function prepareTranslationRequest(key, currentLocale, defaultValueOrParams, par
1200
1213
  function parseTranslationParams(secondParam, thirdParam) {
1201
1214
  let defaultValue;
1202
1215
  let params;
1203
- if (typeof secondParam === "object" && typeof thirdParam === "object" && false) {
1216
+ const _isNotProd = typeof process === "undefined" || false;
1217
+ if (typeof secondParam === "object" && typeof thirdParam === "object" && _isNotProd) {
1204
1218
  console.warn(
1205
1219
  "[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."
1206
1220
  );
@@ -2144,6 +2158,27 @@ var NetworkHandler = class {
2144
2158
  }
2145
2159
  };
2146
2160
 
2161
+ // src/content/safe-href.ts
2162
+ var SAFE_SCHEME = /^[a-z][a-z0-9+.-]*:/i;
2163
+ var ALLOWED_SCHEMES = /* @__PURE__ */ new Set(["http:", "https:", "mailto:", "tel:", "sms:"]);
2164
+ function safeHref(href) {
2165
+ if (!href) return "#";
2166
+ const trimmed = href.trim();
2167
+ if (!trimmed) return "#";
2168
+ if (trimmed.startsWith("//")) {
2169
+ return "#";
2170
+ }
2171
+ if (trimmed.startsWith("/") || trimmed.startsWith("?") || trimmed.startsWith("#") || trimmed.startsWith("./") || trimmed.startsWith("../")) {
2172
+ return trimmed;
2173
+ }
2174
+ const schemeMatch = SAFE_SCHEME.exec(trimmed);
2175
+ if (schemeMatch) {
2176
+ const scheme = schemeMatch[0].toLowerCase();
2177
+ return ALLOWED_SCHEMES.has(scheme) ? trimmed : "#";
2178
+ }
2179
+ return trimmed;
2180
+ }
2181
+
2147
2182
  // src/content/style-mapper/DefaultStyleMapper.ts
2148
2183
  var DefaultStyleMapper = class {
2149
2184
  constructor() {
@@ -2229,7 +2264,7 @@ var DefaultStyleMapper = class {
2229
2264
  if (style.startsWith("hyperlink:")) {
2230
2265
  return {
2231
2266
  element: "a",
2232
- attrs: { href: style.slice("hyperlink:".length) }
2267
+ attrs: { href: safeHref(style.slice("hyperlink:".length)) }
2233
2268
  };
2234
2269
  }
2235
2270
  }