@relkit/app 0.5.1 → 0.5.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/dist/app-config.types.d.ts +32 -0
  2. package/dist/app-config.types.d.ts.map +1 -0
  3. package/dist/app-config.types.js +2 -0
  4. package/dist/app-config.types.js.map +1 -0
  5. package/dist/app-observability.d.ts +21 -0
  6. package/dist/app-observability.d.ts.map +1 -0
  7. package/dist/app-observability.js +41 -0
  8. package/dist/app-observability.js.map +1 -0
  9. package/dist/app-observability.types.d.ts +18 -0
  10. package/dist/app-observability.types.d.ts.map +1 -0
  11. package/dist/app-observability.types.js +2 -0
  12. package/dist/app-observability.types.js.map +1 -0
  13. package/dist/app-provider-capabilities.d.ts +3 -0
  14. package/dist/app-provider-capabilities.d.ts.map +1 -0
  15. package/dist/{define-app-types.js → app-provider-capabilities.js} +2 -1
  16. package/dist/app-provider-capabilities.js.map +1 -0
  17. package/dist/app-provider-normalization.d.ts +32 -0
  18. package/dist/app-provider-normalization.d.ts.map +1 -0
  19. package/dist/app-provider-normalization.js +58 -0
  20. package/dist/app-provider-normalization.js.map +1 -0
  21. package/dist/{define-app-types.d.ts → app-provider.types.d.ts} +19 -50
  22. package/dist/app-provider.types.d.ts.map +1 -0
  23. package/dist/app-provider.types.js +2 -0
  24. package/dist/app-provider.types.js.map +1 -0
  25. package/dist/app-validation.d.ts +67 -1
  26. package/dist/app-validation.d.ts.map +1 -1
  27. package/dist/app-validation.js +100 -13
  28. package/dist/app-validation.js.map +1 -1
  29. package/dist/config.d.ts +2 -1
  30. package/dist/config.d.ts.map +1 -1
  31. package/dist/config.js +2 -1
  32. package/dist/config.js.map +1 -1
  33. package/dist/context-descriptors.d.ts +39 -26
  34. package/dist/context-descriptors.d.ts.map +1 -1
  35. package/dist/context-descriptors.js +105 -27
  36. package/dist/context-descriptors.js.map +1 -1
  37. package/dist/context-descriptors.types.d.ts +58 -0
  38. package/dist/context-descriptors.types.d.ts.map +1 -0
  39. package/dist/context-descriptors.types.js +2 -0
  40. package/dist/context-descriptors.types.js.map +1 -0
  41. package/dist/context-resolution-service.d.ts +16 -0
  42. package/dist/context-resolution-service.d.ts.map +1 -0
  43. package/dist/context-resolution-service.js +31 -0
  44. package/dist/context-resolution-service.js.map +1 -0
  45. package/dist/context-resolution-service.types.d.ts +21 -0
  46. package/dist/context-resolution-service.types.d.ts.map +1 -0
  47. package/dist/context-resolution-service.types.js +2 -0
  48. package/dist/context-resolution-service.types.js.map +1 -0
  49. package/dist/context-resolver.d.ts +24 -15
  50. package/dist/context-resolver.d.ts.map +1 -1
  51. package/dist/context-resolver.js +85 -12
  52. package/dist/context-resolver.js.map +1 -1
  53. package/dist/context-resolver.types.d.ts +45 -0
  54. package/dist/context-resolver.types.d.ts.map +1 -0
  55. package/dist/context-resolver.types.js +2 -0
  56. package/dist/context-resolver.types.js.map +1 -0
  57. package/dist/define-app.d.ts +16 -15
  58. package/dist/define-app.d.ts.map +1 -1
  59. package/dist/define-app.js +67 -60
  60. package/dist/define-app.js.map +1 -1
  61. package/dist/define-app.types.d.ts +43 -0
  62. package/dist/define-app.types.d.ts.map +1 -0
  63. package/dist/define-app.types.js +2 -0
  64. package/dist/define-app.types.js.map +1 -0
  65. package/dist/index.d.ts +1 -0
  66. package/dist/index.d.ts.map +1 -1
  67. package/dist/index.js +1 -0
  68. package/dist/index.js.map +1 -1
  69. package/package.json +25 -18
  70. package/dist/define-app-types.d.ts.map +0 -1
  71. package/dist/define-app-types.js.map +0 -1
@@ -1,30 +1,103 @@
1
1
  import { isEnvRef } from "@relkit/config";
