@ez4/aws-bucket 0.40.0 → 0.41.1

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/client.cjs CHANGED
@@ -1,17 +1,18 @@
1
- "use strict";var f=Object.create;var p=Object.defineProperty;var B=Object.getOwnPropertyDescriptor;var C=Object.getOwnPropertyNames;var l=Object.getPrototypeOf,O=Object.prototype.hasOwnProperty;var m=(t,o)=>p(t,"name",{value:o,configurable:!0});var S=(t,o)=>{for(var s in o)p(t,s,{get:o[s],enumerable:!0})},g=(t,o,s,n)=>{if(o&&
2
- typeof o=="object"||typeof o=="function")for(let e of C(o))!O.call(t,e)&&e!==s&&
3
- p(t,e,{get:()=>o[e],enumerable:!(n=B(o,e))||n.enumerable});return t};var T=(t,o,s)=>(s=t!=null?f(l(t)):{},g(o||!t||!t.__esModule?p(s,"default",{value:t,
4
- enumerable:!0}):s,t)),K=t=>g(p({},"__esModule",{value:!0}),t);var h={};S(h,{Client:()=>w});module.exports=K(h);var y=require("@aws-sdk/s3-request-presigner"),
5
- r=require("@aws-sdk/client-s3"),d=T(require("mime"),1);var c=new r.S3Client({}),w;(o=>o.make=m(s=>new class{async exists(n){return!!await this.
6
- getStats(n)}async write(n,e,i){let a=i?.contentType??d.default.getType(n);await c.
7
- send(new r.PutObjectCommand({Bucket:s,Key:n,Body:e,...a&&{ContentType:a}}))}async read(n){
8
- let i=await(await c.send(new r.GetObjectCommand({Bucket:s,Key:n}))).Body.transformToByteArray();
9
- return Buffer.from(i)}async delete(n){await c.send(new r.DeleteObjectCommand({Bucket:s,
10
- Key:n}))}async getWriteUrl(n,e){let{expiresIn:i,contentType:a}=e,u=new r.PutObjectCommand(
11
- {Bucket:s,ContentType:a,Key:n});return(0,y.getSignedUrl)(c,u,{signableHeaders:new Set(
12
- ["content-type"]),expiresIn:i})}async getReadUrl(n,e){let{expiresIn:i}=e,a=new r.GetObjectCommand(
13
- {Bucket:s,Key:n});return(0,y.getSignedUrl)(c,a,{expiresIn:i})}async getStats(n){
14
- try{let e=await c.send(new r.HeadObjectCommand({Bucket:s,Key:n}));return{type:e?.
15
- ContentType,size:e?.ContentLength??0}}catch(e){if(!(e instanceof r.NotFound)&&!(e instanceof
16
- r.NoSuchKey))throw e;return}}},"make"))(w||={});0&&(module.exports={Client});
1
+ "use strict";var f=Object.create;var p=Object.defineProperty;var B=Object.getOwnPropertyDescriptor;var C=Object.getOwnPropertyNames;var l=Object.getPrototypeOf,S=Object.prototype.hasOwnProperty;var g=(n,o)=>p(n,"name",{value:o,configurable:!0});var O=(n,o)=>{for(var s in o)p(n,s,{get:o[s],enumerable:!0})},m=(n,o,s,e)=>{if(o&&
2
+ typeof o=="object"||typeof o=="function")for(let t of C(o))!S.call(n,t)&&t!==s&&
3
+ p(n,t,{get:()=>o[t],enumerable:!(e=B(o,t))||e.enumerable});return n};var K=(n,o,s)=>(s=n!=null?f(l(n)):{},m(o||!n||!n.__esModule?p(s,"default",{value:n,
4
+ enumerable:!0}):s,n)),T=n=>m(p({},"__esModule",{value:!0}),n);var x={};O(x,{Client:()=>w});module.exports=T(x);var y=require("@aws-sdk/s3-request-presigner"),
5
+ r=require("@aws-sdk/client-s3"),d=K(require("mime"),1);var c=new r.S3Client({}),w;(o=>o.make=g(s=>new class{async exists(e){return!!await this.
6
+ getStats(e)}async write(e,t,i){let a=i?.contentType??d.default.getType(e);await c.
7
+ send(new r.PutObjectCommand({Bucket:s,Key:e,Body:t,...a&&{ContentType:a}}))}async read(e){
8
+ let i=await(await c.send(new r.GetObjectCommand({Bucket:s,Key:e}))).Body.transformToByteArray();
9
+ return Buffer.from(i)}async delete(e){await c.send(new r.DeleteObjectCommand({Bucket:s,
10
+ Key:e}))}async getWriteUrl(e,t){let{expiresIn:i,contentType:a}=t,u=new r.PutObjectCommand(
11
+ {Bucket:s,ContentType:a,Key:e});return(0,y.getSignedUrl)(c,u,{signableHeaders:new Set(
12
+ ["content-type"]),expiresIn:i})}async getReadUrl(e,t){let{expiresIn:i}=t,a=new r.GetObjectCommand(
13
+ {Bucket:s,Key:e});return(0,y.getSignedUrl)(c,a,{expiresIn:i})}async getStats(e){
14
+ try{let t=await c.send(new r.HeadObjectCommand({Bucket:s,Key:e}));return{type:t?.
15
+ ContentType,size:t?.ContentLength??0}}catch(t){if(!(t instanceof r.NotFound)&&!(t instanceof
16
+ r.NoSuchKey))throw t;return}}async getStatsUrl(e,t){let{expiresIn:i}=t,a=new r.HeadObjectCommand(
17
+ {Bucket:s,Key:e});return(0,y.getSignedUrl)(c,a,{expiresIn:i})}},"make"))(w||={});0&&(module.exports={Client});
17
18
  //# sourceMappingURL=client.cjs.map
