@dereekb/nestjs 12.6.13 → 12.6.15

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/CHANGELOG.md CHANGED
@@ -2,6 +2,14 @@
2
2
 
3
3
  This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
4
4
 
5
+ ## [12.6.15](https://github.com/dereekb/dbx-components/compare/v12.6.14-dev...v12.6.15) (2026-02-07)
6
+
7
+
8
+
9
+ ## [12.6.14](https://github.com/dereekb/dbx-components/compare/v12.6.13-dev...v12.6.14) (2026-02-06)
10
+
11
+
12
+
5
13
  ## [12.6.13](https://github.com/dereekb/dbx-components/compare/v12.6.12-dev...v12.6.13) (2026-02-06)
6
14
 
7
15
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dereekb/nestjs/mailgun",
3
- "version": "12.6.13",
3
+ "version": "12.6.15",
4
4
  "type": "commonjs",
5
5
  "types": "./src/index.d.ts",
6
6
  "main": "./src/index.js"
@@ -3,8 +3,14 @@ import { type APIResponse } from 'mailgun.js/Types/Common/ApiResponse';
3
3
  import { type CustomFileData, type MailgunMessageData, type MessagesSendResult } from 'mailgun.js/Types/Messages/Messages';
4
4
  export type MailgunSenderDomainString = EmailAddressDomain;
5
5
  export type MailgunTemplateKey = string;
6
+ /**
7
+ * Mailgun template variables.
8
+ *
9
+ * Each value is converted to a JSON string before being sent to Mailgun server.
10
+ */
11
+ export type MailgunTemplateVariables = Record<string, any>;
6
12
  export interface MailgunRecipient extends NameEmailPair {
7
- readonly userVariables?: Record<string, any>;
13
+ readonly userVariables?: Maybe<MailgunTemplateVariables>;
8
14
  }
