@ez4/aws-topic 0.43.0 → 0.44.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.
Files changed (3) hide show
  1. package/dist/main.cjs +45 -45
  2. package/dist/main.mjs +90 -90
  3. package/package.json +15 -15
package/dist/main.cjs CHANGED
@@ -1,10 +1,10 @@
1
- "use strict";var O=Object.defineProperty;var lt=Object.getOwnPropertyDescriptor;var gt=Object.getOwnPropertyNames;var yt=Object.prototype.hasOwnProperty;var i=(t,e)=>O(t,"name",{value:e,configurable:!0});var dt=(t,e)=>{for(var r in e)O(t,r,{get:e[r],enumerable:!0})},Tt=(t,e,r,o)=>{if(e&&
2
- typeof e=="object"||typeof e=="function")for(let n of gt(e))!yt.call(t,n)&&n!==r&&
3
- O(t,n,{get:()=>e[n],enumerable:!(o=lt(e,n))||o.enumerable});return t};var bt=t=>Tt(O({},"__esModule",{value:!0}),t);var kt={};dt(kt,{SubscriptionServiceName:()=>m,SubscriptionServiceType:()=>T,TopicServiceName:()=>l,
1
+ "use strict";var O=Object.defineProperty;var gt=Object.getOwnPropertyDescriptor;var yt=Object.getOwnPropertyNames;var dt=Object.prototype.hasOwnProperty;var i=(t,e)=>O(t,"name",{value:e,configurable:!0});var Tt=(t,e)=>{for(var r in e)O(t,r,{get:e[r],enumerable:!0})},bt=(t,e,r,o)=>{if(e&&
2
+ typeof e=="object"||typeof e=="function")for(let n of yt(e))!dt.call(t,n)&&n!==r&&
3
+ O(t,n,{get:()=>e[n],enumerable:!(o=gt(e,n))||o.enumerable});return t};var vt=t=>bt(O({},"__esModule",{value:!0}),t);var jt={};Tt(jt,{SubscriptionServiceName:()=>m,SubscriptionServiceType:()=>T,TopicServiceName:()=>l,
4
4
  TopicServiceType:()=>g,createSubscription:()=>$,createSubscriptionFunction:()=>ee,
5
- createTopic:()=>L,createTopicStateId:()=>j,getTopic:()=>Nt,getTopicArn:()=>Y,getTopicState:()=>X,
6
- isSubscriptionState:()=>Mt,isTopicState:()=>q,registerTriggers:()=>Ft});module.exports=
7
- bt(kt);var Xe=require("@ez4/aws-common"),Ye=require("@ez4/aws-identity"),et=require("@ez4/aws-function"),
5
+ createTopic:()=>L,createTopicStateId:()=>j,getTopic:()=>Ft,getTopicArn:()=>Y,getTopicState:()=>X,
6
+ isSubscriptionState:()=>kt,isTopicState:()=>q,registerTriggers:()=>zt});module.exports=
7
+ vt(jt);var Xe=require("@ez4/aws-common"),Ye=require("@ez4/aws-identity"),et=require("@ez4/aws-function"),
8
8
  tt=require("@ez4/aws-queue"),rt=require("@ez4/topic/library"),ot=require("@ez4/project/library");var ge=require("@ez4/aws-common");var S=require("@ez4/aws-common"),D=require("@ez4/aws-identity"),fe=require("@ez4/utils");var E=require("@ez4/aws-identity");var w=i((t,e,r)=>`arn:aws:sns:${e}:${r}:${t}`,"buildTopicArn"),ne=i(async t=>{let[
9
9
  e,r]=await Promise.all([(0,E.getRegion)(),(0,E.getAccountId)()]);return(0,E.createPolicyDocument)(
10
10
  [{permissions:["sns:Publish"],resourceIds:t.map(o=>w(`${o}-*`,e,r))}])},"getPoli\
@@ -17,21 +17,21 @@ true",FifoThroughputScope:"MessageGroup",FifoTopic:"true"}},Tags:(0,W.getTagList
17
17
  ic"),me=i(async(t,e,r)=>{t.update("Tag topic"),await d().send(new f.TagResourceCommand(
18
18
  {ResourceArn:e,Tags:(0,W.getTagList)({...r,ManagedBy:"EZ4"})}))},"tagTopic"),ue=i(
19
19
  async(t,e,r)=>{t.update("Untag topic"),await d().send(new f.UntagResourceCommand(
20
- {ResourceArn:e,TagKeys:r}))},"untagTopic");var l="AWS:SNS/Topic",g="aws:sns.topic";var Se=i(()=>({equals:vt,create:le,replace:Et,preview:xt,update:wt,delete:Rt}),"\
21
- getTopicHandler"),vt=i((t,e)=>!!t.result&&t.result.topicArn===e.result?.topicArn,
22
- "equalsResource"),xt=i((t,e)=>{let r={...t.parameters,dependencies:t.dependencies},
20
+ {ResourceArn:e,TagKeys:r}))},"untagTopic");var l="AWS:SNS/Topic",g="aws:sns.topic";var Se=i(()=>({equals:xt,create:le,replace:wt,preview:Et,update:Rt,delete:At}),"\
21
+ getTopicHandler"),xt=i((t,e)=>!!t.result&&t.result.topicArn===e.result?.topicArn,
22
+ "equalsResource"),Et=i((t,e)=>{let r={...t.parameters,dependencies:t.dependencies},
23
23
  o={...e.parameters,dependencies:e.dependencies},n=(0,fe.deepCompare)(r,o);if(n.counts)
24
- return{...n,name:r.topicName}},"previewResource"),Et=i(async(t,e)=>{if(e.result)
24
+ return{...n,name:r.topicName}},"previewResource"),wt=i(async(t,e)=>{if(e.result)
25
25
  throw new S.ReplaceResourceError(l,t.entryId,e.entryId);return le(t)},"replaceRe\
26
26
  source"),le=i(t=>{let{parameters:e}=t;return S.OperationLogger.logExecution(l,e.
27
27
  topicName,"creation",async r=>{if(e.import){let[n,c]=await Promise.all([(0,D.getRegion)(),
28
28
  (0,D.getAccountId)()]);return{topicArn:w(e.topicName,n,c)}}let{topicArn:o}=await se(
29
- r,e);return{topicArn:o}})},"createResource"),wt=i((t,e)=>{let{result:r,parameters:o}=t,
29
+ r,e);return{topicArn:o}})},"createResource"),Rt=i((t,e)=>{let{result:r,parameters:o}=t,
30
30
  {topicName:n}=o;if(!r)throw new S.CorruptedResourceError(l,n);return o.import?Promise.
31
- resolve(r):S.OperationLogger.logExecution(l,n,"updates",async c=>(await At(c,r.topicArn,
32
- o,e.parameters),r))},"updateResource"),Rt=i(async t=>{let{result:e,parameters:r}=t;
31
+ resolve(r):S.OperationLogger.logExecution(l,n,"updates",async c=>(await Ct(c,r.topicArn,
32
+ o,e.parameters),r))},"updateResource"),At=i(async t=>{let{result:e,parameters:r}=t;
33
33
  !e||r.import||await S.OperationLogger.logExecution(l,r.topicName,"deletion",async o=>{
34
- await ae(o,e.topicArn)})},"deleteResource"),At=i(async(t,e,r,o)=>{await(0,S.applyTagUpdates)(
34
+ await ae(o,e.topicArn)})},"deleteResource"),Ct=i(async(t,e,r,o)=>{await(0,S.applyTagUpdates)(
35
35
  r.tags,o.tags,n=>me(t,e,n),n=>ue(t,e,n))},"checkTagUpdates");var ye=i(()=>{(0,ge.tryRegisterProvider)(g,Se())},"registerTopicProvider");var we=require("@ez4/aws-common");var h=require("@ez4/aws-common"),ve=require("@ez4/utils");var v=require("@ez4/aws-common");var R=require("@aws-sdk/client-sns");var de=i(async(t,e)=>{t.update("Creating topic subscription");let{topicArn:r,protocol:o,
36
36
  endpoint:n}=e;return{subscriptionArn:(await d().send(new R.SubscribeCommand({TopicArn:r,
37
37
  Protocol:o,Endpoint:n,ReturnSubscriptionArn:!0,Attributes:{...o==="sqs"&&{RawMessageDelivery:"\
@@ -41,17 +41,17 @@ Deleting topic subscription");try{return await d().send(new R.UnsubscribeCommand
41
41
  return!1}},"deleteSubscription");var be=i((t,e)=>{if(!(0,v.isArn)(e))throw new v.InvalidParameterError(t,`endpoin\
42
42
  t ${e} is not supported.`);let{service:r}=(0,v.parseArn)(e);switch(r){case"lambd\
43
43
  a":case"sqs":return r}throw new v.InvalidParameterError(t,`protocol ${r} is not \
44
- supported.`)},"getSubscriptionProtocol");var m="AWS:SNS/Subscription",T="aws:sns.subscription";var xe=i(()=>({equals:Ct,create:Ee,replace:ht,preview:Pt,update:Lt,delete:It}),"\
45
- getSubscriptionHandler"),Ct=i((t,e)=>!!t.result&&t.result.subscriptionArn===e.result?.
46
- subscriptionArn,"equalsResource"),Pt=i((t,e)=>{let r={...t.parameters,dependencies:t.
44
+ supported.`)},"getSubscriptionProtocol");var m="AWS:SNS/Subscription",T="aws:sns.subscription";var xe=i(()=>({equals:Pt,create:Ee,replace:Lt,preview:ht,update:It,delete:Nt}),"\
45
+ getSubscriptionHandler"),Pt=i((t,e)=>!!t.result&&t.result.subscriptionArn===e.result?.
46
+ subscriptionArn,"equalsResource"),ht=i((t,e)=>{let r={...t.parameters,dependencies:t.
47
47
  dependencies},o={...e.parameters,dependencies:e.dependencies},n=(0,ve.deepCompare)(
48
48
  r,o,{exclude:{getTopicArn:!0,getEndpoint:!0}});if(n.counts)return{...n,name:r.fromService}},
49
- "previewResource"),ht=i(async(t,e,r)=>{if(e.result)throw new h.ReplaceResourceError(
49
+ "previewResource"),Lt=i(async(t,e,r)=>{if(e.result)throw new h.ReplaceResourceError(
50
50
  m,t.entryId,e.entryId);return Ee(t,r)},"replaceResource"),Ee=i((t,e)=>{let{parameters:r}=t;
51
51
  return h.OperationLogger.logExecution(m,r.fromService,"creation",async o=>{let[n,
52
52
  c]=await Promise.all([r.getTopicArn(e),r.getEndpoint(e)]),{subscriptionArn:p}=await de(
53
53
  o,{protocol:be(m,c),topicArn:n,endpoint:c});return{subscriptionArn:p,topicArn:n,
54
- endpoint:c}})},"createResource"),Lt=i(async()=>{},"updateResource"),It=i(async t=>{
54
+ endpoint:c}})},"createResource"),It=i(async()=>{},"updateResource"),Nt=i(async t=>{
55
55
  let{result:e,parameters:r}=t;e&&await h.OperationLogger.logExecution(m,r.fromService,
56
56
  "deletion",async o=>{await Te(o,e.subscriptionArn)})},"deleteResource");var Re=i(()=>{(0,we.tryRegisterProvider)(T,xe())},"registerSubscriptionProvider");var K=require("@ez4/topic/library"),Ge=require("@ez4/project/library");var Ce=require("@ez4/stateful"),Pe=require("@ez4/utils");var Ae=require("@ez4/aws-common"),k=require("@ez4/utils");var M=class extends Error{static{i(this,"TopicNotFoundError")}constructor(e){super(
57
57
  `Topic service ${e} wasn't found.`)}};var j=i((t,e=!0)=>(0,k.hashData)(g,e?(0,k.toKebabCase)(t):t),"createTopicStateId"),
@@ -60,7 +60,7 @@ o))throw new M(e);return o},"getTopicState"),Y=i((t,e,r)=>{let o=r.getDependenci
60
60
  g).at(0)?.result;if(!o?.topicArn)throw new Ae.IncompleteResourceError(t,e,"topic\
61
61
  Arn");return o.topicArn},"getTopicArn");var L=i((t,e)=>{let r=(0,Pe.toKebabCase)(e.topicName),o=e.fifoMode?`${r}.fifo`:r,
62
62
  n=j(o,!1);return(0,Ce.attachEntry)(t,{type:g,entryId:n,dependencies:[],parameters:{
63
- ...e,topicName:o}})},"createTopic"),Nt=i((t,e)=>{let r=j(e),o=t[r];return o&&q(o)?
63
+ ...e,topicName:o}})},"createTopic"),Ft=i((t,e)=>{let r=j(e),o=t[r];return o&&q(o)?
64
64
  o:null},"getTopic");var N=require("@ez4/project/library"),H=require("@ez4/aws-function"),F=require("@ez4/topic/library"),
