@nmtjs/contract 0.15.0-beta.5 → 0.15.0-beta.51

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/README.md CHANGED
@@ -6,4 +6,34 @@
6
6
  - binary data streaming and event subscriptions
7
7
  - contract-based API
8
8
  - end-to-end type safety
9
- - CPU-intensive task execution on separate workers
9
+ - CPU-intensive task execution on separate workers
10
+
11
+ ## Jobs E2E (Local Docker)
12
+
13
+ Prerequisites:
14
+ - Docker Desktop (or Docker Engine) with `docker compose` available
15
+
16
+ No host ports are exposed in this setup. Tests run fully inside Docker containers.
17
+ The test image is optimized for Docker layer caching with `pnpm fetch` + offline install.
18
+
19
+ Run both backends with one command:
20
+
21
+ ```bash
22
+ pnpm run test:e2e:jobs:docker
23
+ ```
24
+
25
+ This command rebuilds the test image on each run and executes Redis + Valkey suites in one pass.
26
+
27
+ Run Jobs E2E directly in Docker:
28
+
29
+ ```bash
30
+ docker compose -f docker-compose.jobs-e2e.yml run --rm --build test-jobs
31
+ ```
32
+
33
+ Manual Docker control:
34
+
35
+ ```bash
36
+ docker compose -f docker-compose.jobs-e2e.yml up -d --wait redis valkey
37
+ docker compose -f docker-compose.jobs-e2e.yml run --rm --build test-jobs
38
+ docker compose -f docker-compose.jobs-e2e.yml down -v --remove-orphans
39
+ ```
package/dist/index.d.ts CHANGED
@@ -4,36 +4,36 @@ export * from './schemas/router.ts';
4
4
  export * from './schemas/subscription.ts';
5
5
  export declare namespace contract {
6
6
  const procedure: <const Options extends {
7
- input?: import("@nmtjs/type").BaseType;
8
- output?: import("@nmtjs/type").BaseType;
7
+ input?: import("@nmtjs/type").BaseType<import("@nmtjs/type").SimpleZodType, import("@nmtjs/type").SimpleZodType, import("@nmtjs/type").TypeProps, import("@nmtjs/type").SimpleZodType, import("@nmtjs/type").SimpleZodType> | undefined;
8
+ output?: import("@nmtjs/type").BaseType<import("@nmtjs/type").SimpleZodType, import("@nmtjs/type").SimpleZodType, import("@nmtjs/type").TypeProps, import("@nmtjs/type").SimpleZodType, import("@nmtjs/type").SimpleZodType> | undefined;
9
9
  stream?: true | undefined;
10
- timeout?: number;
11
- schemaOptions?: import("./utils.ts").ContractSchemaOptions;
12
- name?: string;
13
- }>(options: Options) => import("./schemas/procedure.ts").TProcedureContract<Options["input"] extends import("@nmtjs/type").BaseType ? Options["input"] : import("@nmtjs/type/never").NeverType, Options["output"] extends import("@nmtjs/type").BaseType ? Options["output"] : import("@nmtjs/type/never").NeverType, Options["stream"] extends true ? true : undefined, Options["name"] extends string ? Options["name"] : undefined>;
14
- const event: <Payload extends import("@nmtjs/type").BaseType, Name extends string | undefined = undefined, Options extends import("./schemas/subscription.ts").SubcriptionOptions | undefined = undefined>(options?: {
15
- payload?: Payload;
16
- schemaOptions?: import("./utils.ts").ContractSchemaOptions;
17
- name?: Name;
18
- }) => import("./schemas/event.ts").TEventContract<Payload, Name, Options>;
10
+ timeout?: number | undefined;
11
+ schemaOptions?: import("./utils.ts").ContractSchemaOptions | undefined;
12
+ name?: string | undefined;
13
+ }>(options: Options) => import("./schemas/procedure.ts").TProcedureContract<Options["input"] extends import("@nmtjs/type").BaseType<import("@nmtjs/type").SimpleZodType, import("@nmtjs/type").SimpleZodType, import("@nmtjs/type").TypeProps, import("@nmtjs/type").SimpleZodType, import("@nmtjs/type").SimpleZodType> ? Options["input"] : import("@nmtjs/type/never").NeverType, Options["output"] extends import("@nmtjs/type").BaseType<import("@nmtjs/type").SimpleZodType, import("@nmtjs/type").SimpleZodType, import("@nmtjs/type").TypeProps, import("@nmtjs/type").SimpleZodType, import("@nmtjs/type").SimpleZodType> ? Options["output"] : import("@nmtjs/type/never").NeverType, Options["stream"] extends true ? true : undefined, Options["name"] extends string ? Options["name"] : undefined>;
14
+ const event: <Payload extends import("@nmtjs/type").BaseType<import("@nmtjs/type").SimpleZodType, import("@nmtjs/type").SimpleZodType, import("@nmtjs/type").TypeProps, import("@nmtjs/type").SimpleZodType, import("@nmtjs/type").SimpleZodType>, Name extends string | undefined = undefined, Options extends import("./schemas/subscription.ts").SubcriptionOptions | undefined = undefined>(options?: {
15
+ payload?: Payload | undefined;
16
+ schemaOptions?: import("./utils.ts").ContractSchemaOptions | undefined;
17
+ name?: Name | undefined;
18
+ } | undefined) => import("./schemas/event.ts").TEventContract<Payload, Name, Options>;
19
19
  const subscription: (<const Options extends {
20
20
  events: Record<string, import("./schemas/event.ts").TAnyEventContract>;
21
- name?: string;
22
- schemaOptions?: import("./utils.ts").ContractSchemaOptions;
21
+ name?: string | undefined;
22
+ schemaOptions?: import("./utils.ts").ContractSchemaOptions | undefined;
23
23
  }, SubOpt extends import("./schemas/subscription.ts").SubcriptionOptions = null>(options: Options) => import("./schemas/subscription.ts").TSubscriptionContract<SubOpt, Options["events"], Options["name"]>) & {
24
24
  withOptions: <Options extends import("./schemas/subscription.ts").SubcriptionOptions>() => <T extends {
25
25
  events: Record<string, import("./schemas/event.ts").TAnyEventContract>;
26
- name?: string;
27
- schemaOptions?: import("./utils.ts").ContractSchemaOptions;
26
+ name?: string | undefined;
27
+ schemaOptions?: import("./utils.ts").ContractSchemaOptions | undefined;
28
28
  }>(options: T) => import("./schemas/subscription.ts").TSubscriptionContract<Options, T["events"], T["name"]>;
29
29
  };