9
15
  export interface MailgunEmailRequest {
10
16
  /**
@@ -14,15 +20,15 @@ export interface MailgunEmailRequest {
14
20
  /**
15
21
  * Template variables. Each value is converted to a JSON string before being sent to Mailgun server.
16
22
  */
17
- readonly templateVariables?: Maybe<Record<string, any>>;
23
+ readonly templateVariables?: Maybe<MailgunTemplateVariables>;
18
24
  /**
19
25
  * Customzie who the email is from.
20
26
  */
21
- readonly from?: NameEmailPair;
27
+ readonly from?: Maybe<NameEmailPair>;
22
28
  /**
23
29
  * Customize who to reply to.
24
30
  */
25
- readonly replyTo?: NameEmailPair;
31
+ readonly replyTo?: Maybe<NameEmailPair>;
26
32
  /**
27
33
  * Recipients of the email.
28
34
  */
@@ -71,7 +77,7 @@ export interface MailgunTemplateEmailRequestTestingParameters {
71
77
  /**
72
78
  * Whether or not this is considered a test email.
73
79
  */
74
- readonly testEmail?: boolean;
80
+ readonly testEmail?: Maybe<boolean>;
75
81
  /**
76
82
  * Overrides the global configuration for sending test emails to force sending. Useful when debugging specific tests.
77
83
  */
@@ -1 +1 @@
1
- {"version":3,"file":"mailgun.js","sourceRoot":"","sources":["../../../../../../packages/nestjs/mailgun/src/lib/mailgun.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mailgun.js","sourceRoot":"","sources":["../../../../../../packages/nestjs/mailgun/src/lib/mailgun.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
- import { type Maybe, type NameEmailPair } from '@dereekb/util';
1
+ import { type Maybe, type NameEmailPair, type ArrayOrValue } from '@dereekb/util';
2
2
  import { type MailgunTemplateEmailRequestRecipientVariablesConfig, type MailgunRecipient, type MailgunTemplateEmailRequest } from './mailgun';
3
+ import { type NotificationMessageEntityKey } from '@dereekb/firebase';
3
4
  /**
4
5
  * The default template subject to use when batch sending emails.
5
6
  *
@@ -11,9 +12,47 @@ export declare const MAILGUN_BATCH_SEND_RECIPIENT_SUBJECT_TEMPLATE = "%recipient
11
12
  * build properly configured MailgunTemplateEmailRequest values for one or more MailgunRecipientBatchSendTarget.
12
13
  */
13
14
  export interface MailgunRecipientBatchSendTarget extends MailgunRecipient {
14
- readonly cc?: Maybe<NameEmailPair[]>;
15
- readonly bcc?: Maybe<NameEmailPair[]>;
15
+ /**
16
+ * The from value to use for the request.
17
+ */
18
+ readonly from?: Maybe<NameEmailPair>;
19
+ /**
20
+ * Used to look up the from value entity.
21
+ */
22
+ readonly fromKey?: Maybe<NotificationMessageEntityKey>;
23
+ /**
24
+ * The reply-to value to use for the request.
25
+ */
26
+ readonly replyTo?: Maybe<NameEmailPair>;
27
+ /**
28
+ * Used to look up the reply-to value entity.
29
+ */
30
+ readonly replyToKey?: Maybe<NotificationMessageEntityKey>;
31
+ /**
32
+ * Carbon copy recipients.
33
+ */
34
+ readonly cc?: Maybe<ArrayOrValue<NameEmailPair>>;
35
+ /**
36
+ * Used to look up the carbon copy recipients.
37
+ */
38
+ readonly ccKeys?: Maybe<ArrayOrValue<NotificationMessageEntityKey>>;
39
+ /**
40
+ * Blind carbon copy recipients.
41
+ */
42
+ readonly bcc?: Maybe<ArrayOrValue<NameEmailPair>>;
43
+ /**
44
+ * Used to look up the blind carbon copy recipients.
45
+ */
46
+ readonly bccKeys?: Maybe<ArrayOrValue<NotificationMessageEntityKey>>;
16
47
  }
48
+ /**
49
+ * Composite key from the (lowercased) from/replyTo email addresses used to group MailgunRecipientBatchSendTarget values.
50
+ */
51
+ export type MailgunRecipientBatchSendTargetFromReplyToBatchGroupKey = string;
52
+ /**
53
+ * Creates a composite key from the from/replyTo email addresses used to group MailgunRecipientBatchSendTarget values.
54
+ */
55
+ export declare function mailgunRecipientBatchSendTargetFromReplyToBatchGroupKey(recipient: MailgunRecipientBatchSendTarget): MailgunRecipientBatchSendTargetFromReplyToBatchGroupKey;
17
56
  /**
18
57
  * Configuration for expandMailgunRecipientBatchSendTargetRequestFactory().
19
58
  */
@@ -23,7 +62,7 @@ export interface ExpandMailgunRecipientBatchSendTargetRequestFactoryConfig {
23
62
  *
24
63
  * The subject to use as a default.
25
64
  */
26
- readonly request: Omit<MailgunTemplateEmailRequest, 'to' | 'subject'> & Pick<Partial<MailgunTemplateEmailRequest>, 'subject'>;
65
+ readonly request: Omit<MailgunTemplateEmailRequest, 'to' | 'subject'> & Pick<Partial<MailgunTemplateEmailRequest>, 'subject'> & Pick<MailgunRecipientBatchSendTarget, 'bccKeys' | 'ccKeys'>;
27
66
  /**
28
67
  * Whether or not to pull the subject from the recipient's user variables when building the request. If false, expects that a subject is set on the default request.
29
68
  *
@@ -42,6 +81,19 @@ export interface ExpandMailgunRecipientBatchSendTargetRequestFactoryConfig {
42
81
  * Configuration for the recipient variables.
43
82
  */
44
83
  readonly recipientVariablesConfig?: MailgunTemplateEmailRequestRecipientVariablesConfig;
84
+ /**
85
+ * Optional lookup for notification message entity keys.
86
+ */
87
+ readonly notificationMessageEntityKeyRecipientLookup?: Maybe<NotificationMessageEntityKeyRecipientLookup>;
88
+ /**
89
+ * Whether or not to override the carbon copy variables with the carbon copy key recipients.
90
+ *
91
+ * If true, and carbon copy key recipients are resolved, they will replace the existing carbon copy variables on the recipient.
92
+ * By default, the resolved carbon copy key recipients are merged with the existing carbon copy variables.
93
+ *
94
+ * Defaults to false.
95
+ */
96
+ readonly overrideCarbonCopyVariablesWithCarbonCopyKeyRecipients?: Maybe<boolean>;
45
97
  }
46
98
  /**
47
99
  * Expands each of the input MailgunRecipientTargetWithCarbonCopyData recipients into individual (or grouped, if no cc/bcc is present on the input recipient) MailgunTemplateEmailRequest objects, based on the input configuration.
@@ -54,3 +106,42 @@ export type ExpandMailgunRecipientBatchSendTargetRequestFactory = (recipients: M
54
106
  * @returns
55
107
  */
56
108
  export declare function expandMailgunRecipientBatchSendTargetRequestFactory(config: ExpandMailgunRecipientBatchSendTargetRequestFactoryConfig): ExpandMailgunRecipientBatchSendTargetRequestFactory;
109
+ /**
110
+ * A lookup for notification message entity keys to recipients.
111
+ */
112
+ export interface NotificationMessageEntityKeyRecipientLookup {
113
+ /**
114
+ * The map of recipients for the given keys.
115
+ */
116
+ readonly recipientsMap: Map<NotificationMessageEntityKey, NameEmailPair>;
117
+ /**
118
+ * Returns the recipient for the given key, or the default recipient if the key is not found. If the input is nullish, returns the default recipient if one is defined, otherwise undefined.
119
+ *
120
+ * @param input The key to look up.
121
+ * @param defaultRecipient The default recipient to return if the key is not found.
122
+ * @returns The recipient for the given key, or the default recipient if the key is not found.
123
+ */
124
+ getRecipientOrDefaultForKey(input: Maybe<NotificationMessageEntityKey>, defaultRecipient: NameEmailPair): NameEmailPair;
125
+ getRecipientOrDefaultForKey(input: Maybe<NotificationMessageEntityKey>, defaultRecipient?: Maybe<NameEmailPair>): Maybe<NameEmailPair>;
126
+ /**
127
+ * Returns the recipients for the given keys. If the input is nullish, returns undefined.
128
+ *
129
+ * @param input The keys to look up.
130
+ * @returns The recipients for the given keys.
131
+ */
132
+ getRecipientsForKeys(input: Maybe<ArrayOrValue<NotificationMessageEntityKey>>): Maybe<NameEmailPair[]>;
133
+ getRecipientsForKeys(input: ArrayOrValue<NotificationMessageEntityKey>): NameEmailPair[];
134
+ }
135
+ /**
136
+ * Configuration for notificationMessageEntityKeyRecipientLookup().
137
+ */
138
+ export interface NotificationMessageEntityKeyRecipientLookupConfig {
139
+ readonly recipientsMap: Map<NotificationMessageEntityKey, NameEmailPair>;
140
+ }
141
+ /**
142
+ * Creates a NotificationMessageEntityKeyRecipientLookup given the input configuration.
143
+ *
144
+ * @param config The configuration for the lookup.
145
+ * @returns The lookup.
146
+ */
147
+ export declare function notificationMessageEntityKeyRecipientLookup(config: NotificationMessageEntityKeyRecipientLookupConfig): NotificationMessageEntityKeyRecipientLookup;
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MAILGUN_BATCH_SEND_RECIPIENT_SUBJECT_TEMPLATE = void 0;
4
+ exports.mailgunRecipientBatchSendTargetFromReplyToBatchGroupKey = mailgunRecipientBatchSendTargetFromReplyToBatchGroupKey;
4
5
  exports.expandMailgunRecipientBatchSendTargetRequestFactory = expandMailgunRecipientBatchSendTargetRequestFactory;
6
+ exports.notificationMessageEntityKeyRecipientLookup = notificationMessageEntityKeyRecipientLookup;
5
7
  const util_1 = require("@dereekb/util");
6
8
  /**
7
9
  * The default template subject to use when batch sending emails.
@@ -9,6 +11,14 @@ const util_1 = require("@dereekb/util");
9
11
  * This pulls the subject from each recipient's user variables.
10
12
  */
11
13
  exports.MAILGUN_BATCH_SEND_RECIPIENT_SUBJECT_TEMPLATE = `%recipient.subject%`;
14
+ /**
15
+ * Creates a composite key from the from/replyTo email addresses used to group MailgunRecipientBatchSendTarget values.
16
+ */
17
+ function mailgunRecipientBatchSendTargetFromReplyToBatchGroupKey(recipient) {
18
+ const fromEmail = (recipient.from?.email ?? '').toLowerCase();
19
+ const replyToEmail = (recipient.replyTo?.email ?? '').toLowerCase();
20
+ return `f:${fromEmail}|r:${replyToEmail}`;
21
+ }
12
22
  /**
13
23
  * Creates a ExpandMailgunRecipientBatchSendTargetRequestFactory from the input config.
14
24
  *
@@ -16,34 +26,100 @@ exports.MAILGUN_BATCH_SEND_RECIPIENT_SUBJECT_TEMPLATE = `%recipient.subject%`;
16
26
  * @returns
17
27
  */
18
28
  function expandMailgunRecipientBatchSendTargetRequestFactory(config) {
19
- const { request: baseRequest, useSubjectFromRecipientUserVariables, allowSingleRecipientBatchSendRequests, recipientVariablesConfig } = config;
20
- const defaultSubject = baseRequest.subject;
29
+ const { request: inputBaseRequest, useSubjectFromRecipientUserVariables, allowSingleRecipientBatchSendRequests, recipientVariablesConfig, notificationMessageEntityKeyRecipientLookup, overrideCarbonCopyVariablesWithCarbonCopyKeyRecipients } = config;
30
+ const defaultSubject = inputBaseRequest.subject;
21
31
  if (!defaultSubject && !useSubjectFromRecipientUserVariables) {
22
32
  throw new Error('defaultSubject must be set when "useSubjectFromRecipientUserVariables" is false');
23
33
  }
24
- const baseRequestCc = baseRequest.cc ? (0, util_1.asArray)(baseRequest.cc) : undefined;
25
- const baseRequestBcc = baseRequest.bcc ? (0, util_1.asArray)(baseRequest.bcc) : undefined;
26
- const baseRequestHasCarbonCopy = Boolean(baseRequestCc?.length || baseRequestBcc?.length);
34
+ /**
35
+ * Returns the carbon copy recipients, based on the input.
36
+ *
37
+ * Will return undefined if the array would be empty.
38
+ *
39
+ * @param input
40
+ * @returns
41
+ */
42
+ function determineCarbonCopyRecipients(input) {
43
+ const { baseRequestCarbonCopyRecipients, carbonCopyRecipients, carbonCopyRecipientsKeys } = input;
44
+ let cc = carbonCopyRecipients ? (0, util_1.asArray)(carbonCopyRecipients) : baseRequestCarbonCopyRecipients;
45
+ const resolvedCc = notificationMessageEntityKeyRecipientLookup?.getRecipientsForKeys(carbonCopyRecipientsKeys);
46
+ if (resolvedCc?.length) {
47
+ if (overrideCarbonCopyVariablesWithCarbonCopyKeyRecipients) {
48
+ cc = resolvedCc;
49
+ }
50
+ else {
51
+ cc = [...(cc ?? []), ...resolvedCc];
52
+ }
53
+ }
54
+ return cc?.length ? cc : undefined;
55
+ }
56
+ const baseRequestCc = determineCarbonCopyRecipients({
57
+ carbonCopyRecipients: inputBaseRequest.cc,
58
+ carbonCopyRecipientsKeys: inputBaseRequest.ccKeys
59
+ });
60
+ const baseRequestBcc = determineCarbonCopyRecipients({
61
+ carbonCopyRecipients: inputBaseRequest.bcc,
62
+ carbonCopyRecipientsKeys: inputBaseRequest.bccKeys
63
+ });
64
+ const baseRequest = {
65
+ ...inputBaseRequest,
66
+ cc: baseRequestCc,
67
+ bcc: baseRequestBcc
68
+ };
69
+ delete baseRequest.ccKeys;
70
+ delete baseRequest.bccKeys;
27
71
  const configAllowBatchSend = baseRequest.batchSend !== false;
28
- return (recipients) => {
72
+ return (inputRecipients) => {
73
+ // Process recipients to resolve keys
74
+ const recipients = inputRecipients.map((recipient) => {
75
+ let from = recipient.from ?? baseRequest.from;
76
+ let replyTo = recipient.replyTo ?? baseRequest.replyTo;
77
+ if (notificationMessageEntityKeyRecipientLookup) {
78
+ if (!from && recipient.fromKey) {
79
+ from = notificationMessageEntityKeyRecipientLookup.getRecipientOrDefaultForKey(recipient.fromKey);
80
+ }
81
+ if (!replyTo && recipient.replyToKey) {
82
+ replyTo = notificationMessageEntityKeyRecipientLookup.getRecipientOrDefaultForKey(recipient.replyToKey);
83
+ }
84
+ }
85
+ const cc = determineCarbonCopyRecipients({
86
+ baseRequestCarbonCopyRecipients: baseRequestCc,
87
+ carbonCopyRecipients: recipient.cc,
88
+ carbonCopyRecipientsKeys: recipient.ccKeys
89
+ });
90
+ const bcc = determineCarbonCopyRecipients({
91
+ baseRequestCarbonCopyRecipients: baseRequestBcc,
92
+ carbonCopyRecipients: recipient.bcc,
93
+ carbonCopyRecipientsKeys: recipient.bccKeys
94
+ });
95
+ const result = {
96
+ ...recipient,
97
+ from,
98
+ replyTo,
99
+ cc,
100
+ bcc
101
+ };
102
+ return result;
103
+ });
29
104
  const allowBatchSend = configAllowBatchSend && (allowSingleRecipientBatchSendRequests || recipients.length > 1);
30
- let batchSendRequest;
31
105
  const nonBatchSendRequests = [];
32
106
  const batchSendRequestRecipients = [];
33
107
  recipients.forEach((recipient) => {
34
- const recipientHasCarbonCopy = baseRequestHasCarbonCopy || Boolean(recipient.cc?.length || recipient.bcc?.length);
108
+ const recipientHasCarbonCopy = Boolean(recipient.cc?.length || recipient.bcc?.length);
35
109
  if (allowBatchSend && !recipientHasCarbonCopy) {
36
110
  // add to batch send recipients
37
111
  batchSendRequestRecipients.push(recipient);
38
112
  }
39
113
  else {
40
114
  // add to non-batch send requests
41
- // use the subject from the recipient's user variables if available as a defaul
42
- const cc = (0, util_1.mergeArraysIntoArray)([], baseRequestCc, recipient.cc);
43
- const bcc = (0, util_1.mergeArraysIntoArray)([], baseRequestBcc, recipient.bcc);
115
+ // use the subject from the recipient's user variables if available as a default
116
+ const cc = recipient.cc;
117
+ const bcc = recipient.bcc;
44
118
  const subject = (useSubjectFromRecipientUserVariables ? recipient.userVariables?.['subject'] : undefined) ?? defaultSubject ?? recipient.userVariables?.['subject'];
45
119
  const request = {
46
120
  ...baseRequest,
121
+ from: recipient.from ?? baseRequest.from,
122
+ replyTo: recipient.replyTo ?? baseRequest.replyTo,
47
123
  recipientVariablesConfig: baseRequest.recipientVariablesConfig ?? recipientVariablesConfig,
48
124
  to: recipient,
49
125
  cc,
@@ -54,17 +130,60 @@ function expandMailgunRecipientBatchSendTargetRequestFactory(config) {
54
130
  nonBatchSendRequests.push(request);
55
131
  }
56
132
  });
133
+ // create batch send request(s)
134
+ const batchSendRequests = [];
57
135
  if (batchSendRequestRecipients.length > 0) {
58
136
  const subject = useSubjectFromRecipientUserVariables ? exports.MAILGUN_BATCH_SEND_RECIPIENT_SUBJECT_TEMPLATE : defaultSubject;
59
- batchSendRequest = {
60
- ...baseRequest,
61
- recipientVariablesConfig: baseRequest.recipientVariablesConfig ?? recipientVariablesConfig,
62
- to: batchSendRequestRecipients,
63
- subject,
64
- batchSend: true
65
- };
137
+ // Group recipients by their from/replyTo values
138
+ const batchSendRecipientGroups = (0, util_1.makeValuesGroupMap)(batchSendRequestRecipients, mailgunRecipientBatchSendTargetFromReplyToBatchGroupKey);
139
+ batchSendRecipientGroups.forEach((groupRecipients) => {
140
+ // All recipients in this group should share the same from/replyTo values
141
+ const firstRecipient = groupRecipients[0];
142
+ const batchRequest = {
143
+ ...baseRequest,
144
+ from: firstRecipient.from,
145
+ replyTo: firstRecipient.replyTo,
146
+ recipientVariablesConfig: baseRequest.recipientVariablesConfig ?? recipientVariablesConfig,
147
+ to: groupRecipients,
148
+ subject,
149
+ batchSend: true
150
+ };
151
+ batchSendRequests.push(batchRequest);
152
+ });
66
153
  }
67
- return (0, util_1.filterMaybeArrayValues)([batchSendRequest, ...nonBatchSendRequests]);
154
+ return (0, util_1.filterMaybeArrayValues)([...batchSendRequests, ...nonBatchSendRequests]);
155
+ };
156
+ }
157
+ /**
158
+ * Creates a NotificationMessageEntityKeyRecipientLookup given the input configuration.
159
+ *
160
+ * @param config The configuration for the lookup.
161
+ * @returns The lookup.
162
+ */
163
+ function notificationMessageEntityKeyRecipientLookup(config) {
164
+ const { recipientsMap } = config;
165
+ function getRecipientOrDefaultForKey(input, defaultRecipient) {
166
+ let result = defaultRecipient;
167
+ if (input) {
168
+ result = recipientsMap.get(input) ?? defaultRecipient;
169
+ }
170
+ return result;
171
+ }
172
+ function getRecipientsForKeys(input) {
173
+ let result = undefined;
174
+ if (input) {
175
+ const keysArray = (0, util_1.asArray)(input);
176
+ const recipients = (0, util_1.filterMaybeArrayValues)(keysArray.map((key) => recipientsMap.get(key)));
177
+ if (recipients.length > 0) {
178
+ result = recipients;
179
+ }
180
+ }
181
+ return result;
182
+ }
183
+ return {
184
+ recipientsMap,
185
+ getRecipientOrDefaultForKey,
186
+ getRecipientsForKeys
68
187
  };
69
188
  }
70
189
  //# sourceMappingURL=mailgun.util.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mailgun.util.js","sourceRoot":"","sources":["../../../../../../packages/nestjs/mailgun/src/lib/mailgun.util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mailgun.util.js","sourceRoot":"","sources":["../../../../../../packages/nestjs/mailgun/src/lib/mailgun.util.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dereekb/nestjs/openai",
3
- "version": "12.6.13",
3
+ "version": "12.6.15",
4
4
  "type": "commonjs",
5
5
  "peerDependencies": {},
6
6
  "dependencies": {},
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dereekb/nestjs",
3
- "version": "12.6.13",
3
+ "version": "12.6.15",
4
4
  "type": "commonjs",
5
5
  "exports": {
6
6
  ".": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dereekb/nestjs/stripe",
3
- "version": "12.6.13",
3
+ "version": "12.6.15",
4
4
  "type": "commonjs",
5
5
  "peerDependencies": {},
6
6
  "dependencies": {},
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dereekb/nestjs/typeform",
3
- "version": "12.6.13",
3
+ "version": "12.6.15",
4
4
  "type": "commonjs",
5
5
  "peerDependencies": {},
6
6
  "dependencies": {},
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dereekb/nestjs/vapiai",
3
- "version": "12.6.13",
3
+ "version": "12.6.15",
4
4
  "type": "commonjs",
5
5
  "peerDependencies": {},
6
6
  "dependencies": {},