@cedarjs/tenancy 8.0.0-canary.3556 → 8.0.0-canary.3557

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.
@@ -72,14 +72,43 @@ type ExtendableClient = {
72
72
  * an unscoped one allows.
73
73
  */
74
74
  type RawSqlMethod = '$queryRaw' | '$queryRawUnsafe' | '$executeRaw' | '$executeRawUnsafe';
75
+ /**
76
+ * Raw SQL typed the way the un-extended client types it, instead of as
77
+ * always throwing.
78
+ */
79
+ type AllowedRawSql<TClient> = Pick<TClient, Extract<keyof TClient, RawSqlMethod>>;
80
+ /**
81
+ * The `tx` and the options of `TDb`'s interactive `$transaction`, read from
82
+ * Prisma's own signature. A conditional type matches the last overload, which
83
+ * for Prisma is the interactive one (the batch form comes first).
84
+ */
85
+ type InteractiveTransaction<TDb> = TDb extends {
86
+ $transaction: (fn: (tx: infer Tx) => Promise<unknown>, options?: infer Options) => Promise<unknown>;
87
+ } ? {
88
+ tx: Tx;
89
+ options: Options;
90
+ } : never;
91
+ /**
92
+ * The `$transaction` of `db.$withoutTenant()`: its callback's `tx` is `db`'s
93
+ * own transaction client with raw SQL allowed, like the client it was started
94
+ * on (at runtime it's built from that unscoped client). `db`'s own overloads
95
+ * follow it, unchanged: the batch form, and the callback form for a callback
96
+ * that names `db`'s `tx` type. Keeping them also lets TypeScript call
97
+ * `$transaction` on a union of `db` and the unscoped client, using the
98
+ * signatures the two have in common.
99
+ */
100
+ type UnscopedTransaction<TDb, TClient> = (<R>(fn: (tx: Omit<InteractiveTransaction<TDb>['tx'], RawSqlMethod> & AllowedRawSql<TClient>) => Promise<R>, options?: InteractiveTransaction<TDb>['options']) => Promise<R>) & (TDb extends {
101
+ $transaction: infer T;
102
+ } ? T : never);
75
103
  /**
76
104
  * The type of `db.$withoutTenant()`: `db`'s own type, with raw SQL typed the
77
- * way the un-extended client types it instead of as always throwing. Every
78
- * other member, the models and `$transaction` included, has exactly `db`'s
79
- * type, so code can take either client without the two forming a union
80
- * TypeScript can't call model methods on.
105
+ * way the un-extended client types it instead of as always throwing, on the
106
+ * client and on its interactive transactions' `tx`. Every other member, the
107
+ * models included, has exactly `db`'s type, so code can take either client
108
+ * without the two forming a union TypeScript can't call model methods on.
81
109
  */
82
- export type UnscopedClient<TDb, TClient> = Omit<TDb, RawSqlMethod | '$forOrg' | '$withoutTenant'> & Pick<TClient, Extract<keyof TClient, RawSqlMethod>> & {
110
+ export type UnscopedClient<TDb, TClient> = Omit<TDb, RawSqlMethod | '$transaction' | '$forOrg' | '$withoutTenant'> & AllowedRawSql<TClient> & {
111
+ $transaction: UnscopedTransaction<TDb, TClient>;
83
112
  $forOrg(this: ExtendableClient, organizationId: string): TDb;
84
113
  $withoutTenant(this: ExtendableClient): UnscopedClient<TDb, TClient>;
85
114
  };
@@ -1 +1 @@
1
- {"version":3,"file":"prismaExtension.d.ts","sourceRoot":"","sources":["../src/prismaExtension.ts"],"names":[],"mappings":"AAQA,KAAK,uBAAuB,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,MAAM,EAAE,GACpD,KAAK,GACL,CAAC,SAAS,MAAM,GACd,KAAK,GACL,CAAC,CAAA;AAEP;;;GAGG;AACH,MAAM,MAAM,aAAa,CAAC,OAAO,IAAI,uBAAuB,CAAC,MAAM,OAAO,CAAC,CAAA;AAE3E,MAAM,WAAW,aAAa,CAAC,OAAO;IACpC;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;;;;OAMG;IACH,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,GAAG;QAAE,SAAS,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,CAAA;KAAE,CAAA;IAC1E;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAA;CACvC;AA4ID;;;;;;GAMG;AACH,UAAU,iBAAiB;IACzB,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACxB,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CACxB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,MAAM,GACjB,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAwChC;AAiwBD,iBAAS,oBAAoB,IAAI,KAAK,CAErC;AAQD;;;;;;GAMG;AACH,KAAK,gBAAgB,GAAG;IAAE,QAAQ,EAAE,OAAO,CAAA;CAAE,CAAA;AAQ7C;;;GAGG;AACH,KAAK,YAAY,GACf,WAAW,GAAG,iBAAiB,GAAG,aAAa,GAAG,mBAAmB,CAAA;AAEvE;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,CAAC,GAAG,EAAE,OAAO,IAAI,IAAI,CAC7C,GAAG,EACH,YAAY,GAAG,SAAS,GAAG,gBAAgB,CAC5C,GACC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,OAAO,EAAE,YAAY,CAAC,CAAC,GAAG;IACpD,OAAO,CAAC,IAAI,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,GAAG,GAAG,CAAA;IAC5D,cAAc,CAAC,IAAI,EAAE,gBAAgB,GAAG,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;CACrE,CAAA;AAEH;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAC5C,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC;cA8BX,CAAC,SAAS,gBAAgB,QACnC,CAAC,kBACS,MAAM,KACrB,CAAC;qBAaoB,CAAC,SAAS,gBAAgB,QAC1C,CAAC,KACN,cAAc,CAAC,CAAC,EAAE,OAAO,CAAC;;;;;0DA2DhC"}
1
+ {"version":3,"file":"prismaExtension.d.ts","sourceRoot":"","sources":["../src/prismaExtension.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cedarjs/tenancy",
3
- "version": "8.0.0-canary.3556",
3
+ "version": "8.0.0-canary.3557",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/cedarjs/cedar.git",
@@ -44,17 +44,17 @@
44
44
  "test:watch": "vitest watch"
45
45
  },
46
46
  "dependencies": {
47
- "@cedarjs/api": "8.0.0-canary.3556",
48
- "@cedarjs/context": "8.0.0-canary.3556",
49
- "@cedarjs/graphql-server": "8.0.0-canary.3556"
47
+ "@cedarjs/api": "8.0.0-canary.3557",
48
+ "@cedarjs/context": "8.0.0-canary.3557",
49
+ "@cedarjs/graphql-server": "8.0.0-canary.3557"
50
50
  },
51
51
  "devDependencies": {
52
52
  "@apollo/client": "4.3.5",
53
53
  "@arethetypeswrong/cli": "0.18.5",
54
- "@cedarjs/auth": "8.0.0-canary.3556",
55
- "@cedarjs/framework-tools": "8.0.0-canary.3556",
56
- "@cedarjs/router": "8.0.0-canary.3556",
57
- "@cedarjs/web": "8.0.0-canary.3556",
54
+ "@cedarjs/auth": "8.0.0-canary.3557",
55
+ "@cedarjs/framework-tools": "8.0.0-canary.3557",
56
+ "@cedarjs/router": "8.0.0-canary.3557",
57
+ "@cedarjs/web": "8.0.0-canary.3557",
58
58
  "@prisma/adapter-better-sqlite3": "7.10.1",
59
59
  "@prisma/client": "7.10.1",
60
60
  "@testing-library/dom": "10.4.2",
@@ -80,9 +80,9 @@
80
80
  },
81
81
  "peerDependencies": {
82
82
  "@apollo/client": "4.3.5",
83
- "@cedarjs/auth": "8.0.0-canary.3556",
84
- "@cedarjs/router": "8.0.0-canary.3556",
85
- "@cedarjs/web": "8.0.0-canary.3556",
83
+ "@cedarjs/auth": "8.0.0-canary.3557",
84
+ "@cedarjs/router": "8.0.0-canary.3557",
85
+ "@cedarjs/web": "8.0.0-canary.3557",
86
86
  "@prisma/client": "7.10.1",
87
87
  "react": "19.3.1"
88
88
  },