@ez4/aws-bucket 0.30.0 → 0.31.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/bucket/function/types.d.ts +2 -2
- package/dist/main.cjs +11 -10
- package/dist/main.mjs +14 -14
- package/dist/triggers/client.d.ts +2 -2
- package/dist/triggers/service.d.ts +1 -1
- package/lib/event.ts +11 -1
- package/package.json +9 -9
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { FunctionParameters } from '@ez4/aws-function';
|
|
2
|
-
import type {
|
|
2
|
+
import type { ContextSource } from '@ez4/project/library';
|
|
3
3
|
export type BucketEventFunction = {
|
|
4
4
|
functionName: string;
|
|
5
5
|
sourceFile: string;
|
|
@@ -11,6 +11,6 @@ export type BucketEventEntryPoint = BucketEventFunction & {
|
|
|
11
11
|
export type BucketEventFunctionParameters = Omit<FunctionParameters, 'getFunctionFiles' | 'getFunctionBundle' | 'getFunctionHash' | 'sourceFile' | 'handlerName'> & {
|
|
12
12
|
handler: BucketEventEntryPoint;
|
|
13
13
|
listener?: BucketEventFunction;
|
|
14
|
-
|
|
14
|
+
context?: Record<string, ContextSource>;
|
|
15
15
|
debug?: boolean;
|
|
16
16
|
};
|
package/dist/main.cjs
CHANGED
|
@@ -107,15 +107,16 @@ bucketName,getPermission:o(()=>({principal:"s3.amazonaws.com",sourceArn:W(n)}),"
|
|
|
107
107
|
getPermission")}),(0,F.linkEntryDependency)(t,c.entryId,e.entryId)),c},"createBu\
|
|
108
108
|
cket");var L=require("@ez4/aws-function"),Ye=require("@ez4/project/library"),Y=require("@ez4/aws-identity"),
|
|
109
109
|
et=require("@ez4/aws-logs");var Ze=require("@ez4/aws-function");var Ue=require("node:path"),Ge=require("@ez4/project/library"),_e=require("@ez4/aws-function"),
|
|
110
|
-
Ve=require("@ez4/aws-common");var We=o(async(t,e)=>{let{
|
|
110
|
+
Ve=require("@ez4/aws-common");var We=o(async(t,e)=>{let{handler:r,listener:n,context:s,debug:c}=t,i=(0,Ge.getDefinitionsObject)(
|
|
111
111
|
e);return(0,Ve.getFunctionBundle)(_e.MappingServiceName,{templateFile:(0,Ue.join)(
|
|
112
|
-
__dirname,"../lib/event.ts"),define:i,filePrefix:"s3",handler:
|
|
113
|
-
debug:
|
|
112
|
+
__dirname,"../lib/event.ts"),define:i,filePrefix:"s3",handler:r,listener:n,context:s,
|
|
113
|
+
debug:c})},"bundleBucketEventFunction");var Q=o((t,e,r,n)=>{let{handler:s}=n;return(0,Ze.createFunction)(t,e,r,{handlerName:"\
|
|
114
114
|
s3EntryPoint",sourceFile:s.sourceFile,functionName:n.functionName,description:n.
|
|
115
115
|
description,variables:n.variables,timeout:n.timeout,memory:n.memory,debug:n.debug,
|
|
116
116
|
tags:n.tags,getFunctionFiles:o(()=>[s.sourceFile,s.dependencies],"getFunctionFil\
|
|
117
|
-
es"),getFunctionBundle:o(c=>We(n,c.getConnections()),
|
|
118
|
-
()=>{},"getFunctionHash")})},"
|
|
117
|
+
es"),getFunctionBundle:o(c=>We(n,[...c.getDependencies(),...c.getConnections()]),
|
|
118
|
+
"getFunctionBundle"),getFunctionHash:o(()=>{},"getFunctionHash")})},"createBucke\
|
|
119
|
+
tEventFunction");var A=require("@ez4/project/library"),Je=require("@ez4/aws-common"),I=require("@ez4/utils");var Qe=o(async(t,e)=>{if(t.globalName)return(0,A.getServiceName)(t.globalName,e);
|
|
119
120
|
let r=(0,A.getServiceName)(t,e),n=await(0,Je.getRandomName)(16);return`${r.substring(
|
|
120
121
|
0,46)}-${n}`},"getBucketName"),X=o((t,e)=>`${(0,I.toKebabCase)(t.name)}-${(0,I.toKebabCase)(
|
|
121
122
|
e)}`,"getInternalName"),Xe=o((t,e,r)=>`${(0,A.getServiceName)(t,r)}-${(0,I.toKebabCase)(
|
|
@@ -125,18 +126,18 @@ throw new j;let{handler:s,listener:c,logRetention:i,timeout:g,memory:v,variables
|
|
|
125
126
|
events,T=X(e,s.name),d=(0,L.tryGetFunctionState)(n,T,r);if(d)return d;let ee=Xe(
|
|
126
127
|
e,s.name,r),vt=n.getDependencyFiles(s.file),Et=(0,et.createLogGroup)(t,{retention:i??
|
|
127
128
|
O.LogRetention,groupName:ee,tags:r.tags});return d=Q(t,n.role,Et,{functionName:ee,
|
|
128
|
-
description:s.description,timeout:g??O.Timeout,memory:v??O.Memory,
|
|
129
|
+
description:s.description,timeout:g??O.Timeout,memory:v??O.Memory,context:e.context,
|
|
129
130
|
debug:r.debug,tags:r.tags,handler:{sourceFile:s.file,functionName:s.name,module:s.
|
|
130
131
|
module,dependencies:vt},listener:c&&{functionName:c.name,sourceFile:c.file,module:c.
|
|
131
132
|
module},variables:{...r.variables,...e.variables,...E}}),n.setServiceState(d,T,r),
|
|
132
133
|
d},"prepareEvents"),rt=o((t,e,r,n)=>{if(!e.events)return;if(!n.role||!(0,Y.isRoleState)(
|
|
133
134
|
n.role))throw new j;let{handler:s}=e.events,c=X(e,s.name),i=(0,L.getFunctionState)(
|
|
134
|
-
n,c,r);(0,Ye.
|
|
135
|
+
n,c,r);(0,Ye.linkServiceContext)(t,i.entryId,e.context)},"connectEvents");var ot=require("node:fs/promises"),w=require("node:path"),nt=require("@ez4/aws-bucket");var st=o(async(t,e,r)=>{let n=process.cwd(),s=(0,w.join)(n,r),c=await(0,ot.readdir)(
|
|
135
136
|
s,{withFileTypes:!0,recursive:!0});for(let i of c){if(!i.isFile())continue;let g=(0,w.join)(
|
|
136
137
|
i.parentPath,i.name);(0,nt.createBucketObject)(t,e,{objectKey:(0,w.relative)(s,g),
|
|
137
|
-
filePath:(0,w.relative)(n,g)})}},"prepareLocalContent");var ct=o((t,e,r)=>{let n=K(t,e.name,r);return{
|
|
138
|
-
make('${n.parameters.bucketName}')`,from:"@ez4/aws-bucket/client",
|
|
139
|
-
"prepareLinkedClient");var at=o(t=>{let{service:e,options:r,context:n}=t;return(0,q.isBucketService)(e)?
|
|
138
|
+
filePath:(0,w.relative)(n,g)})}},"prepareLocalContent");var ct=o((t,e,r)=>{let n=K(t,e.name,r),s=n.entryId;return{connectionIds:[s],dependencyIds:[
|
|
139
|
+
s],constructor:`make('${n.parameters.bucketName}')`,from:"@ez4/aws-bucket/client",
|
|
140
|
+
module:"Client"}},"prepareLinkedClient");var at=o(t=>{let{service:e,options:r,context:n}=t;return(0,q.isBucketService)(e)?
|
|
140
141
|
ct(n,e,r):null},"prepareLinkedServices"),it=o(async t=>{let{state:e,service:r,options:n,
|
|
141
142
|
context:s}=t;if(!(0,q.isBucketService)(r))return!1;let{localPath:c,autoExpireDays:i,
|
|
142
143
|
events:g,cors:v}=r,E=await Qe(r,n),T=tt(e,r,n,s),d=J(e,T,{eventsPath:g?.path,tags:n.
|
package/dist/main.mjs
CHANGED
|
@@ -97,16 +97,16 @@ bject","s3:GetObject","s3:DeleteObject"]}]),"getPolicyDocument");var Se=o((t,e,r
|
|
|
97
97
|
parameters:r});return e&&($t(t,c,e,{fromService:r.bucketName,getPermission:o(()=>({
|
|
98
98
|
principal:"s3.amazonaws.com",sourceArn:ge(n)}),"getPermission")}),Mt(t,c.entryId,
|
|
99
99
|
e.entryId)),c},"createBucket");import{getFunctionState as Wt,tryGetFunctionState as Zt}from"@ez4/aws-function";
|
|
100
|
-
import{
|
|
100
|
+
import{linkServiceContext as Jt}from"@ez4/project/library";import{isRoleState as Be}from"@ez4/aws-identity";
|
|
101
101
|
import{createLogGroup as Qt}from"@ez4/aws-logs";import{createFunction as _t}from"@ez4/aws-function";import{join as Ht}from"node:path";import{getDefinitionsObject as Kt}from"@ez4/project/library";
|
|
102
|
-
import{MappingServiceName as Ut}from"@ez4/aws-function";import{getFunctionBundle as Gt}from"@ez4/aws-common";var ke=o(async(t,e)=>{let{
|
|
102
|
+
import{MappingServiceName as Ut}from"@ez4/aws-function";import{getFunctionBundle as Gt}from"@ez4/aws-common";var ke=o(async(t,e)=>{let{handler:r,listener:n,context:s,debug:c}=t,a=Kt(e);return Gt(
|
|
103
103
|
Ut,{templateFile:Ht(import.meta.dirname,"../lib/event.ts"),define:a,filePrefix:"\
|
|
104
|
-
s3",handler:
|
|
104
|
+
s3",handler:r,listener:n,context:s,debug:c})},"bundleBucketEventFunction");var be=o((t,e,r,n)=>{let{handler:s}=n;return _t(t,e,r,{handlerName:"s3EntryPoint",
|
|
105
105
|
sourceFile:s.sourceFile,functionName:n.functionName,description:n.description,variables:n.
|
|
106
106
|
variables,timeout:n.timeout,memory:n.memory,debug:n.debug,tags:n.tags,getFunctionFiles:o(
|
|
107
107
|
()=>[s.sourceFile,s.dependencies],"getFunctionFiles"),getFunctionBundle:o(c=>ke(
|
|
108
|
-
n,c.getConnections()),"getFunctionBundle"),getFunctionHash:o(
|
|
109
|
-
|
|
108
|
+
n,[...c.getDependencies(),...c.getConnections()]),"getFunctionBundle"),getFunctionHash:o(
|
|
109
|
+
()=>{},"getFunctionHash")})},"createBucketEventFunction");import{getServiceName as N}from"@ez4/project/library";import{getRandomName as Vt}from"@ez4/aws-common";
|
|
110
110
|
import{toKebabCase as D}from"@ez4/utils";var xe=o(async(t,e)=>{if(t.globalName)return N(t.globalName,e);let r=N(t,e),n=await Vt(
|
|
111
111
|
16);return`${r.substring(0,46)}-${n}`},"getBucketName"),z=o((t,e)=>`${D(t.name)}\
|
|
112
112
|
-${D(e)}`,"getInternalName"),Pe=o((t,e,r)=>`${N(t,r)}-${D(e)}`,"getFunctionName");var x=class extends Error{static{o(this,"RoleMissingError")}constructor(){super(
|
|
@@ -115,17 +115,17 @@ handler:s,listener:c,logRetention:a,timeout:u,memory:k,variables:b}=e.events,B=z
|
|
|
115
115
|
e,s.name),l=Zt(n,B,r);if(l)return l;let A=Pe(e,s.name,r),ze=n.getDependencyFiles(
|
|
116
116
|
s.file),Fe=Qt(t,{retention:a??P.LogRetention,groupName:A,tags:r.tags});return l=
|
|
117
117
|
be(t,n.role,Fe,{functionName:A,description:s.description,timeout:u??P.Timeout,memory:k??
|
|
118
|
-
P.Memory,
|
|
119
|
-
name,module:s.module,dependencies:ze},listener:c&&{functionName:c.
|
|
120
|
-
file,module:c.module},variables:{...r.variables,...e.variables
|
|
121
|
-
l,B,r),l},"prepareEvents"),ve=o((t,e,r,n)=>{if(!e.events)
|
|
122
|
-
n.role))throw new x;let{handler:s}=e.events,c=z(e,s.name),
|
|
123
|
-
e.
|
|
118
|
+
P.Memory,context:e.context,debug:r.debug,tags:r.tags,handler:{sourceFile:s.file,
|
|
119
|
+
functionName:s.name,module:s.module,dependencies:ze},listener:c&&{functionName:c.
|
|
120
|
+
name,sourceFile:c.file,module:c.module},variables:{...r.variables,...e.variables,
|
|
121
|
+
...b}}),n.setServiceState(l,B,r),l},"prepareEvents"),ve=o((t,e,r,n)=>{if(!e.events)
|
|
122
|
+
return;if(!n.role||!Be(n.role))throw new x;let{handler:s}=e.events,c=z(e,s.name),
|
|
123
|
+
a=Wt(n,c,r);Jt(t,a.entryId,e.context)},"connectEvents");import{readdir as Xt}from"node:fs/promises";import{join as Ee,relative as Re}from"node:path";
|
|
124
124
|
import{createBucketObject as Yt}from"@ez4/aws-bucket";var Ce=o(async(t,e,r)=>{let n=process.cwd(),s=Ee(n,r),c=await Xt(s,{withFileTypes:!0,
|
|
125
125
|
recursive:!0});for(let a of c){if(!a.isFile())continue;let u=Ee(a.parentPath,a.name);
|
|
126
|
-
Yt(t,e,{objectKey:Re(s,u),filePath:Re(n,u)})}},"prepareLocalContent");var he=o((t,e,r)=>{let n=te(t,e.name,r);return{
|
|
127
|
-
make('${n.parameters.bucketName}')`,from:"@ez4/aws-bucket/client",
|
|
128
|
-
"prepareLinkedClient");var je=o(t=>{let{service:e,options:r,context:n}=t;return F(e)?he(n,e,r):null},"p\
|
|
126
|
+
Yt(t,e,{objectKey:Re(s,u),filePath:Re(n,u)})}},"prepareLocalContent");var he=o((t,e,r)=>{let n=te(t,e.name,r),s=n.entryId;return{connectionIds:[s],dependencyIds:[
|
|
127
|
+
s],constructor:`make('${n.parameters.bucketName}')`,from:"@ez4/aws-bucket/client",
|
|
128
|
+
module:"Client"}},"prepareLinkedClient");var je=o(t=>{let{service:e,options:r,context:n}=t;return F(e)?he(n,e,r):null},"p\
|
|
129
129
|
repareLinkedServices"),Oe=o(async t=>{let{state:e,service:r,options:n,context:s}=t;
|
|
130
130
|
if(!F(r))return!1;let{localPath:c,autoExpireDays:a,events:u,cors:k}=r,b=await xe(
|
|
131
131
|
r,n),B=we(e,r,n,s),l=Se(e,B,{eventsPath:u?.path,tags:n.tags,bucketName:b,autoExpireDays:a,
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { DeployOptions, EventContext,
|
|
1
|
+
import type { DeployOptions, EventContext, ContextSource } from '@ez4/project/library';
|
|
2
2
|
import type { BucketService } from '@ez4/storage/library';
|
|
3
|
-
export declare const prepareLinkedClient: (context: EventContext, service: BucketService, options: DeployOptions) =>
|
|
3
|
+
export declare const prepareLinkedClient: (context: EventContext, service: BucketService, options: DeployOptions) => ContextSource;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { ServiceEvent, ConnectResourceEvent, PrepareResourceEvent } from '@ez4/project/library';
|
|
2
|
-
export declare const prepareLinkedServices: (event: ServiceEvent) => import("@ez4/project/library").
|
|
2
|
+
export declare const prepareLinkedServices: (event: ServiceEvent) => import("@ez4/project/library").ContextSource | null;
|
|
3
3
|
export declare const prepareBucketServices: (event: PrepareResourceEvent) => Promise<boolean>;
|
|
4
4
|
export declare const connectBucketServices: (event: ConnectResourceEvent) => void;
|
package/lib/event.ts
CHANGED
|
@@ -36,8 +36,8 @@ export async function s3EntryPoint(event: S3Event, context: Context): Promise<vo
|
|
|
36
36
|
};
|
|
37
37
|
|
|
38
38
|
await onReady(currentRequest);
|
|
39
|
-
|
|
40
39
|
await handle(currentRequest, __EZ4_CONTEXT);
|
|
40
|
+
await onDone(currentRequest);
|
|
41
41
|
}
|
|
42
42
|
} catch (error) {
|
|
43
43
|
await onError(error, currentRequest ?? request);
|
|
@@ -78,6 +78,16 @@ const onReady = async (request: Bucket.Incoming) => {
|
|
|
78
78
|
);
|
|
79
79
|
};
|
|
80
80
|
|
|
81
|
+
const onDone = async (request: Bucket.Incoming) => {
|
|
82
|
+
return dispatch(
|
|
83
|
+
{
|
|
84
|
+
type: ServiceEventType.Done,
|
|
85
|
+
request
|
|
86
|
+
},
|
|
87
|
+
__EZ4_CONTEXT
|
|
88
|
+
);
|
|
89
|
+
};
|
|
90
|
+
|
|
81
91
|
const onError = async (error: unknown, request: Bucket.Request | Bucket.Incoming) => {
|
|
82
92
|
console.error(error);
|
|
83
93
|
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ez4/aws-bucket",
|
|
3
3
|
"description": "EZ4: Self-managed AWS S3 bucket provider",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.31.0",
|
|
5
5
|
"author": "Silas B.",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"type": "module",
|
|
@@ -53,14 +53,14 @@
|
|
|
53
53
|
"dependencies": {
|
|
54
54
|
"@aws-sdk/client-s3": "^3.913.0",
|
|
55
55
|
"@aws-sdk/s3-request-presigner": "^3.913.0",
|
|
56
|
-
"@ez4/aws-common": "^0.
|
|
57
|
-
"@ez4/aws-function": "^0.
|
|
58
|
-
"@ez4/aws-identity": "^0.
|
|
59
|
-
"@ez4/aws-logs": "^0.
|
|
60
|
-
"@ez4/project": "^0.
|
|
61
|
-
"@ez4/stateful": "^0.
|
|
62
|
-
"@ez4/storage": "^0.
|
|
63
|
-
"@ez4/utils": "^0.
|
|
56
|
+
"@ez4/aws-common": "^0.31.0",
|
|
57
|
+
"@ez4/aws-function": "^0.31.0",
|
|
58
|
+
"@ez4/aws-identity": "^0.31.0",
|
|
59
|
+
"@ez4/aws-logs": "^0.31.0",
|
|
60
|
+
"@ez4/project": "^0.31.0",
|
|
61
|
+
"@ez4/stateful": "^0.31.0",
|
|
62
|
+
"@ez4/storage": "^0.31.0",
|
|
63
|
+
"@ez4/utils": "^0.31.0",
|
|
64
64
|
"mime": "^3.0.0"
|
|
65
65
|
}
|
|
66
66
|
}
|