@dreamkit/app 0.0.7-next.1 → 0.0.7-next.2

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/lib/App.d.ts CHANGED
@@ -1,13 +1,14 @@
1
1
  import { Route } from "./builders/RouteBuilder.js";
2
2
  import { SettingsConstructor } from "./builders/SettingsBuilder.js";
3
+ import { AppContext } from "./contexts/AppContext.js";
4
+ import { RequestContext } from "./contexts/RequestContext.js";
3
5
  import { SettingsHandler, SettingsHandlerConstructor } from "./handlers/SettingsHandler.js";
4
6
  import { MiddlewareConstructor } from "./objects/middleware.js";
5
7
  import { AppService, ServiceConstructor } from "./objects/service.js";
6
- import { IocContext } from "@dreamkit/ioc";
7
8
  export declare class App {
8
9
  static instanceKey: string;
9
10
  readonly started = false;
10
- readonly context: IocContext;
11
+ readonly context: AppContext;
11
12
  readonly objects: Map<string, any>;
12
13
  readonly routes: Set<Route>;
13
14
  readonly services: Set<AppService>;
@@ -49,7 +50,7 @@ export declare class App {
49
50
  protected startService(item: AppService): Promise<void>;
50
51
  protected stopService(item: AppService): Promise<void>;
51
52
  add(input: Record<string, any> | any[]): Promise<void>;
52
- createRequestContext(request: Request): IocContext;
53
+ createRequestContext(request: Request): RequestContext;
53
54
  request(request: Request): Promise<Response | undefined>;
54
55
  protected initSettingsValue(constructor: SettingsConstructor): Promise<{
55
56
  [x: string]: any;
package/lib/App.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../src/App.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACnD,OAAO,EAAc,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,EAEL,eAAe,EACf,0BAA0B,EAC3B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAgB,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EACL,UAAU,EAEV,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAGL,UAAU,EAEX,MAAM,eAAe,CAAC;AAIvB,qBAAa,GAAG;IAId,MAAM,CAAC,WAAW,SAAY;IAC9B,QAAQ,CAAC,OAAO,SAAS;IACzB,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,OAAO,mBAA0B;IAC1C,QAAQ,CAAC,MAAM,aAAoB;IACnC,QAAQ,CAAC,QAAQ,kBAAyB;IAC1C,QAAQ,CAAC,WAAW,6BAAoC;IACxD,QAAQ,CAAC,QAAQ,iTAAkC;IAC5C,eAAe,EAAE,0BAA0B,GAAG,SAAS,CAAC;IAC/D,SAAS,CAAC,SAAS;wBACG;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,OAAO,CAAA;SAAE,KAAK,GAAG;2BACnC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,OAAO,CAAA;SAAE,KAAK,GAAG;2BAEpD;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,OAAO,CAAC;YAAC,MAAM,EAAE,KAAK,GAAG,QAAQ,CAAA;SAAE,KAAK,GAAG;MAEzE;;IAMF,MAAM,CAAC,QAAQ,IAAI,GAAG;IAKtB,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG;IAGjC,MAAM,CAAC,oBAAoB,IAAI,GAAG;IAKlC,EAAE,CACA,KAAK,EAAE,KAAK,GAAG,QAAQ,EACvB,EAAE,EAAE,CAAC,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,KAAK,GAAG,GAChD,IAAI;IACP,EAAE,CACA,KAAK,EAAE,QAAQ,EACf,EAAE,EAAE,CAAC,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,KAAK,GAAG,QAAQ,CAAA;KAAE,KAAK,GAAG,GAC1E,IAAI;IAKP,GAAG,CAAC,KAAK,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,EAAE,EAAE,EAAE,GAAG,GAAG,IAAI;IAItD,WAAW,CAAC,KAAK,EAAE,OAAO;IAMpB,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB1C,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,kBAAkB,GAAG,UAAU;cAiB7C,YAAY,CAAC,IAAI,EAAE,UAAU;cAU7B,WAAW,CAAC,IAAI,EAAE,UAAU;IAQtC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAuD5D,oBAAoB,CAAC,OAAO,EAAE,OAAO;IAS/B,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;cAU9C,iBAAiB,CAAC,WAAW,EAAE,mBAAmB;;;cAgBlD,mBAAmB;cAanB,gBAAgB,CAAC,WAAW,EAAE,mBAAmB;IAUjE,SAAS,CAAC,cAAc,CAAC,WAAW,EAAE,mBAAmB;IAKzD,SAAS,CAAC,gBAAgB,IAAI,eAAe,GAAG,SAAS;IAGnD,KAAK;IAOL,IAAI;CAkBX"}
1
+ {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../src/App.ts"],"names":[],"mappings":"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"}
package/lib/App.js CHANGED
@@ -1,12 +1,14 @@
1
1
  import { RequestUrl } from "./RequestUrl.js";
2
2
  import { isApi } from "./builders/ApiBuilder.js";
3
3
  import { isSettings } from "./builders/SettingsBuilder.js";
4
+ import { AppContext } from "./contexts/AppContext.js";
5
+ import { RequestContext } from "./contexts/RequestContext.js";
4
6
  import { isSettingsHandler, SettingsHandler, } from "./handlers/SettingsHandler.js";
5
7
  import { isMiddleware } from "./objects/middleware.js";
6
8
  import { isService, } from "./objects/service.js";
7
9
  import { isRoute, kindApp } from "./utils/kind.js";
8
10
  import { log } from "./utils/log.js";
9
- import { context, IocBaseClass, normalizeIocParams, } from "@dreamkit/ioc";
11
+ import { IocBaseClass, normalizeIocParams, } from "@dreamkit/ioc";
10
12
  import { getKinds, is } from "@dreamkit/kind";
11
13
  import { merge } from "@dreamkit/utils/object.js";
12
14
  export class App {
@@ -28,9 +30,10 @@ export class App {
28
30
  change: new Set(),
29
31
  };
30
32
  constructor() {
31
- this.context = context.fork().register(App, {
33
+ this.context = new AppContext().register(App, {
32
34
  value: this,
33
35
  });
36
+ this.context.register(AppContext, { value: this.context });
34
37
  }
35
38
  static instance() {
36
39
  const value = globalThis[App.instanceKey];
@@ -187,12 +190,16 @@ export class App {
187
190
  }
188
191
  }
189
192
  createRequestContext(request) {
190
- const url = new RequestUrl(request.url, "http://localhost");
191
- return this.context
192
- .fork()
193
+ const context = new RequestContext({
194
+ parentContainer: this.context,
195
+ });
196
+ return context
197
+ .register(RequestContext, { value: context })
193
198
  .register(Request, { value: request })
194
199
  .register(Headers, { value: request.headers })
195
- .register(RequestUrl, { value: url });
200
+ .register(RequestUrl, {
201
+ value: new RequestUrl(request.url, "http://localhost"),
202
+ });
196
203
  }
197
204
  async request(request) {
198
205
  const context = this.createRequestContext(request);
@@ -0,0 +1,4 @@
1
+ import { IocContext } from "@dreamkit/ioc";
2
+ export declare class AppContext extends IocContext {
3
+ }
4
+ //# sourceMappingURL=AppContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AppContext.d.ts","sourceRoot":"","sources":["../../src/contexts/AppContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,qBAAa,UAAW,SAAQ,UAAU;CAIzC"}
@@ -0,0 +1,7 @@
1
+ import { IocContext } from "@dreamkit/ioc";
2
+ import { kind } from "@dreamkit/kind";
3
+ export class AppContext extends IocContext {
4
+ static {
5
+ kind(this, "@dreamkit/app/AppContext");
6
+ }
7
+ }
@@ -0,0 +1,4 @@
1
+ import { IocContext } from "@dreamkit/ioc";
2
+ export declare class RequestContext extends IocContext {
3
+ }
4
+ //# sourceMappingURL=RequestContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RequestContext.d.ts","sourceRoot":"","sources":["../../src/contexts/RequestContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,qBAAa,cAAe,SAAQ,UAAU;CAI7C"}
@@ -0,0 +1,7 @@
1
+ import { IocContext } from "@dreamkit/ioc";
2
+ import { kind } from "@dreamkit/kind";
3
+ export class RequestContext extends IocContext {
4
+ static {
5
+ kind(this, "@dreamkit/app/RequestContext");
6
+ }
7
+ }
@@ -1,5 +1,6 @@
1
1
  import { InferSettingsParams, SettingsConstructor, SettingsData } from "../builders/SettingsBuilder.js";
2
- import { IocClass, IocContext } from "@dreamkit/ioc";
2
+ import { AppContext } from "../contexts/AppContext.js";
3
+ import { IocClass } from "@dreamkit/ioc";
3
4
  import { Constructor } from "@dreamkit/utils/ts.js";
4
5
  export declare const kindSettingsHandler: (input: object, name?: string) => void, isSettingsHandler: (input: unknown) => input is SettingsHandlerConstructor;
5
6
  export type SettingsHandlerConstructor = Constructor<SettingsHandler> & {
@@ -10,9 +11,9 @@ export type SettingsHandlerSaveResult = Record<string, {
10
11
  changed: boolean;
11
12
  }>;
12
13
  declare const SettingsHandler_base: IocClass<{
13
- IocContext: typeof IocContext;
14
+ AppContext: typeof AppContext;
14
15
  }, import("@dreamkit/ioc").IocBaseClass<import("@dreamkit/ioc").IocParamsUserConfig>, never, import("@dreamkit/ioc").IocParams<{
15
- IocContext: typeof IocContext;
16
+ AppContext: typeof AppContext;
16
17
  }>>;
17
18
  export declare abstract class SettingsHandler extends SettingsHandler_base {
18
19
  autoSave: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"SettingsHandler.d.ts","sourceRoot":"","sources":["../../src/handlers/SettingsHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,EACb,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAkB,QAAQ,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAErE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,eAAO,MAAO,mBAAmB,0CAAE,iBAAiB,yDACqB,CAAC;AAE1E,MAAM,MAAM,0BAA0B,GAAG,WAAW,CAAC,eAAe,CAAC,GAAG;IACtE,IAAI,EAAE,GAAG,CAAC;CACX,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG,MAAM,CAC5C,MAAM,EACN;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CACnC,CAAC;;;;;;AAEF,8BAAsB,eAAgB,SAAQ,oBAAwB;IAIpE,QAAQ,UAAQ;IAChB,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAM;IACzC,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,mBAAmB,CAAC,CAAa;IACzD,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,CAAM;IACjC,SAAS,CAAC,QAAQ,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACzD,SAAS,CAAC,QAAQ,CAAC,MAAM,IAAI,OAAO,CAAC,yBAAyB,CAAC;IACzD,IAAI;IAOJ,GAAG,CAAC,CAAC,SAAS,YAAY,EAC9B,WAAW,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAClC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;IAG5B,GAAG,CAAC,CAAC,SAAS,YAAY,EAC9B,WAAW,EAAE,mBAAmB,CAAC,CAAC,CAAC,EACnC,IAAI,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAC3B,OAAO,CAAC,IAAI,CAAC;IAmBV,IAAI,IAAI,OAAO,CAAC,yBAAyB,CAAC;cAMhC,OAAO,IAAI,OAAO,CAAC;QACjC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC;QACtC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC;KACvC,CAAC;CAYH;AAED,eAAO,MAAM,oBAAoB,gKAAkC,CAAC"}
1
+ {"version":3,"file":"SettingsHandler.d.ts","sourceRoot":"","sources":["../../src/handlers/SettingsHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,EACb,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAkB,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,eAAO,MAAO,mBAAmB,0CAAE,iBAAiB,yDACqB,CAAC;AAE1E,MAAM,MAAM,0BAA0B,GAAG,WAAW,CAAC,eAAe,CAAC,GAAG;IACtE,IAAI,EAAE,GAAG,CAAC;CACX,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG,MAAM,CAC5C,MAAM,EACN;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CACnC,CAAC;;;;;;AAEF,8BAAsB,eAAgB,SAAQ,oBAAwB;IAIpE,QAAQ,UAAQ;IAChB,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAM;IACzC,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,mBAAmB,CAAC,CAAa;IACzD,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,CAAM;IACjC,SAAS,CAAC,QAAQ,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACzD,SAAS,CAAC,QAAQ,CAAC,MAAM,IAAI,OAAO,CAAC,yBAAyB,CAAC;IACzD,IAAI;IAOJ,GAAG,CAAC,CAAC,SAAS,YAAY,EAC9B,WAAW,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAClC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;IAG5B,GAAG,CAAC,CAAC,SAAS,YAAY,EAC9B,WAAW,EAAE,mBAAmB,CAAC,CAAC,CAAC,EACnC,IAAI,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAC3B,OAAO,CAAC,IAAI,CAAC;IAgBV,IAAI,IAAI,OAAO,CAAC,yBAAyB,CAAC;cAMhC,OAAO,IAAI,OAAO,CAAC;QACjC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC;QACtC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC;KACvC,CAAC;CAYH;AAED,eAAO,MAAM,oBAAoB,gKAAkC,CAAC"}
@@ -1,7 +1,8 @@
1
- import { createIocClass, IocClass, IocContext } from "@dreamkit/ioc";
1
+ import { AppContext } from "../contexts/AppContext.js";
2
+ import { createIocClass, IocClass } from "@dreamkit/ioc";
2
3
  import { createKind } from "@dreamkit/kind";
3
4
  export const [kindSettingsHandler, isSettingsHandler] = createKind("@dreamkit/app/SettingsHandler");
4
- export class SettingsHandler extends IocClass({ IocContext }) {
5
+ export class SettingsHandler extends IocClass({ AppContext }) {
5
6
  static {
6
7
  kindSettingsHandler(this);
7
8
  }
@@ -13,32 +14,29 @@ export class SettingsHandler extends IocClass({ IocContext }) {
13
14
  this.data = await this.onLoad();
14
15
  for (const settings of this.settings) {
15
16
  const data = this.data[settings.options.name];
16
- this.iocContext.resolve(settings, { optional: true })?.update(data);
17
+ this.appContext.resolve(settings, { optional: true })?.update(data);
17
18
  }
18
19
  }
19
20
  async get(constructor) {
20
21
  return this.data[constructor.options.name];
21
22
  }
22
23
  async set(constructor, data) {
23
- const settingsInstance = this.iocContext.resolve(constructor, {
24
+ const settingsInstance = this.appContext.resolve(constructor, {
24
25
  optional: true,
25
26
  });
26
27
  if (settingsInstance) {
27
28
  settingsInstance.update(data);
28
29
  }
29
30
  else {
30
- this.iocContext.register(constructor, {
31
+ this.appContext.register(constructor, {
31
32
  value: new constructor(data),
32
33
  });
33
34
  }
34
- if (this.autoSave) {
35
+ const name = constructor.options.name;
36
+ this.data[name] = data;
37
+ this.pending.push(name);
38
+ if (this.autoSave)
35
39
  await this.onSave();
36
- }
37
- else {
38
- const name = constructor.options.name;
39
- this.data[name] = data;
40
- this.pending.push(name);
41
- }
42
40
  }
43
41
  async save() {
44
42
  this.autoSave = true;
package/lib/index.d.ts CHANGED
@@ -3,6 +3,8 @@ export { isRoute, isApp } from "./utils/kind.js";
3
3
  export { isApi } from "./builders/ApiBuilder.js";
4
4
  export { App } from "./App.js";
5
5
  export { defineRoutePath, routePath } from "./routePath.js";
6
+ export { AppContext } from "./contexts/AppContext.js";
7
+ export { RequestContext } from "./contexts/RequestContext.js";
6
8
  export { $api } from "./objects/$api.js";
7
9
  export { $route } from "./objects/$route.js";
8
10
  export { RouteBuilder, type RouteOptions, type Route, type RouteData, type RouteProps, } from "./builders/RouteBuilder.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACjD,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE5D,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EACL,YAAY,EACZ,KAAK,YAAY,EACjB,KAAK,KAAK,EACV,KAAK,SAAS,EACd,KAAK,UAAU,GAChB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EACL,QAAQ,EACR,eAAe,EACf,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,UAAU,GACX,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,UAAU,EACV,eAAe,EACf,YAAY,GACb,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,OAAO,EACP,YAAY,EACZ,KAAK,WAAW,EAChB,SAAS,GACV,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,KAAK,yBAAyB,GAC/B,MAAM,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACjD,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE5D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EACL,YAAY,EACZ,KAAK,YAAY,EACjB,KAAK,KAAK,EACV,KAAK,SAAS,EACd,KAAK,UAAU,GAChB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EACL,QAAQ,EACR,eAAe,EACf,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,UAAU,GACX,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,UAAU,EACV,eAAe,EACf,YAAY,GACb,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,OAAO,EACP,YAAY,EACZ,KAAK,WAAW,EAChB,SAAS,GACV,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,KAAK,yBAAyB,GAC/B,MAAM,+BAA+B,CAAC"}
package/lib/index.js CHANGED
@@ -3,6 +3,9 @@ export { isRoute, isApp } from "./utils/kind.js";
3
3
  export { isApi } from "./builders/ApiBuilder.js";
4
4
  export { App } from "./App.js";
5
5
  export { defineRoutePath, routePath } from "./routePath.js";
6
+ // contexts
7
+ export { AppContext } from "./contexts/AppContext.js";
8
+ export { RequestContext } from "./contexts/RequestContext.js";
6
9
  // objects
7
10
  export { $api } from "./objects/$api.js";
8
11
  export { $route } from "./objects/$route.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dreamkit/app",
3
- "version": "0.0.7-next.1",
3
+ "version": "0.0.7-next.2",
4
4
  "description": "Set of utils to create applications.",
5
5
  "homepage": "https://dreamkit.dev",
6
6
  "repository": {
@@ -27,8 +27,8 @@
27
27
  ],
28
28
  "dependencies": {
29
29
  "debug": "^4.3.7",
30
- "@dreamkit/func": "0.0.3-next.1",
31
- "@dreamkit/ioc": "0.0.2-next.0",
30
+ "@dreamkit/func": "0.0.3-next.2",
31
+ "@dreamkit/ioc": "0.0.2-next.1",
32
32
  "@dreamkit/kind": "0.0.2",
33
33
  "@dreamkit/schema": "0.0.5-next.0",
34
34
  "@dreamkit/utils": "0.0.5-next.0"