@lunora/server 1.0.0-alpha.8 → 1.0.0-alpha.80

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 (79) hide show
  1. package/LICENSE.md +219 -0
  2. package/README.md +46 -0
  3. package/dist/data-model.d.mts +260 -164
  4. package/dist/data-model.d.ts +260 -164
  5. package/dist/data-model.mjs +0 -1
  6. package/dist/drizzle.mjs +1 -1
  7. package/dist/index.d.mts +1989 -1173
  8. package/dist/index.d.ts +1989 -1173
  9. package/dist/index.mjs +1 -28
  10. package/dist/otel.d.mts +543 -0
  11. package/dist/otel.d.ts +543 -0
  12. package/dist/otel.mjs +1 -0
  13. package/dist/packem_shared/DEFAULT_LIMIT-B947Pbij.mjs +1 -0
  14. package/dist/packem_shared/LunoraEnvError-CjFbbR9t.mjs +3 -0
  15. package/dist/packem_shared/LunoraError-DcKdk9Ti.mjs +1 -0
  16. package/dist/packem_shared/PRESENCE_DEFAULT_TTL_MS-C-McIltl.mjs +1 -0
  17. package/dist/packem_shared/allowAll-DkRAgItV.mjs +1 -0
  18. package/dist/packem_shared/asBucketStorage-BthCnWop.mjs +1 -0
  19. package/dist/packem_shared/bindOrm-lWdeDi9P.mjs +1 -0
  20. package/dist/packem_shared/buildMaskRegistry-72SL8fJn.mjs +1 -0
  21. package/dist/packem_shared/buildRlsReadRegistry-Deq8inqS.mjs +1 -0
  22. package/dist/packem_shared/composePluginMiddleware-DQHF6mYr.mjs +1 -0
  23. package/dist/packem_shared/context-identity-B2XYGA0B.mjs +1 -0
  24. package/dist/packem_shared/createPolicyDsl-DNfByAUX.mjs +1 -0
  25. package/dist/packem_shared/createSecrets-CyrEddTF.mjs +1 -0
  26. package/dist/packem_shared/defineAggregateIndex-BtVAy69G.mjs +1 -0
  27. package/dist/packem_shared/defineIdentity-DwkNKwYa.mjs +1 -0
  28. package/dist/packem_shared/defineMigration-7GI9Qbtd.mjs +1 -0
  29. package/dist/packem_shared/defineMutator-DKy8UtbB.mjs +1 -0
  30. package/dist/packem_shared/defineShape-DYxbNl5W.mjs +1 -0
  31. package/dist/packem_shared/defineStorageRule-BvxHVq3b.mjs +1 -0
  32. package/dist/packem_shared/functions-B2-H4PQT.mjs +1 -0
  33. package/dist/packem_shared/httpAction-Ddi7f0t6.mjs +5 -0
  34. package/dist/packem_shared/initLunora-CRypyq1P.mjs +1 -0
  35. package/dist/packem_shared/mask-CfHNITgg.mjs +1 -0
  36. package/dist/packem_shared/middleware-DEW0yLvU.mjs +1 -0
  37. package/dist/packem_shared/onConnect-BLRoOpv2.mjs +1 -0
  38. package/dist/packem_shared/onQueryChange-gepYD6KC.mjs +1 -0
  39. package/dist/packem_shared/plugin-DQcLxTx1.mjs +1 -0
  40. package/dist/packem_shared/policy-tag-D4RzgQnw.mjs +1 -0
  41. package/dist/packem_shared/protectPublic-Bo4G9xaV.mjs +1 -0
  42. package/dist/packem_shared/rls-B3mNGBuc.mjs +1 -0
  43. package/dist/packem_shared/run-middleware-B-JeGGp9.mjs +1 -0
  44. package/dist/packem_shared/storageRules-CTnby6M1.mjs +1 -0
  45. package/dist/packem_shared/types.d-B-pIn8rE.d.mts +141 -0
  46. package/dist/packem_shared/types.d-CdPDEjhz.d.ts +141 -0
  47. package/dist/rls/testing.d.mts +31 -31
  48. package/dist/rls/testing.d.ts +31 -31
  49. package/dist/rls/testing.mjs +1 -49
  50. package/dist/types.d.mts +1552 -506
  51. package/dist/types.d.ts +1552 -506
  52. package/dist/types.mjs +1 -31
  53. package/package.json +17 -4
  54. package/dist/packem_shared/LunoraEnvError-DjFkpkSP.mjs +0 -187
  55. package/dist/packem_shared/LunoraError-DhggBJZF.mjs +0 -51
  56. package/dist/packem_shared/PRESENCE_DEFAULT_TTL_MS-C7j9gY_d.mjs +0 -114
  57. package/dist/packem_shared/asBucketStorage-Cnxd9y2q.mjs +0 -11
  58. package/dist/packem_shared/bindOrm-Ce57S3N9.mjs +0 -128
  59. package/dist/packem_shared/buildRlsReadRegistry-CkxuS69B.mjs +0 -107
  60. package/dist/packem_shared/composePluginMiddleware-Ck5_TUO8.mjs +0 -100
  61. package/dist/packem_shared/createPolicyDsl-De67zPDS.mjs +0 -29
  62. package/dist/packem_shared/createSecrets-TsIP9lOa.mjs +0 -55
  63. package/dist/packem_shared/defineAggregateIndex-ZdyU78gh.mjs +0 -291
  64. package/dist/packem_shared/defineMigration-CAJLr6fx.mjs +0 -8
  65. package/dist/packem_shared/defineMutator-EIXAWhs9.mjs +0 -11
  66. package/dist/packem_shared/defineShape-CJ27Wx7o.mjs +0 -17
  67. package/dist/packem_shared/defineStorageRule-qu0mpilX.mjs +0 -20
  68. package/dist/packem_shared/functions-Di9FUNkf.mjs +0 -5
  69. package/dist/packem_shared/httpAction-B7FYUEgr.mjs +0 -340
  70. package/dist/packem_shared/initLunora-lxwHTEV3.mjs +0 -100
  71. package/dist/packem_shared/mask-eCUYOwhd.mjs +0 -211
  72. package/dist/packem_shared/onConnect-CIPXKPyw.mjs +0 -13
  73. package/dist/packem_shared/policy-tag-DvpVH2tv.mjs +0 -13
  74. package/dist/packem_shared/protectPublic-BjFkQ_Or.mjs +0 -15
  75. package/dist/packem_shared/rls-ClmjkkxZ.mjs +0 -569
  76. package/dist/packem_shared/run-middleware-CYQOuoV6.mjs +0 -18
  77. package/dist/packem_shared/storageRules-4a30FSpI.mjs +0 -88
  78. package/dist/packem_shared/types.d-BDY0FYHK.d.ts +0 -135
  79. package/dist/packem_shared/types.d-DmvyEMD6.d.mts +0 -135
