@owlmeans/context 0.1.18-rc.0 → 0.1.18-rc.10

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 (43) hide show
  1. package/README.md +27 -6
  2. package/agent-meta/manifest.json +2 -2
  3. package/agent-meta/skills/context/SKILL.md +129 -19
  4. package/build/config.d.ts.map +1 -1
  5. package/build/config.js +0 -2
  6. package/build/config.js.map +1 -1
  7. package/build/consts.d.ts +1 -9
  8. package/build/consts.d.ts.map +1 -1
  9. package/build/consts.js +0 -9
  10. package/build/consts.js.map +1 -1
  11. package/build/context.d.ts.map +1 -1
  12. package/build/context.js +26 -109
  13. package/build/context.js.map +1 -1
  14. package/build/helper.d.ts +0 -1
  15. package/build/helper.d.ts.map +1 -1
  16. package/build/helper.js +4 -13
  17. package/build/helper.js.map +1 -1
  18. package/build/types.d.ts +21 -23
  19. package/build/types.d.ts.map +1 -1
  20. package/build/utils/context.d.ts +2 -7
  21. package/build/utils/context.d.ts.map +1 -1
  22. package/build/utils/context.js +0 -11
  23. package/build/utils/context.js.map +1 -1
  24. package/build/utils/index.d.ts +0 -1
  25. package/build/utils/index.d.ts.map +1 -1
  26. package/build/utils/index.js +0 -1
  27. package/build/utils/index.js.map +1 -1
  28. package/package.json +1 -1
  29. package/src/config.ts +1 -2
  30. package/src/consts.ts +1 -10
  31. package/src/context.ts +32 -134
  32. package/src/helper.ts +4 -18
  33. package/src/types.ts +22 -26
  34. package/src/utils/context.ts +2 -20
  35. package/src/utils/index.ts +0 -1
  36. package/tests/context.ts +1 -2
  37. package/tests/service.spec.ts +1 -1
  38. package/build/.gitkeep +0 -0
  39. package/build/utils/layer.d.ts +0 -6
  40. package/build/utils/layer.d.ts.map +0 -1
  41. package/build/utils/layer.js +0 -12
  42. package/build/utils/layer.js.map +0 -1
  43. package/src/utils/layer.ts +0 -17
package/README.md CHANGED
@@ -4,15 +4,15 @@ Lightweight dependency injection and service lifecycle management for fullstack
4
4
 
5
5
  ## Overview
6
6
 
7
- - Context holds services, modules, and resources; passed top-down through the app
7
+ - Context holds services, entrypoints, and resources in three flat registries keyed by alias; passed top-down through the app
8
8
  - Services are registered by alias and retrieved via `context.service(alias)`
9
- - Supports layered contexts (System → Global → Service → Entity → User) for multi-tenant apps
10
- - Route constants (`ROOT`, `HOME`, `GUEST`, `BASE`) are used by the module system across all packages
9
+ - One context is built per process by a single factory and extended with idempotent `append*` mixins
10
+ - Route constants (`ROOT`, `HOME`, `GUEST`, `BASE`) are used by the entrypoint system across all packages
11
11
 
12
12
  ## Installation
13
13
 
14
14
  ```bash
15
- bun add @owlmeans/context
15
+ bun add @owlmeans/context@^0.1.18-rc.7
16
16
  ```
17
17
 
18
18
  ## Usage
@@ -66,10 +66,31 @@ Asserts that a context is defined; throws if not.
66
66
 
67
67
  Creates a context from a config object. Rarely used directly — prefer the higher-level `makeContext` from `@owlmeans/server-app` or `@owlmeans/client-context`.
68
68
 
69
+ A factory calls the factory of the layer below it, applies its own idempotent `append*` mixins, and returns that same context:
70
+
71
+ ```typescript
72
+ export const makeContext = <C extends Config, T extends Context<C>>(cfg: C): T => {
73
+ const context = makeServerContext<C, T>(cfg)
74
+ appendMyService<C, T>(context)
75
+ return context
76
+ }
77
+ ```
78
+
79
+ Nothing is stored for re-creation — a service, a resource and an entrypoint each bind to exactly one context.
80
+
81
+ ### Registries
82
+
83
+ Three flat maps keyed by alias. Registering the same alias twice replaces the earlier entry.
84
+
85
+ ```typescript
86
+ context.registerService(service) // context.service(alias), context.hasService(alias)
87
+ context.registerResource(resource) // context.resource(alias), context.hasResource(alias)
88
+ context.registerEntrypoints(entrypoints) // context.entrypoint(alias), context.entrypoints(), context.hasEntrypoint(alias)
89
+ ```
90
+
69
91
  ### Enums
70
92
 
71
93
  ```typescript
72
- enum Layer { System, Global, Service, Entity, User }
73
94
  enum AppType { Backend, Frontend }
74
95
  enum ContextStage { Configuration, Loading, Ready }
75
96
  ```
@@ -99,7 +120,7 @@ This package ships embedded agent skills under `agent-meta/`. After installing y
99
120
  your project's skill store (`.agents/skills/`):
100
121
 
101
122
  ```sh
102
- npx @owlmeans/agent-skills
123
+ npx @owlmeans/agent-skills@^0.1.18-rc.14
103
124
  ```
