@relkit/cloud-aws 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.
Files changed (155) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +5 -0
  3. package/dist/components/RelkitApplicationService/container.d.ts +4 -0
  4. package/dist/components/RelkitApplicationService/container.d.ts.map +1 -0
  5. package/dist/components/RelkitApplicationService/container.js +64 -0
  6. package/dist/components/RelkitApplicationService/container.js.map +1 -0
  7. package/dist/components/RelkitApplicationService/foundation.d.ts +11 -0
  8. package/dist/components/RelkitApplicationService/foundation.d.ts.map +1 -0
  9. package/dist/components/RelkitApplicationService/foundation.js +44 -0
  10. package/dist/components/RelkitApplicationService/foundation.js.map +1 -0
  11. package/dist/components/RelkitApplicationService/index.d.ts +22 -0
  12. package/dist/components/RelkitApplicationService/index.d.ts.map +1 -0
  13. package/dist/components/RelkitApplicationService/index.js +147 -0
  14. package/dist/components/RelkitApplicationService/index.js.map +1 -0
  15. package/dist/components/RelkitApplicationService/types.d.ts +30 -0
  16. package/dist/components/RelkitApplicationService/types.d.ts.map +1 -0
  17. package/dist/components/RelkitApplicationService/types.js +2 -0
  18. package/dist/components/RelkitApplicationService/types.js.map +1 -0
  19. package/dist/components/RelkitBuckets/index.d.ts +11 -0
  20. package/dist/components/RelkitBuckets/index.d.ts.map +1 -0
  21. package/dist/components/RelkitBuckets/index.js +48 -0
  22. package/dist/components/RelkitBuckets/index.js.map +1 -0
  23. package/dist/components/RelkitBuckets/types.d.ts +23 -0
  24. package/dist/components/RelkitBuckets/types.d.ts.map +1 -0
  25. package/dist/components/RelkitBuckets/types.js +2 -0
  26. package/dist/components/RelkitBuckets/types.js.map +1 -0
  27. package/dist/components/RelkitBuckets/validation.d.ts +10 -0
  28. package/dist/components/RelkitBuckets/validation.d.ts.map +1 -0
  29. package/dist/components/RelkitBuckets/validation.js +22 -0
  30. package/dist/components/RelkitBuckets/validation.js.map +1 -0
  31. package/dist/components/RelkitCaches/client.d.ts +20 -0
  32. package/dist/components/RelkitCaches/client.d.ts.map +1 -0
  33. package/dist/components/RelkitCaches/client.js +42 -0
  34. package/dist/components/RelkitCaches/client.js.map +1 -0
  35. package/dist/components/RelkitCaches/index.d.ts +12 -0
  36. package/dist/components/RelkitCaches/index.d.ts.map +1 -0
  37. package/dist/components/RelkitCaches/index.js +71 -0
  38. package/dist/components/RelkitCaches/index.js.map +1 -0
  39. package/dist/components/RelkitCaches/types.d.ts +31 -0
  40. package/dist/components/RelkitCaches/types.d.ts.map +1 -0
  41. package/dist/components/RelkitCaches/types.js +2 -0
  42. package/dist/components/RelkitCaches/types.js.map +1 -0
  43. package/dist/components/RelkitCaches/validation.d.ts +11 -0
  44. package/dist/components/RelkitCaches/validation.d.ts.map +1 -0
  45. package/dist/components/RelkitCaches/validation.js +34 -0
  46. package/dist/components/RelkitCaches/validation.js.map +1 -0
  47. package/dist/components/RelkitContainerRegistry/index.d.ts +19 -0
  48. package/dist/components/RelkitContainerRegistry/index.d.ts.map +1 -0
  49. package/dist/components/RelkitContainerRegistry/index.js +29 -0
  50. package/dist/components/RelkitContainerRegistry/index.js.map +1 -0
  51. package/dist/components/RelkitEventBus/index.d.ts +24 -0
  52. package/dist/components/RelkitEventBus/index.d.ts.map +1 -0
  53. package/dist/components/RelkitEventBus/index.js +71 -0
  54. package/dist/components/RelkitEventBus/index.js.map +1 -0
  55. package/dist/components/RelkitEventBus/names.d.ts +2 -0
  56. package/dist/components/RelkitEventBus/names.d.ts.map +1 -0
  57. package/dist/components/RelkitEventBus/names.js +9 -0
  58. package/dist/components/RelkitEventBus/names.js.map +1 -0
  59. package/dist/components/RelkitEventBus/policies.d.ts +7 -0
  60. package/dist/components/RelkitEventBus/policies.d.ts.map +1 -0
  61. package/dist/components/RelkitEventBus/policies.js +59 -0
  62. package/dist/components/RelkitEventBus/policies.js.map +1 -0
  63. package/dist/components/RelkitEventBus/resources.d.ts +5 -0
  64. package/dist/components/RelkitEventBus/resources.d.ts.map +1 -0
  65. package/dist/components/RelkitEventBus/resources.js +120 -0
  66. package/dist/components/RelkitEventBus/resources.js.map +1 -0
  67. package/dist/components/RelkitEventBus/types.d.ts +76 -0
  68. package/dist/components/RelkitEventBus/types.d.ts.map +1 -0
  69. package/dist/components/RelkitEventBus/types.js +2 -0
  70. package/dist/components/RelkitEventBus/types.js.map +1 -0
  71. package/dist/components/RelkitEventBus/validation.d.ts +30 -0
  72. package/dist/components/RelkitEventBus/validation.d.ts.map +1 -0
  73. package/dist/components/RelkitEventBus/validation.js +145 -0
  74. package/dist/components/RelkitEventBus/validation.js.map +1 -0
  75. package/dist/components/RelkitJobQueues/index.d.ts +21 -0
  76. package/dist/components/RelkitJobQueues/index.d.ts.map +1 -0
  77. package/dist/components/RelkitJobQueues/index.js +139 -0
  78. package/dist/components/RelkitJobQueues/index.js.map +1 -0
  79. package/dist/components/RelkitJobQueues/policies.d.ts +8 -0
  80. package/dist/components/RelkitJobQueues/policies.d.ts.map +1 -0
  81. package/dist/components/RelkitJobQueues/policies.js +73 -0
  82. package/dist/components/RelkitJobQueues/policies.js.map +1 -0
  83. package/dist/components/RelkitJobQueues/resources.d.ts +11 -0
  84. package/dist/components/RelkitJobQueues/resources.d.ts.map +1 -0
  85. package/dist/components/RelkitJobQueues/resources.js +64 -0
  86. package/dist/components/RelkitJobQueues/resources.js.map +1 -0
  87. package/dist/components/RelkitJobQueues/types.d.ts +77 -0
  88. package/dist/components/RelkitJobQueues/types.d.ts.map +1 -0
  89. package/dist/components/RelkitJobQueues/types.js +2 -0
  90. package/dist/components/RelkitJobQueues/types.js.map +1 -0
  91. package/dist/components/RelkitJobQueues/validation.d.ts +32 -0
  92. package/dist/components/RelkitJobQueues/validation.d.ts.map +1 -0
  93. package/dist/components/RelkitJobQueues/validation.js +142 -0
  94. package/dist/components/RelkitJobQueues/validation.js.map +1 -0
  95. package/dist/components/RelkitNetwork/index.d.ts +25 -0
  96. package/dist/components/RelkitNetwork/index.d.ts.map +1 -0
  97. package/dist/components/RelkitNetwork/index.js +70 -0
  98. package/dist/components/RelkitNetwork/index.js.map +1 -0
  99. package/dist/components/RelkitObservability/index.d.ts +15 -0
  100. package/dist/components/RelkitObservability/index.d.ts.map +1 -0
  101. package/dist/components/RelkitObservability/index.js +62 -0
  102. package/dist/components/RelkitObservability/index.js.map +1 -0
  103. package/dist/components/RelkitObservability/types.d.ts +25 -0
  104. package/dist/components/RelkitObservability/types.d.ts.map +1 -0
  105. package/dist/components/RelkitObservability/types.js +2 -0
  106. package/dist/components/RelkitObservability/types.js.map +1 -0
  107. package/dist/components/common.d.ts +34 -0
  108. package/dist/components/common.d.ts.map +1 -0
  109. package/dist/components/common.js +109 -0
  110. package/dist/components/common.js.map +1 -0
  111. package/dist/components/index.d.ts +9 -0
  112. package/dist/components/index.d.ts.map +1 -0
  113. package/dist/components/index.js +9 -0
  114. package/dist/components/index.js.map +1 -0
  115. package/dist/index.d.ts +3 -0
  116. package/dist/index.d.ts.map +1 -0
  117. package/dist/index.js +3 -0
  118. package/dist/index.js.map +1 -0
  119. package/dist/runtime/buckets.d.ts +3 -0
  120. package/dist/runtime/buckets.d.ts.map +1 -0
  121. package/dist/runtime/buckets.js +2 -0
  122. package/dist/runtime/buckets.js.map +1 -0
  123. package/dist/runtime/cache.d.ts +3 -0
  124. package/dist/runtime/cache.d.ts.map +1 -0
  125. package/dist/runtime/cache.js +2 -0
  126. package/dist/runtime/cache.js.map +1 -0
  127. package/dist/runtime/config.d.ts +7 -0
  128. package/dist/runtime/config.d.ts.map +1 -0
  129. package/dist/runtime/config.js +10 -0
  130. package/dist/runtime/config.js.map +1 -0
  131. package/dist/runtime/events.d.ts +16 -0
  132. package/dist/runtime/events.d.ts.map +1 -0
  133. package/dist/runtime/events.js +69 -0
  134. package/dist/runtime/events.js.map +1 -0
  135. package/dist/runtime/factory.d.ts +3 -0
  136. package/dist/runtime/factory.d.ts.map +1 -0
  137. package/dist/runtime/factory.js +78 -0
  138. package/dist/runtime/factory.js.map +1 -0
  139. package/dist/runtime/http.d.ts +14 -0
  140. package/dist/runtime/http.d.ts.map +1 -0
  141. package/dist/runtime/http.js +98 -0
  142. package/dist/runtime/http.js.map +1 -0
  143. package/dist/runtime/index.d.ts +8 -0
  144. package/dist/runtime/index.d.ts.map +1 -0
  145. package/dist/runtime/index.js +8 -0
  146. package/dist/runtime/index.js.map +1 -0
  147. package/dist/runtime/jobs.d.ts +15 -0
  148. package/dist/runtime/jobs.d.ts.map +1 -0
  149. package/dist/runtime/jobs.js +133 -0
  150. package/dist/runtime/jobs.js.map +1 -0
  151. package/dist/runtime/observability.d.ts +13 -0
  152. package/dist/runtime/observability.d.ts.map +1 -0
  153. package/dist/runtime/observability.js +16 -0
  154. package/dist/runtime/observability.js.map +1 -0
  155. package/package.json +56 -0
