@open-mercato/cli 0.6.6-develop.6429.1.2fba7258d1 → 0.6.6-develop.6450.1.b493fb430c
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/agentic/guides/module-facts.json +9 -9
- package/dist/agentic/guides/modules/auth.md +1 -1
- package/dist/agentic/guides/modules/catalog.md +1 -1
- package/dist/agentic/guides/modules/currencies.md +1 -1
- package/dist/agentic/guides/modules/customer_accounts.md +1 -1
- package/dist/agentic/guides/modules/customers.md +1 -1
- package/dist/agentic/guides/modules/data_sync.md +1 -1
- package/dist/agentic/guides/modules/integrations.md +1 -1
- package/dist/agentic/guides/modules/sales.md +1 -1
- package/dist/agentic/guides/modules/workflows.md +1 -1
- package/dist/lib/testing/integration.js +45 -0
- package/dist/lib/testing/integration.js.map +2 -2
- package/package.json +5 -5
- package/src/lib/testing/__tests__/integration.test.ts +41 -0
- package/src/lib/testing/integration.ts +50 -0
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"auth": {
|
|
3
3
|
"title": "Authentication & Accounts",
|
|
4
4
|
"description": "User accounts, sessions, roles and password resets.",
|
|
5
|
-
"coreVersion": "0.6.6-develop.
|
|
5
|
+
"coreVersion": "0.6.6-develop.6450.1.b493fb430c",
|
|
6
6
|
"entities": [
|
|
7
7
|
{
|
|
8
8
|
"id": "auth:user",
|
|
@@ -191,7 +191,7 @@
|
|
|
191
191
|
"catalog": {
|
|
192
192
|
"title": "Product Catalog",
|
|
193
193
|
"description": "Configurable catalog for products, variants, and pricing used by the sales module.",
|
|
194
|
-
"coreVersion": "0.6.6-develop.
|
|
194
|
+
"coreVersion": "0.6.6-develop.6450.1.b493fb430c",
|
|
195
195
|
"entities": [
|
|
196
196
|
{
|
|
197
197
|
"id": "catalog:catalog_option_schema_template",
|
|
@@ -405,7 +405,7 @@
|
|
|
405
405
|
"currencies": {
|
|
406
406
|
"title": "Currencies",
|
|
407
407
|
"description": "Currencies and Exchange rate management",
|
|
408
|
-
"coreVersion": "0.6.6-develop.
|
|
408
|
+
"coreVersion": "0.6.6-develop.6450.1.b493fb430c",
|
|
409
409
|
"entities": [
|
|
410
410
|
{
|
|
411
411
|
"id": "currencies:currency",
|
|
@@ -489,7 +489,7 @@
|
|
|
489
489
|
"customer_accounts": {
|
|
490
490
|
"title": "Customer Identity & Portal Authentication",
|
|
491
491
|
"description": "Customer-facing authentication with two-tier identity model and full RBAC.",
|
|
492
|
-
"coreVersion": "0.6.6-develop.
|
|
492
|
+
"coreVersion": "0.6.6-develop.6450.1.b493fb430c",
|
|
493
493
|
"entities": [
|
|
494
494
|
{
|
|
495
495
|
"id": "customer_accounts:customer_user",
|
|
@@ -729,7 +729,7 @@
|
|
|
729
729
|
"customers": {
|
|
730
730
|
"title": "Customer Relationship Management",
|
|
731
731
|
"description": "Core CRM capabilities for people, companies, deals, and activities.",
|
|
732
|
-
"coreVersion": "0.6.6-develop.
|
|
732
|
+
"coreVersion": "0.6.6-develop.6450.1.b493fb430c",
|
|
733
733
|
"entities": [
|
|
734
734
|
{
|
|
735
735
|
"id": "customers:customer_entity",
|
|
@@ -1211,7 +1211,7 @@
|
|
|
1211
1211
|
"data_sync": {
|
|
1212
1212
|
"title": "Data Sync",
|
|
1213
1213
|
"description": "Streaming data sync hub for import/export integrations.",
|
|
1214
|
-
"coreVersion": "0.6.6-develop.
|
|
1214
|
+
"coreVersion": "0.6.6-develop.6450.1.b493fb430c",
|
|
1215
1215
|
"entities": [
|
|
1216
1216
|
{
|
|
1217
1217
|
"id": "data_sync:sync_run",
|
|
@@ -1289,7 +1289,7 @@
|
|
|
1289
1289
|
"integrations": {
|
|
1290
1290
|
"title": "Integrations",
|
|
1291
1291
|
"description": "Core integration framework — external ID mapping, status badges, and integration registry.",
|
|
1292
|
-
"coreVersion": "0.6.6-develop.
|
|
1292
|
+
"coreVersion": "0.6.6-develop.6450.1.b493fb430c",
|
|
1293
1293
|
"entities": [
|
|
1294
1294
|
{
|
|
1295
1295
|
"id": "integrations:sync_external_id_mapping",
|
|
@@ -1365,7 +1365,7 @@
|
|
|
1365
1365
|
"sales": {
|
|
1366
1366
|
"title": "Sales Management",
|
|
1367
1367
|
"description": "Quoting, ordering, fulfillment, and billing capabilities built on modular pricing and tax pipelines.",
|
|
1368
|
-
"coreVersion": "0.6.6-develop.
|
|
1368
|
+
"coreVersion": "0.6.6-develop.6450.1.b493fb430c",
|
|
1369
1369
|
"entities": [
|
|
1370
1370
|
{
|
|
1371
1371
|
"id": "sales:sales_channel",
|
|
@@ -1839,7 +1839,7 @@
|
|
|
1839
1839
|
"workflows": {
|
|
1840
1840
|
"title": "Workflow Engine",
|
|
1841
1841
|
"description": "Orchestrate business processes with state machines, transitions, and activities",
|
|
1842
|
-
"coreVersion": "0.6.6-develop.
|
|
1842
|
+
"coreVersion": "0.6.6-develop.6450.1.b493fb430c",
|
|
1843
1843
|
"entities": [
|
|
1844
1844
|
{
|
|
1845
1845
|
"id": "workflows:workflow_definition",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# customer_accounts — module facts (generated, do not edit)
|
|
2
|
-
<!-- generated from @open-mercato/core 0.6.6-develop.
|
|
2
|
+
<!-- generated from @open-mercato/core 0.6.6-develop.6450.1.b493fb430c — R1 staleness stamp -->
|
|
3
3
|
|
|
4
4
|
## Entities
|
|
5
5
|
|
|
@@ -73,6 +73,30 @@ function collectExistingPaths(candidates) {
|
|
|
73
73
|
}
|
|
74
74
|
return Array.from(collected);
|
|
75
75
|
}
|
|
76
|
+
function isLikelyNextAppDirectory(candidate) {
|
|
77
|
+
if (!existsSync(path.join(candidate, "package.json"))) {
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
return resolveFirstExistingPath(
|
|
81
|
+
path.join(candidate, "next.config.ts"),
|
|
82
|
+
path.join(candidate, "next.config.js"),
|
|
83
|
+
path.join(candidate, "next.config.mjs"),
|
|
84
|
+
path.join(candidate, "src", "modules.ts")
|
|
85
|
+
) !== null;
|
|
86
|
+
}
|
|
87
|
+
function resolveDefaultPrivateAttachmentsAppDirectory() {
|
|
88
|
+
const candidates = [
|
|
89
|
+
appDirectory,
|
|
90
|
+
path.join(projectRootDirectory, "apps", "mercato"),
|
|
91
|
+
path.join(projectRootDirectory, "apps", "app")
|
|
92
|
+
];
|
|
93
|
+
for (const candidate of candidates) {
|
|
94
|
+
if (isLikelyNextAppDirectory(candidate)) {
|
|
95
|
+
return candidate;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return appDirectory;
|
|
99
|
+
}
|
|
76
100
|
function readPackageScripts(packageRoot) {
|
|
77
101
|
try {
|
|
78
102
|
const raw = JSON.parse(readFileSync(path.join(packageRoot, "package.json"), "utf8"));
|
|
@@ -95,6 +119,13 @@ const LEGACY_EPHEMERAL_ENV_FILE_PATH = path.join(projectRootDirectory, ".ai", "q
|
|
|
95
119
|
const EPHEMERAL_BUILD_CACHE_STATE_PATH = path.join(projectRootDirectory, ".ai", "qa", "ephemeral-build-cache.json");
|
|
96
120
|
const EPHEMERAL_CACHE_DB_PATH = path.join(projectRootDirectory, ".ai", "qa", "ephemeral-cache.sqlite");
|
|
97
121
|
const EPHEMERAL_QUEUE_BASE_DIR = path.join(appDirectory, ".mercato", "queue");
|
|
122
|
+
const PRIVATE_ATTACHMENTS_PARTITION_ENV_KEY = "ATTACHMENTS_PARTITION_PRIVATE_ATTACHMENTS_ROOT";
|
|
123
|
+
const EPHEMERAL_PRIVATE_ATTACHMENTS_ROOT = path.join(
|
|
124
|
+
resolveDefaultPrivateAttachmentsAppDirectory(),
|
|
125
|
+
"storage",
|
|
126
|
+
"attachments",
|
|
127
|
+
"privateAttachments"
|
|
128
|
+
);
|
|
98
129
|
const PLAYWRIGHT_INTEGRATION_CONFIG_PATH = ".ai/qa/tests/playwright.config.ts";
|
|
99
130
|
const PLAYWRIGHT_RESULTS_JSON_PATH = path.join(projectRootDirectory, ".ai", "qa", "test-results", "results.json");
|
|
100
131
|
const LEGACY_INTEGRATION_TEST_ROOT = path.join(projectRootDirectory, ".ai", "qa", "tests");
|
|
@@ -1222,6 +1253,7 @@ async function acquireEphemeralRuntimeLock(logPrefix, options = {}) {
|
|
|
1222
1253
|
}
|
|
1223
1254
|
function buildReusableEnvironment(baseUrl, databaseUrl, queueBaseDir, captureScreenshots) {
|
|
1224
1255
|
const enterpriseModulesFlag = process.env.OM_ENABLE_ENTERPRISE_MODULES ?? "false";
|
|
1256
|
+
const privateAttachmentsRoot = resolvePrivateAttachmentsRootForQueueBaseDir(queueBaseDir);
|
|
1225
1257
|
return buildEnvironment({
|
|
1226
1258
|
DATABASE_URL: databaseUrl,
|
|
1227
1259
|
BASE_URL: baseUrl,
|
|
@@ -1266,10 +1298,22 @@ function buildReusableEnvironment(baseUrl, databaseUrl, queueBaseDir, captureScr
|
|
|
1266
1298
|
OM_CLI_QUIET: "1",
|
|
1267
1299
|
MERCATO_QUIET: "1",
|
|
1268
1300
|
QUEUE_BASE_DIR: queueBaseDir,
|
|
1301
|
+
[PRIVATE_ATTACHMENTS_PARTITION_ENV_KEY]: process.env[PRIVATE_ATTACHMENTS_PARTITION_ENV_KEY] ?? privateAttachmentsRoot,
|
|
1269
1302
|
NODE_NO_WARNINGS: "1",
|
|
1270
1303
|
PW_CAPTURE_SCREENSHOTS: captureScreenshots ? "1" : "0"
|
|
1271
1304
|
});
|
|
1272
1305
|
}
|
|
1306
|
+
function resolvePrivateAttachmentsRootForQueueBaseDir(queueBaseDir) {
|
|
1307
|
+
const resolvedQueueBaseDir = path.resolve(queueBaseDir);
|
|
1308
|
+
const queueParent = path.dirname(resolvedQueueBaseDir);
|
|
1309
|
+
if (path.basename(resolvedQueueBaseDir) === "queue" && path.basename(queueParent) === ".mercato") {
|
|
1310
|
+
const queueAppDirectory = path.dirname(queueParent);
|
|
1311
|
+
if (isLikelyNextAppDirectory(queueAppDirectory)) {
|
|
1312
|
+
return path.join(queueAppDirectory, "storage", "attachments", "privateAttachments");
|
|
1313
|
+
}
|
|
1314
|
+
}
|
|
1315
|
+
return EPHEMERAL_PRIVATE_ATTACHMENTS_ROOT;
|
|
1316
|
+
}
|
|
1273
1317
|
async function tryReuseExistingEnvironment(options) {
|
|
1274
1318
|
const state = await readEphemeralEnvironmentState();
|
|
1275
1319
|
if (!state) {
|
|
@@ -2444,6 +2488,7 @@ async function startEphemeralEnvironment(options) {
|
|
|
2444
2488
|
OM_CLI_QUIET: "1",
|
|
2445
2489
|
MERCATO_QUIET: "1",
|
|
2446
2490
|
QUEUE_BASE_DIR: EPHEMERAL_QUEUE_BASE_DIR,
|
|
2491
|
+
[PRIVATE_ATTACHMENTS_PARTITION_ENV_KEY]: process.env[PRIVATE_ATTACHMENTS_PARTITION_ENV_KEY] ?? EPHEMERAL_PRIVATE_ATTACHMENTS_ROOT,
|
|
2447
2492
|
NODE_NO_WARNINGS: "1",
|
|
2448
2493
|
PORT: String(applicationPort),
|
|
2449
2494
|
PW_CAPTURE_SCREENSHOTS: options.captureScreenshots ? "1" : "0",
|