hexok 1.0.1 → 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/README.md +4 -26
- package/dist/adapter.d.ts +18 -0
- package/dist/adapter.d.ts.map +1 -0
- package/dist/adapter.js +21 -0
- package/dist/adapter.js.map +1 -0
- package/dist/catalog.d.ts +88 -0
- package/dist/catalog.d.ts.map +1 -0
- package/dist/catalog.js +79 -0
- package/dist/catalog.js.map +1 -0
- package/dist/{core/coded-error.d.ts → coded-error.d.ts} +9 -4
- package/dist/coded-error.d.ts.map +1 -0
- package/dist/{core/coded-error.js → coded-error.js} +9 -4
- package/dist/coded-error.js.map +1 -0
- package/dist/cow-draft.d.ts.map +1 -0
- package/dist/cow-draft.js.map +1 -0
- package/dist/entity.d.ts +63 -0
- package/dist/entity.d.ts.map +1 -0
- package/dist/{domain/entity.js → entity.js} +52 -80
- package/dist/entity.js.map +1 -0
- package/dist/error-map.d.ts +22 -0
- package/dist/error-map.d.ts.map +1 -0
- package/dist/error-map.js +2 -0
- package/dist/error-map.js.map +1 -0
- package/dist/errors.d.ts +85 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +85 -0
- package/dist/errors.js.map +1 -0
- package/dist/event-handler.d.ts +31 -0
- package/dist/event-handler.d.ts.map +1 -0
- package/dist/event-handler.js +28 -0
- package/dist/event-handler.js.map +1 -0
- package/dist/event.d.ts +37 -0
- package/dist/event.d.ts.map +1 -0
- package/dist/event.js +44 -0
- package/dist/event.js.map +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +14 -0
- package/dist/index.js.map +1 -0
- package/dist/mapper.d.ts +100 -0
- package/dist/mapper.d.ts.map +1 -0
- package/dist/mapper.js +167 -0
- package/dist/mapper.js.map +1 -0
- package/dist/port.d.ts +20 -0
- package/dist/port.d.ts.map +1 -0
- package/dist/port.js +25 -0
- package/dist/port.js.map +1 -0
- package/dist/result.d.ts.map +1 -0
- package/dist/result.js.map +1 -0
- package/dist/schema.d.ts +37 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/schema.js +50 -0
- package/dist/schema.js.map +1 -0
- package/dist/{core/standard-schema.d.ts → standard-schema.d.ts} +1 -1
- package/dist/standard-schema.d.ts.map +1 -0
- package/dist/standard-schema.js.map +1 -0
- package/dist/use-case.d.ts +183 -0
- package/dist/use-case.d.ts.map +1 -0
- package/dist/use-case.js +221 -0
- package/dist/use-case.js.map +1 -0
- package/dist/{core/schema.d.ts → validate.d.ts} +1 -1
- package/dist/validate.d.ts.map +1 -0
- package/dist/{core/schema.js → validate.js} +1 -1
- package/dist/validate.js.map +1 -0
- package/package.json +5 -25
- package/dist/app/callable-use-case.d.ts +0 -34
- package/dist/app/callable-use-case.d.ts.map +0 -1
- package/dist/app/callable-use-case.js +0 -41
- package/dist/app/callable-use-case.js.map +0 -1
- package/dist/app/contract.d.ts +0 -46
- package/dist/app/contract.d.ts.map +0 -1
- package/dist/app/contract.js +0 -28
- package/dist/app/contract.js.map +0 -1
- package/dist/app/error-factory.d.ts +0 -9
- package/dist/app/error-factory.d.ts.map +0 -1
- package/dist/app/error-factory.js +0 -30
- package/dist/app/error-factory.js.map +0 -1
- package/dist/app/event-channel.d.ts +0 -133
- package/dist/app/event-channel.d.ts.map +0 -1
- package/dist/app/event-channel.js +0 -49
- package/dist/app/event-channel.js.map +0 -1
- package/dist/app/event-use-case.d.ts +0 -47
- package/dist/app/event-use-case.d.ts.map +0 -1
- package/dist/app/event-use-case.js +0 -54
- package/dist/app/event-use-case.js.map +0 -1
- package/dist/app/execute-ctx.d.ts +0 -92
- package/dist/app/execute-ctx.d.ts.map +0 -1
- package/dist/app/execute-ctx.js +0 -2
- package/dist/app/execute-ctx.js.map +0 -1
- package/dist/app/external-use-case.d.ts +0 -25
- package/dist/app/external-use-case.d.ts.map +0 -1
- package/dist/app/external-use-case.js +0 -25
- package/dist/app/external-use-case.js.map +0 -1
- package/dist/app/index.d.ts +0 -9
- package/dist/app/index.d.ts.map +0 -1
- package/dist/app/index.js +0 -8
- package/dist/app/index.js.map +0 -1
- package/dist/app/internal-use-case.d.ts +0 -26
- package/dist/app/internal-use-case.d.ts.map +0 -1
- package/dist/app/internal-use-case.js +0 -26
- package/dist/app/internal-use-case.js.map +0 -1
- package/dist/app/nest.d.ts +0 -9
- package/dist/app/nest.d.ts.map +0 -1
- package/dist/app/nest.js +0 -28
- package/dist/app/nest.js.map +0 -1
- package/dist/app/types.d.ts +0 -153
- package/dist/app/types.d.ts.map +0 -1
- package/dist/app/types.js +0 -17
- package/dist/app/types.js.map +0 -1
- package/dist/core/coded-error.d.ts.map +0 -1
- package/dist/core/coded-error.js.map +0 -1
- package/dist/core/error-map.d.ts +0 -21
- package/dist/core/error-map.d.ts.map +0 -1
- package/dist/core/error-map.js +0 -5
- package/dist/core/error-map.js.map +0 -1
- package/dist/core/index.d.ts +0 -6
- package/dist/core/index.d.ts.map +0 -1
- package/dist/core/index.js +0 -5
- package/dist/core/index.js.map +0 -1
- package/dist/core/result.d.ts.map +0 -1
- package/dist/core/result.js.map +0 -1
- package/dist/core/schema.d.ts.map +0 -1
- package/dist/core/schema.js.map +0 -1
- package/dist/core/standard-schema.d.ts.map +0 -1
- package/dist/core/standard-schema.js.map +0 -1
- package/dist/domain/capabilities.d.ts +0 -42
- package/dist/domain/capabilities.d.ts.map +0 -1
- package/dist/domain/capabilities.js +0 -2
- package/dist/domain/capabilities.js.map +0 -1
- package/dist/domain/catalog.d.ts +0 -46
- package/dist/domain/catalog.d.ts.map +0 -1
- package/dist/domain/catalog.js +0 -114
- package/dist/domain/catalog.js.map +0 -1
- package/dist/domain/channel.d.ts +0 -36
- package/dist/domain/channel.d.ts.map +0 -1
- package/dist/domain/channel.js +0 -2
- package/dist/domain/channel.js.map +0 -1
- package/dist/domain/cow-draft.d.ts.map +0 -1
- package/dist/domain/cow-draft.js.map +0 -1
- package/dist/domain/entity.d.ts +0 -120
- package/dist/domain/entity.d.ts.map +0 -1
- package/dist/domain/entity.js.map +0 -1
- package/dist/domain/envelope.d.ts +0 -59
- package/dist/domain/envelope.d.ts.map +0 -1
- package/dist/domain/envelope.js +0 -2
- package/dist/domain/envelope.js.map +0 -1
- package/dist/domain/event.d.ts +0 -44
- package/dist/domain/event.d.ts.map +0 -1
- package/dist/domain/event.js +0 -21
- package/dist/domain/event.js.map +0 -1
- package/dist/domain/index.d.ts +0 -8
- package/dist/domain/index.d.ts.map +0 -1
- package/dist/domain/index.js +0 -5
- package/dist/domain/index.js.map +0 -1
- package/dist/domain/port.d.ts +0 -45
- package/dist/domain/port.d.ts.map +0 -1
- package/dist/domain/port.js +0 -41
- package/dist/domain/port.js.map +0 -1
- package/dist/infra/adapter.d.ts +0 -22
- package/dist/infra/adapter.d.ts.map +0 -1
- package/dist/infra/adapter.js +0 -18
- package/dist/infra/adapter.js.map +0 -1
- package/dist/infra/index.d.ts +0 -3
- package/dist/infra/index.d.ts.map +0 -1
- package/dist/infra/index.js +0 -3
- package/dist/infra/index.js.map +0 -1
- package/dist/infra/mapper.d.ts +0 -48
- package/dist/infra/mapper.d.ts.map +0 -1
- package/dist/infra/mapper.js +0 -77
- package/dist/infra/mapper.js.map +0 -1
- package/dist/runtime/app.d.ts +0 -100
- package/dist/runtime/app.d.ts.map +0 -1
- package/dist/runtime/app.js +0 -292
- package/dist/runtime/app.js.map +0 -1
- package/dist/runtime/channel.d.ts +0 -34
- package/dist/runtime/channel.d.ts.map +0 -1
- package/dist/runtime/channel.js +0 -110
- package/dist/runtime/channel.js.map +0 -1
- package/dist/runtime/client.d.ts +0 -21
- package/dist/runtime/client.d.ts.map +0 -1
- package/dist/runtime/client.js +0 -2
- package/dist/runtime/client.js.map +0 -1
- package/dist/runtime/completeness.d.ts +0 -89
- package/dist/runtime/completeness.d.ts.map +0 -1
- package/dist/runtime/completeness.js +0 -2
- package/dist/runtime/completeness.js.map +0 -1
- package/dist/runtime/envelope.d.ts +0 -7
- package/dist/runtime/envelope.d.ts.map +0 -1
- package/dist/runtime/envelope.js +0 -69
- package/dist/runtime/envelope.js.map +0 -1
- package/dist/runtime/events.d.ts +0 -6
- package/dist/runtime/events.d.ts.map +0 -1
- package/dist/runtime/events.js +0 -48
- package/dist/runtime/events.js.map +0 -1
- package/dist/runtime/http-status.d.ts +0 -3
- package/dist/runtime/http-status.d.ts.map +0 -1
- package/dist/runtime/http-status.js +0 -11
- package/dist/runtime/http-status.js.map +0 -1
- package/dist/runtime/http.d.ts +0 -4
- package/dist/runtime/http.d.ts.map +0 -1
- package/dist/runtime/http.js +0 -58
- package/dist/runtime/http.js.map +0 -1
- package/dist/runtime/index.d.ts +0 -10
- package/dist/runtime/index.d.ts.map +0 -1
- package/dist/runtime/index.js +0 -6
- package/dist/runtime/index.js.map +0 -1
- package/dist/runtime/interceptor.d.ts +0 -61
- package/dist/runtime/interceptor.d.ts.map +0 -1
- package/dist/runtime/interceptor.js +0 -7
- package/dist/runtime/interceptor.js.map +0 -1
- package/dist/runtime/invoke.d.ts +0 -34
- package/dist/runtime/invoke.d.ts.map +0 -1
- package/dist/runtime/invoke.js +0 -235
- package/dist/runtime/invoke.js.map +0 -1
- package/dist/runtime/middleware.d.ts +0 -20
- package/dist/runtime/middleware.d.ts.map +0 -1
- package/dist/runtime/middleware.js +0 -2
- package/dist/runtime/middleware.js.map +0 -1
- package/dist/runtime/rpc.d.ts +0 -24
- package/dist/runtime/rpc.d.ts.map +0 -1
- package/dist/runtime/rpc.js +0 -16
- package/dist/runtime/rpc.js.map +0 -1
- package/dist/testing/app-test.d.ts +0 -77
- package/dist/testing/app-test.d.ts.map +0 -1
- package/dist/testing/app-test.js +0 -109
- package/dist/testing/app-test.js.map +0 -1
- package/dist/testing/in-memory-bus.d.ts +0 -19
- package/dist/testing/in-memory-bus.d.ts.map +0 -1
- package/dist/testing/in-memory-bus.js +0 -31
- package/dist/testing/in-memory-bus.js.map +0 -1
- package/dist/testing/in-memory-channel.d.ts +0 -32
- package/dist/testing/in-memory-channel.d.ts.map +0 -1
- package/dist/testing/in-memory-channel.js +0 -65
- package/dist/testing/in-memory-channel.js.map +0 -1
- package/dist/testing/in-memory-queue.d.ts +0 -24
- package/dist/testing/in-memory-queue.d.ts.map +0 -1
- package/dist/testing/in-memory-queue.js +0 -66
- package/dist/testing/in-memory-queue.js.map +0 -1
- package/dist/testing/in-memory-repository.d.ts +0 -44
- package/dist/testing/in-memory-repository.d.ts.map +0 -1
- package/dist/testing/in-memory-repository.js +0 -60
- package/dist/testing/in-memory-repository.js.map +0 -1
- package/dist/testing/index.d.ts +0 -6
- package/dist/testing/index.d.ts.map +0 -1
- package/dist/testing/index.js +0 -6
- package/dist/testing/index.js.map +0 -1
- /package/dist/{domain/cow-draft.d.ts → cow-draft.d.ts} +0 -0
- /package/dist/{domain/cow-draft.js → cow-draft.js} +0 -0
- /package/dist/{core/result.d.ts → result.d.ts} +0 -0
- /package/dist/{core/result.js → result.js} +0 -0
- /package/dist/{core/standard-schema.js → standard-schema.js} +0 -0
package/dist/app/nest.js
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
/** Nest dotted keys (`incident.close` → `{ incident: { close } }`). */
|
|
2
|
-
export function nestByKey(entries) {
|
|
3
|
-
const root = Object.create(null);
|
|
4
|
-
for (const [key, value] of entries) {
|
|
5
|
-
const parts = key.split('.');
|
|
6
|
-
let cursor = root;
|
|
7
|
-
for (let i = 0; i < parts.length - 1; i++) {
|
|
8
|
-
const part = parts[i];
|
|
9
|
-
if (part === undefined)
|
|
10
|
-
continue;
|
|
11
|
-
const existing = cursor[part];
|
|
12
|
-
if (existing === undefined || typeof existing !== 'object') {
|
|
13
|
-
const next = Object.create(null);
|
|
14
|
-
cursor[part] = next;
|
|
15
|
-
cursor = next;
|
|
16
|
-
}
|
|
17
|
-
else {
|
|
18
|
-
cursor = existing;
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
const last = parts[parts.length - 1];
|
|
22
|
-
if (last === undefined)
|
|
23
|
-
continue;
|
|
24
|
-
cursor[last] = value;
|
|
25
|
-
}
|
|
26
|
-
return root;
|
|
27
|
-
}
|
|
28
|
-
//# sourceMappingURL=nest.js.map
|
package/dist/app/nest.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"nest.js","sourceRoot":"","sources":["../../src/app/nest.ts"],"names":[],"mappings":"AAeA,uEAAuE;AACvE,MAAM,UAAU,SAAS,CACvB,OAA8B;IAE9B,MAAM,IAAI,GAA4B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC1D,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,IAAI,IAAI,KAAK,SAAS;gBAAE,SAAS;YACjC,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YAC9B,IAAI,QAAQ,KAAK,SAAS,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBAC3D,MAAM,IAAI,GAA4B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC1D,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;gBACpB,MAAM,GAAG,IAAI,CAAC;YAChB,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,QAAmC,CAAC;YAC/C,CAAC;QACH,CAAC;QACD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACrC,IAAI,IAAI,KAAK,SAAS;YAAE,SAAS;QACjC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;IACvB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/dist/app/types.d.ts
DELETED
|
@@ -1,153 +0,0 @@
|
|
|
1
|
-
import type { ErrorMap, Infer, StandardSchemaV1 } from '../core/index.js';
|
|
2
|
-
import type { AnyEventCatalog, EventCatalog, EventClass, PortToken } from '../domain/index.js';
|
|
3
|
-
/** Port map with tokens replaced by their bound implementations. */
|
|
4
|
-
export type ResolvedPorts<P> = {
|
|
5
|
-
[K in keyof P]: P[K] extends PortToken<infer I> ? I : never;
|
|
6
|
-
};
|
|
7
|
-
/** `errors.CODE()` map. Each factory throws `CodedError` and types as `never`. */
|
|
8
|
-
export type ErrorFactories<M> = {
|
|
9
|
-
[K in keyof M]: M[K] extends {
|
|
10
|
-
data: infer S;
|
|
11
|
-
} ? S extends StandardSchemaV1 ? (data: Infer<S>) => never : () => never : () => never;
|
|
12
|
-
};
|
|
13
|
-
type KeyOf<C> = C extends {
|
|
14
|
-
key: infer I extends string;
|
|
15
|
-
} ? I : 'unknown';
|
|
16
|
-
type OnInCatalog<C> = C extends {
|
|
17
|
-
key: infer Key extends string;
|
|
18
|
-
on: infer On;
|
|
19
|
-
catalog: EventCatalog<infer _K, infer _Kind, infer Events extends EventClass, infer _Ctx>;
|
|
20
|
-
} ? [On] extends [Events] ? C : `hexok: EventUseCase "${Key}" static on is not in catalog` : C;
|
|
21
|
-
type HasLiteralKey<C> = C extends {
|
|
22
|
-
key: infer K extends string;
|
|
23
|
-
} ? string extends K ? false : true : false;
|
|
24
|
-
type IsWideArray<T> = T extends readonly unknown[] ? number extends T['length'] ? true : false : false;
|
|
25
|
-
type CheckAsConst<C, Field extends string, Kind extends string> = [C] extends [
|
|
26
|
-
string
|
|
27
|
-
] ? C : Field extends keyof C ? undefined extends C[Field] ? C : IsWideArray<C[Field]> extends true ? `hexok: ${Kind} "${KeyOf<C>}" static ${Field} must be \`as const\`` : C : C;
|
|
28
|
-
type CheckCallableShape<C, Kind extends string> = HasLiteralKey<C> extends false ? `hexok: ${Kind} "${KeyOf<C>}" is missing static key` : C extends {
|
|
29
|
-
input: StandardSchemaV1;
|
|
30
|
-
} ? C extends {
|
|
31
|
-
output: StandardSchemaV1;
|
|
32
|
-
} ? C extends {
|
|
33
|
-
ports: Record<string, PortToken<unknown>>;
|
|
34
|
-
} ? C : `hexok: ${Kind} "${KeyOf<C>}" is missing static ports` : `hexok: ${Kind} "${KeyOf<C>}" is missing static output` : `hexok: ${Kind} "${KeyOf<C>}" is missing static input`;
|
|
35
|
-
type CheckQueueGroup<C> = [C] extends [string] ? C : C extends {
|
|
36
|
-
catalog: {
|
|
37
|
-
kind: 'queue';
|
|
38
|
-
};
|
|
39
|
-
} ? C extends {
|
|
40
|
-
group: string;
|
|
41
|
-
} ? C : `hexok: EventUseCase "${KeyOf<C>}" is missing static group` : C;
|
|
42
|
-
type CheckEventShape<C> = HasLiteralKey<C> extends false ? `hexok: EventUseCase "${KeyOf<C>}" is missing static key` : C extends {
|
|
43
|
-
on: {
|
|
44
|
-
readonly key: string;
|
|
45
|
-
};
|
|
46
|
-
} ? C extends {
|
|
47
|
-
catalog: AnyEventCatalog;
|
|
48
|
-
} ? CheckQueueGroup<OnInCatalog<C>> : `hexok: EventUseCase "${KeyOf<C>}" is missing static catalog` : `hexok: EventUseCase "${KeyOf<C>}" is missing static on`;
|
|
49
|
-
/**
|
|
50
|
-
* Per-entry diagnostic for `App.from` / `App.test`. Missing statics become a
|
|
51
|
-
* `hexok:` sentence instead of a UseCaseClass union dump.
|
|
52
|
-
*/
|
|
53
|
-
export type CheckUseCase<C> = C extends {
|
|
54
|
-
trigger: 'external';
|
|
55
|
-
} ? CheckAsConst<CheckAsConst<CheckCallableShape<C, 'ExternalUseCase'>, 'publishes', 'ExternalUseCase'>, 'channels', 'ExternalUseCase'> : C extends {
|
|
56
|
-
trigger: 'internal';
|
|
57
|
-
} ? CheckAsConst<CheckAsConst<CheckCallableShape<C, 'InternalUseCase'>, 'publishes', 'InternalUseCase'>, 'channels', 'InternalUseCase'> : C extends {
|
|
58
|
-
trigger: 'event';
|
|
59
|
-
} ? CheckAsConst<CheckAsConst<CheckEventShape<C>, 'publishes', 'EventUseCase'>, 'channels', 'EventUseCase'> : C extends {
|
|
60
|
-
trigger: 'api';
|
|
61
|
-
} ? `hexok: ApiUseCase was renamed to ExternalUseCase; composition-only use cases extend InternalUseCase — delete static internal` : `hexok: "${KeyOf<C>}" must extend ExternalUseCase, InternalUseCase, or EventUseCase`;
|
|
62
|
-
/** Named map of use-case classes passed to `App.from`. */
|
|
63
|
-
export type UseCaseBag = Record<string, UseCaseClass>;
|
|
64
|
-
/** Keep a checked bag's specific classes; do not intersect with UseCaseBag. */
|
|
65
|
-
export type AsUseCaseBag<Bag> = Bag extends UseCaseBag ? Bag : UseCaseBag;
|
|
66
|
-
/** An external, internal, or event use-case constructor. */
|
|
67
|
-
export type UseCaseClass = ExternalUseCaseCtor | InternalUseCaseCtor | EventUseCaseCtor;
|
|
68
|
-
/** Constructor shape of an ExternalUseCase or InternalUseCase subclass. */
|
|
69
|
-
export interface CallableUseCaseCtor {
|
|
70
|
-
readonly trigger: 'external' | 'internal';
|
|
71
|
-
/** Use-case id (`incident.close`). Unique among the callable family. */
|
|
72
|
-
readonly key: string;
|
|
73
|
-
/** Request Standard Schema. */
|
|
74
|
-
readonly input: StandardSchemaV1;
|
|
75
|
-
/** Success Standard Schema. */
|
|
76
|
-
readonly output: StandardSchemaV1;
|
|
77
|
-
/** Declared refusals. */
|
|
78
|
-
readonly errors: ErrorMap;
|
|
79
|
-
/** Port tokens keyed by the alias used in `execute`. */
|
|
80
|
-
readonly ports: Record<string, PortToken<unknown>>;
|
|
81
|
-
/** Catalogs this use case may `publish` to. */
|
|
82
|
-
readonly publishes?: readonly AnyEventCatalog[];
|
|
83
|
-
/** Channels available as `channels` on execute ctx. */
|
|
84
|
-
readonly channels?: readonly EventChannelCtor[];
|
|
85
|
-
readonly prototype: {
|
|
86
|
-
execute(ctx: never): Promise<unknown>;
|
|
87
|
-
};
|
|
88
|
-
}
|
|
89
|
-
/** Constructor shape of an `ExternalUseCase` subclass. */
|
|
90
|
-
export interface ExternalUseCaseCtor extends CallableUseCaseCtor {
|
|
91
|
-
readonly trigger: 'external';
|
|
92
|
-
}
|
|
93
|
-
/** Constructor shape of an `InternalUseCase` subclass. */
|
|
94
|
-
export interface InternalUseCaseCtor extends CallableUseCaseCtor {
|
|
95
|
-
readonly trigger: 'internal';
|
|
96
|
-
}
|
|
97
|
-
export type ExternalKeyOf<C> = C extends {
|
|
98
|
-
trigger: 'external';
|
|
99
|
-
key: infer Key extends string;
|
|
100
|
-
} ? Key : never;
|
|
101
|
-
export type ExternalKeysOf<Bag> = {
|
|
102
|
-
[K in keyof Bag]: ExternalKeyOf<Bag[K]>;
|
|
103
|
-
}[keyof Bag];
|
|
104
|
-
/** Constructor shape of an `EventUseCase` subclass. */
|
|
105
|
-
export interface EventUseCaseCtor {
|
|
106
|
-
readonly trigger: 'event';
|
|
107
|
-
/** Handler id (`incident.notifyOnClose`). */
|
|
108
|
-
readonly key: string;
|
|
109
|
-
/** Event class this handler listens to. Must be in `catalog`. */
|
|
110
|
-
readonly on: EventClass;
|
|
111
|
-
/** Catalog that owns `on`. Bind it with `App.bind`. */
|
|
112
|
-
readonly catalog: AnyEventCatalog;
|
|
113
|
-
/** Consumer group for queue catalogs. */
|
|
114
|
-
readonly group?: string;
|
|
115
|
-
/** Port tokens keyed by the alias used in `execute`. */
|
|
116
|
-
readonly ports?: Record<string, PortToken<unknown>>;
|
|
117
|
-
/** Catalogs this handler may `publish` to. */
|
|
118
|
-
readonly publishes?: readonly AnyEventCatalog[];
|
|
119
|
-
/** Channels available as `channels` on event ctx. */
|
|
120
|
-
readonly channels?: readonly EventChannelCtor[];
|
|
121
|
-
/** Declared refusals. */
|
|
122
|
-
readonly errors?: ErrorMap;
|
|
123
|
-
readonly prototype: {
|
|
124
|
-
execute(ctx: never): Promise<void>;
|
|
125
|
-
};
|
|
126
|
-
}
|
|
127
|
-
/** Constructor shape of an `EventChannel` subclass (`catalog`, `joinInput`, optional `ports`). */
|
|
128
|
-
export interface EventChannelCtor {
|
|
129
|
-
readonly trigger: 'channel';
|
|
130
|
-
/** Catalog whose events this channel delivers. Must be a bus. */
|
|
131
|
-
readonly catalog: AnyEventCatalog;
|
|
132
|
-
/** Port tokens keyed by the alias used in join, refresh, and route. */
|
|
133
|
-
readonly ports?: Record<string, PortToken<unknown>>;
|
|
134
|
-
/** Join-claims Standard Schema. Validated before `join`. */
|
|
135
|
-
readonly joinInput: StandardSchemaV1;
|
|
136
|
-
/** Declared refusals for join/refresh. */
|
|
137
|
-
readonly errors?: ErrorMap;
|
|
138
|
-
readonly prototype: {
|
|
139
|
-
join(ctx: never): Promise<unknown>;
|
|
140
|
-
refresh(ctx: never): Promise<unknown>;
|
|
141
|
-
route(ctx: never): Promise<void>;
|
|
142
|
-
};
|
|
143
|
-
}
|
|
144
|
-
/** True when `ctor.trigger === 'event'`. */
|
|
145
|
-
export declare function isEventUseCase(ctor: UseCaseClass): ctor is EventUseCaseCtor;
|
|
146
|
-
/** True when `ctor.trigger === 'external'`. */
|
|
147
|
-
export declare function isExternalUseCase(ctor: UseCaseClass): ctor is ExternalUseCaseCtor;
|
|
148
|
-
/** True when `ctor.trigger === 'internal'`. */
|
|
149
|
-
export declare function isInternalUseCase(ctor: UseCaseClass): ctor is InternalUseCaseCtor;
|
|
150
|
-
/** True when `ctor.trigger` is `'external'` or `'internal'`. */
|
|
151
|
-
export declare function isCallableUseCase(ctor: UseCaseClass): ctor is CallableUseCaseCtor;
|
|
152
|
-
export {};
|
|
153
|
-
//# sourceMappingURL=types.d.ts.map
|
package/dist/app/types.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/app/types.ts"],"names":[],"mappings":"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"}
|
package/dist/app/types.js
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/** True when `ctor.trigger === 'event'`. */
|
|
2
|
-
export function isEventUseCase(ctor) {
|
|
3
|
-
return ctor.trigger === 'event';
|
|
4
|
-
}
|
|
5
|
-
/** True when `ctor.trigger === 'external'`. */
|
|
6
|
-
export function isExternalUseCase(ctor) {
|
|
7
|
-
return ctor.trigger === 'external';
|
|
8
|
-
}
|
|
9
|
-
/** True when `ctor.trigger === 'internal'`. */
|
|
10
|
-
export function isInternalUseCase(ctor) {
|
|
11
|
-
return ctor.trigger === 'internal';
|
|
12
|
-
}
|
|
13
|
-
/** True when `ctor.trigger` is `'external'` or `'internal'`. */
|
|
14
|
-
export function isCallableUseCase(ctor) {
|
|
15
|
-
return ctor.trigger === 'external' || ctor.trigger === 'internal';
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=types.js.map
|
package/dist/app/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/app/types.ts"],"names":[],"mappings":"AA0NA,4CAA4C;AAC5C,MAAM,UAAU,cAAc,CAAC,IAAkB;IAC/C,OAAO,IAAI,CAAC,OAAO,KAAK,OAAO,CAAC;AAClC,CAAC;AAED,+CAA+C;AAC/C,MAAM,UAAU,iBAAiB,CAC/B,IAAkB;IAElB,OAAO,IAAI,CAAC,OAAO,KAAK,UAAU,CAAC;AACrC,CAAC;AAED,+CAA+C;AAC/C,MAAM,UAAU,iBAAiB,CAC/B,IAAkB;IAElB,OAAO,IAAI,CAAC,OAAO,KAAK,UAAU,CAAC;AACrC,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,iBAAiB,CAC/B,IAAkB;IAElB,OAAO,IAAI,CAAC,OAAO,KAAK,UAAU,IAAI,IAAI,CAAC,OAAO,KAAK,UAAU,CAAC;AACpE,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"coded-error.d.ts","sourceRoot":"","sources":["../../src/core/coded-error.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE7D;;;;;;;GAOG;AACH,qBAAa,UAAU,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,KAAK;IAC9D,2GAA2G;IAC3G,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACjB,uEAAuE;IACvE,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAExB,oCAAoC;gBACxB,IAAI,EAAE;QAChB,IAAI,EAAE,CAAC,CAAC;QACR,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,OAAO,CAAC;KAChB;CAQF;AAED,0FAA0F;AAC1F,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,SAAS,gBAAgB,CAAC,KAAK,EAAE,GACzC,UAAU,CAAC,YAAY,CAAC,CAM1B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"coded-error.js","sourceRoot":"","sources":["../../src/core/coded-error.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,MAAM,OAAO,UAAsC,SAAQ,KAAK;IAC9D,2GAA2G;IAClG,IAAI,CAAI;IACjB,uEAAuE;IAC9D,IAAI,CAAW;IAExB,oCAAoC;IACpC,YAAY,IAIX;QACC,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;YACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACxB,CAAC;IACH,CAAC;CACF;AAED,0FAA0F;AAC1F,MAAM,UAAU,eAAe,CAC7B,OAAe,EACf,MAA0C;IAE1C,OAAO,IAAI,UAAU,CAAC;QACpB,IAAI,EAAE,YAAY;QAClB,OAAO;QACP,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtD,CAAC,CAAC;AACL,CAAC"}
|
package/dist/core/error-map.d.ts
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import type { StandardSchemaV1 } from './standard-schema.js';
|
|
2
|
-
/**
|
|
3
|
-
* Declared metadata for one error code. Keys of an `ErrorMap` **are** the error union.
|
|
4
|
-
*
|
|
5
|
-
* ```ts
|
|
6
|
-
* const errors = {
|
|
7
|
-
* NOT_FOUND: { message: 'Incident not found' },
|
|
8
|
-
* }
|
|
9
|
-
* ```
|
|
10
|
-
*/
|
|
11
|
-
export interface ErrorDef {
|
|
12
|
-
/** Human message. Factories fall back to the code when omitted. */
|
|
13
|
-
message?: string;
|
|
14
|
-
/** Optional payload schema for `errors.CODE(data)`. */
|
|
15
|
-
data?: StandardSchemaV1;
|
|
16
|
-
}
|
|
17
|
-
/** `static errors` bag. Prefer `defineErrors({ ... })` so keys stay a finite union. */
|
|
18
|
-
export type ErrorMap = Record<string, ErrorDef>;
|
|
19
|
-
/** Infer error-code keys from an object literal. Use for `static readonly errors`. */
|
|
20
|
-
export declare function defineErrors<const M extends Record<string, ErrorDef>>(map: M): M;
|
|
21
|
-
//# sourceMappingURL=error-map.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"error-map.d.ts","sourceRoot":"","sources":["../../src/core/error-map.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE7D;;;;;;;;GAQG;AACH,MAAM,WAAW,QAAQ;IACvB,mEAAmE;IACnE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,IAAI,CAAC,EAAE,gBAAgB,CAAC;CACzB;AAED,uFAAuF;AACvF,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAEhD,sFAAsF;AACtF,wBAAgB,YAAY,CAAC,KAAK,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,EACnE,GAAG,EAAE,CAAC,GACL,CAAC,CAEH"}
|
package/dist/core/error-map.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"error-map.js","sourceRoot":"","sources":["../../src/core/error-map.ts"],"names":[],"mappings":"AAqBA,sFAAsF;AACtF,MAAM,UAAU,YAAY,CAC1B,GAAM;IAEN,OAAO,GAAG,CAAC;AACb,CAAC"}
|
package/dist/core/index.d.ts
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export { CodedError, validationError } from './coded-error.js';
|
|
2
|
-
export { defineErrors, type ErrorDef, type ErrorMap } from './error-map.js';
|
|
3
|
-
export { fail, ok, type Result } from './result.js';
|
|
4
|
-
export { type Infer, validate } from './schema.js';
|
|
5
|
-
export type { StandardSchemaV1 } from './standard-schema.js';
|
|
6
|
-
//# sourceMappingURL=index.d.ts.map
|
package/dist/core/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,KAAK,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACnD,YAAY,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC"}
|
package/dist/core/index.js
DELETED
package/dist/core/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAgC,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,IAAI,EAAE,EAAE,EAAe,MAAM,aAAa,CAAC;AACpD,OAAO,EAAc,QAAQ,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../../src/core/result.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE7D;;;;;;;;GAQG;AACH,MAAM,MAAM,MAAM,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,IAC3C;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,GACtB;IACE,EAAE,EAAE,KAAK,CAAC;IACV,IAAI,EAAE,CAAC,CAAC;IACR,MAAM,CAAC,EAAE,SAAS,gBAAgB,CAAC,KAAK,EAAE,CAAC;CAC5C,CAAC;AAEN,2FAA2F;AAC3F,wBAAgB,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAEhD;AAED,sGAAsG;AACtG,wBAAgB,IAAI,CAAC,CAAC,SAAS,MAAM,EACnC,IAAI,EAAE,CAAC,EACP,MAAM,CAAC,EAAE,SAAS,gBAAgB,CAAC,KAAK,EAAE,GACzC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAIlB"}
|
package/dist/core/result.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"result.js","sourceRoot":"","sources":["../../src/core/result.ts"],"names":[],"mappings":"AAmBA,2FAA2F;AAC3F,MAAM,UAAU,EAAE,CAAI,KAAQ;IAC5B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAC7B,CAAC;AAED,sGAAsG;AACtG,MAAM,UAAU,IAAI,CAClB,IAAO,EACP,MAA0C;IAE1C,OAAO,MAAM,KAAK,SAAS;QACzB,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE;QAC7B,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC1B,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/core/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,kDAAkD;AAClD,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,gBAAgB,IAAI,WAAW,CACzD,CAAC,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CACxB,CAAC,QAAQ,CAAC,CAAC;AAEZ;;;;;;;;;;;;GAYG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,gBAAgB,EACjD,MAAM,EAAE,CAAC,EACT,KAAK,EAAE,OAAO,GACb,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAShC"}
|
package/dist/core/schema.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/core/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,EAAE,EAAe,MAAM,aAAa,CAAC;AAQpD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,QAAQ,CACtB,MAAS,EACT,KAAc;IAEd,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACnD,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,EAAE,CAAC,MAAM,CAAC,KAAiB,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,SAAS,CAChB,KAE6C;IAE7C,OAAO,OAAQ,KAA0B,CAAC,IAAI,KAAK,UAAU,CAAC;AAChE,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"standard-schema.d.ts","sourceRoot":"","sources":["../../src/core/standard-schema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,gBAAgB,CAAC,KAAK,GAAG,OAAO,EAAE,MAAM,GAAG,KAAK;IAC/D,oEAAoE;IACpE,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;CAC7D;AAED,MAAM,CAAC,OAAO,WAAW,gBAAgB,CAAC;IACxC,oEAAoE;IACpE,UAAiB,KAAK,CAAC,KAAK,GAAG,OAAO,EAAE,MAAM,GAAG,KAAK;QACpD,gCAAgC;QAChC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;QACpB,yCAAyC;QACzC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,wEAAwE;QACxE,QAAQ,CAAC,QAAQ,EAAE,CACjB,KAAK,EAAE,OAAO,KACX,MAAM,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAC9C,gDAAgD;QAChD,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;KACnD;IAED,wEAAwE;IACxE,KAAY,MAAM,CAAC,MAAM,IAAI,aAAa,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC;IAEnE,6CAA6C;IAC7C,UAAiB,aAAa,CAAC,MAAM;QACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC;KAC7B;IAED,qDAAqD;IACrD,UAAiB,aAAa;QAC5B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;KACvC;IAED,+EAA+E;IAC/E,UAAiB,KAAK;QACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC,WAAW,GAAG,WAAW,CAAC,GAAG,SAAS,CAAC;KACtE;IAED,0DAA0D;IAC1D,UAAiB,WAAW;QAC1B,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC;KAC3B;IAED,oEAAoE;IACpE,UAAiB,KAAK,CAAC,KAAK,GAAG,OAAO,EAAE,MAAM,GAAG,KAAK;QACpD,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;QACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;KACzB;IAED,wEAAwE;IACxE,KAAY,UAAU,CAAC,MAAM,SAAS,gBAAgB,IAAI,WAAW,CACnE,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAC7B,CAAC,OAAO,CAAC,CAAC;IAEX,+DAA+D;IAC/D,KAAY,WAAW,CAAC,MAAM,SAAS,gBAAgB,IAAI,WAAW,CACpE,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAC7B,CAAC,QAAQ,CAAC,CAAC;CACb"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"standard-schema.js","sourceRoot":"","sources":["../../src/core/standard-schema.ts"],"names":[],"mappings":""}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Optional adapter capabilities. Intersect these with a port interface.
|
|
3
|
-
* Pass `{ transactional: true }` / `{ requestScoped: true }` to `Port.token`
|
|
4
|
-
* so `provide()` throws if the impl is missing `bindTo` / `fork`.
|
|
5
|
-
*
|
|
6
|
-
* ```ts
|
|
7
|
-
* class PgIncidentRepo implements IncidentRepository, Transactional<IncidentRepository> {
|
|
8
|
-
* bindTo(uow: UnitOfWork): IncidentRepository { return this }
|
|
9
|
-
* }
|
|
10
|
-
* ```
|
|
11
|
-
*/
|
|
12
|
-
export interface UnitOfWork {
|
|
13
|
-
/** Register work to run after a successful commit. */
|
|
14
|
-
onCommit(fn: () => void | Promise<void>): void;
|
|
15
|
-
/** Register work to run after a rollback. */
|
|
16
|
-
onRollback(fn: () => void | Promise<void>): void;
|
|
17
|
-
}
|
|
18
|
-
/** Port capability: the adapter can bind itself to a unit of work. */
|
|
19
|
-
export interface Transactional<T = unknown> {
|
|
20
|
-
/** Return this port bound to `uow` (often `return this`). */
|
|
21
|
-
bindTo(uow: UnitOfWork): T;
|
|
22
|
-
}
|
|
23
|
-
/** Port capability: the adapter can fork a request-scoped instance. */
|
|
24
|
-
export interface RequestScoped<T = unknown> {
|
|
25
|
-
/** Return a new instance scoped to the current request. */
|
|
26
|
-
fork(): T;
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Standard repository shape. Authors write their own port interface;
|
|
30
|
-
* this is the contract `InMemoryRepository` can fake.
|
|
31
|
-
*/
|
|
32
|
-
export interface CrudRepository<E> {
|
|
33
|
-
/** Load one entity by id, or `null` if missing. */
|
|
34
|
-
get(id: string): Promise<E | null>;
|
|
35
|
-
/** Persist an entity. Adapters call `entity.commit()` after a successful write. */
|
|
36
|
-
save(entity: E): Promise<void>;
|
|
37
|
-
/** List all entities. Optional on the port. */
|
|
38
|
-
list?(): Promise<E[]>;
|
|
39
|
-
/** Delete by id. Optional on the port. */
|
|
40
|
-
delete?(id: string): Promise<void>;
|
|
41
|
-
}
|
|
42
|
-
//# sourceMappingURL=capabilities.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../src/domain/capabilities.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,MAAM,WAAW,UAAU;IACzB,sDAAsD;IACtD,QAAQ,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC/C,6CAA6C;IAC7C,UAAU,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAClD;AAED,sEAAsE;AACtE,MAAM,WAAW,aAAa,CAAC,CAAC,GAAG,OAAO;IACxC,6DAA6D;IAC7D,MAAM,CAAC,GAAG,EAAE,UAAU,GAAG,CAAC,CAAC;CAC5B;AAED,uEAAuE;AACvE,MAAM,WAAW,aAAa,CAAC,CAAC,GAAG,OAAO;IACxC,2DAA2D;IAC3D,IAAI,IAAI,CAAC,CAAC;CACX;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,mDAAmD;IACnD,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACnC,mFAAmF;IACnF,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,+CAA+C;IAC/C,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IACtB,0CAA0C;IAC1C,MAAM,CAAC,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../src/domain/capabilities.ts"],"names":[],"mappings":""}
|
package/dist/domain/catalog.d.ts
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import type { CatalogKind } from './envelope.js';
|
|
2
|
-
import type { EventClass, EventWithCtx } from './event.js';
|
|
3
|
-
/**
|
|
4
|
-
* Registry of event classes. `kind` is `'bus'` (fan-out, fire-and-forget, no
|
|
5
|
-
* persistence) or `'queue'` (work queue: one consumer in a group, ack/nack).
|
|
6
|
-
* `.event()` accumulates each class on the covariant `Events` generic (empty is `never`).
|
|
7
|
-
* Use-case convention: `static publishes = [DomainEvents] as const`.
|
|
8
|
-
*
|
|
9
|
-
* ```ts
|
|
10
|
-
* const DomainEvents = new EventCatalog('domain', { kind: 'bus' })
|
|
11
|
-
* .event(IncidentClosed)
|
|
12
|
-
* DomainEvents.get(IncidentClosed)
|
|
13
|
-
* DomainEvents.incident.closed // when every segment is a JS identifier
|
|
14
|
-
* ```
|
|
15
|
-
*/
|
|
16
|
-
export declare class EventCatalog<Key extends string = string, Kind extends CatalogKind = CatalogKind, out Events extends EventClass = never, out Ctx = undefined> {
|
|
17
|
-
#private;
|
|
18
|
-
/** Catalog name, copied onto envelopes and used in error messages. */
|
|
19
|
-
readonly key: Key;
|
|
20
|
-
/** `'bus'` (fan-out) or `'queue'` (work queue). Copied onto every envelope. */
|
|
21
|
-
readonly kind: Kind;
|
|
22
|
-
/** Create a named `'bus'` or `'queue'` catalog. Chain `.event(...)` then `.freeze()`. */
|
|
23
|
-
constructor(key: Key, options: {
|
|
24
|
-
kind: Kind;
|
|
25
|
-
});
|
|
26
|
-
/** Require `ctx: C` on every event in this catalog. Call before `.event()`. */
|
|
27
|
-
ctx<C>(): EventCatalog<Key, Kind, Events, C>;
|
|
28
|
-
/** True after `.ctx()` — every registered event must expose `ctx`. */
|
|
29
|
-
get hasCtx(): boolean;
|
|
30
|
-
/** Registered event classes, in registration order. */
|
|
31
|
-
list(): EventClass[];
|
|
32
|
-
/** Register an event class. Dotted keys become nested properties when each segment is a JS identifier. */
|
|
33
|
-
event<E extends EventClass>(eventClass: [Ctx] extends [undefined] ? E : EventWithCtx<E, Ctx>): EventCatalog<Key, Kind, Events | E, Ctx>;
|
|
34
|
-
/** Look up a registered class. Throws if it is not in this catalog. */
|
|
35
|
-
get<E extends EventClass>(eventClass: E): E;
|
|
36
|
-
/** Seal the catalog. Further `.event()` / `.ctx()` throw. */
|
|
37
|
-
freeze(): EventCatalog<Key, Kind, Events, Ctx>;
|
|
38
|
-
/** True after `.freeze()`. */
|
|
39
|
-
get frozen(): boolean;
|
|
40
|
-
private assertWritable;
|
|
41
|
-
}
|
|
42
|
-
/** Safe annotation / Map key. Bare `EventCatalog` is Events=never and rejects populated catalogs. */
|
|
43
|
-
export type AnyEventCatalog = EventCatalog<string, CatalogKind, EventClass, unknown>;
|
|
44
|
-
/** Event classes registered on `Cat`, or `never` when the catalog is empty. */
|
|
45
|
-
export type CatalogEvents<Cat> = Cat extends EventCatalog<infer _Key, infer _Kind, infer E extends EventClass, infer _Ctx> ? E : never;
|
|
46
|
-
//# sourceMappingURL=catalog.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/domain/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAI3D;;;;;;;;;;;;GAYG;AACH,qBAAa,YAAY,CACvB,GAAG,SAAS,MAAM,GAAG,MAAM,EAC3B,IAAI,SAAS,WAAW,GAAG,WAAW,EACtC,GAAG,CAAC,MAAM,SAAS,UAAU,GAAG,KAAK,EACrC,GAAG,CAAC,GAAG,GAAG,SAAS;;IAEnB,sEAAsE;IACtE,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;IAClB,+EAA+E;IAC/E,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IAKpB,yFAAyF;gBAC7E,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE;QAAE,IAAI,EAAE,IAAI,CAAA;KAAE;IAK7C,+EAA+E;IAC/E,GAAG,CAAC,CAAC,KAAK,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IAc5C,sEAAsE;IACtE,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,uDAAuD;IACvD,IAAI,IAAI,UAAU,EAAE;IAIpB,0GAA0G;IAC1G,KAAK,CAAC,CAAC,SAAS,UAAU,EACxB,UAAU,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,GAC/D,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,EAAE,GAAG,CAAC;IAkB3C,uEAAuE;IACvE,GAAG,CAAC,CAAC,SAAS,UAAU,EAAE,UAAU,EAAE,CAAC,GAAG,CAAC;IAU3C,6DAA6D;IAC7D,MAAM,IAAI,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC;IAO9C,8BAA8B;IAC9B,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,OAAO,CAAC,cAAc;CAKvB;AAED,qGAAqG;AACrG,MAAM,MAAM,eAAe,GAAG,YAAY,CACxC,MAAM,EACN,WAAW,EACX,UAAU,EACV,OAAO,CACR,CAAC;AAEF,+EAA+E;AAC/E,MAAM,MAAM,aAAa,CAAC,GAAG,IAC3B,GAAG,SAAS,YAAY,CACtB,MAAM,IAAI,EACV,MAAM,KAAK,EACX,MAAM,CAAC,SAAS,UAAU,EAC1B,MAAM,IAAI,CACX,GACG,CAAC,GACD,KAAK,CAAC"}
|
package/dist/domain/catalog.js
DELETED
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
const IDENT = /^[A-Za-z_$][A-Za-z0-9_$]*$/;
|
|
2
|
-
/**
|
|
3
|
-
* Registry of event classes. `kind` is `'bus'` (fan-out, fire-and-forget, no
|
|
4
|
-
* persistence) or `'queue'` (work queue: one consumer in a group, ack/nack).
|
|
5
|
-
* `.event()` accumulates each class on the covariant `Events` generic (empty is `never`).
|
|
6
|
-
* Use-case convention: `static publishes = [DomainEvents] as const`.
|
|
7
|
-
*
|
|
8
|
-
* ```ts
|
|
9
|
-
* const DomainEvents = new EventCatalog('domain', { kind: 'bus' })
|
|
10
|
-
* .event(IncidentClosed)
|
|
11
|
-
* DomainEvents.get(IncidentClosed)
|
|
12
|
-
* DomainEvents.incident.closed // when every segment is a JS identifier
|
|
13
|
-
* ```
|
|
14
|
-
*/
|
|
15
|
-
export class EventCatalog {
|
|
16
|
-
/** Catalog name, copied onto envelopes and used in error messages. */
|
|
17
|
-
key;
|
|
18
|
-
/** `'bus'` (fan-out) or `'queue'` (work queue). Copied onto every envelope. */
|
|
19
|
-
kind;
|
|
20
|
-
#events = new Map();
|
|
21
|
-
#frozen = false;
|
|
22
|
-
#hasCtx = false;
|
|
23
|
-
/** Create a named `'bus'` or `'queue'` catalog. Chain `.event(...)` then `.freeze()`. */
|
|
24
|
-
constructor(key, options) {
|
|
25
|
-
this.key = key;
|
|
26
|
-
this.kind = options.kind;
|
|
27
|
-
}
|
|
28
|
-
/** Require `ctx: C` on every event in this catalog. Call before `.event()`. */
|
|
29
|
-
ctx() {
|
|
30
|
-
this.assertWritable();
|
|
31
|
-
if (this.#hasCtx) {
|
|
32
|
-
throw new Error(`hexok: catalog "${this.key}" already has ctx`);
|
|
33
|
-
}
|
|
34
|
-
if (this.#events.size > 0) {
|
|
35
|
-
throw new Error(`hexok: catalog "${this.key}" ctx() must be called before .event()`);
|
|
36
|
-
}
|
|
37
|
-
this.#hasCtx = true;
|
|
38
|
-
return this;
|
|
39
|
-
}
|
|
40
|
-
/** True after `.ctx()` — every registered event must expose `ctx`. */
|
|
41
|
-
get hasCtx() {
|
|
42
|
-
return this.#hasCtx;
|
|
43
|
-
}
|
|
44
|
-
/** Registered event classes, in registration order. */
|
|
45
|
-
list() {
|
|
46
|
-
return [...this.#events.values()];
|
|
47
|
-
}
|
|
48
|
-
/** Register an event class. Dotted keys become nested properties when each segment is a JS identifier. */
|
|
49
|
-
event(eventClass) {
|
|
50
|
-
this.assertWritable();
|
|
51
|
-
const ctor = eventClass;
|
|
52
|
-
const eventKey = ctor.key;
|
|
53
|
-
if (this.#events.has(eventKey)) {
|
|
54
|
-
throw new Error(`hexok: duplicate event "${eventKey}" in catalog "${this.key}"`);
|
|
55
|
-
}
|
|
56
|
-
this.#events.set(eventKey, ctor);
|
|
57
|
-
nestIdentifierPath(this, eventKey, ctor);
|
|
58
|
-
return this;
|
|
59
|
-
}
|
|
60
|
-
/** Look up a registered class. Throws if it is not in this catalog. */
|
|
61
|
-
get(eventClass) {
|
|
62
|
-
const found = this.#events.get(eventClass.key);
|
|
63
|
-
if (!found) {
|
|
64
|
-
throw new Error(`hexok: event "${eventClass.key}" is not in catalog "${this.key}"`);
|
|
65
|
-
}
|
|
66
|
-
return found;
|
|
67
|
-
}
|
|
68
|
-
/** Seal the catalog. Further `.event()` / `.ctx()` throw. */
|
|
69
|
-
freeze() {
|
|
70
|
-
if (this.#frozen)
|
|
71
|
-
return this;
|
|
72
|
-
this.#frozen = true;
|
|
73
|
-
Object.freeze(this);
|
|
74
|
-
return this;
|
|
75
|
-
}
|
|
76
|
-
/** True after `.freeze()`. */
|
|
77
|
-
get frozen() {
|
|
78
|
-
return this.#frozen;
|
|
79
|
-
}
|
|
80
|
-
assertWritable() {
|
|
81
|
-
if (this.#frozen) {
|
|
82
|
-
throw new Error(`hexok: catalog "${this.key}" is frozen`);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
function nestIdentifierPath(root, dotted, value) {
|
|
87
|
-
const parts = dotted.split('.');
|
|
88
|
-
if (parts.length === 0 || parts.some((part) => !IDENT.test(part))) {
|
|
89
|
-
return;
|
|
90
|
-
}
|
|
91
|
-
let cursor = root;
|
|
92
|
-
for (let i = 0; i < parts.length - 1; i++) {
|
|
93
|
-
const key = parts[i];
|
|
94
|
-
if (key === undefined)
|
|
95
|
-
return;
|
|
96
|
-
const existing = cursor[key];
|
|
97
|
-
if (existing === undefined) {
|
|
98
|
-
const next = Object.create(null);
|
|
99
|
-
cursor[key] = next;
|
|
100
|
-
cursor = next;
|
|
101
|
-
continue;
|
|
102
|
-
}
|
|
103
|
-
if (typeof existing === 'object' && existing !== null) {
|
|
104
|
-
cursor = existing;
|
|
105
|
-
continue;
|
|
106
|
-
}
|
|
107
|
-
return;
|
|
108
|
-
}
|
|
109
|
-
const last = parts[parts.length - 1];
|
|
110
|
-
if (last === undefined)
|
|
111
|
-
return;
|
|
112
|
-
cursor[last] = value;
|
|
113
|
-
}
|
|
114
|
-
//# sourceMappingURL=catalog.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/domain/catalog.ts"],"names":[],"mappings":"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"}
|
package/dist/domain/channel.d.ts
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Byte sink for one connected client. WebSocket and SSE adapters wrap their
|
|
3
|
-
* native connection as this shape.
|
|
4
|
-
*/
|
|
5
|
-
export type ChannelConnection = {
|
|
6
|
-
/** Write one frame to this client. */
|
|
7
|
-
send(data: string): void;
|
|
8
|
-
/** Disconnect this client. */
|
|
9
|
-
close(): void;
|
|
10
|
-
/** Subscribe to the native close. */
|
|
11
|
-
addEventListener(type: 'close', listener: () => void): void;
|
|
12
|
-
};
|
|
13
|
-
/**
|
|
14
|
-
* Local presence + send. Bound with `.route(Channel, adapter)`.
|
|
15
|
-
* Does not interpret routing hints or session claims.
|
|
16
|
-
*/
|
|
17
|
-
export interface ChannelAdapter<Session = unknown> {
|
|
18
|
-
/** Bind a connected client into local presence. */
|
|
19
|
-
join(id: string, session: Session, connection: ChannelConnection): void;
|
|
20
|
-
/** Remove a client that left. */
|
|
21
|
-
leave(id: string): void;
|
|
22
|
-
/** Force-disconnect a client. */
|
|
23
|
-
eject(id: string): void;
|
|
24
|
-
/** Replace the session attached to a connected id. */
|
|
25
|
-
update(id: string, session: Session): void;
|
|
26
|
-
/** Snapshot of who is present. */
|
|
27
|
-
list(): ReadonlyArray<{
|
|
28
|
-
id: string;
|
|
29
|
-
session: Session;
|
|
30
|
-
}>;
|
|
31
|
-
/** Send a payload to one connected id. */
|
|
32
|
-
send(id: string, payload: string): void;
|
|
33
|
-
/** Tear down the adapter. Optional. */
|
|
34
|
-
stop?(): Promise<void>;
|
|
35
|
-
}
|
|
36
|
-
//# sourceMappingURL=channel.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../src/domain/channel.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,sCAAsC;IACtC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,8BAA8B;IAC9B,KAAK,IAAI,IAAI,CAAC;IACd,qCAAqC;IACrC,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;CAC7D,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,cAAc,CAAC,OAAO,GAAG,OAAO;IAC/C,mDAAmD;IACnD,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACxE,iCAAiC;IACjC,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,iCAAiC;IACjC,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,sDAAsD;IACtD,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAC3C,kCAAkC;IAClC,IAAI,IAAI,aAAa,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACxD,0CAA0C;IAC1C,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,uCAAuC;IACvC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB"}
|
package/dist/domain/channel.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"channel.js","sourceRoot":"","sources":["../../src/domain/channel.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cow-draft.d.ts","sourceRoot":"","sources":["../../src/domain/cow-draft.ts"],"names":[],"mappings":"AAIA,wBAAgB,aAAa,CAC3B,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAKlC;AAMD,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,EAC5C,IAAI,EAAE,CAAC,EACP,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,SAAS,EAClC,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,GAC3B;IAAE,IAAI,EAAE,CAAC,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CA+FjE;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAE7C;AAED,gEAAgE;AAChE,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAEzC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cow-draft.js","sourceRoot":"","sources":["../../src/domain/cow-draft.ts"],"names":[],"mappings":"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"}
|