over-zero 0.0.6 → 0.0.8
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.
- package/dist/cjs/createPermissions.cjs +2 -1
- package/dist/cjs/createPermissions.js +2 -2
- package/dist/cjs/createPermissions.js.map +1 -1
- package/dist/cjs/createPermissions.native.js +2 -2
- package/dist/cjs/createPermissions.native.js.map +1 -1
- package/dist/cjs/createZeroServer.cjs +6 -2
- package/dist/cjs/createZeroServer.js +6 -2
- package/dist/cjs/createZeroServer.js.map +1 -1
- package/dist/cjs/createZeroServer.native.js +4 -1
- package/dist/cjs/createZeroServer.native.js.map +1 -1
- package/dist/cjs/helpers/createMutators.cjs +4 -2
- package/dist/cjs/helpers/createMutators.js +4 -2
- package/dist/cjs/helpers/createMutators.js.map +1 -1
- package/dist/cjs/helpers/createMutators.native.js +4 -2
- package/dist/cjs/helpers/createMutators.native.js.map +1 -1
- package/dist/cjs/helpers/didRunPermissionCheck.cjs +30 -0
- package/dist/cjs/helpers/didRunPermissionCheck.js +26 -0
- package/dist/cjs/helpers/didRunPermissionCheck.js.map +6 -0
- package/dist/cjs/helpers/didRunPermissionCheck.native.js +34 -0
- package/dist/cjs/helpers/didRunPermissionCheck.native.js.map +6 -0
- package/dist/cjs/helpers/getDidRunPermissionCheck.cjs +27 -0
- package/dist/cjs/helpers/getDidRunPermissionCheck.js +21 -0
- package/dist/cjs/helpers/getDidRunPermissionCheck.js.map +6 -0
- package/dist/cjs/helpers/getDidRunPermissionCheck.native.js +28 -0
- package/dist/cjs/helpers/getDidRunPermissionCheck.native.js.map +6 -0
- package/dist/cjs/mutations.cjs +2 -1
- package/dist/cjs/mutations.js +2 -1
- package/dist/cjs/mutations.js.map +1 -1
- package/dist/cjs/mutations.native.js +2 -1
- package/dist/cjs/mutations.native.js.map +1 -1
- package/dist/cjs/where.cjs +2 -1
- package/dist/cjs/where.js +5 -1
- package/dist/cjs/where.js.map +1 -1
- package/dist/cjs/where.native.js +4 -1
- package/dist/cjs/where.native.js.map +1 -1
- package/dist/esm/createPermissions.js +2 -1
- package/dist/esm/createPermissions.js.map +1 -1
- package/dist/esm/createPermissions.mjs +2 -1
- package/dist/esm/createPermissions.mjs.map +1 -1
- package/dist/esm/createPermissions.native.js +2 -1
- package/dist/esm/createPermissions.native.js.map +1 -1
- package/dist/esm/createZeroServer.js +6 -2
- package/dist/esm/createZeroServer.js.map +1 -1
- package/dist/esm/createZeroServer.mjs +6 -2
- package/dist/esm/createZeroServer.mjs.map +1 -1
- package/dist/esm/createZeroServer.native.js +6 -2
- package/dist/esm/createZeroServer.native.js.map +1 -1
- package/dist/esm/helpers/createMutators.js +4 -2
- package/dist/esm/helpers/createMutators.js.map +1 -1
- package/dist/esm/helpers/createMutators.mjs +4 -2
- package/dist/esm/helpers/createMutators.mjs.map +1 -1
- package/dist/esm/helpers/createMutators.native.js +4 -2
- package/dist/esm/helpers/createMutators.native.js.map +1 -1
- package/dist/esm/helpers/didRunPermissionCheck.js +10 -0
- package/dist/esm/helpers/didRunPermissionCheck.js.map +6 -0
- package/dist/esm/helpers/didRunPermissionCheck.mjs +6 -0
- package/dist/esm/helpers/didRunPermissionCheck.mjs.map +1 -0
- package/dist/esm/helpers/didRunPermissionCheck.native.js +12 -0
- package/dist/esm/helpers/didRunPermissionCheck.native.js.map +1 -0
- package/dist/esm/helpers/getDidRunPermissionCheck.js +5 -0
- package/dist/esm/helpers/getDidRunPermissionCheck.js.map +6 -0
- package/dist/esm/helpers/getDidRunPermissionCheck.mjs +4 -0
- package/dist/esm/helpers/getDidRunPermissionCheck.mjs.map +1 -0
- package/dist/esm/helpers/getDidRunPermissionCheck.native.js +6 -0
- package/dist/esm/helpers/getDidRunPermissionCheck.native.js.map +1 -0
- package/dist/esm/mutations.js +2 -1
- package/dist/esm/mutations.js.map +1 -1
- package/dist/esm/mutations.mjs +2 -1
- package/dist/esm/mutations.mjs.map +1 -1
- package/dist/esm/mutations.native.js +2 -1
- package/dist/esm/mutations.native.js.map +1 -1
- package/dist/esm/where.js +5 -1
- package/dist/esm/where.js.map +1 -1
- package/dist/esm/where.mjs +2 -1
- package/dist/esm/where.mjs.map +1 -1
- package/dist/esm/where.native.js +4 -1
- package/dist/esm/where.native.js.map +1 -1
- package/package.json +3 -2
- package/readme.md +15 -11
- package/src/createPermissions.ts +3 -2
- package/src/createZeroServer.ts +11 -2
- package/src/helpers/createMutators.ts +7 -2
- package/src/helpers/didRunPermissionCheck.ts +15 -0
- package/src/mutations.ts +2 -1
- package/src/types.ts +12 -10
- package/src/where.ts +5 -1
- package/types/createPermissions.d.ts +1 -1
- package/types/createPermissions.d.ts.map +1 -1
- package/types/createZeroServer.d.ts +5 -1
- package/types/createZeroServer.d.ts.map +1 -1
- package/types/helpers/createMutators.d.ts.map +1 -1
- package/types/helpers/didRunPermissionCheck.d.ts +4 -0
- package/types/helpers/didRunPermissionCheck.d.ts.map +1 -0
- package/types/mutations.d.ts.map +1 -1
- package/types/types.d.ts +10 -9
- package/types/types.d.ts.map +1 -1
- package/types/where.d.ts.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "over-zero",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.8",
|
|
4
4
|
"sideEffects": false,
|
|
5
5
|
"source": "src/index.ts",
|
|
6
6
|
"main": "dist/cjs",
|
|
@@ -42,7 +42,8 @@
|
|
|
42
42
|
}
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
|
-
"@vxrn/helpers": "0.0.
|
|
45
|
+
"@vxrn/helpers": "0.0.8",
|
|
46
|
+
"postgres": "^3.4.4"
|
|
46
47
|
},
|
|
47
48
|
"peerDependencies": {
|
|
48
49
|
"@rocicorp/zero": "*",
|
package/readme.md
CHANGED
|
@@ -1,16 +1,20 @@
|
|
|
1
1
|
# over-zero
|
|
2
2
|
|
|
3
|
-
This library is
|
|
4
|
-
|
|
5
|
-
integrating authentication, writing your schema in a DRY way, and getting back
|
|
6
|
-
great types.
|
|
7
|
-
|
|
8
|
-
It's main exports are `createZero` and `createZeroServer`, for your client and
|
|
9
|
-
server-side setup.
|
|
3
|
+
This library is small suite of helpers we extracted after using Zero across a
|
|
4
|
+
few production apps.
|
|
10
5
|
|
|
11
6
|
It's main feature is allowing you to define a `models/*` directory where you can
|
|
12
|
-
define each zero **table** alongside its **permissions** and **mutations
|
|
13
|
-
|
|
14
|
-
|
|
7
|
+
define each zero **table** alongside its **permissions** and **mutations** in an
|
|
8
|
+
intuitive and simple way.
|
|
9
|
+
|
|
10
|
+
It also provides `createZero` and `createZeroServer` which return helpers for
|
|
11
|
+
your that make a variety of common client and server patterns simpler.
|
|
12
|
+
|
|
13
|
+
Within models, you can automatically define CRUD-style mutations which apply
|
|
14
|
+
permissions defined using simple `where` and `mutations` helper functions. You
|
|
15
|
+
can then use your permissions in custom mutators with the `can` helper function.
|
|
16
|
+
|
|
17
|
+
For permissions, you get a handy `usePermission` helper for client.
|
|
15
18
|
|
|
16
|
-
|
|
19
|
+
On the server, you get helpers to run one-off queries and mutations using
|
|
20
|
+
standard Zero APIs, and a helper to simplify setting up your `/push` endpoint.
|
package/src/createPermissions.ts
CHANGED
|
@@ -7,14 +7,15 @@ import type {
|
|
|
7
7
|
import { ANYONE_CAN, definePermissions } from '@rocicorp/zero'
|
|
8
8
|
import { ensure, EnsureError, objectEntries } from '@vxrn/helpers'
|
|
9
9
|
import { runWithContext } from './helpers/context'
|
|
10
|
+
import { setDidRunPermissionCheck } from './helpers/didRunPermissionCheck'
|
|
10
11
|
import { prettyFormatZeroQuery } from './helpers/prettyFormatZeroQuery'
|
|
11
12
|
import type {
|
|
12
13
|
AuthData,
|
|
14
|
+
Can,
|
|
13
15
|
MutatorContext,
|
|
14
16
|
TableName,
|
|
15
17
|
Transaction,
|
|
16
18
|
Where,
|
|
17
|
-
Can,
|
|
18
19
|
} from './types'
|
|
19
20
|
import { getWhereTableName } from './where'
|
|
20
21
|
|
|
@@ -124,7 +125,7 @@ export function createPermissions<Schema extends ZeroSchema>({
|
|
|
124
125
|
action as string,
|
|
125
126
|
obj
|
|
126
127
|
)
|
|
127
|
-
ctx
|
|
128
|
+
setDidRunPermissionCheck(ctx)
|
|
128
129
|
}
|
|
129
130
|
}
|
|
130
131
|
|
package/src/createZeroServer.ts
CHANGED
|
@@ -21,17 +21,26 @@ export function createZeroServer<
|
|
|
21
21
|
ServerActions extends Record<string, unknown>,
|
|
22
22
|
>({
|
|
23
23
|
createServerActions,
|
|
24
|
+
database,
|
|
24
25
|
schema,
|
|
25
26
|
models,
|
|
26
27
|
}: {
|
|
28
|
+
/**
|
|
29
|
+
* The DB connection string, same as ZERO_UPSTREAM_DB
|
|
30
|
+
*/
|
|
31
|
+
database: string
|
|
27
32
|
schema: Schema
|
|
28
33
|
models: Models
|
|
29
34
|
createServerActions: () => ServerActions
|
|
30
35
|
}) {
|
|
31
|
-
const dbString = assertString(
|
|
36
|
+
const dbString = assertString(database, `"database" prop`)
|
|
37
|
+
const db = postgres(dbString)
|
|
32
38
|
|
|
33
39
|
const zeroServerDatabase = new ZQLDatabase(
|
|
34
|
-
new PostgresJSConnection(
|
|
40
|
+
new PostgresJSConnection(
|
|
41
|
+
// TODO if you have duplicate postgres due to zero having its own in node_modules TS types break
|
|
42
|
+
db as any
|
|
43
|
+
),
|
|
35
44
|
schema
|
|
36
45
|
)
|
|
37
46
|
|
|
@@ -37,8 +37,13 @@ export function createMutators<Models extends GenericModels>({
|
|
|
37
37
|
authData,
|
|
38
38
|
environment,
|
|
39
39
|
can,
|
|
40
|
-
|
|
41
|
-
|
|
40
|
+
server:
|
|
41
|
+
environment === 'server'
|
|
42
|
+
? {
|
|
43
|
+
actions: serverActions || {},
|
|
44
|
+
asyncTasks: asyncTasks || {},
|
|
45
|
+
}
|
|
46
|
+
: undefined,
|
|
42
47
|
}
|
|
43
48
|
|
|
44
49
|
return await runWithContext(mutationContext, () => {
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { globalValue } from '@vxrn/helpers'
|
|
2
|
+
import type { MutatorContext } from '../types'
|
|
3
|
+
|
|
4
|
+
const PermissionCheckRan = globalValue(
|
|
5
|
+
`over-zero:permissions-check`,
|
|
6
|
+
() => new WeakMap<MutatorContext, boolean>()
|
|
7
|
+
)
|
|
8
|
+
|
|
9
|
+
export const getDidRunPermissionCheck = (ctx: MutatorContext) => {
|
|
10
|
+
return PermissionCheckRan.get(ctx)
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export const setDidRunPermissionCheck = (ctx: MutatorContext) => {
|
|
14
|
+
return PermissionCheckRan.set(ctx, true)
|
|
15
|
+
}
|
package/src/mutations.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { TableBuilderWithColumns } from '@rocicorp/zero'
|
|
2
|
+
import { getDidRunPermissionCheck } from './helpers/didRunPermissionCheck'
|
|
2
3
|
import type {
|
|
3
4
|
MutatorContext,
|
|
4
5
|
TableInsertRow,
|
|
@@ -81,7 +82,7 @@ export function mutations<
|
|
|
81
82
|
* - for the rest: check runs before mutation
|
|
82
83
|
*/
|
|
83
84
|
const runServerPermissionCheck = async () => {
|
|
84
|
-
if (ctx
|
|
85
|
+
if (getDidRunPermissionCheck(ctx)) {
|
|
85
86
|
// if the user-defined CRUD mutation runs their own "can", we avoid running ours
|
|
86
87
|
return
|
|
87
88
|
}
|
package/src/types.ts
CHANGED
|
@@ -57,6 +57,18 @@ export type ServerActions = FinalConfig['serverActions'] extends Record<string,
|
|
|
57
57
|
* ➗0️⃣ END OVERRIDDEN TYPES
|
|
58
58
|
*/
|
|
59
59
|
|
|
60
|
+
// the first argument passed to every mutation:
|
|
61
|
+
export type MutatorContext = {
|
|
62
|
+
tx: Transaction
|
|
63
|
+
authData: AuthData | null
|
|
64
|
+
environment: 'server' | 'client'
|
|
65
|
+
server?: {
|
|
66
|
+
actions: ServerActions
|
|
67
|
+
asyncTasks: Array<() => Promise<void>>
|
|
68
|
+
}
|
|
69
|
+
can: Can
|
|
70
|
+
}
|
|
71
|
+
|
|
60
72
|
// turns our mutators with custom context into zero mutators
|
|
61
73
|
export type GetZeroMutators<Models extends GenericModels> = {
|
|
62
74
|
[Key in keyof Models]: TransformMutators<GetModelMutators<Models>[Key]>
|
|
@@ -90,16 +102,6 @@ export type Can = <PWhere extends Where, Action extends keyof ReturnType<PWhere>
|
|
|
90
102
|
obj: string | Record<string, unknown>
|
|
91
103
|
) => Promise<void>
|
|
92
104
|
|
|
93
|
-
export type MutatorContext = {
|
|
94
|
-
tx: Transaction
|
|
95
|
-
authData: AuthData | null
|
|
96
|
-
environment: 'server' | 'client'
|
|
97
|
-
serverActions?: ServerActions
|
|
98
|
-
asyncTasks?: Array<() => Promise<void>>
|
|
99
|
-
can: Can
|
|
100
|
-
didCanPermissionsRun?: boolean
|
|
101
|
-
}
|
|
102
|
-
|
|
103
105
|
export type AsyncAction = () => Promise<void>
|
|
104
106
|
|
|
105
107
|
type GenericTable = TableBuilderWithColumns<any>
|
package/src/where.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { globalValue } from '@vxrn/helpers'
|
|
1
2
|
import type { TableName, Where } from './types'
|
|
2
3
|
|
|
3
4
|
export function where<Table extends TableName, Builder extends Where = Where<Table>>(
|
|
@@ -21,7 +22,10 @@ export function where<Table extends TableName, Builder extends Where = Where<Tab
|
|
|
21
22
|
|
|
22
23
|
// permissions where:
|
|
23
24
|
|
|
24
|
-
const WhereTableNameMap =
|
|
25
|
+
const WhereTableNameMap = globalValue(
|
|
26
|
+
`over-zero:where-table-map`,
|
|
27
|
+
() => new WeakMap<Where, TableName>()
|
|
28
|
+
)
|
|
25
29
|
|
|
26
30
|
export function getWhereTableName(where: Where) {
|
|
27
31
|
return WhereTableNameMap.get(where)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Condition, ExpressionBuilder, Schema as ZeroSchema } from '@rocicorp/zero';
|
|
2
|
-
import type { AuthData, MutatorContext, Where
|
|
2
|
+
import type { AuthData, Can, MutatorContext, Where } from './types';
|
|
3
3
|
export declare function createPermissions<Schema extends ZeroSchema>({ environment, schema, models, getContext, }: {
|
|
4
4
|
environment: 'client' | 'server';
|
|
5
5
|
schema: Schema;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createPermissions.d.ts","sourceRoot":"","sources":["../src/createPermissions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,iBAAiB,EAEjB,MAAM,IAAI,UAAU,EACrB,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"createPermissions.d.ts","sourceRoot":"","sources":["../src/createPermissions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,iBAAiB,EAEjB,MAAM,IAAI,UAAU,EACrB,MAAM,gBAAgB,CAAA;AAMvB,OAAO,KAAK,EACV,QAAQ,EACR,GAAG,EACH,cAAc,EAGd,KAAK,EACN,MAAM,SAAS,CAAA;AAGhB,wBAAgB,iBAAiB,CAAC,MAAM,SAAS,UAAU,EAAE,EAC3D,WAAW,EACX,MAAM,EACN,MAAM,EACN,UAAU,GACX,EAAE;IACD,WAAW,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,GAAG,CAAA;IACX,UAAU,EAAE,MAAM,cAAc,CAAA;CACjC;;2BA2BG,eAAe,8IACf,MAAM,SAAS,MAAM,YAEX,QAAQ,GAAG,IAAI,MACrB,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,mBACd,eAAe,UACxB,MAAM,WAEL,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM;;;;sBApBtB,CAAC;sBAKN,CAAC;sBAMQ,CAAC;+BACF,CAAC;gCAIF,CAAC;;sBAG6B,CAAC;;;sBAMxC,CAAA;sBAGe,CAAC;sBAMpB,CAAC;+BAA+B,CAAC;gCAEL,CAAC;;sBAIA,CAAC;;;;EA8IrC"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import type { Schema as ZeroSchema } from '@rocicorp/zero';
|
|
2
2
|
import type { AsyncAction, AuthData, GenericModels, GetZeroMutators, Transaction } from './types';
|
|
3
|
-
export declare function createZeroServer<Schema extends ZeroSchema, Models extends GenericModels, ServerActions extends Record<string, unknown>>({ createServerActions, schema, models, }: {
|
|
3
|
+
export declare function createZeroServer<Schema extends ZeroSchema, Models extends GenericModels, ServerActions extends Record<string, unknown>>({ createServerActions, database, schema, models, }: {
|
|
4
|
+
/**
|
|
5
|
+
* The DB connection string, same as ZERO_UPSTREAM_DB
|
|
6
|
+
*/
|
|
7
|
+
database: string;
|
|
4
8
|
schema: Schema;
|
|
5
9
|
models: Models;
|
|
6
10
|
createServerActions: () => ServerActions;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createZeroServer.d.ts","sourceRoot":"","sources":["../src/createZeroServer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAS,MAAM,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAA;AASjE,OAAO,KAAK,EACV,WAAW,EACX,QAAQ,EACR,aAAa,EACb,eAAe,EACf,WAAW,EACZ,MAAM,SAAS,CAAA;AAEhB,wBAAgB,gBAAgB,CAC9B,MAAM,SAAS,UAAU,EACzB,MAAM,SAAS,aAAa,EAC5B,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7C,EACA,mBAAmB,EACnB,MAAM,EACN,MAAM,GACP,EAAE;IACD,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,mBAAmB,EAAE,MAAM,aAAa,CAAA;CACzC;
|
|
1
|
+
{"version":3,"file":"createZeroServer.d.ts","sourceRoot":"","sources":["../src/createZeroServer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAS,MAAM,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAA;AASjE,OAAO,KAAK,EACV,WAAW,EACX,QAAQ,EACR,aAAa,EACb,eAAe,EACf,WAAW,EACZ,MAAM,SAAS,CAAA;AAEhB,wBAAgB,gBAAgB,CAC9B,MAAM,SAAS,UAAU,EACzB,MAAM,SAAS,aAAa,EAC5B,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7C,EACA,mBAAmB,EACnB,QAAQ,EACR,MAAM,EACN,MAAM,GACP,EAAE;IACD;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,mBAAmB,EAAE,MAAM,aAAa,CAAA;CACzC;oEAyBI;QACD,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAA;QACzB,OAAO,EAAE,OAAO,CAAA;QAChB,cAAc,CAAC,EAAE,OAAO,CAAA;KACzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA+DC,EAAE,SAAS,CAAC,EAAE,EAAE,WAAW,KAAK,OAAO,CAAC,GAAG,CAAC,EAC5C,OAAO,SAAS,EAAE,SAAS,CAAC,EAAE,EAAE,WAAW,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,SACrE,EAAE,KAAG,OAAO,CAAC,OAAO,CAAC;kBA7BvB,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,eAAe,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,aAC/D,IAAI,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;YA+C1C,QAAQ,iBAHpB,WAAW,CAAC,OAAO,CAAC,uBAIvB,QAAQ,KACX,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;EAoBjC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createMutators.d.ts","sourceRoot":"","sources":["../../src/helpers/createMutators.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,QAAQ,EACR,GAAG,EACH,aAAa,EACb,eAAe,EAGhB,MAAM,UAAU,CAAA;AAGjB,wBAAgB,cAAc,CAAC,MAAM,SAAS,aAAa,EAAE,EAC3D,WAAW,EACX,QAAQ,EACR,mBAAmB,EACnB,UAAe,EACf,GAAG,EACH,MAAM,GACP,EAAE;IACD,WAAW,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAChC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAA;IACzB,GAAG,EAAE,GAAG,CAAA;IACR,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;IACvC,mBAAmB,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAChD,GAAG,eAAe,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"createMutators.d.ts","sourceRoot":"","sources":["../../src/helpers/createMutators.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,QAAQ,EACR,GAAG,EACH,aAAa,EACb,eAAe,EAGhB,MAAM,UAAU,CAAA;AAGjB,wBAAgB,cAAc,CAAC,MAAM,SAAS,aAAa,EAAE,EAC3D,WAAW,EACX,QAAQ,EACR,mBAAmB,EACnB,UAAe,EACf,GAAG,EACH,MAAM,GACP,EAAE;IACD,WAAW,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAChC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAA;IACzB,GAAG,EAAE,GAAG,CAAA;IACR,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;IACvC,mBAAmB,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAChD,GAAG,eAAe,CAAC,MAAM,CAAC,CA6G1B"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { MutatorContext } from '../types';
|
|
2
|
+
export declare const getDidRunPermissionCheck: (ctx: MutatorContext) => boolean | undefined;
|
|
3
|
+
export declare const setDidRunPermissionCheck: (ctx: MutatorContext) => WeakMap<MutatorContext, boolean>;
|
|
4
|
+
//# sourceMappingURL=didRunPermissionCheck.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"didRunPermissionCheck.d.ts","sourceRoot":"","sources":["../../src/helpers/didRunPermissionCheck.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAO9C,eAAO,MAAM,wBAAwB,GAAI,KAAK,cAAc,wBAE3D,CAAA;AAED,eAAO,MAAM,wBAAwB,GAAI,KAAK,cAAc,qCAE3D,CAAA"}
|
package/types/mutations.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutations.d.ts","sourceRoot":"","sources":["../src/mutations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"mutations.d.ts","sourceRoot":"","sources":["../src/mutations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAA;AAE7D,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EAEd,cAAc,EACd,KAAK,EACN,MAAM,SAAS,CAAA;AAMhB,KAAK,eAAe,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;AACnF,KAAK,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;AAevD,KAAK,YAAY,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAA;AAEhD,KAAK,aAAa,CAAC,KAAK,SAAS,YAAY,IAAI;IAC/C,MAAM,EAAE,eAAe,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAA;IAC9C,MAAM,EAAE,eAAe,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAA;IAC9C,MAAM,EAAE,eAAe,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAA;IAC9C,MAAM,EAAE,eAAe,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAA;CAC/C,CAAA;AAED,KAAK,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAE1D,KAAK,iBAAiB,CAAC,KAAK,SAAS,YAAY,EAAE,SAAS,SAAS,gBAAgB,IAAI;KACtF,GAAG,IAAI,SAAS,GAAG,MAAM,SAAS,GAAG,GAAG,SAAS,MAAM,SAAS,GAC7D,SAAS,CAAC,GAAG,CAAC,GACd,GAAG,SAAS,MAAM,aAAa,CAAC,GAAG,CAAC,GAClC,aAAa,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GACzB,KAAK;CACZ,CAAA;AAED,wBAAgB,SAAS,CAAC,SAAS,SAAS,gBAAgB,EAC1D,SAAS,EAAE,SAAS,GACnB,SAAS,CAAA;AACZ,wBAAgB,SAAS,CAAC,KAAK,SAAS,YAAY,EAAE,WAAW,SAAS,KAAK,EAC7E,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,GACvB,iBAAiB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;AAC/B,wBAAgB,SAAS,CACvB,KAAK,SAAS,YAAY,EAC1B,WAAW,SAAS,KAAK,EACzB,SAAS,SAAS,gBAAgB,EAElC,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,SAAS,GACnB,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA"}
|
package/types/types.d.ts
CHANGED
|
@@ -36,6 +36,16 @@ export type ServerActions = FinalConfig['serverActions'] extends Record<string,
|
|
|
36
36
|
/**
|
|
37
37
|
* ➗0️⃣ END OVERRIDDEN TYPES
|
|
38
38
|
*/
|
|
39
|
+
export type MutatorContext = {
|
|
40
|
+
tx: Transaction;
|
|
41
|
+
authData: AuthData | null;
|
|
42
|
+
environment: 'server' | 'client';
|
|
43
|
+
server?: {
|
|
44
|
+
actions: ServerActions;
|
|
45
|
+
asyncTasks: Array<() => Promise<void>>;
|
|
46
|
+
};
|
|
47
|
+
can: Can;
|
|
48
|
+
};
|
|
39
49
|
export type GetZeroMutators<Models extends GenericModels> = {
|
|
40
50
|
[Key in keyof Models]: TransformMutators<GetModelMutators<Models>[Key]>;
|
|
41
51
|
};
|
|
@@ -53,15 +63,6 @@ export type TransformMutators<T> = {
|
|
|
53
63
|
};
|
|
54
64
|
export type Where<Table extends TableName = TableName, ReturnType = any> = (expressionBuilder: ExpressionBuilder<Schema, Table>, auth: AuthData | null) => ReturnType;
|
|
55
65
|
export type Can = <PWhere extends Where, Action extends keyof ReturnType<PWhere>>(where: PWhere, action: Action, obj: string | Record<string, unknown>) => Promise<void>;
|
|
56
|
-
export type MutatorContext = {
|
|
57
|
-
tx: Transaction;
|
|
58
|
-
authData: AuthData | null;
|
|
59
|
-
environment: 'server' | 'client';
|
|
60
|
-
serverActions?: ServerActions;
|
|
61
|
-
asyncTasks?: Array<() => Promise<void>>;
|
|
62
|
-
can: Can;
|
|
63
|
-
didCanPermissionsRun?: boolean;
|
|
64
|
-
};
|
|
65
66
|
export type AsyncAction = () => Promise<void>;
|
|
66
67
|
type GenericTable = TableBuilderWithColumns<any>;
|
|
67
68
|
type GetTableSchema<TS extends GenericTable> = TS extends TableBuilderWithColumns<infer S> ? S : never;
|
package/types/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/types/where.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"where.d.ts","sourceRoot":"","sources":["../src/where.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"where.d.ts","sourceRoot":"","sources":["../src/where.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAE/C,wBAAgB,KAAK,CAAC,KAAK,SAAS,SAAS,EAAE,OAAO,SAAS,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,EACjF,SAAS,EAAE,KAAK,EAChB,OAAO,EAAE,OAAO,GACf,OAAO,CAAA;AAEV,wBAAgB,KAAK,CAAC,KAAK,SAAS,SAAS,EAAE,OAAO,SAAS,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,EACjF,OAAO,EAAE,OAAO,GACf,OAAO,CAAA;AAmBV,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,KAAK,sBAE7C"}
|