@naylence/runtime 0.3.2 → 0.3.4

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 (32) hide show
  1. package/dist/browser/index.js +46 -1
  2. package/dist/browser/index.js.map +1 -1
  3. package/dist/cjs/naylence/fame/node/node.js +1 -1
  4. package/dist/cjs/naylence/fame/node/node.js.map +1 -1
  5. package/dist/cjs/naylence/fame/security/crypto/providers/default-crypto-provider.js +12 -2
  6. package/dist/cjs/naylence/fame/security/crypto/providers/default-crypto-provider.js.map +1 -1
  7. package/dist/cjs/naylence/fame/telemetry/open-telemetry-trace-emitter-factory.js +2 -2
  8. package/dist/cjs/naylence/fame/telemetry/open-telemetry-trace-emitter-factory.js.map +1 -1
  9. package/dist/cjs/naylence/fame/telemetry/otel-setup.js +3 -3
  10. package/dist/cjs/naylence/fame/telemetry/otel-setup.js.map +1 -1
  11. package/dist/cjs/naylence/fame/util/logging.js +46 -1
  12. package/dist/cjs/naylence/fame/util/logging.js.map +1 -1
  13. package/dist/cjs/naylence/fame/util/runtime-version.js.map +1 -1
  14. package/dist/esm/naylence/fame/node/node.js +1 -1
  15. package/dist/esm/naylence/fame/node/node.js.map +1 -1
  16. package/dist/esm/naylence/fame/security/crypto/providers/default-crypto-provider.js +12 -2
  17. package/dist/esm/naylence/fame/security/crypto/providers/default-crypto-provider.js.map +1 -1
  18. package/dist/esm/naylence/fame/telemetry/open-telemetry-trace-emitter-factory.js +2 -2
  19. package/dist/esm/naylence/fame/telemetry/open-telemetry-trace-emitter-factory.js.map +1 -1
  20. package/dist/esm/naylence/fame/telemetry/otel-setup.js +3 -3
  21. package/dist/esm/naylence/fame/telemetry/otel-setup.js.map +1 -1
  22. package/dist/esm/naylence/fame/util/logging.js +46 -1
  23. package/dist/esm/naylence/fame/util/logging.js.map +1 -1
  24. package/dist/esm/naylence/fame/util/runtime-version.js.map +1 -1
  25. package/dist/esm/naylence/fame/welcome/node-welcome-server.js +5 -13
  26. package/dist/esm/naylence/fame/welcome/node-welcome-server.js.map +1 -1
  27. package/dist/types/naylence/fame/util/logging.d.ts +18 -0
  28. package/dist/types/naylence/fame/util/logging.d.ts.map +1 -1
  29. package/dist/types/naylence/fame/util/runtime-version.d.ts.map +1 -1
  30. package/dist/types/naylence/fame/welcome/node-welcome-server.d.ts +2 -1
  31. package/dist/types/naylence/fame/welcome/node-welcome-server.d.ts.map +1 -1
  32. package/package.json +1 -1
@@ -7920,6 +7920,24 @@
7920
7920
  *
7921
7921
  * This module provides a unified logging interface that works in both Node.js and browser environments.
7922
7922
  * It includes structured logging with processors similar to Python's structlog.
7923
+ *
7924
+ * Environment Variables:
7925
+ * - FAME_LOG_LEVEL: Set the initial log level at framework initialization (Node.js only)
7926
+ * Valid values: TRACE, DEBUG, INFO, WARNING, WARN, ERROR, CRITICAL
7927
+ * Default: INFO (balanced verbosity), OFF during tests
7928
+ *
7929
+ * Usage:
7930
+ * ```typescript
7931
+ * // Automatic - just set the environment variable
7932
+ * // FAME_LOG_LEVEL=INFO node my-app.js
7933
+ *
7934
+ * // Or call enableLogging() to override at runtime
7935
+ * import { enableLogging, getLogger } from '@naylence/runtime';
7936
+ * enableLogging('DEBUG');
7937
+ *
7938
+ * const logger = getLogger('my.app');
7939
+ * logger.info('Application started');
7940
+ * ```
7923
7941
  */
7924
7942
  // Default processors (similar to structlog processors)
7925
7943
  const addTimestamp = (entry) => {
@@ -8174,8 +8192,35 @@
8174
8192
  if (isNode) {
8175
8193
  initializePino();
8176
8194
  }
8195
+ /**
8196
+ * Get initial log level from environment variable or defaults
8197
+ */
8198
+ function getInitialLogLevel() {
8199
+ // Tests should be silent
8200
+ if (isTest) {
8201
+ return exports.LogLevel.OFF;
8202
+ }
8203
+ // Check FAME_LOG_LEVEL environment variable
8204
+ if (isNode && typeof process !== 'undefined' && process.env.FAME_LOG_LEVEL) {
8205
+ try {
8206
+ const envLevel = process.env.FAME_LOG_LEVEL.trim().toUpperCase();
8207
+ // Direct enum name match (e.g., "DEBUG", "INFO")
8208
+ if (envLevel in exports.LogLevel) {
8209
+ return exports.LogLevel[envLevel];
8210
+ }
8211
+ // Try alternative mappings
8212
+ if (envLevel === 'WARN')
8213
+ return exports.LogLevel.WARNING;
8214
+ }
8215
+ catch {
8216
+ // Fall through to default
8217
+ }
8218
+ }
8219
+ // Default to INFO - balanced verbosity for most use cases
8220
+ return exports.LogLevel.INFO;
8221
+ }
8177
8222
  const defaultConfig = {
8178
- level: isTest ? exports.LogLevel.OFF : exports.LogLevel.TRACE, // Silent during tests
8223
+ level: getInitialLogLevel(),
8179
8224
  processors: [
8180
8225
  addTimestamp,
8181
8226
  addEnvelopeFields,