package/dist/client.mjs CHANGED
@@ -1,14 +1,15 @@
1
- var d=Object.defineProperty;var c=(a,i)=>d(a,"name",{value:i,configurable:!0});import{getSignedUrl as p}from"@aws-sdk/s3-request-presigner";import{HeadObjectCommand as w,
2
- PutObjectCommand as y,GetObjectCommand as m,DeleteObjectCommand as u,NotFound as f,
3
- S3Client as B,NoSuchKey as C}from"@aws-sdk/client-s3";import l from"mime";var s=new B({}),O;(i=>i.make=c(r=>new class{async exists(e){return!!await this.getStats(
4
- e)}async write(e,t,n){let o=n?.contentType??l.getType(e);await s.send(new y({Bucket:r,
5
- Key:e,Body:t,...o&&{ContentType:o}}))}async read(e){let n=await(await s.send(new m(
6
- {Bucket:r,Key:e}))).Body.transformToByteArray();return Buffer.from(n)}async delete(e){
7
- await s.send(new u({Bucket:r,Key:e}))}async getWriteUrl(e,t){let{expiresIn:n,contentType:o}=t,
8
- g=new y({Bucket:r,ContentType:o,Key:e});return p(s,g,{signableHeaders:new Set(["\
9
- content-type"]),expiresIn:n})}async getReadUrl(e,t){let{expiresIn:n}=t,o=new m({
10
- Bucket:r,Key:e});return p(s,o,{expiresIn:n})}async getStats(e){try{let t=await s.
11
- send(new w({Bucket:r,Key:e}));return{type:t?.ContentType,size:t?.ContentLength??
12
- 0}}catch(t){if(!(t instanceof f)&&!(t instanceof C))throw t;return}}},"make"))(O||=
13
- {});export{O as Client};
1
+ var w=Object.defineProperty;var p=(c,i)=>w(c,"name",{value:i,configurable:!0});import{getSignedUrl as a}from"@aws-sdk/s3-request-presigner";import{HeadObjectCommand as y,
2
+ PutObjectCommand as g,GetObjectCommand as m,DeleteObjectCommand as u,NotFound as f,
3
+ S3Client as B,NoSuchKey as C}from"@aws-sdk/client-s3";import l from"mime";var o=new B({}),S;(i=>i.make=p(s=>new class{async exists(t){return!!await this.getStats(
4
+ t)}async write(t,e,n){let r=n?.contentType??l.getType(t);await o.send(new g({Bucket:s,
5
+ Key:t,Body:e,...r&&{ContentType:r}}))}async read(t){let n=await(await o.send(new m(
6
+ {Bucket:s,Key:t}))).Body.transformToByteArray();return Buffer.from(n)}async delete(t){
7
+ await o.send(new u({Bucket:s,Key:t}))}async getWriteUrl(t,e){let{expiresIn:n,contentType:r}=e,
8
+ d=new g({Bucket:s,ContentType:r,Key:t});return a(o,d,{signableHeaders:new Set(["\
9
+ content-type"]),expiresIn:n})}async getReadUrl(t,e){let{expiresIn:n}=e,r=new m({
10
+ Bucket:s,Key:t});return a(o,r,{expiresIn:n})}async getStats(t){try{let e=await o.
11
+ send(new y({Bucket:s,Key:t}));return{type:e?.ContentType,size:e?.ContentLength??
12
+ 0}}catch(e){if(!(e instanceof f)&&!(e instanceof C))throw e;return}}async getStatsUrl(t,e){
13
+ let{expiresIn:n}=e,r=new y({Bucket:s,Key:t});return a(o,r,{expiresIn:n})}},"make"))(
14
+ S||={});export{S as Client};
14
15
  //# sourceMappingURL=client.mjs.map
package/dist/main.cjs CHANGED
@@ -108,8 +108,8 @@ filePath)return e;let{bucketName:a}=e,{objectKey:i}=o;return await V(t,a,{...r,o
108
108
  {lastModified:c,bucketName:a}},"checkObjectUpdates"),He=n(async(t,e,r,o,c)=>{let a=o??
109
109
  {};!(0,A.deepEqual)(a,c??{})&&await Ae(t,e,r,a)},"checkTagUpdates");var Ue=n(()=>{(0,$e.tryRegisterProvider)(l,qe())},"registerObjectProvider");var H=require("@ez4/storage/library");var I=require("@ez4/stateful"),_e=require("@ez4/aws-function");var Ge=require("@ez4/aws-identity");var Z=n(t=>`arn:aws:s3:::${t}`,"buildBucketArn"),J=n(t=>(0,Ge.createPolicyDocument)(
110
110
  [{resourceIds:[`arn:aws:s3:::${t}-*`,`arn:aws:s3:::${t}-*/*`],permissions:["s3:L\
111
- istBucket","s3:PutObject","s3:GetObject","s3:DeleteObject"]}]),"getPolicyDocumen\
112
- t");var Q=n((t,e,r)=>{let o=r.bucketName,c=G(o),a=(0,I.attachEntry)(t,{type:y,entryId:c,
111
+ istBucket","s3:PutObject","s3:GetObject","s3:DeleteObject","s3:HeadObject"]}]),"\
112
+ getPolicyDocument");var Q=n((t,e,r)=>{let o=r.bucketName,c=G(o),a=(0,I.attachEntry)(t,{type:y,entryId:c,
113
113
  dependencies:[],parameters:r});return e&&((0,_e.createPermission)(t,a,e,{fromService:r.
114
114
  bucketName,getPermission:n(()=>({principal:"s3.amazonaws.com",sourceArn:Z(o)}),"\
115
115
  getPermission")}),(0,I.linkEntryDependency)(t,a.entryId,e.entryId)),a},"createBu\
@@ -143,7 +143,7 @@ groupName:re,tags:r.tags});return O=X(t,o.role,jt,{functionName:re,description:i
143
143
  description,context:e.context,debug:r.debug,tags:r.tags,variables:[r.variables,e.
144
144
  variables,m],architecture:C,runtime:v,release:a,timeout:Ot,memory:Ct,handler:{sourceFile:i.
145
145
  file,functionName:i.name,module:i.module,dependencies:ht},listener:p&&{functionName:p.
146
- name,sourceFile:p.file,module:p.module}}),o.setServiceState(O,te,r),O},"prepareE\
146
+ name,sourceFile:p.file,module:p.module}}),o.setServiceState(te,r,O),O},"prepareE\
147
147
  vents"),at=n((t,e,r,o)=>{if(!e.events)return;if(!o.role||!(0,ee.isRoleState)(o.role))
148
148
  throw new T;let{handler:c}=e.events,a=Y(e,c.name),i=(0,K.getFunctionState)(o,a,r);
149
149
  (0,ot.linkServiceContext)(t,i.entryId,e.context)},"connectEvents");var it=require("node:fs/promises"),R=require("node:path"),st=require("@ez4/aws-bucket");var pt=n(async(t,e,r)=>{let o=process.cwd(),c=(0,R.join)(o,r),a=await(0,it.readdir)(
@@ -151,12 +151,12 @@ c,{withFileTypes:!0,recursive:!0});for(let i of a){if(!i.isFile())continue;let p
151
151
  i.parentPath,i.name);(0,st.createBucketObject)(t,e,{objectKey:(0,R.relative)(c,p),
152
152
  filePath:(0,R.relative)(o,p)})}},"prepareLocalContent");var ut=n((t,e,r)=>{let o=_(t,e.name,r),c=o.entryId;return{module:"Client",from:"\
153
153
  @ez4/aws-bucket/client",constructor:`@{EZ4_MODULE_IMPORT}.make('${o.parameters.bucketName}\
154
- ')`,connectionIds:[c],dependencyIds:[c]}},"prepareLinkedClient");var mt=n(t=>{let{service:e,options:r,context:o}=t;return(0,H.isBucketService)(e)?
154
+ ')`,dependencyIds:[c],connectionIds:[c]}},"prepareLinkedClient");var mt=n(t=>{let{service:e,options:r,context:o}=t;return(0,H.isBucketService)(e)?
155
155
  ut(o,e,r):null},"prepareLinkedServices"),yt=n(async t=>{let{state:e,service:r,options:o,
156
156
  context:c}=t;if(!(0,H.isBucketService)(r))return!1;let{localPath:a,autoExpireDays:i,
157
157
  events:p,cors:m}=r,v=await tt(r,o),C=ct(e,r,o,c),D=Q(e,C,{eventsPath:p?.path,tags:o.
158
158
  tags,bucketName:v,autoExpireDays:i,localPath:a,cors:m});return c.setServiceState(
159
- D,r,o),a&&await pt(e,D,a),!0},"prepareBucketServices"),lt=n(t=>{let{state:e,service:r,
159
+ r,o,D),a&&await pt(e,D,a),!0},"prepareBucketServices"),lt=n(t=>{let{state:e,service:r,
160
160
  options:o,context:c}=t;(0,H.isBucketService)(r)&&at(e,r,o,c)},"connectBucketServ\
161
161
  ices");var ft=require("@ez4/storage/library"),$=require("@ez4/aws-identity"),gt=require("@ez4/project/library");var dt=n(t=>{let{state:e,serviceType:r,options:o}=t;if(r!==ft.ServiceType)return null;
162
162
  let c=(0,gt.getServiceName)("",o),a=`${c}-bucket-policy`;return(0,$.tryGetPolicy)(
package/dist/main.mjs CHANGED
@@ -99,7 +99,7 @@ t.filePath===o.filePath)return e;let{bucketName:a}=e,{objectKey:i}=o;return awai
99
99
  r,a,{...t,objectKey:i}),{lastModified:c,bucketName:a}},"checkObjectUpdates"),ge=n(
100
100
  async(r,e,t,o,c)=>{let a=o??{};!Dt(a,c??{})&&await me(r,e,t,a)},"checkTagUpdates");var de=n(()=>{Kt(y,le())},"registerObjectProvider");import{isBucketService as F}from"@ez4/storage/library";import{attachEntry as $t,linkEntryDependency as Ut}from"@ez4/stateful";import{createPermission as Gt}from"@ez4/aws-function";import{createPolicyDocument as Ht}from"@ez4/aws-identity";var Se=n(r=>`arn:aws:s3:::${r}`,"buildBucketArn"),ke=n(r=>Ht([{resourceIds:[`arn\
101
101
  :aws:s3:::${r}-*`,`arn:aws:s3:::${r}-*/*`],permissions:["s3:ListBucket","s3:PutO\
102
- bject","s3:GetObject","s3:DeleteObject"]}]),"getPolicyDocument");var be=n((r,e,t)=>{let o=t.bucketName,c=re(o),a=$t(r,{type:m,entryId:c,dependencies:[],
102
+ bject","s3:GetObject","s3:DeleteObject","s3:HeadObject"]}]),"getPolicyDocument");var be=n((r,e,t)=>{let o=t.bucketName,c=re(o),a=$t(r,{type:m,entryId:c,dependencies:[],
103
103
  parameters:t});return e&&(Gt(r,a,e,{fromService:t.bucketName,getPermission:n(()=>({
104
104
  principal:"s3.amazonaws.com",sourceArn:Se(o)}),"getPermission")}),Ut(r,a.entryId,
105
105
  e.entryId)),a},"createBucket");import{getFunctionState as Yt,tryGetFunctionState as er}from"@ez4/aws-function";
@@ -130,18 +130,18 @@ functionName:I,description:i.description,context:e.context,debug:t.debug,tags:t.
130
130
  tags,variables:[t.variables,e.variables,u],architecture:k,runtime:S,release:a,timeout:Fe,
131
131
  memory:ze,handler:{sourceFile:i.file,functionName:i.name,module:i.module,dependencies:Ae},
132
132
  listener:s&&{functionName:s.name,sourceFile:s.file,module:s.module}}),o.setServiceState(
133
- b,A,t),b},"prepareEvents"),ve=n((r,e,t,o)=>{if(!e.events)return;if(!o.role||!Ee(
133
+ A,t,b),b},"prepareEvents"),ve=n((r,e,t,o)=>{if(!e.events)return;if(!o.role||!Ee(
134
134
  o.role))throw new P;let{handler:c}=e.events,a=z(e,c.name),i=Yt(o,a,t);tr(r,i.entryId,
135
135
  e.context)},"connectEvents");import{readdir as or}from"node:fs/promises";import{join as Ce,relative as Oe}from"node:path";
136
136
  import{createBucketObject as nr}from"@ez4/aws-bucket";var he=n(async(r,e,t)=>{let o=process.cwd(),c=Ce(o,t),a=await or(c,{withFileTypes:!0,
137
137
  recursive:!0});for(let i of a){if(!i.isFile())continue;let s=Ce(i.parentPath,i.name);
138
138
  nr(r,e,{objectKey:Oe(c,s),filePath:Oe(o,s)})}},"prepareLocalContent");var je=n((r,e,t)=>{let o=oe(r,e.name,t),c=o.entryId;return{module:"Client",from:"\
139
139
  @ez4/aws-bucket/client",constructor:`@{EZ4_MODULE_IMPORT}.make('${o.parameters.bucketName}\
140
- ')`,connectionIds:[c],dependencyIds:[c]}},"prepareLinkedClient");var Le=n(r=>{let{service:e,options:t,context:o}=r;return F(e)?je(o,e,t):null},"p\
140
+ ')`,dependencyIds:[c],connectionIds:[c]}},"prepareLinkedClient");var Le=n(r=>{let{service:e,options:t,context:o}=r;return F(e)?je(o,e,t):null},"p\
141
141
  repareLinkedServices"),Ne=n(async r=>{let{state:e,service:t,options:o,context:c}=r;
142
142
  if(!F(t))return!1;let{localPath:a,autoExpireDays:i,events:s,cors:u}=t,S=await Be(
143
143
  t,o),k=Re(e,t,o,c),w=be(e,k,{eventsPath:s?.path,tags:o.tags,bucketName:S,autoExpireDays:i,
144
- localPath:a,cors:u});return c.setServiceState(w,t,o),a&&await he(e,w,a),!0},"pre\
144
+ localPath:a,cors:u});return c.setServiceState(t,o,w),a&&await he(e,w,a),!0},"pre\
145
145
  pareBucketServices"),Te=n(r=>{let{state:e,service:t,options:o,context:c}=r;F(t)&&
