quidproquo-webserver 0.1.10 → 0.1.12
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/lib/commonjs/actions/email/EmailActionType.d.ts +4 -0
- package/lib/commonjs/actions/email/EmailActionType.js +9 -0
- package/lib/commonjs/actions/email/EmailActionType.js.map +1 -0
- package/lib/commonjs/actions/email/EmailDeliveryStatus.d.ts +9 -0
- package/lib/commonjs/actions/email/EmailDeliveryStatus.js +23 -0
- package/lib/commonjs/actions/email/EmailDeliveryStatus.js.map +1 -0
- package/lib/commonjs/actions/email/EmailSendEmailActionRequester.d.ts +11 -0
- package/lib/commonjs/actions/email/EmailSendEmailActionRequester.js +22 -0
- package/lib/commonjs/actions/email/EmailSendEmailActionRequester.js.map +1 -0
- package/lib/commonjs/actions/email/EmailSendEmailActionTypes.d.ts +24 -0
- package/lib/commonjs/actions/email/EmailSendEmailActionTypes.js +3 -0
- package/lib/commonjs/actions/email/EmailSendEmailActionTypes.js.map +1 -0
- package/lib/commonjs/actions/email/EmailSetDeliveryStatusActionRequester.d.ts +3 -0
- package/lib/commonjs/actions/email/EmailSetDeliveryStatusActionRequester.js +18 -0
- package/lib/commonjs/actions/email/EmailSetDeliveryStatusActionRequester.js.map +1 -0
- package/lib/commonjs/actions/email/EmailSetDeliveryStatusActionTypes.d.ts +14 -0
- package/lib/commonjs/actions/email/EmailSetDeliveryStatusActionTypes.js +3 -0
- package/lib/commonjs/actions/email/EmailSetDeliveryStatusActionTypes.js.map +1 -0
- package/lib/commonjs/actions/email/index.d.ts +6 -0
- package/lib/commonjs/actions/email/index.js +23 -0
- package/lib/commonjs/actions/email/index.js.map +1 -0
- package/lib/commonjs/actions/index.d.ts +1 -0
- package/lib/commonjs/actions/index.js +1 -0
- package/lib/commonjs/actions/index.js.map +1 -1
- package/lib/commonjs/config/QPQConfig.d.ts +1 -0
- package/lib/commonjs/config/QPQConfig.js +1 -0
- package/lib/commonjs/config/QPQConfig.js.map +1 -1
- package/lib/commonjs/config/settings/emailSender.d.ts +5 -0
- package/lib/commonjs/config/settings/emailSender.js +13 -0
- package/lib/commonjs/config/settings/emailSender.js.map +1 -0
- package/lib/commonjs/config/settings/index.d.ts +1 -0
- package/lib/commonjs/config/settings/index.js +1 -0
- package/lib/commonjs/config/settings/index.js.map +1 -1
- package/lib/commonjs/utils/qpqConfigAccessorsUtils.d.ts +2 -1
- package/lib/commonjs/utils/qpqConfigAccessorsUtils.js +6 -1
- package/lib/commonjs/utils/qpqConfigAccessorsUtils.js.map +1 -1
- package/lib/esm/actions/email/EmailActionType.d.ts +4 -0
- package/lib/esm/actions/email/EmailActionType.js +6 -0
- package/lib/esm/actions/email/EmailActionType.js.map +1 -0
- package/lib/esm/actions/email/EmailDeliveryStatus.d.ts +9 -0
- package/lib/esm/actions/email/EmailDeliveryStatus.js +20 -0
- package/lib/esm/actions/email/EmailDeliveryStatus.js.map +1 -0
- package/lib/esm/actions/email/EmailSendEmailActionRequester.d.ts +11 -0
- package/lib/esm/actions/email/EmailSendEmailActionRequester.js +18 -0
- package/lib/esm/actions/email/EmailSendEmailActionRequester.js.map +1 -0
- package/lib/esm/actions/email/EmailSendEmailActionTypes.d.ts +24 -0
- package/lib/esm/actions/email/EmailSendEmailActionTypes.js +2 -0
- package/lib/esm/actions/email/EmailSendEmailActionTypes.js.map +1 -0
- package/lib/esm/actions/email/EmailSetDeliveryStatusActionRequester.d.ts +3 -0
- package/lib/esm/actions/email/EmailSetDeliveryStatusActionRequester.js +15 -0
- package/lib/esm/actions/email/EmailSetDeliveryStatusActionRequester.js.map +1 -0
- package/lib/esm/actions/email/EmailSetDeliveryStatusActionTypes.d.ts +14 -0
- package/lib/esm/actions/email/EmailSetDeliveryStatusActionTypes.js +2 -0
- package/lib/esm/actions/email/EmailSetDeliveryStatusActionTypes.js.map +1 -0
- package/lib/esm/actions/email/index.d.ts +6 -0
- package/lib/esm/actions/email/index.js +7 -0
- package/lib/esm/actions/email/index.js.map +1 -0
- package/lib/esm/actions/index.d.ts +1 -0
- package/lib/esm/actions/index.js +1 -0
- package/lib/esm/actions/index.js.map +1 -1
- package/lib/esm/config/QPQConfig.d.ts +1 -0
- package/lib/esm/config/QPQConfig.js +1 -0
- package/lib/esm/config/QPQConfig.js.map +1 -1
- package/lib/esm/config/settings/emailSender.d.ts +5 -0
- package/lib/esm/config/settings/emailSender.js +9 -0
- package/lib/esm/config/settings/emailSender.js.map +1 -0
- package/lib/esm/config/settings/index.d.ts +1 -0
- package/lib/esm/config/settings/index.js +1 -0
- package/lib/esm/config/settings/index.js.map +1 -1
- package/lib/esm/utils/qpqConfigAccessorsUtils.d.ts +2 -1
- package/lib/esm/utils/qpqConfigAccessorsUtils.js +4 -0
- package/lib/esm/utils/qpqConfigAccessorsUtils.js.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EmailActionType = void 0;
|
|
4
|
+
var EmailActionType;
|
|
5
|
+
(function (EmailActionType) {
|
|
6
|
+
EmailActionType["SendEmail"] = "@quidproquo-webserver/Email/SendEmail";
|
|
7
|
+
EmailActionType["SetDeliveryStatus"] = "@quidproquo-webserver/Email/SetDeliveryStatus";
|
|
8
|
+
})(EmailActionType || (exports.EmailActionType = EmailActionType = {}));
|
|
9
|
+
//# sourceMappingURL=EmailActionType.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmailActionType.js","sourceRoot":"","sources":["../../../../src/actions/email/EmailActionType.ts"],"names":[],"mappings":";;;AAAA,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,sEAAmD,CAAA;IACnD,sFAAmE,CAAA;AACrE,CAAC,EAHW,eAAe,+BAAf,eAAe,QAG1B","sourcesContent":["export enum EmailActionType {\n SendEmail = '@quidproquo-webserver/Email/SendEmail',\n SetDeliveryStatus = '@quidproquo-webserver/Email/SetDeliveryStatus',\n}\n"]}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EmailDeliveryStatus = void 0;
|
|
4
|
+
// SendGrid's delivery event statuses, plus `sent`: the default state a send
|
|
5
|
+
// starts in before any delivery events arrive.
|
|
6
|
+
var EmailDeliveryStatus;
|
|
7
|
+
(function (EmailDeliveryStatus) {
|
|
8
|
+
// The send action succeeded; no delivery events yet
|
|
9
|
+
EmailDeliveryStatus["sent"] = "sent";
|
|
10
|
+
// Provider received the message and is preparing to send it
|
|
11
|
+
EmailDeliveryStatus["processed"] = "processed";
|
|
12
|
+
// Receiving server temporarily rejected it; the provider will retry (reason = SMTP response)
|
|
13
|
+
EmailDeliveryStatus["deferred"] = "deferred";
|
|
14
|
+
// Accepted by the receiving server
|
|
15
|
+
EmailDeliveryStatus["delivered"] = "delivered";
|
|
16
|
+
// Provider did not attempt delivery: suppression list, invalid, prior bounce (reason attached)
|
|
17
|
+
EmailDeliveryStatus["dropped"] = "dropped";
|
|
18
|
+
// Permanent rejection
|
|
19
|
+
EmailDeliveryStatus["bounce"] = "bounce";
|
|
20
|
+
// Blocked by the receiving server
|
|
21
|
+
EmailDeliveryStatus["block"] = "block";
|
|
22
|
+
})(EmailDeliveryStatus || (exports.EmailDeliveryStatus = EmailDeliveryStatus = {}));
|
|
23
|
+
//# sourceMappingURL=EmailDeliveryStatus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmailDeliveryStatus.js","sourceRoot":"","sources":["../../../../src/actions/email/EmailDeliveryStatus.ts"],"names":[],"mappings":";;;AAAA,4EAA4E;AAC5E,+CAA+C;AAC/C,IAAY,mBAqBX;AArBD,WAAY,mBAAmB;IAC7B,oDAAoD;IACpD,oCAAa,CAAA;IAEb,4DAA4D;IAC5D,8CAAuB,CAAA;IAEvB,6FAA6F;IAC7F,4CAAqB,CAAA;IAErB,mCAAmC;IACnC,8CAAuB,CAAA;IAEvB,+FAA+F;IAC/F,0CAAmB,CAAA;IAEnB,sBAAsB;IACtB,wCAAiB,CAAA;IAEjB,kCAAkC;IAClC,sCAAe,CAAA;AACjB,CAAC,EArBW,mBAAmB,mCAAnB,mBAAmB,QAqB9B","sourcesContent":["// SendGrid's delivery event statuses, plus `sent`: the default state a send\n// starts in before any delivery events arrive.\nexport enum EmailDeliveryStatus {\n // The send action succeeded; no delivery events yet\n sent = 'sent',\n\n // Provider received the message and is preparing to send it\n processed = 'processed',\n\n // Receiving server temporarily rejected it; the provider will retry (reason = SMTP response)\n deferred = 'deferred',\n\n // Accepted by the receiving server\n delivered = 'delivered',\n\n // Provider did not attempt delivery: suppression list, invalid, prior bounce (reason attached)\n dropped = 'dropped',\n\n // Permanent rejection\n bounce = 'bounce',\n\n // Blocked by the receiving server\n block = 'block',\n}\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { EmailSendEmailActionPayload, EmailSendEmailActionRequester } from './EmailSendEmailActionTypes';
|
|
2
|
+
export declare const EmailSendEmailErrorTypeEnum: {
|
|
3
|
+
MessageRejected: string;
|
|
4
|
+
SenderNotVerified: string;
|
|
5
|
+
AccountSuspended: string;
|
|
6
|
+
SendingPaused: string;
|
|
7
|
+
Throttled: string;
|
|
8
|
+
LimitExceeded: string;
|
|
9
|
+
BadRequest: string;
|
|
10
|
+
};
|
|
11
|
+
export declare function askEmailSendEmail(payload: EmailSendEmailActionPayload): EmailSendEmailActionRequester;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EmailSendEmailErrorTypeEnum = void 0;
|
|
4
|
+
exports.askEmailSendEmail = askEmailSendEmail;
|
|
5
|
+
const quidproquo_core_1 = require("quidproquo-core");
|
|
6
|
+
const EmailActionType_1 = require("./EmailActionType");
|
|
7
|
+
exports.EmailSendEmailErrorTypeEnum = (0, quidproquo_core_1.createErrorEnumForAction)(EmailActionType_1.EmailActionType.SendEmail, [
|
|
8
|
+
'MessageRejected',
|
|
9
|
+
'SenderNotVerified',
|
|
10
|
+
'AccountSuspended',
|
|
11
|
+
'SendingPaused',
|
|
12
|
+
'Throttled',
|
|
13
|
+
'LimitExceeded',
|
|
14
|
+
'BadRequest',
|
|
15
|
+
]);
|
|
16
|
+
function* askEmailSendEmail(payload) {
|
|
17
|
+
return yield {
|
|
18
|
+
type: EmailActionType_1.EmailActionType.SendEmail,
|
|
19
|
+
payload,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=EmailSendEmailActionRequester.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmailSendEmailActionRequester.js","sourceRoot":"","sources":["../../../../src/actions/email/EmailSendEmailActionRequester.ts"],"names":[],"mappings":";;;AAeA,8CAKC;AApBD,qDAA2D;AAE3D,uDAAoD;AAGvC,QAAA,2BAA2B,GAAG,IAAA,0CAAwB,EAAC,iCAAe,CAAC,SAAS,EAAE;IAC7F,iBAAiB;IACjB,mBAAmB;IACnB,kBAAkB;IAClB,eAAe;IACf,WAAW;IACX,eAAe;IACf,YAAY;CACb,CAAC,CAAC;AAEH,QAAe,CAAC,CAAC,iBAAiB,CAAC,OAAoC;IACrE,OAAO,MAAM;QACX,IAAI,EAAE,iCAAe,CAAC,SAAS;QAC/B,OAAO;KACR,CAAC;AACJ,CAAC","sourcesContent":["import { createErrorEnumForAction } from 'quidproquo-core';\n\nimport { EmailActionType } from './EmailActionType';\nimport { EmailSendEmailActionPayload, EmailSendEmailActionRequester } from './EmailSendEmailActionTypes';\n\nexport const EmailSendEmailErrorTypeEnum = createErrorEnumForAction(EmailActionType.SendEmail, [\n 'MessageRejected',\n 'SenderNotVerified',\n 'AccountSuspended',\n 'SendingPaused',\n 'Throttled',\n 'LimitExceeded',\n 'BadRequest',\n]);\n\nexport function* askEmailSendEmail(payload: EmailSendEmailActionPayload): EmailSendEmailActionRequester {\n return yield {\n type: EmailActionType.SendEmail,\n payload,\n };\n}\n"]}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Action, ActionProcessor, ActionRequester, QPQBinaryData } from 'quidproquo-core';
|
|
2
|
+
import { EmailActionType } from './EmailActionType';
|
|
3
|
+
export type EmailSendEmailBody = {
|
|
4
|
+
bodyText: string;
|
|
5
|
+
bodyHtml?: string;
|
|
6
|
+
} | {
|
|
7
|
+
bodyText?: string;
|
|
8
|
+
bodyHtml: string;
|
|
9
|
+
};
|
|
10
|
+
export type EmailSendEmailActionPayload = {
|
|
11
|
+
from: string;
|
|
12
|
+
to: string[];
|
|
13
|
+
cc?: string[];
|
|
14
|
+
bcc?: string[];
|
|
15
|
+
replyTo?: string[];
|
|
16
|
+
subject: string;
|
|
17
|
+
attachments?: QPQBinaryData[];
|
|
18
|
+
} & EmailSendEmailBody;
|
|
19
|
+
export interface EmailSendEmailAction extends Action<EmailSendEmailActionPayload> {
|
|
20
|
+
type: EmailActionType.SendEmail;
|
|
21
|
+
payload: EmailSendEmailActionPayload;
|
|
22
|
+
}
|
|
23
|
+
export type EmailSendEmailActionProcessor = ActionProcessor<EmailSendEmailAction, string>;
|
|
24
|
+
export type EmailSendEmailActionRequester = ActionRequester<EmailSendEmailAction, string>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmailSendEmailActionTypes.js","sourceRoot":"","sources":["../../../../src/actions/email/EmailSendEmailActionTypes.ts"],"names":[],"mappings":"","sourcesContent":["import { Action, ActionProcessor, ActionRequester, QPQBinaryData } from 'quidproquo-core';\n\nimport { EmailActionType } from './EmailActionType';\n\n// At least one of bodyText / bodyHtml must be provided\nexport type EmailSendEmailBody = { bodyText: string; bodyHtml?: string } | { bodyText?: string; bodyHtml: string };\n\n// Payload\nexport type EmailSendEmailActionPayload = {\n from: string;\n to: string[];\n cc?: string[];\n bcc?: string[];\n replyTo?: string[];\n subject: string;\n attachments?: QPQBinaryData[];\n} & EmailSendEmailBody;\n\n// Action\nexport interface EmailSendEmailAction extends Action<EmailSendEmailActionPayload> {\n type: EmailActionType.SendEmail;\n payload: EmailSendEmailActionPayload;\n}\n\n// Function Types\nexport type EmailSendEmailActionProcessor = ActionProcessor<EmailSendEmailAction, string>;\nexport type EmailSendEmailActionRequester = ActionRequester<EmailSendEmailAction, string>;\n"]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { EmailDeliveryStatus } from './EmailDeliveryStatus';
|
|
2
|
+
import { EmailSetDeliveryStatusActionRequester } from './EmailSetDeliveryStatusActionTypes';
|
|
3
|
+
export declare function askEmailSetDeliveryStatus(messageId: string, deliveryStatus: EmailDeliveryStatus, reason?: string): EmailSetDeliveryStatusActionRequester;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.askEmailSetDeliveryStatus = askEmailSetDeliveryStatus;
|
|
4
|
+
const EmailActionType_1 = require("./EmailActionType");
|
|
5
|
+
// Records a delivery status change for a previously sent email. The action itself
|
|
6
|
+
// does nothing at runtime: its meaning is the log entry, which the admin action
|
|
7
|
+
// search folds into the email's entity via the messageId link key.
|
|
8
|
+
function* askEmailSetDeliveryStatus(messageId, deliveryStatus, reason) {
|
|
9
|
+
return yield {
|
|
10
|
+
type: EmailActionType_1.EmailActionType.SetDeliveryStatus,
|
|
11
|
+
payload: {
|
|
12
|
+
messageId,
|
|
13
|
+
deliveryStatus,
|
|
14
|
+
reason,
|
|
15
|
+
},
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=EmailSetDeliveryStatusActionRequester.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmailSetDeliveryStatusActionRequester.js","sourceRoot":"","sources":["../../../../src/actions/email/EmailSetDeliveryStatusActionRequester.ts"],"names":[],"mappings":";;AAOA,8DAaC;AApBD,uDAAoD;AAIpD,kFAAkF;AAClF,gFAAgF;AAChF,mEAAmE;AACnE,QAAe,CAAC,CAAC,yBAAyB,CACxC,SAAiB,EACjB,cAAmC,EACnC,MAAe;IAEf,OAAO,MAAM;QACX,IAAI,EAAE,iCAAe,CAAC,iBAAiB;QACvC,OAAO,EAAE;YACP,SAAS;YACT,cAAc;YACd,MAAM;SACP;KACF,CAAC;AACJ,CAAC","sourcesContent":["import { EmailActionType } from './EmailActionType';\nimport { EmailDeliveryStatus } from './EmailDeliveryStatus';\nimport { EmailSetDeliveryStatusActionRequester } from './EmailSetDeliveryStatusActionTypes';\n\n// Records a delivery status change for a previously sent email. The action itself\n// does nothing at runtime: its meaning is the log entry, which the admin action\n// search folds into the email's entity via the messageId link key.\nexport function* askEmailSetDeliveryStatus(\n messageId: string,\n deliveryStatus: EmailDeliveryStatus,\n reason?: string,\n): EmailSetDeliveryStatusActionRequester {\n return yield {\n type: EmailActionType.SetDeliveryStatus,\n payload: {\n messageId,\n deliveryStatus,\n reason,\n },\n };\n}\n"]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Action, ActionProcessor, ActionRequester } from 'quidproquo-core';
|
|
2
|
+
import { EmailActionType } from './EmailActionType';
|
|
3
|
+
import { EmailDeliveryStatus } from './EmailDeliveryStatus';
|
|
4
|
+
export type EmailSetDeliveryStatusActionPayload = {
|
|
5
|
+
messageId: string;
|
|
6
|
+
deliveryStatus: EmailDeliveryStatus;
|
|
7
|
+
reason?: string;
|
|
8
|
+
};
|
|
9
|
+
export interface EmailSetDeliveryStatusAction extends Action<EmailSetDeliveryStatusActionPayload> {
|
|
10
|
+
type: EmailActionType.SetDeliveryStatus;
|
|
11
|
+
payload: EmailSetDeliveryStatusActionPayload;
|
|
12
|
+
}
|
|
13
|
+
export type EmailSetDeliveryStatusActionProcessor = ActionProcessor<EmailSetDeliveryStatusAction, void>;
|
|
14
|
+
export type EmailSetDeliveryStatusActionRequester = ActionRequester<EmailSetDeliveryStatusAction, void>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmailSetDeliveryStatusActionTypes.js","sourceRoot":"","sources":["../../../../src/actions/email/EmailSetDeliveryStatusActionTypes.ts"],"names":[],"mappings":"","sourcesContent":["import { Action, ActionProcessor, ActionRequester } from 'quidproquo-core';\n\nimport { EmailActionType } from './EmailActionType';\nimport { EmailDeliveryStatus } from './EmailDeliveryStatus';\n\n// Payload\nexport type EmailSetDeliveryStatusActionPayload = {\n messageId: string;\n deliveryStatus: EmailDeliveryStatus;\n\n // Provider detail: drop reason, SMTP response for deferrals, bounce text\n reason?: string;\n};\n\n// Action\nexport interface EmailSetDeliveryStatusAction extends Action<EmailSetDeliveryStatusActionPayload> {\n type: EmailActionType.SetDeliveryStatus;\n payload: EmailSetDeliveryStatusActionPayload;\n}\n\n// Function Types\nexport type EmailSetDeliveryStatusActionProcessor = ActionProcessor<EmailSetDeliveryStatusAction, void>;\nexport type EmailSetDeliveryStatusActionRequester = ActionRequester<EmailSetDeliveryStatusAction, void>;\n"]}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export * from './EmailActionType';
|
|
2
|
+
export * from './EmailDeliveryStatus';
|
|
3
|
+
export * from './EmailSendEmailActionRequester';
|
|
4
|
+
export * from './EmailSendEmailActionTypes';
|
|
5
|
+
export * from './EmailSetDeliveryStatusActionRequester';
|
|
6
|
+
export * from './EmailSetDeliveryStatusActionTypes';
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./EmailActionType"), exports);
|
|
18
|
+
__exportStar(require("./EmailDeliveryStatus"), exports);
|
|
19
|
+
__exportStar(require("./EmailSendEmailActionRequester"), exports);
|
|
20
|
+
__exportStar(require("./EmailSendEmailActionTypes"), exports);
|
|
21
|
+
__exportStar(require("./EmailSetDeliveryStatusActionRequester"), exports);
|
|
22
|
+
__exportStar(require("./EmailSetDeliveryStatusActionTypes"), exports);
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/actions/email/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,wDAAsC;AACtC,kEAAgD;AAChD,8DAA4C;AAC5C,0EAAwD;AACxD,sEAAoD","sourcesContent":["export * from './EmailActionType';\nexport * from './EmailDeliveryStatus';\nexport * from './EmailSendEmailActionRequester';\nexport * from './EmailSendEmailActionTypes';\nexport * from './EmailSetDeliveryStatusActionRequester';\nexport * from './EmailSetDeliveryStatusActionTypes';\n"]}
|
|
@@ -18,6 +18,7 @@ __exportStar(require("./admin"), exports);
|
|
|
18
18
|
__exportStar(require("./api"), exports);
|
|
19
19
|
__exportStar(require("./apiKeyValidation"), exports);
|
|
20
20
|
__exportStar(require("./dns"), exports);
|
|
21
|
+
__exportStar(require("./email"), exports);
|
|
21
22
|
__exportStar(require("./genericDataResource"), exports);
|
|
22
23
|
__exportStar(require("./openApiSpec"), exports);
|
|
23
24
|
__exportStar(require("./routeAuthValidation"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/actions/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,wCAAsB;AACtB,qDAAmC;AACnC,wCAAsB;AACtB,wDAAsC;AACtC,gDAA8B;AAC9B,wDAAsC;AACtC,oDAAkC;AAClC,6CAA2B;AAC3B,8CAA4B","sourcesContent":["export * from './admin';\nexport * from './api';\nexport * from './apiKeyValidation';\nexport * from './dns';\nexport * from './genericDataResource';\nexport * from './openApiSpec';\nexport * from './routeAuthValidation';\nexport * from './serviceFunction';\nexport * from './webEntry';\nexport * from './websocket';\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/actions/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,wCAAsB;AACtB,qDAAmC;AACnC,wCAAsB;AACtB,0CAAwB;AACxB,wDAAsC;AACtC,gDAA8B;AAC9B,wDAAsC;AACtC,oDAAkC;AAClC,6CAA2B;AAC3B,8CAA4B","sourcesContent":["export * from './admin';\nexport * from './api';\nexport * from './apiKeyValidation';\nexport * from './dns';\nexport * from './email';\nexport * from './genericDataResource';\nexport * from './openApiSpec';\nexport * from './routeAuthValidation';\nexport * from './serviceFunction';\nexport * from './webEntry';\nexport * from './websocket';\n"]}
|
|
@@ -2,6 +2,7 @@ export declare enum QPQWebServerConfigSettingType {
|
|
|
2
2
|
Route = "@quidproquo-webserver/config/Route",
|
|
3
3
|
DefaultRouteOptions = "@quidproquo-webserver/config/DefaultRouteOptions",
|
|
4
4
|
Dns = "@quidproquo-webserver/config/Dns",
|
|
5
|
+
EmailSender = "@quidproquo-webserver/config/EmailSender",
|
|
5
6
|
OpenApi = "@quidproquo-webserver/config/OpenApi",
|
|
6
7
|
Seo = "@quidproquo-webserver/config/Seo",
|
|
7
8
|
SubdomainRedirect = "@quidproquo-webserver/config/SubdomainRedirect",
|
|
@@ -6,6 +6,7 @@ var QPQWebServerConfigSettingType;
|
|
|
6
6
|
QPQWebServerConfigSettingType["Route"] = "@quidproquo-webserver/config/Route";
|
|
7
7
|
QPQWebServerConfigSettingType["DefaultRouteOptions"] = "@quidproquo-webserver/config/DefaultRouteOptions";
|
|
8
8
|
QPQWebServerConfigSettingType["Dns"] = "@quidproquo-webserver/config/Dns";
|
|
9
|
+
QPQWebServerConfigSettingType["EmailSender"] = "@quidproquo-webserver/config/EmailSender";
|
|
9
10
|
QPQWebServerConfigSettingType["OpenApi"] = "@quidproquo-webserver/config/OpenApi";
|
|
10
11
|
QPQWebServerConfigSettingType["Seo"] = "@quidproquo-webserver/config/Seo";
|
|
11
12
|
QPQWebServerConfigSettingType["SubdomainRedirect"] = "@quidproquo-webserver/config/SubdomainRedirect";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QPQConfig.js","sourceRoot":"","sources":["../../../src/config/QPQConfig.ts"],"names":[],"mappings":";;;AAAA,IAAY,
|
|
1
|
+
{"version":3,"file":"QPQConfig.js","sourceRoot":"","sources":["../../../src/config/QPQConfig.ts"],"names":[],"mappings":";;;AAAA,IAAY,6BAkBX;AAlBD,WAAY,6BAA6B;IACvC,6EAA4C,CAAA;IAC5C,yGAAwE,CAAA;IACxE,yEAAwC,CAAA;IACxC,yFAAwD,CAAA;IACxD,iFAAgD,CAAA;IAChD,yEAAwC,CAAA;IACxC,qGAAoE,CAAA;IACpE,mFAAkD,CAAA;IAClD,yEAAwC,CAAA;IACxC,+EAA8C,CAAA;IAC9C,iGAAgE,CAAA;IAChE,qFAAoD,CAAA;IACpD,6EAA4C,CAAA;IAC5C,yFAAwD,CAAA;IACxD,yFAAwD,CAAA;IACxD,mHAAkF,CAAA;IAClF,uGAAsE,CAAA;AACxE,CAAC,EAlBW,6BAA6B,6CAA7B,6BAA6B,QAkBxC","sourcesContent":["export enum QPQWebServerConfigSettingType {\n Route = '@quidproquo-webserver/config/Route',\n DefaultRouteOptions = '@quidproquo-webserver/config/DefaultRouteOptions',\n Dns = '@quidproquo-webserver/config/Dns',\n EmailSender = '@quidproquo-webserver/config/EmailSender',\n OpenApi = '@quidproquo-webserver/config/OpenApi',\n Seo = '@quidproquo-webserver/config/Seo',\n SubdomainRedirect = '@quidproquo-webserver/config/SubdomainRedirect',\n WebEntry = '@quidproquo-webserver/config/WebEntry',\n Api = '@quidproquo-webserver/config/Api',\n ApiKey = '@quidproquo-webserver/config/ApiKey',\n ServiceFunction = '@quidproquo-webserver/config/ServiceFunction',\n WebSocket = '@quidproquo-webserver/config/WebSocket',\n Cache = '@quidproquo-webserver/config/Cache',\n Certificate = '@quidproquo-webserver/config/Certificate',\n DomainProxy = '@quidproquo-webserver/config/DomainProxy',\n StorageDriveCorsSettings = '@quidproquo-webserver/config/StorageDriveCorsSettings',\n FileUploadSettings = '@quidproquo-webserver/config/FileUploadSettings',\n}\n\n// TODO: move this somewhere better\nexport interface CacheSettings {\n minTTLInSeconds: number;\n maxTTLInSeconds: number;\n defaultTTLInSeconds: number;\n mustRevalidate: boolean;\n}\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.defineEmailSender = void 0;
|
|
4
|
+
const QPQConfig_1 = require("../QPQConfig");
|
|
5
|
+
const defineEmailSender = (rootDomain) => {
|
|
6
|
+
return {
|
|
7
|
+
configSettingType: QPQConfig_1.QPQWebServerConfigSettingType.EmailSender,
|
|
8
|
+
uniqueKey: rootDomain,
|
|
9
|
+
rootDomain,
|
|
10
|
+
};
|
|
11
|
+
};
|
|
12
|
+
exports.defineEmailSender = defineEmailSender;
|
|
13
|
+
//# sourceMappingURL=emailSender.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emailSender.js","sourceRoot":"","sources":["../../../../src/config/settings/emailSender.ts"],"names":[],"mappings":";;;AAEA,4CAA6D;AAMtD,MAAM,iBAAiB,GAAG,CAAC,UAAkB,EAAwC,EAAE;IAC5F,OAAO;QACL,iBAAiB,EAAE,yCAA6B,CAAC,WAAW;QAC5D,SAAS,EAAE,UAAU;QAErB,UAAU;KACX,CAAC;AACJ,CAAC,CAAC;AAPW,QAAA,iBAAiB,qBAO5B","sourcesContent":["import { QPQConfigSetting } from 'quidproquo-core';\n\nimport { QPQWebServerConfigSettingType } from '../QPQConfig';\n\nexport interface EmailSenderQPQWebServerConfigSetting extends QPQConfigSetting {\n rootDomain: string;\n}\n\nexport const defineEmailSender = (rootDomain: string): EmailSenderQPQWebServerConfigSetting => {\n return {\n configSettingType: QPQWebServerConfigSettingType.EmailSender,\n uniqueKey: rootDomain,\n\n rootDomain,\n };\n};\n"]}
|
|
@@ -6,6 +6,7 @@ export * from './defaultRouteOptions';
|
|
|
6
6
|
export * from './defineAuthSystem';
|
|
7
7
|
export * from './dns';
|
|
8
8
|
export * from './domainProxy';
|
|
9
|
+
export * from './emailSender';
|
|
9
10
|
export * from './fileUploadSettings';
|
|
10
11
|
export * from './migration';
|
|
11
12
|
export * from './openApi';
|
|
@@ -22,6 +22,7 @@ __exportStar(require("./defaultRouteOptions"), exports);
|
|
|
22
22
|
__exportStar(require("./defineAuthSystem"), exports);
|
|
23
23
|
__exportStar(require("./dns"), exports);
|
|
24
24
|
__exportStar(require("./domainProxy"), exports);
|
|
25
|
+
__exportStar(require("./emailSender"), exports);
|
|
25
26
|
__exportStar(require("./fileUploadSettings"), exports);
|
|
26
27
|
__exportStar(require("./migration"), exports);
|
|
27
28
|
__exportStar(require("./openApi"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/config/settings/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wCAAsB;AACtB,2CAAyB;AACzB,0CAAwB;AACxB,gDAA8B;AAC9B,wDAAsC;AACtC,qDAAmC;AACnC,wCAAsB;AACtB,gDAA8B;AAC9B,uDAAqC;AACrC,8CAA4B;AAC5B,4CAA0B;AAC1B,0CAAwB;AACxB,yCAAuB;AACvB,wCAAsB;AACtB,oDAAkC;AAClC,6DAA2C;AAC3C,sDAAoC;AACpC,6CAA2B;AAC3B,8CAA4B","sourcesContent":["export * from './api';\nexport * from './apiKey';\nexport * from './cache';\nexport * from './certificate';\nexport * from './defaultRouteOptions';\nexport * from './defineAuthSystem';\nexport * from './dns';\nexport * from './domainProxy';\nexport * from './fileUploadSettings';\nexport * from './migration';\nexport * from './openApi';\nexport * from './route';\nexport * from './seed';\nexport * from './seo';\nexport * from './serviceFunction';\nexport * from './storageDriveCorsSettings';\nexport * from './subdomainRedirect';\nexport * from './webEntry';\nexport * from './websocket';\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/config/settings/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wCAAsB;AACtB,2CAAyB;AACzB,0CAAwB;AACxB,gDAA8B;AAC9B,wDAAsC;AACtC,qDAAmC;AACnC,wCAAsB;AACtB,gDAA8B;AAC9B,gDAA8B;AAC9B,uDAAqC;AACrC,8CAA4B;AAC5B,4CAA0B;AAC1B,0CAAwB;AACxB,yCAAuB;AACvB,wCAAsB;AACtB,oDAAkC;AAClC,6DAA2C;AAC3C,sDAAoC;AACpC,6CAA2B;AAC3B,8CAA4B","sourcesContent":["export * from './api';\nexport * from './apiKey';\nexport * from './cache';\nexport * from './certificate';\nexport * from './defaultRouteOptions';\nexport * from './defineAuthSystem';\nexport * from './dns';\nexport * from './domainProxy';\nexport * from './emailSender';\nexport * from './fileUploadSettings';\nexport * from './migration';\nexport * from './openApi';\nexport * from './route';\nexport * from './seed';\nexport * from './seo';\nexport * from './serviceFunction';\nexport * from './storageDriveCorsSettings';\nexport * from './subdomainRedirect';\nexport * from './webEntry';\nexport * from './websocket';\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { QPQConfig, QpqFunctionRuntime } from 'quidproquo-core';
|
|
2
|
-
import { ApiKeyQPQWebServerConfigSetting, CacheQPQWebServerConfigSetting, CertificateQPQWebServerConfigSetting, DefaultRouteOptionsQPQWebServerConfigSetting, DnsQPQWebServerConfigSetting, DomainProxyQPQWebServerConfigSetting, FileUploadSettings, OpenApiQPQWebServerConfigSetting, RouteQPQWebServerConfigSetting, SeoQPQWebServerConfigSetting, ServiceFunctionQPQWebServerConfigSetting, SubdomainRedirectQPQWebServerConfigSetting, WebSocketQPQWebServerConfigSetting } from '../config';
|
|
2
|
+
import { ApiKeyQPQWebServerConfigSetting, CacheQPQWebServerConfigSetting, CertificateQPQWebServerConfigSetting, DefaultRouteOptionsQPQWebServerConfigSetting, DnsQPQWebServerConfigSetting, DomainProxyQPQWebServerConfigSetting, EmailSenderQPQWebServerConfigSetting, FileUploadSettings, OpenApiQPQWebServerConfigSetting, RouteQPQWebServerConfigSetting, SeoQPQWebServerConfigSetting, ServiceFunctionQPQWebServerConfigSetting, SubdomainRedirectQPQWebServerConfigSetting, WebSocketQPQWebServerConfigSetting } from '../config';
|
|
3
3
|
import { ApiQPQWebServerConfigSetting, WebEntryQPQWebServerConfigSetting } from '../config';
|
|
4
4
|
export declare const getAllRoutes: (qpqConfig: QPQConfig) => RouteQPQWebServerConfigSetting[];
|
|
5
5
|
export declare const getAllRoutesForApi: (apiName: string, qpqConfig: QPQConfig) => RouteQPQWebServerConfigSetting[];
|
|
@@ -55,5 +55,6 @@ export declare const constructEnvironmentDomainName: (environment: string, domai
|
|
|
55
55
|
export declare const getDefaultRouteSettings: (qpqConfig: QPQConfig) => DefaultRouteOptionsQPQWebServerConfigSetting[];
|
|
56
56
|
export declare const getDomainRoot: (rootDomain: string, environment: string, feature?: string) => string;
|
|
57
57
|
export declare const resolveDomainRoot: (rootDomain: string, qpqConfig: QPQConfig) => string;
|
|
58
|
+
export declare const getEmailSenderSettings: (qpqConfig: QPQConfig) => EmailSenderQPQWebServerConfigSetting[];
|
|
58
59
|
export declare const getWebsocketSettings: (qpqConfig: QPQConfig) => WebSocketQPQWebServerConfigSetting[];
|
|
59
60
|
export declare const getOwnedWebsocketSettings: (qpqConfig: QPQConfig) => WebSocketQPQWebServerConfigSetting[];
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getOwnedWebsocketSettings = exports.getWebsocketSettings = exports.resolveDomainRoot = exports.getDomainRoot = exports.getDefaultRouteSettings = exports.constructEnvironmentDomainName = exports.constructServiceDomainName = exports.resolveApexDomainNameFromDomainConfig = exports.getFileUploadSettings = exports.defaultFileUploadSettings = exports.isStorageDriveWebEntryOrigin = exports.getStorageDriveCorsAllowedOrigins = exports.resolveServiceScopedCorsAllowedOrigins = exports.getServiceDomainName = exports.getBaseDomainName = exports.getEnvironmentDomainName = exports.getCacheConfigByName = exports.getAllOwnedCertifcateConfigs = exports.getAllOwnedCacheConfigs = exports.getDomainProxyConfigs = exports.getWebEntryConfigs = exports.getDnsConfigs = exports.getApiConfigs = exports.getSubdomainRedirects = exports.getWebsocketEntryByApiName = exports.getWebEntry = exports.getDomainName = exports.getAllSrcEntries = exports.getAllWebsocketSrcEntries = exports.getAllOpenApiSpecs = exports.getOwnedServiceFunctions = exports.getAllServiceFunctions = exports.getAllSeo = exports.getAllApiKeyConfigs = exports.getAllRoutesForApi = exports.getAllRoutes = void 0;
|
|
3
|
+
exports.getOwnedWebsocketSettings = exports.getWebsocketSettings = exports.getEmailSenderSettings = exports.resolveDomainRoot = exports.getDomainRoot = exports.getDefaultRouteSettings = exports.constructEnvironmentDomainName = exports.constructServiceDomainName = exports.resolveApexDomainNameFromDomainConfig = exports.getFileUploadSettings = exports.defaultFileUploadSettings = exports.isStorageDriveWebEntryOrigin = exports.getStorageDriveCorsAllowedOrigins = exports.resolveServiceScopedCorsAllowedOrigins = exports.getServiceDomainName = exports.getBaseDomainName = exports.getEnvironmentDomainName = exports.getCacheConfigByName = exports.getAllOwnedCertifcateConfigs = exports.getAllOwnedCacheConfigs = exports.getDomainProxyConfigs = exports.getWebEntryConfigs = exports.getDnsConfigs = exports.getApiConfigs = exports.getSubdomainRedirects = exports.getWebsocketEntryByApiName = exports.getWebEntry = exports.getDomainName = exports.getAllSrcEntries = exports.getAllWebsocketSrcEntries = exports.getAllOpenApiSpecs = exports.getOwnedServiceFunctions = exports.getAllServiceFunctions = exports.getAllSeo = exports.getAllApiKeyConfigs = exports.getAllRoutesForApi = exports.getAllRoutes = void 0;
|
|
4
4
|
const quidproquo_core_1 = require("quidproquo-core");
|
|
5
5
|
const config_1 = require("../config");
|
|
6
6
|
const getAllRoutes = (qpqConfig) => {
|
|
@@ -237,6 +237,11 @@ const resolveDomainRoot = (rootDomain, qpqConfig) => {
|
|
|
237
237
|
return domain;
|
|
238
238
|
};
|
|
239
239
|
exports.resolveDomainRoot = resolveDomainRoot;
|
|
240
|
+
const getEmailSenderSettings = (qpqConfig) => {
|
|
241
|
+
const emailSenderSettings = quidproquo_core_1.qpqCoreUtils.getConfigSettings(qpqConfig, config_1.QPQWebServerConfigSettingType.EmailSender) || [];
|
|
242
|
+
return emailSenderSettings;
|
|
243
|
+
};
|
|
244
|
+
exports.getEmailSenderSettings = getEmailSenderSettings;
|
|
240
245
|
const getWebsocketSettings = (qpqConfig) => {
|
|
241
246
|
const websocketSettings = quidproquo_core_1.qpqCoreUtils.getConfigSettings(qpqConfig, config_1.QPQWebServerConfigSettingType.WebSocket) || [];
|
|
242
247
|
return websocketSettings;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qpqConfigAccessorsUtils.js","sourceRoot":"","sources":["../../../src/utils/qpqConfigAccessorsUtils.ts"],"names":[],"mappings":"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","sourcesContent":["import { isDefined, QPQConfig, qpqCoreUtils, QpqFunctionRuntime } from 'quidproquo-core';\n\nimport {\n ApiKeyQPQWebServerConfigSetting,\n CacheQPQWebServerConfigSetting,\n CertificateQPQWebServerConfigSetting,\n DefaultRouteOptionsQPQWebServerConfigSetting,\n DnsQPQWebServerConfigSetting,\n DomainProxyQPQWebServerConfigSetting,\n FileUploadSettings,\n FileUploadSettingsQPQWebServerConfigSetting,\n OpenApiQPQWebServerConfigSetting,\n QPQWebServerConfigSettingType,\n RouteQPQWebServerConfigSetting,\n SeoQPQWebServerConfigSetting,\n ServiceFunctionQPQWebServerConfigSetting,\n StorageDriveCorsSettingsQPQWebServerConfigSetting,\n SubdomainRedirectQPQWebServerConfigSetting,\n WebSocketQPQWebServerConfigSetting,\n} from '../config';\nimport { ApiQPQWebServerConfigSetting, WebEntryQPQWebServerConfigSetting } from '../config';\n\nexport const getAllRoutes = (qpqConfig: QPQConfig): RouteQPQWebServerConfigSetting[] => {\n const routes = qpqCoreUtils.getConfigSettings<RouteQPQWebServerConfigSetting>(qpqConfig, QPQWebServerConfigSettingType.Route);\n\n return routes;\n};\n\nexport const getAllRoutesForApi = (apiName: string, qpqConfig: QPQConfig): RouteQPQWebServerConfigSetting[] => {\n const routes = getAllRoutes(qpqConfig);\n\n return routes;\n};\n\nexport const getAllApiKeyConfigs = (qpqConfig: QPQConfig): ApiKeyQPQWebServerConfigSetting[] => {\n const apiKeyConfigs = qpqCoreUtils.getConfigSettings<ApiKeyQPQWebServerConfigSetting>(qpqConfig, QPQWebServerConfigSettingType.ApiKey);\n\n return apiKeyConfigs;\n};\n\nexport const getAllSeo = (qpqConfig: QPQConfig): SeoQPQWebServerConfigSetting[] => {\n const seoConfigs = qpqCoreUtils.getConfigSettings<SeoQPQWebServerConfigSetting>(qpqConfig, QPQWebServerConfigSettingType.Seo);\n\n return seoConfigs;\n};\n\nexport const getAllServiceFunctions = (qpqConfig: QPQConfig): ServiceFunctionQPQWebServerConfigSetting[] => {\n const serviceFunctions = qpqCoreUtils.getConfigSettings<ServiceFunctionQPQWebServerConfigSetting>(\n qpqConfig,\n QPQWebServerConfigSettingType.ServiceFunction,\n );\n\n return serviceFunctions;\n};\n\nexport const getOwnedServiceFunctions = (qpqConfig: QPQConfig): ServiceFunctionQPQWebServerConfigSetting[] => {\n const serviceFunctions = getAllServiceFunctions(qpqConfig);\n\n return qpqCoreUtils.getOwnedItems(serviceFunctions, qpqConfig);\n};\n\nexport const getAllOpenApiSpecs = (configs: QPQConfig): OpenApiQPQWebServerConfigSetting[] => {\n const openApiSpecs = qpqCoreUtils.getConfigSettings<OpenApiQPQWebServerConfigSetting>(configs, QPQWebServerConfigSettingType.OpenApi);\n\n return openApiSpecs;\n};\n\nexport const getAllWebsocketSrcEntries = (qpqConfig: QPQConfig): QpqFunctionRuntime[] => {\n return getOwnedWebsocketSettings(qpqConfig)\n .flatMap((s) => [s.eventProcessors.onConnect, s.eventProcessors.onDisconnect, s.eventProcessors.onMessage])\n .filter(isDefined);\n};\n\n// Used in bundlers to know where and what to build and index\n// Events, routes, etc\nexport const getAllSrcEntries = (configs: QPQConfig): QpqFunctionRuntime[] => {\n return [\n ...getAllRoutes(configs).map((r) => r.runtime),\n // ...getAllOpenApiSpecs(configs).map((r) => r.openApiSpecPath),\n ...getAllSeo(configs).map((seo) => seo.runtime),\n ...getAllServiceFunctions(configs).map((sf) => sf.runtime),\n ...getAllWebsocketSrcEntries(configs),\n ];\n};\n\nexport const getDomainName = (configs: QPQConfig): string => {\n const dnsSettings = qpqCoreUtils.getConfigSetting<DnsQPQWebServerConfigSetting>(configs, QPQWebServerConfigSettingType.Dns);\n\n return dnsSettings?.dnsBase || '';\n};\n\nexport const getWebEntry = (configs: QPQConfig): string => {\n const webEntry = qpqCoreUtils.getConfigSetting<WebEntryQPQWebServerConfigSetting>(configs, QPQWebServerConfigSettingType.WebEntry);\n\n if (!webEntry?.buildPath) {\n throw new Error('please use defineWebEntry in your qpq config');\n }\n\n return webEntry?.buildPath;\n};\n\nexport const getWebsocketEntryByApiName = (apiName: string, qpqConfig: QPQConfig): WebSocketQPQWebServerConfigSetting => {\n const websocketSettings = getWebsocketSettings(qpqConfig);\n\n const websocketSetting = websocketSettings.find((s) => s.apiName === apiName);\n\n if (!websocketSetting) {\n throw new Error(`No websocket setting found for api [${apiName}]`);\n }\n\n return websocketSetting;\n};\n\nexport const getSubdomainRedirects = (configs: QPQConfig): SubdomainRedirectQPQWebServerConfigSetting[] => {\n const subdomainRedirects = qpqCoreUtils.getConfigSettings<SubdomainRedirectQPQWebServerConfigSetting>(\n configs,\n QPQWebServerConfigSettingType.SubdomainRedirect,\n );\n\n return subdomainRedirects;\n};\n\nexport const getApiConfigs = (configs: QPQConfig): ApiQPQWebServerConfigSetting[] => {\n return qpqCoreUtils.getConfigSettings<ApiQPQWebServerConfigSetting>(configs, QPQWebServerConfigSettingType.Api);\n};\n\nexport const getDnsConfigs = (configs: QPQConfig): DnsQPQWebServerConfigSetting[] => {\n return qpqCoreUtils.getConfigSettings<DnsQPQWebServerConfigSetting>(configs, QPQWebServerConfigSettingType.Dns);\n};\n\nexport const getWebEntryConfigs = (configs: QPQConfig): WebEntryQPQWebServerConfigSetting[] => {\n return qpqCoreUtils.getConfigSettings<WebEntryQPQWebServerConfigSetting>(configs, QPQWebServerConfigSettingType.WebEntry);\n};\n\nexport const getDomainProxyConfigs = (configs: QPQConfig): DomainProxyQPQWebServerConfigSetting[] => {\n return qpqCoreUtils.getConfigSettings<DomainProxyQPQWebServerConfigSetting>(configs, QPQWebServerConfigSettingType.DomainProxy);\n};\n\nexport const getAllOwnedCacheConfigs = (qpqConfig: QPQConfig): CacheQPQWebServerConfigSetting[] => {\n const cacheSettings = qpqCoreUtils.getConfigSettings<CacheQPQWebServerConfigSetting>(qpqConfig, QPQWebServerConfigSettingType.Cache);\n\n return qpqCoreUtils.getOwnedItems(cacheSettings, qpqConfig);\n};\n\nexport const getAllOwnedCertifcateConfigs = (qpqConfig: QPQConfig): CertificateQPQWebServerConfigSetting[] => {\n const certificateSettings = qpqCoreUtils.getConfigSettings<CertificateQPQWebServerConfigSetting>(\n qpqConfig,\n QPQWebServerConfigSettingType.Certificate,\n );\n\n return qpqCoreUtils.getOwnedItems(certificateSettings, qpqConfig);\n};\n\nexport const getCacheConfigByName = (cacheConfigName: string, qpqConfig: QPQConfig): CacheQPQWebServerConfigSetting => {\n const cacheSetting = qpqCoreUtils\n .getConfigSettings<CacheQPQWebServerConfigSetting>(qpqConfig, QPQWebServerConfigSettingType.Cache)\n .find((c) => c.name === cacheConfigName);\n\n if (!cacheSetting) {\n throw new Error(`No cache config found for name [${cacheConfigName}]`);\n }\n\n return cacheSetting;\n};\n\nexport const getEnvironmentDomainName = (configs: QPQConfig): string => {\n const environment = qpqCoreUtils.getApplicationModuleEnvironment(configs);\n const apexDomainName = getDomainName(configs);\n\n if (environment === 'production') {\n return apexDomainName;\n }\n\n return `${environment}.${apexDomainName}`;\n};\n\nexport const getBaseDomainName = (qpqConfig: QPQConfig): string => {\n const environmentDomain = getEnvironmentDomainName(qpqConfig);\n const feature = qpqCoreUtils.getApplicationModuleFeature(qpqConfig);\n\n if (feature) {\n return `${feature}.${environmentDomain}`;\n }\n\n return environmentDomain;\n};\n\nexport const getServiceDomainName = (qpqConfig: QPQConfig): string => {\n const service = qpqCoreUtils.getApplicationModuleName(qpqConfig);\n const domainBase = getBaseDomainName(qpqConfig);\n\n return `${service}.${domainBase}`;\n};\n\n/**\n * Resolve browser CORS origins for a service resource. An explicit list wins;\n * otherwise scope to this service's own domain (apex + one-level subdomain\n * wildcard, which S3/CloudFront both support). Falls back to '*' only when the\n * service declares no domain at all (nothing browser-facing).\n *\n * Note: key off the raw dns base (`getDomainName`) to detect \"no domain\" —\n * `getBaseDomainName` still returns an env prefix like `development.` here.\n */\nexport const resolveServiceScopedCorsAllowedOrigins = (qpqConfig: QPQConfig, explicitOrigins?: string[]): string[] => {\n if (explicitOrigins) {\n return explicitOrigins;\n }\n\n if (!getDomainName(qpqConfig)) {\n return ['*'];\n }\n\n const baseDomain = getBaseDomainName(qpqConfig);\n return [`https://${baseDomain}`, `https://*.${baseDomain}`];\n};\n\n/**\n * Browser origins allowed to read/write a storage drive's objects cross-origin\n * (e.g. presigned uploads/downloads), looked up by the drive's name. An explicit\n * `defineStorageDriveCorsSettings` wins; otherwise the service-scoped default.\n */\nexport const getStorageDriveCorsAllowedOrigins = (qpqConfig: QPQConfig, storageDriveName: string): string[] => {\n const corsSetting = qpqCoreUtils\n .getConfigSettings<StorageDriveCorsSettingsQPQWebServerConfigSetting>(qpqConfig, QPQWebServerConfigSettingType.StorageDriveCorsSettings)\n .find((setting) => setting.storageDriveName === storageDriveName);\n\n return resolveServiceScopedCorsAllowedOrigins(qpqConfig, corsSetting?.allowedOrigins);\n};\n\n/**\n * Whether any web entry in this service serves its assets from the named storage\n * drive (`storageDrive.sourceStorageDrive`) — i.e. the drive's bucket is a\n * CloudFront origin. Drives with no web entry consumer need no CloudFront access\n * to their bucket at all.\n */\nexport const isStorageDriveWebEntryOrigin = (qpqConfig: QPQConfig, storageDriveName: string): boolean => {\n return getWebEntryConfigs(qpqConfig).some((webEntry) => webEntry.storageDrive.sourceStorageDrive === storageDriveName);\n};\n\n// API Gateway caps request payloads at 10MB, so the default per-file ceiling matches it;\n// the other defaults exist to bound parser memory rather than to be hit in practice.\nexport const defaultFileUploadSettings: FileUploadSettings = {\n maxFileSizeBytes: 10 * 1024 * 1024,\n maxFileCount: 10,\n maxFieldCount: 100,\n maxFieldSizeBytes: 1024 * 1024,\n};\n\nexport const getFileUploadSettings = (qpqConfig: QPQConfig): FileUploadSettings => {\n const setting = qpqCoreUtils.getConfigSetting<FileUploadSettingsQPQWebServerConfigSetting>(\n qpqConfig,\n QPQWebServerConfigSettingType.FileUploadSettings,\n );\n\n return {\n ...defaultFileUploadSettings,\n ...Object.fromEntries(Object.entries(setting?.fileUploadSettings || {}).filter(([, value]) => isDefined(value))),\n };\n};\n\nexport const resolveApexDomainNameFromDomainConfig = (qpqConfig: QPQConfig, rootDomain: string, onRootDomain: boolean): string => {\n const feature = qpqCoreUtils.getApplicationModuleFeature(qpqConfig);\n const environment = qpqCoreUtils.getApplicationModuleEnvironment(qpqConfig);\n\n const apexDomain = onRootDomain\n ? getDomainRoot(rootDomain, environment, feature)\n : constructServiceDomainName(rootDomain, environment, qpqCoreUtils.getApplicationModuleName(qpqConfig), feature);\n\n return apexDomain;\n};\n\nexport const constructServiceDomainName = (rootDomain: string, environment: string, service: string, feature?: string) => {\n const domainBase = getDomainRoot(rootDomain, environment, feature);\n\n return `${service}.${domainBase}`;\n};\n\nexport const constructEnvironmentDomainName = (environment: string, domain: string): string => {\n if (environment === 'production') {\n return domain;\n }\n\n return `${environment}.${domain}`;\n};\n\nexport const getDefaultRouteSettings = (qpqConfig: QPQConfig): DefaultRouteOptionsQPQWebServerConfigSetting[] => {\n const defaultRouteSettings =\n qpqCoreUtils.getConfigSettings<DefaultRouteOptionsQPQWebServerConfigSetting>(qpqConfig, QPQWebServerConfigSettingType.DefaultRouteOptions) || [];\n\n return defaultRouteSettings;\n};\n\nexport const getDomainRoot = (rootDomain: string, environment: string, feature?: string): string => {\n let domainPrefix = environment !== 'production' ? `${environment}.` : '';\n if (feature) {\n domainPrefix = `${feature}.${domainPrefix}`;\n }\n\n return `${domainPrefix}${rootDomain}`;\n};\n\nexport const resolveDomainRoot = (rootDomain: string, qpqConfig: QPQConfig): string => {\n const domain = getDomainRoot(\n rootDomain,\n qpqCoreUtils.getApplicationModuleEnvironment(qpqConfig),\n qpqCoreUtils.getApplicationModuleFeature(qpqConfig),\n );\n\n return domain;\n};\n\nexport const getWebsocketSettings = (qpqConfig: QPQConfig): WebSocketQPQWebServerConfigSetting[] => {\n const websocketSettings =\n qpqCoreUtils.getConfigSettings<WebSocketQPQWebServerConfigSetting>(qpqConfig, QPQWebServerConfigSettingType.WebSocket) || [];\n\n return websocketSettings;\n};\n\nexport const getOwnedWebsocketSettings = (qpqConfig: QPQConfig): WebSocketQPQWebServerConfigSetting[] => {\n const websocketSettings = getWebsocketSettings(qpqConfig);\n\n return qpqCoreUtils.getOwnedItems(websocketSettings, qpqConfig);\n};\n"]}
|
|
1
|
+
{"version":3,"file":"qpqConfigAccessorsUtils.js","sourceRoot":"","sources":["../../../src/utils/qpqConfigAccessorsUtils.ts"],"names":[],"mappings":"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","sourcesContent":["import { isDefined, QPQConfig, qpqCoreUtils, QpqFunctionRuntime } from 'quidproquo-core';\n\nimport {\n ApiKeyQPQWebServerConfigSetting,\n CacheQPQWebServerConfigSetting,\n CertificateQPQWebServerConfigSetting,\n DefaultRouteOptionsQPQWebServerConfigSetting,\n DnsQPQWebServerConfigSetting,\n DomainProxyQPQWebServerConfigSetting,\n EmailSenderQPQWebServerConfigSetting,\n FileUploadSettings,\n FileUploadSettingsQPQWebServerConfigSetting,\n OpenApiQPQWebServerConfigSetting,\n QPQWebServerConfigSettingType,\n RouteQPQWebServerConfigSetting,\n SeoQPQWebServerConfigSetting,\n ServiceFunctionQPQWebServerConfigSetting,\n StorageDriveCorsSettingsQPQWebServerConfigSetting,\n SubdomainRedirectQPQWebServerConfigSetting,\n WebSocketQPQWebServerConfigSetting,\n} from '../config';\nimport { ApiQPQWebServerConfigSetting, WebEntryQPQWebServerConfigSetting } from '../config';\n\nexport const getAllRoutes = (qpqConfig: QPQConfig): RouteQPQWebServerConfigSetting[] => {\n const routes = qpqCoreUtils.getConfigSettings<RouteQPQWebServerConfigSetting>(qpqConfig, QPQWebServerConfigSettingType.Route);\n\n return routes;\n};\n\nexport const getAllRoutesForApi = (apiName: string, qpqConfig: QPQConfig): RouteQPQWebServerConfigSetting[] => {\n const routes = getAllRoutes(qpqConfig);\n\n return routes;\n};\n\nexport const getAllApiKeyConfigs = (qpqConfig: QPQConfig): ApiKeyQPQWebServerConfigSetting[] => {\n const apiKeyConfigs = qpqCoreUtils.getConfigSettings<ApiKeyQPQWebServerConfigSetting>(qpqConfig, QPQWebServerConfigSettingType.ApiKey);\n\n return apiKeyConfigs;\n};\n\nexport const getAllSeo = (qpqConfig: QPQConfig): SeoQPQWebServerConfigSetting[] => {\n const seoConfigs = qpqCoreUtils.getConfigSettings<SeoQPQWebServerConfigSetting>(qpqConfig, QPQWebServerConfigSettingType.Seo);\n\n return seoConfigs;\n};\n\nexport const getAllServiceFunctions = (qpqConfig: QPQConfig): ServiceFunctionQPQWebServerConfigSetting[] => {\n const serviceFunctions = qpqCoreUtils.getConfigSettings<ServiceFunctionQPQWebServerConfigSetting>(\n qpqConfig,\n QPQWebServerConfigSettingType.ServiceFunction,\n );\n\n return serviceFunctions;\n};\n\nexport const getOwnedServiceFunctions = (qpqConfig: QPQConfig): ServiceFunctionQPQWebServerConfigSetting[] => {\n const serviceFunctions = getAllServiceFunctions(qpqConfig);\n\n return qpqCoreUtils.getOwnedItems(serviceFunctions, qpqConfig);\n};\n\nexport const getAllOpenApiSpecs = (configs: QPQConfig): OpenApiQPQWebServerConfigSetting[] => {\n const openApiSpecs = qpqCoreUtils.getConfigSettings<OpenApiQPQWebServerConfigSetting>(configs, QPQWebServerConfigSettingType.OpenApi);\n\n return openApiSpecs;\n};\n\nexport const getAllWebsocketSrcEntries = (qpqConfig: QPQConfig): QpqFunctionRuntime[] => {\n return getOwnedWebsocketSettings(qpqConfig)\n .flatMap((s) => [s.eventProcessors.onConnect, s.eventProcessors.onDisconnect, s.eventProcessors.onMessage])\n .filter(isDefined);\n};\n\n// Used in bundlers to know where and what to build and index\n// Events, routes, etc\nexport const getAllSrcEntries = (configs: QPQConfig): QpqFunctionRuntime[] => {\n return [\n ...getAllRoutes(configs).map((r) => r.runtime),\n // ...getAllOpenApiSpecs(configs).map((r) => r.openApiSpecPath),\n ...getAllSeo(configs).map((seo) => seo.runtime),\n ...getAllServiceFunctions(configs).map((sf) => sf.runtime),\n ...getAllWebsocketSrcEntries(configs),\n ];\n};\n\nexport const getDomainName = (configs: QPQConfig): string => {\n const dnsSettings = qpqCoreUtils.getConfigSetting<DnsQPQWebServerConfigSetting>(configs, QPQWebServerConfigSettingType.Dns);\n\n return dnsSettings?.dnsBase || '';\n};\n\nexport const getWebEntry = (configs: QPQConfig): string => {\n const webEntry = qpqCoreUtils.getConfigSetting<WebEntryQPQWebServerConfigSetting>(configs, QPQWebServerConfigSettingType.WebEntry);\n\n if (!webEntry?.buildPath) {\n throw new Error('please use defineWebEntry in your qpq config');\n }\n\n return webEntry?.buildPath;\n};\n\nexport const getWebsocketEntryByApiName = (apiName: string, qpqConfig: QPQConfig): WebSocketQPQWebServerConfigSetting => {\n const websocketSettings = getWebsocketSettings(qpqConfig);\n\n const websocketSetting = websocketSettings.find((s) => s.apiName === apiName);\n\n if (!websocketSetting) {\n throw new Error(`No websocket setting found for api [${apiName}]`);\n }\n\n return websocketSetting;\n};\n\nexport const getSubdomainRedirects = (configs: QPQConfig): SubdomainRedirectQPQWebServerConfigSetting[] => {\n const subdomainRedirects = qpqCoreUtils.getConfigSettings<SubdomainRedirectQPQWebServerConfigSetting>(\n configs,\n QPQWebServerConfigSettingType.SubdomainRedirect,\n );\n\n return subdomainRedirects;\n};\n\nexport const getApiConfigs = (configs: QPQConfig): ApiQPQWebServerConfigSetting[] => {\n return qpqCoreUtils.getConfigSettings<ApiQPQWebServerConfigSetting>(configs, QPQWebServerConfigSettingType.Api);\n};\n\nexport const getDnsConfigs = (configs: QPQConfig): DnsQPQWebServerConfigSetting[] => {\n return qpqCoreUtils.getConfigSettings<DnsQPQWebServerConfigSetting>(configs, QPQWebServerConfigSettingType.Dns);\n};\n\nexport const getWebEntryConfigs = (configs: QPQConfig): WebEntryQPQWebServerConfigSetting[] => {\n return qpqCoreUtils.getConfigSettings<WebEntryQPQWebServerConfigSetting>(configs, QPQWebServerConfigSettingType.WebEntry);\n};\n\nexport const getDomainProxyConfigs = (configs: QPQConfig): DomainProxyQPQWebServerConfigSetting[] => {\n return qpqCoreUtils.getConfigSettings<DomainProxyQPQWebServerConfigSetting>(configs, QPQWebServerConfigSettingType.DomainProxy);\n};\n\nexport const getAllOwnedCacheConfigs = (qpqConfig: QPQConfig): CacheQPQWebServerConfigSetting[] => {\n const cacheSettings = qpqCoreUtils.getConfigSettings<CacheQPQWebServerConfigSetting>(qpqConfig, QPQWebServerConfigSettingType.Cache);\n\n return qpqCoreUtils.getOwnedItems(cacheSettings, qpqConfig);\n};\n\nexport const getAllOwnedCertifcateConfigs = (qpqConfig: QPQConfig): CertificateQPQWebServerConfigSetting[] => {\n const certificateSettings = qpqCoreUtils.getConfigSettings<CertificateQPQWebServerConfigSetting>(\n qpqConfig,\n QPQWebServerConfigSettingType.Certificate,\n );\n\n return qpqCoreUtils.getOwnedItems(certificateSettings, qpqConfig);\n};\n\nexport const getCacheConfigByName = (cacheConfigName: string, qpqConfig: QPQConfig): CacheQPQWebServerConfigSetting => {\n const cacheSetting = qpqCoreUtils\n .getConfigSettings<CacheQPQWebServerConfigSetting>(qpqConfig, QPQWebServerConfigSettingType.Cache)\n .find((c) => c.name === cacheConfigName);\n\n if (!cacheSetting) {\n throw new Error(`No cache config found for name [${cacheConfigName}]`);\n }\n\n return cacheSetting;\n};\n\nexport const getEnvironmentDomainName = (configs: QPQConfig): string => {\n const environment = qpqCoreUtils.getApplicationModuleEnvironment(configs);\n const apexDomainName = getDomainName(configs);\n\n if (environment === 'production') {\n return apexDomainName;\n }\n\n return `${environment}.${apexDomainName}`;\n};\n\nexport const getBaseDomainName = (qpqConfig: QPQConfig): string => {\n const environmentDomain = getEnvironmentDomainName(qpqConfig);\n const feature = qpqCoreUtils.getApplicationModuleFeature(qpqConfig);\n\n if (feature) {\n return `${feature}.${environmentDomain}`;\n }\n\n return environmentDomain;\n};\n\nexport const getServiceDomainName = (qpqConfig: QPQConfig): string => {\n const service = qpqCoreUtils.getApplicationModuleName(qpqConfig);\n const domainBase = getBaseDomainName(qpqConfig);\n\n return `${service}.${domainBase}`;\n};\n\n/**\n * Resolve browser CORS origins for a service resource. An explicit list wins;\n * otherwise scope to this service's own domain (apex + one-level subdomain\n * wildcard, which S3/CloudFront both support). Falls back to '*' only when the\n * service declares no domain at all (nothing browser-facing).\n *\n * Note: key off the raw dns base (`getDomainName`) to detect \"no domain\" —\n * `getBaseDomainName` still returns an env prefix like `development.` here.\n */\nexport const resolveServiceScopedCorsAllowedOrigins = (qpqConfig: QPQConfig, explicitOrigins?: string[]): string[] => {\n if (explicitOrigins) {\n return explicitOrigins;\n }\n\n if (!getDomainName(qpqConfig)) {\n return ['*'];\n }\n\n const baseDomain = getBaseDomainName(qpqConfig);\n return [`https://${baseDomain}`, `https://*.${baseDomain}`];\n};\n\n/**\n * Browser origins allowed to read/write a storage drive's objects cross-origin\n * (e.g. presigned uploads/downloads), looked up by the drive's name. An explicit\n * `defineStorageDriveCorsSettings` wins; otherwise the service-scoped default.\n */\nexport const getStorageDriveCorsAllowedOrigins = (qpqConfig: QPQConfig, storageDriveName: string): string[] => {\n const corsSetting = qpqCoreUtils\n .getConfigSettings<StorageDriveCorsSettingsQPQWebServerConfigSetting>(qpqConfig, QPQWebServerConfigSettingType.StorageDriveCorsSettings)\n .find((setting) => setting.storageDriveName === storageDriveName);\n\n return resolveServiceScopedCorsAllowedOrigins(qpqConfig, corsSetting?.allowedOrigins);\n};\n\n/**\n * Whether any web entry in this service serves its assets from the named storage\n * drive (`storageDrive.sourceStorageDrive`) — i.e. the drive's bucket is a\n * CloudFront origin. Drives with no web entry consumer need no CloudFront access\n * to their bucket at all.\n */\nexport const isStorageDriveWebEntryOrigin = (qpqConfig: QPQConfig, storageDriveName: string): boolean => {\n return getWebEntryConfigs(qpqConfig).some((webEntry) => webEntry.storageDrive.sourceStorageDrive === storageDriveName);\n};\n\n// API Gateway caps request payloads at 10MB, so the default per-file ceiling matches it;\n// the other defaults exist to bound parser memory rather than to be hit in practice.\nexport const defaultFileUploadSettings: FileUploadSettings = {\n maxFileSizeBytes: 10 * 1024 * 1024,\n maxFileCount: 10,\n maxFieldCount: 100,\n maxFieldSizeBytes: 1024 * 1024,\n};\n\nexport const getFileUploadSettings = (qpqConfig: QPQConfig): FileUploadSettings => {\n const setting = qpqCoreUtils.getConfigSetting<FileUploadSettingsQPQWebServerConfigSetting>(\n qpqConfig,\n QPQWebServerConfigSettingType.FileUploadSettings,\n );\n\n return {\n ...defaultFileUploadSettings,\n ...Object.fromEntries(Object.entries(setting?.fileUploadSettings || {}).filter(([, value]) => isDefined(value))),\n };\n};\n\nexport const resolveApexDomainNameFromDomainConfig = (qpqConfig: QPQConfig, rootDomain: string, onRootDomain: boolean): string => {\n const feature = qpqCoreUtils.getApplicationModuleFeature(qpqConfig);\n const environment = qpqCoreUtils.getApplicationModuleEnvironment(qpqConfig);\n\n const apexDomain = onRootDomain\n ? getDomainRoot(rootDomain, environment, feature)\n : constructServiceDomainName(rootDomain, environment, qpqCoreUtils.getApplicationModuleName(qpqConfig), feature);\n\n return apexDomain;\n};\n\nexport const constructServiceDomainName = (rootDomain: string, environment: string, service: string, feature?: string) => {\n const domainBase = getDomainRoot(rootDomain, environment, feature);\n\n return `${service}.${domainBase}`;\n};\n\nexport const constructEnvironmentDomainName = (environment: string, domain: string): string => {\n if (environment === 'production') {\n return domain;\n }\n\n return `${environment}.${domain}`;\n};\n\nexport const getDefaultRouteSettings = (qpqConfig: QPQConfig): DefaultRouteOptionsQPQWebServerConfigSetting[] => {\n const defaultRouteSettings =\n qpqCoreUtils.getConfigSettings<DefaultRouteOptionsQPQWebServerConfigSetting>(qpqConfig, QPQWebServerConfigSettingType.DefaultRouteOptions) || [];\n\n return defaultRouteSettings;\n};\n\nexport const getDomainRoot = (rootDomain: string, environment: string, feature?: string): string => {\n let domainPrefix = environment !== 'production' ? `${environment}.` : '';\n if (feature) {\n domainPrefix = `${feature}.${domainPrefix}`;\n }\n\n return `${domainPrefix}${rootDomain}`;\n};\n\nexport const resolveDomainRoot = (rootDomain: string, qpqConfig: QPQConfig): string => {\n const domain = getDomainRoot(\n rootDomain,\n qpqCoreUtils.getApplicationModuleEnvironment(qpqConfig),\n qpqCoreUtils.getApplicationModuleFeature(qpqConfig),\n );\n\n return domain;\n};\n\nexport const getEmailSenderSettings = (qpqConfig: QPQConfig): EmailSenderQPQWebServerConfigSetting[] => {\n const emailSenderSettings =\n qpqCoreUtils.getConfigSettings<EmailSenderQPQWebServerConfigSetting>(qpqConfig, QPQWebServerConfigSettingType.EmailSender) || [];\n\n return emailSenderSettings;\n};\n\nexport const getWebsocketSettings = (qpqConfig: QPQConfig): WebSocketQPQWebServerConfigSetting[] => {\n const websocketSettings =\n qpqCoreUtils.getConfigSettings<WebSocketQPQWebServerConfigSetting>(qpqConfig, QPQWebServerConfigSettingType.WebSocket) || [];\n\n return websocketSettings;\n};\n\nexport const getOwnedWebsocketSettings = (qpqConfig: QPQConfig): WebSocketQPQWebServerConfigSetting[] => {\n const websocketSettings = getWebsocketSettings(qpqConfig);\n\n return qpqCoreUtils.getOwnedItems(websocketSettings, qpqConfig);\n};\n"]}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export var EmailActionType;
|
|
2
|
+
(function (EmailActionType) {
|
|
3
|
+
EmailActionType["SendEmail"] = "@quidproquo-webserver/Email/SendEmail";
|
|
4
|
+
EmailActionType["SetDeliveryStatus"] = "@quidproquo-webserver/Email/SetDeliveryStatus";
|
|
5
|
+
})(EmailActionType || (EmailActionType = {}));
|
|
6
|
+
//# sourceMappingURL=EmailActionType.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmailActionType.js","sourceRoot":"","sources":["../../../../src/actions/email/EmailActionType.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,sEAAmD,CAAA;IACnD,sFAAmE,CAAA;AACrE,CAAC,EAHW,eAAe,KAAf,eAAe,QAG1B","sourcesContent":["export enum EmailActionType {\n SendEmail = '@quidproquo-webserver/Email/SendEmail',\n SetDeliveryStatus = '@quidproquo-webserver/Email/SetDeliveryStatus',\n}\n"]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// SendGrid's delivery event statuses, plus `sent`: the default state a send
|
|
2
|
+
// starts in before any delivery events arrive.
|
|
3
|
+
export var EmailDeliveryStatus;
|
|
4
|
+
(function (EmailDeliveryStatus) {
|
|
5
|
+
// The send action succeeded; no delivery events yet
|
|
6
|
+
EmailDeliveryStatus["sent"] = "sent";
|
|
7
|
+
// Provider received the message and is preparing to send it
|
|
8
|
+
EmailDeliveryStatus["processed"] = "processed";
|
|
9
|
+
// Receiving server temporarily rejected it; the provider will retry (reason = SMTP response)
|
|
10
|
+
EmailDeliveryStatus["deferred"] = "deferred";
|
|
11
|
+
// Accepted by the receiving server
|
|
12
|
+
EmailDeliveryStatus["delivered"] = "delivered";
|
|
13
|
+
// Provider did not attempt delivery: suppression list, invalid, prior bounce (reason attached)
|
|
14
|
+
EmailDeliveryStatus["dropped"] = "dropped";
|
|
15
|
+
// Permanent rejection
|
|
16
|
+
EmailDeliveryStatus["bounce"] = "bounce";
|
|
17
|
+
// Blocked by the receiving server
|
|
18
|
+
EmailDeliveryStatus["block"] = "block";
|
|
19
|
+
})(EmailDeliveryStatus || (EmailDeliveryStatus = {}));
|
|
20
|
+
//# sourceMappingURL=EmailDeliveryStatus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmailDeliveryStatus.js","sourceRoot":"","sources":["../../../../src/actions/email/EmailDeliveryStatus.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,+CAA+C;AAC/C,MAAM,CAAN,IAAY,mBAqBX;AArBD,WAAY,mBAAmB;IAC7B,oDAAoD;IACpD,oCAAa,CAAA;IAEb,4DAA4D;IAC5D,8CAAuB,CAAA;IAEvB,6FAA6F;IAC7F,4CAAqB,CAAA;IAErB,mCAAmC;IACnC,8CAAuB,CAAA;IAEvB,+FAA+F;IAC/F,0CAAmB,CAAA;IAEnB,sBAAsB;IACtB,wCAAiB,CAAA;IAEjB,kCAAkC;IAClC,sCAAe,CAAA;AACjB,CAAC,EArBW,mBAAmB,KAAnB,mBAAmB,QAqB9B","sourcesContent":["// SendGrid's delivery event statuses, plus `sent`: the default state a send\n// starts in before any delivery events arrive.\nexport enum EmailDeliveryStatus {\n // The send action succeeded; no delivery events yet\n sent = 'sent',\n\n // Provider received the message and is preparing to send it\n processed = 'processed',\n\n // Receiving server temporarily rejected it; the provider will retry (reason = SMTP response)\n deferred = 'deferred',\n\n // Accepted by the receiving server\n delivered = 'delivered',\n\n // Provider did not attempt delivery: suppression list, invalid, prior bounce (reason attached)\n dropped = 'dropped',\n\n // Permanent rejection\n bounce = 'bounce',\n\n // Blocked by the receiving server\n block = 'block',\n}\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { EmailSendEmailActionPayload, EmailSendEmailActionRequester } from './EmailSendEmailActionTypes';
|
|
2
|
+
export declare const EmailSendEmailErrorTypeEnum: {
|
|
3
|
+
MessageRejected: string;
|
|
4
|
+
SenderNotVerified: string;
|
|
5
|
+
AccountSuspended: string;
|
|
6
|
+
SendingPaused: string;
|
|
7
|
+
Throttled: string;
|
|
8
|
+
LimitExceeded: string;
|
|
9
|
+
BadRequest: string;
|
|
10
|
+
};
|
|
11
|
+
export declare function askEmailSendEmail(payload: EmailSendEmailActionPayload): EmailSendEmailActionRequester;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { createErrorEnumForAction } from 'quidproquo-core';
|
|
2
|
+
import { EmailActionType } from './EmailActionType';
|
|
3
|
+
export const EmailSendEmailErrorTypeEnum = createErrorEnumForAction(EmailActionType.SendEmail, [
|
|
4
|
+
'MessageRejected',
|
|
5
|
+
'SenderNotVerified',
|
|
6
|
+
'AccountSuspended',
|
|
7
|
+
'SendingPaused',
|
|
8
|
+
'Throttled',
|
|
9
|
+
'LimitExceeded',
|
|
10
|
+
'BadRequest',
|
|
11
|
+
]);
|
|
12
|
+
export function* askEmailSendEmail(payload) {
|
|
13
|
+
return yield {
|
|
14
|
+
type: EmailActionType.SendEmail,
|
|
15
|
+
payload,
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=EmailSendEmailActionRequester.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmailSendEmailActionRequester.js","sourceRoot":"","sources":["../../../../src/actions/email/EmailSendEmailActionRequester.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAE3D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,MAAM,CAAC,MAAM,2BAA2B,GAAG,wBAAwB,CAAC,eAAe,CAAC,SAAS,EAAE;IAC7F,iBAAiB;IACjB,mBAAmB;IACnB,kBAAkB;IAClB,eAAe;IACf,WAAW;IACX,eAAe;IACf,YAAY;CACb,CAAC,CAAC;AAEH,MAAM,SAAS,CAAC,CAAC,iBAAiB,CAAC,OAAoC;IACrE,OAAO,MAAM;QACX,IAAI,EAAE,eAAe,CAAC,SAAS;QAC/B,OAAO;KACR,CAAC;AACJ,CAAC","sourcesContent":["import { createErrorEnumForAction } from 'quidproquo-core';\n\nimport { EmailActionType } from './EmailActionType';\nimport { EmailSendEmailActionPayload, EmailSendEmailActionRequester } from './EmailSendEmailActionTypes';\n\nexport const EmailSendEmailErrorTypeEnum = createErrorEnumForAction(EmailActionType.SendEmail, [\n 'MessageRejected',\n 'SenderNotVerified',\n 'AccountSuspended',\n 'SendingPaused',\n 'Throttled',\n 'LimitExceeded',\n 'BadRequest',\n]);\n\nexport function* askEmailSendEmail(payload: EmailSendEmailActionPayload): EmailSendEmailActionRequester {\n return yield {\n type: EmailActionType.SendEmail,\n payload,\n };\n}\n"]}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Action, ActionProcessor, ActionRequester, QPQBinaryData } from 'quidproquo-core';
|
|
2
|
+
import { EmailActionType } from './EmailActionType';
|
|
3
|
+
export type EmailSendEmailBody = {
|
|
4
|
+
bodyText: string;
|
|
5
|
+
bodyHtml?: string;
|
|
6
|
+
} | {
|
|
7
|
+
bodyText?: string;
|
|
8
|
+
bodyHtml: string;
|
|
9
|
+
};
|
|
10
|
+
export type EmailSendEmailActionPayload = {
|
|
11
|
+
from: string;
|
|
12
|
+
to: string[];
|
|
13
|
+
cc?: string[];
|
|
14
|
+
bcc?: string[];
|
|
15
|
+
replyTo?: string[];
|
|
16
|
+
subject: string;
|
|
17
|
+
attachments?: QPQBinaryData[];
|
|
18
|
+
} & EmailSendEmailBody;
|
|
19
|
+
export interface EmailSendEmailAction extends Action<EmailSendEmailActionPayload> {
|
|
20
|
+
type: EmailActionType.SendEmail;
|
|
21
|
+
payload: EmailSendEmailActionPayload;
|
|
22
|
+
}
|
|
23
|
+
export type EmailSendEmailActionProcessor = ActionProcessor<EmailSendEmailAction, string>;
|
|
24
|
+
export type EmailSendEmailActionRequester = ActionRequester<EmailSendEmailAction, string>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmailSendEmailActionTypes.js","sourceRoot":"","sources":["../../../../src/actions/email/EmailSendEmailActionTypes.ts"],"names":[],"mappings":"","sourcesContent":["import { Action, ActionProcessor, ActionRequester, QPQBinaryData } from 'quidproquo-core';\n\nimport { EmailActionType } from './EmailActionType';\n\n// At least one of bodyText / bodyHtml must be provided\nexport type EmailSendEmailBody = { bodyText: string; bodyHtml?: string } | { bodyText?: string; bodyHtml: string };\n\n// Payload\nexport type EmailSendEmailActionPayload = {\n from: string;\n to: string[];\n cc?: string[];\n bcc?: string[];\n replyTo?: string[];\n subject: string;\n attachments?: QPQBinaryData[];\n} & EmailSendEmailBody;\n\n// Action\nexport interface EmailSendEmailAction extends Action<EmailSendEmailActionPayload> {\n type: EmailActionType.SendEmail;\n payload: EmailSendEmailActionPayload;\n}\n\n// Function Types\nexport type EmailSendEmailActionProcessor = ActionProcessor<EmailSendEmailAction, string>;\nexport type EmailSendEmailActionRequester = ActionRequester<EmailSendEmailAction, string>;\n"]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { EmailDeliveryStatus } from './EmailDeliveryStatus';
|
|
2
|
+
import { EmailSetDeliveryStatusActionRequester } from './EmailSetDeliveryStatusActionTypes';
|
|
3
|
+
export declare function askEmailSetDeliveryStatus(messageId: string, deliveryStatus: EmailDeliveryStatus, reason?: string): EmailSetDeliveryStatusActionRequester;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { EmailActionType } from './EmailActionType';
|
|
2
|
+
// Records a delivery status change for a previously sent email. The action itself
|
|
3
|
+
// does nothing at runtime: its meaning is the log entry, which the admin action
|
|
4
|
+
// search folds into the email's entity via the messageId link key.
|
|
5
|
+
export function* askEmailSetDeliveryStatus(messageId, deliveryStatus, reason) {
|
|
6
|
+
return yield {
|
|
7
|
+
type: EmailActionType.SetDeliveryStatus,
|
|
8
|
+
payload: {
|
|
9
|
+
messageId,
|
|
10
|
+
deliveryStatus,
|
|
11
|
+
reason,
|
|
12
|
+
},
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=EmailSetDeliveryStatusActionRequester.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmailSetDeliveryStatusActionRequester.js","sourceRoot":"","sources":["../../../../src/actions/email/EmailSetDeliveryStatusActionRequester.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAIpD,kFAAkF;AAClF,gFAAgF;AAChF,mEAAmE;AACnE,MAAM,SAAS,CAAC,CAAC,yBAAyB,CACxC,SAAiB,EACjB,cAAmC,EACnC,MAAe;IAEf,OAAO,MAAM;QACX,IAAI,EAAE,eAAe,CAAC,iBAAiB;QACvC,OAAO,EAAE;YACP,SAAS;YACT,cAAc;YACd,MAAM;SACP;KACF,CAAC;AACJ,CAAC","sourcesContent":["import { EmailActionType } from './EmailActionType';\nimport { EmailDeliveryStatus } from './EmailDeliveryStatus';\nimport { EmailSetDeliveryStatusActionRequester } from './EmailSetDeliveryStatusActionTypes';\n\n// Records a delivery status change for a previously sent email. The action itself\n// does nothing at runtime: its meaning is the log entry, which the admin action\n// search folds into the email's entity via the messageId link key.\nexport function* askEmailSetDeliveryStatus(\n messageId: string,\n deliveryStatus: EmailDeliveryStatus,\n reason?: string,\n): EmailSetDeliveryStatusActionRequester {\n return yield {\n type: EmailActionType.SetDeliveryStatus,\n payload: {\n messageId,\n deliveryStatus,\n reason,\n },\n };\n}\n"]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Action, ActionProcessor, ActionRequester } from 'quidproquo-core';
|
|
2
|
+
import { EmailActionType } from './EmailActionType';
|
|
3
|
+
import { EmailDeliveryStatus } from './EmailDeliveryStatus';
|
|
4
|
+
export type EmailSetDeliveryStatusActionPayload = {
|
|
5
|
+
messageId: string;
|
|
6
|
+
deliveryStatus: EmailDeliveryStatus;
|
|
7
|
+
reason?: string;
|
|
8
|
+
};
|
|
9
|
+
export interface EmailSetDeliveryStatusAction extends Action<EmailSetDeliveryStatusActionPayload> {
|
|
10
|
+
type: EmailActionType.SetDeliveryStatus;
|
|
11
|
+
payload: EmailSetDeliveryStatusActionPayload;
|
|
12
|
+
}
|
|
13
|
+
export type EmailSetDeliveryStatusActionProcessor = ActionProcessor<EmailSetDeliveryStatusAction, void>;
|
|
14
|
+
export type EmailSetDeliveryStatusActionRequester = ActionRequester<EmailSetDeliveryStatusAction, void>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmailSetDeliveryStatusActionTypes.js","sourceRoot":"","sources":["../../../../src/actions/email/EmailSetDeliveryStatusActionTypes.ts"],"names":[],"mappings":"","sourcesContent":["import { Action, ActionProcessor, ActionRequester } from 'quidproquo-core';\n\nimport { EmailActionType } from './EmailActionType';\nimport { EmailDeliveryStatus } from './EmailDeliveryStatus';\n\n// Payload\nexport type EmailSetDeliveryStatusActionPayload = {\n messageId: string;\n deliveryStatus: EmailDeliveryStatus;\n\n // Provider detail: drop reason, SMTP response for deferrals, bounce text\n reason?: string;\n};\n\n// Action\nexport interface EmailSetDeliveryStatusAction extends Action<EmailSetDeliveryStatusActionPayload> {\n type: EmailActionType.SetDeliveryStatus;\n payload: EmailSetDeliveryStatusActionPayload;\n}\n\n// Function Types\nexport type EmailSetDeliveryStatusActionProcessor = ActionProcessor<EmailSetDeliveryStatusAction, void>;\nexport type EmailSetDeliveryStatusActionRequester = ActionRequester<EmailSetDeliveryStatusAction, void>;\n"]}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export * from './EmailActionType';
|
|
2
|
+
export * from './EmailDeliveryStatus';
|
|
3
|
+
export * from './EmailSendEmailActionRequester';
|
|
4
|
+
export * from './EmailSendEmailActionTypes';
|
|
5
|
+
export * from './EmailSetDeliveryStatusActionRequester';
|
|
6
|
+
export * from './EmailSetDeliveryStatusActionTypes';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from './EmailActionType';
|
|
2
|
+
export * from './EmailDeliveryStatus';
|
|
3
|
+
export * from './EmailSendEmailActionRequester';
|
|
4
|
+
export * from './EmailSendEmailActionTypes';
|
|
5
|
+
export * from './EmailSetDeliveryStatusActionRequester';
|
|
6
|
+
export * from './EmailSetDeliveryStatusActionTypes';
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/actions/email/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yCAAyC,CAAC;AACxD,cAAc,qCAAqC,CAAC","sourcesContent":["export * from './EmailActionType';\nexport * from './EmailDeliveryStatus';\nexport * from './EmailSendEmailActionRequester';\nexport * from './EmailSendEmailActionTypes';\nexport * from './EmailSetDeliveryStatusActionRequester';\nexport * from './EmailSetDeliveryStatusActionTypes';\n"]}
|
package/lib/esm/actions/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/actions/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,oBAAoB,CAAC;AACnC,cAAc,OAAO,CAAC;AACtB,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC","sourcesContent":["export * from './admin';\nexport * from './api';\nexport * from './apiKeyValidation';\nexport * from './dns';\nexport * from './genericDataResource';\nexport * from './openApiSpec';\nexport * from './routeAuthValidation';\nexport * from './serviceFunction';\nexport * from './webEntry';\nexport * from './websocket';\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/actions/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,oBAAoB,CAAC;AACnC,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC","sourcesContent":["export * from './admin';\nexport * from './api';\nexport * from './apiKeyValidation';\nexport * from './dns';\nexport * from './email';\nexport * from './genericDataResource';\nexport * from './openApiSpec';\nexport * from './routeAuthValidation';\nexport * from './serviceFunction';\nexport * from './webEntry';\nexport * from './websocket';\n"]}
|
|
@@ -2,6 +2,7 @@ export declare enum QPQWebServerConfigSettingType {
|
|
|
2
2
|
Route = "@quidproquo-webserver/config/Route",
|
|
3
3
|
DefaultRouteOptions = "@quidproquo-webserver/config/DefaultRouteOptions",
|
|
4
4
|
Dns = "@quidproquo-webserver/config/Dns",
|
|
5
|
+
EmailSender = "@quidproquo-webserver/config/EmailSender",
|
|
5
6
|
OpenApi = "@quidproquo-webserver/config/OpenApi",
|
|
6
7
|
Seo = "@quidproquo-webserver/config/Seo",
|
|
7
8
|
SubdomainRedirect = "@quidproquo-webserver/config/SubdomainRedirect",
|
|
@@ -3,6 +3,7 @@ export var QPQWebServerConfigSettingType;
|
|
|
3
3
|
QPQWebServerConfigSettingType["Route"] = "@quidproquo-webserver/config/Route";
|
|
4
4
|
QPQWebServerConfigSettingType["DefaultRouteOptions"] = "@quidproquo-webserver/config/DefaultRouteOptions";
|
|
5
5
|
QPQWebServerConfigSettingType["Dns"] = "@quidproquo-webserver/config/Dns";
|
|
6
|
+
QPQWebServerConfigSettingType["EmailSender"] = "@quidproquo-webserver/config/EmailSender";
|
|
6
7
|
QPQWebServerConfigSettingType["OpenApi"] = "@quidproquo-webserver/config/OpenApi";
|
|
7
8
|
QPQWebServerConfigSettingType["Seo"] = "@quidproquo-webserver/config/Seo";
|
|
8
9
|
QPQWebServerConfigSettingType["SubdomainRedirect"] = "@quidproquo-webserver/config/SubdomainRedirect";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QPQConfig.js","sourceRoot":"","sources":["../../../src/config/QPQConfig.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"QPQConfig.js","sourceRoot":"","sources":["../../../src/config/QPQConfig.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,6BAkBX;AAlBD,WAAY,6BAA6B;IACvC,6EAA4C,CAAA;IAC5C,yGAAwE,CAAA;IACxE,yEAAwC,CAAA;IACxC,yFAAwD,CAAA;IACxD,iFAAgD,CAAA;IAChD,yEAAwC,CAAA;IACxC,qGAAoE,CAAA;IACpE,mFAAkD,CAAA;IAClD,yEAAwC,CAAA;IACxC,+EAA8C,CAAA;IAC9C,iGAAgE,CAAA;IAChE,qFAAoD,CAAA;IACpD,6EAA4C,CAAA;IAC5C,yFAAwD,CAAA;IACxD,yFAAwD,CAAA;IACxD,mHAAkF,CAAA;IAClF,uGAAsE,CAAA;AACxE,CAAC,EAlBW,6BAA6B,KAA7B,6BAA6B,QAkBxC","sourcesContent":["export enum QPQWebServerConfigSettingType {\n Route = '@quidproquo-webserver/config/Route',\n DefaultRouteOptions = '@quidproquo-webserver/config/DefaultRouteOptions',\n Dns = '@quidproquo-webserver/config/Dns',\n EmailSender = '@quidproquo-webserver/config/EmailSender',\n OpenApi = '@quidproquo-webserver/config/OpenApi',\n Seo = '@quidproquo-webserver/config/Seo',\n SubdomainRedirect = '@quidproquo-webserver/config/SubdomainRedirect',\n WebEntry = '@quidproquo-webserver/config/WebEntry',\n Api = '@quidproquo-webserver/config/Api',\n ApiKey = '@quidproquo-webserver/config/ApiKey',\n ServiceFunction = '@quidproquo-webserver/config/ServiceFunction',\n WebSocket = '@quidproquo-webserver/config/WebSocket',\n Cache = '@quidproquo-webserver/config/Cache',\n Certificate = '@quidproquo-webserver/config/Certificate',\n DomainProxy = '@quidproquo-webserver/config/DomainProxy',\n StorageDriveCorsSettings = '@quidproquo-webserver/config/StorageDriveCorsSettings',\n FileUploadSettings = '@quidproquo-webserver/config/FileUploadSettings',\n}\n\n// TODO: move this somewhere better\nexport interface CacheSettings {\n minTTLInSeconds: number;\n maxTTLInSeconds: number;\n defaultTTLInSeconds: number;\n mustRevalidate: boolean;\n}\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { QPQWebServerConfigSettingType } from '../QPQConfig';
|
|
2
|
+
export const defineEmailSender = (rootDomain) => {
|
|
3
|
+
return {
|
|
4
|
+
configSettingType: QPQWebServerConfigSettingType.EmailSender,
|
|
5
|
+
uniqueKey: rootDomain,
|
|
6
|
+
rootDomain,
|
|
7
|
+
};
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=emailSender.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emailSender.js","sourceRoot":"","sources":["../../../../src/config/settings/emailSender.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAC;AAM7D,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,UAAkB,EAAwC,EAAE;IAC5F,OAAO;QACL,iBAAiB,EAAE,6BAA6B,CAAC,WAAW;QAC5D,SAAS,EAAE,UAAU;QAErB,UAAU;KACX,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { QPQConfigSetting } from 'quidproquo-core';\n\nimport { QPQWebServerConfigSettingType } from '../QPQConfig';\n\nexport interface EmailSenderQPQWebServerConfigSetting extends QPQConfigSetting {\n rootDomain: string;\n}\n\nexport const defineEmailSender = (rootDomain: string): EmailSenderQPQWebServerConfigSetting => {\n return {\n configSettingType: QPQWebServerConfigSettingType.EmailSender,\n uniqueKey: rootDomain,\n\n rootDomain,\n };\n};\n"]}
|
|
@@ -6,6 +6,7 @@ export * from './defaultRouteOptions';
|
|
|
6
6
|
export * from './defineAuthSystem';
|
|
7
7
|
export * from './dns';
|
|
8
8
|
export * from './domainProxy';
|
|
9
|
+
export * from './emailSender';
|
|
9
10
|
export * from './fileUploadSettings';
|
|
10
11
|
export * from './migration';
|
|
11
12
|
export * from './openApi';
|
|
@@ -6,6 +6,7 @@ export * from './defaultRouteOptions';
|
|
|
6
6
|
export * from './defineAuthSystem';
|
|
7
7
|
export * from './dns';
|
|
8
8
|
export * from './domainProxy';
|
|
9
|
+
export * from './emailSender';
|
|
9
10
|
export * from './fileUploadSettings';
|
|
10
11
|
export * from './migration';
|
|
11
12
|
export * from './openApi';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/config/settings/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,OAAO,CAAC;AACtB,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC;AACtB,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC","sourcesContent":["export * from './api';\nexport * from './apiKey';\nexport * from './cache';\nexport * from './certificate';\nexport * from './defaultRouteOptions';\nexport * from './defineAuthSystem';\nexport * from './dns';\nexport * from './domainProxy';\nexport * from './fileUploadSettings';\nexport * from './migration';\nexport * from './openApi';\nexport * from './route';\nexport * from './seed';\nexport * from './seo';\nexport * from './serviceFunction';\nexport * from './storageDriveCorsSettings';\nexport * from './subdomainRedirect';\nexport * from './webEntry';\nexport * from './websocket';\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/config/settings/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,OAAO,CAAC;AACtB,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC;AACtB,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC","sourcesContent":["export * from './api';\nexport * from './apiKey';\nexport * from './cache';\nexport * from './certificate';\nexport * from './defaultRouteOptions';\nexport * from './defineAuthSystem';\nexport * from './dns';\nexport * from './domainProxy';\nexport * from './emailSender';\nexport * from './fileUploadSettings';\nexport * from './migration';\nexport * from './openApi';\nexport * from './route';\nexport * from './seed';\nexport * from './seo';\nexport * from './serviceFunction';\nexport * from './storageDriveCorsSettings';\nexport * from './subdomainRedirect';\nexport * from './webEntry';\nexport * from './websocket';\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { QPQConfig, QpqFunctionRuntime } from 'quidproquo-core';
|
|
2
|
-
import { ApiKeyQPQWebServerConfigSetting, CacheQPQWebServerConfigSetting, CertificateQPQWebServerConfigSetting, DefaultRouteOptionsQPQWebServerConfigSetting, DnsQPQWebServerConfigSetting, DomainProxyQPQWebServerConfigSetting, FileUploadSettings, OpenApiQPQWebServerConfigSetting, RouteQPQWebServerConfigSetting, SeoQPQWebServerConfigSetting, ServiceFunctionQPQWebServerConfigSetting, SubdomainRedirectQPQWebServerConfigSetting, WebSocketQPQWebServerConfigSetting } from '../config';
|
|
2
|
+
import { ApiKeyQPQWebServerConfigSetting, CacheQPQWebServerConfigSetting, CertificateQPQWebServerConfigSetting, DefaultRouteOptionsQPQWebServerConfigSetting, DnsQPQWebServerConfigSetting, DomainProxyQPQWebServerConfigSetting, EmailSenderQPQWebServerConfigSetting, FileUploadSettings, OpenApiQPQWebServerConfigSetting, RouteQPQWebServerConfigSetting, SeoQPQWebServerConfigSetting, ServiceFunctionQPQWebServerConfigSetting, SubdomainRedirectQPQWebServerConfigSetting, WebSocketQPQWebServerConfigSetting } from '../config';
|
|
3
3
|
import { ApiQPQWebServerConfigSetting, WebEntryQPQWebServerConfigSetting } from '../config';
|
|
4
4
|
export declare const getAllRoutes: (qpqConfig: QPQConfig) => RouteQPQWebServerConfigSetting[];
|
|
5
5
|
export declare const getAllRoutesForApi: (apiName: string, qpqConfig: QPQConfig) => RouteQPQWebServerConfigSetting[];
|
|
@@ -55,5 +55,6 @@ export declare const constructEnvironmentDomainName: (environment: string, domai
|
|
|
55
55
|
export declare const getDefaultRouteSettings: (qpqConfig: QPQConfig) => DefaultRouteOptionsQPQWebServerConfigSetting[];
|
|
56
56
|
export declare const getDomainRoot: (rootDomain: string, environment: string, feature?: string) => string;
|
|
57
57
|
export declare const resolveDomainRoot: (rootDomain: string, qpqConfig: QPQConfig) => string;
|
|
58
|
+
export declare const getEmailSenderSettings: (qpqConfig: QPQConfig) => EmailSenderQPQWebServerConfigSetting[];
|
|
58
59
|
export declare const getWebsocketSettings: (qpqConfig: QPQConfig) => WebSocketQPQWebServerConfigSetting[];
|
|
59
60
|
export declare const getOwnedWebsocketSettings: (qpqConfig: QPQConfig) => WebSocketQPQWebServerConfigSetting[];
|
|
@@ -204,6 +204,10 @@ export const resolveDomainRoot = (rootDomain, qpqConfig) => {
|
|
|
204
204
|
const domain = getDomainRoot(rootDomain, qpqCoreUtils.getApplicationModuleEnvironment(qpqConfig), qpqCoreUtils.getApplicationModuleFeature(qpqConfig));
|
|
205
205
|
return domain;
|
|
206
206
|
};
|
|
207
|
+
export const getEmailSenderSettings = (qpqConfig) => {
|
|
208
|
+
const emailSenderSettings = qpqCoreUtils.getConfigSettings(qpqConfig, QPQWebServerConfigSettingType.EmailSender) || [];
|
|
209
|
+
return emailSenderSettings;
|
|
210
|
+
};
|
|
207
211
|
export const getWebsocketSettings = (qpqConfig) => {
|
|
208
212
|
const websocketSettings = qpqCoreUtils.getConfigSettings(qpqConfig, QPQWebServerConfigSettingType.WebSocket) || [];
|
|
209
213
|
return websocketSettings;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qpqConfigAccessorsUtils.js","sourceRoot":"","sources":["../../../src/utils/qpqConfigAccessorsUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAa,YAAY,EAAsB,MAAM,iBAAiB,CAAC;AAEzF,OAAO,EAUL,6BAA6B,GAO9B,MAAM,WAAW,CAAC;AAGnB,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,SAAoB,EAAoC,EAAE;IACrF,MAAM,MAAM,GAAG,YAAY,CAAC,iBAAiB,CAAiC,SAAS,EAAE,6BAA6B,CAAC,KAAK,CAAC,CAAC;IAE9H,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,OAAe,EAAE,SAAoB,EAAoC,EAAE;IAC5G,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;IAEvC,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,SAAoB,EAAqC,EAAE;IAC7F,MAAM,aAAa,GAAG,YAAY,CAAC,iBAAiB,CAAkC,SAAS,EAAE,6BAA6B,CAAC,MAAM,CAAC,CAAC;IAEvI,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,SAAoB,EAAkC,EAAE;IAChF,MAAM,UAAU,GAAG,YAAY,CAAC,iBAAiB,CAA+B,SAAS,EAAE,6BAA6B,CAAC,GAAG,CAAC,CAAC;IAE9H,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,SAAoB,EAA8C,EAAE;IACzG,MAAM,gBAAgB,GAAG,YAAY,CAAC,iBAAiB,CACrD,SAAS,EACT,6BAA6B,CAAC,eAAe,CAC9C,CAAC;IAEF,OAAO,gBAAgB,CAAC;AAC1B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,SAAoB,EAA8C,EAAE;IAC3G,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,SAAS,CAAC,CAAC;IAE3D,OAAO,YAAY,CAAC,aAAa,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;AACjE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,OAAkB,EAAsC,EAAE;IAC3F,MAAM,YAAY,GAAG,YAAY,CAAC,iBAAiB,CAAmC,OAAO,EAAE,6BAA6B,CAAC,OAAO,CAAC,CAAC;IAEtI,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,SAAoB,EAAwB,EAAE;IACtF,OAAO,yBAAyB,CAAC,SAAS,CAAC;SACxC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;SAC1G,MAAM,CAAC,SAAS,CAAC,CAAC;AACvB,CAAC,CAAC;AAEF,6DAA6D;AAC7D,sBAAsB;AACtB,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAAkB,EAAwB,EAAE;IAC3E,OAAO;QACL,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;QAC9C,gEAAgE;QAChE,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC;QAC/C,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC;QAC1D,GAAG,yBAAyB,CAAC,OAAO,CAAC;KACtC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAAkB,EAAU,EAAE;IAC1D,MAAM,WAAW,GAAG,YAAY,CAAC,gBAAgB,CAA+B,OAAO,EAAE,6BAA6B,CAAC,GAAG,CAAC,CAAC;IAE5H,OAAO,WAAW,EAAE,OAAO,IAAI,EAAE,CAAC;AACpC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,OAAkB,EAAU,EAAE;IACxD,MAAM,QAAQ,GAAG,YAAY,CAAC,gBAAgB,CAAoC,OAAO,EAAE,6BAA6B,CAAC,QAAQ,CAAC,CAAC;IAEnI,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,QAAQ,EAAE,SAAS,CAAC;AAC7B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,OAAe,EAAE,SAAoB,EAAsC,EAAE;IACtH,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAE1D,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;IAE9E,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,uCAAuC,OAAO,GAAG,CAAC,CAAC;IACrE,CAAC;IAED,OAAO,gBAAgB,CAAC;AAC1B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,OAAkB,EAAgD,EAAE;IACxG,MAAM,kBAAkB,GAAG,YAAY,CAAC,iBAAiB,CACvD,OAAO,EACP,6BAA6B,CAAC,iBAAiB,CAChD,CAAC;IAEF,OAAO,kBAAkB,CAAC;AAC5B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAAkB,EAAkC,EAAE;IAClF,OAAO,YAAY,CAAC,iBAAiB,CAA+B,OAAO,EAAE,6BAA6B,CAAC,GAAG,CAAC,CAAC;AAClH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAAkB,EAAkC,EAAE;IAClF,OAAO,YAAY,CAAC,iBAAiB,CAA+B,OAAO,EAAE,6BAA6B,CAAC,GAAG,CAAC,CAAC;AAClH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,OAAkB,EAAuC,EAAE;IAC5F,OAAO,YAAY,CAAC,iBAAiB,CAAoC,OAAO,EAAE,6BAA6B,CAAC,QAAQ,CAAC,CAAC;AAC5H,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,OAAkB,EAA0C,EAAE;IAClG,OAAO,YAAY,CAAC,iBAAiB,CAAuC,OAAO,EAAE,6BAA6B,CAAC,WAAW,CAAC,CAAC;AAClI,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,SAAoB,EAAoC,EAAE;IAChG,MAAM,aAAa,GAAG,YAAY,CAAC,iBAAiB,CAAiC,SAAS,EAAE,6BAA6B,CAAC,KAAK,CAAC,CAAC;IAErI,OAAO,YAAY,CAAC,aAAa,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;AAC9D,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,SAAoB,EAA0C,EAAE;IAC3G,MAAM,mBAAmB,GAAG,YAAY,CAAC,iBAAiB,CACxD,SAAS,EACT,6BAA6B,CAAC,WAAW,CAC1C,CAAC;IAEF,OAAO,YAAY,CAAC,aAAa,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAC;AACpE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,eAAuB,EAAE,SAAoB,EAAkC,EAAE;IACpH,MAAM,YAAY,GAAG,YAAY;SAC9B,iBAAiB,CAAiC,SAAS,EAAE,6BAA6B,CAAC,KAAK,CAAC;SACjG,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC;IAE3C,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,mCAAmC,eAAe,GAAG,CAAC,CAAC;IACzE,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,OAAkB,EAAU,EAAE;IACrE,MAAM,WAAW,GAAG,YAAY,CAAC,+BAA+B,CAAC,OAAO,CAAC,CAAC;IAC1E,MAAM,cAAc,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IAE9C,IAAI,WAAW,KAAK,YAAY,EAAE,CAAC;QACjC,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,OAAO,GAAG,WAAW,IAAI,cAAc,EAAE,CAAC;AAC5C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,SAAoB,EAAU,EAAE;IAChE,MAAM,iBAAiB,GAAG,wBAAwB,CAAC,SAAS,CAAC,CAAC;IAC9D,MAAM,OAAO,GAAG,YAAY,CAAC,2BAA2B,CAAC,SAAS,CAAC,CAAC;IAEpE,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,GAAG,OAAO,IAAI,iBAAiB,EAAE,CAAC;IAC3C,CAAC;IAED,OAAO,iBAAiB,CAAC;AAC3B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,SAAoB,EAAU,EAAE;IACnE,MAAM,OAAO,GAAG,YAAY,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;IACjE,MAAM,UAAU,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAEhD,OAAO,GAAG,OAAO,IAAI,UAAU,EAAE,CAAC;AACpC,CAAC,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,sCAAsC,GAAG,CAAC,SAAoB,EAAE,eAA0B,EAAY,EAAE;IACnH,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,CAAC;IACf,CAAC;IAED,MAAM,UAAU,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAChD,OAAO,CAAC,WAAW,UAAU,EAAE,EAAE,aAAa,UAAU,EAAE,CAAC,CAAC;AAC9D,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,SAAoB,EAAE,gBAAwB,EAAY,EAAE;IAC5G,MAAM,WAAW,GAAG,YAAY;SAC7B,iBAAiB,CAAoD,SAAS,EAAE,6BAA6B,CAAC,wBAAwB,CAAC;SACvI,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,gBAAgB,KAAK,gBAAgB,CAAC,CAAC;IAEpE,OAAO,sCAAsC,CAAC,SAAS,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;AACxF,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,SAAoB,EAAE,gBAAwB,EAAW,EAAE;IACtG,OAAO,kBAAkB,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,kBAAkB,KAAK,gBAAgB,CAAC,CAAC;AACzH,CAAC,CAAC;AAEF,yFAAyF;AACzF,qFAAqF;AACrF,MAAM,CAAC,MAAM,yBAAyB,GAAuB;IAC3D,gBAAgB,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;IAClC,YAAY,EAAE,EAAE;IAChB,aAAa,EAAE,GAAG;IAClB,iBAAiB,EAAE,IAAI,GAAG,IAAI;CAC/B,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,SAAoB,EAAsB,EAAE;IAChF,MAAM,OAAO,GAAG,YAAY,CAAC,gBAAgB,CAC3C,SAAS,EACT,6BAA6B,CAAC,kBAAkB,CACjD,CAAC;IAEF,OAAO;QACL,GAAG,yBAAyB;QAC5B,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,kBAAkB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;KACjH,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qCAAqC,GAAG,CAAC,SAAoB,EAAE,UAAkB,EAAE,YAAqB,EAAU,EAAE;IAC/H,MAAM,OAAO,GAAG,YAAY,CAAC,2BAA2B,CAAC,SAAS,CAAC,CAAC;IACpE,MAAM,WAAW,GAAG,YAAY,CAAC,+BAA+B,CAAC,SAAS,CAAC,CAAC;IAE5E,MAAM,UAAU,GAAG,YAAY;QAC7B,CAAC,CAAC,aAAa,CAAC,UAAU,EAAE,WAAW,EAAE,OAAO,CAAC;QACjD,CAAC,CAAC,0BAA0B,CAAC,UAAU,EAAE,WAAW,EAAE,YAAY,CAAC,wBAAwB,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC;IAEnH,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,UAAkB,EAAE,WAAmB,EAAE,OAAe,EAAE,OAAgB,EAAE,EAAE;IACvH,MAAM,UAAU,GAAG,aAAa,CAAC,UAAU,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;IAEnE,OAAO,GAAG,OAAO,IAAI,UAAU,EAAE,CAAC;AACpC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,WAAmB,EAAE,MAAc,EAAU,EAAE;IAC5F,IAAI,WAAW,KAAK,YAAY,EAAE,CAAC;QACjC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,GAAG,WAAW,IAAI,MAAM,EAAE,CAAC;AACpC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,SAAoB,EAAkD,EAAE;IAC9G,MAAM,oBAAoB,GACxB,YAAY,CAAC,iBAAiB,CAA+C,SAAS,EAAE,6BAA6B,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC;IAEnJ,OAAO,oBAAoB,CAAC;AAC9B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,UAAkB,EAAE,WAAmB,EAAE,OAAgB,EAAU,EAAE;IACjG,IAAI,YAAY,GAAG,WAAW,KAAK,YAAY,CAAC,CAAC,CAAC,GAAG,WAAW,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACzE,IAAI,OAAO,EAAE,CAAC;QACZ,YAAY,GAAG,GAAG,OAAO,IAAI,YAAY,EAAE,CAAC;IAC9C,CAAC;IAED,OAAO,GAAG,YAAY,GAAG,UAAU,EAAE,CAAC;AACxC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,UAAkB,EAAE,SAAoB,EAAU,EAAE;IACpF,MAAM,MAAM,GAAG,aAAa,CAC1B,UAAU,EACV,YAAY,CAAC,+BAA+B,CAAC,SAAS,CAAC,EACvD,YAAY,CAAC,2BAA2B,CAAC,SAAS,CAAC,CACpD,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,SAAoB,EAAwC,EAAE;IACjG,MAAM,iBAAiB,GACrB,YAAY,CAAC,iBAAiB,CAAqC,SAAS,EAAE,6BAA6B,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IAE/H,OAAO,iBAAiB,CAAC;AAC3B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,SAAoB,EAAwC,EAAE;IACtG,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAE1D,OAAO,YAAY,CAAC,aAAa,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;AAClE,CAAC,CAAC","sourcesContent":["import { isDefined, QPQConfig, qpqCoreUtils, QpqFunctionRuntime } from 'quidproquo-core';\n\nimport {\n ApiKeyQPQWebServerConfigSetting,\n CacheQPQWebServerConfigSetting,\n CertificateQPQWebServerConfigSetting,\n DefaultRouteOptionsQPQWebServerConfigSetting,\n DnsQPQWebServerConfigSetting,\n DomainProxyQPQWebServerConfigSetting,\n FileUploadSettings,\n FileUploadSettingsQPQWebServerConfigSetting,\n OpenApiQPQWebServerConfigSetting,\n QPQWebServerConfigSettingType,\n RouteQPQWebServerConfigSetting,\n SeoQPQWebServerConfigSetting,\n ServiceFunctionQPQWebServerConfigSetting,\n StorageDriveCorsSettingsQPQWebServerConfigSetting,\n SubdomainRedirectQPQWebServerConfigSetting,\n WebSocketQPQWebServerConfigSetting,\n} from '../config';\nimport { ApiQPQWebServerConfigSetting, WebEntryQPQWebServerConfigSetting } from '../config';\n\nexport const getAllRoutes = (qpqConfig: QPQConfig): RouteQPQWebServerConfigSetting[] => {\n const routes = qpqCoreUtils.getConfigSettings<RouteQPQWebServerConfigSetting>(qpqConfig, QPQWebServerConfigSettingType.Route);\n\n return routes;\n};\n\nexport const getAllRoutesForApi = (apiName: string, qpqConfig: QPQConfig): RouteQPQWebServerConfigSetting[] => {\n const routes = getAllRoutes(qpqConfig);\n\n return routes;\n};\n\nexport const getAllApiKeyConfigs = (qpqConfig: QPQConfig): ApiKeyQPQWebServerConfigSetting[] => {\n const apiKeyConfigs = qpqCoreUtils.getConfigSettings<ApiKeyQPQWebServerConfigSetting>(qpqConfig, QPQWebServerConfigSettingType.ApiKey);\n\n return apiKeyConfigs;\n};\n\nexport const getAllSeo = (qpqConfig: QPQConfig): SeoQPQWebServerConfigSetting[] => {\n const seoConfigs = qpqCoreUtils.getConfigSettings<SeoQPQWebServerConfigSetting>(qpqConfig, QPQWebServerConfigSettingType.Seo);\n\n return seoConfigs;\n};\n\nexport const getAllServiceFunctions = (qpqConfig: QPQConfig): ServiceFunctionQPQWebServerConfigSetting[] => {\n const serviceFunctions = qpqCoreUtils.getConfigSettings<ServiceFunctionQPQWebServerConfigSetting>(\n qpqConfig,\n QPQWebServerConfigSettingType.ServiceFunction,\n );\n\n return serviceFunctions;\n};\n\nexport const getOwnedServiceFunctions = (qpqConfig: QPQConfig): ServiceFunctionQPQWebServerConfigSetting[] => {\n const serviceFunctions = getAllServiceFunctions(qpqConfig);\n\n return qpqCoreUtils.getOwnedItems(serviceFunctions, qpqConfig);\n};\n\nexport const getAllOpenApiSpecs = (configs: QPQConfig): OpenApiQPQWebServerConfigSetting[] => {\n const openApiSpecs = qpqCoreUtils.getConfigSettings<OpenApiQPQWebServerConfigSetting>(configs, QPQWebServerConfigSettingType.OpenApi);\n\n return openApiSpecs;\n};\n\nexport const getAllWebsocketSrcEntries = (qpqConfig: QPQConfig): QpqFunctionRuntime[] => {\n return getOwnedWebsocketSettings(qpqConfig)\n .flatMap((s) => [s.eventProcessors.onConnect, s.eventProcessors.onDisconnect, s.eventProcessors.onMessage])\n .filter(isDefined);\n};\n\n// Used in bundlers to know where and what to build and index\n// Events, routes, etc\nexport const getAllSrcEntries = (configs: QPQConfig): QpqFunctionRuntime[] => {\n return [\n ...getAllRoutes(configs).map((r) => r.runtime),\n // ...getAllOpenApiSpecs(configs).map((r) => r.openApiSpecPath),\n ...getAllSeo(configs).map((seo) => seo.runtime),\n ...getAllServiceFunctions(configs).map((sf) => sf.runtime),\n ...getAllWebsocketSrcEntries(configs),\n ];\n};\n\nexport const getDomainName = (configs: QPQConfig): string => {\n const dnsSettings = qpqCoreUtils.getConfigSetting<DnsQPQWebServerConfigSetting>(configs, QPQWebServerConfigSettingType.Dns);\n\n return dnsSettings?.dnsBase || '';\n};\n\nexport const getWebEntry = (configs: QPQConfig): string => {\n const webEntry = qpqCoreUtils.getConfigSetting<WebEntryQPQWebServerConfigSetting>(configs, QPQWebServerConfigSettingType.WebEntry);\n\n if (!webEntry?.buildPath) {\n throw new Error('please use defineWebEntry in your qpq config');\n }\n\n return webEntry?.buildPath;\n};\n\nexport const getWebsocketEntryByApiName = (apiName: string, qpqConfig: QPQConfig): WebSocketQPQWebServerConfigSetting => {\n const websocketSettings = getWebsocketSettings(qpqConfig);\n\n const websocketSetting = websocketSettings.find((s) => s.apiName === apiName);\n\n if (!websocketSetting) {\n throw new Error(`No websocket setting found for api [${apiName}]`);\n }\n\n return websocketSetting;\n};\n\nexport const getSubdomainRedirects = (configs: QPQConfig): SubdomainRedirectQPQWebServerConfigSetting[] => {\n const subdomainRedirects = qpqCoreUtils.getConfigSettings<SubdomainRedirectQPQWebServerConfigSetting>(\n configs,\n QPQWebServerConfigSettingType.SubdomainRedirect,\n );\n\n return subdomainRedirects;\n};\n\nexport const getApiConfigs = (configs: QPQConfig): ApiQPQWebServerConfigSetting[] => {\n return qpqCoreUtils.getConfigSettings<ApiQPQWebServerConfigSetting>(configs, QPQWebServerConfigSettingType.Api);\n};\n\nexport const getDnsConfigs = (configs: QPQConfig): DnsQPQWebServerConfigSetting[] => {\n return qpqCoreUtils.getConfigSettings<DnsQPQWebServerConfigSetting>(configs, QPQWebServerConfigSettingType.Dns);\n};\n\nexport const getWebEntryConfigs = (configs: QPQConfig): WebEntryQPQWebServerConfigSetting[] => {\n return qpqCoreUtils.getConfigSettings<WebEntryQPQWebServerConfigSetting>(configs, QPQWebServerConfigSettingType.WebEntry);\n};\n\nexport const getDomainProxyConfigs = (configs: QPQConfig): DomainProxyQPQWebServerConfigSetting[] => {\n return qpqCoreUtils.getConfigSettings<DomainProxyQPQWebServerConfigSetting>(configs, QPQWebServerConfigSettingType.DomainProxy);\n};\n\nexport const getAllOwnedCacheConfigs = (qpqConfig: QPQConfig): CacheQPQWebServerConfigSetting[] => {\n const cacheSettings = qpqCoreUtils.getConfigSettings<CacheQPQWebServerConfigSetting>(qpqConfig, QPQWebServerConfigSettingType.Cache);\n\n return qpqCoreUtils.getOwnedItems(cacheSettings, qpqConfig);\n};\n\nexport const getAllOwnedCertifcateConfigs = (qpqConfig: QPQConfig): CertificateQPQWebServerConfigSetting[] => {\n const certificateSettings = qpqCoreUtils.getConfigSettings<CertificateQPQWebServerConfigSetting>(\n qpqConfig,\n QPQWebServerConfigSettingType.Certificate,\n );\n\n return qpqCoreUtils.getOwnedItems(certificateSettings, qpqConfig);\n};\n\nexport const getCacheConfigByName = (cacheConfigName: string, qpqConfig: QPQConfig): CacheQPQWebServerConfigSetting => {\n const cacheSetting = qpqCoreUtils\n .getConfigSettings<CacheQPQWebServerConfigSetting>(qpqConfig, QPQWebServerConfigSettingType.Cache)\n .find((c) => c.name === cacheConfigName);\n\n if (!cacheSetting) {\n throw new Error(`No cache config found for name [${cacheConfigName}]`);\n }\n\n return cacheSetting;\n};\n\nexport const getEnvironmentDomainName = (configs: QPQConfig): string => {\n const environment = qpqCoreUtils.getApplicationModuleEnvironment(configs);\n const apexDomainName = getDomainName(configs);\n\n if (environment === 'production') {\n return apexDomainName;\n }\n\n return `${environment}.${apexDomainName}`;\n};\n\nexport const getBaseDomainName = (qpqConfig: QPQConfig): string => {\n const environmentDomain = getEnvironmentDomainName(qpqConfig);\n const feature = qpqCoreUtils.getApplicationModuleFeature(qpqConfig);\n\n if (feature) {\n return `${feature}.${environmentDomain}`;\n }\n\n return environmentDomain;\n};\n\nexport const getServiceDomainName = (qpqConfig: QPQConfig): string => {\n const service = qpqCoreUtils.getApplicationModuleName(qpqConfig);\n const domainBase = getBaseDomainName(qpqConfig);\n\n return `${service}.${domainBase}`;\n};\n\n/**\n * Resolve browser CORS origins for a service resource. An explicit list wins;\n * otherwise scope to this service's own domain (apex + one-level subdomain\n * wildcard, which S3/CloudFront both support). Falls back to '*' only when the\n * service declares no domain at all (nothing browser-facing).\n *\n * Note: key off the raw dns base (`getDomainName`) to detect \"no domain\" —\n * `getBaseDomainName` still returns an env prefix like `development.` here.\n */\nexport const resolveServiceScopedCorsAllowedOrigins = (qpqConfig: QPQConfig, explicitOrigins?: string[]): string[] => {\n if (explicitOrigins) {\n return explicitOrigins;\n }\n\n if (!getDomainName(qpqConfig)) {\n return ['*'];\n }\n\n const baseDomain = getBaseDomainName(qpqConfig);\n return [`https://${baseDomain}`, `https://*.${baseDomain}`];\n};\n\n/**\n * Browser origins allowed to read/write a storage drive's objects cross-origin\n * (e.g. presigned uploads/downloads), looked up by the drive's name. An explicit\n * `defineStorageDriveCorsSettings` wins; otherwise the service-scoped default.\n */\nexport const getStorageDriveCorsAllowedOrigins = (qpqConfig: QPQConfig, storageDriveName: string): string[] => {\n const corsSetting = qpqCoreUtils\n .getConfigSettings<StorageDriveCorsSettingsQPQWebServerConfigSetting>(qpqConfig, QPQWebServerConfigSettingType.StorageDriveCorsSettings)\n .find((setting) => setting.storageDriveName === storageDriveName);\n\n return resolveServiceScopedCorsAllowedOrigins(qpqConfig, corsSetting?.allowedOrigins);\n};\n\n/**\n * Whether any web entry in this service serves its assets from the named storage\n * drive (`storageDrive.sourceStorageDrive`) — i.e. the drive's bucket is a\n * CloudFront origin. Drives with no web entry consumer need no CloudFront access\n * to their bucket at all.\n */\nexport const isStorageDriveWebEntryOrigin = (qpqConfig: QPQConfig, storageDriveName: string): boolean => {\n return getWebEntryConfigs(qpqConfig).some((webEntry) => webEntry.storageDrive.sourceStorageDrive === storageDriveName);\n};\n\n// API Gateway caps request payloads at 10MB, so the default per-file ceiling matches it;\n// the other defaults exist to bound parser memory rather than to be hit in practice.\nexport const defaultFileUploadSettings: FileUploadSettings = {\n maxFileSizeBytes: 10 * 1024 * 1024,\n maxFileCount: 10,\n maxFieldCount: 100,\n maxFieldSizeBytes: 1024 * 1024,\n};\n\nexport const getFileUploadSettings = (qpqConfig: QPQConfig): FileUploadSettings => {\n const setting = qpqCoreUtils.getConfigSetting<FileUploadSettingsQPQWebServerConfigSetting>(\n qpqConfig,\n QPQWebServerConfigSettingType.FileUploadSettings,\n );\n\n return {\n ...defaultFileUploadSettings,\n ...Object.fromEntries(Object.entries(setting?.fileUploadSettings || {}).filter(([, value]) => isDefined(value))),\n };\n};\n\nexport const resolveApexDomainNameFromDomainConfig = (qpqConfig: QPQConfig, rootDomain: string, onRootDomain: boolean): string => {\n const feature = qpqCoreUtils.getApplicationModuleFeature(qpqConfig);\n const environment = qpqCoreUtils.getApplicationModuleEnvironment(qpqConfig);\n\n const apexDomain = onRootDomain\n ? getDomainRoot(rootDomain, environment, feature)\n : constructServiceDomainName(rootDomain, environment, qpqCoreUtils.getApplicationModuleName(qpqConfig), feature);\n\n return apexDomain;\n};\n\nexport const constructServiceDomainName = (rootDomain: string, environment: string, service: string, feature?: string) => {\n const domainBase = getDomainRoot(rootDomain, environment, feature);\n\n return `${service}.${domainBase}`;\n};\n\nexport const constructEnvironmentDomainName = (environment: string, domain: string): string => {\n if (environment === 'production') {\n return domain;\n }\n\n return `${environment}.${domain}`;\n};\n\nexport const getDefaultRouteSettings = (qpqConfig: QPQConfig): DefaultRouteOptionsQPQWebServerConfigSetting[] => {\n const defaultRouteSettings =\n qpqCoreUtils.getConfigSettings<DefaultRouteOptionsQPQWebServerConfigSetting>(qpqConfig, QPQWebServerConfigSettingType.DefaultRouteOptions) || [];\n\n return defaultRouteSettings;\n};\n\nexport const getDomainRoot = (rootDomain: string, environment: string, feature?: string): string => {\n let domainPrefix = environment !== 'production' ? `${environment}.` : '';\n if (feature) {\n domainPrefix = `${feature}.${domainPrefix}`;\n }\n\n return `${domainPrefix}${rootDomain}`;\n};\n\nexport const resolveDomainRoot = (rootDomain: string, qpqConfig: QPQConfig): string => {\n const domain = getDomainRoot(\n rootDomain,\n qpqCoreUtils.getApplicationModuleEnvironment(qpqConfig),\n qpqCoreUtils.getApplicationModuleFeature(qpqConfig),\n );\n\n return domain;\n};\n\nexport const getWebsocketSettings = (qpqConfig: QPQConfig): WebSocketQPQWebServerConfigSetting[] => {\n const websocketSettings =\n qpqCoreUtils.getConfigSettings<WebSocketQPQWebServerConfigSetting>(qpqConfig, QPQWebServerConfigSettingType.WebSocket) || [];\n\n return websocketSettings;\n};\n\nexport const getOwnedWebsocketSettings = (qpqConfig: QPQConfig): WebSocketQPQWebServerConfigSetting[] => {\n const websocketSettings = getWebsocketSettings(qpqConfig);\n\n return qpqCoreUtils.getOwnedItems(websocketSettings, qpqConfig);\n};\n"]}
|
|
1
|
+
{"version":3,"file":"qpqConfigAccessorsUtils.js","sourceRoot":"","sources":["../../../src/utils/qpqConfigAccessorsUtils.ts"],"names":[],"mappings":"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","sourcesContent":["import { isDefined, QPQConfig, qpqCoreUtils, QpqFunctionRuntime } from 'quidproquo-core';\n\nimport {\n ApiKeyQPQWebServerConfigSetting,\n CacheQPQWebServerConfigSetting,\n CertificateQPQWebServerConfigSetting,\n DefaultRouteOptionsQPQWebServerConfigSetting,\n DnsQPQWebServerConfigSetting,\n DomainProxyQPQWebServerConfigSetting,\n EmailSenderQPQWebServerConfigSetting,\n FileUploadSettings,\n FileUploadSettingsQPQWebServerConfigSetting,\n OpenApiQPQWebServerConfigSetting,\n QPQWebServerConfigSettingType,\n RouteQPQWebServerConfigSetting,\n SeoQPQWebServerConfigSetting,\n ServiceFunctionQPQWebServerConfigSetting,\n StorageDriveCorsSettingsQPQWebServerConfigSetting,\n SubdomainRedirectQPQWebServerConfigSetting,\n WebSocketQPQWebServerConfigSetting,\n} from '../config';\nimport { ApiQPQWebServerConfigSetting, WebEntryQPQWebServerConfigSetting } from '../config';\n\nexport const getAllRoutes = (qpqConfig: QPQConfig): RouteQPQWebServerConfigSetting[] => {\n const routes = qpqCoreUtils.getConfigSettings<RouteQPQWebServerConfigSetting>(qpqConfig, QPQWebServerConfigSettingType.Route);\n\n return routes;\n};\n\nexport const getAllRoutesForApi = (apiName: string, qpqConfig: QPQConfig): RouteQPQWebServerConfigSetting[] => {\n const routes = getAllRoutes(qpqConfig);\n\n return routes;\n};\n\nexport const getAllApiKeyConfigs = (qpqConfig: QPQConfig): ApiKeyQPQWebServerConfigSetting[] => {\n const apiKeyConfigs = qpqCoreUtils.getConfigSettings<ApiKeyQPQWebServerConfigSetting>(qpqConfig, QPQWebServerConfigSettingType.ApiKey);\n\n return apiKeyConfigs;\n};\n\nexport const getAllSeo = (qpqConfig: QPQConfig): SeoQPQWebServerConfigSetting[] => {\n const seoConfigs = qpqCoreUtils.getConfigSettings<SeoQPQWebServerConfigSetting>(qpqConfig, QPQWebServerConfigSettingType.Seo);\n\n return seoConfigs;\n};\n\nexport const getAllServiceFunctions = (qpqConfig: QPQConfig): ServiceFunctionQPQWebServerConfigSetting[] => {\n const serviceFunctions = qpqCoreUtils.getConfigSettings<ServiceFunctionQPQWebServerConfigSetting>(\n qpqConfig,\n QPQWebServerConfigSettingType.ServiceFunction,\n );\n\n return serviceFunctions;\n};\n\nexport const getOwnedServiceFunctions = (qpqConfig: QPQConfig): ServiceFunctionQPQWebServerConfigSetting[] => {\n const serviceFunctions = getAllServiceFunctions(qpqConfig);\n\n return qpqCoreUtils.getOwnedItems(serviceFunctions, qpqConfig);\n};\n\nexport const getAllOpenApiSpecs = (configs: QPQConfig): OpenApiQPQWebServerConfigSetting[] => {\n const openApiSpecs = qpqCoreUtils.getConfigSettings<OpenApiQPQWebServerConfigSetting>(configs, QPQWebServerConfigSettingType.OpenApi);\n\n return openApiSpecs;\n};\n\nexport const getAllWebsocketSrcEntries = (qpqConfig: QPQConfig): QpqFunctionRuntime[] => {\n return getOwnedWebsocketSettings(qpqConfig)\n .flatMap((s) => [s.eventProcessors.onConnect, s.eventProcessors.onDisconnect, s.eventProcessors.onMessage])\n .filter(isDefined);\n};\n\n// Used in bundlers to know where and what to build and index\n// Events, routes, etc\nexport const getAllSrcEntries = (configs: QPQConfig): QpqFunctionRuntime[] => {\n return [\n ...getAllRoutes(configs).map((r) => r.runtime),\n // ...getAllOpenApiSpecs(configs).map((r) => r.openApiSpecPath),\n ...getAllSeo(configs).map((seo) => seo.runtime),\n ...getAllServiceFunctions(configs).map((sf) => sf.runtime),\n ...getAllWebsocketSrcEntries(configs),\n ];\n};\n\nexport const getDomainName = (configs: QPQConfig): string => {\n const dnsSettings = qpqCoreUtils.getConfigSetting<DnsQPQWebServerConfigSetting>(configs, QPQWebServerConfigSettingType.Dns);\n\n return dnsSettings?.dnsBase || '';\n};\n\nexport const getWebEntry = (configs: QPQConfig): string => {\n const webEntry = qpqCoreUtils.getConfigSetting<WebEntryQPQWebServerConfigSetting>(configs, QPQWebServerConfigSettingType.WebEntry);\n\n if (!webEntry?.buildPath) {\n throw new Error('please use defineWebEntry in your qpq config');\n }\n\n return webEntry?.buildPath;\n};\n\nexport const getWebsocketEntryByApiName = (apiName: string, qpqConfig: QPQConfig): WebSocketQPQWebServerConfigSetting => {\n const websocketSettings = getWebsocketSettings(qpqConfig);\n\n const websocketSetting = websocketSettings.find((s) => s.apiName === apiName);\n\n if (!websocketSetting) {\n throw new Error(`No websocket setting found for api [${apiName}]`);\n }\n\n return websocketSetting;\n};\n\nexport const getSubdomainRedirects = (configs: QPQConfig): SubdomainRedirectQPQWebServerConfigSetting[] => {\n const subdomainRedirects = qpqCoreUtils.getConfigSettings<SubdomainRedirectQPQWebServerConfigSetting>(\n configs,\n QPQWebServerConfigSettingType.SubdomainRedirect,\n );\n\n return subdomainRedirects;\n};\n\nexport const getApiConfigs = (configs: QPQConfig): ApiQPQWebServerConfigSetting[] => {\n return qpqCoreUtils.getConfigSettings<ApiQPQWebServerConfigSetting>(configs, QPQWebServerConfigSettingType.Api);\n};\n\nexport const getDnsConfigs = (configs: QPQConfig): DnsQPQWebServerConfigSetting[] => {\n return qpqCoreUtils.getConfigSettings<DnsQPQWebServerConfigSetting>(configs, QPQWebServerConfigSettingType.Dns);\n};\n\nexport const getWebEntryConfigs = (configs: QPQConfig): WebEntryQPQWebServerConfigSetting[] => {\n return qpqCoreUtils.getConfigSettings<WebEntryQPQWebServerConfigSetting>(configs, QPQWebServerConfigSettingType.WebEntry);\n};\n\nexport const getDomainProxyConfigs = (configs: QPQConfig): DomainProxyQPQWebServerConfigSetting[] => {\n return qpqCoreUtils.getConfigSettings<DomainProxyQPQWebServerConfigSetting>(configs, QPQWebServerConfigSettingType.DomainProxy);\n};\n\nexport const getAllOwnedCacheConfigs = (qpqConfig: QPQConfig): CacheQPQWebServerConfigSetting[] => {\n const cacheSettings = qpqCoreUtils.getConfigSettings<CacheQPQWebServerConfigSetting>(qpqConfig, QPQWebServerConfigSettingType.Cache);\n\n return qpqCoreUtils.getOwnedItems(cacheSettings, qpqConfig);\n};\n\nexport const getAllOwnedCertifcateConfigs = (qpqConfig: QPQConfig): CertificateQPQWebServerConfigSetting[] => {\n const certificateSettings = qpqCoreUtils.getConfigSettings<CertificateQPQWebServerConfigSetting>(\n qpqConfig,\n QPQWebServerConfigSettingType.Certificate,\n );\n\n return qpqCoreUtils.getOwnedItems(certificateSettings, qpqConfig);\n};\n\nexport const getCacheConfigByName = (cacheConfigName: string, qpqConfig: QPQConfig): CacheQPQWebServerConfigSetting => {\n const cacheSetting = qpqCoreUtils\n .getConfigSettings<CacheQPQWebServerConfigSetting>(qpqConfig, QPQWebServerConfigSettingType.Cache)\n .find((c) => c.name === cacheConfigName);\n\n if (!cacheSetting) {\n throw new Error(`No cache config found for name [${cacheConfigName}]`);\n }\n\n return cacheSetting;\n};\n\nexport const getEnvironmentDomainName = (configs: QPQConfig): string => {\n const environment = qpqCoreUtils.getApplicationModuleEnvironment(configs);\n const apexDomainName = getDomainName(configs);\n\n if (environment === 'production') {\n return apexDomainName;\n }\n\n return `${environment}.${apexDomainName}`;\n};\n\nexport const getBaseDomainName = (qpqConfig: QPQConfig): string => {\n const environmentDomain = getEnvironmentDomainName(qpqConfig);\n const feature = qpqCoreUtils.getApplicationModuleFeature(qpqConfig);\n\n if (feature) {\n return `${feature}.${environmentDomain}`;\n }\n\n return environmentDomain;\n};\n\nexport const getServiceDomainName = (qpqConfig: QPQConfig): string => {\n const service = qpqCoreUtils.getApplicationModuleName(qpqConfig);\n const domainBase = getBaseDomainName(qpqConfig);\n\n return `${service}.${domainBase}`;\n};\n\n/**\n * Resolve browser CORS origins for a service resource. An explicit list wins;\n * otherwise scope to this service's own domain (apex + one-level subdomain\n * wildcard, which S3/CloudFront both support). Falls back to '*' only when the\n * service declares no domain at all (nothing browser-facing).\n *\n * Note: key off the raw dns base (`getDomainName`) to detect \"no domain\" —\n * `getBaseDomainName` still returns an env prefix like `development.` here.\n */\nexport const resolveServiceScopedCorsAllowedOrigins = (qpqConfig: QPQConfig, explicitOrigins?: string[]): string[] => {\n if (explicitOrigins) {\n return explicitOrigins;\n }\n\n if (!getDomainName(qpqConfig)) {\n return ['*'];\n }\n\n const baseDomain = getBaseDomainName(qpqConfig);\n return [`https://${baseDomain}`, `https://*.${baseDomain}`];\n};\n\n/**\n * Browser origins allowed to read/write a storage drive's objects cross-origin\n * (e.g. presigned uploads/downloads), looked up by the drive's name. An explicit\n * `defineStorageDriveCorsSettings` wins; otherwise the service-scoped default.\n */\nexport const getStorageDriveCorsAllowedOrigins = (qpqConfig: QPQConfig, storageDriveName: string): string[] => {\n const corsSetting = qpqCoreUtils\n .getConfigSettings<StorageDriveCorsSettingsQPQWebServerConfigSetting>(qpqConfig, QPQWebServerConfigSettingType.StorageDriveCorsSettings)\n .find((setting) => setting.storageDriveName === storageDriveName);\n\n return resolveServiceScopedCorsAllowedOrigins(qpqConfig, corsSetting?.allowedOrigins);\n};\n\n/**\n * Whether any web entry in this service serves its assets from the named storage\n * drive (`storageDrive.sourceStorageDrive`) — i.e. the drive's bucket is a\n * CloudFront origin. Drives with no web entry consumer need no CloudFront access\n * to their bucket at all.\n */\nexport const isStorageDriveWebEntryOrigin = (qpqConfig: QPQConfig, storageDriveName: string): boolean => {\n return getWebEntryConfigs(qpqConfig).some((webEntry) => webEntry.storageDrive.sourceStorageDrive === storageDriveName);\n};\n\n// API Gateway caps request payloads at 10MB, so the default per-file ceiling matches it;\n// the other defaults exist to bound parser memory rather than to be hit in practice.\nexport const defaultFileUploadSettings: FileUploadSettings = {\n maxFileSizeBytes: 10 * 1024 * 1024,\n maxFileCount: 10,\n maxFieldCount: 100,\n maxFieldSizeBytes: 1024 * 1024,\n};\n\nexport const getFileUploadSettings = (qpqConfig: QPQConfig): FileUploadSettings => {\n const setting = qpqCoreUtils.getConfigSetting<FileUploadSettingsQPQWebServerConfigSetting>(\n qpqConfig,\n QPQWebServerConfigSettingType.FileUploadSettings,\n );\n\n return {\n ...defaultFileUploadSettings,\n ...Object.fromEntries(Object.entries(setting?.fileUploadSettings || {}).filter(([, value]) => isDefined(value))),\n };\n};\n\nexport const resolveApexDomainNameFromDomainConfig = (qpqConfig: QPQConfig, rootDomain: string, onRootDomain: boolean): string => {\n const feature = qpqCoreUtils.getApplicationModuleFeature(qpqConfig);\n const environment = qpqCoreUtils.getApplicationModuleEnvironment(qpqConfig);\n\n const apexDomain = onRootDomain\n ? getDomainRoot(rootDomain, environment, feature)\n : constructServiceDomainName(rootDomain, environment, qpqCoreUtils.getApplicationModuleName(qpqConfig), feature);\n\n return apexDomain;\n};\n\nexport const constructServiceDomainName = (rootDomain: string, environment: string, service: string, feature?: string) => {\n const domainBase = getDomainRoot(rootDomain, environment, feature);\n\n return `${service}.${domainBase}`;\n};\n\nexport const constructEnvironmentDomainName = (environment: string, domain: string): string => {\n if (environment === 'production') {\n return domain;\n }\n\n return `${environment}.${domain}`;\n};\n\nexport const getDefaultRouteSettings = (qpqConfig: QPQConfig): DefaultRouteOptionsQPQWebServerConfigSetting[] => {\n const defaultRouteSettings =\n qpqCoreUtils.getConfigSettings<DefaultRouteOptionsQPQWebServerConfigSetting>(qpqConfig, QPQWebServerConfigSettingType.DefaultRouteOptions) || [];\n\n return defaultRouteSettings;\n};\n\nexport const getDomainRoot = (rootDomain: string, environment: string, feature?: string): string => {\n let domainPrefix = environment !== 'production' ? `${environment}.` : '';\n if (feature) {\n domainPrefix = `${feature}.${domainPrefix}`;\n }\n\n return `${domainPrefix}${rootDomain}`;\n};\n\nexport const resolveDomainRoot = (rootDomain: string, qpqConfig: QPQConfig): string => {\n const domain = getDomainRoot(\n rootDomain,\n qpqCoreUtils.getApplicationModuleEnvironment(qpqConfig),\n qpqCoreUtils.getApplicationModuleFeature(qpqConfig),\n );\n\n return domain;\n};\n\nexport const getEmailSenderSettings = (qpqConfig: QPQConfig): EmailSenderQPQWebServerConfigSetting[] => {\n const emailSenderSettings =\n qpqCoreUtils.getConfigSettings<EmailSenderQPQWebServerConfigSetting>(qpqConfig, QPQWebServerConfigSettingType.EmailSender) || [];\n\n return emailSenderSettings;\n};\n\nexport const getWebsocketSettings = (qpqConfig: QPQConfig): WebSocketQPQWebServerConfigSetting[] => {\n const websocketSettings =\n qpqCoreUtils.getConfigSettings<WebSocketQPQWebServerConfigSetting>(qpqConfig, QPQWebServerConfigSettingType.WebSocket) || [];\n\n return websocketSettings;\n};\n\nexport const getOwnedWebsocketSettings = (qpqConfig: QPQConfig): WebSocketQPQWebServerConfigSetting[] => {\n const websocketSettings = getWebsocketSettings(qpqConfig);\n\n return qpqCoreUtils.getOwnedItems(websocketSettings, qpqConfig);\n};\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "quidproquo-webserver",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.12",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "./lib/commonjs/index.js",
|
|
6
6
|
"module": "./lib/esm/index.js",
|
|
@@ -33,10 +33,10 @@
|
|
|
33
33
|
"homepage": "https://github.com/joe-coady/quidproquo#readme",
|
|
34
34
|
"dependencies": {
|
|
35
35
|
"@anthropic-ai/sdk": "^0.19.1",
|
|
36
|
-
"quidproquo-core": "0.1.
|
|
36
|
+
"quidproquo-core": "0.1.12"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
|
-
"quidproquo-tsconfig": "0.1.
|
|
39
|
+
"quidproquo-tsconfig": "0.1.12",
|
|
40
40
|
"typescript": "^5.8.2"
|
|
41
41
|
}
|
|
42
42
|
}
|