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