104
125
 
105
126
  The embedded files are version-matched to this package release. Do not edit them
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": 2,
3
3
  "package": "@owlmeans/context",
4
- "version": "0.1.18-rc.0",
5
- "generatedAt": "2026-08-16T22:20:50.516Z",
4
+ "version": "0.1.18-rc.10",
5
+ "generatedAt": "2026-09-10T23:12:07.518Z",
6
6
  "canonicalRepo": "https://github.com/owlmeans/common",
7
7
  "entries": [
8
8
  {
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: context
3
- description: How to use @owlmeans/context — base context (DI container) factory, registerService(), service<T>() lookups, entrypoint<ClientEntrypoint<T>>() resolution. Auto-invoked when importing context primitives or building a makeContext factory.
3
+ description: How to use @owlmeans/context — the DI container behind every OwlMeans app, its service/resource/entrypoint registries, the configure/init lifecycle, createService and createLazyService, middlewares, and the shared route-alias constants. Auto-invoked when importing context primitives, registering a service, or building a makeContext factory.
4
4
  user-invocable: false
5
5
  ---
6
6
  <!-- AUTO-GENERATED — do not edit. Regenerate via sync-agent-meta. -->
@@ -8,46 +8,156 @@ user-invocable: false
8
8
  # @owlmeans/context
9
9
 
10
10
  **Layer:** Core
11
- **Install:** `"@owlmeans/context": "^0.1.18-rc.0"` in `dependencies`
11
+ **Install:** `"@owlmeans/context": "^0.1.18-rc.10"` in `dependencies`
12
12
 
13
13
  ## Key Exports
14
14
 
15
15
  | Export | Description |
16
16
  |--------|-------------|
17
- | `Context<C>` types | Generic context interface (typed by Config) |
18
- | `makeBasicContext` | Low-level factory — usually you extend a layer-specific factory instead |
19
- | `registerService` (method) | Add a service to the DI container |
20
- | `service<T>(alias)` (method) | Resolve a service by alias |
21
- | `entrypoint<ClientEntrypoint<T>>(alias)` (method) | Resolve an entrypoint to call cross-service |
22
- | `Service` types | Service interface and lifecycle |
23
- | Constants | Built-in service/entrypoint aliases |
17
+ | `makeBasicContext(cfg)` | Low-level factory — extend a layer-specific factory instead |
18
+ | `BasicContext<C>` | The container interface, typed by its config |
19
+ | `BasicConfig` | `{ ready, service, alias?, type, services?, records?, debug? }` — what every config extends |
20
+ | `makeBasicConfig(type, service, cfg?)` | Build the base config object a layer factory then fills in |
21
+ | `createService(alias, impl, init?)` | Build a service initialized during `context.init()` |
22
+ | `createLazyService(alias, impl, init?)` | Build a service initialized on first `context.service()` |
23
+ | `appendContextual(alias, obj)` | Give any object `alias` / `registerContext` / `assertCtx` |
24
+ | `assertContext(ctx, location?)` | Return the context or throw `SyntaxError` when it is absent |
25
+ | `Service` / `InitializedService` / `LazyService` | The three service shapes |
26
+ | `BasicResource` / `BasicEntrypoint` / `Contextual` | The other registrable shapes |
27
+ | `Middleware`, `MiddlewareType`, `MiddlewareStage` | Hooks that run inside `configure()` / `init()` |
28
+ | `AppType` | `Backend` / `Frontend` |
29
+ | `ContextStage` | `Configuration` → `Loading` → `Ready` |
30
+ | `CONFIG_RECORD` (`'records'`), `ConfigRecord` | The config-record array key, and a record in it |
31
+ | `ROOT`, `HOME`, `GUEST`, `BASE`, `CRASH` | Route-alias idioms every layer reuses |
24
32
 
25
- ## Usage
33
+ ## One context per process
26
34
 
27
- Always extend a layer-specific factory (`@owlmeans/server-context`, `@owlmeans/web-panel`, etc.) rather than calling the basic factory directly. Always reassign `context.makeContext` so child contexts inherit the typed factory:
35
+ A context is created ONCE by ONE factory. Extend a layer-specific factory
36
+ (`@owlmeans/server-context`, `@owlmeans/web-panel`, …) rather than calling the basic factory
37
+ directly: your factory calls the factory below it, applies its own idempotent `append*(context)`
38
+ mixins and service registrations, and returns that same context. There are no layered or child
39
+ contexts and nothing is stored for re-creation — a service, a resource and an entrypoint each bind
40
+ to exactly one context, the first that registers them.
28
41
 
29
42
  ```typescript
30
- import { makeBackendContext } from '@owlmeans/server-context'
43
+ import { makeServerContext } from '@owlmeans/server-context'
31
44
 
32
45
  export const makeContext = <C extends Config, T extends Context<C>>(cfg: C): T => {
33
- const context = makeBackendContext<C, T>(cfg)
46
+ const context = makeServerContext<C, T>(cfg)
34
47
  context.registerService(makeMyService())
35
- context.makeContext = makeContext as typeof context.makeContext
36
48
  return context
37
49
  }
38
50
  ```
39
51
 
40
- Resolve services and call cross-service entrypoints from a handler:
52
+ ## Registries
53
+
54
+ Three flat maps keyed by alias. Registering the same alias twice **replaces** the earlier entry —
55
+ entrypoint lists are routinely spread together and the later declaration is the one the app means.
56
+
57
+ ```typescript
58
+ context.registerService(service) // service(alias), hasService(alias)
59
+ context.registerResource(resource) // resource(alias), hasResource(alias)
60
+ context.registerEntrypoints(entrypoints) // entrypoint(alias), entrypoints(), hasEntrypoint(alias)
61
+ ```
62
+
63
+ Every lookup throws `SyntaxError` when the alias is unknown. Resolve a service and call another
64
+ service's entrypoint from a handler:
41
65
 
42
66
  ```typescript
43
67
  const someService = ctx.service<MyService>(MY_SERVICE_ALIAS)
44
68
 
45
- const [response] = await ctx.entrypoint<ClientEntrypoint<ResponseType>>(
69
+ const response = await ctx.entrypoint<ClientEntrypoint<ResponseType>>(
46
70
  externalService.action.alias
47
- ).call({ body: { ... } })
71
+ ).call({ body: { ... } }) // call() resolves to the value; invoke() gives { value, outcome }
72
+ ```
73
+
74
+ ## Lifecycle
75
+
76
+ `configure()` runs the `Config` + `Configuration` middlewares and moves the context to `Loading`;
77
+ `init()` awaits that, then initializes every service, then the resources, then flips to `Ready` and
78
+ sets `cfg.ready`. `waitForConfigured()` and `waitForInitialized()` resolve at those two points, and
79
+ `await ctx.config` yields the config once configuration is done. Both calls are safe to repeat — a
80
+ context already past the stage returns itself unchanged.
81
+
82
+ `configure()` is **not** async: it returns the context straight away and its middlewares run
83
+ detached, so the stage flips to `Loading` only when they settle. Anything that must see a configured
84
+ context awaits `waitForConfigured()` or `init()`, never the return of `configure()`.
85
+
86
+ ## Services
87
+
88
+ `createService` and `createLazyService` differ only in **when** the init function runs.
89
+
90
+ - `createService` — `init()` is awaited during `context.init()`, in registration order. Asking for
91
+ an uninitialized one throws `SyntaxError`.
92
+ - `createLazyService` — `lazyInit()` fires on the first `context.service(alias)` and the service is
93
+ returned immediately, before that promise settles. Choose lazy when the service must be reachable
94
+ while the context is still `Loading` — from an app's `makeContext`, or from another package's
95
+ `append*` helper — **not** because it has no async work; most lazy services do plenty of it.
96
+
97
+ ```typescript
98
+ import { createService } from '@owlmeans/context'
99
+
100
+ export const makeMyService = (alias = MY_SERVICE) => createService<MyService>(alias, {
101
+ doWork: async () => { /* ... */ }
102
+ }, service => async () => {
103
+ await connect()
104
+ service.initialized = true
105
+ })
106
+ ```
107
+
108
+ The init function is a factory: it receives the service and returns the actual initializer, which
109
+ must set `service.initialized = true`. Omit it and the service is simply marked initialized. Inside
110
+ any method use `service.assertCtx<Config, Context>()` to reach the context it was registered on.
111
+
112
+ ### `ready()`
113
+
114
+ Both factories give the service a `ready(): Promise<boolean>` that resolves once its init function
115
+ has finished, and both `InitializedService` and `LazyService` declare it. It is how you wait for a
116
+ lazy service: the container hands the service back before `lazyInit()` settles, so anything the init
117
+ prepared — a database client, a loaded config, a socket — is only safe to touch after `ready()`.
118
+
119
+ ```typescript
120
+ const mongo = ctx.service<MongoService>(MONGO_ALIAS) // this call is what triggers lazyInit
121
+ await mongo.ready()
122
+ ```
123
+
124
+ A lazy service's init runs only when someone resolves it through `context.service(alias)`, so
125
+ `ready()` on a reference obtained any other way never settles.
126
+
127
+ ## Middlewares
128
+
129
+ A middleware declares a `type` (`Config` or `Context`) and a `stage` (`Configuration`, `Loading` or
130
+ `Ready`), and that pair — not the stage alone — decides where it runs. Exactly five pairs are ever
131
+ applied, in this order:
132
+
133
+ | Type + stage | Where it runs |
134
+ |--------------|---------------|
135
+ | `Config` + `Configuration` | inside `configure()`, before the stage becomes `Loading` — the only hook that sees `cfg` before anything else does |
136
+ | `Context` + `Configuration` | first thing inside `init()` |
137
+ | `Config` + `Loading` | inside `init()`, **after every service has been initialized** and before the resources |
138
+ | `Context` + `Loading` | inside `init()`, after the resources |
139
+ | `Context` + `Ready` | after the stage flips to `Ready`; started but **not awaited**, so `init()` resolves without waiting for it |
140
+
141
+ `Config` + `Ready` is never applied at all — a middleware registered under that pair silently never
142
+ runs. All middlewares sharing a pair are applied with `Promise.all`, so they run concurrently and
143
+ registration order does not sequence them.
144
+
145
+ Pick the pair by what the work needs. `Config` + `Configuration` is for config that stands on its
146
+ own — mounted secrets, hosts read from the environment. `Config` + `Loading` is for config that has
147
+ to be resolved *through a running service*, because services are already initialized by then; that
148
+ is the stage a cluster- or vault-backed value resolver registers at, and it can `await
149
+ service.ready()` on the service it depends on. `Context` middlewares register or adjust what the
150
+ container holds.
151
+
152
+ ```typescript
153
+ context.registerMiddleware({
154
+ type: MiddlewareType.Config,
155
+ stage: MiddlewareStage.Loading, // services are up — resolve cfg values through one of them
156
+ apply: async ctx => { /* mutate ctx.cfg */ }
157
+ })
48
158
  ```
49
159
 
50
160
  ## Depends On
51
161
 
52
- - `@owlmeans/config` — context is parameterized by a Config
53
- - `@owlmeans/entrypoint` — `ClientEntrypoint<T>` type for cross-service calls
162
+ - Nothing. This is the root package — `@owlmeans/config` layers the application config on top of
163
+ `BasicConfig`, and `@owlmeans/entrypoint` layers URL units on top of `BasicEntrypoint`.
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAA;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAE7C,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,WAAW,QAAQ,OAAO,WAAW,MAAM,QAAQ,OAAO,CAAC,CAAC,CAAC,KAAG,CAazG,CAAA"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAE7C,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,WAAW,QAAQ,OAAO,WAAW,MAAM,QAAQ,OAAO,CAAC,CAAC,CAAC,KAAG,CAYzG,CAAA"}
package/build/config.js CHANGED
@@ -1,9 +1,7 @@
1
- import { AppType, Layer } from './consts.js';
2
1
  export const makeBasicConfig = (type, service, cfg) => {
3
2
  const config = {
4
3
  ready: false,
5
4
  service,
6
- layer: type === AppType.Frontend ? Layer.Service : Layer.System,
7
5
  type,
8
6
  debug: {},
9
7
  services: {},
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAG5C,MAAM,CAAC,MAAM,eAAe,GAAG,CAAwB,IAAa,EAAE,OAAe,EAAE,GAAgB,EAAK,EAAE;IAC5G,MAAM,MAAM,GAAG;QACb,KAAK,EAAE,KAAK;QACZ,OAAO;QACP,KAAK,EAAE,IAAI,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM;QAC/D,IAAI;QACJ,KAAK,EAAE,EAAE;QACT,QAAQ,EAAE,EAAE;QACZ,OAAO,EAAE,EAAE;QACX,GAAG,GAAG;KACF,CAAA;IAEN,OAAO,MAAM,CAAA;AACf,CAAC,CAAA"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,eAAe,GAAG,CAAwB,IAAa,EAAE,OAAe,EAAE,GAAgB,EAAK,EAAE;IAC5G,MAAM,MAAM,GAAG;QACb,KAAK,EAAE,KAAK;QACZ,OAAO;QACP,IAAI;QACJ,KAAK,EAAE,EAAE;QACT,QAAQ,EAAE,EAAE;QACZ,OAAO,EAAE,EAAE;QACX,GAAG,GAAG;KACF,CAAA;IAEN,OAAO,MAAM,CAAA;AACf,CAAC,CAAA"}
package/build/consts.d.ts CHANGED
@@ -1,10 +1,3 @@
1
- export declare enum Layer {
2
- System = "system",
3
- Global = "global",
4
- Service = "service",
5
- Entity = "entity",
6
- User = "user"
7
- }
8
1
  export declare enum AppType {
9
2
  Backend = "backend",
10
3
  Frontend = "frontend"
@@ -21,8 +14,7 @@ export declare enum ContextStage {
21
14
  export declare enum MiddlewareStage {
22
15
  Configuration = "configuration",
23
16
  Loading = "loading",
24
- Ready = "ready",
25
- Switching = "switching"
17
+ Ready = "ready"
26
18
  }
27
19
  export declare const CONFIG_RECORD = "records";
28
20
  export declare const EMPTY_ENTITY = "[UNDEFINED_ENTITY]";
@@ -1 +1 @@
1
- {"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AACA,oBAAY,KAAK;IACf,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,IAAI,SAAS;CACd;AAED,oBAAY,OAAO;IACjB,OAAO,YAAY;IACnB,QAAQ,aAAa;CACtB;AAED,oBAAY,cAAc;IACxB,MAAM,WAAW;IACjB,OAAO,YAAY;CACpB;AAED,oBAAY,YAAY;IACtB,aAAa,kBAAkB;IAC/B,OAAO,YAAY;IACnB,KAAK,UAAU;CAChB;AAED,oBAAY,eAAe;IACzB,aAAa,kBAAkB;IAC/B,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,SAAS,cAAc;CACxB;AAED,eAAO,MAAM,aAAa,YAAY,CAAA;AAEtC,eAAO,MAAM,YAAY,uBAAuB,CAAA;AAChD,eAAO,MAAM,aAAa,wBAAwB,CAAA;AAGlD;;GAEG;AACH,eAAO,MAAM,IAAI,SAAS,CAAA;AAC1B;;GAEG;AACH,eAAO,MAAM,IAAI,SAAS,CAAA;AAC1B;;GAEG;AACH,eAAO,MAAM,KAAK,UAAU,CAAA;AAC5B;;GAEG;AACH,eAAO,MAAM,IAAI,SAAS,CAAA;AAC1B;;GAEG;AACH,eAAO,MAAM,KAAK,UAAU,CAAA"}
1
+ {"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AACA,oBAAY,OAAO;IACjB,OAAO,YAAY;IACnB,QAAQ,aAAa;CACtB;AAED,oBAAY,cAAc;IACxB,MAAM,WAAW;IACjB,OAAO,YAAY;CACpB;AAED,oBAAY,YAAY;IACtB,aAAa,kBAAkB;IAC/B,OAAO,YAAY;IACnB,KAAK,UAAU;CAChB;AAED,oBAAY,eAAe;IACzB,aAAa,kBAAkB;IAC/B,OAAO,YAAY;IACnB,KAAK,UAAU;CAChB;AAED,eAAO,MAAM,aAAa,YAAY,CAAA;AAEtC,eAAO,MAAM,YAAY,uBAAuB,CAAA;AAChD,eAAO,MAAM,aAAa,wBAAwB,CAAA;AAGlD;;GAEG;AACH,eAAO,MAAM,IAAI,SAAS,CAAA;AAC1B;;GAEG;AACH,eAAO,MAAM,IAAI,SAAS,CAAA;AAC1B;;GAEG;AACH,eAAO,MAAM,KAAK,UAAU,CAAA;AAC5B;;GAEG;AACH,eAAO,MAAM,IAAI,SAAS,CAAA;AAC1B;;GAEG;AACH,eAAO,MAAM,KAAK,UAAU,CAAA"}
package/build/consts.js CHANGED
@@ -1,11 +1,3 @@
1
- export var Layer;
2
- (function (Layer) {
3
- Layer["System"] = "system";
4
- Layer["Global"] = "global";
5
- Layer["Service"] = "service";
6
- Layer["Entity"] = "entity";
7
- Layer["User"] = "user";
8
- })(Layer || (Layer = {}));
9
1
  export var AppType;
10
2
  (function (AppType) {
11
3
  AppType["Backend"] = "backend";
@@ -27,7 +19,6 @@ export var MiddlewareStage;
27
19
  MiddlewareStage["Configuration"] = "configuration";
28
20
  MiddlewareStage["Loading"] = "loading";
29
21
  MiddlewareStage["Ready"] = "ready";
30
- MiddlewareStage["Switching"] = "switching";
31
22
  })(MiddlewareStage || (MiddlewareStage = {}));
32
23
  export const CONFIG_RECORD = 'records';
33
24
  export const EMPTY_ENTITY = '[UNDEFINED_ENTITY]';
@@ -1 +1 @@
1
- {"version":3,"file":"consts.js","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AACA,MAAM,CAAN,IAAY,KAMX;AAND,WAAY,KAAK;IACf,0BAAiB,CAAA;IACjB,0BAAiB,CAAA;IACjB,4BAAmB,CAAA;IACnB,0BAAiB,CAAA;IACjB,sBAAa,CAAA;AACf,CAAC,EANW,KAAK,KAAL,KAAK,QAMhB;AAED,MAAM,CAAN,IAAY,OAGX;AAHD,WAAY,OAAO;IACjB,8BAAmB,CAAA;IACnB,gCAAqB,CAAA;AACvB,CAAC,EAHW,OAAO,KAAP,OAAO,QAGlB;AAED,MAAM,CAAN,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,mCAAiB,CAAA;IACjB,qCAAmB,CAAA;AACrB,CAAC,EAHW,cAAc,KAAd,cAAc,QAGzB;AAED,MAAM,CAAN,IAAY,YAIX;AAJD,WAAY,YAAY;IACtB,+CAA+B,CAAA;IAC/B,mCAAmB,CAAA;IACnB,+BAAe,CAAA;AACjB,CAAC,EAJW,YAAY,KAAZ,YAAY,QAIvB;AAED,MAAM,CAAN,IAAY,eAKX;AALD,WAAY,eAAe;IACzB,kDAA+B,CAAA;IAC/B,sCAAmB,CAAA;IACnB,kCAAe,CAAA;IACf,0CAAuB,CAAA;AACzB,CAAC,EALW,eAAe,KAAf,eAAe,QAK1B;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,SAAS,CAAA;AAEtC,MAAM,CAAC,MAAM,YAAY,GAAG,oBAAoB,CAAA;AAChD,MAAM,CAAC,MAAM,aAAa,GAAG,qBAAqB,CAAA;AAElD,wBAAwB;AACxB;;GAEG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAA;AAC1B;;GAEG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAA;AAC1B;;GAEG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,OAAO,CAAA;AAC5B;;GAEG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAA;AAC1B;;GAEG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,OAAO,CAAA"}
1
+ {"version":3,"file":"consts.js","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AACA,MAAM,CAAN,IAAY,OAGX;AAHD,WAAY,OAAO;IACjB,8BAAmB,CAAA;IACnB,gCAAqB,CAAA;AACvB,CAAC,EAHW,OAAO,KAAP,OAAO,QAGlB;AAED,MAAM,CAAN,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,mCAAiB,CAAA;IACjB,qCAAmB,CAAA;AACrB,CAAC,EAHW,cAAc,KAAd,cAAc,QAGzB;AAED,MAAM,CAAN,IAAY,YAIX;AAJD,WAAY,YAAY;IACtB,+CAA+B,CAAA;IAC/B,mCAAmB,CAAA;IACnB,+BAAe,CAAA;AACjB,CAAC,EAJW,YAAY,KAAZ,YAAY,QAIvB;AAED,MAAM,CAAN,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,kDAA+B,CAAA;IAC/B,sCAAmB,CAAA;IACnB,kCAAe,CAAA;AACjB,CAAC,EAJW,eAAe,KAAf,eAAe,QAI1B;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,SAAS,CAAA;AAEtC,MAAM,CAAC,MAAM,YAAY,GAAG,oBAAoB,CAAA;AAChD,MAAM,CAAC,MAAM,aAAa,GAAG,qBAAqB,CAAA;AAElD,wBAAwB;AACxB;;GAEG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAA;AAC1B;;GAEG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAA;AAC1B;;GAEG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,OAAO,CAAA;AAC5B;;GAEG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAA;AAC1B;;GAEG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,OAAO,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAoE,MAAM,YAAY,CAAA;AAO7H,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,WAAW,OAAO,CAAC,KAAG,YAAY,CAAC,CAAC,CA6Q9E,CAAA"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EAAE,YAAY,EAC1B,MAAM,YAAY,CAAA;AAKnB,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,WAAW,OAAO,CAAC,KAAG,YAAY,CAAC,CAAC,CAuK9E,CAAA"}
package/build/context.js CHANGED
@@ -1,20 +1,19 @@
1
- import { ContextStage, Layer, MiddlewareStage, MiddlewareType } from './consts.js';
2
- // import { applyMiddlewares, getAllServices, getMiddlerwareKey, isResourceAvailable, layersOrder } from './utils/context.js'
3
- import { applyMiddlewares, getAllServices, getMiddlerwareKey, isResourceAvailable } from './utils/context.js';
4
- import { DEFAULT, initializeLayer } from './utils/layer.js';
1
+ import { ContextStage, MiddlewareStage, MiddlewareType } from './consts.js';
2
+ import { applyMiddlewares, getMiddlerwareKey } from './utils/context.js';
5
3
  export const makeBasicContext = (cfg) => {
4
+ /**
5
+ * One flat registry per kind, keyed by alias. Registering an alias twice replaces the
6
+ * earlier entry — application entrypoint lists are routinely spread together and the
7
+ * later declaration is the one the app means.
8
+ */
6
9
  const services = {};
7
10
  const entrypoints = {};
8
11
  const resources = {};
9
12
  const middlewares = {};
10
- const allServices = {};
11
- const allEntrypoints = {};
12
- const allResources = {};
13
13
  let configure;
14
14
  let initialize;
15
15
  const configured = new Promise(resolve => { configure = resolve; });
16
16
  const initialized = new Promise(resolve => { initialize = resolve; });
17
- // const contexts: Record<string, BasicContext<C>> = {}
18
17
  const inLazyInit = new Set();
19
18
  const context = {
20
19
  cfg,
@@ -39,7 +38,7 @@ export const makeBasicContext = (cfg) => {
39
38
  return context;
40
39
  }
41
40
  await applyMiddlewares(context, middlewares, MiddlewareType.Context, MiddlewareStage.Configuration);
42
- await getAllServices(services, context.cfg.layer, context.cfg.layerId ?? DEFAULT).reduce(async (previous, service) => {
41
+ await Object.values(services).reduce(async (previous, service) => {
43
42
  await previous;
44
43
  if (!service.initialized) {
45
44
  if (service.init != null) {
@@ -51,12 +50,9 @@ export const makeBasicContext = (cfg) => {
51
50
  }
52
51
  }, Promise.resolve());
53
52
  await applyMiddlewares(context, middlewares, MiddlewareType.Config, MiddlewareStage.Loading);
54
- const id = initializeLayer(resources, context.cfg.layer, context.cfg.layerId ?? DEFAULT);
55
- await Object.values(resources[context.cfg.layer][id]).reduce(async (previous, resource) => {
53
+ await Object.values(resources).reduce(async (previous, resource) => {
56
54
  await previous;
57
- if (isResourceAvailable(resource, context.cfg.layer)) {
58
- await resource.init?.();
59
- }
55
+ await resource.init?.();
60
56
  }, Promise.resolve());
61
57
  await applyMiddlewares(context, middlewares, MiddlewareType.Context, MiddlewareStage.Loading);
62
58
  context.stage = ContextStage.Ready;
@@ -66,38 +62,19 @@ export const makeBasicContext = (cfg) => {
66
62
  return context;
67
63
  },
68
64
  registerService: (service) => {
69
- const id = initializeLayer(services, context.cfg.layer, context.cfg.layerId);
70
- service = service.registerContext(context);
71
- if (allServices[service.alias] == null) {
72
- allServices[service.alias] = service;
73
- }
74
- services[context.cfg.layer][id][service.alias] = service;
65
+ services[service.alias] = service.registerContext(context);
75
66
  return context;
76
67
  },
77
68
  registerEntrypoint: (entrypoint) => {
78
- const id = initializeLayer(entrypoints, context.cfg.layer, context.cfg.layerId);
79
- entrypoint = entrypoint.registerContext(context);
80
- if (allEntrypoints[entrypoint.alias] == null) {
81
- allEntrypoints[entrypoint.alias] = entrypoint;
82
- }
83
- entrypoints[context.cfg.layer][id][entrypoint.alias] = entrypoint;
69
+ entrypoints[entrypoint.alias] = entrypoint.registerContext(context);
84
70
  return context;
85
71
  },
86
72
  registerEntrypoints: (eps) => {
87
73
  eps.forEach(ep => context.registerEntrypoint(ep));
88
74
  return context;
89
75
  },
90
- /** @deprecated use registerEntrypoint */
91
- registerModule: (module) => context.registerEntrypoint(module),
92
- /** @deprecated use registerEntrypoints */
93
- registerModules: (mods) => context.registerEntrypoints(mods),
94
76
  registerResource: (resource) => {
95
- const id = initializeLayer(resources, context.cfg.layer, context.cfg.layerId);
96
- resource = resource.registerContext(context);
97
- if (allResources[resource.alias] == null) {
98
- allResources[resource.alias] = resource;
99
- }
100
- resources[context.cfg.layer][id][resource.alias] = resource;
77
+ resources[resource.alias] = resource.registerContext(context);
101
78
  return context;
102
79
  },
103
80
  registerMiddleware: (middleware) => {
@@ -112,16 +89,9 @@ export const makeBasicContext = (cfg) => {
112
89
  return configured.then(() => context.cfg);
113
90
  },
114
91
  service: (alias) => {
115
- const id = initializeLayer(services, context.cfg.layer, context.cfg.layerId);
116
- let _service;
117
- if (services[context.cfg.layer]?.[id]?.[alias] != null) {
118
- _service = services[context.cfg.layer][id][alias];
119
- }
120
- else if (services[Layer.Global]?.[id]?.[alias] != null) {
121
- _service = services[context.cfg.layer][id][alias];
122
- }
123
- else {
124
- throw new SyntaxError(`Service ${alias} not found in layer ${context.cfg.layer}`);
92
+ const _service = services[alias];
93
+ if (_service == null) {
94
+ throw new SyntaxError(`Service ${alias} not found`);
125
95
  }
126
96
  if (!_service.initialized) {
127
97
  if (_service.lazyInit != null) {
@@ -138,76 +108,23 @@ export const makeBasicContext = (cfg) => {
138
108
  }
139
109
  return _service;
140
110
  },
141
- entrypoint: (alias) => {
142
- const id = initializeLayer(entrypoints, context.cfg.layer, context.cfg.layerId);
143
- if (entrypoints[context.cfg.layer][id][alias] != null) {
144
- return entrypoints[context.cfg.layer][id][alias];
111
+ entrypoint: (reference) => {
112
+ const alias = typeof reference === 'string' ? reference : reference.alias;
113
+ if (entrypoints[alias] != null) {
114
+ return entrypoints[alias];
145
115
  }
146
116
  throw new SyntaxError(`Entrypoint ${alias} not found`);
147
117
  },
148
- /** @deprecated use entrypoint */
149
- module: (alias) => context.entrypoint(alias),
150
118
  resource: (alias) => {
151
- const id = initializeLayer(resources, context.cfg.layer, context.cfg.layerId);
152
- if (resources[context.cfg.layer][id][alias] != null) {
153
- const resource = resources[context.cfg.layer][id][alias];
154
- return resource;
119
+ if (resources[alias] != null) {
120
+ return resources[alias];
155
121
  }
156
122
  throw new SyntaxError(`Resource ${alias} not found`);
157
123
  },
158
- entrypoints: () => {
159
- const id = initializeLayer(entrypoints, context.cfg.layer, context.cfg.layerId);
160
- return Object.values(entrypoints[context.cfg.layer][id]);
161
- },
162
- /** @deprecated use entrypoints */
163
- modules: () => context.entrypoints(),
164
- /**
165
- * @TODO Unfortunatly module cloning between contexts is quite unstable.
166
- * And it looks like in some cases it relies on modules that aren't really clonned.
167
- * The problem is that the not cloned modules are changing their context accross all context
168
- * layers and we can't rely on such behaviour.
169
- * So we disabled context update as a whole and all functionality that relies on it
170
- * cause in curent release mixed tenancy is not in use in any project and it looks like
171
- * there is no short term plans to use it some way.
172
- */
173
- updateContext: async (_id, _layer) => {
174
- return context;
175
- // const index = layersOrder.indexOf(context.cfg.layer)
176
- // layer = layer ?? (layersOrder[index + 1] != null ? layersOrder[index + 1] : undefined)
177
- // if (layer == null) {
178
- // throw new SyntaxError("There is no next layer to switch to")
179
- // }
180
- // if ([Layer.Entity, Layer.User].includes(layer) && id == null) {
181
- // throw new SyntaxError(`Cannot switch to layer ${layer} without id`)
182
- // }
183
- // id = initializeLayer(resources, layer, id)
184
- // // Cache initalized context layers
185
- // const key = `${layer}:${id}`
186
- // if (key in contexts) {
187
- // return contexts[key] as T
188
- // }
189
- // const _config: C = JSON.parse(JSON.stringify(context.cfg))
190
- // _config.layer = layer
191
- // _config.ready = false
192
- // _config.layerId = id
193
- // // @TODO we need to make a rule to store all makeContext methods after they are applied
194
- // const _context = context.makeContext != null ? context.makeContext(_config) : makeBasicContext(_config)
195
- // Object.values(middlewares).flatMap(middlewares => middlewares)
196
- // .forEach(middleware => _context.registerMiddleware(middleware))
197
- // await applyMiddlewares<C, BasicContext<C>>(_context, middlewares, MiddlewareType.Config, MiddlewareStage.Switching, { layer, id })
198
- // Object.values(allServices).forEach(service => _context.registerService(service))
199
- // Object.values(allEntrypoints).forEach(ep => _context.registerEntrypoint(ep))
200
- // Object.values(allResources).forEach(resource => _context.registerResource(resource))
201
- // await applyMiddlewares<C, BasicContext<C>>(_context, middlewares, MiddlewareType.Context, MiddlewareStage.Switching, { layer, id })
202
- // _context.stage = ContextStage.Loading
203
- // await _context.configure().init()
204
- // return (contexts[key] = _context) as T
205
- },
206
- hasResource: alias => allResources[alias] != null,
207
- hasService: alias => allServices[alias] != null,
208
- hasEntrypoint: alias => allEntrypoints[alias] != null,
209
- /** @deprecated use hasEntrypoint */
210
- hasModule: alias => context.hasEntrypoint(alias),
124
+ entrypoints: () => Object.values(entrypoints),
125
+ hasResource: alias => resources[alias] != null,
126
+ hasService: alias => services[alias] != null,
127
+ hasEntrypoint: alias => entrypoints[alias] != null,
211
128
  };
212
129
  return context;
213
130
  };
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
package/build/helper.d.ts CHANGED
@@ -4,5 +4,4 @@ export declare const appendContextual: <T extends Contextual>(alias: string, con
4
4
  * @throws {SyntaxError}
5
5
  */
6
6
  export declare const assertContext: <C extends BasicConfig, T extends BasicContext<C>>(ctx: T | BasicContext<BasicConfig> | undefined, location?: string) => T;
7
- export declare const isContextWithoutIds: <C extends BasicConfig, T extends BasicContext<C>>(context: T) => boolean;
8
7
  //# sourceMappingURL=helper.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"helper.d.ts","sourceRoot":"","sources":["../src/helper.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAEvE,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,UAAU,SAAS,MAAM,cAAc,OAAO,CAAC,CAAC,CAAC,KAAG,CAsB9F,CAAA;AAMD;;GAEG;AACH,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,WAAW,EAAE,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC,WAAW,CAAC,GAAG,SAAS,aAAa,MAAM,KAAG,CAKnJ,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAI,CAAC,SAAS,WAAW,EAAE,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,KAAG,OAC1B,CAAA"}
1
+ {"version":3,"file":"helper.d.ts","sourceRoot":"","sources":["../src/helper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAEvE,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,UAAU,SAAS,MAAM,cAAc,OAAO,CAAC,CAAC,CAAC,KAAG,CAgB9F,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,WAAW,EAAE,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC,WAAW,CAAC,GAAG,SAAS,aAAa,MAAM,KAAG,CAKnJ,CAAA"}
package/build/helper.js CHANGED
@@ -1,23 +1,15 @@
1
- import { Layer } from './consts.js';
2
1
  export const appendContextual = (alias, contextual) => {
3
2
  contextual.alias = alias;
4
3
  contextual.registerContext = (context) => {
5
- const _contextual = contextual.ctx == null
6
- ? contextual
7
- : contextual.reinitializeContext != null
8
- ? contextual.reinitializeContext(context) : contextual;
9
- // We do NOT update context when it's the same contextual with already set context
10
- // Actuall we just do not need to switch context in many on the level of context consumer
11
- if (_contextual.ctx == null) {
12
- _contextual.ctx = context;
4
+ // A contextual binds to exactly one context — the first one that registers it.
5
+ if (contextual.ctx == null) {
6
+ contextual.ctx = context;
13
7
  }
14
- return _contextual;
8
+ return contextual;
15
9
  };
16
10
  contextual.assertCtx = (location => assertContext(contextual.ctx, location ?? contextual.alias));
17
11
  return contextual;
18
12
  };
19
- // export type UpdContextType<C extends Config, T extends Context<C>, ExtraType> = T & ExtraType
20
- // export type UpdConfigType<T extends Config, ExtraType> = T & ExtraType
21
13
  /**
22
14
  * @throws {SyntaxError}
23
15
  */
@@ -27,5 +19,4 @@ export const assertContext = (ctx, location) => {
27
19
  }
28
20
  return ctx;
29
21
  };
30
- export const isContextWithoutIds = (context) => [Layer.System, Layer.Global, Layer.Service].includes(context.cfg.layer);
31
22
  //# sourceMappingURL=helper.js.map