65
65
  G=require("@ez4/aws-common"),re=require("@ez4/aws-identity"),$e=require("@ez4/aws-logs"),
66
66
  oe=require("@ez4/aws-queue");var ze=require("@ez4/aws-function"),Oe=require("@ez4/utils"),De=require("@ez4/project");var he=require("node:path"),Le=require("@ez4/project/library"),Ie=require("@ez4/aws-function"),
@@ -72,9 +72,9 @@ debug:p})},"bundleSubscriptionFunction");var ee=i((t,e,r,o)=>{let{handler:n,vari
72
72
  return(0,ze.createFunction)(t,e,r,{handlerName:"snsEntryPoint",sourceFile:n.sourceFile,
73
73
  functionName:o.functionName,description:o.description,logLevel:p?De.LogLevel.Debug:
74
74
  o.logLevel,architecture:o.architecture,runtime:o.runtime,release:o.release,timeout:o.
75
- timeout,memory:o.memory,files:o.files,tags:o.tags,getFunctionVariables:i(()=>c.reduce(
76
- (a,z)=>({...a,...z}),{}),"getFunctionVariables"),getFunctionBundle:i(a=>Fe(o,[...a.
77
- getDependencies(),...a.getConnections()]),"getFunctionBundle"),getFunctionFiles:i(
75
+ timeout,memory:o.memory,files:o.files,tags:o.tags,vpc:o.vpc,getFunctionVariables:i(
76
+ ()=>c.reduce((a,z)=>({...a,...z}),{}),"getFunctionVariables"),getFunctionBundle:i(
77
+ a=>Fe(o,[...a.getDependencies(),...a.getConnections()]),"getFunctionBundle"),getFunctionFiles:i(
78
78
  ()=>[n.sourceFile,n.dependencies],"getFunctionFiles"),getFunctionHash:i(()=>(0,Oe.hashObject)(
79
79
  {architecture:s,messageSchema:u,debug:p}),"getFunctionHash")})},"createSubscript\
80
80
  ionFunction");var y=require("@ez4/aws-function"),C=require("@ez4/aws-queue"),A=require("@ez4/aws-identity"),
@@ -102,23 +102,23 @@ m,"lambda subscription not supported for FIFO topics.");let{handler:p,listener:s
102
102
  u=te(e,p.name),a=(0,H.tryGetFunctionState)(n,u,o);if(!a){let z=qe(e,p.name,o),it=n.
103
103
  getDependencyFiles(p.file),P=o.defaults,{runtime:nt=P?.runtime??b.Runtime,architecture:pt=P?.
104
104
  architecture??b.Architecture,logRetention:ct=P?.logRetention??b.LogRetention,logLevel:st=P?.
105
- logLevel??b.LogLevel,memory:at=P?.memory??b.Memory,timeout:mt=b.Timeout,files:ut,
106
- vpc:ft}=c,St=(0,$e.createLogGroup)(t,{groupName:z,retention:ct,tags:o.tags});a=ee(
107
- t,n.role,St,{functionName:z,description:p.description,messageSchema:e.schema,context:e.
108
- context,release:o.release,debug:o.debug,tags:o.tags,variables:[o.variables,e.variables,
109
- c.variables],architecture:pt,logLevel:st,runtime:nt,timeout:mt,memory:at,files:ut,
110
- vpc:ft,handler:{sourceFile:p.file,functionName:p.name,module:p.module,dependencies:it},
111
- listener:s&&{functionName:s.name,sourceFile:s.file,module:s.module}}),n.setServiceState(
112
- u,o,a)}$(t,r,a,{fromService:a.parameters.functionName});break}case F.TopicSubscriptionType.
113
- Queue:{let p=(0,oe.getQueueState)(n,c.service,o);$(t,r,p,{fromService:p.parameters.
114
- queueName});break}}},"prepareSubscriptions"),U=i((t,e,r,o)=>{if(!o.role||!(0,re.isRoleState)(
115
- o.role))throw new I;let n=(0,N.isLinkedContextVpcRequired)(e.context);for(let c of e.
116
- subscriptions)switch(c.type){default:throw new G.InvalidParameterError(m,"subscr\
117
- iption not supported.");case F.TopicSubscriptionType.Lambda:{let p=te(e,c.handler.
118
- name),s=(0,H.getFunctionState)(o,p,r);(0,N.linkServiceContext)(t,s.entryId,e.context),
119
- s.parameters.vpc||(s.parameters.vpc=n);break}case F.TopicSubscriptionType.Queue:{
120
- let p=(0,oe.getQueueState)(o,c.service,r);(0,N.linkServiceContext)(t,p.entryId,e.
121
- context);break}}},"connectSubscriptions");var Qe=require("@ez4/project/library");var B=i((t,e,r)=>{let n=X(t,e.name,r).entryId,c=(0,Qe.getDefinitionName)(n,"topi\
105
+ logLevel??b.LogLevel,memory:at=P?.memory??b.Memory,timeout:mt=b.Timeout,debug:ut=o.
106
+ debug,files:ft,vpc:St}=c,lt=(0,$e.createLogGroup)(t,{groupName:z,retention:ct,tags:o.
107
+ tags});a=ee(t,n.role,lt,{functionName:z,description:p.description,messageSchema:e.
108
+ schema,context:e.context,release:o.release,tags:o.tags,variables:[o.variables,e.
109
+ variables,c.variables],architecture:pt,logLevel:st,runtime:nt,timeout:mt,memory:at,
110
+ files:ft,debug:ut,vpc:St,handler:{sourceFile:p.file,functionName:p.name,module:p.
111
+ module,dependencies:it},listener:s&&{functionName:s.name,sourceFile:s.file,module:s.
112
+ module}}),n.setServiceState(u,o,a)}$(t,r,a,{fromService:a.parameters.functionName});
113
+ break}case F.TopicSubscriptionType.Queue:{let p=(0,oe.getQueueState)(n,c.service,
114
+ o);$(t,r,p,{fromService:p.parameters.queueName});break}}},"prepareSubscriptions"),
115
+ U=i((t,e,r,o)=>{if(!o.role||!(0,re.isRoleState)(o.role))throw new I;let n=(0,N.isLinkedContextVpcRequired)(
116
+ e.context);for(let c of e.subscriptions)switch(c.type){default:throw new G.InvalidParameterError(
117
+ m,"subscription not supported.");case F.TopicSubscriptionType.Lambda:{let p=te(e,
118
+ c.handler.name),s=(0,H.getFunctionState)(o,p,r);(0,N.linkServiceContext)(t,s.entryId,
119
+ e.context),s.parameters.vpc||(s.parameters.vpc=n);break}case F.TopicSubscriptionType.
120
+ Queue:{let p=(0,oe.getQueueState)(o,c.service,r);(0,N.linkServiceContext)(t,p.entryId,
121
+ e.context);break}}},"connectSubscriptions");var Qe=require("@ez4/project/library");var B=i((t,e,r)=>{let n=X(t,e.name,r).entryId,c=(0,Qe.getDefinitionName)(n,"topi\
122
122
  cArn"),p=JSON.stringify(e.fifoMode??null),s=JSON.stringify(e.schema);return{module:"\
123
123
  Client",from:"@ez4/aws-topic/client",constructor:`@{EZ4_MODULE_IMPORT}.make(${c}\
124
124
  , ${s}, ${p})`,dependencyIds:[n],connectionIds:[n]}},"prepareLinkedClient");var He=i(t=>{let{service:e,options:r,context:o}=t;return(0,K.isTopicService)(e)?
@@ -137,12 +137,12 @@ u,o,n),!0},"prepareImports"),Ze=i(t=>{let{state:e,service:r,options:o,context:n}
137
137
  r!==Z.ImportType)return null;let n=Object.values({options:o,...o.imports}).map(s=>(0,Je.getServiceName)(
138
138
  "",s)),[c]=n,p=`${c}-topic-policy`;return(0,J.tryGetPolicy)(e,p)??(0,J.createPolicy)(
139
139
  e,{tags:o.tags,policyDocument:await ne(n),policyName:p})},"prepareExecutionPolic\
140
- y");var Ft=i(()=>{(0,Xe.registerTriggers)(),(0,Ye.registerTriggers)(),(0,et.registerTriggers)(),
140
+ y");var zt=i(()=>{(0,Xe.registerTriggers)(),(0,Ye.registerTriggers)(),(0,et.registerTriggers)(),
141
141
  (0,tt.registerTriggers)(),(0,rt.registerTriggers)(),(0,ot.tryCreateTrigger)("@ez\
142
- 4/aws-topic",{"deploy:prepareExecutionPolicy":We,"deploy:prepareLinkedService":zt,
143
- "deploy:prepareResources":Ot,"deploy:connectResources":Dt}),ye(),Re()},"register\
144
- Triggers"),zt=i(t=>He(t)??Ke(t)??null,"prepareLinkedService"),Ot=i(t=>_e(t)||Ve(
145
- t),"prepareQueueResources"),Dt=i(t=>{Ue(t),Ze(t)},"connectQueueResources");var Mt=i(t=>t.type===T,"isSubscriptionState");0&&(module.exports={SubscriptionServiceName,SubscriptionServiceType,TopicServiceName,
142
+ 4/aws-topic",{"deploy:prepareExecutionPolicy":We,"deploy:prepareLinkedService":Ot,
143
+ "deploy:prepareResources":Dt,"deploy:connectResources":Mt}),ye(),Re()},"register\
144
+ Triggers"),Ot=i(t=>He(t)??Ke(t)??null,"prepareLinkedService"),Dt=i(t=>_e(t)||Ve(
145
+ t),"prepareQueueResources"),Mt=i(t=>{Ue(t),Ze(t)},"connectQueueResources");var kt=i(t=>t.type===T,"isSubscriptionState");0&&(module.exports={SubscriptionServiceName,SubscriptionServiceType,TopicServiceName,
146
146
  TopicServiceType,createSubscription,createSubscriptionFunction,createTopic,createTopicStateId,
147
147
  getTopic,getTopicArn,getTopicState,isSubscriptionState,isTopicState,registerTriggers});
148
148
  //# sourceMappingURL=main.cjs.map
package/dist/main.mjs CHANGED
@@ -1,134 +1,134 @@
1
- var Le=Object.defineProperty;var i=(t,e)=>Le(t,"name",{value:e,configurable:!0});import{registerTriggers as Ut}from"@ez4/aws-common";import{registerTriggers as Bt}from"@ez4/aws-identity";
2
- import{registerTriggers as Kt}from"@ez4/aws-function";import{registerTriggers as Vt}from"@ez4/aws-queue";
3
- import{registerTriggers as Zt}from"@ez4/topic/library";import{tryCreateTrigger as Jt}from"@ez4/project/library";import{tryRegisterProvider as Xe}from"@ez4/aws-common";import{applyTagUpdates as $e,CorruptedResourceError as Qe,OperationLogger as h,ReplaceResourceError as Ge}from"@ez4/aws-common";
4
- import{getAccountId as He,getRegion as _e}from"@ez4/aws-identity";import{deepCompare as Ue}from"@ez4/utils";import{getAccountId as Ie,getRegion as Ne,createPolicyDocument as Fe}from"@ez4/aws-identity";var d=i((t,e,r)=>`arn:aws:sns:${e}:${r}:${t}`,"buildTopicArn"),k=i(async t=>{let[
5
- e,r]=await Promise.all([Ne(),Ie()]);return Fe([{permissions:["sns:Publish"],resourceIds:t.
6
- map(o=>d(`${o}-*`,e,r))}])},"getPolicyDocument");import{CreateTopicCommand as De,DeleteTopicCommand as Me,TagResourceCommand as ke,
7
- UntagResourceCommand as je,NotFoundException as qe}from"@aws-sdk/client-sns";import{
8
- getTagList as j}from"@ez4/aws-common";import{getAwsClientOptions as ze}from"@ez4/aws-common";import{SNSClient as Oe}from"@aws-sdk/client-sns";var f=i(()=>new Oe(ze()),"getSNSClient");var q=i(async(t,e)=>{t.update("Creating topic");let{topicName:r,fifoMode:o}=e;return{
9
- topicArn:(await f().send(new De({Name:r,Attributes:{...o&&{ContentBasedDeduplication:"\
1
+ var Ie=Object.defineProperty;var i=(t,e)=>Ie(t,"name",{value:e,configurable:!0});import{registerTriggers as Bt}from"@ez4/aws-common";import{registerTriggers as Kt}from"@ez4/aws-identity";
2
+ import{registerTriggers as Vt}from"@ez4/aws-function";import{registerTriggers as Zt}from"@ez4/aws-queue";
3
+ import{registerTriggers as Jt}from"@ez4/topic/library";import{tryCreateTrigger as Wt}from"@ez4/project/library";import{tryRegisterProvider as Ye}from"@ez4/aws-common";import{applyTagUpdates as Qe,CorruptedResourceError as Ge,OperationLogger as h,ReplaceResourceError as He}from"@ez4/aws-common";
4
+ import{getAccountId as _e,getRegion as Ue}from"@ez4/aws-identity";import{deepCompare as Be}from"@ez4/utils";import{getAccountId as Ne,getRegion as Fe,createPolicyDocument as ze}from"@ez4/aws-identity";var d=i((t,e,r)=>`arn:aws:sns:${e}:${r}:${t}`,"buildTopicArn"),k=i(async t=>{let[
5
+ e,r]=await Promise.all([Fe(),Ne()]);return ze([{permissions:["sns:Publish"],resourceIds:t.
6
+ map(o=>d(`${o}-*`,e,r))}])},"getPolicyDocument");import{CreateTopicCommand as Me,DeleteTopicCommand as ke,TagResourceCommand as je,
7
+ UntagResourceCommand as qe,NotFoundException as $e}from"@aws-sdk/client-sns";import{
8
+ getTagList as j}from"@ez4/aws-common";import{getAwsClientOptions as Oe}from"@ez4/aws-common";import{SNSClient as De}from"@aws-sdk/client-sns";var f=i(()=>new De(Oe()),"getSNSClient");var q=i(async(t,e)=>{t.update("Creating topic");let{topicName:r,fifoMode:o}=e;return{
9
+ topicArn:(await f().send(new Me({Name:r,Attributes:{...o&&{ContentBasedDeduplication:"\
10
10
  true",FifoThroughputScope:"MessageGroup",FifoTopic:"true"}},Tags:j({...e.tags,ManagedBy:"\
11
11
  EZ4"})}))).TopicArn}},"createTopic"),$=i(async(t,e)=>{t.update("Deleting topic");
12
- try{return await f().send(new Me({TopicArn:e})),!0}catch(r){if(!(r instanceof qe))
12
+ try{return await f().send(new ke({TopicArn:e})),!0}catch(r){if(!(r instanceof $e))
13
13
  throw r;return!1}},"deleteTopic"),Q=i(async(t,e,r)=>{t.update("Tag topic"),await f().
14
- send(new ke({ResourceArn:e,Tags:j({...r,ManagedBy:"EZ4"})}))},"tagTopic"),G=i(async(t,e,r)=>{
15
- t.update("Untag topic"),await f().send(new je({ResourceArn:e,TagKeys:r}))},"unta\
16
- gTopic");var S="AWS:SNS/Topic",l="aws:sns.topic";var H=i(()=>({equals:Be,create:_,replace:Ve,preview:Ke,update:Ze,delete:Je}),"ge\
17
- tTopicHandler"),Be=i((t,e)=>!!t.result&&t.result.topicArn===e.result?.topicArn,"\
18
- equalsResource"),Ke=i((t,e)=>{let r={...t.parameters,dependencies:t.dependencies},
19
- o={...e.parameters,dependencies:e.dependencies},n=Ue(r,o);if(n.counts)return{...n,
20
- name:r.topicName}},"previewResource"),Ve=i(async(t,e)=>{if(e.result)throw new Ge(
14
+ send(new je({ResourceArn:e,Tags:j({...r,ManagedBy:"EZ4"})}))},"tagTopic"),G=i(async(t,e,r)=>{
15
+ t.update("Untag topic"),await f().send(new qe({ResourceArn:e,TagKeys:r}))},"unta\
16
+ gTopic");var S="AWS:SNS/Topic",l="aws:sns.topic";var H=i(()=>({equals:Ke,create:_,replace:Ze,preview:Ve,update:Je,delete:We}),"ge\
17
+ tTopicHandler"),Ke=i((t,e)=>!!t.result&&t.result.topicArn===e.result?.topicArn,"\
18
+ equalsResource"),Ve=i((t,e)=>{let r={...t.parameters,dependencies:t.dependencies},
19
+ o={...e.parameters,dependencies:e.dependencies},n=Be(r,o);if(n.counts)return{...n,
20
+ name:r.topicName}},"previewResource"),Ze=i(async(t,e)=>{if(e.result)throw new He(
21
21
  S,t.entryId,e.entryId);return _(t)},"replaceResource"),_=i(t=>{let{parameters:e}=t;
22
22
  return h.logExecution(S,e.topicName,"creation",async r=>{if(e.import){let[n,c]=await Promise.
23
- all([_e(),He()]);return{topicArn:d(e.topicName,n,c)}}let{topicArn:o}=await q(r,e);
24
- return{topicArn:o}})},"createResource"),Ze=i((t,e)=>{let{result:r,parameters:o}=t,
25
- {topicName:n}=o;if(!r)throw new Qe(S,n);return o.import?Promise.resolve(r):h.logExecution(
26
- S,n,"updates",async c=>(await We(c,r.topicArn,o,e.parameters),r))},"updateResour\
27
- ce"),Je=i(async t=>{let{result:e,parameters:r}=t;!e||r.import||await h.logExecution(
28
- S,r.topicName,"deletion",async o=>{await $(o,e.topicArn)})},"deleteResource"),We=i(
29
- async(t,e,r,o)=>{await $e(r.tags,o.tags,n=>Q(t,e,n),n=>G(t,e,n))},"checkTagUpdat\
30
- es");var U=i(()=>{Xe(l,H())},"registerTopicProvider");import{tryRegisterProvider as ut}from"@ez4/aws-common";import{OperationLogger as J,ReplaceResourceError as it}from"@ez4/aws-common";import{
31
- deepCompare as nt}from"@ez4/utils";import{InvalidParameterError as V,isArn as rt,parseArn as ot}from"@ez4/aws-common";import{NotFoundException as Ye,SubscribeCommand as et,UnsubscribeCommand as tt}from"@aws-sdk/client-sns";var B=i(async(t,e)=>{t.update("Creating topic subscription");let{topicArn:r,protocol:o,
32
- endpoint:n}=e;return{subscriptionArn:(await f().send(new et({TopicArn:r,Protocol:o,
23
+ all([Ue(),_e()]);return{topicArn:d(e.topicName,n,c)}}let{topicArn:o}=await q(r,e);
24
+ return{topicArn:o}})},"createResource"),Je=i((t,e)=>{let{result:r,parameters:o}=t,
25
+ {topicName:n}=o;if(!r)throw new Ge(S,n);return o.import?Promise.resolve(r):h.logExecution(
26
+ S,n,"updates",async c=>(await Xe(c,r.topicArn,o,e.parameters),r))},"updateResour\
27
+ ce"),We=i(async t=>{let{result:e,parameters:r}=t;!e||r.import||await h.logExecution(
28
+ S,r.topicName,"deletion",async o=>{await $(o,e.topicArn)})},"deleteResource"),Xe=i(
29
+ async(t,e,r,o)=>{await Qe(r.tags,o.tags,n=>Q(t,e,n),n=>G(t,e,n))},"checkTagUpdat\
30
+ es");var U=i(()=>{Ye(l,H())},"registerTopicProvider");import{tryRegisterProvider as ft}from"@ez4/aws-common";import{OperationLogger as J,ReplaceResourceError as nt}from"@ez4/aws-common";import{
31
+ deepCompare as pt}from"@ez4/utils";import{InvalidParameterError as V,isArn as ot,parseArn as it}from"@ez4/aws-common";import{NotFoundException as et,SubscribeCommand as tt,UnsubscribeCommand as rt}from"@aws-sdk/client-sns";var B=i(async(t,e)=>{t.update("Creating topic subscription");let{topicArn:r,protocol:o,
32
+ endpoint:n}=e;return{subscriptionArn:(await f().send(new tt({TopicArn:r,Protocol:o,
33
33
  Endpoint:n,ReturnSubscriptionArn:!0,Attributes:{...o==="sqs"&&{RawMessageDelivery:"\
34
34
  true"}}}))).SubscriptionArn}},"createSubscription"),K=i(async(t,e)=>{t.update("D\
35
- eleting topic subscription");try{return await f().send(new tt({SubscriptionArn:e})),
36
- !0}catch(r){if(!(r instanceof Ye))throw r;return!1}},"deleteSubscription");var Z=i((t,e)=>{if(!rt(e))throw new V(t,`endpoint ${e} is not supported.`);let{service:r}=ot(
35
+ eleting topic subscription");try{return await f().send(new rt({SubscriptionArn:e})),
36
+ !0}catch(r){if(!(r instanceof et))throw r;return!1}},"deleteSubscription");var Z=i((t,e)=>{if(!ot(e))throw new V(t,`endpoint ${e} is not supported.`);let{service:r}=it(
37
37
  e);switch(r){case"lambda":case"sqs":return r}throw new V(t,`protocol ${r} is not\
38
- supported.`)},"getSubscriptionProtocol");var m="AWS:SNS/Subscription",y="aws:sns.subscription";var W=i(()=>({equals:pt,create:X,replace:st,preview:ct,update:at,delete:mt}),"ge\
39
- tSubscriptionHandler"),pt=i((t,e)=>!!t.result&&t.result.subscriptionArn===e.result?.
40
- subscriptionArn,"equalsResource"),ct=i((t,e)=>{let r={...t.parameters,dependencies:t.
41
- dependencies},o={...e.parameters,dependencies:e.dependencies},n=nt(r,o,{exclude:{
38
+ supported.`)},"getSubscriptionProtocol");var m="AWS:SNS/Subscription",y="aws:sns.subscription";var W=i(()=>({equals:ct,create:X,replace:at,preview:st,update:mt,delete:ut}),"ge\
39
+ tSubscriptionHandler"),ct=i((t,e)=>!!t.result&&t.result.subscriptionArn===e.result?.
40
+ subscriptionArn,"equalsResource"),st=i((t,e)=>{let r={...t.parameters,dependencies:t.
41
+ dependencies},o={...e.parameters,dependencies:e.dependencies},n=pt(r,o,{exclude:{
42
42
  getTopicArn:!0,getEndpoint:!0}});if(n.counts)return{...n,name:r.fromService}},"p\
43
- reviewResource"),st=i(async(t,e,r)=>{if(e.result)throw new it(m,t.entryId,e.entryId);
43
+ reviewResource"),at=i(async(t,e,r)=>{if(e.result)throw new nt(m,t.entryId,e.entryId);
44
44
  return X(t,r)},"replaceResource"),X=i((t,e)=>{let{parameters:r}=t;return J.logExecution(
45
45
  m,r.fromService,"creation",async o=>{let[n,c]=await Promise.all([r.getTopicArn(e),
46
46
  r.getEndpoint(e)]),{subscriptionArn:p}=await B(o,{protocol:Z(m,c),topicArn:n,endpoint:c});
47
- return{subscriptionArn:p,topicArn:n,endpoint:c}})},"createResource"),at=i(async()=>{},
48
- "updateResource"),mt=i(async t=>{let{result:e,parameters:r}=t;e&&await J.logExecution(
47
+ return{subscriptionArn:p,topicArn:n,endpoint:c}})},"createResource"),mt=i(async()=>{},
48
+ "updateResource"),ut=i(async t=>{let{result:e,parameters:r}=t;e&&await J.logExecution(
49
49
  m,r.fromService,"deletion",async o=>{await K(o,e.subscriptionArn)})},"deleteReso\
50
- urce");var Y=i(()=>{ut(y,W())},"registerSubscriptionProvider");import{isTopicService as D}from"@ez4/topic/library";import{getServiceName as jt}from"@ez4/project/library";import{attachEntry as gt}from"@ez4/stateful";import{toKebabCase as yt}from"@ez4/utils";import{IncompleteResourceError as ft}from"@ez4/aws-common";import{hashData as St,
51
- toKebabCase as lt}from"@ez4/utils";var E=class extends Error{static{i(this,"TopicNotFoundError")}constructor(e){super(
52
- `Topic service ${e} wasn't found.`)}};var L=i((t,e=!0)=>St(l,e?lt(t):t),"createTopicStateId"),I=i(t=>t.type===l,"isTop\
50
+ urce");var Y=i(()=>{ft(y,W())},"registerSubscriptionProvider");import{isTopicService as D}from"@ez4/topic/library";import{getServiceName as qt}from"@ez4/project/library";import{attachEntry as yt}from"@ez4/stateful";import{toKebabCase as dt}from"@ez4/utils";import{IncompleteResourceError as St}from"@ez4/aws-common";import{hashData as lt,
51
+ toKebabCase as gt}from"@ez4/utils";var E=class extends Error{static{i(this,"TopicNotFoundError")}constructor(e){super(
52
+ `Topic service ${e} wasn't found.`)}};var L=i((t,e=!0)=>lt(l,e?gt(t):t),"createTopicStateId"),I=i(t=>t.type===l,"isTop\
53
53
  icState"),ee=i((t,e,r)=>{let o=t.getServiceState(e,r);if(!I(o))throw new E(e);return o},
54
54
  "getTopicState"),te=i((t,e,r)=>{let o=r.getDependencies(l).at(0)?.result;if(!o?.
55
- topicArn)throw new ft(t,e,"topicArn");return o.topicArn},"getTopicArn");var w=i((t,e)=>{let r=yt(e.topicName),o=e.fifoMode?`${r}.fifo`:r,n=L(o,!1);return gt(
55
+ topicArn)throw new St(t,e,"topicArn");return o.topicArn},"getTopicArn");var w=i((t,e)=>{let r=dt(e.topicName),o=e.fifoMode?`${r}.fifo`:r,n=L(o,!1);return yt(
56
56
  t,{type:l,entryId:n,dependencies:[],parameters:{...e,topicName:o}})},"createTopi\
57
- c"),no=i((t,e)=>{let r=L(e),o=t[r];return o&&I(o)?o:null},"getTopic");import{isLinkedContextVpcRequired as zt,linkServiceContext as se}from"@ez4/project/library";
58
- import{getFunctionState as Ot,tryGetFunctionState as Dt}from"@ez4/aws-function";
57
+ c"),po=i((t,e)=>{let r=L(e),o=t[r];return o&&I(o)?o:null},"getTopic");import{isLinkedContextVpcRequired as Ot,linkServiceContext as se}from"@ez4/project/library";
58
+ import{getFunctionState as Dt,tryGetFunctionState as Mt}from"@ez4/aws-function";
59
59
  import{TopicSubscriptionType as R}from"@ez4/topic/library";import{InvalidParameterError as O}from"@ez4/aws-common";
60
- import{isRoleState as ae}from"@ez4/aws-identity";import{createLogGroup as Mt}from"@ez4/aws-logs";
61
- import{getQueueState as me}from"@ez4/aws-queue";import{createFunction as xt}from"@ez4/aws-function";import{hashObject as Et}from"@ez4/utils";
62
- import{LogLevel as wt}from"@ez4/project";import{join as dt}from"node:path";import{getDefinitionsObject as Tt}from"@ez4/project/library";
63
- import{MappingServiceName as bt}from"@ez4/aws-function";import{getFunctionBundle as vt}from"@ez4/aws-common";var re=i(async(t,e)=>{let{handler:r,listener:o,messageSchema:n,context:c,debug:p}=t,
64
- s=Tt(e);return vt(bt,{templateFile:dt(import.meta.dirname,"../lib/message.ts"),filePrefix:"\
60
+ import{isRoleState as ae}from"@ez4/aws-identity";import{createLogGroup as kt}from"@ez4/aws-logs";
61
+ import{getQueueState as me}from"@ez4/aws-queue";import{createFunction as Et}from"@ez4/aws-function";import{hashObject as wt}from"@ez4/utils";
62
+ import{LogLevel as Rt}from"@ez4/project";import{join as Tt}from"node:path";import{getDefinitionsObject as bt}from"@ez4/project/library";
63
+ import{MappingServiceName as vt}from"@ez4/aws-function";import{getFunctionBundle as xt}from"@ez4/aws-common";var re=i(async(t,e)=>{let{handler:r,listener:o,messageSchema:n,context:c,debug:p}=t,
64
+ s=bt(e);return xt(vt,{templateFile:Tt(import.meta.dirname,"../lib/message.ts"),filePrefix:"\
65
65
  sns",define:{...s,__EZ4_SCHEMA:n?JSON.stringify(n):"undefined"},handler:r,listener:o,
66
66
  context:c,debug:p})},"bundleSubscriptionFunction");var oe=i((t,e,r,o)=>{let{handler:n,variables:c,debug:p,architecture:s,messageSchema:u}=o;
67
- return xt(t,e,r,{handlerName:"snsEntryPoint",sourceFile:n.sourceFile,functionName:o.
68
- functionName,description:o.description,logLevel:p?wt.Debug:o.logLevel,architecture:o.
67
+ return Et(t,e,r,{handlerName:"snsEntryPoint",sourceFile:n.sourceFile,functionName:o.
68
+ functionName,description:o.description,logLevel:p?Rt.Debug:o.logLevel,architecture:o.
69
69
  architecture,runtime:o.runtime,release:o.release,timeout:o.timeout,memory:o.memory,
70
- files:o.files,tags:o.tags,getFunctionVariables:i(()=>c.reduce((a,x)=>({...a,...x}),
71
- {}),"getFunctionVariables"),getFunctionBundle:i(a=>re(o,[...a.getDependencies(),
70
+ files:o.files,tags:o.tags,vpc:o.vpc,getFunctionVariables:i(()=>c.reduce((a,x)=>({
71
+ ...a,...x}),{}),"getFunctionVariables"),getFunctionBundle:i(a=>re(o,[...a.getDependencies(),
72
72
  ...a.getConnections()]),"getFunctionBundle"),getFunctionFiles:i(()=>[n.sourceFile,
73
- n.dependencies],"getFunctionFiles"),getFunctionHash:i(()=>Et({architecture:s,messageSchema:u,
74
- debug:p}),"getFunctionHash")})},"createSubscriptionFunction");import{createPermission as Rt,getFunctionArn as At,getPermission as Ct,isFunctionState as ie}from"@ez4/aws-function";
75
- import{attachQueuePolicy as Pt,getQueueArn as ht,isQueueState as Lt}from"@ez4/aws-queue";
76
- import{getAccountId as ne,getRegion as pe}from"@ez4/aws-identity";import{attachEntry as It}from"@ez4/stateful";
77
- import{hashData as Nt}from"@ez4/utils";var N=i((t,e,r,o)=>{let n=e.parameters.topicName,c=[e.entryId,r.entryId];if(ie(r)){
78
- let s=Ct(t,e,r)??Rt(t,e,r,{fromService:o.fromService,getPermission:i(async()=>{let[
73
+ n.dependencies],"getFunctionFiles"),getFunctionHash:i(()=>wt({architecture:s,messageSchema:u,
74
+ debug:p}),"getFunctionHash")})},"createSubscriptionFunction");import{createPermission as At,getFunctionArn as Ct,getPermission as Pt,isFunctionState as ie}from"@ez4/aws-function";
75
+ import{attachQueuePolicy as ht,getQueueArn as Lt,isQueueState as It}from"@ez4/aws-queue";
76
+ import{getAccountId as ne,getRegion as pe}from"@ez4/aws-identity";import{attachEntry as Nt}from"@ez4/stateful";
77
+ import{hashData as Ft}from"@ez4/utils";var N=i((t,e,r,o)=>{let n=e.parameters.topicName,c=[e.entryId,r.entryId];if(ie(r)){
78
+ let s=Pt(t,e,r)??At(t,e,r,{fromService:o.fromService,getPermission:i(async()=>{let[
79
79
  u,a]=await Promise.all([pe(),ne()]);return{sourceArn:d(n,u,a),principal:"sns.ama\
80
- zonaws.com"}},"getPermission")});c.push(s.entryId)}if(Lt(r)){let s=Pt(t,r,e,{fromService:o.
80
+ zonaws.com"}},"getPermission")});c.push(s.entryId)}if(It(r)){let s=ht(t,r,e,{fromService:o.
81
81
  fromService,toService:n,policyGetters:[async()=>{let[u,a]=await Promise.all([pe(),
82
82
  ne()]);return{principal:"sns.amazonaws.com",sourceArn:d(n,u,a)}}]});c.push(s.entryId)}
83
- let p=Nt(y,e.entryId,r.entryId);return It(t,{type:y,entryId:p,dependencies:c,parameters:{
84
- ...o,getTopicArn:i(s=>te(S,p,s),"getTopicArn"),getEndpoint:i(s=>ie(r)?At(m,p,s):
85
- ht(m,p,s),"getEndpoint")}})},"createSubscription");import{getServiceName as Ft}from"@ez4/project/library";import{toKebabCase as F}from"@ez4/utils";var z=i((t,e)=>`${F(t.name)}-${F(e)}`,"getInternalName"),ce=i((t,e,r)=>`${Ft(t,r)}\
83
+ let p=Ft(y,e.entryId,r.entryId);return Nt(t,{type:y,entryId:p,dependencies:c,parameters:{
84
+ ...o,getTopicArn:i(s=>te(S,p,s),"getTopicArn"),getEndpoint:i(s=>ie(r)?Ct(m,p,s):
85
+ Lt(m,p,s),"getEndpoint")}})},"createSubscription");import{getServiceName as zt}from"@ez4/project/library";import{toKebabCase as F}from"@ez4/utils";var z=i((t,e)=>`${F(t.name)}-${F(e)}`,"getInternalName"),ce=i((t,e,r)=>`${zt(t,r)}\
86
86
  -${F(e)}`,"getFunctionName");var v=class extends Error{static{i(this,"RoleMissingError")}constructor(){super(
87
87
  "Execution role for SNS is missing.")}};import{FunctionDefaults as T}from"@ez4/aws-function";var g;(p=>(p.LogLevel=T.LogLevel,
88
88
  p.LogRetention=T.LogRetention,p.Architecture=T.Architecture,p.Runtime=T.Runtime,
89
89
  p.Timeout=T.Timeout,p.Memory=T.Memory))(g||={});var A=i((t,e,r,o,n)=>{if(!n.role||!ae(n.role))throw new v;for(let c of e.subscriptions)
90
90
  switch(c.type){default:throw new O(m,"subscription not supported.");case R.Lambda:{
91
91
  if(e.fifoMode)throw new O(m,"lambda subscription not supported for FIFO topics.");
92
- let{handler:p,listener:s}=c,u=z(e,p.name),a=Dt(n,u,o);if(!a){let x=ce(e,p.name,o),
92
+ let{handler:p,listener:s}=c,u=z(e,p.name),a=Mt(n,u,o);if(!a){let x=ce(e,p.name,o),
93
93
  be=n.getDependencyFiles(p.file),b=o.defaults,{runtime:ve=b?.runtime??g.Runtime,architecture:xe=b?.
94
94
  architecture??g.Architecture,logRetention:Ee=b?.logRetention??g.LogRetention,logLevel:we=b?.
95
- logLevel??g.LogLevel,memory:Re=b?.memory??g.Memory,timeout:Ae=g.Timeout,files:Ce,
96
- vpc:Pe}=c,he=Mt(t,{groupName:x,retention:Ee,tags:o.tags});a=oe(t,n.role,he,{functionName:x,
97
- description:p.description,messageSchema:e.schema,context:e.context,release:o.release,
98
- debug:o.debug,tags:o.tags,variables:[o.variables,e.variables,c.variables],architecture:xe,
99
- logLevel:we,runtime:ve,timeout:Ae,memory:Re,files:Ce,vpc:Pe,handler:{sourceFile:p.
100
- file,functionName:p.name,module:p.module,dependencies:be},listener:s&&{functionName:s.
101
- name,sourceFile:s.file,module:s.module}}),n.setServiceState(u,o,a)}N(t,r,a,{fromService:a.
102
- parameters.functionName});break}case R.Queue:{let p=me(n,c.service,o);N(t,r,p,{fromService:p.
103
- parameters.queueName});break}}},"prepareSubscriptions"),C=i((t,e,r,o)=>{if(!o.role||
104
- !ae(o.role))throw new v;let n=zt(e.context);for(let c of e.subscriptions)switch(c.
105
- type){default:throw new O(m,"subscription not supported.");case R.Lambda:{let p=z(
106
- e,c.handler.name),s=Ot(o,p,r);se(t,s.entryId,e.context),s.parameters.vpc||(s.parameters.
107
- vpc=n);break}case R.Queue:{let p=me(o,c.service,r);se(t,p.entryId,e.context);break}}},
108
- "connectSubscriptions");import{getDefinitionName as kt}from"@ez4/project/library";var P=i((t,e,r)=>{let n=ee(t,e.name,r).entryId,c=kt(n,"topicArn"),p=JSON.stringify(
95
+ logLevel??g.LogLevel,memory:Re=b?.memory??g.Memory,timeout:Ae=g.Timeout,debug:Ce=o.
96
+ debug,files:Pe,vpc:he}=c,Le=kt(t,{groupName:x,retention:Ee,tags:o.tags});a=oe(t,
97
+ n.role,Le,{functionName:x,description:p.description,messageSchema:e.schema,context:e.
98
+ context,release:o.release,tags:o.tags,variables:[o.variables,e.variables,c.variables],
99
+ architecture:xe,logLevel:we,runtime:ve,timeout:Ae,memory:Re,files:Pe,debug:Ce,vpc:he,
100
+ handler:{sourceFile:p.file,functionName:p.name,module:p.module,dependencies:be},
101
+ listener:s&&{functionName:s.name,sourceFile:s.file,module:s.module}}),n.setServiceState(
102
+ u,o,a)}N(t,r,a,{fromService:a.parameters.functionName});break}case R.Queue:{let p=me(
103
+ n,c.service,o);N(t,r,p,{fromService:p.parameters.queueName});break}}},"prepareSu\
104
+ bscriptions"),C=i((t,e,r,o)=>{if(!o.role||!ae(o.role))throw new v;let n=Ot(e.context);
105
+ for(let c of e.subscriptions)switch(c.type){default:throw new O(m,"subscription \
106
+ not supported.");case R.Lambda:{let p=z(e,c.handler.name),s=Dt(o,p,r);se(t,s.entryId,
107
+ e.context),s.parameters.vpc||(s.parameters.vpc=n);break}case R.Queue:{let p=me(o,
108
+ c.service,r);se(t,p.entryId,e.context);break}}},"connectSubscriptions");import{getDefinitionName as jt}from"@ez4/project/library";var P=i((t,e,r)=>{let n=ee(t,e.name,r).entryId,c=jt(n,"topicArn"),p=JSON.stringify(
109
109
  e.fifoMode??null),s=JSON.stringify(e.schema);return{module:"Client",from:"@ez4/a\
110
110
  ws-topic/client",constructor:`@{EZ4_MODULE_IMPORT}.make(${c}, ${s}, ${p})`,dependencyIds:[
111
111
  n],connectionIds:[n]}},"prepareLinkedClient");var ue=i(t=>{let{service:e,options:r,context:o}=t;return D(e)?P(o,e,r):null},"pr\
112
112
  epareLinkedServices"),fe=i(t=>{let{state:e,service:r,options:o,context:n}=t;if(!D(
113
- r))return!1;let{fifoMode:c}=r,p=w(e,{topicName:jt(r,o),fifoMode:!!c,tags:o.tags});
113
+ r))return!1;let{fifoMode:c}=r,p=w(e,{topicName:qt(r,o),fifoMode:!!c,tags:o.tags});
114
114
  return n.setServiceState(r,o,p),A(e,r,p,o,n),!0},"prepareServices"),Se=i(t=>{let{
115
- state:e,service:r,options:o,context:n}=t;D(r)&&C(e,r,o,n)},"connectServices");import{MissingImportedProjectError as le}from"@ez4/project/library";import{getServiceName as qt}from"@ez4/project/library";
115
+ state:e,service:r,options:o,context:n}=t;D(r)&&C(e,r,o,n)},"connectServices");import{MissingImportedProjectError as le}from"@ez4/project/library";import{getServiceName as $t}from"@ez4/project/library";
116
116
  import{isTopicImport as M}from"@ez4/topic/library";var ge=i(t=>{let{service:e,options:r,context:o}=t;if(!M(e))return null;let{project:n}=e,
117
117
  {imports:c}=r;if(!c||!c[n])throw new le(n);return P(o,e,r)},"prepareLinkedImport\
118
118
  s"),ye=i(t=>{let{state:e,service:r,options:o,context:n}=t;if(!M(r))return!1;let{
119
- reference:c,project:p}=r,{imports:s}=o;if(!s||!s[p])throw new le(p);let u=w(e,{topicName:qt(
119
+ reference:c,project:p}=r,{imports:s}=o;if(!s||!s[p])throw new le(p);let u=w(e,{topicName:$t(
120
120
  c,s[p]),fifoMode:!!r.fifoMode,import:!0});return n.setServiceState(r,o,u),A(e,r,
121
121
  u,o,n),!0},"prepareImports"),de=i(t=>{let{state:e,service:r,options:o,context:n}=t;
122
- M(r)&&C(e,r,o,n)},"connectImports");import{ServiceType as $t,ImportType as Qt}from"@ez4/topic/library";import{createPolicy as Gt,
123
- tryGetPolicy as Ht}from"@ez4/aws-identity";import{getServiceName as _t}from"@ez4/project/library";var Te=i(async t=>{let{state:e,serviceType:r,options:o}=t;if(r!==$t&&r!==Qt)return null;
124
- let n=Object.values({options:o,...o.imports}).map(s=>_t("",s)),[c]=n,p=`${c}-top\
125
- ic-policy`;return Ht(e,p)??Gt(e,{tags:o.tags,policyDocument:await k(n),policyName:p})},
126
- "prepareExecutionPolicy");var ki=i(()=>{Ut(),Bt(),Kt(),Vt(),Zt(),Jt("@ez4/aws-topic",{"deploy:prepareExecu\
127
- tionPolicy":Te,"deploy:prepareLinkedService":Wt,"deploy:prepareResources":Xt,"de\
128
- ploy:connectResources":Yt}),U(),Y()},"registerTriggers"),Wt=i(t=>ue(t)??ge(t)??null,
129
- "prepareLinkedService"),Xt=i(t=>fe(t)||ye(t),"prepareQueueResources"),Yt=i(t=>{Se(
130
- t),de(t)},"connectQueueResources");var Qi=i(t=>t.type===y,"isSubscriptionState");export{m as SubscriptionServiceName,y as SubscriptionServiceType,S as TopicServiceName,
122
+ M(r)&&C(e,r,o,n)},"connectImports");import{ServiceType as Qt,ImportType as Gt}from"@ez4/topic/library";import{createPolicy as Ht,
123
+ tryGetPolicy as _t}from"@ez4/aws-identity";import{getServiceName as Ut}from"@ez4/project/library";var Te=i(async t=>{let{state:e,serviceType:r,options:o}=t;if(r!==Qt&&r!==Gt)return null;
124
+ let n=Object.values({options:o,...o.imports}).map(s=>Ut("",s)),[c]=n,p=`${c}-top\
125
+ ic-policy`;return _t(e,p)??Ht(e,{tags:o.tags,policyDocument:await k(n),policyName:p})},
126
+ "prepareExecutionPolicy");var ji=i(()=>{Bt(),Kt(),Vt(),Zt(),Jt(),Wt("@ez4/aws-topic",{"deploy:prepareExecu\
127
+ tionPolicy":Te,"deploy:prepareLinkedService":Xt,"deploy:prepareResources":Yt,"de\
128
+ ploy:connectResources":er}),U(),Y()},"registerTriggers"),Xt=i(t=>ue(t)??ge(t)??null,
129
+ "prepareLinkedService"),Yt=i(t=>fe(t)||ye(t),"prepareQueueResources"),er=i(t=>{Se(
130
+ t),de(t)},"connectQueueResources");var Gi=i(t=>t.type===y,"isSubscriptionState");export{m as SubscriptionServiceName,y as SubscriptionServiceType,S as TopicServiceName,
131
131
  l as TopicServiceType,N as createSubscription,oe as createSubscriptionFunction,w as createTopic,
132
- L as createTopicStateId,no as getTopic,te as getTopicArn,ee as getTopicState,Qi as isSubscriptionState,
133
- I as isTopicState,ki as registerTriggers};
132
+ L as createTopicStateId,po as getTopic,te as getTopicArn,ee as getTopicState,Gi as isSubscriptionState,
133
+ I as isTopicState,ji as registerTriggers};
134
134
  //# sourceMappingURL=main.mjs.map
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ez4/aws-topic",
3
3
  "description": "EZ4: Self-managed AWS SNS topics provider",
4
- "version": "0.43.0",
4
+ "version": "0.44.0",
5
5
  "author": "Silas B.",
6
6
  "license": "MIT",
7
7
  "type": "module",
@@ -51,19 +51,19 @@
51
51
  },
52
52
  "dependencies": {
53
53
  "@aws-sdk/client-sns": "^3.996.0",
54
- "@ez4/aws-common": "^0.43.0",
55
- "@ez4/aws-identity": "^0.43.0",
56
- "@ez4/aws-function": "^0.43.0",
57
- "@ez4/aws-logs": "^0.43.0",
58
- "@ez4/aws-queue": "^0.43.0",
59
- "@ez4/common": "^0.43.0",
60
- "@ez4/project": "^0.43.0",
61
- "@ez4/queue": "^0.43.0",
62
- "@ez4/schema": "^0.43.0",
63
- "@ez4/stateful": "^0.43.0",
64
- "@ez4/topic": "^0.43.0",
65
- "@ez4/transform": "^0.43.0",
66
- "@ez4/utils": "^0.43.0",
67
- "@ez4/validator": "^0.43.0"
54
+ "@ez4/aws-common": "^0.44.0",
55
+ "@ez4/aws-identity": "^0.44.0",
56
+ "@ez4/aws-function": "^0.44.0",
57
+ "@ez4/aws-logs": "^0.44.0",
58
+ "@ez4/aws-queue": "^0.44.0",
59
+ "@ez4/common": "^0.44.0",
60
+ "@ez4/project": "^0.44.0",
61
+ "@ez4/queue": "^0.44.0",
62
+ "@ez4/schema": "^0.44.0",
63
+ "@ez4/stateful": "^0.44.0",
64
+ "@ez4/topic": "^0.44.0",
65
+ "@ez4/transform": "^0.44.0",
66
+ "@ez4/utils": "^0.44.0",
67
+ "@ez4/validator": "^0.44.0"
68
68
  }
69
69
  }