@ez4/aws-function 0.15.0 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/function/client.d.ts +1 -1
- package/dist/function/errors.d.ts +3 -0
- package/dist/function/service.d.ts +0 -6
- package/dist/function/types.d.ts +1 -2
- package/dist/function/utils.d.ts +3 -0
- package/dist/main.cjs +109 -102
- package/dist/main.mjs +96 -92
- package/dist/mapping/client.d.ts +1 -1
- package/dist/mapping/types.d.ts +1 -0
- package/dist/permission/client.d.ts +1 -1
- package/dist/permission/types.d.ts +1 -0
- package/dist/triggers/identity.d.ts +3 -2
- package/dist/triggers/policy.d.ts +1 -1
- package/package.json +7 -7
|
@@ -29,6 +29,6 @@ export declare const importFunction: (functionName: string, version?: string) =>
|
|
|
29
29
|
export declare const createFunction: (request: CreateRequest) => Promise<ImportOrCreateResponse>;
|
|
30
30
|
export declare const updateSourceCode: (functionName: string, request: UpdateSourceCodeRequest) => Promise<void>;
|
|
31
31
|
export declare const updateConfiguration: (functionName: string, request: UpdateConfigRequest) => Promise<void>;
|
|
32
|
-
export declare const deleteFunction: (functionName: string) => Promise<
|
|
32
|
+
export declare const deleteFunction: (functionName: string) => Promise<boolean>;
|
|
33
33
|
export declare const tagFunction: (functionArn: Arn, tags: ResourceTags) => Promise<void>;
|
|
34
34
|
export declare const untagFunction: (functionArn: Arn, tagKeys: string[]) => Promise<void>;
|
|
@@ -1,10 +1,4 @@
|
|
|
1
1
|
import type { RoleState } from '@ez4/aws-identity';
|
|
2
2
|
import type { EntryState, EntryStates } from '@ez4/stateful';
|
|
3
3
|
import type { FunctionParameters, FunctionState } from './types.js';
|
|
4
|
-
import { FunctionServiceType } from './types.js';
|
|
5
4
|
export declare const createFunction: <E extends EntryState>(state: EntryStates<E>, roleState: RoleState, parameters: FunctionParameters) => FunctionState;
|
|
6
|
-
export declare const getFunction: <E extends EntryState>(state: EntryStates<E>, roleState: RoleState, functionName: string) => (E & EntryState & {
|
|
7
|
-
type: typeof FunctionServiceType;
|
|
8
|
-
parameters: FunctionParameters;
|
|
9
|
-
result?: import("./types.js").FunctionResult;
|
|
10
|
-
}) | null;
|
package/dist/function/types.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import type { EntryState, StepContext } from '@ez4/stateful';
|
|
|
3
3
|
import type { CreateRequest, ImportOrCreateResponse } from './client.js';
|
|
4
4
|
export declare const FunctionServiceName = "AWS:Lambda/Function";
|
|
5
5
|
export declare const FunctionServiceType = "aws:lambda.function";
|
|
6
|
-
type GetFunctionBundle = (context: StepContext) => Promise<string> | string;
|
|
6
|
+
export type GetFunctionBundle = (context: StepContext) => Promise<string> | string;
|
|
7
7
|
export type FunctionParameters = Omit<CreateRequest, 'roleArn'> & {
|
|
8
8
|
getFunctionBundle: GetFunctionBundle;
|
|
9
9
|
};
|
|
@@ -16,4 +16,3 @@ export type FunctionState = EntryState & {
|
|
|
16
16
|
parameters: FunctionParameters;
|
|
17
17
|
result?: FunctionResult;
|
|
18
18
|
};
|
|
19
|
-
export {};
|
package/dist/function/utils.d.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
|
+
import type { DeployOptions, EventContext } from '@ez4/project/library';
|
|
1
2
|
import type { EntryState, StepContext } from '@ez4/stateful';
|
|
2
3
|
import type { FunctionState } from './types.js';
|
|
3
4
|
export declare const isFunctionState: (resource: EntryState) => resource is FunctionState;
|
|
5
|
+
export declare const tryGetFunctionState: (context: EventContext, functionName: string, options: DeployOptions) => FunctionState | undefined;
|
|
6
|
+
export declare const getFunctionState: (context: EventContext, functionName: string, options: DeployOptions) => FunctionState;
|
|
4
7
|
export declare const getFunctionName: (serviceName: string, resourceId: string, context: StepContext) => string;
|
|
5
8
|
export declare const tryGetFunctionArn: (context: StepContext) => `arn:aws:${string}:${string}:${string}:${string}` | undefined;
|
|
6
9
|
export declare const getFunctionArn: (serviceName: string, resourceId: string, context: StepContext) => `arn:aws:${string}:${string}:${string}:${string}`;
|
package/dist/main.cjs
CHANGED
|
@@ -1,108 +1,115 @@
|
|
|
1
|
-
"use strict";var
|
|
2
|
-
typeof t=="object"||typeof t=="function")for(let o of
|
|
3
|
-
|
|
4
|
-
enumerable:!0}):r,e)),
|
|
5
|
-
MappingServiceType:()=>
|
|
6
|
-
createFunction:()=>
|
|
7
|
-
|
|
8
|
-
isMappingState:()=>
|
|
9
|
-
exports=
|
|
10
|
-
|
|
11
|
-
a,`${t} is an invalid variable name .`)},
|
|
12
|
-
e[r]);return t};var
|
|
13
|
-
n=await(0,
|
|
14
|
-
|
|
1
|
+
"use strict";var Ge=Object.create;var I=Object.defineProperty;var $e=Object.getOwnPropertyDescriptor;var We=Object.getOwnPropertyNames;var Ze=Object.getPrototypeOf,ke=Object.prototype.hasOwnProperty;var Ke=(e,t)=>{for(var r in t)I(e,r,{get:t[r],enumerable:!0})},W=(e,t,r,n)=>{if(t&&
|
|
2
|
+
typeof t=="object"||typeof t=="function")for(let o of We(t))!ke.call(e,o)&&o!==r&&
|
|
3
|
+
I(e,o,{get:()=>t[o],enumerable:!(n=$e(t,o))||n.enumerable});return e};var _e=(e,t,r)=>(r=e!=null?Ge(Ze(e)):{},W(t||!e||!e.__esModule?I(r,"default",{value:e,
|
|
4
|
+
enumerable:!0}):r,e)),Qe=e=>W(I({},"__esModule",{value:!0}),e);var It={};Ke(It,{FunctionServiceName:()=>a,FunctionServiceType:()=>l,MappingServiceName:()=>f,
|
|
5
|
+
MappingServiceType:()=>w,PermissionServiceName:()=>F,PermissionServiceType:()=>y,
|
|
6
|
+
createFunction:()=>Rt,createMapping:()=>Et,createPermission:()=>vt,getFunctionArn:()=>ct,
|
|
7
|
+
getFunctionName:()=>A,getFunctionState:()=>pt,getPermission:()=>At,isFunctionState:()=>L,
|
|
8
|
+
isMappingState:()=>Mt,registerTriggers:()=>Ct,tryGetFunctionArn:()=>pe,tryGetFunctionState:()=>at});
|
|
9
|
+
module.exports=Qe(It);var De=require("@ez4/aws-common"),ze=require("@ez4/aws-identity"),qe=require("@ez4/project/library");var ie=require("@ez4/aws-common");var ne=require("@aws-sdk/client-lambda"),g=require("@ez4/aws-common"),v=require("@ez4/utils"),
|
|
10
|
+
V=require("@ez4/aws-identity");var s=require("@aws-sdk/client-lambda"),m=require("@ez4/aws-common");var Z=require("@ez4/aws-common"),k=require("@ez4/utils");var a="AWS:Lambda/Function",l="aws:lambda.function";var Je=/[a-z][\w]+/i,Xe=e=>Je.test(e),D=e=>{for(let t in e)if(!Xe(t))throw new Z.InvalidParameterError(
|
|
11
|
+
a,`${t} is an invalid variable name .`)},h=e=>{let t={};for(let r in e)t[r]=(0,k.hashData)(
|
|
12
|
+
e[r]);return t};var K=_e(require("adm-zip"),1),_=require("node:fs/promises"),Q=async(e,t)=>{let r=new K.default,
|
|
13
|
+
n=await(0,_.readFile)(e);return r.addFile(t,n),r.toBufferPromise()};var d=new s.LambdaClient({}),z={minDelay:15,maxWaitTime:1800,maxDelay:60,client:d},
|
|
14
|
+
J=async(e,t)=>{m.Logger.logImport(a,e);try{return{functionArn:(await d.send(new s.GetFunctionCommand(
|
|
15
15
|
{FunctionName:e,Qualifier:t}))).Configuration.FunctionArn}}catch(r){if(!(r instanceof
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
sourceFile:
|
|
19
|
-
FunctionName:t,Description:n,MemorySize:o,Timeout:
|
|
20
|
-
nodejs22.x",PackageType:"Zip",Code:{ZipFile:await
|
|
21
|
-
Tags:{...
|
|
22
|
-
|
|
23
|
-
source code`);let{sourceFile:r}=t;await
|
|
24
|
-
FunctionName:e,ZipFile:await
|
|
25
|
-
|
|
26
|
-
configuration`),r&&
|
|
27
|
-
await
|
|
28
|
-
MemorySize:o,Timeout:
|
|
29
|
-
await(0,
|
|
30
|
-
a,e)
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
{Resource:e,
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
16
|
+
s.ResourceNotFoundException))throw r;return}},X=async e=>{let{functionName:t,variables:r}=e;
|
|
17
|
+
m.Logger.logCreate(a,t),r&&D(r);let{description:n,memory:o,timeout:i,roleArn:c,handlerName:u,
|
|
18
|
+
sourceFile:P,tags:C}=e,Le=(await d.send(new s.CreateFunctionCommand({Publish:!0,
|
|
19
|
+
FunctionName:t,Description:n,MemorySize:o,Timeout:i,Role:c,Handler:re(u),Runtime:"\
|
|
20
|
+
nodejs22.x",PackageType:"Zip",Code:{ZipFile:await te(P)},Environment:{Variables:r},
|
|
21
|
+
Tags:{...C,ManagedBy:"EZ4"}}))).FunctionArn;return m.Logger.logWait(a,t),await(0,s.waitUntilFunctionActive)(
|
|
22
|
+
z,{FunctionName:t}),{functionArn:Le}},q=async(e,t)=>{m.Logger.logUpdate(a,`${e} \
|
|
23
|
+
source code`);let{sourceFile:r}=t;await d.send(new s.UpdateFunctionCodeCommand({
|
|
24
|
+
FunctionName:e,ZipFile:await te(r),Publish:!0})),m.Logger.logWait(a,e),await(0,s.waitUntilFunctionUpdated)(
|
|
25
|
+
z,{FunctionName:e})},H=async(e,t)=>{let{variables:r}=t;m.Logger.logUpdate(a,`${e}\
|
|
26
|
+
configuration`),r&&D(r);let{description:n,memory:o,timeout:i,roleArn:c,handlerName:u}=t;
|
|
27
|
+
await d.send(new s.UpdateFunctionConfigurationCommand({FunctionName:e,Description:n,
|
|
28
|
+
MemorySize:o,Timeout:i,Role:c,...u&&{Handler:re(u)},Environment:{Variables:r}})),
|
|
29
|
+
m.Logger.logWait(a,e),await(0,s.waitUntilFunctionUpdated)(z,{FunctionName:e})},Y=async e=>{
|
|
30
|
+
m.Logger.logDelete(a,e);try{return await d.send(new s.DeleteFunctionCommand({FunctionName:e})),
|
|
31
|
+
!0}catch(t){if(!(t instanceof s.ResourceNotFoundException))throw t;return!1}},j=async(e,t)=>{
|
|
32
|
+
let r=(0,m.tryParseArn)(e)?.resourceName??e;m.Logger.logTag(a,r),await d.send(new s.TagResourceCommand(
|
|
33
|
+
{Resource:e,Tags:{...t,ManagedBy:"EZ4"}}))},ee=async(e,t)=>{let r=(0,m.tryParseArn)(
|
|
34
|
+
e)?.resourceName??e;m.Logger.logUntag(a,r),await d.send(new s.UntagResourceCommand(
|
|
35
|
+
{Resource:e,TagKeys:t}))},te=e=>Q(e,"main.mjs"),re=e=>`main.${e}`;var oe=()=>({equals:Ye,create:se,replace:tt,preview:et,update:rt,delete:nt}),Ye=(e,t)=>!!e.
|
|
36
|
+
result&&e.result.functionArn===t.result?.functionArn,et=async(e,t)=>{let r=e.parameters,
|
|
37
|
+
n=t.parameters,o=(0,v.deepCompare)({...r,dependencies:e.dependencies,sourceHash:await(0,g.bundleHash)(
|
|
38
|
+
r.sourceFile),...r.variables&&{variables:h(r.variables)}},{...n,dependencies:t.dependencies,
|
|
37
39
|
sourceHash:t.result?.sourceHash});if(o.counts)return{...o,name:r.functionName}},
|
|
38
|
-
|
|
39
|
-
return
|
|
40
|
-
a,n,t),[
|
|
41
|
-
u=await
|
|
42
|
-
{...r.tags}),
|
|
43
|
-
async()=>{try{return await
|
|
44
|
-
|
|
45
|
-
e),{functionArn:
|
|
46
|
-
result:o}=e;if(!o)return;let
|
|
47
|
-
roleArn??
|
|
48
|
-
|
|
49
|
-
e),{...o,roleArn:
|
|
50
|
-
()=>
|
|
51
|
-
|
|
52
|
-
variables)}};!(0,
|
|
53
|
-
await
|
|
54
|
-
n),n=>
|
|
55
|
-
sourceHash;if(o!==
|
|
56
|
-
o}return
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
let
|
|
40
|
+
tt=async(e,t,r)=>{if(t.result)throw new g.ReplaceResourceError(a,e.entryId,t.entryId);
|
|
41
|
+
return se(e,r)},se=async(e,t)=>{let r=e.parameters,n=r.functionName,o=(0,V.getRoleArn)(
|
|
42
|
+
a,n,t),[i,c]=await Promise.all([r.getFunctionBundle(t),(0,g.bundleHash)(r.sourceFile)]),
|
|
43
|
+
u=await J(n);if(u)return await H(n,r),await q(n,{sourceFile:i}),await j(u.functionArn,
|
|
44
|
+
{...r.tags}),O(e),{functionArn:u.functionArn,sourceHash:c,roleArn:o};let P,C=await(0,v.waitFor)(
|
|
45
|
+
async()=>{try{return await X({...r,sourceFile:i,roleArn:o})}catch(R){if(!(R instanceof
|
|
46
|
+
ne.InvalidParameterValueException))throw R;return P=R,null}});if(!C)throw P;return O(
|
|
47
|
+
e),{functionArn:C.functionArn,sourceHash:c,roleArn:o}},rt=async(e,t,r)=>{let{parameters:n,
|
|
48
|
+
result:o}=e;if(!o)return;let i=n.functionName,c=(0,V.getRoleArn)(a,i,r),u=t.result?.
|
|
49
|
+
roleArn??c,P={...n,roleArn:c},C={...t.parameters,roleArn:u};await Promise.all([ot(
|
|
50
|
+
i,P,C),st(o.functionArn,n,t.parameters)]);let R=await it(i,n,t.result,r);return O(
|
|
51
|
+
e),{...o,roleArn:c,sourceHash:R}},nt=async e=>{let{result:t,parameters:r}=e;t&&await(0,g.waitDeletion)(
|
|
52
|
+
async()=>Y(r.functionName))},O=e=>{let{parameters:t}=e;return t.variables&&(t.variables=
|
|
53
|
+
h(t.variables)),e},ot=async(e,t,r)=>{let n={...t,...t.variables&&{variables:h(t.
|
|
54
|
+
variables)}};!(0,v.deepEqual)(n,r,{exclude:{sourceFile:!0,functionName:!0,tags:!0}})&&
|
|
55
|
+
await H(e,t)},st=async(e,t,r)=>{await(0,g.applyTagUpdates)(t.tags,r.tags,n=>j(e,
|
|
56
|
+
n),n=>ee(e,n))},it=async(e,t,r,n)=>{let o=await(0,g.bundleHash)(t.sourceFile),i=r?.
|
|
57
|
+
sourceHash;if(o!==i){let c=await t.getFunctionBundle(n);return await q(e,{sourceFile:c}),
|
|
58
|
+
o}return i};var ae=()=>{(0,ie.registerProvider)(l,oe())};var ye=require("@ez4/aws-common");var le=require("@ez4/aws-common");var B=require("@ez4/aws-common");var b=class extends Error{constructor(t){super(`Function ${t} wasn't found.`)}};var L=e=>e.type===l,at=(e,t,r)=>{try{let n=e.getServiceState(t,r);if(L(n))return n}catch{}},
|
|
59
|
+
pt=(e,t,r)=>{let n=e.getServiceState(t,r);if(!L(n))throw new b(t);return n},A=(e,t,r)=>{
|
|
60
|
+
let n=r.getDependencies(l).at(0)?.parameters;if(!n?.functionName)throw new B.IncompleteResourceError(
|
|
61
|
+
e,t,"functionName");return n.functionName},pe=e=>e.getDependencies(l)[0]?.result?.
|
|
62
|
+
functionArn,ct=(e,t,r)=>{let n=pe(r);if(!n)throw new B.IncompleteResourceError(e,
|
|
63
|
+
t,"functionArn");return n};var S=require("@aws-sdk/client-lambda"),G=require("@ez4/aws-common");var F="AWS:Lambda/Permission",y="aws:lambda.permission";var ce=new S.LambdaClient({}),me=async e=>{G.Logger.logCreate(F,e.functionName);
|
|
64
|
+
let t=e.statementId??`SID${Date.now()}`;return await ce.send(new S.AddPermissionCommand(
|
|
61
65
|
{StatementId:t,FunctionName:e.functionName,SourceArn:e.sourceArn,Principal:e.principal,
|
|
62
|
-
Action:e.action})),{statementId:t}},
|
|
63
|
-
send(new
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
t)
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
66
|
+
Action:e.action})),{statementId:t}},ue=async(e,t)=>{G.Logger.logDelete(F,e);try{
|
|
67
|
+
return await ce.send(new S.RemovePermissionCommand({FunctionName:e,StatementId:t})),
|
|
68
|
+
!0}catch(r){if(!(r instanceof S.ResourceNotFoundException))throw r;return!1}};var ge=()=>({equals:mt,create:fe,replace:lt,preview:ut,update:gt,delete:ft}),mt=(e,t)=>!!e.
|
|
69
|
+
result&&e.result.functionName===t.result?.functionName,ut=async(e,t)=>{},lt=async(e,t,r)=>{
|
|
70
|
+
if(t.result)throw new le.ReplaceResourceError(F,e.entryId,t.entryId);return fe(e,
|
|
71
|
+
r)},fe=async(e,t)=>{let r=e.parameters,n=A(F,"permission",t),o=await r.getPermission(
|
|
72
|
+
t);return{statementId:(await me({functionName:n,principal:o.principal,sourceArn:o.
|
|
73
|
+
sourceArn,action:"lambda:InvokeFunction"})).statementId,functionName:n}},gt=async()=>{},
|
|
74
|
+
ft=async e=>{let t=e.result;t&&await ue(t.functionName,t.statementId)};var de=()=>{(0,ye.registerProvider)(y,ge())};var Me=require("@ez4/aws-common");var ve=require("@ez4/aws-common"),N=require("@ez4/utils");var p=require("@aws-sdk/client-lambda"),x=require("@ez4/aws-common"),Se=require("@ez4/utils");var f="AWS:Lambda/Mapping",w="aws:lambda.mapping";var M=new p.LambdaClient({}),we=async(e,t)=>{x.Logger.logImport(f,e);let r=await M.
|
|
75
|
+
send(new p.ListEventSourceMappingsCommand({FunctionName:e,EventSourceArn:t})),[n]=r.
|
|
76
|
+
EventSourceMappings;return n?{eventId:n.UUID}:void 0},Fe=async e=>{let{sourceArn:t,
|
|
77
|
+
functionName:r}=e;x.Logger.logCreate(f,r);let o=(await M.send(new p.CreateEventSourceMappingCommand(
|
|
78
|
+
{FunctionName:r,EventSourceArn:t,...Re(e)}))).UUID;return await Ce(o),{eventId:o}},
|
|
79
|
+
xe=async(e,t)=>{let{functionName:r}=t;x.Logger.logUpdate(f,`${r} (${e})`),await M.
|
|
80
|
+
send(new p.UpdateEventSourceMappingCommand({UUID:e,FunctionName:r,...Re(t)})),await Ce(
|
|
81
|
+
e)},Pe=async e=>{x.Logger.logDelete(f,e);try{return await M.send(new p.DeleteEventSourceMappingCommand(
|
|
82
|
+
{UUID:e})),!0}catch(t){if(!(t instanceof p.ResourceNotFoundException))throw t;return!1}},
|
|
83
|
+
yt=async e=>(await M.send(new p.GetEventSourceMappingCommand({UUID:e}))).State,Ce=async e=>{
|
|
84
|
+
let t=new Set(["Enabled","Disabled"]);await(0,Se.waitFor)(async()=>{let r=await yt(
|
|
85
|
+
e);return t.has(r)})},Re=e=>{let{sourceArn:t,enabled:r,concurrency:n,batch:o}=e,
|
|
86
|
+
{service:i}=(0,x.parseArn)(t);return{Enabled:r,...i==="dynamodb"&&{StartingPosition:p.EventSourcePosition.
|
|
87
|
+
LATEST},...i==="sqs"&&n&&{ScalingConfig:{MaximumConcurrency:n}},...o&&{MaximumBatchingWindowInSeconds:o.
|
|
88
|
+
maxWindow,BatchSize:o.batchSize}}};var Ae=()=>({equals:dt,create:Ee,replace:wt,preview:St,update:Ft,delete:xt}),dt=(e,t)=>!!e.
|
|
89
|
+
result&&e.result.eventId===t.result?.eventId,St=async(e,t)=>{let r={...e.parameters,
|
|
90
|
+
dependencies:e.dependencies},n={...t.parameters,dependencies:t.dependencies},o=(0,N.deepCompare)(
|
|
91
|
+
r,n,{exclude:{getSourceArn:!0}});if(o.counts)return{...o,name:r.fromService}},wt=async(e,t,r)=>{
|
|
92
|
+
if(t.result)throw new ve.ReplaceResourceError(f,e.entryId,t.entryId);return Ee(e,
|
|
93
|
+
r)},Ee=async(e,t)=>{let r=e.parameters,n=A(f,"mapping",t),o=await r.getSourceArn(
|
|
94
|
+
t);return{eventId:(await we(n,o)??await Fe({...e.parameters,functionName:n,sourceArn:o})).
|
|
95
|
+
eventId,functionName:n,sourceArn:o}},Ft=async(e,t,r)=>{let n=e.result;if(!n)return;
|
|
96
|
+
let o=n.sourceArn,i=A(f,"mapping",r),c=t.result?.functionName??n.functionName;return await Pt(
|
|
97
|
+
n.eventId,{...e.parameters,functionName:i,sourceArn:o},{...t.parameters,functionName:c,
|
|
98
|
+
sourceArn:o}),{...n,functionName:i}},xt=async e=>{let t=e.result;t&&await Pe(t.eventId)},
|
|
99
|
+
Pt=async(e,t,r)=>{!(0,N.deepEqual)(t,r,{exclude:{getSourceArn:!0,fromService:!0}})&&
|
|
100
|
+
await xe(e,t)};var Ie=()=>{(0,Me.registerProvider)(w,Ae())};var he=()=>[{account:"lambda.amazonaws.com"}];var U=require("@ez4/aws-identity"),Ne=require("@ez4/project/library");var E=require("@ez4/aws-identity"),be=async e=>{let[t,r]=await Promise.all([(0,E.getRegion)(),
|
|
94
101
|
(0,E.getAccountId)()]);return(0,E.createPolicyDocument)([{permissions:["logs:Cre\
|
|
95
102
|
ateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],resourceIds:[`arn:aws:l\
|
|
96
|
-
ogs:${t}:${r}:log-group:/aws/lambda/${e}-*:*`]}])};var
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
e,{type:
|
|
104
|
-
let n=(0
|
|
105
|
-
e,{type:
|
|
103
|
+
ogs:${t}:${r}:log-group:/aws/lambda/${e}-*:*`]}])};var Ue=async e=>{let{state:t,options:r}=e,n=(0,Ne.getServiceName)("",r),o=`${n}-\
|
|
104
|
+
lambda-policy`;return(0,U.tryGetPolicy)(t,o)??(0,U.createPolicy)(t,{policyDocument:await be(
|
|
105
|
+
n),policyName:o})};var Te=!1,Ct=()=>{Te||((0,De.registerTriggers)(),(0,ze.registerTriggers)(),(0,qe.createTrigger)(
|
|
106
|
+
"@ez4/aws-function",{"deploy:prepareIdentityAccount":he,"deploy:prepareExecution\
|
|
107
|
+
Policy":Ue}),ae(),de(),Ie(),Te=!0)};var T=require("@ez4/utils"),He=require("@ez4/stateful");var Rt=(e,t,r)=>{let n=(0,T.toKebabCase)(r.functionName),o=(0,T.hashData)(l,t.entryId,
|
|
108
|
+
n);return(0,He.attachEntry)(e,{type:l,entryId:o,dependencies:[t.entryId],parameters:{
|
|
109
|
+
...r,functionName:n}})};var Oe=require("@ez4/stateful"),$=require("@ez4/utils");var je=e=>e.type===y;var vt=(e,t,r,n)=>{let o=(0,$.hashData)(y,t.entryId,r.entryId);return(0,Oe.attachEntry)(
|
|
110
|
+
e,{type:y,entryId:o,dependencies:[t.entryId,r.entryId],parameters:n})},At=(e,t,r)=>{
|
|
111
|
+
let n=(0,$.hashData)(y,t.entryId,r.entryId),o=e[n];return o&&je(o)?o:null};var Ve=require("@ez4/utils"),Be=require("@ez4/stateful");var Et=(e,t,r,n)=>{let o=(0,Ve.hashData)(w,t.entryId,r.entryId);return(0,Be.attachEntry)(
|
|
112
|
+
e,{type:w,entryId:o,dependencies:[t.entryId,r.entryId],parameters:n})};var Mt=e=>e.type===w;0&&(module.exports={FunctionServiceName,FunctionServiceType,MappingServiceName,MappingServiceType,
|
|
106
113
|
PermissionServiceName,PermissionServiceType,createFunction,createMapping,createPermission,
|
|
107
|
-
|
|
108
|
-
registerTriggers,tryGetFunctionArn});
|
|
114
|
+
getFunctionArn,getFunctionName,getFunctionState,getPermission,isFunctionState,isMappingState,
|
|
115
|
+
registerTriggers,tryGetFunctionArn,tryGetFunctionState});
|
package/dist/main.mjs
CHANGED
|
@@ -1,101 +1,105 @@
|
|
|
1
|
-
import{registerTriggers as
|
|
2
|
-
import{createTrigger as
|
|
3
|
-
applyTagUpdates as
|
|
4
|
-
import{deepCompare as
|
|
5
|
-
UpdateFunctionCodeCommand as
|
|
6
|
-
UntagResourceCommand as
|
|
7
|
-
ResourceNotFoundException as
|
|
8
|
-
|
|
9
|
-
return t};import
|
|
10
|
-
let r=new
|
|
11
|
-
|
|
12
|
-
Configuration.FunctionArn}}catch(r){if(!(r instanceof
|
|
13
|
-
let{functionName:t,variables:r}=e;
|
|
14
|
-
timeout:s,roleArn:
|
|
15
|
-
{Publish:!0,FunctionName:t,Description:n,MemorySize:o,Timeout:s,Role:
|
|
16
|
-
p),Runtime:"nodejs22.x",PackageType:"Zip",Code:{ZipFile:await
|
|
17
|
-
Variables:r},Tags:{...
|
|
18
|
-
{functionArn:
|
|
19
|
-
await
|
|
20
|
-
FunctionName:e})},
|
|
21
|
-
|
|
22
|
-
await
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
1
|
+
import{registerTriggers as Ut}from"@ez4/aws-common";import{registerTriggers as Tt}from"@ez4/aws-identity";
|
|
2
|
+
import{createTrigger as Dt}from"@ez4/project/library";import{registerProvider as Ze}from"@ez4/aws-common";import{InvalidParameterValueException as Ne}from"@aws-sdk/client-lambda";import{
|
|
3
|
+
applyTagUpdates as Ue,bundleHash as b,ReplaceResourceError as Te,waitDeletion as De}from"@ez4/aws-common";
|
|
4
|
+
import{deepCompare as ze,deepEqual as qe,waitFor as He}from"@ez4/utils";import{getRoleArn as B}from"@ez4/aws-identity";import{LambdaClient as Ce,GetFunctionCommand as Re,CreateFunctionCommand as ve,DeleteFunctionCommand as Ae,
|
|
5
|
+
UpdateFunctionCodeCommand as Ee,UpdateFunctionConfigurationCommand as Me,TagResourceCommand as Ie,
|
|
6
|
+
UntagResourceCommand as he,waitUntilFunctionActive as be,waitUntilFunctionUpdated as U,
|
|
7
|
+
ResourceNotFoundException as T}from"@aws-sdk/client-lambda";import{Logger as c,tryParseArn as D}from"@ez4/aws-common";import{InvalidParameterError as de}from"@ez4/aws-common";import{hashData as Se}from"@ez4/utils";var i="AWS:Lambda/Function",m="aws:lambda.function";var we=/[a-z][\w]+/i,Fe=e=>we.test(e),v=e=>{for(let t in e)if(!Fe(t))throw new de(
|
|
8
|
+
i,`${t} is an invalid variable name .`)},P=e=>{let t={};for(let r in e)t[r]=Se(e[r]);
|
|
9
|
+
return t};import xe from"adm-zip";import{readFile as Pe}from"node:fs/promises";var N=async(e,t)=>{
|
|
10
|
+
let r=new xe,n=await Pe(e);return r.addFile(t,n),r.toBufferPromise()};var l=new Ce({}),A={minDelay:15,maxWaitTime:1800,maxDelay:60,client:l},z=async(e,t)=>{
|
|
11
|
+
c.logImport(i,e);try{return{functionArn:(await l.send(new Re({FunctionName:e,Qualifier:t}))).
|
|
12
|
+
Configuration.FunctionArn}}catch(r){if(!(r instanceof T))throw r;return}},q=async e=>{
|
|
13
|
+
let{functionName:t,variables:r}=e;c.logCreate(i,t),r&&v(r);let{description:n,memory:o,
|
|
14
|
+
timeout:s,roleArn:a,handlerName:p,sourceFile:y,tags:d}=e,ye=(await l.send(new ve(
|
|
15
|
+
{Publish:!0,FunctionName:t,Description:n,MemorySize:o,Timeout:s,Role:a,Handler:V(
|
|
16
|
+
p),Runtime:"nodejs22.x",PackageType:"Zip",Code:{ZipFile:await O(y)},Environment:{
|
|
17
|
+
Variables:r},Tags:{...d,ManagedBy:"EZ4"}}))).FunctionArn;return c.logWait(i,t),await be(
|
|
18
|
+
A,{FunctionName:t}),{functionArn:ye}},E=async(e,t)=>{c.logUpdate(i,`${e} source \
|
|
19
|
+
code`);let{sourceFile:r}=t;await l.send(new Ee({FunctionName:e,ZipFile:await O(r),
|
|
20
|
+
Publish:!0})),c.logWait(i,e),await U(A,{FunctionName:e})},M=async(e,t)=>{let{variables:r}=t;
|
|
21
|
+
c.logUpdate(i,`${e} configuration`),r&&v(r);let{description:n,memory:o,timeout:s,
|
|
22
|
+
roleArn:a,handlerName:p}=t;await l.send(new Me({FunctionName:e,Description:n,MemorySize:o,
|
|
23
|
+
Timeout:s,Role:a,...p&&{Handler:V(p)},Environment:{Variables:r}})),c.logWait(i,e),
|
|
24
|
+
await U(A,{FunctionName:e})},H=async e=>{c.logDelete(i,e);try{return await l.send(
|
|
25
|
+
new Ae({FunctionName:e})),!0}catch(t){if(!(t instanceof T))throw t;return!1}},I=async(e,t)=>{
|
|
26
|
+
let r=D(e)?.resourceName??e;c.logTag(i,r),await l.send(new Ie({Resource:e,Tags:{
|
|
27
|
+
...t,ManagedBy:"EZ4"}}))},j=async(e,t)=>{let r=D(e)?.resourceName??e;c.logUntag(
|
|
28
|
+
i,r),await l.send(new he({Resource:e,TagKeys:t}))},O=e=>N(e,"main.mjs"),V=e=>`ma\
|
|
29
|
+
in.${e}`;var L=()=>({equals:je,create:G,replace:Ve,preview:Oe,update:Be,delete:Le}),je=(e,t)=>!!e.
|
|
28
30
|
result&&e.result.functionArn===t.result?.functionArn,Oe=async(e,t)=>{let r=e.parameters,
|
|
29
|
-
n=t.parameters,o=
|
|
31
|
+
n=t.parameters,o=ze({...r,dependencies:e.dependencies,sourceHash:await b(r.sourceFile),
|
|
30
32
|
...r.variables&&{variables:P(r.variables)}},{...n,dependencies:t.dependencies,sourceHash:t.
|
|
31
33
|
result?.sourceHash});if(o.counts)return{...o,name:r.functionName}},Ve=async(e,t,r)=>{
|
|
32
|
-
if(t.result)throw new
|
|
33
|
-
parameters,n=r.functionName,o=
|
|
34
|
-
t),b(r.sourceFile)]),p=await
|
|
35
|
-
await I(p.functionArn,{...r.tags}),
|
|
36
|
-
roleArn:o};let y,
|
|
37
|
-
if(!(S instanceof
|
|
38
|
-
functionArn,sourceHash:
|
|
39
|
-
if(!o)return;let s=n.functionName,
|
|
40
|
-
|
|
41
|
-
parameters)]);let S=await
|
|
42
|
-
Le=async e=>{let{result:t,parameters:r}=e;t&&await
|
|
43
|
-
let{parameters:t}=e;return t.variables&&(t.variables=P(t.variables)),e},Ge=async(e,t,r)=>{
|
|
34
|
+
if(t.result)throw new Te(i,e.entryId,t.entryId);return G(e,r)},G=async(e,t)=>{let r=e.
|
|
35
|
+
parameters,n=r.functionName,o=B(i,n,t),[s,a]=await Promise.all([r.getFunctionBundle(
|
|
36
|
+
t),b(r.sourceFile)]),p=await z(n);if(p)return await M(n,r),await E(n,{sourceFile:s}),
|
|
37
|
+
await I(p.functionArn,{...r.tags}),h(e),{functionArn:p.functionArn,sourceHash:a,
|
|
38
|
+
roleArn:o};let y,d=await He(async()=>{try{return await q({...r,sourceFile:s,roleArn:o})}catch(S){
|
|
39
|
+
if(!(S instanceof Ne))throw S;return y=S,null}});if(!d)throw y;return h(e),{functionArn:d.
|
|
40
|
+
functionArn,sourceHash:a,roleArn:o}},Be=async(e,t,r)=>{let{parameters:n,result:o}=e;
|
|
41
|
+
if(!o)return;let s=n.functionName,a=B(i,s,r),p=t.result?.roleArn??a,y={...n,roleArn:a},
|
|
42
|
+
d={...t.parameters,roleArn:p};await Promise.all([Ge(s,y,d),$e(o.functionArn,n,t.
|
|
43
|
+
parameters)]);let S=await We(s,n,t.result,r);return h(e),{...o,roleArn:a,sourceHash:S}},
|
|
44
|
+
Le=async e=>{let{result:t,parameters:r}=e;t&&await De(async()=>H(r.functionName))},
|
|
45
|
+
h=e=>{let{parameters:t}=e;return t.variables&&(t.variables=P(t.variables)),e},Ge=async(e,t,r)=>{
|
|
44
46
|
let n={...t,...t.variables&&{variables:P(t.variables)}};!qe(n,r,{exclude:{sourceFile:!0,
|
|
45
|
-
functionName:!0,tags:!0}})&&await
|
|
46
|
-
n=>I(e,n),n=>
|
|
47
|
-
if(o!==s){let
|
|
48
|
-
return s};var
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
47
|
+
functionName:!0,tags:!0}})&&await M(e,t)},$e=async(e,t,r)=>{await Ue(t.tags,r.tags,
|
|
48
|
+
n=>I(e,n),n=>j(e,n))},We=async(e,t,r,n)=>{let o=await b(t.sourceFile),s=r?.sourceHash;
|
|
49
|
+
if(o!==s){let a=await t.getFunctionBundle(n);return await E(e,{sourceFile:a}),o}
|
|
50
|
+
return s};var $=()=>{Ze(m,L())};import{registerProvider as ot}from"@ez4/aws-common";import{ReplaceResourceError as Xe}from"@ez4/aws-common";import{IncompleteResourceError as W}from"@ez4/aws-common";var C=class extends Error{constructor(t){super(`Function ${t} wasn't found.`)}};var Z=e=>e.type===m,Sr=(e,t,r)=>{try{let n=e.getServiceState(t,r);if(Z(n))return n}catch{}},
|
|
51
|
+
wr=(e,t,r)=>{let n=e.getServiceState(t,r);if(!Z(n))throw new C(t);return n},F=(e,t,r)=>{
|
|
52
|
+
let n=r.getDependencies(m).at(0)?.parameters;if(!n?.functionName)throw new W(e,t,
|
|
53
|
+
"functionName");return n.functionName},ke=e=>e.getDependencies(m)[0]?.result?.functionArn,
|
|
54
|
+
Fr=(e,t,r)=>{let n=ke(r);if(!n)throw new W(e,t,"functionArn");return n};import{LambdaClient as Ke,AddPermissionCommand as _e,RemovePermissionCommand as Qe,
|
|
55
|
+
ResourceNotFoundException as Je}from"@aws-sdk/client-lambda";import{Logger as k}from"@ez4/aws-common";var w="AWS:Lambda/Permission",g="aws:lambda.permission";var K=new Ke({}),_=async e=>{k.logCreate(w,e.functionName);let t=e.statementId??
|
|
56
|
+
`SID${Date.now()}`;return await K.send(new _e({StatementId:t,FunctionName:e.functionName,
|
|
54
57
|
SourceArn:e.sourceArn,Principal:e.principal,Action:e.action})),{statementId:t}},
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
58
|
+
Q=async(e,t)=>{k.logDelete(w,e);try{return await K.send(new Qe({FunctionName:e,StatementId:t})),
|
|
59
|
+
!0}catch(r){if(!(r instanceof Je))throw r;return!1}};var J=()=>({equals:Ye,create:X,replace:tt,preview:et,update:rt,delete:nt}),Ye=(e,t)=>!!e.
|
|
60
|
+
result&&e.result.functionName===t.result?.functionName,et=async(e,t)=>{},tt=async(e,t,r)=>{
|
|
61
|
+
if(t.result)throw new Xe(w,e.entryId,t.entryId);return X(e,r)},X=async(e,t)=>{let r=e.
|
|
62
|
+
parameters,n=F(w,"permission",t),o=await r.getPermission(t);return{statementId:(await _(
|
|
59
63
|
{functionName:n,principal:o.principal,sourceArn:o.sourceArn,action:"lambda:Invok\
|
|
60
|
-
eFunction"})).statementId,functionName:n}},
|
|
61
|
-
t&&await
|
|
62
|
-
deepEqual as
|
|
63
|
-
UpdateEventSourceMappingCommand as
|
|
64
|
-
EventSourcePosition as
|
|
65
|
-
import{waitFor as
|
|
64
|
+
eFunction"})).statementId,functionName:n}},rt=async()=>{},nt=async e=>{let t=e.result;
|
|
65
|
+
t&&await Q(t.functionName,t.statementId)};var Y=()=>{ot(g,J())};import{registerProvider as At}from"@ez4/aws-common";import{ReplaceResourceError as dt}from"@ez4/aws-common";import{deepCompare as St,
|
|
66
|
+
deepEqual as wt}from"@ez4/utils";import{LambdaClient as st,GetEventSourceMappingCommand as it,CreateEventSourceMappingCommand as at,
|
|
67
|
+
UpdateEventSourceMappingCommand as pt,DeleteEventSourceMappingCommand as ct,ListEventSourceMappingsCommand as mt,
|
|
68
|
+
EventSourcePosition as ut,ResourceNotFoundException as lt}from"@aws-sdk/client-lambda";
|
|
69
|
+
import{Logger as R,parseArn as gt}from"@ez4/aws-common";import{waitFor as ft}from"@ez4/utils";var u="AWS:Lambda/Mapping",f="aws:lambda.mapping";var x=new st({}),ee=async(e,t)=>{R.logImport(u,e);let r=await x.send(new mt({FunctionName:e,
|
|
66
70
|
EventSourceArn:t})),[n]=r.EventSourceMappings;return n?{eventId:n.UUID}:void 0},
|
|
67
|
-
|
|
68
|
-
new
|
|
69
|
-
|
|
70
|
-
{UUID:e,FunctionName:r,...
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
71
|
+
te=async e=>{let{sourceArn:t,functionName:r}=e;R.logCreate(u,r);let o=(await x.send(
|
|
72
|
+
new at({FunctionName:r,EventSourceArn:t,...se(e)}))).UUID;return await oe(o),{eventId:o}},
|
|
73
|
+
re=async(e,t)=>{let{functionName:r}=t;R.logUpdate(u,`${r} (${e})`),await x.send(
|
|
74
|
+
new pt({UUID:e,FunctionName:r,...se(t)})),await oe(e)},ne=async e=>{R.logDelete(
|
|
75
|
+
u,e);try{return await x.send(new ct({UUID:e})),!0}catch(t){if(!(t instanceof lt))
|
|
76
|
+
throw t;return!1}},yt=async e=>(await x.send(new it({UUID:e}))).State,oe=async e=>{
|
|
77
|
+
let t=new Set(["Enabled","Disabled"]);await ft(async()=>{let r=await yt(e);return t.
|
|
78
|
+
has(r)})},se=e=>{let{sourceArn:t,enabled:r,concurrency:n,batch:o}=e,{service:s}=gt(
|
|
79
|
+
t);return{Enabled:r,...s==="dynamodb"&&{StartingPosition:ut.LATEST},...s==="sqs"&&
|
|
75
80
|
n&&{ScalingConfig:{MaximumConcurrency:n}},...o&&{MaximumBatchingWindowInSeconds:o.
|
|
76
|
-
maxWindow,BatchSize:o.batchSize}}};var
|
|
77
|
-
result&&e.result.eventId===t.result?.eventId,
|
|
78
|
-
dependencies:e.dependencies},n={...t.parameters,dependencies:t.dependencies},o=
|
|
79
|
-
r,n,{exclude:{getSourceArn:!0}});
|
|
80
|
-
result)throw new dt(
|
|
81
|
-
parameters,n=F(
|
|
82
|
-
n,o)??await
|
|
83
|
-
sourceArn:o}},
|
|
84
|
-
|
|
85
|
-
{...e.parameters,functionName:s,sourceArn:o},{...t.parameters,functionName:
|
|
86
|
-
{...n,functionName:s}},
|
|
87
|
-
!
|
|
88
|
-
var
|
|
81
|
+
maxWindow,BatchSize:o.batchSize}}};var ie=()=>({equals:Ft,create:ae,replace:Pt,preview:xt,update:Ct,delete:Rt}),Ft=(e,t)=>!!e.
|
|
82
|
+
result&&e.result.eventId===t.result?.eventId,xt=async(e,t)=>{let r={...e.parameters,
|
|
83
|
+
dependencies:e.dependencies},n={...t.parameters,dependencies:t.dependencies},o=St(
|
|
84
|
+
r,n,{exclude:{getSourceArn:!0}});if(o.counts)return{...o,name:r.fromService}},Pt=async(e,t,r)=>{
|
|
85
|
+
if(t.result)throw new dt(u,e.entryId,t.entryId);return ae(e,r)},ae=async(e,t)=>{
|
|
86
|
+
let r=e.parameters,n=F(u,"mapping",t),o=await r.getSourceArn(t);return{eventId:(await ee(
|
|
87
|
+
n,o)??await te({...e.parameters,functionName:n,sourceArn:o})).eventId,functionName:n,
|
|
88
|
+
sourceArn:o}},Ct=async(e,t,r)=>{let n=e.result;if(!n)return;let o=n.sourceArn,s=F(
|
|
89
|
+
u,"mapping",r),a=t.result?.functionName??n.functionName;return await vt(n.eventId,
|
|
90
|
+
{...e.parameters,functionName:s,sourceArn:o},{...t.parameters,functionName:a,sourceArn:o}),
|
|
91
|
+
{...n,functionName:s}},Rt=async e=>{let t=e.result;t&&await ne(t.eventId)},vt=async(e,t,r)=>{
|
|
92
|
+
!wt(t,r,{exclude:{getSourceArn:!0,fromService:!0}})&&await re(e,t)};var pe=()=>{At(f,ie())};var ce=()=>[{account:"lambda.amazonaws.com"}];import{createPolicy as ht,tryGetPolicy as bt}from"@ez4/aws-identity";import{getServiceName as Nt}from"@ez4/project/library";import{getAccountId as Et,getRegion as Mt,createPolicyDocument as It}from"@ez4/aws-identity";
|
|
93
|
+
var me=async e=>{let[t,r]=await Promise.all([Mt(),Et()]);return It([{permissions:[
|
|
89
94
|
"logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],resourceIds:[`\
|
|
90
|
-
arn:aws:logs:${t}:${r}:log-group:/aws/lambda/${e}-*:*`]}])};var
|
|
91
|
-
|
|
92
|
-
Account":
|
|
93
|
-
entryId:o,dependencies:[t.entryId],parameters:{...r,functionName:n}})}
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
r.entryId
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
nn as registerTriggers,We as tryGetFunctionArn};
|
|
95
|
+
arn:aws:logs:${t}:${r}:log-group:/aws/lambda/${e}-*:*`]}])};var ue=async e=>{let{state:t,options:r}=e,n=Nt("",r),o=`${n}-lambda-policy`;return bt(
|
|
96
|
+
t,o)??ht(t,{policyDocument:await me(n),policyName:o})};var le=!1,gn=()=>{le||(Ut(),Tt(),Dt("@ez4/aws-function",{"deploy:prepareIdentity\
|
|
97
|
+
Account":ce,"deploy:prepareExecutionPolicy":ue}),$(),Y(),pe(),le=!0)};import{toKebabCase as zt,hashData as qt}from"@ez4/utils";import{attachEntry as Ht}from"@ez4/stateful";var wn=(e,t,r)=>{let n=zt(r.functionName),o=qt(m,t.entryId,n);return Ht(e,{type:m,
|
|
98
|
+
entryId:o,dependencies:[t.entryId],parameters:{...r,functionName:n}})};import{attachEntry as jt}from"@ez4/stateful";import{hashData as fe}from"@ez4/utils";var ge=e=>e.type===g;var En=(e,t,r,n)=>{let o=fe(g,t.entryId,r.entryId);return jt(e,{type:g,entryId:o,
|
|
99
|
+
dependencies:[t.entryId,r.entryId],parameters:n})},Mn=(e,t,r)=>{let n=fe(g,t.entryId,
|
|
100
|
+
r.entryId),o=e[n];return o&&ge(o)?o:null};import{hashData as Ot}from"@ez4/utils";import{attachEntry as Vt}from"@ez4/stateful";var Un=(e,t,r,n)=>{let o=Ot(f,t.entryId,r.entryId);return Vt(e,{type:f,entryId:o,
|
|
101
|
+
dependencies:[t.entryId,r.entryId],parameters:n})};var zn=e=>e.type===f;export{i as FunctionServiceName,m as FunctionServiceType,u as MappingServiceName,
|
|
102
|
+
f as MappingServiceType,w as PermissionServiceName,g as PermissionServiceType,wn as createFunction,
|
|
103
|
+
Un as createMapping,En as createPermission,Fr as getFunctionArn,F as getFunctionName,
|
|
104
|
+
wr as getFunctionState,Mn as getPermission,Z as isFunctionState,zn as isMappingState,
|
|
105
|
+
gn as registerTriggers,ke as tryGetFunctionArn,Sr as tryGetFunctionState};
|
package/dist/mapping/client.d.ts
CHANGED
|
@@ -17,4 +17,4 @@ export type UpdateRequest = CreateRequest;
|
|
|
17
17
|
export declare const importMapping: (functionName: string, sourceArn: string) => Promise<ImportOrCreateResponse | undefined>;
|
|
18
18
|
export declare const createMapping: (request: CreateRequest) => Promise<ImportOrCreateResponse>;
|
|
19
19
|
export declare const updateMapping: (eventId: string, request: UpdateRequest) => Promise<void>;
|
|
20
|
-
export declare const deleteMapping: (eventId: string) => Promise<
|
|
20
|
+
export declare const deleteMapping: (eventId: string) => Promise<boolean>;
|
package/dist/mapping/types.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export declare const MappingServiceType = "aws:lambda.mapping";
|
|
|
6
6
|
export type GetMappingSourceArn = (context: StepContext) => Promise<Arn> | Arn;
|
|
7
7
|
export type MappingParameters = Omit<CreateRequest, 'functionName' | 'sourceArn'> & {
|
|
8
8
|
getSourceArn: GetMappingSourceArn;
|
|
9
|
+
fromService: string;
|
|
9
10
|
};
|
|
10
11
|
export type MappingResult = ImportOrCreateResponse & {
|
|
11
12
|
functionName: string;
|
|
@@ -10,4 +10,4 @@ export type CreateResponse = {
|
|
|
10
10
|
statementId: string;
|
|
11
11
|
};
|
|
12
12
|
export declare const createPermission: (request: CreateRequest) => Promise<CreateResponse>;
|
|
13
|
-
export declare const deletePermission: (functionName: string, statementId: string) => Promise<
|
|
13
|
+
export declare const deletePermission: (functionName: string, statementId: string) => Promise<boolean>;
|
|
@@ -6,6 +6,7 @@ export type Permission = Omit<CreateRequest, 'functionName' | 'statementId' | 'a
|
|
|
6
6
|
export type GetPermission = (context: StepContext) => Promise<Permission> | Permission;
|
|
7
7
|
export type PermissionParameters = {
|
|
8
8
|
getPermission: GetPermission;
|
|
9
|
+
fromService: string;
|
|
9
10
|
};
|
|
10
11
|
export type PermissionResult = CreateResponse & {
|
|
11
12
|
functionName: string;
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
export declare const prepareIdentityAccount: () => {
|
|
2
|
+
account: string;
|
|
3
|
+
}[];
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { PolicyResourceEvent } from '@ez4/project/library';
|
|
2
|
-
export declare const prepareExecutionPolicy: (event: PolicyResourceEvent) => Promise<import("@ez4/
|
|
2
|
+
export declare const prepareExecutionPolicy: (event: PolicyResourceEvent) => Promise<import("@ez4/stateful").EntryState<string>>;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ez4/aws-function",
|
|
3
3
|
"description": "EZ4: Self-managed AWS lambda function provider",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.16.0",
|
|
5
5
|
"author": "Silas B.",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"type": "module",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"directory": "packages/aws-function"
|
|
15
15
|
},
|
|
16
16
|
"engines": {
|
|
17
|
-
"node": ">=
|
|
17
|
+
"node": ">=22.3.0"
|
|
18
18
|
},
|
|
19
19
|
"exports": {
|
|
20
20
|
".": {
|
|
@@ -38,11 +38,11 @@
|
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
40
|
"@aws-sdk/client-lambda": "^3.758.0",
|
|
41
|
-
"@ez4/aws-common": "^0.
|
|
42
|
-
"@ez4/aws-identity": "^0.
|
|
43
|
-
"@ez4/project": "^0.
|
|
44
|
-
"@ez4/stateful": "^0.
|
|
45
|
-
"@ez4/utils": "^0.
|
|
41
|
+
"@ez4/aws-common": "^0.16.0",
|
|
42
|
+
"@ez4/aws-identity": "^0.16.0",
|
|
43
|
+
"@ez4/project": "^0.16.0",
|
|
44
|
+
"@ez4/stateful": "^0.16.0",
|
|
45
|
+
"@ez4/utils": "^0.16.0",
|
|
46
46
|
"@types/adm-zip": "^0.5.5",
|
|
47
47
|
"adm-zip": "^0.5.14"
|
|
48
48
|
}
|