Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 | 45x 12x 25x 16x 19x 27x | /**
* @module
*
* Public API of the kernel.
*
* @remarks
* The entire published surface. `package.json#exports` points here and TypeDoc
* documents from here, so a symbol is API when it appears below and internal
* when it does not. Keep it a barrel — behaviour belongs in `core/`.
*
* ## Layers
*
* | Directory | Holds | May import from |
* | ------------- | ---------------------------------------------------- | ----------------- |
* | `index.ts` | re-exports only | every layer |
* | `core/` | behaviour: `Service`, `Logger`, the config engine | every layer below |
* | `types/` | shapes callers receive or supply, incl. capabilities | nothing in `src/` |
* | `constants/` | values that never depend on runtime state | nothing in `src/` |
* | `exceptions/` | the faults raised | nothing in `src/` |
* | `security/` | primitives that exist to be safe | nothing in `src/` |
* | `utils/` | helpers any library could use | nothing in `src/` |
*
* Dependency arrows point *into* the leaf layers and never back out. A lint rule
* enforces it, because a convention only survives as long as everyone remembers
* it, and the import that breaks it looks like every other import at the point
* it is written.
*
* ## What belongs in this package
*
* The layer everything else depends on, which holds only while it names no
* vendor, no runtime, and no HTTP framework. Anything here that seems to need a
* vendor SDK, a runtime's types, or an HTTP framework belongs in an adapter
* package instead — a second lint rule enforces that too.
*
* ## Quick start
*
* ```ts
* import { configure, Logger, systemDefaults } from '@bayudwiyansatria/core'
* import { platformDefaults } from '<the-adapter-package>'
*
* // Once, at startup, before anything resolves a setting.
* configure({ ...systemDefaults, ...platformDefaults }, overrides)
*
* const log = Logger.fromEnv(env, { service: 'ArticleService' })
* log.info('ready')
* ```
*
* @author Bayu Dwiyan Satria
* @version 1.0.0
* @since 1.0.0
*/
/**
* Core
*/
export { configure, Logger, resolve, Service } from '@/core'
/**
* Core — implementations that satisfy a capability without providing it
*/
export { NoopCacheStore, NoopMessageQueue, NoopRateLimiter, NoopTelemetrySink } from '@/core'
/**
* Constants
*/
export { systemDefaults } from '@/constants'
/**
* Exceptions
*/
export { ConfigurationError, MissingCapabilityError } from '@/exceptions'
/**
* Security
*/
export { timingSafeEqual } from '@/security'
/**
* Utilities
*/
export { Signature, Text, Time } from '@/utils'
/**
* Types
*/
export type {
APIResponse,
Capability,
CacheStore,
CoordinationStore,
DataStore,
InferenceEngine,
LogContext,
LoggingSettings,
LogLevel,
MessageQueue,
ObjectStore,
Overrides,
RateLimiter,
RequestFacts,
RequestMetadata,
RequestMetric,
SecuritySettings,
SqlConnectionProvider,
SqlCredentials,
SqlStatement,
SqlTarget,
SqlWriteResult,
StoredObject,
SystemConfiguration,
TelemetrySink,
VectorIndex,
VectorMatch
} from '@/types'
|