@ez4/aws-function 0.21.0 → 0.22.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 +143 -126
- package/dist/main.mjs +134 -116
- package/package.json +12 -12
package/dist/main.cjs
CHANGED
|
@@ -1,131 +1,148 @@
|
|
|
1
|
-
"use strict";var
|
|
2
|
-
typeof t=="object"||typeof t=="function")for(let
|
|
3
|
-
A(e,
|
|
4
|
-
enumerable:!0}):r,e)),
|
|
5
|
-
MappingServiceName:()=>
|
|
6
|
-
createFunction:()=>
|
|
7
|
-
getFunctionName:()=>
|
|
8
|
-
isMappingState:()=>
|
|
9
|
-
module.exports=
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
e
|
|
14
|
-
n=await(0,
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
()
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
t),
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
1
|
+
"use strict";var Qe=Object.create;var A=Object.defineProperty;var Je=Object.getOwnPropertyDescriptor;var Ke=Object.getOwnPropertyNames;var _e=Object.getPrototypeOf,Xe=Object.prototype.hasOwnProperty;var n=(e,t)=>A(e,"name",{value:t,configurable:!0});var Ye=(e,t)=>{for(var r in t)A(e,r,{get:t[r],enumerable:!0})},k=(e,t,r,o)=>{if(t&&
|
|
2
|
+
typeof t=="object"||typeof t=="function")for(let i of Ke(t))!Xe.call(e,i)&&i!==r&&
|
|
3
|
+
A(e,i,{get:()=>t[i],enumerable:!(o=Je(t,i))||o.enumerable});return e};var et=(e,t,r)=>(r=e!=null?Qe(_e(e)):{},k(t||!e||!e.__esModule?A(r,"default",{value:e,
|
|
4
|
+
enumerable:!0}):r,e)),tt=e=>k(A({},"__esModule",{value:!0}),e);var Ut={};Ye(Ut,{FunctionServiceName:()=>p,FunctionServiceType:()=>g,MappingService:()=>$,
|
|
5
|
+
MappingServiceName:()=>f,MappingServiceType:()=>x,PermissionServiceName:()=>P,PermissionServiceType:()=>S,
|
|
6
|
+
createFunction:()=>ht,createMapping:()=>Nt,createPermission:()=>It,getFunctionArn:()=>ft,
|
|
7
|
+
getFunctionName:()=>C,getFunctionState:()=>gt,getPermission:()=>Mt,isFunctionState:()=>W,
|
|
8
|
+
isMappingState:()=>Tt,registerTriggers:()=>Et,tryGetFunctionArn:()=>me,tryGetFunctionState:()=>lt});
|
|
9
|
+
module.exports=tt(Ut);var ze=require("@ez4/aws-common"),Ge=require("@ez4/aws-identity"),Ve=require("@ez4/aws-logs"),
|
|
10
|
+
He=require("@ez4/project/library");var pe=require("@ez4/aws-common");var F=require("@ez4/aws-common"),I=require("@ez4/utils"),j=require("@ez4/aws-logs"),
|
|
11
|
+
O=require("@ez4/aws-identity");var s=require("@aws-sdk/client-lambda"),c=require("@ez4/aws-common");var Q=require("@ez4/aws-common"),J=require("@ez4/utils");var p="AWS:Lambda/Function",g="aws:lambda.function";var rt=/[a-z][\w]+/i,nt=n(e=>rt.test(e),"isValidName"),L=n(e=>{for(let t in e)if(!nt(
|
|
12
|
+
t))throw new Q.InvalidParameterError(p,`${t} is an invalid variable name .`)},"a\
|
|
13
|
+
ssertVariables"),E=n(e=>{let t={};for(let r in e)t[r]=(0,J.hashData)(e[r]);return t},
|
|
14
|
+
"protectVariables");var K=et(require("adm-zip"),1),_=require("node:fs/promises");var X=n(async(e,t)=>{let r=new K.default,o=await(0,_.readFile)(e);return r.addFile(
|
|
15
|
+
t,o),r.toBufferPromise()},"getZipBuffer");var d=new s.LambdaClient({}),h={minDelay:15,maxWaitTime:1800,maxDelay:60,client:d},
|
|
16
|
+
Y=n(async(e,t)=>{c.Logger.logImport(p,e);try{let r=await d.send(new s.GetFunctionCommand(
|
|
17
|
+
{FunctionName:e,Qualifier:t})),o=r.Configuration.Version,i=r.Configuration.FunctionArn;
|
|
18
|
+
return{functionVersion:o,functionArn:i}}catch(r){if(!(r instanceof s.ResourceNotFoundException))
|
|
19
|
+
throw r;return}},"importFunction"),ee=n(async e=>{let{functionName:t,variables:r}=e;
|
|
20
|
+
c.Logger.logCreate(p,t),r&&L(r);let o=ie(e.handlerName),i=await oe(e.sourceFile),
|
|
21
|
+
a=await(0,c.waitCreation)(()=>d.send(new s.CreateFunctionCommand({FunctionName:e.
|
|
22
|
+
functionName,Description:e.description,MemorySize:e.memory,Timeout:e.timeout,Role:e.
|
|
23
|
+
roleArn,Handler:o,Runtime:"nodejs22.x",PackageType:"Zip",LoggingConfig:{LogGroup:e.
|
|
24
|
+
logGroup,ApplicationLogLevel:e.debug?s.ApplicationLogLevel.Debug:s.ApplicationLogLevel.
|
|
25
|
+
Warn,SystemLogLevel:s.SystemLogLevel.Warn,LogFormat:s.LogFormat.Json},Code:{ZipFile:i},
|
|
26
|
+
Environment:{Variables:r},Tags:{...e.tags,ManagedBy:"EZ4"}})));c.Logger.logWait(
|
|
27
|
+
p,t),await(0,s.waitUntilFunctionActive)(h,{FunctionName:t});let u=a.FunctionArn;
|
|
28
|
+
return e.publish?{functionVersion:await re(t),functionArn:u}:{functionArn:u}},"c\
|
|
29
|
+
reateFunction"),z=n(async(e,t)=>{c.Logger.logUpdate(p,`${e} source code`);let r=await oe(
|
|
30
|
+
t.sourceFile),o=await d.send(new s.UpdateFunctionCodeCommand({FunctionName:e,Publish:t.
|
|
31
|
+
publish,ZipFile:r}));c.Logger.logWait(p,e),await(0,s.waitUntilFunctionUpdated)(h,
|
|
32
|
+
{FunctionName:e});let i=o.FunctionArn;return t.publish?{functionVersion:await re(
|
|
33
|
+
e),functionArn:i}:{functionArn:i}},"updateSourceCode"),G=n(async(e,t)=>{let{handlerName:r,
|
|
34
|
+
variables:o}=t;c.Logger.logUpdate(p,`${e} configuration`),o&&L(o),await d.send(new s.UpdateFunctionConfigurationCommand(
|
|
33
35
|
{FunctionName:e,Description:t.description,MemorySize:t.memory,Timeout:t.timeout,
|
|
34
|
-
Role:t.roleArn,Runtime:"nodejs22.x",...r&&{Handler:
|
|
35
|
-
logGroup,ApplicationLogLevel:t.debug?
|
|
36
|
-
Warn,SystemLogLevel:
|
|
37
|
-
Variables:
|
|
38
|
-
|
|
39
|
-
send(new
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
logWait(
|
|
43
|
-
{FunctionName:e,Qualifier:r}),r},
|
|
44
|
-
e;
|
|
45
|
-
ManagedBy:"EZ4"}}))},
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
dependencies,sourceHash:
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
t
|
|
78
|
-
|
|
36
|
+
Role:t.roleArn,Runtime:"nodejs22.x",...r&&{Handler:ie(r)},LoggingConfig:{LogGroup:t.
|
|
37
|
+
logGroup,ApplicationLogLevel:t.debug?s.ApplicationLogLevel.Debug:s.ApplicationLogLevel.
|
|
38
|
+
Warn,SystemLogLevel:s.SystemLogLevel.Warn,LogFormat:s.LogFormat.Json},Environment:{
|
|
39
|
+
Variables:o}})),c.Logger.logWait(p,e),await(0,s.waitUntilFunctionUpdated)(h,{FunctionName:e})},
|
|
40
|
+
"updateConfiguration"),te=n(async e=>{c.Logger.logDelete(p,e),await(0,c.waitDeletion)(
|
|
41
|
+
async()=>{try{return await d.send(new s.DeleteFunctionCommand({FunctionName:e})),
|
|
42
|
+
!0}catch(t){if(!(t instanceof s.ResourceNotFoundException))throw t;return!1}})},
|
|
43
|
+
"deleteFunction"),re=n(async e=>{c.Logger.logPublish(p,e);let t=await d.send(new s.PublishVersionCommand(
|
|
44
|
+
{FunctionName:e}));c.Logger.logWait(p,e);let r=t.Version;return await(0,s.waitUntilPublishedVersionActive)(
|
|
45
|
+
h,{FunctionName:e,Qualifier:r}),r},"publishFunction"),V=n(async(e,t)=>{let r=(0,c.tryParseArn)(
|
|
46
|
+
e)?.resourceName??e;c.Logger.logTag(p,r),await d.send(new s.TagResourceCommand({
|
|
47
|
+
Resource:e,Tags:{...t,ManagedBy:"EZ4"}}))},"tagFunction"),ne=n(async(e,t)=>{let r=(0,c.tryParseArn)(
|
|
48
|
+
e)?.resourceName??e;c.Logger.logUntag(p,r),await d.send(new s.UntagResourceCommand(
|
|
49
|
+
{Resource:e,TagKeys:t}))},"untagFunction"),oe=n(e=>X(e,"main.mjs"),"getSourceZip\
|
|
50
|
+
File"),ie=n(e=>`main.${e}`,"getSourceHandlerName");var se=n(()=>({equals:ot,create:ae,replace:st,preview:it,update:at,delete:pt}),"\
|
|
51
|
+
getFunctionHandler"),ot=n((e,t)=>!!e.result&&e.result.functionArn===t.result?.functionArn,
|
|
52
|
+
"equalsResource"),it=n(async(e,t)=>{let r=e.parameters,o=t.parameters,i=(0,I.deepCompare)(
|
|
53
|
+
{...r,dependencies:e.dependencies,sourceHash:await(0,F.getBundleHash)(...r.getFunctionFiles()),
|
|
54
|
+
...r.variables&&{variables:E(r.variables)}},{...o,dependencies:t.dependencies,sourceHash:t.
|
|
55
|
+
result?.sourceHash});if(i.counts)return{...i,name:r.functionName}},"previewResou\
|
|
56
|
+
rce"),st=n(async(e,t,r)=>{if(t.result)throw new F.ReplaceResourceError(p,e.entryId,
|
|
57
|
+
t.entryId);return ae(e,r)},"replaceResource"),ae=n(async(e,t)=>{let r=e.parameters,
|
|
58
|
+
o=r.functionName,i=(0,O.getRoleArn)(p,o,t),a=(0,j.getLogGroupName)(p,o,t),[u,l]=await Promise.
|
|
59
|
+
all([(0,F.getBundleHash)(...r.getFunctionFiles()),r.getFunctionBundle(t)]),y=await Y(
|
|
60
|
+
o);if(y)return await G(o,{...r,logGroup:a,roleArn:i}),await z(o,{publish:!1,sourceFile:l}),
|
|
61
|
+
await V(y.functionArn,{...r.tags}),H(e),{functionArn:y.functionArn,sourceHash:u,
|
|
62
|
+
logGroup:a,roleArn:i};let D=await ee({...r,publish:!0,sourceFile:l,logGroup:a,roleArn:i});
|
|
63
|
+
return H(e),{functionArn:D.functionArn,sourceHash:u,logGroup:a,roleArn:i}},"crea\
|
|
64
|
+
teResource"),at=n(async(e,t,r)=>{let{parameters:o,result:i}=e;if(!i)return;let a=o.
|
|
65
|
+
functionName,u=(0,O.getRoleArn)(p,a,r),l=t.result?.roleArn??u,y=(0,j.getLogGroupName)(
|
|
66
|
+
p,a,r),D=t.result?.logGroup??y,$e={...o,roleArn:u,logGroup:y},Ze={...t.parameters,
|
|
67
|
+
roleArn:l,logGroup:D};await ct(a,$e,Ze),await mt(i.functionArn,o,t.parameters);let ke=await ut(
|
|
68
|
+
a,o,t.result,r);return H(e),{...i,...ke,logGroup:y,roleArn:u}},"updateResource"),
|
|
69
|
+
pt=n(async e=>{let{result:t,parameters:r}=e;t&&await te(r.functionName)},"delete\
|
|
70
|
+
Resource"),H=n(e=>{let{parameters:t}=e;return t.variables&&(t.variables=E(t.variables)),
|
|
71
|
+
e},"lockSensitiveData"),ct=n(async(e,t,r)=>{let o={...t,...t.variables&&{variables:E(
|
|
72
|
+
t.variables)}};!(0,I.deepEqual)(o,r,{exclude:{sourceFile:!0,functionName:!0,tags:!0}})&&
|
|
73
|
+
await G(e,t)},"checkConfigurationUpdates"),mt=n(async(e,t,r)=>{await(0,F.applyTagUpdates)(
|
|
74
|
+
t.tags,r.tags,o=>V(e,o),o=>ne(e,o))},"checkTagUpdates"),ut=n(async(e,t,r,o)=>{let i=await(0,F.getBundleHash)(
|
|
75
|
+
...t.getFunctionFiles()),a=r?.sourceHash;if(i===a&&!o.force)return r;let u=await t.
|
|
76
|
+
getFunctionBundle(o),{functionVersion:l}=await z(e,{publish:!r?.functionVersion,
|
|
77
|
+
sourceFile:u});return{sourceHash:i,...l&&{functionVersion:l}}},"checkSourceCodeU\
|
|
78
|
+
pdates");var ce=n(()=>{(0,pe.registerProvider)(g,se())},"registerFunctionProvider");var Se=require("@ez4/aws-common");var fe=require("@ez4/aws-common");var B=require("@ez4/aws-common");var M=class extends Error{static{n(this,"FunctionNotFoundError")}constructor(t){
|
|
79
|
+
super(`Function ${t} wasn't found.`)}};var W=n(e=>e.type===g,"isFunctionState"),lt=n((e,t,r)=>{try{let o=e.getServiceState(
|
|
80
|
+
t,r);if(W(o))return o}catch{}},"tryGetFunctionState"),gt=n((e,t,r)=>{let o=e.getServiceState(
|
|
81
|
+
t,r);if(!W(o))throw new M(t);return o},"getFunctionState"),C=n((e,t,r)=>{let o=r.
|
|
82
|
+
getDependencies(g).at(0)?.parameters;if(!o?.functionName)throw new B.IncompleteResourceError(
|
|
83
|
+
e,t,"functionName");return o.functionName},"getFunctionName"),me=n(e=>e.getDependencies(
|
|
84
|
+
g)[0]?.result?.functionArn,"tryGetFunctionArn"),ft=n((e,t,r)=>{let o=me(r);if(!o)
|
|
85
|
+
throw new B.IncompleteResourceError(e,t,"functionArn");return o},"getFunctionArn");var w=require("@aws-sdk/client-lambda"),q=require("@ez4/aws-common");var P="AWS:Lambda/Permission",S="aws:lambda.permission";var ue=new w.LambdaClient({}),le=n(async e=>{q.Logger.logCreate(P,e.functionName);
|
|
86
|
+
let t=e.statementId??`SID${Date.now()}`;return await ue.send(new w.AddPermissionCommand(
|
|
79
87
|
{StatementId:t,FunctionName:e.functionName,SourceArn:e.sourceArn,Principal:e.principal,
|
|
80
|
-
Action:e.action})),{statementId:t}},
|
|
81
|
-
return await
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
t)
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
{FunctionName:
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
e)}
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
...
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
(0,
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
e
|
|
127
|
-
|
|
128
|
-
|
|
88
|
+
Action:e.action})),{statementId:t}},"createPermission"),ge=n(async(e,t)=>{q.Logger.
|
|
89
|
+
logDelete(P,e);try{return await ue.send(new w.RemovePermissionCommand({FunctionName:e,
|
|
90
|
+
StatementId:t})),!0}catch(r){if(!(r instanceof w.ResourceNotFoundException))throw r;
|
|
91
|
+
return!1}},"deletePermission");var ye=n(()=>({equals:yt,create:de,replace:St,preview:dt,update:Ft,delete:wt}),"\
|
|
92
|
+
getPermissionHandler"),yt=n((e,t)=>!!e.result&&e.result.functionName===t.result?.
|
|
93
|
+
functionName,"equalsResource"),dt=n(async(e,t)=>{},"previewResource"),St=n(async(e,t,r)=>{
|
|
94
|
+
if(t.result)throw new fe.ReplaceResourceError(P,e.entryId,t.entryId);return de(e,
|
|
95
|
+
r)},"replaceResource"),de=n(async(e,t)=>{let r=e.parameters,o=C(P,"permission",t),
|
|
96
|
+
i=await r.getPermission(t);return{statementId:(await le({functionName:o,principal:i.
|
|
97
|
+
principal,sourceArn:i.sourceArn,action:"lambda:InvokeFunction"})).statementId,functionName:o}},
|
|
98
|
+
"createResource"),Ft=n(async()=>{},"updateResource"),wt=n(async e=>{let t=e.result;
|
|
99
|
+
t&&await ge(t.functionName,t.statementId)},"deleteResource");var Fe=n(()=>{(0,Se.registerProvider)(S,ye())},"registerPermissionProvider");var Ie=require("@ez4/aws-common");var be=require("@ez4/aws-common"),N=require("@ez4/utils");var m=require("@aws-sdk/client-lambda"),R=require("@ez4/aws-common"),we=require("@ez4/utils");var f="AWS:Lambda/Mapping",x="aws:lambda.mapping",$=(r=>(r.DynamoDB="dynamodb",r.
|
|
100
|
+
Queue="sqs",r))($||{});var b=new m.LambdaClient({}),xe=n(async(e,t)=>{R.Logger.logImport(f,e);let r=await b.
|
|
101
|
+
send(new m.ListEventSourceMappingsCommand({FunctionName:e,EventSourceArn:t})),[o]=r.
|
|
102
|
+
EventSourceMappings;return o?{eventId:o.UUID}:void 0},"importMapping"),Pe=n(async e=>{
|
|
103
|
+
let{sourceArn:t,functionName:r}=e;R.Logger.logCreate(f,r);let i=(await b.send(new m.CreateEventSourceMappingCommand(
|
|
104
|
+
{FunctionName:r,EventSourceArn:t,...Ae(e)}))).UUID;return await ve(i),{eventId:i}},
|
|
105
|
+
"createMapping"),Re=n(async(e,t)=>{let{functionName:r}=t;R.Logger.logUpdate(f,`${r}\
|
|
106
|
+
(${e})`),await b.send(new m.UpdateEventSourceMappingCommand({UUID:e,FunctionName:r,
|
|
107
|
+
...Ae(t)})),await ve(e)},"updateMapping"),Ce=n(async e=>{R.Logger.logDelete(f,e);
|
|
108
|
+
try{return await b.send(new m.DeleteEventSourceMappingCommand({UUID:e})),!0}catch(t){
|
|
109
|
+
if(!(t instanceof m.ResourceNotFoundException))throw t;return!1}},"deleteMapping"),
|
|
110
|
+
xt=n(async e=>(await b.send(new m.GetEventSourceMappingCommand({UUID:e}))).State,
|
|
111
|
+
"getMappingState"),ve=n(async e=>{let t=new Set(["Enabled","Disabled"]);await(0,we.waitFor)(
|
|
112
|
+
async()=>{let r=await xt(e);return t.has(r)})},"waitForReadyState"),Ae=n(e=>{let{
|
|
113
|
+
sourceArn:t,enabled:r,concurrency:o,batch:i}=e,{service:a}=(0,R.parseArn)(t);return{
|
|
114
|
+
Enabled:r,FunctionResponseTypes:[m.FunctionResponseType.ReportBatchItemFailures],
|
|
115
|
+
MaximumBatchingWindowInSeconds:i?.maxWait,BatchSize:i?.size,...a==="dynamodb"&&{
|
|
116
|
+
StartingPosition:m.EventSourcePosition.LATEST},...a==="sqs"&&{ScalingConfig:{MaximumConcurrency:o}}}},
|
|
117
|
+
"upsertMappingRequest");var Ee=n(()=>({equals:Pt,create:he,replace:Ct,preview:Rt,update:vt,delete:At}),"\
|
|
118
|
+
getMappingHandler"),Pt=n((e,t)=>!!e.result&&e.result.eventId===t.result?.eventId,
|
|
119
|
+
"equalsResource"),Rt=n(async(e,t)=>{let r={...e.parameters,dependencies:e.dependencies},
|
|
120
|
+
o={...t.parameters,dependencies:t.dependencies},i=(0,N.deepCompare)(r,o,{exclude:{
|
|
121
|
+
getSourceArn:!0}});if(i.counts)return{...i,name:r.fromService}},"previewResource"),
|
|
122
|
+
Ct=n(async(e,t,r)=>{if(t.result)throw new be.ReplaceResourceError(f,e.entryId,t.
|
|
123
|
+
entryId);return he(e,r)},"replaceResource"),he=n(async(e,t)=>{let r=e.parameters,
|
|
124
|
+
o=C(f,"mapping",t),i=await r.getSourceArn(t);return{eventId:(await xe(o,i)??await Pe(
|
|
125
|
+
{...e.parameters,functionName:o,sourceArn:i})).eventId,functionName:o,sourceArn:i}},
|
|
126
|
+
"createResource"),vt=n(async(e,t,r)=>{let o=e.result;if(!o)return;let i=o.sourceArn,
|
|
127
|
+
a=C(f,"mapping",r),u=t.result?.functionName??o.functionName,l={...e.parameters,functionName:a,
|
|
128
|
+
sourceArn:i},y={...t.parameters,functionName:u,sourceArn:i};return await bt(o.eventId,
|
|
129
|
+
l,y),{...o,functionName:a}},"updateResource"),At=n(async e=>{let t=e.result;t&&await Ce(
|
|
130
|
+
t.eventId)},"deleteResource"),bt=n(async(e,t,r)=>{!(0,N.deepEqual)(t,r,{exclude:{
|
|
131
|
+
getSourceArn:!0,fromService:!0}})&&await Re(e,t)},"checkGeneralUpdates");var Me=n(()=>{(0,Ie.registerProvider)(x,Ee())},"registerMappingProvider");var Ne=n(()=>[{account:"lambda.amazonaws.com"}],"prepareIdentityAccount");var T=require("@ez4/aws-identity"),Ue=require("@ez4/project/library");var v=require("@ez4/aws-identity");var Te=n(async e=>{let[t,r]=await Promise.all([(0,v.getRegion)(),(0,v.getAccountId)()]);
|
|
132
|
+
return(0,v.createPolicyDocument)([{permissions:["logs:CreateLogStream","logs:Put\
|
|
133
|
+
LogEvents"],resourceIds:[`arn:aws:logs:${t}:${r}:log-group:${e}-*:*`]}])},"getPo\
|
|
134
|
+
licyDocument");var De=n(async e=>{let{state:t,options:r}=e,o=(0,Ue.getServiceName)("",r),i=`${o}\
|
|
135
|
+
-lambda-policy`;return(0,T.tryGetPolicy)(t,i)??(0,T.createPolicy)(t,{tags:r.tags,
|
|
136
|
+
policyDocument:await Te(o),policyName:i})},"prepareExecutionPolicy");var Le=!1,Et=n(()=>{Le||((0,ze.registerTriggers)(),(0,Ge.registerTriggers)(),(0,Ve.registerTriggers)(),
|
|
137
|
+
(0,He.createTrigger)("@ez4/aws-function",{"deploy:prepareIdentityAccount":Ne,"de\
|
|
138
|
+
ploy:prepareExecutionPolicy":De}),ce(),Fe(),Me(),Le=!0)},"registerTriggers");var U=require("@ez4/utils"),je=require("@ez4/stateful");var ht=n((e,t,r,o)=>{let i=(0,U.toKebabCase)(o.functionName),a=(0,U.hashData)(g,
|
|
139
|
+
t.entryId,i),u=[t.entryId];return r&&u.push(r.entryId),(0,je.attachEntry)(e,{type:g,
|
|
140
|
+
entryId:a,dependencies:u,parameters:{...o,functionName:i}})},"createFunction");var Be=require("@ez4/stateful"),Z=require("@ez4/utils");var Oe=n(e=>e.type===S,"isPermissionState");var It=n((e,t,r,o)=>{let i=(0,Z.hashData)(S,t.entryId,r.entryId);return(0,Be.attachEntry)(
|
|
141
|
+
e,{type:S,entryId:i,dependencies:[t.entryId,r.entryId],parameters:o})},"createPe\
|
|
142
|
+
rmission"),Mt=n((e,t,r)=>{let o=(0,Z.hashData)(S,t.entryId,r.entryId),i=e[o];return i&&
|
|
143
|
+
Oe(i)?i:null},"getPermission");var We=require("@ez4/utils"),qe=require("@ez4/stateful");var Nt=n((e,t,r,o)=>{let i=(0,We.hashData)(x,t.entryId,r.entryId);return(0,qe.attachEntry)(
|
|
144
|
+
e,{type:x,entryId:i,dependencies:[t.entryId,r.entryId],parameters:o})},"createMa\
|
|
145
|
+
pping");var Tt=n(e=>e.type===x,"isMappingState");0&&(module.exports={FunctionServiceName,FunctionServiceType,MappingService,MappingServiceName,
|
|
129
146
|
MappingServiceType,PermissionServiceName,PermissionServiceType,createFunction,createMapping,
|
|
130
147
|
createPermission,getFunctionArn,getFunctionName,getFunctionState,getPermission,isFunctionState,
|
|
131
148
|
isMappingState,registerTriggers,tryGetFunctionArn,tryGetFunctionState});
|
package/dist/main.mjs
CHANGED
|
@@ -1,119 +1,137 @@
|
|
|
1
|
-
import{registerTriggers as
|
|
2
|
-
import{registerTriggers as
|
|
3
|
-
import{deepCompare as
|
|
4
|
-
import{getRoleArn as
|
|
5
|
-
UpdateFunctionCodeCommand as
|
|
6
|
-
TagResourceCommand as
|
|
7
|
-
waitUntilFunctionUpdated as
|
|
8
|
-
ApplicationLogLevel as
|
|
9
|
-
import{Logger as
|
|
10
|
-
|
|
11
|
-
return t};import
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
Configuration.Version,
|
|
15
|
-
if(!(r instanceof
|
|
16
|
-
|
|
17
|
-
()=>
|
|
18
|
-
memory,Timeout:e.timeout,Role:e.roleArn,Handler:
|
|
19
|
-
Zip",LoggingConfig:{LogGroup:e.logGroup,ApplicationLogLevel:e.debug?
|
|
20
|
-
SystemLogLevel:
|
|
21
|
-
Tags:{...e.tags,ManagedBy:"EZ4"}})));
|
|
22
|
-
let
|
|
23
|
-
{functionArn:
|
|
24
|
-
t.sourceFile),
|
|
25
|
-
|
|
26
|
-
{functionVersion:await
|
|
27
|
-
variables:
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
Environment:{Variables:
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
let r=
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
n
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
{...
|
|
47
|
-
{
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
roleArn:
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
"
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
1
|
+
var ve=Object.defineProperty;var n=(e,t)=>ve(e,"name",{value:t,configurable:!0});import{registerTriggers as Wt}from"@ez4/aws-common";import{registerTriggers as qt}from"@ez4/aws-identity";
|
|
2
|
+
import{registerTriggers as $t}from"@ez4/aws-logs";import{createTrigger as Zt}from"@ez4/project/library";import{registerProvider as rt}from"@ez4/aws-common";import{applyTagUpdates as qe,getBundleHash as N,ReplaceResourceError as $e}from"@ez4/aws-common";
|
|
3
|
+
import{deepCompare as Ze,deepEqual as ke}from"@ez4/utils";import{getLogGroupName as $}from"@ez4/aws-logs";
|
|
4
|
+
import{getRoleArn as Z}from"@ez4/aws-identity";import{LambdaClient as Ne,GetFunctionCommand as Te,CreateFunctionCommand as Ue,DeleteFunctionCommand as De,
|
|
5
|
+
UpdateFunctionCodeCommand as Le,UpdateFunctionConfigurationCommand as ze,PublishVersionCommand as Ge,
|
|
6
|
+
TagResourceCommand as Ve,UntagResourceCommand as He,waitUntilFunctionActive as je,
|
|
7
|
+
waitUntilFunctionUpdated as U,waitUntilPublishedVersionActive as Oe,ResourceNotFoundException as D,
|
|
8
|
+
ApplicationLogLevel as P,SystemLogLevel as L,LogFormat as z}from"@aws-sdk/client-lambda";
|
|
9
|
+
import{Logger as c,tryParseArn as G,waitCreation as Be,waitDeletion as We}from"@ez4/aws-common";import{InvalidParameterError as Ae}from"@ez4/aws-common";import{hashData as be}from"@ez4/utils";var a="AWS:Lambda/Function",l="aws:lambda.function";var Ee=/[a-z][\w]+/i,he=n(e=>Ee.test(e),"isValidName"),b=n(e=>{for(let t in e)if(!he(
|
|
10
|
+
t))throw new Ae(a,`${t} is an invalid variable name .`)},"assertVariables"),x=n(
|
|
11
|
+
e=>{let t={};for(let r in e)t[r]=be(e[r]);return t},"protectVariables");import Ie from"adm-zip";import{readFile as Me}from"node:fs/promises";var T=n(async(e,t)=>{let r=new Ie,o=await Me(e);return r.addFile(t,o),r.toBufferPromise()},
|
|
12
|
+
"getZipBuffer");var g=new Ne({}),R={minDelay:15,maxWaitTime:1800,maxDelay:60,client:g},V=n(async(e,t)=>{
|
|
13
|
+
c.logImport(a,e);try{let r=await g.send(new Te({FunctionName:e,Qualifier:t})),o=r.
|
|
14
|
+
Configuration.Version,i=r.Configuration.FunctionArn;return{functionVersion:o,functionArn:i}}catch(r){
|
|
15
|
+
if(!(r instanceof D))throw r;return}},"importFunction"),H=n(async e=>{let{functionName:t,
|
|
16
|
+
variables:r}=e;c.logCreate(a,t),r&&b(r);let o=q(e.handlerName),i=await W(e.sourceFile),
|
|
17
|
+
s=await Be(()=>g.send(new Ue({FunctionName:e.functionName,Description:e.description,
|
|
18
|
+
MemorySize:e.memory,Timeout:e.timeout,Role:e.roleArn,Handler:o,Runtime:"nodejs22\
|
|
19
|
+
.x",PackageType:"Zip",LoggingConfig:{LogGroup:e.logGroup,ApplicationLogLevel:e.debug?
|
|
20
|
+
P.Debug:P.Warn,SystemLogLevel:L.Warn,LogFormat:z.Json},Code:{ZipFile:i},Environment:{
|
|
21
|
+
Variables:r},Tags:{...e.tags,ManagedBy:"EZ4"}})));c.logWait(a,t),await je(R,{FunctionName:t});
|
|
22
|
+
let p=s.FunctionArn;return e.publish?{functionVersion:await O(t),functionArn:p}:
|
|
23
|
+
{functionArn:p}},"createFunction"),E=n(async(e,t)=>{c.logUpdate(a,`${e} source c\
|
|
24
|
+
ode`);let r=await W(t.sourceFile),o=await g.send(new Le({FunctionName:e,Publish:t.
|
|
25
|
+
publish,ZipFile:r}));c.logWait(a,e),await U(R,{FunctionName:e});let i=o.FunctionArn;
|
|
26
|
+
return t.publish?{functionVersion:await O(e),functionArn:i}:{functionArn:i}},"up\
|
|
27
|
+
dateSourceCode"),h=n(async(e,t)=>{let{handlerName:r,variables:o}=t;c.logUpdate(a,
|
|
28
|
+
`${e} configuration`),o&&b(o),await g.send(new ze({FunctionName:e,Description:t.
|
|
29
|
+
description,MemorySize:t.memory,Timeout:t.timeout,Role:t.roleArn,Runtime:"nodejs\
|
|
30
|
+
22.x",...r&&{Handler:q(r)},LoggingConfig:{LogGroup:t.logGroup,ApplicationLogLevel:t.
|
|
31
|
+
debug?P.Debug:P.Warn,SystemLogLevel:L.Warn,LogFormat:z.Json},Environment:{Variables:o}})),
|
|
32
|
+
c.logWait(a,e),await U(R,{FunctionName:e})},"updateConfiguration"),j=n(async e=>{
|
|
33
|
+
c.logDelete(a,e),await We(async()=>{try{return await g.send(new De({FunctionName:e})),
|
|
34
|
+
!0}catch(t){if(!(t instanceof D))throw t;return!1}})},"deleteFunction"),O=n(async e=>{
|
|
35
|
+
c.logPublish(a,e);let t=await g.send(new Ge({FunctionName:e}));c.logWait(a,e);let r=t.
|
|
36
|
+
Version;return await Oe(R,{FunctionName:e,Qualifier:r}),r},"publishFunction"),I=n(
|
|
37
|
+
async(e,t)=>{let r=G(e)?.resourceName??e;c.logTag(a,r),await g.send(new Ve({Resource:e,
|
|
38
|
+
Tags:{...t,ManagedBy:"EZ4"}}))},"tagFunction"),B=n(async(e,t)=>{let r=G(e)?.resourceName??
|
|
39
|
+
e;c.logUntag(a,r),await g.send(new He({Resource:e,TagKeys:t}))},"untagFunction"),
|
|
40
|
+
W=n(e=>T(e,"main.mjs"),"getSourceZipFile"),q=n(e=>`main.${e}`,"getSourceHandlerN\
|
|
41
|
+
ame");var k=n(()=>({equals:Qe,create:Q,replace:Ke,preview:Je,update:_e,delete:Xe}),"ge\
|
|
42
|
+
tFunctionHandler"),Qe=n((e,t)=>!!e.result&&e.result.functionArn===t.result?.functionArn,
|
|
43
|
+
"equalsResource"),Je=n(async(e,t)=>{let r=e.parameters,o=t.parameters,i=Ze({...r,
|
|
44
|
+
dependencies:e.dependencies,sourceHash:await N(...r.getFunctionFiles()),...r.variables&&
|
|
45
|
+
{variables:x(r.variables)}},{...o,dependencies:t.dependencies,sourceHash:t.result?.
|
|
46
|
+
sourceHash});if(i.counts)return{...i,name:r.functionName}},"previewResource"),Ke=n(
|
|
47
|
+
async(e,t,r)=>{if(t.result)throw new $e(a,e.entryId,t.entryId);return Q(e,r)},"r\
|
|
48
|
+
eplaceResource"),Q=n(async(e,t)=>{let r=e.parameters,o=r.functionName,i=Z(a,o,t),
|
|
49
|
+
s=$(a,o,t),[p,m]=await Promise.all([N(...r.getFunctionFiles()),r.getFunctionBundle(
|
|
50
|
+
t)]),u=await V(o);if(u)return await h(o,{...r,logGroup:s,roleArn:i}),await E(o,{
|
|
51
|
+
publish:!1,sourceFile:m}),await I(u.functionArn,{...r.tags}),M(e),{functionArn:u.
|
|
52
|
+
functionArn,sourceHash:p,logGroup:s,roleArn:i};let A=await H({...r,publish:!0,sourceFile:m,
|
|
53
|
+
logGroup:s,roleArn:i});return M(e),{functionArn:A.functionArn,sourceHash:p,logGroup:s,
|
|
54
|
+
roleArn:i}},"createResource"),_e=n(async(e,t,r)=>{let{parameters:o,result:i}=e;if(!i)
|
|
55
|
+
return;let s=o.functionName,p=Z(a,s,r),m=t.result?.roleArn??p,u=$(a,s,r),A=t.result?.
|
|
56
|
+
logGroup??u,Pe={...o,roleArn:p,logGroup:u},Re={...t.parameters,roleArn:m,logGroup:A};
|
|
57
|
+
await Ye(s,Pe,Re),await et(i.functionArn,o,t.parameters);let Ce=await tt(s,o,t.result,
|
|
58
|
+
r);return M(e),{...i,...Ce,logGroup:u,roleArn:p}},"updateResource"),Xe=n(async e=>{
|
|
59
|
+
let{result:t,parameters:r}=e;t&&await j(r.functionName)},"deleteResource"),M=n(e=>{
|
|
60
|
+
let{parameters:t}=e;return t.variables&&(t.variables=x(t.variables)),e},"lockSen\
|
|
61
|
+
sitiveData"),Ye=n(async(e,t,r)=>{let o={...t,...t.variables&&{variables:x(t.variables)}};
|
|
62
|
+
!ke(o,r,{exclude:{sourceFile:!0,functionName:!0,tags:!0}})&&await h(e,t)},"check\
|
|
63
|
+
ConfigurationUpdates"),et=n(async(e,t,r)=>{await qe(t.tags,r.tags,o=>I(e,o),o=>B(
|
|
64
|
+
e,o))},"checkTagUpdates"),tt=n(async(e,t,r,o)=>{let i=await N(...t.getFunctionFiles()),
|
|
65
|
+
s=r?.sourceHash;if(i===s&&!o.force)return r;let p=await t.getFunctionBundle(o),{
|
|
66
|
+
functionVersion:m}=await E(e,{publish:!r?.functionVersion,sourceFile:p});return{
|
|
67
|
+
sourceHash:i,...m&&{functionVersion:m}}},"checkSourceCodeUpdates");var J=n(()=>{rt(l,k())},"registerFunctionProvider");import{registerProvider as ft}from"@ez4/aws-common";import{ReplaceResourceError as pt}from"@ez4/aws-common";import{IncompleteResourceError as K}from"@ez4/aws-common";var C=class extends Error{static{n(this,"FunctionNotFoundError")}constructor(t){
|
|
68
|
+
super(`Function ${t} wasn't found.`)}};var _=n(e=>e.type===l,"isFunctionState"),zr=n((e,t,r)=>{try{let o=e.getServiceState(
|
|
69
|
+
t,r);if(_(o))return o}catch{}},"tryGetFunctionState"),Gr=n((e,t,r)=>{let o=e.getServiceState(
|
|
70
|
+
t,r);if(!_(o))throw new C(t);return o},"getFunctionState"),F=n((e,t,r)=>{let o=r.
|
|
71
|
+
getDependencies(l).at(0)?.parameters;if(!o?.functionName)throw new K(e,t,"functi\
|
|
72
|
+
onName");return o.functionName},"getFunctionName"),nt=n(e=>e.getDependencies(l)[0]?.
|
|
73
|
+
result?.functionArn,"tryGetFunctionArn"),Vr=n((e,t,r)=>{let o=nt(r);if(!o)throw new K(
|
|
74
|
+
e,t,"functionArn");return o},"getFunctionArn");import{LambdaClient as ot,AddPermissionCommand as it,RemovePermissionCommand as st,
|
|
75
|
+
ResourceNotFoundException as at}from"@aws-sdk/client-lambda";import{Logger as X}from"@ez4/aws-common";var S="AWS:Lambda/Permission",y="aws:lambda.permission";var Y=new ot({}),ee=n(async e=>{X.logCreate(S,e.functionName);let t=e.statementId??
|
|
76
|
+
`SID${Date.now()}`;return await Y.send(new it({StatementId:t,FunctionName:e.functionName,
|
|
68
77
|
SourceArn:e.sourceArn,Principal:e.principal,Action:e.action})),{statementId:t}},
|
|
69
|
-
|
|
70
|
-
StatementId:t})),!0}catch(r){if(!(r instanceof
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
t
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
new yt({
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
t);return
|
|
92
|
-
|
|
93
|
-
"
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
n
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
78
|
+
"createPermission"),te=n(async(e,t)=>{X.logDelete(S,e);try{return await Y.send(new st(
|
|
79
|
+
{FunctionName:e,StatementId:t})),!0}catch(r){if(!(r instanceof at))throw r;return!1}},
|
|
80
|
+
"deletePermission");var re=n(()=>({equals:ct,create:ne,replace:ut,preview:mt,update:lt,delete:gt}),"\
|
|
81
|
+
getPermissionHandler"),ct=n((e,t)=>!!e.result&&e.result.functionName===t.result?.
|
|
82
|
+
functionName,"equalsResource"),mt=n(async(e,t)=>{},"previewResource"),ut=n(async(e,t,r)=>{
|
|
83
|
+
if(t.result)throw new pt(S,e.entryId,t.entryId);return ne(e,r)},"replaceResource"),
|
|
84
|
+
ne=n(async(e,t)=>{let r=e.parameters,o=F(S,"permission",t),i=await r.getPermission(
|
|
85
|
+
t);return{statementId:(await ee({functionName:o,principal:i.principal,sourceArn:i.
|
|
86
|
+
sourceArn,action:"lambda:InvokeFunction"})).statementId,functionName:o}},"create\
|
|
87
|
+
Resource"),lt=n(async()=>{},"updateResource"),gt=n(async e=>{let t=e.result;t&&await te(
|
|
88
|
+
t.functionName,t.statementId)},"deleteResource");var oe=n(()=>{ft(y,re())},"registerPermissionProvider");import{registerProvider as zt}from"@ez4/aws-common";import{ReplaceResourceError as Et}from"@ez4/aws-common";import{deepCompare as ht,
|
|
89
|
+
deepEqual as It}from"@ez4/utils";import{LambdaClient as yt,GetEventSourceMappingCommand as dt,CreateEventSourceMappingCommand as St,
|
|
90
|
+
UpdateEventSourceMappingCommand as Ft,DeleteEventSourceMappingCommand as wt,ListEventSourceMappingsCommand as xt,
|
|
91
|
+
FunctionResponseType as Pt,EventSourcePosition as Rt,ResourceNotFoundException as Ct}from"@aws-sdk/client-lambda";
|
|
92
|
+
import{Logger as v,parseArn as vt}from"@ez4/aws-common";import{waitFor as At}from"@ez4/utils";var f="AWS:Lambda/Mapping",d="aws:lambda.mapping",ie=(r=>(r.DynamoDB="dynamodb",
|
|
93
|
+
r.Queue="sqs",r))(ie||{});var w=new yt({}),se=n(async(e,t)=>{v.logImport(f,e);let r=await w.send(new xt({FunctionName:e,
|
|
94
|
+
EventSourceArn:t})),[o]=r.EventSourceMappings;return o?{eventId:o.UUID}:void 0},
|
|
95
|
+
"importMapping"),ae=n(async e=>{let{sourceArn:t,functionName:r}=e;v.logCreate(f,
|
|
96
|
+
r);let i=(await w.send(new St({FunctionName:r,EventSourceArn:t,...ue(e)}))).UUID;
|
|
97
|
+
return await me(i),{eventId:i}},"createMapping"),pe=n(async(e,t)=>{let{functionName:r}=t;
|
|
98
|
+
v.logUpdate(f,`${r} (${e})`),await w.send(new Ft({UUID:e,FunctionName:r,...ue(t)})),
|
|
99
|
+
await me(e)},"updateMapping"),ce=n(async e=>{v.logDelete(f,e);try{return await w.
|
|
100
|
+
send(new wt({UUID:e})),!0}catch(t){if(!(t instanceof Ct))throw t;return!1}},"del\
|
|
101
|
+
eteMapping"),bt=n(async e=>(await w.send(new dt({UUID:e}))).State,"getMappingSta\
|
|
102
|
+
te"),me=n(async e=>{let t=new Set(["Enabled","Disabled"]);await At(async()=>{let r=await bt(
|
|
103
|
+
e);return t.has(r)})},"waitForReadyState"),ue=n(e=>{let{sourceArn:t,enabled:r,concurrency:o,
|
|
104
|
+
batch:i}=e,{service:s}=vt(t);return{Enabled:r,FunctionResponseTypes:[Pt.ReportBatchItemFailures],
|
|
105
|
+
MaximumBatchingWindowInSeconds:i?.maxWait,BatchSize:i?.size,...s==="dynamodb"&&{
|
|
106
|
+
StartingPosition:Rt.LATEST},...s==="sqs"&&{ScalingConfig:{MaximumConcurrency:o}}}},
|
|
107
|
+
"upsertMappingRequest");var le=n(()=>({equals:Mt,create:ge,replace:Tt,preview:Nt,update:Ut,delete:Dt}),"\
|
|
108
|
+
getMappingHandler"),Mt=n((e,t)=>!!e.result&&e.result.eventId===t.result?.eventId,
|
|
109
|
+
"equalsResource"),Nt=n(async(e,t)=>{let r={...e.parameters,dependencies:e.dependencies},
|
|
110
|
+
o={...t.parameters,dependencies:t.dependencies},i=ht(r,o,{exclude:{getSourceArn:!0}});
|
|
111
|
+
if(i.counts)return{...i,name:r.fromService}},"previewResource"),Tt=n(async(e,t,r)=>{
|
|
112
|
+
if(t.result)throw new Et(f,e.entryId,t.entryId);return ge(e,r)},"replaceResource"),
|
|
113
|
+
ge=n(async(e,t)=>{let r=e.parameters,o=F(f,"mapping",t),i=await r.getSourceArn(t);
|
|
114
|
+
return{eventId:(await se(o,i)??await ae({...e.parameters,functionName:o,sourceArn:i})).
|
|
115
|
+
eventId,functionName:o,sourceArn:i}},"createResource"),Ut=n(async(e,t,r)=>{let o=e.
|
|
116
|
+
result;if(!o)return;let i=o.sourceArn,s=F(f,"mapping",r),p=t.result?.functionName??
|
|
117
|
+
o.functionName,m={...e.parameters,functionName:s,sourceArn:i},u={...t.parameters,
|
|
118
|
+
functionName:p,sourceArn:i};return await Lt(o.eventId,m,u),{...o,functionName:s}},
|
|
119
|
+
"updateResource"),Dt=n(async e=>{let t=e.result;t&&await ce(t.eventId)},"deleteR\
|
|
120
|
+
esource"),Lt=n(async(e,t,r)=>{!It(t,r,{exclude:{getSourceArn:!0,fromService:!0}})&&
|
|
121
|
+
await pe(e,t)},"checkGeneralUpdates");var fe=n(()=>{zt(d,le())},"registerMappingProvider");var ye=n(()=>[{account:"lambda.amazonaws.com"}],"prepareIdentityAccount");import{createPolicy as jt,tryGetPolicy as Ot}from"@ez4/aws-identity";import{getServiceName as Bt}from"@ez4/project/library";import{getAccountId as Gt,getRegion as Vt,createPolicyDocument as Ht}from"@ez4/aws-identity";var de=n(async e=>{let[t,r]=await Promise.all([Vt(),Gt()]);return Ht([{permissions:[
|
|
107
122
|
"logs:CreateLogStream","logs:PutLogEvents"],resourceIds:[`arn:aws:logs:${t}:${r}\
|
|
108
|
-
:log-group:${e}-*:*`]}])};var
|
|
109
|
-
t,
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
123
|
+
:log-group:${e}-*:*`]}])},"getPolicyDocument");var Se=n(async e=>{let{state:t,options:r}=e,o=Bt("",r),i=`${o}-lambda-policy`;return Ot(
|
|
124
|
+
t,i)??jt(t,{tags:r.tags,policyDocument:await de(o),policyName:i})},"prepareExecu\
|
|
125
|
+
tionPolicy");var Fe=!1,Wn=n(()=>{Fe||(Wt(),qt(),$t(),Zt("@ez4/aws-function",{"deploy:prepareI\
|
|
126
|
+
dentityAccount":ye,"deploy:prepareExecutionPolicy":Se}),J(),oe(),fe(),Fe=!0)},"r\
|
|
127
|
+
egisterTriggers");import{toKebabCase as kt,hashData as Qt}from"@ez4/utils";import{attachEntry as Jt}from"@ez4/stateful";var Jn=n((e,t,r,o)=>{let i=kt(o.functionName),s=Qt(l,t.entryId,i),p=[t.entryId];
|
|
128
|
+
return r&&p.push(r.entryId),Jt(e,{type:l,entryId:s,dependencies:p,parameters:{...o,
|
|
129
|
+
functionName:i}})},"createFunction");import{attachEntry as Kt}from"@ez4/stateful";import{hashData as xe}from"@ez4/utils";var we=n(e=>e.type===y,"isPermissionState");var io=n((e,t,r,o)=>{let i=xe(y,t.entryId,r.entryId);return Kt(e,{type:y,entryId:i,
|
|
130
|
+
dependencies:[t.entryId,r.entryId],parameters:o})},"createPermission"),so=n((e,t,r)=>{
|
|
131
|
+
let o=xe(y,t.entryId,r.entryId),i=e[o];return i&&we(i)?i:null},"getPermission");import{hashData as _t}from"@ez4/utils";import{attachEntry as Xt}from"@ez4/stateful";var lo=n((e,t,r,o)=>{let i=_t(d,t.entryId,r.entryId);return Xt(e,{type:d,entryId:i,
|
|
132
|
+
dependencies:[t.entryId,r.entryId],parameters:o})},"createMapping");var So=n(e=>e.type===d,"isMappingState");export{a as FunctionServiceName,l as FunctionServiceType,ie as MappingService,f as MappingServiceName,
|
|
133
|
+
d as MappingServiceType,S as PermissionServiceName,y as PermissionServiceType,Jn as createFunction,
|
|
134
|
+
lo as createMapping,io as createPermission,Vr as getFunctionArn,F as getFunctionName,
|
|
135
|
+
Gr as getFunctionState,so as getPermission,_ as isFunctionState,So as isMappingState,
|
|
136
|
+
Wn as registerTriggers,nt as tryGetFunctionArn,zr as tryGetFunctionState};
|
|
119
137
|
//# sourceMappingURL=main.mjs.map
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ez4/aws-function",
|
|
3
3
|
"description": "EZ4: Self-managed AWS lambda function provider",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.22.0",
|
|
5
5
|
"author": "Silas B.",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"type": "module",
|
|
@@ -11,10 +11,10 @@
|
|
|
11
11
|
"repository": {
|
|
12
12
|
"type": "git",
|
|
13
13
|
"url": "git+https://github.com/sbalmt/ez4.git",
|
|
14
|
-
"directory": "
|
|
14
|
+
"directory": "providers/aws/aws-function"
|
|
15
15
|
},
|
|
16
16
|
"engines": {
|
|
17
|
-
"node": ">=22.
|
|
17
|
+
"node": ">=22.7"
|
|
18
18
|
},
|
|
19
19
|
"exports": {
|
|
20
20
|
".": {
|
|
@@ -29,21 +29,21 @@
|
|
|
29
29
|
"scripts": {
|
|
30
30
|
"clean": "rm -f *.tsbuildinfo && rm -rf dist/*",
|
|
31
31
|
"build": "tsc -p tsconfig.json && node tools/bundler.mjs",
|
|
32
|
-
"test": "npm run test:types && node --env-file
|
|
33
|
-
"test:only": "npm run test:types && node --env-file
|
|
32
|
+
"test": "npm run test:types && node --env-file ../../../local.env --test --import ../../../tools/tsnode.mjs test/*.spec.ts",
|
|
33
|
+
"test:only": "npm run test:types && node --env-file ../../../local.env --test-only --test --import ../../../tools/tsnode.mjs test/*.spec.ts",
|
|
34
34
|
"test:types": "npm run build && tsc -p tsconfig.test.json",
|
|
35
35
|
"local:publish": "npm run build && npm run clean:registry && npm publish --registry http://localhost:4873",
|
|
36
|
-
"clean:registry": "rm -rf
|
|
36
|
+
"clean:registry": "rm -rf ../../../.registry/@ez4/aws-function",
|
|
37
37
|
"live:publish": "npm run test && npm publish --access public"
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
40
|
"@aws-sdk/client-lambda": "^3.758.0",
|
|
41
|
-
"@ez4/aws-common": "^0.
|
|
42
|
-
"@ez4/aws-identity": "^0.
|
|
43
|
-
"@ez4/aws-logs": "^0.
|
|
44
|
-
"@ez4/project": "^0.
|
|
45
|
-
"@ez4/stateful": "^0.
|
|
46
|
-
"@ez4/utils": "^0.
|
|
41
|
+
"@ez4/aws-common": "^0.22.0",
|
|
42
|
+
"@ez4/aws-identity": "^0.22.0",
|
|
43
|
+
"@ez4/aws-logs": "^0.22.0",
|
|
44
|
+
"@ez4/project": "^0.22.0",
|
|
45
|
+
"@ez4/stateful": "^0.22.0",
|
|
46
|
+
"@ez4/utils": "^0.22.0",
|
|
47
47
|
"@types/adm-zip": "^0.5.5",
|
|
48
48
|
"adm-zip": "^0.5.14"
|
|
49
49
|
}
|