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