@hamak/logging 0.5.1

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 (92) hide show
  1. package/README.md +252 -0
  2. package/dist/api/index.d.ts +12 -0
  3. package/dist/api/index.d.ts.map +1 -0
  4. package/dist/api/index.js +14 -0
  5. package/dist/api/interfaces/index.d.ts +4 -0
  6. package/dist/api/interfaces/index.d.ts.map +1 -0
  7. package/dist/api/interfaces/index.js +3 -0
  8. package/dist/api/interfaces/logger.d.ts +105 -0
  9. package/dist/api/interfaces/logger.d.ts.map +1 -0
  10. package/dist/api/interfaces/logger.js +1 -0
  11. package/dist/api/interfaces/manager.d.ts +120 -0
  12. package/dist/api/interfaces/manager.d.ts.map +1 -0
  13. package/dist/api/interfaces/manager.js +1 -0
  14. package/dist/api/interfaces/transport.d.ts +97 -0
  15. package/dist/api/interfaces/transport.d.ts.map +1 -0
  16. package/dist/api/interfaces/transport.js +1 -0
  17. package/dist/api/tokens/index.d.ts +2 -0
  18. package/dist/api/tokens/index.d.ts.map +1 -0
  19. package/dist/api/tokens/index.js +1 -0
  20. package/dist/api/tokens/service-tokens.d.ts +51 -0
  21. package/dist/api/tokens/service-tokens.d.ts.map +1 -0
  22. package/dist/api/tokens/service-tokens.js +42 -0
  23. package/dist/api/types/index.d.ts +3 -0
  24. package/dist/api/types/index.d.ts.map +1 -0
  25. package/dist/api/types/index.js +2 -0
  26. package/dist/api/types/log-config.d.ts +72 -0
  27. package/dist/api/types/log-config.d.ts.map +1 -0
  28. package/dist/api/types/log-config.js +1 -0
  29. package/dist/api/types/log-entry.d.ts +64 -0
  30. package/dist/api/types/log-entry.d.ts.map +1 -0
  31. package/dist/api/types/log-entry.js +12 -0
  32. package/dist/impl/core/context-logger.d.ts +26 -0
  33. package/dist/impl/core/context-logger.d.ts.map +1 -0
  34. package/dist/impl/core/context-logger.js +102 -0
  35. package/dist/impl/core/index.d.ts +3 -0
  36. package/dist/impl/core/index.d.ts.map +1 -0
  37. package/dist/impl/core/index.js +2 -0
  38. package/dist/impl/core/log-manager.d.ts +41 -0
  39. package/dist/impl/core/log-manager.d.ts.map +1 -0
  40. package/dist/impl/core/log-manager.js +278 -0
  41. package/dist/impl/formatters/dev-formatter.d.ts +20 -0
  42. package/dist/impl/formatters/dev-formatter.d.ts.map +1 -0
  43. package/dist/impl/formatters/dev-formatter.js +145 -0
  44. package/dist/impl/formatters/index.d.ts +3 -0
  45. package/dist/impl/formatters/index.d.ts.map +1 -0
  46. package/dist/impl/formatters/index.js +2 -0
  47. package/dist/impl/formatters/json-formatter.d.ts +24 -0
  48. package/dist/impl/formatters/json-formatter.d.ts.map +1 -0
  49. package/dist/impl/formatters/json-formatter.js +70 -0
  50. package/dist/impl/index.d.ts +16 -0
  51. package/dist/impl/index.d.ts.map +1 -0
  52. package/dist/impl/index.js +19 -0
  53. package/dist/impl/plugin/index.d.ts +2 -0
  54. package/dist/impl/plugin/index.d.ts.map +1 -0
  55. package/dist/impl/plugin/index.js +1 -0
  56. package/dist/impl/plugin/logging-plugin-factory.d.ts +37 -0
  57. package/dist/impl/plugin/logging-plugin-factory.d.ts.map +1 -0
  58. package/dist/impl/plugin/logging-plugin-factory.js +112 -0
  59. package/dist/impl/transports/console-transport.d.ts +16 -0
  60. package/dist/impl/transports/console-transport.d.ts.map +1 -0
  61. package/dist/impl/transports/console-transport.js +55 -0
  62. package/dist/impl/transports/index.d.ts +2 -0
  63. package/dist/impl/transports/index.d.ts.map +1 -0
  64. package/dist/impl/transports/index.js +1 -0
  65. package/dist/impl/utils/console-interceptor.d.ts +36 -0
  66. package/dist/impl/utils/console-interceptor.d.ts.map +1 -0
  67. package/dist/impl/utils/console-interceptor.js +121 -0
  68. package/dist/impl/utils/event-emitter.d.ts +11 -0
  69. package/dist/impl/utils/event-emitter.d.ts.map +1 -0
  70. package/dist/impl/utils/event-emitter.js +44 -0
  71. package/dist/impl/utils/index.d.ts +3 -0
  72. package/dist/impl/utils/index.d.ts.map +1 -0
  73. package/dist/impl/utils/index.js +2 -0
  74. package/dist/index.d.ts +15 -0
  75. package/dist/index.d.ts.map +1 -0
  76. package/dist/index.js +14 -0
  77. package/dist/spi/formatter/formatter-provider.d.ts +67 -0
  78. package/dist/spi/formatter/formatter-provider.d.ts.map +1 -0
  79. package/dist/spi/formatter/formatter-provider.js +1 -0
  80. package/dist/spi/formatter/index.d.ts +2 -0
  81. package/dist/spi/formatter/index.d.ts.map +1 -0
  82. package/dist/spi/formatter/index.js +1 -0
  83. package/dist/spi/index.d.ts +12 -0
  84. package/dist/spi/index.d.ts.map +1 -0
  85. package/dist/spi/index.js +12 -0
  86. package/dist/spi/transport/index.d.ts +2 -0
  87. package/dist/spi/transport/index.d.ts.map +1 -0
  88. package/dist/spi/transport/index.js +1 -0
  89. package/dist/spi/transport/transport-provider.d.ts +89 -0
  90. package/dist/spi/transport/transport-provider.d.ts.map +1 -0
  91. package/dist/spi/transport/transport-provider.js +1 -0
  92. package/package.json +65 -0
