From ba4eb43a8ffac5e6c746624e8f20d145608effcd Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 9 Sep 2026 14:31:52 +0000 Subject: [PATCH] chore(deps): move @objectstack/* from 17.3.0 to 17.4.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The declared ranges (`^17.0.0`) already admitted 17.4.0; the lockfile was what held the app at 17.3.0, so this is a lockfile move — `pnpm update "@objectstack/*"` inside the range, package.json untouched. All 57 @objectstack packages the tree resolves are now 17.4.0. Verified on a real boot and in a real browser rather than by the version string changing: - Gates: validate / lint / typecheck / lint:i18n-gate all exit 0. - Clean-database `pnpm demo` boot: 820 rows, identical to the 17.3.0 baseline taken on the same worktree, both read at seeder quiescence. Every `readonly: true` stamp the seeder writes still lands — the 17.4 static-readonly INSERT strip treats a seed as the system act its own changeset says it is. - The strip IS live for a non-system caller: a REST insert carrying a forged `contract_number` gets the hook's number instead, and the field-level-security families (`submitted_at`, `approved_at`, `route_*`) refuse loudly with PERMISSION_DENIED before the strip can apply silently. - `readonly: true` still does not lock the ENGINE out (the claim at contract.object.ts:26, re-verified because 17.4 re-opened it): a non-system child insert moved the parent's readonly `planned_amount` roll-up from 0 to 12345. - Browser: sign-in, 我的合同 with rows, all three dashboards with real numbers, all seven contract-detail tabs, one zh-CN pass — zero HTTP >= 400 from any app surface. Rider, declared on the card: closes the two prose numbers of #34. `src/data/index.ts` said 780 rows and installs 820. The interval that `scripts/demo.mjs` and `src/data/plan-contracts.ts` gave two answers for is re-measured on 17.4 and now lives in demo.mjs only; plan-contracts.ts states the reason rung 1 resolves to nobody without depending on which boot mints the admin, which #21's handover changed. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01R3n3GGzobdegM4HUzah1iR --- pnpm-lock.yaml | 881 +++++++++++++++++++------------------ scripts/demo.mjs | 10 +- src/data/index.ts | 2 +- src/data/plan-contracts.ts | 11 +- 4 files changed, 457 insertions(+), 447 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fef1421..cbc528e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -23,17 +23,17 @@ importers: dependencies: '@objectstack/plugin-hono-server': specifier: ^17.0.0 - version: 17.3.0 + version: 17.4.0 '@objectstack/runtime': specifier: ^17.0.0 - version: 17.3.0(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.5.4))(better-sqlite3@13.0.3)(kysely@0.29.5)(mongodb@7.6.0)(nanostores@1.5.3) + version: 17.4.0(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.5.4))(better-sqlite3@13.0.3)(kysely@0.29.5)(mongodb@7.6.0)(nanostores@1.5.3) '@objectstack/spec': specifier: ^17.0.0 - version: 17.3.0 + version: 17.4.0 devDependencies: '@objectstack/cli': specifier: ^17.0.0 - version: 17.3.0(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.5.4))(kysely@0.29.5)(mongodb@7.6.0)(nanostores@1.5.3) + version: 17.4.0(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.5.4))(kysely@0.29.5)(mongodb@7.6.0)(nanostores@1.5.3) typescript: specifier: ^6.0.0 version: 6.0.3 @@ -363,8 +363,8 @@ packages: '@cfworker/json-schema': optional: true - '@mongodb-js/saslprep@1.5.0': - resolution: {integrity: sha512-Hk1SKJCMcCos38+vqDnZzlIo4XRj9yCGzYkjB4LcqpeXRIYfia1UWTz+VrueLxoU+uSRJzgkufxoRZg8gi52YA==} + '@mongodb-js/saslprep@1.5.3': + resolution: {integrity: sha512-WU+Mu2wu7+pXtoJprYlcZvZGcpQD2r5K/HwMCYl4tdPLIAC36+UX2r4KtrKc6Kif0I3TlirkC9Bl72CMHnLdKw==} '@noble/ciphers@2.4.0': resolution: {integrity: sha512-AnjFn0Jv92laAkvMrghlFZq4qQCIN/4DxFV/eooqtC2YTjB7kBeLMS2T9KJX4Dn+ZVXLOwK0lSgqDtx9gvxtiw==} @@ -377,45 +377,45 @@ packages: '@nodable/entities@3.0.0': resolution: {integrity: sha512-8L9xFeTYKhm49xfIypoe2W5wV1m/3Z58kT+7kR9A8OyFxcPduI4VmxaUMQyKYrRjUoLLSXv6EKKID5Tvj9cUVw==} - '@objectstack/account@17.3.0': - resolution: {integrity: sha512-m4t99EdHiIbVrKhVzNc7Q6o3vCk2QK7NWW0ugpGwbFrHl43L7WdPrYiTjfo1aWfbEcqW0yj2YouOQ3uW0G7C4w==} + '@objectstack/account@17.4.0': + resolution: {integrity: sha512-VrdHnwBzLrcE+nGVFKpQRdaCnE9gcPJrZWEfYFobvAA9i0Rna4qW+b8CNnZGHAwCHguZPjULA9PPQ6gddUakWQ==} engines: {node: '>=22.0.0'} - '@objectstack/cli@17.3.0': - resolution: {integrity: sha512-I41b1A+0LUPBOwjAWe502GGELE/lVhzi9ERJZDnuvYjXSPm7Qflh14rdCzT0X+Wg8Z+KWQu4mp4NYFYNJ7Fhqw==} + '@objectstack/cli@17.4.0': + resolution: {integrity: sha512-w1enDeHRS7ai2XzH47x5poYdf6qwDhfDCnNErSiib5vpaG87JDf+JOlT/QoVEyW1i3ruovlftTwpYUBEIqWEnA==} engines: {node: '>=22.0.0'} hasBin: true peerDependencies: - '@objectstack/driver-turso': ^17.3.0 + '@objectstack/driver-turso': ^17.4.0 peerDependenciesMeta: '@objectstack/driver-turso': optional: true - '@objectstack/client@17.3.0': - resolution: {integrity: sha512-EoxDSZPxdqiInaEQ2eZlRAL0LES73sT2xVUqbUW84pXcB2f+s2uztOZmdkE/IDS65oBrMe8NnJ++q5RrwgI+wg==} + '@objectstack/client@17.4.0': + resolution: {integrity: sha512-4Zsov0iRcZhaYAGiabX2XJPhDsE6XmRhlfYikxLECZ1cxbHhXjVpsNL3rl56wkTHuNV1jMzZZwzj2rJJUbVYcQ==} engines: {node: '>=22.0.0'} - '@objectstack/cloud-connection@17.3.0': - resolution: {integrity: sha512-GftVHxdPNN/NKT7oOIlgRpYcKgkMVs/pBO8hXTAXiZXQJPUtCwAc27itysV+iga4S3SP8aR7R9h/+QeHz7WRsw==} + '@objectstack/cloud-connection@17.4.0': + resolution: {integrity: sha512-WVIv57eXWoFlpkRWpUZdWQo7XG1Dxwij1HFcTvigACvAIbxwPnVXlt0bqOHCjagfdGHNfUdzutnA1LijfvGfHg==} engines: {node: '>=22.0.0'} - '@objectstack/console@17.3.0': - resolution: {integrity: sha512-R+ZdiQdulgELZh7sIiZFipmP3M02LZjtwq4b4yzlOB+bfzeWVqGppA53kBXkYolRT/T3kbQzlwyWojpbn5R5KQ==} + '@objectstack/console@17.4.0': + resolution: {integrity: sha512-TL8Kgw7PsJHyMK0+RGRQu7KWwuEQjhL87rUOg5rwC+G4dDIsyi/oZYQSjvf5+Nw0W51/A1rw7iIciyoLfQycTw==} - '@objectstack/core@17.3.0': - resolution: {integrity: sha512-MgH+HYLEl7dCQJ9XW4Wi/mBX32+WMUSf5X65DplUvHvfOeLQHnDg/GoXjnNVFBI+82A0tgkBPpvsvn7haduY8A==} + '@objectstack/core@17.4.0': + resolution: {integrity: sha512-e/br10MaIZAJGgD7pb9AnW8zn9I18aJyiUYswMQGdjGheZYpp98ZV3WlAVpZFhnKkfd42VDMltB+X494oB8/1Q==} engines: {node: '>=22.0.0'} - '@objectstack/driver-memory@17.3.0': - resolution: {integrity: sha512-avmZF9+czDU4dDhHksEusRhax8C/k7K/z2dobR/ltS2euabtnitLVgbeUQc+kehsgcwkoX3xz6VoaFmDoC1qhg==} + '@objectstack/driver-memory@17.4.0': + resolution: {integrity: sha512-BRldy/el8QfusgJYvN1PjnAfAD1fmKqJgvOPKRHRnp68azfBYmUqGLrSV+/p8Ut4IMGVFpsRTg8L1DkYGY5MoA==} engines: {node: '>=22.0.0'} - '@objectstack/driver-mongodb@17.3.0': - resolution: {integrity: sha512-I2p9jmubA77CCoK1jCYQIocLUeQwC0ce9o+Eh1Wci9Xo4wrhSIAzTTHcOUBv/eGJ7Ad0x+xAWqeoXCeW6Zf0BA==} + '@objectstack/driver-mongodb@17.4.0': + resolution: {integrity: sha512-92n6r0eqrLbegtH5AO8IDrOCsF8C688fYG2ovqDTeD2UNGkHhsZ7DmBO3lpDEMKYbwKtG3R1ro0V1cQ4KsqP8A==} engines: {node: '>=22.0.0'} - '@objectstack/driver-sql@17.3.0': - resolution: {integrity: sha512-BYirrbnhAchvorwnBfw0obkdn1UhMXTzKLSPAi/1H52OnuQyJFoNjxAkAzal1XNp3dMWKC7JziT9J6bFTgz95g==} + '@objectstack/driver-sql@17.4.0': + resolution: {integrity: sha512-63up0U1AUQQKhnDqADTih9HJVfATkl5BAeAx1MXHYQJuAmP2EQnMxQDDiumwSh819mj7c8IxLpyGiy8/TcbogA==} engines: {node: '>=22.0.0'} peerDependencies: mysql2: ^3.0.0 @@ -429,23 +429,23 @@ packages: tedious: optional: true - '@objectstack/driver-sqlite-wasm@17.3.0': - resolution: {integrity: sha512-Fu71c5YCXL+SWfLGhkd3VlnkEtmQqeiU7c4zw85jnPjZn5kxTgCSywtzivCNyG7re/pfNwvomjy0hI0/fMZYdg==} + '@objectstack/driver-sqlite-wasm@17.4.0': + resolution: {integrity: sha512-jI7e3gIy65dfcw3X6PAsCL5yx9bXliso3VDaaEsglQrXW+ixLV+x0vRguk/Xa9BVv53/ntwbMryDGdDF0an02w==} engines: {node: '>=22.0.0'} - '@objectstack/formula@17.3.0': - resolution: {integrity: sha512-zLR5DdFshJOvNMX9G4CPBPbWeVrWa/b1GxcMFhyNldtJCb92YlGsgd7vw8OWUkoxE+k9AnbfbxbDaxSxY2Ecgw==} + '@objectstack/formula@17.4.0': + resolution: {integrity: sha512-pWVkvXKXJxjnsx1i7mYIteltc6kjn/qS6swJ6bw5XG5B7bf8GjjBsuvcJR86nuTg+z8B9+snruaD9i9v8uw0LQ==} - '@objectstack/lint@17.3.0': - resolution: {integrity: sha512-pRFjIZ+sQmlPT2N24aM9szwHK50P3AjiwmHEFi6DUHJGtDq/Tt4HtZ+89nF7WP0MfT1AK8nlNadxsDrHPF8UCg==} + '@objectstack/lint@17.4.0': + resolution: {integrity: sha512-9Lst+TDusPVh3Fb1gxDPSsXpAFrkEIlusqLzBsCKQ0ebLaHxG2GrfMXQofDTox9vr7jOVSAKCW5jkHUmg5XpoA==} engines: {node: '>=22.0.0'} - '@objectstack/mcp@17.3.0': - resolution: {integrity: sha512-nBgpePUqDM0yHvPd8+qf7Csw0gvgcVkEQxMOoDjv+8T/NFGJwofK1s74f6oq5oPVpeGu3HbFLj4lay3OQKCb/Q==} + '@objectstack/mcp@17.4.0': + resolution: {integrity: sha512-EKvEKF9t2HjjoZPCwe7mqvMVzIKqxiYctWq95wdHqUWp4ERL2kEm4bfQKXj07AgnAZxT7WrRcqGdOdxZStEfPg==} engines: {node: '>=22.0.0'} - '@objectstack/metadata-core@17.3.0': - resolution: {integrity: sha512-bB01VP7j6ZAnTvbl9Jwg3GoEknrmi43S7R1BxniUhOtnlszPNnPRdoNVLeE3kOLN/7wdqqrwNyCtXirYlES9Jg==} + '@objectstack/metadata-core@17.4.0': + resolution: {integrity: sha512-zhQpw/FUK2UOjKWHY2x5k43h4NXRiVJZ2tnkl3iu1j/akbn6Bik73p8OVzEHO7IvpEmY821lfRp/235yTqZWAw==} engines: {node: '>=22.0.0'} peerDependencies: vitest: ^4.0.0 @@ -453,101 +453,101 @@ packages: vitest: optional: true - '@objectstack/metadata-fs@17.3.0': - resolution: {integrity: sha512-BGUOgffmiTMI1O5ca2ay1JbQUO0sPibkhWQukIjEFu4soaFG49FtH3PwPqQcV4WGzi1EC3HeV15s7gRy2LvG3g==} + '@objectstack/metadata-fs@17.4.0': + resolution: {integrity: sha512-lVpVc/XBnrAWukmq5jmihDNDjf44Udopu7olYH7PacInghjdwZA+wMU4tHGNBiGJuRVjrIebcsfIxJ5o4+p4pA==} engines: {node: '>=22.0.0'} - '@objectstack/metadata-protocol@17.3.0': - resolution: {integrity: sha512-nXyHPYNydUj26gOLVn8/7/Gm1a2mBGPT9dSCl3T/IVsIhcgUEPOaIkatQOIhHKMQPn0lWVuXd37/QnZX+T8zMQ==} + '@objectstack/metadata-protocol@17.4.0': + resolution: {integrity: sha512-iYHlxxKhi7t/C/i602fX9x+D/c9f2ElwdtfEUgyzf8DkZIrYel7e7Ayoincahm9xlWSlD4Ijjl3cBElnhrvJrQ==} engines: {node: '>=22.0.0'} - '@objectstack/metadata@17.3.0': - resolution: {integrity: sha512-zp9tMM7Vt/Dx5sZpvJ/LIOsUpGN36bo4V6daZJeIe8uQaYbRsdpIcq/JoLX/SQz1+4bE9rRqqkDHsAvmlxDIZQ==} + '@objectstack/metadata@17.4.0': + resolution: {integrity: sha512-GQvja5+iClxhBxnX01DQvMc+JMKIFpA7/kYzgAqIdbNZ13l8OuIkP3ADwCmlBrwDid7bkkDNOCD8eYvXr5/E6A==} engines: {node: '>=22.0.0'} - '@objectstack/objectql@17.3.0': - resolution: {integrity: sha512-/zhgxX0lmd8RCgAzDgocTY2mzcBQle9TVp1HAbVkMfCVPK87o9KRrR6MMZVa9RuTjZkLpab0JVHUvye/vB4UOQ==} + '@objectstack/objectql@17.4.0': + resolution: {integrity: sha512-b7LNj/7BUILbmz1sHgxEVEDk2DJXAPYEuIEp5t/VzQz9vz9iAiENJow3QBvCwCcnWYD7n62dVhHDDFicMtbLsw==} engines: {node: '>=22.0.0'} - '@objectstack/observability@17.3.0': - resolution: {integrity: sha512-e7apFFPktKaSv1q8fEfYgEYsM7u8gnRHvRtWBTt4aJ4MXa9/RyX0cGILtyFegS9ou/VN/zs18c5feNLmqI6q0A==} + '@objectstack/observability@17.4.0': + resolution: {integrity: sha512-LkcfJCvrn4Zab2hz3pG9yimUfN8Ly3RhRhK011PtGBh1L4juXc67zg1flh6rfbNmayLzw7dPeg+WQMLuDkLRxw==} engines: {node: '>=22.0.0'} - '@objectstack/platform-objects@17.3.0': - resolution: {integrity: sha512-eQQ0NdPqss6QmWlgULVxW78WYj35wH4Pi9iwFKaw4tMxa3dqAoT7zkz4rPKo6jRe/iGtpuWQ/+tSsPUuPmeO2g==} + '@objectstack/platform-objects@17.4.0': + resolution: {integrity: sha512-p4MdRDlPNPxvj1VUfuW8ym0eLr99vMDWVdw3mNIkR73v7rao/Xyq9Bgu4Rm9SEK63TvvQS3fVQ7CGQGwkS0MSg==} engines: {node: '>=22.0.0'} - '@objectstack/plugin-approvals@17.3.0': - resolution: {integrity: sha512-5LnEN5OWZzY2HNa+8NuRSrLEiWOo3AFOYGEd5Cvgl7qs+qxA4QKAaO24sB/5i2GduNYnBtu8d02Llpuh5ndfyg==} + '@objectstack/plugin-approvals@17.4.0': + resolution: {integrity: sha512-BLcrU9trWoO3gfXpazxdHJxKSAUJfNTJkFGuYDZHw/ICjt3ZdaiEQV95eUhN2Nib0we/r85DZTz3OsDab771Mg==} - '@objectstack/plugin-audit@17.3.0': - resolution: {integrity: sha512-+g4TodBpdPGOd0tKN0R0HyoFaoWBVrxE0ypEYEUPi8+KSj1th7s25N5B74+OlnnWtc3Pmd5+m3lC+zZQXI7Quw==} + '@objectstack/plugin-audit@17.4.0': + resolution: {integrity: sha512-RLVxRMZiEjiUkEg2rwJteHkFd868bcxsoFJ/x10hYrQmCHnMoppZzFEdYzRrijNK3qkFVsCfI5FlNE6m/HyfNA==} engines: {node: '>=22.0.0'} - '@objectstack/plugin-auth@17.3.0': - resolution: {integrity: sha512-euCoj8zQp6wZJgsx3edsVmLPss97/rXyR+CfwMSSD0IcDbErEVHRX0jfpqFxiCn/dukBxqpcrovHHeDWOIzeig==} + '@objectstack/plugin-auth@17.4.0': + resolution: {integrity: sha512-GISbJk9f9gbvIEc/+gHiEk/ltRaJ2ic1Dg3hmWJKCtwiyn93t7FRfxS93Qb07mjMXGXW2B2Q540EkI+vvhxgeg==} engines: {node: '>=22.0.0'} - '@objectstack/plugin-email@17.3.0': - resolution: {integrity: sha512-aNnpSD9w1+KRDUVZrByUqFz9yd52iQEdKyeOhM/9QN3Xi+zYRGPNozyOl1j2+XmUNcTgy61dyn3q08hEZ9jLDQ==} + '@objectstack/plugin-email@17.4.0': + resolution: {integrity: sha512-jDaExEd3eSZjy7xiltFTJhgFLjnflPddwmCN2eVbMkVN8OOzI2n6pz7d5Za2kT1Mt92pfmi1z4cQE5YMn9r9NA==} - '@objectstack/plugin-hono-server@17.3.0': - resolution: {integrity: sha512-IhUPJzb8Xnm1kS0zmIjVHODWCt4vAH51q64tCQ7tOLDlj6W9P1mlPQ9Vt5SEp1aOwLl7ISCMA/VZtct9aYGMWQ==} + '@objectstack/plugin-hono-server@17.4.0': + resolution: {integrity: sha512-LTZ4RI9/ZDaKqXOtnm4uviqfeygbZNEMcEGlGu9PVTxu0uND7mLvjh0nz1wqYwWAl/f5eRN57BN3bgzqV2Bt1A==} engines: {node: '>=22.0.0'} - '@objectstack/plugin-pinyin-search@17.3.0': - resolution: {integrity: sha512-MneBViUNjZN6RWYlfD/Rs+yWuJS3Z0BxkhWtFNsq39nEy6IXQyTpvPFFkRYncg31ELiG1Ke0IiMKcaTd2IcRVA==} + '@objectstack/plugin-pinyin-search@17.4.0': + resolution: {integrity: sha512-p1uvYETyvfz8622y7xv3caBVeKGq/0KV6mPxkitMxO6Qpm85hT/KWCoJ6uxwRL43use9ji8CpL41mHAma7Vzhw==} - '@objectstack/plugin-reports@17.3.0': - resolution: {integrity: sha512-nBcb1MDDU96HKOmPqaoHg5KqS/Yy0jdhmy0zLdUZTsuJYS2PjJ7qhKRk+ovcTzQHZRzVbDamC8RO4YE78H6Stw==} + '@objectstack/plugin-reports@17.4.0': + resolution: {integrity: sha512-9ITXRV2w5WQoOuXZRsLmfPI2MG/MBee60kx1beA5K35pqRckVED06FThTMTMlClmBa0xDMZx1ITSMs0PnAmMLA==} - '@objectstack/plugin-security@17.3.0': - resolution: {integrity: sha512-oB1ErJiQ1MYel7t2NTxIDJDNDz5QsFN18bEJkq7efb/22hFHkvIDXZ43fHiw5d8xwqkC0nfkX1lgsej5BFDrWw==} + '@objectstack/plugin-security@17.4.0': + resolution: {integrity: sha512-r/wgp7vKhpwrRHKua1wbGyCadyuWllT5BWOQltW/HYy2I8fCfYF+otTdkENNDq018XowB1HIfwdUXMO8p2gpXA==} engines: {node: '>=22.0.0'} - '@objectstack/plugin-sharing@17.3.0': - resolution: {integrity: sha512-ehn88zs9WJpoeL+T5LaqlXeC+xClGMU7NwJM/9n14Oy9aXjgCUXafhANy0vZbDsAIzzyElyhepLgl4YwcomqjQ==} + '@objectstack/plugin-sharing@17.4.0': + resolution: {integrity: sha512-5elA8yGI7nCP2tAT4yWl63H/76Qn6JcusaI+xeES28ScNVWuiasCVu9ocf7kxBxFk8OUmnR9ba4DANwPvQyBkQ==} - '@objectstack/plugin-webhooks@17.3.0': - resolution: {integrity: sha512-RJpcC/058DzCuLgZXz7llujmLFdcOBW7owKMb68v3SPaPXUJ6q19FYTfiSdn7mRw89iSm2pvYMPcnBKiGSfwdA==} + '@objectstack/plugin-webhooks@17.4.0': + resolution: {integrity: sha512-6gcd+v1bME30LSQ2weeXa0q+naa5ITjqfhYDbuh+L3sSGAXOrflDRs/SGJKFvsw7dWsv98Jdw0rkknRq5kwfdA==} - '@objectstack/rest@17.3.0': - resolution: {integrity: sha512-CZS56TUV8XlE9L+pKzvTINdrLIr+0IJb7yj6vAUGdl325A6RS08JAP7xdYtP8hgGCBJuMWf+UxQIsQLkxCZBWA==} + '@objectstack/rest@17.4.0': + resolution: {integrity: sha512-q132ZGba7Zez9Ei4a6xvkVpbephDBQ7oi5GsxGQeT8ljL9duoLpOX7GJa7HwqAbOGi7MRmgoN6+BEmrzmBz9fQ==} engines: {node: '>=22.0.0'} - '@objectstack/runtime@17.3.0': - resolution: {integrity: sha512-8RO3JDTa8N5UTxmCQbsfnb1aaSpyu+2qwpLa/7rgvbre11dg5VjGWeWL5z7frC8jL0Xob6ZMBtusKLgBUKmkHA==} + '@objectstack/runtime@17.4.0': + resolution: {integrity: sha512-q2bMGlD0/z+DUbsMlg055UwTSkJszgtQyqJWJWcJP8Z+5xkHo2nE3tDGQEhdwfcpJwm5aoafniZ0WLf5Pbo+Dw==} engines: {node: '>=22.0.0'} peerDependencies: - '@objectstack/driver-turso': ^17.3.0 + '@objectstack/driver-turso': ^17.4.0 peerDependenciesMeta: '@objectstack/driver-turso': optional: true - '@objectstack/sdui-parser@17.3.0': - resolution: {integrity: sha512-LbzxlLBoDBd0yxoIYMhYuXJ+j3iEsqvvBtrB0JWWda8Iy6mhPqbpyjj11Y5bZ2A0yGf20z0b/vXLDi1ISNIwpA==} + '@objectstack/sdui-parser@17.4.0': + resolution: {integrity: sha512-pKKTqP6siwsLtcO7tDxMufHoCWuUeWjoRBv8NRGlptB+a/uhO0WKXHzZ3+zWVqz9a/Ac9N2Xwp+hBPoGtG4Z1w==} - '@objectstack/service-analytics@17.3.0': - resolution: {integrity: sha512-eWUWzOiDb32SdvRpW+GtAqCVgciBGpIXaSh7FumIO9l+C4BiEzjtG40cTAd0XyyaIT4HwyBPWmG7h3YgbF0PZw==} + '@objectstack/service-analytics@17.4.0': + resolution: {integrity: sha512-meRlePSJ9pUAYXMM+sUk8wZgca5jSV6R53vYhfEoqdYXP1C1xqnpAD9gXZLFDmyK4kz3ihHv3TZ0ozvtXXL4/A==} engines: {node: '>=22.0.0'} - '@objectstack/service-automation@17.3.0': - resolution: {integrity: sha512-EI7NTwIOk9bFv7YgjmFmC/H060580dhyHGwENdETA4gV2NYIH0AHt0ULCl73GpV4XWBuA94LR2/eRdyQ0MjQDA==} + '@objectstack/service-automation@17.4.0': + resolution: {integrity: sha512-lT+Lkx6i1Xox017nMBAFUgrtP4Bb7XPV39R4AG5u/caNxINJpnezomd/imEcGY8yBsUlwtXuRc/VFEUjyFucyg==} engines: {node: '>=22.0.0'} - '@objectstack/service-cache@17.3.0': - resolution: {integrity: sha512-JHFh/wzIbTeWGLsgJTHWVJ7Vn3/GW/Brz17JzzgeuOMN2V0KO0XbPKe3HoJuKyJ3gbtNhldPhCRTWbFqZy2OLQ==} + '@objectstack/service-cache@17.4.0': + resolution: {integrity: sha512-hCjjx+jSU5yCasPryGC3eTzmOw2Rc4GfzMthUWlie0uw1HzlTgRFxxq6GDd2JfPg3ysCrdEdt9a96KTYCJf7Yg==} engines: {node: '>=22.0.0'} - '@objectstack/service-cluster@17.3.0': - resolution: {integrity: sha512-bykGAdswV0QcihBm4M/LLjJK49uAPIW1kuOes/Tg3ChcxoKsOBcDztGBfkkydwPXvJloeNwQTjNlLoigwcSPfA==} + '@objectstack/service-cluster@17.4.0': + resolution: {integrity: sha512-IaeUfak7j86Js31RFHgeRw78yxUFyclPIOpdBv3PQjUV5TagtODAWdUyp8URQr+jUJTrwYCIbFoz81G18t7QUA==} - '@objectstack/service-datasource@17.3.0': - resolution: {integrity: sha512-sYNGmf23b6xtzeLgR11Oo3DIt/zyqaRnYiTLkM59udSkf3F+oCQERZc2giJO93PFv6g1W65vFUqJI0ee75SAoA==} + '@objectstack/service-datasource@17.4.0': + resolution: {integrity: sha512-CSOpXKBOiOHFlbbQhR9qThRZO11FZwVYmKBBviDfGr/yJQi9S7b0ZkJ9yIkZ7xsRszEFQD4jxDQ9D1J9zuQVqg==} peerDependencies: - '@objectstack/driver-mongodb': ^17.3.0 - '@objectstack/driver-sqlite-wasm': ^17.3.0 - '@objectstack/driver-turso': ^17.3.0 + '@objectstack/driver-mongodb': ^17.4.0 + '@objectstack/driver-sqlite-wasm': ^17.4.0 + '@objectstack/driver-turso': ^17.4.0 peerDependenciesMeta: '@objectstack/driver-mongodb': optional: true @@ -556,39 +556,39 @@ packages: '@objectstack/driver-turso': optional: true - '@objectstack/service-i18n@17.3.0': - resolution: {integrity: sha512-ZrsMKD1s0Glv1x9H7aV2VCdYGldlCs4SgTNfRb6XPAXT9dYTKQkvM5z5Yf26dO9vXFujMESB4jvduRC7BZLfAw==} + '@objectstack/service-i18n@17.4.0': + resolution: {integrity: sha512-hPois8KeNT98QfTde1i98cyMj0G2V9NMb1T7mHG2HNIGyqdKWYFZauhEd67glDWA7SlDBLCP1tgyMzCCYQC/jg==} engines: {node: '>=22.0.0'} - '@objectstack/service-job@17.3.0': - resolution: {integrity: sha512-vKYZdfpTiaaxMLqzYemwHEnBPD1b1IxPOrU9QF1N1LTA+os/SazWeFeddSLJLWzydy72cH/im0bRNfED+tAo/w==} + '@objectstack/service-job@17.4.0': + resolution: {integrity: sha512-GcCh018YCl5Liv1o1ern2+a90XofyUnKbgr/Vlz1ocBUkC2iyT4CImeq0cit3Ps5wBbmzz60f8mhf7bneOGzEQ==} engines: {node: '>=22.0.0'} - '@objectstack/service-messaging@17.3.0': - resolution: {integrity: sha512-mNCba/QUJB4RdhwH2jLMTnPCOd9kR9ItTlAXiEOug9gW3df6Y2MSQ19x1dnp4dVf6NpLX6TZIbtrdLpOEyExrg==} + '@objectstack/service-messaging@17.4.0': + resolution: {integrity: sha512-w3AcEucIJQpNLmON9oRBEysVGWWhoXXe10Xm3Ka62/dqyJUJex9MqWKIT5mt5r1Qh+go/o42n5glv+jGqmw86g==} engines: {node: '>=22.0.0'} - '@objectstack/service-package@17.3.0': - resolution: {integrity: sha512-dOoGFgyn+T/ZtKu+85ApG2udQXPm5JaNP9qA2RflXxkf4GR1/6P2PwjTtovX/HddVoOQtDk+R5v0W51NxWw9wQ==} + '@objectstack/service-package@17.4.0': + resolution: {integrity: sha512-mnAdCl2Sq1ucxOj/CIhjt9mabbyez4bxxnnR8iApduX7B1GDole+MbMiWgPttju07rGyQc9Y1dvc1cl++lYEyg==} engines: {node: '>=22.0.0'} - '@objectstack/service-queue@17.3.0': - resolution: {integrity: sha512-1C6PkIXxQNajqXG++VTXR2Y6H2Q7LhHd/GpX4NOPSoCiPUbMzE3F8GpMdQ03dWybbLnGbFQbq0BBTnHPe7H1Hg==} + '@objectstack/service-queue@17.4.0': + resolution: {integrity: sha512-xHH29M+B08ldA2S2JOvBDAgTnjXCPyYErzyvLLGx1uuBHgOrRrpzUp6qaLzatk6+/j/J/TU/9fvFIGWKgyLRFg==} engines: {node: '>=22.0.0'} - '@objectstack/service-realtime@17.3.0': - resolution: {integrity: sha512-1wx3cLtO6Vqd2ILEiT8Db+PA1Cy6453KaM24Jx4EzGeUsnStJLpLFxZYmJMGhF+UdFkzZtnopiKYdkDaLpl1uw==} + '@objectstack/service-realtime@17.4.0': + resolution: {integrity: sha512-HGEv0un6zrf8zYMNBCP06Ssq2Iv87zh7X8dJYq92ptLIXDdr9snvW/Mk+5uY4JjUhN+I2g/8V2E84OUrhldoSQ==} engines: {node: '>=22.0.0'} - '@objectstack/service-settings@17.3.0': - resolution: {integrity: sha512-ujUb+47K7NdRcC9X85Q478VlPz4Y6SVG2d1QvaYqyZH5yY2o7glKKl/8rnUJsMKiY1aq8PMnhp0Q7oPyRezDgg==} + '@objectstack/service-settings@17.4.0': + resolution: {integrity: sha512-wFwwrSTDi7ykDCO8J2wkpwiYwl70edxv8lJwMExqmgYUXcjsBL9RxNNNjisIdU1Doudv5xS1u43lXvcqhjrGWA==} engines: {node: '>=22.0.0'} - '@objectstack/service-sms@17.3.0': - resolution: {integrity: sha512-aWVv8FshItO+jwke3/soM/FV0e+xE2VruoGNNR7Yxuvcga58DnTYZZSKJIGIioByiitlTgl92vq3R/PisrZ/Zg==} + '@objectstack/service-sms@17.4.0': + resolution: {integrity: sha512-us2vkXJIlUo5+5nX8jqvI72V0aAIyQ8KX136Aw4mK8+3c0Bf6IG3JZBpx3IVlc9Q2un44i+m8zmkMKQLxFWFPA==} - '@objectstack/service-storage@17.3.0': - resolution: {integrity: sha512-uxU+DIURX4B8nMJaWZgpd7MVoQqxqhwi/HKvz2gYdxiFW0rlcdc9QP23PWzywSkuQy+QAOVkuciH7SMd5fbQ2A==} + '@objectstack/service-storage@17.4.0': + resolution: {integrity: sha512-SpOeGAeTP3xf2ObmIsoQWa54UMP7BTB1jL7bSZXUeX2/e/CJR81N6Y/s2gzuJqudy/R7p0unOeQRyAlOSe9bzg==} engines: {node: '>=22.0.0'} peerDependencies: '@aws-sdk/client-s3': ^3.0.0 @@ -599,12 +599,12 @@ packages: '@aws-sdk/s3-request-presigner': optional: true - '@objectstack/setup@17.3.0': - resolution: {integrity: sha512-+XVPjKJ+TR001OpfxqK9lnRk9f8sdK4ElL0atqvD4GNh45CYgpT7MhQLVH515GQaikG94IYrzc2mgCNe+itrSg==} + '@objectstack/setup@17.4.0': + resolution: {integrity: sha512-Z0BuKodUTEDOh5yHGwLJMMLBQauYlSb3QueiG+ZJdntBy7nRBXgBZxja5CsUNGe3wo703TAZbtxqeRKqXKycXQ==} engines: {node: '>=22.0.0'} - '@objectstack/spec@17.3.0': - resolution: {integrity: sha512-mceFp9swHHISMycZk8TjdqjBhi0GboQoapRSNeFyaI8GBIpw5cRc37GrWrIFVTZLaVCc7TF3XHSi1qqjaBNmzA==} + '@objectstack/spec@17.4.0': + resolution: {integrity: sha512-bOtSFih0Ed67JZMGuLmlHuIv2zPN62W8NL2qENQCYjZB174NMlIIvHC6Jlz2SIy5EwsTnTGBF5EPF6C2/TmqoA==} engines: {node: '>=22.0.0'} peerDependencies: ai: ^7.0.0 @@ -612,23 +612,23 @@ packages: ai: optional: true - '@objectstack/trigger-api@17.3.0': - resolution: {integrity: sha512-+T6Gr17NjQgUsLU8Xm29RvvO5E+gmDtj0rpJHsZrnHBbKM3KDOk+nr3FoDROJI7xmgKo8ymocdcDqWhzvUm6BA==} + '@objectstack/trigger-api@17.4.0': + resolution: {integrity: sha512-dngvTGtV9NiplYHgeaPetPmletyOY8x0laKr7mqKxxvpPSSD3L59DQELYUZQRzcPnBxxUuoUJshAtq35PCvBVg==} - '@objectstack/trigger-record-change@17.3.0': - resolution: {integrity: sha512-MRSHd7yRBRJxfWiCS0V2pgs6TYSrle3Oqy3Rc4sicpGXZG+mcZLqk4KR1MdJ2NxnqojtSoaf8HPyz1QHmUvLrA==} + '@objectstack/trigger-record-change@17.4.0': + resolution: {integrity: sha512-w+MDiNpzPcnT0OJxPVLK4MFPxQP1A1IOK1bEkxoTt/74VqG8EwbzlQ9zxnLUJ8alOAxmMnMhIDgSDTCZQ94KlA==} engines: {node: '>=22.0.0'} - '@objectstack/trigger-schedule@17.3.0': - resolution: {integrity: sha512-3Dz9ZmZj7xRh2gtOu01QKrWVJnxiOHjtiBwPsV/egoZYHhIKOjdtHvx58cEdWCg13klpZesq0EcvvI88NfCFLA==} + '@objectstack/trigger-schedule@17.4.0': + resolution: {integrity: sha512-XdU0cjtCBUryUhgzyK7qY5IV2KPXORdeRgPmaq8g8nfAIXMlGpKCxwuGYMAYdiCsllCEwlhnh3Wuu4V1lHsz7A==} engines: {node: '>=22.0.0'} - '@objectstack/types@17.3.0': - resolution: {integrity: sha512-G5c2+V0gzR5co5XcZ0Zs4uTOp42421Yj6fWEWVV6kEpKfIzaDYUzv1HfmwdOfLklrbtNiF3loBg6jB00BVge/g==} + '@objectstack/types@17.4.0': + resolution: {integrity: sha512-z7eCTBlGqAX8ChKifkItGg+woONgAMBbWtu8OmTqI6Fzn8z7JDCm07+K0gg0hivD1uoUUL253s8mshdiqpZnnQ==} engines: {node: '>=22.0.0'} - '@objectstack/verify@17.3.0': - resolution: {integrity: sha512-mUh54oYSKSNnuoHKzieZCaRRJ5Oa6r5g/CMVwMssuKJN3aGY2fCy/CiUmF4mwNZUzWzCLtnhyNJZbsrrmpwqyw==} + '@objectstack/verify@17.4.0': + resolution: {integrity: sha512-C+0K/2p4z3QLhFa6VBbH+kK8rU2Mdlm95XL9TdrLu0KTYEmGPj92aF4jQTB2T9+7zQgwJhJ/4JaT9EZl2lUytw==} engines: {node: '>=22.0.0'} '@oclif/core@4.14.0': @@ -958,8 +958,8 @@ packages: resolution: {integrity: sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==} engines: {node: '>= 10'} - create-objectstack@17.3.0: - resolution: {integrity: sha512-5DxdEjsy9gHwCAWB8rJYFlYUy2mYl98CvlaE19xPO2bkPBMyTb1Y+C8Sz3assATqwFIOIbzbTgXH2PJJSDvCNA==} + create-objectstack@17.4.0: + resolution: {integrity: sha512-y88N8mzKTj/zKRTXbSUVUb5VQ3oKJnjI/c6gV8b1vraAOaPNtX1cmLw3/HP0k53HkDHHrb2va4yklSIWsN0ifA==} engines: {node: '>=22.0.0'} hasBin: true @@ -1277,8 +1277,8 @@ packages: json-schema-typed@8.0.2: resolution: {integrity: sha512-fQhoXdcvc3V28x7C7BMs4P5+kNlgUURe2jmUT1T//oBRMDrqy1QPelJimwZGo7Hg9VPV3EQV5Bnq4hbFy2vetA==} - jszip@3.10.1: - resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==} + jszip@3.10.2: + resolution: {integrity: sha512-3l+rb15IOWtUhU0H5MFqES/T6Kh7abYwjosBey/vD6hDt8zoEffkSC5Ws5SGtgVw3gBx2NEbhTeSW1+kWkpyTQ==} knex@3.3.0: resolution: {integrity: sha512-LgWl031hNuLv9Lhxdd9093zULa2aNcoP04Bk29e5NidgRcEr/T0rAr2WYi4BhjTiCDoQiRU56meUE5rppLKZzQ==} @@ -2169,7 +2169,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@mongodb-js/saslprep@1.5.0': + '@mongodb-js/saslprep@1.5.3': dependencies: sparse-bitfield: 3.0.3 @@ -2179,70 +2179,70 @@ snapshots: '@nodable/entities@3.0.0': {} - '@objectstack/account@17.3.0': + '@objectstack/account@17.4.0': dependencies: - '@objectstack/platform-objects': 17.3.0 - '@objectstack/spec': 17.3.0 + '@objectstack/platform-objects': 17.4.0 + '@objectstack/spec': 17.4.0 transitivePeerDependencies: - ai - vitest - '@objectstack/cli@17.3.0(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.5.4))(kysely@0.29.5)(mongodb@7.6.0)(nanostores@1.5.3)': - dependencies: - '@objectstack/account': 17.3.0 - '@objectstack/client': 17.3.0 - '@objectstack/cloud-connection': 17.3.0(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.5.4))(better-sqlite3@13.0.3)(kysely@0.29.5)(mongodb@7.6.0)(nanostores@1.5.3) - '@objectstack/console': 17.3.0 - '@objectstack/core': 17.3.0 - '@objectstack/driver-memory': 17.3.0 - '@objectstack/driver-mongodb': 17.3.0 - '@objectstack/driver-sql': 17.3.0 - '@objectstack/driver-sqlite-wasm': 17.3.0(better-sqlite3@13.0.3) - '@objectstack/formula': 17.3.0 - '@objectstack/lint': 17.3.0 - '@objectstack/mcp': 17.3.0 - '@objectstack/metadata': 17.3.0 - '@objectstack/metadata-core': 17.3.0 - '@objectstack/metadata-protocol': 17.3.0 - '@objectstack/objectql': 17.3.0 - '@objectstack/observability': 17.3.0 - '@objectstack/platform-objects': 17.3.0 - '@objectstack/plugin-approvals': 17.3.0 - '@objectstack/plugin-audit': 17.3.0 - '@objectstack/plugin-auth': 17.3.0(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.5.4))(better-sqlite3@13.0.3)(kysely@0.29.5)(mongodb@7.6.0)(nanostores@1.5.3) - '@objectstack/plugin-email': 17.3.0 - '@objectstack/plugin-hono-server': 17.3.0 - '@objectstack/plugin-pinyin-search': 17.3.0 - '@objectstack/plugin-reports': 17.3.0 - '@objectstack/plugin-security': 17.3.0 - '@objectstack/plugin-sharing': 17.3.0 - '@objectstack/plugin-webhooks': 17.3.0 - '@objectstack/rest': 17.3.0 - '@objectstack/runtime': 17.3.0(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.5.4))(better-sqlite3@13.0.3)(kysely@0.29.5)(mongodb@7.6.0)(nanostores@1.5.3) - '@objectstack/service-analytics': 17.3.0 - '@objectstack/service-automation': 17.3.0 - '@objectstack/service-cache': 17.3.0 - '@objectstack/service-datasource': 17.3.0(@objectstack/driver-mongodb@17.3.0)(@objectstack/driver-sqlite-wasm@17.3.0(better-sqlite3@13.0.3)) - '@objectstack/service-job': 17.3.0 - '@objectstack/service-messaging': 17.3.0 - '@objectstack/service-package': 17.3.0 - '@objectstack/service-queue': 17.3.0 - '@objectstack/service-realtime': 17.3.0 - '@objectstack/service-settings': 17.3.0 - '@objectstack/service-sms': 17.3.0(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.5.4))(better-sqlite3@13.0.3)(kysely@0.29.5)(mongodb@7.6.0)(nanostores@1.5.3) - '@objectstack/service-storage': 17.3.0 - '@objectstack/setup': 17.3.0 - '@objectstack/spec': 17.3.0 - '@objectstack/trigger-api': 17.3.0 - '@objectstack/trigger-record-change': 17.3.0 - '@objectstack/trigger-schedule': 17.3.0 - '@objectstack/types': 17.3.0 - '@objectstack/verify': 17.3.0(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(@objectstack/driver-mongodb@17.3.0)(@objectstack/driver-sqlite-wasm@17.3.0(better-sqlite3@13.0.3))(better-call@1.4.0(zod@4.5.4))(better-sqlite3@13.0.3)(kysely@0.29.5)(mongodb@7.6.0)(nanostores@1.5.3) + '@objectstack/cli@17.4.0(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.5.4))(kysely@0.29.5)(mongodb@7.6.0)(nanostores@1.5.3)': + dependencies: + '@objectstack/account': 17.4.0 + '@objectstack/client': 17.4.0 + '@objectstack/cloud-connection': 17.4.0(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.5.4))(better-sqlite3@13.0.3)(kysely@0.29.5)(mongodb@7.6.0)(nanostores@1.5.3) + '@objectstack/console': 17.4.0 + '@objectstack/core': 17.4.0 + '@objectstack/driver-memory': 17.4.0 + '@objectstack/driver-mongodb': 17.4.0 + '@objectstack/driver-sql': 17.4.0 + '@objectstack/driver-sqlite-wasm': 17.4.0(better-sqlite3@13.0.3) + '@objectstack/formula': 17.4.0 + '@objectstack/lint': 17.4.0 + '@objectstack/mcp': 17.4.0 + '@objectstack/metadata': 17.4.0 + '@objectstack/metadata-core': 17.4.0 + '@objectstack/metadata-protocol': 17.4.0 + '@objectstack/objectql': 17.4.0 + '@objectstack/observability': 17.4.0 + '@objectstack/platform-objects': 17.4.0 + '@objectstack/plugin-approvals': 17.4.0 + '@objectstack/plugin-audit': 17.4.0 + '@objectstack/plugin-auth': 17.4.0(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.5.4))(better-sqlite3@13.0.3)(kysely@0.29.5)(mongodb@7.6.0)(nanostores@1.5.3) + '@objectstack/plugin-email': 17.4.0 + '@objectstack/plugin-hono-server': 17.4.0 + '@objectstack/plugin-pinyin-search': 17.4.0 + '@objectstack/plugin-reports': 17.4.0 + '@objectstack/plugin-security': 17.4.0 + '@objectstack/plugin-sharing': 17.4.0 + '@objectstack/plugin-webhooks': 17.4.0 + '@objectstack/rest': 17.4.0 + '@objectstack/runtime': 17.4.0(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.5.4))(better-sqlite3@13.0.3)(kysely@0.29.5)(mongodb@7.6.0)(nanostores@1.5.3) + '@objectstack/service-analytics': 17.4.0 + '@objectstack/service-automation': 17.4.0 + '@objectstack/service-cache': 17.4.0 + '@objectstack/service-datasource': 17.4.0(@objectstack/driver-mongodb@17.4.0)(@objectstack/driver-sqlite-wasm@17.4.0(better-sqlite3@13.0.3)) + '@objectstack/service-job': 17.4.0 + '@objectstack/service-messaging': 17.4.0 + '@objectstack/service-package': 17.4.0 + '@objectstack/service-queue': 17.4.0 + '@objectstack/service-realtime': 17.4.0 + '@objectstack/service-settings': 17.4.0 + '@objectstack/service-sms': 17.4.0(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.5.4))(better-sqlite3@13.0.3)(kysely@0.29.5)(mongodb@7.6.0)(nanostores@1.5.3) + '@objectstack/service-storage': 17.4.0 + '@objectstack/setup': 17.4.0 + '@objectstack/spec': 17.4.0 + '@objectstack/trigger-api': 17.4.0 + '@objectstack/trigger-record-change': 17.4.0 + '@objectstack/trigger-schedule': 17.4.0 + '@objectstack/types': 17.4.0 + '@objectstack/verify': 17.4.0(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(@objectstack/driver-mongodb@17.4.0)(@objectstack/driver-sqlite-wasm@17.4.0(better-sqlite3@13.0.3))(better-call@1.4.0(zod@4.5.4))(better-sqlite3@13.0.3)(kysely@0.29.5)(mongodb@7.6.0)(nanostores@1.5.3) '@oclif/core': 4.14.0 bundle-require: 5.1.0(esbuild@0.28.2) chalk: 6.0.0 chokidar: 5.0.0 - create-objectstack: 17.3.0 + create-objectstack: 17.4.0 dotenv-flow: 4.1.0 esbuild: 0.28.2 ts-morph: 28.0.0 @@ -2296,19 +2296,19 @@ snapshots: - vitest - vue - '@objectstack/client@17.3.0': + '@objectstack/client@17.4.0': dependencies: - '@objectstack/core': 17.3.0 - '@objectstack/spec': 17.3.0 + '@objectstack/core': 17.4.0 + '@objectstack/spec': 17.4.0 transitivePeerDependencies: - ai - '@objectstack/cloud-connection@17.3.0(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.5.4))(better-sqlite3@13.0.3)(kysely@0.29.5)(mongodb@7.6.0)(nanostores@1.5.3)': + '@objectstack/cloud-connection@17.4.0(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.5.4))(better-sqlite3@13.0.3)(kysely@0.29.5)(mongodb@7.6.0)(nanostores@1.5.3)': dependencies: - '@objectstack/core': 17.3.0 - '@objectstack/runtime': 17.3.0(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.5.4))(better-sqlite3@13.0.3)(kysely@0.29.5)(mongodb@7.6.0)(nanostores@1.5.3) - '@objectstack/spec': 17.3.0 - '@objectstack/types': 17.3.0 + '@objectstack/core': 17.4.0 + '@objectstack/runtime': 17.4.0(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.5.4))(better-sqlite3@13.0.3)(kysely@0.29.5)(mongodb@7.6.0)(nanostores@1.5.3) + '@objectstack/spec': 17.4.0 + '@objectstack/types': 17.4.0 transitivePeerDependencies: - '@aws-sdk/credential-providers' - '@better-auth/utils' @@ -2353,30 +2353,30 @@ snapshots: - vitest - vue - '@objectstack/console@17.3.0': {} + '@objectstack/console@17.4.0': {} - '@objectstack/core@17.3.0': + '@objectstack/core@17.4.0': dependencies: - '@objectstack/spec': 17.3.0 - '@objectstack/types': 17.3.0 + '@objectstack/spec': 17.4.0 + '@objectstack/types': 17.4.0 zod: 4.5.4 transitivePeerDependencies: - ai - '@objectstack/driver-memory@17.3.0': + '@objectstack/driver-memory@17.4.0': dependencies: - '@objectstack/core': 17.3.0 - '@objectstack/spec': 17.3.0 - '@objectstack/types': 17.3.0 + '@objectstack/core': 17.4.0 + '@objectstack/spec': 17.4.0 + '@objectstack/types': 17.4.0 mingo: 7.2.4 transitivePeerDependencies: - ai - '@objectstack/driver-mongodb@17.3.0': + '@objectstack/driver-mongodb@17.4.0': dependencies: - '@objectstack/core': 17.3.0 - '@objectstack/spec': 17.3.0 - '@objectstack/types': 17.3.0 + '@objectstack/core': 17.4.0 + '@objectstack/spec': 17.4.0 + '@objectstack/types': 17.4.0 mongodb: 7.6.0 nanoid: 6.0.1 transitivePeerDependencies: @@ -2389,12 +2389,12 @@ snapshots: - snappy - socks - '@objectstack/driver-sql@17.3.0': + '@objectstack/driver-sql@17.4.0': dependencies: - '@objectstack/core': 17.3.0 - '@objectstack/observability': 17.3.0 - '@objectstack/spec': 17.3.0 - '@objectstack/types': 17.3.0 + '@objectstack/core': 17.4.0 + '@objectstack/observability': 17.4.0 + '@objectstack/spec': 17.4.0 + '@objectstack/types': 17.4.0 knex: 3.3.0(better-sqlite3@13.0.3) nanoid: 6.0.1 optionalDependencies: @@ -2408,11 +2408,11 @@ snapshots: - sqlite3 - supports-color - '@objectstack/driver-sqlite-wasm@17.3.0(better-sqlite3@13.0.3)': + '@objectstack/driver-sqlite-wasm@17.4.0(better-sqlite3@13.0.3)': dependencies: - '@objectstack/core': 17.3.0 - '@objectstack/driver-sql': 17.3.0 - '@objectstack/spec': 17.3.0 + '@objectstack/core': 17.4.0 + '@objectstack/driver-sql': 17.4.0 + '@objectstack/spec': 17.4.0 knex: 3.3.0(better-sqlite3@13.0.3) nanoid: 6.0.1 sql.js: 1.14.2 @@ -2429,18 +2429,18 @@ snapshots: - supports-color - tedious - '@objectstack/formula@17.3.0': + '@objectstack/formula@17.4.0': dependencies: '@marcbachmann/cel-js': 8.0.0 - '@objectstack/spec': 17.3.0 + '@objectstack/spec': 17.4.0 transitivePeerDependencies: - ai - '@objectstack/lint@17.3.0': + '@objectstack/lint@17.4.0': dependencies: - '@objectstack/formula': 17.3.0 - '@objectstack/sdui-parser': 17.3.0 - '@objectstack/spec': 17.3.0 + '@objectstack/formula': 17.4.0 + '@objectstack/sdui-parser': 17.4.0 + '@objectstack/spec': 17.4.0 ajv: 8.20.0 ajv-formats: 3.0.1(ajv@8.20.0) sucrase: 3.35.1 @@ -2448,56 +2448,56 @@ snapshots: transitivePeerDependencies: - ai - '@objectstack/mcp@17.3.0': + '@objectstack/mcp@17.4.0': dependencies: '@modelcontextprotocol/sdk': 1.30.0(zod@4.5.4) - '@objectstack/core': 17.3.0 - '@objectstack/formula': 17.3.0 - '@objectstack/spec': 17.3.0 - '@objectstack/types': 17.3.0 + '@objectstack/core': 17.4.0 + '@objectstack/formula': 17.4.0 + '@objectstack/spec': 17.4.0 + '@objectstack/types': 17.4.0 zod: 4.5.4 transitivePeerDependencies: - '@cfworker/json-schema' - ai - supports-color - '@objectstack/metadata-core@17.3.0': + '@objectstack/metadata-core@17.4.0': dependencies: - '@objectstack/spec': 17.3.0 + '@objectstack/spec': 17.4.0 zod: 4.5.4 transitivePeerDependencies: - ai - '@objectstack/metadata-fs@17.3.0': + '@objectstack/metadata-fs@17.4.0': dependencies: - '@objectstack/metadata-core': 17.3.0 + '@objectstack/metadata-core': 17.4.0 chokidar: 5.0.0 transitivePeerDependencies: - ai - vitest - '@objectstack/metadata-protocol@17.3.0': + '@objectstack/metadata-protocol@17.4.0': dependencies: - '@objectstack/core': 17.3.0 - '@objectstack/formula': 17.3.0 - '@objectstack/lint': 17.3.0 - '@objectstack/metadata': 17.3.0 - '@objectstack/metadata-core': 17.3.0 - '@objectstack/spec': 17.3.0 - '@objectstack/types': 17.3.0 + '@objectstack/core': 17.4.0 + '@objectstack/formula': 17.4.0 + '@objectstack/lint': 17.4.0 + '@objectstack/metadata': 17.4.0 + '@objectstack/metadata-core': 17.4.0 + '@objectstack/spec': 17.4.0 + '@objectstack/types': 17.4.0 zod: 4.5.4 transitivePeerDependencies: - ai - vitest - '@objectstack/metadata@17.3.0': + '@objectstack/metadata@17.4.0': dependencies: - '@objectstack/core': 17.3.0 - '@objectstack/metadata-core': 17.3.0 - '@objectstack/metadata-fs': 17.3.0 - '@objectstack/platform-objects': 17.3.0 - '@objectstack/spec': 17.3.0 - '@objectstack/types': 17.3.0 + '@objectstack/core': 17.4.0 + '@objectstack/metadata-core': 17.4.0 + '@objectstack/metadata-fs': 17.4.0 + '@objectstack/platform-objects': 17.4.0 + '@objectstack/spec': 17.4.0 + '@objectstack/types': 17.4.0 chokidar: 5.0.0 glob: 13.0.6 js-yaml: 5.4.1 @@ -2506,15 +2506,15 @@ snapshots: - ai - vitest - '@objectstack/objectql@17.3.0': + '@objectstack/objectql@17.4.0': dependencies: - '@objectstack/core': 17.3.0 - '@objectstack/formula': 17.3.0 - '@objectstack/metadata': 17.3.0 - '@objectstack/metadata-core': 17.3.0 - '@objectstack/metadata-protocol': 17.3.0 - '@objectstack/spec': 17.3.0 - '@objectstack/types': 17.3.0 + '@objectstack/core': 17.4.0 + '@objectstack/formula': 17.4.0 + '@objectstack/metadata': 17.4.0 + '@objectstack/metadata-core': 17.4.0 + '@objectstack/metadata-protocol': 17.4.0 + '@objectstack/spec': 17.4.0 + '@objectstack/types': 17.4.0 ajv: 8.20.0 ajv-formats: 3.0.1(ajv@8.20.0) zod: 4.5.4 @@ -2522,56 +2522,56 @@ snapshots: - ai - vitest - '@objectstack/observability@17.3.0': + '@objectstack/observability@17.4.0': dependencies: - '@objectstack/spec': 17.3.0 + '@objectstack/spec': 17.4.0 transitivePeerDependencies: - ai - '@objectstack/platform-objects@17.3.0': + '@objectstack/platform-objects@17.4.0': dependencies: - '@objectstack/metadata-core': 17.3.0 - '@objectstack/spec': 17.3.0 + '@objectstack/metadata-core': 17.4.0 + '@objectstack/spec': 17.4.0 transitivePeerDependencies: - ai - vitest - '@objectstack/plugin-approvals@17.3.0': + '@objectstack/plugin-approvals@17.4.0': dependencies: - '@objectstack/core': 17.3.0 - '@objectstack/formula': 17.3.0 - '@objectstack/metadata-core': 17.3.0 - '@objectstack/platform-objects': 17.3.0 - '@objectstack/spec': 17.3.0 - '@objectstack/types': 17.3.0 + '@objectstack/core': 17.4.0 + '@objectstack/formula': 17.4.0 + '@objectstack/metadata-core': 17.4.0 + '@objectstack/platform-objects': 17.4.0 + '@objectstack/spec': 17.4.0 + '@objectstack/types': 17.4.0 transitivePeerDependencies: - ai - vitest - '@objectstack/plugin-audit@17.3.0': + '@objectstack/plugin-audit@17.4.0': dependencies: - '@objectstack/core': 17.3.0 - '@objectstack/metadata-core': 17.3.0 - '@objectstack/objectql': 17.3.0 - '@objectstack/platform-objects': 17.3.0 - '@objectstack/spec': 17.3.0 + '@objectstack/core': 17.4.0 + '@objectstack/metadata-core': 17.4.0 + '@objectstack/objectql': 17.4.0 + '@objectstack/platform-objects': 17.4.0 + '@objectstack/spec': 17.4.0 transitivePeerDependencies: - ai - vitest - '@objectstack/plugin-auth@17.3.0(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.5.4))(better-sqlite3@13.0.3)(kysely@0.29.5)(mongodb@7.6.0)(nanostores@1.5.3)': + '@objectstack/plugin-auth@17.4.0(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.5.4))(better-sqlite3@13.0.3)(kysely@0.29.5)(mongodb@7.6.0)(nanostores@1.5.3)': dependencies: '@better-auth/core': 1.7.2(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.5.4))(jose@6.2.12)(kysely@0.29.5)(nanostores@1.5.3) '@better-auth/oauth-provider': 1.7.2(@better-auth/core@1.7.2(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.5.4))(jose@6.2.12)(kysely@0.29.5)(nanostores@1.5.3))(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-auth@1.7.2(better-sqlite3@13.0.3)(mongodb@7.6.0))(better-call@1.4.0(zod@4.5.4)) '@better-auth/scim': 1.7.2(@better-auth/core@1.7.2(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.5.4))(jose@6.2.12)(kysely@0.29.5)(nanostores@1.5.3))(@better-auth/utils@0.4.2)(better-auth@1.7.2(better-sqlite3@13.0.3)(mongodb@7.6.0))(better-call@1.4.0(zod@4.5.4)) '@better-auth/sso': 1.7.2(@better-auth/core@1.7.2(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.5.4))(jose@6.2.12)(kysely@0.29.5)(nanostores@1.5.3))(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-auth@1.7.2(better-sqlite3@13.0.3)(mongodb@7.6.0))(better-call@1.4.0(zod@4.5.4)) '@noble/hashes': 2.4.0 - '@objectstack/core': 17.3.0 - '@objectstack/platform-objects': 17.3.0 - '@objectstack/rest': 17.3.0 - '@objectstack/service-messaging': 17.3.0 - '@objectstack/spec': 17.3.0 - '@objectstack/types': 17.3.0 + '@objectstack/core': 17.4.0 + '@objectstack/platform-objects': 17.4.0 + '@objectstack/rest': 17.4.0 + '@objectstack/service-messaging': 17.4.0 + '@objectstack/spec': 17.4.0 + '@objectstack/types': 17.4.0 better-auth: 1.7.2(better-sqlite3@13.0.3)(mongodb@7.6.0) jose: 6.2.12 transitivePeerDependencies: @@ -2603,122 +2603,122 @@ snapshots: - vitest - vue - '@objectstack/plugin-email@17.3.0': + '@objectstack/plugin-email@17.4.0': dependencies: - '@objectstack/core': 17.3.0 - '@objectstack/formula': 17.3.0 - '@objectstack/platform-objects': 17.3.0 - '@objectstack/spec': 17.3.0 + '@objectstack/core': 17.4.0 + '@objectstack/formula': 17.4.0 + '@objectstack/platform-objects': 17.4.0 + '@objectstack/spec': 17.4.0 nodemailer: 9.1.1 transitivePeerDependencies: - ai - vitest - '@objectstack/plugin-hono-server@17.3.0': + '@objectstack/plugin-hono-server@17.4.0': dependencies: '@hono/node-server': 2.1.1(hono@4.13.7) - '@objectstack/core': 17.3.0 - '@objectstack/observability': 17.3.0 - '@objectstack/spec': 17.3.0 - '@objectstack/types': 17.3.0 + '@objectstack/core': 17.4.0 + '@objectstack/observability': 17.4.0 + '@objectstack/spec': 17.4.0 + '@objectstack/types': 17.4.0 hono: 4.13.7 transitivePeerDependencies: - ai - '@objectstack/plugin-pinyin-search@17.3.0': + '@objectstack/plugin-pinyin-search@17.4.0': dependencies: - '@objectstack/core': 17.3.0 - '@objectstack/objectql': 17.3.0 - '@objectstack/types': 17.3.0 + '@objectstack/core': 17.4.0 + '@objectstack/objectql': 17.4.0 + '@objectstack/types': 17.4.0 pinyin-pro: 3.29.3 transitivePeerDependencies: - ai - vitest - '@objectstack/plugin-reports@17.3.0': + '@objectstack/plugin-reports@17.4.0': dependencies: - '@objectstack/core': 17.3.0 - '@objectstack/platform-objects': 17.3.0 - '@objectstack/spec': 17.3.0 + '@objectstack/core': 17.4.0 + '@objectstack/platform-objects': 17.4.0 + '@objectstack/spec': 17.4.0 croner: 10.0.1 transitivePeerDependencies: - ai - vitest - '@objectstack/plugin-security@17.3.0': + '@objectstack/plugin-security@17.4.0': dependencies: - '@objectstack/core': 17.3.0 - '@objectstack/formula': 17.3.0 - '@objectstack/metadata-core': 17.3.0 - '@objectstack/platform-objects': 17.3.0 - '@objectstack/spec': 17.3.0 - '@objectstack/types': 17.3.0 + '@objectstack/core': 17.4.0 + '@objectstack/formula': 17.4.0 + '@objectstack/metadata-core': 17.4.0 + '@objectstack/platform-objects': 17.4.0 + '@objectstack/spec': 17.4.0 + '@objectstack/types': 17.4.0 transitivePeerDependencies: - ai - vitest - '@objectstack/plugin-sharing@17.3.0': + '@objectstack/plugin-sharing@17.4.0': dependencies: - '@objectstack/core': 17.3.0 - '@objectstack/formula': 17.3.0 - '@objectstack/metadata-core': 17.3.0 - '@objectstack/objectql': 17.3.0 - '@objectstack/platform-objects': 17.3.0 - '@objectstack/spec': 17.3.0 - '@objectstack/types': 17.3.0 + '@objectstack/core': 17.4.0 + '@objectstack/formula': 17.4.0 + '@objectstack/metadata-core': 17.4.0 + '@objectstack/objectql': 17.4.0 + '@objectstack/platform-objects': 17.4.0 + '@objectstack/spec': 17.4.0 + '@objectstack/types': 17.4.0 transitivePeerDependencies: - ai - vitest - '@objectstack/plugin-webhooks@17.3.0': + '@objectstack/plugin-webhooks@17.4.0': dependencies: - '@objectstack/core': 17.3.0 - '@objectstack/platform-objects': 17.3.0 - '@objectstack/service-messaging': 17.3.0 - '@objectstack/spec': 17.3.0 + '@objectstack/core': 17.4.0 + '@objectstack/platform-objects': 17.4.0 + '@objectstack/service-messaging': 17.4.0 + '@objectstack/spec': 17.4.0 transitivePeerDependencies: - ai - vitest - '@objectstack/rest@17.3.0': + '@objectstack/rest@17.4.0': dependencies: - '@objectstack/core': 17.3.0 - '@objectstack/metadata-core': 17.3.0 - '@objectstack/observability': 17.3.0 - '@objectstack/platform-objects': 17.3.0 - '@objectstack/service-package': 17.3.0 - '@objectstack/spec': 17.3.0 - '@objectstack/types': 17.3.0 + '@objectstack/core': 17.4.0 + '@objectstack/metadata-core': 17.4.0 + '@objectstack/observability': 17.4.0 + '@objectstack/platform-objects': 17.4.0 + '@objectstack/service-package': 17.4.0 + '@objectstack/spec': 17.4.0 + '@objectstack/types': 17.4.0 exceljs: 4.4.0 zod: 4.5.4 transitivePeerDependencies: - ai - vitest - '@objectstack/runtime@17.3.0(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.5.4))(better-sqlite3@13.0.3)(kysely@0.29.5)(mongodb@7.6.0)(nanostores@1.5.3)': - dependencies: - '@objectstack/core': 17.3.0 - '@objectstack/driver-memory': 17.3.0 - '@objectstack/driver-sql': 17.3.0 - '@objectstack/driver-sqlite-wasm': 17.3.0(better-sqlite3@13.0.3) - '@objectstack/formula': 17.3.0 - '@objectstack/metadata': 17.3.0 - '@objectstack/metadata-core': 17.3.0 - '@objectstack/metadata-protocol': 17.3.0 - '@objectstack/objectql': 17.3.0 - '@objectstack/observability': 17.3.0 - '@objectstack/plugin-auth': 17.3.0(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.5.4))(better-sqlite3@13.0.3)(kysely@0.29.5)(mongodb@7.6.0)(nanostores@1.5.3) - '@objectstack/plugin-security': 17.3.0 - '@objectstack/rest': 17.3.0 - '@objectstack/service-cluster': 17.3.0 - '@objectstack/service-datasource': 17.3.0(@objectstack/driver-mongodb@17.3.0)(@objectstack/driver-sqlite-wasm@17.3.0(better-sqlite3@13.0.3)) - '@objectstack/service-i18n': 17.3.0 - '@objectstack/spec': 17.3.0 - '@objectstack/types': 17.3.0 + '@objectstack/runtime@17.4.0(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.5.4))(better-sqlite3@13.0.3)(kysely@0.29.5)(mongodb@7.6.0)(nanostores@1.5.3)': + dependencies: + '@objectstack/core': 17.4.0 + '@objectstack/driver-memory': 17.4.0 + '@objectstack/driver-sql': 17.4.0 + '@objectstack/driver-sqlite-wasm': 17.4.0(better-sqlite3@13.0.3) + '@objectstack/formula': 17.4.0 + '@objectstack/metadata': 17.4.0 + '@objectstack/metadata-core': 17.4.0 + '@objectstack/metadata-protocol': 17.4.0 + '@objectstack/objectql': 17.4.0 + '@objectstack/observability': 17.4.0 + '@objectstack/plugin-auth': 17.4.0(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.5.4))(better-sqlite3@13.0.3)(kysely@0.29.5)(mongodb@7.6.0)(nanostores@1.5.3) + '@objectstack/plugin-security': 17.4.0 + '@objectstack/rest': 17.4.0 + '@objectstack/service-cluster': 17.4.0 + '@objectstack/service-datasource': 17.4.0(@objectstack/driver-mongodb@17.4.0)(@objectstack/driver-sqlite-wasm@17.4.0(better-sqlite3@13.0.3)) + '@objectstack/service-i18n': 17.4.0 + '@objectstack/spec': 17.4.0 + '@objectstack/types': 17.4.0 quickjs-emscripten: 0.32.0 zod: 4.5.4 optionalDependencies: - '@objectstack/driver-mongodb': 17.3.0 + '@objectstack/driver-mongodb': 17.4.0 transitivePeerDependencies: - '@aws-sdk/credential-providers' - '@better-auth/utils' @@ -2762,53 +2762,53 @@ snapshots: - vitest - vue - '@objectstack/sdui-parser@17.3.0': {} + '@objectstack/sdui-parser@17.4.0': {} - '@objectstack/service-analytics@17.3.0': + '@objectstack/service-analytics@17.4.0': dependencies: - '@objectstack/core': 17.3.0 - '@objectstack/spec': 17.3.0 - '@objectstack/types': 17.3.0 + '@objectstack/core': 17.4.0 + '@objectstack/spec': 17.4.0 + '@objectstack/types': 17.4.0 transitivePeerDependencies: - ai - '@objectstack/service-automation@17.3.0': + '@objectstack/service-automation@17.4.0': dependencies: - '@objectstack/core': 17.3.0 - '@objectstack/formula': 17.3.0 - '@objectstack/metadata-core': 17.3.0 - '@objectstack/platform-objects': 17.3.0 - '@objectstack/spec': 17.3.0 + '@objectstack/core': 17.4.0 + '@objectstack/formula': 17.4.0 + '@objectstack/metadata-core': 17.4.0 + '@objectstack/platform-objects': 17.4.0 + '@objectstack/spec': 17.4.0 transitivePeerDependencies: - ai - vitest - '@objectstack/service-cache@17.3.0': + '@objectstack/service-cache@17.4.0': dependencies: - '@objectstack/core': 17.3.0 - '@objectstack/observability': 17.3.0 - '@objectstack/spec': 17.3.0 + '@objectstack/core': 17.4.0 + '@objectstack/observability': 17.4.0 + '@objectstack/spec': 17.4.0 transitivePeerDependencies: - ai - '@objectstack/service-cluster@17.3.0': + '@objectstack/service-cluster@17.4.0': dependencies: - '@objectstack/core': 17.3.0 - '@objectstack/spec': 17.3.0 + '@objectstack/core': 17.4.0 + '@objectstack/spec': 17.4.0 transitivePeerDependencies: - ai - '@objectstack/service-datasource@17.3.0(@objectstack/driver-mongodb@17.3.0)(@objectstack/driver-sqlite-wasm@17.3.0(better-sqlite3@13.0.3))': + '@objectstack/service-datasource@17.4.0(@objectstack/driver-mongodb@17.4.0)(@objectstack/driver-sqlite-wasm@17.4.0(better-sqlite3@13.0.3))': dependencies: - '@objectstack/core': 17.3.0 - '@objectstack/driver-memory': 17.3.0 - '@objectstack/driver-sql': 17.3.0 - '@objectstack/spec': 17.3.0 - '@objectstack/types': 17.3.0 + '@objectstack/core': 17.4.0 + '@objectstack/driver-memory': 17.4.0 + '@objectstack/driver-sql': 17.4.0 + '@objectstack/spec': 17.4.0 + '@objectstack/types': 17.4.0 pg-connection-string: 2.14.0 optionalDependencies: - '@objectstack/driver-mongodb': 17.3.0 - '@objectstack/driver-sqlite-wasm': 17.3.0(better-sqlite3@13.0.3) + '@objectstack/driver-mongodb': 17.4.0 + '@objectstack/driver-sqlite-wasm': 17.4.0(better-sqlite3@13.0.3) transitivePeerDependencies: - ai - mariadb @@ -2821,77 +2821,77 @@ snapshots: - supports-color - tedious - '@objectstack/service-i18n@17.3.0': + '@objectstack/service-i18n@17.4.0': dependencies: - '@objectstack/core': 17.3.0 - '@objectstack/spec': 17.3.0 - '@objectstack/types': 17.3.0 + '@objectstack/core': 17.4.0 + '@objectstack/spec': 17.4.0 + '@objectstack/types': 17.4.0 transitivePeerDependencies: - ai - '@objectstack/service-job@17.3.0': + '@objectstack/service-job@17.4.0': dependencies: - '@objectstack/core': 17.3.0 - '@objectstack/platform-objects': 17.3.0 - '@objectstack/spec': 17.3.0 + '@objectstack/core': 17.4.0 + '@objectstack/platform-objects': 17.4.0 + '@objectstack/spec': 17.4.0 croner: 10.0.1 transitivePeerDependencies: - ai - vitest - '@objectstack/service-messaging@17.3.0': + '@objectstack/service-messaging@17.4.0': dependencies: - '@objectstack/core': 17.3.0 - '@objectstack/platform-objects': 17.3.0 - '@objectstack/spec': 17.3.0 - '@objectstack/types': 17.3.0 + '@objectstack/core': 17.4.0 + '@objectstack/platform-objects': 17.4.0 + '@objectstack/spec': 17.4.0 + '@objectstack/types': 17.4.0 transitivePeerDependencies: - ai - vitest - '@objectstack/service-package@17.3.0': + '@objectstack/service-package@17.4.0': dependencies: - '@objectstack/core': 17.3.0 - '@objectstack/metadata-core': 17.3.0 - '@objectstack/spec': 17.3.0 + '@objectstack/core': 17.4.0 + '@objectstack/metadata-core': 17.4.0 + '@objectstack/spec': 17.4.0 transitivePeerDependencies: - ai - vitest - '@objectstack/service-queue@17.3.0': + '@objectstack/service-queue@17.4.0': dependencies: - '@objectstack/core': 17.3.0 - '@objectstack/platform-objects': 17.3.0 - '@objectstack/spec': 17.3.0 + '@objectstack/core': 17.4.0 + '@objectstack/platform-objects': 17.4.0 + '@objectstack/spec': 17.4.0 transitivePeerDependencies: - ai - vitest - '@objectstack/service-realtime@17.3.0': + '@objectstack/service-realtime@17.4.0': dependencies: - '@objectstack/core': 17.3.0 - '@objectstack/platform-objects': 17.3.0 - '@objectstack/spec': 17.3.0 + '@objectstack/core': 17.4.0 + '@objectstack/platform-objects': 17.4.0 + '@objectstack/spec': 17.4.0 transitivePeerDependencies: - ai - vitest - '@objectstack/service-settings@17.3.0': + '@objectstack/service-settings@17.4.0': dependencies: '@noble/ciphers': 2.4.0 - '@objectstack/core': 17.3.0 - '@objectstack/platform-objects': 17.3.0 - '@objectstack/spec': 17.3.0 - '@objectstack/types': 17.3.0 + '@objectstack/core': 17.4.0 + '@objectstack/platform-objects': 17.4.0 + '@objectstack/spec': 17.4.0 + '@objectstack/types': 17.4.0 transitivePeerDependencies: - ai - vitest - '@objectstack/service-sms@17.3.0(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.5.4))(better-sqlite3@13.0.3)(kysely@0.29.5)(mongodb@7.6.0)(nanostores@1.5.3)': + '@objectstack/service-sms@17.4.0(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.5.4))(better-sqlite3@13.0.3)(kysely@0.29.5)(mongodb@7.6.0)(nanostores@1.5.3)': dependencies: - '@objectstack/core': 17.3.0 - '@objectstack/plugin-auth': 17.3.0(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.5.4))(better-sqlite3@13.0.3)(kysely@0.29.5)(mongodb@7.6.0)(nanostores@1.5.3) - '@objectstack/spec': 17.3.0 + '@objectstack/core': 17.4.0 + '@objectstack/plugin-auth': 17.4.0(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.5.4))(better-sqlite3@13.0.3)(kysely@0.29.5)(mongodb@7.6.0)(nanostores@1.5.3) + '@objectstack/spec': 17.4.0 transitivePeerDependencies: - '@better-auth/utils' - '@better-fetch/fetch' @@ -2921,74 +2921,75 @@ snapshots: - vitest - vue - '@objectstack/service-storage@17.3.0': + '@objectstack/service-storage@17.4.0': dependencies: - '@objectstack/core': 17.3.0 - '@objectstack/observability': 17.3.0 - '@objectstack/platform-objects': 17.3.0 - '@objectstack/spec': 17.3.0 - '@objectstack/types': 17.3.0 + '@objectstack/core': 17.4.0 + '@objectstack/observability': 17.4.0 + '@objectstack/platform-objects': 17.4.0 + '@objectstack/spec': 17.4.0 + '@objectstack/types': 17.4.0 transitivePeerDependencies: - ai - vitest - '@objectstack/setup@17.3.0': + '@objectstack/setup@17.4.0': dependencies: - '@objectstack/platform-objects': 17.3.0 - '@objectstack/spec': 17.3.0 + '@objectstack/platform-objects': 17.4.0 + '@objectstack/spec': 17.4.0 transitivePeerDependencies: - ai - vitest - '@objectstack/spec@17.3.0': + '@objectstack/spec@17.4.0': dependencies: pg-connection-string: 2.14.0 zod: 4.5.4 - '@objectstack/trigger-api@17.3.0': + '@objectstack/trigger-api@17.4.0': dependencies: - '@objectstack/core': 17.3.0 - '@objectstack/spec': 17.3.0 + '@objectstack/core': 17.4.0 + '@objectstack/spec': 17.4.0 transitivePeerDependencies: - ai - '@objectstack/trigger-record-change@17.3.0': + '@objectstack/trigger-record-change@17.4.0': dependencies: - '@objectstack/core': 17.3.0 - '@objectstack/spec': 17.3.0 + '@objectstack/core': 17.4.0 + '@objectstack/spec': 17.4.0 transitivePeerDependencies: - ai - '@objectstack/trigger-schedule@17.3.0': + '@objectstack/trigger-schedule@17.4.0': dependencies: - '@objectstack/core': 17.3.0 - '@objectstack/spec': 17.3.0 + '@objectstack/core': 17.4.0 + '@objectstack/spec': 17.4.0 + croner: 10.0.1 transitivePeerDependencies: - ai - '@objectstack/types@17.3.0': + '@objectstack/types@17.4.0': dependencies: - '@objectstack/spec': 17.3.0 + '@objectstack/spec': 17.4.0 transitivePeerDependencies: - ai - '@objectstack/verify@17.3.0(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(@objectstack/driver-mongodb@17.3.0)(@objectstack/driver-sqlite-wasm@17.3.0(better-sqlite3@13.0.3))(better-call@1.4.0(zod@4.5.4))(better-sqlite3@13.0.3)(kysely@0.29.5)(mongodb@7.6.0)(nanostores@1.5.3)': - dependencies: - '@objectstack/core': 17.3.0 - '@objectstack/objectql': 17.3.0 - '@objectstack/platform-objects': 17.3.0 - '@objectstack/plugin-auth': 17.3.0(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.5.4))(better-sqlite3@13.0.3)(kysely@0.29.5)(mongodb@7.6.0)(nanostores@1.5.3) - '@objectstack/plugin-hono-server': 17.3.0 - '@objectstack/plugin-security': 17.3.0 - '@objectstack/plugin-sharing': 17.3.0 - '@objectstack/rest': 17.3.0 - '@objectstack/runtime': 17.3.0(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.5.4))(better-sqlite3@13.0.3)(kysely@0.29.5)(mongodb@7.6.0)(nanostores@1.5.3) - '@objectstack/service-analytics': 17.3.0 - '@objectstack/service-automation': 17.3.0 - '@objectstack/service-datasource': 17.3.0(@objectstack/driver-mongodb@17.3.0)(@objectstack/driver-sqlite-wasm@17.3.0(better-sqlite3@13.0.3)) - '@objectstack/service-settings': 17.3.0 - '@objectstack/spec': 17.3.0 - '@objectstack/types': 17.3.0 + '@objectstack/verify@17.4.0(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(@objectstack/driver-mongodb@17.4.0)(@objectstack/driver-sqlite-wasm@17.4.0(better-sqlite3@13.0.3))(better-call@1.4.0(zod@4.5.4))(better-sqlite3@13.0.3)(kysely@0.29.5)(mongodb@7.6.0)(nanostores@1.5.3)': + dependencies: + '@objectstack/core': 17.4.0 + '@objectstack/objectql': 17.4.0 + '@objectstack/platform-objects': 17.4.0 + '@objectstack/plugin-auth': 17.4.0(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.5.4))(better-sqlite3@13.0.3)(kysely@0.29.5)(mongodb@7.6.0)(nanostores@1.5.3) + '@objectstack/plugin-hono-server': 17.4.0 + '@objectstack/plugin-security': 17.4.0 + '@objectstack/plugin-sharing': 17.4.0 + '@objectstack/rest': 17.4.0 + '@objectstack/runtime': 17.4.0(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.4.0(zod@4.5.4))(better-sqlite3@13.0.3)(kysely@0.29.5)(mongodb@7.6.0)(nanostores@1.5.3) + '@objectstack/service-analytics': 17.4.0 + '@objectstack/service-automation': 17.4.0 + '@objectstack/service-datasource': 17.4.0(@objectstack/driver-mongodb@17.4.0)(@objectstack/driver-sqlite-wasm@17.4.0(better-sqlite3@13.0.3)) + '@objectstack/service-settings': 17.4.0 + '@objectstack/spec': 17.4.0 + '@objectstack/types': 17.4.0 transitivePeerDependencies: - '@aws-sdk/credential-providers' - '@better-auth/utils' @@ -3339,7 +3340,7 @@ snapshots: crc-32: 1.2.2 readable-stream: 3.6.2 - create-objectstack@17.3.0: + create-objectstack@17.4.0: dependencies: chalk: 6.0.0 commander: 15.0.0 @@ -3454,7 +3455,7 @@ snapshots: archiver: 5.3.2 dayjs: 1.11.23 fast-csv: 4.3.6 - jszip: 3.10.1 + jszip: 3.10.2 readable-stream: 3.6.2 saxes: 5.0.1 tmp: 0.2.7 @@ -3676,7 +3677,7 @@ snapshots: json-schema-typed@8.0.2: {} - jszip@3.10.1: + jszip@3.10.2: dependencies: lie: 3.3.0 pako: 1.0.11 @@ -3795,7 +3796,7 @@ snapshots: mongodb@7.6.0: dependencies: - '@mongodb-js/saslprep': 1.5.0 + '@mongodb-js/saslprep': 1.5.3 bson: 7.3.2 mongodb-connection-string-url: 7.0.2 diff --git a/scripts/demo.mjs b/scripts/demo.mjs index 763f144..2c68487 100644 --- a/scripts/demo.mjs +++ b/scripts/demo.mjs @@ -12,9 +12,13 @@ // // On a BRAND-NEW database it is not, and the reason is an ordering fact that // was measured rather than assumed. The declarative seed runs BEFORE the dev -// admin account is minted and before the first organization is founded — on -// 17.3.0, the seed's last write landed at 18:59:54.118Z and the account was -// created at 18:59:54.931Z. Two things follow, and both are silent: +// admin account is minted and before the first organization is founded — +// re-measured on 17.4.0 (issue #35), one boot with the demo on and +// `--seed-admin` against an empty `.objectstack/data`: the seed's last pass-1 +// write landed at 2026-09-09T14:26:53.833Z and the account was created at +// 2026-09-09T14:26:57.396Z, 3.563s later. This IS the interval — it is +// measured here and nowhere else, so there is one place to be wrong. +// Two things follow, and both are silent: // // 1. `clm_review.reviewer` is `required: true` and resolves against // `sys_user.name`. On a first boot the name matches nothing, the loader diff --git a/src/data/index.ts b/src/data/index.ts index e218e23..9b7a6dd 100644 --- a/src/data/index.ts +++ b/src/data/index.ts @@ -78,7 +78,7 @@ export const demoSeeds: Seed[] = [ // // This is a product decision, not a switch bolted on to route around a defect. // HotCLM is a sellable standard product (AGENTS.md), and a standard product -// does not install 780 rows of a fictional group's contract book into every +// does not install 820 rows of a fictional group's contract book into every // fresh deployment. Someone evaluating HotCLM FOR THEIR OWN LEGAL TEAM wants // an empty app to put their own contract types into; handing them somebody // else's counterparties to delete first is not a neutral default, it is a diff --git a/src/data/plan-contracts.ts b/src/data/plan-contracts.ts index 1ada3d3..046607f 100644 --- a/src/data/plan-contracts.ts +++ b/src/data/plan-contracts.ts @@ -24,9 +24,14 @@ import { * refuses it. What no seed can do is produce the HISTORY that state normally * implies — F5 opens a `sys_approval_request` on entering `in_approval`, and * `skipTriggers` means F5 never fires over a seeded row. Even if it did, it - * could not complete: the seed loader runs BEFORE the first user account - * exists (measured — the dev admin is minted ~1.8s after the last seed write), - * so rung 1 (`type: 'manager'`) has nobody to resolve, and `pnpm validate` + * could not complete: rung 1 is `type: 'manager'`, and at seed time there is + * nobody for it to resolve — every contract is launched by one of the three + * business requesters DESIGN.md §10 leaves to the OPERATOR to create + * (`keys.ts`), so on a fresh database no owner exists to have a manager + * (measured on 17.4.0: 120 `owner_id` references unresolved after pass 2). + * WHICH boot mints the dev admin is a separate fact, measured in exactly one + * place — `scripts/demo.mjs` — and this argument does not rest on it: #21's + * two-boot handover primes that account BEFORE the seed runs. `pnpm validate` * already warns that an approval node whose approvers resolve empty "waits * forever, and (lockRecord) the record stays locked with no in-product * recovery". Driving 42 contracts through the ladder at seed time would not be