@ez4/aws-bucket 0.11.0 → 0.13.0

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/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2024 Silas B.
3
+ Copyright (c) 2025 Silas B.
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/dist/client.cjs CHANGED
@@ -13,5 +13,5 @@ Key:t});return(0,y.getSignedUrl)(c,w,{signableHeaders:new Set(["content-type"]),
13
13
  expiresIn:i})}async getReadUrl(t,e){let{expiresIn:i}=e,a=new n.GetObjectCommand(
14
14
  {Bucket:o,Key:t});return(0,y.getSignedUrl)(c,a,{expiresIn:i})}async getStats(t){
15
15
  try{let e=await c.send(new n.HeadObjectCommand({Bucket:o,Key:t}));return{type:e?.
16
- ContentType,size:e?.ContentLength??0}}catch(e){if(e instanceof n.NotFound||e instanceof
17
- n.NoSuchKey)return;throw e}}})(d||={});0&&(module.exports={Client});
16
+ ContentType,size:e?.ContentLength??0}}catch(e){if(!(e instanceof n.NotFound)&&!(e instanceof
17
+ n.NoSuchKey))throw e;return}}})(d||={});0&&(module.exports={Client});
package/dist/client.mjs CHANGED
@@ -10,4 +10,4 @@ Body.transformToByteArray();return Buffer.from(n)}async delete(e){await s.send(n
10
10
  type"]),expiresIn:n})}async getReadUrl(e,t){let{expiresIn:n}=t,o=new c({Bucket:r,
11
11
  Key:e});return i(s,o,{expiresIn:n})}async getStats(e){try{let t=await s.send(new m(
12
12
  {Bucket:r,Key:e}));return{type:t?.ContentType,size:t?.ContentLength??0}}catch(t){
13
- if(t instanceof d||t instanceof u)return;throw t}}})(B||={});export{B as Client};
13
+ if(!(t instanceof d)&&!(t instanceof u))throw t;return}}})(B||={});export{B as Client};
package/dist/main.cjs CHANGED
@@ -1,7 +1,7 @@
1
- "use strict";var Ae=Object.create;var R=Object.defineProperty;var Fe=Object.getOwnPropertyDescriptor;var Ue=Object.getOwnPropertyNames;var Ge=Object.getPrototypeOf,We=Object.prototype.hasOwnProperty;var Ze=(e,t)=>{for(var r in t)R(e,r,{get:t[r],enumerable:!0})},I=(e,t,r,o)=>{if(t&&
1
+ "use strict";var Ae=Object.create;var w=Object.defineProperty;var Fe=Object.getOwnPropertyDescriptor;var Ue=Object.getOwnPropertyNames;var Ge=Object.getPrototypeOf,We=Object.prototype.hasOwnProperty;var Ze=(e,t)=>{for(var r in t)w(e,r,{get:t[r],enumerable:!0})},I=(e,t,r,o)=>{if(t&&
2
2
  typeof t=="object"||typeof t=="function")for(let s of Ue(t))!We.call(e,s)&&s!==r&&
3
- R(e,s,{get:()=>t[s],enumerable:!(o=Fe(t,s))||o.enumerable});return e};var Je=(e,t,r)=>(r=e!=null?Ae(Ge(e)):{},I(t||!e||!e.__esModule?R(r,"default",{value:e,
4
- enumerable:!0}):r,e)),Qe=e=>I(R({},"__esModule",{value:!0}),e);var Bt={};Ze(Bt,{BucketServiceName:()=>n,BucketServiceType:()=>p,ObjectServiceName:()=>y,
3
+ w(e,s,{get:()=>t[s],enumerable:!(o=Fe(t,s))||o.enumerable});return e};var Je=(e,t,r)=>(r=e!=null?Ae(Ge(e)):{},I(t||!e||!e.__esModule?w(r,"default",{value:e,
4
+ enumerable:!0}):r,e)),Qe=e=>I(w({},"__esModule",{value:!0}),e);var Bt={};Ze(Bt,{BucketServiceName:()=>n,BucketServiceType:()=>p,ObjectServiceName:()=>y,
5
5
  ObjectServiceType:()=>m,PolicyServiceName:()=>g,PolicyServiceType:()=>u,createBucket:()=>z,
6
6
  createBucketObject:()=>bt,createBucketPolicy:()=>kt,getBucketDomain:()=>St,getBucketName:()=>b,
7
7
  getBucketObjectFiles:()=>it,getBucketObjectPath:()=>B,getBucketState:()=>tt,getBucketStateId:()=>C,
@@ -25,15 +25,15 @@ result&&e.result.bucketName===t.result?.bucketName,Xe=async(e,t)=>{let r={...e.p
25
25
  dependencies:e.dependencies},o={...t.parameters,dependencies:t.dependencies},s=(0,P.deepCompare)(
26
26
  r,o);if(s.counts)return{...s,name:r.bucketName}},Ye=async(e,t)=>{if(t.result)throw new F.ReplaceResourceError(
27
27
  n,e.entryId,t.entryId);return G(e)},G=async e=>{let t=e.parameters,{bucketName:r}=await L(
28
- t);return await Promise.all([W(r,t,void 0),Z(r,t,void 0),J(r,t.tags,void 0)]),{bucketName:r}},
29
- _e=async(e,t)=>{let{result:r,parameters:o}=e;if(!r)return;let s=r.bucketName;await Promise.
30
- all([W(s,o,t.parameters),Z(s,o,t.parameters),J(s,o.tags,t.parameters.tags)])},et=async e=>{
31
- let t=e.result;t&&await A(t.bucketName)},W=async(e,t,r)=>{if(!(t.cors&&r?.cors&&
32
- (0,P.deepEqual)(t.cors,r.cors))){if(t.cors)return K(e,t.cors);if(r?.cors)return H(
33
- e)}},Z=async(e,t,r)=>{if(t.autoExpireDays!==r?.autoExpireDays){if(t.autoExpireDays)
28
+ t);return await W(r,t,void 0),await Z(r,t,void 0),await J(r,t.tags,void 0),{bucketName:r}},
29
+ _e=async(e,t)=>{let{result:r,parameters:o}=e;if(!r)return;let s=r.bucketName;await W(
30
+ s,o,t.parameters),await Z(s,o,t.parameters),await J(s,o.tags,t.parameters.tags)},
31
+ et=async e=>{let t=e.result;t&&await A(t.bucketName)},W=async(e,t,r)=>{if(!(t.cors&&
32
+ r?.cors&&(0,P.deepEqual)(t.cors,r.cors))){if(t.cors)return K(e,t.cors);if(r?.cors)
33
+ return H(e)}},Z=async(e,t,r)=>{if(t.autoExpireDays!==r?.autoExpireDays){if(t.autoExpireDays)
34
34
  return M(e,t.autoExpireDays);if(r?.autoExpireDays)return $(e)}},J=async(e,t,r)=>{
35
- let o=t??{};!(0,P.deepEqual)(o,r??{})&&await q(e,o)};var V=()=>{(0,Q.registerProvider)(p,U())};var ce=require("@ez4/aws-common");var re=require("@ez4/aws-common");var j=require("@ez4/stateful"),X=require("@ez4/aws-common"),w=require("@ez4/utils");var Y=e=>e.type===p,C=e=>(0,w.hashData)(p,(0,w.toKebabCase)(e)),tt=(e,t)=>{let r=(0,j.getEntry)(
36
- e,C(t));if(!Y(r))throw new j.EntryNotFoundError(r.entryId);return r},b=(e,t,r)=>{
35
+ let o=t??{};!(0,P.deepEqual)(o,r??{})&&await q(e,o)};var V=()=>{(0,Q.registerProvider)(p,U())};var ce=require("@ez4/aws-common");var re=require("@ez4/aws-common");var R=require("@ez4/stateful"),X=require("@ez4/aws-common"),j=require("@ez4/utils");var Y=e=>e.type===p,C=e=>(0,j.hashData)(p,(0,j.toKebabCase)(e)),tt=(e,t)=>{let r=(0,R.getEntry)(
36
+ e,C(t));if(!Y(r))throw new R.EntryNotFoundError(r.entryId);return r},b=(e,t,r)=>{
37
37
  let o=r.getDependencies(p).at(0)?.result;if(!o?.bucketName)throw new X.IncompleteResourceError(
38
38
  e,t,"bucketName");return o.bucketName};var v=require("@ez4/aws-common"),S=require("@aws-sdk/client-s3");var g="AWS:S3/Policy",u="aws:s3.policy";var _=new S.S3Client({}),ee=async e=>{let{bucketName:t,role:r}=e;return v.Logger.
39
39
  logCreate(g,t),await _.send(new S.PutBucketPolicyCommand({Bucket:t,Policy:JSON.stringify(
@@ -69,12 +69,12 @@ let s=r??{};!(0,E.deepEqual)(s,o??{})&&await pe(e,t,s)};var Se=()=>{(0,de.regist
69
69
  PutObject","s3:GetObject","s3:DeleteObject"]}]);var be=async e=>{let{state:t,options:r}=e,{resourcePrefix:o,projectName:s}=r,c=`${o}\
70
70
  -${s}`;return(0,Pe.createPolicy)(t,{policyName:`${c}-bucket-policy`,policyDocument:N(
71
71
  c)})};var Ce=require("@ez4/project/library"),Ee=require("@ez4/storage/library");var Be=require("@ez4/utils"),xe=require("@ez4/stateful");var z=(e,t)=>{let r=(0,Be.toKebabCase)(t.bucketName),o=C(t.bucketName);return(0,xe.attachEntry)(
72
- e,{type:p,entryId:o,dependencies:[],parameters:{...t,bucketName:r}})};var Re=require("node:fs/promises"),x=require("node:path"),je=require("@ez4/aws-bucket"),
73
- we=async(e,t,r)=>{let o=(0,x.join)(process.cwd(),r),s=await(0,Re.readdir)(o,{withFileTypes:!0,
72
+ e,{type:p,entryId:o,dependencies:[],parameters:{...t,bucketName:r}})};var we=require("node:fs/promises"),x=require("node:path"),Re=require("@ez4/aws-bucket"),
73
+ je=async(e,t,r)=>{let o=(0,x.join)(process.cwd(),r),s=await(0,we.readdir)(o,{withFileTypes:!0,
74
74
  recursive:!0});for(let c of s){if(!c.isFile())continue;let d=(0,x.join)(c.parentPath,
75
- c.name),O=(0,x.relative)(o,d);(0,je.createBucketObject)(e,t,{objectKey:O,filePath:d})}};var Oe=async e=>{let{state:t,service:r,options:o}=e;if(!(0,Ee.isBucketService)(r))
75
+ c.name),O=(0,x.relative)(o,d);(0,Re.createBucketObject)(e,t,{objectKey:O,filePath:d})}};var Oe=async e=>{let{state:t,service:r,options:o}=e;if(!(0,Ee.isBucketService)(r))
76
76
  return;let{autoExpireDays:s,localPath:c,cors:d}=r,O=z(t,{bucketName:(0,Ce.getServiceName)(
77
- r,o),autoExpireDays:s,localPath:c,cors:d});c&&await we(t,O,c)};var ve=require("@ez4/storage/library"),Te=require("@ez4/project/library"),he=async e=>{
77
+ r,o),autoExpireDays:s,localPath:c,cors:d});c&&await je(t,O,c)};var ve=require("@ez4/storage/library"),Te=require("@ez4/project/library"),he=async e=>{
78
78
  let{service:t,options:r}=e;return(0,ve.isBucketService)(t)?{constructor:`make('${(0,Te.getServiceName)(
79
79
  t,r)}')`,module:"Client",from:"@ez4/aws-bucket/client"}:null};var De=!1,gt=()=>{De||((0,Ne.registerTriggers)(),(0,ze.registerTriggers)(),(0,Ie.registerTriggers)(),
80
80
  (0,Le.createTrigger)("@ez4/aws-bucket",{"deploy:prepareExecutionPolicy":be,"depl\
package/dist/main.mjs CHANGED
@@ -3,9 +3,9 @@ import{registerTriggers as gt}from"@ez4/storage/library";import{createTrigger as
3
3
  deepEqual as T}from"@ez4/utils";import{getTagList as se,Logger as p}from"@ez4/aws-common";import{CreateBucketCommand as ce,
4
4
  DeleteBucketCommand as ae,PutBucketTaggingCommand as ne,PutBucketCorsCommand as ie,
5
5
  DeleteBucketCorsCommand as pe,PutBucketLifecycleConfigurationCommand as me,DeleteBucketLifecycleCommand as ue,
6
- ExpirationStatus as ye,S3Client as le}from"@aws-sdk/client-s3";var a="AWS:S3/Bucket",n="aws:s3.bucket";var m=new le({}),R=async e=>{let{bucketName:t}=e;return p.logCreate(a,t),await m.
7
- send(new ce({Bucket:t})),{bucketName:t}},j=async(e,t)=>{p.logTag(a,e),await m.send(
8
- new ne({Bucket:e,Tagging:{TagSet:se({...t,ManagedBy:"EZ4"})}}))},w=async(e,t)=>{
6
+ ExpirationStatus as ye,S3Client as le}from"@aws-sdk/client-s3";var a="AWS:S3/Bucket",n="aws:s3.bucket";var m=new le({}),w=async e=>{let{bucketName:t}=e;return p.logCreate(a,t),await m.
7
+ send(new ce({Bucket:t})),{bucketName:t}},R=async(e,t)=>{p.logTag(a,e),await m.send(
8
+ new ne({Bucket:e,Tagging:{TagSet:se({...t,ManagedBy:"EZ4"})}}))},j=async(e,t)=>{
9
9
  p.logUpdate(a,`${e} CORS`),await m.send(new ie({Bucket:e,CORSConfiguration:{CORSRules:[
10
10
  {ID:"ID0",AllowedOrigins:t.allowOrigins,AllowedMethods:t.allowMethods,AllowedHeaders:t.
11
11
  allowHeaders,ExposeHeaders:t.exposeHeaders,MaxAgeSeconds:t.maxAge}]}}))},C=async e=>{
@@ -17,18 +17,18 @@ logDelete(a,e),await m.send(new ae({Bucket:e}))};var h=()=>({equals:de,create:D,
17
17
  result&&e.result.bucketName===t.result?.bucketName,Se=async(e,t)=>{let r={...e.parameters,
18
18
  dependencies:e.dependencies},o={...t.parameters,dependencies:t.dependencies},s=ge(
19
19
  r,o);if(s.counts)return{...s,name:r.bucketName}},ke=async(e,t)=>{if(t.result)throw new fe(
20
- a,e.entryId,t.entryId);return D(e)},D=async e=>{let t=e.parameters,{bucketName:r}=await R(
21
- t);return await Promise.all([N(r,t,void 0),z(r,t,void 0),I(r,t.tags,void 0)]),{bucketName:r}},
22
- Pe=async(e,t)=>{let{result:r,parameters:o}=e;if(!r)return;let s=r.bucketName;await Promise.
23
- all([N(s,o,t.parameters),z(s,o,t.parameters),I(s,o.tags,t.parameters.tags)])},be=async e=>{
24
- let t=e.result;t&&await v(t.bucketName)},N=async(e,t,r)=>{if(!(t.cors&&r?.cors&&
25
- T(t.cors,r.cors))){if(t.cors)return w(e,t.cors);if(r?.cors)return C(e)}},z=async(e,t,r)=>{
26
- if(t.autoExpireDays!==r?.autoExpireDays){if(t.autoExpireDays)return E(e,t.autoExpireDays);
27
- if(r?.autoExpireDays)return O(e)}},I=async(e,t,r)=>{let o=t??{};!T(o,r??{})&&await j(
28
- e,o)};var L=()=>{Be(n,h())};import{registerProvider as qe}from"@ez4/aws-common";import{ReplaceResourceError as he}from"@ez4/aws-common";import{EntryNotFoundError as xe,getEntry as Re}from"@ez4/stateful";import{IncompleteResourceError as je}from"@ez4/aws-common";
29
- import{hashData as we,toKebabCase as Ce}from"@ez4/utils";var Ee=e=>e.type===n,k=e=>we(n,Ce(e)),Mt=(e,t)=>{let r=Re(e,k(t));if(!Ee(r))throw new xe(
20
+ a,e.entryId,t.entryId);return D(e)},D=async e=>{let t=e.parameters,{bucketName:r}=await w(
21
+ t);return await N(r,t,void 0),await z(r,t,void 0),await I(r,t.tags,void 0),{bucketName:r}},
22
+ Pe=async(e,t)=>{let{result:r,parameters:o}=e;if(!r)return;let s=r.bucketName;await N(
23
+ s,o,t.parameters),await z(s,o,t.parameters),await I(s,o.tags,t.parameters.tags)},
24
+ be=async e=>{let t=e.result;t&&await v(t.bucketName)},N=async(e,t,r)=>{if(!(t.cors&&
25
+ r?.cors&&T(t.cors,r.cors))){if(t.cors)return j(e,t.cors);if(r?.cors)return C(e)}},
26
+ z=async(e,t,r)=>{if(t.autoExpireDays!==r?.autoExpireDays){if(t.autoExpireDays)return E(
27
+ e,t.autoExpireDays);if(r?.autoExpireDays)return O(e)}},I=async(e,t,r)=>{let o=t??
28
+ {};!T(o,r??{})&&await R(e,o)};var L=()=>{Be(n,h())};import{registerProvider as qe}from"@ez4/aws-common";import{ReplaceResourceError as he}from"@ez4/aws-common";import{EntryNotFoundError as xe,getEntry as we}from"@ez4/stateful";import{IncompleteResourceError as Re}from"@ez4/aws-common";
29
+ import{hashData as je,toKebabCase as Ce}from"@ez4/utils";var Ee=e=>e.type===n,k=e=>je(n,Ce(e)),Mt=(e,t)=>{let r=we(e,k(t));if(!Ee(r))throw new xe(
30
30
  r.entryId);return r},g=(e,t,r)=>{let o=r.getDependencies(n).at(0)?.result;if(!o?.
31
- bucketName)throw new je(e,t,"bucketName");return o.bucketName};import{Logger as q}from"@ez4/aws-common";import{S3Client as Oe,PutBucketPolicyCommand as ve,
31
+ bucketName)throw new Re(e,t,"bucketName");return o.bucketName};import{Logger as q}from"@ez4/aws-common";import{S3Client as Oe,PutBucketPolicyCommand as ve,
32
32
  DeleteBucketPolicyCommand as Te}from"@aws-sdk/client-s3";var f="AWS:S3/Policy",u="aws:s3.policy";var K=new Oe({}),H=async e=>{let{bucketName:t,role:r}=e;return q.logCreate(f,t),
33
33
  await K.send(new ve({Bucket:t,Policy:JSON.stringify(r)})),{bucketName:t}},M=async e=>{
34
34
  q.logDelete(f,e),await K.send(new Te({Bucket:e}))};var $=()=>({equals:De,create:A,replace:ze,preview:Ne,update:Ie,delete:Le}),De=(e,t)=>!!e.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ez4/aws-bucket",
3
3
  "description": "EZ4: Self-managed AWS S3 bucket provider",
4
- "version": "0.11.0",
4
+ "version": "0.13.0",
5
5
  "author": "Silas B.",
6
6
  "license": "MIT",
7
7
  "type": "module",
@@ -44,17 +44,15 @@
44
44
  "devDependencies": {
45
45
  "@types/mime": "^3.0.0"
46
46
  },
47
- "peerDependencies": {
48
- "@ez4/project": "^0.11.0",
49
- "@ez4/storage": "^0.11.0"
50
- },
51
47
  "dependencies": {
52
48
  "@aws-sdk/client-s3": "^3.614.0",
53
49
  "@aws-sdk/s3-request-presigner": "^3.651.0",
54
- "@ez4/aws-common": "^0.11.0",
55
- "@ez4/aws-identity": "^0.11.0",
56
- "@ez4/stateful": "^0.11.0",
57
- "@ez4/utils": "^0.11.0",
50
+ "@ez4/aws-common": "^0.13.0",
51
+ "@ez4/aws-identity": "^0.13.0",
52
+ "@ez4/project": "^0.13.0",
53
+ "@ez4/stateful": "^0.13.0",
54
+ "@ez4/storage": "^0.13.0",
55
+ "@ez4/utils": "^0.13.0",
58
56
  "mime": "^3.0.0"
59
57
  }
60
58
  }