@open-mercato/core 0.6.6-develop.6352.1.8eee7e1399 → 0.6.6-develop.6353.1.efc82affea
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/dist/modules/auth/index.js +0 -2
- package/dist/modules/auth/index.js.map +2 -2
- package/dist/modules/catalog/index.js +0 -1
- package/dist/modules/catalog/index.js.map +2 -2
- package/dist/modules/communication_channels/index.js +0 -9
- package/dist/modules/communication_channels/index.js.map +2 -2
- package/dist/modules/currencies/index.js +0 -2
- package/dist/modules/currencies/index.js.map +2 -2
- package/dist/modules/customers/index.js +0 -1
- package/dist/modules/customers/index.js.map +2 -2
- package/dist/modules/dictionaries/index.js +0 -1
- package/dist/modules/dictionaries/index.js.map +2 -2
- package/dist/modules/directory/index.js +0 -2
- package/dist/modules/directory/index.js.map +2 -2
- package/dist/modules/feature_toggles/index.js +0 -1
- package/dist/modules/feature_toggles/index.js.map +2 -2
- package/dist/modules/messages/index.js +0 -7
- package/dist/modules/messages/index.js.map +2 -2
- package/dist/modules/planner/index.js +0 -1
- package/dist/modules/planner/index.js.map +2 -2
- package/dist/modules/resources/index.js +0 -1
- package/dist/modules/resources/index.js.map +2 -2
- package/dist/modules/sales/commands/statuses.js +20 -0
- package/dist/modules/sales/commands/statuses.js.map +2 -2
- package/dist/modules/sales/index.js +0 -1
- package/dist/modules/sales/index.js.map +2 -2
- package/dist/modules/staff/index.js +0 -1
- package/dist/modules/staff/index.js.map +2 -2
- package/dist/modules/translations/index.js +0 -1
- package/dist/modules/translations/index.js.map +2 -2
- package/package.json +7 -7
- package/src/modules/auth/index.ts +0 -2
- package/src/modules/catalog/index.ts +0 -1
- package/src/modules/communication_channels/index.ts +0 -11
- package/src/modules/currencies/index.ts +0 -2
- package/src/modules/customers/index.ts +0 -1
- package/src/modules/dictionaries/index.ts +0 -1
- package/src/modules/directory/index.ts +0 -2
- package/src/modules/feature_toggles/index.ts +0 -1
- package/src/modules/messages/index.ts +0 -7
- package/src/modules/planner/index.ts +0 -1
- package/src/modules/resources/index.ts +0 -1
- package/src/modules/sales/commands/statuses.ts +18 -0
- package/src/modules/sales/index.ts +0 -1
- package/src/modules/staff/index.ts +0 -1
- package/src/modules/translations/index.ts +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/modules/auth/index.ts"],
|
|
4
|
-
"sourcesContent": ["import
|
|
5
|
-
"mappings": "
|
|
4
|
+
"sourcesContent": ["import type { ModuleInfo } from '@open-mercato/shared/modules/registry'\n\nexport const metadata: ModuleInfo = {\n name: 'auth',\n title: 'Authentication & Accounts',\n version: '0.1.0',\n description: 'User accounts, sessions, roles and password resets.',\n author: 'Open Mercato Team',\n license: 'MIT',\n}\n\n// Re-export features from module root acl.ts so generator can pick them up regardless of consumer imports\nexport { features } from './acl'\n"],
|
|
5
|
+
"mappings": "AAEO,MAAM,WAAuB;AAAA,EAClC,MAAM;AAAA,EACN,OAAO;AAAA,EACP,SAAS;AAAA,EACT,aAAa;AAAA,EACb,QAAQ;AAAA,EACR,SAAS;AACX;AAGA,SAAS,gBAAgB;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/modules/catalog/index.ts"],
|
|
4
|
-
"sourcesContent": ["import type { ModuleInfo } from '@open-mercato/shared/modules/registry'\
|
|
5
|
-
"mappings": "
|
|
4
|
+
"sourcesContent": ["import type { ModuleInfo } from '@open-mercato/shared/modules/registry'\n\nexport const metadata: ModuleInfo = {\n name: 'catalog',\n title: 'Product Catalog',\n version: '0.1.0',\n description: 'Configurable catalog for products, variants, and pricing used by the sales module.',\n author: 'Open Mercato Team',\n license: 'MIT',\n ejectable: true,\n}\n\nexport { features } from './acl'\n"],
|
|
5
|
+
"mappings": "AAEO,MAAM,WAAuB;AAAA,EAClC,MAAM;AAAA,EACN,OAAO;AAAA,EACP,SAAS;AAAA,EACT,aAAa;AAAA,EACb,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,WAAW;AACb;AAEA,SAAS,gBAAgB;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
import "./commands/ingest-inbound-message.js";
|
|
2
|
-
import "./commands/deliver-outbound-message.js";
|
|
3
|
-
import "./commands/process-inbound-reaction.js";
|
|
4
|
-
import "./commands/toggle-outbound-reaction.js";
|
|
5
|
-
import "./commands/reassign-conversation.js";
|
|
6
|
-
import "./commands/connect-credential-channel.js";
|
|
7
|
-
import "./commands/set-primary-channel.js";
|
|
8
|
-
import "./commands/disconnect-channel.js";
|
|
9
|
-
import "./commands/delete-channel.js";
|
|
10
1
|
const metadata = {
|
|
11
2
|
id: "communication_channels",
|
|
12
3
|
title: "Communication Channels",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/modules/communication_channels/index.ts"],
|
|
4
|
-
"sourcesContent": ["
|
|
5
|
-
"mappings": "
|
|
4
|
+
"sourcesContent": ["export const metadata = {\n id: 'communication_channels',\n title: 'Communication Channels',\n description:\n 'Unified hub bridging external chat/email channels (Slack, WhatsApp, Email) to the Messages module. Adapter contract, channel-native payload storage, reactions, and per-channel threading.',\n}\n\nexport default metadata\n"],
|
|
5
|
+
"mappings": "AAAO,MAAM,WAAW;AAAA,EACtB,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,aACE;AACJ;AAEA,IAAO,iCAAQ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/modules/currencies/index.ts"],
|
|
4
|
-
"sourcesContent": ["import
|
|
5
|
-
"mappings": "
|
|
4
|
+
"sourcesContent": ["import type { ModuleInfo } from '@open-mercato/shared/modules/registry'\n\nexport const metadata: ModuleInfo = {\n name: 'currencies',\n title: 'Currencies',\n version: '0.1.0',\n description: 'Currencies and Exchange rate management',\n author: 'Open Mercato Team',\n license: 'MIT',\n ejectable: true,\n}\n"],
|
|
5
|
+
"mappings": "AAEO,MAAM,WAAuB;AAAA,EAClC,MAAM;AAAA,EACN,OAAO;AAAA,EACP,SAAS;AAAA,EACT,aAAa;AAAA,EACb,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,WAAW;AACb;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/modules/customers/index.ts"],
|
|
4
|
-
"sourcesContent": ["import type { ModuleInfo } from '@open-mercato/shared/modules/registry'\
|
|
5
|
-
"mappings": "
|
|
4
|
+
"sourcesContent": ["import type { ModuleInfo } from '@open-mercato/shared/modules/registry'\n\nexport const metadata: ModuleInfo = {\n name: 'customers',\n title: 'Customer Relationship Management',\n version: '0.1.0',\n description: 'Core CRM capabilities for people, companies, deals, and activities.',\n author: 'Open Mercato Team',\n license: 'MIT',\n ejectable: true,\n}\n\nexport { features } from './acl'\n"],
|
|
5
|
+
"mappings": "AAEO,MAAM,WAAuB;AAAA,EAClC,MAAM;AAAA,EACN,OAAO;AAAA,EACP,SAAS;AAAA,EACT,aAAa;AAAA,EACb,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,WAAW;AACb;AAEA,SAAS,gBAAgB;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/modules/dictionaries/index.ts"],
|
|
4
|
-
"sourcesContent": ["import type { ModuleInfo } from '@open-mercato/shared/modules/registry'\
|
|
5
|
-
"mappings": "
|
|
4
|
+
"sourcesContent": ["import type { ModuleInfo } from '@open-mercato/shared/modules/registry'\n\nexport const metadata: ModuleInfo = {\n name: 'dictionaries',\n title: 'Shared Dictionaries',\n version: '0.1.0',\n description: 'Organization-scoped dictionaries for reusable enumerations and appearance presets.',\n author: 'Open Mercato Team',\n license: 'MIT',\n}\n\nexport { features } from './acl'\n"],
|
|
5
|
+
"mappings": "AAEO,MAAM,WAAuB;AAAA,EAClC,MAAM;AAAA,EACN,OAAO;AAAA,EACP,SAAS;AAAA,EACT,aAAa;AAAA,EACb,QAAQ;AAAA,EACR,SAAS;AACX;AAEA,SAAS,gBAAgB;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/modules/directory/index.ts"],
|
|
4
|
-
"sourcesContent": ["import
|
|
5
|
-
"mappings": "
|
|
4
|
+
"sourcesContent": ["import type { ModuleInfo } from '@open-mercato/shared/modules/registry'\n\nexport const metadata: ModuleInfo = {\n name: 'directory',\n title: 'Directory (Tenants & Organizations)',\n version: '0.1.0',\n description: 'Multi-tenant directory with tenants and organizations.',\n author: 'Open Mercato Team',\n license: 'MIT',\n}\n"],
|
|
5
|
+
"mappings": "AAEO,MAAM,WAAuB;AAAA,EAClC,MAAM;AAAA,EACN,OAAO;AAAA,EACP,SAAS;AAAA,EACT,aAAa;AAAA,EACb,QAAQ;AAAA,EACR,SAAS;AACX;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/modules/feature_toggles/index.ts"],
|
|
4
|
-
"sourcesContent": ["import type { ModuleInfo } from '@open-mercato/shared/modules/registry'\
|
|
5
|
-
"mappings": "
|
|
4
|
+
"sourcesContent": ["import type { ModuleInfo } from '@open-mercato/shared/modules/registry'\n\nexport const metadata: ModuleInfo = {\n name: 'feature_toggles',\n title: 'Feature Toggles',\n version: '0.1.0',\n description: 'Global feature flags with tenant-level overrides.',\n author: 'Open Mercato Team',\n license: 'MIT',\n}\n\nexport { features } from './acl'\n"],
|
|
5
|
+
"mappings": "AAEO,MAAM,WAAuB;AAAA,EAClC,MAAM;AAAA,EACN,OAAO;AAAA,EACP,SAAS;AAAA,EACT,aAAa;AAAA,EACb,QAAQ;AAAA,EACR,SAAS;AACX;AAEA,SAAS,gBAAgB;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,10 +1,3 @@
|
|
|
1
|
-
import "./commands/actions.js";
|
|
2
|
-
import "./commands/attachments.js";
|
|
3
|
-
import "./commands/conversation.js";
|
|
4
|
-
import "./commands/confirmations.js";
|
|
5
|
-
import "./commands/messages.js";
|
|
6
|
-
import "./commands/recipients.js";
|
|
7
|
-
import "./commands/tokens.js";
|
|
8
1
|
const metadata = {
|
|
9
2
|
name: "messages",
|
|
10
3
|
title: "Messages",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/modules/messages/index.ts"],
|
|
4
|
-
"sourcesContent": ["import type { ModuleInfo } from '@open-mercato/shared/modules/registry'\
|
|
5
|
-
"mappings": "
|
|
4
|
+
"sourcesContent": ["import type { ModuleInfo } from '@open-mercato/shared/modules/registry'\n\nexport const metadata: ModuleInfo = {\n name: 'messages',\n title: 'Messages',\n version: '0.1.0',\n description: 'Internal messaging system with attachments, actions, and email forwarding.',\n author: 'Open Mercato Team',\n license: 'MIT',\n}\n\nexport { features } from './acl'\n"],
|
|
5
|
+
"mappings": "AAEO,MAAM,WAAuB;AAAA,EAClC,MAAM;AAAA,EACN,OAAO;AAAA,EACP,SAAS;AAAA,EACT,aAAa;AAAA,EACb,QAAQ;AAAA,EACR,SAAS;AACX;AAEA,SAAS,gBAAgB;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/modules/planner/index.ts"],
|
|
4
|
-
"sourcesContent": ["import type { ModuleInfo } from '@open-mercato/shared/modules/registry'\
|
|
5
|
-
"mappings": "
|
|
4
|
+
"sourcesContent": ["import type { ModuleInfo } from '@open-mercato/shared/modules/registry'\n\nexport const metadata: ModuleInfo = {\n name: 'planner',\n title: 'Worktime / Availabilities',\n version: '0.1.0',\n description: 'Availability schedules, rulesets, and shared planning rules.',\n author: 'Open Mercato Team',\n license: 'MIT',\n ejectable: true,\n}\n\nexport { features } from './acl'\n"],
|
|
5
|
+
"mappings": "AAEO,MAAM,WAAuB;AAAA,EAClC,MAAM;AAAA,EACN,OAAO;AAAA,EACP,SAAS;AAAA,EACT,aAAa;AAAA,EACb,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,WAAW;AACb;AAEA,SAAS,gBAAgB;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/modules/resources/index.ts"],
|
|
4
|
-
"sourcesContent": ["import type { ModuleInfo } from '@open-mercato/shared/modules/registry'\
|
|
5
|
-
"mappings": "
|
|
4
|
+
"sourcesContent": ["import type { ModuleInfo } from '@open-mercato/shared/modules/registry'\n\nexport const metadata: ModuleInfo = {\n name: 'resources',\n title: 'Resource planning',\n version: '0.1.0',\n description: 'Assets and resources with scheduling policies.',\n author: 'Open Mercato Team',\n license: 'MIT',\n requires: ['planner'],\n ejectable: true,\n}\n\nexport { features } from './acl'\n"],
|
|
5
|
+
"mappings": "AAEO,MAAM,WAAuB;AAAA,EAClC,MAAM;AAAA,EACN,OAAO;AAAA,EACP,SAAS;AAAA,EACT,aAAa;AAAA,EACb,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,UAAU,CAAC,SAAS;AAAA,EACpB,WAAW;AACb;AAEA,SAAS,gBAAgB;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -14,6 +14,23 @@ import {
|
|
|
14
14
|
statusDictionaryUpdateSchema
|
|
15
15
|
} from "../data/validators.js";
|
|
16
16
|
import { findOneWithDecryption } from "@open-mercato/shared/lib/encryption/find";
|
|
17
|
+
const commandIds = [
|
|
18
|
+
"sales.order-statuses.create",
|
|
19
|
+
"sales.order-statuses.update",
|
|
20
|
+
"sales.order-statuses.delete",
|
|
21
|
+
"sales.order-line-statuses.create",
|
|
22
|
+
"sales.order-line-statuses.update",
|
|
23
|
+
"sales.order-line-statuses.delete",
|
|
24
|
+
"sales.shipment-statuses.create",
|
|
25
|
+
"sales.shipment-statuses.update",
|
|
26
|
+
"sales.shipment-statuses.delete",
|
|
27
|
+
"sales.payment-statuses.create",
|
|
28
|
+
"sales.payment-statuses.update",
|
|
29
|
+
"sales.payment-statuses.delete",
|
|
30
|
+
"sales.adjustment-kinds.create",
|
|
31
|
+
"sales.adjustment-kinds.update",
|
|
32
|
+
"sales.adjustment-kinds.delete"
|
|
33
|
+
];
|
|
17
34
|
function ensureScope(ctx, scope) {
|
|
18
35
|
ensureTenantScope(ctx, scope.tenantId);
|
|
19
36
|
ensureOrganizationScope(ctx, scope.organizationId);
|
|
@@ -72,4 +89,7 @@ registerStatusDictionaryCommands("order-line-status");
|
|
|
72
89
|
registerStatusDictionaryCommands("shipment-status");
|
|
73
90
|
registerStatusDictionaryCommands("payment-status");
|
|
74
91
|
registerStatusDictionaryCommands("adjustment-kind");
|
|
92
|
+
export {
|
|
93
|
+
commandIds
|
|
94
|
+
};
|
|
75
95
|
//# sourceMappingURL=statuses.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/modules/sales/commands/statuses.ts"],
|
|
4
|
-
"sourcesContent": ["import { DictionaryEntry } from '@open-mercato/core/modules/dictionaries/data/entities'\nimport { registerDictionaryEntryCommands } from '@open-mercato/core/modules/dictionaries/commands/factory'\nimport { CrudHttpError } from '@open-mercato/shared/lib/crud/errors'\nimport {\n ensureSalesDictionary,\n getSalesDictionaryDefinition,\n type SalesDictionaryKind,\n} from '../lib/dictionaries'\nimport {\n ensureOrganizationScope,\n ensureTenantScope,\n} from './shared'\nimport {\n statusDictionaryCreateSchema,\n statusDictionaryUpdateSchema,\n} from '../data/validators'\nimport { findOneWithDecryption } from '@open-mercato/shared/lib/encryption/find'\n\nfunction ensureScope(ctx: Parameters<typeof ensureTenantScope>[0], scope: { tenantId: string; organizationId: string }): void {\n ensureTenantScope(ctx, scope.tenantId)\n ensureOrganizationScope(ctx, scope.organizationId)\n}\n\nfunction registerStatusDictionaryCommands(kind: SalesDictionaryKind): void {\n const definition = getSalesDictionaryDefinition(kind)\n\n registerDictionaryEntryCommands({\n commandPrefix: definition.commandPrefix,\n resourceKind: definition.resourceKind,\n translationKeyPrefix: definition.commandPrefix,\n createSchema: statusDictionaryCreateSchema,\n updateSchema: statusDictionaryUpdateSchema,\n ensureScope,\n duplicateError: 'Value already exists in this dictionary.',\n labels: {\n singular: definition.singular,\n create: `Create ${definition.singular}`,\n update: `Update ${definition.singular}`,\n delete: `Delete ${definition.singular}`,\n },\n resolveDictionaryForCreate: async ({ em, ctx, parsed }) => {\n const dictionary = await ensureSalesDictionary({\n em,\n tenantId: parsed.tenantId,\n organizationId: parsed.organizationId,\n kind,\n })\n const scope = { tenantId: parsed.tenantId, organizationId: parsed.organizationId }\n ensureScope(ctx, scope)\n return { dictionary, scope }\n },\n resolveEntry: async ({ em, ctx, id }) => {\n const entry = await findOneWithDecryption(em, DictionaryEntry, id, { populate: ['dictionary'] })\n if (!entry) {\n throw new CrudHttpError(404, { error: 'Dictionary entry not found' })\n }\n if (entry.dictionary.key !== definition.key) {\n throw new CrudHttpError(400, { error: 'Entry does not belong to this dictionary.' })\n }\n const scope = { tenantId: entry.tenantId, organizationId: entry.organizationId }\n ensureScope(ctx, scope)\n return { entry, dictionary: entry.dictionary, scope }\n },\n ensureDictionaryForUndo: async ({ em, snapshot }) => {\n return ensureSalesDictionary({\n em,\n tenantId: snapshot.tenantId,\n organizationId: snapshot.organizationId,\n kind,\n })\n },\n })\n}\n\nregisterStatusDictionaryCommands('order-status')\nregisterStatusDictionaryCommands('order-line-status')\nregisterStatusDictionaryCommands('shipment-status')\nregisterStatusDictionaryCommands('payment-status')\nregisterStatusDictionaryCommands('adjustment-kind')\n"],
|
|
5
|
-
"mappings": "AAAA,SAAS,uBAAuB;AAChC,SAAS,uCAAuC;AAChD,SAAS,qBAAqB;AAC9B;AAAA,EACE;AAAA,EACA;AAAA,OAEK;AACP;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP,SAAS,6BAA6B;
|
|
4
|
+
"sourcesContent": ["import { DictionaryEntry } from '@open-mercato/core/modules/dictionaries/data/entities'\nimport { registerDictionaryEntryCommands } from '@open-mercato/core/modules/dictionaries/commands/factory'\nimport { CrudHttpError } from '@open-mercato/shared/lib/crud/errors'\nimport {\n ensureSalesDictionary,\n getSalesDictionaryDefinition,\n type SalesDictionaryKind,\n} from '../lib/dictionaries'\nimport {\n ensureOrganizationScope,\n ensureTenantScope,\n} from './shared'\nimport {\n statusDictionaryCreateSchema,\n statusDictionaryUpdateSchema,\n} from '../data/validators'\nimport { findOneWithDecryption } from '@open-mercato/shared/lib/encryption/find'\n\nexport const commandIds = [\n 'sales.order-statuses.create',\n 'sales.order-statuses.update',\n 'sales.order-statuses.delete',\n 'sales.order-line-statuses.create',\n 'sales.order-line-statuses.update',\n 'sales.order-line-statuses.delete',\n 'sales.shipment-statuses.create',\n 'sales.shipment-statuses.update',\n 'sales.shipment-statuses.delete',\n 'sales.payment-statuses.create',\n 'sales.payment-statuses.update',\n 'sales.payment-statuses.delete',\n 'sales.adjustment-kinds.create',\n 'sales.adjustment-kinds.update',\n 'sales.adjustment-kinds.delete',\n] as const\n\nfunction ensureScope(ctx: Parameters<typeof ensureTenantScope>[0], scope: { tenantId: string; organizationId: string }): void {\n ensureTenantScope(ctx, scope.tenantId)\n ensureOrganizationScope(ctx, scope.organizationId)\n}\n\nfunction registerStatusDictionaryCommands(kind: SalesDictionaryKind): void {\n const definition = getSalesDictionaryDefinition(kind)\n\n registerDictionaryEntryCommands({\n commandPrefix: definition.commandPrefix,\n resourceKind: definition.resourceKind,\n translationKeyPrefix: definition.commandPrefix,\n createSchema: statusDictionaryCreateSchema,\n updateSchema: statusDictionaryUpdateSchema,\n ensureScope,\n duplicateError: 'Value already exists in this dictionary.',\n labels: {\n singular: definition.singular,\n create: `Create ${definition.singular}`,\n update: `Update ${definition.singular}`,\n delete: `Delete ${definition.singular}`,\n },\n resolveDictionaryForCreate: async ({ em, ctx, parsed }) => {\n const dictionary = await ensureSalesDictionary({\n em,\n tenantId: parsed.tenantId,\n organizationId: parsed.organizationId,\n kind,\n })\n const scope = { tenantId: parsed.tenantId, organizationId: parsed.organizationId }\n ensureScope(ctx, scope)\n return { dictionary, scope }\n },\n resolveEntry: async ({ em, ctx, id }) => {\n const entry = await findOneWithDecryption(em, DictionaryEntry, id, { populate: ['dictionary'] })\n if (!entry) {\n throw new CrudHttpError(404, { error: 'Dictionary entry not found' })\n }\n if (entry.dictionary.key !== definition.key) {\n throw new CrudHttpError(400, { error: 'Entry does not belong to this dictionary.' })\n }\n const scope = { tenantId: entry.tenantId, organizationId: entry.organizationId }\n ensureScope(ctx, scope)\n return { entry, dictionary: entry.dictionary, scope }\n },\n ensureDictionaryForUndo: async ({ em, snapshot }) => {\n return ensureSalesDictionary({\n em,\n tenantId: snapshot.tenantId,\n organizationId: snapshot.organizationId,\n kind,\n })\n },\n })\n}\n\nregisterStatusDictionaryCommands('order-status')\nregisterStatusDictionaryCommands('order-line-status')\nregisterStatusDictionaryCommands('shipment-status')\nregisterStatusDictionaryCommands('payment-status')\nregisterStatusDictionaryCommands('adjustment-kind')\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,uBAAuB;AAChC,SAAS,uCAAuC;AAChD,SAAS,qBAAqB;AAC9B;AAAA,EACE;AAAA,EACA;AAAA,OAEK;AACP;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP,SAAS,6BAA6B;AAE/B,MAAM,aAAa;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,SAAS,YAAY,KAA8C,OAA2D;AAC5H,oBAAkB,KAAK,MAAM,QAAQ;AACrC,0BAAwB,KAAK,MAAM,cAAc;AACnD;AAEA,SAAS,iCAAiC,MAAiC;AACzE,QAAM,aAAa,6BAA6B,IAAI;AAEpD,kCAAgC;AAAA,IAC9B,eAAe,WAAW;AAAA,IAC1B,cAAc,WAAW;AAAA,IACzB,sBAAsB,WAAW;AAAA,IACjC,cAAc;AAAA,IACd,cAAc;AAAA,IACd;AAAA,IACA,gBAAgB;AAAA,IAChB,QAAQ;AAAA,MACN,UAAU,WAAW;AAAA,MACrB,QAAQ,UAAU,WAAW,QAAQ;AAAA,MACrC,QAAQ,UAAU,WAAW,QAAQ;AAAA,MACrC,QAAQ,UAAU,WAAW,QAAQ;AAAA,IACvC;AAAA,IACA,4BAA4B,OAAO,EAAE,IAAI,KAAK,OAAO,MAAM;AACzD,YAAM,aAAa,MAAM,sBAAsB;AAAA,QAC7C;AAAA,QACA,UAAU,OAAO;AAAA,QACjB,gBAAgB,OAAO;AAAA,QACvB;AAAA,MACF,CAAC;AACD,YAAM,QAAQ,EAAE,UAAU,OAAO,UAAU,gBAAgB,OAAO,eAAe;AACjF,kBAAY,KAAK,KAAK;AACtB,aAAO,EAAE,YAAY,MAAM;AAAA,IAC7B;AAAA,IACA,cAAc,OAAO,EAAE,IAAI,KAAK,GAAG,MAAM;AACvC,YAAM,QAAQ,MAAM,sBAAsB,IAAI,iBAAiB,IAAI,EAAE,UAAU,CAAC,YAAY,EAAE,CAAC;AAC/F,UAAI,CAAC,OAAO;AACV,cAAM,IAAI,cAAc,KAAK,EAAE,OAAO,6BAA6B,CAAC;AAAA,MACtE;AACA,UAAI,MAAM,WAAW,QAAQ,WAAW,KAAK;AAC3C,cAAM,IAAI,cAAc,KAAK,EAAE,OAAO,4CAA4C,CAAC;AAAA,MACrF;AACA,YAAM,QAAQ,EAAE,UAAU,MAAM,UAAU,gBAAgB,MAAM,eAAe;AAC/E,kBAAY,KAAK,KAAK;AACtB,aAAO,EAAE,OAAO,YAAY,MAAM,YAAY,MAAM;AAAA,IACtD;AAAA,IACA,yBAAyB,OAAO,EAAE,IAAI,SAAS,MAAM;AACnD,aAAO,sBAAsB;AAAA,QAC3B;AAAA,QACA,UAAU,SAAS;AAAA,QACnB,gBAAgB,SAAS;AAAA,QACzB;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AACH;AAEA,iCAAiC,cAAc;AAC/C,iCAAiC,mBAAmB;AACpD,iCAAiC,iBAAiB;AAClD,iCAAiC,gBAAgB;AACjD,iCAAiC,iBAAiB;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/modules/sales/index.ts"],
|
|
4
|
-
"sourcesContent": ["import type { ModuleInfo } from '@open-mercato/shared/modules/registry'\nimport './
|
|
5
|
-
"mappings": "AACA,OAAO;
|
|
4
|
+
"sourcesContent": ["import type { ModuleInfo } from '@open-mercato/shared/modules/registry'\nimport './lib/providers'\n\nexport const metadata: ModuleInfo = {\n name: 'sales',\n title: 'Sales Management',\n version: '0.1.0',\n description:\n 'Quoting, ordering, fulfillment, and billing capabilities built on modular pricing and tax pipelines.',\n author: 'Open Mercato Team',\n license: 'MIT',\n requires: ['catalog', 'customers', 'dictionaries'],\n ejectable: true,\n}\n\nexport { features } from './acl'\n"],
|
|
5
|
+
"mappings": "AACA,OAAO;AAEA,MAAM,WAAuB;AAAA,EAClC,MAAM;AAAA,EACN,OAAO;AAAA,EACP,SAAS;AAAA,EACT,aACE;AAAA,EACF,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,UAAU,CAAC,WAAW,aAAa,cAAc;AAAA,EACjD,WAAW;AACb;AAEA,SAAS,gBAAgB;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/modules/staff/index.ts"],
|
|
4
|
-
"sourcesContent": ["import type { ModuleInfo } from '@open-mercato/shared/modules/registry'\
|
|
5
|
-
"mappings": "
|
|
4
|
+
"sourcesContent": ["import type { ModuleInfo } from '@open-mercato/shared/modules/registry'\n\nexport const metadata: ModuleInfo = {\n name: 'staff',\n title: 'Employees',\n version: '0.1.0',\n description: 'Teams, roles, and employee rosters.',\n author: 'Open Mercato Team',\n license: 'MIT',\n requires: ['planner', 'resources'],\n ejectable: true,\n}\n\nexport { features } from './acl'\n"],
|
|
5
|
+
"mappings": "AAEO,MAAM,WAAuB;AAAA,EAClC,MAAM;AAAA,EACN,OAAO;AAAA,EACP,SAAS;AAAA,EACT,aAAa;AAAA,EACb,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,UAAU,CAAC,WAAW,WAAW;AAAA,EACjC,WAAW;AACb;AAEA,SAAS,gBAAgB;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/modules/translations/index.ts"],
|
|
4
|
-
"sourcesContent": ["import type { ModuleInfo } from '@open-mercato/shared/modules/registry'\
|
|
5
|
-
"mappings": "
|
|
4
|
+
"sourcesContent": ["import type { ModuleInfo } from '@open-mercato/shared/modules/registry'\n\nexport const metadata: ModuleInfo = {\n name: 'translations',\n title: 'Entity Translations',\n version: '0.1.0',\n description: 'System-wide entity translation storage and locale overlay for CRUD responses.',\n author: 'Open Mercato Team',\n license: 'MIT',\n}\n"],
|
|
5
|
+
"mappings": "AAEO,MAAM,WAAuB;AAAA,EAClC,MAAM;AAAA,EACN,OAAO;AAAA,EACP,SAAS;AAAA,EACT,aAAa;AAAA,EACb,QAAQ;AAAA,EACR,SAAS;AACX;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@open-mercato/core",
|
|
3
|
-
"version": "0.6.6-develop.
|
|
3
|
+
"version": "0.6.6-develop.6353.1.efc82affea",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -246,16 +246,16 @@
|
|
|
246
246
|
"zod": "^4.4.3"
|
|
247
247
|
},
|
|
248
248
|
"peerDependencies": {
|
|
249
|
-
"@open-mercato/ai-assistant": "0.6.6-develop.
|
|
250
|
-
"@open-mercato/shared": "0.6.6-develop.
|
|
251
|
-
"@open-mercato/ui": "0.6.6-develop.
|
|
249
|
+
"@open-mercato/ai-assistant": "0.6.6-develop.6353.1.efc82affea",
|
|
250
|
+
"@open-mercato/shared": "0.6.6-develop.6353.1.efc82affea",
|
|
251
|
+
"@open-mercato/ui": "0.6.6-develop.6353.1.efc82affea",
|
|
252
252
|
"react": "^19.0.0",
|
|
253
253
|
"react-dom": "^19.0.0"
|
|
254
254
|
},
|
|
255
255
|
"devDependencies": {
|
|
256
|
-
"@open-mercato/ai-assistant": "0.6.6-develop.
|
|
257
|
-
"@open-mercato/shared": "0.6.6-develop.
|
|
258
|
-
"@open-mercato/ui": "0.6.6-develop.
|
|
256
|
+
"@open-mercato/ai-assistant": "0.6.6-develop.6353.1.efc82affea",
|
|
257
|
+
"@open-mercato/shared": "0.6.6-develop.6353.1.efc82affea",
|
|
258
|
+
"@open-mercato/ui": "0.6.6-develop.6353.1.efc82affea",
|
|
259
259
|
"@testing-library/dom": "^10.4.1",
|
|
260
260
|
"@testing-library/jest-dom": "^6.9.1",
|
|
261
261
|
"@testing-library/react": "^16.3.1",
|
|
@@ -1,14 +1,3 @@
|
|
|
1
|
-
// Side-effect imports — register module commands at boot.
|
|
2
|
-
import './commands/ingest-inbound-message'
|
|
3
|
-
import './commands/deliver-outbound-message'
|
|
4
|
-
import './commands/process-inbound-reaction'
|
|
5
|
-
import './commands/toggle-outbound-reaction'
|
|
6
|
-
import './commands/reassign-conversation'
|
|
7
|
-
import './commands/connect-credential-channel'
|
|
8
|
-
import './commands/set-primary-channel'
|
|
9
|
-
import './commands/disconnect-channel'
|
|
10
|
-
import './commands/delete-channel'
|
|
11
|
-
|
|
12
1
|
export const metadata = {
|
|
13
2
|
id: 'communication_channels',
|
|
14
3
|
title: 'Communication Channels',
|
|
@@ -1,11 +1,4 @@
|
|
|
1
1
|
import type { ModuleInfo } from '@open-mercato/shared/modules/registry'
|
|
2
|
-
import './commands/actions'
|
|
3
|
-
import './commands/attachments'
|
|
4
|
-
import './commands/conversation'
|
|
5
|
-
import './commands/confirmations'
|
|
6
|
-
import './commands/messages'
|
|
7
|
-
import './commands/recipients'
|
|
8
|
-
import './commands/tokens'
|
|
9
2
|
|
|
10
3
|
export const metadata: ModuleInfo = {
|
|
11
4
|
name: 'messages',
|
|
@@ -16,6 +16,24 @@ import {
|
|
|
16
16
|
} from '../data/validators'
|
|
17
17
|
import { findOneWithDecryption } from '@open-mercato/shared/lib/encryption/find'
|
|
18
18
|
|
|
19
|
+
export const commandIds = [
|
|
20
|
+
'sales.order-statuses.create',
|
|
21
|
+
'sales.order-statuses.update',
|
|
22
|
+
'sales.order-statuses.delete',
|
|
23
|
+
'sales.order-line-statuses.create',
|
|
24
|
+
'sales.order-line-statuses.update',
|
|
25
|
+
'sales.order-line-statuses.delete',
|
|
26
|
+
'sales.shipment-statuses.create',
|
|
27
|
+
'sales.shipment-statuses.update',
|
|
28
|
+
'sales.shipment-statuses.delete',
|
|
29
|
+
'sales.payment-statuses.create',
|
|
30
|
+
'sales.payment-statuses.update',
|
|
31
|
+
'sales.payment-statuses.delete',
|
|
32
|
+
'sales.adjustment-kinds.create',
|
|
33
|
+
'sales.adjustment-kinds.update',
|
|
34
|
+
'sales.adjustment-kinds.delete',
|
|
35
|
+
] as const
|
|
36
|
+
|
|
19
37
|
function ensureScope(ctx: Parameters<typeof ensureTenantScope>[0], scope: { tenantId: string; organizationId: string }): void {
|
|
20
38
|
ensureTenantScope(ctx, scope.tenantId)
|
|
21
39
|
ensureOrganizationScope(ctx, scope.organizationId)
|