@ez4/aws-function 0.26.0 → 0.28.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/handler.d.ts +1 -1
- package/dist/function/helpers/variables.d.ts +1 -1
- package/dist/function/service.d.ts +1 -1
- package/dist/function/types.d.ts +1 -1
- package/dist/function/utils.d.ts +1 -1
- package/dist/main.cjs +25 -25
- package/dist/main.d.ts +10 -10
- package/dist/main.mjs +36 -36
- package/dist/mapping/handler.d.ts +1 -1
- package/dist/mapping/service.d.ts +2 -2
- package/dist/mapping/types.d.ts +1 -1
- package/dist/mapping/utils.d.ts +1 -1
- package/dist/permission/handler.d.ts +1 -1
- package/dist/permission/service.d.ts +4 -4
- package/dist/permission/types.d.ts +1 -1
- package/dist/permission/utils.d.ts +1 -1
- package/package.json +12 -12
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { EntryState, EntryStates } from '@ez4/stateful';
|
|
2
2
|
import type { RoleState } from '@ez4/aws-identity';
|
|
3
3
|
import type { LogGroupState } from '@ez4/aws-logs';
|
|
4
|
-
import type { FunctionParameters, FunctionState } from './types
|
|
4
|
+
import type { FunctionParameters, FunctionState } from './types';
|
|
5
5
|
export declare const createFunction: <E extends EntryState>(state: EntryStates<E>, roleState: RoleState, logGroupState: LogGroupState | undefined, parameters: FunctionParameters) => FunctionState;
|
package/dist/function/types.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { EntryState, StepContext } from '@ez4/stateful';
|
|
2
2
|
import type { Arn } from '@ez4/aws-common';
|
|
3
|
-
import type { CreateRequest, ImportOrCreateResponse } from './client
|
|
3
|
+
import type { CreateRequest, ImportOrCreateResponse } from './client';
|
|
4
4
|
export declare const FunctionServiceName = "AWS:Lambda/Function";
|
|
5
5
|
export declare const FunctionServiceType = "aws:lambda.function";
|
|
6
6
|
export type GetFunctionBundle = (context: StepContext) => Promise<string> | string;
|
package/dist/function/utils.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { DeployOptions, EventContext } from '@ez4/project/library';
|
|
2
2
|
import type { EntryState, StepContext } from '@ez4/stateful';
|
|
3
|
-
import type { FunctionState } from './types
|
|
3
|
+
import type { FunctionState } from './types';
|
|
4
4
|
export declare const isFunctionState: (resource: EntryState) => resource is FunctionState;
|
|
5
5
|
export declare const tryGetFunctionState: (context: EventContext, functionName: string, options: DeployOptions) => FunctionState | undefined;
|
|
6
6
|
export declare const getFunctionState: (context: EventContext, functionName: string, options: DeployOptions) => FunctionState;
|
package/dist/main.cjs
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
"use strict";var Qe=Object.create;var A=Object.defineProperty;var Je=Object.getOwnPropertyDescriptor;var Ke=Object.getOwnPropertyNames;var _e=Object.getPrototypeOf,Xe=Object.prototype.hasOwnProperty;var n=(e,t)=>A(e,"name",{value:t,configurable:!0});var Ye=(e,t)=>{for(var r in t)A(e,r,{get:t[r],enumerable:!0})},
|
|
1
|
+
"use strict";var Qe=Object.create;var A=Object.defineProperty;var Je=Object.getOwnPropertyDescriptor;var Ke=Object.getOwnPropertyNames;var _e=Object.getPrototypeOf,Xe=Object.prototype.hasOwnProperty;var n=(e,t)=>A(e,"name",{value:t,configurable:!0});var Ye=(e,t)=>{for(var r in t)A(e,r,{get:t[r],enumerable:!0})},j=(e,t,r,o)=>{if(t&&
|
|
2
2
|
typeof t=="object"||typeof t=="function")for(let i of Ke(t))!Xe.call(e,i)&&i!==r&&
|
|
3
|
-
A(e,i,{get:()=>t[i],enumerable:!(o=Je(t,i))||o.enumerable});return e};var et=(e,t,r)=>(r=e!=null?Qe(_e(e)):{},
|
|
4
|
-
enumerable:!0}):r,e)),tt=e=>
|
|
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
5
|
MappingServiceName:()=>f,MappingServiceType:()=>x,PermissionServiceName:()=>P,PermissionServiceType:()=>S,
|
|
6
6
|
createFunction:()=>ht,createMapping:()=>Nt,createPermission:()=>It,getFunctionArn:()=>ft,
|
|
7
|
-
getFunctionName:()=>C,getFunctionState:()=>gt,getPermission:()=>Mt,isFunctionState:()=>
|
|
7
|
+
getFunctionName:()=>C,getFunctionState:()=>gt,getPermission:()=>Mt,isFunctionState:()=>q,
|
|
8
8
|
isMappingState:()=>Tt,registerTriggers:()=>Et,tryGetFunctionArn:()=>me,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"),
|
|
11
|
-
|
|
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
12
|
t))throw new Q.InvalidParameterError(p,`${t} is an invalid variable name .`)},"a\
|
|
13
13
|
ssertVariables"),E=n(e=>{let t={};for(let r in e)t[r]=(0,J.hashData)(e[r]);return t},
|
|
14
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(
|
|
@@ -55,17 +55,17 @@ getFunctionHandler"),ot=n((e,t)=>!!e.result&&e.result.functionArn===t.result?.fu
|
|
|
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
57
|
t.entryId);return ae(e,r)},"replaceResource"),ae=n(async(e,t)=>{let r=e.parameters,
|
|
58
|
-
o=r.functionName,i=(0,
|
|
58
|
+
o=r.functionName,i=(0,B.getRoleArn)(p,o,t),a=(0,O.getLogGroupName)(p,o,t),[u,l]=await Promise.
|
|
59
59
|
all([(0,F.getBundleHash)(...r.getFunctionFiles()),r.getFunctionBundle(t)]),y=await Y(
|
|
60
60
|
o);if(y)return await G(o,{...r,logGroup:a,roleArn:i}),await z(o,{publish:!1,sourceFile:l}),
|
|
61
61
|
await V(y.functionArn,{...r.tags}),H(e),{functionArn:y.functionArn,sourceHash:u,
|
|
62
62
|
logGroup:a,roleArn:i};let D=await ee({...r,publish:!0,sourceFile:l,logGroup:a,roleArn:i});
|
|
63
63
|
return H(e),{functionArn:D.functionArn,sourceHash:u,logGroup:a,roleArn:i}},"crea\
|
|
64
64
|
teResource"),at=n(async(e,t,r)=>{let{parameters:o,result:i}=e;if(!i)return;let a=o.
|
|
65
|
-
functionName,u=(0,
|
|
66
|
-
p,a,r),D=t.result?.logGroup??y
|
|
67
|
-
roleArn:l,logGroup:D};await ct(a
|
|
68
|
-
a,o,t.result,r);return H(e),{...i,...
|
|
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
69
|
pt=n(async e=>{let{result:t,parameters:r}=e;t&&await te(r.functionName)},"delete\
|
|
70
70
|
Resource"),H=n(e=>{let{parameters:t}=e;return t.variables&&(t.variables=E(t.variables)),
|
|
71
71
|
e},"lockSensitiveData"),ct=n(async(e,t,r)=>{let o={...t,...t.variables&&{variables:E(
|
|
@@ -75,17 +75,17 @@ t.tags,r.tags,o=>V(e,o),o=>ne(e,o))},"checkTagUpdates"),ut=n(async(e,t,r,o)=>{le
|
|
|
75
75
|
...t.getFunctionFiles()),a=r?.sourceHash;if(i===a&&!o.force)return r;let u=await t.
|
|
76
76
|
getFunctionBundle(o),{functionVersion:l}=await z(e,{publish:!r?.functionVersion,
|
|
77
77
|
sourceFile:u});return{sourceHash:i,...l&&{functionVersion:l}}},"checkSourceCodeU\
|
|
78
|
-
pdates");var ce=n(()=>{(0,pe.registerProvider)(g,se())},"registerFunctionProvider");var Se=require("@ez4/aws-common");var fe=require("@ez4/aws-common");var
|
|
79
|
-
super(`Function ${t} wasn't found.`)}};var
|
|
80
|
-
t,r);if(
|
|
81
|
-
t,r);if(!
|
|
82
|
-
getDependencies(g).at(0)?.parameters;if(!o?.functionName)throw new
|
|
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(
|
|
80
|
+
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
83
|
e,t,"functionName");return o.functionName},"getFunctionName"),me=n(e=>e.getDependencies(
|
|
84
84
|
g)[0]?.result?.functionArn,"tryGetFunctionArn"),ft=n((e,t,r)=>{let o=me(r);if(!o)
|
|
85
|
-
throw new
|
|
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
86
|
let t=e.statementId??`SID${Date.now()}`;return await ue.send(new w.AddPermissionCommand(
|
|
87
87
|
{StatementId:t,FunctionName:e.functionName,SourceArn:e.sourceArn,Principal:e.principal,
|
|
88
|
-
Action:e.action})),{statementId:t}},"createPermission"),ge=n(async(e,t)=>{
|
|
88
|
+
Action:e.action})),{statementId:t}},"createPermission"),ge=n(async(e,t)=>{$.Logger.
|
|
89
89
|
logDelete(P,e);try{return await ue.send(new w.RemovePermissionCommand({FunctionName:e,
|
|
90
90
|
StatementId:t})),!0}catch(r){if(!(r instanceof w.ResourceNotFoundException))throw r;
|
|
91
91
|
return!1}},"deletePermission");var ye=n(()=>({equals:yt,create:de,replace:St,preview:dt,update:Ft,delete:wt}),"\
|
|
@@ -96,8 +96,8 @@ r)},"replaceResource"),de=n(async(e,t)=>{let r=e.parameters,o=C(P,"permission",t
|
|
|
96
96
|
i=await r.getPermission(t);return{statementId:(await le({functionName:o,principal:i.
|
|
97
97
|
principal,sourceArn:i.sourceArn,action:"lambda:InvokeFunction"})).statementId,functionName:o}},
|
|
98
98
|
"createResource"),Ft=n(async()=>{},"updateResource"),wt=n(async e=>{let t=e.result;
|
|
99
|
-
t&&await ge(t.functionName,t.statementId)},"deleteResource");var Fe=n(()=>{(0,Se.registerProvider)(S,ye())},"registerPermissionProvider");var Ie=require("@ez4/aws-common");var be=require("@ez4/aws-common"),N=require("@ez4/utils");var m=require("@aws-sdk/client-lambda"),R=require("@ez4/aws-common"),we=require("@ez4/utils");var f="AWS:Lambda/Mapping",x="aws:lambda.mapping"
|
|
100
|
-
Queue="sqs",r))(
|
|
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.
|
|
101
101
|
send(new m.ListEventSourceMappingsCommand({FunctionName:e,EventSourceArn:t})),[o]=r.
|
|
102
102
|
EventSourceMappings;return o?{eventId:o.UUID}:void 0},"importMapping"),Pe=n(async e=>{
|
|
103
103
|
let{sourceArn:t,functionName:r}=e;R.Logger.logCreate(f,r);let i=(await b.send(new m.CreateEventSourceMappingCommand(
|
|
@@ -135,12 +135,12 @@ licyDocument");var De=n(async e=>{let{state:t,options:r}=e,o=(0,Ue.getServiceNam
|
|
|
135
135
|
-lambda-policy`;return(0,T.tryGetPolicy)(t,i)??(0,T.createPolicy)(t,{tags:r.tags,
|
|
136
136
|
policyDocument:await Te(o),policyName:i})},"prepareExecutionPolicy");var Le=!1,Et=n(()=>{Le||((0,ze.registerTriggers)(),(0,Ge.registerTriggers)(),(0,Ve.registerTriggers)(),
|
|
137
137
|
(0,He.createTrigger)("@ez4/aws-function",{"deploy:prepareIdentityAccount":Ne,"de\
|
|
138
|
-
ploy:prepareExecutionPolicy":De}),ce(),Fe(),Me(),Le=!0)},"registerTriggers");var U=require("@ez4/utils"),
|
|
139
|
-
t.entryId,i),u=[t.entryId];return r&&u.push(r.entryId),(0,
|
|
140
|
-
entryId:a,dependencies:u,parameters:{...o,functionName:i}})},"createFunction");var
|
|
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)(
|
|
141
141
|
e,{type:S,entryId:i,dependencies:[t.entryId,r.entryId],parameters:o})},"createPe\
|
|
142
|
-
rmission"),Mt=n((e,t,r)=>{let o=(0,
|
|
143
|
-
|
|
142
|
+
rmission"),Mt=n((e,t,r)=>{let o=(0,k.hashData)(S,t.entryId,r.entryId),i=e[o];return i&&
|
|
143
|
+
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
144
|
e,{type:x,entryId:i,dependencies:[t.entryId,r.entryId],parameters:o})},"createMa\
|
|
145
145
|
pping");var Tt=n(e=>e.type===x,"isMappingState");0&&(module.exports={FunctionServiceName,FunctionServiceType,MappingService,MappingServiceName,
|
|
146
146
|
MappingServiceType,PermissionServiceName,PermissionServiceType,createFunction,createMapping,
|
package/dist/main.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
export * from './triggers/register
|
|
2
|
-
export * from './types/variables
|
|
3
|
-
export * from './function/service
|
|
4
|
-
export * from './function/types
|
|
5
|
-
export * from './function/utils
|
|
6
|
-
export * from './permission/service
|
|
7
|
-
export * from './permission/types
|
|
8
|
-
export * from './mapping/service
|
|
9
|
-
export * from './mapping/types
|
|
10
|
-
export * from './mapping/utils
|
|
1
|
+
export * from './triggers/register';
|
|
2
|
+
export * from './types/variables';
|
|
3
|
+
export * from './function/service';
|
|
4
|
+
export * from './function/types';
|
|
5
|
+
export * from './function/utils';
|
|
6
|
+
export * from './permission/service';
|
|
7
|
+
export * from './permission/types';
|
|
8
|
+
export * from './mapping/service';
|
|
9
|
+
export * from './mapping/types';
|
|
10
|
+
export * from './mapping/utils';
|
package/dist/main.mjs
CHANGED
|
@@ -1,70 +1,70 @@
|
|
|
1
|
-
var ve=Object.defineProperty;var n=(e,t)=>ve(e,"name",{value:t,configurable:!0});import{registerTriggers as
|
|
2
|
-
import{registerTriggers as
|
|
3
|
-
import{deepCompare as
|
|
4
|
-
import{getRoleArn as
|
|
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
5
|
UpdateFunctionCodeCommand as Le,UpdateFunctionConfigurationCommand as ze,PublishVersionCommand as Ge,
|
|
6
|
-
TagResourceCommand as Ve,UntagResourceCommand as He,waitUntilFunctionActive as
|
|
7
|
-
waitUntilFunctionUpdated as U,waitUntilPublishedVersionActive as
|
|
6
|
+
TagResourceCommand as Ve,UntagResourceCommand as He,waitUntilFunctionActive as Oe,
|
|
7
|
+
waitUntilFunctionUpdated as U,waitUntilPublishedVersionActive as Be,ResourceNotFoundException as D,
|
|
8
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
|
|
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
10
|
t))throw new Ae(a,`${t} is an invalid variable name .`)},"assertVariables"),x=n(
|
|
11
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
12
|
"getZipBuffer");var g=new Ne({}),R={minDelay:15,maxWaitTime:1800,maxDelay:60,client:g},V=n(async(e,t)=>{
|
|
13
13
|
c.logImport(a,e);try{let r=await g.send(new Te({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
|
-
variables:r}=e;c.logCreate(a,t),r&&b(r);let o
|
|
17
|
-
s=await
|
|
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,
|
|
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
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
|
|
22
|
-
let p=s.FunctionArn;return e.publish?{functionVersion:await
|
|
21
|
+
Variables:r},Tags:{...e.tags,ManagedBy:"EZ4"}})));c.logWait(a,t),await Oe(R,{FunctionName:t});
|
|
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
|
|
24
|
+
ode`);let r=await q(t.sourceFile),o=await g.send(new Le({FunctionName:e,Publish:t.
|
|
25
25
|
publish,ZipFile:r}));c.logWait(a,e),await U(R,{FunctionName:e});let i=o.FunctionArn;
|
|
26
|
-
return t.publish?{functionVersion:await
|
|
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
28
|
`${e} configuration`),o&&b(o),await g.send(new ze({FunctionName:e,Description:t.
|
|
29
29
|
description,MemorySize:t.memory,Timeout:t.timeout,Role:t.roleArn,Runtime:"nodejs\
|
|
30
|
-
22.x",...r&&{Handler
|
|
30
|
+
22.x",...r&&{Handler:$(r)},LoggingConfig:{LogGroup:t.logGroup,ApplicationLogLevel:t.
|
|
31
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"),
|
|
33
|
-
c.logDelete(a,e),await
|
|
34
|
-
!0}catch(t){if(!(t instanceof D))throw t;return!1}})},"deleteFunction"),
|
|
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
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
|
|
36
|
+
Version;return await Be(R,{FunctionName:e,Qualifier:r}),r},"publishFunction"),I=n(
|
|
37
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"),
|
|
38
|
+
Tags:{...t,ManagedBy:"EZ4"}}))},"tagFunction"),W=n(async(e,t)=>{let r=G(e)?.resourceName??
|
|
39
39
|
e;c.logUntag(a,r),await g.send(new He({Resource:e,TagKeys:t}))},"untagFunction"),
|
|
40
|
-
|
|
41
|
-
ame");var
|
|
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
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=
|
|
43
|
+
"equalsResource"),Je=n(async(e,t)=>{let r=e.parameters,o=t.parameters,i=ke({...r,
|
|
44
44
|
dependencies:e.dependencies,sourceHash:await N(...r.getFunctionFiles()),...r.variables&&
|
|
45
45
|
{variables:x(r.variables)}},{...o,dependencies:t.dependencies,sourceHash:t.result?.
|
|
46
46
|
sourceHash});if(i.counts)return{...i,name:r.functionName}},"previewResource"),Ke=n(
|
|
47
|
-
async(e,t,r)=>{if(t.result)throw new
|
|
48
|
-
eplaceResource"),Q=n(async(e,t)=>{let r=e.parameters,o=r.functionName,i=
|
|
49
|
-
s
|
|
47
|
+
async(e,t,r)=>{if(t.result)throw new Ze(a,e.entryId,t.entryId);return Q(e,r)},"r\
|
|
48
|
+
eplaceResource"),Q=n(async(e,t)=>{let r=e.parameters,o=r.functionName,i=k(a,o,t),
|
|
49
|
+
s=Z(a,o,t),[p,m]=await Promise.all([N(...r.getFunctionFiles()),r.getFunctionBundle(
|
|
50
50
|
t)]),u=await V(o);if(u)return await h(o,{...r,logGroup:s,roleArn:i}),await E(o,{
|
|
51
51
|
publish:!1,sourceFile:m}),await I(u.functionArn,{...r.tags}),M(e),{functionArn:u.
|
|
52
52
|
functionArn,sourceHash:p,logGroup:s,roleArn:i};let A=await H({...r,publish:!0,sourceFile:m,
|
|
53
53
|
logGroup:s,roleArn:i});return M(e),{functionArn:A.functionArn,sourceHash:p,logGroup:s,
|
|
54
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=
|
|
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
56
|
logGroup??u,Pe={...o,roleArn:p,logGroup:u},Re={...t.parameters,roleArn:m,logGroup:A};
|
|
57
57
|
await Ye(s,Pe,Re),await et(i.functionArn,o,t.parameters);let Ce=await tt(s,o,t.result,
|
|
58
58
|
r);return M(e),{...i,...Ce,logGroup:u,roleArn:p}},"updateResource"),Xe=n(async e=>{
|
|
59
|
-
let{result:t,parameters:r}=e;t&&await
|
|
59
|
+
let{result:t,parameters:r}=e;t&&await O(r.functionName)},"deleteResource"),M=n(e=>{
|
|
60
60
|
let{parameters:t}=e;return t.variables&&(t.variables=x(t.variables)),e},"lockSen\
|
|
61
61
|
sitiveData"),Ye=n(async(e,t,r)=>{let o={...t,...t.variables&&{variables:x(t.variables)}};
|
|
62
|
-
!
|
|
63
|
-
ConfigurationUpdates"),et=n(async(e,t,r)=>{await
|
|
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
64
|
e,o))},"checkTagUpdates"),tt=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,
|
|
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){
|
|
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
70
|
t,r);if(!_(o))throw new C(t);return o},"getFunctionState"),F=n((e,t,r)=>{let o=r.
|
|
@@ -118,13 +118,13 @@ 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
119
|
"updateResource"),Dt=n(async e=>{let t=e.result;t&&await ce(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
|
|
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:[
|
|
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=
|
|
124
|
-
t,i)??
|
|
125
|
-
tionPolicy");var Fe=!1,
|
|
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
126
|
dentityAccount":ye,"deploy:prepareExecutionPolicy":Se}),J(),oe(),fe(),Fe=!0)},"r\
|
|
127
|
-
egisterTriggers");import{toKebabCase as
|
|
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
129
|
functionName:i}})},"createFunction");import{attachEntry as Kt}from"@ez4/stateful";import{hashData as xe}from"@ez4/utils";var we=n(e=>e.type===y,"isPermissionState");var io=n((e,t,r,o)=>{let i=xe(y,t.entryId,r.entryId);return Kt(e,{type:y,entryId:i,
|
|
130
130
|
dependencies:[t.entryId,r.entryId],parameters:o})},"createPermission"),so=n((e,t,r)=>{
|
|
@@ -133,5 +133,5 @@ dependencies:[t.entryId,r.entryId],parameters:o})},"createMapping");var So=n(e=>
|
|
|
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
|
-
|
|
136
|
+
qn as registerTriggers,nt as tryGetFunctionArn,zr as tryGetFunctionState};
|
|
137
137
|
//# sourceMappingURL=main.mjs.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { EntryState, EntryStates } from '@ez4/stateful';
|
|
2
|
-
import type { MappingParameters, MappingState } from './types
|
|
3
|
-
import type { FunctionState } from '../function/types
|
|
2
|
+
import type { MappingParameters, MappingState } from './types';
|
|
3
|
+
import type { FunctionState } from '../function/types';
|
|
4
4
|
export declare const createMapping: <E extends EntryState>(state: EntryStates<E>, sourceState: EntryState, functionState: FunctionState, parameters: MappingParameters) => MappingState;
|
package/dist/mapping/types.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Arn } from '@ez4/aws-common';
|
|
2
2
|
import type { EntryState, StepContext } from '@ez4/stateful';
|
|
3
|
-
import type { CreateRequest, ImportOrCreateResponse } from './client
|
|
3
|
+
import type { CreateRequest, ImportOrCreateResponse } from './client';
|
|
4
4
|
export declare const MappingServiceName = "AWS:Lambda/Mapping";
|
|
5
5
|
export declare const MappingServiceType = "aws:lambda.mapping";
|
|
6
6
|
export type GetMappingSourceArn = (context: StepContext) => Promise<Arn> | Arn;
|
package/dist/mapping/utils.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { EntryState, EntryStates } from '@ez4/stateful';
|
|
2
|
-
import type { FunctionState } from '../function/types
|
|
3
|
-
import type { PermissionParameters, PermissionState } from './types
|
|
4
|
-
import { PermissionServiceType } from './types
|
|
2
|
+
import type { FunctionState } from '../function/types';
|
|
3
|
+
import type { PermissionParameters, PermissionState } from './types';
|
|
4
|
+
import { PermissionServiceType } from './types';
|
|
5
5
|
export declare const createPermission: <E extends EntryState>(state: EntryStates<E>, sourceState: EntryState, functionState: FunctionState, parameters: PermissionParameters) => PermissionState;
|
|
6
6
|
export declare const getPermission: <E extends EntryState>(state: EntryStates<E>, sourceState: EntryState, functionState: FunctionState) => (E & EntryState & {
|
|
7
7
|
type: typeof PermissionServiceType;
|
|
8
8
|
parameters: PermissionParameters;
|
|
9
|
-
result?: import("./types
|
|
9
|
+
result?: import("./types").PermissionResult;
|
|
10
10
|
}) | null;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { EntryState, StepContext } from '@ez4/stateful';
|
|
2
|
-
import type { CreateRequest, CreateResponse } from './client
|
|
2
|
+
import type { CreateRequest, CreateResponse } from './client';
|
|
3
3
|
export declare const PermissionServiceName = "AWS:Lambda/Permission";
|
|
4
4
|
export declare const PermissionServiceType = "aws:lambda.permission";
|
|
5
5
|
export type Permission = Omit<CreateRequest, 'functionName' | 'statementId' | 'action'>;
|
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.28.0",
|
|
5
5
|
"author": "Silas B.",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"type": "module",
|
|
@@ -24,27 +24,27 @@
|
|
|
24
24
|
}
|
|
25
25
|
},
|
|
26
26
|
"workspaces": [
|
|
27
|
-
"
|
|
27
|
+
"foundation/*",
|
|
28
|
+
"contracts/*",
|
|
29
|
+
"providers/aws/*"
|
|
28
30
|
],
|
|
29
31
|
"scripts": {
|
|
30
32
|
"lint": "eslint --cache",
|
|
31
33
|
"clean": "rm -f *.tsbuildinfo && rm -rf dist/*",
|
|
32
|
-
"build": "tsc
|
|
33
|
-
"test": "npm run
|
|
34
|
-
"test:only": "npm run test:types && node --env-file ../../../local.env --test-only --test --import ../../../tools/tsnode.mjs test/*.spec.ts",
|
|
35
|
-
"test:types": "npm run build && tsc -p tsconfig.test.json",
|
|
34
|
+
"build": "tsc && node tools/bundler.mjs",
|
|
35
|
+
"test": "npm run build && tsc -p tsconfig.test.json && ez4 test -e ../../../local.env",
|
|
36
36
|
"local:publish": "npm run build && npm run clean:registry && npm publish --registry http://localhost:4873",
|
|
37
37
|
"clean:registry": "rm -rf ../../../.registry/@ez4/aws-function",
|
|
38
38
|
"live:publish": "npm run build && npm publish --access public"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
41
|
"@aws-sdk/client-lambda": "^3.758.0",
|
|
42
|
-
"@ez4/aws-common": "^0.
|
|
43
|
-
"@ez4/aws-identity": "^0.
|
|
44
|
-
"@ez4/aws-logs": "^0.
|
|
45
|
-
"@ez4/project": "^0.
|
|
46
|
-
"@ez4/stateful": "^0.
|
|
47
|
-
"@ez4/utils": "^0.
|
|
42
|
+
"@ez4/aws-common": "^0.28.0",
|
|
43
|
+
"@ez4/aws-identity": "^0.28.0",
|
|
44
|
+
"@ez4/aws-logs": "^0.28.0",
|
|
45
|
+
"@ez4/project": "^0.28.0",
|
|
46
|
+
"@ez4/stateful": "^0.28.0",
|
|
47
|
+
"@ez4/utils": "^0.28.0",
|
|
48
48
|
"@types/adm-zip": "^0.5.5",
|
|
49
49
|
"adm-zip": "^0.5.14"
|
|
50
50
|
}
|