promidas 2.0.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.
- package/LICENSE +21 -0
- package/README.md +179 -0
- package/dist/builder.d.ts +158 -0
- package/dist/builder.d.ts.map +1 -0
- package/dist/builder.js +255 -0
- package/dist/builder.js.map +1 -0
- package/dist/factory.d.ts +154 -0
- package/dist/factory.d.ts.map +1 -0
- package/dist/factory.js +243 -0
- package/dist/factory.js.map +1 -0
- package/dist/fetcher/client/config.d.ts +140 -0
- package/dist/fetcher/client/config.d.ts.map +1 -0
- package/dist/fetcher/client/config.js +2 -0
- package/dist/fetcher/client/config.js.map +1 -0
- package/dist/fetcher/client/fetch-with-progress.d.ts +156 -0
- package/dist/fetcher/client/fetch-with-progress.d.ts.map +1 -0
- package/dist/fetcher/client/fetch-with-progress.js +313 -0
- package/dist/fetcher/client/fetch-with-progress.js.map +1 -0
- package/dist/fetcher/client/fetch-with-timeout.d.ts +6 -0
- package/dist/fetcher/client/fetch-with-timeout.d.ts.map +1 -0
- package/dist/fetcher/client/fetch-with-timeout.js +48 -0
- package/dist/fetcher/client/fetch-with-timeout.js.map +1 -0
- package/dist/fetcher/client/protopedia-api-custom-client.d.ts +141 -0
- package/dist/fetcher/client/protopedia-api-custom-client.d.ts.map +1 -0
- package/dist/fetcher/client/protopedia-api-custom-client.js +268 -0
- package/dist/fetcher/client/protopedia-api-custom-client.js.map +1 -0
- package/dist/fetcher/client/select-custom-fetch.d.ts +58 -0
- package/dist/fetcher/client/select-custom-fetch.d.ts.map +1 -0
- package/dist/fetcher/client/select-custom-fetch.js +58 -0
- package/dist/fetcher/client/select-custom-fetch.js.map +1 -0
- package/dist/fetcher/errors/fetcher-error.d.ts +10 -0
- package/dist/fetcher/errors/fetcher-error.d.ts.map +1 -0
- package/dist/fetcher/errors/fetcher-error.js +15 -0
- package/dist/fetcher/errors/fetcher-error.js.map +1 -0
- package/dist/fetcher/index.d.ts +73 -0
- package/dist/fetcher/index.d.ts.map +1 -0
- package/dist/fetcher/index.js +70 -0
- package/dist/fetcher/index.js.map +1 -0
- package/dist/fetcher/types/index.d.ts +9 -0
- package/dist/fetcher/types/index.d.ts.map +1 -0
- package/dist/fetcher/types/index.js +7 -0
- package/dist/fetcher/types/index.js.map +1 -0
- package/dist/fetcher/types/progress-event.types.d.ts +221 -0
- package/dist/fetcher/types/progress-event.types.d.ts.map +1 -0
- package/dist/fetcher/types/progress-event.types.js +10 -0
- package/dist/fetcher/types/progress-event.types.js.map +1 -0
- package/dist/fetcher/types/prototype-api.types.d.ts +106 -0
- package/dist/fetcher/types/prototype-api.types.d.ts.map +1 -0
- package/dist/fetcher/types/prototype-api.types.js +2 -0
- package/dist/fetcher/types/prototype-api.types.js.map +1 -0
- package/dist/fetcher/types/result.types.d.ts +75 -0
- package/dist/fetcher/types/result.types.d.ts.map +1 -0
- package/dist/fetcher/types/result.types.js +2 -0
- package/dist/fetcher/types/result.types.js.map +1 -0
- package/dist/fetcher/utils/create-client-fetch.d.ts +63 -0
- package/dist/fetcher/utils/create-client-fetch.d.ts.map +1 -0
- package/dist/fetcher/utils/create-client-fetch.js +89 -0
- package/dist/fetcher/utils/create-client-fetch.js.map +1 -0
- package/dist/fetcher/utils/create-fetch-with-stripped-headers.d.ts +6 -0
- package/dist/fetcher/utils/create-fetch-with-stripped-headers.d.ts.map +1 -0
- package/dist/fetcher/utils/create-fetch-with-stripped-headers.js +40 -0
- package/dist/fetcher/utils/create-fetch-with-stripped-headers.js.map +1 -0
- package/dist/fetcher/utils/errors/handler.d.ts +58 -0
- package/dist/fetcher/utils/errors/handler.d.ts.map +1 -0
- package/dist/fetcher/utils/errors/handler.js +243 -0
- package/dist/fetcher/utils/errors/handler.js.map +1 -0
- package/dist/fetcher/utils/errors/messages.d.ts +75 -0
- package/dist/fetcher/utils/errors/messages.d.ts.map +1 -0
- package/dist/fetcher/utils/errors/messages.js +88 -0
- package/dist/fetcher/utils/errors/messages.js.map +1 -0
- package/dist/fetcher/utils/index.d.ts +13 -0
- package/dist/fetcher/utils/index.d.ts.map +1 -0
- package/dist/fetcher/utils/index.js +12 -0
- package/dist/fetcher/utils/index.js.map +1 -0
- package/dist/fetcher/utils/log-timestamp-normalization-warnings.d.ts +10 -0
- package/dist/fetcher/utils/log-timestamp-normalization-warnings.d.ts.map +1 -0
- package/dist/fetcher/utils/log-timestamp-normalization-warnings.js +32 -0
- package/dist/fetcher/utils/log-timestamp-normalization-warnings.js.map +1 -0
- package/dist/fetcher/utils/normalize-protopedia-timestamp.d.ts +59 -0
- package/dist/fetcher/utils/normalize-protopedia-timestamp.d.ts.map +1 -0
- package/dist/fetcher/utils/normalize-protopedia-timestamp.js +81 -0
- package/dist/fetcher/utils/normalize-protopedia-timestamp.js.map +1 -0
- package/dist/fetcher/utils/normalize-prototype.d.ts +56 -0
- package/dist/fetcher/utils/normalize-prototype.d.ts.map +1 -0
- package/dist/fetcher/utils/normalize-prototype.js +113 -0
- package/dist/fetcher/utils/normalize-prototype.js.map +1 -0
- package/dist/fetcher/utils/sanitize-options.d.ts +14 -0
- package/dist/fetcher/utils/sanitize-options.d.ts.map +1 -0
- package/dist/fetcher/utils/sanitize-options.js +16 -0
- package/dist/fetcher/utils/sanitize-options.js.map +1 -0
- package/dist/fetcher/utils/string-parsers.d.ts +45 -0
- package/dist/fetcher/utils/string-parsers.d.ts.map +1 -0
- package/dist/fetcher/utils/string-parsers.js +53 -0
- package/dist/fetcher/utils/string-parsers.js.map +1 -0
- package/dist/index.d.ts +66 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +70 -0
- package/dist/index.js.map +1 -0
- package/dist/logger/console-logger.d.ts +74 -0
- package/dist/logger/console-logger.d.ts.map +1 -0
- package/dist/logger/console-logger.js +113 -0
- package/dist/logger/console-logger.js.map +1 -0
- package/dist/logger/factory.d.ts +88 -0
- package/dist/logger/factory.d.ts.map +1 -0
- package/dist/logger/factory.js +94 -0
- package/dist/logger/factory.js.map +1 -0
- package/dist/logger/index.d.ts +42 -0
- package/dist/logger/index.d.ts.map +1 -0
- package/dist/logger/index.js +41 -0
- package/dist/logger/index.js.map +1 -0
- package/dist/logger/logger.types.d.ts +49 -0
- package/dist/logger/logger.types.d.ts.map +1 -0
- package/dist/logger/logger.types.js +2 -0
- package/dist/logger/logger.types.js.map +1 -0
- package/dist/repository/errors/validation-error.d.ts +24 -0
- package/dist/repository/errors/validation-error.d.ts.map +1 -0
- package/dist/repository/errors/validation-error.js +26 -0
- package/dist/repository/errors/validation-error.js.map +1 -0
- package/dist/repository/index.d.ts +122 -0
- package/dist/repository/index.d.ts.map +1 -0
- package/dist/repository/index.js +44 -0
- package/dist/repository/index.js.map +1 -0
- package/dist/repository/protopedia-in-memory-repository.d.ts +560 -0
- package/dist/repository/protopedia-in-memory-repository.d.ts.map +1 -0
- package/dist/repository/protopedia-in-memory-repository.js +929 -0
- package/dist/repository/protopedia-in-memory-repository.js.map +1 -0
- package/dist/repository/schemas/index.d.ts +9 -0
- package/dist/repository/schemas/index.d.ts.map +1 -0
- package/dist/repository/schemas/index.js +11 -0
- package/dist/repository/schemas/index.js.map +1 -0
- package/dist/repository/schemas/params.d.ts +44 -0
- package/dist/repository/schemas/params.d.ts.map +1 -0
- package/dist/repository/schemas/params.js +44 -0
- package/dist/repository/schemas/params.js.map +1 -0
- package/dist/repository/schemas/serializable-snapshot.d.ts +33 -0
- package/dist/repository/schemas/serializable-snapshot.d.ts.map +1 -0
- package/dist/repository/schemas/serializable-snapshot.js +45 -0
- package/dist/repository/schemas/serializable-snapshot.js.map +1 -0
- package/dist/repository/types/analysis.types.d.ts +89 -0
- package/dist/repository/types/analysis.types.d.ts.map +1 -0
- package/dist/repository/types/analysis.types.js +2 -0
- package/dist/repository/types/analysis.types.js.map +1 -0
- package/dist/repository/types/index.d.ts +12 -0
- package/dist/repository/types/index.d.ts.map +1 -0
- package/dist/repository/types/index.js +7 -0
- package/dist/repository/types/index.js.map +1 -0
- package/dist/repository/types/repository-events.types.d.ts +110 -0
- package/dist/repository/types/repository-events.types.d.ts.map +1 -0
- package/dist/repository/types/repository-events.types.js +2 -0
- package/dist/repository/types/repository-events.types.js.map +1 -0
- package/dist/repository/types/repository.types.d.ts +330 -0
- package/dist/repository/types/repository.types.d.ts.map +1 -0
- package/dist/repository/types/repository.types.js +2 -0
- package/dist/repository/types/repository.types.js.map +1 -0
- package/dist/repository/types/result.types.d.ts +55 -0
- package/dist/repository/types/result.types.d.ts.map +1 -0
- package/dist/repository/types/result.types.js +2 -0
- package/dist/repository/types/result.types.js.map +1 -0
- package/dist/repository/types/serialization.types.d.ts +61 -0
- package/dist/repository/types/serialization.types.d.ts.map +1 -0
- package/dist/repository/types/serialization.types.js +2 -0
- package/dist/repository/types/serialization.types.js.map +1 -0
- package/dist/repository/types/snapshot-operation.types.d.ts +140 -0
- package/dist/repository/types/snapshot-operation.types.d.ts.map +1 -0
- package/dist/repository/types/snapshot-operation.types.js +2 -0
- package/dist/repository/types/snapshot-operation.types.js.map +1 -0
- package/dist/repository/utils/convert-fetch-result.d.ts +46 -0
- package/dist/repository/utils/convert-fetch-result.d.ts.map +1 -0
- package/dist/repository/utils/convert-fetch-result.js +59 -0
- package/dist/repository/utils/convert-fetch-result.js.map +1 -0
- package/dist/repository/utils/convert-store-result.d.ts +36 -0
- package/dist/repository/utils/convert-store-result.d.ts.map +1 -0
- package/dist/repository/utils/convert-store-result.js +36 -0
- package/dist/repository/utils/convert-store-result.js.map +1 -0
- package/dist/repository/utils/emit-repository-event-safely.d.ts +5 -0
- package/dist/repository/utils/emit-repository-event-safely.d.ts.map +1 -0
- package/dist/repository/utils/emit-repository-event-safely.js +17 -0
- package/dist/repository/utils/emit-repository-event-safely.js.map +1 -0
- package/dist/repository/utils/index.d.ts +3 -0
- package/dist/repository/utils/index.d.ts.map +1 -0
- package/dist/repository/utils/index.js +3 -0
- package/dist/repository/utils/index.js.map +1 -0
- package/dist/repository/validation/index.d.ts +9 -0
- package/dist/repository/validation/index.d.ts.map +1 -0
- package/dist/repository/validation/index.js +10 -0
- package/dist/repository/validation/index.js.map +1 -0
- package/dist/repository/validation/params-validators.d.ts +46 -0
- package/dist/repository/validation/params-validators.d.ts.map +1 -0
- package/dist/repository/validation/params-validators.js +68 -0
- package/dist/repository/validation/params-validators.js.map +1 -0
- package/dist/repository/validation/serializable-snapshot.d.ts +47 -0
- package/dist/repository/validation/serializable-snapshot.d.ts.map +1 -0
- package/dist/repository/validation/serializable-snapshot.js +104 -0
- package/dist/repository/validation/serializable-snapshot.js.map +1 -0
- package/dist/schemas/index.d.ts +8 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +8 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/normalized-prototype.d.ts +56 -0
- package/dist/schemas/normalized-prototype.d.ts.map +1 -0
- package/dist/schemas/normalized-prototype.js +123 -0
- package/dist/schemas/normalized-prototype.js.map +1 -0
- package/dist/store/errors/store-error.d.ts +148 -0
- package/dist/store/errors/store-error.d.ts.map +1 -0
- package/dist/store/errors/store-error.js +156 -0
- package/dist/store/errors/store-error.js.map +1 -0
- package/dist/store/index.d.ts +84 -0
- package/dist/store/index.d.ts.map +1 -0
- package/dist/store/index.js +83 -0
- package/dist/store/index.js.map +1 -0
- package/dist/store/store.d.ts +295 -0
- package/dist/store/store.d.ts.map +1 -0
- package/dist/store/store.js +411 -0
- package/dist/store/store.js.map +1 -0
- package/dist/store/types/index.d.ts +2 -0
- package/dist/store/types/index.d.ts.map +1 -0
- package/dist/store/types/index.js +2 -0
- package/dist/store/types/index.js.map +1 -0
- package/dist/store/types/result.types.d.ts +67 -0
- package/dist/store/types/result.types.d.ts.map +1 -0
- package/dist/store/types/result.types.js +2 -0
- package/dist/store/types/result.types.js.map +1 -0
- package/dist/types/codes.d.ts +44 -0
- package/dist/types/codes.d.ts.map +1 -0
- package/dist/types/codes.js +9 -0
- package/dist/types/codes.js.map +1 -0
- package/dist/types/index.d.ts +61 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +60 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/normalized-prototype.d.ts +95 -0
- package/dist/types/normalized-prototype.d.ts.map +1 -0
- package/dist/types/normalized-prototype.js +2 -0
- package/dist/types/normalized-prototype.js.map +1 -0
- package/dist/utils/converters/index.d.ts +15 -0
- package/dist/utils/converters/index.d.ts.map +1 -0
- package/dist/utils/converters/index.js +15 -0
- package/dist/utils/converters/index.js.map +1 -0
- package/dist/utils/converters/license-type.d.ts +23 -0
- package/dist/utils/converters/license-type.d.ts.map +1 -0
- package/dist/utils/converters/license-type.js +38 -0
- package/dist/utils/converters/license-type.js.map +1 -0
- package/dist/utils/converters/release-flag.d.ts +24 -0
- package/dist/utils/converters/release-flag.d.ts.map +1 -0
- package/dist/utils/converters/release-flag.js +40 -0
- package/dist/utils/converters/release-flag.js.map +1 -0
- package/dist/utils/converters/status.d.ts +23 -0
- package/dist/utils/converters/status.d.ts.map +1 -0
- package/dist/utils/converters/status.js +40 -0
- package/dist/utils/converters/status.js.map +1 -0
- package/dist/utils/converters/thanks-flag.d.ts +25 -0
- package/dist/utils/converters/thanks-flag.d.ts.map +1 -0
- package/dist/utils/converters/thanks-flag.js +41 -0
- package/dist/utils/converters/thanks-flag.js.map +1 -0
- package/dist/utils/deep-merge.d.ts +38 -0
- package/dist/utils/deep-merge.d.ts.map +1 -0
- package/dist/utils/deep-merge.js +85 -0
- package/dist/utils/deep-merge.js.map +1 -0
- package/dist/utils/index.d.ts +80 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +85 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/logger-utils.d.ts +100 -0
- package/dist/utils/logger-utils.d.ts.map +1 -0
- package/dist/utils/logger-utils.js +265 -0
- package/dist/utils/logger-utils.js.map +1 -0
- package/dist/utils/time/constants.d.ts +14 -0
- package/dist/utils/time/constants.d.ts.map +1 -0
- package/dist/utils/time/constants.js +14 -0
- package/dist/utils/time/constants.js.map +1 -0
- package/dist/utils/time/index.d.ts +28 -0
- package/dist/utils/time/index.d.ts.map +1 -0
- package/dist/utils/time/index.js +28 -0
- package/dist/utils/time/index.js.map +1 -0
- package/dist/utils/time/parser.d.ts +91 -0
- package/dist/utils/time/parser.d.ts.map +1 -0
- package/dist/utils/time/parser.js +143 -0
- package/dist/utils/time/parser.js.map +1 -0
- package/dist/utils/validation/index.d.ts +8 -0
- package/dist/utils/validation/index.d.ts.map +1 -0
- package/dist/utils/validation/index.js +7 -0
- package/dist/utils/validation/index.js.map +1 -0
- package/dist/utils/validation/normalized-prototype.d.ts +64 -0
- package/dist/utils/validation/normalized-prototype.d.ts.map +1 -0
- package/dist/utils/validation/normalized-prototype.js +97 -0
- package/dist/utils/validation/normalized-prototype.js.map +1 -0
- package/dist/utils/validation/types.d.ts +62 -0
- package/dist/utils/validation/types.d.ts.map +1 -0
- package/dist/utils/validation/types.js +8 -0
- package/dist/utils/validation/types.js.map +1 -0
- package/dist/version.d.ts +6 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +6 -0
- package/dist/version.js.map +1 -0
- package/package.json +138 -0
package/dist/index.js
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public entrypoint for the promidas library.
|
|
3
|
+
*
|
|
4
|
+
* ## Quick Start
|
|
5
|
+
*
|
|
6
|
+
* For most use cases, use the Builder to create a Repository:
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* import { PromidasRepositoryBuilder } from 'promidas';
|
|
11
|
+
*
|
|
12
|
+
* const repo = new PromidasRepositoryBuilder()
|
|
13
|
+
* .setStoreConfig({ ttlMs: 30 * 60 * 1000 })
|
|
14
|
+
* .setApiClientConfig({
|
|
15
|
+
* protoPediaApiClientOptions: { token: process.env.PROTOPEDIA_API_V2_TOKEN }
|
|
16
|
+
* })
|
|
17
|
+
* .build();
|
|
18
|
+
*
|
|
19
|
+
* await repo.setupSnapshot({ limit: 100 });
|
|
20
|
+
* const prototype = await repo.getRandomPrototypeFromSnapshot();
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* ## Standalone Module Usage
|
|
24
|
+
*
|
|
25
|
+
* For advanced use cases or when you need specific modules independently,
|
|
26
|
+
* use subpath imports:
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```typescript
|
|
30
|
+
* // Type definitions
|
|
31
|
+
* import type { NormalizedPrototype } from 'promidas/types';
|
|
32
|
+
*
|
|
33
|
+
* // Utility functions and converters
|
|
34
|
+
* import {
|
|
35
|
+
* parseProtoPediaTimestamp,
|
|
36
|
+
* getPrototypeStatusLabel
|
|
37
|
+
* } from 'promidas/utils';
|
|
38
|
+
*
|
|
39
|
+
* // Logger interface and implementations
|
|
40
|
+
* import { createConsoleLogger } from 'promidas/logger';
|
|
41
|
+
*
|
|
42
|
+
* // API client and data fetching
|
|
43
|
+
* import {
|
|
44
|
+
* ProtopediaApiCustomClient
|
|
45
|
+
* } from 'promidas/fetcher';
|
|
46
|
+
*
|
|
47
|
+
* // In-memory store
|
|
48
|
+
* import { PrototypeInMemoryStore } from 'promidas/store';
|
|
49
|
+
*
|
|
50
|
+
* // Repository builder
|
|
51
|
+
* import { PromidasRepositoryBuilder } from 'promidas';
|
|
52
|
+
* ```
|
|
53
|
+
*
|
|
54
|
+
* ## Available Subpath Exports
|
|
55
|
+
*
|
|
56
|
+
* - `promidas/types` — Type definitions (NormalizedPrototype)
|
|
57
|
+
* - `promidas/utils` — Utility functions and converters
|
|
58
|
+
* - `promidas/logger` — Logger interface and implementations
|
|
59
|
+
* - `promidas/fetcher` — API client and data fetching utilities
|
|
60
|
+
* - `promidas/store` — In-memory store implementation
|
|
61
|
+
*
|
|
62
|
+
* @packageDocumentation
|
|
63
|
+
*/
|
|
64
|
+
// Builder for creating repository instances
|
|
65
|
+
export {
|
|
66
|
+
// Builder for advanced use cases
|
|
67
|
+
PromidasRepositoryBuilder, } from './builder.js';
|
|
68
|
+
// Factory functions for common use cases
|
|
69
|
+
export { createPromidasForLocal, createPromidasForServer } from './factory.js';
|
|
70
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8DG;AAEH,4CAA4C;AAC5C,OAAO;AACL,iCAAiC;AACjC,yBAAyB,GAgB1B,MAAM,cAAc,CAAC;AAEtB,yCAAyC;AACzC,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import type { Logger, LogLevel } from './logger.types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Universal console-based logger.
|
|
4
|
+
*
|
|
5
|
+
* Works in Browser, Node.js, and Edge environments.
|
|
6
|
+
* Safe for environments without `console` (silently skips logging).
|
|
7
|
+
*
|
|
8
|
+
* @remarks
|
|
9
|
+
* - Implements the Logger interface with mutable `level` property
|
|
10
|
+
* - Uses native console methods (console.error, console.warn, etc.)
|
|
11
|
+
* - Respects the current log level for filtering output
|
|
12
|
+
* - Level can be changed at runtime via the `level` property
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```typescript
|
|
16
|
+
* // Create with specific level
|
|
17
|
+
* const debugLogger = new ConsoleLogger('debug');
|
|
18
|
+
* debugLogger.debug('Detailed info'); // Will be logged
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```typescript
|
|
23
|
+
* // Default level ('info')
|
|
24
|
+
* const logger = new ConsoleLogger();
|
|
25
|
+
* logger.debug('Not logged'); // debug < info
|
|
26
|
+
* logger.info('Logged'); // info = info
|
|
27
|
+
* ```
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```typescript
|
|
31
|
+
* // Change level dynamically
|
|
32
|
+
* const logger = new ConsoleLogger('error');
|
|
33
|
+
* logger.info('Not logged'); // info < error
|
|
34
|
+
* logger.level = 'info';
|
|
35
|
+
* logger.info('Now logged'); // info = info
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
export declare class ConsoleLogger implements Logger {
|
|
39
|
+
level: LogLevel;
|
|
40
|
+
private readonly hasConsole;
|
|
41
|
+
/**
|
|
42
|
+
* Creates a new ConsoleLogger instance.
|
|
43
|
+
*
|
|
44
|
+
* @param level - Initial log level (default: 'info')
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* ```typescript
|
|
48
|
+
* // Default level
|
|
49
|
+
* const logger = new ConsoleLogger(); // 'info'
|
|
50
|
+
* ```
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* ```typescript
|
|
54
|
+
* // Specific level
|
|
55
|
+
* const debugLogger = new ConsoleLogger('debug');
|
|
56
|
+
* const errorLogger = new ConsoleLogger('error');
|
|
57
|
+
* ```
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* ```typescript
|
|
61
|
+
* // Level can be changed after creation
|
|
62
|
+
* const logger = new ConsoleLogger('info');
|
|
63
|
+
* logger.level = 'debug'; // Now shows debug logs
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
66
|
+
constructor(level?: LogLevel);
|
|
67
|
+
error(message: string, meta?: unknown): void;
|
|
68
|
+
warn(message: string, meta?: unknown): void;
|
|
69
|
+
info(message: string, meta?: unknown): void;
|
|
70
|
+
debug(message: string, meta?: unknown): void;
|
|
71
|
+
private log;
|
|
72
|
+
private shouldLog;
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=console-logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"console-logger.d.ts","sourceRoot":"","sources":["../../lib/logger/console-logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAa1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,qBAAa,aAAc,YAAW,MAAM;IAC1C,KAAK,EAAE,QAAQ,CAAC;IAEhB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAU;IAErC;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;gBACS,KAAK,GAAE,QAAiB;IAYpC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI;IAI5C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI;IAI3C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI;IAI3C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI;IAI5C,OAAO,CAAC,GAAG;IAoBX,OAAO,CAAC,SAAS;CAIlB"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
const LEVEL_ORDER = ['debug', 'info', 'warn', 'error', 'silent'];
|
|
2
|
+
const getConsoleFn = (method) => {
|
|
3
|
+
const hasConsole = typeof console !== 'undefined';
|
|
4
|
+
return hasConsole && typeof console[method] === 'function'
|
|
5
|
+
? console[method].bind(console)
|
|
6
|
+
: undefined;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Universal console-based logger.
|
|
10
|
+
*
|
|
11
|
+
* Works in Browser, Node.js, and Edge environments.
|
|
12
|
+
* Safe for environments without `console` (silently skips logging).
|
|
13
|
+
*
|
|
14
|
+
* @remarks
|
|
15
|
+
* - Implements the Logger interface with mutable `level` property
|
|
16
|
+
* - Uses native console methods (console.error, console.warn, etc.)
|
|
17
|
+
* - Respects the current log level for filtering output
|
|
18
|
+
* - Level can be changed at runtime via the `level` property
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```typescript
|
|
22
|
+
* // Create with specific level
|
|
23
|
+
* const debugLogger = new ConsoleLogger('debug');
|
|
24
|
+
* debugLogger.debug('Detailed info'); // Will be logged
|
|
25
|
+
* ```
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```typescript
|
|
29
|
+
* // Default level ('info')
|
|
30
|
+
* const logger = new ConsoleLogger();
|
|
31
|
+
* logger.debug('Not logged'); // debug < info
|
|
32
|
+
* logger.info('Logged'); // info = info
|
|
33
|
+
* ```
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```typescript
|
|
37
|
+
* // Change level dynamically
|
|
38
|
+
* const logger = new ConsoleLogger('error');
|
|
39
|
+
* logger.info('Not logged'); // info < error
|
|
40
|
+
* logger.level = 'info';
|
|
41
|
+
* logger.info('Now logged'); // info = info
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
export class ConsoleLogger {
|
|
45
|
+
level;
|
|
46
|
+
hasConsole;
|
|
47
|
+
/**
|
|
48
|
+
* Creates a new ConsoleLogger instance.
|
|
49
|
+
*
|
|
50
|
+
* @param level - Initial log level (default: 'info')
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* ```typescript
|
|
54
|
+
* // Default level
|
|
55
|
+
* const logger = new ConsoleLogger(); // 'info'
|
|
56
|
+
* ```
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* ```typescript
|
|
60
|
+
* // Specific level
|
|
61
|
+
* const debugLogger = new ConsoleLogger('debug');
|
|
62
|
+
* const errorLogger = new ConsoleLogger('error');
|
|
63
|
+
* ```
|
|
64
|
+
*
|
|
65
|
+
* @example
|
|
66
|
+
* ```typescript
|
|
67
|
+
* // Level can be changed after creation
|
|
68
|
+
* const logger = new ConsoleLogger('info');
|
|
69
|
+
* logger.level = 'debug'; // Now shows debug logs
|
|
70
|
+
* ```
|
|
71
|
+
*/
|
|
72
|
+
constructor(level = 'info') {
|
|
73
|
+
this.level = level;
|
|
74
|
+
this.hasConsole = typeof console !== 'undefined';
|
|
75
|
+
// Bind methods to preserve `this` when methods are passed around as callbacks.
|
|
76
|
+
// Some upstream libraries call logger methods without a receiver.
|
|
77
|
+
this.error = this.error.bind(this);
|
|
78
|
+
this.warn = this.warn.bind(this);
|
|
79
|
+
this.info = this.info.bind(this);
|
|
80
|
+
this.debug = this.debug.bind(this);
|
|
81
|
+
}
|
|
82
|
+
error(message, meta) {
|
|
83
|
+
this.log('error', message, meta, getConsoleFn('error'));
|
|
84
|
+
}
|
|
85
|
+
warn(message, meta) {
|
|
86
|
+
this.log('warn', message, meta, getConsoleFn('warn'));
|
|
87
|
+
}
|
|
88
|
+
info(message, meta) {
|
|
89
|
+
this.log('info', message, meta, getConsoleFn('info'));
|
|
90
|
+
}
|
|
91
|
+
debug(message, meta) {
|
|
92
|
+
this.log('debug', message, meta, getConsoleFn('debug'));
|
|
93
|
+
}
|
|
94
|
+
log(targetLevel, message, meta, consoleFn) {
|
|
95
|
+
if (!this.shouldLog(targetLevel) || !this.hasConsole || !consoleFn) {
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
const prefix = `[${targetLevel.toUpperCase()}]`;
|
|
99
|
+
const formattedMessage = `${prefix} ${message}`;
|
|
100
|
+
if (meta === undefined) {
|
|
101
|
+
consoleFn(formattedMessage);
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
consoleFn(formattedMessage, meta);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
shouldLog(target) {
|
|
108
|
+
if (this.level === 'silent')
|
|
109
|
+
return false;
|
|
110
|
+
return LEVEL_ORDER.indexOf(target) >= LEVEL_ORDER.indexOf(this.level);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=console-logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"console-logger.js","sourceRoot":"","sources":["../../lib/logger/console-logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Logger factory functions.
|
|
3
|
+
*
|
|
4
|
+
* This module provides factory functions for creating logger instances:
|
|
5
|
+
* - {@link createConsoleLogger} — Creates a console-based logger with default 'info' level
|
|
6
|
+
* - {@link createNoopLogger} — Creates a no-op logger for testing/production
|
|
7
|
+
*
|
|
8
|
+
* @module
|
|
9
|
+
*/
|
|
10
|
+
import { ConsoleLogger } from './console-logger.js';
|
|
11
|
+
import type { Logger } from './logger.types.js';
|
|
12
|
+
/**
|
|
13
|
+
* Create a console-based logger with default 'info' level.
|
|
14
|
+
*
|
|
15
|
+
* @returns ConsoleLogger instance with 'info' level
|
|
16
|
+
*
|
|
17
|
+
* @remarks
|
|
18
|
+
* **When to use each approach:**
|
|
19
|
+
* 1. `createConsoleLogger()` - Best for most cases, especially with Repository/Store
|
|
20
|
+
* 2. `new ConsoleLogger(level)` - When you need a specific level at creation
|
|
21
|
+
* 3. `logger.level = level` - When you need to change level dynamically
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```typescript
|
|
25
|
+
* // Recommended: Use with Repository/Store
|
|
26
|
+
* const logger = createConsoleLogger();
|
|
27
|
+
* const repo = new PromidasRepositoryBuilder()
|
|
28
|
+
* .setStoreConfig({ logger, logLevel: 'debug' })
|
|
29
|
+
* .setApiClientConfig({
|
|
30
|
+
* logger,
|
|
31
|
+
* logLevel: 'debug',
|
|
32
|
+
* protoPediaApiClientOptions: { token: process.env.PROTOPEDIA_API_V2_TOKEN }
|
|
33
|
+
* })
|
|
34
|
+
* .build();
|
|
35
|
+
* ```
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```typescript
|
|
39
|
+
* // Default level ('info')
|
|
40
|
+
* const logger = createConsoleLogger();
|
|
41
|
+
* logger.info('Application started'); // Logged
|
|
42
|
+
* logger.debug('Debug info'); // Not logged (debug < info)
|
|
43
|
+
* ```
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* ```typescript
|
|
47
|
+
* // Change level dynamically
|
|
48
|
+
* const logger = createConsoleLogger();
|
|
49
|
+
* logger.level = 'debug';
|
|
50
|
+
* logger.debug('Now this is logged');
|
|
51
|
+
* ```
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* ```typescript
|
|
55
|
+
* // If you need a specific level at creation time:
|
|
56
|
+
* const logger = new ConsoleLogger('debug');
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
59
|
+
export declare const createConsoleLogger: () => ConsoleLogger;
|
|
60
|
+
/**
|
|
61
|
+
* Create a no-op logger (for testing or silent mode).
|
|
62
|
+
*
|
|
63
|
+
* All logging methods do nothing and return immediately.
|
|
64
|
+
* This is useful for:
|
|
65
|
+
* - Unit tests (suppress log output)
|
|
66
|
+
* - Production environments (completely disable logging)
|
|
67
|
+
* - Performance-critical code (zero logging overhead)
|
|
68
|
+
*
|
|
69
|
+
* @returns Logger that does nothing
|
|
70
|
+
*
|
|
71
|
+
* @example
|
|
72
|
+
* ```typescript
|
|
73
|
+
* // Use in tests
|
|
74
|
+
* const logger = createNoopLogger();
|
|
75
|
+
* logger.error('This will not be logged');
|
|
76
|
+
* logger.info('Neither will this');
|
|
77
|
+
* ```
|
|
78
|
+
*
|
|
79
|
+
* @example
|
|
80
|
+
* ```typescript
|
|
81
|
+
* // Conditional logger selection
|
|
82
|
+
* const logger = process.env.ENABLE_LOGGING === 'true'
|
|
83
|
+
* ? createConsoleLogger()
|
|
84
|
+
* : createNoopLogger();
|
|
85
|
+
* ```
|
|
86
|
+
*/
|
|
87
|
+
export declare const createNoopLogger: () => Logger;
|
|
88
|
+
//# sourceMappingURL=factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../lib/logger/factory.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,eAAO,MAAM,mBAAmB,QAAO,aAEtC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,eAAO,MAAM,gBAAgB,QAAO,MAKlC,CAAC"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Logger factory functions.
|
|
3
|
+
*
|
|
4
|
+
* This module provides factory functions for creating logger instances:
|
|
5
|
+
* - {@link createConsoleLogger} — Creates a console-based logger with default 'info' level
|
|
6
|
+
* - {@link createNoopLogger} — Creates a no-op logger for testing/production
|
|
7
|
+
*
|
|
8
|
+
* @module
|
|
9
|
+
*/
|
|
10
|
+
import { ConsoleLogger } from './console-logger.js';
|
|
11
|
+
/**
|
|
12
|
+
* Create a console-based logger with default 'info' level.
|
|
13
|
+
*
|
|
14
|
+
* @returns ConsoleLogger instance with 'info' level
|
|
15
|
+
*
|
|
16
|
+
* @remarks
|
|
17
|
+
* **When to use each approach:**
|
|
18
|
+
* 1. `createConsoleLogger()` - Best for most cases, especially with Repository/Store
|
|
19
|
+
* 2. `new ConsoleLogger(level)` - When you need a specific level at creation
|
|
20
|
+
* 3. `logger.level = level` - When you need to change level dynamically
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```typescript
|
|
24
|
+
* // Recommended: Use with Repository/Store
|
|
25
|
+
* const logger = createConsoleLogger();
|
|
26
|
+
* const repo = new PromidasRepositoryBuilder()
|
|
27
|
+
* .setStoreConfig({ logger, logLevel: 'debug' })
|
|
28
|
+
* .setApiClientConfig({
|
|
29
|
+
* logger,
|
|
30
|
+
* logLevel: 'debug',
|
|
31
|
+
* protoPediaApiClientOptions: { token: process.env.PROTOPEDIA_API_V2_TOKEN }
|
|
32
|
+
* })
|
|
33
|
+
* .build();
|
|
34
|
+
* ```
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* ```typescript
|
|
38
|
+
* // Default level ('info')
|
|
39
|
+
* const logger = createConsoleLogger();
|
|
40
|
+
* logger.info('Application started'); // Logged
|
|
41
|
+
* logger.debug('Debug info'); // Not logged (debug < info)
|
|
42
|
+
* ```
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```typescript
|
|
46
|
+
* // Change level dynamically
|
|
47
|
+
* const logger = createConsoleLogger();
|
|
48
|
+
* logger.level = 'debug';
|
|
49
|
+
* logger.debug('Now this is logged');
|
|
50
|
+
* ```
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* ```typescript
|
|
54
|
+
* // If you need a specific level at creation time:
|
|
55
|
+
* const logger = new ConsoleLogger('debug');
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
58
|
+
export const createConsoleLogger = () => {
|
|
59
|
+
return new ConsoleLogger('info');
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* Create a no-op logger (for testing or silent mode).
|
|
63
|
+
*
|
|
64
|
+
* All logging methods do nothing and return immediately.
|
|
65
|
+
* This is useful for:
|
|
66
|
+
* - Unit tests (suppress log output)
|
|
67
|
+
* - Production environments (completely disable logging)
|
|
68
|
+
* - Performance-critical code (zero logging overhead)
|
|
69
|
+
*
|
|
70
|
+
* @returns Logger that does nothing
|
|
71
|
+
*
|
|
72
|
+
* @example
|
|
73
|
+
* ```typescript
|
|
74
|
+
* // Use in tests
|
|
75
|
+
* const logger = createNoopLogger();
|
|
76
|
+
* logger.error('This will not be logged');
|
|
77
|
+
* logger.info('Neither will this');
|
|
78
|
+
* ```
|
|
79
|
+
*
|
|
80
|
+
* @example
|
|
81
|
+
* ```typescript
|
|
82
|
+
* // Conditional logger selection
|
|
83
|
+
* const logger = process.env.ENABLE_LOGGING === 'true'
|
|
84
|
+
* ? createConsoleLogger()
|
|
85
|
+
* : createNoopLogger();
|
|
86
|
+
* ```
|
|
87
|
+
*/
|
|
88
|
+
export const createNoopLogger = () => ({
|
|
89
|
+
error: () => { },
|
|
90
|
+
warn: () => { },
|
|
91
|
+
info: () => { },
|
|
92
|
+
debug: () => { },
|
|
93
|
+
});
|
|
94
|
+
//# sourceMappingURL=factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../lib/logger/factory.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAkB,EAAE;IACrD,OAAO,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAW,EAAE,CAAC,CAAC;IAC7C,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;IACf,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;IACd,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;IACd,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;CAChB,CAAC,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Logger module for Promidas.
|
|
3
|
+
*
|
|
4
|
+
* This module provides logging utilities and types:
|
|
5
|
+
* - {@link Logger} — Logger interface for custom logging implementations.
|
|
6
|
+
* - {@link LogLevel} — Log level type for controlling verbosity.
|
|
7
|
+
* - {@link ConsoleLogger} — Console-based logger class with mutable level.
|
|
8
|
+
* - {@link createConsoleLogger} — Factory to create a console logger with default 'info' level.
|
|
9
|
+
* - {@link createNoopLogger} — Factory to create a no-op logger.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* // Using the factory (default 'info' level)
|
|
14
|
+
* const logger = createConsoleLogger();
|
|
15
|
+
* logger.info('Application started');
|
|
16
|
+
* logger.level = 'debug'; // Change level dynamically
|
|
17
|
+
* ```
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```typescript
|
|
21
|
+
* // Using the constructor for specific level
|
|
22
|
+
* const debugLogger = new ConsoleLogger('debug');
|
|
23
|
+
* debugLogger.debug('Detailed debug info');
|
|
24
|
+
* ```
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```typescript
|
|
28
|
+
* // With Repository/Store (recommended pattern)
|
|
29
|
+
* import { PromidasRepositoryBuilder } from 'promidas';
|
|
30
|
+
* const logger = createConsoleLogger();
|
|
31
|
+
* const repo = new PromidasRepositoryBuilder()
|
|
32
|
+
* .setStoreConfig({ logger, logLevel: 'debug' })
|
|
33
|
+
* .setRepositoryConfig({ logger })
|
|
34
|
+
* .build();
|
|
35
|
+
* ```
|
|
36
|
+
*
|
|
37
|
+
* @module
|
|
38
|
+
*/
|
|
39
|
+
export type { Logger, LogLevel } from './logger.types.js';
|
|
40
|
+
export { ConsoleLogger } from './console-logger.js';
|
|
41
|
+
export { createConsoleLogger, createNoopLogger } from './factory.js';
|
|
42
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/logger/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Logger module for Promidas.
|
|
3
|
+
*
|
|
4
|
+
* This module provides logging utilities and types:
|
|
5
|
+
* - {@link Logger} — Logger interface for custom logging implementations.
|
|
6
|
+
* - {@link LogLevel} — Log level type for controlling verbosity.
|
|
7
|
+
* - {@link ConsoleLogger} — Console-based logger class with mutable level.
|
|
8
|
+
* - {@link createConsoleLogger} — Factory to create a console logger with default 'info' level.
|
|
9
|
+
* - {@link createNoopLogger} — Factory to create a no-op logger.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* // Using the factory (default 'info' level)
|
|
14
|
+
* const logger = createConsoleLogger();
|
|
15
|
+
* logger.info('Application started');
|
|
16
|
+
* logger.level = 'debug'; // Change level dynamically
|
|
17
|
+
* ```
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```typescript
|
|
21
|
+
* // Using the constructor for specific level
|
|
22
|
+
* const debugLogger = new ConsoleLogger('debug');
|
|
23
|
+
* debugLogger.debug('Detailed debug info');
|
|
24
|
+
* ```
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```typescript
|
|
28
|
+
* // With Repository/Store (recommended pattern)
|
|
29
|
+
* import { PromidasRepositoryBuilder } from 'promidas';
|
|
30
|
+
* const logger = createConsoleLogger();
|
|
31
|
+
* const repo = new PromidasRepositoryBuilder()
|
|
32
|
+
* .setStoreConfig({ logger, logLevel: 'debug' })
|
|
33
|
+
* .setRepositoryConfig({ logger })
|
|
34
|
+
* .build();
|
|
35
|
+
* ```
|
|
36
|
+
*
|
|
37
|
+
* @module
|
|
38
|
+
*/
|
|
39
|
+
export { ConsoleLogger } from './console-logger.js';
|
|
40
|
+
export { createConsoleLogger, createNoopLogger } from './factory.js';
|
|
41
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/logger/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Log levels supported by PROMIDAS loggers.
|
|
3
|
+
*
|
|
4
|
+
* @remarks
|
|
5
|
+
* Levels are ordered from most verbose to least verbose:
|
|
6
|
+
* - debug: Detailed information for debugging
|
|
7
|
+
* - info: General informational messages
|
|
8
|
+
* - warn: Warning messages
|
|
9
|
+
* - error: Error messages
|
|
10
|
+
* - silent: No logging output
|
|
11
|
+
*/
|
|
12
|
+
export type LogLevel = 'debug' | 'info' | 'warn' | 'error' | 'silent';
|
|
13
|
+
/**
|
|
14
|
+
* Logger interface for PROMIDAS.
|
|
15
|
+
*
|
|
16
|
+
* This interface is compatible with protopedia-api-v2-client Logger.
|
|
17
|
+
* Follows the Fastify/NestJS pattern where log level is managed separately.
|
|
18
|
+
*
|
|
19
|
+
* @remarks
|
|
20
|
+
* - Universal: works in Browser, Node.js, and Edge environments
|
|
21
|
+
* - Level is managed externally (not part of the interface)
|
|
22
|
+
* - Default implementation uses `console` (universal)
|
|
23
|
+
* - Compatible with protopedia-api-v2-client Logger instances
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```typescript
|
|
27
|
+
* const logger = createConsoleLogger();
|
|
28
|
+
* logger.debug('Debug message', { userId: 123 });
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export interface Logger {
|
|
32
|
+
/**
|
|
33
|
+
* Log error messages (highest priority).
|
|
34
|
+
*/
|
|
35
|
+
error: (message: string, meta?: unknown) => void;
|
|
36
|
+
/**
|
|
37
|
+
* Log warning messages.
|
|
38
|
+
*/
|
|
39
|
+
warn: (message: string, meta?: unknown) => void;
|
|
40
|
+
/**
|
|
41
|
+
* Log informational messages.
|
|
42
|
+
*/
|
|
43
|
+
info: (message: string, meta?: unknown) => void;
|
|
44
|
+
/**
|
|
45
|
+
* Log debug messages (lowest priority).
|
|
46
|
+
*/
|
|
47
|
+
debug: (message: string, meta?: unknown) => void;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=logger.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.types.d.ts","sourceRoot":"","sources":["../../lib/logger/logger.types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEtE;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,MAAM;IACrB;;OAEG;IACH,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAEjD;;OAEG;IACH,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAEhD;;OAEG;IACH,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAEhD;;OAEG;IACH,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CAClD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.types.js","sourceRoot":"","sources":["../../lib/logger/logger.types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Validation error thrown when invalid arguments are provided to repository methods.
|
|
3
|
+
*
|
|
4
|
+
* This error wraps Zod validation errors to hide the Zod dependency from users.
|
|
5
|
+
*
|
|
6
|
+
* @public
|
|
7
|
+
*/
|
|
8
|
+
export declare class ValidationError extends Error {
|
|
9
|
+
/**
|
|
10
|
+
* The name of the field that failed validation.
|
|
11
|
+
*/
|
|
12
|
+
readonly field: string;
|
|
13
|
+
/**
|
|
14
|
+
* Creates a new ValidationError.
|
|
15
|
+
*
|
|
16
|
+
* @param message - Human-readable error message
|
|
17
|
+
* @param field - The name of the field that failed validation
|
|
18
|
+
* @param options - Error options, including the original error cause for debugging
|
|
19
|
+
*/
|
|
20
|
+
constructor(message: string, field: string, options?: {
|
|
21
|
+
cause?: Error;
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=validation-error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation-error.d.ts","sourceRoot":"","sources":["../../../lib/repository/errors/validation-error.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,qBAAa,eAAgB,SAAQ,KAAK;IACxC;;OAEG;IACH,SAAgB,KAAK,EAAE,MAAM,CAAC;IAE9B;;;;;;OAMG;gBAED,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,KAAK,CAAC;KACf;CAMJ"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Validation error thrown when invalid arguments are provided to repository methods.
|
|
3
|
+
*
|
|
4
|
+
* This error wraps Zod validation errors to hide the Zod dependency from users.
|
|
5
|
+
*
|
|
6
|
+
* @public
|
|
7
|
+
*/
|
|
8
|
+
export class ValidationError extends Error {
|
|
9
|
+
/**
|
|
10
|
+
* The name of the field that failed validation.
|
|
11
|
+
*/
|
|
12
|
+
field;
|
|
13
|
+
/**
|
|
14
|
+
* Creates a new ValidationError.
|
|
15
|
+
*
|
|
16
|
+
* @param message - Human-readable error message
|
|
17
|
+
* @param field - The name of the field that failed validation
|
|
18
|
+
* @param options - Error options, including the original error cause for debugging
|
|
19
|
+
*/
|
|
20
|
+
constructor(message, field, options) {
|
|
21
|
+
super(message, options);
|
|
22
|
+
this.name = 'ValidationError';
|
|
23
|
+
this.field = field;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=validation-error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation-error.js","sourceRoot":"","sources":["../../../lib/repository/errors/validation-error.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACxC;;OAEG;IACa,KAAK,CAAS;IAE9B;;;;;;OAMG;IACH,YACE,OAAe,EACf,KAAa,EACb,OAEC;QAED,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF"}
|