@@ -0,0 +1,89 @@
1
+ import type { ILogTransport, TransportConfig } from '../../api/index';
2
+ /**
3
+ * Transport Provider Interface
4
+ *
5
+ * Allows plugins to contribute custom log transports.
6
+ * Transport providers are factories that create and configure transports.
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * export class MyTransportProvider implements ITransportProvider {
11
+ * readonly id = 'my-transport';
12
+ * readonly name = 'My Custom Transport';
13
+ *
14
+ * create(config?: MyTransportConfig): ILogTransport {
15
+ * return new MyTransport(config);
16
+ * }
17
+ *
18
+ * getDefaultConfig(): TransportConfig {
19
+ * return {
20
+ * id: this.id,
21
+ * enabled: true,
22
+ * minLevel: LogLevel.INFO,
23
+ * };
24
+ * }
25
+ *
26
+ * validateConfig(config: any): boolean {
27
+ * return typeof config.endpoint === 'string';
28
+ * }
29
+ * }
30
+ * ```
31
+ */
32
+ export interface ITransportProvider {
33
+ /**
34
+ * Unique identifier for this transport provider
35
+ */
36
+ readonly id: string;
37
+ /**
38
+ * Human-readable name
39
+ */
40
+ readonly name: string;
41
+ /**
42
+ * Description of what this transport does
43
+ */
44
+ readonly description?: string;
45
+ /**
46
+ * Create a transport instance with the given configuration
47
+ *
48
+ * @param config Optional transport-specific configuration
49
+ * @returns A configured transport instance
50
+ */
51
+ create(config?: any): ILogTransport;
52
+ /**
53
+ * Get the default configuration for this transport
54
+ * Used when no configuration is provided
55
+ *
56
+ * @returns Default TransportConfig
57
+ */
58
+ getDefaultConfig?(): TransportConfig;
59
+ /**
60
+ * Validate transport-specific configuration
61
+ * Called before creating the transport
62
+ *
63
+ * @param config Configuration to validate
64
+ * @returns true if valid, false otherwise
65
+ */
66
+ validateConfig?(config: any): boolean;
67
+ /**
68
+ * Get configuration schema for documentation/UI
69
+ * Optional - useful for generating config forms
70
+ *
71
+ * @returns JSON Schema or similar
72
+ */
73
+ getConfigSchema?(): any;
74
+ }
75
+ /**
76
+ * Transport registration
77
+ * Used when plugins contribute transports
78
+ */
79
+ export interface TransportRegistration {
80
+ /** The transport provider */
81
+ provider: ITransportProvider;
82
+ /** Transport configuration */
83
+ config?: TransportConfig;
84
+ /** Plugin that registered this transport */
85
+ plugin?: string;
86
+ /** Priority (higher = registered earlier) */
87
+ priority?: number;
88
+ }
89
+ //# sourceMappingURL=transport-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport-provider.d.ts","sourceRoot":"","sources":["../../../src/spi/transport/transport-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEtE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAE9B;;;;;OAKG;IACH,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,aAAa,CAAC;IAEpC;;;;;OAKG;IACH,gBAAgB,CAAC,IAAI,eAAe,CAAC;IAErC;;;;;;OAMG;IACH,cAAc,CAAC,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC;IAEtC;;;;;OAKG;IACH,eAAe,CAAC,IAAI,GAAG,CAAC;CACzB;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,6BAA6B;IAC7B,QAAQ,EAAE,kBAAkB,CAAC;IAE7B,8BAA8B;IAC9B,MAAM,CAAC,EAAE,eAAe,CAAC;IAEzB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB"}
@@ -0,0 +1 @@
1
+ export {};
package/package.json ADDED
@@ -0,0 +1,65 @@
1
+ {
2
+ "name": "@hamak/logging",
3
+ "version": "0.5.1",
4
+ "description": "Pluggable logging system with API, SPI, and implementation",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js",
12
+ "default": "./dist/index.js"
13
+ },
14
+ "./api": {
15
+ "types": "./dist/api/index.d.ts",
16
+ "import": "./dist/api/index.js",
17
+ "default": "./dist/api/index.js"
18
+ },
19
+ "./spi": {
20
+ "types": "./dist/spi/index.d.ts",
21
+ "import": "./dist/spi/index.js",
22
+ "default": "./dist/spi/index.js"
23
+ }
24
+ },
25
+ "typesVersions": {
26
+ "*": {
27
+ "api": [
28
+ "./dist/api/index.d.ts"
29
+ ],
30
+ "spi": [
31
+ "./dist/spi/index.d.ts"
32
+ ]
33
+ }
34
+ },
35
+ "files": [
36
+ "dist"
37
+ ],
38
+ "repository": {
39
+ "type": "git",
40
+ "url": "https://github.com/amah/app-framework.git",
41
+ "directory": "packages/logging"
42
+ },
43
+ "publishConfig": {
44
+ "access": "public"
45
+ },
46
+ "scripts": {
47
+ "build": "tsc -p tsconfig.lib.json",
48
+ "clean": "rm -rf dist"
49
+ },
50
+ "keywords": [
51
+ "logging",
52
+ "microkernel",
53
+ "plugin"
54
+ ],
55
+ "author": "",
56
+ "license": "MIT",
57
+ "dependencies": {
58
+ "@hamak/microkernel-api": "*",
59
+ "@hamak/microkernel-spi": "*"
60
+ },
61
+ "devDependencies": {
62
+ "typescript": "^5.9.3",
63
+ "vitest": "^3.2.4"
64
+ }
65
+ }