@aetherionfw/core 1.1.0 → 1.1.1

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 ADDED
@@ -0,0 +1,46 @@
1
+ # @aetherionfw/core
2
+
3
+ > Core decorators, metadata registry, and runtime for the Aetherion Serverless Framework.
4
+
5
+ Aetherion is a modern, TypeScript-first serverless framework designed to bring the developer experience of frameworks like NestJS to AWS serverless architectures using CDKTF.
6
+
7
+ ## Overview
8
+
9
+ This package provides the core building blocks for your Aetherion applications:
10
+
11
+ - **Decorators**: `@LambdaController`, `@Route`, `@Infra`, `@Module`, `@Injectable`
12
+ - **Metadata Registry**: Centralized reflection metadata storage that bridges the gap between your application code and your infrastructure definition.
13
+ - **Dependency Injection**: A lightweight, fast injector for managing services and dependencies.
14
+ - **Adapters**: The runtime adapter that translates API Gateway events into your controller methods.
15
+
16
+ ## Installation
17
+
18
+ ```bash
19
+ npm install @aetherionfw/core
20
+ ```
21
+
22
+ ## Usage
23
+
24
+ ```typescript
25
+ import { LambdaController, Route, Handle } from '@aetherionfw/core';
26
+
27
+ @LambdaController({
28
+ lambdaName: 'users-api',
29
+ apiGateway: 'main-api'
30
+ })
31
+ export class UserController {
32
+ @Handle()
33
+ @Route({ method: 'GET', path: '/users' })
34
+ async getUsers() {
35
+ return { users: [] };
36
+ }
37
+ }
38
+ ```
39
+
40
+ ## Documentation
41
+
42
+ For full documentation, visit [https://github.com/CrisD3v/Aetherion-framework](https://github.com/CrisD3v/Aetherion-framework).
43
+
44
+ ## License
45
+
46
+ MIT
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Aetherion deployment environment configuration.
3
+ */
4
+ export interface AetherionConfig {
5
+ /**
6
+ * AWS account ID where the infrastructure will be deployed.
7
+ * Can be hardcoded or read from an environment variable:
8
+ * @example accountId: process.env.AWS_ACCOUNT_ID!
9
+ */
10
+ accountId: string;
11
+ /**
12
+ * AWS region for deployment.
13
+ * @example region: 'us-east-1'
14
+ */
15
+ region: string;
16
+ /**
17
+ * AWS CLI profile name to use for local credentials.
18
+ * Maps to the profile in `~/.aws/credentials`.
19
+ * When deploying from CI/CD, leave undefined and use IAM roles or env vars instead.
20
+ * @example profile: 'my-dev-profile'
21
+ */
22
+ profile?: string;
23
+ }
24
+ /**
25
+ * Define the Aetherion deployment configuration.
26
+ * This function provides full type-safety and IDE autocompletion.
27
+ *
28
+ * @example
29
+ * ```typescript
30
+ * // aetherion.config.ts
31
+ * import { defineConfig } from '@aetherionfw/core';
32
+ *
33
+ * export default defineConfig({
34
+ * accountId: process.env.AWS_ACCOUNT_ID!,
35
+ * region: process.env.AWS_REGION ?? 'us-east-1',
36
+ * profile: process.env.AWS_PROFILE ?? 'default',
37
+ * });
38
+ * ```
39
+ */
40
+ export declare function defineConfig(config: AetherionConfig): AetherionConfig;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defineConfig = defineConfig;
4
+ /**
5
+ * Define the Aetherion deployment configuration.
6
+ * This function provides full type-safety and IDE autocompletion.
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * // aetherion.config.ts
11
+ * import { defineConfig } from '@aetherionfw/core';
12
+ *
13
+ * export default defineConfig({
14
+ * accountId: process.env.AWS_ACCOUNT_ID!,
15
+ * region: process.env.AWS_REGION ?? 'us-east-1',
16
+ * profile: process.env.AWS_PROFILE ?? 'default',
17
+ * });
18
+ * ```
19
+ */
20
+ function defineConfig(config) {
21
+ return config;
22
+ }
package/dist/index.d.ts CHANGED
@@ -8,3 +8,4 @@ export * from './decorators/use-middlewares.decorator';
8
8
  export * from './di/Injector';
9
9
  export * from './adapter/interfaces';
10
10
  export * from './adapter/lambda-adapter';
11
+ export * from './config/defineConfig';
package/dist/index.js CHANGED
@@ -24,3 +24,4 @@ __exportStar(require("./decorators/use-middlewares.decorator"), exports);
24
24
  __exportStar(require("./di/Injector"), exports);
25
25
  __exportStar(require("./adapter/interfaces"), exports);
26
26
  __exportStar(require("./adapter/lambda-adapter"), exports);
27
+ __exportStar(require("./config/defineConfig"), exports);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aetherionfw/core",
3
- "version": "1.1.0",
3
+ "version": "1.1.1",
4
4
  "description": "Core decorators and runtime for Aetherion Framework",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -21,6 +21,11 @@
21
21
  ],
22
22
  "author": "CrisD3v",
23
23
  "license": "MIT",
24
+ "repository": {
25
+ "type": "git",
26
+ "url": "https://github.com/CrisD3v/Aetherion-framework.git",
27
+ "directory": "packages/core"
28
+ },
24
29
  "scripts": {
25
30
  "build": "tsc",
26
31
  "clean": "rm -rf dist"