@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.
@@ -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.6429.1.2fba7258d1",
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.6429.1.2fba7258d1",
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.6429.1.2fba7258d1",
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.6429.1.2fba7258d1",
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.6429.1.2fba7258d1",
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.6429.1.2fba7258d1",
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.6429.1.2fba7258d1",
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.6429.1.2fba7258d1",
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.6429.1.2fba7258d1",
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
  # auth — module facts (generated, do not edit)
2
- <!-- generated from @open-mercato/core 0.6.6-develop.6429.1.2fba7258d1 — R1 staleness stamp -->
2
+ <!-- generated from @open-mercato/core 0.6.6-develop.6450.1.b493fb430c — R1 staleness stamp -->
3
3
 
4
4
  ## Entities
5
5
 
@@ -1,5 +1,5 @@
1
1
  # catalog — module facts (generated, do not edit)
2
- <!-- generated from @open-mercato/core 0.6.6-develop.6429.1.2fba7258d1 — R1 staleness stamp -->
2
+ <!-- generated from @open-mercato/core 0.6.6-develop.6450.1.b493fb430c — R1 staleness stamp -->
3
3
 
4
4
  ## Entities
5
5
 
@@ -1,5 +1,5 @@
1
1
  # currencies — module facts (generated, do not edit)
2
- <!-- generated from @open-mercato/core 0.6.6-develop.6429.1.2fba7258d1 — R1 staleness stamp -->
2
+ <!-- generated from @open-mercato/core 0.6.6-develop.6450.1.b493fb430c — R1 staleness stamp -->
3
3
 
4
4
  ## Entities
5
5
 
@@ -1,5 +1,5 @@
1
1
  # customer_accounts — module facts (generated, do not edit)
2
- <!-- generated from @open-mercato/core 0.6.6-develop.6429.1.2fba7258d1 — R1 staleness stamp -->
2
+ <!-- generated from @open-mercato/core 0.6.6-develop.6450.1.b493fb430c — R1 staleness stamp -->
3
3
 
4
4
  ## Entities
5
5
 
@@ -1,5 +1,5 @@
1
1
  # customers — module facts (generated, do not edit)
2
- <!-- generated from @open-mercato/core 0.6.6-develop.6429.1.2fba7258d1 — R1 staleness stamp -->
2
+ <!-- generated from @open-mercato/core 0.6.6-develop.6450.1.b493fb430c — R1 staleness stamp -->
3
3
 
4
4
  ## Entities
5
5
 
@@ -1,5 +1,5 @@
1
1
  # data_sync — module facts (generated, do not edit)
2
- <!-- generated from @open-mercato/core 0.6.6-develop.6429.1.2fba7258d1 — R1 staleness stamp -->
2
+ <!-- generated from @open-mercato/core 0.6.6-develop.6450.1.b493fb430c — R1 staleness stamp -->
3
3
 
4
4
  ## Entities
5
5
 
@@ -1,5 +1,5 @@
1
1
  # integrations — module facts (generated, do not edit)
2
- <!-- generated from @open-mercato/core 0.6.6-develop.6429.1.2fba7258d1 — R1 staleness stamp -->
2
+ <!-- generated from @open-mercato/core 0.6.6-develop.6450.1.b493fb430c — R1 staleness stamp -->
3
3
 
4
4
  ## Entities
5
5
 
@@ -1,5 +1,5 @@
1
1
  # sales — module facts (generated, do not edit)
2
- <!-- generated from @open-mercato/core 0.6.6-develop.6429.1.2fba7258d1 — R1 staleness stamp -->
2
+ <!-- generated from @open-mercato/core 0.6.6-develop.6450.1.b493fb430c — R1 staleness stamp -->
3
3
 
4
4
  ## Entities
5
5
 
@@ -1,5 +1,5 @@
1
1
  # workflows — module facts (generated, do not edit)
2
- <!-- generated from @open-mercato/core 0.6.6-develop.6429.1.2fba7258d1 — R1 staleness stamp -->
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",