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.
Files changed (39) hide show
  1. package/dist/cjs/createPermissions.cjs +0 -2
  2. package/dist/cjs/createPermissions.native.js +0 -2
  3. package/dist/cjs/createPermissions.native.js.map +1 -1
  4. package/dist/cjs/createZeroSQLiteServer.test.cjs +97 -0
  5. package/dist/cjs/createZeroSQLiteServer.test.native.js +108 -0
  6. package/dist/cjs/createZeroSQLiteServer.test.native.js.map +1 -1
  7. package/dist/cjs/mutations.cjs +4 -11
  8. package/dist/cjs/mutations.native.js +4 -11
  9. package/dist/cjs/mutations.native.js.map +1 -1
  10. package/dist/esm/createPermissions.mjs +0 -2
  11. package/dist/esm/createPermissions.mjs.map +1 -1
  12. package/dist/esm/createPermissions.native.js +0 -2
  13. package/dist/esm/createPermissions.native.js.map +1 -1
  14. package/dist/esm/createZeroSQLiteServer.test.mjs +97 -0
  15. package/dist/esm/createZeroSQLiteServer.test.mjs.map +1 -1
  16. package/dist/esm/createZeroSQLiteServer.test.native.js +108 -0
  17. package/dist/esm/createZeroSQLiteServer.test.native.js.map +1 -1
  18. package/dist/esm/mutations.mjs +4 -11
  19. package/dist/esm/mutations.mjs.map +1 -1
  20. package/dist/esm/mutations.native.js +4 -11
  21. package/dist/esm/mutations.native.js.map +1 -1
  22. package/package.json +2 -2
  23. package/readme.md +27 -8
  24. package/src/createPermissions.ts +0 -2
  25. package/src/createZeroSQLiteServer.test.ts +94 -0
  26. package/src/mutations.ts +7 -21
  27. package/types/createPermissions.d.ts.map +1 -1
  28. package/types/mutations.d.ts +1 -1
  29. package/types/mutations.d.ts.map +1 -1
  30. package/dist/cjs/helpers/didRunPermissionCheck.cjs +0 -36
  31. package/dist/cjs/helpers/didRunPermissionCheck.native.js +0 -41
  32. package/dist/cjs/helpers/didRunPermissionCheck.native.js.map +0 -1
  33. package/dist/esm/helpers/didRunPermissionCheck.mjs +0 -10
  34. package/dist/esm/helpers/didRunPermissionCheck.mjs.map +0 -1
  35. package/dist/esm/helpers/didRunPermissionCheck.native.js +0 -12
  36. package/dist/esm/helpers/didRunPermissionCheck.native.js.map +0 -1
  37. package/src/helpers/didRunPermissionCheck.ts +0 -16
  38. package/types/helpers/didRunPermissionCheck.d.ts +0 -4
  39. 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
- // if user defines insert run theirs, if not run plain zero:
187
- const existing = mutations?.[action]
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]![action](obj)
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]![action](obj)
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
- // overwrite regular mutations but call them if they are defined by user
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":"AAQA,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;EAoHhC"}
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"}
@@ -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>;
@@ -1 +1 @@
1
- {"version":3,"file":"mutations.d.ts","sourceRoot":"","sources":["../src/mutations.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,cAAc,EACd,MAAM,EACN,cAAc,EACd,SAAS,EACT,cAAc,EACd,KAAK,EACN,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAA;AAG7D,KAAK,kBAAkB,CAAC,KAAK,SAAS,SAAS,IAAI,uBAAuB,CACxE,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CACxB,CAAA;AA+DD,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
+ {"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"}