quidproquo-core 0.1.4 → 0.1.5

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.
@@ -10,6 +10,8 @@ export declare enum QPQCoreConfigSettingType {
10
10
  parameter = "@quidproquo-core/config/parameter",
11
11
  actionProcessors = "@quidproquo-core/config/actionProcessors",
12
12
  apiBuildPath = "@quidproquo-core/config/apiBuildPath",
13
+ backendBundleOptions = "@quidproquo-core/config/BackendBundleOptions",
14
+ frontendBundleOptions = "@quidproquo-core/config/FrontendBundleOptions",
13
15
  queue = "@quidproquo-core/config/Queue",
14
16
  eventBus = "@quidproquo-core/config/EventBus",
15
17
  userDirectory = "@quidproquo-core/config/UserDirectory",
@@ -13,6 +13,8 @@ var QPQCoreConfigSettingType;
13
13
  QPQCoreConfigSettingType["parameter"] = "@quidproquo-core/config/parameter";
14
14
  QPQCoreConfigSettingType["actionProcessors"] = "@quidproquo-core/config/actionProcessors";
15
15
  QPQCoreConfigSettingType["apiBuildPath"] = "@quidproquo-core/config/apiBuildPath";
16
+ QPQCoreConfigSettingType["backendBundleOptions"] = "@quidproquo-core/config/BackendBundleOptions";
17
+ QPQCoreConfigSettingType["frontendBundleOptions"] = "@quidproquo-core/config/FrontendBundleOptions";
16
18
  QPQCoreConfigSettingType["queue"] = "@quidproquo-core/config/Queue";
17
19
  QPQCoreConfigSettingType["eventBus"] = "@quidproquo-core/config/EventBus";
18
20
  QPQCoreConfigSettingType["userDirectory"] = "@quidproquo-core/config/UserDirectory";
@@ -1 +1 @@
1
- {"version":3,"file":"QPQConfig.js","sourceRoot":"","sources":["../../../src/config/QPQConfig.ts"],"names":[],"mappings":";;;AAEA,IAAY,wBA0BX;AA1BD,WAAY,wBAAwB;IAClC,6DAAiC,CAAA;IACjC,uEAA2C,CAAA;IAC3C,6EAAiD,CAAA;IACjD,iFAAqD,CAAA;IACrD,yEAA6C,CAAA;IAC7C,qEAAyC,CAAA;IACzC,qEAAyC,CAAA;IACzC,2EAA+C,CAAA;IAC/C,yFAA6D,CAAA;IAC7D,iFAAqD,CAAA;IACrD,mEAAuC,CAAA;IACvC,yEAA6C,CAAA;IAC7C,mFAAuD,CAAA;IACvD,mFAAuD,CAAA;IACvD,+EAAmD,CAAA;IACnD,+FAAmE,CAAA;IACnE,uFAA2D,CAAA;IAC3D,+EAAmD,CAAA;IACnD,yEAA6C,CAAA;IAC7C,mFAAuD,CAAA;IACvD,qFAAyD,CAAA;IACzD,+EAAmD,CAAA;IACnD,qFAAyD,CAAA;IACzD,2FAA+D,CAAA;IAC/D,iGAAqE,CAAA;AACvE,CAAC,EA1BW,wBAAwB,wCAAxB,wBAAwB,QA0BnC","sourcesContent":["import { CrossModuleOwner } from '../types';\n\nexport enum QPQCoreConfigSettingType {\n ai = '@quidproquo-core/config/Ai',\n appName = '@quidproquo-core/config/AppName',\n moduleName = '@quidproquo-core/config/moduleName',\n storageDrive = '@quidproquo-core/config/storageDrive',\n schedule = '@quidproquo-core/config/schedule',\n secret = '@quidproquo-core/config/secret',\n global = '@quidproquo-core/config/global',\n parameter = '@quidproquo-core/config/parameter',\n actionProcessors = '@quidproquo-core/config/actionProcessors',\n apiBuildPath = '@quidproquo-core/config/apiBuildPath',\n queue = '@quidproquo-core/config/Queue',\n eventBus = '@quidproquo-core/config/EventBus',\n userDirectory = '@quidproquo-core/config/UserDirectory',\n keyValueStore = '@quidproquo-core/config/KeyValueStore',\n configValue = '@quidproquo-core/config/ConfigValue',\n environmentSettings = '@quidproquo-core/config/EnvironmentSettings',\n serviceSettings = '@quidproquo-core/config/ServiceSettings',\n deployEvent = '@quidproquo-core/config/DeployEvent',\n claudeAi = '@quidproquo-core/config/ClaudeAi',\n graphDatabase = '@quidproquo-core/config/GraphDatabase',\n virtualNetwork = '@quidproquo-core/config/VirtualNetwork',\n notifyError = '@quidproquo-core/config/notifyError',\n inlineFunction = '@quidproquo-core/config/InlineFunction',\n javascriptRuntime = '@quidproquo-core/config/JavascriptRuntime',\n federatedModuleStore = '@quidproquo-core/config/FederatedModuleStore',\n}\n\nexport interface QPQConfigSetting {\n configSettingType: string;\n uniqueKey: string;\n\n owner?: CrossModuleOwner;\n}\n\nexport interface QPQConfigAdvancedSettings {\n deprecated?: boolean;\n}\n\nexport type QPQConfigItem = QPQConfigSetting | QPQConfigItem[];\nexport type QPQConfig = QPQConfigItem[];\n"]}
1
+ {"version":3,"file":"QPQConfig.js","sourceRoot":"","sources":["../../../src/config/QPQConfig.ts"],"names":[],"mappings":";;;AAEA,IAAY,wBA4BX;AA5BD,WAAY,wBAAwB;IAClC,6DAAiC,CAAA;IACjC,uEAA2C,CAAA;IAC3C,6EAAiD,CAAA;IACjD,iFAAqD,CAAA;IACrD,yEAA6C,CAAA;IAC7C,qEAAyC,CAAA;IACzC,qEAAyC,CAAA;IACzC,2EAA+C,CAAA;IAC/C,yFAA6D,CAAA;IAC7D,iFAAqD,CAAA;IACrD,iGAAqE,CAAA;IACrE,mGAAuE,CAAA;IACvE,mEAAuC,CAAA;IACvC,yEAA6C,CAAA;IAC7C,mFAAuD,CAAA;IACvD,mFAAuD,CAAA;IACvD,+EAAmD,CAAA;IACnD,+FAAmE,CAAA;IACnE,uFAA2D,CAAA;IAC3D,+EAAmD,CAAA;IACnD,yEAA6C,CAAA;IAC7C,mFAAuD,CAAA;IACvD,qFAAyD,CAAA;IACzD,+EAAmD,CAAA;IACnD,qFAAyD,CAAA;IACzD,2FAA+D,CAAA;IAC/D,iGAAqE,CAAA;AACvE,CAAC,EA5BW,wBAAwB,wCAAxB,wBAAwB,QA4BnC","sourcesContent":["import { CrossModuleOwner } from '../types';\n\nexport enum QPQCoreConfigSettingType {\n ai = '@quidproquo-core/config/Ai',\n appName = '@quidproquo-core/config/AppName',\n moduleName = '@quidproquo-core/config/moduleName',\n storageDrive = '@quidproquo-core/config/storageDrive',\n schedule = '@quidproquo-core/config/schedule',\n secret = '@quidproquo-core/config/secret',\n global = '@quidproquo-core/config/global',\n parameter = '@quidproquo-core/config/parameter',\n actionProcessors = '@quidproquo-core/config/actionProcessors',\n apiBuildPath = '@quidproquo-core/config/apiBuildPath',\n backendBundleOptions = '@quidproquo-core/config/BackendBundleOptions',\n frontendBundleOptions = '@quidproquo-core/config/FrontendBundleOptions',\n queue = '@quidproquo-core/config/Queue',\n eventBus = '@quidproquo-core/config/EventBus',\n userDirectory = '@quidproquo-core/config/UserDirectory',\n keyValueStore = '@quidproquo-core/config/KeyValueStore',\n configValue = '@quidproquo-core/config/ConfigValue',\n environmentSettings = '@quidproquo-core/config/EnvironmentSettings',\n serviceSettings = '@quidproquo-core/config/ServiceSettings',\n deployEvent = '@quidproquo-core/config/DeployEvent',\n claudeAi = '@quidproquo-core/config/ClaudeAi',\n graphDatabase = '@quidproquo-core/config/GraphDatabase',\n virtualNetwork = '@quidproquo-core/config/VirtualNetwork',\n notifyError = '@quidproquo-core/config/notifyError',\n inlineFunction = '@quidproquo-core/config/InlineFunction',\n javascriptRuntime = '@quidproquo-core/config/JavascriptRuntime',\n federatedModuleStore = '@quidproquo-core/config/FederatedModuleStore',\n}\n\nexport interface QPQConfigSetting {\n configSettingType: string;\n uniqueKey: string;\n\n owner?: CrossModuleOwner;\n}\n\nexport interface QPQConfigAdvancedSettings {\n deprecated?: boolean;\n}\n\nexport type QPQConfigItem = QPQConfigSetting | QPQConfigItem[];\nexport type QPQConfig = QPQConfigItem[];\n"]}
@@ -0,0 +1,27 @@
1
+ import { QPQConfigSetting } from '../QPQConfig';
2
+ export interface BundleIgnoreModule {
3
+ resource: string;
4
+ context?: string;
5
+ }
6
+ export interface BundleIgnoreWarning {
7
+ module?: string;
8
+ message?: string;
9
+ }
10
+ export interface BackendBundleOptions {
11
+ externals?: string[];
12
+ ignoreModules?: BundleIgnoreModule[];
13
+ ignoreWarnings?: BundleIgnoreWarning[];
14
+ }
15
+ export interface BackendBundleOptionsQPQConfigSetting extends QPQConfigSetting {
16
+ externals: string[];
17
+ ignoreModules: BundleIgnoreModule[];
18
+ ignoreWarnings: BundleIgnoreWarning[];
19
+ }
20
+ export declare const defineBackendBundleOptions: (options: BackendBundleOptions) => BackendBundleOptionsQPQConfigSetting;
21
+ export interface FrontendBundleOptions {
22
+ sharedSingletons?: string[];
23
+ }
24
+ export interface FrontendBundleOptionsQPQConfigSetting extends QPQConfigSetting {
25
+ sharedSingletons: string[];
26
+ }
27
+ export declare const defineFrontendBundleOptions: (options: FrontendBundleOptions) => FrontendBundleOptionsQPQConfigSetting;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defineFrontendBundleOptions = exports.defineBackendBundleOptions = void 0;
4
+ const QPQConfig_1 = require("../QPQConfig");
5
+ const defineBackendBundleOptions = (options) => {
6
+ var _a, _b, _c;
7
+ return ({
8
+ configSettingType: QPQConfig_1.QPQCoreConfigSettingType.backendBundleOptions,
9
+ uniqueKey: JSON.stringify(options),
10
+ externals: (_a = options.externals) !== null && _a !== void 0 ? _a : [],
11
+ ignoreModules: (_b = options.ignoreModules) !== null && _b !== void 0 ? _b : [],
12
+ ignoreWarnings: (_c = options.ignoreWarnings) !== null && _c !== void 0 ? _c : [],
13
+ });
14
+ };
15
+ exports.defineBackendBundleOptions = defineBackendBundleOptions;
16
+ const defineFrontendBundleOptions = (options) => {
17
+ var _a;
18
+ return ({
19
+ configSettingType: QPQConfig_1.QPQCoreConfigSettingType.frontendBundleOptions,
20
+ uniqueKey: JSON.stringify(options),
21
+ sharedSingletons: (_a = options.sharedSingletons) !== null && _a !== void 0 ? _a : [],
22
+ });
23
+ };
24
+ exports.defineFrontendBundleOptions = defineFrontendBundleOptions;
25
+ //# sourceMappingURL=bundleOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bundleOptions.js","sourceRoot":"","sources":["../../../../src/config/settings/bundleOptions.ts"],"names":[],"mappings":";;;AAAA,4CAA0E;AAqCnE,MAAM,0BAA0B,GAAG,CAAC,OAA6B,EAAwC,EAAE;;IAAC,OAAA,CAAC;QAClH,iBAAiB,EAAE,oCAAwB,CAAC,oBAAoB;QAChE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;QAElC,SAAS,EAAE,MAAA,OAAO,CAAC,SAAS,mCAAI,EAAE;QAClC,aAAa,EAAE,MAAA,OAAO,CAAC,aAAa,mCAAI,EAAE;QAC1C,cAAc,EAAE,MAAA,OAAO,CAAC,cAAc,mCAAI,EAAE;KAC7C,CAAC,CAAA;CAAA,CAAC;AAPU,QAAA,0BAA0B,8BAOpC;AAeI,MAAM,2BAA2B,GAAG,CAAC,OAA8B,EAAyC,EAAE;;IAAC,OAAA,CAAC;QACrH,iBAAiB,EAAE,oCAAwB,CAAC,qBAAqB;QACjE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;QAElC,gBAAgB,EAAE,MAAA,OAAO,CAAC,gBAAgB,mCAAI,EAAE;KACjD,CAAC,CAAA;CAAA,CAAC;AALU,QAAA,2BAA2B,+BAKrC","sourcesContent":["import { QPQConfigSetting, QPQCoreConfigSettingType } from '../QPQConfig';\n\n// Regex fields are plain regex-source strings (not RegExp) — QPQ configs must\n// survive JSON serialization. Bundlers compile them with `new RegExp(...)`.\n\nexport interface BundleIgnoreModule {\n // Request to drop from the bundle, e.g. '^original-fs$'.\n resource: string;\n\n // Only drop when required from a module matching this, e.g. 'adm-zip'.\n context?: string;\n}\n\nexport interface BundleIgnoreWarning {\n module?: string;\n message?: string;\n}\n\nexport interface BackendBundleOptions {\n // Packages to require() at runtime instead of bundling. Prefer declaring\n // layer-provided packages on the layer itself (`ApiLayer.modules`) — this is\n // the escape hatch for non-layer cases.\n externals?: string[];\n\n // Optional requires inside dependencies that should resolve to nothing.\n ignoreModules?: BundleIgnoreModule[];\n\n // Known-noisy build warnings to suppress.\n ignoreWarnings?: BundleIgnoreWarning[];\n}\n\nexport interface BackendBundleOptionsQPQConfigSetting extends QPQConfigSetting {\n externals: string[];\n ignoreModules: BundleIgnoreModule[];\n ignoreWarnings: BundleIgnoreWarning[];\n}\n\nexport const defineBackendBundleOptions = (options: BackendBundleOptions): BackendBundleOptionsQPQConfigSetting => ({\n configSettingType: QPQCoreConfigSettingType.backendBundleOptions,\n uniqueKey: JSON.stringify(options),\n\n externals: options.externals ?? [],\n ignoreModules: options.ignoreModules ?? [],\n ignoreWarnings: options.ignoreWarnings ?? [],\n});\n\n// Grows on demand — fonts/images are already default-on in the views build.\nexport interface FrontendBundleOptions {\n // Substring-matched against the hoisted root dependency names; matches are\n // shared as module-federation singletons. react/react-dom/react-ish deps and\n // quidproquo-web* are always singletons — this adds app-stack ones (e.g.\n // 'chakra', 'zod') without baking package names into the bundler.\n sharedSingletons?: string[];\n}\n\nexport interface FrontendBundleOptionsQPQConfigSetting extends QPQConfigSetting {\n sharedSingletons: string[];\n}\n\nexport const defineFrontendBundleOptions = (options: FrontendBundleOptions): FrontendBundleOptionsQPQConfigSetting => ({\n configSettingType: QPQCoreConfigSettingType.frontendBundleOptions,\n uniqueKey: JSON.stringify(options),\n\n sharedSingletons: options.sharedSingletons ?? [],\n});\n"]}
@@ -4,6 +4,7 @@ export * from './apiBuildPath';
4
4
  export * from './applicationModule';
5
5
  export * from './applicationName';
6
6
  export * from './applicationVersion';
7
+ export * from './bundleOptions';
7
8
  export * from './claudeAi';
8
9
  export * from './configValue';
9
10
  export * from './definePromiseMode';
@@ -20,6 +20,7 @@ __exportStar(require("./apiBuildPath"), exports);
20
20
  __exportStar(require("./applicationModule"), exports);
21
21
  __exportStar(require("./applicationName"), exports);
22
22
  __exportStar(require("./applicationVersion"), exports);
23
+ __exportStar(require("./bundleOptions"), exports);
23
24
  __exportStar(require("./claudeAi"), exports);
24
25
  __exportStar(require("./configValue"), exports);
25
26
  __exportStar(require("./definePromiseMode"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/config/settings/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,uCAAqB;AACrB,iDAA+B;AAC/B,sDAAoC;AACpC,oDAAkC;AAClC,uDAAqC;AACrC,6CAA2B;AAC3B,gDAA8B;AAC9B,sDAAoC;AACpC,gDAA8B;AAC9B,mDAAiC;AACjC,wDAAsC;AACtC,6CAA2B;AAC3B,yDAAuC;AACvC,2CAAyB;AACzB,kDAAgC;AAChC,mDAAiC;AACjC,sDAAoC;AACpC,kDAAgC;AAChC,+CAA6B;AAC7B,gDAA8B;AAC9B,8CAA4B;AAC5B,0CAAwB;AACxB,6CAA2B;AAC3B,2CAAyB;AACzB,oDAAkC;AAClC,iDAA+B;AAC/B,kDAAgC;AAChC,mDAAiC","sourcesContent":["export * from './actionProcessors';\nexport * from './ai';\nexport * from './apiBuildPath';\nexport * from './applicationModule';\nexport * from './applicationName';\nexport * from './applicationVersion';\nexport * from './claudeAi';\nexport * from './configValue';\nexport * from './definePromiseMode';\nexport * from './deployEvent';\nexport * from './emailTemplates';\nexport * from './environmentSettings';\nexport * from './eventBus';\nexport * from './federatedModuleStore';\nexport * from './global';\nexport * from './graphDatabase';\nexport * from './inlineFunction';\nexport * from './javascriptRuntime';\nexport * from './keyValueStore';\nexport * from './moduleName';\nexport * from './notifyError';\nexport * from './parameter';\nexport * from './queue';\nexport * from './schedule';\nexport * from './secret';\nexport * from './serviceSettings';\nexport * from './storageDrive';\nexport * from './userDirectory';\nexport * from './virtualNetwork';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/config/settings/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,uCAAqB;AACrB,iDAA+B;AAC/B,sDAAoC;AACpC,oDAAkC;AAClC,uDAAqC;AACrC,kDAAgC;AAChC,6CAA2B;AAC3B,gDAA8B;AAC9B,sDAAoC;AACpC,gDAA8B;AAC9B,mDAAiC;AACjC,wDAAsC;AACtC,6CAA2B;AAC3B,yDAAuC;AACvC,2CAAyB;AACzB,kDAAgC;AAChC,mDAAiC;AACjC,sDAAoC;AACpC,kDAAgC;AAChC,+CAA6B;AAC7B,gDAA8B;AAC9B,8CAA4B;AAC5B,0CAAwB;AACxB,6CAA2B;AAC3B,2CAAyB;AACzB,oDAAkC;AAClC,iDAA+B;AAC/B,kDAAgC;AAChC,mDAAiC","sourcesContent":["export * from './actionProcessors';\nexport * from './ai';\nexport * from './apiBuildPath';\nexport * from './applicationModule';\nexport * from './applicationName';\nexport * from './applicationVersion';\nexport * from './bundleOptions';\nexport * from './claudeAi';\nexport * from './configValue';\nexport * from './definePromiseMode';\nexport * from './deployEvent';\nexport * from './emailTemplates';\nexport * from './environmentSettings';\nexport * from './eventBus';\nexport * from './federatedModuleStore';\nexport * from './global';\nexport * from './graphDatabase';\nexport * from './inlineFunction';\nexport * from './javascriptRuntime';\nexport * from './keyValueStore';\nexport * from './moduleName';\nexport * from './notifyError';\nexport * from './parameter';\nexport * from './queue';\nexport * from './schedule';\nexport * from './secret';\nexport * from './serviceSettings';\nexport * from './storageDrive';\nexport * from './userDirectory';\nexport * from './virtualNetwork';\n"]}
@@ -1,4 +1,4 @@
1
- import { AiQPQConfigSetting, ApplicationQPQConfigSetting, ClaudeAIQPQConfigSetting, DeployEventsQPQConfigSetting, EmailTemplates, EventBusQPQConfigSetting, FederatedModuleStoreQPQConfigSetting, GraphDatabaseQPQConfigSetting, InlineFunctionQPQConfigSetting, JavascriptRuntimeQPQConfigSetting, KeyValueStoreQPQConfigSetting, NotifyErrorQPQConfigSetting, ParameterQPQConfigSetting, QPQConfig, QPQConfigSetting, QpqQueueProcessors, QueueQPQConfigSetting, ScheduleQPQConfigSetting, SecretQPQConfigSetting, StorageDriveQPQConfigSetting, UserDirectoryQPQConfigSetting, VirtualNetworkQPQConfigSetting } from './config';
1
+ import { AiQPQConfigSetting, ApplicationQPQConfigSetting, BackendBundleOptions, ClaudeAIQPQConfigSetting, DeployEventsQPQConfigSetting, EmailTemplates, EventBusQPQConfigSetting, FederatedModuleStoreQPQConfigSetting, FrontendBundleOptions, GraphDatabaseQPQConfigSetting, InlineFunctionQPQConfigSetting, JavascriptRuntimeQPQConfigSetting, KeyValueStoreQPQConfigSetting, NotifyErrorQPQConfigSetting, ParameterQPQConfigSetting, QPQConfig, QPQConfigSetting, QpqQueueProcessors, QueueQPQConfigSetting, ScheduleQPQConfigSetting, SecretQPQConfigSetting, StorageDriveQPQConfigSetting, UserDirectoryQPQConfigSetting, VirtualNetworkQPQConfigSetting } from './config';
2
2
  import { ConfigUrl, CrossServiceResourceName, CustomFullyQualifiedResource, FullyQualifiedResource, QpqFunctionRuntime, ResourceName } from './types';
3
3
  /**
4
4
  * Flattens a QPQConfig array into a single array of QPQConfigSetting objects.
@@ -88,6 +88,17 @@ export declare const getUserDirectoryByName: (userDirectoryName: string, qpqConi
88
88
  export declare const getAllParameterConfigs: (qpqConfig: QPQConfig) => ParameterQPQConfigSetting[];
89
89
  export declare const getParameterConfig: (name: string, qpqConfig: QPQConfig) => ParameterQPQConfigSetting;
90
90
  export declare const getOwnedParameterConfigs: (qpqConfig: QPQConfig) => ParameterQPQConfigSetting[];
91
+ /**
92
+ * Merges every `defineBackendBundleOptions` in the config into a single set of
93
+ * bundler directives. Services compose config from many fragments, so each
94
+ * fragment can declare the build quirks of its own dependencies.
95
+ */
96
+ export declare const getBackendBundleOptions: (qpqConfig: QPQConfig) => Required<BackendBundleOptions>;
97
+ /**
98
+ * Merges every `defineFrontendBundleOptions` in the config into a single set
99
+ * of views-bundler directives.
100
+ */
101
+ export declare const getFrontendBundleOptions: (qpqConfig: QPQConfig) => Required<FrontendBundleOptions>;
91
102
  export declare const getUniqueKeyForSetting: (setting: QPQConfigSetting) => string;
92
103
  export declare const getQueueQueueProcessors: (name: string, qpqConfig: QPQConfig) => QpqQueueProcessors;
93
104
  export declare const convertCustomFullyQualifiedResourceToGeneric: <T extends string>(resource: CustomFullyQualifiedResource<T>) => FullyQualifiedResource;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getGlobalConfigValue = exports.getOwnedSecrets = exports.getAllSecretConfigs = exports.getSecretByName = exports.getSrcFilenameFromQpqFunctionRuntime = exports.getApiBuildPath = exports.getAllSrcEntries = exports.getOwnedInlineFunctions = exports.getAllInlineFunctions = exports.getUserDirectorySrcEntries = exports.getQueueSrcEntries = exports.getOwnedScheduleEvents = exports.getScheduleEvents = exports.getUserDirectoryEmailTemplates = exports.getActionProcessorSources = exports.getKeyValueStoreByName = exports.resolveCrossServiceResourceName = exports.getOwnedStorageDrives = exports.getOwnedGraphDatabases = exports.getOwnedKeyValueStores = exports.getVirualNetworkConfigs = exports.getDeployEventConfigs = exports.getAllGraphDatabaseConfigs = exports.getAllKeyValueStores = exports.getOwnedItems = exports.getEventBusConfigByName = exports.getOwnedEventBusConfigs = exports.getAllClaudeAiConfigs = exports.getJavascriptRuntimeConfig = exports.getAllAiConfigs = exports.getAllEventBusConfigs = exports.getStorageDriveNames = exports.assertFifoQueueEventBusSubscriptionsAreValid = exports.getQueueByName = exports.getNotifyErrorConfigs = exports.getOwnedQueues = exports.getQueues = exports.getFederatedModuleStore = exports.getStorageDriveByName = exports.getStorageDrives = exports.getApplicationModuleEnvironment = exports.getConfigRoot = exports.getApplicationModuleFeature = exports.getApplicationName = exports.getApplicationConfigRoot = exports.getApplicationModuleName = exports.getApplicationConfigSetting = exports.getConfigSetting = exports.getConfigSettings = exports.flattenQpqConfig = void 0;
4
- exports.getFullUrlFromConfigUrl = exports.isSameResource = exports.getKeyValueStoreFullyQualifiedResourceName = exports.getFullyQualifiedResourceName = exports.convertCustomFullyQualifiedResourceToGeneric = exports.getQueueQueueProcessors = exports.getUniqueKeyForSetting = exports.getOwnedParameterConfigs = exports.getParameterConfig = exports.getAllParameterConfigs = exports.getUserDirectoryByName = exports.getOwnedUserDirectories = exports.getUserDirectories = exports.resolveGlobalValue = void 0;
4
+ exports.getFullUrlFromConfigUrl = exports.isSameResource = exports.getKeyValueStoreFullyQualifiedResourceName = exports.getFullyQualifiedResourceName = exports.convertCustomFullyQualifiedResourceToGeneric = exports.getQueueQueueProcessors = exports.getUniqueKeyForSetting = exports.getFrontendBundleOptions = exports.getBackendBundleOptions = exports.getOwnedParameterConfigs = exports.getParameterConfig = exports.getAllParameterConfigs = exports.getUserDirectoryByName = exports.getOwnedUserDirectories = exports.getUserDirectories = exports.resolveGlobalValue = void 0;
5
5
  const config_1 = require("./config");
6
6
  const utils_1 = require("./utils");
7
7
  /**
@@ -417,6 +417,31 @@ const getOwnedParameterConfigs = (qpqConfig) => {
417
417
  return (0, exports.getOwnedItems)(parameters, qpqConfig);
418
418
  };
419
419
  exports.getOwnedParameterConfigs = getOwnedParameterConfigs;
420
+ /**
421
+ * Merges every `defineBackendBundleOptions` in the config into a single set of
422
+ * bundler directives. Services compose config from many fragments, so each
423
+ * fragment can declare the build quirks of its own dependencies.
424
+ */
425
+ const getBackendBundleOptions = (qpqConfig) => {
426
+ const settings = (0, exports.getConfigSettings)(qpqConfig, config_1.QPQCoreConfigSettingType.backendBundleOptions);
427
+ return {
428
+ externals: settings.flatMap((setting) => setting.externals),
429
+ ignoreModules: settings.flatMap((setting) => setting.ignoreModules),
430
+ ignoreWarnings: settings.flatMap((setting) => setting.ignoreWarnings),
431
+ };
432
+ };
433
+ exports.getBackendBundleOptions = getBackendBundleOptions;
434
+ /**
435
+ * Merges every `defineFrontendBundleOptions` in the config into a single set
436
+ * of views-bundler directives.
437
+ */
438
+ const getFrontendBundleOptions = (qpqConfig) => {
439
+ const settings = (0, exports.getConfigSettings)(qpqConfig, config_1.QPQCoreConfigSettingType.frontendBundleOptions);
440
+ return {
441
+ sharedSingletons: settings.flatMap((setting) => setting.sharedSingletons),
442
+ };
443
+ };
444
+ exports.getFrontendBundleOptions = getFrontendBundleOptions;
420
445
  const getUniqueKeyForSetting = (setting) => {
421
446
  const type = setting.configSettingType.split('/').pop();
422
447
  const key = setting.uniqueKey;
@@ -1 +1 @@
1
- {"version":3,"file":"qpqCoreUtils.js","sourceRoot":"","sources":["../../src/qpqCoreUtils.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ActionProcessorsQPQConfigSetting,\n AiQPQConfigSetting,\n ApiBuildPathQPQConfigSetting,\n ApplicationQPQConfigSetting,\n ClaudeAIQPQConfigSetting,\n defineJavascriptRuntime,\n DeployEventsQPQConfigSetting,\n EmailTemplates,\n EnvironmentSettingsQPQConfigSetting,\n EventBusQPQConfigSetting,\n FederatedModuleStoreQPQConfigSetting,\n GlobalQPQConfigSetting,\n GraphDatabaseQPQConfigSetting,\n InlineFunctionQPQConfigSetting,\n JavascriptRuntimeQPQConfigSetting,\n KeyValueStoreQPQConfigSetting,\n ModuleQPQConfigSetting,\n NotifyErrorQPQConfigSetting,\n ParameterQPQConfigSetting,\n QPQConfig,\n QPQConfigItem,\n QPQConfigSetting,\n QPQCoreConfigSettingType,\n QpqQueueProcessors,\n QueueQPQConfigSetting,\n ScheduleQPQConfigSetting,\n SecretQPQConfigSetting,\n ServiceSettingsQPQConfigSetting,\n StorageDriveQPQConfigSetting,\n UserDirectoryQPQConfigSetting,\n VirtualNetworkQPQConfigSetting,\n} from './config';\nimport {\n ConfigUrl,\n CrossModuleOwner,\n CrossServiceResourceName,\n CustomFullyQualifiedResource,\n FullyQualifiedResource,\n KeyOf,\n QpqFunctionRuntime,\n ResourceName,\n} from './types';\nimport { isQpqFunctionRuntimeAdvanced } from './utils';\n\n/**\n * Flattens a QPQConfig array into a single array of QPQConfigSetting objects.\n * If a QPQConfigItem has a configSettingType of QPQCoreConfigSettingType.environmentSettings,\n * and its environment matches the current environment, its settings will be added to the flattened array.\n * @function\n * @param {QPQConfig} qpqConfig - The input QPQConfig array to be flattened.\n * @returns {QPQConfigSetting[]} - The flattened array of QPQConfigSetting objects\n */\nexport const flattenQpqConfig = (qpqConfig: QPQConfig): QPQConfigSetting[] => {\n let environment = 'development';\n let service: string | undefined;\n\n /**\n * A recursive helper function that flattens an array of QPQConfigItem objects.\n * @function\n * @param {QPQConfigItem[]} configItems - An array of QPQConfigItem objects to be flattened.\n * @param {QPQConfigSetting[]} accumulator - An accumulator array for storing the flattened QPQConfigSetting objects.\n * @returns {QPQConfigSetting[]} - The flattened array of QPQConfigSetting objects.\n */\n const flatten = (configItems: QPQConfigItem[], accumulator: QPQConfigSetting[] = []): QPQConfigSetting[] => {\n return configItems.reduce<QPQConfigSetting[]>((acc, item) => {\n if (Array.isArray(item)) {\n return flatten(item, acc);\n } else {\n // If its a appName config item, update the environment variable\n if (item.configSettingType === QPQCoreConfigSettingType.appName) {\n environment = (item as ApplicationQPQConfigSetting).environment || 'development';\n }\n\n // If its a moduleName config item, update the service variable\n else if (item.configSettingType === QPQCoreConfigSettingType.moduleName) {\n service = (item as ModuleQPQConfigSetting).moduleName;\n }\n\n // Otherwise if its an environmentSettings config item, flatten out the child settings\n // for the current environment, falling back to the '*' key if present.\n else if (item.configSettingType === QPQCoreConfigSettingType.environmentSettings) {\n const envSetting = item as EnvironmentSettingsQPQConfigSetting;\n const settings = envSetting.settingsByEnvironment[environment] ?? envSetting.settingsByEnvironment['*'] ?? [];\n\n return flatten(settings, acc);\n }\n\n // Otherwise if its a serviceSettings config item, flatten out the child settings\n // for the current service, falling back to the '*' key if present.\n else if (item.configSettingType === QPQCoreConfigSettingType.serviceSettings) {\n if (!service) {\n throw new Error('defineServiceSettings requires a module to be set first via defineModule (usually through defineApplicationModule)');\n }\n\n const svcSetting = item as ServiceSettingsQPQConfigSetting;\n const settings = svcSetting.settingsByService[service] ?? svcSetting.settingsByService['*'] ?? [];\n\n return flatten(settings, acc);\n }\n\n // Otherwise its just a regular config item, add it to the list\n return [...acc, item];\n }\n }, accumulator);\n };\n\n return flatten(qpqConfig);\n};\n\n/**\n * Filters and returns the config settings of a specific type from a QPQConfig array.\n * @function\n * @template T - The specific type of QPQConfigSetting to filter.\n * @param {QPQConfig} qpqConfig - The input QPQConfig array.\n * @param {string} configSettingType - The specific config setting type to filter.\n * @returns {T[]} - An array of filtered config settings of the specified type.\n */\nexport const getConfigSettings = <T extends QPQConfigSetting>(qpqConfig: QPQConfig, configSettingType: string): T[] => {\n const flatConfig = flattenQpqConfig(qpqConfig);\n return flatConfig.filter((c) => c.configSettingType === configSettingType) as T[];\n};\n\n/**\n * Retrieves a single config setting of a specific type from a QPQConfig array.\n * @function\n * @template T - The specific type of QPQConfigSetting to retrieve.\n * @param {QPQConfig} qpqConfig - The input QPQConfig array.\n * @param {string} serviceInfrastructureConfigType - The specific config setting type to retrieve.\n * @returns {T | undefined} - The found config setting of the specified type or undefined if not found.\n */\nexport const getConfigSetting = <T extends QPQConfigSetting>(qpqConfig: QPQConfig, serviceInfrastructureConfigType: string): T | undefined => {\n const [setting] = getConfigSettings<T>(qpqConfig, serviceInfrastructureConfigType);\n return setting;\n};\n\n/**\n * Retrieves the ApplicationModuleSetting from a QPQConfig array.\n * @function\n * @param {QPQConfig} qpqConfig - The input QPQConfig array.\n * @returns {ApplicationQPQConfigSetting} - The ApplicationQPQConfigSetting from the QPQConfig array.\n * @throws {Error} - If the ApplicationQPQConfigSetting is not found in the QPQConfig array.\n */\nexport const getApplicationConfigSetting = (qpqConfig: QPQConfig): ApplicationQPQConfigSetting => {\n const applicationModuleSetting = getConfigSetting<ApplicationQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.appName);\n\n if (!applicationModuleSetting) {\n throw new Error('please use defineApplication in your QPQ config');\n }\n\n return applicationModuleSetting;\n};\n\nexport const getApplicationModuleName = (qpqConfig: QPQConfig): string => {\n const moduleSetting = getConfigSetting<ModuleQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.moduleName);\n\n if (!moduleSetting) {\n throw new Error('please use defineModule in your QPQ config');\n }\n\n return moduleSetting.moduleName;\n};\n\nexport const getApplicationConfigRoot = (qpqConfig: QPQConfig): string => {\n const moduleSetting = getConfigSetting<ApplicationQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.appName);\n\n if (!moduleSetting) {\n throw new Error('please use defineApplication in your QPQ config');\n }\n\n return moduleSetting.configRoot;\n};\n\nexport const getApplicationName = (qpqConfig: QPQConfig): string => {\n return getApplicationConfigSetting(qpqConfig).applicationName;\n};\n\nexport const getApplicationModuleFeature = (qpqConfig: QPQConfig): string | undefined => {\n return getApplicationConfigSetting(qpqConfig).feature;\n};\n\nexport const getConfigRoot = (qpqConfig: QPQConfig): string => {\n return getApplicationConfigSetting(qpqConfig).configRoot;\n};\n\nexport const getApplicationModuleEnvironment = (qpqConfig: QPQConfig): string => {\n return getApplicationConfigSetting(qpqConfig).environment || 'production';\n};\n\nexport const getStorageDrives = (configs: QPQConfig): StorageDriveQPQConfigSetting[] => {\n return getConfigSettings<StorageDriveQPQConfigSetting>(configs, QPQCoreConfigSettingType.storageDrive);\n};\n\nexport const getStorageDriveByName = (storageDriveName: string, configs: QPQConfig): StorageDriveQPQConfigSetting | undefined => {\n return getStorageDrives(configs).find((sd) => sd.storageDrive === storageDriveName);\n};\n\nexport const getFederatedModuleStore = (qpqConfig: QPQConfig): FederatedModuleStoreQPQConfigSetting | undefined => {\n return getConfigSetting<FederatedModuleStoreQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.federatedModuleStore);\n};\n\nexport const getQueues = (configs: QPQConfig): QueueQPQConfigSetting[] => {\n return getConfigSettings<QueueQPQConfigSetting>(configs, QPQCoreConfigSettingType.queue);\n};\n\nexport const getOwnedQueues = (configs: QPQConfig): QueueQPQConfigSetting[] => {\n return getOwnedItems(getQueues(configs), configs);\n};\n\nexport const getNotifyErrorConfigs = (configs: QPQConfig): NotifyErrorQPQConfigSetting[] => {\n return getConfigSettings<NotifyErrorQPQConfigSetting>(configs, QPQCoreConfigSettingType.notifyError);\n};\n\nexport const getQueueByName = (configs: QPQConfig, name: string): QueueQPQConfigSetting | undefined => {\n return getQueues(configs).find((q) => q.name === name);\n};\n\n// A FIFO queue can only be fed by a FIFO event bus - standard SNS topics cannot deliver\n// to FIFO SQS queues at all. Called at deploy/startup time (the queue and bus are separate\n// settings, so defineQueue can't validate this on its own).\nexport const assertFifoQueueEventBusSubscriptionsAreValid = (qpqConfig: QPQConfig): void => {\n const invalidSubscriptions = getQueues(qpqConfig)\n .filter((queue) => queue.isFifo)\n .flatMap((queue) =>\n queue.eventBusSubscriptions\n .filter((eventBusName) => !getEventBusConfigByName(eventBusName, qpqConfig)?.isFifo)\n .map((eventBusName) => `queue [${queue.name}] -> event bus [${eventBusName}]`),\n );\n\n if (invalidSubscriptions.length > 0) {\n throw new Error(\n `FIFO queues can only subscribe to FIFO event buses (standard SNS topics cannot deliver to FIFO SQS queues): ${invalidSubscriptions.join(', ')}`,\n );\n }\n};\n\nexport const getStorageDriveNames = (configs: QPQConfig): string[] => {\n const storageDriveNames = getConfigSettings<StorageDriveQPQConfigSetting>(configs, QPQCoreConfigSettingType.storageDrive).map(\n (sd) => sd.storageDrive,\n );\n\n return storageDriveNames;\n};\n\nexport const getAllEventBusConfigs = (qpqConfig: QPQConfig): EventBusQPQConfigSetting[] => {\n const eventBuses = getConfigSettings<EventBusQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.eventBus);\n\n return eventBuses;\n};\n\nexport const getAllAiConfigs = (qpqConfig: QPQConfig): AiQPQConfigSetting[] => {\n return getConfigSettings<AiQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.ai);\n};\n\n// Always resolves - falls back to the defineJavascriptRuntime defaults when no setting is present\nexport const getJavascriptRuntimeConfig = (qpqConfig: QPQConfig): JavascriptRuntimeQPQConfigSetting => {\n return getConfigSetting<JavascriptRuntimeQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.javascriptRuntime) ?? defineJavascriptRuntime();\n};\n\nexport const getAllClaudeAiConfigs = (qpqConfig: QPQConfig): ClaudeAIQPQConfigSetting[] => {\n const claudeAis = getConfigSettings<ClaudeAIQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.claudeAi);\n\n return claudeAis;\n};\n\nexport const getOwnedEventBusConfigs = (qpqConfig: QPQConfig): EventBusQPQConfigSetting[] => {\n const ownedEventBusConfigs = getOwnedItems(getAllEventBusConfigs(qpqConfig), qpqConfig);\n\n return ownedEventBusConfigs;\n};\n\nexport const getEventBusConfigByName = (eventBusName: string, qpqConfig: QPQConfig): EventBusQPQConfigSetting | undefined => {\n const allConfigs = getAllEventBusConfigs(qpqConfig);\n\n const eventBusConfig = allConfigs.find((eb) => eb.owner?.resourceNameOverride === eventBusName);\n\n if (eventBusConfig) {\n return eventBusConfig;\n }\n\n return allConfigs.find((eb) => eb.name === eventBusName);\n};\n\nexport const getOwnedItems = <T extends QPQConfigSetting>(settings: T[], qpqConfig: QPQConfig): T[] => {\n const appModuleName = getApplicationModuleName(qpqConfig);\n const appName = getApplicationName(qpqConfig);\n const appFeature = getApplicationModuleFeature(qpqConfig);\n const appEnvironment = getApplicationModuleEnvironment(qpqConfig);\n\n return settings.filter(\n (s) =>\n !s.owner ||\n ((!s.owner.module || s.owner.module === appModuleName) &&\n (!s.owner.application || s.owner.application === appName) &&\n (s.owner.feature === undefined || (!s.owner.feature && !appFeature) || s.owner.feature === appFeature) &&\n (!s.owner.environment || s.owner.environment === appEnvironment)),\n );\n};\n\nexport const getAllKeyValueStores = <T extends object = any>(qpqConfig: QPQConfig): KeyValueStoreQPQConfigSetting<T>[] => {\n const keyValueStores = getConfigSettings<KeyValueStoreQPQConfigSetting<T>>(qpqConfig, QPQCoreConfigSettingType.keyValueStore);\n\n return keyValueStores;\n};\n\nexport const getAllGraphDatabaseConfigs = (qpqConfig: QPQConfig): GraphDatabaseQPQConfigSetting[] => {\n const graphDatabases = getConfigSettings<GraphDatabaseQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.graphDatabase);\n\n return graphDatabases;\n};\n\nexport const getDeployEventConfigs = (qpqConfig: QPQConfig): DeployEventsQPQConfigSetting[] => {\n const deployEvents = getConfigSettings<DeployEventsQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.deployEvent);\n\n return deployEvents;\n};\n\nexport const getVirualNetworkConfigs = (qpqConfig: QPQConfig): VirtualNetworkQPQConfigSetting[] => {\n return getConfigSettings<VirtualNetworkQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.virtualNetwork);\n};\n\nexport const getOwnedKeyValueStores = <T extends object = any>(qpqConfig: QPQConfig): KeyValueStoreQPQConfigSetting<T>[] => {\n return getOwnedItems(getAllKeyValueStores(qpqConfig), qpqConfig);\n};\n\nexport const getOwnedGraphDatabases = (qpqConfig: QPQConfig): GraphDatabaseQPQConfigSetting[] => {\n return getOwnedItems(getAllGraphDatabaseConfigs(qpqConfig), qpqConfig);\n};\n\nexport const getOwnedStorageDrives = (qpqConfig: QPQConfig): StorageDriveQPQConfigSetting[] => {\n return getOwnedItems(getStorageDrives(qpqConfig), qpqConfig);\n};\n\nexport const resolveCrossServiceResourceName = (resourceName: ResourceName): CrossServiceResourceName => {\n if (typeof resourceName === 'string') {\n return {\n name: resourceName,\n };\n }\n\n return resourceName;\n};\n\nexport const getKeyValueStoreByName = <T extends object = any>(\n qpqConfig: QPQConfig,\n kvsName: string,\n): KeyValueStoreQPQConfigSetting<T> | undefined => {\n const keyValueStore = getAllKeyValueStores<T>(qpqConfig).find((kvs) => kvs.keyValueStoreName === kvsName);\n\n return keyValueStore;\n};\n\nexport const getActionProcessorSources = (configs: QPQConfig): QpqFunctionRuntime[] => {\n const sources = getConfigSettings<ActionProcessorsQPQConfigSetting>(configs, QPQCoreConfigSettingType.actionProcessors).map((ap) => ap.runtime);\n\n return sources;\n};\n\nexport const getUserDirectoryEmailTemplates = (qpqConfig: QPQConfig): Record<string, EmailTemplates> => {\n const userDirectories = getConfigSettings<UserDirectoryQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.userDirectory);\n\n const record = userDirectories.reduce(\n (acc, ud) => ({\n ...acc,\n [ud.name]: ud.emailTemplates,\n }),\n {} as Record<string, EmailTemplates>,\n );\n\n return record;\n};\n\nexport const getScheduleEvents = (configs: QPQConfig): ScheduleQPQConfigSetting[] => {\n return getConfigSettings<ScheduleQPQConfigSetting>(configs, QPQCoreConfigSettingType.schedule);\n};\n\nexport const getOwnedScheduleEvents = (qpqConfig: QPQConfig): ScheduleQPQConfigSetting[] => {\n return getOwnedItems(getScheduleEvents(qpqConfig), qpqConfig);\n};\n\nexport const getQueueSrcEntries = (configs: QPQConfig): QpqFunctionRuntime[] => {\n const queueConfigs = getConfigSettings<QueueQPQConfigSetting>(configs, QPQCoreConfigSettingType.queue);\n\n return queueConfigs.reduce((acc, qc) => [...acc, ...Object.values(qc.qpqQueueProcessors)], [] as QpqFunctionRuntime[]);\n};\n\nexport const getUserDirectorySrcEntries = (qpqConfig: QPQConfig): QpqFunctionRuntime[] => {\n // We just want the ones this service owns.\n const userConfigs = getOwnedUserDirectories(qpqConfig);\n\n return userConfigs\n .reduce((acc, ud) => [...acc, ...Object.values(ud.emailTemplates), ...Object.values(ud.customAuthRuntime || {})], [] as QpqFunctionRuntime[])\n .filter((se) => !!se);\n};\n\nexport const getAllInlineFunctions = (qpqConfig: QPQConfig): InlineFunctionQPQConfigSetting[] => {\n return getConfigSettings<InlineFunctionQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.inlineFunction);\n};\n\nexport const getOwnedInlineFunctions = (qpqConfig: QPQConfig): InlineFunctionQPQConfigSetting[] => {\n return getOwnedItems(getAllInlineFunctions(qpqConfig), qpqConfig);\n};\n\n// Used in bundlers to know where and what to build and index\nexport const getAllSrcEntries = (qpqConfig: QPQConfig): QpqFunctionRuntime[] => {\n const result = [\n ...getActionProcessorSources(qpqConfig),\n ...getScheduleEvents(qpqConfig).map((r) => r.runtime),\n ...getQueueSrcEntries(qpqConfig),\n ...getUserDirectorySrcEntries(qpqConfig),\n ...getDeployEventConfigs(qpqConfig).map((r) => r.runtime),\n ...getStorageDrives(qpqConfig).flatMap((sd) => [sd.onEvent?.create, sd.onEvent?.delete].filter((r) => !!r) as QpqFunctionRuntime[]),\n ...getAllInlineFunctions(qpqConfig).map((f) => f.runtime),\n ];\n\n return result;\n};\n\nexport const getApiBuildPath = (qpqConfig: QPQConfig): string => {\n const [apiBuildPathConfig] = getConfigSettings<ApiBuildPathQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.apiBuildPath);\n\n if (!apiBuildPathConfig) {\n throw new Error(`Can not find app base path use defineApiBuildPath or defineApplicationModule`);\n }\n\n return apiBuildPathConfig.apiBuildPath;\n};\n\nexport const getSrcFilenameFromQpqFunctionRuntime = (qpqFunctionRuntime: QpqFunctionRuntime): string => {\n if (isQpqFunctionRuntimeAdvanced(qpqFunctionRuntime)) {\n return qpqFunctionRuntime.relativePath.split('/').pop() || '';\n }\n\n const [srcPath] = qpqFunctionRuntime.split('::');\n return srcPath.split('/').pop() || '';\n};\n\nexport const getSecretByName = (secretName: string, qpqConfig: QPQConfig): SecretQPQConfigSetting => {\n const secrets = getConfigSettings<SecretQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.secret);\n\n const secret = secrets.find((s) => s.key === secretName);\n\n if (!secret) {\n throw new Error(`Can not find secret [${secretName}]`);\n }\n\n return secret;\n};\n\nexport const getAllSecretConfigs = (qpqConfig: QPQConfig): SecretQPQConfigSetting[] => {\n const secrets = getConfigSettings<SecretQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.secret);\n\n return secrets;\n};\n\nexport const getOwnedSecrets = (qpqConfig: QPQConfig): SecretQPQConfigSetting[] => {\n const secrets = getAllSecretConfigs(qpqConfig);\n\n return getOwnedItems(secrets, qpqConfig);\n};\n\nexport const getGlobalConfigValue = <T>(qpqConfig: QPQConfig, name: string): T => {\n const global = getConfigSettings<GlobalQPQConfigSetting<T>>(qpqConfig, QPQCoreConfigSettingType.global).find((g) => g.key === name);\n\n if (!global) {\n throw new Error(`Global config ${name} not found`);\n }\n\n return global.value;\n};\n\n// Resolves a global by name, giving precedence to globals declared on the\n// executing function (functionGlobals) before falling back to the service-wide\n// config global. Throws (via getGlobalConfigValue) if the name is found in neither.\nexport const resolveGlobalValue = <T>(qpqConfig: QPQConfig, functionGlobals: Record<string, unknown> | undefined, name: string): T => {\n if (functionGlobals && Object.prototype.hasOwnProperty.call(functionGlobals, name)) {\n return functionGlobals[name] as T;\n }\n\n return getGlobalConfigValue<T>(qpqConfig, name);\n};\n\nexport const getUserDirectories = (configs: QPQConfig): UserDirectoryQPQConfigSetting[] => {\n const userDirectories = getConfigSettings<UserDirectoryQPQConfigSetting>(configs, QPQCoreConfigSettingType.userDirectory);\n\n return userDirectories;\n};\n\nexport const getOwnedUserDirectories = (qpqConifg: QPQConfig): UserDirectoryQPQConfigSetting[] => {\n const userDirectories = getUserDirectories(qpqConifg);\n\n return getOwnedItems(userDirectories, qpqConifg);\n};\n\nexport const getUserDirectoryByName = (userDirectoryName: string, qpqConifg: QPQConfig): UserDirectoryQPQConfigSetting => {\n const userDirectory = getUserDirectories(qpqConifg).find((ud) => ud.name === userDirectoryName);\n\n if (!userDirectory) {\n throw new Error(`UserDirectory not found: ${userDirectoryName}`);\n }\n\n return userDirectory;\n};\n\nexport const getAllParameterConfigs = (qpqConfig: QPQConfig): ParameterQPQConfigSetting[] => {\n const parameters = getConfigSettings<ParameterQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.parameter);\n\n return parameters;\n};\n\nexport const getParameterConfig = (name: string, qpqConfig: QPQConfig): ParameterQPQConfigSetting => {\n const parameters = getConfigSettings<ParameterQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.parameter);\n\n const param = parameters.find((p) => p.key === name);\n\n if (!param) {\n throw new Error(`Parameter ${name} not found`);\n }\n\n return param;\n};\n\nexport const getOwnedParameterConfigs = (qpqConfig: QPQConfig): ParameterQPQConfigSetting[] => {\n const parameters = getAllParameterConfigs(qpqConfig);\n\n return getOwnedItems(parameters, qpqConfig);\n};\n\nexport const getUniqueKeyForSetting = (setting: QPQConfigSetting) => {\n const type = setting.configSettingType.split('/').pop();\n const key = setting.uniqueKey;\n\n return `${type}${key}`;\n};\n\nexport const getQueueQueueProcessors = (name: string, qpqConfig: QPQConfig): QpqQueueProcessors => {\n const seoConfigs = getConfigSettings<QueueQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.queue);\n\n const queueConfig = seoConfigs.find((c) => c.name === name);\n\n return queueConfig?.qpqQueueProcessors || {};\n};\n\nexport const convertCustomFullyQualifiedResourceToGeneric = <T extends string>(resource: CustomFullyQualifiedResource<T>): FullyQualifiedResource => {\n type KeyType = KeyOf<CustomFullyQualifiedResource<T>>;\n const key: KeyType = Array.from(Object.keys(resource)).find(\n (k) => k !== 'module' && k !== 'application' && k !== 'feature' && k !== 'environment',\n ) as any as KeyType;\n\n const resourceName = resource[key as T];\n\n return {\n module: resource.module,\n application: resource.application,\n feature: resource.feature,\n environment: resource.environment,\n resourceName: resourceName,\n };\n};\n\nexport const getFullyQualifiedResourceName = (qpqConfig: QPQConfig, resourceName: string, config?: QPQConfigSetting): FullyQualifiedResource => {\n const confApplication = getApplicationName(qpqConfig);\n const confEnvironment = getApplicationModuleEnvironment(qpqConfig);\n const confFeature = getApplicationModuleFeature(qpqConfig);\n const confModule = getApplicationModuleName(qpqConfig);\n\n return {\n resourceName: config?.owner?.resourceNameOverride || resourceName,\n\n application: config?.owner?.application || confApplication,\n environment: config?.owner?.environment || confEnvironment,\n module: config?.owner?.module || confModule,\n feature: config?.owner?.feature || confFeature || '',\n };\n};\n\n// Fully Qualified Resource Names\nexport const getKeyValueStoreFullyQualifiedResourceName = (kvsName: string, qpqConfig: QPQConfig): FullyQualifiedResource => {\n const storeConfig = getKeyValueStoreByName(qpqConfig, kvsName);\n\n return getFullyQualifiedResourceName(qpqConfig, kvsName, storeConfig);\n};\n\nexport const isSameResource = (resourceA: FullyQualifiedResource, resourceB: FullyQualifiedResource): boolean => {\n return (\n resourceA.application === resourceB.application &&\n resourceA.environment === resourceB.environment &&\n resourceA.feature === resourceB.feature &&\n resourceA.module === resourceB.module &&\n resourceA.resourceName === resourceB.resourceName\n );\n};\n\nexport const getFullUrlFromConfigUrl = (configUrl: ConfigUrl, qpqConfig: QPQConfig): string => {\n if (typeof configUrl === 'string') {\n return configUrl;\n }\n\n const confEnvironment = getApplicationModuleEnvironment(qpqConfig);\n const confFeature = getApplicationModuleFeature(qpqConfig);\n\n let fullUrl = `${configUrl.domain}`;\n\n if (confEnvironment !== 'production') {\n fullUrl = `${confEnvironment}.${fullUrl}`;\n }\n\n if (confFeature) {\n fullUrl = `${confFeature}.${fullUrl}`;\n }\n\n if (configUrl.module) {\n fullUrl = `${configUrl.module}.${fullUrl}`;\n }\n\n if (configUrl.path) {\n fullUrl = `${fullUrl}${configUrl.path}`;\n }\n\n fullUrl = `${configUrl.protocol}://${fullUrl}`;\n\n console.log(fullUrl);\n\n return fullUrl;\n};\n"]}
1
+ {"version":3,"file":"qpqCoreUtils.js","sourceRoot":"","sources":["../../src/qpqCoreUtils.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ActionProcessorsQPQConfigSetting,\n AiQPQConfigSetting,\n ApiBuildPathQPQConfigSetting,\n ApplicationQPQConfigSetting,\n BackendBundleOptions,\n BackendBundleOptionsQPQConfigSetting,\n ClaudeAIQPQConfigSetting,\n defineJavascriptRuntime,\n DeployEventsQPQConfigSetting,\n EmailTemplates,\n EnvironmentSettingsQPQConfigSetting,\n EventBusQPQConfigSetting,\n FederatedModuleStoreQPQConfigSetting,\n FrontendBundleOptions,\n FrontendBundleOptionsQPQConfigSetting,\n GlobalQPQConfigSetting,\n GraphDatabaseQPQConfigSetting,\n InlineFunctionQPQConfigSetting,\n JavascriptRuntimeQPQConfigSetting,\n KeyValueStoreQPQConfigSetting,\n ModuleQPQConfigSetting,\n NotifyErrorQPQConfigSetting,\n ParameterQPQConfigSetting,\n QPQConfig,\n QPQConfigItem,\n QPQConfigSetting,\n QPQCoreConfigSettingType,\n QpqQueueProcessors,\n QueueQPQConfigSetting,\n ScheduleQPQConfigSetting,\n SecretQPQConfigSetting,\n ServiceSettingsQPQConfigSetting,\n StorageDriveQPQConfigSetting,\n UserDirectoryQPQConfigSetting,\n VirtualNetworkQPQConfigSetting,\n} from './config';\nimport {\n ConfigUrl,\n CrossModuleOwner,\n CrossServiceResourceName,\n CustomFullyQualifiedResource,\n FullyQualifiedResource,\n KeyOf,\n QpqFunctionRuntime,\n ResourceName,\n} from './types';\nimport { isQpqFunctionRuntimeAdvanced } from './utils';\n\n/**\n * Flattens a QPQConfig array into a single array of QPQConfigSetting objects.\n * If a QPQConfigItem has a configSettingType of QPQCoreConfigSettingType.environmentSettings,\n * and its environment matches the current environment, its settings will be added to the flattened array.\n * @function\n * @param {QPQConfig} qpqConfig - The input QPQConfig array to be flattened.\n * @returns {QPQConfigSetting[]} - The flattened array of QPQConfigSetting objects\n */\nexport const flattenQpqConfig = (qpqConfig: QPQConfig): QPQConfigSetting[] => {\n let environment = 'development';\n let service: string | undefined;\n\n /**\n * A recursive helper function that flattens an array of QPQConfigItem objects.\n * @function\n * @param {QPQConfigItem[]} configItems - An array of QPQConfigItem objects to be flattened.\n * @param {QPQConfigSetting[]} accumulator - An accumulator array for storing the flattened QPQConfigSetting objects.\n * @returns {QPQConfigSetting[]} - The flattened array of QPQConfigSetting objects.\n */\n const flatten = (configItems: QPQConfigItem[], accumulator: QPQConfigSetting[] = []): QPQConfigSetting[] => {\n return configItems.reduce<QPQConfigSetting[]>((acc, item) => {\n if (Array.isArray(item)) {\n return flatten(item, acc);\n } else {\n // If its a appName config item, update the environment variable\n if (item.configSettingType === QPQCoreConfigSettingType.appName) {\n environment = (item as ApplicationQPQConfigSetting).environment || 'development';\n }\n\n // If its a moduleName config item, update the service variable\n else if (item.configSettingType === QPQCoreConfigSettingType.moduleName) {\n service = (item as ModuleQPQConfigSetting).moduleName;\n }\n\n // Otherwise if its an environmentSettings config item, flatten out the child settings\n // for the current environment, falling back to the '*' key if present.\n else if (item.configSettingType === QPQCoreConfigSettingType.environmentSettings) {\n const envSetting = item as EnvironmentSettingsQPQConfigSetting;\n const settings = envSetting.settingsByEnvironment[environment] ?? envSetting.settingsByEnvironment['*'] ?? [];\n\n return flatten(settings, acc);\n }\n\n // Otherwise if its a serviceSettings config item, flatten out the child settings\n // for the current service, falling back to the '*' key if present.\n else if (item.configSettingType === QPQCoreConfigSettingType.serviceSettings) {\n if (!service) {\n throw new Error('defineServiceSettings requires a module to be set first via defineModule (usually through defineApplicationModule)');\n }\n\n const svcSetting = item as ServiceSettingsQPQConfigSetting;\n const settings = svcSetting.settingsByService[service] ?? svcSetting.settingsByService['*'] ?? [];\n\n return flatten(settings, acc);\n }\n\n // Otherwise its just a regular config item, add it to the list\n return [...acc, item];\n }\n }, accumulator);\n };\n\n return flatten(qpqConfig);\n};\n\n/**\n * Filters and returns the config settings of a specific type from a QPQConfig array.\n * @function\n * @template T - The specific type of QPQConfigSetting to filter.\n * @param {QPQConfig} qpqConfig - The input QPQConfig array.\n * @param {string} configSettingType - The specific config setting type to filter.\n * @returns {T[]} - An array of filtered config settings of the specified type.\n */\nexport const getConfigSettings = <T extends QPQConfigSetting>(qpqConfig: QPQConfig, configSettingType: string): T[] => {\n const flatConfig = flattenQpqConfig(qpqConfig);\n return flatConfig.filter((c) => c.configSettingType === configSettingType) as T[];\n};\n\n/**\n * Retrieves a single config setting of a specific type from a QPQConfig array.\n * @function\n * @template T - The specific type of QPQConfigSetting to retrieve.\n * @param {QPQConfig} qpqConfig - The input QPQConfig array.\n * @param {string} serviceInfrastructureConfigType - The specific config setting type to retrieve.\n * @returns {T | undefined} - The found config setting of the specified type or undefined if not found.\n */\nexport const getConfigSetting = <T extends QPQConfigSetting>(qpqConfig: QPQConfig, serviceInfrastructureConfigType: string): T | undefined => {\n const [setting] = getConfigSettings<T>(qpqConfig, serviceInfrastructureConfigType);\n return setting;\n};\n\n/**\n * Retrieves the ApplicationModuleSetting from a QPQConfig array.\n * @function\n * @param {QPQConfig} qpqConfig - The input QPQConfig array.\n * @returns {ApplicationQPQConfigSetting} - The ApplicationQPQConfigSetting from the QPQConfig array.\n * @throws {Error} - If the ApplicationQPQConfigSetting is not found in the QPQConfig array.\n */\nexport const getApplicationConfigSetting = (qpqConfig: QPQConfig): ApplicationQPQConfigSetting => {\n const applicationModuleSetting = getConfigSetting<ApplicationQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.appName);\n\n if (!applicationModuleSetting) {\n throw new Error('please use defineApplication in your QPQ config');\n }\n\n return applicationModuleSetting;\n};\n\nexport const getApplicationModuleName = (qpqConfig: QPQConfig): string => {\n const moduleSetting = getConfigSetting<ModuleQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.moduleName);\n\n if (!moduleSetting) {\n throw new Error('please use defineModule in your QPQ config');\n }\n\n return moduleSetting.moduleName;\n};\n\nexport const getApplicationConfigRoot = (qpqConfig: QPQConfig): string => {\n const moduleSetting = getConfigSetting<ApplicationQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.appName);\n\n if (!moduleSetting) {\n throw new Error('please use defineApplication in your QPQ config');\n }\n\n return moduleSetting.configRoot;\n};\n\nexport const getApplicationName = (qpqConfig: QPQConfig): string => {\n return getApplicationConfigSetting(qpqConfig).applicationName;\n};\n\nexport const getApplicationModuleFeature = (qpqConfig: QPQConfig): string | undefined => {\n return getApplicationConfigSetting(qpqConfig).feature;\n};\n\nexport const getConfigRoot = (qpqConfig: QPQConfig): string => {\n return getApplicationConfigSetting(qpqConfig).configRoot;\n};\n\nexport const getApplicationModuleEnvironment = (qpqConfig: QPQConfig): string => {\n return getApplicationConfigSetting(qpqConfig).environment || 'production';\n};\n\nexport const getStorageDrives = (configs: QPQConfig): StorageDriveQPQConfigSetting[] => {\n return getConfigSettings<StorageDriveQPQConfigSetting>(configs, QPQCoreConfigSettingType.storageDrive);\n};\n\nexport const getStorageDriveByName = (storageDriveName: string, configs: QPQConfig): StorageDriveQPQConfigSetting | undefined => {\n return getStorageDrives(configs).find((sd) => sd.storageDrive === storageDriveName);\n};\n\nexport const getFederatedModuleStore = (qpqConfig: QPQConfig): FederatedModuleStoreQPQConfigSetting | undefined => {\n return getConfigSetting<FederatedModuleStoreQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.federatedModuleStore);\n};\n\nexport const getQueues = (configs: QPQConfig): QueueQPQConfigSetting[] => {\n return getConfigSettings<QueueQPQConfigSetting>(configs, QPQCoreConfigSettingType.queue);\n};\n\nexport const getOwnedQueues = (configs: QPQConfig): QueueQPQConfigSetting[] => {\n return getOwnedItems(getQueues(configs), configs);\n};\n\nexport const getNotifyErrorConfigs = (configs: QPQConfig): NotifyErrorQPQConfigSetting[] => {\n return getConfigSettings<NotifyErrorQPQConfigSetting>(configs, QPQCoreConfigSettingType.notifyError);\n};\n\nexport const getQueueByName = (configs: QPQConfig, name: string): QueueQPQConfigSetting | undefined => {\n return getQueues(configs).find((q) => q.name === name);\n};\n\n// A FIFO queue can only be fed by a FIFO event bus - standard SNS topics cannot deliver\n// to FIFO SQS queues at all. Called at deploy/startup time (the queue and bus are separate\n// settings, so defineQueue can't validate this on its own).\nexport const assertFifoQueueEventBusSubscriptionsAreValid = (qpqConfig: QPQConfig): void => {\n const invalidSubscriptions = getQueues(qpqConfig)\n .filter((queue) => queue.isFifo)\n .flatMap((queue) =>\n queue.eventBusSubscriptions\n .filter((eventBusName) => !getEventBusConfigByName(eventBusName, qpqConfig)?.isFifo)\n .map((eventBusName) => `queue [${queue.name}] -> event bus [${eventBusName}]`),\n );\n\n if (invalidSubscriptions.length > 0) {\n throw new Error(\n `FIFO queues can only subscribe to FIFO event buses (standard SNS topics cannot deliver to FIFO SQS queues): ${invalidSubscriptions.join(', ')}`,\n );\n }\n};\n\nexport const getStorageDriveNames = (configs: QPQConfig): string[] => {\n const storageDriveNames = getConfigSettings<StorageDriveQPQConfigSetting>(configs, QPQCoreConfigSettingType.storageDrive).map(\n (sd) => sd.storageDrive,\n );\n\n return storageDriveNames;\n};\n\nexport const getAllEventBusConfigs = (qpqConfig: QPQConfig): EventBusQPQConfigSetting[] => {\n const eventBuses = getConfigSettings<EventBusQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.eventBus);\n\n return eventBuses;\n};\n\nexport const getAllAiConfigs = (qpqConfig: QPQConfig): AiQPQConfigSetting[] => {\n return getConfigSettings<AiQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.ai);\n};\n\n// Always resolves - falls back to the defineJavascriptRuntime defaults when no setting is present\nexport const getJavascriptRuntimeConfig = (qpqConfig: QPQConfig): JavascriptRuntimeQPQConfigSetting => {\n return getConfigSetting<JavascriptRuntimeQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.javascriptRuntime) ?? defineJavascriptRuntime();\n};\n\nexport const getAllClaudeAiConfigs = (qpqConfig: QPQConfig): ClaudeAIQPQConfigSetting[] => {\n const claudeAis = getConfigSettings<ClaudeAIQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.claudeAi);\n\n return claudeAis;\n};\n\nexport const getOwnedEventBusConfigs = (qpqConfig: QPQConfig): EventBusQPQConfigSetting[] => {\n const ownedEventBusConfigs = getOwnedItems(getAllEventBusConfigs(qpqConfig), qpqConfig);\n\n return ownedEventBusConfigs;\n};\n\nexport const getEventBusConfigByName = (eventBusName: string, qpqConfig: QPQConfig): EventBusQPQConfigSetting | undefined => {\n const allConfigs = getAllEventBusConfigs(qpqConfig);\n\n const eventBusConfig = allConfigs.find((eb) => eb.owner?.resourceNameOverride === eventBusName);\n\n if (eventBusConfig) {\n return eventBusConfig;\n }\n\n return allConfigs.find((eb) => eb.name === eventBusName);\n};\n\nexport const getOwnedItems = <T extends QPQConfigSetting>(settings: T[], qpqConfig: QPQConfig): T[] => {\n const appModuleName = getApplicationModuleName(qpqConfig);\n const appName = getApplicationName(qpqConfig);\n const appFeature = getApplicationModuleFeature(qpqConfig);\n const appEnvironment = getApplicationModuleEnvironment(qpqConfig);\n\n return settings.filter(\n (s) =>\n !s.owner ||\n ((!s.owner.module || s.owner.module === appModuleName) &&\n (!s.owner.application || s.owner.application === appName) &&\n (s.owner.feature === undefined || (!s.owner.feature && !appFeature) || s.owner.feature === appFeature) &&\n (!s.owner.environment || s.owner.environment === appEnvironment)),\n );\n};\n\nexport const getAllKeyValueStores = <T extends object = any>(qpqConfig: QPQConfig): KeyValueStoreQPQConfigSetting<T>[] => {\n const keyValueStores = getConfigSettings<KeyValueStoreQPQConfigSetting<T>>(qpqConfig, QPQCoreConfigSettingType.keyValueStore);\n\n return keyValueStores;\n};\n\nexport const getAllGraphDatabaseConfigs = (qpqConfig: QPQConfig): GraphDatabaseQPQConfigSetting[] => {\n const graphDatabases = getConfigSettings<GraphDatabaseQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.graphDatabase);\n\n return graphDatabases;\n};\n\nexport const getDeployEventConfigs = (qpqConfig: QPQConfig): DeployEventsQPQConfigSetting[] => {\n const deployEvents = getConfigSettings<DeployEventsQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.deployEvent);\n\n return deployEvents;\n};\n\nexport const getVirualNetworkConfigs = (qpqConfig: QPQConfig): VirtualNetworkQPQConfigSetting[] => {\n return getConfigSettings<VirtualNetworkQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.virtualNetwork);\n};\n\nexport const getOwnedKeyValueStores = <T extends object = any>(qpqConfig: QPQConfig): KeyValueStoreQPQConfigSetting<T>[] => {\n return getOwnedItems(getAllKeyValueStores(qpqConfig), qpqConfig);\n};\n\nexport const getOwnedGraphDatabases = (qpqConfig: QPQConfig): GraphDatabaseQPQConfigSetting[] => {\n return getOwnedItems(getAllGraphDatabaseConfigs(qpqConfig), qpqConfig);\n};\n\nexport const getOwnedStorageDrives = (qpqConfig: QPQConfig): StorageDriveQPQConfigSetting[] => {\n return getOwnedItems(getStorageDrives(qpqConfig), qpqConfig);\n};\n\nexport const resolveCrossServiceResourceName = (resourceName: ResourceName): CrossServiceResourceName => {\n if (typeof resourceName === 'string') {\n return {\n name: resourceName,\n };\n }\n\n return resourceName;\n};\n\nexport const getKeyValueStoreByName = <T extends object = any>(\n qpqConfig: QPQConfig,\n kvsName: string,\n): KeyValueStoreQPQConfigSetting<T> | undefined => {\n const keyValueStore = getAllKeyValueStores<T>(qpqConfig).find((kvs) => kvs.keyValueStoreName === kvsName);\n\n return keyValueStore;\n};\n\nexport const getActionProcessorSources = (configs: QPQConfig): QpqFunctionRuntime[] => {\n const sources = getConfigSettings<ActionProcessorsQPQConfigSetting>(configs, QPQCoreConfigSettingType.actionProcessors).map((ap) => ap.runtime);\n\n return sources;\n};\n\nexport const getUserDirectoryEmailTemplates = (qpqConfig: QPQConfig): Record<string, EmailTemplates> => {\n const userDirectories = getConfigSettings<UserDirectoryQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.userDirectory);\n\n const record = userDirectories.reduce(\n (acc, ud) => ({\n ...acc,\n [ud.name]: ud.emailTemplates,\n }),\n {} as Record<string, EmailTemplates>,\n );\n\n return record;\n};\n\nexport const getScheduleEvents = (configs: QPQConfig): ScheduleQPQConfigSetting[] => {\n return getConfigSettings<ScheduleQPQConfigSetting>(configs, QPQCoreConfigSettingType.schedule);\n};\n\nexport const getOwnedScheduleEvents = (qpqConfig: QPQConfig): ScheduleQPQConfigSetting[] => {\n return getOwnedItems(getScheduleEvents(qpqConfig), qpqConfig);\n};\n\nexport const getQueueSrcEntries = (configs: QPQConfig): QpqFunctionRuntime[] => {\n const queueConfigs = getConfigSettings<QueueQPQConfigSetting>(configs, QPQCoreConfigSettingType.queue);\n\n return queueConfigs.reduce((acc, qc) => [...acc, ...Object.values(qc.qpqQueueProcessors)], [] as QpqFunctionRuntime[]);\n};\n\nexport const getUserDirectorySrcEntries = (qpqConfig: QPQConfig): QpqFunctionRuntime[] => {\n // We just want the ones this service owns.\n const userConfigs = getOwnedUserDirectories(qpqConfig);\n\n return userConfigs\n .reduce((acc, ud) => [...acc, ...Object.values(ud.emailTemplates), ...Object.values(ud.customAuthRuntime || {})], [] as QpqFunctionRuntime[])\n .filter((se) => !!se);\n};\n\nexport const getAllInlineFunctions = (qpqConfig: QPQConfig): InlineFunctionQPQConfigSetting[] => {\n return getConfigSettings<InlineFunctionQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.inlineFunction);\n};\n\nexport const getOwnedInlineFunctions = (qpqConfig: QPQConfig): InlineFunctionQPQConfigSetting[] => {\n return getOwnedItems(getAllInlineFunctions(qpqConfig), qpqConfig);\n};\n\n// Used in bundlers to know where and what to build and index\nexport const getAllSrcEntries = (qpqConfig: QPQConfig): QpqFunctionRuntime[] => {\n const result = [\n ...getActionProcessorSources(qpqConfig),\n ...getScheduleEvents(qpqConfig).map((r) => r.runtime),\n ...getQueueSrcEntries(qpqConfig),\n ...getUserDirectorySrcEntries(qpqConfig),\n ...getDeployEventConfigs(qpqConfig).map((r) => r.runtime),\n ...getStorageDrives(qpqConfig).flatMap((sd) => [sd.onEvent?.create, sd.onEvent?.delete].filter((r) => !!r) as QpqFunctionRuntime[]),\n ...getAllInlineFunctions(qpqConfig).map((f) => f.runtime),\n ];\n\n return result;\n};\n\nexport const getApiBuildPath = (qpqConfig: QPQConfig): string => {\n const [apiBuildPathConfig] = getConfigSettings<ApiBuildPathQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.apiBuildPath);\n\n if (!apiBuildPathConfig) {\n throw new Error(`Can not find app base path use defineApiBuildPath or defineApplicationModule`);\n }\n\n return apiBuildPathConfig.apiBuildPath;\n};\n\nexport const getSrcFilenameFromQpqFunctionRuntime = (qpqFunctionRuntime: QpqFunctionRuntime): string => {\n if (isQpqFunctionRuntimeAdvanced(qpqFunctionRuntime)) {\n return qpqFunctionRuntime.relativePath.split('/').pop() || '';\n }\n\n const [srcPath] = qpqFunctionRuntime.split('::');\n return srcPath.split('/').pop() || '';\n};\n\nexport const getSecretByName = (secretName: string, qpqConfig: QPQConfig): SecretQPQConfigSetting => {\n const secrets = getConfigSettings<SecretQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.secret);\n\n const secret = secrets.find((s) => s.key === secretName);\n\n if (!secret) {\n throw new Error(`Can not find secret [${secretName}]`);\n }\n\n return secret;\n};\n\nexport const getAllSecretConfigs = (qpqConfig: QPQConfig): SecretQPQConfigSetting[] => {\n const secrets = getConfigSettings<SecretQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.secret);\n\n return secrets;\n};\n\nexport const getOwnedSecrets = (qpqConfig: QPQConfig): SecretQPQConfigSetting[] => {\n const secrets = getAllSecretConfigs(qpqConfig);\n\n return getOwnedItems(secrets, qpqConfig);\n};\n\nexport const getGlobalConfigValue = <T>(qpqConfig: QPQConfig, name: string): T => {\n const global = getConfigSettings<GlobalQPQConfigSetting<T>>(qpqConfig, QPQCoreConfigSettingType.global).find((g) => g.key === name);\n\n if (!global) {\n throw new Error(`Global config ${name} not found`);\n }\n\n return global.value;\n};\n\n// Resolves a global by name, giving precedence to globals declared on the\n// executing function (functionGlobals) before falling back to the service-wide\n// config global. Throws (via getGlobalConfigValue) if the name is found in neither.\nexport const resolveGlobalValue = <T>(qpqConfig: QPQConfig, functionGlobals: Record<string, unknown> | undefined, name: string): T => {\n if (functionGlobals && Object.prototype.hasOwnProperty.call(functionGlobals, name)) {\n return functionGlobals[name] as T;\n }\n\n return getGlobalConfigValue<T>(qpqConfig, name);\n};\n\nexport const getUserDirectories = (configs: QPQConfig): UserDirectoryQPQConfigSetting[] => {\n const userDirectories = getConfigSettings<UserDirectoryQPQConfigSetting>(configs, QPQCoreConfigSettingType.userDirectory);\n\n return userDirectories;\n};\n\nexport const getOwnedUserDirectories = (qpqConifg: QPQConfig): UserDirectoryQPQConfigSetting[] => {\n const userDirectories = getUserDirectories(qpqConifg);\n\n return getOwnedItems(userDirectories, qpqConifg);\n};\n\nexport const getUserDirectoryByName = (userDirectoryName: string, qpqConifg: QPQConfig): UserDirectoryQPQConfigSetting => {\n const userDirectory = getUserDirectories(qpqConifg).find((ud) => ud.name === userDirectoryName);\n\n if (!userDirectory) {\n throw new Error(`UserDirectory not found: ${userDirectoryName}`);\n }\n\n return userDirectory;\n};\n\nexport const getAllParameterConfigs = (qpqConfig: QPQConfig): ParameterQPQConfigSetting[] => {\n const parameters = getConfigSettings<ParameterQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.parameter);\n\n return parameters;\n};\n\nexport const getParameterConfig = (name: string, qpqConfig: QPQConfig): ParameterQPQConfigSetting => {\n const parameters = getConfigSettings<ParameterQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.parameter);\n\n const param = parameters.find((p) => p.key === name);\n\n if (!param) {\n throw new Error(`Parameter ${name} not found`);\n }\n\n return param;\n};\n\nexport const getOwnedParameterConfigs = (qpqConfig: QPQConfig): ParameterQPQConfigSetting[] => {\n const parameters = getAllParameterConfigs(qpqConfig);\n\n return getOwnedItems(parameters, qpqConfig);\n};\n\n/**\n * Merges every `defineBackendBundleOptions` in the config into a single set of\n * bundler directives. Services compose config from many fragments, so each\n * fragment can declare the build quirks of its own dependencies.\n */\nexport const getBackendBundleOptions = (qpqConfig: QPQConfig): Required<BackendBundleOptions> => {\n const settings = getConfigSettings<BackendBundleOptionsQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.backendBundleOptions);\n\n return {\n externals: settings.flatMap((setting) => setting.externals),\n ignoreModules: settings.flatMap((setting) => setting.ignoreModules),\n ignoreWarnings: settings.flatMap((setting) => setting.ignoreWarnings),\n };\n};\n\n/**\n * Merges every `defineFrontendBundleOptions` in the config into a single set\n * of views-bundler directives.\n */\nexport const getFrontendBundleOptions = (qpqConfig: QPQConfig): Required<FrontendBundleOptions> => {\n const settings = getConfigSettings<FrontendBundleOptionsQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.frontendBundleOptions);\n\n return {\n sharedSingletons: settings.flatMap((setting) => setting.sharedSingletons),\n };\n};\n\nexport const getUniqueKeyForSetting = (setting: QPQConfigSetting) => {\n const type = setting.configSettingType.split('/').pop();\n const key = setting.uniqueKey;\n\n return `${type}${key}`;\n};\n\nexport const getQueueQueueProcessors = (name: string, qpqConfig: QPQConfig): QpqQueueProcessors => {\n const seoConfigs = getConfigSettings<QueueQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.queue);\n\n const queueConfig = seoConfigs.find((c) => c.name === name);\n\n return queueConfig?.qpqQueueProcessors || {};\n};\n\nexport const convertCustomFullyQualifiedResourceToGeneric = <T extends string>(resource: CustomFullyQualifiedResource<T>): FullyQualifiedResource => {\n type KeyType = KeyOf<CustomFullyQualifiedResource<T>>;\n const key: KeyType = Array.from(Object.keys(resource)).find(\n (k) => k !== 'module' && k !== 'application' && k !== 'feature' && k !== 'environment',\n ) as any as KeyType;\n\n const resourceName = resource[key as T];\n\n return {\n module: resource.module,\n application: resource.application,\n feature: resource.feature,\n environment: resource.environment,\n resourceName: resourceName,\n };\n};\n\nexport const getFullyQualifiedResourceName = (qpqConfig: QPQConfig, resourceName: string, config?: QPQConfigSetting): FullyQualifiedResource => {\n const confApplication = getApplicationName(qpqConfig);\n const confEnvironment = getApplicationModuleEnvironment(qpqConfig);\n const confFeature = getApplicationModuleFeature(qpqConfig);\n const confModule = getApplicationModuleName(qpqConfig);\n\n return {\n resourceName: config?.owner?.resourceNameOverride || resourceName,\n\n application: config?.owner?.application || confApplication,\n environment: config?.owner?.environment || confEnvironment,\n module: config?.owner?.module || confModule,\n feature: config?.owner?.feature || confFeature || '',\n };\n};\n\n// Fully Qualified Resource Names\nexport const getKeyValueStoreFullyQualifiedResourceName = (kvsName: string, qpqConfig: QPQConfig): FullyQualifiedResource => {\n const storeConfig = getKeyValueStoreByName(qpqConfig, kvsName);\n\n return getFullyQualifiedResourceName(qpqConfig, kvsName, storeConfig);\n};\n\nexport const isSameResource = (resourceA: FullyQualifiedResource, resourceB: FullyQualifiedResource): boolean => {\n return (\n resourceA.application === resourceB.application &&\n resourceA.environment === resourceB.environment &&\n resourceA.feature === resourceB.feature &&\n resourceA.module === resourceB.module &&\n resourceA.resourceName === resourceB.resourceName\n );\n};\n\nexport const getFullUrlFromConfigUrl = (configUrl: ConfigUrl, qpqConfig: QPQConfig): string => {\n if (typeof configUrl === 'string') {\n return configUrl;\n }\n\n const confEnvironment = getApplicationModuleEnvironment(qpqConfig);\n const confFeature = getApplicationModuleFeature(qpqConfig);\n\n let fullUrl = `${configUrl.domain}`;\n\n if (confEnvironment !== 'production') {\n fullUrl = `${confEnvironment}.${fullUrl}`;\n }\n\n if (confFeature) {\n fullUrl = `${confFeature}.${fullUrl}`;\n }\n\n if (configUrl.module) {\n fullUrl = `${configUrl.module}.${fullUrl}`;\n }\n\n if (configUrl.path) {\n fullUrl = `${fullUrl}${configUrl.path}`;\n }\n\n fullUrl = `${configUrl.protocol}://${fullUrl}`;\n\n console.log(fullUrl);\n\n return fullUrl;\n};\n"]}
@@ -59,6 +59,8 @@ export declare const qpqCoreUtils: {
59
59
  getAllParameterConfigs: (qpqConfig: import("./config").QPQConfig) => import("./config").ParameterQPQConfigSetting[];
60
60
  getParameterConfig: (name: string, qpqConfig: import("./config").QPQConfig) => import("./config").ParameterQPQConfigSetting;
61
61
  getOwnedParameterConfigs: (qpqConfig: import("./config").QPQConfig) => import("./config").ParameterQPQConfigSetting[];
62
+ getBackendBundleOptions: (qpqConfig: import("./config").QPQConfig) => Required<import("./config").BackendBundleOptions>;
63
+ getFrontendBundleOptions: (qpqConfig: import("./config").QPQConfig) => Required<import("./config").FrontendBundleOptions>;
62
64
  getUniqueKeyForSetting: (setting: import("./config").QPQConfigSetting) => string;
63
65
  getQueueQueueProcessors: (name: string, qpqConfig: import("./config").QPQConfig) => import("./config").QpqQueueProcessors;
64
66
  convertCustomFullyQualifiedResourceToGeneric: <T extends string>(resource: import("./types").CustomFullyQualifiedResource<T>) => import("./types").FullyQualifiedResource;
@@ -10,6 +10,8 @@ export declare enum QPQCoreConfigSettingType {
10
10
  parameter = "@quidproquo-core/config/parameter",
11
11
  actionProcessors = "@quidproquo-core/config/actionProcessors",
12
12
  apiBuildPath = "@quidproquo-core/config/apiBuildPath",
13
+ backendBundleOptions = "@quidproquo-core/config/BackendBundleOptions",
14
+ frontendBundleOptions = "@quidproquo-core/config/FrontendBundleOptions",
13
15
  queue = "@quidproquo-core/config/Queue",
14
16
  eventBus = "@quidproquo-core/config/EventBus",
15
17
  userDirectory = "@quidproquo-core/config/UserDirectory",
@@ -10,6 +10,8 @@ export var QPQCoreConfigSettingType;
10
10
  QPQCoreConfigSettingType["parameter"] = "@quidproquo-core/config/parameter";
11
11
  QPQCoreConfigSettingType["actionProcessors"] = "@quidproquo-core/config/actionProcessors";
12
12
  QPQCoreConfigSettingType["apiBuildPath"] = "@quidproquo-core/config/apiBuildPath";
13
+ QPQCoreConfigSettingType["backendBundleOptions"] = "@quidproquo-core/config/BackendBundleOptions";
14
+ QPQCoreConfigSettingType["frontendBundleOptions"] = "@quidproquo-core/config/FrontendBundleOptions";
13
15
  QPQCoreConfigSettingType["queue"] = "@quidproquo-core/config/Queue";
14
16
  QPQCoreConfigSettingType["eventBus"] = "@quidproquo-core/config/EventBus";
15
17
  QPQCoreConfigSettingType["userDirectory"] = "@quidproquo-core/config/UserDirectory";
@@ -1 +1 @@
1
- {"version":3,"file":"QPQConfig.js","sourceRoot":"","sources":["../../../src/config/QPQConfig.ts"],"names":[],"mappings":"AAEA,MAAM,CAAN,IAAY,wBA0BX;AA1BD,WAAY,wBAAwB;IAClC,6DAAiC,CAAA;IACjC,uEAA2C,CAAA;IAC3C,6EAAiD,CAAA;IACjD,iFAAqD,CAAA;IACrD,yEAA6C,CAAA;IAC7C,qEAAyC,CAAA;IACzC,qEAAyC,CAAA;IACzC,2EAA+C,CAAA;IAC/C,yFAA6D,CAAA;IAC7D,iFAAqD,CAAA;IACrD,mEAAuC,CAAA;IACvC,yEAA6C,CAAA;IAC7C,mFAAuD,CAAA;IACvD,mFAAuD,CAAA;IACvD,+EAAmD,CAAA;IACnD,+FAAmE,CAAA;IACnE,uFAA2D,CAAA;IAC3D,+EAAmD,CAAA;IACnD,yEAA6C,CAAA;IAC7C,mFAAuD,CAAA;IACvD,qFAAyD,CAAA;IACzD,+EAAmD,CAAA;IACnD,qFAAyD,CAAA;IACzD,2FAA+D,CAAA;IAC/D,iGAAqE,CAAA;AACvE,CAAC,EA1BW,wBAAwB,KAAxB,wBAAwB,QA0BnC","sourcesContent":["import { CrossModuleOwner } from '../types';\n\nexport enum QPQCoreConfigSettingType {\n ai = '@quidproquo-core/config/Ai',\n appName = '@quidproquo-core/config/AppName',\n moduleName = '@quidproquo-core/config/moduleName',\n storageDrive = '@quidproquo-core/config/storageDrive',\n schedule = '@quidproquo-core/config/schedule',\n secret = '@quidproquo-core/config/secret',\n global = '@quidproquo-core/config/global',\n parameter = '@quidproquo-core/config/parameter',\n actionProcessors = '@quidproquo-core/config/actionProcessors',\n apiBuildPath = '@quidproquo-core/config/apiBuildPath',\n queue = '@quidproquo-core/config/Queue',\n eventBus = '@quidproquo-core/config/EventBus',\n userDirectory = '@quidproquo-core/config/UserDirectory',\n keyValueStore = '@quidproquo-core/config/KeyValueStore',\n configValue = '@quidproquo-core/config/ConfigValue',\n environmentSettings = '@quidproquo-core/config/EnvironmentSettings',\n serviceSettings = '@quidproquo-core/config/ServiceSettings',\n deployEvent = '@quidproquo-core/config/DeployEvent',\n claudeAi = '@quidproquo-core/config/ClaudeAi',\n graphDatabase = '@quidproquo-core/config/GraphDatabase',\n virtualNetwork = '@quidproquo-core/config/VirtualNetwork',\n notifyError = '@quidproquo-core/config/notifyError',\n inlineFunction = '@quidproquo-core/config/InlineFunction',\n javascriptRuntime = '@quidproquo-core/config/JavascriptRuntime',\n federatedModuleStore = '@quidproquo-core/config/FederatedModuleStore',\n}\n\nexport interface QPQConfigSetting {\n configSettingType: string;\n uniqueKey: string;\n\n owner?: CrossModuleOwner;\n}\n\nexport interface QPQConfigAdvancedSettings {\n deprecated?: boolean;\n}\n\nexport type QPQConfigItem = QPQConfigSetting | QPQConfigItem[];\nexport type QPQConfig = QPQConfigItem[];\n"]}
1
+ {"version":3,"file":"QPQConfig.js","sourceRoot":"","sources":["../../../src/config/QPQConfig.ts"],"names":[],"mappings":"AAEA,MAAM,CAAN,IAAY,wBA4BX;AA5BD,WAAY,wBAAwB;IAClC,6DAAiC,CAAA;IACjC,uEAA2C,CAAA;IAC3C,6EAAiD,CAAA;IACjD,iFAAqD,CAAA;IACrD,yEAA6C,CAAA;IAC7C,qEAAyC,CAAA;IACzC,qEAAyC,CAAA;IACzC,2EAA+C,CAAA;IAC/C,yFAA6D,CAAA;IAC7D,iFAAqD,CAAA;IACrD,iGAAqE,CAAA;IACrE,mGAAuE,CAAA;IACvE,mEAAuC,CAAA;IACvC,yEAA6C,CAAA;IAC7C,mFAAuD,CAAA;IACvD,mFAAuD,CAAA;IACvD,+EAAmD,CAAA;IACnD,+FAAmE,CAAA;IACnE,uFAA2D,CAAA;IAC3D,+EAAmD,CAAA;IACnD,yEAA6C,CAAA;IAC7C,mFAAuD,CAAA;IACvD,qFAAyD,CAAA;IACzD,+EAAmD,CAAA;IACnD,qFAAyD,CAAA;IACzD,2FAA+D,CAAA;IAC/D,iGAAqE,CAAA;AACvE,CAAC,EA5BW,wBAAwB,KAAxB,wBAAwB,QA4BnC","sourcesContent":["import { CrossModuleOwner } from '../types';\n\nexport enum QPQCoreConfigSettingType {\n ai = '@quidproquo-core/config/Ai',\n appName = '@quidproquo-core/config/AppName',\n moduleName = '@quidproquo-core/config/moduleName',\n storageDrive = '@quidproquo-core/config/storageDrive',\n schedule = '@quidproquo-core/config/schedule',\n secret = '@quidproquo-core/config/secret',\n global = '@quidproquo-core/config/global',\n parameter = '@quidproquo-core/config/parameter',\n actionProcessors = '@quidproquo-core/config/actionProcessors',\n apiBuildPath = '@quidproquo-core/config/apiBuildPath',\n backendBundleOptions = '@quidproquo-core/config/BackendBundleOptions',\n frontendBundleOptions = '@quidproquo-core/config/FrontendBundleOptions',\n queue = '@quidproquo-core/config/Queue',\n eventBus = '@quidproquo-core/config/EventBus',\n userDirectory = '@quidproquo-core/config/UserDirectory',\n keyValueStore = '@quidproquo-core/config/KeyValueStore',\n configValue = '@quidproquo-core/config/ConfigValue',\n environmentSettings = '@quidproquo-core/config/EnvironmentSettings',\n serviceSettings = '@quidproquo-core/config/ServiceSettings',\n deployEvent = '@quidproquo-core/config/DeployEvent',\n claudeAi = '@quidproquo-core/config/ClaudeAi',\n graphDatabase = '@quidproquo-core/config/GraphDatabase',\n virtualNetwork = '@quidproquo-core/config/VirtualNetwork',\n notifyError = '@quidproquo-core/config/notifyError',\n inlineFunction = '@quidproquo-core/config/InlineFunction',\n javascriptRuntime = '@quidproquo-core/config/JavascriptRuntime',\n federatedModuleStore = '@quidproquo-core/config/FederatedModuleStore',\n}\n\nexport interface QPQConfigSetting {\n configSettingType: string;\n uniqueKey: string;\n\n owner?: CrossModuleOwner;\n}\n\nexport interface QPQConfigAdvancedSettings {\n deprecated?: boolean;\n}\n\nexport type QPQConfigItem = QPQConfigSetting | QPQConfigItem[];\nexport type QPQConfig = QPQConfigItem[];\n"]}
@@ -0,0 +1,27 @@
1
+ import { QPQConfigSetting } from '../QPQConfig';
2
+ export interface BundleIgnoreModule {
3
+ resource: string;
4
+ context?: string;
5
+ }
6
+ export interface BundleIgnoreWarning {
7
+ module?: string;
8
+ message?: string;
9
+ }
10
+ export interface BackendBundleOptions {
11
+ externals?: string[];
12
+ ignoreModules?: BundleIgnoreModule[];
13
+ ignoreWarnings?: BundleIgnoreWarning[];
14
+ }
15
+ export interface BackendBundleOptionsQPQConfigSetting extends QPQConfigSetting {
16
+ externals: string[];
17
+ ignoreModules: BundleIgnoreModule[];
18
+ ignoreWarnings: BundleIgnoreWarning[];
19
+ }
20
+ export declare const defineBackendBundleOptions: (options: BackendBundleOptions) => BackendBundleOptionsQPQConfigSetting;
21
+ export interface FrontendBundleOptions {
22
+ sharedSingletons?: string[];
23
+ }
24
+ export interface FrontendBundleOptionsQPQConfigSetting extends QPQConfigSetting {
25
+ sharedSingletons: string[];
26
+ }
27
+ export declare const defineFrontendBundleOptions: (options: FrontendBundleOptions) => FrontendBundleOptionsQPQConfigSetting;
@@ -0,0 +1,14 @@
1
+ import { QPQCoreConfigSettingType } from '../QPQConfig';
2
+ export const defineBackendBundleOptions = (options) => ({
3
+ configSettingType: QPQCoreConfigSettingType.backendBundleOptions,
4
+ uniqueKey: JSON.stringify(options),
5
+ externals: options.externals ?? [],
6
+ ignoreModules: options.ignoreModules ?? [],
7
+ ignoreWarnings: options.ignoreWarnings ?? [],
8
+ });
9
+ export const defineFrontendBundleOptions = (options) => ({
10
+ configSettingType: QPQCoreConfigSettingType.frontendBundleOptions,
11
+ uniqueKey: JSON.stringify(options),
12
+ sharedSingletons: options.sharedSingletons ?? [],
13
+ });
14
+ //# sourceMappingURL=bundleOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bundleOptions.js","sourceRoot":"","sources":["../../../../src/config/settings/bundleOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAqC1E,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,OAA6B,EAAwC,EAAE,CAAC,CAAC;IAClH,iBAAiB,EAAE,wBAAwB,CAAC,oBAAoB;IAChE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;IAElC,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,EAAE;IAClC,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,EAAE;IAC1C,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,EAAE;CAC7C,CAAC,CAAC;AAeH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,OAA8B,EAAyC,EAAE,CAAC,CAAC;IACrH,iBAAiB,EAAE,wBAAwB,CAAC,qBAAqB;IACjE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;IAElC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,IAAI,EAAE;CACjD,CAAC,CAAC","sourcesContent":["import { QPQConfigSetting, QPQCoreConfigSettingType } from '../QPQConfig';\n\n// Regex fields are plain regex-source strings (not RegExp) — QPQ configs must\n// survive JSON serialization. Bundlers compile them with `new RegExp(...)`.\n\nexport interface BundleIgnoreModule {\n // Request to drop from the bundle, e.g. '^original-fs$'.\n resource: string;\n\n // Only drop when required from a module matching this, e.g. 'adm-zip'.\n context?: string;\n}\n\nexport interface BundleIgnoreWarning {\n module?: string;\n message?: string;\n}\n\nexport interface BackendBundleOptions {\n // Packages to require() at runtime instead of bundling. Prefer declaring\n // layer-provided packages on the layer itself (`ApiLayer.modules`) — this is\n // the escape hatch for non-layer cases.\n externals?: string[];\n\n // Optional requires inside dependencies that should resolve to nothing.\n ignoreModules?: BundleIgnoreModule[];\n\n // Known-noisy build warnings to suppress.\n ignoreWarnings?: BundleIgnoreWarning[];\n}\n\nexport interface BackendBundleOptionsQPQConfigSetting extends QPQConfigSetting {\n externals: string[];\n ignoreModules: BundleIgnoreModule[];\n ignoreWarnings: BundleIgnoreWarning[];\n}\n\nexport const defineBackendBundleOptions = (options: BackendBundleOptions): BackendBundleOptionsQPQConfigSetting => ({\n configSettingType: QPQCoreConfigSettingType.backendBundleOptions,\n uniqueKey: JSON.stringify(options),\n\n externals: options.externals ?? [],\n ignoreModules: options.ignoreModules ?? [],\n ignoreWarnings: options.ignoreWarnings ?? [],\n});\n\n// Grows on demand — fonts/images are already default-on in the views build.\nexport interface FrontendBundleOptions {\n // Substring-matched against the hoisted root dependency names; matches are\n // shared as module-federation singletons. react/react-dom/react-ish deps and\n // quidproquo-web* are always singletons — this adds app-stack ones (e.g.\n // 'chakra', 'zod') without baking package names into the bundler.\n sharedSingletons?: string[];\n}\n\nexport interface FrontendBundleOptionsQPQConfigSetting extends QPQConfigSetting {\n sharedSingletons: string[];\n}\n\nexport const defineFrontendBundleOptions = (options: FrontendBundleOptions): FrontendBundleOptionsQPQConfigSetting => ({\n configSettingType: QPQCoreConfigSettingType.frontendBundleOptions,\n uniqueKey: JSON.stringify(options),\n\n sharedSingletons: options.sharedSingletons ?? [],\n});\n"]}
@@ -4,6 +4,7 @@ export * from './apiBuildPath';
4
4
  export * from './applicationModule';
5
5
  export * from './applicationName';
6
6
  export * from './applicationVersion';
7
+ export * from './bundleOptions';
7
8
  export * from './claudeAi';
8
9
  export * from './configValue';
9
10
  export * from './definePromiseMode';
@@ -4,6 +4,7 @@ export * from './apiBuildPath';
4
4
  export * from './applicationModule';
5
5
  export * from './applicationName';
6
6
  export * from './applicationVersion';
7
+ export * from './bundleOptions';
7
8
  export * from './claudeAi';
8
9
  export * from './configValue';
9
10
  export * from './definePromiseMode';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/config/settings/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,MAAM,CAAC;AACrB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,wBAAwB,CAAC;AACvC,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC","sourcesContent":["export * from './actionProcessors';\nexport * from './ai';\nexport * from './apiBuildPath';\nexport * from './applicationModule';\nexport * from './applicationName';\nexport * from './applicationVersion';\nexport * from './claudeAi';\nexport * from './configValue';\nexport * from './definePromiseMode';\nexport * from './deployEvent';\nexport * from './emailTemplates';\nexport * from './environmentSettings';\nexport * from './eventBus';\nexport * from './federatedModuleStore';\nexport * from './global';\nexport * from './graphDatabase';\nexport * from './inlineFunction';\nexport * from './javascriptRuntime';\nexport * from './keyValueStore';\nexport * from './moduleName';\nexport * from './notifyError';\nexport * from './parameter';\nexport * from './queue';\nexport * from './schedule';\nexport * from './secret';\nexport * from './serviceSettings';\nexport * from './storageDrive';\nexport * from './userDirectory';\nexport * from './virtualNetwork';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/config/settings/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,MAAM,CAAC;AACrB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,wBAAwB,CAAC;AACvC,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC","sourcesContent":["export * from './actionProcessors';\nexport * from './ai';\nexport * from './apiBuildPath';\nexport * from './applicationModule';\nexport * from './applicationName';\nexport * from './applicationVersion';\nexport * from './bundleOptions';\nexport * from './claudeAi';\nexport * from './configValue';\nexport * from './definePromiseMode';\nexport * from './deployEvent';\nexport * from './emailTemplates';\nexport * from './environmentSettings';\nexport * from './eventBus';\nexport * from './federatedModuleStore';\nexport * from './global';\nexport * from './graphDatabase';\nexport * from './inlineFunction';\nexport * from './javascriptRuntime';\nexport * from './keyValueStore';\nexport * from './moduleName';\nexport * from './notifyError';\nexport * from './parameter';\nexport * from './queue';\nexport * from './schedule';\nexport * from './secret';\nexport * from './serviceSettings';\nexport * from './storageDrive';\nexport * from './userDirectory';\nexport * from './virtualNetwork';\n"]}
@@ -1,4 +1,4 @@
1
- import { AiQPQConfigSetting, ApplicationQPQConfigSetting, ClaudeAIQPQConfigSetting, DeployEventsQPQConfigSetting, EmailTemplates, EventBusQPQConfigSetting, FederatedModuleStoreQPQConfigSetting, GraphDatabaseQPQConfigSetting, InlineFunctionQPQConfigSetting, JavascriptRuntimeQPQConfigSetting, KeyValueStoreQPQConfigSetting, NotifyErrorQPQConfigSetting, ParameterQPQConfigSetting, QPQConfig, QPQConfigSetting, QpqQueueProcessors, QueueQPQConfigSetting, ScheduleQPQConfigSetting, SecretQPQConfigSetting, StorageDriveQPQConfigSetting, UserDirectoryQPQConfigSetting, VirtualNetworkQPQConfigSetting } from './config';
1
+ import { AiQPQConfigSetting, ApplicationQPQConfigSetting, BackendBundleOptions, ClaudeAIQPQConfigSetting, DeployEventsQPQConfigSetting, EmailTemplates, EventBusQPQConfigSetting, FederatedModuleStoreQPQConfigSetting, FrontendBundleOptions, GraphDatabaseQPQConfigSetting, InlineFunctionQPQConfigSetting, JavascriptRuntimeQPQConfigSetting, KeyValueStoreQPQConfigSetting, NotifyErrorQPQConfigSetting, ParameterQPQConfigSetting, QPQConfig, QPQConfigSetting, QpqQueueProcessors, QueueQPQConfigSetting, ScheduleQPQConfigSetting, SecretQPQConfigSetting, StorageDriveQPQConfigSetting, UserDirectoryQPQConfigSetting, VirtualNetworkQPQConfigSetting } from './config';
2
2
  import { ConfigUrl, CrossServiceResourceName, CustomFullyQualifiedResource, FullyQualifiedResource, QpqFunctionRuntime, ResourceName } from './types';
3
3
  /**
4
4
  * Flattens a QPQConfig array into a single array of QPQConfigSetting objects.
@@ -88,6 +88,17 @@ export declare const getUserDirectoryByName: (userDirectoryName: string, qpqConi
88
88
  export declare const getAllParameterConfigs: (qpqConfig: QPQConfig) => ParameterQPQConfigSetting[];
89
89
  export declare const getParameterConfig: (name: string, qpqConfig: QPQConfig) => ParameterQPQConfigSetting;
90
90
  export declare const getOwnedParameterConfigs: (qpqConfig: QPQConfig) => ParameterQPQConfigSetting[];
91
+ /**
92
+ * Merges every `defineBackendBundleOptions` in the config into a single set of
93
+ * bundler directives. Services compose config from many fragments, so each
94
+ * fragment can declare the build quirks of its own dependencies.
95
+ */
96
+ export declare const getBackendBundleOptions: (qpqConfig: QPQConfig) => Required<BackendBundleOptions>;
97
+ /**
98
+ * Merges every `defineFrontendBundleOptions` in the config into a single set
99
+ * of views-bundler directives.
100
+ */
101
+ export declare const getFrontendBundleOptions: (qpqConfig: QPQConfig) => Required<FrontendBundleOptions>;
91
102
  export declare const getUniqueKeyForSetting: (setting: QPQConfigSetting) => string;
92
103
  export declare const getQueueQueueProcessors: (name: string, qpqConfig: QPQConfig) => QpqQueueProcessors;
93
104
  export declare const convertCustomFullyQualifiedResourceToGeneric: <T extends string>(resource: CustomFullyQualifiedResource<T>) => FullyQualifiedResource;
@@ -357,6 +357,29 @@ export const getOwnedParameterConfigs = (qpqConfig) => {
357
357
  const parameters = getAllParameterConfigs(qpqConfig);
358
358
  return getOwnedItems(parameters, qpqConfig);
359
359
  };
360
+ /**
361
+ * Merges every `defineBackendBundleOptions` in the config into a single set of
362
+ * bundler directives. Services compose config from many fragments, so each
363
+ * fragment can declare the build quirks of its own dependencies.
364
+ */
365
+ export const getBackendBundleOptions = (qpqConfig) => {
366
+ const settings = getConfigSettings(qpqConfig, QPQCoreConfigSettingType.backendBundleOptions);
367
+ return {
368
+ externals: settings.flatMap((setting) => setting.externals),
369
+ ignoreModules: settings.flatMap((setting) => setting.ignoreModules),
370
+ ignoreWarnings: settings.flatMap((setting) => setting.ignoreWarnings),
371
+ };
372
+ };
373
+ /**
374
+ * Merges every `defineFrontendBundleOptions` in the config into a single set
375
+ * of views-bundler directives.
376
+ */
377
+ export const getFrontendBundleOptions = (qpqConfig) => {
378
+ const settings = getConfigSettings(qpqConfig, QPQCoreConfigSettingType.frontendBundleOptions);
379
+ return {
380
+ sharedSingletons: settings.flatMap((setting) => setting.sharedSingletons),
381
+ };
382
+ };
360
383
  export const getUniqueKeyForSetting = (setting) => {
361
384
  const type = setting.configSettingType.split('/').pop();
362
385
  const key = setting.uniqueKey;
@@ -1 +1 @@
1
- {"version":3,"file":"qpqCoreUtils.js","sourceRoot":"","sources":["../../src/qpqCoreUtils.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ActionProcessorsQPQConfigSetting,\n AiQPQConfigSetting,\n ApiBuildPathQPQConfigSetting,\n ApplicationQPQConfigSetting,\n ClaudeAIQPQConfigSetting,\n defineJavascriptRuntime,\n DeployEventsQPQConfigSetting,\n EmailTemplates,\n EnvironmentSettingsQPQConfigSetting,\n EventBusQPQConfigSetting,\n FederatedModuleStoreQPQConfigSetting,\n GlobalQPQConfigSetting,\n GraphDatabaseQPQConfigSetting,\n InlineFunctionQPQConfigSetting,\n JavascriptRuntimeQPQConfigSetting,\n KeyValueStoreQPQConfigSetting,\n ModuleQPQConfigSetting,\n NotifyErrorQPQConfigSetting,\n ParameterQPQConfigSetting,\n QPQConfig,\n QPQConfigItem,\n QPQConfigSetting,\n QPQCoreConfigSettingType,\n QpqQueueProcessors,\n QueueQPQConfigSetting,\n ScheduleQPQConfigSetting,\n SecretQPQConfigSetting,\n ServiceSettingsQPQConfigSetting,\n StorageDriveQPQConfigSetting,\n UserDirectoryQPQConfigSetting,\n VirtualNetworkQPQConfigSetting,\n} from './config';\nimport {\n ConfigUrl,\n CrossModuleOwner,\n CrossServiceResourceName,\n CustomFullyQualifiedResource,\n FullyQualifiedResource,\n KeyOf,\n QpqFunctionRuntime,\n ResourceName,\n} from './types';\nimport { isQpqFunctionRuntimeAdvanced } from './utils';\n\n/**\n * Flattens a QPQConfig array into a single array of QPQConfigSetting objects.\n * If a QPQConfigItem has a configSettingType of QPQCoreConfigSettingType.environmentSettings,\n * and its environment matches the current environment, its settings will be added to the flattened array.\n * @function\n * @param {QPQConfig} qpqConfig - The input QPQConfig array to be flattened.\n * @returns {QPQConfigSetting[]} - The flattened array of QPQConfigSetting objects\n */\nexport const flattenQpqConfig = (qpqConfig: QPQConfig): QPQConfigSetting[] => {\n let environment = 'development';\n let service: string | undefined;\n\n /**\n * A recursive helper function that flattens an array of QPQConfigItem objects.\n * @function\n * @param {QPQConfigItem[]} configItems - An array of QPQConfigItem objects to be flattened.\n * @param {QPQConfigSetting[]} accumulator - An accumulator array for storing the flattened QPQConfigSetting objects.\n * @returns {QPQConfigSetting[]} - The flattened array of QPQConfigSetting objects.\n */\n const flatten = (configItems: QPQConfigItem[], accumulator: QPQConfigSetting[] = []): QPQConfigSetting[] => {\n return configItems.reduce<QPQConfigSetting[]>((acc, item) => {\n if (Array.isArray(item)) {\n return flatten(item, acc);\n } else {\n // If its a appName config item, update the environment variable\n if (item.configSettingType === QPQCoreConfigSettingType.appName) {\n environment = (item as ApplicationQPQConfigSetting).environment || 'development';\n }\n\n // If its a moduleName config item, update the service variable\n else if (item.configSettingType === QPQCoreConfigSettingType.moduleName) {\n service = (item as ModuleQPQConfigSetting).moduleName;\n }\n\n // Otherwise if its an environmentSettings config item, flatten out the child settings\n // for the current environment, falling back to the '*' key if present.\n else if (item.configSettingType === QPQCoreConfigSettingType.environmentSettings) {\n const envSetting = item as EnvironmentSettingsQPQConfigSetting;\n const settings = envSetting.settingsByEnvironment[environment] ?? envSetting.settingsByEnvironment['*'] ?? [];\n\n return flatten(settings, acc);\n }\n\n // Otherwise if its a serviceSettings config item, flatten out the child settings\n // for the current service, falling back to the '*' key if present.\n else if (item.configSettingType === QPQCoreConfigSettingType.serviceSettings) {\n if (!service) {\n throw new Error('defineServiceSettings requires a module to be set first via defineModule (usually through defineApplicationModule)');\n }\n\n const svcSetting = item as ServiceSettingsQPQConfigSetting;\n const settings = svcSetting.settingsByService[service] ?? svcSetting.settingsByService['*'] ?? [];\n\n return flatten(settings, acc);\n }\n\n // Otherwise its just a regular config item, add it to the list\n return [...acc, item];\n }\n }, accumulator);\n };\n\n return flatten(qpqConfig);\n};\n\n/**\n * Filters and returns the config settings of a specific type from a QPQConfig array.\n * @function\n * @template T - The specific type of QPQConfigSetting to filter.\n * @param {QPQConfig} qpqConfig - The input QPQConfig array.\n * @param {string} configSettingType - The specific config setting type to filter.\n * @returns {T[]} - An array of filtered config settings of the specified type.\n */\nexport const getConfigSettings = <T extends QPQConfigSetting>(qpqConfig: QPQConfig, configSettingType: string): T[] => {\n const flatConfig = flattenQpqConfig(qpqConfig);\n return flatConfig.filter((c) => c.configSettingType === configSettingType) as T[];\n};\n\n/**\n * Retrieves a single config setting of a specific type from a QPQConfig array.\n * @function\n * @template T - The specific type of QPQConfigSetting to retrieve.\n * @param {QPQConfig} qpqConfig - The input QPQConfig array.\n * @param {string} serviceInfrastructureConfigType - The specific config setting type to retrieve.\n * @returns {T | undefined} - The found config setting of the specified type or undefined if not found.\n */\nexport const getConfigSetting = <T extends QPQConfigSetting>(qpqConfig: QPQConfig, serviceInfrastructureConfigType: string): T | undefined => {\n const [setting] = getConfigSettings<T>(qpqConfig, serviceInfrastructureConfigType);\n return setting;\n};\n\n/**\n * Retrieves the ApplicationModuleSetting from a QPQConfig array.\n * @function\n * @param {QPQConfig} qpqConfig - The input QPQConfig array.\n * @returns {ApplicationQPQConfigSetting} - The ApplicationQPQConfigSetting from the QPQConfig array.\n * @throws {Error} - If the ApplicationQPQConfigSetting is not found in the QPQConfig array.\n */\nexport const getApplicationConfigSetting = (qpqConfig: QPQConfig): ApplicationQPQConfigSetting => {\n const applicationModuleSetting = getConfigSetting<ApplicationQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.appName);\n\n if (!applicationModuleSetting) {\n throw new Error('please use defineApplication in your QPQ config');\n }\n\n return applicationModuleSetting;\n};\n\nexport const getApplicationModuleName = (qpqConfig: QPQConfig): string => {\n const moduleSetting = getConfigSetting<ModuleQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.moduleName);\n\n if (!moduleSetting) {\n throw new Error('please use defineModule in your QPQ config');\n }\n\n return moduleSetting.moduleName;\n};\n\nexport const getApplicationConfigRoot = (qpqConfig: QPQConfig): string => {\n const moduleSetting = getConfigSetting<ApplicationQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.appName);\n\n if (!moduleSetting) {\n throw new Error('please use defineApplication in your QPQ config');\n }\n\n return moduleSetting.configRoot;\n};\n\nexport const getApplicationName = (qpqConfig: QPQConfig): string => {\n return getApplicationConfigSetting(qpqConfig).applicationName;\n};\n\nexport const getApplicationModuleFeature = (qpqConfig: QPQConfig): string | undefined => {\n return getApplicationConfigSetting(qpqConfig).feature;\n};\n\nexport const getConfigRoot = (qpqConfig: QPQConfig): string => {\n return getApplicationConfigSetting(qpqConfig).configRoot;\n};\n\nexport const getApplicationModuleEnvironment = (qpqConfig: QPQConfig): string => {\n return getApplicationConfigSetting(qpqConfig).environment || 'production';\n};\n\nexport const getStorageDrives = (configs: QPQConfig): StorageDriveQPQConfigSetting[] => {\n return getConfigSettings<StorageDriveQPQConfigSetting>(configs, QPQCoreConfigSettingType.storageDrive);\n};\n\nexport const getStorageDriveByName = (storageDriveName: string, configs: QPQConfig): StorageDriveQPQConfigSetting | undefined => {\n return getStorageDrives(configs).find((sd) => sd.storageDrive === storageDriveName);\n};\n\nexport const getFederatedModuleStore = (qpqConfig: QPQConfig): FederatedModuleStoreQPQConfigSetting | undefined => {\n return getConfigSetting<FederatedModuleStoreQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.federatedModuleStore);\n};\n\nexport const getQueues = (configs: QPQConfig): QueueQPQConfigSetting[] => {\n return getConfigSettings<QueueQPQConfigSetting>(configs, QPQCoreConfigSettingType.queue);\n};\n\nexport const getOwnedQueues = (configs: QPQConfig): QueueQPQConfigSetting[] => {\n return getOwnedItems(getQueues(configs), configs);\n};\n\nexport const getNotifyErrorConfigs = (configs: QPQConfig): NotifyErrorQPQConfigSetting[] => {\n return getConfigSettings<NotifyErrorQPQConfigSetting>(configs, QPQCoreConfigSettingType.notifyError);\n};\n\nexport const getQueueByName = (configs: QPQConfig, name: string): QueueQPQConfigSetting | undefined => {\n return getQueues(configs).find((q) => q.name === name);\n};\n\n// A FIFO queue can only be fed by a FIFO event bus - standard SNS topics cannot deliver\n// to FIFO SQS queues at all. Called at deploy/startup time (the queue and bus are separate\n// settings, so defineQueue can't validate this on its own).\nexport const assertFifoQueueEventBusSubscriptionsAreValid = (qpqConfig: QPQConfig): void => {\n const invalidSubscriptions = getQueues(qpqConfig)\n .filter((queue) => queue.isFifo)\n .flatMap((queue) =>\n queue.eventBusSubscriptions\n .filter((eventBusName) => !getEventBusConfigByName(eventBusName, qpqConfig)?.isFifo)\n .map((eventBusName) => `queue [${queue.name}] -> event bus [${eventBusName}]`),\n );\n\n if (invalidSubscriptions.length > 0) {\n throw new Error(\n `FIFO queues can only subscribe to FIFO event buses (standard SNS topics cannot deliver to FIFO SQS queues): ${invalidSubscriptions.join(', ')}`,\n );\n }\n};\n\nexport const getStorageDriveNames = (configs: QPQConfig): string[] => {\n const storageDriveNames = getConfigSettings<StorageDriveQPQConfigSetting>(configs, QPQCoreConfigSettingType.storageDrive).map(\n (sd) => sd.storageDrive,\n );\n\n return storageDriveNames;\n};\n\nexport const getAllEventBusConfigs = (qpqConfig: QPQConfig): EventBusQPQConfigSetting[] => {\n const eventBuses = getConfigSettings<EventBusQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.eventBus);\n\n return eventBuses;\n};\n\nexport const getAllAiConfigs = (qpqConfig: QPQConfig): AiQPQConfigSetting[] => {\n return getConfigSettings<AiQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.ai);\n};\n\n// Always resolves - falls back to the defineJavascriptRuntime defaults when no setting is present\nexport const getJavascriptRuntimeConfig = (qpqConfig: QPQConfig): JavascriptRuntimeQPQConfigSetting => {\n return getConfigSetting<JavascriptRuntimeQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.javascriptRuntime) ?? defineJavascriptRuntime();\n};\n\nexport const getAllClaudeAiConfigs = (qpqConfig: QPQConfig): ClaudeAIQPQConfigSetting[] => {\n const claudeAis = getConfigSettings<ClaudeAIQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.claudeAi);\n\n return claudeAis;\n};\n\nexport const getOwnedEventBusConfigs = (qpqConfig: QPQConfig): EventBusQPQConfigSetting[] => {\n const ownedEventBusConfigs = getOwnedItems(getAllEventBusConfigs(qpqConfig), qpqConfig);\n\n return ownedEventBusConfigs;\n};\n\nexport const getEventBusConfigByName = (eventBusName: string, qpqConfig: QPQConfig): EventBusQPQConfigSetting | undefined => {\n const allConfigs = getAllEventBusConfigs(qpqConfig);\n\n const eventBusConfig = allConfigs.find((eb) => eb.owner?.resourceNameOverride === eventBusName);\n\n if (eventBusConfig) {\n return eventBusConfig;\n }\n\n return allConfigs.find((eb) => eb.name === eventBusName);\n};\n\nexport const getOwnedItems = <T extends QPQConfigSetting>(settings: T[], qpqConfig: QPQConfig): T[] => {\n const appModuleName = getApplicationModuleName(qpqConfig);\n const appName = getApplicationName(qpqConfig);\n const appFeature = getApplicationModuleFeature(qpqConfig);\n const appEnvironment = getApplicationModuleEnvironment(qpqConfig);\n\n return settings.filter(\n (s) =>\n !s.owner ||\n ((!s.owner.module || s.owner.module === appModuleName) &&\n (!s.owner.application || s.owner.application === appName) &&\n (s.owner.feature === undefined || (!s.owner.feature && !appFeature) || s.owner.feature === appFeature) &&\n (!s.owner.environment || s.owner.environment === appEnvironment)),\n );\n};\n\nexport const getAllKeyValueStores = <T extends object = any>(qpqConfig: QPQConfig): KeyValueStoreQPQConfigSetting<T>[] => {\n const keyValueStores = getConfigSettings<KeyValueStoreQPQConfigSetting<T>>(qpqConfig, QPQCoreConfigSettingType.keyValueStore);\n\n return keyValueStores;\n};\n\nexport const getAllGraphDatabaseConfigs = (qpqConfig: QPQConfig): GraphDatabaseQPQConfigSetting[] => {\n const graphDatabases = getConfigSettings<GraphDatabaseQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.graphDatabase);\n\n return graphDatabases;\n};\n\nexport const getDeployEventConfigs = (qpqConfig: QPQConfig): DeployEventsQPQConfigSetting[] => {\n const deployEvents = getConfigSettings<DeployEventsQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.deployEvent);\n\n return deployEvents;\n};\n\nexport const getVirualNetworkConfigs = (qpqConfig: QPQConfig): VirtualNetworkQPQConfigSetting[] => {\n return getConfigSettings<VirtualNetworkQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.virtualNetwork);\n};\n\nexport const getOwnedKeyValueStores = <T extends object = any>(qpqConfig: QPQConfig): KeyValueStoreQPQConfigSetting<T>[] => {\n return getOwnedItems(getAllKeyValueStores(qpqConfig), qpqConfig);\n};\n\nexport const getOwnedGraphDatabases = (qpqConfig: QPQConfig): GraphDatabaseQPQConfigSetting[] => {\n return getOwnedItems(getAllGraphDatabaseConfigs(qpqConfig), qpqConfig);\n};\n\nexport const getOwnedStorageDrives = (qpqConfig: QPQConfig): StorageDriveQPQConfigSetting[] => {\n return getOwnedItems(getStorageDrives(qpqConfig), qpqConfig);\n};\n\nexport const resolveCrossServiceResourceName = (resourceName: ResourceName): CrossServiceResourceName => {\n if (typeof resourceName === 'string') {\n return {\n name: resourceName,\n };\n }\n\n return resourceName;\n};\n\nexport const getKeyValueStoreByName = <T extends object = any>(\n qpqConfig: QPQConfig,\n kvsName: string,\n): KeyValueStoreQPQConfigSetting<T> | undefined => {\n const keyValueStore = getAllKeyValueStores<T>(qpqConfig).find((kvs) => kvs.keyValueStoreName === kvsName);\n\n return keyValueStore;\n};\n\nexport const getActionProcessorSources = (configs: QPQConfig): QpqFunctionRuntime[] => {\n const sources = getConfigSettings<ActionProcessorsQPQConfigSetting>(configs, QPQCoreConfigSettingType.actionProcessors).map((ap) => ap.runtime);\n\n return sources;\n};\n\nexport const getUserDirectoryEmailTemplates = (qpqConfig: QPQConfig): Record<string, EmailTemplates> => {\n const userDirectories = getConfigSettings<UserDirectoryQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.userDirectory);\n\n const record = userDirectories.reduce(\n (acc, ud) => ({\n ...acc,\n [ud.name]: ud.emailTemplates,\n }),\n {} as Record<string, EmailTemplates>,\n );\n\n return record;\n};\n\nexport const getScheduleEvents = (configs: QPQConfig): ScheduleQPQConfigSetting[] => {\n return getConfigSettings<ScheduleQPQConfigSetting>(configs, QPQCoreConfigSettingType.schedule);\n};\n\nexport const getOwnedScheduleEvents = (qpqConfig: QPQConfig): ScheduleQPQConfigSetting[] => {\n return getOwnedItems(getScheduleEvents(qpqConfig), qpqConfig);\n};\n\nexport const getQueueSrcEntries = (configs: QPQConfig): QpqFunctionRuntime[] => {\n const queueConfigs = getConfigSettings<QueueQPQConfigSetting>(configs, QPQCoreConfigSettingType.queue);\n\n return queueConfigs.reduce((acc, qc) => [...acc, ...Object.values(qc.qpqQueueProcessors)], [] as QpqFunctionRuntime[]);\n};\n\nexport const getUserDirectorySrcEntries = (qpqConfig: QPQConfig): QpqFunctionRuntime[] => {\n // We just want the ones this service owns.\n const userConfigs = getOwnedUserDirectories(qpqConfig);\n\n return userConfigs\n .reduce((acc, ud) => [...acc, ...Object.values(ud.emailTemplates), ...Object.values(ud.customAuthRuntime || {})], [] as QpqFunctionRuntime[])\n .filter((se) => !!se);\n};\n\nexport const getAllInlineFunctions = (qpqConfig: QPQConfig): InlineFunctionQPQConfigSetting[] => {\n return getConfigSettings<InlineFunctionQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.inlineFunction);\n};\n\nexport const getOwnedInlineFunctions = (qpqConfig: QPQConfig): InlineFunctionQPQConfigSetting[] => {\n return getOwnedItems(getAllInlineFunctions(qpqConfig), qpqConfig);\n};\n\n// Used in bundlers to know where and what to build and index\nexport const getAllSrcEntries = (qpqConfig: QPQConfig): QpqFunctionRuntime[] => {\n const result = [\n ...getActionProcessorSources(qpqConfig),\n ...getScheduleEvents(qpqConfig).map((r) => r.runtime),\n ...getQueueSrcEntries(qpqConfig),\n ...getUserDirectorySrcEntries(qpqConfig),\n ...getDeployEventConfigs(qpqConfig).map((r) => r.runtime),\n ...getStorageDrives(qpqConfig).flatMap((sd) => [sd.onEvent?.create, sd.onEvent?.delete].filter((r) => !!r) as QpqFunctionRuntime[]),\n ...getAllInlineFunctions(qpqConfig).map((f) => f.runtime),\n ];\n\n return result;\n};\n\nexport const getApiBuildPath = (qpqConfig: QPQConfig): string => {\n const [apiBuildPathConfig] = getConfigSettings<ApiBuildPathQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.apiBuildPath);\n\n if (!apiBuildPathConfig) {\n throw new Error(`Can not find app base path use defineApiBuildPath or defineApplicationModule`);\n }\n\n return apiBuildPathConfig.apiBuildPath;\n};\n\nexport const getSrcFilenameFromQpqFunctionRuntime = (qpqFunctionRuntime: QpqFunctionRuntime): string => {\n if (isQpqFunctionRuntimeAdvanced(qpqFunctionRuntime)) {\n return qpqFunctionRuntime.relativePath.split('/').pop() || '';\n }\n\n const [srcPath] = qpqFunctionRuntime.split('::');\n return srcPath.split('/').pop() || '';\n};\n\nexport const getSecretByName = (secretName: string, qpqConfig: QPQConfig): SecretQPQConfigSetting => {\n const secrets = getConfigSettings<SecretQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.secret);\n\n const secret = secrets.find((s) => s.key === secretName);\n\n if (!secret) {\n throw new Error(`Can not find secret [${secretName}]`);\n }\n\n return secret;\n};\n\nexport const getAllSecretConfigs = (qpqConfig: QPQConfig): SecretQPQConfigSetting[] => {\n const secrets = getConfigSettings<SecretQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.secret);\n\n return secrets;\n};\n\nexport const getOwnedSecrets = (qpqConfig: QPQConfig): SecretQPQConfigSetting[] => {\n const secrets = getAllSecretConfigs(qpqConfig);\n\n return getOwnedItems(secrets, qpqConfig);\n};\n\nexport const getGlobalConfigValue = <T>(qpqConfig: QPQConfig, name: string): T => {\n const global = getConfigSettings<GlobalQPQConfigSetting<T>>(qpqConfig, QPQCoreConfigSettingType.global).find((g) => g.key === name);\n\n if (!global) {\n throw new Error(`Global config ${name} not found`);\n }\n\n return global.value;\n};\n\n// Resolves a global by name, giving precedence to globals declared on the\n// executing function (functionGlobals) before falling back to the service-wide\n// config global. Throws (via getGlobalConfigValue) if the name is found in neither.\nexport const resolveGlobalValue = <T>(qpqConfig: QPQConfig, functionGlobals: Record<string, unknown> | undefined, name: string): T => {\n if (functionGlobals && Object.prototype.hasOwnProperty.call(functionGlobals, name)) {\n return functionGlobals[name] as T;\n }\n\n return getGlobalConfigValue<T>(qpqConfig, name);\n};\n\nexport const getUserDirectories = (configs: QPQConfig): UserDirectoryQPQConfigSetting[] => {\n const userDirectories = getConfigSettings<UserDirectoryQPQConfigSetting>(configs, QPQCoreConfigSettingType.userDirectory);\n\n return userDirectories;\n};\n\nexport const getOwnedUserDirectories = (qpqConifg: QPQConfig): UserDirectoryQPQConfigSetting[] => {\n const userDirectories = getUserDirectories(qpqConifg);\n\n return getOwnedItems(userDirectories, qpqConifg);\n};\n\nexport const getUserDirectoryByName = (userDirectoryName: string, qpqConifg: QPQConfig): UserDirectoryQPQConfigSetting => {\n const userDirectory = getUserDirectories(qpqConifg).find((ud) => ud.name === userDirectoryName);\n\n if (!userDirectory) {\n throw new Error(`UserDirectory not found: ${userDirectoryName}`);\n }\n\n return userDirectory;\n};\n\nexport const getAllParameterConfigs = (qpqConfig: QPQConfig): ParameterQPQConfigSetting[] => {\n const parameters = getConfigSettings<ParameterQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.parameter);\n\n return parameters;\n};\n\nexport const getParameterConfig = (name: string, qpqConfig: QPQConfig): ParameterQPQConfigSetting => {\n const parameters = getConfigSettings<ParameterQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.parameter);\n\n const param = parameters.find((p) => p.key === name);\n\n if (!param) {\n throw new Error(`Parameter ${name} not found`);\n }\n\n return param;\n};\n\nexport const getOwnedParameterConfigs = (qpqConfig: QPQConfig): ParameterQPQConfigSetting[] => {\n const parameters = getAllParameterConfigs(qpqConfig);\n\n return getOwnedItems(parameters, qpqConfig);\n};\n\nexport const getUniqueKeyForSetting = (setting: QPQConfigSetting) => {\n const type = setting.configSettingType.split('/').pop();\n const key = setting.uniqueKey;\n\n return `${type}${key}`;\n};\n\nexport const getQueueQueueProcessors = (name: string, qpqConfig: QPQConfig): QpqQueueProcessors => {\n const seoConfigs = getConfigSettings<QueueQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.queue);\n\n const queueConfig = seoConfigs.find((c) => c.name === name);\n\n return queueConfig?.qpqQueueProcessors || {};\n};\n\nexport const convertCustomFullyQualifiedResourceToGeneric = <T extends string>(resource: CustomFullyQualifiedResource<T>): FullyQualifiedResource => {\n type KeyType = KeyOf<CustomFullyQualifiedResource<T>>;\n const key: KeyType = Array.from(Object.keys(resource)).find(\n (k) => k !== 'module' && k !== 'application' && k !== 'feature' && k !== 'environment',\n ) as any as KeyType;\n\n const resourceName = resource[key as T];\n\n return {\n module: resource.module,\n application: resource.application,\n feature: resource.feature,\n environment: resource.environment,\n resourceName: resourceName,\n };\n};\n\nexport const getFullyQualifiedResourceName = (qpqConfig: QPQConfig, resourceName: string, config?: QPQConfigSetting): FullyQualifiedResource => {\n const confApplication = getApplicationName(qpqConfig);\n const confEnvironment = getApplicationModuleEnvironment(qpqConfig);\n const confFeature = getApplicationModuleFeature(qpqConfig);\n const confModule = getApplicationModuleName(qpqConfig);\n\n return {\n resourceName: config?.owner?.resourceNameOverride || resourceName,\n\n application: config?.owner?.application || confApplication,\n environment: config?.owner?.environment || confEnvironment,\n module: config?.owner?.module || confModule,\n feature: config?.owner?.feature || confFeature || '',\n };\n};\n\n// Fully Qualified Resource Names\nexport const getKeyValueStoreFullyQualifiedResourceName = (kvsName: string, qpqConfig: QPQConfig): FullyQualifiedResource => {\n const storeConfig = getKeyValueStoreByName(qpqConfig, kvsName);\n\n return getFullyQualifiedResourceName(qpqConfig, kvsName, storeConfig);\n};\n\nexport const isSameResource = (resourceA: FullyQualifiedResource, resourceB: FullyQualifiedResource): boolean => {\n return (\n resourceA.application === resourceB.application &&\n resourceA.environment === resourceB.environment &&\n resourceA.feature === resourceB.feature &&\n resourceA.module === resourceB.module &&\n resourceA.resourceName === resourceB.resourceName\n );\n};\n\nexport const getFullUrlFromConfigUrl = (configUrl: ConfigUrl, qpqConfig: QPQConfig): string => {\n if (typeof configUrl === 'string') {\n return configUrl;\n }\n\n const confEnvironment = getApplicationModuleEnvironment(qpqConfig);\n const confFeature = getApplicationModuleFeature(qpqConfig);\n\n let fullUrl = `${configUrl.domain}`;\n\n if (confEnvironment !== 'production') {\n fullUrl = `${confEnvironment}.${fullUrl}`;\n }\n\n if (confFeature) {\n fullUrl = `${confFeature}.${fullUrl}`;\n }\n\n if (configUrl.module) {\n fullUrl = `${configUrl.module}.${fullUrl}`;\n }\n\n if (configUrl.path) {\n fullUrl = `${fullUrl}${configUrl.path}`;\n }\n\n fullUrl = `${configUrl.protocol}://${fullUrl}`;\n\n console.log(fullUrl);\n\n return fullUrl;\n};\n"]}
1
+ {"version":3,"file":"qpqCoreUtils.js","sourceRoot":"","sources":["../../src/qpqCoreUtils.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ActionProcessorsQPQConfigSetting,\n AiQPQConfigSetting,\n ApiBuildPathQPQConfigSetting,\n ApplicationQPQConfigSetting,\n BackendBundleOptions,\n BackendBundleOptionsQPQConfigSetting,\n ClaudeAIQPQConfigSetting,\n defineJavascriptRuntime,\n DeployEventsQPQConfigSetting,\n EmailTemplates,\n EnvironmentSettingsQPQConfigSetting,\n EventBusQPQConfigSetting,\n FederatedModuleStoreQPQConfigSetting,\n FrontendBundleOptions,\n FrontendBundleOptionsQPQConfigSetting,\n GlobalQPQConfigSetting,\n GraphDatabaseQPQConfigSetting,\n InlineFunctionQPQConfigSetting,\n JavascriptRuntimeQPQConfigSetting,\n KeyValueStoreQPQConfigSetting,\n ModuleQPQConfigSetting,\n NotifyErrorQPQConfigSetting,\n ParameterQPQConfigSetting,\n QPQConfig,\n QPQConfigItem,\n QPQConfigSetting,\n QPQCoreConfigSettingType,\n QpqQueueProcessors,\n QueueQPQConfigSetting,\n ScheduleQPQConfigSetting,\n SecretQPQConfigSetting,\n ServiceSettingsQPQConfigSetting,\n StorageDriveQPQConfigSetting,\n UserDirectoryQPQConfigSetting,\n VirtualNetworkQPQConfigSetting,\n} from './config';\nimport {\n ConfigUrl,\n CrossModuleOwner,\n CrossServiceResourceName,\n CustomFullyQualifiedResource,\n FullyQualifiedResource,\n KeyOf,\n QpqFunctionRuntime,\n ResourceName,\n} from './types';\nimport { isQpqFunctionRuntimeAdvanced } from './utils';\n\n/**\n * Flattens a QPQConfig array into a single array of QPQConfigSetting objects.\n * If a QPQConfigItem has a configSettingType of QPQCoreConfigSettingType.environmentSettings,\n * and its environment matches the current environment, its settings will be added to the flattened array.\n * @function\n * @param {QPQConfig} qpqConfig - The input QPQConfig array to be flattened.\n * @returns {QPQConfigSetting[]} - The flattened array of QPQConfigSetting objects\n */\nexport const flattenQpqConfig = (qpqConfig: QPQConfig): QPQConfigSetting[] => {\n let environment = 'development';\n let service: string | undefined;\n\n /**\n * A recursive helper function that flattens an array of QPQConfigItem objects.\n * @function\n * @param {QPQConfigItem[]} configItems - An array of QPQConfigItem objects to be flattened.\n * @param {QPQConfigSetting[]} accumulator - An accumulator array for storing the flattened QPQConfigSetting objects.\n * @returns {QPQConfigSetting[]} - The flattened array of QPQConfigSetting objects.\n */\n const flatten = (configItems: QPQConfigItem[], accumulator: QPQConfigSetting[] = []): QPQConfigSetting[] => {\n return configItems.reduce<QPQConfigSetting[]>((acc, item) => {\n if (Array.isArray(item)) {\n return flatten(item, acc);\n } else {\n // If its a appName config item, update the environment variable\n if (item.configSettingType === QPQCoreConfigSettingType.appName) {\n environment = (item as ApplicationQPQConfigSetting).environment || 'development';\n }\n\n // If its a moduleName config item, update the service variable\n else if (item.configSettingType === QPQCoreConfigSettingType.moduleName) {\n service = (item as ModuleQPQConfigSetting).moduleName;\n }\n\n // Otherwise if its an environmentSettings config item, flatten out the child settings\n // for the current environment, falling back to the '*' key if present.\n else if (item.configSettingType === QPQCoreConfigSettingType.environmentSettings) {\n const envSetting = item as EnvironmentSettingsQPQConfigSetting;\n const settings = envSetting.settingsByEnvironment[environment] ?? envSetting.settingsByEnvironment['*'] ?? [];\n\n return flatten(settings, acc);\n }\n\n // Otherwise if its a serviceSettings config item, flatten out the child settings\n // for the current service, falling back to the '*' key if present.\n else if (item.configSettingType === QPQCoreConfigSettingType.serviceSettings) {\n if (!service) {\n throw new Error('defineServiceSettings requires a module to be set first via defineModule (usually through defineApplicationModule)');\n }\n\n const svcSetting = item as ServiceSettingsQPQConfigSetting;\n const settings = svcSetting.settingsByService[service] ?? svcSetting.settingsByService['*'] ?? [];\n\n return flatten(settings, acc);\n }\n\n // Otherwise its just a regular config item, add it to the list\n return [...acc, item];\n }\n }, accumulator);\n };\n\n return flatten(qpqConfig);\n};\n\n/**\n * Filters and returns the config settings of a specific type from a QPQConfig array.\n * @function\n * @template T - The specific type of QPQConfigSetting to filter.\n * @param {QPQConfig} qpqConfig - The input QPQConfig array.\n * @param {string} configSettingType - The specific config setting type to filter.\n * @returns {T[]} - An array of filtered config settings of the specified type.\n */\nexport const getConfigSettings = <T extends QPQConfigSetting>(qpqConfig: QPQConfig, configSettingType: string): T[] => {\n const flatConfig = flattenQpqConfig(qpqConfig);\n return flatConfig.filter((c) => c.configSettingType === configSettingType) as T[];\n};\n\n/**\n * Retrieves a single config setting of a specific type from a QPQConfig array.\n * @function\n * @template T - The specific type of QPQConfigSetting to retrieve.\n * @param {QPQConfig} qpqConfig - The input QPQConfig array.\n * @param {string} serviceInfrastructureConfigType - The specific config setting type to retrieve.\n * @returns {T | undefined} - The found config setting of the specified type or undefined if not found.\n */\nexport const getConfigSetting = <T extends QPQConfigSetting>(qpqConfig: QPQConfig, serviceInfrastructureConfigType: string): T | undefined => {\n const [setting] = getConfigSettings<T>(qpqConfig, serviceInfrastructureConfigType);\n return setting;\n};\n\n/**\n * Retrieves the ApplicationModuleSetting from a QPQConfig array.\n * @function\n * @param {QPQConfig} qpqConfig - The input QPQConfig array.\n * @returns {ApplicationQPQConfigSetting} - The ApplicationQPQConfigSetting from the QPQConfig array.\n * @throws {Error} - If the ApplicationQPQConfigSetting is not found in the QPQConfig array.\n */\nexport const getApplicationConfigSetting = (qpqConfig: QPQConfig): ApplicationQPQConfigSetting => {\n const applicationModuleSetting = getConfigSetting<ApplicationQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.appName);\n\n if (!applicationModuleSetting) {\n throw new Error('please use defineApplication in your QPQ config');\n }\n\n return applicationModuleSetting;\n};\n\nexport const getApplicationModuleName = (qpqConfig: QPQConfig): string => {\n const moduleSetting = getConfigSetting<ModuleQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.moduleName);\n\n if (!moduleSetting) {\n throw new Error('please use defineModule in your QPQ config');\n }\n\n return moduleSetting.moduleName;\n};\n\nexport const getApplicationConfigRoot = (qpqConfig: QPQConfig): string => {\n const moduleSetting = getConfigSetting<ApplicationQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.appName);\n\n if (!moduleSetting) {\n throw new Error('please use defineApplication in your QPQ config');\n }\n\n return moduleSetting.configRoot;\n};\n\nexport const getApplicationName = (qpqConfig: QPQConfig): string => {\n return getApplicationConfigSetting(qpqConfig).applicationName;\n};\n\nexport const getApplicationModuleFeature = (qpqConfig: QPQConfig): string | undefined => {\n return getApplicationConfigSetting(qpqConfig).feature;\n};\n\nexport const getConfigRoot = (qpqConfig: QPQConfig): string => {\n return getApplicationConfigSetting(qpqConfig).configRoot;\n};\n\nexport const getApplicationModuleEnvironment = (qpqConfig: QPQConfig): string => {\n return getApplicationConfigSetting(qpqConfig).environment || 'production';\n};\n\nexport const getStorageDrives = (configs: QPQConfig): StorageDriveQPQConfigSetting[] => {\n return getConfigSettings<StorageDriveQPQConfigSetting>(configs, QPQCoreConfigSettingType.storageDrive);\n};\n\nexport const getStorageDriveByName = (storageDriveName: string, configs: QPQConfig): StorageDriveQPQConfigSetting | undefined => {\n return getStorageDrives(configs).find((sd) => sd.storageDrive === storageDriveName);\n};\n\nexport const getFederatedModuleStore = (qpqConfig: QPQConfig): FederatedModuleStoreQPQConfigSetting | undefined => {\n return getConfigSetting<FederatedModuleStoreQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.federatedModuleStore);\n};\n\nexport const getQueues = (configs: QPQConfig): QueueQPQConfigSetting[] => {\n return getConfigSettings<QueueQPQConfigSetting>(configs, QPQCoreConfigSettingType.queue);\n};\n\nexport const getOwnedQueues = (configs: QPQConfig): QueueQPQConfigSetting[] => {\n return getOwnedItems(getQueues(configs), configs);\n};\n\nexport const getNotifyErrorConfigs = (configs: QPQConfig): NotifyErrorQPQConfigSetting[] => {\n return getConfigSettings<NotifyErrorQPQConfigSetting>(configs, QPQCoreConfigSettingType.notifyError);\n};\n\nexport const getQueueByName = (configs: QPQConfig, name: string): QueueQPQConfigSetting | undefined => {\n return getQueues(configs).find((q) => q.name === name);\n};\n\n// A FIFO queue can only be fed by a FIFO event bus - standard SNS topics cannot deliver\n// to FIFO SQS queues at all. Called at deploy/startup time (the queue and bus are separate\n// settings, so defineQueue can't validate this on its own).\nexport const assertFifoQueueEventBusSubscriptionsAreValid = (qpqConfig: QPQConfig): void => {\n const invalidSubscriptions = getQueues(qpqConfig)\n .filter((queue) => queue.isFifo)\n .flatMap((queue) =>\n queue.eventBusSubscriptions\n .filter((eventBusName) => !getEventBusConfigByName(eventBusName, qpqConfig)?.isFifo)\n .map((eventBusName) => `queue [${queue.name}] -> event bus [${eventBusName}]`),\n );\n\n if (invalidSubscriptions.length > 0) {\n throw new Error(\n `FIFO queues can only subscribe to FIFO event buses (standard SNS topics cannot deliver to FIFO SQS queues): ${invalidSubscriptions.join(', ')}`,\n );\n }\n};\n\nexport const getStorageDriveNames = (configs: QPQConfig): string[] => {\n const storageDriveNames = getConfigSettings<StorageDriveQPQConfigSetting>(configs, QPQCoreConfigSettingType.storageDrive).map(\n (sd) => sd.storageDrive,\n );\n\n return storageDriveNames;\n};\n\nexport const getAllEventBusConfigs = (qpqConfig: QPQConfig): EventBusQPQConfigSetting[] => {\n const eventBuses = getConfigSettings<EventBusQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.eventBus);\n\n return eventBuses;\n};\n\nexport const getAllAiConfigs = (qpqConfig: QPQConfig): AiQPQConfigSetting[] => {\n return getConfigSettings<AiQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.ai);\n};\n\n// Always resolves - falls back to the defineJavascriptRuntime defaults when no setting is present\nexport const getJavascriptRuntimeConfig = (qpqConfig: QPQConfig): JavascriptRuntimeQPQConfigSetting => {\n return getConfigSetting<JavascriptRuntimeQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.javascriptRuntime) ?? defineJavascriptRuntime();\n};\n\nexport const getAllClaudeAiConfigs = (qpqConfig: QPQConfig): ClaudeAIQPQConfigSetting[] => {\n const claudeAis = getConfigSettings<ClaudeAIQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.claudeAi);\n\n return claudeAis;\n};\n\nexport const getOwnedEventBusConfigs = (qpqConfig: QPQConfig): EventBusQPQConfigSetting[] => {\n const ownedEventBusConfigs = getOwnedItems(getAllEventBusConfigs(qpqConfig), qpqConfig);\n\n return ownedEventBusConfigs;\n};\n\nexport const getEventBusConfigByName = (eventBusName: string, qpqConfig: QPQConfig): EventBusQPQConfigSetting | undefined => {\n const allConfigs = getAllEventBusConfigs(qpqConfig);\n\n const eventBusConfig = allConfigs.find((eb) => eb.owner?.resourceNameOverride === eventBusName);\n\n if (eventBusConfig) {\n return eventBusConfig;\n }\n\n return allConfigs.find((eb) => eb.name === eventBusName);\n};\n\nexport const getOwnedItems = <T extends QPQConfigSetting>(settings: T[], qpqConfig: QPQConfig): T[] => {\n const appModuleName = getApplicationModuleName(qpqConfig);\n const appName = getApplicationName(qpqConfig);\n const appFeature = getApplicationModuleFeature(qpqConfig);\n const appEnvironment = getApplicationModuleEnvironment(qpqConfig);\n\n return settings.filter(\n (s) =>\n !s.owner ||\n ((!s.owner.module || s.owner.module === appModuleName) &&\n (!s.owner.application || s.owner.application === appName) &&\n (s.owner.feature === undefined || (!s.owner.feature && !appFeature) || s.owner.feature === appFeature) &&\n (!s.owner.environment || s.owner.environment === appEnvironment)),\n );\n};\n\nexport const getAllKeyValueStores = <T extends object = any>(qpqConfig: QPQConfig): KeyValueStoreQPQConfigSetting<T>[] => {\n const keyValueStores = getConfigSettings<KeyValueStoreQPQConfigSetting<T>>(qpqConfig, QPQCoreConfigSettingType.keyValueStore);\n\n return keyValueStores;\n};\n\nexport const getAllGraphDatabaseConfigs = (qpqConfig: QPQConfig): GraphDatabaseQPQConfigSetting[] => {\n const graphDatabases = getConfigSettings<GraphDatabaseQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.graphDatabase);\n\n return graphDatabases;\n};\n\nexport const getDeployEventConfigs = (qpqConfig: QPQConfig): DeployEventsQPQConfigSetting[] => {\n const deployEvents = getConfigSettings<DeployEventsQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.deployEvent);\n\n return deployEvents;\n};\n\nexport const getVirualNetworkConfigs = (qpqConfig: QPQConfig): VirtualNetworkQPQConfigSetting[] => {\n return getConfigSettings<VirtualNetworkQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.virtualNetwork);\n};\n\nexport const getOwnedKeyValueStores = <T extends object = any>(qpqConfig: QPQConfig): KeyValueStoreQPQConfigSetting<T>[] => {\n return getOwnedItems(getAllKeyValueStores(qpqConfig), qpqConfig);\n};\n\nexport const getOwnedGraphDatabases = (qpqConfig: QPQConfig): GraphDatabaseQPQConfigSetting[] => {\n return getOwnedItems(getAllGraphDatabaseConfigs(qpqConfig), qpqConfig);\n};\n\nexport const getOwnedStorageDrives = (qpqConfig: QPQConfig): StorageDriveQPQConfigSetting[] => {\n return getOwnedItems(getStorageDrives(qpqConfig), qpqConfig);\n};\n\nexport const resolveCrossServiceResourceName = (resourceName: ResourceName): CrossServiceResourceName => {\n if (typeof resourceName === 'string') {\n return {\n name: resourceName,\n };\n }\n\n return resourceName;\n};\n\nexport const getKeyValueStoreByName = <T extends object = any>(\n qpqConfig: QPQConfig,\n kvsName: string,\n): KeyValueStoreQPQConfigSetting<T> | undefined => {\n const keyValueStore = getAllKeyValueStores<T>(qpqConfig).find((kvs) => kvs.keyValueStoreName === kvsName);\n\n return keyValueStore;\n};\n\nexport const getActionProcessorSources = (configs: QPQConfig): QpqFunctionRuntime[] => {\n const sources = getConfigSettings<ActionProcessorsQPQConfigSetting>(configs, QPQCoreConfigSettingType.actionProcessors).map((ap) => ap.runtime);\n\n return sources;\n};\n\nexport const getUserDirectoryEmailTemplates = (qpqConfig: QPQConfig): Record<string, EmailTemplates> => {\n const userDirectories = getConfigSettings<UserDirectoryQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.userDirectory);\n\n const record = userDirectories.reduce(\n (acc, ud) => ({\n ...acc,\n [ud.name]: ud.emailTemplates,\n }),\n {} as Record<string, EmailTemplates>,\n );\n\n return record;\n};\n\nexport const getScheduleEvents = (configs: QPQConfig): ScheduleQPQConfigSetting[] => {\n return getConfigSettings<ScheduleQPQConfigSetting>(configs, QPQCoreConfigSettingType.schedule);\n};\n\nexport const getOwnedScheduleEvents = (qpqConfig: QPQConfig): ScheduleQPQConfigSetting[] => {\n return getOwnedItems(getScheduleEvents(qpqConfig), qpqConfig);\n};\n\nexport const getQueueSrcEntries = (configs: QPQConfig): QpqFunctionRuntime[] => {\n const queueConfigs = getConfigSettings<QueueQPQConfigSetting>(configs, QPQCoreConfigSettingType.queue);\n\n return queueConfigs.reduce((acc, qc) => [...acc, ...Object.values(qc.qpqQueueProcessors)], [] as QpqFunctionRuntime[]);\n};\n\nexport const getUserDirectorySrcEntries = (qpqConfig: QPQConfig): QpqFunctionRuntime[] => {\n // We just want the ones this service owns.\n const userConfigs = getOwnedUserDirectories(qpqConfig);\n\n return userConfigs\n .reduce((acc, ud) => [...acc, ...Object.values(ud.emailTemplates), ...Object.values(ud.customAuthRuntime || {})], [] as QpqFunctionRuntime[])\n .filter((se) => !!se);\n};\n\nexport const getAllInlineFunctions = (qpqConfig: QPQConfig): InlineFunctionQPQConfigSetting[] => {\n return getConfigSettings<InlineFunctionQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.inlineFunction);\n};\n\nexport const getOwnedInlineFunctions = (qpqConfig: QPQConfig): InlineFunctionQPQConfigSetting[] => {\n return getOwnedItems(getAllInlineFunctions(qpqConfig), qpqConfig);\n};\n\n// Used in bundlers to know where and what to build and index\nexport const getAllSrcEntries = (qpqConfig: QPQConfig): QpqFunctionRuntime[] => {\n const result = [\n ...getActionProcessorSources(qpqConfig),\n ...getScheduleEvents(qpqConfig).map((r) => r.runtime),\n ...getQueueSrcEntries(qpqConfig),\n ...getUserDirectorySrcEntries(qpqConfig),\n ...getDeployEventConfigs(qpqConfig).map((r) => r.runtime),\n ...getStorageDrives(qpqConfig).flatMap((sd) => [sd.onEvent?.create, sd.onEvent?.delete].filter((r) => !!r) as QpqFunctionRuntime[]),\n ...getAllInlineFunctions(qpqConfig).map((f) => f.runtime),\n ];\n\n return result;\n};\n\nexport const getApiBuildPath = (qpqConfig: QPQConfig): string => {\n const [apiBuildPathConfig] = getConfigSettings<ApiBuildPathQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.apiBuildPath);\n\n if (!apiBuildPathConfig) {\n throw new Error(`Can not find app base path use defineApiBuildPath or defineApplicationModule`);\n }\n\n return apiBuildPathConfig.apiBuildPath;\n};\n\nexport const getSrcFilenameFromQpqFunctionRuntime = (qpqFunctionRuntime: QpqFunctionRuntime): string => {\n if (isQpqFunctionRuntimeAdvanced(qpqFunctionRuntime)) {\n return qpqFunctionRuntime.relativePath.split('/').pop() || '';\n }\n\n const [srcPath] = qpqFunctionRuntime.split('::');\n return srcPath.split('/').pop() || '';\n};\n\nexport const getSecretByName = (secretName: string, qpqConfig: QPQConfig): SecretQPQConfigSetting => {\n const secrets = getConfigSettings<SecretQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.secret);\n\n const secret = secrets.find((s) => s.key === secretName);\n\n if (!secret) {\n throw new Error(`Can not find secret [${secretName}]`);\n }\n\n return secret;\n};\n\nexport const getAllSecretConfigs = (qpqConfig: QPQConfig): SecretQPQConfigSetting[] => {\n const secrets = getConfigSettings<SecretQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.secret);\n\n return secrets;\n};\n\nexport const getOwnedSecrets = (qpqConfig: QPQConfig): SecretQPQConfigSetting[] => {\n const secrets = getAllSecretConfigs(qpqConfig);\n\n return getOwnedItems(secrets, qpqConfig);\n};\n\nexport const getGlobalConfigValue = <T>(qpqConfig: QPQConfig, name: string): T => {\n const global = getConfigSettings<GlobalQPQConfigSetting<T>>(qpqConfig, QPQCoreConfigSettingType.global).find((g) => g.key === name);\n\n if (!global) {\n throw new Error(`Global config ${name} not found`);\n }\n\n return global.value;\n};\n\n// Resolves a global by name, giving precedence to globals declared on the\n// executing function (functionGlobals) before falling back to the service-wide\n// config global. Throws (via getGlobalConfigValue) if the name is found in neither.\nexport const resolveGlobalValue = <T>(qpqConfig: QPQConfig, functionGlobals: Record<string, unknown> | undefined, name: string): T => {\n if (functionGlobals && Object.prototype.hasOwnProperty.call(functionGlobals, name)) {\n return functionGlobals[name] as T;\n }\n\n return getGlobalConfigValue<T>(qpqConfig, name);\n};\n\nexport const getUserDirectories = (configs: QPQConfig): UserDirectoryQPQConfigSetting[] => {\n const userDirectories = getConfigSettings<UserDirectoryQPQConfigSetting>(configs, QPQCoreConfigSettingType.userDirectory);\n\n return userDirectories;\n};\n\nexport const getOwnedUserDirectories = (qpqConifg: QPQConfig): UserDirectoryQPQConfigSetting[] => {\n const userDirectories = getUserDirectories(qpqConifg);\n\n return getOwnedItems(userDirectories, qpqConifg);\n};\n\nexport const getUserDirectoryByName = (userDirectoryName: string, qpqConifg: QPQConfig): UserDirectoryQPQConfigSetting => {\n const userDirectory = getUserDirectories(qpqConifg).find((ud) => ud.name === userDirectoryName);\n\n if (!userDirectory) {\n throw new Error(`UserDirectory not found: ${userDirectoryName}`);\n }\n\n return userDirectory;\n};\n\nexport const getAllParameterConfigs = (qpqConfig: QPQConfig): ParameterQPQConfigSetting[] => {\n const parameters = getConfigSettings<ParameterQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.parameter);\n\n return parameters;\n};\n\nexport const getParameterConfig = (name: string, qpqConfig: QPQConfig): ParameterQPQConfigSetting => {\n const parameters = getConfigSettings<ParameterQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.parameter);\n\n const param = parameters.find((p) => p.key === name);\n\n if (!param) {\n throw new Error(`Parameter ${name} not found`);\n }\n\n return param;\n};\n\nexport const getOwnedParameterConfigs = (qpqConfig: QPQConfig): ParameterQPQConfigSetting[] => {\n const parameters = getAllParameterConfigs(qpqConfig);\n\n return getOwnedItems(parameters, qpqConfig);\n};\n\n/**\n * Merges every `defineBackendBundleOptions` in the config into a single set of\n * bundler directives. Services compose config from many fragments, so each\n * fragment can declare the build quirks of its own dependencies.\n */\nexport const getBackendBundleOptions = (qpqConfig: QPQConfig): Required<BackendBundleOptions> => {\n const settings = getConfigSettings<BackendBundleOptionsQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.backendBundleOptions);\n\n return {\n externals: settings.flatMap((setting) => setting.externals),\n ignoreModules: settings.flatMap((setting) => setting.ignoreModules),\n ignoreWarnings: settings.flatMap((setting) => setting.ignoreWarnings),\n };\n};\n\n/**\n * Merges every `defineFrontendBundleOptions` in the config into a single set\n * of views-bundler directives.\n */\nexport const getFrontendBundleOptions = (qpqConfig: QPQConfig): Required<FrontendBundleOptions> => {\n const settings = getConfigSettings<FrontendBundleOptionsQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.frontendBundleOptions);\n\n return {\n sharedSingletons: settings.flatMap((setting) => setting.sharedSingletons),\n };\n};\n\nexport const getUniqueKeyForSetting = (setting: QPQConfigSetting) => {\n const type = setting.configSettingType.split('/').pop();\n const key = setting.uniqueKey;\n\n return `${type}${key}`;\n};\n\nexport const getQueueQueueProcessors = (name: string, qpqConfig: QPQConfig): QpqQueueProcessors => {\n const seoConfigs = getConfigSettings<QueueQPQConfigSetting>(qpqConfig, QPQCoreConfigSettingType.queue);\n\n const queueConfig = seoConfigs.find((c) => c.name === name);\n\n return queueConfig?.qpqQueueProcessors || {};\n};\n\nexport const convertCustomFullyQualifiedResourceToGeneric = <T extends string>(resource: CustomFullyQualifiedResource<T>): FullyQualifiedResource => {\n type KeyType = KeyOf<CustomFullyQualifiedResource<T>>;\n const key: KeyType = Array.from(Object.keys(resource)).find(\n (k) => k !== 'module' && k !== 'application' && k !== 'feature' && k !== 'environment',\n ) as any as KeyType;\n\n const resourceName = resource[key as T];\n\n return {\n module: resource.module,\n application: resource.application,\n feature: resource.feature,\n environment: resource.environment,\n resourceName: resourceName,\n };\n};\n\nexport const getFullyQualifiedResourceName = (qpqConfig: QPQConfig, resourceName: string, config?: QPQConfigSetting): FullyQualifiedResource => {\n const confApplication = getApplicationName(qpqConfig);\n const confEnvironment = getApplicationModuleEnvironment(qpqConfig);\n const confFeature = getApplicationModuleFeature(qpqConfig);\n const confModule = getApplicationModuleName(qpqConfig);\n\n return {\n resourceName: config?.owner?.resourceNameOverride || resourceName,\n\n application: config?.owner?.application || confApplication,\n environment: config?.owner?.environment || confEnvironment,\n module: config?.owner?.module || confModule,\n feature: config?.owner?.feature || confFeature || '',\n };\n};\n\n// Fully Qualified Resource Names\nexport const getKeyValueStoreFullyQualifiedResourceName = (kvsName: string, qpqConfig: QPQConfig): FullyQualifiedResource => {\n const storeConfig = getKeyValueStoreByName(qpqConfig, kvsName);\n\n return getFullyQualifiedResourceName(qpqConfig, kvsName, storeConfig);\n};\n\nexport const isSameResource = (resourceA: FullyQualifiedResource, resourceB: FullyQualifiedResource): boolean => {\n return (\n resourceA.application === resourceB.application &&\n resourceA.environment === resourceB.environment &&\n resourceA.feature === resourceB.feature &&\n resourceA.module === resourceB.module &&\n resourceA.resourceName === resourceB.resourceName\n );\n};\n\nexport const getFullUrlFromConfigUrl = (configUrl: ConfigUrl, qpqConfig: QPQConfig): string => {\n if (typeof configUrl === 'string') {\n return configUrl;\n }\n\n const confEnvironment = getApplicationModuleEnvironment(qpqConfig);\n const confFeature = getApplicationModuleFeature(qpqConfig);\n\n let fullUrl = `${configUrl.domain}`;\n\n if (confEnvironment !== 'production') {\n fullUrl = `${confEnvironment}.${fullUrl}`;\n }\n\n if (confFeature) {\n fullUrl = `${confFeature}.${fullUrl}`;\n }\n\n if (configUrl.module) {\n fullUrl = `${configUrl.module}.${fullUrl}`;\n }\n\n if (configUrl.path) {\n fullUrl = `${fullUrl}${configUrl.path}`;\n }\n\n fullUrl = `${configUrl.protocol}://${fullUrl}`;\n\n console.log(fullUrl);\n\n return fullUrl;\n};\n"]}
@@ -59,6 +59,8 @@ export declare const qpqCoreUtils: {
59
59
  getAllParameterConfigs: (qpqConfig: import("./config").QPQConfig) => import("./config").ParameterQPQConfigSetting[];
60
60
  getParameterConfig: (name: string, qpqConfig: import("./config").QPQConfig) => import("./config").ParameterQPQConfigSetting;
61
61
  getOwnedParameterConfigs: (qpqConfig: import("./config").QPQConfig) => import("./config").ParameterQPQConfigSetting[];
62
+ getBackendBundleOptions: (qpqConfig: import("./config").QPQConfig) => Required<import("./config").BackendBundleOptions>;
63
+ getFrontendBundleOptions: (qpqConfig: import("./config").QPQConfig) => Required<import("./config").FrontendBundleOptions>;
62
64
  getUniqueKeyForSetting: (setting: import("./config").QPQConfigSetting) => string;
63
65
  getQueueQueueProcessors: (name: string, qpqConfig: import("./config").QPQConfig) => import("./config").QpqQueueProcessors;
64
66
  convertCustomFullyQualifiedResourceToGeneric: <T extends string>(resource: import("./types").CustomFullyQualifiedResource<T>) => import("./types").FullyQualifiedResource;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "quidproquo-core",
3
- "version": "0.1.4",
3
+ "version": "0.1.5",
4
4
  "description": "",
5
5
  "main": "./lib/commonjs/index.js",
6
6
  "module": "./lib/esm/index.js",
@@ -33,7 +33,7 @@
33
33
  "homepage": "https://github.com/joe-coady/quidproquo#readme",
34
34
  "devDependencies": {
35
35
  "@types/node": "^24.2.1",
36
- "quidproquo-tsconfig": "0.1.4",
36
+ "quidproquo-tsconfig": "0.1.5",
37
37
  "typescript": "^5.8.2"
38
38
  },
39
39
  "dependencies": {