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