30
30
  const router: <const Options extends {
31
31
  routes: Record<string, import("./schemas/router.ts").TRouteContract>;
32
- name?: string;
33
- timeout?: number;
34
- schemaOptions?: import("./utils.ts").ContractSchemaOptions;
32
+ name?: string | undefined;
33
+ timeout?: number | undefined;
34
+ schemaOptions?: import("./utils.ts").ContractSchemaOptions | undefined;
35
35
  }>(options: Options) => import("./schemas/router.ts").TRouterContract<Options["routes"], Options["name"] extends string ? Options["name"] : undefined>;
36
- const blob: (options?: import("./types/blob.ts").BlobOptions) => import("@nmtjs/type/custom").CustomType<import("@nmtjs/protocol").ProtocolBlobInterface>;
36
+ const blob: (options?: import("./types/blob.ts").BlobOptions) => import("@nmtjs/type/custom").CustomType<import("@nmtjs/protocol").ProtocolBlobInterface, import("zod/mini").ZodMiniType<import("@nmtjs/protocol").ProtocolBlobInterface, import("@nmtjs/protocol").ProtocolBlobInterface, import("zod/v4/core").$ZodTypeInternals<import("@nmtjs/protocol").ProtocolBlobInterface, import("@nmtjs/protocol").ProtocolBlobInterface>>, import("zod/mini").ZodMiniType<import("@nmtjs/protocol").ProtocolBlobInterface, import("@nmtjs/protocol").ProtocolBlobInterface, import("zod/v4/core").$ZodTypeInternals<import("@nmtjs/protocol").ProtocolBlobInterface, import("@nmtjs/protocol").ProtocolBlobInterface>>>;
37
37
  }
38
38
  export { contract as c };
39
39
  export default contract;
