@endora-commerce/mod-settings 0.100.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/LICENSE +21 -0
- package/README.md +58 -0
- package/dist/admin/api/settings-client.d.ts +47 -0
- package/dist/admin/api/settings-client.d.ts.map +1 -0
- package/dist/admin/api/settings-client.js +41 -0
- package/dist/admin/api/settings-client.js.map +1 -0
- package/dist/admin/components/ActivationPointerRow.d.ts +21 -0
- package/dist/admin/components/ActivationPointerRow.d.ts.map +1 -0
- package/dist/admin/components/ActivationPointerRow.js +28 -0
- package/dist/admin/components/ActivationPointerRow.js.map +1 -0
- package/dist/admin/components/AssetIdSettingInput.d.ts +12 -0
- package/dist/admin/components/AssetIdSettingInput.d.ts.map +1 -0
- package/dist/admin/components/AssetIdSettingInput.js +10 -0
- package/dist/admin/components/AssetIdSettingInput.js.map +1 -0
- package/dist/admin/components/ConfigurationReferenceInput.d.ts +39 -0
- package/dist/admin/components/ConfigurationReferenceInput.d.ts.map +1 -0
- package/dist/admin/components/ConfigurationReferenceInput.js +74 -0
- package/dist/admin/components/ConfigurationReferenceInput.js.map +1 -0
- package/dist/admin/components/ConflictBanner.d.ts +13 -0
- package/dist/admin/components/ConflictBanner.d.ts.map +1 -0
- package/dist/admin/components/ConflictBanner.js +12 -0
- package/dist/admin/components/ConflictBanner.js.map +1 -0
- package/dist/admin/components/ImageSettingInput.d.ts +34 -0
- package/dist/admin/components/ImageSettingInput.d.ts.map +1 -0
- package/dist/admin/components/ImageSettingInput.js +36 -0
- package/dist/admin/components/ImageSettingInput.js.map +1 -0
- package/dist/admin/components/QuoteRequestsSettingsTab.d.ts +3 -0
- package/dist/admin/components/QuoteRequestsSettingsTab.d.ts.map +1 -0
- package/dist/admin/components/QuoteRequestsSettingsTab.js +69 -0
- package/dist/admin/components/QuoteRequestsSettingsTab.js.map +1 -0
- package/dist/admin/components/SellerCompanyDataInput.d.ts +22 -0
- package/dist/admin/components/SellerCompanyDataInput.d.ts.map +1 -0
- package/dist/admin/components/SellerCompanyDataInput.js +53 -0
- package/dist/admin/components/SellerCompanyDataInput.js.map +1 -0
- package/dist/admin/components/SettingRowEditor.d.ts +55 -0
- package/dist/admin/components/SettingRowEditor.d.ts.map +1 -0
- package/dist/admin/components/SettingRowEditor.js +160 -0
- package/dist/admin/components/SettingRowEditor.js.map +1 -0
- package/dist/admin/index.d.ts +39 -0
- package/dist/admin/index.d.ts.map +1 -0
- package/dist/admin/index.js +87 -0
- package/dist/admin/index.js.map +1 -0
- package/dist/admin/pages/CachePage.d.ts +14 -0
- package/dist/admin/pages/CachePage.d.ts.map +1 -0
- package/dist/admin/pages/CachePage.js +124 -0
- package/dist/admin/pages/CachePage.js.map +1 -0
- package/dist/admin/pages/GroupsPage.d.ts +17 -0
- package/dist/admin/pages/GroupsPage.d.ts.map +1 -0
- package/dist/admin/pages/GroupsPage.js +84 -0
- package/dist/admin/pages/GroupsPage.js.map +1 -0
- package/dist/admin/pages/SettingsPage.d.ts +20 -0
- package/dist/admin/pages/SettingsPage.d.ts.map +1 -0
- package/dist/admin/pages/SettingsPage.js +453 -0
- package/dist/admin/pages/SettingsPage.js.map +1 -0
- package/dist/backend/cli/cache-clear.d.ts +23 -0
- package/dist/backend/cli/cache-clear.d.ts.map +1 -0
- package/dist/backend/cli/cache-clear.js +37 -0
- package/dist/backend/cli/cache-clear.js.map +1 -0
- package/dist/backend/index.d.ts +100 -0
- package/dist/backend/index.d.ts.map +1 -0
- package/dist/backend/index.js +125 -0
- package/dist/backend/index.js.map +1 -0
- package/dist/backend/routes.admin.d.ts +308 -0
- package/dist/backend/routes.admin.d.ts.map +1 -0
- package/dist/backend/routes.admin.js +188 -0
- package/dist/backend/routes.admin.js.map +1 -0
- package/dist/backend/routes.cache.d.ts +20 -0
- package/dist/backend/routes.cache.d.ts.map +1 -0
- package/dist/backend/routes.cache.js +22 -0
- package/dist/backend/routes.cache.js.map +1 -0
- package/dist/backend/routes.homepage.d.ts +15 -0
- package/dist/backend/routes.homepage.d.ts.map +1 -0
- package/dist/backend/routes.homepage.js +20 -0
- package/dist/backend/routes.homepage.js.map +1 -0
- package/dist/backend/routes.product-card-buttons.d.ts +15 -0
- package/dist/backend/routes.product-card-buttons.d.ts.map +1 -0
- package/dist/backend/routes.product-card-buttons.js +21 -0
- package/dist/backend/routes.product-card-buttons.js.map +1 -0
- package/dist/backend/routes.speculation-rules.d.ts +16 -0
- package/dist/backend/routes.speculation-rules.d.ts.map +1 -0
- package/dist/backend/routes.speculation-rules.js +21 -0
- package/dist/backend/routes.speculation-rules.js.map +1 -0
- package/dist/backend/routes.storefront.d.ts +15 -0
- package/dist/backend/routes.storefront.d.ts.map +1 -0
- package/dist/backend/routes.storefront.js +20 -0
- package/dist/backend/routes.storefront.js.map +1 -0
- package/dist/backend/services/cache-admin.service.d.ts +83 -0
- package/dist/backend/services/cache-admin.service.d.ts.map +1 -0
- package/dist/backend/services/cache-admin.service.js +148 -0
- package/dist/backend/services/cache-admin.service.js.map +1 -0
- package/dist/backend/services/homepage-resolver.d.ts +25 -0
- package/dist/backend/services/homepage-resolver.d.ts.map +1 -0
- package/dist/backend/services/homepage-resolver.js +31 -0
- package/dist/backend/services/homepage-resolver.js.map +1 -0
- package/dist/backend/services/product-card-buttons-resolver.d.ts +25 -0
- package/dist/backend/services/product-card-buttons-resolver.d.ts.map +1 -0
- package/dist/backend/services/product-card-buttons-resolver.js +37 -0
- package/dist/backend/services/product-card-buttons-resolver.js.map +1 -0
- package/dist/backend/services/registered-settings-manifests.d.ts +45 -0
- package/dist/backend/services/registered-settings-manifests.d.ts.map +1 -0
- package/dist/backend/services/registered-settings-manifests.js +55 -0
- package/dist/backend/services/registered-settings-manifests.js.map +1 -0
- package/dist/backend/services/setting-write-validators.d.ts +43 -0
- package/dist/backend/services/setting-write-validators.d.ts.map +1 -0
- package/dist/backend/services/setting-write-validators.js +43 -0
- package/dist/backend/services/setting-write-validators.js.map +1 -0
- package/dist/backend/services/settings-admin.service.d.ts +206 -0
- package/dist/backend/services/settings-admin.service.d.ts.map +1 -0
- package/dist/backend/services/settings-admin.service.js +642 -0
- package/dist/backend/services/settings-admin.service.js.map +1 -0
- package/dist/backend/services/shop-info-resolver.d.ts +15 -0
- package/dist/backend/services/shop-info-resolver.d.ts.map +1 -0
- package/dist/backend/services/shop-info-resolver.js +44 -0
- package/dist/backend/services/shop-info-resolver.js.map +1 -0
- package/dist/backend/services/speculation-rules-resolver.d.ts +28 -0
- package/dist/backend/services/speculation-rules-resolver.d.ts.map +1 -0
- package/dist/backend/services/speculation-rules-resolver.js +39 -0
- package/dist/backend/services/speculation-rules-resolver.js.map +1 -0
- package/dist/manifest.d.ts +194 -0
- package/dist/manifest.d.ts.map +1 -0
- package/dist/manifest.js +379 -0
- package/dist/manifest.js.map +1 -0
- package/docs/settings/index.md +171 -0
- package/i18n/en.json +167 -0
- package/i18n/pl.json +167 -0
- package/package.json +96 -0
- package/tailwind.css +14 -0
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `settings cache-clear` — flush selected (or all) Redis cache namespaces.
|
|
3
|
+
*
|
|
4
|
+
* pnpm --filter backend run cache:clear -- all
|
|
5
|
+
* pnpm --filter backend run cache:clear -- blog cms
|
|
6
|
+
* pnpm --filter backend run cache:clear -- --list
|
|
7
|
+
*
|
|
8
|
+
* Mirrors the Admin UI "Clear cache" page, so the same flush is available from a
|
|
9
|
+
* shell or a deploy hook.
|
|
10
|
+
*
|
|
11
|
+
* ## What composing bought here
|
|
12
|
+
*
|
|
13
|
+
* It was `scripts/cache-clear.ts`, and it opened **its own** `ioredis`
|
|
14
|
+
* connection from `REDIS_URL` and built its own `CacheAdminService` over it. The
|
|
15
|
+
* composed `settingsCacheAdminService` is built over the composition's Redis
|
|
16
|
+
* client, so this command now flushes through the same object the admin screen
|
|
17
|
+
* does, on the connection the platform configured — and a deployment decoration
|
|
18
|
+
* over that registration reaches it.
|
|
19
|
+
*/
|
|
20
|
+
import type { ModuleCliCommandContext } from '@endora-commerce/contracts';
|
|
21
|
+
import type { ModuleContext } from '@endora-commerce/platform/kernel';
|
|
22
|
+
export declare function cacheClear({ ctx, argv, out, err, }: ModuleCliCommandContext<ModuleContext>): Promise<number>;
|
|
23
|
+
//# sourceMappingURL=cache-clear.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache-clear.d.ts","sourceRoot":"","sources":["../../../src/backend/cli/cache-clear.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAiBtE,wBAAsB,UAAU,CAAC,EAC/B,GAAG,EACH,IAAI,EACJ,GAAG,EACH,GAAG,GACJ,EAAE,uBAAuB,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CA4B1D"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { CACHE_NAMESPACES } from '../services/cache-admin.service.js';
|
|
2
|
+
function usage(out) {
|
|
3
|
+
out('Usage: settings cache-clear <all | namespace…>');
|
|
4
|
+
out('');
|
|
5
|
+
out('Available namespaces:');
|
|
6
|
+
for (const namespace of CACHE_NAMESPACES) {
|
|
7
|
+
out(` ${namespace.key.padEnd(16)} ${namespace.description}`);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
export async function cacheClear({ ctx, argv, out, err, }) {
|
|
11
|
+
if (argv.length === 0 || argv.includes('--help') || argv.includes('-h')) {
|
|
12
|
+
usage(out);
|
|
13
|
+
return argv.length === 0 ? 1 : 0;
|
|
14
|
+
}
|
|
15
|
+
if (argv.includes('--list')) {
|
|
16
|
+
usage(out);
|
|
17
|
+
return 0;
|
|
18
|
+
}
|
|
19
|
+
const known = new Set(CACHE_NAMESPACES.map((n) => n.key));
|
|
20
|
+
const wantAll = argv.includes('all');
|
|
21
|
+
if (!wantAll) {
|
|
22
|
+
const unknown = argv.filter((a) => !known.has(a));
|
|
23
|
+
if (unknown.length > 0) {
|
|
24
|
+
err(`Unknown namespace(s): ${unknown.join(', ')}`);
|
|
25
|
+
usage(out);
|
|
26
|
+
return 1;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
const service = ctx.cradle().settingsCacheAdminService;
|
|
30
|
+
const result = await service.clear(wantAll ? 'all' : [...argv]);
|
|
31
|
+
for (const cleared of result.cleared) {
|
|
32
|
+
out(` ${cleared.key.padEnd(16)} ${cleared.deletedKeysCount} key(s) deleted`);
|
|
33
|
+
}
|
|
34
|
+
out(`Done. ${result.totalDeletedKeys} key(s) deleted in total.`);
|
|
35
|
+
return 0;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=cache-clear.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache-clear.js","sourceRoot":"","sources":["../../../src/backend/cli/cache-clear.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,gBAAgB,EAA0B,MAAM,oCAAoC,CAAC;AAO9F,SAAS,KAAK,CAAC,GAA2B;IACxC,GAAG,CAAC,gDAAgD,CAAC,CAAC;IACtD,GAAG,CAAC,EAAE,CAAC,CAAC;IACR,GAAG,CAAC,uBAAuB,CAAC,CAAC;IAC7B,KAAK,MAAM,SAAS,IAAI,gBAAgB,EAAE,CAAC;QACzC,GAAG,CAAC,KAAK,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;IAChE,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,EAC/B,GAAG,EACH,IAAI,EACJ,GAAG,EACH,GAAG,GACoC;IACvC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACxE,KAAK,CAAC,GAAG,CAAC,CAAC;QACX,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,KAAK,CAAC,GAAG,CAAC,CAAC;QACX,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACrC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,GAAG,CAAC,yBAAyB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACnD,KAAK,CAAC,GAAG,CAAC,CAAC;YACX,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,EAAoB,CAAC,yBAAyB,CAAC;IACzE,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IAChE,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACrC,GAAG,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,gBAAgB,iBAAiB,CAAC,CAAC;IAChF,CAAC;IACD,GAAG,CAAC,SAAS,MAAM,CAAC,gBAAgB,2BAA2B,CAAC,CAAC;IACjE,OAAO,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import type { EntityManager } from '@mikro-orm/postgresql';
|
|
2
|
+
import type { FastifyRequest } from 'fastify';
|
|
3
|
+
import type { Redis } from 'ioredis';
|
|
4
|
+
import type { EventBus } from '@endora-commerce/platform/events';
|
|
5
|
+
import type { AuditPort } from '@endora-commerce/platform/kernel';
|
|
6
|
+
import type { ModuleContext } from '@endora-commerce/platform/kernel';
|
|
7
|
+
import type { RequireAdminFactory } from '@endora-commerce/platform/kernel';
|
|
8
|
+
import type { SettingsCacheInvalidation } from '@endora-commerce/platform/kernel';
|
|
9
|
+
import type { SettingsReadPort } from '@endora-commerce/platform/kernel';
|
|
10
|
+
import { SettingsAdminService, type AdminAuditContext, type ModulePresencePort } from './services/settings-admin.service.js';
|
|
11
|
+
import { SettingWriteValidatorRegistry } from './services/setting-write-validators.js';
|
|
12
|
+
import { CacheAdminService } from './services/cache-admin.service.js';
|
|
13
|
+
import { ShopInfoResolver } from './services/shop-info-resolver.js';
|
|
14
|
+
import { HomepageResolver } from './services/homepage-resolver.js';
|
|
15
|
+
import { ProductCardButtonsResolver } from './services/product-card-buttons-resolver.js';
|
|
16
|
+
import { SpeculationRulesResolver } from './services/speculation-rules-resolver.js';
|
|
17
|
+
/**
|
|
18
|
+
* `settings` — the admin surface, after the kernel took the reader (feature
|
|
19
|
+
* 072, wave 2, T118).
|
|
20
|
+
*
|
|
21
|
+
* The kernel's settings reader behind `settingsReadPort`, its cache and the
|
|
22
|
+
* cache invalidator are composed by a root through `composeSettingsKernel`: a
|
|
23
|
+
* settings read backs behaviour in nearly
|
|
24
|
+
* every module, so it must not be gated on whether an operator wants the
|
|
25
|
+
* settings screens. What is left here is genuinely this module's — the admin
|
|
26
|
+
* write service, the cache-clear action, the four storefront resolvers and six
|
|
27
|
+
* route files.
|
|
28
|
+
*
|
|
29
|
+
* **The optional `requireAdmin` defaulted to a permissive no-op.** Absent, every
|
|
30
|
+
* `/api/v1/admin/settings/*` route — including the write path and the
|
|
31
|
+
* cache-clear action — was reachable by anyone. Both compositions passed a real
|
|
32
|
+
* guard, so nothing was exposed; but of the dozen optional arguments these
|
|
33
|
+
* conversions have removed, this is the only one whose absence *granted* access
|
|
34
|
+
* rather than skipping a step. It is required now.
|
|
35
|
+
*
|
|
36
|
+
* `modulePresence` and `auditLogService` become required for the ordinary
|
|
37
|
+
* reason: absent, FR-033's refusal of writes to a switched-off module's settings
|
|
38
|
+
* simply does not happen, and settings changes go unrecorded.
|
|
39
|
+
*
|
|
40
|
+
* `dictionaryValidator` is deleted. It was declared "a feature 017 no-op for
|
|
41
|
+
* now; reserved for future typed dictionary-code settings", passed by neither
|
|
42
|
+
* composition, and read nowhere in the module.
|
|
43
|
+
*
|
|
44
|
+
* `secretEncryptionKey` stays optional, on the kernel half, because its absence
|
|
45
|
+
* *refuses* secret writes rather than permitting them.
|
|
46
|
+
*/
|
|
47
|
+
export interface SettingsCradle {
|
|
48
|
+
readonly emFactory: () => EntityManager;
|
|
49
|
+
readonly eventBus: EventBus;
|
|
50
|
+
readonly auditLogService: AuditPort;
|
|
51
|
+
readonly requireAdmin: RequireAdminFactory;
|
|
52
|
+
readonly adminAuditActorResolver: (req: FastifyRequest) => AdminAuditContext;
|
|
53
|
+
/** The kernel reader, so the resolvers read through the same cache. */
|
|
54
|
+
readonly settingsReadPort: SettingsReadPort;
|
|
55
|
+
/**
|
|
56
|
+
* The kernel cache the reader reads through, so the **write seam** can drop
|
|
57
|
+
* it and await the drop (issue #45). Root-supplied alongside
|
|
58
|
+
* `settingsReadPort` — the same object, seen from the writing side.
|
|
59
|
+
*/
|
|
60
|
+
readonly settingsCache: SettingsCacheInvalidation;
|
|
61
|
+
/** Root-supplied: `redis` for the cache-admin action's flush. */
|
|
62
|
+
readonly redis: Redis;
|
|
63
|
+
/** Root-supplied from `_lifecycle`, so this module keeps no edge into it. */
|
|
64
|
+
readonly settingsModulePresence: ModulePresencePort;
|
|
65
|
+
/** Base64 32-byte key for `secret` values; absent refuses secret writes. */
|
|
66
|
+
readonly settingsSecretEncryptionKey: string | undefined;
|
|
67
|
+
readonly settingsAdminService: SettingsAdminService;
|
|
68
|
+
/**
|
|
69
|
+
* Feature 078, D-95.2 — the contribution seam a setting's **owning** module
|
|
70
|
+
* pushes a validator into. An ordinary registration rather than a port: a
|
|
71
|
+
* contribution is a push made once from a boot hook, and a gate would make it
|
|
72
|
+
* a pull with a failure mode.
|
|
73
|
+
*/
|
|
74
|
+
readonly settingWriteValidatorRegistry: SettingWriteValidatorRegistry;
|
|
75
|
+
readonly settingsCacheAdminService: CacheAdminService;
|
|
76
|
+
readonly settingsShopInfoResolver: ShopInfoResolver;
|
|
77
|
+
readonly settingsHomepageResolver: HomepageResolver;
|
|
78
|
+
readonly settingsProductCardButtonsResolver: ProductCardButtonsResolver;
|
|
79
|
+
readonly settingsSpeculationRulesResolver: SpeculationRulesResolver;
|
|
80
|
+
}
|
|
81
|
+
export declare function registerModule(ctx: ModuleContext): void;
|
|
82
|
+
/**
|
|
83
|
+
* This module owns **no persisted entity**, and says so with an empty array
|
|
84
|
+
* rather than by omission (D-168).
|
|
85
|
+
*
|
|
86
|
+
* The two are not the same thing to the platform. When the package is
|
|
87
|
+
* *installed*, `src/packages/package-runtime.ts` reads `exported['entities']`
|
|
88
|
+
* and answers a missing export with `[]` — so "this module has no table" and
|
|
89
|
+
* "somebody forgot the array" arrive at the host as the same silence, and the
|
|
90
|
+
* only symptom of the second is a query against a table nobody created. The
|
|
91
|
+
* declaration is what makes the first case a statement.
|
|
92
|
+
*
|
|
93
|
+
* The settings *store* is the kernel's (`src/kernel/settings/`), which is why
|
|
94
|
+
* this module reads and writes rows it does not own the classes for.
|
|
95
|
+
*
|
|
96
|
+
* A first entity added here goes in this array in the same merge request, and
|
|
97
|
+
* `test/unit/packages/module-package-entity-surface.test.ts` is what says so.
|
|
98
|
+
*/
|
|
99
|
+
export declare const entities: readonly never[];
|
|
100
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/backend/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAKlE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAEtE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EACL,oBAAoB,EACpB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACxB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,6BAA6B,EAAE,MAAM,wCAAwC,CAAC;AACvF,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,0BAA0B,EAAE,MAAM,6CAA6C,CAAC;AACzF,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AASpF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,aAAa,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,eAAe,EAAE,SAAS,CAAC;IACpC,QAAQ,CAAC,YAAY,EAAE,mBAAmB,CAAC;IAC3C,QAAQ,CAAC,uBAAuB,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,iBAAiB,CAAC;IAC7E,uEAAuE;IACvE,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAC5C;;;;OAIG;IACH,QAAQ,CAAC,aAAa,EAAE,yBAAyB,CAAC;IAClD,iEAAiE;IACjE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,6EAA6E;IAC7E,QAAQ,CAAC,sBAAsB,EAAE,kBAAkB,CAAC;IACpD,4EAA4E;IAC5E,QAAQ,CAAC,2BAA2B,EAAE,MAAM,GAAG,SAAS,CAAC;IACzD,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;IACpD;;;;;OAKG;IACH,QAAQ,CAAC,6BAA6B,EAAE,6BAA6B,CAAC;IACtE,QAAQ,CAAC,yBAAyB,EAAE,iBAAiB,CAAC;IACtD,QAAQ,CAAC,wBAAwB,EAAE,gBAAgB,CAAC;IACpD,QAAQ,CAAC,wBAAwB,EAAE,gBAAgB,CAAC;IACpD,QAAQ,CAAC,kCAAkC,EAAE,0BAA0B,CAAC;IACxE,QAAQ,CAAC,gCAAgC,EAAE,wBAAwB,CAAC;CACrE;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,CAgIvD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,QAAQ,EAAE,SAAS,KAAK,EAAO,CAAC"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { lazyPort } from '@endora-commerce/platform/kernel';
|
|
2
|
+
import { SettingsAdminService, } from './services/settings-admin.service.js';
|
|
3
|
+
import { SettingWriteValidatorRegistry } from './services/setting-write-validators.js';
|
|
4
|
+
import { CacheAdminService } from './services/cache-admin.service.js';
|
|
5
|
+
import { ShopInfoResolver } from './services/shop-info-resolver.js';
|
|
6
|
+
import { HomepageResolver } from './services/homepage-resolver.js';
|
|
7
|
+
import { ProductCardButtonsResolver } from './services/product-card-buttons-resolver.js';
|
|
8
|
+
import { SpeculationRulesResolver } from './services/speculation-rules-resolver.js';
|
|
9
|
+
import { SettingsManifestCollectionService } from './services/registered-settings-manifests.js';
|
|
10
|
+
import { registerSettingsAdminRoutes } from './routes.admin.js';
|
|
11
|
+
import { registerSettingsStorefrontRoutes } from './routes.storefront.js';
|
|
12
|
+
import { registerSettingsCacheRoutes } from './routes.cache.js';
|
|
13
|
+
import { registerSettingsHomepageRoutes } from './routes.homepage.js';
|
|
14
|
+
import { registerSettingsProductCardButtonsRoutes } from './routes.product-card-buttons.js';
|
|
15
|
+
import { registerSettingsSpeculationRulesRoutes } from './routes.speculation-rules.js';
|
|
16
|
+
export function registerModule(ctx) {
|
|
17
|
+
ctx.di.register({
|
|
18
|
+
settingWriteValidatorRegistry: ctx
|
|
19
|
+
.asFunction(({ settingsModulePresence }) => new SettingWriteValidatorRegistry(settingsModulePresence))
|
|
20
|
+
.singleton(),
|
|
21
|
+
settingsCacheAdminService: ctx
|
|
22
|
+
.asFunction(({ redis }) => new CacheAdminService(redis))
|
|
23
|
+
.singleton(),
|
|
24
|
+
settingsShopInfoResolver: ctx
|
|
25
|
+
.asFunction(() => new ShopInfoResolver(lazyPort(ctx, 'settingsReadPort')))
|
|
26
|
+
.singleton(),
|
|
27
|
+
settingsHomepageResolver: ctx
|
|
28
|
+
.asFunction(() => new HomepageResolver(lazyPort(ctx, 'settingsReadPort')))
|
|
29
|
+
.singleton(),
|
|
30
|
+
settingsProductCardButtonsResolver: ctx
|
|
31
|
+
.asFunction(() => new ProductCardButtonsResolver(lazyPort(ctx, 'settingsReadPort')))
|
|
32
|
+
.singleton(),
|
|
33
|
+
settingsSpeculationRulesResolver: ctx
|
|
34
|
+
.asFunction(() => new SpeculationRulesResolver(lazyPort(ctx, 'settingsReadPort')))
|
|
35
|
+
.singleton(),
|
|
36
|
+
});
|
|
37
|
+
/**
|
|
38
|
+
* Feature 080 (T040b) — how a module registry becomes the boot reconcile's
|
|
39
|
+
* list of settings manifests: this module's own manifest first, so its
|
|
40
|
+
* `general` group exists before anything falling back to it is inserted, and
|
|
41
|
+
* each module code exactly once.
|
|
42
|
+
*
|
|
43
|
+
* Published because both composition roots need it and both used to import
|
|
44
|
+
* this module's source for it. The registry stays the caller's argument —
|
|
45
|
+
* which modules a deployment ships is a composition-root input, which is why
|
|
46
|
+
* `resolvedModuleRegistry` is a platform-owned container name rather than a
|
|
47
|
+
* port.
|
|
48
|
+
*/
|
|
49
|
+
ctx.di.providePort('settingsManifestCollectionPort', ctx.asFunction(() => new SettingsManifestCollectionService()).singleton());
|
|
50
|
+
// The type parameter is feature 075 Phase P's compile-time proof that this
|
|
51
|
+
// service still satisfies `SettingsAdminPort` — the write surface six
|
|
52
|
+
// modules reach, each hosting an admin screen over settings it owns. The
|
|
53
|
+
// read side is not published here on purpose: `settingsReadPort` is a kernel
|
|
54
|
+
// port, because every module reads its own settings and the kernel applies
|
|
55
|
+
// the channel-scope rules.
|
|
56
|
+
ctx.di.providePort('settingsAdminService', ctx
|
|
57
|
+
.asFunction(({ emFactory, eventBus, auditLogService, settingsSecretEncryptionKey, settingsModulePresence, }) => new SettingsAdminService(emFactory, eventBus,
|
|
58
|
+
// Read per call rather than captured: `settingsCache` is a root
|
|
59
|
+
// contribution, made in the slot *after* `composeModules`, so
|
|
60
|
+
// destructuring it here would resolve a name that does not exist
|
|
61
|
+
// yet. A forwarder is the same shape `returnsBridge` uses.
|
|
62
|
+
{
|
|
63
|
+
invalidateAfterWrite: (code) => ctx.cradle().settingsCache.invalidateAfterWrite(code),
|
|
64
|
+
invalidateAllAfterWrite: () => ctx.cradle().settingsCache.invalidateAllAfterWrite(),
|
|
65
|
+
}, auditLogService, settingsSecretEncryptionKey, settingsModulePresence,
|
|
66
|
+
// Read per call for the same reason `settingsCache` is: the
|
|
67
|
+
// registry is filled from other modules' boot hooks, which run
|
|
68
|
+
// after this registration is built.
|
|
69
|
+
{
|
|
70
|
+
register: (validator) => ctx
|
|
71
|
+
.cradle()
|
|
72
|
+
.settingWriteValidatorRegistry.register(validator),
|
|
73
|
+
forCode: (code) => ctx.cradle().settingWriteValidatorRegistry.forCode(code),
|
|
74
|
+
}))
|
|
75
|
+
.singleton());
|
|
76
|
+
ctx.routes(async (app) => {
|
|
77
|
+
const cradle = ctx.cradle();
|
|
78
|
+
const requireAdmin = cradle.requireAdmin;
|
|
79
|
+
await registerSettingsAdminRoutes(app, {
|
|
80
|
+
// Lazily, even though the module owns this port: route *registration* runs
|
|
81
|
+
// inside `buildServer` whatever the module's effective state is, so
|
|
82
|
+
// destructuring the gate here would stop the next start instead of
|
|
83
|
+
// stopping the routes (D-40) — and this module is deactivatable on
|
|
84
|
+
// purpose, so that state is one an operator can actually produce.
|
|
85
|
+
adminService: lazyPort(ctx, 'settingsAdminService'),
|
|
86
|
+
requireAdmin,
|
|
87
|
+
resolveAdminAuditContext: (req) => ctx.cradle().adminAuditActorResolver(req),
|
|
88
|
+
});
|
|
89
|
+
await registerSettingsStorefrontRoutes(app, {
|
|
90
|
+
shopInfoResolver: cradle.settingsShopInfoResolver,
|
|
91
|
+
});
|
|
92
|
+
await registerSettingsCacheRoutes(app, {
|
|
93
|
+
cacheAdminService: cradle.settingsCacheAdminService,
|
|
94
|
+
requireAdmin,
|
|
95
|
+
});
|
|
96
|
+
await registerSettingsHomepageRoutes(app, {
|
|
97
|
+
homepageResolver: cradle.settingsHomepageResolver,
|
|
98
|
+
});
|
|
99
|
+
await registerSettingsProductCardButtonsRoutes(app, {
|
|
100
|
+
productCardButtonsResolver: cradle.settingsProductCardButtonsResolver,
|
|
101
|
+
});
|
|
102
|
+
await registerSettingsSpeculationRulesRoutes(app, {
|
|
103
|
+
speculationRulesResolver: cradle.settingsSpeculationRulesResolver,
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* This module owns **no persisted entity**, and says so with an empty array
|
|
109
|
+
* rather than by omission (D-168).
|
|
110
|
+
*
|
|
111
|
+
* The two are not the same thing to the platform. When the package is
|
|
112
|
+
* *installed*, `src/packages/package-runtime.ts` reads `exported['entities']`
|
|
113
|
+
* and answers a missing export with `[]` — so "this module has no table" and
|
|
114
|
+
* "somebody forgot the array" arrive at the host as the same silence, and the
|
|
115
|
+
* only symptom of the second is a query against a table nobody created. The
|
|
116
|
+
* declaration is what makes the first case a statement.
|
|
117
|
+
*
|
|
118
|
+
* The settings *store* is the kernel's (`src/kernel/settings/`), which is why
|
|
119
|
+
* this module reads and writes rows it does not own the classes for.
|
|
120
|
+
*
|
|
121
|
+
* A first entity added here goes in this array in the same merge request, and
|
|
122
|
+
* `test/unit/packages/module-package-entity-surface.test.ts` is what says so.
|
|
123
|
+
*/
|
|
124
|
+
export const entities = [];
|
|
125
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/backend/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,308 @@
|
|
|
1
|
+
import type { FastifyInstance, FastifyRequest } from 'fastify';
|
|
2
|
+
import type { SettingsAdminService, AdminAuditContext } from './services/settings-admin.service.js';
|
|
3
|
+
import type { RequireAdminFactory } from '@endora-commerce/platform/kernel';
|
|
4
|
+
/**
|
|
5
|
+
* Admin HTTP surface — feature 004 / US2 (T035).
|
|
6
|
+
*
|
|
7
|
+
* Mounts under `/api/v1/admin/settings/*` with:
|
|
8
|
+
* - GET / — list groups + settings (settings.read)
|
|
9
|
+
* - GET /:code — single setting detail (settings.read)
|
|
10
|
+
* - PUT /:code/value — set value (settings.write)
|
|
11
|
+
* - DELETE /:code/values — reset values (settings.write)
|
|
12
|
+
* - GET /groups — list groups only (settings.read)
|
|
13
|
+
* - POST /groups — create manual group (settings.write)
|
|
14
|
+
* - PATCH /groups/:code — rename / rescope (settings.write)
|
|
15
|
+
* - DELETE /groups/:code — delete + reassign (settings.write)
|
|
16
|
+
*
|
|
17
|
+
* `If-Match` is parsed via the request body's `expectedVersion` field for
|
|
18
|
+
* mutations that warrant optimistic concurrency (matching feature 003's
|
|
19
|
+
* pattern; see services/settings-admin.service.ts). Stale → 409
|
|
20
|
+
* VERSION_CONFLICT.
|
|
21
|
+
*/
|
|
22
|
+
export interface SettingsAdminDeps {
|
|
23
|
+
adminService: SettingsAdminService;
|
|
24
|
+
requireAdmin: RequireAdminFactory;
|
|
25
|
+
resolveAdminAuditContext?: (req: FastifyRequest) => AdminAuditContext;
|
|
26
|
+
}
|
|
27
|
+
export declare function registerSettingsAdminRoutes(app: FastifyInstance, deps: SettingsAdminDeps): Promise<void>;
|
|
28
|
+
export declare const _settingsRoutesErrors: {
|
|
29
|
+
readonly VALIDATION_FAILED: "VALIDATION_FAILED";
|
|
30
|
+
readonly INTERNAL: "INTERNAL";
|
|
31
|
+
readonly NOT_FOUND: "NOT_FOUND";
|
|
32
|
+
readonly UNAUTHORIZED: "UNAUTHORIZED";
|
|
33
|
+
readonly FORBIDDEN: "FORBIDDEN";
|
|
34
|
+
readonly RATE_LIMITED: "RATE_LIMITED";
|
|
35
|
+
readonly VERSION_CONFLICT: "VERSION_CONFLICT";
|
|
36
|
+
readonly FILTER_NOT_ALLOWED: "FILTER_NOT_ALLOWED";
|
|
37
|
+
readonly PRODUCT_NOT_FOUND: "PRODUCT_NOT_FOUND";
|
|
38
|
+
readonly PRICE_ORDERING_UNAVAILABLE: "PRICE_ORDERING_UNAVAILABLE";
|
|
39
|
+
readonly PRICE_RANGE_INVALID: "PRICE_RANGE_INVALID";
|
|
40
|
+
readonly PRODUCT_ARCHIVED: "PRODUCT_ARCHIVED";
|
|
41
|
+
readonly PRODUCT_DELETE_BLOCKED: "PRODUCT_DELETE_BLOCKED";
|
|
42
|
+
readonly SKU_ALREADY_EXISTS: "SKU_ALREADY_EXISTS";
|
|
43
|
+
readonly VARIANT_COMBINATION_EXISTS: "VARIANT_COMBINATION_EXISTS";
|
|
44
|
+
readonly VARIANT_AXIS_MISSING: "VARIANT_AXIS_MISSING";
|
|
45
|
+
readonly ATTRIBUTE_VALUE_REJECTED: "ATTRIBUTE_VALUE_REJECTED";
|
|
46
|
+
readonly FIELD_IMMUTABLE: "FIELD_IMMUTABLE";
|
|
47
|
+
readonly ATTRIBUTE_SET_CODE_TAKEN: "ATTRIBUTE_SET_CODE_TAKEN";
|
|
48
|
+
readonly ATTRIBUTE_SET_IN_USE: "ATTRIBUTE_SET_IN_USE";
|
|
49
|
+
readonly SYSTEM_ATTRIBUTE_SET_IMMUTABLE: "SYSTEM_ATTRIBUTE_SET_IMMUTABLE";
|
|
50
|
+
readonly ATTRIBUTE_SET_NOT_FOUND: "ATTRIBUTE_SET_NOT_FOUND";
|
|
51
|
+
readonly ATTRIBUTE_NOT_FOUND: "ATTRIBUTE_NOT_FOUND";
|
|
52
|
+
readonly GALLERY_LABEL_ALREADY_TAKEN: "GALLERY_LABEL_ALREADY_TAKEN";
|
|
53
|
+
readonly GALLERY_LABEL_LIMIT_EXCEEDED: "GALLERY_LABEL_LIMIT_EXCEEDED";
|
|
54
|
+
readonly ASSET_KIND_NOT_SUPPORTED: "ASSET_KIND_NOT_SUPPORTED";
|
|
55
|
+
readonly ATTACHMENT_TYPE_IN_USE: "ATTACHMENT_TYPE_IN_USE";
|
|
56
|
+
readonly ATTACHMENT_TYPE_CODE_TAKEN: "ATTACHMENT_TYPE_CODE_TAKEN";
|
|
57
|
+
readonly ATTACHMENT_TYPE_NOT_FOUND: "ATTACHMENT_TYPE_NOT_FOUND";
|
|
58
|
+
readonly ATTACHMENT_NOT_FOUND: "ATTACHMENT_NOT_FOUND";
|
|
59
|
+
readonly GALLERY_ITEM_NOT_FOUND: "GALLERY_ITEM_NOT_FOUND";
|
|
60
|
+
readonly PACKAGING_UNIT_NOT_FOUND: "PACKAGING_UNIT_NOT_FOUND";
|
|
61
|
+
readonly PACKAGING_UNIT_NAME_CONFLICT: "PACKAGING_UNIT_NAME_CONFLICT";
|
|
62
|
+
readonly PACKAGING_UNIT_NOT_SUPPORTED_FOR_TYPE: "PACKAGING_UNIT_NOT_SUPPORTED_FOR_TYPE";
|
|
63
|
+
readonly SELF_LINK_NOT_ALLOWED: "SELF_LINK_NOT_ALLOWED";
|
|
64
|
+
readonly LINK_ALREADY_EXISTS: "LINK_ALREADY_EXISTS";
|
|
65
|
+
readonly TARGET_PRODUCT_NOT_FOUND: "TARGET_PRODUCT_NOT_FOUND";
|
|
66
|
+
readonly PRODUCT_LINK_NOT_FOUND: "PRODUCT_LINK_NOT_FOUND";
|
|
67
|
+
readonly PRODUCT_TYPE_MISMATCH: "PRODUCT_TYPE_MISMATCH";
|
|
68
|
+
readonly NESTED_COMPOSITE_NOT_ALLOWED: "NESTED_COMPOSITE_NOT_ALLOWED";
|
|
69
|
+
readonly INVALID_QUANTITY_RANGE: "INVALID_QUANTITY_RANGE";
|
|
70
|
+
readonly OPTION_ALREADY_EXISTS: "OPTION_ALREADY_EXISTS";
|
|
71
|
+
readonly GROUPED_ITEM_NOT_FOUND: "GROUPED_ITEM_NOT_FOUND";
|
|
72
|
+
readonly BUNDLE_SLOT_NOT_FOUND: "BUNDLE_SLOT_NOT_FOUND";
|
|
73
|
+
readonly BUNDLE_SLOT_OPTION_NOT_FOUND: "BUNDLE_SLOT_OPTION_NOT_FOUND";
|
|
74
|
+
readonly MIN_NOT_MET: "MIN_NOT_MET";
|
|
75
|
+
readonly MAX_EXCEEDED: "MAX_EXCEEDED";
|
|
76
|
+
readonly UNKNOWN_OPTION: "UNKNOWN_OPTION";
|
|
77
|
+
readonly RFQ_NOT_DRAFT: "RFQ_NOT_DRAFT";
|
|
78
|
+
readonly RFQ_EMPTY: "RFQ_EMPTY";
|
|
79
|
+
readonly RFQ_NOT_QUOTED: "RFQ_NOT_QUOTED";
|
|
80
|
+
readonly RFQ_NOT_ACCEPTED: "RFQ_NOT_ACCEPTED";
|
|
81
|
+
readonly RFQ_NOT_NEW: "RFQ_NOT_NEW";
|
|
82
|
+
readonly RFQ_ALREADY_CLAIMED: "RFQ_ALREADY_CLAIMED";
|
|
83
|
+
readonly RFQ_EXPIRED: "RFQ_EXPIRED";
|
|
84
|
+
readonly QUOTE_INCOMPLETE: "QUOTE_INCOMPLETE";
|
|
85
|
+
readonly QUOTE_VALIDITY_ENDED: "QUOTE_VALIDITY_ENDED";
|
|
86
|
+
readonly SHOPPING_LIST_CANNOT_DELETE_DEFAULT: "SHOPPING_LIST_CANNOT_DELETE_DEFAULT";
|
|
87
|
+
readonly SHOPPING_LIST_CANNOT_DELETE_LAST: "SHOPPING_LIST_CANNOT_DELETE_LAST";
|
|
88
|
+
readonly ORGANIZATION_TAX_ID_EXISTS: "ORGANIZATION_TAX_ID_EXISTS";
|
|
89
|
+
readonly ORGANIZATION_HAS_CHILDREN: "ORGANIZATION_HAS_CHILDREN";
|
|
90
|
+
readonly ORGANIZATION_TREE_INVALID: "ORGANIZATION_TREE_INVALID";
|
|
91
|
+
readonly EMAIL_ALREADY_REGISTERED: "EMAIL_ALREADY_REGISTERED";
|
|
92
|
+
readonly EMAIL_ALREADY_IN_ORGANIZATION: "EMAIL_ALREADY_IN_ORGANIZATION";
|
|
93
|
+
readonly EMAIL_BELONGS_TO_ANOTHER_ORGANIZATION: "EMAIL_BELONGS_TO_ANOTHER_ORGANIZATION";
|
|
94
|
+
readonly TERMS_VERSION_STALE: "TERMS_VERSION_STALE";
|
|
95
|
+
readonly TOKEN_INVALID_OR_EXPIRED: "TOKEN_INVALID_OR_EXPIRED";
|
|
96
|
+
readonly INVALID_CREDENTIALS: "INVALID_CREDENTIALS";
|
|
97
|
+
readonly CURRENT_PASSWORD_INVALID: "CURRENT_PASSWORD_INVALID";
|
|
98
|
+
readonly TWO_FACTOR_REQUIRED: "TWO_FACTOR_REQUIRED";
|
|
99
|
+
readonly TWO_FACTOR_REQUIRED_BY_ROLE: "TWO_FACTOR_REQUIRED_BY_ROLE";
|
|
100
|
+
readonly CANNOT_REMOVE_LAST_ADMIN: "CANNOT_REMOVE_LAST_ADMIN";
|
|
101
|
+
readonly CANNOT_DEMOTE_LAST_ADMIN: "CANNOT_DEMOTE_LAST_ADMIN";
|
|
102
|
+
readonly CANNOT_REVOKE_LAST_ADMIN_INVITE: "CANNOT_REVOKE_LAST_ADMIN_INVITE";
|
|
103
|
+
readonly ADDRESS_IN_USE: "ADDRESS_IN_USE";
|
|
104
|
+
readonly ADDRESS_NOT_OWNED: "ADDRESS_NOT_OWNED";
|
|
105
|
+
readonly REGISTRATION_REQUIRES_ORGANIZATION: "REGISTRATION_REQUIRES_ORGANIZATION";
|
|
106
|
+
readonly ACCOUNT_BLOCKED: "ACCOUNT_BLOCKED";
|
|
107
|
+
readonly CUSTOMER_NOT_FOUND: "CUSTOMER_NOT_FOUND";
|
|
108
|
+
readonly CUSTOMER_ADDRESS_NOT_FOUND: "CUSTOMER_ADDRESS_NOT_FOUND";
|
|
109
|
+
readonly CUSTOMER_ALREADY_DELETED: "CUSTOMER_ALREADY_DELETED";
|
|
110
|
+
readonly CUSTOMER_NOT_DELETED: "CUSTOMER_NOT_DELETED";
|
|
111
|
+
readonly CUSTOMER_RESTORE_WINDOW_ELAPSED: "CUSTOMER_RESTORE_WINDOW_ELAPSED";
|
|
112
|
+
readonly ORG_OWNER_DEPLETION: "ORG_OWNER_DEPLETION";
|
|
113
|
+
readonly CART_EMPTY: "CART_EMPTY";
|
|
114
|
+
readonly CART_LINE_CAP_EXCEEDED: "CART_LINE_CAP_EXCEEDED";
|
|
115
|
+
readonly CART_COUPON_REJECTED: "CART_COUPON_REJECTED";
|
|
116
|
+
readonly STOCK_UNAVAILABLE: "STOCK_UNAVAILABLE";
|
|
117
|
+
readonly PROMOTION_INVALID: "PROMOTION_INVALID";
|
|
118
|
+
readonly ORGANIZATION_SUSPENDED: "ORGANIZATION_SUSPENDED";
|
|
119
|
+
readonly ORDER_NOT_FOUND: "ORDER_NOT_FOUND";
|
|
120
|
+
readonly ORDER_NOT_CANCELLABLE: "ORDER_NOT_CANCELLABLE";
|
|
121
|
+
readonly INVOICE_NOT_READY: "INVOICE_NOT_READY";
|
|
122
|
+
readonly INVOICE_NUMBER_PATTERN_COLLIDES: "INVOICE_NUMBER_PATTERN_COLLIDES";
|
|
123
|
+
readonly INVOICE_NUMBER_ALREADY_ISSUED: "INVOICE_NUMBER_ALREADY_ISSUED";
|
|
124
|
+
readonly INVALID_TRANSITION: "INVALID_TRANSITION";
|
|
125
|
+
readonly CREDIT_LIMIT_NOT_GRANTED: "CREDIT_LIMIT_NOT_GRANTED";
|
|
126
|
+
readonly CREDIT_LIMIT_ALREADY_GRANTED: "CREDIT_LIMIT_ALREADY_GRANTED";
|
|
127
|
+
readonly LIMIT_INSUFFICIENT: "LIMIT_INSUFFICIENT";
|
|
128
|
+
readonly CURRENCY_MISMATCH: "CURRENCY_MISMATCH";
|
|
129
|
+
readonly ADJUSTMENT_BELOW_ACTIVE: "ADJUSTMENT_BELOW_ACTIVE";
|
|
130
|
+
readonly ACTIVE_RESERVATIONS_EXIST: "ACTIVE_RESERVATIONS_EXIST";
|
|
131
|
+
readonly ALREADY_SUBSCRIBED: "ALREADY_SUBSCRIBED";
|
|
132
|
+
readonly PRODUCT_IN_STOCK: "PRODUCT_IN_STOCK";
|
|
133
|
+
readonly API_KEY_OUT_OF_SCOPE: "API_KEY_OUT_OF_SCOPE";
|
|
134
|
+
readonly WEBHOOK_DELIVERY_NOT_REPLAYABLE: "WEBHOOK_DELIVERY_NOT_REPLAYABLE";
|
|
135
|
+
readonly API_KEY_NOT_BOUND: "API_KEY_NOT_BOUND";
|
|
136
|
+
readonly API_KEY_CHANNEL_MISMATCH: "API_KEY_CHANNEL_MISMATCH";
|
|
137
|
+
readonly IDEMPOTENCY_KEY_REQUIRED: "IDEMPOTENCY_KEY_REQUIRED";
|
|
138
|
+
readonly IDEMPOTENCY_KEY_REUSED: "IDEMPOTENCY_KEY_REUSED";
|
|
139
|
+
readonly SKU_NOT_IN_ASSORTMENT: "SKU_NOT_IN_ASSORTMENT";
|
|
140
|
+
readonly PRICE_UNAVAILABLE: "PRICE_UNAVAILABLE";
|
|
141
|
+
readonly ADMIN_ROLE_CODE_TAKEN: "ADMIN_ROLE_CODE_TAKEN";
|
|
142
|
+
readonly ADMIN_ROLE_IN_USE: "ADMIN_ROLE_IN_USE";
|
|
143
|
+
readonly SETTING_NOT_REGISTERED: "SETTING_NOT_REGISTERED";
|
|
144
|
+
readonly SETTING_OUT_OF_SCOPE_FOR_CHANNEL: "SETTING_OUT_OF_SCOPE_FOR_CHANNEL";
|
|
145
|
+
readonly SETTING_VALUE_SHAPE_MISMATCH: "SETTING_VALUE_SHAPE_MISMATCH";
|
|
146
|
+
readonly SETTING_EMPTY_SUBSET: "SETTING_EMPTY_SUBSET";
|
|
147
|
+
readonly SETTING_GROUP_PROTECTED: "SETTING_GROUP_PROTECTED";
|
|
148
|
+
readonly SETTING_GROUP_NOT_FOUND: "SETTING_GROUP_NOT_FOUND";
|
|
149
|
+
readonly SETTING_CODE_CONFLICT: "SETTING_CODE_CONFLICT";
|
|
150
|
+
readonly SETTING_GROUP_CODE_CONFLICT: "SETTING_GROUP_CODE_CONFLICT";
|
|
151
|
+
readonly SETTING_BREAKING_CHANGE_REJECTED: "SETTING_BREAKING_CHANGE_REJECTED";
|
|
152
|
+
readonly SETTING_SECRET_KEY_MISSING: "SETTING_SECRET_KEY_MISSING";
|
|
153
|
+
readonly ASSISTANT_DISABLED: "ASSISTANT_DISABLED";
|
|
154
|
+
readonly ASSISTANT_NOT_CONFIGURED: "ASSISTANT_NOT_CONFIGURED";
|
|
155
|
+
readonly PROMPT_REQUEST_INVALID_STATE: "PROMPT_REQUEST_INVALID_STATE";
|
|
156
|
+
readonly PROMPT_PLAN_EXPIRED: "PROMPT_PLAN_EXPIRED";
|
|
157
|
+
readonly PROMPT_PERMISSION_REVOKED: "PROMPT_PERMISSION_REVOKED";
|
|
158
|
+
readonly PROMPT_REQUEST_IN_FLIGHT: "PROMPT_REQUEST_IN_FLIGHT";
|
|
159
|
+
readonly QUERY_TOO_SHORT: "QUERY_TOO_SHORT";
|
|
160
|
+
readonly QUERY_TOO_LONG: "QUERY_TOO_LONG";
|
|
161
|
+
readonly LIMIT_OUT_OF_RANGE: "LIMIT_OUT_OF_RANGE";
|
|
162
|
+
readonly SEARCH_BACKEND_UNAVAILABLE: "SEARCH_BACKEND_UNAVAILABLE";
|
|
163
|
+
readonly PHRASE_REQUIRED: "PHRASE_REQUIRED";
|
|
164
|
+
readonly PHRASE_TOO_LONG: "PHRASE_TOO_LONG";
|
|
165
|
+
readonly RESULT_COUNT_INVALID: "RESULT_COUNT_INVALID";
|
|
166
|
+
readonly LLM_CONFIG_INCOMPLETE: "LLM_CONFIG_INCOMPLETE";
|
|
167
|
+
readonly UNKNOWN_SALES_CHANNEL: "UNKNOWN_SALES_CHANNEL";
|
|
168
|
+
readonly INACTIVE_SALES_CHANNEL: "INACTIVE_SALES_CHANNEL";
|
|
169
|
+
readonly MISSING_SALES_CHANNEL_CONTEXT: "MISSING_SALES_CHANNEL_CONTEXT";
|
|
170
|
+
readonly DUPLICATE_SALES_CHANNEL_CODE: "DUPLICATE_SALES_CHANNEL_CODE";
|
|
171
|
+
readonly UNKNOWN_LANGUAGE_CODE: "UNKNOWN_LANGUAGE_CODE";
|
|
172
|
+
readonly UNKNOWN_CURRENCY_CODE: "UNKNOWN_CURRENCY_CODE";
|
|
173
|
+
readonly CANNOT_MODIFY_SYSTEM_DEFAULT: "CANNOT_MODIFY_SYSTEM_DEFAULT";
|
|
174
|
+
readonly SALES_CHANNEL_HAS_ATTRIBUTIONS: "SALES_CHANNEL_HAS_ATTRIBUTIONS";
|
|
175
|
+
readonly ENTITY_WOULD_HAVE_ZERO_CHANNELS: "ENTITY_WOULD_HAVE_ZERO_CHANNELS";
|
|
176
|
+
readonly STALE_SALES_CHANNEL_WRITE: "STALE_SALES_CHANNEL_WRITE";
|
|
177
|
+
readonly SALES_CHANNEL_ATTRIBUTION_IMMUTABLE: "SALES_CHANNEL_ATTRIBUTION_IMMUTABLE";
|
|
178
|
+
readonly SALES_CHANNEL_CODE_IMMUTABLE: "SALES_CHANNEL_CODE_IMMUTABLE";
|
|
179
|
+
readonly COMPARISON_FULL: "COMPARISON_FULL";
|
|
180
|
+
readonly COMPARISON_NOT_FOUND: "COMPARISON_NOT_FOUND";
|
|
181
|
+
readonly COMPARISON_EMPTY: "COMPARISON_EMPTY";
|
|
182
|
+
readonly PRODUCT_NOT_IN_COMPARISON: "PRODUCT_NOT_IN_COMPARISON";
|
|
183
|
+
readonly PDF_GENERATION_FAILED: "PDF_GENERATION_FAILED";
|
|
184
|
+
readonly WAREHOUSE_NOT_FOUND: "WAREHOUSE_NOT_FOUND";
|
|
185
|
+
readonly WAREHOUSE_CODE_TAKEN: "WAREHOUSE_CODE_TAKEN";
|
|
186
|
+
readonly WAREHOUSE_INVALID_CODE: "WAREHOUSE_INVALID_CODE";
|
|
187
|
+
readonly WAREHOUSE_CANNOT_DELETE_DEFAULT: "WAREHOUSE_CANNOT_DELETE_DEFAULT";
|
|
188
|
+
readonly WAREHOUSE_IS_DEFAULT_FOR_CHANNELS: "WAREHOUSE_IS_DEFAULT_FOR_CHANNELS";
|
|
189
|
+
readonly WAREHOUSE_HAS_STOCK: "WAREHOUSE_HAS_STOCK";
|
|
190
|
+
readonly CHANNEL_NO_WAREHOUSES: "CHANNEL_NO_WAREHOUSES";
|
|
191
|
+
readonly CHANNEL_WAREHOUSE_NOT_FOUND: "CHANNEL_WAREHOUSE_NOT_FOUND";
|
|
192
|
+
readonly STOCK_LEVEL_NOT_FOUND: "STOCK_LEVEL_NOT_FOUND";
|
|
193
|
+
readonly THRESHOLDS_INVALID: "THRESHOLDS_INVALID";
|
|
194
|
+
readonly PRODUCT_UNMANAGED_STOCK: "PRODUCT_UNMANAGED_STOCK";
|
|
195
|
+
readonly AVAILABILITY_NOTIFICATION_NOT_FOUND: "AVAILABILITY_NOTIFICATION_NOT_FOUND";
|
|
196
|
+
readonly STOCK_IMPORT_INVALID_FILE: "STOCK_IMPORT_INVALID_FILE";
|
|
197
|
+
readonly ASSET_NOT_FOUND: "ASSET_NOT_FOUND";
|
|
198
|
+
readonly ASSET_REFERENCED: "ASSET_REFERENCED";
|
|
199
|
+
readonly ASSET_FOLDER_NOT_FOUND: "ASSET_FOLDER_NOT_FOUND";
|
|
200
|
+
readonly ASSET_FOLDER_NOT_EMPTY: "ASSET_FOLDER_NOT_EMPTY";
|
|
201
|
+
readonly ASSET_FOLDER_NAME_CONFLICT: "ASSET_FOLDER_NAME_CONFLICT";
|
|
202
|
+
readonly ASSET_FOLDER_CYCLE: "ASSET_FOLDER_CYCLE";
|
|
203
|
+
readonly ASSET_UPLOAD_NO_FILE: "ASSET_UPLOAD_NO_FILE";
|
|
204
|
+
readonly ASSET_UPLOAD_TYPE_NOT_ALLOWED: "ASSET_UPLOAD_TYPE_NOT_ALLOWED";
|
|
205
|
+
readonly ASSET_UPLOAD_TOO_LARGE: "ASSET_UPLOAD_TOO_LARGE";
|
|
206
|
+
readonly ASSET_STORAGE_UNAVAILABLE: "ASSET_STORAGE_UNAVAILABLE";
|
|
207
|
+
readonly ASSET_STORAGE_MISCONFIGURED: "ASSET_STORAGE_MISCONFIGURED";
|
|
208
|
+
readonly ASSET_LEGACY_LOCATOR_CANNOT_HARDEN: "ASSET_LEGACY_LOCATOR_CANNOT_HARDEN";
|
|
209
|
+
readonly ASSET_FILE_MISSING: "ASSET_FILE_MISSING";
|
|
210
|
+
readonly ASSET_GONE: "ASSET_GONE";
|
|
211
|
+
readonly ASSET_ACCESS_DENIED: "ASSET_ACCESS_DENIED";
|
|
212
|
+
readonly CMS_PAGE_NOT_FOUND: "CMS_PAGE_NOT_FOUND";
|
|
213
|
+
readonly CMS_BLOCK_NOT_FOUND: "CMS_BLOCK_NOT_FOUND";
|
|
214
|
+
readonly CMS_TEMPLATE_NOT_FOUND: "CMS_TEMPLATE_NOT_FOUND";
|
|
215
|
+
readonly CMS_HOOK_NOT_FOUND: "CMS_HOOK_NOT_FOUND";
|
|
216
|
+
readonly CMS_SLUG_CONFLICT: "CMS_SLUG_CONFLICT";
|
|
217
|
+
readonly CMS_SLUG_RESERVED: "CMS_SLUG_RESERVED";
|
|
218
|
+
readonly CMS_CODE_CONFLICT: "CMS_CODE_CONFLICT";
|
|
219
|
+
readonly CMS_REFERENCED: "CMS_REFERENCED";
|
|
220
|
+
readonly CMS_HOOK_SYSTEM_PROTECTED: "CMS_HOOK_SYSTEM_PROTECTED";
|
|
221
|
+
readonly CMS_LANGUAGE_NOT_IN_CHANNEL_SCOPE: "CMS_LANGUAGE_NOT_IN_CHANNEL_SCOPE";
|
|
222
|
+
readonly CMS_SCHEMA_UPGRADE_FAILED: "CMS_SCHEMA_UPGRADE_FAILED";
|
|
223
|
+
readonly MEGAMENU_NOT_FOUND: "MEGAMENU_NOT_FOUND";
|
|
224
|
+
readonly MEGAMENU_HAS_ACTIVE_BINDINGS: "MEGAMENU_HAS_ACTIVE_BINDINGS";
|
|
225
|
+
readonly MEGAMENU_EMPTY_TREE: "MEGAMENU_EMPTY_TREE";
|
|
226
|
+
readonly MEGAMENU_BINDING_NOT_FOUND: "MEGAMENU_BINDING_NOT_FOUND";
|
|
227
|
+
readonly MEGAMENU_BINDING_ALREADY_EXISTS: "MEGAMENU_BINDING_ALREADY_EXISTS";
|
|
228
|
+
readonly MEGAMENU_LANGUAGE_NOT_IN_CHANNEL_SCOPE: "MEGAMENU_LANGUAGE_NOT_IN_CHANNEL_SCOPE";
|
|
229
|
+
readonly MEGAMENU_TARGET_OUT_OF_SCOPE: "MEGAMENU_TARGET_OUT_OF_SCOPE";
|
|
230
|
+
readonly MEGAMENU_ASSET_KIND_MISMATCH: "MEGAMENU_ASSET_KIND_MISMATCH";
|
|
231
|
+
readonly MEGAMENU_REFERENCED: "MEGAMENU_REFERENCED";
|
|
232
|
+
readonly MEGAMENU_DEPTH_EXCEEDED: "MEGAMENU_DEPTH_EXCEEDED";
|
|
233
|
+
readonly BLOG_SLUG_INVALID: "BLOG_SLUG_INVALID";
|
|
234
|
+
readonly BLOG_SLUG_TAKEN: "BLOG_SLUG_TAKEN";
|
|
235
|
+
readonly BLOG_POST_NOT_FOUND: "BLOG_POST_NOT_FOUND";
|
|
236
|
+
readonly BLOG_POST_NO_CHANNEL: "BLOG_POST_NO_CHANNEL";
|
|
237
|
+
readonly BLOG_POST_NO_LANGUAGE: "BLOG_POST_NO_LANGUAGE";
|
|
238
|
+
readonly BLOG_CATEGORY_NOT_FOUND: "BLOG_CATEGORY_NOT_FOUND";
|
|
239
|
+
readonly BLOG_CATEGORY_NO_CHANNEL: "BLOG_CATEGORY_NO_CHANNEL";
|
|
240
|
+
readonly BLOG_CATEGORY_CYCLE: "BLOG_CATEGORY_CYCLE";
|
|
241
|
+
readonly BLOG_CATEGORY_PROTECTED: "BLOG_CATEGORY_PROTECTED";
|
|
242
|
+
readonly BLOG_CATEGORY_IN_USE: "BLOG_CATEGORY_IN_USE";
|
|
243
|
+
readonly BLOG_CATEGORY_HAS_CHILDREN: "BLOG_CATEGORY_HAS_CHILDREN";
|
|
244
|
+
readonly BLOG_TAG_NOT_FOUND: "BLOG_TAG_NOT_FOUND";
|
|
245
|
+
readonly BLOG_TAG_CODE_TAKEN: "BLOG_TAG_CODE_TAKEN";
|
|
246
|
+
readonly BLOG_TAG_IN_USE: "BLOG_TAG_IN_USE";
|
|
247
|
+
readonly BLOG_URL_PREFIX_INVALID: "BLOG_URL_PREFIX_INVALID";
|
|
248
|
+
readonly BLOG_URL_PREFIX_RESERVED: "BLOG_URL_PREFIX_RESERVED";
|
|
249
|
+
readonly BLOG_DISABLED: "BLOG_DISABLED";
|
|
250
|
+
readonly BLOG_ASSET_KIND_MISMATCH: "BLOG_ASSET_KIND_MISMATCH";
|
|
251
|
+
readonly BLOG_RELATED_POST_SELF_REFERENCE: "BLOG_RELATED_POST_SELF_REFERENCE";
|
|
252
|
+
readonly ADMIN_ROLE_PROTECTED: "ADMIN_ROLE_PROTECTED";
|
|
253
|
+
readonly DICTIONARY_ENTRY_NOT_FOUND: "DICTIONARY_ENTRY_NOT_FOUND";
|
|
254
|
+
readonly DICTIONARY_ENTRY_INACTIVE: "DICTIONARY_ENTRY_INACTIVE";
|
|
255
|
+
readonly DICTIONARY_ENTRY_HAS_DEPENDENTS: "DICTIONARY_ENTRY_HAS_DEPENDENTS";
|
|
256
|
+
readonly DICTIONARY_LAST_ACTIVE_ENTRY: "DICTIONARY_LAST_ACTIVE_ENTRY";
|
|
257
|
+
readonly DICTIONARY_DEFAULT_CANNOT_BE_DEACTIVATED: "DICTIONARY_DEFAULT_CANNOT_BE_DEACTIVATED";
|
|
258
|
+
readonly DICTIONARY_FALLBACK_CYCLE: "DICTIONARY_FALLBACK_CYCLE";
|
|
259
|
+
readonly DICTIONARY_CODE_IMMUTABLE: "DICTIONARY_CODE_IMMUTABLE";
|
|
260
|
+
readonly DICTIONARY_TRANSLATION_LANGUAGE_INACTIVE: "DICTIONARY_TRANSLATION_LANGUAGE_INACTIVE";
|
|
261
|
+
readonly MODULE_DISABLED: "MODULE_DISABLED";
|
|
262
|
+
readonly MODULE_NOT_FOUND: "MODULE_NOT_FOUND";
|
|
263
|
+
readonly MODULE_NOT_DEACTIVATABLE: "MODULE_NOT_DEACTIVATABLE";
|
|
264
|
+
readonly MODULE_ACTIVATION_PROTECTED: "MODULE_ACTIVATION_PROTECTED";
|
|
265
|
+
readonly MODULE_DEPENDENTS_PRESENT: "MODULE_DEPENDENTS_PRESENT";
|
|
266
|
+
readonly MODULE_DEPENDENCIES_ABSENT: "MODULE_DEPENDENCIES_ABSENT";
|
|
267
|
+
readonly MODULE_SETTING_READ_ONLY: "MODULE_SETTING_READ_ONLY";
|
|
268
|
+
readonly TRANSACTIONAL_EMAIL_NOT_DEACTIVATABLE: "TRANSACTIONAL_EMAIL_NOT_DEACTIVATABLE";
|
|
269
|
+
readonly BULK_TOO_LARGE: "BULK_TOO_LARGE";
|
|
270
|
+
readonly ATTRIBUTE_NOT_MASS_EDITABLE: "ATTRIBUTE_NOT_MASS_EDITABLE";
|
|
271
|
+
readonly SELECTION_TOO_LARGE: "SELECTION_TOO_LARGE";
|
|
272
|
+
readonly MFA_INVALID_CODE: "MFA_INVALID_CODE";
|
|
273
|
+
readonly MFA_INVALID_CHALLENGE: "MFA_INVALID_CHALLENGE";
|
|
274
|
+
readonly MFA_TOO_MANY_ATTEMPTS: "MFA_TOO_MANY_ATTEMPTS";
|
|
275
|
+
readonly MFA_WRONG_SURFACE: "MFA_WRONG_SURFACE";
|
|
276
|
+
readonly MFA_ALREADY_ENROLLED: "MFA_ALREADY_ENROLLED";
|
|
277
|
+
readonly MFA_NO_PENDING_ENROLMENT: "MFA_NO_PENDING_ENROLMENT";
|
|
278
|
+
readonly MFA_NO_ACTIVE_ENROLMENT: "MFA_NO_ACTIVE_ENROLMENT";
|
|
279
|
+
readonly MFA_REAUTH_REQUIRED: "MFA_REAUTH_REQUIRED";
|
|
280
|
+
readonly MFA_NOT_ENABLED: "MFA_NOT_ENABLED";
|
|
281
|
+
readonly MFA_SOCIAL_LAST_CREDENTIAL: "MFA_SOCIAL_LAST_CREDENTIAL";
|
|
282
|
+
readonly CUSTOM_FIELD_NOT_FOUND: "CUSTOM_FIELD_NOT_FOUND";
|
|
283
|
+
readonly CUSTOM_FIELD_KEY_CONFLICT: "CUSTOM_FIELD_KEY_CONFLICT";
|
|
284
|
+
readonly CUSTOM_FIELD_DEFINITION_INVALID: "CUSTOM_FIELD_DEFINITION_INVALID";
|
|
285
|
+
readonly CUSTOM_FIELD_VALUE_INVALID: "CUSTOM_FIELD_VALUE_INVALID";
|
|
286
|
+
readonly CUSTOM_FIELD_HOST_MANAGED: "CUSTOM_FIELD_HOST_MANAGED";
|
|
287
|
+
readonly CREDENTIAL_NOT_FOUND: "CREDENTIAL_NOT_FOUND";
|
|
288
|
+
readonly CREDENTIAL_CODE_TAKEN: "CREDENTIAL_CODE_TAKEN";
|
|
289
|
+
readonly CREDENTIAL_TYPE_UNKNOWN: "CREDENTIAL_TYPE_UNKNOWN";
|
|
290
|
+
readonly CREDENTIAL_VALIDATION_FAILED: "CREDENTIAL_VALIDATION_FAILED";
|
|
291
|
+
readonly CREDENTIAL_IN_USE: "CREDENTIAL_IN_USE";
|
|
292
|
+
readonly CREDENTIAL_TYPE_IMMUTABLE: "CREDENTIAL_TYPE_IMMUTABLE";
|
|
293
|
+
readonly PRODUCT_FEED_DISABLED: "PRODUCT_FEED_DISABLED";
|
|
294
|
+
readonly PRODUCT_FEED_TEMPLATE_UNBOUND: "PRODUCT_FEED_TEMPLATE_UNBOUND";
|
|
295
|
+
readonly PRODUCT_FEED_TEMPLATE_CONFLICT: "PRODUCT_FEED_TEMPLATE_CONFLICT";
|
|
296
|
+
readonly PRODUCT_FEED_CONFIRMATION_REQUIRED: "PRODUCT_FEED_CONFIRMATION_REQUIRED";
|
|
297
|
+
readonly PRODUCT_FEED_TAXONOMY_CONFLICT: "PRODUCT_FEED_TAXONOMY_CONFLICT";
|
|
298
|
+
readonly PRICE_LIST_NOT_FOUND: "PRICE_LIST_NOT_FOUND";
|
|
299
|
+
readonly PIM_CONNECTOR_ALREADY_ACTIVE: "PIM_CONNECTOR_ALREADY_ACTIVE";
|
|
300
|
+
readonly INVOICE_LEDGER_VENDOR_ALREADY_ACTIVE: "INVOICE_LEDGER_VENDOR_ALREADY_ACTIVE";
|
|
301
|
+
readonly INVOICE_LEDGER_CREDENTIALS_MISSING: "INVOICE_LEDGER_CREDENTIALS_MISSING";
|
|
302
|
+
readonly INVOICE_LEDGER_DELIVERY_NOT_RETRYABLE: "INVOICE_LEDGER_DELIVERY_NOT_RETRYABLE";
|
|
303
|
+
readonly ERP_CONNECTOR_ALREADY_ACTIVE: "ERP_CONNECTOR_ALREADY_ACTIVE";
|
|
304
|
+
readonly PAYMENT_NOT_DUE: "PAYMENT_NOT_DUE";
|
|
305
|
+
readonly PAYMENT_ORDER_CLOSED: "PAYMENT_ORDER_CLOSED";
|
|
306
|
+
readonly PAYMENT_ADAPTER_UNAVAILABLE: "PAYMENT_ADAPTER_UNAVAILABLE";
|
|
307
|
+
};
|
|
308
|
+
//# sourceMappingURL=routes.admin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routes.admin.d.ts","sourceRoot":"","sources":["../../src/backend/routes.admin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAgB,cAAc,EAAE,MAAM,SAAS,CAAC;AAS7E,OAAO,KAAK,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAKpG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAE5E;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,oBAAoB,CAAC;IACnC,YAAY,EAAE,mBAAmB,CAAC;IAClC,wBAAwB,CAAC,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,iBAAiB,CAAC;CACvE;AAMD,wBAAsB,2BAA2B,CAC/C,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,IAAI,CAAC,CAgRf;AASD,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAc,CAAC"}
|