@hartl-services/medusa-base 2.6.0 → 2.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.medusa/server/src/admin/admin-components/features/plugin-features/components/ImageSettingInput.d.ts +3 -2
- package/.medusa/server/src/admin/admin-components/features/plugin-features/components/ImageSettingInput.js +4 -4
- package/.medusa/server/src/admin/admin-components/features/plugin-features/components/PluginActionsSection.js +4 -4
- package/.medusa/server/src/admin/admin-components/features/plugin-features/components/PluginBreadcrumb.d.ts +16 -0
- package/.medusa/server/src/admin/admin-components/features/plugin-features/components/PluginBreadcrumb.js +25 -0
- package/.medusa/server/src/admin/admin-components/features/plugin-features/components/PluginDetailPage.js +1 -1
- package/.medusa/server/src/admin/admin-components/features/plugin-features/components/PluginFeatureSections.d.ts +5 -4
- package/.medusa/server/src/admin/admin-components/features/plugin-features/components/PluginFeatureSections.js +8 -5
- package/.medusa/server/src/admin/admin-components/features/plugin-features/components/PluginFeaturesCard.d.ts +4 -4
- package/.medusa/server/src/admin/admin-components/features/plugin-features/components/PluginFeaturesCard.js +24 -27
- package/.medusa/server/src/admin/admin-components/features/plugin-features/components/PluginFeaturesSettingsPage.d.ts +2 -2
- package/.medusa/server/src/admin/admin-components/features/plugin-features/components/PluginFeaturesSettingsPage.js +9 -9
- package/.medusa/server/src/admin/admin-components/features/plugin-features/components/PluginHubCard.d.ts +5 -1
- package/.medusa/server/src/admin/admin-components/features/plugin-features/components/PluginHubCard.js +11 -15
- package/.medusa/server/src/admin/admin-components/features/plugin-features/components/PluginPageShell.d.ts +10 -4
- package/.medusa/server/src/admin/admin-components/features/plugin-features/components/PluginPageShell.js +10 -5
- package/.medusa/server/src/admin/admin-components/features/plugin-features/components/PluginSettingsForm.d.ts +0 -1
- package/.medusa/server/src/admin/admin-components/features/plugin-features/components/PluginSettingsForm.js +73 -26
- package/.medusa/server/src/admin/admin-components/features/plugin-features/components/PluginStatusChips.d.ts +5 -1
- package/.medusa/server/src/admin/admin-components/features/plugin-features/components/PluginStatusChips.js +8 -6
- package/.medusa/server/src/admin/admin-components/features/plugin-features/components/ShopMasterDataBanner.d.ts +11 -0
- package/.medusa/server/src/admin/admin-components/features/plugin-features/components/ShopMasterDataBanner.js +15 -0
- package/.medusa/server/src/admin/admin-components/features/plugin-features/hooks/usePluginFeatureEnabled.d.ts +36 -5
- package/.medusa/server/src/admin/admin-components/features/plugin-features/hooks/usePluginFeatures.d.ts +144 -20
- package/.medusa/server/src/admin/admin-components/features/plugin-features/hooks/usePluginSettingsForm.d.ts +36 -5
- package/.medusa/server/src/admin/admin-components/features/plugin-features/hooks/usePluginSwitch.d.ts +15 -0
- package/.medusa/server/src/admin/admin-components/features/plugin-features/hooks/usePluginSwitch.js +66 -0
- package/.medusa/server/src/admin/admin-components/features/plugin-features/lib/plugin-features-admin-client.d.ts +144 -20
- package/.medusa/server/src/admin/admin-components/features/plugin-features/lib/plugin-view.d.ts +49 -0
- package/.medusa/server/src/admin/admin-components/features/plugin-features/lib/plugin-view.js +72 -0
- package/.medusa/server/src/admin/admin-components/features/plugin-features/lib/settings-draft.d.ts +1 -12
- package/.medusa/server/src/admin/admin-components/features/plugin-features/lib/settings-draft.js +4 -20
- package/.medusa/server/src/admin/admin-components/features/plugin-features/lib/settings-layout.d.ts +43 -0
- package/.medusa/server/src/admin/admin-components/features/plugin-features/lib/settings-layout.js +66 -0
- package/.medusa/server/src/admin/admin-components/i18n/texts.d.ts +22 -2
- package/.medusa/server/src/admin/admin-components/i18n/texts.js +29 -7
- package/.medusa/server/src/admin/admin-components/index.d.ts +12 -0
- package/.medusa/server/src/admin/admin-components/index.js +11 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/AdminPageHeader.d.ts +22 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/AdminPageHeader.js +8 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/AdminSection.d.ts +26 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/AdminSection.js +12 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/BreadcrumbTrail.d.ts +23 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/BreadcrumbTrail.js +20 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/FileDropField.d.ts +21 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/FileDropField.js +33 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/FocusModalShell.d.ts +27 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/FocusModalShell.js +13 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/InfoTooltip.d.ts +13 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/InfoTooltip.js +8 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/MultiSelectDropdown.d.ts +22 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/MultiSelectDropdown.js +14 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/PdfPreviewModal.js +1 -1
- package/.medusa/server/src/admin/admin-components/shared/ui/PluginIcon.d.ts +10 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/PluginIcon.js +10 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/SwitchRow.d.ts +27 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/SwitchRow.js +15 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/WidgetHeader.d.ts +15 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/WidgetHeader.js +8 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/file-drop.d.ts +13 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/file-drop.js +16 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/multi-select.d.ts +13 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/multi-select.js +11 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/plugin-icon.d.ts +12 -0
- package/.medusa/server/src/admin/admin-components/shared/ui/plugin-icon.js +29 -0
- package/.medusa/server/src/admin/index.js +3123 -2019
- package/.medusa/server/src/admin/index.mjs +3126 -2022
- package/.medusa/server/src/api/admin-first-login-password-policy.js +56 -0
- package/.medusa/server/src/api/answer-actor-type-casing-not-found.js +26 -0
- package/.medusa/server/src/api/answer-code-provider-route-not-found.js +34 -0
- package/.medusa/server/src/api/code-account-password-routes.js +92 -0
- package/.medusa/server/src/api/middlewares.js +82 -17
- package/.medusa/server/src/api/password-policy.js +55 -10
- package/.medusa/server/src/api/require-login-code-customer-email.js +40 -0
- package/.medusa/server/src/api/store/customer-auth/login-code/route.js +17 -0
- package/.medusa/server/src/api/store/customer-auth/password-policy/route.js +19 -0
- package/.medusa/server/src/customer-auth/application/prepare-code-account-password-reset.js +111 -0
- package/.medusa/server/src/customer-auth/application/request-login-code.js +145 -0
- package/.medusa/server/src/customer-auth/customer-auth-methods-snapshot.js +55 -0
- package/.medusa/server/src/customer-auth/customer-password-policy.js +40 -0
- package/.medusa/server/src/customer-auth/domain/account-linking.js +53 -0
- package/.medusa/server/src/customer-auth/domain/auth-methods.js +32 -0
- package/.medusa/server/src/customer-auth/domain/login-code.js +39 -0
- package/.medusa/server/src/customer-auth/login-code-accounts.js +146 -0
- package/.medusa/server/src/customer-auth/login-code-state.js +139 -0
- package/.medusa/server/src/customer-auth/plugin-features.js +80 -0
- package/.medusa/server/src/customer-auth/remove-provider-identity.js +18 -0
- package/.medusa/server/src/customer-auth/start-customer-auth-methods.js +20 -0
- package/.medusa/server/src/documents/plugin-features.js +8 -2
- package/.medusa/server/src/email/application/deliver-ephemeral-auth-mail.js +186 -0
- package/.medusa/server/src/email/application/deliver-login-code.js +89 -0
- package/.medusa/server/src/email/application/handle-customer-verification-event.js +29 -168
- package/.medusa/server/src/email/application/handle-password-reset-event.js +27 -166
- package/.medusa/server/src/email/customer-verification-snapshot.js +20 -108
- package/.medusa/server/src/email/domain/business-keys.js +15 -2
- package/.medusa/server/src/email/plugin-features.js +8 -3
- package/.medusa/server/src/email/rendering/default-templates.js +2 -1
- package/.medusa/server/src/email/templates/blocks/dynamic-blocks.js +19 -1
- package/.medusa/server/src/email/templates/defaults/documents.js +7 -1
- package/.medusa/server/src/email/templates/defaults/subjects.js +3 -1
- package/.medusa/server/src/email/templates/defaults/texts.js +5 -2
- package/.medusa/server/src/email/templates/render.js +2 -1
- package/.medusa/server/src/email/templates/sample-data.js +2 -1
- package/.medusa/server/src/email/templates/validate.js +8 -3
- package/.medusa/server/src/email/types/email-kinds.js +4 -2
- package/.medusa/server/src/email/types/template-data.js +9 -1
- package/.medusa/server/src/modules/customer-auth/index.js +14 -0
- package/.medusa/server/src/modules/customer-auth/service.js +35 -0
- package/.medusa/server/src/modules/email/migrations/Migration20261010090000.js +20 -0
- package/.medusa/server/src/modules/plugin-features/domain/plugin-settings.js +4 -1
- package/.medusa/server/src/modules/plugin-features/service.js +26 -1
- package/.medusa/server/src/providers/email-otp/index.js +8 -0
- package/.medusa/server/src/providers/email-otp/service.js +96 -0
- package/.medusa/server/src/public/descriptor.js +117 -5
- package/.medusa/server/src/public/effective-features.js +22 -1
- package/.medusa/server/src/public/index.js +4 -2
- package/.medusa/server/src/public/plugin-icons.js +28 -0
- package/.medusa/server/src/public/shop-master-data.js +33 -14
- package/.medusa/server/src/shared/lib/index.js +2 -1
- package/.medusa/server/src/shared/lib/refreshing-snapshot.js +122 -0
- package/.medusa/server/src/shop-config/build-food-shop-config.js +38 -1
- package/README.md +436 -87
- package/dist/customer-auth/customer-auth-methods-snapshot.d.ts +25 -0
- package/dist/customer-auth/customer-auth-methods-snapshot.js +54 -0
- package/dist/customer-auth/domain/auth-methods.d.ts +16 -0
- package/dist/customer-auth/domain/auth-methods.js +31 -0
- package/dist/customer-auth/plugin-features.d.ts +2 -0
- package/dist/customer-auth/plugin-features.js +79 -0
- package/dist/email/customer-verification-snapshot.d.ts +3 -15
- package/dist/email/customer-verification-snapshot.js +19 -107
- package/dist/email/types/email-kinds.d.ts +4 -3
- package/dist/email/types/email-kinds.js +3 -1
- package/dist/email/types/template-data.d.ts +8 -0
- package/dist/email/types/template-data.js +8 -0
- package/dist/public/descriptor.js +116 -4
- package/dist/public/effective-features.d.ts +10 -0
- package/dist/public/effective-features.js +21 -0
- package/dist/public/index.d.ts +2 -1
- package/dist/public/index.js +3 -1
- package/dist/public/plugin-icons.d.ts +7 -0
- package/dist/public/plugin-icons.js +27 -0
- package/dist/public/shop-master-data.js +32 -13
- package/dist/public/types.d.ts +63 -1
- package/dist/shared/lib/index.d.ts +1 -0
- package/dist/shared/lib/index.js +1 -0
- package/dist/shared/lib/refreshing-snapshot.d.ts +52 -0
- package/dist/shared/lib/refreshing-snapshot.js +121 -0
- package/dist/shop-config/build-food-shop-config.js +37 -0
- package/package.json +8 -3
|
@@ -63,6 +63,10 @@ const describeSetting = (setting) => {
|
|
|
63
63
|
is_set: source !== "none",
|
|
64
64
|
source,
|
|
65
65
|
invalidates: [...(definition.invalidates ?? [])],
|
|
66
|
+
hint: definition.hint ?? null,
|
|
67
|
+
placeholder: definition.placeholder ?? null,
|
|
68
|
+
width: definition.width ?? "full",
|
|
69
|
+
section: definition.section ?? null,
|
|
66
70
|
};
|
|
67
71
|
switch (definition.type) {
|
|
68
72
|
case "secret":
|
|
@@ -84,6 +88,7 @@ const describeSetting = (setting) => {
|
|
|
84
88
|
type: "number",
|
|
85
89
|
min: definition.min ?? null,
|
|
86
90
|
max: definition.max ?? null,
|
|
91
|
+
integer: definition.integer === true,
|
|
87
92
|
default: typeof definition.default === "number" ? definition.default : null,
|
|
88
93
|
value: typeof setting.value === "number" ? setting.value : null,
|
|
89
94
|
};
|
|
@@ -137,8 +142,27 @@ const describe = (descriptor, stored, settings) => {
|
|
|
137
142
|
confirm: action.confirm ?? null,
|
|
138
143
|
})),
|
|
139
144
|
admin_page: descriptor.admin_page ?? null,
|
|
145
|
+
icon: descriptor.icon ?? null,
|
|
146
|
+
summary: descriptor.summary ?? null,
|
|
147
|
+
disable_hint: descriptor.disable_hint ?? null,
|
|
148
|
+
disable_confirm: descriptor.disable_confirm ?? null,
|
|
149
|
+
features_heading: descriptor.features_heading ?? null,
|
|
150
|
+
features_note: descriptor.features_note ?? null,
|
|
151
|
+
all_off_warning: descriptor.all_off_warning ?? null,
|
|
152
|
+
require_enabled_feature: descriptor.require_enabled_feature === true,
|
|
153
|
+
setting_groups: (descriptor.setting_groups ?? []).map((group) => ({
|
|
154
|
+
name: group.name,
|
|
155
|
+
description: group.description ?? null,
|
|
156
|
+
note: group.note ?? null,
|
|
157
|
+
requires_feature: group.requires_feature ?? null,
|
|
158
|
+
})),
|
|
140
159
|
};
|
|
141
160
|
};
|
|
161
|
+
/** Configured value of every declared feature (stored or default). */
|
|
162
|
+
const configuredFeatureValues = (descriptor, stored) => Object.fromEntries((0, effective_features_1.resolvePluginFeatureStates)(descriptor, stored).features.map((state) => [
|
|
163
|
+
state.definition.key,
|
|
164
|
+
state.enabled,
|
|
165
|
+
]));
|
|
142
166
|
const requireTransaction = (sharedContext, what) => {
|
|
143
167
|
const manager = sharedContext.transactionManager;
|
|
144
168
|
if (!manager) {
|
|
@@ -199,6 +223,7 @@ class PluginFeaturesModuleService extends (0, utils_1.MedusaService)({
|
|
|
199
223
|
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, `Plugin "${descriptor.plugin_key}" kann nicht ausgeschaltet werden.`);
|
|
200
224
|
}
|
|
201
225
|
const manager = requireTransaction(sharedContext, "der Funktionsschalter");
|
|
226
|
+
(0, effective_features_1.assertRequiredFeatureEnabled)(descriptor, features, configuredFeatureValues(descriptor, await this.retrieveStored(descriptor.plugin_key, sharedContext)));
|
|
202
227
|
const featuresJson = JSON.stringify(features);
|
|
203
228
|
const rows = input.expected_version === 0
|
|
204
229
|
? await manager.execute(`insert into "plugin_feature_state"
|
|
@@ -557,4 +582,4 @@ __decorate([
|
|
|
557
582
|
__metadata("design:returntype", Promise)
|
|
558
583
|
], PluginFeaturesModuleService.prototype, "listRecentPluginActionRuns", null);
|
|
559
584
|
exports.default = PluginFeaturesModuleService;
|
|
560
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL3BsdWdpbi1mZWF0dXJlcy9zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTUEscURBT2tDO0FBRWxDLHdFQUl3QztBQUN4QyxvRUFBd0U7QUFVeEUsOERBUWlDO0FBRWpDLG9FQU9vQztBQUNwQyxvREFBMkU7QUFDM0UsbUZBQXdEO0FBQ3hELHlGQUE4RDtBQUM5RCx5RkFBOEQ7QUFnRTlELDBFQUEwRTtBQUMxRSxNQUFNLGtCQUFrQixHQUFHLENBQ3pCLE9BQXNDLEVBQ2xCLEVBQUU7SUFDdEIsTUFBTSxLQUFLLEdBQVksT0FBTyxFQUFFLGNBQWMsQ0FBQTtJQUM5QyxJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssRUFBRSxFQUFFLENBQUM7UUFDMUQsT0FBTyxTQUFTLENBQUE7SUFDbEIsQ0FBQztJQUNELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDOUIsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFlBQVksRUFDOUIsa0VBQWtFLENBQ25FLENBQUE7SUFDSCxDQUFDO0lBQ0QsT0FBTyxLQUFLLENBQUE7QUFDZCxDQUFDLENBQUE7QUFFRCx5RUFBeUU7QUFDekUsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFBO0FBRS9DLE1BQU0sUUFBUSxHQUFHLENBQ2YsR0FBMkIsRUFDaUIsRUFBRTtJQUM5QyxNQUFNLFFBQVEsR0FBNEIsRUFBRSxDQUFBO0lBQzVDLElBQUksR0FBRyxDQUFDLFFBQVEsSUFBSSxPQUFPLEdBQUcsQ0FBQyxRQUFRLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDckQsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FB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
|
|
585
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL3BsdWdpbi1mZWF0dXJlcy9zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTUEscURBT2tDO0FBRWxDLHdFQUt3QztBQUN4QyxvRUFBd0U7QUFVeEUsOERBUWlDO0FBRWpDLG9FQU9vQztBQUNwQyxvREFBMkU7QUFDM0UsbUZBQXdEO0FBQ3hELHlGQUE4RDtBQUM5RCx5RkFBOEQ7QUFnRTlELDBFQUEwRTtBQUMxRSxNQUFNLGtCQUFrQixHQUFHLENBQ3pCLE9BQXNDLEVBQ2xCLEVBQUU7SUFDdEIsTUFBTSxLQUFLLEdBQVksT0FBTyxFQUFFLGNBQWMsQ0FBQTtJQUM5QyxJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssRUFBRSxFQUFFLENBQUM7UUFDMUQsT0FBTyxTQUFTLENBQUE7SUFDbEIsQ0FBQztJQUNELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDOUIsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFlBQVksRUFDOUIsa0VBQWtFLENBQ25FLENBQUE7SUFDSCxDQUFDO0lBQ0QsT0FBTyxLQUFLLENBQUE7QUFDZCxDQUFDLENBQUE7QUFFRCx5RUFBeUU7QUFDekUsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFBO0FBRS9DLE1BQU0sUUFBUSxHQUFHLENBQ2YsR0FBMkIsRUFDaUIsRUFBRTtJQUM5QyxNQUFNLFFBQVEsR0FBNEIsRUFBRSxDQUFBO0lBQzVDLElBQUksR0FBRyxDQUFDLFFBQVEsSUFBSSxPQUFPLEdBQUcsQ0FBQyxRQUFRLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDckQsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FB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
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
4
|
+
const service_1 = require("./service");
|
|
5
|
+
exports.default = (0, utils_1.ModuleProvider)(utils_1.Modules.AUTH, {
|
|
6
|
+
services: [service_1.EmailOtpAuthService],
|
|
7
|
+
});
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL2VtYWlsLW90cC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHFEQUFtRTtBQUVuRSx1Q0FBK0M7QUFFL0Msa0JBQWUsSUFBQSxzQkFBYyxFQUFDLGVBQU8sQ0FBQyxJQUFJLEVBQUU7SUFDMUMsUUFBUSxFQUFFLENBQUMsNkJBQW1CLENBQUM7Q0FDaEMsQ0FBQyxDQUFBIn0=
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EmailOtpAuthService = void 0;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
const customer_auth_1 = require("@hartl-services/medusa-food-supplements-contracts/schemas/customer-auth");
|
|
6
|
+
const login_code_accounts_1 = require("../../customer-auth/login-code-accounts");
|
|
7
|
+
const login_code_state_1 = require("../../customer-auth/login-code-state");
|
|
8
|
+
const login_code_1 = require("../../customer-auth/domain/login-code");
|
|
9
|
+
const rejected = () => ({
|
|
10
|
+
success: false,
|
|
11
|
+
error: login_code_1.LOGIN_CODE_REJECTED_MESSAGE,
|
|
12
|
+
});
|
|
13
|
+
/**
|
|
14
|
+
* Login with the one-time code mailed by `POST /store/customer-auth/login-code`
|
|
15
|
+
* (`POST /auth/customer/email-otp` with `{ email, code }`).
|
|
16
|
+
*
|
|
17
|
+
* The brute-force limit lives here and not in a route middleware: a
|
|
18
|
+
* middleware on `POST /auth/customer/email-otp` could be bypassed through
|
|
19
|
+
* `GET` (the core route runs the same handler for GET with the parsed body)
|
|
20
|
+
* and through other actor paths (`/auth/<any>/email-otp`; an actor without an
|
|
21
|
+
* allowlist may use every registered provider). Every failure answers the
|
|
22
|
+
* same message, whatever the reason.
|
|
23
|
+
*
|
|
24
|
+
* Register and update are not supported (the defaults throw): identities are
|
|
25
|
+
* created only by the request route. The HTTP routes `register`, `update`,
|
|
26
|
+
* `reset-password` and `callback` below `/auth/:actor_type/email-otp` answer
|
|
27
|
+
* 404 (`api/middlewares.ts`).
|
|
28
|
+
*/
|
|
29
|
+
class EmailOtpAuthService extends utils_1.AbstractAuthModuleProvider {
|
|
30
|
+
constructor(dependencies, options) {
|
|
31
|
+
super();
|
|
32
|
+
this.logger_ = dependencies.logger;
|
|
33
|
+
this.options_ = options;
|
|
34
|
+
this.sql_ = dependencies[utils_1.ContainerRegistrationKeys.PG_CONNECTION];
|
|
35
|
+
}
|
|
36
|
+
static validateOptions(options) {
|
|
37
|
+
if (!options ||
|
|
38
|
+
typeof options !== "object" ||
|
|
39
|
+
typeof options.hmacSecret !== "string" ||
|
|
40
|
+
!options.hmacSecret.trim()) {
|
|
41
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "The email-otp auth provider needs the option hmacSecret.");
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
async authenticate(data, authIdentityProviderService) {
|
|
45
|
+
// The core route passes the path's actor type alongside the input.
|
|
46
|
+
if (data.actor_type !== "customer") {
|
|
47
|
+
return rejected();
|
|
48
|
+
}
|
|
49
|
+
const parsed = customer_auth_1.LoginWithCodeSchema.safeParse(data.body);
|
|
50
|
+
if (!parsed.success || !this.sql_) {
|
|
51
|
+
if (!this.sql_) {
|
|
52
|
+
this.logger_?.error("The email-otp auth provider has no database connection.");
|
|
53
|
+
}
|
|
54
|
+
return rejected();
|
|
55
|
+
}
|
|
56
|
+
const entityId = (0, customer_auth_1.normalizeLoginEmail)(parsed.data.email);
|
|
57
|
+
try {
|
|
58
|
+
// 1. Count the attempt first, atomically; the budget is shared by all
|
|
59
|
+
// parallel requests for this address.
|
|
60
|
+
const storedHash = await (0, login_code_state_1.countLoginCodeAttempt)(this.sql_, entityId);
|
|
61
|
+
if (!storedHash) {
|
|
62
|
+
return rejected();
|
|
63
|
+
}
|
|
64
|
+
const submittedHash = (0, login_code_1.hashLoginCode)(this.options_.hmacSecret, entityId, parsed.data.code);
|
|
65
|
+
if (!(0, login_code_1.loginCodeHashesEqual)(storedHash, submittedHash)) {
|
|
66
|
+
return rejected();
|
|
67
|
+
}
|
|
68
|
+
// 2. Use the code up exactly once; a parallel winner or a newer code
|
|
69
|
+
// leaves no row for this hash.
|
|
70
|
+
if (!(await (0, login_code_state_1.consumeLoginCode)(this.sql_, entityId, storedHash))) {
|
|
71
|
+
return rejected();
|
|
72
|
+
}
|
|
73
|
+
const authIdentity = await authIdentityProviderService.retrieve({
|
|
74
|
+
entity_id: entityId,
|
|
75
|
+
});
|
|
76
|
+
// 3. The address was just proven by the mailbox: a password identity
|
|
77
|
+
// of this account whose address was never confirmed may have been
|
|
78
|
+
// planted by somebody else, so it must not outlive the first code
|
|
79
|
+
// login.
|
|
80
|
+
const removed = await (0, login_code_accounts_1.deleteUnconfirmedPasswordIdentities)(this.sql_, authIdentity.id);
|
|
81
|
+
if (removed > 0) {
|
|
82
|
+
this.logger_?.info("Login with a code removed an unconfirmed password login from the account.");
|
|
83
|
+
}
|
|
84
|
+
return { success: true, authIdentity };
|
|
85
|
+
}
|
|
86
|
+
catch (error) {
|
|
87
|
+
// Class only: the message of a database error can carry the address.
|
|
88
|
+
this.logger_?.error(`Login with a code failed unexpectedly (${error instanceof Error ? error.name : "unknown error"}).`);
|
|
89
|
+
return rejected();
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
exports.EmailOtpAuthService = EmailOtpAuthService;
|
|
94
|
+
EmailOtpAuthService.identifier = customer_auth_1.EMAIL_OTP_AUTH_PROVIDER;
|
|
95
|
+
EmailOtpAuthService.DISPLAY_NAME = "Anmeldecode per E-Mail";
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9wcm92aWRlcnMvZW1haWwtb3RwL3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBTUEscURBSWtDO0FBQ2xDLDJHQUlnRjtBQUVoRixpRkFBNkY7QUFDN0YsMkVBSTZDO0FBQzdDLHNFQUk4QztBQWdCOUMsTUFBTSxRQUFRLEdBQUcsR0FBMkIsRUFBRSxDQUFDLENBQUM7SUFDOUMsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsd0NBQTJCO0NBQ25DLENBQUMsQ0FBQTtBQUVGOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILE1BQWEsbUJBQW9CLFNBQVEsa0NBQTBCO0lBUWpFLFlBQ0UsWUFBa0MsRUFDbEMsT0FBZ0M7UUFFaEMsS0FBSyxFQUFFLENBQUE7UUFDUCxJQUFJLENBQUMsT0FBTyxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUE7UUFDbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUE7UUFDdkIsSUFBSSxDQUFDLElBQUksR0FBRyxZQUFZLENBQUMsaUNBQXlCLENBQUMsYUFBYSxDQUFDLENBQUE7SUFDbkUsQ0FBQztJQUVELE1BQU0sQ0FBQyxlQUFlLENBQUMsT0FBZ0M7UUFDckQsSUFDRSxDQUFDLE9BQU87WUFDUixPQUFPLE9BQU8sS0FBSyxRQUFRO1lBQzNCLE9BQU8sT0FBTyxDQUFDLFVBQVUsS0FBSyxRQUFRO1lBQ3RDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsRUFDMUIsQ0FBQztZQUNELE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQzlCLDBEQUEwRCxDQUMzRCxDQUFBO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsWUFBWSxDQUNoQixJQUF5QixFQUN6QiwyQkFBd0Q7UUFFeEQsbUVBQW1FO1FBQ25FLElBQUssSUFBaUMs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
|
|
@@ -4,6 +4,7 @@ exports.validatePluginFeatureDescriptor = validatePluginFeatureDescriptor;
|
|
|
4
4
|
exports.definePluginFeatures = definePluginFeatures;
|
|
5
5
|
const utils_1 = require("@medusajs/framework/utils");
|
|
6
6
|
const lib_1 = require("../shared/lib");
|
|
7
|
+
const plugin_icons_1 = require("./plugin-icons");
|
|
7
8
|
const KEY_PATTERN = /^[a-z][a-z0-9_]{0,62}$/;
|
|
8
9
|
const SETTING_TYPES = new Set([
|
|
9
10
|
"string",
|
|
@@ -20,6 +21,10 @@ const ACTION_MODES = new Set(["sync", "background"]);
|
|
|
20
21
|
const ADMIN_PAGE_PREFIX = "/settings/hartl-services/";
|
|
21
22
|
const BASE_PAGE_PREFIX = "/settings/hartl-services/plugin/";
|
|
22
23
|
const ADMIN_PAGE_PATTERN = /^\/settings\/hartl-services(\/[a-z0-9][a-z0-9_-]*)+$/;
|
|
24
|
+
const ICON_NAMES = new Set(plugin_icons_1.PLUGIN_ICON_NAMES);
|
|
25
|
+
const SETTING_WIDTHS = new Set(["full", "half"]);
|
|
26
|
+
/** Types an input placeholder makes no sense for. */
|
|
27
|
+
const NO_PLACEHOLDER_TYPES = new Set(["boolean", "select", "image", "color"]);
|
|
23
28
|
const invalid = (pluginKey, message) => new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, `Ungültige Funktionsschalter für Plugin "${pluginKey}": ${message}`);
|
|
24
29
|
const defaultMatchesType = (setting) => {
|
|
25
30
|
const value = setting.default;
|
|
@@ -32,7 +37,9 @@ const defaultMatchesType = (setting) => {
|
|
|
32
37
|
case "color":
|
|
33
38
|
return typeof value === "string" && HEX_COLOR_PATTERN.test(value);
|
|
34
39
|
case "number":
|
|
35
|
-
return typeof value === "number" &&
|
|
40
|
+
return (typeof value === "number" &&
|
|
41
|
+
Number.isFinite(value) &&
|
|
42
|
+
(setting.integer !== true || Number.isInteger(value)));
|
|
36
43
|
case "boolean":
|
|
37
44
|
return typeof value === "boolean";
|
|
38
45
|
case "select":
|
|
@@ -46,7 +53,10 @@ const withinBounds = (setting) => typeof setting.default !== "number" ||
|
|
|
46
53
|
((setting.min === undefined || setting.default >= setting.min) &&
|
|
47
54
|
(setting.max === undefined || setting.default <= setting.max));
|
|
48
55
|
const isFiniteNumber = (value) => typeof value === "number" && Number.isFinite(value);
|
|
49
|
-
/**
|
|
56
|
+
/**
|
|
57
|
+
* `options` only (and required) for select, `min`/`max`/`integer` only for
|
|
58
|
+
* number.
|
|
59
|
+
*/
|
|
50
60
|
const validateTypeExtras = (pluginKey, setting) => {
|
|
51
61
|
if (setting.type === "select") {
|
|
52
62
|
const options = setting.options;
|
|
@@ -68,11 +78,16 @@ const validateTypeExtras = (pluginKey, setting) => {
|
|
|
68
78
|
throw invalid(pluginKey, `Einstellung "${setting.key}": options gibt es nur bei "select".`);
|
|
69
79
|
}
|
|
70
80
|
if (setting.type !== "number") {
|
|
71
|
-
if (setting.min !== undefined ||
|
|
72
|
-
|
|
81
|
+
if (setting.min !== undefined ||
|
|
82
|
+
setting.max !== undefined ||
|
|
83
|
+
setting.integer !== undefined) {
|
|
84
|
+
throw invalid(pluginKey, `Einstellung "${setting.key}": min/max/integer gibt es nur bei "number".`);
|
|
73
85
|
}
|
|
74
86
|
return;
|
|
75
87
|
}
|
|
88
|
+
if (setting.integer !== undefined && typeof setting.integer !== "boolean") {
|
|
89
|
+
throw invalid(pluginKey, `Einstellung "${setting.key}": integer muss boolean sein.`);
|
|
90
|
+
}
|
|
76
91
|
for (const [name, bound] of [
|
|
77
92
|
["min", setting.min],
|
|
78
93
|
["max", setting.max],
|
|
@@ -111,6 +126,28 @@ const validateInvalidates = (pluginKey, setting, settings) => {
|
|
|
111
126
|
seen.add(key);
|
|
112
127
|
}
|
|
113
128
|
};
|
|
129
|
+
/** `hint`, `placeholder`, `section` and `width` of one setting. */
|
|
130
|
+
const validateDisplayFields = (pluginKey, setting) => {
|
|
131
|
+
for (const name of ["hint", "placeholder", "section"]) {
|
|
132
|
+
const value = setting[name];
|
|
133
|
+
if (value !== undefined && !(0, lib_1.isNonEmptyString)(value)) {
|
|
134
|
+
throw invalid(pluginKey, `Einstellung "${setting.key}": ${name} muss ein nicht-leerer Text sein.`);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
if (setting.placeholder !== undefined && NO_PLACEHOLDER_TYPES.has(setting.type)) {
|
|
138
|
+
throw invalid(pluginKey, `Einstellung "${setting.key}": placeholder gibt es nicht bei "${setting.type}".`);
|
|
139
|
+
}
|
|
140
|
+
const width = setting.width;
|
|
141
|
+
if (width === undefined) {
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
if (typeof width !== "string" || !SETTING_WIDTHS.has(width)) {
|
|
145
|
+
throw invalid(pluginKey, `Einstellung "${setting.key}": width muss "full" oder "half" sein.`);
|
|
146
|
+
}
|
|
147
|
+
if (setting.type === "boolean") {
|
|
148
|
+
throw invalid(pluginKey, `Einstellung "${setting.key}": width gibt es nicht bei "boolean".`);
|
|
149
|
+
}
|
|
150
|
+
};
|
|
114
151
|
const validateSettings = (pluginKey, settings) => {
|
|
115
152
|
const seen = new Set();
|
|
116
153
|
for (const setting of settings) {
|
|
@@ -134,6 +171,7 @@ const validateSettings = (pluginKey, settings) => {
|
|
|
134
171
|
throw invalid(pluginKey, `Einstellung "${setting.key}": required muss boolean sein.`);
|
|
135
172
|
}
|
|
136
173
|
validateTypeExtras(pluginKey, setting);
|
|
174
|
+
validateDisplayFields(pluginKey, setting);
|
|
137
175
|
validateInvalidates(pluginKey, setting, settings);
|
|
138
176
|
if (setting.default === undefined) {
|
|
139
177
|
continue;
|
|
@@ -184,6 +222,78 @@ const validateAdminPage = (pluginKey, path) => {
|
|
|
184
222
|
throw invalid(pluginKey, `admin_page "${String(path)}" muss unter "${ADMIN_PAGE_PREFIX}<plugin>" liegen und darf nicht mit "${BASE_PAGE_PREFIX}" beginnen.`);
|
|
185
223
|
}
|
|
186
224
|
};
|
|
225
|
+
/**
|
|
226
|
+
* Metadata per settings group: unique names, each used by a setting's
|
|
227
|
+
* `group`, `requires_feature` a declared feature key.
|
|
228
|
+
*/
|
|
229
|
+
const validateSettingGroups = (pluginKey, groups, settings, featureKeys) => {
|
|
230
|
+
if (groups === undefined) {
|
|
231
|
+
return;
|
|
232
|
+
}
|
|
233
|
+
if (!Array.isArray(groups)) {
|
|
234
|
+
throw invalid(pluginKey, "setting_groups muss eine Liste sein.");
|
|
235
|
+
}
|
|
236
|
+
const usedGroups = new Set(settings.map((setting) => setting.group));
|
|
237
|
+
const seen = new Set();
|
|
238
|
+
for (const group of groups) {
|
|
239
|
+
if (!(0, lib_1.isNonEmptyString)(group?.name)) {
|
|
240
|
+
throw invalid(pluginKey, "Eine Einstellungsgruppe hat keinen name.");
|
|
241
|
+
}
|
|
242
|
+
if (seen.has(group.name)) {
|
|
243
|
+
throw invalid(pluginKey, `Einstellungsgruppe "${group.name}" ist doppelt.`);
|
|
244
|
+
}
|
|
245
|
+
seen.add(group.name);
|
|
246
|
+
if (!usedGroups.has(group.name)) {
|
|
247
|
+
throw invalid(pluginKey, `Einstellungsgruppe "${group.name}" wird von keiner Einstellung verwendet.`);
|
|
248
|
+
}
|
|
249
|
+
for (const name of ["description", "note"]) {
|
|
250
|
+
if (group[name] !== undefined && !(0, lib_1.isNonEmptyString)(group[name])) {
|
|
251
|
+
throw invalid(pluginKey, `Einstellungsgruppe "${group.name}": ${name} muss ein nicht-leerer Text sein.`);
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
if (group.requires_feature !== undefined &&
|
|
255
|
+
!featureKeys.has(group.requires_feature)) {
|
|
256
|
+
throw invalid(pluginKey, `Einstellungsgruppe "${group.name}": requires_feature "${String(group.requires_feature)}" ist kein Feature dieses Plugins.`);
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
};
|
|
260
|
+
/** Optional texts and icon of the plugin's Admin page. */
|
|
261
|
+
const validatePresentation = (pluginKey, descriptor) => {
|
|
262
|
+
const icon = descriptor.icon;
|
|
263
|
+
if (icon !== undefined && (typeof icon !== "string" || !ICON_NAMES.has(icon))) {
|
|
264
|
+
throw invalid(pluginKey, `icon "${String(icon)}" ist kein bekannter Icon-Name.`);
|
|
265
|
+
}
|
|
266
|
+
for (const name of [
|
|
267
|
+
"summary",
|
|
268
|
+
"disable_hint",
|
|
269
|
+
"disable_confirm",
|
|
270
|
+
"features_heading",
|
|
271
|
+
"features_note",
|
|
272
|
+
"all_off_warning",
|
|
273
|
+
]) {
|
|
274
|
+
const value = descriptor[name];
|
|
275
|
+
if (value !== undefined && !(0, lib_1.isNonEmptyString)(value)) {
|
|
276
|
+
throw invalid(pluginKey, `${name} muss ein nicht-leerer Text sein.`);
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
if (descriptor.switchable === false &&
|
|
280
|
+
(descriptor.disable_hint !== undefined ||
|
|
281
|
+
descriptor.disable_confirm !== undefined)) {
|
|
282
|
+
throw invalid(pluginKey, "disable_hint und disable_confirm gibt es nur bei abschaltbaren Plugins.");
|
|
283
|
+
}
|
|
284
|
+
if (descriptor.all_off_warning !== undefined && descriptor.features.length === 0) {
|
|
285
|
+
throw invalid(pluginKey, "all_off_warning braucht mindestens ein Feature.");
|
|
286
|
+
}
|
|
287
|
+
const requireEnabled = descriptor.require_enabled_feature;
|
|
288
|
+
if (requireEnabled !== undefined) {
|
|
289
|
+
if (requireEnabled !== true) {
|
|
290
|
+
throw invalid(pluginKey, "require_enabled_feature muss true sein.");
|
|
291
|
+
}
|
|
292
|
+
if (!descriptor.features.some((feature) => feature.parent_key === undefined && feature.default_enabled)) {
|
|
293
|
+
throw invalid(pluginKey, "require_enabled_feature braucht mindestens ein Feature ohne parent_key mit default_enabled: true.");
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
};
|
|
187
297
|
/**
|
|
188
298
|
* Checks key format, unique feature keys, existing parents and the single
|
|
189
299
|
* allowed nesting level, plus the optional settings, actions and Admin page.
|
|
@@ -236,7 +346,9 @@ function validatePluginFeatureDescriptor(descriptor) {
|
|
|
236
346
|
throw invalid(pluginKey, `Feature "${feature.key}" ist zu tief verschachtelt; erlaubt ist eine Ebene.`);
|
|
237
347
|
}
|
|
238
348
|
}
|
|
349
|
+
validatePresentation(pluginKey, descriptor);
|
|
239
350
|
validateSettings(pluginKey, descriptor.settings ?? []);
|
|
351
|
+
validateSettingGroups(pluginKey, descriptor.setting_groups, descriptor.settings ?? [], new Set(byKey.keys()));
|
|
240
352
|
validateActions(pluginKey, descriptor.actions ?? []);
|
|
241
353
|
validateAdminPage(pluginKey, descriptor.admin_page);
|
|
242
354
|
}
|
|
@@ -248,4 +360,4 @@ function definePluginFeatures(descriptor) {
|
|
|
248
360
|
validatePluginFeatureDescriptor(descriptor);
|
|
249
361
|
return descriptor;
|
|
250
362
|
}
|
|
251
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzY3JpcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wdWJsaWMvZGVzY3JpcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWlRQSwwRUF5RUM7QUFNRCxvREFTQztBQXpWRCxxREFBdUQ7QUFFdkQsdUNBQTJEO0FBUTNELE1BQU0sV0FBVyxHQUFHLHdCQUF3QixDQUFBO0FBQzVDLE1BQU0sYUFBYSxHQUFHLElBQUksR0FBRyxDQUFDO0lBQzVCLFFBQVE7SUFDUixLQUFLO0lBQ0wsUUFBUTtJQUNSLFNBQVM7SUFDVCxRQUFRO0lBQ1IsUUFBUTtJQUNSLE9BQU87SUFDUCxPQUFPO0NBQ1IsQ0FBQyxDQUFBO0FBQ0YsTUFBTSxpQkFBaUIsR0FBRyxnQkFBZ0IsQ0FBQTtBQUMxQyxNQUFNLFlBQVksR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFBO0FBQ3BELE1BQU0saUJBQWlCLEdBQUcsMkJBQTJCLENBQUE7QUFDckQsTUFBTSxnQkFBZ0IsR0FBRyxrQ0FBa0MsQ0FBQTtBQUMzRCxNQUFNLGtCQUFrQixHQUFHLHNEQUFzRCxDQUFBO0FBRWpGLE1BQU0sT0FBTyxHQUFHLENBQUMsU0FBaUIsRUFBRSxPQUFlLEVBQWUsRUFBRSxDQUNsRSxJQUFJLG1CQUFXLENBQ2IsbUJBQVcsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUM5QiwyQ0FBMkMsU0FBUyxNQUFNLE9BQU8sRUFBRSxDQUNwRSxDQUFBO0FBRUgsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLE9BQWdDLEVBQVcsRUFBRTtJQUN2RSxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFBO0lBQzdCLFFBQVEsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLEtBQUssUUFBUTtZQUNYLE9BQU8sSUFBQSxzQkFBZ0IsRUFBQyxLQUFLLENBQUMsQ0FBQTtRQUNoQyxLQUFLLEtBQUssQ0FBQztRQUNY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
|
|
363
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzY3JpcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wdWJsaWMvZGVzY3JpcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQStaQSwwRUFnRkM7QUFNRCxvREFTQztBQTlmRCxxREFBdUQ7QUFFdkQsdUNBQTJEO0FBRTNELGlEQUFrRDtBQVFsRCxNQUFNLFdBQVcsR0FBRyx3QkFBd0IsQ0FBQTtBQUM1QyxNQUFNLGFBQWEsR0FBRyxJQUFJLEdBQUcsQ0FBQztJQUM1QixRQUFRO0lBQ1IsS0FBSztJQUNMLFFBQVE7SUFDUixTQUFTO0lBQ1QsUUFBUTtJQUNSLFFBQVE7SUFDUixPQUFPO0lBQ1AsT0FBTztDQUNSLENBQUMsQ0FBQTtBQUNGLE1BQU0saUJBQWlCLEdBQUcsZ0JBQWdCLENBQUE7QUFDMUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQTtBQUNwRCxNQUFNLGlCQUFpQixHQUFHLDJCQUEyQixDQUFBO0FBQ3JELE1BQU0sZ0JBQWdCLEdBQUcsa0NBQWtDLENBQUE7QUFDM0QsTUFBTSxrQkFBa0IsR0FBRyxzREFBc0QsQ0FBQTtBQUNqRixNQUFNLFVBQVUsR0FBd0IsSUFBSSxHQUFHLENBQUMsZ0NBQWlCLENBQUMsQ0FBQTtBQUNsRSxNQUFNLGNBQWMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFBO0FBQ2hELHFEQUFxRDtBQUNyRCxNQUFNLG9CQUFvQixHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQTtBQUU3RSxNQUFNLE9BQU8sR0FBRyxDQUFDLFNBQWlCLEVBQUUsT0FBZSxFQUFlLEVBQUUsQ0FDbEUsSUFBSSxtQkFBVyxDQUNiLG1CQUFXLENBQUMsS0FBSyxDQUFDLFlBQVksRUFDOUIsMkNBQTJDLFNBQVMsTUFBTSxPQUFPLEVBQUUsQ0FDcEUsQ0FBQTtBQUVILE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxPQUFnQyxFQUFXLEVBQUU7SUFDdkUsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQTtJQUM3QixRQUFRLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixLQUFLLFFBQVE7WUFDWCxPQUFPLElBQUEsc0JBQWdCLEVBQUMsS0FBSyxDQUFDLENBQUE7UUFDaEMsS0FBSyxLQUFLLENBQUM7UUFDWCxLQUFLLE9BQU87WUFDVixPQUFPLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxJQUFBLGVBQVMsRUFBQyxLQUFLLENBQUMsQ0FBQTtRQUN0RCxLQUFLLE9BQU87WUFDVixPQUFPLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDbkUsS0FBSyxRQUFRO1lBQ1gsT0FBTyxDQUNMLE9BQU8sS0FBSyxLQUFLLFFBQVE7Z0JBQ3pCLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO2dCQUN0QixDQUFDLE9BQU8sQ0FBQyxPQUFPLEtBQUssSUFBSSxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDdEQsQ0FBQTtRQUNILEtBQUssU0FBUztZQUNaLE9BQU8sT0FBTyxLQUFLLEtBQUssU0FBUyxDQUFBO1FBQ25DLEtBQUssUUFBUTtZQUNYLE9BQU8sQ0FDTCxPQUFPLEtBQUssS0FBSyxRQUFRO2dCQUN6QixDQUFDLE9BQU8sQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQyxDQUNqRSxDQUFBO1FBQ0g7WUFDRSxPQUFPLEtBQUssQ0FBQTtJQUNoQixDQUFDO0FBQ0gsQ0FBQyxDQUFBO0FBRUQsTUFBTSxZQUFZLEdBQUcsQ0FBQyxPQUFnQyxFQUFXLEVBQUUsQ0FDakUsT0FBTyxPQUFPLENBQUMsT0FBTyxLQUFLLFFBQVE7SUFDbkMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEtBQUssU0FBUyxJQUFJLE9BQU8sQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQztRQUM1RCxDQUFDLE9BQU8sQ0FBQyxHQUFHLEtBQUssU0FBUyxJQUFJLE9BQU8sQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7QUFFbEUsTUFBTSxjQUFjLEdBQUcsQ0FBQyxLQUFjLEVBQW1CLEVBQUUsQ0FDekQsT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUE7QUFFckQ7OztHQUdHO0FBQ0gsTUFBTSxrQkFBa0IsR0FBRyxDQUN6QixTQUFpQixFQUNqQixPQUFnQyxFQUMxQixFQUFFO0lBQ1IsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzlCLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUE7UUFDL0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNwRCxNQUFNLE9BQU8sQ0FBQyxTQUFTLEVBQUUsWUFBWSxPQUFPLENBQUMsR0FBRyxtQ0FBbUMsQ0FBQyxDQUFBO1FBQ3RGLENBQUM7UUFDRCxNQUFNLE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFBO1FBQ2hDLEtBQUssTUFBTSxNQUFNLElBQUksT0FBTyxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLElBQUEsc0JBQWdCLEVBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBQSxzQkFBZ0IsRUFBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDekUsTUFBTSxPQUFPLENBQ1gsU0FBUyxFQUNULFlBQVksT0FBTyxDQUFDLEdBQUcsMENBQTBDLENBQ2xFLENBQUE7WUFDSCxDQUFDO1lBQ0QsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUM3QixNQUFNLE9BQU8sQ0FDWCxTQUFTLEVBQ1QsWUFBWSxPQUFPLENBQUMsR0FBRyxxQkFBcUIsTUFBTSxDQUFDLEtBQUssWUFBWSxDQUNyRSxDQUFBO1lBQ0gsQ0FBQztZQUNELE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQzFCLENBQUM7SUFDSCxDQUFDO1NBQU0sSUFBSSxPQUFPLENBQUMsT0FBTyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ3pDLE1BQU0sT0FBTyxDQUFDLFNBQVMsRUFBRSxnQkFBZ0IsT0FBTyxDQUFDLEdBQUcsc0NBQXNDLENBQUMsQ0FBQTtJQUM3RixDQUFDO0lBRUQsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzlCLElBQ0UsT0FBTyxDQUFDLEdBQUcsS0FBSyxTQUFTO1lBQ3pCLE9BQU8sQ0FBQyxHQUFHLEtBQUssU0FBUztZQUN6QixPQUFPLENBQUMsT0FBTyxLQUFLLFNBQVMsRUFDN0IsQ0FBQztZQUNELE1BQU0sT0FBTyxDQUNYLFNBQVMsRUFDVCxnQkFBZ0IsT0FBTyxDQUFDLEdBQUcsOENBQThDLENBQzFFLENBQUE7UUFDSCxDQUFDO1FBQ0QsT0FBTTtJQUNSLENBQUM7SUFDRCxJQUFJLE9BQU8sQ0FBQyxPQUFPLEtBQUssU0FBUyxJQUFJLE9BQU8sT0FBTyxDQUFDLE9BQU8sS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUMxRSxNQUFNLE9BQU8sQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCLE9BQU8sQ0FBQyxHQUFHLCtCQUErQixDQUFDLENBQUE7SUFDdEYsQ0FBQztJQUNELEtBQUssTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtRQUMxQixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDO1FBQ3BCLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUM7S0FDWixFQUFFLENBQUM7UUFDWCxJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNsRCxNQUFNLE9BQU8sQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCLE9BQU8sQ0FBQyxHQUFHLE1BQU0sSUFBSSxnQ0FBZ0MsQ0FBQyxDQUFBO1FBQ2pHLENBQUM7SUFDSCxDQUFDO0lBQ0QsSUFDRSxPQUFPLENBQUMsR0FBRyxLQUFLLFNBQVM7UUFDekIsT0FBTyxDQUFDLEdBQUcsS0FBSyxTQUFTO1FBQ3pCLE9BQU8sQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFDekIsQ0FBQztRQUNELE1BQU0sT0FBTyxDQUFDLFNBQVMsRUFBRSxnQkFBZ0IsT0FBTyxDQUFDLEdBQUcsNEJBQTRCLENBQUMsQ0FBQTtJQUNuRixDQUFDO0FBQ0gsQ0FBQyxDQUFBO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxtQkFBbUIsR0FBRyxDQUMxQixTQUFpQixFQUNqQixPQUFnQyxFQUNoQyxRQUE0QyxFQUN0QyxFQUFFO0lBQ1IsTUFBTSxXQUFXLEdBQVksT0FBTyxDQUFDLFdBQVcsQ0FBQTtJQUNoRCxJQUFJLFdBQVcsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUM5QixPQUFNO0lBQ1IsQ0FBQztJQUNELElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDNUQsTUFBTSxPQUFPLENBQ1gsU0FBUyxFQUNULGdCQUFnQixPQUFPLENBQUMsR0FBRyxrREFBa0QsQ0FDOUUsQ0FBQTtJQUNILENBQUM7SUFDRCxNQUFNLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFBO0lBQzlCLEtBQUssTUFBTSxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7UUFDOUIsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQTtRQUNsRSxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ25FLE1BQU0sT0FBTyxDQUNYLFNBQVMsRUFDVCxnQkFBZ0IsT0FBTyxDQUFDLEdBQUcseUJBQXlCLE1BQU0sQ0FBQyxHQUFHLENBQUMsc0RBQXNELENBQ3RILENBQUE7UUFDSCxDQUFDO1FBQ0QsSUFBSSxHQUFHLEtBQUssT0FBTyxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDekMsTUFBTSxPQUFPLENBQ1gsU0FBUyxFQUNULGdCQUFnQixPQUFPLENBQUMsR0FBRyx5QkFBeUIsR0FBRyw2QkFBNkIsQ0FDckYsQ0FBQTtRQUNILENBQUM7UUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ2YsQ0FBQztBQUNILENBQUMsQ0FBQTtBQUVELG1FQUFtRTtBQUNuRSxNQUFNLHFCQUFxQixHQUFHLENBQzVCLFNBQWlCLEVBQ2pCLE9BQWdDLEVBQzFCLEVBQUU7SUFDUixLQUFLLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLGFBQWEsRUFBRSxTQUFTLENBQVUsRUFBRSxDQUFDO1FBQy9ELE1BQU0sS0FBSyxHQUFZLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNwQyxJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksQ0FBQyxJQUFBLHNCQUFnQixFQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDcEQsTUFBTSxPQUFPLENBQ1gsU0FBUyxFQUNULGdCQUFnQixPQUFPLENBQUMsR0FBRyxNQUFNLElBQUksbUNBQW1DLENBQ3pFLENBQUE7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUNELElBQUksT0FBTyxDQUFDLFdBQVcsS0FBSyxTQUFTLElBQUksb0JBQW9CLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ2hGLE1BQU0sT0FBTyxDQUNYLFNBQVMsRUFDVCxnQkFBZ0IsT0FBTyxDQUFDLEdBQUcscUNBQXFDLE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FDakYsQ0FBQTtJQUNILENBQUM7SUFDRCxNQUFNLEtBQUssR0FBWSxPQUFPLENBQUMsS0FBSyxDQUFBO0lBQ3BDLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ3hCLE9BQU07SUFDUixDQUFDO0lBQ0QsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDNUQsTUFBTSxPQUFPLENBQUMsU0FBUyxFQUFFLGdCQUFnQixPQUFPLENBQUMsR0FBRyx3Q0FBd0MsQ0FBQyxDQUFBO0lBQy9GLENBQUM7SUFDRCxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDL0IsTUFBTSxPQUFPLENBQUMsU0FBUyxFQUFFLGdCQUFnQixPQUFPLENBQUMsR0FBRyx1Q0FBdUMsQ0FBQyxDQUFBO0lBQzlGLENBQUM7QUFDSCxDQUFDLENBQUE7QUFFRCxNQUFNLGdCQUFnQixHQUFHLENBQ3ZCLFNBQWlCLEVBQ2pCLFFBQTRDLEVBQ3RDLEVBQUU7SUFDUixNQUFNLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFBO0lBQzlCLEtBQUssTUFBTSxPQUFPLElBQUksUUFBUSxFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDbkMsTUFBTSxPQUFPLENBQUMsU0FBUyxFQUFFLHFCQUFxQixPQUFPLENBQUMsR0FBRyw4QkFBOEIsQ0FBQyxDQUFBO1FBQzFGLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDMUIsTUFBTSxPQUFPLENBQUMsU0FBUyxFQUFFLHFCQUFxQixPQUFPLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFBO1FBQzVFLENBQUM7UUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUNyQixJQUFJLENBQUMsSUFBQSxzQkFBZ0IsRUFBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNyQyxNQUFNLE9BQU8sQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCLE9BQU8sQ0FBQyxHQUFHLG1CQUFtQixDQUFDLENBQUE7UUFDMUUsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLEtBQUssS0FBSyxTQUFTLElBQUksQ0FBQyxJQUFBLHNCQUFnQixFQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3BFLE1BQU0sT0FBTyxDQUFDLFNBQVMsRUFBRSxnQkFBZ0IsT0FBTyxDQUFDLEdBQUcsMkNBQTJDLENBQUMsQ0FBQTtRQUNsRyxDQUFDO1FBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDckMsTUFBTSxPQUFPLENBQUMsU0FBUyxFQUFFLGdCQUFnQixPQUFPLENBQUMsR0FBRyw4QkFBOEIsQ0FBQyxDQUFBO1FBQ3JGLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxRQUFRLEtBQUssU0FBUyxJQUFJLE9BQU8sT0FBTyxDQUFDLFFBQVEsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUM1RSxNQUFNLE9BQU8sQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCLE9BQU8sQ0FBQyxHQUFHLGdDQUFnQyxDQUFDLENBQUE7UUFDdkYsQ0FBQztRQUNELGtCQUFrQixDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQTtRQUN0QyxxQkFBcUIsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUE7UUFDekMsbUJBQW1CLENBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQTtRQUNqRCxJQUFJLE9BQU8sQ0FBQyxPQUFPLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDbEMsU0FBUTtRQUNWLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDOUIsTUFBTSxPQUFPLENBQUMsU0FBUyxFQUFFLHdCQUF3QixPQUFPLENBQUMsR0FBRyxtQ0FBbUMsQ0FBQyxDQUFBO1FBQ2xHLENBQUM7UUFDRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNqQyxNQUFNLE9BQU8sQ0FDWCxTQUFTLEVBQ1QsaUNBQWlDLE9BQU8sQ0FBQyxHQUFHLDBCQUEwQixPQUFPLENBQUMsSUFBSSxJQUFJLENBQ3ZGLENBQUE7UUFDSCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQzNCLE1BQU0sT0FBTyxDQUNYLFNBQVMsRUFDVCxpQ0FBaUMsT0FBTyxDQUFDLEdBQUcsZ0NBQWdDLENBQzdFLENBQUE7UUFDSCxDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUMsQ0FBQTtBQUVELE1BQU0sZUFBZSxHQUFHLENBQ3RCLFNBQWlCLEVBQ2pCLE9BQTBDLEVBQ3BDLEVBQUU7SUFDUixNQUFNLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFBO0lBQzlCLEtBQUssTUFBTSxNQUFNLElBQUksT0FBTyxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDbEMsTUFBTSxPQUFPLENBQUMsU0FBUyxFQUFFLGdCQUFnQixNQUFNLENBQUMsR0FBRyw4QkFBOEIsQ0FBQyxDQUFBO1FBQ3BGLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDekIsTUFBTSxPQUFPLENBQUMsU0FBUyxFQUFFLGdCQUFnQixNQUFNLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFBO1FBQ3RFLENBQUM7UUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUNwQixJQUFJLENBQUMsSUFBQSxzQkFBZ0IsRUFBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNwQyxNQUFNLE9BQU8sQ0FBQyxTQUFTLEVBQUUsV0FBVyxNQUFNLENBQUMsR0FBRyxtQkFBbUIsQ0FBQyxDQUFBO1FBQ3BFLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBQSxzQkFBZ0IsRUFBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztZQUMxQyxNQUFNLE9BQU8sQ0FBQyxTQUFTLEVBQUUsV0FBVyxNQUFNLENBQUMsR0FBRywwQkFBMEIsQ0FBQyxDQUFBO1FBQzNFLENBQUM7UUFDRCxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNuQyxNQUFNLE9BQU8sQ0FBQyxTQUFTLEVBQUUsV0FBVyxNQUFNLENBQUMsR0FBRyxnQ0FBZ0MsQ0FBQyxDQUFBO1FBQ2pGLENBQUM7UUFDRCxJQUFJLE1BQU0sQ0FBQyxPQUFPLEtBQUssU0FBUyxJQUFJLENBQUMsSUFBQSxzQkFBZ0IsRUFBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUN0RSxNQUFNLE9BQU8sQ0FBQyxTQUFTLEVBQUUsV0FBVyxNQUFNLENBQUMsR0FBRyxzQkFBc0IsQ0FBQyxDQUFBO1FBQ3ZFLENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQyxDQUFBO0FBRUQsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLFNBQWlCLEVBQUUsSUFBYSxFQUFRLEVBQUU7SUFDbkUsSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDdkIsT0FBTTtJQUNSLENBQUM7SUFDRCxJQUNFLE9BQU8sSUFBSSxLQUFLLFFBQVE7UUFDeEIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDO1FBQ25DLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUM7UUFDakMsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQzlCLENBQUM7UUFDRCxNQUFNLE9BQU8sQ0FDWCxTQUFTLEVBQ1QsZUFBZSxNQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixpQkFBaUIsd0NBQXdDLGdCQUFnQixhQUFhLENBQ25JLENBQUE7SUFDSCxDQUFDO0FBQ0gsQ0FBQyxDQUFBO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxxQkFBcUIsR0FBRyxDQUM1QixTQUFpQixFQUNqQixNQUFlLEVBQ2YsUUFBNEMsRUFDNUMsV0FBZ0MsRUFDMUIsRUFBRTtJQUNSLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ3pCLE9BQU07SUFDUixDQUFDO0lBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUMzQixNQUFNLE9BQU8sQ0FBQyxTQUFTLEVBQUUsc0NBQXNDLENBQUMsQ0FBQTtJQUNsRSxDQUFDO0lBQ0QsTUFBTSxVQUFVLEdBQUcsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7SUFDcEUsTUFBTSxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQTtJQUM5QixLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxJQUFBLHNCQUFnQixFQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ25DLE1BQU0sT0FBTyxDQUFDLFNBQVMsRUFBRSwwQ0FBMEMsQ0FBQyxDQUFBO1FBQ3RFLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDekIsTUFBTSxPQUFPLENBQUMsU0FBUyxFQUFFLHVCQUF1QixLQUFLLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxDQUFBO1FBQzdFLENBQUM7UUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNwQixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNoQyxNQUFNLE9BQU8sQ0FDWCxTQUFTLEVBQ1QsdUJBQXVCLEtBQUssQ0FBQyxJQUFJLDBDQUEwQyxDQUM1RSxDQUFBO1FBQ0gsQ0FBQztRQUNELEtBQUssTUFBTSxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFVLEVBQUUsQ0FBQztZQUNwRCxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxTQUFTLElBQUksQ0FBQyxJQUFBLHNCQUFnQixFQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ2hFLE1BQU0sT0FBTyxDQUNYLFNBQVMsRUFDVCx1QkFBdUIsS0FBSyxDQUFDLElBQUksTUFBTSxJQUFJLG1DQUFtQyxDQUMvRSxDQUFBO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFDRCxJQUNFLEtBQUssQ0FBQyxnQkFBZ0IsS0FBSyxTQUFTO1lBQ3BDLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsRUFDeEMsQ0FBQztZQUNELE1BQU0sT0FBTyxDQUNYLFNBQVMsRUFDVCx1QkFBdUIsS0FBSyxDQUFDLElBQUksd0JBQXdCLE1BQU0sQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsb0NBQW9DLENBQzVILENBQUE7UUFDSCxDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUMsQ0FBQTtBQUVELDBEQUEwRDtBQUMxRCxNQUFNLG9CQUFvQixHQUFHLENBQzNCLFNBQWlCLEVBQ2pCLFVBQW1DLEVBQzdCLEVBQUU7SUFDUixNQUFNLElBQUksR0FBWSxVQUFVLENBQUMsSUFBSSxDQUFBO0lBQ3JDLElBQUksSUFBSSxLQUFLLFNBQVMsSUFBSSxDQUFDLE9BQU8sSUFBSSxLQUFLLFFBQVEsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzlFLE1BQU0sT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUNBQWlDLENBQUMsQ0FBQTtJQUNsRixDQUFDO0lBQ0QsS0FBSyxNQUFNLElBQUksSUFBSTtRQUNqQixTQUFTO1FBQ1QsY0FBYztRQUNkLGlCQUFpQjtRQUNqQixrQkFBa0I7UUFDbEIsZUFBZTtRQUNmLGlCQUFpQjtLQUNULEVBQUUsQ0FBQztRQUNYLE1BQU0sS0FBSyxHQUFZLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUN2QyxJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksQ0FBQyxJQUFBLHNCQUFnQixFQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDcEQsTUFBTSxPQUFPLENBQUMsU0FBUyxFQUFFLEdBQUcsSUFBSSxtQ0FBbUMsQ0FBQyxDQUFBO1FBQ3RFLENBQUM7SUFDSCxDQUFDO0lBQ0QsSUFDRSxVQUFVLENBQUMsVUFBVSxLQUFLLEtBQUs7UUFDL0IsQ0FBQyxVQUFVLENBQUMsWUFBWSxLQUFLLFNBQVM7WUFDcEMsVUFBVSxDQUFDLGVBQWUsS0FBSyxTQUFTLENBQUMsRUFDM0MsQ0FBQztRQUNELE1BQU0sT0FBTyxDQUNYLFNBQVMsRUFDVCx5RUFBeUUsQ0FDMUUsQ0FBQTtJQUNILENBQUM7SUFDRCxJQUFJLFVBQVUsQ0FBQyxlQUFlLEtBQUssU0FBUyxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ2pGLE1BQU0sT0FBTyxDQUFDLFNBQVMsRUFBRSxpREFBaUQsQ0FBQyxDQUFBO0lBQzdFLENBQUM7SUFDRCxNQUFNLGNBQWMsR0FBWSxVQUFVLENBQUMsdUJBQXVCLENBQUE7SUFDbEUsSUFBSSxjQUFjLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDakMsSUFBSSxjQUFjLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDNUIsTUFBTSxPQUFPLENBQUMsU0FBUyxFQUFFLHlDQUF5QyxDQUFDLENBQUE7UUFDckUsQ0FBQztRQUNELElBQ0UsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDdkIsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEtBQUssU0FBUyxJQUFJLE9BQU8sQ0FBQyxlQUFlLENBQ3pFLEVBQ0QsQ0FBQztZQUNELE1BQU0sT0FBTyxDQUNYLFNBQVMsRUFDVCxtR0FBbUcsQ0FDcEcsQ0FBQTtRQUNILENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQyxDQUFBO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLCtCQUErQixDQUM3QyxVQUFtQztJQUVuQyxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBRS9DLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7UUFDakMsTUFBTSxPQUFPLENBQUMsU0FBUyxFQUFFLHVDQUF1QyxDQUFDLENBQUE7SUFDbkUsQ0FBQztJQUNELElBQUksT0FBTyxVQUFVLENBQUMsS0FBSyxLQUFLLFFBQVEsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztRQUNyRSxNQUFNLE9BQU8sQ0FBQyxTQUFTLEVBQUUsY0FBYyxDQUFDLENBQUE7SUFDMUMsQ0FBQztJQUVELElBQ0UsVUFBVSxDQUFDLFVBQVUsS0FBSyxTQUFTO1FBQ25DLE9BQU8sVUFBVSxDQUFDLFVBQVUsS0FBSyxTQUFTLEVBQzFDLENBQUM7UUFDRCxNQUFNLE9BQU8sQ0FBQyxTQUFTLEVBQUUsK0JBQStCLENBQUMsQ0FBQTtJQUMzRCxDQUFDO0lBQ0QsSUFDRSxVQUFVLENBQUMsZUFBZSxLQUFLLFNBQVM7UUFDeEMsT0FBTyxVQUFVLENBQUMsZUFBZSxLQUFLLFNBQVMsRUFDL0MsQ0FBQztRQUNELE1BQU0sT0FBTyxDQUFDLFNBQVMsRUFBRSxvQ0FBb0MsQ0FBQyxDQUFBO0lBQ2hFLENBQUM7SUFDRCxJQUFJLFVBQVUsQ0FBQyxVQUFVLEtBQUssS0FBSyxJQUFJLFVBQVUsQ0FBQyxlQUFlLEtBQUssS0FBSyxFQUFFLENBQUM7UUFDNUUsTUFBTSxPQUFPLENBQ1gsU0FBUyxFQUNULDZGQUE2RixDQUM5RixDQUFBO0lBQ0gsQ0FBQztJQUVELE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxFQUF1RCxDQUFBO0lBQzVFLEtBQUssTUFBTSxPQUFPLElBQUksVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ25DLE1BQU0sT0FBTyxDQUFDLFNBQVMsRUFBRSxnQkFBZ0IsT0FBTyxDQUFDLEdBQUcsOEJBQThCLENBQUMsQ0FBQTtRQUNyRixDQUFDO1FBQ0QsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzNCLE1BQU0sT0FBTyxDQUFDLFNBQVMsRUFBRSxnQkFBZ0IsT0FBTyxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQTtRQUN2RSxDQUFDO1FBQ0QsSUFBSSxPQUFPLE9BQU8sQ0FBQyxLQUFLLEtBQUssUUFBUSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQy9ELE1BQU0sT0FBTyxDQUFDLFNBQVMsRUFBRSxZQUFZLE9BQU8sQ0FBQyxHQUFHLG1CQUFtQixDQUFDLENBQUE7UUFDdEUsQ0FBQztRQUNELElBQUksT0FBTyxPQUFPLENBQUMsZUFBZSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ2pELE1BQU0sT0FBTyxDQUNYLFNBQVMsRUFDVCxZQUFZLE9BQU8sQ0FBQyxHQUFHLHVDQUF1QyxDQUMvRCxDQUFBO1FBQ0gsQ0FBQztRQUNELEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQTtJQUNqQyxDQUFDO0lBRUQsS0FBSyxNQUFNLE9BQU8sSUFBSSxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDMUMsSUFBSSxPQUFPLENBQUMsVUFBVSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3JDLFNBQVE7UUFDVixDQUFDO1FBQ0QsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUE7UUFDNUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsR0FBRyxLQUFLLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUMxQyxNQUFNLE9BQU8sQ0FDWCxTQUFTLEVBQ1QsV0FBVyxPQUFPLENBQUMsVUFBVSxrQkFBa0IsT0FBTyxDQUFDLEdBQUcsb0JBQW9CLENBQy9FLENBQUE7UUFDSCxDQUFDO1FBQ0QsSUFBSSxNQUFNLENBQUMsVUFBVSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3BDLE1BQU0sT0FBTyxDQUNYLFNBQVMsRUFDVCxZQUFZLE9BQU8sQ0FBQyxHQUFHLHNEQUFzRCxDQUM5RSxDQUFBO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUE7SUFDM0MsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDLENBQUE7SUFDdEQscUJBQXFCLENBQ25CLFNBQVMsRUFDVCxVQUFVLENBQUMsY0FBYyxFQUN6QixVQUFVLENBQUMsUUFBUSxJQUFJLEVBQUUsRUFDekIsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQ3RCLENBQUE7SUFDRCxlQUFlLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLENBQUE7SUFDcEQsaUJBQWlCLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQTtBQUNyRCxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0Isb0JBQW9CLENBS2xDLFVBQTRDO0lBRTVDLCtCQUErQixDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBQzNDLE9BQU8sVUFBVSxDQUFBO0FBQ25CLENBQUMifQ==
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.resolvePluginFeatureStates = resolvePluginFeatureStates;
|
|
4
4
|
exports.resolveEffectivePluginFeatures = resolveEffectivePluginFeatures;
|
|
5
5
|
exports.validateFeatureUpdate = validateFeatureUpdate;
|
|
6
|
+
exports.assertRequiredFeatureEnabled = assertRequiredFeatureEnabled;
|
|
6
7
|
const utils_1 = require("@medusajs/framework/utils");
|
|
7
8
|
/**
|
|
8
9
|
* Configured and effective values of every declared feature. A descriptor
|
|
@@ -75,4 +76,24 @@ function validateFeatureUpdate(descriptor, features) {
|
|
|
75
76
|
}
|
|
76
77
|
return result;
|
|
77
78
|
}
|
|
78
|
-
|
|
79
|
+
/**
|
|
80
|
+
* For a descriptor with `require_enabled_feature`: rejects (`INVALID_DATA`)
|
|
81
|
+
* an update that switches off the last enabled top-level feature. `features`
|
|
82
|
+
* are the values to persist (`validateFeatureUpdate`; a key without a value
|
|
83
|
+
* counts by its default), `current` the configured values before the update
|
|
84
|
+
* (`resolvePluginFeatureStates`). An update that does not reduce the enabled
|
|
85
|
+
* set is always allowed, so an already stored all-off state can be left and
|
|
86
|
+
* the plugin switch can be flipped with unchanged features.
|
|
87
|
+
*/
|
|
88
|
+
function assertRequiredFeatureEnabled(descriptor, features, current) {
|
|
89
|
+
if (descriptor.require_enabled_feature !== true) {
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
const topLevel = descriptor.features.filter((feature) => feature.parent_key === undefined);
|
|
93
|
+
const anyOnAfter = topLevel.some((feature) => (features[feature.key] ?? feature.default_enabled) === true);
|
|
94
|
+
const anyOnBefore = topLevel.some((feature) => current[feature.key] === true);
|
|
95
|
+
if (!anyOnAfter && anyOnBefore) {
|
|
96
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "Mindestens eine Funktion muss eingeschaltet bleiben.");
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWZmZWN0aXZlLWZlYXR1cmVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3B1YmxpYy9lZmZlY3RpdmUtZmVhdHVyZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUE4QkEsZ0VBd0NDO0FBR0Qsd0VBZUM7QUFPRCxzREFzQkM7QUFXRCxvRUFxQkM7QUFySkQscURBQXVEO0FBdUJ2RDs7Ozs7O0dBTUc7QUFDSCxTQUFnQiwwQkFBMEIsQ0FDeEMsVUFBbUMsRUFDbkMsTUFBbUM7SUFFbkMseUVBQXlFO0lBQ3pFLE1BQU0sYUFBYSxHQUNqQixVQUFVLENBQUMsVUFBVSxLQUFLLEtBQUs7UUFDN0IsQ0FBQyxDQUFDLElBQUk7UUFDTixDQUFDLENBQUMsTUFBTTtZQUNOLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTztZQUNoQixDQUFDLENBQUMsVUFBVSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUE7SUFFMUMsTUFBTSxVQUFVLEdBQUcsSUFBSSxHQUFHLEVBQW1CLENBQUE7SUFDN0MsS0FBSyxNQUFNLE9BQU8sSUFBSSxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDMUMsTUFBTSxLQUFLLEdBQUcsTUFBTSxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDM0MsVUFBVSxDQUFDLEdBQUcsQ0FDWixPQUFPLENBQUMsR0FBRyxFQUNYLE9BQU8sS0FBSyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUM3RCxDQUFBO0lBQ0gsQ0FBQztJQUVELE1BQU0sU0FBUyxHQUFHLENBQUMsT0FBZ0MsRUFBVyxFQUFFO1FBQzlELElBQUksQ0FBQyxhQUFhLElBQUksVUFBVSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDM0QsT0FBTyxLQUFLLENBQUE7UUFDZCxDQUFDO1FBQ0Qs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
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.reportPluginActionProgress = exports.shopMasterDataDescriptor = exports.getShopMasterData = exports.getShopAppearance = exports.getPluginSettings = exports.resolveBaseModule = exports.isBasePluginRegistered = exports.requirePluginFeature = exports.pluginFeatureGate = exports.isPluginFeatureEnabledByKey = exports.isPluginFeatureEnabled = exports.isOwnPluginEvent = exports.resolveEffectivePluginFeatures = exports.definePluginFeatures = exports.PLUGIN_FEATURES_MODULE = void 0;
|
|
3
|
+
exports.reportPluginActionProgress = exports.shopMasterDataDescriptor = exports.getShopMasterData = exports.getShopAppearance = exports.getPluginSettings = exports.PLUGIN_ICON_NAMES = exports.resolveBaseModule = exports.isBasePluginRegistered = exports.requirePluginFeature = exports.pluginFeatureGate = exports.isPluginFeatureEnabledByKey = exports.isPluginFeatureEnabled = exports.isOwnPluginEvent = exports.resolveEffectivePluginFeatures = exports.definePluginFeatures = exports.PLUGIN_FEATURES_MODULE = void 0;
|
|
4
4
|
var constants_1 = require("./constants");
|
|
5
5
|
Object.defineProperty(exports, "PLUGIN_FEATURES_MODULE", { enumerable: true, get: function () { return constants_1.PLUGIN_FEATURES_MODULE; } });
|
|
6
6
|
var descriptor_1 = require("./descriptor");
|
|
@@ -16,6 +16,8 @@ Object.defineProperty(exports, "requirePluginFeature", { enumerable: true, get:
|
|
|
16
16
|
var module_access_1 = require("./module-access");
|
|
17
17
|
Object.defineProperty(exports, "isBasePluginRegistered", { enumerable: true, get: function () { return module_access_1.isBasePluginRegistered; } });
|
|
18
18
|
Object.defineProperty(exports, "resolveBaseModule", { enumerable: true, get: function () { return module_access_1.resolveBaseModule; } });
|
|
19
|
+
var plugin_icons_1 = require("./plugin-icons");
|
|
20
|
+
Object.defineProperty(exports, "PLUGIN_ICON_NAMES", { enumerable: true, get: function () { return plugin_icons_1.PLUGIN_ICON_NAMES; } });
|
|
19
21
|
var settings_1 = require("./settings");
|
|
20
22
|
Object.defineProperty(exports, "getPluginSettings", { enumerable: true, get: function () { return settings_1.getPluginSettings; } });
|
|
21
23
|
var shop_master_data_1 = require("./shop-master-data");
|
|
@@ -24,4 +26,4 @@ Object.defineProperty(exports, "getShopMasterData", { enumerable: true, get: fun
|
|
|
24
26
|
Object.defineProperty(exports, "shopMasterDataDescriptor", { enumerable: true, get: function () { return shop_master_data_1.shopMasterDataDescriptor; } });
|
|
25
27
|
var action_progress_1 = require("./action-progress");
|
|
26
28
|
Object.defineProperty(exports, "reportPluginActionProgress", { enumerable: true, get: function () { return action_progress_1.reportPluginActionProgress; } });
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcHVibGljL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlDQUFvRDtBQUEzQyxtSEFBQSxzQkFBc0IsT0FBQTtBQUMvQiwyQ0FBbUQ7QUFBMUMsa0hBQUEsb0JBQW9CLE9BQUE7QUFDN0IsMkRBQXFFO0FBQTVELG9JQUFBLDhCQUE4QixPQUFBO0FBQ3ZDLDZDQU1zQjtBQUxwQiwrR0FBQSxnQkFBZ0IsT0FBQTtBQUNoQixxSEFBQSxzQkFBc0IsT0FBQTtBQUN0QiwwSEFBQSwyQkFBMkIsT0FBQTtBQUMzQixnSEFBQSxpQkFBaUIsT0FBQTtBQUNqQixtSEFBQSxvQkFBb0IsT0FBQTtBQUV0QixpREFBMkU7QUFBbEUsdUhBQUEsc0JBQXNCLE9BQUE7QUFBRSxrSEFBQSxpQkFBaUIsT0FBQTtBQUNsRCwrQ0FBa0Q7QUFBekMsaUhBQUEsaUJBQWlCLE9BQUE7QUFDMUIsdUNBQThDO0FBQXJDLDZHQUFBLGlCQUFpQixPQUFBO0FBQzFCLHVEQVMyQjtBQVJ6QixxSEFBQSxpQkFBaUIsT0FBQTtBQUNqQixxSEFBQSxpQkFBaUIsT0FBQTtBQUNqQiw0SEFBQSx3QkFBd0IsT0FBQTtBQU8xQixxREFHMEI7QUFGeEIsNkhBQUEsMEJBQTBCLE9BQUEifQ==
|