@relkit/app 0.0.5 → 0.3.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 +21 -42
- package/dist/app-validation.d.ts +4 -0
- package/dist/app-validation.d.ts.map +1 -0
- package/dist/app-validation.js +23 -0
- package/dist/app-validation.js.map +1 -0
- package/dist/config.d.ts +2 -32
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +2 -74
- package/dist/config.js.map +1 -1
- package/dist/define-app-types.d.ts +59 -0
- package/dist/define-app-types.d.ts.map +1 -0
- package/dist/define-app-types.js +2 -0
- package/dist/define-app-types.js.map +1 -0
- package/dist/define-app.d.ts +22 -0
- package/dist/define-app.d.ts.map +1 -0
- package/dist/define-app.js +86 -0
- package/dist/define-app.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +16 -14
- package/dist/config-types.d.ts +0 -58
- package/dist/config-types.d.ts.map +0 -1
- package/dist/config-types.js +0 -2
- package/dist/config-types.js.map +0 -1
- package/dist/config-validation.d.ts +0 -10
- package/dist/config-validation.d.ts.map +0 -1
- package/dist/config-validation.js +0 -83
- package/dist/config-validation.js.map +0 -1
- package/dist/model-providers.d.ts +0 -18
- package/dist/model-providers.d.ts.map +0 -1
- package/dist/model-providers.js +0 -48
- package/dist/model-providers.js.map +0 -1
- package/dist/providers-validation-utils.d.ts +0 -13
- package/dist/providers-validation-utils.d.ts.map +0 -1
- package/dist/providers-validation-utils.js +0 -155
- package/dist/providers-validation-utils.js.map +0 -1
- package/dist/providers-validation.d.ts +0 -8
- package/dist/providers-validation.d.ts.map +0 -1
- package/dist/providers-validation.js +0 -130
- package/dist/providers-validation.js.map +0 -1
- package/dist/providers.d.ts +0 -107
- package/dist/providers.d.ts.map +0 -1
- package/dist/providers.js +0 -78
- package/dist/providers.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,54 +1,33 @@
|
|
|
1
1
|
# @relkit/app
|
|
2
2
|
|
|
3
|
-
`@relkit/app` is the public entry point for application configuration
|
|
4
|
-
|
|
5
|
-
registered by their own discovered descriptors.
|
|
3
|
+
`@relkit/app` is the public entry point for application configuration and descriptors. Provider
|
|
4
|
+
implementations live in independently installable integration packages.
|
|
6
5
|
|
|
7
6
|
```ts
|
|
8
|
-
import
|
|
7
|
+
import "@relkit/pulumi";
|
|
8
|
+
import { defineApp, defineEnv, env as binding } from "@relkit/app/config";
|
|
9
|
+
import { aws } from "@relkit/aws";
|
|
10
|
+
import { docker } from "@relkit/docker";
|
|
11
|
+
import { redis } from "@relkit/redis";
|
|
12
|
+
import { s3 } from "@relkit/s3";
|
|
9
13
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
BUCKET_SECRET_ACCESS_KEY: env.secret().optional(),
|
|
16
|
-
CACHE_URL: env.secret(),
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
export default defineConfig({
|
|
20
|
-
env: values,
|
|
21
|
-
buckets: {
|
|
22
|
-
assets: external(
|
|
23
|
-
s3({
|
|
24
|
-
endpoint: values.BUCKET_ENDPOINT,
|
|
25
|
-
bucketName: values.BUCKET_NAME,
|
|
26
|
-
region: values.BUCKET_REGION,
|
|
27
|
-
credentials: {
|
|
28
|
-
accessKeyId: values.BUCKET_ACCESS_KEY_ID,
|
|
29
|
-
secretAccessKey: values.BUCKET_SECRET_ACCESS_KEY,
|
|
30
|
-
},
|
|
31
|
-
}),
|
|
32
|
-
),
|
|
14
|
+
export default defineApp({
|
|
15
|
+
env: defineEnv({}),
|
|
16
|
+
cache: {
|
|
17
|
+
requests: docker(redis({ url: binding.secret("REQUESTS_REDIS_URL") })),
|
|
18
|
+
timeline: aws(redis(), { engine: "valkey" }),
|
|
33
19
|
},
|
|
34
|
-
|
|
35
|
-
defaults: {
|
|
20
|
+
bucket: { receipts: aws(s3(), { versioning: true }) },
|
|
21
|
+
defaults: { cache: "requests", bucket: "receipts" },
|
|
22
|
+
deployment: { engine: "pulumi", host: "aws" },
|
|
36
23
|
server: { port: 3000 },
|
|
37
24
|
inspector: { port: 3210 },
|
|
38
25
|
});
|
|
39
26
|
```
|
|
40
27
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
28
|
+
Direct adapters describe connected services. `docker(adapter)` adds a local development recipe, and
|
|
29
|
+
`aws(adapter)` makes AWS own that resource in deployment. Named binding values are private to their
|
|
30
|
+
provider binding and do not become handler-visible `ctx.env` fields.
|
|
44
31
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
```ts
|
|
49
|
-
export default defineConfig({
|
|
50
|
-
deployment: { target: "aws", adapter: "pulumi" },
|
|
51
|
-
server: { port: 3000 },
|
|
52
|
-
inspector: { port: 3210 },
|
|
53
|
-
});
|
|
54
|
-
```
|
|
32
|
+
Cloud and deployment default to `none`. Tests provide replacements explicitly by capability and
|
|
33
|
+
profile; environment names never swap providers.
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type EnvDefinition, type EnvShape } from "@relkit/config";
|
|
2
|
+
export declare function isEnvDefinition(value: unknown): value is EnvDefinition<EnvShape>;
|
|
3
|
+
export declare function deriveApplicationId(packageName: string): string;
|
|
4
|
+
//# sourceMappingURL=app-validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-validation.d.ts","sourceRoot":"","sources":["../src/app-validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG7E,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,aAAa,CAAC,QAAQ,CAAC,CAahF;AAED,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAG/D"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { isEnvRef } from "@relkit/config";
|
|
2
|
+
import { normalizeId } from "@relkit/contracts";
|
|
3
|
+
export function isEnvDefinition(value) {
|
|
4
|
+
if (!isRecord(value) || value.kind !== "env-definition" || !isRecord(value.shape))
|
|
5
|
+
return false;
|
|
6
|
+
return Object.entries(value.shape).every(([name, builder]) => {
|
|
7
|
+
const reference = value[name];
|
|
8
|
+
return (isRecord(builder) &&
|
|
9
|
+
builder.kind === "env-builder" &&
|
|
10
|
+
typeof builder.parse === "function" &&
|
|
11
|
+
typeof builder.getDefault === "function" &&
|
|
12
|
+
isEnvRef(reference) &&
|
|
13
|
+
reference.name === name);
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
export function deriveApplicationId(packageName) {
|
|
17
|
+
const normalized = packageName.startsWith("@") ? packageName.slice(1) : packageName;
|
|
18
|
+
return normalizeId(normalized.replaceAll("/", "."));
|
|
19
|
+
}
|
|
20
|
+
function isRecord(value) {
|
|
21
|
+
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=app-validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-validation.js","sourceRoot":"","sources":["../src/app-validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAqC,MAAM,gBAAgB,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAChG,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE;QAC3D,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9B,OAAO,CACL,QAAQ,CAAC,OAAO,CAAC;YACjB,OAAO,CAAC,IAAI,KAAK,aAAa;YAC9B,OAAO,OAAO,CAAC,KAAK,KAAK,UAAU;YACnC,OAAO,OAAO,CAAC,UAAU,KAAK,UAAU;YACxC,QAAQ,CAAC,SAAS,CAAC;YACnB,SAAS,CAAC,IAAI,KAAK,IAAI,CACxB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,WAAmB;IACrD,MAAM,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;IACpF,OAAO,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC"}
|
package/dist/config.d.ts
CHANGED
|
@@ -1,34 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
export * from "./
|
|
3
|
-
export { deriveApplicationId } from "./config-validation.js";
|
|
4
|
-
export * from "./providers.js";
|
|
1
|
+
export { deriveApplicationId } from "./app-validation.js";
|
|
2
|
+
export * from "./define-app.js";
|
|
5
3
|
export * from "@relkit/config";
|
|
6
|
-
/**
|
|
7
|
-
* Defines application, environment, provider, runtime, and deployment settings.
|
|
8
|
-
*
|
|
9
|
-
* @example
|
|
10
|
-
* ```ts
|
|
11
|
-
* import { defineConfig, defineEnv, env, external, s3 } from "@relkit/app/config"
|
|
12
|
-
*
|
|
13
|
-
* const values = defineEnv({
|
|
14
|
-
* BUCKET_ENDPOINT: env.url(),
|
|
15
|
-
* BUCKET_NAME: env.string(),
|
|
16
|
-
* })
|
|
17
|
-
*
|
|
18
|
-
* export default defineConfig({
|
|
19
|
-
* env: values,
|
|
20
|
-
* buckets: {
|
|
21
|
-
* assets: external(s3({
|
|
22
|
-
* endpoint: values.BUCKET_ENDPOINT,
|
|
23
|
-
* bucketName: values.BUCKET_NAME,
|
|
24
|
-
* region: "us-east-1",
|
|
25
|
-
* })),
|
|
26
|
-
* },
|
|
27
|
-
* defaults: { bucket: "assets" },
|
|
28
|
-
* })
|
|
29
|
-
* ```
|
|
30
|
-
* @category Application
|
|
31
|
-
* @since 0.2.0
|
|
32
|
-
*/
|
|
33
|
-
export declare function defineConfig<const S extends import("@relkit/config").EnvShape, const Maps extends ConfigProviderMaps>(options: DefineConfigOptions<S, Maps>): ApplicationConfigDescriptor<string, S, Maps>;
|
|
34
4
|
//# sourceMappingURL=config.d.ts.map
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC"}
|
package/dist/config.js
CHANGED
|
@@ -1,76 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import { isEnvRef } from "@relkit/config";
|
|
4
|
-
import { copyProviderMaps, isEnvDefinition, resolveDefaults } from "./config-validation.js";
|
|
5
|
-
export * from "./config-types.js";
|
|
6
|
-
export { deriveApplicationId } from "./config-validation.js";
|
|
7
|
-
export * from "./providers.js";
|
|
1
|
+
export { deriveApplicationId } from "./app-validation.js";
|
|
2
|
+
export * from "./define-app.js";
|
|
8
3
|
export * from "@relkit/config";
|
|
9
|
-
/**
|
|
10
|
-
* Defines application, environment, provider, runtime, and deployment settings.
|
|
11
|
-
*
|
|
12
|
-
* @example
|
|
13
|
-
* ```ts
|
|
14
|
-
* import { defineConfig, defineEnv, env, external, s3 } from "@relkit/app/config"
|
|
15
|
-
*
|
|
16
|
-
* const values = defineEnv({
|
|
17
|
-
* BUCKET_ENDPOINT: env.url(),
|
|
18
|
-
* BUCKET_NAME: env.string(),
|
|
19
|
-
* })
|
|
20
|
-
*
|
|
21
|
-
* export default defineConfig({
|
|
22
|
-
* env: values,
|
|
23
|
-
* buckets: {
|
|
24
|
-
* assets: external(s3({
|
|
25
|
-
* endpoint: values.BUCKET_ENDPOINT,
|
|
26
|
-
* bucketName: values.BUCKET_NAME,
|
|
27
|
-
* region: "us-east-1",
|
|
28
|
-
* })),
|
|
29
|
-
* },
|
|
30
|
-
* defaults: { bucket: "assets" },
|
|
31
|
-
* })
|
|
32
|
-
* ```
|
|
33
|
-
* @category Application
|
|
34
|
-
* @since 0.2.0
|
|
35
|
-
*/
|
|
36
|
-
export function defineConfig(options) {
|
|
37
|
-
if (!isRecord(options) || !isEnvDefinition(options.env)) {
|
|
38
|
-
throw new TypeError("RELKIT config requires an environment definition");
|
|
39
|
-
}
|
|
40
|
-
if (options.deployment !== undefined &&
|
|
41
|
-
(options.deployment.target !== "aws" || options.deployment.adapter !== "pulumi")) {
|
|
42
|
-
throw new TypeError("RELKIT deployment must select the aws target and pulumi adapter");
|
|
43
|
-
}
|
|
44
|
-
if (options.sentry?.sendDefaultPii !== undefined && options.sentry.sendDefaultPii !== false) {
|
|
45
|
-
throw new TypeError("Sentry PII collection cannot be enabled through RELKIT config");
|
|
46
|
-
}
|
|
47
|
-
if (options.sentry !== undefined &&
|
|
48
|
-
!((typeof options.sentry.dsn === "string" && options.sentry.dsn.trim() !== "") ||
|
|
49
|
-
isEnvRef(options.sentry.dsn))) {
|
|
50
|
-
throw new TypeError("Sentry dsn must be nonempty text or an environment reference");
|
|
51
|
-
}
|
|
52
|
-
if (options.sentry?.tracesSampleRate !== undefined &&
|
|
53
|
-
(!Number.isFinite(options.sentry.tracesSampleRate) ||
|
|
54
|
-
options.sentry.tracesSampleRate < 0 ||
|
|
55
|
-
options.sentry.tracesSampleRate > 1)) {
|
|
56
|
-
throw new TypeError("Sentry tracesSampleRate must be between 0 and 1");
|
|
57
|
-
}
|
|
58
|
-
const maps = copyProviderMaps(options);
|
|
59
|
-
const defaults = resolveDefaults(maps, options.defaults);
|
|
60
|
-
const base = createDescriptorBase("app", options.id ?? createUnboundIdentity(), options);
|
|
61
|
-
return deepFreeze({
|
|
62
|
-
...base,
|
|
63
|
-
env: options.env,
|
|
64
|
-
...maps,
|
|
65
|
-
...(Object.keys(defaults).length === 0 ? {} : { defaults }),
|
|
66
|
-
...(options.sentry === undefined ? {} : { sentry: { ...options.sentry } }),
|
|
67
|
-
...(options.telemetry === undefined ? {} : { telemetry: { ...options.telemetry } }),
|
|
68
|
-
...(options.server === undefined ? {} : { server: { ...options.server } }),
|
|
69
|
-
...(options.inspector === undefined ? {} : { inspector: { ...options.inspector } }),
|
|
70
|
-
...(options.deployment === undefined ? {} : { deployment: { ...options.deployment } }),
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
function isRecord(value) {
|
|
74
|
-
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
75
|
-
}
|
|
76
4
|
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
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 { NormalizedProviderProfiles, ProviderAdapter, ProviderCapability, ProviderInput, ProviderSourceInput } from "@relkit/provider";
|
|
5
|
+
export interface ApiDocsConfig {
|
|
6
|
+
readonly enabledInProduction?: boolean;
|
|
7
|
+
readonly excludeDomains?: readonly string[];
|
|
8
|
+
}
|
|
9
|
+
export interface ServerConfig {
|
|
10
|
+
readonly port?: number;
|
|
11
|
+
readonly maxBodyBytes?: number;
|
|
12
|
+
readonly apiDocs?: ApiDocsConfig;
|
|
13
|
+
readonly clientContract?: boolean;
|
|
14
|
+
readonly mcp?: boolean;
|
|
15
|
+
}
|
|
16
|
+
export interface InspectorConfig {
|
|
17
|
+
readonly port?: number;
|
|
18
|
+
readonly enabledInProduction?: boolean;
|
|
19
|
+
readonly maxPreviewBytes?: number;
|
|
20
|
+
}
|
|
21
|
+
export declare const APP_PROVIDER_CAPABILITIES: readonly ["bucket", "cache", "job", "event", "model"];
|
|
22
|
+
export type AppProviderCapability = (typeof APP_PROVIDER_CAPABILITIES)[number];
|
|
23
|
+
type CapabilityInput<Capability extends AppProviderCapability> = ProviderInput<ProviderSourceInput<ProviderAdapter<ProviderCapability<Capability>>>>;
|
|
24
|
+
export interface AppProviderInputs {
|
|
25
|
+
readonly bucket?: CapabilityInput<"bucket">;
|
|
26
|
+
readonly cache?: CapabilityInput<"cache">;
|
|
27
|
+
readonly job?: CapabilityInput<"job">;
|
|
28
|
+
readonly event?: CapabilityInput<"event">;
|
|
29
|
+
readonly model?: CapabilityInput<"model">;
|
|
30
|
+
}
|
|
31
|
+
type Profile<Input> = Input extends ProviderSourceInput ? "default" : Extract<keyof Input, string>;
|
|
32
|
+
export type AppProviderDefaults<Providers extends AppProviderInputs> = Readonly<{
|
|
33
|
+
[Capability in AppProviderCapability]?: Capability extends keyof Providers ? Profile<NonNullable<Providers[Capability]>> : never;
|
|
34
|
+
}>;
|
|
35
|
+
export type AppTelemetryConfig<Exporters extends TelemetryExporterMap = TelemetryExporterMap> = TelemetryConfiguration<Exporters>;
|
|
36
|
+
export type AppDeploymentConfig = Readonly<Record<string, JsonValue>>;
|
|
37
|
+
export type DefineAppOptions<Shape extends EnvShape, Providers extends AppProviderInputs, Exporters extends TelemetryExporterMap = TelemetryExporterMap> = DescriptorMetadata & Providers & {
|
|
38
|
+
readonly id?: string;
|
|
39
|
+
readonly env: EnvDefinition<Shape>;
|
|
40
|
+
readonly defaults?: AppProviderDefaults<Providers>;
|
|
41
|
+
readonly telemetry?: AppTelemetryConfig<Exporters>;
|
|
42
|
+
readonly server?: ServerConfig;
|
|
43
|
+
readonly inspector?: InspectorConfig;
|
|
44
|
+
readonly deployment?: AppDeploymentConfig;
|
|
45
|
+
};
|
|
46
|
+
type AdapterOf<Input> = Input extends ProviderSourceInput<infer Adapter> ? Adapter : Input extends Readonly<Record<string, infer Binding>> ? Binding extends ProviderSourceInput<infer Adapter> ? Adapter : never : never;
|
|
47
|
+
type NormalizedProviders<Providers extends AppProviderInputs> = {
|
|
48
|
+
readonly [Capability in keyof Providers & AppProviderCapability]: NormalizedProviderProfiles<AdapterOf<NonNullable<Providers[Capability]>>>;
|
|
49
|
+
};
|
|
50
|
+
export type ApplicationDescriptor<Shape extends EnvShape = EnvShape, Providers extends AppProviderInputs = AppProviderInputs, Exporters extends TelemetryExporterMap = TelemetryExporterMap> = DescriptorBase<"app", string> & NormalizedProviders<Providers> & {
|
|
51
|
+
readonly env: EnvDefinition<Shape>;
|
|
52
|
+
readonly defaults: AppProviderDefaults<Providers>;
|
|
53
|
+
readonly telemetry?: AppTelemetryConfig<Exporters>;
|
|
54
|
+
readonly server?: ServerConfig;
|
|
55
|
+
readonly inspector?: InspectorConfig;
|
|
56
|
+
readonly deployment?: AppDeploymentConfig;
|
|
57
|
+
};
|
|
58
|
+
export {};
|
|
59
|
+
//# 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":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define-app-types.js","sourceRoot":"","sources":["../src/define-app-types.ts"],"names":[],"mappings":"AA8BA,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAU,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { EnvShape } from "@relkit/config";
|
|
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
|
+
* ```
|
|
18
|
+
* @category Application
|
|
19
|
+
* @since 0.2.0
|
|
20
|
+
*/
|
|
21
|
+
export declare function defineApp<const Shape extends EnvShape, const Providers extends AppProviderInputs, const Exporters extends TelemetryExporterMap = TelemetryExporterMap>(options: DefineAppOptions<Shape, Providers, Exporters>): ApplicationDescriptor<Shape, Providers, Exporters>;
|
|
22
|
+
//# sourceMappingURL=define-app.d.ts.map
|
|
@@ -0,0 +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,EACtB,MAAM,uBAAuB,CAAC;AAE/B,cAAc,uBAAuB,CAAC;AAgBtC;;;;;;;;;;;;;;;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,CAoBpD"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { createDescriptorBase, deepFreeze, serializeJson } from "@relkit/contracts";
|
|
2
|
+
import { createUnboundIdentity } from "@relkit/invocation";
|
|
3
|
+
import { normalizeTelemetryConfiguration, } from "@relkit/observability/telemetry";
|
|
4
|
+
import { defineProviderCapability, normalizeProviderProfiles, } from "@relkit/provider";
|
|
5
|
+
import { isEnvDefinition } from "./app-validation.js";
|
|
6
|
+
import { APP_PROVIDER_CAPABILITIES, } from "./define-app-types.js";
|
|
7
|
+
export * from "./define-app-types.js";
|
|
8
|
+
const OPTION_KEYS = new Set([
|
|
9
|
+
"id",
|
|
10
|
+
"title",
|
|
11
|
+
"description",
|
|
12
|
+
"tags",
|
|
13
|
+
"env",
|
|
14
|
+
"defaults",
|
|
15
|
+
"telemetry",
|
|
16
|
+
"server",
|
|
17
|
+
"inspector",
|
|
18
|
+
"deployment",
|
|
19
|
+
...APP_PROVIDER_CAPABILITIES,
|
|
20
|
+
]);
|
|
21
|
+
/**
|
|
22
|
+
* Defines one immutable application topology.
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```ts
|
|
26
|
+
* import { defineApp, defineEnv } from "@relkit/app";
|
|
27
|
+
* export default defineApp({
|
|
28
|
+
* id: "orders-api",
|
|
29
|
+
* env: defineEnv({}),
|
|
30
|
+
* server: { port: 3000 },
|
|
31
|
+
* inspector: { port: 3210 },
|
|
32
|
+
* });
|
|
33
|
+
* ```
|
|
34
|
+
* @category Application
|
|
35
|
+
* @since 0.2.0
|
|
36
|
+
*/
|
|
37
|
+
export function defineApp(options) {
|
|
38
|
+
if (!isRecord(options) || !isEnvDefinition(options.env))
|
|
39
|
+
throw new TypeError("RELKIT app requires an environment definition");
|
|
40
|
+
for (const key of Object.keys(options))
|
|
41
|
+
if (!OPTION_KEYS.has(key))
|
|
42
|
+
throw new TypeError(`Unknown defineApp option "${key}"`);
|
|
43
|
+
const providers = normalizeProviders(options);
|
|
44
|
+
const defaults = normalizeDefaults(providers, options.defaults);
|
|
45
|
+
const base = createDescriptorBase("app", options.id ?? createUnboundIdentity(), options);
|
|
46
|
+
return deepFreeze({
|
|
47
|
+
...base,
|
|
48
|
+
env: options.env,
|
|
49
|
+
...providers,
|
|
50
|
+
defaults,
|
|
51
|
+
...(options.telemetry === undefined
|
|
52
|
+
? {}
|
|
53
|
+
: { telemetry: normalizeTelemetryConfiguration(options.telemetry) }),
|
|
54
|
+
...(options.server === undefined ? {} : { server: copy(options.server) }),
|
|
55
|
+
...(options.inspector === undefined ? {} : { inspector: copy(options.inspector) }),
|
|
56
|
+
...(options.deployment === undefined ? {} : { deployment: copy(options.deployment) }),
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
function normalizeProviders(options) {
|
|
60
|
+
const result = {};
|
|
61
|
+
for (const capability of APP_PROVIDER_CAPABILITIES) {
|
|
62
|
+
const input = options[capability];
|
|
63
|
+
if (input !== undefined)
|
|
64
|
+
result[capability] = normalizeProviderProfiles(defineProviderCapability(capability), input);
|
|
65
|
+
}
|
|
66
|
+
return result;
|
|
67
|
+
}
|
|
68
|
+
function normalizeDefaults(providers, defaults) {
|
|
69
|
+
const result = {};
|
|
70
|
+
for (const [capability, selected] of Object.entries(defaults ?? {})) {
|
|
71
|
+
if (!APP_PROVIDER_CAPABILITIES.includes(capability))
|
|
72
|
+
throw new TypeError(`Unknown default capability "${capability}"`);
|
|
73
|
+
const profiles = providers[capability]?.profiles;
|
|
74
|
+
if (typeof selected !== "string" || profiles?.[selected] === undefined)
|
|
75
|
+
throw new TypeError(`defaults.${capability} must reference a configured profile`);
|
|
76
|
+
result[capability] = selected;
|
|
77
|
+
}
|
|
78
|
+
return copy(result);
|
|
79
|
+
}
|
|
80
|
+
function copy(value) {
|
|
81
|
+
return JSON.parse(serializeJson(value));
|
|
82
|
+
}
|
|
83
|
+
function isRecord(value) {
|
|
84
|
+
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=define-app.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define-app.js","sourceRoot":"","sources":["../src/define-app.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export * from "@relkit/buckets";
|
|
|
6
6
|
export * from "@relkit/cache";
|
|
7
7
|
export * from "@relkit/events";
|
|
8
8
|
export * from "@relkit/functions";
|
|
9
|
+
export { bindDescriptorIdentity } from "@relkit/invocation";
|
|
9
10
|
export type { EventAttributeValue, EventPublishOptions, EventPublishResult } from "@relkit/events";
|
|
10
11
|
export * from "@relkit/jobs";
|
|
11
12
|
export * from "@relkit/routes";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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,YAAY,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACnG,cAAc,cAAc,CAAC;AAC7B,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,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,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -6,6 +6,7 @@ export * from "@relkit/buckets";
|
|
|
6
6
|
export * from "@relkit/cache";
|
|
7
7
|
export * from "@relkit/events";
|
|
8
8
|
export * from "@relkit/functions";
|
|
9
|
+
export { bindDescriptorIdentity } from "@relkit/invocation";
|
|
9
10
|
export * from "@relkit/jobs";
|
|
10
11
|
export * from "@relkit/routes";
|
|
11
12
|
export * from "@relkit/services";
|
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;
|
|
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;AAC7B,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.0
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "The primary typed application-authoring API for RELKIT.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -73,19 +73,21 @@
|
|
|
73
73
|
}
|
|
74
74
|
},
|
|
75
75
|
"dependencies": {
|
|
76
|
-
"@relkit/agents": "0.0
|
|
77
|
-
"@relkit/buckets": "0.0
|
|
78
|
-
"@relkit/cache": "0.0
|
|
79
|
-
"@relkit/config": "0.0
|
|
80
|
-
"@relkit/contracts": "0.0
|
|
81
|
-
"@relkit/events": "0.0
|
|
82
|
-
"@relkit/functions": "0.0
|
|
83
|
-
"@relkit/invocation": "0.0
|
|
84
|
-
"@relkit/jobs": "0.0
|
|
85
|
-
"@relkit/
|
|
86
|
-
"@relkit/
|
|
87
|
-
"@relkit/
|
|
88
|
-
"@relkit/
|
|
76
|
+
"@relkit/agents": "0.3.0",
|
|
77
|
+
"@relkit/buckets": "0.3.0",
|
|
78
|
+
"@relkit/cache": "0.3.0",
|
|
79
|
+
"@relkit/config": "0.3.0",
|
|
80
|
+
"@relkit/contracts": "0.3.0",
|
|
81
|
+
"@relkit/events": "0.3.0",
|
|
82
|
+
"@relkit/functions": "0.3.0",
|
|
83
|
+
"@relkit/invocation": "0.3.0",
|
|
84
|
+
"@relkit/jobs": "0.3.0",
|
|
85
|
+
"@relkit/observability": "0.3.0",
|
|
86
|
+
"@relkit/provider": "0.3.0",
|
|
87
|
+
"@relkit/routes": "0.3.0",
|
|
88
|
+
"@relkit/schema": "0.3.0",
|
|
89
|
+
"@relkit/services": "0.3.0",
|
|
90
|
+
"@relkit/tools": "0.3.0"
|
|
89
91
|
},
|
|
90
92
|
"scripts": {
|
|
91
93
|
"build": "tsc -b",
|
package/dist/config-types.d.ts
DELETED
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import type { EnvDefinition, EnvRef, EnvShape } from "@relkit/config";
|
|
2
|
-
import type { DescriptorBase, DescriptorMetadata, JsonValue } from "@relkit/contracts";
|
|
3
|
-
import type { CapabilityBindings } from "./providers.js";
|
|
4
|
-
export interface ApiDocsConfig {
|
|
5
|
-
readonly enabledInProduction?: boolean;
|
|
6
|
-
}
|
|
7
|
-
export interface ServerConfig {
|
|
8
|
-
readonly port?: number;
|
|
9
|
-
readonly maxBodyBytes?: number;
|
|
10
|
-
readonly apiDocs?: ApiDocsConfig;
|
|
11
|
-
readonly clientContract?: boolean;
|
|
12
|
-
readonly mcp?: boolean;
|
|
13
|
-
}
|
|
14
|
-
export interface InspectorConfig {
|
|
15
|
-
readonly port?: number;
|
|
16
|
-
readonly enabledInProduction?: boolean;
|
|
17
|
-
readonly maxPreviewBytes?: number;
|
|
18
|
-
}
|
|
19
|
-
export interface DeploymentConfig {
|
|
20
|
-
readonly target: "aws";
|
|
21
|
-
readonly adapter: "pulumi";
|
|
22
|
-
}
|
|
23
|
-
export interface SentryConfig {
|
|
24
|
-
readonly dsn: string | EnvRef;
|
|
25
|
-
readonly tracesSampleRate?: number;
|
|
26
|
-
readonly sendDefaultPii?: false;
|
|
27
|
-
}
|
|
28
|
-
export interface ConfigProviderMaps {
|
|
29
|
-
readonly buckets?: CapabilityBindings<"buckets">;
|
|
30
|
-
readonly caches?: CapabilityBindings<"cache">;
|
|
31
|
-
readonly jobs?: CapabilityBindings<"jobs">;
|
|
32
|
-
readonly events?: CapabilityBindings<"events">;
|
|
33
|
-
readonly models?: CapabilityBindings<"models">;
|
|
34
|
-
readonly observability?: CapabilityBindings<"observability">;
|
|
35
|
-
}
|
|
36
|
-
type Profile<Map> = Extract<keyof NonNullable<Map>, string>;
|
|
37
|
-
export type CapabilityDefaults<Maps extends ConfigProviderMaps> = Readonly<{
|
|
38
|
-
bucket?: Profile<Maps["buckets"]>;
|
|
39
|
-
cache?: Profile<Maps["caches"]>;
|
|
40
|
-
job?: Profile<Maps["jobs"]>;
|
|
41
|
-
event?: Profile<Maps["events"]>;
|
|
42
|
-
model?: Profile<Maps["models"]>;
|
|
43
|
-
observability?: Profile<Maps["observability"]>;
|
|
44
|
-
}>;
|
|
45
|
-
export type TelemetryConfig = Readonly<Record<string, JsonValue | EnvRef>>;
|
|
46
|
-
export type DefineConfigOptions<S extends EnvShape, Maps extends ConfigProviderMaps> = DescriptorMetadata & Maps & {
|
|
47
|
-
readonly id?: string;
|
|
48
|
-
readonly env: EnvDefinition<S>;
|
|
49
|
-
readonly defaults?: CapabilityDefaults<Maps>;
|
|
50
|
-
readonly sentry?: SentryConfig;
|
|
51
|
-
readonly telemetry?: TelemetryConfig;
|
|
52
|
-
readonly server?: ServerConfig;
|
|
53
|
-
readonly inspector?: InspectorConfig;
|
|
54
|
-
readonly deployment?: DeploymentConfig;
|
|
55
|
-
};
|
|
56
|
-
export type ApplicationConfigDescriptor<Id extends string = string, S extends EnvShape = EnvShape, Maps extends ConfigProviderMaps = ConfigProviderMaps> = DescriptorBase<"app", Id> & Omit<DefineConfigOptions<S, Maps>, keyof DescriptorMetadata | "id">;
|
|
57
|
-
export {};
|
|
58
|
-
//# sourceMappingURL=config-types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config-types.d.ts","sourceRoot":"","sources":["../src/config-types.ts"],"names":[],"mappings":"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"}
|
package/dist/config-types.js
DELETED
package/dist/config-types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config-types.js","sourceRoot":"","sources":["../src/config-types.ts"],"names":[],"mappings":""}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { type EnvDefinition, type EnvShape } from "@relkit/config";
|
|
2
|
-
import type { ConfigProviderMaps } from "./config-types.js";
|
|
3
|
-
import { type ProviderTopology } from "./providers.js";
|
|
4
|
-
export declare function copyProviderMaps(value: ConfigProviderMaps): ConfigProviderMaps;
|
|
5
|
-
export declare function providerTopology(value: ConfigProviderMaps): ProviderTopology;
|
|
6
|
-
export declare function validateDefaults(maps: ConfigProviderMaps, defaults: Readonly<Record<string, unknown>> | undefined): void;
|
|
7
|
-
export declare function resolveDefaults(maps: ConfigProviderMaps, defaults: Readonly<Record<string, unknown>> | undefined): Readonly<Record<string, string>>;
|
|
8
|
-
export declare function isEnvDefinition(value: unknown): value is EnvDefinition<EnvShape>;
|
|
9
|
-
export declare function deriveApplicationId(packageName: string): string;
|
|
10
|
-
//# sourceMappingURL=config-validation.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config-validation.d.ts","sourceRoot":"","sources":["../src/config-validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAwB,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAY7E,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,kBAAkB,GAAG,kBAAkB,CAU9E;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,kBAAkB,GAAG,gBAAgB,CAS5E;AAED,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,kBAAkB,EACxB,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,GACtD,IAAI,CAiBN;AAED,wBAAgB,eAAe,CAC7B,IAAI,EAAE,kBAAkB,EACxB,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,GACtD,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAUlC;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,aAAa,CAAC,QAAQ,CAAC,CAahF;AAED,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAG/D"}
|