@awsless/awsless 0.0.299 → 0.0.301

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 CHANGED
@@ -2052,13 +2052,13 @@ var hasOnFailure = (stacks) => {
2052
2052
  };
2053
2053
 
2054
2054
  // src/feature/function/build/typescript/bundle.ts
2055
- import { rollup } from "rollup";
2056
- import { createHash } from "crypto";
2057
- import { swc, minify as swcMinify } from "rollup-plugin-swc3";
2058
- import json from "@rollup/plugin-json";
2059
2055
  import commonjs from "@rollup/plugin-commonjs";
2056
+ import json from "@rollup/plugin-json";
2060
2057
  import nodeResolve from "@rollup/plugin-node-resolve";
2058
+ import { createHash } from "crypto";
2061
2059
  import { dirname as dirname5 } from "path";
2060
+ import { rollup } from "rollup";
2061
+ import { minify as swcMinify, swc } from "rollup-plugin-swc3";
2062
2062
  var bundleTypeScript = async ({ format: format2 = "esm", minify = true, file }) => {
2063
2063
  const bundle = await rollup({
2064
2064
  input: file,
@@ -3342,7 +3342,21 @@ var graphqlFeature = defineFeature({
3342
3342
  });
3343
3343
  let code = Asset2.fromString(defaultResolver);
3344
3344
  if ("resolver" in props2 && props2.resolver) {
3345
- code = Asset2.fromFile(props2.resolver);
3345
+ ctx.registerBuild("graphql-resolver", entryId, async (build3) => {
3346
+ const resolver = props2.resolver;
3347
+ const version = await fingerprintFromFile2(resolver);
3348
+ return build3(version, async (write) => {
3349
+ const file = await buildTypeScriptResolver(resolver);
3350
+ if (!file) {
3351
+ throw new FileError(resolver, `Failed to build a graphql resolver.`);
3352
+ }
3353
+ await write("resolver.js", file);
3354
+ return {
3355
+ size: formatByteSize(file.byteLength)
3356
+ };
3357
+ });
3358
+ });
3359
+ code = Asset2.fromFile(getBuildPath("graphql-resolver", entryId, "resolver.js"));
3346
3360
  } else if (defaultProps.resolver) {
3347
3361
  code = Asset2.fromFile(getBuildPath("graphql-resolver", id, "resolver.js"));
3348
3362
  }
@@ -3968,8 +3982,9 @@ var searchFeature = defineFeature({
3968
3982
  onStack(ctx) {
3969
3983
  for (const [id, props] of Object.entries(ctx.stackConfig.searchs ?? {})) {
3970
3984
  const group = new Node14(ctx.stack, "search", id);
3985
+ const name = `${id}-${shortId([ctx.app.name, ctx.stack.name, this.name, id].join("--"))}`;
3971
3986
  const openSearch = new aws15.openSearch.Domain(group, "domain", {
3972
- name: `${id}-${shortId([ctx.app.name, ctx.stack.name, this.name, id].join("--"))}`,
3987
+ name,
3973
3988
  version: props.version,
3974
3989
  storageSize: props.storage,
3975
3990
  instance: {
@@ -3979,8 +3994,9 @@ var searchFeature = defineFeature({
3979
3994
  accessPolicy: {
3980
3995
  statements: [
3981
3996
  {
3982
- principal: "lambda.amazonaws.com",
3983
- sourceArn: `arn:aws:lambda:${ctx.appConfig.region}:${ctx.accountId}:function:${ctx.app.name}--${ctx.stack.name}--*`
3997
+ principal: { AWS: "*" },
3998
+ resources: [`arn:aws:es:${ctx.appConfig.region}:${ctx.accountId}:domain/${name}/*`],
3999
+ principalArn: `arn:aws:iam::${ctx.accountId}:role/${ctx.app.name}--${ctx.stack.name}--*`
3984
4000
  }
3985
4001
  ]
3986
4002
  }
@@ -3997,7 +4013,7 @@ var searchFeature = defineFeature({
3997
4013
  ctx.addEnv(`SEARCH_${constantCase8(ctx.stack.name)}_${constantCase8(id)}_DOMAIN`, openSearch.domainEndpoint);
3998
4014
  ctx.onPolicy((policy) => {
3999
4015
  policy.addStatement({
4000
- actions: ["es:*"],
4016
+ actions: ["es:ESHttp*"],
4001
4017
  resources: [openSearch.arn]
4002
4018
  });
4003
4019
  });
package/dist/server.d.ts CHANGED
@@ -1,9 +1,4 @@
1
1
  import { AwsCredentialIdentityProvider } from '@aws-sdk/types';
2
- import * as type_fest from 'type-fest';
3
- import * as _awsless_lambda from '@awsless/lambda';
4
- import { Handler, Loggers } from '@awsless/lambda';
5
- import { BaseSchema, SqsQueueSchema, SnsTopicSchema } from '@awsless/validate';
6
- import * as valibot from 'valibot';
7
2
 
8
3
  declare const regions: readonly ["us-east-2", "us-east-1", "us-west-1", "us-west-2", "af-south-1", "ap-east-1", "ap-south-2", "ap-southeast-3", "ap-southeast-4", "ap-south-1", "ap-northeast-3", "ap-northeast-2", "ap-southeast-1", "ap-southeast-2", "ap-northeast-1", "ca-central-1", "eu-central-1", "eu-west-1", "eu-west-2", "eu-south-1", "eu-west-3", "eu-south-2", "eu-north-1", "eu-central-2", "me-south-1", "me-central-1", "sa-east-1"];
9
4
  type Region = (typeof regions)[number];
@@ -27,45 +22,6 @@ declare class CommandOptions {
27
22
  boolean(name: string): boolean;
28
23
  }
29
24
 
30
- type CronProps<H extends Handler<S>, S extends BaseSchema> = {
31
- handle: H;
32
- schema?: S;
33
- logger?: Loggers;
34
- };
35
- 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<unknown extends Awaited<ReturnType<H>> ? Awaited<ReturnType<H>> : void extends Awaited<ReturnType<H>> ? Awaited<ReturnType<H>> & void : Awaited<ReturnType<H>> extends infer T ? T extends Awaited<ReturnType<H>> ? T extends undefined ? type_fest.Jsonify<T> | undefined : type_fest.Jsonify<T> : never : never>;
36
-
37
- type FunctionProps<H extends Handler<S>, S extends BaseSchema> = {
38
- handle: H;
39
- schema?: S;
40
- logger?: Loggers;
41
- logViewableErrors?: boolean;
42
- };
43
- 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<unknown extends Awaited<ReturnType<H>> ? Awaited<ReturnType<H>> : void extends Awaited<ReturnType<H>> ? Awaited<ReturnType<H>> & void : Awaited<ReturnType<H>> extends infer T ? T extends Awaited<ReturnType<H>> ? T extends undefined ? type_fest.Jsonify<T> | undefined : type_fest.Jsonify<T> : never : never>;
44
-
45
- type QueueProps<H extends Handler<S>, S extends BaseSchema> = {
46
- handle: H;
47
- schema?: S;
48
- logger?: Loggers;
49
- };
50
- declare const queue: <H extends Handler<SqsQueueSchema<S>, unknown>, S extends BaseSchema<any, any>>(props: QueueProps<H, S>) => (event: valibot.Input<S> | valibot.Input<S>[] | {
51
- Records: {
52
- body: string | valibot.Input<S>;
53
- }[];
54
- }, context?: _awsless_lambda.LambdaContext | undefined) => Promise<unknown extends Awaited<ReturnType<H>> ? Awaited<ReturnType<H>> : void extends Awaited<ReturnType<H>> ? Awaited<ReturnType<H>> & void : Awaited<ReturnType<H>> extends infer T ? T extends Awaited<ReturnType<H>> ? T extends undefined ? type_fest.Jsonify<T> | undefined : type_fest.Jsonify<T> : never : never>;
55
-
56
- type TopicProps<H extends Handler<S>, S extends BaseSchema> = {
57
- handle: H;
58
- schema?: S;
59
- logger?: Loggers;
60
- };
61
- 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>[] | {
62
- Records: {
63
- Sns: {
64
- Message: string | valibot.Input<S>;
65
- };
66
- }[];
67
- }, context?: _awsless_lambda.LambdaContext | undefined) => Promise<unknown extends Awaited<ReturnType<H>> ? Awaited<ReturnType<H>> : void extends Awaited<ReturnType<H>> ? Awaited<ReturnType<H>> & void : Awaited<ReturnType<H>> extends infer T ? T extends Awaited<ReturnType<H>> ? T extends undefined ? type_fest.Jsonify<T> | undefined : type_fest.Jsonify<T> : never : never>;
68
-
69
25
  interface FunctionMock {
70
26
  }
71
27
  interface FunctionMockResponse {
@@ -142,4 +98,4 @@ declare const Topic: TopicResources;
142
98
  declare const APP: "app";
143
99
  declare const STACK: "stack";
144
100
 
145
- export { APP, Cache, CacheResources, CommandContext, CommandHandler, CommandOptions, 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 };
101
+ export { APP, Cache, CacheResources, CommandContext, CommandHandler, CommandOptions, Config, ConfigResources, Fn, Function, FunctionMock, FunctionMockResponse, FunctionResources, Queue, QueueMock, QueueMockResponse, QueueResources, STACK, Search, SearchResources, Store, StoreResources, Table, TableResources, Task, TaskMock, TaskMockResponse, TaskResources, Topic, TopicMock, TopicMockResponse, TopicResources, getCacheProps, getConfigName, getFunctionName, getQueueName, getSearchName, getStoreName, getTableName, getTaskName, getTopicName, mockFunction, mockQueue, mockTask, mockTopic };
package/dist/server.js CHANGED
@@ -5,45 +5,6 @@ import {
5
5
  CommandOptions
6
6
  } from "./chunk-QL4FTNZ7.js";
7
7
 
8
- // src/lib/handle/cron.ts
9
- import { lambda } from "@awsless/lambda";
10
- var cron = (props) => {
11
- return lambda({
12
- ...props,
13
- logViewableErrors: true
14
- });
15
- };
16
-
17
- // src/lib/handle/function.ts
18
- import { lambda as lambda2 } from "@awsless/lambda";
19
- var func = (props) => {
20
- return lambda2(props);
21
- };
22
-
23
- // src/lib/handle/queue.ts
24
- import { lambda as lambda3 } from "@awsless/lambda";
25
- import { sqsQueue } from "@awsless/validate";
26
- var queue = (props) => {
27
- return lambda3({
28
- logger: props.logger,
29
- schema: sqsQueue(props.schema),
30
- handle: props.handle,
31
- logViewableErrors: true
32
- });
33
- };
34
-
35
- // src/lib/handle/topic.ts
36
- import { snsTopic } from "@awsless/validate";
37
- import { lambda as lambda4 } from "@awsless/lambda";
38
- var topic = (props) => {
39
- return lambda4({
40
- logger: props.logger,
41
- schema: snsTopic(props.schema),
42
- handle: props.handle,
43
- logViewableErrors: true
44
- });
45
- };
46
-
47
8
  // src/lib/mock/function.ts
48
9
  import { mockLambda } from "@awsless/lambda";
49
10
 
@@ -130,9 +91,9 @@ var getQueueUrl = (name, stack = STACK) => {
130
91
  return process.env[`QUEUE_${constantCase(stack)}_${constantCase(name)}_URL`];
131
92
  };
132
93
  var Queue = /* @__PURE__ */ createProxy((stack) => {
133
- return createProxy((queue2) => {
134
- const url = getQueueUrl(queue2, stack);
135
- const name = getQueueName(queue2, stack);
94
+ return createProxy((queue) => {
95
+ const url = getQueueUrl(queue, stack);
96
+ const name = getQueueName(queue, stack);
136
97
  const ctx = {
137
98
  [name]: (payload, options = {}) => {
138
99
  return sendMessage({
@@ -224,17 +185,17 @@ import { mockSNS } from "@awsless/sns";
224
185
  import { publish } from "@awsless/sns";
225
186
  var getTopicName = bindGlobalResourceName("topic");
226
187
  var Topic = /* @__PURE__ */ createProxy((name) => {
227
- const topic2 = getTopicName(name);
188
+ const topic = getTopicName(name);
228
189
  const ctx = {
229
- [topic2]: async (payload, options = {}) => {
190
+ [topic]: async (payload, options = {}) => {
230
191
  await publish({
231
192
  ...options,
232
- topic: topic2,
193
+ topic,
233
194
  payload
234
195
  });
235
196
  }
236
197
  };
237
- const call = ctx[topic2];
198
+ const call = ctx[topic];
238
199
  return call;
239
200
  });
240
201
 
@@ -337,7 +298,7 @@ import { constantCase as constantCase3 } from "change-case";
337
298
  var getSearchName = bindLocalResourceName("search");
338
299
  var getSearchProps = (name, stack = STACK) => {
339
300
  return {
340
- domain: process.env[`CACHE_${constantCase3(stack)}_${constantCase3(name)}_DOMAIN`]
301
+ domain: process.env[`SEARCH_${constantCase3(stack)}_${constantCase3(name)}_DOMAIN`]
341
302
  };
342
303
  };
343
304
  var Search = /* @__PURE__ */ createProxy((stack) => {
@@ -431,8 +392,6 @@ export {
431
392
  Table,
432
393
  Task,
433
394
  Topic,
434
- cron,
435
- func,
436
395
  getCacheProps,
437
396
  getConfigName,
438
397
  getFunctionName,
@@ -445,7 +404,5 @@ export {
445
404
  mockFunction,
446
405
  mockQueue,
447
406
  mockTask,
448
- mockTopic,
449
- queue,
450
- topic
407
+ mockTopic
451
408
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@awsless/awsless",
3
- "version": "0.0.299",
3
+ "version": "0.0.301",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -28,15 +28,15 @@
28
28
  }
29
29
  },
30
30
  "peerDependencies": {
31
- "@awsless/open-search": "^0.0.12",
32
- "@awsless/s3": "^0.0.15",
33
31
  "@awsless/lambda": "^0.0.25",
34
- "@awsless/ssm": "^0.0.7",
32
+ "@awsless/open-search": "^0.0.15",
35
33
  "@awsless/validate": "^0.0.14",
36
34
  "@awsless/redis": "^0.0.12",
37
- "@awsless/weak-cache": "^0.0.1",
35
+ "@awsless/ssm": "^0.0.7",
38
36
  "@awsless/sns": "^0.0.7",
39
- "@awsless/sqs": "^0.0.7"
37
+ "@awsless/sqs": "^0.0.7",
38
+ "@awsless/s3": "^0.0.15",
39
+ "@awsless/weak-cache": "^0.0.1"
40
40
  },
41
41
  "dependencies": {
42
42
  "@arcanyx/cidr-slicer": "^0.3.0",
@@ -93,11 +93,11 @@
93
93
  "pretty-hrtime": "^1.0.3",
94
94
  "promise-dag": "^1.0.0",
95
95
  "promisify-child-process": "^4.1.2",
96
- "rollup": "^4.0.2",
96
+ "rollup": "^4.18.0",
97
97
  "rollup-plugin-replace": "^2.2.0",
98
- "rollup-plugin-swc3": "^0.10.2",
98
+ "rollup-plugin-swc3": "^0.11.2",
99
99
  "tsx": "^4.15.5",
100
- "type-fest": "^3.6.0",
100
+ "type-fest": "^4.20.1",
101
101
  "uuid": "^9.0.0",
102
102
  "vite": "^5.0.0",
103
103
  "vitest": "^1.6.0",
@@ -105,10 +105,10 @@
105
105
  "zip-a-folder": "^3.1.6",
106
106
  "zod": "^3.21.4",
107
107
  "zod-to-json-schema": "^3.22.3",
108
+ "@awsless/duration": "^0.0.1",
108
109
  "@awsless/formation": "^0.0.39",
109
- "@awsless/graphql": "^0.0.9",
110
110
  "@awsless/size": "^0.0.1",
111
- "@awsless/duration": "^0.0.1",
111
+ "@awsless/graphql": "^0.0.9",
112
112
  "@awsless/validate": "^0.0.14",
113
113
  "@awsless/code": "^0.0.10"
114
114
  },