@awsless/awsless 0.0.149 → 0.0.152

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
@@ -261,7 +261,7 @@ var InlinePolicy = class {
261
261
  name;
262
262
  statements;
263
263
  constructor(name, props = {}) {
264
- this.statements = props.statements || [];
264
+ this.statements = props.statements ?? [];
265
265
  this.name = formatName(name);
266
266
  }
267
267
  addStatement(...statements) {
@@ -4416,7 +4416,13 @@ var Bucket = class extends Resource {
4416
4416
  }
4417
4417
  get permissions() {
4418
4418
  return {
4419
- actions: ["s3:SendMessage", "s3:ReceiveMessage", "s3:GetQueueUrl", "s3:GetQueueAttributes"],
4419
+ actions: [
4420
+ "s3:ListBucket",
4421
+ "s3:GetObject",
4422
+ "s3:PutObject",
4423
+ "s3:DeleteObject",
4424
+ "s3:GetObjectAttributes"
4425
+ ],
4420
4426
  resources: [
4421
4427
  formatArn({
4422
4428
  service: "s3",
@@ -4883,6 +4889,16 @@ var sitePlugin = definePlugin({
4883
4889
  });
4884
4890
 
4885
4891
  // src/plugins/store/index.ts
4892
+ var typeGenCode4 = `
4893
+ import { Body, PutObjectProps, BodyStream } from '@awsless/s3'
4894
+
4895
+ type Store<Name extends string> = {
4896
+ readonly name: Name
4897
+ readonly put: (key: string, body: Body, options?: Pick<PutObjectProps, 'metadata' | 'storageClass'>) => Promise<void>
4898
+ readonly get: (key: string) => Promise<BodyStream>
4899
+ readonly delete: (key: string) => Promise<void>
4900
+ }
4901
+ `;
4886
4902
  var storePlugin = definePlugin({
4887
4903
  name: "store",
4888
4904
  async onTypeGen({ config: config2, write }) {
@@ -4892,10 +4908,11 @@ var storePlugin = definePlugin({
4892
4908
  const list3 = new TypeObject(2);
4893
4909
  for (const name of stack.stores || []) {
4894
4910
  const storeName = formatName(`${config2.app.name}-${stack.name}-${name}`);
4895
- list3.addType(name, `{ readonly name: '${storeName}' }`);
4911
+ list3.addType(name, `Store<'${storeName}'>`);
4896
4912
  }
4897
4913
  resources.addType(stack.name, list3);
4898
4914
  }
4915
+ gen.addCode(typeGenCode4);
4899
4916
  gen.addInterface("StoreResources", resources);
4900
4917
  await write("store.d.ts", gen, true);
4901
4918
  },
@@ -5207,7 +5224,7 @@ var isEmail = (value) => {
5207
5224
  };
5208
5225
 
5209
5226
  // src/plugins/topic/index.ts
5210
- var typeGenCode4 = `
5227
+ var typeGenCode5 = `
5211
5228
  import type { PublishOptions } from '@awsless/sns'
5212
5229
  import type { Mock } from 'vitest'
5213
5230
 
@@ -5234,7 +5251,7 @@ var topicPlugin = definePlugin({
5234
5251
  mocks.addType(topic, `MockBuilder`);
5235
5252
  }
5236
5253
  }
5237
- gen.addCode(typeGenCode4);
5254
+ gen.addCode(typeGenCode5);
5238
5255
  gen.addInterface("TopicResources", resources);
5239
5256
  gen.addInterface("TopicMock", mocks);
5240
5257
  gen.addInterface("TopicMockResponse", mockResponses);
package/dist/index.js CHANGED
@@ -191,11 +191,31 @@ var Cache = /* @__PURE__ */ createProxy((stack) => {
191
191
  });
192
192
 
193
193
  // src/node/store.ts
194
+ import { putObject, getObject, deleteObject } from "@awsless/s3";
194
195
  var getStoreName = getLocalResourceName;
195
196
  var Store = /* @__PURE__ */ createProxy((stack) => {
196
197
  return createProxy((name) => {
198
+ const bucket = getStoreName(name, stack);
197
199
  return {
198
- name: getStoreName(name, stack)
200
+ name: bucket,
201
+ async put(key, body, options = {}) {
202
+ await putObject({
203
+ bucket,
204
+ key,
205
+ body,
206
+ ...options
207
+ });
208
+ },
209
+ async get(key) {
210
+ const object = await getObject({ bucket, key });
211
+ if (object) {
212
+ return object.body;
213
+ }
214
+ return void 0;
215
+ },
216
+ delete(key) {
217
+ return deleteObject({ bucket, key });
218
+ }
199
219
  };
200
220
  });
201
221
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@awsless/awsless",
3
- "version": "0.0.149",
3
+ "version": "0.0.152",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -30,10 +30,11 @@
30
30
  "peerDependencies": {
31
31
  "@awsless/lambda": "^0.0.15",
32
32
  "@awsless/redis": "^0.0.10",
33
+ "@awsless/s3": "^0.0.8",
33
34
  "@awsless/sns": "^0.0.7",
34
35
  "@awsless/sqs": "^0.0.7",
35
36
  "@awsless/ssm": "^0.0.7",
36
- "@awsless/validate": "^0.0.10",
37
+ "@awsless/validate": "^0.0.13",
37
38
  "@awsless/weak-cache": "^0.0.1"
38
39
  },
39
40
  "dependencies": {