@open-mercato/core 0.6.5-develop.4477.1.7a250f91b8 → 0.6.5-develop.4490.1.d8e873f3cf

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.
@@ -1,4 +1,4 @@
1
- [build:core] found 2928 entry points
1
+ [build:core] found 2941 entry points
2
2
  [build:core] built successfully
3
3
  [build:core:generated] found 184 entry points
4
4
  [build:core:generated] built successfully
@@ -4,7 +4,9 @@ const expiresAtSchema = z.preprocess((value) => {
4
4
  if (value === void 0 || value === null || value === "") return null;
5
5
  const date = value instanceof Date ? value : new Date(String(value));
6
6
  return Number.isNaN(date.getTime()) ? void 0 : date;
7
- }, z.date().nullable());
7
+ }, z.date().nullable().refine((date) => date === null || date.getTime() > Date.now(), {
8
+ message: "expiresAt must be in the future"
9
+ }));
8
10
  const createApiKeySchema = z.object({
9
11
  name: z.string().min(1).max(120),
10
12
  description: z.string().max(1e3).optional().nullable(),
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/modules/api_keys/data/validators.ts"],
4
- "sourcesContent": ["import { z } from 'zod'\n\nconst uuid = z.string().uuid()\n\nconst expiresAtSchema = z.preprocess((value) => {\n if (value === undefined || value === null || value === '') return null\n const date = value instanceof Date ? value : new Date(String(value))\n return Number.isNaN(date.getTime()) ? undefined : date\n}, z.date().nullable())\n\nexport const createApiKeySchema = z.object({\n name: z.string().min(1).max(120),\n description: z.string().max(1000).optional().nullable(),\n tenantId: uuid.optional().nullable(),\n organizationId: uuid.optional().nullable(),\n roles: z.array(z.string().trim().min(1)).optional().default([]),\n expiresAt: expiresAtSchema.optional(),\n})\n\nexport const updateApiKeySchema = createApiKeySchema.partial().extend({\n id: uuid,\n})\n"],
5
- "mappings": "AAAA,SAAS,SAAS;AAElB,MAAM,OAAO,EAAE,OAAO,EAAE,KAAK;AAE7B,MAAM,kBAAkB,EAAE,WAAW,CAAC,UAAU;AAC9C,MAAI,UAAU,UAAa,UAAU,QAAQ,UAAU,GAAI,QAAO;AAClE,QAAM,OAAO,iBAAiB,OAAO,QAAQ,IAAI,KAAK,OAAO,KAAK,CAAC;AACnE,SAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,IAAI,SAAY;AACpD,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC;AAEf,MAAM,qBAAqB,EAAE,OAAO;AAAA,EACzC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EAC/B,aAAa,EAAE,OAAO,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,SAAS;AAAA,EACtD,UAAU,KAAK,SAAS,EAAE,SAAS;AAAA,EACnC,gBAAgB,KAAK,SAAS,EAAE,SAAS;AAAA,EACzC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AAAA,EAC9D,WAAW,gBAAgB,SAAS;AACtC,CAAC;AAEM,MAAM,qBAAqB,mBAAmB,QAAQ,EAAE,OAAO;AAAA,EACpE,IAAI;AACN,CAAC;",
4
+ "sourcesContent": ["import { z } from 'zod'\n\nconst uuid = z.string().uuid()\n\nconst expiresAtSchema = z.preprocess((value) => {\n if (value === undefined || value === null || value === '') return null\n const date = value instanceof Date ? value : new Date(String(value))\n return Number.isNaN(date.getTime()) ? undefined : date\n}, z.date().nullable().refine((date) => date === null || date.getTime() > Date.now(), {\n message: 'expiresAt must be in the future',\n}))\n\nexport const createApiKeySchema = z.object({\n name: z.string().min(1).max(120),\n description: z.string().max(1000).optional().nullable(),\n tenantId: uuid.optional().nullable(),\n organizationId: uuid.optional().nullable(),\n roles: z.array(z.string().trim().min(1)).optional().default([]),\n expiresAt: expiresAtSchema.optional(),\n})\n\nexport const updateApiKeySchema = createApiKeySchema.partial().extend({\n id: uuid,\n})\n"],
5
+ "mappings": "AAAA,SAAS,SAAS;AAElB,MAAM,OAAO,EAAE,OAAO,EAAE,KAAK;AAE7B,MAAM,kBAAkB,EAAE,WAAW,CAAC,UAAU;AAC9C,MAAI,UAAU,UAAa,UAAU,QAAQ,UAAU,GAAI,QAAO;AAClE,QAAM,OAAO,iBAAiB,OAAO,QAAQ,IAAI,KAAK,OAAO,KAAK,CAAC;AACnE,SAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,IAAI,SAAY;AACpD,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,SAAS,QAAQ,KAAK,QAAQ,IAAI,KAAK,IAAI,GAAG;AAAA,EACpF,SAAS;AACX,CAAC,CAAC;AAEK,MAAM,qBAAqB,EAAE,OAAO;AAAA,EACzC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EAC/B,aAAa,EAAE,OAAO,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,SAAS;AAAA,EACtD,UAAU,KAAK,SAAS,EAAE,SAAS;AAAA,EACnC,gBAAgB,KAAK,SAAS,EAAE,SAAS;AAAA,EACzC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AAAA,EAC9D,WAAW,gBAAgB,SAAS;AACtC,CAAC;AAEM,MAAM,qBAAqB,mBAAmB,QAAQ,EAAE,OAAO;AAAA,EACpE,IAAI;AACN,CAAC;",
6
6
  "names": []
7
7
  }
@@ -52,9 +52,18 @@ const systemStatusResponseSchema = z.object({
52
52
  const purgeCacheResponseSchema = z.object({
53
53
  cleared: z.boolean().describe("Whether cache was successfully cleared")
54
54
  });
55
+ const cacheSegmentInfoSchema = z.object({
56
+ segment: z.string().describe("Sanitized segment identifier"),
57
+ resource: z.string().nullable().describe("Resource the segment maps to, when resolvable"),
58
+ method: z.string().nullable().describe("HTTP method the segment maps to, when resolvable"),
59
+ path: z.string().nullable().describe("Request path the segment maps to, when resolvable"),
60
+ keyCount: z.number().int().describe("Number of cache keys in the segment"),
61
+ keys: z.array(z.string()).describe("Cache keys contained in the segment")
62
+ });
55
63
  const cacheStatsResponseSchema = z.object({
56
- total: z.number().int().describe("Total cache entries"),
57
- segments: z.record(z.string(), z.number().int()).describe("Cache entries per segment")
64
+ generatedAt: z.string().describe("Snapshot generation timestamp (ISO-8601)"),
65
+ totalKeys: z.number().int().describe("Total cache keys across all segments"),
66
+ segments: z.array(cacheSegmentInfoSchema).describe("Per-segment cache breakdown")
58
67
  });
59
68
  const cachePurgeRequestSchema = z.object({
60
69
  action: z.enum(["purgeAll", "purgeSegment"]).describe("Cache purge action type"),
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/modules/configs/api/openapi.ts"],
4
- "sourcesContent": ["import { z } from 'zod'\n\nexport const configsTag = 'Configs'\n\nexport const configErrorSchema = z\n .object({\n error: z.string(),\n details: z.unknown().optional(),\n })\n .passthrough()\n\nconst systemStatusCategoryKeySchema = z.enum([\n 'profiling',\n 'logging',\n 'security',\n 'caching',\n 'query_index',\n 'entities',\n])\n\nconst systemStatusVariableKindSchema = z.enum(['boolean', 'string'])\n\nconst systemStatusStateSchema = z.enum([\n 'enabled',\n 'disabled',\n 'set',\n 'unset',\n 'unknown',\n])\n\nconst systemStatusRuntimeModeSchema = z.enum([\n 'development',\n 'production',\n 'test',\n 'unknown',\n])\n\nconst systemStatusItemSchema = z.object({\n key: z.string(),\n category: systemStatusCategoryKeySchema,\n kind: systemStatusVariableKindSchema,\n labelKey: z.string(),\n descriptionKey: z.string(),\n docUrl: z.string().nullable(),\n defaultValue: z.string().nullable(),\n state: systemStatusStateSchema,\n value: z.string().nullable(),\n normalizedValue: z.string().nullable(),\n})\n\nconst systemStatusCategorySchema = z.object({\n key: systemStatusCategoryKeySchema,\n labelKey: z.string(),\n descriptionKey: z.string().nullable(),\n items: z.array(systemStatusItemSchema),\n})\n\nexport const systemStatusResponseSchema = z.object({\n generatedAt: z.string().describe('Snapshot generation timestamp (ISO-8601)'),\n runtimeMode: systemStatusRuntimeModeSchema.describe('Current runtime mode'),\n categories: z.array(systemStatusCategorySchema).describe('Grouped system status variables by category'),\n})\n\nexport const purgeCacheResponseSchema = z.object({\n cleared: z.boolean().describe('Whether cache was successfully cleared'),\n})\n\nexport const cacheStatsResponseSchema = z.object({\n total: z.number().int().describe('Total cache entries'),\n segments: z.record(z.string(), z.number().int()).describe('Cache entries per segment'),\n})\n\nexport const cachePurgeRequestSchema = z.object({\n action: z.enum(['purgeAll', 'purgeSegment']).describe('Cache purge action type'),\n segment: z.string().optional().describe('Segment identifier (required for purgeSegment action)'),\n})\n\nexport const cachePurgeAllResponseSchema = z.object({\n action: z.literal('purgeAll'),\n stats: cacheStatsResponseSchema,\n})\n\nexport const cachePurgeSegmentResponseSchema = z.object({\n action: z.literal('purgeSegment'),\n segment: z.string(),\n deleted: z.number().int().describe('Number of entries deleted'),\n stats: cacheStatsResponseSchema,\n})\n\nexport const upgradeActionSchema = z.object({\n id: z.string().describe('Upgrade action unique identifier'),\n version: z.string().describe('Version this action applies to'),\n message: z.string().describe('Localized description of the upgrade action'),\n ctaLabel: z.string().describe('Call-to-action button label'),\n successMessage: z.string().describe('Success message after execution'),\n loadingLabel: z.string().describe('Loading state label during execution'),\n})\n\nexport const upgradeActionsListResponseSchema = z.object({\n version: z.string().describe('Current application version'),\n actions: z.array(upgradeActionSchema).describe('List of pending upgrade actions'),\n})\n\nexport const executeUpgradeActionRequestSchema = z.object({\n actionId: z.string().min(1).describe('Upgrade action ID to execute'),\n})\n\nexport const executeUpgradeActionResponseSchema = z.object({\n status: z.string().describe('Execution status'),\n message: z.string().describe('Localized success message'),\n version: z.string().describe('Application version'),\n})\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { z } from 'zod'\n\nexport const configsTag = 'Configs'\n\nexport const configErrorSchema = z\n .object({\n error: z.string(),\n details: z.unknown().optional(),\n })\n .passthrough()\n\nconst systemStatusCategoryKeySchema = z.enum([\n 'profiling',\n 'logging',\n 'security',\n 'caching',\n 'query_index',\n 'entities',\n])\n\nconst systemStatusVariableKindSchema = z.enum(['boolean', 'string'])\n\nconst systemStatusStateSchema = z.enum([\n 'enabled',\n 'disabled',\n 'set',\n 'unset',\n 'unknown',\n])\n\nconst systemStatusRuntimeModeSchema = z.enum([\n 'development',\n 'production',\n 'test',\n 'unknown',\n])\n\nconst systemStatusItemSchema = z.object({\n key: z.string(),\n category: systemStatusCategoryKeySchema,\n kind: systemStatusVariableKindSchema,\n labelKey: z.string(),\n descriptionKey: z.string(),\n docUrl: z.string().nullable(),\n defaultValue: z.string().nullable(),\n state: systemStatusStateSchema,\n value: z.string().nullable(),\n normalizedValue: z.string().nullable(),\n})\n\nconst systemStatusCategorySchema = z.object({\n key: systemStatusCategoryKeySchema,\n labelKey: z.string(),\n descriptionKey: z.string().nullable(),\n items: z.array(systemStatusItemSchema),\n})\n\nexport const systemStatusResponseSchema = z.object({\n generatedAt: z.string().describe('Snapshot generation timestamp (ISO-8601)'),\n runtimeMode: systemStatusRuntimeModeSchema.describe('Current runtime mode'),\n categories: z.array(systemStatusCategorySchema).describe('Grouped system status variables by category'),\n})\n\nexport const purgeCacheResponseSchema = z.object({\n cleared: z.boolean().describe('Whether cache was successfully cleared'),\n})\n\nconst cacheSegmentInfoSchema = z.object({\n segment: z.string().describe('Sanitized segment identifier'),\n resource: z.string().nullable().describe('Resource the segment maps to, when resolvable'),\n method: z.string().nullable().describe('HTTP method the segment maps to, when resolvable'),\n path: z.string().nullable().describe('Request path the segment maps to, when resolvable'),\n keyCount: z.number().int().describe('Number of cache keys in the segment'),\n keys: z.array(z.string()).describe('Cache keys contained in the segment'),\n})\n\nexport const cacheStatsResponseSchema = z.object({\n generatedAt: z.string().describe('Snapshot generation timestamp (ISO-8601)'),\n totalKeys: z.number().int().describe('Total cache keys across all segments'),\n segments: z.array(cacheSegmentInfoSchema).describe('Per-segment cache breakdown'),\n})\n\nexport const cachePurgeRequestSchema = z.object({\n action: z.enum(['purgeAll', 'purgeSegment']).describe('Cache purge action type'),\n segment: z.string().optional().describe('Segment identifier (required for purgeSegment action)'),\n})\n\nexport const cachePurgeAllResponseSchema = z.object({\n action: z.literal('purgeAll'),\n stats: cacheStatsResponseSchema,\n})\n\nexport const cachePurgeSegmentResponseSchema = z.object({\n action: z.literal('purgeSegment'),\n segment: z.string(),\n deleted: z.number().int().describe('Number of entries deleted'),\n stats: cacheStatsResponseSchema,\n})\n\nexport const upgradeActionSchema = z.object({\n id: z.string().describe('Upgrade action unique identifier'),\n version: z.string().describe('Version this action applies to'),\n message: z.string().describe('Localized description of the upgrade action'),\n ctaLabel: z.string().describe('Call-to-action button label'),\n successMessage: z.string().describe('Success message after execution'),\n loadingLabel: z.string().describe('Loading state label during execution'),\n})\n\nexport const upgradeActionsListResponseSchema = z.object({\n version: z.string().describe('Current application version'),\n actions: z.array(upgradeActionSchema).describe('List of pending upgrade actions'),\n})\n\nexport const executeUpgradeActionRequestSchema = z.object({\n actionId: z.string().min(1).describe('Upgrade action ID to execute'),\n})\n\nexport const executeUpgradeActionResponseSchema = z.object({\n status: z.string().describe('Execution status'),\n message: z.string().describe('Localized success message'),\n version: z.string().describe('Application version'),\n})\n"],
5
+ "mappings": "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",
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.5-develop.4477.1.7a250f91b8",
3
+ "version": "0.6.5-develop.4490.1.d8e873f3cf",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "scripts": {
@@ -244,16 +244,16 @@
244
244
  "zod": "^4.4.3"
245
245
  },
246
246
  "peerDependencies": {
247
- "@open-mercato/ai-assistant": "0.6.5-develop.4477.1.7a250f91b8",
248
- "@open-mercato/shared": "0.6.5-develop.4477.1.7a250f91b8",
249
- "@open-mercato/ui": "0.6.5-develop.4477.1.7a250f91b8",
247
+ "@open-mercato/ai-assistant": "0.6.5-develop.4490.1.d8e873f3cf",
248
+ "@open-mercato/shared": "0.6.5-develop.4490.1.d8e873f3cf",
249
+ "@open-mercato/ui": "0.6.5-develop.4490.1.d8e873f3cf",
250
250
  "react": "^19.0.0",
251
251
  "react-dom": "^19.0.0"
252
252
  },
253
253
  "devDependencies": {
254
- "@open-mercato/ai-assistant": "0.6.5-develop.4477.1.7a250f91b8",
255
- "@open-mercato/shared": "0.6.5-develop.4477.1.7a250f91b8",
256
- "@open-mercato/ui": "0.6.5-develop.4477.1.7a250f91b8",
254
+ "@open-mercato/ai-assistant": "0.6.5-develop.4490.1.d8e873f3cf",
255
+ "@open-mercato/shared": "0.6.5-develop.4490.1.d8e873f3cf",
256
+ "@open-mercato/ui": "0.6.5-develop.4490.1.d8e873f3cf",
257
257
  "@testing-library/dom": "^10.4.1",
258
258
  "@testing-library/jest-dom": "^6.9.1",
259
259
  "@testing-library/react": "^16.3.1",
@@ -6,7 +6,9 @@ const expiresAtSchema = z.preprocess((value) => {
6
6
  if (value === undefined || value === null || value === '') return null
7
7
  const date = value instanceof Date ? value : new Date(String(value))
8
8
  return Number.isNaN(date.getTime()) ? undefined : date
9
- }, z.date().nullable())
9
+ }, z.date().nullable().refine((date) => date === null || date.getTime() > Date.now(), {
10
+ message: 'expiresAt must be in the future',
11
+ }))
10
12
 
11
13
  export const createApiKeySchema = z.object({
12
14
  name: z.string().min(1).max(120),
@@ -65,9 +65,19 @@ export const purgeCacheResponseSchema = z.object({
65
65
  cleared: z.boolean().describe('Whether cache was successfully cleared'),
66
66
  })
67
67
 
68
+ const cacheSegmentInfoSchema = z.object({
69
+ segment: z.string().describe('Sanitized segment identifier'),
70
+ resource: z.string().nullable().describe('Resource the segment maps to, when resolvable'),
71
+ method: z.string().nullable().describe('HTTP method the segment maps to, when resolvable'),
72
+ path: z.string().nullable().describe('Request path the segment maps to, when resolvable'),
73
+ keyCount: z.number().int().describe('Number of cache keys in the segment'),
74
+ keys: z.array(z.string()).describe('Cache keys contained in the segment'),
75
+ })
76
+
68
77
  export const cacheStatsResponseSchema = z.object({
69
- total: z.number().int().describe('Total cache entries'),
70
- segments: z.record(z.string(), z.number().int()).describe('Cache entries per segment'),
78
+ generatedAt: z.string().describe('Snapshot generation timestamp (ISO-8601)'),
79
+ totalKeys: z.number().int().describe('Total cache keys across all segments'),
80
+ segments: z.array(cacheSegmentInfoSchema).describe('Per-segment cache breakdown'),
71
81
  })
72
82
 
73
83
  export const cachePurgeRequestSchema = z.object({