on-zero 0.6.22 → 0.7.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.
- package/dist/cjs/createPermissions.cjs +0 -2
- package/dist/cjs/createPermissions.native.js +0 -2
- package/dist/cjs/createPermissions.native.js.map +1 -1
- package/dist/cjs/createZeroSQLiteServer.test.cjs +97 -0
- package/dist/cjs/createZeroSQLiteServer.test.native.js +108 -0
- package/dist/cjs/createZeroSQLiteServer.test.native.js.map +1 -1
- package/dist/cjs/mutations.cjs +4 -11
- package/dist/cjs/mutations.native.js +4 -11
- package/dist/cjs/mutations.native.js.map +1 -1
- package/dist/esm/createPermissions.mjs +0 -2
- package/dist/esm/createPermissions.mjs.map +1 -1
- package/dist/esm/createPermissions.native.js +0 -2
- package/dist/esm/createPermissions.native.js.map +1 -1
- package/dist/esm/createZeroSQLiteServer.test.mjs +97 -0
- package/dist/esm/createZeroSQLiteServer.test.mjs.map +1 -1
- package/dist/esm/createZeroSQLiteServer.test.native.js +108 -0
- package/dist/esm/createZeroSQLiteServer.test.native.js.map +1 -1
- package/dist/esm/mutations.mjs +4 -11
- package/dist/esm/mutations.mjs.map +1 -1
- package/dist/esm/mutations.native.js +4 -11
- package/dist/esm/mutations.native.js.map +1 -1
- package/package.json +2 -2
- package/readme.md +27 -8
- package/src/createPermissions.ts +0 -2
- package/src/createZeroSQLiteServer.test.ts +94 -0
- package/src/mutations.ts +7 -21
- package/types/createPermissions.d.ts.map +1 -1
- package/types/mutations.d.ts +1 -1
- package/types/mutations.d.ts.map +1 -1
- package/dist/cjs/helpers/didRunPermissionCheck.cjs +0 -36
- package/dist/cjs/helpers/didRunPermissionCheck.native.js +0 -41
- package/dist/cjs/helpers/didRunPermissionCheck.native.js.map +0 -1
- package/dist/esm/helpers/didRunPermissionCheck.mjs +0 -10
- package/dist/esm/helpers/didRunPermissionCheck.mjs.map +0 -1
- package/dist/esm/helpers/didRunPermissionCheck.native.js +0 -12
- package/dist/esm/helpers/didRunPermissionCheck.native.js.map +0 -1
- package/src/helpers/didRunPermissionCheck.ts +0 -16
- package/types/helpers/didRunPermissionCheck.d.ts +0 -4
- package/types/helpers/didRunPermissionCheck.d.ts.map +0 -1
|
@@ -6,6 +6,8 @@ import { afterEach, beforeEach, describe, expect, test } from 'vitest'
|
|
|
6
6
|
|
|
7
7
|
import { createZeroSQLiteServer } from './createZeroSQLiteServer'
|
|
8
8
|
import { zeroHttpFixtureSchema } from './httpPull/fixtureSchema'
|
|
9
|
+
import { mutations } from './mutations'
|
|
10
|
+
import { serverWhere } from './serverWhere'
|
|
9
11
|
|
|
10
12
|
import type {
|
|
11
13
|
SqlStatementMetadata,
|
|
@@ -290,6 +292,98 @@ describe('createZeroSQLiteServer', () => {
|
|
|
290
292
|
})
|
|
291
293
|
})
|
|
292
294
|
|
|
295
|
+
test('allows a custom CRUD mutation to no-op without an automatic permission check', async () => {
|
|
296
|
+
const projectPermission = serverWhere('project', (q) => q.cmp('ownerId', 'u1'))
|
|
297
|
+
const projectMutations = mutations('project', projectPermission, {
|
|
298
|
+
insert: async () => {},
|
|
299
|
+
})
|
|
300
|
+
const server = createZeroSQLiteServer({
|
|
301
|
+
schema: zeroHttpFixtureSchema,
|
|
302
|
+
models: {
|
|
303
|
+
project: { mutate: projectMutations },
|
|
304
|
+
},
|
|
305
|
+
createServerActions: () => ({}),
|
|
306
|
+
transactionProvider,
|
|
307
|
+
})
|
|
308
|
+
|
|
309
|
+
const result = await server.handleMutationRequest({
|
|
310
|
+
authData: { id: 'u1', role: 'user' },
|
|
311
|
+
request: pushRequest(1, 'project.insert', {
|
|
312
|
+
id: 'p1',
|
|
313
|
+
ownerId: 'u1',
|
|
314
|
+
name: 'skip',
|
|
315
|
+
}),
|
|
316
|
+
})
|
|
317
|
+
|
|
318
|
+
expect((result.response as any).mutations[0].result).toEqual({})
|
|
319
|
+
expect(db.prepare('SELECT * FROM project').all()).toEqual([])
|
|
320
|
+
})
|
|
321
|
+
|
|
322
|
+
test('rolls back when a custom CRUD mutation throws', async () => {
|
|
323
|
+
const projectPermission = serverWhere('project', (q) => q.cmp('ownerId', 'u1'))
|
|
324
|
+
const projectMutations = mutations('project', projectPermission, {
|
|
325
|
+
insert: async ({ tx }, value: { id: string; ownerId: string; name: string }) => {
|
|
326
|
+
await tx.mutate.project.insert(value)
|
|
327
|
+
throw new Error('denied by custom validation')
|
|
328
|
+
},
|
|
329
|
+
})
|
|
330
|
+
const server = createZeroSQLiteServer({
|
|
331
|
+
schema: zeroHttpFixtureSchema,
|
|
332
|
+
models: {
|
|
333
|
+
project: { mutate: projectMutations },
|
|
334
|
+
},
|
|
335
|
+
createServerActions: () => ({}),
|
|
336
|
+
transactionProvider,
|
|
337
|
+
})
|
|
338
|
+
|
|
339
|
+
const result = await server.handleMutationRequest({
|
|
340
|
+
authData: { id: 'u2', role: 'user' },
|
|
341
|
+
request: pushRequest(1, 'project.insert', {
|
|
342
|
+
id: 'p2',
|
|
343
|
+
ownerId: 'u2',
|
|
344
|
+
name: 'unauthorized',
|
|
345
|
+
}),
|
|
346
|
+
})
|
|
347
|
+
|
|
348
|
+
expect((result.response as any).mutations[0].result).toMatchObject({
|
|
349
|
+
error: 'app',
|
|
350
|
+
message: 'denied by custom validation',
|
|
351
|
+
})
|
|
352
|
+
expect(db.prepare('SELECT * FROM project').all()).toEqual([])
|
|
353
|
+
})
|
|
354
|
+
|
|
355
|
+
test('permission-checks generated CRUD mutations', async () => {
|
|
356
|
+
let inserted: Record<string, unknown> | undefined
|
|
357
|
+
let permissionChecks = 0
|
|
358
|
+
const projectPermission = serverWhere('project', (q) => q.cmp('ownerId', 'u1'))
|
|
359
|
+
const projectMutations = mutations('project', projectPermission)
|
|
360
|
+
const value = { id: 'p3', ownerId: 'u2', name: 'unauthorized' }
|
|
361
|
+
|
|
362
|
+
await expect(
|
|
363
|
+
projectMutations.insert(
|
|
364
|
+
{
|
|
365
|
+
tx: {
|
|
366
|
+
mutate: {
|
|
367
|
+
project: {
|
|
368
|
+
insert: async (row: Record<string, unknown>) => {
|
|
369
|
+
inserted = row
|
|
370
|
+
},
|
|
371
|
+
},
|
|
372
|
+
},
|
|
373
|
+
},
|
|
374
|
+
can: async (_where, row) => {
|
|
375
|
+
permissionChecks++
|
|
376
|
+
expect(row).toEqual(value)
|
|
377
|
+
throw new Error('denied')
|
|
378
|
+
},
|
|
379
|
+
} as never,
|
|
380
|
+
value,
|
|
381
|
+
),
|
|
382
|
+
).rejects.toThrow('denied')
|
|
383
|
+
expect(inserted).toEqual(value)
|
|
384
|
+
expect(permissionChecks).toBe(1)
|
|
385
|
+
})
|
|
386
|
+
|
|
293
387
|
test('recovers duplicate results and deletes them through the cleanup mutation', async () => {
|
|
294
388
|
const server = createZeroSQLiteServer({
|
|
295
389
|
schema: zeroHttpFixtureSchema,
|
package/src/mutations.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { IS_SERVER_RUNTIME } from '@take-out/helpers'
|
|
2
|
-
import { getDidRunPermissionCheck } from './helpers/didRunPermissionCheck'
|
|
3
2
|
import { setMutationsPermissions } from './modelRegistry'
|
|
4
3
|
|
|
4
|
+
import type { TableBuilderWithColumns } from '@rocicorp/zero'
|
|
5
5
|
import type {
|
|
6
6
|
MutatorContext,
|
|
7
7
|
Schema,
|
|
@@ -10,7 +10,6 @@ import type {
|
|
|
10
10
|
TableUpdateRow,
|
|
11
11
|
Where,
|
|
12
12
|
} from './types'
|
|
13
|
-
import type { TableBuilderWithColumns } from '@rocicorp/zero'
|
|
14
13
|
|
|
15
14
|
// derive a TableBuilderWithColumns from the global schema by table name
|
|
16
15
|
type SchemaTableBuilder<TName extends TableName> = TableBuilderWithColumns<
|
|
@@ -74,10 +73,6 @@ function getOrCreateMutationProxy<T extends Record<string, Function>>(
|
|
|
74
73
|
return proxy
|
|
75
74
|
}
|
|
76
75
|
|
|
77
|
-
// two ways to use it:
|
|
78
|
-
// - mutations({}) which doesn't add the "allowed" helper or add CRUD
|
|
79
|
-
// - mutation('tableName', permissions) adds CRUD with permissions, adds allowed
|
|
80
|
-
|
|
81
76
|
type MutationBuilder<Obj = any> = (ctx: MutatorContext, obj?: Obj) => Promise<void>
|
|
82
77
|
type MutationBuilders = Record<string, MutationBuilder>
|
|
83
78
|
|
|
@@ -158,6 +153,9 @@ export function mutations<
|
|
|
158
153
|
: ((table as Table).schema.name as TableName)
|
|
159
154
|
|
|
160
155
|
const createCRUDMutation = (action: CRUDNames) => {
|
|
156
|
+
const customMutation = mutations?.[action]
|
|
157
|
+
if (customMutation) return customMutation
|
|
158
|
+
|
|
161
159
|
return async (ctx: MutatorContext, obj: any) => {
|
|
162
160
|
/**
|
|
163
161
|
* CRUD mutations have permissions handled automatically using `can`:
|
|
@@ -168,11 +166,6 @@ export function mutations<
|
|
|
168
166
|
* - for the rest: check runs before mutation
|
|
169
167
|
*/
|
|
170
168
|
const runServerPermissionCheck = async () => {
|
|
171
|
-
if (getDidRunPermissionCheck(ctx)) {
|
|
172
|
-
// if the user-defined CRUD mutation runs their own "can", we avoid running ours
|
|
173
|
-
return
|
|
174
|
-
}
|
|
175
|
-
|
|
176
169
|
// only validate on the server
|
|
177
170
|
if (IS_SERVER_RUNTIME) {
|
|
178
171
|
await ctx.can(permissions, obj)
|
|
@@ -183,15 +176,8 @@ export function mutations<
|
|
|
183
176
|
await runServerPermissionCheck()
|
|
184
177
|
}
|
|
185
178
|
|
|
186
|
-
//
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
if (existing) {
|
|
190
|
-
await existing(ctx, obj)
|
|
191
|
-
} else {
|
|
192
|
-
type TableName = keyof typeof ctx.tx.mutate // weird type foo because we declare this module and then type check
|
|
193
|
-
await ctx.tx.mutate[tableName as TableName]
|
|
194
|
-
}
|
|
179
|
+
type TableName = keyof typeof ctx.tx.mutate // weird type foo because we declare this module and then type check
|
|
180
|
+
await ctx.tx.mutate[tableName as TableName]
|
|
195
181
|
|
|
196
182
|
if (action === 'insert' || action === 'upsert') {
|
|
197
183
|
await runServerPermissionCheck()
|
|
@@ -208,7 +194,7 @@ export function mutations<
|
|
|
208
194
|
|
|
209
195
|
const finalMutations = {
|
|
210
196
|
...mutations,
|
|
211
|
-
//
|
|
197
|
+
// generated CRUD fills missing operations; custom CRUD runs as-is
|
|
212
198
|
...crudMutations,
|
|
213
199
|
} as any as Mutations
|
|
214
200
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createPermissions.d.ts","sourceRoot":"","sources":["../src/createPermissions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"createPermissions.d.ts","sourceRoot":"","sources":["../src/createPermissions.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAe,KAAK,EAAE,MAAM,SAAS,CAAA;AAC1F,OAAO,KAAK,EACV,SAAS,EACT,iBAAiB,EAEjB,MAAM,IAAI,UAAU,EACrB,MAAM,gBAAgB,CAAA;AAEvB,qBAAa,eAAgB,SAAQ,KAAK;gBAC5B,OAAO,EAAE,MAAM;CAI5B;AAED,wBAAgB,iBAAiB,CAAC,MAAM,SAAS,UAAU,EAAE,EAC3D,WAAW,EACX,MAAM,EACN,aAAqB,GACtB,EAAE;IACD,WAAW,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,aAAa,CAAC,EAAE,aAAa,CAAA;CAC9B;;2BAG+B,eAAe,kCACjC,QAAQ,GAAG,IAAI,MACrB,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,mBACd,eAAe,WAEvB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,sBACjB,SAAS;EAmHhC"}
|
package/types/mutations.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { MutatorContext, Schema, TableInsertRow, TableName, TableUpdateRow, Where } from './types';
|
|
2
1
|
import type { TableBuilderWithColumns } from '@rocicorp/zero';
|
|
2
|
+
import type { MutatorContext, Schema, TableInsertRow, TableName, TableUpdateRow, Where } from './types';
|
|
3
3
|
type SchemaTableBuilder<TName extends TableName> = TableBuilderWithColumns<Schema['tables'][TName]>;
|
|
4
4
|
type MutationBuilder<Obj = any> = (ctx: MutatorContext, obj?: Obj) => Promise<void>;
|
|
5
5
|
type MutationBuilders = Record<string, MutationBuilder>;
|
package/types/mutations.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutations.d.ts","sourceRoot":"","sources":["../src/mutations.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mutations.d.ts","sourceRoot":"","sources":["../src/mutations.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAA;AAC7D,OAAO,KAAK,EACV,cAAc,EACd,MAAM,EACN,cAAc,EACd,SAAS,EACT,cAAc,EACd,KAAK,EACN,MAAM,SAAS,CAAA;AAGhB,KAAK,kBAAkB,CAAC,KAAK,SAAS,SAAS,IAAI,uBAAuB,CACxE,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CACxB,CAAA;AA2DD,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;AAEtC,wBAAgB,SAAS,CAAC,KAAK,SAAS,SAAS,EAAE,WAAW,SAAS,KAAK,EAC1E,SAAS,EAAE,KAAK,EAChB,WAAW,EAAE,WAAW,GACvB,iBAAiB,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAA;AACnD,wBAAgB,SAAS,CACvB,KAAK,SAAS,SAAS,EACvB,WAAW,SAAS,KAAK,EACzB,SAAS,SAAS,gBAAgB,EAElC,SAAS,EAAE,KAAK,EAChB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,SAAS,GACnB,iBAAiB,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,CAAA"}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
-
var __export = (target, all) => {
|
|
6
|
-
for (var name in all) __defProp(target, name, {
|
|
7
|
-
get: all[name],
|
|
8
|
-
enumerable: true
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __copyProps = (to, from, except, desc) => {
|
|
12
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
-
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
14
|
-
get: () => from[key],
|
|
15
|
-
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
return to;
|
|
19
|
-
};
|
|
20
|
-
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
21
|
-
value: true
|
|
22
|
-
}), mod);
|
|
23
|
-
var didRunPermissionCheck_exports = {};
|
|
24
|
-
__export(didRunPermissionCheck_exports, {
|
|
25
|
-
getDidRunPermissionCheck: () => getDidRunPermissionCheck,
|
|
26
|
-
setDidRunPermissionCheck: () => setDidRunPermissionCheck
|
|
27
|
-
});
|
|
28
|
-
module.exports = __toCommonJS(didRunPermissionCheck_exports);
|
|
29
|
-
var import_helpers = require("@take-out/helpers");
|
|
30
|
-
const PermissionCheckRan = (0, import_helpers.globalValue)(`on-zero:permissions-check`, () => /* @__PURE__ */new WeakMap());
|
|
31
|
-
const getDidRunPermissionCheck = ctx => {
|
|
32
|
-
return PermissionCheckRan.get(ctx);
|
|
33
|
-
};
|
|
34
|
-
const setDidRunPermissionCheck = ctx => {
|
|
35
|
-
return PermissionCheckRan.set(ctx, true);
|
|
36
|
-
};
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var __defProp = Object.defineProperty;
|
|
4
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
var __export = (target, all) => {
|
|
8
|
-
for (var name in all) __defProp(target, name, {
|
|
9
|
-
get: all[name],
|
|
10
|
-
enumerable: true
|
|
11
|
-
});
|
|
12
|
-
};
|
|
13
|
-
var __copyProps = (to, from, except, desc) => {
|
|
14
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
-
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
16
|
-
get: () => from[key],
|
|
17
|
-
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
return to;
|
|
21
|
-
};
|
|
22
|
-
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
23
|
-
value: true
|
|
24
|
-
}), mod);
|
|
25
|
-
var didRunPermissionCheck_exports = {};
|
|
26
|
-
__export(didRunPermissionCheck_exports, {
|
|
27
|
-
getDidRunPermissionCheck: () => getDidRunPermissionCheck,
|
|
28
|
-
setDidRunPermissionCheck: () => setDidRunPermissionCheck
|
|
29
|
-
});
|
|
30
|
-
module.exports = __toCommonJS(didRunPermissionCheck_exports);
|
|
31
|
-
var import_helpers = require("@take-out/helpers");
|
|
32
|
-
var PermissionCheckRan = (0, import_helpers.globalValue)(`on-zero:permissions-check`, function () {
|
|
33
|
-
return /* @__PURE__ */new WeakMap();
|
|
34
|
-
});
|
|
35
|
-
var getDidRunPermissionCheck = function (ctx) {
|
|
36
|
-
return PermissionCheckRan.get(ctx);
|
|
37
|
-
};
|
|
38
|
-
var setDidRunPermissionCheck = function (ctx) {
|
|
39
|
-
return PermissionCheckRan.set(ctx, true);
|
|
40
|
-
};
|
|
41
|
-
//# sourceMappingURL=didRunPermissionCheck.native.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","didRunPermissionCheck_exports","__export","getDidRunPermissionCheck","setDidRunPermissionCheck","module","exports","import_helpers","require","PermissionCheckRan","globalValue","WeakMap","ctx","get","set"],"sources":["../../../src/helpers/didRunPermissionCheck.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,6BAAA;AAAAC,QAAA,CAAAD,6BAAA;EAAAE,wBAAA,EAAAA,CAAA,KAAAA,wBAAA;EAAAC,wBAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAV,YAA4B,CAAAK,6BAAA;AAI5B,IAAAM,cAAM,GAAAC,OAAA,oBAAqB;AAAA,IACzBC,kBAAA,OAAAF,cAAA,CAAAG,WAAA;EACA,OAAM,mBAAIC,OAAiC;AAC7C;AAEO,IAAAR,wBAAM,YAAAA,CAA4BS,GAAwB;EAC/D,OAAOH,kBAAA,CAAmBI,GAAA,CAAID,GAAG;AACnC;AAEO,IAAAR,wBAAM,YAAAA,CAA4BQ,GAAwB;EAC/D,OAAOH,kBAAA,CAAmBK,GAAA,CAAIF,GAAA,EAAK,IAAI;AACzC","ignoreList":[]}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { globalValue } from "@take-out/helpers";
|
|
2
|
-
const PermissionCheckRan = globalValue(`on-zero:permissions-check`, () => /* @__PURE__ */new WeakMap());
|
|
3
|
-
const getDidRunPermissionCheck = ctx => {
|
|
4
|
-
return PermissionCheckRan.get(ctx);
|
|
5
|
-
};
|
|
6
|
-
const setDidRunPermissionCheck = ctx => {
|
|
7
|
-
return PermissionCheckRan.set(ctx, true);
|
|
8
|
-
};
|
|
9
|
-
export { getDidRunPermissionCheck, setDidRunPermissionCheck };
|
|
10
|
-
//# sourceMappingURL=didRunPermissionCheck.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["globalValue","PermissionCheckRan","WeakMap","getDidRunPermissionCheck","ctx","get","setDidRunPermissionCheck","set"],"sources":["../../../src/helpers/didRunPermissionCheck.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,WAAA,QAAmB;AAI5B,MAAMC,kBAAA,GAAqBD,WAAA,CACzB,6BACA,MAAM,mBAAIE,OAAA,CAAiC,CAC7C;AAEO,MAAMC,wBAAA,GAA4BC,GAAA,IAAwB;EAC/D,OAAOH,kBAAA,CAAmBI,GAAA,CAAID,GAAG;AACnC;AAEO,MAAME,wBAAA,GAA4BF,GAAA,IAAwB;EAC/D,OAAOH,kBAAA,CAAmBM,GAAA,CAAIH,GAAA,EAAK,IAAI;AACzC","ignoreList":[]}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { globalValue } from "@take-out/helpers";
|
|
2
|
-
var PermissionCheckRan = globalValue(`on-zero:permissions-check`, function () {
|
|
3
|
-
return /* @__PURE__ */new WeakMap();
|
|
4
|
-
});
|
|
5
|
-
var getDidRunPermissionCheck = function (ctx) {
|
|
6
|
-
return PermissionCheckRan.get(ctx);
|
|
7
|
-
};
|
|
8
|
-
var setDidRunPermissionCheck = function (ctx) {
|
|
9
|
-
return PermissionCheckRan.set(ctx, true);
|
|
10
|
-
};
|
|
11
|
-
export { getDidRunPermissionCheck, setDidRunPermissionCheck };
|
|
12
|
-
//# sourceMappingURL=didRunPermissionCheck.native.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["globalValue","PermissionCheckRan","WeakMap","getDidRunPermissionCheck","ctx","get","setDidRunPermissionCheck","set"],"sources":["../../../src/helpers/didRunPermissionCheck.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,WAAA,QAAmB;AAI5B,IAAAC,kBAAM,GAAAD,WAAqB;EACzB,0BAAAE,OAAA;AAAA,EACA;AACF,IAAAC,wBAAA,YAAAA,CAAAC,GAAA;EAEO,OAAMH,kBAAA,CAAAI,GAAA,CAAAD,GAA4B;AACvC;AACF,IAAAE,wBAAA,YAAAA,CAAAF,GAAA;EAEO,OAAMH,kBAAA,CAAAM,GAAA,CAAAH,GAA4B,OAAwB;AAC/D;AACF,S","ignoreList":[]}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { globalValue } from '@take-out/helpers'
|
|
2
|
-
|
|
3
|
-
import type { MutatorContext } from '../types'
|
|
4
|
-
|
|
5
|
-
const PermissionCheckRan = globalValue(
|
|
6
|
-
`on-zero:permissions-check`,
|
|
7
|
-
() => new WeakMap<MutatorContext, boolean>(),
|
|
8
|
-
)
|
|
9
|
-
|
|
10
|
-
export const getDidRunPermissionCheck = (ctx: MutatorContext) => {
|
|
11
|
-
return PermissionCheckRan.get(ctx)
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export const setDidRunPermissionCheck = (ctx: MutatorContext) => {
|
|
15
|
-
return PermissionCheckRan.set(ctx, true)
|
|
16
|
-
}
|
|
@@ -1,4 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"didRunPermissionCheck.d.ts","sourceRoot":"","sources":["../../src/helpers/didRunPermissionCheck.ts"],"names":[],"mappings":"AAEA,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"}
|