@@ -1,49 +1 @@
1
- import { indexRolePermissions, computeReadBaseWhere, matchesWhere, evaluateWrite, permissionName } from '../packem_shared/rls-ClmjkkxZ.mjs';
2
-
3
- const expectPolicy = (policies, options = {}) => {
4
- const rolePermissions = indexRolePermissions(options.roles);
5
- const context = options.ctx ?? {};
6
- return {
7
- as: (identity) => {
8
- const auth = identity ?? {};
9
- const roles = auth.roles ?? [];
10
- const granted = /* @__PURE__ */ new Set();
11
- for (const roleName of roles) {
12
- for (const name of rolePermissions.get(roleName) ?? []) {
13
- granted.add(name);
14
- }
15
- }
16
- const baseContext = {
17
- auth: {
18
- can: (permission) => granted.has(permissionName(permission)),
19
- // eslint-disable-next-line unicorn/no-null -- PolicyContext.auth.identity is a public `… | null` type, mirroring the middleware
20
- identity: auth.identity ?? null,
21
- roles,
22
- // eslint-disable-next-line unicorn/no-null -- PolicyContext.auth.userId is a public `null | string` type, mirroring the middleware
23
- userId: auth.userId ?? null
24
- },
25
- ctx: context
26
- };
27
- const can = (op, table, row, nextRow) => {
28
- const tablePolicies = policies.filter((policy) => policy.table === table);
29
- if (tablePolicies.length === 0) {
30
- return true;
31
- }
32
- if (op === "read") {
33
- if (!tablePolicies.some((policy) => policy.on === "read")) {
34
- return true;
35
- }
36
- const baseWhere = computeReadBaseWhere(tablePolicies, baseContext);
37
- return baseWhere === void 0 || matchesWhere(row ?? {}, baseWhere);
38
- }
39
- return evaluateWrite(tablePolicies, op, { ...baseContext, row }, nextRow);
40
- };
41
- return {
42
- can,
43
- cannot: (op, table, row, nextRow) => !can(op, table, row, nextRow)
44
- };
45
- }
46
- };
47
- };
48
-
49
- export { expectPolicy };
1
+ import{i as b,d as P,c as W,m as v,e as y}from"../packem_shared/middleware-DEW0yLvU.mjs";const C=(d,c={})=>{const m=b(c.roles),h=c.ctx??{};return{as:x=>{const n=x??{},i=n.roles??[],l={auth:{can:P(i,m),identity:n.identity??null,roles:i,userId:n.userId??null},ctx:h},u=(e,o,t,a)=>{const r=d.filter(s=>s.table===o);if(r.length===0)return!0;if(e==="read"){if(!r.some(f=>f.on==="read"))return!0;const s=W(r,l);return s===void 0||v(t??{},s)}return y(r,e,{...l,row:t},a)};return{can:u,cannot:(e,o,t,a)=>!u(e,o,t,a)}}}};export{C as expectPolicy};