@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 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})},j=(e,t,r,o)=>{if(t&&
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)):{},j(t||!e||!e.__esModule?A(r,"default",{value:e,
4
- enumerable:!0}):r,e)),tt=e=>j(A({},"__esModule",{value:!0}),e);var Ut={};Ye(Ut,{FunctionServiceName:()=>p,FunctionServiceType:()=>g,MappingService:()=>Z,
5
- MappingServiceName:()=>f,MappingServiceType:()=>x,PermissionServiceName:()=>P,PermissionServiceType:()=>S,
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:()=>me,tryGetFunctionState:()=>lt});
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 pe=require("@ez4/aws-common");var F=require("@ez4/aws-common"),I=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 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(
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"),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),
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)(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(
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)(h,
32
- {FunctionName:e});let i=o.FunctionArn;return t.publish?{functionVersion:await re(
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:ie(r)},LoggingConfig:{LogGroup:t.
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)(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(
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
- h,{FunctionName:e,Qualifier:r}),r},"publishFunction"),V=n(async(e,t)=>{let r=(0,c.tryParseArn)(
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"),ne=n(async(e,t)=>{let r=(0,c.tryParseArn)(
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"),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}),"\
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,I.deepCompare)(
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:E(r.variables)}},{...o,dependencies:t.dependencies,sourceHash:t.
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 ae(e,r)},"replaceResource"),ae=n(async(e,t)=>{let r=e.parameters,
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)]),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,B.getRoleArn)(p,a,r),l=t.result?.roleArn??u,y=(0,O.getLogGroupName)(
66
- p,a,r),D=t.result?.logGroup??y,Ze={...o,roleArn:u,logGroup:y},ke={...t.parameters,
67
- roleArn:l,logGroup:D};await ct(a,Ze,ke),await mt(i.functionArn,o,t.parameters);let je=await ut(
68
- a,o,t.result,r);return H(e),{...i,...je,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}})&&
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=>ne(e,o))},"checkTagUpdates"),ut=n(async(e,t,r,o)=>{let i=await(0,F.getBundleHash)(
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 ce=n(()=>{(0,pe.registerProvider)(g,se())},"registerFunctionProvider");var Se=require("@ez4/aws-common");var fe=require("@ez4/aws-common");var W=require("@ez4/aws-common");var M=class extends Error{static{n(this,"FunctionNotFoundError")}constructor(t){
79
- super(`Function ${t} wasn't found.`)}};var q=n(e=>e.type===g,"isFunctionState"),lt=n((e,t,r)=>{try{let o=e.getServiceState(
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 M(t);return o},"getFunctionState"),C=n((e,t,r)=>{let o=r.
82
- getDependencies(g).at(0)?.parameters;if(!o?.functionName)throw new W.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 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 ue=new w.LambdaClient({}),le=n(async e=>{$.Logger.logCreate(P,e.functionName);
86
- let t=e.statementId??`SID${Date.now()}`;return await ue.send(new w.AddPermissionCommand(
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"),ge=n(async(e,t)=>{$.Logger.
89
- logDelete(P,e);try{return await ue.send(new w.RemovePermissionCommand({FunctionName:e,
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 ye=n(()=>({equals:yt,create:de,replace:St,preview:dt,update:Ft,delete:wt}),"\
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 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.
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 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",Z=(r=>(r.DynamoDB="dynamodb",r.
100
- Queue="sqs",r))(Z||{});var b=new m.LambdaClient({}),xe=n(async(e,t)=>{R.Logger.logImport(f,e);let r=await b.
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(f,r);let i=(await b.send(new m.CreateEventSourceMappingCommand(
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(f,`${r}\
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(f,e);
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(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],
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,N.deepCompare)(r,o,{exclude:{
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(f,e.entryId,t.
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(f,"mapping",t),i=await r.getSourceArn(t);return{eventId:(await xe(o,i)??await Pe(
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(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)()]);
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,T.tryGetPolicy)(t,i)??(0,T.createPolicy)(t,{tags:r.tags,
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}),ce(),Fe(),Me(),Le=!0)},"registerTriggers");var U=require("@ez4/utils"),Oe=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,Oe.attachEntry)(e,{type:g,
140
- entryId:a,dependencies:u,parameters:{...o,functionName:i}})},"createFunction");var We=require("@ez4/stateful"),k=require("@ez4/utils");var Be=n(e=>e.type===S,"isPermissionState");var It=n((e,t,r,o)=>{let i=(0,k.hashData)(S,t.entryId,r.entryId);return(0,We.attachEntry)(
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,k.hashData)(S,t.entryId,r.entryId),i=e[o];return i&&
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 ve=Object.defineProperty;var n=(e,t)=>ve(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 rt}from"@ez4/aws-common";import{applyTagUpdates as $e,getBundleHash as N,ReplaceResourceError as Ze}from"@ez4/aws-common";
3
- import{deepCompare as ke,deepEqual as je}from"@ez4/utils";import{getLogGroupName as Z}from"@ez4/aws-logs";
4
- import{getRoleArn as k}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 Oe,
7
- waitUntilFunctionUpdated as U,waitUntilPublishedVersionActive as Be,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 We,waitDeletion as qe}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.
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 We(()=>g.send(new Ue({FunctionName:e.functionName,Description:e.description,
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
- 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 Oe(R,{FunctionName:t});
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 Le({FunctionName:e,Publish:t.
25
- publish,ZipFile:r}));c.logWait(a,e),await U(R,{FunctionName:e});let i=o.FunctionArn;
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 ze({FunctionName:e,Description:t.
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?P.Debug:P.Warn,SystemLogLevel:L.Warn,LogFormat:z.Json},Environment:{Variables:o}})),
32
- c.logWait(a,e),await U(R,{FunctionName:e})},"updateConfiguration"),O=n(async e=>{
33
- c.logDelete(a,e),await qe(async()=>{try{return await g.send(new De({FunctionName:e})),
34
- !0}catch(t){if(!(t instanceof D))throw t;return!1}})},"deleteFunction"),B=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 Be(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"),W=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
- q=n(e=>T(e,"main.mjs"),"getSourceZipFile"),$=n(e=>`main.${e}`,"getSourceHandlerN\
41
- ame");var j=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=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: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 Ze(a,e.entryId,t.entryId);return Q(e,r)},"r\
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};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=k(a,s,r),m=t.result?.roleArn??p,u=Z(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=>{
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=x(t.variables)),e},"lockSen\
61
- sitiveData"),Ye=n(async(e,t,r)=>{let o={...t,...t.variables&&{variables:x(t.variables)}};
62
- !je(o,r,{exclude:{sourceFile:!0,functionName:!0,tags:!0}})&&await h(e,t)},"check\
63
- ConfigurationUpdates"),et=n(async(e,t,r)=>{await $e(t.tags,r.tags,o=>I(e,o),o=>W(
64
- e,o))},"checkTagUpdates"),tt=n(async(e,t,r,o)=>{let i=await N(...t.getFunctionFiles()),
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(()=>{rt(l,j())},"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){
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 C(t);return o},"getFunctionState"),F=n((e,t,r)=>{let o=r.
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"),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,
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 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"),
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"),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,
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"),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}),"\
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 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})).
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 ce(t.eventId)},"deleteR\
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 pe(e,t)},"checkGeneralUpdates");var fe=n(()=>{zt(d,le())},"registerMappingProvider");var ye=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 de=n(async e=>{let[t,r]=await Promise.all([Vt(),Gt()]);return Ht([{permissions:[
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 Se=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 de(o),policyName:i})},"prepareExecu\
125
- tionPolicy");var Fe=!1,qn=n(()=>{Fe||(qt(),$t(),Zt(),kt("@ez4/aws-function",{"deploy:prepareI\
126
- dentityAccount":ye,"deploy:prepareExecutionPolicy":Se}),J(),oe(),fe(),Fe=!0)},"r\
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 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,
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=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,
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,nt as tryGetFunctionArn,zr as tryGetFunctionState};
136
+ qn as registerTriggers,ot as tryGetFunctionArn,zr as tryGetFunctionState};
137
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.28.0",
4
+ "version": "0.28.1",
5
5
  "author": "Silas B.",
6
6
  "license": "MIT",
7
7
  "type": "module",