@venturekit/infra 0.0.0-dev.20260310105525 → 0.0.0-dev.20260311152758
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 +1 -1
- package/dist/translators/auth.d.ts.map +1 -1
- package/dist/translators/auth.js +9 -12
- package/dist/translators/auth.js.map +1 -1
- package/dist/translators/cache.d.ts +1 -1
- package/dist/translators/cache.d.ts.map +1 -1
- package/dist/translators/cache.js +4 -4
- package/dist/translators/cache.js.map +1 -1
- package/dist/translators/database.d.ts +1 -1
- package/dist/translators/database.d.ts.map +1 -1
- package/dist/translators/database.js +12 -10
- package/dist/translators/database.js.map +1 -1
- package/dist/translators/orchestrator.d.ts.map +1 -1
- package/dist/translators/orchestrator.js +16 -8
- package/dist/translators/orchestrator.js.map +1 -1
- package/dist/translators/schedule.d.ts.map +1 -1
- package/dist/translators/schedule.js +7 -6
- package/dist/translators/schedule.js.map +1 -1
- package/dist/translators/storage.d.ts.map +1 -1
- package/dist/translators/storage.js +1 -0
- package/dist/translators/storage.js.map +1 -1
- package/dist/venture.d.ts +10 -6
- package/dist/venture.d.ts.map +1 -1
- package/dist/venture.js +44 -43
- package/dist/venture.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -24,7 +24,7 @@ Consumers never interact with SST directly — `@venturekit/infra` is the abstra
|
|
|
24
24
|
|
|
25
25
|
## Usage
|
|
26
26
|
|
|
27
|
-
Create a `
|
|
27
|
+
Create a `vk.config.ts` at your project root:
|
|
28
28
|
|
|
29
29
|
```typescript
|
|
30
30
|
import { defineVenture } from '@venturekit/infra';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/translators/auth.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAwBD;;GAEG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/translators/auth.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAwBD;;GAEG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,UAAU,CAAC,CAwCrB"}
|
package/dist/translators/auth.js
CHANGED
|
@@ -34,23 +34,22 @@ function getPasswordPolicy(strength = 'standard') {
|
|
|
34
34
|
async function translateAuth(intent, sst, projectName) {
|
|
35
35
|
const resourceName = `${projectName}-${intent.id}`;
|
|
36
36
|
// Build user pool configuration
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
37
|
+
// The `sst` parameter here is the aws namespace (sst.aws)
|
|
38
|
+
const userPoolConfig = {};
|
|
39
|
+
if (intent.signInWith && intent.signInWith.length > 0) {
|
|
40
|
+
userPoolConfig.usernames = intent.signInWith;
|
|
41
|
+
}
|
|
41
42
|
// MFA configuration
|
|
42
43
|
if (intent.mfa && intent.mfa !== 'off') {
|
|
43
44
|
userPoolConfig.mfa = intent.mfa;
|
|
44
45
|
}
|
|
45
|
-
// Create user pool
|
|
46
|
+
// Create user pool (SST v3: sst.aws.CognitoUserPool)
|
|
46
47
|
const userPool = new sst.CognitoUserPool(resourceName, userPoolConfig);
|
|
47
|
-
// Create clients
|
|
48
|
+
// Create clients using .addClient() method (SST v3 pattern)
|
|
48
49
|
let primaryClientId = '';
|
|
49
50
|
if (intent.clients && intent.clients.length > 0) {
|
|
50
51
|
for (const client of intent.clients) {
|
|
51
|
-
const appClient =
|
|
52
|
-
userPool: userPool.id,
|
|
53
|
-
});
|
|
52
|
+
const appClient = userPool.addClient(client.name);
|
|
54
53
|
if (!primaryClientId) {
|
|
55
54
|
primaryClientId = appClient.id;
|
|
56
55
|
}
|
|
@@ -58,9 +57,7 @@ async function translateAuth(intent, sst, projectName) {
|
|
|
58
57
|
}
|
|
59
58
|
else {
|
|
60
59
|
// Create default client
|
|
61
|
-
const defaultClient =
|
|
62
|
-
userPool: userPool.id,
|
|
63
|
-
});
|
|
60
|
+
const defaultClient = userPool.addClient('default');
|
|
64
61
|
primaryClientId = defaultClient.id;
|
|
65
62
|
}
|
|
66
63
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/translators/auth.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAuCH,
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/translators/auth.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAuCH,sCA4CC;AArED;;GAEG;AACH,SAAS,iBAAiB,CAAC,WAAkC,UAAU;IACrE,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,OAAO;YACL,SAAS,EAAE,EAAE;YACb,gBAAgB,EAAE,IAAI;YACtB,gBAAgB,EAAE,IAAI;YACtB,aAAa,EAAE,IAAI;YACnB,cAAc,EAAE,IAAI;SACrB,CAAC;IACJ,CAAC;IACD,OAAO;QACL,SAAS,EAAE,CAAC;QACZ,gBAAgB,EAAE,IAAI;QACtB,gBAAgB,EAAE,IAAI;QACtB,aAAa,EAAE,IAAI;QACnB,cAAc,EAAE,KAAK;KACtB,CAAC;AACJ,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,aAAa,CACjC,MAAkB,EAClB,GAAQ,EACR,WAAmB;IAEnB,MAAM,YAAY,GAAG,GAAG,WAAW,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;IAEnD,gCAAgC;IAChC,0DAA0D;IAC1D,MAAM,cAAc,GAA4B,EAAE,CAAC;IAEnD,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtD,cAAc,CAAC,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC;IAC/C,CAAC;IAED,oBAAoB;IACpB,IAAI,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,KAAK,KAAK,EAAE,CAAC;QACvC,cAAc,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;IAClC,CAAC;IAED,qDAAqD;IACrD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IAEvE,4DAA4D;IAC5D,IAAI,eAAe,GAAG,EAAE,CAAC;IAEzB,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChD,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACpC,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAClD,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrB,eAAe,GAAG,SAAS,CAAC,EAAE,CAAC;YACjC,CAAC;QACH,CAAC;IACH,CAAC;SAAM,CAAC;QACN,wBAAwB;QACxB,MAAM,aAAa,GAAG,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACpD,eAAe,GAAG,aAAa,CAAC,EAAE,CAAC;IACrC,CAAC;IAED,OAAO;QACL,UAAU,EAAE,QAAQ,CAAC,EAAE;QACvB,WAAW,EAAE,QAAQ,CAAC,GAAG;QACzB,QAAQ,EAAE,eAAe;KAC1B,CAAC;AACJ,CAAC"}
|
|
@@ -18,5 +18,5 @@ export interface CacheOutput {
|
|
|
18
18
|
* Note: SST v3 uses different constructs for Redis.
|
|
19
19
|
* This translator abstracts those differences.
|
|
20
20
|
*/
|
|
21
|
-
export declare function translateCache(intent: CacheIntent, sst: any, projectName: string): Promise<CacheOutput>;
|
|
21
|
+
export declare function translateCache(intent: CacheIntent, sst: any, projectName: string, vpc?: any): Promise<CacheOutput>;
|
|
22
22
|
//# sourceMappingURL=cache.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/translators/cache.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAgB,MAAM,kBAAkB,CAAC;AAElE;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAeD;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/translators/cache.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAgB,MAAM,kBAAkB,CAAC;AAElE;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAeD;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,MAAM,EACnB,GAAG,CAAC,EAAE,GAAG,GACR,OAAO,CAAC,WAAW,CAAC,CAWtB"}
|
|
@@ -25,11 +25,11 @@ function sizeToNodeType(size) {
|
|
|
25
25
|
* Note: SST v3 uses different constructs for Redis.
|
|
26
26
|
* This translator abstracts those differences.
|
|
27
27
|
*/
|
|
28
|
-
async function translateCache(intent, sst, projectName) {
|
|
28
|
+
async function translateCache(intent, sst, projectName, vpc) {
|
|
29
29
|
const resourceName = `${projectName}-${intent.id}`;
|
|
30
|
-
// SST v3
|
|
31
|
-
// The
|
|
32
|
-
const redis = new sst.Redis(resourceName, {});
|
|
30
|
+
// SST v3: sst.aws.Redis
|
|
31
|
+
// The `sst` parameter here is the aws namespace (sst.aws)
|
|
32
|
+
const redis = new sst.Redis(resourceName, { vpc });
|
|
33
33
|
return {
|
|
34
34
|
endpoint: redis.host,
|
|
35
35
|
port: redis.port,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/translators/cache.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AA+BH,
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/translators/cache.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AA+BH,wCAgBC;AAnCD;;GAEG;AACH,SAAS,cAAc,CAAC,IAAkB;IACxC,MAAM,OAAO,GAAiC;QAC5C,KAAK,EAAE,gBAAgB;QACvB,MAAM,EAAE,gBAAgB;QACxB,KAAK,EAAE,iBAAiB;QACxB,MAAM,EAAE,gBAAgB;KACzB,CAAC;IACF,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,cAAc,CAClC,MAAmB,EACnB,GAAQ,EACR,WAAmB,EACnB,GAAS;IAET,MAAM,YAAY,GAAG,GAAG,WAAW,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;IAEnD,wBAAwB;IACxB,0DAA0D;IAC1D,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IAEnD,OAAO;QACL,QAAQ,EAAE,KAAK,CAAC,IAAI;QACpB,IAAI,EAAE,KAAK,CAAC,IAAI;KACjB,CAAC;AACJ,CAAC"}
|
|
@@ -22,7 +22,7 @@ export interface DatabaseOutput {
|
|
|
22
22
|
* @param projectName - The project name for resource naming
|
|
23
23
|
* @returns The created database output
|
|
24
24
|
*/
|
|
25
|
-
export declare function translateDatabase(intent: DatabaseIntent, sst: any, projectName: string): Promise<DatabaseOutput>;
|
|
25
|
+
export declare function translateDatabase(intent: DatabaseIntent, sst: any, projectName: string, vpc?: any): Promise<DatabaseOutput>;
|
|
26
26
|
/**
|
|
27
27
|
* Translate DatabaseIntent to SST configuration object
|
|
28
28
|
* (Alternative: returns config instead of creating resource)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/translators/database.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAgB,MAAM,kBAAkB,CAAC;AAErE;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACtB;AAoCD;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/translators/database.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAgB,MAAM,kBAAkB,CAAC;AAErE;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACtB;AAoCD;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,MAAM,EACnB,GAAG,CAAC,EAAE,GAAG,GACR,OAAO,CAAC,cAAc,CAAC,CAuBzB;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,MAAM,GAClB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAazB"}
|
|
@@ -47,21 +47,23 @@ function getDefaultPort(engine) {
|
|
|
47
47
|
* @param projectName - The project name for resource naming
|
|
48
48
|
* @returns The created database output
|
|
49
49
|
*/
|
|
50
|
-
async function translateDatabase(intent, sst, projectName) {
|
|
50
|
+
async function translateDatabase(intent, sst, projectName, vpc) {
|
|
51
51
|
const resourceName = `${projectName}-${intent.id}`;
|
|
52
|
-
// Translate intent to SST
|
|
53
|
-
//
|
|
54
|
-
const
|
|
55
|
-
scaling: {
|
|
56
|
-
min: intent.size === 'small' ? '0.5 ACU' : intent.size === 'medium' ? '1 ACU' : '2 ACU',
|
|
57
|
-
max: intent.size === 'small' ? '2 ACU' : intent.size === 'medium' ? '4 ACU' : '8 ACU',
|
|
58
|
-
},
|
|
52
|
+
// Translate intent to SST v3 Postgres component
|
|
53
|
+
// The `sst` parameter here is the aws namespace (sst.aws)
|
|
54
|
+
const config = {
|
|
59
55
|
database: intent.name,
|
|
60
|
-
|
|
56
|
+
vpc,
|
|
57
|
+
};
|
|
58
|
+
// Map size to RDS instance type
|
|
59
|
+
if (intent.size && intent.size !== 'small') {
|
|
60
|
+
config.instance = sizeToInstanceClass(intent.size, intent.type);
|
|
61
|
+
}
|
|
62
|
+
const rds = new sst.Postgres(resourceName, config);
|
|
61
63
|
return {
|
|
62
64
|
endpoint: rds.host,
|
|
63
65
|
port: rds.port,
|
|
64
|
-
secretArn: rds.
|
|
66
|
+
secretArn: rds.password ?? '',
|
|
65
67
|
databaseName: intent.name,
|
|
66
68
|
};
|
|
67
69
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/translators/database.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAwDH,
|
|
1
|
+
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/translators/database.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAwDH,8CA4BC;AAQD,0DAgBC;AA9FD;;;GAGG;AACH,SAAS,mBAAmB,CAAC,IAAkB,EAAE,MAA4B;IAC3E,MAAM,OAAO,GAAiC;QAC5C,KAAK,EAAE,aAAa;QACpB,MAAM,EAAE,aAAa;QACrB,KAAK,EAAE,cAAc;QACrB,MAAM,EAAE,aAAa;KACtB,CAAC;IACF,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,IAAkB;IACvC,MAAM,OAAO,GAAiC;QAC5C,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,EAAE;QACV,KAAK,EAAE,GAAG;QACV,MAAM,EAAE,GAAG;KACZ,CAAC;IACF,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,MAA4B;IAClD,OAAO,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7C,CAAC;AAED;;;;;;;GAOG;AACI,KAAK,UAAU,iBAAiB,CACrC,MAAsB,EACtB,GAAQ,EACR,WAAmB,EACnB,GAAS;IAET,MAAM,YAAY,GAAG,GAAG,WAAW,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;IAEnD,gDAAgD;IAChD,0DAA0D;IAC1D,MAAM,MAAM,GAA4B;QACtC,QAAQ,EAAE,MAAM,CAAC,IAAI;QACrB,GAAG;KACJ,CAAC;IAEF,gCAAgC;IAChC,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC3C,MAAM,CAAC,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAEnD,OAAO;QACL,QAAQ,EAAE,GAAG,CAAC,IAAI;QAClB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,SAAS,EAAE,GAAG,CAAC,QAAQ,IAAI,EAAE;QAC7B,YAAY,EAAE,MAAM,CAAC,IAAI;KAC1B,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAgB,uBAAuB,CACrC,MAAsB,EACtB,WAAmB;IAEnB,OAAO;QACL,IAAI,EAAE,GAAG,WAAW,IAAI,MAAM,CAAC,EAAE,EAAE;QACnC,MAAM,EAAE,MAAM,CAAC,IAAI;QACnB,aAAa,EAAE,mBAAmB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC;QAC5D,gBAAgB,EAAE,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC;QAC5C,YAAY,EAAE,MAAM,CAAC,IAAI;QACzB,OAAO,EAAE,MAAM,CAAC,gBAAgB,IAAI,KAAK;QACzC,gBAAgB,EAAE,MAAM,CAAC,SAAS,IAAI,IAAI;QAC1C,qBAAqB,EAAE,MAAM,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,mBAAmB,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvF,0BAA0B,EAAE,MAAM,CAAC,mBAAmB,IAAI,KAAK;QAC/D,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC;KAClC,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/translators/orchestrator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/translators/orchestrator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAYrE;;;;;;;;;GASG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,aAAa,EACtB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,aAAa,CAAC,CAoFxB"}
|
|
@@ -24,8 +24,9 @@ const schedule_js_1 = require("./schedule.js");
|
|
|
24
24
|
* @returns Outputs from all created resources
|
|
25
25
|
*/
|
|
26
26
|
async function translateAllIntents(intents, projectName) {
|
|
27
|
-
//
|
|
28
|
-
|
|
27
|
+
// `sst` is a compile-time global injected by SST's esbuild when bundling sst.config.ts.
|
|
28
|
+
// Components are at sst.aws.* (e.g., sst.aws.Postgres, sst.aws.Bucket).
|
|
29
|
+
const aws = sst.aws;
|
|
29
30
|
const outputs = {
|
|
30
31
|
databases: {},
|
|
31
32
|
storage: {},
|
|
@@ -33,10 +34,17 @@ async function translateAllIntents(intents, projectName) {
|
|
|
33
34
|
queues: {},
|
|
34
35
|
caches: {},
|
|
35
36
|
};
|
|
37
|
+
// Create a shared VPC if databases or caches need one
|
|
38
|
+
const needsVpc = (intents.databases && intents.databases.length > 0) ||
|
|
39
|
+
(intents.caches && intents.caches.length > 0);
|
|
40
|
+
let vpc = undefined;
|
|
41
|
+
if (needsVpc) {
|
|
42
|
+
vpc = new aws.Vpc(`${projectName}-vpc`);
|
|
43
|
+
}
|
|
36
44
|
// Translate databases
|
|
37
45
|
if (intents.databases) {
|
|
38
46
|
for (const intent of intents.databases) {
|
|
39
|
-
const result = await (0, database_js_1.translateDatabase)(intent,
|
|
47
|
+
const result = await (0, database_js_1.translateDatabase)(intent, aws, projectName, vpc);
|
|
40
48
|
outputs.databases[intent.id] = {
|
|
41
49
|
endpoint: result.endpoint,
|
|
42
50
|
port: result.port,
|
|
@@ -47,7 +55,7 @@ async function translateAllIntents(intents, projectName) {
|
|
|
47
55
|
// Translate storage
|
|
48
56
|
if (intents.storage) {
|
|
49
57
|
for (const intent of intents.storage) {
|
|
50
|
-
const result = await (0, storage_js_1.translateStorage)(intent,
|
|
58
|
+
const result = await (0, storage_js_1.translateStorage)(intent, aws, projectName);
|
|
51
59
|
outputs.storage[intent.id] = {
|
|
52
60
|
bucketName: result.bucketName,
|
|
53
61
|
cdnUrl: result.cdnUrl,
|
|
@@ -57,7 +65,7 @@ async function translateAllIntents(intents, projectName) {
|
|
|
57
65
|
// Translate auth
|
|
58
66
|
if (intents.auth) {
|
|
59
67
|
for (const intent of intents.auth) {
|
|
60
|
-
const result = await (0, auth_js_1.translateAuth)(intent,
|
|
68
|
+
const result = await (0, auth_js_1.translateAuth)(intent, aws, projectName);
|
|
61
69
|
outputs.auth[intent.id] = {
|
|
62
70
|
userPoolId: result.userPoolId,
|
|
63
71
|
clientId: result.clientId,
|
|
@@ -67,7 +75,7 @@ async function translateAllIntents(intents, projectName) {
|
|
|
67
75
|
// Translate queues
|
|
68
76
|
if (intents.queues) {
|
|
69
77
|
for (const intent of intents.queues) {
|
|
70
|
-
const result = await (0, queue_js_1.translateQueue)(intent,
|
|
78
|
+
const result = await (0, queue_js_1.translateQueue)(intent, aws, projectName);
|
|
71
79
|
outputs.queues[intent.id] = {
|
|
72
80
|
queueUrl: result.queueUrl,
|
|
73
81
|
};
|
|
@@ -76,7 +84,7 @@ async function translateAllIntents(intents, projectName) {
|
|
|
76
84
|
// Translate caches
|
|
77
85
|
if (intents.caches) {
|
|
78
86
|
for (const intent of intents.caches) {
|
|
79
|
-
const result = await (0, cache_js_1.translateCache)(intent,
|
|
87
|
+
const result = await (0, cache_js_1.translateCache)(intent, aws, projectName, vpc);
|
|
80
88
|
outputs.caches[intent.id] = {
|
|
81
89
|
endpoint: result.endpoint,
|
|
82
90
|
port: result.port,
|
|
@@ -86,7 +94,7 @@ async function translateAllIntents(intents, projectName) {
|
|
|
86
94
|
// Translate schedules (no output needed, they're event-driven)
|
|
87
95
|
if (intents.schedules) {
|
|
88
96
|
for (const intent of intents.schedules) {
|
|
89
|
-
await (0, schedule_js_1.translateSchedule)(intent,
|
|
97
|
+
await (0, schedule_js_1.translateSchedule)(intent, aws, projectName);
|
|
90
98
|
}
|
|
91
99
|
}
|
|
92
100
|
return outputs;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../src/translators/orchestrator.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;
|
|
1
|
+
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../src/translators/orchestrator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schedule.d.ts","sourceRoot":"","sources":["../../src/translators/schedule.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAkBD;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"schedule.d.ts","sourceRoot":"","sources":["../../src/translators/schedule.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAkBD;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,cAAc,CAAC,CAqBzB"}
|
|
@@ -30,15 +30,16 @@ async function translateSchedule(intent, sst, projectName) {
|
|
|
30
30
|
const schedule = 'rate' in intent.schedule
|
|
31
31
|
? formatRate(intent.schedule.rate)
|
|
32
32
|
: formatCron(intent.schedule.cron);
|
|
33
|
-
// Create cron job
|
|
34
|
-
|
|
33
|
+
// Create cron job (SST v3: sst.aws.Cron)
|
|
34
|
+
// The `sst` parameter here is the aws namespace (sst.aws)
|
|
35
|
+
const cronConfig = {
|
|
35
36
|
schedule,
|
|
36
37
|
job: intent.handler,
|
|
37
|
-
|
|
38
|
-
|
|
38
|
+
};
|
|
39
|
+
const cron = new sst.Cron(resourceName, cronConfig);
|
|
39
40
|
return {
|
|
40
|
-
ruleArn: cron.
|
|
41
|
-
ruleName:
|
|
41
|
+
ruleArn: cron.arn ?? resourceName,
|
|
42
|
+
ruleName: resourceName,
|
|
42
43
|
};
|
|
43
44
|
}
|
|
44
45
|
//# sourceMappingURL=schedule.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schedule.js","sourceRoot":"","sources":["../../src/translators/schedule.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AA+BH,
|
|
1
|
+
{"version":3,"file":"schedule.js","sourceRoot":"","sources":["../../src/translators/schedule.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AA+BH,8CAyBC;AA5CD;;;GAGG;AACH,SAAS,UAAU,CAAC,IAAY;IAC9B,OAAO,QAAQ,IAAI,GAAG,CAAC;AACzB,CAAC;AAED;;;GAGG;AACH,SAAS,UAAU,CAAC,IAAY;IAC9B,OAAO,QAAQ,IAAI,GAAG,CAAC;AACzB,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,iBAAiB,CACrC,MAAsB,EACtB,GAAQ,EACR,WAAmB;IAEnB,MAAM,YAAY,GAAG,GAAG,WAAW,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;IAEnD,gCAAgC;IAChC,MAAM,QAAQ,GAAG,MAAM,IAAI,MAAM,CAAC,QAAQ;QACxC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;QAClC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAErC,yCAAyC;IACzC,0DAA0D;IAC1D,MAAM,UAAU,GAA4B;QAC1C,QAAQ;QACR,GAAG,EAAE,MAAM,CAAC,OAAO;KACpB,CAAC;IAEF,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IAEpD,OAAO;QACL,OAAO,EAAE,IAAI,CAAC,GAAG,IAAI,YAAY;QACjC,QAAQ,EAAE,YAAY;KACvB,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/translators/storage.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,aAAa,EACrB,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/translators/storage.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,aAAa,EACrB,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,aAAa,CAAC,CA4CxB"}
|
|
@@ -13,6 +13,7 @@ exports.translateStorage = translateStorage;
|
|
|
13
13
|
async function translateStorage(intent, sst, projectName) {
|
|
14
14
|
const resourceName = `${projectName}-${intent.id}`;
|
|
15
15
|
// Build bucket configuration based on intent
|
|
16
|
+
// The `sst` parameter here is the aws namespace (sst.aws)
|
|
16
17
|
const bucketConfig = {};
|
|
17
18
|
// Versioning based on purpose or explicit setting
|
|
18
19
|
if (intent.versioned ?? intent.purpose === 'backups') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/translators/storage.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAgBH,
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/translators/storage.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAgBH,4CAgDC;AAnDD;;GAEG;AACI,KAAK,UAAU,gBAAgB,CACpC,MAAqB,EACrB,GAAQ,EACR,WAAmB;IAEnB,MAAM,YAAY,GAAG,GAAG,WAAW,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;IAEnD,6CAA6C;IAC7C,0DAA0D;IAC1D,MAAM,YAAY,GAA4B,EAAE,CAAC;IAEjD,kDAAkD;IAClD,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACrD,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC;IACjC,CAAC;IAED,qBAAqB;IACrB,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxD,YAAY,CAAC,IAAI,GAAG;YAClB,YAAY,EAAE,MAAM,CAAC,WAAW;YAChC,YAAY,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC;YAC9C,YAAY,EAAE,CAAC,GAAG,CAAC;SACpB,CAAC;IACJ,CAAC;IAED,gBAAgB;IAChB,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IAE1D,MAAM,MAAM,GAAkB;QAC5B,UAAU,EAAE,MAAM,CAAC,IAAI;QACvB,SAAS,EAAE,MAAM,CAAC,GAAG;KACtB,CAAC;IAEF,0BAA0B;IAC1B,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;QACf,MAAM,SAAS,GAA4B;YACzC,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;SACtB,CAAC;QAEF,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC;QACtC,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,YAAY,MAAM,EAAE,SAAS,CAAC,CAAC;QAC1D,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC;IAC1B,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/dist/venture.d.ts
CHANGED
|
@@ -56,7 +56,7 @@ export interface VentureAppConfig {
|
|
|
56
56
|
*
|
|
57
57
|
* @example
|
|
58
58
|
* ```typescript
|
|
59
|
-
* //
|
|
59
|
+
* // vk.config.ts
|
|
60
60
|
* import { defineVenture } from '@venturekit/infra';
|
|
61
61
|
* import { base } from './config/base.js';
|
|
62
62
|
* import { security } from './config/security.js';
|
|
@@ -72,11 +72,15 @@ export interface VentureAppConfig {
|
|
|
72
72
|
* ```
|
|
73
73
|
*/
|
|
74
74
|
export declare function defineVenture(definition: VentureDefinition): {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
75
|
+
app(input: {
|
|
76
|
+
stage: string;
|
|
77
|
+
}): {
|
|
78
|
+
name: string;
|
|
79
|
+
home: "aws";
|
|
80
|
+
providers: {
|
|
81
|
+
aws: {
|
|
82
|
+
region: string;
|
|
83
|
+
};
|
|
80
84
|
};
|
|
81
85
|
};
|
|
82
86
|
run(): Promise<Record<string, unknown>>;
|
package/dist/venture.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"venture.d.ts","sourceRoot":"","sources":["../src/venture.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,UAAU,EACV,cAAc,EACd,cAAc,EAEd,cAAc,EACd,aAAa,EAOd,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"venture.d.ts","sourceRoot":"","sources":["../src/venture.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,UAAU,EACV,cAAc,EACd,cAAc,EAEd,cAAc,EACd,aAAa,EAOd,MAAM,kBAAkB,CAAC;AA0B1B;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,4CAA4C;IAC5C,IAAI,EAAE,UAAU,CAAC;IAEjB,+CAA+C;IAC/C,QAAQ,EAAE,cAAc,CAAC;IAEzB,0CAA0C;IAC1C,IAAI,EAAE;QACJ,GAAG,CAAC,EAAE,cAAc,CAAC;QACrB,KAAK,CAAC,EAAE,cAAc,CAAC;QACvB,IAAI,CAAC,EAAE,cAAc,CAAC;KACvB,CAAC;IAEF,qEAAqE;IACrE,SAAS,EAAE,MAAM,CAAC;IAElB;;;;;;;;;;;;;OAaG;IACH,cAAc,CAAC,EAAE,aAAa,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,KAAK,CAAC;IACZ,SAAS,EAAE;QACT,GAAG,EAAE;YACH,MAAM,EAAE,MAAM,CAAC;SAChB,CAAC;KACH,CAAC;CACH;AA2CD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,iBAAiB;eAS5C;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE;;;;;;;;;;EAgD/B;AAqFD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,cAAc,GACvB,cAAc,CAIhB"}
|
package/dist/venture.js
CHANGED
|
@@ -76,7 +76,7 @@ function discoverRoutes(routesDir) {
|
|
|
76
76
|
const method = (0, api_js_1.fileNameToMethod)(entry.name);
|
|
77
77
|
if (method) {
|
|
78
78
|
const apiPath = routePath || '/';
|
|
79
|
-
const handlerPath = fullPath.replace(/\.(ts|js)$/, '.handler');
|
|
79
|
+
const handlerPath = fullPath.replace(/\\/g, '/').replace(/\.(ts|js)$/, '.handler');
|
|
80
80
|
routes.push({ method, path: apiPath, handler: handlerPath });
|
|
81
81
|
}
|
|
82
82
|
}
|
|
@@ -92,7 +92,7 @@ function discoverRoutes(routesDir) {
|
|
|
92
92
|
*
|
|
93
93
|
* @example
|
|
94
94
|
* ```typescript
|
|
95
|
-
* //
|
|
95
|
+
* // vk.config.ts
|
|
96
96
|
* import { defineVenture } from '@venturekit/infra';
|
|
97
97
|
* import { base } from './config/base.js';
|
|
98
98
|
* import { security } from './config/security.js';
|
|
@@ -114,16 +114,20 @@ function defineVenture(definition) {
|
|
|
114
114
|
const securityValidation = (0, core_1.validateSecurityConfig)(definition.security);
|
|
115
115
|
(0, core_1.assertValid)(securityValidation);
|
|
116
116
|
return {
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
117
|
+
app(input) {
|
|
118
|
+
return {
|
|
119
|
+
name: definition.base.name,
|
|
120
|
+
home: 'aws',
|
|
121
|
+
providers: {
|
|
122
|
+
aws: {
|
|
123
|
+
region: definition.base.region,
|
|
124
|
+
},
|
|
125
|
+
},
|
|
126
|
+
};
|
|
123
127
|
},
|
|
124
128
|
async run() {
|
|
125
|
-
// Determine current environment from
|
|
126
|
-
const stage = process.env.VENTURE_STAGE || 'dev';
|
|
129
|
+
// Determine current environment from $app.stage (set by SST CLI --stage flag)
|
|
130
|
+
const stage = globalThis.$app?.stage || process.env.VENTURE_STAGE || 'dev';
|
|
127
131
|
const env = (stage === 'prod' ? 'prod' : stage === 'stage' ? 'stage' : 'dev');
|
|
128
132
|
// Get env config (default to empty if not specified)
|
|
129
133
|
const envInput = definition.envs[env] || {};
|
|
@@ -152,38 +156,26 @@ function defineVenture(definition) {
|
|
|
152
156
|
* Create infrastructure resources
|
|
153
157
|
*/
|
|
154
158
|
async function createInfrastructure(config, routes, intentOutputs) {
|
|
155
|
-
//
|
|
156
|
-
|
|
159
|
+
// `sst` is a compile-time global injected by SST's esbuild when bundling sst.config.ts.
|
|
160
|
+
// Components are at sst.aws.* (e.g., sst.aws.ApiGatewayV2, sst.aws.Vpc).
|
|
161
|
+
const aws = sst.aws;
|
|
157
162
|
const outputs = {};
|
|
158
163
|
// Create VPC if needed
|
|
159
164
|
let vpc = undefined;
|
|
160
165
|
if ((0, vpc_js_1.isVpcRequired)(config.lambda.vpcEnabled)) {
|
|
161
|
-
vpc = new
|
|
166
|
+
vpc = new aws.Vpc(`${config.name}-vpc`, (0, vpc_js_1.createVpcConfig)(config.name, config.vpc));
|
|
162
167
|
outputs.vpcId = vpc.id;
|
|
163
168
|
}
|
|
164
|
-
// Build route
|
|
165
|
-
const
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
VENTURE_NAME: config.name,
|
|
174
|
-
...(intentOutputs ? { VENTURE_INTENT_OUTPUTS: JSON.stringify(intentOutputs) } : {}),
|
|
175
|
-
}),
|
|
176
|
-
};
|
|
177
|
-
if (vpc && config.lambda.vpcEnabled) {
|
|
178
|
-
routeEntry.vpc = vpc;
|
|
179
|
-
}
|
|
180
|
-
routeConfig[key] = routeEntry;
|
|
181
|
-
}
|
|
182
|
-
// Create API Gateway
|
|
169
|
+
// Build shared Lambda config for route handlers
|
|
170
|
+
const lambdaConfig = (0, lambda_js_1.createLambdaConfig)(config.lambda);
|
|
171
|
+
const lambdaEnv = (0, lambda_js_1.createLambdaEnvironment)({
|
|
172
|
+
VENTURE_ENV: config.env,
|
|
173
|
+
VENTURE_NAME: config.name,
|
|
174
|
+
...(intentOutputs ? { VENTURE_INTENT_OUTPUTS: JSON.stringify(intentOutputs) } : {}),
|
|
175
|
+
});
|
|
176
|
+
// Create API Gateway (SST v3: construct first, then add routes)
|
|
177
|
+
const apiConfig = {};
|
|
183
178
|
const corsConfig = (0, api_js_1.createCorsConfig)(config.api.cors);
|
|
184
|
-
const apiConfig = {
|
|
185
|
-
routes: routeConfig,
|
|
186
|
-
};
|
|
187
179
|
if (corsConfig) {
|
|
188
180
|
apiConfig.cors = corsConfig;
|
|
189
181
|
}
|
|
@@ -194,17 +186,26 @@ async function createInfrastructure(config, routes, intentOutputs) {
|
|
|
194
186
|
cert: config.api.customDomain.certificateArn,
|
|
195
187
|
};
|
|
196
188
|
}
|
|
197
|
-
|
|
189
|
+
if (vpc && config.lambda.vpcEnabled) {
|
|
190
|
+
apiConfig.vpc = vpc;
|
|
191
|
+
}
|
|
192
|
+
const api = new aws.ApiGatewayV2(`${config.name}-api`, apiConfig);
|
|
193
|
+
// Add routes using SST v3 .route() method
|
|
194
|
+
for (const route of routes) {
|
|
195
|
+
const routeKey = `${route.method} ${route.path}`;
|
|
196
|
+
api.route(routeKey, {
|
|
197
|
+
handler: route.handler,
|
|
198
|
+
...lambdaConfig,
|
|
199
|
+
environment: lambdaEnv,
|
|
200
|
+
});
|
|
201
|
+
}
|
|
198
202
|
outputs.apiUrl = api.url;
|
|
199
203
|
// Create WebSocket API if enabled
|
|
200
204
|
if (config.websocket.enabled) {
|
|
201
|
-
const wsApi = new
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
$default: `${config.name}/ws/default.handler`,
|
|
206
|
-
},
|
|
207
|
-
});
|
|
205
|
+
const wsApi = new aws.ApiGatewayWebSocket(`${config.name}-ws`);
|
|
206
|
+
wsApi.route('$connect', `src/ws/connect.handler`);
|
|
207
|
+
wsApi.route('$disconnect', `src/ws/disconnect.handler`);
|
|
208
|
+
wsApi.route('$default', `src/ws/default.handler`);
|
|
208
209
|
outputs.wsUrl = wsApi.url;
|
|
209
210
|
}
|
|
210
211
|
// Output resolved config for debugging
|
package/dist/venture.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"venture.js","sourceRoot":"","sources":["../src/venture.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"venture.js","sourceRoot":"","sources":["../src/venture.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@venturekit/infra",
|
|
3
|
-
"version": "0.0.0-dev.
|
|
3
|
+
"version": "0.0.0-dev.20260311152758",
|
|
4
4
|
"description": "VentureKit infrastructure - SST constructs for AWS",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
],
|
|
26
26
|
"license": "Apache-2.0",
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@venturekit/core": "0.0.0-dev.
|
|
28
|
+
"@venturekit/core": "0.0.0-dev.20260311152758",
|
|
29
29
|
"sst": "^3.0.0"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|