146
146
  ve(e,t,o,c)},"connectBucketServices");import{ServiceType as cr}from"@ez4/storage/library";import{createPolicy as ar,tryGetPolicy as ir}from"@ez4/aws-identity";
147
147
  import{getServiceName as sr}from"@ez4/project/library";var De=n(r=>{let{state:e,serviceType:t,options:o}=r;if(t!==cr)return null;let c=sr(
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.40.0",
4
+ "version": "0.41.1",
5
5
  "author": "Silas B.",
6
6
  "license": "MIT",
7
7
  "type": "module",
@@ -53,15 +53,15 @@
53
53
  "dependencies": {
54
54
  "@aws-sdk/client-s3": "^3.958.0",
55
55
  "@aws-sdk/s3-request-presigner": "^3.958.0",
56
- "@ez4/aws-common": "^0.40.0",
57
- "@ez4/aws-function": "^0.40.0",
58
- "@ez4/aws-identity": "^0.40.0",
59
- "@ez4/aws-logs": "^0.40.0",
60
- "@ez4/common": "^0.40.0",
61
- "@ez4/project": "^0.40.0",
62
- "@ez4/stateful": "^0.40.0",
63
- "@ez4/storage": "^0.40.0",
64
- "@ez4/utils": "^0.40.0",
56
+ "@ez4/aws-common": "^0.41.0",
57
+ "@ez4/aws-function": "^0.41.0",
58
+ "@ez4/aws-identity": "^0.41.0",
59
+ "@ez4/aws-logs": "^0.41.0",
60
+ "@ez4/common": "^0.41.0",
61
+ "@ez4/project": "^0.41.0",
62
+ "@ez4/stateful": "^0.41.0",
63
+ "@ez4/storage": "^0.41.1",
64
+ "@ez4/utils": "^0.41.0",
65
65
  "mime": "^3.0.0"
66
66
  }
67
67
  }