@awsless/awsless 0.0.252 → 0.0.254
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/dist/bin.js +50 -55
- package/dist/chunk-2LRBH7VV.js +19 -0
- package/dist/client.d.ts +17 -5
- package/dist/client.js +37 -4
- package/dist/server.d.ts +72 -73
- package/dist/server.js +224 -212
- package/package.json +6 -6
- package/dist/auth-b89f6013.d.ts +0 -11
- package/dist/chunk-RRXFYZJQ.js +0 -61
package/dist/bin.js
CHANGED
|
@@ -1687,6 +1687,7 @@ var bootstrap = (program2) => {
|
|
|
1687
1687
|
import { App, Stack } from "@awsless/formation";
|
|
1688
1688
|
|
|
1689
1689
|
// src/feature/auth/index.ts
|
|
1690
|
+
import { aws as aws2, Node as Node2 } from "@awsless/formation";
|
|
1690
1691
|
import { constantCase as constantCase2 } from "change-case";
|
|
1691
1692
|
|
|
1692
1693
|
// src/feature.ts
|
|
@@ -1819,9 +1820,6 @@ var formatLocalResourceName = (appName, stackName, ns, id, seperator = "--") =>
|
|
|
1819
1820
|
].map((v) => paramCase3(v)).join(seperator);
|
|
1820
1821
|
};
|
|
1821
1822
|
|
|
1822
|
-
// src/feature/auth/index.ts
|
|
1823
|
-
import { Node as Node2, aws as aws2 } from "@awsless/formation";
|
|
1824
|
-
|
|
1825
1823
|
// src/feature/function/util.ts
|
|
1826
1824
|
import { Asset, aws } from "@awsless/formation";
|
|
1827
1825
|
import deepmerge from "deepmerge";
|
|
@@ -2262,14 +2260,11 @@ var createAsyncLambdaFunction = (group, ctx, ns, id, local2) => {
|
|
|
2262
2260
|
var authFeature = defineFeature({
|
|
2263
2261
|
name: "auth",
|
|
2264
2262
|
async onTypeGen(ctx) {
|
|
2265
|
-
const gen = new TypeFile("@awsless/awsless");
|
|
2263
|
+
const gen = new TypeFile("@awsless/awsless/client");
|
|
2266
2264
|
const resources = new TypeObject(1);
|
|
2267
2265
|
for (const name of Object.keys(ctx.appConfig.defaults.auth)) {
|
|
2268
2266
|
const authName = formatGlobalResourceName(ctx.appConfig.name, "auth", name);
|
|
2269
|
-
resources.addType(
|
|
2270
|
-
name,
|
|
2271
|
-
`{ readonly name: '${authName}', readonly userPoolId: string, readonly clientId: string }`
|
|
2272
|
-
);
|
|
2267
|
+
resources.addType(name, `{ readonly userPoolId: string, readonly clientId: string }`);
|
|
2273
2268
|
}
|
|
2274
2269
|
gen.addInterface("AuthResources", resources);
|
|
2275
2270
|
await ctx.write("auth.d.ts", gen, true);
|
|
@@ -2791,29 +2786,12 @@ var functionFeature = defineFeature({
|
|
|
2791
2786
|
|
|
2792
2787
|
// src/feature/graphql/index.ts
|
|
2793
2788
|
import { constantCase as constantCase4, paramCase as paramCase5 } from "change-case";
|
|
2794
|
-
import { mergeTypeDefs } from "@graphql-tools/merge";
|
|
2795
2789
|
import { generate } from "@awsless/graphql";
|
|
2796
|
-
import {
|
|
2790
|
+
import { mergeTypeDefs } from "@graphql-tools/merge";
|
|
2797
2791
|
import { readFile as readFile5 } from "fs/promises";
|
|
2798
|
-
import {
|
|
2799
|
-
|
|
2800
|
-
|
|
2801
|
-
var getDomainNameById = (config2, id) => {
|
|
2802
|
-
const domains = config2.defaults.domains ?? {};
|
|
2803
|
-
if (id in domains) {
|
|
2804
|
-
if (domains[id]) {
|
|
2805
|
-
return domains[id].domain;
|
|
2806
|
-
}
|
|
2807
|
-
}
|
|
2808
|
-
throw new TypeError(`No domain registered with id: ${id}`);
|
|
2809
|
-
};
|
|
2810
|
-
var formatFullDomainName = (config2, id, subDomain) => {
|
|
2811
|
-
const domain = getDomainNameById(config2, id);
|
|
2812
|
-
if (subDomain) {
|
|
2813
|
-
return `${subDomain.replace(/\.$/, "")}.${domain}`;
|
|
2814
|
-
}
|
|
2815
|
-
return domain;
|
|
2816
|
-
};
|
|
2792
|
+
import { buildSchema, print } from "graphql";
|
|
2793
|
+
import { Asset as Asset2, aws as aws7, Node as Node7 } from "@awsless/formation";
|
|
2794
|
+
import { createHash as createHash5 } from "crypto";
|
|
2817
2795
|
|
|
2818
2796
|
// src/build/fingerprint.ts
|
|
2819
2797
|
import { createHash as createHash3 } from "crypto";
|
|
@@ -2883,6 +2861,30 @@ var findDependencies2 = async (file, code) => {
|
|
|
2883
2861
|
return imports.map((entry) => entry.moduleName).filter(Boolean).map((value) => value?.startsWith(".") ? join7(dirname7(file), value) : value);
|
|
2884
2862
|
};
|
|
2885
2863
|
|
|
2864
|
+
// src/util/id.ts
|
|
2865
|
+
import { createHash as createHash4 } from "crypto";
|
|
2866
|
+
var shortId = (ns) => {
|
|
2867
|
+
return createHash4("md5").update(ns).digest("hex").substring(0, 10);
|
|
2868
|
+
};
|
|
2869
|
+
|
|
2870
|
+
// src/feature/domain/util.ts
|
|
2871
|
+
var getDomainNameById = (config2, id) => {
|
|
2872
|
+
const domains = config2.defaults.domains ?? {};
|
|
2873
|
+
if (id in domains) {
|
|
2874
|
+
if (domains[id]) {
|
|
2875
|
+
return domains[id].domain;
|
|
2876
|
+
}
|
|
2877
|
+
}
|
|
2878
|
+
throw new TypeError(`No domain registered with id: ${id}`);
|
|
2879
|
+
};
|
|
2880
|
+
var formatFullDomainName = (config2, id, subDomain) => {
|
|
2881
|
+
const domain = getDomainNameById(config2, id);
|
|
2882
|
+
if (subDomain) {
|
|
2883
|
+
return `${subDomain.replace(/\.$/, "")}.${domain}`;
|
|
2884
|
+
}
|
|
2885
|
+
return domain;
|
|
2886
|
+
};
|
|
2887
|
+
|
|
2886
2888
|
// src/feature/graphql/build/typescript/resolver.ts
|
|
2887
2889
|
import { rollup as rollup2 } from "rollup";
|
|
2888
2890
|
import { swc as swc2, minify as swcMinify2 } from "rollup-plugin-swc3";
|
|
@@ -2943,15 +2945,6 @@ var buildTypeScriptResolver = async (input, { minify = true } = {}) => {
|
|
|
2943
2945
|
return Buffer.from(code, "utf8");
|
|
2944
2946
|
};
|
|
2945
2947
|
|
|
2946
|
-
// src/feature/graphql/index.ts
|
|
2947
|
-
import { createHash as createHash5 } from "crypto";
|
|
2948
|
-
|
|
2949
|
-
// src/util/id.ts
|
|
2950
|
-
import { createHash as createHash4 } from "crypto";
|
|
2951
|
-
var shortId = (ns) => {
|
|
2952
|
-
return createHash4("md5").update(ns).digest("hex").substring(0, 10);
|
|
2953
|
-
};
|
|
2954
|
-
|
|
2955
2948
|
// src/feature/graphql/index.ts
|
|
2956
2949
|
var defaultResolver = `
|
|
2957
2950
|
export function request(ctx) {
|
|
@@ -2988,13 +2981,12 @@ scalar AWSIPAddress
|
|
|
2988
2981
|
var graphqlFeature = defineFeature({
|
|
2989
2982
|
name: "graphql",
|
|
2990
2983
|
async onTypeGen(ctx) {
|
|
2991
|
-
const types2 = new TypeFile("@awsless/awsless");
|
|
2984
|
+
const types2 = new TypeFile("@awsless/awsless/client");
|
|
2985
|
+
const schemas = new TypeObject(1);
|
|
2992
2986
|
const resources = new TypeObject(1);
|
|
2993
2987
|
const apis = /* @__PURE__ */ new Map();
|
|
2994
|
-
for (const
|
|
2995
|
-
|
|
2996
|
-
apis.set(id, []);
|
|
2997
|
-
}
|
|
2988
|
+
for (const id of Object.keys(ctx.appConfig.defaults.graphql ?? {})) {
|
|
2989
|
+
apis.set(id, []);
|
|
2998
2990
|
}
|
|
2999
2991
|
for (const stack of ctx.stackConfigs) {
|
|
3000
2992
|
for (const [id, props] of Object.entries(stack.graphql || {})) {
|
|
@@ -3027,9 +3019,11 @@ var graphqlFeature = defineFeature({
|
|
|
3027
3019
|
});
|
|
3028
3020
|
await ctx.write(`graphql/${id}.ts`, output);
|
|
3029
3021
|
types2.addImport({ Schema: id }, `./graphql/${id}.ts`);
|
|
3030
|
-
|
|
3022
|
+
schemas.addType(id, id);
|
|
3031
3023
|
}
|
|
3024
|
+
resources.addType(id, "{ readonly endpoint: string }");
|
|
3032
3025
|
}
|
|
3026
|
+
types2.addInterface("GraphQLSchema", schemas);
|
|
3033
3027
|
types2.addInterface("GraphQL", resources);
|
|
3034
3028
|
await ctx.write("graphql.d.ts", types2, true);
|
|
3035
3029
|
},
|
|
@@ -3131,6 +3125,8 @@ var graphqlFeature = defineFeature({
|
|
|
3131
3125
|
}
|
|
3132
3126
|
});
|
|
3133
3127
|
ctx.bindEnv(`GRAPHQL_${constantCase4(id)}_ENDPOINT`, domainName);
|
|
3128
|
+
} else {
|
|
3129
|
+
ctx.bindEnv(`GRAPHQL_${constantCase4(id)}_ENDPOINT`, api.graphql.uri);
|
|
3134
3130
|
}
|
|
3135
3131
|
}
|
|
3136
3132
|
},
|
|
@@ -3138,10 +3134,7 @@ var graphqlFeature = defineFeature({
|
|
|
3138
3134
|
for (const [id, props] of Object.entries(ctx.stackConfig.graphql ?? {})) {
|
|
3139
3135
|
const defaultProps = ctx.appConfig.defaults.graphql?.[id];
|
|
3140
3136
|
if (!defaultProps) {
|
|
3141
|
-
throw new FileError(
|
|
3142
|
-
ctx.stackConfig.file,
|
|
3143
|
-
`GraphQL definition is not defined on app level for "${id}"`
|
|
3144
|
-
);
|
|
3137
|
+
throw new FileError(ctx.stackConfig.file, `GraphQL definition is not defined on app level for "${id}"`);
|
|
3145
3138
|
}
|
|
3146
3139
|
const group = new Node7(ctx.stack, "graphql", id);
|
|
3147
3140
|
const apiId = ctx.shared.get(`graphql-${id}-id`);
|
|
@@ -3201,7 +3194,7 @@ var graphqlFeature = defineFeature({
|
|
|
3201
3194
|
});
|
|
3202
3195
|
|
|
3203
3196
|
// src/feature/http/index.ts
|
|
3204
|
-
import {
|
|
3197
|
+
import { aws as aws8, Node as Node8 } from "@awsless/formation";
|
|
3205
3198
|
import { camelCase as camelCase4, constantCase as constantCase5 } from "change-case";
|
|
3206
3199
|
import { relative as relative2 } from "path";
|
|
3207
3200
|
var parseRoute = (route) => {
|
|
@@ -3221,7 +3214,7 @@ var generatePriority = (stackName, route) => {
|
|
|
3221
3214
|
var httpFeature = defineFeature({
|
|
3222
3215
|
name: "http",
|
|
3223
3216
|
async onTypeGen(ctx) {
|
|
3224
|
-
const types2 = new TypeFile("@awsless/awsless");
|
|
3217
|
+
const types2 = new TypeFile("@awsless/awsless/client");
|
|
3225
3218
|
const resources = new TypeObject(1);
|
|
3226
3219
|
const api = {};
|
|
3227
3220
|
for (const stack of ctx.stackConfigs) {
|
|
@@ -3529,7 +3522,7 @@ var queueFeature = defineFeature({
|
|
|
3529
3522
|
});
|
|
3530
3523
|
|
|
3531
3524
|
// src/feature/rest/index.ts
|
|
3532
|
-
import {
|
|
3525
|
+
import { aws as aws12, Node as Node12 } from "@awsless/formation";
|
|
3533
3526
|
import { constantCase as constantCase7 } from "change-case";
|
|
3534
3527
|
var restFeature = defineFeature({
|
|
3535
3528
|
name: "rest",
|
|
@@ -3574,6 +3567,7 @@ var restFeature = defineFeature({
|
|
|
3574
3567
|
});
|
|
3575
3568
|
record.dependsOn(domain, mapping);
|
|
3576
3569
|
ctx.bindEnv(`REST_${constantCase7(id)}_ENDPOINT`, domainName);
|
|
3570
|
+
} else {
|
|
3577
3571
|
}
|
|
3578
3572
|
}
|
|
3579
3573
|
},
|
|
@@ -4991,7 +4985,7 @@ var deploy = (program2) => {
|
|
|
4991
4985
|
};
|
|
4992
4986
|
|
|
4993
4987
|
// src/cli/command/diff.ts
|
|
4994
|
-
import {
|
|
4988
|
+
import { aws as aws21, WorkSpace as WorkSpace2 } from "@awsless/formation";
|
|
4995
4989
|
import chalk7 from "chalk";
|
|
4996
4990
|
var diff = (program2) => {
|
|
4997
4991
|
program2.command("diff").description("Diff your app with AWS").action(async (filters) => {
|
|
@@ -5221,7 +5215,7 @@ var pull = (program2) => {
|
|
|
5221
5215
|
const credentials = getCredentials(appConfig.profile);
|
|
5222
5216
|
const accountId = await getAccountId(credentials, region);
|
|
5223
5217
|
const { app } = createApp({ appConfig, stackConfigs, accountId });
|
|
5224
|
-
const { stateProvider } = createWorkSpace({ credentials, region });
|
|
5218
|
+
const { stateProvider } = createWorkSpace({ credentials, region, accountId });
|
|
5225
5219
|
await pullRemoteState(app, stateProvider);
|
|
5226
5220
|
return "State pull was successful.";
|
|
5227
5221
|
});
|
|
@@ -5237,7 +5231,7 @@ var push = (program2) => {
|
|
|
5237
5231
|
const credentials = getCredentials(appConfig.profile);
|
|
5238
5232
|
const accountId = await getAccountId(credentials, region);
|
|
5239
5233
|
const { app } = createApp({ appConfig, stackConfigs, accountId });
|
|
5240
|
-
const { stateProvider } = createWorkSpace({ credentials, region });
|
|
5234
|
+
const { stateProvider } = createWorkSpace({ credentials, region, accountId });
|
|
5241
5235
|
const ok = await confirm5({
|
|
5242
5236
|
message: "Pushing up the local state might corrupt your remote state. Are you sure?",
|
|
5243
5237
|
initialValue: false
|
|
@@ -5259,12 +5253,12 @@ var state = (program2) => {
|
|
|
5259
5253
|
};
|
|
5260
5254
|
|
|
5261
5255
|
// src/cli/command/auth/user/create.ts
|
|
5262
|
-
import { unwrap } from "@awsless/formation";
|
|
5263
5256
|
import {
|
|
5264
5257
|
AdminCreateUserCommand,
|
|
5265
5258
|
AdminSetUserPasswordCommand,
|
|
5266
5259
|
CognitoIdentityProviderClient
|
|
5267
5260
|
} from "@aws-sdk/client-cognito-identity-provider";
|
|
5261
|
+
import { unwrap } from "@awsless/formation";
|
|
5268
5262
|
import { password, select, text as text2 } from "@clack/prompts";
|
|
5269
5263
|
var create = (program2) => {
|
|
5270
5264
|
program2.command("create").argument("[name]", "The name of the auth instance").description("Create an user for your userpool").action(async (name) => {
|
|
@@ -5287,6 +5281,7 @@ var create = (program2) => {
|
|
|
5287
5281
|
const { shared, app } = createApp({ appConfig, stackConfigs, accountId });
|
|
5288
5282
|
const { workspace } = createWorkSpace({
|
|
5289
5283
|
credentials,
|
|
5284
|
+
accountId,
|
|
5290
5285
|
region
|
|
5291
5286
|
});
|
|
5292
5287
|
await workspace.hydrate(app);
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// src/lib/proxy.ts
|
|
2
|
+
var createProxy = /* @__NO_SIDE_EFFECTS__ */ (cb) => {
|
|
3
|
+
const cache = /* @__PURE__ */ new Map();
|
|
4
|
+
return new Proxy(
|
|
5
|
+
{},
|
|
6
|
+
{
|
|
7
|
+
get(_, name) {
|
|
8
|
+
if (!cache.has(name)) {
|
|
9
|
+
cache.set(name, cb(name));
|
|
10
|
+
}
|
|
11
|
+
return cache.get(name);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
);
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export {
|
|
18
|
+
createProxy
|
|
19
|
+
};
|
package/dist/client.d.ts
CHANGED
|
@@ -1,4 +1,19 @@
|
|
|
1
|
-
|
|
1
|
+
interface AuthResources {
|
|
2
|
+
}
|
|
3
|
+
declare const Auth: AuthResources;
|
|
4
|
+
declare const getAuthProps: (name: string) => {
|
|
5
|
+
readonly userPoolId: string;
|
|
6
|
+
readonly clientId: string;
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
interface GraphQLSchema {
|
|
10
|
+
}
|
|
11
|
+
interface GraphQLResources {
|
|
12
|
+
}
|
|
13
|
+
declare const GraphQL: GraphQLResources;
|
|
14
|
+
declare const getGraphQLProps: (name: string) => {
|
|
15
|
+
readonly endpoint: string;
|
|
16
|
+
};
|
|
2
17
|
|
|
3
18
|
interface HTTP {
|
|
4
19
|
}
|
|
@@ -36,7 +51,4 @@ declare const createHttpClient: <S extends Partial<Record<Method, Routes>>>(fetc
|
|
|
36
51
|
post<P_2 extends keyof S["POST"]>(routeKey: Extract<P_2, string>, props?: Props<GetRoute<S, "POST", P_2>> | undefined): Promise<GetRoute<S, "POST", P_2>["response"]>;
|
|
37
52
|
};
|
|
38
53
|
|
|
39
|
-
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
export { GraphQL, HTTP, HttpFetcher, createHttpClient, createHttpFetcher };
|
|
54
|
+
export { Auth, AuthResources, GraphQL, GraphQLResources, GraphQLSchema, HTTP, HttpFetcher, createHttpClient, createHttpFetcher, getAuthProps, getGraphQLProps };
|
package/dist/client.js
CHANGED
|
@@ -1,8 +1,38 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
} from "./chunk-
|
|
2
|
+
createProxy
|
|
3
|
+
} from "./chunk-2LRBH7VV.js";
|
|
4
4
|
|
|
5
|
-
// src/lib/
|
|
5
|
+
// src/lib/client/auth.ts
|
|
6
|
+
import { constantCase } from "change-case";
|
|
7
|
+
|
|
8
|
+
// src/lib/client/util.ts
|
|
9
|
+
var env = import.meta.env;
|
|
10
|
+
|
|
11
|
+
// src/lib/client/auth.ts
|
|
12
|
+
var Auth = /* @__PURE__ */ createProxy((name) => {
|
|
13
|
+
return getAuthProps(name);
|
|
14
|
+
});
|
|
15
|
+
var getAuthProps = (name) => {
|
|
16
|
+
const id = constantCase(name);
|
|
17
|
+
return {
|
|
18
|
+
userPoolId: env[`AUTH_${id}_USER_POOL_ID`],
|
|
19
|
+
clientId: env[`AUTH_${id}_CLIENT_ID`]
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
// src/lib/client/graphql.ts
|
|
24
|
+
import { constantCase as constantCase2 } from "change-case";
|
|
25
|
+
var GraphQL = /* @__PURE__ */ createProxy((name) => {
|
|
26
|
+
return getGraphQLProps(name);
|
|
27
|
+
});
|
|
28
|
+
var getGraphQLProps = (name) => {
|
|
29
|
+
const id = constantCase2(name);
|
|
30
|
+
return {
|
|
31
|
+
endpoint: env[`AUTH_${id}_USER_POOL_ID`]
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
// src/lib/client/http.ts
|
|
6
36
|
var createHttpFetcher = (host) => {
|
|
7
37
|
return async ({ method, path, headers, body, query }) => {
|
|
8
38
|
const url = new URL(host, path);
|
|
@@ -46,6 +76,9 @@ var createHttpClient = (fetcher) => {
|
|
|
46
76
|
};
|
|
47
77
|
export {
|
|
48
78
|
Auth,
|
|
79
|
+
GraphQL,
|
|
49
80
|
createHttpClient,
|
|
50
|
-
createHttpFetcher
|
|
81
|
+
createHttpFetcher,
|
|
82
|
+
getAuthProps,
|
|
83
|
+
getGraphQLProps
|
|
51
84
|
};
|
package/dist/server.d.ts
CHANGED
|
@@ -1,81 +1,22 @@
|
|
|
1
|
-
export { A as Auth, b as AuthResources, g as getAuthName, a as getAuthProps } from './auth-b89f6013.js';
|
|
2
1
|
import * as _awsless_lambda from '@awsless/lambda';
|
|
3
2
|
import { Handler, Loggers } from '@awsless/lambda';
|
|
4
|
-
import { BaseSchema,
|
|
3
|
+
import { BaseSchema, SqsQueueSchema, SnsTopicSchema } from '@awsless/validate';
|
|
5
4
|
import * as valibot from 'valibot';
|
|
6
5
|
|
|
7
|
-
|
|
8
|
-
declare const STACK: "stack";
|
|
9
|
-
|
|
10
|
-
declare const getFunctionName: <N extends string, S extends string = "stack">(name: N, stack?: S) => `app--${S}--function--${N}`;
|
|
11
|
-
interface FunctionResources {
|
|
12
|
-
}
|
|
13
|
-
declare const Function: FunctionResources;
|
|
14
|
-
declare const Fn: FunctionResources;
|
|
15
|
-
|
|
16
|
-
declare const getTaskName: <N extends string, S extends string = "stack">(name: N, stack?: S) => `app--${S}--task--${N}`;
|
|
17
|
-
interface TaskResources {
|
|
18
|
-
}
|
|
19
|
-
declare const Task: TaskResources;
|
|
20
|
-
|
|
21
|
-
declare const getTableName: <N extends string, S extends string = "stack">(name: N, stack?: S) => `app--${S}--table--${N}`;
|
|
22
|
-
interface TableResources {
|
|
23
|
-
}
|
|
24
|
-
declare const Table: TableResources;
|
|
25
|
-
|
|
26
|
-
declare const getTopicName: <N extends string>(name: N) => `app--topic--${N}`;
|
|
27
|
-
interface TopicResources {
|
|
28
|
-
}
|
|
29
|
-
declare const Topic: TopicResources;
|
|
30
|
-
|
|
31
|
-
declare const getQueueName: <N extends string, S extends string = "stack">(name: N, stack?: S) => `app--${S}--queue--${N}`;
|
|
32
|
-
interface QueueResources {
|
|
33
|
-
}
|
|
34
|
-
declare const Queue: QueueResources;
|
|
35
|
-
|
|
36
|
-
declare const getCacheProps: (name: string, stack?: string) => {
|
|
37
|
-
readonly host: string;
|
|
38
|
-
readonly port: number;
|
|
39
|
-
};
|
|
40
|
-
interface CacheResources {
|
|
41
|
-
}
|
|
42
|
-
declare const Cache: CacheResources;
|
|
43
|
-
|
|
44
|
-
declare const getStoreName: <N extends string, S extends string = "stack">(name: N, stack?: S) => `app--${S}--store--${N}`;
|
|
45
|
-
interface StoreResources {
|
|
46
|
-
}
|
|
47
|
-
declare const Store: StoreResources;
|
|
48
|
-
|
|
49
|
-
declare const getConfigName: (name: string) => string;
|
|
50
|
-
interface ConfigResources {
|
|
51
|
-
}
|
|
52
|
-
declare const Config: ConfigResources;
|
|
53
|
-
|
|
54
|
-
declare const getSearchName: <N extends string, S extends string = "stack">(name: N, stack?: S) => `app--${S}--search--${N}`;
|
|
55
|
-
interface SearchResources {
|
|
56
|
-
}
|
|
57
|
-
declare const Search: SearchResources;
|
|
58
|
-
|
|
59
|
-
type FunctionProps<H extends Handler<S>, S extends BaseSchema> = {
|
|
6
|
+
type CronProps<H extends Handler<S>, S extends BaseSchema> = {
|
|
60
7
|
handle: H;
|
|
61
8
|
schema?: S;
|
|
62
9
|
logger?: Loggers;
|
|
63
|
-
logViewableErrors?: boolean;
|
|
64
10
|
};
|
|
65
|
-
declare const
|
|
11
|
+
declare const cron: <H extends Handler<S, unknown>, S extends BaseSchema<any, any>>(props: CronProps<H, S>) => (event: _awsless_lambda.Input<S>, context?: _awsless_lambda.LambdaContext | undefined) => Promise<ReturnType<H>>;
|
|
66
12
|
|
|
67
|
-
type
|
|
13
|
+
type FunctionProps<H extends Handler<S>, S extends BaseSchema> = {
|
|
68
14
|
handle: H;
|
|
69
15
|
schema?: S;
|
|
70
16
|
logger?: Loggers;
|
|
17
|
+
logViewableErrors?: boolean;
|
|
71
18
|
};
|
|
72
|
-
declare const
|
|
73
|
-
Records: {
|
|
74
|
-
Sns: {
|
|
75
|
-
Message: string | valibot.Input<S>;
|
|
76
|
-
};
|
|
77
|
-
}[];
|
|
78
|
-
}, context?: _awsless_lambda.LambdaContext | undefined) => Promise<ReturnType<H>>;
|
|
19
|
+
declare const func: <H extends Handler<S, unknown>, S extends BaseSchema<any, any>>(props: FunctionProps<H, S>) => (event: _awsless_lambda.Input<S>, context?: _awsless_lambda.LambdaContext | undefined) => Promise<ReturnType<H>>;
|
|
79
20
|
|
|
80
21
|
type QueueProps<H extends Handler<S>, S extends BaseSchema> = {
|
|
81
22
|
handle: H;
|
|
@@ -88,12 +29,18 @@ declare const queue: <H extends Handler<SqsQueueSchema<S>, unknown>, S extends B
|
|
|
88
29
|
}[];
|
|
89
30
|
}, context?: _awsless_lambda.LambdaContext | undefined) => Promise<ReturnType<H>>;
|
|
90
31
|
|
|
91
|
-
type
|
|
32
|
+
type TopicProps<H extends Handler<S>, S extends BaseSchema> = {
|
|
92
33
|
handle: H;
|
|
93
34
|
schema?: S;
|
|
94
35
|
logger?: Loggers;
|
|
95
36
|
};
|
|
96
|
-
declare const
|
|
37
|
+
declare const topic: <H extends Handler<SnsTopicSchema<S>, unknown>, S extends BaseSchema<any, any>>(props: TopicProps<H, S>) => (event: valibot.Input<S> | valibot.Input<S>[] | {
|
|
38
|
+
Records: {
|
|
39
|
+
Sns: {
|
|
40
|
+
Message: string | valibot.Input<S>;
|
|
41
|
+
};
|
|
42
|
+
}[];
|
|
43
|
+
}, context?: _awsless_lambda.LambdaContext | undefined) => Promise<ReturnType<H>>;
|
|
97
44
|
|
|
98
45
|
interface FunctionMock {
|
|
99
46
|
}
|
|
@@ -101,12 +48,6 @@ interface FunctionMockResponse {
|
|
|
101
48
|
}
|
|
102
49
|
declare const mockFunction: (cb: (mock: FunctionMock) => void) => FunctionMockResponse;
|
|
103
50
|
|
|
104
|
-
interface TopicMock {
|
|
105
|
-
}
|
|
106
|
-
interface TopicMockResponse {
|
|
107
|
-
}
|
|
108
|
-
declare const mockTopic: (cb: (mock: TopicMock) => void) => TopicMockResponse;
|
|
109
|
-
|
|
110
51
|
interface QueueMock {
|
|
111
52
|
}
|
|
112
53
|
interface QueueMockResponse {
|
|
@@ -119,4 +60,62 @@ interface TaskMockResponse {
|
|
|
119
60
|
}
|
|
120
61
|
declare const mockTask: (cb: (mock: TaskMock) => void) => TaskMockResponse;
|
|
121
62
|
|
|
63
|
+
interface TopicMock {
|
|
64
|
+
}
|
|
65
|
+
interface TopicMockResponse {
|
|
66
|
+
}
|
|
67
|
+
declare const mockTopic: (cb: (mock: TopicMock) => void) => TopicMockResponse;
|
|
68
|
+
|
|
69
|
+
declare const getCacheProps: (name: string, stack?: string) => {
|
|
70
|
+
readonly host: string;
|
|
71
|
+
readonly port: number;
|
|
72
|
+
};
|
|
73
|
+
interface CacheResources {
|
|
74
|
+
}
|
|
75
|
+
declare const Cache: CacheResources;
|
|
76
|
+
|
|
77
|
+
declare const getConfigName: (name: string) => string;
|
|
78
|
+
interface ConfigResources {
|
|
79
|
+
}
|
|
80
|
+
declare const Config: ConfigResources;
|
|
81
|
+
|
|
82
|
+
declare const getFunctionName: <N extends string, S extends string = "stack">(name: N, stack?: S) => `app--${S}--function--${N}`;
|
|
83
|
+
interface FunctionResources {
|
|
84
|
+
}
|
|
85
|
+
declare const Function: FunctionResources;
|
|
86
|
+
declare const Fn: FunctionResources;
|
|
87
|
+
|
|
88
|
+
declare const getQueueName: <N extends string, S extends string = "stack">(name: N, stack?: S) => `app--${S}--queue--${N}`;
|
|
89
|
+
interface QueueResources {
|
|
90
|
+
}
|
|
91
|
+
declare const Queue: QueueResources;
|
|
92
|
+
|
|
93
|
+
declare const getSearchName: <N extends string, S extends string = "stack">(name: N, stack?: S) => `app--${S}--search--${N}`;
|
|
94
|
+
interface SearchResources {
|
|
95
|
+
}
|
|
96
|
+
declare const Search: SearchResources;
|
|
97
|
+
|
|
98
|
+
declare const getStoreName: <N extends string, S extends string = "stack">(name: N, stack?: S) => `app--${S}--store--${N}`;
|
|
99
|
+
interface StoreResources {
|
|
100
|
+
}
|
|
101
|
+
declare const Store: StoreResources;
|
|
102
|
+
|
|
103
|
+
declare const getTableName: <N extends string, S extends string = "stack">(name: N, stack?: S) => `app--${S}--table--${N}`;
|
|
104
|
+
interface TableResources {
|
|
105
|
+
}
|
|
106
|
+
declare const Table: TableResources;
|
|
107
|
+
|
|
108
|
+
declare const getTaskName: <N extends string, S extends string = "stack">(name: N, stack?: S) => `app--${S}--task--${N}`;
|
|
109
|
+
interface TaskResources {
|
|
110
|
+
}
|
|
111
|
+
declare const Task: TaskResources;
|
|
112
|
+
|
|
113
|
+
declare const getTopicName: <N extends string>(name: N) => `app--topic--${N}`;
|
|
114
|
+
interface TopicResources {
|
|
115
|
+
}
|
|
116
|
+
declare const Topic: TopicResources;
|
|
117
|
+
|
|
118
|
+
declare const APP: "app";
|
|
119
|
+
declare const STACK: "stack";
|
|
120
|
+
|
|
122
121
|
export { APP, Cache, CacheResources, Config, ConfigResources, CronProps, Fn, Function, FunctionMock, FunctionMockResponse, FunctionProps, FunctionResources, Queue, QueueMock, QueueMockResponse, QueueProps, QueueResources, STACK, Search, SearchResources, Store, StoreResources, Table, TableResources, Task, TaskMock, TaskMockResponse, TaskResources, Topic, TopicMock, TopicMockResponse, TopicProps, TopicResources, cron, func, getCacheProps, getConfigName, getFunctionName, getQueueName, getSearchName, getStoreName, getTableName, getTaskName, getTopicName, mockFunction, mockQueue, mockTask, mockTopic, queue, topic };
|
package/dist/server.js
CHANGED
|
@@ -1,17 +1,69 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
2
|
+
createProxy
|
|
3
|
+
} from "./chunk-2LRBH7VV.js";
|
|
4
|
+
|
|
5
|
+
// src/lib/handle/cron.ts
|
|
6
|
+
import { lambda } from "@awsless/lambda";
|
|
7
|
+
var cron = (props) => {
|
|
8
|
+
return lambda({
|
|
9
|
+
...props,
|
|
10
|
+
logViewableErrors: true
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
// src/lib/handle/function.ts
|
|
15
|
+
import { lambda as lambda2 } from "@awsless/lambda";
|
|
16
|
+
var func = (props) => {
|
|
17
|
+
return lambda2(props);
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
// src/lib/handle/queue.ts
|
|
21
|
+
import { lambda as lambda3 } from "@awsless/lambda";
|
|
22
|
+
import { sqsQueue } from "@awsless/validate";
|
|
23
|
+
var queue = (props) => {
|
|
24
|
+
return lambda3({
|
|
25
|
+
logger: props.logger,
|
|
26
|
+
schema: sqsQueue(props.schema),
|
|
27
|
+
handle: props.handle,
|
|
28
|
+
logViewableErrors: true
|
|
29
|
+
});
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
// src/lib/handle/topic.ts
|
|
33
|
+
import { snsTopic } from "@awsless/validate";
|
|
34
|
+
import { lambda as lambda4 } from "@awsless/lambda";
|
|
35
|
+
var topic = (props) => {
|
|
36
|
+
return lambda4({
|
|
37
|
+
logger: props.logger,
|
|
38
|
+
schema: snsTopic(props.schema),
|
|
39
|
+
handle: props.handle,
|
|
40
|
+
logViewableErrors: true
|
|
41
|
+
});
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
// src/lib/mock/function.ts
|
|
45
|
+
import { mockLambda } from "@awsless/lambda";
|
|
11
46
|
|
|
12
|
-
// src/lib/
|
|
47
|
+
// src/lib/server/function.ts
|
|
13
48
|
import { invoke } from "@awsless/lambda";
|
|
14
49
|
import { WeakCache } from "@awsless/weak-cache";
|
|
50
|
+
|
|
51
|
+
// src/lib/server/util.ts
|
|
52
|
+
import { paramCase } from "change-case";
|
|
53
|
+
var APP = process.env.APP ?? "app";
|
|
54
|
+
var STACK = process.env.STACK ?? "stack";
|
|
55
|
+
var bindLocalResourceName = (type) => {
|
|
56
|
+
return (name, stack = STACK) => {
|
|
57
|
+
return [APP, paramCase(stack), paramCase(type), paramCase(name)].join("--");
|
|
58
|
+
};
|
|
59
|
+
};
|
|
60
|
+
var bindGlobalResourceName = (type) => {
|
|
61
|
+
return (name) => {
|
|
62
|
+
return [APP, paramCase(type), paramCase(name)].join("--");
|
|
63
|
+
};
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
// src/lib/server/function.ts
|
|
15
67
|
var cache = new WeakCache();
|
|
16
68
|
var getFunctionName = bindLocalResourceName("function");
|
|
17
69
|
var Function = /* @__PURE__ */ createProxy((stackName) => {
|
|
@@ -44,7 +96,86 @@ var Function = /* @__PURE__ */ createProxy((stackName) => {
|
|
|
44
96
|
});
|
|
45
97
|
var Fn = Function;
|
|
46
98
|
|
|
47
|
-
// src/lib/
|
|
99
|
+
// src/lib/mock/function.ts
|
|
100
|
+
var mockFunction = (cb) => {
|
|
101
|
+
const list = {};
|
|
102
|
+
const mock = createProxy((stack) => {
|
|
103
|
+
return createProxy((name) => {
|
|
104
|
+
return (handleOrResponse) => {
|
|
105
|
+
const handle = typeof handleOrResponse === "function" ? handleOrResponse : () => handleOrResponse;
|
|
106
|
+
list[getFunctionName(name, stack)] = handle;
|
|
107
|
+
};
|
|
108
|
+
});
|
|
109
|
+
});
|
|
110
|
+
cb(mock);
|
|
111
|
+
const result = mockLambda(list);
|
|
112
|
+
return createProxy((stack) => {
|
|
113
|
+
return createProxy((name) => {
|
|
114
|
+
return result[getFunctionName(name, stack)];
|
|
115
|
+
});
|
|
116
|
+
});
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
// src/lib/mock/queue.ts
|
|
120
|
+
import { mockSQS } from "@awsless/sqs";
|
|
121
|
+
|
|
122
|
+
// src/lib/server/queue.ts
|
|
123
|
+
import { sendMessage, sendMessageBatch } from "@awsless/sqs";
|
|
124
|
+
import { constantCase } from "change-case";
|
|
125
|
+
var getQueueName = bindLocalResourceName("queue");
|
|
126
|
+
var getQueueUrl = (name, stack = STACK) => {
|
|
127
|
+
return process.env[`QUEUE_${constantCase(stack)}_${constantCase(name)}_URL`];
|
|
128
|
+
};
|
|
129
|
+
var Queue = /* @__PURE__ */ createProxy((stack) => {
|
|
130
|
+
return createProxy((queue2) => {
|
|
131
|
+
const url = getQueueUrl(queue2, stack);
|
|
132
|
+
const name = getQueueName(queue2, stack);
|
|
133
|
+
const ctx = {
|
|
134
|
+
[name]: (payload, options = {}) => {
|
|
135
|
+
return sendMessage({
|
|
136
|
+
...options,
|
|
137
|
+
queue: url ?? name,
|
|
138
|
+
payload
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
};
|
|
142
|
+
const send = ctx[name];
|
|
143
|
+
send.url = url;
|
|
144
|
+
send.batch = (items, options = {}) => {
|
|
145
|
+
return sendMessageBatch({
|
|
146
|
+
...options,
|
|
147
|
+
queue: url ?? name,
|
|
148
|
+
items
|
|
149
|
+
});
|
|
150
|
+
};
|
|
151
|
+
return send;
|
|
152
|
+
});
|
|
153
|
+
});
|
|
154
|
+
|
|
155
|
+
// src/lib/mock/queue.ts
|
|
156
|
+
var mockQueue = (cb) => {
|
|
157
|
+
const list = {};
|
|
158
|
+
const mock = createProxy((stack) => {
|
|
159
|
+
return createProxy((name) => {
|
|
160
|
+
return (handle) => {
|
|
161
|
+
list[getQueueName(name, stack)] = handle ?? (() => {
|
|
162
|
+
});
|
|
163
|
+
};
|
|
164
|
+
});
|
|
165
|
+
});
|
|
166
|
+
cb(mock);
|
|
167
|
+
const result = mockSQS(list);
|
|
168
|
+
return createProxy((stack) => {
|
|
169
|
+
return createProxy((name) => {
|
|
170
|
+
return result[getQueueName(name, stack)];
|
|
171
|
+
});
|
|
172
|
+
});
|
|
173
|
+
};
|
|
174
|
+
|
|
175
|
+
// src/lib/mock/task.ts
|
|
176
|
+
import { mockLambda as mockLambda2 } from "@awsless/lambda";
|
|
177
|
+
|
|
178
|
+
// src/lib/server/task.ts
|
|
48
179
|
import { invoke as invoke2 } from "@awsless/lambda";
|
|
49
180
|
var getTaskName = bindLocalResourceName("task");
|
|
50
181
|
var Task = /* @__PURE__ */ createProxy((stackName) => {
|
|
@@ -64,15 +195,29 @@ var Task = /* @__PURE__ */ createProxy((stackName) => {
|
|
|
64
195
|
});
|
|
65
196
|
});
|
|
66
197
|
|
|
67
|
-
// src/lib/
|
|
68
|
-
var
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
return
|
|
198
|
+
// src/lib/mock/task.ts
|
|
199
|
+
var mockTask = (cb) => {
|
|
200
|
+
const list = {};
|
|
201
|
+
const mock = createProxy((stack) => {
|
|
202
|
+
return createProxy((name) => {
|
|
203
|
+
return (handle) => {
|
|
204
|
+
list[getTaskName(name, stack)] = handle;
|
|
205
|
+
};
|
|
206
|
+
});
|
|
72
207
|
});
|
|
73
|
-
|
|
208
|
+
cb(mock);
|
|
209
|
+
const result = mockLambda2(list);
|
|
210
|
+
return createProxy((stack) => {
|
|
211
|
+
return createProxy((name) => {
|
|
212
|
+
return result[getTaskName(name, stack)];
|
|
213
|
+
});
|
|
214
|
+
});
|
|
215
|
+
};
|
|
216
|
+
|
|
217
|
+
// src/lib/mock/topic.ts
|
|
218
|
+
import { mockSNS } from "@awsless/sns";
|
|
74
219
|
|
|
75
|
-
// src/lib/
|
|
220
|
+
// src/lib/server/topic.ts
|
|
76
221
|
import { publish } from "@awsless/sns";
|
|
77
222
|
var getTopicName = bindGlobalResourceName("topic");
|
|
78
223
|
var Topic = /* @__PURE__ */ createProxy((name) => {
|
|
@@ -90,45 +235,25 @@ var Topic = /* @__PURE__ */ createProxy((name) => {
|
|
|
90
235
|
return call;
|
|
91
236
|
});
|
|
92
237
|
|
|
93
|
-
// src/lib/
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
var getQueueName = bindLocalResourceName("queue");
|
|
100
|
-
var getQueueUrl = (name, stack = STACK) => {
|
|
101
|
-
return process.env[`QUEUE_${constantCase(stack)}_${constantCase(name)}_URL`];
|
|
102
|
-
};
|
|
103
|
-
var Queue = /* @__PURE__ */ createProxy((stack) => {
|
|
104
|
-
return createProxy((queue2) => {
|
|
105
|
-
const url = getQueueUrl(queue2, stack);
|
|
106
|
-
const name = getQueueName(queue2, stack);
|
|
107
|
-
const ctx = {
|
|
108
|
-
[name]: (payload, options = {}) => {
|
|
109
|
-
return sendMessage({
|
|
110
|
-
...options,
|
|
111
|
-
queue: url ?? name,
|
|
112
|
-
payload
|
|
113
|
-
});
|
|
114
|
-
}
|
|
115
|
-
};
|
|
116
|
-
const send = ctx[name];
|
|
117
|
-
send.url = url;
|
|
118
|
-
send.batch = (items, options = {}) => {
|
|
119
|
-
return sendMessageBatch({
|
|
120
|
-
...options,
|
|
121
|
-
queue: url ?? name,
|
|
122
|
-
items
|
|
238
|
+
// src/lib/mock/topic.ts
|
|
239
|
+
var mockTopic = (cb) => {
|
|
240
|
+
const list = {};
|
|
241
|
+
const mock = createProxy((name) => {
|
|
242
|
+
return (handle) => {
|
|
243
|
+
list[getTopicName(name)] = handle ?? (() => {
|
|
123
244
|
});
|
|
124
245
|
};
|
|
125
|
-
return send;
|
|
126
246
|
});
|
|
127
|
-
|
|
247
|
+
cb(mock);
|
|
248
|
+
const result = mockSNS(list);
|
|
249
|
+
return createProxy((name) => {
|
|
250
|
+
return result[getTopicName(name)];
|
|
251
|
+
});
|
|
252
|
+
};
|
|
128
253
|
|
|
129
|
-
// src/lib/
|
|
130
|
-
import { constantCase as constantCase2 } from "change-case";
|
|
254
|
+
// src/lib/server/cache.ts
|
|
131
255
|
import { command } from "@awsless/redis";
|
|
256
|
+
import { constantCase as constantCase2 } from "change-case";
|
|
132
257
|
var getCacheProps = (name, stack = STACK) => {
|
|
133
258
|
const prefix = `CACHE_${constantCase2(stack)}_${constantCase2(name)}`;
|
|
134
259
|
return {
|
|
@@ -160,48 +285,9 @@ var Cache = /* @__PURE__ */ createProxy((stack) => {
|
|
|
160
285
|
});
|
|
161
286
|
});
|
|
162
287
|
|
|
163
|
-
// src/lib/
|
|
164
|
-
import { putObject, getObject, deleteObject, createPresignedPost } from "@awsless/s3";
|
|
165
|
-
var getStoreName = bindLocalResourceName("store");
|
|
166
|
-
var Store = /* @__PURE__ */ createProxy((stack) => {
|
|
167
|
-
return createProxy((name) => {
|
|
168
|
-
const bucket = getStoreName(name, stack);
|
|
169
|
-
return {
|
|
170
|
-
name: bucket,
|
|
171
|
-
async put(key, body, options = {}) {
|
|
172
|
-
await putObject({
|
|
173
|
-
bucket,
|
|
174
|
-
key,
|
|
175
|
-
body,
|
|
176
|
-
...options
|
|
177
|
-
});
|
|
178
|
-
},
|
|
179
|
-
async get(key) {
|
|
180
|
-
const object = await getObject({ bucket, key });
|
|
181
|
-
if (object) {
|
|
182
|
-
return object.body;
|
|
183
|
-
}
|
|
184
|
-
return void 0;
|
|
185
|
-
},
|
|
186
|
-
delete(key) {
|
|
187
|
-
return deleteObject({ bucket, key });
|
|
188
|
-
},
|
|
189
|
-
createPresignedPost(key, contentLengthRange, expires, fields) {
|
|
190
|
-
return createPresignedPost({
|
|
191
|
-
bucket,
|
|
192
|
-
key,
|
|
193
|
-
contentLengthRange,
|
|
194
|
-
expires,
|
|
195
|
-
fields
|
|
196
|
-
});
|
|
197
|
-
}
|
|
198
|
-
};
|
|
199
|
-
});
|
|
200
|
-
});
|
|
201
|
-
|
|
202
|
-
// src/lib/resource/config.ts
|
|
288
|
+
// src/lib/server/config.ts
|
|
203
289
|
import { ssm } from "@awsless/ssm";
|
|
204
|
-
import { paramCase } from "change-case";
|
|
290
|
+
import { paramCase as paramCase2 } from "change-case";
|
|
205
291
|
var getConfigName = (name) => {
|
|
206
292
|
return `/.awsless/${APP}/${name}`;
|
|
207
293
|
};
|
|
@@ -225,7 +311,7 @@ var Config = /* @__PURE__ */ new Proxy(
|
|
|
225
311
|
{},
|
|
226
312
|
{
|
|
227
313
|
get(_, name) {
|
|
228
|
-
const key =
|
|
314
|
+
const key = paramCase2(name);
|
|
229
315
|
const value = data[key];
|
|
230
316
|
if (typeof value === "undefined") {
|
|
231
317
|
throw new Error(
|
|
@@ -235,16 +321,16 @@ var Config = /* @__PURE__ */ new Proxy(
|
|
|
235
321
|
return value;
|
|
236
322
|
},
|
|
237
323
|
set(_, name, value) {
|
|
238
|
-
const key =
|
|
324
|
+
const key = paramCase2(name);
|
|
239
325
|
data[key] = value;
|
|
240
326
|
return true;
|
|
241
327
|
}
|
|
242
328
|
}
|
|
243
329
|
);
|
|
244
330
|
|
|
245
|
-
// src/lib/
|
|
331
|
+
// src/lib/server/search.ts
|
|
332
|
+
import { define, searchClient } from "@awsless/open-search";
|
|
246
333
|
import { constantCase as constantCase3 } from "change-case";
|
|
247
|
-
import { searchClient, define } from "@awsless/open-search";
|
|
248
334
|
var getSearchName = bindLocalResourceName("search");
|
|
249
335
|
var getSearchProps = (name, stack = STACK) => {
|
|
250
336
|
return {
|
|
@@ -268,126 +354,54 @@ var Search = /* @__PURE__ */ createProxy((stack) => {
|
|
|
268
354
|
});
|
|
269
355
|
});
|
|
270
356
|
|
|
271
|
-
// src/lib/
|
|
272
|
-
import {
|
|
273
|
-
var
|
|
274
|
-
|
|
275
|
-
};
|
|
276
|
-
|
|
277
|
-
// src/lib/handle/topic.ts
|
|
278
|
-
import { snsTopic } from "@awsless/validate";
|
|
279
|
-
import { lambda as lambda2 } from "@awsless/lambda";
|
|
280
|
-
var topic = (props) => {
|
|
281
|
-
return lambda2({
|
|
282
|
-
logger: props.logger,
|
|
283
|
-
schema: snsTopic(props.schema),
|
|
284
|
-
handle: props.handle,
|
|
285
|
-
logViewableErrors: true
|
|
286
|
-
});
|
|
287
|
-
};
|
|
288
|
-
|
|
289
|
-
// src/lib/handle/queue.ts
|
|
290
|
-
import { lambda as lambda3 } from "@awsless/lambda";
|
|
291
|
-
import { sqsQueue } from "@awsless/validate";
|
|
292
|
-
var queue = (props) => {
|
|
293
|
-
return lambda3({
|
|
294
|
-
logger: props.logger,
|
|
295
|
-
schema: sqsQueue(props.schema),
|
|
296
|
-
handle: props.handle,
|
|
297
|
-
logViewableErrors: true
|
|
298
|
-
});
|
|
299
|
-
};
|
|
300
|
-
|
|
301
|
-
// src/lib/handle/cron.ts
|
|
302
|
-
import { lambda as lambda4 } from "@awsless/lambda";
|
|
303
|
-
var cron = (props) => {
|
|
304
|
-
return lambda4({
|
|
305
|
-
...props,
|
|
306
|
-
logViewableErrors: true
|
|
307
|
-
});
|
|
308
|
-
};
|
|
309
|
-
|
|
310
|
-
// src/lib/mock/function.ts
|
|
311
|
-
import { mockLambda } from "@awsless/lambda";
|
|
312
|
-
var mockFunction = (cb) => {
|
|
313
|
-
const list = {};
|
|
314
|
-
const mock = createProxy((stack) => {
|
|
315
|
-
return createProxy((name) => {
|
|
316
|
-
return (handleOrResponse) => {
|
|
317
|
-
const handle = typeof handleOrResponse === "function" ? handleOrResponse : () => handleOrResponse;
|
|
318
|
-
list[getFunctionName(name, stack)] = handle;
|
|
319
|
-
};
|
|
320
|
-
});
|
|
321
|
-
});
|
|
322
|
-
cb(mock);
|
|
323
|
-
const result = mockLambda(list);
|
|
324
|
-
return createProxy((stack) => {
|
|
325
|
-
return createProxy((name) => {
|
|
326
|
-
return result[getFunctionName(name, stack)];
|
|
327
|
-
});
|
|
328
|
-
});
|
|
329
|
-
};
|
|
330
|
-
|
|
331
|
-
// src/lib/mock/topic.ts
|
|
332
|
-
import { mockSNS } from "@awsless/sns";
|
|
333
|
-
var mockTopic = (cb) => {
|
|
334
|
-
const list = {};
|
|
335
|
-
const mock = createProxy((name) => {
|
|
336
|
-
return (handle) => {
|
|
337
|
-
list[getTopicName(name)] = handle ?? (() => {
|
|
338
|
-
});
|
|
339
|
-
};
|
|
340
|
-
});
|
|
341
|
-
cb(mock);
|
|
342
|
-
const result = mockSNS(list);
|
|
357
|
+
// src/lib/server/store.ts
|
|
358
|
+
import { createPresignedPost, deleteObject, getObject, putObject } from "@awsless/s3";
|
|
359
|
+
var getStoreName = bindLocalResourceName("store");
|
|
360
|
+
var Store = /* @__PURE__ */ createProxy((stack) => {
|
|
343
361
|
return createProxy((name) => {
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
return createProxy((name) => {
|
|
354
|
-
return (handle) => {
|
|
355
|
-
list[getQueueName(name, stack)] = handle ?? (() => {
|
|
362
|
+
const bucket = getStoreName(name, stack);
|
|
363
|
+
return {
|
|
364
|
+
name: bucket,
|
|
365
|
+
async put(key, body, options = {}) {
|
|
366
|
+
await putObject({
|
|
367
|
+
bucket,
|
|
368
|
+
key,
|
|
369
|
+
body,
|
|
370
|
+
...options
|
|
356
371
|
});
|
|
357
|
-
}
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
372
|
+
},
|
|
373
|
+
async get(key) {
|
|
374
|
+
const object = await getObject({ bucket, key });
|
|
375
|
+
if (object) {
|
|
376
|
+
return object.body;
|
|
377
|
+
}
|
|
378
|
+
return void 0;
|
|
379
|
+
},
|
|
380
|
+
delete(key) {
|
|
381
|
+
return deleteObject({ bucket, key });
|
|
382
|
+
},
|
|
383
|
+
createPresignedPost(key, contentLengthRange, expires, fields) {
|
|
384
|
+
return createPresignedPost({
|
|
385
|
+
bucket,
|
|
386
|
+
key,
|
|
387
|
+
contentLengthRange,
|
|
388
|
+
expires,
|
|
389
|
+
fields
|
|
390
|
+
});
|
|
391
|
+
}
|
|
392
|
+
};
|
|
366
393
|
});
|
|
367
|
-
};
|
|
394
|
+
});
|
|
368
395
|
|
|
369
|
-
// src/lib/
|
|
370
|
-
|
|
371
|
-
var
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
return createProxy((name) => {
|
|
375
|
-
return (handle) => {
|
|
376
|
-
list[getTaskName(name, stack)] = handle;
|
|
377
|
-
};
|
|
378
|
-
});
|
|
379
|
-
});
|
|
380
|
-
cb(mock);
|
|
381
|
-
const result = mockLambda2(list);
|
|
382
|
-
return createProxy((stack) => {
|
|
383
|
-
return createProxy((name) => {
|
|
384
|
-
return result[getTaskName(name, stack)];
|
|
385
|
-
});
|
|
396
|
+
// src/lib/server/table.ts
|
|
397
|
+
var getTableName = bindLocalResourceName("table");
|
|
398
|
+
var Table = /* @__PURE__ */ createProxy((stack) => {
|
|
399
|
+
return createProxy((name) => {
|
|
400
|
+
return getTableName(name, stack);
|
|
386
401
|
});
|
|
387
|
-
};
|
|
402
|
+
});
|
|
388
403
|
export {
|
|
389
404
|
APP,
|
|
390
|
-
Auth,
|
|
391
405
|
Cache,
|
|
392
406
|
Config,
|
|
393
407
|
Fn,
|
|
@@ -401,8 +415,6 @@ export {
|
|
|
401
415
|
Topic,
|
|
402
416
|
cron,
|
|
403
417
|
func,
|
|
404
|
-
getAuthName,
|
|
405
|
-
getAuthProps,
|
|
406
418
|
getCacheProps,
|
|
407
419
|
getConfigName,
|
|
408
420
|
getFunctionName,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@awsless/awsless",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.254",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -29,14 +29,14 @@
|
|
|
29
29
|
},
|
|
30
30
|
"peerDependencies": {
|
|
31
31
|
"@awsless/lambda": "^0.0.19",
|
|
32
|
-
"@awsless/redis": "^0.0.12",
|
|
33
32
|
"@awsless/open-search": "^0.0.12",
|
|
34
|
-
"@awsless/
|
|
33
|
+
"@awsless/redis": "^0.0.12",
|
|
35
34
|
"@awsless/validate": "^0.0.14",
|
|
36
35
|
"@awsless/sns": "^0.0.7",
|
|
37
|
-
"@awsless/
|
|
36
|
+
"@awsless/s3": "^0.0.10",
|
|
37
|
+
"@awsless/ssm": "^0.0.7",
|
|
38
38
|
"@awsless/sqs": "^0.0.7",
|
|
39
|
-
"@awsless/
|
|
39
|
+
"@awsless/weak-cache": "^0.0.1"
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
42
|
"@aws-appsync/utils": "^1.5.0",
|
|
@@ -100,9 +100,9 @@
|
|
|
100
100
|
"zod-to-json-schema": "^3.22.3",
|
|
101
101
|
"@awsless/duration": "^0.0.1",
|
|
102
102
|
"@awsless/formation": "^0.0.28",
|
|
103
|
-
"@awsless/validate": "^0.0.14",
|
|
104
103
|
"@awsless/size": "^0.0.1",
|
|
105
104
|
"@awsless/graphql": "^0.0.9",
|
|
105
|
+
"@awsless/validate": "^0.0.14",
|
|
106
106
|
"@awsless/code": "^0.0.10"
|
|
107
107
|
},
|
|
108
108
|
"scripts": {
|
package/dist/auth-b89f6013.d.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
declare const getAuthName: <N extends string>(name: N) => `app--auth--${N}`;
|
|
2
|
-
interface AuthResources {
|
|
3
|
-
}
|
|
4
|
-
declare const Auth: AuthResources;
|
|
5
|
-
declare const getAuthProps: (name: string) => {
|
|
6
|
-
readonly name: `app--auth--${string}`;
|
|
7
|
-
readonly userPoolId: string;
|
|
8
|
-
readonly clientId: string;
|
|
9
|
-
};
|
|
10
|
-
|
|
11
|
-
export { Auth as A, getAuthProps as a, AuthResources as b, getAuthName as g };
|
package/dist/chunk-RRXFYZJQ.js
DELETED
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
// src/lib/resource/util.ts
|
|
2
|
-
import { paramCase } from "change-case";
|
|
3
|
-
var APP = process.env.APP ?? "app";
|
|
4
|
-
var STACK = process.env.STACK ?? "stack";
|
|
5
|
-
var bindLocalResourceName = (type) => {
|
|
6
|
-
return (name, stack = STACK) => {
|
|
7
|
-
return [APP, paramCase(stack), paramCase(type), paramCase(name)].join(
|
|
8
|
-
"--"
|
|
9
|
-
);
|
|
10
|
-
};
|
|
11
|
-
};
|
|
12
|
-
var bindGlobalResourceName = (type) => {
|
|
13
|
-
return (name) => {
|
|
14
|
-
return [APP, paramCase(type), paramCase(name)].join("--");
|
|
15
|
-
};
|
|
16
|
-
};
|
|
17
|
-
var createProxy = /* @__NO_SIDE_EFFECTS__ */ (cb) => {
|
|
18
|
-
const cache = /* @__PURE__ */ new Map();
|
|
19
|
-
return new Proxy(
|
|
20
|
-
{},
|
|
21
|
-
{
|
|
22
|
-
get(_, name) {
|
|
23
|
-
if (!cache.has(name)) {
|
|
24
|
-
cache.set(name, cb(name));
|
|
25
|
-
}
|
|
26
|
-
return cache.get(name);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
);
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
// src/lib/resource/auth.ts
|
|
33
|
-
import { constantCase } from "change-case";
|
|
34
|
-
var getAuthName = bindGlobalResourceName("auth");
|
|
35
|
-
var Auth = /* @__PURE__ */ createProxy((name) => {
|
|
36
|
-
return getAuthProps(name);
|
|
37
|
-
});
|
|
38
|
-
var getAuthProps = (name) => {
|
|
39
|
-
const env = process.env;
|
|
40
|
-
const id = constantCase(name);
|
|
41
|
-
return {
|
|
42
|
-
name: getAuthName(name),
|
|
43
|
-
// userPoolId: env[`AWSLESS_CLIENT_AUTH_${id}_USER_POOL_ID`]!,
|
|
44
|
-
// clientId: env[`AWSLESS_CLIENT_AUTH_${id}_CLIENT_ID`]!,
|
|
45
|
-
// clientSecret: env[`AWSLESS_CLIENT_AUTH_${id}_CLIENT_SECRET`]!,
|
|
46
|
-
userPoolId: env[`AUTH_${id}_USER_POOL_ID`],
|
|
47
|
-
clientId: env[`AUTH_${id}_CLIENT_ID`]
|
|
48
|
-
// clientSecret: env[`AUTH_${id}_CLIENT_SECRET`]!,
|
|
49
|
-
};
|
|
50
|
-
};
|
|
51
|
-
|
|
52
|
-
export {
|
|
53
|
-
APP,
|
|
54
|
-
STACK,
|
|
55
|
-
bindLocalResourceName,
|
|
56
|
-
bindGlobalResourceName,
|
|
57
|
-
createProxy,
|
|
58
|
-
getAuthName,
|
|
59
|
-
Auth,
|
|
60
|
-
getAuthProps
|
|
61
|
-
};
|