gemi 0.92.0 → 0.93.0

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.
Files changed (181) hide show
  1. package/dist/ai/index.js +2 -2
  2. package/dist/ai/index.js.map +1 -1
  3. package/dist/app/index.js +1 -1
  4. package/dist/bun/plugin.js +1 -1
  5. package/dist/bun/preload.js +1 -1
  6. package/dist/{chunk-93c5cx5a.js → chunk-0n8t329w.js} +2 -2
  7. package/dist/{chunk-93c5cx5a.js.map → chunk-0n8t329w.js.map} +1 -1
  8. package/dist/{chunk-dpak844f.js → chunk-0rs8a7re.js} +2 -2
  9. package/dist/{chunk-dpak844f.js.map → chunk-0rs8a7re.js.map} +1 -1
  10. package/dist/{chunk-fwrefjt0.js → chunk-1wdfjmkx.js} +2 -2
  11. package/dist/{chunk-fwrefjt0.js.map → chunk-1wdfjmkx.js.map} +1 -1
  12. package/dist/{chunk-ev6j9291.js → chunk-1yt4hjqx.js} +2 -2
  13. package/dist/{chunk-ev6j9291.js.map → chunk-1yt4hjqx.js.map} +1 -1
  14. package/dist/{chunk-ra0ct4ad.js → chunk-241aehp3.js} +2 -2
  15. package/dist/{chunk-ra0ct4ad.js.map → chunk-241aehp3.js.map} +1 -1
  16. package/dist/{chunk-ev5nyhp4.js → chunk-3jpetvsj.js} +2 -2
  17. package/dist/{chunk-ev5nyhp4.js.map → chunk-3jpetvsj.js.map} +1 -1
  18. package/dist/{chunk-rzh6nq2x.js → chunk-3m10ve1n.js} +3 -3
  19. package/dist/{chunk-rzh6nq2x.js.map → chunk-3m10ve1n.js.map} +1 -1
  20. package/dist/{chunk-tj684a37.js → chunk-3prm2e2t.js} +2 -2
  21. package/dist/{chunk-tj684a37.js.map → chunk-3prm2e2t.js.map} +1 -1
  22. package/dist/chunk-4bh0maq0.js +5 -0
  23. package/dist/{chunk-00cwycyq.js.map → chunk-4bh0maq0.js.map} +1 -1
  24. package/dist/{chunk-ynjtm50m.js → chunk-4k4mh3gh.js} +2 -2
  25. package/dist/{chunk-ynjtm50m.js.map → chunk-4k4mh3gh.js.map} +1 -1
  26. package/dist/{chunk-4cjfngfk.js → chunk-5v2rx0rk.js} +2 -2
  27. package/dist/{chunk-4cjfngfk.js.map → chunk-5v2rx0rk.js.map} +1 -1
  28. package/dist/{chunk-7dp5fv1e.js → chunk-5y9jk4h4.js} +2 -2
  29. package/dist/{chunk-7dp5fv1e.js.map → chunk-5y9jk4h4.js.map} +1 -1
  30. package/dist/{chunk-geg85jwj.js → chunk-6ak8jfhm.js} +2 -2
  31. package/dist/{chunk-geg85jwj.js.map → chunk-6ak8jfhm.js.map} +1 -1
  32. package/dist/{chunk-mqa6b0sx.js → chunk-6qyc4e22.js} +2 -2
  33. package/dist/{chunk-mqa6b0sx.js.map → chunk-6qyc4e22.js.map} +1 -1
  34. package/dist/{chunk-jrpn4k18.js → chunk-6xh4e55j.js} +2 -2
  35. package/dist/{chunk-jrpn4k18.js.map → chunk-6xh4e55j.js.map} +1 -1
  36. package/dist/{chunk-bsgjnb30.js → chunk-7jshf4ms.js} +1 -1
  37. package/dist/{chunk-nxwfjn97.js → chunk-7k7a6h9j.js} +2 -2
  38. package/dist/{chunk-nxwfjn97.js.map → chunk-7k7a6h9j.js.map} +1 -1
  39. package/dist/chunk-9pcsm8g3.js +54 -0
  40. package/dist/{chunk-165mrqab.js.map → chunk-9pcsm8g3.js.map} +5 -5
  41. package/dist/{chunk-jth8zxxk.js → chunk-a1y7pa5z.js} +2 -2
  42. package/dist/{chunk-jth8zxxk.js.map → chunk-a1y7pa5z.js.map} +1 -1
  43. package/dist/{chunk-7hvnms5x.js → chunk-aawtyngp.js} +3 -3
  44. package/dist/{chunk-7hvnms5x.js.map → chunk-aawtyngp.js.map} +1 -1
  45. package/dist/{chunk-cm9am4b8.js → chunk-aq1hjk00.js} +1 -1
  46. package/dist/{chunk-pnf2vn6y.js → chunk-bb8e7rhf.js} +2 -2
  47. package/dist/{chunk-pnf2vn6y.js.map → chunk-bb8e7rhf.js.map} +1 -1
  48. package/dist/{chunk-hg51829v.js → chunk-c37g1gzy.js} +4 -4
  49. package/dist/{chunk-hg51829v.js.map → chunk-c37g1gzy.js.map} +1 -1
  50. package/dist/{chunk-mfncnxva.js → chunk-cyze295m.js} +3 -3
  51. package/dist/{chunk-mfncnxva.js.map → chunk-cyze295m.js.map} +1 -1
  52. package/dist/{chunk-6jw956j2.js → chunk-d869bd41.js} +2 -2
  53. package/dist/{chunk-6jw956j2.js.map → chunk-d869bd41.js.map} +1 -1
  54. package/dist/{chunk-nhnv4nrs.js → chunk-dmvrx8nm.js} +3 -3
  55. package/dist/{chunk-nhnv4nrs.js.map → chunk-dmvrx8nm.js.map} +1 -1
  56. package/dist/{chunk-52bk916h.js → chunk-dve6ryfd.js} +1 -1
  57. package/dist/{chunk-s74kx019.js → chunk-dwkhs81y.js} +2 -2
  58. package/dist/{chunk-s74kx019.js.map → chunk-dwkhs81y.js.map} +1 -1
  59. package/dist/{chunk-73drae3k.js → chunk-ej5mkm7t.js} +2 -2
  60. package/dist/{chunk-73drae3k.js.map → chunk-ej5mkm7t.js.map} +1 -1
  61. package/dist/{chunk-df0105td.js → chunk-ffpm75zs.js} +2 -2
  62. package/dist/{chunk-df0105td.js.map → chunk-ffpm75zs.js.map} +1 -1
  63. package/dist/{chunk-k13q1tvj.js → chunk-fx02sqe2.js} +3 -3
  64. package/dist/{chunk-k13q1tvj.js.map → chunk-fx02sqe2.js.map} +1 -1
  65. package/dist/{chunk-677yj1rx.js → chunk-fz805r97.js} +2 -2
  66. package/dist/{chunk-677yj1rx.js.map → chunk-fz805r97.js.map} +1 -1
  67. package/dist/{chunk-dt38t11e.js → chunk-g2xbpr8r.js} +2 -2
  68. package/dist/{chunk-dt38t11e.js.map → chunk-g2xbpr8r.js.map} +1 -1
  69. package/dist/{chunk-z77p625q.js → chunk-g6byqmdq.js} +2 -2
  70. package/dist/{chunk-z77p625q.js.map → chunk-g6byqmdq.js.map} +1 -1
  71. package/dist/{chunk-x6vkmjb8.js → chunk-g8tgp3ja.js} +2 -2
  72. package/dist/{chunk-x6vkmjb8.js.map → chunk-g8tgp3ja.js.map} +1 -1
  73. package/dist/{chunk-hj4wjv7v.js → chunk-jj0ynn5t.js} +2 -2
  74. package/dist/{chunk-hj4wjv7v.js.map → chunk-jj0ynn5t.js.map} +1 -1
  75. package/dist/{chunk-98jbvwpf.js → chunk-khvnm11p.js} +2 -2
  76. package/dist/{chunk-98jbvwpf.js.map → chunk-khvnm11p.js.map} +1 -1
  77. package/dist/{chunk-t91h0yek.js → chunk-knw4t9e6.js} +2 -2
  78. package/dist/{chunk-t91h0yek.js.map → chunk-knw4t9e6.js.map} +1 -1
  79. package/dist/{chunk-pd6qazcx.js → chunk-mmfstb0z.js} +2 -2
  80. package/dist/{chunk-pd6qazcx.js.map → chunk-mmfstb0z.js.map} +1 -1
  81. package/dist/{chunk-v6kef2b8.js → chunk-nvbbgbdk.js} +4 -4
  82. package/dist/{chunk-v6kef2b8.js.map → chunk-nvbbgbdk.js.map} +1 -1
  83. package/dist/{chunk-hzd58xtv.js → chunk-pgn3yh5k.js} +3 -3
  84. package/dist/{chunk-hzd58xtv.js.map → chunk-pgn3yh5k.js.map} +1 -1
  85. package/dist/{chunk-y1z1bq77.js → chunk-qrczhr16.js} +2 -2
  86. package/dist/{chunk-y1z1bq77.js.map → chunk-qrczhr16.js.map} +1 -1
  87. package/dist/{chunk-ykxvpzzr.js → chunk-qs9drxja.js} +2 -2
  88. package/dist/{chunk-ykxvpzzr.js.map → chunk-qs9drxja.js.map} +1 -1
  89. package/dist/chunk-qv2sdxbq.js +9 -0
  90. package/dist/chunk-qv2sdxbq.js.map +10 -0
  91. package/dist/{chunk-dxcg3vg7.js → chunk-rgcfqq21.js} +2 -2
  92. package/dist/{chunk-dxcg3vg7.js.map → chunk-rgcfqq21.js.map} +1 -1
  93. package/dist/{chunk-z3y1pa0y.js → chunk-s22afmm9.js} +2 -2
  94. package/dist/{chunk-z3y1pa0y.js.map → chunk-s22afmm9.js.map} +1 -1
  95. package/dist/{chunk-cnd7s0vv.js → chunk-sppjqk4n.js} +2 -2
  96. package/dist/{chunk-cnd7s0vv.js.map → chunk-sppjqk4n.js.map} +1 -1
  97. package/dist/{chunk-9de5kyz3.js → chunk-sqd77ksy.js} +2 -2
  98. package/dist/{chunk-9de5kyz3.js.map → chunk-sqd77ksy.js.map} +1 -1
  99. package/dist/{chunk-d5nx54s0.js → chunk-svzdv2rf.js} +2 -2
  100. package/dist/{chunk-d5nx54s0.js.map → chunk-svzdv2rf.js.map} +1 -1
  101. package/dist/{chunk-w46dtkdh.js → chunk-t328955a.js} +2 -2
  102. package/dist/{chunk-w46dtkdh.js.map → chunk-t328955a.js.map} +1 -1
  103. package/dist/{chunk-tx7hd2ec.js → chunk-t4x7q9x8.js} +2 -2
  104. package/dist/{chunk-tx7hd2ec.js.map → chunk-t4x7q9x8.js.map} +1 -1
  105. package/dist/{chunk-4cqt4y7f.js → chunk-v51a4g6w.js} +2 -2
  106. package/dist/{chunk-4cqt4y7f.js.map → chunk-v51a4g6w.js.map} +1 -1
  107. package/dist/{chunk-2caeg5jf.js → chunk-vbfwvyb8.js} +2 -2
  108. package/dist/{chunk-2caeg5jf.js.map → chunk-vbfwvyb8.js.map} +1 -1
  109. package/dist/{chunk-ejebep30.js → chunk-vpcys0ty.js} +2 -2
  110. package/dist/{chunk-ejebep30.js.map → chunk-vpcys0ty.js.map} +1 -1
  111. package/dist/{chunk-t8xxsah1.js → chunk-vryvdzmk.js} +2 -2
  112. package/dist/{chunk-t8xxsah1.js.map → chunk-vryvdzmk.js.map} +1 -1
  113. package/dist/{chunk-sa79bwd3.js → chunk-wd9zab3e.js} +2 -2
  114. package/dist/{chunk-sa79bwd3.js.map → chunk-wd9zab3e.js.map} +1 -1
  115. package/dist/{chunk-9k9znvhp.js → chunk-xk4r9372.js} +2 -2
  116. package/dist/{chunk-9k9znvhp.js.map → chunk-xk4r9372.js.map} +1 -1
  117. package/dist/{chunk-z89v7fm0.js → chunk-y3hdh6q6.js} +2 -2
  118. package/dist/{chunk-z89v7fm0.js.map → chunk-y3hdh6q6.js.map} +1 -1
  119. package/dist/{chunk-7v9919g5.js → chunk-z10c81a9.js} +2 -2
  120. package/dist/{chunk-7v9919g5.js.map → chunk-z10c81a9.js.map} +1 -1
  121. package/dist/{chunk-f3fb0x49.js → chunk-z405ks42.js} +2 -2
  122. package/dist/{chunk-f3fb0x49.js.map → chunk-z405ks42.js.map} +1 -1
  123. package/dist/{chunk-g582bb47.js → chunk-za1ncjh0.js} +2 -2
  124. package/dist/{chunk-g582bb47.js.map → chunk-za1ncjh0.js.map} +1 -1
  125. package/dist/config/index.js +1 -1
  126. package/dist/console/run.js +2 -2
  127. package/dist/console/run.js.map +1 -1
  128. package/dist/container/index.js +2 -2
  129. package/dist/container/index.js.map +1 -1
  130. package/dist/database/index.js +2 -2
  131. package/dist/database/index.js.map +1 -1
  132. package/dist/email/index.js +2 -2
  133. package/dist/email/index.js.map +1 -1
  134. package/dist/facades/index.js +1 -1
  135. package/dist/foundation/index.js +2 -2
  136. package/dist/foundation/index.js.map +1 -1
  137. package/dist/http/index.js +1 -1
  138. package/dist/i18n/dictionaryRuntime.js +2 -2
  139. package/dist/i18n/dictionaryRuntime.js.map +1 -1
  140. package/dist/i18n/index.js +2 -2
  141. package/dist/i18n/index.js.map +1 -1
  142. package/dist/kernel/index.js +2 -2
  143. package/dist/kernel/index.js.map +1 -1
  144. package/dist/orm/Model.d.ts +81 -0
  145. package/dist/orm/Model.d.ts.map +1 -1
  146. package/dist/orm/compile/where.d.ts +17 -0
  147. package/dist/orm/compile/where.d.ts.map +1 -1
  148. package/dist/orm/compile/write.d.ts.map +1 -1
  149. package/dist/orm/context.d.ts +27 -0
  150. package/dist/orm/context.d.ts.map +1 -1
  151. package/dist/orm/dialect/index.d.ts +28 -0
  152. package/dist/orm/dialect/index.d.ts.map +1 -1
  153. package/dist/orm/dialect/postgres.d.ts +15 -0
  154. package/dist/orm/dialect/postgres.d.ts.map +1 -1
  155. package/dist/orm/dialect/sqlite.d.ts +17 -0
  156. package/dist/orm/dialect/sqlite.d.ts.map +1 -1
  157. package/dist/orm/index.d.ts +2 -1
  158. package/dist/orm/index.d.ts.map +1 -1
  159. package/dist/orm/index.js +4 -4
  160. package/dist/orm/index.js.map +8 -8
  161. package/dist/orm/plan.d.ts.map +1 -1
  162. package/dist/orm/soft-deletes.d.ts +50 -0
  163. package/dist/orm/soft-deletes.d.ts.map +1 -1
  164. package/dist/orm/types.d.ts +22 -5
  165. package/dist/orm/types.d.ts.map +1 -1
  166. package/dist/server/index.js +2 -2
  167. package/dist/server/index.js.map +1 -1
  168. package/dist/services/index.js +2 -2
  169. package/dist/services/index.js.map +1 -1
  170. package/dist/services/queue/work.js +2 -2
  171. package/dist/services/queue/work.js.map +1 -1
  172. package/dist/support/index.js +2 -2
  173. package/dist/support/index.js.map +1 -1
  174. package/package.json +1 -1
  175. package/dist/chunk-00cwycyq.js +0 -5
  176. package/dist/chunk-165mrqab.js +0 -54
  177. package/dist/chunk-30k7198s.js +0 -9
  178. package/dist/chunk-30k7198s.js.map +0 -10
  179. /package/dist/{chunk-bsgjnb30.js.map → chunk-7jshf4ms.js.map} +0 -0
  180. /package/dist/{chunk-cm9am4b8.js.map → chunk-aq1hjk00.js.map} +0 -0
  181. /package/dist/{chunk-52bk916h.js.map → chunk-dve6ryfd.js.map} +0 -0
