@relkit/app 0.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/LICENSE +21 -0
- package/README.md +54 -0
- package/dist/agents.d.ts +2 -0
- package/dist/agents.d.ts.map +1 -0
- package/dist/agents.js +2 -0
- package/dist/agents.js.map +1 -0
- package/dist/buckets.d.ts +2 -0
- package/dist/buckets.d.ts.map +1 -0
- package/dist/buckets.js +2 -0
- package/dist/buckets.js.map +1 -0
- package/dist/cache.d.ts +2 -0
- package/dist/cache.d.ts.map +1 -0
- package/dist/cache.js +2 -0
- package/dist/cache.js.map +1 -0
- package/dist/config-types.d.ts +58 -0
- package/dist/config-types.d.ts.map +1 -0
- package/dist/config-types.js +2 -0
- package/dist/config-types.js.map +1 -0
- package/dist/config-validation.d.ts +10 -0
- package/dist/config-validation.d.ts.map +1 -0
- package/dist/config-validation.js +83 -0
- package/dist/config-validation.js.map +1 -0
- package/dist/config.d.ts +34 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +76 -0
- package/dist/config.js.map +1 -0
- package/dist/context-descriptors.d.ts +27 -0
- package/dist/context-descriptors.d.ts.map +1 -0
- package/dist/context-descriptors.js +41 -0
- package/dist/context-descriptors.js.map +1 -0
- package/dist/context-resolver.d.ts +17 -0
- package/dist/context-resolver.d.ts.map +1 -0
- package/dist/context-resolver.js +30 -0
- package/dist/context-resolver.js.map +1 -0
- package/dist/events.d.ts +2 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +2 -0
- package/dist/events.js.map +1 -0
- package/dist/functions.d.ts +2 -0
- package/dist/functions.d.ts.map +1 -0
- package/dist/functions.js +2 -0
- package/dist/functions.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -0
- package/dist/jobs.d.ts +2 -0
- package/dist/jobs.d.ts.map +1 -0
- package/dist/jobs.js +2 -0
- package/dist/jobs.js.map +1 -0
- package/dist/model-providers.d.ts +18 -0
- package/dist/model-providers.d.ts.map +1 -0
- package/dist/model-providers.js +48 -0
- package/dist/model-providers.js.map +1 -0
- package/dist/providers-validation-utils.d.ts +13 -0
- package/dist/providers-validation-utils.d.ts.map +1 -0
- package/dist/providers-validation-utils.js +155 -0
- package/dist/providers-validation-utils.js.map +1 -0
- package/dist/providers-validation.d.ts +8 -0
- package/dist/providers-validation.d.ts.map +1 -0
- package/dist/providers-validation.js +130 -0
- package/dist/providers-validation.js.map +1 -0
- package/dist/providers.d.ts +107 -0
- package/dist/providers.d.ts.map +1 -0
- package/dist/providers.js +78 -0
- package/dist/providers.js.map +1 -0
- package/dist/routes.d.ts +2 -0
- package/dist/routes.d.ts.map +1 -0
- package/dist/routes.js +2 -0
- package/dist/routes.js.map +1 -0
- package/dist/schema.d.ts +2 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/schema.js +2 -0
- package/dist/schema.js.map +1 -0
- package/dist/services.d.ts +2 -0
- package/dist/services.d.ts.map +1 -0
- package/dist/services.js +2 -0
- package/dist/services.js.map +1 -0
- package/dist/tools.d.ts +2 -0
- package/dist/tools.d.ts.map +1 -0
- package/dist/tools.js +2 -0
- package/dist/tools.js.map +1 -0
- package/package.json +95 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 rel-kit
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# @relkit/app
|
|
2
|
+
|
|
3
|
+
`@relkit/app` is the public entry point for application configuration, descriptors, and composable
|
|
4
|
+
provider bindings. `relkit.config.ts` contains settings and provider profiles; database and auth are
|
|
5
|
+
registered by their own discovered descriptors.
|
|
6
|
+
|
|
7
|
+
```ts
|
|
8
|
+
import { defineConfig, defineEnv, env, external, redis, s3 } from "@relkit/app/config";
|
|
9
|
+
|
|
10
|
+
const values = defineEnv({
|
|
11
|
+
BUCKET_ENDPOINT: env.url(),
|
|
12
|
+
BUCKET_NAME: env.string(),
|
|
13
|
+
BUCKET_REGION: env.string(),
|
|
14
|
+
BUCKET_ACCESS_KEY_ID: env.secret().optional(),
|
|
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
|
+
),
|
|
33
|
+
},
|
|
34
|
+
caches: { primary: external(redis({ url: values.CACHE_URL })) },
|
|
35
|
+
defaults: { bucket: "assets", cache: "primary" },
|
|
36
|
+
server: { port: 3000 },
|
|
37
|
+
inspector: { port: 3210 },
|
|
38
|
+
});
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Use MinIO and Redis values locally, R2 and Upstash values in a hosted pipeline, or `managed()` S3 and
|
|
42
|
+
Valkey bindings with an AWS deployment. `external()` resources are never provisioned and receive no
|
|
43
|
+
deployment IAM statements. Secret adapter fields require secret environment references.
|
|
44
|
+
|
|
45
|
+
`id` defaults to the normalized `package.json.name`. `PORT` and `RELKIT_ENV` are framework-reserved.
|
|
46
|
+
Hosting remains in `relkit.config.ts`:
|
|
47
|
+
|
|
48
|
+
```ts
|
|
49
|
+
export default defineConfig({
|
|
50
|
+
deployment: { target: "aws", adapter: "pulumi" },
|
|
51
|
+
server: { port: 3000 },
|
|
52
|
+
inspector: { port: 3210 },
|
|
53
|
+
});
|
|
54
|
+
```
|
package/dist/agents.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../src/agents.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC"}
|
package/dist/agents.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agents.js","sourceRoot":"","sources":["../src/agents.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buckets.d.ts","sourceRoot":"","sources":["../src/buckets.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
|
package/dist/buckets.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buckets.js","sourceRoot":"","sources":["../src/buckets.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
|
package/dist/cache.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
|
package/dist/cache.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-types.d.ts","sourceRoot":"","sources":["../src/config-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACvF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC;CACxC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IACvC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC;CAC5B;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,cAAc,CAAC,EAAE,KAAK,CAAC;CACjC;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,OAAO,CAAC,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC;IACjD,QAAQ,CAAC,MAAM,CAAC,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC9C,QAAQ,CAAC,IAAI,CAAC,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC3C,QAAQ,CAAC,MAAM,CAAC,EAAE,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAC/C,QAAQ,CAAC,MAAM,CAAC,EAAE,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAC/C,QAAQ,CAAC,aAAa,CAAC,EAAE,kBAAkB,CAAC,eAAe,CAAC,CAAC;CAC9D;AAED,KAAK,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,MAAM,WAAW,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;AAE5D,MAAM,MAAM,kBAAkB,CAAC,IAAI,SAAS,kBAAkB,IAAI,QAAQ,CAAC;IACzE,MAAM,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAClC,KAAK,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAChC,GAAG,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAChC,KAAK,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAChC,aAAa,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;CAChD,CAAC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC;AAE3E,MAAM,MAAM,mBAAmB,CAC7B,CAAC,SAAS,QAAQ,EAClB,IAAI,SAAS,kBAAkB,IAC7B,kBAAkB,GACpB,IAAI,GAAG;IACL,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC7C,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,SAAS,CAAC,EAAE,eAAe,CAAC;IACrC,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,SAAS,CAAC,EAAE,eAAe,CAAC;IACrC,QAAQ,CAAC,UAAU,CAAC,EAAE,gBAAgB,CAAC;CACxC,CAAC;AAEJ,MAAM,MAAM,2BAA2B,CACrC,EAAE,SAAS,MAAM,GAAG,MAAM,EAC1B,CAAC,SAAS,QAAQ,GAAG,QAAQ,EAC7B,IAAI,SAAS,kBAAkB,GAAG,kBAAkB,IAClD,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,kBAAkB,GAAG,IAAI,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-types.js","sourceRoot":"","sources":["../src/config-types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,10 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { isEnvRef } from "@relkit/config";
|
|
2
|
+
import { normalizeId } from "@relkit/contracts";
|
|
3
|
+
import { copyProviderTopology } from "./providers.js";
|
|
4
|
+
const MAPS = ["buckets", "caches", "jobs", "events", "models", "observability"];
|
|
5
|
+
const DEFAULTS = {
|
|
6
|
+
buckets: "bucket",
|
|
7
|
+
caches: "cache",
|
|
8
|
+
jobs: "job",
|
|
9
|
+
events: "event",
|
|
10
|
+
models: "model",
|
|
11
|
+
observability: "observability",
|
|
12
|
+
};
|
|
13
|
+
export function copyProviderMaps(value) {
|
|
14
|
+
const topology = providerTopology(value);
|
|
15
|
+
return {
|
|
16
|
+
...(topology.buckets === undefined ? {} : { buckets: topology.buckets }),
|
|
17
|
+
...(topology.cache === undefined ? {} : { caches: topology.cache }),
|
|
18
|
+
...(topology.jobs === undefined ? {} : { jobs: topology.jobs }),
|
|
19
|
+
...(topology.events === undefined ? {} : { events: topology.events }),
|
|
20
|
+
...(topology.models === undefined ? {} : { models: topology.models }),
|
|
21
|
+
...(topology.observability === undefined ? {} : { observability: topology.observability }),
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
export function providerTopology(value) {
|
|
25
|
+
return copyProviderTopology({
|
|
26
|
+
...(value.buckets === undefined ? {} : { buckets: value.buckets }),
|
|
27
|
+
...(value.caches === undefined ? {} : { cache: value.caches }),
|
|
28
|
+
...(value.jobs === undefined ? {} : { jobs: value.jobs }),
|
|
29
|
+
...(value.events === undefined ? {} : { events: value.events }),
|
|
30
|
+
...(value.models === undefined ? {} : { models: value.models }),
|
|
31
|
+
...(value.observability === undefined ? {} : { observability: value.observability }),
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
export function validateDefaults(maps, defaults) {
|
|
35
|
+
for (const mapName of MAPS) {
|
|
36
|
+
const profiles = maps[mapName];
|
|
37
|
+
const defaultName = DEFAULTS[mapName];
|
|
38
|
+
const selected = defaults?.[defaultName];
|
|
39
|
+
if (selected !== undefined &&
|
|
40
|
+
(typeof selected !== "string" || profiles?.[selected] === undefined)) {
|
|
41
|
+
throw new TypeError(`defaults.${defaultName} must reference a ${mapName} profile`);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
for (const key of Object.keys(defaults ?? {})) {
|
|
45
|
+
if (!Object.values(DEFAULTS).includes(key)) {
|
|
46
|
+
throw new TypeError(`Unknown default capability "${key}"`);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
export function resolveDefaults(maps, defaults) {
|
|
51
|
+
validateDefaults(maps, defaults);
|
|
52
|
+
const resolved = {};
|
|
53
|
+
for (const mapName of MAPS) {
|
|
54
|
+
const selected = defaults?.[DEFAULTS[mapName]];
|
|
55
|
+
const profiles = Object.keys(maps[mapName] ?? {});
|
|
56
|
+
if (typeof selected === "string")
|
|
57
|
+
resolved[DEFAULTS[mapName]] = selected;
|
|
58
|
+
else if (profiles.length === 1)
|
|
59
|
+
resolved[DEFAULTS[mapName]] = profiles[0];
|
|
60
|
+
}
|
|
61
|
+
return Object.freeze(resolved);
|
|
62
|
+
}
|
|
63
|
+
export function isEnvDefinition(value) {
|
|
64
|
+
if (!isRecord(value) || value.kind !== "env-definition" || !isRecord(value.shape))
|
|
65
|
+
return false;
|
|
66
|
+
return Object.entries(value.shape).every(([name, builder]) => {
|
|
67
|
+
const reference = value[name];
|
|
68
|
+
return (isRecord(builder) &&
|
|
69
|
+
builder.kind === "env-builder" &&
|
|
70
|
+
typeof builder.parse === "function" &&
|
|
71
|
+
typeof builder.getDefault === "function" &&
|
|
72
|
+
isEnvRef(reference) &&
|
|
73
|
+
reference.name === name);
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
export function deriveApplicationId(packageName) {
|
|
77
|
+
const normalized = packageName.startsWith("@") ? packageName.slice(1) : packageName;
|
|
78
|
+
return normalizeId(normalized.replaceAll("/", "."));
|
|
79
|
+
}
|
|
80
|
+
function isRecord(value) {
|
|
81
|
+
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=config-validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-validation.js","sourceRoot":"","sources":["../src/config-validation.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { ApplicationConfigDescriptor, ConfigProviderMaps, DefineConfigOptions } from "./config-types.js";
|
|
2
|
+
export * from "./config-types.js";
|
|
3
|
+
export { deriveApplicationId } from "./config-validation.js";
|
|
4
|
+
export * from "./providers.js";
|
|
5
|
+
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
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,2BAA2B,EAC3B,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,mBAAmB,CAAC;AAE3B,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAE/B;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,YAAY,CAC1B,KAAK,CAAC,CAAC,SAAS,OAAO,gBAAgB,EAAE,QAAQ,EACjD,KAAK,CAAC,IAAI,SAAS,kBAAkB,EACrC,OAAO,EAAE,mBAAmB,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,2BAA2B,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,CA4CrF"}
|
package/dist/config.js
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { createDescriptorBase, deepFreeze } from "@relkit/contracts";
|
|
2
|
+
import { createUnboundIdentity } from "@relkit/invocation";
|
|
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";
|
|
8
|
+
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
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type EnvRef } from "@relkit/config";
|
|
2
|
+
import { type DescriptorBase, type JsonValue, type MaybePromise } from "@relkit/contracts";
|
|
3
|
+
import { type PublicLogger } from "@relkit/invocation";
|
|
4
|
+
export interface ContextResolverOptions {
|
|
5
|
+
readonly env: Readonly<Record<string, unknown>>;
|
|
6
|
+
readonly signal: AbortSignal;
|
|
7
|
+
readonly log: PublicLogger;
|
|
8
|
+
}
|
|
9
|
+
export type ConstantResolver<Value = unknown> = (options: ContextResolverOptions) => MaybePromise<Value>;
|
|
10
|
+
export type ConstantValue = JsonValue | EnvRef | ConstantResolver;
|
|
11
|
+
export type ConstantsShape = Readonly<Record<string, ConstantValue>>;
|
|
12
|
+
export interface ConstantsDescriptor<Values extends ConstantsShape = ConstantsShape> extends DescriptorBase<"constants", string> {
|
|
13
|
+
readonly values: Values;
|
|
14
|
+
}
|
|
15
|
+
export interface PromptDescriptor<Value extends PromptValue = PromptValue> extends DescriptorBase<"prompt", string> {
|
|
16
|
+
readonly value: Value;
|
|
17
|
+
}
|
|
18
|
+
export type PromptValue = string | readonly string[];
|
|
19
|
+
export type ResolvedConstants<Descriptor extends ConstantsDescriptor> = {
|
|
20
|
+
readonly [Key in keyof Descriptor["values"]]: ResolveConstant<Descriptor["values"][Key]>;
|
|
21
|
+
};
|
|
22
|
+
export type ResolvedPrompt<Descriptor extends PromptDescriptor> = Descriptor["value"];
|
|
23
|
+
type ResolveConstant<Value> = Value extends (...args: never[]) => infer Result ? Awaited<Result> : Value extends EnvRef<string, infer Result> ? Result : Value;
|
|
24
|
+
export declare function defineConstants<const Values extends ConstantsShape>(values: Values): ConstantsDescriptor<Values>;
|
|
25
|
+
export declare function definePrompt<const Value extends PromptValue>(value: Value): PromptDescriptor<Value>;
|
|
26
|
+
export {};
|
|
27
|
+
//# sourceMappingURL=context-descriptors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-descriptors.d.ts","sourceRoot":"","sources":["../src/context-descriptors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,YAAY,EAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAyB,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAE9E,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAChD,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC;CAC5B;AAED,MAAM,MAAM,gBAAgB,CAAC,KAAK,GAAG,OAAO,IAAI,CAC9C,OAAO,EAAE,sBAAsB,KAC5B,YAAY,CAAC,KAAK,CAAC,CAAC;AACzB,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,MAAM,GAAG,gBAAgB,CAAC;AAClE,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;AAErE,MAAM,WAAW,mBAAmB,CAClC,MAAM,SAAS,cAAc,GAAG,cAAc,CAC9C,SAAQ,cAAc,CAAC,WAAW,EAAE,MAAM,CAAC;IAC3C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,gBAAgB,CAAC,KAAK,SAAS,WAAW,GAAG,WAAW,CAAE,SAAQ,cAAc,CAC/F,QAAQ,EACR,MAAM,CACP;IACC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;CACvB;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,SAAS,MAAM,EAAE,CAAC;AAErD,MAAM,MAAM,iBAAiB,CAAC,UAAU,SAAS,mBAAmB,IAAI;IACtE,QAAQ,EAAE,GAAG,IAAI,MAAM,UAAU,CAAC,QAAQ,CAAC,GAAG,eAAe,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC;CACzF,CAAC;AAEF,MAAM,MAAM,cAAc,CAAC,UAAU,SAAS,gBAAgB,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;AAEtF,KAAK,eAAe,CAAC,KAAK,IAAI,KAAK,SAAS,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,MAAM,MAAM,GAC1E,OAAO,CAAC,MAAM,CAAC,GACf,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,MAAM,CAAC,GACxC,MAAM,GACN,KAAK,CAAC;AAEZ,wBAAgB,eAAe,CAAC,KAAK,CAAC,MAAM,SAAS,cAAc,EACjE,MAAM,EAAE,MAAM,GACb,mBAAmB,CAAC,MAAM,CAAC,CAW7B;AAED,wBAAgB,YAAY,CAAC,KAAK,CAAC,KAAK,SAAS,WAAW,EAC1D,KAAK,EAAE,KAAK,GACX,gBAAgB,CAAC,KAAK,CAAC,CAazB"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { isEnvRef } from "@relkit/config";
|
|
2
|
+
import { createDescriptorBase, deepFreeze, } from "@relkit/contracts";
|
|
3
|
+
import { createUnboundIdentity } from "@relkit/invocation";
|
|
4
|
+
export function defineConstants(values) {
|
|
5
|
+
if (!isRecord(values))
|
|
6
|
+
throw new TypeError("Constants must be an object map");
|
|
7
|
+
for (const [key, value] of Object.entries(values)) {
|
|
8
|
+
if (key.trim() === "" || (!isEnvRef(value) && typeof value !== "function" && !isJson(value))) {
|
|
9
|
+
throw new TypeError(`Constant "${key}" is invalid`);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
return deepFreeze({
|
|
13
|
+
...createDescriptorBase("constants", createUnboundIdentity()),
|
|
14
|
+
values: { ...values },
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
export function definePrompt(value) {
|
|
18
|
+
const values = typeof value === "string" ? [value] : value;
|
|
19
|
+
if (!Array.isArray(values) ||
|
|
20
|
+
values.length === 0 ||
|
|
21
|
+
values.some((entry) => entry.trim() === "")) {
|
|
22
|
+
throw new TypeError("A prompt must contain nonempty text");
|
|
23
|
+
}
|
|
24
|
+
return deepFreeze({
|
|
25
|
+
...createDescriptorBase("prompt", createUnboundIdentity()),
|
|
26
|
+
value: Array.isArray(value) ? [...value] : value,
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
function isJson(value) {
|
|
30
|
+
if (value === null || ["string", "boolean"].includes(typeof value))
|
|
31
|
+
return true;
|
|
32
|
+
if (typeof value === "number")
|
|
33
|
+
return Number.isFinite(value);
|
|
34
|
+
if (Array.isArray(value))
|
|
35
|
+
return value.every(isJson);
|
|
36
|
+
return isRecord(value) && Object.values(value).every(isJson);
|
|
37
|
+
}
|
|
38
|
+
function isRecord(value) {
|
|
39
|
+
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=context-descriptors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-descriptors.js","sourceRoot":"","sources":["../src/context-descriptors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAe,MAAM,gBAAgB,CAAC;AACvD,OAAO,EACL,oBAAoB,EACpB,UAAU,GAIX,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,qBAAqB,EAAqB,MAAM,oBAAoB,CAAC;AAyC9E,MAAM,UAAU,eAAe,CAC7B,MAAc;IAEd,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC,CAAC;IAC9E,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,UAAU,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YAC7F,MAAM,IAAI,SAAS,CAAC,aAAa,GAAG,cAAc,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IACD,OAAO,UAAU,CAAC;QAChB,GAAG,oBAAoB,CAAC,WAAW,EAAE,qBAAqB,EAAE,CAAC;QAC7D,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE;KACtB,CAAgC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,KAAY;IAEZ,MAAM,MAAM,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC3D,IACE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QACtB,MAAM,CAAC,MAAM,KAAK,CAAC;QACnB,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAC3C,CAAC;QACD,MAAM,IAAI,SAAS,CAAC,qCAAqC,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,UAAU,CAAC;QAChB,GAAG,oBAAoB,CAAC,QAAQ,EAAE,qBAAqB,EAAE,CAAC;QAC1D,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK;KACjD,CAA4B,CAAC;AAChC,CAAC;AAED,SAAS,MAAM,CAAC,KAAc;IAC5B,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,OAAO,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAChF,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC7D,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACrD,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC/D,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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { PublicLogger } from "@relkit/invocation";
|
|
2
|
+
import type { ConstantsDescriptor, PromptDescriptor, PromptValue } from "./context-descriptors.js";
|
|
3
|
+
export interface ApplicationContextResolver {
|
|
4
|
+
readonly resolve: (options: {
|
|
5
|
+
readonly signal: AbortSignal;
|
|
6
|
+
readonly log: PublicLogger;
|
|
7
|
+
}) => Promise<{
|
|
8
|
+
readonly constants: Readonly<Record<string, unknown>>;
|
|
9
|
+
readonly prompts: Readonly<Record<string, PromptValue>>;
|
|
10
|
+
}>;
|
|
11
|
+
}
|
|
12
|
+
export declare function createApplicationContextResolver(options: {
|
|
13
|
+
readonly constants?: Readonly<Record<string, ConstantsDescriptor>>;
|
|
14
|
+
readonly prompts?: Readonly<Record<string, PromptDescriptor>>;
|
|
15
|
+
readonly env: Readonly<Record<string, unknown>>;
|
|
16
|
+
}): ApplicationContextResolver;
|
|
17
|
+
//# sourceMappingURL=context-resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-resolver.d.ts","sourceRoot":"","sources":["../src/context-resolver.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAEV,mBAAmB,EACnB,gBAAgB,EAChB,WAAW,EACZ,MAAM,0BAA0B,CAAC;AAElC,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE;QAC1B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;QAC7B,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC;KAC5B,KAAK,OAAO,CAAC;QACZ,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QACtD,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;KACzD,CAAC,CAAC;CACJ;AAED,wBAAgB,gCAAgC,CAAC,OAAO,EAAE;IACxD,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,GAAG,0BAA0B,CAkC7B"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { isEnvRef } from "@relkit/config";
|
|
2
|
+
export function createApplicationContextResolver(options) {
|
|
3
|
+
const staticValues = {};
|
|
4
|
+
const resolvers = [];
|
|
5
|
+
for (const descriptor of Object.values(options.constants ?? {})) {
|
|
6
|
+
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
|
+
}
|
|
10
|
+
if (typeof value === "function")
|
|
11
|
+
resolvers.push([key, value]);
|
|
12
|
+
else
|
|
13
|
+
staticValues[key] = isEnvRef(value) ? options.env[value.name] : value;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
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
|
+
]));
|
|
23
|
+
return {
|
|
24
|
+
constants: Object.freeze({ ...staticValues, ...Object.fromEntries(dynamic) }),
|
|
25
|
+
prompts,
|
|
26
|
+
};
|
|
27
|
+
},
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=context-resolver.js.map
|
|
@@ -0,0 +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"}
|
package/dist/events.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC"}
|
package/dist/events.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../src/functions.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"functions.js","sourceRoot":"","sources":["../src/functions.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export * from "./config.js";
|
|
2
|
+
export * from "./context-descriptors.js";
|
|
3
|
+
export * from "./context-resolver.js";
|
|
4
|
+
export * from "@relkit/agents";
|
|
5
|
+
export * from "@relkit/buckets";
|
|
6
|
+
export * from "@relkit/cache";
|
|
7
|
+
export * from "@relkit/events";
|
|
8
|
+
export * from "@relkit/functions";
|
|
9
|
+
export type { EventAttributeValue, EventPublishOptions, EventPublishResult } from "@relkit/events";
|
|
10
|
+
export * from "@relkit/jobs";
|
|
11
|
+
export * from "@relkit/routes";
|
|
12
|
+
export * from "@relkit/services";
|
|
13
|
+
export * from "@relkit/tools";
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +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"}
|