@ez4/aws-bucket 0.30.0 → 0.32.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.
@@ -1,5 +1,5 @@
1
1
  import type { FunctionParameters } from '@ez4/aws-function';
2
- import type { ExtraSource } from '@ez4/project/library';
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
- extras?: Record<string, ExtraSource>;
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{extras:r,debug:n,handler:s,listener:c}=t,i=(0,Ge.getDefinitionsObject)(
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:s,listener:c,extras:r,
113
- debug:n})},"bundleBucketEventFunction");var Q=o((t,e,r,n)=>{let{handler:s}=n;return(0,Ze.createFunction)(t,e,r,{handlerName:"\
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()),"getFunctionBundle"),getFunctionHash:o(
118
- ()=>{},"getFunctionHash")})},"createBucketEventFunction");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);
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,extras:e.extras,
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.linkServiceExtras)(t,i.entryId,e.extras)},"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
+ 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{entryIds:[n.entryId],constructor:`\
138
- make('${n.parameters.bucketName}')`,from:"@ez4/aws-bucket/client",module:"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{linkServiceExtras as Jt}from"@ez4/project/library";import{isRoleState as Be}from"@ez4/aws-identity";
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{extras:r,debug:n,handler:s,listener:c}=t,a=Kt(e);return Gt(
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:s,listener:c,extras:r,debug:n})},"bundleBucketEventFunction");var be=o((t,e,r,n)=>{let{handler:s}=n;return _t(t,e,r,{handlerName:"s3EntryPoint",
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(()=>{},"getFunction\
109
- Hash")})},"createBucketEventFunction");import{getServiceName as N}from"@ez4/project/library";import{getRandomName as Vt}from"@ez4/aws-common";
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,extras:e.extras,debug:r.debug,tags:r.tags,handler:{sourceFile:s.file,functionName:s.
119
- name,module:s.module,dependencies:ze},listener:c&&{functionName:c.name,sourceFile:c.
120
- file,module:c.module},variables:{...r.variables,...e.variables,...b}}),n.setServiceState(
121
- l,B,r),l},"prepareEvents"),ve=o((t,e,r,n)=>{if(!e.events)return;if(!n.role||!Be(
122
- n.role))throw new x;let{handler:s}=e.events,c=z(e,s.name),a=Wt(n,c,r);Jt(t,a.entryId,
123
- e.extras)},"connectEvents");import{readdir as Xt}from"node:fs/promises";import{join as Ee,relative as Re}from"node:path";
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{entryIds:[n.entryId],constructor:`\
127
- make('${n.parameters.bucketName}')`,from:"@ez4/aws-bucket/client",module:"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, ExtraSource } from '@ez4/project/library';
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) => ExtraSource;
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").ExtraSource | null;
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.30.0",
4
+ "version": "0.32.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.30.0",
57
- "@ez4/aws-function": "^0.30.0",
58
- "@ez4/aws-identity": "^0.30.0",
59
- "@ez4/aws-logs": "^0.30.0",
60
- "@ez4/project": "^0.30.0",
61
- "@ez4/stateful": "^0.30.0",
62
- "@ez4/storage": "^0.30.0",
63
- "@ez4/utils": "^0.30.0",
56
+ "@ez4/aws-common": "^0.32.0",
57
+ "@ez4/aws-function": "^0.32.0",
58
+ "@ez4/aws-identity": "^0.32.0",
59
+ "@ez4/aws-logs": "^0.32.0",
60
+ "@ez4/project": "^0.32.0",
61
+ "@ez4/stateful": "^0.32.0",
62
+ "@ez4/storage": "^0.32.0",
63
+ "@ez4/utils": "^0.32.0",
64
64
  "mime": "^3.0.0"
65
65
  }
66
66
  }