@@ -7,6 +7,6 @@
7
7
  "import { Application } from \"../foundation/Application\";\nimport type { ServiceProviderConstructor, ShutdownReport } from \"../foundation/Application\";\nimport type { ServiceToken } from \"../container/Container\";\nimport type { ConfigItems } from \"../support/Repository\";\nimport type { Service, ServiceConstructor } from \"../support/Service\";\nimport { registerModels } from \"../orm/registration\";\nimport { registeredNames } from \"../orm/registry\";\nimport { Scheduler } from \"../services/cron/Scheduler\";\nimport { QueueManager } from \"../services/queue/QueueManager\";\nimport { startClaimingIfServing } from \"../services/queue/QueueServiceProvider\";\nimport { ApiRouteDispatcher } from \"../services/router/ApiRouteDispatcher\";\nimport { ViewRouteDispatcher } from \"../services/router/ViewRouteDispatcher\";\nimport { DomainRouter } from \"../services/router/DomainRouter\";\nimport { runGlobalMiddleware } from \"../services/router/globalMiddleware\";\nimport { kernelContext } from \"./context\";\nimport { frameworkProviders } from \"./providers\";\n\n/**\n * The app's entry point into the framework. A Kernel subclass declares what the\n * app adds — its `config` slices and any extra `providers` — and everything\n * else lives in the Application container it owns.\n */\nexport class Kernel {\n /**\n * App-level config, merged over the framework defaults. Each key is a config\n * slice: `{ mail: { ... }, route: { ... } }`, normally the modules under\n * `app/config`.\n */\n protected config: ConfigItems = {};\n\n /**\n * App-level providers, registered after the framework's own so they can\n * rebind anything the framework bound.\n */\n protected providers: ServiceProviderConstructor[] = [];\n\n /**\n * The app's own singleton services. Each is constructed during the\n * synchronous boot phase and its `boot()` awaited during the asynchronous\n * one, in the order listed — so a service whose `boot()` depends on another\n * goes after it.\n *\n * An entry is either the class itself or a configured instance from\n * `Service.with({ ... })`. Listing is explicit rather than discovered because\n * the order is load-bearing here, and because a service is always imported by\n * whatever injects it — there is no file the import graph would miss.\n */\n protected services: Array<ServiceConstructor | Service> = [];\n\n private serviceInstances: Service[] = [];\n private serviceTokens = new Set<string>();\n private servicesBooted = false;\n\n /**\n * The modules holding the app's model classes — normally\n * `[generated, models]`, the generated namespace and the barrel of subclasses\n * written over it. Every model class they export is registered under the name\n * its schema carries, later modules winning, and the whole set is audited\n * before anything else boots.\n *\n * ### Why this is a Kernel field and not a line in a file somewhere\n *\n * Registration used to be `register(\"User\", User)` next to each subclass, and\n * the failure mode of forgetting it is an authorization hole that nothing\n * reports: a relation read resolves its target by name, so an unregistered\n * policied subclass leaves the generated base owning the name and every\n * nested `include` of that model comes back unscoped. No error at the root\n * either, because `$exec`'s divergence guard begins `registered !== this` and\n * the base it is running on *is* the registered one. A model only ever read\n * through an include — a membership, a pivot, the kind that carries a tenant\n * scope — never trips anything.\n *\n * Listing the modules here says it once, in the same place the app already\n * declares its config slices and providers, and turns the mistake into a\n * failure to boot rather than a quiet cross-tenant read.\n *\n * It sees the modules it is given, so a model class in a file that no barrel\n * re-exports is still invisible. That is the residual, and it is a smaller\n * one: a barrel is a place to notice an omission, and thirteen `register`\n * lines scattered across thirteen files is not.\n */\n protected models: Array<Record<string, unknown>> = [];\n\n readonly app = new Application();\n\n /**\n * Phase one, synchronous: every provider is constructed and its `register()`\n * runs. Only bindings are recorded here — no service is instantiated, so this\n * is safe to call from a synchronous constructor (`new App({ kernel })`).\n * Phase two is `waitForBoot()`.\n */\n boot() {\n // Before the container, deliberately. This throws on a model whose policies\n // would be skipped, and the useful moment for that is the one where nothing\n // has been constructed and no request can be in flight.\n if (this.models.length > 0) registerModels(...this.models);\n else warnIfModelsAreRegisteredButUndeclared();\n\n this.app.config.merge(this.config);\n Application.setInstance(this.app);\n this.app.registerMany([...frameworkProviders, ...this.providers]);\n this.registerServices();\n }\n\n /**\n * Constructs every listed service and binds it into the container. Runs after\n * the providers have registered, so a provider's `boot()` can `inject()` one;\n * a `Service` constructor does no I/O, so doing this synchronously costs\n * nothing beyond the field initializers.\n */\n private registerServices() {\n // What a previous pass bound, so re-running this on the same kernel is not\n // mistaken for a collision with something else.\n const ours = this.serviceTokens;\n\n this.serviceInstances = [];\n this.serviceTokens = new Set();\n this.servicesBooted = false;\n\n const owners = new Map<string, string>();\n\n for (const declaration of this.services) {\n const instance =\n typeof declaration === \"function\" ? new declaration() : declaration;\n const ctor = instance.constructor as ServiceConstructor;\n\n if (!ctor.token) {\n throw new Error(\n `Service [${ctor.name}] is listed in \\`services\\` but does not declare a \\`static token\\`.`,\n );\n }\n\n // Two services under one token is the failure this refuses to have\n // silently: the second would replace the first in the container, and\n // every `inject()` written against either would hand back whichever was\n // listed last.\n const owner = owners.get(ctor.token);\n if (owner) {\n throw new Error(\n `Services [${owner}] and [${ctor.name}] both declare the token \"${ctor.token}\". Tokens are the container's keys, so they must be unique.`,\n );\n }\n owners.set(ctor.token, ctor.name);\n\n // The same failure one level out. `Container.instance()` writes into\n // `instances`, which `make()` consults before `bindings`, so a token that\n // is already spoken for is not shared with its owner — it replaces it, for\n // every `app()` and `inject()` in the process. An app service that named\n // itself \"mail\" would leave `Mail.send()` resolving to an object with no\n // `send`, and the boot that caused it would report nothing. Providers have\n // all registered by now, so anything bound here belongs to somebody else.\n const token = ctor as unknown as ServiceToken<Service>;\n if (!ours.has(ctor.token) && this.app.bound(token)) {\n throw new Error(\n `Service [${ctor.name}] declares the token \"${ctor.token}\", which is already bound in the container by the framework or a provider. Binding it would replace that service everywhere, so pick a token nothing else owns.`,\n );\n }\n\n this.app.instance(token, instance);\n this.serviceInstances.push(instance);\n this.serviceTokens.add(ctor.token);\n }\n }\n\n /**\n * Phase two, asynchronous: every provider's `boot()` runs, in registration\n * order, after all of them have registered. Idempotent.\n */\n async waitForBoot() {\n await this.app.boot();\n await this.bootServices();\n // Last, once every job — queued listeners included — is registered.\n startClaimingIfServing(this.app);\n }\n\n /**\n * Phase two for services, after every provider's `boot()` — so a service may\n * use the facades and anything else a provider owns. Idempotent, like the\n * provider phase it follows.\n */\n private async bootServices() {\n if (this.servicesBooted) {\n return;\n }\n for (const service of this.serviceInstances) {\n await service.boot();\n }\n this.servicesBooted = true;\n }\n\n /**\n * Every provider's `shutdown()`, in reverse registration order, inside the\n * application context — so a hook may use the facades, as a cron tick or a\n * request would. See `Application.shutdown` for the deadline and the\n * report. Idempotent.\n */\n shutdown(options?: { timeoutMs?: number }): Promise<ShutdownReport> {\n return this.run(() => this.app.shutdown(options));\n }\n\n run<T>(cb: () => T) {\n return kernelContext.run(this.app, cb);\n }\n\n /**\n * Resolve a service by token. Callers outside this module should prefer the\n * named accessors below or `app()`; this exists for tooling that holds a\n * Kernel but no ambient context.\n */\n resolve<T>(token: ServiceToken<T>): T {\n return this.app.make(token);\n }\n\n // Named accessors. `app/App.ts` goes through these rather than importing the\n // service classes itself — see the note in that file about the two copies of\n // gemi that coexist at build time.\n apiRoutes(): ApiRouteDispatcher {\n return this.app.make(ApiRouteDispatcher);\n }\n\n viewRoutes(): ViewRouteDispatcher {\n return this.app.make(ViewRouteDispatcher);\n }\n\n domains(): DomainRouter {\n return this.app.make(DomainRouter);\n }\n\n queue(): QueueManager {\n return this.app.make(QueueManager);\n }\n\n /** The `global` middleware list for one request. Call it inside `run`. */\n globalMiddleware(req: Request) {\n return runGlobalMiddleware(req);\n }\n\n destroy() {\n // Only touch services that were actually resolved — resolving one here\n // would construct it purely to tear it down.\n if (this.app.resolved(Scheduler)) {\n this.app.make(Scheduler).stop();\n }\n\n this.app.flush();\n\n if (Application.getInstance() === this.app) {\n Application.setInstance(undefined);\n }\n\n kernelContext.disable();\n }\n}\n\n/**\n * Says something to an application that has models and has not declared them.\n *\n * Without this the fix for #316 defaults to off. `models` is `[]`, `boot()`\n * no-ops, and an app upgrading from 0.48 is in exactly the state the issue\n * describes until somebody edits their Kernel by hand — while the only place\n * that says to is the **Setup** section of `docs/orm.md`, which an existing app\n * read once and will not read again. #316 was filed by an app mid-migration\n * with a 79-model schema, which is precisely the reader who never sees it.\n *\n * The condition is what makes this worth printing. A populated registry with an\n * empty `models` means the generated `index.ts` was imported and its bases are\n * what every nested read resolves to — so if any policy lives on a subclass, it\n * is being skipped inside includes right now. A Kernel with no ORM at all has\n * an empty registry and hears nothing.\n *\n * Development only, and a warning rather than a throw: an app in this state is\n * running today, and turning a working deploy into a failure to start over an\n * arrangement that *might* be fine is not a patch-level thing to do. The\n * failure it points at is silent, so the fix for it has to be noisy somewhere,\n * and the terminal an author is already looking at is the cheapest somewhere\n * there is.\n */\nfunction warnIfModelsAreRegisteredButUndeclared(): void {\n if (process.env.NODE_ENV === \"production\") return;\n\n const registered = registeredNames();\n if (registered.length === 0) return;\n\n console.warn(\n `[gemi] ${registered.length} model${registered.length === 1 ? \" is\" : \"s are\"} ` +\n `registered, but Kernel.models is empty.\\n` +\n ` Nested relation reads resolve a model by name, so a policy on a ` +\n `subclass that does not own its\\n` +\n ` name is skipped inside every include — scoped at the root, ` +\n `unscoped in an include, with nothing\\n` +\n ` to notice it. Declaring the modules registers each class under ` +\n `its own name and audits the set:\\n\\n` +\n ` import * as generated from \"../models/generated\"\\n` +\n ` import * as models from \"../models\"\\n\\n` +\n ` export default class extends Kernel {\\n` +\n ` models = [generated, models]\\n` +\n ` }\\n\\n` +\n ` See docs/orm.md#your-model-class. Development only; this never ` +\n `prints in production.`,\n );\n}\n"
