@ez4/aws-bucket 0.32.0 → 0.33.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/dist/main.cjs +44 -44
- package/dist/main.mjs +90 -90
- package/package.json +9 -9
package/dist/main.cjs
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
"use strict";var
|
|
2
|
-
typeof e=="object"||typeof e=="function")for(let s of
|
|
3
|
-
R(t,s,{get:()=>e[s],enumerable:!(n=
|
|
4
|
-
enumerable:!0}):r,t)),
|
|
1
|
+
"use strict";var Et=Object.create;var R=Object.defineProperty;var Rt=Object.getOwnPropertyDescriptor;var Ct=Object.getOwnPropertyNames;var ht=Object.getPrototypeOf,jt=Object.prototype.hasOwnProperty;var o=(t,e)=>R(t,"name",{value:e,configurable:!0});var Ot=(t,e)=>{for(var r in e)R(t,r,{get:e[r],enumerable:!0})},te=(t,e,r,n)=>{if(e&&
|
|
2
|
+
typeof e=="object"||typeof e=="function")for(let s of Ct(e))!jt.call(t,s)&&s!==r&&
|
|
3
|
+
R(t,s,{get:()=>e[s],enumerable:!(n=Rt(e,s))||n.enumerable});return t};var Tt=(t,e,r)=>(r=t!=null?Et(ht(t)):{},te(e||!t||!t.__esModule?R(r,"default",{value:t,
|
|
4
|
+
enumerable:!0}):r,t)),Nt=t=>te(R({},"__esModule",{value:!0}),t);var or={};Ot(or,{BucketServiceName:()=>p,BucketServiceType:()=>l,ObjectServiceName:()=>b,
|
|
5
5
|
ObjectServiceType:()=>f,PolicyServiceName:()=>x,PolicyServiceType:()=>S,buildBucketArn:()=>W,
|
|
6
|
-
createBucket:()=>J,createBucketEventFunction:()=>Q,createBucketObject:()=>
|
|
7
|
-
createBucketStateId:()=>H,getBucketDomain:()=>
|
|
8
|
-
getBucketObjectPath:()=>h,getBucketState:()=>K,getPolicyDocument:()=>Z,isBucketDomain:()=>
|
|
9
|
-
isBucketObjectState:()=>
|
|
10
|
-
module.exports=
|
|
11
|
-
|
|
6
|
+
createBucket:()=>J,createBucketEventFunction:()=>Q,createBucketObject:()=>rr,createBucketPolicy:()=>er,
|
|
7
|
+
createBucketStateId:()=>H,getBucketDomain:()=>Yt,getBucketName:()=>C,getBucketObjectFiles:()=>Ut,
|
|
8
|
+
getBucketObjectPath:()=>h,getBucketState:()=>K,getPolicyDocument:()=>Z,isBucketDomain:()=>Xt,
|
|
9
|
+
isBucketObjectState:()=>Kt,isBucketPolicyState:()=>tr,isBucketState:()=>Pe,registerTriggers:()=>Qt});
|
|
10
|
+
module.exports=Nt(or);var yt=require("@ez4/aws-common"),ft=require("@ez4/aws-identity"),gt=require("@ez4/aws-function"),
|
|
11
|
+
dt=require("@ez4/storage/library"),St=require("@ez4/project/library");var ke=require("@ez4/aws-common");var ue=require("@ez4/aws-common"),$=require("@ez4/aws-function"),P=require("@ez4/utils");var m=require("@ez4/aws-common"),a=require("@aws-sdk/client-s3");var p="AWS:S3/Bucket",l="aws:s3.bucket";var y=new a.S3Client({}),re=o(async t=>{m.Logger.logFetch(p,t);try{return!(await y.
|
|
12
12
|
send(new a.ListObjectsV2Command({Bucket:t,MaxKeys:1}))).Contents?.length}catch(e){
|
|
13
13
|
if(!(e instanceof a.NoSuchBucket))throw e;return 0}},"isBucketEmpty"),oe=o(async t=>{
|
|
14
14
|
let{bucketName:e}=t;return m.Logger.logCreate(p,e),await y.send(new a.CreateBucketCommand(
|
|
@@ -32,20 +32,20 @@ eleteLifecycle"),me=o(async(t,e)=>{m.Logger.logUpdate(p,`${t} events`);let{funct
|
|
|
32
32
|
eventsPath:n,eventsType:s}=e;await y.send(new a.PutBucketNotificationConfigurationCommand(
|
|
33
33
|
{Bucket:t,SkipDestinationValidation:!0,NotificationConfiguration:{...r&&{LambdaFunctionConfigurations:[
|
|
34
34
|
{Id:"ID0",LambdaFunctionArn:r,Events:s,...n&&{Filter:{Key:{FilterRules:[{Name:"p\
|
|
35
|
-
refix",Value:n}]}}}}]}}}))},"updateEventNotifications");var le=o(()=>({equals:
|
|
36
|
-
getBucketHandler"),
|
|
37
|
-
"equalsResource"),
|
|
35
|
+
refix",Value:n}]}}}}]}}}))},"updateEventNotifications");var le=o(()=>({equals:Dt,create:ye,replace:Ft,preview:zt,update:At,delete:It}),"\
|
|
36
|
+
getBucketHandler"),Dt=o((t,e)=>!!t.result&&t.result.bucketName===e.result?.bucketName,
|
|
37
|
+
"equalsResource"),zt=o((t,e)=>{let r={...t.parameters,dependencies:t.dependencies},
|
|
38
38
|
n={...e.parameters,dependencies:e.dependencies},s=(0,P.deepCompare)(r,n);if(s.counts)
|
|
39
|
-
return{...s,name:r.bucketName}},"previewResource"),
|
|
39
|
+
return{...s,name:r.bucketName}},"previewResource"),Ft=o(async(t,e,r)=>{if(e.result)
|
|
40
40
|
throw new ue.ReplaceResourceError(p,t.entryId,e.entryId);return ye(t,r)},"replac\
|
|
41
41
|
eResource"),ye=o(async(t,e)=>{let r=t.parameters,n=(0,$.tryGetFunctionArn)(e),{bucketName:s}=await oe(
|
|
42
42
|
r);await fe(s,r,void 0),await ge(s,r,void 0),await de(s,r.tags,void 0);let c={eventsPath:r.
|
|
43
43
|
eventsPath,functionArn:n};return await Se(s,c,{}),{bucketName:s,functionArn:n}},
|
|
44
|
-
"createResource"),
|
|
44
|
+
"createResource"),At=o(async(t,e,r)=>{let{result:n,parameters:s}=t;if(!n)return;
|
|
45
45
|
let c=n.bucketName,i=(0,$.tryGetFunctionArn)(r),g=e.result?.functionArn;await fe(
|
|
46
46
|
c,s,e.parameters),await ge(c,s,e.parameters),await de(c,s.tags,e.parameters.tags);
|
|
47
47
|
let v={eventsPath:s.eventsPath,functionArn:i},E={eventsPath:e.parameters.eventsPath,
|
|
48
|
-
functionArn:g};return await Se(c,v,E),{...n,functionArn:i}},"updateResource"),
|
|
48
|
+
functionArn:g};return await Se(c,v,E),{...n,functionArn:i}},"updateResource"),It=o(
|
|
49
49
|
async t=>{let e=t.result;e&&await re(e.bucketName)&&await ne(e.bucketName)},"del\
|
|
50
50
|
eteResource"),fe=o(async(t,e,r)=>{if(!(e.cors&&r?.cors&&(0,P.deepEqual)(e.cors,r.
|
|
51
51
|
cors))){if(e.cors)return ce(t,e.cors);if(r?.cors)return ae(t)}},"checkCorsUpdate\
|
|
@@ -53,7 +53,7 @@ s"),ge=o(async(t,e,r)=>{if(e.autoExpireDays!==r?.autoExpireDays){if(e.autoExpire
|
|
|
53
53
|
return ie(t,e.autoExpireDays);if(r?.autoExpireDays)return pe(t)}},"checkLifecycl\
|
|
54
54
|
eUpdates"),de=o(async(t,e,r)=>{let n=e??{};!(0,P.deepEqual)(n,r??{})&&await se(t,
|
|
55
55
|
n)},"checkTagUpdates"),Se=o(async(t,e,r)=>{!(0,P.deepEqual)(e,r)&&await me(t,{eventsType:[
|
|
56
|
-
"s3:ObjectCreated:*","s3:ObjectRemoved:*"],...e})},"checkEventUpdates");var be=o(()=>{(0,ke.
|
|
56
|
+
"s3:ObjectCreated:*","s3:ObjectRemoved:*"],...e})},"checkEventUpdates");var be=o(()=>{(0,ke.tryRegisterProvider)(l,le())},"registerBucketProvider");var je=require("@ez4/aws-common");var Ee=require("@ez4/aws-common"),Re=require("@ez4/utils");var xe=require("@ez4/aws-common"),D=require("@ez4/utils");var N=class extends Error{static{o(this,"BucketNotFoundError")}constructor(e){super(
|
|
57
57
|
`Bucket service ${e} wasn't found.`)}};var H=o(t=>(0,D.hashData)(l,(0,D.toKebabCase)(t)),"createBucketStateId"),Pe=o(t=>t.
|
|
58
58
|
type===l,"isBucketState"),K=o((t,e,r)=>{let n=t.getServiceState(e,r);if(!Pe(n))throw new N(
|
|
59
59
|
e);return n},"getBucketState"),C=o((t,e,r)=>{let n=r.getDependencies(l)[0]?.result;
|
|
@@ -62,18 +62,18 @@ bucketName},"getBucketName");var k=require("@aws-sdk/client-s3"),U=require("@ez4
|
|
|
62
62
|
logCreate(x,e),await Be.send(new k.PutBucketPolicyCommand({Bucket:e,Policy:JSON.
|
|
63
63
|
stringify(r)})),{bucketName:e}},"createPolicy"),ve=o(async t=>{U.Logger.logDelete(
|
|
64
64
|
x,t);try{return await Be.send(new k.DeleteBucketPolicyCommand({Bucket:t})),!0}catch(e){
|
|
65
|
-
if(!(e instanceof k.NoSuchBucket))throw e;return!1}},"deletePolicy");var Ce=o(()=>({equals:
|
|
66
|
-
getPolicyHandler"),
|
|
67
|
-
"equalsResource"),
|
|
65
|
+
if(!(e instanceof k.NoSuchBucket))throw e;return!1}},"deletePolicy");var Ce=o(()=>({equals:Lt,create:he,replace:Mt,preview:qt,update:$t,delete:Ht}),"\
|
|
66
|
+
getPolicyHandler"),Lt=o((t,e)=>!!t.result&&t.result.bucketName===e.result?.bucketName,
|
|
67
|
+
"equalsResource"),qt=o((t,e)=>{let r={...t.parameters,dependencies:t.dependencies},
|
|
68
68
|
n={...e.parameters,dependencies:e.dependencies},s=(0,Re.deepCompare)(r,n,{exclude:{
|
|
69
|
-
getRole:!0}});if(s.counts)return{...s,name:r.fromService}},"previewResource")
|
|
69
|
+
getRole:!0}});if(s.counts)return{...s,name:r.fromService}},"previewResource"),Mt=o(
|
|
70
70
|
async(t,e,r)=>{if(e.result)throw new Ee.ReplaceResourceError(x,t.entryId,e.entryId);
|
|
71
71
|
return he(t,r)},"replaceResource"),he=o(async(t,e)=>{let r=t.parameters,n=C(x,"p\
|
|
72
72
|
olicy",e),s=await r.getRole(e);return await we({bucketName:n,role:s}),{bucketName:n}},
|
|
73
|
-
"createResource")
|
|
74
|
-
e&&await ve(e.bucketName)},"deleteResource");var Oe=o(()=>{(0,je.
|
|
75
|
-
Ne=
|
|
76
|
-
bjectPath"),
|
|
73
|
+
"createResource"),$t=o(async()=>{},"updateResource"),Ht=o(async t=>{let e=t.result;
|
|
74
|
+
e&&await ve(e.bucketName)},"deleteResource");var Oe=o(()=>{(0,je.tryRegisterProvider)(S,Ce())},"registerPolicyProvider");var Me=require("@ez4/aws-common");var Fe=require("node:fs/promises"),Ae=require("@ez4/aws-common"),z=require("@ez4/utils");var Te=require("node:fs"),u=require("@aws-sdk/client-s3"),B=require("@ez4/aws-common"),
|
|
75
|
+
Ne=Tt(require("mime"),1);var b="AWS:S3/Object",f="aws:s3.object";var Kt=o(t=>t.type===f,"isBucketObjectState"),h=o((t,e)=>`${t}/${e}`,"getBucketO\
|
|
76
|
+
bjectPath"),Ut=o(t=>t.getDependencies(f).map(({result:r,parameters:n})=>({lastModified:r?.
|
|
77
77
|
lastModified,objectKey:n.objectKey})),"getBucketObjectFiles");var G=new u.S3Client({}),_=o(async(t,e)=>{let{objectKey:r,filePath:n}=e;B.Logger.
|
|
78
78
|
logCreate(b,h(t,r));let s=Ne.default.getType(n);return await G.send(new u.PutObjectCommand(
|
|
79
79
|
{Bucket:t,Key:r,Body:(0,Te.createReadStream)(n),...s&&{ContentType:s}})),{objectKey:r}},
|
|
@@ -81,24 +81,24 @@ logCreate(b,h(t,r));let s=Ne.default.getType(n);return await G.send(new u.PutObj
|
|
|
81
81
|
{Bucket:t,Key:e,Tagging:{TagSet:(0,B.getTagList)({...r,ManagedBy:"EZ4"})}}))},"t\
|
|
82
82
|
agObject"),ze=o(async(t,e)=>{B.Logger.logDelete(b,h(t,e));try{return await G.send(
|
|
83
83
|
new u.DeleteObjectCommand({Bucket:t,Key:e})),!0}catch(r){if(!(r instanceof u.NoSuchBucket))
|
|
84
|
-
throw r;return!1}},"deleteObject");var Ie=o(()=>({equals:
|
|
85
|
-
getObjectHandler"),
|
|
86
|
-
"equalsResource"),
|
|
84
|
+
throw r;return!1}},"deleteObject");var Ie=o(()=>({equals:Gt,create:Le,replace:Vt,preview:_t,update:Wt,delete:Zt}),"\
|
|
85
|
+
getObjectHandler"),Gt=o((t,e)=>!!t.result&&t.result.lastModified===e.result?.lastModified,
|
|
86
|
+
"equalsResource"),_t=o(async(t,e)=>{let r=t.parameters,n=e.parameters,s=(0,z.deepCompare)(
|
|
87
87
|
{...r,dependencies:t.dependencies,lastModified:await V(r.filePath)},{...n,dependencies:e.
|
|
88
88
|
dependencies,lastModified:t.result?.lastModified});if(s.counts)return{...s,name:r.
|
|
89
|
-
objectKey}},"previewResource"),
|
|
89
|
+
objectKey}},"previewResource"),Vt=o(async(t,e,r)=>{if(e.result)throw new Ae.ReplaceResourceError(
|
|
90
90
|
b,t.entryId,e.entryId);return Le(t,r)},"replaceResource"),Le=o(async(t,e)=>{let r=t.
|
|
91
91
|
parameters,n=C(b,"bucket",e),s=await V(r.filePath),{objectKey:c}=await _(n,r);return await qe(
|
|
92
|
-
n,c,r.tags,t.parameters.tags),{lastModified:s,bucketName:n}},"createResource"),
|
|
92
|
+
n,c,r.tags,t.parameters.tags),{lastModified:s,bucketName:n}},"createResource"),Wt=o(
|
|
93
93
|
async(t,e)=>{let{result:r,parameters:n}=t;if(!r)return;let{objectKey:s,tags:c}=n,
|
|
94
|
-
i=
|
|
95
|
-
pdateResource"),
|
|
94
|
+
i=Jt(r,n,e.parameters);return await qe(r.bucketName,s,c,e.parameters.tags),i},"u\
|
|
95
|
+
pdateResource"),Zt=o(async t=>{let{result:e,parameters:r}=t;e&&await ze(e.bucketName,
|
|
96
96
|
r.objectKey)},"deleteResource"),V=o(async t=>{let{mtime:e}=await(0,Fe.stat)(t);return e.
|
|
97
|
-
getTime()},"getLastModifiedTime"),
|
|
97
|
+
getTime()},"getLastModifiedTime"),Jt=o(async(t,e,r)=>{let n=await V(e.filePath);
|
|
98
98
|
if(n<=t.lastModified&&e.filePath===r.filePath)return t;let{bucketName:s}=t,{objectKey:c}=r;
|
|
99
99
|
return await _(s,{...e,objectKey:c}),{lastModified:n,bucketName:s}},"checkObject\
|
|
100
100
|
Updates"),qe=o(async(t,e,r,n)=>{let s=r??{};!(0,z.deepEqual)(s,n??{})&&await De(
|
|
101
|
-
t,e,s)},"checkTagUpdates");var $e=o(()=>{(0,Me.
|
|
101
|
+
t,e,s)},"checkTagUpdates");var $e=o(()=>{(0,Me.tryRegisterProvider)(f,Ie())},"registerObjectProvider");var q=require("@ez4/storage/library");var F=require("@ez4/stateful"),Ke=require("@ez4/aws-function");var He=require("@ez4/aws-identity");var W=o(t=>`arn:aws:s3:::${t}`,"buildBucketArn"),Z=o(t=>(0,He.createPolicyDocument)(
|
|
102
102
|
[{resourceIds:[`arn:aws:s3:::${t}-*`,`arn:aws:s3:::${t}-*/*`],permissions:["s3:L\
|
|
103
103
|
istBucket","s3:PutObject","s3:GetObject","s3:DeleteObject"]}]),"getPolicyDocumen\
|
|
104
104
|
t");var J=o((t,e,r)=>{let n=r.bucketName,s=H(n),c=(0,F.attachEntry)(t,{type:l,entryId:s,
|
|
@@ -124,11 +124,11 @@ e)}`,"getFunctionName");var j=class extends Error{static{o(this,"RoleMissingErro
|
|
|
124
124
|
"Execution role for S3 is missing.")}};var O;(n=>(n.LogRetention=90,n.Timeout=90,n.Memory=192))(O||={});var tt=o((t,e,r,n)=>{if(!e.events)return;if(!n.role||!(0,Y.isRoleState)(n.role))
|
|
125
125
|
throw new j;let{handler:s,listener:c,logRetention:i,timeout:g,memory:v,variables:E}=e.
|
|
126
126
|
events,T=X(e,s.name),d=(0,L.tryGetFunctionState)(n,T,r);if(d)return d;let ee=Xe(
|
|
127
|
-
e,s.name,r),
|
|
128
|
-
O.LogRetention,groupName:ee,tags:r.tags});return d=Q(t,n.role,
|
|
127
|
+
e,s.name,r),wt=n.getDependencyFiles(s.file),vt=(0,et.createLogGroup)(t,{retention:i??
|
|
128
|
+
O.LogRetention,groupName:ee,tags:r.tags});return d=Q(t,n.role,vt,{functionName:ee,
|
|
129
129
|
description:s.description,timeout:g??O.Timeout,memory:v??O.Memory,context:e.context,
|
|
130
130
|
debug:r.debug,tags:r.tags,handler:{sourceFile:s.file,functionName:s.name,module:s.
|
|
131
|
-
module,dependencies:
|
|
131
|
+
module,dependencies:wt},listener:c&&{functionName:c.name,sourceFile:c.file,module:c.
|
|
132
132
|
module},variables:{...r.variables,...e.variables,...E}}),n.setServiceState(d,T,r),
|
|
133
133
|
d},"prepareEvents"),rt=o((t,e,r,n)=>{if(!e.events)return;if(!n.role||!(0,Y.isRoleState)(
|
|
134
134
|
n.role))throw new j;let{handler:s}=e.events,c=X(e,s.name),i=(0,L.getFunctionState)(
|
|
@@ -147,14 +147,14 @@ options:n,context:s}=t;(0,q.isBucketService)(r)&&rt(e,r,n,s)},"connectBucketServ
|
|
|
147
147
|
ices");var mt=require("@ez4/storage/library"),M=require("@ez4/aws-identity"),ut=require("@ez4/project/library");var lt=o(t=>{let{state:e,serviceType:r,options:n}=t;if(r!==mt.ServiceType)return null;
|
|
148
148
|
let s=(0,ut.getServiceName)("",n),c=`${s}-bucket-policy`;return(0,M.tryGetPolicy)(
|
|
149
149
|
e,c)??(0,M.createPolicy)(e,{tags:n.tags,policyDocument:Z(s),policyName:c})},"pre\
|
|
150
|
-
pareExecutionPolicy");var
|
|
151
|
-
(0,
|
|
152
|
-
|
|
153
|
-
"deploy:connectResources":pt}),be(),Oe(),$e()
|
|
154
|
-
let e=await(0,
|
|
155
|
-
in");var
|
|
150
|
+
pareExecutionPolicy");var Qt=o(()=>{(0,yt.registerTriggers)(),(0,ft.registerTriggers)(),(0,gt.registerTriggers)(),
|
|
151
|
+
(0,dt.registerTriggers)(),(0,St.tryCreateTrigger)("@ez4/aws-bucket",{"deploy:pre\
|
|
152
|
+
pareExecutionPolicy":lt,"deploy:prepareLinkedService":at,"deploy:prepareResource\
|
|
153
|
+
s":it,"deploy:connectResources":pt}),be(),Oe(),$e()},"registerTriggers");var kt=require("@ez4/aws-identity");var Xt=o(t=>/(.+)\.s3\.(.+)\.amazonaws\.com/i.test(t),"isBucketDomain"),Yt=o(async t=>{
|
|
154
|
+
let e=await(0,kt.getRegion)();return`${t}.s3.${e}.amazonaws.com`},"getBucketDoma\
|
|
155
|
+
in");var bt=require("@ez4/stateful"),xt=require("@ez4/utils");var er=o((t,e,r,n)=>{let s=(0,xt.hashData)(S,e.entryId,r.entryId);return(0,bt.attachEntry)(
|
|
156
156
|
t,{type:S,entryId:s,dependencies:[e.entryId,r.entryId],parameters:n})},"createBu\
|
|
157
|
-
cketPolicy");var
|
|
157
|
+
cketPolicy");var tr=o(t=>t.type===S,"isBucketPolicyState");var Pt=require("@ez4/stateful"),Bt=require("@ez4/utils");var rr=o((t,e,r)=>{let n=r.objectKey,s=(0,Bt.hashData)(f,e.entryId,n);return(0,Pt.attachEntry)(
|
|
158
158
|
t,{type:f,entryId:s,dependencies:[e.entryId],parameters:r})},"createBucketObject");0&&(module.exports={BucketServiceName,BucketServiceType,ObjectServiceName,ObjectServiceType,
|
|
159
159
|
PolicyServiceName,PolicyServiceType,buildBucketArn,createBucket,createBucketEventFunction,
|
|
160
160
|
createBucketObject,createBucketPolicy,createBucketStateId,getBucketDomain,getBucketName,
|
package/dist/main.mjs
CHANGED
|
@@ -1,43 +1,43 @@
|
|
|
1
|
-
var
|
|
2
|
-
import{registerTriggers as
|
|
3
|
-
import{
|
|
4
|
-
import{deepCompare as
|
|
5
|
-
ListObjectsV2Command as
|
|
6
|
-
PutBucketCorsCommand as
|
|
7
|
-
DeleteBucketLifecycleCommand as
|
|
8
|
-
ExpirationStatus as
|
|
1
|
+
var Fe=Object.defineProperty;var o=(t,e)=>Fe(t,"name",{value:e,configurable:!0});import{registerTriggers as or}from"@ez4/aws-common";import{registerTriggers as nr}from"@ez4/aws-identity";
|
|
2
|
+
import{registerTriggers as sr}from"@ez4/aws-function";import{registerTriggers as cr}from"@ez4/storage/library";
|
|
3
|
+
import{tryCreateTrigger as ar}from"@ez4/project/library";import{tryRegisterProvider as tt}from"@ez4/aws-common";import{ReplaceResourceError as We}from"@ez4/aws-common";import{tryGetFunctionArn as _}from"@ez4/aws-function";
|
|
4
|
+
import{deepCompare as Ze,deepEqual as C}from"@ez4/utils";import{getTagList as Ae,Logger as p}from"@ez4/aws-common";import{S3Client as Ie,
|
|
5
|
+
ListObjectsV2Command as Le,CreateBucketCommand as qe,DeleteBucketCommand as Me,PutBucketTaggingCommand as $e,
|
|
6
|
+
PutBucketCorsCommand as He,DeleteBucketCorsCommand as Ke,PutBucketLifecycleConfigurationCommand as Ue,
|
|
7
|
+
DeleteBucketLifecycleCommand as Ge,PutBucketNotificationConfigurationCommand as _e,
|
|
8
|
+
ExpirationStatus as Ve,NoSuchBucket as w}from"@aws-sdk/client-s3";var i="AWS:S3/Bucket",y="aws:s3.bucket";var m=new Ie({}),I=o(async t=>{p.logFetch(i,t);try{return!(await m.send(new Le({
|
|
9
9
|
Bucket:t,MaxKeys:1}))).Contents?.length}catch(e){if(!(e instanceof w))throw e;return 0}},
|
|
10
10
|
"isBucketEmpty"),L=o(async t=>{let{bucketName:e}=t;return p.logCreate(i,e),await m.
|
|
11
|
-
send(new
|
|
12
|
-
i,t);try{return await m.send(new
|
|
13
|
-
throw e;return!1}},"deleteBucket"),M=o(async(t,e)=>{p.logTag(i,t),await m.send(new
|
|
14
|
-
{Bucket:t,Tagging:{TagSet:
|
|
15
|
-
p.logUpdate(i,`${t} CORS`),await m.send(new
|
|
11
|
+
send(new qe({Bucket:e})),{bucketName:e}},"createBucket"),q=o(async t=>{p.logDelete(
|
|
12
|
+
i,t);try{return await m.send(new Me({Bucket:t})),!0}catch(e){if(!(e instanceof w))
|
|
13
|
+
throw e;return!1}},"deleteBucket"),M=o(async(t,e)=>{p.logTag(i,t),await m.send(new $e(
|
|
14
|
+
{Bucket:t,Tagging:{TagSet:Ae({...e,ManagedBy:"EZ4"})}}))},"tagBucket"),$=o(async(t,e)=>{
|
|
15
|
+
p.logUpdate(i,`${t} CORS`),await m.send(new He({Bucket:t,CORSConfiguration:{CORSRules:[
|
|
16
16
|
{ID:"ID0",AllowedOrigins:e.allowOrigins,AllowedMethods:e.allowMethods,AllowedHeaders:e.
|
|
17
17
|
allowHeaders,ExposeHeaders:e.exposeHeaders,MaxAgeSeconds:e.maxAge}]}}))},"update\
|
|
18
18
|
CorsConfiguration"),H=o(async t=>{p.logDelete(i,`${t} CORS`);try{return await m.
|
|
19
|
-
send(new
|
|
19
|
+
send(new Ke({Bucket:t})),!0}catch(e){if(!(e instanceof w))throw e;return!1}},"de\
|
|
20
20
|
leteCorsConfiguration"),K=o(async(t,e)=>{p.logCreate(i,`${t} lifecycle`),await m.
|
|
21
|
-
send(new
|
|
21
|
+
send(new Ue({Bucket:t,LifecycleConfiguration:{Rules:[{ID:"ID0",Status:Ve.Enabled,
|
|
22
22
|
Filter:{Prefix:"*"},Expiration:{Days:e}}]}}))},"createLifecycle"),U=o(async t=>{
|
|
23
|
-
p.logDelete(i,`${t} lifecycle`);try{return await m.send(new
|
|
23
|
+
p.logDelete(i,`${t} lifecycle`);try{return await m.send(new Ge({Bucket:t})),!0}catch(e){
|
|
24
24
|
if(!(e instanceof w))throw e;return!1}},"deleteLifecycle"),G=o(async(t,e)=>{p.logUpdate(
|
|
25
|
-
i,`${t} events`);let{functionArn:r,eventsPath:n,eventsType:s}=e;await m.send(new
|
|
25
|
+
i,`${t} events`);let{functionArn:r,eventsPath:n,eventsType:s}=e;await m.send(new _e(
|
|
26
26
|
{Bucket:t,SkipDestinationValidation:!0,NotificationConfiguration:{...r&&{LambdaFunctionConfigurations:[
|
|
27
27
|
{Id:"ID0",LambdaFunctionArn:r,Events:s,...n&&{Filter:{Key:{FilterRules:[{Name:"p\
|
|
28
|
-
refix",Value:n}]}}}}]}}}))},"updateEventNotifications");var V=o(()=>({equals:
|
|
29
|
-
tBucketHandler"),
|
|
30
|
-
"equalsResource"),
|
|
31
|
-
n={...e.parameters,dependencies:e.dependencies},s=
|
|
32
|
-
name:r.bucketName}},"previewResource"),
|
|
28
|
+
refix",Value:n}]}}}}]}}}))},"updateEventNotifications");var V=o(()=>({equals:Je,create:W,replace:Xe,preview:Qe,update:Ye,delete:et}),"ge\
|
|
29
|
+
tBucketHandler"),Je=o((t,e)=>!!t.result&&t.result.bucketName===e.result?.bucketName,
|
|
30
|
+
"equalsResource"),Qe=o((t,e)=>{let r={...t.parameters,dependencies:t.dependencies},
|
|
31
|
+
n={...e.parameters,dependencies:e.dependencies},s=Ze(r,n);if(s.counts)return{...s,
|
|
32
|
+
name:r.bucketName}},"previewResource"),Xe=o(async(t,e,r)=>{if(e.result)throw new We(
|
|
33
33
|
i,t.entryId,e.entryId);return W(t,r)},"replaceResource"),W=o(async(t,e)=>{let r=t.
|
|
34
34
|
parameters,n=_(e),{bucketName:s}=await L(r);await Z(s,r,void 0),await J(s,r,void 0),
|
|
35
35
|
await Q(s,r.tags,void 0);let c={eventsPath:r.eventsPath,functionArn:n};return await X(
|
|
36
|
-
s,c,{}),{bucketName:s,functionArn:n}},"createResource"),
|
|
36
|
+
s,c,{}),{bucketName:s,functionArn:n}},"createResource"),Ye=o(async(t,e,r)=>{let{
|
|
37
37
|
result:n,parameters:s}=t;if(!n)return;let c=n.bucketName,a=_(r),u=e.result?.functionArn;
|
|
38
38
|
await Z(c,s,e.parameters),await J(c,s,e.parameters),await Q(c,s.tags,e.parameters.
|
|
39
39
|
tags);let k={eventsPath:s.eventsPath,functionArn:a},b={eventsPath:e.parameters.eventsPath,
|
|
40
|
-
functionArn:u};return await X(c,k,b),{...n,functionArn:a}},"updateResource"),
|
|
40
|
+
functionArn:u};return await X(c,k,b),{...n,functionArn:a}},"updateResource"),et=o(
|
|
41
41
|
async t=>{let e=t.result;e&&await I(e.bucketName)&&await q(e.bucketName)},"delet\
|
|
42
42
|
eResource"),Z=o(async(t,e,r)=>{if(!(e.cors&&r?.cors&&C(e.cors,r.cors))){if(e.cors)
|
|
43
43
|
return $(t,e.cors);if(r?.cors)return H(t)}},"checkCorsUpdates"),J=o(async(t,e,r)=>{
|
|
@@ -45,85 +45,85 @@ if(e.autoExpireDays!==r?.autoExpireDays){if(e.autoExpireDays)return K(t,e.autoEx
|
|
|
45
45
|
if(r?.autoExpireDays)return U(t)}},"checkLifecycleUpdates"),Q=o(async(t,e,r)=>{let n=e??
|
|
46
46
|
{};!C(n,r??{})&&await M(t,n)},"checkTagUpdates"),X=o(async(t,e,r)=>{!C(e,r)&&await G(
|
|
47
47
|
t,{eventsType:["s3:ObjectCreated:*","s3:ObjectRemoved:*"],...e})},"checkEventUpd\
|
|
48
|
-
ates");var Y=o(()=>{
|
|
49
|
-
toKebabCase as
|
|
50
|
-
`Bucket service ${e} wasn't found.`)}};var ee=o(t=>
|
|
51
|
-
te=o((t,e,r)=>{let n=t.getServiceState(e,r);if(!
|
|
48
|
+
ates");var Y=o(()=>{tt(y,V())},"registerBucketProvider");import{tryRegisterProvider as St}from"@ez4/aws-common";import{ReplaceResourceError as mt}from"@ez4/aws-common";import{deepCompare as ut}from"@ez4/utils";import{IncompleteResourceError as rt}from"@ez4/aws-common";import{hashData as ot,
|
|
49
|
+
toKebabCase as nt}from"@ez4/utils";var v=class extends Error{static{o(this,"BucketNotFoundError")}constructor(e){super(
|
|
50
|
+
`Bucket service ${e} wasn't found.`)}};var ee=o(t=>ot(y,nt(t)),"createBucketStateId"),st=o(t=>t.type===y,"isBucketState"),
|
|
51
|
+
te=o((t,e,r)=>{let n=t.getServiceState(e,r);if(!st(n))throw new v(e);return n},"\
|
|
52
52
|
getBucketState"),E=o((t,e,r)=>{let n=r.getDependencies(y)[0]?.result;if(!n?.bucketName)
|
|
53
|
-
throw new
|
|
54
|
-
NoSuchBucket as
|
|
55
|
-
S,e),await oe.send(new
|
|
56
|
-
"createPolicy"),se=o(async t=>{re.logDelete(S,t);try{return await oe.send(new
|
|
57
|
-
{Bucket:t})),!0}catch(e){if(!(e instanceof
|
|
58
|
-
getPolicyHandler"),
|
|
59
|
-
"equalsResource"),
|
|
60
|
-
n={...e.parameters,dependencies:e.dependencies},s=
|
|
61
|
-
if(s.counts)return{...s,name:r.fromService}},"previewResource"),
|
|
62
|
-
if(e.result)throw new
|
|
53
|
+
throw new rt(t,e,"bucketName");return n.bucketName},"getBucketName");import{S3Client as ct,PutBucketPolicyCommand as at,DeleteBucketPolicyCommand as it,
|
|
54
|
+
NoSuchBucket as pt}from"@aws-sdk/client-s3";import{Logger as re}from"@ez4/aws-common";var S="AWS:S3/Policy",g="aws:s3.policy";var oe=new ct({}),ne=o(async t=>{let{bucketName:e,role:r}=t;return re.logCreate(
|
|
55
|
+
S,e),await oe.send(new at({Bucket:e,Policy:JSON.stringify(r)})),{bucketName:e}},
|
|
56
|
+
"createPolicy"),se=o(async t=>{re.logDelete(S,t);try{return await oe.send(new it(
|
|
57
|
+
{Bucket:t})),!0}catch(e){if(!(e instanceof pt))throw e;return!1}},"deletePolicy");var ce=o(()=>({equals:lt,create:ae,replace:ft,preview:yt,update:gt,delete:dt}),"\
|
|
58
|
+
getPolicyHandler"),lt=o((t,e)=>!!t.result&&t.result.bucketName===e.result?.bucketName,
|
|
59
|
+
"equalsResource"),yt=o((t,e)=>{let r={...t.parameters,dependencies:t.dependencies},
|
|
60
|
+
n={...e.parameters,dependencies:e.dependencies},s=ut(r,n,{exclude:{getRole:!0}});
|
|
61
|
+
if(s.counts)return{...s,name:r.fromService}},"previewResource"),ft=o(async(t,e,r)=>{
|
|
62
|
+
if(e.result)throw new mt(S,t.entryId,e.entryId);return ae(t,r)},"replaceResource"),
|
|
63
63
|
ae=o(async(t,e)=>{let r=t.parameters,n=E(S,"policy",e),s=await r.getRole(e);return await ne(
|
|
64
|
-
{bucketName:n,role:s}),{bucketName:n}},"createResource"),
|
|
65
|
-
eResource"),
|
|
66
|
-
urce");var ie=o(()=>{
|
|
67
|
-
import{deepCompare as
|
|
68
|
-
PutObjectTaggingCommand as
|
|
69
|
-
import{getTagList as
|
|
70
|
-
bjectPath"),
|
|
71
|
-
lastModified,objectKey:n.objectKey})),"getBucketObjectFiles");var j=new
|
|
72
|
-
t,r));let s=
|
|
64
|
+
{bucketName:n,role:s}),{bucketName:n}},"createResource"),gt=o(async()=>{},"updat\
|
|
65
|
+
eResource"),dt=o(async t=>{let e=t.result;e&&await se(e.bucketName)},"deleteReso\
|
|
66
|
+
urce");var ie=o(()=>{St(g,ce())},"registerPolicyProvider");import{tryRegisterProvider as At}from"@ez4/aws-common";import{stat as Rt}from"node:fs/promises";import{ReplaceResourceError as Ct}from"@ez4/aws-common";
|
|
67
|
+
import{deepCompare as ht,deepEqual as jt}from"@ez4/utils";import{createReadStream as kt}from"node:fs";import{S3Client as bt,PutObjectCommand as xt,
|
|
68
|
+
PutObjectTaggingCommand as Pt,DeleteObjectCommand as Bt,NoSuchBucket as wt}from"@aws-sdk/client-s3";
|
|
69
|
+
import{getTagList as vt,Logger as h}from"@ez4/aws-common";import Et from"mime";var d="AWS:S3/Object",f="aws:s3.object";var co=o(t=>t.type===f,"isBucketObjectState"),R=o((t,e)=>`${t}/${e}`,"getBucketO\
|
|
70
|
+
bjectPath"),ao=o(t=>t.getDependencies(f).map(({result:r,parameters:n})=>({lastModified:r?.
|
|
71
|
+
lastModified,objectKey:n.objectKey})),"getBucketObjectFiles");var j=new bt({}),O=o(async(t,e)=>{let{objectKey:r,filePath:n}=e;h.logCreate(d,R(
|
|
72
|
+
t,r));let s=Et.getType(n);return await j.send(new xt({Bucket:t,Key:r,Body:kt(n),
|
|
73
73
|
...s&&{ContentType:s}})),{objectKey:r}},"putObject"),pe=o(async(t,e,r)=>{h.logTag(
|
|
74
|
-
d,R(t,e)),await j.send(new
|
|
74
|
+
d,R(t,e)),await j.send(new Pt({Bucket:t,Key:e,Tagging:{TagSet:vt({...r,ManagedBy:"\
|
|
75
75
|
EZ4"})}}))},"tagObject"),me=o(async(t,e)=>{h.logDelete(d,R(t,e));try{return await j.
|
|
76
|
-
send(new
|
|
77
|
-
"deleteObject");var ue=o(()=>({equals:
|
|
78
|
-
getObjectHandler"),
|
|
79
|
-
"equalsResource"),
|
|
76
|
+
send(new Bt({Bucket:t,Key:e})),!0}catch(r){if(!(r instanceof wt))throw r;return!1}},
|
|
77
|
+
"deleteObject");var ue=o(()=>({equals:Ot,create:le,replace:Nt,preview:Tt,update:Dt,delete:zt}),"\
|
|
78
|
+
getObjectHandler"),Ot=o((t,e)=>!!t.result&&t.result.lastModified===e.result?.lastModified,
|
|
79
|
+
"equalsResource"),Tt=o(async(t,e)=>{let r=t.parameters,n=e.parameters,s=ht({...r,
|
|
80
80
|
dependencies:t.dependencies,lastModified:await T(r.filePath)},{...n,dependencies:e.
|
|
81
81
|
dependencies,lastModified:t.result?.lastModified});if(s.counts)return{...s,name:r.
|
|
82
|
-
objectKey}},"previewResource"),
|
|
82
|
+
objectKey}},"previewResource"),Nt=o(async(t,e,r)=>{if(e.result)throw new Ct(d,t.
|
|
83
83
|
entryId,e.entryId);return le(t,r)},"replaceResource"),le=o(async(t,e)=>{let r=t.
|
|
84
84
|
parameters,n=E(d,"bucket",e),s=await T(r.filePath),{objectKey:c}=await O(n,r);return await ye(
|
|
85
|
-
n,c,r.tags,t.parameters.tags),{lastModified:s,bucketName:n}},"createResource"),
|
|
85
|
+
n,c,r.tags,t.parameters.tags),{lastModified:s,bucketName:n}},"createResource"),Dt=o(
|
|
86
86
|
async(t,e)=>{let{result:r,parameters:n}=t;if(!r)return;let{objectKey:s,tags:c}=n,
|
|
87
|
-
a=
|
|
88
|
-
pdateResource"),
|
|
89
|
-
r.objectKey)},"deleteResource"),T=o(async t=>{let{mtime:e}=await
|
|
90
|
-
getTime()},"getLastModifiedTime"),
|
|
87
|
+
a=Ft(r,n,e.parameters);return await ye(r.bucketName,s,c,e.parameters.tags),a},"u\
|
|
88
|
+
pdateResource"),zt=o(async t=>{let{result:e,parameters:r}=t;e&&await me(e.bucketName,
|
|
89
|
+
r.objectKey)},"deleteResource"),T=o(async t=>{let{mtime:e}=await Rt(t);return e.
|
|
90
|
+
getTime()},"getLastModifiedTime"),Ft=o(async(t,e,r)=>{let n=await T(e.filePath);
|
|
91
91
|
if(n<=t.lastModified&&e.filePath===r.filePath)return t;let{bucketName:s}=t,{objectKey:c}=r;
|
|
92
92
|
return await O(s,{...e,objectKey:c}),{lastModified:n,bucketName:s}},"checkObject\
|
|
93
|
-
Updates"),ye=o(async(t,e,r,n)=>{let s=r??{};!
|
|
94
|
-
kTagUpdates");var fe=o(()=>{
|
|
93
|
+
Updates"),ye=o(async(t,e,r,n)=>{let s=r??{};!jt(s,n??{})&&await pe(t,e,s)},"chec\
|
|
94
|
+
kTagUpdates");var fe=o(()=>{At(f,ue())},"registerObjectProvider");import{isBucketService as F}from"@ez4/storage/library";import{attachEntry as Lt,linkEntryDependency as qt}from"@ez4/stateful";import{createPermission as Mt}from"@ez4/aws-function";import{createPolicyDocument as It}from"@ez4/aws-identity";var ge=o(t=>`arn:aws:s3:::${t}`,"buildBucketArn"),de=o(t=>It([{resourceIds:[`arn\
|
|
95
95
|
:aws:s3:::${t}-*`,`arn:aws:s3:::${t}-*/*`],permissions:["s3:ListBucket","s3:PutO\
|
|
96
|
-
bject","s3:GetObject","s3:DeleteObject"]}]),"getPolicyDocument");var Se=o((t,e,r)=>{let n=r.bucketName,s=ee(n),c=
|
|
97
|
-
parameters:r});return e&&(
|
|
98
|
-
principal:"s3.amazonaws.com",sourceArn:ge(n)}),"getPermission")}),
|
|
99
|
-
e.entryId)),c},"createBucket");import{getFunctionState as
|
|
100
|
-
import{linkServiceContext as
|
|
101
|
-
import{createLogGroup as
|
|
102
|
-
import{MappingServiceName as
|
|
103
|
-
|
|
104
|
-
s3",handler:r,listener:n,context:s,debug:c})},"bundleBucketEventFunction");var be=o((t,e,r,n)=>{let{handler:s}=n;return
|
|
96
|
+
bject","s3:GetObject","s3:DeleteObject"]}]),"getPolicyDocument");var Se=o((t,e,r)=>{let n=r.bucketName,s=ee(n),c=Lt(t,{type:y,entryId:s,dependencies:[],
|
|
97
|
+
parameters:r});return e&&(Mt(t,c,e,{fromService:r.bucketName,getPermission:o(()=>({
|
|
98
|
+
principal:"s3.amazonaws.com",sourceArn:ge(n)}),"getPermission")}),qt(t,c.entryId,
|
|
99
|
+
e.entryId)),c},"createBucket");import{getFunctionState as Vt,tryGetFunctionState as Wt}from"@ez4/aws-function";
|
|
100
|
+
import{linkServiceContext as Zt}from"@ez4/project/library";import{isRoleState as Be}from"@ez4/aws-identity";
|
|
101
|
+
import{createLogGroup as Jt}from"@ez4/aws-logs";import{createFunction as Gt}from"@ez4/aws-function";import{join as $t}from"node:path";import{getDefinitionsObject as Ht}from"@ez4/project/library";
|
|
102
|
+
import{MappingServiceName as Kt}from"@ez4/aws-function";import{getFunctionBundle as Ut}from"@ez4/aws-common";var ke=o(async(t,e)=>{let{handler:r,listener:n,context:s,debug:c}=t,a=Ht(e);return Ut(
|
|
103
|
+
Kt,{templateFile:$t(import.meta.dirname,"../lib/event.ts"),define:a,filePrefix:"\
|
|
104
|
+
s3",handler:r,listener:n,context:s,debug:c})},"bundleBucketEventFunction");var be=o((t,e,r,n)=>{let{handler:s}=n;return Gt(t,e,r,{handlerName:"s3EntryPoint",
|
|
105
105
|
sourceFile:s.sourceFile,functionName:n.functionName,description:n.description,variables:n.
|
|
106
106
|
variables,timeout:n.timeout,memory:n.memory,debug:n.debug,tags:n.tags,getFunctionFiles:o(
|
|
107
107
|
()=>[s.sourceFile,s.dependencies],"getFunctionFiles"),getFunctionBundle:o(c=>ke(
|
|
108
108
|
n,[...c.getDependencies(),...c.getConnections()]),"getFunctionBundle"),getFunctionHash:o(
|
|
109
|
-
()=>{},"getFunctionHash")})},"createBucketEventFunction");import{getServiceName as N}from"@ez4/project/library";import{getRandomName as
|
|
110
|
-
import{toKebabCase as D}from"@ez4/utils";var xe=o(async(t,e)=>{if(t.globalName)return N(t.globalName,e);let r=N(t,e),n=await
|
|
109
|
+
()=>{},"getFunctionHash")})},"createBucketEventFunction");import{getServiceName as N}from"@ez4/project/library";import{getRandomName as _t}from"@ez4/aws-common";
|
|
110
|
+
import{toKebabCase as D}from"@ez4/utils";var xe=o(async(t,e)=>{if(t.globalName)return N(t.globalName,e);let r=N(t,e),n=await _t(
|
|
111
111
|
16);return`${r.substring(0,46)}-${n}`},"getBucketName"),z=o((t,e)=>`${D(t.name)}\
|
|
112
112
|
-${D(e)}`,"getInternalName"),Pe=o((t,e,r)=>`${N(t,r)}-${D(e)}`,"getFunctionName");var x=class extends Error{static{o(this,"RoleMissingError")}constructor(){super(
|
|
113
113
|
"Execution role for S3 is missing.")}};var P;(n=>(n.LogRetention=90,n.Timeout=90,n.Memory=192))(P||={});var we=o((t,e,r,n)=>{if(!e.events)return;if(!n.role||!Be(n.role))throw new x;let{
|
|
114
114
|
handler:s,listener:c,logRetention:a,timeout:u,memory:k,variables:b}=e.events,B=z(
|
|
115
|
-
e,s.name),l=
|
|
116
|
-
s.file),
|
|
117
|
-
be(t,n.role,
|
|
115
|
+
e,s.name),l=Wt(n,B,r);if(l)return l;let A=Pe(e,s.name,r),De=n.getDependencyFiles(
|
|
116
|
+
s.file),ze=Jt(t,{retention:a??P.LogRetention,groupName:A,tags:r.tags});return l=
|
|
117
|
+
be(t,n.role,ze,{functionName:A,description:s.description,timeout:u??P.Timeout,memory:k??
|
|
118
118
|
P.Memory,context:e.context,debug:r.debug,tags:r.tags,handler:{sourceFile:s.file,
|
|
119
|
-
functionName:s.name,module:s.module,dependencies:
|
|
119
|
+
functionName:s.name,module:s.module,dependencies:De},listener:c&&{functionName:c.
|
|
120
120
|
name,sourceFile:c.file,module:c.module},variables:{...r.variables,...e.variables,
|
|
121
121
|
...b}}),n.setServiceState(l,B,r),l},"prepareEvents"),ve=o((t,e,r,n)=>{if(!e.events)
|
|
122
122
|
return;if(!n.role||!Be(n.role))throw new x;let{handler:s}=e.events,c=z(e,s.name),
|
|
123
|
-
a=
|
|
124
|
-
import{createBucketObject as
|
|
123
|
+
a=Vt(n,c,r);Zt(t,a.entryId,e.context)},"connectEvents");import{readdir as Qt}from"node:fs/promises";import{join as Ee,relative as Re}from"node:path";
|
|
124
|
+
import{createBucketObject as Xt}from"@ez4/aws-bucket";var Ce=o(async(t,e,r)=>{let n=process.cwd(),s=Ee(n,r),c=await Qt(s,{withFileTypes:!0,
|
|
125
125
|
recursive:!0});for(let a of c){if(!a.isFile())continue;let u=Ee(a.parentPath,a.name);
|
|
126
|
-
|
|
126
|
+
Xt(t,e,{objectKey:Re(s,u),filePath:Re(n,u)})}},"prepareLocalContent");var he=o((t,e,r)=>{let n=te(t,e.name,r),s=n.entryId;return{connectionIds:[s],dependencyIds:[
|
|
127
127
|
s],constructor:`make('${n.parameters.bucketName}')`,from:"@ez4/aws-bucket/client",
|
|
128
128
|
module:"Client"}},"prepareLinkedClient");var je=o(t=>{let{service:e,options:r,context:n}=t;return F(e)?he(n,e,r):null},"p\
|
|
129
129
|
repareLinkedServices"),Oe=o(async t=>{let{state:e,service:r,options:n,context:s}=t;
|
|
@@ -131,18 +131,18 @@ if(!F(r))return!1;let{localPath:c,autoExpireDays:a,events:u,cors:k}=r,b=await xe
|
|
|
131
131
|
r,n),B=we(e,r,n,s),l=Se(e,B,{eventsPath:u?.path,tags:n.tags,bucketName:b,autoExpireDays:a,
|
|
132
132
|
localPath:c,cors:k});return s.setServiceState(l,r,n),c&&await Ce(e,l,c),!0},"pre\
|
|
133
133
|
pareBucketServices"),Te=o(t=>{let{state:e,service:r,options:n,context:s}=t;F(r)&&
|
|
134
|
-
ve(e,r,n,s)},"connectBucketServices");import{ServiceType as
|
|
135
|
-
import{getServiceName as
|
|
136
|
-
"",n),c=`${s}-bucket-policy`;return
|
|
137
|
-
s),policyName:c})},"prepareExecutionPolicy");var
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
let e=await
|
|
141
|
-
dependencies:[e.entryId,r.entryId],parameters:n})},"createBucketPolicy");var
|
|
134
|
+
ve(e,r,n,s)},"connectBucketServices");import{ServiceType as Yt}from"@ez4/storage/library";import{createPolicy as er,tryGetPolicy as tr}from"@ez4/aws-identity";
|
|
135
|
+
import{getServiceName as rr}from"@ez4/project/library";var Ne=o(t=>{let{state:e,serviceType:r,options:n}=t;if(r!==Yt)return null;let s=rr(
|
|
136
|
+
"",n),c=`${s}-bucket-policy`;return tr(e,c)??er(e,{tags:n.tags,policyDocument:de(
|
|
137
|
+
s),policyName:c})},"prepareExecutionPolicy");var Zn=o(()=>{or(),nr(),sr(),cr(),ar("@ez4/aws-bucket",{"deploy:prepareExecution\
|
|
138
|
+
Policy":Ne,"deploy:prepareLinkedService":je,"deploy:prepareResources":Oe,"deploy\
|
|
139
|
+
:connectResources":Te}),Y(),ie(),fe()},"registerTriggers");import{getRegion as ir}from"@ez4/aws-identity";var Yn=o(t=>/(.+)\.s3\.(.+)\.amazonaws\.com/i.test(t),"isBucketDomain"),es=o(async t=>{
|
|
140
|
+
let e=await ir();return`${t}.s3.${e}.amazonaws.com`},"getBucketDomain");import{attachEntry as pr}from"@ez4/stateful";import{hashData as mr}from"@ez4/utils";var cs=o((t,e,r,n)=>{let s=mr(g,e.entryId,r.entryId);return pr(t,{type:g,entryId:s,
|
|
141
|
+
dependencies:[e.entryId,r.entryId],parameters:n})},"createBucketPolicy");var ms=o(t=>t.type===g,"isBucketPolicyState");import{attachEntry as ur}from"@ez4/stateful";import{hashData as lr}from"@ez4/utils";var ds=o((t,e,r)=>{let n=r.objectKey,s=lr(f,e.entryId,n);return ur(t,{type:f,entryId:s,
|
|
142
142
|
dependencies:[e.entryId],parameters:r})},"createBucketObject");export{i as BucketServiceName,y as BucketServiceType,d as ObjectServiceName,f as ObjectServiceType,
|
|
143
143
|
S as PolicyServiceName,g as PolicyServiceType,ge as buildBucketArn,Se as createBucket,
|
|
144
|
-
be as createBucketEventFunction,
|
|
145
|
-
ee as createBucketStateId,
|
|
146
|
-
R as getBucketObjectPath,te as getBucketState,de as getPolicyDocument,
|
|
147
|
-
|
|
144
|
+
be as createBucketEventFunction,ds as createBucketObject,cs as createBucketPolicy,
|
|
145
|
+
ee as createBucketStateId,es as getBucketDomain,E as getBucketName,ao as getBucketObjectFiles,
|
|
146
|
+
R as getBucketObjectPath,te as getBucketState,de as getPolicyDocument,Yn as isBucketDomain,
|
|
147
|
+
co as isBucketObjectState,ms as isBucketPolicyState,st as isBucketState,Zn as registerTriggers};
|
|
148
148
|
//# sourceMappingURL=main.mjs.map
|
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.
|
|
4
|
+
"version": "0.33.0",
|
|
5
5
|
"author": "Silas B.",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"type": "module",
|
|
@@ -53,14 +53,14 @@
|
|
|
53
53
|
"dependencies": {
|
|
54
54
|
"@aws-sdk/client-s3": "^3.913.0",
|
|
55
55
|
"@aws-sdk/s3-request-presigner": "^3.913.0",
|
|
56
|
-
"@ez4/aws-common": "^0.
|
|
57
|
-
"@ez4/aws-function": "^0.
|
|
58
|
-
"@ez4/aws-identity": "^0.
|
|
59
|
-
"@ez4/aws-logs": "^0.
|
|
60
|
-
"@ez4/project": "^0.
|
|
61
|
-
"@ez4/stateful": "^0.
|
|
62
|
-
"@ez4/storage": "^0.
|
|
63
|
-
"@ez4/utils": "^0.
|
|
56
|
+
"@ez4/aws-common": "^0.33.0",
|
|
57
|
+
"@ez4/aws-function": "^0.33.0",
|
|
58
|
+
"@ez4/aws-identity": "^0.33.0",
|
|
59
|
+
"@ez4/aws-logs": "^0.33.0",
|
|
60
|
+
"@ez4/project": "^0.33.0",
|
|
61
|
+
"@ez4/stateful": "^0.33.0",
|
|
62
|
+
"@ez4/storage": "^0.33.0",
|
|
63
|
+
"@ez4/utils": "^0.33.0",
|
|
64
64
|
"mime": "^3.0.0"
|
|
65
65
|
}
|
|
66
66
|
}
|