@@ -0,0 +1,62 @@
1
+ import * as aws from "@pulumi/aws";
2
+ import * as pulumi from "@pulumi/pulumi";
3
+ import { awsRegion, environmentEntries, resourceName, secretEntries, tagsFor, validateMappings, } from "../common.js";
4
+ export * from "./types.js";
5
+ /** Maps runtime logs to CloudWatch and optional traces to OTLP injection. */
6
+ export class RelkitObservability extends pulumi.ComponentResource {
7
+ logGroup;
8
+ logGroupName;
9
+ logGroupArn;
10
+ environment;
11
+ secrets;
12
+ tags;
13
+ constructor(name, args = {}, opts = {}) {
14
+ const componentName = resourceName(name, "observability", args, 64);
15
+ super("relkit:cloud-aws:RelkitObservability", componentName, {}, opts);
16
+ this.tags = tagsFor(name, args);
17
+ const region = awsRegion(args);
18
+ if (args.retentionDays !== undefined &&
19
+ typeof args.retentionDays === "number" &&
20
+ (!Number.isSafeInteger(args.retentionDays) || args.retentionDays < 1))
21
+ throw new RangeError("CloudWatch retentionDays must be a positive integer.");
22
+ if (args.otlp !== undefined &&
23
+ typeof args.otlp.endpoint === "string" &&
24
+ args.otlp.endpoint.trim() === "")
25
+ throw new TypeError("OTLP endpoint must not be empty.");
26
+ this.logGroup =
27
+ args.logs === false
28
+ ? undefined
29
+ : new aws.cloudwatch.LogGroup(`${componentName}-logs`, {
30
+ name: `/relkit/${componentName}`,
31
+ retentionInDays: args.retentionDays ?? 30,
32
+ region,
33
+ tags: this.tags,
34
+ }, { parent: this });
35
+ this.logGroupName = this.logGroup?.name;
36
+ this.logGroupArn = this.logGroup?.arn;
37
+ const environment = [
38
+ { name: "AWS_REGION", value: region },
39
+ ...(args.otlp === undefined
40
+ ? []
41
+ : [
42
+ { name: "OTEL_EXPORTER_OTLP_ENDPOINT", value: args.otlp.endpoint },
43
+ ...(args.otlp.serviceName === undefined
44
+ ? []
45
+ : [{ name: "OTEL_SERVICE_NAME", value: args.otlp.serviceName }]),
46
+ ]),
47
+ ];
48
+ const secrets = args.otlp?.headersSecretArn === undefined
49
+ ? []
50
+ : [{ name: "OTEL_EXPORTER_OTLP_HEADERS", valueFrom: args.otlp.headersSecretArn }];
51
+ validateMappings(environmentEntries(environment), secretEntries(secrets));
52
+ this.environment = environmentEntries(environment);
53
+ this.secrets = secretEntries(secrets);
54
+ this.registerOutputs({
55
+ logGroupName: this.logGroupName,
56
+ logGroupArn: this.logGroupArn,
57
+ region,
58
+ traces: args.traces ?? args.otlp !== undefined,
59
+ });
60
+ }
61
+ }
62
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/RelkitObservability/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import type * as aws from "@pulumi/aws";
2
+ import type * as pulumi from "@pulumi/pulumi";
3
+ import type { RelkitComponentArgs, RelkitEnvironmentVariable, RelkitSecretVariable } from "../common.js";
4
+ export interface RelkitOtlpExport {
5
+ readonly endpoint: pulumi.Input<string>;
6
+ readonly headersSecretArn?: pulumi.Input<string>;
7
+ readonly serviceName?: pulumi.Input<string>;
8
+ }
9
+ export interface RelkitObservabilityArgs extends RelkitComponentArgs {
10
+ readonly logs?: boolean;
11
+ readonly traces?: boolean;
12
+ readonly retentionDays?: pulumi.Input<number>;
13
+ readonly otlp?: RelkitOtlpExport;
14
+ }
15
+ export interface RelkitObservabilityMappings {
16
+ readonly environment: readonly RelkitEnvironmentVariable[];
17
+ readonly secrets: readonly RelkitSecretVariable[];
18
+ }
19
+ export interface RelkitObservabilityResources extends RelkitObservabilityMappings {
20
+ readonly logGroup: aws.cloudwatch.LogGroup | undefined;
21
+ readonly logGroupName: pulumi.Output<string> | undefined;
22
+ readonly logGroupArn: pulumi.Output<string> | undefined;
23
+ readonly tags: pulumi.Output<Record<string, string>>;
24
+ }
25
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/RelkitObservability/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,aAAa,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EACV,mBAAmB,EACnB,yBAAyB,EACzB,oBAAoB,EACrB,MAAM,cAAc,CAAC;AAEtB,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACxC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACjD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,uBAAwB,SAAQ,mBAAmB;IAClE,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9C,QAAQ,CAAC,IAAI,CAAC,EAAE,gBAAgB,CAAC;CAClC;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,WAAW,EAAE,SAAS,yBAAyB,EAAE,CAAC;IAC3D,QAAQ,CAAC,OAAO,EAAE,SAAS,oBAAoB,EAAE,CAAC;CACnD;AAED,MAAM,WAAW,4BAA6B,SAAQ,2BAA2B;IAC/E,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,UAAU,CAAC,QAAQ,GAAG,SAAS,CAAC;IACvD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IACzD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IACxD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACtD"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/components/RelkitObservability/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,34 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ export type RelkitTags = pulumi.Input<Record<string, pulumi.Input<string>>>;
3
+ export interface RelkitComponentArgs {
4
+ readonly appId?: pulumi.Input<string>;
5
+ readonly stackName?: pulumi.Input<string>;
6
+ readonly graphHash?: pulumi.Input<string>;
7
+ readonly region?: pulumi.Input<string>;
8
+ readonly tags?: RelkitTags;
9
+ }
10
+ export interface RelkitEnvironmentVariable {
11
+ readonly name: string;
12
+ readonly value: pulumi.Input<string>;
13
+ }
14
+ export interface RelkitSecretVariable {
15
+ readonly name: string;
16
+ readonly valueFrom: pulumi.Input<string>;
17
+ }
18
+ export type RelkitEnvironmentInput = readonly RelkitEnvironmentVariable[] | Readonly<Record<string, pulumi.Input<string>>>;
19
+ export type RelkitSecretInput = readonly RelkitSecretVariable[] | Readonly<Record<string, pulumi.Input<string>>>;
20
+ export declare const DEFAULT_SERVICE_PORT = 3000;
21
+ export declare const DEFAULT_LIVENESS_PATH = "/_relkit/v1/health/live";
22
+ export declare const DEFAULT_READINESS_PATH = "/_relkit/v1/health/ready";
23
+ export declare function resourceName(name: string, kind: string, args: RelkitComponentArgs, maxLength?: number): string;
24
+ export declare function tagsFor(name: string, args: RelkitComponentArgs): pulumi.Output<Record<string, string>>;
25
+ export declare function awsRegion(args: RelkitComponentArgs): pulumi.Output<string>;
26
+ export declare function environmentEntries(input: RelkitEnvironmentInput | undefined): readonly RelkitEnvironmentVariable[];
27
+ export declare function secretEntries(input: RelkitSecretInput | undefined): readonly RelkitSecretVariable[];
28
+ export declare function validateMappings(environment: readonly RelkitEnvironmentVariable[], secrets: readonly RelkitSecretVariable[]): void;
29
+ export declare function environmentName(prefix: string, id: string, suffix: string): string;
30
+ export declare function iamRoleName(componentName: string, suffix: string): string;
31
+ export declare function boundedAwsName(value: string, maxLength: number): string;
32
+ export declare function validatePort(value: number, name: string): void;
33
+ export declare function validatePath(value: string, name: string): void;
34
+ //# sourceMappingURL=common.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/components/common.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,109 @@
1
+ import { createHash } from "node:crypto";
2
+ import * as aws from "@pulumi/aws";
3
+ import * as pulumi from "@pulumi/pulumi";
4
+ export const DEFAULT_SERVICE_PORT = 3000;
5
+ export const DEFAULT_LIVENESS_PATH = "/_relkit/v1/health/live";
6
+ export const DEFAULT_READINESS_PATH = "/_relkit/v1/health/ready";
7
+ export function resourceName(name, kind, args, maxLength = 255) {
8
+ const appId = typeof args.appId === "string" ? args.appId : name;
9
+ const stack = typeof args.stackName === "string" ? args.stackName : pulumi.getStack();
10
+ const normalized = [stack, appId, kind]
11
+ .join("-")
12
+ .toLowerCase()
13
+ .replace(/[^a-z0-9-]+/g, "-")
14
+ .replace(/^-+|-+$/g, "");
15
+ return normalized.slice(0, maxLength).replace(/-+$/, "") || "relkit";
16
+ }
17
+ export function tagsFor(name, args) {
18
+ return pulumi
19
+ .all({
20
+ custom: args.tags ?? {},
21
+ app: args.appId ?? name,
22
+ stack: args.stackName ?? pulumi.getStack(),
23
+ graphHash: args.graphHash ?? "unknown",
24
+ })
25
+ .apply(({ custom, app, stack, graphHash }) => ({
26
+ ...custom,
27
+ app: String(app),
28
+ stack: String(stack),
29
+ graphHash: String(graphHash),
30
+ "managed-by": "relkit",
31
+ }));
32
+ }
33
+ export function awsRegion(args) {
34
+ if (typeof args.region === "string" && args.region.trim() === "")
35
+ throw new TypeError("AWS region must not be empty.");
36
+ return args.region === undefined ? aws.getRegionOutput().name : pulumi.output(args.region);
37
+ }
38
+ export function environmentEntries(input) {
39
+ if (input === undefined)
40
+ return [];
41
+ return Array.isArray(input)
42
+ ? [...input].sort((left, right) => left.name.localeCompare(right.name))
43
+ : Object.entries(input)
44
+ .map(([name, value]) => ({ name, value }))
45
+ .sort((left, right) => left.name.localeCompare(right.name));
46
+ }
47
+ export function secretEntries(input) {
48
+ if (input === undefined)
49
+ return [];
50
+ return Array.isArray(input)
51
+ ? [...input].sort((left, right) => left.name.localeCompare(right.name))
52
+ : Object.entries(input)
53
+ .map(([name, valueFrom]) => ({ name, valueFrom }))
54
+ .sort((left, right) => left.name.localeCompare(right.name));
55
+ }
56
+ export function validateMappings(environment, secrets) {
57
+ const names = new Set();
58
+ for (const entry of environment) {
59
+ validateEnvironmentName(entry.name);
60
+ if (isSensitiveName(entry.name))
61
+ throw new TypeError(`Sensitive environment variable "${entry.name}" must use secrets.`);
62
+ if (!names.add(entry.name))
63
+ throw new TypeError(`Duplicate environment variable "${entry.name}".`);
64
+ }
65
+ for (const entry of secrets) {
66
+ validateEnvironmentName(entry.name);
67
+ if (!names.add(entry.name))
68
+ throw new TypeError(`Duplicate environment variable "${entry.name}".`);
69
+ if (typeof entry.valueFrom === "string" && entry.valueFrom.trim() === "")
70
+ throw new TypeError(`Secret mapping "${entry.name}" must not be empty.`);
71
+ }
72
+ }
73
+ export function environmentName(prefix, id, suffix) {
74
+ const normalized = id
75
+ .toUpperCase()
76
+ .replace(/[^A-Z0-9]+/g, "_")
77
+ .replace(/^_+|_+$/g, "");
78
+ return `RELKIT_${prefix.toUpperCase()}_${normalized}_${suffix}`;
79
+ }
80
+ export function iamRoleName(componentName, suffix) {
81
+ return boundedAwsName(`${componentName}-${suffix}`, 64);
82
+ }
83
+ export function boundedAwsName(value, maxLength) {
84
+ const normalized = value
85
+ .toLowerCase()
86
+ .replace(/[^a-z0-9-]+/g, "-")
87
+ .replace(/^-+|-+$/g, "") || "relkit";
88
+ if (normalized.length <= maxLength)
89
+ return normalized;
90
+ const hash = createHash("sha256").update(normalized).digest("hex").slice(0, 8);
91
+ const prefix = normalized.slice(0, maxLength - hash.length - 1).replace(/-+$/g, "");
92
+ return `${prefix}-${hash}`;
93
+ }
94
+ function validateEnvironmentName(name) {
95
+ if (!/^[A-Za-z_][A-Za-z0-9_]*$/.test(name))
96
+ throw new TypeError(`Invalid environment variable name "${name}".`);
97
+ }
98
+ function isSensitiveName(name) {
99
+ return /(?:api[-_]?key|password|secret|token|credential)/i.test(name);
100
+ }
101
+ export function validatePort(value, name) {
102
+ if (!Number.isSafeInteger(value) || value < 1 || value > 65_535)
103
+ throw new RangeError(`${name} must be an integer between 1 and 65535.`);
104
+ }
105
+ export function validatePath(value, name) {
106
+ if (!value.startsWith("/") || value.includes("'"))
107
+ throw new TypeError(`${name} must be a single-quoted-safe absolute HTTP path.`);
108
+ }
109
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/components/common.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export * from "./RelkitApplicationService/index.js";
2
+ export * from "./RelkitBuckets/index.js";
3
+ export * from "./RelkitCaches/index.js";
4
+ export * from "./RelkitContainerRegistry/index.js";
5
+ export * from "./RelkitEventBus/index.js";
6
+ export * from "./RelkitJobQueues/index.js";
7
+ export * from "./RelkitNetwork/index.js";
8
+ export * from "./RelkitObservability/index.js";
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,qCAAqC,CAAC;AACpD,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oCAAoC,CAAC;AACnD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC"}
@@ -0,0 +1,9 @@
1
+ export * from "./RelkitApplicationService/index.js";
2
+ export * from "./RelkitBuckets/index.js";
3
+ export * from "./RelkitCaches/index.js";
4
+ export * from "./RelkitContainerRegistry/index.js";
5
+ export * from "./RelkitEventBus/index.js";
6
+ export * from "./RelkitJobQueues/index.js";
7
+ export * from "./RelkitNetwork/index.js";
8
+ export * from "./RelkitObservability/index.js";
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,qCAAqC,CAAC;AACpD,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oCAAoC,CAAC;AACnD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "./components/index.js";
2
+ export * from "./runtime/index.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,3 @@
1
+ export * from "./components/index.js";
2
+ export * from "./runtime/index.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { createS3BucketProvider } from "@relkit/providers-standard";
2
+ export type { S3BucketOptions } from "@relkit/providers-standard";
3
+ //# sourceMappingURL=buckets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buckets.d.ts","sourceRoot":"","sources":["../../src/runtime/buckets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,YAAY,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { createS3BucketProvider } from "@relkit/providers-standard";
2
+ //# sourceMappingURL=buckets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buckets.js","sourceRoot":"","sources":["../../src/runtime/buckets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { createRedisCacheProvider } from "@relkit/providers-standard";
2
+ export type { RedisCacheOptions, RedisCacheProvider } from "@relkit/providers-standard";
3
+ //# sourceMappingURL=cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/runtime/cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { createRedisCacheProvider } from "@relkit/providers-standard";
2
+ //# sourceMappingURL=cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/runtime/cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1,7 @@
1
+ export interface AwsCredentials {
2
+ readonly accessKeyId: string;
3
+ readonly secretAccessKey: string;
4
+ readonly sessionToken?: string;
5
+ }
6
+ export declare function text(value: unknown, name: string): string | undefined;
7
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/runtime/config.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,wBAAgB,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAKrE"}
@@ -0,0 +1,10 @@
1
+ export function text(value, name) {
2
+ if (value === undefined)
3
+ return undefined;
4
+ if (value instanceof URL)
5
+ return value.toString();
6
+ if (typeof value !== "string" || value.trim() === "")
7
+ throw new TypeError(`${name} is invalid`);
8
+ return value.trim();
9
+ }
10
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/runtime/config.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,IAAI,CAAC,KAAc,EAAE,IAAY;IAC/C,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,IAAI,KAAK,YAAY,GAAG;QAAE,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;IAClD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,aAAa,CAAC,CAAC;IAChG,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;AACtB,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { EventProvider } from "@relkit/events";
2
+ import type { EventRuntimeProvider } from "@relkit/engine";
3
+ import { type AwsCredentials } from "./config.js";
4
+ export interface AwsEventOptions {
5
+ readonly region: string;
6
+ readonly busName?: unknown;
7
+ readonly source?: unknown;
8
+ readonly endpoint?: unknown;
9
+ readonly credentials?: AwsCredentials;
10
+ readonly fetch?: typeof globalThis.fetch | undefined;
11
+ }
12
+ export interface AwsEventProvider extends EventProvider, EventRuntimeProvider {
13
+ readonly deliver: (triggerId: string, envelope: unknown) => Promise<unknown>;
14
+ }
15
+ export declare function createEventBridgeProvider(options: AwsEventOptions): AwsEventProvider;
16
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/runtime/events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAyB,aAAa,EAAuB,MAAM,gBAAgB,CAAC;AAChG,OAAO,KAAK,EAAE,oBAAoB,EAAuB,MAAM,gBAAgB,CAAC;AAGhF,OAAO,EAAE,KAAK,cAAc,EAAQ,MAAM,aAAa,CAAC;AAExD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,cAAc,CAAC;IACtC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC;CACtD;AAED,MAAM,WAAW,gBAAiB,SAAQ,aAAa,EAAE,oBAAoB;IAC3E,QAAQ,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC9E;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,eAAe,GAAG,gBAAgB,CAuEpF"}
@@ -0,0 +1,69 @@
1
+ import { assertResponse, awsRequest } from "./http.js";
2
+ import { text } from "./config.js";
3
+ export function createEventBridgeProvider(options) {
4
+ const busName = text(options.busName, "AWS event busName");
5
+ const source = text(options.source, "AWS event source") ?? "relkit.application";
6
+ const endpoint = text(options.endpoint, "AWS EventBridge endpoint") ??
7
+ `https://events.${options.region}.amazonaws.com`;
8
+ const auth = options.credentials;
9
+ const triggers = new Map();
10
+ const publish = async (payload, request, context) => {
11
+ if (context.signal.aborted)
12
+ throw context.signal.reason ?? new Error("Event operation cancelled");
13
+ if (busName === undefined)
14
+ throw new Error("AWS event busName is not configured");
15
+ const detail = JSON.stringify({
16
+ eventId: context.eventId,
17
+ version: context.version,
18
+ payload,
19
+ key: request.key,
20
+ attributes: request.attributes,
21
+ traceId: context.traceId,
22
+ correlationId: context.correlationId,
23
+ causationInvocationId: context.causationInvocationId,
24
+ });
25
+ const response = await awsRequest(endpoint, {
26
+ service: "events",
27
+ region: options.region,
28
+ credentials: auth,
29
+ fetch: options.fetch,
30
+ init: {
31
+ method: "POST",
32
+ headers: {
33
+ "content-type": "application/x-amz-json-1.1",
34
+ "x-amz-target": "AWSEvents.PutEvents",
35
+ },
36
+ body: JSON.stringify({
37
+ Entries: [
38
+ {
39
+ EventBusName: busName,
40
+ Source: source,
41
+ DetailType: `${context.eventId}@${context.version}`,
42
+ Detail: detail,
43
+ },
44
+ ],
45
+ }),
46
+ },
47
+ });
48
+ await assertResponse(response, "EventBridge publish");
49
+ const result = (await response.json());
50
+ return {
51
+ instanceId: result.Entries?.[0]?.EventId ?? `event-${crypto.randomUUID()}`,
52
+ accepted: true,
53
+ };
54
+ };
55
+ return Object.freeze({
56
+ publish,
57
+ registerContract: async (_contract) => undefined,
58
+ registerTrigger: async (binding) => {
59
+ triggers.set(binding.id, binding);
60
+ },
61
+ deliver: async (triggerId, envelope) => {
62
+ const binding = triggers.get(triggerId);
63
+ if (binding === undefined)
64
+ throw new Error(`AWS event trigger ${triggerId} is not registered`);
65
+ return binding.invoke(envelope);
66
+ },
67
+ });
68
+ }
69
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/runtime/events.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ProviderFactories } from "@relkit/engine";
2
+ export declare const awsProviderFactories: ProviderFactories;
3
+ //# sourceMappingURL=factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/runtime/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAA2C,MAAM,gBAAgB,CAAC;AAoDjG,eAAO,MAAM,oBAAoB,EAAE,iBAIjC,CAAC"}
@@ -0,0 +1,78 @@
1
+ import { createEventBridgeProvider } from "./events.js";
2
+ import { createSqsJobProvider } from "./jobs.js";
3
+ import { createAwsObservabilityProvider } from "./observability.js";
4
+ const sqsFactory = Object.freeze({
5
+ capability: "jobs",
6
+ adapter: "sqs",
7
+ create: (context) => ({
8
+ value: createSqsJobProvider({
9
+ region: text(context.configuration.region, "SQS region"),
10
+ ...(context.configuration.endpoint === undefined
11
+ ? {}
12
+ : { endpoint: text(context.configuration.endpoint, "SQS endpoint") }),
13
+ ...(context.configuration.queueUrl === undefined
14
+ ? {}
15
+ : { queueUrl: text(context.configuration.queueUrl, "SQS queueUrl") }),
16
+ ...credentialsOption(context.configuration.credentials),
17
+ }),
18
+ }),
19
+ });
20
+ const eventBridgeFactory = Object.freeze({
21
+ capability: "events",
22
+ adapter: "eventbridge",
23
+ create: (context) => ({
24
+ value: createEventBridgeProvider({
25
+ region: text(context.configuration.region, "EventBridge region"),
26
+ ...(context.configuration.endpoint === undefined
27
+ ? {}
28
+ : { endpoint: text(context.configuration.endpoint, "EventBridge endpoint") }),
29
+ ...(context.configuration.busName === undefined
30
+ ? {}
31
+ : { busName: text(context.configuration.busName, "EventBridge busName") }),
32
+ ...(context.configuration.source === undefined
33
+ ? {}
34
+ : { source: text(context.configuration.source, "EventBridge source") }),
35
+ ...credentialsOption(context.configuration.credentials),
36
+ }),
37
+ }),
38
+ });
39
+ const cloudWatchFactory = Object.freeze({
40
+ capability: "observability",
41
+ adapter: "cloudwatch",
42
+ create: (_context) => {
43
+ const provider = createAwsObservabilityProvider();
44
+ return { value: provider, ready: provider.ready, release: provider.release };
45
+ },
46
+ });
47
+ export const awsProviderFactories = Object.freeze({
48
+ "jobs:sqs": sqsFactory,
49
+ "events:eventbridge": eventBridgeFactory,
50
+ "observability:cloudwatch": cloudWatchFactory,
51
+ });
52
+ function credentialsOption(value) {
53
+ const configured = record(value);
54
+ if (configured === undefined)
55
+ return {};
56
+ return {
57
+ credentials: {
58
+ accessKeyId: text(configured.accessKeyId, "AWS accessKeyId"),
59
+ secretAccessKey: text(configured.secretAccessKey, "AWS secretAccessKey"),
60
+ ...(configured.sessionToken === undefined
61
+ ? {}
62
+ : { sessionToken: text(configured.sessionToken, "AWS sessionToken") }),
63
+ },
64
+ };
65
+ }
66
+ function text(value, label) {
67
+ if (value instanceof URL)
68
+ return value.toString();
69
+ if (typeof value !== "string" || value.trim() === "")
70
+ throw new TypeError(`${label} is invalid`);
71
+ return value.trim();
72
+ }
73
+ function record(value) {
74
+ return value !== null && typeof value === "object" && !Array.isArray(value)
75
+ ? value
76
+ : undefined;
77
+ }
78
+ //# sourceMappingURL=factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/runtime/factory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { AwsCredentials } from "./config.js";
2
+ export type AwsRequestInit = Omit<RequestInit, "body"> & {
3
+ readonly body?: string | Uint8Array | null;
4
+ };
5
+ export interface AwsRequestOptions {
6
+ readonly service: string;
7
+ readonly region: string;
8
+ readonly credentials?: AwsCredentials | undefined;
9
+ readonly fetch?: typeof globalThis.fetch | undefined;
10
+ readonly init?: AwsRequestInit | undefined;
11
+ }
12
+ export declare function awsRequest(url: string, options: AwsRequestOptions): Promise<Response>;
13
+ export declare function assertResponse(response: Response, operation: string): Promise<Response>;
14
+ //# sourceMappingURL=http.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/runtime/http.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,GAAG;IACvD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC;CAC5C,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;IAClD,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC;IACrD,QAAQ,CAAC,IAAI,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;CAC5C;AAED,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAc3F;AAqCD,wBAAsB,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAG7F"}