8
8
  ],
9
9
  "mappings": "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",
10
- "debugId": "49A040EE93E759A864756E2164756E21",
10
+ "debugId": "F93B3AC82437B84864756E2164756E21",
11
11
  "names": []
12
12
  }
@@ -1,5 +1,7 @@
1
+ import { type TrashedMode } from "./context";
1
2
  import { type ExecOptions, type Operation, type QueryPlan } from "./plan";
2
3
  import { type PolicyEntry } from "./policy";
4
+ import { type SoftDeletesSetting } from "./soft-deletes";
3
5
  import type { ModelSchema } from "./schema";
4
6
  export declare abstract class Model {
5
7
  /**
@@ -66,6 +68,21 @@ export declare abstract class Model {
66
68
  * typing, which a bare `$policies = [...]` does not get on its own.
67
69
  */
68
70
  static $policies?: readonly PolicyEntry[];
71
+ /**
72
+ * Make `skipIfUnchanged: true` the default for this model's `update` and
73
+ * `updateMany` (#664): a row whose assigned columns already hold the values
74
+ * being written is not written, so its `@updatedAt` keeps meaning "last real
75
+ * change".
76
+ *
77
+ * export class AsyncJob extends AsyncJobModel {
78
+ * static $skipNoopUpdates = true;
79
+ * }
80
+ *
81
+ * A call can still opt out with `skipIfUnchanged: false`. Applies to the
82
+ * calls an application makes, not to the updates the ORM issues itself for a
83
+ * nested relation write — those keep their exact row counts.
84
+ */
85
+ static $skipNoopUpdates?: boolean;
69
86
  /**
70
87
  * The connection this class's operations run on, set only by `on` below.
71
88
  *
@@ -132,6 +149,70 @@ export declare abstract class Model {
132
149
  * await Model.asUser(owner, () => Invoice.findMany({}))
133
150
  */
134
151
  static asUser<T>(user: unknown, fn: () => Promise<T>): Promise<T>;
152
+ /**
153
+ * Soft deletes as a model setting (#663): every read, `count`, aggregate,
154
+ * update and delete on this model skips rows whose timestamp column is set —
155
+ * including the nested reads another model makes of it (`include`, `_count`,
156
+ * relation filters and orderings) under either relation strategy.
157
+ *
158
+ * export class PriceOffer extends PriceOfferModel {
159
+ * static $softDeletes = true; // `deletedAt`
160
+ * // static $softDeletes = { field: "archivedAt" };
161
+ * }
162
+ *
163
+ * **Unlike the `softDeletes()` policy it survives `Model.asSystem`.** That
164
+ * suspends authorization; it does not resurrect deleted rows. Opt out per
165
+ * call with {@link withTrashed} / {@link onlyTrashed}, which keep every other
166
+ * policy in force.
167
+ *
168
+ * `delete()` stays a hard delete — see `softDelete` in `soft-deletes.ts` for
169
+ * the recipe that turns one into an update, which this setting scopes like
170
+ * any other update. `upsert` is not scoped: its conflict target is a unique
171
+ * key, and a trashed row still holds it.
172
+ */
173
+ static $softDeletes?: SoftDeletesSetting;
174
+ /**
175
+ * Set on the subclass `withTrashed()` / `onlyTrashed()` return. Not for
176
+ * applications to write: the methods are the interface.
177
+ */
178
+ static $trashed?: TrashedMode;
179
+ /**
180
+ * Includes soft-deleted rows. Two spellings:
181
+ *
182
+ * await PriceOffer.withTrashed().findMany({ where }) // this query
183
+ * await PriceOffer.withTrashed(() => // a block
184
+ * Order.findMany({ include: { offer: true } }),
185
+ * )
186
+ *
187
+ * The chain lifts the scope for the query it starts — the root model only.
188
+ * The block lifts it for every query on this model inside `fn`, which is the
189
+ * spelling that reaches a nested read *of* this model from another one.
190
+ *
191
+ * Only the soft-delete scope is lifted: tenant scopes and every other
192
+ * `$policies` entry still apply, which is what `asSystem` could not offer.
193
+ */
194
+ static withTrashed<T extends typeof Model>(this: T): T;
195
+ static withTrashed<R>(fn: () => Promise<R>): Promise<R>;
196
+ /** Reads soft-deleted rows only. Same two spellings as {@link withTrashed}. */
197
+ static onlyTrashed<T extends typeof Model>(this: T): T;
198
+ static onlyTrashed<R>(fn: () => Promise<R>): Promise<R>;
199
+ /**
200
+ * Clears the timestamp on one soft-deleted row and returns it.
201
+ *
202
+ * Scoped to trashed rows, so a `where` naming a row that is not deleted is a
203
+ * miss and raises `RecordNotFoundError` — the same answer `expire` gives for
204
+ * a row that already is. Takes `delete`'s arguments: a unique `where` and an
205
+ * optional projection.
206
+ */
207
+ static restore<C extends typeof Model & {
208
+ delete(args: any): Promise<any>;
209
+ }>(this: C, args: Parameters<C["delete"]>[0]): ReturnType<C["delete"]>;
210
+ /** {@link restore} for every trashed row matching `where`; returns the count. */
211
+ static restoreMany<C extends typeof Model & {
212
+ deleteMany(args?: any): Promise<any>;
213
+ }>(this: C, args?: Parameters<C["deleteMany"]>[0]): Promise<{
214
+ count: number;
215
+ }>;
135
216
  /**
136
217
  * Persists the changes made to a *tracked* row: `update` with only the columns
137
218
  * whose value differs from what was fetched.
@@ -1 +1 @@
1
- {"version":3,"file":"Model.d.ts","sourceRoot":"","sources":["../../orm/Model.ts"],"names":[],"mappings":"AAoCA,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,QAAQ,CAAC;AAChB,OAAO,EAcL,KAAK,WAAW,EAEjB,MAAM,UAAU,CAAC;AASlB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAuE5C,8BAAsB,KAAK;IACzB;;;;;;;;;;;;;OAaG;IACH,SAAS;IAET,gFAAgF;IAChF,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC;IAE5B;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,OAAe,UAAU,CAAC,EAAE,IAAI,CAAC;IAEjC;;;;;;;;;;;;;;;;;;OAkBG;IACH,MAAM,CAAC,SAAS,CAAC,EAAE,SAAS,WAAW,EAAE,CAAC;IAE1C;;;;;;;;OAQG;IACH,MAAM,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAE5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,MAAM,CAAC,EAAE,CAAC,CAAC,SAAS,OAAO,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,CAAC;IA6BjE;;;;;;;;;;OAUG;IACH,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAIpD;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAIjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAuCG;WACU,IAAI,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAkG7D;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG;IA0B7B;;;OAGG;IACH,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IAIxB,MAAM,CAAC,YAAY,IAAI,WAAW;IAMlC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4DG;WAMU,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAY7D;;;;;;;;;;;;;;;;;;;;;;OAsBG;WACU,KAAK,CAChB,EAAE,EAAE,SAAS,EACb,IAAI,GAAE,GAAQ,EACd,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,OAAO,CAAC;mBAME,QAAQ;IA0pB7B;;;;;OAKG;IACH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO;CAGzD"}
1
+ {"version":3,"file":"Model.d.ts","sourceRoot":"","sources":["../../orm/Model.ts"],"names":[],"mappings":"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"}
@@ -129,5 +129,22 @@ export declare function assertListDialect(schema: ModelSchema, field: FieldSchem
129
129
  declare const JSON_FILTER_NAMES: readonly ["equals", "not", "string_contains", "string_starts_with", "string_ends_with", "array_contains", "lt", "lte", "gt", "gte"];
130
130
  /** One of {@link JSON_FILTER_NAMES}. `JsonPathFilter` maps over this. */
131
131
  export type JsonFilterName = (typeof JSON_FILTER_NAMES)[number];
132
+ /**
133
+ * The key-exists filters on a `Json` column (#664). Not Prisma's — it has no
134
+ * way to ask whether a document holds a key — so they are kept apart from
135
+ * {@link JSON_FILTER_NAMES}, whose whole job is to track Prisma's set.
136
+ *
137
+ * where: { payload: { has_key: "a" } }
138
+ * where: { payload: { has_some_keys: ["a", "b"] } }
139
+ * where: { payload: { has_every_key: ["a", "b"] } }
140
+ * where: { payload: { path: ["meta"], has_key: "a" } }
141
+ *
142
+ * Named after Postgres's `?`, `?|` and `?&`, in the snake case the neighbouring
143
+ * JSON filters use. They work on the column and at a `path`, on both dialects;
144
+ * the value there has to be an object (see `SqlDialect.jsonHasKeys`).
145
+ */
146
+ export declare const JSON_KEY_FILTER_NAMES: readonly ["has_key", "has_some_keys", "has_every_key"];
147
+ /** One of {@link JSON_KEY_FILTER_NAMES}. */
148
+ export type JsonKeyFilterName = (typeof JSON_KEY_FILTER_NAMES)[number];
132
149
  export {};
133
150
  //# sourceMappingURL=where.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"where.d.ts","sourceRoot":"","sources":["../../../orm/compile/where.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAU7C,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAkB,MAAM,WAAW,CAAC;AAG1E,OAAO,EAEL,KAAK,QAAQ,EAKd,MAAM,YAAY,CAAC;AAIpB;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,YAAY;AACrB;;;;;GAKG;AACH,MAAM,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,GAAG,GACzB,QAAQ,GAAG,IAAI,CA8EjB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,UAAU,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;;;;OASG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AA8VD;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,YAAY,iBAAiB,CAAC;AAiB3C,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EAAE,EAChB,MAAM,EAAE,OAAO,EAAE,EAAE,GAClB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzB;AAyHD;;;;;;;;;;;;GAYG;AACH,QAAA,MAAM,iBAAiB,8DAMb,CAAC;AAEX,qEAAqE;AACrE,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AA2MhE;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,UAAU,GAClB,IAAI,CAiBN;AAED;;;;;;;;;;;;;;GAcG;AACH,QAAA,MAAM,iBAAiB,qIAWb,CAAC;AAEX,yEAAyE;AACzE,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"where.d.ts","sourceRoot":"","sources":["../../../orm/compile/where.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAU7C,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAkB,MAAM,WAAW,CAAC;AAG1E,OAAO,EAEL,KAAK,QAAQ,EAKd,MAAM,YAAY,CAAC;AAIpB;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,YAAY;AACrB;;;;;GAKG;AACH,MAAM,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,GAAG,GACzB,QAAQ,GAAG,IAAI,CA8EjB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,UAAU,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;;;;OASG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AA8VD;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,YAAY,iBAAiB,CAAC;AAiB3C,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EAAE,EAChB,MAAM,EAAE,OAAO,EAAE,EAAE,GAClB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzB;AAyHD;;;;;;;;;;;;GAYG;AACH,QAAA,MAAM,iBAAiB,8DAMb,CAAC;AAEX,qEAAqE;AACrE,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AA2MhE;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,UAAU,GAClB,IAAI,CAiBN;AAED;;;;;;;;;;;;;;GAcG;AACH,QAAA,MAAM,iBAAiB,qIAWb,CAAC;AAEX,yEAAyE;AACzE,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAIhE;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,qBAAqB,wDAIxB,CAAC;AAEX,4CAA4C;AAC5C,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"write.d.ts","sourceRoot":"","sources":["../../../orm/compile/write.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAS7C,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,KAAK,EAAe,WAAW,EAAE,MAAM,WAAW,CAAC;AAwB1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAMH,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAQlD,CAAC;AAQF,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAEvD;AAED,wBAAgB,YAAY,CAC1B,MAAM,EAAE,WAAW,EACnB,EAAE,EAAE,SAAS,EACb,IAAI,EAAE,GAAG,EACT,OAAO,EAAE,UAAU,GAClB,SAAS,CA+BX;AA+qBD;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,GAAG,EACT,GAAG,EAAE,MAAM,EAAE,GACZ,MAAM,EAAE,CAGV"}
1
+ {"version":3,"file":"write.d.ts","sourceRoot":"","sources":["../../../orm/compile/write.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAS7C,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,KAAK,EAAe,WAAW,EAAE,MAAM,WAAW,CAAC;AAwB1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAMH,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAQlD,CAAC;AAQF,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAEvD;AAED,wBAAgB,YAAY,CAC1B,MAAM,EAAE,WAAW,EACnB,EAAE,EAAE,SAAS,EACb,IAAI,EAAE,GAAG,EACT,OAAO,EAAE,UAAU,GAClB,SAAS,CA+BX;AAuxBD;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,GAAG,EACT,GAAG,EAAE,MAAM,EAAE,GACZ,MAAM,EAAE,CAGV"}
@@ -100,7 +100,23 @@ export interface OrmScope {
100
100
  * when a savepoint rolls back.
101
101
  */
102
102
  commitDependsOn?: Promise<unknown>[];
103
+ /**
104
+ * Models whose soft-delete scope (`static $softDeletes`) is lifted or
105
+ * inverted for this async subtree, by name — set only by
106
+ * `Model.withTrashed(fn)` / `Model.onlyTrashed(fn)`.
107
+ *
108
+ * Keyed by model name rather than class because a nested relation read
109
+ * resolves its target through the registry by name, and the block has to
110
+ * reach those reads too. A fresh map per block, never mutated, so an inner
111
+ * block cannot leak its entry back into the enclosing one.
112
+ */
113
+ trashed?: ReadonlyMap<string, TrashedMode>;
103
114
  }
115
+ /**
116
+ * How a soft-deleted model's trashed rows are treated: `"with"` includes them,
117
+ * `"only"` reads nothing else. Absent means the default — they are hidden.
118
+ */
119
+ export type TrashedMode = "with" | "only";
104
120
  /**
105
121
  * Work deferred to a transaction's commit.
106
122
  *
@@ -237,6 +253,17 @@ export declare function isSystemScope(): boolean;
237
253
  * handle.
238
254
  */
239
255
  export declare function runAsSystem<T>(fn: () => Promise<T>): Promise<T>;
256
+ /**
257
+ * How `model`'s trashed rows are treated in this async scope, or `undefined`
258
+ * for the default (hidden). See `OrmScope.trashed`.
259
+ */
260
+ export declare function trashedMode(model: string): TrashedMode | undefined;
261
+ /**
262
+ * Run `fn` with `model`'s soft-delete scope lifted (`"with"`) or inverted
263
+ * (`"only"`). Merged into the current scope like `runAsSystem`, so it keeps an
264
+ * open transaction, the system flag and the actor — and every other policy.
265
+ */
266
+ export declare function runWithTrashed<T>(model: string, mode: TrashedMode, fn: () => Promise<T>): Promise<T>;
240
267
  /** The explicitly-set actor, or `undefined` when none was. */
241
268
  export declare function currentActor(): {
242
269
  user: unknown;
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../orm/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../orm/context.ts"],"names":[],"mappings":"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"}
@@ -339,6 +339,34 @@ export interface SqlDialect {
339
339
  * Bound, never interpolated, for the same reason `jsonExtract` is.
340
340
  */
341
341
  jsonValueAt(column: string, path: Binder): Fragment;
342
+ /**
343
+ * Whether the JSON value at `path` — the column itself when `path` is
344
+ * `undefined` — is an **object** holding the key, any of the keys, or all of
345
+ * them: `has_key`, `has_some_keys`, `has_every_key` (#664).
346
+ *
347
+ * `keys` binds a string for `"one"` and a string array for the other two;
348
+ * `count` is that array's length, which SQLite needs because it tests one
349
+ * key per term. Postgres binds the array whole, so its text does not depend
350
+ * on `count` and the plan key collapses the list (`LIST_KEYS` in `plan.ts`).
351
+ *
352
+ * **Objects only, on both dialects.** Postgres's `?` also matches a string
353
+ * *element* of a top-level array; SQLite's path lookup does not. Both forms
354
+ * are guarded with "the value is an object" so the two answer the same rows:
355
+ * `has_every_key: []` is "is an object", and `has_some_keys: []` is false.
356
+ * A key holding the JSON value `null` exists.
357
+ */
358
+ jsonHasKeys(column: string, path: Binder | undefined, keys: Binder, mode: "one" | "some" | "every", count: number): Fragment;
359
+ /**
360
+ * `lhs` differs from `rhs`, treating NULL as equal to NULL — the guard
361
+ * `skipIfUnchanged` adds to an update's `where` (#664).
362
+ *
363
+ * `rhs` is the same parameter the `set` binds, so the comparison is against
364
+ * the stored encoding of the value. A `Json` column compares as JSON rather
365
+ * than as text: `jsonb` equality on Postgres (key order and whitespace do not
366
+ * matter), and `json()`-normalised text on SQLite (whitespace does not
367
+ * matter; key order does).
368
+ */
369
+ distinctFrom(lhs: string, rhs: Fragment, field: FieldSchema): Fragment;
342
370
  /**
343
371
  * `limit`/`offset`. Both are values and therefore parameters — this is the
344
372
  * single most tempting place in the compiler to inline a number.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../orm/dialect/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../orm/dialect/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAEvB;;;OAGG;IACH,QAAQ,CAAC,uBAAuB,EAAE,OAAO,CAAC;IAE1C;;;;;;;;;OASG;IACH,QAAQ,CAAC,uBAAuB,EAAE,OAAO,CAAC;IAE1C;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IAEpC;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IAEpC;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,QAAQ,CAAC,4BAA4B,EAAE,OAAO,CAAC;IAE/C,iFAAiF;IACjF,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAEjC;;;OAGG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IAEnC;;;;;;;;OAQG;IACH,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC;IAEpD;;;;;;;;OAQG;IACH,aAAa,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAAC;IAE1C;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC;IAEvC,2EAA2E;IAC3E,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC;IAEpD;;;OAGG;IACH,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC;IAEzC;;;;;;OAMG;IACH,MAAM,CACJ,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,QAAQ,CAAC;IAEZ,uEAAuE;IACvE,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,QAAQ,CAAC;IAEnE;;;;;;;;;;;;;;;OAeG;IACH,kBAAkB,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,GAAG,OAAO,CAAC;IAE1D;;;;;;OAMG;IACH,WAAW,CACT,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,KAAK,EAAE,SAAS,UAAU,EAAE,EAC5B,MAAM,EAAE,MAAM,GACb,QAAQ,CAAC;IAEZ;;;;;;;;;;;;;;;;;OAiBG;IACH,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAE1C;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAEnD,0EAA0E;IAC1E,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAEzD,yEAAyE;IACzE,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAExD;;;;;;;OAOG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,QAAQ,CAAC;IAEtD;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAErD;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,cAAc,EAAE,OAAO,GAAG,UAAU,CAAC;IAC9C,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAE1C;;;;;;;;;OASG;IACH,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IAErC;;;;;;;;;;;;;;;;;;;OAmBG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,QAAQ,CAAC;IAErE,mEAAmE;IACnE,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,QAAQ,CAAC;IAEzE;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC;IAEpD;;;;;;;;;;;;;;;OAeG;IACH,WAAW,CACT,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,EAC9B,KAAK,EAAE,MAAM,GACZ,QAAQ,CAAC;IAEZ;;;;;;;;;OASG;IACH,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,GAAG,QAAQ,CAAC;IAEvE;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,QAAQ,CAAC;IAE7D;;;;;;;;;;;;;;;OAeG;IACH,eAAe,IAAI,QAAQ,GAAG,IAAI,CAAC;IAEnC;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,OAAO,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,GAAG,QAAQ,CAAC;IAEtD;;;;;;;;;;;OAWG;IACH,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,mBAAmB,GAAG,IAAI,CAAC;CACjE;AAED,mFAAmF;AACnF,MAAM,WAAW,mBAAmB;IAClC,4EAA4E;IAC5E,IAAI,EAAE,QAAQ,CAAC;IACf,oEAAoE;IACpE,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,2EAA2E;IAC3E,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,uBAAwB,SAAQ,KAAK;gBACpC,OAAO,EAAE,OAAO;CAc7B;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAErD;AAED,6EAA6E;AAC7E,wBAAgB,YAAY,IAAI,OAAO,EAAE,CAExC;AAkCD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,UAAU,CAIvD;AAED,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,CAAC"}
@@ -146,6 +146,21 @@ export declare class PostgresDialect implements SqlDialect {
146
146
  * — which is where this one comes from rather than from the manual.
147
147
  */
148
148
  jsonValueAt(column: string, path: Binder): Fragment;
149
+ /**
150
+ * `jsonb_typeof(doc) = 'object' and doc ? $1` — and `?|` / `?&` with a
151
+ * `text[]` for the list forms, so every list length is one statement.
152
+ *
153
+ * The operators rather than `jsonb_exists()`: only the operator form can use
154
+ * a GIN index on the column. `?` is not a placeholder here — Postgres numbers
155
+ * its parameters `$n` — so nothing has to escape it. The `::jsonb` keeps a
156
+ * `@db.Json` column working, which has no `?` operator of its own.
157
+ */
158
+ jsonHasKeys(column: string, path: Binder | undefined, keys: Binder, mode: "one" | "some" | "every"): Fragment;
159
+ /**
160
+ * `is distinct from`, with the column cast to `jsonb` for a `Json` field so a
161
+ * `@db.Json` column compares too — `json` has no equality operator.
162
+ */
163
+ distinctFrom(lhs: string, rhs: Fragment, field: FieldSchema): Fragment;
149
164
  /**
150
165
  * `("col" #> $1) @> $2` — containment, which is what Prisma's
151
166
  * `array_contains` compiles to and why it accepts both a scalar and a list:
@@ -1 +1 @@
1
- {"version":3,"file":"postgres.d.ts","sourceRoot":"","sources":["../../../orm/dialect/postgres.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"postgres.d.ts","sourceRoot":"","sources":["../../../orm/dialect/postgres.ts"],"names":[],"mappings":"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"}
@@ -110,6 +110,23 @@ export declare class SqliteDialect implements SqlDialect {
110
110
  * bound side.
111
111
  */
112
112
  jsonValueAt(column: string, path: Binder): Fragment;
113
+ /**
114
+ * `json_type(col, '$."key"') is not null`, one term per key, behind
115
+ * `json_type(col, '$') = 'object'`.
116
+ *
117
+ * The key is appended to the path as a JSON string — `$."a.b"` — which SQLite
118
+ * reads as one label however many dots, brackets or quotes it holds. Both
119
+ * paths are bound. `json_each` would take the keys as one parameter, but it
120
+ * cannot be correlated safely: a column named `key`, `value` or `json`
121
+ * resolves to `json_each`'s own column inside the subquery, and the filter
122
+ * silently matches nothing. Measured on SQLite 3.51.
123
+ */
124
+ jsonHasKeys(column: string, path: Binder | undefined, keys: Binder, mode: "one" | "some" | "every", count: number): Fragment;
125
+ /**
126
+ * `is not`, SQLite's null-safe inequality. A `Json` column is stored as text,
127
+ * so both sides go through `json()` first and whitespace stops mattering.
128
+ */
129
+ distinctFrom(lhs: string, rhs: Fragment, field: FieldSchema): Fragment;
113
130
  jsonArrayContains(): Fragment;
114
131
  like(lhs: string, _insensitive: boolean, pattern: Binder): Fragment;
115
132
  ignoreConflicts(): Fragment | null;
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../../orm/dialect/sqlite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EACL,KAAK,MAAM,EACX,KAAK,QAAQ,EAKd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAsC/D,qBAAa,aAAc,YAAW,UAAU;IAC9C,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAY;IAOlC,QAAQ,CAAC,uBAAuB,SAAS;IAGzC,QAAQ,CAAC,uBAAuB,SAAS;IAMzC,QAAQ,CAAC,iBAAiB,QAAQ;IAOlC,QAAQ,CAAC,kBAAkB,SAAS;IAOpC,QAAQ,CAAC,4BAA4B,SAAS;IAE9C,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAiBhC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAOnC,MAAM,CACJ,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,QAAQ;IAeX;;;;;;;;OAQG;IACH,kBAAkB,IAAI,OAAO;IAI7B,WAAW,IAAI,QAAQ;IASvB;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAa;IAMtD,OAAO,IAAI,QAAQ;IAInB,YAAY,IAAI,QAAQ;IAIxB,WAAW,IAAI,QAAQ;IAIvB,WAAW,IAAI,QAAQ;IAIvB,QAAQ,IAAI,QAAQ;IAIpB;;;;;;;;OAQG;IACH,QAAQ,CAAC,cAAc,EAAG,UAAU,CAAU;IAE9C;;;;;;OAMG;IACH,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAMtC;IAEH;;;;;;OAMG;IACH,QAAQ,CAAC,kBAAkB,SAAS;IAEpC;;;;;;;OAOG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,QAAQ;IAIrE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ;IAInD,iBAAiB,IAAI,QAAQ;IAS7B,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,QAAQ;IAUnE,eAAe,IAAI,QAAQ,GAAG,IAAI;IAOlC,OAAO,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,GAAG,QAAQ;IAOvD,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,QAAQ;IAsB5D,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,mBAAmB,GAAG,IAAI;IA4B/D,aAAa,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM;IAI1C,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO;IAwEnD,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAMtC,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO;IAYxC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO;CAiCpD"}
1
+ {"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../../orm/dialect/sqlite.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,8 @@ export { currentActor, currentTransaction, isSystemScope, ormContext, runAsSyste
10
10
  export { CrossConnectionTransactionError, UnknownConnectionError, } from "../database/Connection";
11
11
  export { empty, join, renderFragment, sql, unsafeSql, type SqlFragment, } from "./sql";
12
12
  export { assertPoliciesRegistered, auditModelRegistrations, registerModels, } from "./registration";
13
- export { softDelete, softDeleteMany, softDeletes, type SoftDeleteOptions, } from "./soft-deletes";
13
+ export { softDelete, softDeleteMany, softDeletes, type SoftDeleteOptions, type SoftDeletesSetting, } from "./soft-deletes";
14
+ export type { TrashedMode } from "./context";
14
15
  export { paginate } from "./page-args";
15
16
  export { Policy, ScopedPolicy, applyPolicies, applyRedaction, currentUser, policiesFor, policyContext, redactNullable, type ModelPolicy, type PolicyContext, type PolicyEntry, } from "./policy";
16
17
  export { changedFields, isTracked, provenanceOf, resnapshot, track, type Provenance, } from "./provenance";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../orm/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../orm/index.ts"],"names":[],"mappings":"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"}