package/dist/index.js CHANGED
@@ -1,13 +1,14 @@
1
- import { EventContract } from "./schemas/event.js";
2
- import { ProcedureContract } from "./schemas/procedure.js";
3
- import { RouterContract } from "./schemas/router.js";
4
- import { SubscriptionContract } from "./schemas/subscription.js";
5
- import { BlobType } from "./types/blob.js";
6
- export * from "./schemas/event.js";
7
- export * from "./schemas/procedure.js";
8
- export * from "./schemas/router.js";
9
- export * from "./schemas/subscription.js";
10
- export var contract;
1
+ import { EventContract } from './schemas/event.js';
2
+ import { ProcedureContract } from './schemas/procedure.js';
3
+ import { RouterContract } from './schemas/router.js';
4
+ import { SubscriptionContract } from './schemas/subscription.js';
5
+ import { BlobType } from './types/blob.js';
6
+ export * from './schemas/event.js';
7
+ export * from './schemas/procedure.js';
8
+ export * from './schemas/router.js';
9
+ export * from './schemas/subscription.js';
10
+ export { contract };
11
+ var contract;
11
12
  (function (contract) {
12
13
  contract.procedure = ProcedureContract;
13
14
  contract.event = EventContract;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAE1C,cAAc,oBAAoB,CAAA;AAClC,cAAc,wBAAwB,CAAA;AACtC,cAAc,qBAAqB,CAAA;AACnC,cAAc,2BAA2B,CAAA;AAEzC,MAAM,KAAW,QAAQ,CAMxB;AAND,WAAiB,QAAQ;IACV,kBAAS,GAAG,iBAAiB,CAAA;IAC7B,cAAK,GAAG,aAAa,CAAA;IACrB,qBAAY,GAAG,oBAAoB,CAAA;IACnC,eAAM,GAAG,cAAc,CAAA;IACvB,aAAI,GAAG,QAAQ,CAAA;AAC9B,CAAC,EANgB,QAAQ,KAAR,QAAQ,QAMxB;AAED,OAAO,EAAE,QAAQ,IAAI,CAAC,EAAE,CAAA;AAExB,eAAe,QAAQ,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAE1C,cAAc,oBAAoB,CAAA;AAClC,cAAc,wBAAwB,CAAA;AACtC,cAAc,qBAAqB,CAAA;AACnC,cAAc,2BAA2B,CAAA;SAExB,QAAQ;AAAzB,IAAiB,QAMhB;AAND,WAAiB,QAAQ,EAAC;IACX,kBAAS,GAAG,iBAAiB,CAAA;IAC7B,cAAK,GAAG,aAAa,CAAA;IACrB,qBAAY,GAAG,oBAAoB,CAAA;IACnC,eAAM,GAAG,cAAc,CAAA;IACvB,aAAI,GAAG,QAAQ,CAAA;AAAA,CAC7B,EANgB,QAAQ,KAAR,QAAQ,QAMxB;AAED,OAAO,EAAE,QAAQ,IAAI,CAAC,EAAE,CAAA;AAExB,eAAe,QAAQ,CAAA"}
@@ -12,9 +12,9 @@ export interface TEventContract<Payload extends BaseType = t.NeverType, Name ext
12
12
  readonly payload: Payload;
13
13
  readonly options: Options;
14
14
  }
15
- export declare const EventContract: <Payload extends BaseType, Name extends string | undefined = undefined, Options extends SubcriptionOptions | undefined = undefined>(options?: {
16
- payload?: Payload;
17
- schemaOptions?: ContractSchemaOptions;
18
- name?: Name;
19
- }) => TEventContract<Payload, Name, Options>;
15
+ export declare const EventContract: <Payload extends BaseType<import("@nmtjs/type").SimpleZodType, import("@nmtjs/type").SimpleZodType, import("@nmtjs/type").TypeProps, import("@nmtjs/type").SimpleZodType, import("@nmtjs/type").SimpleZodType>, Name extends string | undefined = undefined, Options extends SubcriptionOptions | undefined = undefined>(options?: {
16
+ payload?: Payload | undefined;
17
+ schemaOptions?: ContractSchemaOptions | undefined;
18
+ name?: Name | undefined;
19
+ } | undefined) => TEventContract<Payload, Name, Options>;
20
20
  export declare function IsEventContract(value: any): value is TAnyEventContract;
@@ -1,6 +1,6 @@
1
1
  import { t } from '@nmtjs/type';
2
- import { Kind } from "../constants.js";
3
- import { createSchema } from "../utils.js";
2
+ import { Kind } from '../constants.js';
3
+ import { createSchema } from '../utils.js';
4
4
  export const EventKind = Symbol('NeemataEvent');
5
5
  export const EventContract = (options) => {
6
6
  const { payload = t.never(), schemaOptions = {}, name = undefined, } = options ?? {};
@@ -1 +1 @@
1
- {"version":3,"file":"event.js","sourceRoot":"","sources":["../../src/schemas/event.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,aAAa,CAAA;AAI/B,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1C,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,CAAA;AAoB/C,MAAM,CAAC,MAAM,aAAa,GAAG,CAI3B,OAID,EAAE,EAAE;IACH,MAAM,EACJ,OAAO,GAAG,CAAC,CAAC,KAAK,EAAwB,EACzC,aAAa,GAAG,EAAE,EAClB,IAAI,GAAG,SAAgB,GACxB,GAAG,OAAO,IAAI,EAAE,CAAA;IACjB,OAAO,YAAY,CAAyC;QAC1D,GAAG,aAAa;QAChB,CAAC,IAAI,CAAC,EAAE,SAAS;QACjB,IAAI,EAAE,eAAe;QACrB,OAAO;QACP,IAAI;QACJ,OAAO,EAAE,SAAoB;KAC9B,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,MAAM,UAAU,eAAe,CAAC,KAAU;IACxC,OAAO,IAAI,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,SAAS,CAAA;AACnD,CAAC"}
1
+ {"version":3,"file":"event.js","sourceRoot":"","sources":["../../src/schemas/event.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,aAAa,CAAA;AAI/B,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1C,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,CAAA;AAoB/C,MAAM,CAAC,MAAM,aAAa,GAAG,CAI3B,OAID,EAAE,EAAE,CAAC;IACJ,MAAM,EACJ,OAAO,GAAG,CAAC,CAAC,KAAK,EAAwB,EACzC,aAAa,GAAG,EAAE,EAClB,IAAI,GAAG,SAAgB,GACxB,GAAG,OAAO,IAAI,EAAE,CAAA;IACjB,OAAO,YAAY,CAAyC;QAC1D,GAAG,aAAa;QAChB,CAAC,IAAI,CAAC,EAAE,SAAS;QACjB,IAAI,EAAE,eAAe;QACrB,OAAO;QACP,IAAI;QACJ,OAAO,EAAE,SAAoB;KAC9B,CAAC,CAAA;AAAA,CACH,CAAA;AAED,MAAM,UAAU,eAAe,CAAC,KAAU,EAA8B;IACtE,OAAO,IAAI,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,SAAS,CAAA;AAAA,CAClD"}
@@ -14,12 +14,12 @@ export interface TProcedureContract<Input extends BaseType, Output extends BaseT
14
14
  readonly timeout?: number;
15
15
  }
16
16
  export declare const ProcedureContract: <const Options extends {
17
- input?: BaseType;
18
- output?: BaseType;
17
+ input?: BaseType<import("@nmtjs/type").SimpleZodType, import("@nmtjs/type").SimpleZodType, import("@nmtjs/type").TypeProps, import("@nmtjs/type").SimpleZodType, import("@nmtjs/type").SimpleZodType> | undefined;
18
+ output?: BaseType<import("@nmtjs/type").SimpleZodType, import("@nmtjs/type").SimpleZodType, import("@nmtjs/type").TypeProps, import("@nmtjs/type").SimpleZodType, import("@nmtjs/type").SimpleZodType> | undefined;
19
19
  stream?: true | undefined;
20
- timeout?: number;
21
- schemaOptions?: ContractSchemaOptions;
22
- name?: string;
23
- }>(options: Options) => TProcedureContract<Options["input"] extends BaseType ? Options["input"] : NeverType, Options["output"] extends BaseType ? Options["output"] : NeverType, Options["stream"] extends true ? true : undefined, Options["name"] extends string ? Options["name"] : undefined>;
20
+ timeout?: number | undefined;
21
+ schemaOptions?: ContractSchemaOptions | undefined;
22
+ name?: string | undefined;
23
+ }>(options: Options) => TProcedureContract<Options["input"] extends BaseType<import("@nmtjs/type").SimpleZodType, import("@nmtjs/type").SimpleZodType, import("@nmtjs/type").TypeProps, import("@nmtjs/type").SimpleZodType, import("@nmtjs/type").SimpleZodType> ? Options["input"] : NeverType, Options["output"] extends BaseType<import("@nmtjs/type").SimpleZodType, import("@nmtjs/type").SimpleZodType, import("@nmtjs/type").TypeProps, import("@nmtjs/type").SimpleZodType, import("@nmtjs/type").SimpleZodType> ? Options["output"] : NeverType, Options["stream"] extends true ? true : undefined, Options["name"] extends string ? Options["name"] : undefined>;
24
24
  export declare function IsProcedureContract(contract: any): contract is TAnyProcedureContract;
25
25
  export declare function IsStreamProcedureContract(contract: any): contract is TAnyProcedureContract;
@@ -1,6 +1,6 @@
1
1
  import { t } from '@nmtjs/type';
2
- import { Kind } from "../constants.js";
3
- import { createSchema } from "../utils.js";
2
+ import { Kind } from '../constants.js';
3
+ import { createSchema } from '../utils.js';
4
4
  export const ProcedureKind = Symbol('NeemataProcedure');
5
5
  export const ProcedureContract = (options) => {
6
6
  const { input = t.never(), output = t.never(), stream = undefined, name = undefined, timeout, schemaOptions = {}, } = options;
@@ -1 +1 @@
1
- {"version":3,"file":"procedure.js","sourceRoot":"","sources":["../../src/schemas/procedure.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,aAAa,CAAA;AAG/B,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAS1C,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAA;AAiBvD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAU/B,OAAgB,EAMhB,EAAE;IACF,MAAM,EACJ,KAAK,GAAG,CAAC,CAAC,KAAK,EAAS,EACxB,MAAM,GAAG,CAAC,CAAC,KAAK,EAAS,EACzB,MAAM,GAAG,SAAgB,EACzB,IAAI,GAAG,SAAgB,EACvB,OAAO,EACP,aAAa,GAAG,EAAE,GACnB,GAAG,OAAO,CAAA;IACX,OAAO,YAAY,CAAC;QAClB,GAAG,aAAa;QAChB,CAAC,IAAI,CAAC,EAAE,aAAa;QACrB,IAAI,EAAE,mBAAmB;QACzB,KAAK;QACL,MAAM;QACN,MAAM;QACN,IAAI;QACJ,OAAO;KACR,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,MAAM,UAAU,mBAAmB,CACjC,QAAa;IAEb,OAAO,IAAI,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,aAAa,CAAA;AAC7D,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,QAAa;IAEb,OAAO,mBAAmB,CAAC,QAAQ,CAAC,IAAI,OAAO,QAAQ,CAAC,MAAM,KAAK,WAAW,CAAA;AAChF,CAAC"}
1
+ {"version":3,"file":"procedure.js","sourceRoot":"","sources":["../../src/schemas/procedure.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,aAAa,CAAA;AAG/B,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAS1C,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAA;AAiBvD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAU/B,OAAgB,EAMhB,EAAE,CAAC;IACH,MAAM,EACJ,KAAK,GAAG,CAAC,CAAC,KAAK,EAAS,EACxB,MAAM,GAAG,CAAC,CAAC,KAAK,EAAS,EACzB,MAAM,GAAG,SAAgB,EACzB,IAAI,GAAG,SAAgB,EACvB,OAAO,EACP,aAAa,GAAG,EAAE,GACnB,GAAG,OAAO,CAAA;IACX,OAAO,YAAY,CAAC;QAClB,GAAG,aAAa;QAChB,CAAC,IAAI,CAAC,EAAE,aAAa;QACrB,IAAI,EAAE,mBAAmB;QACzB,KAAK;QACL,MAAM;QACN,MAAM;QACN,IAAI;QACJ,OAAO;KACR,CAAC,CAAA;AAAA,CACH,CAAA;AAED,MAAM,UAAU,mBAAmB,CACjC,QAAa,EACsB;IACnC,OAAO,IAAI,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,aAAa,CAAA;AAAA,CAC5D;AAED,MAAM,UAAU,yBAAyB,CACvC,QAAa,EACsB;IACnC,OAAO,mBAAmB,CAAC,QAAQ,CAAC,IAAI,OAAO,QAAQ,CAAC,MAAM,KAAK,WAAW,CAAA;AAAA,CAC/E"}
@@ -8,6 +8,7 @@ export interface TRouterContract<Routes extends Record<string, TRouteContract> =
8
8
  readonly [Kind]: typeof RouterKind;
9
9
  readonly type: 'neemata:router';
10
10
  readonly name: Name;
11
+ readonly default?: TProcedureContract<any, any, true | undefined, string | undefined>;
11
12
  readonly routes: {
12
13
  [K in keyof Routes]: Routes[K] extends TAnyRouterContract ? TRouterContract<Routes[K]['routes'], Name extends string ? `${Name}/${Extract<K, string>}` : Extract<K, string>> : Routes[K] extends TAnyProcedureContract ? TProcedureContract<Routes[K]['input'], Routes[K]['output'], Routes[K]['stream'], Name extends string ? `${Name}/${Extract<K, string>}` : Extract<K, string>> : never;
13
14
  };
@@ -15,8 +16,8 @@ export interface TRouterContract<Routes extends Record<string, TRouteContract> =
15
16
  }
16
17
  export declare const RouterContract: <const Options extends {
17
18
  routes: Record<string, TRouteContract>;
18
- name?: string;
19
- timeout?: number;
20
- schemaOptions?: ContractSchemaOptions;
19
+ name?: string | undefined;
20
+ timeout?: number | undefined;
21
+ schemaOptions?: ContractSchemaOptions | undefined;
21
22
  }>(options: Options) => TRouterContract<Options["routes"], Options["name"] extends string ? Options["name"] : undefined>;
22
23
  export declare function IsRouterContract(value: any): value is TAnyRouterContract;
@@ -1,6 +1,6 @@
1
- import { Kind } from "../constants.js";
2
- import { concatFullName, createSchema } from "../utils.js";
3
- import { IsProcedureContract } from "./procedure.js";
1
+ import { Kind } from '../constants.js';
2
+ import { concatFullName, createSchema } from '../utils.js';
3
+ import { IsProcedureContract } from './procedure.js';
4
4
  export const RouterKind = Symbol('NeemataRouter');
5
5
  export const RouterContract = (options) => {
6
6
  const { name = undefined, timeout, schemaOptions = {}, } = options;
@@ -1 +1 @@
1
- {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/schemas/router.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AACtC,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AAEpD,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,eAAe,CAAC,CAAA;AA2CjD,MAAM,CAAC,MAAM,cAAc,GAAG,CAQ5B,OAAgB,EAChB,EAAE;IACF,MAAM,EACJ,IAAI,GAAG,SAAgB,EACvB,OAAO,EACP,aAAa,GAAG,EAA2B,GAC5C,GAAG,OAAO,CAAA;IAEX,MAAM,MAAM,GAAQ,mBAAmB,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IAE7D,OAAO,YAAY,CAKjB;QACA,GAAG,aAAa;QAChB,CAAC,IAAI,CAAC,EAAE,UAAU;QAClB,IAAI,EAAE,gBAAgB;QACtB,IAAI;QACJ,MAAM;QACN,OAAO;KACR,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,SAAS,mBAAmB,CAC1B,MAAkE,EAClE,UAA8B;IAE9B,MAAM,SAAS,GAAwB,EAAE,CAAA;IAEzC,KAAK,MAAM,SAAS,IAAI,MAAM,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAA;QAE/B,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5B,MAAM,UAAU,GAAG,cAAc,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;YACxD,SAAS,CAAC,SAAS,CAAC,GAAG,YAAY,CAAC;gBAClC,GAAG,KAAK;gBACR,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,mBAAmB,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC;aACtD,CAAC,CAAA;QACJ,CAAC;aAAM,IAAI,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;YACtC,MAAM,QAAQ,GAAG,cAAc,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;YACtD,SAAS,CAAC,SAAS,CAAC,GAAG,YAAY,CAAC,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;QACnE,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,0BAA0B,SAAS,EAAE,CAAC,CAAA;QACxD,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAU;IACzC,OAAO,IAAI,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,UAAU,CAAA;AACpD,CAAC"}
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/schemas/router.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AACtC,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AAEpD,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,eAAe,CAAC,CAAA;AAiDjD,MAAM,CAAC,MAAM,cAAc,GAAG,CAQ5B,OAAgB,EAChB,EAAE,CAAC;IACH,MAAM,EACJ,IAAI,GAAG,SAAgB,EACvB,OAAO,EACP,aAAa,GAAG,EAA2B,GAC5C,GAAG,OAAO,CAAA;IAEX,MAAM,MAAM,GAAQ,mBAAmB,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IAE7D,OAAO,YAAY,CAKjB;QACA,GAAG,aAAa;QAChB,CAAC,IAAI,CAAC,EAAE,UAAU;QAClB,IAAI,EAAE,gBAAgB;QACtB,IAAI;QACJ,MAAM;QACN,OAAO;KACR,CAAC,CAAA;AAAA,CACH,CAAA;AAED,SAAS,mBAAmB,CAC1B,MAAkE,EAClE,UAA8B,EAC8B;IAC5D,MAAM,SAAS,GAAwB,EAAE,CAAA;IAEzC,KAAK,MAAM,SAAS,IAAI,MAAM,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAA;QAE/B,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5B,MAAM,UAAU,GAAG,cAAc,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;YACxD,SAAS,CAAC,SAAS,CAAC,GAAG,YAAY,CAAC;gBAClC,GAAG,KAAK;gBACR,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,mBAAmB,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC;aACtD,CAAC,CAAA;QACJ,CAAC;aAAM,IAAI,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;YACtC,MAAM,QAAQ,GAAG,cAAc,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;YACtD,SAAS,CAAC,SAAS,CAAC,GAAG,YAAY,CAAC,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;QACnE,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,0BAA0B,SAAS,EAAE,CAAC,CAAA;QACxD,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAA;AAAA,CACjB;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAU,EAA+B;IACxE,OAAO,IAAI,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,UAAU,CAAA;AAAA,CACnD"}
@@ -15,13 +15,13 @@ export interface TSubscriptionContract<Options extends SubcriptionOptions = null
15
15
  }
16
16
  export declare const SubscriptionContract: (<const Options extends {
17
17
  events: Record<string, TAnyEventContract>;
18
- name?: string;
19
- schemaOptions?: ContractSchemaOptions;
18
+ name?: string | undefined;
19
+ schemaOptions?: ContractSchemaOptions | undefined;
20
20
  }, SubOpt extends SubcriptionOptions = null>(options: Options) => TSubscriptionContract<SubOpt, Options["events"], Options["name"]>) & {
21
21
  withOptions: <Options extends SubcriptionOptions>() => <T extends {
22
22
  events: Record<string, TAnyEventContract>;
23
- name?: string;
24
- schemaOptions?: ContractSchemaOptions;
23
+ name?: string | undefined;
24
+ schemaOptions?: ContractSchemaOptions | undefined;
25
25
  }>(options: T) => TSubscriptionContract<Options, T["events"], T["name"]>;
26
26
  };
27
27
  export declare function IsSubscriptionContract(contract: any): contract is TAnySubscriptionContract;
@@ -1,5 +1,5 @@
1
- import { Kind } from "../constants.js";
2
- import { concatFullName, createSchema } from "../utils.js";
1
+ import { Kind } from '../constants.js';
2
+ import { concatFullName, createSchema } from '../utils.js';
3
3
  export const SubscriptionKind = Symbol('NeemataSubscription');
4
4
  const _SubscriptionContract = (options) => {
5
5
  const { schemaOptions = {}, name } = options;
@@ -1 +1 @@
1
- {"version":3,"file":"subscription.js","sourceRoot":"","sources":["../../src/schemas/subscription.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AACtC,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1D,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAA;AAmC7D,MAAM,qBAAqB,GAAG,CAQ5B,OAAgB,EAChB,EAAE;IACF,MAAM,EAAE,aAAa,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,CAAA;IAC5C,MAAM,OAAO,GAAG,EAAS,CAAA;IACzB,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACjC,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QAC1C,OAAO,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;IAC3D,CAAC;IACD,OAAO,YAAY,CAEjB;QACA,GAAG,aAAa;QAChB,CAAC,IAAI,CAAC,EAAE,gBAAgB;QACxB,IAAI,EAAE,sBAAsB;QAC5B,MAAM,EAAE,OAAO;QACf,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,SAA8B;KACxC,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,CAAC,qBAAqB,EAAE;IACvE,WAAW,EAAE,GAAuC,EAAE;QACpD,OAAO,CAOL,OAAU,EACV,EAAE,CAAC,qBAAqB,CAAa,OAAO,CAAC,CAAA;IACjD,CAAC;CACF,CAAC,CAAA;AAEF,MAAM,UAAU,sBAAsB,CACpC,QAAa;IAEb,OAAO,IAAI,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,gBAAgB,CAAA;AAChE,CAAC"}
1
+ {"version":3,"file":"subscription.js","sourceRoot":"","sources":["../../src/schemas/subscription.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AACtC,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1D,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAA;AAmC7D,MAAM,qBAAqB,GAAG,CAQ5B,OAAgB,EAChB,EAAE,CAAC;IACH,MAAM,EAAE,aAAa,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,CAAA;IAC5C,MAAM,OAAO,GAAG,EAAS,CAAA;IACzB,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACjC,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QAC1C,OAAO,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;IAC3D,CAAC;IACD,OAAO,YAAY,CAEjB;QACA,GAAG,aAAa;QAChB,CAAC,IAAI,CAAC,EAAE,gBAAgB;QACxB,IAAI,EAAE,sBAAsB;QAC5B,MAAM,EAAE,OAAO;QACf,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,SAA8B;KACxC,CAAC,CAAA;AAAA,CACH,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,CAAC,qBAAqB,EAAE;IACvE,WAAW,EAAE,GAAuC,EAAE,CAAC;QACrD,OAAO,CAOL,OAAU,EACV,EAAE,CAAC,qBAAqB,CAAa,OAAO,CAAC,CAAA;IAAA,CAChD;CACF,CAAC,CAAA;AAEF,MAAM,UAAU,sBAAsB,CACpC,QAAa,EACyB;IACtC,OAAO,IAAI,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,gBAAgB,CAAA;AAAA,CAC/D"}
@@ -4,4 +4,4 @@ export interface BlobOptions {
4
4
  maxSize?: number;
5
5
  contentType?: string;
6
6
  }
7
- export declare const BlobType: (options?: BlobOptions) => CustomType<ProtocolBlobInterface>;
7
+ export declare const BlobType: (options?: BlobOptions) => CustomType<ProtocolBlobInterface, import("zod/mini").ZodMiniType<ProtocolBlobInterface, ProtocolBlobInterface, import("zod/v4/core").$ZodTypeInternals<ProtocolBlobInterface, ProtocolBlobInterface>>, import("zod/mini").ZodMiniType<ProtocolBlobInterface, ProtocolBlobInterface, import("zod/v4/core").$ZodTypeInternals<ProtocolBlobInterface, ProtocolBlobInterface>>>;
@@ -1 +1 @@
1
- {"version":3,"file":"blob.js","sourceRoot":"","sources":["../../src/types/blob.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAO/C,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,UAAuB,EAAE,EACU,EAAE,CACrC,UAAU,CAAC,OAAO,CAAC;IACjB,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK;IACxB,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK;IACxB,UAAU,EAAE;QACV,MAAM,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE;YACxB,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3B,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;oBACpB,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;oBAChC,IAAI,OAAO,IAAI,KAAK,WAAW,IAAI,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;wBAC1D,QAAQ,CAAC;4BACP,IAAI,EAAE,QAAQ;4BACd,OAAO,EAAE,wDAAwD,OAAO,CAAC,OAAO,QAAQ;yBACzF,CAAC,CAAA;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC;oBACP,IAAI,EAAE,QAAQ;oBACd,OAAO,EACL,wFAAwF;iBAC3F,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;QACD,MAAM,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE;YACxB,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC5B,QAAQ,CAAC;oBACP,IAAI,EAAE,QAAQ;oBACd,OAAO,EACL,wFAAwF;iBAC3F,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;KACF;CACF,CAAC,CAAA"}
1
+ {"version":3,"file":"blob.js","sourceRoot":"","sources":["../../src/types/blob.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAO/C,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,OAAO,GAAgB,EAAE,EACU,EAAE,CACrC,UAAU,CAAC,OAAO,CAAC;IACjB,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK;IACxB,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK;IACxB,UAAU,EAAE;QACV,MAAM,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE;YAC1B,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3B,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;oBACpB,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAA;oBAChC,IAAI,OAAO,IAAI,KAAK,WAAW,IAAI,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;wBAC1D,QAAQ,CAAC;4BACP,IAAI,EAAE,QAAQ;4BACd,OAAO,EAAE,wDAAwD,OAAO,CAAC,OAAO,QAAQ;yBACzF,CAAC,CAAA;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC;oBACP,IAAI,EAAE,QAAQ;oBACd,OAAO,EACL,wFAAwF;iBAC3F,CAAC,CAAA;YACJ,CAAC;QAAA,CACF;QACD,MAAM,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE;YAC1B,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC5B,QAAQ,CAAC;oBACP,IAAI,EAAE,QAAQ;oBACd,OAAO,EACL,wFAAwF;iBAC3F,CAAC,CAAA;YACJ,CAAC;QAAA,CACF;KACF;CACF,CAAC,CAAA"}
package/dist/utils.d.ts CHANGED
@@ -3,14 +3,14 @@ export type ContractSchemaOptions = {
3
3
  description?: string;
4
4
  };
5
5
  export declare const applyNames: <T extends Record<string, {
6
- serviceName?: string;
6
+ serviceName?: string | undefined;
7
7
  }>>(params: T, opts: {
8
- serviceName?: string;
9
- subscriptionName?: string;
8
+ serviceName?: string | undefined;
9
+ subscriptionName?: string | undefined;
10
10
  }) => {
11
11
  [k: string]: {
12
- serviceName?: string;
13
- subscriptionName?: string;
12
+ serviceName?: string | undefined;
13
+ subscriptionName?: string | undefined;
14
14
  name: string;
15
15
  };
16
16
  };
package/dist/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,MAAS,EACT,IAAyD,EACzD,EAAE;IACF,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CACxE,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,CAAI,MAAS,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAM,CAAA;AAExE,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAA0B,EAAE,IAAY,EAAE,EAAE;IACzE,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;AAC5C,CAAC,CAAA"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,MAAS,EACT,IAAyD,EACzD,EAAE,CAAC;IACH,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CACxE,CAAA;AAAA,CACF,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,CAAI,MAAS,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAM,CAAA;AAExE,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAA0B,EAAE,IAAY,EAAE,EAAE,CAAC;IAC1E,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;AAAA,CAC3C,CAAA"}
package/package.json CHANGED
@@ -1,15 +1,20 @@
1
1
  {
2
2
  "name": "@nmtjs/contract",
3
+ "description": "Type-safe API contract definitions for Neemata.",
3
4
  "type": "module",
4
5
  "exports": {
5
- ".": "./dist/index.js"
6
+ ".": {
7
+ "types": "./dist/index.d.ts",
8
+ "import": "./dist/index.js",
9
+ "module-sync": "./dist/index.js"
10
+ }
6
11
  },
7
12
  "dependencies": {
8
- "@nmtjs/protocol": "0.15.0-beta.5",
9
- "@nmtjs/type": "0.15.0-beta.5"
13
+ "@nmtjs/protocol": "0.15.0-beta.51",
14
+ "@nmtjs/type": "0.15.0-beta.51"
10
15
  },
11
16
  "devDependencies": {
12
- "zod": "^4.1.0"
17
+ "zod": "^4.3.5"
13
18
  },
14
19
  "files": [
15
20
  "dist",
@@ -17,11 +22,8 @@
17
22
  "LICENSE.md",
18
23
  "README.md"
19
24
  ],
20
- "version": "0.15.0-beta.5",
25
+ "version": "0.15.0-beta.51",
21
26
  "scripts": {
22
- "clean-build": "rm -rf ./dist",
23
- "build": "tsc --declaration --sourcemap",
24
- "dev": "tsc --watch",
25
- "type-check": "tsc --noEmit"
27
+ "clean-build": "rm -rf ./dist"
26
28
  }
27
29
  }
@@ -25,6 +25,12 @@ export interface TRouterContract<
25
25
  readonly [Kind]: typeof RouterKind
26
26
  readonly type: 'neemata:router'
27
27
  readonly name: Name
28
+ readonly default?: TProcedureContract<
29
+ any,
30
+ any,
31
+ true | undefined,
32
+ string | undefined
33
+ >
28
34
  readonly routes: {
29
35
  [K in keyof Routes]: Routes[K] extends TAnyRouterContract
30
36
  ? TRouterContract<