2
- export function createApplicationContextResolver(options) {
2
+ import { Effect, Result, Schema } from "effect";
3
+ import { observeApp } from "./app-observability.js";
4
+ import { AppConstantRunner, AppConstantRunnerPromiseLive } from "./context-resolution-service.js";
5
+ /** Expected context registration or resolution failure with its original cause.
6
+ * @example if (error._tag === "ContextResolutionFailure") console.error(error.message);
7
+ */
8
+ export class ContextResolutionFailure extends Schema.TaggedError()("ContextResolutionFailure", { message: Schema.String, cause: Schema.Defect() }) {
9
+ }
10
+ /** Builds an application context resolver in Effect.
11
+ * @param options - Constants, prompts, and resolved environment values.
12
+ * @returns A resolver or ContextResolutionFailure for duplicate names.
13
+ * @example Effect.runSync(createApplicationContextResolverEffect({ env: {} }));
14
+ */
15
+ export const createApplicationContextResolverEffect = Effect.fn("App.createContextResolver")((options) => observeApp("context.create", Effect.gen(function* () {
3
16
  const staticValues = {};
4
17
  const resolvers = [];
5
18
  for (const descriptor of Object.values(options.constants ?? {})) {
6
19
  for (const [key, value] of Object.entries(descriptor.values)) {
7
- if (Object.hasOwn(staticValues, key) || resolvers.some(([name]) => name === key)) {
8
- throw new TypeError(`Constant "${key}" is registered more than once`);
9
- }
20
+ if (Object.hasOwn(staticValues, key) || resolvers.some(([name]) => name === key))
21
+ return yield* Effect.fail(failure(new TypeError(`Constant "${key}" is registered more than once`)));
10
22
  if (typeof value === "function")
11
23
  resolvers.push([key, value]);
12
24
  else
13
25
  staticValues[key] = isEnvRef(value) ? options.env[value.name] : value;
14
26
  }
15
27
  }
16
- const prompts = Object.freeze(Object.fromEntries(Object.entries(options.prompts ?? {}).map(([key, descriptor]) => [key, descriptor.value])));
17
- return Object.freeze({
18
- async resolve(context) {
19
- const dynamic = await Promise.all(resolvers.map(async ([key, resolver]) => [
20
- key,
21
- await resolver({ env: options.env, signal: context.signal, log: context.log }),
22
- ]));
28
+ const prompts = Object.freeze(Object.fromEntries(Object.entries(options.prompts ?? {}).map(([key, descriptor]) => [
29
+ key,
30
+ descriptor.value,
31
+ ])));
32
+ const resolveEffect = Effect.fn("App.resolveContext")((context) => observeApp("context.resolve", Effect.suspend(() => context.signal.aborted
33
+ ? Effect.interrupt
34
+ : Effect.raceFirst(waitForAbort(context.signal), Effect.gen(function* () {
35
+ const runner = yield* AppConstantRunner;
36
+ const dynamic = yield* Effect.forEach(resolvers, ([key, resolver]) => Effect.map(runner.run(resolver, {
37
+ env: options.env,
38
+ log: context.log,
39
+ signal: context.signal,
40
+ }), (value) => [key, value]), { concurrency: 8 });
23
41
  return {
24
- constants: Object.freeze({ ...staticValues, ...Object.fromEntries(dynamic) }),
42
+ constants: Object.freeze({
43
+ ...staticValues,
44
+ ...Object.fromEntries(dynamic),
45
+ }),
25
46
  prompts,
26
47
  };
48
+ })))));
49
+ const resolver = Object.freeze({
50
+ resolveEffect,
51
+ async resolve(context) {
52
+ if (context.signal.aborted)
53
+ throw context.signal.reason ?? new DOMException("Aborted", "AbortError");
54
+ const result = await Effect.runPromise(Effect.result(resolveEffect(context).pipe(Effect.provide(AppConstantRunnerPromiseLive))), { signal: context.signal });
55
+ if (Result.isFailure(result))
56
+ throw result.failure.cause;
57
+ return result.success;
27
58
  },
28
59
  });
60
+ return resolver;
61
+ })));
62
+ /** Builds a context resolver synchronously for existing application callers.
63
+ * @param options - Constants, prompts, and resolved environment values.
64
+ * @returns A resolver with Promise and Effect execution paths.
65
+ * @throws TypeError when constant names collide.
66
+ * @example createApplicationContextResolver({ env: {} });
67
+ */
68
+ export function createApplicationContextResolver(options) {
69
+ const result = Effect.runSync(Effect.result(createApplicationContextResolverEffect(options)));
70
+ if (Result.isFailure(result))
71
+ throw result.failure.cause;
72
+ return result.success;
73
+ }
74
+ /** Keeps the original error available to the Promise adapter. */
75
+ function failure(cause) {
76
+ return new ContextResolutionFailure({
77
+ message: cause.message,
78
+ cause,
79
+ });
80
+ }
81
+ /** Waits for caller cancellation and removes its listener on every race exit. */
82
+ function waitForAbort(signal) {
83
+ return Effect.callback((resume) => {
84
+ if (signal.aborted) {
85
+ resume(Effect.interrupt);
86
+ return;
87
+ }
88
+ let notified = false;
89
+ const onAbort = () => {
90
+ notified = true;
91
+ resume(Effect.interrupt);
92
+ };
93
+ signal.addEventListener("abort", onAbort, { once: true });
94
+ if (notified || signal.aborted) {
95
+ signal.removeEventListener("abort", onAbort);
96
+ if (!notified)
97
+ resume(Effect.interrupt);
98
+ return;
99
+ }
100
+ return Effect.sync(() => signal.removeEventListener("abort", onAbort));
101
+ });
29
102
  }
30
103
  //# sourceMappingURL=context-resolver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"context-resolver.js","sourceRoot":"","sources":["../src/context-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAmB1C,MAAM,UAAU,gCAAgC,CAAC,OAIhD;IACC,MAAM,YAAY,GAA4B,EAAE,CAAC;IACjD,MAAM,SAAS,GAAiC,EAAE,CAAC;IACnD,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,CAAC;QAChE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7D,IAAI,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,GAAG,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBACjF,MAAM,IAAI,SAAS,CAAC,aAAa,GAAG,gCAAgC,CAAC,CAAC;YACxE,CAAC;YACD,IAAI,OAAO,KAAK,KAAK,UAAU;gBAAE,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;;gBACzD,YAAY,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC7E,CAAC;IACH,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAC3B,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAC1F,CACF,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,KAAK,CAAC,OAAO,CAAC,OAAqE;YACjF,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,SAAS,CAAC,GAAG,CACX,KAAK,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,EAAE,CACxB;gBACE,GAAG;gBACH,MAAM,QAAQ,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;aACtE,CACb,CACF,CAAC;YACF,OAAO;gBACL,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,YAAY,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC7E,OAAO;aACR,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"context-resolver.js","sourceRoot":"","sources":["../src/context-resolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ import type { PublicLogger } from "@relkit/invocation";
2
+ import type { Effect } from "effect";
3
+ import type { ConstantsDescriptor, PromptDescriptor, PromptValue } from "./context-descriptors.types.js";
4
+ import type { AppConstantRunner } from "./context-resolution-service.js";
5
+ import type { ContextResolutionFailure } from "./context-resolver.js";
6
+ /** Static and dynamic descriptor inputs for one context resolver.
7
+ * @example const options: ApplicationContextOptions = { env: {} };
8
+ */
9
+ export interface ApplicationContextOptions {
10
+ readonly constants?: Readonly<Record<string, ConstantsDescriptor>>;
11
+ readonly prompts?: Readonly<Record<string, PromptDescriptor>>;
12
+ readonly env: Readonly<Record<string, unknown>>;
13
+ }
14
+ /** Invocation inputs required to resolve dynamic constants.
15
+ * @example const context: ApplicationResolveOptions = { signal, log };
16
+ */
17
+ export interface ApplicationResolveOptions {
18
+ readonly signal: AbortSignal;
19
+ readonly log: PublicLogger;
20
+ }
21
+ /** Context values produced by a resolver invocation.
22
+ * @example const constants = resolved.constants;
23
+ */
24
+ export interface ResolvedApplicationContext {
25
+ readonly constants: Readonly<Record<string, unknown>>;
26
+ readonly prompts: Readonly<Record<string, PromptValue>>;
27
+ }
28
+ /** Resolves the current application constants and prompts.
29
+ * @example const resolver: ApplicationContextResolver = createApplicationContextResolver({ env: {} });
30
+ */
31
+ export interface ApplicationContextResolver {
32
+ /** Resolves values in Effect with a replaceable constant runner.
33
+ * @param options - Logger and cancellation signal.
34
+ * @returns Resolved values or ContextResolutionFailure; requires AppConstantRunner.
35
+ * @example Effect.runPromise(resolver.resolveEffect(context).pipe(Effect.provide(AppConstantRunnerLive)));
36
+ */
37
+ readonly resolveEffect: (options: ApplicationResolveOptions) => Effect.Effect<ResolvedApplicationContext, ContextResolutionFailure, AppConstantRunner>;
38
+ /** Promise compatibility adapter for application handlers.
39
+ * @param options - Logger and cancellation signal.
40
+ * @returns Resolved values or a rejection with the original resolver error.
41
+ * @example await resolver.resolve({ signal, log });
42
+ */
43
+ readonly resolve: (options: ApplicationResolveOptions) => Promise<ResolvedApplicationContext>;
44
+ }
45
+ //# sourceMappingURL=context-resolver.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-resolver.types.d.ts","sourceRoot":"","sources":["../src/context-resolver.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EACV,mBAAmB,EACnB,gBAAgB,EAChB,WAAW,EACZ,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEtE;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC;IACnE,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAC9D,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACjD;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACtD,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;CACzD;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC;;;;OAIG;IACH,QAAQ,CAAC,aAAa,EAAE,CACtB,OAAO,EAAE,yBAAyB,KAC/B,MAAM,CAAC,MAAM,CAAC,0BAA0B,EAAE,wBAAwB,EAAE,iBAAiB,CAAC,CAAC;IAC5F;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,yBAAyB,KAAK,OAAO,CAAC,0BAA0B,CAAC,CAAC;CAC/F"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=context-resolver.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-resolver.types.js","sourceRoot":"","sources":["../src/context-resolver.types.ts"],"names":[],"mappings":""}
@@ -1,20 +1,21 @@
1
1
  import type { EnvShape } from "@relkit/config";
2
2
  import { type TelemetryExporterMap } from "@relkit/observability/telemetry";
3
- import { type ApplicationDescriptor, type AppProviderInputs, type DefineAppOptions } from "./define-app-types.js";
4
- export * from "./define-app-types.js";
5
- /**
6
- * Defines one immutable application topology.
7
- *
8
- * @example
9
- * ```ts
10
- * import { defineApp, defineEnv } from "@relkit/app";
11
- * export default defineApp({
12
- * id: "orders-api",
13
- * env: defineEnv({}),
14
- * server: { port: 3000 },
15
- * inspector: { port: 3210 },
16
- * });
17
- * ```
3
+ import { Effect } from "effect";
4
+ import { AppValidationFailure } from "./app-validation.js";
5
+ import type { ApplicationDescriptor, AppProviderInputs, DefineAppOptions } from "./define-app.types.js";
6
+ export * from "./define-app.types.js";
7
+ export { APP_PROVIDER_CAPABILITIES } from "./app-provider-capabilities.js";
8
+ /** Defines one immutable application topology in Effect.
9
+ * @param options - Environment, providers, defaults, and runtime metadata.
10
+ * @returns An application descriptor or AppValidationFailure.
11
+ * @example Effect.runSync(defineAppEffect({ env: defineEnv({}) }));
12
+ */
13
+ export declare const defineAppEffect: <const Shape extends EnvShape, const Providers extends AppProviderInputs, const Exporters extends TelemetryExporterMap = Readonly<Record<string, import("@relkit/observability/telemetry").TelemetryExporterDescriptor<string, string, object>>>>(options: DefineAppOptions<Shape, Providers, Exporters>) => Effect.Effect<ApplicationDescriptor<Shape, Providers, Exporters>, AppValidationFailure, never>;
14
+ /** Defines one immutable application topology synchronously.
15
+ * @param options - Environment, providers, defaults, and runtime metadata.
16
+ * @returns A frozen application descriptor.
17
+ * @throws The original validation error for invalid options.
18
+ * @example defineApp({ env: defineEnv({}), server: { port: 3000 } });
18
19
  * @category Application
19
20
  * @since 0.2.0
20
21
  */
@@ -1 +1 @@
1
- {"version":3,"file":"define-app.d.ts","sourceRoot":"","sources":["../src/define-app.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG/C,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,iCAAiC,CAAC;AAQzC,OAAO,EAEL,KAAK,qBAAqB,EAG1B,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EAEtB,MAAM,uBAAuB,CAAC;AAE/B,cAAc,uBAAuB,CAAC;AAkBtC;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,SAAS,CACvB,KAAK,CAAC,KAAK,SAAS,QAAQ,EAC5B,KAAK,CAAC,SAAS,SAAS,iBAAiB,EACzC,KAAK,CAAC,SAAS,SAAS,oBAAoB,GAAG,oBAAoB,EAEnE,OAAO,EAAE,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,GACrD,qBAAqB,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CA4BpD"}
1
+ {"version":3,"file":"define-app.d.ts","sourceRoot":"","sources":["../src/define-app.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG/C,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,MAAM,EAAU,MAAM,QAAQ,CAAC;AAQxC,OAAO,EACL,oBAAoB,EAIrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EACV,qBAAqB,EACrB,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,uBAAuB,CAAC;AAE/B,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAkB3E;;;;GAIG;AACH,eAAO,MAAM,eAAe,SAElB,KAAK,SAAS,QAAQ,QACtB,SAAS,SAAS,iBAAiB,QACnC,SAAS,SAAS,oBAAoB,qRAoD/C,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,SAAS,CACvB,KAAK,CAAC,KAAK,SAAS,QAAQ,EAC5B,KAAK,CAAC,SAAS,SAAS,iBAAiB,EACzC,KAAK,CAAC,SAAS,SAAS,oBAAoB,GAAG,oBAAoB,EAEnE,OAAO,EAAE,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,GACrD,qBAAqB,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAIpD"}
@@ -1,10 +1,13 @@
1
- import { createDescriptorBase, deepFreeze, serializeJson } from "@relkit/contracts";
2
- import { createUnboundIdentity } from "@relkit/invocation";
1
+ import { createDescriptorBase, deepFreeze } from "@relkit/contracts";
2
+ import { createUnboundIdentityEffect, DescriptorIdentityFailure } from "@relkit/invocation";
3
3
  import { normalizeTelemetryConfiguration, } from "@relkit/observability/telemetry";
4
- import { defineProviderCapability, normalizeProviderProfiles, } from "@relkit/provider";
5
- import { assertExclusiveAlias, isEnvDefinition, normalizeCompatibility } from "./app-validation.js";
6
- import { APP_PROVIDER_CAPABILITIES, } from "./define-app-types.js";
7
- export * from "./define-app-types.js";
4
+ import { Effect, Result } from "effect";
5
+ import { observeApp } from "./app-observability.js";
6
+ import { APP_PROVIDER_CAPABILITIES } from "./app-provider-capabilities.js";
7
+ import { copyEffect, normalizeDefaultsEffect, normalizeProvidersEffect, } from "./app-provider-normalization.js";
8
+ import { AppValidationFailure, assertExclusiveAliasEffect, isEnvDefinitionEffect, normalizeCompatibilityEffect, } from "./app-validation.js";
9
+ export * from "./define-app.types.js";
10
+ export { APP_PROVIDER_CAPABILITIES } from "./app-provider-capabilities.js";
8
11
  const OPTION_KEYS = new Set([
9
12
  "id",
10
13
  "title",
@@ -20,72 +23,76 @@ const OPTION_KEYS = new Set([
20
23
  ...APP_PROVIDER_CAPABILITIES,
21
24
  "jobs",
22
25
  ]);
23
- /**
24
- * Defines one immutable application topology.
25
- *
26
- * @example
27
- * ```ts
28
- * import { defineApp, defineEnv } from "@relkit/app";
29
- * export default defineApp({
30
- * id: "orders-api",
31
- * env: defineEnv({}),
32
- * server: { port: 3000 },
33
- * inspector: { port: 3210 },
34
- * });
35
- * ```
36
- * @category Application
37
- * @since 0.2.0
26
+ /** Defines one immutable application topology in Effect.
27
+ * @param options - Environment, providers, defaults, and runtime metadata.
28
+ * @returns An application descriptor or AppValidationFailure.
29
+ * @example Effect.runSync(defineAppEffect({ env: defineEnv({}) }));
38
30
  */
39
- export function defineApp(options) {
40
- if (!isRecord(options) || !isEnvDefinition(options.env))
41
- throw new TypeError("RELKIT app requires an environment definition");
31
+ export const defineAppEffect = Effect.fn("App.defineApp")((options) => observeApp("define", Effect.gen(function* () {
32
+ if (!isRecord(options) || !(yield* isEnvDefinitionEffect(options.env)))
33
+ return yield* invalid("RELKIT app requires an environment definition");
42
34
  for (const key of Object.keys(options))
43
35
  if (!OPTION_KEYS.has(key))
44
- throw new TypeError(`Unknown defineApp option "${key}"`);
45
- assertExclusiveAlias(options, "jobs", "job", "defineApp");
46
- assertExclusiveAlias((options.defaults ?? {}), "jobs", "job", "defineApp defaults");
47
- const providers = normalizeProviders(options);
48
- const defaults = normalizeDefaults(providers, options.defaults);
49
- const base = createDescriptorBase("app", options.id ?? createUnboundIdentity(), options);
36
+ return yield* invalid(`Unknown defineApp option "${key}"`);
37
+ yield* assertExclusiveAliasEffect(options, "jobs", "job", "defineApp");
38
+ yield* assertExclusiveAliasEffect(options.defaults ?? {}, "jobs", "job", "defineApp defaults");
39
+ const providers = yield* normalizeProvidersEffect(options);
40
+ const defaults = yield* normalizeDefaultsEffect(providers, options.defaults);
41
+ const id = options.id ?? (yield* createUnboundIdentityEffect().pipe(Effect.mapError(fromCause)));
42
+ const base = yield* Effect.try({
43
+ try: () => createDescriptorBase("app", id, options),
44
+ catch: fromCause,
45
+ });
46
+ const compatibility = yield* normalizeCompatibilityEffect(options.compatibility);
47
+ const telemetry = options.telemetry === undefined
48
+ ? undefined
49
+ : yield* Effect.try({
50
+ try: () => normalizeTelemetryConfiguration(options.telemetry),
51
+ catch: fromCause,
52
+ });
53
+ const server = options.server === undefined ? undefined : yield* copyEffect(options.server);
54
+ const inspector = options.inspector === undefined ? undefined : yield* copyEffect(options.inspector);
55
+ const deployment = options.deployment === undefined ? undefined : yield* copyEffect(options.deployment);
50
56
  return deepFreeze({
51
57
  ...base,
52
58
  env: options.env,
53
- compatibility: normalizeCompatibility(options.compatibility),
59
+ compatibility,
54
60
  ...providers,
55
61
  defaults,
56
- ...(options.telemetry === undefined
57
- ? {}
58
- : { telemetry: normalizeTelemetryConfiguration(options.telemetry) }),
59
- ...(options.server === undefined ? {} : { server: copy(options.server) }),
60
- ...(options.inspector === undefined ? {} : { inspector: copy(options.inspector) }),
61
- ...(options.deployment === undefined ? {} : { deployment: copy(options.deployment) }),
62
+ ...(telemetry === undefined ? {} : { telemetry }),
63
+ ...(server === undefined ? {} : { server }),
64
+ ...(inspector === undefined ? {} : { inspector }),
65
+ ...(deployment === undefined ? {} : { deployment }),
62
66
  });
67
+ })));
68
+ /** Defines one immutable application topology synchronously.
69
+ * @param options - Environment, providers, defaults, and runtime metadata.
70
+ * @returns A frozen application descriptor.
71
+ * @throws The original validation error for invalid options.
72
+ * @example defineApp({ env: defineEnv({}), server: { port: 3000 } });
73
+ * @category Application
74
+ * @since 0.2.0
75
+ */
76
+ export function defineApp(options) {
77
+ const result = Effect.runSync(Effect.result(defineAppEffect(options)));
78
+ if (Result.isFailure(result))
79
+ throw result.failure.cause;
80
+ return result.success;
63
81
  }
64
- function normalizeProviders(options) {
65
- const result = {};
66
- for (const capability of APP_PROVIDER_CAPABILITIES) {
67
- const input = capability === "job" ? (options.jobs ?? options.job) : options[capability];
68
- if (input !== undefined)
69
- result[capability] = normalizeProviderProfiles(defineProviderCapability(capability), input);
70
- }
71
- return result;
72
- }
73
- function normalizeDefaults(providers, defaults) {
74
- const result = {};
75
- for (const [rawCapability, selected] of Object.entries(defaults ?? {})) {
76
- const capability = rawCapability === "jobs" ? "job" : rawCapability;
77
- if (!APP_PROVIDER_CAPABILITIES.includes(capability))
78
- throw new TypeError(`Unknown default capability "${capability}"`);
79
- const profiles = providers[capability]?.profiles;
80
- if (typeof selected !== "string" || profiles?.[selected] === undefined)
81
- throw new TypeError(`defaults.${capability} must reference a configured profile`);
82
- result[capability] = selected;
83
- }
84
- return copy(result);
82
+ /** Constructs a typed invalid-input failure. */
83
+ function invalid(message) {
84
+ return Effect.fail(fromCause(new TypeError(message)));
85
85
  }
86
- function copy(value) {
87
- return JSON.parse(serializeJson(value));
86
+ /** Preserves the cause for the synchronous adapter. */
87
+ function fromCause(cause) {
88
+ if (cause instanceof DescriptorIdentityFailure)
89
+ cause = cause.cause;
90
+ return new AppValidationFailure({
91
+ message: cause instanceof Error ? cause.message : String(cause),
92
+ cause,
93
+ });
88
94
  }
95
+ /** Checks for a non-array record. */
89
96
  function isRecord(value) {
90
97
  return value !== null && typeof value === "object" && !Array.isArray(value);
91
98
  }
@@ -1 +1 @@
1
- {"version":3,"file":"define-app.js","sourceRoot":"","sources":["../src/define-app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"define-app.js","sourceRoot":"","sources":["../src/define-app.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ import type { EnvDefinition, EnvShape } from "@relkit/config";
2
+ import type { DescriptorBase, DescriptorMetadata, JsonValue } from "@relkit/contracts";
3
+ import type { TelemetryConfiguration, TelemetryExporterMap } from "@relkit/observability/telemetry";
4
+ import type { AppCompatibilityConfig, InspectorConfig, ServerConfig } from "./app-config.types.js";
5
+ import type { AppProviderDefaults, AppProviderInputs, NormalizedAppProviderDefaults, NormalizedProviders } from "./app-provider.types.js";
6
+ export type { ApiDocsConfig, ServerConfig, InspectorConfig, AppCompatibilityConfig, } from "./app-config.types.js";
7
+ export type { AppProviderCapability, AppProviderInputs, AppProviderDefaults, NormalizedAppProviderDefaults, } from "./app-provider.types.js";
8
+ /** Application telemetry settings parameterized by exporters.
9
+ * @example const telemetry: AppTelemetryConfig = { redaction: { mode: "off" } };
10
+ */
11
+ export type AppTelemetryConfig<Exporters extends TelemetryExporterMap = TelemetryExporterMap> = TelemetryConfiguration<Exporters>;
12
+ /** JSON deployment metadata attached to the application descriptor.
13
+ * @example const deployment: AppDeploymentConfig = { engine: "pulumi" };
14
+ */
15
+ export type AppDeploymentConfig = Readonly<Record<string, JsonValue>>;
16
+ /** Authored application topology and runtime settings.
17
+ * @example const options: DefineAppOptions<{}, {}> = { env: defineEnv({}) };
18
+ */
19
+ export type DefineAppOptions<Shape extends EnvShape, Providers extends AppProviderInputs, Exporters extends TelemetryExporterMap = TelemetryExporterMap> = DescriptorMetadata & Providers & {
20
+ readonly id?: string;
21
+ readonly env: EnvDefinition<Shape>;
22
+ readonly defaults?: AppProviderDefaults<Providers>;
23
+ readonly compatibility?: AppCompatibilityConfig;
24
+ readonly telemetry?: AppTelemetryConfig<Exporters>;
25
+ readonly server?: ServerConfig;
26
+ readonly inspector?: InspectorConfig;
27
+ readonly deployment?: AppDeploymentConfig;
28
+ };
29
+ /** Immutable normalized application descriptor returned by `defineApp`.
30
+ * @example const descriptor: ApplicationDescriptor = defineApp({ env: defineEnv({}) });
31
+ */
32
+ export type ApplicationDescriptor<Shape extends EnvShape = EnvShape, Providers extends AppProviderInputs = AppProviderInputs, Exporters extends TelemetryExporterMap = TelemetryExporterMap> = DescriptorBase<"app", string> & NormalizedProviders<Providers> & {
33
+ readonly env: EnvDefinition<Shape>;
34
+ readonly defaults: NormalizedAppProviderDefaults<Providers>;
35
+ readonly compatibility: {
36
+ readonly legacyJobs: boolean;
37
+ };
38
+ readonly telemetry?: AppTelemetryConfig<Exporters>;
39
+ readonly server?: ServerConfig;
40
+ readonly inspector?: InspectorConfig;
41
+ readonly deployment?: AppDeploymentConfig;
42
+ };
43
+ //# sourceMappingURL=define-app.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define-app.types.d.ts","sourceRoot":"","sources":["../src/define-app.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACvF,OAAO,KAAK,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACpG,OAAO,KAAK,EAAE,sBAAsB,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACnG,OAAO,KAAK,EACV,mBAAmB,EACnB,iBAAiB,EACjB,6BAA6B,EAC7B,mBAAmB,EACpB,MAAM,yBAAyB,CAAC;AAEjC,YAAY,EACV,aAAa,EACb,YAAY,EACZ,eAAe,EACf,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,qBAAqB,EACrB,iBAAiB,EACjB,mBAAmB,EACnB,6BAA6B,GAC9B,MAAM,yBAAyB,CAAC;AAEjC;;GAEG;AACH,MAAM,MAAM,kBAAkB,CAAC,SAAS,SAAS,oBAAoB,GAAG,oBAAoB,IAC1F,sBAAsB,CAAC,SAAS,CAAC,CAAC;AAEpC;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;AAEtE;;GAEG;AACH,MAAM,MAAM,gBAAgB,CAC1B,KAAK,SAAS,QAAQ,EACtB,SAAS,SAAS,iBAAiB,EACnC,SAAS,SAAS,oBAAoB,GAAG,oBAAoB,IAC3D,kBAAkB,GACpB,SAAS,GAAG;IACV,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;IACnC,QAAQ,CAAC,QAAQ,CAAC,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC;IACnD,QAAQ,CAAC,aAAa,CAAC,EAAE,sBAAsB,CAAC;IAChD,QAAQ,CAAC,SAAS,CAAC,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC;IACnD,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,SAAS,CAAC,EAAE,eAAe,CAAC;IACrC,QAAQ,CAAC,UAAU,CAAC,EAAE,mBAAmB,CAAC;CAC3C,CAAC;AAEJ;;GAEG;AACH,MAAM,MAAM,qBAAqB,CAC/B,KAAK,SAAS,QAAQ,GAAG,QAAQ,EACjC,SAAS,SAAS,iBAAiB,GAAG,iBAAiB,EACvD,SAAS,SAAS,oBAAoB,GAAG,oBAAoB,IAC3D,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,GAC/B,mBAAmB,CAAC,SAAS,CAAC,GAAG;IAC/B,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,6BAA6B,CAAC,SAAS,CAAC,CAAC;IAC5D,QAAQ,CAAC,aAAa,EAAE;QAAE,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;KAAE,CAAC;IACzD,QAAQ,CAAC,SAAS,CAAC,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC;IACnD,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,SAAS,CAAC,EAAE,eAAe,CAAC;IACrC,QAAQ,CAAC,UAAU,CAAC,EAAE,mBAAmB,CAAC;CAC3C,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=define-app.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define-app.types.js","sourceRoot":"","sources":["../src/define-app.types.ts"],"names":[],"mappings":""}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export * from "./config.js";
2
2
  export * from "./context-descriptors.js";
3
3
  export * from "./context-resolver.js";
4
+ export { AppConstantRunner, AppConstantRunnerLive } from "./context-resolution-service.js";
4
5
  export * from "@relkit/agents";
5
6
  export * from "@relkit/buckets";
6
7
  export * from "@relkit/cache";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,YAAY,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACnG,cAAc,cAAc,CAAC;AAC7B,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACnF,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAC3F,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,YAAY,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACnG,cAAc,cAAc,CAAC;AAC7B,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACnF,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC"}
package/dist/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  export * from "./config.js";
2
2
  export * from "./context-descriptors.js";
3
3
  export * from "./context-resolver.js";
4
+ export { AppConstantRunner, AppConstantRunnerLive } from "./context-resolution-service.js";
4
5
  export * from "@relkit/agents";
5
6
  export * from "@relkit/buckets";
6
7
  export * from "@relkit/cache";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,cAAc,cAAc,CAAC;AAE7B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAC3F,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,cAAc,cAAc,CAAC;AAE7B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@relkit/app",
3
- "version": "0.5.1",
3
+ "version": "0.5.4",
4
4
  "description": "The primary typed application-authoring API for RELKIT.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -85,26 +85,33 @@
85
85
  }
86
86
  },
87
87
  "dependencies": {
88
- "@relkit/agents": "0.5.1",
89
- "@relkit/buckets": "0.5.1",
90
- "@relkit/cache": "0.5.1",
91
- "@relkit/config": "0.5.1",
92
- "@relkit/contracts": "0.5.1",
93
- "@relkit/events": "0.5.1",
94
- "@relkit/functions": "0.5.1",
95
- "@relkit/invocation": "0.5.1",
96
- "@relkit/jobs": "0.5.1",
97
- "@relkit/observability": "0.5.1",
98
- "@relkit/provider": "0.5.1",
99
- "@relkit/realtime": "0.5.1",
100
- "@relkit/routes": "0.5.1",
101
- "@relkit/schema": "0.5.1",
102
- "@relkit/services": "0.5.1",
103
- "@relkit/tools": "0.5.1"
88
+ "@relkit/agents": "0.5.4",
89
+ "@relkit/buckets": "0.5.4",
90
+ "@relkit/cache": "0.5.4",
91
+ "@relkit/config": "0.5.4",
92
+ "@relkit/contracts": "0.5.4",
93
+ "@relkit/events": "0.5.4",
94
+ "@relkit/functions": "0.5.4",
95
+ "@relkit/invocation": "0.5.4",
96
+ "@relkit/jobs": "0.5.4",
97
+ "@relkit/observability": "0.5.4",
98
+ "@relkit/provider": "0.5.4",
99
+ "@relkit/realtime": "0.5.4",
100
+ "@relkit/routes": "0.5.4",
101
+ "@relkit/schema": "0.5.4",
102
+ "@relkit/services": "0.5.4",
103
+ "@relkit/tools": "0.5.4",
104
+ "effect": "4.0.0-rc.115"
105
+ },
106
+ "devDependencies": {
107
+ "@vitest/coverage-v8": "5.0.1",
108
+ "vitest": "5.0.1"
104
109
  },
105
110
  "scripts": {
106
111
  "build": "tsc -b",
107
112
  "check": "tsc -b --pretty false",
108
- "typecheck": "tsc -b --pretty false"
113
+ "typecheck": "tsc -b --pretty false",
114
+ "test": "vitest run --config vitest.config.ts",
115
+ "test:coverage": "vitest run --config vitest.config.ts --coverage"
109
116
  }
110
117
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"define-app-types.d.ts","sourceRoot":"","sources":["../src/define-app-types.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"define-app-types.js","sourceRoot":"","sources":["../src/define-app-types.ts"],"names":[],"mappings":"AAkCA,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,QAAQ;IACR,OAAO;IACP,KAAK;IACL,OAAO;IACP,OAAO;IACP,UAAU;IACV,aAAa;CACL,CAAC"}